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: - Fixed a compilation error with g++ 4.6 on default constructor definition Date: Sat, 27 Jun 2026 21:54:56 GMT Message-ID: <178259729680.1.15815482158997580335.rpms-soci-c783268fa4c8@fedoraproject.org> List-ID: X-Git-Repo: rpms/soci X-Git-Branch: epel10 X-Git-Rev: c783268fa4c8465e68555056ed0c03655830025e ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvc29jaQogICAgICAgICAgICBCcmFuY2ggOiBlcGVsMTAKICAgICAgICAgICAg Q29tbWl0IDogYzc4MzI2OGZhNGM4NDY1ZTY4NTU1MDU2ZWQwYzAzNjU1ODMwMDI1ZQogICAgICAg ICAgICBBdXRob3IgOiBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4K ICAgICAgICAgICAgRGF0ZSAgIDogMjAxMS0wMi0wOVQwMToxNTozOCswMTowMAogICAgICAgICAg ICBTdGF0cyAgOiArNTk5OTMvLTYyOTc5IGluIDkgZmlsZShzKQogICAgICAgICAgICBVUkwgICAg OiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL3NvY2kvYy9jNzgzMjY4ZmE0Yzg0 NjVlNjg1NTUwNTZlZDBjMDM2NTU4MzAwMjVlP2JyYW5jaD1lcGVsMTAKCiAgICAgICAgICAgIExv ZzoKICAgICAgICAgICAgLSBGaXhlZCBhIGNvbXBpbGF0aW9uIGVycm9yIHdpdGggZysrIDQuNiBv biBkZWZhdWx0IGNvbnN0cnVjdG9yIGRlZmluaXRpb24KLSBTcGxpdCB0aGUgYmlnIHBhdGNoIGlu dG8gc21hbGxlciBwaWVjZXMKCi0tLQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25v cmUKaW5kZXggZDRhZjE3OC4uMzBjOGY2ZiAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8u Z2l0aWdub3JlCkBAIC0xLDYgKzEsNSBAQAogc29jaS0qLnRhci4qCiBzb2NpLSouc3JjLnJwbQot c29jaS0qLiouKi0qLnBhdGNoCiAuZ2l0aWdub3JlCiBjbG9nCiAuYnVpbGQtKgoKZGlmZiAtLWdp dCBhL3NvY2ktMy4wLjAtMTYtZml4LWdjYzQ0LWNvbXBhdGliaWxpdHkucGF0Y2ggYi9zb2NpLTMu MC4wLTE2LWZpeC1nY2M0NC1jb21wYXRpYmlsaXR5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBjOGUxYzU1Li4wMDAwMDAwCi0tLSBhL3NvY2ktMy4wLjAtMTYtZml4LWdjYzQ0 LWNvbXBhdGliaWxpdHkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MjMgKzAsMCBAQAotZGlm ZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oIHNvY2ktMy4wLjBf NC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9jb21tb24uaAotLS0tIHNvY2ktMy4wLjAvc3JjL2Jh Y2tlbmRzL215c3FsL2NvbW1vbi5oCTIwMDgtMDctMDMgMDk6MjI6NTcuMDAwMDAwMDAwICswMjAw Ci0rKysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oCTIwMTAt MDEtMjMgMTM6MTc6MjguMDAwMDAwMDAwICswMTAwCi1AQCAtMTAsNiArMTAsNyBAQAotIAotICNp bmNsdWRlIDxzc3RyZWFtPgotICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0rI2luY2x1ZGUgPGN0 aW1lPgotIAotIG5hbWVzcGFjZSBzb2NpCi0gewotZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2Jh Y2tlbmRzL215c3FsL3Nlc3Npb24uY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9t eXNxbC9zZXNzaW9uLmNwcAotLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3Nlc3Np b24uY3BwCTIwMDgtMDUtMTUgMTU6NTg6MzguMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAu MF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCTIwMTAtMDEtMjMgMTM6MTc6 MjguMDAwMDAwMDAwICswMTAwCi1AQCAtMTEsNyArMTEsOCBAQAotICNpbmNsdWRlIDxjY3R5cGU+ Ci0gI2luY2x1ZGUgPGNlcnJubz4KLSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLS0KLSsjaW5jbHVkZSA8 Y3N0ZGxpYj4KLSsjaW5jbHVkZSA8Y2xpbWl0cz4KLSAKLSAjaWZkZWYgX01TQ19WRVIKLSAjcHJh Z21hIHdhcm5pbmcoZGlzYWJsZTo0MzU1KQotZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tl bmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2Jh Y2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wL3NyYy9i YWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDgtMDUtMzAgMTM6MzM6NDUu MDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3Fs L3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAxMC0wMS0yMyAxMzoxNzoyOC4wMDAwMDAwMDAgKzAx MDAKLUBAIC0xMiw2ICsxMiw4IEBACi0gI2luY2x1ZGUgImNvbW1vbi5oIgotICNpbmNsdWRlIDxj aXNvNjQ2PgotICNpbmNsdWRlIDxjYXNzZXJ0PgotKyNpbmNsdWRlIDxjdGltZT4KLSsjaW5jbHVk ZSA8Y3N0cmluZz4KLSAKLSAjaWZkZWYgX01TQ19WRVIKLSAjcHJhZ21hIHdhcm5pbmcoZGlzYWJs ZTo0MzU1KQotZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJk LXVzZS10eXBlLmNwcCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRh cmQtdXNlLXR5cGUuY3BwCi0tLS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRh cmQtdXNlLXR5cGUuY3BwCTIwMDgtMDUtMTUgMTU6NTg6MzguMDAwMDAwMDAwICswMjAwCi0rKysg c29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNw cAkyMDEwLTAxLTIzIDEzOjE3OjI4LjAwMDAwMDAwMCArMDEwMAotQEAgLTEwLDggKzEwLDEwIEBA Ci0gI2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKLSAjaW5jbHVkZSAiY29tbW9uLmgiCi0gI2luY2x1 ZGUgPHNvY2ktcGxhdGZvcm0uaD4KLSsvLwotICNpbmNsdWRlIDxjaXNvNjQ2PgotICNpbmNsdWRl IDxsaW1pdHM+Ci0rI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLSAKLSAj aWZkZWYgX01TQ19WRVIKLWRpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC92 ZWN0b3ItdXNlLXR5cGUuY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC92 ZWN0b3ItdXNlLXR5cGUuY3BwCi0tLS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvdmVj dG9yLXVzZS10eXBlLmNwcAkyMDA4LTA1LTE1IDE1OjU4OjM4LjAwMDAwMDAwMCArMDIwMAotKysr IHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3Bw CTIwMTAtMDEtMjMgMTM6MTc6MjguMDAwMDAwMDAwICswMTAwCi1AQCAtMTAsOSArMTAsMTIgQEAK LSAjaW5jbHVkZSAic29jaS1teXNxbC5oIgotICNpbmNsdWRlICJjb21tb24uaCIKLSAjaW5jbHVk ZSA8c29jaS1wbGF0Zm9ybS5oPgotKy8vCi0gI2luY2x1ZGUgPGNpc282NDY+Ci0gI2luY2x1ZGUg PGxpbWl0cz4KLSsjaW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRlIDxjc3RyaW5nPgotKyNpbmNs dWRlIDxjdGltZT4KLSAKLSAjaWZkZWYgX01TQ19WRVIKLSAjcHJhZ21hIHdhcm5pbmcoZGlzYWJs ZTo0MzU1KQotZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29t bW9uLmNwcCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24u Y3BwCi0tLS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCTIw MDgtMDYtMjcgMTY6Mzg6MDUuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF80LXBhY2sv c3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAkyMDEwLTAxLTIzIDEzOjE3OjI4LjAw MDAwMDAwMCArMDEwMAotQEAgLTcsNyArNyw5IEBACi0gCi0gI2luY2x1ZGUgImNvbW1vbi5oIgot ICNpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsvLwotICNpbmNsdWRlIDxjc3RkbGliPgotKyNp bmNsdWRlIDxjc3RkaW8+Ci0gI2luY2x1ZGUgPGN0aW1lPgotIAotIAotZGlmZiAtTnVyIHNvY2kt My4wLjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwIHNv Y2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jl c3FsLmNwcAotLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0 LXBvc3RncmVzcWwuY3BwCTIwMDgtMDYtMDUgMjI6NDE6NTguMDAwMDAwMDAwICswMjAwCi0rKysg c29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3Rn cmVzcWwuY3BwCTIwMTAtMDEtMjMgMTM6MTc6MjguMDAwMDAwMDAwICswMTAwCi1AQCAtMTUsNiAr MTUsNyBAQAotICNpbmNsdWRlIDxjbWF0aD4KLSAjaW5jbHVkZSA8Y3RpbWU+Ci0gI2luY2x1ZGUg PGNzdGRsaWI+Ci0rI2luY2x1ZGUgPGNzdHJpbmc+Ci0gCi0gdXNpbmcgbmFtZXNwYWNlIHNvY2k7 Ci0gdXNpbmcgbmFtZXNwYWNlIHNvY2k6OnRlc3RzOwotZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3Jj L2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwLm9yaWcgc29jaS0z LjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwu Y3BwLm9yaWcKLS0tLSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVz dC1wb3N0Z3Jlc3FsLmNwcC5vcmlnCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw Ci0rKysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0 LXBvc3RncmVzcWwuY3BwLm9yaWcJMjAxMC0wMS0yMyAxMzoxNzoyOC4wMDAwMDAwMDAgKzAxMDAK LUBAIC0wLDAgKzEsNTE3IEBACi0rLy8KLSsvLyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOCBNYWNp ZWogU29iY3phaywgU3RlcGhlbiBIdXR0b24KLSsvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9v c3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCi0rLy8gKFNlZSBhY2NvbXBhbnlpbmcg ZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAotKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3Jn L0xJQ0VOU0VfMV8wLnR4dCkKLSsvLwotKwotKyNpbmNsdWRlICJzb2NpLmgiCi0rI2luY2x1ZGUg InNvY2ktcG9zdGdyZXNxbC5oIgotKyNpbmNsdWRlICJjb21tb24tdGVzdHMuaCIKLSsjaW5jbHVk ZSA8aW9zdHJlYW0+Ci0rI2luY2x1ZGUgPHNzdHJlYW0+Ci0rI2luY2x1ZGUgPHN0cmluZz4KLSsj aW5jbHVkZSA8Y2Fzc2VydD4KLSsjaW5jbHVkZSA8Y21hdGg+Ci0rI2luY2x1ZGUgPGN0aW1lPgot KyNpbmNsdWRlIDxjc3RkbGliPgotKwotK3VzaW5nIG5hbWVzcGFjZSBzb2NpOwotK3VzaW5nIG5h bWVzcGFjZSBzb2NpOjp0ZXN0czsKLSsKLStzdGQ6OnN0cmluZyBjb25uZWN0U3RyaW5nOwotK2Jh Y2tlbmRfZmFjdG9yeSBjb25zdCAmYmFja0VuZCA9IHBvc3RncmVzcWw7Ci0rCi0rLy8gUG9zdGdy ZXMtc3BlY2lmaWMgdGVzdHMKLSsKLStzdHJ1Y3Qgb2lkX3RhYmxlX2NyZWF0b3IgOiBwdWJsaWMg dGFibGVfY3JlYXRvcl9iYXNlCi0rewotKyAgICBvaWRfdGFibGVfY3JlYXRvcihzZXNzaW9uJiBz cWwpCi0rICAgIDogdGFibGVfY3JlYXRvcl9iYXNlKHNxbCkKLSsgICAgewotKyAgICAgICAgc3Fs IDw8ICJjcmVhdGUgdGFibGUgc29jaV90ZXN0ICgiCi0rICAgICAgICAgICAgICAgICIgaWQgaW50 ZWdlciwiCi0rICAgICAgICAgICAgICAgICIgbmFtZSB2YXJjaGFyKDEwMCkiCi0rICAgICAgICAg ICAgICAgICIpIHdpdGggb2lkcyI7Ci0rICAgIH0KLSt9OwotKwotKy8vIFJPV0lEIHRlc3QKLSsv LyBOb3RlOiBpbiBQb3N0Z3JlU1FMLCB0aGVyZSBpcyBubyBST1dJRCwgdGhlcmUgaXMgT0lELgot Ky8vIEl0IGlzIHN0aWxsIHByb3ZpZGVkIGFzIGEgc2VwYXJhdGUgdHlwZSBmb3IgInBvcnRhYmls aXR5IiwKLSsvLyB3aGF0ZXZlciB0aGF0IG1lYW5zLgotK3ZvaWQgdGVzdDEoKQotK3sKLSsgICAg ewotKyAgICAgICAgc2Vzc2lvbiBzcWwoYmFja0VuZCwgY29ubmVjdFN0cmluZyk7Ci0rCi0rICAg ICAgICBvaWRfdGFibGVfY3JlYXRvciB0YWJsZUNyZWF0b3Ioc3FsKTsKLSsKLSsgICAgICAgIHNx bCA8PCAiaW5zZXJ0IGludG8gc29jaV90ZXN0KGlkLCBuYW1lKSB2YWx1ZXMoNywgXCdKb2huXCcp IjsKLSsKLSsgICAgICAgIHJvd2lkIHJpZChzcWwpOwotKyAgICAgICAgc3FsIDw8ICJzZWxlY3Qg b2lkIGZyb20gc29jaV90ZXN0IHdoZXJlIGlkID0gNyIsIGludG8ocmlkKTsKLSsKLSsgICAgICAg IGludCBpZDsKLSsgICAgICAgIHN0ZDo6c3RyaW5nIG5hbWU7Ci0rCi0rI2lmbmRlZiBTT0NJX1BH U1FMX05PUEFSQU1TCi0rCi0rICAgICAgICBzcWwgPDwgInNlbGVjdCBpZCwgbmFtZSBmcm9tIHNv Y2lfdGVzdCB3aGVyZSBvaWQgPSA6cmlkIiwKLSsgICAgICAgICAgICBpbnRvKGlkKSwgaW50byhu YW1lKSwgdXNlKHJpZCk7Ci0rCi0rI2Vsc2UKLSsgICAgICAgIC8vIE9sZGVyIFBvc3RncmVTUUwg ZG9lcyBub3Qgc3VwcG9ydCB1c2UgZWxlbWVudHMuCi0rCi0rICAgICAgICBwb3N0Z3Jlc3FsX3Jv d2lkX2JhY2tlbmQgKnJiZQotKyAgICAgICAgICAgID0gc3RhdGljX2Nhc3Q8cG9zdGdyZXNxbF9y b3dpZF9iYWNrZW5kICo+KHJpZC5nZXRfYmFja2VuZCgpKTsKLSsKLSsgICAgICAgIHVuc2lnbmVk IGxvbmcgb2lkID0gcmJlLT52YWx1ZV87Ci0rCi0rICAgICAgICBzcWwgPDwgInNlbGVjdCBpZCwg bmFtZSBmcm9tIHNvY2lfdGVzdCB3aGVyZSBvaWQgPSAiIDw8IG9pZCwKLSsgICAgICAgICAgICBp bnRvKGlkKSwgaW50byhuYW1lKTsKLSsKLSsjZW5kaWYgLy8gU09DSV9QR1NRTF9OT1BBUkFNUwot KwotKyAgICAgICAgYXNzZXJ0KGlkID09IDcpOwotKyAgICAgICAgYXNzZXJ0KG5hbWUgPT0gIkpv aG4iKTsKLSsgICAgfQotKwotKyAgICBzdGQ6OmNvdXQgPDwgInRlc3QgMSBwYXNzZWQiIDw8IHN0 ZDo6ZW5kbDsKLSt9Ci0rCi0rLy8gZnVuY3Rpb24gY2FsbCB0ZXN0Ci0rY2xhc3MgZnVuY3Rpb25f Y3JlYXRvciA6IGZ1bmN0aW9uX2NyZWF0b3JfYmFzZQotK3sKLStwdWJsaWM6Ci0rCi0rICAgIGZ1 bmN0aW9uX2NyZWF0b3Ioc2Vzc2lvbiYgc2Vzc2lvbikKLSsgICAgOiBmdW5jdGlvbl9jcmVhdG9y X2Jhc2Uoc2Vzc2lvbikKLSsgICAgewotKyAgICAgICAgLy8gYmVmb3JlIGEgbGFuZ3VhZ2UgY2Fu IGJlIHVzZWQgaXQgbXVzdCBiZSBkZWZpbmVkCi0rICAgICAgICAvLyBpZiBpdCBoYXMgYWxyZWFk eSBiZWVuIGRlZmluZWQgdGhlbiBhbiBlcnJvciB3aWxsIG9jY3VyCi0rICAgICAgICB0cnkgeyBz ZXNzaW9uIDw8ICJjcmVhdGUgbGFuZ3VhZ2UgcGxwZ3NxbCI7IH0KLSsgICAgICAgIGNhdGNoIChz b2NpX2Vycm9yIGNvbnN0ICYpIHt9IC8vIGlnbm9yZSBpZiBlcnJvcgotKwotKyNpZm5kZWYgU09D SV9QR1NRTF9OT1BBUkFNUwotKwotKyAgICAgICAgc2Vzc2lvbiAgPDwKLSsgICAgICAgICAgICAi Y3JlYXRlIG9yIHJlcGxhY2UgZnVuY3Rpb24gc29jaV90ZXN0KG1zZyB2YXJjaGFyKSAiCi0rICAg ICAgICAgICAgInJldHVybnMgdmFyY2hhciBhcyAkJCAiCi0rICAgICAgICAgICAgImJlZ2luICIK LSsgICAgICAgICAgICAiICByZXR1cm4gbXNnOyAiCi0rICAgICAgICAgICAgImVuZCAkJCBsYW5n dWFnZSBwbHBnc3FsIjsKLSsjZWxzZQotKwotKyAgICAgICBzZXNzaW9uIDw8Ci0rICAgICAgICAg ICAgImNyZWF0ZSBvciByZXBsYWNlIGZ1bmN0aW9uIHNvY2lfdGVzdCh2YXJjaGFyKSAiCi0rICAg ICAgICAgICAgInJldHVybnMgdmFyY2hhciBhcyBcJyAiCi0rICAgICAgICAgICAgImJlZ2luICIK LSsgICAgICAgICAgICAiICByZXR1cm4gJDE7ICIKLSsgICAgICAgICAgICAiZW5kIFwnIGxhbmd1 YWdlIHBscGdzcWwiOwotKyNlbmRpZgotKyAgICB9Ci0rCi0rcHJvdGVjdGVkOgotKwotKyAgICBz dGQ6OnN0cmluZyBkcm9wX3N0YXRlbWVudCgpCi0rICAgIHsKLSsgICAgICAgIHJldHVybiAiZHJv cCBmdW5jdGlvbiBzb2NpX3Rlc3QodmFyY2hhcikiOwotKyAgICB9Ci0rfTsKLSsKLSt2b2lkIHRl c3QyKCkKLSt7Ci0rICAgIHsKLSsgICAgICAgIHNlc3Npb24gc3FsKGJhY2tFbmQsIGNvbm5lY3RT dHJpbmcpOwotKwotKyAgICAgICAgZnVuY3Rpb25fY3JlYXRvciBmdW5jdGlvbkNyZWF0b3Ioc3Fs KTsKLSsKLSsgICAgICAgIHN0ZDo6c3RyaW5nIGluKCJteSBtZXNzYWdlIik7Ci0rICAgICAgICBz dGQ6OnN0cmluZyBvdXQ7Ci0rCi0rI2lmbmRlZiBTT0NJX1BHU1FMX05PUEFSQU1TCi0rCi0rICAg ICAgICBzdGF0ZW1lbnQgc3QgPSAoc3FsLnByZXBhcmUgPDwKLSsgICAgICAgICAgICAic2VsZWN0 IHNvY2lfdGVzdCg6aW5wdXQpIiwKLSsgICAgICAgICAgICBpbnRvKG91dCksCi0rICAgICAgICAg ICAgdXNlKGluLCAiaW5wdXQiKSk7Ci0rCi0rI2Vsc2UKLSsgICAgICAgIC8vIE9sZGVyIFBvc3Rn cmVTUUwgZG9lcyBub3Qgc3VwcG9ydCB1c2UgZWxlbWVudHMuCi0rCi0rICAgICAgICBzdGF0ZW1l bnQgc3QgPSAoc3FsLnByZXBhcmUgPDwKLSsgICAgICAgICAgICAic2VsZWN0IHNvY2lfdGVzdChc JyIgPDwgaW4gPDwgIlwnKSIsCi0rICAgICAgICAgICAgaW50byhvdXQpKTsKLSsKLSsjZW5kaWYg Ly8gU09DSV9QR1NRTF9OT1BBUkFNUwotKwotKyAgICAgICAgc3QuZXhlY3V0ZSh0cnVlKTsKLSsg ICAgICAgIGFzc2VydChvdXQgPT0gaW4pOwotKwotKyAgICAgICAgLy8gZXhwbGljaXQgcHJvY2Vk dXJlIHN5bnRheAotKyAgICAgICAgewotKyAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGluKCJteSBt ZXNzYWdlMiIpOwotKyAgICAgICAgICAgIHN0ZDo6c3RyaW5nIG91dDsKLSsKLSsjaWZuZGVmIFNP Q0lfUEdTUUxfTk9QQVJBTVMKLSsKLSsgICAgICAgICAgICBwcm9jZWR1cmUgcHJvYyA9IChzcWwu cHJlcGFyZSA8PAotKyAgICAgICAgICAgICAgICAic29jaV90ZXN0KDppbnB1dCkiLAotKyAgICAg ICAgICAgICAgICBpbnRvKG91dCksIHVzZShpbiwgImlucHV0IikpOwotKwotKyNlbHNlCi0rICAg ICAgICAvLyBPbGRlciBQb3N0Z3JlU1FMIGRvZXMgbm90IHN1cHBvcnQgdXNlIGVsZW1lbnRzLgot KwotKyAgICAgICAgICAgIHByb2NlZHVyZSBwcm9jID0gKHNxbC5wcmVwYXJlIDw8Ci0rICAgICAg ICAgICAgICAgICJzb2NpX3Rlc3QoXCciIDw8IGluIDw8ICJcJykiLCBpbnRvKG91dCkpOwotKwot KyNlbmRpZiAvLyBTT0NJX1BHU1FMX05PUEFSQU1TCi0rCi0rICAgICAgICAgICAgcHJvYy5leGVj dXRlKHRydWUpOwotKyAgICAgICAgICAgIGFzc2VydChvdXQgPT0gaW4pOwotKyAgICAgICAgfQot KyAgICB9Ci0rCi0rICAgIHN0ZDo6Y291dCA8PCAidGVzdCAyIHBhc3NlZCIgPDwgc3RkOjplbmRs OwotK30KLSsKLSsvLyBCTE9CIHRlc3QKLStzdHJ1Y3QgYmxvYl90YWJsZV9jcmVhdG9yIDogcHVi bGljIHRhYmxlX2NyZWF0b3JfYmFzZQotK3sKLSsgICAgYmxvYl90YWJsZV9jcmVhdG9yKHNlc3Np b24mIHNlc3Npb24pCi0rICAgIDogdGFibGVfY3JlYXRvcl9iYXNlKHNlc3Npb24pCi0rICAgIHsK LSsgICAgICAgIHNlc3Npb24gPDwKLSsgICAgICAgICAgICAgImNyZWF0ZSB0YWJsZSBzb2NpX3Rl c3QgKCIKLSsgICAgICAgICAgICAgIiAgICBpZCBpbnRlZ2VyLCIKLSsgICAgICAgICAgICAgIiAg ICBpbWcgb2lkIgotKyAgICAgICAgICAgICAiKSI7Ci0rICAgIH0KLSt9OwotKwotK3ZvaWQgdGVz dDMoKQotK3sKLSsgICAgewotKyAgICAgICAgc2Vzc2lvbiBzcWwoYmFja0VuZCwgY29ubmVjdFN0 cmluZyk7Ci0rCi0rICAgICAgICBibG9iX3RhYmxlX2NyZWF0b3IgdGFibGVDcmVhdG9yKHNxbCk7 Ci0rICAgICAgICAKLSsgICAgICAgIGNoYXIgYnVmW10gPSAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1 dnd4eXoiOwotKwotKyAgICAgICAgc3FsIDw8ICJpbnNlcnQgaW50byBzb2NpX3Rlc3QoaWQsIGlt ZykgdmFsdWVzKDcsIGxvX2NyZWF0KC0xKSkiOwotKwotKyAgICAgICAgLy8gaW4gUG9zdGdyZVNR TCwgQkxPQiBvcGVyYXRpb25zIG11c3QgYmUgd2l0aGluIHRyYW5zYWN0aW9uIGJsb2NrCi0rICAg ICAgICB0cmFuc2FjdGlvbiB0cihzcWwpOwotKwotKyAgICAgICAgewotKyAgICAgICAgICAgIGJs b2IgYihzcWwpOwotKwotKyAgICAgICAgICAgIHNxbCA8PCAic2VsZWN0IGltZyBmcm9tIHNvY2lf dGVzdCB3aGVyZSBpZCA9IDciLCBpbnRvKGIpOwotKyAgICAgICAgICAgIGFzc2VydChiLmdldF9s ZW4oKSA9PSAwKTsKLSsKLSsgICAgICAgICAgICBiLndyaXRlKDAsIGJ1Ziwgc2l6ZW9mKGJ1Zikp OwotKyAgICAgICAgICAgIGFzc2VydChiLmdldF9sZW4oKSA9PSBzaXplb2YoYnVmKSk7Ci0rCi0r ICAgICAgICAgICAgYi5hcHBlbmQoYnVmLCBzaXplb2YoYnVmKSk7Ci0rICAgICAgICAgICAgYXNz ZXJ0KGIuZ2V0X2xlbigpID09IDIgKiBzaXplb2YoYnVmKSk7Ci0rICAgICAgICB9Ci0rICAgICAg ICB7Ci0rICAgICAgICAgICAgYmxvYiBiKHNxbCk7Ci0rICAgICAgICAgICAgc3FsIDw8ICJzZWxl Y3QgaW1nIGZyb20gc29jaV90ZXN0IHdoZXJlIGlkID0gNyIsIGludG8oYik7Ci0rICAgICAgICAg ICAgYXNzZXJ0KGIuZ2V0X2xlbigpID09IDIgKiBzaXplb2YoYnVmKSk7Ci0rICAgICAgICAgICAg Y2hhciBidWYyWzEwMF07Ci0rICAgICAgICAgICAgYi5yZWFkKDAsIGJ1ZjIsIDEwKTsKLSsgICAg ICAgICAgICBhc3NlcnQoc3RybmNtcChidWYyLCAiYWJjZGVmZ2hpaiIsIDEwKSA9PSAwKTsKLSsg ICAgICAgIH0KLSsKLSsgICAgICAgIHVuc2lnbmVkIGxvbmcgb2lkOwotKyAgICAgICAgc3FsIDw8 ICJzZWxlY3QgaW1nIGZyb20gc29jaV90ZXN0IHdoZXJlIGlkID0gNyIsIGludG8ob2lkKTsKLSsg ICAgICAgIHNxbCA8PCAic2VsZWN0IGxvX3VubGluaygiIDw8IG9pZCA8PCAiKSI7Ci0rICAgIH0K LSsKLSsgICAgc3RkOjpjb3V0IDw8ICJ0ZXN0IDMgcGFzc2VkIiA8PCBzdGQ6OmVuZGw7Ci0rfQot KwotK3N0cnVjdCBsb25nbG9uZ190YWJsZV9jcmVhdG9yIDogdGFibGVfY3JlYXRvcl9iYXNlCi0r ewotKyAgICBsb25nbG9uZ190YWJsZV9jcmVhdG9yKHNlc3Npb24gJiBzcWwpCi0rICAgICAgICA6 IHRhYmxlX2NyZWF0b3JfYmFzZShzcWwpCi0rICAgIHsKLSsgICAgICAgIHNxbCA8PCAiY3JlYXRl IHRhYmxlIHNvY2lfdGVzdCh2YWwgaW50OCkiOwotKyAgICB9Ci0rfTsKLSsKLSsvLyBsb25nIGxv bmcgdGVzdAotK3ZvaWQgdGVzdDQoKQotK3sKLSsgICAgewotKyAgICAgICAgc2Vzc2lvbiBzcWwo YmFja0VuZCwgY29ubmVjdFN0cmluZyk7Ci0rCi0rICAgICAgICBsb25nbG9uZ190YWJsZV9jcmVh dG9yIHRhYmxlQ3JlYXRvcihzcWwpOwotKwotKyAgICAgICAgbG9uZyBsb25nIHYxID0gMTAwMDAw MDAwMDAwMExMOwotKyAgICAgICAgYXNzZXJ0KHYxIC8gMTAwMDAwMCA9PSAxMDAwMDAwKTsKLSsK LSsgICAgICAgIHNxbCA8PCAiaW5zZXJ0IGludG8gc29jaV90ZXN0KHZhbCkgdmFsdWVzKDp2YWwp IiwgdXNlKHYxKTsKLSsKLSsgICAgICAgIGxvbmcgbG9uZyB2MiA9IDBMTDsKLSsgICAgICAgIHNx bCA8PCAic2VsZWN0IHZhbCBmcm9tIHNvY2lfdGVzdCIsIGludG8odjIpOwotKwotKyAgICAgICAg YXNzZXJ0KHYyID09IHYxKTsKLSsgICAgfQotKwotKyAgICAvLyB2ZWN0b3I8bG9uZyBsb25nPgot KyAgICB7Ci0rICAgICAgICBzZXNzaW9uIHNxbChiYWNrRW5kLCBjb25uZWN0U3RyaW5nKTsKLSsK LSsgICAgICAgIGxvbmdsb25nX3RhYmxlX2NyZWF0b3IgdGFibGVDcmVhdG9yKHNxbCk7Ci0rCi0r ICAgICAgICBzdGQ6OnZlY3Rvcjxsb25nIGxvbmc+IHYxOwotKyAgICAgICAgdjEucHVzaF9iYWNr KDEwMDAwMDAwMDAwMDBMTCk7Ci0rICAgICAgICB2MS5wdXNoX2JhY2soMTAwMDAwMDAwMDAwMUxM KTsKLSsgICAgICAgIHYxLnB1c2hfYmFjaygxMDAwMDAwMDAwMDAyTEwpOwotKyAgICAgICAgdjEu cHVzaF9iYWNrKDEwMDAwMDAwMDAwMDNMTCk7Ci0rICAgICAgICB2MS5wdXNoX2JhY2soMTAwMDAw MDAwMDAwNExMKTsKLSsKLSsgICAgICAgIHNxbCA8PCAiaW5zZXJ0IGludG8gc29jaV90ZXN0KHZh bCkgdmFsdWVzKDp2YWwpIiwgdXNlKHYxKTsKLSsKLSsgICAgICAgIHN0ZDo6dmVjdG9yPGxvbmcg bG9uZz4gdjIoMTApOwotKyAgICAgICAgc3FsIDw8ICJzZWxlY3QgdmFsIGZyb20gc29jaV90ZXN0 IG9yZGVyIGJ5IHZhbCBkZXNjIiwgaW50byh2Mik7Ci0rCi0rICAgICAgICBhc3NlcnQodjIuc2l6 ZSgpID09IDUpOwotKyAgICAgICAgYXNzZXJ0KHYyWzBdID09IDEwMDAwMDAwMDAwMDRMTCk7Ci0r ICAgICAgICBhc3NlcnQodjJbMV0gPT0gMTAwMDAwMDAwMDAwM0xMKTsKLSsgICAgICAgIGFzc2Vy dCh2MlsyXSA9PSAxMDAwMDAwMDAwMDAyTEwpOwotKyAgICAgICAgYXNzZXJ0KHYyWzNdID09IDEw MDAwMDAwMDAwMDFMTCk7Ci0rICAgICAgICBhc3NlcnQodjJbNF0gPT0gMTAwMDAwMDAwMDAwMExM KTsKLSsgICAgfQotKwotKyAgICBzdGQ6OmNvdXQgPDwgInRlc3QgNCBwYXNzZWQiIDw8IHN0ZDo6 ZW5kbDsKLSt9Ci0rCi0rc3RydWN0IGJvb2xlYW5fdGFibGVfY3JlYXRvciA6IHRhYmxlX2NyZWF0 b3JfYmFzZQotK3sKLSsgICAgYm9vbGVhbl90YWJsZV9jcmVhdG9yKHNlc3Npb24gJiBzcWwpCi0r ICAgICAgICA6IHRhYmxlX2NyZWF0b3JfYmFzZShzcWwpCi0rICAgIHsKLSsgICAgICAgIHNxbCA8 PCAiY3JlYXRlIHRhYmxlIHNvY2lfdGVzdCh2YWwgYm9vbGVhbikiOwotKyAgICB9Ci0rfTsKLSsK LSt2b2lkIHRlc3Q1KCkKLSt7Ci0rICAgIHsKLSsgICAgICAgIHNlc3Npb24gc3FsKGJhY2tFbmQs IGNvbm5lY3RTdHJpbmcpOwotKwotKyAgICAgICAgYm9vbGVhbl90YWJsZV9jcmVhdG9yIHRhYmxl Q3JlYXRvcihzcWwpOwotKwotKyAgICAgICAgaW50IGkxID0gMDsKLSsKLSsgICAgICAgIHNxbCA8 PCAiaW5zZXJ0IGludG8gc29jaV90ZXN0KHZhbCkgdmFsdWVzKDp2YWwpIiwgdXNlKGkxKTsKLSsK LSsgICAgICAgIGludCBpMiA9IDc7Ci0rICAgICAgICBzcWwgPDwgInNlbGVjdCB2YWwgZnJvbSBz b2NpX3Rlc3QiLCBpbnRvKGkyKTsKLSsKLSsgICAgICAgIGFzc2VydChpMiA9PSBpMSk7Ci0rCi0r ICAgICAgICBzcWwgPDwgInVwZGF0ZSBzb2NpX3Rlc3Qgc2V0IHZhbCA9IHRydWUiOwotKyAgICAg ICAgc3FsIDw8ICJzZWxlY3QgdmFsIGZyb20gc29jaV90ZXN0IiwgaW50byhpMik7Ci0rICAgICAg ICBhc3NlcnQoaTIgPT0gMSk7Ci0rICAgIH0KLSsKLSsgICAgc3RkOjpjb3V0IDw8ICJ0ZXN0IDUg cGFzc2VkIiA8PCBzdGQ6OmVuZGw7Ci0rfQotKwotKy8vIGR5bmFtaWMgYmFja2VuZCB0ZXN0Ci0r dm9pZCB0ZXN0NigpCi0rewotKyAgICB0cnkKLSsgICAgewotKyAgICAgICAgc2Vzc2lvbiBzcWwo Im5vc3VjaGJhY2tlbmQ6Ly8iICsgY29ubmVjdFN0cmluZyk7Ci0rICAgICAgICBhc3NlcnQoZmFs c2UpOwotKyAgICB9Ci0rICAgIGNhdGNoIChzb2NpX2Vycm9yIGNvbnN0ICYgZSkKLSsgICAgewot KyAgICAgICAgYXNzZXJ0KGUud2hhdCgpID09IHN0ZDo6c3RyaW5nKCJGYWlsZWQgdG8gb3Blbjog bGlic29jaV9ub3N1Y2hiYWNrZW5kLnNvIikpOwotKyAgICB9Ci0rCi0rICAgIHsKLSsgICAgICAg IGR5bmFtaWNfYmFja2VuZHM6OnJlZ2lzdGVyX2JhY2tlbmQoInBnc3FsIiwgYmFja0VuZCk7Ci0r Ci0rICAgICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gYmFja2VuZHMgPSBkeW5hbWljX2Jh Y2tlbmRzOjpsaXN0X2FsbCgpOwotKyAgICAgICAgYXNzZXJ0KGJhY2tlbmRzLnNpemUoKSA9PSAx KTsKLSsgICAgICAgIGFzc2VydChiYWNrZW5kc1swXSA9PSAicGdzcWwiKTsKLSsKLSsgICAgICAg IHsKLSsgICAgICAgICAgICBzZXNzaW9uIHNxbCgicGdzcWw6Ly8iICsgY29ubmVjdFN0cmluZyk7 Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBkeW5hbWljX2JhY2tlbmRzOjp1bmxvYWQoInBnc3Fs Iik7Ci0rCi0rICAgICAgICBiYWNrZW5kcyA9IGR5bmFtaWNfYmFja2VuZHM6Omxpc3RfYWxsKCk7 Ci0rICAgICAgICBhc3NlcnQoYmFja2VuZHMuZW1wdHkoKSk7Ci0rICAgIH0KLSsKLSsgICAgewot KyAgICAgICAgc2Vzc2lvbiBzcWwoInBvc3RncmVzcWw6Ly8iICsgY29ubmVjdFN0cmluZyk7Ci0r ICAgIH0KLSsKLSsgICAgc3RkOjpjb3V0IDw8ICJ0ZXN0IDYgcGFzc2VkIiA8PCBzdGQ6OmVuZGw7 Ci0rfQotKwotK3ZvaWQgdGVzdDcoKQotK3sKLSsgICAgewotKyAgICAgICAgc2Vzc2lvbiBzcWwo YmFja0VuZCwgY29ubmVjdFN0cmluZyk7Ci0rCi0rICAgICAgICBpbnQgaTsKLSsgICAgICAgIHNx bCA8PCAic2VsZWN0IDEyMyIsIGludG8oaSk7Ci0rICAgICAgICBhc3NlcnQoaSA9PSAxMjMpOwot KwotKyAgICAgICAgdHJ5Ci0rICAgICAgICB7Ci0rICAgICAgICAgICAgc3FsIDw8ICJzZWxlY3Qg J0FCQyciLCBpbnRvIChpKTsKLSsgICAgICAgICAgICBhc3NlcnQoZmFsc2UpOwotKyAgICAgICAg fQotKyAgICAgICAgY2F0Y2ggKHNvY2lfZXJyb3IgY29uc3QgJiBlKQotKyAgICAgICAgewotKyAg ICAgICAgICAgIGFzc2VydChlLndoYXQoKSA9PSBzdGQ6OnN0cmluZygiQ2Fubm90IGNvbnZlcnQg ZGF0YS4iKSk7Ci0rICAgICAgICB9Ci0rICAgIH0KLSsKLSsgICAgc3RkOjpjb3V0IDw8ICJ0ZXN0 IDcgcGFzc2VkIiA8PCBzdGQ6OmVuZGw7Ci0rfQotKwotK3ZvaWQgdGVzdDgoKQotK3sKLSsgICAg ewotKyAgICAgICAgc2Vzc2lvbiBzcWwoYmFja0VuZCwgY29ubmVjdFN0cmluZyk7Ci0rCi0rICAg ICAgICBhc3NlcnQoc3FsLmdldF9iYWNrZW5kX25hbWUoKSA9PSAicG9zdGdyZXNxbCIpOwotKyAg ICB9Ci0rCi0rICAgIHN0ZDo6Y291dCA8PCAidGVzdCA4IHBhc3NlZCIgPDwgc3RkOjplbmRsOwot K30KLSsKLSsvLyBEREwgQ3JlYXRpb24gb2JqZWN0cyBmb3IgY29tbW9uIHRlc3RzCi0rc3RydWN0 IHRhYmxlX2NyZWF0b3Jfb25lIDogcHVibGljIHRhYmxlX2NyZWF0b3JfYmFzZQotK3sKLSsgICAg dGFibGVfY3JlYXRvcl9vbmUoc2Vzc2lvbiYgc2Vzc2lvbikKLSsgICAgICAgIDogdGFibGVfY3Jl YXRvcl9iYXNlKHNlc3Npb24pCi0rICAgIHsKLSsgICAgICAgIHNlc3Npb24gPDwgImNyZWF0ZSB0 YWJsZSBzb2NpX3Rlc3QoaWQgaW50ZWdlciwgdmFsIGludGVnZXIsIGMgY2hhciwgIgotKyAgICAg ICAgICAgICAgICAgInN0ciB2YXJjaGFyKDIwKSwgc2ggaW50MiwgdWwgbnVtZXJpYygyMCksIGQg ZmxvYXQ4LCAiCi0rICAgICAgICAgICAgICAgICAidG0gdGltZXN0YW1wLCBpMSBpbnRlZ2VyLCBp MiBpbnRlZ2VyLCBpMyBpbnRlZ2VyLCAiCi0rICAgICAgICAgICAgICAgICAibmFtZSB2YXJjaGFy KDIwKSkiOwotKyAgICB9Ci0rfTsKLSsKLStzdHJ1Y3QgdGFibGVfY3JlYXRvcl90d28gOiBwdWJs aWMgdGFibGVfY3JlYXRvcl9iYXNlCi0rewotKyAgICB0YWJsZV9jcmVhdG9yX3R3byhzZXNzaW9u JiBzZXNzaW9uKQotKyAgICAgICAgOiB0YWJsZV9jcmVhdG9yX2Jhc2Uoc2Vzc2lvbikKLSsgICAg ewotKyAgICAgICAgc2Vzc2lvbiAgPDwgImNyZWF0ZSB0YWJsZSBzb2NpX3Rlc3QobnVtX2Zsb2F0 IGZsb2F0OCwgbnVtX2ludCBpbnRlZ2VyLCIKLSsgICAgICAgICAgICAgICAgICAgICAiIG5hbWUg dmFyY2hhcigyMCksIHNvbWV0aW1lIHRpbWVzdGFtcCwgY2hyIGNoYXIpIjsKLSsgICAgfQotK307 Ci0rCi0rc3RydWN0IHRhYmxlX2NyZWF0b3JfdGhyZWUgOiBwdWJsaWMgdGFibGVfY3JlYXRvcl9i YXNlCi0rewotKyAgICB0YWJsZV9jcmVhdG9yX3RocmVlKHNlc3Npb24mIHNlc3Npb24pCi0rICAg ICAgICA6IHRhYmxlX2NyZWF0b3JfYmFzZShzZXNzaW9uKQotKyAgICB7Ci0rICAgICAgICBzZXNz aW9uIDw8ICJjcmVhdGUgdGFibGUgc29jaV90ZXN0KG5hbWUgdmFyY2hhcigxMDApIG5vdCBudWxs LCAiCi0rICAgICAgICAgICAgInBob25lIHZhcmNoYXIoMTUpKSI7Ci0rICAgIH0KLSt9OwotKwot Ky8vCi0rLy8gU3VwcG9ydCBmb3Igc29jaSBDb21tb24gVGVzdHMKLSsvLwotKwotK2NsYXNzIHRl c3RfY29udGV4dCA6IHB1YmxpYyB0ZXN0X2NvbnRleHRfYmFzZQotK3sKLStwdWJsaWM6Ci0rICAg IHRlc3RfY29udGV4dChiYWNrZW5kX2ZhY3RvcnkgY29uc3QgJmJhY2tFbmQsCi0rICAgICAgICAg ICAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0ICZjb25uZWN0U3RyaW5nKQotKyAgICAgICAgOiB0ZXN0 X2NvbnRleHRfYmFzZShiYWNrRW5kLCBjb25uZWN0U3RyaW5nKSB7fQotKwotKyAgICB0YWJsZV9j cmVhdG9yX2Jhc2UqIHRhYmxlX2NyZWF0b3JfMShzZXNzaW9uJiBzKSBjb25zdAotKyAgICB7Ci0r ICAgICAgICByZXR1cm4gbmV3IHRhYmxlX2NyZWF0b3Jfb25lKHMpOwotKyAgICB9Ci0rCi0rICAg IHRhYmxlX2NyZWF0b3JfYmFzZSogdGFibGVfY3JlYXRvcl8yKHNlc3Npb24mIHMpIGNvbnN0Ci0r ICAgIHsKLSsgICAgICAgIHJldHVybiBuZXcgdGFibGVfY3JlYXRvcl90d28ocyk7Ci0rICAgIH0K LSsKLSsgICAgdGFibGVfY3JlYXRvcl9iYXNlKiB0YWJsZV9jcmVhdG9yXzMoc2Vzc2lvbiYgcykg Y29uc3QKLSsgICAgewotKyAgICAgICAgcmV0dXJuIG5ldyB0YWJsZV9jcmVhdG9yX3RocmVlKHMp OwotKyAgICB9Ci0rCi0rICAgIHN0ZDo6c3RyaW5nIHRvX2RhdGVfdGltZShzdGQ6OnN0cmluZyBj b25zdCAmZGF0ZHRfc3RyaW5nKSBjb25zdAotKyAgICB7Ci0rICAgICAgICByZXR1cm4gInRpbWVz dGFtcHR6KFwnIiArIGRhdGR0X3N0cmluZyArICJcJykiOwotKyAgICB9Ci0rCi0rfTsKLSsKLSsK LStpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCi0rewotKwotKyNpZmRlZiBfTVNDX1ZF UgotKyAgICAvLyBSZWRpcmVjdCBlcnJvcnMsIHVucmVjb3ZlcmFibGUgcHJvYmxlbXMsIGFuZCBh c3NlcnQoKSBmYWlsdXJlcyB0byBTVERFUlIsCi0rICAgIC8vIGluc3RlYWQgb2YgZGVidWcgbWVz c2FnZSB3aW5kb3cuCi0rICAgIC8vIFRoaXMgaGFjayBpcyByZXF1aXJlZCB0byBydW4gYXNzZXIo KS1kcml2ZW4gdGVzdHMgYnkgQnVpbGRib3QuCi0rICAgIC8vIE5PVEU6IENvbW1lbnQgdGhpcyAy IGxpbmVzIGZvciBkZWJ1Z2dpbmcgd2l0aCBWaXN1YWwgQysrIGRlYnVnZ2VyIHRvIGNhdGNoIGFz c2VydGlvbnMgaW5zaWRlLgotKyAgICBfQ3J0U2V0UmVwb3J0TW9kZShfQ1JUX0VSUk9SLCBfQ1JU REJHX01PREVfRklMRSk7Ci0rICAgIF9DcnRTZXRSZXBvcnRGaWxlKF9DUlRfRVJST1IsIF9DUlRE QkdfRklMRV9TVERFUlIpOwotKyNlbmRpZiAvL19NU0NfVkVSCi0rCi0rICAgIGlmIChhcmdjID09 IDIpCi0rICAgIHsKLSsgICAgICAgIGNvbm5lY3RTdHJpbmcgPSBhcmd2WzFdOwotKyAgICB9Ci0r ICAgIGVsc2UKLSsgICAgewotKyAgICAgICAgc3RkOjpjb3V0IDw8ICJ1c2FnZTogIiA8PCBhcmd2 WzBdCi0rICAgICAgICAgICAgPDwgIiBjb25uZWN0c3RyaW5nXG4iCi0rICAgICAgICAgICAgPDwg ImV4YW1wbGU6ICIgPDwgYXJndlswXQotKyAgICAgICAgICAgIDw8ICIgXCdjb25uZWN0X3N0cmlu Z19mb3JfUG9zdGdyZVNRTFwnXG4iOwotKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKLSsg ICAgfQotKwotKyAgICB0cnkKLSsgICAgewotKyAgICAgICAgdGVzdF9jb250ZXh0IHRjKGJhY2tF bmQsIGNvbm5lY3RTdHJpbmcpOwotKyAgICAgICAgY29tbW9uX3Rlc3RzIHRlc3RzKHRjKTsKLSsg ICAgICAgIHRlc3RzLnJ1bigpOwotKwotKyAgICAgICAgc3RkOjpjb3V0IDw8ICJcblNPQ0kgUG9z dGdyZXMgVGVzdHM6XG5cbiI7Ci0rCi0rICAgICAgICB0ZXN0MSgpOwotKyAgICAgICAgdGVzdDIo KTsKLSsgICAgICAgIHRlc3QzKCk7Ci0rICAgICAgICB0ZXN0NCgpOwotKyAgICAgICAgdGVzdDUo KTsKLSsKLSsvLyAgICAgICAgIHRlc3Q2KCk7Ci0rICAgICAgICBzdGQ6OmNvdXQgPDwgInRlc3Qg NiBza2lwcGVkIChkeW5hbWljIGJhY2tlbmQpXG4iOwotKwotKyAgICAgICAgdGVzdDcoKTsKLSsg ICAgICAgIHRlc3Q4KCk7Ci0rCi0rICAgICAgICBzdGQ6OmNvdXQgPDwgIlxuT0ssIGFsbCB0ZXN0 cyBwYXNzZWQuXG5cbiI7Ci0rICAgICAgICByZXR1cm4gRVhJVF9TVUNDRVNTOwotKyAgICB9Ci0r ICAgIGNhdGNoIChzdGQ6OmV4Y2VwdGlvbiBjb25zdCAmIGUpCi0rICAgIHsKLSsgICAgICAgIHN0 ZDo6Y291dCA8PCBlLndoYXQoKSA8PCAnXG4nOwotKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVS RTsKLSsgICAgfQotK30KLWRpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9jb3JlL3NvY2ktc2ltcGxl LmNwcCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvY29yZS9zb2NpLXNpbXBsZS5jcHAKLS0tLSBzb2Np LTMuMC4wL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcAkyMDA4LTA3LTAxIDA5OjQyOjI1LjAwMDAw MDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNw cAkyMDEwLTAxLTIzIDEzOjE3OjI4LjAwMDAwMDAwMCArMDEwMAotQEAgLTksNiArOSw4IEBACi0g Ci0gI2luY2x1ZGUgInNvY2ktc2ltcGxlLmgiCi0gI2luY2x1ZGUgInNvY2kuaCIKLSsvLwotKyNp bmNsdWRlIDxjc3RkaW8+Ci0gCi0gdXNpbmcgbmFtZXNwYWNlIHNvY2k7Ci0gCgpkaWZmIC0tZ2l0 IGEvc29jaS0zLjAuMC0xNi1maXgtZ251LWF1dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoIGIv c29jaS0zLjAuMC0xNi1maXgtZ251LWF1dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MmY5ZjNmLi4wMDAwMDAwCi0tLSBhL3NvY2ktMy4w LjAtMTYtZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDYyMzM5ICswLDAgQEAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9hY2xvY2Fs Lm00IHNvY2ktMy4wLjBfdHJlcDMwMC9hY2xvY2FsLm00Ci0tLS0gc29jaS0zLjAuMF80LXBhY2sv YWNsb2NhbC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2kt My4wLjBfdHJlcDMwMC9hY2xvY2FsLm00CTIwMTAtMDEtMjMgMTQ6NDQ6NDcuMDAwMDAwMDAwICsw MTAwCi1AQCAtMCwwICsxLDk2MSBAQAotKyMgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgYWNs b2NhbCAxLjExLjEgLSotIEF1dG9jb25mIC0qLQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAx OTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LAotKyMgMjAwNSwg MjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0r IyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0 ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMg bm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEK LSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLSttNF9pZm5kZWYoW0FDX0FVVE9DT05GX1ZFUlNJ T05dLAotKyAgW200X2NvcHkoW200X1BBQ0tBR0VfVkVSU0lPTl0sIFtBQ19BVVRPQ09ORl9WRVJT SU9OXSldKWRubAotK200X2lmKG00X2RlZm4oW0FDX0FVVE9DT05GX1ZFUlNJT05dKSwgWzIuNjNd LCwKLStbbTRfd2FybmluZyhbdGhpcyBmaWxlIHdhcyBnZW5lcmF0ZWQgZm9yIGF1dG9jb25mIDIu NjMuCi0rWW91IGhhdmUgYW5vdGhlciB2ZXJzaW9uIG9mIGF1dG9jb25mLiAgSXQgbWF5IHdvcmss IGJ1dCBpcyBub3QgZ3VhcmFudGVlZCB0by4KLStJZiB5b3UgaGF2ZSBwcm9ibGVtcywgeW91IG1h eSBuZWVkIHRvIHJlZ2VuZXJhdGUgdGhlIGJ1aWxkIHN5c3RlbSBlbnRpcmVseS4KLStUbyBkbyBz bywgdXNlIHRoZSBwcm9jZWR1cmUgZG9jdW1lbnRlZCBieSB0aGUgcGFja2FnZSwgdHlwaWNhbGx5 IGBhdXRvcmVjb25mJy5dKV0pCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDMsIDIwMDUs IDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsj IFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u Ci0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRl IGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBu b3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgQU1fQVVUT01BS0VfVkVSU0lPTihWRVJTSU9OKQot KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQXV0b21ha2UgWC5ZIHRyYWNlcyB0 aGlzIG1hY3JvIHRvIGVuc3VyZSBhY2xvY2FsLm00IGhhcyBiZWVuCi0rIyBnZW5lcmF0ZWQgZnJv bSB0aGUgbTQgZmlsZXMgYWNjb21wYW55aW5nIEF1dG9tYWtlIFguWS4KLSsjIChUaGlzIHByaXZh dGUgbWFjcm8gc2hvdWxkIG5vdCBiZSBjYWxsZWQgb3V0c2lkZSB0aGlzIGZpbGUuKQotK0FDX0RF RlVOKFtBTV9BVVRPTUFLRV9WRVJTSU9OXSwKLStbYW1fX2FwaV92ZXJzaW9uPScxLjExJwotK2Ru bCBTb21lIHVzZXJzIGZpbmQgQU1fQVVUT01BS0VfVkVSU0lPTiBhbmQgbWlzdGFrZSBpdCBmb3Ig YSB3YXkgdG8KLStkbmwgcmVxdWlyZSBzb21lIG1pbmltdW0gdmVyc2lvbi4gIFBvaW50IHRoZW0g dG8gdGhlIHJpZ2h0IG1hY3JvLgotK200X2lmKFskMV0sIFsxLjExLjFdLCBbXSwKLSsgICAgICBb QUNfRkFUQUwoW0RvIG5vdCBjYWxsICQwLCB1c2UgQU1fSU5JVF9BVVRPTUFLRShbJDFdKS5dKV0p ZG5sCi0rXSkKLSsKLSsjIF9BTV9BVVRPQ09ORl9WRVJTSU9OKFZFUlNJT04pCi0rIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgYWNsb2NhbCB0cmFjZXMgdGhpcyBtYWNybyB0byBm aW5kIHRoZSBBdXRvY29uZiB2ZXJzaW9uLgotKyMgVGhpcyBpcyBhIHByaXZhdGUgbWFjcm8gdG9v LiAgVXNpbmcgbTRfZGVmaW5lIHNpbXBsaWZpZXMKLSsjIHRoZSBsb2dpYyBpbiBhY2xvY2FsLCB3 aGljaCBjYW4gc2ltcGx5IGlnbm9yZSB0aGlzIGRlZmluaXRpb24uCi0rbTRfZGVmaW5lKFtfQU1f QVVUT0NPTkZfVkVSU0lPTl0sIFtdKQotKwotKyMgQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVS U0lPTgotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2FsbCBBTV9BVVRP TUFLRV9WRVJTSU9OIGFuZCBBTV9BVVRPTUFLRV9WRVJTSU9OIHNvIHRoZXkgY2FuIGJlIHRyYWNl ZC4KLSsjIFRoaXMgZnVuY3Rpb24gaXMgQUNfUkVRVUlSRWQgYnkgQU1fSU5JVF9BVVRPTUFLRS4K LStBQ19ERUZVTihbQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTl0sCi0rW0FNX0FVVE9N QUtFX1ZFUlNJT04oWzEuMTEuMV0pZG5sCi0rbTRfaWZuZGVmKFtBQ19BVVRPQ09ORl9WRVJTSU9O XSwKLSsgIFttNF9jb3B5KFttNF9QQUNLQUdFX1ZFUlNJT05dLCBbQUNfQVVUT0NPTkZfVkVSU0lP Tl0pXSlkbmwKLStfQU1fQVVUT0NPTkZfVkVSU0lPTihtNF9kZWZuKFtBQ19BVVRPQ09ORl9WRVJT SU9OXSkpXSkKLSsKLSsjIEFNX0FVWF9ESVJfRVhQQU5EICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIw MDEsIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRo aXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0r IyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0 LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3Rp Y2UgaXMgcHJlc2VydmVkLgotKwotKyMgRm9yIHByb2plY3RzIHVzaW5nIEFDX0NPTkZJR19BVVhf RElSKFtmb29dKSwgQXV0b2NvbmYgc2V0cwotKyMgJGFjX2F1eF9kaXIgdG8gYCRzcmNkaXIvZm9v Jy4gIEluIG90aGVyIHByb2plY3RzLCBpdCBpcyBzZXQgdG8KLSsjIGAkc3JjZGlyJywgYCRzcmNk aXIvLi4nLCBvciBgJHNyY2Rpci8uLi8uLicuCi0rIwotKyMgT2YgY291cnNlLCBBdXRvbWFrZSBt dXN0IGhvbm9yIHRoaXMgdmFyaWFibGUgd2hlbmV2ZXIgaXQgY2FsbHMgYQotKyMgdG9vbCBmcm9t IHRoZSBhdXhpbGlhcnkgZGlyZWN0b3J5LiAgVGhlIHByb2JsZW0gaXMgdGhhdCAkc3JjZGlyIChh bmQKLSsjIHRoZXJlZm9yZSAkYWNfYXV4X2RpciBhcyB3ZWxsKSBjYW4gYmUgZWl0aGVyIGFic29s dXRlIG9yIHJlbGF0aXZlLAotKyMgZGVwZW5kaW5nIG9uIGhvdyBjb25maWd1cmUgaXMgcnVuLiAg VGhpcyBpcyBwcmV0dHkgYW5ub3lpbmcsIHNpbmNlCi0rIyBpdCBtYWtlcyAkYWNfYXV4X2RpciBx dWl0ZSB1bnVzYWJsZSBpbiBzdWJkaXJlY3RvcmllczogaW4gdGhlIHRvcAotKyMgc291cmNlIGRp cmVjdG9yeSwgYW55IGZvcm0gd2lsbCB3b3JrIGZpbmUsIGJ1dCBpbiBzdWJkaXJlY3RvcmllcyBh Ci0rIyByZWxhdGl2ZSBwYXRoIG5lZWRzIHRvIGJlIGFkanVzdGVkIGZpcnN0LgotKyMKLSsjICRh Y19hdXhfZGlyL21pc3NpbmcKLSsjICAgIGZhaWxzIHdoZW4gY2FsbGVkIGZyb20gYSBzdWJkaXJl Y3RvcnkgaWYgJGFjX2F1eF9kaXIgaXMgcmVsYXRpdmUKLSsjICR0b3Bfc3JjZGlyLyRhY19hdXhf ZGlyL21pc3NpbmcKLSsjICAgIGZhaWxzIGlmICRhY19hdXhfZGlyIGlzIGFic29sdXRlLAotKyMg ICAgZmFpbHMgd2hlbiBjYWxsZWQgZnJvbSBhIHN1YmRpcmVjdG9yeSBpbiBhIFZQQVRIIGJ1aWxk IHdpdGgKLSsjICAgICAgICAgIGEgcmVsYXRpdmUgJGFjX2F1eF9kaXIKLSsjCi0rIyBUaGUgcmVh c29uIG9mIHRoZSBsYXR0ZXIgZmFpbHVyZSBpcyB0aGF0ICR0b3Bfc3JjZGlyIGFuZCAkYWNfYXV4 X2RpcgotKyMgYXJlIGJvdGggcHJlZml4ZWQgYnkgJHNyY2Rpci4gIEluIGFuIGluLXNvdXJjZSBi dWlsZCB0aGlzIGlzIHVzdWFsbHkKLSsjIGhhcm1sZXNzIGJlY2F1c2UgJHNyY2RpciBpcyBgLics IGJ1dCB0aGluZ3Mgd2lsbCBicm9rZSB3aGVuIHlvdQotKyMgc3RhcnQgYSBWUEFUSCBidWlsZCBv ciB1c2UgYW4gYWJzb2x1dGUgJHNyY2Rpci4KLSsjCi0rIyBTbyB3ZSBjb3VsZCB1c2Ugc29tZXRo aW5nIHNpbWlsYXIgdG8gJHRvcF9zcmNkaXIvJGFjX2F1eF9kaXIvbWlzc2luZywKLSsjIGlmZiB3 ZSBzdHJpcCB0aGUgbGVhZGluZyAkc3JjZGlyIGZyb20gJGFjX2F1eF9kaXIuICBUaGF0IHdvdWxk IGJlOgotKyMgICBhbV9hdXhfZGlyPSdcJCh0b3Bfc3JjZGlyKS8nYGV4cHIgIiRhY19hdXhfZGly IiA6ICIkc3JjZGlyLy8qXCguKlwpImAKLSsjIGFuZCB0aGVuIHdlIHdvdWxkIGRlZmluZSAkTUlT U0lORyBhcwotKyMgICBNSVNTSU5HPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIvbWlzc2luZyIKLSsj IFRoaXMgd2lsbCB3b3JrIGFzIGxvbmcgYXMgTUlTU0lORyBpcyBub3QgY2FsbGVkIGZyb20gY29u ZmlndXJlLCBiZWNhdXNlCi0rIyB1bmZvcnR1bmF0ZWx5ICQodG9wX3NyY2RpcikgaGFzIG5vIG1l YW5pbmcgaW4gY29uZmlndXJlLgotKyMgSG93ZXZlciB0aGVyZSBhcmUgb3RoZXIgdmFyaWFibGVz LCBsaWtlIENDLCB3aGljaCBhcmUgb2Z0ZW4gdXNlZCBpbgotKyMgY29uZmlndXJlLCBhbmQgY291 bGQgdGhlcmVmb3JlIG5vdCB1c2UgdGhpcyAiZml4ZWQiICRhY19hdXhfZGlyLgotKyMKLSsjIEFu b3RoZXIgc29sdXRpb24sIHVzZWQgaGVyZSwgaXMgdG8gYWx3YXlzIGV4cGFuZCAkYWNfYXV4X2Rp ciB0byBhbgotKyMgYWJzb2x1dGUgUEFUSC4gIFRoZSBkcmF3YmFjayBpcyB0aGF0IHVzaW5nIGFi c29sdXRlIHBhdGhzIHByZXZlbnQgYQotKyMgY29uZmlndXJlZCB0cmVlIHRvIGJlIG1vdmVkIHdp dGhvdXQgcmVjb25maWd1cmF0aW9uLgotKwotK0FDX0RFRlVOKFtBTV9BVVhfRElSX0VYUEFORF0s Ci0rW2RubCBSZWx5IG9uIGF1dG9jb25mIHRvIHNldCB1cCBDRFBBVEggcHJvcGVybHkuCi0rQUNf UFJFUkVRKFsyLjUwXSlkbmwKLSsjIGV4cGFuZCAkYWNfYXV4X2RpciB0byBhbiBhYnNvbHV0ZSBw YXRoCi0rYW1fYXV4X2Rpcj1gY2QgJGFjX2F1eF9kaXIgJiYgcHdkYAotK10pCi0rCi0rIyBBTV9D T05ESVRJT05BTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSot IEF1dG9jb25mIC0qLQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk3LCAyMDAwLCAyMDAxLCAyMDAz LCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4Ci0rIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3Ig ZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25n IGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCA5Ci0rCi0rIyBBTV9D T05ESVRJT05BTChOQU1FLCBTSEVMTC1DT05ESVRJT04pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBEZWZpbmUgYSBjb25kaXRpb25hbC4KLStBQ19ERUZVTihb QU1fQ09ORElUSU9OQUxdLAotK1tBQ19QUkVSRVEoMi41MilkbmwKLSsgaWZlbHNlKFskMV0sIFtU UlVFXSwgIFtBQ19GQVRBTChbJDA6IGludmFsaWQgY29uZGl0aW9uOiAkMV0pXSwKLSsJWyQxXSwg W0ZBTFNFXSwgW0FDX0ZBVEFMKFskMDogaW52YWxpZCBjb25kaXRpb246ICQxXSldKWRubAotK0FD X1NVQlNUKFskMV9UUlVFXSlkbmwKLStBQ19TVUJTVChbJDFfRkFMU0VdKWRubAotK19BTV9TVUJT VF9OT1RNQUtFKFskMV9UUlVFXSlkbmwKLStfQU1fU1VCU1RfTk9UTUFLRShbJDFfRkFMU0VdKWRu bAotK200X2RlZmluZShbX0FNX0NPTkRfVkFMVUVfJDFdLCBbJDJdKWRubAotK2lmICQyOyB0aGVu Ci0rICAkMV9UUlVFPQotKyAgJDFfRkFMU0U9JyMnCi0rZWxzZQotKyAgJDFfVFJVRT0nIycKLSsg ICQxX0ZBTFNFPQotK2ZpCi0rQUNfQ09ORklHX0NPTU1BTkRTX1BSRSgKLStbaWYgdGVzdCAteiAi JHskMV9UUlVFfSIgJiYgdGVzdCAteiAiJHskMV9GQUxTRX0iOyB0aGVuCi0rICBBQ19NU0dfRVJS T1IoW1tjb25kaXRpb25hbCAiJDEiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBt ZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5Ll1dKQotK2ZpXSld KQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0 LCAyMDA1LCAyMDA2LCAyMDA5Ci0rIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsj Ci0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJp YnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRo aXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCAxMAotKwotKyMgVGhlcmUgYXJl IGEgZmV3IGRpcnR5IGhhY2tzIGJlbG93IHRvIGF2b2lkIGxldHRpbmcgYEFDX1BST0dfQ0MnIGJl Ci0rIyB3cml0dGVuIGluIGNsZWFyLCBpbiB3aGljaCBjYXNlIGF1dG9tYWtlLCB3aGVuIHJlYWRp bmcgYWNsb2NhbC5tNCwKLSsjIHdpbGwgdGhpbmsgaXQgc2VlcyBhICp1c2UqLCBhbmQgdGhlcmVm b3JlIHdpbGwgdHJpZ2dlciBhbGwgaXQncwotKyMgQyBzdXBwb3J0IG1hY2hpbmVyeS4gIEFsc28g bm90ZSB0aGF0IGl0IG1lYW5zIHRoYXQgYXV0b3NjYW4sIHNlZWluZwotKyMgQ0MgZXRjLiBpbiB0 aGUgTWFrZWZpbGUsIHdpbGwgYXNrIGZvciBhbiBBQ19QUk9HX0NDIHVzZS4uLgotKwotKwotKyMg X0FNX0RFUEVOREVOQ0lFUyhOQU1FKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU2Vl IGhvdyB0aGUgY29tcGlsZXIgaW1wbGVtZW50cyBkZXBlbmRlbmN5IGNoZWNraW5nLgotKyMgTkFN RSBpcyAiQ0MiLCAiQ1hYIiwgIkdDSiIsIG9yICJPQkpDIi4KLSsjIFdlIHRyeSBhIGZldyB0ZWNo bmlxdWVzIGFuZCB1c2UgdGhhdCB0byBzZXQgYSBzaW5nbGUgY2FjaGUgdmFyaWFibGUuCi0rIwot KyMgV2UgZG9uJ3QgQUNfUkVRVUlSRSB0aGUgY29ycmVzcG9uZGluZyBBQ19QUk9HX0NDIHNpbmNl IHRoZSBsYXR0ZXIgd2FzCi0rIyBtb2RpZmllZCB0byBpbnZva2UgX0FNX0RFUEVOREVOQ0lFUyhD Qyk7IHdlIHdvdWxkIGhhdmUgYSBjaXJjdWxhcgotKyMgZGVwZW5kZW5jeSwgYW5kIGdpdmVuIHRo YXQgdGhlIHVzZXIgaXMgbm90IGV4cGVjdGVkIHRvIHJ1biB0aGlzIG1hY3JvLAotKyMganVzdCBy ZWx5IG9uIEFDX1BST0dfQ0MuCi0rQUNfREVGVU4oW19BTV9ERVBFTkRFTkNJRVNdLAotK1tBQ19S RVFVSVJFKFtBTV9TRVRfREVQRElSXSlkbmwKLStBQ19SRVFVSVJFKFtBTV9PVVRQVVRfREVQRU5E RU5DWV9DT01NQU5EU10pZG5sCi0rQUNfUkVRVUlSRShbQU1fTUFLRV9JTkNMVURFXSlkbmwKLStB Q19SRVFVSVJFKFtBTV9ERVBfVFJBQ0tdKWRubAotKwotK2lmZWxzZShbJDFdLCBDQywgICBbZGVw Y2M9IiRDQyIgICBhbV9jb21waWxlcl9saXN0PV0sCi0rICAgICAgIFskMV0sIENYWCwgIFtkZXBj Yz0iJENYWCIgIGFtX2NvbXBpbGVyX2xpc3Q9XSwKLSsgICAgICAgWyQxXSwgT0JKQywgW2RlcGNj PSIkT0JKQyIgYW1fY29tcGlsZXJfbGlzdD0nZ2NjMyBnY2MnXSwKLSsgICAgICAgWyQxXSwgVVBD LCAgW2RlcGNjPSIkVVBDIiAgYW1fY29tcGlsZXJfbGlzdD1dLAotKyAgICAgICBbJDFdLCBHQ0os ICBbZGVwY2M9IiRHQ0oiICBhbV9jb21waWxlcl9saXN0PSdnY2MzIGdjYyddLAotKyAgICAgICAg ICAgICAgICAgICBbZGVwY2M9IiQkMSIgICBhbV9jb21waWxlcl9saXN0PV0pCi0rCi0rQUNfQ0FD SEVfQ0hFQ0soW2RlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjXSwKLSsgICAgICAgICAgICAgICBb YW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGVdLAotK1tpZiB0ZXN0IC16ICIkQU1E RVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCi0rICAjIFdlIG1ha2UgYSBz dWJkaXIgYW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCi0r ICAjIG1ha2luZyBib2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVy IHJlbW92ZS4gIEZvcgotKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1V WCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKLSsgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1l ZCBgRCcgLS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKLSsgICMgaW4gRCcu Ci0rICBta2RpciBjb25mdGVzdC5kaXIKLSsgICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNh dXNlIG90aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCi0rICAjIHVzaW5nIGEgcmVs YXRpdmUgZGlyZWN0b3J5LgotKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKLSsgIGNk IGNvbmZ0ZXN0LmRpcgotKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVuY2ll cyBpbiBhIHN1YmRpcmVjdG9yeSBiZWNhdXNlCi0rICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFw cGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQotKyAgIyBib3RoIFRydTY0 J3MgY2MgYW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKLSsg ICMgc2lkZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRlcGVu ZGVuY2llcyBpbgotKyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBw dXQgdGhlbSBpbiB0aGUgb2JqZWN0Ci0rICAjIGRpcmVjdG9yeS4KLSsgIG1rZGlyIHN1YgotKwot KyAgYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQotKyAgaWYgdGVzdCAi JGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7IHRoZW4KLSsgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNl ZCAtbiBbJ3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnXSA8IC4vZGVwY29tcGAKLSsgIGZp Ci0rICBhbV9fdW5pdmVyc2FsPWZhbHNlCi0rICBtNF9jYXNlKFskMV0sIFtDQ10sCi0rICAgIFtj YXNlICIgJGRlcGNjICIgaW4gIygKLSsgICAgICpcIC1hcmNoXCAqXCAtYXJjaFwgKikgYW1fX3Vu aXZlcnNhbD10cnVlIDs7Ci0rICAgICBlc2FjXSwKLSsgICAgW0NYWF0sCi0rICAgIFtjYXNlICIg JGRlcGNjICIgaW4gIygKLSsgICAgICpcIC1hcmNoXCAqXCAtYXJjaFwgKikgYW1fX3VuaXZlcnNh bD10cnVlIDs7Ci0rICAgICBlc2FjXSkKLSsKLSsgIGZvciBkZXBtb2RlIGluICRhbV9jb21waWxl cl9saXN0OyBkbwotKyAgICAjIFNldHVwIGEgc291cmNlIHdpdGggbWFueSBkZXBlbmRlbmNpZXMs IGJlY2F1c2Ugc29tZSBjb21waWxlcnMKLSsgICAgIyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVwZW5k ZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAgKHdpdGggXCksIGFuZAotKyAgICAjIHdlIHNob3VsZCBu b3QgY2hvb3NlIGEgZGVwY29tcCBtb2RlIHdoaWNoIGlzIGNvbmZ1c2VkIGJ5IHRoaXMuCi0rICAg ICMKLSsgICAgIyBXZSBuZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZpbGVzIGZvciBlYWNoIHRlc3Qs IGFzIHRoZSBjb21waWxlciBtYXkKLSsgICAgIyBvdmVyd3JpdGUgc29tZSBvZiB0aGVtIHdoZW4g dGVzdGluZyB3aXRoIG9ic2N1cmUgY29tbWFuZCBsaW5lcy4KLSsgICAgIyBUaGlzIGhhcHBlbnMg YXQgbGVhc3Qgd2l0aCB0aGUgQUlYIEMgY29tcGlsZXIuCi0rICAgIDogPiBzdWIvY29uZnRlc3Qu YwotKyAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNjsgZG8KLSsgICAgICBlY2hvICcjaW5jbHVkZSAi Y29uZnRzdCckaScuaCInID4+IHN1Yi9jb25mdGVzdC5jCi0rICAgICAgIyBVc2luZyBgOiA+IHN1 Yi9jb25mdHN0JGkuaCcgY3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0MS5oIHdpdGgKLSsgICAgICAj IFNvbGFyaXMgOCdzIHsvdXNyLH0vYmluL3NoLgotKyAgICAgIHRvdWNoIHN1Yi9jb25mdHN0JGku aAotKyAgICBkb25lCi0rICAgIGVjaG8gIiR7YW1fX2luY2x1ZGV9ICR7YW1fX3F1b3RlfXN1Yi9j b25mdGVzdC5QbyR7YW1fX3F1b3RlfSIgPiBjb25mbWYKLSsKLSsgICAgIyBXZSBjaGVjayB3aXRo IGAtYycgYW5kIGAtbycgZm9yIHRoZSBzYWtlIG9mIHRoZSAiZGFzaG1zdGRvdXQiCi0rICAgICMg bW9kZS4gIEl0IHR1cm5zIG91dCB0aGF0IHRoZSBTdW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90 IHByb3Blcmx5Ci0rICAgICMgaGFuZGxlIGAtTSAtbycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0 aGlzLiAgQWxzbywgc29tZSBJbnRlbAotKyAgICAjIHZlcnNpb25zIGhhZCB0cm91YmxlIHdpdGgg b3V0cHV0IGluIHN1YmRpcnMKLSsgICAgYW1fX29iaj1zdWIvY29uZnRlc3QuJHtPQkpFWFQtb30K LSsgICAgYW1fX21pbnVzX29iaj0iLW8gJGFtX19vYmoiCi0rICAgIGNhc2UgJGRlcG1vZGUgaW4K LSsgICAgZ2NjKQotKyAgICAgICMgVGhpcyBkZXBtb2RlIGNhdXNlcyBhIGNvbXBpbGVyIHJhY2Ug aW4gdW5pdmVyc2FsIG1vZGUuCi0rICAgICAgdGVzdCAiJGFtX191bml2ZXJzYWwiID0gZmFsc2Ug fHwgY29udGludWUKLSsgICAgICA7OwotKyAgICBub3NpZGVlZmZlY3QpCi0rICAgICAgIyBhZnRl ciB0aGlzIHRhZywgbWVjaGFuaXNtcyBhcmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5J2xs Ci0rICAgICAgIyBvbmx5IGJlIHVzZWQgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZAotKyAgICAg IGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhlbgotKwlj b250aW51ZQotKyAgICAgIGVsc2UKLSsJYnJlYWsKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAg IG1zdmlzdWFsY3BwIHwgbXN2Y21zeXMpCi0rICAgICAgIyBUaGlzIGNvbXBpbGVyIHdvbid0IGdy b2sgYC1jIC1vJywgYnV0IGFsc28sIHRoZSBtaW51c28gdGVzdCBoYXMKLSsgICAgICAjIG5vdCBy dW4geWV0LiAgVGhlc2UgZGVwbW9kZXMgYXJlIGxhdGUgZW5vdWdoIGluIHRoZSBnYW1lLCBhbmQK LSsgICAgICAjIHNvIHdlYWsgdGhhdCB0aGVpciBmdW5jdGlvbmluZyBzaG91bGQgbm90IGJlIGlt cGFjdGVkLgotKyAgICAgIGFtX19vYmo9Y29uZnRlc3QuJHtPQkpFWFQtb30KLSsgICAgICBhbV9f bWludXNfb2JqPQotKyAgICAgIDs7Ci0rICAgIG5vbmUpIGJyZWFrIDs7Ci0rICAgIGVzYWMKLSsg ICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBcCi0rICAgICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBv YmplY3Q9JGFtX19vYmogXAotKyAgICAgICBkZXBmaWxlPXN1Yi9jb25mdGVzdC5QbyB0bXBkZXBm aWxlPXN1Yi9jb25mdGVzdC5UUG8gXAotKyAgICAgICAkU0hFTEwgLi9kZXBjb21wICRkZXBjYyAt YyAkYW1fX21pbnVzX29iaiBzdWIvY29uZnRlc3QuYyBcCi0rICAgICAgICAgPi9kZXYvbnVsbCAy PmNvbmZ0ZXN0LmVyciAmJgotKyAgICAgICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVz dC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCi0rICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3Vi L2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgZ3JlcCAkYW1fX29iaiBz dWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAgICAke01BS0UtbWFrZX0g LXMgLWYgY29uZm1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgICAjIGljYyBkb2Vzbid0 IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCi0r ICAgICAgIyBvciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBTbyB3ZSBncmVwIHN0ZGVy ciBmb3IgYW55IG1lc3NhZ2UKLSsgICAgICAjIHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9y ZWQgb3Igbm90IHN1cHBvcnRlZC4KLSsgICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFu ZCA3LjEgY29tcGxhaW4gdGh1c2x5OgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3YXJu aW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVxdWlyZWQKLSsgICAgICAj IFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4wOgotKyAgICAgICMgICBpY2M6IENvbW1h bmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVkCi0rICAgICAgaWYgKGdy ZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8Ci0rICAgICAgICAgIGdyZXAgJ25v dCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UK LSsgICAgICAgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPSRkZXBtb2RlCi0r ICAgICAgICBicmVhawotKyAgICAgIGZpCi0rICAgIGZpCi0rICBkb25lCi0rCi0rICBjZCAuLgot KyAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgotK2Vsc2UKLSsgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19j b21waWxlcl90eXBlPW5vbmUKLStmaQotK10pCi0rQUNfU1VCU1QoWyQxREVQTU9ERV0sIFtkZXBt b2RlPSRhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZV0pCi0rQU1fQ09ORElUSU9O QUwoW2FtX19mYXN0ZGVwJDFdLCBbCi0rICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNr aW5nIiAhPSB4bm8gXAotKyAgJiYgdGVzdCAiJGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxl cl90eXBlIiA9IGdjYzNdKQotK10pCi0rCi0rCi0rIyBBTV9TRVRfREVQRElSCi0rIyAtLS0tLS0t LS0tLS0tCi0rIyBDaG9vc2UgYSBkaXJlY3RvcnkgbmFtZSBmb3IgZGVwZW5kZW5jeSBmaWxlcy4K LSsjIFRoaXMgbWFjcm8gaXMgQUNfUkVRVUlSRWQgaW4gX0FNX0RFUEVOREVOQ0lFUwotK0FDX0RF RlVOKFtBTV9TRVRfREVQRElSXSwKLStbQUNfUkVRVUlSRShbQU1fU0VUX0xFQURJTkdfRE9UXSlk bmwKLStBQ19TVUJTVChbREVQRElSXSwgWyIke2FtX19sZWFkaW5nX2RvdH1kZXBzIl0pZG5sCi0r XSkKLSsKLSsKLSsjIEFNX0RFUF9UUkFDSwotKyMgLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW0FN X0RFUF9UUkFDS10sCi0rW0FDX0FSR19FTkFCTEUoZGVwZW5kZW5jeS10cmFja2luZywKLStbICAt LWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRzIHVwIG9uZS10aW1lIGJ1aWxkCi0r ICAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICAgZG8gbm90IHJlamVjdCBzbG93IGRlcGVu ZGVuY3kgZXh0cmFjdG9yc10pCi0raWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2lu ZyIgIT0geG5vOyB0aGVuCi0rICBhbV9kZXBjb21wPSIkYWNfYXV4X2Rpci9kZXBjb21wIgotKyAg QU1ERVBCQUNLU0xBU0g9J1wnCi0rZmkKLStBTV9DT05ESVRJT05BTChbQU1ERVBdLCBbdGVzdCAi eCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vXSkKLStBQ19TVUJTVChbQU1ERVBC QUNLU0xBU0hdKWRubAotK19BTV9TVUJTVF9OT1RNQUtFKFtBTURFUEJBQ0tTTEFTSF0pZG5sCi0r XSkKLSsKLSsjIEdlbmVyYXRlIGNvZGUgdG8gc2V0IHVwIGRlcGVuZGVuY3kgdHJhY2tpbmcuICAg ICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTksIDIw MDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDgKLSsjIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0 byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh dGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyNzZXJpYWwg NQotKwotKyMgX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLStBQ19ERUZVTihbX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1B TkRTXSwKLStbewotKyAgIyBBdXRvY29uZiAyLjYyIHF1b3RlcyAtLWZpbGUgYXJndW1lbnRzIGZv ciBldmFsLCBidXQgbm90IHdoZW4gZmlsZXMKLSsgICMgYXJlIGxpc3RlZCB3aXRob3V0IC0tZmls ZS4gIExldCdzIHBsYXkgc2FmZSBhbmQgb25seSBlbmFibGUgdGhlIGV2YWwKLSsgICMgaWYgd2Ug ZGV0ZWN0IHRoZSBxdW90aW5nLgotKyAgY2FzZSAkQ09ORklHX0ZJTEVTIGluCi0rICAqXCcqKSBl dmFsIHNldCB4ICIkQ09ORklHX0ZJTEVTIiA7OwotKyAgKikgICBzZXQgeCAkQ09ORklHX0ZJTEVT IDs7Ci0rICBlc2FjCi0rICBzaGlmdAotKyAgZm9yIG1mCi0rICBkbwotKyAgICAjIFN0cmlwIE1G IHNvIHdlIGVuZCB1cCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBmaWxlLgotKyAgICBtZj1gZWNobyAi JG1mIiB8IHNlZCAtZSAncy86LiokLy8nYAotKyAgICAjIENoZWNrIHdoZXRoZXIgdGhpcyBpcyBh biBBdXRvbWFrZSBnZW5lcmF0ZWQgTWFrZWZpbGUgb3Igbm90LgotKyAgICAjIFdlIHVzZWQgdG8g bWF0Y2ggb25seSB0aGUgZmlsZXMgbmFtZWQgYE1ha2VmaWxlLmluJywgYnV0Ci0rICAgICMgc29t ZSBwZW9wbGUgcmVuYW1lIHRoZW07IHNvIGluc3RlYWQgd2UgbG9vayBhdCB0aGUgZmlsZSBjb250 ZW50LgotKyAgICAjIEdyZXAnaW5nIHRoZSBmaXJzdCBsaW5lIGlzIG5vdCBlbm91Z2g6IHNvbWUg cGVvcGxlIHBvc3QtcHJvY2VzcwotKyAgICAjIGVhY2ggTWFrZWZpbGUuaW4gYW5kIGFkZCBhIG5l dyBsaW5lIG9uIHRvcCBvZiBlYWNoIGZpbGUgdG8gc2F5IHNvLgotKyAgICAjIEdyZXAnaW5nIHRo ZSB3aG9sZSBmaWxlIGlzIG5vdCBnb29kIGVpdGhlcjogQUlYIGdyZXAgaGFzIGEgbGluZQotKyAg ICAjIGxpbWl0IG9mIDIwNDgsIGJ1dCBhbGwgc2VkJ3Mgd2Uga25vdyBoYXZlIHVuZGVyc3RhbmQg YXQgbGVhc3QgNDAwMC4KLSsgICAgaWYgc2VkIC1uICdzLF4jLipnZW5lcmF0ZWQgYnkgYXV0b21h a2UuKixYLHAnICIkbWYiIHwgZ3JlcCBYID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgICAgIGRp cnBhcnQ9YEFTX0RJUk5BTUUoIiRtZiIpYAotKyAgICBlbHNlCi0rICAgICAgY29udGludWUKLSsg ICAgZmkKLSsgICAgIyBFeHRyYWN0IHRoZSBkZWZpbml0aW9uIG9mIERFUERJUiwgYW1fX2luY2x1 ZGUsIGFuZCBhbV9fcXVvdGUKLSsgICAgIyBmcm9tIHRoZSBNYWtlZmlsZSB3aXRob3V0IHJ1bm5p bmcgYG1ha2UnLgotKyAgICBERVBESVI9YHNlZCAtbiAncy9eREVQRElSID0gLy9wJyA8ICIkbWYi YAotKyAgICB0ZXN0IC16ICIkREVQRElSIiAmJiBjb250aW51ZQotKyAgICBhbV9faW5jbHVkZT1g c2VkIC1uICdzL15hbV9faW5jbHVkZSA9IC8vcCcgPCAiJG1mImAKLSsgICAgdGVzdCAteiAiYW1f X2luY2x1ZGUiICYmIGNvbnRpbnVlCi0rICAgIGFtX19xdW90ZT1gc2VkIC1uICdzL15hbV9fcXVv dGUgPSAvL3AnIDwgIiRtZiJgCi0rICAgICMgV2hlbiB1c2luZyBhbnNpMmtuciwgVSBtYXkgYmUg ZW1wdHkgb3IgYW4gdW5kZXJzY29yZTsgZXhwYW5kIGl0Ci0rICAgIFU9YHNlZCAtbiAncy9eVSA9 IC8vcCcgPCAiJG1mImAKLSsgICAgIyBGaW5kIGFsbCBkZXBlbmRlbmN5IG91dHB1dCBmaWxlcywg dGhleSBhcmUgaW5jbHVkZWQgZmlsZXMgd2l0aAotKyAgICAjICQoREVQRElSKSBpbiB0aGVpciBu YW1lcy4gIFdlIGludm9rZSBzZWQgdHdpY2UgYmVjYXVzZSBpdCBpcyB0aGUKLSsgICAgIyBzaW1w bGVzdCBhcHByb2FjaCB0byBjaGFuZ2luZyAkKERFUERJUikgdG8gaXRzIGFjdHVhbCB2YWx1ZSBp biB0aGUKLSsgICAgIyBleHBhbnNpb24uCi0rICAgIGZvciBmaWxlIGluIGBzZWQgLW4gIgotKyAg ICAgIHMvXiRhbV9faW5jbHVkZSAkYW1fX3F1b3RlXCguKihERVBESVIpLipcKSRhbV9fcXVvdGUi JyQvXDEvcCcgPCIkbWYiIHwgXAotKwkgc2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQRElSIicv ZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7IGRvCi0rICAgICAgIyBNYWtlIHN1cmUgdGhlIGRpcmVj dG9yeSBleGlzdHMuCi0rICAgICAgdGVzdCAtZiAiJGRpcnBhcnQvJGZpbGUiICYmIGNvbnRpbnVl Ci0rICAgICAgZmRpcj1gQVNfRElSTkFNRShbIiRmaWxlIl0pYAotKyAgICAgIEFTX01LRElSX1Ao WyRkaXJwYXJ0LyRmZGlyXSkKLSsgICAgICAjIGVjaG8gImNyZWF0aW5nICRkaXJwYXJ0LyRmaWxl IgotKyAgICAgIGVjaG8gJyMgZHVtbXknID4gIiRkaXJwYXJ0LyRmaWxlIgotKyAgICBkb25lCi0r ICBkb25lCi0rfQotK10pIyBfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFMKLSsKLSsKLSsj IEFNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotKyMgVGhpcyBtYWNybyBzaG91bGQgb25seSBiZSBpbnZva2VkIG9uY2UgLS0gdXNl IHZpYSBBQ19SRVFVSVJFLgotKyMKLSsjIFRoaXMgY29kZSBpcyBvbmx5IHJlcXVpcmVkIHdoZW4g YXV0b21hdGljIGRlcGVuZGVuY3kgdHJhY2tpbmcKLSsjIGlzIGVuYWJsZWQuICBGSVhNRS4gIFRo aXMgY3JlYXRlcyBlYWNoIGAuUCcgZmlsZSB0aGF0IHdlIHdpbGwKLSsjIG5lZWQgaW4gb3JkZXIg dG8gYm9vdHN0cmFwIHRoZSBkZXBlbmRlbmN5IGhhbmRsaW5nIGNvZGUuCi0rQUNfREVGVU4oW0FN X09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKLStbQUNfQ09ORklHX0NPTU1BTkRTKFtkZXBm aWxlc10sCi0rICAgICBbdGVzdCB4IiRBTURFUF9UUlVFIiAhPSB4IiIgfHwgX0FNX09VVFBVVF9E RVBFTkRFTkNZX0NPTU1BTkRTXSwKLSsgICAgIFtBTURFUF9UUlVFPSIkQU1ERVBfVFJVRSIgYWNf YXV4X2Rpcj0iJGFjX2F1eF9kaXIiXSkKLStdKQotKwotKyMgRG8gYWxsIHRoZSB3b3JrIGZvciBB dXRvbWFrZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KLSsK LSsjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAw MiwgMjAwMywgMjAwNCwKLSsjIDIwMDUsIDIwMDYsIDIwMDgsIDIwMDkgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCi0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRv IGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0 aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwg MTYKLSsKLSsjIFRoaXMgbWFjcm8gYWN0dWFsbHkgZG9lcyB0b28gbXVjaC4gIFNvbWUgY2hlY2tz IGFyZSBvbmx5IG5lZWRlZCBpZgotKyMgeW91ciBwYWNrYWdlIGRvZXMgY2VydGFpbiB0aGluZ3Mu ICBCdXQgdGhpcyBpc24ndCByZWFsbHkgYSBiaWcgZGVhbC4KLSsKLSsjIEFNX0lOSVRfQVVUT01B S0UoUEFDS0FHRSwgVkVSU0lPTiwgW05PLURFRklORV0pCi0rIyBBTV9JTklUX0FVVE9NQUtFKFtP UFRJT05TXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0rIyBUaGUgY2FsbCB3aXRoIFBBQ0tBR0UgYW5kIFZFUlNJT04gYXJndW1lbnRzIGlzIHRo ZSBvbGQgc3R5bGUKLSsjIGNhbGwgKHByZSBhdXRvY29uZi0yLjUwKSwgd2hpY2ggaXMgYmVpbmcg cGhhc2VkIG91dC4gIFBBQ0tBR0UKLSsjIGFuZCBWRVJTSU9OIHNob3VsZCBub3cgYmUgcGFzc2Vk IHRvIEFDX0lOSVQgYW5kIHJlbW92ZWQgZnJvbQotKyMgdGhlIGNhbGwgdG8gQU1fSU5JVF9BVVRP TUFLRS4KLSsjIFdlIHN1cHBvcnQgYm90aCBjYWxsIHN0eWxlcyBmb3IgdGhlIHRyYW5zaXRpb24u ICBBZnRlcgotKyMgdGhlIG5leHQgQXV0b21ha2UgcmVsZWFzZSwgQXV0b2NvbmYgY2FuIG1ha2Ug dGhlIEFDX0lOSVQKLSsjIGFyZ3VtZW50cyBtYW5kYXRvcnksIGFuZCB0aGVuIHdlIGNhbiBkZXBl bmQgb24gYSBuZXcgQXV0b2NvbmYKLSsjIHJlbGVhc2UgYW5kIGRyb3AgdGhlIG9sZCBjYWxsIHN1 cHBvcnQuCi0rQUNfREVGVU4oW0FNX0lOSVRfQVVUT01BS0VdLAotK1tBQ19QUkVSRVEoWzIuNjJd KWRubAotK2RubCBBdXRvY29uZiB3YW50cyB0byBkaXNhbGxvdyBBTV8gbmFtZXMuICBXZSBleHBs aWNpdGx5IGFsbG93Ci0rZG5sIHRoZSBvbmVzIHdlIGNhcmUgYWJvdXQuCi0rbTRfcGF0dGVybl9h bGxvdyhbXkFNX1tBLVpdK0ZMQUdTJF0pZG5sCi0rQUNfUkVRVUlSRShbQU1fU0VUX0NVUlJFTlRf QVVUT01BS0VfVkVSU0lPTl0pZG5sCi0rQUNfUkVRVUlSRShbQUNfUFJPR19JTlNUQUxMXSlkbmwK LStpZiB0ZXN0ICJgY2QgJHNyY2RpciAmJiBwd2RgIiAhPSAiYHB3ZGAiOyB0aGVuCi0rICAjIFVz ZSAtSSQoc3JjZGlyKSBvbmx5IHdoZW4gJChzcmNkaXIpICE9IC4sIHNvIHRoYXQgbWFrZSdzIG91 dHB1dAotKyAgIyBpcyBub3QgcG9sbHV0ZWQgd2l0aCByZXBlYXRlZCAiLUkuIgotKyAgQUNfU1VC U1QoW2FtX19pc3JjXSwgWycgLUkkKHNyY2RpciknXSlfQU1fU1VCU1RfTk9UTUFLRShbYW1fX2lz cmNdKWRubAotKyAgIyB0ZXN0IHRvIHNlZSBpZiBzcmNkaXIgYWxyZWFkeSBjb25maWd1cmVkCi0r ICBpZiB0ZXN0IC1mICRzcmNkaXIvY29uZmlnLnN0YXR1czsgdGhlbgotKyAgICBBQ19NU0dfRVJS T1IoW3NvdXJjZSBkaXJlY3RvcnkgYWxyZWFkeSBjb25maWd1cmVkOyBydW4gIm1ha2UgZGlzdGNs ZWFuIiB0aGVyZSBmaXJzdF0pCi0rICBmaQotK2ZpCi0rCi0rIyB0ZXN0IHdoZXRoZXIgd2UgaGF2 ZSBjeWdwYXRoCi0raWYgdGVzdCAteiAiJENZR1BBVEhfVyI7IHRoZW4KLSsgIGlmIChjeWdwYXRo IC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgotKyAgICBDWUdQQVRIX1c9 J2N5Z3BhdGggLXcnCi0rICBlbHNlCi0rICAgIENZR1BBVEhfVz1lY2hvCi0rICBmaQotK2ZpCi0r QUNfU1VCU1QoW0NZR1BBVEhfV10pCi0rCi0rIyBEZWZpbmUgdGhlIGlkZW50aXR5IG9mIHRoZSBw YWNrYWdlLgotK2RubCBEaXN0aW5ndWlzaCBiZXR3ZWVuIG9sZC1zdHlsZSBhbmQgbmV3LXN0eWxl IGNhbGxzLgotK200X2lmdmFsKFskMl0sCi0rW200X2lmdmFsKFskM10sIFtfQU1fU0VUX09QVElP Tihbbm8tZGVmaW5lXSldKWRubAotKyBBQ19TVUJTVChbUEFDS0FHRV0sIFskMV0pZG5sCi0rIEFD X1NVQlNUKFtWRVJTSU9OXSwgWyQyXSldLAotK1tfQU1fU0VUX09QVElPTlMoWyQxXSlkbmwKLStk bmwgRGlhZ25vc2Ugb2xkLXN0eWxlIEFDX0lOSVQgd2l0aCBuZXctc3R5bGUgQU1fQVVUT01BS0Vf SU5JVC4KLSttNF9pZihtNF9pZmRlZihbQUNfUEFDS0FHRV9OQU1FXSwgMSltNF9pZmRlZihbQUNf UEFDS0FHRV9WRVJTSU9OXSwgMSksIDExLCwKLSsgIFttNF9mYXRhbChbQUNfSU5JVCBzaG91bGQg YmUgY2FsbGVkIHdpdGggcGFja2FnZSBhbmQgdmVyc2lvbiBhcmd1bWVudHNdKV0pZG5sCi0rIEFD X1NVQlNUKFtQQUNLQUdFXSwgWydBQ19QQUNLQUdFX1RBUk5BTUUnXSlkbmwKLSsgQUNfU1VCU1Qo W1ZFUlNJT05dLCBbJ0FDX1BBQ0tBR0VfVkVSU0lPTiddKV0pZG5sCi0rCi0rX0FNX0lGX09QVElP Tihbbm8tZGVmaW5lXSwsCi0rW0FDX0RFRklORV9VTlFVT1RFRChQQUNLQUdFLCAiJFBBQ0tBR0Ui LCBbTmFtZSBvZiBwYWNrYWdlXSkKLSsgQUNfREVGSU5FX1VOUVVPVEVEKFZFUlNJT04sICIkVkVS U0lPTiIsIFtWZXJzaW9uIG51bWJlciBvZiBwYWNrYWdlXSldKWRubAotKwotKyMgU29tZSB0b29s cyBBdXRvbWFrZSBuZWVkcy4KLStBQ19SRVFVSVJFKFtBTV9TQU5JVFlfQ0hFQ0tdKWRubAotK0FD X1JFUVVJUkUoW0FDX0FSR19QUk9HUkFNXSlkbmwKLStBTV9NSVNTSU5HX1BST0coQUNMT0NBTCwg YWNsb2NhbC0ke2FtX19hcGlfdmVyc2lvbn0pCi0rQU1fTUlTU0lOR19QUk9HKEFVVE9DT05GLCBh dXRvY29uZikKLStBTV9NSVNTSU5HX1BST0coQVVUT01BS0UsIGF1dG9tYWtlLSR7YW1fX2FwaV92 ZXJzaW9ufSkKLStBTV9NSVNTSU5HX1BST0coQVVUT0hFQURFUiwgYXV0b2hlYWRlcikKLStBTV9N SVNTSU5HX1BST0coTUFLRUlORk8sIG1ha2VpbmZvKQotK0FDX1JFUVVJUkUoW0FNX1BST0dfSU5T VEFMTF9TSF0pZG5sCi0rQUNfUkVRVUlSRShbQU1fUFJPR19JTlNUQUxMX1NUUklQXSlkbmwKLStB Q19SRVFVSVJFKFtBTV9QUk9HX01LRElSX1BdKWRubAotKyMgV2UgbmVlZCBhd2sgZm9yIHRoZSAi Y2hlY2siIHRhcmdldC4gIFRoZSBzeXN0ZW0gImF3ayIgaXMgYmFkIG9uCi0rIyBzb21lIHBsYXRm b3Jtcy4KLStBQ19SRVFVSVJFKFtBQ19QUk9HX0FXS10pZG5sCi0rQUNfUkVRVUlSRShbQUNfUFJP R19NQUtFX1NFVF0pZG5sCi0rQUNfUkVRVUlSRShbQU1fU0VUX0xFQURJTkdfRE9UXSlkbmwKLStf QU1fSUZfT1BUSU9OKFt0YXItdXN0YXJdLCBbX0FNX1BST0dfVEFSKFt1c3Rhcl0pXSwKLSsJICAg ICAgW19BTV9JRl9PUFRJT04oW3Rhci1wYXhdLCBbX0FNX1BST0dfVEFSKFtwYXhdKV0sCi0rCQkJ ICAgICBbX0FNX1BST0dfVEFSKFt2N10pXSldKQotK19BTV9JRl9PUFRJT04oW25vLWRlcGVuZGVu Y2llc10sLAotK1tBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19DQ10sCi0rCQkgIFtfQU1fREVQ RU5ERU5DSUVTKENDKV0sCi0rCQkgIFtkZWZpbmUoW0FDX1BST0dfQ0NdLAotKwkJCSAgZGVmbihb QUNfUFJPR19DQ10pW19BTV9ERVBFTkRFTkNJRVMoQ0MpXSldKWRubAotK0FDX1BST1ZJREVfSUZF TFNFKFtBQ19QUk9HX0NYWF0sCi0rCQkgIFtfQU1fREVQRU5ERU5DSUVTKENYWCldLAotKwkJICBb ZGVmaW5lKFtBQ19QUk9HX0NYWF0sCi0rCQkJICBkZWZuKFtBQ19QUk9HX0NYWF0pW19BTV9ERVBF TkRFTkNJRVMoQ1hYKV0pXSlkbmwKLStBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19PQkpDXSwK LSsJCSAgW19BTV9ERVBFTkRFTkNJRVMoT0JKQyldLAotKwkJICBbZGVmaW5lKFtBQ19QUk9HX09C SkNdLAotKwkJCSAgZGVmbihbQUNfUFJPR19PQkpDXSlbX0FNX0RFUEVOREVOQ0lFUyhPQkpDKV0p XSlkbmwKLStdKQotK19BTV9JRl9PUFRJT04oW3NpbGVudC1ydWxlc10sIFtBQ19SRVFVSVJFKFtB TV9TSUxFTlRfUlVMRVNdKV0pZG5sCi0rZG5sIFRoZSBgcGFyYWxsZWwtdGVzdHMnIGRyaXZlciBt YXkgbmVlZCB0byBrbm93IGFib3V0IEVYRUVYVCwgc28gYWRkIHRoZQotK2RubCBgYW1fX0VYRUVY VCcgY29uZGl0aW9uYWwgaWYgX0FNX0NPTVBJTEVSX0VYRUVYVCB3YXMgc2Vlbi4gIFRoaXMgbWFj cm8KLStkbmwgaXMgaG9va2VkIG9udG8gX0FDX0NPTVBJTEVSX0VYRUVYVCBlYXJseSwgc2VlIGJl bG93LgotK0FDX0NPTkZJR19DT01NQU5EU19QUkUoZG5sCi0rW200X3Byb3ZpZGVfaWYoW19BTV9D T01QSUxFUl9FWEVFWFRdLAotKyAgW0FNX0NPTkRJVElPTkFMKFthbV9fRVhFRVhUXSwgW3Rlc3Qg LW4gIiRFWEVFWFQiXSldKV0pZG5sCi0rXSkKLSsKLStkbmwgSG9vayBpbnRvIGBfQUNfQ09NUElM RVJfRVhFRVhUJyBlYXJseSB0byBsZWFybiBpdHMgZXhwYW5zaW9uLiAgRG8gbm90Ci0rZG5sIGFk ZCB0aGUgY29uZGl0aW9uYWwgcmlnaHQgaGVyZSwgYXMgX0FDX0NPTVBJTEVSX0VYRUVYVCBtYXkg YmUgZnVydGhlcgotK2RubCBtYW5nbGVkIGJ5IEF1dG9jb25mIGFuZCBydW4gaW4gYSBzaGVsbCBj b25kaXRpb25hbCBzdGF0ZW1lbnQuCi0rbTRfZGVmaW5lKFtfQUNfQ09NUElMRVJfRVhFRVhUXSwK LSttNF9kZWZuKFtfQUNfQ09NUElMRVJfRVhFRVhUXSlbbTRfcHJvdmlkZShbX0FNX0NPTVBJTEVS X0VYRUVYVF0pXSkKLSsKLSsKLSsjIFdoZW4gY29uZmlnLnN0YXR1cyBnZW5lcmF0ZXMgYSBoZWFk ZXIsIHdlIG11c3QgdXBkYXRlIHRoZSBzdGFtcC1oIGZpbGUuCi0rIyBUaGlzIGZpbGUgcmVzaWRl cyBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhlIGNvbmZpZyBoZWFkZXIKLSsjIHRoYXQgaXMg Z2VuZXJhdGVkLiAgVGhlIHN0YW1wIGZpbGVzIGFyZSBudW1iZXJlZCB0byBoYXZlIGRpZmZlcmVu dCBuYW1lcy4KLSsKLSsjIEF1dG9jb25mIGNhbGxzIF9BQ19BTV9DT05GSUdfSEVBREVSX0hPT0sg KHdoZW4gZGVmaW5lZCkgaW4gdGhlCi0rIyBsb29wIHdoZXJlIGNvbmZpZy5zdGF0dXMgY3JlYXRl cyB0aGUgaGVhZGVycywgc28gd2UgY2FuIGdlbmVyYXRlCi0rIyBvdXIgc3RhbXAgZmlsZXMgdGhl cmUuCi0rQUNfREVGVU4oW19BQ19BTV9DT05GSUdfSEVBREVSX0hPT0tdLAotK1sjIENvbXB1dGUg JDEncyBpbmRleCBpbiAkY29uZmlnX2hlYWRlcnMuCi0rX2FtX2FyZz0kMQotK19hbV9zdGFtcF9j b3VudD0xCi0rZm9yIF9hbV9oZWFkZXIgaW4gJGNvbmZpZ19oZWFkZXJzIDo7IGRvCi0rICBjYXNl ICRfYW1faGVhZGVyIGluCi0rICAgICRfYW1fYXJnIHwgJF9hbV9hcmc6KiApCi0rICAgICAgYnJl YWsgOzsKLSsgICAgKiApCi0rICAgICAgX2FtX3N0YW1wX2NvdW50PWBleHByICRfYW1fc3RhbXBf Y291bnQgKyAxYCA7OwotKyAgZXNhYwotK2RvbmUKLStlY2hvICJ0aW1lc3RhbXAgZm9yICRfYW1f YXJnIiA+YEFTX0RJUk5BTUUoWyIkX2FtX2FyZyJdKWAvc3RhbXAtaFtdJF9hbV9zdGFtcF9jb3Vu dF0pCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUsIDIwMDggIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJl OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlz c2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1v ZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMg QU1fUFJPR19JTlNUQUxMX1NICi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0KLSsjIERlZmluZSAkaW5z dGFsbF9zaC4KLStBQ19ERUZVTihbQU1fUFJPR19JTlNUQUxMX1NIXSwKLStbQUNfUkVRVUlSRShb QU1fQVVYX0RJUl9FWFBBTkRdKWRubAotK2lmIHRlc3QgeCIke2luc3RhbGxfc2h9IiAhPSB4c2V0 OyB0aGVuCi0rICBjYXNlICRhbV9hdXhfZGlyIGluCi0rICAqXCAqIHwgKlwJKikKLSsgICAgaW5z dGFsbF9zaD0iXCR7U0hFTEx9ICckYW1fYXV4X2Rpci9pbnN0YWxsLXNoJyIgOzsKLSsgICopCi0r ICAgIGluc3RhbGxfc2g9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9pbnN0YWxsLXNoIgotKyAgZXNh YwotK2ZpCi0rQUNfU1VCU1QoaW5zdGFsbF9zaCldKQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDAz LCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUg aXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMg dW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdp dGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHBy ZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCAyCi0rCi0rIyBDaGVjayB3aGV0aGVyIHRoZSB1bmRlcmx5 aW5nIGZpbGUtc3lzdGVtIHN1cHBvcnRzIGZpbGVuYW1lcwotKyMgd2l0aCBhIGxlYWRpbmcgZG90 LiAgRm9yIGluc3RhbmNlIE1TLURPUyBkb2Vzbid0LgotK0FDX0RFRlVOKFtBTV9TRVRfTEVBRElO R19ET1RdLAotK1tybSAtcmYgLnRzdCAyPi9kZXYvbnVsbAotK21rZGlyIC50c3QgMj4vZGV2L251 bGwKLStpZiB0ZXN0IC1kIC50c3Q7IHRoZW4KLSsgIGFtX19sZWFkaW5nX2RvdD0uCi0rZWxzZQot KyAgYW1fX2xlYWRpbmdfZG90PV8KLStmaQotK3JtZGlyIC50c3QgMj4vZGV2L251bGwKLStBQ19T VUJTVChbYW1fX2xlYWRpbmdfZG90XSldKQotKwotKyMgQ2hlY2sgdG8gc2VlIGhvdyAnbWFrZScg dHJlYXRzIGluY2x1ZGVzLgkgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5 cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBj b3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlv bnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgc2VyaWFsIDQK LSsKLSsjIEFNX01BS0VfSU5DTFVERSgpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sg dG8gc2VlIGhvdyBtYWtlIHRyZWF0cyBpbmNsdWRlcy4KLStBQ19ERUZVTihbQU1fTUFLRV9JTkNM VURFXSwKLStbYW1fbWFrZT0ke01BS0UtbWFrZX0KLStjYXQgPiBjb25maW5jIDw8ICdFTkQnCi0r YW1fX2RvaXQ6Ci0rCUBlY2hvIHRoaXMgaXMgdGhlIGFtX19kb2l0IHRhcmdldAotKy5QSE9OWTog YW1fX2RvaXQKLStFTkQKLSsjIElmIHdlIGRvbid0IGZpbmQgYW4gaW5jbHVkZSBkaXJlY3RpdmUs IGp1c3QgY29tbWVudCBvdXQgdGhlIGNvZGUuCi0rQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3R5bGUg b2YgaW5jbHVkZSB1c2VkIGJ5ICRhbV9tYWtlXSkKLSthbV9faW5jbHVkZT0iIyIKLSthbV9fcXVv dGU9Ci0rX2FtX3Jlc3VsdD1ub25lCi0rIyBGaXJzdCB0cnkgR05VIG1ha2Ugc3R5bGUgaW5jbHVk ZS4KLStlY2hvICJpbmNsdWRlIGNvbmZpbmMiID4gY29uZm1mCi0rIyBJZ25vcmUgYWxsIGtpbmRz IG9mIGFkZGl0aW9uYWwgb3V0cHV0IGZyb20gYG1ha2UnLgotK2Nhc2UgYCRhbV9tYWtlIC1zIC1m IGNvbmZtZiAyPiAvZGV2L251bGxgIGluICMoCi0rKnRoZVwgYW1fX2RvaXRcIHRhcmdldCopCi0r ICBhbV9faW5jbHVkZT1pbmNsdWRlCi0rICBhbV9fcXVvdGU9Ci0rICBfYW1fcmVzdWx0PUdOVQot KyAgOzsKLStlc2FjCi0rIyBOb3cgdHJ5IEJTRCBtYWtlIHN0eWxlIGluY2x1ZGUuCi0raWYgdGVz dCAiJGFtX19pbmNsdWRlIiA9ICIjIjsgdGhlbgotKyAgIGVjaG8gJy5pbmNsdWRlICJjb25maW5j IicgPiBjb25mbWYKLSsgICBjYXNlIGAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxs YCBpbiAjKAotKyAgICp0aGVcIGFtX19kb2l0XCB0YXJnZXQqKQotKyAgICAgYW1fX2luY2x1ZGU9 LmluY2x1ZGUKLSsgICAgIGFtX19xdW90ZT0iXCIiCi0rICAgICBfYW1fcmVzdWx0PUJTRAotKyAg ICAgOzsKLSsgICBlc2FjCi0rZmkKLStBQ19TVUJTVChbYW1fX2luY2x1ZGVdKQotK0FDX1NVQlNU KFthbV9fcXVvdGVdKQotK0FDX01TR19SRVNVTFQoWyRfYW1fcmVzdWx0XSkKLStybSAtZiBjb25m aW5jIGNvbmZtZgotK10pCi0rCi0rIyBGYWtlIHRoZSBleGlzdGVuY2Ugb2YgcHJvZ3JhbXMgdGhh dCBHTlUgbWFpbnRhaW5lcnMgdXNlLiAgLSotIEF1dG9jb25mIC0qLQotKwotKyMgQ29weXJpZ2h0 IChDKSAxOTk3LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA4Ci0rIyBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBz b2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVk IHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0 aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4K LSsKLSsjIHNlcmlhbCA2Ci0rCi0rIyBBTV9NSVNTSU5HX1BST0coTkFNRSwgUFJPR1JBTSkKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBTV9NSVNTSU5HX1BS T0ddLAotK1tBQ19SRVFVSVJFKFtBTV9NSVNTSU5HX0hBU19SVU5dKQotKyQxPSR7JDEtIiR7YW1f bWlzc2luZ19ydW59JDIifQotK0FDX1NVQlNUKCQxKV0pCi0rCi0rCi0rIyBBTV9NSVNTSU5HX0hB U19SVU4KLSsjIC0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRGVmaW5lIE1JU1NJTkcgaWYgbm90IGRl ZmluZWQgc28gZmFyIGFuZCB0ZXN0IGlmIGl0IHN1cHBvcnRzIC0tcnVuLgotKyMgSWYgaXQgZG9l cywgc2V0IGFtX21pc3NpbmdfcnVuIHRvIHVzZSBpdCwgb3RoZXJ3aXNlLCB0byBub3RoaW5nLgot K0FDX0RFRlVOKFtBTV9NSVNTSU5HX0hBU19SVU5dLAotK1tBQ19SRVFVSVJFKFtBTV9BVVhfRElS X0VYUEFORF0pZG5sCi0rQUNfUkVRVUlSRV9BVVhfRklMRShbbWlzc2luZ10pZG5sCi0raWYgdGVz dCB4IiR7TUlTU0lORytzZXR9IiAhPSB4c2V0OyB0aGVuCi0rICBjYXNlICRhbV9hdXhfZGlyIGlu Ci0rICAqXCAqIHwgKlwJKikKLSsgICAgTUlTU0lORz0iXCR7U0hFTEx9IFwiJGFtX2F1eF9kaXIv bWlzc2luZ1wiIiA7OwotKyAgKikKLSsgICAgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhfZGly L21pc3NpbmciIDs7Ci0rICBlc2FjCi0rZmkKLSsjIFVzZSBldmFsIHRvIGV4cGFuZCAkU0hFTEwK LStpZiBldmFsICIkTUlTU0lORyAtLXJ1biB0cnVlIjsgdGhlbgotKyAgYW1fbWlzc2luZ19ydW49 IiRNSVNTSU5HIC0tcnVuICIKLStlbHNlCi0rICBhbV9taXNzaW5nX3J1bj0KLSsgIEFDX01TR19X QVJOKFtgbWlzc2luZycgc2NyaXB0IGlzIHRvbyBvbGQgb3IgbWlzc2luZ10pCi0rZmkKLStdKQot KwotKyMgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2ICBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24g dG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmlj YXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIEFNX1BS T0dfTUtESVJfUAotKyMgLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayBmb3IgYG1rZGlyIC1wJy4K LStBQ19ERUZVTihbQU1fUFJPR19NS0RJUl9QXSwKLStbQUNfUFJFUkVRKFsyLjYwXSlkbmwKLStB Q19SRVFVSVJFKFtBQ19QUk9HX01LRElSX1BdKWRubAotK2RubCBBdXRvbWFrZSAxLjggdG8gMS45 LjYgdXNlZCB0byBkZWZpbmUgbWtkaXJfcC4gIFdlIG5vdyB1c2UgTUtESVJfUCwKLStkbmwgd2hp bGUga2VlcGluZyBhIGRlZmluaXRpb24gb2YgbWtkaXJfcCBmb3IgYmFja3dhcmQgY29tcGF0aWJp bGl0eS4KLStkbmwgQE1LRElSX1BAIGlzIG1hZ2ljOiBBQ19PVVRQVVQgYWRqdXN0cyBpdHMgdmFs dWUgZm9yIGVhY2ggTWFrZWZpbGUuCi0rZG5sIEhvd2V2ZXIgd2UgY2Fubm90IGRlZmluZSBta2Rp cl9wIGFzICQoTUtESVJfUCkgZm9yIHRoZSBzYWtlIG9mCi0rZG5sIE1ha2VmaWxlLmlucyB0aGF0 IGRvIG5vdCBkZWZpbmUgTUtESVJfUCwgc28gd2UgZG8gb3VyIG93bgotK2RubCBhZGp1c3RtZW50 IHVzaW5nIHRvcF9idWlsZGRpciAod2hpY2ggaXMgZGVmaW5lZCBtb3JlIG9mdGVuIHRoYW4KLStk bmwgTUtESVJfUCkuCi0rQUNfU1VCU1QoW21rZGlyX3BdLCBbIiRNS0RJUl9QIl0pZG5sCi0rY2Fz ZSAkbWtkaXJfcCBpbgotKyAgW1tcXC8kXV0qIHwgPzpbW1xcL11dKikgOzsKLSsgICovKikgbWtk aXJfcD0iXCQodG9wX2J1aWxkZGlyKS8kbWtkaXJfcCIgOzsKLStlc2FjCi0rXSkKLSsKLSsjIEhl bHBlciBmdW5jdGlvbnMgZm9yIG9wdGlvbiBoYW5kbGluZy4gICAgICAgICAgICAgICAgICAgICAt Ki0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIwMDMsIDIw MDUsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmls ZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZl cyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMg d2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMg cHJlc2VydmVkLgotKwotKyMgc2VyaWFsIDQKLSsKLSsjIF9BTV9NQU5HTEVfT1BUSU9OKE5BTUUp Ci0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtfQU1fTUFOR0xFX09QVElP Tl0sCi0rW1tfQU1fT1BUSU9OX11tNF9icGF0c3Vic3QoJDEsIFtbXmEtekEtWjAtOV9dXSwgW19d KV0pCi0rCi0rIyBfQU1fU0VUX09QVElPTihOQU1FKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rIyBTZXQgb3B0aW9uIE5BTUUuICBQcmVzZW50bHkgdGhhdCBvbmx5IG1lYW5z IGRlZmluaW5nIGEgZmxhZyBmb3IgdGhpcyBvcHRpb24uCi0rQUNfREVGVU4oW19BTV9TRVRfT1BU SU9OXSwKLStbbTRfZGVmaW5lKF9BTV9NQU5HTEVfT1BUSU9OKFskMV0pLCAxKV0pCi0rCi0rIyBf QU1fU0VUX09QVElPTlMoT1BUSU9OUykKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSsjIE9QVElPTlMgaXMgYSBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBBdXRvbWFrZSBv cHRpb25zLgotK0FDX0RFRlVOKFtfQU1fU0VUX09QVElPTlNdLAotK1ttNF9mb3JlYWNoX3coW19B TV9PcHRpb25dLCBbJDFdLCBbX0FNX1NFVF9PUFRJT04oX0FNX09wdGlvbildKV0pCi0rCi0rIyBf QU1fSUZfT1BUSU9OKE9QVElPTiwgSUYtU0VULCBbSUYtTk9ULVNFVF0pCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBFeGVjdXRlIElGLVNFVCBpZiBP UFRJT04gaXMgc2V0LCBJRi1OT1QtU0VUIG90aGVyd2lzZS4KLStBQ19ERUZVTihbX0FNX0lGX09Q VElPTl0sCi0rW200X2lmc2V0KF9BTV9NQU5HTEVfT1BUSU9OKFskMV0pLCBbJDJdLCBbJDNdKV0p Ci0rCi0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGUgYnVpbGQgZW52aXJvbm1lbnQgaXMg c2FuZS4gICAgLSotIEF1dG9jb25mIC0qLQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3 LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA1LCAyMDA4Ci0rIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBh bmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBh cyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCA1Ci0rCi0r IyBBTV9TQU5JVFlfQ0hFQ0sKLSsjIC0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBTV9TQU5J VFlfQ0hFQ0tdLAotK1tBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQg aXMgc2FuZV0pCi0rIyBKdXN0IGluIGNhc2UKLStzbGVlcCAxCi0rZWNobyB0aW1lc3RhbXAgPiBj b25mdGVzdC5maWxlCi0rIyBSZWplY3QgdW5zYWZlIGNoYXJhY3RlcnMgaW4gJHNyY2RpciBvciB0 aGUgYWJzb2x1dGUgd29ya2luZyBkaXJlY3RvcnkKLSsjIG5hbWUuICBBY2NlcHQgc3BhY2UgYW5k IHRhYiBvbmx5IGluIHRoZSBsYXR0ZXIuCi0rYW1fbGY9JwotKycKLStjYXNlIGBwd2RgIGluCi0r ICAqW1tcXFwiXCNcJFwmXCdcYCRhbV9sZl1dKikKLSsgICAgQUNfTVNHX0VSUk9SKFt1bnNhZmUg YWJzb2x1dGUgd29ya2luZyBkaXJlY3RvcnkgbmFtZV0pOzsKLStlc2FjCi0rY2FzZSAkc3JjZGly IGluCi0rICAqW1tcXFwiXCNcJFwmXCdcYCRhbV9sZlwgXAldXSopCi0rICAgIEFDX01TR19FUlJP UihbdW5zYWZlIHNyY2RpciB2YWx1ZTogYCRzcmNkaXInXSk7OwotK2VzYWMKLSsKLSsjIERvIGBz ZXQnIGluIGEgc3Vic2hlbGwgc28gd2UgZG9uJ3QgY2xvYmJlciB0aGUgY3VycmVudCBzaGVsbCdz Ci0rIyBhcmd1bWVudHMuICBNdXN0IHRyeSAtTCBmaXJzdCBpbiBjYXNlIGNvbmZpZ3VyZSBpcyBh Y3R1YWxseSBhCi0rIyBzeW1saW5rOyBzb21lIHN5c3RlbXMgcGxheSB3ZWlyZCBnYW1lcyB3aXRo IHRoZSBtb2QgdGltZSBvZiBzeW1saW5rcwotKyMgKGVnIEZyZWVCU0QgcmV0dXJucyB0aGUgbW9k IHRpbWUgb2YgdGhlIHN5bWxpbmsncyBjb250YWluaW5nCi0rIyBkaXJlY3RvcnkpLgotK2lmICgK LSsgICBzZXQgWCBgbHMgLUx0ICIkc3JjZGlyL2NvbmZpZ3VyZSIgY29uZnRlc3QuZmlsZSAyPiAv ZGV2L251bGxgCi0rICAgaWYgdGVzdCAiJFsqXSIgPSAiWCI7IHRoZW4KLSsgICAgICAjIC1MIGRp ZG4ndCB3b3JrLgotKyAgICAgIHNldCBYIGBscyAtdCAiJHNyY2Rpci9jb25maWd1cmUiIGNvbmZ0 ZXN0LmZpbGVgCi0rICAgZmkKLSsgICBybSAtZiBjb25mdGVzdC5maWxlCi0rICAgaWYgdGVzdCAi JFsqXSIgIT0gIlggJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3QuZmlsZSIgXAotKyAgICAgICYm IHRlc3QgIiRbKl0iICE9ICJYIGNvbmZ0ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUiOyB0aGVu Ci0rCi0rICAgICAgIyBJZiBuZWl0aGVyIG1hdGNoZWQsIHRoZW4gd2UgaGF2ZSBhIGJyb2tlbiBs cy4gIFRoaXMgY2FuIGhhcHBlbgotKyAgICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09ORklHX1NI RUxMIGlzIGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKLSsgICAgICAjIGJyb2tlbiBscyBhbGlhcyBm cm9tIHRoZSBlbnZpcm9ubWVudC4gIFRoaXMgaGFzIGFjdHVhbGx5Ci0rICAgICAgIyBoYXBwZW5l ZC4gIFN1Y2ggYSBzeXN0ZW0gY291bGQgbm90IGJlIGNvbnNpZGVyZWQgInNhbmUiLgotKyAgICAg IEFDX01TR19FUlJPUihbbHMgLXQgYXBwZWFycyB0byBmYWlsLiAgTWFrZSBzdXJlIHRoZXJlIGlz IG5vdCBhIGJyb2tlbgotK2FsaWFzIGluIHlvdXIgZW52aXJvbm1lbnRdKQotKyAgIGZpCi0rCi0r ICAgdGVzdCAiJFsyXSIgPSBjb25mdGVzdC5maWxlCi0rICAgKQotK3RoZW4KLSsgICAjIE9rLgot KyAgIDoKLStlbHNlCi0rICAgQUNfTVNHX0VSUk9SKFtuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xk ZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxlcyEKLStDaGVjayB5b3VyIHN5c3RlbSBjbG9ja10pCi0r ZmkKLStBQ19NU0dfUkVTVUxUKHllcyldKQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAz LCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUg aXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMg dW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdp dGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHBy ZXNlcnZlZC4KLSsKLSsjIEFNX1BST0dfSU5TVEFMTF9TVFJJUAotKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rIyBPbmUgaXNzdWUgd2l0aCB2ZW5kb3IgYGluc3RhbGwnIChldmVuIEdOVSkgaXMg dGhhdCB5b3UgY2FuJ3QKLSsjIHNwZWNpZnkgdGhlIHByb2dyYW0gdXNlZCB0byBzdHJpcCBiaW5h cmllcy4gIFRoaXMgaXMgZXNwZWNpYWxseQotKyMgYW5ub3lpbmcgaW4gY3Jvc3MtY29tcGlsaW5n IGVudmlyb25tZW50cywgd2hlcmUgdGhlIGJ1aWxkJ3Mgc3RyaXAKLSsjIGlzIHVubGlrZWx5IHRv IGhhbmRsZSB0aGUgaG9zdCdzIGJpbmFyaWVzLgotKyMgRm9ydHVuYXRlbHkgaW5zdGFsbC1zaCB3 aWxsIGhvbm9yIGEgU1RSSVBQUk9HIHZhcmlhYmxlLCBzbyB3ZQotKyMgYWx3YXlzIHVzZSBpbnN0 YWxsLXNoIGluIGBtYWtlIGluc3RhbGwtc3RyaXAnLCBhbmQgaW5pdGlhbGl6ZQotKyMgU1RSSVBQ Uk9HIHdpdGggdGhlIHZhbHVlIG9mIHRoZSBTVFJJUCB2YXJpYWJsZSAoc2V0IGJ5IHRoZSB1c2Vy KS4KLStBQ19ERUZVTihbQU1fUFJPR19JTlNUQUxMX1NUUklQXSwKLStbQUNfUkVRVUlSRShbQU1f UFJPR19JTlNUQUxMX1NIXSlkbmwKLSsjIEluc3RhbGxlZCBiaW5hcmllcyBhcmUgdXN1YWxseSBz dHJpcHBlZCB1c2luZyBgc3RyaXAnIHdoZW4gdGhlIHVzZXIKLSsjIHJ1biBgbWFrZSBpbnN0YWxs LXN0cmlwJy4gIEhvd2V2ZXIgYHN0cmlwJyBtaWdodCBub3QgYmUgdGhlIHJpZ2h0Ci0rIyB0b29s IHRvIHVzZSBpbiBjcm9zcy1jb21waWxhdGlvbiBlbnZpcm9ubWVudHMsIHRoZXJlZm9yZSBBdXRv bWFrZQotKyMgd2lsbCBob25vciB0aGUgYFNUUklQJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBv dmVycnVsZSB0aGlzIHByb2dyYW0uCi0rZG5sIERvbid0IHRlc3QgZm9yICRjcm9zc19jb21waWxp bmcgPSB5ZXMsIGJlY2F1c2UgaXQgbWlnaHQgYmUgYG1heWJlJy4KLStpZiB0ZXN0ICIkY3Jvc3Nf Y29tcGlsaW5nIiAhPSBubzsgdGhlbgotKyAgQUNfQ0hFQ0tfVE9PTChbU1RSSVBdLCBbc3RyaXBd LCA6KQotK2ZpCi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNPSJcJChpbnN0YWxsX3NoKSAtYyAtcyIK LStBQ19TVUJTVChbSU5TVEFMTF9TVFJJUF9QUk9HUkFNXSldKQotKwotKyMgQ29weXJpZ2h0IChD KSAyMDA2LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlz IGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMg Z2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwK LSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNl IGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCAyCi0rCi0rIyBfQU1fU1VCU1RfTk9UTUFLRShW QVJJQUJMRSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgUHJldmVudCBBdXRv bWFrZSBmcm9tIG91dHB1dHRpbmcgVkFSSUFCTEUgPSBAVkFSSUFCTEVAIGluIE1ha2VmaWxlLmlu LgotKyMgVGhpcyBtYWNybyBpcyB0cmFjZWQgYnkgQXV0b21ha2UuCi0rQUNfREVGVU4oW19BTV9T VUJTVF9OT1RNQUtFXSkKLSsKLSsjIEFNX1NVQlNUX05PVE1BS0UoVkFSSUFCTEUpCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFB1YmxpYyBzaXN0ZXIgb2YgX0FNX1NVQlNUX05P VE1BS0UuCi0rQUNfREVGVU4oW0FNX1NVQlNUX05PVE1BS0VdLCBbX0FNX1NVQlNUX05PVE1BS0Uo JEApXSkKLSsKLSsjIENoZWNrIGhvdyB0byBjcmVhdGUgYSB0YXJiYWxsLiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDQs IDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBp cyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1 bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0 aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJl c2VydmVkLgotKwotKyMgc2VyaWFsIDIKLSsKLSsjIF9BTV9QUk9HX1RBUihGT1JNQVQpCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgaG93IHRvIGNyZWF0ZSBhIHRhcmJhbGwgaW4g Zm9ybWF0IEZPUk1BVC4KLSsjIEZPUk1BVCBzaG91bGQgYmUgb25lIG9mIGB2NycsIGB1c3Rhcics IG9yIGBwYXgnLgotKyMKLSsjIFN1YnN0aXR1dGUgYSB2YXJpYWJsZSAkKGFtX190YXIpIHRoYXQg aXMgYSBjb21tYW5kCi0rIyB3cml0aW5nIHRvIHN0ZG91dCBhIEZPUk1BVC10YXJiYWxsIGNvbnRh aW5pbmcgdGhlIGRpcmVjdG9yeQotKyMgJHRhcmRpci4KLSsjICAgICB0YXJkaXI9ZGlyZWN0b3J5 ICYmICQoYW1fX3RhcikgPiByZXN1bHQudGFyCi0rIwotKyMgU3Vic3RpdHV0ZSBhIHZhcmlhYmxl ICQoYW1fX3VudGFyKSB0aGF0IGV4dHJhY3Qgc3VjaAotKyMgYSB0YXJiYWxsIHJlYWQgZnJvbSBz dGRpbi4KLSsjICAgICAkKGFtX191bnRhcikgPCByZXN1bHQudGFyCi0rQUNfREVGVU4oW19BTV9Q Uk9HX1RBUl0sCi0rWyMgQWx3YXlzIGRlZmluZSBBTVRBUiBmb3IgYmFja3dhcmQgY29tcGF0aWJp bGl0eS4KLStBTV9NSVNTSU5HX1BST0coW0FNVEFSXSwgW3Rhcl0pCi0rbTRfaWYoWyQxXSwgW3Y3 XSwKLSsgICAgIFthbV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIic7IGFtX191bnRh cj0nJHtBTVRBUn0geGYgLSddLAotKyAgICAgW200X2Nhc2UoWyQxXSwgW3VzdGFyXSwsIFtwYXhd LCwKLSsgICAgICAgICAgICAgIFttNF9mYXRhbChbVW5rbm93biB0YXIgZm9ybWF0XSldKQotK0FD X01TR19DSEVDS0lORyhbaG93IHRvIGNyZWF0ZSBhICQxIHRhciBhcmNoaXZlXSkKLSsjIExvb3Ag b3ZlciBhbGwga25vd24gbWV0aG9kcyB0byBjcmVhdGUgYSB0YXIgYXJjaGl2ZSB1bnRpbCBvbmUg d29ya3MuCi0rX2FtX3Rvb2xzPSdnbnV0YXIgbTRfaWYoWyQxXSwgW3VzdGFyXSwgW3BsYWludGFy XSkgcGF4IGNwaW8gbm9uZScKLStfYW1fdG9vbHM9JHthbV9jdl9wcm9nX3Rhcl8kMS0kX2FtX3Rv b2xzfQotKyMgRG8gbm90IGZvbGQgdGhlIGFib3ZlIHR3byBsaW5lIGludG8gb25lLCBiZWNhdXNl IFRydTY0IHNoIGFuZAotKyMgU29sYXJpcyBzaCB3aWxsIG5vdCBncm9rIHNwYWNlcyBpbiB0aGUg cmhzIG9mIGAtJy4KLStmb3IgX2FtX3Rvb2wgaW4gJF9hbV90b29scwotK2RvCi0rICBjYXNlICRf YW1fdG9vbCBpbgotKyAgZ251dGFyKQotKyAgICBmb3IgX2FtX3RhciBpbiB0YXIgZ251dGFyIGd0 YXI7Ci0rICAgIGRvCi0rICAgICAgQU1fUlVOX0xPRyhbJF9hbV90YXIgLS12ZXJzaW9uXSkgJiYg YnJlYWsKLSsgICAgZG9uZQotKyAgICBhbV9fdGFyPSIkX2FtX3RhciAtLWZvcm1hdD1tNF9pZihb JDFdLCBbcGF4XSwgW3Bvc2l4XSwgWyQxXSkgLWNoZiAtICInIiQkdGFyZGlyIicKLSsgICAgYW1f X3Rhcl89IiRfYW1fdGFyIC0tZm9ybWF0PW00X2lmKFskMV0sIFtwYXhdLCBbcG9zaXhdLCBbJDFd KSAtY2hmIC0gIiciJHRhcmRpciInCi0rICAgIGFtX191bnRhcj0iJF9hbV90YXIgLXhmIC0iCi0r ICAgIDs7Ci0rICBwbGFpbnRhcikKLSsgICAgIyBNdXN0IHNraXAgR05VIHRhcjogaWYgaXQgZG9l cyBub3Qgc3VwcG9ydCAtLWZvcm1hdD0gaXQgZG9lc24ndCBjcmVhdGUKLSsgICAgIyB1c3RhciB0 YXJiYWxsIGVpdGhlci4KLSsgICAgKHRhciAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMSAmJiBj b250aW51ZQotKyAgICBhbV9fdGFyPSd0YXIgY2hmIC0gIiQkdGFyZGlyIicKLSsgICAgYW1fX3Rh cl89J3RhciBjaGYgLSAiJHRhcmRpciInCi0rICAgIGFtX191bnRhcj0ndGFyIHhmIC0nCi0rICAg IDs7Ci0rICBwYXgpCi0rICAgIGFtX190YXI9J3BheCAtTCAteCAkMSAtdyAiJCR0YXJkaXIiJwot KyAgICBhbV9fdGFyXz0ncGF4IC1MIC14ICQxIC13ICIkdGFyZGlyIicKLSsgICAgYW1fX3VudGFy PSdwYXggLXInCi0rICAgIDs7Ci0rICBjcGlvKQotKyAgICBhbV9fdGFyPSdmaW5kICIkJHRhcmRp ciIgLXByaW50IHwgY3BpbyAtbyAtSCAkMSAtTCcKLSsgICAgYW1fX3Rhcl89J2ZpbmQgIiR0YXJk aXIiIC1wcmludCB8IGNwaW8gLW8gLUggJDEgLUwnCi0rICAgIGFtX191bnRhcj0nY3BpbyAtaSAt SCAkMSAtZCcKLSsgICAgOzsKLSsgIG5vbmUpCi0rICAgIGFtX190YXI9ZmFsc2UKLSsgICAgYW1f X3Rhcl89ZmFsc2UKLSsgICAgYW1fX3VudGFyPWZhbHNlCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0r ICAjIElmIHRoZSB2YWx1ZSB3YXMgY2FjaGVkLCBzdG9wIG5vdy4gIFdlIGp1c3Qgd2FudGVkIHRv IGhhdmUgYW1fX3RhcgotKyAgIyBhbmQgYW1fX3VudGFyIHNldC4KLSsgIHRlc3QgLW4gIiR7YW1f Y3ZfcHJvZ190YXJfJDF9IiAmJiBicmVhawotKwotKyAgIyB0YXIvdW50YXIgYSBkdW1teSBkaXJl Y3RvcnksIGFuZCBzdG9wIGlmIHRoZSBjb21tYW5kIHdvcmtzCi0rICBybSAtcmYgY29uZnRlc3Qu ZGlyCi0rICBta2RpciBjb25mdGVzdC5kaXIKLSsgIGVjaG8gR3JlcE1lID4gY29uZnRlc3QuZGly L2ZpbGUKLSsgIEFNX1JVTl9MT0coW3RhcmRpcj1jb25mdGVzdC5kaXIgJiYgZXZhbCAkYW1fX3Rh cl8gPmNvbmZ0ZXN0LnRhcl0pCi0rICBybSAtcmYgY29uZnRlc3QuZGlyCi0rICBpZiB0ZXN0IC1z IGNvbmZ0ZXN0LnRhcjsgdGhlbgotKyAgICBBTV9SVU5fTE9HKFskYW1fX3VudGFyIDxjb25mdGVz dC50YXJdKQotKyAgICBncmVwIEdyZXBNZSBjb25mdGVzdC5kaXIvZmlsZSA+L2Rldi9udWxsIDI+ JjEgJiYgYnJlYWsKLSsgIGZpCi0rZG9uZQotK3JtIC1yZiBjb25mdGVzdC5kaXIKLSsKLStBQ19D QUNIRV9WQUwoW2FtX2N2X3Byb2dfdGFyXyQxXSwgW2FtX2N2X3Byb2dfdGFyXyQxPSRfYW1fdG9v bF0pCi0rQUNfTVNHX1JFU1VMVChbJGFtX2N2X3Byb2dfdGFyXyQxXSldKQotK0FDX1NVQlNUKFth bV9fdGFyXSkKLStBQ19TVUJTVChbYW1fX3VudGFyXSkKLStdKSAjIF9BTV9QUk9HX1RBUgotKwot K200X2luY2x1ZGUoW2NvbmZpZy9heF9ib29zdC5tNF0pCi0rbTRfaW5jbHVkZShbY29uZmlnL2F4 X215c3FsLm00XSkKLSttNF9pbmNsdWRlKFtjb25maWcvYXhfb3JhY2xlX29jaS5tNF0pCi0rbTRf aW5jbHVkZShbY29uZmlnL2F4X3Bvc3RncmVzcWwubTRdKQotK200X2luY2x1ZGUoW2NvbmZpZy9j cHB1bml0Lm00XSkKLSttNF9pbmNsdWRlKFtjb25maWcvbGlidG9vbC5tNF0pCi0rbTRfaW5jbHVk ZShbY29uZmlnL2x0b3B0aW9ucy5tNF0pCi0rbTRfaW5jbHVkZShbY29uZmlnL2x0c3VnYXIubTRd KQotK200X2luY2x1ZGUoW2NvbmZpZy9sdHZlcnNpb24ubTRdKQotK200X2luY2x1ZGUoW2NvbmZp Zy9sdH5vYnNvbGV0ZS5tNF0pCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svQVVUSE9SUyBz b2NpLTMuMC4wX3RyZXAzMDAvQVVUSE9SUwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL0FVVEhPUlMJ MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAz MDAvQVVUSE9SUwkyMDA5LTA0LTE2IDE5OjM3OjEwLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCAr MSw5IEBACi0rCi0rRGF2aWQgQ291cnRuZXksIERldmVsb3BlciwgZGFjb3VydG5leSBhdCB1c2Vy cy5zb3VyY2Vmb3JnZS5uZXQKLStNYXRldXN6IExvc2tvdCwgRGV2ZWxvcGVyLCBtbG9za290IGF0 IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAotK01hY2llaiBTb2JjemFrLCBBZG1pbiBQcm9qZWN0IE1h bmFnZXIsIG1zb2JjemFrIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAotK1Bhd2VsIEFsZWtzYW5k ZXIgRmVkb3J5bnNraSwgRGV2ZWxvcGVyLCBwZmVkb3IgYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0 Ci0rUmFmYWwgQm9icm93c2tpLCBEZXZlbG9wZXIsIHJib2JybyBhdCB1c2Vycy5zb3VyY2Vmb3Jn ZS5uZXQKLStKZWFuLU1hcmMsIERldmVsb3Blciwgc2lkanRhbCBhdCB1c2Vycy5zb3VyY2Vmb3Jn ZS5uZXQKLStTdGVwaGVuIEh1dHRvbiwgRGV2ZWxvcGVyLCBzdGVwaGVuaHV0dG9uIGF0IHVzZXJz LnNvdXJjZWZvcmdlLm5ldAotKwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL01h a2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9NYWtlZmlsZS5hbQotLS0tIHNvY2kt My4wLjBfNC1wYWNrL2J1aWxkL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL01ha2VmaWxlLmFtCTIwMDkt MDQtMTYgMTk6Mzc6MDguMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDcgQEAKLSsjIyBidWls ZCBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgot KwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLStTVUJESVJTID0gdW5p eCBtc3ZjODAKLSsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9NYWtlZmlsZS5p biBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQt cGFjay9idWlsZC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9NYWtlZmlsZS5pbgkyMDEwLTAxLTIzIDE0 OjQ0OjUxLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw2MTYgQEAKLSsjIE1ha2VmaWxlLmlu IGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25m aWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcs IDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2 LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMuCi0r IyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRp c3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBh cyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0r IyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0g QHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRl ZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBB Q0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1fX2Nk ID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2lu c3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9H UkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3No KSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChw cm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxM ID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklO U1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAK LStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9IFJFQURNRSAkKHNyY2Rpcikv TWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJCh0b3Bfc3JjZGlyKS9NYWtl ZmlsZS5jb21tb24KLStzdWJkaXIgPSBidWlsZAotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIp L2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9f Y29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVO REVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9z aCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStD T05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0rU09VUkNF UyA9Ci0rRElTVF9TT1VSQ0VTID0KLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUg Y2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJl Y3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZl IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3Rh bGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1y ZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGlu c3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5z dGFsbC1yZWN1cnNpdmUKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJl Y3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFp bmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChSRUNVUlNJVkVf VEFSR0VUUzotcmVjdXJzaXZlPSkgXAotKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1 cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAotKwlkaXN0ZGlyCi0rRVRBR1MgPSBldGFn cwotK0NUQUdTID0gY3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCi0rRElTVEZJTEVT ID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElT VCkKLSthbV9fcmVsYXRpdml6ZSA9IFwKLSsgIGRpcjA9YHB3ZGA7IFwKLSsgIHNlZF9maXJzdD0n cyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAotKyAgc2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7IFwK LSsgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCi0rICBzZWRfYnV0bGFzdD0n cywvKlteL10qJCQsLCc7IFwKLSsgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwKLSsgICAg Zmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKLSsgICAgaWYg dGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKLSsgICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9 ICIuLiI7IHRoZW4gXAotKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRz ZWRfbGFzdCJgLyIkJGRpcjIiOyBcCi0rICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAiIHwgc2Vk IC1lICIkJHNlZF9idXRsYXN0ImA7IFwKLSsgICAgICBlbHNlIFwKLSsgICAgICAgIGZpcnN0Mj1g ZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAgICAgICAgaWYgdGVz dCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKLSsgICAgICAgICAgZGlyMj1gZWNobyAi JCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0rICAgICAgICBlbHNlIFwKLSsgICAg ICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAotKyAgICAgICAgZmk7IFwKLSsgICAgICAgIGRpcjA9 IiQkZGlyMCIvIiQkZmlyc3QiOyBcCi0rICAgICAgZmk7IFwKLSsgICAgZmk7IFwKLSsgICAgZGly MT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0rICBkb25lOyBcCi0r ICByZWxkaXI9IiQkZGlyMiIKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJA Ci0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRP SEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZM QUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVf VElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJA Ci0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJ QlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9P U1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JB TV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhP Tl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVH RVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05f TElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZ U1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NU X1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAot K0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0r Q0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAot K0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBA Q1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQ VU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9W RVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0g QENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BB VEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBE U1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hP X04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhF RVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lP TiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9 IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9H UkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQ VEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xE ID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElC UyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9 IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9A Ci0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0r TVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAot K01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJ T05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBA Ci0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFD TEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1Mg PSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJ X1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tB R0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAK LStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tB R0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FH RV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NF UEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NU R1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBA UE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxB R1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIg PSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0r U0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JV UklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQg PSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19C VVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQ QAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lP TkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3Ny Y2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9z cmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3Rf Q1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1f X2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5n X2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSth bV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVp bGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2Nw dUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9y QAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9v dGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRv Y2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStk dmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19v ayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAot K2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRv ciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBp bmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxf c2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVj ZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRl ZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRpciA9IEBt YW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVk ZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGly QAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRl ZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9 IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxk X3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRk aXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9i dWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmls ZS5pbgotK1NVQkRJUlMgPSB1bml4IG1zdmM4MAotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5T VUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0g JCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBm b3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBc Ci0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVz dCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQg MTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2Rpcikg JiYgJChBVVRPTUFLRSkgLS1nbnUgYnVpbGQvTWFrZWZpbGUnOyBcCi0rCSQoYW1fX2NkKSAkKHRv cF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBidWlsZC9NYWtlZmlsZQotKy5Q UkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9w X2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcu c3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9i dWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19k ZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkg Li9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0r CWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2Rpcikv Y29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3Ny Y2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9N NCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6 Ci0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0 b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRp cmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhl bSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsj IFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRp dGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmln LnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2Ug dGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsj ICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29t bWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhp dCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4g XAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVz Jzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0 PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4g JCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAg IGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJ ICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJ ICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxf dGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0 ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp ICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0r JChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBc Ci0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAg ICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAot KwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4g XAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VC RElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJ cmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGly IiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0r CSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAk QCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAot KwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7 IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7 IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQk bG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0 IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1f X2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25l Ci0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJk aXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDog JChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNP VVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZv ciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQk aTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFX SykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlm IChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lk IC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChI RUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklM RVMpICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykg LS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBp bmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwll bHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBc Ci0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0 ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29w dGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1 bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhl biBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwK LSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAg IEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsg XAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0 aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9m aXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0rCSAgICAkKEVUQUdTKSAkKEVU QUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICIkJEAi ICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQo QU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICQkdW5pcXVlOyBcCi0rCSAg Zmk7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVB REVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVT KSAkKExJU1ApCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc Ci0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0g MTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKLSsJ ICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdT KSBcCi0rCSAgICAgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9w X2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCi0r CSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgotKwotK2Rpc3RjbGVhbi10YWdz OgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rp c3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIk KHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0n JChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8g ZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3Qi IFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3Qi YDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hv ICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7 cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9y IGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVz dCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRl c3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2Vk IC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZp bGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAt cGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAg aWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhl biBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8 fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAt cGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAg Y3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVs c2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1w ICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJ ICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBc Ci0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElS X1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsg XAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAg ICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAotKwkgICAgJChh bV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBk aXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKLSsJICAgICQoYW1fX3JlbGF0 aXZpemUpOyBcCi0rCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGVjaG8g IiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQk bmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKLSsJICAgIGVj aG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1f X3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKLSsJICAgICgkKGFtX19jZCkgJCRzdWJkaXIg JiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rp c3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlz dGRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2No ZWNrPTogXAotKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAot KwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1h bQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlCi0raW5zdGFsbGRp cnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJzLWFtOgotK2luc3RhbGw6IGlu c3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0r aW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1bmluc3Rh bGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNr OiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFN X01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwK LSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFM TF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVj aG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0r bW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1n ZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENP TkZJR19DTEVBTl9GSUxFUykKLSsJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQo Q09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhf RklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21t YW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxl dGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJ LXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJD TEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4t Z2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0 Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4t YW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNp dmUKLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUKLSsKLStodG1sLWFtOgot KwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEt YW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwt ZHZpLWFtOgotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwt aHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBp bnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwt bWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxs LXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2luc3Rh bGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1h aW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXIt Y2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0 bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3Rs eWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2 ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5p bnN0YWxsLWFtOgotKwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VS U0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWFtIGluc3RhbGwtc3Ry aXAgdGFncy1yZWN1cnNpdmUKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMp ICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBjaGVjayBj aGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwljdGFncyBjdGFn cy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxp YnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFt IGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFs bC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWlu c3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBc Ci0rCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1h bSBcCi0rCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVj ayBcCi0rCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFp bmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3Rs eWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMt YW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBcCi0rCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStA U0VUX01BS0VACi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRv IG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAo Zm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5hbSBzb2NpLTMu MC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL2J1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2RsbC9N YWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCAr MSwxMSBAQAotKyMjIGJ1aWxkL21zdmM4MC9kbGwgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0 b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1h a2VmaWxlLmluCi0rCi0rRVhUUkFfRElTVCA9IGJ1aWxkLmJhdCBlbXB0eS52Y3Byb2ogbWFrZXRl c3QubWFrIG9kYmNfdGVzdF9wb3N0Z3Jlc3FsLnZjcHJvaiBcCi0rCXBvc3RncmVzcWxfdGVzdC52 Y3Byb2ogc3FsaXRlM190ZXN0LnZjcHJvaiBjbGVhbi5iYXQgXAotKwlmaXJlYmlyZF90ZXN0LnZj cHJvaiBvZGJjX3Rlc3RfYWNjZXNzLnZjcHJvaiBvZGJjLnZjcHJvaiBcCi0rCXBvc3RncmVzcWwu dmNwcm9qIHNxbGl0ZTMudmNwcm9qIGNvcmUudmNwcm9qIGZpcmViaXJkLnZjcHJvaiBcCi0rCW9k YmNfdGVzdF9tc3NxbC52Y3Byb2ogb3JhY2xlX3Rlc3QudmNwcm9qIHNvY2lfZGxsLnNsbiBcCi0r CWVtcHR5X3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9teXNxbC52Y3Byb2ogb3JhY2xlLnZjcHJvaiBz b2NpX2RsbC52c3Byb3BzCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2Yzgw L2RsbC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2RsbC9NYWtl ZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUu aW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5pbgkyMDEwLTAxLTIzIDE0OjQ0OjUxLjAw MDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw0MjAgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRl ZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5w dXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5 OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAy MDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1h a2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24K LSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUg aXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5v dGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0r IyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAK LStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChp bmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0r cGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRI PSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hf REFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChp bnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lO U1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BP U1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6 Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3Ry aXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNy Y2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1 YmRpciA9IGJ1aWxkL21zdmM4MC9kbGwKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xv Y2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jv b3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZp Z3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJ RVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1k Ci0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklH X0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQotK1NPVVJDRVMgPQot K0RJU1RfU09VUkNFUyA9Ci0rRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJD RVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1U QVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hF QURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tA Ci0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0g QEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklM RVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElC QAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NUX01Q SV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0r Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAot K0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIg PSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NF UklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElC QAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURf TElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIg PSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09T VF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpB VElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1Mg PSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5J VF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9D T05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04g PSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStD WFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFU SF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStE U1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVD SE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBA RUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJ QlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBA Ci0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0r SU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJ TlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9Q Uk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJ Qk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJ UE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8g PSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNR TF9DRkxBR1NACi0rTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElSUyA9IEBN WVNRTF9ESVJTQAotK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJTSU9OID0g QE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1Q ID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVf RElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVf T0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9 IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9P TDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdF X0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RS SU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5B TUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRP UiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NP TkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JF U1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NU R1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lP TkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NF RCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09D SV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVB REVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVT UUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NU UklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJ T04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNk aXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJA Ci0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3Rf Q0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RV TVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0g QGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBA YW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0r YnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1 ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBA YnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRp ckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0r ZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0g QGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3By ZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBo b3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AK LStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5j bHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3No ID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRp ckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAK LStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAot K21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIg PSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhA Ci0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3Bz ZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAot K3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0r c3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNA Ci0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9 IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdT ID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rTUFJTlRBSU5FUkNMRUFORklM RVMgPSBNYWtlZmlsZS5pbgotK0VYVFJBX0RJU1QgPSBidWlsZC5iYXQgZW1wdHkudmNwcm9qIG1h a2V0ZXN0Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3Byb2ogXAotKwlwb3N0Z3Jlc3FsX3Rl c3QudmNwcm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4uYmF0IFwKLSsJZmlyZWJpcmRfdGVz dC52Y3Byb2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2ogb2RiYy52Y3Byb2ogXAotKwlwb3N0Z3Jl c3FsLnZjcHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJvaiBmaXJlYmlyZC52Y3Byb2ogXAot KwlvZGJjX3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0LnZjcHJvaiBzb2NpX2RsbC5zbG4g XAotKwllbXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlzcWwudmNwcm9qIG9yYWNsZS52Y3By b2ogc29jaV9kbGwudnNwcm9wcwotKwotK2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJWEVTOgotKyQo c3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIp L01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87 IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRl cCopIFwKLSsJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgYW0tLXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVu IGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVz YWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtF KSAtLWdudSBidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlJzsgXAotKwkkKGFtX19jZCkgJCh0b3Bf c3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgYnVpbGQvbXN2YzgwL2RsbC9NYWtl ZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxl LmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkg ICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8k QCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXli ZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9w X3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwot KyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQo QUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoYW1fX2FjbG9jYWxf bTRfZGVwcyk6Ci0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStj bGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rdGFnczogVEFHUwotK1RBR1M6 Ci0rCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6Ci0rCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMp Ci0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9c XFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2Vk ICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0r CSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8 IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xe JCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0 X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBc Ci0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAot KwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmls ZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBk PS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0 aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdg OyBcCi0rCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAotKwkgICAg ICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2ht b2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGly KS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLWZw UiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgICAg ICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2ht b2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtZnBSICQkZC8kJGZpbGUg IiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1m ICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0 ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStj aGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLWFtCi0rYWxsLWFtOiBNYWtlZmlsZQotK2lu c3RhbGxkaXJzOgotK2luc3RhbGw6IGluc3RhbGwtYW0KLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwt ZXhlYy1hbQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCi0rdW5pbnN0YWxsOiB1bmlu c3RhbGwtYW0KLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGlu c3RhbGxjaGVjay1hbQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFs bF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxB Rz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxM X1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFu LWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJ LXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5f RklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVB Tl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQotKwot K21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRl bmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0 aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIk KE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykK LStjbGVhbjogY2xlYW4tYW0KLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0 b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KLSsJLXJtIC1m IE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYwotKwot K2R2aTogZHZpLWFtCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtYW0KLSsKLStodG1sLWFt OgotKwotK2luZm86IGluZm8tYW0KLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbToK LSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KLSsKLStpbnN0YWxsLWR2aS1hbToKLSsK LStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KLSsK LStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KLSsK LStpbnN0YWxsLWluZm8tYW06Ci0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGlu c3RhbGwtcGRmLWFtCi0rCi0raW5zdGFsbC1wZGYtYW06Ci0rCi0raW5zdGFsbC1wczogaW5zdGFs bC1wcy1hbQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21h aW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJLXJtIC1mIE1ha2VmaWxlCi0r bWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJp YwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwotK21vc3RseWNsZWFuLWFtOiBt b3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1hbQot KwotK3BkZi1hbToKLSsKLStwczogcHMtYW0KLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06 Ci0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTogYWxsIGFs bC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAot KwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGRpciBk dmkgXAotKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwt YW0gXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwt ZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5z dGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1h biBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1h bSBpbnN0YWxsLXN0cmlwIFwKLSsJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxs ZGlycyBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3Rs eWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBw ZGYtYW0gcHMgcHMtYW0gdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQotKwotK0BTRVRfTUFLRUAKLSsK LSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBh bGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBs ZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9i dWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQv bXN2YzgwL2xpYi9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmFtCTIw MDktMDQtMTYgMTk6Mzc6MDcuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDExIEBACi0rIyMg YnVpbGQvbXN2YzgwL2xpYiBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01h a2VmaWxlLmNvbW1vbgotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSsK LStFWFRSQV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5tYWsgb2RiY190 ZXN0X3Bvc3RncmVzcWwudmNwcm9qIFwKLSsJcG9zdGdyZXNxbF90ZXN0LnZjcHJvaiBzcWxpdGUz X3Rlc3QudmNwcm9qIGNsZWFuLmJhdCBcCi0rCWZpcmViaXJkX3Rlc3QudmNwcm9qIG9kYmNfdGVz dF9hY2Nlc3MudmNwcm9qIG9kYmMudmNwcm9qIFwKLSsJcG9zdGdyZXNxbC52Y3Byb2ogc3FsaXRl My52Y3Byb2ogY29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKLSsJb2RiY190ZXN0X21zc3Fs LnZjcHJvaiBvcmFjbGVfdGVzdC52Y3Byb2ogc29jaV9saWIuc2xuIFwKLSsJZW1wdHlfdGVzdC52 Y3Byb2ogb2RiY190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9qIHNvY2lfbGliLnZzcHJv cHMKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxl LmluIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmluCi0tLS0g c29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZS5pbgkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9t c3ZjODAvbGliL01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTEuMDAwMDAwMDAwICswMTAw Ci1AQCAtMCwwICsxLDQyMCBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtl IDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENv cHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAw MSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMg ZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5s aW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGgg b3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNl cnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUg ZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIg UFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIg PSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQ QUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJleGVjZGly ID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJT SU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0 YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1j Ci0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIg PSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUp Ci0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0g OgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5T VEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0 QAotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmls ZS5pbiBcCi0rCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGlyID0gYnVpbGQv bXN2YzgwL2xpYgotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9f YWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3Fs Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMu bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xl dGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAk KGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFD TE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVB REVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMg PQotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0rU09VUkNFUyA9Ci0rRElTVF9TT1VSQ0VT ID0KLStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZP UykgJChFWFRSQV9ESVNUKQotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAK LStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9I RUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9DRkxB R1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9U SU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAK LStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElC UyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKLStCT09T VF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKLStCT09TVF9QUk9HUkFN X09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUFlUSE9O X0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdF WF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9M SUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfU1lT VEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1Rf VEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklU X1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0r Qk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStD QyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0r Q1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBD UFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBV TklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZF UlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBA Q1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFU SF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAotK0RTWU1VVElMID0gQERT WU1VVElMQAotK0RVTVBCSU4gPSBARFVNUEJJTkAKLStFQ0hPX0MgPSBARUNIT19DQAotK0VDSE9f TiA9IEBFQ0hPX05ACi0rRUNIT19UID0gQEVDSE9fVEAKLStFR1JFUCA9IEBFR1JFUEAKLStFWEVF WFQgPSBARVhFRVhUQAotK0ZHUkVQID0gQEZHUkVQQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9O ID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0g QElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dS QU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBU QAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTEQg PSBATERACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJT ID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xJUE8gPSBATElQT0AKLStMTl9TID0g QExOX1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JKU0AKLStNQUtFSU5GTyA9IEBNQUtFSU5GT0AK LStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStN WVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0r TVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lP TkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAK LStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNM RV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9 IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lf VkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FH RSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAot K1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FH RV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdF X1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQ QVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RH UkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQ T1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFH U0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9 IEBSQU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStT RVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVS SUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JV UklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBA Ci0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9O QAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3Jj ZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3Ny Y2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9D WFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9f aW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdf ZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2Ft X191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWls ZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1 QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JA Ci0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290 ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9j ZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2 aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29r ID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0r aG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9y ID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGlu Y2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9z aEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNk aXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVk aXIgPSBAbG9jYWxzdGF0ZWRpckAKLStsdF9FQ0hPID0gQGx0X0VDSE9ACi0rbWFuZGlyID0gQG1h bmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRl ZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJA Ci0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVk aXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0g QHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRf cHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRp ckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1 aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxl LmluCi0rRVhUUkFfRElTVCA9IGJ1aWxkLmJhdCBlbXB0eS52Y3Byb2ogbWFrZXRlc3QubWFrIG9k YmNfdGVzdF9wb3N0Z3Jlc3FsLnZjcHJvaiBcCi0rCXBvc3RncmVzcWxfdGVzdC52Y3Byb2ogc3Fs aXRlM190ZXN0LnZjcHJvaiBjbGVhbi5iYXQgXAotKwlmaXJlYmlyZF90ZXN0LnZjcHJvaiBvZGJj X3Rlc3RfYWNjZXNzLnZjcHJvaiBvZGJjLnZjcHJvaiBcCi0rCXBvc3RncmVzcWwudmNwcm9qIHNx bGl0ZTMudmNwcm9qIGNvcmUudmNwcm9qIGZpcmViaXJkLnZjcHJvaiBcCi0rCW9kYmNfdGVzdF9t c3NxbC52Y3Byb2ogb3JhY2xlX3Rlc3QudmNwcm9qIHNvY2lfbGliLnNsbiBcCi0rCWVtcHR5X3Rl c3QudmNwcm9qIG9kYmNfdGVzdF9teXNxbC52Y3Byb2ogb3JhY2xlLnZjcHJvaiBzb2NpX2xpYi52 c3Byb3BzCi0rCi0rYWxsOiBhbGwtYW0KLSsKLSsuU1VGRklYRVM6Ci0rJChzcmNkaXIpL01ha2Vm aWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29t bW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNh c2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAg ICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNl IGJyZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25l OyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IGJ1aWxk L21zdmM4MC9saWIvTWFrZWZpbGUnOyBcCi0rCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwK LSsJICAkKEFVVE9NQUtFKSAtLWdudSBidWlsZC9tc3ZjODAvbGliL01ha2VmaWxlCi0rLlBSRUNJ T1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0 dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZp bGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2Nv bmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNh YzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGly KS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTog ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKLSsK LSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6 Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLSt0YWdzOiBUQUdTCi0rVEFHUzoKLSsKLStjdGFnczog Q1RBR1MKLStDVEFHUzoKLSsKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0 cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAot Kwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxc Kl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVz PWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAt ZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0 cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAot KwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQg Jy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAt dWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkg IGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQo c3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAg ZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlm IHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCi0rCSAgICAgIGZpbmQgIiQoZGlz dGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBc OzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0 ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8k JGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgICAgIGZpbmQgIiQoZGlz dGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBc OzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQk ZGlyIiB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikv JCRmaWxlIiBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIg XAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwt YW0KLStjaGVjazogY2hlY2stYW0KLSthbGwtYW06IE1ha2VmaWxlCi0raW5zdGFsbGRpcnM6Ci0r aW5zdGFsbDogaW5zdGFsbC1hbQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCi0raW5z dGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQotKwot K2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1l eGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFt Ci0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9H UkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09 IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBg dGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9 U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsK LStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChD T05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsJLXRl c3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVT KSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCi0rCi0rbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWlu dGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVp cmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNM RUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVh bi1hbQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xl YW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUKLStk aXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljCi0rCi0rZHZpOiBkdmktYW0K LSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1hbQotKwotK2h0bWwtYW06Ci0rCi0raW5mbzog aW5mby1hbQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOgotKwotK2luc3RhbGwt ZHZpOiBpbnN0YWxsLWR2aS1hbQotKwotK2luc3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwtZXhl Yy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQotKwotK2luc3RhbGwtaHRt bC1hbToKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQotKwotK2luc3RhbGwtaW5m by1hbToKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0K LSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCi0rCi0r aW5zdGFsbC1wcy1hbToKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVh bjogbWFpbnRhaW5lci1jbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNs ZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5 Y2xlYW46IG1vc3RseWNsZWFuLWFtCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdl bmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLWFtCi0rCi0rcGRmLWFtOgot KwotK3BzOiBwcy1hbQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbToKLSsKLSsuTUFLRTog aW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiBhbGwgYWxsLWFtIGNoZWNrIGNo ZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCi0rCWRpc3RjbGVhbiBk aXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0ZGlyIGR2aSBcCi0rCWR2aS1h bSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCi0rCWluc3Rh bGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gXAotKwlp bnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0g XAotKwlpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRm IFwKLSsJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3Ry aXAgXAotKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWlu ZXItY2xlYW4gXAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5 Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1h bSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9NQUtFQAotKwotKyMgVGVsbCB2ZXJz aW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMu Ci0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUg ZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxk L21zdmM4MC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL01ha2Vm aWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL01ha2VmaWxlLmFtCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAw L2J1aWxkL21zdmM4MC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA4LjAwMDAwMDAwMCAr MDIwMAotQEAgLTAsMCArMSw4IEBACi0rIyMgYnVpbGQvbXN2YzgwIHN1Yi1kaXJlY3RvcnkKLStp bmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rCi0rTUFJTlRBSU5FUkNMRUFO RklMRVMgPSBNYWtlZmlsZS5pbgotKwotK0VYVFJBX0RJU1QgPSBSRUFETUUudHh0IHNvY2kudnNw cm9wcwotKwotK1NVQkRJUlMgPSBkbGwgbGliCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv YnVpbGQvbXN2YzgwL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAv TWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvTWFrZWZpbGUu aW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvYnVpbGQvbXN2YzgwL01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTEuMDAwMDAw MDAwICswMTAwCi1AQCAtMCwwICsxLDYxNyBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5 IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAK LSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwg MjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgs IDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRoaXMgTWFrZWZp bGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMg Z2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwK LSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNl IGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ LCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBB UlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rVlBBVEggPSBAc3JjZGlyQAotK3Br Z2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1 ZGVkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2ds aWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQk e1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRB ID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3Rh bGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFM TF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNm b3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9J TlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQ T1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxl dCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGly KS9NYWtlZmlsZS5pbiBcCi0rCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGly ID0gYnVpbGQvbXN2YzgwCi0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAot K2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3Rn cmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0 aW9ucy5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5v YnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVw cyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0r CSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJ R19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9G SUxFUyA9Ci0rQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KLStTT1VSQ0VTID0KLStESVNUX1NP VVJDRVMgPQotK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNp dmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3Rh bGwtZGF0YS1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVj LXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vy c2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0 YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVj dXJzaXZlIHBkZi1yZWN1cnNpdmUgXAotKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2 ZQotK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFu LXJlY3Vyc2l2ZQlcCi0rICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVj dXJzaXZlCi0rQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1 cnNpdmU9KSBcCi0rCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3Mg VEFHUyBjdGFncyBDVEFHUyBcCi0rCWRpc3RkaXIKLStFVEFHUyA9IGV0YWdzCi0rQ1RBR1MgPSBj dGFncwotK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKLStESVNURklMRVMgPSAkKERJU1RfQ09N TU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK2FtX19yZWxh dGl2aXplID0gXAotKyAgZGlyMD1gcHdkYDsgXAotKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkv LiokJCxcMSwnOyBcCi0rICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAotKyAgc2VkX2xhc3Q9 J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKLSsgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCws JzsgXAotKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAotKyAgICBmaXJzdD1gZWNobyAi JCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAgICBpZiB0ZXN0ICIkJGZpcnN0 IiAhPSAiLiI7IHRoZW4gXAotKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsgdGhlbiBc Ci0rICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0ImAvIiQk ZGlyMiI7IFwKLSsgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1 dGxhc3QiYDsgXAotKyAgICAgIGVsc2UgXAotKyAgICAgICAgZmlyc3QyPWBlY2hvICIkJGRpcjIi IHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIg PSAiJCRmaXJzdCI7IHRoZW4gXAotKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIiIHwgc2Vk IC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgICAgICAgIGVsc2UgXAotKyAgICAgICAgICBkaXIyPSIu Li8kJGRpcjIiOyBcCi0rICAgICAgICBmaTsgXAotKyAgICAgICAgZGlyMD0iJCRkaXIwIi8iJCRm aXJzdCI7IFwKLSsgICAgICBmaTsgXAotKyAgICBmaTsgXAotKyAgICBkaXIxPWBlY2hvICIkJGRp cjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgIGRvbmU7IFwKLSsgIHJlbGRpcj0iJCRk aXIyIgotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAK LStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVU T01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9DRkxBR1MgPSBAQk9PU1Rf Q0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStC T09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NU UkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9M SUJTQAotK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKLStCT09TVF9NUElfUFlUSE9O X0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElC ID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09T VF9QWVRIT05fTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9P U1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1Rf U0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfU1lTVEVNX0xJQiA9IEBC T09TVF9TWVNURU1fTElCQAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAK LStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVX T1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklB TElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStD Q0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAK LStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFH U0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBA Q1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hY ID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAK LStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMg PSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAotK0RTWU1VVElMID0gQERTWU1VVElMQAotK0RV TVBCSU4gPSBARFVNUEJJTkAKLStFQ0hPX0MgPSBARUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05A Ci0rRUNIT19UID0gQEVDSE9fVEAKLStFR1JFUCA9IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhU QAotK0ZHUkVQID0gQEZHUkVQQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNf TElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0r SU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFM TF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExf U1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTEQgPSBATERACi0rTERG TEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0r TElCVE9PTCA9IEBMSUJUT09MQAotK0xJUE8gPSBATElQT0AKLStMTl9TID0gQExOX1NACi0rTFRM SUJPQkpTID0gQExUTElCT0JKU0AKLStNQUtFSU5GTyA9IEBNQUtFSU5GT0AKLStNS0RJUl9QID0g QE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DX0xJQiA9 IEBNWVNRTF9DX0xJQkAKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTElCUyA9 IEBNWVNRTF9MSUJTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBO TUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBA T0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdT ID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJ X0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStP VE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdF QAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFN RSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0r UEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJT04gPSBA UEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BF UkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdT ID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJ UlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JF U1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0r UlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBT RVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lf SEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FM X0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NP TU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWls ZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190 b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNf dG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3Rf Q1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBh bV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19x dW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBh bV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9h bGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29z ID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIg PSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFy b290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHln ZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2 aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAot K2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBA aG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVu ZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0r aW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9v ayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhl Y2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxz dGF0ZWRpckAKLStsdF9FQ0hPID0gQGx0X0VDSE9ACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rp cl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRp ciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1l ID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9 IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVk c3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJA Ci0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRv cF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3Jj ZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQo dG9wX3NyY2RpcikKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rRVhUUkFf RElTVCA9IFJFQURNRS50eHQgc29jaS52c3Byb3BzCi0rU1VCRElSUyA9IGRsbCBsaWIKLSthbGw6 IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAg JChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1f X2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1f X2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICAoIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwK LSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBm aTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVj aG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IGJ1aWxkL21zdmM4MC9N YWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01B S0UpIC0tZ251IGJ1aWxkL21zdmM4MC9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStN YWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3Rh dHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsg XAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkg Li9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0r CSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3Vi ZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NU QVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChh bV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200 X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaAotKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Ci0rCi0rbW9zdGx5Y2xlYW4tbGli dG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJz IF9saWJzCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkg aW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRo b3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVz IG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAo MSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZp Zy5zdGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSBy ZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3Mg dGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJT SVZFX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4 ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtd Kik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0r CWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJl Y3Vyc2l2ZS8vYDsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7 IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYg dGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkg ICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2Fs X3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGly ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZh bCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7 IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhp dCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFS R0VUUyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtF RkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwK LSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsg XAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwg bWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBs aXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNl IFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAot KwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUv L2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRh cmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4g XAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAg IGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAg fHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1y ZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgot KwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0 ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMp ICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChM SVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAot KwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGly KS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7 IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkg aW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdz OiBUQUdTCi0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAk KFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7 IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVy c2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdz LWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29w dGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQo U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8 fCBcCi0rCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIv VEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFE RVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlz dDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hv ICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNb JCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkg eyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlzaGlmdDsgXAotKwlpZiB0 ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRl c3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0ICQk IyAtZ3QgMDsgdGhlbiBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NG TEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCi0rCSAgZWxz ZSBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFH U19BUkdTKSBcCi0rCSAgICAgICQkdW5pcXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkKLStjdGFnczog Q1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChU QUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCWxpc3Q9JyQo U09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9 YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hv ICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAk KEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7 IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0 ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdT RkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1bmlxdWUK LSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwK LSsJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFH U19BUkdTKSAiJCRoZXJlIgotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBH VEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQot KwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxc XCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAn cy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkg IGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBc Ci0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQk dG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9m aWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAot KwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJ CQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVz OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0u OyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhl biBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsg XAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAg ZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9k IHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2Rpcikv JCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIg JChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAg ZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9k IHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIk KGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAi JChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRp cikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBs aXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlm IHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRp c3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3Vi ZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSck KERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3Qg IiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIy PSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJ ICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIk KHRvcF9kaXN0ZGlyKSI7IFwKLSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdf dG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0 ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKLSsJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9k aXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0 ZGlyKSI7IFwKLSsJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0 ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAotKwkJYW1fX3JlbW92 ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkJYW1fX3NraXBf bW9kZV9maXg9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwK LSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1 cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vy c2l2ZQotK2luc3RhbGxkaXJzLWFtOgotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5z dGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxs LWRhdGEtcmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5z dGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMt YW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJz aXZlCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9Q Uk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dS QU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJ ICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9F TlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoK LSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAi JChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsJ LXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJ TEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCi0rCi0rbWFpbnRhaW5l ci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBt YWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJl cXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5F UkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBj bGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29s IG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1y bSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMg ZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0r aHRtbDogaHRtbC1yZWN1cnNpdmUKLSsKLStodG1sLWFtOgotKwotK2luZm86IGluZm8tcmVjdXJz aXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6 IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwt ZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStp bnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZl Ci0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRm OiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStpbnN0YWxs LXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFs bGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJz aXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1h bSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4t cmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5 Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStw czogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtF OiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1y ZWN1cnNpdmUgXAotKwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKLSsK LSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMp IENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1n ZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwljdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFu IGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3Mg ZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxs IGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZp IGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxs LWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBp bnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCi0rCWluc3RhbGwtcHMgaW5z dGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCi0rCWluc3RhbGxjaGVjay1h bSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwlt b3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2 ZSBcCi0rCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0rCi0rIyBUZWxs IHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlh Ymxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1h eSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv YnVpbGQvdW5peC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtl ZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL3VuaXgvTWFrZWZpbGUuYW0JMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAv YnVpbGQvdW5peC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA4LjAwMDAwMDAwMCArMDIw MAotQEAgLTAsMCArMSwxMSBAQAotKyMjIGJ1aWxkL3VuaXggc3ViLWRpcmVjdG9yeQotK2luY2x1 ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxF UyA9IE1ha2VmaWxlLmluCi0rCi0rI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9 ICAuX2ZpbmQtYm9vc3QudGNsIC5fYnVpbGQtbXlzcWwudGNsIC5fYnVpbGQtcG9zdGdyZXNxbC50 Y2wgLl9leGVjdXRlLnRjbCAuX2J1aWxkLWNvcmUudGNsIC5faW5zdGFsbC50Y2wgLl9wYXJzZS1w YXJhbWV0ZXJzLnRjbAotKwotK0VYVFJBX0RJU1QgPSBidWlsZC1jb3JlLnRjbCBidWlsZC1vcmFj bGUudGNsIGJ1aWxkLnRjbCBpbnN0YWxsLnRjbCBcCi0rCXBhcnNlLXBhcmFtZXRlcnMudGNsIGZp bmQtYm9vc3QudGNsIGJ1aWxkLW15c3FsLnRjbCBcCi0rCWJ1aWxkLXBvc3RncmVzcWwudGNsIGV4 ZWN1dGUudGNsIFwKLSsJJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4w X3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1 aWxkL3VuaXgvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5pbgkyMDEwLTAxLTIz IDE0OjQ0OjUxLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw0MjAgQEAKLSsjIE1ha2VmaWxl LmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBj b25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5 OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAy MDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMu Ci0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29y IGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9u ZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0 Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRI ID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNs dWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikv QFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1f X2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAot K2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9Q Uk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxs X3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0g JChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNU QUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9V TklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWls ZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtl ZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxl LmNvbW1vbgotK3N1YmRpciA9IGJ1aWxkL3VuaXgKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGly KS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmln L2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQu bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1f X2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBF TkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxf c2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0r Q09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQotK1NPVVJD RVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNU X1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxA Ci0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0r QVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9 IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVf TElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9P U1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVB TVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJP T1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9M SUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNf TElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdF WF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJP T1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05B TFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9U SFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9 IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VS SUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStD RkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0r Q1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQ VU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZF UlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQ UEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0r Q1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJ UkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19D ID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdS RVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5F UklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0g QEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RB VEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQ VCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9T VFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpT ID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBP ID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFL RUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9 IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElS UyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJT SU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStP QkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBP UkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStP UkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVS U0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9 IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQ QUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tB R0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdF X1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NF UEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0g QFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQ T1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9 IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxf VkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNF QAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExA Ci0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlT UUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BP U1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVE QAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAot K1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fi c19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVp bGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBA YWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFj X2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdf ZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190 YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5k aXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVp bGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5k b3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBA ZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZf b2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZp ZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBl eGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlh cyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9z dF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJA Ci0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0 YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0g QGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2Fs ZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9F Q0hPQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1 ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBw cmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1l QAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2Vk X29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNk aXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRf YWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWls ZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQ UEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rTUFJTlRBSU5FUkNM RUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElC SUxJVFkgPSAgLl9maW5kLWJvb3N0LnRjbCAuX2J1aWxkLW15c3FsLnRjbCAuX2J1aWxkLXBvc3Rn cmVzcWwudGNsIC5fZXhlY3V0ZS50Y2wgLl9idWlsZC1jb3JlLnRjbCAuX2luc3RhbGwudGNsIC5f cGFyc2UtcGFyYW1ldGVycy50Y2wKLStFWFRSQV9ESVNUID0gYnVpbGQtY29yZS50Y2wgYnVpbGQt b3JhY2xlLnRjbCBidWlsZC50Y2wgaW5zdGFsbC50Y2wgXAotKwlwYXJzZS1wYXJhbWV0ZXJzLnRj bCBmaW5kLWJvb3N0LnRjbCBidWlsZC1teXNxbC50Y2wgXAotKwlidWlsZC1wb3N0Z3Jlc3FsLnRj bCBleGVjdXRlLnRjbCBcCi0rCSQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQot KwotK2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJWEVTOgotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjog ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFt X19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFt X19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJICAgICAgKCBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBc Ci0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsg Zmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwll Y2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBidWlsZC91bml4L01h a2VmaWxlJzsgXAotKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFL RSkgLS1nbnUgYnVpbGQvdW5peC9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtl ZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVz Ci0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAot KwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9j b25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAg ICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGly KS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRk aXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRV U19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9f Y29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2Rl cHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaAotKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Ci0rCi0rbW9zdGx5Y2xlYW4tbGlidG9v bDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9s aWJzCi0rdGFnczogVEFHUwotK1RBR1M6Ci0rCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6Ci0rCi0r Ci0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIp IiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVj aG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwls aXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0 OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAv fHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIp L3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkg YGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRp cikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAot Kwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8 fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAg aWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIg fCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIp LyQkZmlsZSI7IHRoZW4gXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUg ZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0r CSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIp OyB0aGVuIFwKLSsJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRk aXIiIHx8IGV4aXQgMTsgXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUg ZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0r CSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0r CSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwg Y3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGV4aXQgMTsg XAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLWFt Ci0rYWxsLWFtOiBNYWtlZmlsZQotK2luc3RhbGxkaXJzOgotK2luc3RhbGw6IGluc3RhbGwtYW0K LStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1k YXRhLWFtCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0K LSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEt YW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQotK2luc3RhbGwtc3RyaXA6Ci0r CSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQ X1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJP R1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8 fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCkn ImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsK LStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIg fHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8 fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklH X0NMRUFOX1ZQQVRIX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVj aG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlA ZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8g cmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYg JChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tYW0KLSsKLStjbGVhbi1hbTog Y2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFu OiBkaXN0Y2xlYW4tYW0KLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1h bSBkaXN0Y2xlYW4tZ2VuZXJpYwotKwotK2R2aTogZHZpLWFtCi0rCi0rZHZpLWFtOgotKwotK2h0 bWw6IGh0bWwtYW0KLSsKLStodG1sLWFtOgotKwotK2luZm86IGluZm8tYW0KLSsKLStpbmZvLWFt OgotKwotK2luc3RhbGwtZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0K LSsKLStpbnN0YWxsLWR2aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1o dG1sOiBpbnN0YWxsLWh0bWwtYW0KLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1p bmZvOiBpbnN0YWxsLWluZm8tYW0KLSsKLStpbnN0YWxsLWluZm8tYW06Ci0rCi0raW5zdGFsbC1t YW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCi0rCi0raW5zdGFsbC1wZGYtYW06 Ci0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0r aW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4t YW0KLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFt IG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1h bQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxp YnRvb2wKLSsKLStwZGY6IHBkZi1hbQotKwotK3BkZi1hbToKLSsKLStwczogcHMtYW0KLSsKLStw cy1hbToKLSsKLSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1z dHJpcAotKwotKy5QSE9OWTogYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1n ZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlz dGNsZWFuLWxpYnRvb2wgZGlzdGRpciBkdmkgXAotKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8g aW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRh LWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGluc3RhbGwt ZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZvIGlu c3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwtcGRmLWFt IGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKLSsJaW5zdGFsbGNoZWNr IGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwlt b3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdW5pbnN0YWxsIHVuaW5zdGFs bC1hbQotKwotK0BTRVRfTUFLRUAKLSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2Yg R05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lz dGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9S VDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfYm9vc3QubTQgc29jaS0z LjAuMF90cmVwMzAwL2NvbmZpZy9heF9ib29zdC5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2Nv bmZpZy9heF9ib29zdC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfYm9vc3QubTQJMjAxMC0wMS0yMyAxMzoyNzow NC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsNzU0IEBACi0rZG5sIEBzeW5vcHNpcyBBWF9C T09TVChbTUlOSU1VTS1WRVJTSU9OXSwgW0FDVElPTi1JRi1GT1VORF0sIFtBQ1RJT04tSUYtTk9U LUZPVU5EXSkKLStkbmwKLStkbmwgVGVzdCBmb3IgdGhlIEJvb3N0IEMrKyBsaWJyYXJpZXMgb2Yg YSBwYXJ0aWN1bGFyIHZlcnNpb24gKG9yIG5ld2VyKQotK2RubAotK2RubCBJZiBubyBwYXRoIHRv IHRoZSBpbnN0YWxsZWQgYm9vc3QgbGlicmFyeSBpcyBnaXZlbiB0aGUgbWFjcm8KLStkbmwgc2Vh cmNocyB1bmRlciAvdXNyLCAvdXNyL2xvY2FsLCBhbmQgL29wdCwgYW5kIGV2YWx1YXRlcyB0aGUK LStkbmwgJEJPT1NUX1JPT1QgZW52aXJvbm1lbnQgdmFyaWFibGUuCi0rZG5sCi0rZG5sIFRoaXMg bWFjcm8gY2FsbHM6Ci0rZG5sCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfQ0ZMQUdTKSAvIEFDX1NV QlNUKEJPT1NUX0xJQlMpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfRklMRVNZU1RFTV9MSUIpCi0r ZG5sICAgQUNfU1VCU1QoQk9PU1RfU1lTVEVNX0xJQikKLStkbmwgICBBQ19TVUJTVChCT09TVF9Q Uk9HUkFNX09QVElPTlNfTElCKQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX1RIUkVBRF9MSUIpCi0r ZG5sICAgQUNfU1VCU1QoQk9PU1RfSU9TVFJFQU1TX0xJQikKLStkbmwgICBBQ19TVUJTVChCT09T VF9TRVJJQUxJWkFUSU9OX0xJQikKLStkbmwgICBBQ19TVUJTVChCT09TVF9XU0VSSUFMSVpBVElP Tl9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfU0lHTkFMU19MSUIpCi0rZG5sICAgQUNfU1VC U1QoQk9PU1RfREFURV9USU1FX0xJQikKLStkbmwgICBBQ19TVUJTVChCT09TVF9SRUdFWF9MSUIp Ci0rZG5sICAgQUNfU1VCU1QoQk9PU1RfUFlUSE9OX0xJQikKLStkbmwgICBBQ19TVUJTVChCT09T VF9BU0lPX0xJQikKLStkbmwgICBBQ19TVUJTVChCT09TVF9NUElfTElCKQotK2RubCAgIEFDX1NV QlNUKEJPT1NUX01QSV9QWVRIT05fTElCKQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX1VOSVRfVEVT VF9GUkFNRVdPUktfTElCKQotK2RubAotK2RubCBBbmQgc2V0czoKLStkbmwKLStkbmwgICBIQVZF X0JPT1NUCi0rZG5sICAgSEFWRV9CT09TVF9GSUxFU1lTVEVNCi0rZG5sICAgSEFWRV9CT09TVF9T WVNURU0KLStkbmwgICBIQVZFX0JPT1NUX1BST0dSQU1fT1BUSU9OUwotK2RubCAgIEhBVkVfQk9P U1RfVEhSRUFECi0rZG5sICAgSEFWRV9CT09TVF9JT1NUUkVBTVMKLStkbmwgICBIQVZFX0JPT1NU X1NFUklBTElaQVRJT04KLStkbmwgICBIQVZFX0JPT1NUX1NJR05BTFMKLStkbmwgICBIQVZFX0JP T1NUX0RBVEVfVElNRQotK2RubCAgIEhBVkVfQk9PU1RfUkVHRVgKLStkbmwgICBIQVZFX0JPT1NU X1BZVEhPTgotK2RubCAgIEhBVkVfQk9PU1RfQVNJTwotK2RubCAgIEhBVkVfQk9PU1RfTVBJCi0r ZG5sICAgSEFWRV9CT09TVF9NUElfUFlUSE9OCi0rZG5sICAgSEFWRV9CT09TVF9VTklUX1RFU1Rf RlJBTUVXT1JLCi0rZG5sCi0rZG5sIEBjYXRlZ29yeSBJbnN0YWxsZWRQYWNrYWdlcwotK2RubCBA YXV0aG9yIFRob21hcyBQb3JzY2hiZXJnIDx0aG9tYXNAcmFuZHNwcmluZ2VyLmRlPgotK2RubCBA dmVyc2lvbiAyMDA2LTAxLTAyCi0rZG5sIEBsaWNlbnNlIEFsbFBlcm1pc3NpdmUKLSsKLStBQ19E RUZVTihbQVhfQk9PU1RdLAotK1sKLSsgICAgQUNfQVJHX1dJVEgoW2Jvb3N0XSwKLSsgICAgICAg ICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1ib29zdD1ESVJdLAotKyAgICAgICAgICAg ICAgICBbdXNlIGJvb3N0IChkZWZhdWx0IGlzIE5PKSAsIHNwZWNpZnkgdGhlIHJvb3QgZGlyZWN0 b3J5IGZvciBib29zdCBsaWJyYXJ5IChvcHRpb25hbCldKSwKLSsgICAgICAgICAgICAgICAgWwot KyAgICAgICAgICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCi0rCQkgICAg ICAgICAgICB3YW50X2Jvb3N0PSJubyIKLSsgICAgICAgICAgICAgICAgZWxpZiB0ZXN0ICIkd2l0 aHZhbCIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgICAgICAgICAgd2FudF9ib29zdD0ieWVz IgotKyAgICAgICAgICAgICAgICAgICAgYWNfYm9vc3RfcGF0aD0iIgotKyAgICAgICAgICAgICAg ICBlbHNlCi0rCQkJICAgICAgICB3YW50X2Jvb3N0PSJ5ZXMiCi0rICAgICAgICAgICAgCQlhY19i b29zdF9wYXRoPSIkd2l0aHZhbCIKLSsJCSAgICAgICAgZmkKLSsgICAgICAgICAgICAJXSwKLSsg ICAgICAgICAgICAgICAgW3dhbnRfYm9vc3Q9InllcyJdKQotKwotKyMgICAgQUNfQ0FOT05JQ0FM X0JVSUxECi0rQk9PU1RfTURXX1ZFUlNJT049IjEtMzMtMSIKLStCT09TVExJQl9NRFdfVkVSU0lP Tj0iMV8zM18xIgotK0JPT1NUX3ZlcnNpb25faGVhZGVyPSJib29zdC92ZXJzaW9uLmhwcCIKLSsK LSsJaWYgdGVzdCAieCR3YW50X2Jvb3N0IiA9ICJ4eWVzIjsgdGhlbgotKwkJYm9vc3RfbGliX3Zl cnNpb25fcmVxPWlmZWxzZShbJDFdLCAsMS4yMC4wLCQxKQotKwkJYm9vc3RfbGliX3ZlcnNpb25f cmVxX3Nob3J0ZW49YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdcKFtbMC05XV0qXC5b WzAtOV1dKlwpJ2AKLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkYm9vc3Rf bGliX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpcKSdgCi0rCQlib29zdF9saWJfdmVyc2lvbl9y ZXFfbWlub3I9YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdbWzAtOV1dKlwuXChbWzAt OV1dKlwpJ2AKLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3I9YGV4cHIgJGJvb3N0 X2xpYl92ZXJzaW9uX3JlcSA6ICdbWzAtOV1dKlwuW1swLTldXSpcLlwoW1swLTldXSpcKSdgCi0r CQlpZiB0ZXN0ICJ4JGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3IiID0gIngiIDsgdGhl bgotKwkJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3I9IjAiCi0rICAgIAlmaQotKwkJ V0FOVF9CT09TVF9WRVJTSU9OPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXFfbWFqb3IgXCog MTAwMDAwIFwrICAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEwMCBcKyAkYm9vc3Rf bGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcmAKLSsJCUFDX01TR19DSEVDS0lORyhmb3IgYm9vc3Rs aWIgPj0gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSkKLSsJCXN1Y2NlZWRlZD1ubwotKwotKwkJZG5s IGZpcnN0IHdlIGNoZWNrIHRoZSBzeXN0ZW0gbG9jYXRpb24gZm9yIGJvb3N0IGxpYnJhcmllcwot KwkJZG5sIHRoaXMgbG9jYXRpb24gaXMgY2hvc2VuIGlmIGJvb3N0IGxpYnJhcmllcyBhcmUgaW5z dGFsbGVkIAotKwkJZG5sIHdpdGggdGhlIC0tbGF5b3V0PXN5c3RlbSBvcHRpb24KLSsJCWRubCBv ciBpZiB5b3UgaW5zdGFsbCBib29zdCB3aXRoIFJQTQotKwkJaWYgdGVzdCAtZCAvbGliNjQKLSsJ CXRoZW4KLSsJCQlCT09TVF9MSUJESVJUWVBFPSJsaWI2NCIKLSsJCWVsc2UKLSsJCQlCT09TVF9M SUJESVJUWVBFPSJsaWIiCi0rCQlmaQotKwkJaWYgdGVzdCAiJGFjX2Jvb3N0X3BhdGgiICE9ICIi Ci0rCQl0aGVuCi0rCQkJaWYgdGVzdCAiJEJPT1NUX0xJQkRJUlRZUEUiID09ICJsaWI2NCIKLSsJ CQl0aGVuCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBF IiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIKLSsJCQkJdGhl bgotKwkgICAgICAgICAgICAgICAgQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC8kQk9PU1Rf TElCRElSVFlQRSIKLSsJCQkJZWxzZQotKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfTElCUz0i LUwkYWNfYm9vc3RfcGF0aC9saWIiCi0rCQkJCWZpCi0rCQkJZWxzZQotKwkJCQlCT09TVF9MSUJT PSItTCRhY19ib29zdF9wYXRoL2xpYiIKLSsJCQlmaQotKwkJCUJPT1NUX0NGTEFHUz0iLUkkYWNf Ym9vc3RfcGF0aC9pbmNsdWRlIgotKwkJCUJPT1NUX1ZFUlNJT049YGdyZXAgImRlZmluZSBCT09T VF9MSUJfVkVSU0lPTiIgJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS8ke0JPT1NUX3ZlcnNpb25faGVh ZGVyfSB8IGN1dCAtZCcgJyAtZjMgfCBjdXQgLWRcIiAtZjJgCi0rCQllbHNlCi0rCQkJZm9yIGFj X2Jvb3N0X3BhdGhfdG1wIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IC9uYXN0b29scy9ib29zdAot KwkJCWRvCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0 IiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdCIKLSsJCQkJdGhl bgotKwkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvJEJPT1NUX0xJQkRJUlRZ UEUiCi0rCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUiCi0r CQkJCQlCT09TVF9WRVJTSU9OPWBncmVwICJkZWZpbmUgQk9PU1RfTElCX1ZFUlNJT04iICRhY19i b29zdF9wYXRoX3RtcC9pbmNsdWRlLyR7Qk9PU1RfdmVyc2lvbl9oZWFkZXJ9IHwgY3V0IC1kJyAn IC1mMyB8IGN1dCAtZFwiIC1mMmAKLSsJCQkJCWJyZWFrOwotKwkJCQlmaQotKwkJCQlpZiB0ZXN0 IC1kICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJT04v Ym9vc3QiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09T VF9NRFdfVkVSU0lPTi9ib29zdCIKLSsJCQkJdGhlbgotKwkJCQkJQk9PU1RfTElCUz0iLUwkYWNf Ym9vc3RfcGF0aF90bXAvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCQlCT09TVF9DRkxBR1M9Ii1J JGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OIgotKwkJ CQkJQk9PU1RfVkVSU0lPTj1gZ3JlcCAiZGVmaW5lIEJPT1NUX0xJQl9WRVJTSU9OIiAkYWNfYm9v c3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJT04vJHtCT09TVF92ZXJz aW9uX2hlYWRlcn0gfCBjdXQgLWQnICcgLWYzIHwgY3V0IC1kXCIgLWYyYAotKwkJCQotKwkJCQkJ ZG5sIEhhY2sgZm9yIHdyb25nbHkgaW5zdGFsbGVkIEJvb3N0IGxpYnJhcmllcyAoQU1ENjQgbGli cmFyaWVzIGluc3RhbGxlZCBpbiBib29zdC9saWIgZGlyZWN0b3J5KQotKwkJCQkJaWYgdGVzdCAt ZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIgXAotKwkJCQkJJiYgdGVzdCAtciAiJGFjX2Jvb3N0 X3BhdGhfdG1wL2xpYiIgXAotKwkJCQkJJiYgdGVzdCAhIC1kICIkYWNfYm9vc3RfcGF0aF90bXAv bGliNjQiCi0rCQkJCQl0aGVuCi0rCQkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90 bXAvbGliIgotKwkJCQkJCWVjaG8gIkhhY2s6ICRCT09TVF9MSUJTIgotKwkJCQkJZmkKLSsJCQkJ CWJyZWFrOwotKwkJCQlmaQotKwkJCWRvbmUKLSsJCWZpCi0rCi0rCQlDUFBGTEFHU19TQVZFRD0i JENQUEZMQUdTIgotKwkJQ1BQRkxBR1M9IiRDUFBGTEFHUyAkQk9PU1RfQ0ZMQUdTIgotKwkJZXhw b3J0IENQUEZMQUdTCi0rCi0rCQlMREZMQUdTX1NBVkVEPSIkTERGTEFHUyIKLSsJCUxERkxBR1M9 IiRMREZMQUdTICRCT09TVF9MSUJTIgotKwkJZXhwb3J0IExERkxBR1MKLSsKLSsgICAgIAlBQ19U UllfQ09NUElMRSgKLSsgICAgICAgCVsKLStAJTpAaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+ Ci0rXSwKLSsgICAgICAgWwotKyNpZiBCT09TVF9WRVJTSU9OID49ICRXQU5UX0JPT1NUX1ZFUlNJ T04KLSsvLyBFdmVyeXRoaW5nIGlzIG9rYXkKLSsjZWxzZQotKyMgIGVycm9yIEJvb3N0IHZlcnNp b24gaXMgdG9vIG9sZAotKyNlbmRpZgotKwotKwkJXSwKLSsgICAgCVsKLSsgICAgICAgICBBQ19N U0dfUkVTVUxUKHllcykKLSsJCSBzdWNjZWVkZWQ9eWVzCi0rCQkgZm91bmRfc3lzdGVtPXllcwot KyAgICAgICAgIGlmZWxzZShbJDJdLCAsIDosIFskMl0pCi0rICAgICAgIF0sCi0rICAgICAgIFsK LSsgICAgICAgXSkKLSsKLSsJCWRubCBpZiB3ZSBmb3VuZCBubyBib29zdCB3aXRoIHN5c3RlbSBs YXlvdXQgd2Ugc2VhcmNoIGZvciBib29zdCBsaWJyYXJpZXMKLSsJCWRubCBidWlsdCBhbmQgaW5z dGFsbGVkIHdpdGhvdXQgdGhlIC0tbGF5b3V0PXN5c3RlbSBvcHRpb24gb3IgZm9yIGEgc3RhZ2Vk KG5vdCBpbnN0YWxsZWQpIHZlcnNpb24KLSsJCWlmIHRlc3QgIngkc3VjY2VlZGVkIiAhPSAieHll cyI7IHRoZW4KLSsJCQlfdmVyc2lvbj0wCi0rCQkJaWYgdGVzdCAiJGFjX2Jvb3N0X3BhdGgiICE9 ICIiOyB0aGVuCi0rICAgICAgICAgICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgv JEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoIiAmJiB0 ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7IHRoZW4KLSsJCQkJCWZvciBpIGluIGBscyAtZCAkYWNf Ym9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251bGxgOyBkbwotKwkJCQkJCV92ZXJz aW9uX3RtcD1gZWNobyAkaSB8IHNlZCAicyMkYWNfYm9vc3RfcGF0aCMjIiB8IHNlZCAncy9cL2lu Y2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAncy9fLy4vJ2AKLSsJCQkJCQlWX0NIRUNLPWBleHByICRf dmVyc2lvbl90bXAgXD4gJF92ZXJzaW9uYAotKwkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9ICIx IiA7IHRoZW4KLSsJCQkJCQkJX3ZlcnNpb249JF92ZXJzaW9uX3RtcAotKwkJCQkJCWZpCi0rCQkJ CQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBlY2hvICRfdmVyc2lvbiB8IHNlZCAncy9cLi9fLydgCi0r CQkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3QtJFZFUlNJ T05fVU5ERVJTQ09SRSIKLSsJCQkJCWRvbmUKLSsJCQkJZmkKLSsJCQllbHNlCi0rCQkJCWZvciBh Y19ib29zdF9wYXRoIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IDsgZG8KLSsJCQkJCWlmIHRlc3Qg LWQgIiRhY19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7IHRoZW4KLSsJ CQkJCQlmb3IgaSBpbiBgbHMgLWQgJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS9ib29zdC0qIDI+L2Rl di9udWxsYDsgZG8KLSsJCQkJCQkJX3ZlcnNpb25fdG1wPWBlY2hvICRpIHwgc2VkICJzIyRhY19i b29zdF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwvYm9vc3QtLy8nIHwgc2VkICdzL18vLi8n YAotKwkJCQkJCQlWX0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAgXD4gJF92ZXJzaW9uYAotKwkJ CQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCi0rCQkJCQkJCQlfdmVyc2lvbj0k X3ZlcnNpb25fdG1wCi0rCQkJCQkJCQliZXN0X3BhdGg9JGFjX2Jvb3N0X3BhdGgKLSsJCQkJCQkJ ZmkKLSsJCQkJCQlkb25lCi0rCQkJCQlmaQotKwkJCQlkb25lCi0rCi0rCQkJCVZFUlNJT05fVU5E RVJTQ09SRT1gZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3MvXC4vXy8nYAotKwkJCQlCT09TVF9DRkxB R1M9Ii1JJGJlc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSRWRVJTSU9OX1VOREVSU0NPUkUiCi0rCQkJ CUJPT1NUX0xJQlM9Ii1MJGJlc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIKLSsKLSsJICAgIAkJ aWYgdGVzdCAieCRCT09TVF9ST09UIiAhPSAieCI7IHRoZW4KLSsJCQkJCWlmIHRlc3QgLWQgIiRC T09TVF9ST09UIiAmJiB0ZXN0IC1yICIkQk9PU1RfUk9PVCI7IHRoZW4KLSsJCQkJCQl2ZXJzaW9u X2Rpcj1gZXhwciAvLyRCT09TVF9ST09UIDogJy4qL1woLipcKSdgCi0rCQkJCQkJc3RhZ2VfdmVy c2lvbj1gZWNobyAkdmVyc2lvbl9kaXIgfCBzZWQgJ3MvYm9vc3RfLy8nIHwgc2VkICdzL18vLi9n J2AKLSsJCQkJCQlzdGFnZV92ZXJzaW9uX3Nob3J0ZW49YGV4cHIgJHN0YWdlX3ZlcnNpb24gOiAn XChbWzAtOV1dKlwuW1swLTldXSpcKSdgCi0rCQkJCQkJVl9DSEVDSz1gZXhwciAkc3RhZ2VfdmVy c2lvbl9zaG9ydGVuIFw+XD0gJF92ZXJzaW9uYAotKwkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9 ICIxIiA7IHRoZW4KLSsJCQkJCQkJQUNfTVNHX05PVElDRShXZSB3aWxsIHVzZSBhIHN0YWdlZCBi b29zdCBsaWJyYXJ5IGZyb20gJEJPT1NUX1JPT1QpCi0rCQkJCQkJCUJPT1NUX0NGTEFHUz0iLUkk Qk9PU1RfUk9PVCIKLSsJCQkJCQkJQk9PU1RfTElCUz0iLUwkQk9PU1RfUk9PVC9zdGFnZS8kQk9P U1RfTElCRElSVFlQRSIKLSsJCQkJCQlmaQotKwkJCQkJZmkKLSsJICAgIAkJZmkKLSsJCQlmaQot KwotKwkJCUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFHUyIKLSsJCQlleHBvcnQgQ1BQ RkxBR1MKLSsJCQlMREZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElCUyIKLSsJCQlleHBvcnQgTERG TEFHUwotKwotKyAgICAgCQlBQ19UUllfQ09NUElMRSgKLSsgICAgICAgCQlbCi0rQCU6QGluY2x1 ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgotK10sCi0rICAgICAgIFsKLSsjaWYgQk9PU1RfVkVSU0lP TiA+PSAkV0FOVF9CT09TVF9WRVJTSU9OCi0rLy8gRXZlcnl0aGluZyBpcyBva2F5Ci0rI2Vsc2UK LSsjICBlcnJvciBCb29zdCB2ZXJzaW9uIGlzIHRvbyBvbGQKLSsjZW5kaWYKLSsKLSsJCV0sCi0r ICAgIAlbCi0rICAgICAgICAgQUNfTVNHX1JFU1VMVCh5ZXMgKCRfdmVyc2lvbikpCi0rCQkgc3Vj Y2VlZGVkPXllcwotKyAgICAgICAgIGlmZWxzZShbJDJdLCAsIDosIFskMl0pCi0rICAgICAgIF0s Ci0rICAgICAgIFsKLSsgICAgICAgICBBQ19NU0dfUkVTVUxUKG5vICgkX3ZlcnNpb24pKQotKyAg ICAgICAgIGlmZWxzZShbJDNdLCAsIDosIFskM10pCi0rICAgICAgIF0pCi0rCQlmaQotKwotKwkJ aWYgdGVzdCAiJHN1Y2NlZWRlZCIgIT0gInllcyIgOyB0aGVuCi0rCQkJaWYgdGVzdCAiJF92ZXJz aW9uIiA9ICIwIiA7IHRoZW4KLSsJCQkJQUNfTVNHX0VSUk9SKFtbV2UgY291bGQgbm90IGRldGVj dCB0aGUgYm9vc3QgbGlicmFyaWVzICh2ZXJzaW9uICRib29zdF9saWJfdmVyc2lvbl9yZXFfc2hv cnRlbiBvciBoaWdoZXIpLiBJZiB5b3UgaGF2ZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IChzdGls bCBub3QgaW5zdGFsbGVkKSBwbGVhc2Ugc3BlY2lmeSBcJEJPT1NUX1JPT1QgaW4geW91ciBlbnZp cm9ubWVudCBhbmQgZG8gbm90IGdpdmUgYSBQQVRIIHRvIC0td2l0aC1ib29zdCBvcHRpb24uICBJ ZiB5b3UgYXJlIHN1cmUgeW91IGhhdmUgYm9vc3QgaW5zdGFsbGVkLCB0aGVuIGNoZWNrIHlvdXIg dmVyc2lvbiBudW1iZXIgbG9va2luZyBpbiA8Ym9vc3QvdmVyc2lvbi5ocHA+Ll1dKQotKwkJCWVs c2UKLSsJCQkJQUNfTVNHX0VSUk9SKCdZb3VyIGJvb3N0IGxpYnJhcmllcyBzZWVtcyB0byBvbGQg KHZlcnNpb24gJF92ZXJzaW9uKS4gIFdlIG5lZWQgYXQgbGVhc3QgJGJvb3N0X2xpYl92ZXJzaW9u X3Nob3J0ZW4nKQotKwkJCWZpCi0rCQllbHNlCi0rCQkJQUNfU1VCU1QoQk9PU1RfQ0ZMQUdTKQot KwkJCUFDX1NVQlNUKEJPT1NUX0xJQlMpCi0rCQkJQUNfREVGSU5FKEhBVkVfQk9PU1QsLFtkZWZp bmUgaWYgdGhlIEJvb3N0IGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsKLSsjCi0rIyBCb29zdDo6 RmlsZXN5c3RlbQotKyMKLSsJCQlBQ19DQUNIRV9DSEVDSyhbd2hldGhlciB0aGUgQm9vc3Q6OkZp bGVzeXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFibGVdLAotKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X2Zp bGVzeXN0ZW0sCi0rCQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwot KwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9v c3QvZmlsZXN5c3RlbS9wYXRoLmhwcD5dXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFtbdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpmaWxlc3lzdGVtOwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCBteV9wYXRoKCAiZm9vL2Jhci9kYXRhLnR4dCIg KTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwO11dKSwKLSsg ICAgICAgICAgICAJCQkJICAgICAgIGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09eWVzLCBheF9jdl9i b29zdF9maWxlc3lzdGVtPW5vKQotKwkJIAkJICAgICAgICAJCQlBQ19MQU5HX1JFU1RPUkUKLSsJ CQldKQotKwkJCWlmIHRlc3QgIiRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA9ICJ5ZXMiOyB0aGVu Ci0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX0ZJTEVTWVNURU0sLFtkZWZpbmUgaWYgdGhlIEJv b3N0OjpGSUxFU1lTVEVNIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49Ym9vc3RfZmls ZXN5c3RlbQotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRD Qy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJO IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1n dy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJOLSRD Qy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRh eF9saWIsIG1haW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0JPT1NUX0ZJ TEVTWVNURU1fTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX0ZJTEVTWVNURU1fTElCKSBs aW5rX2ZpbGVzeXN0ZW09InllcyIgYnJlYWtdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFtsaW5rX2ZpbGVzeXN0ZW09Im5vIl0pCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0 ICJ4JGxpbmtfZmlsZXN5c3RlbSIgPSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShD b3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKyMK LSsjIEJvb3N0OjpTeXN0ZW0KLSsjCi0rICAgICAgICAgICAgQUNfQ0FDSEVfQ0hFQ0soW3doZXRo ZXIgdGhlIEJvb3N0OjpTeXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFibGVdLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3N5c3RlbSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICBbQUNfTEFOR19TQVZFCi0rICAgICAgICAgICAgQUNfTEFOR19DUExVU1BMVVMKLSsg ICAgICAgICAgICBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVk ZSA8Ym9vc3Qvc3lzdGVtL2Vycm9yX2NvZGUuaHBwPl1dLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgW1t1c2luZyBuYW1lc3BhY2UgYm9vc3Q6OnN5c3RlbTsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGUgbXlFcnJvckNvZGUoKTsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwO11dKSwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3N5c3RlbT15ZXMsIGF4X2N2 X2Jvb3N0X3N5c3RlbT1ubykKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB Q19MQU5HX1JFU1RPUkUKLSsgICAgICAgICAgICBdKQotKyAgICAgICAgICAgIGlmIHRlc3QgIiRh eF9jdl9ib29zdF9zeXN0ZW0iID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICAgICAgIEFDX0RF RklORShIQVZFX0JPT1NUX1NZU1RFTSwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlNZU1RFTSBsaWJy YXJ5IGlzIGF2YWlsYWJsZV0pCi0rICAgICAgICAgICAgICAgICBCTj1ib29zdF9zeXN0ZW0KLSsg ICAgICAgICAgICAgICAgIGZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4t JENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIk Qk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBsaWIkQk4tJENDLXMg XAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3cgJEJOLW1ndyAkQk4tbWd3 LW10ICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgOyBkbwotKyAgICAgICAgICAgICAgICAgICAgIEFD X0NIRUNLX0xJQigkYXhfbGliLCBtYWluLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFtCT09TVF9TWVNURU1fTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX1NZU1RFTV9M SUIpIGxpbmtfc3lzdGVtPSJ5ZXMiIGJyZWFrXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbbGlua19zeXN0ZW09Im5vIl0pCi0rICAgICAgICAgICAgICAgICBkb25lCi0rICAg ICAgICAgICAgICAgICBpZiB0ZXN0ICJ4JGxpbmtfc3lzdGVtIiA9ICJ4bm8iOyB0aGVuCi0rICAg ICAgICAgICAgICAgICAgICAgQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRh eF9saWIgISkKLSsgICAgICAgICAgICAgICAgIGZpCi0rICAgICAgICAgICAgZmkKLSsKLSsjCi0r IyBCb29zdDo6UHJvZ3JhbV9PcHRpb25zCi0rIwotKwkJCUFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVy IHRoZSBCb29zdDo6UHJvZ3JhbV9PcHRpb25zIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSwKLSsJCQkJ CQkgICBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnMsCi0rCQkJCQkJICAgW0FDX0xBTkdfU0FW RQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEFDX0xBTkdfQ1BMVVNQTFVTCi0rCQkJICAg ICAgICAgICAgICAgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1 ZGUgPGJvb3N0L3Byb2dyYW1fb3B0aW9ucy5ocHA+XV0sCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBbW2Jvb3N0Ojpwcm9ncmFtX29wdGlvbnM6Om9wdGlvbnNfZGVzY3JpcHRp b24gZ2VuZXJpYygiR2VuZXJpYyBvcHRpb25zIik7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gMDtdXSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhf Y3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zPXllcywgYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25z PW5vKQotKwkJCSAgICAgICAgICAgICAgIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYg dGVzdCAiJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPSB5ZXM7IHRoZW4KLSsJCQkJQUNf REVGSU5FKEhBVkVfQk9PU1RfUFJPR1JBTV9PUFRJT05TLCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6 UFJPR1JBTV9PUFRJT05TIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49Ym9vc3RfcHJv Z3JhbV9vcHRpb25zCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAk Qk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURX X1ZFUlNJT047IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQj0i LWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBsaW5rX3Byb2dy YW1fb3B0aW9ucz0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgW2xpbmtfcHJvZ3JhbV9vcHRpb25zPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVz dCAieCRsaW5rX3Byb2dyYW1fb3B0aW9ucz0ibm8iIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQlBQ19N U0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQotKwkJCQlmaQotKwkJ CWZpCi0rCi0rIwotKyMgQm9vc3Q6OlRocmVhZHMKLSsjCi0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hl dGhlciB0aGUgQm9vc3Q6OlRocmVhZCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBh eF9jdl9ib29zdF90aHJlYWQsCi0rCQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQ TFVTUExVUwotKwkJCSBDWFhGTEFHU19TQVZFPSRDWFhGTEFHUwotKwotKwkJCSBpZiB0ZXN0ICJ4 JGJ1aWxkX29zIiA9ICJ4c29sYXJpcyIgOyB0aGVuCi0rICAJCQkJIENYWEZMQUdTPSItcHRocmVh ZHMgJENYWEZMQUdTIgotKwkJCSBlbGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhtaW5nMzIiIDsg dGhlbgotKwkJCQkgQ1hYRkxBR1M9Ii1tdGhyZWFkcyAkQ1hYRkxBR1MiCi0rCQkJIGVsc2UKLSsJ CQkJQ1hYRkxBR1M9Ii1wdGhyZWFkICRDWFhGTEFHUyIKLSsJCQkgZmkKLSsJCQkgQUNfQ09NUElM RV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3RocmVhZC90aHJl YWQuaHBwPl1dLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1tib29zdDo6 dGhyZWFkX2dyb3VwIHRocmRzOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIDA7XV0pLAotKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF90aHJlYWQ9eWVz LCBheF9jdl9ib29zdF90aHJlYWQ9bm8pCi0rCQkJIENYWEZMQUdTPSRDWFhGTEFHU19TQVZFCi0r CQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF90 aHJlYWQiID0gInh5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgICAgaWYgdGVzdCAieCRidWlsZF9v cyIgPSAieHNvbGFyaXMiIDsgdGhlbgotKyAJCQkJICBCT09TVF9DRkxBR1M9Ii1wdGhyZWFkcyAk Qk9PU1RfQ0ZMQUdTIgotKwkJCSAgIGVsaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieG1pbmczMiIg OyB0aGVuCi0rIAkJCQkgIEJPT1NUX0NGTEFHUz0iLW10aHJlYWRzICRCT09TVF9DRkxBR1MiCi0r CQkJICAgZWxzZQotKwkJCQkgIEJPT1NUX0NGTEFHUz0iLXB0aHJlYWQgJEJPT1NUX0NGTEFHUyIK LSsJCQkgICBmaQotKwotKwkJCQlBQ19TVUJTVChCT09TVF9DRkxBR1MpCi0rCQkJCUFDX0RFRklO RShIQVZFX0JPT1NUX1RIUkVBRCwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlRIUkVBRCBsaWJyYXJ5 IGlzIGF2YWlsYWJsZV0pCi0rCQkJCUJOPWJvb3N0X3RocmVhZAotKwkJCQlmb3IgYXhfbGliIGlu ICRCTiAkQk4tbXQgJEJOLSRDQyAkQk4tJENDLW10IFwKLSsJCQkJCQkgICAJICAkQk4tJENDLW10 LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGli JEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9O IDsgZG8KLSsJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLCBbQk9PU1RfVEhSRUFE X0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9USFJFQURfTElCKSBsaW5rX3RocmVhZD0i eWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfdGhy ZWFkPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAi eG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRh eF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKyMKLSsjIEJvb3N0OjpJT1N0cmVhbXMKLSsj Ci0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6OklPU3RyZWFtcyBsaWJyYXJ5 IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF9pb3N0cmVhbXMsCi0rCQkJCQkJ W0FDX0xBTkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwotKwkJCSBBQ19DT01QSUxFX0lG RUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvaW9zdHJlYW1zL2ZpbHRl cmluZ19zdHJlYW0uaHBwPgotKwkJCQkJCQkJCQkJCSBAJTpAaW5jbHVkZSA8Ym9vc3QvcmFuZ2Uv aXRlcmF0b3JfcmFuZ2UuaHBwPgotKwkJCQkJCQkJCQkJCV1dLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgW1tzdGQ6OnN0cmluZyAgaW5wdXQgPSAiSGVsbG8gV29ybGQhIjsK LSsJCQkJCQkJCQkgbmFtZXNwYWNlIGlvID0gYm9vc3Q6Omlvc3RyZWFtczsKLSsJCQkJCQkJCQkg aW86OmZpbHRlcmluZ19pc3RyZWFtICBpbihib29zdDo6bWFrZV9pdGVyYXRvcl9yYW5nZShpbnB1 dCkpOwotKwkJCQkJCQkJCSByZXR1cm4gMDsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF1dKSwKLSsgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3RfaW9zdHJlYW1zPXll cywgYXhfY3ZfYm9vc3RfaW9zdHJlYW1zPW5vKQotKwkJCSBBQ19MQU5HX1JFU1RPUkUKLSsJCQld KQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfaW9zdHJlYW1zIiA9ICJ4eWVzIjsgdGhlbgot KwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9JT1NUUkVBTVMsLFtkZWZpbmUgaWYgdGhlIEJvb3N0 OjpJT1N0cmVhbXMgbGlicmFyeSBpcyBhdmFpbGFibGVdKQotKwkJCQlCTj1ib29zdF9pb3N0cmVh bXMKLSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQt cyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIk Qk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04g OyBkbwotKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9JT1NUUkVB TVNfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX0lPU1RSRUFNU19MSUIpIGxpbmtfdGhy ZWFkPSJ5ZXMiIGJyZWFrXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlu a190aHJlYWQ9Im5vIl0pCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFk IiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWlu c3QgJGF4X2xpYiAhKQotKwkJCQlmaQotKwkJCWZpCi0rCi0rIwotKyMgQm9vc3Q6OlNlcmlhbGl6 YXRpb24KLSsjCi0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6OlNlcmlhbGl6 YXRpb24gbGlicmFyeSBpcyBhdmFpbGFibGUsCi0rCQkJCQkJICAgYXhfY3ZfYm9vc3Rfc2VyaWFs aXphdGlvbiwKLSsJCQkJCQlbQUNfTEFOR19TQVZFCi0rCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCi0r CQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxmc3Ry ZWFtPgotKwkJCQkJCQkJCQkJCSBAJTpAaW5jbHVkZSA8Ym9vc3QvYXJjaGl2ZS90ZXh0X29hcmNo aXZlLmhwcD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQCU6QGluY2x1ZGUgPGJvb3N0L2FyY2hpdmUvdGV4dF9pYXJjaGl2ZS5ocHA+Ci0rCQkJCQkJ CQkJCQkJXV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW3N0ZDo6b2Zz dHJlYW0gb2ZzKCJmaWxlbmFtZSIpOwotKwkJCQkJCQkJCWJvb3N0OjphcmNoaXZlOjp0ZXh0X29h cmNoaXZlIG9hKG9mcyk7Ci0rCQkJCQkJCQkJIHJldHVybiAwOwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXV0pLAotKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9z ZXJpYWxpemF0aW9uPXllcywgYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbj1ubykKLSsJCQkgQUNf TEFOR19SRVNUT1JFCi0rCQkJXSkKLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3NlcmlhbGl6 YXRpb24iID0gInh5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1NFUklBTEla QVRJT04sLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpTZXJpYWxpemF0aW9uIGxpYnJhcnkgaXMgYXZh aWxhYmxlXSkKLSsJCQkJQk49Ym9vc3Rfc2VyaWFsaXphdGlvbgotKwkJCQlmb3IgYXhfbGliIGlu ICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBs aWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0k Q0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVD S19MSUIoJGF4X2xpYiwgbWFpbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfU0VSSUFM SVpBVElPTl9MSUIpIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrXSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBbbGlua190aHJlYWQ9Im5vIl0pCi0rICAJCQkJZG9uZQotKwkJCQlC Tj1ib29zdF93c2VyaWFsaXphdGlvbgotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRC Ti0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMg XAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRC Ti1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAk Qk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRC T09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwg bWFpbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQk9PU1RfV1NFUklBTEla QVRJT05fTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQikg bGlua190aHJlYWQ9InllcyIgYnJlYWtdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlu a190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxp bmsgYWdhaW5zdCAkYXhfbGliICEpCi0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6 U2lnbmFscwotKyMKLSsJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6U2lnbmFs cyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF9zaWduYWxzLAot KwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09N UElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3NpZ25hbC5o cHA+Ci0rCQkJCQkJCQkJCQkJXV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbW2Jvb3N0OjpzaWduYWw8dm9pZCAoKT4gc2lnOwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gMDsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF1dKSwKLSsgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3Rfc2lnbmFscz15ZXMsIGF4 X2N2X2Jvb3N0X3NpZ25hbHM9bm8pCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJ aWYgdGVzdCAieCRheF9jdl9ib29zdF9zaWduYWxzIiA9ICJ4eWVzIjsgdGhlbgotKwkJCQlBQ19E RUZJTkUoSEFWRV9CT09TVF9TSUdOQUxTLCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6U2lnbmFscyBs aWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rCQkJCUJOPWJvb3N0X3NpZ25hbHMKLSsJCQkJZm9yIGF4 X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0k Q0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAg QUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9TSUdOQUxTX0xJQj0iLWwkYXhfbGli IiBBQ19TVUJTVChCT09TVF9TSUdOQUxTX0xJQikgbGlua19zaWduYWxzPSJ5ZXMiIGJyZWFrXSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua19zaWduYWxzPSJubyJdKQot KyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3NpZ25hbHMiID0gInhubyI7IHRoZW4K LSsJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCi0r CQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6RGF0ZV9UaW1lCi0rIwotKwkJCUFDX0NB Q0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpEYXRlX1RpbWUgbGlicmFyeSBpcyBhdmFpbGFi bGUsCi0rCQkJCQkJICAgYXhfY3ZfYm9vc3RfZGF0ZV90aW1lLAotKwkJCQkJCVtBQ19MQU5HX1NB VkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFO R19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L2RhdGVfdGltZS9ncmVnb3JpYW4vZ3JlZ29y aWFuX3R5cGVzLmhwcD4KLSsJCQkJCQkJCQkJCQldXSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFtbdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpncmVnb3JpYW47IGRhdGUgZCgy MDAyLEphbiwxMCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy biAwOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAotKyAgICAgICAg ICAgICAgICAgICBheF9jdl9ib29zdF9kYXRlX3RpbWU9eWVzLCBheF9jdl9ib29zdF9kYXRlX3Rp bWU9bm8pCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAieCRheF9j dl9ib29zdF9kYXRlX3RpbWUiID0gInh5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShIQVZFX0JP T1NUX0RBVEVfVElNRSwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlz IGF2YWlsYWJsZV0pCi0rCQkJCUJOPWJvb3N0X2RhdGVfdGltZQotKwkJCQlmb3IgYXhfbGliIGlu ICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBs aWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0k Q0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVD S19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX0RBVEVfVElNRV9MSUI9Ii1sJGF4X2xpYiIgQUNf U1VCU1QoQk9PU1RfREFURV9USU1FX0xJQikgbGlua19kYXRlX3RpbWU9InllcyIgYnJlYWtdLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX2RhdGVfdGltZT0ibm8iXSkK LSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua19kYXRlX3RpbWUiPSJubyIgPSAieG5v IjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9s aWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKyMKLSsjIEJvb3N0OjpSZWdleAotKyMKLSsJCQlB Q19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6UmVnZXggbGlicmFyeSBpcyBhdmFpbGFi bGUsCi0rCQkJCQkJICAgYXhfY3ZfYm9vc3RfcmVnZXgsCi0rCQkJCQkJW0FDX0xBTkdfU0FWRQot KwkJCSBBQ19MQU5HX0NQTFVTUExVUwotKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BS T0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvcmVnZXguaHBwPgotKwkJCQkJCQkJCQkJCV1dLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1tib29zdDo6cmVnZXggcigpOyBy ZXR1cm4gMDtdXSksCi0rICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3JlZ2V4PXllcywg YXhfY3ZfYm9vc3RfcmVnZXg9bm8pCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJ aWYgdGVzdCAieCRheF9jdl9ib29zdF9yZWdleCIgPSAieHllcyI7IHRoZW4KLSsJCQkJQUNfREVG SU5FKEhBVkVfQk9PU1RfUkVHRVgsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5 IGlzIGF2YWlsYWJsZV0pCi0rCQkJCUJOPWJvb3N0X3JlZ2V4Ci0rCQkJCWZvciBheF9saWIgaW4g JEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxp YiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRD Qy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIEFDX0NIRUNL X0xJQigkYXhfbGliLCBtYWluLCBbQk9PU1RfUkVHRVhfTElCPSItbCRheF9saWIiIEFDX1NVQlNU KEJPT1NUX1JFR0VYX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKLSsgIAkJCQlkb25lCi0r CQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCUFDX01TR19O T1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCi0rCQkJCWZpCi0rCQkJZmkK LSsKLSsjCi0rIyBCb29zdDo6QVNJTzogaXQgbmVlZHMgQm9vc3QuU3lzdGVtLCBCb29zdC5SZWdl eCwgQm9vc3QuVGhyZWFkIGFuZCAKLSsjIEJvb3N0LkRhdGVUaW1lLCBidXQgZG9lcyBub3QgcHJv ZHVjZSBhbnkgKG90aGVyKSBsaWJyYXJ5LgotKyMKLSsJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVy IHRoZSBCb29zdDo6QXNpbyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9i b29zdF9hc2lvLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMK LSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJv b3N0L2FzaW8uaHBwPl1dLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1ti b29zdDo6YXNpbzo6aW9fc2VydmljZSBpbzsKLSsJICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYm9vc3Q6OnN5c3RlbTo6ZXJyb3JfY29kZSB0aW1lcl9yZXN1bHQ7Ci0rCSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb3N0Ojphc2lvOjpkZWFkbGluZV90aW1lciB0KGlv KTsKLSsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5jYW5jZWwoKTsKLSsJICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW8ucnVuX29uZSgpOwotKwkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF1dKSwKLSsgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3RfYXNpbz15 ZXMsIGF4X2N2X2Jvb3N0X2FzaW89bm8pCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0r CQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9hc2lvIiA9ICJ4eWVzIjsgdGhlbgotKwkJCSAgIEFD X0RFRklORShIQVZFX0JPT1NUX0FTSU8sLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpBc2lvIGxpYnJh cnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkgICBCT09TVF9BU0lPX0xJQj0iJHtCT09TVF9TWVNURU1f TElCfSAke0JPT1NUX1RIUkVBRF9MSUJ9IgotKwkJCSAgIEJPT1NUX0FTSU9fTElCPSIke0JPT1NU X0FTSU9fTElCfSAke0JPT1NUX0RBVEVfVElNRV9MSUJ9IgotKwkJCSAgIEJPT1NUX0FTSU9fTElC PSIke0JPT1NUX0FTSU9fTElCfSAke0JPT1NUX1JFR0VYX0xJQn0iCi0rCQkJICAgQk9PU1RfQVNJ T19MSUI9IiR7Qk9PU1RfQVNJT19MSUJ9ICR7Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUJ9IgotKwkJ CWZpCi0rCi0rIwotKyMgU3VwcG9ydCBmb3IgUHl0aG9uIGFuZCBNUEkgKE1QSUNIMiwgQm9vc3Q6 Ok1QSSwgQm9vc3Q6OlB5dGhvbiwgCi0rIyBCb29zdDo6U2VyaWFsaXphdGlvbiwgQm9vc3Q6Ok1Q SV9QeXRob24pCi0rIyBOb3RlOiBvbiBzb21lIGRpc3RyaWJ1dGlvbnMgKGUuZy4sIERlYmlhbiks IEJvb3N0Lk1QSSB1c2VzIE9wZW5NUEkgcmF0aGVyIAotKyMgICAgICAgdGhhbiBNUElDSDIKLSsj Ci0rCQkJQ1BQRkxBR1NfT1JJRz0iJHtDUFBGTEFHU30iCi0rCQkJQ1BQRkxBR1M9IiR7Q1BQRkxB R1N9ICR7UFlUSE9OX0NGTEFHU30gJHtNUElHRU5fQ0ZMQUdTfSIKLSsjCQkJQ1BQRkxBR1M9IiR7 Q1BQRkxBR1N9ICR7UFlUSE9OX0NGTEFHU30gJHtNUElDSDJfQ0ZMQUdTfSIKLSsjCQkJQ1BQRkxB R1M9IiR7Q1BQRkxBR1N9ICR7UFlUSE9OX0NGTEFHU30gJHtPUEVOTVBJX0NGTEFHU30iCi0rCQkJ TERGTEFHU19PUklHPSIke0xERkxBR1N9IgotKwkJCUxERkxBR1M9IiR7TERGTEFHU30gJHtQWVRI T05fTElCU30gJHtQWVRIT05fQUREX0xJQlN9ICR7TVBJR0VOX0xJQlN9IgotKyMJCQlMREZMQUdT PSIke0xERkxBR1N9ICR7UFlUSE9OX0xJQlN9ICR7UFlUSE9OX0FERF9MSUJTfSAke01QSUNIMl9M SUJTfSIKLSsjCQkJTERGTEFHUz0iJHtMREZMQUdTfSAke1BZVEhPTl9MSUJTfSAke1BZVEhPTl9B RERfTElCU30gJHtPUEVOTVBJX0xJQlN9IgotKwotKyMKLSsjIEJvb3N0OjpQeXRob24KLSsjCi0r CQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6OlB5dGhvbiBsaWJyYXJ5IGlzIGF2 YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF9weXRob24sCi0rCQkJW0FDX0xBTkdfU0FW RQotKwkJCUFDX0xBTkdfQ1BMVVNQTFVTCi0rCi0rCQkgICAgQUNfQ09NUElMRV9JRkVMU0UoQUNf TEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3B5dGhvbi5ocHA+Ci0rCQkJY2hhciBj b25zdCogZ3JlZXQoKSB7IHJldHVybiAiaGVsbG8iOyB9IAotKwkJCUJPT1NUX1BZVEhPTl9NT0RV TEUoaGVsbG9fZXh0KSB7IGJvb3N0OjpweXRob246OmRlZigiZ3JlZXQiLCBncmVldCk7fQotKwkJ CQkJCQkJCQkgICBdXSksCi0rICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3B5dGhvbj15 ZXMsIGF4X2N2X2Jvb3N0X3B5dGhvbj1ubykKLSsJCQkgQUNfTEFOR19SRVNUT1JFCi0rCQkJXSkK LSsKLSsJCQlCT09TVF9QWVRIT05fTElCPSItbGJvb3N0X3B5dGhvbiAke1BZVEhPTl9MSUJTfSAk e1BZVEhPTl9BRERfTElCU30iCi0rCQkJQUNfU1VCU1QoQk9PU1RfUFlUSE9OX0xJQikKLSsKLSsj Ci0rIyBCb29zdDo6TVBJCi0rIwotKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0 OjpNcGkgbGlicmFyeSBpcyBhdmFpbGFibGUsCi0rCQkJCQkJICAgYXhfY3ZfYm9vc3RfbXBpLAot KwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09N UElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L21waS5ocHA+ XV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbWwotKwkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF1dKSwKLSsgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3RfbXBpPXll cywgYXhfY3ZfYm9vc3RfbXBpPW5vKQotKwkJCSBBQ19MQU5HX1JFU1RPUkUKLSsJCQldKQotKwkJ CWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfbXBpIiA9ICJ4eWVzIjsgdGhlbgotKwkJCQlBQ19ERUZJ TkUoSEFWRV9CT09TVF9NUEksLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpNcGkgbGlicmFyeSBpcyBh dmFpbGFibGVdKQotKwkJCQlCTj1ib29zdF9tcGkKLSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJO LSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRD Qy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJO LW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJEJOLW1ndy1zICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsK LSsJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLCBbQk9PU1RfTVBJX0xJQj0iLWwk YXhfbGliIiBBQ19TVUJTVChCT09TVF9NUElfTElCKSBsaW5rX21waT0ieWVzIiBicmVha10sCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfbXBpPSJubyJdKQotKyAgCQkJ CWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX21waSIgPSAieG5vIjsgdGhlbgotKwkJCQkJQUNf TVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKLSsJCQkJZWxzZQot KwkJCQkJQk9PU1RfTVBJX0xJQj0iJHtCT09TVF9NUElfTElCfSAke0JPT1NUX1NFUklBTElaQVRJ T05fTElCfSAke01QSUdFTl9MSUJTfSIKLSsJCQkJZmkKLSsJCQlmaQotKwotKyMKLSsjIEJvb3N0 OjpNUElfUHl0aG9uCi0rIwotKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpN cGlfUHl0aG9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAotKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X21w aV9weXRob24sCi0rCQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwot KwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9v c3QvbXBpL3B5dGhvbi9zZXJpYWxpemUuaHBwPgotKwkJCSAJCQkJCQkJCSAgIF1dLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1sKLSsJICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIDA7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBdXSksCi0rICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X21waV9weXRob249eWVzLCBh eF9jdl9ib29zdF9tcGlfcHl0aG9uPW5vKQotKwkJCSBBQ19MQU5HX1JFU1RPUkUKLSsJCQldKQot KwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfbXBpX3B5dGhvbiIgPSAieHllcyI7IHRoZW4KLSsJ CQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfTVBJX1BZVEhPTiwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6 Ok1waV9QeXRob24gbGlicmFyeSBpcyBhdmFpbGFibGVdKQotKwkJCQlCTj1ib29zdF9tcGlfcHl0 aG9uCi0rIwkJCQlCTj1ib29zdF9tcGlfcHl0aG9uLXB5MjUKLSsJCQkJZm9yIGF4X2xpYiBpbiAk Qk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGli JEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJEND LXMgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBcCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJEJOLW1ndy1zICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsg ZG8KLSsJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLCBbQk9PU1RfTVBJX1BZVEhP Tl9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfTVBJX1BZVEhPTl9MSUIpIGxpbmtfbXBp X3B5dGhvbj0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg W2xpbmtfbXBpX3B5dGhvbj0ibm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlu a19tcGlfcHl0aG9uIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5v dCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQotKwkJCQllbHNlCi0rCQkJCQlCT09TVF9NUElfUFlU SE9OX0xJQj0iJHtCT09TVF9NUElfUFlUSE9OX0xJQn0gJHtCT09TVF9TRVJJQUxJWkFUSU9OX0xJ Qn0iCi0rCQkJCQlCT09TVF9NUElfUFlUSE9OX0xJQj0iJHtCT09TVF9NUElfUFlUSE9OX0xJQn0g JHtCT09TVF9QWVRIT05fTElCfSIKLSsJCQkJCUJPT1NUX01QSV9QWVRIT05fTElCPSIke0JPT1NU X01QSV9QWVRIT05fTElCfSAke0JPT1NUX01QSV9MSUJ9IgotKwkJCQkJQk9PU1RfTVBJX1BZVEhP Tl9MSUI9IiR7Qk9PU1RfTVBJX1BZVEhPTl9MSUJ9ICR7TVBJR0VOX0xJQlN9IgotKwkJCQlmaQot KwkJCWZpCi0rCi0rIwotKyMgRW5kIG9mIHNlY3Rpb24gb24gc3VwcG9ydCBmb3IgTVBJCi0rIwot KwkJCUNQUEZMQUdTPSIke0NQUEZMQUdTX09SSUd9IgotKwkJCUxERkxBR1M9IiR7TERGTEFHU19P UklHfSIKLSsKLSsjCi0rIyBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsKLSsjCi0rCQkJQUNfQ0FD SEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkgaXMg YXZhaWxhYmxlLAotKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmssCi0r CQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwotKwkJCSBBQ19DT01Q SUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvdGVzdC91bml0 X3Rlc3QuaHBwPl1dLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbdXNp bmcgYm9vc3Q6OnVuaXRfdGVzdDo6dGVzdF9zdWl0ZTsKLSsJCQkJCSAgICAgICAgICAgICAgICAg dGVzdF9zdWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9TVUlURSggIlVuaXQgdGVzdCBleGFtcGxlIDEi ICk7IHJldHVybiAwO11dKSwKLSsgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3RfdW5pdF90 ZXN0X2ZyYW1ld29yaz15ZXMsIGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcms9bm8pCi0r CQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF91 bml0X3Rlc3RfZnJhbWV3b3JrIiA9ICJ4eWVzIjsgdGhlbgotKyAgICAJCUFDX0RFRklORShIQVZF X0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUkssLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpVbml0X3Rl c3RfZnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQlCTj1ib29zdF91bml0X3Rl c3RfZnJhbWV3b3JrCi0rICAgIAkJc2F2ZWRfbGRmbGFncz0iJHtMREZMQUdTfSIKLSsJCQlmb3Ig YXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJEND LW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4t JENDLXMgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBcCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAkQk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBk bwotKyAgICAgICAgICAgICAgICBMREZMQUdTPSIke0xERkxBR1N9IC1sJGF4X2xpYiIKLSsgICAg CQkJQUNfQ0FDSEVfQ0hFQ0sodGhlIG5hbWUgb2YgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29y ayBsaWJyYXJ5LAotKwkgICAgICAJCQkJCSAgIGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdv cmssCi0rCQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwotKyAgICAg ICAgICAgICAgIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8 Ym9vc3QvdGVzdC91bml0X3Rlc3QuaHBwPl1dLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBbW3VzaW5nIGJvb3N0Ojp1bml0X3Rlc3Q6OnRlc3Rfc3VpdGU7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRlc3Rfc3VpdGUqIHRlc3Q9IEJPT1NUX1RFU1RfU1VJVEUoICJV bml0IHRlc3QgZXhhbXBsZSAxIiApOyByZXR1cm4gMDtdXSldLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBbbGlua190aHJlYWQ9InllcyJdLFtsaW5rX3RocmVhZD0ibm8iXSkKLSsK LSsJCQkgQUNfTEFOR19SRVNUT1JFCi0rICAgICAgICAgICAgICAgXSkKLSsgICAgICAgICAgICAg ICAgTERGTEFHUz0iJHtzYXZlZF9sZGZsYWdzfSIKLSsJCQkgICAgaWYgdGVzdCAieCRsaW5rX3Ro cmVhZCIgPSAieHllcyI7IHRoZW4KLSsgICAgICAgICAgICAgICAgICAgIEJPT1NUX1VOSVRfVEVT VF9GUkFNRVdPUktfTElCPSItbCRheF9saWIiCi0rICAgICAgICAgICAgICAgICAgICBBQ19TVUJT VChCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQikKLSsJCQkJCWJyZWFrCi0rCQkJCWZpCi0r ICAgICAgICAgICAgICBkb25lCi0rCQkJICAgIGlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhu byI7IHRoZW4KLSsJCQkJICAgQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRh eF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKwotKwkJZmkgZG5sIGVuZGlmIHRlc3QgIiRz dWNjZWVkZWQiCi0rCi0rICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTX1NBVkVEIgotKyAgICAg ICAgTERGTEFHUz0iJExERkxBR1NfU0FWRUQiCi0rCi0rCWZpIGRubCBlbmRpZiB0ZXN0ICJ4JHdh bnRfYm9vc3QiCi0rXSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfbXlz cWwubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9teXNxbC5tNAotLS0tIHNvY2ktMy4w LjBfNC1wYWNrL2NvbmZpZy9heF9teXNxbC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfbXlzcWwubTQJMjAxMC0w MS0yMyAxMzoyNzowNC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMTY0IEBACi0rZG5sIEBz eW5vcHNpcyBBWF9NWVNRTAotK2RubCAKLStkbmwgVGhpcyBtYWNybyB0cmllcyB0byBmaW5kIE15 U1FMIEMgQVBJIGhlYWRlciBhbmQgbGlicmFyeSBsb2NhdGlvbnMuCi0rZG5sCi0rZG5sIFdlIGRl ZmluZSB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyZSBzY3JpcHQgZmxhZ3M6Ci0rZG5sCi0rZG5sCQkt LXdpdGgtbXlzcWw6IEdpdmUgcHJlZml4IGZvciBib3RoIGxpYnJhcnkgYW5kIGhlYWRlcnMsIGFu ZCB0cnkKLStkbmwJCQl0byBndWVzcyBzdWJkaXJlY3RvcnkgbmFtZXMgZm9yIGVhY2guICAoZS5n LiBUYWNrIC9saWIgYW5kCi0rZG5sCQkJL2luY2x1ZGUgb250byBnaXZlbiBkaXIgbmFtZSwgYW5k IG90aGVyIGNvbW1vbiBzY2hlbWVzLikKLStkbmwJCS0td2l0aC1teXNxbC1saWI6IFNpbWlsYXIg dG8gLS13aXRoLW15c3FsLCBidXQgZm9yIGxpYnJhcnkgb25seS4KLStkbmwJCS0td2l0aC1teXNx bC1pbmNsdWRlOiBTaW1pbGFyIHRvIC0td2l0aC1teXNxbCwgYnV0IGZvciBoZWFkZXJzCi0rZG5s CQkJb25seS4KLStkbmwKLStkbmwgQHZlcnNpb24gMS4yLCAyMDA3LzAyLzIwCi0rZG5sIEBhdXRo b3IgV2FycmVuIFlvdW5nIDxteXNxbHBwQGV0ci11c2EuY29tPgotKwotK0FDX0RFRlVOKFtBWF9N WVNRTF0sCi0rWwotKwkjCi0rCSMgU2V0IHVwIGNvbmZpZ3VyZSBzY3JpcHQgbWFjcm9zCi0rCSMK LSsJQUNfQVJHX1dJVEgobXlzcWwsCi0rCQlbICAtLXdpdGgtbXlzcWw9PHBhdGg+ICAgICByb290 IGRpcmVjdG9yeSBwYXRoIG9mIE15U1FMIGluc3RhbGxhdGlvbl0sCi0rCQlbTVlTUUxfbGliX2No ZWNrPSIkd2l0aF9teXNxbC9saWI2NC9teXNxbCAkd2l0aF9teXNxbC9saWIvbXlzcWwgJHdpdGhf bXlzcWwvbGliNjQgJHdpdGhfbXlzcWwvbGliIgotKwkJTVlTUUxfaW5jX2NoZWNrPSIkd2l0aF9t eXNxbC9pbmNsdWRlICR3aXRoX215c3FsL2luY2x1ZGUvbXlzcWwiCi0rCQlNWVNRTF9iaW5fY2hl Y2s9IiR3aXRoX215c3FsL2JpbiJdLAotKwkJW01ZU1FMX2xpYl9jaGVjaz0iL3Vzci9saWI2NCAv dXNyL2xpYiAvdXNyL2xpYjY0L215c3FsIC91c3IvbGliL215c3FsIC91c3IvbG9jYWwvbGliNjQg L3Vzci9sb2NhbC9saWIgL3Vzci9sb2NhbC9saWIvbXlzcWwgL3Vzci9sb2NhbC9teXNxbC9saWIg L3Vzci9sb2NhbC9teXNxbC9saWIvbXlzcWwgL29wdC9teXNxbC9saWIgL29wdC9teXNxbC9saWIv bXlzcWwiCi0rCQlNWVNRTF9pbmNfY2hlY2s9Ii91c3IvaW5jbHVkZS9teXNxbCAvdXNyL2xvY2Fs L2luY2x1ZGUvbXlzcWwgL3Vzci9sb2NhbC9teXNxbC9pbmNsdWRlIC91c3IvbG9jYWwvbXlzcWwv aW5jbHVkZS9teXNxbCAvb3B0L215c3FsL2luY2x1ZGUvbXlzcWwiCi0rCQlNWVNRTF9iaW5fY2hl Y2s9Ii91c3IvYmluIC91c3IvbG9jYWwvYmluIC91c3IvbG9jYWwvbXlzcWwvYmluIl0pCi0rCi0r CUFDX0FSR19XSVRIKG15c3FsLWxpYiwKLSsJCVsgIC0td2l0aC1teXNxbC1saWI9PHBhdGg+IGRp cmVjdG9yeSBwYXRoIG9mIE15U1FMIGxpYnJhcnkgaW5zdGFsbGF0aW9uXSwKLSsJCVtNWVNRTF9s aWJfY2hlY2s9IiR3aXRoX215c3FsX2xpYiAkd2l0aF9teXNxbF9saWIvbGliNjQgJHdpdGhfbXlz cWxfbGliL2xpYiAkd2l0aF9teXNxbF9saWIvbGliNjQvbXlzcWwgJHdpdGhfbXlzcWxfbGliL2xp Yi9teXNxbCJdKQotKwotKwlBQ19BUkdfV0lUSChteXNxbC1pbmNsdWRlLAotKwkJWyAgLS13aXRo LW15c3FsLWluY2x1ZGU9PHBhdGg+IGRpcmVjdG9yeSBwYXRoIG9mIE15U1FMIGhlYWRlciBpbnN0 YWxsYXRpb25dLAotKwkJW01ZU1FMX2luY19jaGVjaz0iJHdpdGhfbXlzcWxfaW5jbHVkZSAkd2l0 aF9teXNxbF9pbmNsdWRlL2luY2x1ZGUgJHdpdGhfbXlzcWxfaW5jbHVkZS9pbmNsdWRlL215c3Fs Il0pCi0rCi0rCi0rICAgICMKLSsJIyBMb29rIGZvciBNeVNRTCBDb25maWd1cmF0aW9uIFNjcmlw dAotKwkjCi0rCUFDX01TR19DSEVDS0lORyhbZm9yIE15U1FMIGNvbmZpZ3VyYXRpb24gc2NyaXB0 XSkKLSsJTVlTUUxfQ09ORklHPQotKwlNWVNRTF9iaW5kaXI9Ci0rCWZvciBtIGluICRNWVNRTF9i aW5fY2hlY2sKLSsJCWRvCi0rCQkJaWYgdGVzdCAtZCAiJG0iICYmIHRlc3QgLWYgIiRtL215c3Fs X2NvbmZpZyIKLSsJCQl0aGVuCi0rCQkJCU1ZU1FMX0NPTkZJRz0kbS9teXNxbF9jb25maWcKLSsJ CQkJTVlTUUxfYmluZGlyPSRtCi0rCQkJYnJlYWsKLSsJCWZpCi0rCWRvbmUKLSsKLSsJaWYgdGVz dCAteiAiJE1ZU1FMX2JpbmRpciIKLSsJdGhlbgotKwkJQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmlu ZCAkTVlTUUxfQ09ORklHIGJpbmFyeSBpbiAnJE1ZU1FMX2Jpbl9jaGVjayddKQotKwlmaQotKwot KwljYXNlICIkTVlTUUxfYmluZGlyIiBpbgotKwkJLyogKSA7OwotKwkJKiApICBBQ19NU0dfRVJS T1IoW1RoZSBNeVNRTCBiaW5hcnkgZGlyZWN0b3J5ICgkTVlTUUxfYmluZGlyKSBtdXN0IGJlIGFu IGFic29sdXRlIHBhdGguXSkgOzsKLSsJZXNhYwotKwotKwlBQ19NU0dfUkVTVUxUKFskTVlTUUxf Q09ORklHXSkKLSsKLSsjCUFDX1BBVEhfUFJPRyhNWVNRTF9DT05GSUcsIG15c3FsX2NvbmZpZywg JE1ZU1FMX2JpbmRpcikKLSsKLSsJIwotKwkjIERlY2lkZSB3aGljaCBDIEFQSSBsaWJyYXJ5IHRv IHVzZSwgYmFzZWQgb24gdGhyZWFkIHN1cHBvcnQKLSsJIwotKwlpZiB0ZXN0ICJ4JGFjeF9wdGhy ZWFkX29rIiA9IHh5ZXMKLSsJdGhlbgotKwkJTVlTUUxfQ19MSUI9bXlzcWxjbGllbnRfcgotKwkJ TVlTUUxfTElCX09QVElPTj1saWJzX3IKLSsJZWxzZQotKwkJTVlTUUxfQ19MSUI9bXlzcWxjbGll bnQKLSsJCU1ZU1FMX0xJQl9PUFRJT049bGlicwotKwlmaQotKwotKwlpZiB0ZXN0ICJ4JHtNWVNR TF9DT05GSUd9MSIgPSAieDEiCi0rCXRoZW4KLSsJCU1ZU1FMX1ZFUlNJT049YCR7TVlTUUxfQ09O RklHfSAtLXZlcnNpb25gCi0rCQlNWVNRTF9DRkxBR1M9YCR7TVlTUUxfQ09ORklHfSAtLWNmbGFn c2AKLSsJCU1ZU1FMX0xJQlM9YCR7TVlTUUxfQ09ORklHfSAtLSR7TVlTUUxfTElCX09QVElPTn1g Ci0rCWVsc2UKLSsJCSMKLSsJCSMgTG9vayBmb3IgTXlTUUwgQyBBUEkgbGlicmFyeQotKwkJIwot KwkJQUNfTVNHX0NIRUNLSU5HKFtmb3IgTXlTUUwgbGlicmFyeSBkaXJlY3RvcnldKQotKwkJTVlT UUxfbGliZGlyPQotKwkJZm9yIG0gaW4gJE1ZU1FMX2xpYl9jaGVjawotKwkJZG8KLSsJCQlpZiB0 ZXN0IC1kICIkbSIgJiYgXAotKwkJCQkodGVzdCAtZiAiJG0vbGliJE1ZU1FMX0NfTElCLnNvIiBc Ci0rCQkJCXx8IHRlc3QgLWYgIiRtL2xpYiRNWVNRTF9DX0xJQi5hIikKLSsJCQl0aGVuCi0rCQkJ CU1ZU1FMX2xpYmRpcj0kbQotKwkJCQlicmVhawotKwkJCWZpCi0rCQlkb25lCi0rCi0rCQlpZiB0 ZXN0IC16ICIkTVlTUUxfbGliZGlyIgotKwkJdGhlbgotKwkJCUFDX01TR19FUlJPUihbRGlkbid0 IGZpbmQgJE1ZU1FMX0NfTElCIGxpYnJhcnkgaW4gJyRNWVNRTF9saWJfY2hlY2snXSkKLSsJCWZp Ci0rCi0rCQljYXNlICIkTVlTUUxfbGliZGlyIiBpbgotKwkJCS8qICkgOzsKLSsJCQkqICkgIEFD X01TR19FUlJPUihbVGhlIE15U1FMIGxpYnJhcnkgZGlyZWN0b3J5ICgkTVlTUUxfbGliZGlyKSBt dXN0IGJlIGFuIGFic29sdXRlIHBhdGguXSkgOzsKLSsJCWVzYWMKLSsKLSsJCUFDX01TR19SRVNV TFQoWyRNWVNRTF9saWJkaXJdKQotKwotKyMJCWNhc2UgIiRNWVNRTF9saWJkaXIiIGluCi0rIwkJ ICAvdXNyL2xpYikgOzsKLSsjCQkgICopIExERkxBR1M9IiRMREZMQUdTIC1MJHtNWVNRTF9saWJk aXJ9IiA7OwotKyMJCWVzYWMKLSsKLSsJCSMKLSsJCSMgTG9vayBmb3IgTXlTUUwgQyBBUEkgaGVh ZGVycwotKwkJIwotKwkJQUNfTVNHX0NIRUNLSU5HKFtmb3IgTXlTUUwgaW5jbHVkZSBkaXJlY3Rv cnldKQotKwkJTVlTUUxfaW5jZGlyPQotKwkJZm9yIG0gaW4gJE1ZU1FMX2luY19jaGVjawotKwkJ ZG8KLSsJCQlpZiB0ZXN0IC1kICIkbSIgJiYgdGVzdCAtZiAiJG0vbXlzcWwuaCIKLSsJCQl0aGVu Ci0rCQkJCU1ZU1FMX2luY2Rpcj0kbQotKwkJCQlicmVhawotKwkJCWZpCi0rCQlkb25lCi0rCi0r CQlpZiB0ZXN0IC16ICIkTVlTUUxfaW5jZGlyIgotKwkJdGhlbgotKwkJCUFDX01TR19FUlJPUihb RGlkbid0IGZpbmQgdGhlIE15U1FMIGluY2x1ZGUgZGlyIGluICckTVlTUUxfaW5jX2NoZWNrJ10p Ci0rCQlmaQotKwotKwkJY2FzZSAiJE1ZU1FMX2luY2RpciIgaW4KLSsJCQkgLyogKSA7OwotKwkJ CSAqICkgIEFDX01TR19FUlJPUihbVGhlIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5ICgkTVlTUUxf aW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguXSkgOzsKLSsJCWVzYWMKLSsKLSsJCUFD X01TR19SRVNVTFQoWyRNWVNRTF9pbmNkaXJdKQotKwotKwkJTVlTUUxfVkVSU0lPTj1gZ3JlcCAi ZGVmaW5lIE1ZU1FMX1NFUlZFUl9WRVJTSU9OIiAkTVlTUUxfaW5jZGlyL215c3FsX3ZlcnNpb24u aCB8IGN1dCAtZFwiIC1mMmAKLSsJCU1ZU1FMX0NGTEFHUz0iLUkke01ZU1FMX2luY2Rpcn0iCi0r CQlNWVNRTF9MSUJTPSItTCR7TVlTUUxfbGliZGlyfSAtbCR7TVlTUUxfQ19MSUJ9IgotKwlmaQot KwotKwlBQ19TVUJTVChNWVNRTF9WRVJTSU9OKQotKwlBQ19TVUJTVChNWVNRTF9DRkxBR1MpCi0r CUFDX1NVQlNUKE1ZU1FMX0xJQlMpCi0rCi0rCXNhdmVfTElCUz0iJExJQlMiCi0rCUxJQlM9IiRM SUJTICRNWVNRTF9MSUJTIgotKwlBQ19DSEVDS19MSUIoJE1ZU1FMX0NfTElCLCBteXNxbF9zdG9y ZV9yZXN1bHQsCi0rICAgICAgIAkJCVtdLCAKLSsgICAgICAgICAgICAgICAJW0FDX01TR19FUlJP UihbQ291bGQgbm90IGZpbmQgd29ya2luZyBNeVNRTCBjbGllbnQgbGlicmFyeSFdKV0KLSsgICAg ICAgICAgICAgICAJKQotKwlBQ19TVUJTVChNWVNRTF9DX0xJQikKLSsJTElCUz0iJHNhdmVfTElC UyIKLStdKSBkbmwgQVhfTVlTUUwKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcv YXhfb3JhY2xlX29jaS5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X29yYWNsZV9vY2ku bTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfb3JhY2xlX29jaS5tNAkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25m aWcvYXhfb3JhY2xlX29jaS5tNAkyMDEwLTAxLTIzIDEzOjI3OjA0LjAwMDAwMDAwMCArMDEwMAot QEAgLTAsMCArMSwyODYgQEAKLStkbmwgJElkOiBzb2NpLTMuMC4wLTE2LWZpeC1nbnUtYXV0b3Rv b2xzLWNvbXBhdGliaWxpdHkucGF0Y2gsdiAxLjEgMjAxMC8wMS8yMyAxNToxNjo0OSBkZW5pc2Fy bmF1ZCBFeHAgJAotK2RubAotK2RubCBAc3lub3BzaXMgQVhfTElCX09SQUNMRV9PQ0koW01JTklN VU0tVkVSU0lPTl0pCi0rZG5sCi0rZG5sIFRoaXMgbWFjcm8gcHJvdmlkZXMgdGVzdHMgb2YgYXZh aWxhYmlsaXR5IG9mIE9yYWNsZSBPQ0kgQVBJCi0rZG5sIG9mIHBhcnRpY3VsYXIgdmVyc2lvbiBv ciBuZXdlci4KLStkbmwgVGhpcyBtYWNyb3MgY2hlY2tzIGZvciBPcmFjbGUgT0NJIGhlYWRlcnMg YW5kIGxpYnJhcmllcyAKLStkbmwgYW5kIGRlZmluZXMgY29tcGlsYXRpb24gZmxhZ3MKLStkbmwg Ci0rZG5sIE1hY3JvIHN1cHBvcnRzIGZvbGxvd2luZyBvcHRpb25zIGFuZCB0aGVpciB2YWx1ZXM6 Ci0rZG5sIDEpIFNpbmdsZS1vcHRpb24gdXNhZ2U6Ci0rZG5sIC0td2l0aC1vcmFjbGUgLSBwYXRo IHRvIE9SQUNMRV9IT01FIGRpcmVjdG9yeQotK2RubCAyKSBUd28tb3B0aW9ucyB1c2FnZSAoYm90 aCBvcHRpb25zIGFyZSByZXF1aXJlZCk6Ci0rZG5sIC0td2l0aC1vcmFjbGUtaW5jbHVkZSAtIHBh dGggdG8gZGlyZWN0b3J5IHdpdGggT0NJIGhlYWRlcnMKLStkbmwgLS13aXRoLW9yYWNsZS1saWIg LSBwYXRoIHRvIGRpcmVjdG9yeSB3aXRoIE9DSSBsaWJyYXJpZXMgCi0rZG5sCi0rZG5sIE5PVEU6 IFRoZXNlIG9wdGlvbnMgZGVzY3JpYmVkIGFib3ZlIGRvZXMgbm90IHRha2UgeWVzfG5vIHZhbHVl cy4KLStkbmwgSWYgJ3llcycgdmFsdWUgaXMgcGFzc2VkLCB0aGVuIFdBUk5JTkcgbWVzc2FnZSB3 aWxsIGJlIGRpc3BsYXllZCwKLStkbmwgJ25vJyB2YWx1ZSwgYXMgd2VsbCBhcyB0aGUgLS13aXRo b3V0LW9yYWNsZSogdmFyaWF0aW9ucyB3aWxsIGNhdXNlCi0rZG5sIHRoZSBtYWNybyB3b24ndCBj aGVjayBlbnl0aGluZy4KLStkbmwKLStkbmwgVGhpcyBtYWNybyBjYWxsczoKLStkbmwKLStkbmwg ICBBQ19TVUJTVChPUkFDTEVfT0NJX0NGTEFHUykKLStkbmwgICBBQ19TVUJTVChPUkFDTEVfT0NJ X0xERkxBR1MpCi0rZG5sICAgQUNfU1VCU1QoT1JBQ0xFX09DSV9WRVJTSU9OKQotK2RubAotK2Ru bCBBbmQgc2V0czoKLStkbmwKLStkbmwgICBIQVZFX09SQUNMRQotK2RubAotK2RubCBAY2F0ZWdv cnkgSW5zdGFsbGVkUGFja2FnZXMKLStkbmwgQGNhdGVnb3J5IEN4eAotK2RubCBAYXV0aG9yIE1h dGV1c3ogTG9za290IDxtYXRldXN6QGxvc2tvdC5uZXQ+Ci0rZG5sIEB2ZXJzaW9uICREYXRlOiAy MDEwLzAxLzIzIDE1OjE2OjQ5ICQKLStkbmwgQGxpY2Vuc2UgQWxsUGVybWlzc2l2ZQotK2RubAot K2RubCAkSWQ6IHNvY2ktMy4wLjAtMTYtZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5w YXRjaCx2IDEuMSAyMDEwLzAxLzIzIDE1OjE2OjQ5IGRlbmlzYXJuYXVkIEV4cCAkCi0rZG5sCi0r QUNfREVGVU4oW0FYX0xJQl9PUkFDTEVfT0NJXSwKLStbCi0rICAgIEFDX1JFUVVJUkUoW0FDX0NB Tk9OSUNBTF9IT1NUXSkKLSsgICAgQUNfQVJHX1dJVEgoW29yYWNsZV0sCi0rICAgICAgICBBQ19I RUxQX1NUUklORyhbLS13aXRoLW9yYWNsZT1APDpARElSQDo+QF0sCi0rICAgICAgICAgICAgW3Vz ZSBPcmFjbGUgT0NJIEFQSSBmcm9tIGdpdmVuIHBhdGggdG8gT3JhY2xlIGhvbWUgZGlyZWN0b3J5 XQotKyAgICAgICAgKSwKLSsgICAgICAgIFsKLSsgICAgICAgIGlmIHRlc3QgIiR3aXRodmFsIiA9 ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgaWYgdGVzdCAtbiAiJE9SQUNMRV9IT01FIjsgdGhl bgotKyAgICAgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiRPUkFDTEVfSE9NRSIKLSsgICAg ICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iIgotKyAgICAg ICAgICAgIGZpIAotKyAgICAgICAgZmkKLSsgICAgICAgIF0sCi0rICAgICAgICBbCi0rICAgICAg ICBpZiB0ZXN0IC1uICIkT1JBQ0xFX0hPTUUiOyB0aGVuCi0rICAgICAgICAgICAgb3JhY2xlX2hv bWVfZGlyPSIkT1JBQ0xFX0hPTUUiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgb3JhY2xl X2hvbWVfZGlyPSIiCi0rICAgICAgICBmaSAKLSsgICAgICAgIF0KLSsgICAgKQotKwotKyAgICBB Q19BUkdfV0lUSChbb3JhY2xlLWluY2x1ZGVdLAotKyAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0t d2l0aC1vcmFjbGUtaW5jbHVkZT1APDpARElSQDo+QF0sCi0rICAgICAgICAgICAgW3VzZSBPcmFj bGUgT0NJIEFQSSBoZWFkZXJzIGZyb20gZ2l2ZW4gcGF0aF0KLSsgICAgICAgICksCi0rICAgICAg ICBbb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXI9IiR3aXRodmFsIl0sCi0rICAgICAgICBbb3JhY2xl X2hvbWVfaW5jbHVkZV9kaXI9IiJdCi0rICAgICkKLSsgICAgQUNfQVJHX1dJVEgoW29yYWNsZS1s aWJdLAotKyAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1vcmFjbGUtbGliPUA8OkBESVJA Oj5AXSwKLSsgICAgICAgICAgICBbdXNlIE9yYWNsZSBPQ0kgQVBJIGxpYnJhcmllcyBmcm9tIGdp dmVuIHBhdGhdCi0rICAgICAgICApLAotKyAgICAgICAgW29yYWNsZV9ob21lX2xpYl9kaXI9IiR3 aXRodmFsIl0sCi0rICAgICAgICBbb3JhY2xlX2hvbWVfbGliX2Rpcj0iIl0KLSsgICAgKQotKwot KyAgICBPUkFDTEVfT0NJX0NGTEFHUz0iIgotKyAgICBPUkFDTEVfT0NJX0xERkxBR1M9IiIKLSsg ICAgT1JBQ0xFX09DSV9WRVJTSU9OPSIiCi0rCi0rICAgIGRubAotKyAgICBkbmwgQ29sbGVjdCBp bmNsdWRlL2xpYiBwYXRocwotKyAgICBkbmwgCi0rICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRo PSJubyIKLSsKLSsgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9ob21lX2RpciI7IHRoZW4KLSsKLSsg ICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9kaXIiICE9ICJubyIgLWEgIiRvcmFjbGVfaG9t ZV9kaXIiICE9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgZG5sIE9SQUNMRV9IT01FIHBhdGgg cHJvdmlkZWQKLSsgICAgICAgICAgICAKLSsgICAgICAgICAgICBkbmwgUHJpbWFyeSBwYXRoIHRv IE9DSSBoZWFkZXJzLCBhdmFpbGFibGUgaW4gT3JhY2xlPj0xMAotKyAgICAgICAgICAgIG9yYWNs ZV9pbmNsdWRlX2Rpcj0iJG9yYWNsZV9ob21lX2Rpci9yZGJtcy9wdWJsaWMiCi0rICAgICAgICAg ICAgCi0rICAgICAgICAgICAgZG5sIFNlY29uZGFyeSBwYXRoIHRvIE9DSSBoZWFkZXJzIHVzZWQg Ynkgb2xkZXIgdmVyc2lvbnMKLSsgICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXIyPSIkb3Jh Y2xlX2hvbWVfZGlyL3JkYm1zL2RlbW8iCi0rCi0rICAgICAgICAgICAgZG5sIExpYnJhcnkgcGF0 aAotKyAgICAgICAgICAgIG9yYWNsZV9saWJfZGlyPSIkb3JhY2xlX2hvbWVfZGlyL2xpYiIKLSsg ICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2RpciIgPSAieWVzIjsgdGhlbgotKyAgICAg ICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJ5ZXMiCi0rICAgICAgICBmaQotKwotKyAg ICBlbGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgLW8gLW4gIiRvcmFjbGVf aG9tZV9saWJfZGlyIjsgdGhlbgotKwotKyAgICAgICAgaWYgdGVzdCAiJG9yYWNsZV9ob21lX2lu Y2x1ZGVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiICE9ICJ5ZXMi OyB0aGVuCi0rICAgICAgICAgICAgb3JhY2xlX2luY2x1ZGVfZGlyPSIkb3JhY2xlX2hvbWVfaW5j bHVkZV9kaXIiCi0rICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIg PSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJ5ZXMi Ci0rICAgICAgICBmaQotKwotKyAgICAgICAgaWYgdGVzdCAiJG9yYWNsZV9ob21lX2xpYl9kaXIi ICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiAhPSAieWVzIjsgdGhlbgotKyAgICAg ICAgICAgIG9yYWNsZV9saWJfZGlyPSIkb3JhY2xlX2hvbWVfbGliX2RpciIKLSsgICAgICAgIGVs aWYgdGVzdCAiJG9yYWNsZV9ob21lX2xpYl9kaXIiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAg ICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgotKyAgICAgICAgZmkKLSsgICAgZmkKLSsK LSsgICAgaWYgdGVzdCAiJHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoIiA9ICJ5ZXMiOyB0aGVuCi0r ICAgICAgICBBQ19NU0dfV0FSTihbT3JhY2xlIHN1cHBvcnQgaXMgcmVxdWVzdGVkIGJ1dCBubyBP cmFjbGUgcGF0aHMgaGF2ZSBiZWVuIHByb3ZpZGVkLiBcCi0rUGxlYXNlLCBsb2NhdGUgT3JhY2xl IGRpcmVjdG9yaWVzIHVzaW5nIC0td2l0aC1vcmFjbGUgb3IgXAotKy0td2l0aC1vcmFjbGUtaW5j bHVkZSBhbmQgLS13aXRoLW9yYWNsZS1saWIgb3B0aW9ucy5dKQotKyAgICBmaQotKwotKyAgICBk bmwKLSsgICAgZG5sIENoZWNrIE9DSSBmaWxlcwotKyAgICBkbmwKLSsgICAgaWYgdGVzdCAtbiAi JG9yYWNsZV9pbmNsdWRlX2RpciIgLWEgLW4gIiRvcmFjbGVfbGliX2RpciI7IHRoZW4KLSsKLSsg ICAgICAgIHNhdmVkX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0rICAgICAgICBDUFBGTEFHUz0iJENQ UEZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpciIKLSsKLSsgICAgICAgIGRubCBBZGRpdGlvbmFs IHBhdGggZm9yIG9sZGVyIE9yYWNsZSBpbnN0YWxsYXRpb25zIAotKyAgICAgICAgaWYgdGVzdCAt biAiJG9yYWNsZV9pbmNsdWRlX2RpcjIiOyB0aGVuCi0rICAgICAgICAgICAgQ1BQRkxBR1M9IiRD UFBGTEFHUyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIyIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAg ICMgRmlndXJlIG91dCBpZiB3ZSBhcmUgYnVpbGRpbmcgb24gd2luMzIuCi0rICAgICAgICBjYXNl ICRob3N0X29zIGluCi0rICAgICAgICAgICAgKm1pbmd3MzIqICkgV0lOMzI9eWVzIDs7Ci0rICAg ICAgICAgICAgKmN5Z3dpbiogKSAgV0lOMzI9eWVzIDs7Ci0rICAgICAgICAgICAgKikgV0lOMzI9 bm8gOzsKLSsgICAgICAgIGVzYWMKLSsKLSsgICAgICAgIGlmIHRlc3QgIiRXSU4zMiIgPSAibm8i Ci0rICAgICAgICB0aGVuCi0rICAgICAgICAgICAgb2NpX2xpYnM9Ii1sY2xudHNoIC1sbm56MTEi Ci0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgb2NpX2xpYnM9Ii1sb2NpIgotKyAgICAgICAg ZmkKLSsKLSsgICAgICAgIHNhdmVkX0xERkxBR1M9IiRMREZMQUdTIgotKyAgICAgICAgc2F2ZWRf TElCUz0iJExJQlMiCi0rICAgICAgICBvY2lfbGRmbGFncz0iLUwkb3JhY2xlX2xpYl9kaXIiCi0r ICAgICAgICBMREZMQUdTPSIkTERGTEFHUyAkb2NpX2xkZmxhZ3MiCi0rICAgICAgICBMSUJTPSIk TElCUyAkb2NpX2xpYnMiCi0rCi0rICAgICAgICBkbmwKLSsgICAgICAgIGRubCBDaGVjayBPQ0kg aGVhZGVycwotKyAgICAgICAgZG5sCi0rICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBPcmFj bGUgT0NJIGhlYWRlcnMgaW4gJG9yYWNsZV9pbmNsdWRlX2Rpcl0pCi0rCi0rICAgICAgICBBQ19M QU5HX1BVU0goQysrKQotKyAgICAgICAgQUNfQ09NUElMRV9JRkVMU0UoWwotKyAgICAgICAgICAg IEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxvY2kuaD5dXSwKLSsgICAgICAgICAgICAg ICAgW1sKLSsjaWYgZGVmaW5lZChPQ0lfTUFKT1JfVkVSU0lPTikKLSsjaWYgT0NJX01BSk9SX1ZF UlNJT04gPT0gMTAgJiYgT0NJX01JTk9SX1ZFUlNJT04gPT0gMgotKy8vIE9yYWNsZSAxMC4yIGRl dGVjdGVkCi0rI2VuZGlmCi0rI2VsaWYgZGVmaW5lZChPQ0lfVjdfU1lOVEFYKQotKy8vIE9LLCBv bGRlciBPcmFjbGUgZGV0ZWN0ZWQKLSsvLyBUT0RPIC0gbWxvc2tvdDogZmluZCBiZXR0ZXIgbWFj cm8gdG8gY2hlY2sgZm9yIG9sZGVyIHZlcnNpb25zOyAKLSsjZWxzZQotKyMgIGVycm9yIE9yYWNs ZSBvY2kuaCBoZWFkZXIgbm90IGZvdW5kCi0rI2VuZGlmCi0rICAgICAgICAgICAgICAgIF1dCi0r ICAgICAgICAgICAgKV0sCi0rICAgICAgICAgICAgWwotKyAgICAgICAgICAgIE9SQUNMRV9PQ0lf Q0ZMQUdTPSItSSRvcmFjbGVfaW5jbHVkZV9kaXIiCi0rCi0rICAgICAgICAgICAgaWYgdGVzdCAt biAiJG9yYWNsZV9pbmNsdWRlX2RpcjIiOyB0aGVuCi0rICAgICAgICAgICAgICAgIE9SQUNMRV9P Q0lfQ0ZMQUdTPSIkT1JBQ0xFX09DSV9DRkxBR1MgLUkkb3JhY2xlX2luY2x1ZGVfZGlyMiIKLSsg ICAgICAgICAgICBmaQotKwotKyAgICAgICAgICAgIG9jaV9oZWFkZXJfZm91bmQ9InllcyIKLSsg ICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotKyAgICAgICAgICAgIF0sCi0rICAgICAg ICAgICAgWwotKyAgICAgICAgICAgIG9jaV9oZWFkZXJfZm91bmQ9Im5vIgotKyAgICAgICAgICAg IEFDX01TR19SRVNVTFQoW25vdCBmb3VuZF0pCi0rICAgICAgICAgICAgXQotKyAgICAgICAgKQot KyAgICAgICAgQUNfTEFOR19QT1AoW0MrK10pCi0rICAgICAgICAKLSsgICAgICAgIGRubAotKyAg ICAgICAgZG5sIENoZWNrIE9DSSBsaWJyYXJpZXMKLSsgICAgICAgIGRubAotKyAgICAgICAgaWYg dGVzdCAiJG9jaV9oZWFkZXJfZm91bmQiID0gInllcyI7IHRoZW4KLSsKLSsgICAgICAgICAgICBB Q19NU0dfQ0hFQ0tJTkcoW2ZvciBPcmFjbGUgT0NJIGxpYnJhcmllcyBpbiAkb3JhY2xlX2xpYl9k aXJdKQotKwotKyAgICAgICAgICAgIEFDX0xBTkdfUFVTSChDKyspCi0rICAgICAgICAgICAgQUNf TElOS19JRkVMU0UoWwotKyAgICAgICAgICAgICAgICBBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5j bHVkZSA8b2NpLmg+XV0sCi0rICAgICAgICAgICAgICAgICAgICBbWwotK09DSUVudiogZW52aCA9 IDA7Ci0rT0NJRW52Q3JlYXRlKCZlbnZoLCBPQ0lfREVGQVVMVCwgMCwgMCwgMCwgMCwgMCwgMCk7 Ci0raWYgKGVudmgpIE9DSUhhbmRsZUZyZWUoZW52aCwgT0NJX0hUWVBFX0VOVik7Ci0rICAgICAg ICAgICAgICAgICAgICBdXQotKyAgICAgICAgICAgICAgICApXSwKLSsgICAgICAgICAgICAgICAg WwotKyAgICAgICAgICAgICAgICBPUkFDTEVfT0NJX0xERkxBR1M9IiRvY2lfbGRmbGFncyAkb2Np X2xpYnMiCi0rICAgICAgICAgICAgICAgIG9jaV9saWJfZm91bmQ9InllcyIKLSsgICAgICAgICAg ICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLSsgICAgICAgICAgICAgICAgXSwKLSsgICAgICAg ICAgICAgICAgWwotKyAgICAgICAgICAgICAgICBvY2lfbGliX2ZvdW5kPSJubyIKLSsgICAgICAg ICAgICAgICAgQUNfTVNHX1JFU1VMVChbbm90IGZvdW5kXSkKLSsgICAgICAgICAgICAgICAgXQot KyAgICAgICAgICAgICkKLSsgICAgICAgICAgICBBQ19MQU5HX1BPUChbQysrXSkKLSsgICAgICAg IGZpCi0rCi0rICAgICAgICBDUFBGTEFHUz0iJHNhdmVkX0NQUEZMQUdTIgotKyAgICAgICAgTERG TEFHUz0iJHNhdmVkX0xERkxBR1MiCi0rICAgICAgICBMSUJTPSIkc2F2ZWRfTElCUyIKLSsgICAg ZmkKLSsKLSsgICAgZG5sCi0rICAgIGRubCBDaGVjayByZXF1aXJlZCB2ZXJzaW9uIG9mIE9yYWNs ZSBpcyBhdmFpbGFibGUKLSsgICAgZG5sCi0rICAgIG9yYWNsZV92ZXJzaW9uX3JlcT1pZmVsc2Uo WyQxXSwgW10sIFtdLCBbJDFdKQotKwotKyAgICBpZiB0ZXN0ICIkb2NpX2hlYWRlcl9mb3VuZCIg PSAieWVzIiAtYSAiJG9jaV9saWJfZm91bmQiID0gInllcyIgLWEgXAotKyAgICAgICAgLW4gIiRv cmFjbGVfdmVyc2lvbl9yZXEiOyB0aGVuCi0rCi0rICAgICAgICBvcmFjbGVfdmVyc2lvbl9tYWpv cj1gY2F0ICRvcmFjbGVfaW5jbHVkZV9kaXIvb2NpLmggXAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBncmVwICcjZGVmaW5lLipPQ0lfTUFKT1JfVkVSU0lPTi4qJyBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8jZGVmaW5lIE9DSV9NQUpPUl9WRVJT SU9OICAqLy8nIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1lICdzLyAg KlwvXCouKlwqXC8vLydgCi0rCi0rICAgICAgICBvcmFjbGVfdmVyc2lvbl9taW5vcj1gY2F0ICRv cmFjbGVfaW5jbHVkZV9kaXIvb2NpLmggXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCBncmVwICcjZGVmaW5lLipPQ0lfTUlOT1JfVkVSU0lPTi4qJyBcCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHNlZCAtZSAncy8jZGVmaW5lIE9DSV9NSU5PUl9WRVJTSU9OICAqLy8n IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1lICdzLyAgKlwvXCouKlwq XC8vLydgCi0rCi0rICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIE9yYWNsZSBPQ0kgdmVyc2lv biBpcyA+PSAkb3JhY2xlX3ZlcnNpb25fcmVxXSkKLSsKLSsgICAgICAgIGlmIHRlc3QgLW4gIiRv cmFjbGVfdmVyc2lvbl9tYWpvciIgLWEgLW4gJCJvcmFjbGVfdmVyc2lvbl9taW5vciI7IHRoZW4K LSsKLSsgICAgICAgICAgICBPUkFDTEVfT0NJX1ZFUlNJT049IiRvcmFjbGVfdmVyc2lvbl9tYWpv ci4kb3JhY2xlX3ZlcnNpb25fbWlub3IiCi0rCi0rICAgICAgICAgICAgZG5sIERlY29tcG9zZSBy ZXF1aXJlZCB2ZXJzaW9uIHN0cmluZyBvZiBPcmFjbGUKLSsgICAgICAgICAgICBkbmwgYW5kIGNh bGN1bGF0ZSBpdHMgbnVtYmVyIHJlcHJlc2VudGF0aW9uCi0rICAgICAgICAgICAgb3JhY2xlX3Zl cnNpb25fcmVxX21ham9yPWBleHByICRvcmFjbGVfdmVyc2lvbl9yZXEgOiAnXChbWzAtOV1dKlwp J2AKLSsgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJG9yYWNsZV92 ZXJzaW9uX3JlcSA6ICdbWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsKLSsgICAgICAgICAgICBv cmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRvcmFjbGVfdmVyc2lvbl9yZXFfbWFqb3Ig XCogMTAwMDAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsg JG9yYWNsZV92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwYAotKwotKyAgICAgICAgICAgIGRubCBD YWxjdWxhdGUgaXRzIG51bWJlciByZXByZXNlbnRhdGlvbiAKLSsgICAgICAgICAgICBvcmFjbGVf dmVyc2lvbl9udW1iZXI9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX21ham9yIFwqIDEwMDAwMDAgXAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkb3JhY2xlX3ZlcnNpb25fbWlu b3IgXCogMTAwMGAKLSsKLSsgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9jaGVjaz1gZXhwciAk b3JhY2xlX3ZlcnNpb25fbnVtYmVyIFw+XD0gJG9yYWNsZV92ZXJzaW9uX3JlcV9udW1iZXJgCi0r ICAgICAgICAgICAgaWYgdGVzdCAiJG9yYWNsZV92ZXJzaW9uX2NoZWNrIiA9ICIxIjsgdGhlbgot KyAgICAgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotKyAgICAgICAgICAgICAgICBB Q19ERUZJTkUoSEFWRV9PUkFDTEUsIFsxXSwgW0RlZmluZSB0byAxIGlmIHRoZSBPcmFjbGUgT0NJ IGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAg ICAgIEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFtP cmFjbGUgJE9SQUNMRV9PQ0lfVkVSU0lPTiBmb3VuZCwgYnV0IHJlcXVpcmVkIHZlcnNpb24gaXMg JG9yYWNsZV92ZXJzaW9uX3JlcV0pCi0rICAgICAgICAgICAgZmkKLSsgICAgICAgIGVsc2UKLSsg ICAgICAgICAgICBPUkFDTEVfT0NJX1ZFUlNJT049IlVOS05PV04iCi0rICAgICAgICAgICAgQUNf TVNHX1JFU1VMVChbbm9dKQotKyAgICAgICAgICAgIEFDX01TR19XQVJOKFtPcmFjbGUgdmVyc2lv biB1bmtub3duLCBwcm9iYWJseSBPQ0kgb2xkZXIgdGhhbiAxMC4yIGlzIGF2YWlsYWJsZV0pCi0r ICAgICAgICBmaQotKyAgICBmaQotKwotKyAgICBBQ19TVUJTVChbT1JBQ0xFX09DSV9WRVJTSU9O XSkKLSsgICAgQUNfU1VCU1QoW09SQUNMRV9PQ0lfQ0ZMQUdTXSkKLSsgICAgQUNfU1VCU1QoW09S QUNMRV9PQ0lfTERGTEFHU10pCi0rXSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25m aWcvYXhfcG9zdGdyZXNxbC5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X3Bvc3RncmVz cWwubTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfcG9zdGdyZXNxbC5tNAkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9j b25maWcvYXhfcG9zdGdyZXNxbC5tNAkyMDEwLTAxLTIzIDEzOjI3OjA0LjAwMDAwMDAwMCArMDEw MAotQEAgLTAsMCArMSwxNzEgQEAKLStkbmwgJElkOiBzb2NpLTMuMC4wLTE2LWZpeC1nbnUtYXV0 b3Rvb2xzLWNvbXBhdGliaWxpdHkucGF0Y2gsdiAxLjEgMjAxMC8wMS8yMyAxNToxNjo0OSBkZW5p c2FybmF1ZCBFeHAgJAotK2RubAotK2RubCBAc3lub3BzaXMgQVhfTElCX1BPU1RHUkVTUUwoW01J TklNVU0tVkVSU0lPTl0pCi0rZG5sCi0rZG5sIFRoaXMgbWFjcm8gcHJvdmlkZXMgdGVzdHMgb2Yg YXZhaWxhYmlsaXR5IG9mIFBvc3RncmVTUUwgJ2xpYnBxJyBsaWJyYXJ5Ci0rZG5sIG9mIHBhcnRp Y3VsYXIgdmVyc2lvbiBvciBuZXdlci4KLStkbmwgCi0rZG5sIEFYX0xJQl9QT1NUR1JFU1FMIG1h Y3JvIHRha2VzIG9ubHkgb25lIGFyZ3VtZW50IHdoaWNoIGlzIG9wdGlvbmFsLiBJZiB0aGVyZSBp cyBubyAKLStkbmwgcmVxdWlyZWQgdmVyc2lvbiBwYXNzZWQsIHRoZW4gbWFjcm8gZG9lcyBub3Qg cnVuIHZlcnNpb24gdGVzdC4KLStkbmwKLStkbmwgVGhlIC0td2l0aC1wb3N0Z3Jlc3FsIG9wdGlv biB0YWtlcyBvbmUgb2YgdGhyZWUgcG9zc2libGUgdmFsdWVzOgotK2RubCBubyAgIC0gZG8gbm90 IGNoZWNrIGZvciBQb3N0Z3JlU1FMIGNsaWVudCBsaWJyYXJ5Ci0rZG5sIHllcyAgLSBkbyBjaGVj ayBmb3IgUG9zdGdyZVNRTCBsaWJyYXJ5IGluIHN0YW5kYXJkIGxvY2F0aW9ucwotK2RubCAgICAg ICAgKHBnX2NvbmZpZyBzaG91bGQgYmUgaW4gdGhlIFBBVEgpCi0rZG5sIHBhdGggLSBjb21wbGV0 ZSBwYXRoIHRvIHBnX2NvbmZpZyB1dGlsaXR5LCB1c2UgdGhpcyBvcHRpb24KLStkbmwgICAgICAg IGlmIHBnX2NvbmZpZyBjYW4ndCBiZSBmb3VuZCBpbiB0aGUgUEFUSAotK2RubAotK2RubCBUaGlz IG1hY3JvIGNhbGxzOgotK2RubAotK2RubCAgIEFDX1NVQlNUKFBPU1RHUkVTUUxfQ0ZMQUdTKQot K2RubCAgIEFDX1NVQlNUKFBPU1RHUkVTUUxfTERGTEFHUykKLStkbmwgICBBQ19TVUJTVChQT1NU R1JFU1FMX1ZFUlNJT04pCi0rZG5sCi0rZG5sIEFuZCBzZXRzOgotK2RubAotK2RubCAgIEhBVkVf UE9TVEdSRVNRTAotK2RubAotK2RubCBAY2F0ZWdvcnkgSW5zdGFsbGVkUGFja2FnZXMKLStkbmwg QGNhdGVnb3J5IEN4eAotK2RubCBAYXV0aG9yIE1hdGV1c3ogTG9za290IDxtYXRldXN6QGxvc2tv dC5uZXQ+Ci0rZG5sIEB2ZXJzaW9uICREYXRlOiAyMDEwLzAxLzIzIDE1OjE2OjQ5ICQKLStkbmwg QGxpY2Vuc2UgQWxsUGVybWlzc2l2ZQotK2RubAotK2RubCAkSWQ6IHNvY2ktMy4wLjAtMTYtZml4 LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaCx2IDEuMSAyMDEwLzAxLzIzIDE1OjE2 OjQ5IGRlbmlzYXJuYXVkIEV4cCAkCi0rZG5sCi0rQUNfREVGVU4oW0FYX0xJQl9QT1NUR1JFU1FM XSwKLStbCi0rICAgIEFDX0FSR19XSVRIKFtwb3N0Z3Jlc3FsXSwKLSsgICAgICAgIEFDX0hFTFBf U1RSSU5HKFstLXdpdGgtcG9zdGdyZXNxbD1APDpAQVJHQDo+QF0sCi0rICAgICAgICAgICAgW3Vz ZSBQb3N0Z3JlU1FMIGxpYnJhcnkgQDw6QGRlZmF1bHQ9eWVzQDo+QCwgb3B0aW9uYWxseSBzcGVj aWZ5IHBhdGggdG8gcGdfY29uZmlnXQotKyAgICAgICAgKSwKLSsgICAgICAgIFsKLSsJUE9TVEdS RVNRTF9pbmNfY2hlY2s9IiR3aXRoX3Bvc3RncmVzcWwvaW5jbHVkZSIKLSsgICAgICAgIGlmIHRl c3QgIiR3aXRodmFsIiA9ICJubyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50X3Bvc3RncmVzcWw9 Im5vIgotKyAgICAgICAgZWxpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgotKyAgICAg ICAgICAgIHdhbnRfcG9zdGdyZXNxbD0ieWVzIgotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAg IHdhbnRfcG9zdGdyZXNxbD0ieWVzIgotKyAgICAgICAgICAgIFBHX0NPTkZJRz0iJHdpdGh2YWwi Ci0rICAgICAgICBmaQotKyAgICAgICAgXSwKLSsgICAgICAgIFt3YW50X3Bvc3RncmVzcWw9Inll cyIKLSsJUE9TVEdSRVNRTF9pbmNfY2hlY2s9Ii91c3IvaW5jbHVkZSAvdXNyL2xvY2FsIC9vcHQi XQotKyAgICApCi0rCi0rICAgIFBPU1RHUkVTUUxfQ0ZMQUdTPSIiCi0rICAgIFBPU1RHUkVTUUxf TERGTEFHUz0iIgotKyAgICBQT1NUR1JFU1FMX1BPU1RHUkVTUUw9IiIKLSsKLSsgICAgZG5sCi0r ICAgIGRubCBDaGVjayBQb3N0Z3JlU1FMIGxpYnJhcmllcyAobGlicHEpCi0rICAgIGRubAotKyAg ICAKLSsgICAgaWYgdGVzdCAiJHdhbnRfcG9zdGdyZXNxbCIgPSAieWVzIjsgdGhlbgotKwotKyAg ICAgICAgaWYgdGVzdCAteiAiJFBHX0NPTkZJRyIgLW8gdGVzdDsgdGhlbgotKyAgICAgICAgICAg IEFDX1BBVEhfUFJPRyhbUEdfQ09ORklHXSwgW3BnX2NvbmZpZ10sIFtdKQotKyAgICAgICAgZmkK LSsKLSsgICAgICAgIGlmIHRlc3QgISAteCAiJFBHX0NPTkZJRyI7IHRoZW4KLSsgICAgICAgICAg ICBBQ19NU0dfRVJST1IoWyRQR19DT05GSUcgZG9lcyBub3QgZXhpc3Qgb3IgaXQgaXMgbm90IGFu IGV4ZWN0dWFibGUgZmlsZV0pCi0rICAgICAgICAgICAgUEdfQ09ORklHPSJubyIKLSsgICAgICAg ICAgICBmb3VuZF9wb3N0Z3Jlc3FsPSJubyIKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBpZiB0 ZXN0ICIkUEdfQ09ORklHIiAhPSAibm8iOyB0aGVuCi0rICAgICAgICAgICAgIwotKyAgICAgICAg ICAgICMgTG9vayBmb3IgUG9zdGdyZXNxbCBDIEFQSSBoZWFkZXJzCi0rICAgICAgICAgICAgIwot KyAgICAgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIFBvc3RncmVzcWwgaW5jbHVkZSBkaXJl Y3RvcnldKQotKyAgICAgICAgICAgIFBPU1RHUkVTUUxfaW5jZGlyPQotKyAgICAgICAgICAgIGZv ciBwb3N0Z3Jlc3FsX2luY19kaXIgaW4gJFBPU1RHUkVTUUxfaW5jX2NoZWNrCi0rICAgICAgICAg ICAgZG8KLSsgICAgICAgICAgICAgICAgaWYgdGVzdCAtZCAiJHBvc3RncmVzcWxfaW5jX2RpciIg XAotKyAgICAgICAgICAgICAgICAmJiB0ZXN0IC1mICIkcG9zdGdyZXNxbF9pbmNfZGlyL3Bvc3Rn cmVzX2V4dC5oIgotKyAgICAgICAgICAgICAgICB0aGVuCi0rICAgICAgICAgICAgICAgICAgICBQ T1NUR1JFU1FMX2luY2Rpcj0kcG9zdGdyZXNxbF9pbmNfZGlyCi0rICAgICAgICAgICAgICAgICAg ICBicmVhawotKyAgICAgICAgICAgICAgICBmaQotKyAgICAgICAgICAgIGRvbmUKLSsKLSsgICAg ICAgICAgICBpZiB0ZXN0IC16ICIkUE9TVEdSRVNRTF9pbmNkaXIiCi0rICAgICAgICAgICAgdGhl bgotKyAgICAgICAgICAgICAgICBBQ19NU0dfRVJST1IoW0RpZG4ndCBmaW5kIHRoZSBQb3N0Z3Jl c3FsIGluY2x1ZGUgZGlyIGluICckUE9TVEdSRVNRTF9pbmNfY2hlY2snXSkKLSsgICAgICAgICAg ICBmaQotKwotKyAgICAgICAgICAgIGNhc2UgIiRQT1NUR1JFU1FMX2luY2RpciIgaW4KLSsgICAg ICAgICAgICAgICAgLyogKSA7OwotKyAgICAgICAgICAgICAgICAqICkgIEFDX01TR19FUlJPUihb VGhlIFBvc3RncmVzcWwgaW5jbHVkZSBkaXJlY3RvcnkgKCRQT1NUR1JFU1FMX2luY2RpcikgbXVz dCBiZSBhbiBhYnNvbHV0ZSBwYXRoLl0pIDs7Ci0rICAgICAgICAgICAgZXNhYwotKwotKyAgICAg ICAgICAgIEFDX01TR19SRVNVTFQoWyRQT1NUR1JFU1FMX2luY2Rpcl0pCi0rCi0rICAgICAgICAg ICAgaWYgdGVzdCAiJFBPU1RHUkVTUUxfaW5jZGlyIiA9ICIvdXNyL2luY2x1ZGUiOyB0aGVuCi0r ICAgICAgICAgICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iIgotKyAgICAgICAgICAgIGVsc2UKLSsg ICAgICAgICAgICAgIFBPU1RHUkVTUUxfQ0ZMQUdTPSItSSR7UE9TVEdSRVNRTF9pbmNkaXJ9Igot KyAgICAgICAgICAgIGZpCi0rCi0rICAgICAgICAgICAgUE9TVEdSRVNRTF9MREZMQUdTPSItTGAk UEdfQ09ORklHIC0tbGliZGlyYCAtbHBxIgotKwotKyAgICAgICAgICAgIFBPU1RHUkVTUUxfVkVS U0lPTj1gJFBHX0NPTkZJRyAtLXZlcnNpb24gfCBzZWQgLWUgJ3MjUG9zdGdyZVNRTCAjIydgCi0r Ci0rICAgICAgICAgICAgQUNfREVGSU5FKFtIQVZFX1BPU1RHUkVTUUxdLCBbMV0sIFtEZWZpbmUg dG8gMSBpZiBQb3N0Z3JlU1FMIGxpYnJhcmllcyBhcmUgYXZhaWxhYmxlXSkKLSsgICAgICAgICAg ICAKLSsgICAgICAgICAgICBmb3VuZF9wb3N0Z3Jlc3FsPSJ5ZXMiCi0rICAgICAgICBlbHNlCi0r ICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ibm8iCi0rICAgICAgICBmaQotKyAgICBmaQot KwotKyAgICBkbmwKLSsgICAgZG5sIENoZWNrIGlmIHJlcXVpcmVkIHZlcnNpb24gb2YgUG9zdGdy ZVNRTCBpcyBhdmFpbGFibGUKLSsgICAgZG5sCi0rICAgIAotKwotKyAgICBwb3N0Z3Jlc3FsX3Zl cnNpb25fcmVxPWlmZWxzZShbJDFdLCBbXSwgW10sIFskMV0pCi0rCi0rICAgIGlmIHRlc3QgIiRm b3VuZF9wb3N0Z3Jlc3FsIiA9ICJ5ZXMiIC1hIC1uICIkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSI7 IHRoZW4KLSsKLSsgICAgICAgIEFDX01TR19DSEVDS0lORyhbaWYgUG9zdGdyZVNRTCB2ZXJzaW9u IGlzID49ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxXSkKLSsKLSsgICAgICAgIGRubCBEZWNvbXBv c2UgcmVxdWlyZWQgdmVyc2lvbiBzdHJpbmcgb2YgUG9zdGdyZVNRTAotKyAgICAgICAgZG5sIGFu ZCBjYWxjdWxhdGUgaXRzIG51bWJlciByZXByZXNlbnRhdGlvbgotKyAgICAgICAgcG9zdGdyZXNx bF92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdcKFtb MC05XV0qXCknYAotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taW5vcj1gZXhwciAk cG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdbWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsgICAg ICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm89YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lv bl9yZXEgOiAnW1swLTldXSpcLltbMC05XV0qXC5cKFtbMC05XV0qXCknYAotKyAgICAgICAgaWYg dGVzdCAieCRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvIiA9ICJ4IjsgdGhlbgotKyAgICAg ICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm89IjAiCi0rICAgICAgICBmaQotKwot KyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9udW1iZXI9YGV4cHIgJHBvc3RncmVzcWxf dmVyc2lvbl9yZXFfbWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwIFwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25f cmVxX21pY3JvYAotKwotKyAgICAgICAgZG5sIERlY29tcG9zZSB2ZXJzaW9uIHN0cmluZyBvZiBp bnN0YWxsZWQgUG9zdGdyZVNRTAotKyAgICAgICAgZG5sIGFuZCBjYWxjdWxhdGUgaXRzIG51bWJl ciByZXByZXNlbnRhdGlvbgotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21ham9yPWBleHBy ICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnXChbWzAtOV1dKlwpJ2AKLSsgICAgICAgIHBvc3RncmVz cWxfdmVyc2lvbl9taW5vcj1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1tbMC05XV0qXC5c KFtbMC05XV0qXCknYAotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvPWBleHByICRQ T1NUR1JFU1FMX1ZFUlNJT04gOiAnW1swLTldXSpcLltbMC05XV0qXC5cKFtbMC05XV0qXCknYAot KyAgICAgICAgaWYgdGVzdCAieCRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWljcm8iID0gIngiOyB0aGVu Ci0rICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvPSIwIgotKyAgICAgICAgZmkK LSsKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9udW1iZXI9YGV4cHIgJHBvc3RncmVzcWxf dmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3IgXCogMTAwMCBcCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvYAot KwotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX2NoZWNrPWBleHByICRwb3N0Z3Jlc3FsX3Zl cnNpb25fbnVtYmVyIFw+XD0gJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbnVtYmVyYAotKyAgICAg ICAgaWYgdGVzdCAiJHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KLSsgICAg ICAgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAg IEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgICAgIGZpCi0rICAgIGZpCi0rCi0rICAgIEFDX1NV QlNUKFtQT1NUR1JFU1FMX1ZFUlNJT05dKQotKyAgICBBQ19TVUJTVChbUE9TVEdSRVNRTF9DRkxB R1NdKQotKyAgICBBQ19TVUJTVChbUE9TVEdSRVNRTF9MREZMQUdTXSkKLStdKQotZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9jb25maWcuZ3Vlc3Mgc29jaS0zLjAuMF90cmVwMzAw L2NvbmZpZy9jb25maWcuZ3Vlc3MKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvY29uZmln Lmd1ZXNzCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL2NvbmZpZy9jb25maWcuZ3Vlc3MJMjAxMC0wMS0yMyAxNDo0NDo1MC4wMDAwMDAw MDAgKzAxMDAKLUBAIC0wLDAgKzEsMTUwMSBAQAotKyMhIC9iaW4vc2gKLSsjIEF0dGVtcHQgdG8g Z3Vlc3MgYSBjYW5vbmljYWwgc3lzdGVtIG5hbWUuCi0rIyAgIENvcHlyaWdodCAoQykgMTk5Miwg MTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKLSsjICAgMjAwMCwgMjAw MSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOQotKyMgICBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSt0aW1lc3RhbXA9JzIwMDktMTEtMjAn Ci0rCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeSBpdAotKyMgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKLSsjIFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsj IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUgR05VCi0rIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0r IwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRl IHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT dHJlZXQgLSBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQotKyMgMDIxMTAtMTMwMSwgVVNBLgotKyMK LSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlLCBpZiB5b3UKLSsjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFt IHRoYXQgY29udGFpbnMgYQotKyMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1 dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKLSsjIHRoZSBzYW1lIGRpc3RyaWJ1dGlv biB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KLSsKLSsK LSsjIE9yaWdpbmFsbHkgd3JpdHRlbiBieSBQZXIgQm90aG5lci4gIFBsZWFzZSBzZW5kIHBhdGNo ZXMgKGNvbnRleHQKLSsjIGRpZmYgZm9ybWF0KSB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4g YW5kIGluY2x1ZGUgYSBDaGFuZ2VMb2cKLSsjIGVudHJ5LgotKyMKLSsjIFRoaXMgc2NyaXB0IGF0 dGVtcHRzIHRvIGd1ZXNzIGEgY2Fub25pY2FsIHN5c3RlbSBuYW1lIHNpbWlsYXIgdG8KLSsjIGNv bmZpZy5zdWIuICBJZiBpdCBzdWNjZWVkcywgaXQgcHJpbnRzIHRoZSBzeXN0ZW0gbmFtZSBvbiBz dGRvdXQsIGFuZAotKyMgZXhpdHMgd2l0aCAwLiAgT3RoZXJ3aXNlLCBpdCBleGl0cyB3aXRoIDEu Ci0rIwotKyMgWW91IGNhbiBnZXQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgc2NyaXB0IGZy b206Ci0rIyBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZpZy5naXQ7 YT1ibG9iX3BsYWluO2Y9Y29uZmlnLmd1ZXNzO2hiPUhFQUQKLSsKLSttZT1gZWNobyAiJDAiIHwg c2VkIC1lICdzLC4qLywsJ2AKLSsKLSt1c2FnZT0iXAotK1VzYWdlOiAkMCBbT1BUSU9OXQotKwot K091dHB1dCB0aGUgY29uZmlndXJhdGlvbiBuYW1lIG9mIHRoZSBzeXN0ZW0gXGAkbWUnIGlzIHJ1 biBvbi4KLSsKLStPcGVyYXRpb24gbW9kZXM6Ci0rICAtaCwgLS1oZWxwICAgICAgICAgcHJpbnQg dGhpcyBoZWxwLCB0aGVuIGV4aXQKLSsgIC10LCAtLXRpbWUtc3RhbXAgICBwcmludCBkYXRlIG9m IGxhc3QgbW9kaWZpY2F0aW9uLCB0aGVuIGV4aXQKLSsgIC12LCAtLXZlcnNpb24gICAgICBwcmlu dCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0Ci0rCi0rUmVwb3J0IGJ1Z3MgYW5kIHBhdGNoZXMg dG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiIKLSsKLSt2ZXJzaW9uPSJcCi0rR05VIGNvbmZp Zy5ndWVzcyAoJHRpbWVzdGFtcCkKLSsKLStPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhu ZXIuCi0rQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAx OTk4LCAxOTk5LCAyMDAwLCAyMDAxLAotKzIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw MDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rVGhpcyBpcyBmcmVl IHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUg aXMgTk8KLSt3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4iCi0rCi0raGVscD0iCi0rVHJ5IFxgJG1lIC0taGVs cCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgotKwotKyMgUGFyc2UgY29tbWFuZCBsaW5lCi0rd2hp bGUgdGVzdCAkIyAtZ3QgMCA7IGRvCi0rICBjYXNlICQxIGluCi0rICAgIC0tdGltZS1zdGFtcCB8 IC0tdGltZSogfCAtdCApCi0rICAgICAgIGVjaG8gIiR0aW1lc3RhbXAiIDsgZXhpdCA7OwotKyAg ICAtLXZlcnNpb24gfCAtdiApCi0rICAgICAgIGVjaG8gIiR2ZXJzaW9uIiA7IGV4aXQgOzsKLSsg ICAgLS1oZWxwIHwgLS1oKiB8IC1oICkKLSsgICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCA7Owot KyAgICAtLSApICAgICAjIFN0b3Agb3B0aW9uIHByb2Nlc3NpbmcKLSsgICAgICAgc2hpZnQ7IGJy ZWFrIDs7Ci0rICAgIC0gKQkjIFVzZSBzdGRpbiBhcyBpbnB1dC4KLSsgICAgICAgYnJlYWsgOzsK LSsgICAgLSogKQotKyAgICAgICBlY2hvICIkbWU6IGludmFsaWQgb3B0aW9uICQxJGhlbHAiID4m MgotKyAgICAgICBleGl0IDEgOzsKLSsgICAgKiApCi0rICAgICAgIGJyZWFrIDs7Ci0rICBlc2Fj Ci0rZG9uZQotKwotK2lmIHRlc3QgJCMgIT0gMDsgdGhlbgotKyAgZWNobyAiJG1lOiB0b28gbWFu eSBhcmd1bWVudHMkaGVscCIgPiYyCi0rICBleGl0IDEKLStmaQotKwotK3RyYXAgJ2V4aXQgMScg MSAyIDE1Ci0rCi0rIyBDQ19GT1JfQlVJTEQgLS0gY29tcGlsZXIgdXNlZCBieSB0aGlzIHNjcmlw dC4gTm90ZSB0aGF0IHRoZSB1c2Ugb2YgYQotKyMgY29tcGlsZXIgdG8gYWlkIGluIHN5c3RlbSBk ZXRlY3Rpb24gaXMgZGlzY291cmFnZWQgYXMgaXQgcmVxdWlyZXMKLSsjIHRlbXBvcmFyeSBmaWxl cyB0byBiZSBjcmVhdGVkIGFuZCwgYXMgeW91IGNhbiBzZWUgYmVsb3csIGl0IGlzIGEKLSsjIGhl YWRhY2hlIHRvIGRlYWwgd2l0aCBpbiBhIHBvcnRhYmxlIGZhc2hpb24uCi0rCi0rIyBIaXN0b3Jp Y2FsbHksIGBDQ19GT1JfQlVJTEQnIHVzZWQgdG8gYmUgbmFtZWQgYEhPU1RfQ0MnLiBXZSBzdGls bAotKyMgdXNlIGBIT1NUX0NDJyBpZiBkZWZpbmVkLCBidXQgaXQgaXMgZGVwcmVjYXRlZC4KLSsK LSsjIFBvcnRhYmxlIHRtcCBkaXJlY3RvcnkgY3JlYXRpb24gaW5zcGlyZWQgYnkgdGhlIEF1dG9j b25mIHRlYW0uCi0rCi0rc2V0X2NjX2Zvcl9idWlsZD0nCi0rdHJhcCAiZXhpdGNvZGU9XCQ/OyAo cm0gLWYgXCR0bXBmaWxlcyAyPi9kZXYvbnVsbDsgcm1kaXIgXCR0bXAgMj4vZGV2L251bGwpICYm IGV4aXQgXCRleGl0Y29kZSIgMCA7Ci0rdHJhcCAicm0gLWYgXCR0bXBmaWxlcyAyPi9kZXYvbnVs bDsgcm1kaXIgXCR0bXAgMj4vZGV2L251bGw7IGV4aXQgMSIgMSAyIDEzIDE1IDsKLSs6ICR7VE1Q RElSPS90bXB9IDsKLSsgeyB0bXA9YCh1bWFzayAwNzcgJiYgbWt0ZW1wIC1kICIkVE1QRElSL2Nn WFhYWFhYIikgMj4vZGV2L251bGxgICYmIHRlc3QgLW4gIiR0bXAiICYmIHRlc3QgLWQgIiR0bXAi IDsgfSB8fAotKyB7IHRlc3QgLW4gIiRSQU5ET00iICYmIHRtcD0kVE1QRElSL2NnJCQtJFJBTkRP TSAmJiAodW1hc2sgMDc3ICYmIG1rZGlyICR0bXApIDsgfSB8fAotKyB7IHRtcD0kVE1QRElSL2Nn LSQkICYmICh1bWFzayAwNzcgJiYgbWtkaXIgJHRtcCkgJiYgZWNobyAiV2FybmluZzogY3JlYXRp bmcgaW5zZWN1cmUgdGVtcCBkaXJlY3RvcnkiID4mMiA7IH0gfHwKLSsgeyBlY2hvICIkbWU6IGNh bm5vdCBjcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluICRUTVBESVIiID4mMiA7IGV4aXQg MSA7IH0gOwotK2R1bW15PSR0bXAvZHVtbXkgOwotK3RtcGZpbGVzPSIkZHVtbXkuYyAkZHVtbXku byAkZHVtbXkucmVsICRkdW1teSIgOwotK2Nhc2UgJENDX0ZPUl9CVUlMRCwkSE9TVF9DQywkQ0Mg aW4KLSsgLCwpICAgIGVjaG8gImludCB4OyIgPiAkZHVtbXkuYyA7Ci0rCWZvciBjIGluIGNjIGdj YyBjODkgYzk5IDsgZG8KLSsJICBpZiAoJGMgLWMgLW8gJGR1bW15Lm8gJGR1bW15LmMpID4vZGV2 L251bGwgMj4mMSA7IHRoZW4KLSsJICAgICBDQ19GT1JfQlVJTEQ9IiRjIjsgYnJlYWsgOwotKwkg IGZpIDsKLSsJZG9uZSA7Ci0rCWlmIHRlc3QgeCIkQ0NfRk9SX0JVSUxEIiA9IHggOyB0aGVuCi0r CSAgQ0NfRk9SX0JVSUxEPW5vX2NvbXBpbGVyX2ZvdW5kIDsKLSsJZmkKLSsJOzsKLSsgLCwqKSAg IENDX0ZPUl9CVUlMRD0kQ0MgOzsKLSsgLCosKikgIENDX0ZPUl9CVUlMRD0kSE9TVF9DQyA7Owot K2VzYWMgOyBzZXRfY2NfZm9yX2J1aWxkPSA7JwotKwotKyMgVGhpcyBpcyBuZWVkZWQgdG8gZmlu ZCB1bmFtZSBvbiBhIFB5cmFtaWQgT1N4IHdoZW4gcnVuIGluIHRoZSBCU0QgdW5pdmVyc2UuCi0r IyAoZ2hhemlAbm9jLnJ1dGdlcnMuZWR1IDE5OTQtMDgtMjQpCi0raWYgKHRlc3QgLWYgLy5hdHRi aW4vdW5hbWUpID4vZGV2L251bGwgMj4mMSA7IHRoZW4KLSsJUEFUSD0kUEFUSDovLmF0dGJpbiA7 IGV4cG9ydCBQQVRICi0rZmkKLSsKLStVTkFNRV9NQUNISU5FPWAodW5hbWUgLW0pIDI+L2Rldi9u dWxsYCB8fCBVTkFNRV9NQUNISU5FPXVua25vd24KLStVTkFNRV9SRUxFQVNFPWAodW5hbWUgLXIp IDI+L2Rldi9udWxsYCB8fCBVTkFNRV9SRUxFQVNFPXVua25vd24KLStVTkFNRV9TWVNURU09YCh1 bmFtZSAtcykgMj4vZGV2L251bGxgICB8fCBVTkFNRV9TWVNURU09dW5rbm93bgotK1VOQU1FX1ZF UlNJT049YCh1bmFtZSAtdikgMj4vZGV2L251bGxgIHx8IFVOQU1FX1ZFUlNJT049dW5rbm93bgot KwotKyMgTm90ZTogb3JkZXIgaXMgc2lnbmlmaWNhbnQgLSB0aGUgY2FzZSBicmFuY2hlcyBhcmUg bm90IGV4Y2x1c2l2ZS4KLSsKLStjYXNlICIke1VOQU1FX01BQ0hJTkV9OiR7VU5BTUVfU1lTVEVN fToke1VOQU1FX1JFTEVBU0V9OiR7VU5BTUVfVkVSU0lPTn0iIGluCi0rICAgICo6TmV0QlNEOio6 KikKLSsJIyBOZXRCU0QgKG5ic2QpIHRhcmdldHMgc2hvdWxkICh3aGVyZSBhcHBsaWNhYmxlKSBt YXRjaCBvbmUgb3IKLSsJIyBtb3JlIG9mIHRoZSB0dXBwbGVzOiAqLSotbmV0YnNkZWxmKiwgKi0q LW5ldGJzZGFvdXQqLAotKwkjICotKi1uZXRic2RlY29mZiogYW5kICotKi1uZXRic2QqLiAgRm9y IHRhcmdldHMgdGhhdCByZWNlbnRseQotKwkjIHN3aXRjaGVkIHRvIEVMRiwgKi0qLW5ldGJzZCog d291bGQgc2VsZWN0IHRoZSBvbGQKLSsJIyBvYmplY3QgZmlsZSBmb3JtYXQuICBUaGlzIHByb3Zp ZGVzIGJvdGggZm9yd2FyZAotKwkjIGNvbXBhdGliaWxpdHkgYW5kIGEgY29uc2lzdGVudCBtZWNo YW5pc20gZm9yIHNlbGVjdGluZyB0aGUKLSsJIyBvYmplY3QgZmlsZSBmb3JtYXQuCi0rCSMKLSsJ IyBOb3RlOiBOZXRCU0QgZG9lc24ndCBwYXJ0aWN1bGFybHkgY2FyZSBhYm91dCB0aGUgdmVuZG9y Ci0rCSMgcG9ydGlvbiBvZiB0aGUgbmFtZS4gIFdlIGFsd2F5cyBzZXQgaXQgdG8gInVua25vd24i LgotKwlzeXNjdGw9InN5c2N0bCAtbiBody5tYWNoaW5lX2FyY2giCi0rCVVOQU1FX01BQ0hJTkVf QVJDSD1gKC9zYmluLyRzeXNjdGwgMj4vZGV2L251bGwgfHwgXAotKwkgICAgL3Vzci9zYmluLyRz eXNjdGwgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duKWAKLSsJY2FzZSAiJHtVTkFNRV9NQUNI SU5FX0FSQ0h9IiBpbgotKwkgICAgYXJtZWIpIG1hY2hpbmU9YXJtZWItdW5rbm93biA7OwotKwkg ICAgYXJtKikgbWFjaGluZT1hcm0tdW5rbm93biA7OwotKwkgICAgc2gzZWwpIG1hY2hpbmU9c2hs LXVua25vd24gOzsKLSsJICAgIHNoM2ViKSBtYWNoaW5lPXNoLXVua25vd24gOzsKLSsJICAgIHNo NWVsKSBtYWNoaW5lPXNoNWxlLXVua25vd24gOzsKLSsJICAgICopIG1hY2hpbmU9JHtVTkFNRV9N QUNISU5FX0FSQ0h9LXVua25vd24gOzsKLSsJZXNhYwotKwkjIFRoZSBPcGVyYXRpbmcgU3lzdGVt IGluY2x1ZGluZyBvYmplY3QgZm9ybWF0LCBpZiBpdCBoYXMgc3dpdGNoZWQKLSsJIyB0byBFTEYg cmVjZW50bHksIG9yIHdpbGwgaW4gdGhlIGZ1dHVyZS4KLSsJY2FzZSAiJHtVTkFNRV9NQUNISU5F X0FSQ0h9IiBpbgotKwkgICAgYXJtKnxpMzg2fG02OGt8bnMzMmt8c2gzKnxzcGFyY3x2YXgpCi0r CQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCQlpZiBlY2hvIF9fRUxGX18gfCAkQ0NfRk9SX0JV SUxEIC1FIC0gMj4vZGV2L251bGwgXAotKwkJCXwgZ3JlcCAtcSBfX0VMRl9fCi0rCQl0aGVuCi0r CQkgICAgIyBPbmNlIGFsbCB1dGlsaXRpZXMgY2FuIGJlIEVDT0ZGIChuZXRic2RlY29mZikgb3Ig YS5vdXQgKG5ldGJzZGFvdXQpLgotKwkJICAgICMgUmV0dXJuIG5ldGJzZCBmb3IgZWl0aGVyLiAg RklYPwotKwkJICAgIG9zPW5ldGJzZAotKwkJZWxzZQotKwkJICAgIG9zPW5ldGJzZGVsZgotKwkJ ZmkKLSsJCTs7Ci0rCSAgICAqKQotKwkgICAgICAgIG9zPW5ldGJzZAotKwkJOzsKLSsJZXNhYwot KwkjIFRoZSBPUyByZWxlYXNlCi0rCSMgRGViaWFuIEdOVS9OZXRCU0QgbWFjaGluZXMgaGF2ZSBh IGRpZmZlcmVudCB1c2VybGFuZCwgYW5kCi0rCSMgdGh1cywgbmVlZCBhIGRpc3RpbmN0IHRyaXBs ZXQuIEhvd2V2ZXIsIHRoZXkgZG8gbm90IG5lZWQKLSsJIyBrZXJuZWwgdmVyc2lvbiBpbmZvcm1h dGlvbiwgc28gaXQgY2FuIGJlIHJlcGxhY2VkIHdpdGggYQotKwkjIHN1aXRhYmxlIHRhZywgaW4g dGhlIHN0eWxlIG9mIGxpbnV4LWdudS4KLSsJY2FzZSAiJHtVTkFNRV9WRVJTSU9OfSIgaW4KLSsJ ICAgIERlYmlhbiopCi0rCQlyZWxlYXNlPSctZ251JwotKwkJOzsKLSsJICAgICopCi0rCQlyZWxl YXNlPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stX10uKi9cLi8nYAotKwkJOzsK LSsJZXNhYwotKwkjIFNpbmNlIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1LRVJORUwtT1BFUkFUSU5H X1NZU1RFTToKLSsJIyBjb250YWlucyByZWR1bmRhbnQgaW5mb3JtYXRpb24sIHRoZSBzaG9ydGVy IGZvcm06Ci0rCSMgQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLU9QRVJBVElOR19TWVNURU0gaXMgdXNl ZC4KLSsJZWNobyAiJHttYWNoaW5lfS0ke29zfSR7cmVsZWFzZX0iCi0rCWV4aXQgOzsKLSsgICAg KjpPcGVuQlNEOio6KikKLSsJVU5BTUVfTUFDSElORV9BUkNIPWBhcmNoIHwgc2VkICdzL09wZW5C U0QuLy8nYAotKwllY2hvICR7VU5BTUVfTUFDSElORV9BUkNIfS11bmtub3duLW9wZW5ic2Qke1VO QU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgKjpla2tvQlNEOio6KikKLSsJZWNobyAke1VO QU1FX01BQ0hJTkV9LXVua25vd24tZWtrb2JzZCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7Owot KyAgICAqOlNvbGlkQlNEOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc29s aWRic2Qke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgbWFjcHBjOk1pckJTRDoqOiop Ci0rCWVjaG8gcG93ZXJwYy11bmtub3duLW1pcmJzZCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7 OwotKyAgICAqOk1pckJTRDoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLW1p cmJzZCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBhbHBoYTpPU0YxOio6KikKLSsJ Y2FzZSAkVU5BTUVfUkVMRUFTRSBpbgotKwkqNC4wKQotKwkJVU5BTUVfUkVMRUFTRT1gL3Vzci9z YmluL3NpemVyIC12IHwgYXdrICd7cHJpbnQgJDN9J2AKLSsJCTs7Ci0rCSo1LiopCi0rCSAgICAg ICAgVU5BTUVfUkVMRUFTRT1gL3Vzci9zYmluL3NpemVyIC12IHwgYXdrICd7cHJpbnQgJDR9J2AK LSsJCTs7Ci0rCWVzYWMKLSsJIyBBY2NvcmRpbmcgdG8gQ29tcGFxLCAvdXNyL3NiaW4vcHNyaW5m byBoYXMgYmVlbiBhdmFpbGFibGUgb24KLSsJIyBPU0YvMSBhbmQgVHJ1NjQgc3lzdGVtcyBwcm9k dWNlZCBzaW5jZSAxOTk1LiAgSSBob3BlIHRoYXQKLSsJIyBjb3ZlcnMgbW9zdCBzeXN0ZW1zIHJ1 bm5pbmcgdG9kYXkuICBUaGlzIGNvZGUgcGlwZXMgdGhlIENQVQotKwkjIHR5cGVzIHRocm91Z2gg aGVhZCAtbiAxLCBzbyB3ZSBvbmx5IGRldGVjdCB0aGUgdHlwZSBvZiBDUFUgMC4KLSsJQUxQSEFf Q1BVX1RZUEU9YC91c3Ivc2Jpbi9wc3JpbmZvIC12IHwgc2VkIC1uIC1lICdzL14gIFRoZSBhbHBo YSBcKC4qXCkgcHJvY2Vzc29yLiokL1wxL3AnIHwgaGVhZCAtbiAxYAotKwljYXNlICIkQUxQSEFf Q1BVX1RZUEUiIGluCi0rCSAgICAiRVY0ICgyMTA2NCkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxw aGEiIDs7Ci0rCSAgICAiRVY0LjUgKDIxMDY0KSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIg OzsKLSsJICAgICJMQ0E0ICgyMTA2Ni8yMTA2OCkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGEi IDs7Ci0rCSAgICAiRVY1ICgyMTE2NCkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjUiIDs7 Ci0rCSAgICAiRVY1LjYgKDIxMTY0QSkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjU2IiA7 OwotKwkgICAgIkVWNS42ICgyMTE2NFBDKSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYXBjYTU2 IiA7OwotKwkgICAgIkVWNS43ICgyMTE2NFBDKSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYXBj YTU3IiA7OwotKwkgICAgIkVWNiAoMjEyNjQpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2 IiA7OwotKwkgICAgIkVWNi43ICgyMTI2NEEpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2 NyIgOzsKLSsJICAgICJFVjYuOENCICgyMTI2NEMpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhh ZXY2OCIgOzsKLSsJICAgICJFVjYuOEFMICgyMTI2NEIpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFs cGhhZXY2OCIgOzsKLSsJICAgICJFVjYuOENYICgyMTI2NEQpIikKLSsJCVVOQU1FX01BQ0hJTkU9 ImFscGhhZXY2OCIgOzsKLSsJICAgICJFVjYuOUEgKDIxMjY0L0VWNjlBKSIpCi0rCQlVTkFNRV9N QUNISU5FPSJhbHBoYWV2NjkiIDs7Ci0rCSAgICAiRVY3ICgyMTM2NCkiKQotKwkJVU5BTUVfTUFD SElORT0iYWxwaGFldjciIDs7Ci0rCSAgICAiRVY3LjkgKDIxMzY0QSkiKQotKwkJVU5BTUVfTUFD SElORT0iYWxwaGFldjc5IiA7OwotKwllc2FjCi0rCSMgQSBQbi5uIHZlcnNpb24gaXMgYSBwYXRj aGVkIHZlcnNpb24uCi0rCSMgQSBWbi5uIHZlcnNpb24gaXMgYSByZWxlYXNlZCB2ZXJzaW9uLgot KwkjIEEgVG4ubiB2ZXJzaW9uIGlzIGEgcmVsZWFzZWQgZmllbGQgdGVzdCB2ZXJzaW9uLgotKwkj IEEgWG4ubiB2ZXJzaW9uIGlzIGFuIHVucmVsZWFzZWQgZXhwZXJpbWVudGFsIGJhc2VsZXZlbC4K LSsJIyAxLjIgdXNlcyAiMS4yIiBmb3IgdW5hbWUgLXIuCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5F fS1kZWMtb3NmYGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9eW1BWVFhdLy8nIHwg dHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4 eXonYAotKwlleGl0IDs7Ci0rICAgIEFscGhhXCAqOldpbmRvd3NfTlQqOiopCi0rCSMgSG93IGRv IHdlIGtub3cgaXQncyBJbnRlcml4IHJhdGhlciB0aGFuIHRoZSBnZW5lcmljIFBPU0lYIHN1YnN5 c3RlbT8KLSsJIyBTaG91bGQgd2UgY2hhbmdlIFVOQU1FX01BQ0hJTkUgYmFzZWQgb24gdGhlIG91 dHB1dCBvZiB1bmFtZSBpbnN0ZWFkCi0rCSMgb2YgdGhlIHNwZWNpZmljIEFscGhhIG1vZGVsPwot KwllY2hvIGFscGhhLXBjLWludGVyaXgKLSsJZXhpdCA7OwotKyAgICAyMTA2NDpXaW5kb3dzX05U OjUwOjMpCi0rCWVjaG8gYWxwaGEtZGVjLXdpbm50My41Ci0rCWV4aXQgOzsKLSsgICAgQW1pZ2Eq OlVOSVhfU3lzdGVtX1Y6NC4wOiopCi0rCWVjaG8gbTY4ay11bmtub3duLXN5c3Y0Ci0rCWV4aXQg OzsKLSsgICAgKjpbQWFdbWlnYVtPb11bU3NdOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9 LXVua25vd24tYW1pZ2FvcwotKwlleGl0IDs7Ci0rICAgICo6W01tXW9ycGhbT29dW1NzXToqOiop Ci0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLW1vcnBob3MKLSsJZXhpdCA7OwotKyAg ICAqOk9TLzM5MDoqOiopCi0rCWVjaG8gaTM3MC1pYm0tb3BlbmVkaXRpb24KLSsJZXhpdCA7Owot KyAgICAqOnovVk06KjoqKQotKwllY2hvIHMzOTAtaWJtLXp2bW9lCi0rCWV4aXQgOzsKLSsgICAg KjpPUzQwMDoqOiopCi0rICAgICAgICBlY2hvIHBvd2VycGMtaWJtLW9zNDAwCi0rCWV4aXQgOzsK LSsgICAgYXJtOlJJU0MqOjEuWzAxMl0qOip8YXJtOnJpc2NpeDoxLlswMTJdKjoqKQotKwllY2hv IGFybS1hY29ybi1yaXNjaXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgYXJtOnJp c2NvczoqOip8YXJtOlJJU0NPUzoqOiopCi0rCWVjaG8gYXJtLXVua25vd24tcmlzY29zCi0rCWV4 aXQgOzsKLSsgICAgU1IyPzAxOkhJLVVYL01QUDoqOiogfCBTUjgwMDA6SEktVVgvTVBQOio6KikK LSsJZWNobyBocHBhMS4xLWhpdGFjaGktaGl1eG1wcAotKwlleGl0IDs7Ci0rICAgIFB5cmFtaWQq Ok9TeCo6KjoqIHwgTUlTKjpPU3gqOio6KiB8IE1JUyo6U01QX0RDLU9TeCo6KjoqKQotKwkjIGFr ZWVAd3BkaXMwMy53cGFmYi5hZi5taWwgKEVhcmxlIEYuIEFrZSkgY29udHJpYnV0ZWQgTUlTIGFu ZCBOSUxFLgotKwlpZiB0ZXN0ICJgKC9iaW4vdW5pdmVyc2UpIDI+L2Rldi9udWxsYCIgPSBhdHQg OyB0aGVuCi0rCQllY2hvIHB5cmFtaWQtcHlyYW1pZC1zeXN2MwotKwllbHNlCi0rCQllY2hvIHB5 cmFtaWQtcHlyYW1pZC1ic2QKLSsJZmkKLSsJZXhpdCA7OwotKyAgICBOSUxFKjoqOio6ZGNvc3gp Ci0rCWVjaG8gcHlyYW1pZC1weXJhbWlkLXN2cjQKLSsJZXhpdCA7OwotKyAgICBEUlM/NjAwMDp1 bml4OjQuMDo2KikKLSsJZWNobyBzcGFyYy1pY2wtbng2Ci0rCWV4aXQgOzsKLSsgICAgRFJTPzYw MDA6VU5JWF9TVjo0LjIqOjcqIHwgRFJTPzYwMDA6aXNpczo0LjIqOjcqKQotKwljYXNlIGAvdXNy L2Jpbi91bmFtZSAtcGAgaW4KLSsJICAgIHNwYXJjKSBlY2hvIHNwYXJjLWljbC1ueDc7IGV4aXQg OzsKLSsJZXNhYyA7OwotKyAgICBzMzkweDpTdW5PUzoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNI SU5FfS1pYm0tc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8v J2AKLSsJZXhpdCA7OwotKyAgICBzdW40SDpTdW5PUzo1Lio6KikKLSsJZWNobyBzcGFyYy1oYWwt c29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKLSsJZXhp dCA7OwotKyAgICBzdW40KjpTdW5PUzo1Lio6KiB8IHRhZHBvbGUqOlN1bk9TOjUuKjoqKQotKwll Y2hvIHNwYXJjLXN1bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1te Ll0qLy8nYAotKwlleGl0IDs7Ci0rICAgIGk4NnBjOkF1cm9yYVVYOjUuKjoqIHwgaTg2eGVuOkF1 cm9yYVVYOjUuKjoqKQotKwllY2hvIGkzODYtcGMtYXVyb3JhdXgke1VOQU1FX1JFTEVBU0V9Ci0r CWV4aXQgOzsKLSsgICAgaTg2cGM6U3VuT1M6NS4qOiogfCBpODZ4ZW46U3VuT1M6NS4qOiopCi0r CWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLSsJU1VOX0FSQ0g9ImkzODYiCi0rCSMgSWYgdGhlcmUg aXMgYSBjb21waWxlciwgc2VlIGlmIGl0IGlzIGNvbmZpZ3VyZWQgZm9yIDY0LWJpdCBvYmplY3Rz LgotKwkjIE5vdGUgdGhhdCB0aGUgU3VuIGNjIGRvZXMgbm90IHR1cm4gX19MUDY0X18gaW50byAx IGxpa2UgZ2NjIGRvZXMuCi0rCSMgVGhpcyB0ZXN0IHdvcmtzIGZvciBib3RoIGNvbXBpbGVycy4K LSsJaWYgWyAiJENDX0ZPUl9CVUlMRCIgIT0gJ25vX2NvbXBpbGVyX2ZvdW5kJyBdOyB0aGVuCi0r CSAgICBpZiAoZWNobyAnI2lmZGVmIF9fYW1kNjQnOyBlY2hvIElTXzY0QklUX0FSQ0g7IGVjaG8g JyNlbmRpZicpIHwgXAotKwkJKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxs KSB8IFwKLSsJCWdyZXAgSVNfNjRCSVRfQVJDSCA+L2Rldi9udWxsCi0rCSAgICB0aGVuCi0rCQlT VU5fQVJDSD0ieDg2XzY0IgotKwkgICAgZmkKLSsJZmkKLSsJZWNobyAke1NVTl9BUkNIfS1wYy1z b2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAotKwlleGl0 IDs7Ci0rICAgIHN1bjQqOlN1bk9TOjYqOiopCi0rCSMgQWNjb3JkaW5nIHRvIGNvbmZpZy5zdWIs IHRoaXMgaXMgdGhlIHByb3BlciB3YXkgdG8gY2Fub25pY2FsaXplCi0rCSMgU3VuT1M2LiAgSGFy ZCB0byBndWVzcyBleGFjdGx5IHdoYXQgU3VuT1M2IHdpbGwgYmUgbGlrZSwgYnV0Ci0rCSMgaXQn cyBsaWtlbHkgdG8gYmUgbW9yZSBsaWtlIFNvbGFyaXMgdGhhbiBTdW5PUzQuCi0rCWVjaG8gc3Bh cmMtc3VuLXNvbGFyaXMzYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydg Ci0rCWV4aXQgOzsKLSsgICAgc3VuNCo6U3VuT1M6KjoqKQotKwljYXNlICJgL3Vzci9iaW4vYXJj aCAta2AiIGluCi0rCSAgICBTZXJpZXMqfFM0KikKLSsJCVVOQU1FX1JFTEVBU0U9YHVuYW1lIC12 YAotKwkJOzsKLSsJZXNhYwotKwkjIEphcGFuZXNlIExhbmd1YWdlIHZlcnNpb25zIGhhdmUgYSB2 ZXJzaW9uIG51bWJlciBsaWtlIGA0LjEuMy1KTCcuCi0rCWVjaG8gc3BhcmMtc3VuLXN1bm9zYGVj aG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvLS9fLydgCi0rCWV4aXQgOzsKLSsgICAgc3Vu Myo6U3VuT1M6KjoqKQotKwllY2hvIG02OGstc3VuLXN1bm9zJHtVTkFNRV9SRUxFQVNFfQotKwll eGl0IDs7Ci0rICAgIHN1bio6Kjo0LjJCU0Q6KikKLSsJVU5BTUVfUkVMRUFTRT1gKHNlZCAxcSAv ZXRjL21vdGQgfCBhd2sgJ3twcmludCBzdWJzdHIoJDUsMSwzKX0nKSAyPi9kZXYvbnVsbGAKLSsJ dGVzdCAieCR7VU5BTUVfUkVMRUFTRX0iID0gIngiICYmIFVOQU1FX1JFTEVBU0U9MwotKwljYXNl ICJgL2Jpbi9hcmNoYCIgaW4KLSsJICAgIHN1bjMpCi0rCQllY2hvIG02OGstc3VuLXN1bm9zJHtV TkFNRV9SRUxFQVNFfQotKwkJOzsKLSsJICAgIHN1bjQpCi0rCQllY2hvIHNwYXJjLXN1bi1zdW5v cyR7VU5BTUVfUkVMRUFTRX0KLSsJCTs7Ci0rCWVzYWMKLSsJZXhpdCA7OwotKyAgICBhdXNocDpT dW5PUzoqOiopCi0rCWVjaG8gc3BhcmMtYXVzcGV4LXN1bm9zJHtVTkFNRV9SRUxFQVNFfQotKwll eGl0IDs7Ci0rICAgICMgVGhlIHNpdHVhdGlvbiBmb3IgTWlOVCBpcyBhIGxpdHRsZSBjb25mdXNp bmcuICBUaGUgbWFjaGluZSBuYW1lCi0rICAgICMgY2FuIGJlIHZpcnR1YWxseSBldmVyeXRoaW5n IChldmVyeXRoaW5nIHdoaWNoIGlzIG5vdAotKyAgICAjICJhdGFyaXN0IiBvciAiYXRhcmlzdGUi IGF0IGxlYXN0IHNob3VsZCBoYXZlIGEgcHJvY2Vzc29yCi0rICAgICMgPiBtNjgwMDApLiAgVGhl IHN5c3RlbSBuYW1lIHJhbmdlcyBmcm9tICJNaU5UIiBvdmVyICJGcmVlTWlOVCIKLSsgICAgIyB0 byB0aGUgbG93ZXJjYXNlIHZlcnNpb24gIm1pbnQiIChvciAiZnJlZW1pbnQiKS4gIEZpbmFsbHkK LSsgICAgIyB0aGUgc3lzdGVtIG5hbWUgIlRPUyIgZGVub3RlcyBhIHN5c3RlbSB3aGljaCBpcyBh Y3R1YWxseSBub3QKLSsgICAgIyBNaU5ULiAgQnV0IE1pTlQgaXMgZG93bndhcmQgY29tcGF0aWJs ZSB0byBUT1MsIHNvIHRoaXMgc2hvdWxkCi0rICAgICMgYmUgbm8gcHJvYmxlbS4KLSsgICAgYXRh cmlzdFtlXToqTWlOVDoqOiogfCBhdGFyaXN0W2VdOiptaW50Oio6KiB8IGF0YXJpc3RbZV06KlRP UzoqOiopCi0rICAgICAgICBlY2hvIG02OGstYXRhcmktbWludCR7VU5BTUVfUkVMRUFTRX0KLSsJ ZXhpdCA7OwotKyAgICBhdGFyaSo6Kk1pTlQ6KjoqIHwgYXRhcmkqOiptaW50Oio6KiB8IGF0YXJp c3RbZV06KlRPUzoqOiopCi0rCWVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQot KyAgICAgICAgZXhpdCA7OwotKyAgICAqZmFsY29uKjoqTWlOVDoqOiogfCAqZmFsY29uKjoqbWlu dDoqOiogfCAqZmFsY29uKjoqVE9TOio6KikKLSsgICAgICAgIGVjaG8gbTY4ay1hdGFyaS1taW50 JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIG1pbGFuKjoqTWlOVDoqOiogfCBtaWxh bio6Km1pbnQ6KjoqIHwgKm1pbGFuKjoqVE9TOio6KikKLSsgICAgICAgIGVjaG8gbTY4ay1taWxh bi1taW50JHtVTkFNRV9SRUxFQVNFfQotKyAgICAgICAgZXhpdCA7OwotKyAgICBoYWRlcyo6Kk1p TlQ6KjoqIHwgaGFkZXMqOiptaW50Oio6KiB8ICpoYWRlcyo6KlRPUzoqOiopCi0rICAgICAgICBl Y2hvIG02OGstaGFkZXMtbWludCR7VU5BTUVfUkVMRUFTRX0KLSsgICAgICAgIGV4aXQgOzsKLSsg ICAgKjoqTWlOVDoqOiogfCAqOiptaW50Oio6KiB8ICo6KlRPUzoqOiopCi0rICAgICAgICBlY2hv IG02OGstdW5rbm93bi1taW50JHtVTkFNRV9SRUxFQVNFfQotKyAgICAgICAgZXhpdCA7OwotKyAg ICBtNjhrOm1hY2h0ZW46KjoqKQotKwllY2hvIG02OGstYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVM RUFTRX0KLSsJZXhpdCA7OwotKyAgICBwb3dlcnBjOm1hY2h0ZW46KjoqKQotKwllY2hvIHBvd2Vy cGMtYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBSSVNDKjpN YWNoOio6KikKLSsJZWNobyBtaXBzLWRlYy1tYWNoX2JzZDQuMwotKwlleGl0IDs7Ci0rICAgIFJJ U0MqOlVMVFJJWDoqOiopCi0rCWVjaG8gbWlwcy1kZWMtdWx0cml4JHtVTkFNRV9SRUxFQVNFfQot KwlleGl0IDs7Ci0rICAgIFZBWCo6VUxUUklYKjoqOiopCi0rCWVjaG8gdmF4LWRlYy11bHRyaXgk e1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgMjAyMDpDTElYOio6KiB8IDI0MzA6Q0xJ WDoqOiopCi0rCWVjaG8gY2xpcHBlci1pbnRlcmdyYXBoLWNsaXgke1VOQU1FX1JFTEVBU0V9Ci0r CWV4aXQgOzsKLSsgICAgbWlwczoqOio6VU1JUFMgfCBtaXBzOio6KjpSSVNDb3MpCi0rCWV2YWwg JHNldF9jY19mb3JfYnVpbGQKLSsJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLSsjaWZk ZWYgX19jcGx1c3BsdXMKLSsjaW5jbHVkZSA8c3RkaW8uaD4gIC8qIGZvciBwcmludGYoKSBwcm90 b3R5cGUgKi8KLSsJaW50IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKLSsjZWxzZQot KwlpbnQgbWFpbiAoYXJnYywgYXJndikgaW50IGFyZ2M7IGNoYXIgKmFyZ3ZbXTsgewotKyNlbmRp ZgotKwkjaWYgZGVmaW5lZCAoaG9zdF9taXBzKSAmJiBkZWZpbmVkIChNSVBTRUIpCi0rCSNpZiBk ZWZpbmVkIChTWVNUWVBFX1NZU1YpCi0rCSAgcHJpbnRmICgibWlwcy1taXBzLXJpc2NvcyVzc3lz dlxuIiwgYXJndlsxXSk7IGV4aXQgKDApOwotKwkjZW5kaWYKLSsJI2lmIGRlZmluZWQgKFNZU1RZ UEVfU1ZSNCkKLSsJICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNzdnI0XG4iLCBhcmd2WzFd KTsgZXhpdCAoMCk7Ci0rCSNlbmRpZgotKwkjaWYgZGVmaW5lZCAoU1lTVFlQRV9CU0Q0MykgfHwg ZGVmaW5lZChTWVNUWVBFX0JTRCkKLSsJICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNic2Rc biIsIGFyZ3ZbMV0pOyBleGl0ICgwKTsKLSsJI2VuZGlmCi0rCSNlbmRpZgotKwkgIGV4aXQgKC0x KTsKLSsJfQotK0VPRgotKwkkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAmJgotKwkg IGR1bW15YXJnPWBlY2hvICIke1VOQU1FX1JFTEVBU0V9IiB8IHNlZCAtbiAncy9cKFswLTldKlwp LiovXDEvcCdgICYmCi0rCSAgU1lTVEVNX05BTUU9YCRkdW1teSAkZHVtbXlhcmdgICYmCi0rCSAg ICB7IGVjaG8gIiRTWVNURU1fTkFNRSI7IGV4aXQ7IH0KLSsJZWNobyBtaXBzLW1pcHMtcmlzY29z JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIE1vdG9yb2xhOlBvd2VyTUFYX09TOio6 KikKLSsJZWNobyBwb3dlcnBjLW1vdG9yb2xhLXBvd2VybWF4Ci0rCWV4aXQgOzsKLSsgICAgTW90 b3JvbGE6Kjo0LjM6UEw4LSopCi0rCWVjaG8gcG93ZXJwYy1oYXJyaXMtcG93ZXJtYXgKLSsJZXhp dCA7OwotKyAgICBOaWdodF9IYXdrOio6KjpQb3dlck1BWF9PUyB8IFN5bmVyZ3k6UG93ZXJNQVhf T1M6KjoqKQotKwllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VybWF4Ci0rCWV4aXQgOzsKLSsgICAg TmlnaHRfSGF3azpQb3dlcl9VTklYOio6KikKLSsJZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcnVu aXgKLSsJZXhpdCA7OwotKyAgICBtODhrOkNYL1VYOjcqOiopCi0rCWVjaG8gbTg4ay1oYXJyaXMt Y3h1eDcKLSsJZXhpdCA7OwotKyAgICBtODhrOio6NCo6UjQqKQotKwllY2hvIG04OGstbW90b3Jv bGEtc3lzdjQKLSsJZXhpdCA7OwotKyAgICBtODhrOio6Myo6UjMqKQotKwllY2hvIG04OGstbW90 b3JvbGEtc3lzdjMKLSsJZXhpdCA7OwotKyAgICBBVmlpT046ZGd1eDoqOiopCi0rICAgICAgICAj IERHL1VYIHJldHVybnMgQVZpaU9OIGZvciBhbGwgYXJjaGl0ZWN0dXJlcwotKyAgICAgICAgVU5B TUVfUFJPQ0VTU09SPWAvdXNyL2Jpbi91bmFtZSAtcGAKLSsJaWYgWyAkVU5BTUVfUFJPQ0VTU09S ID0gbWM4ODEwMCBdIHx8IFsgJFVOQU1FX1BST0NFU1NPUiA9IG1jODgxMTAgXQotKwl0aGVuCi0r CSAgICBpZiBbICR7VEFSR0VUX0JJTkFSWV9JTlRFUkZBQ0V9eCA9IG04OGtkZ3V4ZWxmeCBdIHx8 IFwKLSsJICAgICAgIFsgJHtUQVJHRVRfQklOQVJZX0lOVEVSRkFDRX14ID0geCBdCi0rCSAgICB0 aGVuCi0rCQllY2hvIG04OGstZGctZGd1eCR7VU5BTUVfUkVMRUFTRX0KLSsJICAgIGVsc2UKLSsJ CWVjaG8gbTg4ay1kZy1kZ3V4YmNzJHtVTkFNRV9SRUxFQVNFfQotKwkgICAgZmkKLSsJZWxzZQot KwkgICAgZWNobyBpNTg2LWRnLWRndXgke1VOQU1FX1JFTEVBU0V9Ci0rCWZpCi0rIAlleGl0IDs7 Ci0rICAgIE04OCo6RG9scGhpbk9TOio6KikJIyBEb2xwaGluT1MgKFNWUjMpCi0rCWVjaG8gbTg4 ay1kb2xwaGluLXN5c3YzCi0rCWV4aXQgOzsKLSsgICAgTTg4KjoqOlIzKjoqKQotKwkjIERlbHRh IDg4ayBzeXN0ZW0gcnVubmluZyBTVlIzCi0rCWVjaG8gbTg4ay1tb3Rvcm9sYS1zeXN2MwotKwll eGl0IDs7Ci0rICAgIFhEODgqOio6KjoqKSAjIFRla3Ryb25peCBYRDg4IHN5c3RlbSBydW5uaW5n IFVUZWtWIChTVlIzKQotKwllY2hvIG04OGstdGVrdHJvbml4LXN5c3YzCi0rCWV4aXQgOzsKLSsg ICAgVGVrNDNbMC05XVswLTldOlVUZWs6KjoqKSAjIFRla3Ryb25peCA0MzAwIHN5c3RlbSBydW5u aW5nIFVUZWsgKEJTRCkKLSsJZWNobyBtNjhrLXRla3Ryb25peC1ic2QKLSsJZXhpdCA7OwotKyAg ICAqOklSSVgqOio6KikKLSsJZWNobyBtaXBzLXNnaS1pcml4YGVjaG8gJHtVTkFNRV9SRUxFQVNF fXxzZWQgLWUgJ3MvLS9fL2cnYAotKwlleGl0IDs7Ci0rICAgID8/Pz8/Pz8/OkFJWD86WzEyXS4x OjIpICAgIyBBSVggMi4yLjEgb3IgQUlYIDIuMS4xIGlzIFJUL1BDIEFJWC4KLSsJZWNobyByb21w LWlibS1haXggICAgICMgdW5hbWUgLW0gZ2l2ZXMgYW4gOCBoZXgtY29kZSBDUFUgaWQKLSsJZXhp dCA7OyAgICAgICAgICAgICAgICMgTm90ZSB0aGF0OiBlY2hvICInYHVuYW1lIC1zYCciIGdpdmVz ICdBSVggJwotKyAgICBpKjg2OkFJWDoqOiopCi0rCWVjaG8gaTM4Ni1pYm0tYWl4Ci0rCWV4aXQg OzsKLSsgICAgaWE2NDpBSVg6KjoqKQotKwlpZiBbIC14IC91c3IvYmluL29zbGV2ZWwgXSA7IHRo ZW4KLSsJCUlCTV9SRVY9YC91c3IvYmluL29zbGV2ZWxgCi0rCWVsc2UKLSsJCUlCTV9SRVY9JHtV TkFNRV9WRVJTSU9OfS4ke1VOQU1FX1JFTEVBU0V9Ci0rCWZpCi0rCWVjaG8gJHtVTkFNRV9NQUNI SU5FfS1pYm0tYWl4JHtJQk1fUkVWfQotKwlleGl0IDs7Ci0rICAgICo6QUlYOjI6MykKLSsJaWYg Z3JlcCBib3MzMjUgL3Vzci9pbmNsdWRlL3N0ZGlvLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0r CQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCQlzZWQgJ3MvXgkJLy8nIDw8IEVPRiA+JGR1bW15 LmMKLSsJCSNpbmNsdWRlIDxzeXMvc3lzdGVtY2ZnLmg+Ci0rCi0rCQltYWluKCkKLSsJCQl7Ci0r CQkJaWYgKCFfX3Bvd2VyX3BjKCkpCi0rCQkJCWV4aXQoMSk7Ci0rCQkJcHV0cygicG93ZXJwYy1p Ym0tYWl4My4yLjUiKTsKLSsJCQlleGl0KDApOwotKwkJCX0KLStFT0YKLSsJCWlmICRDQ19GT1Jf QlVJTEQgLW8gJGR1bW15ICRkdW1teS5jICYmIFNZU1RFTV9OQU1FPWAkZHVtbXlgCi0rCQl0aGVu Ci0rCQkJZWNobyAiJFNZU1RFTV9OQU1FIgotKwkJZWxzZQotKwkJCWVjaG8gcnM2MDAwLWlibS1h aXgzLjIuNQotKwkJZmkKLSsJZWxpZiBncmVwIGJvczMyNCAvdXNyL2luY2x1ZGUvc3RkaW8uaCA+ L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJCWVjaG8gcnM2MDAwLWlibS1haXgzLjIuNAotKwllbHNl Ci0rCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yCi0rCWZpCi0rCWV4aXQgOzsKLSsgICAgKjpBSVg6 KjpbNDU2XSkKLSsJSUJNX0NQVV9JRD1gL3Vzci9zYmluL2xzZGV2IC1DIC1jIHByb2Nlc3NvciAt UyBhdmFpbGFibGUgfCBzZWQgMXEgfCBhd2sgJ3sgcHJpbnQgJDEgfSdgCi0rCWlmIC91c3Ivc2Jp bi9sc2F0dHIgLUVsICR7SUJNX0NQVV9JRH0gfCBncmVwICcgUE9XRVInID4vZGV2L251bGwgMj4m MTsgdGhlbgotKwkJSUJNX0FSQ0g9cnM2MDAwCi0rCWVsc2UKLSsJCUlCTV9BUkNIPXBvd2VycGMK LSsJZmkKLSsJaWYgWyAteCAvdXNyL2Jpbi9vc2xldmVsIF0gOyB0aGVuCi0rCQlJQk1fUkVWPWAv dXNyL2Jpbi9vc2xldmVsYAotKwllbHNlCi0rCQlJQk1fUkVWPSR7VU5BTUVfVkVSU0lPTn0uJHtV TkFNRV9SRUxFQVNFfQotKwlmaQotKwllY2hvICR7SUJNX0FSQ0h9LWlibS1haXgke0lCTV9SRVZ9 Ci0rCWV4aXQgOzsKLSsgICAgKjpBSVg6KjoqKQotKwllY2hvIHJzNjAwMC1pYm0tYWl4Ci0rCWV4 aXQgOzsKLSsgICAgaWJtcnQ6NC40QlNEOip8cm9tcC1pYm06QlNEOiopCi0rCWVjaG8gcm9tcC1p Ym0tYnNkNC40Ci0rCWV4aXQgOzsKLSsgICAgaWJtcnQ6KkJTRDoqfHJvbXAtaWJtOkJTRDoqKSAg ICAgICAgICAgICMgY292ZXJzIFJUL1BDIEJTRCBhbmQKLSsJZWNobyByb21wLWlibS1ic2Qke1VO QU1FX1JFTEVBU0V9ICAgIyA0LjMgd2l0aCB1bmFtZSBhZGRlZCB0bwotKwlleGl0IDs7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjIHJlcG9ydDogcm9tcC1pYm0gQlNEIDQuMwotKyAgICAq OkJPU1g6KjoqKQotKwllY2hvIHJzNjAwMC1idWxsLWJvc3gKLSsJZXhpdCA7OwotKyAgICBEUFgv Mj8wMDpCLk8uUy46KjoqKQotKwllY2hvIG02OGstYnVsbC1zeXN2MwotKwlleGl0IDs7Ci0rICAg IDkwMDAvWzM0XT8/OjQuM2JzZDoxLio6KikKLSsJZWNobyBtNjhrLWhwLWJzZAotKwlleGl0IDs7 Ci0rICAgIGhwMzAwOjQuNEJTRDoqOiogfCA5MDAwL1szNF0/Pzo0LjNic2Q6Mi4qOiopCi0rCWVj aG8gbTY4ay1ocC1ic2Q0LjQKLSsJZXhpdCA7OwotKyAgICA5MDAwL1szNDY3OF0/PzpIUC1VWDoq OiopCi0rCUhQVVhfUkVWPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLlsw Ql0qLy8nYAotKwljYXNlICIke1VOQU1FX01BQ0hJTkV9IiBpbgotKwkgICAgOTAwMC8zMT8gKSAg ICAgICAgICAgIEhQX0FSQ0g9bTY4MDAwIDs7Ci0rCSAgICA5MDAwL1szNF0/PyApICAgICAgICAg SFBfQVJDSD1tNjhrIDs7Ci0rCSAgICA5MDAwL1s2NzhdWzAtOV1bMC05XSkKLSsJCWlmIFsgLXgg L3Vzci9iaW4vZ2V0Y29uZiBdOyB0aGVuCi0rCQkgICAgc2NfY3B1X3ZlcnNpb249YC91c3IvYmlu L2dldGNvbmYgU0NfQ1BVX1ZFUlNJT04gMj4vZGV2L251bGxgCi0rICAgICAgICAgICAgICAgICAg ICBzY19rZXJuZWxfYml0cz1gL3Vzci9iaW4vZ2V0Y29uZiBTQ19LRVJORUxfQklUUyAyPi9kZXYv bnVsbGAKLSsgICAgICAgICAgICAgICAgICAgIGNhc2UgIiR7c2NfY3B1X3ZlcnNpb259IiBpbgot KyAgICAgICAgICAgICAgICAgICAgICA1MjMpIEhQX0FSQ0g9ImhwcGExLjAiIDs7ICMgQ1BVX1BB X1JJU0MxXzAKLSsgICAgICAgICAgICAgICAgICAgICAgNTI4KSBIUF9BUkNIPSJocHBhMS4xIiA7 OyAjIENQVV9QQV9SSVNDMV8xCi0rICAgICAgICAgICAgICAgICAgICAgIDUzMikgICAgICAgICAg ICAgICAgICAgICAgIyBDUFVfUEFfUklTQzJfMAotKyAgICAgICAgICAgICAgICAgICAgICAgIGNh c2UgIiR7c2Nfa2VybmVsX2JpdHN9IiBpbgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgMzIp IEhQX0FSQ0g9ImhwcGEyLjBuIiA7OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgNjQpIEhQ X0FSQ0g9ImhwcGEyLjB3IiA7OwotKwkJCSAgJycpIEhQX0FSQ0g9ImhwcGEyLjAiIDs7ICAgIyBI UC1VWCAxMC4yMAotKyAgICAgICAgICAgICAgICAgICAgICAgIGVzYWMgOzsKLSsgICAgICAgICAg ICAgICAgICAgIGVzYWMKLSsJCWZpCi0rCQlpZiBbICIke0hQX0FSQ0h9IiA9ICIiIF07IHRoZW4K LSsJCSAgICBldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCQkgICAgc2VkICdzL14gICAgICAgICAg ICAgIC8vJyA8PCBFT0YgPiRkdW1teS5jCi0rCi0rICAgICAgICAgICAgICAjZGVmaW5lIF9IUFVY X1NPVVJDRQotKyAgICAgICAgICAgICAgI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyAgICAgICAgICAg ICAgI2luY2x1ZGUgPHVuaXN0ZC5oPgotKwotKyAgICAgICAgICAgICAgaW50IG1haW4gKCkKLSsg ICAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgICNpZiBkZWZpbmVkKF9TQ19LRVJORUxfQklU UykKLSsgICAgICAgICAgICAgICAgICBsb25nIGJpdHMgPSBzeXNjb25mKF9TQ19LRVJORUxfQklU Uyk7Ci0rICAgICAgICAgICAgICAjZW5kaWYKLSsgICAgICAgICAgICAgICAgICBsb25nIGNwdSAg PSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJT04pOwotKwotKyAgICAgICAgICAgICAgICAgIHN3aXRj aCAoY3B1KQotKyAgICAgICAgICAgICAgCXsKLSsgICAgICAgICAgICAgIAljYXNlIENQVV9QQV9S SVNDMV8wOiBwdXRzICgiaHBwYTEuMCIpOyBicmVhazsKLSsgICAgICAgICAgICAgIAljYXNlIENQ VV9QQV9SSVNDMV8xOiBwdXRzICgiaHBwYTEuMSIpOyBicmVhazsKLSsgICAgICAgICAgICAgIAlj YXNlIENQVV9QQV9SSVNDMl8wOgotKyAgICAgICAgICAgICAgI2lmIGRlZmluZWQoX1NDX0tFUk5F TF9CSVRTKQotKyAgICAgICAgICAgICAgCSAgICBzd2l0Y2ggKGJpdHMpCi0rICAgICAgICAgICAg ICAJCXsKLSsgICAgICAgICAgICAgIAkJY2FzZSA2NDogcHV0cyAoImhwcGEyLjB3Iik7IGJyZWFr OwotKyAgICAgICAgICAgICAgCQljYXNlIDMyOiBwdXRzICgiaHBwYTIuMG4iKTsgYnJlYWs7Ci0r ICAgICAgICAgICAgICAJCWRlZmF1bHQ6IHB1dHMgKCJocHBhMi4wIik7IGJyZWFrOwotKyAgICAg ICAgICAgICAgCQl9IGJyZWFrOwotKyAgICAgICAgICAgICAgI2Vsc2UgIC8qICFkZWZpbmVkKF9T Q19LRVJORUxfQklUUykgKi8KLSsgICAgICAgICAgICAgIAkgICAgcHV0cyAoImhwcGEyLjAiKTsg YnJlYWs7Ci0rICAgICAgICAgICAgICAjZW5kaWYKLSsgICAgICAgICAgICAgIAlkZWZhdWx0OiBw dXRzICgiaHBwYTEuMCIpOyBicmVhazsKLSsgICAgICAgICAgICAgIAl9Ci0rICAgICAgICAgICAg ICAgICAgZXhpdCAoMCk7Ci0rICAgICAgICAgICAgICB9Ci0rRU9GCi0rCQkgICAgKENDT1BUUz0g JENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgMj4vZGV2L251bGwpICYmIEhQX0FSQ0g9 YCRkdW1teWAKLSsJCSAgICB0ZXN0IC16ICIkSFBfQVJDSCIgJiYgSFBfQVJDSD1ocHBhCi0rCQlm aSA7OwotKwllc2FjCi0rCWlmIFsgJHtIUF9BUkNIfSA9ICJocHBhMi4wdyIgXQotKwl0aGVuCi0r CSAgICBldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCi0rCSAgICAjIGhwcGEyLjB3LWhwLWhwdXgq IGhhcyBhIDY0LWJpdCBrZXJuZWwgYW5kIGEgY29tcGlsZXIgZ2VuZXJhdGluZwotKwkgICAgIyAz Mi1iaXQgY29kZS4gIGhwcGE2NC1ocC1ocHV4KiBoYXMgdGhlIHNhbWUga2VybmVsIGFuZCBhIGNv bXBpbGVyCi0rCSAgICAjIGdlbmVyYXRpbmcgNjQtYml0IGNvZGUuICBHTlUgYW5kIEhQIHVzZSBk aWZmZXJlbnQgbm9tZW5jbGF0dXJlOgotKwkgICAgIwotKwkgICAgIyAkIENDX0ZPUl9CVUlMRD1j YyAuL2NvbmZpZy5ndWVzcwotKwkgICAgIyA9PiBocHBhMi4wdy1ocC1ocHV4MTEuMjMKLSsJICAg ICMgJCBDQ19GT1JfQlVJTEQ9ImNjICtEQTIuMHciIC4vY29uZmlnLmd1ZXNzCi0rCSAgICAjID0+ IGhwcGE2NC1ocC1ocHV4MTEuMjMKLSsKLSsJICAgIGlmIGVjaG8gX19MUDY0X18gfCAoQ0NPUFRT PSAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwpIHwKLSsJCWdyZXAgLXEgX19MUDY0X18K LSsJICAgIHRoZW4KLSsJCUhQX0FSQ0g9ImhwcGEyLjB3IgotKwkgICAgZWxzZQotKwkJSFBfQVJD SD0iaHBwYTY0IgotKwkgICAgZmkKLSsJZmkKLSsJZWNobyAke0hQX0FSQ0h9LWhwLWhwdXgke0hQ VVhfUkVWfQotKwlleGl0IDs7Ci0rICAgIGlhNjQ6SFAtVVg6KjoqKQotKwlIUFVYX1JFVj1gZWNo byAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi5bMEJdKi8vJ2AKLSsJZWNobyBpYTY0 LWhwLWhwdXgke0hQVVhfUkVWfQotKwlleGl0IDs7Ci0rICAgIDMwNTAqOkhJLVVYOio6KikKLSsJ ZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYwot KwkjaW5jbHVkZSA8dW5pc3RkLmg+Ci0rCWludAotKwltYWluICgpCi0rCXsKLSsJICBsb25nIGNw dSA9IHN5c2NvbmYgKF9TQ19DUFVfVkVSU0lPTik7Ci0rCSAgLyogVGhlIG9yZGVyIG1hdHRlcnMs IGJlY2F1c2UgQ1BVX0lTX0hQX01DNjhLIGVycm9uZW91c2x5IHJldHVybnMKLSsJICAgICB0cnVl IGZvciBDUFVfUEFfUklTQzFfMC4gIENQVV9JU19QQV9SSVNDIHJldHVybnMgY29ycmVjdAotKwkg ICAgIHJlc3VsdHMsIGhvd2V2ZXIuICAqLwotKwkgIGlmIChDUFVfSVNfUEFfUklTQyAoY3B1KSkK LSsJICAgIHsKLSsJICAgICAgc3dpdGNoIChjcHUpCi0rCQl7Ci0rCQkgIGNhc2UgQ1BVX1BBX1JJ U0MxXzA6IHB1dHMgKCJocHBhMS4wLWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKLSsJCSAgY2Fz ZSBDUFVfUEFfUklTQzFfMTogcHV0cyAoImhwcGExLjEtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFr OwotKwkJICBjYXNlIENQVV9QQV9SSVNDMl8wOiBwdXRzICgiaHBwYTIuMC1oaXRhY2hpLWhpdXh3 ZTIiKTsgYnJlYWs7Ci0rCQkgIGRlZmF1bHQ6IHB1dHMgKCJocHBhLWhpdGFjaGktaGl1eHdlMiIp OyBicmVhazsKLSsJCX0KLSsJICAgIH0KLSsJICBlbHNlIGlmIChDUFVfSVNfSFBfTUM2OEsgKGNw dSkpCi0rCSAgICBwdXRzICgibTY4ay1oaXRhY2hpLWhpdXh3ZTIiKTsKLSsJICBlbHNlIHB1dHMg KCJ1bmtub3duLWhpdGFjaGktaGl1eHdlMiIpOwotKwkgIGV4aXQgKDApOwotKwl9Ci0rRU9GCi0r CSRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jICYmIFNZU1RFTV9OQU1FPWAkZHVtbXlg ICYmCi0rCQl7IGVjaG8gIiRTWVNURU1fTkFNRSI7IGV4aXQ7IH0KLSsJZWNobyB1bmtub3duLWhp dGFjaGktaGl1eHdlMgotKwlleGl0IDs7Ci0rICAgIDkwMDAvNz8/OjQuM2JzZDoqOiogfCA5MDAw Lzg/Wzc5XTo0LjNic2Q6KjoqICkKLSsJZWNobyBocHBhMS4xLWhwLWJzZAotKwlleGl0IDs7Ci0r ICAgIDkwMDAvOD8/OjQuM2JzZDoqOiopCi0rCWVjaG8gaHBwYTEuMC1ocC1ic2QKLSsJZXhpdCA7 OwotKyAgICAqOT8/KjpNUEUvaVg6KjoqIHwgKjMwMDAqOk1QRS9pWDoqOiopCi0rCWVjaG8gaHBw YTEuMC1ocC1tcGVpeAotKwlleGl0IDs7Ci0rICAgIGhwNz8/Ok9TRjE6KjoqIHwgaHA4P1s3OV06 T1NGMToqOiogKQotKwllY2hvIGhwcGExLjEtaHAtb3NmCi0rCWV4aXQgOzsKLSsgICAgaHA4Pz86 T1NGMToqOiopCi0rCWVjaG8gaHBwYTEuMC1ocC1vc2YKLSsJZXhpdCA7OwotKyAgICBpKjg2Ok9T RjE6KjoqKQotKwlpZiBbIC14IC91c3Ivc2Jpbi9zeXN2ZXJzaW9uIF0gOyB0aGVuCi0rCSAgICBl Y2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1vc2YxbWsKLSsJZWxzZQotKwkgICAgZWNobyAk e1VOQU1FX01BQ0hJTkV9LXVua25vd24tb3NmMQotKwlmaQotKwlleGl0IDs7Ci0rICAgIHBhcmlz Yyo6TGl0ZXMqOio6KikKLSsJZWNobyBocHBhMS4xLWhwLWxpdGVzCi0rCWV4aXQgOzsKLSsgICAg QzEqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMSo6KikKLSsJZWNobyBjMS1jb252 ZXgtYnNkCi0rICAgICAgICBleGl0IDs7Ci0rICAgIEMyKjpDb252ZXhPUzoqOiogfCBjb252ZXg6 Q29udmV4T1M6QzIqOiopCi0rCWlmIGdldHN5c2luZm8gLWYgc2NhbGFyX2FjYwotKwl0aGVuIGVj aG8gYzMyLWNvbnZleC1ic2QKLSsJZWxzZSBlY2hvIGMyLWNvbnZleC1ic2QKLSsJZmkKLSsgICAg ICAgIGV4aXQgOzsKLSsgICAgQzM0KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzM0 KjoqKQotKwllY2hvIGMzNC1jb252ZXgtYnNkCi0rICAgICAgICBleGl0IDs7Ci0rICAgIEMzOCo6 Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMzOCo6KikKLSsJZWNobyBjMzgtY29udmV4 LWJzZAotKyAgICAgICAgZXhpdCA7OwotKyAgICBDNCo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNv bnZleE9TOkM0KjoqKQotKwllY2hvIGM0LWNvbnZleC1ic2QKLSsgICAgICAgIGV4aXQgOzsKLSsg ICAgQ1JBWSpZLU1QOio6KjoqKQotKwllY2hvIHltcC1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFT RX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJwotKwlleGl0IDs7Ci0rICAgIENSQVkqW0EtWl05 MDoqOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LWNyYXktdW5pY29zJHtVTkFNRV9SRUxF QVNFfSBcCi0rCXwgc2VkIC1lICdzL0NSQVkuKlwoW0EtWl05MFwpL1wxLycgXAotKwkgICAgICAt ZSB5L0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaL2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6 LyBcCi0rCSAgICAgIC1lICdzL1wuW14uXSokLy5YLycKLSsJZXhpdCA7OwotKyAgICBDUkFZKlRT Oio6KjoqKQotKwllY2hvIHQ5MC1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUg J3MvXC5bXi5dKiQvLlgvJwotKwlleGl0IDs7Ci0rICAgIENSQVkqVDNFOio6KjoqKQotKwllY2hv IGFscGhhZXY1LWNyYXktdW5pY29zbWske1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14u XSokLy5YLycKLSsJZXhpdCA7OwotKyAgICBDUkFZKlNWMToqOio6KikKLSsJZWNobyBzdjEtY3Jh eS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKLSsJZXhp dCA7OwotKyAgICAqOlVOSUNPUy9tcDoqOiopCi0rCWVjaG8gY3JheW52LWNyYXktdW5pY29zbXAk e1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKLSsJZXhpdCA7OwotKyAg ICBGMzBbMDFdOlVOSVhfU3lzdGVtX1Y6KjoqIHwgRjcwMDpVTklYX1N5c3RlbV9WOio6KikKLSsJ RlVKSVRTVV9QUk9DPWB1bmFtZSAtbSB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicg J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6J2AKLSsgICAgICAgIEZVSklUU1VfU1lTPWB1bmFt ZSAtcCB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3Bx cnN0dXZ3eHl6JyB8IHNlZCAtZSAncy9cLy8vJ2AKLSsgICAgICAgIEZVSklUU1VfUkVMPWBlY2hv ICR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvIC9fLydgCi0rICAgICAgICBlY2hvICIke0ZV SklUU1VfUFJPQ30tZnVqaXRzdS0ke0ZVSklUU1VfU1lTfSR7RlVKSVRTVV9SRUx9IgotKyAgICAg ICAgZXhpdCA7OwotKyAgICA1MDAwOlVOSVhfU3lzdGVtX1Y6NC4qOiopCi0rICAgICAgICBGVUpJ VFNVX1NZUz1gdW5hbWUgLXAgfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNk ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvXC8vLydgCi0rICAgICAgICBGVUpJ VFNVX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNU VVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzLyAvXy8nYAot KyAgICAgICAgZWNobyAic3BhcmMtZnVqaXRzdS0ke0ZVSklUU1VfU1lTfSR7RlVKSVRTVV9SRUx9 IgotKwlleGl0IDs7Ci0rICAgIGkqODY6QlNELzM4NjoqOiogfCBpKjg2OkJTRC9PUzoqOiogfCAq OkFzY2VuZFwgRW1iZWRkZWQvT1M6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtYnNk aSR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBzcGFyYyo6QlNEL09TOio6KikKLSsJ ZWNobyBzcGFyYy11bmtub3duLWJzZGkke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAg KjpCU0QvT1M6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1ic2RpJHtVTkFN RV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6RnJlZUJTRDoqOiopCi0rCWNhc2UgJHtVTkFN RV9NQUNISU5FfSBpbgotKwkgICAgcGM5OCkKLSsJCWVjaG8gaTM4Ni11bmtub3duLWZyZWVic2Rg ZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgIDs7Ci0rCSAgICBhbWQ2 NCkKLSsJCWVjaG8geDg2XzY0LXVua25vd24tZnJlZWJzZGBlY2hvICR7VU5BTUVfUkVMRUFTRX18 c2VkIC1lICdzL1stKF0uKi8vJ2AgOzsKLSsJICAgICopCi0rCQllY2hvICR7VU5BTUVfTUFDSElO RX0tdW5rbm93bi1mcmVlYnNkYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4q Ly8nYCA7OwotKwllc2FjCi0rCWV4aXQgOzsKLSsgICAgaSo6Q1lHV0lOKjoqKQotKwllY2hvICR7 VU5BTUVfTUFDSElORX0tcGMtY3lnd2luCi0rCWV4aXQgOzsKLSsgICAgKjpNSU5HVyo6KikKLSsJ ZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1pbmd3MzIKLSsJZXhpdCA7OwotKyAgICBpKjp3aW5k b3dzMzIqOiopCi0rICAgIAkjIHVuYW1lIC1tIGluY2x1ZGVzICItcGMiIG9uIHRoaXMgc3lzdGVt LgotKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LW1pbmd3MzIKLSsJZXhpdCA7OwotKyAgICBp KjpQVyo6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXB3MzIKLSsJZXhpdCA7OwotKyAg ICAqOkludGVyaXgqOiopCi0rICAgIAljYXNlICR7VU5BTUVfTUFDSElORX0gaW4KLSsJICAgIHg4 NikKLSsJCWVjaG8gaTU4Ni1wYy1pbnRlcml4JHtVTkFNRV9SRUxFQVNFfQotKwkJZXhpdCA7Owot KwkgICAgYXV0aGVudGljYW1kIHwgZ2VudWluZWludGVsIHwgRU02NFQpCi0rCQllY2hvIHg4Nl82 NC11bmtub3duLWludGVyaXgke1VOQU1FX1JFTEVBU0V9Ci0rCQlleGl0IDs7Ci0rCSAgICBJQTY0 KQotKwkJZWNobyBpYTY0LXVua25vd24taW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KLSsJCWV4aXQg OzsKLSsJZXNhYyA7OwotKyAgICBbMzQ1XTg2OldpbmRvd3NfOTU6KiB8IFszNDVdODY6V2luZG93 c185ODoqIHwgWzM0NV04NjpXaW5kb3dzX05UOiopCi0rCWVjaG8gaSR7VU5BTUVfTUFDSElORX0t cGMtbWtzCi0rCWV4aXQgOzsKLSsgICAgODY2NDpXaW5kb3dzX05UOiopCi0rCWVjaG8geDg2XzY0 LXBjLW1rcwotKwlleGl0IDs7Ci0rICAgIGkqOldpbmRvd3NfTlQqOiogfCBQZW50aXVtKjpXaW5k b3dzX05UKjoqKQotKwkjIEhvdyBkbyB3ZSBrbm93IGl0J3MgSW50ZXJpeCByYXRoZXIgdGhhbiB0 aGUgZ2VuZXJpYyBQT1NJWCBzdWJzeXN0ZW0/Ci0rCSMgSXQgYWxzbyBjb25mbGljdHMgd2l0aCBw cmUtMi4wIHZlcnNpb25zIG9mIEFUJlQgVVdJTi4gU2hvdWxkIHdlCi0rCSMgVU5BTUVfTUFDSElO RSBiYXNlZCBvbiB0aGUgb3V0cHV0IG9mIHVuYW1lIGluc3RlYWQgb2YgaTM4Nj8KLSsJZWNobyBp NTg2LXBjLWludGVyaXgKLSsJZXhpdCA7OwotKyAgICBpKjpVV0lOKjoqKQotKwllY2hvICR7VU5B TUVfTUFDSElORX0tcGMtdXdpbgotKwlleGl0IDs7Ci0rICAgIGFtZDY0OkNZR1dJTio6KjoqIHwg eDg2XzY0OkNZR1dJTio6KjoqKQotKwllY2hvIHg4Nl82NC11bmtub3duLWN5Z3dpbgotKwlleGl0 IDs7Ci0rICAgIHAqOkNZR1dJTio6KikKLSsJZWNobyBwb3dlcnBjbGUtdW5rbm93bi1jeWd3aW4K LSsJZXhpdCA7OwotKyAgICBwcmVwKjpTdW5PUzo1Lio6KikKLSsJZWNobyBwb3dlcnBjbGUtdW5r bm93bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAot KwlleGl0IDs7Ci0rICAgICo6R05VOio6KikKLSsJIyB0aGUgR05VIHN5c3RlbQotKwllY2hvIGBl Y2hvICR7VU5BTUVfTUFDSElORX18c2VkIC1lICdzLFstL10uKiQsLCdgLXVua25vd24tZ251YGVj aG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MsLy4qJCwsJ2AKLSsJZXhpdCA7OwotKyAgICAq OkdOVS8qOio6KikKLSsJIyBvdGhlciBzeXN0ZW1zIHdpdGggR05VIGxpYmMgYW5kIHVzZXJsYW5k Ci0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWBlY2hvICR7VU5BTUVfU1lTVEVNfSB8 IHNlZCAncyxeW14vXSovLCwnIHwgdHIgJ1tBLVpdJyAnW2Etel0nYGBlY2hvICR7VU5BTUVfUkVM RUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AtZ251Ci0rCWV4aXQgOzsKLSsgICAgaSo4NjpNaW5p eDoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1taW5peAotKwlleGl0IDs7Ci0rICAg IGFscGhhOkxpbnV4Oio6KikKLSsJY2FzZSBgc2VkIC1uICcvXmNwdSBtb2RlbC9zL14uKjogXCgu KlwpL1wxL3AnIDwgL3Byb2MvY3B1aW5mb2AgaW4KLSsJICBFVjUpICAgVU5BTUVfTUFDSElORT1h bHBoYWV2NSA7OwotKwkgIEVWNTYpICBVTkFNRV9NQUNISU5FPWFscGhhZXY1NiA7OwotKwkgIFBD QTU2KSBVTkFNRV9NQUNISU5FPWFscGhhcGNhNTYgOzsKLSsJICBQQ0E1NykgVU5BTUVfTUFDSElO RT1hbHBoYXBjYTU2IDs7Ci0rCSAgRVY2KSAgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjYgOzsKLSsJ ICBFVjY3KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2NjcgOzsKLSsJICBFVjY4KikgVU5BTUVfTUFD SElORT1hbHBoYWV2NjggOzsKLSsgICAgICAgIGVzYWMKLSsJb2JqZHVtcCAtLXByaXZhdGUtaGVh ZGVycyAvYmluL3NoIHwgZ3JlcCAtcSBsZC5zby4xCi0rCWlmIHRlc3QgIiQ/IiA9IDAgOyB0aGVu IExJQkM9ImxpYmMxIiA7IGVsc2UgTElCQz0iIiA7IGZpCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5F fS11bmtub3duLWxpbnV4LWdudSR7TElCQ30KLSsJZXhpdCA7OwotKyAgICBhcm0qOkxpbnV4Oio6 KikKLSsJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwlpZiBlY2hvIF9fQVJNX0VBQklfXyB8ICRD Q19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCBcCi0rCSAgICB8IGdyZXAgLXEgX19BUk1fRUFC SV9fCi0rCXRoZW4KLSsJICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdu dQotKwllbHNlCi0rCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnVl YWJpCi0rCWZpCi0rCWV4aXQgOzsKLSsgICAgYXZyMzIqOkxpbnV4Oio6KikKLSsJZWNobyAke1VO QU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgY3JpczpMaW51 eDoqOiopCi0rCWVjaG8gY3Jpcy1heGlzLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIGNyaXN2 MzI6TGludXg6KjoqKQotKwllY2hvIGNyaXN2MzItYXhpcy1saW51eC1nbnUKLSsJZXhpdCA7Owot KyAgICBmcnY6TGludXg6KjoqKQotKyAgICAJZWNobyBmcnYtdW5rbm93bi1saW51eC1nbnUKLSsJ ZXhpdCA7OwotKyAgICBpKjg2OkxpbnV4Oio6KikKLSsJTElCQz1nbnUKLSsJZXZhbCAkc2V0X2Nj X2Zvcl9idWlsZAotKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYwotKwkjaWZkZWYgX19k aWV0bGliY19fCi0rCUxJQkM9ZGlldGxpYmMKLSsJI2VuZGlmCi0rRU9GCi0rCWV2YWwgYCRDQ19G T1JfQlVJTEQgLUUgJGR1bW15LmMgMj4vZGV2L251bGwgfCBncmVwICdeTElCQydgCi0rCWVjaG8g IiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtJHtMSUJDfSIKLSsJZXhpdCA7OwotKyAgICBpYTY0 OkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0r CWV4aXQgOzsKLSsgICAgbTMycio6TGludXg6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0t dW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBtNjgqOkxpbnV4Oio6KikKLSsJZWNo byAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgbWlw czpMaW51eDoqOiogfCBtaXBzNjQ6TGludXg6KjoqKQotKwlldmFsICRzZXRfY2NfZm9yX2J1aWxk Ci0rCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCi0rCSN1bmRlZiBDUFUKLSsJI3VuZGVm ICR7VU5BTUVfTUFDSElORX0KLSsJI3VuZGVmICR7VU5BTUVfTUFDSElORX1lbAotKwkjaWYgZGVm aW5lZChfX01JUFNFTF9fKSB8fCBkZWZpbmVkKF9fTUlQU0VMKSB8fCBkZWZpbmVkKF9NSVBTRUwp IHx8IGRlZmluZWQoTUlQU0VMKQotKwlDUFU9JHtVTkFNRV9NQUNISU5FfWVsCi0rCSNlbHNlCi0r CSNpZiBkZWZpbmVkKF9fTUlQU0VCX18pIHx8IGRlZmluZWQoX19NSVBTRUIpIHx8IGRlZmluZWQo X01JUFNFQikgfHwgZGVmaW5lZChNSVBTRUIpCi0rCUNQVT0ke1VOQU1FX01BQ0hJTkV9Ci0rCSNl bHNlCi0rCUNQVT0KLSsJI2VuZGlmCi0rCSNlbmRpZgotK0VPRgotKwlldmFsIGAkQ0NfRk9SX0JV SUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgZ3JlcCAnXkNQVSdgCi0rCXRlc3QgeCIke0NQ VX0iICE9IHggJiYgeyBlY2hvICIke0NQVX0tdW5rbm93bi1saW51eC1nbnUiOyBleGl0OyB9Ci0r CTs7Ci0rICAgIG9yMzI6TGludXg6KjoqKQotKwllY2hvIG9yMzItdW5rbm93bi1saW51eC1nbnUK LSsJZXhpdCA7OwotKyAgICBwYWRyZTpMaW51eDoqOiopCi0rCWVjaG8gc3BhcmMtdW5rbm93bi1s aW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBwYXJpc2M2NDpMaW51eDoqOiogfCBocHBhNjQ6TGlu dXg6KjoqKQotKwllY2hvIGhwcGE2NC11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAg IHBhcmlzYzpMaW51eDoqOiogfCBocHBhOkxpbnV4Oio6KikKLSsJIyBMb29rIGZvciBDUFUgbGV2 ZWwKLSsJY2FzZSBgZ3JlcCAnXmNwdVteYS16XSo6JyAvcHJvYy9jcHVpbmZvIDI+L2Rldi9udWxs IHwgY3V0IC1kJyAnIC1mMmAgaW4KLSsJICBQQTcqKSBlY2hvIGhwcGExLjEtdW5rbm93bi1saW51 eC1nbnUgOzsKLSsJICBQQTgqKSBlY2hvIGhwcGEyLjAtdW5rbm93bi1saW51eC1nbnUgOzsKLSsJ ICAqKSAgICBlY2hvIGhwcGEtdW5rbm93bi1saW51eC1nbnUgOzsKLSsJZXNhYwotKwlleGl0IDs7 Ci0rICAgIHBwYzY0OkxpbnV4Oio6KikKLSsJZWNobyBwb3dlcnBjNjQtdW5rbm93bi1saW51eC1n bnUKLSsJZXhpdCA7OwotKyAgICBwcGM6TGludXg6KjoqKQotKwllY2hvIHBvd2VycGMtdW5rbm93 bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBzMzkwOkxpbnV4Oio6KiB8IHMzOTB4OkxpbnV4 Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LWlibS1saW51eAotKwlleGl0IDs7Ci0rICAg IHNoNjQqOkxpbnV4Oio6KikKLSsgICAgCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxp bnV4LWdudQotKwlleGl0IDs7Ci0rICAgIHNoKjpMaW51eDoqOiopCi0rCWVjaG8gJHtVTkFNRV9N QUNISU5FfS11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIHNwYXJjOkxpbnV4Oio6 KiB8IHNwYXJjNjQ6TGludXg6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1s aW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICB2YXg6TGludXg6KjoqKQotKwllY2hvICR7VU5BTUVf TUFDSElORX0tZGVjLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIHg4Nl82NDpMaW51eDoqOiop Ci0rCWVjaG8geDg2XzY0LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgeHRlbnNh KjpMaW51eDoqOiopCi0rICAgIAllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1n bnUKLSsJZXhpdCA7OwotKyAgICBpKjg2OkRZTklYL3B0eDo0KjoqKQotKwkjIHB0eCA0LjAgZG9l cyB1bmFtZSAtcyBjb3JyZWN0bHksIHdpdGggRFlOSVgvcHR4IGluIHRoZXJlLgotKwkjIGVhcmxp ZXIgdmVyc2lvbnMgYXJlIG1lc3NlZCB1cCBhbmQgcHV0IHRoZSBub2RlbmFtZSBpbiBib3RoCi0r CSMgc3lzbmFtZSBhbmQgbm9kZW5hbWUuCi0rCWVjaG8gaTM4Ni1zZXF1ZW50LXN5c3Y0Ci0rCWV4 aXQgOzsKLSsgICAgaSo4NjpVTklYX1NWOjQuMk1QOjIuKikKLSsgICAgICAgICMgVW5peHdhcmUg aXMgYW4gb2Zmc2hvb3Qgb2YgU1ZSNCwgYnV0IGl0IGhhcyBpdHMgb3duIHZlcnNpb24KLSsgICAg ICAgICMgbnVtYmVyIHNlcmllcyBzdGFydGluZyB3aXRoIDIuLi4KLSsgICAgICAgICMgSSBhbSBu b3QgcG9zaXRpdmUgdGhhdCBvdGhlciBTVlI0IHN5c3RlbXMgd29uJ3QgbWF0Y2ggdGhpcywKLSsJ IyBJIGp1c3QgaGF2ZSB0byBob3BlLiAgLS0gcm1zLgotKyAgICAgICAgIyBVc2Ugc3lzdjQuMnV3 Li4uIHNvIHRoYXQgc3lzdjQqIG1hdGNoZXMgaXQuCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1w Yy1zeXN2NC4ydXcke1VOQU1FX1ZFUlNJT059Ci0rCWV4aXQgOzsKLSsgICAgaSo4NjpPUy8yOio6 KikKLSsJIyBJZiB3ZSB3ZXJlIGFibGUgdG8gZmluZCBgdW5hbWUnLCB0aGVuIEVNWCBVbml4IGNv bXBhdGliaWxpdHkKLSsJIyBpcyBwcm9iYWJseSBpbnN0YWxsZWQuCi0rCWVjaG8gJHtVTkFNRV9N QUNISU5FfS1wYy1vczItZW14Ci0rCWV4aXQgOzsKLSsgICAgaSo4NjpYVFMtMzAwOio6U1RPUCkK LSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc3RvcAotKwlleGl0IDs7Ci0rICAgIGkq ODY6YXRoZW9zOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYXRoZW9zCi0r CWV4aXQgOzsKLSsgICAgaSo4NjpzeWxsYWJsZToqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5F fS1wYy1zeWxsYWJsZQotKwlleGl0IDs7Ci0rICAgIGkqODY6THlueE9TOjIuKjoqIHwgaSo4NjpM eW54T1M6My5bMDFdKjoqIHwgaSo4NjpMeW54T1M6NC5bMDJdKjoqKQotKwllY2hvIGkzODYtdW5r bm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgaSo4NjoqRE9TOio6 KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1zZG9zZGpncHAKLSsJZXhpdCA7OwotKyAg ICBpKjg2Oio6NC4qOiogfCBpKjg2OlNZU1RFTV9WOjQuKjoqKQotKwlVTkFNRV9SRUw9YGVjaG8g JHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAncy9cL01QJC8vJ2AKLSsJaWYgZ3JlcCBOb3ZlbGwgL3Vz ci9pbmNsdWRlL2xpbmsuaCA+L2Rldi9udWxsIDI+L2Rldi9udWxsOyB0aGVuCi0rCQllY2hvICR7 VU5BTUVfTUFDSElORX0tdW5pdmVsLXN5c3Yke1VOQU1FX1JFTH0KLSsJZWxzZQotKwkJZWNobyAk e1VOQU1FX01BQ0hJTkV9LXBjLXN5c3Yke1VOQU1FX1JFTH0KLSsJZmkKLSsJZXhpdCA7OwotKyAg ICBpKjg2Oio6NTpbNjc4XSopCi0rICAgIAkjIFVuaXhXYXJlIDcueCwgT3BlblVOSVggYW5kIE9w ZW5TZXJ2ZXIgNi4KLSsJY2FzZSBgL2Jpbi91bmFtZSAtWCB8IGdyZXAgIl5NYWNoaW5lImAgaW4K LSsJICAgICo0ODYqKQkgICAgIFVOQU1FX01BQ0hJTkU9aTQ4NiA7OwotKwkgICAgKlBlbnRpdW0p CSAgICAgVU5BTUVfTUFDSElORT1pNTg2IDs7Ci0rCSAgICAqUGVudCp8KkNlbGVyb24pIFVOQU1F X01BQ0hJTkU9aTY4NiA7OwotKwllc2FjCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3du LXN5c3Yke1VOQU1FX1JFTEVBU0V9JHtVTkFNRV9TWVNURU19JHtVTkFNRV9WRVJTSU9OfQotKwll eGl0IDs7Ci0rICAgIGkqODY6KjozLjI6KikKLSsJaWYgdGVzdCAtZiAvdXNyL29wdGlvbnMvY2Iu bmFtZTsgdGhlbgotKwkJVU5BTUVfUkVMPWBzZWQgLW4gJ3MvLipWZXJzaW9uIC8vcCcgPC91c3Iv b3B0aW9ucy9jYi5uYW1lYAotKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWlzYyRVTkFNRV9S RUwKLSsJZWxpZiAvYmluL3VuYW1lIC1YIDI+L2Rldi9udWxsID4vZGV2L251bGwgOyB0aGVuCi0r CQlVTkFNRV9SRUw9YCgvYmluL3VuYW1lIC1YfGdyZXAgUmVsZWFzZXxzZWQgLWUgJ3MvLio9IC8v JylgCi0rCQkoL2Jpbi91bmFtZSAtWHxncmVwIGk4MDQ4NiA+L2Rldi9udWxsKSAmJiBVTkFNRV9N QUNISU5FPWk0ODYKLSsJCSgvYmluL3VuYW1lIC1YfGdyZXAgJ15NYWNoaW5lLipQZW50aXVtJyA+ L2Rldi9udWxsKSBcCi0rCQkJJiYgVU5BTUVfTUFDSElORT1pNTg2Ci0rCQkoL2Jpbi91bmFtZSAt WHxncmVwICdeTWFjaGluZS4qUGVudCAqSUknID4vZGV2L251bGwpIFwKLSsJCQkmJiBVTkFNRV9N QUNISU5FPWk2ODYKLSsJCSgvYmluL3VuYW1lIC1YfGdyZXAgJ15NYWNoaW5lLipQZW50aXVtIFBy bycgPi9kZXYvbnVsbCkgXAotKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgotKwkJZWNobyAke1VO QU1FX01BQ0hJTkV9LXBjLXNjbyRVTkFNRV9SRUwKLSsJZWxzZQotKwkJZWNobyAke1VOQU1FX01B Q0hJTkV9LXBjLXN5c3YzMgotKwlmaQotKwlleGl0IDs7Ci0rICAgIHBjOio6KjoqKQotKwkjIExl ZnQgaGVyZSBmb3IgY29tcGF0aWJpbGl0eToKLSsgICAgICAgICMgdW5hbWUgLW0gcHJpbnRzIGZv ciBESkdQUCBhbHdheXMgJ3BjJywgYnV0IGl0IHByaW50cyBub3RoaW5nIGFib3V0Ci0rICAgICAg ICAjIHRoZSBwcm9jZXNzb3IsIHNvIHdlIHBsYXkgc2FmZSBieSBhc3N1bWluZyBpNTg2LgotKwkj IE5vdGU6IHdoYXRldmVyIHRoaXMgaXMsIGl0IE1VU1QgYmUgdGhlIHNhbWUgYXMgd2hhdCBjb25m aWcuc3ViCi0rCSMgcHJpbnRzIGZvciB0aGUgImRqZ3BwIiBob3N0LCBvciBlbHNlIEdEQiBjb25m aWd1cnkgd2lsbCBkZWNpZGUgdGhhdAotKwkjIHRoaXMgaXMgYSBjcm9zcy1idWlsZC4KLSsJZWNo byBpNTg2LXBjLW1zZG9zZGpncHAKLSsgICAgICAgIGV4aXQgOzsKLSsgICAgSW50ZWw6TWFjaDoz KjoqKQotKwllY2hvIGkzODYtcGMtbWFjaDMKLSsJZXhpdCA7OwotKyAgICBwYXJhZ29uOio6Kjoq KQotKwllY2hvIGk4NjAtaW50ZWwtb3NmMQotKwlleGl0IDs7Ci0rICAgIGk4NjA6Kjo0Lio6Kikg IyBpODYwLVNWUjQKLSsJaWYgZ3JlcCBTdGFyZGVudCAvdXNyL2luY2x1ZGUvc3lzL3VhZG1pbi5o ID4vZGV2L251bGwgMj4mMSA7IHRoZW4KLSsJICBlY2hvIGk4NjAtc3RhcmRlbnQtc3lzdiR7VU5B TUVfUkVMRUFTRX0gIyBTdGFyZGVudCBWaXN0cmEgaTg2MC1TVlI0Ci0rCWVsc2UgIyBBZGQgb3Ro ZXIgaTg2MC1TVlI0IHZlbmRvcnMgYmVsb3cgYXMgdGhleSBhcmUgZGlzY292ZXJlZC4KLSsJICBl Y2hvIGk4NjAtdW5rbm93bi1zeXN2JHtVTkFNRV9SRUxFQVNFfSAgIyBVbmtub3duIGk4NjAtU1ZS NAotKwlmaQotKwlleGl0IDs7Ci0rICAgIG1pbmkqOkNUSVg6U1lTKjU6KikKLSsJIyAibWluaWZy YW1lIgotKwllY2hvIG02ODAxMC1jb252ZXJnZW50LXN5c3YKLSsJZXhpdCA7OwotKyAgICBtYzY4 azpVTklYOlNZU1RFTTU6My41MW0pCi0rCWVjaG8gbTY4ay1jb252ZXJnZW50LXN5c3YKLSsJZXhp dCA7OwotKyAgICBNNjgwPzA6RC1OSVg6NS4zOiopCi0rCWVjaG8gbTY4ay1kaWFiLWRuaXgKLSsJ ZXhpdCA7OwotKyAgICBNNjgqOio6UjNWWzU2NzhdKjoqKQotKwl0ZXN0IC1yIC9zeXNWNjggJiYg eyBlY2hvICdtNjhrLW1vdG9yb2xhLXN5c3YnOyBleGl0OyB9IDs7Ci0rICAgIDNbMzQ1XT8/Oio6 NC4wOjMuMCB8IDNbMzRdPz9BOio6NC4wOjMuMCB8IDNbMzRdPz8sKjoqOjQuMDozLjAgfCAzWzM0 XT8/Lyo6Kjo0LjA6My4wIHwgNDQwMDoqOjQuMDozLjAgfCA0ODUwOio6NC4wOjMuMCB8IFNLQTQw Oio6NC4wOjMuMCB8IFNEUzI6Kjo0LjA6My4wIHwgU0hHMjoqOjQuMDozLjAgfCBTNzUwMSo6Kjo0 LjA6My4wKQotKwlPU19SRUw9JycKLSsJdGVzdCAtciAvZXRjLy5yZWxpZCBcCi0rCSYmIE9TX1JF TD0uYHNlZCAtbiAncy9bXiBdKiBbXiBdKiBcKFswLTldWzAtOV1cKS4qL1wxL3AnIDwgL2V0Yy8u cmVsaWRgCi0rCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCBncmVwIDg2ID4vZGV2L251bGwg XAotKwkgICYmIHsgZWNobyBpNDg2LW5jci1zeXN2NC4zJHtPU19SRUx9OyBleGl0OyB9Ci0rCS9i aW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCAvYmluL2dyZXAgZW50aXVtID4vZGV2L251bGwgXAot KwkgICYmIHsgZWNobyBpNTg2LW5jci1zeXN2NC4zJHtPU19SRUx9OyBleGl0OyB9IDs7Ci0rICAg IDNbMzRdPz86Kjo0LjA6KiB8IDNbMzRdPz8sKjoqOjQuMDoqKQotKyAgICAgICAgL2Jpbi91bmFt ZSAtcCAyPi9kZXYvbnVsbCB8IGdyZXAgODYgPi9kZXYvbnVsbCBcCi0rICAgICAgICAgICYmIHsg ZWNobyBpNDg2LW5jci1zeXN2NDsgZXhpdDsgfSA7OwotKyAgICBOQ1IqOio6NC4yOiogfCBNUFJB Uyo6Kjo0LjI6KikKLSsJT1NfUkVMPScuMycKLSsJdGVzdCAtciAvZXRjLy5yZWxpZCBcCi0rCSAg ICAmJiBPU19SRUw9LmBzZWQgLW4gJ3MvW14gXSogW14gXSogXChbMC05XVswLTldXCkuKi9cMS9w JyA8IC9ldGMvLnJlbGlkYAotKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+ L2Rldi9udWxsIFwKLSsJICAgICYmIHsgZWNobyBpNDg2LW5jci1zeXN2NC4zJHtPU19SRUx9OyBl eGl0OyB9Ci0rCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCAvYmluL2dyZXAgZW50aXVtID4v ZGV2L251bGwgXAotKwkgICAgJiYgeyBlY2hvIGk1ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4 aXQ7IH0KLSsJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IC9iaW4vZ3JlcCBwdGVyb24gPi9k ZXYvbnVsbCBcCi0rCSAgICAmJiB7IGVjaG8gaTU4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhp dDsgfSA7OwotKyAgICBtNjgqOkx5bnhPUzoyLio6KiB8IG02OCo6THlueE9TOjMuMCo6KikKLSsJ ZWNobyBtNjhrLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAg IG1jNjgwMzA6VU5JWF9TeXN0ZW1fVjo0Lio6KikKLSsJZWNobyBtNjhrLWF0YXJpLXN5c3Y0Ci0r CWV4aXQgOzsKLSsgICAgVFNVTkFNSTpMeW54T1M6Mi4qOiopCi0rCWVjaG8gc3BhcmMtdW5rbm93 bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgcnM2MDAwOkx5bnhPUzoy Lio6KikKLSsJZWNobyByczYwMDAtdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9Ci0rCWV4 aXQgOzsKLSsgICAgUG93ZXJQQzpMeW54T1M6Mi4qOiogfCBQb3dlclBDOkx5bnhPUzozLlswMV0q OiogfCBQb3dlclBDOkx5bnhPUzo0LlswMl0qOiopCi0rCWVjaG8gcG93ZXJwYy11bmtub3duLWx5 bnhvcyR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBTTVtCRV1TOlVOSVhfU1Y6Kjoq KQotKwllY2hvIG1pcHMtZGRlLXN5c3Yke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAg Uk0qOlJlbGlhbnRVTklYLSo6KjoqKQotKwllY2hvIG1pcHMtc25pLXN5c3Y0Ci0rCWV4aXQgOzsK LSsgICAgUk0qOlNJTklYLSo6KjoqKQotKwllY2hvIG1pcHMtc25pLXN5c3Y0Ci0rCWV4aXQgOzsK LSsgICAgKjpTSU5JWC0qOio6KikKLSsJaWYgdW5hbWUgLXAgMj4vZGV2L251bGwgPi9kZXYvbnVs bCA7IHRoZW4KLSsJCVVOQU1FX01BQ0hJTkU9YCh1bmFtZSAtcCkgMj4vZGV2L251bGxgCi0rCQll Y2hvICR7VU5BTUVfTUFDSElORX0tc25pLXN5c3Y0Ci0rCWVsc2UKLSsJCWVjaG8gbnMzMmstc25p LXN5c3YKLSsJZmkKLSsJZXhpdCA7OwotKyAgICBQRU5USVVNOio6NC4wKjoqKSAjIFVuaXN5cyBg Q2xlYXJQYXRoIEhNUCBJWCA0MDAwJyBTVlI0L01QIGVmZm9ydAotKyAgICAgICAgICAgICAgICAg ICAgICAjIHNheXMgPFJpY2hhcmQuTS5CYXJ0ZWxAY2NNYWlsLkNlbnN1cy5HT1Y+Ci0rICAgICAg ICBlY2hvIGk1ODYtdW5pc3lzLXN5c3Y0Ci0rICAgICAgICBleGl0IDs7Ci0rICAgICo6VU5JWF9T eXN0ZW1fVjo0KjpGVFgqKQotKwkjIEZyb20gR2VyYWxkIEhld2VzIDxoZXdlc0BvcGVubWFya2V0 LmNvbT4uCi0rCSMgSG93IGFib3V0IGRpZmZlcmVudGlhdGluZyBiZXR3ZWVuIHN0cmF0dXMgYXJj aGl0ZWN0dXJlcz8gLWRqbQotKwllY2hvIGhwcGExLjEtc3RyYXR1cy1zeXN2NAotKwlleGl0IDs7 Ci0rICAgICo6KjoqOkZUWCopCi0rCSMgRnJvbSBzZWFuZkBzd2RjLnN0cmF0dXMuY29tLgotKwll Y2hvIGk4NjAtc3RyYXR1cy1zeXN2NAotKwlleGl0IDs7Ci0rICAgIGkqODY6Vk9TOio6KikKLSsJ IyBGcm9tIFBhdWwuR3JlZW5Ac3RyYXR1cy5jb20uCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1z dHJhdHVzLXZvcwotKwlleGl0IDs7Ci0rICAgICo6Vk9TOio6KikKLSsJIyBGcm9tIFBhdWwuR3Jl ZW5Ac3RyYXR1cy5jb20uCi0rCWVjaG8gaHBwYTEuMS1zdHJhdHVzLXZvcwotKwlleGl0IDs7Ci0r ICAgIG1jNjgqOkEvVVg6KjoqKQotKwllY2hvIG02OGstYXBwbGUtYXV4JHtVTkFNRV9SRUxFQVNF fQotKwlleGl0IDs7Ci0rICAgIG5ld3MqOk5FV1MtT1M6Nio6KikKLSsJZWNobyBtaXBzLXNvbnkt bmV3c29zNgotKwlleGl0IDs7Ci0rICAgIFJbMzRdMDAwOipTeXN0ZW1fVio6KjoqIHwgUjQwMDA6 VU5JWF9TWVNWOio6KiB8IFIqMDAwOlVOSVhfU1Y6KjoqKQotKwlpZiBbIC1kIC91c3IvbmVjIF07 IHRoZW4KLSsJICAgICAgICBlY2hvIG1pcHMtbmVjLXN5c3Yke1VOQU1FX1JFTEVBU0V9Ci0rCWVs c2UKLSsJICAgICAgICBlY2hvIG1pcHMtdW5rbm93bi1zeXN2JHtVTkFNRV9SRUxFQVNFfQotKwlm aQotKyAgICAgICAgZXhpdCA7OwotKyAgICBCZUJveDpCZU9TOio6KikJIyBCZU9TIHJ1bm5pbmcg b24gaGFyZHdhcmUgbWFkZSBieSBCZSwgUFBDIG9ubHkuCi0rCWVjaG8gcG93ZXJwYy1iZS1iZW9z Ci0rCWV4aXQgOzsKLSsgICAgQmVNYWM6QmVPUzoqOiopCSMgQmVPUyBydW5uaW5nIG9uIE1hYyBv ciBNYWMgY2xvbmUsIFBQQyBvbmx5LgotKwllY2hvIHBvd2VycGMtYXBwbGUtYmVvcwotKwlleGl0 IDs7Ci0rICAgIEJlUEM6QmVPUzoqOiopCSMgQmVPUyBydW5uaW5nIG9uIEludGVsIFBDIGNvbXBh dGlibGUuCi0rCWVjaG8gaTU4Ni1wYy1iZW9zCi0rCWV4aXQgOzsKLSsgICAgQmVQQzpIYWlrdToq OiopCSMgSGFpa3UgcnVubmluZyBvbiBJbnRlbCBQQyBjb21wYXRpYmxlLgotKwllY2hvIGk1ODYt cGMtaGFpa3UKLSsJZXhpdCA7OwotKyAgICBTWC00OlNVUEVSLVVYOio6KikKLSsJZWNobyBzeDQt bmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgU1gtNTpTVVBFUi1V WDoqOiopCi0rCWVjaG8gc3g1LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7 Ci0rICAgIFNYLTY6U1VQRVItVVg6KjoqKQotKwllY2hvIHN4Ni1uZWMtc3VwZXJ1eCR7VU5BTUVf UkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBTWC03OlNVUEVSLVVYOio6KikKLSsJZWNobyBzeDct bmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgU1gtODpTVVBFUi1V WDoqOiopCi0rCWVjaG8gc3g4LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7 Ci0rICAgIFNYLThSOlNVUEVSLVVYOio6KikKLSsJZWNobyBzeDhyLW5lYy1zdXBlcnV4JHtVTkFN RV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFBvd2VyKjpSaGFwc29keToqOiopCi0rCWVjaG8g cG93ZXJwYy1hcHBsZS1yaGFwc29keSR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAq OlJoYXBzb2R5Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LWFwcGxlLXJoYXBzb2R5JHtV TkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6RGFyd2luOio6KikKLSsJVU5BTUVfUFJP Q0VTU09SPWB1bmFtZSAtcGAgfHwgVU5BTUVfUFJPQ0VTU09SPXVua25vd24KLSsJY2FzZSAkVU5B TUVfUFJPQ0VTU09SIGluCi0rCSAgICBpMzg2KQotKwkJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAot KwkJaWYgWyAiJENDX0ZPUl9CVUlMRCIgIT0gJ25vX2NvbXBpbGVyX2ZvdW5kJyBdOyB0aGVuCi0r CQkgIGlmIChlY2hvICcjaWZkZWYgX19MUDY0X18nOyBlY2hvIElTXzY0QklUX0FSQ0g7IGVjaG8g JyNlbmRpZicpIHwgXAotKwkJICAgICAgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rl di9udWxsKSB8IFwKLSsJCSAgICAgIGdyZXAgSVNfNjRCSVRfQVJDSCA+L2Rldi9udWxsCi0rCQkg IHRoZW4KLSsJCSAgICAgIFVOQU1FX1BST0NFU1NPUj0ieDg2XzY0IgotKwkJICBmaQotKwkJZmkg OzsKLSsJICAgIHVua25vd24pIFVOQU1FX1BST0NFU1NPUj1wb3dlcnBjIDs7Ci0rCWVzYWMKLSsJ ZWNobyAke1VOQU1FX1BST0NFU1NPUn0tYXBwbGUtZGFyd2luJHtVTkFNRV9SRUxFQVNFfQotKwll eGl0IDs7Ci0rICAgICo6cHJvY250byo6KjoqIHwgKjpRTlg6WzAxMjM0NTY3ODldKjoqKQotKwlV TkFNRV9QUk9DRVNTT1I9YHVuYW1lIC1wYAotKwlpZiB0ZXN0ICIkVU5BTUVfUFJPQ0VTU09SIiA9 ICJ4ODYiOyB0aGVuCi0rCQlVTkFNRV9QUk9DRVNTT1I9aTM4NgotKwkJVU5BTUVfTUFDSElORT1w YwotKwlmaQotKwllY2hvICR7VU5BTUVfUFJPQ0VTU09SfS0ke1VOQU1FX01BQ0hJTkV9LW50by1x bngke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgKjpRTlg6Kjo0KikKLSsJZWNobyBp Mzg2LXBjLXFueAotKwlleGl0IDs7Ci0rICAgIE5TRS0/Ok5PTlNUT1BfS0VSTkVMOio6KikKLSsJ ZWNobyBuc2UtdGFuZGVtLW5zayR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBOU1It PzpOT05TVE9QX0tFUk5FTDoqOiopCi0rCWVjaG8gbnNyLXRhbmRlbS1uc2ske1VOQU1FX1JFTEVB U0V9Ci0rCWV4aXQgOzsKLSsgICAgKjpOb25TdG9wLVVYOio6KikKLSsJZWNobyBtaXBzLWNvbXBh cS1ub25zdG9wdXgKLSsJZXhpdCA7OwotKyAgICBCUzIwMDA6UE9TSVgqOio6KikKLSsJZWNobyBi czIwMDAtc2llbWVucy1zeXN2Ci0rCWV4aXQgOzsKLSsgICAgRFMvKjpVTklYX1N5c3RlbV9WOio6 KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LSR7VU5BTUVfU1lTVEVNfS0ke1VOQU1FX1JFTEVB U0V9Ci0rCWV4aXQgOzsKLSsgICAgKjpQbGFuOToqOiopCi0rCSMgInVuYW1lIC1tIiBpcyBub3Qg Y29uc2lzdGVudCwgc28gdXNlICRjcHV0eXBlIGluc3RlYWQuIDM4NgotKwkjIGlzIGNvbnZlcnRl ZCB0byBpMzg2IGZvciBjb25zaXN0ZW5jeSB3aXRoIG90aGVyIHg4NgotKwkjIG9wZXJhdGluZyBz eXN0ZW1zLgotKwlpZiB0ZXN0ICIkY3B1dHlwZSIgPSAiMzg2IjsgdGhlbgotKwkgICAgVU5BTUVf TUFDSElORT1pMzg2Ci0rCWVsc2UKLSsJICAgIFVOQU1FX01BQ0hJTkU9IiRjcHV0eXBlIgotKwlm aQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1wbGFuOQotKwlleGl0IDs7Ci0rICAg ICo6VE9QUy0xMDoqOiopCi0rCWVjaG8gcGRwMTAtdW5rbm93bi10b3BzMTAKLSsJZXhpdCA7Owot KyAgICAqOlRFTkVYOio6KikKLSsJZWNobyBwZHAxMC11bmtub3duLXRlbmV4Ci0rCWV4aXQgOzsK LSsgICAgS1MxMDpUT1BTLTIwOio6KiB8IEtMMTA6VE9QUy0yMDoqOiogfCBUWVBFNDpUT1BTLTIw Oio6KikKLSsJZWNobyBwZHAxMC1kZWMtdG9wczIwCi0rCWV4aXQgOzsKLSsgICAgWEtMLTE6VE9Q Uy0yMDoqOiogfCBUWVBFNTpUT1BTLTIwOio6KikKLSsJZWNobyBwZHAxMC14a2wtdG9wczIwCi0r CWV4aXQgOzsKLSsgICAgKjpUT1BTLTIwOio6KikKLSsJZWNobyBwZHAxMC11bmtub3duLXRvcHMy MAotKwlleGl0IDs7Ci0rICAgICo6SVRTOio6KikKLSsJZWNobyBwZHAxMC11bmtub3duLWl0cwot KwlleGl0IDs7Ci0rICAgIFNFSToqOio6U0VJVVgpCi0rICAgICAgICBlY2hvIG1pcHMtc2VpLXNl aXV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6RHJhZ29uRmx5Oio6KikKLSsJ ZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tZHJhZ29uZmx5YGVjaG8gJHtVTkFNRV9SRUxF QVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYAotKwlleGl0IDs7Ci0rICAgICo6KlZNUzoqOiopCi0r ICAgIAlVTkFNRV9NQUNISU5FPWAodW5hbWUgLXApIDI+L2Rldi9udWxsYAotKwljYXNlICIke1VO QU1FX01BQ0hJTkV9IiBpbgotKwkgICAgQSopIGVjaG8gYWxwaGEtZGVjLXZtcyA7IGV4aXQgOzsK LSsJICAgIEkqKSBlY2hvIGlhNjQtZGVjLXZtcyA7IGV4aXQgOzsKLSsJICAgIFYqKSBlY2hvIHZh eC1kZWMtdm1zIDsgZXhpdCA7OwotKwllc2FjIDs7Ci0rICAgICo6WEVOSVg6KjpTeXNWKQotKwll Y2hvIGkzODYtcGMteGVuaXgKLSsJZXhpdCA7OwotKyAgICBpKjg2OnNreW9zOio6KikKLSsJZWNo byAke1VOQU1FX01BQ0hJTkV9LXBjLXNreW9zYGVjaG8gJHtVTkFNRV9SRUxFQVNFfWAgfCBzZWQg LWUgJ3MvIC4qJC8vJwotKwlleGl0IDs7Ci0rICAgIGkqODY6cmRvczoqOiopCi0rCWVjaG8gJHtV TkFNRV9NQUNISU5FfS1wYy1yZG9zCi0rCWV4aXQgOzsKLSsgICAgaSo4NjpBUk9TOio6KikKLSsJ ZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWFyb3MKLSsJZXhpdCA7OwotK2VzYWMKLSsKLSsjZWNo byAnKE5vIHVuYW1lIGNvbW1hbmQgb3IgdW5hbWUgb3V0cHV0IG5vdCByZWNvZ25pemVkLiknIDE+ JjIKLSsjZWNobyAiJHtVTkFNRV9NQUNISU5FfToke1VOQU1FX1NZU1RFTX06JHtVTkFNRV9SRUxF QVNFfToke1VOQU1FX1ZFUlNJT059IiAxPiYyCi0rCi0rZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAot K2NhdCA+JGR1bW15LmMgPDxFT0YKLSsjaWZkZWYgX1NFUVVFTlRfCi0rIyBpbmNsdWRlIDxzeXMv dHlwZXMuaD4KLSsjIGluY2x1ZGUgPHN5cy91dHNuYW1lLmg+Ci0rI2VuZGlmCi0rbWFpbiAoKQot K3sKLSsjaWYgZGVmaW5lZCAoc29ueSkKLSsjaWYgZGVmaW5lZCAoTUlQU0VCKQotKyAgLyogQkZE IHdhbnRzICJic2QiIGluc3RlYWQgb2YgIm5ld3NvcyIuICBQZXJoYXBzIEJGRCBzaG91bGQgYmUg Y2hhbmdlZCwKLSsgICAgIEkgZG9uJ3Qga25vdy4uLi4gICovCi0rICBwcmludGYgKCJtaXBzLXNv bnktYnNkXG4iKTsgZXhpdCAoMCk7Ci0rI2Vsc2UKLSsjaW5jbHVkZSA8c3lzL3BhcmFtLmg+Ci0r ICBwcmludGYgKCJtNjhrLXNvbnktbmV3c29zJXNcbiIsCi0rI2lmZGVmIE5FV1NPUzQKLSsgICAg ICAgICAgIjQiCi0rI2Vsc2UKLSsJICAiIgotKyNlbmRpZgotKyAgICAgICAgICk7IGV4aXQgKDAp OwotKyNlbmRpZgotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChfX2FybSkgJiYgZGVmaW5lZCAo X19hY29ybikgJiYgZGVmaW5lZCAoX191bml4KQotKyAgcHJpbnRmICgiYXJtLWFjb3JuLXJpc2Np eFxuIik7IGV4aXQgKDApOwotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChocDMwMCkgJiYgIWRl ZmluZWQgKGhwdXgpCi0rICBwcmludGYgKCJtNjhrLWhwLWJzZFxuIik7IGV4aXQgKDApOwotKyNl bmRpZgotKwotKyNpZiBkZWZpbmVkIChOZVhUKQotKyNpZiAhZGVmaW5lZCAoX19BUkNISVRFQ1RV UkVfXykKLSsjZGVmaW5lIF9fQVJDSElURUNUVVJFX18gIm02OGsiCi0rI2VuZGlmCi0rICBpbnQg dmVyc2lvbjsKLSsgIHZlcnNpb249YChob3N0aW5mbyB8IHNlZCAtbiAncy8uKk5lWFQgTWFjaCBc KFswLTldKlwpLiovXDEvcCcpIDI+L2Rldi9udWxsYDsKLSsgIGlmICh2ZXJzaW9uIDwgNCkKLSsg ICAgcHJpbnRmICgiJXMtbmV4dC1uZXh0c3RlcCVkXG4iLCBfX0FSQ0hJVEVDVFVSRV9fLCB2ZXJz aW9uKTsKLSsgIGVsc2UKLSsgICAgcHJpbnRmICgiJXMtbmV4dC1vcGVuc3RlcCVkXG4iLCBfX0FS Q0hJVEVDVFVSRV9fLCB2ZXJzaW9uKTsKLSsgIGV4aXQgKDApOwotKyNlbmRpZgotKwotKyNpZiBk ZWZpbmVkIChNVUxUSU1BWCkgfHwgZGVmaW5lZCAobjE2KQotKyNpZiBkZWZpbmVkIChVTUFYVikK LSsgIHByaW50ZiAoIm5zMzJrLWVuY29yZS1zeXN2XG4iKTsgZXhpdCAoMCk7Ci0rI2Vsc2UKLSsj aWYgZGVmaW5lZCAoQ01VKQotKyAgcHJpbnRmICgibnMzMmstZW5jb3JlLW1hY2hcbiIpOyBleGl0 ICgwKTsKLSsjZWxzZQotKyAgcHJpbnRmICgibnMzMmstZW5jb3JlLWJzZFxuIik7IGV4aXQgKDAp OwotKyNlbmRpZgotKyNlbmRpZgotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChfXzM4NkJTRF9f KQotKyAgcHJpbnRmICgiaTM4Ni1wYy1ic2RcbiIpOyBleGl0ICgwKTsKLSsjZW5kaWYKLSsKLSsj aWYgZGVmaW5lZCAoc2VxdWVudCkKLSsjaWYgZGVmaW5lZCAoaTM4NikKLSsgIHByaW50ZiAoImkz ODYtc2VxdWVudC1keW5peFxuIik7IGV4aXQgKDApOwotKyNlbmRpZgotKyNpZiBkZWZpbmVkIChu czMyMDAwKQotKyAgcHJpbnRmICgibnMzMmstc2VxdWVudC1keW5peFxuIik7IGV4aXQgKDApOwot KyNlbmRpZgotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChfU0VRVUVOVF8pCi0rICAgIHN0cnVj dCB1dHNuYW1lIHVuOwotKwotKyAgICB1bmFtZSgmdW4pOwotKwotKyAgICBpZiAoc3RybmNtcCh1 bi52ZXJzaW9uLCAiVjIiLCAyKSA9PSAwKSB7Ci0rCXByaW50ZiAoImkzODYtc2VxdWVudC1wdHgy XG4iKTsgZXhpdCAoMCk7Ci0rICAgIH0KLSsgICAgaWYgKHN0cm5jbXAodW4udmVyc2lvbiwgIlYx IiwgMikgPT0gMCkgeyAvKiBYWFggaXMgVjEgY29ycmVjdD8gKi8KLSsJcHJpbnRmICgiaTM4Ni1z ZXF1ZW50LXB0eDFcbiIpOyBleGl0ICgwKTsKLSsgICAgfQotKyAgICBwcmludGYgKCJpMzg2LXNl cXVlbnQtcHR4XG4iKTsgZXhpdCAoMCk7Ci0rCi0rI2VuZGlmCi0rCi0rI2lmIGRlZmluZWQgKHZh eCkKLSsjIGlmICFkZWZpbmVkICh1bHRyaXgpCi0rIyAgaW5jbHVkZSA8c3lzL3BhcmFtLmg+Ci0r IyAgaWYgZGVmaW5lZCAoQlNEKQotKyMgICBpZiBCU0QgPT0gNDMKLSsgICAgICBwcmludGYgKCJ2 YXgtZGVjLWJzZDQuM1xuIik7IGV4aXQgKDApOwotKyMgICBlbHNlCi0rIyAgICBpZiBCU0QgPT0g MTk5MDA2Ci0rICAgICAgcHJpbnRmICgidmF4LWRlYy1ic2Q0LjNyZW5vXG4iKTsgZXhpdCAoMCk7 Ci0rIyAgICBlbHNlCi0rICAgICAgcHJpbnRmICgidmF4LWRlYy1ic2RcbiIpOyBleGl0ICgwKTsK LSsjICAgIGVuZGlmCi0rIyAgIGVuZGlmCi0rIyAgZWxzZQotKyAgICBwcmludGYgKCJ2YXgtZGVj LWJzZFxuIik7IGV4aXQgKDApOwotKyMgIGVuZGlmCi0rIyBlbHNlCi0rICAgIHByaW50ZiAoInZh eC1kZWMtdWx0cml4XG4iKTsgZXhpdCAoMCk7Ci0rIyBlbmRpZgotKyNlbmRpZgotKwotKyNpZiBk ZWZpbmVkIChhbGxpYW50KSAmJiBkZWZpbmVkIChpODYwKQotKyAgcHJpbnRmICgiaTg2MC1hbGxp YW50LWJzZFxuIik7IGV4aXQgKDApOwotKyNlbmRpZgotKwotKyAgZXhpdCAoMSk7Ci0rfQotK0VP RgotKwotKyRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jIDI+L2Rldi9udWxsICYmIFNZ U1RFTV9OQU1FPWAkZHVtbXlgICYmCi0rCXsgZWNobyAiJFNZU1RFTV9OQU1FIjsgZXhpdDsgfQot KwotKyMgQXBvbGxvcyBwdXQgdGhlIHN5c3RlbSB0eXBlIGluIHRoZSBlbnZpcm9ubWVudC4KLSsK LSt0ZXN0IC1kIC91c3IvYXBvbGxvICYmIHsgZWNobyAke0lTUH0tYXBvbGxvLSR7U1lTVFlQRX07 IGV4aXQ7IH0KLSsKLSsjIENvbnZleCB2ZXJzaW9ucyB0aGF0IHByZWRhdGUgdW5hbWUgY2FuIHVz ZSBnZXRzeXNpbmZvKDEpCi0rCi0raWYgWyAteCAvdXNyL2NvbnZleC9nZXRzeXNpbmZvIF0KLSt0 aGVuCi0rICAgIGNhc2UgYGdldHN5c2luZm8gLWYgY3B1X3R5cGVgIGluCi0rICAgIGMxKikKLSsJ ZWNobyBjMS1jb252ZXgtYnNkCi0rCWV4aXQgOzsKLSsgICAgYzIqKQotKwlpZiBnZXRzeXNpbmZv IC1mIHNjYWxhcl9hY2MKLSsJdGhlbiBlY2hvIGMzMi1jb252ZXgtYnNkCi0rCWVsc2UgZWNobyBj Mi1jb252ZXgtYnNkCi0rCWZpCi0rCWV4aXQgOzsKLSsgICAgYzM0KikKLSsJZWNobyBjMzQtY29u dmV4LWJzZAotKwlleGl0IDs7Ci0rICAgIGMzOCopCi0rCWVjaG8gYzM4LWNvbnZleC1ic2QKLSsJ ZXhpdCA7OwotKyAgICBjNCopCi0rCWVjaG8gYzQtY29udmV4LWJzZAotKwlleGl0IDs7Ci0rICAg IGVzYWMKLStmaQotKwotK2NhdCA+JjIgPDxFT0YKLSskMDogdW5hYmxlIHRvIGd1ZXNzIHN5c3Rl bSB0eXBlCi0rCi0rVGhpcyBzY3JpcHQsIGxhc3QgbW9kaWZpZWQgJHRpbWVzdGFtcCwgaGFzIGZh aWxlZCB0byByZWNvZ25pemUKLSt0aGUgb3BlcmF0aW5nIHN5c3RlbSB5b3UgYXJlIHVzaW5nLiBJ dCBpcyBhZHZpc2VkIHRoYXQgeW91Ci0rZG93bmxvYWQgdGhlIG1vc3QgdXAgdG8gZGF0ZSB2ZXJz aW9uIG9mIHRoZSBjb25maWcgc2NyaXB0cyBmcm9tCi0rCi0rICBodHRwOi8vZ2l0LnNhdmFubmFo LmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZpZy5naXQ7YT1ibG9iX3BsYWluO2Y9Y29uZmlnLmd1ZXNz O2hiPUhFQUQKLSthbmQKLSsgIGh0dHA6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9naXR3ZWIvP3A9 Y29uZmlnLmdpdDthPWJsb2JfcGxhaW47Zj1jb25maWcuc3ViO2hiPUhFQUQKLSsKLStJZiB0aGUg dmVyc2lvbiB5b3UgcnVuICgkMCkgaXMgYWxyZWFkeSB1cCB0byBkYXRlLCBwbGVhc2UKLStzZW5k IHRoZSBmb2xsb3dpbmcgZGF0YSBhbmQgYW55IGluZm9ybWF0aW9uIHlvdSB0aGluayBtaWdodCBi ZQotK3BlcnRpbmVudCB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4gaW4gb3JkZXIgdG8gcHJv dmlkZSB0aGUgbmVlZGVkCi0raW5mb3JtYXRpb24gdG8gaGFuZGxlIHlvdXIgc3lzdGVtLgotKwot K2NvbmZpZy5ndWVzcyB0aW1lc3RhbXAgPSAkdGltZXN0YW1wCi0rCi0rdW5hbWUgLW0gPSBgKHVu YW1lIC1tKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0rdW5hbWUgLXIgPSBgKHVuYW1l IC1yKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0rdW5hbWUgLXMgPSBgKHVuYW1lIC1z KSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0rdW5hbWUgLXYgPSBgKHVuYW1lIC12KSAy Pi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0rCi0rL3Vzci9iaW4vdW5hbWUgLXAgPSBgKC91 c3IvYmluL3VuYW1lIC1wKSAyPi9kZXYvbnVsbGAKLSsvYmluL3VuYW1lIC1YICAgICA9IGAoL2Jp bi91bmFtZSAtWCkgMj4vZGV2L251bGxgCi0rCi0raG9zdGluZm8gICAgICAgICAgICAgICA9IGAo aG9zdGluZm8pIDI+L2Rldi9udWxsYAotKy9iaW4vdW5pdmVyc2UgICAgICAgICAgPSBgKC9iaW4v dW5pdmVyc2UpIDI+L2Rldi9udWxsYAotKy91c3IvYmluL2FyY2ggLWsgICAgICAgPSBgKC91c3Iv YmluL2FyY2ggLWspIDI+L2Rldi9udWxsYAotKy9iaW4vYXJjaCAgICAgICAgICAgICAgPSBgKC9i aW4vYXJjaCkgMj4vZGV2L251bGxgCi0rL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IGAoL3Vzci9i aW4vb3NsZXZlbCkgMj4vZGV2L251bGxgCi0rL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IGAoL3Vz ci9jb252ZXgvZ2V0c3lzaW5mbykgMj4vZGV2L251bGxgCi0rCi0rVU5BTUVfTUFDSElORSA9ICR7 VU5BTUVfTUFDSElORX0KLStVTkFNRV9SRUxFQVNFID0gJHtVTkFNRV9SRUxFQVNFfQotK1VOQU1F X1NZU1RFTSAgPSAke1VOQU1FX1NZU1RFTX0KLStVTkFNRV9WRVJTSU9OID0gJHtVTkFNRV9WRVJT SU9OfQotK0VPRgotKwotK2V4aXQgMQotKwotKyMgTG9jYWwgdmFyaWFibGVzOgotKyMgZXZhbDog KGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQotKyMgdGltZS1zdGFtcC1z dGFydDogInRpbWVzdGFtcD0nIgotKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJk IgotKyMgdGltZS1zdGFtcC1lbmQ6ICInIgotKyMgRW5kOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL2NvbmZpZy9jb25maWcuc3ViIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY29uZmln LnN1YgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9jb25maWcuc3ViCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9j b25maWcuc3ViCTIwMTAtMDEtMjMgMTQ6NDQ6NTAuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsx LDE3MDUgQEAKLSsjISAvYmluL3NoCi0rIyBDb25maWd1cmF0aW9uIHZhbGlkYXRpb24gc3Vicm91 dGluZSBzY3JpcHQuCi0rIyAgIENvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwg MTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKLSsjICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAw NCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOQotKyMgICBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLSsKLSt0aW1lc3RhbXA9JzIwMDktMTEtMjAnCi0rCi0rIyBUaGlzIGZpbGUg aXMgKGluIHByaW5jaXBsZSkgY29tbW9uIHRvIEFMTCBHTlUgc29mdHdhcmUuCi0rIyBUaGUgcHJl c2VuY2Ugb2YgYSBtYWNoaW5lIGluIHRoaXMgZmlsZSBzdWdnZXN0cyB0aGF0IFNPTUUgR05VIHNv ZnR3YXJlCi0rIyBjYW4gaGFuZGxlIHRoYXQgbWFjaGluZS4gIEl0IGRvZXMgbm90IGltcGx5IEFM TCBHTlUgc29mdHdhcmUgY2FuLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGlj ZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSsjIEZvdW5kYXRpb24s IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCAtIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCi0rIyAw MjExMC0xMzAxLCBVU0EuCi0rIwotKyMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGlmIHlvdQotKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUg YXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCi0rIyBjb25maWd1cmF0aW9uIHNj cmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgotKyMg dGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2Yg dGhhdCBwcm9ncmFtLgotKwotKwotKyMgUGxlYXNlIHNlbmQgcGF0Y2hlcyB0byA8Y29uZmlnLXBh dGNoZXNAZ251Lm9yZz4uICBTdWJtaXQgYSBjb250ZXh0Ci0rIyBkaWZmIGFuZCBhIHByb3Blcmx5 IGZvcm1hdHRlZCBHTlUgQ2hhbmdlTG9nIGVudHJ5LgotKyMKLSsjIENvbmZpZ3VyYXRpb24gc3Vi cm91dGluZSB0byB2YWxpZGF0ZSBhbmQgY2Fub25pY2FsaXplIGEgY29uZmlndXJhdGlvbiB0eXBl LgotKyMgU3VwcGx5IHRoZSBzcGVjaWZpZWQgY29uZmlndXJhdGlvbiB0eXBlIGFzIGFuIGFyZ3Vt ZW50LgotKyMgSWYgaXQgaXMgaW52YWxpZCwgd2UgcHJpbnQgYW4gZXJyb3IgbWVzc2FnZSBvbiBz dGRlcnIgYW5kIGV4aXQgd2l0aCBjb2RlIDEuCi0rIyBPdGhlcndpc2UsIHdlIHByaW50IHRoZSBj YW5vbmljYWwgY29uZmlnIHR5cGUgb24gc3Rkb3V0IGFuZCBzdWNjZWVkLgotKwotKyMgWW91IGNh biBnZXQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgc2NyaXB0IGZyb206Ci0rIyBodHRwOi8v Z2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZpZy5naXQ7YT1ibG9iX3BsYWluO2Y9 Y29uZmlnLnN1YjtoYj1IRUFECi0rCi0rIyBUaGlzIGZpbGUgaXMgc3VwcG9zZWQgdG8gYmUgdGhl IHNhbWUgZm9yIGFsbCBHTlUgcGFja2FnZXMKLSsjIGFuZCByZWNvZ25pemUgYWxsIHRoZSBDUFUg dHlwZXMsIHN5c3RlbSB0eXBlcyBhbmQgYWxpYXNlcwotKyMgdGhhdCBhcmUgbWVhbmluZ2Z1bCB3 aXRoICphbnkqIEdOVSBzb2Z0d2FyZS4KLSsjIEVhY2ggcGFja2FnZSBpcyByZXNwb25zaWJsZSBm b3IgcmVwb3J0aW5nIHdoaWNoIHZhbGlkIGNvbmZpZ3VyYXRpb25zCi0rIyBpdCBkb2VzIG5vdCBz dXBwb3J0LiAgVGhlIHVzZXIgc2hvdWxkIGJlIGFibGUgdG8gZGlzdGluZ3Vpc2gKLSsjIGEgZmFp bHVyZSB0byBzdXBwb3J0IGEgdmFsaWQgY29uZmlndXJhdGlvbiBmcm9tIGEgbWVhbmluZ2xlc3MK LSsjIGNvbmZpZ3VyYXRpb24uCi0rCi0rIyBUaGUgZ29hbCBvZiB0aGlzIGZpbGUgaXMgdG8gbWFw IGFsbCB0aGUgdmFyaW91cyB2YXJpYXRpb25zIG9mIGEgZ2l2ZW4KLSsjIG1hY2hpbmUgc3BlY2lm aWNhdGlvbiBpbnRvIGEgc2luZ2xlIHNwZWNpZmljYXRpb24gaW4gdGhlIGZvcm06Ci0rIwlDUFVf VFlQRS1NQU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTQotKyMgb3IgaW4gc29tZSBjYXNlcywg dGhlIG5ld2VyIGZvdXItcGFydCBmb3JtOgotKyMJQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLUtFUk5F TC1PUEVSQVRJTkdfU1lTVEVNCi0rIyBJdCBpcyB3cm9uZyB0byBlY2hvIGFueSBvdGhlciB0eXBl IG9mIHNwZWNpZmljYXRpb24uCi0rCi0rbWU9YGVjaG8gIiQwIiB8IHNlZCAtZSAncywuKi8sLCdg Ci0rCi0rdXNhZ2U9IlwKLStVc2FnZTogJDAgW09QVElPTl0gQ1BVLU1GUi1PUFNZUwotKyAgICAg ICAkMCBbT1BUSU9OXSBBTElBUwotKwotK0Nhbm9uaWNhbGl6ZSBhIGNvbmZpZ3VyYXRpb24gbmFt ZS4KLSsKLStPcGVyYXRpb24gbW9kZXM6Ci0rICAtaCwgLS1oZWxwICAgICAgICAgcHJpbnQgdGhp cyBoZWxwLCB0aGVuIGV4aXQKLSsgIC10LCAtLXRpbWUtc3RhbXAgICBwcmludCBkYXRlIG9mIGxh c3QgbW9kaWZpY2F0aW9uLCB0aGVuIGV4aXQKLSsgIC12LCAtLXZlcnNpb24gICAgICBwcmludCB2 ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0Ci0rCi0rUmVwb3J0IGJ1Z3MgYW5kIHBhdGNoZXMgdG8g PGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiIKLSsKLSt2ZXJzaW9uPSJcCi0rR05VIGNvbmZpZy5z dWIgKCR0aW1lc3RhbXApCi0rCi0rQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1 LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAotKzIwMDIsIDIwMDMsIDIwMDQs IDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0r Ci0rVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25k aXRpb25zLiAgVGhlcmUgaXMgTk8KLSt3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4iCi0rCi0raGVscD0iCi0r VHJ5IFxgJG1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgotKwotKyMgUGFyc2UgY29t bWFuZCBsaW5lCi0rd2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCi0rICBjYXNlICQxIGluCi0rICAg IC0tdGltZS1zdGFtcCB8IC0tdGltZSogfCAtdCApCi0rICAgICAgIGVjaG8gIiR0aW1lc3RhbXAi IDsgZXhpdCA7OwotKyAgICAtLXZlcnNpb24gfCAtdiApCi0rICAgICAgIGVjaG8gIiR2ZXJzaW9u IiA7IGV4aXQgOzsKLSsgICAgLS1oZWxwIHwgLS1oKiB8IC1oICkKLSsgICAgICAgZWNobyAiJHVz YWdlIjsgZXhpdCA7OwotKyAgICAtLSApICAgICAjIFN0b3Agb3B0aW9uIHByb2Nlc3NpbmcKLSsg ICAgICAgc2hpZnQ7IGJyZWFrIDs7Ci0rICAgIC0gKQkjIFVzZSBzdGRpbiBhcyBpbnB1dC4KLSsg ICAgICAgYnJlYWsgOzsKLSsgICAgLSogKQotKyAgICAgICBlY2hvICIkbWU6IGludmFsaWQgb3B0 aW9uICQxJGhlbHAiCi0rICAgICAgIGV4aXQgMSA7OwotKwotKyAgICAqbG9jYWwqKQotKyAgICAg ICAjIEZpcnN0IHBhc3MgdGhyb3VnaCBhbnkgbG9jYWwgbWFjaGluZSB0eXBlcy4KLSsgICAgICAg ZWNobyAkMQotKyAgICAgICBleGl0IDs7Ci0rCi0rICAgICogKQotKyAgICAgICBicmVhayA7Owot KyAgZXNhYwotK2RvbmUKLSsKLStjYXNlICQjIGluCi0rIDApIGVjaG8gIiRtZTogbWlzc2luZyBh cmd1bWVudCRoZWxwIiA+JjIKLSsgICAgZXhpdCAxOzsKLSsgMSkgOzsKLSsgKikgZWNobyAiJG1l OiB0b28gbWFueSBhcmd1bWVudHMkaGVscCIgPiYyCi0rICAgIGV4aXQgMTs7Ci0rZXNhYwotKwot KyMgU2VwYXJhdGUgd2hhdCB0aGUgdXNlciBnYXZlIGludG8gQ1BVLUNPTVBBTlkgYW5kIE9TIG9y IEtFUk5FTC1PUyAoaWYgYW55KS4KLSsjIEhlcmUgd2UgbXVzdCByZWNvZ25pemUgYWxsIHRoZSB2 YWxpZCBLRVJORUwtT1MgY29tYmluYXRpb25zLgotK21heWJlX29zPWBlY2hvICQxIHwgc2VkICdz L15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMi8nYAotK2Nhc2UgJG1heWJlX29zIGluCi0rICBu dG8tcW54KiB8IGxpbnV4LWdudSogfCBsaW51eC1kaWV0bGliYyB8IGxpbnV4LW5ld2xpYiogfCBs aW51eC11Y2xpYmMqIHwgXAotKyAgdWNsaW51eC11Y2xpYmMqIHwgdWNsaW51eC1nbnUqIHwga2Zy ZWVic2QqLWdudSogfCBrbmV0YnNkKi1nbnUqIHwgbmV0YnNkKi1nbnUqIHwgXAotKyAga29wZW5z b2xhcmlzKi1nbnUqIHwgXAotKyAgc3Rvcm0tY2hhb3MqIHwgb3MyLWVteCogfCBydG1rLW5vdmEq KQotKyAgICBvcz0tJG1heWJlX29zCi0rICAgIGJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQg J3MvXlwoLipcKS1cKFteLV0qLVteLV0qXCkkL1wxLydgCi0rICAgIDs7Ci0rICAqKQotKyAgICBi YXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzLy1bXi1dKiQvLydgCi0rICAgIGlmIFsgJGJh c2ljX21hY2hpbmUgIT0gJDEgXQotKyAgICB0aGVuIG9zPWBlY2hvICQxIHwgc2VkICdzLy4qLS8t LydgCi0rICAgIGVsc2Ugb3M9OyBmaQotKyAgICA7OwotK2VzYWMKLSsKLSsjIyMgTGV0J3MgcmVj b2duaXplIGNvbW1vbiBtYWNoaW5lcyBhcyBub3QgYmVpbmcgb3BlcmF0aW5nIHN5c3RlbXMgc28K LSsjIyMgdGhhdCB0aGluZ3MgbGlrZSBjb25maWcuc3ViIGRlY3N0YXRpb24tMzEwMCB3b3JrLiAg V2UgYWxzbwotKyMjIyByZWNvZ25pemUgc29tZSBtYW51ZmFjdHVyZXJzIGFzIG5vdCBiZWluZyBv cGVyYXRpbmcgc3lzdGVtcywgc28gd2UKLSsjIyMgY2FuIHByb3ZpZGUgZGVmYXVsdCBvcGVyYXRp bmcgc3lzdGVtcyBiZWxvdy4KLStjYXNlICRvcyBpbgotKwktc3VuKm9zKikKLSsJCSMgUHJldmVu dCBmb2xsb3dpbmcgY2xhdXNlIGZyb20gaGFuZGxpbmcgdGhpcyBpbnZhbGlkIGlucHV0LgotKwkJ OzsKLSsJLWRlYyogfCAtbWlwcyogfCAtc2VxdWVudCogfCAtZW5jb3JlKiB8IC1wYzUzMiogfCAt c2dpKiB8IC1zb255KiB8IFwKLSsJLWF0dCogfCAtNzMwMCogfCAtMzMwMCogfCAtZGVsdGEqIHwg LW1vdG9yb2xhKiB8IC1zdW5bMjM0XSogfCBcCi0rCS11bmljb20qIHwgLWlibSogfCAtbmV4dCB8 IC1ocCB8IC1pc2kqIHwgLWFwb2xsbyB8IC1hbHRvcyogfCBcCi0rCS1jb252ZXJnZW50KiB8IC1u Y3IqIHwgLW5ld3MgfCAtMzIqIHwgLTM2MDAqIHwgLTMxMDAqIHwgLWhpdGFjaGkqIHxcCi0rCS1j WzEyM10qIHwgLWNvbnZleCogfCAtc3VuIHwgLWNyZHMgfCAtb21yb24qIHwgLWRnIHwgLXVsdHJh IHwgLXR0aSogfCBcCi0rCS1oYXJyaXMgfCAtZG9scGhpbiB8IC1oaWdobGV2ZWwgfCAtZ291bGQg fCAtY2JtIHwgLW5zIHwgLW1hc3Njb21wIHwgXAotKwktYXBwbGUgfCAtYXhpcyB8IC1rbnV0aCB8 IC1jcmF5IHwgLW1pY3JvYmxhemUpCi0rCQlvcz0KLSsJCWJhc2ljX21hY2hpbmU9JDEKLSsJCTs7 Ci0rICAgICAgICAtYmx1ZWdlbmUqKQotKwkgICAgICAgIG9zPS1jbmsKLSsJCTs7Ci0rCS1zaW0g fCAtY2lzY28gfCAtb2tpIHwgLXdlYyB8IC13aW5ib25kKQotKwkJb3M9Ci0rCQliYXNpY19tYWNo aW5lPSQxCi0rCQk7OwotKwktc2NvdXQpCi0rCQk7OwotKwktd3JzKQotKwkJb3M9LXZ4d29ya3MK LSsJCWJhc2ljX21hY2hpbmU9JDEKLSsJCTs7Ci0rCS1jaG9ydXNvcyopCi0rCQlvcz0tY2hvcnVz b3MKLSsJCWJhc2ljX21hY2hpbmU9JDEKLSsJCTs7Ci0rIAktY2hvcnVzcmRiKQotKyAJCW9zPS1j aG9ydXNyZGIKLSsJCWJhc2ljX21hY2hpbmU9JDEKLSsgCQk7OwotKwktaGl1eCopCi0rCQlvcz0t aGl1eHdlMgotKwkJOzsKLSsJLXNjbzYpCi0rCQlvcz0tc2NvNXY2Ci0rCQliYXNpY19tYWNoaW5l PWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7OwotKwktc2NvNSkKLSsJ CW9zPS1zY28zLjJ2NQotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0u Ki84Ni1wYy8nYAotKwkJOzsKLSsJLXNjbzQpCi0rCQlvcz0tc2NvMy4ydjQKLSsJCWJhc2ljX21h Y2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1zY28z LjIuWzQtOV0qKQotKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzL3NjbzMuMi4vc2NvMy4ydi8n YAotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAot KwkJOzsKLSsJLXNjbzMuMnZbNC05XSopCi0rCQkjIERvbid0IGZvcmdldCB2ZXJzaW9uIGlmIGl0 IGlzIDMuMnY0IG9yIG5ld2VyLgotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAn cy84Ni0uKi84Ni1wYy8nYAotKwkJOzsKLSsJLXNjbzV2NiopCi0rCQkjIERvbid0IGZvcmdldCB2 ZXJzaW9uIGlmIGl0IGlzIDMuMnY0IG9yIG5ld2VyLgotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAk MSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAotKwkJOzsKLSsJLXNjbyopCi0rCQlvcz0tc2Nv My4ydjIKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMv J2AKLSsJCTs7Ci0rCS11ZGsqKQotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAn cy84Ni0uKi84Ni1wYy8nYAotKwkJOzsKLSsJLWlzYykKLSsJCW9zPS1pc2MyLjIKLSsJCWJhc2lj X21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1j bGl4KikKLSsJCWJhc2ljX21hY2hpbmU9Y2xpcHBlci1pbnRlcmdyYXBoCi0rCQk7OwotKwktaXNj KikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AK LSsJCTs7Ci0rCS1seW54KikKLSsJCW9zPS1seW54b3MKLSsJCTs7Ci0rCS1wdHgqKQotKwkJYmFz aWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1zZXF1ZW50LydgCi0rCQk7 OwotKwktd2luZG93c250KikKLSsJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAncy93aW5kb3dzbnQv d2lubnQvJ2AKLSsJCTs7Ci0rCS1wc29zKikKLSsJCW9zPS1wc29zCi0rCQk7OwotKwktbWludCB8 IC1taW50WzAtOV0qKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWF0YXJpCi0rCQlvcz0tbWludAot KwkJOzsKLStlc2FjCi0rCi0rIyBEZWNvZGUgYWxpYXNlcyBmb3IgY2VydGFpbiBDUFUtQ09NUEFO WSBjb21iaW5hdGlvbnMuCi0rY2FzZSAkYmFzaWNfbWFjaGluZSBpbgotKwkjIFJlY29nbml6ZSB0 aGUgYmFzaWMgQ1BVIHR5cGVzIHdpdGhvdXQgY29tcGFueSBuYW1lLgotKwkjIFNvbWUgYXJlIG9t aXR0ZWQgaGVyZSBiZWNhdXNlIHRoZXkgaGF2ZSBzcGVjaWFsIG1lYW5pbmdzIGJlbG93LgotKwkx NzUwYSB8IDU4MCBcCi0rCXwgYTI5ayBcCi0rCXwgYWxwaGEgfCBhbHBoYWV2WzQtOF0gfCBhbHBo YWV2NTYgfCBhbHBoYWV2Nls3OF0gfCBhbHBoYXBjYTVbNjddIFwKLSsJfCBhbHBoYTY0IHwgYWxw aGE2NGV2WzQtOF0gfCBhbHBoYTY0ZXY1NiB8IGFscGhhNjRldjZbNzhdIHwgYWxwaGE2NHBjYTVb NjddIFwKLSsJfCBhbTMzXzIuMCBcCi0rCXwgYXJjIHwgYXJtIHwgYXJtW2JsXWUgfCBhcm1lW2xi XSB8IGFybXZbMjM0NV0gfCBhcm12WzM0NV1bbGJdIHwgYXZyIHwgYXZyMzIgXAotKwl8IGJmaW4g XAotKwl8IGM0eCB8IGNsaXBwZXIgXAotKwl8IGQxMHYgfCBkMzB2IHwgZGx4IHwgZHNwMTZ4eCBc Ci0rCXwgZmlkbyB8IGZyMzAgfCBmcnYgXAotKwl8IGg4MzAwIHwgaDg1MDAgfCBocHBhIHwgaHBw YTEuWzAxXSB8IGhwcGEyLjAgfCBocHBhMi4wW253XSB8IGhwcGE2NCBcCi0rCXwgaTM3MCB8IGk4 NjAgfCBpOTYwIHwgaWE2NCBcCi0rCXwgaXAyayB8IGlxMjAwMCBcCi0rCXwgbG0zMiBcCi0rCXwg bTMyYyB8IG0zMnIgfCBtMzJybGUgfCBtNjgwMDAgfCBtNjhrIHwgbTg4ayBcCi0rCXwgbWF4cSB8 IG1iIHwgbWljcm9ibGF6ZSB8IG1jb3JlIHwgbWVwIHwgbWV0YWcgXAotKwl8IG1pcHMgfCBtaXBz YmUgfCBtaXBzZWIgfCBtaXBzZWwgfCBtaXBzbGUgXAotKwl8IG1pcHMxNiBcCi0rCXwgbWlwczY0 IHwgbWlwczY0ZWwgXAotKwl8IG1pcHM2NG9jdGVvbiB8IG1pcHM2NG9jdGVvbmVsIFwKLSsJfCBt aXBzNjRvcmlvbiB8IG1pcHM2NG9yaW9uZWwgXAotKwl8IG1pcHM2NHI1OTAwIHwgbWlwczY0cjU5 MDBlbCBcCi0rCXwgbWlwczY0dnIgfCBtaXBzNjR2cmVsIFwKLSsJfCBtaXBzNjR2cjQxMDAgfCBt aXBzNjR2cjQxMDBlbCBcCi0rCXwgbWlwczY0dnI0MzAwIHwgbWlwczY0dnI0MzAwZWwgXAotKwl8 IG1pcHM2NHZyNTAwMCB8IG1pcHM2NHZyNTAwMGVsIFwKLSsJfCBtaXBzNjR2cjU5MDAgfCBtaXBz NjR2cjU5MDBlbCBcCi0rCXwgbWlwc2lzYTMyIHwgbWlwc2lzYTMyZWwgXAotKwl8IG1pcHNpc2Ez MnIyIHwgbWlwc2lzYTMycjJlbCBcCi0rCXwgbWlwc2lzYTY0IHwgbWlwc2lzYTY0ZWwgXAotKwl8 IG1pcHNpc2E2NHIyIHwgbWlwc2lzYTY0cjJlbCBcCi0rCXwgbWlwc2lzYTY0c2IxIHwgbWlwc2lz YTY0c2IxZWwgXAotKwl8IG1pcHNpc2E2NHNyNzFrIHwgbWlwc2lzYTY0c3I3MWtlbCBcCi0rCXwg bWlwc3R4MzkgfCBtaXBzdHgzOWVsIFwKLSsJfCBtbjEwMjAwIHwgbW4xMDMwMCBcCi0rCXwgbW94 aWUgXAotKwl8IG10IFwKLSsJfCBtc3A0MzAgXAotKwl8IG5pb3MgfCBuaW9zMiBcCi0rCXwgbnMx NmsgfCBuczMyayBcCi0rCXwgb3IzMiBcCi0rCXwgcGRwMTAgfCBwZHAxMSB8IHBqIHwgcGpsIFwK LSsJfCBwb3dlcnBjIHwgcG93ZXJwYzY0IHwgcG93ZXJwYzY0bGUgfCBwb3dlcnBjbGUgfCBwcGNi ZSBcCi0rCXwgcHlyYW1pZCBcCi0rCXwgcnggXAotKwl8IHNjb3JlIFwKLSsJfCBzaCB8IHNoWzEy MzRdIHwgc2hbMjRdYSB8IHNoWzI0XWFlYiB8IHNoWzIzXWUgfCBzaFszNF1lYiB8IHNoZWIgfCBz aGJlIHwgc2hsZSB8IHNoWzEyMzRdbGUgfCBzaDNlbGUgXAotKwl8IHNoNjQgfCBzaDY0bGUgXAot Kwl8IHNwYXJjIHwgc3BhcmM2NCB8IHNwYXJjNjRiIHwgc3BhcmM2NHYgfCBzcGFyYzg2eCB8IHNw YXJjbGV0IHwgc3BhcmNsaXRlIFwKLSsJfCBzcGFyY3Y4IHwgc3BhcmN2OSB8IHNwYXJjdjliIHwg c3BhcmN2OXYgXAotKwl8IHNwdSB8IHN0cm9uZ2FybSBcCi0rCXwgdGFob2UgfCB0aHVtYiB8IHRp YzR4IHwgdGljODAgfCB0cm9uIFwKLSsJfCB1Ymljb20zMiBcCi0rCXwgdjg1MCB8IHY4NTBlIFwK LSsJfCB3ZTMyayBcCi0rCXwgeDg2IHwgeGMxNnggfCB4c2NhbGUgfCB4c2NhbGVlW2JsXSB8IHhz dG9ybXkxNiB8IHh0ZW5zYSBcCi0rCXwgejhrIHwgejgwKQotKwkJYmFzaWNfbWFjaGluZT0kYmFz aWNfbWFjaGluZS11bmtub3duCi0rCQk7OwotKwltNjgxMSB8IG02OGhjMTEgfCBtNjgxMiB8IG02 OGhjMTIgfCBwaWNvY2hpcCkKLSsJCSMgTW90b3JvbGEgNjhIQzExLzEyLgotKwkJYmFzaWNfbWFj aGluZT0kYmFzaWNfbWFjaGluZS11bmtub3duCi0rCQlvcz0tbm9uZQotKwkJOzsKLSsJbTg4MTEw IHwgbTY4MFsxMjM0Nl0wIHwgbTY4Mz8yIHwgbTY4MzYwIHwgbTUyMDAgfCB2NzAgfCB3NjUgfCB6 OGspCi0rCQk7OwotKwltczEpCi0rCQliYXNpY19tYWNoaW5lPW10LXVua25vd24KLSsJCTs7Ci0r Ci0rCSMgV2UgdXNlIGBwYycgcmF0aGVyIHRoYW4gYHVua25vd24nCi0rCSMgYmVjYXVzZSAoMSkg dGhhdCdzIHdoYXQgdGhleSBub3JtYWxseSBhcmUsIGFuZAotKwkjICgyKSB0aGUgd29yZCAidW5r bm93biIgdGVuZHMgdG8gY29uZnVzZSBiZWdpbm5pbmcgdXNlcnMuCi0rCWkqODYgfCB4ODZfNjQp Ci0rCSAgYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS1wYwotKwkgIDs7Ci0rCSMgT2JqZWN0 IGlmIG1vcmUgdGhhbiBvbmUgY29tcGFueSBuYW1lIHdvcmQuCi0rCSotKi0qKQotKwkJZWNobyBJ bnZhbGlkIGNvbmZpZ3VyYXRpb24gXGAkMVwnOiBtYWNoaW5lIFxgJGJhc2ljX21hY2hpbmVcJyBu b3QgcmVjb2duaXplZCAxPiYyCi0rCQlleGl0IDEKLSsJCTs7Ci0rCSMgUmVjb2duaXplIHRoZSBi YXNpYyBDUFUgdHlwZXMgd2l0aCBjb21wYW55IG5hbWUuCi0rCTU4MC0qIFwKLSsJfCBhMjlrLSog XAotKwl8IGFscGhhLSogfCBhbHBoYWV2WzQtOF0tKiB8IGFscGhhZXY1Ni0qIHwgYWxwaGFldjZb NzhdLSogXAotKwl8IGFscGhhNjQtKiB8IGFscGhhNjRldls0LThdLSogfCBhbHBoYTY0ZXY1Ni0q IHwgYWxwaGE2NGV2Nls3OF0tKiBcCi0rCXwgYWxwaGFwY2E1WzY3XS0qIHwgYWxwaGE2NHBjYTVb NjddLSogfCBhcmMtKiBcCi0rCXwgYXJtLSogIHwgYXJtYmUtKiB8IGFybWxlLSogfCBhcm1lYi0q IHwgYXJtdiotKiBcCi0rCXwgYXZyLSogfCBhdnIzMi0qIFwKLSsJfCBiZmluLSogfCBiczIwMDAt KiBcCi0rCXwgY1sxMjNdKiB8IGMzMC0qIHwgW2NqdF05MC0qIHwgYzR4LSogfCBjNTR4LSogfCBj NTV4LSogfCBjNngtKiBcCi0rCXwgY2xpcHBlci0qIHwgY3JheW52LSogfCBjeWRyYS0qIFwKLSsJ fCBkMTB2LSogfCBkMzB2LSogfCBkbHgtKiBcCi0rCXwgZWx4c2ktKiBcCi0rCXwgZjMwWzAxXS0q IHwgZjcwMC0qIHwgZmlkby0qIHwgZnIzMC0qIHwgZnJ2LSogfCBmeDgwLSogXAotKwl8IGg4MzAw LSogfCBoODUwMC0qIFwKLSsJfCBocHBhLSogfCBocHBhMS5bMDFdLSogfCBocHBhMi4wLSogfCBo cHBhMi4wW253XS0qIHwgaHBwYTY0LSogXAotKwl8IGkqODYtKiB8IGk4NjAtKiB8IGk5NjAtKiB8 IGlhNjQtKiBcCi0rCXwgaXAyay0qIHwgaXEyMDAwLSogXAotKwl8IGxtMzItKiBcCi0rCXwgbTMy Yy0qIHwgbTMyci0qIHwgbTMycmxlLSogXAotKwl8IG02ODAwMC0qIHwgbTY4MFswMTIzNDZdMC0q IHwgbTY4MzYwLSogfCBtNjgzPzItKiB8IG02OGstKiBcCi0rCXwgbTg4MTEwLSogfCBtODhrLSog fCBtYXhxLSogfCBtY29yZS0qIHwgbWV0YWctKiB8IG1pY3JvYmxhemUtKiBcCi0rCXwgbWlwcy0q IHwgbWlwc2JlLSogfCBtaXBzZWItKiB8IG1pcHNlbC0qIHwgbWlwc2xlLSogXAotKwl8IG1pcHMx Ni0qIFwKLSsJfCBtaXBzNjQtKiB8IG1pcHM2NGVsLSogXAotKwl8IG1pcHM2NG9jdGVvbi0qIHwg bWlwczY0b2N0ZW9uZWwtKiBcCi0rCXwgbWlwczY0b3Jpb24tKiB8IG1pcHM2NG9yaW9uZWwtKiBc Ci0rCXwgbWlwczY0cjU5MDAtKiB8IG1pcHM2NHI1OTAwZWwtKiBcCi0rCXwgbWlwczY0dnItKiB8 IG1pcHM2NHZyZWwtKiBcCi0rCXwgbWlwczY0dnI0MTAwLSogfCBtaXBzNjR2cjQxMDBlbC0qIFwK LSsJfCBtaXBzNjR2cjQzMDAtKiB8IG1pcHM2NHZyNDMwMGVsLSogXAotKwl8IG1pcHM2NHZyNTAw MC0qIHwgbWlwczY0dnI1MDAwZWwtKiBcCi0rCXwgbWlwczY0dnI1OTAwLSogfCBtaXBzNjR2cjU5 MDBlbC0qIFwKLSsJfCBtaXBzaXNhMzItKiB8IG1pcHNpc2EzMmVsLSogXAotKwl8IG1pcHNpc2Ez MnIyLSogfCBtaXBzaXNhMzJyMmVsLSogXAotKwl8IG1pcHNpc2E2NC0qIHwgbWlwc2lzYTY0ZWwt KiBcCi0rCXwgbWlwc2lzYTY0cjItKiB8IG1pcHNpc2E2NHIyZWwtKiBcCi0rCXwgbWlwc2lzYTY0 c2IxLSogfCBtaXBzaXNhNjRzYjFlbC0qIFwKLSsJfCBtaXBzaXNhNjRzcjcxay0qIHwgbWlwc2lz YTY0c3I3MWtlbC0qIFwKLSsJfCBtaXBzdHgzOS0qIHwgbWlwc3R4MzllbC0qIFwKLSsJfCBtbWl4 LSogXAotKwl8IG10LSogXAotKwl8IG1zcDQzMC0qIFwKLSsJfCBuaW9zLSogfCBuaW9zMi0qIFwK LSsJfCBub25lLSogfCBucDEtKiB8IG5zMTZrLSogfCBuczMyay0qIFwKLSsJfCBvcmlvbi0qIFwK LSsJfCBwZHAxMC0qIHwgcGRwMTEtKiB8IHBqLSogfCBwamwtKiB8IHBuLSogfCBwb3dlci0qIFwK LSsJfCBwb3dlcnBjLSogfCBwb3dlcnBjNjQtKiB8IHBvd2VycGM2NGxlLSogfCBwb3dlcnBjbGUt KiB8IHBwY2JlLSogXAotKwl8IHB5cmFtaWQtKiBcCi0rCXwgcm9tcC0qIHwgcnM2MDAwLSogfCBy eC0qIFwKLSsJfCBzaC0qIHwgc2hbMTIzNF0tKiB8IHNoWzI0XWEtKiB8IHNoWzI0XWFlYi0qIHwg c2hbMjNdZS0qIHwgc2hbMzRdZWItKiB8IHNoZWItKiB8IHNoYmUtKiBcCi0rCXwgc2hsZS0qIHwg c2hbMTIzNF1sZS0qIHwgc2gzZWxlLSogfCBzaDY0LSogfCBzaDY0bGUtKiBcCi0rCXwgc3BhcmMt KiB8IHNwYXJjNjQtKiB8IHNwYXJjNjRiLSogfCBzcGFyYzY0di0qIHwgc3BhcmM4NngtKiB8IHNw YXJjbGV0LSogXAotKwl8IHNwYXJjbGl0ZS0qIFwKLSsJfCBzcGFyY3Y4LSogfCBzcGFyY3Y5LSog fCBzcGFyY3Y5Yi0qIHwgc3BhcmN2OXYtKiB8IHN0cm9uZ2FybS0qIHwgc3YxLSogfCBzeD8tKiBc Ci0rCXwgdGFob2UtKiB8IHRodW1iLSogXAotKwl8IHRpYzMwLSogfCB0aWM0eC0qIHwgdGljNTR4 LSogfCB0aWM1NXgtKiB8IHRpYzZ4LSogfCB0aWM4MC0qIHwgdGlsZS0qIFwKLSsJfCB0cm9uLSog XAotKwl8IHViaWNvbTMyLSogXAotKwl8IHY4NTAtKiB8IHY4NTBlLSogfCB2YXgtKiBcCi0rCXwg d2UzMmstKiBcCi0rCXwgeDg2LSogfCB4ODZfNjQtKiB8IHhjMTZ4LSogfCB4cHMxMDAtKiB8IHhz Y2FsZS0qIHwgeHNjYWxlZVtibF0tKiBcCi0rCXwgeHN0b3JteTE2LSogfCB4dGVuc2EqLSogXAot Kwl8IHltcC0qIFwKLSsJfCB6OGstKiB8IHo4MC0qKQotKwkJOzsKLSsJIyBSZWNvZ25pemUgdGhl IGJhc2ljIENQVSB0eXBlcyB3aXRob3V0IGNvbXBhbnkgbmFtZSwgd2l0aCBnbG9iIG1hdGNoLgot Kwl4dGVuc2EqKQotKwkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11bmtub3duCi0rCQk7 OwotKwkjIFJlY29nbml6ZSB0aGUgdmFyaW91cyBtYWNoaW5lIG5hbWVzIGFuZCBhbGlhc2VzIHdo aWNoIHN0YW5kCi0rCSMgZm9yIGEgQ1BVIHR5cGUgYW5kIGEgY29tcGFueSBhbmQgc29tZXRpbWVz IGV2ZW4gYW4gT1MuCi0rCTM4NmJzZCkKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCi0r CQlvcz0tYnNkCi0rCQk7OwotKwkzYjEgfCA3MzAwIHwgNzMwMC1hdHQgfCBhdHQtNzMwMCB8IHBj NzMwMCB8IHNhZmFyaSB8IHVuaXhwYykKLSsJCWJhc2ljX21hY2hpbmU9bTY4MDAwLWF0dAotKwkJ OzsKLSsJM2IqKQotKwkJYmFzaWNfbWFjaGluZT13ZTMyay1hdHQKLSsJCTs7Ci0rCWEyOWtoaWYp Ci0rCQliYXNpY19tYWNoaW5lPWEyOWstYW1kCi0rCQlvcz0tdWRpCi0rCQk7OwotKyAgICAJYWJh Y3VzKQotKwkJYmFzaWNfbWFjaGluZT1hYmFjdXMtdW5rbm93bgotKwkJOzsKLSsJYWRvYmU2OGsp Ci0rCQliYXNpY19tYWNoaW5lPW02ODAxMC1hZG9iZQotKwkJb3M9LXNjb3V0Ci0rCQk7OwotKwlh bGxpYW50IHwgZng4MCkKLSsJCWJhc2ljX21hY2hpbmU9Zng4MC1hbGxpYW50Ci0rCQk7OwotKwlh bHRvcyB8IGFsdG9zMzA2OCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1hbHRvcwotKwkJOzsKLSsJ YW0yOWspCi0rCQliYXNpY19tYWNoaW5lPWEyOWstbm9uZQotKwkJb3M9LWJzZAotKwkJOzsKLSsJ YW1kNjQpCi0rCQliYXNpY19tYWNoaW5lPXg4Nl82NC1wYwotKwkJOzsKLSsJYW1kNjQtKikKLSsJ CWJhc2ljX21hY2hpbmU9eDg2XzY0LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1d Ki0vLydgCi0rCQk7OwotKwlhbWRhaGwpCi0rCQliYXNpY19tYWNoaW5lPTU4MC1hbWRhaGwKLSsJ CW9zPS1zeXN2Ci0rCQk7OwotKwlhbWlnYSB8IGFtaWdhLSopCi0rCQliYXNpY19tYWNoaW5lPW02 OGstdW5rbm93bgotKwkJOzsKLSsJYW1pZ2FvcyB8IGFtaWdhZG9zKQotKwkJYmFzaWNfbWFjaGlu ZT1tNjhrLXVua25vd24KLSsJCW9zPS1hbWlnYW9zCi0rCQk7OwotKwlhbWlnYXVuaXggfCBhbWl4 KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24KLSsJCW9zPS1zeXN2NAotKwkJOzsKLSsJ YXBvbGxvNjgpCi0rCQliYXNpY19tYWNoaW5lPW02OGstYXBvbGxvCi0rCQlvcz0tc3lzdgotKwkJ OzsKLSsJYXBvbGxvNjhic2QpCi0rCQliYXNpY19tYWNoaW5lPW02OGstYXBvbGxvCi0rCQlvcz0t YnNkCi0rCQk7OwotKwlhcm9zKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCi0rCQlvcz0tYXJv cwotKwkJOzsKLSsJYXV4KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwcGxlCi0rCQlvcz0tYXV4 Ci0rCQk7OwotKwliYWxhbmNlKQotKwkJYmFzaWNfbWFjaGluZT1uczMyay1zZXF1ZW50Ci0rCQlv cz0tZHluaXgKLSsJCTs7Ci0rCWJsYWNrZmluKQotKwkJYmFzaWNfbWFjaGluZT1iZmluLXVua25v d24KLSsJCW9zPS1saW51eAotKwkJOzsKLSsJYmxhY2tmaW4tKikKLSsJCWJhc2ljX21hY2hpbmU9 YmZpbi1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJb3M9LWxp bnV4Ci0rCQk7OwotKwlibHVlZ2VuZSopCi0rCQliYXNpY19tYWNoaW5lPXBvd2VycGMtaWJtCi0r CQlvcz0tY25rCi0rCQk7OwotKwljOTApCi0rCQliYXNpY19tYWNoaW5lPWM5MC1jcmF5Ci0rCQlv cz0tdW5pY29zCi0rCQk7OwotKyAgICAgICAgY2VnY2MpCi0rCQliYXNpY19tYWNoaW5lPWFybS11 bmtub3duCi0rCQlvcz0tY2VnY2MKLSsJCTs7Ci0rCWNvbnZleC1jMSkKLSsJCWJhc2ljX21hY2hp bmU9YzEtY29udmV4Ci0rCQlvcz0tYnNkCi0rCQk7OwotKwljb252ZXgtYzIpCi0rCQliYXNpY19t YWNoaW5lPWMyLWNvbnZleAotKwkJb3M9LWJzZAotKwkJOzsKLSsJY29udmV4LWMzMikKLSsJCWJh c2ljX21hY2hpbmU9YzMyLWNvbnZleAotKwkJb3M9LWJzZAotKwkJOzsKLSsJY29udmV4LWMzNCkK LSsJCWJhc2ljX21hY2hpbmU9YzM0LWNvbnZleAotKwkJb3M9LWJzZAotKwkJOzsKLSsJY29udmV4 LWMzOCkKLSsJCWJhc2ljX21hY2hpbmU9YzM4LWNvbnZleAotKwkJb3M9LWJzZAotKwkJOzsKLSsJ Y3JheSB8IGo5MCkKLSsJCWJhc2ljX21hY2hpbmU9ajkwLWNyYXkKLSsJCW9zPS11bmljb3MKLSsJ CTs7Ci0rCWNyYXludikKLSsJCWJhc2ljX21hY2hpbmU9Y3JheW52LWNyYXkKLSsJCW9zPS11bmlj b3NtcAotKwkJOzsKLSsJY3IxNikKLSsJCWJhc2ljX21hY2hpbmU9Y3IxNi11bmtub3duCi0rCQlv cz0tZWxmCi0rCQk7OwotKwljcmRzIHwgdW5vcykKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1jcmRz Ci0rCQk7OwotKwljcmlzdjMyIHwgY3Jpc3YzMi0qIHwgZXRyYXhmcyopCi0rCQliYXNpY19tYWNo aW5lPWNyaXN2MzItYXhpcwotKwkJOzsKLSsJY3JpcyB8IGNyaXMtKiB8IGV0cmF4KikKLSsJCWJh c2ljX21hY2hpbmU9Y3Jpcy1heGlzCi0rCQk7OwotKwljcngpCi0rCQliYXNpY19tYWNoaW5lPWNy eC11bmtub3duCi0rCQlvcz0tZWxmCi0rCQk7OwotKwlkYTMwIHwgZGEzMC0qKQotKwkJYmFzaWNf bWFjaGluZT1tNjhrLWRhMzAKLSsJCTs7Ci0rCWRlY3N0YXRpb24gfCBkZWNzdGF0aW9uLTMxMDAg fCBwbWF4IHwgcG1heC0qIHwgcG1pbiB8IGRlYzMxMDAgfCBkZWNzdGF0bikKLSsJCWJhc2ljX21h Y2hpbmU9bWlwcy1kZWMKLSsJCTs7Ci0rCWRlY3N5c3RlbTEwKiB8IGRlYzEwKikKLSsJCWJhc2lj X21hY2hpbmU9cGRwMTAtZGVjCi0rCQlvcz0tdG9wczEwCi0rCQk7OwotKwlkZWNzeXN0ZW0yMCog fCBkZWMyMCopCi0rCQliYXNpY19tYWNoaW5lPXBkcDEwLWRlYwotKwkJb3M9LXRvcHMyMAotKwkJ OzsKLSsJZGVsdGEgfCAzMzAwIHwgbW90b3JvbGEtMzMwMCB8IG1vdG9yb2xhLWRlbHRhIFwKLSsJ ICAgICAgfCAzMzAwLW1vdG9yb2xhIHwgZGVsdGEtbW90b3JvbGEpCi0rCQliYXNpY19tYWNoaW5l PW02OGstbW90b3JvbGEKLSsJCTs7Ci0rCWRlbHRhODgpCi0rCQliYXNpY19tYWNoaW5lPW04OGst bW90b3JvbGEKLSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJZGljb3MpCi0rCQliYXNpY19tYWNoaW5l PWk2ODYtcGMKLSsJCW9zPS1kaWNvcwotKwkJOzsKLSsJZGpncHApCi0rCQliYXNpY19tYWNoaW5l PWk1ODYtcGMKLSsJCW9zPS1tc2Rvc2RqZ3BwCi0rCQk7OwotKwlkcHgyMCB8IGRweDIwLSopCi0r CQliYXNpY19tYWNoaW5lPXJzNjAwMC1idWxsCi0rCQlvcz0tYm9zeAotKwkJOzsKLSsJZHB4Miog fCBkcHgyKi1idWxsKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWJ1bGwKLSsJCW9zPS1zeXN2Mwot KwkJOzsKLSsJZWJtb24yOWspCi0rCQliYXNpY19tYWNoaW5lPWEyOWstYW1kCi0rCQlvcz0tZWJt b24KLSsJCTs7Ci0rCWVseHNpKQotKwkJYmFzaWNfbWFjaGluZT1lbHhzaS1lbHhzaQotKwkJb3M9 LWJzZAotKwkJOzsKLSsJZW5jb3JlIHwgdW1heCB8IG1tYXgpCi0rCQliYXNpY19tYWNoaW5lPW5z MzJrLWVuY29yZQotKwkJOzsKLSsJZXMxODAwIHwgT1NFNjhrIHwgb3NlNjhrIHwgb3NlIHwgT1NF KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWVyaWNzc29uCi0rCQlvcz0tb3NlCi0rCQk7OwotKwlm eDI4MDApCi0rCQliYXNpY19tYWNoaW5lPWk4NjAtYWxsaWFudAotKwkJOzsKLSsJZ2VuaXgpCi0r CQliYXNpY19tYWNoaW5lPW5zMzJrLW5zCi0rCQk7OwotKwlnbWljcm8pCi0rCQliYXNpY19tYWNo aW5lPXRyb24tZ21pY3JvCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJZ28zMikKLSsJCWJhc2ljX21h Y2hpbmU9aTM4Ni1wYwotKwkJb3M9LWdvMzIKLSsJCTs7Ci0rCWgzMDUwciogfCBoaXV4KikKLSsJ CWJhc2ljX21hY2hpbmU9aHBwYTEuMS1oaXRhY2hpCi0rCQlvcz0taGl1eHdlMgotKwkJOzsKLSsJ aDgzMDBobXMpCi0rCQliYXNpY19tYWNoaW5lPWg4MzAwLWhpdGFjaGkKLSsJCW9zPS1obXMKLSsJ CTs7Ci0rCWg4MzAweHJheSkKLSsJCWJhc2ljX21hY2hpbmU9aDgzMDAtaGl0YWNoaQotKwkJb3M9 LXhyYXkKLSsJCTs7Ci0rCWg4NTAwaG1zKQotKwkJYmFzaWNfbWFjaGluZT1oODUwMC1oaXRhY2hp Ci0rCQlvcz0taG1zCi0rCQk7OwotKwloYXJyaXMpCi0rCQliYXNpY19tYWNoaW5lPW04OGstaGFy cmlzCi0rCQlvcz0tc3lzdjMKLSsJCTs7Ci0rCWhwMzAwLSopCi0rCQliYXNpY19tYWNoaW5lPW02 OGstaHAKLSsJCTs7Ci0rCWhwMzAwYnNkKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCi0rCQlv cz0tYnNkCi0rCQk7OwotKwlocDMwMGhwdXgpCi0rCQliYXNpY19tYWNoaW5lPW02OGstaHAKLSsJ CW9zPS1ocHV4Ci0rCQk7OwotKwlocDNrOVswLTldWzAtOV0gfCBocDlbMC05XVswLTldKQotKwkJ YmFzaWNfbWFjaGluZT1ocHBhMS4wLWhwCi0rCQk7OwotKwlocDlrMlswLTldWzAtOV0gfCBocDlr MzFbMC05XSkKLSsJCWJhc2ljX21hY2hpbmU9bTY4MDAwLWhwCi0rCQk7OwotKwlocDlrM1syLTld WzAtOV0pCi0rCQliYXNpY19tYWNoaW5lPW02OGstaHAKLSsJCTs7Ci0rCWhwOWs2WzAtOV1bMC05 XSB8IGhwNlswLTldWzAtOV0pCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjAtaHAKLSsJCTs7Ci0r CWhwOWs3WzAtNzldWzAtOV0gfCBocDdbMC03OV1bMC05XSkKLSsJCWJhc2ljX21hY2hpbmU9aHBw YTEuMS1ocAotKwkJOzsKLSsJaHA5azc4WzAtOV0gfCBocDc4WzAtOV0pCi0rCQkjIEZJWE1FOiBy ZWFsbHkgaHBwYTIuMC1ocAotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCi0rCQk7OwotKwlo cDlrOFs2N10xIHwgaHA4WzY3XTEgfCBocDlrODBbMjRdIHwgaHA4MFsyNF0gfCBocDlrOFs3OF05 IHwgaHA4Wzc4XTkgfCBocDlrODkzIHwgaHA4OTMpCi0rCQkjIEZJWE1FOiByZWFsbHkgaHBwYTIu MC1ocAotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCi0rCQk7OwotKwlocDlrOFswLTldWzEz Njc5XSB8IGhwOFswLTldWzEzNjc5XSkKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAotKwkJ OzsKLSsJaHA5azhbMC05XVswLTldIHwgaHA4WzAtOV1bMC05XSkKLSsJCWJhc2ljX21hY2hpbmU9 aHBwYTEuMC1ocAotKwkJOzsKLSsJaHBwYS1uZXh0KQotKwkJb3M9LW5leHRzdGVwMwotKwkJOzsK LSsJaHBwYW9zZikKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAotKwkJb3M9LW9zZgotKwkJ OzsKLSsJaHBwcm8pCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLSsJCW9zPS1wcm9lbGYK LSsJCTs7Ci0rCWkzNzAtaWJtKiB8IGlibSopCi0rCQliYXNpY19tYWNoaW5lPWkzNzAtaWJtCi0r CQk7OwotKyMgSSdtIG5vdCBzdXJlIHdoYXQgIlN5c3YzMiIgbWVhbnMuICBTaG91bGQgdGhpcyBi ZSBzeXN2My4yPwotKwlpKjg2djMyKQotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAt ZSAncy84Ni4qLzg2LXBjLydgCi0rCQlvcz0tc3lzdjMyCi0rCQk7OwotKwlpKjg2djQqKQotKwkJ YmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCi0rCQlvcz0t c3lzdjQKLSsJCTs7Ci0rCWkqODZ2KQotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAt ZSAncy84Ni4qLzg2LXBjLydgCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJaSo4NnNvbDIpCi0rCQli YXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKLSsJCW9zPS1z b2xhcmlzMgotKwkJOzsKLSsJaTM4Nm1hY2gpCi0rCQliYXNpY19tYWNoaW5lPWkzODYtbWFjaAot KwkJb3M9LW1hY2gKLSsJCTs7Ci0rCWkzODYtdnN0YSB8IHZzdGEpCi0rCQliYXNpY19tYWNoaW5l PWkzODYtdW5rbm93bgotKwkJb3M9LXZzdGEKLSsJCTs7Ci0rCWlyaXMgfCBpcmlzNGQpCi0rCQli YXNpY19tYWNoaW5lPW1pcHMtc2dpCi0rCQljYXNlICRvcyBpbgotKwkJICAgIC1pcml4KikKLSsJ CQk7OwotKwkJICAgICopCi0rCQkJb3M9LWlyaXg0Ci0rCQkJOzsKLSsJCWVzYWMKLSsJCTs7Ci0r CWlzaTY4IHwgaXNpKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWlzaQotKwkJb3M9LXN5c3YKLSsJ CTs7Ci0rCW02OGtub21tdSkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay11bmtub3duCi0rCQlvcz0t bGludXgKLSsJCTs7Ci0rCW02OGtub21tdS0qKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWBlY2hv ICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0rCQlvcz0tbGludXgKLSsJCTs7 Ci0rCW04OGstb21yb24qKQotKwkJYmFzaWNfbWFjaGluZT1tODhrLW9tcm9uCi0rCQk7OwotKwlt YWdudW0gfCBtMzIzMCkKLSsJCWJhc2ljX21hY2hpbmU9bWlwcy1taXBzCi0rCQlvcz0tc3lzdgot KwkJOzsKLSsJbWVybGluKQotKwkJYmFzaWNfbWFjaGluZT1uczMyay11dGVrCi0rCQlvcz0tc3lz dgotKwkJOzsKLSsgICAgICAgIG1pY3JvYmxhemUpCi0rCQliYXNpY19tYWNoaW5lPW1pY3JvYmxh emUteGlsaW54Ci0rCQk7OwotKwltaW5ndzMyKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCi0r CQlvcz0tbWluZ3czMgotKwkJOzsKLSsJbWluZ3czMmNlKQotKwkJYmFzaWNfbWFjaGluZT1hcm0t dW5rbm93bgotKwkJb3M9LW1pbmd3MzJjZQotKwkJOzsKLSsJbWluaWZyYW1lKQotKwkJYmFzaWNf bWFjaGluZT1tNjgwMDAtY29udmVyZ2VudAotKwkJOzsKLSsJKm1pbnQgfCAtbWludFswLTldKiB8 ICpNaU5UIHwgKk1pTlRbMC05XSopCi0rCQliYXNpY19tYWNoaW5lPW02OGstYXRhcmkKLSsJCW9z PS1taW50Ci0rCQk7OwotKwltaXBzMyotKikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2lj X21hY2hpbmUgfCBzZWQgLWUgJ3MvbWlwczMvbWlwczY0LydgCi0rCQk7OwotKwltaXBzMyopCi0r CQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkIC1lICdzL21pcHMzL21p cHM2NC8nYC11bmtub3duCi0rCQk7OwotKwltb25pdG9yKQotKwkJYmFzaWNfbWFjaGluZT1tNjhr LXJvbTY4awotKwkJb3M9LWNvZmYKLSsJCTs7Ci0rCW1vcnBob3MpCi0rCQliYXNpY19tYWNoaW5l PXBvd2VycGMtdW5rbm93bgotKwkJb3M9LW1vcnBob3MKLSsJCTs7Ci0rCW1zZG9zKQotKwkJYmFz aWNfbWFjaGluZT1pMzg2LXBjCi0rCQlvcz0tbXNkb3MKLSsJCTs7Ci0rCW1zMS0qKQotKwkJYmFz aWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9tczEtL210LS8nYAot KwkJOzsKLSsJbXZzKQotKwkJYmFzaWNfbWFjaGluZT1pMzcwLWlibQotKwkJb3M9LW12cwotKwkJ OzsKLSsJbmNyMzAwMCkKLSsJCWJhc2ljX21hY2hpbmU9aTQ4Ni1uY3IKLSsJCW9zPS1zeXN2NAot KwkJOzsKLSsJbmV0YnNkMzg2KQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXVua25vd24KLSsJCW9z PS1uZXRic2QKLSsJCTs7Ci0rCW5ldHdpbmRlcikKLSsJCWJhc2ljX21hY2hpbmU9YXJtdjRsLXJl YmVsCi0rCQlvcz0tbGludXgKLSsJCTs7Ci0rCW5ld3MgfCBuZXdzNzAwIHwgbmV3czgwMCB8IG5l d3M5MDApCi0rCQliYXNpY19tYWNoaW5lPW02OGstc29ueQotKwkJb3M9LW5ld3NvcwotKwkJOzsK LSsJbmV3czEwMDApCi0rCQliYXNpY19tYWNoaW5lPW02ODAzMC1zb255Ci0rCQlvcz0tbmV3c29z Ci0rCQk7OwotKwluZXdzLTM2MDAgfCByaXNjLW5ld3MpCi0rCQliYXNpY19tYWNoaW5lPW1pcHMt c29ueQotKwkJb3M9LW5ld3NvcwotKwkJOzsKLSsJbmVjdjcwKQotKwkJYmFzaWNfbWFjaGluZT12 NzAtbmVjCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJbmV4dCB8IG0qLW5leHQgKQotKwkJYmFzaWNf bWFjaGluZT1tNjhrLW5leHQKLSsJCWNhc2UgJG9zIGluCi0rCQkgICAgLW5leHRzdGVwKiApCi0r CQkJOzsKLSsJCSAgICAtbnMyKikKLSsJCSAgICAgIG9zPS1uZXh0c3RlcDIKLSsJCQk7OwotKwkJ ICAgICopCi0rCQkgICAgICBvcz0tbmV4dHN0ZXAzCi0rCQkJOzsKLSsJCWVzYWMKLSsJCTs7Ci0r CW5oMzAwMCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1oYXJyaXMKLSsJCW9zPS1jeHV4Ci0rCQk7 OwotKwluaFs0NV0wMDApCi0rCQliYXNpY19tYWNoaW5lPW04OGstaGFycmlzCi0rCQlvcz0tY3h1 eAotKwkJOzsKLSsJbmluZHk5NjApCi0rCQliYXNpY19tYWNoaW5lPWk5NjAtaW50ZWwKLSsJCW9z PS1uaW5keQotKwkJOzsKLSsJbW9uOTYwKQotKwkJYmFzaWNfbWFjaGluZT1pOTYwLWludGVsCi0r CQlvcz0tbW9uOTYwCi0rCQk7OwotKwlub25zdG9wdXgpCi0rCQliYXNpY19tYWNoaW5lPW1pcHMt Y29tcGFxCi0rCQlvcz0tbm9uc3RvcHV4Ci0rCQk7OwotKwlucDEpCi0rCQliYXNpY19tYWNoaW5l PW5wMS1nb3VsZAotKwkJOzsKLSsJbnNyLXRhbmRlbSkKLSsJCWJhc2ljX21hY2hpbmU9bnNyLXRh bmRlbQotKwkJOzsKLSsJb3A1MG4tKiB8IG9wNjBjLSopCi0rCQliYXNpY19tYWNoaW5lPWhwcGEx LjEtb2tpCi0rCQlvcz0tcHJvZWxmCi0rCQk7OwotKwlvcGVucmlzYyB8IG9wZW5yaXNjLSopCi0r CQliYXNpY19tYWNoaW5lPW9yMzItdW5rbm93bgotKwkJOzsKLSsJb3M0MDApCi0rCQliYXNpY19t YWNoaW5lPXBvd2VycGMtaWJtCi0rCQlvcz0tb3M0MDAKLSsJCTs7Ci0rCU9TRTY4MDAwIHwgb3Nl NjgwMDApCi0rCQliYXNpY19tYWNoaW5lPW02ODAwMC1lcmljc3NvbgotKwkJb3M9LW9zZQotKwkJ OzsKLSsJb3M2OGspCi0rCQliYXNpY19tYWNoaW5lPW02OGstbm9uZQotKwkJb3M9LW9zNjhrCi0r CQk7OwotKwlwYS1oaXRhY2hpKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhpdGFjaGkKLSsJ CW9zPS1oaXV4d2UyCi0rCQk7OwotKwlwYXJhZ29uKQotKwkJYmFzaWNfbWFjaGluZT1pODYwLWlu dGVsCi0rCQlvcz0tb3NmCi0rCQk7OwotKwlwYXJpc2MpCi0rCQliYXNpY19tYWNoaW5lPWhwcGEt dW5rbm93bgotKwkJb3M9LWxpbnV4Ci0rCQk7OwotKwlwYXJpc2MtKikKLSsJCWJhc2ljX21hY2hp bmU9aHBwYS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJb3M9 LWxpbnV4Ci0rCQk7OwotKwlwYmQpCi0rCQliYXNpY19tYWNoaW5lPXNwYXJjLXR0aQotKwkJOzsK LSsJcGJiKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXR0aQotKwkJOzsKLSsJcGM1MzIgfCBwYzUz Mi0qKQotKwkJYmFzaWNfbWFjaGluZT1uczMyay1wYzUzMgotKwkJOzsKLSsJcGM5OCkKLSsJCWJh c2ljX21hY2hpbmU9aTM4Ni1wYwotKwkJOzsKLSsJcGM5OC0qKQotKwkJYmFzaWNfbWFjaGluZT1p Mzg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0rCQk7OwotKwlw ZW50aXVtIHwgcDUgfCBrNSB8IGs2IHwgbmV4Z2VuIHwgdmlhYzMpCi0rCQliYXNpY19tYWNoaW5l PWk1ODYtcGMKLSsJCTs7Ci0rCXBlbnRpdW1wcm8gfCBwNiB8IDZ4ODYgfCBhdGhsb24gfCBhdGhs b25fKikKLSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYwotKwkJOzsKLSsJcGVudGl1bWlpIHwgcGVu dGl1bTIgfCBwZW50aXVtaWlpIHwgcGVudGl1bTMpCi0rCQliYXNpY19tYWNoaW5lPWk2ODYtcGMK LSsJCTs7Ci0rCXBlbnRpdW00KQotKwkJYmFzaWNfbWFjaGluZT1pNzg2LXBjCi0rCQk7OwotKwlw ZW50aXVtLSogfCBwNS0qIHwgazUtKiB8IGs2LSogfCBuZXhnZW4tKiB8IHZpYWMzLSopCi0rCQli YXNpY19tYWNoaW5lPWk1ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8v J2AKLSsJCTs7Ci0rCXBlbnRpdW1wcm8tKiB8IHA2LSogfCA2eDg2LSogfCBhdGhsb24tKikKLSsJ CWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSot Ly8nYAotKwkJOzsKLSsJcGVudGl1bWlpLSogfCBwZW50aXVtMi0qIHwgcGVudGl1bWlpaS0qIHwg cGVudGl1bTMtKikKLSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8 IHNlZCAncy9eW14tXSotLy8nYAotKwkJOzsKLSsJcGVudGl1bTQtKikKLSsJCWJhc2ljX21hY2hp bmU9aTc4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJOzsK LSsJcG4pCi0rCQliYXNpY19tYWNoaW5lPXBuLWdvdWxkCi0rCQk7OwotKwlwb3dlcikJYmFzaWNf bWFjaGluZT1wb3dlci1pYm0KLSsJCTs7Ci0rCXBwYykJYmFzaWNfbWFjaGluZT1wb3dlcnBjLXVu a25vd24KLSsJCTs7Ci0rCXBwYy0qKQliYXNpY19tYWNoaW5lPXBvd2VycGMtYGVjaG8gJGJhc2lj X21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBwY2xlIHwgcG93ZXJwY2xp dHRsZSB8IHBwYy1sZSB8IHBvd2VycGMtbGl0dGxlKQotKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBj bGUtdW5rbm93bgotKwkJOzsKLSsJcHBjbGUtKiB8IHBvd2VycGNsaXR0bGUtKikKLSsJCWJhc2lj X21hY2hpbmU9cG93ZXJwY2xlLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0v LydgCi0rCQk7OwotKwlwcGM2NCkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjQtdW5rbm93bgotKwkJ OzsKLSsJcHBjNjQtKikgYmFzaWNfbWFjaGluZT1wb3dlcnBjNjQtYGVjaG8gJGJhc2ljX21hY2hp bmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBwYzY0bGUgfCBwb3dlcnBjNjRsaXR0 bGUgfCBwcGM2NC1sZSB8IHBvd2VycGM2NC1saXR0bGUpCi0rCQliYXNpY19tYWNoaW5lPXBvd2Vy cGM2NGxlLXVua25vd24KLSsJCTs7Ci0rCXBwYzY0bGUtKiB8IHBvd2VycGM2NGxpdHRsZS0qKQot KwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjRsZS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAn cy9eW14tXSotLy8nYAotKwkJOzsKLSsJcHMyKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LWlibQot KwkJOzsKLSsJcHczMikKLSsJCWJhc2ljX21hY2hpbmU9aTU4Ni11bmtub3duCi0rCQlvcz0tcHcz MgotKwkJOzsKLSsJcmRvcykKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwotKwkJb3M9LXJkb3MK LSsJCTs7Ci0rCXJvbTY4aykKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1yb202OGsKLSsJCW9zPS1j b2ZmCi0rCQk7OwotKwlybVs0Nl0wMCkKLSsJCWJhc2ljX21hY2hpbmU9bWlwcy1zaWVtZW5zCi0r CQk7OwotKwlydHBjIHwgcnRwYy0qKQotKwkJYmFzaWNfbWFjaGluZT1yb21wLWlibQotKwkJOzsK LSsJczM5MCB8IHMzOTAtKikKLSsJCWJhc2ljX21hY2hpbmU9czM5MC1pYm0KLSsJCTs7Ci0rCXMz OTB4IHwgczM5MHgtKikKLSsJCWJhc2ljX21hY2hpbmU9czM5MHgtaWJtCi0rCQk7OwotKwlzYTI5 MjAwKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAotKwkJb3M9LXVkaQotKwkJOzsKLSsJc2Ix KQotKwkJYmFzaWNfbWFjaGluZT1taXBzaXNhNjRzYjEtdW5rbm93bgotKwkJOzsKLSsJc2IxZWwp Ci0rCQliYXNpY19tYWNoaW5lPW1pcHNpc2E2NHNiMWVsLXVua25vd24KLSsJCTs7Ci0rCXNkZSkK LSsJCWJhc2ljX21hY2hpbmU9bWlwc2lzYTMyLXNkZQotKwkJb3M9LWVsZgotKwkJOzsKLSsJc2Vp KQotKwkJYmFzaWNfbWFjaGluZT1taXBzLXNlaQotKwkJb3M9LXNlaXV4Ci0rCQk7OwotKwlzZXF1 ZW50KQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXNlcXVlbnQKLSsJCTs7Ci0rCXNoKQotKwkJYmFz aWNfbWFjaGluZT1zaC1oaXRhY2hpCi0rCQlvcz0taG1zCi0rCQk7OwotKwlzaDVlbCkKLSsJCWJh c2ljX21hY2hpbmU9c2g1bGUtdW5rbm93bgotKwkJOzsKLSsJc2g2NCkKLSsJCWJhc2ljX21hY2hp bmU9c2g2NC11bmtub3duCi0rCQk7OwotKwlzcGFyY2xpdGUtd3JzIHwgc2ltc28td3JzKQotKwkJ YmFzaWNfbWFjaGluZT1zcGFyY2xpdGUtd3JzCi0rCQlvcz0tdnh3b3JrcwotKwkJOzsKLSsJc3Bz NykKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCi0rCQlvcz0tc3lzdjIKLSsJCTs7Ci0rCXNw dXIpCi0rCQliYXNpY19tYWNoaW5lPXNwdXItdW5rbm93bgotKwkJOzsKLSsJc3QyMDAwKQotKwkJ YmFzaWNfbWFjaGluZT1tNjhrLXRhbmRlbQotKwkJOzsKLSsJc3RyYXR1cykKLSsJCWJhc2ljX21h Y2hpbmU9aTg2MC1zdHJhdHVzCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0rCXN1bjIpCi0rCQliYXNp Y19tYWNoaW5lPW02ODAwMC1zdW4KLSsJCTs7Ci0rCXN1bjJvczMpCi0rCQliYXNpY19tYWNoaW5l PW02ODAwMC1zdW4KLSsJCW9zPS1zdW5vczMKLSsJCTs7Ci0rCXN1bjJvczQpCi0rCQliYXNpY19t YWNoaW5lPW02ODAwMC1zdW4KLSsJCW9zPS1zdW5vczQKLSsJCTs7Ci0rCXN1bjNvczMpCi0rCQli YXNpY19tYWNoaW5lPW02OGstc3VuCi0rCQlvcz0tc3Vub3MzCi0rCQk7OwotKwlzdW4zb3M0KQot KwkJYmFzaWNfbWFjaGluZT1tNjhrLXN1bgotKwkJb3M9LXN1bm9zNAotKwkJOzsKLSsJc3VuNG9z MykKLSsJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCi0rCQlvcz0tc3Vub3MzCi0rCQk7OwotKwlz dW40b3M0KQotKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLSsJCW9zPS1zdW5vczQKLSsJCTs7 Ci0rCXN1bjRzb2wyKQotKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLSsJCW9zPS1zb2xhcmlz MgotKwkJOzsKLSsJc3VuMyB8IHN1bjMtKikKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1zdW4KLSsJ CTs7Ci0rCXN1bjQpCi0rCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgotKwkJOzsKLSsJc3VuMzg2 IHwgc3VuMzg2aSB8IHJvYWRydW5uZXIpCi0rCQliYXNpY19tYWNoaW5lPWkzODYtc3VuCi0rCQk7 OwotKwlzdjEpCi0rCQliYXNpY19tYWNoaW5lPXN2MS1jcmF5Ci0rCQlvcz0tdW5pY29zCi0rCQk7 OwotKwlzeW1tZXRyeSkKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1zZXF1ZW50Ci0rCQlvcz0tZHlu aXgKLSsJCTs7Ci0rCXQzZSkKLSsJCWJhc2ljX21hY2hpbmU9YWxwaGFldjUtY3JheQotKwkJb3M9 LXVuaWNvcwotKwkJOzsKLSsJdDkwKQotKwkJYmFzaWNfbWFjaGluZT10OTAtY3JheQotKwkJb3M9 LXVuaWNvcwotKwkJOzsKLSsJdGljNTR4IHwgYzU0eCopCi0rCQliYXNpY19tYWNoaW5lPXRpYzU0 eC11bmtub3duCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJdGljNTV4IHwgYzU1eCopCi0rCQliYXNp Y19tYWNoaW5lPXRpYzU1eC11bmtub3duCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJdGljNnggfCBj NngqKQotKwkJYmFzaWNfbWFjaGluZT10aWM2eC11bmtub3duCi0rCQlvcz0tY29mZgotKwkJOzsK LSsJdGlsZSopCi0rCQliYXNpY19tYWNoaW5lPXRpbGUtdW5rbm93bgotKwkJb3M9LWxpbnV4LWdu dQotKwkJOzsKLSsJdHgzOSkKLSsJCWJhc2ljX21hY2hpbmU9bWlwc3R4MzktdW5rbm93bgotKwkJ OzsKLSsJdHgzOWVsKQotKwkJYmFzaWNfbWFjaGluZT1taXBzdHgzOWVsLXVua25vd24KLSsJCTs7 Ci0rCXRvYWQxKQotKwkJYmFzaWNfbWFjaGluZT1wZHAxMC14a2wKLSsJCW9zPS10b3BzMjAKLSsJ CTs7Ci0rCXRvd2VyIHwgdG93ZXItMzIpCi0rCQliYXNpY19tYWNoaW5lPW02OGstbmNyCi0rCQk7 OwotKwl0cGYpCi0rCQliYXNpY19tYWNoaW5lPXMzOTB4LWlibQotKwkJb3M9LXRwZgotKwkJOzsK LSsJdWRpMjlrKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAotKwkJb3M9LXVkaQotKwkJOzsK LSsJdWx0cmEzKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLW55dQotKwkJb3M9LXN5bTEKLSsJCTs7 Ci0rCXY4MTAgfCBuZWN2ODEwKQotKwkJYmFzaWNfbWFjaGluZT12ODEwLW5lYwotKwkJb3M9LW5v bmUKLSsJCTs7Ci0rCXZheHYpCi0rCQliYXNpY19tYWNoaW5lPXZheC1kZWMKLSsJCW9zPS1zeXN2 Ci0rCQk7OwotKwl2bXMpCi0rCQliYXNpY19tYWNoaW5lPXZheC1kZWMKLSsJCW9zPS12bXMKLSsJ CTs7Ci0rCXZwcCp8dnh8dngtKikKLSsJCWJhc2ljX21hY2hpbmU9ZjMwMS1mdWppdHN1Ci0rCQk7 OwotKwl2eHdvcmtzOTYwKQotKwkJYmFzaWNfbWFjaGluZT1pOTYwLXdycwotKwkJb3M9LXZ4d29y a3MKLSsJCTs7Ci0rCXZ4d29ya3M2OCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay13cnMKLSsJCW9z PS12eHdvcmtzCi0rCQk7OwotKwl2eHdvcmtzMjlrKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLXdy cwotKwkJb3M9LXZ4d29ya3MKLSsJCTs7Ci0rCXc2NSopCi0rCQliYXNpY19tYWNoaW5lPXc2NS13 ZGMKLSsJCW9zPS1ub25lCi0rCQk7OwotKwl3ODlrLSopCi0rCQliYXNpY19tYWNoaW5lPWhwcGEx LjEtd2luYm9uZAotKwkJb3M9LXByb2VsZgotKwkJOzsKLSsJeGJveCkKLSsJCWJhc2ljX21hY2hp bmU9aTY4Ni1wYwotKwkJb3M9LW1pbmd3MzIKLSsJCTs7Ci0rCXhwcyB8IHhwczEwMCkKLSsJCWJh c2ljX21hY2hpbmU9eHBzMTAwLWhvbmV5d2VsbAotKwkJOzsKLSsJeW1wKQotKwkJYmFzaWNfbWFj aGluZT15bXAtY3JheQotKwkJb3M9LXVuaWNvcwotKwkJOzsKLSsJejhrLSotY29mZikKLSsJCWJh c2ljX21hY2hpbmU9ejhrLXVua25vd24KLSsJCW9zPS1zaW0KLSsJCTs7Ci0rCXo4MC0qLWNvZmYp Ci0rCQliYXNpY19tYWNoaW5lPXo4MC11bmtub3duCi0rCQlvcz0tc2ltCi0rCQk7OwotKwlub25l KQotKwkJYmFzaWNfbWFjaGluZT1ub25lLW5vbmUKLSsJCW9zPS1ub25lCi0rCQk7OwotKwotKyMg SGVyZSB3ZSBoYW5kbGUgdGhlIGRlZmF1bHQgbWFudWZhY3R1cmVyIG9mIGNlcnRhaW4gQ1BVIHR5 cGVzLiAgSXQgaXMgaW4KLSsjIHNvbWUgY2FzZXMgdGhlIG9ubHkgbWFudWZhY3R1cmVyLCBpbiBv dGhlcnMsIGl0IGlzIHRoZSBtb3N0IHBvcHVsYXIuCi0rCXc4OWspCi0rCQliYXNpY19tYWNoaW5l PWhwcGExLjEtd2luYm9uZAotKwkJOzsKLSsJb3A1MG4pCi0rCQliYXNpY19tYWNoaW5lPWhwcGEx LjEtb2tpCi0rCQk7OwotKwlvcDYwYykKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1va2kKLSsJ CTs7Ci0rCXJvbXApCi0rCQliYXNpY19tYWNoaW5lPXJvbXAtaWJtCi0rCQk7OwotKwltbWl4KQot KwkJYmFzaWNfbWFjaGluZT1tbWl4LWtudXRoCi0rCQk7OwotKwlyczYwMDApCi0rCQliYXNpY19t YWNoaW5lPXJzNjAwMC1pYm0KLSsJCTs7Ci0rCXZheCkKLSsJCWJhc2ljX21hY2hpbmU9dmF4LWRl YwotKwkJOzsKLSsJcGRwMTApCi0rCQkjIHRoZXJlIGFyZSBtYW55IGNsb25lcywgc28gREVDIGlz IG5vdCBhIHNhZmUgYmV0Ci0rCQliYXNpY19tYWNoaW5lPXBkcDEwLXVua25vd24KLSsJCTs7Ci0r CXBkcDExKQotKwkJYmFzaWNfbWFjaGluZT1wZHAxMS1kZWMKLSsJCTs7Ci0rCXdlMzJrKQotKwkJ YmFzaWNfbWFjaGluZT13ZTMyay1hdHQKLSsJCTs7Ci0rCXNoWzEyMzRdIHwgc2hbMjRdYSB8IHNo WzI0XWFlYiB8IHNoWzM0XWViIHwgc2hbMTIzNF1sZSB8IHNoWzIzXWVsZSkKLSsJCWJhc2ljX21h Y2hpbmU9c2gtdW5rbm93bgotKwkJOzsKLSsJc3BhcmMgfCBzcGFyY3Y4IHwgc3BhcmN2OSB8IHNw YXJjdjliIHwgc3BhcmN2OXYpCi0rCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgotKwkJOzsKLSsJ Y3lkcmEpCi0rCQliYXNpY19tYWNoaW5lPWN5ZHJhLWN5ZHJvbWUKLSsJCTs7Ci0rCW9yaW9uKQot KwkJYmFzaWNfbWFjaGluZT1vcmlvbi1oaWdobGV2ZWwKLSsJCTs7Ci0rCW9yaW9uMTA1KQotKwkJ YmFzaWNfbWFjaGluZT1jbGlwcGVyLWhpZ2hsZXZlbAotKwkJOzsKLSsJbWFjIHwgbXB3IHwgbWFj LW1wdykKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1hcHBsZQotKwkJOzsKLSsJcG1hYyB8IHBtYWMt bXB3KQotKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWFwcGxlCi0rCQk7OwotKwkqLXVua25vd24p Ci0rCQkjIE1ha2Ugc3VyZSB0byBtYXRjaCBhbiBhbHJlYWR5LWNhbm9uaWNhbGl6ZWQgbWFjaGlu ZSBuYW1lLgotKwkJOzsKLSsJKikKLSsJCWVjaG8gSW52YWxpZCBjb25maWd1cmF0aW9uIFxgJDFc JzogbWFjaGluZSBcYCRiYXNpY19tYWNoaW5lXCcgbm90IHJlY29nbml6ZWQgMT4mMgotKwkJZXhp dCAxCi0rCQk7OwotK2VzYWMKLSsKLSsjIEhlcmUgd2UgY2Fub25pY2FsaXplIGNlcnRhaW4gYWxp YXNlcyBmb3IgbWFudWZhY3R1cmVycy4KLStjYXNlICRiYXNpY19tYWNoaW5lIGluCi0rCSotZGln aXRhbCopCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL2Rp Z2l0YWwuKi9kZWMvJ2AKLSsJCTs7Ci0rCSotY29tbW9kb3JlKikKLSsJCWJhc2ljX21hY2hpbmU9 YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvY29tbW9kb3JlLiovY2JtLydgCi0rCQk7Owot KwkqKQotKwkJOzsKLStlc2FjCi0rCi0rIyBEZWNvZGUgbWFudWZhY3R1cmVyLXNwZWNpZmljIGFs aWFzZXMgZm9yIGNlcnRhaW4gb3BlcmF0aW5nIHN5c3RlbXMuCi0rCi0raWYgWyB4IiRvcyIgIT0g eCIiIF0KLSt0aGVuCi0rY2FzZSAkb3MgaW4KLSsgICAgICAgICMgRmlyc3QgbWF0Y2ggc29tZSBz eXN0ZW0gdHlwZSBhbGlhc2VzCi0rICAgICAgICAjIHRoYXQgbWlnaHQgZ2V0IGNvbmZ1c2VkIHdp dGggdmFsaWQgc3lzdGVtIHR5cGVzLgotKwkjIC1zb2xhcmlzKiBpcyBhIGJhc2ljIHN5c3RlbSB0 eXBlLCB3aXRoIHRoaXMgb25lIGV4Y2VwdGlvbi4KLSsgICAgICAgIC1hdXJvcmF1eCkKLSsJICAg ICAgICBvcz0tYXVyb3JhdXgKLSsJCTs7Ci0rCS1zb2xhcmlzMSB8IC1zb2xhcmlzMS4qKQotKwkJ b3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHNvbGFyaXMxfHN1bm9zNHwnYAotKwkJOzsKLSsJLXNv bGFyaXMpCi0rCQlvcz0tc29sYXJpczIKLSsJCTs7Ci0rCS1zdnI0KikKLSsJCW9zPS1zeXN2NAot KwkJOzsKLSsJLXVuaXh3YXJlKikKLSsJCW9zPS1zeXN2NC4ydXcKLSsJCTs7Ci0rCS1nbnUvbGlu dXgqKQotKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfGdudS9saW51eHxsaW51eC1nbnV8J2AK LSsJCTs7Ci0rCSMgRmlyc3QgYWNjZXB0IHRoZSBiYXNpYyBzeXN0ZW0gdHlwZXMuCi0rCSMgVGhl IHBvcnRhYmxlIHN5c3RlbXMgY29tZXMgZmlyc3QuCi0rCSMgRWFjaCBhbHRlcm5hdGl2ZSBNVVNU IEVORCBJTiBBICosIHRvIG1hdGNoIGEgdmVyc2lvbiBudW1iZXIuCi0rCSMgLXN5c3YqIGlzIG5v dCBoZXJlIGJlY2F1c2UgaXQgY29tZXMgbGF0ZXIsIGFmdGVyIHN5c3ZyNC4KLSsJLWdudSogfCAt YnNkKiB8IC1tYWNoKiB8IC1taW5peCogfCAtZ2VuaXgqIHwgLXVsdHJpeCogfCAtaXJpeCogXAot KwkgICAgICB8IC0qdm1zKiB8IC1zY28qIHwgLWVzaXgqIHwgLWlzYyogfCAtYWl4KiB8IC1jbmsq IHwgLXN1bm9zIHwgLXN1bm9zWzM0XSpcCi0rCSAgICAgIHwgLWhwdXgqIHwgLXVub3MqIHwgLW9z ZiogfCAtbHVuYSogfCAtZGd1eCogfCAtYXVyb3JhdXgqIHwgLXNvbGFyaXMqIFwKLSsJICAgICAg fCAtc3ltKiB8IC1rb3BlbnNvbGFyaXMqIFwKLSsJICAgICAgfCAtYW1pZ2FvcyogfCAtYW1pZ2Fk b3MqIHwgLW1zZG9zKiB8IC1uZXdzb3MqIHwgLXVuaWNvcyogfCAtYW9mKiBcCi0rCSAgICAgIHwg LWFvcyogfCAtYXJvcyogXAotKwkgICAgICB8IC1uaW5keSogfCAtdnhzaW0qIHwgLXZ4d29ya3Mq IHwgLWVibW9uKiB8IC1obXMqIHwgLW12cyogXAotKwkgICAgICB8IC1jbGl4KiB8IC1yaXNjb3Mq IHwgLXVuaXBsdXMqIHwgLWlyaXMqIHwgLXJ0dSogfCAteGVuaXgqIFwKLSsJICAgICAgfCAtaGl1 eCogfCAtMzg2YnNkKiB8IC1rbmV0YnNkKiB8IC1taXJic2QqIHwgLW5ldGJzZCogXAotKwkgICAg ICB8IC1vcGVuYnNkKiB8IC1zb2xpZGJzZCogXAotKwkgICAgICB8IC1la2tvYnNkKiB8IC1rZnJl ZWJzZCogfCAtZnJlZWJzZCogfCAtcmlzY2l4KiB8IC1seW54b3MqIFwKLSsJICAgICAgfCAtYm9z eCogfCAtbmV4dHN0ZXAqIHwgLWN4dXgqIHwgLWFvdXQqIHwgLWVsZiogfCAtb2FiaSogXAotKwkg ICAgICB8IC1wdHgqIHwgLWNvZmYqIHwgLWVjb2ZmKiB8IC13aW5udCogfCAtZG9tYWluKiB8IC12 c3RhKiBcCi0rCSAgICAgIHwgLXVkaSogfCAtZWFiaSogfCAtbGl0ZXMqIHwgLWllZWUqIHwgLWdv MzIqIHwgLWF1eCogXAotKwkgICAgICB8IC1jaG9ydXNvcyogfCAtY2hvcnVzcmRiKiB8IC1jZWdj YyogXAotKwkgICAgICB8IC1jeWd3aW4qIHwgLXBlKiB8IC1wc29zKiB8IC1tb3NzKiB8IC1wcm9l bGYqIHwgLXJ0ZW1zKiBcCi0rCSAgICAgIHwgLW1pbmd3MzIqIHwgLWxpbnV4LWdudSogfCAtbGlu dXgtbmV3bGliKiB8IC1saW51eC11Y2xpYmMqIFwKLSsJICAgICAgfCAtdXhwdiogfCAtYmVvcyog fCAtbXBlaXgqIHwgLXVkayogXAotKwkgICAgICB8IC1pbnRlcml4KiB8IC11d2luKiB8IC1ta3Mq IHwgLXJoYXBzb2R5KiB8IC1kYXJ3aW4qIHwgLW9wZW5lZCogXAotKwkgICAgICB8IC1vcGVuc3Rl cCogfCAtb3NraXQqIHwgLWNvbml4KiB8IC1wdzMyKiB8IC1ub25zdG9wdXgqIFwKLSsJICAgICAg fCAtc3Rvcm0tY2hhb3MqIHwgLXRvcHMxMCogfCAtdGVuZXgqIHwgLXRvcHMyMCogfCAtaXRzKiBc Ci0rCSAgICAgIHwgLW9zMiogfCAtdm9zKiB8IC1wYWxtb3MqIHwgLXVjbGludXgqIHwgLW51Y2xl dXMqIFwKLSsJICAgICAgfCAtbW9ycGhvcyogfCAtc3VwZXJ1eCogfCAtcnRtayogfCAtcnRtay1u b3ZhKiB8IC13aW5kaXNzKiBcCi0rCSAgICAgIHwgLXBvd2VybWF4KiB8IC1kbml4KiB8IC1ueDYg fCAtbng3IHwgLXNlaSogfCAtZHJhZ29uZmx5KiBcCi0rCSAgICAgIHwgLXNreW9zKiB8IC1oYWlr dSogfCAtcmRvcyogfCAtdG9wcGVycyogfCAtZHJvcHMqIHwgLWVzKikKLSsJIyBSZW1lbWJlciwg ZWFjaCBhbHRlcm5hdGl2ZSBNVVNUIEVORCBJTiAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVy LgotKwkJOzsKLSsJLXFueCopCi0rCQljYXNlICRiYXNpY19tYWNoaW5lIGluCi0rCQkgICAgeDg2 LSogfCBpKjg2LSopCi0rCQkJOzsKLSsJCSAgICAqKQotKwkJCW9zPS1udG8kb3MKLSsJCQk7Owot KwkJZXNhYwotKwkJOzsKLSsJLW50by1xbngqKQotKwkJOzsKLSsJLW50byopCi0rCQlvcz1gZWNo byAkb3MgfCBzZWQgLWUgJ3N8bnRvfG50by1xbnh8J2AKLSsJCTs7Ci0rCS1zaW0gfCAtZXMxODAw KiB8IC1obXMqIHwgLXhyYXkgfCAtb3M2OGsqIHwgLW5vbmUqIHwgLXY4OHIqIFwKLSsJICAgICAg fCAtd2luZG93cyogfCAtb3N4IHwgLWFidWcgfCAtbmV0d2FyZSogfCAtb3M5KiB8IC1iZW9zKiB8 IC1oYWlrdSogXAotKwkgICAgICB8IC1tYWNvcyogfCAtbXB3KiB8IC1tYWdpYyogfCAtbW1peHdh cmUqIHwgLW1vbjk2MCogfCAtbG5ld3MqKQotKwkJOzsKLSsJLW1hYyopCi0rCQlvcz1gZWNobyAk b3MgfCBzZWQgLWUgJ3N8bWFjfG1hY29zfCdgCi0rCQk7OwotKwktbGludXgtZGlldGxpYmMpCi0r CQlvcz0tbGludXgtZGlldGxpYmMKLSsJCTs7Ci0rCS1saW51eCopCi0rCQlvcz1gZWNobyAkb3Mg fCBzZWQgLWUgJ3N8bGludXh8bGludXgtZ251fCdgCi0rCQk7OwotKwktc3Vub3M1KikKLSsJCW9z PWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzdW5vczV8c29sYXJpczJ8J2AKLSsJCTs7Ci0rCS1zdW5v czYqKQotKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHN1bm9zNnxzb2xhcmlzM3wnYAotKwkJ OzsKLSsJLW9wZW5lZCopCi0rCQlvcz0tb3BlbmVkaXRpb24KLSsJCTs7Ci0rICAgICAgICAtb3M0 MDAqKQotKwkJb3M9LW9zNDAwCi0rCQk7OwotKwktd2luY2UqKQotKwkJb3M9LXdpbmNlCi0rCQk7 OwotKwktb3Nmcm9zZSopCi0rCQlvcz0tb3Nmcm9zZQotKwkJOzsKLSsJLW9zZiopCi0rCQlvcz0t b3NmCi0rCQk7OwotKwktdXRlayopCi0rCQlvcz0tYnNkCi0rCQk7OwotKwktZHluaXgqKQotKwkJ b3M9LWJzZAotKwkJOzsKLSsJLWFjaXMqKQotKwkJb3M9LWFvcwotKwkJOzsKLSsJLWF0aGVvcyop Ci0rCQlvcz0tYXRoZW9zCi0rCQk7OwotKwktc3lsbGFibGUqKQotKwkJb3M9LXN5bGxhYmxlCi0r CQk7OwotKwktMzg2YnNkKQotKwkJb3M9LWJzZAotKwkJOzsKLSsJLWN0aXgqIHwgLXV0cyopCi0r CQlvcz0tc3lzdgotKwkJOzsKLSsJLW5vdmEqKQotKwkJb3M9LXJ0bWstbm92YQotKwkJOzsKLSsJ LW5zMiApCi0rCQlvcz0tbmV4dHN0ZXAyCi0rCQk7OwotKwktbnNrKikKLSsJCW9zPS1uc2sKLSsJ CTs7Ci0rCSMgUHJlc2VydmUgdGhlIHZlcnNpb24gbnVtYmVyIG9mIHNpbml4NS4KLSsJLXNpbml4 NS4qKQotKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHNpbml4fHN5c3Z8J2AKLSsJCTs7Ci0r CS1zaW5peCopCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0rICAgICAgICAtdHBmKikKLSsJCW9zPS10 cGYKLSsJCTs7Ci0rCS10cml0b24qKQotKwkJb3M9LXN5c3YzCi0rCQk7OwotKwktb3NzKikKLSsJ CW9zPS1zeXN2MwotKwkJOzsKLSsJLXN2cjQpCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0rCS1zdnIz KQotKwkJb3M9LXN5c3YzCi0rCQk7OwotKwktc3lzdnI0KQotKwkJb3M9LXN5c3Y0Ci0rCQk7Owot KwkjIFRoaXMgbXVzdCBjb21lIGFmdGVyIC1zeXN2cjQuCi0rCS1zeXN2KikKLSsJCTs7Ci0rCS1v c2UqKQotKwkJb3M9LW9zZQotKwkJOzsKLSsJLWVzMTgwMCopCi0rCQlvcz0tb3NlCi0rCQk7Owot KwkteGVuaXgpCi0rCQlvcz0teGVuaXgKLSsJCTs7Ci0rCS0qbWludCB8IC1taW50WzAtOV0qIHwg LSpNaU5UIHwgLU1pTlRbMC05XSopCi0rCQlvcz0tbWludAotKwkJOzsKLSsJLWFyb3MqKQotKwkJ b3M9LWFyb3MKLSsJCTs7Ci0rCS1rYW9zKikKLSsJCW9zPS1rYW9zCi0rCQk7OwotKwktenZtb2Up Ci0rCQlvcz0tenZtb2UKLSsJCTs7Ci0rCS1kaWNvcyopCi0rCQlvcz0tZGljb3MKLSsJCTs7Ci0r CS1ub25lKQotKwkJOzsKLSsJKikKLSsJCSMgR2V0IHJpZCBvZiB0aGUgYC0nIGF0IHRoZSBiZWdp bm5pbmcgb2YgJG9zLgotKwkJb3M9YGVjaG8gJG9zIHwgc2VkICdzL1teLV0qLS8vJ2AKLSsJCWVj aG8gSW52YWxpZCBjb25maWd1cmF0aW9uIFxgJDFcJzogc3lzdGVtIFxgJG9zXCcgbm90IHJlY29n bml6ZWQgMT4mMgotKwkJZXhpdCAxCi0rCQk7OwotK2VzYWMKLStlbHNlCi0rCi0rIyBIZXJlIHdl IGhhbmRsZSB0aGUgZGVmYXVsdCBvcGVyYXRpbmcgc3lzdGVtcyB0aGF0IGNvbWUgd2l0aCB2YXJp b3VzIG1hY2hpbmVzLgotKyMgVGhlIHZhbHVlIHNob3VsZCBiZSB3aGF0IHRoZSB2ZW5kb3IgY3Vy cmVudGx5IHNoaXBzIG91dCB0aGUgZG9vciB3aXRoIHRoZWlyCi0rIyBtYWNoaW5lIG9yIHB1dCBh bm90aGVyIHdheSwgdGhlIG1vc3QgcG9wdWxhciBvcyBwcm92aWRlZCB3aXRoIHRoZSBtYWNoaW5l LgotKwotKyMgTm90ZSB0aGF0IGlmIHlvdSdyZSBnb2luZyB0byB0cnkgdG8gbWF0Y2ggIi1NQU5V RkFDVFVSRVIiIGhlcmUgKHNheSwKLSsjICItc3VuIiksIHRoZW4geW91IGhhdmUgdG8gdGVsbCB0 aGUgY2FzZSBzdGF0ZW1lbnQgdXAgdG93YXJkcyB0aGUgdG9wCi0rIyB0aGF0IE1BTlVGQUNUVVJF UiBpc24ndCBhbiBvcGVyYXRpbmcgc3lzdGVtLiAgT3RoZXJ3aXNlLCBjb2RlIGFib3ZlCi0rIyB3 aWxsIHNpZ25hbCBhbiBlcnJvciBzYXlpbmcgdGhhdCBNQU5VRkFDVFVSRVIgaXNuJ3QgYW4gb3Bl cmF0aW5nCi0rIyBzeXN0ZW0sIGFuZCB3ZSdsbCBuZXZlciBnZXQgdG8gdGhpcyBwb2ludC4KLSsK LStjYXNlICRiYXNpY19tYWNoaW5lIGluCi0rICAgICAgICBzY29yZS0qKQotKwkJb3M9LWVsZgot KwkJOzsKLSsgICAgICAgIHNwdS0qKQotKwkJb3M9LWVsZgotKwkJOzsKLSsJKi1hY29ybikKLSsJ CW9zPS1yaXNjaXgxLjIKLSsJCTs7Ci0rCWFybSotcmViZWwpCi0rCQlvcz0tbGludXgKLSsJCTs7 Ci0rCWFybSotc2VtaSkKLSsJCW9zPS1hb3V0Ci0rCQk7OwotKyAgICAgICAgYzR4LSogfCB0aWM0 eC0qKQotKyAgICAgICAgCW9zPS1jb2ZmCi0rCQk7OwotKwkjIFRoaXMgbXVzdCBjb21lIGJlZm9y ZSB0aGUgKi1kZWMgZW50cnkuCi0rCXBkcDEwLSopCi0rCQlvcz0tdG9wczIwCi0rCQk7OwotKwlw ZHAxMS0qKQotKwkJb3M9LW5vbmUKLSsJCTs7Ci0rCSotZGVjIHwgdmF4LSopCi0rCQlvcz0tdWx0 cml4NC4yCi0rCQk7OwotKwltNjgqLWFwb2xsbykKLSsJCW9zPS1kb21haW4KLSsJCTs7Ci0rCWkz ODYtc3VuKQotKwkJb3M9LXN1bm9zNC4wLjIKLSsJCTs7Ci0rCW02ODAwMC1zdW4pCi0rCQlvcz0t c3Vub3MzCi0rCQkjIFRoaXMgYWxzbyBleGlzdHMgaW4gdGhlIGNvbmZpZ3VyZSBwcm9ncmFtLCBi dXQgd2FzIG5vdCB0aGUKLSsJCSMgZGVmYXVsdC4KLSsJCSMgb3M9LXN1bm9zNAotKwkJOzsKLSsJ bTY4Ki1jaXNjbykKLSsJCW9zPS1hb3V0Ci0rCQk7OwotKyAgICAgICAgbWVwLSopCi0rCQlvcz0t ZWxmCi0rCQk7OwotKwltaXBzKi1jaXNjbykKLSsJCW9zPS1lbGYKLSsJCTs7Ci0rCW1pcHMqLSop Ci0rCQlvcz0tZWxmCi0rCQk7OwotKwlvcjMyLSopCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJKi10 dGkpCSMgbXVzdCBiZSBiZWZvcmUgc3BhcmMgZW50cnkgb3Igd2UgZ2V0IHRoZSB3cm9uZyBvcy4K LSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJc3BhcmMtKiB8ICotc3VuKQotKwkJb3M9LXN1bm9zNC4x LjEKLSsJCTs7Ci0rCSotYmUpCi0rCQlvcz0tYmVvcwotKwkJOzsKLSsJKi1oYWlrdSkKLSsJCW9z PS1oYWlrdQotKwkJOzsKLSsJKi1pYm0pCi0rCQlvcz0tYWl4Ci0rCQk7OwotKyAgICAJKi1rbnV0 aCkKLSsJCW9zPS1tbWl4d2FyZQotKwkJOzsKLSsJKi13ZWMpCi0rCQlvcz0tcHJvZWxmCi0rCQk7 OwotKwkqLXdpbmJvbmQpCi0rCQlvcz0tcHJvZWxmCi0rCQk7OwotKwkqLW9raSkKLSsJCW9zPS1w cm9lbGYKLSsJCTs7Ci0rCSotaHApCi0rCQlvcz0taHB1eAotKwkJOzsKLSsJKi1oaXRhY2hpKQot KwkJb3M9LWhpdXgKLSsJCTs7Ci0rCWk4NjAtKiB8ICotYXR0IHwgKi1uY3IgfCAqLWFsdG9zIHwg Ki1tb3Rvcm9sYSB8ICotY29udmVyZ2VudCkKLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwkqLWNibSkK LSsJCW9zPS1hbWlnYW9zCi0rCQk7OwotKwkqLWRnKQotKwkJb3M9LWRndXgKLSsJCTs7Ci0rCSot ZG9scGhpbikKLSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJbTY4ay1jY3VyKQotKwkJb3M9LXJ0dQot KwkJOzsKLSsJbTg4ay1vbXJvbiopCi0rCQlvcz0tbHVuYQotKwkJOzsKLSsJKi1uZXh0ICkKLSsJ CW9zPS1uZXh0c3RlcAotKwkJOzsKLSsJKi1zZXF1ZW50KQotKwkJb3M9LXB0eAotKwkJOzsKLSsJ Ki1jcmRzKQotKwkJb3M9LXVub3MKLSsJCTs7Ci0rCSotbnMpCi0rCQlvcz0tZ2VuaXgKLSsJCTs7 Ci0rCWkzNzAtKikKLSsJCW9zPS1tdnMKLSsJCTs7Ci0rCSotbmV4dCkKLSsJCW9zPS1uZXh0c3Rl cDMKLSsJCTs7Ci0rCSotZ291bGQpCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJKi1oaWdobGV2ZWwp Ci0rCQlvcz0tYnNkCi0rCQk7OwotKwkqLWVuY29yZSkKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCSot c2dpKQotKwkJb3M9LWlyaXgKLSsJCTs7Ci0rCSotc2llbWVucykKLSsJCW9zPS1zeXN2NAotKwkJ OzsKLSsJKi1tYXNzY29tcCkKLSsJCW9zPS1ydHUKLSsJCTs7Ci0rCWYzMFswMV0tZnVqaXRzdSB8 IGY3MDAtZnVqaXRzdSkKLSsJCW9zPS11eHB2Ci0rCQk7OwotKwkqLXJvbTY4aykKLSsJCW9zPS1j b2ZmCi0rCQk7OwotKwkqLSpidWcpCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJKi1hcHBsZSkKLSsJ CW9zPS1tYWNvcwotKwkJOzsKLSsJKi1hdGFyaSopCi0rCQlvcz0tbWludAotKwkJOzsKLSsJKikK LSsJCW9zPS1ub25lCi0rCQk7OwotK2VzYWMKLStmaQotKwotKyMgSGVyZSB3ZSBoYW5kbGUgdGhl IGNhc2Ugd2hlcmUgd2Uga25vdyB0aGUgb3MsIGFuZCB0aGUgQ1BVIHR5cGUsIGJ1dCBub3QgdGhl Ci0rIyBtYW51ZmFjdHVyZXIuICBXZSBwaWNrIHRoZSBsb2dpY2FsIG1hbnVmYWN0dXJlci4KLSt2 ZW5kb3I9dW5rbm93bgotK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KLSsJKi11bmtub3duKQotKwkJ Y2FzZSAkb3MgaW4KLSsJCQktcmlzY2l4KikKLSsJCQkJdmVuZG9yPWFjb3JuCi0rCQkJCTs7Ci0r CQkJLXN1bm9zKikKLSsJCQkJdmVuZG9yPXN1bgotKwkJCQk7OwotKwkJCS1jbmsqfC1haXgqKQot KwkJCQl2ZW5kb3I9aWJtCi0rCQkJCTs7Ci0rCQkJLWJlb3MqKQotKwkJCQl2ZW5kb3I9YmUKLSsJ CQkJOzsKLSsJCQktaHB1eCopCi0rCQkJCXZlbmRvcj1ocAotKwkJCQk7OwotKwkJCS1tcGVpeCop Ci0rCQkJCXZlbmRvcj1ocAotKwkJCQk7OwotKwkJCS1oaXV4KikKLSsJCQkJdmVuZG9yPWhpdGFj aGkKLSsJCQkJOzsKLSsJCQktdW5vcyopCi0rCQkJCXZlbmRvcj1jcmRzCi0rCQkJCTs7Ci0rCQkJ LWRndXgqKQotKwkJCQl2ZW5kb3I9ZGcKLSsJCQkJOzsKLSsJCQktbHVuYSopCi0rCQkJCXZlbmRv cj1vbXJvbgotKwkJCQk7OwotKwkJCS1nZW5peCopCi0rCQkJCXZlbmRvcj1ucwotKwkJCQk7Owot KwkJCS1tdnMqIHwgLW9wZW5lZCopCi0rCQkJCXZlbmRvcj1pYm0KLSsJCQkJOzsKLSsJCQktb3M0 MDAqKQotKwkJCQl2ZW5kb3I9aWJtCi0rCQkJCTs7Ci0rCQkJLXB0eCopCi0rCQkJCXZlbmRvcj1z ZXF1ZW50Ci0rCQkJCTs7Ci0rCQkJLXRwZiopCi0rCQkJCXZlbmRvcj1pYm0KLSsJCQkJOzsKLSsJ CQktdnhzaW0qIHwgLXZ4d29ya3MqIHwgLXdpbmRpc3MqKQotKwkJCQl2ZW5kb3I9d3JzCi0rCQkJ CTs7Ci0rCQkJLWF1eCopCi0rCQkJCXZlbmRvcj1hcHBsZQotKwkJCQk7OwotKwkJCS1obXMqKQot KwkJCQl2ZW5kb3I9aGl0YWNoaQotKwkJCQk7OwotKwkJCS1tcHcqIHwgLW1hY29zKikKLSsJCQkJ dmVuZG9yPWFwcGxlCi0rCQkJCTs7Ci0rCQkJLSptaW50IHwgLW1pbnRbMC05XSogfCAtKk1pTlQg fCAtTWlOVFswLTldKikKLSsJCQkJdmVuZG9yPWF0YXJpCi0rCQkJCTs7Ci0rCQkJLXZvcyopCi0r CQkJCXZlbmRvcj1zdHJhdHVzCi0rCQkJCTs7Ci0rCQllc2FjCi0rCQliYXNpY19tYWNoaW5lPWBl Y2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICJzL3Vua25vd24vJHZlbmRvci8iYAotKwkJOzsKLStl c2FjCi0rCi0rZWNobyAkYmFzaWNfbWFjaGluZSRvcwotK2V4aXQKLSsKLSsjIExvY2FsIHZhcmlh YmxlczoKLSsjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkK LSsjIHRpbWUtc3RhbXAtc3RhcnQ6ICJ0aW1lc3RhbXA9JyIKLSsjIHRpbWUtc3RhbXAtZm9ybWF0 OiAiJTp5LSUwMm0tJTAyZCIKLSsjIHRpbWUtc3RhbXAtZW5kOiAiJyIKLSsjIEVuZDoKLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvY3BwdW5pdC5tNCBzb2NpLTMuMC4wX3RyZXAz MDAvY29uZmlnL2NwcHVuaXQubTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvY3BwdW5p dC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9jb25maWcvY3BwdW5pdC5tNAkyMDEwLTAxLTIzIDEzOjI3OjA0LjAwMDAwMDAwMCAr MDEwMAotQEAgLTAsMCArMSw5MyBAQAotK2RubAotK2RubCBBTV9QQVRIX0NQUFVOSVQoTUlOSU1V TS1WRVJTSU9OLCBbQUNUSU9OLUlGLUZPVU5EIFssIEFDVElPTi1JRi1OT1QtRk9VTkRdXSkKLStk bmwKLStBQ19ERUZVTihbQU1fUEFUSF9DUFBVTklUXSwKLStbCi0rCi0rQUNfQVJHX1dJVEgoY3Bw dW5pdC1wcmVmaXgsWyAgLS13aXRoLWNwcHVuaXQtcHJlZml4PVBGWCAgIFByZWZpeCB3aGVyZSBD cHBVbml0IGlzIGluc3RhbGxlZCAob3B0aW9uYWwpXSwKLSsgICAgICAgICAgICBjcHB1bml0X2Nv bmZpZ19wcmVmaXg9IiR3aXRodmFsIiwgY3BwdW5pdF9jb25maWdfcHJlZml4PSIiKQotK0FDX0FS R19XSVRIKGNwcHVuaXQtZXhlYy1wcmVmaXgsWyAgLS13aXRoLWNwcHVuaXQtZXhlYy1wcmVmaXg9 UEZYICBFeGVjIHByZWZpeCB3aGVyZSBDcHBVbml0IGlzIGluc3RhbGxlZCAob3B0aW9uYWwpXSwK LSsgICAgICAgICAgICBjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeD0iJHdpdGh2YWwiLCBjcHB1 bml0X2NvbmZpZ19leGVjX3ByZWZpeD0iIikKLSsKLSsgIGlmIHRlc3QgeCRjcHB1bml0X2NvbmZp Z19leGVjX3ByZWZpeCAhPSB4IDsgdGhlbgotKyAgICAgY3BwdW5pdF9jb25maWdfYXJncz0iJGNw cHVuaXRfY29uZmlnX2FyZ3MgLS1leGVjLXByZWZpeD0kY3BwdW5pdF9jb25maWdfZXhlY19wcmVm aXgiCi0rICAgICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4K LSsgICAgICAgIENQUFVOSVRfQ09ORklHPSRjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeC9iaW4v Y3BwdW5pdC1jb25maWcKLSsgICAgIGZpCi0rICBmaQotKyAgaWYgdGVzdCB4JGNwcHVuaXRfY29u ZmlnX3ByZWZpeCAhPSB4IDsgdGhlbgotKyAgICAgY3BwdW5pdF9jb25maWdfYXJncz0iJGNwcHVu aXRfY29uZmlnX2FyZ3MgLS1wcmVmaXg9JGNwcHVuaXRfY29uZmlnX3ByZWZpeCIKLSsgICAgIGlm IHRlc3QgeCR7Q1BQVU5JVF9DT05GSUcrc2V0fSAhPSB4c2V0IDsgdGhlbgotKyAgICAgICAgQ1BQ VU5JVF9DT05GSUc9JGNwcHVuaXRfY29uZmlnX3ByZWZpeC9iaW4vY3BwdW5pdC1jb25maWcKLSsg ICAgIGZpCi0rICBmaQotKwotKyAgQUNfUEFUSF9QUk9HKENQUFVOSVRfQ09ORklHLCBjcHB1bml0 LWNvbmZpZywgbm8pCi0rICBjcHB1bml0X3ZlcnNpb25fbWluPSQxCi0rCi0rICBBQ19NU0dfQ0hF Q0tJTkcoZm9yIENwcHVuaXQgLSB2ZXJzaW9uID49ICRjcHB1bml0X3ZlcnNpb25fbWluKQotKyAg bm9fY3BwdW5pdD0iIgotKyAgaWYgdGVzdCAiJENQUFVOSVRfQ09ORklHIiA9ICJubyIgOyB0aGVu Ci0rICAgIEFDX01TR19SRVNVTFQobm8pCi0rICAgIG5vX2NwcHVuaXQ9eWVzCi0rICBlbHNlCi0r ICAgIENQUFVOSVRfQ0ZMQUdTPWAkQ1BQVU5JVF9DT05GSUcgLS1jZmxhZ3NgCi0rICAgIENQUFVO SVRfTElCUz1gJENQUFVOSVRfQ09ORklHIC0tbGlic2AKLSsgICAgQ1BQVU5JVF9WRVJTSU9OPWAk Q1BQVU5JVF9DT05GSUcgLS12ZXJzaW9uYAotKwotKyAgICBjcHB1bml0X21ham9yX3ZlcnNpb249 YGVjaG8gJENQUFVOSVRfVkVSU0lPTiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9cKFtbMC05XV0q XCkuXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS9cMS8nYAotKyAgICBjcHB1bml0X21pbm9yX3Zl cnNpb249YGVjaG8gJENQUFVOSVRfVkVSU0lPTiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9cKFtb MC05XV0qXCkuXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS9cMi8nYAotKyAgICBjcHB1bml0X21p Y3JvX3ZlcnNpb249YGVjaG8gJENQUFVOSVRfVkVSU0lPTiB8IFwKLSsgICAgICAgICAgIHNlZCAn cy9cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS9cMy8nYAotKwotKyAgICBj cHB1bml0X21ham9yX21pbj1gZWNobyAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKLSsgICAgICAg ICAgIHNlZCAncy9cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS9cMS8nYAot KyAgICBpZiB0ZXN0ICJ4JHtjcHB1bml0X21ham9yX21pbn0iID0gIngiIDsgdGhlbgotKyAgICAg ICBjcHB1bml0X21ham9yX21pbj0wCi0rICAgIGZpCi0rICAgIAotKyAgICBjcHB1bml0X21pbm9y X21pbj1gZWNobyAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9c KFtbMC05XV0qXCkuXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS9cMi8nYAotKyAgICBpZiB0ZXN0 ICJ4JHtjcHB1bml0X21pbm9yX21pbn0iID0gIngiIDsgdGhlbgotKyAgICAgICBjcHB1bml0X21p bm9yX21pbj0wCi0rICAgIGZpCi0rICAgIAotKyAgICBjcHB1bml0X21pY3JvX21pbj1gZWNobyAk Y3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9cKFtbMC05XV0qXCku XChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS9cMy8nYAotKyAgICBpZiB0ZXN0ICJ4JHtjcHB1bml0 X21pY3JvX21pbn0iID0gIngiIDsgdGhlbgotKyAgICAgICBjcHB1bml0X21pY3JvX21pbj0wCi0r ICAgIGZpCi0rCi0rICAgIGNwcHVuaXRfdmVyc2lvbl9wcm9wZXI9YGV4cHIgXAotKyAgICAgICAg JGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPiAkY3BwdW5pdF9tYWpvcl9taW4gXHwgXAotKyAgICAg ICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9tYWpvcl9taW4gXCYgXAotKyAg ICAgICAgJGNwcHVuaXRfbWlub3JfdmVyc2lvbiBcPiAkY3BwdW5pdF9taW5vcl9taW4gXHwgXAot KyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9tYWpvcl9taW4gXCYg XAotKyAgICAgICAgJGNwcHVuaXRfbWlub3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9taW5vcl9taW4g XCYgXAotKyAgICAgICAgJGNwcHVuaXRfbWljcm9fdmVyc2lvbiBcPj0gJGNwcHVuaXRfbWljcm9f bWluIGAKLSsKLSsgICAgaWYgdGVzdCAiJGNwcHVuaXRfdmVyc2lvbl9wcm9wZXIiID0gIjEiIDsg dGhlbgotKyAgICAgIEFDX01TR19SRVNVTFQoWyRjcHB1bml0X21ham9yX3ZlcnNpb24uJGNwcHVu aXRfbWlub3JfdmVyc2lvbi4kY3BwdW5pdF9taWNyb192ZXJzaW9uXSkKLSsgICAgZWxzZQotKyAg ICAgIEFDX01TR19SRVNVTFQobm8pCi0rICAgICAgbm9fY3BwdW5pdD15ZXMKLSsgICAgZmkKLSsg IGZpCi0rCi0rICBpZiB0ZXN0ICJ4JG5vX2NwcHVuaXQiID0geCA7IHRoZW4KLSsgICAgIGlmZWxz ZShbJDJdLCAsIDosIFskMl0pICAgICAKLSsgIGVsc2UKLSsgICAgIENQUFVOSVRfQ0ZMQUdTPSIi Ci0rICAgICBDUFBVTklUX0xJQlM9IiIKLSsgICAgIGlmZWxzZShbJDNdLCAsIDosIFskM10pCi0r ICBmaQotKwotKyAgQUNfU1VCU1QoQ1BQVU5JVF9DRkxBR1MpCi0rICBBQ19TVUJTVChDUFBVTklU X0xJQlMpCi0rICBBQ19TVUJTVChDUFBVTklUX1ZFUlNJT04pCi0rXSkKLSsKLSsKLSsKLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvZGVwY29tcCBzb2NpLTMuMC4wX3RyZXAzMDAv Y29uZmlnL2RlcGNvbXAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvZGVwY29tcAkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9j b25maWcvZGVwY29tcAkyMDEwLTAxLTIzIDE0OjQ0OjUyLjAwMDAwMDAwMCArMDEwMAotQEAgLTAs MCArMSw2MzAgQEAKLSsjISAvYmluL3NoCi0rIyBkZXBjb21wIC0gY29tcGlsZSBhIHByb2dyYW0g Z2VuZXJhdGluZyBkZXBlbmRlbmNpZXMgYXMgc2lkZS1lZmZlY3RzCi0rCi0rc2NyaXB0dmVyc2lv bj0yMDA5LTA0LTI4LjIxOyAjIFVUQwotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAy MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA5IEZyZWUKLSsjIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0 aW9uKQotKyMgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwot KyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotKyMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlv biB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGlmIHlvdQotKyMgZGlzdHJpYnV0 ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCi0rIyBjb25m aWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBp dCB1bmRlcgotKyMgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3Ig dGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgotKwotKyMgT3JpZ2luYWxseSB3cml0dGVuIGJ5IEFs ZXhhbmRyZSBPbGl2YSA8b2xpdmFAZGNjLnVuaWNhbXAuYnI+LgotKwotK2Nhc2UgJDEgaW4KLSsg ICcnKQotKyAgICAgZWNobyAiJDA6IE5vIGNvbW1hbmQuICBUcnkgXGAkMCAtLWhlbHAnIGZvciBt b3JlIGluZm9ybWF0aW9uLiIgMT4mMgotKyAgICAgZXhpdCAxOwotKyAgICAgOzsKLSsgIC1oIHwg LS1oKikKLSsgICAgY2F0IDw8XEVPRgotK1VzYWdlOiBkZXBjb21wIFstLWhlbHBdIFstLXZlcnNp b25dIFBST0dSQU0gW0FSR1NdCi0rCi0rUnVuIFBST0dSQU1TIEFSR1MgdG8gY29tcGlsZSBhIGZp bGUsIGdlbmVyYXRpbmcgZGVwZW5kZW5jaWVzCi0rYXMgc2lkZS1lZmZlY3RzLgotKwotK0Vudmly b25tZW50IHZhcmlhYmxlczoKLSsgIGRlcG1vZGUgICAgIERlcGVuZGVuY3kgdHJhY2tpbmcgbW9k ZS4KLSsgIHNvdXJjZSAgICAgIFNvdXJjZSBmaWxlIHJlYWQgYnkgYFBST0dSQU1TIEFSR1MnLgot KyAgb2JqZWN0ICAgICAgT2JqZWN0IGZpbGUgb3V0cHV0IGJ5IGBQUk9HUkFNUyBBUkdTJy4KLSsg IERFUERJUiAgICAgIGRpcmVjdG9yeSB3aGVyZSB0byBzdG9yZSBkZXBlbmRlbmNpZXMuCi0rICBk ZXBmaWxlICAgICBEZXBlbmRlbmN5IGZpbGUgdG8gb3V0cHV0LgotKyAgdG1wZGVwZmlsZSAgVGVt cG9yYXJ5IGZpbGUgdG8gdXNlIHdoZW4gb3V0cHV0aW5nIGRlcGVuZGVuY2llcy4KLSsgIGxpYnRv b2wgICAgIFdoZXRoZXIgbGlidG9vbCBpcyB1c2VkICh5ZXMvbm8pLgotKwotK1JlcG9ydCBidWdz IHRvIDxidWctYXV0b21ha2VAZ251Lm9yZz4uCi0rRU9GCi0rICAgIGV4aXQgJD8KLSsgICAgOzsK LSsgIC12IHwgLS12KikKLSsgICAgZWNobyAiZGVwY29tcCAkc2NyaXB0dmVyc2lvbiIKLSsgICAg ZXhpdCAkPwotKyAgICA7OwotK2VzYWMKLSsKLStpZiB0ZXN0IC16ICIkZGVwbW9kZSIgfHwgdGVz dCAteiAiJHNvdXJjZSIgfHwgdGVzdCAteiAiJG9iamVjdCI7IHRoZW4KLSsgIGVjaG8gImRlcGNv bXA6IFZhcmlhYmxlcyBzb3VyY2UsIG9iamVjdCBhbmQgZGVwbW9kZSBtdXN0IGJlIHNldCIgMT4m MgotKyAgZXhpdCAxCi0rZmkKLSsKLSsjIERlcGVuZGVuY2llcyBmb3Igc3ViL2Jhci5vIG9yIHN1 Yi9iYXIub2JqIGdvIGludG8gc3ViLy5kZXBzL2Jhci5Qby4KLStkZXBmaWxlPSR7ZGVwZmlsZS1g ZWNobyAiJG9iamVjdCIgfAotKyAgc2VkICdzfFteXFwvXSokfCcke0RFUERJUi0uZGVwc30nLyZ8 O3N8XC5cKFteLl0qXCkkfC5QXDF8O3N8UG9iaiR8UG98J2B9Ci0rdG1wZGVwZmlsZT0ke3RtcGRl cGZpbGUtYGVjaG8gIiRkZXBmaWxlIiB8IHNlZCAncy9cLlwoW14uXSpcKSQvLlRcMS8nYH0KLSsK LStybSAtZiAiJHRtcGRlcGZpbGUiCi0rCi0rIyBTb21lIG1vZGVzIHdvcmsganVzdCBsaWtlIG90 aGVyIG1vZGVzLCBidXQgdXNlIGRpZmZlcmVudCBmbGFncy4gIFdlCi0rIyBwYXJhbWV0ZXJpemUg aGVyZSwgYnV0IHN0aWxsIGxpc3QgdGhlIG1vZGVzIGluIHRoZSBiaWcgY2FzZSBiZWxvdywKLSsj IHRvIG1ha2UgZGVwZW5kLm00IGVhc2llciB0byB3cml0ZS4gIE5vdGUgdGhhdCB3ZSAqY2Fubm90 KiB1c2UgYSBjYXNlCi0rIyBoZXJlLCBiZWNhdXNlIHRoaXMgZmlsZSBjYW4gb25seSBjb250YWlu IG9uZSBjYXNlIHN0YXRlbWVudC4KLStpZiB0ZXN0ICIkZGVwbW9kZSIgPSBocDsgdGhlbgotKyAg IyBIUCBjb21waWxlciB1c2VzIC1NIGFuZCBubyBleHRyYSBhcmcuCi0rICBnY2NmbGFnPS1NCi0r ICBkZXBtb2RlPWdjYwotK2ZpCi0rCi0raWYgdGVzdCAiJGRlcG1vZGUiID0gZGFzaFhtc3Rkb3V0 OyB0aGVuCi0rICAgIyBUaGlzIGlzIGp1c3QgbGlrZSBkYXNobXN0ZG91dCB3aXRoIGEgZGlmZmVy ZW50IGFyZ3VtZW50LgotKyAgIGRhc2htZmxhZz0teE0KLSsgICBkZXBtb2RlPWRhc2htc3Rkb3V0 Ci0rZmkKLSsKLStjeWdwYXRoX3U9ImN5Z3BhdGggLXUgLWYgLSIKLStpZiB0ZXN0ICIkZGVwbW9k ZSIgPSBtc3ZjbXN5czsgdGhlbgotKyAgICMgVGhpcyBpcyBqdXN0IGxpa2UgbXN2aXN1YWxjcHAg YnV0IHcvbyBjeWdwYXRoIHRyYW5zbGF0aW9uLgotKyAgICMgSnVzdCBjb252ZXJ0IHRoZSBiYWNr c2xhc2gtZXNjYXBlZCBiYWNrc2xhc2hlcyB0byBzaW5nbGUgZm9yd2FyZAotKyAgICMgc2xhc2hl cyB0byBzYXRpc2Z5IGRlcGVuZC5tNAotKyAgIGN5Z3BhdGhfdT0ic2VkIHMsXFxcXFxcXFwsLyxn IgotKyAgIGRlcG1vZGU9bXN2aXN1YWxjcHAKLStmaQotKwotK2Nhc2UgIiRkZXBtb2RlIiBpbgot K2djYzMpCi0rIyMgZ2NjIDMgaW1wbGVtZW50cyBkZXBlbmRlbmN5IHRyYWNraW5nIHRoYXQgZG9l cyBleGFjdGx5IHdoYXQKLSsjIyB3ZSB3YW50LiAgWWF5ISAgTm90ZTogZm9yIHNvbWUgcmVhc29u IGxpYnRvb2wgMS40IGRvZXNuJ3QgbGlrZQotKyMjIGl0IGlmIC1NRCAtTVAgY29tZXMgYWZ0ZXIg dGhlIC1NRiBzdHVmZi4gIEhtbS4KLSsjIyBVbmZvcnR1bmF0ZWx5LCBGcmVlQlNEIGM4OSBhY2Nl cHRhbmNlIG9mIGZsYWdzIGRlcGVuZHMgdXBvbgotKyMjIHRoZSBjb21tYW5kIGxpbmUgYXJndW1l bnQgb3JkZXI7IHNvIGFkZCB0aGUgZmxhZ3Mgd2hlcmUgdGhleQotKyMjIGFwcGVhciBpbiBkZXBl bmQyLmFtLiAgTm90ZSB0aGF0IHRoZSBzbG93ZG93biBpbmN1cnJlZCBoZXJlCi0rIyMgYWZmZWN0 cyBvbmx5IGNvbmZpZ3VyZTogaW4gbWFrZWZpbGVzLCAlRkFTVERFUCUgc2hvcnRjdXRzIHRoaXMu Ci0rICBmb3IgYXJnCi0rICBkbwotKyAgICBjYXNlICRhcmcgaW4KLSsgICAgLWMpIHNldCBmbm9y ZCAiJEAiIC1NVCAiJG9iamVjdCIgLU1EIC1NUCAtTUYgIiR0bXBkZXBmaWxlIiAiJGFyZyIgOzsK LSsgICAgKikgIHNldCBmbm9yZCAiJEAiICIkYXJnIiA7OwotKyAgICBlc2FjCi0rICAgIHNoaWZ0 ICMgZm5vcmQKLSsgICAgc2hpZnQgIyAkYXJnCi0rICBkb25lCi0rICAiJEAiCi0rICBzdGF0PSQ/ Ci0rICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKLSsgIGVsc2UKLSsgICAgcm0gLWYgIiR0 bXBkZXBmaWxlIgotKyAgICBleGl0ICRzdGF0Ci0rICBmaQotKyAgbXYgIiR0bXBkZXBmaWxlIiAi JGRlcGZpbGUiCi0rICA7OwotKwotK2djYykKLSsjIyBUaGVyZSBhcmUgdmFyaW91cyB3YXlzIHRv IGdldCBkZXBlbmRlbmN5IG91dHB1dCBmcm9tIGdjYy4gIEhlcmUncwotKyMjIHdoeSB3ZSBwaWNr IHRoaXMgcmF0aGVyIG9ic2N1cmUgbWV0aG9kOgotKyMjIC0gRG9uJ3Qgd2FudCB0byB1c2UgLU1E IGJlY2F1c2Ugd2UnZCBsaWtlIHRoZSBkZXBlbmRlbmNpZXMgdG8gZW5kCi0rIyMgICB1cCBpbiBh IHN1YmRpci4gIEhhdmluZyB0byByZW5hbWUgYnkgaGFuZCBpcyB1Z2x5LgotKyMjICAgKFdlIG1p Z2h0IGVuZCB1cCBkb2luZyB0aGlzIGFueXdheSB0byBzdXBwb3J0IG90aGVyIGNvbXBpbGVycy4p Ci0rIyMgLSBUaGUgREVQRU5ERU5DSUVTX09VVFBVVCBlbnZpcm9ubWVudCB2YXJpYWJsZSBtYWtl cyBnY2MgYWN0IGxpa2UKLSsjIyAgIC1NTSwgbm90IC1NIChkZXNwaXRlIHdoYXQgdGhlIGRvY3Mg c2F5KS4KLSsjIyAtIFVzaW5nIC1NIGRpcmVjdGx5IG1lYW5zIHJ1bm5pbmcgdGhlIGNvbXBpbGVy IHR3aWNlIChldmVuIHdvcnNlCi0rIyMgICB0aGFuIHJlbmFtaW5nKS4KLSsgIGlmIHRlc3QgLXog IiRnY2NmbGFnIjsgdGhlbgotKyAgICBnY2NmbGFnPS1NRCwKLSsgIGZpCi0rICAiJEAiIC1XcCwi JGdjY2ZsYWckdG1wZGVwZmlsZSIKLSsgIHN0YXQ9JD8KLSsgIGlmIHRlc3QgJHN0YXQgLWVxIDA7 IHRoZW4gOgotKyAgZWxzZQotKyAgICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICAgIGV4aXQgJHN0 YXQKLSsgIGZpCi0rICBybSAtZiAiJGRlcGZpbGUiCi0rICBlY2hvICIkb2JqZWN0IDogXFwiID4g IiRkZXBmaWxlIgotKyAgYWxwaGE9QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlq a2xtbm9wcXJzdHV2d3h5egotKyMjIFRoZSBzZWNvbmQgLWUgZXhwcmVzc2lvbiBoYW5kbGVzIERP Uy1zdHlsZSBmaWxlIG5hbWVzIHdpdGggZHJpdmUgbGV0dGVycy4KLSsgIHNlZCAtZSAncy9eW146 XSo6IC8gLycgXAotKyAgICAgIC1lICdzL15bJyRhbHBoYSddOlwvW146XSo6IC8gLycgPCAiJHRt cGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKLSsjIyBUaGlzIG5leHQgcGllY2Ugb2YgbWFnaWMgYXZv aWRzIHRoZSBgZGVsZXRlZCBoZWFkZXIgZmlsZScgcHJvYmxlbS4KLSsjIyBUaGUgcHJvYmxlbSBp cyB0aGF0IHdoZW4gYSBoZWFkZXIgZmlsZSB3aGljaCBhcHBlYXJzIGluIGEgLlAgZmlsZQotKyMj IGlzIGRlbGV0ZWQsIHRoZSBkZXBlbmRlbmN5IGNhdXNlcyBtYWtlIHRvIGRpZSAoYmVjYXVzZSB0 aGVyZSBpcwotKyMjIHR5cGljYWxseSBubyB3YXkgdG8gcmVidWlsZCB0aGUgaGVhZGVyKS4gIFdl IGF2b2lkIHRoaXMgYnkgYWRkaW5nCi0rIyMgZHVtbXkgZGVwZW5kZW5jaWVzIGZvciBlYWNoIGhl YWRlciBmaWxlLiAgVG9vIGJhZCBnY2MgZG9lc24ndCBkbwotKyMjIHRoaXMgZm9yIHVzIGRpcmVj dGx5LgotKyAgdHIgJyAnICcKLSsnIDwgIiR0bXBkZXBmaWxlIiB8Ci0rIyMgU29tZSB2ZXJzaW9u cyBvZiBnY2MgcHV0IGEgc3BhY2UgYmVmb3JlIHRoZSBgOicuICBPbiB0aGUgdGhlb3J5Ci0rIyMg dGhhdCB0aGUgc3BhY2UgbWVhbnMgc29tZXRoaW5nLCB3ZSBhZGQgYSBzcGFjZSB0byB0aGUgb3V0 cHV0IGFzCi0rIyMgd2VsbC4KLSsjIyBTb21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNl ZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgotKyMjIGNvcnJlY3RseS4gIEJyZWFraW5n IGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCi0rICAgIHNlZCAt ZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4g IiRkZXBmaWxlIgotKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAgOzsKLSsKLStocCkKLSsgICMg VGhpcyBjYXNlIGV4aXN0cyBvbmx5IHRvIGxldCBkZXBlbmQubTQgZG8gaXRzIHdvcmsuICBJdCB3 b3JrcyBieQotKyAgIyBsb29raW5nIGF0IHRoZSB0ZXh0IG9mIHRoaXMgc2NyaXB0LiAgVGhpcyBj YXNlIHdpbGwgbmV2ZXIgYmUgcnVuLAotKyAgIyBzaW5jZSBpdCBpcyBjaGVja2VkIGZvciBhYm92 ZS4KLSsgIGV4aXQgMQotKyAgOzsKLSsKLStzZ2kpCi0rICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5 ZXM7IHRoZW4KLSsgICAgIiRAIiAiLVdwLC1NRHVwZGF0ZSwkdG1wZGVwZmlsZSIKLSsgIGVsc2UK LSsgICAgIiRAIiAtTUR1cGRhdGUgIiR0bXBkZXBmaWxlIgotKyAgZmkKLSsgIHN0YXQ9JD8KLSsg IGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotKyAgZWxzZQotKyAgICBybSAtZiAiJHRtcGRl cGZpbGUiCi0rICAgIGV4aXQgJHN0YXQKLSsgIGZpCi0rICBybSAtZiAiJGRlcGZpbGUiCi0rCi0r ICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4gICMgeWVzLCB0aGUgc291cmNlZmlsZSBk ZXBlbmQgb24gb3RoZXIgZmlsZXMKLSsgICAgZWNobyAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmls ZSIKLSsKLSsgICAgIyBDbGlwIG9mZiB0aGUgaW5pdGlhbCBlbGVtZW50ICh0aGUgZGVwZW5kZW50 KS4gIERvbid0IHRyeSB0byBiZQotKyAgICAjIGNsZXZlciBhbmQgcmVwbGFjZSB0aGlzIHdpdGgg c2VkIGNvZGUsIGFzIElSSVggc2VkIHdvbid0IGhhbmRsZQotKyAgICAjIGxpbmVzIHdpdGggbW9y ZSB0aGFuIGEgZml4ZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMgKDQwOTYgaW4KLSsgICAgIyBJUklY IDYuMiBzZWQsIDgxOTIgaW4gSVJJWCA2LjUpLiAgV2UgYWxzbyByZW1vdmUgY29tbWVudCBsaW5l czsKLSsgICAgIyB0aGUgSVJJWCBjYyBhZGRzIGNvbW1lbnRzIGxpa2UgYCM6ZmVjJyB0byB0aGUg ZW5kIG9mIHRoZQotKyAgICAjIGRlcGVuZGVuY3kgbGluZS4KLSsgICAgdHIgJyAnICcKLSsnIDwg IiR0bXBkZXBmaWxlIiBcCi0rICAgIHwgc2VkIC1lICdzL14uKlwubzovLycgLWUgJ3MvIy4qJC8v JyAtZSAnL14kLyBkJyB8IFwKLSsgICAgdHIgJwotKycgJyAnID4+ICIkZGVwZmlsZSIKLSsgICAg ZWNobyA+PiAiJGRlcGZpbGUiCi0rCi0rICAgICMgVGhlIHNlY29uZCBwYXNzIGdlbmVyYXRlcyBh IGR1bW15IGVudHJ5IGZvciBlYWNoIGhlYWRlciBmaWxlLgotKyAgICB0ciAnICcgJwotKycgPCAi JHRtcGRlcGZpbGUiIFwKLSsgICB8IHNlZCAtZSAncy9eLipcLm86Ly8nIC1lICdzLyMuKiQvLycg LWUgJy9eJC8gZCcgLWUgJ3MvJC86LycgXAotKyAgID4+ICIkZGVwZmlsZSIKLSsgIGVsc2UKLSsg ICAgIyBUaGUgc291cmNlZmlsZSBkb2VzIG5vdCBjb250YWluIGFueSBkZXBlbmRlbmNpZXMsIHNv IGp1c3QKLSsgICAgIyBzdG9yZSBhIGR1bW15IGNvbW1lbnQgbGluZSwgdG8gYXZvaWQgZXJyb3Jz IHdpdGggdGhlIE1ha2VmaWxlCi0rICAgICMgImluY2x1ZGUgYmFzZW5hbWUuUGxvIiBzY2hlbWUu Ci0rICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCi0rICBmaQotKyAgcm0gLWYgIiR0bXBk ZXBmaWxlIgotKyAgOzsKLSsKLSthaXgpCi0rICAjIFRoZSBDIGZvciBBSVggQ29tcGlsZXIgdXNl cyAtTSBhbmQgb3V0cHV0cyB0aGUgZGVwZW5kZW5jaWVzCi0rICAjIGluIGEgLnUgZmlsZS4gIElu IG9sZGVyIHZlcnNpb25zLCB0aGlzIGZpbGUgYWx3YXlzIGxpdmVzIGluIHRoZQotKyAgIyBjdXJy ZW50IGRpcmVjdG9yeS4gIEFsc28sIHRoZSBBSVggY29tcGlsZXIgcHV0cyBgJG9iamVjdDonIGF0 IHRoZQotKyAgIyBzdGFydCBvZiBlYWNoIGxpbmU7ICRvYmplY3QgZG9lc24ndCBoYXZlIGRpcmVj dG9yeSBpbmZvcm1hdGlvbi4KLSsgICMgVmVyc2lvbiA2IHVzZXMgdGhlIGRpcmVjdG9yeSBpbiBi b3RoIGNhc2VzLgotKyAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3wvW14vXSokfC98 J2AKLSsgIHRlc3QgIngkZGlyIiA9ICJ4JG9iamVjdCIgJiYgZGlyPQotKyAgYmFzZT1gZWNobyAi JG9iamVjdCIgfCBzZWQgLWUgJ3N8Xi4qL3x8JyAtZSAncy9cLm8kLy8nIC1lICdzL1wubG8kLy8n YAotKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0rICAgIHRtcGRlcGZpbGUxPSRk aXIkYmFzZS51Ci0rICAgIHRtcGRlcGZpbGUyPSRiYXNlLnUKLSsgICAgdG1wZGVwZmlsZTM9JGRp ci5saWJzLyRiYXNlLnUKLSsgICAgIiRAIiAtV2MsLU0KLSsgIGVsc2UKLSsgICAgdG1wZGVwZmls ZTE9JGRpciRiYXNlLnUKLSsgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLnUKLSsgICAgdG1wZGVw ZmlsZTM9JGRpciRiYXNlLnUKLSsgICAgIiRAIiAtTQotKyAgZmkKLSsgIHN0YXQ9JD8KLSsKLSsg IGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotKyAgZWxzZQotKyAgICBybSAtZiAiJHRtcGRl cGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIgotKyAgICBleGl0ICRzdGF0Ci0r ICBmaQotKwotKyAgZm9yIHRtcGRlcGZpbGUgaW4gIiR0bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxl MiIgIiR0bXBkZXBmaWxlMyIKLSsgIGRvCi0rICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBi cmVhawotKyAgZG9uZQotKyAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuCi0rICAgICMg RWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28ubzogZGVwZW5kZW50LmgnLgotKyAgICAjIERv IHR3byBwYXNzZXMsIG9uZSB0byBqdXN0IGNoYW5nZSB0aGVzZSB0bwotKyAgICAjIGAkb2JqZWN0 OiBkZXBlbmRlbnQuaCcgYW5kIG9uZSB0byBzaW1wbHkgYGRlcGVuZGVudC5oOicuCi0rICAgIHNl ZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZp bGUiCi0rICAgICMgVGhhdCdzIGEgdGFiIGFuZCBhIHNwYWNlIGluIHRoZSBbXS4KLSsgICAgc2Vk IC1lICdzLF4uKlwuW2Etel0qOlsJIF0qLCwnIC1lICdzLCQsOiwnIDwgIiR0bXBkZXBmaWxlIiA+ PiAiJGRlcGZpbGUiCi0rICBlbHNlCi0rICAgICMgVGhlIHNvdXJjZWZpbGUgZG9lcyBub3QgY29u dGFpbiBhbnkgZGVwZW5kZW5jaWVzLCBzbyBqdXN0Ci0rICAgICMgc3RvcmUgYSBkdW1teSBjb21t ZW50IGxpbmUsIHRvIGF2b2lkIGVycm9ycyB3aXRoIHRoZSBNYWtlZmlsZQotKyAgICAjICJpbmNs dWRlIGJhc2VuYW1lLlBsbyIgc2NoZW1lLgotKyAgICBlY2hvICIjZHVtbXkiID4gIiRkZXBmaWxl IgotKyAgZmkKLSsgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgIDs7Ci0rCi0raWNjKQotKyAgIyBJ bnRlbCdzIEMgY29tcGlsZXIgdW5kZXJzdGFuZHMgYC1NRCAtTUYgZmlsZScuICBIb3dldmVyIG9u Ci0rICAjICAgIGljYyAtTUQgLU1GIGZvby5kIC1jIC1vIHN1Yi9mb28ubyBzdWIvZm9vLmMKLSsg ICMgSUNDIDcuMCB3aWxsIGZpbGwgZm9vLmQgd2l0aCBzb21ldGhpbmcgbGlrZQotKyAgIyAgICBm b28ubzogc3ViL2Zvby5jCi0rICAjICAgIGZvby5vOiBzdWIvZm9vLmgKLSsgICMgd2hpY2ggaXMg d3JvbmcuICBXZSB3YW50OgotKyAgIyAgICBzdWIvZm9vLm86IHN1Yi9mb28uYwotKyAgIyAgICBz dWIvZm9vLm86IHN1Yi9mb28uaAotKyAgIyAgICBzdWIvZm9vLmM6Ci0rICAjICAgIHN1Yi9mb28u aDoKLSsgICMgSUNDIDcuMSB3aWxsIG91dHB1dAotKyAgIyAgICBmb28ubzogc3ViL2Zvby5jIHN1 Yi9mb28uaAotKyAgIyBhbmQgd2lsbCB3cmFwIGxvbmcgbGluZXMgdXNpbmcgXCA6Ci0rICAjICAg IGZvby5vOiBzdWIvZm9vLmMgLi4uIFwKLSsgICMgICAgIHN1Yi9mb28uaCAuLi4gXAotKyAgIyAg ICAgLi4uCi0rCi0rICAiJEAiIC1NRCAtTUYgIiR0bXBkZXBmaWxlIgotKyAgc3RhdD0kPwotKyAg aWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6Ci0rICBlbHNlCi0rICAgIHJtIC1mICIkdG1wZGVw ZmlsZSIKLSsgICAgZXhpdCAkc3RhdAotKyAgZmkKLSsgIHJtIC1mICIkZGVwZmlsZSIKLSsgICMg RWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28ubzogZGVwZW5kZW50LmgnLAotKyAgIyBvciBg Zm9vLm86IGRlcDEuaCBkZXAyLmggXCcsIG9yIGAgZGVwMy5oIGRlcDQuaCBcJy4KLSsgICMgRG8g dHdvIHBhc3Nlcywgb25lIHRvIGp1c3QgY2hhbmdlIHRoZXNlIHRvCi0rICAjIGAkb2JqZWN0OiBk ZXBlbmRlbnQuaCcgYW5kIG9uZSB0byBzaW1wbHkgYGRlcGVuZGVudC5oOicuCi0rICBzZWQgInMs XlteOl0qOiwkb2JqZWN0IDosIiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCi0rICAjIFNv bWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZv Y2F0aW9uCi0rICAjIGNvcnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0 aW9ucyBpcyBhIHdvcmthcm91bmQuCi0rICBzZWQgJ3MsXlteOl0qOiBcKC4qXCkkLFwxLDtzL15c XCQvLzsvXiQvZDsvOiQvZCcgPCAiJHRtcGRlcGZpbGUiIHwKLSsgICAgc2VkIC1lICdzLyQvIDov JyA+PiAiJGRlcGZpbGUiCi0rICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICA7OwotKwotK2hwMikK LSsgICMgVGhlICJocCIgc3RhbnphIGFib3ZlIGRvZXMgbm90IHdvcmsgd2l0aCBhQ0MgKEMrKykg YW5kIEhQJ3MgaWE2NAotKyAgIyBjb21waWxlcnMsIHdoaWNoIGhhdmUgaW50ZWdyYXRlZCBwcmVw cm9jZXNzb3JzLiAgVGhlIGNvcnJlY3Qgb3B0aW9uCi0rICAjIHRvIHVzZSB3aXRoIHRoZXNlIGlz ICtNYWtlZDsgaXQgd3JpdGVzIGRlcGVuZGVuY2llcyB0byBhIGZpbGUgbmFtZWQKLSsgICMgJ2Zv by5kJywgd2hpY2ggbGFuZHMgbmV4dCB0byB0aGUgb2JqZWN0IGZpbGUsIHdoZXJldmVyIHRoYXQK LSsgICMgaGFwcGVucyB0byBiZS4KLSsgICMgTXVjaCBvZiB0aGlzIGlzIHNpbWlsYXIgdG8gdGhl IHRydTY0IGNhc2U7IHNlZSBjb21tZW50cyB0aGVyZS4KLSsgIGRpcj1gZWNobyAiJG9iamVjdCIg fCBzZWQgLWUgJ3N8L1teL10qJHwvfCdgCi0rICB0ZXN0ICJ4JGRpciIgPSAieCRvYmplY3QiICYm IGRpcj0KLSsgIGJhc2U9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfF4uKi98fCcgLWUgJ3Mv XC5vJC8vJyAtZSAncy9cLmxvJC8vJ2AKLSsgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhl bgotKyAgICB0bXBkZXBmaWxlMT0kZGlyJGJhc2UuZAotKyAgICB0bXBkZXBmaWxlMj0kZGlyLmxp YnMvJGJhc2UuZAotKyAgICAiJEAiIC1XYywrTWFrZWQKLSsgIGVsc2UKLSsgICAgdG1wZGVwZmls ZTE9JGRpciRiYXNlLmQKLSsgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLmQKLSsgICAgIiRAIiAr TWFrZWQKLSsgIGZpCi0rICBzdGF0PSQ/Ci0rICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoK LSsgIGVsc2UKLSsgICAgIHJtIC1mICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiCi0rICAg ICBleGl0ICRzdGF0Ci0rICBmaQotKwotKyAgZm9yIHRtcGRlcGZpbGUgaW4gIiR0bXBkZXBmaWxl MSIgIiR0bXBkZXBmaWxlMiIKLSsgIGRvCi0rICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBi cmVhawotKyAgZG9uZQotKyAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuCi0rICAgIHNl ZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxl IgotKyAgICAjIEFkZCBgZGVwZW5kZW50Lmg6JyBsaW5lcy4KLSsgICAgc2VkIC1uZSAnMiwkewot KwkgICAgICAgcy9eICovLwotKwkgICAgICAgcy8gXFwqJC8vCi0rCSAgICAgICBzLyQvOi8KLSsJ ICAgICAgIHAKLSsJICAgICB9JyAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKLSsgIGVsc2UK LSsgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKLSsgIGZpCi0rICBybSAtZiAiJHRtcGRl cGZpbGUiICIkdG1wZGVwZmlsZTIiCi0rICA7OwotKwotK3RydTY0KQotKyAgICMgVGhlIFRydTY0 IGNvbXBpbGVyIHVzZXMgLU1EIHRvIGdlbmVyYXRlIGRlcGVuZGVuY2llcyBhcyBhIHNpZGUKLSsg ICAjIGVmZmVjdC4gIGBjYyAtTUQgLW8gZm9vLm8gLi4uJyBwdXRzIHRoZSBkZXBlbmRlbmNpZXMg aW50byBgZm9vLm8uZCcuCi0rICAgIyBBdCBsZWFzdCBvbiBBbHBoYS9SZWRoYXQgNi4xLCBDb21w YXEgQ0NDIFY2LjItNTA0IHNlZW1zIHRvIHB1dAotKyAgICMgZGVwZW5kZW5jaWVzIGluIGBmb28u ZCcgaW5zdGVhZCwgc28gd2UgY2hlY2sgZm9yIHRoYXQgdG9vLgotKyAgICMgU3ViZGlyZWN0b3Jp ZXMgYXJlIHJlc3BlY3RlZC4KLSsgICBkaXI9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfC9b Xi9dKiR8L3wnYAotKyAgIHRlc3QgIngkZGlyIiA9ICJ4JG9iamVjdCIgJiYgZGlyPQotKyAgIGJh c2U9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfF4uKi98fCcgLWUgJ3MvXC5vJC8vJyAtZSAn cy9cLmxvJC8vJ2AKLSsKLSsgICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSsgICAg ICAjIFdpdGggVHJ1NjQgY2MsIHNoYXJlZCBvYmplY3RzIGNhbiBhbHNvIGJlIHVzZWQgdG8gbWFr ZSBhCi0rICAgICAgIyBzdGF0aWMgbGlicmFyeS4gIFRoaXMgbWVjaGFuaXNtIGlzIHVzZWQgaW4g bGlidG9vbCAxLjQgc2VyaWVzIHRvCi0rICAgICAgIyBoYW5kbGUgYm90aCBzaGFyZWQgYW5kIHN0 YXRpYyBsaWJyYXJpZXMgaW4gYSBzaW5nbGUgY29tcGlsYXRpb24uCi0rICAgICAgIyBXaXRoIGxp YnRvb2wgMS40LCBkZXBlbmRlbmNpZXMgd2VyZSBvdXRwdXQgaW4gJGRpci5saWJzLyRiYXNlLmxv LmQuCi0rICAgICAgIwotKyAgICAgICMgV2l0aCBsaWJ0b29sIDEuNSB0aGlzIGV4Y2VwdGlvbiB3 YXMgcmVtb3ZlZCwgYW5kIGxpYnRvb2wgbm93Ci0rICAgICAgIyBnZW5lcmF0ZXMgMiBzZXBhcmF0 ZSBvYmplY3RzIGZvciB0aGUgMiBsaWJyYXJpZXMuICBUaGVzZSB0d28KLSsgICAgICAjIGNvbXBp bGF0aW9ucyBvdXRwdXQgZGVwZW5kZW5jaWVzIGluICRkaXIubGlicy8kYmFzZS5vLmQgYW5kCi0r ICAgICAgIyBpbiAkZGlyJGJhc2Uuby5kLiAgV2UgaGF2ZSB0byBjaGVjayBmb3IgYm90aCBmaWxl cywgYmVjYXVzZQotKyAgICAgICMgb25lIG9mIHRoZSB0d28gY29tcGlsYXRpb25zIGNhbiBiZSBk aXNhYmxlZC4gIFdlIHNob3VsZCBwcmVmZXIKLSsgICAgICAjICRkaXIkYmFzZS5vLmQgb3ZlciAk ZGlyLmxpYnMvJGJhc2Uuby5kIGJlY2F1c2UgdGhlIGxhdHRlciBpcwotKyAgICAgICMgYXV0b21h dGljYWxseSBjbGVhbmVkIHdoZW4gLmxpYnMvIGlzIGRlbGV0ZWQsIHdoaWxlIGlnbm9yaW5nCi0r ICAgICAgIyB0aGUgZm9ybWVyIHdvdWxkIGNhdXNlIGEgZGlzdGNsZWFuY2hlY2sgcGFuaWMuCi0r ICAgICAgdG1wZGVwZmlsZTE9JGRpci5saWJzLyRiYXNlLmxvLmQgICAjIGxpYnRvb2wgMS40Ci0r ICAgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLm8uZCAgICAgICAgICAjIGxpYnRvb2wgMS41Ci0r ICAgICAgdG1wZGVwZmlsZTM9JGRpci5saWJzLyRiYXNlLm8uZCAgICAjIGxpYnRvb2wgMS41Ci0r ICAgICAgdG1wZGVwZmlsZTQ9JGRpci5saWJzLyRiYXNlLmQgICAgICAjIENvbXBhcSBDQ0MgVjYu Mi01MDQKLSsgICAgICAiJEAiIC1XYywtTUQKLSsgICBlbHNlCi0rICAgICAgdG1wZGVwZmlsZTE9 JGRpciRiYXNlLm8uZAotKyAgICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS5kCi0rICAgICAgdG1w ZGVwZmlsZTM9JGRpciRiYXNlLmQKLSsgICAgICB0bXBkZXBmaWxlND0kZGlyJGJhc2UuZAotKyAg ICAgICIkQCIgLU1ECi0rICAgZmkKLSsKLSsgICBzdGF0PSQ/Ci0rICAgaWYgdGVzdCAkc3RhdCAt ZXEgMDsgdGhlbiA6Ci0rICAgZWxzZQotKyAgICAgIHJtIC1mICIkdG1wZGVwZmlsZTEiICIkdG1w ZGVwZmlsZTIiICIkdG1wZGVwZmlsZTMiICIkdG1wZGVwZmlsZTQiCi0rICAgICAgZXhpdCAkc3Rh dAotKyAgIGZpCi0rCi0rICAgZm9yIHRtcGRlcGZpbGUgaW4gIiR0bXBkZXBmaWxlMSIgIiR0bXBk ZXBmaWxlMiIgIiR0bXBkZXBmaWxlMyIgIiR0bXBkZXBmaWxlNCIKLSsgICBkbwotKyAgICAgdGVz dCAtZiAiJHRtcGRlcGZpbGUiICYmIGJyZWFrCi0rICAgZG9uZQotKyAgIGlmIHRlc3QgLWYgIiR0 bXBkZXBmaWxlIjsgdGhlbgotKyAgICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDos IiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCi0rICAgICAgIyBUaGF0J3MgYSB0YWIgYW5k IGEgc3BhY2UgaW4gdGhlIFtdLgotKyAgICAgIHNlZCAtZSAncyxeLipcLlthLXpdKjpbCSBdKiws JyAtZSAncywkLDosJyA8ICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgotKyAgIGVsc2UKLSsg ICAgICBlY2hvICIjZHVtbXkiID4gIiRkZXBmaWxlIgotKyAgIGZpCi0rICAgcm0gLWYgIiR0bXBk ZXBmaWxlIgotKyAgIDs7Ci0rCi0rI25vc2lkZWVmZmVjdCkKLSsgICMgVGhpcyBjb21tZW50IGFi b3ZlIGlzIHVzZWQgYnkgYXV0b21ha2UgdG8gdGVsbCBzaWRlLWVmZmVjdAotKyAgIyBkZXBlbmRl bmN5IHRyYWNraW5nIG1lY2hhbmlzbXMgZnJvbSBzbG93ZXIgb25lcy4KLSsKLStkYXNobXN0ZG91 dCkKLSsgICMgSW1wb3J0YW50IG5vdGU6IGluIG9yZGVyIHRvIHN1cHBvcnQgdGhpcyBtb2RlLCBh IGNvbXBpbGVyICptdXN0KgotKyAgIyBhbHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxl IHRvIHN0ZG91dCwgcmVnYXJkbGVzcyBvZiAtby4KLSsgICIkQCIgfHwgZXhpdCAkPwotKwotKyAg IyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KLSsgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHll czsgdGhlbgotKyAgICB3aGlsZSB0ZXN0ICJYJDEiICE9ICdYLS1tb2RlPWNvbXBpbGUnOyBkbwot KyAgICAgIHNoaWZ0Ci0rICAgIGRvbmUKLSsgICAgc2hpZnQKLSsgIGZpCi0rCi0rICAjIFJlbW92 ZSBgLW8gJG9iamVjdCcuCi0rICBJRlM9IiAiCi0rICBmb3IgYXJnCi0rICBkbwotKyAgICBjYXNl ICRhcmcgaW4KLSsgICAgLW8pCi0rICAgICAgc2hpZnQKLSsgICAgICA7OwotKyAgICAkb2JqZWN0 KQotKyAgICAgIHNoaWZ0Ci0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBzZXQgZm5vcmQgIiRA IiAiJGFyZyIKLSsgICAgICBzaGlmdCAjIGZub3JkCi0rICAgICAgc2hpZnQgIyAkYXJnCi0rICAg ICAgOzsKLSsgICAgZXNhYwotKyAgZG9uZQotKwotKyAgdGVzdCAteiAiJGRhc2htZmxhZyIgJiYg ZGFzaG1mbGFnPS1NCi0rICAjIFJlcXVpcmUgYXQgbGVhc3QgdHdvIGNoYXJhY3RlcnMgYmVmb3Jl IHNlYXJjaGluZyBmb3IgYDonCi0rICAjIGluIHRoZSB0YXJnZXQgbmFtZS4gIFRoaXMgaXMgdG8g Y29wZSB3aXRoIERPUy1zdHlsZSBmaWxlbmFtZXM6Ci0rICAjIGEgZGVwZW5kZW5jeSBzdWNoIGFz IGBjOi9mb28vYmFyJyBjb3VsZCBiZSBzZWVuIGFzIHRhcmdldCBgYycgb3RoZXJ3aXNlLgotKyAg IiRAIiAkZGFzaG1mbGFnIHwKLSsgICAgc2VkICdzOl5bICBdKlteOiBdW146XVteOl0qXDpbICAg IF0qOiciJG9iamVjdCInXDogOicgPiAiJHRtcGRlcGZpbGUiCi0rICBybSAtZiAiJGRlcGZpbGUi Ci0rICBjYXQgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgotKyAgdHIgJyAnICcKLSsnIDwg IiR0bXBkZXBmaWxlIiB8IFwKLSsjIyBTb21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNl ZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgotKyMjIGNvcnJlY3RseS4gIEJyZWFraW5n IGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCi0rICAgIHNlZCAt ZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4g IiRkZXBmaWxlIgotKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAgOzsKLSsKLStkYXNoWG1zdGRv dXQpCi0rICAjIFRoaXMgY2FzZSBvbmx5IGV4aXN0cyB0byBzYXRpc2Z5IGRlcGVuZC5tNC4gIEl0 IGlzIG5ldmVyIGFjdHVhbGx5Ci0rICAjIHJ1biwgYXMgdGhpcyBtb2RlIGlzIHNwZWNpYWxseSBy ZWNvZ25pemVkIGluIHRoZSBwcmVhbWJsZS4KLSsgIGV4aXQgMQotKyAgOzsKLSsKLSttYWtlZGVw ZW5kKQotKyAgIiRAIiB8fCBleGl0ICQ/Ci0rICAjIFJlbW92ZSBhbnkgTGlidG9vbCBjYWxsCi0r ICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSsgICAgd2hpbGUgdGVzdCAiWCQxIiAh PSAnWC0tbW9kZT1jb21waWxlJzsgZG8KLSsgICAgICBzaGlmdAotKyAgICBkb25lCi0rICAgIHNo aWZ0Ci0rICBmaQotKyAgIyBYIG1ha2VkZXBlbmQKLSsgIHNoaWZ0Ci0rICBjbGVhcmVkPW5vIGVh dD1ubwotKyAgZm9yIGFyZwotKyAgZG8KLSsgICAgY2FzZSAkY2xlYXJlZCBpbgotKyAgICBubykK LSsgICAgICBzZXQgIiI7IHNoaWZ0Ci0rICAgICAgY2xlYXJlZD15ZXMgOzsKLSsgICAgZXNhYwot KyAgICBpZiB0ZXN0ICRlYXQgPSB5ZXM7IHRoZW4KLSsgICAgICBlYXQ9bm8KLSsgICAgICBjb250 aW51ZQotKyAgICBmaQotKyAgICBjYXNlICIkYXJnIiBpbgotKyAgICAtRCp8LUkqKQotKyAgICAg IHNldCBmbm9yZCAiJEAiICIkYXJnIjsgc2hpZnQgOzsKLSsgICAgIyBTdHJpcCBhbnkgb3B0aW9u IHRoYXQgbWFrZWRlcGVuZCBtYXkgbm90IHVuZGVyc3RhbmQuICBSZW1vdmUKLSsgICAgIyB0aGUg b2JqZWN0IHRvbywgb3RoZXJ3aXNlIG1ha2VkZXBlbmQgd2lsbCBwYXJzZSBpdCBhcyBhIHNvdXJj ZSBmaWxlLgotKyAgICAtYXJjaCkKLSsgICAgICBlYXQ9eWVzIDs7Ci0rICAgIC0qfCRvYmplY3Qp Ci0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBzZXQgZm5vcmQgIiRAIiAiJGFyZyI7IHNoaWZ0 IDs7Ci0rICAgIGVzYWMKLSsgIGRvbmUKLSsgIG9ial9zdWZmaXg9YGVjaG8gIiRvYmplY3QiIHwg c2VkICdzL14uKlwuLy4vJ2AKLSsgIHRvdWNoICIkdG1wZGVwZmlsZSIKLSsgICR7TUFLRURFUEVO RC1tYWtlZGVwZW5kfSAtbyIkb2JqX3N1ZmZpeCIgLWYiJHRtcGRlcGZpbGUiICIkQCIKLSsgIHJt IC1mICIkZGVwZmlsZSIKLSsgIGNhdCA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCi0rICBz ZWQgJzEsMmQnICIkdG1wZGVwZmlsZSIgfCB0ciAnICcgJwotKycgfCBcCi0rIyMgU29tZSB2ZXJz aW9ucyBvZiB0aGUgSFBVWCAxMC4yMCBzZWQgY2FuJ3QgcHJvY2VzcyB0aGlzIGludm9jYXRpb24K LSsjIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRvIHR3byBzZWQgaW52b2NhdGlvbnMgaXMg YSB3b3JrYXJvdW5kLgotKyAgICBzZWQgLWUgJ3MvXlxcJC8vJyAtZSAnL14kL2QnIC1lICcvOiQv ZCcgfCBzZWQgLWUgJ3MvJC8gOi8nID4+ICIkZGVwZmlsZSIKLSsgIHJtIC1mICIkdG1wZGVwZmls ZSIgIiR0bXBkZXBmaWxlIi5iYWsKLSsgIDs7Ci0rCi0rY3BwKQotKyAgIyBJbXBvcnRhbnQgbm90 ZTogaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGlzIG1vZGUsIGEgY29tcGlsZXIgKm11c3QqCi0rICAj IGFsd2F5cyB3cml0ZSB0aGUgcHJlcHJvY2Vzc2VkIGZpbGUgdG8gc3Rkb3V0LgotKyAgIiRAIiB8 fCBleGl0ICQ/Ci0rCi0rICAjIFJlbW92ZSB0aGUgY2FsbCB0byBMaWJ0b29sLgotKyAgaWYgdGVz dCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0rICAgIHdoaWxlIHRlc3QgIlgkMSIgIT0gJ1gtLW1v ZGU9Y29tcGlsZSc7IGRvCi0rICAgICAgc2hpZnQKLSsgICAgZG9uZQotKyAgICBzaGlmdAotKyAg ZmkKLSsKLSsgICMgUmVtb3ZlIGAtbyAkb2JqZWN0Jy4KLSsgIElGUz0iICIKLSsgIGZvciBhcmcK LSsgIGRvCi0rICAgIGNhc2UgJGFyZyBpbgotKyAgICAtbykKLSsgICAgICBzaGlmdAotKyAgICAg IDs7Ci0rICAgICRvYmplY3QpCi0rICAgICAgc2hpZnQKLSsgICAgICA7OwotKyAgICAqKQotKyAg ICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIgotKyAgICAgIHNoaWZ0ICMgZm5vcmQKLSsgICAgICBz aGlmdCAjICRhcmcKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBkb25lCi0rCi0rICAiJEAiIC1F IHwKLSsgICAgc2VkIC1uIC1lICcvXiMgWzAtOV1bMC05XSogIlwoW14iXSpcKSIuKi8gczo6IFwx IFxcOnAnIFwKLSsgICAgICAgLWUgJy9eI2xpbmUgWzAtOV1bMC05XSogIlwoW14iXSpcKSIuKi8g czo6IFwxIFxcOnAnIHwKLSsgICAgc2VkICckIHM6IFxcJDo6JyA+ICIkdG1wZGVwZmlsZSIKLSsg IHJtIC1mICIkZGVwZmlsZSIKLSsgIGVjaG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZpbGUiCi0r ICBjYXQgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKLSsgIHNlZCA8ICIkdG1wZGVwZmls ZSIgJy9eJC9kO3MvXiAvLztzLyBcXCQvLztzLyQvIDovJyA+PiAiJGRlcGZpbGUiCi0rICBybSAt ZiAiJHRtcGRlcGZpbGUiCi0rICA7OwotKwotK21zdmlzdWFsY3BwKQotKyAgIyBJbXBvcnRhbnQg bm90ZTogaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGlzIG1vZGUsIGEgY29tcGlsZXIgKm11c3QqCi0r ICAjIGFsd2F5cyB3cml0ZSB0aGUgcHJlcHJvY2Vzc2VkIGZpbGUgdG8gc3Rkb3V0LgotKyAgIiRA IiB8fCBleGl0ICQ/Ci0rCi0rICAjIFJlbW92ZSB0aGUgY2FsbCB0byBMaWJ0b29sLgotKyAgaWYg dGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0rICAgIHdoaWxlIHRlc3QgIlgkMSIgIT0gJ1gt LW1vZGU9Y29tcGlsZSc7IGRvCi0rICAgICAgc2hpZnQKLSsgICAgZG9uZQotKyAgICBzaGlmdAot KyAgZmkKLSsKLSsgIElGUz0iICIKLSsgIGZvciBhcmcKLSsgIGRvCi0rICAgIGNhc2UgIiRhcmci IGluCi0rICAgIC1vKQotKyAgICAgIHNoaWZ0Ci0rICAgICAgOzsKLSsgICAgJG9iamVjdCkKLSsg ICAgICBzaGlmdAotKyAgICAgIDs7Ci0rICAgICItR20ifCIvR20ifCItR2kifCIvR2kifCItWkki fCIvWkkiKQotKwlzZXQgZm5vcmQgIiRAIgotKwlzaGlmdAotKwlzaGlmdAotKwk7OwotKyAgICAq KQotKwlzZXQgZm5vcmQgIiRAIiAiJGFyZyIKLSsJc2hpZnQKLSsJc2hpZnQKLSsJOzsKLSsgICAg ZXNhYwotKyAgZG9uZQotKyAgIiRAIiAtRSAyPi9kZXYvbnVsbCB8Ci0rICBzZWQgLW4gJy9eI2xp bmUgWzAtOV1bMC05XSogIlwoW14iXSpcKSIvIHM6OlwxOnAnIHwgJGN5Z3BhdGhfdSB8IHNvcnQg LXUgPiAiJHRtcGRlcGZpbGUiCi0rICBybSAtZiAiJGRlcGZpbGUiCi0rICBlY2hvICIkb2JqZWN0 IDogXFwiID4gIiRkZXBmaWxlIgotKyAgc2VkIDwgIiR0bXBkZXBmaWxlIiAtbiAtZSAncyUgJVxc ICVnJyAtZSAnL15cKC4qXCkkLyBzOjoJXDEgXFw6cCcgPj4gIiRkZXBmaWxlIgotKyAgZWNobyAi CSIgPj4gIiRkZXBmaWxlIgotKyAgc2VkIDwgIiR0bXBkZXBmaWxlIiAtbiAtZSAncyUgJVxcICVn JyAtZSAnL15cKC4qXCkkLyBzOjpcMVw6OnAnID4+ICIkZGVwZmlsZSIKLSsgIHJtIC1mICIkdG1w ZGVwZmlsZSIKLSsgIDs7Ci0rCi0rbXN2Y21zeXMpCi0rICAjIFRoaXMgY2FzZSBleGlzdHMgb25s eSB0byBsZXQgZGVwZW5kLm00IGRvIGl0cyB3b3JrLiAgSXQgd29ya3MgYnkKLSsgICMgbG9va2lu ZyBhdCB0aGUgdGV4dCBvZiB0aGlzIHNjcmlwdC4gIFRoaXMgY2FzZSB3aWxsIG5ldmVyIGJlIHJ1 biwKLSsgICMgc2luY2UgaXQgaXMgY2hlY2tlZCBmb3IgYWJvdmUuCi0rICBleGl0IDEKLSsgIDs7 Ci0rCi0rbm9uZSkKLSsgIGV4ZWMgIiRAIgotKyAgOzsKLSsKLSsqKQotKyAgZWNobyAiVW5rbm93 biBkZXBtb2RlICRkZXBtb2RlIiAxPiYyCi0rICBleGl0IDEKLSsgIDs7Ci0rZXNhYwotKwotK2V4 aXQgMAotKwotKyMgTG9jYWwgVmFyaWFibGVzOgotKyMgbW9kZTogc2hlbGwtc2NyaXB0Ci0rIyBz aC1pbmRlbnRhdGlvbjogMgotKyMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0 aW1lLXN0YW1wKQotKyMgdGltZS1zdGFtcC1zdGFydDogInNjcmlwdHZlcnNpb249IgotKyMgdGlt ZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCi0rIyB0aW1lLXN0YW1wLXRpbWUt em9uZTogIlVUQyIKLSsjIHRpbWUtc3RhbXAtZW5kOiAiOyAjIFVUQyIKLSsjIEVuZDoKLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvaW5zdGFsbC1zaCBzb2NpLTMuMC4wX3RyZXAz MDAvY29uZmlnL2luc3RhbGwtc2gKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvaW5zdGFs bC1zaAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9jb25maWcvaW5zdGFsbC1zaAkyMDEwLTAxLTIzIDE0OjQ0OjUwLjAwMDAwMDAwMCAr MDEwMAotQEAgLTAsMCArMSw1MjAgQEAKLSsjIS9iaW4vc2gKLSsjIGluc3RhbGwgLSBpbnN0YWxs IGEgcHJvZ3JhbSwgc2NyaXB0LCBvciBkYXRhZmlsZQotKwotK3NjcmlwdHZlcnNpb249MjAwOS0w NC0yOC4yMTsgIyBVVEMKLSsKLSsjIFRoaXMgb3JpZ2luYXRlcyBmcm9tIFgxMVI1IChtaXQvdXRp bC9zY3JpcHRzL2luc3RhbGwuc2gpLCB3aGljaCB3YXMKLSsjIGxhdGVyIHJlbGVhc2VkIGluIFgx MVI2ICh4Yy9jb25maWcvdXRpbC9pbnN0YWxsLnNoKSB3aXRoIHRoZQotKyMgZm9sbG93aW5nIGNv cHlyaWdodCBhbmQgbGljZW5zZS4KLSsjCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQgWCBDb25zb3J0 aXVtCi0rIwotKyMgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQotKyMgb2YgdGhpcyBzb2Z0d2FyZSBhbmQg YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCi0rIyBk ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91 dCBsaW1pdGF0aW9uIHRoZQotKyMgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg cHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCi0rIyBzZWxsIGNvcGllcyBv ZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2Fy ZSBpcwotKyMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29u ZGl0aW9uczoKLSsjCi0rIyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgotKyMgYWxsIGNvcGllcyBvciBzdWJz dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0rIwotKyMgVEhFIFNPRlRXQVJFIElT IFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Mg T1IKLSsjIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ RVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotKyMgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotKyMgWCBDT05T T1JUSVVNIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElU WSwgV0hFVEhFUiBJTgotKyMgQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lT RSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDLQotKyMgVElPTiBXSVRIIFRIRSBT T0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSsj Ci0rIyBFeGNlcHQgYXMgY29udGFpbmVkIGluIHRoaXMgbm90aWNlLCB0aGUgbmFtZSBvZiB0aGUg WCBDb25zb3J0aXVtIHNoYWxsIG5vdAotKyMgYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBvciBvdGhl cndpc2UgdG8gcHJvbW90ZSB0aGUgc2FsZSwgdXNlIG9yIG90aGVyIGRlYWwtCi0rIyBpbmdzIGlu IHRoaXMgU29mdHdhcmUgd2l0aG91dCBwcmlvciB3cml0dGVuIGF1dGhvcml6YXRpb24gZnJvbSB0 aGUgWCBDb25zb3ItCi0rIyB0aXVtLgotKyMKLSsjCi0rIyBGU0YgY2hhbmdlcyB0byB0aGlzIGZp bGUgYXJlIGluIHRoZSBwdWJsaWMgZG9tYWluLgotKyMKLSsjIENhbGxpbmcgdGhpcyBzY3JpcHQg aW5zdGFsbC1zaCBpcyBwcmVmZXJyZWQgb3ZlciBpbnN0YWxsLnNoLCB0byBwcmV2ZW50Ci0rIyBg bWFrZScgaW1wbGljaXQgcnVsZXMgZnJvbSBjcmVhdGluZyBhIGZpbGUgY2FsbGVkIGluc3RhbGwg ZnJvbSBpdAotKyMgd2hlbiB0aGVyZSBpcyBubyBNYWtlZmlsZS4KLSsjCi0rIyBUaGlzIHNjcmlw dCBpcyBjb21wYXRpYmxlIHdpdGggdGhlIEJTRCBpbnN0YWxsIHNjcmlwdCwgYnV0IHdhcyB3cml0 dGVuCi0rIyBmcm9tIHNjcmF0Y2guCi0rCi0rbmw9JwotKycKLStJRlM9IiAiIgkkbmwiCi0rCi0r IyBzZXQgRE9JVFBST0cgdG8gZWNobyB0byB0ZXN0IHRoaXMgc2NyaXB0Ci0rCi0rIyBEb24ndCB1 c2UgOi0gc2luY2UgNC4zQlNEIGFuZCBlYXJsaWVyIHNoZWxscyBkb24ndCBsaWtlIGl0LgotK2Rv aXQ9JHtET0lUUFJPRy19Ci0raWYgdGVzdCAteiAiJGRvaXQiOyB0aGVuCi0rICBkb2l0X2V4ZWM9 ZXhlYwotK2Vsc2UKLSsgIGRvaXRfZXhlYz0kZG9pdAotK2ZpCi0rCi0rIyBQdXQgaW4gYWJzb2x1 dGUgZmlsZSBuYW1lcyBpZiB5b3UgZG9uJ3QgaGF2ZSB0aGVtIGluIHlvdXIgcGF0aDsKLSsjIG9y IHVzZSBlbnZpcm9ubWVudCB2YXJzLgotKwotK2NoZ3JwcHJvZz0ke0NIR1JQUFJPRy1jaGdycH0K LStjaG1vZHByb2c9JHtDSE1PRFBST0ctY2htb2R9Ci0rY2hvd25wcm9nPSR7Q0hPV05QUk9HLWNo b3dufQotK2NtcHByb2c9JHtDTVBQUk9HLWNtcH0KLStjcHByb2c9JHtDUFBST0ctY3B9Ci0rbWtk aXJwcm9nPSR7TUtESVJQUk9HLW1rZGlyfQotK212cHJvZz0ke01WUFJPRy1tdn0KLStybXByb2c9 JHtSTVBST0ctcm19Ci0rc3RyaXBwcm9nPSR7U1RSSVBQUk9HLXN0cmlwfQotKwotK3Bvc2l4X2ds b2I9Jz8nCi0raW5pdGlhbGl6ZV9wb3NpeF9nbG9iPScKLSsgIHRlc3QgIiRwb3NpeF9nbG9iIiAh PSAiPyIgfHwgewotKyAgICBpZiAoc2V0IC1mKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgIHBv c2l4X2dsb2I9Ci0rICAgIGVsc2UKLSsgICAgICBwb3NpeF9nbG9iPToKLSsgICAgZmkKLSsgIH0K LSsnCi0rCi0rcG9zaXhfbWtkaXI9Ci0rCi0rIyBEZXNpcmVkIG1vZGUgb2YgaW5zdGFsbGVkIGZp bGUuCi0rbW9kZT0wNzU1Ci0rCi0rY2hncnBjbWQ9Ci0rY2htb2RjbWQ9JGNobW9kcHJvZwotK2No b3duY21kPQotK212Y21kPSRtdnByb2cKLStybWNtZD0iJHJtcHJvZyAtZiIKLStzdHJpcGNtZD0K LSsKLStzcmM9Ci0rZHN0PQotK2Rpcl9hcmc9Ci0rZHN0X2FyZz0KLSsKLStjb3B5X29uX2NoYW5n ZT1mYWxzZQotK25vX3RhcmdldF9kaXJlY3Rvcnk9Ci0rCi0rdXNhZ2U9IlwKLStVc2FnZTogJDAg W09QVElPTl0uLi4gWy1UXSBTUkNGSUxFIERTVEZJTEUKLSsgICBvcjogJDAgW09QVElPTl0uLi4g U1JDRklMRVMuLi4gRElSRUNUT1JZCi0rICAgb3I6ICQwIFtPUFRJT05dLi4uIC10IERJUkVDVE9S WSBTUkNGSUxFUy4uLgotKyAgIG9yOiAkMCBbT1BUSU9OXS4uLiAtZCBESVJFQ1RPUklFUy4uLgot KwotK0luIHRoZSAxc3QgZm9ybSwgY29weSBTUkNGSUxFIHRvIERTVEZJTEUuCi0rSW4gdGhlIDJu ZCBhbmQgM3JkLCBjb3B5IGFsbCBTUkNGSUxFUyB0byBESVJFQ1RPUlkuCi0rSW4gdGhlIDR0aCwg Y3JlYXRlIERJUkVDVE9SSUVTLgotKwotK09wdGlvbnM6Ci0rICAgICAtLWhlbHAgICAgIGRpc3Bs YXkgdGhpcyBoZWxwIGFuZCBleGl0LgotKyAgICAgLS12ZXJzaW9uICBkaXNwbGF5IHZlcnNpb24g aW5mbyBhbmQgZXhpdC4KLSsKLSsgIC1jICAgICAgICAgICAgKGlnbm9yZWQpCi0rICAtQyAgICAg ICAgICAgIGluc3RhbGwgb25seSBpZiBkaWZmZXJlbnQgKHByZXNlcnZlIHRoZSBsYXN0IGRhdGEg bW9kaWZpY2F0aW9uIHRpbWUpCi0rICAtZCAgICAgICAgICAgIGNyZWF0ZSBkaXJlY3RvcmllcyBp bnN0ZWFkIG9mIGluc3RhbGxpbmcgZmlsZXMuCi0rICAtZyBHUk9VUCAgICAgICRjaGdycHByb2cg aW5zdGFsbGVkIGZpbGVzIHRvIEdST1VQLgotKyAgLW0gTU9ERSAgICAgICAkY2htb2Rwcm9nIGlu c3RhbGxlZCBmaWxlcyB0byBNT0RFLgotKyAgLW8gVVNFUiAgICAgICAkY2hvd25wcm9nIGluc3Rh bGxlZCBmaWxlcyB0byBVU0VSLgotKyAgLXMgICAgICAgICAgICAkc3RyaXBwcm9nIGluc3RhbGxl ZCBmaWxlcy4KLSsgIC10IERJUkVDVE9SWSAgaW5zdGFsbCBpbnRvIERJUkVDVE9SWS4KLSsgIC1U ICAgICAgICAgICAgcmVwb3J0IGFuIGVycm9yIGlmIERTVEZJTEUgaXMgYSBkaXJlY3RvcnkuCi0r Ci0rRW52aXJvbm1lbnQgdmFyaWFibGVzIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNvbW1hbmRzOgot KyAgQ0hHUlBQUk9HIENITU9EUFJPRyBDSE9XTlBST0cgQ01QUFJPRyBDUFBST0cgTUtESVJQUk9H IE1WUFJPRwotKyAgUk1QUk9HIFNUUklQUFJPRwotKyIKLSsKLSt3aGlsZSB0ZXN0ICQjIC1uZSAw OyBkbwotKyAgY2FzZSAkMSBpbgotKyAgICAtYykgOzsKLSsKLSsgICAgLUMpIGNvcHlfb25fY2hh bmdlPXRydWU7OwotKwotKyAgICAtZCkgZGlyX2FyZz10cnVlOzsKLSsKLSsgICAgLWcpIGNoZ3Jw Y21kPSIkY2hncnBwcm9nICQyIgotKwlzaGlmdDs7Ci0rCi0rICAgIC0taGVscCkgZWNobyAiJHVz YWdlIjsgZXhpdCAkPzs7Ci0rCi0rICAgIC1tKSBtb2RlPSQyCi0rCWNhc2UgJG1vZGUgaW4KLSsJ ICAqJyAnKiB8IConCScqIHwgKicKLSsnKgkgIHwgKicqJyogfCAqJz8nKiB8IConWycqKQotKwkg ICAgZWNobyAiJDA6IGludmFsaWQgbW9kZTogJG1vZGUiID4mMgotKwkgICAgZXhpdCAxOzsKLSsJ ZXNhYwotKwlzaGlmdDs7Ci0rCi0rICAgIC1vKSBjaG93bmNtZD0iJGNob3ducHJvZyAkMiIKLSsJ c2hpZnQ7OwotKwotKyAgICAtcykgc3RyaXBjbWQ9JHN0cmlwcHJvZzs7Ci0rCi0rICAgIC10KSBk c3RfYXJnPSQyCi0rCXNoaWZ0OzsKLSsKLSsgICAgLVQpIG5vX3RhcmdldF9kaXJlY3Rvcnk9dHJ1 ZTs7Ci0rCi0rICAgIC0tdmVyc2lvbikgZWNobyAiJDAgJHNjcmlwdHZlcnNpb24iOyBleGl0ICQ/ OzsKLSsKLSsgICAgLS0pCXNoaWZ0Ci0rCWJyZWFrOzsKLSsKLSsgICAgLSopCWVjaG8gIiQwOiBp bnZhbGlkIG9wdGlvbjogJDEiID4mMgotKwlleGl0IDE7OwotKwotKyAgICAqKSAgYnJlYWs7Owot KyAgZXNhYwotKyAgc2hpZnQKLStkb25lCi0rCi0raWYgdGVzdCAkIyAtbmUgMCAmJiB0ZXN0IC16 ICIkZGlyX2FyZyRkc3RfYXJnIjsgdGhlbgotKyAgIyBXaGVuIC1kIGlzIHVzZWQsIGFsbCByZW1h aW5pbmcgYXJndW1lbnRzIGFyZSBkaXJlY3RvcmllcyB0byBjcmVhdGUuCi0rICAjIFdoZW4gLXQg aXMgdXNlZCwgdGhlIGRlc3RpbmF0aW9uIGlzIGFscmVhZHkgc3BlY2lmaWVkLgotKyAgIyBPdGhl cndpc2UsIHRoZSBsYXN0IGFyZ3VtZW50IGlzIHRoZSBkZXN0aW5hdGlvbi4gIFJlbW92ZSBpdCBm cm9tICRALgotKyAgZm9yIGFyZwotKyAgZG8KLSsgICAgaWYgdGVzdCAtbiAiJGRzdF9hcmciOyB0 aGVuCi0rICAgICAgIyAkQCBpcyBub3QgZW1wdHk6IGl0IGNvbnRhaW5zIGF0IGxlYXN0ICRhcmcu Ci0rICAgICAgc2V0IGZub3JkICIkQCIgIiRkc3RfYXJnIgotKyAgICAgIHNoaWZ0ICMgZm5vcmQK LSsgICAgZmkKLSsgICAgc2hpZnQgIyBhcmcKLSsgICAgZHN0X2FyZz0kYXJnCi0rICBkb25lCi0r ZmkKLSsKLStpZiB0ZXN0ICQjIC1lcSAwOyB0aGVuCi0rICBpZiB0ZXN0IC16ICIkZGlyX2FyZyI7 IHRoZW4KLSsgICAgZWNobyAiJDA6IG5vIGlucHV0IGZpbGUgc3BlY2lmaWVkLiIgPiYyCi0rICAg IGV4aXQgMQotKyAgZmkKLSsgICMgSXQncyBPSyB0byBjYWxsIGBpbnN0YWxsLXNoIC1kJyB3aXRo b3V0IGFyZ3VtZW50LgotKyAgIyBUaGlzIGNhbiBoYXBwZW4gd2hlbiBjcmVhdGluZyBjb25kaXRp b25hbCBkaXJlY3Rvcmllcy4KLSsgIGV4aXQgMAotK2ZpCi0rCi0raWYgdGVzdCAteiAiJGRpcl9h cmciOyB0aGVuCi0rICB0cmFwICcoZXhpdCAkPyk7IGV4aXQnIDEgMiAxMyAxNQotKwotKyAgIyBT ZXQgdW1hc2sgc28gYXMgbm90IHRvIGNyZWF0ZSB0ZW1wcyB3aXRoIHRvby1nZW5lcm91cyBtb2Rl cy4KLSsgICMgSG93ZXZlciwgJ3N0cmlwJyByZXF1aXJlcyBib3RoIHJlYWQgYW5kIHdyaXRlIGFj Y2VzcyB0byB0ZW1wcy4KLSsgIGNhc2UgJG1vZGUgaW4KLSsgICAgIyBPcHRpbWl6ZSBjb21tb24g Y2FzZXMuCi0rICAgICo2NDQpIGNwX3VtYXNrPTEzMzs7Ci0rICAgICo3NTUpIGNwX3VtYXNrPTIy OzsKLSsKLSsgICAgKlswLTddKQotKyAgICAgIGlmIHRlc3QgLXogIiRzdHJpcGNtZCI7IHRoZW4K LSsJdV9wbHVzX3J3PQotKyAgICAgIGVsc2UKLSsJdV9wbHVzX3J3PSclIDIwMCcKLSsgICAgICBm aQotKyAgICAgIGNwX3VtYXNrPWBleHByICcoJyA3NzcgLSAkbW9kZSAlIDEwMDAgJyknICR1X3Bs dXNfcndgOzsKLSsgICAgKikKLSsgICAgICBpZiB0ZXN0IC16ICIkc3RyaXBjbWQiOyB0aGVuCi0r CXVfcGx1c19ydz0KLSsgICAgICBlbHNlCi0rCXVfcGx1c19ydz0sdStydwotKyAgICAgIGZpCi0r ICAgICAgY3BfdW1hc2s9JG1vZGUkdV9wbHVzX3J3OzsKLSsgIGVzYWMKLStmaQotKwotK2ZvciBz cmMKLStkbwotKyAgIyBQcm90ZWN0IG5hbWVzIHN0YXJ0aW5nIHdpdGggYC0nLgotKyAgY2FzZSAk c3JjIGluCi0rICAgIC0qKSBzcmM9Li8kc3JjOzsKLSsgIGVzYWMKLSsKLSsgIGlmIHRlc3QgLW4g IiRkaXJfYXJnIjsgdGhlbgotKyAgICBkc3Q9JHNyYwotKyAgICBkc3RkaXI9JGRzdAotKyAgICB0 ZXN0IC1kICIkZHN0ZGlyIgotKyAgICBkc3RkaXJfc3RhdHVzPSQ/Ci0rICBlbHNlCi0rCi0rICAg ICMgV2FpdGluZyBmb3IgdGhpcyB0byBiZSBkZXRlY3RlZCBieSB0aGUgIiRjcHByb2cgJHNyYyAk ZHN0dG1wIiBjb21tYW5kCi0rICAgICMgbWlnaHQgY2F1c2UgZGlyZWN0b3JpZXMgdG8gYmUgY3Jl YXRlZCwgd2hpY2ggd291bGQgYmUgZXNwZWNpYWxseSBiYWQKLSsgICAgIyBpZiAkc3JjIChhbmQg dGh1cyAkZHN0dG1wKSBjb250YWlucyAnKicuCi0rICAgIGlmIHRlc3QgISAtZiAiJHNyYyIgJiYg dGVzdCAhIC1kICIkc3JjIjsgdGhlbgotKyAgICAgIGVjaG8gIiQwOiAkc3JjIGRvZXMgbm90IGV4 aXN0LiIgPiYyCi0rICAgICAgZXhpdCAxCi0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgLXogIiRk c3RfYXJnIjsgdGhlbgotKyAgICAgIGVjaG8gIiQwOiBubyBkZXN0aW5hdGlvbiBzcGVjaWZpZWQu IiA+JjIKLSsgICAgICBleGl0IDEKLSsgICAgZmkKLSsKLSsgICAgZHN0PSRkc3RfYXJnCi0rICAg ICMgUHJvdGVjdCBuYW1lcyBzdGFydGluZyB3aXRoIGAtJy4KLSsgICAgY2FzZSAkZHN0IGluCi0r ICAgICAgLSopIGRzdD0uLyRkc3Q7OwotKyAgICBlc2FjCi0rCi0rICAgICMgSWYgZGVzdGluYXRp b24gaXMgYSBkaXJlY3RvcnksIGFwcGVuZCB0aGUgaW5wdXQgZmlsZW5hbWU7IHdvbid0IHdvcmsK LSsgICAgIyBpZiBkb3VibGUgc2xhc2hlcyBhcmVuJ3QgaWdub3JlZC4KLSsgICAgaWYgdGVzdCAt ZCAiJGRzdCI7IHRoZW4KLSsgICAgICBpZiB0ZXN0IC1uICIkbm9fdGFyZ2V0X2RpcmVjdG9yeSI7 IHRoZW4KLSsJZWNobyAiJDA6ICRkc3RfYXJnOiBJcyBhIGRpcmVjdG9yeSIgPiYyCi0rCWV4aXQg MQotKyAgICAgIGZpCi0rICAgICAgZHN0ZGlyPSRkc3QKLSsgICAgICBkc3Q9JGRzdGRpci9gYmFz ZW5hbWUgIiRzcmMiYAotKyAgICAgIGRzdGRpcl9zdGF0dXM9MAotKyAgICBlbHNlCi0rICAgICAg IyBQcmVmZXIgZGlybmFtZSwgYnV0IGZhbGwgYmFjayBvbiBhIHN1YnN0aXR1dGUgaWYgZGlybmFt ZSBmYWlscy4KLSsgICAgICBkc3RkaXI9YAotKwkoZGlybmFtZSAiJGRzdCIpIDI+L2Rldi9udWxs IHx8Ci0rCWV4cHIgWCIkZHN0IiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAot KwkgICAgIFgiJGRzdCIgOiAnWFwoLy9cKVteL10nIFx8IFwKLSsJICAgICBYIiRkc3QiIDogJ1hc KC8vXCkkJyBcfCBcCi0rCSAgICAgWCIkZHN0IiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwg fHwKLSsJZWNobyBYIiRkc3QiIHwKLSsJICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVte L10qXC8qJC97Ci0rCQkgICBzLy9cMS8KLSsJCSAgIHEKLSsJCSB9Ci0rCQkgL15YXChcL1wvXClb Xi9dLiovewotKwkJICAgcy8vXDEvCi0rCQkgICBxCi0rCQkgfQotKwkJIC9eWFwoXC9cL1wpJC97 Ci0rCQkgICBzLy9cMS8KLSsJCSAgIHEKLSsJCSB9Ci0rCQkgL15YXChcL1wpLiovewotKwkJICAg cy8vXDEvCi0rCQkgICBxCi0rCQkgfQotKwkJIHMvLiovLi87IHEnCi0rICAgICAgYAotKwotKyAg ICAgIHRlc3QgLWQgIiRkc3RkaXIiCi0rICAgICAgZHN0ZGlyX3N0YXR1cz0kPwotKyAgICBmaQot KyAgZmkKLSsKLSsgIG9ic29sZXRlX21rZGlyX3VzZWQ9ZmFsc2UKLSsKLSsgIGlmIHRlc3QgJGRz dGRpcl9zdGF0dXMgIT0gMDsgdGhlbgotKyAgICBjYXNlICRwb3NpeF9ta2RpciBpbgotKyAgICAg ICcnKQotKwkjIENyZWF0ZSBpbnRlcm1lZGlhdGUgZGlycyB1c2luZyBtb2RlIDc1NSBhcyBtb2Rp ZmllZCBieSB0aGUgdW1hc2suCi0rCSMgVGhpcyBpcyBsaWtlIEZyZWVCU0QgJ2luc3RhbGwnIGFz IG9mIDE5OTctMTAtMjguCi0rCXVtYXNrPWB1bWFza2AKLSsJY2FzZSAkc3RyaXBjbWQuJHVtYXNr IGluCi0rCSAgIyBPcHRpbWl6ZSBjb21tb24gY2FzZXMuCi0rCSAgKlsyMzY3XVsyMzY3XSkgbWtk aXJfdW1hc2s9JHVtYXNrOzsKLSsJICAuKjBbMDJdWzAyXSB8IC5bMDJdWzAyXSB8IC5bMDJdKSBt a2Rpcl91bWFzaz0yMjs7Ci0rCi0rCSAgKlswLTddKQotKwkgICAgbWtkaXJfdW1hc2s9YGV4cHIg JHVtYXNrICsgMjIgXAotKwkgICAgICAtICR1bWFzayAlIDEwMCAlIDQwICsgJHVtYXNrICUgMjAg XAotKwkgICAgICAtICR1bWFzayAlIDEwICUgNCArICR1bWFzayAlIDIKLSsJICAgIGA7OwotKwkg ICopIG1rZGlyX3VtYXNrPSR1bWFzayxnby13OzsKLSsJZXNhYwotKwotKwkjIFdpdGggLWQsIGNy ZWF0ZSB0aGUgbmV3IGRpcmVjdG9yeSB3aXRoIHRoZSB1c2VyLXNwZWNpZmllZCBtb2RlLgotKwkj IE90aGVyd2lzZSwgcmVseSBvbiAkbWtkaXJfdW1hc2suCi0rCWlmIHRlc3QgLW4gIiRkaXJfYXJn IjsgdGhlbgotKwkgIG1rZGlyX21vZGU9LW0kbW9kZQotKwllbHNlCi0rCSAgbWtkaXJfbW9kZT0K LSsJZmkKLSsKLSsJcG9zaXhfbWtkaXI9ZmFsc2UKLSsJY2FzZSAkdW1hc2sgaW4KLSsJICAqWzEy MzU2N11bMC03XVswLTddKQotKwkgICAgIyBQT1NJWCBta2RpciAtcCBzZXRzIHUrd3ggYml0cyBy ZWdhcmRsZXNzIG9mIHVtYXNrLCB3aGljaAotKwkgICAgIyBpcyBpbmNvbXBhdGlibGUgd2l0aCBG cmVlQlNEICdpbnN0YWxsJyB3aGVuICh1bWFzayAmIDMwMCkgIT0gMC4KLSsJICAgIDs7Ci0rCSAg KikKLSsJICAgIHRtcGRpcj0ke1RNUERJUi0vdG1wfS9pbnMkUkFORE9NLSQkCi0rCSAgICB0cmFw ICdyZXQ9JD87IHJtZGlyICIkdG1wZGlyL2QiICIkdG1wZGlyIiAyPi9kZXYvbnVsbDsgZXhpdCAk cmV0JyAwCi0rCi0rCSAgICBpZiAodW1hc2sgJG1rZGlyX3VtYXNrICYmCi0rCQlleGVjICRta2Rp cnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiR0bXBkaXIvZCIpID4vZGV2L251bGwgMj4mMQotKwkg ICAgdGhlbgotKwkgICAgICBpZiB0ZXN0IC16ICIkZGlyX2FyZyIgfHwgewotKwkJICAgIyBDaGVj ayBmb3IgUE9TSVggaW5jb21wYXRpYmlsaXRpZXMgd2l0aCAtbS4KLSsJCSAgICMgSFAtVVggMTEu MjMgYW5kIElSSVggNi41IG1rZGlyIC1tIC1wIHNldHMgZ3JvdXAtIG9yCi0rCQkgICAjIG90aGVy LXdyaXRlYWJsZSBiaXQgb2YgcGFyZW50IGRpcmVjdG9yeSB3aGVuIGl0IHNob3VsZG4ndC4KLSsJ CSAgICMgRnJlZUJTRCA2LjEgbWtkaXIgLW0gLXAgc2V0cyBtb2RlIG9mIGV4aXN0aW5nIGRpcmVj dG9yeS4KLSsJCSAgIGxzX2xkX3RtcGRpcj1gbHMgLWxkICIkdG1wZGlyImAKLSsJCSAgIGNhc2Ug JGxzX2xkX3RtcGRpciBpbgotKwkJICAgICBkPz8/Py0/ci0qKSBkaWZmZXJlbnRfbW9kZT03MDA7 OwotKwkJICAgICBkPz8/Py0/LS0qKSBkaWZmZXJlbnRfbW9kZT03NTU7OwotKwkJICAgICAqKSBm YWxzZTs7Ci0rCQkgICBlc2FjICYmCi0rCQkgICAkbWtkaXJwcm9nIC1tJGRpZmZlcmVudF9tb2Rl IC1wIC0tICIkdG1wZGlyIiAmJiB7Ci0rCQkgICAgIGxzX2xkX3RtcGRpcl8xPWBscyAtbGQgIiR0 bXBkaXIiYAotKwkJICAgICB0ZXN0ICIkbHNfbGRfdG1wZGlyIiA9ICIkbHNfbGRfdG1wZGlyXzEi Ci0rCQkgICB9Ci0rCQkgfQotKwkgICAgICB0aGVuIHBvc2l4X21rZGlyPToKLSsJICAgICAgZmkK LSsJICAgICAgcm1kaXIgIiR0bXBkaXIvZCIgIiR0bXBkaXIiCi0rCSAgICBlbHNlCi0rCSAgICAg ICMgUmVtb3ZlIGFueSBkaXJzIGxlZnQgYmVoaW5kIGJ5IGFuY2llbnQgbWtkaXIgaW1wbGVtZW50 YXRpb25zLgotKwkgICAgICBybWRpciAuLyRta2Rpcl9tb2RlIC4vLXAgLi8tLSAyPi9kZXYvbnVs bAotKwkgICAgZmkKLSsJICAgIHRyYXAgJycgMDs7Ci0rCWVzYWM7OwotKyAgICBlc2FjCi0rCi0r ICAgIGlmCi0rICAgICAgJHBvc2l4X21rZGlyICYmICgKLSsJdW1hc2sgJG1rZGlyX3VtYXNrICYm Ci0rCSRkb2l0X2V4ZWMgJG1rZGlycHJvZyAkbWtkaXJfbW9kZSAtcCAtLSAiJGRzdGRpciIKLSsg ICAgICApCi0rICAgIHRoZW4gOgotKyAgICBlbHNlCi0rCi0rICAgICAgIyBUaGUgdW1hc2sgaXMg cmlkaWN1bG91cywgb3IgbWtkaXIgZG9lcyBub3QgY29uZm9ybSB0byBQT1NJWCwKLSsgICAgICAj IG9yIGl0IGZhaWxlZCBwb3NzaWJseSBkdWUgdG8gYSByYWNlIGNvbmRpdGlvbi4gIENyZWF0ZSB0 aGUKLSsgICAgICAjIGRpcmVjdG9yeSB0aGUgc2xvdyB3YXksIHN0ZXAgYnkgc3RlcCwgY2hlY2tp bmcgZm9yIHJhY2VzIGFzIHdlIGdvLgotKwotKyAgICAgIGNhc2UgJGRzdGRpciBpbgotKwkvKikg cHJlZml4PScvJzs7Ci0rCS0qKSBwcmVmaXg9Jy4vJzs7Ci0rCSopICBwcmVmaXg9Jyc7OwotKyAg ICAgIGVzYWMKLSsKLSsgICAgICBldmFsICIkaW5pdGlhbGl6ZV9wb3NpeF9nbG9iIgotKwotKyAg ICAgIG9JRlM9JElGUwotKyAgICAgIElGUz0vCi0rICAgICAgJHBvc2l4X2dsb2Igc2V0IC1mCi0r ICAgICAgc2V0IGZub3JkICRkc3RkaXIKLSsgICAgICBzaGlmdAotKyAgICAgICRwb3NpeF9nbG9i IHNldCArZgotKyAgICAgIElGUz0kb0lGUwotKwotKyAgICAgIHByZWZpeGVzPQotKwotKyAgICAg IGZvciBkCi0rICAgICAgZG8KLSsJdGVzdCAteiAiJGQiICYmIGNvbnRpbnVlCi0rCi0rCXByZWZp eD0kcHJlZml4JGQKLSsJaWYgdGVzdCAtZCAiJHByZWZpeCI7IHRoZW4KLSsJICBwcmVmaXhlcz0K LSsJZWxzZQotKwkgIGlmICRwb3NpeF9ta2RpcjsgdGhlbgotKwkgICAgKHVtYXNrPSRta2Rpcl91 bWFzayAmJgotKwkgICAgICRkb2l0X2V4ZWMgJG1rZGlycHJvZyAkbWtkaXJfbW9kZSAtcCAtLSAi JGRzdGRpciIpICYmIGJyZWFrCi0rCSAgICAjIERvbid0IGZhaWwgaWYgdHdvIGluc3RhbmNlcyBh cmUgcnVubmluZyBjb25jdXJyZW50bHkuCi0rCSAgICB0ZXN0IC1kICIkcHJlZml4IiB8fCBleGl0 IDEKLSsJICBlbHNlCi0rCSAgICBjYXNlICRwcmVmaXggaW4KLSsJICAgICAgKlwnKikgcXByZWZp eD1gZWNobyAiJHByZWZpeCIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OwotKwkgICAgICAq KSBxcHJlZml4PSRwcmVmaXg7OwotKwkgICAgZXNhYwotKwkgICAgcHJlZml4ZXM9IiRwcmVmaXhl cyAnJHFwcmVmaXgnIgotKwkgIGZpCi0rCWZpCi0rCXByZWZpeD0kcHJlZml4LwotKyAgICAgIGRv bmUKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkcHJlZml4ZXMiOyB0aGVuCi0rCSMgRG9uJ3QgZmFp bCBpZiB0d28gaW5zdGFuY2VzIGFyZSBydW5uaW5nIGNvbmN1cnJlbnRseS4KLSsJKHVtYXNrICRt a2Rpcl91bWFzayAmJgotKwkgZXZhbCAiXCRkb2l0X2V4ZWMgXCRta2RpcnByb2cgJHByZWZpeGVz IikgfHwKLSsJICB0ZXN0IC1kICIkZHN0ZGlyIiB8fCBleGl0IDEKLSsJb2Jzb2xldGVfbWtkaXJf dXNlZD10cnVlCi0rICAgICAgZmkKLSsgICAgZmkKLSsgIGZpCi0rCi0rICBpZiB0ZXN0IC1uICIk ZGlyX2FyZyI7IHRoZW4KLSsgICAgeyB0ZXN0IC16ICIkY2hvd25jbWQiIHx8ICRkb2l0ICRjaG93 bmNtZCAiJGRzdCI7IH0gJiYKLSsgICAgeyB0ZXN0IC16ICIkY2hncnBjbWQiIHx8ICRkb2l0ICRj aGdycGNtZCAiJGRzdCI7IH0gJiYKLSsgICAgeyB0ZXN0ICIkb2Jzb2xldGVfbWtkaXJfdXNlZCRj aG93bmNtZCRjaGdycGNtZCIgPSBmYWxzZSB8fAotKyAgICAgIHRlc3QgLXogIiRjaG1vZGNtZCIg fHwgJGRvaXQgJGNobW9kY21kICRtb2RlICIkZHN0IjsgfSB8fCBleGl0IDEKLSsgIGVsc2UKLSsK LSsgICAgIyBNYWtlIGEgY291cGxlIG9mIHRlbXAgZmlsZSBuYW1lcyBpbiB0aGUgcHJvcGVyIGRp cmVjdG9yeS4KLSsgICAgZHN0dG1wPSRkc3RkaXIvX2luc3QuJCRfCi0rICAgIHJtdG1wPSRkc3Rk aXIvX3JtLiQkXwotKwotKyAgICAjIFRyYXAgdG8gY2xlYW4gdXAgdGhvc2UgdGVtcCBmaWxlcyBh dCBleGl0LgotKyAgICB0cmFwICdyZXQ9JD87IHJtIC1mICIkZHN0dG1wIiAiJHJtdG1wIiAmJiBl eGl0ICRyZXQnIDAKLSsKLSsgICAgIyBDb3B5IHRoZSBmaWxlIG5hbWUgdG8gdGhlIHRlbXAgbmFt ZS4KLSsgICAgKHVtYXNrICRjcF91bWFzayAmJiAkZG9pdF9leGVjICRjcHByb2cgIiRzcmMiICIk ZHN0dG1wIikgJiYKLSsKLSsgICAgIyBhbmQgc2V0IGFueSBvcHRpb25zOyBkbyBjaG1vZCBsYXN0 IHRvIHByZXNlcnZlIHNldHVpZCBiaXRzLgotKyAgICAjCi0rICAgICMgSWYgYW55IG9mIHRoZXNl IGZhaWwsIHdlIGFib3J0IHRoZSB3aG9sZSB0aGluZy4gIElmIHdlIHdhbnQgdG8KLSsgICAgIyBp Z25vcmUgZXJyb3JzIGZyb20gYW55IG9mIHRoZXNlLCBqdXN0IG1ha2Ugc3VyZSBub3QgdG8gaWdu b3JlCi0rICAgICMgZXJyb3JzIGZyb20gdGhlIGFib3ZlICIkZG9pdCAkY3Bwcm9nICRzcmMgJGRz dHRtcCIgY29tbWFuZC4KLSsgICAgIwotKyAgICB7IHRlc3QgLXogIiRjaG93bmNtZCIgfHwgJGRv aXQgJGNob3duY21kICIkZHN0dG1wIjsgfSAmJgotKyAgICB7IHRlc3QgLXogIiRjaGdycGNtZCIg fHwgJGRvaXQgJGNoZ3JwY21kICIkZHN0dG1wIjsgfSAmJgotKyAgICB7IHRlc3QgLXogIiRzdHJp cGNtZCIgfHwgJGRvaXQgJHN0cmlwY21kICIkZHN0dG1wIjsgfSAmJgotKyAgICB7IHRlc3QgLXog IiRjaG1vZGNtZCIgfHwgJGRvaXQgJGNobW9kY21kICRtb2RlICIkZHN0dG1wIjsgfSAmJgotKwot KyAgICAjIElmIC1DLCBkb24ndCBib3RoZXIgdG8gY29weSBpZiBpdCB3b3VsZG4ndCBjaGFuZ2Ug dGhlIGZpbGUuCi0rICAgIGlmICRjb3B5X29uX2NoYW5nZSAmJgotKyAgICAgICBvbGQ9YExDX0FM TD1DIGxzIC1kbEwgIiRkc3QiCTI+L2Rldi9udWxsYCAmJgotKyAgICAgICBuZXc9YExDX0FMTD1D IGxzIC1kbEwgIiRkc3R0bXAiCTI+L2Rldi9udWxsYCAmJgotKwotKyAgICAgICBldmFsICIkaW5p dGlhbGl6ZV9wb3NpeF9nbG9iIiAmJgotKyAgICAgICAkcG9zaXhfZ2xvYiBzZXQgLWYgJiYKLSsg ICAgICAgc2V0IFggJG9sZCAmJiBvbGQ9OiQyOiQ0OiQ1OiQ2ICYmCi0rICAgICAgIHNldCBYICRu ZXcgJiYgbmV3PTokMjokNDokNTokNiAmJgotKyAgICAgICAkcG9zaXhfZ2xvYiBzZXQgK2YgJiYK LSsKLSsgICAgICAgdGVzdCAiJG9sZCIgPSAiJG5ldyIgJiYKLSsgICAgICAgJGNtcHByb2cgIiRk c3QiICIkZHN0dG1wIiA+L2Rldi9udWxsIDI+JjEKLSsgICAgdGhlbgotKyAgICAgIHJtIC1mICIk ZHN0dG1wIgotKyAgICBlbHNlCi0rICAgICAgIyBSZW5hbWUgdGhlIGZpbGUgdG8gdGhlIHJlYWwg ZGVzdGluYXRpb24uCi0rICAgICAgJGRvaXQgJG12Y21kIC1mICIkZHN0dG1wIiAiJGRzdCIgMj4v ZGV2L251bGwgfHwKLSsKLSsgICAgICAjIFRoZSByZW5hbWUgZmFpbGVkLCBwZXJoYXBzIGJlY2F1 c2UgbXYgY2FuJ3QgcmVuYW1lIHNvbWV0aGluZyBlbHNlCi0rICAgICAgIyB0byBpdHNlbGYsIG9y IHBlcmhhcHMgYmVjYXVzZSBtdiBpcyBzbyBhbmNpZW50IHRoYXQgaXQgZG9lcyBub3QKLSsgICAg ICAjIHN1cHBvcnQgLWYuCi0rICAgICAgewotKwkjIE5vdyByZW1vdmUgb3IgbW92ZSBhc2lkZSBh bnkgb2xkIGZpbGUgYXQgZGVzdGluYXRpb24gbG9jYXRpb24uCi0rCSMgV2UgdHJ5IHRoaXMgdHdv IHdheXMgc2luY2Ugcm0gY2FuJ3QgdW5saW5rIGl0c2VsZiBvbiBzb21lCi0rCSMgc3lzdGVtcyBh bmQgdGhlIGRlc3RpbmF0aW9uIGZpbGUgbWlnaHQgYmUgYnVzeSBmb3Igb3RoZXIKLSsJIyByZWFz b25zLiAgSW4gdGhpcyBjYXNlLCB0aGUgZmluYWwgY2xlYW51cCBtaWdodCBmYWlsIGJ1dCB0aGUg bmV3Ci0rCSMgZmlsZSBzaG91bGQgc3RpbGwgaW5zdGFsbCBzdWNjZXNzZnVsbHkuCi0rCXsKLSsJ ICB0ZXN0ICEgLWYgIiRkc3QiIHx8Ci0rCSAgJGRvaXQgJHJtY21kIC1mICIkZHN0IiAyPi9kZXYv bnVsbCB8fAotKwkgIHsgJGRvaXQgJG12Y21kIC1mICIkZHN0IiAiJHJtdG1wIiAyPi9kZXYvbnVs bCAmJgotKwkgICAgeyAkZG9pdCAkcm1jbWQgLWYgIiRybXRtcCIgMj4vZGV2L251bGw7IDo7IH0K LSsJICB9IHx8Ci0rCSAgeyBlY2hvICIkMDogY2Fubm90IHVubGluayBvciByZW5hbWUgJGRzdCIg PiYyCi0rCSAgICAoZXhpdCAxKTsgZXhpdCAxCi0rCSAgfQotKwl9ICYmCi0rCi0rCSMgTm93IHJl bmFtZSB0aGUgZmlsZSB0byB0aGUgcmVhbCBkZXN0aW5hdGlvbi4KLSsJJGRvaXQgJG12Y21kICIk ZHN0dG1wIiAiJGRzdCIKLSsgICAgICB9Ci0rICAgIGZpIHx8IGV4aXQgMQotKwotKyAgICB0cmFw ICcnIDAKLSsgIGZpCi0rZG9uZQotKwotKyMgTG9jYWwgdmFyaWFibGVzOgotKyMgZXZhbDogKGFk ZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQotKyMgdGltZS1zdGFtcC1zdGFy dDogInNjcmlwdHZlcnNpb249IgotKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJk LiUwMkgiCi0rIyB0aW1lLXN0YW1wLXRpbWUtem9uZTogIlVUQyIKLSsjIHRpbWUtc3RhbXAtZW5k OiAiOyAjIFVUQyIKLSsjIEVuZDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcv bGlidG9vbC5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2xpYnRvb2wubTQKLS0tLSBzb2Np LTMuMC4wXzQtcGFjay9jb25maWcvbGlidG9vbC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbGlidG9vbC5tNAkyMDEw LTAxLTIzIDE0OjQ0OjQ0LjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw3MzYwIEBACi0rIyBs aWJ0b29sLm00IC0gQ29uZmlndXJlIGxpYnRvb2wgZm9yIHRoZSBob3N0IHN5c3RlbS4gLSotQXV0 b2NvbmYtKi0KLSsjCi0rIyAgIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwg MjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNSwKLSsjICAgICAgICAgICAgICAgICAyMDA2LCAy MDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgICBXcml0dGVuIGJ5 IEdvcmRvbiBNYXR6aWdrZWl0LCAxOTk2Ci0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMKLSsjIHVubGltaXRlZCBwZXJt aXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsIHdpdGggb3Igd2l0aG91dAotKyMg bW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0r bTRfZGVmaW5lKFtfTFRfQ09QWUlOR10sIFtkbmwKLSsjICAgQ29weXJpZ2h0IChDKSAxOTk2LCAx OTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LAotKyMgICAgICAg ICAgICAgICAgIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu Ci0rIyAgIFdyaXR0ZW4gYnkgR29yZG9uIE1hdHppZ2tlaXQsIDE5OTYKLSsjCi0rIyAgIFRoaXMg ZmlsZSBpcyBwYXJ0IG9mIEdOVSBMaWJ0b29sLgotKyMKLSsjIEdOVSBMaWJ0b29sIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotKyMgbW9kaWZ5IGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKLSsjIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAy IG9mCi0rIyB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KLSsjCi0rIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSwKLSsjIGlmIHlvdSBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEg cHJvZ3JhbSBvciBsaWJyYXJ5IHRoYXQKLSsjIGlzIGJ1aWx0IHVzaW5nIEdOVSBMaWJ0b29sLCB5 b3UgbWF5IGluY2x1ZGUgdGhpcyBmaWxlIHVuZGVyIHRoZQotKyMgc2FtZSBkaXN0cmlidXRpb24g dGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0rIwotKyMg R05VIExpYnRvb2wgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIEdOVSBMaWJ0 b29sOyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgYSBjb3B5Ci0rIyBjYW4gYmUgZG93 bmxvYWRlZCBmcm9tIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbCwgb3IKLSsj IG9idGFpbmVkIGJ5IHdyaXRpbmcgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LiwKLSsjIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAt MTMwMSwgVVNBLgotK10pCi0rCi0rIyBzZXJpYWwgNTYgTFRfSU5JVAotKwotKwotKyMgTFRfUFJF UkVRKFZFUlNJT04pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENvbXBsYWluIGFuZCBleGl0 IGlmIHRoaXMgbGlidG9vbCB2ZXJzaW9uIGlzIGxlc3MgdGhhdCBWRVJTSU9OLgotK200X2RlZnVu KFtMVF9QUkVSRVFdLAotK1ttNF9pZihtNF92ZXJzaW9uX2NvbXBhcmUobTRfZGVmbihbTFRfUEFD S0FHRV9WRVJTSU9OXSksIFskMV0pLCAtMSwKLSsgICAgICAgW200X2RlZmF1bHQoWyQzXSwKLSsJ CSAgIFttNF9mYXRhbChbTGlidG9vbCB2ZXJzaW9uICQxIG9yIGhpZ2hlciBpcyByZXF1aXJlZF0s Ci0rCQkgICAgICAgICAgICAgNjMpXSldLAotKyAgICAgICBbJDJdKV0pCi0rCi0rCi0rIyBfTFRf Q0hFQ0tfQlVJTERESVIKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ29tcGxhaW4gaWYgdGhl IGFic29sdXRlIGJ1aWxkIGRpcmVjdG9yeSBuYW1lIGNvbnRhaW5zIHVudXN1YWwgY2hhcmFjdGVy cwotK200X2RlZnVuKFtfTFRfQ0hFQ0tfQlVJTERESVJdLAotK1tjYXNlIGBwd2RgIGluCi0rICAq XCAqIHwgKlwJKikKLSsgICAgQUNfTVNHX1dBUk4oW0xpYnRvb2wgZG9lcyBub3QgY29wZSB3ZWxs IHdpdGggd2hpdGVzcGFjZSBpbiBgcHdkYF0pIDs7Ci0rZXNhYwotK10pCi0rCi0rCi0rIyBMVF9J TklUKFtPUFRJT05TXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtMVF9JTklU XSwKLStbQUNfUFJFUkVRKFsyLjU4XSlkbmwgV2UgdXNlIEFDX0lOQ0xVREVTX0RFRkFVTFQKLStB Q19CRUZPUkUoWyQwXSwgW0xUX0xBTkddKWRubAotK0FDX0JFRk9SRShbJDBdLCBbTFRfT1VUUFVU XSlkbmwKLStBQ19CRUZPUkUoWyQwXSwgW0xURExfSU5JVF0pZG5sCi0rbTRfcmVxdWlyZShbX0xU X0NIRUNLX0JVSUxERElSXSlkbmwKLSsKLStkbmwgQXV0b2NvbmYgZG9lc24ndCBjYXRjaCB1bmV4 cGFuZGVkIExUXyBtYWNyb3MgYnkgZGVmYXVsdDoKLSttNF9wYXR0ZXJuX2ZvcmJpZChbXl8/TFRf W0EtWl9dKyRdKWRubAotK200X3BhdHRlcm5fYWxsb3coW14oX0xUX0VPRnxMVF9ETEdMT0JBTHxM VF9ETExBWllfT1JfTk9XfExUX01VTFRJX01PRFVMRSkkXSlkbmwKLStkbmwgYWNsb2NhbCBkb2Vz bid0IHB1bGwgbHRvcHRpb25zLm00LCBsdHN1Z2FyLm00LCBvciBsdHZlcnNpb24ubTQKLStkbmwg dW5sZXNzIHdlIHJlcXVpcmUgYW4gQUNfREVGVU5lZCBtYWNybzoKLStBQ19SRVFVSVJFKFtMVE9Q VElPTlNfVkVSU0lPTl0pZG5sCi0rQUNfUkVRVUlSRShbTFRTVUdBUl9WRVJTSU9OXSlkbmwKLStB Q19SRVFVSVJFKFtMVFZFUlNJT05fVkVSU0lPTl0pZG5sCi0rQUNfUkVRVUlSRShbTFRPQlNPTEVU RV9WRVJTSU9OXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfUFJPR19MVE1BSU5dKWRubAotKwotK2Ru bCBQYXJzZSBPUFRJT05TCi0rX0xUX1NFVF9PUFRJT05TKFskMF0sIFskMV0pCi0rCi0rIyBUaGlz IGNhbiBiZSB1c2VkIHRvIHJlYnVpbGQgbGlidG9vbCB3aGVuIG5lZWRlZAotK0xJQlRPT0xfREVQ Uz0iJGx0bWFpbiIKLSsKLSsjIEFsd2F5cyB1c2Ugb3VyIG93biBsaWJ0b29sLgotK0xJQlRPT0w9 JyQoU0hFTEwpICQodG9wX2J1aWxkZGlyKS9saWJ0b29sJwotK0FDX1NVQlNUKExJQlRPT0wpZG5s Ci0rCi0rX0xUX1NFVFVQCi0rCi0rIyBPbmx5IGV4cGFuZCBvbmNlOgotK200X2RlZmluZShbTFRf SU5JVF0pCi0rXSkjIExUX0lOSVQKLSsKLSsjIE9sZCBuYW1lczoKLStBVV9BTElBUyhbQUNfUFJP R19MSUJUT09MXSwgW0xUX0lOSVRdKQotK0FVX0FMSUFTKFtBTV9QUk9HX0xJQlRPT0xdLCBbTFRf SU5JVF0pCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBB Q19ERUZVTihbQUNfUFJPR19MSUJUT09MXSwgW10pCi0rZG5sIEFDX0RFRlVOKFtBTV9QUk9HX0xJ QlRPT0xdLCBbXSkKLSsKLSsKLSsjIF9MVF9DQ19CQVNFTkFNRShDQykKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0KLSsjIENhbGN1bGF0ZSBjY19iYXNlbmFtZS4gIFNraXAga25vd24gY29tcGlsZXIg d3JhcHBlcnMgYW5kIGNyb3NzLXByZWZpeC4KLSttNF9kZWZ1bihbX0xUX0NDX0JBU0VOQU1FXSwK LStbZm9yIGNjX3RlbXAgaW4gJDEiIjsgZG8KLSsgIGNhc2UgJGNjX3RlbXAgaW4KLSsgICAgY29t cGlsZSB8ICpbW1xcL11dY29tcGlsZSB8IGNjYWNoZSB8ICpbW1xcL11dY2NhY2hlICkgOzsKLSsg ICAgZGlzdGNjIHwgKltbXFwvXV1kaXN0Y2MgfCBwdXJpZnkgfCAqW1tcXC9dXXB1cmlmeSApIDs7 Ci0rICAgIFwtKikgOzsKLSsgICAgKikgYnJlYWs7OwotKyAgZXNhYwotK2RvbmUKLStjY19iYXNl bmFtZT1gJEVDSE8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0 X2FsaWFzLSUlImAKLStdKQotKwotKwotKyMgX0xUX0ZJTEVVVElMU19ERUZBVUxUUwotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgSXQgaXMgb2theSB0byB1c2UgdGhlc2UgZmlsZSBjb21t YW5kcyBhbmQgYXNzdW1lIHRoZXkgaGF2ZSBiZWVuIHNldAotKyMgc2Vuc2libHkgYWZ0ZXIgYG00 X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKScuCi0rbTRfZGVmdW4oW19MVF9GSUxF VVRJTFNfREVGQVVMVFNdLAotK1s6ICR7Q1A9ImNwIC1mIn0KLSs6ICR7TVY9Im12IC1mIn0KLSs6 ICR7Uk09InJtIC1mIn0KLStdKSMgX0xUX0ZJTEVVVElMU19ERUZBVUxUUwotKwotKwotKyMgX0xU X1NFVFVQCi0rIyAtLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX1NFVFVQXSwKLStbQUNfUkVRVUlS RShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAotK0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9CVUlM RF0pZG5sCi0rX0xUX0RFQ0woW10sIFtob3N0X2FsaWFzXSwgWzBdLCBbVGhlIGhvc3Qgc3lzdGVt XSlkbmwKLStfTFRfREVDTChbXSwgW2hvc3RdLCBbMF0pZG5sCi0rX0xUX0RFQ0woW10sIFtob3N0 X29zXSwgWzBdKWRubAotK2RubAotK19MVF9ERUNMKFtdLCBbYnVpbGRfYWxpYXNdLCBbMF0sIFtU aGUgYnVpbGQgc3lzdGVtXSlkbmwKLStfTFRfREVDTChbXSwgW2J1aWxkXSwgWzBdKWRubAotK19M VF9ERUNMKFtdLCBbYnVpbGRfb3NdLCBbMF0pZG5sCi0rZG5sCi0rQUNfUkVRVUlSRShbQUNfUFJP R19DQ10pZG5sCi0rQUNfUkVRVUlSRShbTFRfUEFUSF9MRF0pZG5sCi0rQUNfUkVRVUlSRShbTFRf UEFUSF9OTV0pZG5sCi0rZG5sCi0rQUNfUkVRVUlSRShbQUNfUFJPR19MTl9TXSlkbmwKLSt0ZXN0 IC16ICIkTE5fUyIgJiYgTE5fUz0ibG4gLXMiCi0rX0xUX0RFQ0woW10sIFtMTl9TXSwgWzFdLCBb V2hldGhlciB3ZSBuZWVkIHNvZnQgb3IgaGFyZCBsaW5rc10pZG5sCi0rZG5sCi0rQUNfUkVRVUlS RShbTFRfQ01EX01BWF9MRU5dKWRubAotK19MVF9ERUNMKFtvYmpleHRdLCBbYWNfb2JqZXh0XSwg WzBdLCBbT2JqZWN0IGZpbGUgc3VmZml4IChub3JtYWxseSAibyIpXSlkbmwKLStfTFRfREVDTChb XSwgW2V4ZWV4dF0sIFswXSwgW0V4ZWN1dGFibGUgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICIiKV0p ZG5sCi0rZG5sCi0rbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCi0rbTRf cmVxdWlyZShbX0xUX0NIRUNLX1NIRUxMX0ZFQVRVUkVTXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRf Q01EX1JFTE9BRF0pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0NIRUNLX01BR0lDX01FVEhPRF0pZG5s Ci0rbTRfcmVxdWlyZShbX0xUX0NNRF9PTERfQVJDSElWRV0pZG5sCi0rbTRfcmVxdWlyZShbX0xU X0NNRF9HTE9CQUxfU1lNQk9MU10pZG5sCi0rCi0rX0xUX0NPTkZJR19MSUJUT09MX0lOSVQoWwot KyMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNldCB0aGUgb3B0aW9ucyB3aGlj aCBhbGxvdyBvdXIKLSsjIGNvbW1hbmRzIHRocm91Z2ggd2l0aG91dCByZW1vdmFsIG9mIFwgZXNj YXBlcyBJTklULgotK2lmIHRlc3QgLW4gIlwke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgotKyAg IHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZmkKLStdKQotK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJ T04rc2V0fSIgOyB0aGVuCi0rICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLStmaQotKwotK19MVF9D SEVDS19PQkpESVIKLSsKLSttNF9yZXF1aXJlKFtfTFRfVEFHX0NPTVBJTEVSXSlkbmwKLStfTFRf UFJPR19FQ0hPX0JBQ0tTTEFTSAotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXgzKikKLSsgICMg QUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3QyIHByb2dyYW0u ICBGb3Igc29tZQotKyAgIyByZWFzb24sIGlmIHdlIHNldCB0aGUgQ09MTEVDVF9OQU1FUyBlbnZp cm9ubWVudCB2YXJpYWJsZSwgdGhlIHByb2JsZW1zCi0rICAjIHZhbmlzaCBpbiBhIHB1ZmYgb2Yg c21va2UuCi0rICBpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7IHRoZW4K LSsgICAgQ09MTEVDVF9OQU1FUz0KLSsgICAgZXhwb3J0IENPTExFQ1RfTkFNRVMKLSsgIGZpCi0r ICA7OwotK2VzYWMKLSsKLSsjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1 c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCi0rIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFy ZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KLStzZWRfcXVvdGVf c3Vic3Q9J3MvXChbWyJgJFxcXV1cKS9cXFwxL2cnCi0rCi0rIyBTYW1lIGFzIGFib3ZlLCBidXQg ZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCi0rZG91YmxlX3F1b3RlX3N1YnN0PSdz L1woW1siYFxcXV1cKS9cXFwxL2cnCi0rCi0rIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4 cGFuc2lvbiBvZiBhbiBlc2NhcGVkIHNoZWxsIHZhcmlhYmxlIGluIGEKLSsjIGRvdWJsZV9xdW90 ZV9zdWJzdCdlZCBzdHJpbmcuCi0rZGVsYXlfdmFyaWFibGVfc3Vic3Q9J3MvXFxcXFxcXFxcXFwk L1xcXFxcXCQvZycKLSsKLSsjIFNlZCBzdWJzdGl0dXRpb24gdG8gZGVsYXkgZXhwYW5zaW9uIG9m IGFuIGVzY2FwZWQgc2luZ2xlIHF1b3RlLgotK2RlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdD0ncy8n XCcnLydcJ1xcXFxcXFwnXCcnL2cnCi0rCi0rIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGF2b2lkIGFj Y2lkZW50YWwgZ2xvYmJpbmcgaW4gZXZhbGVkIGV4cHJlc3Npb25zCi0rbm9fZ2xvYl9zdWJzdD0n cy9cKi9cXFwqL2cnCi0rCi0rIyBHbG9iYWwgdmFyaWFibGVzOgotK29maWxlPWxpYnRvb2wKLStj YW5fYnVpbGRfc2hhcmVkPXllcwotKwotKyMgQWxsIGtub3duIGxpbmtlcnMgcmVxdWlyZSBhIGAu YScgYXJjaGl2ZSBmb3Igc3RhdGljIGxpbmtpbmcgKGV4Y2VwdCBNU1ZDLAotKyMgd2hpY2ggbmVl ZHMgJy5saWInKS4KLStsaWJleHQ9YQotKwotK3dpdGhfZ251X2xkPSIkbHRfY3ZfcHJvZ19nbnVf bGQiCi0rCi0rb2xkX0NDPSIkQ0MiCi0rb2xkX0NGTEFHUz0iJENGTEFHUyIKLSsKLSsjIFNldCBz YW5lIGRlZmF1bHRzIGZvciB2YXJpb3VzIHZhcmlhYmxlcwotK3Rlc3QgLXogIiRDQyIgJiYgQ0M9 Y2MKLSt0ZXN0IC16ICIkTFRDQyIgJiYgTFRDQz0kQ0MKLSt0ZXN0IC16ICIkTFRDRkxBR1MiICYm IExUQ0ZMQUdTPSRDRkxBR1MKLSt0ZXN0IC16ICIkTEQiICYmIExEPWxkCi0rdGVzdCAteiAiJGFj X29iamV4dCIgJiYgYWNfb2JqZXh0PW8KLSsKLStfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0p Ci0rCi0rIyBPbmx5IHBlcmZvcm0gdGhlIGNoZWNrIGZvciBmaWxlLCBpZiB0aGUgY2hlY2sgbWV0 aG9kIHJlcXVpcmVzIGl0Ci0rdGVzdCAteiAiJE1BR0lDX0NNRCIgJiYgTUFHSUNfQ01EPWZpbGUK LStjYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgotK2ZpbGVfbWFnaWMqKQotKyAgaWYgdGVz dCAiJGZpbGVfbWFnaWNfY21kIiA9ICckTUFHSUNfQ01EJzsgdGhlbgotKyAgICBfTFRfUEFUSF9N QUdJQwotKyAgZmkKLSsgIDs7Ci0rZXNhYwotKwotKyMgVXNlIEMgZm9yIHRoZSBkZWZhdWx0IGNv bmZpZ3VyYXRpb24gaW4gdGhlIGxpYnRvb2wgc2NyaXB0Ci0rTFRfU1VQUE9SVEVEX1RBRyhbQ0Nd KQotK19MVF9MQU5HX0NfQ09ORklHCi0rX0xUX0xBTkdfREVGQVVMVF9DT05GSUcKLStfTFRfQ09O RklHX0NPTU1BTkRTCi0rXSkjIF9MVF9TRVRVUAotKwotKwotKyMgX0xUX1BST0dfTFRNQUlOCi0r IyAtLS0tLS0tLS0tLS0tLS0KLSsjIE5vdGUgdGhhdCB0aGlzIGNvZGUgaXMgY2FsbGVkIGJvdGgg ZnJvbSBgY29uZmlndXJlJywgYW5kIGBjb25maWcuc3RhdHVzJwotKyMgbm93IHRoYXQgd2UgdXNl IEFDX0NPTkZJR19DT01NQU5EUyB0byBnZW5lcmF0ZSBsaWJ0b29sLiAgTm90YWJseSwKLSsjIGBj b25maWcuc3RhdHVzJyBoYXMgbm8gdmFsdWUgZm9yIGFjX2F1eF9kaXIgdW5sZXNzIHdlIGFyZSB1 c2luZyBBdXRvbWFrZSwKLSsjIHNvIHdlIHBhc3MgYSBjb3B5IGFsb25nIHRvIG1ha2Ugc3VyZSBp dCBoYXMgYSBzZW5zaWJsZSB2YWx1ZSBhbnl3YXkuCi0rbTRfZGVmdW4oW19MVF9QUk9HX0xUTUFJ Tl0sCi0rW200X2lmZGVmKFtBQ19SRVFVSVJFX0FVWF9GSUxFXSwgW0FDX1JFUVVJUkVfQVVYX0ZJ TEUoW2x0bWFpbi5zaF0pXSlkbmwKLStfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbYWNfYXV4X2Rp cj0nJGFjX2F1eF9kaXInXSkKLStsdG1haW49IiRhY19hdXhfZGlyL2x0bWFpbi5zaCIKLStdKSMg X0xUX1BST0dfTFRNQUlOCi0rCi0rCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSAjIwotKyMjIEFjY3VtdWxhdGUgY29kZSBmb3IgY3JlYXRpbmcgbGlidG9vbC4gIyMK LSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rCi0rIyBTbyB0 aGF0IHdlIGNhbiByZWNyZWF0ZSBhIGZ1bGwgbGlidG9vbCBzY3JpcHQgaW5jbHVkaW5nIGFkZGl0 aW9uYWwKLSsjIHRhZ3MsIHdlIGFjY3VtdWxhdGUgdGhlIGNodW5rcyBvZiBjb2RlIHRvIHNlbmQg dG8gQUNfQ09ORklHX0NPTU1BTkRTCi0rIyBpbiBtYWNyb3MgYW5kIHRoZW4gbWFrZSBhIHNpbmds ZSBjYWxsIGF0IHRoZSBlbmQgdXNpbmcgdGhlIGBsaWJ0b29sJwotKyMgbGFiZWwuCi0rCi0rCi0r IyBfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbSU5JVC1DT01NQU5EU10pCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBSZWdpc3RlciBJTklULUNPTU1BTkRT IHRvIGJlIHBhc3NlZCB0byBBQ19DT05GSUdfQ09NTUFORFMgbGF0ZXIuCi0rbTRfZGVmaW5lKFtf TFRfQ09ORklHX0xJQlRPT0xfSU5JVF0sCi0rW200X2lmdmFsKFskMV0sCi0rICAgICAgICAgIFtt NF9hcHBlbmQoW19MVF9PVVRQVVRfTElCVE9PTF9JTklUXSwKLSsgICAgICAgICAgICAgICAgICAg ICBbJDEKLStdKV0pXSkKLSsKLSsjIEluaXRpYWxpemUuCi0rbTRfZGVmaW5lKFtfTFRfT1VUUFVU X0xJQlRPT0xfSU5JVF0pCi0rCi0rCi0rIyBfTFRfQ09ORklHX0xJQlRPT0woW0NPTU1BTkRTXSkK LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgUmVnaXN0ZXIgQ09NTUFORFMg dG8gYmUgcGFzc2VkIHRvIEFDX0NPTkZJR19DT01NQU5EUyBsYXRlci4KLSttNF9kZWZpbmUoW19M VF9DT05GSUdfTElCVE9PTF0sCi0rW200X2lmdmFsKFskMV0sCi0rICAgICAgICAgIFttNF9hcHBl bmQoW19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EU10sCi0rICAgICAgICAgICAgICAgICAgICAg WyQxCi0rXSldKV0pCi0rCi0rIyBJbml0aWFsaXplLgotK200X2RlZmluZShbX0xUX09VVFBVVF9M SUJUT09MX0NPTU1BTkRTXSkKLSsKLSsKLSsjIF9MVF9DT05GSUdfU0FWRV9DT01NQU5EUyhbQ09N TUFORFNdLCBbSU5JVF9DT01NQU5EU10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZnVuKFtfTFRfQ09ORklHX1NBVkVfQ09N TUFORFNdLAotK1tfTFRfQ09ORklHX0xJQlRPT0woWyQxXSkKLStfTFRfQ09ORklHX0xJQlRPT0xf SU5JVChbJDJdKQotK10pCi0rCi0rCi0rIyBfTFRfRk9STUFUX0NPTU1FTlQoW0NPTU1FTlRdKQot KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEFkZCBsZWFkaW5nIGNvbW1lbnQg bWFya3MgdG8gdGhlIHN0YXJ0IG9mIGVhY2ggbGluZSwgYW5kIGEgdHJhaWxpbmcKLSsjIGZ1bGwt c3RvcCB0byB0aGUgd2hvbGUgY29tbWVudCBpZiBvbmUgaXMgbm90IHByZXNlbnQgYWxyZWFkeS4K LSttNF9kZWZpbmUoW19MVF9GT1JNQVRfQ09NTUVOVF0sCi0rW200X2lmdmFsKFskMV0sIFsKLStt NF9icGF0c3Vic3QoW200X2JwYXRzdWJzdChbJDFdLCBbXiAqXSwgWyMgXSldLAotKyAgICAgICAg ICAgICAgW1snYCRcXV0sIFtcXFwmXSldbTRfYm1hdGNoKFskMV0sIFtbIT8uXSRdLCBbXSwgWy5d KQotKyldKQotKwotKwotKwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotKyMjIEZJ WE1FOiBFbGltaW5hdGUgVkFSTkFNRSAjIwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAj IwotKwotKwotKyMgX0xUX0RFQ0woW0NPTkZJR05BTUVdLCBWQVJOQU1FLCBWQUxVRSwgW0RFU0NS SVBUSU9OXSwgW0lTLVRBR0dFRD9dKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ09ORklHTkFNRSBpcyB0 aGUgbmFtZSBnaXZlbiB0byB0aGUgdmFsdWUgaW4gdGhlIGxpYnRvb2wgc2NyaXB0LgotKyMgVkFS TkFNRSBpcyB0aGUgKGJhc2UpIG5hbWUgdXNlZCBpbiB0aGUgY29uZmlndXJlIHNjcmlwdC4KLSsj IFZBTFVFIG1heSBiZSAwLCAxIG9yIDIgZm9yIGEgY29tcHV0ZWQgcXVvdGUgZXNjYXBlZCB2YWx1 ZSBiYXNlZCBvbgotKyMgVkFSTkFNRS4gIEFueSBvdGhlciB2YWx1ZSB3aWxsIGJlIHVzZWQgZGly ZWN0bHkuCi0rbTRfZGVmaW5lKFtfTFRfREVDTF0sCi0rW2x0X2lmX2FwcGVuZF91bmlxKFtsdF9k ZWNsX3Zhcm5hbWVzXSwgWyQyXSwgWywgXSwKLSsgICAgW2x0X2RpY3RfYWRkX3N1YmtleShbbHRf ZGVjbF9kaWN0XSwgWyQyXSwgW2xpYnRvb2xfbmFtZV0sCi0rCVttNF9pZnZhbChbJDFdLCBbJDFd LCBbJDJdKV0pCi0rICAgIGx0X2RpY3RfYWRkX3N1YmtleShbbHRfZGVjbF9kaWN0XSwgWyQyXSwg W3ZhbHVlXSwgWyQzXSkKLSsgICAgbTRfaWZ2YWwoWyQ0XSwKLSsJW2x0X2RpY3RfYWRkX3N1Ymtl eShbbHRfZGVjbF9kaWN0XSwgWyQyXSwgW2Rlc2NyaXB0aW9uXSwgWyQ0XSldKQotKyAgICBsdF9k aWN0X2FkZF9zdWJrZXkoW2x0X2RlY2xfZGljdF0sIFskMl0sCi0rCVt0YWdnZWQ/XSwgW200X2lm dmFsKFskNV0sIFt5ZXNdLCBbbm9dKV0pXSkKLStdKQotKwotKwotKyMgX0xUX1RBR0RFQ0woW0NP TkZJR05BTUVdLCBWQVJOQU1FLCBWQUxVRSwgW0RFU0NSSVBUSU9OXSkKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5l KFtfTFRfVEFHREVDTF0sIFtfTFRfREVDTChbJDFdLCBbJDJdLCBbJDNdLCBbJDRdLCBbeWVzXSld KQotKwotKwotKyMgbHRfZGVjbF90YWdfdmFybmFtZXMoW1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4u Ll0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSttNF9kZWZpbmUoW2x0X2RlY2xfdGFnX3Zhcm5hbWVzXSwKLStbX2x0X2RlY2xfZmlsdGVyKFt0 YWdnZWQ/XSwgW3llc10sICRAKV0pCi0rCi0rCi0rIyBfbHRfZGVjbF9maWx0ZXIoU1VCS0VZLCBW QUxVRSwgW1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4uXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbX2x0X2Rl Y2xfZmlsdGVyXSwKLStbbTRfY2FzZShbJCNdLAotKyAgWzBdLCBbbTRfZmF0YWwoWyQwOiB0b28g ZmV3IGFyZ3VtZW50czogJCNdKV0sCi0rICBbMV0sIFttNF9mYXRhbChbJDA6IHRvbyBmZXcgYXJn dW1lbnRzOiAkIzogJDFdKV0sCi0rICBbMl0sIFtsdF9kaWN0X2ZpbHRlcihbbHRfZGVjbF9kaWN0 XSwgWyQxXSwgWyQyXSwgW10sIGx0X2RlY2xfdmFybmFtZXMpXSwKLSsgIFszXSwgW2x0X2RpY3Rf ZmlsdGVyKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBbJDJdLCBbJDNdLCBsdF9kZWNsX3Zhcm5hbWVz KV0sCi0rICBbbHRfZGljdF9maWx0ZXIoW2x0X2RlY2xfZGljdF0sICRAKV0pW11kbmwKLStdKQot KwotKwotKyMgbHRfZGVjbF9xdW90ZV92YXJuYW1lcyhbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi4u XSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0rbTRfZGVmaW5lKFtsdF9kZWNsX3F1b3RlX3Zhcm5hbWVzXSwKLStbX2x0X2RlY2xfZmlsdGVy KFt2YWx1ZV0sIFsxXSwgJEApXSkKLSsKLSsKLSsjIGx0X2RlY2xfZHF1b3RlX3Zhcm5hbWVzKFtT RVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtsdF9kZWNsX2RxdW90ZV92YXJu YW1lc10sCi0rW19sdF9kZWNsX2ZpbHRlcihbdmFsdWVdLCBbMl0sICRAKV0pCi0rCi0rCi0rIyBs dF9kZWNsX3Zhcm5hbWVzX3RhZ2dlZChbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi4uXSkKLSsjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2Rl ZmluZShbbHRfZGVjbF92YXJuYW1lc190YWdnZWRdLAotK1ttNF9hc3NlcnQoWyQjIDw9IDJdKWRu bAotK18kMChtNF9xdW90ZShtNF9kZWZhdWx0KFskMV0sIFtbLCBdXSkpLAotKyAgICBtNF9pZnZh bChbJDJdLCBbWyQyXV0sIFttNF9kcXVvdGUobHRfZGVjbF90YWdfdmFybmFtZXMpXSksCi0rICAg IG00X3NwbGl0KG00X25vcm1hbGl6ZShtNF9xdW90ZShfTFRfVEFHUykpLCBbIF0pKV0pCi0rbTRf ZGVmaW5lKFtfbHRfZGVjbF92YXJuYW1lc190YWdnZWRdLAotK1ttNF9pZnZhbChbJDNdLCBbbHRf Y29tYmluZShbJDFdLCBbJDJdLCBbX10sICQzKV0pXSkKLSsKLSsKLSsjIGx0X2RlY2xfYWxsX3Zh cm5hbWVzKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtsdF9kZWNsX2FsbF92 YXJuYW1lc10sCi0rW18kMChtNF9xdW90ZShtNF9kZWZhdWx0KFskMV0sIFtbLCBdXSkpLAotKyAg ICAgbTRfaWYoWyQyXSwgW10sCi0rCSAgIG00X3F1b3RlKGx0X2RlY2xfdmFybmFtZXMpLAotKwlt NF9xdW90ZShtNF9zaGlmdCgkQCkpKSlbXWRubAotK10pCi0rbTRfZGVmaW5lKFtfbHRfZGVjbF9h bGxfdmFybmFtZXNdLAotK1tsdF9qb2luKCRALCBsdF9kZWNsX3Zhcm5hbWVzX3RhZ2dlZChbJDFd LAotKwkJCWx0X2RlY2xfdGFnX3Zhcm5hbWVzKFtbLCBdXSwgbTRfc2hpZnQoJEApKSkpZG5sCi0r XSkKLSsKLSsKLSsjIF9MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkUoW1ZBUk5BTUVdKQotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBRdW90ZSBhIHZhcmlhYmxlIHZh bHVlLCBhbmQgZm9yd2FyZCBpdCB0byBgY29uZmlnLnN0YXR1cycgc28gdGhhdCBpdHMKLSsjIGRl Y2xhcmF0aW9uIHRoZXJlIHdpbGwgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyBpbiBgY29uZmlndXJl Jy4gIFZBUk5BTUUKLSsjIG11c3QgaGF2ZSBhIHNpbmdsZSBxdW90ZSBkZWxpbWl0ZWQgdmFsdWUg Zm9yIHRoaXMgdG8gd29yay4KLSttNF9kZWZpbmUoW19MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkVd LAotK1skMT0nYCRFQ0hPICJYJF1bJDEiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCddKQotKwotKwotKyMgX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSQVRJT05TCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFdlIGRlbGltaXQgbGlidG9vbCBjb25m aWcgdmFyaWFibGVzIHdpdGggc2luZ2xlIHF1b3Rlcywgc28gd2hlbgotKyMgd2Ugd3JpdGUgdGhl bSB0byBjb25maWcuc3RhdHVzLCB3ZSBoYXZlIHRvIGJlIHN1cmUgdG8gcXVvdGUgYWxsCi0rIyBl bWJlZGRlZCBzaW5nbGUgcXVvdGVzIHByb3Blcmx5LiAgSW4gY29uZmlndXJlLCB0aGlzIG1hY3Jv IGV4cGFuZHMKLSsjIGVhY2ggdmFyaWFibGUgZGVjbGFyZWQgd2l0aCBfTFRfREVDTCAoYW5kIF9M VF9UQUdERUNMKSBpbnRvOgotKyMKLSsjICAgIDx2YXI+PSdgJEVDSE8gIlgkPHZhcj4iIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSttNF9kZWZ1bihbX0xUX0NPTkZJ R19TVEFUVVNfREVDTEFSQVRJT05TXSwKLStbbTRfZm9yZWFjaChbX2x0X3Zhcl0sIG00X3F1b3Rl KGx0X2RlY2xfYWxsX3Zhcm5hbWVzKSwKLSsgICAgW200X24oW19MVF9DT05GSUdfU1RBVFVTX0RF Q0xBUkUoX2x0X3ZhcildKV0pXSkKLSsKLSsKLSsjIF9MVF9MSUJUT09MX1RBR1MKLSsjIC0tLS0t LS0tLS0tLS0tLS0KLSsjIE91dHB1dCBjb21tZW50IGFuZCBsaXN0IG9mIHRhZ3Mgc3VwcG9ydGVk IGJ5IHRoZSBzY3JpcHQKLSttNF9kZWZ1bihbX0xUX0xJQlRPT0xfVEFHU10sCi0rW19MVF9GT1JN QVRfQ09NTUVOVChbVGhlIG5hbWVzIG9mIHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbnMgc3VwcG9y dGVkIGJ5IHRoaXMgc2NyaXB0XSlkbmwKLSthdmFpbGFibGVfdGFncz0iX0xUX1RBR1MiZG5sCi0r XSkKLSsKLSsKLSsjIF9MVF9MSUJUT09MX0RFQ0xBUkUoVkFSTkFNRSwgW1RBR10pCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRXh0cmFjdCB0aGUgZGljdGlvbmFy eSB2YWx1ZXMgZm9yIFZBUk5BTUUgKG9wdGlvbmFsbHkgd2l0aCBUQUcpIGFuZAotKyMgZXhwYW5k IHRvIGEgY29tbWVudGVkIHNoZWxsIHZhcmlhYmxlIHNldHRpbmc6Ci0rIwotKyMgICAgIyBTb21l IGNvbW1lbnQgYWJvdXQgd2hhdCBWQVIgaXMgZm9yLgotKyMgICAgdmlzaWJsZV9uYW1lPSRsdF9p bnRlcm5hbF9uYW1lCi0rbTRfZGVmaW5lKFtfTFRfTElCVE9PTF9ERUNMQVJFXSwKLStbX0xUX0ZP Uk1BVF9DT01NRU5UKG00X3F1b3RlKGx0X2RpY3RfZmV0Y2goW2x0X2RlY2xfZGljdF0sIFskMV0s Ci0rCQkJCQkgICBbZGVzY3JpcHRpb25dKSkpW11kbmwKLSttNF9wdXNoZGVmKFtfbGlidG9vbF9u YW1lXSwKLSsgICAgbTRfcXVvdGUobHRfZGljdF9mZXRjaChbbHRfZGVjbF9kaWN0XSwgWyQxXSwg W2xpYnRvb2xfbmFtZV0pKSlbXWRubAotK200X2Nhc2UobTRfcXVvdGUobHRfZGljdF9mZXRjaChb bHRfZGVjbF9kaWN0XSwgWyQxXSwgW3ZhbHVlXSkpLAotKyAgICBbMF0sIFtfbGlidG9vbF9uYW1l PVskXSQxXSwKLSsgICAgWzFdLCBbX2xpYnRvb2xfbmFtZT0kbHRfW10kMV0sCi0rICAgIFsyXSwg W19saWJ0b29sX25hbWU9JGx0X1tdJDFdLAotKyAgICBbX2xpYnRvb2xfbmFtZT1sdF9kaWN0X2Zl dGNoKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBbdmFsdWVdKV0pW11kbmwKLSttNF9pZnZhbChbJDJd LCBbXyQyXSlbXW00X3BvcGRlZihbX2xpYnRvb2xfbmFtZV0pW11kbmwKLStdKQotKwotKwotKyMg X0xUX0xJQlRPT0xfQ09ORklHX1ZBUlMKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBQ cm9kdWNlIGNvbW1lbnRlZCBkZWNsYXJhdGlvbnMgb2Ygbm9uLXRhZ2dlZCBsaWJ0b29sIGNvbmZp ZyB2YXJpYWJsZXMKLSsjIHN1aXRhYmxlIGZvciBpbnNlcnRpb24gaW4gdGhlIExJQlRPT0wgQ09O RklHIHNlY3Rpb24gb2YgdGhlIGBsaWJ0b29sJwotKyMgc2NyaXB0LiAgVGFnZ2VkIGxpYnRvb2wg Y29uZmlnIHZhcmlhYmxlcyAoZXZlbiBmb3IgdGhlIExJQlRPT0wgQ09ORklHCi0rIyBzZWN0aW9u KSBhcmUgcHJvZHVjZWQgYnkgX0xUX0xJQlRPT0xfVEFHX1ZBUlMuCi0rbTRfZGVmdW4oW19MVF9M SUJUT09MX0NPTkZJR19WQVJTXSwKLStbbTRfZm9yZWFjaChbX2x0X3Zhcl0sCi0rICAgIG00X3F1 b3RlKF9sdF9kZWNsX2ZpbHRlcihbdGFnZ2VkP10sIFtub10sIFtdLCBsdF9kZWNsX3Zhcm5hbWVz KSksCi0rICAgIFttNF9uKFtfTFRfTElCVE9PTF9ERUNMQVJFKF9sdF92YXIpXSldKV0pCi0rCi0r Ci0rIyBfTFRfTElCVE9PTF9UQUdfVkFSUyhUQUcpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0rbTRfZGVmaW5lKFtfTFRfTElCVE9PTF9UQUdfVkFSU10sCi0rW200X2ZvcmVhY2goW19s dF92YXJdLCBtNF9xdW90ZShsdF9kZWNsX3RhZ192YXJuYW1lcyksCi0rICAgIFttNF9uKFtfTFRf TElCVE9PTF9ERUNMQVJFKF9sdF92YXIsIFskMV0pXSldKV0pCi0rCi0rCi0rIyBfTFRfVEFHVkFS KFZBUk5BTUUsIFtUQUdOQU1FXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot K200X2RlZmluZShbX0xUX1RBR1ZBUl0sIFttNF9pZnZhbChbJDJdLCBbJDFfJDJdLCBbJDFdKV0p Ci0rCi0rCi0rIyBfTFRfQ09ORklHX0NPTU1BTkRTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tCi0r IyBTZW5kIGFjY3VtdWxhdGVkIG91dHB1dCB0byAkQ09ORklHX1NUQVRVUy4gIFRoYW5rcyB0byB0 aGUgbGlzdHMgb2YKLSsjIHZhcmlhYmxlcyBmb3Igc2luZ2xlIGFuZCBkb3VibGUgcXVvdGUgZXNj YXBpbmcgd2Ugc2F2ZWQgZnJvbSBjYWxscwotKyMgdG8gX0xUX0RFQ0wsIHdlIGNhbiBwdXQgcXVv dGUgZXNjYXBlZCB2YXJpYWJsZXMgZGVjbGFyYXRpb25zCi0rIyBpbnRvIGBjb25maWcuc3RhdHVz JywgYW5kIHRoZW4gdGhlIHNoZWxsIGNvZGUgdG8gcXVvdGUgZXNjYXBlIHRoZW0gaW4KLSsjIGZv ciBsb29wcyBpbiBgY29uZmlnLnN0YXR1cycuICBGaW5hbGx5LCBhbnkgYWRkaXRpb25hbCBjb2Rl IGFjY3VtdWxhdGVkCi0rIyBmcm9tIGNhbGxzIHRvIF9MVF9DT05GSUdfTElCVE9PTF9JTklUIGlz IGV4cGFuZGVkLgotK200X2RlZnVuKFtfTFRfQ09ORklHX0NPTU1BTkRTXSwKLStbQUNfUFJPVklE RV9JRkVMU0UoW0xUX09VVFBVVF0sCi0rCWRubCBJZiB0aGUgbGlidG9vbCBnZW5lcmF0aW9uIGNv ZGUgaGFzIGJlZW4gcGxhY2VkIGluICRDT05GSUdfTFQsCi0rCWRubCBpbnN0ZWFkIG9mIGR1cGxp Y2F0aW5nIGl0IGFsbCBvdmVyIGFnYWluIGludG8gY29uZmlnLnN0YXR1cywKLSsJZG5sIHRoZW4g d2Ugd2lsbCBoYXZlIGNvbmZpZy5zdGF0dXMgcnVuICRDT05GSUdfTFQgbGF0ZXIsIHNvIGl0Ci0r CWRubCBuZWVkcyB0byBrbm93IHdoYXQgbmFtZSBpcyBzdG9yZWQgdGhlcmU6Ci0rICAgICAgICBb QUNfQ09ORklHX0NPTU1BTkRTKFtsaWJ0b29sXSwKLSsgICAgICAgICAgICBbJFNIRUxMICRDT05G SUdfTFQgfHwgQVNfRVhJVCgxKV0sIFtDT05GSUdfTFQ9JyRDT05GSUdfTFQnXSldLAotKyAgICBk bmwgSWYgdGhlIGxpYnRvb2wgZ2VuZXJhdGlvbiBjb2RlIGlzIGRlc3RpbmVkIGZvciBjb25maWcu c3RhdHVzLAotKyAgICBkbmwgZXhwYW5kIHRoZSBhY2N1bXVsYXRlZCBjb21tYW5kcyBhbmQgaW5p dCBjb2RlIG5vdzoKLSsgICAgW0FDX0NPTkZJR19DT01NQU5EUyhbbGlidG9vbF0sCi0rICAgICAg ICBbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTXSwgW19MVF9PVVRQVVRfTElCVE9PTF9DT01N QU5EU19JTklUXSldKQotK10pI19MVF9DT05GSUdfQ09NTUFORFMKLSsKLSsKLSsjIEluaXRpYWxp emUuCi0rbTRfZGVmaW5lKFtfTFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFNfSU5JVF0sCi0rWwot KwotKyMgVGhlIEhQLVVYIGtzaCBhbmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJl Y3RvcnkgdG8gc3Rkb3V0Ci0rIyBpZiBDRFBBVEggaXMgc2V0LgotKyh1bnNldCBDRFBBVEgpID4v ZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgKLSsKLStzZWRfcXVvdGVfc3Vic3Q9JyRzZWRf cXVvdGVfc3Vic3QnCi0rZG91YmxlX3F1b3RlX3N1YnN0PSckZG91YmxlX3F1b3RlX3N1YnN0Jwot K2RlbGF5X3ZhcmlhYmxlX3N1YnN0PSckZGVsYXlfdmFyaWFibGVfc3Vic3QnCi0rX0xUX0NPTkZJ R19TVEFUVVNfREVDTEFSQVRJT05TCi0rTFRDQz0nJExUQ0MnCi0rTFRDRkxBR1M9JyRMVENGTEFH UycKLStjb21waWxlcj0nJGNvbXBpbGVyX0RFRkFVTFQnCi0rCi0rIyBRdW90ZSBldmFsZWQgc3Ry aW5ncy4KLStmb3IgdmFyIGluIGx0X2RlY2xfYWxsX3Zhcm5hbWVzKFtbIFwKLStdXSwgbHRfZGVj bF9xdW90ZV92YXJuYW1lcyk7IGRvCi0rICAgIGNhc2UgXGBldmFsIFxcXFxcJEVDSE8gIlhcXFxc XCRcJHZhciJcYCBpbgotKyAgICAqW1tcXFxcXFxcYFxcIlxcXCRdXSopCi0rICAgICAgZXZhbCAi bHRfXCR2YXI9XFxcXFxcIlxcXGBcXFwkRUNITyBcXCJYXFxcJFwkdmFyXFwiIHwgXFxcJFhzZWQg LWUgXFwiXFxcJHNlZF9xdW90ZV9zdWJzdFxcIlxcXGBcXFxcXFwiIgotKyAgICAgIDs7Ci0rICAg ICopCi0rICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxcIlxcXCRcJHZhclxcXFxcXCIiCi0rICAg ICAgOzsKLSsgICAgZXNhYwotK2RvbmUKLSsKLSsjIERvdWJsZS1xdW90ZSBkb3VibGUtZXZhbGVk IHN0cmluZ3MuCi0rZm9yIHZhciBpbiBsdF9kZWNsX2FsbF92YXJuYW1lcyhbWyBcCi0rXV0sIGx0 X2RlY2xfZHF1b3RlX3Zhcm5hbWVzKTsgZG8KLSsgICAgY2FzZSBcYGV2YWwgXFxcXFwkRUNITyAi WFxcXFxcJFwkdmFyIlxgIGluCi0rICAgICpbW1xcXFxcXFxgXFwiXFxcJF1dKikKLSsgICAgICBl dmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcYFxcXCRFQ0hPIFxcIlhcXFwkXCR2YXJcXCIgfCBcXFwk WHNlZCAtZSBcXCJcXFwkZG91YmxlX3F1b3RlX3N1YnN0XFwiIC1lIFxcIlxcXCRzZWRfcXVvdGVf c3Vic3RcXCIgLWUgXFwiXFxcJGRlbGF5X3ZhcmlhYmxlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCi0r ICAgICAgOzsKLSsgICAgKikKLSsgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFy XFxcXFxcIiIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rZG9uZQotKwotKyMgRml4LXVwIGZhbGxi YWNrIGVjaG8gaWYgaXQgd2FzIG1hbmdsZWQgYnkgdGhlIGFib3ZlIHF1b3RpbmcgcnVsZXMuCi0r Y2FzZSBcJGx0X0VDSE8gaW4KLSsqJ1xcXFskXTAgLS1mYWxsYmFjay1lY2hvIicpZG5sICIKLSsg IGx0X0VDSE89XGBcJEVDSE8gIlhcJGx0X0VDSE8iIHwgXCRYc2VkIC1lICdzL1xcXFxcXFxcXFxc XFxcXFskXTAgLS1mYWxsYmFjay1lY2hvIlxbJF0vXFskXTAgLS1mYWxsYmFjay1lY2hvIi8nXGAK LSsgIDs7Ci0rZXNhYwotKwotK19MVF9PVVRQVVRfTElCVE9PTF9JTklUCi0rXSkKLSsKLSsKLSsj IExUX09VVFBVVAotKyMgLS0tLS0tLS0tCi0rIyBUaGlzIG1hY3JvIGFsbG93cyBlYXJseSBnZW5l cmF0aW9uIG9mIHRoZSBsaWJ0b29sIHNjcmlwdCAoYmVmb3JlCi0rIyBBQ19PVVRQVVQgaXMgY2Fs bGVkKSwgaW5jYXNlIGl0IGlzIHVzZWQgaW4gY29uZmlndXJlIGZvciBjb21waWxhdGlvbgotKyMg dGVzdHMuCi0rQUNfREVGVU4oW0xUX09VVFBVVF0sCi0rWzogJHtDT05GSUdfTFQ9Li9jb25maWcu bHR9Ci0rQUNfTVNHX05PVElDRShbY3JlYXRpbmcgJENPTkZJR19MVF0pCi0rY2F0ID4iJENPTkZJ R19MVCIgPDxfTFRFT0YKLSsjISAkU0hFTEwKLSsjIEdlbmVyYXRlZCBieSAkYXNfbWUuCi0rIyBS dW4gdGhpcyBmaWxlIHRvIHJlY3JlYXRlIGEgbGlidG9vbCBzdHViIHdpdGggdGhlIGN1cnJlbnQg Y29uZmlndXJhdGlvbi4KLSsKLStsdF9jbF9zaWxlbnQ9ZmFsc2UKLStTSEVMTD1cJHtDT05GSUdf U0hFTEwtJFNIRUxMfQotK19MVEVPRgotKwotK2NhdCA+PiIkQ09ORklHX0xUIiA8PFxfTFRFT0YK LStBU19TSEVMTF9TQU5JVElaRQotK19BU19QUkVQQVJFCi0rCi0rZXhlYyBBU19NRVNTQUdFX0ZE PiYxCi0rZXhlYyBBU19NRVNTQUdFX0xPR19GRD4+Y29uZmlnLmxvZwotK3sKLSsgIGVjaG8KLSsg IEFTX0JPWChbUnVubmluZyAkYXNfbWUuXSkKLSt9ID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsKLSts dF9jbF9oZWxwPSJcCi0rXGAkYXNfbWUnIGNyZWF0ZXMgYSBsb2NhbCBsaWJ0b29sIHN0dWIgZnJv bSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLAotK2ZvciB1c2UgaW4gZnVydGhlciBjb25maWd1 cmUgdGltZSB0ZXN0cyBiZWZvcmUgdGhlIHJlYWwgbGlidG9vbCBpcwotK2dlbmVyYXRlZC4KLSsK LStVc2FnZTogJFswXSBbW09QVElPTlNdXQotKwotKyAgLWgsIC0taGVscCAgICAgIHByaW50IHRo aXMgaGVscCwgdGhlbiBleGl0Ci0rICAtViwgLS12ZXJzaW9uICAgcHJpbnQgdmVyc2lvbiBudW1i ZXIsIHRoZW4gZXhpdAotKyAgLXEsIC0tcXVpZXQgICAgIGRvIG5vdCBwcmludCBwcm9ncmVzcyBt ZXNzYWdlcwotKyAgLWQsIC0tZGVidWcgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMK LSsKLStSZXBvcnQgYnVncyB0byA8YnVnLWxpYnRvb2xAZ251Lm9yZz4uIgotKwotK2x0X2NsX3Zl cnNpb249IlwKLSttNF9pZnNldChbQUNfUEFDS0FHRV9OQU1FXSwgW0FDX1BBQ0tBR0VfTkFNRSBd KWNvbmZpZy5sdFtdZG5sCi0rbTRfaWZzZXQoW0FDX1BBQ0tBR0VfVkVSU0lPTl0sIFsgQUNfUEFD S0FHRV9WRVJTSU9OXSkKLStjb25maWd1cmVkIGJ5ICRbMF0sIGdlbmVyYXRlZCBieSBtNF9QQUNL QUdFX1NUUklORy4KLSsKLStDb3B5cmlnaHQgKEMpIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCi0rVGhpcyBjb25maWcubHQgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLStnaXZlcyB1bmxpbWl0ZWQgcGVybWlzaW9uIHRvIGNv cHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4iCi0rCi0rd2hpbGUgdGVzdCAkWyNdICE9IDAK LStkbwotKyAgY2FzZSAkWzFdIGluCi0rICAgIC0tdmVyc2lvbiB8IC0tdiogfCAtViApCi0rICAg ICAgZWNobyAiJGx0X2NsX3ZlcnNpb24iOyBleGl0IDAgOzsKLSsgICAgLS1oZWxwIHwgLS1oKiB8 IC1oICkKLSsgICAgICBlY2hvICIkbHRfY2xfaGVscCI7IGV4aXQgMCA7OwotKyAgICAtLWRlYnVn IHwgLS1kKiB8IC1kICkKLSsgICAgICBkZWJ1Zz06IDs7Ci0rICAgIC0tcXVpZXQgfCAtLXEqIHwg LS1zaWxlbnQgfCAtLXMqIHwgLXEgKQotKyAgICAgIGx0X2NsX3NpbGVudD06IDs7Ci0rCi0rICAg IC0qKSBBQ19NU0dfRVJST1IoW3VucmVjb2duaXplZCBvcHRpb246ICRbMV0KLStUcnkgXGAkWzBd IC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXSkgOzsKLSsKLSsgICAgKikgQUNfTVNHX0VS Uk9SKFt1bnJlY29nbml6ZWQgYXJndW1lbnQ6ICRbMV0KLStUcnkgXGAkWzBdIC0taGVscCcgZm9y IG1vcmUgaW5mb3JtYXRpb24uXSkgOzsKLSsgIGVzYWMKLSsgIHNoaWZ0Ci0rZG9uZQotKwotK2lm ICRsdF9jbF9zaWxlbnQ7IHRoZW4KLSsgIGV4ZWMgQVNfTUVTU0FHRV9GRD4vZGV2L251bGwKLStm aQotK19MVEVPRgotKwotK2NhdCA+PiIkQ09ORklHX0xUIiA8PF9MVEVPRgotK19MVF9PVVRQVVRf TElCVE9PTF9DT01NQU5EU19JTklUCi0rX0xURU9GCi0rCi0rY2F0ID4+IiRDT05GSUdfTFQiIDw8 XF9MVEVPRgotK0FDX01TR19OT1RJQ0UoW2NyZWF0aW5nICRvZmlsZV0pCi0rX0xUX09VVFBVVF9M SUJUT09MX0NPTU1BTkRTCi0rQVNfRVhJVCgwKQotK19MVEVPRgotK2NobW9kICt4ICIkQ09ORklH X0xUIgotKwotKyMgY29uZmlndXJlIGlzIHdyaXRpbmcgdG8gY29uZmlnLmxvZywgYnV0IGNvbmZp Zy5sdCBkb2VzIGl0cyBvd24gcmVkaXJlY3Rpb24sCi0rIyBhcHBlbmRpbmcgdG8gY29uZmlnLmxv Zywgd2hpY2ggZmFpbHMgb24gRE9TLCBhcyBjb25maWcubG9nIGlzIHN0aWxsIGtlcHQKLSsjIG9w ZW4gYnkgY29uZmlndXJlLiAgSGVyZSB3ZSBleGVjIHRoZSBGRCB0byAvZGV2L251bGwsIGVmZmVj dGl2ZWx5IGNsb3NpbmcKLSsjIGNvbmZpZy5sb2csIHNvIGl0IGNhbiBiZSBwcm9wZXJseSAocmUp b3BlbmVkIGFuZCBhcHBlbmRlZCB0byBieSBjb25maWcubHQuCi0raWYgdGVzdCAiJG5vX2NyZWF0 ZSIgIT0geWVzOyB0aGVuCi0rICBsdF9jbF9zdWNjZXNzPToKLSsgIHRlc3QgIiRzaWxlbnQiID0g eWVzICYmCi0rICAgIGx0X2NvbmZpZ19sdF9hcmdzPSIkbHRfY29uZmlnX2x0X2FyZ3MgLS1xdWll dCIKLSsgIGV4ZWMgQVNfTUVTU0FHRV9MT0dfRkQ+L2Rldi9udWxsCi0rICAkU0hFTEwgIiRDT05G SUdfTFQiICRsdF9jb25maWdfbHRfYXJncyB8fCBsdF9jbF9zdWNjZXNzPWZhbHNlCi0rICBleGVj IEFTX01FU1NBR0VfTE9HX0ZEPj5jb25maWcubG9nCi0rICAkbHRfY2xfc3VjY2VzcyB8fCBBU19F WElUKDEpCi0rZmkKLStdKSMgTFRfT1VUUFVUCi0rCi0rCi0rIyBfTFRfQ09ORklHKFRBRykKLSsj IC0tLS0tLS0tLS0tLS0tLQotKyMgSWYgVEFHIGlzIHRoZSBidWlsdC1pbiB0YWcsIGNyZWF0ZSBh biBpbml0aWFsIGxpYnRvb2wgc2NyaXB0IHdpdGggYQotKyMgZGVmYXVsdCBjb25maWd1cmF0aW9u IGZyb20gdGhlIHVudGFnZ2VkIGNvbmZpZyB2YXJzLiAgT3RoZXJ3aXNlIGFkZCBjb2RlCi0rIyB0 byBjb25maWcuc3RhdHVzIGZvciBhcHBlbmRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gbmFtZWQgYnkg VEFHIGZyb20gdGhlCi0rIyBtYXRjaGluZyB0YWdnZWQgY29uZmlnIHZhcnMuCi0rbTRfZGVmdW4o W19MVF9DT05GSUddLAotK1ttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwK LStfTFRfQ09ORklHX1NBVkVfQ09NTUFORFMoWwotKyAgbTRfZGVmaW5lKFtfTFRfVEFHXSwgbTRf aWYoWyQxXSwgW10sIFtDXSwgWyQxXSkpZG5sCi0rICBtNF9pZihfTFRfVEFHLCBbQ10sIFsKLSsg ICAgIyBTZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdo aWNoIGFsbG93IG91cgotKyAgICAjIGNvbW1hbmRzIHRocm91Z2ggd2l0aG91dCByZW1vdmFsIG9m IFwgZXNjYXBlcy4KLSsgICAgaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4K LSsgICAgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAotKyAgICBmaQotKwotKyAgICBjZmdmaWxlPSIk e29maWxlfVQiCi0rICAgIHRyYXAgIiRSTSBcIiRjZmdmaWxlXCI7IGV4aXQgMSIgMSAyIDE1Ci0r ICAgICRSTSAiJGNmZ2ZpbGUiCi0rCi0rICAgIGNhdCA8PF9MVF9FT0YgPj4gIiRjZmdmaWxlIgot KyMhICRTSEVMTAotKwotKyMgYCRFQ0hPICIkb2ZpbGUiIHwgc2VkICdzJV4uKi8lJSdgIC0gUHJv dmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCi0rIyBH ZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSAkYXNfbWUgKCRQQUNLQUdFJFRJTUVTVEFNUCkgJFZF UlNJT04KLSsjIExpYnRvb2wgd2FzIGNvbmZpZ3VyZWQgb24gaG9zdCBgKGhvc3RuYW1lIHx8IHVu YW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWA6Ci0rIyBOT1RFOiBDaGFuZ2VzIG1hZGUgdG8g dGhpcyBmaWxlIHdpbGwgYmUgbG9zdDogbG9vayBhdCBsdG1haW4uc2guCi0rIwotK19MVF9DT1BZ SU5HCi0rX0xUX0xJQlRPT0xfVEFHUwotKwotKyMgIyMjIEJFR0lOIExJQlRPT0wgQ09ORklHCi0r X0xUX0xJQlRPT0xfQ09ORklHX1ZBUlMKLStfTFRfTElCVE9PTF9UQUdfVkFSUwotKyMgIyMjIEVO RCBMSUJUT09MIENPTkZJRwotKwotK19MVF9FT0YKLSsKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsg IGFpeDMqKQotKyAgICBjYXQgPDxcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCi0rIyBBSVggc29tZXRp bWVzIGhhcyBwcm9ibGVtcyB3aXRoIHRoZSBHQ0MgY29sbGVjdDIgcHJvZ3JhbS4gIEZvciBzb21l Ci0rIyByZWFzb24sIGlmIHdlIHNldCB0aGUgQ09MTEVDVF9OQU1FUyBlbnZpcm9ubWVudCB2YXJp YWJsZSwgdGhlIHByb2JsZW1zCi0rIyB2YW5pc2ggaW4gYSBwdWZmIG9mIHNtb2tlLgotK2lmIHRl c3QgIlgke0NPTExFQ1RfTkFNRVMrc2V0fSIgIT0gWHNldDsgdGhlbgotKyAgQ09MTEVDVF9OQU1F Uz0KLSsgIGV4cG9ydCBDT0xMRUNUX05BTUVTCi0rZmkKLStfTFRfRU9GCi0rICAgIDs7Ci0rICBl c2FjCi0rCi0rICBfTFRfUFJPR19MVE1BSU4KLSsKLSsgICMgV2UgdXNlIHNlZCBpbnN0ZWFkIG9m IGNhdCBiZWNhdXNlIGJhc2ggb24gREpHUFAgZ2V0cyBjb25mdXNlZCBpZgotKyAgIyBpZiBmaW5k cyBtaXhlZCBDUi9MRiBhbmQgTEYtb25seSBsaW5lcy4gIFNpbmNlIHNlZCBvcGVyYXRlcyBpbgot KyAgIyB0ZXh0IG1vZGUsIGl0IHByb3Blcmx5IGNvbnZlcnRzIGxpbmVzIHRvIENSL0xGLiAgVGhp cyBiYXNoIHByb2JsZW0KLSsgICMgaXMgcmVwb3J0ZWRseSBmaXhlZCwgYnV0IHdoeSBub3QgcnVu IG9uIG9sZCB2ZXJzaW9ucyB0b28/Ci0rICBzZWQgJy9eIyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rp b25zIGluc2VydGVkIGhlcmUvcScgIiRsdG1haW4iID4+ICIkY2ZnZmlsZSIgXAotKyAgICB8fCAo cm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAxKQotKwotKyAgX0xUX1BST0dfWFNJX1NIRUxMRk5TCi0r Ci0rICBzZWQgLW4gJy9eIyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGluc2VydGVkIGhlcmUv LCRwJyAiJGx0bWFpbiIgPj4gIiRjZmdmaWxlIiBcCi0rICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUi OyBleGl0IDEpCi0rCi0rICBtdiAtZiAiJGNmZ2ZpbGUiICIkb2ZpbGUiIHx8Ci0rICAgIChybSAt ZiAiJG9maWxlIiAmJiBjcCAiJGNmZ2ZpbGUiICIkb2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZSIp Ci0rICBjaG1vZCAreCAiJG9maWxlIgotK10sCi0rW2NhdCA8PF9MVF9FT0YgPj4gIiRvZmlsZSIK LSsKLStkbmwgVW5mb3J0dW5hdGVseSB3ZSBoYXZlIHRvIHVzZSAkMSBoZXJlLCBzaW5jZSBfTFRf VEFHIGlzIG5vdCBleHBhbmRlZAotK2RubCBpbiBhIGNvbW1lbnQgKGllIGFmdGVyIGEgIykuCi0r IyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkMQotK19MVF9MSUJUT09MX1RBR19WQVJT KF9MVF9UQUcpCi0rIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogJDEKLStfTFRfRU9GCi0r XSlkbmwgL200X2lmCi0rXSwKLStbbTRfaWYoWyQxXSwgW10sIFsKLSsgICAgUEFDS0FHRT0nJFBB Q0tBR0UnCi0rICAgIFZFUlNJT049JyRWRVJTSU9OJwotKyAgICBUSU1FU1RBTVA9JyRUSU1FU1RB TVAnCi0rICAgIFJNPSckUk0nCi0rICAgIG9maWxlPSckb2ZpbGUnXSwgW10pCi0rXSlkbmwgL19M VF9DT05GSUdfU0FWRV9DT01NQU5EUwotK10pIyBfTFRfQ09ORklHCi0rCi0rCi0rIyBMVF9TVVBQ T1JURURfVEFHKFRBRykKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgVHJhY2UgdGhpcyBt YWNybyB0byBkaXNjb3ZlciB3aGF0IHRhZ3MgYXJlIHN1cHBvcnRlZCBieSB0aGUgbGlidG9vbAot KyMgLS10YWcgb3B0aW9uLCB1c2luZzoKLSsjICAgIGF1dG9jb25mIC0tdHJhY2UgJ0xUX1NVUFBP UlRFRF9UQUc6JDEnCi0rQUNfREVGVU4oW0xUX1NVUFBPUlRFRF9UQUddLCBbXSkKLSsKLSsKLSsj IEMgc3VwcG9ydCBpcyBidWlsdC1pbiBmb3Igbm93Ci0rbTRfZGVmaW5lKFtfTFRfTEFOR19DX2Vu YWJsZWRdLCBbXSkKLSttNF9kZWZpbmUoW19MVF9UQUdTXSwgW10pCi0rCi0rCi0rIyBMVF9MQU5H KExBTkcpCi0rIyAtLS0tLS0tLS0tLS0tCi0rIyBFbmFibGUgbGlidG9vbCBzdXBwb3J0IGZvciB0 aGUgZ2l2ZW4gbGFuZ3VhZ2UgaWYgbm90IGFscmVhZHkgZW5hYmxlZC4KLStBQ19ERUZVTihbTFRf TEFOR10sCi0rW0FDX0JFRk9SRShbJDBdLCBbTFRfT1VUUFVUXSlkbmwKLSttNF9jYXNlKFskMV0s Ci0rICBbQ10sCQkJW19MVF9MQU5HKEMpXSwKLSsgIFtDKytdLAkJW19MVF9MQU5HKENYWCldLAot KyAgW0phdmFdLAkJW19MVF9MQU5HKEdDSildLAotKyAgW0ZvcnRyYW4gNzddLAkJW19MVF9MQU5H KEY3NyldLAotKyAgW0ZvcnRyYW5dLAkJW19MVF9MQU5HKEZDKV0sCi0rICBbV2luZG93cyBSZXNv dXJjZV0sCVtfTFRfTEFORyhSQyldLAotKyAgW200X2lmZGVmKFtfTFRfTEFOR19dJDFbX0NPTkZJ R10sCi0rICAgIFtfTFRfTEFORygkMSldLAotKyAgICBbbTRfZmF0YWwoWyQwOiB1bnN1cHBvcnRl ZCBsYW5ndWFnZTogIiQxIl0pXSldKWRubAotK10pIyBMVF9MQU5HCi0rCi0rCi0rIyBfTFRfTEFO RyhMQU5HTkFNRSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZnVuKFtfTFRfTEFOR10s Ci0rW200X2lmZGVmKFtfTFRfTEFOR19dJDFbX2VuYWJsZWRdLCBbXSwKLSsgIFtMVF9TVVBQT1JU RURfVEFHKFskMV0pZG5sCi0rICBtNF9hcHBlbmQoW19MVF9UQUdTXSwgWyQxIF0pZG5sCi0rICBt NF9kZWZpbmUoW19MVF9MQU5HX10kMVtfZW5hYmxlZF0sIFtdKWRubAotKyAgX0xUX0xBTkdfJDFf Q09ORklHKCQxKV0pZG5sCi0rXSkjIF9MVF9MQU5HCi0rCi0rCi0rIyBfTFRfTEFOR19ERUZBVUxU X0NPTkZJRwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX0xBTkdf REVGQVVMVF9DT05GSUddLAotK1tBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19DWFhdLAotKyAg W0xUX0xBTkcoQ1hYKV0sCi0rICBbbTRfZGVmaW5lKFtBQ19QUk9HX0NYWF0sIGRlZm4oW0FDX1BS T0dfQ1hYXSlbTFRfTEFORyhDWFgpXSldKQotKwotK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9H X0Y3N10sCi0rICBbTFRfTEFORyhGNzcpXSwKLSsgIFttNF9kZWZpbmUoW0FDX1BST0dfRjc3XSwg ZGVmbihbQUNfUFJPR19GNzddKVtMVF9MQU5HKEY3NyldKV0pCi0rCi0rQUNfUFJPVklERV9JRkVM U0UoW0FDX1BST0dfRkNdLAotKyAgW0xUX0xBTkcoRkMpXSwKLSsgIFttNF9kZWZpbmUoW0FDX1BS T0dfRkNdLCBkZWZuKFtBQ19QUk9HX0ZDXSlbTFRfTEFORyhGQyldKV0pCi0rCi0rZG5sIFRoZSBj YWxsIHRvIFtBXVtNX1BST0dfR0NKXSBpcyBxdW90ZWQgbGlrZSB0aGF0IHRvIHN0b3AgYWNsb2Nh bAotK2RubCBwdWxsaW5nIHRoaW5ncyBpbiBuZWVkbGVzc2x5LgotK0FDX1BST1ZJREVfSUZFTFNF KFtBQ19QUk9HX0dDSl0sCi0rICBbTFRfTEFORyhHQ0opXSwKLSsgIFtBQ19QUk9WSURFX0lGRUxT RShbQV1bTV9QUk9HX0dDSl0sCi0rICAgIFtMVF9MQU5HKEdDSildLAotKyAgICBbQUNfUFJPVklE RV9JRkVMU0UoW0xUX1BST0dfR0NKXSwKLSsgICAgICBbTFRfTEFORyhHQ0opXSwKLSsgICAgICBb bTRfaWZkZWYoW0FDX1BST0dfR0NKXSwKLSsJW200X2RlZmluZShbQUNfUFJPR19HQ0pdLCBkZWZu KFtBQ19QUk9HX0dDSl0pW0xUX0xBTkcoR0NKKV0pXSkKLSsgICAgICAgbTRfaWZkZWYoW0FdW01f UFJPR19HQ0pdLAotKwlbbTRfZGVmaW5lKFtBXVtNX1BST0dfR0NKXSwgZGVmbihbQV1bTV9QUk9H X0dDSl0pW0xUX0xBTkcoR0NKKV0pXSkKLSsgICAgICAgbTRfaWZkZWYoW0xUX1BST0dfR0NKXSwK LSsJW200X2RlZmluZShbTFRfUFJPR19HQ0pdLCBkZWZuKFtMVF9QUk9HX0dDSl0pW0xUX0xBTkco R0NKKV0pXSldKV0pXSkKLSsKLStBQ19QUk9WSURFX0lGRUxTRShbTFRfUFJPR19SQ10sCi0rICBb TFRfTEFORyhSQyldLAotKyAgW200X2RlZmluZShbTFRfUFJPR19SQ10sIGRlZm4oW0xUX1BST0df UkNdKVtMVF9MQU5HKFJDKV0pXSkKLStdKSMgX0xUX0xBTkdfREVGQVVMVF9DT05GSUcKLSsKLSsj IE9ic29sZXRlIG1hY3JvczoKLStBVV9ERUZVTihbQUNfTElCVE9PTF9DWFhdLCBbTFRfTEFORyhD KyspXSkKLStBVV9ERUZVTihbQUNfTElCVE9PTF9GNzddLCBbTFRfTEFORyhGb3J0cmFuIDc3KV0p Ci0rQVVfREVGVU4oW0FDX0xJQlRPT0xfRkNdLCBbTFRfTEFORyhGb3J0cmFuKV0pCi0rQVVfREVG VU4oW0FDX0xJQlRPT0xfR0NKXSwgW0xUX0xBTkcoSmF2YSldKQotK2RubCBhY2xvY2FsLTEuNCBi YWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfQ1hYXSwg W10pCi0rZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0Y3N10sIFtdKQotK2RubCBBQ19ERUZVTihb QUNfTElCVE9PTF9GQ10sIFtdKQotK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9HQ0pdLCBbXSkK LSsKLSsKLSsjIF9MVF9UQUdfQ09NUElMRVIKLSsjIC0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1 bihbX0xUX1RBR19DT01QSUxFUl0sCi0rW0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAotKwot K19MVF9ERUNMKFtMVENDXSwgW0NDXSwgWzFdLCBbQSBDIGNvbXBpbGVyXSlkbmwKLStfTFRfREVD TChbTFRDRkxBR1NdLCBbQ0ZMQUdTXSwgWzFdLCBbTFRDQyBjb21waWxlciBmbGFnc10pZG5sCi0r X0xUX1RBR0RFQ0woW0NDXSwgW2NvbXBpbGVyXSwgWzFdLCBbQSBsYW5ndWFnZSBzcGVjaWZpYyBj b21waWxlcl0pZG5sCi0rX0xUX1RBR0RFQ0woW3dpdGhfZ2NjXSwgW0dDQ10sIFswXSwgW0lzIHRo ZSBjb21waWxlciB0aGUgR05VIGNvbXBpbGVyP10pZG5sCi0rCi0rIyBJZiBubyBDIGNvbXBpbGVy IHdhcyBzcGVjaWZpZWQsIHVzZSBDQy4KLStMVENDPSR7TFRDQy0iJENDIn0KLSsKLSsjIElmIG5v IEMgY29tcGlsZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQsIHVzZSBDRkxBR1MuCi0rTFRDRkxBR1M9 JHtMVENGTEFHUy0iJENGTEFHUyJ9Ci0rCi0rIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFt ZSB3aXRoIGFyZ3VtZW50cy4KLStjb21waWxlcj0kQ0MKLStdKSMgX0xUX1RBR19DT01QSUxFUgot KwotKwotKyMgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSsjIENoZWNrIGZvciBjb21waWxlciBib2lsZXJwbGF0ZSBvdXRwdXQgb3Igd2Fybmlu Z3Mgd2l0aAotKyMgdGhlIHNpbXBsZSBjb21waWxlciB0ZXN0IGNvZGUuCi0rbTRfZGVmdW4oW19M VF9DT01QSUxFUl9CT0lMRVJQTEFURV0sCi0rW200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5s Ci0rYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rZWNobyAiJGx0X3NpbXBsZV9jb21w aWxlX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKLStldmFsICIkYWNfY29tcGlsZSIgMj4m MSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIKLStfbHRf Y29tcGlsZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCi0rJFJNIGNvbmZ0ZXN0Kgot K10pIyBfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKLSsKLSsKLSsjIF9MVF9MSU5LRVJfQk9JTEVS UExBVEUKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrIGZvciBsaW5rZXIgYm9p bGVycGxhdGUgb3V0cHV0IG9yIHdhcm5pbmdzIHdpdGgKLSsjIHRoZSBzaW1wbGUgbGluayB0ZXN0 IGNvZGUuCi0rbTRfZGVmdW4oW19MVF9MSU5LRVJfQk9JTEVSUExBVEVdLAotK1ttNF9yZXF1aXJl KFtfTFRfREVDTF9TRURdKWRubAotK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotK2Vj aG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAi JGFjX2xpbmsiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRl c3QuZXJyCi0rX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKLSskUk0g LXIgY29uZnRlc3QqCi0rXSkjIF9MVF9MSU5LRVJfQk9JTEVSUExBVEUKLSsKLSsjIF9MVF9SRVFV SVJFRF9EQVJXSU5fQ0hFQ0tTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVm dW5fb25jZShbX0xUX1JFUVVJUkVEX0RBUldJTl9DSEVDS1NdLFsKLSsgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsgICAgcmhhcHNvZHkqIHwgZGFyd2luKikKLSsgICAgQUNfQ0hFQ0tfVE9PTChbRFNZTVVU SUxdLCBbZHN5bXV0aWxdLCBbOl0pCi0rICAgIEFDX0NIRUNLX1RPT0woW05NRURJVF0sIFtubWVk aXRdLCBbOl0pCi0rICAgIEFDX0NIRUNLX1RPT0woW0xJUE9dLCBbbGlwb10sIFs6XSkKLSsgICAg QUNfQ0hFQ0tfVE9PTChbT1RPT0xdLCBbb3Rvb2xdLCBbOl0pCi0rICAgIEFDX0NIRUNLX1RPT0wo W09UT09MNjRdLCBbb3Rvb2w2NF0sIFs6XSkKLSsgICAgX0xUX0RFQ0woW10sIFtEU1lNVVRJTF0s IFsxXSwKLSsgICAgICBbVG9vbCB0byBtYW5pcHVsYXRlIGFyY2hpdmVkIERXQVJGIGRlYnVnIHN5 bWJvbCBmaWxlcyBvbiBNYWMgT1MgWF0pCi0rICAgIF9MVF9ERUNMKFtdLCBbTk1FRElUXSwgWzFd LAotKyAgICAgIFtUb29sIHRvIGNoYW5nZSBnbG9iYWwgdG8gbG9jYWwgc3ltYm9scyBvbiBNYWMg T1MgWF0pCi0rICAgIF9MVF9ERUNMKFtdLCBbTElQT10sIFsxXSwKLSsgICAgICBbVG9vbCB0byBt YW5pcHVsYXRlIGZhdCBvYmplY3RzIGFuZCBhcmNoaXZlcyBvbiBNYWMgT1MgWF0pCi0rICAgIF9M VF9ERUNMKFtdLCBbT1RPT0xdLCBbMV0sCi0rICAgICAgW2xkZC9yZWFkZWxmIGxpa2UgdG9vbCBm b3IgTWFjaC1PIGJpbmFyaWVzIG9uIE1hYyBPUyBYXSkKLSsgICAgX0xUX0RFQ0woW10sIFtPVE9P TDY0XSwgWzFdLAotKyAgICAgIFtsZGQvcmVhZGVsZiBsaWtlIHRvb2wgZm9yIDY0IGJpdCBNYWNo LU8gYmluYXJpZXMgb24gTWFjIE9TIFggMTAuNF0pCi0rCi0rICAgIEFDX0NBQ0hFX0NIRUNLKFtm b3IgLXNpbmdsZV9tb2R1bGUgbGlua2VyIGZsYWddLFtsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9k XSwKLSsgICAgICBbbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZD1ubwotKyAgICAgIGlmIHRlc3Qg LXogIiR7TFRfTVVMVElfTU9EVUxFfSI7IHRoZW4KLSsJIyBCeSBkZWZhdWx0IHdlIHdpbGwgYWRk IHRoZSAtc2luZ2xlX21vZHVsZSBmbGFnLiBZb3UgY2FuIG92ZXJyaWRlCi0rCSMgYnkgZWl0aGVy IHNldHRpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIExUX01VTFRJX01PRFVMRQotKwkjIG5v bi1lbXB0eSBhdCBjb25maWd1cmUgdGltZSwgb3IgYnkgYWRkaW5nIC1tdWx0aV9tb2R1bGUgdG8g dGhlCi0rCSMgbGluayBmbGFncy4KLSsJcm0gLXJmIGxpYmNvbmZ0ZXN0LmR5bGliKgotKwllY2hv ICJpbnQgZm9vKHZvaWQpe3JldHVybiAxO30iID4gY29uZnRlc3QuYwotKwllY2hvICIkTFRDQyAk TFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29uZnRlc3QuZHlsaWIgXAotKy1keW5hbWljbGliIC1X bCwtc2luZ2xlX21vZHVsZSBjb25mdGVzdC5jIiA+JkFTX01FU1NBR0VfTE9HX0ZECi0rCSRMVEND ICRMVENGTEFHUyAkTERGTEFHUyAtbyBsaWJjb25mdGVzdC5keWxpYiBcCi0rCSAgLWR5bmFtaWNs aWIgLVdsLC1zaW5nbGVfbW9kdWxlIGNvbmZ0ZXN0LmMgMj5jb25mdGVzdC5lcnIKLSsgICAgICAg IF9sdF9yZXN1bHQ9JD8KLSsJaWYgdGVzdCAtZiBsaWJjb25mdGVzdC5keWxpYiAmJiB0ZXN0ICEg LXMgY29uZnRlc3QuZXJyICYmIHRlc3QgJF9sdF9yZXN1bHQgPSAwOyB0aGVuCi0rCSAgbHRfY3Zf YXBwbGVfY2Nfc2luZ2xlX21vZD15ZXMKLSsJZWxzZQotKwkgIGNhdCBjb25mdGVzdC5lcnIgPiZB U19NRVNTQUdFX0xPR19GRAotKwlmaQotKwlybSAtcmYgbGliY29uZnRlc3QuZHlsaWIqCi0rCXJt IC1mIGNvbmZ0ZXN0LioKLSsgICAgICBmaV0pCi0rICAgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgLWV4 cG9ydGVkX3N5bWJvbHNfbGlzdCBsaW5rZXIgZmxhZ10sCi0rICAgICAgW2x0X2N2X2xkX2V4cG9y dGVkX3N5bWJvbHNfbGlzdF0sCi0rICAgICAgW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlz dD1ubwotKyAgICAgIHNhdmVfTERGTEFHUz0kTERGTEFHUwotKyAgICAgIGVjaG8gIl9tYWluIiA+ IGNvbmZ0ZXN0LnN5bQotKyAgICAgIExERkxBR1M9IiRMREZMQUdTIC1XbCwtZXhwb3J0ZWRfc3lt Ym9sc19saXN0LGNvbmZ0ZXN0LnN5bSIKLSsgICAgICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19Q Uk9HUkFNKFtdLFtdKV0sCi0rCVtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9eWVzXSwK LSsJW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD1ub10pCi0rCUxERkxBR1M9IiRzYXZl X0xERkxBR1MiCi0rICAgIF0pCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgcmhhcHNvZHkq IHwgZGFyd2luMS5bWzAxMl1dKQotKyAgICAgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3ds fS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKLSsgICAgZGFyd2luMS4qKQotKyAgICAgIF9s dF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmlu ZWQgJHt3bH1zdXBwcmVzcycgOzsKLSsgICAgZGFyd2luKikgIyBkYXJ3aW4gNS54IG9uCi0rICAg ICAgIyBpZiBydW5uaW5nIG9uIDEwLjUgb3IgbGF0ZXIsIHRoZSBkZXBsb3ltZW50IHRhcmdldCBk ZWZhdWx0cwotKyAgICAgICMgdG8gdGhlIE9TIHZlcnNpb24sIGlmIG9uIHg4NiwgYW5kIDEwLjQs IHRoZSBkZXBsb3ltZW50Ci0rICAgICAgIyB0YXJnZXQgZGVmYXVsdHMgdG8gMTAuNC4gRG9uJ3Qg eW91IGxvdmUgaXQ/Ci0rICAgICAgY2FzZSAke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVC0xMC4w fSwkaG9zdCBpbgotKwkxMC4wLCo4NiotZGFyd2luOCp8MTAuMCwqLWRhcndpbltbOTFdXSopCi0r CSAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfWR5bmFtaWNf bG9va3VwJyA7OwotKwkxMC5bWzAxMl1dKikKLSsJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0n JHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7Ci0r CTEwLiopCi0rCSAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3ds fWR5bmFtaWNfbG9va3VwJyA7OwotKyAgICAgIGVzYWMKLSsgICAgOzsKLSsgIGVzYWMKLSsgICAg aWYgdGVzdCAiJGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiID0gInllcyI7IHRoZW4KLSsgICAg ICBfbHRfZGFyX3NpbmdsZV9tb2Q9JyRzaW5nbGVfbW9kdWxlJwotKyAgICBmaQotKyAgICBpZiB0 ZXN0ICIkbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0IiA9ICJ5ZXMiOyB0aGVuCi0rICAg ICAgX2x0X2Rhcl9leHBvcnRfc3ltcz0nICR7d2x9LWV4cG9ydGVkX3N5bWJvbHNfbGlzdCwkb3V0 cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltJwotKyAgICBlbHNlCi0rICAgICAg X2x0X2Rhcl9leHBvcnRfc3ltcz0nfiROTUVESVQgLXMgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1l fS1zeW1ib2xzLmV4cHN5bSAke2xpYn0nCi0rICAgIGZpCi0rICAgIGlmIHRlc3QgIiREU1lNVVRJ TCIgIT0gIjoiOyB0aGVuCi0rICAgICAgX2x0X2RzeW11dGlsPSd+JERTWU1VVElMICRsaWIgfHwg OicKLSsgICAgZWxzZQotKyAgICAgIF9sdF9kc3ltdXRpbD0KLSsgICAgZmkKLSsgICAgOzsKLSsg IGVzYWMKLStdKQotKwotKwotKyMgX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVMKLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVja3MgZm9yIGxpbmtlciBhbmQgY29tcGlsZXIg ZmVhdHVyZXMgb24gZGFyd2luCi0rbTRfZGVmdW4oW19MVF9EQVJXSU5fTElOS0VSX0ZFQVRVUkVT XSwKLStbCi0rICBtNF9yZXF1aXJlKFtfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLU10pCi0rICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfZGlyZWN0LCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAk MSk9eWVzCi0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT11bnN1cHBv cnRlZAotKyAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScnCi0rICBf TFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKLSsgIF9MVF9UQUdWQVIoYWxsb3df dW5kZWZpbmVkX2ZsYWcsICQxKT0iJF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkIgotKyAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KLSsgICAgIGlmb3J0KikgX2x0X2Rhcl9jYW5fc2hhcmVkPXllcyA7Owot KyAgICAgKikgX2x0X2Rhcl9jYW5fc2hhcmVkPSRHQ0MgOzsKLSsgIGVzYWMKLSsgIGlmIHRlc3Qg IiRfbHRfZGFyX2Nhbl9zaGFyZWQiID0gInllcyI7IHRoZW4KLSsgICAgb3V0cHV0X3ZlcmJvc2Vf bGlua19jbWQ9ZWNobwotKyAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSJcJENDIC1k eW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVw bGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZl cnN0cmluZyAkX2x0X2Rhcl9zaW5nbGVfbW9kJHtfbHRfZHN5bXV0aWx9IgotKyAgICBfTFRfVEFH VkFSKG1vZHVsZV9jbWRzLCAkMSk9IlwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxp YiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2RzeW11 dGlsfSIKLSsgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9InNlZCAncyxe LF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3lt Ym9scy5leHBzeW1+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwk bGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwk cnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJHtfbHRfZGFyX3NpbmdsZV9tb2R9JHtfbHRfZGFy X2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKLSsgICAgX0xUX1RBR1ZBUihtb2R1bGVfZXhw c3ltX2NtZHMsICQxKT0ic2VkIC1lICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0 cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIFwkYWxsb3dfdW5kZWZp bmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJf ZmxhZ3Mke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICBtNF9pZihb JDFdLCBbQ1hYXSwKLStbICAgaWYgdGVzdCAiJGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiICE9 ICJ5ZXMiOyB0aGVuCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0iXCRDQyAt ciAta2VlcF9wcml2YXRlX2V4dGVybnMgLW5vc3RkbGliIC1vIFwke2xpYn0tbWFzdGVyLm8gXCRs aWJvYmpzflwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBc JHtsaWJ9LW1hc3Rlci5vIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUg XCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyR7X2x0X2RzeW11dGlsfSIKLSsgICAgICBfTFRf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRf c3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJEND IC1yIC1rZWVwX3ByaXZhdGVfZXh0ZXJucyAtbm9zdGRsaWIgLW8gXCR7bGlifS1tYXN0ZXIubyBc JGxpYm9ianN+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGli IFwke2xpYn0tbWFzdGVyLm8gXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFt ZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0 X2RzeW11dGlsfSIKLSsgICAgZmkKLStdLFtdKQotKyAgZWxzZQotKyAgX0xUX1RBR1ZBUihsZF9z aGxpYnMsICQxKT1ubwotKyAgZmkKLStdKQotKwotKyMgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgK LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBMaW5rcyBhIG1pbmltYWwgcHJvZ3JhbSBh bmQgY2hlY2tzIHRoZSBleGVjdXRhYmxlCi0rIyBmb3IgdGhlIHN5c3RlbSBkZWZhdWx0IGhhcmRj b2RlZCBsaWJyYXJ5IHBhdGguIEluIG1vc3QgY2FzZXMsCi0rIyB0aGlzIGlzIC91c3IvbGliOi9s aWIsIGJ1dCB3aGVuIHRoZSBNUEkgY29tcGlsZXJzIGFyZSB1c2VkCi0rIyB0aGUgbG9jYXRpb24g b2YgdGhlIGNvbW11bmljYXRpb24gYW5kIE1QSSBsaWJzIGFyZSBpbmNsdWRlZCB0b28uCi0rIyBJ ZiB3ZSBkb24ndCBmaW5kIGFueXRoaW5nLCB1c2UgdGhlIGRlZmF1bHQgbGlicmFyeSBwYXRoIGFj Y29yZGluZwotKyMgdG8gdGhlIGFpeCBsZCBtYW51YWwuCi0rbTRfZGVmdW4oW19MVF9TWVNfTU9E VUxFX1BBVEhfQUlYXSwKLStbbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKLStBQ19MSU5L X0lGRUxTRShBQ19MQU5HX1BST0dSQU0sWwotK2x0X2FpeF9saWJwYXRoX3NlZD0nCi0rICAgIC9J bXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsKLSsJL14wLyB7Ci0rCSAgICBzL14wICAqXCguKlwp JC9cMS8KLSsJICAgIHAKLSsJfQotKyAgICB9JwotK2FpeF9saWJwYXRoPWBkdW1wIC1IIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9z ZWQiYAotKyMgQ2hlY2sgZm9yIGEgNjQtYml0IG9iamVjdCBpZiB3ZSBkaWRuJ3QgZmluZCBhbnl0 aGluZy4KLStpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuCi0rICBhaXhfbGlicGF0aD1g ZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIk bHRfYWl4X2xpYnBhdGhfc2VkImAKLStmaV0sW10pCi0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRo IjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCi0rXSkjIF9MVF9TWVNfTU9E VUxFX1BBVEhfQUlYCi0rCi0rCi0rIyBfTFRfU0hFTExfSU5JVChBUkcpCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtfTFRfU0hFTExfSU5JVF0sCi0rW2lmZGVmKFtBQ19ESVZF UlNJT05fTk9USUNFXSwKLSsJICAgICBbQUNfRElWRVJUX1BVU0goQUNfRElWRVJTSU9OX05PVElD RSldLAotKwkgW0FDX0RJVkVSVF9QVVNIKE5PVElDRSldKQotKyQxCi0rQUNfRElWRVJUX1BPUAot K10pIyBfTFRfU0hFTExfSU5JVAotKwotKwotKyMgX0xUX1BST0dfRUNIT19CQUNLU0xBU0gKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBBZGQgc29tZSBjb2RlIHRvIHRoZSBzdGFydCBv ZiB0aGUgZ2VuZXJhdGVkIGNvbmZpZ3VyZSBzY3JpcHQgd2hpY2gKLSsjIHdpbGwgZmluZCBhbiBl Y2hvIGNvbW1hbmQgd2hpY2ggZG9lc24ndCBpbnRlcnByZXQgYmFja3NsYXNoZXMuCi0rbTRfZGVm dW4oW19MVF9QUk9HX0VDSE9fQkFDS1NMQVNIXSwKLStbX0xUX1NIRUxMX0lOSVQoWwotKyMgQ2hl Y2sgdGhhdCB3ZSBhcmUgcnVubmluZyB1bmRlciB0aGUgY29ycmVjdCBzaGVsbC4KLStTSEVMTD0k e0NPTkZJR19TSEVMTC0vYmluL3NofQotKwotK2Nhc2UgWCRsdF9FQ0hPIGluCi0rWCotLWZhbGxi YWNrLWVjaG8pCi0rICAjIFJlbW92ZSBvbmUgbGV2ZWwgb2YgcXVvdGF0aW9uICh3aGljaCB3YXMg cmVxdWlyZWQgZm9yIE1ha2UpLgotKyAgRUNITz1gZWNobyAiJGx0X0VDSE8iIHwgc2VkICdzLFxc XFxcWyRdXFxbJF0wLCdbJF0wJywnYAotKyAgOzsKLStlc2FjCi0rCi0rRUNITz0ke2x0X0VDSE8t ZWNob30KLStpZiB0ZXN0ICJYWyRdMSIgPSBYLS1uby1yZWV4ZWM7IHRoZW4KLSsgICMgRGlzY2Fy ZCB0aGUgLS1uby1yZWV4ZWMgZmxhZywgYW5kIGNvbnRpbnVlLgotKyAgc2hpZnQKLStlbGlmIHRl c3QgIlhbJF0xIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KLSsgICMgQXZvaWQgaW5saW5lIGRv Y3VtZW50IGhlcmUsIGl0IG1heSBiZSBsZWZ0IG92ZXIKLSsgIDoKLStlbGlmIHRlc3QgIlhgeyAk RUNITyAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyA7IHRoZW4KLSsgICMgWWlwcGVlLCAk RUNITyB3b3JrcyEKLSsgIDoKLStlbHNlCi0rICAjIFJlc3RhcnQgdW5kZXIgdGhlIGNvcnJlY3Qg c2hlbGwuCi0rICBleGVjICRTSEVMTCAiWyRdMCIgLS1uby1yZWV4ZWMgJHsxKyJbJF1AIn0KLStm aQotKwotK2lmIHRlc3QgIlhbJF0xIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KLSsgICMgdXNl ZCBhcyBmYWxsYmFjayBlY2hvCi0rICBzaGlmdAotKyAgY2F0IDw8X0xUX0VPRgotK1skXSoKLStf TFRfRU9GCi0rICBleGl0IDAKLStmaQotKwotKyMgVGhlIEhQLVVYIGtzaCBhbmQgUE9TSVggc2hl bGwgcHJpbnQgdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gc3Rkb3V0Ci0rIyBpZiBDRFBBVEggaXMg c2V0LgotKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgKLSsK LStpZiB0ZXN0IC16ICIkbHRfRUNITyI7IHRoZW4KLSsgIGlmIHRlc3QgIlgke2VjaG9fdGVzdF9z dHJpbmcrc2V0fSIgIT0gWHNldDsgdGhlbgotKyAgICAjIGZpbmQgYSBzdHJpbmcgYXMgbGFyZ2Ug YXMgcG9zc2libGUsIGFzIGxvbmcgYXMgdGhlIHNoZWxsIGNhbiBjb3BlIHdpdGggaXQKLSsgICAg Zm9yIGNtZCBpbiAnc2VkIDUwcSAiWyRdMCInICdzZWQgMjBxICJbJF0wIicgJ3NlZCAxMHEgIlsk XTAiJyAnc2VkIDJxICJbJF0wIicgJ2VjaG8gdGVzdCc7IGRvCi0rICAgICAgIyBleHBlY3RlZCBz aXplczogbGVzcyB0aGFuIDJLYiwgMUtiLCA1MTIgYnl0ZXMsIDE2IGJ5dGVzLCAuLi4KLSsgICAg ICBpZiB7IGVjaG9fdGVzdF9zdHJpbmc9YGV2YWwgJGNtZGA7IH0gMj4vZGV2L251bGwgJiYKLSsJ IHsgdGVzdCAiWCRlY2hvX3Rlc3Rfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+ L2Rldi9udWxsCi0rICAgICAgdGhlbgotKyAgICAgICAgYnJlYWsKLSsgICAgICBmaQotKyAgICBk b25lCi0rICBmaQotKwotKyAgaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxg IiA9ICdYXHQnICYmCi0rICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWB7ICRFQ0hPICIkZWNob190 ZXN0X3N0cmluZyI7IH0gMj4vZGV2L251bGxgICYmCi0rICAgICB0ZXN0ICJYJGVjaG9fdGVzdGlu Z19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSsgICAgOgotKyAgZWxzZQot KyAgICAjIFRoZSBTb2xhcmlzLCBBSVgsIGFuZCBEaWdpdGFsIFVuaXggZGVmYXVsdCBlY2hvIHBy b2dyYW1zIHVucXVvdGUKLSsgICAgIyBiYWNrc2xhc2hlcy4gIFRoaXMgbWFrZXMgaXQgaW1wb3Nz aWJsZSB0byBxdW90ZSBiYWNrc2xhc2hlcyB1c2luZwotKyAgICAjICAgZWNobyAiJHNvbWV0aGlu ZyIgfCBzZWQgJ3MvXFwvXFxcXC9nJwotKyAgICAjCi0rICAgICMgU28sIGZpcnN0IHdlIGxvb2sg Zm9yIGEgd29ya2luZyBlY2hvIGluIHRoZSB1c2VyJ3MgUEFUSC4KLSsKLSsgICAgbHRfc2F2ZV9p ZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rICAgIGZvciBkaXIgaW4gJFBBVEggL3Vz ci91Y2I7IGRvCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICAgaWYgKHRlc3QgLWYg JGRpci9lY2hvIHx8IHRlc3QgLWYgJGRpci9lY2hvJGFjX2V4ZWV4dCkgJiYKLSsgICAgICAgICB0 ZXN0ICJYYCgkZGlyL2VjaG8gJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCi0rICAgICAg ICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRkaXIvZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAy Pi9kZXYvbnVsbGAgJiYKLSsgICAgICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0g IlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSsgICAgICAgIEVDSE89IiRkaXIvZWNobyIKLSsg ICAgICAgIGJyZWFrCi0rICAgICAgZmkKLSsgICAgZG9uZQotKyAgICBJRlM9IiRsdF9zYXZlX2lm cyIKLSsKLSsgICAgaWYgdGVzdCAiWCRFQ0hPIiA9IFhlY2hvOyB0aGVuCi0rICAgICAgIyBXZSBk aWRuJ3QgZmluZCBhIGJldHRlciBlY2hvLCBzbyBsb29rIGZvciBhbHRlcm5hdGl2ZXMuCi0rICAg ICAgaWYgdGVzdCAiWGB7IHByaW50IC1yICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnICYm Ci0rICAgICAgICAgZWNob190ZXN0aW5nX3N0cmluZz1geyBwcmludCAtciAiJGVjaG9fdGVzdF9z dHJpbmciOyB9IDI+L2Rldi9udWxsYCAmJgotKyAgICAgICAgIHRlc3QgIlgkZWNob190ZXN0aW5n X3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgotKyAgICAgICAgIyBUaGlzIHNo ZWxsIGhhcyBhIGJ1aWx0aW4gcHJpbnQgLXIgdGhhdCBkb2VzIHRoZSB0cmljay4KLSsgICAgICAg IEVDSE89J3ByaW50IC1yJwotKyAgICAgIGVsaWYgeyB0ZXN0IC1mIC9iaW4va3NoIHx8IHRlc3Qg LWYgL2Jpbi9rc2gkYWNfZXhlZXh0OyB9ICYmCi0rCSAgIHRlc3QgIlgkQ09ORklHX1NIRUxMIiAh PSBYL2Jpbi9rc2g7IHRoZW4KLSsgICAgICAgICMgSWYgd2UgaGF2ZSBrc2gsIHRyeSBydW5uaW5n IGNvbmZpZ3VyZSBhZ2FpbiB3aXRoIGl0LgotKyAgICAgICAgT1JJR0lOQUxfQ09ORklHX1NIRUxM PSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9Ci0rICAgICAgICBleHBvcnQgT1JJR0lOQUxfQ09ORklH X1NIRUxMCi0rICAgICAgICBDT05GSUdfU0hFTEw9L2Jpbi9rc2gKLSsgICAgICAgIGV4cG9ydCBD T05GSUdfU0hFTEwKLSsgICAgICAgIGV4ZWMgJENPTkZJR19TSEVMTCAiWyRdMCIgLS1uby1yZWV4 ZWMgJHsxKyJbJF1AIn0KLSsgICAgICBlbHNlCi0rICAgICAgICAjIFRyeSB1c2luZyBwcmludGYu Ci0rICAgICAgICBFQ0hPPSdwcmludGYgJXNcbicKLSsgICAgICAgIGlmIHRlc3QgIlhgeyAkRUNI TyAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotKwkgICBlY2hvX3Rlc3Rpbmdfc3Ry aW5nPWB7ICRFQ0hPICIkZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2L251bGxgICYmCi0rCSAg IHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhl bgotKwkgICMgQ29vbCwgcHJpbnRmIHdvcmtzCi0rCSAgOgotKyAgICAgICAgZWxpZiBlY2hvX3Rl c3Rpbmdfc3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFjay1l Y2hvICdcdCcpIDI+L2Rldi9udWxsYCAmJgotKwkgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0 cmluZyIgPSAnWFx0JyAmJgotKwkgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkT1JJR0lOQUxf Q09ORklHX1NIRUxMICJbJF0wIiAtLWZhbGxiYWNrLWVjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikg Mj4vZGV2L251bGxgICYmCi0rCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJY JGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rCSAgQ09ORklHX1NIRUxMPSRPUklHSU5BTF9DT05G SUdfU0hFTEwKLSsJICBleHBvcnQgQ09ORklHX1NIRUxMCi0rCSAgU0hFTEw9IiRDT05GSUdfU0hF TEwiCi0rCSAgZXhwb3J0IFNIRUxMCi0rCSAgRUNITz0iJENPTkZJR19TSEVMTCBbJF0wIC0tZmFs bGJhY2stZWNobyIKLSsgICAgICAgIGVsaWYgZWNob190ZXN0aW5nX3N0cmluZz1gKCRDT05GSUdf U0hFTEwgIlskXTAiIC0tZmFsbGJhY2stZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAgJiYKLSsJICAg ICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gJ1hcdCcgJiYKLSsJICAgICBlY2hvX3Rl c3Rpbmdfc3RyaW5nPWAoJENPTkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFjay1lY2hvICIkZWNo b190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgotKwkgICAgIHRlc3QgIlgkZWNob190ZXN0 aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgotKwkgIEVDSE89IiRDT05G SUdfU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8iCi0rICAgICAgICBlbHNlCi0rCSAgIyBtYXli ZSB3aXRoIGEgc21hbGxlciBzdHJpbmcuLi4KLSsJICBwcmV2PToKLSsKLSsJICBmb3IgY21kIGlu ICdlY2hvIHRlc3QnICdzZWQgMnEgIlskXTAiJyAnc2VkIDEwcSAiWyRdMCInICdzZWQgMjBxICJb JF0wIicgJ3NlZCA1MHEgIlskXTAiJzsgZG8KLSsJICAgIGlmIHsgdGVzdCAiWCRlY2hvX3Rlc3Rf c3RyaW5nIiA9ICJYYGV2YWwgJGNtZGAiOyB9IDI+L2Rldi9udWxsCi0rCSAgICB0aGVuCi0rCSAg ICAgIGJyZWFrCi0rCSAgICBmaQotKwkgICAgcHJldj0iJGNtZCIKLSsJICBkb25lCi0rCi0rCSAg aWYgdGVzdCAiJHByZXYiICE9ICdzZWQgNTBxICJbJF0wIic7IHRoZW4KLSsJICAgIGVjaG9fdGVz dF9zdHJpbmc9YGV2YWwgJHByZXZgCi0rCSAgICBleHBvcnQgZWNob190ZXN0X3N0cmluZwotKwkg ICAgZXhlYyAke09SSUdJTkFMX0NPTkZJR19TSEVMTC0ke0NPTkZJR19TSEVMTC0vYmluL3NofX0g IlskXTAiICR7MSsiWyRdQCJ9Ci0rCSAgZWxzZQotKwkgICAgIyBPb3BzLiAgV2UgbG9zdCBjb21w bGV0ZWx5LCBzbyBqdXN0IHN0aWNrIHdpdGggZWNoby4KLSsJICAgIEVDSE89ZWNobwotKwkgIGZp Ci0rICAgICAgICBmaQotKyAgICAgIGZpCi0rICAgIGZpCi0rICBmaQotK2ZpCi0rCi0rIyBDb3B5 IGVjaG8gYW5kIHF1b3RlIHRoZSBjb3B5IHN1aXRhYmx5IGZvciBwYXNzaW5nIHRvIGxpYnRvb2wg ZnJvbQotKyMgdGhlIE1ha2VmaWxlLCBpbnN0ZWFkIG9mIHF1b3RpbmcgdGhlIG9yaWdpbmFsLCB3 aGljaCBpcyB1c2VkIGxhdGVyLgotK2x0X0VDSE89JEVDSE8KLStpZiB0ZXN0ICJYJGx0X0VDSE8i ID0gIlgkQ09ORklHX1NIRUxMIFskXTAgLS1mYWxsYmFjay1lY2hvIjsgdGhlbgotKyAgIGx0X0VD SE89IiRDT05GSUdfU0hFTEwgXFxcJFxbJF0wIC0tZmFsbGJhY2stZWNobyIKLStmaQotKwotK0FD X1NVQlNUKGx0X0VDSE8pCi0rXSkKLStfTFRfREVDTChbXSwgW1NIRUxMXSwgWzFdLCBbU2hlbGwg dG8gdXNlIHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0c10pCi0rX0xUX0RFQ0woW10sIFtFQ0hP XSwgWzFdLAotKyAgICBbQW4gZWNobyBwcm9ncmFtIHRoYXQgZG9lcyBub3QgaW50ZXJwcmV0IGJh Y2tzbGFzaGVzXSkKLStdKSMgX0xUX1BST0dfRUNIT19CQUNLU0xBU0gKLSsKLSsKLSsjIF9MVF9F TkFCTEVfTE9DSwotKyMgLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmdW4oW19MVF9FTkFCTEVfTE9D S10sCi0rW0FDX0FSR19FTkFCTEUoW2xpYnRvb2wtbG9ja10sCi0rICBbQVNfSEVMUF9TVFJJTkco Wy0tZGlzYWJsZS1saWJ0b29sLWxvY2tdLAotKyAgICBbYXZvaWQgbG9ja2luZyAobWlnaHQgYnJl YWsgcGFyYWxsZWwgYnVpbGRzKV0pXSkKLSt0ZXN0ICJ4JGVuYWJsZV9saWJ0b29sX2xvY2siICE9 IHhubyAmJiBlbmFibGVfbGlidG9vbF9sb2NrPXllcwotKwotKyMgU29tZSBmbGFncyBuZWVkIHRv IGJlIHByb3BhZ2F0ZWQgdG8gdGhlIGNvbXBpbGVyIG9yIGxpbmtlciBmb3IgZ29vZAotKyMgbGli dG9vbCBzdXBwb3J0LgotK2Nhc2UgJGhvc3QgaW4KLStpYTY0LSotaHB1eCopCi0rICAjIEZpbmQg b3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3Qu JGFjX2V4dAotKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KLSsgICAgY2FzZSBg L3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgotKyAgICAgICpFTEYtMzIqKQot KwlIUFVYX0lBNjRfTU9ERT0iMzIiCi0rCTs7Ci0rICAgICAgKkVMRi02NCopCi0rCUhQVVhfSUE2 NF9NT0RFPSI2NCIKLSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHJtIC1yZiBjb25mdGVzdCoK LSsgIDs7Ci0rKi0qLWlyaXg2KikKLSsgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2lu Zy4KLSsgIGVjaG8gJ1sjXWxpbmUgX19vbGluZV9fICJjb25maWd1cmUiJyA+IGNvbmZ0ZXN0LiRh Y19leHQKLSsgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCi0rICAgIGlmIHRlc3Qg IiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgICBjYXNlIGAvdXNyL2Jpbi9m aWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCi0rCSozMi1iaXQqKQotKwkgIExEPSIke0xELWxk fSAtbWVsZjMyYnNtaXAiCi0rCSAgOzsKLSsJKk4zMiopCi0rCSAgTEQ9IiR7TEQtbGR9IC1tZWxm MzJibWlwbjMyIgotKwkgIDs7Ci0rCSo2NC1iaXQqKQotKwkgIExEPSIke0xELWxkfSAtbWVsZjY0 Ym1pcCIKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgIGVsc2UKLSsgICAgICBjYXNlIGAvdXNyL2Jp bi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCi0rCSozMi1iaXQqKQotKwkgIExEPSIke0xE LWxkfSAtMzIiCi0rCSAgOzsKLSsJKk4zMiopCi0rCSAgTEQ9IiR7TEQtbGR9IC1uMzIiCi0rCSAg OzsKLSsJKjY0LWJpdCopCi0rCSAgTEQ9IiR7TEQtbGR9IC02NCIKLSsJICA7OwotKyAgICAgIGVz YWMKLSsgICAgZmkKLSsgIGZpCi0rICBybSAtcmYgY29uZnRlc3QqCi0rICA7OwotKwotK3g4Nl82 NC0qa2ZyZWVic2QqLWdudXx4ODZfNjQtKmxpbnV4KnxwcGMqLSpsaW51eCp8cG93ZXJwYyotKmxp bnV4KnwgXAotK3MzOTAqLSpsaW51eCp8czM5MCotKnRwZip8c3BhcmMqLSpsaW51eCopCi0rICAj IEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBlY2hvICdpbnQgaTsnID4gY29u ZnRlc3QuJGFjX2V4dAotKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KLSsgICAg Y2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC5vYCBpbgotKyAgICAgICozMi1iaXQqKQotKwlj YXNlICRob3N0IGluCi0rCSAgeDg2XzY0LSprZnJlZWJzZCotZ251KQotKwkgICAgTEQ9IiR7TEQt bGR9IC1tIGVsZl9pMzg2X2Zic2QiCi0rCSAgICA7OwotKwkgIHg4Nl82NC0qbGludXgqKQotKwkg ICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl9pMzg2IgotKwkgICAgOzsKLSsJICBwcGM2NC0qbGludXgq fHBvd2VycGM2NC0qbGludXgqKQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjMycHBjbGludXgi Ci0rCSAgICA7OwotKwkgIHMzOTB4LSpsaW51eCopCi0rCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxm X3MzOTAiCi0rCSAgICA7OwotKwkgIHNwYXJjNjQtKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxk fSAtbSBlbGYzMl9zcGFyYyIKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICAqNjQtYml0 KikKLSsJY2FzZSAkaG9zdCBpbgotKwkgIHg4Nl82NC0qa2ZyZWVic2QqLWdudSkKLSsJICAgIExE PSIke0xELWxkfSAtbSBlbGZfeDg2XzY0X2Zic2QiCi0rCSAgICA7OwotKwkgIHg4Nl82NC0qbGlu dXgqKQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94ODZfNjQiCi0rCSAgICA7OwotKwkgIHBw YyotKmxpbnV4Knxwb3dlcnBjKi0qbGludXgqKQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0 cHBjIgotKwkgICAgOzsKLSsJICBzMzkwKi0qbGludXgqfHMzOTAqLSp0cGYqKQotKwkgICAgTEQ9 IiR7TEQtbGR9IC1tIGVsZjY0X3MzOTAiCi0rCSAgICA7OwotKwkgIHNwYXJjKi0qbGludXgqKQot KwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0X3NwYXJjIgotKwkgICAgOzsKLSsJZXNhYwotKwk7 OwotKyAgICBlc2FjCi0rICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgOzsKLSsKLSsqLSot c2NvMy4ydjUqKQotKyAgIyBPbiBTQ08gT3BlblNlcnZlciA1LCB3ZSBuZWVkIC1iZWxmIHRvIGdl dCBmdWxsLWZlYXR1cmVkIGJpbmFyaWVzLgotKyAgU0FWRV9DRkxBR1M9IiRDRkxBR1MiCi0rICBD RkxBR1M9IiRDRkxBR1MgLWJlbGYiCi0rICBBQ19DQUNIRV9DSEVDSyhbd2hldGhlciB0aGUgQyBj b21waWxlciBuZWVkcyAtYmVsZl0sIGx0X2N2X2NjX25lZWRzX2JlbGYsCi0rICAgIFtBQ19MQU5H X1BVU0goQykKLSsgICAgIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tdXSxbW11d KV0sW2x0X2N2X2NjX25lZWRzX2JlbGY9eWVzXSxbbHRfY3ZfY2NfbmVlZHNfYmVsZj1ub10pCi0r ICAgICBBQ19MQU5HX1BPUF0pCi0rICBpZiB0ZXN0IHgiJGx0X2N2X2NjX25lZWRzX2JlbGYiICE9 IHgieWVzIjsgdGhlbgotKyAgICAjIHRoaXMgaXMgcHJvYmFibHkgZ2NjIDIuOC4wLCBlZ2NzIDEu MCBvciBuZXdlcjsgbm8gbmVlZCBmb3IgLWJlbGYKLSsgICAgQ0ZMQUdTPSIkU0FWRV9DRkxBR1Mi Ci0rICBmaQotKyAgOzsKLStzcGFyYyotKnNvbGFyaXMqKQotKyAgIyBGaW5kIG91dCB3aGljaCBB Qkkgd2UgYXJlIHVzaW5nLgotKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKLSsg IGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCi0rICAgIGNhc2UgYC91c3IvYmluL2Zp bGUgY29uZnRlc3Qub2AgaW4KLSsgICAgKjY0LWJpdCopCi0rICAgICAgY2FzZSAkbHRfY3ZfcHJv Z19nbnVfbGQgaW4KLSsgICAgICB5ZXMqKSBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfc3BhcmMiIDs7 Ci0rICAgICAgKikKLSsJaWYgJHtMRC1sZH0gLTY0IC1yIC1vIGNvbmZ0ZXN0Mi5vIGNvbmZ0ZXN0 Lm8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCSAgTEQ9IiR7TEQtbGR9IC02NCIKLSsJZmkKLSsJ OzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHJtIC1yZiBj b25mdGVzdCoKLSsgIDs7Ci0rZXNhYwotKwotK25lZWRfbG9ja3M9IiRlbmFibGVfbGlidG9vbF9s b2NrIgotK10pIyBfTFRfRU5BQkxFX0xPQ0sKLSsKLSsKLSsjIF9MVF9DTURfT0xEX0FSQ0hJVkUK LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX0NNRF9PTERfQVJDSElWRV0s Ci0rW0FDX0NIRUNLX1RPT0woQVIsIGFyLCBmYWxzZSkKLSt0ZXN0IC16ICIkQVIiICYmIEFSPWFy Ci0rdGVzdCAteiAiJEFSX0ZMQUdTIiAmJiBBUl9GTEFHUz1jcnUKLStfTFRfREVDTChbXSwgW0FS XSwgWzFdLCBbVGhlIGFyY2hpdmVyXSkKLStfTFRfREVDTChbXSwgW0FSX0ZMQUdTXSwgWzFdKQot KwotK0FDX0NIRUNLX1RPT0woU1RSSVAsIHN0cmlwLCA6KQotK3Rlc3QgLXogIiRTVFJJUCIgJiYg U1RSSVA9OgotK19MVF9ERUNMKFtdLCBbU1RSSVBdLCBbMV0sIFtBIHN5bWJvbCBzdHJpcHBpbmcg cHJvZ3JhbV0pCi0rCi0rQUNfQ0hFQ0tfVE9PTChSQU5MSUIsIHJhbmxpYiwgOikKLSt0ZXN0IC16 ICIkUkFOTElCIiAmJiBSQU5MSUI9OgotK19MVF9ERUNMKFtdLCBbUkFOTElCXSwgWzFdLAotKyAg ICBbQ29tbWFuZHMgdXNlZCB0byBpbnN0YWxsIGFuIG9sZC1zdHlsZSBhcmNoaXZlXSkKLSsKLSsj IERldGVybWluZSBjb21tYW5kcyB0byBjcmVhdGUgb2xkLXN0eWxlIHN0YXRpYyBhcmNoaXZlcy4K LStvbGRfYXJjaGl2ZV9jbWRzPSckQVIgJEFSX0ZMQUdTICRvbGRsaWIkb2xkb2JqcycKLStvbGRf cG9zdGluc3RhbGxfY21kcz0nY2htb2QgNjQ0ICRvbGRsaWInCi0rb2xkX3Bvc3R1bmluc3RhbGxf Y21kcz0KLSsKLStpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgotKyAgY2FzZSAkaG9zdF9vcyBp bgotKyAgb3BlbmJzZCopCi0rICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzPSIkb2xkX3Bvc3RpbnN0 YWxsX2NtZHN+XCRSQU5MSUIgLXQgXCRvbGRsaWIiCi0rICAgIDs7Ci0rICAqKQotKyAgICBvbGRf cG9zdGluc3RhbGxfY21kcz0iJG9sZF9wb3N0aW5zdGFsbF9jbWRzflwkUkFOTElCIFwkb2xkbGli IgotKyAgICA7OwotKyAgZXNhYwotKyAgb2xkX2FyY2hpdmVfY21kcz0iJG9sZF9hcmNoaXZlX2Nt ZHN+XCRSQU5MSUIgXCRvbGRsaWIiCi0rZmkKLStfTFRfREVDTChbXSwgW29sZF9wb3N0aW5zdGFs bF9jbWRzXSwgWzJdKQotK19MVF9ERUNMKFtdLCBbb2xkX3Bvc3R1bmluc3RhbGxfY21kc10sIFsy XSkKLStfTFRfVEFHREVDTChbXSwgW29sZF9hcmNoaXZlX2NtZHNdLCBbMl0sCi0rICAgIFtDb21t YW5kcyB1c2VkIHRvIGJ1aWxkIGFuIG9sZC1zdHlsZSBhcmNoaXZlXSkKLStdKSMgX0xUX0NNRF9P TERfQVJDSElWRQotKwotKwotKyMgX0xUX0NPTVBJTEVSX09QVElPTihNRVNTQUdFLCBWQVJJQUJM RS1OQU1FLCBGTEFHUywKLSsjCQlbT1VUUFVULUZJTEVdLCBbQUNUSU9OLVNVQ0NFU1NdLCBbQUNU SU9OLUZBSUxVUkVdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgd2hldGhlciB0aGUgZ2l2ZW4gY29t cGlsZXIgb3B0aW9uIHdvcmtzCi0rQUNfREVGVU4oW19MVF9DT01QSUxFUl9PUFRJT05dLAotK1tt NF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRf REVDTF9TRURdKWRubAotK0FDX0NBQ0hFX0NIRUNLKFskMV0sIFskMl0sCi0rICBbJDI9bm8KLSsg ICBtNF9pZihbJDRdLCAsIFthY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHRdLCBbYWNfb3V0 ZmlsZT0kNF0pCi0rICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25m dGVzdC4kYWNfZXh0Ci0rICAgbHRfY29tcGlsZXJfZmxhZz0iJDMiCi0rICAgIyBJbnNlcnQgdGhl IG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsg ICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0 aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250 YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90 IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgICMgVGhl IG9wdGlvbiBpcyByZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2luZyBz ZWQuCi0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUg J3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdz OiBbW14gXV0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAotKyAgIC1lICdz OiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCi0rICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xp bmVfXzogJGx0X2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKLSsgICAoZXZhbCAiJGx0 X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQotKyAgIGFjX3N0YXR1cz0kPwotKyAgIGNhdCBjb25m dGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAotKyAgIGVjaG8gIiRhc19tZTpfX29saW5lX186 IFwkPyA9ICRhY19zdGF0dXMiID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICBpZiAoZXhpdCAkYWNf c3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4KLSsgICAgICMgVGhlIGNvbXBp bGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVk Ci0rICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUg dXN1YWwgb3V0cHV0LgotKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8 ICRYc2VkIC1lICcvXiQvZCcgPmNvbmZ0ZXN0LmV4cAotKyAgICAgJFNFRCAnL14kL2Q7IC9eICor L2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgY29uZnRl c3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVu Ci0rICAgICAgICQyPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgICRSTSBjb25mdGVzdCoKLStd KQotKwotK2lmIHRlc3QgeCJbJF0kMiIgPSB4eWVzOyB0aGVuCi0rICAgIG00X2lmKFskNV0sICwg OiwgWyQ1XSkKLStlbHNlCi0rICAgIG00X2lmKFskNl0sICwgOiwgWyQ2XSkKLStmaQotK10pIyBf TFRfQ09NUElMRVJfT1BUSU9OCi0rCi0rIyBPbGQgbmFtZToKLStBVV9BTElBUyhbQUNfTElCVE9P TF9DT01QSUxFUl9PUFRJT05dLCBbX0xUX0NPTVBJTEVSX09QVElPTl0pCi0rZG5sIGFjbG9jYWwt MS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9D T01QSUxFUl9PUFRJT05dLCBbXSkKLSsKLSsKLSsjIF9MVF9MSU5LRVJfT1BUSU9OKE1FU1NBR0Us IFZBUklBQkxFLU5BTUUsIEZMQUdTLAotKyMgICAgICAgICAgICAgICAgICBbQUNUSU9OLVNVQ0NF U1NdLCBbQUNUSU9OLUZBSUxVUkVdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgd2hldGhlciB0aGUgZ2l2ZW4gbGlua2Vy IG9wdGlvbiB3b3JrcwotK0FDX0RFRlVOKFtfTFRfTElOS0VSX09QVElPTl0sCi0rW200X3JlcXVp cmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAotK200X3JlcXVpcmUoW19MVF9ERUNMX1NF RF0pZG5sCi0rQUNfQ0FDSEVfQ0hFQ0soWyQxXSwgWyQyXSwKLSsgIFskMj1ubwotKyAgIHNhdmVf TERGTEFHUz0iJExERkxBR1MiCi0rICAgTERGTEFHUz0iJExERkxBR1MgJDMiCi0rICAgZWNobyAi JGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICAgaWYgKGV2 YWwgJGFjX2xpbmsgMj5jb25mdGVzdC5lcnIpICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0 OyB0aGVuCi0rICAgICAjIFRoZSBsaW5rZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBv cHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3 YXJuaW5ncwotKyAgICAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSsgICAgICAgIyBB cHBlbmQgYW55IGVycm9ycyB0byB0aGUgY29uZmlnLmxvZy4KLSsgICAgICAgY2F0IGNvbmZ0ZXN0 LmVyciAxPiZBU19NRVNTQUdFX0xPR19GRAotKyAgICAgICAkRUNITyAiWCRfbHRfbGlua2VyX2Jv aWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBjb25mdGVzdC5leHAKLSsgICAgICAgJFNF RCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCi0rICAgICAgIGlm IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAg ICAgJDI9eWVzCi0rICAgICAgIGZpCi0rICAgICBlbHNlCi0rICAgICAgICQyPXllcwotKyAgICAg ZmkKLSsgICBmaQotKyAgICRSTSAtciBjb25mdGVzdCoKLSsgICBMREZMQUdTPSIkc2F2ZV9MREZM QUdTIgotK10pCi0rCi0raWYgdGVzdCB4IlskXSQyIiA9IHh5ZXM7IHRoZW4KLSsgICAgbTRfaWYo WyQ0XSwgLCA6LCBbJDRdKQotK2Vsc2UKLSsgICAgbTRfaWYoWyQ1XSwgLCA6LCBbJDVdKQotK2Zp Ci0rXSkjIF9MVF9MSU5LRVJfT1BUSU9OCi0rCi0rIyBPbGQgbmFtZToKLStBVV9BTElBUyhbQUNf TElCVE9PTF9MSU5LRVJfT1BUSU9OXSwgW19MVF9MSU5LRVJfT1BUSU9OXSkKLStkbmwgYWNsb2Nh bC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09M X0xJTktFUl9PUFRJT05dLCBbXSkKLSsKLSsKLSsjIExUX0NNRF9NQVhfTEVOCi0rIy0tLS0tLS0t LS0tLS0tLQotK0FDX0RFRlVOKFtMVF9DTURfTUFYX0xFTl0sCi0rW0FDX1JFUVVJUkUoW0FDX0NB Tk9OSUNBTF9IT1NUXSlkbmwKLSsjIGZpbmQgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQg bGluZSBhcmd1bWVudHMKLStBQ19NU0dfQ0hFQ0tJTkcoW3RoZSBtYXhpbXVtIGxlbmd0aCBvZiBj b21tYW5kIGxpbmUgYXJndW1lbnRzXSkKLStBQ19DQUNIRV9WQUwoW2x0X2N2X3N5c19tYXhfY21k X2xlbl0sIFtkbmwKLSsgIGk9MAotKyAgdGVzdHN0cmluZz0iQUJDRCIKLSsKLSsgIGNhc2UgJGJ1 aWxkX29zIGluCi0rICBtc2Rvc2RqZ3BwKikKLSsgICAgIyBPbiBESkdQUCwgdGhpcyB0ZXN0IGNh biBibG93IHVwIHByZXR0eSBiYWRseSBkdWUgdG8gcHJvYmxlbXMgaW4gbGliYwotKyAgICAjIChh bnkgc2luZ2xlIGFyZ3VtZW50IGV4Y2VlZGluZyAyMDAwIGJ5dGVzIGNhdXNlcyBhIGJ1ZmZlciBv dmVycnVuCi0rICAgICMgZHVyaW5nIGdsb2IgZXhwYW5zaW9uKS4gIEV2ZW4gaWYgaXQgd2VyZSBm aXhlZCwgdGhlIHJlc3VsdCBvZiB0aGlzCi0rICAgICMgY2hlY2sgd291bGQgYmUgbGFyZ2VyIHRo YW4gaXQgc2hvdWxkIGJlLgotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTIyODg7ICAgICMg MTJLIGlzIGFib3V0IHJpZ2h0Ci0rICAgIDs7Ci0rCi0rICBnbnUqKQotKyAgICAjIFVuZGVyIEdO VSBIdXJkLCB0aGlzIHRlc3QgaXMgbm90IHJlcXVpcmVkIGJlY2F1c2UgdGhlcmUgaXMKLSsgICAg IyBubyBsaW1pdCB0byB0aGUgbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCi0rICAg ICMgTGlidG9vbCB3aWxsIGludGVycHJldCAtMSBhcyBubyBsaW1pdCB3aGF0c29ldmVyCi0rICAg IGx0X2N2X3N5c19tYXhfY21kX2xlbj0tMTsKLSsgICAgOzsKLSsKLSsgIGN5Z3dpbiogfCBtaW5n dyogfCBjZWdjYyopCi0rICAgICMgT24gV2luOXgvTUUsIHRoaXMgdGVzdCBibG93cyB1cCAtLSBp dCBzdWNjZWVkcywgYnV0IHRha2VzCi0rICAgICMgYWJvdXQgNSBtaW51dGVzIGFzIHRoZSB0ZXN0 c3RyaW5nIGdyb3dzIGV4cG9uZW50aWFsbHkuCi0rICAgICMgV29yc2UsIHNpbmNlIDl4L01FIGFy ZSBub3QgcHJlLWVtcHRpdmVseSBtdWx0aXRhc2tpbmcsCi0rICAgICMgeW91IGVuZCB1cCB3aXRo IGEgImZyb3plbiIgY29tcHV0ZXIsIGV2ZW4gdGhvdWdoIHdpdGggcGF0aWVuY2UKLSsgICAgIyB0 aGUgdGVzdCBldmVudHVhbGx5IHN1Y2NlZWRzICh3aXRoIGEgbWF4IGxpbmUgbGVuZ3RoIG9mIDI1 NmspLgotKyAgICAjIEluc3RlYWQsIGxldCdzIGp1c3QgcHVudDogdXNlIHRoZSBtaW5pbXVtIGxp bmVsZW5ndGggcmVwb3J0ZWQgYnkKLSsgICAgIyBhbGwgb2YgdGhlIHN1cHBvcnRlZCBwbGF0Zm9y bXM6IDgxOTIgKG9uIE5ULzJLL1hQKS4KLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTI7 Ci0rICAgIDs7Ci0rCi0rICBhbWlnYW9zKikKLSsgICAgIyBPbiBBbWlnYU9TIHdpdGggcGRrc2gs IHRoaXMgdGVzdCB0YWtlcyBob3VycywgbGl0ZXJhbGx5LgotKyAgICAjIFNvIHdlIGp1c3QgcHVu dCBhbmQgdXNlIGEgbWluaW11bSBsaW5lIGxlbmd0aCBvZiA4MTkyLgotKyAgICBsdF9jdl9zeXNf bWF4X2NtZF9sZW49ODE5MjsKLSsgICAgOzsKLSsKLSsgIG5ldGJzZCogfCBmcmVlYnNkKiB8IG9w ZW5ic2QqIHwgZGFyd2luKiB8IGRyYWdvbmZseSopCi0rICAgICMgVGhpcyBoYXMgYmVlbiBhcm91 bmQgc2luY2UgMzg2QlNELCBhdCBsZWFzdC4gIExpa2VseSBmdXJ0aGVyLgotKyAgICBpZiB0ZXN0 IC14IC9zYmluL3N5c2N0bDsgdGhlbgotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gL3Ni aW4vc3lzY3RsIC1uIGtlcm4uYXJnbWF4YAotKyAgICBlbGlmIHRlc3QgLXggL3Vzci9zYmluL3N5 c2N0bDsgdGhlbgotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gL3Vzci9zYmluL3N5c2N0 bCAtbiBrZXJuLmFyZ21heGAKLSsgICAgZWxzZQotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xl bj02NTUzNgkjIHVzYWJsZSBkZWZhdWx0IGZvciBhbGwgQlNEcwotKyAgICBmaQotKyAgICAjIEFu ZCBhZGQgYSBzYWZldHkgem9uZQotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0 X2N2X3N5c19tYXhfY21kX2xlbiBcLyA0YAotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4 cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcKiAzYAotKyAgICA7OwotKwotKyAgaW50ZXJpeCop Ci0rICAgICMgV2Uga25vdyB0aGUgdmFsdWUgMjYyMTQ0IGFuZCBoYXJkY29kZSBpdCB3aXRoIGEg c2FmZXR5IHpvbmUgKGxpa2UgQlNEKQotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTk2NjA4 Ci0rICAgIDs7Ci0rCi0rICBvc2YqKQotKyAgICAjIERyLiBIYW5zIEVra2VoYXJkIFBsZXNzZXIg cmVwb3J0cyBzZWVpbmcgYSBrZXJuZWwgcGFuaWMgcnVubmluZyBjb25maWd1cmUKLSsgICAgIyBk dWUgdG8gdGhpcyB0ZXN0IHdoZW4gZXhlY19kaXNhYmxlX2FyZ19saW1pdCBpcyAxIG9uIFRydTY0 LiBJdCBpcyBub3QKLSsgICAgIyBuaWNlIHRvIGNhdXNlIGtlcm5lbCBwYW5pY3Mgc28gbGV0cyBh dm9pZCB0aGUgbG9vcCBiZWxvdy4KLSsgICAgIyBGaXJzdCBzZXQgYSByZWFzb25hYmxlIGRlZmF1 bHQuCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xNjM4NAotKyAgICAjCi0rICAgIGlmIHRl c3QgLXggL3NiaW4vc3lzY29uZmlnOyB0aGVuCi0rICAgICAgY2FzZSBgL3NiaW4vc3lzY29uZmln IC1xIHByb2MgZXhlY19kaXNhYmxlX2FyZ19saW1pdGAgaW4KLSsgICAgICAgICoxKikgbHRfY3Zf c3lzX21heF9jbWRfbGVuPS0xIDs7Ci0rICAgICAgZXNhYwotKyAgICBmaQotKyAgICA7OwotKyAg c2NvMy4ydjUqKQotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTAyNDAwCi0rICAgIDs7Ci0r ICBzeXN2NSogfCBzY281djYqIHwgc3lzdjQuMnV3MiopCi0rICAgIGthcmdtYXg9YGdyZXAgQVJH X01BWCAvZXRjL2NvbmYvY2YuZC9zdHVuZSAyPi9kZXYvbnVsbGAKLSsgICAgaWYgdGVzdCAtbiAi JGthcmdtYXgiOyB0aGVuCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBlY2hvICRrYXJn bWF4IHwgc2VkICdzLy4qW1sJIF1dLy8nYAotKyAgICBlbHNlCi0rICAgICAgbHRfY3Zfc3lzX21h eF9jbWRfbGVuPTMyNzY4Ci0rICAgIGZpCi0rICAgIDs7Ci0rICAqKQotKyAgICBsdF9jdl9zeXNf bWF4X2NtZF9sZW49YChnZXRjb25mIEFSR19NQVgpIDI+IC9kZXYvbnVsbGAKLSsgICAgaWYgdGVz dCAtbiAiJGx0X2N2X3N5c19tYXhfY21kX2xlbiI7IHRoZW4KLSsgICAgICBsdF9jdl9zeXNfbWF4 X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcLyA0YAotKyAgICAgIGx0X2N2 X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwqIDNgCi0rICAg IGVsc2UKLSsgICAgICAjIE1ha2UgdGVzdHN0cmluZyBhIGxpdHRsZSBiaWdnZXIgYmVmb3JlIHdl IGRvIGFueXRoaW5nIHdpdGggaXQuCi0rICAgICAgIyBhIDFLIHN0cmluZyBzaG91bGQgYmUgYSBy ZWFzb25hYmxlIHN0YXJ0LgotKyAgICAgIGZvciBpIGluIDEgMiAzIDQgNSA2IDcgOCA7IGRvCi0r ICAgICAgICB0ZXN0c3RyaW5nPSR0ZXN0c3RyaW5nJHRlc3RzdHJpbmcKLSsgICAgICBkb25lCi0r ICAgICAgU0hFTEw9JHtTSEVMTC0ke0NPTkZJR19TSEVMTC0vYmluL3NofX0KLSsgICAgICAjIElm IHRlc3QgaXMgbm90IGEgc2hlbGwgYnVpbHQtaW4sIHdlJ2xsIHByb2JhYmx5IGVuZCB1cCBjb21w dXRpbmcgYQotKyAgICAgICMgbWF4aW11bSBsZW5ndGggdGhhdCBpcyBvbmx5IGhhbGYgb2YgdGhl IGFjdHVhbCBtYXhpbXVtIGxlbmd0aCwgYnV0Ci0rICAgICAgIyB3ZSBjYW4ndCB0ZWxsLgotKyAg ICAgIHdoaWxlIHsgdGVzdCAiWCJgJFNIRUxMIFskXTAgLS1mYWxsYmFjay1lY2hvICJYJHRlc3Rz dHJpbmckdGVzdHN0cmluZyIgMj4vZGV2L251bGxgIFwKLSsJICAgICAgICAgPSAiWFgkdGVzdHN0 cmluZyR0ZXN0c3RyaW5nIjsgfSA+L2Rldi9udWxsIDI+JjEgJiYKLSsJICAgICAgdGVzdCAkaSAh PSAxNyAjIDEvMiBNQiBzaG91bGQgYmUgZW5vdWdoCi0rICAgICAgZG8KLSsgICAgICAgIGk9YGV4 cHIgJGkgKyAxYAotKyAgICAgICAgdGVzdHN0cmluZz0kdGVzdHN0cmluZyR0ZXN0c3RyaW5nCi0r ICAgICAgZG9uZQotKyAgICAgICMgT25seSBjaGVjayB0aGUgc3RyaW5nIGxlbmd0aCBvdXRzaWRl IHRoZSBsb29wLgotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAiWCR0ZXN0c3Ry aW5nIiA6ICIuKiIgMj4mMWAKLSsgICAgICB0ZXN0c3RyaW5nPQotKyAgICAgICMgQWRkIGEgc2ln bmlmaWNhbnQgc2FmZXR5IGZhY3RvciBiZWNhdXNlIEMrKyBjb21waWxlcnMgY2FuIHRhY2sgb24K LSsgICAgICAjIG1hc3NpdmUgYW1vdW50cyBvZiBhZGRpdGlvbmFsIGFyZ3VtZW50cyBiZWZvcmUg cGFzc2luZyB0aGVtIHRvIHRoZQotKyAgICAgICMgbGlua2VyLiAgSXQgYXBwZWFycyBhcyB0aG91 Z2ggMS8yIGlzIGEgdXNhYmxlIHZhbHVlLgotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1g ZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDJgCi0rICAgIGZpCi0rICAgIDs7Ci0rICBl c2FjCi0rXSkKLStpZiB0ZXN0IC1uICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gOyB0aGVuCi0rICBB Q19NU0dfUkVTVUxUKCRsdF9jdl9zeXNfbWF4X2NtZF9sZW4pCi0rZWxzZQotKyAgQUNfTVNHX1JF U1VMVChub25lKQotK2ZpCi0rbWF4X2NtZF9sZW49JGx0X2N2X3N5c19tYXhfY21kX2xlbgotK19M VF9ERUNMKFtdLCBbbWF4X2NtZF9sZW5dLCBbMF0sCi0rICAgIFtXaGF0IGlzIHRoZSBtYXhpbXVt IGxlbmd0aCBvZiBhIGNvbW1hbmQ/XSkKLStdKSMgTFRfQ01EX01BWF9MRU4KLSsKLSsjIE9sZCBu YW1lOgotK0FVX0FMSUFTKFtBQ19MSUJUT09MX1NZU19NQVhfQ01EX0xFTl0sIFtMVF9DTURfTUFY X0xFTl0pCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBB Q19ERUZVTihbQUNfTElCVE9PTF9TWVNfTUFYX0NNRF9MRU5dLCBbXSkKLSsKLSsKLSsjIF9MVF9I RUFERVJfRExGQ04KLSsjIC0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX0hFQURFUl9E TEZDTl0sCi0rW0FDX0NIRUNLX0hFQURFUlMoW2RsZmNuLmhdLCBbXSwgW10sIFtBQ19JTkNMVURF U19ERUZBVUxUXSlkbmwKLStdKSMgX0xUX0hFQURFUl9ETEZDTgotKwotKwotKyMgX0xUX1RSWV9E TE9QRU5fU0VMRiAoQUNUSU9OLUlGLVRSVUUsIEFDVElPTi1JRi1UUlVFLVctVVNDT1JFLAotKyMg ICAgICAgICAgICAgICAgICAgICAgQUNUSU9OLUlGLUZBTFNFLCBBQ1RJT04tSUYtQ1JPU1MtQ09N UElMSU5HKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZnVuKFtfTFRfVFJZX0RMT1BFTl9TRUxGXSwKLStb bTRfcmVxdWlyZShbX0xUX0hFQURFUl9ETEZDTl0pZG5sCi0raWYgdGVzdCAiJGNyb3NzX2NvbXBp bGluZyIgPSB5ZXM7IHRoZW4gOgotKyAgWyQ0XQotK2Vsc2UKLSsgIGx0X2RsdW5rbm93bj0wOyBs dF9kbG5vX3VzY29yZT0xOyBsdF9kbG5lZWRfdXNjb3JlPTIKLSsgIGx0X3N0YXR1cz0kbHRfZGx1 bmtub3duCi0rICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgotK1sjbGluZSBfX29s aW5lX18gImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSsKLSsjaWYgSEFWRV9E TEZDTl9ICi0rI2luY2x1ZGUgPGRsZmNuLmg+Ci0rI2VuZGlmCi0rCi0rI2luY2x1ZGUgPHN0ZGlv Lmg+Ci0rCi0rI2lmZGVmIFJUTERfR0xPQkFMCi0rIyAgZGVmaW5lIExUX0RMR0xPQkFMCQlSVExE X0dMT0JBTAotKyNlbHNlCi0rIyAgaWZkZWYgRExfR0xPQkFMCi0rIyAgICBkZWZpbmUgTFRfRExH TE9CQUwJCURMX0dMT0JBTAotKyMgIGVsc2UKLSsjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJMAot KyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rLyogV2UgbWF5IGhhdmUgdG8gZGVmaW5lIExUX0RMTEFa WV9PUl9OT1cgaW4gdGhlIGNvbW1hbmQgbGluZSBpZiB3ZQotKyAgIGZpbmQgb3V0IGl0IGRvZXMg bm90IHdvcmsgaW4gc29tZSBwbGF0Zm9ybS4gKi8KLSsjaWZuZGVmIExUX0RMTEFaWV9PUl9OT1cK LSsjICBpZmRlZiBSVExEX0xBWlkKLSsjICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlSVExE X0xBWlkKLSsjICBlbHNlCi0rIyAgICBpZmRlZiBETF9MQVpZCi0rIyAgICAgIGRlZmluZSBMVF9E TExBWllfT1JfTk9XCQlETF9MQVpZCi0rIyAgICBlbHNlCi0rIyAgICAgIGlmZGVmIFJUTERfTk9X Ci0rIyAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJUlRMRF9OT1cKLSsjICAgICAgZWxz ZQotKyMgICAgICAgIGlmZGVmIERMX05PVwotKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9P Ul9OT1cJRExfTk9XCi0rIyAgICAgICAgZWxzZQotKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFa WV9PUl9OT1cJMAotKyMgICAgICAgIGVuZGlmCi0rIyAgICAgIGVuZGlmCi0rIyAgICBlbmRpZgot KyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rdm9pZCBmbm9yZCgpIHsgaW50IGk9NDI7fQotK2ludCBt YWluICgpCi0rewotKyAgdm9pZCAqc2VsZiA9IGRsb3BlbiAoMCwgTFRfRExHTE9CQUx8TFRfRExM QVpZX09SX05PVyk7Ci0rICBpbnQgc3RhdHVzID0gJGx0X2RsdW5rbm93bjsKLSsKLSsgIGlmIChz ZWxmKQotKyAgICB7Ci0rICAgICAgaWYgKGRsc3ltIChzZWxmLCJmbm9yZCIpKSAgICAgICBzdGF0 dXMgPSAkbHRfZGxub191c2NvcmU7Ci0rICAgICAgZWxzZSBpZiAoZGxzeW0oIHNlbGYsIl9mbm9y ZCIpKSBzdGF0dXMgPSAkbHRfZGxuZWVkX3VzY29yZTsKLSsgICAgICAvKiBkbGNsb3NlIChzZWxm KTsgKi8KLSsgICAgfQotKyAgZWxzZQotKyAgICBwdXRzIChkbGVycm9yICgpKTsKLSsKLSsgIHJl dHVybiBzdGF0dXM7Ci0rfV0KLStfTFRfRU9GCi0rICBpZiBBQ19UUllfRVZBTChhY19saW5rKSAm JiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9IDI+L2Rldi9udWxsOyB0aGVuCi0rICAgICgu L2NvbmZ0ZXN0OyBleGl0OyApID4mQVNfTUVTU0FHRV9MT0dfRkQgMj4vZGV2L251bGwKLSsgICAg bHRfc3RhdHVzPSQ/Ci0rICAgIGNhc2UgeCRsdF9zdGF0dXMgaW4KLSsgICAgICB4JGx0X2Rsbm9f dXNjb3JlKSAkMSA7OwotKyAgICAgIHgkbHRfZGxuZWVkX3VzY29yZSkgJDIgOzsKLSsgICAgICB4 JGx0X2RsdW5rbm93bnx4KikgJDMgOzsKLSsgICAgZXNhYwotKyAgZWxzZSA6Ci0rICAgICMgY29t cGlsYXRpb24gZmFpbGVkCi0rICAgICQzCi0rICBmaQotK2ZpCi0rcm0gLWZyIGNvbmZ0ZXN0Kgot K10pIyBfTFRfVFJZX0RMT1BFTl9TRUxGCi0rCi0rCi0rIyBMVF9TWVNfRExPUEVOX1NFTEYKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtMVF9TWVNfRExPUEVOX1NFTEZdLAotK1tt NF9yZXF1aXJlKFtfTFRfSEVBREVSX0RMRkNOXSlkbmwKLStpZiB0ZXN0ICJ4JGVuYWJsZV9kbG9w ZW4iICE9IHh5ZXM7IHRoZW4KLSsgIGVuYWJsZV9kbG9wZW49dW5rbm93bgotKyAgZW5hYmxlX2Rs b3Blbl9zZWxmPXVua25vd24KLSsgIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93bgot K2Vsc2UKLSsgIGx0X2N2X2Rsb3Blbj1ubwotKyAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0rCi0rICBj YXNlICRob3N0X29zIGluCi0rICBiZW9zKikKLSsgICAgbHRfY3ZfZGxvcGVuPSJsb2FkX2FkZF9v biIKLSsgICAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0rICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcwot KyAgICA7OwotKwotKyAgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAgIGx0X2N2X2Rsb3Bl bj0iTG9hZExpYnJhcnkiCi0rICAgIGx0X2N2X2Rsb3Blbl9saWJzPQotKyAgICA7OwotKwotKyAg Y3lnd2luKikKLSsgICAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iCi0rICAgIGx0X2N2X2Rsb3Blbl9s aWJzPQotKyAgICA7OwotKwotKyAgZGFyd2luKikKLSsgICMgaWYgbGliZGwgaXMgaW5zdGFsbGVk IHdlIG5lZWQgdG8gbGluayBhZ2FpbnN0IGl0Ci0rICAgIEFDX0NIRUNLX0xJQihbZGxdLCBbZGxv cGVuXSwKLSsJCVtsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGwi XSxbCi0rICAgIGx0X2N2X2Rsb3Blbj0iZHlsZCIKLSsgICAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0r ICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcwotKyAgICBdKQotKyAgICA7OwotKwotKyAgKikKLSsg ICAgQUNfQ0hFQ0tfRlVOQyhbc2hsX2xvYWRdLAotKwkgIFtsdF9jdl9kbG9wZW49InNobF9sb2Fk Il0sCi0rICAgICAgW0FDX0NIRUNLX0xJQihbZGxkXSwgW3NobF9sb2FkXSwKLSsJICAgIFtsdF9j dl9kbG9wZW49InNobF9sb2FkIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbGQiXSwKLSsJW0FDX0NI RUNLX0ZVTkMoW2Rsb3Blbl0sCi0rCSAgICAgIFtsdF9jdl9kbG9wZW49ImRsb3BlbiJdLAotKwkg IFtBQ19DSEVDS19MSUIoW2RsXSwgW2Rsb3Blbl0sCi0rCQlbbHRfY3ZfZGxvcGVuPSJkbG9wZW4i IGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIl0sCi0rCSAgICBbQUNfQ0hFQ0tfTElCKFtzdmxkXSwg W2Rsb3Blbl0sCi0rCQkgIFtsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9 Ii1sc3ZsZCJdLAotKwkgICAgICBbQUNfQ0hFQ0tfTElCKFtkbGRdLCBbZGxkX2xpbmtdLAotKwkJ ICAgIFtsdF9jdl9kbG9wZW49ImRsZF9saW5rIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbGQiXSkK LSsJICAgICAgXSkKLSsJICAgIF0pCi0rCSAgXSkKLSsJXSkKLSsgICAgICBdKQotKyAgICA7Owot KyAgZXNhYwotKwotKyAgaWYgdGVzdCAieCRsdF9jdl9kbG9wZW4iICE9IHhubzsgdGhlbgotKyAg ICBlbmFibGVfZGxvcGVuPXllcwotKyAgZWxzZQotKyAgICBlbmFibGVfZGxvcGVuPW5vCi0rICBm aQotKwotKyAgY2FzZSAkbHRfY3ZfZGxvcGVuIGluCi0rICBkbG9wZW4pCi0rICAgIHNhdmVfQ1BQ RkxBR1M9IiRDUFBGTEFHUyIKLSsgICAgdGVzdCAieCRhY19jdl9oZWFkZXJfZGxmY25faCIgPSB4 eWVzICYmIENQUEZMQUdTPSIkQ1BQRkxBR1MgLURIQVZFX0RMRkNOX0giCi0rCi0rICAgIHNhdmVf TERGTEFHUz0iJExERkxBR1MiCi0rICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgTERG TEFHUz1cIlwkTERGTEFHUyAkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjXCIKLSsKLSsgICAgc2F2 ZV9MSUJTPSIkTElCUyIKLSsgICAgTElCUz0iJGx0X2N2X2Rsb3Blbl9saWJzICRMSUJTIgotKwot KyAgICBBQ19DQUNIRV9DSEVDSyhbd2hldGhlciBhIHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGZd LAotKwkgIGx0X2N2X2Rsb3Blbl9zZWxmLCBbZG5sCi0rCSAgX0xUX1RSWV9ETE9QRU5fU0VMRigK LSsJICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcywgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzLAotKwkg ICAgbHRfY3ZfZGxvcGVuX3NlbGY9bm8sIGx0X2N2X2Rsb3Blbl9zZWxmPWNyb3NzKQotKyAgICBd KQotKwotKyAgICBpZiB0ZXN0ICJ4JGx0X2N2X2Rsb3Blbl9zZWxmIiA9IHh5ZXM7IHRoZW4KLSsg ICAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljXCIKLSsgICAgICBBQ19DQUNIRV9DSEVDSyhbd2hldGhlciBh IHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGZdLAotKwkgIGx0X2N2 X2Rsb3Blbl9zZWxmX3N0YXRpYywgW2RubAotKwkgIF9MVF9UUllfRExPUEVOX1NFTEYoCi0rCSAg ICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9eWVzLCBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9 eWVzLAotKwkgICAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPW5vLCAgbHRfY3ZfZGxvcGVuX3Nl bGZfc3RhdGljPWNyb3NzKQotKyAgICAgIF0pCi0rICAgIGZpCi0rCi0rICAgIENQUEZMQUdTPSIk c2F2ZV9DUFBGTEFHUyIKLSsgICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKLSsgICAgTElCUz0i JHNhdmVfTElCUyIKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIGNhc2UgJGx0X2N2X2Rsb3Blbl9z ZWxmIGluCi0rICB5ZXN8bm8pIGVuYWJsZV9kbG9wZW5fc2VsZj0kbHRfY3ZfZGxvcGVuX3NlbGYg OzsKLSsgICopIGVuYWJsZV9kbG9wZW5fc2VsZj11bmtub3duIDs7Ci0rICBlc2FjCi0rCi0rICBj YXNlICRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMgaW4KLSsgIHllc3xubykgZW5hYmxlX2Rsb3Bl bl9zZWxmX3N0YXRpYz0kbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIDs7Ci0rICAqKSBlbmFibGVf ZGxvcGVuX3NlbGZfc3RhdGljPXVua25vd24gOzsKLSsgIGVzYWMKLStmaQotK19MVF9ERUNMKFtk bG9wZW5fc3VwcG9ydF0sIFtlbmFibGVfZGxvcGVuXSwgWzBdLAotKwkgW1doZXRoZXIgZGxvcGVu IGlzIHN1cHBvcnRlZF0pCi0rX0xUX0RFQ0woW2Rsb3Blbl9zZWxmXSwgW2VuYWJsZV9kbG9wZW5f c2VsZl0sIFswXSwKLSsJIFtXaGV0aGVyIGRsb3BlbiBvZiBwcm9ncmFtcyBpcyBzdXBwb3J0ZWRd KQotK19MVF9ERUNMKFtkbG9wZW5fc2VsZl9zdGF0aWNdLCBbZW5hYmxlX2Rsb3Blbl9zZWxmX3N0 YXRpY10sIFswXSwKLSsJIFtXaGV0aGVyIGRsb3BlbiBvZiBzdGF0aWNhbGx5IGxpbmtlZCBwcm9n cmFtcyBpcyBzdXBwb3J0ZWRdKQotK10pIyBMVF9TWVNfRExPUEVOX1NFTEYKLSsKLSsjIE9sZCBu YW1lOgotK0FVX0FMSUFTKFtBQ19MSUJUT09MX0RMT1BFTl9TRUxGXSwgW0xUX1NZU19ETE9QRU5f U0VMRl0pCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBB Q19ERUZVTihbQUNfTElCVE9PTF9ETE9QRU5fU0VMRl0sIFtdKQotKwotKwotKyMgX0xUX0NPTVBJ TEVSX0NfTyhbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENo ZWNrIHRvIHNlZSBpZiBvcHRpb25zIC1jIGFuZCAtbyBhcmUgc2ltdWx0YW5lb3VzbHkgc3VwcG9y dGVkIGJ5IGNvbXBpbGVyLgotKyMgVGhpcyBtYWNybyBkb2VzIG5vdCBoYXJkIGNvZGUgdGhlIGNv bXBpbGVyIGxpa2UgQUNfUFJPR19DQ19DX08uCi0rbTRfZGVmdW4oW19MVF9DT01QSUxFUl9DX09d LAotK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAotK200X3JlcXVpcmUoW19MVF9GSUxF VVRJTFNfREVGQVVMVFNdKWRubAotK200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAot K0FDX0NBQ0hFX0NIRUNLKFtpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2Jq ZXh0XSwKLSsgIFtfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSldLAotKyAg W19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKT1ubwotKyAgICRSTSAtciBj b25mdGVzdCAyPi9kZXYvbnVsbAotKyAgIG1rZGlyIGNvbmZ0ZXN0Ci0rICAgY2QgY29uZnRlc3QK LSsgICBta2RpciBvdXQKLSsgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+ IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICBsdF9jb21waWxlcl9mbGFnPSItbyBvdXQvY29uZnRl c3QyLiRhY19vYmpleHQiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVy IHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNv bnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0 ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdp bnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8g c2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxl IiB8ICRTRUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFn IDo7IHQnIFwKLSsgICAtZSAnczogW1teIF1dKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFn Jjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVj aG8gIlwiXCRhc19tZTpfX29saW5lX186ICRsdF9jb21waWxlXCIiID4mQVNfTUVTU0FHRV9MT0df RkQpCi0rICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCi0rICAgYWNf c3RhdHVzPSQ/Ci0rICAgY2F0IG91dC9jb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAot KyAgIGVjaG8gIiRhc19tZTpfX29saW5lX186IFwkPyA9ICRhY19zdGF0dXMiID4mQVNfTUVTU0FH RV9MT0dfRkQKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVz dDIuJGFjX29iamV4dAotKyAgIHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdh cm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNh eSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSsgICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9i b2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAotKyAgICAg JFNFRCAnL14kL2Q7IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIK LSsgICAgIGlmIHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0 LmV4cCBvdXQvY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgX0xUX1RBR1ZB UihsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbywgJDEpPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAg IGNobW9kIHUrdyAuIDI+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgJFJNIGNvbmZ0ZXN0KgotKyAg ICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBm b3IKLSsgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KLSsgICB0ZXN0IC1kIG91dC9paV9maWxl cyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCi0rICAgJFJNIG91 dC8qICYmIHJtZGlyIG91dAotKyAgIGNkIC4uCi0rICAgJFJNIC1yIGNvbmZ0ZXN0Ci0rICAgJFJN IGNvbmZ0ZXN0KgotK10pCi0rX0xUX1RBR0RFQ0woW2NvbXBpbGVyX2Nfb10sIFtsdF9jdl9wcm9n X2NvbXBpbGVyX2Nfb10sIFsxXSwKLSsJW0RvZXMgY29tcGlsZXIgc2ltdWx0YW5lb3VzbHkgc3Vw cG9ydCAtYyBhbmQgLW8gb3B0aW9ucz9dKQotK10pIyBfTFRfQ09NUElMRVJfQ19PCi0rCi0rCi0r IyBfTFRfQ09NUElMRVJfRklMRV9MT0NLUyhbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayB0byBzZWUgaWYgd2UgY2FuIGRvIGhhcmQgbGlu a3MgdG8gbG9jayBzb21lIGZpbGVzIGlmIG5lZWRlZAotK200X2RlZnVuKFtfTFRfQ09NUElMRVJf RklMRV9MT0NLU10sCi0rW200X3JlcXVpcmUoW19MVF9FTkFCTEVfTE9DS10pZG5sCi0rbTRfcmVx dWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCi0rX0xUX0NPTVBJTEVSX0NfTyhbJDFd KQotKwotK2hhcmRfbGlua3M9Im5vdHRlc3RlZCIKLStpZiB0ZXN0ICIkX0xUX1RBR1ZBUihsdF9j dl9wcm9nX2NvbXBpbGVyX2NfbywgJDEpIiA9IG5vICYmIHRlc3QgIiRuZWVkX2xvY2tzIiAhPSBu bzsgdGhlbgotKyAgIyBkbyBub3Qgb3ZlcndyaXRlIHRoZSB2YWx1ZSBvZiBuZWVkX2xvY2tzIHBy b3ZpZGVkIGJ5IHRoZSB1c2VyCi0rICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIHdlIGNhbiBsb2NrIHdp dGggaGFyZCBsaW5rc10pCi0rICBoYXJkX2xpbmtzPXllcwotKyAgJFJNIGNvbmZ0ZXN0KgotKyAg bG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KLSsg IHRvdWNoIGNvbmZ0ZXN0LmEKLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPiY1IHx8IGhh cmRfbGlua3M9bm8KLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBo YXJkX2xpbmtzPW5vCi0rICBBQ19NU0dfUkVTVUxUKFskaGFyZF9saW5rc10pCi0rICBpZiB0ZXN0 ICIkaGFyZF9saW5rcyIgPSBubzsgdGhlbgotKyAgICBBQ19NU0dfV0FSTihbYCRDQycgZG9lcyBu b3Qgc3VwcG9ydCBgLWMgLW8nLCBzbyBgbWFrZSAtaicgbWF5IGJlIHVuc2FmZV0pCi0rICAgIG5l ZWRfbG9ja3M9d2FybgotKyAgZmkKLStlbHNlCi0rICBuZWVkX2xvY2tzPW5vCi0rZmkKLStfTFRf REVDTChbXSwgW25lZWRfbG9ja3NdLCBbMV0sIFtNdXN0IHdlIGxvY2sgZmlsZXMgd2hlbiBkb2lu ZyBjb21waWxhdGlvbj9dKQotK10pIyBfTFRfQ09NUElMRVJfRklMRV9MT0NLUwotKwotKwotKyMg X0xUX0NIRUNLX09CSkRJUgotKyMgLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZnVuKFtfTFRfQ0hF Q0tfT0JKRElSXSwKLStbQUNfQ0FDSEVfQ0hFQ0soW2ZvciBvYmpkaXJdLCBbbHRfY3Zfb2JqZGly XSwKLStbcm0gLWYgLmxpYnMgMj4vZGV2L251bGwKLStta2RpciAubGlicyAyPi9kZXYvbnVsbAot K2lmIHRlc3QgLWQgLmxpYnM7IHRoZW4KLSsgIGx0X2N2X29iamRpcj0ubGlicwotK2Vsc2UKLSsg ICMgTVMtRE9TIGRvZXMgbm90IGFsbG93IGZpbGVuYW1lcyB0aGF0IGJlZ2luIHdpdGggYSBkb3Qu Ci0rICBsdF9jdl9vYmpkaXI9X2xpYnMKLStmaQotK3JtZGlyIC5saWJzIDI+L2Rldi9udWxsXSkK LStvYmpkaXI9JGx0X2N2X29iamRpcgotK19MVF9ERUNMKFtdLCBbb2JqZGlyXSwgWzBdLAotKyAg ICAgICAgIFtUaGUgbmFtZSBvZiB0aGUgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgdGVtcG9yYXJ5 IGxpYnRvb2wgZmlsZXNdKWRubAotK200X3BhdHRlcm5fYWxsb3coW0xUX09CSkRJUl0pZG5sCi0r QUNfREVGSU5FX1VOUVVPVEVEKExUX09CSkRJUiwgIiRsdF9jdl9vYmpkaXIvIiwKLSsgIFtEZWZp bmUgdG8gdGhlIHN1Yi1kaXJlY3RvcnkgaW4gd2hpY2ggbGlidG9vbCBzdG9yZXMgdW5pbnN0YWxs ZWQgbGlicmFyaWVzLl0pCi0rXSkjIF9MVF9DSEVDS19PQkpESVIKLSsKLSsKLSsjIF9MVF9MSU5L RVJfSEFSRENPREVfTElCUEFUSChbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgaGFyZGNvZGluZyBhdHRyaWJ1dGVzLgotK200X2Rl ZnVuKFtfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEhdLAotK1tBQ19NU0dfQ0hFQ0tJTkcoW2hv dyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXNdKQotK19MVF9UQUdWQVIo aGFyZGNvZGVfYWN0aW9uLCAkMSk9Ci0raWYgdGVzdCAtbiAiJF9MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpIiB8fAotKyAgIHRlc3QgLW4gIiRfTFRfVEFHVkFSKHJ1bnBh dGhfdmFyLCAkMSkiIHx8Ci0rICAgdGVzdCAiWCRfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRp YywgJDEpIiA9ICJYeWVzIiA7IHRoZW4KLSsKLSsgICMgV2UgY2FuIGhhcmRjb2RlIG5vbi1leGlz dGVudCBkaXJlY3Rvcmllcy4KLSsgIGlmIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVj dCwgJDEpIiAhPSBubyAmJgotKyAgICAgIyBJZiB0aGUgb25seSBtZWNoYW5pc20gdG8gYXZvaWQg aGFyZGNvZGluZyBpcyBzaGxpYnBhdGhfdmFyLCB3ZQotKyAgICAgIyBoYXZlIHRvIHJlbGluaywg b3RoZXJ3aXNlIHdlIG1pZ2h0IGxpbmsgd2l0aCBhbiBpbnN0YWxsZWQgbGlicmFyeQotKyAgICAg IyB3aGVuIHdlIHNob3VsZCBiZSBsaW5raW5nIHdpdGggYSB5ZXQtdG8tYmUtaW5zdGFsbGVkIG9u ZQotKyAgICAgIyMgdGVzdCAiJF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEp IiAhPSBubyAmJgotKyAgICAgdGVzdCAiJF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEp IiAhPSBubzsgdGhlbgotKyAgICAjIExpbmtpbmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUgdGVtcG9y YXJ5IGxpYnJhcnkgZGlyZWN0b3J5LgotKyAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwg JDEpPXJlbGluawotKyAgZWxzZQotKyAgICAjIFdlIGNhbiBsaW5rIHdpdGhvdXQgaGFyZGNvZGlu ZywgYW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlzdGluZyBkaXJzLgotKyAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX2FjdGlvbiwgJDEpPWltbWVkaWF0ZQotKyAgZmkKLStlbHNlCi0rICAjIFdlIGNh bm5vdCBoYXJkY29kZSBhbnl0aGluZywgb3IgZWxzZSB3ZSBjYW4gb25seSBoYXJkY29kZSBleGlz dGluZwotKyAgIyBkaXJlY3Rvcmllcy4KLSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAk MSk9dW5zdXBwb3J0ZWQKLStmaQotK0FDX01TR19SRVNVTFQoWyRfTFRfVEFHVkFSKGhhcmRjb2Rl X2FjdGlvbiwgJDEpXSkKLSsKLStpZiB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24s ICQxKSIgPSByZWxpbmsgfHwKLSsgICB0ZXN0ICIkX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAk MSkiID0geWVzOyB0aGVuCi0rICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQK LSsgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KLStlbGlmIHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGgiID0geWVzIHx8Ci0rICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSBubzsg dGhlbgotKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3QgbmVjZXNzYXJ5Ci0rICBlbmFibGVf ZmFzdF9pbnN0YWxsPW5lZWRsZXNzCi0rZmkKLStfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2Fj dGlvbl0sIFswXSwKLSsgICAgW0hvdyB0byBoYXJkY29kZSBhIHNoYXJlZCBsaWJyYXJ5IHBhdGgg aW50byBhbiBleGVjdXRhYmxlXSkKLStdKSMgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRICi0r Ci0rCi0rIyBfTFRfQ01EX1NUUklQTElCCi0rIyAtLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmdW4o W19MVF9DTURfU1RSSVBMSUJdLAotK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pCi0rc3Ry aXBsaWI9Ci0rb2xkX3N0cmlwbGliPQotK0FDX01TR19DSEVDS0lORyhbd2hldGhlciBzdHJpcHBp bmcgbGlicmFyaWVzIGlzIHBvc3NpYmxlXSkKLStpZiB0ZXN0IC1uICIkU1RSSVAiICYmICRTVFJJ UCAtViAyPiYxIHwgJEdSRVAgIkdOVSBzdHJpcCIgPi9kZXYvbnVsbDsgdGhlbgotKyAgdGVzdCAt eiAiJG9sZF9zdHJpcGxpYiIgJiYgb2xkX3N0cmlwbGliPSIkU1RSSVAgLS1zdHJpcC1kZWJ1ZyIK LSsgIHRlc3QgLXogIiRzdHJpcGxpYiIgJiYgc3RyaXBsaWI9IiRTVFJJUCAtLXN0cmlwLXVubmVl ZGVkIgotKyAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLStlbHNlCi0rIyBGSVhNRSAtIGluc2VydCBz b21lIHJlYWwgdGVzdHMsIGhvc3Rfb3MgaXNuJ3QgcmVhbGx5IGdvb2QgZW5vdWdoCi0rICBjYXNl ICRob3N0X29zIGluCi0rICBkYXJ3aW4qKQotKyAgICBpZiB0ZXN0IC1uICIkU1RSSVAiIDsgdGhl bgotKyAgICAgIHN0cmlwbGliPSIkU1RSSVAgLXgiCi0rICAgICAgb2xkX3N0cmlwbGliPSIkU1RS SVAgLVMiCi0rICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLSsgICAgZWxzZQotKyAgICAgIEFD X01TR19SRVNVTFQoW25vXSkKLSsgICAgZmkKLSsgICAgOzsKLSsgICopCi0rICAgIEFDX01TR19S RVNVTFQoW25vXSkKLSsgICAgOzsKLSsgIGVzYWMKLStmaQotK19MVF9ERUNMKFtdLCBbb2xkX3N0 cmlwbGliXSwgWzFdLCBbQ29tbWFuZHMgdG8gc3RyaXAgbGlicmFyaWVzXSkKLStfTFRfREVDTChb XSwgW3N0cmlwbGliXSwgWzFdKQotK10pIyBfTFRfQ01EX1NUUklQTElCCi0rCi0rCi0rIyBfTFRf U1lTX0RZTkFNSUNfTElOS0VSKFtUQUddKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSsjIFBPUlRNRSBGaWxsIGluIHlvdXIgbGQuc28gY2hhcmFjdGVyaXN0aWNzCi0rbTRfZGVm dW4oW19MVF9TWVNfRFlOQU1JQ19MSU5LRVJdLAotK1tBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxf SE9TVF0pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAotK200X3JlcXVpcmUo W19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAotK200X3JlcXVpcmUoW19MVF9ERUNMX09CSkRV TVBdKWRubAotK200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCi0rQUNfTVNHX0NIRUNLSU5H KFtkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3NdKQotK200X2lmKFskMV0sCi0rCVtdLCBb Ci0raWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAg ZGFyd2luKikgbHRfYXdrX2FyZz0iL15saWJyYXJpZXM6LywvTFIvIiA7OwotKyAgICAqKSBsdF9h d2tfYXJnPSIvXmxpYnJhcmllczovIiA7OwotKyAgZXNhYwotKyAgbHRfc2VhcmNoX3BhdGhfc3Bl Yz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8IGF3ayAkbHRfYXdrX2FyZyB8ICRTRUQgLWUgInMv XmxpYnJhcmllczovLyIgLWUgInMsPS8sLyxnImAKLSsgIGlmICRFQ0hPICIkbHRfc2VhcmNoX3Bh dGhfc3BlYyIgfCAkR1JFUCAnOycgPi9kZXYvbnVsbCA7IHRoZW4KLSsgICAgIyBpZiB0aGUgcGF0 aCBjb250YWlucyAiOyIgdGhlbiB3ZSBhc3N1bWUgaXQgdG8gYmUgdGhlIHNlcGFyYXRvcgotKyAg ICAjIG90aGVyd2lzZSBkZWZhdWx0IHRvIHRoZSBzdGFuZGFyZCBwYXRoIHNlcGFyYXRvciAoaS5l LiAiOiIpIC0gaXQgaXMKLSsgICAgIyBhc3N1bWVkIHRoYXQgbm8gcGFydCBvZiBhIG5vcm1hbCBw YXRobmFtZSBjb250YWlucyAiOyIgYnV0IHRoYXQgc2hvdWxkCi0rICAgICMgb2theSBpbiB0aGUg cmVhbCB3b3JsZCB3aGVyZSAiOyIgaW4gZGlycGF0aHMgaXMgaXRzZWxmIHByb2JsZW1hdGljLgot KyAgICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwg JFNFRCAtZSAncy87LyAvZydgCi0rICBlbHNlCi0rICAgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRF Q0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICAtZSAicy8kUEFUSF9TRVBBUkFUT1Iv IC9nImAKLSsgIGZpCi0rICAjIE9rLCBub3cgd2UgaGF2ZSB0aGUgcGF0aCwgc2VwYXJhdGVkIGJ5 IHNwYWNlcywgd2UgY2FuIHN0ZXAgdGhyb3VnaCBpdAotKyAgIyBhbmQgYWRkIG11bHRpbGliIGRp ciBpZiBuZWNlc3NhcnkuCi0rICBsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0KLSsgIGx0X211 bHRpX29zX2Rpcj1gJENDICRDUFBGTEFHUyAkQ0ZMQUdTICRMREZMQUdTIC1wcmludC1tdWx0aS1v cy1kaXJlY3RvcnkgMj4vZGV2L251bGxgCi0rICBmb3IgbHRfc3lzX3BhdGggaW4gJGx0X3NlYXJj aF9wYXRoX3NwZWM7IGRvCi0rICAgIGlmIHRlc3QgLWQgIiRsdF9zeXNfcGF0aC8kbHRfbXVsdGlf b3NfZGlyIjsgdGhlbgotKyAgICAgIGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1w X2x0X3NlYXJjaF9wYXRoX3NwZWMgJGx0X3N5c19wYXRoLyRsdF9tdWx0aV9vc19kaXIiCi0rICAg IGVsc2UKLSsgICAgICB0ZXN0IC1kICIkbHRfc3lzX3BhdGgiICYmIFwKLSsJbHRfdG1wX2x0X3Nl YXJjaF9wYXRoX3NwZWM9IiRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyAkbHRfc3lzX3BhdGgi Ci0rICAgIGZpCi0rICBkb25lCi0rICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAkbHRfdG1w X2x0X3NlYXJjaF9wYXRoX3NwZWMgfCBhd2sgJwotK0JFR0lOIHtSUz0iICI7IEZTPSIvfFxuIjt9 IHsKLSsgIGx0X2Zvbz0iIjsKLSsgIGx0X2NvdW50PTA7Ci0rICBmb3IgKGx0X2kgPSBORjsgbHRf aSA+IDA7IGx0X2ktLSkgewotKyAgICBpZiAoJGx0X2kgIT0gIiIgJiYgJGx0X2kgIT0gIi4iKSB7 Ci0rICAgICAgaWYgKCRsdF9pID09ICIuLiIpIHsKLSsgICAgICAgIGx0X2NvdW50Kys7Ci0rICAg ICAgfSBlbHNlIHsKLSsgICAgICAgIGlmIChsdF9jb3VudCA9PSAwKSB7Ci0rICAgICAgICAgIGx0 X2Zvbz0iLyIgJGx0X2kgbHRfZm9vOwotKyAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgbHRf Y291bnQtLTsKLSsgICAgICAgIH0KLSsgICAgICB9Ci0rICAgIH0KLSsgIH0KLSsgIGlmIChsdF9m b28gIT0gIiIpIHsgbHRfZnJlcVtbbHRfZm9vXV0rKzsgfQotKyAgaWYgKGx0X2ZyZXFbW2x0X2Zv b11dID09IDEpIHsgcHJpbnQgbHRfZm9vOyB9Ci0rfSdgCi0rICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9YCRFQ0hPICRsdF9zZWFyY2hfcGF0aF9zcGVjYAotK2Vsc2UKLSsgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiIKLStmaV0pCi0rbGli cmFyeV9uYW1lc19zcGVjPQotK2xpYm5hbWVfc3BlYz0nbGliJG5hbWUnCi0rc29uYW1lX3NwZWM9 Ci0rc2hyZXh0X2NtZHM9Ii5zbyIKLStwb3N0aW5zdGFsbF9jbWRzPQotK3Bvc3R1bmluc3RhbGxf Y21kcz0KLStmaW5pc2hfY21kcz0KLStmaW5pc2hfZXZhbD0KLStzaGxpYnBhdGhfdmFyPQotK3No bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD11bmtub3duCi0rdmVyc2lvbl90eXBlPW5vbmUKLStk eW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCi0rc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3Nw ZWM9Ii9saWIgL3Vzci9saWIiCi0rbmVlZF9saWJfcHJlZml4PXVua25vd24KLStoYXJkY29kZV9p bnRvX2xpYnM9bm8KLSsKLSsjIHdoZW4geW91IHNldCBuZWVkX3ZlcnNpb24gdG8gbm8sIG1ha2Ug c3VyZSBpdCBkb2VzIG5vdCBjYXVzZSAtc2V0X3ZlcnNpb24KLSsjIGZsYWdzIHRvIGJlIGxlZnQg d2l0aG91dCBhcmd1bWVudHMKLStuZWVkX3ZlcnNpb249dW5rbm93bgotKwotK2Nhc2UgJGhvc3Rf b3MgaW4KLSthaXgzKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1l LmEnCi0rICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKLSsKLSsgICMgQUlYIDMgaGFzIG5vIHZlcnNp b25pbmcgc3VwcG9ydCwgc28gd2UgYXBwZW5kIGEgbWFqb3IgdmVyc2lvbiB0byB0aGUgbmFtZS4K LSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In Ci0rICA7OwotKwotK2FpeFtbNC05XV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVk X2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgaGFyZGNvZGVfaW50b19saWJz PXllcwotKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgIyBBSVggNSBz dXBwb3J0cyBJQTY0Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJ QlJBUllfUEFUSAotKyAgZWxzZQotKyAgICAjIFdpdGggR0NDIHVwIHRvIDIuOTUueCwgY29sbGVj dDIgd291bGQgY3JlYXRlIGFuIGltcG9ydCBmaWxlCi0rICAgICMgZm9yIGRlcGVuZGVuY2UgbGli cmFyaWVzLiAgVGhlIGltcG9ydCBmaWxlIHdvdWxkIHN0YXJ0IHdpdGgKLSsgICAgIyB0aGUgbGlu ZSBgIyEgLicuICBUaGlzIHdvdWxkIGNhdXNlIHRoZSBnZW5lcmF0ZWQgbGlicmFyeSB0bwotKyAg ICAjIGRlcGVuZCBvbiBgLicsIGFsd2F5cyBhbiBpbnZhbGlkIGxpYnJhcnkuICBUaGlzIHdhcyBm aXhlZCBpbgotKyAgICAjIGRldmVsb3BtZW50IHNuYXBzaG90cyBvZiBHQ0MgcHJpb3IgdG8gMy4w LgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4NCB8IGFpeDQuW1swMV1dIHwgYWl4 NC5bWzAxXV0uKikKLSsgICAgICBpZiB7IGVjaG8gJyNpZiBfX0dOVUNfXyA+IDIgfHwgKF9fR05V Q19fID09IDIgJiYgX19HTlVDX01JTk9SX18gPj0gOTcpJwotKwkgICBlY2hvICcgeWVzICcKLSsJ ICAgZWNobyAnI2VuZGlmJzsgfSB8ICR7Q0N9IC1FIC0gfCAkR1JFUCB5ZXMgPiAvZGV2L251bGw7 IHRoZW4KLSsJOgotKyAgICAgIGVsc2UKLSsJY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIGZp Ci0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICAjIEFJWCAob24gUG93ZXIqKSBoYXMgbm8gdmVy c2lvbmluZyBzdXBwb3J0LCBzbyBjdXJyZW50bHkgd2UgY2FuIG5vdCBoYXJkY29kZSBjb3JyZWN0 Ci0rICAgICMgc29uYW1lIGludG8gZXhlY3V0YWJsZS4gUHJvYmFibHkgd2UgY2FuIGFkZCB2ZXJz aW9uaW5nIHN1cHBvcnQgdG8KLSsgICAgIyBjb2xsZWN0Miwgc28gYWRkaXRpb25hbCBsaW5rcyBj YW4gYmUgdXNlZnVsIGluIGZ1dHVyZS4KLSsgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxp bmtpbmciID0geWVzOyB0aGVuCi0rICAgICAgIyBJZiB1c2luZyBydW4gdGltZSBsaW5raW5nIChv biBBSVggNC4yIG9yIGxhdGVyKSB1c2UgbGliPG5hbWU+LnNvCi0rICAgICAgIyBpbnN0ZWFkIG9m IGxpYjxuYW1lPi5hIHRvIGxldCBwZW9wbGUga25vdyB0aGF0IHRoZXNlIGFyZSBub3QKLSsgICAg ICAjIHR5cGljYWwgQUlYIHNoYXJlZCBsaWJyYXJpZXMuCi0rICAgICAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0r ICAgIGVsc2UKLSsgICAgICAjIFdlIHByZXNlcnZlIC5hIGFzIGV4dGVuc2lvbiBmb3Igc2hhcmVk IGxpYnJhcmllcyB0aHJvdWdoIEFJWDQuMgotKyAgICAgICMgYW5kIGxhdGVyIHdoZW4gd2UgYXJl IG5vdCBkb2luZyBydW4gdGltZSBsaW5raW5nLgotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0uYSAkbGlibmFtZS5hJwotKyAgICAgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGZpCi0rICAgIHNo bGlicGF0aF92YXI9TElCUEFUSAotKyAgZmkKLSsgIDs7Ci0rCi0rYW1pZ2FvcyopCi0rICBjYXNl ICRob3N0X2NwdSBpbgotKyAgcG93ZXJwYykKLSsgICAgIyBTaW5jZSBKdWx5IDIwMDcgQW1pZ2FP UzQgb2ZmaWNpYWxseSBzdXBwb3J0cyAuc28gbGlicmFyaWVzLgotKyAgICAjIFdoZW4gY29tcGls aW5nIHRoZSBleGVjdXRhYmxlLCBhZGQgLXVzZS1keW5sZCAtTHNvYmpzOiB0byB0aGUgY29tcGls ZWxpbmUuCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICA7OwotKyAgbTY4aykKLSsgICAgbGlicmFy eV9uYW1lc19zcGVjPSckbGlibmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKLSsgICAgIyBDcmVh dGUgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSBlbnRyaWVzIGluIC9zeXMvbGlicy4KLSsgICAgZmlu aXNoX2V2YWw9J2ZvciBsaWIgaW4gYGxzICRsaWJkaXIvKi5peGxpYnJhcnkgMj4vZGV2L251bGxg OyBkbyBsaWJuYW1lPWAkRUNITyAiWCRsaWIiIHwgJFhzZWQgLWUgJ1wnJ3MlXi4qL1woW1teL11d KlwpXC5peGxpYnJhcnkkJVwxJSdcJydgOyB0ZXN0ICRSTSAvc3lzL2xpYnMvJHtsaWJuYW1lfV9p eGxpYnJhcnkuYTsgJHNob3cgImNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1f aXhsaWJyYXJ5LmEiOyBjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGli cmFyeS5hIHx8IGV4aXQgMTsgZG9uZScKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rYmVv cyopCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAg ZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgotKyAgc2hsaWJwYXRoX3Zhcj1MSUJSQVJZ X1BBVEgKLSsgIDs7Ci0rCi0rYnNkaVtbNDVdXSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsg IG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgZmluaXNoX2NtZHM9J1BBVEg9 IlwkUEFUSDovc2JpbiIgbGRjb25maWcgJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElC UkFSWV9QQVRICi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAv dXNyL1gxMS9saWIgL3Vzci9jb250cmliL2xpYiAvbGliIC91c3IvbG9jYWwvbGliIgotKyAgc3lz X2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiIK LSsgICMgdGhlIGRlZmF1bHQgbGQuc28uY29uZiBhbHNvIGNvbnRhaW5zIC91c3IvY29udHJpYi9s aWIgYW5kCi0rICAjIC91c3IvWDExUjYvbGliICgvdXNyL1gxMSBpcyBhIGxpbmsgdG8gL3Vzci9Y MTFSNiksIGJ1dCBsZXQgdXMgYWxsb3cKLSsgICMgbGlidG9vbCB0byBoYXJkLWNvZGUgdGhlc2Ug aW50byBwcm9ncmFtcwotKyAgOzsKLSsKLStjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdj YyopCi0rICB2ZXJzaW9uX3R5cGU9d2luZG93cwotKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCi0rICBu ZWVkX3ZlcnNpb249bm8KLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKwotKyAgY2FzZSAkR0NDLCRo b3N0X29zIGluCi0rICB5ZXMsY3lnd2luKiB8IHllcyxtaW5ndyogfCB5ZXMscHczMiogfCB5ZXMs Y2VnY2MqKQotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLmRsbC5hJwotKyAgICAj IERMTCBpcyBpbnN0YWxsZWQgdG8gJChsaWJkaXIpLy4uL2JpbiBieSBwb3N0aW5zdGFsbF9jbWRz Ci0rICAgIHBvc3RpbnN0YWxsX2NtZHM9J2Jhc2VfZmlsZT1gYmFzZW5hbWUgXCR7ZmlsZX1gfgot KyAgICAgIGRscGF0aD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGRpci8nXCcnXCR7YmFzZV9maWxl fSdcJydpOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+Ci0rICAgICAgZGxkaXI9JGRlc3RkaXIvYGRpcm5h bWUgXCRkbHBhdGhgfgotKyAgICAgIHRlc3QgLWQgXCRkbGRpciB8fCBta2RpciAtcCBcJGRsZGly fgotKyAgICAgICRpbnN0YWxsX3Byb2cgJGRpci8kZGxuYW1lIFwkZGxkaXIvJGRsbmFtZX4KLSsg ICAgICBjaG1vZCBhK3ggXCRkbGRpci8kZGxuYW1lfgotKyAgICAgIGlmIHRlc3QgLW4gJ1wnJyRz dHJpcG1lJ1wnJyAmJiB0ZXN0IC1uICdcJyckc3RyaXBsaWInXCcnOyB0aGVuCi0rICAgICAgICBl dmFsICdcJyckc3RyaXBsaWIgXCRkbGRpci8kZGxuYW1lJ1wnJyB8fCBleGl0IFwkPzsKLSsgICAg ICBmaScKLSsgICAgcG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRsbD1gJFNIRUxMIDI+JjEgLWMgJ1wn Jy4gJGZpbGU7IGVjaG8gXCRkbG5hbWUnXCcnYH4KLSsgICAgICBkbHBhdGg9JGRpci9cJGRsZGxs fgotKyAgICAgICAkUk0gXCRkbHBhdGgnCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD15ZXMKLSsKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBjeWd3aW4qKQotKyAgICAgICMg Q3lnd2luIERMTHMgdXNlICdjeWcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJwotKyAgICAgIHNv bmFtZV9zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvY3lnLydgYGVjaG8g JHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9l eHR9JwotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIgL2xpYi93MzJh cGkgL2xpYiAvdXNyL2xvY2FsL2xpYiIKLSsgICAgICA7OwotKyAgICBtaW5ndyogfCBjZWdjYyop Ci0rICAgICAgIyBNaW5HVyBETExzIHVzZSB0cmFkaXRpb25hbCAnbGliJyBwcmVmaXgKLSsgICAg ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tb Ll1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAgICBzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCAkR1JFUCAiXmxpYnJhcmllczoi IHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGciYAotKyAgICAgIGlmICRF Q0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8IFskR1JFUCAnO1tjLXpDLVpdOi8nID4v ZGV2L251bGxdOyB0aGVuCi0rICAgICAgICAjIEl0IGlzIG1vc3QgcHJvYmFibHkgYSBXaW5kb3dz IGZvcm1hdCBQQVRIIHByaW50ZWQgYnkKLSsgICAgICAgICMgbWluZ3cgZ2NjLCBidXQgd2UgYXJl IHJ1bm5pbmcgb24gQ3lnd2luLiBHY2MgcHJpbnRzIGl0cyBzZWFyY2gKLSsgICAgICAgICMgcGF0 aCB3aXRoIDsgc2VwYXJhdG9ycywgYW5kIHdpdGggZHJpdmUgbGV0dGVycy4gV2UgY2FuIGhhbmRs ZSB0aGUKLSsgICAgICAgICMgZHJpdmUgbGV0dGVycyAoY3lnd2luIGZpbGV1dGlscyB1bmRlcnN0 YW5kcyB0aGVtKSwgc28gbGVhdmUgdGhlbSwKLSsgICAgICAgICMgZXNwZWNpYWxseSBhcyB3ZSBt aWdodCBwYXNzIGZpbGVzIGZvdW5kIHRoZXJlIHRvIGEgbWluZ3cgb2JqZHVtcCwKLSsgICAgICAg ICMgd2hpY2ggd291bGRuJ3QgdW5kZXJzdGFuZCBhIGN5Z3dpbmlmaWVkIHBhdGguIEFoaC4KLSsg ICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWMiIHwgJFNFRCAtZSAncy87LyAvZydgCi0rICAgICAgZWxzZQotKyAgICAgICAgc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIg fCAkU0VEICAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKLSsgICAgICBmaQotKyAgICAgIDs7 Ci0rICAgIHB3MzIqKQotKyAgICAgICMgcHczMiBETExzIHVzZSAncHcnIHByZWZpeCByYXRoZXIg dGhhbiAnbGliJwotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8 IHNlZCAtZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0v LS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsg ICAgOzsKLSsKLSsgICopCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hv ICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRf ZXh0fSAkbGlibmFtZS5saWInCi0rICAgIDs7Ci0rICBlc2FjCi0rICBkeW5hbWljX2xpbmtlcj0n V2luMzIgbGQuZXhlJwotKyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0 aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGluCi0rICBzaGxpYnBhdGhfdmFyPVBBVEgK LSsgIDs7Ci0rCi0rZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgIGR5bmFtaWNfbGlua2VyPSIkaG9z dF9vcyBkeWxkIgotKyAgdmVyc2lvbl90eXBlPWRhcndpbgotKyAgbmVlZF9saWJfcHJlZml4PW5v Ci0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0ICR7bGlibmFtZX0kc2hhcmVkX2V4dCcKLSsgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQnCi0rICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBzaGxpYnBhdGhfdmFyPURZTERfTElC UkFSWV9QQVRICi0rICBzaHJleHRfY21kcz0nYHRlc3QgLiRtb2R1bGUgPSAueWVzICYmIGVjaG8g LnNvIHx8IGVjaG8gLmR5bGliYCcKLSttNF9pZihbJDFdLCBbXSxbCi0rICBzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL3Vzci9sb2NhbC9saWIiXSkK LSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvbGliIC91c3Iv bGliJwotKyAgOzsKLSsKLStkZ3V4KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9s aWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUkc2hhcmVkX2V4dCcKLSsgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgOzsKLSsKLStmcmVlYnNkMSopCi0rICBkeW5h bWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLStmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAjIERy YWdvbkZseSBkb2VzIG5vdCBoYXZlIGFvdXQuICBXaGVuL2lmIHRoZXkgaW1wbGVtZW50IGEgbmV3 Ci0rICAjIHZlcnNpb25pbmcgbWVjaGFuaXNtLCBhZGp1c3QgdGhpcy4KLSsgIGlmIHRlc3QgLXgg L3Vzci9iaW4vb2JqZm9ybWF0OyB0aGVuCi0rICAgIG9iamZvcm1hdD1gL3Vzci9iaW4vb2JqZm9y bWF0YAotKyAgZWxzZQotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGZyZWVic2RbWzEyM11d Kikgb2JqZm9ybWF0PWFvdXQgOzsKLSsgICAgKikgb2JqZm9ybWF0PWVsZiA7OwotKyAgICBlc2Fj Ci0rICBmaQotKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtJG9iamZvcm1hdAotKyAgY2FzZSAkdmVy c2lvbl90eXBlIGluCi0rICAgIGZyZWVic2QtZWxmKikKLSsgICAgICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgICBu ZWVkX3ZlcnNpb249bm8KLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICA7OwotKyAg ICBmcmVlYnNkLSopCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXgnCi0rICAgICAgbmVlZF92ZXJzaW9uPXllcwotKyAgICAgIDs7Ci0rICBlc2FjCi0rICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgZnJlZWJz ZDIqKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIDs7Ci0rICBm cmVlYnNkMy5bWzAxXV0qIHwgZnJlZWJzZGVsZjMuW1swMV1dKikKLSsgICAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIDs7 Ci0rICBmcmVlYnNkMy5bWzItOV1dKiB8IGZyZWVic2RlbGYzLltbMi05XV0qIHwgXAotKyAgZnJl ZWJzZDQuW1swLTVdXSB8IGZyZWVic2RlbGY0LltbMC01XV0gfCBmcmVlYnNkNC4xLjEgfCBmcmVl YnNkZWxmNC4xLjEpCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICBo YXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIDs7Ci0rICAqKSAjIGZyb20gNC42IG9uLCBhbmQg RHJhZ29uRmx5Ci0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgICAgaGFy ZGNvZGVfaW50b19saWJzPXllcwotKyAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLStnbnUqKQot KyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVy c2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFq b3J9ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotK2hwdXg5KiB8IGhw dXgxMCogfCBocHV4MTEqKQotKyAgIyBHaXZlIGEgc29uYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhl IG1ham9yIHZlcnNpb24gc28gdGhhdCBkbGQuc2wgcmVmdXNlcyB0bwotKyAgIyBsaW5rIGFnYWlu c3Qgb3RoZXIgdmVyc2lvbnMuCi0rICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIG5lZWRfbGliX3By ZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBjYXNlICRob3N0X2NwdSBpbgotKyAgaWE2 NCopCi0rICAgIHNocmV4dF9jbWRzPScuc28nCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK LSsgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbyIKLSsgICAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAj IFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAg c29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsg ICAgaWYgdGVzdCAiWCRIUFVYX0lBNjRfTU9ERSIgPSBYMzI7IHRoZW4KLSsgICAgICBzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYi9ocHV4MzIg L3Vzci9sb2NhbC9saWIiCi0rICAgIGVsc2UKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9Ii91c3IvbGliL2hwdXg2NCAvdXNyL2xvY2FsL2xpYi9ocHV4NjQiCi0rICAgIGZpCi0rICAg IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKLSsg ICAgOzsKLSsgIGhwcGEqNjQqKQotKyAgICBzaHJleHRfY21kcz0nLnNsJwotKyAgICBoYXJkY29k ZV9pbnRvX2xpYnM9eWVzCi0rICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCi0r ICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRIICMgSG93IHNob3VsZCB3ZSBoYW5kbGUg U0hMSUJfUEFUSAotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNz ICtub2VudnZhciBpcyBzcGVjaWZpZWQuCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICBzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL3BhMjBfNjQgL3Vzci9jY3MvbGliL3BhMjBf NjQiCi0rICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWMKLSsgICAgOzsKLSsgICopCi0rICAgIHNocmV4dF9jbWRzPScuc2wnCi0rICAgIGR5bmFt aWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCi0rICAgIHNobGlicGF0aF92YXI9U0hMSUJfUEFU SAotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8gIyArcyBpcyByZXF1aXJlZCB0 byBlbmFibGUgU0hMSUJfUEFUSAotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgOzsKLSsgIGVz YWMKLSsgICMgSFAtVVggcnVucyAqcmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBsaWJyYXJp ZXMgYXJlIG1vZGUgNTU1LgotKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNTU1ICRsaWInCi0r ICA7OwotKwotK2ludGVyaXhbWzMtOV1dKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVl ZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCi0r ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwot KyAgZHluYW1pY19saW5rZXI9J0ludGVyaXggMy54IGxkLnNvLjEgKFBFLCBsaWtlIEVMRiknCi0r ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPW5vCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotK2lyaXg1KiB8 IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rICBjYXNlICRob3N0X29zIGluCi0rICAgIG5vbnN0b3B1 eCopIHZlcnNpb25fdHlwZT1ub25zdG9wdXggOzsKLSsgICAgKikKLSsJaWYgdGVzdCAiJGx0X2N2 X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgotKwkJdmVyc2lvbl90eXBlPWxpbnV4Ci0rCWVsc2UK LSsJCXZlcnNpb25fdHlwZT1pcml4Ci0rCWZpIDs7Ci0rICBlc2FjCi0rICBuZWVkX2xpYl9wcmVm aXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGlyaXg1KiB8IG5v bnN0b3B1eCopCi0rICAgIGxpYnN1ZmY9IHNobGlic3VmZj0KLSsgICAgOzsKLSsgICopCi0rICAg IGNhc2UgJExEIGluICMgbGlidG9vbC5tNCB3aWxsIGFkZCBvbmUgb2YgdGhlc2Ugc3dpdGNoZXMg dG8gTEQKLSsgICAgKi0zMnwqIi0zMiAifCotbWVsZjMyYnNtaXB8KiItbWVsZjMyYnNtaXAgIikK LSsgICAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPTMyLWJpdDs7Ci0rICAgICotbjMy fCoiLW4zMiAifCotbWVsZjMyYm1pcG4zMnwqIi1tZWxmMzJibWlwbjMyICIpCi0rICAgICAgbGli c3VmZj0zMiBzaGxpYnN1ZmY9TjMyIGxpYm1hZ2ljPU4zMjs7Ci0rICAgICotNjR8KiItNjQgInwq LW1lbGY2NGJtaXB8KiItbWVsZjY0Ym1pcCAiKQotKyAgICAgIGxpYnN1ZmY9NjQgc2hsaWJzdWZm PTY0IGxpYm1hZ2ljPTY0LWJpdDs7Ci0rICAgICopIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFn aWM9bmV2ZXItbWF0Y2g7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICBlc2FjCi0rICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUlkke3NobGlic3VmZn1fUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPW5vCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJz dWZmfSAvbGliJHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGlic3VmZn0iCi0rICBzeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9Igot KyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLSsjIE5vIHNoYXJlZCBsaWIgc3Vw cG9ydCBmb3IgTGludXggb2xkbGQsIGFvdXQsIG9yIGNvZmYuCi0rbGludXgqb2xkbGQqIHwgbGlu dXgqYW91dCogfCBsaW51eCpjb2ZmKikKLSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotKwot KyMgVGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KLStsaW51eCogfCBrKmJzZCotZ251KQotKyAgdmVy c2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1u bwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJwotKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIg bGRjb25maWcgLW4gJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0r ICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICMgU29tZSBiaW51dGlscyBsZCBh cmUgcGF0Y2hlZCB0byBzZXQgRFRfUlVOUEFUSAotKyAgc2F2ZV9MREZMQUdTPSRMREZMQUdTCi0r ICBzYXZlX2xpYmRpcj0kbGliZGlyCi0rICBldmFsICJsaWJkaXI9L2Zvbzsgd2w9XCIkX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSlcIjsgXAotKyAgICAgICBMREZMQUdTPVwiXCRM REZMQUdTICRfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKVwiIgotKyAg QUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbXSxbXSldLAotKyAgICBbQVNfSUYoWyAo JE9CSkRVTVAgLXAgY29uZnRlc3QkYWNfZXhlZXh0KSAyPi9kZXYvbnVsbCB8IGdyZXAgIlJVTlBB VEguKiRsaWJkaXIiID4vZGV2L251bGxdLAotKyAgICAgICBbc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPXllc10pXSkKLSsgIExERkxBR1M9JHNhdmVfTERGTEFHUwotKyAgbGliZGlyPSRzYXZl X2xpYmRpcgotKwotKyAgIyBUaGlzIGltcGxpZXMgbm8gZmFzdF9pbnN0YWxsLCB3aGljaCBpcyB1 bmFjY2VwdGFibGUuCi0rICAjIFNvbWUgcmV3b3JrIHdpbGwgYmUgbmVlZGVkIHRvIGFsbG93IGZv ciBmYXN0X2luc3RhbGwKLSsgICMgYmVmb3JlIHRoaXMgY2FuIGJlIGVuYWJsZWQuCi0rICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCi0rCi0rICAjIEFkZCBBQkktc3BlY2lmaWMgZGlyZWN0b3JpZXMg dG8gdGhlIHN5c3RlbSBsaWJyYXJ5IHBhdGguCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl Yz0iL2xpYjY0IC91c3IvbGliNjQgL2xpYiAvdXNyL2xpYiIKLSsKLSsgICMgQXBwZW5kIGxkLnNv LmNvbmYgY29udGVudHMgdG8gdGhlIHNlYXJjaCBwYXRoCi0rICBpZiB0ZXN0IC1mIC9ldGMvbGQu c28uY29uZjsgdGhlbgotKyAgICBsdF9sZF9leHRyYT1gYXdrICcvXmluY2x1ZGUgLyB7IHN5c3Rl bShzcHJpbnRmKCJjZCAvZXRjOyBjYXQgJXMgMj4vZGV2L251bGwiLCBcWyRdMikpOyBza2lwID0g MTsgfSB7IGlmICghc2tpcCkgcHJpbnQgXFskXTA7IHNraXAgPSAwOyB9JyA8IC9ldGMvbGQuc28u Y29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15bCSBdKmh3Y2FwWwkgXS9kO3MvWzosCV0vIC9nO3Mv PVtePV0qJC8vO3MvPVtePSBdKiAvIC9nOy9eJC9kJyB8IHRyICdcbicgJyAnYAotKyAgICBzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjICRsdF9s ZF9leHRyYSIKLSsgIGZpCi0rCi0rICAjIFdlIHVzZWQgdG8gdGVzdCBmb3IgL2xpYi9sZC5zby4x IGFuZCBkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMgb24KLSsgICMgcG93ZXJwYywgYmVjYXVzZSBN a0xpbnV4IG9ubHkgc3VwcG9ydGVkIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB0aGUKLSsgICMgR05V IGR5bmFtaWMgbGlua2VyLiAgU2luY2UgdGhpcyB3YXMgYnJva2VuIHdpdGggY3Jvc3MgY29tcGls ZXJzLAotKyAgIyBtb3N0IHBvd2VycGMtbGludXggYm94ZXMgc3VwcG9ydCBkeW5hbWljIGxpbmtp bmcgdGhlc2UgZGF5cyBhbmQKLSsgICMgcGVvcGxlIGNhbiBhbHdheXMgLS1kaXNhYmxlLXNoYXJl ZCwgdGhlIHRlc3Qgd2FzIHJlbW92ZWQsIGFuZCB3ZQotKyAgIyBhc3N1bWUgdGhlIEdOVS9MaW51 eCBkeW5hbWljIGxpbmtlciBpcyBpbiB1c2UuCi0rICBkeW5hbWljX2xpbmtlcj0nR05VL0xpbnV4 IGxkLnNvJwotKyAgOzsKLSsKLStuZXRic2QqKQotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBu ZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgaWYgZWNobyBfX0VMRl9f IHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsgICAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsgICAgZmluaXNoX2NtZHM9J1BB VEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKLSsgICAgZHluYW1pY19saW5r ZXI9J05ldEJTRCAoYS5vdXQpIGxkLnNvJwotKyAgZWxzZQotKyAgICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9Jwot KyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JwotKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIGxkLmVsZl9zbycKLSsgIGZpCi0rICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLStuZXdzb3M2KQotKyAg dmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICA7Owot KwotKypudG8qIHwgKnFueCopCi0rICB2ZXJzaW9uX3R5cGU9cW54Ci0rICBuZWVkX2xpYl9wcmVm aXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwot KyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgZHluYW1pY19saW5rZXI9J2xkcW54LnNvJwot KyAgOzsKLSsKLStvcGVuYnNkKikKLSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgc3lzX2xpYl9k bHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAj IFNvbWUgb2xkZXIgdmVyc2lvbnMgb2YgT3BlbkJTRCAoMy4zIGF0IGxlYXN0KSAqZG8qIG5lZWQg dmVyc2lvbmVkIGxpYnMuCi0rICBjYXNlICRob3N0X29zIGluCi0rICAgIG9wZW5ic2QzLjMgfCBv cGVuYnNkMy4zLiopCW5lZWRfdmVyc2lvbj15ZXMgOzsKLSsgICAgKikJCQkJbmVlZF92ZXJzaW9u PW5vICA7OwotKyAgZXNhYwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCcKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRs aWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgaWYgdGVzdCAteiAi YGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0 X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgotKyAgICBjYXNlICRo b3N0X29zIGluCi0rICAgICAgb3BlbmJzZDIuW1s4OV1dIHwgb3BlbmJzZDIuW1s4OV1dLiopCi0r CXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKwk7OwotKyAgICAgICopCi0rCXNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsJOzsKLSsgICAgICBlc2FjCi0rICBlbHNlCi0r ICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGZpCi0rICA7OwotKwotK29z MiopCi0rICBsaWJuYW1lX3NwZWM9JyRuYW1lJwotKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCi0rICBu ZWVkX2xpYl9wcmVmaXg9bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJl ZF9leHR9ICRsaWJuYW1lLmEnCi0rICBkeW5hbWljX2xpbmtlcj0nT1MvMiBsZC5leGUnCi0rICBz aGxpYnBhdGhfdmFyPUxJQlBBVEgKLSsgIDs7Ci0rCi0rb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQot KyAgdmVyc2lvbl90eXBlPW9zZgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNp b249bm8KLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI Ci0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Ivc2hsaWIgL3Vzci9jY3MvbGliIC91 c3IvbGliL2NtcGxycy9jYyAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiAvdmFyL3NobGliIgotKyAg c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCi0r ICA7OwotKwotK3Jkb3MqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rCi0rc29sYXJp cyopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVl ZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgaGFyZGNvZGVf aW50b19saWJzPXllcwotKyAgIyBsZGQgY29tcGxhaW5zIHVubGVzcyBsaWJyYXJpZXMgYXJlIGV4 ZWN1dGFibGUKLSsgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kICt4ICRsaWInCi0rICA7OwotKwot K3N1bm9zNCopCi0rICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi91c3Iv ZXRjIiBsZGNvbmZpZyAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK LSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2du dV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBmaQotKyAgbmVl ZF92ZXJzaW9uPXllcwotKyAgOzsKLSsKLStzeXN2NCB8IHN5c3Y0LjMqKQotKyAgdmVyc2lvbl90 eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAotKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KLSsgICAgc25pKQotKyAgICAgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAg IHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICi0rICAgICAgOzsKLSsgICAgc2llbWVucykKLSsgICAg ICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICA7OwotKyAgICBtb3Rvcm9sYSkKLSsgICAgICBu ZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICBuZWVkX3ZlcnNpb249bm8KLSsgICAgICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 Jy9saWIgL3Vzci9saWIgL3Vzci9jY3MvbGliJwotKyAgICAgIDs7Ci0rICBlc2FjCi0rICA7Owot KwotK3N5c3Y0Kk1QKikKLSsgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KLSsgICAgdmVyc2lv bl90eXBlPWxpbnV4Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9l eHR9LiR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvciAkbGlibmFtZSR7c2hh cmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9y JwotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgZmkKLSsgIDs7Ci0rCi0r c3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5 c3Y0KnV3MiopCi0rICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC1lbGYKLSsgIG5lZWRfbGliX3ByZWZp eD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgaGFy ZGNvZGVfaW50b19saWJzPXllcwotKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhl bgotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC91c3IvZ251 L2xpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIgL2xpYicKLSsgIGVsc2UKLSsgICAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPScvdXNyL2Njcy9saWIgL3Vzci9saWInCi0rICAgIGNhc2UgJGhvc3Rf b3MgaW4KLSsgICAgICBzY28zLjJ2NSopCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL2xpYiIKLSsJOzsKLSsgICAgZXNhYwotKyAg ZmkKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xpYicKLSsgIDs7Ci0rCi0r dHBmKikKLSsgICMgVFBGIGlzIGEgY3Jvc3MtdGFyZ2V0IG9ubHkuICBQcmVmZXJyZWQgY3Jvc3Mt aG9zdCA9IEdOVS9MaW51eC4KLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJl Zml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwot KyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLSt1dHM0KikKLSsgIHZlcnNpb25f dHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ X1BBVEgKLSsgIDs7Ci0rCi0rKikKLSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotK2VzYWMK LStBQ19NU0dfUkVTVUxUKFskZHluYW1pY19saW5rZXJdKQotK3Rlc3QgIiRkeW5hbWljX2xpbmtl ciIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCi0rCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9y ZWxpbms9IlBBVEggJHNobGlicGF0aF92YXIgJHJ1bnBhdGhfdmFyIgotK2lmIHRlc3QgIiRHQ0Mi ID0geWVzOyB0aGVuCi0rICB2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iJHZhcmlhYmxlc19z YXZlZF9mb3JfcmVsaW5rIEdDQ19FWEVDX1BSRUZJWCBDT01QSUxFUl9QQVRIIExJQlJBUllfUEFU SCIKLStmaQotKwotK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjK3Nl dH0iID0gc2V0OyB0aGVuCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNf bGliX3NlYXJjaF9wYXRoX3NwZWMiCi0rZmkKLStpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCi0rICBzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYz0iJGx0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIgotK2ZpCi0rCi0rX0xU X0RFQ0woW10sIFt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGlua10sIFsxXSwKLSsgICAgW1Zhcmlh YmxlcyB3aG9zZSB2YWx1ZXMgc2hvdWxkIGJlIHNhdmVkIGluIGxpYnRvb2wgd3JhcHBlciBzY3Jp cHRzIGFuZAotKyAgICByZXN0b3JlZCBhdCBsaW5rIHRpbWVdKQotK19MVF9ERUNMKFtdLCBbbmVl ZF9saWJfcHJlZml4XSwgWzBdLAotKyAgICBbRG8gd2UgbmVlZCB0aGUgImxpYiIgcHJlZml4IGZv ciBtb2R1bGVzP10pCi0rX0xUX0RFQ0woW10sIFtuZWVkX3ZlcnNpb25dLCBbMF0sIFtEbyB3ZSBu ZWVkIGEgdmVyc2lvbiBmb3IgbGlicmFyaWVzP10pCi0rX0xUX0RFQ0woW10sIFt2ZXJzaW9uX3R5 cGVdLCBbMF0sIFtMaWJyYXJ5IHZlcnNpb25pbmcgdHlwZV0pCi0rX0xUX0RFQ0woW10sIFtydW5w YXRoX3Zhcl0sIFswXSwgIFtTaGFyZWQgbGlicmFyeSBydW50aW1lIHBhdGggdmFyaWFibGVdKQot K19MVF9ERUNMKFtdLCBbc2hsaWJwYXRoX3Zhcl0sIFswXSxbU2hhcmVkIGxpYnJhcnkgcGF0aCB2 YXJpYWJsZV0pCi0rX0xUX0RFQ0woW10sIFtzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGhdLCBb MF0sCi0rICAgIFtJcyBzaGxpYnBhdGggc2VhcmNoZWQgYmVmb3JlIHRoZSBoYXJkLWNvZGVkIGxp YnJhcnkgc2VhcmNoIHBhdGg/XSkKLStfTFRfREVDTChbXSwgW2xpYm5hbWVfc3BlY10sIFsxXSwg W0Zvcm1hdCBvZiBsaWJyYXJ5IG5hbWUgcHJlZml4XSkKLStfTFRfREVDTChbXSwgW2xpYnJhcnlf bmFtZXNfc3BlY10sIFsxXSwKLSsgICAgW1tMaXN0IG9mIGFyY2hpdmUgbmFtZXMuICBGaXJzdCBu YW1lIGlzIHRoZSByZWFsIG9uZSwgdGhlIHJlc3QgYXJlIGxpbmtzLgotKyAgICBUaGUgbGFzdCBu YW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2VyIGZpbmRzIHdpdGggLWxOQU1FXV0pCi0rX0xU X0RFQ0woW10sIFtzb25hbWVfc3BlY10sIFsxXSwKLSsgICAgW1tUaGUgY29kZWQgbmFtZSBvZiB0 aGUgbGlicmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhlIHJlYWwgbmFtZV1dKQotK19MVF9ERUNM KFtdLCBbcG9zdGluc3RhbGxfY21kc10sIFsyXSwKLSsgICAgW0NvbW1hbmQgdG8gdXNlIGFmdGVy IGluc3RhbGxhdGlvbiBvZiBhIHNoYXJlZCBhcmNoaXZlXSkKLStfTFRfREVDTChbXSwgW3Bvc3R1 bmluc3RhbGxfY21kc10sIFsyXSwKLSsgICAgW0NvbW1hbmQgdG8gdXNlIGFmdGVyIHVuaW5zdGFs bGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmVdKQotK19MVF9ERUNMKFtdLCBbZmluaXNoX2NtZHNd LCBbMl0sCi0rICAgIFtDb21tYW5kcyB1c2VkIHRvIGZpbmlzaCBhIGxpYnRvb2wgbGlicmFyeSBp bnN0YWxsYXRpb24gaW4gYSBkaXJlY3RvcnldKQotK19MVF9ERUNMKFtdLCBbZmluaXNoX2V2YWxd LCBbMV0sCi0rICAgIFtbQXMgImZpbmlzaF9jbWRzIiwgZXhjZXB0IGEgc2luZ2xlIHNjcmlwdCBm cmFnbWVudCB0byBiZSBldmFsZWQgYnV0Ci0rICAgIG5vdCBzaG93bl1dKQotK19MVF9ERUNMKFtd LCBbaGFyZGNvZGVfaW50b19saWJzXSwgWzBdLAotKyAgICBbV2hldGhlciB3ZSBzaG91bGQgaGFy ZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIGxpYnJhcmllc10pCi0rX0xUX0RFQ0woW10sIFtzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWNdLCBbMl0sCi0rICAgIFtDb21waWxlLXRpbWUgc3lzdGVtIHNl YXJjaCBwYXRoIGZvciBsaWJyYXJpZXNdKQotK19MVF9ERUNMKFtdLCBbc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWNdLCBbMl0sCi0rICAgIFtSdW4tdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9y IGxpYnJhcmllc10pCi0rXSkjIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIKLSsKLSsKLSsjIF9MVF9Q QVRIX1RPT0xfUFJFRklYKFRPT0wpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMg ZmluZCBhIGZpbGUgcHJvZ3JhbSB3aGljaCBjYW4gcmVjb2duaXplIHNoYXJlZCBsaWJyYXJ5Ci0r QUNfREVGVU4oW19MVF9QQVRIX1RPT0xfUFJFRklYXSwKLStbbTRfcmVxdWlyZShbX0xUX0RFQ0xf RUdSRVBdKWRubAotK0FDX01TR19DSEVDS0lORyhbZm9yICQxXSkKLStBQ19DQUNIRV9WQUwobHRf Y3ZfcGF0aF9NQUdJQ19DTUQsCi0rW2Nhc2UgJE1BR0lDX0NNRCBpbgotK1tbXFwvKl0gfCAgPzpb XFwvXSpdKQotKyAgbHRfY3ZfcGF0aF9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgotKyAgOzsKLSsqKQotKyAgbHRfc2F2 ZV9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiCi0rICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFU SF9TRVBBUkFUT1IKLStkbmwgJGFjX2R1bW15IGZvcmNlcyBzcGxpdHRpbmcgb24gY29uc3RhbnQg dXNlci1zdXBwbGllZCBwYXRocy4KLStkbmwgUE9TSVguMiB3b3JkIHNwbGl0dGluZyBpcyBkb25l IG9ubHkgb24gdGhlIG91dHB1dCBvZiB3b3JkIGV4cGFuc2lvbnMsCi0rZG5sIG5vdCBldmVyeSB3 b3JkLiAgVGhpcyBjbG9zZXMgYSBsb25nc3RhbmRpbmcgc2ggc2VjdXJpdHkgaG9sZS4KLSsgIGFj X2R1bW15PSJtNF9pZihbJDJdLCAsICRQQVRILCBbJDJdKSIKLSsgIGZvciBhY19kaXIgaW4gJGFj X2R1bW15OyBkbwotKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgdGVzdCAteiAiJGFjX2Rp ciIgJiYgYWNfZGlyPS4KLSsgICAgaWYgdGVzdCAtZiAkYWNfZGlyLyQxOyB0aGVuCi0rICAgICAg bHRfY3ZfcGF0aF9NQUdJQ19DTUQ9IiRhY19kaXIvJDEiCi0rICAgICAgaWYgdGVzdCAtbiAiJGZp bGVfbWFnaWNfdGVzdF9maWxlIjsgdGhlbgotKwljYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBp bgotKwkiZmlsZV9tYWdpYyAiKikKLSsJICBmaWxlX21hZ2ljX3JlZ2V4PWBleHByICIkZGVwbGli c19jaGVja19tZXRob2QiIDogImZpbGVfbWFnaWMgXCguKlwpImAKLSsJICBNQUdJQ19DTUQ9IiRs dF9jdl9wYXRoX01BR0lDX0NNRCIKLSsJICBpZiBldmFsICRmaWxlX21hZ2ljX2NtZCBcJGZpbGVf bWFnaWNfdGVzdF9maWxlIDI+IC9kZXYvbnVsbCB8Ci0rCSAgICAkRUdSRVAgIiRmaWxlX21hZ2lj X3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgotKwkgICAgOgotKwkgIGVsc2UKLSsJICAgIGNhdCA8 PF9MVF9FT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiB0aGUgY29tbWFuZCBsaWJ0b29sIHVzZXMg dG8gZGV0ZWN0IHNoYXJlZCBsaWJyYXJpZXMsCi0rKioqICRmaWxlX21hZ2ljX2NtZCwgcHJvZHVj ZXMgb3V0cHV0IHRoYXQgbGlidG9vbCBjYW5ub3QgcmVjb2duaXplLgotKyoqKiBUaGUgcmVzdWx0 IGlzIHRoYXQgbGlidG9vbCBtYXkgZmFpbCB0byByZWNvZ25pemUgc2hhcmVkIGxpYnJhcmllcwot KyoqKiBhcyBzdWNoLiAgVGhpcyB3aWxsIGFmZmVjdCB0aGUgY3JlYXRpb24gb2YgbGlidG9vbCBs aWJyYXJpZXMgdGhhdAotKyoqKiBkZXBlbmQgb24gc2hhcmVkIGxpYnJhcmllcywgYnV0IHByb2dy YW1zIGxpbmtlZCB3aXRoIHN1Y2ggbGlidG9vbAotKyoqKiBsaWJyYXJpZXMgd2lsbCB3b3JrIHJl Z2FyZGxlc3Mgb2YgdGhpcyBwcm9ibGVtLiAgTmV2ZXJ0aGVsZXNzLCB5b3UKLSsqKiogbWF5IHdh bnQgdG8gcmVwb3J0IHRoZSBwcm9ibGVtIHRvIHlvdXIgc3lzdGVtIG1hbmFnZXIgYW5kL29yIHRv Ci0rKioqIGJ1Zy1saWJ0b29sQGdudS5vcmcKLSsKLStfTFRfRU9GCi0rCSAgZmkgOzsKLSsJZXNh YwotKyAgICAgIGZpCi0rICAgICAgYnJlYWsKLSsgICAgZmkKLSsgIGRvbmUKLSsgIElGUz0iJGx0 X3NhdmVfaWZzIgotKyAgTUFHSUNfQ01EPSIkbHRfc2F2ZV9NQUdJQ19DTUQiCi0rICA7OwotK2Vz YWNdKQotK01BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgotK2lmIHRlc3QgLW4gIiRN QUdJQ19DTUQiOyB0aGVuCi0rICBBQ19NU0dfUkVTVUxUKCRNQUdJQ19DTUQpCi0rZWxzZQotKyAg QUNfTVNHX1JFU1VMVChubykKLStmaQotK19MVF9ERUNMKFtdLCBbTUFHSUNfQ01EXSwgWzBdLAot KwkgW1VzZWQgdG8gZXhhbWluZSBsaWJyYXJpZXMgd2hlbiBmaWxlX21hZ2ljX2NtZCBiZWdpbnMg d2l0aCAiZmlsZSJdKWRubAotK10pIyBfTFRfUEFUSF9UT09MX1BSRUZJWAotKwotKyMgT2xkIG5h bWU6Ci0rQVVfQUxJQVMoW0FDX1BBVEhfVE9PTF9QUkVGSVhdLCBbX0xUX1BBVEhfVE9PTF9QUkVG SVhdKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNf REVGVU4oW0FDX1BBVEhfVE9PTF9QUkVGSVhdLCBbXSkKLSsKLSsKLSsjIF9MVF9QQVRIX01BR0lD Ci0rIyAtLS0tLS0tLS0tLS0tLQotKyMgZmluZCBhIGZpbGUgcHJvZ3JhbSB3aGljaCBjYW4gcmVj b2duaXplIGEgc2hhcmVkIGxpYnJhcnkKLSttNF9kZWZ1bihbX0xUX1BBVEhfTUFHSUNdLAotK1tf TFRfUEFUSF9UT09MX1BSRUZJWCgke2FjX3Rvb2xfcHJlZml4fWZpbGUsIC91c3IvYmluJFBBVEhf U0VQQVJBVE9SJFBBVEgpCi0raWYgdGVzdCAteiAiJGx0X2N2X3BhdGhfTUFHSUNfQ01EIjsgdGhl bgotKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgICBfTFRfUEFUSF9U T09MX1BSRUZJWChmaWxlLCAvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRIKQotKyAgZWxzZQot KyAgICBNQUdJQ19DTUQ9OgotKyAgZmkKLStmaQotK10pIyBfTFRfUEFUSF9NQUdJQwotKwotKwot KyMgTFRfUEFUSF9MRAotKyMgLS0tLS0tLS0tLQotKyMgZmluZCB0aGUgcGF0aG5hbWUgdG8gdGhl IEdOVSBvciBub24tR05VIGxpbmtlcgotK0FDX0RFRlVOKFtMVF9QQVRIX0xEXSwKLStbQUNfUkVR VUlSRShbQUNfUFJPR19DQ10pZG5sCi0rQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRu bAotK0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9CVUlMRF0pZG5sCi0rbTRfcmVxdWlyZShbX0xU X0RFQ0xfU0VEXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCi0rCi0rQUNf QVJHX1dJVEgoW2dudS1sZF0sCi0rICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLWdudS1sZF0s Ci0rCVthc3N1bWUgdGhlIEMgY29tcGlsZXIgdXNlcyBHTlUgbGQgQDw6QGRlZmF1bHQ9bm9AOj5A XSldLAotKyAgICBbdGVzdCAiJHdpdGh2YWwiID0gbm8gfHwgd2l0aF9nbnVfbGQ9eWVzXSwKLSsg ICAgW3dpdGhfZ251X2xkPW5vXSlkbmwKLSsKLSthY19wcm9nPWxkCi0raWYgdGVzdCAiJEdDQyIg PSB5ZXM7IHRoZW4KLSsgICMgQ2hlY2sgaWYgZ2NjIC1wcmludC1wcm9nLW5hbWU9bGQgZ2l2ZXMg YSBwYXRoLgotKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgbGQgdXNlZCBieSAkQ0NdKQotKyAgY2Fz ZSAkaG9zdCBpbgotKyAgKi0qLW1pbmd3KikKLSsgICAgIyBnY2MgbGVhdmVzIGEgdHJhaWxpbmcg Y2FycmlhZ2UgcmV0dXJuIHdoaWNoIHVwc2V0cyBtaW5ndwotKyAgICBhY19wcm9nPWAoJENDIC1w cmludC1wcm9nLW5hbWU9bGQpIDI+JjUgfCB0ciAtZCAnXDAxNSdgIDs7Ci0rICAqKQotKyAgICBh Y19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjVgIDs7Ci0rICBlc2FjCi0rICBj YXNlICRhY19wcm9nIGluCi0rICAgICMgQWNjZXB0IGFic29sdXRlIHBhdGhzLgotKyAgICBbW1xc L11dKiB8ID86W1tcXC9dXSopCi0rICAgICAgcmVfZGlyZWx0PScvW1teL11dW1teL11dKi9cLlwu LycKLSsgICAgICAjIENhbm9uaWNhbGl6ZSB0aGUgcGF0aG5hbWUgb2YgbGQKLSsgICAgICBhY19w cm9nPWAkRUNITyAiJGFjX3Byb2cifCAkU0VEICdzJVxcXFwlLyVnJ2AKLSsgICAgICB3aGlsZSAk RUNITyAiJGFjX3Byb2ciIHwgJEdSRVAgIiRyZV9kaXJlbHQiID4gL2Rldi9udWxsIDI+JjE7IGRv Ci0rCWFjX3Byb2c9YCRFQ0hPICRhY19wcm9nfCAkU0VEICJzJSRyZV9kaXJlbHQlLyUiYAotKyAg ICAgIGRvbmUKLSsgICAgICB0ZXN0IC16ICIkTEQiICYmIExEPSIkYWNfcHJvZyIKLSsgICAgICA7 OwotKyAgIiIpCi0rICAgICMgSWYgaXQgZmFpbHMsIHRoZW4gcHJldGVuZCB3ZSBhcmVuJ3QgdXNp bmcgR0NDLgotKyAgICBhY19wcm9nPWxkCi0rICAgIDs7Ci0rICAqKQotKyAgICAjIElmIGl0IGlz IHJlbGF0aXZlLCB0aGVuIHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBBVEguCi0rICAgIHdp dGhfZ251X2xkPXVua25vd24KLSsgICAgOzsKLSsgIGVzYWMKLStlbGlmIHRlc3QgIiR3aXRoX2du dV9sZCIgPSB5ZXM7IHRoZW4KLSsgIEFDX01TR19DSEVDS0lORyhbZm9yIEdOVSBsZF0pCi0rZWxz ZQotKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3Igbm9uLUdOVSBsZF0pCi0rZmkKLStBQ19DQUNIRV9W QUwobHRfY3ZfcGF0aF9MRCwKLStbaWYgdGVzdCAteiAiJExEIjsgdGhlbgotKyAgbHRfc2F2ZV9p ZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rICBmb3IgYWNfZGlyIGluICRQQVRIOyBk bwotKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNf ZGlyPS4KLSsgICAgaWYgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyIgfHwgdGVzdCAtZiAiJGFj X2Rpci8kYWNfcHJvZyRhY19leGVleHQiOyB0aGVuCi0rICAgICAgbHRfY3ZfcGF0aF9MRD0iJGFj X2Rpci8kYWNfcHJvZyIKLSsgICAgICAjIENoZWNrIHRvIHNlZSBpZiB0aGUgcHJvZ3JhbSBpcyBH TlUgbGQuICBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24sCi0rICAgICAgIyBidXQgYXBwYXJlbnRs eSBzb21lIHZhcmlhbnRzIG9mIEdOVSBsZCBvbmx5IGFjY2VwdCAtdi4KLSsgICAgICAjIEJyZWFr IG9ubHkgaWYgaXQgd2FzIHRoZSBHTlUvbm9uLUdOVSBsZCB0aGF0IHdlIHByZWZlci4KLSsgICAg ICBjYXNlIGAiJGx0X2N2X3BhdGhfTEQiIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KLSsgICAgICAq R05VKiB8ICond2l0aCBCRkQnKikKLSsJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSBubyAmJiBicmVh awotKwk7OwotKyAgICAgICopCi0rCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0geWVzICYmIGJyZWFr Ci0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBmaQotKyAgZG9uZQotKyAgSUZTPSIkbHRfc2F2ZV9p ZnMiCi0rZWxzZQotKyAgbHRfY3ZfcGF0aF9MRD0iJExEIiAjIExldCB0aGUgdXNlciBvdmVycmlk ZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KLStmaV0pCi0rTEQ9IiRsdF9jdl9wYXRoX0xEIgotK2lm IHRlc3QgLW4gIiRMRCI7IHRoZW4KLSsgIEFDX01TR19SRVNVTFQoJExEKQotK2Vsc2UKLSsgIEFD X01TR19SRVNVTFQobm8pCi0rZmkKLSt0ZXN0IC16ICIkTEQiICYmIEFDX01TR19FUlJPUihbbm8g YWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEhdKQotK19MVF9QQVRIX0xEX0dOVQotK0FDX1NV QlNUKFtMRF0pCi0rCi0rX0xUX1RBR0RFQ0woW10sIFtMRF0sIFsxXSwgW1RoZSBsaW5rZXIgdXNl ZCB0byBidWlsZCBsaWJyYXJpZXNdKQotK10pIyBMVF9QQVRIX0xECi0rCi0rIyBPbGQgbmFtZXM6 Ci0rQVVfQUxJQVMoW0FNX1BST0dfTERdLCBbTFRfUEFUSF9MRF0pCi0rQVVfQUxJQVMoW0FDX1BS T0dfTERdLCBbTFRfUEFUSF9MRF0pCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRp YmlsaXR5OgotK2RubCBBQ19ERUZVTihbQU1fUFJPR19MRF0sIFtdKQotK2RubCBBQ19ERUZVTihb QUNfUFJPR19MRF0sIFtdKQotKwotKwotKyMgX0xUX1BBVEhfTERfR05VCi0rIy0gLS0tLS0tLS0t LS0tLS0KLSttNF9kZWZ1bihbX0xUX1BBVEhfTERfR05VXSwKLStbQUNfQ0FDSEVfQ0hFQ0soW2lm IHRoZSBsaW5rZXIgKCRMRCkgaXMgR05VIGxkXSwgbHRfY3ZfcHJvZ19nbnVfbGQsCi0rWyMgSSdk IHJhdGhlciB1c2UgLS12ZXJzaW9uIGhlcmUsIGJ1dCBhcHBhcmVudGx5IHNvbWUgR05VIGxkcyBv bmx5IGFjY2VwdCAtdi4KLStjYXNlIGAkTEQgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgotKypHTlUq IHwgKid3aXRoIEJGRCcqKQotKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9eWVzCi0rICA7OwotKyopCi0r ICBsdF9jdl9wcm9nX2dudV9sZD1ubwotKyAgOzsKLStlc2FjXSkKLSt3aXRoX2dudV9sZD0kbHRf Y3ZfcHJvZ19nbnVfbGQKLStdKSMgX0xUX1BBVEhfTERfR05VCi0rCi0rCi0rIyBfTFRfQ01EX1JF TE9BRAotKyMgLS0tLS0tLS0tLS0tLS0KLSsjIGZpbmQgcmVsb2FkIGZsYWcgZm9yIGxpbmtlcgot KyMgICAtLSBQT1JUTUUgU29tZSBsaW5rZXJzIG1heSBuZWVkIGEgZGlmZmVyZW50IHJlbG9hZCBm bGFnLgotK200X2RlZnVuKFtfTFRfQ01EX1JFTE9BRF0sCi0rW0FDX0NBQ0hFX0NIRUNLKFtmb3Ig JExEIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZpbGVzXSwKLSsgIGx0X2N2X2xkX3JlbG9hZF9m bGFnLAotKyAgW2x0X2N2X2xkX3JlbG9hZF9mbGFnPSctciddKQotK3JlbG9hZF9mbGFnPSRsdF9j dl9sZF9yZWxvYWRfZmxhZwotK2Nhc2UgJHJlbG9hZF9mbGFnIGluCi0rIiIgfCAiICIqKSA7Owot KyopIHJlbG9hZF9mbGFnPSIgJHJlbG9hZF9mbGFnIiA7OwotK2VzYWMKLStyZWxvYWRfY21kcz0n JExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0rY2FzZSAkaG9zdF9vcyBp bgotKyAgZGFyd2luKikKLSsgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICAgICBy ZWxvYWRfY21kcz0nJExUQ0MgJExUQ0ZMQUdTIC1ub3N0ZGxpYiAke3dsfS1yIC1vICRvdXRwdXQk cmVsb2FkX29ianMnCi0rICAgIGVsc2UKLSsgICAgICByZWxvYWRfY21kcz0nJExEJHJlbG9hZF9m bGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0rICAgIGZpCi0rICAgIDs7Ci0rZXNhYwotK19M VF9ERUNMKFtdLCBbcmVsb2FkX2ZsYWddLCBbMV0sIFtIb3cgdG8gY3JlYXRlIHJlbG9hZGFibGUg b2JqZWN0IGZpbGVzXSlkbmwKLStfTFRfREVDTChbXSwgW3JlbG9hZF9jbWRzXSwgWzJdKWRubAot K10pIyBfTFRfQ01EX1JFTE9BRAotKwotKwotKyMgX0xUX0NIRUNLX01BR0lDX01FVEhPRAotKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgaG93IHRvIGNoZWNrIGZvciBsaWJyYXJ5IGRlcGVu ZGVuY2llcwotKyMgIC0tIFBPUlRNRSBmaWxsIGluIHdpdGggdGhlIGR5bmFtaWMgbGlicmFyeSBj aGFyYWN0ZXJpc3RpY3MKLSttNF9kZWZ1bihbX0xUX0NIRUNLX01BR0lDX01FVEhPRF0sCi0rW200 X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSkKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9PQkpEVU1Q XSkKLStBQ19DQUNIRV9DSEVDSyhbaG93IHRvIHJlY29nbml6ZSBkZXBlbmRlbnQgbGlicmFyaWVz XSwKLStsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZCwKLStbbHRfY3ZfZmlsZV9tYWdpY19jbWQ9 JyRNQUdJQ19DTUQnCi0rbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9Ci0rbHRfY3ZfZGVwbGli c19jaGVja19tZXRob2Q9J3Vua25vd24nCi0rIyBOZWVkIHRvIHNldCB0aGUgcHJlY2VkaW5nIHZh cmlhYmxlIG9uIGFsbCBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0Ci0rIyBpbnRlcmxpYnJhcnkgZGVw ZW5kZW5jaWVzLgotKyMgJ25vbmUnIC0tIGRlcGVuZGVuY2llcyBub3Qgc3VwcG9ydGVkLgotKyMg YHVua25vd24nIC0tIHNhbWUgYXMgbm9uZSwgYnV0IGRvY3VtZW50cyB0aGF0IHdlIHJlYWxseSBk b24ndCBrbm93LgotKyMgJ3Bhc3NfYWxsJyAtLSBhbGwgZGVwZW5kZW5jaWVzIHBhc3NlZCB3aXRo IG5vIGNoZWNrcy4KLSsjICd0ZXN0X2NvbXBpbGUnIC0tIGNoZWNrIGJ5IG1ha2luZyB0ZXN0IHBy b2dyYW0uCi0rIyAnZmlsZV9tYWdpYyBbW3JlZ2V4XV0nIC0tIGNoZWNrIGJ5IGxvb2tpbmcgZm9y IGZpbGVzIGluIGxpYnJhcnkgcGF0aAotKyMgd2hpY2ggcmVzcG9uZHMgdG8gdGhlICRmaWxlX21h Z2ljX2NtZCB3aXRoIGEgZ2l2ZW4gZXh0ZW5kZWQgcmVnZXguCi0rIyBJZiB5b3UgaGF2ZSBgZmls ZScgb3IgZXF1aXZhbGVudCBvbiB5b3VyIHN5c3RlbSBhbmQgeW91J3JlIG5vdCBzdXJlCi0rIyB3 aGV0aGVyIGBwYXNzX2FsbCcgd2lsbCAqYWx3YXlzKiB3b3JrLCB5b3UgcHJvYmFibHkgd2FudCB0 aGlzIG9uZS4KLSsKLStjYXNlICRob3N0X29zIGluCi0rYWl4W1s0LTldXSopCi0rICBsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStiZW9zKikKLSsgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK2JzZGlbWzQ1XV0qKQot KyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAt OV1dKi1iaXQgW1tNTF1dU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIpJwotKyAgbHRfY3Zf ZmlsZV9tYWdpY19jbWQ9Jy91c3IvYmluL2ZpbGUgLUwnCi0rICBsdF9jdl9maWxlX21hZ2ljX3Rl c3RfZmlsZT0vc2hsaWIvbGliYy5zbwotKyAgOzsKLSsKLStjeWd3aW4qKQotKyAgIyBmdW5jX3dp bjMyX2xpYmlkIGlzIGEgc2hlbGwgZnVuY3Rpb24gZGVmaW5lZCBpbiBsdG1haW4uc2gKLSsgIGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBpbXBvcnR8 Xng4NiBETEwnCi0rICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nZnVuY193aW4zMl9saWJpZCcKLSsg IDs7Ci0rCi0rbWluZ3cqIHwgcHczMiopCi0rICAjIEJhc2UgTVNZUy9NaW5HVyBkbyBub3QgcHJv dmlkZSB0aGUgJ2ZpbGUnIGNvbW1hbmQgbmVlZGVkIGJ5Ci0rICAjIGZ1bmNfd2luMzJfbGliaWQg c2hlbGwgZnVuY3Rpb24sIHNvIHVzZSBhIHdlYWtlciB0ZXN0IGJhc2VkIG9uICdvYmpkdW1wJywK LSsgICMgdW5sZXNzIHdlIGZpbmQgJ2ZpbGUnLCBmb3IgZXhhbXBsZSBiZWNhdXNlIHdlIGFyZSBj cm9zcy1jb21waWxpbmcuCi0rICBpZiAoIGZpbGUgLyApID4vZGV2L251bGwgMj4mMTsgdGhlbgot KyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBeeDg2IGFyY2hpdmUg aW1wb3J0fF54ODYgRExMJwotKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nZnVuY193aW4zMl9s aWJpZCcKLSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFn aWMgZmlsZSBmb3JtYXQgcGVpKi1pMzg2KC4qYXJjaGl0ZWN0dXJlOiBpMzg2KT8nCi0rICAgIGx0 X2N2X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKLSsgIGZpCi0rICA7OwotKwotK2NlZ2Nj KQotKyAgIyB1c2UgdGhlIHdlYWtlciB0ZXN0IGJhc2VkIG9uICdvYmpkdW1wJy4gU2VlIG1pbmd3 Ki4KLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0 IHBlLWFybS0uKmxpdHRsZSguKmFyY2hpdGVjdHVyZTogYXJtKT8nCi0rICBsdF9jdl9maWxlX21h Z2ljX2NtZD0nJE9CSkRVTVAgLWYnCi0rICA7OwotKwotK2RhcndpbiogfCByaGFwc29keSopCi0r ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStmcmVlYnNk KiB8IGRyYWdvbmZseSopCi0rICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9f RUxGX18gPiAvZGV2L251bGw7IHRoZW4KLSsgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgaSo4 NiApCi0rICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHRoZSBwcmVzZW5jZSBvZiBPcGVuQlNEIGhl cmUgd2FzIGEgbWlzdGFrZS4KLSsgICAgICAjIExldCdzIGFjY2VwdCBib3RoIG9mIHRoZW0gdW50 aWwgdGhpcyBpcyBjbGVhcmVkIHVwLgotKyAgICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9k PSdmaWxlX21hZ2ljIChGcmVlQlNEfE9wZW5CU0R8RHJhZ29uRmx5KS9pW1szLTldXTg2IChjb21w YWN0ICk/ZGVtYW5kIHBhZ2VkIHNoYXJlZCBsaWJyYXJ5JwotKyAgICAgIGx0X2N2X2ZpbGVfbWFn aWNfY21kPS91c3IvYmluL2ZpbGUKLSsgICAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1g ZWNobyAvdXNyL2xpYi9saWJjLnNvLipgCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZWxzZQot KyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgZmkKLSsgIDs7Ci0r Ci0rZ251KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7Owot KwotK2hwdXgxMC4yMCogfCBocHV4MTEqKQotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9i aW4vZmlsZQotKyAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgIGlhNjQqKQotKyAgICBsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1tbMC05XV1bWzAtOV1dW1swLTldXXxFTEYt W1swLTldXVtbMC05XV0pIHNoYXJlZCBvYmplY3QgZmlsZSAtIElBNjQnCi0rICAgIGx0X2N2X2Zp bGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2hwdXgzMi9saWJjLnNvCi0rICAgIDs7Ci0rICBo cHBhKjY0KikKLSsgICAgW2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChz WzAtOV1bMC05XVswLTldfEVMRi1bMC05XVswLTldKSBzaGFyZWQgb2JqZWN0IGZpbGUgLSBQQS1S SVNDIFswLTldLlswLTldJ10KLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9s aWIvcGEyMF82NC9saWJjLnNsCi0rICAgIDs7Ci0rICAqKQotKyAgICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1tbMC05XV1bWzAtOV1dW1swLTldXXxQQS1SSVNDW1sw LTldXS5bWzAtOV1dKSBzaGFyZWQgbGlicmFyeScKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0 X2ZpbGU9L3Vzci9saWIvbGliYy5zbAotKyAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLStpbnRl cml4W1szLTldXSopCi0rICAjIFBJQyBjb2RlIGlzIGJyb2tlbiBvbiBJbnRlcml4IDMueCwgdGhh dCdzIHdoeSB8XC5hIG5vdCB8X3BpY1wuYSBoZXJlCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvfFwuYSkkJwotKyAgOzsKLSsKLStp cml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKyAgY2FzZSAkTEQgaW4KLSsgICotMzJ8KiIt MzIgIikgbGlibWFnaWM9MzItYml0OzsKLSsgICotbjMyfCoiLW4zMiAiKSBsaWJtYWdpYz1OMzI7 OwotKyAgKi02NHwqIi02NCAiKSBsaWJtYWdpYz02NC1iaXQ7OwotKyAgKikgbGlibWFnaWM9bmV2 ZXItbWF0Y2g7OwotKyAgZXNhYwotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19h bGwKLSsgIDs7Ci0rCi0rIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgotK2xpbnV4KiB8IGsqYnNk Ki1nbnUpCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsK LStuZXRic2QqKQotKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9f ID4gL2Rldi9udWxsOyB0aGVuCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRj aF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc29cLltbMC05XV0rXC5bWzAtOV1dK3xfcGljXC5hKSQn Ci0rICBlbHNlCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJu IC9saWJbW14vXV0rKFwuc298X3BpY1wuYSkkJwotKyAgZmkKLSsgIDs7Ci0rCi0rbmV3b3M2KikK LSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1sw LTldXSotYml0IFtbTUxdXVNCIChleGVjdXRhYmxlfGR5bmFtaWMgbGliKScKLSsgIGx0X2N2X2Zp bGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxl PS91c3IvbGliL2xpYm5scy5zbwotKyAgOzsKLSsKLSsqbnRvKiB8ICpxbngqKQotKyAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rb3BlbmJzZCopCi0rICBp ZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwg dGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCi0r ICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbW14vXV0r KFwuc29cLltbMC05XV0rXC5bWzAtOV1dK3xcLnNvfF9waWNcLmEpJCcKLSsgIGVsc2UKLSsgICAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5z b1wuW1swLTldXStcLltbMC05XV0rfF9waWNcLmEpJCcKLSsgIGZpCi0rICA7OwotKwotK29zZjMq IHwgb3NmNCogfCBvc2Y1KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxs Ci0rICA7OwotKwotK3Jkb3MqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19h bGwKLSsgIDs7Ci0rCi0rc29sYXJpcyopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1w YXNzX2FsbAotKyAgOzsKLSsKLStzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdh cmUqIHwgT3BlblVOSVgqIHwgc3lzdjQqdXcyKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK3N5c3Y0IHwgc3lzdjQuMyopCi0rICBjYXNlICRob3N0 X3ZlbmRvciBpbgotKyAgbW90b3JvbGEpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9k PSdmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTUxdXVNCIChzaGFyZWQgb2Jq ZWN0fGR5bmFtaWMgbGliKSBNW1swLTldXVtbMC05XV0qIFZlcnNpb24gW1swLTldXScKLSsgICAg bHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9YGVjaG8gL3Vzci9saWIvbGliYy5zbypgCi0rICAg IDs7Ci0rICBuY3IpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0r ICAgIDs7Ci0rICBzZXF1ZW50KQotKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nL2Jpbi9maWxl JwotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgW1swLTld XVtbMC05XV0qLWJpdCBbW0xNXV1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYiApJwotKyAg ICA7OwotKyAgc25pKQotKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nL2Jpbi9maWxlJwotKyAg ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0iZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05 XV0qLWJpdCBbW0xNXV1TQiBkeW5hbWljIGxpYiIKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0 X2ZpbGU9L2xpYi9saWJjLnNvCi0rICAgIDs7Ci0rICBzaWVtZW5zKQotKyAgICBsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgICA7OwotKyAgcGMpCi0rICAgIGx0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwot K3RwZiopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLStl c2FjCi0rXSkKLStmaWxlX21hZ2ljX2NtZD0kbHRfY3ZfZmlsZV9tYWdpY19jbWQKLStkZXBsaWJz X2NoZWNrX21ldGhvZD0kbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QKLSt0ZXN0IC16ICIkZGVw bGlic19jaGVja19tZXRob2QiICYmIGRlcGxpYnNfY2hlY2tfbWV0aG9kPXVua25vd24KLSsKLStf TFRfREVDTChbXSwgW2RlcGxpYnNfY2hlY2tfbWV0aG9kXSwgWzFdLAotKyAgICBbTWV0aG9kIHRv IGNoZWNrIHdoZXRoZXIgZGVwZW5kZW50IGxpYnJhcmllcyBhcmUgc2hhcmVkIG9iamVjdHNdKQot K19MVF9ERUNMKFtdLCBbZmlsZV9tYWdpY19jbWRdLCBbMV0sCi0rICAgIFtDb21tYW5kIHRvIHVz ZSB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9kID09ICJmaWxlX21hZ2ljIl0pCi0rXSkjIF9MVF9D SEVDS19NQUdJQ19NRVRIT0QKLSsKLSsKLSsjIExUX1BBVEhfTk0KLSsjIC0tLS0tLS0tLS0KLSsj IGZpbmQgdGhlIHBhdGhuYW1lIHRvIGEgQlNELSBvciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVy Ci0rQUNfREVGVU4oW0xUX1BBVEhfTk1dLAotK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwK LStBQ19DQUNIRV9DSEVDSyhbZm9yIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlciAo bm0pXSwgbHRfY3ZfcGF0aF9OTSwKLStbaWYgdGVzdCAtbiAiJE5NIjsgdGhlbgotKyAgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rICBsdF9jdl9wYXRoX05NPSIkTk0iCi0rZWxz ZQotKyAgbHRfbm1fdG9fY2hlY2s9IiR7YWNfdG9vbF9wcmVmaXh9bm0iCi0rICBpZiB0ZXN0IC1u ICIkYWNfdG9vbF9wcmVmaXgiICYmIHRlc3QgIiRidWlsZCIgPSAiJGhvc3QiOyB0aGVuCi0rICAg IGx0X25tX3RvX2NoZWNrPSIkbHRfbm1fdG9fY2hlY2sgbm0iCi0rICBmaQotKyAgZm9yIGx0X3Rt cF9ubSBpbiAkbHRfbm1fdG9fY2hlY2s7IGRvCi0rICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZT PSRQQVRIX1NFUEFSQVRPUgotKyAgICBmb3IgYWNfZGlyIGluICRQQVRIIC91c3IvY2NzL2Jpbi9l bGYgL3Vzci9jY3MvYmluIC91c3IvdWNiIC9iaW47IGRvCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9p ZnMiCi0rICAgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSsgICAgICB0bXBfbm09 IiRhY19kaXIvJGx0X3RtcF9ubSIKLSsgICAgICBpZiB0ZXN0IC1mICIkdG1wX25tIiB8fCB0ZXN0 IC1mICIkdG1wX25tJGFjX2V4ZWV4dCIgOyB0aGVuCi0rCSMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBu bSBhY2NlcHRzIGEgQlNELWNvbXBhdCBmbGFnLgotKwkjIEFkZGluZyB0aGUgYHNlZCAxcScgcHJl dmVudHMgZmFsc2UgcG9zaXRpdmVzIG9uIEhQLVVYLCB3aGljaCBzYXlzOgotKwkjICAgbm06IHVu a25vd24gb3B0aW9uICJCIiBpZ25vcmVkCi0rCSMgVHJ1NjQncyBubSBjb21wbGFpbnMgdGhhdCAv ZGV2L251bGwgaXMgYW4gaW52YWxpZCBvYmplY3QgZmlsZQotKwljYXNlIGAiJHRtcF9ubSIgLUIg L2Rldi9udWxsIDI+JjEgfCBzZWQgJzFxJ2AgaW4KLSsJKi9kZXYvbnVsbCogfCAqJ0ludmFsaWQg ZmlsZSBvciBvYmplY3QgdHlwZScqKQotKwkgIGx0X2N2X3BhdGhfTk09IiR0bXBfbm0gLUIiCi0r CSAgYnJlYWsKLSsJICA7OwotKwkqKQotKwkgIGNhc2UgYCIkdG1wX25tIiAtcCAvZGV2L251bGwg Mj4mMSB8IHNlZCAnMXEnYCBpbgotKwkgICovZGV2L251bGwqKQotKwkgICAgbHRfY3ZfcGF0aF9O TT0iJHRtcF9ubSAtcCIKLSsJICAgIGJyZWFrCi0rCSAgICA7OwotKwkgICopCi0rCSAgICBsdF9j dl9wYXRoX05NPSR7bHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSJ9ICMga2VlcCB0aGUgZmlyc3QgbWF0 Y2gsIGJ1dAotKwkgICAgY29udGludWUgIyBzbyB0aGF0IHdlIGNhbiB0cnkgdG8gZmluZCBvbmUg dGhhdCBzdXBwb3J0cyBCU0QgZmxhZ3MKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCWVz YWMKLSsgICAgICBmaQotKyAgICBkb25lCi0rICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgZG9u ZQotKyAgOiAke2x0X2N2X3BhdGhfTk09bm99Ci0rZmldKQotK2lmIHRlc3QgIiRsdF9jdl9wYXRo X05NIiAhPSAibm8iOyB0aGVuCi0rICBOTT0iJGx0X2N2X3BhdGhfTk0iCi0rZWxzZQotKyAgIyBE aWRuJ3QgZmluZCBhbnkgQlNEIGNvbXBhdGlibGUgbmFtZSBsaXN0ZXIsIGxvb2sgZm9yIGR1bXBi aW4uCi0rICBBQ19DSEVDS19UT09MUyhEVU1QQklOLCBbImR1bXBiaW4gLXN5bWJvbHMiICJsaW5r IC1kdW1wIC1zeW1ib2xzIl0sIDopCi0rICBBQ19TVUJTVChbRFVNUEJJTl0pCi0rICBpZiB0ZXN0 ICIkRFVNUEJJTiIgIT0gIjoiOyB0aGVuCi0rICAgIE5NPSIkRFVNUEJJTiIKLSsgIGZpCi0rZmkK LSt0ZXN0IC16ICIkTk0iICYmIE5NPW5tCi0rQUNfU1VCU1QoW05NXSkKLStfTFRfREVDTChbXSwg W05NXSwgWzFdLCBbQSBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXJdKWRubAotKwot K0FDX0NBQ0hFX0NIRUNLKFt0aGUgbmFtZSBsaXN0ZXIgKCROTSkgaW50ZXJmYWNlXSwgW2x0X2N2 X25tX2ludGVyZmFjZV0sCi0rICBbbHRfY3Zfbm1faW50ZXJmYWNlPSJCU0Qgbm0iCi0rICBlY2hv ICJpbnQgc29tZV92YXJpYWJsZSA9IDA7IiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIChldmFsIGVj aG8gIlwiXCRhc19tZTpfX29saW5lX186ICRhY19jb21waWxlXCIiID4mQVNfTUVTU0FHRV9MT0df RkQpCi0rICAoZXZhbCAiJGFjX2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQotKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19v bGluZV9fOiAkTk0gXFxcImNvbmZ0ZXN0LiRhY19vYmpleHRcXFwiXCIiID4mQVNfTUVTU0FHRV9M T0dfRkQpCi0rICAoZXZhbCAiJE5NIFwiY29uZnRlc3QuJGFjX29iamV4dFwiIiAyPmNvbmZ0ZXN0 LmVyciA+IGNvbmZ0ZXN0Lm91dCkKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xP R19GRAotKyAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVfXzogb3V0cHV0XCIiID4mQVNf TUVTU0FHRV9MT0dfRkQpCi0rICBjYXQgY29uZnRlc3Qub3V0ID4mQVNfTUVTU0FHRV9MT0dfRkQK LSsgIGlmICRHUkVQICdFeHRlcm5hbC4qc29tZV92YXJpYWJsZScgY29uZnRlc3Qub3V0ID4gL2Rl di9udWxsOyB0aGVuCi0rICAgIGx0X2N2X25tX2ludGVyZmFjZT0iTVMgZHVtcGJpbiIKLSsgIGZp Ci0rICBybSAtZiBjb25mdGVzdCpdKQotK10pIyBMVF9QQVRIX05NCi0rCi0rIyBPbGQgbmFtZXM6 Ci0rQVVfQUxJQVMoW0FNX1BST0dfTk1dLCBbTFRfUEFUSF9OTV0pCi0rQVVfQUxJQVMoW0FDX1BS T0dfTk1dLCBbTFRfUEFUSF9OTV0pCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRp YmlsaXR5OgotK2RubCBBQ19ERUZVTihbQU1fUFJPR19OTV0sIFtdKQotK2RubCBBQ19ERUZVTihb QUNfUFJPR19OTV0sIFtdKQotKwotKwotKyMgTFRfTElCX00KLSsjIC0tLS0tLS0tCi0rIyBjaGVj ayBmb3IgbWF0aCBsaWJyYXJ5Ci0rQUNfREVGVU4oW0xUX0xJQl9NXSwKLStbQUNfUkVRVUlSRShb QUNfQ0FOT05JQ0FMX0hPU1RdKWRubAotK0xJQk09Ci0rY2FzZSAkaG9zdCBpbgotKyotKi1iZW9z KiB8ICotKi1jeWd3aW4qIHwgKi0qLXB3MzIqIHwgKi0qLWRhcndpbiopCi0rICAjIFRoZXNlIHN5 c3RlbSBkb24ndCBoYXZlIGxpYm0sIG9yIGRvbid0IG5lZWQgaXQKLSsgIDs7Ci0rKi1uY3Itc3lz djQuMyopCi0rICBBQ19DSEVDS19MSUIobXcsIF9td3ZhbGlkY2hlY2tsLCBMSUJNPSItbG13IikK LSsgIEFDX0NIRUNLX0xJQihtLCBjb3MsIExJQk09IiRMSUJNIC1sbSIpCi0rICA7OwotKyopCi0r ICBBQ19DSEVDS19MSUIobSwgY29zLCBMSUJNPSItbG0iKQotKyAgOzsKLStlc2FjCi0rQUNfU1VC U1QoW0xJQk1dKQotK10pIyBMVF9MSUJfTQotKwotKyMgT2xkIG5hbWU6Ci0rQVVfQUxJQVMoW0FD X0NIRUNLX0xJQk1dLCBbTFRfTElCX01dKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29t cGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FDX0NIRUNLX0xJQk1dLCBbXSkKLSsKLSsKLSsj IF9MVF9DT01QSUxFUl9OT19SVFRJKFtUQUdOQU1FXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX0NPTVBJTEVSX05PX1JUVEldLAotK1ttNF9yZXF1 aXJlKFtfTFRfVEFHX0NPTVBJTEVSXSlkbmwKLSsKLStfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9Ci0rCi0raWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4K LSsgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0nIC1m bm8tYnVpbHRpbicKLSsKLSsgIF9MVF9DT01QSUxFUl9PUFRJT04oW2lmICRjb21waWxlciBzdXBw b3J0cyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zXSwKLSsgICAgbHRfY3ZfcHJvZ19jb21waWxl cl9ydHRpX2V4Y2VwdGlvbnMsCi0rICAgIFstZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zXSwgW10s Ci0rICAgIFtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9 IiRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSkgLWZuby1y dHRpIC1mbm8tZXhjZXB0aW9ucyJdKQotK2ZpCi0rX0xUX1RBR0RFQ0woW25vX2J1aWx0aW5fZmxh Z10sIFtsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ10sIFsxXSwKLSsJW0NvbXBpbGVy IGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnNdKQotK10pIyBfTFRfQ09NUElMRVJf Tk9fUlRUSQotKwotKwotKyMgX0xUX0NNRF9HTE9CQUxfU1lNQk9MUwotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotK200X2RlZnVuKFtfTFRfQ01EX0dMT0JBTF9TWU1CT0xTXSwKLStbQUNfUkVR VUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAotK0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRu bAotK0FDX1JFUVVJUkUoW0xUX1BBVEhfTk1dKWRubAotK0FDX1JFUVVJUkUoW0xUX1BBVEhfTERd KWRubAotK200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0RF Q0xfRUdSRVBdKWRubAotK200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAotKwotKyMg Q2hlY2sgZm9yIGNvbW1hbmQgdG8gZ3JhYiB0aGUgcmF3IHN5bWJvbCBuYW1lIGZvbGxvd2VkIGJ5 IEMgc3ltYm9sIGZyb20gbm0uCi0rQUNfTVNHX0NIRUNLSU5HKFtjb21tYW5kIHRvIHBhcnNlICRO TSBvdXRwdXQgZnJvbSAkY29tcGlsZXIgb2JqZWN0XSkKLStBQ19DQUNIRV9WQUwoW2x0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3BpcGVdLAotK1sKLSsjIFRoZXNlIGFyZSBzYW5lIGRlZmF1bHRzIHRo YXQgd29yayBvbiBhdCBsZWFzdCBhIGZldyBvbGQgc3lzdGVtcy4KLSsjIFtUaGV5IGNvbWUgZnJv bSBVbHRyaXguICBXaGF0IGNvdWxkIGJlIG9sZGVyIHRoYW4gVWx0cml4PyEhIDspXQotKwotKyMg Q2hhcmFjdGVyIGNsYXNzIGRlc2NyaWJpbmcgTk0gZ2xvYmFsIHN5bWJvbCBjb2Rlcy4KLStzeW1j b2RlPSdbW0JDREVHUlNUXV0nCi0rCi0rIyBSZWdleHAgdG8gbWF0Y2ggc3ltYm9scyB0aGF0IGNh biBiZSBhY2Nlc3NlZCBkaXJlY3RseSBmcm9tIEMuCi0rc3ltcGF0PSdcKFtbX0EtWmEtel1dW1tf QS1aYS16MC05XV0qXCknCi0rCi0rIyBEZWZpbmUgc3lzdGVtLXNwZWNpZmljIHZhcmlhYmxlcy4K LStjYXNlICRob3N0X29zIGluCi0rYWl4KikKLSsgIHN5bWNvZGU9J1tbQkNEVF1dJwotKyAgOzsK LStjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICBzeW1jb2RlPSdbW0FCQ0RH SVNUV11dJwotKyAgOzsKLStocHV4KikKLSsgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0 aGVuCi0rICAgIHN5bWNvZGU9J1tbQUJDREVHUlNUXV0nCi0rICBmaQotKyAgOzsKLStpcml4KiB8 IG5vbnN0b3B1eCopCi0rICBzeW1jb2RlPSdbW0JDREVHUlNUXV0nCi0rICA7OwotK29zZiopCi0r ICBzeW1jb2RlPSdbW0JDREVHUVJTVF1dJwotKyAgOzsKLStzb2xhcmlzKikKLSsgIHN5bWNvZGU9 J1tbQkRSVF1dJwotKyAgOzsKLStzY28zLjJ2NSopCi0rICBzeW1jb2RlPSdbW0RUXV0nCi0rICA7 OwotK3N5c3Y0LjJ1dzIqKQotKyAgc3ltY29kZT0nW1tEVF1dJwotKyAgOzsKLStzeXN2NSogfCBz Y281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqKQotKyAgc3ltY29kZT0nW1tBQkRUXV0nCi0r ICA7OwotK3N5c3Y0KQotKyAgc3ltY29kZT0nW1tERk5TVFVdXScKLSsgIDs7Ci0rZXNhYwotKwot KyMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHVzZSBpdHMgc3RhbmRhcmQgc3ltYm9sIGNv ZGVzLgotK2Nhc2UgYCROTSAtViAyPiYxYCBpbgotKypHTlUqIHwgKid3aXRoIEJGRCcqKQotKyAg c3ltY29kZT0nW1tBQkNER0lSU1RXXV0nIDs7Ci0rZXNhYwotKwotKyMgVHJhbnNmb3JtIGFuIGV4 dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRvIGEgcHJvcGVyIEMgZGVjbGFyYXRpb24uCi0rIyBTb21l IHN5c3RlbXMgKGVzcC4gb24gaWE2NCkgbGluayBkYXRhIGFuZCBjb2RlIHN5bWJvbHMgZGlmZmVy ZW50bHksCi0rIyBzbyB1c2UgdGhpcyBnZW5lcmFsIGFwcHJvYWNoLgotK2x0X2N2X3N5c19nbG9i YWxfc3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUgJ3MvXlQgLiogXCguKlwpJC9leHRlcm4gaW50 IFwxKCk7L3AnIC1lICdzL14kc3ltY29kZSogLiogXCguKlwpJC9leHRlcm4gY2hhciBcMTsvcCci Ci0rCi0rIyBUcmFuc2Zvcm0gYW4gZXh0cmFjdGVkIHN5bWJvbCBsaW5lIGludG8gc3ltYm9sIG5h bWUgYW5kIHN5bWJvbCBhZGRyZXNzCi0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1l X2FkZHJlc3M9InNlZCAtbiAtZSAncy9eOiBcKFtbXiBdXSpcKSAkLyAge1xcXCJcMVxcXCIsICh2 b2lkICopIDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW1teIF1dKlwpIFwoW1teIF1dKlwpJC8g IHtcIlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyIKLStsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90 b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSJzZWQgLW4gLWUgJ3MvXjogXChbW14gXV0qXCkg JC8gIHtcXFwiXDFcXFwiLCAodm9pZCAqKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFtbXiBd XSpcKSBcKGxpYltbXiBdXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCcgLWUgJ3Mv XiRzeW1jb2RlKiBcKFtbXiBdXSpcKSBcKFtbXiBdXSpcKSQvICB7XCJsaWJcMlwiLCAodm9pZCAq KSBcJlwyfSwvcCciCi0rCi0rIyBIYW5kbGUgQ1JMRiBpbiBtaW5ndyB0b29sIGNoYWluCi0rb3B0 X2NyPQotK2Nhc2UgJGJ1aWxkX29zIGluCi0rbWluZ3cqKQotKyAgb3B0X2NyPWAkRUNITyAneFx7 MCwxXH0nIHwgdHIgeCAnXDAxNSdgICMgb3B0aW9uIGNyIGluIHJlZ2V4cAotKyAgOzsKLStlc2Fj Ci0rCi0rIyBUcnkgd2l0aG91dCBhIHByZWZpeCB1bmRlcnNjb3JlLCB0aGVuIHdpdGggaXQuCi0r Zm9yIGFjX3N5bXByZnggaW4gIiIgIl8iOyBkbwotKwotKyAgIyBUcmFuc2Zvcm0gc3ltY29kZSwg c3ltcGF0LCBhbmQgc3ltcHJmeCBpbnRvIGEgcmF3IHN5bWJvbCBhbmQgYSBDIHN5bWJvbC4KLSsg IHN5bXhmcm09IlxcMSAkYWNfc3ltcHJmeFxcMiBcXDIiCi0rCi0rICAjIFdyaXRlIHRoZSByYXcg YW5kIEMgaWRlbnRpZmllcnMuCi0rICBpZiB0ZXN0ICIkbHRfY3Zfbm1faW50ZXJmYWNlIiA9ICJN UyBkdW1wYmluIjsgdGhlbgotKyAgICAjIEZha2UgaXQgZm9yIGR1bXBiaW4gYW5kIHNheSBUIGZv ciBhbnkgbm9uLXN0YXRpYyBmdW5jdGlvbgotKyAgICAjIGFuZCBEIGZvciBhbnkgZ2xvYmFsIHZh cmlhYmxlLgotKyAgICAjIEFsc28gZmluZCBDKysgYW5kIF9fZmFzdGNhbGwgc3ltYm9scyBmcm9t IE1TVkMrKywKLSsgICAgIyB3aGljaCBzdGFydCB3aXRoIEAgb3IgPy4KLSsgICAgbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfcGlwZT0iJEFXSyBbJyJcCi0rIiAgICAge2xhc3Rfc2VjdGlvbj1zZWN0 aW9uOyBzZWN0aW9uPVwkIDN9OyJcCi0rIiAgICAgL1NlY3Rpb24gbGVuZ3RoIC4qI3JlbG9jcy4q KHBpY2sgYW55KS97aGlkZVtsYXN0X3NlY3Rpb25dPTF9OyJcCi0rIiAgICAgXCQgMCF+L0V4dGVy bmFsICpcfC97bmV4dH07IlwKLSsiICAgICAvIDArIFVOREVGIC97bmV4dH07IC8gVU5ERUYgXChb XnxdXCkqKCkve25leHR9OyJcCi0rIiAgICAge2lmKGhpZGVbc2VjdGlvbl0pIG5leHR9OyJcCi0r IiAgICAge2Y9MH07IFwkIDB+L1woXCkuKlx8L3tmPTF9OyB7cHJpbnRmIGYgPyBcIlQgXCIgOiBc IkQgXCJ9OyJcCi0rIiAgICAge3NwbGl0KFwkIDAsIGEsIC9cfHxcci8pOyBzcGxpdChhWzJdLCBz KX07IlwKLSsiICAgICBzWzFdfi9eW0A/XS97cHJpbnQgc1sxXSwgc1sxXTsgbmV4dH07IlwKLSsi ICAgICBzWzFdfnByZngge3NwbGl0KHNbMV0sdCxcIkBcIik7IHByaW50IHRbMV0sIHN1YnN0cih0 WzFdLGxlbmd0aChwcmZ4KSl9IlwKLSsiICAgICAnIHByZng9XiRhY19zeW1wcmZ4XSIKLSsgIGVs c2UKLSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0ic2VkIC1uIC1lICdzL14uKltb CSBdXVwoJHN5bWNvZGUkc3ltY29kZSpcKVtbCSBdXVtbCSBdXSokYWNfc3ltcHJmeCRzeW1wYXQk b3B0X2NyJC8kc3lteGZybS9wJyIKLSsgIGZpCi0rCi0rICAjIENoZWNrIHRvIHNlZSB0aGF0IHRo ZSBwaXBlIHdvcmtzIGNvcnJlY3RseS4KLSsgIHBpcGVfd29ya3M9bm8KLSsKLSsgIHJtIC1mIGNv bmZ0ZXN0KgotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLSsjaWZkZWYgX19j cGx1c3BsdXMKLStleHRlcm4gIkMiIHsKLSsjZW5kaWYKLStjaGFyIG5tX3Rlc3RfdmFyOwotK3Zv aWQgbm1fdGVzdF9mdW5jKHZvaWQpOwotK3ZvaWQgbm1fdGVzdF9mdW5jKHZvaWQpe30KLSsjaWZk ZWYgX19jcGx1c3BsdXMKLSt9Ci0rI2VuZGlmCi0raW50IG1haW4oKXtubV90ZXN0X3Zhcj0nYSc7 bm1fdGVzdF9mdW5jKCk7cmV0dXJuKDApO30KLStfTFRfRU9GCi0rCi0rICBpZiBBQ19UUllfRVZB TChhY19jb21waWxlKTsgdGhlbgotKyAgICAjIE5vdyB0cnkgdG8gZ3JhYiB0aGUgc3ltYm9scy4K LSsgICAgbmxpc3Q9Y29uZnRlc3Qubm0KLSsgICAgaWYgQUNfVFJZX0VWQUwoTk0gY29uZnRlc3Qu JGFjX29iamV4dCBcfCAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBcPiAkbmxpc3QpICYm IHRlc3QgLXMgIiRubGlzdCI7IHRoZW4KLSsgICAgICAjIFRyeSBzb3J0aW5nIGFuZCB1bmlxdWlm eWluZyB0aGUgb3V0cHV0LgotKyAgICAgIGlmIHNvcnQgIiRubGlzdCIgfCB1bmlxID4gIiRubGlz dCJUOyB0aGVuCi0rCW12IC1mICIkbmxpc3QiVCAiJG5saXN0IgotKyAgICAgIGVsc2UKLSsJcm0g LWYgIiRubGlzdCJUCi0rICAgICAgZmkKLSsKLSsgICAgICAjIE1ha2Ugc3VyZSB0aGF0IHdlIHNu YWdnZWQgYWxsIHRoZSBzeW1ib2xzIHdlIG5lZWQuCi0rICAgICAgaWYgJEdSRVAgJyBubV90ZXN0 X3ZhciQnICIkbmxpc3QiID4vZGV2L251bGw7IHRoZW4KLSsJaWYgJEdSRVAgJyBubV90ZXN0X2Z1 bmMkJyAiJG5saXN0IiA+L2Rldi9udWxsOyB0aGVuCi0rCSAgY2F0IDw8X0xUX0VPRiA+IGNvbmZ0 ZXN0LiRhY19leHQKLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiIHsKLSsjZW5kaWYK LSsKLStfTFRfRU9GCi0rCSAgIyBOb3cgZ2VuZXJhdGUgdGhlIHN5bWJvbCBmaWxlLgotKwkgIGV2 YWwgIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCInIDwgIiRubGlzdCIgfCAkR1JF UCAtdiBtYWluID4+IGNvbmZ0ZXN0LiRhY19leHQnCi0rCi0rCSAgY2F0IDw8X0xUX0VPRiA+PiBj b25mdGVzdC4kYWNfZXh0Ci0rCi0rLyogVGhlIG1hcHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMg YW5kIHN5bWJvbHMuICAqLwotK2NvbnN0IHN0cnVjdCB7Ci0rICBjb25zdCBjaGFyICpuYW1lOwot KyAgdm9pZCAgICAgICAqYWRkcmVzczsKLSt9Ci0rbHRfX1BST0dSQU1fX0xUWF9wcmVsb2FkZWRf c3ltYm9sc1tbXV0gPQotK3sKLSsgIHsgIkBQUk9HUkFNQCIsICh2b2lkICopIDAgfSwKLStfTFRf RU9GCi0rCSAgJFNFRCAicy9eJHN5bWNvZGUkc3ltY29kZSogXCguKlwpIFwoLipcKSQvICB7XCJc MlwiLCAodm9pZCAqKSBcJlwyfSwvIiA8ICIkbmxpc3QiIHwgJEdSRVAgLXYgbWFpbiA+PiBjb25m dGVzdC4kYWNfZXh0Ci0rCSAgY2F0IDw8XF9MVF9FT0YgPj4gY29uZnRlc3QuJGFjX2V4dAotKyAg ezAsICh2b2lkICopIDB9Ci0rfTsKLSsKLSsvKiBUaGlzIHdvcmtzIGFyb3VuZCBhIHByb2JsZW0g aW4gRnJlZUJTRCBsaW5rZXIgKi8KLSsjaWZkZWYgRlJFRUJTRF9XT1JLQVJPVU5ECi0rc3RhdGlj IGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgpIHsKLSsgIHJldHVybiBsdF9fUFJPR1JB TV9fTFRYX3ByZWxvYWRlZF9zeW1ib2xzOwotK30KLSsjZW5kaWYKLSsKLSsjaWZkZWYgX19jcGx1 c3BsdXMKLSt9Ci0rI2VuZGlmCi0rX0xUX0VPRgotKwkgICMgTm93IHRyeSBsaW5raW5nIHRoZSB0 d28gZmlsZXMuCi0rCSAgbXYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdHN0bS4kYWNfb2JqZXh0 Ci0rCSAgbHRfc2F2ZV9MSUJTPSIkTElCUyIKLSsJICBsdF9zYXZlX0NGTEFHUz0iJENGTEFHUyIK LSsJICBMSUJTPSJjb25mdHN0bS4kYWNfb2JqZXh0IgotKwkgIENGTEFHUz0iJENGTEFHUyRfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSkiCi0rCSAgaWYgQUNf VFJZX0VWQUwoYWNfbGluaykgJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbgot KwkgICAgcGlwZV93b3Jrcz15ZXMKLSsJICBmaQotKwkgIExJQlM9IiRsdF9zYXZlX0xJQlMiCi0r CSAgQ0ZMQUdTPSIkbHRfc2F2ZV9DRkxBR1MiCi0rCWVsc2UKLSsJICBlY2hvICJjYW5ub3QgZmlu ZCBubV90ZXN0X2Z1bmMgaW4gJG5saXN0IiA+JkFTX01FU1NBR0VfTE9HX0ZECi0rCWZpCi0rICAg ICAgZWxzZQotKwllY2hvICJjYW5ub3QgZmluZCBubV90ZXN0X3ZhciBpbiAkbmxpc3QiID4mQVNf TUVTU0FHRV9MT0dfRkQKLSsgICAgICBmaQotKyAgICBlbHNlCi0rICAgICAgZWNobyAiY2Fubm90 IHJ1biAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSIgPiZBU19NRVNTQUdFX0xPR19GRAot KyAgICBmaQotKyAgZWxzZQotKyAgICBlY2hvICIkcHJvZ25hbWU6IGZhaWxlZCBwcm9ncmFtIHdh czoiID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0r ICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KiBjb25mdHN0KgotKwotKyAgIyBEbyBub3QgdXNlIHRo ZSBnbG9iYWxfc3ltYm9sX3BpcGUgdW5sZXNzIGl0IHdvcmtzLgotKyAgaWYgdGVzdCAiJHBpcGVf d29ya3MiID0geWVzOyB0aGVuCi0rICAgIGJyZWFrCi0rICBlbHNlCi0rICAgIGx0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3BpcGU9Ci0rICBmaQotK2RvbmUKLStdKQotK2lmIHRlc3QgLXogIiRsdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgotKyAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1i b2xfdG9fY2RlY2w9Ci0rZmkKLStpZiB0ZXN0IC16ICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xf cGlwZSRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCI7IHRoZW4KLSsgIEFDX01TR19S RVNVTFQoZmFpbGVkKQotK2Vsc2UKLSsgIEFDX01TR19SRVNVTFQob2spCi0rZmkKLSsKLStfTFRf REVDTChbZ2xvYmFsX3N5bWJvbF9waXBlXSwgW2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGVd LCBbMV0sCi0rICAgIFtUYWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5kIHByb2R1Y2UgYSBsaXN0aW5n IG9mIHJhdyBzeW1ib2xzIGFuZCBDIG5hbWVzXSkKLStfTFRfREVDTChbZ2xvYmFsX3N5bWJvbF90 b19jZGVjbF0sIFtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbF0sIFsxXSwKLSsgICAg W1RyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgcHJvcGVyIEMgZGVjbGFyYXRpb25dKQot K19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzXSwKLSsgICAgW2x0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzXSwgWzFdLAotKyAgICBbVHJhbnNm b3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVzcyBwYWlyXSkKLStfTFRfREVD TChbZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4XSwKLSsgICAgW2x0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXhdLCBbMV0s Ci0rICAgIFtUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBh aXIgd2hlbiBsaWIgcHJlZml4IGlzIG5lZWRlZF0pCi0rXSkgIyBfTFRfQ01EX0dMT0JBTF9TWU1C T0xTCi0rCi0rCi0rIyBfTFRfQ09NUElMRVJfUElDKFtUQUdOQU1FXSkKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotK200X2RlZnVuKFtfTFRfQ09NUElMRVJfUElDXSwKLStbbTRfcmVx dWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCi0rX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3dsLCAkMSk9Ci0rX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQotK19MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0KLSsKLStBQ19NU0dfQ0hFQ0tJTkco W2ZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDXSkKLSttNF9pZihbJDFdLCBbQ1hY XSwgWwotKyAgIyBDKysgc3BlY2lmaWMgY2FzZXMgZm9yIHBpYywgc3RhdGljLCB3bCwgZXRjLgot KyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9z dGF0aWMsICQxKT0nLXN0YXRpYycKLSsKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBhaXgq KQotKyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9j cHUiID0gaWE2NDsgdGhlbgotKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3Nvcgot KwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAg ICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgY2FzZSAkaG9zdF9j cHUgaW4KLSsgICAgICBwb3dlcnBjKQotKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQg QW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfcGljLCAkMSk9Jy1mUElDJwotKyAgICAgICAgOzsKLSsgICAgICBtNjhrKQotKyAgICAg ICAgICAgICMgRklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBzaGFy ZWQgbGlicmFyaWVzLCBidXQKLSsgICAgICAgICAgICAjIGFkZGluZyB0aGUgYC1tNjgwMjAnIGZs YWcgdG8gR0NDIHByZXZlbnRzIGJ1aWxkaW5nIGFueXRoaW5nIGJldHRlciwKLSsgICAgICAgICAg ICAjIGxpa2UgYC1tNjgwNDAnLgotKyAgICAgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKT0nLW02ODAyMCAtcmVzaWRlbnQzMiAtbWFsd2F5cy1yZXN0b3JlLWE0Jwot KyAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgYmVvcyogfCBpcml4 NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgICAg ICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgotKyAgICAgIDs7Ci0rICAgIG1p bmd3KiB8IGN5Z3dpbiogfCBvczIqIHwgcHczMiogfCBjZWdjYyopCi0rICAgICAgIyBUaGlzIGhh Y2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWlu ZwotKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBv cnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCi0rICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdj YyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQotKyAgICAgICMg KC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCi0rICAgICAgbTRfaWYoWyQxXSwgW0dD Sl0sIFtdLAotKwlbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctRERMTF9F WFBPUlQnXSkKLSsgICAgICA7OwotKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgICAgICMg UElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KLSsgICAgICAjIENvbW1vbiBzeW1i b2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCi0rICAgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZm5vLWNvbW1vbicKLSsgICAgICA7OwotKyAgICAqZGpn cHAqKQotKyAgICAgICMgREpHUFAgZG9lcyBub3Qgc3VwcG9ydCBzaGFyZWQgbGlicmFyaWVzIGF0 IGFsbAotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0KLSsgICAg ICA7OwotKyAgICBpbnRlcml4W1szLTldXSopCi0rICAgICAgIyBJbnRlcml4IDMueCBnY2MgLWZw aWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KLSsgICAgICAjIEluc3RlYWQs IHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KLSsgICAgICA7OwotKyAg ICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgotKwlfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9LUtjb25mb3JtX3BpYwotKyAgICAgIGZpCi0r ICAgICAgOzsKLSsgICAgaHB1eCopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIDY0 LWJpdCBQQSBIUC1VWCwgYnV0IG5vdCBmb3IgMzItYml0Ci0rICAgICAgIyBQQSBIUC1VWC4gIE9u IElBNjQgSFAtVVgsIFBJQyBpcyB0aGUgZGVmYXVsdCBidXQgdGhlIHBpYyBmbGFnCi0rICAgICAg IyBzZXRzIHRoZSBkZWZhdWx0IFRMUyBtb2RlbCBhbmQgYWZmZWN0cyBpbmxpbmluZy4KLSsgICAg ICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgIGhwcGEqNjQqKQotKwk7OwotKyAgICAgICopCi0r CV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCi0rCTs7Ci0rICAg ICAgZXNhYwotKyAgICAgIDs7Ci0rICAgICpxbngqIHwgKm50byopCi0rICAgICAgIyBRTlggdXNl cyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndp c2UKLSsgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQyAtc2hhcmVkJwotKyAgICAgIDs7Ci0rICAgICopCi0r ICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKLSsgICAg ICA7OwotKyAgICBlc2FjCi0rICBlbHNlCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBh aXhbWzQtOV1dKikKLSsJIyBBbGwgQUlYIGNvZGUgaXMgUElDLgotKwlpZiB0ZXN0ICIkaG9zdF9j cHUiID0gaWE2NDsgdGhlbgotKwkgICMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29y Ci0rCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycK LSsJZWxzZQotKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLWJu c28gLWJJOi9saWIvc3lzY2FsbHMuZXhwJwotKwlmaQotKwk7OwotKyAgICAgIGNob3J1cyopCi0r CWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCWN4Y2g2OCopCi0rCSAgIyBHcmVlbiBIaWxscyBDKysg Q29tcGlsZXIKLSsJICAjIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0i LS1ub19hdXRvX2luc3RhbnRpYXRpb24gLXUgX19tYWluIC11IF9fcHJlbWFpbiAtdSBfYWJvcnQg LXIgJENPT0xfRElSL2xpYi9saWJPcmIuYSAkTVZNRV9ESVIvbGliL0NDL2xpYkMuYSAkTVZNRV9E SVIvbGliL2NsYXNzaXgvbGliY3gucy5hIgotKwkgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBk Z3V4KikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBlYysrKikKLSsJICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0rCSAgICA7OwotKwkgIGdoY3gq KQotKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAgIF9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBpYycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7 Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rCSMgRnJlZUJT RCB1c2VzIEdOVSBDKysKLSsJOzsKLSsgICAgICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikK LSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBDQyopCi0rCSAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9zdGF0aWMsICQxKT0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCi0rCSAgICBpZiB0ZXN0ICIk aG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KLSsJICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpPScrWicKLSsJICAgIGZpCi0rCSAgICA7OwotKwkgIGFDQyopCi0rCSAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCi0r CSAgICBjYXNlICRob3N0X2NwdSBpbgotKwkgICAgaHBwYSo2NCp8aWE2NCopCi0rCSAgICAgICMg K1ogdGhlIGRlZmF1bHQKLSsJICAgICAgOzsKLSsJICAgICopCi0rCSAgICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nK1onCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0r CSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgaW50ZXJpeCop Ci0rCSMgVGhpcyBpcyBjODksIHdoaWNoIGlzIE1TIFZpc3VhbCBDKysgKG5vIHNoYXJlZCBsaWJz KQotKwkjIEFueW9uZSB3YW50cyB0byBkbyBhIHBvcnQ/Ci0rCTs7Ci0rICAgICAgaXJpeDUqIHwg aXJpeDYqIHwgbm9uc3RvcHV4KikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBDQyopCi0r CSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJICAgIF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCi0rCSAg ICAjIENDIHBpYyBmbGFnIC1LUElDIGlzIHRoZSBkZWZhdWx0LgotKwkgICAgOzsKLSsJICAqKQot KwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUpCi0rCWNh c2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgS0NDKikKLSsJICAgICMgS0FJIEMrKyBDb21waWxlcgot KwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy0tYmFja2VuZCAtV2ws JwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKLSsJ ICAgIDs7Ci0rCSAgZWNwYyogKQotKwkgICAgIyBvbGQgSW50ZWwgQysrIGZvciB4ODZfNjQgd2hp Y2ggc3RpbGwgc3VwcG9ydGVkIC1LUElDLgotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3dsLCAkMSk9Jy1XbCwnCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGlj LCAkMSk9Jy1LUElDJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywg JDEpPSctc3RhdGljJwotKwkgICAgOzsKLSsJICBpY3BjKiApCi0rCSAgICAjIEludGVsIEMrKywg dXNlZCB0byBiZSBpbmNvbXBhdGlibGUgd2l0aCBHQ0MuCi0rCSAgICAjIElDQyAxMCBkb2Vzbid0 IGFjY2VwdCAtS1BJQyBhbnkgbW9yZS4KLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl93bCwgJDEpPSctV2wsJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPSctZlBJQycKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQx KT0nLXN0YXRpYycKLSsJICAgIDs7Ci0rCSAgcGdDQyogfCBwZ2NwcCopCi0rCSAgICAjIFBvcnRs YW5kIEdyb3VwIEMrKyBjb21waWxlcgotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3dsLCAkMSk9Jy1XbCwnCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9Jy1mcGljJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEp PSctQnN0YXRpYycKLSsJICAgIDs7Ci0rCSAgY3h4KikKLSsJICAgICMgQ29tcGFxIEMrKwotKwkg ICAgIyBNYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGlzIGVtcHR5LiAgSXQgYXBwZWFycyB0aGF0IGFs bCBBbHBoYQotKwkgICAgIyBMaW51eCBhbmQgQ29tcGFxIFRydTY0IFVuaXggb2JqZWN0cyBhcmUg UElDLgotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQotKwkgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKLSsJ ICAgIDs7Ci0rCSAgeGxjKiB8IHhsQyopCi0rCSAgICAjIElCTSBYTCA4LjAgb24gUFBDCi0rCSAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXFwaWMnCi0rCSAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1xc3RhdGljbGluaycKLSsJICAgIDs7Ci0r CSAgKikKLSsJICAgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgotKwkgICAgKlN1blwg QyopCi0rCSAgICAgICMgU3VuIEMrKyA1LjkKLSsJICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsJICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICcKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJ ICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBseW54b3MqKQotKwk7OwotKyAgICAgIG04OGsq KQotKwk7OwotKyAgICAgIG12cyopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgY3h4KikK LSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLVcgYyxleHBvcnRh bGwnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgbmV0 YnNkKikKLSsJOzsKLSsgICAgICAqcW54KiB8ICpudG8qKQotKyAgICAgICAgIyBRTlggdXNlcyBH TlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UK LSsgICAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KLSsgICAgICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0nLWZQSUMgLXNoYXJlZCcKLSsgICAgICAgIDs7Ci0rICAgICAg b3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIEtDQyop Ci0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLS1iYWNrZW5kIC1X bCwnCi0rCSAgICA7OwotKwkgIFJDQyopCi0rCSAgICAjIFJhdGlvbmFsIEMrKyAyLjQuMQotKwkg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJwotKwkgICAgOzsK LSsJICBjeHgqKQotKwkgICAgIyBEaWdpdGFsL0NvbXBhcSBDKysKLSsJICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAgIyBNYWtlIHN1cmUgdGhlIFBJ QyBmbGFnIGlzIGVtcHR5LiAgSXQgYXBwZWFycyB0aGF0IGFsbCBBbHBoYQotKwkgICAgIyBMaW51 eCBhbmQgQ29tcGFxIFRydTY0IFVuaXggb2JqZWN0cyBhcmUgUElDLgotKwkgICAgX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAg IDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBwc29zKikKLSsJOzsKLSsgICAgICBzb2xhcmlzKikK LSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBDQyopCi0rCSAgICAjIFN1biBDKysgNC4yLCA1 LnggYW5kIENlbnRlcmxpbmUgQysrCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf cGljLCAkMSk9Jy1LUElDJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRp YywgJDEpPSctQnN0YXRpYycKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwg JDEpPSctUW9wdGlvbiBsZCAnCi0rCSAgICA7OwotKwkgIGdjeCopCi0rCSAgICAjIEdyZWVuIEhp bGxzIEMrKyBDb21waWxlcgotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPSctUElDJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAg ICAgIHN1bm9zNCopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAgIyBT dW4gQysrIDQueAotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSct cGljJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0 YXRpYycKLSsJICAgIDs7Ci0rCSAgbGNjKikKLSsJICAgICMgTHVjaWQKLSsJICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBpYycKLSsJICAgIDs7Ci0rCSAgKikKLSsJ ICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBzeXN2NSogfCB1bml4d2FyZSogfCBzY28zLjJ2 NSogfCBzY281djYqIHwgT3BlblVOSVgqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIEND KikKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJICAgIF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rCSAgICA7 OwotKwllc2FjCi0rCTs7Ci0rICAgICAgdGFuZGVtKikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4K LSsJICBOQ0MqKQotKwkgICAgIyBOb25TdG9wLVVYIE5DQyAzLjIwCi0rCSAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwotKwkgICAgOzsKLSsJICAqKQotKwkg ICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIHZ4d29ya3MqKQotKwk7OwotKyAgICAgICopCi0r CV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkLCAkMSk9bm8KLSsJ OzsKLSsgICAgZXNhYwotKyAgZmkKLStdLAotK1sKLSsgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0 aGVuCi0rICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKyAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCi0rCi0r ICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBhaXgqKQotKyAgICAgICMgQWxsIEFJWCBjb2Rl IGlzIFBJQy4KLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIEFJ WCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsg ICAgYW1pZ2FvcyopCi0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBwb3dlcnBjKQot KyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsg ICAgICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJwot KyAgICAgICAgOzsKLSsgICAgICBtNjhrKQotKyAgICAgICAgICAgICMgRklYTUU6IHdlIG5lZWQg YXQgbGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLCBidXQKLSsgICAg ICAgICAgICAjIGFkZGluZyB0aGUgYC1tNjgwMjAnIGZsYWcgdG8gR0NDIHByZXZlbnRzIGJ1aWxk aW5nIGFueXRoaW5nIGJldHRlciwKLSsgICAgICAgICAgICAjIGxpa2UgYC1tNjgwNDAnLgotKyAg ICAgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLW02ODAyMCAt cmVzaWRlbnQzMiAtbWFsd2F5cy1yZXN0b3JlLWE0JwotKyAgICAgICAgOzsKLSsgICAgICBlc2Fj Ci0rICAgICAgOzsKLSsKLSsgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgq IHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZv ciB0aGVzZSBPU2VzLgotKyAgICAgIDs7Ci0rCi0rICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMy KiB8IG9zMiogfCBjZWdjYyopCi0rICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291 cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZwotKyAgICAgICMgYnVpbHQgZm9y IGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBs ZSkuCi0rICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGls bCBuZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQotKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9y dCkgbGlicmFyaWVzCi0rICAgICAgbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAotKwlbX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkKLSsgICAgICA7Owot KwotKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0 IG9uIHRoaXMgcGxhdGZvcm0KLSsgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGlu IE1IX0RZTElCIGZpbGVzCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPSctZm5vLWNvbW1vbicKLSsgICAgICA7OwotKwotKyAgICBocHV4KikKLSsgICAgICAjIFBJ QyBpcyB0aGUgZGVmYXVsdCBmb3IgNjQtYml0IFBBIEhQLVVYLCBidXQgbm90IGZvciAzMi1iaXQK LSsgICAgICAjIFBBIEhQLVVYLiAgT24gSUE2NCBIUC1VWCwgUElDIGlzIHRoZSBkZWZhdWx0IGJ1 dCB0aGUgcGljIGZsYWcKLSsgICAgICAjIHNldHMgdGhlIGRlZmF1bHQgVExTIG1vZGVsIGFuZCBh ZmZlY3RzIGlubGluaW5nLgotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgaHBwYSo2 NCopCi0rCSMgK1ogdGhlIGRlZmF1bHQKLSsJOzsKLSsgICAgICAqKQotKwlfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJwotKwk7OwotKyAgICAgIGVzYWMKLSsgICAg ICA7OwotKwotKyAgICBpbnRlcml4W1szLTldXSopCi0rICAgICAgIyBJbnRlcml4IDMueCBnY2Mg LWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KLSsgICAgICAjIEluc3Rl YWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KLSsgICAgICA7Owot KwotKyAgICBtc2Rvc2RqZ3BwKikKLSsgICAgICAjIEp1c3QgYmVjYXVzZSB3ZSB1c2UgR0NDIGRv ZXNuJ3QgbWVhbiB3ZSBzdWRkZW5seSBnZXQgc2hhcmVkIGxpYnJhcmllcwotKyAgICAgICMgb24g c3lzdGVtcyB0aGF0IGRvbid0IHN1cHBvcnQgdGhlbS4KLSsgICAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZCwgJDEpPW5vCi0rICAgICAgZW5hYmxlX3NoYXJl ZD1ubwotKyAgICAgIDs7Ci0rCi0rICAgICpudG8qIHwgKnFueCopCi0rICAgICAgIyBRTlggdXNl cyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndp c2UKLSsgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQyAtc2hhcmVkJwotKyAgICAgIDs7Ci0rCi0rICAgIHN5 c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCi0rCV9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0tS2NvbmZvcm1fcGljCi0rICAgICAgZmkKLSsgICAg ICA7OwotKwotKyAgICAqKQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMs ICQxKT0nLWZQSUMnCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZWxzZQotKyAgICAjIFBPUlRN RSBDaGVjayBmb3IgZmxhZyB0byBwYXNzIGxpbmtlciBmbGFncyB0aHJvdWdoIHRoZSBzeXN0ZW0g Y29tcGlsZXIuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4KikKLSsgICAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsgICAgICBpZiB0ZXN0ICIk aG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nl c3NvcgotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGlj JwotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEp PSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwot KyAgICBtaW5ndyogfCBjeWd3aW4qIHwgcHczMiogfCBvczIqIHwgY2VnY2MqKQotKyAgICAgICMg VGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQg aXMgYmVpbmcKLSsgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91 bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgotKyAgICAgIG00X2lmKFskMV0sIFtHQ0pd LCBbXSwKLSsJW19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLURETExfRVhQ T1JUJ10pCi0rICAgICAgOzsKLSsKLSsgICAgaHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCi0r ICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAgICAg IyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIElBNjQgSFAtVVggYW5kIDY0LWJpdCBIUC1VWCwgYnV0 Ci0rICAgICAgIyBub3QgZm9yIFBBIEhQLVVYLgotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0r ICAgICAgaHBwYSo2NCp8aWE2NCopCi0rCSMgK1ogdGhlIGRlZmF1bHQKLSsJOzsKLSsgICAgICAq KQotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9JytaJwotKwk7OwotKyAg ICAgIGVzYWMKLSsgICAgICAjIElzIHRoZXJlIGEgYmV0dGVyIGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljIHRoYXQgd29ya3Mgd2l0aCB0aGUgYnVuZGxlZCBDQz8KLSsgICAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJwotKyAgICAg IDs7Ci0rCi0rICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rICAgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAgICAgIyBQSUMgKHdpdGgg LUtQSUMpIGlzIHRoZSBkZWZhdWx0LgotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsgICAgbGludXgqIHwg aypic2QqLWdudSkKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICMgb2xkIElu dGVsIGZvciB4ODZfNjQgd2hpY2ggc3RpbGwgc3VwcG9ydGVkIC1LUElDLgotKyAgICAgIGVjYyop Ci0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwlfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwotKwlfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCi0rICAgICAgICA7OwotKyAgICAgICMg aWNjIHVzZWQgdG8gYmUgaW5jb21wYXRpYmxlIHdpdGggR0NDLgotKyAgICAgICMgSUNDIDEwIGRv ZXNuJ3QgYWNjZXB0IC1LUElDIGFueSBtb3JlLgotKyAgICAgIGljYyogfCBpZm9ydCopCi0rCV9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwlfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJwotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCi0rICAgICAgICA7OwotKyAgICAgICMgTGFoZXkg Rm9ydHJhbiA4LjEuCi0rICAgICAgbGY5NSopCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl93bCwgJDEpPSctV2wsJwotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9 Jy0tc2hhcmVkJwotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy0t c3RhdGljJwotKwk7OwotKyAgICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQot KyAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBjb21waWxlcnMgKCpub3QqIHRoZSBQZW50aXVtIGdj YyBjb21waWxlciwKLSsJIyB3aGljaCBsb29rcyB0byBiZSBhIGRlYWQgcHJvamVjdCkKLSsJX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rCV9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZwaWMnCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rICAgICAgICA7OwotKyAgICAgIGNjYyopCi0r ICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsgICAg ICAgICMgQWxsIEFscGhhIGNvZGUgaXMgUElDLgotKyAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKLSsgICAgICAgIDs7Ci0rICAgICAg eGwqKQotKwkjIElCTSBYTCBDIDguMC9Gb3J0cmFuIDEwLjEgb24gUFBDCi0rCV9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfcGljLCAkMSk9Jy1xcGljJwotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljLCAkMSk9Jy1xc3RhdGljbGluaycKLSsJOzsKLSsgICAgICAqKQotKwljYXNlIGAkQ0MgLVYg Mj4mMSB8IHNlZCA1cWAgaW4KLSsJKlN1blwgQyopCi0rCSAgIyBTdW4gQyA1LjkKLSsJICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwotKwkgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rCSAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rCSAgOzsKLSsJKlN1blwgRiopCi0rCSAg IyBTdW4gRm9ydHJhbiA4LjMgcGFzc2VzIGFsbCB1bnJlY29nbml6ZWQgZmxhZ3MgdG8gdGhlIGxp bmtlcgotKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0r CSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsJ ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nJwotKwkgIDs7Ci0rCWVzYWMK LSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgbmV3c29zNikKLSsgICAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwotKyAgICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rICAgICAgOzsK LSsKLSsgICAgKm50byogfCAqcW54KikKLSsgICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBu ZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQotKyAgICAgICMgaXQg d2lsbCBjb3JlZHVtcC4KLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9Jy1mUElDIC1zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsgICAgb3NmMyogfCBvc2Y0KiB8IG9z ZjUqKQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwot KyAgICAgICMgQWxsIE9TRi8xIGNvZGUgaXMgUElDLgotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsgICAg cmRvcyopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSct bm9uX3NoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICBzb2xhcmlzKikKLSsgICAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwotKyAgICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rICAgICAgY2FzZSAkY2Nf YmFzZW5hbWUgaW4KLSsgICAgICBmNzcqIHwgZjkwKiB8IGY5NSopCi0rCV9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAnOzsKLSsgICAgICAqKQotKwlfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCc7OwotKyAgICAgIGVzYWMKLSsg ICAgICA7OwotKwotKyAgICBzdW5vczQqKQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAnCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctUElDJwotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQgfCBzeXN2 NC4ydXcyKiB8IHN5c3Y0LjMqKQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93 bCwgJDEpPSctV2wsJwotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0nLUtQSUMnCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEp PSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVz dCAtZCAvdXNyL25lYyA7dGhlbgotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9Jy1LY29uZm9ybV9waWMnCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMs ICQxKT0nLUJzdGF0aWMnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBzeXN2NSogfCB1 bml4d2FyZSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgT3BlblVOSVgqKQotKyAgICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKyAgICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0rICAgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICB1 bmljb3MqKQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2ws JwotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkLCAk MSk9bm8KLSsgICAgICA7OwotKwotKyAgICB1dHM0KikKLSsgICAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSk9Jy1waWMnCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICAqKQotKyAg ICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkLCAkMSk9bm8K LSsgICAgICA7OwotKyAgICBlc2FjCi0rICBmaQotK10pCi0rY2FzZSAkaG9zdF9vcyBpbgotKyAg IyBGb3IgcGxhdGZvcm1zIHdoaWNoIGRvIG5vdCBzdXBwb3J0IFBJQywgLURQSUMgaXMgbWVhbmlu Z2xlc3M6Ci0rICAqZGpncHAqKQotKyAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGlj LCAkMSk9Ci0rICAgIDs7Ci0rICAqKQotKyAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf cGljLCAkMSk9IiRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSlAJnRAbTRfaWYo WyQxXSxbXSxbIC1EUElDXSxbbTRfaWYoWyQxXSxbQ1hYXSxbIC1EUElDXSxbXSldKSIKLSsgICAg OzsKLStlc2FjCi0rQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9w aWMsICQxKV0pCi0rX0xUX1RBR0RFQ0woW3dsXSwgW2x0X3Byb2dfY29tcGlsZXJfd2xdLCBbMV0s Ci0rCVtIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyXSkKLSsK LSsjCi0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGFjdHVhbGx5IHdvcmtzLgot KyMKLStpZiB0ZXN0IC1uICIkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIjsg dGhlbgotKyAgX0xUX0NPTVBJTEVSX09QVElPTihbaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkgd29ya3NdLAotKyAgICBbX0xUX1RBR1ZB UihsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcywgJDEpXSwKLSsgICAgWyRfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSlAJnRAbTRfaWYoWyQxXSxbXSxbIC1EUElDXSxbbTRf aWYoWyQxXSxbQ1hYXSxbIC1EUElDXSxbXSldKV0sIFtdLAotKyAgICBbY2FzZSAkX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIGluCi0rICAgICAiIiB8ICIgIiopIDs7Ci0rICAg ICAqKSBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9IiAkX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIiA7OwotKyAgICAgZXNhY10sCi0rICAgIFtfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Ci0rICAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZCwgJDEpPW5vXSkKLStmaQotK19MVF9UQUdERUNMKFtw aWNfZmxhZ10sIFtsdF9wcm9nX2NvbXBpbGVyX3BpY10sIFsxXSwKLSsJW0FkZGl0aW9uYWwgY29t cGlsZXIgZmxhZ3MgZm9yIGJ1aWxkaW5nIGxpYnJhcnkgb2JqZWN0c10pCi0rCi0rIwotKyMgQ2hl Y2sgdG8gbWFrZSBzdXJlIHRoZSBzdGF0aWMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KLSsjCi0rd2w9 JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpIGV2YWwgbHRfdG1wX3N0YXRpY19m bGFnPVwiJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKVwiCi0rX0xUX0xJ TktFUl9PUFRJT04oW2lmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFn IHdvcmtzXSwKLSsgIF9MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3Ms ICQxKSwKLSsgICRsdF90bXBfc3RhdGljX2ZsYWcsCi0rICBbXSwKLSsgIFtfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9XSkKLStfTFRfVEFHREVDTChbbGlua19zdGF0aWNf ZmxhZ10sIFtsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY10sIFsxXSwKLSsJW0NvbXBpbGVyIGZsYWcg dG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmddKQotK10pIyBfTFRfQ09NUElMRVJfUElDCi0rCi0r Ci0rIyBfTFRfTElOS0VSX1NITElCUyhbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rIyBTZWUgaWYgdGhlIGxpbmtlciBzdXBwb3J0cyBidWlsZGluZyBzaGFyZWQg bGlicmFyaWVzLgotK200X2RlZnVuKFtfTFRfTElOS0VSX1NITElCU10sCi0rW0FDX1JFUVVJUkUo W0xUX1BBVEhfTERdKWRubAotK0FDX1JFUVVJUkUoW0xUX1BBVEhfTk1dKWRubAotK200X3JlcXVp cmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAotK200X3JlcXVpcmUoW19MVF9ERUNMX0VH UkVQXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAotK200X3JlcXVpcmUoW19M VF9DTURfR0xPQkFMX1NZTUJPTFNdKWRubAotK200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJd KWRubAotK0FDX01TR19DSEVDS0lORyhbd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExE KSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKLSttNF9pZihbJDFdLCBbQ1hYXSwgWwotKyAg X0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29udmVu aWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0 IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGFpeFtb NC05XV0qKQotKyAgICAjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB3ZSBkb24ndCB3YW50 IHRoZSAiLUMiIG9wdGlvbi4KLSsgICAgIyAtQyBtZWFucyBkZW1hbmdsZSB0byBBSVggbm0sIGJ1 dCBtZWFucyBkb24ndCBkZW1hbmdsZSB3aXRoIEdOVSBubQotKyAgICBpZiAkTk0gLVYgMj4mMSB8 ICRHUkVQICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCi0rICAgICAgX0xUX1RBR1ZBUihleHBvcnRf c3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAn XCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIp KSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwg c29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKLSsgICAgZWxzZQotKyAgICAgIF9MVF9UQUdWQVIo ZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gLUJDcGcgJGxpYm9ianMgJGNvbnZlbmllbmNl IHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAy ID09ICJCIikpICYmIChbc3Vic3RyXShcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0g fSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgICBmaQotKyAgICA7OwotKyAg cHczMiopCi0rICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSIkbHRkbGxf Y21kcyIKLSsgIDs7Ci0rICBjeWd3aW4qIHwgbWluZ3cqIHwgY2VnY2MqKQotKyAgICBfTFRfVEFH VkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8 ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltbQkNER1JTXV1bWyBdXS9zLy4q W1sgXV1cKFtbXiBdXSpcKS9cMSBEQVRBLzsvXi4qW1sgXV1fX25tX18vcy9eLipbWyBdXV9fbm1f X1woW1teIF1dKlwpW1sgXV1bW14gXV0qL1wxIERBVEEvOy9eSVtbIF1dL2Q7L15bW0FJVFddXVtb IF1dL3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0rICA7Owot KyAgKikKLSsgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGli b2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAv LydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgIDs7Ci0rICBlc2FjCi0r ICBfTFRfVEFHVkFSKGV4Y2x1ZGVfZXhwc3ltcywgJDEpPVsnX0dMT0JBTF9PRkZTRVRfVEFCTEVf fF9HTE9CQUxfX0ZbSURdXy4qJ10KLStdLCBbCi0rICBydW5wYXRoX3Zhcj0KLSsgIF9MVF9UQUdW QVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KLSsgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9y dF9zeW1ib2xzLCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9Ci0rICBf TFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0KLSsgIF9MVF9UQUdWQVIoY29tcGls ZXJfbmVlZHNfb2JqZWN0LCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRo X3N0YXRpY19ydW50aW1lcywgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlYywgJDEpPQotKyAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyRO TSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcn cy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgIF9MVF9UQUdW QVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9 bm8KLSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQotKyAgX0xU X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9Ci0rICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KLSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bWludXNfTCwgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQx KT11bnN1cHBvcnRlZAotKyAgX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9bm8KLSsgIF9M VF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXVua25vd24KLSsgIF9MVF9UQUdWQVIobW9k dWxlX2NtZHMsICQxKT0KLSsgIF9MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9Ci0r ICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0KLSsgIF9MVF9UQUdW QVIob2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMsICQxKT0KLSsgIF9MVF9UQUdWQVIodGhy ZWFkX3NhZmVfZmxhZ19zcGVjLCAkMSk9Ci0rICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjLCAkMSk9Ci0rICAjIGluY2x1ZGVfZXhwc3ltcyBzaG91bGQgYmUgYSBsaXN0IG9mIHNw YWNlLXNlcGFyYXRlZCBzeW1ib2xzIHRvIGJlICphbHdheXMqCi0rICAjIGluY2x1ZGVkIGluIHRo ZSBzeW1ib2wgbGlzdAotKyAgX0xUX1RBR1ZBUihpbmNsdWRlX2V4cHN5bXMsICQxKT0KLSsgICMg ZXhjbHVkZV9leHBzeW1zIGNhbiBiZSBhbiBleHRlbmRlZCByZWdleHAgb2Ygc3ltYm9scyB0byBl eGNsdWRlCi0rICAjIGl0IHdpbGwgYmUgd3JhcHBlZCBieSBgICgnIGFuZCBgKSQnLCBzbyBvbmUg bXVzdCBub3QgbWF0Y2ggYmVnaW5uaW5nIG9yCi0rICAjIGVuZCBvZiBsaW5lLiAgRXhhbXBsZTog YGF8YmN8LipkLionIHdpbGwgZXhjbHVkZSB0aGUgc3ltYm9scyBgYScgYW5kIGBiYycsCi0rICAj IGFzIHdlbGwgYXMgYW55IHN5bWJvbCB0aGF0IGNvbnRhaW5zIGBkJy4KLSsgIF9MVF9UQUdWQVIo ZXhjbHVkZV9leHBzeW1zLCAkMSk9WydfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJ RF1fLionXQotKyAgIyBBbHRob3VnaCBfR0xPQkFMX09GRlNFVF9UQUJMRV8gaXMgYSB2YWxpZCBz eW1ib2wgQyBuYW1lLCBtb3N0IGEub3V0Ci0rICAjIHBsYXRmb3JtcyAoYWIpdXNlIGl0IGluIFBJ QyBjb2RlLCBidXQgdGhlaXIgbGlua2VycyBnZXQgY29uZnVzZWQgaWYKLSsgICMgdGhlIHN5bWJv bCBpcyBleHBsaWNpdGx5IHJlZmVyZW5jZWQuICBTaW5jZSBwb3J0YWJsZSBjb2RlIGNhbm5vdAot KyAgIyByZWx5IG9uIHRoaXMgc3ltYm9sIG5hbWUsIGl0J3MgcHJvYmFibHkgZmluZSB0byBuZXZl ciBpbmNsdWRlIGl0IGluCi0rICAjIHByZWxvYWRlZCBzeW1ib2wgdGFibGVzLgotKyAgIyBFeGNs dWRlIHNoYXJlZCBsaWJyYXJ5IGluaXRpYWxpemF0aW9uL2ZpbmFsaXphdGlvbiBzeW1ib2xzLgot K2RubCBOb3RlIGFsc28gYWRqdXN0IGV4Y2x1ZGVfZXhwc3ltcyBmb3IgQysrIGFib3ZlLgotKyAg ZXh0cmFjdF9leHBzeW1zX2NtZHM9Ci0rCi0rICBjYXNlICRob3N0X29zIGluCi0rICBjeWd3aW4q IHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAgICMgRklYTUU6IHRoZSBNU1ZDKysgcG9y dCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgaW4gYSBsb29vb25nIHRpbWUKLSsgICAgIyBXaGVuIG5vdCB1 c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcKLSsgICAgIyBN aWNyb3NvZnQgVmlzdWFsIEMrKy4KLSsgICAgaWYgdGVzdCAiJEdDQyIgIT0geWVzOyB0aGVuCi0r ICAgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAgZmkKLSsgICAgOzsKLSsgIGludGVyaXgqKQotKyAg ICAjIHdlIGp1c3QgaG9wZS9hc3N1bWUgdGhpcyBpcyBnY2MgYW5kIG5vdCBjODkgKD0gTVNWQysr KQotKyAgICB3aXRoX2dudV9sZD15ZXMKLSsgICAgOzsKLSsgIG9wZW5ic2QqKQotKyAgICB3aXRo X2dudV9sZD1ubwotKyAgICA7OwotKyAgZXNhYwotKwotKyAgX0xUX1RBR1ZBUihsZF9zaGxpYnMs ICQxKT15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgIyBJ ZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKLSsg ICAgd2xhcmM9JyR7d2x9JwotKwotKyAgICAjIFNldCBzb21lIGRlZmF1bHRzIGZvciBHTlUgbGQg d2l0aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQotKyAgICAjIGFyZSByZXNldCBsYXRl ciBpZiBzaGFyZWQgbGlicmFyaWVzIGFyZSBub3Qgc3VwcG9ydGVkLiBQdXR0aW5nIHRoZW0KLSsg ICAgIyBoZXJlIGFsbG93cyB0aGVtIHRvIGJlIG92ZXJyaWRkZW4gaWYgbmVjZXNzYXJ5LgotKyAg ICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKyAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICBfTFRfVEFH VkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMn Ci0rICAgICMgYW5jaWVudCBHTlUgbGQgZGlkbid0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlIGV0 LiBhbC4KLSsgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJ25vLXdob2xlLWFyY2hpdmUn ID4gL2Rldi9udWxsOyB0aGVuCi0rICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYywgJDEpPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyIn LS1uby13aG9sZS1hcmNoaXZlJwotKyAgICBlbHNlCi0rICAgICAgX0xUX1RBR1ZBUih3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYywgJDEpPQotKyAgICBmaQotKyAgICBzdXBwb3J0c19hbm9uX3ZlcnNp b25pbmc9bm8KLSsgICAgY2FzZSBgJExEIC12IDI+JjFgIGluCi0rICAgICAgKlwgW1swMV1dLiog fCAqXCAyLltbMC05XV0uKiB8ICpcIDIuMTAuKikgOzsgIyBjYXRjaCB2ZXJzaW9ucyA8IDIuMTEK LSsgICAgICAqXCAyLjExLjkzLjAuMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7 OyAjIFJINy4zIC4uLgotKyAgICAgICpcIDIuMTEuOTIuMC4xMlwgKikgc3VwcG9ydHNfYW5vbl92 ZXJzaW9uaW5nPXllcyA7OyAjIE1hbmRyYWtlIDguMiAuLi4KLSsgICAgICAqXCAyLjExLiopIDs7 ICMgb3RoZXIgMi4xMSB2ZXJzaW9ucwotKyAgICAgICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmlu Zz15ZXMgOzsKLSsgICAgZXNhYwotKwotKyAgICAjIFNlZSBpZiBHTlUgbGQgc3VwcG9ydHMgc2hh cmVkIGxpYnJhcmllcy4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBhaXhbWzMtOV1dKikK LSsgICAgICAjIE9uIEFJWC9QUEMsIHRoZSBHTlUgbGlua2VyIGlzIHZlcnkgYnJva2VuCi0rICAg ICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0OyB0aGVuCi0rCV9MVF9UQUdWQVIobGRfc2hs aWJzLCAkMSk9bm8KLSsJY2F0IDw8X0xUX0VPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IHRoZSBH TlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuOS4xLCBpcyByZXBvcnRlZAotKyoq KiB0byBiZSB1bmFibGUgdG8gcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gQUlY LgotKyoqKiBUaGVyZWZvcmUsIGxpYnRvb2wgaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMg c3VwcG9ydC4gIElmIHlvdQotKyoqKiByZWFsbHkgY2FyZSBmb3Igc2hhcmVkIGxpYnJhcmllcywg eW91IG1heSB3YW50IHRvIG1vZGlmeSB5b3VyIFBBVEgKLSsqKiogc28gdGhhdCBhIG5vbi1HTlUg bGlua2VyIGlzIGZvdW5kLCBhbmQgdGhlbiByZXN0YXJ0LgotKwotK19MVF9FT0YKLSsgICAgICBm aQotKyAgICAgIDs7Ci0rCi0rICAgIGFtaWdhb3MqKQotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGlu Ci0rICAgICAgcG93ZXJwYykKLSsgICAgICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdh T1M0IC5zbyBzdXBwb3J0Ci0rICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2V4cHN5bV9jbWRzLCAkMSk9JycKLSsgICAgICAgIDs7Ci0rICAgICAgbTY4aykKLSsgICAgICAg ICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvYTJp eGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2Jq ZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0 cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFZFUlNJT04gJG1ham9y IiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFJFVklT SU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFS X0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBh Mml4bGlicmFyeSAtMzIpJwotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCi0rICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9taW51c19MLCAkMSk9eWVzCi0rICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgICA7 OwotKwotKyAgICBiZW9zKikKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBz dXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0rCV9MVF9UQUdWQVIo YWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAotKwkjIEpvc2VwaCBCZWNrZW5i YWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMgb2YgZ2NjCi0rCSMgc3VwcG9y dCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUK LSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwot KyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIGZpCi0r ICAgICAgOzsKLSsKLSsgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAg ICAgICMgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkgaXMgYWN0dWFs bHkgbWVhbmluZ2xlc3MsCi0rICAgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3Ig RExMcy4KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0n LUwkbGliZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11 bnN1cHBvcnRlZAotKyAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9 bm8KLSsgICAgICBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMs ICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5N ICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdc JycvXltbQkNER1JTXV1bWyBdXS9zLy4qW1sgXV1cKFtbXiBdXSpcKS9cMSBEQVRBLydcJycgfCAk U0VEIC1lICdcJycvXltbQUlUV11dW1sgXV0vcy8uKltbIF1dLy8nXCcnIHwgc29ydCB8IHVuaXEg PiAkZXhwb3J0X3N5bWJvbHMnCi0rCi0rICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAg J2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJh c2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCi0rCSMgSWYgdGhlIGV4cG9y dC1zeW1ib2xzIGZpbGUgYWxyZWFkeSBpcyBhIC5kZWYgZmlsZSAoMXN0IGxpbmUKLSsJIyBpcyBF WFBPUlRTKSwgdXNlIGl0IGFzIGlzOyBvdGhlcndpc2UsIHByZXBlbmQuLi4KLSsJX0xUX1RBR1ZB UihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5 bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCi0rCSAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRf b2JqZGlyLyRzb25hbWUuZGVmOwotKwllbHNlCi0rCSAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9v YmpkaXIvJHNvbmFtZS5kZWY7Ci0rCSAgY2F0ICRleHBvcnRfc3ltYm9scyA+PiAkb3V0cHV0X29i amRpci8kc29uYW1lLmRlZjsKLSsJZml+Ci0rCSRDQyAtc2hhcmVkICRvdXRwdXRfb2JqZGlyLyRz b25hbWUuZGVmICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29i amRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0 LWltcGxpYiAtWGxpbmtlciAkbGliJwotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihsZF9zaGxp YnMsICQxKT1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgaW50ZXJpeFtbMy05XV0q KQotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KLSsgICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJwotKyAg ICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCi0r ICAgICAgIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElDIGJlY2F1 c2Ugb2YgYSBicm9rZW4gZ2NjLgotKyAgICAgICMgSW5zdGVhZCwgc2hhcmVkIGxpYnJhcmllcyBh cmUgbG9hZGVkIGF0IGFuIGltYWdlIGJhc2UgKDB4MTAwMDAwMDAgYnkKLSsgICAgICAjIGRlZmF1 bHQpIGFuZCByZWxvY2F0ZWQgaWYgdGhleSBjb25mbGljdCwgd2hpY2ggaXMgYSBzbG93IHZlcnkg bWVtb3J5Ci0rICAgICAgIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBh dm9pZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAotKyAgICAgICMgMjU2IEtpQi1hbGlnbmVkIGlt YWdlIGJhc2UgYmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMwMDAwIGF0IGxpbmsKLSsgICAg ICAjIHRpbWUuICBNb3ZpbmcgdXAgZnJvbSAweDEwMDAwMDAwIGFsc28gYWxsb3dzIG1vcmUgc2Jy aygyKSBzcGFjZS4KLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNo YXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgs JHNvbmFtZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBc KiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJwotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSdzZWQgInMsXixfLCIgJGV4cG9ydF9zeW1ib2xzID4kb3V0cHV0 X29iamRpci8kc29uYW1lLmV4cHN5bX4kQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0tcmV0YWluLXN5bWJv bHMtZmlsZSwkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bSAke3dsfS0taW1hZ2UtYmFzZSxg ZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAk bGliJwotKyAgICAgIDs7Ci0rCi0rICAgIGdudSogfCBsaW51eCogfCB0cGYqIHwgaypic2QqLWdu dSkKLSsgICAgICB0bXBfZGlldD1ubwotKyAgICAgIGlmIHRlc3QgIiRob3N0X29zIiA9IGxpbnV4 LWRpZXRsaWJjOyB0aGVuCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgZGlldFwgKikgdG1w X2RpZXQ9eWVzOzsJIyBsaW51eC1kaWV0bGliYyB3aXRoIHN0YXRpYyBsaW5raW5nICghZGlldC1k eW4pCi0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRFR1JF UCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsIFwKLSsJICYmIHRlc3Qg IiR0bXBfZGlldCIgPSBubwotKyAgICAgIHRoZW4KLSsJdG1wX2FkZGZsYWc9Ci0rCXRtcF9zaGFy ZWRmbGFnPSctc2hhcmVkJwotKwljYXNlICRjY19iYXNlbmFtZSwkaG9zdF9jcHUgaW4KLSsgICAg ICAgIHBnY2MqKQkJCQkjIFBvcnRsYW5kIEdyb3VwIEMgY29tcGlsZXIKLSsJICBfTFRfVEFHVkFS KHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBj b252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29u dmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19j b252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKLSsJICB0bXBfYWRkZmxhZz0n ICRwaWNfZmxhZycKLSsJICA7OwotKwlwZ2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSopCSMgUG9ydGxh bmQgR3JvdXAgZjc3IGFuZCBmOTAgY29tcGlsZXJzCi0rCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29u dmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwi JG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2Vc ImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcg LU1ub21haW4nIDs7Ci0rCWVjYyosaWE2NCogfCBpY2MqLGlhNjQqKQkjIEludGVsIEMgY29tcGls ZXIgb24gaWE2NAotKwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1pYycgOzsKLSsJZWZjKixpYTY0 KiB8IGlmb3J0KixpYTY0KikJIyBJbnRlbCBGb3J0cmFuIGNvbXBpbGVyIG9uIGlhNjQKLSsJICB0 bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMgLW5vZm9yX21haW4nIDs7Ci0rCWlmYyogfCBpZm9ydCop CQkJIyBJbnRlbCBGb3J0cmFuIGNvbXBpbGVyCi0rCSAgdG1wX2FkZGZsYWc9JyAtbm9mb3JfbWFp bicgOzsKLSsJbGY5NSopCQkJCSMgTGFoZXkgRm9ydHJhbiA4LjEKLSsJICBfTFRfVEFHVkFSKHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Ci0rCSAgdG1wX3NoYXJlZGZsYWc9Jy0tc2hhcmVk JyA7OwotKwl4bFtbY0NdXSopCQkJIyBJQk0gWEwgQyA4LjAgb24gUFBDIChkZWFsIHdpdGggeGxm IGJlbG93KQotKwkgIHRtcF9zaGFyZWRmbGFnPSctcW1rc2hyb2JqJwotKwkgIHRtcF9hZGRmbGFn PSA7OwotKwllc2FjCi0rCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgotKwkqU3VuXCBD KikJCQkjIFN1biBDIDUuOQotKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs ICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4g JGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNl PVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVu Y2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgX0xUX1RBR1ZBUihjb21waWxlcl9u ZWVkc19vYmplY3QsICQxKT15ZXMKLSsJICB0bXBfc2hhcmVkZmxhZz0nLUcnIDs7Ci0rCSpTdW5c IEYqKQkJCSMgU3VuIEZvcnRyYW4gOC4zCi0rCSAgdG1wX3NoYXJlZGZsYWc9Jy1HJyA7OwotKwll c2FjCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAnIiR0bXBfc2hhcmVkZmxh ZyIiJHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCi0rICAgICAgICBpZiB0ZXN0ICJ4JHN1cHBv cnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0aGVuCi0rICAgICAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpk aXIvJGxpYm5hbWUudmVyfgotKwkgICAgY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9c KC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAgZWNobyAi bG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCSAgICAkQ0Mg JyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS12ZXJzaW9uLXNjcmlwdCAk e3dsfSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJwotKyAgICAgICAgZmkKLSsK LSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJeGxmKikKLSsJICAjIElCTSBYTCBGb3J0cmFuIDEw LjEgb24gUFBDIGNhbm5vdCBjcmVhdGUgc2hhcmVkIGxpYnMgaXRzZWxmCi0rCSAgX0xUX1RBR1ZB Uih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSctLXdob2xlLWFyY2hpdmUkY29udmVuaWVu Y2UgLS1uby13aG9sZS1hcmNoaXZlJwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPQotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19s ZCwgJDEpPSctcnBhdGggJGxpYmRpcicKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAk c29uYW1lIC1vICRsaWInCi0rCSAgaWYgdGVzdCAieCRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmci ID0geHllczsgdGhlbgotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 J2VjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCSAgICAg IGNhdCAkZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRf b2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJICAgICAgZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0 cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCSAgICAgICRMRCAtc2hhcmVkICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgLXZlcnNpb24tc2NyaXB0ICRv dXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJwotKwkgIGZpCi0rCSAgOzsKLSsJZXNh YwotKyAgICAgIGVsc2UKLSsgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsg ICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIG5ldGJzZCopCi0rICAgICAgaWYgZWNobyBfX0VM Rl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsJX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3MgLW8gJGxpYicKLSsJd2xhcmM9Ci0rICAgICAgZWxzZQotKwlfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJX0xUX1RBR1ZB UihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3lt Ym9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGZpCi0rICAgICAg OzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAgaWYgJExEIC12IDI+JjEgfCAkR1JFUCAnQkZE IDJcLjgnID4gL2Rldi9udWxsOyB0aGVuCi0rCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8K LSsJY2F0IDw8X0xUX0VPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IFRoZSByZWxlYXNlcyAyLjgu KiBvZiB0aGUgR05VIGxpbmtlciBjYW5ub3QgcmVsaWFibHkKLSsqKiogY3JlYXRlIHNoYXJlZCBs aWJyYXJpZXMgb24gU29sYXJpcyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCi0rKioqIGlz IGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0byB1cGdy YWRlIEdOVQotKyoqKiBiaW51dGlscyB0byByZWxlYXNlIDIuOS4xIG9yIG5ld2VyLiAgQW5vdGhl ciBvcHRpb24gaXMgdG8gbW9kaWZ5Ci0rKioqIHlvdXIgUEFUSCBvciBjb21waWxlciBjb25maWd1 cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKLSsqKiogdXNlZCwgYW5kIHRoZW4g cmVzdGFydC4KLSsKLStfTFRfRU9GCi0rICAgICAgZWxpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JF UCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0rCV9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwlfTFRfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1z eW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rICAgICAgZWxzZQotKwlf TFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAg ICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqKQot KyAgICAgIGNhc2UgYCRMRCAtdiAyPiYxYCBpbgotKyAgICAgICAgKlwgW1swMV1dLiogfCAqXCAy LltbMC05XV0uKiB8ICpcIDIuMVtbMC01XV0uKikKLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubwotKwljYXQgPDxfTFRfRU9GIDE+JjIKLSsKLSsqKiogV2FybmluZzogUmVsZWFzZXMgb2Yg dGhlIEdOVSBsaW5rZXIgcHJpb3IgdG8gMi4xNi45MS4wLjMgY2FuIG5vdAotKyoqKiByZWxpYWJs eSBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBTQ08gc3lzdGVtcy4gIFRoZXJlZm9yZSwgbGli dG9vbAotKyoqKiBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgV2UgdXJn ZSB5b3UgdG8gdXBncmFkZSBHTlUKLSsqKiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjE2LjkxLjAu MyBvciBuZXdlci4gIEFub3RoZXIgb3B0aW9uIGlzIHRvIG1vZGlmeQotKyoqKiB5b3VyIFBBVEgg b3IgY29tcGlsZXIgY29uZmlndXJhdGlvbiBzbyB0aGF0IHRoZSBuYXRpdmUgbGlua2VyIGlzCi0r KioqIHVzZWQsIGFuZCB0aGVuIHJlc3RhcnQuCi0rCi0rX0xUX0VPRgotKwk7OwotKwkqKQotKwkg ICMgRm9yIHNlY3VyaXR5IHJlYXNvbnMsIGl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHlv dSBhbHdheXMKLSsJICAjIHVzZSBhYnNvbHV0ZSBwYXRocyBmb3IgbmFtaW5nIHNoYXJlZCBsaWJy YXJpZXMsIGFuZCBleGNsdWRlIHRoZQotKwkgICMgRFRfUlVOUEFUSCB0YWcgZnJvbSBleGVjdXRh YmxlcyBhbmQgbGlicmFyaWVzLiAgQnV0IGRvaW5nIHNvCi0rCSAgIyByZXF1aXJlcyB0aGF0IHlv dSBjb21waWxlIGV2ZXJ5dGhpbmcgdHdpY2UsIHdoaWNoIGlzIGEgcGFpbi4KLSsJICBpZiAkTEQg LS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9u dWxsOyB0aGVuCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVf ZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUg JHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rCSAgZWxzZQotKwkgICAgX0xUX1RBR1ZBUihs ZF9zaGxpYnMsICQxKT1ubwotKwkgIGZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0r Ci0rICAgIHN1bm9zNCopCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExE IC1hc3NlcnQgcHVyZS10ZXh0IC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFncycKLSsgICAgICB3bGFyYz0KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X2RpcmVjdCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3Zh ciwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+ JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVu Ci0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwot KwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9 LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rICAgICAg ZWxzZQotKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgICAgZmkKLSsgICAgICA7 OwotKyAgICBlc2FjCi0rCi0rICAgIGlmIHRlc3QgIiRfTFRfVEFHVkFSKGxkX3NobGlicywgJDEp IiA9IG5vOyB0aGVuCi0rICAgICAgcnVucGF0aF92YXI9Ci0rICAgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Ci0rICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHlu YW1pY19mbGFnX3NwZWMsICQxKT0KLSsgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjLCAkMSk9Ci0rICAgIGZpCi0rICBlbHNlCi0rICAgICMgUE9SVE1FIGZpbGwgaW4gYSBk ZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3RlbSdzIGxpbmtlciAobm90IEdOVSBsZCkKLSsgICAgY2Fz ZSAkaG9zdF9vcyBpbgotKyAgICBhaXgzKikKLSsgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVm aW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKLSsgICAgICBfTFRfVEFHVkFSKGFsd2F5c19leHBv cnRfc3ltYm9scywgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21k cywgJDEpPSckTEQgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAk bGlua2VyX2ZsYWdzIC1iRTokZXhwb3J0X3N5bWJvbHMgLVQ1MTIgLUg1MTIgLWJNOlNSRX4kQVIg JEFSX0ZMQUdTICRsaWIgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScKLSsgICAgICAjIE5vdGU6IHRo aXMgbGlua2VyIGhhcmRjb2RlcyB0aGUgZGlyZWN0b3JpZXMgaW4gTElCUEFUSCBpZiB0aGVyZQot KyAgICAgICMgYXJlIG5vIGRpcmVjdG9yaWVzIHNwZWNpZmllZCBieSAtTC4KLSsgICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9 IHllcyAmJiB0ZXN0IC16ICIkbHRfcHJvZ19jb21waWxlcl9zdGF0aWMiOyB0aGVuCi0rCSMgTmVp dGhlciBkaXJlY3QgaGFyZGNvZGluZyBub3Igc3RhdGljIGxpbmtpbmcgaXMgc3VwcG9ydGVkIHdp dGggYQotKwkjIGJyb2tlbiBjb2xsZWN0Mi4KLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3Qs ICQxKT11bnN1cHBvcnRlZAotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYWl4W1s0LTld XSopCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBPbiBJQTY0 LCB0aGUgbGlua2VyIGRvZXMgcnVuIHRpbWUgbGlua2luZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24n dAotKwkjIGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbC4KLSsJYWl4X3VzZV9ydW50aW1lbGlu a2luZz1ubwotKwlleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0JwotKwlub19lbnRyeV9mbGFnPSIiCi0r ICAgICAgZWxzZQotKwkjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB3ZSBkb24ndCB3YW50 IHRoZSAiLUMiIG9wdGlvbi4KLSsJIyAtQyBtZWFucyBkZW1hbmdsZSB0byBBSVggbm0sIGJ1dCBt ZWFucyBkb24ndCBkZW1hbmdsZSB3aXRoIEdOVSBubQotKwlpZiAkTk0gLVYgMj4mMSB8ICRHUkVQ ICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19j bWRzLCAkMSk9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAo KChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoW3N1 YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ ICRleHBvcnRfc3ltYm9scycKLSsJZWxzZQotKwkgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNf Y21kcywgJDEpPSckTk0gLUJDcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlm ICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYmIChb c3Vic3RyXShcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11 ID4gJGV4cG9ydF9zeW1ib2xzJwotKwlmaQotKwlhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCi0r Ci0rCSMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5v cm1hbAotKwkjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBpcyBzb21ld2hlcmUgaW4gTERG TEFHUywgd2UKLSsJIyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2luZy4KLSsJY2FzZSAkaG9zdF9v cyBpbiBhaXg0LltbMjNdXXxhaXg0LltbMjNdXS4qfGFpeFtbNS05XV0qKQotKwkgIGZvciBsZF9m bGFnIGluICRMREZMQUdTOyBkbwotKwkgIGlmICh0ZXN0ICRsZF9mbGFnID0gIi1icnRsIiB8fCB0 ZXN0ICRsZF9mbGFnID0gIi1XbCwtYnJ0bCIpOyB0aGVuCi0rCSAgICBhaXhfdXNlX3J1bnRpbWVs aW5raW5nPXllcwotKwkgICAgYnJlYWsKLSsJICBmaQotKwkgIGRvbmUKLSsJICA7OwotKwllc2Fj Ci0rCi0rCWV4cF9zeW1fZmxhZz0nLWJleHBvcnQnCi0rCW5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRy eScKLSsgICAgICBmaQotKwotKyAgICAgICMgV2hlbiBsYXJnZSBleGVjdXRhYmxlcyBvciBzaGFy ZWQgb2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBsZCBjYW4KLSsgICAgICAjIGhhdmUgcHJvYmxlbXMg Y3JlYXRpbmcgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgSWYgbGlua2luZyBhIGxpYnJhcnkKLSsg ICAgICAjIG9yIHByb2dyYW0gcmVzdWx0cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBhZGQgLW1t aW5pbWFsLXRvYyB0bwotKyAgICAgICMgQ1hYRkxBR1MvQ0ZMQUdTIGZvciBnKysvZ2NjLiAgSW4g dGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMgbm90Ci0rICAgICAgIyBlbm91Z2ggdG8gZml4IHRoZSBw cm9ibGVtLCBhZGQgLVdsLC1iYmlndG9jIHRvIExERkxBR1MuCi0rCi0rICAgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0 LCAkMSk9eWVzCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQx KT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0n OicKLSsgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKLSsgICAgICBf TFRfVEFHVkFSKGZpbGVfbGlzdF9zcGVjLCAkMSk9JyR7d2x9LWYsJwotKwotKyAgICAgIGlmIHRl c3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bWzAxMl1dfGFp eDQuW1swMTJdXS4qKQotKwkjIFdlIG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0LjIgYW5k IGxvd2VyLCB0aGUgY2hlY2sKLSsJIyBiZWxvdyBmb3IgYnJva2VuIGNvbGxlY3QyIGRvZXNuJ3Qg d29yayB1bmRlciA0LjMrCi0rCSAgY29sbGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1l PWNvbGxlY3QyYAotKwkgIGlmIHRlc3QgLWYgIiRjb2xsZWN0Mm5hbWUiICYmCi0rCSAgIHN0cmlu Z3MgIiRjb2xsZWN0Mm5hbWUiIHwgJEdSRVAgcmVzb2x2ZV9saWJfbmFtZSA+L2Rldi9udWxsCi0r CSAgdGhlbgotKwkgICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xsZWN0MgotKwkgIDoKLSsJICBlbHNl Ci0rCSAgIyBXZSBoYXZlIG9sZCBjb2xsZWN0MgotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9dW5zdXBwb3J0ZWQKLSsJICAjIEl0IGZhaWxzIHRvIGZpbmQgdW5pbnN0YWxsZWQg bGlicmFyaWVzIHdoZW4gdGhlIHVuaW5zdGFsbGVkCi0rCSAgIyBwYXRoIGlzIG5vdCBsaXN0ZWQg aW4gdGhlIGxpYnBhdGguICBTZXR0aW5nIGhhcmRjb2RlX21pbnVzX0wKLSsJICAjIHRvIHVuc3Vw cG9ydGVkIGZvcmNlcyByZWxpbmtpbmcKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0ws ICQxKT15ZXMKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0n LUwkbGliZGlyJwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEp PQotKwkgIGZpCi0rCSAgOzsKLSsJZXNhYwotKwlzaGFyZWRfZmxhZz0nLXNoYXJlZCcKLSsJaWYg dGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCSAgc2hhcmVkX2Zs YWc9IiRzaGFyZWRfZmxhZyAiJyR7d2x9LUcnCi0rCWZpCi0rICAgICAgZWxzZQotKwkjIG5vdCB1 c2luZyBnY2MKLSsJaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBWaXN1YWxB Z2UgQysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVhc2UK LSsJIyBjaG9rZXMgb24gLVdsLC1HLiBUaGUgZm9sbG93aW5nIGxpbmUgaXMgY29ycmVjdDoKLSsJ ICBzaGFyZWRfZmxhZz0nLUcnCi0rCWVsc2UKLSsJICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1l bGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJICAgIHNoYXJlZF9mbGFnPScke3dsfS1HJwotKwkgIGVs c2UKLSsJICAgIHNoYXJlZF9mbGFnPScke3dsfS1iTTpTUkUnCi0rCSAgZmkKLSsJZmkKLSsgICAg ICBmaQotKwotKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LWJleHBhbGwnCi0rICAgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90 IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCi0rICAgICAgIyB1bmRlcnNjb3JlIChfKSwg c28gaXQgaXMgYmV0dGVyIHRvIGdlbmVyYXRlIGEgbGlzdCBvZiBzeW1ib2xzIHRvIGV4cG9ydC4K LSsgICAgICBfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPXllcwotKyAgICAg IGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkjIFdhcm5p bmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRs KSwKLSsJIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBh IGJyb2tlbiBsaWJyYXJ5LgotKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9 Jy1iZXJvaycKLSsgICAgICAgICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0 aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgotKyAgICAgICAgIyBlbXB0eSBleGVjdXRhYmxlLgotKyAg ICAgICAgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgKLSsgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9s aWJwYXRoIgotKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRD QyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5v X2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93X3VuZGVmaW5l ZF9mbGFnfSIgIT0gIngiOyB0aGVuICRFQ0hPICJYJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFn fSIgfCAkWHNlZDsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5 bWJvbHMgJHNoYXJlZF9mbGFnIgotKyAgICAgIGVsc2UKLSsJaWYgdGVzdCAiJGhvc3RfY3B1IiA9 IGlhNjQ7IHRoZW4KLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nJHt3bH0tUiAkbGliZGlyOi91c3IvbGliOi9saWInCi0rCSAgX0xUX1RBR1ZBUihhbGxvd191 bmRlZmluZWRfZmxhZywgJDEpPSIteiBub2RlZnMiCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4 cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNv bmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVy X2ZsYWdzICR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30gJyJcJHt3bH0kZXhwX3N5bV9mbGFn OlwkZXhwb3J0X3N5bWJvbHMiCi0rCWVsc2UKLSsJICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxp YnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgotKwkgIyBlbXB0eSBleGVjdXRhYmxl LgotKwkgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgKLSsJIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRo IgotKwkgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRp bmcgZmxhZ3MsCi0rCSAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkg cHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgotKwkgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2Zs YWcsICQxKT0nICR7d2x9LWJlcm5vdG9rJwotKwkgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVk X2ZsYWcsICQxKT0nICR7d2x9LWJlcm9rJwotKwkgICMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUg cHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcwotKwkgIF9MVF9UQUdWQVIo d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJGNvbnZlbmllbmNlJwotKwkgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT15ZXMKLSsJICAjIFRoaXMgaXMgc2ltaWxhciB0 byBob3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQgbGlicmFyaWVzLgotKwkg IF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyIn IC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50 cnkgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZp bmVkX2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5h ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCi0rCWZpCi0rICAgICAgZmkKLSsgICAgICA7OwotKwot KyAgICBhbWlnYW9zKikKLSsgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgIHBvd2VycGMp Ci0rICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9TNCAuc28gc3VwcG9ydAot KyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAt byAkbGliJwotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp PScnCi0rICAgICAgICA7OwotKyAgICAgIG02OGspCi0rICAgICAgICAgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVD SE8gIiNkZWZpbmUgTkFNRSAkbGlibmFtZSIgPiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5k YXRhfiRFQ0hPICIjZGVmaW5lIExJQlJBUllfSUQgMSIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxp YnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBWRVJTSU9OICRtYWpvciIgPj4gJG91dHB1dF9vYmpk aXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEFSICRBUl9GTEFHUyAkbGliICRsaWJv YmpzfiRSQU5MSUIgJGxpYn4oY2QgJG91dHB1dF9vYmpkaXIgJiYgYTJpeGxpYnJhcnkgLTMyKScK LSsgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0n LUwkbGliZGlyJwotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEp PXllcwotKyAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgYnNkaVtb NDVdXSopCi0rICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0t cmR5bmFtaWMKLSsgICAgICA7OwotKwotKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBj ZWdjYyopCi0rICAgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUg dGhhdCB3ZSBhcmUgdXNpbmcKLSsgICAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysrLgotKyAgICAg ICMgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywgYXMg dGhlcmUgaXMKLSsgICAgICAjIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgotKyAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScgJwotKyAgICAgIF9MVF9UQUdW QVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAotKyAgICAgICMgVGVsbCBs dG1haW4gdG8gbWFrZSAubGliIGZpbGVzLCBub3QgLmEgZmlsZXMuCi0rICAgICAgbGliZXh0PWxp YgotKyAgICAgICMgVGVsbCBsdG1haW4gdG8gbWFrZSAuZGxsIGZpbGVzLCBub3QgLnNvIGZpbGVz LgotKyAgICAgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAgICAgICMgRklYTUU6IFNldHRpbmcgbGlu a25hbWVzIGhlcmUgaXMgYSBiYWQgaGFjay4KLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLW8gJGxpYiAkbGlib2JqcyAkY29tcGlsZXJfZmxhZ3MgYCRFQ0hPICJYJGRl cGxpYnMiIHwgJFhzZWQgLWUgJ1wnJ3MvIC1sYyQvLydcJydgIC1saW5rIC1kbGx+bGlua25hbWVz PScKLSsgICAgICAjIFRoZSBsaW5rZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGJ1aWxkIGEgLmxpYiBm aWxlIGlmIHdlIGJ1aWxkIGEgRExMLgotKyAgICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfZnJv bV9uZXdfY21kcywgJDEpPSd0cnVlJwotKyAgICAgICMgRklYTUU6IFNob3VsZCBsZXQgdGhlIHVz ZXIgc3BlY2lmeSB0aGUgbGliIHByb2dyYW0uCi0rICAgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2 ZV9jbWRzLCAkMSk9J2xpYiAtT1VUOiRvbGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicycKLSsgICAg ICBfTFRfVEFHVkFSKGZpeF9zcmNmaWxlX3BhdGgsICQxKT0nYGN5Z3BhdGggLXcgIiRzcmNmaWxl ImAnCi0rICAgICAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVz LCAkMSk9eWVzCi0rICAgICAgOzsKLSsKLSsgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgICAg ICBfTFRfREFSV0lOX0xJTktFUl9GRUFUVVJFUygkMSkKLSsgICAgICA7OwotKwotKyAgICBkZ3V4 KikKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsgICAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0r ICAgIGZyZWVic2QxKikKLSsgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAg ICAgOzsKLSsKLSsgICAgIyBGcmVlQlNEIDIuMi5bMDEyXSBhbGxvd3MgdXMgdG8gaW5jbHVkZSBj KytydDAubyB0byBnZXQgQysrIGNvbnN0cnVjdG9yCi0rICAgICMgc3VwcG9ydC4gIEZ1dHVyZSB2 ZXJzaW9ucyBkbyB0aGlzIGF1dG9tYXRpY2FsbHksIGJ1dCBhbiBleHBsaWNpdCBjKytydDAubwot KyAgICAjIGRvZXMgbm90IGJyZWFrIGFueXRoaW5nLCBhbmQgaGVscHMgc2lnbmlmaWNhbnRseSAo YXQgdGhlIGNvc3Qgb2YgYSBsaXR0bGUKLSsgICAgIyBleHRyYSBzcGFjZSkuCi0rICAgIGZyZWVi c2QyLjIqKQotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJl YWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgL3Vzci9saWIvYysr cnQwLm8nCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9 Jy1SJGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwot KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAg OzsKLSsKLSsgICAgIyBVbmZvcnR1bmF0ZWx5LCBvbGRlciB2ZXJzaW9ucyBvZiBGcmVlQlNEIDIg ZG8gbm90IGhhdmUgdGhpcyBmZWF0dXJlLgotKyAgICBmcmVlYnNkMiopCi0rICAgICAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVj dCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwot KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAg OzsKLSsKLSsgICAgIyBGcmVlQlNEIDMgYW5kIGdyZWF0ZXIgdXNlcyBnY2MgLXNoYXJlZCB0byBk byBzaGFyZWQgbGlicmFyaWVzLgotKyAgICBmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRo X3ZhciwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgaHB1eDkqKQotKyAgICAgIGlmIHRlc3Qg IiRHQ0MiID0geWVzOyB0aGVuCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAk b3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2IgJHt3bH0kaW5z dGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAk b3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCi0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kTEQgLWIgK2IgJGlu c3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRv dXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICBmaQotKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9JGxpYmRpcicKLSsg ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06Ci0rICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsKLSsgICAgICAjIGhhcmRjb2Rl X21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAotKyAgICAgICMgYnV0IGFz IHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgotKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCi0rICAgICAgOzsKLSsKLSsgICAgaHB1eDEwKikK LSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtYSAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVu Ci0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9 K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWIgK2ggJHNvbmFtZSArYiAkaW5zdGFsbF9saWJkaXIg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAg ICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCV9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9JGxpYmRpcicKLSsJX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9JytiICRsaWJkaXInCi0rCV9M VF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsJX0xUX1RBR1ZBUiho YXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJz b2x1dGUsICQxKT15ZXMKLSsJX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQx KT0nJHt3bH0tRScKLSsJIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFy Y2ggUEFUSCwKLSsJIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnku Ci0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKyAgICAgIGZpCi0rICAg ICAgOzsKLSsKLSsgICAgaHB1eDExKikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtYSAi JHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCWNhc2UgJGhvc3RfY3B1IGluCi0rCWhwcGEqNjQq KQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9K2gg JHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwot KwkgIDs7Ci0rCWlhNjQqKQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCSopCi0r CSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0r aCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwllc2FjCi0rICAgICAgZWxz ZQotKwljYXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0KikKLSsJICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJaWE2NCopCi0rCSAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9 K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz JwotKwkgIDs7Ci0rCSopCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1i ICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJZXNhYwotKyAg ICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCV9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9JGxpYmRp cicKLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKwotKwlj YXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0KnxpYTY0KikKLSsJICBfTFRfVEFHVkFSKGhhcmRj b2RlX2RpcmVjdCwgJDEpPW5vCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFy LCAkMSk9bm8KLSsJICA7OwotKwkqKQotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAk MSk9eWVzCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMK LSsJICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwot KwotKwkgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgs Ci0rCSAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCi0rCSAg X0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0rCSAgOzsKLSsJZXNhYwotKyAg ICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikK LSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8g Ilgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0 ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0r CSMgVHJ5IHRvIHVzZSB0aGUgLWV4cG9ydGVkX3N5bWJvbCBsZCBvcHRpb24sIGlmIGl0IGRvZXMg bm90Ci0rCSMgd29yaywgYXNzdW1lIHRoYXQgLWV4cG9ydHNfZmlsZSBkb2VzIG5vdCB3b3JrIGVp dGhlciBhbmQKLSsJIyBpbXBsaWNpdGx5IGV4cG9ydCBhbGwgc3ltYm9scy4KLSsgICAgICAgIHNh dmVfTERGTEFHUz0iJExERkxBR1MiCi0rICAgICAgICBMREZMQUdTPSIkTERGTEFHUyAtc2hhcmVk ICR7d2x9LWV4cG9ydGVkX3N5bWJvbCAke3dsfWZvbyAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3 bH0vZGV2L251bGwiCi0rICAgICAgICBBQ19MSU5LX0lGRUxTRShpbnQgZm9vKHZvaWQpIHt9LAot KyAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRz b25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24g JHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291 dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAke3dsfS1leHBvcnRzX2ZpbGUgJHt3bH0kZXhwb3J0 X3N5bWJvbHMgLW8gJGxpYicKLSsgICAgICAgICkKLSsgICAgICAgIExERkxBR1M9IiRzYXZlX0xE RkxBR1MiCi0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1l IGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5n IiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25z IC1vICRsaWInCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNo YXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0 ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8 ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1l eHBvcnRzX2ZpbGUgJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rICAgICAgZmkKLSsgICAgICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9J25vJwotKyAgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJk aXInCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9Ogot KyAgICAgIF9MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdW QVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcwotKyAgICAgIDs7Ci0rCi0rICAgIG5ldGJzZCop Ci0rICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2 L251bGw7IHRoZW4KLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVh YmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICMgYS5vdXQKLSsg ICAgICBlbHNlCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtc2hhcmVkIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICAgICAjIEVMRgotKyAgICAg IGZpCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1S JGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAg ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgOzsK LSsKLSsgICAgbmV3c29zNikKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck TEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mn Ci0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0k bGliZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEp PToKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAg ICAgIDs7Ci0rCi0rICAgICpudG8qIHwgKnFueCopCi0rICAgICAgOzsKLSsKLSsgICAgb3BlbmJz ZCopCi0rICAgICAgaWYgdGVzdCAtZiAvdXNyL2xpYmV4ZWMvbGQuc287IHRoZW4KLSsJX0xUX1RB R1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxp YnBhdGhfdmFyLCAkMSk9bm8KLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUs ICQxKT15ZXMKLSsJaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAg X19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dl cnBjIjsgdGhlbgotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk ICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJ ICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19m bGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFp bi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzJwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgIF9MVF9UQUdW QVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCi0rCWVsc2UKLSsJICBj YXNlICRob3N0X29zIGluCi0rCSAgIG9wZW5ic2RbWzAxXV0uKiB8IG9wZW5ic2QyLltbMC03XV0g fCBvcGVuYnNkMi5bWzAtN11dLiopCi0rCSAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFn cycKLSsJICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIk bGliZGlyJwotKwkgICAgIDs7Ci0rCSAgICopCi0rCSAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgICAgIDs7Ci0rCSAgZXNhYwotKwlm aQotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIGZp Ci0rICAgICAgOzsKLSsKLSsgICAgb3MyKikKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbWludXNfTCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2Zs YWcsICQxKT11bnN1cHBvcnRlZAotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRFQ0hPICJMSUJSQVJZICRsaWJuYW1lIElOSVRJTlNUQU5DRSIgPiAkb3V0cHV0X29iamRpci8k bGlibmFtZS5kZWZ+JEVDSE8gIkRFU0NSSVBUSU9OIFwiJGxpYm5hbWVcIiIgPj4gJG91dHB1dF9v YmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPIERBVEEgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu ZGVmfiRFQ0hPICIgU0lOR0xFIE5PTlNIQVJFRCIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu ZGVmfiRFQ0hPIEVYUE9SVFMgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVteGV4cCAk bGlib2JqcyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JENDIC1aZGxsIC1aY3J0ZGxs IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLmRlZicKLSsgICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2Nt ZHMsICQxKT0nZW14aW1wIC1vICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmEgJG91dHB1dF9vYmpk aXIvJGxpYm5hbWUuZGVmJwotKyAgICAgIDs7Ci0rCi0rICAgIG9zZjMqKQotKyAgICAgIGlmIHRl c3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcs ICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0rCV9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRl c3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVy c3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpk aXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihhbGxv d191bmRlZmluZWRfZmxhZywgJDEpPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJwotKwlfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9 ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3Qg LW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhz ZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxp YicKLSsgICAgICBmaQotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQx KT0nbm8nCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3IsICQxKT06Ci0rICAgICAgOzsKLSsKLSsgICAgb3NmNCogfCBvc2Y1KikJ IyBhcyBvc2YzKiB3aXRoIHRoZSBhZGRpdGlvbiBvZiAtbXN5bSBmbGFnCi0rICAgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywg JDEpPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKLSsJX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25hbWUgJHt3bH0k c29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9u ICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtv dXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAg ICBlbHNlCi0rCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC1leHBlY3Rf dW5yZXNvbHZlZCBcKicKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAi WC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0 cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9l eHBzeW1fY21kcywgJDEpPSdmb3IgaSBpbiBgY2F0ICRleHBvcnRfc3ltYm9sc2A7IGRvIHByaW50 ZiAiJXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIgPj4gJGxpYi5leHA7IGRvbmU7IHBy aW50ZiAiJXNcXG4iICItaGlkZGVuIj4+ICRsaWIuZXhwfgotKwkkQ0MgLXNoYXJlZCR7YWxsb3df dW5kZWZpbmVkX2ZsYWd9ICR7d2x9LWlucHV0ICR7d2x9JGxpYi5leHAgJGNvbXBpbGVyX2ZsYWdz ICRsaWJvYmpzICRkZXBsaWJzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIg JiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdp c3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGlifiRSTSAkbGliLmV4cCcK LSsKLSsJIyBCb3RoIGMgYW5kIGN4eCBjb21waWxlciBzdXBwb3J0IC1ycGF0aCBkaXJlY3RseQot KwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLXJwYXRoICRsaWJk aXInCi0rICAgICAgZmkKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAk MSk9J25vJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEp PToKLSsgICAgICA7OwotKwotKyAgICBzb2xhcmlzKikKLSsgICAgICBfTFRfVEFHVkFSKG5vX3Vu ZGVmaW5lZF9mbGFnLCAkMSk9JyAteiBkZWZzJwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVz OyB0aGVuCi0rCXdsYXJjPScke3dsfScKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JENDIC1zaGFyZWQgJHt3bH0teiAke3dsfXRleHQgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCV9MVF9UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBv cnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxv Y2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+Ci0rCSAgJENDIC1zaGFyZWQgJHt3bH0teiAke3dsfXRl eHQgJHt3bH0tTSAke3dsfSRsaWIuZXhwICR7d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKLSsgICAgICBlbHNl Ci0rCWNhc2UgYCRDQyAtViAyPiYxYCBpbgotKwkqIkNvbXBpbGVycyA1LjAiKikKLSsJICB3bGFy Yz0nJwotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyR7YWxsb3dfdW5k ZWZpbmVkX2ZsYWd9IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy X2ZsYWdzJwotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7 IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCgu KlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+Ci0r CSAgJExEIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLU0gJGxpYi5leHAgLWggJHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwotKwkg IDs7Ci0rCSopCi0rCSAgd2xhcmM9JyR7d2x9JwotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oICRzb25hbWUgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZl X2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9y dF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9j YWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJICAkQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFn fSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKLSsJICA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJwot KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAg Y2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIHNvbGFyaXMyLltbMC01XV0gfCBzb2xhcmlzMi5bWzAt NV1dLiopIDs7Ci0rICAgICAgKikKLSsJIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgY29tYmlu ZSBhbmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKLSsJIyBidXQgdW5kZXJzdGFuZHMgYC16IGxp bmtlcl9mbGFnJy4gIEdDQyBkaXNjYXJkcyBpdCB3aXRob3V0IGAkd2wnLAotKwkjIGJ1dCBpcyBj YXJlZnVsIGVub3VnaCBub3QgdG8gcmVvcmRlci4KLSsJIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJp cyAyLjYgKG1heWJlIDIuNS4xPykKLSsJaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJICBf TFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXogJHt3bH1hbGxl eHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcKLSsJZWxzZQot KwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nLXogYWxsZXh0cmFj dCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKLSsJZmkKLSsJOzsKLSsgICAgICBlc2Fj Ci0rICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rICAgICAgOzsK LSsKLSsgICAgc3Vub3M0KikKLSsgICAgICBpZiB0ZXN0ICJ4JGhvc3RfdmVuZG9yIiA9IHhzZXF1 ZW50OyB0aGVuCi0rCSMgVXNlICRDQyB0byBsaW5rIHVuZGVyIHNlcXVlbnQsIGJlY2F1c2UgaXQg dGhyb3dzIGluIHNvbWUgZXh0cmEgLm8KLSsJIyBmaWxlcyB0aGF0IG1ha2UgLmluaXQgYW5kIC5m aW5pIHNlY3Rpb25zIHdvcmsuCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt RyAke3dsfS1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCi0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWFz c2VydCBwdXJlLXRleHQgLUJzdGF0aWMgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy X2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVj dCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwot KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAg OzsKLSsKLSsgICAgc3lzdjQpCi0rICAgICAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KLSsJc25pKQot KwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICBfTFRfVEFHVkFSKGhhcmRj b2RlX2RpcmVjdCwgJDEpPXllcyAjIGlzIHRoaXMgcmVhbGx5IHRydWU/Pz8KLSsJOzsKLSsJc2ll bWVucykKLSsJICAjIyBMRCBpcyBsZCBpdCBtYWtlcyBhIFBMQU1MSUIKLSsJICAjIyBDQyBqdXN0 IG1ha2VzIGEgR3Jvc3NNb2R1bGUuCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JExEIC1HIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICBfTFRf VEFHVkFSKHJlbG9hZF9jbWRzLCAkMSk9JyRDQyAtciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwot KwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KLSsgICAgICAgIDs7Ci0rCW1v dG9yb2xhKQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICBfTFRfVEFH VkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vICNNb3Rvcm9sYSBtYW51YWwgc2F5cyB5ZXMsIGJ1 dCBteSB0ZXN0cyBzYXkgdGhleSBsaWUKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgcnVucGF0 aF92YXI9J0xEX1JVTl9QQVRIJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRo X3ZhciwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQuMyopCi0rICAgICAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hs aWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFn X3NwZWMsICQxKT0nLUJleHBvcnQnCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQqTVAqKQotKyAg ICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy X2ZsYWdzJwotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKwly dW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKwloYXJkY29kZV9ydW5wYXRoX3Zhcj15ZXMKLSsJX0xU X1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAg IHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5c3Y1VW5peFdhcmU3LltbMDFdXS5bWzEw XV0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAuW1swMjRdXSopCi0rICAgICAgX0xUX1RBR1ZB Uihub191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LHRleHQnCi0rICAgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgn Ci0rCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3 bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwot KyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9 LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJ X0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0 OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBzeXN2NSog fCBzY28zLjJ2NSogfCBzY281djYqKQotKyAgICAgICMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXog ZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90Ci0rICAgICAgIyBsaW5r IHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2VkIGZyb20gbGli YyB0bwotKyAgICAgICMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJv dXQgbm8gbGlicmFyeSB3b3VsZAotKyAgICAgICMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdl J3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKLSsgICAgICAjIHRob3VnaCwgd2hp Y2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5kZWQK LSsgICAgICAjIGFzIC16IGRlZnMuCi0rICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxh ZywgJDEpPScke3dsfS16LHRleHQnCi0rICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRf ZmxhZywgJDEpPScke3dsfS16LG5vZGVmcycKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k c19uZWVkX2xjLCAkMSk9bm8KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92 YXIsICQxKT1ubwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywg JDEpPScke3dsfS1SLCRsaWJkaXInCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yLCAkMSk9JzonCi0rICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAk MSk9eWVzCi0rICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0n JHt3bH0tQmV4cG9ydCcKLSsgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCi0rCi0rICAg ICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGVs c2UKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJX0xUX1RBR1ZB UihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRf c3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICB1dHM0KikKLSsgICAgICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICopCi0rICAg ICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsK LSsgICAgaWYgdGVzdCB4JGhvc3RfdmVuZG9yID0geHNuaTsgdGhlbgotKyAgICAgIGNhc2UgJGhv c3QgaW4KLSsgICAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQuMyogfCBzeXN2NSopCi0r CV9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUJsYXJnZWR5 bnN5bScKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rICBmaQotK10pCi0rQUNfTVNHX1JF U1VMVChbJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSldKQotK3Rlc3QgIiRfTFRfVEFHVkFSKGxk X3NobGlicywgJDEpIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KLSsKLStfTFRfVEFHVkFS KHdpdGhfZ251X2xkLCAkMSk9JHdpdGhfZ251X2xkCi0rCi0rX0xUX0RFQ0woW10sIFtsaWJleHRd LCBbMF0sIFtPbGQgYXJjaGl2ZSBzdWZmaXggKG5vcm1hbGx5ICJhIildKWRubAotK19MVF9ERUNM KFtdLCBbc2hyZXh0X2NtZHNdLCBbMV0sIFtTaGFyZWQgbGlicmFyeSBzdWZmaXggKG5vcm1hbGx5 ICIuc28iKV0pZG5sCi0rX0xUX0RFQ0woW10sIFtleHRyYWN0X2V4cHN5bXNfY21kc10sIFsyXSwK LSsgICAgW1RoZSBjb21tYW5kcyB0byBleHRyYWN0IHRoZSBleHBvcnRlZCBzeW1ib2wgbGlzdCBm cm9tIGEgc2hhcmVkIGFyY2hpdmVdKQotKwotKyMKLSsjIERvIHdlIG5lZWQgdG8gZXhwbGljaXRs eSBsaW5rIGxpYmM/Ci0rIwotK2Nhc2UgIngkX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9s YywgJDEpIiBpbgotK3h8eHllcykKLSsgICMgQXNzdW1lIC1sYyBzaG91bGQgYmUgYWRkZWQKLSsg IF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT15ZXMKLSsKLSsgIGlmIHRlc3Qg IiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBj YXNlICRfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpIGluCi0rICAgIConficqKQotKyAgICAg ICMgRklYTUU6IHdlIG1heSBoYXZlIHRvIGRlYWwgd2l0aCBtdWx0aS1jb21tYW5kIHNlcXVlbmNl cy4KLSsgICAgICA7OwotKyAgICAnJENDICcqKQotKyAgICAgICMgVGVzdCB3aGV0aGVyIHRoZSBj b21waWxlciBpbXBsaWNpdGx5IGxpbmtzIHdpdGggLWxjIHNpbmNlIG9uIHNvbWUKLSsgICAgICAj IHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBjb21lIGJlZm9yZSAtbGMuIElmIGdjYyBhbHJlYWR5IHBh c3NlcyAtbGMKLSsgICAgICAjIHRvIGxkLCBkb24ndCBhZGQgLWxjIGJlZm9yZSAtbGdjYy4KLSsg ICAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxp bmtlZCBpbl0pCi0rICAgICAgJFJNIGNvbmZ0ZXN0KgotKyAgICAgIGVjaG8gIiRsdF9zaW1wbGVf Y29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwotKyAgICAgIGlmIEFDX1RS WV9FVkFMKGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXJyOyB0aGVuCi0rICAgICAgICBzb25hbWU9 Y29uZnRlc3QKLSsgICAgICAgIGxpYj1jb25mdGVzdAotKyAgICAgICAgbGlib2Jqcz1jb25mdGVz dC4kYWNfb2JqZXh0Ci0rICAgICAgICBkZXBsaWJzPQotKyAgICAgICAgd2w9JF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl93bCwgJDEpCi0rCXBpY19mbGFnPSRfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfcGljLCAkMSkKLSsgICAgICAgIGNvbXBpbGVyX2ZsYWdzPS12Ci0rICAgICAgICBs aW5rZXJfZmxhZ3M9LXYKLSsgICAgICAgIHZlcnN0cmluZz0KLSsgICAgICAgIG91dHB1dF9vYmpk aXI9LgotKyAgICAgICAgbGlibmFtZT1jb25mdGVzdAotKyAgICAgICAgbHRfc2F2ZV9hbGxvd191 bmRlZmluZWRfZmxhZz0kX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpCi0rICAg ICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ci0rICAgICAgICBpZiBB Q19UUllfRVZBTChfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpIDJcPlwmMSBcfCAkR1JFUCBc IiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxKQotKyAgICAgICAgdGhlbgotKwkgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwotKyAgICAgICAgZWxzZQotKwkgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT15ZXMKLSsgICAgICAgIGZpCi0rICAgICAg ICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JGx0X3NhdmVfYWxsb3dfdW5k ZWZpbmVkX2ZsYWcKLSsgICAgICBlbHNlCi0rICAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUK LSsgICAgICBmaQotKyAgICAgICRSTSBjb25mdGVzdCoKLSsgICAgICBBQ19NU0dfUkVTVUxUKFsk X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpXSkKLSsgICAgICA7OwotKyAgICBl c2FjCi0rICBmaQotKyAgOzsKLStlc2FjCi0rCi0rX0xUX1RBR0RFQ0woW2J1aWxkX2xpYnRvb2xf bmVlZF9sY10sIFthcmNoaXZlX2NtZHNfbmVlZF9sY10sIFswXSwKLSsgICAgW1doZXRoZXIgb3Ig bm90IHRvIGFkZCAtbGMgZm9yIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXNdKQotK19MVF9UQUdE RUNMKFthbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXNdLAotKyAgICBbZW5h YmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc10sIFswXSwKLSsgICAgW1doZXRoZXIgb3Ig bm90IHRvIGRpc2FsbG93IHNoYXJlZCBsaWJzIHdoZW4gcnVudGltZSBsaWJzIGFyZSBzdGF0aWNd KQotK19MVF9UQUdERUNMKFtdLCBbZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjXSwgWzFdLAotKyAg ICBbQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVuc10pCi0rX0xUX1RBR0RF Q0woW10sIFt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY10sIFsxXSwKLSsgICAgW0NvbXBpbGVyIGZs YWcgdG8gZ2VuZXJhdGUgc2hhcmVkIG9iamVjdHMgZGlyZWN0bHkgZnJvbSBhcmNoaXZlc10pCi0r X0xUX1RBR0RFQ0woW10sIFtjb21waWxlcl9uZWVkc19vYmplY3RdLCBbMV0sCi0rICAgIFtXaGV0 aGVyIHRoZSBjb21waWxlciBjb3BlcyB3aXRoIHBhc3Npbmcgbm8gb2JqZWN0cyBkaXJlY3RseV0p Ci0rX0xUX1RBR0RFQ0woW10sIFtvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzXSwgWzJdLAotKyAg ICBbQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZV0pCi0r X0xUX1RBR0RFQ0woW10sIFtvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc10sIFsyXSwKLSsg ICAgW0NyZWF0ZSBhIHRlbXBvcmFyeSBvbGQtc3R5bGUgYXJjaGl2ZSB0byBsaW5rIGluc3RlYWQg b2YgYSBzaGFyZWQgYXJjaGl2ZV0pCi0rX0xUX1RBR0RFQ0woW10sIFthcmNoaXZlX2NtZHNdLCBb Ml0sIFtDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgc2hhcmVkIGFyY2hpdmVdKQotK19MVF9UQUdE RUNMKFtdLCBbYXJjaGl2ZV9leHBzeW1fY21kc10sIFsyXSkKLStfTFRfVEFHREVDTChbXSwgW21v ZHVsZV9jbWRzXSwgWzJdLAotKyAgICBbQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxl IG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBidWlsZGluZwotKyAgICBhIHNoYXJlZCBhcmNoaXZl Ll0pCi0rX0xUX1RBR0RFQ0woW10sIFttb2R1bGVfZXhwc3ltX2NtZHNdLCBbMl0pCi0rX0xUX1RB R0RFQ0woW10sIFt3aXRoX2dudV9sZF0sIFsxXSwKLSsgICAgW1doZXRoZXIgd2UgYXJlIGJ1aWxk aW5nIHdpdGggR05VIGxkIG9yIG5vdF0pCi0rX0xUX1RBR0RFQ0woW10sIFthbGxvd191bmRlZmlu ZWRfZmxhZ10sIFsxXSwKLSsgICAgW0ZsYWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3 aXRoIHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0XSkKLStfTFRfVEFHREVDTChbXSwgW25v X3VuZGVmaW5lZF9mbGFnXSwgWzFdLAotKyAgICBbRmxhZyB0aGF0IGVuZm9yY2VzIG5vIHVuZGVm aW5lZCBzeW1ib2xzXSkKLStfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNdLCBbMV0sCi0rICAgIFtGbGFnIHRvIGhhcmRjb2RlICRsaWJkaXIgaW50byBhIGJpbmFyeSBk dXJpbmcgbGlua2luZy4KLSsgICAgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiAkbGliZGlyIGRvZXMg bm90IGV4aXN0XSkKLStfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf bGRdLCBbMV0sCi0rICAgIFtbSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcgdG8gaGFy ZGNvZGUgJGxpYmRpciBpbnRvIGEgYmluYXJ5Ci0rICAgIGR1cmluZyBsaW5raW5nLiAgVGhpcyBt dXN0IHdvcmsgZXZlbiBpZiAkbGliZGlyIGRvZXMgbm90IGV4aXN0XV0pCi0rX0xUX1RBR0RFQ0wo W10sIFtoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yXSwgWzFdLAotKyAgICBbV2hldGhlciB3ZSBu ZWVkIGEgc2luZ2xlICItcnBhdGgiIGZsYWcgd2l0aCBhIHNlcGFyYXRlZCBhcmd1bWVudF0pCi0r X0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9kaXJlY3RdLCBbMF0sCi0rICAgIFtTZXQgdG8gInll cyIgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRj b2RlcwotKyAgICBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeV0pCi0rX0xUX1RBR0RFQ0wo W10sIFtoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVdLCBbMF0sCi0rICAgIFtTZXQgdG8gInllcyIg aWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2Rl cwotKyAgICBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeSBhbmQgdGhlIHJlc3VsdGluZyBs aWJyYXJ5IGRlcGVuZGVuY3kgaXMKLSsgICAgImFic29sdXRlIiwgaS5lIGltcG9zc2libGUgdG8g Y2hhbmdlIGJ5IHNldHRpbmcgJHtzaGxpYnBhdGhfdmFyfSBpZiB0aGUKLSsgICAgbGlicmFyeSBp cyByZWxvY2F0ZWRdKQotK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfbWludXNfTF0sIFswXSwK LSsgICAgW1NldCB0byAieWVzIiBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBkdXJpbmcgbGlua2lu ZyBoYXJkY29kZXMgRElSCi0rICAgIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnldKQotK19MVF9U QUdERUNMKFtdLCBbaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl0sIFswXSwKLSsgICAgW1NldCB0byAi eWVzIiBpZiB1c2luZyBTSExJQlBBVEhfVkFSPURJUiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMg RElSCi0rICAgIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnldKQotK19MVF9UQUdERUNMKFtdLCBb aGFyZGNvZGVfYXV0b21hdGljXSwgWzBdLAotKyAgICBbU2V0IHRvICJ5ZXMiIGlmIGJ1aWxkaW5n IGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElSCi0rICAgIGludG8g dGhlIGxpYnJhcnkgYW5kIGFsbCBzdWJzZXF1ZW50IGxpYnJhcmllcyBhbmQgZXhlY3V0YWJsZXMg bGlua2VkCi0rICAgIGFnYWluc3QgaXRdKQotK19MVF9UQUdERUNMKFtdLCBbaW5oZXJpdF9ycGF0 aF0sIFswXSwKLSsgICAgW1NldCB0byB5ZXMgaWYgbGlua2VyIGFkZHMgcnVudGltZSBwYXRocyBv ZiBkZXBlbmRlbnQgbGlicmFyaWVzCi0rICAgIHRvIHJ1bnRpbWUgcGF0aCBsaXN0XSkKLStfTFRf VEFHREVDTChbXSwgW2xpbmtfYWxsX2RlcGxpYnNdLCBbMF0sCi0rICAgIFtXaGV0aGVyIGxpYnRv b2wgbXVzdCBsaW5rIGEgcHJvZ3JhbSBhZ2FpbnN0IGFsbCBpdHMgZGVwZW5kZW5jeSBsaWJyYXJp ZXNdKQotK19MVF9UQUdERUNMKFtdLCBbZml4X3NyY2ZpbGVfcGF0aF0sIFsxXSwKLSsgICAgW0Zp eCB0aGUgc2hlbGwgdmFyaWFibGUgJHNyY2ZpbGUgZm9yIHRoZSBjb21waWxlcl0pCi0rX0xUX1RB R0RFQ0woW10sIFthbHdheXNfZXhwb3J0X3N5bWJvbHNdLCBbMF0sCi0rICAgIFtTZXQgdG8gInll cyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWRdKQotK19MVF9UQUdERUNMKFtdLCBb ZXhwb3J0X3N5bWJvbHNfY21kc10sIFsyXSwKLSsgICAgW1RoZSBjb21tYW5kcyB0byBsaXN0IGV4 cG9ydGVkIHN5bWJvbHNdKQotK19MVF9UQUdERUNMKFtdLCBbZXhjbHVkZV9leHBzeW1zXSwgWzFd LAotKyAgICBbU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2Fk ZWQgc3ltYm9sc10pCi0rX0xUX1RBR0RFQ0woW10sIFtpbmNsdWRlX2V4cHN5bXNdLCBbMV0sCi0r ICAgIFtTeW1ib2xzIHRoYXQgbXVzdCBhbHdheXMgYmUgZXhwb3J0ZWRdKQotK19MVF9UQUdERUNM KFtdLCBbcHJlbGlua19jbWRzXSwgWzJdLAotKyAgICBbQ29tbWFuZHMgbmVjZXNzYXJ5IGZvciBs aW5raW5nIHByb2dyYW1zIChhZ2FpbnN0IGxpYnJhcmllcykgd2l0aCB0ZW1wbGF0ZXNdKQotK19M VF9UQUdERUNMKFtdLCBbZmlsZV9saXN0X3NwZWNdLCBbMV0sCi0rICAgIFtTcGVjaWZ5IGZpbGVu YW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXNdKQotK2RubCBGSVhNRTogTm90IHlldCBpbXBsZW1l bnRlZAotK2RubCBfTFRfVEFHREVDTChbXSwgW3RocmVhZF9zYWZlX2ZsYWdfc3BlY10sIFsxXSwK LStkbmwgICAgW0NvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgdGhyZWFkIHNhZmUgb2JqZWN0c10p Ci0rXSkjIF9MVF9MSU5LRVJfU0hMSUJTCi0rCi0rCi0rIyBfTFRfTEFOR19DX0NPTkZJRyhbVEFH XSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZp Z3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEMgY29tcGlsZXIgYXJlIHN1aXRhYmx5Ci0rIyBkZWZp bmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklH IHRvIHdyaXRlCi0rIyB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCi0r bTRfZGVmdW4oW19MVF9MQU5HX0NfQ09ORklHXSwKLStbbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdS RVBdKWRubAotK2x0X3NhdmVfQ0M9IiRDQyIKLStBQ19MQU5HX1BVU0goQykKLSsKLSsjIFNvdXJj ZSBmaWxlIGV4dGVuc2lvbiBmb3IgQyB0ZXN0IHNvdXJjZXMuCi0rYWNfZXh0PWMKLSsKLSsjIE9i amVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgQyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0 PW8KLStfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKLSsKLSsjIENvZGUgdG8gYmUgdXNl ZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwotK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0i aW50IHNvbWVfdmFyaWFibGUgPSAwOyIKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUg bGluayB0ZXN0cwotK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0naW50IG1haW4oKXtyZXR1cm4o MCk7fScKLSsKLStfTFRfVEFHX0NPTVBJTEVSCi0rIyBTYXZlIHRoZSBkZWZhdWx0IGNvbXBpbGVy LCBzaW5jZSBpdCBnZXRzIG92ZXJ3cml0dGVuIHdoZW4gdGhlIG90aGVyCi0rIyB0YWdzIGFyZSBi ZWluZyB0ZXN0ZWQsIGFuZCBfTFRfVEFHVkFSKGNvbXBpbGVyLCBbXSkgaXMgYSBOT1AuCi0rY29t cGlsZXJfREVGQVVMVD0kQ0MKLSsKLSsjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2lt cGxlIHRlc3QgY29kZQotK19MVF9DT01QSUxFUl9CT0lMRVJQTEFURQotK19MVF9MSU5LRVJfQk9J TEVSUExBVEUKLSsKLSsjIyBDQVZFQVQgRU1QVE9SOgotKyMjIFRoZXJlIGlzIG5vIGVuY2Fwc3Vs YXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCi0rIyMgdGhl IHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBr bm93IGV4YWN0bHkKLSsjIyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4KLStpZiB0ZXN0IC1uICIkY29t cGlsZXIiOyB0aGVuCi0rICBfTFRfQ09NUElMRVJfTk9fUlRUSSgkMSkKLSsgIF9MVF9DT01QSUxF Ul9QSUMoJDEpCi0rICBfTFRfQ09NUElMRVJfQ19PKCQxKQotKyAgX0xUX0NPTVBJTEVSX0ZJTEVf TE9DS1MoJDEpCi0rICBfTFRfTElOS0VSX1NITElCUygkMSkKLSsgIF9MVF9TWVNfRFlOQU1JQ19M SU5LRVIoJDEpCi0rICBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgoJDEpCi0rICBMVF9TWVNf RExPUEVOX1NFTEYKLSsgIF9MVF9DTURfU1RSSVBMSUIKLSsKLSsgICMgUmVwb3J0IHdoaWNoIGxp YnJhcnkgdHlwZXMgd2lsbCBhY3R1YWxseSBiZSBidWlsdAotKyAgQUNfTVNHX0NIRUNLSU5HKFtp ZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQotKyAgQUNfTVNHX1JFU1VMVChb JGNhbl9idWlsZF9zaGFyZWRdKQotKwotKyAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1 aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQotKyAgdGVzdCAiJGNhbl9idWlsZF9zaGFyZWQiID0gIm5v IiAmJiBlbmFibGVfc2hhcmVkPW5vCi0rCi0rICAjIE9uIEFJWCwgc2hhcmVkIGxpYnJhcmllcyBh bmQgc3RhdGljIGxpYnJhcmllcyB1c2UgdGhlIHNhbWUgbmFtZXNwYWNlLCBhbmQKLSsgICMgYXJl IGFsbCBidWlsdCBmcm9tIFBJQy4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGFpeDMqKQotKyAg ICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwotKyAgICBp ZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgotKyAgICAgIGFyY2hpdmVfY21kcz0iJGFyY2hpdmVf Y21kc35cJFJBTkxJQiBcJGxpYiIKLSsgICAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFOTElCICRs aWInCi0rICAgIGZpCi0rICAgIDs7Ci0rCi0rICBhaXhbWzQtOV1dKikKLSsgICAgaWYgdGVzdCAi JGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5v IDsgdGhlbgotKyAgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3Rh dGljPW5vCi0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rICBBQ19NU0dfUkVTVUxUKFskZW5h YmxlX3NoYXJlZF0pCi0rCi0rICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc3Rh dGljIGxpYnJhcmllc10pCi0rICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3NoYXJlZCBvciBl bmFibGVfc3RhdGljIGlzIHllcy4KLSsgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyB8fCBl bmFibGVfc3RhdGljPXllcwotKyAgQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zdGF0aWNdKQotKwot KyAgX0xUX0NPTkZJRygkMSkKLStmaQotK0FDX0xBTkdfUE9QCi0rQ0M9IiRsdF9zYXZlX0NDIgot K10pIyBfTFRfTEFOR19DX0NPTkZJRwotKwotKwotKyMgX0xUX1BST0dfQ1hYCi0rIyAtLS0tLS0t LS0tLS0KLSsjIFNpbmNlIEFDX1BST0dfQ1hYIGlzIGJyb2tlbiwgaW4gdGhhdCBpdCByZXR1cm5z IGcrKyBpZiB0aGVyZSBpcyBubyBjKysKLSsjIGNvbXBpbGVyLCB3ZSBoYXZlIG91ciBvd24gdmVy c2lvbiBoZXJlLgotK200X2RlZnVuKFtfTFRfUFJPR19DWFhdLAotK1sKLStwdXNoZGVmKFtBQ19N U0dfRVJST1JdLCBbX2x0X2NhdWdodF9DWFhfZXJyb3I9eWVzXSkKLStBQ19QUk9HX0NYWAotK2lm IHRlc3QgLW4gIiRDWFgiICYmICggdGVzdCAiWCRDWFgiICE9ICJYbm8iICYmCi0rICAgICggKHRl c3QgIlgkQ1hYIiA9ICJYZysrIiAmJiBgZysrIC12ID4vZGV2L251bGwgMj4mMWAgKSB8fAotKyAg ICAodGVzdCAiWCRDWFgiICE9ICJYZysrIikpKSA7IHRoZW4KLSsgIEFDX1BST0dfQ1hYQ1BQCi0r ZWxzZQotKyAgX2x0X2NhdWdodF9DWFhfZXJyb3I9eWVzCi0rZmkKLStwb3BkZWYoW0FDX01TR19F UlJPUl0pCi0rXSkjIF9MVF9QUk9HX0NYWAotKwotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMg Y29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW19MVF9QUk9HX0NYWF0sIFtdKQotKwotKwot KyMgX0xUX0xBTkdfQ1hYX0NPTkZJRyhbVEFHXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0rIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIGEgQysr IGNvbXBpbGVyIGFyZSBzdWl0YWJseQotKyMgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUg c3Vic2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRyB0byB3cml0ZQotKyMgdGhlIGNvbXBpbGVy IGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgotK200X2RlZnVuKFtfTFRfTEFOR19DWFhfQ09O RklHXSwKLStbQUNfUkVRVUlSRShbX0xUX1BST0dfQ1hYXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRf RklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5s Ci0rCi0rQUNfTEFOR19QVVNIKEMrKykKLStfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xj LCAkMSk9bm8KLStfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ci0rX0xUX1RB R1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubwotK19MVF9UQUdWQVIoYXJjaGl2ZV9l eHBzeW1fY21kcywgJDEpPQotK19MVF9UQUdWQVIoY29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9 bm8KLStfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQotK19MVF9UQUdW QVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KLStfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9h YnNvbHV0ZSwgJDEpPW5vCi0rX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSk9Ci0rX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9Ci0rX0xU X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9Ci0rX0xUX1RBR1ZBUihoYXJk Y29kZV9taW51c19MLCAkMSk9bm8KLStfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIs ICQxKT11bnN1cHBvcnRlZAotK19MVF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSk9bm8K LStfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT1ubwotK19MVF9UQUdWQVIobW9kdWxlX2Nt ZHMsICQxKT0KLStfTFRfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21kcywgJDEpPQotK19MVF9UQUdW QVIobGlua19hbGxfZGVwbGlicywgJDEpPXVua25vd24KLStfTFRfVEFHVkFSKG9sZF9hcmNoaXZl X2NtZHMsICQxKT0kb2xkX2FyY2hpdmVfY21kcwotK19MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2Zs YWcsICQxKT0KLStfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Ci0rX0xU X1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9bm8KLSsKLSsj IFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgQysrIHRlc3Qgc291cmNlcy4KLSthY19leHQ9Y3Bw Ci0rCi0rIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEMrKyB0ZXN0IHNvdXJj ZXMuCi0rb2JqZXh0PW8KLStfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKLSsKLSsjIE5v IHNlbnNlIGluIHJ1bm5pbmcgYWxsIHRoZXNlIHRlc3RzIGlmIHdlIGFscmVhZHkgZGV0ZXJtaW5l ZCB0aGF0Ci0rIyB0aGUgQ1hYIGNvbXBpbGVyIGlzbid0IHdvcmtpbmcuICBTb21lIHZhcmlhYmxl cyAobGlrZSBlbmFibGVfc2hhcmVkKQotKyMgYXJlIGN1cnJlbnRseSBhc3N1bWVkIHRvIGFwcGx5 IHRvIGFsbCBjb21waWxlcnMgb24gdGhpcyBwbGF0Zm9ybSwKLSsjIGFuZCB3aWxsIGJlIGNvcnJ1 cHRlZCBieSBzZXR0aW5nIHRoZW0gYmFzZWQgb24gYSBub24td29ya2luZyBjb21waWxlci4KLStp ZiB0ZXN0ICIkX2x0X2NhdWdodF9DWFhfZXJyb3IiICE9IHllczsgdGhlbgotKyAgIyBDb2RlIHRv IGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKLSsgIGx0X3NpbXBsZV9jb21waWxlX3Rl c3RfY29kZT0iaW50IHNvbWVfdmFyaWFibGUgPSAwOyIKLSsKLSsgICMgQ29kZSB0byBiZSB1c2Vk IGluIHNpbXBsZSBsaW5rIHRlc3RzCi0rICBsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9J2ludCBt YWluKGludCwgY2hhciAqW1tdXSkgeyByZXR1cm4oMCk7IH0nCi0rCi0rICAjIGx0bWFpbiBvbmx5 IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBz ZXQuCi0rICBfTFRfVEFHX0NPTVBJTEVSCi0rCi0rICAjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxh dGUgb2Ygc2ltcGxlIHRlc3QgY29kZQotKyAgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCi0rICBf TFRfTElOS0VSX0JPSUxFUlBMQVRFCi0rCi0rICAjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBu YW1lIHdpdGggYXJndW1lbnRzLgotKyAgbHRfc2F2ZV9DQz0kQ0MKLSsgIGx0X3NhdmVfTEQ9JExE Ci0rICBsdF9zYXZlX0dDQz0kR0NDCi0rICBHQ0M9JEdYWAotKyAgbHRfc2F2ZV93aXRoX2dudV9s ZD0kd2l0aF9nbnVfbGQKLSsgIGx0X3NhdmVfcGF0aF9MRD0kbHRfY3ZfcGF0aF9MRAotKyAgaWYg dGVzdCAtbiAiJHtsdF9jdl9wcm9nX2dudV9sZGN4eCtzZXR9IjsgdGhlbgotKyAgICBsdF9jdl9w cm9nX2dudV9sZD0kbHRfY3ZfcHJvZ19nbnVfbGRjeHgKLSsgIGVsc2UKLSsgICAgJGFzX3Vuc2V0 IGx0X2N2X3Byb2dfZ251X2xkCi0rICBmaQotKyAgaWYgdGVzdCAtbiAiJHtsdF9jdl9wYXRoX0xE Q1hYK3NldH0iOyB0aGVuCi0rICAgIGx0X2N2X3BhdGhfTEQ9JGx0X2N2X3BhdGhfTERDWFgKLSsg IGVsc2UKLSsgICAgJGFzX3Vuc2V0IGx0X2N2X3BhdGhfTEQKLSsgIGZpCi0rICB0ZXN0IC16ICIk e0xEQ1hYK3NldH0iIHx8IExEPSRMRENYWAotKyAgQ0M9JHtDWFgtImMrKyJ9Ci0rICBjb21waWxl cj0kQ0MKLSsgIF9MVF9UQUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKLSsgIF9MVF9DQ19CQVNFTkFN RShbJGNvbXBpbGVyXSkKLSsKLSsgIGlmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KLSsgICAg IyBXZSBkb24ndCB3YW50IC1mbm8tZXhjZXB0aW9uIHdoZW4gY29tcGlsaW5nIEMrKyBjb2RlLCBz byBzZXQgdGhlCi0rICAgICMgbm9fYnVpbHRpbl9mbGFnIHNlcGFyYXRlbHkKLSsgICAgaWYgdGVz dCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf bm9fYnVpbHRpbl9mbGFnLCAkMSk9JyAtZm5vLWJ1aWx0aW4nCi0rICAgIGVsc2UKLSsgICAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9Ci0rICAgIGZp Ci0rCi0rICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgICAgIyBTZXQgdXAgZGVm YXVsdCBHTlUgQysrIGNvbmZpZ3VyYXRpb24KLSsKLSsgICAgICBMVF9QQVRIX0xECi0rCi0rICAg ICAgIyBDaGVjayBpZiBHTlUgQysrIHVzZXMgR05VIGxkIGFzIHRoZSB1bmRlcmx5aW5nIGxpbmtl ciwgc2luY2UgdGhlCi0rICAgICAgIyBhcmNoaXZpbmcgY29tbWFuZHMgYmVsb3cgYXNzdW1lIHRo YXQgR05VIGxkIGlzIGJlaW5nIHVzZWQuCi0rICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9 IHllczsgdGhlbgotKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGli JwotKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0 YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsKLSsgICAgICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAk e3dsfSRsaWJkaXInCi0rICAgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl YywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCi0rCi0rICAgICAgICAjIElmIGFyY2hpdmVf Y21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBlbXB0eQotKyAgICAgICAgIyBY WFggSSB0aGluayB3bGFyYyBjYW4gYmUgZWxpbWluYXRlZCBpbiBsdGNmLWN4eCwgYnV0IEkgbmVl ZCB0bwotKyAgICAgICAgIyAgICAgaW52ZXN0aWdhdGUgaXQgYSBsaXR0bGUgYml0IG1vcmUuIChN TSkKLSsgICAgICAgIHdsYXJjPScke3dsfScKLSsKLSsgICAgICAgICMgYW5jaWVudCBHTlUgbGQg ZGlkbid0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlIGV0LiBhbC4KLSsgICAgICAgIGlmIGV2YWwg ImAkQ0MgLXByaW50LXByb2ctbmFtZT1sZGAgLS1oZWxwIDI+JjEiIHwKLSsJICAkR1JFUCAnbm8t d2hvbGUtYXJjaGl2ZScgPiAvZGV2L251bGw7IHRoZW4KLSsgICAgICAgICAgX0xUX1RBR1ZBUih3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252 ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJwotKyAgICAgICAgZWxzZQotKyAg ICAgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Ci0rICAgICAg ICBmaQotKyAgICAgIGVsc2UKLSsgICAgICAgIHdpdGhfZ251X2xkPW5vCi0rICAgICAgICB3bGFy Yz0KLSsKLSsgICAgICAgICMgQSBnZW5lcmljIGFuZCB2ZXJ5IHNpbXBsZSBkZWZhdWx0IHNoYXJl ZCBsaWJyYXJ5IGNyZWF0aW9uCi0rICAgICAgICAjIGNvbW1hbmQgZm9yIEdOVSBDKysgZm9yIHRo ZSBjYXNlIHdoZXJlIGl0IHVzZXMgdGhlIG5hdGl2ZQotKyAgICAgICAgIyBsaW5rZXIsIGluc3Rl YWQgb2YgR05VIGxkLiAgSWYgcG9zc2libGUsIHRoaXMgc2V0dGluZyBzaG91bGQKLSsgICAgICAg ICMgb3ZlcnJpZGRlbiB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGUgbmF0aXZlIGxpbmtlciBmZWF0 dXJlcyBvbgotKyAgICAgICAgIyB0aGUgcGxhdGZvcm0gaXQgaXMgYmVpbmcgdXNlZCBvbi4KLSsg ICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxp YiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3MgLW8gJGxpYicKLSsgICAgICBmaQotKwotKyAgICAgICMgQ29tbWFuZHMgdG8g bWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsgICAgICAj IHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2Vk IHdoZW4KLSsgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsgICAgICBvdXRwdXRf dmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0 IDI+JjEgfCAkR1JFUCAiXC1MIicKLSsKLSsgICAgZWxzZQotKyAgICAgIEdYWD1ubwotKyAgICAg IHdpdGhfZ251X2xkPW5vCi0rICAgICAgd2xhcmM9Ci0rICAgIGZpCi0rCi0rICAgICMgUE9SVE1F OiBmaWxsIGluIGEgZGVzY3JpcHRpb24gb2YgeW91ciBzeXN0ZW0ncyBDKysgbGluayBjaGFyYWN0 ZXJpc3RpY3MKLSsgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlu a2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQotKyAgICBfTFRfVEFHVkFSKGxk X3NobGlicywgJDEpPXllcwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4MyopCi0r ICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAg ICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICAgIDs7Ci0rICAgICAgYWl4 W1s0LTldXSopCi0rICAgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKyAg ICAgICAgICAjIE9uIElBNjQsIHRoZSBsaW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRl ZmF1bHQsIHNvIHdlIGRvbid0Ci0rICAgICAgICAgICMgaGF2ZSB0byBkbyBhbnl0aGluZyBzcGVj aWFsLgotKyAgICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCi0rICAgICAgICAgIGV4 cF9zeW1fZmxhZz0nLUJleHBvcnQnCi0rICAgICAgICAgIG5vX2VudHJ5X2ZsYWc9IiIKLSsgICAg ICAgIGVsc2UKLSsgICAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubwotKwotKyAgICAg ICAgICAjIFRlc3QgaWYgd2UgYXJlIHRyeWluZyB0byB1c2UgcnVuIHRpbWUgbGlua2luZyBvciBu b3JtYWwKLSsgICAgICAgICAgIyBBSVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwgaXMgc29tZXdo ZXJlIGluIExERkxBR1MsIHdlCi0rICAgICAgICAgICMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtp bmcuCi0rICAgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bWzIzXV18YWl4NC5bWzIzXV0u KnxhaXhbWzUtOV1dKikKLSsJICAgIGZvciBsZF9mbGFnIGluICRMREZMQUdTOyBkbwotKwkgICAg ICBjYXNlICRsZF9mbGFnIGluCi0rCSAgICAgICotYnJ0bCopCi0rCSAgICAgICAgYWl4X3VzZV9y dW50aW1lbGlua2luZz15ZXMKLSsJICAgICAgICBicmVhawotKwkgICAgICAgIDs7Ci0rCSAgICAg IGVzYWMKLSsJICAgIGRvbmUKLSsJICAgIDs7Ci0rICAgICAgICAgIGVzYWMKLSsKLSsgICAgICAg ICAgZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcKLSsgICAgICAgICAgbm9fZW50cnlfZmxhZz0nLWJu b2VudHJ5JwotKyAgICAgICAgZmkKLSsKLSsgICAgICAgICMgV2hlbiBsYXJnZSBleGVjdXRhYmxl cyBvciBzaGFyZWQgb2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBsZCBjYW4KLSsgICAgICAgICMgaGF2 ZSBwcm9ibGVtcyBjcmVhdGluZyB0aGUgdGFibGUgb2YgY29udGVudHMuICBJZiBsaW5raW5nIGEg bGlicmFyeQotKyAgICAgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMgaW4gImVycm9yIFRPQyBvdmVy ZmxvdyIgYWRkIC1tbWluaW1hbC10b2MgdG8KLSsgICAgICAgICMgQ1hYRkxBR1MvQ0ZMQUdTIGZv ciBnKysvZ2NjLiAgSW4gdGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMgbm90Ci0rICAgICAgICAjIGVu b3VnaCB0byBmaXggdGhlIHByb2JsZW0sIGFkZCAtV2wsLWJiaWd0b2MgdG8gTERGTEFHUy4KLSsK LSsgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JycKLSsgICAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rICAgICAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcwotKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9JzonCi0rICAgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxs X2RlcGxpYnMsICQxKT15ZXMKLSsgICAgICAgIF9MVF9UQUdWQVIoZmlsZV9saXN0X3NwZWMsICQx KT0nJHt3bH0tZiwnCi0rCi0rICAgICAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKyAg ICAgICAgICBjYXNlICRob3N0X29zIGluIGFpeDQuW1swMTJdXXxhaXg0LltbMDEyXV0uKikKLSsg ICAgICAgICAgIyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBvbiBBSVggNC4yIGFuZCBsb3dlciwg dGhlIGNoZWNrCi0rICAgICAgICAgICMgYmVsb3cgZm9yIGJyb2tlbiBjb2xsZWN0MiBkb2Vzbid0 IHdvcmsgdW5kZXIgNC4zKwotKwkgIGNvbGxlY3QybmFtZT1gJHtDQ30gLXByaW50LXByb2ctbmFt ZT1jb2xsZWN0MmAKLSsJICBpZiB0ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJgotKwkgICAgIHN0 cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgJEdSRVAgcmVzb2x2ZV9saWJfbmFtZSA+L2Rldi9udWxs Ci0rCSAgdGhlbgotKwkgICAgIyBXZSBoYXZlIHJld29ya2VkIGNvbGxlY3QyCi0rCSAgICA6Ci0r CSAgZWxzZQotKwkgICAgIyBXZSBoYXZlIG9sZCBjb2xsZWN0MgotKwkgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9kaXJlY3QsICQxKT11bnN1cHBvcnRlZAotKwkgICAgIyBJdCBmYWlscyB0byBmaW5k IHVuaW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRoZSB1bmluc3RhbGxlZAotKwkgICAgIyBwYXRo IGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGxpYnBhdGguICBTZXR0aW5nIGhhcmRjb2RlX21pbnVzX0wK LSsJICAgICMgdG8gdW5zdXBwb3J0ZWQgZm9yY2VzIHJlbGlua2luZwotKwkgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwotKwkgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9Ci0rCSAgZmkKLSsgICAgICAgICAgZXNhYwotKyAgICAg ICAgICBzaGFyZWRfZmxhZz0nLXNoYXJlZCcKLSsJICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1l bGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJICAgIHNoYXJlZF9mbGFnPSIkc2hhcmVkX2ZsYWcgIick e3dsfS1HJwotKwkgIGZpCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgICMgbm90IHVzaW5nIGdj YwotKyAgICAgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkgICMgVmlz dWFsQWdlIEMrKywgVmVyc2lvbiA1LjUgZm9yIEFJWCA1TCBmb3IgSUEtNjQsIEJldGEgMyBSZWxl YXNlCi0rCSAgIyBjaG9rZXMgb24gLVdsLC1HLiBUaGUgZm9sbG93aW5nIGxpbmUgaXMgY29ycmVj dDoKLSsJICBzaGFyZWRfZmxhZz0nLUcnCi0rICAgICAgICAgIGVsc2UKLSsJICAgIGlmIHRlc3Qg IiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkgICAgICBzaGFyZWRfZmxh Zz0nJHt3bH0tRycKLSsJICAgIGVsc2UKLSsJICAgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNS RScKLSsJICAgIGZpCi0rICAgICAgICAgIGZpCi0rICAgICAgICBmaQotKwotKyAgICAgICAgX0xU X1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmV4cGFsbCcKLSsg ICAgICAgICMgSXQgc2VlbXMgdGhhdCAtYmV4cGFsbCBkb2VzIG5vdCBleHBvcnQgc3ltYm9scyBi ZWdpbm5pbmcgd2l0aAotKyAgICAgICAgIyB1bmRlcnNjb3JlIChfKSwgc28gaXQgaXMgYmV0dGVy IHRvIGdlbmVyYXRlIGEgbGlzdCBvZiBzeW1ib2xzIHRvCi0rCSMgZXhwb3J0LgotKyAgICAgICAg X0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT15ZXMKLSsgICAgICAgIGlmIHRl c3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKyAgICAgICAgICAjIFdh cm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1i cnRsKSwKLSsgICAgICAgICAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBt YXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgotKyAgICAgICAgICBfTFRfVEFHVkFSKGFsbG93 X3VuZGVmaW5lZF9mbGFnLCAkMSk9Jy1iZXJvaycKLSsgICAgICAgICAgIyBEZXRlcm1pbmUgdGhl IGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuIGVtcHR5Ci0rICAg ICAgICAgICMgZXhlY3V0YWJsZS4KLSsgICAgICAgICAgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgK LSsgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7 d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCi0rCi0rICAgICAgICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNv bmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVy X2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiAk RUNITyAiWCR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30iIHwgJFhzZWQ7IGVsc2UgOjsgZmlg ICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKLSsg ICAgICAgIGVsc2UKLSsgICAgICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4K LSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1S ICRsaWJkaXI6L3Vzci9saWI6L2xpYicKLSsJICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVk X2ZsYWcsICQxKT0iLXogbm9kZWZzIgotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9j bWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAk bGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30gJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhw b3J0X3N5bWJvbHMiCi0rICAgICAgICAgIGVsc2UKLSsJICAgICMgRGV0ZXJtaW5lIHRoZSBkZWZh dWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgotKwkgICAgIyBlbXB0eSBl eGVjdXRhYmxlLgotKwkgICAgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgKLSsJICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ibGlicGF0aDokbGliZGly OiciJGFpeF9saWJwYXRoIgotKwkgICAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3Ro ZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFncywKLSsJICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRo b3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsJICAgIF9MVF9U QUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm5vdG9rJwotKwkgICAgX0xU X1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tYmVyb2snCi0rCSAgICAj IEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20g YXJjaGl2ZXMKLSsJICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0n JGNvbnZlbmllbmNlJwotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEp PXllcwotKwkgICAgIyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1 aWxkcyBpdHMgc2hhcmVkCi0rCSAgICAjIGxpYnJhcmllcy4KLSsJICAgIF9MVF9UQUdWQVIoYXJj aGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAk QVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGly LyRzb25hbWUnCi0rICAgICAgICAgIGZpCi0rICAgICAgICBmaQotKyAgICAgICAgOzsKLSsKLSsg ICAgICBiZW9zKikKLSsJaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRh cmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgIF9MVF9UQUdWQVIoYWxsb3dfdW5k ZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAotKwkgICMgSm9zZXBoIEJlY2tlbmJhY2ggPGpy YjNAYmVzdC5jb20+IHNheXMgc29tZSByZWxlYXNlcyBvZiBnY2MKLSsJICAjIHN1cHBvcnQgLS11 bmRlZmluZWQuICBUaGlzIGRlc2VydmVzIHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJWE1FCi0rCSAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwll bHNlCi0rCSAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwlmaQotKwk7OwotKwotKyAg ICAgIGNob3J1cyopCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICAq KQotKwkgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgIF9M VF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICA7OwotKyAgICAgICAgZXNhYwotKyAgICAg ICAgOzsKLSsKLSsgICAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAg ICAgICAjIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpIGlzIGFjdHVh bGx5IG1lYW5pbmdsZXNzLAotKyAgICAgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBm b3IgRExMcy4KLSsgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywg JDEpPSctTCRsaWJkaXInCi0rICAgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFn LCAkMSk9dW5zdXBwb3J0ZWQKLSsgICAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1i b2xzLCAkMSk9bm8KLSsgICAgICAgIF9MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRp Y19ydW50aW1lcywgJDEpPXllcwotKwotKyAgICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdS RVAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRv dXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5r ZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCi0rICAgICAgICAgICMgSWYgdGhlIGV4cG9y dC1zeW1ib2xzIGZpbGUgYWxyZWFkeSBpcyBhIC5kZWYgZmlsZSAoMXN0IGxpbmUKLSsgICAgICAg ICAgIyBpcyBFWFBPUlRTKSwgdXNlIGl0IGFzIGlzOyBvdGhlcndpc2UsIHByZXBlbmQuLi4KLSsg ICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2lmIHRlc3QgInhg JFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCi0rCSAgICBjcCAkZXhw b3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rICAgICAgICAgIGVsc2UK LSsJICAgIGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKwkgICAg Y2F0ICRleHBvcnRfc3ltYm9scyA+PiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsgICAg ICAgICAgZml+Ci0rICAgICAgICAgICRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkb3V0cHV0X29iamRp ci8kc29uYW1lLmRlZiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0t ZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxp YicKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1u bwotKyAgICAgICAgZmkKLSsgICAgICAgIDs7Ci0rICAgICAgZGFyd2luKiB8IHJoYXBzb2R5KikK LSsgICAgICAgIF9MVF9EQVJXSU5fTElOS0VSX0ZFQVRVUkVTKCQxKQotKwk7OwotKwotKyAgICAg IGRndXgqKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgZWMrKyop Ci0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAg IF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgIGdoY3gq KQotKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAgICMgRklYTUU6IGluc2Vy dCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMs ICQxKT1ubwotKwkgICAgOzsKLSsgICAgICAgICAgKikKLSsJICAgICMgRklYTUU6IGluc2VydCBw cm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubwotKwkgICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgZnJl ZWJzZFtbMTJdXSopCi0rICAgICAgICAjIEMrKyBzaGFyZWQgbGlicmFyaWVzIHJlcG9ydGVkIHRv IGJlIGZhaXJseSBicm9rZW4gYmVmb3JlCi0rCSMgc3dpdGNoIHRvIEVMRgotKyAgICAgICAgX0xU X1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgICAgOzsKLSsKLSsgICAgICBmcmVlYnNk LWVsZiopCi0rICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8K LSsgICAgICAgIDs7Ci0rCi0rICAgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQotKyAgICAgICAg IyBGcmVlQlNEIDMgYW5kIGxhdGVyIHVzZSBHTlUgQysrIGFuZCBHTlUgbGQgd2l0aCBzdGFuZGFy ZCBFTEYKLSsgICAgICAgICMgY29udmVudGlvbnMKLSsgICAgICAgIF9MVF9UQUdWQVIobGRfc2hs aWJzLCAkMSk9eWVzCi0rICAgICAgICA7OwotKwotKyAgICAgIGdudSopCi0rICAgICAgICA7Owot KwotKyAgICAgIGhwdXg5KikKLSsgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9JGxpYmRpcicKLSsgICAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsgICAgICAgIF9MVF9UQUdWQVIoZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCi0rICAgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9t aW51c19MLCAkMSk9eWVzICMgTm90IGluIHRoZSBzZWFyY2ggUEFUSCwKLSsJCQkJICAgICAgICAg ICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0Ci0rCQkJCSAgICAgICAgICAgICAjIGxvY2F0aW9uIG9m IHRoZSBsaWJyYXJ5LgotKwotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAg ICAgQ0MqKQotKyAgICAgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkg c3VwcG9ydAotKyAgICAgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAg ICAgICAgICA7OwotKyAgICAgICAgICBhQ0MqKQotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtYiAke3dsfSti ICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz fnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIv JHNvbmFtZSAkbGliJwotKyAgICAgICAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBw cm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsgICAgICAgICAgICAjIHdoYXQgImhp ZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsg ICAgICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsgICAgICAgICAgICAjCi0r ICAgICAgICAgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50 IHRoaXMgY29tcGlsZXIgZnJvbQotKyAgICAgICAgICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5 c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCi0rICAgICAgICAgICAg IyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUg bGlicmFyeQotKyAgICAgICAgICAgICMgZGVwZW5kZW5jaWVzLgotKyAgICAgICAgICAgIG91dHB1 dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gKCRDQyAtYiAkQ0ZMQUdTIC12IGNvbmZ0ZXN0 LiRvYmpleHQgMj4mMSkgfCAkRUdSRVAgIlwtTCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxp c3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4k b2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIg fCAkWHNlZCcKLSsgICAgICAgICAgICA7OwotKyAgICAgICAgICAqKQotKyAgICAgICAgICAgIGlm IHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAtbm9z dGRsaWIgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRp ci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8 IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICAgICAgICBlbHNlCi0rICAg ICAgICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsg ICAgICAgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICAgICAgICBm aQotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAg IGhwdXgxMCp8aHB1eDExKikKLSsgICAgICAgIGlmIHRlc3QgJHdpdGhfZ251X2xkID0gbm87IHRo ZW4KLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0r YiAke3dsfSRsaWJkaXInCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y LCAkMSk9OgotKwotKyAgICAgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgICAgICAgIGhw cGEqNjQqfGlhNjQqKQotKyAgICAgICAgICAgICAgOzsKLSsgICAgICAgICAgICAqKQotKwkgICAg ICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwotKyAg ICAgICAgICAgICAgOzsKLSsgICAgICAgICAgZXNhYwotKyAgICAgICAgZmkKLSsgICAgICAgIGNh c2UgJGhvc3RfY3B1IGluCi0rICAgICAgICAgIGhwcGEqNjQqfGlhNjQqKQotKyAgICAgICAgICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KLSsgICAgICAgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgICAgICAgIDs7Ci0rICAg ICAgICAgICopCi0rICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15 ZXMKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEp PXllcwotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcyAj IE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rCQkJCQkgICAgICAgICAjIGJ1dCBhcyB0aGUgZGVm YXVsdAotKwkJCQkJICAgICAgICAgIyBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KLSsgICAgICAg ICAgICA7OwotKyAgICAgICAgZXNhYwotKwotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4K LSsgICAgICAgICAgQ0MqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFy eSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICA7Owot KyAgICAgICAgICBhQ0MqKQotKwkgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsJICAgICAgaHBwYSo2 NCopCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9 K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICAgIDs7Ci0rCSAgICAg IGlhNjQqKQotKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAk e3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cycKLSsJICAgICAgICA7OwotKwkgICAgICAqKQotKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGlu c3RhbGxfbGliZGlyIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICAgIDs7Ci0rCSAgICBlc2Fj Ci0rCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1 dCB0aGF0IGxpc3RzCi0rCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmls ZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJy YXJ5LgotKwkgICAgIwotKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0 byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcg c3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsJICAgICMgZnJv bSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJh cnkKLSsJICAgICMgZGVwZW5kZW5jaWVzLgotKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9 J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxKSB8ICRH UkVQICJcLUwiYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNv bmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIk bGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCi0rCSAgICA7Owot KyAgICAgICAgICAqKQotKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsJICAgICAg aWYgdGVzdCAkd2l0aF9nbnVfbGQgPSBubzsgdGhlbgotKwkgICAgICAgIGNhc2UgJGhvc3RfY3B1 IGluCi0rCSAgICAgICAgICBocHBhKjY0KikKLSsJICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0k c29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICAgICAgICA7OwotKwkgICAgICAgICAg aWE2NCopCi0rCSAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1 bHRycGF0aCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICAgICAgICAgICAgOzsKLSsJICAgICAgICAg ICopCi0rCSAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGlu c3RhbGxfbGliZGlyIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICAgICAgICA7OwotKwkgICAg ICAgIGVzYWMKLSsJICAgICAgZmkKLSsJICAgIGVsc2UKLSsJICAgICAgIyBGSVhNRTogaW5zZXJ0 IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJz LCAkMSk9bm8KLSsJICAgIGZpCi0rCSAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgOzsK LSsKLSsgICAgICBpbnRlcml4W1szLTldXSopCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0 LCAkMSk9bm8KLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsJ X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRs aWJkaXInCi0rCV9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9 LUUnCi0rCSMgSGFjazogT24gSW50ZXJpeCAzLngsIHdlIGNhbm5vdCBjb21waWxlIFBJQyBiZWNh dXNlIG9mIGEgYnJva2VuIGdjYy4KLSsJIyBJbnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFyZSBs b2FkZWQgYXQgYW4gaW1hZ2UgYmFzZSAoMHgxMDAwMDAwMCBieQotKwkjIGRlZmF1bHQpIGFuZCBy ZWxvY2F0ZWQgaWYgdGhleSBjb25mbGljdCwgd2hpY2ggaXMgYSBzbG93IHZlcnkgbWVtb3J5Ci0r CSMgY29uc3VtaW5nIGFuZCBmcmFnbWVudGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhpcywgd2Ug cGljayBhIHJhbmRvbSwKLSsJIyAyNTYgS2lCLWFsaWduZWQgaW1hZ2UgYmFzZSBiZXR3ZWVuIDB4 NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQgbGluawotKwkjIHRpbWUuICBNb3ZpbmcgdXAgZnJv bSAweDEwMDAwMDAwIGFsc28gYWxsb3dzIG1vcmUgc2JyaygyKSBzcGFjZS4KLSsJX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4 cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxp YicKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J3NlZCAicyxeLF8sIiAk ZXhwb3J0X3N5bWJvbHMgPiRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltfiRDQyAtc2hhcmVk ICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29u YW1lICR7d2x9LS1yZXRhaW4tc3ltYm9scy1maWxlLCRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhw c3ltICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2 MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCi0rCTs7Ci0rICAgICAgaXJpeDUqIHwgaXJpeDYq KQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAg IyBTR0kgQysrCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJl ZCAtYWxsIC1tdWx0aWdvdCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVy c3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBk YXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCi0r CSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0 ZWQgdXNpbmcKLSsJICAgICMgIkNDIC1hciIsIHdoZXJlICJDQyIgaXMgdGhlIElSSVggQysrIGNv bXBpbGVyLiAgVGhpcyBpcwotKwkgICAgIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRp YXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCi0rCSAgICAjIGluIHRoZSBhcmNoaXZlLgotKwkg ICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYXIgLVdSLC11IC1vICRv bGRsaWIgJG9sZG9ianMnCi0rCSAgICA7OwotKyAgICAgICAgICAqKQotKwkgICAgaWYgdGVzdCAi JEdYWCIgPSB5ZXM7IHRoZW4KLSsJICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0 aGVuCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQg LW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIk dmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIg fCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19s b2NhdGlvbnMgLW8gJGxpYicKLSsJICAgICAgZWxzZQotKwkgICAgICAgIF9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1z ZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgIC1vICRsaWInCi0rCSAgICAgIGZp Ci0rCSAgICBmaQotKwkgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0r CSAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICAgIF9M VF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsgICAgICAgIF9MVF9U QUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPXllcwotKyAgICAgICAgOzsKLSsKLSsgICAgICBsaW51 eCogfCBrKmJzZCotZ251KQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAg ICAgS0NDKikKLSsJICAgICMgS3VjayBhbmQgQXNzb2NpYXRlcywgSW5jLiAoS0FJKSBDKysgQ29t cGlsZXIKLSsKLSsJICAgICMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeSBp ZiB0aGUgb3V0cHV0IGZpbGUKLSsJICAgICMgZW5kcyB3aXRoICIuc28iIChvciAiLnNsIiBmb3Ig SFAtVVgpLCBzbyByZW5hbWUgdGhlIGxpYnJhcnkKLSsJICAgICMgdG8gaXRzIHByb3BlciBuYW1l ICh3aXRoIHZlcnNpb24pIGFmdGVyIGxpbmtpbmcuCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtb XigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRT RUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAk c29uYW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCi0rCSAgICBfTFRfVEFHVkFS KGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRT RUQgLWUgJ1wnJ3MvXChbW14oKTAtOUEtWmEtent9XV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGli PWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWIgJHt3bH0tcmV0YWluLXN5bWJvbHMt ZmlsZSwkZXhwb3J0X3N5bWJvbHM7IG12IFwkdGVtcGxpYiAkbGliJwotKwkgICAgIyBDb21tYW5k cyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkg ICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUg dXNlZCB3aGVuCi0rCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAgICMKLSsJ ICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNv bXBpbGVyIGZyb20KLSsJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmls ZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCi0rCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0 aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSAgICAjIGRlcGVu ZGVuY2llcy4KLSsJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDICRD RkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRfZXh0IDI+JjEg fCAkR1JFUCAibGQiYDsgcm0gLWYgbGliY29uZnRlc3Qkc2hhcmVkX2V4dDsgbGlzdD0iIjsgZm9y IHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRs aXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRF Q0hPICJYJGxpc3QiIHwgJFhzZWQnCi0rCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJICAgIF9MVF9UQUdWQVIo ZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsK LSsJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3Jl YXRlZCB1c2luZwotKwkgICAgIyAiQ0MgLUJzdGF0aWMiLCB3aGVyZSAiQ0MiIGlzIHRoZSBLQUkg QysrIGNvbXBpbGVyLgotKwkgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtQnN0YXRpYyAtbyAkb2xkbGliICRvbGRvYmpzJwotKwkgICAgOzsKLSsJICBpY3BjKiB8IGVj cGMqICkKLSsJICAgICMgSW50ZWwgQysrCi0rCSAgICB3aXRoX2dudV9sZD15ZXMKLSsJICAgICMg dmVyc2lvbiA4LjAgYW5kIGFib3ZlIG9mIGljcGMgY2hva2Ugb24gbXVsdGlwbHkgZGVmaW5lZCBz eW1ib2xzCi0rCSAgICAjIGlmIHdlIGFkZCAkcHJlZGVwX29iamVjdHMgYW5kICRwb3N0ZGVwX29i amVjdHMsIGhvd2V2ZXIgNy4xIGFuZAotKwkgICAgIyBlYXJsaWVyIGRvIG5vdCBhZGQgdGhlIG9i amVjdHMgdGhlbXNlbHZlcy4KLSsJICAgIGNhc2UgYCRDQyAtViAyPiYxYCBpbgotKwkgICAgICAq IlZlcnNpb24gNy4iKikKLSsJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck Q0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJ CV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wk ZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJCTs7Ci0rCSAgICAgICopICAjIFZlcnNpb24gOC4w IG9yIG5ld2VyCi0rCSAgICAgICAgdG1wX2lkeW49Ci0rCSAgICAgICAgY2FzZSAkaG9zdF9jcHUg aW4KLSsJCSAgaWE2NCopIHRtcF9pZHluPScgLWlfZHluYW1pYyc7OwotKwkJZXNhYwotKwkgICAg ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4i JyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25h bWUgLW8gJGxpYicKLSsJCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0Mg LXNoYXJlZCciJHRtcF9pZHluIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9y dF9zeW1ib2xzIC1vICRsaWInCi0rCQk7OwotKwkgICAgZXNhYwotKwkgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJICAgIF9MVF9UQUdW QVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycK LSsJICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdo b2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgICA7 OwotKyAgICAgICAgICBwZ0NDKiB8IHBnY3BwKikKLSsgICAgICAgICAgICAjIFBvcnRsYW5kIEdy b3VwIEMrKyBjb21waWxlcgotKwkgICAgY2FzZSBgJENDIC1WYCBpbgotKwkgICAgKnBnQ0NcIFtb MS01XV0qIHwgKnBnY3BwXCBbWzEtNV1dKikKLSsJICAgICAgX0xUX1RBR1ZBUihwcmVsaW5rX2Nt ZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KLSsJCXJtIC1yZiAkdHBsZGlyfgotKwkJJEND IC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkb2JqcyAkbGli b2JqcyAkY29tcGlsZV9kZXBsaWJzfgotKwkJY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21t YW5kIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGAiJwotKwkgICAgICBfTFRfVEFH VkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KLSsJCXJtIC1y ZiAkdHBsZGlyfgotKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIg JHRwbGRpciAkb2xkb2JqcyRvbGRfZGVwbGlic34KLSsJCSRBUiAkQVJfRkxBR1MgJG9sZGxpYiRv bGRvYmpzJG9sZF9kZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGB+Ci0r CQkkUkFOTElCICRvbGRsaWInCi0rCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+Ci0rCQlybSAtcmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxp bmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRjb252ZW5pZW5jZSAkcG9zdGRlcF9vYmplY3RzfgotKwkJJENDIC1z aGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyBgZmluZCAk dHBsZGlyIC1uYW1lIFwqLm8gfCAkTkwyU1BgICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgLW8gJGxpYicKLSsJICAgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+Ci0rCQlybSAt cmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGly ICR0cGxkaXIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRjb252ZW5pZW5jZSAk cG9zdGRlcF9vYmplY3RzfgotKwkJJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCAkTkwyU1BgICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUg JHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scyAtbyAkbGliJwot KwkgICAgICA7OwotKwkgICAgKikgIyBWZXJzaW9uIDYgd2lsbCB1c2Ugd2VhayBzeW1ib2xzCi0r CSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxh ZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAtbyAkbGliJwotKwkgICAgICBf TFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFn ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xz LWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICAgICAgOzsKLSsJICAgIGVz YWMKLSsKLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSck e3dsfS0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1p Y19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKwkgICAgX0xUX1RBR1ZB Uih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3Ig Y29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2Nv bnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdf Y29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rICAgICAgICAgICAgOzsK LSsJICBjeHgqKQotKwkgICAgIyBDb21wYXEgQysrCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUg LW8gJGxpYicKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0 cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgIC1vICRsaWIgJHt3bH0t cmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMnCi0rCi0rCSAgICBydW5wYXRo X3Zhcj1MRF9SVU5fUEFUSAotKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjLCAkMSk9Jy1ycGF0aCAkbGliZGlyJwotKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yLCAkMSk9OgotKwotKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVy IHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAgIyB3aGF0ICJoaWRkZW4i IGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAj IGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAgICMKLSsJICAgICMgVGhlcmUgZG9lc24n dCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KLSsJICAg ICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBz dHJpcCB0aGVtCi0rCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0 IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSAgICAjIGRlcGVuZGVuY2llcy4KLSsJICAgIG91 dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAtdiBj b25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAibGQiYDsgdGVtcGxpc3Q9YCRFQ0hPICJYJHRl bXBsaXN0IiB8ICRYc2VkIC1lICJzL1woXi4qbGQuKlwpXCggLipsZCAuKiRcKS9cMS8iYDsgbGlz dD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQp IGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7 IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCi0rCSAgICA7OwotKwkgIHhsKikKLSsJICAg ICMgSUJNIFhMIDguMCBvbiBQUEMsIHdpdGggR05VIGxkCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkg ICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9y dC1keW5hbWljJwotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1xbWtz aHJvYmogJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wk c29uYW1lIC1vICRsaWInCi0rCSAgICBpZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmlu ZyIgPSB4eWVzOyB0aGVuCi0rCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywg JDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkJ Y2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9v YmpkaXIvJGxpYm5hbWUudmVyfgotKwkJZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29i amRpci8kbGlibmFtZS52ZXJ+Ci0rCQkkQ0MgLXFta3Nocm9iaiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3Jp cHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKLSsJICAgIGZpCi0r CSAgICA7OwotKwkgICopCi0rCSAgICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KLSsJ ICAgICpTdW5cIEMqKQotKwkgICAgICAjIFN1biBDKysgNS45Ci0rCSAgICAgIF9MVF9UQUdWQVIo bm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC16ZGVmcycKLSsJICAgICAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgkc29uYW1lIC1v ICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMs ICQxKT0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgkc29uYW1lIC1vICRsaWIgJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMnCi0r CSAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJk aXInCi0rCSAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3 bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmll bmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19j b252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3 bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgICAgIF9MVF9UQUdWQVIoY29tcGlsZXJfbmVlZHNf b2JqZWN0LCAkMSk9eWVzCi0rCi0rCSAgICAgICMgTm90IHN1cmUgd2hldGhlciBzb21ldGhpbmcg YmFzZWQgb24KLSsJICAgICAgIyAkQ0MgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IC1vIGxp YmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4mMQotKwkgICAgICAjIHdvdWxkIGJlIGJldHRlci4KLSsJ ICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCi0rCi0rCSAgICAgICMgQXJjaGl2 ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZwotKwkg ICAgICAjICJDQyAteGFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgU3VuIEMrKyBjb21waWxlci4gIFRo aXMgaXMKLSsJICAgICAgIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1w bGF0ZXMgYXJlIGluY2x1ZGVkCi0rCSAgICAgICMgaW4gdGhlIGFyY2hpdmUuCi0rCSAgICAgIF9M VF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLXhhciAtbyAkb2xkbGliICRvbGRv YmpzJwotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKwot KyAgICAgIGx5bnhvcyopCi0rICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJy YXJ5IHN1cHBvcnQKLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwk7OwotKwotKyAg ICAgIG04OGsqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBz dXBwb3J0Ci0rICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCTs7Ci0rCi0r ICAgICAgbXZzKikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIGN4 eCopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJ ICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIDs7Ci0rCSAgKikKLSsJICAg ICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgX0xUX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKwotKyAgICAg IG5ldGJzZCopCi0rICAgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9f RUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRMRCAtQnNoYXJlYWJsZSAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkbGlua2VyX2ZsYWdzJwotKwkgIHdsYXJjPQotKwkgIF9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rCSAgX0xU X1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2Rl X3NobGlicGF0aF92YXIsICQxKT1ubwotKwlmaQotKwkjIFdvcmthcm91bmQgc29tZSBicm9rZW4g cHJlLTEuNSB0b29sY2hhaW5zCi0rCW91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJl ZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQIGNvbmZ0ZXN0LiRvYmpl eHQgfCAkU0VEIC1lICJzOi1sZ2NjIC1sYyAtbGdjYzo6IicKLSsJOzsKLSsKLSsgICAgICAqbnRv KiB8ICpxbngqKQotKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKLSsJOzsK LSsKLSsgICAgICBvcGVuYnNkMiopCi0rICAgICAgICAjIEMrKyBzaGFyZWQgbGlicmFyaWVzIGFy ZSBmYWlybHkgYnJva2VuCi0rCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJOzsKLSsK LSsgICAgICBvcGVuYnNkKikKLSsJaWYgdGVzdCAtZiAvdXNyL2xpYmV4ZWMvbGQuc287IHRoZW4K LSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKwkgIF9MVF9UQUdWQVIo aGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9k aXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRsaWInCi0rCSAgX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0r CSAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIg fHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVu Ci0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQg JHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3lt Ym9scyAtbyAkbGliJwotKwkgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMs ICQxKT0nJHt3bH0tRScKLSsJICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs ICQxKT0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8t d2hvbGUtYXJjaGl2ZScKLSsJICBmaQotKwkgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPWVjaG8K LSsJZWxzZQotKwkgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJZmkKLSsJOzsKLSsK LSsgICAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFt ZSBpbgotKyAgICAgICAgICBLQ0MqKQotKwkgICAgIyBLdWNrIGFuZCBBc3NvY2lhdGVzLCBJbmMu IChLQUkpIEMrKyBDb21waWxlcgotKwotKwkgICAgIyBLQ0Mgd2lsbCBvbmx5IGNyZWF0ZSBhIHNo YXJlZCBsaWJyYXJ5IGlmIHRoZSBvdXRwdXQgZmlsZQotKwkgICAgIyBlbmRzIHdpdGggIi5zbyIg KG9yICIuc2wiIGZvciBIUC1VWCksIHNvIHJlbmFtZSB0aGUgbGlicmFyeQotKwkgICAgIyB0byBp dHMgcHJvcGVyIG5hbWUgKHdpdGggdmVyc2lvbikgYWZ0ZXIgbGlua2luZy4KLSsJICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9J3RlbXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VE IC1lICdcJydzL1woW1teKCkwLTlBLVphLXp7fV1dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1g ZWNobyAiJGxpYiIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12IFwkdGVtcGxpYiAkbGliJwot KwotKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9 LXJwYXRoLCRsaWJkaXInCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3IsICQxKT06Ci0rCi0rCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxl cyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJICAgICMgdGhlIEtBSSBDKysgY29tcGlsZXIuCi0r CSAgICBjYXNlICRob3N0IGluCi0rCSAgICAgIG9zZjMqKSBfTFRfVEFHVkFSKG9sZF9hcmNoaXZl X2NtZHMsICQxKT0nJENDIC1Cc3RhdGljIC1vICRvbGRsaWIgJG9sZG9ianMnIDs7Ci0rCSAgICAg ICopIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLW8gJG9sZGxpYiAkb2xk b2JqcycgOzsKLSsJICAgIGVzYWMKLSsJICAgIDs7Ci0rICAgICAgICAgIFJDQyopCi0rCSAgICAj IFJhdGlvbmFsIEMrKyAyLjQuMQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGli cmFyeSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICA7 OwotKyAgICAgICAgICBjeHgqKQotKwkgICAgY2FzZSAkaG9zdCBpbgotKwkgICAgICBvc2YzKikK LSsJICAgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1l eHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwotKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9 LXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRw dXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJICAgICAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwot KwkJOzsKLSsJICAgICAgKikKLSsJICAgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9m bGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCi0rCSAgICAgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNI TyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7 b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCSAgICAgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2ZvciBpIGluIGBjYXQgJGV4cG9ydF9zeW1ib2xz YDsgZG8gcHJpbnRmICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAiXCRpIiA+PiAkbGliLmV4 cDsgZG9uZX4KLSsJICAgICAgICAgIGVjaG8gIi1oaWRkZW4iPj4gJGxpYi5leHB+Ci0rCSAgICAg ICAgICAkQ0MgLXNoYXJlZCRhbGxvd191bmRlZmluZWRfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNv bmFtZSAkc29uYW1lICR7d2x9LWlucHV0ICR7d2x9JGxpYi5leHAgIGB0ZXN0IC1uICIkdmVyc3Ry aW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRl X3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+Ci0rCSAgICAg ICAgICAkUk0gJGxpYi5leHAnCi0rCSAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSk9Jy1ycGF0aCAkbGliZGlyJwotKwkJOzsKLSsJICAgIGVzYWMKLSsKLSsJ ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsKLSsJICAg ICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQg bGlzdHMKLSsJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQg ZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0r CSAgICAjCi0rCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZl bnQgdGhpcyBjb21waWxlciBmcm9tCi0rCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0g b2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQotKwkgICAgIyBmcm9tIHRoZSBv dXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQotKwkg ICAgIyBkZXBlbmRlbmNpZXMuCi0rCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxp c3Q9YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAg ImxkIiB8ICRHUkVQIC12ICJsZDoiYDsgdGVtcGxpc3Q9YCRFQ0hPICJYJHRlbXBsaXN0IiB8ICRY c2VkIC1lICJzL1woXi4qbGQuKlwpXCggLipsZC4qJFwpL1wxLyJgOyBsaXN0PSIiOyBmb3IgeiBp biAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3Qg JHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8g IlgkbGlzdCIgfCAkWHNlZCcKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGlmIHRlc3QgIiRHWFgi ID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwkgICAgICBfTFRfVEFH VkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAk e3dsfVwqJwotKwkgICAgICBjYXNlICRob3N0IGluCi0rCSAgICAgICAgb3NmMyopCi0rCSAgICAg ICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIg JHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25h bWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3 bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1 dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkJICA7OwotKwkgICAgICAgICopCi0r CSAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9z dGRsaWIgJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0t c29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIiR7d2x9 LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lz dHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJCSAgOzsK LSsJICAgICAgZXNhYwotKwotKwkgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06Ci0rCi0rCSAgICAgICMgQ29tbWFuZHMg dG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAg ICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUg dXNlZCB3aGVuCi0rCSAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkgICAgICBv dXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4k b2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKLSsKLSsJICAgIGVsc2UKLSsJICAgICAgIyBGSVhN RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICAgIF9MVF9UQUdWQVIo bGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIGZpCi0rCSAgICA7OwotKyAgICAgICAgZXNhYwotKyAg ICAgICAgOzsKLSsKLSsgICAgICBwc29zKikKLSsgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubwotKyAgICAgICAgOzsKLSsKLSsgICAgICBzdW5vczQqKQotKyAgICAgICAgY2FzZSAkY2Nf YmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAgIyBTdW4gQysrIDQueAotKwkgICAg IyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFH VkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICA7OwotKyAgICAgICAgICBsY2MqKQotKwkgICAg IyBMdWNpZAotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0 Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICA7OwotKyAgICAgICAg ICAqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0r CSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICA7OwotKyAgICAgICAgZXNh YwotKyAgICAgICAgOzsKLSsKLSsgICAgICBzb2xhcmlzKikKLSsgICAgICAgIGNhc2UgJGNjX2Jh c2VuYW1lIGluCi0rICAgICAgICAgIENDKikKLSsJICAgICMgU3VuIEMrKyA0LjIsIDUueCBhbmQg Q2VudGVybGluZSBDKysKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVk X2xjLCQxKT15ZXMKLSsJICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC16 ZGVmcycKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3df dW5kZWZpbmVkX2ZsYWd9ICAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICBfTFRf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIu ZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGli LmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkgICAgICAkQ0MgLUcke2Fs bG93X3VuZGVmaW5lZF9mbGFnfSAke3dsfS1NICR7d2x9JGxpYi5leHAgLWgkc29uYW1lIC1vICRs aWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKLSsKLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKwkgICAgY2FzZSAkaG9zdF9vcyBpbgotKwkgICAg ICBzb2xhcmlzMi5bWzAtNV1dIHwgc29sYXJpczIuW1swLTVdXS4qKSA7OwotKwkgICAgICAqKQot KwkJIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5rZXIg b3B0aW9ucywKLSsJCSMgYnV0IHVuZGVyc3RhbmRzIGAteiBsaW5rZXJfZmxhZycuCi0rCSAgICAg ICAgIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKLSsJCV9MVF9U QUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nLXogYWxsZXh0cmFjdCRjb252ZW5p ZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKLSsJICAgICAgICA7OwotKwkgICAgZXNhYwotKwkgICAg X0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rCi0rCSAgICBvdXRwdXRfdmVy Ym9zZV9saW5rX2NtZD0nZWNobycKLSsKLSsJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysg b2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZwotKwkgICAgIyAiQ0MgLXhhciIsIHdo ZXJlICJDQyIgaXMgdGhlIFN1biBDKysgY29tcGlsZXIuICBUaGlzIGlzCi0rCSAgICAjIG5lY2Vz c2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKLSsJ ICAgICMgaW4gdGhlIGFyY2hpdmUuCi0rCSAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMs ICQxKT0nJENDIC14YXIgLW8gJG9sZGxpYiAkb2xkb2JqcycKLSsJICAgIDs7Ci0rICAgICAgICAg IGdjeCopCi0rCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgotKwkgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNv bmFtZSAtbyAkbGliJwotKwotKwkgICAgIyBUaGUgQysrIGNvbXBpbGVyIG11c3QgYmUgdXNlZCB0 byBjcmVhdGUgdGhlIGFyY2hpdmUuCi0rCSAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMs ICQxKT0nJENDICRMREZMQUdTIC1hcmNoaXZlIC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCSAgICA7 OwotKyAgICAgICAgICAqKQotKwkgICAgIyBHTlUgQysrIGNvbXBpbGVyIHdpdGggU29sYXJpcyBs aW5rZXIKLSsJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIg PSBubzsgdGhlbgotKwkgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAk e3dsfS16ICR7d2x9ZGVmcycKLSsJICAgICAgaWYgJENDIC0tdmVyc2lvbiB8ICRHUkVQIC12ICde MlwuNycgPiAvZGV2L251bGw7IHRoZW4KLSsJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJExERkxBR1MgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgg JHdsJHNvbmFtZSAtbyAkbGliJwotKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9s cyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9 OyIgPj4gJGxpYi5leHB+Ci0rCQkgICRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke3dsfS1NICR3bCRs aWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKLSsKLSsJICAgICAgICAjIENv bW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3Rz Ci0rCSAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBm bGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnku Ci0rCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1Mg LXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCInCi0rCSAgICAgIGVsc2UKLSsJ ICAgICAgICAjIGcrKyAyLjcgYXBwZWFycyB0byByZXF1aXJlIGAtRycgTk9UIGAtc2hhcmVkJyBv biB0aGlzCi0rCSAgICAgICAgIyBwbGF0Zm9ybS4KLSsJICAgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckQ0MgLUcgLW5vc3RkbGliICRMREZMQUdTICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1o ICR3bCRzb25hbWUgLW8gJGxpYicKLSsJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJv bHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsg fTsiID4+ICRsaWIuZXhwfgotKwkJICAkQ0MgLUcgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5l eHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwotKwotKwkgICAgICAgICMgQ29tbWFu ZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJ ICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdz IGFyZSB1c2VkIHdoZW4KLSsJICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJ ICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1HICRDRkxBR1MgLXYgY29uZnRl c3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCInCi0rCSAgICAgIGZpCi0rCi0rCSAgICAgIF9M VF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1SICR3bCRsaWJk aXInCi0rCSAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsJCXNvbGFyaXMyLltbMC01XV0gfCBzb2xh cmlzMi5bWzAtNV1dLiopIDs7Ci0rCQkqKQotKwkJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9 LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcKLSsJCSAgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZmkK LSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICBzeXN2NCp1dzIq IHwgc3lzdjVPcGVuVU5JWCogfCBzeXN2NVVuaXhXYXJlNy5bWzAxXV0uW1sxMF1dKiB8IHVuaXh3 YXJlNyogfCBzY28zLjJ2NS4wLltbMDI0XV0qKQotKyAgICAgIF9MVF9UQUdWQVIobm9fdW5kZWZp bmVkX2ZsYWcsICQxKT0nJHt3bH0teix0ZXh0JwotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzX25lZWRfbGMsICQxKT1ubwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRo X3ZhciwgJDEpPW5vCi0rICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJwotKwotKyAgICAg IGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICBDQyopCi0rCSAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNv bmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7Owot KwkqKQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9 LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJ ICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0t QmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7 Ci0rCi0rICAgICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KikKLSsJIyBOb3RlOiBXZSBj YW4gTk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBub3QK LSsJIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2Vk IGZyb20gbGliYyB0bwotKwkjIGFsd2F5cyBiZSB1bnJlc29sdmVkLCB3aGljaCBtZWFucyBqdXN0 IGFib3V0IG5vIGxpYnJhcnkgd291bGQKLSsJIyBldmVyIGxpbmsgY29ycmVjdGx5LiAgSWYgd2Un cmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAotKwkjIHRob3VnaCwgd2hpY2ggZG9l cyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5kZWQKLSsJIyBh cyAteiBkZWZzLgotKwlfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXos dGV4dCcKLSsJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LG5v ZGVmcycKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rCV9MVF9U QUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rCV9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1SLCRsaWJkaXInCi0rCV9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPSc6JwotKwlfTFRfVEFHVkFSKGxpbmtfYWxs X2RlcGxpYnMsICQxKT15ZXMKLSsJX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMs ICQxKT0nJHt3bH0tQmV4cG9ydCcKLSsJcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJwotKwotKwlj YXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICBDQyopCi0rCSAgICBfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1o LCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAg ICA7OwotKwkgICopCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNo YXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgOzsKLSsJZXNhYwot KyAgICAgIDs7Ci0rCi0rICAgICAgdGFuZGVtKikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1l IGluCi0rICAgICAgICAgIE5DQyopCi0rCSAgICAjIE5vblN0b3AtVVggTkNDIDMuMjAKLSsJICAg ICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgX0xUX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwkgICAgOzsKLSsgICAgICAgICAgKikKLSsJICAgICMg RklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgX0xUX1RBR1ZB UihsZF9zaGxpYnMsICQxKT1ubwotKwkgICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAgICAgIDs7 Ci0rCi0rICAgICAgdnh3b3JrcyopCi0rICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMr KyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8K LSsgICAgICAgIDs7Ci0rCi0rICAgICAgKikKLSsgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubwotKyAgICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICBBQ19NU0dfUkVTVUxUKFskX0xU X1RBR1ZBUihsZF9zaGxpYnMsICQxKV0pCi0rICAgIHRlc3QgIiRfTFRfVEFHVkFSKGxkX3NobGli cywgJDEpIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KLSsKLSsgICAgX0xUX1RBR1ZBUihH Q0MsICQxKT0iJEdYWCIKLSsgICAgX0xUX1RBR1ZBUihMRCwgJDEpPSIkTEQiCi0rCi0rICAgICMj IENBVkVBVCBFTVBUT1I6Ci0rICAgICMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGlu IHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCi0rICAgICMjIHRoZSBydW5uaW5n IG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFj dGx5Ci0rICAgICMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgotKyAgICBfTFRfU1lTX0hJRERFTl9M SUJERVBTKCQxKQotKyAgICBfTFRfQ09NUElMRVJfUElDKCQxKQotKyAgICBfTFRfQ09NUElMRVJf Q19PKCQxKQotKyAgICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygkMSkKLSsgICAgX0xUX0xJTktF Ul9TSExJQlMoJDEpCi0rICAgIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCi0rICAgIF9MVF9M SU5LRVJfSEFSRENPREVfTElCUEFUSCgkMSkKLSsKLSsgICAgX0xUX0NPTkZJRygkMSkKLSsgIGZp ICMgdGVzdCAtbiAiJGNvbXBpbGVyIgotKwotKyAgQ0M9JGx0X3NhdmVfQ0MKLSsgIExEQ1hYPSRM RAotKyAgTEQ9JGx0X3NhdmVfTEQKLSsgIEdDQz0kbHRfc2F2ZV9HQ0MKLSsgIHdpdGhfZ251X2xk PSRsdF9zYXZlX3dpdGhfZ251X2xkCi0rICBsdF9jdl9wYXRoX0xEQ1hYPSRsdF9jdl9wYXRoX0xE Ci0rICBsdF9jdl9wYXRoX0xEPSRsdF9zYXZlX3BhdGhfTEQKLSsgIGx0X2N2X3Byb2dfZ251X2xk Y3h4PSRsdF9jdl9wcm9nX2dudV9sZAotKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9JGx0X3NhdmVfd2l0 aF9nbnVfbGQKLStmaSAjIHRlc3QgIiRfbHRfY2F1Z2h0X0NYWF9lcnJvciIgIT0geWVzCi0rCi0r QUNfTEFOR19QT1AKLStdKSMgX0xUX0xBTkdfQ1hYX0NPTkZJRwotKwotKwotKyMgX0xUX1NZU19I SURERU5fTElCREVQUyhbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSsjIEZpZ3VyZSBvdXQgImhpZGRlbiIgbGlicmFyeSBkZXBlbmRlbmNpZXMgZnJvbSB2 ZXJib3NlCi0rIyBjb21waWxlciBvdXRwdXQgd2hlbiBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnku Ci0rIyBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkK LSsjIG9iamVjdHMsIGxpYnJhcmllcyBhbmQgbGlicmFyeSBmbGFncy4KLSttNF9kZWZ1bihbX0xU X1NZU19ISURERU5fTElCREVQU10sCi0rW200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVM VFNdKWRubAotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9i amVjdCBiZWluZyBsaW5rZWQ6Ci0rX0xUX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpPQotK19M VF9UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSk9Ci0rX0xUX1RBR1ZBUihwcmVkZXBzLCAkMSk9 Ci0rX0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpPQotK19MVF9UQUdWQVIoY29tcGlsZXJfbGliX3Nl YXJjaF9wYXRoLCAkMSk9Ci0rCi0rZG5sIHdlIGNhbid0IHVzZSB0aGUgbHRfc2ltcGxlX2NvbXBp bGVfdGVzdF9jb2RlIGhlcmUsCi0rZG5sIGJlY2F1c2UgaXQgY29udGFpbnMgY29kZSBpbnRlbmRl ZCBmb3IgYW4gZXhlY3V0YWJsZSwKLStkbmwgbm90IGEgbGlicmFyeS4gIEl0J3MgcG9zc2libGUg d2Ugc2hvdWxkIGxldCBlYWNoCi0rZG5sIHRhZyBkZWZpbmUgYSBuZXcgbHRfPz8/P19saW5rX3Rl c3RfY29kZSB2YXJpYWJsZSwKLStkbmwgYnV0IGl0J3Mgb25seSB1c2VkIGhlcmUuLi4KLSttNF9p ZihbJDFdLCBbXSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0raW50IGE7Ci0r dm9pZCBmb28gKHZvaWQpIHsgYSA9IDA7IH0KLStfTFRfRU9GCi0rXSwgWyQxXSwgW0NYWF0sIFtj YXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgotK2NsYXNzIEZvbwotK3sKLStwdWJsaWM6 Ci0rICBGb28gKHZvaWQpIHsgYSA9IDA7IH0KLStwcml2YXRlOgotKyAgaW50IGE7Ci0rfTsKLStf TFRfRU9GCi0rXSwgWyQxXSwgW0Y3N10sIFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VP RgotKyAgICAgIHN1YnJvdXRpbmUgZm9vCi0rICAgICAgaW1wbGljaXQgbm9uZQotKyAgICAgIGlu dGVnZXIqNCBhCi0rICAgICAgYT0wCi0rICAgICAgcmV0dXJuCi0rICAgICAgZW5kCi0rX0xUX0VP RgotK10sIFskMV0sIFtGQ10sIFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgotKyAg ICAgIHN1YnJvdXRpbmUgZm9vCi0rICAgICAgaW1wbGljaXQgbm9uZQotKyAgICAgIGludGVnZXIg YQotKyAgICAgIGE9MAotKyAgICAgIHJldHVybgotKyAgICAgIGVuZAotK19MVF9FT0YKLStdLCBb JDFdLCBbR0NKXSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0rcHVibGljIGNs YXNzIGZvbyB7Ci0rICBwcml2YXRlIGludCBhOwotKyAgcHVibGljIHZvaWQgYmFyICh2b2lkKSB7 Ci0rICAgIGEgPSAwOwotKyAgfQotK307Ci0rX0xUX0VPRgotK10pCi0rZG5sIFBhcnNlIHRoZSBj b21waWxlciBvdXRwdXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2FyeQotK2RubCBvYmplY3RzLCBs aWJyYXJpZXMgYW5kIGxpYnJhcnkgZmxhZ3MuCi0raWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7 IHRoZW4KLSsgICMgUGFyc2UgdGhlIGNvbXBpbGVyIG91dHB1dCBhbmQgZXh0cmFjdCB0aGUgbmVj ZXNzYXJ5Ci0rICAjIG9iamVjdHMsIGxpYnJhcmllcyBhbmQgbGlicmFyeSBmbGFncy4KLSsKLSsg ICMgU2VudGluZWwgdXNlZCB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgb3Igbm90IHdlIGFyZSBi ZWZvcmUKLSsgICMgdGhlIGNvbmZ0ZXN0IG9iamVjdCBmaWxlLgotKyAgcHJlX3Rlc3Rfb2JqZWN0 X2RlcHNfZG9uZT1ubwotKwotKyAgZm9yIHAgaW4gYGV2YWwgIiRvdXRwdXRfdmVyYm9zZV9saW5r X2NtZCJgOyBkbwotKyAgICBjYXNlICRwIGluCi0rCi0rICAgIC1MKiB8IC1SKiB8IC1sKikKLSsg ICAgICAgIyBTb21lIGNvbXBpbGVycyBwbGFjZSBzcGFjZSBiZXR3ZWVuICIte0wsUn0iIGFuZCB0 aGUgcGF0aC4KLSsgICAgICAgIyBSZW1vdmUgdGhlIHNwYWNlLgotKyAgICAgICBpZiB0ZXN0ICRw ID0gIi1MIiB8fAotKyAgICAgICAgICB0ZXN0ICRwID0gIi1SIjsgdGhlbgotKwkgcHJldj0kcAot KwkgY29udGludWUKLSsgICAgICAgZWxzZQotKwkgcHJldj0KLSsgICAgICAgZmkKLSsKLSsgICAg ICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRoZW4KLSsJIGNh c2UgJHAgaW4KLSsJIC1MKiB8IC1SKikKLSsJICAgIyBJbnRlcm5hbCBjb21waWxlciBsaWJyYXJ5 IHBhdGhzIHNob3VsZCBjb21lIGFmdGVyIHRob3NlCi0rCSAgICMgcHJvdmlkZWQgdGhlIHVzZXIu ICBUaGUgcG9zdGRlcHMgYWxyZWFkeSBjb21lIGFmdGVyIHRoZQotKwkgICAjIHVzZXIgc3VwcGxp ZWQgbGlicyBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIHByb2Nlc3MgdGhlbS4KLSsJICAgaWYgdGVz dCAteiAiJF9MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSkiOyB0aGVuCi0r CSAgICAgX0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKT0iJHtwcmV2fSR7 cH0iCi0rCSAgIGVsc2UKLSsJICAgICBfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0 aCwgJDEpPSIke19MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSl9ICR7cHJl dn0ke3B9IgotKwkgICBmaQotKwkgICA7OwotKwkgIyBUaGUgIi1sIiBjYXNlIHdvdWxkIG5ldmVy IGNvbWUgYmVmb3JlIHRoZSBvYmplY3QgYmVpbmcKLSsJICMgbGlua2VkLCBzbyBkb24ndCBib3Ro ZXIgaGFuZGxpbmcgdGhpcyBjYXNlLgotKwkgZXNhYwotKyAgICAgICBlbHNlCi0rCSBpZiB0ZXN0 IC16ICIkX0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpIjsgdGhlbgotKwkgICBfTFRfVEFHVkFSKHBv c3RkZXBzLCAkMSk9IiR7cHJldn0ke3B9IgotKwkgZWxzZQotKwkgICBfTFRfVEFHVkFSKHBvc3Rk ZXBzLCAkMSk9IiR7X0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpfSAke3ByZXZ9JHtwfSIKLSsJIGZp Ci0rICAgICAgIGZpCi0rICAgICAgIDs7Ci0rCi0rICAgICouJG9iamV4dCkKLSsgICAgICAgIyBU aGlzIGFzc3VtZXMgdGhhdCB0aGUgdGVzdCBvYmplY3QgZmlsZSBvbmx5IHNob3dzIHVwCi0rICAg ICAgICMgb25jZSBpbiB0aGUgY29tcGlsZXIgb3V0cHV0LgotKyAgICAgICBpZiB0ZXN0ICIkcCIg PSAiY29uZnRlc3QuJG9iamV4dCI7IHRoZW4KLSsJIHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmU9 eWVzCi0rCSBjb250aW51ZQotKyAgICAgICBmaQotKwotKyAgICAgICBpZiB0ZXN0ICIkcHJlX3Rl c3Rfb2JqZWN0X2RlcHNfZG9uZSIgPSBubzsgdGhlbgotKwkgaWYgdGVzdCAteiAiJF9MVF9UQUdW QVIocHJlZGVwX29iamVjdHMsICQxKSI7IHRoZW4KLSsJICAgX0xUX1RBR1ZBUihwcmVkZXBfb2Jq ZWN0cywgJDEpPSIkcCIKLSsJIGVsc2UKLSsJICAgX0xUX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywg JDEpPSIkX0xUX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpICRwIgotKwkgZmkKLSsgICAgICAg ZWxzZQotKwkgaWYgdGVzdCAteiAiJF9MVF9UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSkiOyB0 aGVuCi0rCSAgIF9MVF9UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSk9IiRwIgotKwkgZWxzZQot KwkgICBfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpPSIkX0xUX1RBR1ZBUihwb3N0ZGVw X29iamVjdHMsICQxKSAkcCIKLSsJIGZpCi0rICAgICAgIGZpCi0rICAgICAgIDs7Ci0rCi0rICAg ICopIDs7ICMgSWdub3JlIHRoZSByZXN0LgotKwotKyAgICBlc2FjCi0rICBkb25lCi0rCi0rICAj IENsZWFuIHVwLgotKyAgcm0gLWYgYS5vdXQgYS5leGUKLStlbHNlCi0rICBlY2hvICJsaWJ0b29s Lm00OiBlcnJvcjogcHJvYmxlbSBjb21waWxpbmcgJDEgdGVzdCBwcm9ncmFtIgotK2ZpCi0rCi0r JFJNIC1mIGNvbmZlc3QuJG9iamV4dAotKwotKyMgUE9SVE1FOiBvdmVycmlkZSBhYm92ZSB0ZXN0 IG9uIHN5c3RlbXMgd2hlcmUgaXQgaXMgYnJva2VuCi0rbTRfaWYoWyQxXSwgW0NYWF0sCi0rW2Nh c2UgJGhvc3Rfb3MgaW4KLStpbnRlcml4W1szLTldXSopCi0rICAjIEludGVyaXggMy41IGluc3Rh bGxzIGNvbXBsZXRlbHkgaG9zZWQgLmxhIGZpbGVzIGZvciBDKyssIHNvIHJhdGhlciB0aGFuCi0r ICAjIGhhY2sgYWxsIGFyb3VuZCBpdCwgbGV0J3MganVzdCB0cnVzdCAiZysrIiB0byBEVFJULgot KyAgX0xUX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywkMSk9Ci0rICBfTFRfVEFHVkFSKHBvc3RkZXBf b2JqZWN0cywkMSk9Ci0rICBfTFRfVEFHVkFSKHBvc3RkZXBzLCQxKT0KLSsgIDs7Ci0rCi0rbGlu dXgqKQotKyAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCi0rICAqU3VuXCBDKikKLSsg ICAgIyBTdW4gQysrIDUuOQotKwotKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5n IHN0bHBvcnQ0IGxpYnJhcnkgaXMKLSsgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBs aWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCi0rICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFHUy4g SWdub3JlIGxpYkNydW4gYXMKLSsgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0 LgotKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1MgIiBpbgotKyAgICAqIiAtbGlicmFyeT1zdGxw b3J0NCAiKikKLSsgICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKLSsgICAgICA7OwotKyAg ICBlc2FjCi0rCi0rICAgIGlmIHRlc3QgIiRzb2xhcmlzX3VzZV9zdGxwb3J0NCIgIT0geWVzOyB0 aGVuCi0rICAgICAgX0xUX1RBR1ZBUihwb3N0ZGVwcywkMSk9Jy1saWJyYXJ5PUNzdGQgLWxpYnJh cnk9Q3J1bicKLSsgICAgZmkKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rc29sYXJpcyop Ci0rICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgQ0MqKQotKyAgICAjIFRoZSBtb3JlIHN0YW5k YXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKLSsgICAgIyBpbmNvbXBhdGlibGUg d2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCi0rICAgICMgaXQgaWYgaXQn cyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4gYXMKLSsgICAgIyAtbGlicmFyeT1zdGxwb3J0 NCBkZXBlbmRzIG9uIGl0LgotKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1MgIiBpbgotKyAgICAq IiAtbGlicmFyeT1zdGxwb3J0NCAiKikKLSsgICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMK LSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgICMgQWRkaW5nIHRoaXMgcmVxdWlyZXMgYSBr bm93bi1nb29kIHNldHVwIG9mIHNoYXJlZCBsaWJyYXJpZXMgZm9yCi0rICAgICMgU3VuIGNvbXBp bGVyIHZlcnNpb25zIGJlZm9yZSA1LjYsIGVsc2UgUElDIG9iamVjdHMgZnJvbSBhbiBvbGQKLSsg ICAgIyBhcmNoaXZlIHdpbGwgYmUgbGlua2VkIGludG8gdGhlIG91dHB1dCwgbGVhZGluZyB0byBz dWJ0bGUgYnVncy4KLSsgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7 IHRoZW4KLSsgICAgICBfTFRfVEFHVkFSKHBvc3RkZXBzLCQxKT0nLWxpYnJhcnk9Q3N0ZCAtbGli cmFyeT1DcnVuJwotKyAgICBmaQotKyAgICA7OwotKyAgZXNhYwotKyAgOzsKLStlc2FjCi0rXSkK LSsKLStjYXNlICIgJF9MVF9UQUdWQVIocG9zdGRlcHMsICQxKSAiIGluCi0rKiIgLWxjICIqKSBf TFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8gOzsKLStlc2FjCi0rIF9MVF9U QUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzLCAkMSk9Ci0raWYgdGVzdCAtbiAiJHtfTFRf VEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpfSI7IHRoZW4KLSsgX0xUX1RBR1ZB Uihjb21waWxlcl9saWJfc2VhcmNoX2RpcnMsICQxKT1gZWNobyAiICR7X0xUX1RBR1ZBUihjb21w aWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKX0iIHwgJHtTRUR9IC1lICdzISAtTCEgIWcnIC1lICdz IV4gISEnYAotK2ZpCi0rX0xUX1RBR0RFQ0woW10sIFtjb21waWxlcl9saWJfc2VhcmNoX2RpcnNd LCBbMV0sCi0rICAgIFtUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxlciB3 aGVuIGNyZWF0aW5nIGEgc2hhcmVkIGxpYnJhcnldKQotK19MVF9UQUdERUNMKFtdLCBbcHJlZGVw X29iamVjdHNdLCBbMV0sCi0rICAgIFtEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBh ZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8KLSsgICAgY3JlYXRlIGEgc2hhcmVkIGxp YnJhcnldKQotK19MVF9UQUdERUNMKFtdLCBbcG9zdGRlcF9vYmplY3RzXSwgWzFdKQotK19MVF9U QUdERUNMKFtdLCBbcHJlZGVwc10sIFsxXSkKLStfTFRfVEFHREVDTChbXSwgW3Bvc3RkZXBzXSwg WzFdKQotK19MVF9UQUdERUNMKFtdLCBbY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoXSwgWzFdLAot KyAgICBbVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21w aWxlciB3aGVuIGxpbmtpbmcKLSsgICAgYSBzaGFyZWQgbGlicmFyeV0pCi0rXSkjIF9MVF9TWVNf SElEREVOX0xJQkRFUFMKLSsKLSsKLSsjIF9MVF9QUk9HX0Y3NwotKyMgLS0tLS0tLS0tLS0tCi0r IyBTaW5jZSBBQ19QUk9HX0Y3NyBpcyBicm9rZW4sIGluIHRoYXQgaXQgcmV0dXJucyB0aGUgZW1w dHkgc3RyaW5nCi0rIyBpZiB0aGVyZSBpcyBubyBmb3J0cmFuIGNvbXBpbGVyLCB3ZSBoYXZlIG91 ciBvd24gdmVyc2lvbiBoZXJlLgotK200X2RlZnVuKFtfTFRfUFJPR19GNzddLAotK1sKLStwdXNo ZGVmKFtBQ19NU0dfRVJST1JdLCBbX2x0X2Rpc2FibGVfRjc3PXllc10pCi0rQUNfUFJPR19GNzcK LStpZiB0ZXN0IC16ICIkRjc3IiB8fCB0ZXN0ICJYJEY3NyIgPSAiWG5vIjsgdGhlbgotKyAgX2x0 X2Rpc2FibGVfRjc3PXllcwotK2ZpCi0rcG9wZGVmKFtBQ19NU0dfRVJST1JdKQotK10pIyBfTFRf UFJPR19GNzcKLSsKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0r ZG5sIEFDX0RFRlVOKFtfTFRfUFJPR19GNzddLCBbXSkKLSsKLSsKLSsjIF9MVF9MQU5HX0Y3N19D T05GSUcoW1RBR10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRW5zdXJlIHRo YXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEZvcnRyYW4gNzcgY29tcGlsZXIg YXJlCi0rIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50 bHkgdXNlZCBieSBfTFRfQ09ORklHCi0rIyB0byB3cml0ZSB0aGUgY29tcGlsZXIgY29uZmlndXJh dGlvbiB0byBgbGlidG9vbCcuCi0rbTRfZGVmdW4oW19MVF9MQU5HX0Y3N19DT05GSUddLAotK1tB Q19SRVFVSVJFKFtfTFRfUFJPR19GNzddKWRubAotK0FDX0xBTkdfUFVTSChGb3J0cmFuIDc3KQot KwotK19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwotK19MVF9UQUdWQVIo YWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KLStfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3lt Ym9scywgJDEpPW5vCi0rX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9Ci0rX0xU X1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0KLStfTFRfVEFHVkFSKGhhcmRj b2RlX2RpcmVjdCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUs ICQxKT1ubwotK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQotK19M VF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPQotK19MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQotK19MVF9UQUdWQVIoaGFyZGNvZGVfbWlu dXNfTCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT1ubwotK19M VF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihtb2R1bGVfY21kcywg JDEpPQotK19MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9Ci0rX0xUX1RBR1ZBUihs aW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgotK19MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21k cywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCi0rX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywg JDEpPQotK19MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KLStfTFRfVEFH VkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubwotKwotKyMgU291 cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBmNzcgdGVzdCBzb3VyY2VzLgotK2FjX2V4dD1mCi0rCi0r IyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIGY3NyB0ZXN0IHNvdXJjZXMuCi0r b2JqZXh0PW8KLStfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKLSsKLSsjIE5vIHNlbnNl IGluIHJ1bm5pbmcgYWxsIHRoZXNlIHRlc3RzIGlmIHdlIGFscmVhZHkgZGV0ZXJtaW5lZCB0aGF0 Ci0rIyB0aGUgRjc3IGNvbXBpbGVyIGlzbid0IHdvcmtpbmcuICBTb21lIHZhcmlhYmxlcyAobGlr ZSBlbmFibGVfc2hhcmVkKQotKyMgYXJlIGN1cnJlbnRseSBhc3N1bWVkIHRvIGFwcGx5IHRvIGFs bCBjb21waWxlcnMgb24gdGhpcyBwbGF0Zm9ybSwKLSsjIGFuZCB3aWxsIGJlIGNvcnJ1cHRlZCBi eSBzZXR0aW5nIHRoZW0gYmFzZWQgb24gYSBub24td29ya2luZyBjb21waWxlci4KLStpZiB0ZXN0 ICIkX2x0X2Rpc2FibGVfRjc3IiAhPSB5ZXM7IHRoZW4KLSsgICMgQ29kZSB0byBiZSB1c2VkIGlu IHNpbXBsZSBjb21waWxlIHRlc3RzCi0rICBsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9IlwK LSsgICAgICBzdWJyb3V0aW5lIHQKLSsgICAgICByZXR1cm4KLSsgICAgICBlbmQKLSsiCi0rCi0r ICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotKyAgbHRfc2ltcGxlX2xp bmtfdGVzdF9jb2RlPSJcCi0rICAgICAgcHJvZ3JhbSB0Ci0rICAgICAgZW5kCi0rIgotKwotKyAg IyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ug c3VyZSAkQ0MgaXMgc2V0LgotKyAgX0xUX1RBR19DT01QSUxFUgotKwotKyAgIyBzYXZlIHdhcm5p bmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKLSsgIF9MVF9DT01QSUxFUl9CT0lM RVJQTEFURQotKyAgX0xUX0xJTktFUl9CT0lMRVJQTEFURQotKwotKyAgIyBBbGxvdyBDQyB0byBi ZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KLSsgIGx0X3NhdmVfQ0M9IiRDQyIKLSsg IGx0X3NhdmVfR0NDPSRHQ0MKLSsgIENDPSR7Rjc3LSJmNzcifQotKyAgY29tcGlsZXI9JENDCi0r ICBfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCi0rICBfTFRfQ0NfQkFTRU5BTUUoWyRjb21w aWxlcl0pCi0rICBHQ0M9JEc3NwotKyAgaWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgotKyAg ICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10p Ci0rICAgIEFDX01TR19SRVNVTFQoWyRjYW5fYnVpbGRfc2hhcmVkXSkKLSsKLSsgICAgQUNfTVNH X0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQotKyAgICB0ZXN0 ICIkY2FuX2J1aWxkX3NoYXJlZCIgPSAibm8iICYmIGVuYWJsZV9zaGFyZWQ9bm8KLSsKLSsgICAg IyBPbiBBSVgsIHNoYXJlZCBsaWJyYXJpZXMgYW5kIHN0YXRpYyBsaWJyYXJpZXMgdXNlIHRoZSBz YW1lIG5hbWVzcGFjZSwgYW5kCi0rICAgICMgYXJlIGFsbCBidWlsdCBmcm9tIFBJQy4KLSsgICAg Y2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeDMqKQotKyAgICAgICAgdGVzdCAiJGVuYWJsZV9z aGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KLSsgICAgICAgIGlmIHRlc3QgLW4gIiRS QU5MSUIiOyB0aGVuCi0rICAgICAgICAgIGFyY2hpdmVfY21kcz0iJGFyY2hpdmVfY21kc35cJFJB TkxJQiBcJGxpYiIKLSsgICAgICAgICAgcG9zdGluc3RhbGxfY21kcz0nJFJBTkxJQiAkbGliJwot KyAgICAgICAgZmkKLSsgICAgICAgIDs7Ci0rICAgICAgYWl4W1s0LTldXSopCi0rCWlmIHRlc3Qg IiRob3N0X2NwdSIgIT0gaWE2NCAmJiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSBu byA7IHRoZW4KLSsJICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRp Yz1ubwotKwlmaQotKyAgICAgICAgOzsKLSsgICAgZXNhYwotKyAgICBBQ19NU0dfUkVTVUxUKFsk ZW5hYmxlX3NoYXJlZF0pCi0rCi0rICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBidWls ZCBzdGF0aWMgbGlicmFyaWVzXSkKLSsgICAgIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9zaGFy ZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCi0rICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9 IHllcyB8fCBlbmFibGVfc3RhdGljPXllcwotKyAgICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3N0 YXRpY10pCi0rCi0rICAgIF9MVF9UQUdWQVIoR0NDLCAkMSk9IiRHNzciCi0rICAgIF9MVF9UQUdW QVIoTEQsICQxKT0iJExEIgotKwotKyAgICAjIyBDQVZFQVQgRU1QVE9SOgotKyAgICAjIyBUaGVy ZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9sbG93aW5nIG1hY3JvcywgZG8gbm90 IGNoYW5nZQotKyAgICAjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVt IGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQotKyAgICAjIyB3aGF0IHlvdSBhcmUgZG9p bmcuLi4KLSsgICAgX0xUX0NPTVBJTEVSX1BJQygkMSkKLSsgICAgX0xUX0NPTVBJTEVSX0NfTygk MSkKLSsgICAgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoJDEpCi0rICAgIF9MVF9MSU5LRVJfU0hM SUJTKCQxKQotKyAgICBfTFRfU1lTX0RZTkFNSUNfTElOS0VSKCQxKQotKyAgICBfTFRfTElOS0VS X0hBUkRDT0RFX0xJQlBBVEgoJDEpCi0rCi0rICAgIF9MVF9DT05GSUcoJDEpCi0rICBmaSAjIHRl c3QgLW4gIiRjb21waWxlciIKLSsKLSsgIEdDQz0kbHRfc2F2ZV9HQ0MKLSsgIENDPSIkbHRfc2F2 ZV9DQyIKLStmaSAjIHRlc3QgIiRfbHRfZGlzYWJsZV9GNzciICE9IHllcwotKwotK0FDX0xBTkdf UE9QCi0rXSkjIF9MVF9MQU5HX0Y3N19DT05GSUcKLSsKLSsKLSsjIF9MVF9QUk9HX0ZDCi0rIyAt LS0tLS0tLS0tLQotKyMgU2luY2UgQUNfUFJPR19GQyBpcyBicm9rZW4sIGluIHRoYXQgaXQgcmV0 dXJucyB0aGUgZW1wdHkgc3RyaW5nCi0rIyBpZiB0aGVyZSBpcyBubyBmb3J0cmFuIGNvbXBpbGVy LCB3ZSBoYXZlIG91ciBvd24gdmVyc2lvbiBoZXJlLgotK200X2RlZnVuKFtfTFRfUFJPR19GQ10s Ci0rWwotK3B1c2hkZWYoW0FDX01TR19FUlJPUl0sIFtfbHRfZGlzYWJsZV9GQz15ZXNdKQotK0FD X1BST0dfRkMKLStpZiB0ZXN0IC16ICIkRkMiIHx8IHRlc3QgIlgkRkMiID0gIlhubyI7IHRoZW4K LSsgIF9sdF9kaXNhYmxlX0ZDPXllcwotK2ZpCi0rcG9wZGVmKFtBQ19NU0dfRVJST1JdKQotK10p IyBfTFRfUFJPR19GQwotKwotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0 eToKLStkbmwgQUNfREVGVU4oW19MVF9QUk9HX0ZDXSwgW10pCi0rCi0rCi0rIyBfTFRfTEFOR19G Q19DT05GSUcoW1RBR10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBFbnN1cmUg dGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIGEgRm9ydHJhbiBjb21waWxlciBh cmUKLSsjIHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRs eSB1c2VkIGJ5IF9MVF9DT05GSUcKLSsjIHRvIHdyaXRlIHRoZSBjb21waWxlciBjb25maWd1cmF0 aW9uIHRvIGBsaWJ0b29sJy4KLSttNF9kZWZ1bihbX0xUX0xBTkdfRkNfQ09ORklHXSwKLStbQUNf UkVRVUlSRShbX0xUX1BST0dfRkNdKWRubAotK0FDX0xBTkdfUFVTSChGb3J0cmFuKQotKwotK19M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwotK19MVF9UQUdWQVIoYWxsb3df dW5kZWZpbmVkX2ZsYWcsICQxKT0KLStfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywg JDEpPW5vCi0rX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9Ci0rX0xUX1RBR1ZB UihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0KLStfTFRfVEFHVkFSKGhhcmRjb2RlX2Rp cmVjdCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT1u bwotK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQotK19MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPQotK19MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQotK19MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwg JDEpPW5vCi0rX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT1ubwotK19MVF9UQUdW QVIoaW5oZXJpdF9ycGF0aCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPQot K19MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9Ci0rX0xUX1RBR1ZBUihsaW5rX2Fs bF9kZXBsaWJzLCAkMSk9dW5rbm93bgotK19MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEp PSRvbGRfYXJjaGl2ZV9jbWRzCi0rX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPQot K19MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KLStfTFRfVEFHVkFSKGVu YWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubwotKwotKyMgU291cmNlIGZp bGUgZXh0ZW5zaW9uIGZvciBmYyB0ZXN0IHNvdXJjZXMuCi0rYWNfZXh0PSR7YWNfZmNfc3JjZXh0 LWZ9Ci0rCi0rIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIGZjIHRlc3Qgc291 cmNlcy4KLStvYmpleHQ9bwotK19MVF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAotKwotKyMg Tm8gc2Vuc2UgaW4gcnVubmluZyBhbGwgdGhlc2UgdGVzdHMgaWYgd2UgYWxyZWFkeSBkZXRlcm1p bmVkIHRoYXQKLSsjIHRoZSBGQyBjb21waWxlciBpc24ndCB3b3JraW5nLiAgU29tZSB2YXJpYWJs ZXMgKGxpa2UgZW5hYmxlX3NoYXJlZCkKLSsjIGFyZSBjdXJyZW50bHkgYXNzdW1lZCB0byBhcHBs eSB0byBhbGwgY29tcGlsZXJzIG9uIHRoaXMgcGxhdGZvcm0sCi0rIyBhbmQgd2lsbCBiZSBjb3Jy dXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2VkIG9uIGEgbm9uLXdvcmtpbmcgY29tcGlsZXIuCi0r aWYgdGVzdCAiJF9sdF9kaXNhYmxlX0ZDIiAhPSB5ZXM7IHRoZW4KLSsgICMgQ29kZSB0byBiZSB1 c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCi0rICBsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2Nv ZGU9IlwKLSsgICAgICBzdWJyb3V0aW5lIHQKLSsgICAgICByZXR1cm4KLSsgICAgICBlbmQKLSsi Ci0rCi0rICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotKyAgbHRfc2lt cGxlX2xpbmtfdGVzdF9jb2RlPSJcCi0rICAgICAgcHJvZ3JhbSB0Ci0rICAgICAgZW5kCi0rIgot KwotKyAgIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNv IG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgotKyAgX0xUX1RBR19DT01QSUxFUgotKwotKyAgIyBzYXZl IHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKLSsgIF9MVF9DT01QSUxF Ul9CT0lMRVJQTEFURQotKyAgX0xUX0xJTktFUl9CT0lMRVJQTEFURQotKwotKyAgIyBBbGxvdyBD QyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KLSsgIGx0X3NhdmVfQ0M9IiRD QyIKLSsgIGx0X3NhdmVfR0NDPSRHQ0MKLSsgIENDPSR7RkMtImY5NSJ9Ci0rICBjb21waWxlcj0k Q0MKLSsgIEdDQz0kYWNfY3ZfZmNfY29tcGlsZXJfZ251Ci0rCi0rICBfTFRfVEFHVkFSKGNvbXBp bGVyLCAkMSk9JENDCi0rICBfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCi0rCi0rICBpZiB0 ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCi0rICAgIEFDX01TR19DSEVDS0lORyhbaWYgbGlidG9v bCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKLSsgICAgQUNfTVNHX1JFU1VMVChbJGNhbl9i dWlsZF9zaGFyZWRdKQotKwotKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQg c2hhcmVkIGxpYnJhcmllc10pCi0rICAgIHRlc3QgIiRjYW5fYnVpbGRfc2hhcmVkIiA9ICJubyIg JiYgZW5hYmxlX3NoYXJlZD1ubwotKwotKyAgICAjIE9uIEFJWCwgc2hhcmVkIGxpYnJhcmllcyBh bmQgc3RhdGljIGxpYnJhcmllcyB1c2UgdGhlIHNhbWUgbmFtZXNwYWNlLCBhbmQKLSsgICAgIyBh cmUgYWxsIGJ1aWx0IGZyb20gUElDLgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4 MyopCi0rICAgICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRp Yz1ubwotKyAgICAgICAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KLSsgICAgICAgICAgYXJj aGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGliIgotKyAgICAgICAgICBwb3N0 aW5zdGFsbF9jbWRzPSckUkFOTElCICRsaWInCi0rICAgICAgICBmaQotKyAgICAgICAgOzsKLSsg ICAgICBhaXhbWzQtOV1dKikKLSsJaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3Qg IiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgotKwkgIHRlc3QgIiRlbmFibGVf c2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rCWZpCi0rICAgICAgICA7OwotKyAg ICBlc2FjCi0rICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc2hhcmVkXSkKLSsKLSsgICAgQUNf TVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXNdKQotKyAgICAj IE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3NoYXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHllcy4K LSsgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCi0r ICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc3RhdGljXSkKLSsKLSsgICAgX0xUX1RBR1ZBUihH Q0MsICQxKT0iJGFjX2N2X2ZjX2NvbXBpbGVyX2dudSIKLSsgICAgX0xUX1RBR1ZBUihMRCwgJDEp PSIkTEQiCi0rCi0rICAgICMjIENBVkVBVCBFTVBUT1I6Ci0rICAgICMjIFRoZXJlIGlzIG5vIGVu Y2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCi0r ICAgICMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVu bGVzcyB5b3Uga25vdyBleGFjdGx5Ci0rICAgICMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgotKyAg ICBfTFRfU1lTX0hJRERFTl9MSUJERVBTKCQxKQotKyAgICBfTFRfQ09NUElMRVJfUElDKCQxKQot KyAgICBfTFRfQ09NUElMRVJfQ19PKCQxKQotKyAgICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygk MSkKLSsgICAgX0xUX0xJTktFUl9TSExJQlMoJDEpCi0rICAgIF9MVF9TWVNfRFlOQU1JQ19MSU5L RVIoJDEpCi0rICAgIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSCgkMSkKLSsKLSsgICAgX0xU X0NPTkZJRygkMSkKLSsgIGZpICMgdGVzdCAtbiAiJGNvbXBpbGVyIgotKwotKyAgR0NDPSRsdF9z YXZlX0dDQwotKyAgQ0M9IiRsdF9zYXZlX0NDIgotK2ZpICMgdGVzdCAiJF9sdF9kaXNhYmxlX0ZD IiAhPSB5ZXMKLSsKLStBQ19MQU5HX1BPUAotK10pIyBfTFRfTEFOR19GQ19DT05GSUcKLSsKLSsK LSsjIF9MVF9MQU5HX0dDSl9DT05GSUcoW1RBR10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciB0aGUg R05VIEphdmEgQ29tcGlsZXIgY29tcGlsZXIKLSsjIGFyZSBzdWl0YWJseSBkZWZpbmVkLiAgVGhl c2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHCi0rIyB0byB3 cml0ZSB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCi0rbTRfZGVmdW4o W19MVF9MQU5HX0dDSl9DT05GSUddLAotK1tBQ19SRVFVSVJFKFtMVF9QUk9HX0dDSl0pZG5sCi0r QUNfTEFOR19TQVZFCi0rCi0rIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEphdmEgdGVzdCBz b3VyY2VzLgotK2FjX2V4dD1qYXZhCi0rCi0rIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNv bXBpbGVkIEphdmEgdGVzdCBzb3VyY2VzLgotK29iamV4dD1vCi0rX0xUX1RBR1ZBUihvYmpleHQs ICQxKT0kb2JqZXh0Ci0rCi0rIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVz dHMKLStsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9ImNsYXNzIGZvbyB7fSIKLSsKLSsjIENv ZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotK2x0X3NpbXBsZV9saW5rX3Rlc3Rf Y29kZT0ncHVibGljIGNsYXNzIGNvbmZ0ZXN0IHsgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3Ry aW5nW1tdXSBhcmd2KSB7fTsgfScKLSsKLSsjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdn ZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCi0rX0xUX1RBR19DT01Q SUxFUgotKwotKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2Rl Ci0rX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCi0rX0xUX0xJTktFUl9CT0lMRVJQTEFURQotKwot KyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rbHRfc2F2 ZV9DQz0iJENDIgotK2x0X3NhdmVfR0NDPSRHQ0MKLStHQ0M9eWVzCi0rQ0M9JHtHQ0otImdjaiJ9 Ci0rY29tcGlsZXI9JENDCi0rX0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQwotK19MVF9UQUdW QVIoTEQsICQxKT0iJExEIgotK19MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKLSsKLSsjIEdD SiBkaWQgbm90IGV4aXN0IGF0IHRoZSB0aW1lIEdDQyBkaWRuJ3QgaW1wbGljaXRseSBsaW5rIGxp YmMgaW4uCi0rX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rCi0rX0xU X1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMKLSsKLSsjIyBD QVZFQVQgRU1QVE9SOgotKyMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBm b2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCi0rIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Ig b3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKLSsjIyB3 aGF0IHlvdSBhcmUgZG9pbmcuLi4KLStpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCi0rICBf TFRfQ09NUElMRVJfTk9fUlRUSSgkMSkKLSsgIF9MVF9DT01QSUxFUl9QSUMoJDEpCi0rICBfTFRf Q09NUElMRVJfQ19PKCQxKQotKyAgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoJDEpCi0rICBfTFRf TElOS0VSX1NITElCUygkMSkKLSsgIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSCgkMSkKLSsK LSsgIF9MVF9DT05GSUcoJDEpCi0rZmkKLSsKLStBQ19MQU5HX1JFU1RPUkUKLSsKLStHQ0M9JGx0 X3NhdmVfR0NDCi0rQ0M9IiRsdF9zYXZlX0NDIgotK10pIyBfTFRfTEFOR19HQ0pfQ09ORklHCi0r Ci0rCi0rIyBfTFRfTEFOR19SQ19DT05GSUcoW1RBR10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIHRo ZSBXaW5kb3dzIHJlc291cmNlIGNvbXBpbGVyCi0rIyBhcmUgc3VpdGFibHkgZGVmaW5lZC4gIFRo ZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRwotKyMgdG8g d3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgotK200X2RlZnVu KFtfTFRfTEFOR19SQ19DT05GSUddLAotK1tBQ19SRVFVSVJFKFtMVF9QUk9HX1JDXSlkbmwKLStB Q19MQU5HX1NBVkUKLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgUkMgdGVzdCBzb3Vy Y2VzLgotK2FjX2V4dD1yYwotKwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxl ZCBSQyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRv YmpleHQKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwotK2x0 X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0nc2FtcGxlIE1FTlUgeyBNRU5VSVRFTSAiJlNvdXAi LCAxMDAsIENIRUNLRUQgfScKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0 ZXN0cwotK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iJGx0X3NpbXBsZV9jb21waWxlX3Rlc3Rf Y29kZSIKLSsKLSsjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlv bnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCi0rX0xUX1RBR19DT01QSUxFUgotKwotKyMgc2F2 ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCi0rX0xUX0NPTVBJTEVS X0JPSUxFUlBMQVRFCi0rX0xUX0xJTktFUl9CT0lMRVJQTEFURQotKwotKyMgQWxsb3cgQ0MgdG8g YmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rbHRfc2F2ZV9DQz0iJENDIgotK2x0 X3NhdmVfR0NDPSRHQ0MKLStHQ0M9Ci0rQ0M9JHtSQy0id2luZHJlcyJ9Ci0rY29tcGlsZXI9JEND Ci0rX0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQwotK19MVF9DQ19CQVNFTkFNRShbJGNvbXBp bGVyXSkKLStfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSk9eWVzCi0rCi0r aWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgotKyAgOgotKyAgX0xUX0NPTkZJRygkMSkKLStm aQotKwotK0dDQz0kbHRfc2F2ZV9HQ0MKLStBQ19MQU5HX1JFU1RPUkUKLStDQz0iJGx0X3NhdmVf Q0MiCi0rXSkjIF9MVF9MQU5HX1JDX0NPTkZJRwotKwotKwotKyMgTFRfUFJPR19HQ0oKLSsjIC0t LS0tLS0tLS0tCi0rQUNfREVGVU4oW0xUX1BST0dfR0NKXSwKLStbbTRfaWZkZWYoW0FDX1BST0df R0NKXSwgW0FDX1BST0dfR0NKXSwKLSsgIFttNF9pZmRlZihbQV1bTV9QUk9HX0dDSl0sIFtBXVtN X1BST0dfR0NKXSwKLSsgICAgW0FDX0NIRUNLX1RPT0woR0NKLCBnY2osKQotKyAgICAgIHRlc3Qg Ingke0dDSkZMQUdTK3NldH0iID0geHNldCB8fCBHQ0pGTEFHUz0iLWcgLU8yIgotKyAgICAgIEFD X1NVQlNUKEdDSkZMQUdTKV0pXSlbXWRubAotK10pCi0rCi0rIyBPbGQgbmFtZToKLStBVV9BTElB UyhbTFRfQUNfUFJPR19HQ0pdLCBbTFRfUFJPR19HQ0pdKQotK2RubCBhY2xvY2FsLTEuNCBiYWNr d2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0xUX0FDX1BST0dfR0NKXSwgW10p Ci0rCi0rCi0rIyBMVF9QUk9HX1JDCi0rIyAtLS0tLS0tLS0tCi0rQUNfREVGVU4oW0xUX1BST0df UkNdLAotK1tBQ19DSEVDS19UT09MKFJDLCB3aW5kcmVzLCkKLStdKQotKwotKyMgT2xkIG5hbWU6 Ci0rQVVfQUxJQVMoW0xUX0FDX1BST0dfUkNdLCBbTFRfUFJPR19SQ10pCi0rZG5sIGFjbG9jYWwt MS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBBQ19ERUZVTihbTFRfQUNfUFJPR19S Q10sIFtdKQotKwotKwotKyMgX0xUX0RFQ0xfRUdSRVAKLSsjIC0tLS0tLS0tLS0tLS0tCi0rIyBJ ZiB3ZSBkb24ndCBoYXZlIGEgbmV3IGVub3VnaCBBdXRvY29uZiB0byBjaG9vc2UgdGhlIGJlc3Qg Z3JlcAotKyMgYXZhaWxhYmxlLCBjaG9vc2UgdGhlIG9uZSBmaXJzdCBpbiB0aGUgdXNlcidzIFBB VEguCi0rbTRfZGVmdW4oW19MVF9ERUNMX0VHUkVQXSwKLStbQUNfUkVRVUlSRShbQUNfUFJPR19F R1JFUF0pZG5sCi0rQUNfUkVRVUlSRShbQUNfUFJPR19GR1JFUF0pZG5sCi0rdGVzdCAteiAiJEdS RVAiICYmIEdSRVA9Z3JlcAotK19MVF9ERUNMKFtdLCBbR1JFUF0sIFsxXSwgW0EgZ3JlcCBwcm9n cmFtIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzXSkKLStfTFRfREVDTChbXSwgW0VHUkVQXSwgWzFd LCBbQW4gRVJFIG1hdGNoZXJdKQotK19MVF9ERUNMKFtdLCBbRkdSRVBdLCBbMV0sIFtBIGxpdGVy YWwgc3RyaW5nIG1hdGNoZXJdKQotK2RubCBOb24tYmxlZWRpbmctZWRnZSBhdXRvY29uZiBkb2Vz bid0IHN1YnN0IEdSRVAsIHNvIGRvIGl0IGhlcmUgdG9vCi0rQUNfU1VCU1QoW0dSRVBdKQotK10p Ci0rCi0rCi0rIyBfTFRfREVDTF9PQkpEVU1QCi0rIyAtLS0tLS0tLS0tLS0tLQotKyMgSWYgd2Ug ZG9uJ3QgaGF2ZSBhIG5ldyBlbm91Z2ggQXV0b2NvbmYgdG8gY2hvb3NlIHRoZSBiZXN0IG9iamR1 bXAKLSsjIGF2YWlsYWJsZSwgY2hvb3NlIHRoZSBvbmUgZmlyc3QgaW4gdGhlIHVzZXIncyBQQVRI LgotK200X2RlZnVuKFtfTFRfREVDTF9PQkpEVU1QXSwKLStbQUNfQ0hFQ0tfVE9PTChPQkpEVU1Q LCBvYmpkdW1wLCBmYWxzZSkKLSt0ZXN0IC16ICIkT0JKRFVNUCIgJiYgT0JKRFVNUD1vYmpkdW1w Ci0rX0xUX0RFQ0woW10sIFtPQkpEVU1QXSwgWzFdLCBbQW4gb2JqZWN0IHN5bWJvbCBkdW1wZXJd KQotK0FDX1NVQlNUKFtPQkpEVU1QXSkKLStdKQotKwotKwotKyMgX0xUX0RFQ0xfU0VECi0rIyAt LS0tLS0tLS0tLS0KLSsjIENoZWNrIGZvciBhIGZ1bGx5LWZ1bmN0aW9uYWwgc2VkIHByb2dyYW0s IHRoYXQgdHJ1bmNhdGVzCi0rIyBhcyBmZXcgY2hhcmFjdGVycyBhcyBwb3NzaWJsZS4gIFByZWZl ciBHTlUgc2VkIGlmIGZvdW5kLgotK200X2RlZnVuKFtfTFRfREVDTF9TRURdLAotK1tBQ19QUk9H X1NFRAotK3Rlc3QgLXogIiRTRUQiICYmIFNFRD1zZWQKLStYc2VkPSIkU0VEIC1lIDFzL15YLy8i Ci0rX0xUX0RFQ0woW10sIFtTRURdLCBbMV0sIFtBIHNlZCBwcm9ncmFtIHRoYXQgZG9lcyBub3Qg dHJ1bmNhdGUgb3V0cHV0XSkKLStfTFRfREVDTChbXSwgW1hzZWRdLCBbIlwkU0VEIC1lIDFzL15Y Ly8iXSwKLSsgICAgW1NlZCB0aGF0IGhlbHBzIHVzIGF2b2lkIGFjY2lkZW50YWxseSB0cmlnZ2Vy aW5nIGVjaG8oMSkgb3B0aW9ucyBsaWtlIC1uXSkKLStdKSMgX0xUX0RFQ0xfU0VECi0rCi0rbTRf aWZuZGVmKFtBQ19QUk9HX1NFRF0sIFsKLSsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSsjIE5PVEU6IFRoaXMgbWFjcm8gaGFzIGJl ZW4gc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW50byAgICMKLSsjICBHTlUgQXV0b2NvbmYgYXMg QUNfUFJPR19TRUQuICBXaGVuIGl0IGlzIGF2YWlsYWJsZSBpbiAgICMKLSsjICBhIHJlbGVhc2Vk IHZlcnNpb24gb2YgQXV0b2NvbmYgd2Ugc2hvdWxkIHJlbW92ZSB0aGlzICAgICMKLSsjICBtYWNy byBhbmQgdXNlIGl0IGluc3RlYWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSsj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKLSsKLSttNF9kZWZ1bihbQUNfUFJPR19TRURdLAotK1tBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBh IHNlZCB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dF0pCi0rQUNfQ0FDSEVfVkFMKGx0X2N2 X3BhdGhfU0VELAotK1sjIExvb3AgdGhyb3VnaCB0aGUgdXNlcidzIHBhdGggYW5kIHRlc3QgZm9y IHNlZCBhbmQgZ3NlZC4KLSsjIFRoZW4gdXNlIHRoYXQgbGlzdCBvZiBzZWQncyBhcyBvbmVzIHRv IHRlc3QgZm9yIHRydW5jYXRpb24uCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFS QVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAg dGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBsdF9hY19wcm9nIGluIHNlZCBn c2VkOyBkbwotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5z aW9uczsgZG8KLSsgICAgICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRsdF9hY19wcm9n JGFjX2V4ZWNfZXh0IjsgdGhlbgotKyAgICAgICAgbHRfYWNfc2VkX2xpc3Q9IiRsdF9hY19zZWRf bGlzdCAkYXNfZGlyLyRsdF9hY19wcm9nJGFjX2V4ZWNfZXh0IgotKyAgICAgIGZpCi0rICAgIGRv bmUKLSsgIGRvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotK2x0X2FjX21heD0wCi0rbHRf YWNfY291bnQ9MAotKyMgQWRkIC91c3IveHBnNC9iaW4vc2VkIGFzIGl0IGlzIHR5cGljYWxseSBm b3VuZCBvbiBTb2xhcmlzCi0rIyBhbG9uZyB3aXRoIC9iaW4vc2VkIHRoYXQgdHJ1bmNhdGVzIG91 dHB1dC4KLStmb3IgbHRfYWNfc2VkIGluICRsdF9hY19zZWRfbGlzdCAvdXNyL3hwZzQvYmluL3Nl ZDsgZG8KLSsgIHRlc3QgISAtZiAkbHRfYWNfc2VkICYmIGNvbnRpbnVlCi0rICBjYXQgL2Rldi9u dWxsID4gY29uZnRlc3QuaW4KLSsgIGx0X2FjX2NvdW50PTAKLSsgIGVjaG8gJEVDSE9fTiAiMDEy MzQ1Njc4OSRFQ0hPX0MiID5jb25mdGVzdC5pbgotKyAgIyBDaGVjayBmb3IgR05VIHNlZCBhbmQg c2VsZWN0IGl0IGlmIGl0IGlzIGZvdW5kLgotKyAgaWYgIiRsdF9hY19zZWQiIC0tdmVyc2lvbiAy PiYxIDwgL2Rldi9udWxsIHwgZ3JlcCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICBsdF9j dl9wYXRoX1NFRD0kbHRfYWNfc2VkCi0rICAgIGJyZWFrCi0rICBmaQotKyAgd2hpbGUgdHJ1ZTsg ZG8KLSsgICAgY2F0IGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0LmluID5jb25mdGVzdC50bXAKLSsgICAg bXYgY29uZnRlc3QudG1wIGNvbmZ0ZXN0LmluCi0rICAgIGNwIGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0 Lm5sCi0rICAgIGVjaG8gPj5jb25mdGVzdC5ubAotKyAgICAkbHRfYWNfc2VkIC1lICdzL2EkLy8n IDwgY29uZnRlc3QubmwgPmNvbmZ0ZXN0Lm91dCB8fCBicmVhawotKyAgICBjbXAgLXMgY29uZnRl c3Qub3V0IGNvbmZ0ZXN0Lm5sIHx8IGJyZWFrCi0rICAgICMgMTAwMDAgY2hhcnMgYXMgaW5wdXQg c2VlbXMgbW9yZSB0aGFuIGVub3VnaAotKyAgICB0ZXN0ICRsdF9hY19jb3VudCAtZ3QgMTAgJiYg YnJlYWsKLSsgICAgbHRfYWNfY291bnQ9YGV4cHIgJGx0X2FjX2NvdW50ICsgMWAKLSsgICAgaWYg dGVzdCAkbHRfYWNfY291bnQgLWd0ICRsdF9hY19tYXg7IHRoZW4KLSsgICAgICBsdF9hY19tYXg9 JGx0X2FjX2NvdW50Ci0rICAgICAgbHRfY3ZfcGF0aF9TRUQ9JGx0X2FjX3NlZAotKyAgICBmaQot KyAgZG9uZQotK2RvbmUKLStdKQotK1NFRD0kbHRfY3ZfcGF0aF9TRUQKLStBQ19TVUJTVChbU0VE XSkKLStBQ19NU0dfUkVTVUxUKFskU0VEXSkKLStdKSNBQ19QUk9HX1NFRAotK10pI200X2lmbmRl ZgotKwotKyMgT2xkIG5hbWU6Ci0rQVVfQUxJQVMoW0xUX0FDX1BST0dfU0VEXSwgW0FDX1BST0df U0VEXSkKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFD X0RFRlVOKFtMVF9BQ19QUk9HX1NFRF0sIFtdKQotKwotKwotKyMgX0xUX0NIRUNLX1NIRUxMX0ZF QVRVUkVTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEZpbmQgb3V0IHdoZXRoZXIg dGhlIHNoZWxsIGlzIEJvdXJuZSBvciBYU0kgY29tcGF0aWJsZSwKLSsjIG9yIGhhcyBzb21lIG90 aGVyIHVzZWZ1bCBmZWF0dXJlcy4KLSttNF9kZWZ1bihbX0xUX0NIRUNLX1NIRUxMX0ZFQVRVUkVT XSwKLStbQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyBzb21l IFhTSSBjb25zdHJ1Y3RzXSkKLSsjIFRyeSBzb21lIFhTSSBmZWF0dXJlcwotK3hzaV9zaGVsbD1u bwotKyggX2x0X2R1bW15PSJhL2IvYyIKLSsgIHRlc3QgIiR7X2x0X2R1bW15IyMqL30sJHtfbHRf ZHVtbXklLyp9LCIke19sdF9kdW1teSUiJF9sdF9kdW1teSJ9LCBcCi0rICAgICAgPSBjLGEvYiws IFwKLSsgICAgJiYgZXZhbCAndGVzdCAkKCggMSArIDEgKSkgLWVxIDIgXAotKyAgICAmJiB0ZXN0 ICIkeyNfbHRfZHVtbXl9IiAtZXEgNScgKSA+L2Rldi9udWxsIDI+JjEgXAotKyAgJiYgeHNpX3No ZWxsPXllcwotK0FDX01TR19SRVNVTFQoWyR4c2lfc2hlbGxdKQotK19MVF9DT05GSUdfTElCVE9P TF9JTklUKFt4c2lfc2hlbGw9JyR4c2lfc2hlbGwnXSkKLSsKLStBQ19NU0dfQ0hFQ0tJTkcoW3do ZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzICIrPSJdKQotK2x0X3NoZWxsX2FwcGVuZD1ubwot KyggZm9vPWJhcjsgc2V0IGZvbyBiYXo7IGV2YWwgIiRbMV0rPVwkWzJdIiAmJiB0ZXN0ICIkZm9v IiA9IGJhcmJheiApIFwKLSsgICAgPi9kZXYvbnVsbCAyPiYxIFwKLSsgICYmIGx0X3NoZWxsX2Fw cGVuZD15ZXMKLStBQ19NU0dfUkVTVUxUKFskbHRfc2hlbGxfYXBwZW5kXSkKLStfTFRfQ09ORklH X0xJQlRPT0xfSU5JVChbbHRfc2hlbGxfYXBwZW5kPSckbHRfc2hlbGxfYXBwZW5kJ10pCi0rCi0r aWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVu Ci0rICBsdF91bnNldD11bnNldAotK2Vsc2UKLSsgIGx0X3Vuc2V0PWZhbHNlCi0rZmkKLStfTFRf REVDTChbXSwgW2x0X3Vuc2V0XSwgWzBdLCBbd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMg InVuc2V0Il0pZG5sCi0rCi0rIyB0ZXN0IEVCQ0RJQyBvciBBU0NJSQotK2Nhc2UgYGVjaG8gWHx0 ciBYICdcMTAxJ2AgaW4KLSsgQSkgIyBBU0NJSSBiYXNlZCBzeXN0ZW0KLSsgICAgIyBcbiBpcyBu b3QgaW50ZXJwcmV0ZWQgY29ycmVjdGx5IGJ5IFNvbGFyaXMgOCAvdXNyL3VjYi90cgotKyAgbHRf U1AyTkw9J3RyIFwwNDAgXDAxMicKLSsgIGx0X05MMlNQPSd0ciBcMDE1XDAxMiBcMDQwXDA0MCcK LSsgIDs7Ci0rICopICMgRUJDRElDIGJhc2VkIHN5c3RlbQotKyAgbHRfU1AyTkw9J3RyIFwxMDAg XG4nCi0rICBsdF9OTDJTUD0ndHIgXHJcbiBcMTAwXDEwMCcKLSsgIDs7Ci0rZXNhYwotK19MVF9E RUNMKFtTUDJOTF0sIFtsdF9TUDJOTF0sIFsxXSwgW3R1cm4gc3BhY2VzIGludG8gbmV3bGluZXNd KWRubAotK19MVF9ERUNMKFtOTDJTUF0sIFtsdF9OTDJTUF0sIFsxXSwgW3R1cm4gbmV3bGluZXMg aW50byBzcGFjZXNdKWRubAotK10pIyBfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVMKLSsKLSsKLSsj IF9MVF9QUk9HX1hTSV9TSEVMTEZOUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBCb3Vy bmUgYW5kIFhTSSBjb21wYXRpYmxlIHZhcmlhbnRzIG9mIHNvbWUgdXNlZnVsIHNoZWxsIGZ1bmN0 aW9ucy4KLSttNF9kZWZ1bihbX0xUX1BST0dfWFNJX1NIRUxMRk5TXSwKLStbY2FzZSAkeHNpX3No ZWxsIGluCi0rICB5ZXMpCi0rICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCi0rCi0r IyBmdW5jX2Rpcm5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50Ci0rIyBDb21wdXRl IHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwgYWRkIEFQUEVORCB0byB0aGUgcmVz dWx0LAotKyMgb3RoZXJ3aXNlIHNldCByZXN1bHQgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgotK2Z1 bmNfZGlybmFtZSAoKQotK3sKLSsgIGNhc2UgJHsxfSBpbgotKyAgICAqLyopIGZ1bmNfZGlybmFt ZV9yZXN1bHQ9IiR7MSUvKn0kezJ9IiA7OwotKyAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9 IiR7M30iIDs7Ci0rICBlc2FjCi0rfQotKwotKyMgZnVuY19iYXNlbmFtZSBmaWxlCi0rZnVuY19i YXNlbmFtZSAoKQotK3sKLSsgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyovfSIKLSt9Ci0r Ci0rIyBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNl bWVudAotKyMgcGVyZm9ybSBmdW5jX2Jhc2VuYW1lIGFuZCBmdW5jX2Rpcm5hbWUgaW4gYSBzaW5n bGUgZnVuY3Rpb24KLSsjIGNhbGw6Ci0rIyAgIGRpcm5hbWU6ICBDb21wdXRlIHRoZSBkaXJuYW1l IG9mIEZJTEUuICBJZiBub25lbXB0eSwKLSsjICAgICAgICAgICAgIGFkZCBBUFBFTkQgdG8gdGhl IHJlc3VsdCwgb3RoZXJ3aXNlIHNldCByZXN1bHQKLSsjICAgICAgICAgICAgIHRvIE5PTkRJUl9S RVBMQUNFTUVOVC4KLSsjICAgICAgICAgICAgIHZhbHVlIHJldHVybmVkIGluICIkZnVuY19kaXJu YW1lX3Jlc3VsdCIKLSsjICAgYmFzZW5hbWU6IENvbXB1dGUgZmlsZW5hbWUgb2YgRklMRS4KLSsj ICAgICAgICAgICAgIHZhbHVlIHJldHVuZWQgaW4gIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsj IEltcGxlbWVudGF0aW9uIG11c3QgYmUga2VwdCBzeW5jaHJvbml6ZWQgd2l0aCBmdW5jX2Rpcm5h bWUKLSsjIGFuZCBmdW5jX2Jhc2VuYW1lLiBGb3IgZWZmaWNpZW5jeSwgd2UgZG8gbm90IGRlbGVn YXRlIHRvCi0rIyB0aG9zZSBmdW5jdGlvbnMgYnV0IGluc3RlYWQgZHVwbGljYXRlIHRoZSBmdW5j dGlvbmFsaXR5IGhlcmUuCi0rZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAoKQotK3sKLSsgIGNh c2UgJHsxfSBpbgotKyAgICAqLyopIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7MSUvKn0kezJ9IiA7 OwotKyAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iIDs7Ci0rICBlc2FjCi0rICBm dW5jX2Jhc2VuYW1lX3Jlc3VsdD0iJHsxIyMqL30iCi0rfQotKwotKyMgZnVuY19zdHJpcG5hbWUg cHJlZml4IHN1ZmZpeCBuYW1lCi0rIyBzdHJpcCBQUkVGSVggYW5kIFNVRkZJWCBvZmYgb2YgTkFN RS4KLSsjIFBSRUZJWCBhbmQgU1VGRklYIG11c3Qgbm90IGNvbnRhaW4gZ2xvYmJpbmcgb3IgcmVn ZXggc3BlY2lhbAotKyMgY2hhcmFjdGVycywgaGFzaGVzLCBwZXJjZW50IHNpZ25zLCBidXQgU1VG RklYIG1heSBjb250YWluIGEgbGVhZGluZwotKyMgZG90IChpbiB3aGljaCBjYXNlIHRoYXQgbWF0 Y2hlcyBvbmx5IGEgZG90KS4KLStmdW5jX3N0cmlwbmFtZSAoKQotK3sKLSsgICMgcGRrc2ggNS4y LjE0IGRvZXMgbm90IGRvICR7WCUkWX0gY29ycmVjdGx5IGlmIGJvdGggWCBhbmQgWSBhcmUKLSsg ICMgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLCBzbyBhc3NpZ24gb25lIHRvIG9yZGluYXJ5IHBhcmFt ZXRlciBmaXJzdC4KLSsgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0kezN9Ci0rICBmdW5jX3N0cmlw bmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQjIiR7MX0ifQotKyAgZnVuY19zdHJp cG5hbWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0JSIkezJ9In0KLSt9Ci0rCi0rIyBm dW5jX29wdF9zcGxpdAotK2Z1bmNfb3B0X3NwbGl0ICgpCi0rewotKyAgZnVuY19vcHRfc3BsaXRf b3B0PSR7MSUlPSp9Ci0rICBmdW5jX29wdF9zcGxpdF9hcmc9JHsxIyo9fQotK30KLSsKLSsjIGZ1 bmNfbG8ybyBvYmplY3QKLStmdW5jX2xvMm8gKCkKLSt7Ci0rICBjYXNlICR7MX0gaW4KLSsgICAg Ki5sbykgZnVuY19sbzJvX3Jlc3VsdD0kezElLmxvfS4ke29iamV4dH0gOzsKLSsgICAgKikgICAg ZnVuY19sbzJvX3Jlc3VsdD0kezF9IDs7Ci0rICBlc2FjCi0rfQotKwotKyMgZnVuY194Zm9ybSBs aWJvYmotb3Itc291cmNlCi0rZnVuY194Zm9ybSAoKQotK3sKLSsgIGZ1bmNfeGZvcm1fcmVzdWx0 PSR7MSUuKn0ubG8KLSt9Ci0rCi0rIyBmdW5jX2FyaXRoIGFyaXRobWV0aWMtdGVybS4uLgotK2Z1 bmNfYXJpdGggKCkKLSt7Ci0rICBmdW5jX2FyaXRoX3Jlc3VsdD0kKCggJFsqXSApKQotK30KLSsK LSsjIGZ1bmNfbGVuIHN0cmluZwotKyMgU1RSSU5HIG1heSBub3Qgc3RhcnQgd2l0aCBhIGh5cGhl bi4KLStmdW5jX2xlbiAoKQotK3sKLSsgIGZ1bmNfbGVuX3Jlc3VsdD0keyMxfQotK30KLSsKLStf TFRfRU9GCi0rICAgIDs7Ci0rICAqKSAjIEJvdXJuZSBjb21wYXRpYmxlIGZ1bmN0aW9ucy4KLSsg ICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLSsKLSsjIGZ1bmNfZGlybmFtZSBmaWxl IGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKLSsjIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklM RS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsCi0rIyBvdGhlcndpc2Ug c2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFDRU1FTlQuCi0rZnVuY19kaXJuYW1lICgpCi0rewot KyAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KLSsgIGZ1bmNfZGly bmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGRpcm5hbWUiYAotKyAgaWYg dGVzdCAiWCRmdW5jX2Rpcm5hbWVfcmVzdWx0IiA9ICJYJHsxfSI7IHRoZW4KLSsgICAgZnVuY19k aXJuYW1lX3Jlc3VsdD0iJHszfSIKLSsgIGVsc2UKLSsgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0i JGZ1bmNfZGlybmFtZV9yZXN1bHQkezJ9IgotKyAgZmkKLSt9Ci0rCi0rIyBmdW5jX2Jhc2VuYW1l IGZpbGUKLStmdW5jX2Jhc2VuYW1lICgpCi0rewotKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9YCRF Q0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKLSt9Ci0rCi0rZG5sIGZ1bmNfZGly bmFtZV9hbmRfYmFzZW5hbWUKLStkbmwgQSBwb3J0YWJsZSB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rp b24gaXMgYWxyZWFkeSBkZWZpbmVkIGluIGdlbmVyYWwubTRzaAotK2RubCBzbyB0aGVyZSBpcyBu byBuZWVkIGZvciBpdCBoZXJlLgotKwotKyMgZnVuY19zdHJpcG5hbWUgcHJlZml4IHN1ZmZpeCBu YW1lCi0rIyBzdHJpcCBQUkVGSVggYW5kIFNVRkZJWCBvZmYgb2YgTkFNRS4KLSsjIFBSRUZJWCBh bmQgU1VGRklYIG11c3Qgbm90IGNvbnRhaW4gZ2xvYmJpbmcgb3IgcmVnZXggc3BlY2lhbAotKyMg Y2hhcmFjdGVycywgaGFzaGVzLCBwZXJjZW50IHNpZ25zLCBidXQgU1VGRklYIG1heSBjb250YWlu IGEgbGVhZGluZwotKyMgZG90IChpbiB3aGljaCBjYXNlIHRoYXQgbWF0Y2hlcyBvbmx5IGEgZG90 KS4KLSsjIGZ1bmNfc3RyaXBfc3VmZml4IHByZWZpeCBuYW1lCi0rZnVuY19zdHJpcG5hbWUgKCkK LSt7Ci0rICBjYXNlICR7Mn0gaW4KLSsgICAgLiopIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD1gJEVD SE8gIlgkezN9IiBcCi0rICAgICAgICAgICB8ICRYc2VkIC1lICJzJV4kezF9JSUiIC1lICJzJVxc XFwkezJ9XCQlJSJgOzsKLSsgICAgKikgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD1gJEVDSE8gIlgk ezN9IiBcCi0rICAgICAgICAgICB8ICRYc2VkIC1lICJzJV4kezF9JSUiIC1lICJzJSR7Mn1cJCUl ImA7OwotKyAgZXNhYwotK30KLSsKLSsjIHNlZCBzY3JpcHRzOgotK215X3NlZF9sb25nX29wdD0n MXMvXlwoLVtbXj1dXSpcKT0uKi9cMS87cScKLStteV9zZWRfbG9uZ19hcmc9JzFzL14tW1tePV1d Kj0vLycKLSsKLSsjIGZ1bmNfb3B0X3NwbGl0Ci0rZnVuY19vcHRfc3BsaXQgKCkKLSt7Ci0rICBm dW5jX29wdF9zcGxpdF9vcHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJG15X3NlZF9sb25n X29wdCJgCi0rICBmdW5jX29wdF9zcGxpdF9hcmc9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAi JG15X3NlZF9sb25nX2FyZyJgCi0rfQotKwotKyMgZnVuY19sbzJvIG9iamVjdAotK2Z1bmNfbG8y byAoKQotK3sKLSsgIGZ1bmNfbG8yb19yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAi JGxvMm8iYAotK30KLSsKLSsjIGZ1bmNfeGZvcm0gbGlib2JqLW9yLXNvdXJjZQotK2Z1bmNfeGZv cm0gKCkKLSt7Ci0rICBmdW5jX3hmb3JtX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1l ICdzL1wuW1teLl1dKiQvLmxvLydgCi0rfQotKwotKyMgZnVuY19hcml0aCBhcml0aG1ldGljLXRl cm0uLi4KLStmdW5jX2FyaXRoICgpCi0rewotKyAgZnVuY19hcml0aF9yZXN1bHQ9YGV4cHIgIiRb QF0iYAotK30KLSsKLSsjIGZ1bmNfbGVuIHN0cmluZwotKyMgU1RSSU5HIG1heSBub3Qgc3RhcnQg d2l0aCBhIGh5cGhlbi4KLStmdW5jX2xlbiAoKQotK3sKLSsgIGZ1bmNfbGVuX3Jlc3VsdD1gZXhw ciAiJFsxXSIgOiAiLioiIDI+L2Rldi9udWxsIHx8IGVjaG8gJG1heF9jbWRfbGVuYAotK30KLSsK LStfTFRfRU9GCi0rZXNhYwotKwotK2Nhc2UgJGx0X3NoZWxsX2FwcGVuZCBpbgotKyAgeWVzKQot KyAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgotKwotKyMgZnVuY19hcHBlbmQgdmFy IHZhbHVlCi0rIyBBcHBlbmQgVkFMVUUgdG8gdGhlIGVuZCBvZiBzaGVsbCB2YXJpYWJsZSBWQVIu Ci0rZnVuY19hcHBlbmQgKCkKLSt7Ci0rICBldmFsICIkWzFdKz1cJFsyXSIKLSt9Ci0rX0xUX0VP RgotKyAgICA7OwotKyAgKikKLSsgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLSsK LSsjIGZ1bmNfYXBwZW5kIHZhciB2YWx1ZQotKyMgQXBwZW5kIFZBTFVFIHRvIHRoZSBlbmQgb2Yg c2hlbGwgdmFyaWFibGUgVkFSLgotK2Z1bmNfYXBwZW5kICgpCi0rewotKyAgZXZhbCAiJFsxXT1c JCRbMV1cJFsyXSIKLSt9Ci0rCi0rX0xUX0VPRgotKyAgICA7OwotKyAgZXNhYwotK10pCi1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0bWFpbi5zaCBzb2NpLTMuMC4wX3RyZXAz MDAvY29uZmlnL2x0bWFpbi5zaAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdG1haW4u c2gJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvY29uZmlnL2x0bWFpbi5zaAkyMDEwLTAxLTIzIDE0OjQ0OjQzLjAwMDAwMDAwMCArMDEw MAotQEAgLTAsMCArMSw4NDA2IEBACi0rIyBHZW5lcmF0ZWQgZnJvbSBsdG1haW4ubTRzaC4KLSsK LSsjIGx0bWFpbi5zaCAoR05VIGxpYnRvb2wpIDIuMi42YgotKyMgV3JpdHRlbiBieSBHb3Jkb24g TWF0emlna2VpdCA8Z29yZEBnbnUuYWkubWl0LmVkdT4sIDE5OTYKLSsKLSsjIENvcHlyaWdodCAo QykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNSwg MjAwNiwgMjAwNyAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBp cyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAg VGhlcmUgaXMgTk8KLSsjIHdhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotKyMgR05VIExpYnRvb2wgaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgotKyMKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlLAotKyMgaWYgeW91IGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQg b2YgYSBwcm9ncmFtIG9yIGxpYnJhcnkgdGhhdAotKyMgaXMgYnVpbHQgdXNpbmcgR05VIExpYnRv b2wsIHlvdSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIgdGhlCi0rIyBzYW1lIGRpc3RyaWJ1 dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KLSsj Ci0rIyBHTlUgTGlidG9vbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLCBidXQKLSsjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rIyBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggR05V IExpYnRvb2w7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCBhIGNvcHkKLSsjIGNhbiBi ZSBkb3dubG9hZGVkIGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sLAot KyMgb3Igb2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuLAotKyMgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAw MjExMC0xMzAxLCBVU0EuCi0rCi0rIyBVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIFtNT0RF LUFSR10uLi4KLSsjCi0rIyBQcm92aWRlIGdlbmVyYWxpemVkIGxpYnJhcnktYnVpbGRpbmcgc3Vw cG9ydCBzZXJ2aWNlcy4KLSsjCi0rIyAgICAgLS1jb25maWcgICAgICAgICAgICAgc2hvdyBhbGwg Y29uZmlndXJhdGlvbiB2YXJpYWJsZXMKLSsjICAgICAtLWRlYnVnICAgICAgICAgICAgICBlbmFi bGUgdmVyYm9zZSBzaGVsbCB0cmFjaW5nCi0rIyAtbiwgLS1kcnktcnVuICAgICAgICAgICAgZGlz cGxheSBjb21tYW5kcyB3aXRob3V0IG1vZGlmeWluZyBhbnkgZmlsZXMKLSsjICAgICAtLWZlYXR1 cmVzICAgICAgICAgICBkaXNwbGF5IGJhc2ljIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gYW5k IGV4aXQKLSsjICAgICAtLW1vZGU9TU9ERSAgICAgICAgICB1c2Ugb3BlcmF0aW9uIG1vZGUgTU9E RQotKyMgICAgIC0tcHJlc2VydmUtZHVwLWRlcHMgIGRvbid0IHJlbW92ZSBkdXBsaWNhdGUgZGVw ZW5kZW5jeSBsaWJyYXJpZXMKLSsjICAgICAtLXF1aWV0LCAtLXNpbGVudCAgICBkb24ndCBwcmlu dCBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzCi0rIyAgICAgLS10YWc9VEFHICAgICAgICAgICAgdXNl IGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZyb20gdGFnIFRBRwotKyMgLXYsIC0tdmVyYm9zZSAg ICAgICAgICAgIHByaW50IGluZm9ybWF0aW9uYWwgbWVzc2FnZXMgKGRlZmF1bHQpCi0rIyAgICAg LS12ZXJzaW9uICAgICAgICAgICAgcHJpbnQgdmVyc2lvbiBpbmZvcm1hdGlvbgotKyMgLWgsIC0t aGVscCAgICAgICAgICAgICAgIHByaW50IHNob3J0IG9yIGxvbmcgaGVscCBtZXNzYWdlCi0rIwot KyMgTU9ERSBtdXN0IGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOgotKyMKLSsjICAgICAgIGNsZWFu ICAgICAgICAgICAgICByZW1vdmUgZmlsZXMgZnJvbSB0aGUgYnVpbGQgZGlyZWN0b3J5Ci0rIyAg ICAgICBjb21waWxlICAgICAgICAgICAgY29tcGlsZSBhIHNvdXJjZSBmaWxlIGludG8gYSBsaWJ0 b29sIG9iamVjdAotKyMgICAgICAgZXhlY3V0ZSAgICAgICAgICAgIGF1dG9tYXRpY2FsbHkgc2V0 IGxpYnJhcnkgcGF0aCwgdGhlbiBydW4gYSBwcm9ncmFtCi0rIyAgICAgICBmaW5pc2ggICAgICAg ICAgICAgY29tcGxldGUgdGhlIGluc3RhbGxhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmllcwotKyMg ICAgICAgaW5zdGFsbCAgICAgICAgICAgIGluc3RhbGwgbGlicmFyaWVzIG9yIGV4ZWN1dGFibGVz Ci0rIyAgICAgICBsaW5rICAgICAgICAgICAgICAgY3JlYXRlIGEgbGlicmFyeSBvciBhbiBleGVj dXRhYmxlCi0rIyAgICAgICB1bmluc3RhbGwgICAgICAgICAgcmVtb3ZlIGxpYnJhcmllcyBmcm9t IGFuIGluc3RhbGxlZCBkaXJlY3RvcnkKLSsjCi0rIyBNT0RFLUFSR1MgdmFyeSBkZXBlbmRpbmcg b24gdGhlIE1PREUuCi0rIyBUcnkgYCRwcm9nbmFtZSAtLWhlbHAgLS1tb2RlPU1PREUnIGZvciBh IG1vcmUgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgTU9ERS4KLSsjCi0rIyBXaGVuIHJlcG9ydGlu ZyBhIGJ1ZywgcGxlYXNlIGRlc2NyaWJlIGEgdGVzdCBjYXNlIHRvIHJlcHJvZHVjZSBpdCBhbmQK LSsjIGluY2x1ZGUgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjoKLSsjCi0rIyAgICAgICBob3N0 LXRyaXBsZXQ6CSRob3N0Ci0rIyAgICAgICBzaGVsbDoJCSRTSEVMTAotKyMgICAgICAgY29tcGls ZXI6CQkkTFRDQwotKyMgICAgICAgY29tcGlsZXIgZmxhZ3M6CQkkTFRDRkxBR1MKLSsjICAgICAg IGxpbmtlcjoJCSRMRCAoZ251PyAkd2l0aF9nbnVfbGQpCi0rIyAgICAgICAkcHJvZ25hbWU6CQko R05VIGxpYnRvb2wpIDIuMi42YgotKyMgICAgICAgYXV0b21ha2U6CQkkYXV0b21ha2VfdmVyc2lv bgotKyMgICAgICAgYXV0b2NvbmY6CQkkYXV0b2NvbmZfdmVyc2lvbgotKyMKLSsjIFJlcG9ydCBi dWdzIHRvIDxidWctbGlidG9vbEBnbnUub3JnPi4KLSsKLStQUk9HUkFNPWx0bWFpbi5zaAotK1BB Q0tBR0U9bGlidG9vbAotK1ZFUlNJT049Mi4yLjZiCi0rVElNRVNUQU1QPSIiCi0rcGFja2FnZV9y ZXZpc2lvbj0xLjMwMTcKLSsKLSsjIEJlIEJvdXJuZSBjb21wYXRpYmxlCi0raWYgdGVzdCAtbiAi JHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVu Ci0rICBlbXVsYXRlIHNoCi0rICBOVUxMQ01EPToKLSsgICMgWnNoIDMueCBhbmQgNC54IHBlcmZv cm1zIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKLSsgICMgaXMgY29udHJhcnkg dG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCi0rICBhbGlhcyAtZyAnJHsxKyIk QCJ9Jz0nIiRAIicKLSsgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZWxzZQotKyAgY2FzZSBgKHNl dCAtbykgMj4vZGV2L251bGxgIGluICpwb3NpeCopIHNldCAtbyBwb3NpeDs7IGVzYWMKLStmaQot K0JJTl9TSD14cGc0OyBleHBvcnQgQklOX1NIICMgZm9yIFRydTY0Ci0rRFVBTENBU0U9MTsgZXhw b3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAotKwotKyMgTkxTIG51aXNhbmNlczogV2Ugc2F2ZSB0 aGUgb2xkIHZhbHVlcyB0byByZXN0b3JlIGR1cmluZyBleGVjdXRlIG1vZGUuCi0rIyBPbmx5IHNl dCBMQU5HIGFuZCBMQ19BTEwgdG8gQyBpZiBhbHJlYWR5IHNldC4KLSsjIFRoZXNlIG11c3Qgbm90 IGJlIHNldCB1bmNvbmRpdGlvbmFsbHkgYmVjYXVzZSBub3QgYWxsIHN5c3RlbXMgdW5kZXJzdGFu ZAotKyMgZS5nLiBMQU5HPUMgKG5vdGFibHkgU0NPKS4KLStsdF91c2VyX2xvY2FsZT0KLStsdF9z YWZlX2xvY2FsZT0KLStmb3IgbHRfdmFyIGluIExBTkcgTEFOR1VBR0UgTENfQUxMIExDX0NUWVBF IExDX0NPTExBVEUgTENfTUVTU0FHRVMKLStkbwotKyAgZXZhbCAiaWYgdGVzdCBcIlwkeyRsdF92 YXIrc2V0fVwiID0gc2V0OyB0aGVuCi0rICAgICAgICAgIHNhdmVfJGx0X3Zhcj1cJCRsdF92YXIK LSsgICAgICAgICAgJGx0X3Zhcj1DCi0rCSAgZXhwb3J0ICRsdF92YXIKLSsJICBsdF91c2VyX2xv Y2FsZT1cIiRsdF92YXI9XFxcJHNhdmVfXCRsdF92YXI7IFwkbHRfdXNlcl9sb2NhbGVcIgotKwkg IGx0X3NhZmVfbG9jYWxlPVwiJGx0X3Zhcj1DOyBcJGx0X3NhZmVfbG9jYWxlXCIKLSsJZmkiCi0r ZG9uZQotKwotKyRsdF91bnNldCBDRFBBVEgKLSsKLSsKLSsKLSsKLSsKLSs6ICR7Q1A9ImNwIC1m In0KLSs6ICR7RUNITz0iZWNobyJ9Ci0rOiAke0VHUkVQPSIvYmluL2dyZXAgLUUifQotKzogJHtG R1JFUD0iL2Jpbi9ncmVwIC1GIn0KLSs6ICR7R1JFUD0iL2Jpbi9ncmVwIn0KLSs6ICR7TE5fUz0i bG4gLXMifQotKzogJHtNQUtFPSJtYWtlIn0KLSs6ICR7TUtESVI9Im1rZGlyIn0KLSs6ICR7TVY9 Im12IC1mIn0KLSs6ICR7Uk09InJtIC1mIn0KLSs6ICR7U0VEPSIvYmluL3NlZCJ9Ci0rOiAke1NI RUxMPSIke0NPTkZJR19TSEVMTC0vYmluL3NofSJ9Ci0rOiAke1hzZWQ9IiRTRUQgLWUgMXMvXlgv LyJ9Ci0rCi0rIyBHbG9iYWwgdmFyaWFibGVzOgotK0VYSVRfU1VDQ0VTUz0wCi0rRVhJVF9GQUlM VVJFPTEKLStFWElUX01JU01BVENIPTYzICAjICQ/ID0gNjMgaXMgdXNlZCB0byBpbmRpY2F0ZSB2 ZXJzaW9uIG1pc21hdGNoIHRvIG1pc3NpbmcuCi0rRVhJVF9TS0lQPTc3CSAgIyAkPyA9IDc3IGlz IHVzZWQgdG8gaW5kaWNhdGUgYSBza2lwcGVkIHRlc3QgdG8gYXV0b21ha2UuCi0rCi0rZXhpdF9z dGF0dXM9JEVYSVRfU1VDQ0VTUwotKwotKyMgTWFrZSBzdXJlIElGUyBoYXMgYSBzZW5zaWJsZSBk ZWZhdWx0Ci0rbHRfbmw9JwotKycKLStJRlM9IiAJJGx0X25sIgotKwotK2Rpcm5hbWU9InMsL1te L10qJCwsIgotK2Jhc2VuYW1lPSJzLF4uKi8sLCIKLSsKLSsjIGZ1bmNfZGlybmFtZV9hbmRfYmFz ZW5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50Ci0rIyBwZXJmb3JtIGZ1bmNfYmFz ZW5hbWUgYW5kIGZ1bmNfZGlybmFtZSBpbiBhIHNpbmdsZSBmdW5jdGlvbgotKyMgY2FsbDoKLSsj ICAgZGlybmFtZTogIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LAot KyMgICAgICAgICAgICAgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LCBvdGhlcndpc2Ugc2V0IHJl c3VsdAotKyMgICAgICAgICAgICAgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgotKyMgICAgICAgICAg ICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKyMgICBiYXNlbmFt ZTogQ29tcHV0ZSBmaWxlbmFtZSBvZiBGSUxFLgotKyMgICAgICAgICAgICAgdmFsdWUgcmV0dW5l ZCBpbiAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKyMgSW1wbGVtZW50YXRpb24gbXVzdCBiZSBr ZXB0IHN5bmNocm9uaXplZCB3aXRoIGZ1bmNfZGlybmFtZQotKyMgYW5kIGZ1bmNfYmFzZW5hbWUu IEZvciBlZmZpY2llbmN5LCB3ZSBkbyBub3QgZGVsZWdhdGUgdG8KLSsjIHRob3NlIGZ1bmN0aW9u cyBidXQgaW5zdGVhZCBkdXBsaWNhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgaGVyZS4KLStmdW5jX2Rp cm5hbWVfYW5kX2Jhc2VuYW1lICgpCi0rewotKyAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9t IHRoZSBhcmd1bWVudC4KLSsgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAk WHNlZCAtZSAiJGRpcm5hbWUiYAotKyAgaWYgdGVzdCAiWCRmdW5jX2Rpcm5hbWVfcmVzdWx0IiA9 ICJYJHsxfSI7IHRoZW4KLSsgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIKLSsgIGVsc2UK LSsgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJGZ1bmNfZGlybmFtZV9yZXN1bHQkezJ9IgotKyAg ZmkKLSsgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRi YXNlbmFtZSJgCi0rfQotKwotKyMgR2VuZXJhdGVkIHNoZWxsIGZ1bmN0aW9ucyBpbnNlcnRlZCBo ZXJlLgotKwotKyMgV29yayBhcm91bmQgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBpc3N1ZSBvbiBJ UklYIDYuNS4gT24gSVJJWCA2LjQrLCBzaAotKyMgaXMga3NoIGJ1dCB3aGVuIHRoZSBzaGVsbCBp cyBpbnZva2VkIGFzICJzaCIgYW5kIHRoZSBjdXJyZW50IHZhbHVlIG9mCi0rIyB0aGUgX1hQRyBl bnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3QgZXF1YWwgdG8gMSAob25lKSwgdGhlIHNwZWNpYWwK LSsjIHBvc2l0aW9uYWwgcGFyYW1ldGVyICQwLCB3aXRoaW4gYSBmdW5jdGlvbiBjYWxsLCBpcyB0 aGUgbmFtZSBvZiB0aGUKLSsjIGZ1bmN0aW9uLgotK3Byb2dwYXRoPSIkMCIKLSsKLSsjIFRoZSBu YW1lIG9mIHRoaXMgcHJvZ3JhbToKLSsjIEluIHRoZSB1bmxpa2VseSBldmVudCAkcHJvZ25hbWUg YmVnYW4gd2l0aCBhICctJywgaXQgd291bGQgcGxheSBoYXZvYyB3aXRoCi0rIyBmdW5jX2VjaG8g KGltYWdpbmUgcHJvZ25hbWU9LW4pLCBzbyB3ZSBwcmVwZW5kIC4vIGluIHRoYXQgY2FzZToKLStm dW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICIkcHJvZ3BhdGgiCi0rcHJvZ25hbWU9JGZ1bmNfYmFz ZW5hbWVfcmVzdWx0Ci0rY2FzZSAkcHJvZ25hbWUgaW4KLSsgIC0qKSBwcm9nbmFtZT0uLyRwcm9n bmFtZSA7OwotK2VzYWMKLSsKLSsjIE1ha2Ugc3VyZSB3ZSBoYXZlIGFuIGFic29sdXRlIHBhdGgg Zm9yIHJlZXhlY3V0aW9uOgotK2Nhc2UgJHByb2dwYXRoIGluCi0rICBbXFwvXSp8W0EtWmEtel06 XFwqKSA7OwotKyAgKltcXC9dKikKLSsgICAgIHByb2dkaXI9JGZ1bmNfZGlybmFtZV9yZXN1bHQK LSsgICAgIHByb2dkaXI9YGNkICIkcHJvZ2RpciIgJiYgcHdkYAotKyAgICAgcHJvZ3BhdGg9IiRw cm9nZGlyLyRwcm9nbmFtZSIKLSsgICAgIDs7Ci0rICAqKQotKyAgICAgc2F2ZV9JRlM9IiRJRlMi Ci0rICAgICBJRlM9OgotKyAgICAgZm9yIHByb2dkaXIgaW4gJFBBVEg7IGRvCi0rICAgICAgIElG Uz0iJHNhdmVfSUZTIgotKyAgICAgICB0ZXN0IC14ICIkcHJvZ2Rpci8kcHJvZ25hbWUiICYmIGJy ZWFrCi0rICAgICBkb25lCi0rICAgICBJRlM9IiRzYXZlX0lGUyIKLSsgICAgIHRlc3QgLW4gIiRw cm9nZGlyIiB8fCBwcm9nZGlyPWBwd2RgCi0rICAgICBwcm9ncGF0aD0iJHByb2dkaXIvJHByb2du YW1lIgotKyAgICAgOzsKLStlc2FjCi0rCi0rIyBTZWQgc3Vic3RpdHV0aW9uIHRoYXQgaGVscHMg dXMgZG8gcm9idXN0IHF1b3RpbmcuICBJdCBiYWNrc2xhc2hpZmllcwotKyMgbWV0YWNoYXJhY3Rl cnMgdGhhdCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUtcXVvdGVkIHN0cmluZ3MuCi0r WHNlZD0iJHtTRUR9IicgLWUgMXMvXlgvLycKLStzZWRfcXVvdGVfc3Vic3Q9J3MvXChbYCIkXFxd XCkvXFxcMS9nJwotKwotKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGRvIG5vdCBxdW90ZSB2YXJpYWJs ZSByZWZlcmVuY2VzLgotK2RvdWJsZV9xdW90ZV9zdWJzdD0ncy9cKFsiYFxcXVwpL1xcXDEvZycK LSsKLSsjIFJlLWBcJyBwYXJhbWV0ZXIgZXhwYW5zaW9ucyBpbiBvdXRwdXQgb2YgZG91YmxlX3F1 b3RlX3N1YnN0IHRoYXQgd2VyZQotKyMgYFwnLWVkIGluIGlucHV0IHRvIHRoZSBzYW1lLiAgSWYg YW4gb2RkIG51bWJlciBvZiBgXCcgcHJlY2VkZWQgYSAnJCcKLSsjIGluIGlucHV0IHRvIGRvdWJs ZV9xdW90ZV9zdWJzdCwgdGhhdCAnJCcgd2FzIHByb3RlY3RlZCBmcm9tIGV4cGFuc2lvbi4KLSsj IFNpbmNlIGVhY2ggaW5wdXQgYFwnIGlzIG5vdyB0d28gYFwncywgbG9vayBmb3IgYW55IG51bWJl ciBvZiBydW5zIG9mCi0rIyBmb3VyIGBcJ3MgZm9sbG93ZWQgYnkgdHdvIGBcJ3MgYW5kIHRoZW4g YSAnJCcuICBgXCcgdGhhdCAnJCcuCi0rYnM9J1xcJwotK2JzMj0nXFxcXCcKLSticzQ9J1xcXFxc XFxcJwotK2RvbGxhcj0nXCQnCi0rc2VkX2RvdWJsZV9iYWNrc2xhc2g9IlwKLSsgIHMvJGJzNC8m XFwKLSsvZwotKyAgcy9eJGJzMiRkb2xsYXIvJGJzJi8KLSsgIHMvXFwoW14kYnNdXFwpJGJzMiRk b2xsYXIvXFwxJGJzMiRicyRkb2xsYXIvZwotKyAgcy9cbi8vZyIKLSsKLSsjIFN0YW5kYXJkIG9w dGlvbnM6Ci0rb3B0X2RyeV9ydW49ZmFsc2UKLStvcHRfaGVscD1mYWxzZQotK29wdF9xdWlldD1m YWxzZQotK29wdF92ZXJib3NlPWZhbHNlCi0rb3B0X3dhcm5pbmc9OgotKwotKyMgZnVuY19lY2hv IGFyZy4uLgotKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSwgYWxvbmcgd2l0 aCB0aGUgY3VycmVudCBtb2RlCi0rIyBuYW1lIGlmIGl0IGhhcyBiZWVuIHNldCB5ZXQuCi0rZnVu Y19lY2hvICgpCi0rewotKyAgICAkRUNITyAiJHByb2duYW1lJHttb2RlKzogfSRtb2RlOiAkKiIK LSt9Ci0rCi0rIyBmdW5jX3ZlcmJvc2UgYXJnLi4uCi0rIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVm aXhlZCBtZXNzYWdlIGluIHZlcmJvc2UgbW9kZSBvbmx5LgotK2Z1bmNfdmVyYm9zZSAoKQotK3sK LSsgICAgJG9wdF92ZXJib3NlICYmIGZ1bmNfZWNobyAkezErIiRAIn0KLSsKLSsgICAgIyBBIGJ1 ZyBpbiBiYXNoIGhhbHRzIHRoZSBzY3JpcHQgaWYgdGhlIGxhc3QgbGluZSBvZiBhIGZ1bmN0aW9u Ci0rICAgICMgZmFpbHMgd2hlbiBzZXQgLWUgaXMgaW4gZm9yY2UsIHNvIHdlIG5lZWQgYW5vdGhl ciBjb21tYW5kIHRvCi0rICAgICMgd29yayBhcm91bmQgdGhhdDoKLSsgICAgOgotK30KLSsKLSsj IGZ1bmNfZXJyb3IgYXJnLi4uCi0rIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdl IHRvIHN0YW5kYXJkIGVycm9yLgotK2Z1bmNfZXJyb3IgKCkKLSt7Ci0rICAgICRFQ0hPICIkcHJv Z25hbWUke21vZGUrOiB9JG1vZGU6ICIkezErIiRAIn0gMT4mMgotK30KLSsKLSsjIGZ1bmNfd2Fy bmluZyBhcmcuLi4KLSsjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIHdhcm5pbmcgbWVzc2Fn ZSB0byBzdGFuZGFyZCBlcnJvci4KLStmdW5jX3dhcm5pbmcgKCkKLSt7Ci0rICAgICRvcHRfd2Fy bmluZyAmJiAkRUNITyAiJHByb2duYW1lJHttb2RlKzogfSRtb2RlOiB3YXJuaW5nOiAiJHsxKyIk QCJ9IDE+JjIKLSsKLSsgICAgIyBiYXNoIGJ1ZyBhZ2FpbjoKLSsgICAgOgotK30KLSsKLSsjIGZ1 bmNfZmF0YWxfZXJyb3IgYXJnLi4uCi0rIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNz YWdlIHRvIHN0YW5kYXJkIGVycm9yLCBhbmQgZXhpdC4KLStmdW5jX2ZhdGFsX2Vycm9yICgpCi0r ewotKyAgICBmdW5jX2Vycm9yICR7MSsiJEAifQotKyAgICBleGl0ICRFWElUX0ZBSUxVUkUKLSt9 Ci0rCi0rIyBmdW5jX2ZhdGFsX2hlbHAgYXJnLi4uCi0rIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVm aXhlZCBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9yLCBmb2xsb3dlZCBieQotKyMgYSBoZWxwIGhp bnQsIGFuZCBleGl0LgotK2Z1bmNfZmF0YWxfaGVscCAoKQotK3sKLSsgICAgZnVuY19lcnJvciAk ezErIiRAIn0KLSsgICAgZnVuY19mYXRhbF9lcnJvciAiJGhlbHAiCi0rfQotK2hlbHA9IlRyeSBc YCRwcm9nbmFtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgICMjIGRlZmF1bHQKLSsK LSsKLSsjIGZ1bmNfZ3JlcCBleHByZXNzaW9uIGZpbGVuYW1lCi0rIyBDaGVjayB3aGV0aGVyIEVY UFJFU1NJT04gbWF0Y2hlcyBhbnkgbGluZSBvZiBGSUxFTkFNRSwgd2l0aG91dCBvdXRwdXQuCi0r ZnVuY19ncmVwICgpCi0rewotKyAgICAkR1JFUCAiJDEiICIkMiIgPi9kZXYvbnVsbCAyPiYxCi0r fQotKwotKwotKyMgZnVuY19ta2Rpcl9wIGRpcmVjdG9yeS1wYXRoCi0rIyBNYWtlIHN1cmUgdGhl IGVudGlyZSBwYXRoIHRvIERJUkVDVE9SWS1QQVRIIGlzIGF2YWlsYWJsZS4KLStmdW5jX21rZGly X3AgKCkKLSt7Ci0rICAgIG15X2RpcmVjdG9yeV9wYXRoPSIkMSIKLSsgICAgbXlfZGlyX2xpc3Q9 Ci0rCi0rICAgIGlmIHRlc3QgLW4gIiRteV9kaXJlY3RvcnlfcGF0aCIgJiYgdGVzdCAiJG9wdF9k cnlfcnVuIiAhPSAiOiI7IHRoZW4KLSsKLSsgICAgICAjIFByb3RlY3QgZGlyZWN0b3J5IG5hbWVz IHN0YXJ0aW5nIHdpdGggYC0nCi0rICAgICAgY2FzZSAkbXlfZGlyZWN0b3J5X3BhdGggaW4KLSsg ICAgICAgIC0qKSBteV9kaXJlY3RvcnlfcGF0aD0iLi8kbXlfZGlyZWN0b3J5X3BhdGgiIDs7Ci0r ICAgICAgZXNhYwotKwotKyAgICAgICMgV2hpbGUgc29tZSBwb3J0aW9uIG9mIERJUiBkb2VzIG5v dCB5ZXQgZXhpc3QuLi4KLSsgICAgICB3aGlsZSB0ZXN0ICEgLWQgIiRteV9kaXJlY3RvcnlfcGF0 aCI7IGRvCi0rICAgICAgICAjIC4uLm1ha2UgYSBsaXN0IGluIHRvcG1vc3QgZmlyc3Qgb3JkZXIu ICBVc2UgYSBjb2xvbiBkZWxpbWl0ZWQKLSsJIyBsaXN0IGluY2FzZSBzb21lIHBvcnRpb24gb2Yg cGF0aCBjb250YWlucyB3aGl0ZXNwYWNlLgotKyAgICAgICAgbXlfZGlyX2xpc3Q9IiRteV9kaXJl Y3RvcnlfcGF0aDokbXlfZGlyX2xpc3QiCi0rCi0rICAgICAgICAjIElmIHRoZSBsYXN0IHBvcnRp b24gYWRkZWQgaGFzIG5vIHNsYXNoIGluIGl0LCB0aGUgbGlzdCBpcyBkb25lCi0rICAgICAgICBj YXNlICRteV9kaXJlY3RvcnlfcGF0aCBpbiAqLyopIDs7ICopIGJyZWFrIDs7IGVzYWMKLSsKLSsg ICAgICAgICMgLi4ub3RoZXJ3aXNlIHRocm93IGF3YXkgdGhlIGNoaWxkIGRpcmVjdG9yeSBhbmQg bG9vcAotKyAgICAgICAgbXlfZGlyZWN0b3J5X3BhdGg9YCRFQ0hPICJYJG15X2RpcmVjdG9yeV9w YXRoIiB8ICRYc2VkIC1lICIkZGlybmFtZSJgCi0rICAgICAgZG9uZQotKyAgICAgIG15X2Rpcl9s aXN0PWAkRUNITyAiWCRteV9kaXJfbGlzdCIgfCAkWHNlZCAtZSAncyw6KiQsLCdgCi0rCi0rICAg ICAgc2F2ZV9ta2Rpcl9wX0lGUz0iJElGUyI7IElGUz0nOicKLSsgICAgICBmb3IgbXlfZGlyIGlu ICRteV9kaXJfbGlzdDsgZG8KLSsJSUZTPSIkc2F2ZV9ta2Rpcl9wX0lGUyIKLSsgICAgICAgICMg bWtkaXIgY2FuIGZhaWwgd2l0aCBhIGBGaWxlIGV4aXN0JyBlcnJvciBpZiB0d28gcHJvY2Vzc2Vz Ci0rICAgICAgICAjIHRyeSB0byBjcmVhdGUgb25lIG9mIHRoZSBkaXJlY3RvcmllcyBjb25jdXJy ZW50bHkuICBEb24ndAotKyAgICAgICAgIyBzdG9wIGluIHRoYXQgY2FzZSEKLSsgICAgICAgICRN S0RJUiAiJG15X2RpciIgMj4vZGV2L251bGwgfHwgOgotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9 IiRzYXZlX21rZGlyX3BfSUZTIgotKwotKyAgICAgICMgQmFpbCBvdXQgaWYgd2UgKG9yIHNvbWUg b3RoZXIgcHJvY2VzcykgZmFpbGVkIHRvIGNyZWF0ZSBhIGRpcmVjdG9yeS4KLSsgICAgICB0ZXN0 IC1kICIkbXlfZGlyZWN0b3J5X3BhdGgiIHx8IFwKLSsgICAgICAgIGZ1bmNfZmF0YWxfZXJyb3Ig IkZhaWxlZCB0byBjcmVhdGUgXGAkMSciCi0rICAgIGZpCi0rfQotKwotKwotKyMgZnVuY19ta3Rl bXBkaXIgW3N0cmluZ10KLSsjIE1ha2UgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHRoYXQgd29uJ3Qg Y2xhc2ggd2l0aCBvdGhlciBydW5uaW5nCi0rIyBsaWJ0b29sIHByb2Nlc3NlcywgYW5kIGF2b2lk cyByYWNlIGNvbmRpdGlvbnMgaWYgcG9zc2libGUuICBJZgotKyMgZ2l2ZW4sIFNUUklORyBpcyB0 aGUgYmFzZW5hbWUgZm9yIHRoYXQgZGlyZWN0b3J5LgotK2Z1bmNfbWt0ZW1wZGlyICgpCi0rewot KyAgICBteV90ZW1wbGF0ZT0iJHtUTVBESVItL3RtcH0vJHsxLSRwcm9nbmFtZX0iCi0rCi0rICAg IGlmIHRlc3QgIiRvcHRfZHJ5X3J1biIgPSAiOiI7IHRoZW4KLSsgICAgICAjIFJldHVybiBhIGRp cmVjdG9yeSBuYW1lLCBidXQgZG9uJ3QgY3JlYXRlIGl0IGluIGRyeS1ydW4gbW9kZQotKyAgICAg IG15X3RtcGRpcj0iJHtteV90ZW1wbGF0ZX0tJCQiCi0rICAgIGVsc2UKLSsKLSsgICAgICAjIElm IG1rdGVtcCB3b3JrcywgdXNlIHRoYXQgZmlyc3QgYW5kIGZvcmVtb3N0Ci0rICAgICAgbXlfdG1w ZGlyPWBta3RlbXAgLWQgIiR7bXlfdGVtcGxhdGV9LVhYWFhYWFhYIiAyPi9kZXYvbnVsbGAKLSsK LSsgICAgICBpZiB0ZXN0ICEgLWQgIiRteV90bXBkaXIiOyB0aGVuCi0rICAgICAgICAjIEZhaWxp bmcgdGhhdCwgYXQgbGVhc3QgdHJ5IGFuZCB1c2UgJFJBTkRPTSB0byBhdm9pZCBhIHJhY2UKLSsg ICAgICAgIG15X3RtcGRpcj0iJHtteV90ZW1wbGF0ZX0tJHtSQU5ET00tMH0kJCIKLSsKLSsgICAg ICAgIHNhdmVfbWt0ZW1wZGlyX3VtYXNrPWB1bWFza2AKLSsgICAgICAgIHVtYXNrIDAwNzcKLSsg ICAgICAgICRNS0RJUiAiJG15X3RtcGRpciIKLSsgICAgICAgIHVtYXNrICRzYXZlX21rdGVtcGRp cl91bWFzawotKyAgICAgIGZpCi0rCi0rICAgICAgIyBJZiB3ZSdyZSBub3QgaW4gZHJ5LXJ1biBt b2RlLCBib21iIG91dCBvbiBmYWlsdXJlCi0rICAgICAgdGVzdCAtZCAiJG15X3RtcGRpciIgfHwg XAotKyAgICAgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGNyZWF0ZSB0ZW1wb3JhcnkgZGly ZWN0b3J5IFxgJG15X3RtcGRpciciCi0rICAgIGZpCi0rCi0rICAgICRFQ0hPICJYJG15X3RtcGRp ciIgfCAkWHNlZAotK30KLSsKLSsKLSsjIGZ1bmNfcXVvdGVfZm9yX2V2YWwgYXJnCi0rIyBBZXN0 aGV0aWNhbGx5IHF1b3RlIEFSRyB0byBiZSBldmFsZWQgbGF0ZXIuCi0rIyBUaGlzIGZ1bmN0aW9u IHJldHVybnMgdHdvIHZhbHVlczogRlVOQ19RVU9URV9GT1JfRVZBTF9SRVNVTFQKLSsjIGlzIGRv dWJsZS1xdW90ZWQsIHN1aXRhYmxlIGZvciBhIHN1YnNlcXVlbnQgZXZhbCwgd2hlcmVhcwotKyMg RlVOQ19RVU9URV9GT1JfRVZBTF9VTlFVT1RFRF9SRVNVTFQgaGFzIG1lcmVseSBhbGwgY2hhcmFj dGVycwotKyMgd2hpY2ggYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91YmxlIHF1b3RlcyBiYWNr c2xhc2hpZmllZC4KLStmdW5jX3F1b3RlX2Zvcl9ldmFsICgpCi0rewotKyAgICBjYXNlICQxIGlu Ci0rICAgICAgKltcXFxgXCJcJF0qKQotKwlmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jl c3VsdD1gJEVDSE8gIlgkMSIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgIDs7Ci0rICAg ICAgKikKLSsgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0PSIkMSIg OzsKLSsgICAgZXNhYwotKwotKyAgICBjYXNlICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVk X3Jlc3VsdCBpbgotKyAgICAgICMgRG91YmxlLXF1b3RlIGFyZ3MgY29udGFpbmluZyBzaGVsbCBt ZXRhY2hhcmFjdGVycyB0byBkZWxheQotKyAgICAgICMgd29yZCBzcGxpdHRpbmcsIGNvbW1hbmQg c3Vic3RpdHV0aW9uIGFuZCBhbmQgdmFyaWFibGUKLSsgICAgICAjIGV4cGFuc2lvbiBmb3IgYSBz dWJzZXF1ZW50IGV2YWwuCi0rICAgICAgIyBNYW55IEJvdXJuZSBzaGVsbHMgY2Fubm90IGhhbmRs ZSBjbG9zZSBicmFja2V0cyBjb3JyZWN0bHkKLSsgICAgICAjIGluIHNjYW4gc2V0cywgc28gd2Ug c3BlY2lmeSBpdCBzZXBhcmF0ZWx5LgotKyAgICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7 XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQotKyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1 bHQ9IlwiJGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0XCIiCi0rICAgICAgICA7 OwotKyAgICAgICopCi0rICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdD0iJGZ1bmNf cXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0IgotKyAgICBlc2FjCi0rfQotKwotKwotKyMg ZnVuY19xdW90ZV9mb3JfZXhwYW5kIGFyZwotKyMgQWVzdGhldGljYWxseSBxdW90ZSBBUkcgdG8g YmUgZXZhbGVkIGxhdGVyOyBzYW1lIGFzIGFib3ZlLAotKyMgYnV0IGRvIG5vdCBxdW90ZSB2YXJp YWJsZSByZWZlcmVuY2VzLgotK2Z1bmNfcXVvdGVfZm9yX2V4cGFuZCAoKQotK3sKLSsgICAgY2Fz ZSAkMSBpbgotKyAgICAgICpbXFxcYFwiXSopCi0rCW15X2FyZz1gJEVDSE8gIlgkMSIgfCAkWHNl ZCBcCi0rCSAgICAtZSAiJGRvdWJsZV9xdW90ZV9zdWJzdCIgLWUgIiRzZWRfZG91YmxlX2JhY2tz bGFzaCJgIDs7Ci0rICAgICAgKikKLSsgICAgICAgIG15X2FyZz0iJDEiIDs7Ci0rICAgIGVzYWMK LSsKLSsgICAgY2FzZSAkbXlfYXJnIGluCi0rICAgICAgIyBEb3VibGUtcXVvdGUgYXJncyBjb250 YWluaW5nIHNoZWxsIG1ldGFjaGFyYWN0ZXJzIHRvIGRlbGF5Ci0rICAgICAgIyB3b3JkIHNwbGl0 dGluZyBhbmQgY29tbWFuZCBzdWJzdGl0dXRpb24gZm9yIGEgc3Vic2VxdWVudCBldmFsLgotKyAg ICAgICMgTWFueSBCb3VybmUgc2hlbGxzIGNhbm5vdCBoYW5kbGUgY2xvc2UgYnJhY2tldHMgY29y cmVjdGx5Ci0rICAgICAgIyBpbiBzY2FuIHNldHMsIHNvIHdlIHNwZWNpZnkgaXQgc2VwYXJhdGVs eS4KLSsgICAgICAqW1xbXH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwi IikKLSsgICAgICAgIG15X2FyZz0iXCIkbXlfYXJnXCIiCi0rICAgICAgICA7OwotKyAgICBlc2Fj Ci0rCi0rICAgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQ9IiRteV9hcmciCi0rfQotKwot KwotKyMgZnVuY19zaG93X2V2YWwgY21kIFtmYWlsX2V4cF0KLSsjIFVubGVzcyBvcHRfc2lsZW50 IGlzIHRydWUsIHRoZW4gb3V0cHV0IENNRC4gIFRoZW4sIGlmIG9wdF9kcnlydW4gaXMKLSsjIG5v dCB0cnVlLCBldmFsdWF0ZSBDTUQuICBJZiB0aGUgZXZhbHVhdGlvbiBvZiBDTUQgZmFpbHMsIGFu ZCBGQUlMX0VYUAotKyMgaXMgZ2l2ZW4sIHRoZW4gZXZhbHVhdGUgaXQuCi0rZnVuY19zaG93X2V2 YWwgKCkKLSt7Ci0rICAgIG15X2NtZD0iJDEiCi0rICAgIG15X2ZhaWxfZXhwPSIkezItOn0iCi0r Ci0rICAgICR7b3B0X3NpbGVudC1mYWxzZX0gfHwgewotKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V4 cGFuZCAiJG15X2NtZCIKLSsgICAgICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4 cGFuZF9yZXN1bHQiCi0rICAgIH0KLSsKLSsgICAgaWYgJHtvcHRfZHJ5X3J1bi1mYWxzZX07IHRo ZW4gOjsgZWxzZQotKyAgICAgIGV2YWwgIiRteV9jbWQiCi0rICAgICAgbXlfc3RhdHVzPSQ/Ci0r ICAgICAgaWYgdGVzdCAiJG15X3N0YXR1cyIgLWVxIDA7IHRoZW4gOjsgZWxzZQotKwlldmFsICIo ZXhpdCAkbXlfc3RhdHVzKTsgJG15X2ZhaWxfZXhwIgotKyAgICAgIGZpCi0rICAgIGZpCi0rfQot KwotKwotKyMgZnVuY19zaG93X2V2YWxfbG9jYWxlIGNtZCBbZmFpbF9leHBdCi0rIyBVbmxlc3Mg b3B0X3NpbGVudCBpcyB0cnVlLCB0aGVuIG91dHB1dCBDTUQuICBUaGVuLCBpZiBvcHRfZHJ5cnVu IGlzCi0rIyBub3QgdHJ1ZSwgZXZhbHVhdGUgQ01ELiAgSWYgdGhlIGV2YWx1YXRpb24gb2YgQ01E IGZhaWxzLCBhbmQgRkFJTF9FWFAKLSsjIGlzIGdpdmVuLCB0aGVuIGV2YWx1YXRlIGl0LiAgVXNl IHRoZSBzYXZlZCBsb2NhbGUgZm9yIGV2YWx1YXRpb24uCi0rZnVuY19zaG93X2V2YWxfbG9jYWxl ICgpCi0rewotKyAgICBteV9jbWQ9IiQxIgotKyAgICBteV9mYWlsX2V4cD0iJHsyLTp9IgotKwot KyAgICAke29wdF9zaWxlbnQtZmFsc2V9IHx8IHsKLSsgICAgICBmdW5jX3F1b3RlX2Zvcl9leHBh bmQgIiRteV9jbWQiCi0rICAgICAgZXZhbCAiZnVuY19lY2hvICRmdW5jX3F1b3RlX2Zvcl9leHBh bmRfcmVzdWx0IgotKyAgICB9Ci0rCi0rICAgIGlmICR7b3B0X2RyeV9ydW4tZmFsc2V9OyB0aGVu IDo7IGVsc2UKLSsgICAgICBldmFsICIkbHRfdXNlcl9sb2NhbGUKLSsJICAgICRteV9jbWQiCi0r ICAgICAgbXlfc3RhdHVzPSQ/Ci0rICAgICAgZXZhbCAiJGx0X3NhZmVfbG9jYWxlIgotKyAgICAg IGlmIHRlc3QgIiRteV9zdGF0dXMiIC1lcSAwOyB0aGVuIDo7IGVsc2UKLSsJZXZhbCAiKGV4aXQg JG15X3N0YXR1cyk7ICRteV9mYWlsX2V4cCIKLSsgICAgICBmaQotKyAgICBmaQotK30KLSsKLSsK LSsKLSsKLSsKLSsjIGZ1bmNfdmVyc2lvbgotKyMgRWNobyB2ZXJzaW9uIG1lc3NhZ2UgdG8gc3Rh bmRhcmQgb3V0cHV0IGFuZCBleGl0LgotK2Z1bmNfdmVyc2lvbiAoKQotK3sKLSsgICAgJFNFRCAt biAnL14jICckUFJPR1JBTScgKEdOVSAvLC8jIHdhcnJhbnR5OyAvIHsKLSsgICAgICAgIHMvXiMg Ly8KLSsJcy9eIyAqJC8vCi0rICAgICAgICBzL1woKEMpXClbIDAtOSwtXSpcKCBbMS05XVswLTld KlwpL1wxXDIvCi0rICAgICAgICBwCi0rICAgICB9JyA8ICIkcHJvZ3BhdGgiCi0rICAgICBleGl0 ICQ/Ci0rfQotKwotKyMgZnVuY191c2FnZQotKyMgRWNobyBzaG9ydCBoZWxwIG1lc3NhZ2UgdG8g c3RhbmRhcmQgb3V0cHV0IGFuZCBleGl0LgotK2Z1bmNfdXNhZ2UgKCkKLSt7Ci0rICAgICRTRUQg LW4gJy9eIyBVc2FnZTovLC8jIC1oLyB7Ci0rICAgICAgICBzL14jIC8vCi0rCXMvXiMgKiQvLwot KwlzL1wkcHJvZ25hbWUvJyRwcm9nbmFtZScvCi0rCXAKLSsgICAgfScgPCAiJHByb2dwYXRoIgot KyAgICAkRUNITwotKyAgICAkRUNITyAicnVuIFxgJHByb2duYW1lIC0taGVscCB8IG1vcmUnIGZv ciBmdWxsIHVzYWdlIgotKyAgICBleGl0ICQ/Ci0rfQotKwotKyMgZnVuY19oZWxwCi0rIyBFY2hv IGxvbmcgaGVscCBtZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdC4KLStmdW5jX2hl bHAgKCkKLSt7Ci0rICAgICRTRUQgLW4gJy9eIyBVc2FnZTovLC8jIFJlcG9ydCBidWdzIHRvLyB7 Ci0rICAgICAgICBzL14jIC8vCi0rCXMvXiMgKiQvLwotKwlzKlwkcHJvZ25hbWUqJyRwcm9nbmFt ZScqCi0rCXMqXCRob3N0KiciJGhvc3QiJyoKLSsJcypcJFNIRUxMKiciJFNIRUxMIicqCi0rCXMq XCRMVENDKiciJExUQ0MiJyoKLSsJcypcJExUQ0ZMQUdTKiciJExUQ0ZMQUdTIicqCi0rCXMqXCRM RConIiRMRCInKgotKwlzL1wkd2l0aF9nbnVfbGQvJyIkd2l0aF9nbnVfbGQiJy8KLSsJcy9cJGF1 dG9tYWtlX3ZlcnNpb24vJyJgKGF1dG9tYWtlIC0tdmVyc2lvbikgMj4vZGV2L251bGwgfCRTRUQg MXFgIicvCi0rCXMvXCRhdXRvY29uZl92ZXJzaW9uLyciYChhdXRvY29uZiAtLXZlcnNpb24pIDI+ L2Rldi9udWxsIHwkU0VEIDFxYCInLwotKwlwCi0rICAgICB9JyA8ICIkcHJvZ3BhdGgiCi0rICAg IGV4aXQgJD8KLSt9Ci0rCi0rIyBmdW5jX21pc3NpbmdfYXJnIGFyZ25hbWUKLSsjIEVjaG8gcHJv Z3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IgYW5kIHNldCBnbG9i YWwKLSsjIGV4aXRfY21kLgotK2Z1bmNfbWlzc2luZ19hcmcgKCkKLSt7Ci0rICAgIGZ1bmNfZXJy b3IgIm1pc3NpbmcgYXJndW1lbnQgZm9yICQxIgotKyAgICBleGl0X2NtZD1leGl0Ci0rfQotKwot K2V4aXRfY21kPToKLSsKLSsKLSsKLSsKLSsKLSsjIENoZWNrIHRoYXQgd2UgaGF2ZSBhIHdvcmtp bmcgJEVDSE8uCi0raWYgdGVzdCAiWCQxIiA9IFgtLW5vLXJlZXhlYzsgdGhlbgotKyAgIyBEaXNj YXJkIHRoZSAtLW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUuCi0rICBzaGlmdAotK2VsaWYg dGVzdCAiWCQxIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KLSsgICMgQXZvaWQgaW5saW5lIGRv Y3VtZW50IGhlcmUsIGl0IG1heSBiZSBsZWZ0IG92ZXIKLSsgIDoKLStlbGlmIHRlc3QgIlhgeyAk RUNITyAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JzsgdGhlbgotKyAgIyBZaXBwZWUsICRF Q0hPIHdvcmtzIQotKyAgOgotK2Vsc2UKLSsgICMgUmVzdGFydCB1bmRlciB0aGUgY29ycmVjdCBz aGVsbCwgYW5kIHRoZW4gbWF5YmUgJEVDSE8gd2lsbCB3b3JrLgotKyAgZXhlYyAkU0hFTEwgIiRw cm9ncGF0aCIgLS1uby1yZWV4ZWMgJHsxKyIkQCJ9Ci0rZmkKLSsKLStpZiB0ZXN0ICJYJDEiID0g WC0tZmFsbGJhY2stZWNobzsgdGhlbgotKyAgIyB1c2VkIGFzIGZhbGxiYWNrIGVjaG8KLSsgIHNo aWZ0Ci0rICBjYXQgPDxFT0YKLSskKgotK0VPRgotKyAgZXhpdCAkRVhJVF9TVUNDRVNTCi0rZmkK LSsKLSttYWdpYz0iJSUlTUFHSUMgdmFyaWFibGUlJSUiCi0rbWFnaWNfZXhlPSIlJSVNQUdJQyBF WEUgdmFyaWFibGUlJSUiCi0rCi0rIyBHbG9iYWwgdmFyaWFibGVzLgotKyMgJG1vZGUgaXMgdW5z ZXQKLStub25vcHQ9Ci0rZXhlY3V0ZV9kbGZpbGVzPQotK3ByZXNlcnZlX2FyZ3M9Ci0rbG8ybz0i cy9cXC5sb1wkLy4ke29iamV4dH0vIgotK28ybG89InMvXFwuJHtvYmpleHR9XCQvLmxvLyIKLStl eHRyYWN0ZWRfYXJjaGl2ZXM9Ci0rZXh0cmFjdGVkX3NlcmlhbD0wCi0rCi0rb3B0X2RyeV9ydW49 ZmFsc2UKLStvcHRfZHVwbGljYXRlX2RlcHM9ZmFsc2UKLStvcHRfc2lsZW50PWZhbHNlCi0rb3B0 X2RlYnVnPToKLSsKLSsjIElmIHRoaXMgdmFyaWFibGUgaXMgc2V0IGluIGFueSBvZiB0aGUgYWN0 aW9ucywgdGhlIGNvbW1hbmQgaW4gaXQKLSsjIHdpbGwgYmUgZXhlY2VkIGF0IHRoZSBlbmQuICBU aGlzIHByZXZlbnRzIGhlcmUtZG9jdW1lbnRzIGZyb20gYmVpbmcKLSsjIGxlZnQgb3ZlciBieSBz aGVsbHMuCi0rZXhlY19jbWQ9Ci0rCi0rIyBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gYXJnLi4u Ci0rIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9y LCBmb2xsb3dlZCBieQotKyMgYSBjb25maWd1cmF0aW9uIGZhaWx1cmUgaGludCwgYW5kIGV4aXQu Ci0rZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICgpCi0rewotKyAgICBmdW5jX2Vycm9yICR7MSsi JEAifQotKyAgICBmdW5jX2Vycm9yICJTZWUgdGhlICRQQUNLQUdFIGRvY3VtZW50YXRpb24gZm9y IG1vcmUgaW5mb3JtYXRpb24uIgotKyAgICBmdW5jX2ZhdGFsX2Vycm9yICJGYXRhbCBjb25maWd1 cmF0aW9uIGVycm9yLiIKLSt9Ci0rCi0rCi0rIyBmdW5jX2NvbmZpZwotKyMgRGlzcGxheSB0aGUg Y29uZmlndXJhdGlvbiBmb3IgYWxsIHRoZSB0YWdzIGluIHRoaXMgc2NyaXB0LgotK2Z1bmNfY29u ZmlnICgpCi0rewotKyAgICByZV9iZWdpbmNmPSdeIyAjIyMgQkVHSU4gTElCVE9PTCcKLSsgICAg cmVfZW5kY2Y9J14jICMjIyBFTkQgTElCVE9PTCcKLSsKLSsgICAgIyBEZWZhdWx0IGNvbmZpZ3Vy YXRpb24uCi0rICAgICRTRUQgIjEsLyRyZV9iZWdpbmNmIENPTkZJRy9kOy8kcmVfZW5kY2YgQ09O RklHLyxcJGQiIDwgIiRwcm9ncGF0aCIKLSsKLSsgICAgIyBOb3cgcHJpbnQgdGhlIGNvbmZpZ3Vy YXRpb25zIGZvciB0aGUgdGFncy4KLSsgICAgZm9yIHRhZ25hbWUgaW4gJHRhZ2xpc3Q7IGRvCi0r ICAgICAgJFNFRCAtbiAiLyRyZV9iZWdpbmNmIFRBRyBDT05GSUc6ICR0YWduYW1lXCQvLC8kcmVf ZW5kY2YgVEFHIENPTkZJRzogJHRhZ25hbWVcJC9wIiA8ICIkcHJvZ3BhdGgiCi0rICAgIGRvbmUK LSsKLSsgICAgZXhpdCAkPwotK30KLSsKLSsjIGZ1bmNfZmVhdHVyZXMKLSsjIERpc3BsYXkgdGhl IGZlYXR1cmVzIHN1cHBvcnRlZCBieSB0aGlzIHNjcmlwdC4KLStmdW5jX2ZlYXR1cmVzICgpCi0r ewotKyAgICAkRUNITyAiaG9zdDogJGhvc3QiCi0rICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29s X2xpYnMiID0geWVzOyB0aGVuCi0rICAgICAgJEVDSE8gImVuYWJsZSBzaGFyZWQgbGlicmFyaWVz IgotKyAgICBlbHNlCi0rICAgICAgJEVDSE8gImRpc2FibGUgc2hhcmVkIGxpYnJhcmllcyIKLSsg ICAgZmkKLSsgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgotKyAgICAg ICRFQ0hPICJlbmFibGUgc3RhdGljIGxpYnJhcmllcyIKLSsgICAgZWxzZQotKyAgICAgICRFQ0hP ICJkaXNhYmxlIHN0YXRpYyBsaWJyYXJpZXMiCi0rICAgIGZpCi0rCi0rICAgIGV4aXQgJD8KLSt9 Ci0rCi0rIyBmdW5jX2VuYWJsZV90YWcgdGFnbmFtZQotKyMgVmVyaWZ5IHRoYXQgVEFHTkFNRSBp cyB2YWxpZCwgYW5kIGVpdGhlciBmbGFnIGFuIGVycm9yIGFuZCBleGl0LCBvcgotKyMgZW5hYmxl IHRoZSBUQUdOQU1FIHRhZy4gIFdlIGFsc28gYWRkIFRBR05BTUUgdG8gdGhlIGdsb2JhbCAkdGFn bGlzdAotKyMgdmFyaWFibGUgaGVyZS4KLStmdW5jX2VuYWJsZV90YWcgKCkKLSt7Ci0rICAjIEds b2JhbCB2YXJpYWJsZToKLSsgIHRhZ25hbWU9IiQxIgotKwotKyAgcmVfYmVnaW5jZj0iXiMgIyMj IEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogJHRhZ25hbWVcJCIKLSsgIHJlX2VuZGNmPSJeIyAj IyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogJHRhZ25hbWVcJCIKLSsgIHNlZF9leHRyYWN0Y2Y9 Ii8kcmVfYmVnaW5jZi8sLyRyZV9lbmRjZi9wIgotKwotKyAgIyBWYWxpZGF0ZSB0YWduYW1lLgot KyAgY2FzZSAkdGFnbmFtZSBpbgotKyAgICAqWyEtX0EtWmEtejAtOSwvXSopCi0rICAgICAgZnVu Y19mYXRhbF9lcnJvciAiaW52YWxpZCB0YWcgbmFtZTogJHRhZ25hbWUiCi0rICAgICAgOzsKLSsg IGVzYWMKLSsKLSsgICMgRG9uJ3QgdGVzdCBmb3IgdGhlICJkZWZhdWx0IiBDIHRhZywgYXMgd2Ug a25vdyBpdCdzCi0rICAjIHRoZXJlIGJ1dCBub3Qgc3BlY2lhbGx5IG1hcmtlZC4KLSsgIGNhc2Ug JHRhZ25hbWUgaW4KLSsgICAgQ0MpIDs7Ci0rICAgICopCi0rICAgICAgaWYgJEdSRVAgIiRyZV9i ZWdpbmNmIiAiJHByb2dwYXRoIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJdGFnbGlzdD0iJHRh Z2xpc3QgJHRhZ25hbWUiCi0rCi0rCSMgRXZhbHVhdGUgdGhlIGNvbmZpZ3VyYXRpb24uICBCZSBj YXJlZnVsIHRvIHF1b3RlIHRoZSBwYXRoCi0rCSMgYW5kIHRoZSBzZWQgc2NyaXB0LCB0byBhdm9p ZCBzcGxpdHRpbmcgb24gd2hpdGVzcGFjZSwgYnV0Ci0rCSMgYWxzbyBkb24ndCB1c2Ugbm9uLXBv cnRhYmxlIHF1b3RlcyB3aXRoaW4gYmFja3F1b3RlcyB3aXRoaW4KLSsJIyBxdW90ZXMgd2UgaGF2 ZSB0byBkbyBpdCBpbiAyIHN0ZXBzOgotKwlleHRyYWN0ZWRjZj1gJFNFRCAtbiAtZSAiJHNlZF9l eHRyYWN0Y2YiIDwgIiRwcm9ncGF0aCJgCi0rCWV2YWwgIiRleHRyYWN0ZWRjZiIKLSsgICAgICBl bHNlCi0rCWZ1bmNfZXJyb3IgImlnbm9yaW5nIHVua25vd24gdGFnICR0YWduYW1lIgotKyAgICAg IGZpCi0rICAgICAgOzsKLSsgIGVzYWMKLSt9Ci0rCi0rIyBQYXJzZSBvcHRpb25zIG9uY2UsIHRo b3JvdWdobHkuICBUaGlzIGNvbWVzIGFzIHNvb24gYXMgcG9zc2libGUgaW4KLSsjIHRoZSBzY3Jp cHQgdG8gbWFrZSB0aGluZ3MgbGlrZSBgbGlidG9vbCAtLXZlcnNpb24nIGhhcHBlbiBxdWlja2x5 LgotK3sKLSsKLSsgICMgU2hvcnRoYW5kIGZvciAtLW1vZGU9Zm9vLCBvbmx5IHZhbGlkIGFzIHRo ZSBmaXJzdCBhcmd1bWVudAotKyAgY2FzZSAkMSBpbgotKyAgY2xlYW58Y2xlYXxjbGV8Y2wpCi0r ICAgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGNsZWFuICR7MSsiJEAifTsgc2hpZnQKLSsgICAg OzsKLSsgIGNvbXBpbGV8Y29tcGlsfGNvbXBpfGNvbXB8Y29tfGNvfGMpCi0rICAgIHNoaWZ0OyBz ZXQgZHVtbXkgLS1tb2RlIGNvbXBpbGUgJHsxKyIkQCJ9OyBzaGlmdAotKyAgICA7OwotKyAgZXhl Y3V0ZXxleGVjdXR8ZXhlY3V8ZXhlY3xleGV8ZXh8ZSkKLSsgICAgc2hpZnQ7IHNldCBkdW1teSAt LW1vZGUgZXhlY3V0ZSAkezErIiRAIn07IHNoaWZ0Ci0rICAgIDs7Ci0rICBmaW5pc2h8ZmluaXN8 ZmluaXxmaW58Zml8ZikKLSsgICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgZmluaXNoICR7MSsi JEAifTsgc2hpZnQKLSsgICAgOzsKLSsgIGluc3RhbGx8aW5zdGFsfGluc3RhfGluc3R8aW5zfGlu fGkpCi0rICAgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGluc3RhbGwgJHsxKyIkQCJ9OyBzaGlm dAotKyAgICA7OwotKyAgbGlua3xsaW58bGl8bCkKLSsgICAgc2hpZnQ7IHNldCBkdW1teSAtLW1v ZGUgbGluayAkezErIiRAIn07IHNoaWZ0Ci0rICAgIDs7Ci0rICB1bmluc3RhbGx8dW5pbnN0YWx8 dW5pbnN0YXx1bmluc3R8dW5pbnN8dW5pbnx1bml8dW58dSkKLSsgICAgc2hpZnQ7IHNldCBkdW1t eSAtLW1vZGUgdW5pbnN0YWxsICR7MSsiJEAifTsgc2hpZnQKLSsgICAgOzsKLSsgIGVzYWMKLSsK LSsgICMgUGFyc2Ugbm9uLW1vZGUgc3BlY2lmaWMgYXJndW1lbnRzOgotKyAgd2hpbGUgdGVzdCAi JCMiIC1ndCAwOyBkbwotKyAgICBvcHQ9IiQxIgotKyAgICBzaGlmdAotKwotKyAgICBjYXNlICRv cHQgaW4KLSsgICAgICAtLWNvbmZpZykJCWZ1bmNfY29uZmlnCQkJCQk7OwotKwotKyAgICAgIC0t ZGVidWcpCQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0IgotKwkJCWZ1bmNfZWNo byAiZW5hYmxpbmcgc2hlbGwgdHJhY2UgbW9kZSIKLSsJCQlvcHRfZGVidWc9J3NldCAteCcKLSsJ CQkkb3B0X2RlYnVnCi0rCQkJOzsKLSsKLSsgICAgICAtZGxvcGVuKQkJdGVzdCAiJCMiIC1lcSAw ICYmIGZ1bmNfbWlzc2luZ19hcmcgIiRvcHQiICYmIGJyZWFrCi0rCQkJZXhlY3V0ZV9kbGZpbGVz PSIkZXhlY3V0ZV9kbGZpbGVzICQxIgotKwkJCXNoaWZ0Ci0rCQkJOzsKLSsKLSsgICAgICAtLWRy eS1ydW4gfCAtbikJb3B0X2RyeV9ydW49OgkJCQkJOzsKLSsgICAgICAtLWZlYXR1cmVzKSAgICAg ICBmdW5jX2ZlYXR1cmVzCQkJCQk7OwotKyAgICAgIC0tZmluaXNoKQkJbW9kZT0iZmluaXNoIgkJ CQkJOzsKLSsKLSsgICAgICAtLW1vZGUpCQl0ZXN0ICIkIyIgLWVxIDAgJiYgZnVuY19taXNzaW5n X2FyZyAiJG9wdCIgJiYgYnJlYWsKLSsJCQljYXNlICQxIGluCi0rCQkJICAjIFZhbGlkIG1vZGUg YXJndW1lbnRzOgotKwkJCSAgY2xlYW4pCTs7Ci0rCQkJICBjb21waWxlKQk7OwotKwkJCSAgZXhl Y3V0ZSkJOzsKLSsJCQkgIGZpbmlzaCkJOzsKLSsJCQkgIGluc3RhbGwpCTs7Ci0rCQkJICBsaW5r KQkJOzsKLSsJCQkgIHJlbGluaykJOzsKLSsJCQkgIHVuaW5zdGFsbCkJOzsKLSsKLSsJCQkgICMg Q2F0Y2ggYW55dGhpbmcgZWxzZSBhcyBhbiBlcnJvcgotKwkJCSAgKikgZnVuY19lcnJvciAiaW52 YWxpZCBhcmd1bWVudCBmb3IgJG9wdCIKLSsJCQkgICAgIGV4aXRfY21kPWV4aXQKLSsJCQkgICAg IGJyZWFrCi0rCQkJICAgICA7OwotKwkJICAgICAgICBlc2FjCi0rCi0rCQkJbW9kZT0iJDEiCi0r CQkJc2hpZnQKLSsJCQk7OwotKwotKyAgICAgIC0tcHJlc2VydmUtZHVwLWRlcHMpCi0rCQkJb3B0 X2R1cGxpY2F0ZV9kZXBzPToJCQkJOzsKLSsKLSsgICAgICAtLXF1aWV0fC0tc2lsZW50KQlwcmVz ZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0IgotKwkJCW9wdF9zaWxlbnQ9OgotKwkJCTs7 Ci0rCi0rICAgICAgLS12ZXJib3NlfCAtdikJcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3Mg JG9wdCIKLSsJCQlvcHRfc2lsZW50PWZhbHNlCi0rCQkJOzsKLSsKLSsgICAgICAtLXRhZykJCXRl c3QgIiQjIiAtZXEgMCAmJiBmdW5jX21pc3NpbmdfYXJnICIkb3B0IiAmJiBicmVhawotKwkJCXBy ZXNlcnZlX2FyZ3M9IiRwcmVzZXJ2ZV9hcmdzICRvcHQgJDEiCi0rCQkJZnVuY19lbmFibGVfdGFn ICIkMSIJIyB0YWduYW1lIGlzIHNldCBoZXJlCi0rCQkJc2hpZnQKLSsJCQk7OwotKwotKyAgICAg ICMgU2VwYXJhdGUgb3B0YXJncyB0byBsb25nIG9wdGlvbnM6Ci0rICAgICAgLWRsb3Blbj0qfC0t bW9kZT0qfC0tdGFnPSopCi0rCQkJZnVuY19vcHRfc3BsaXQgIiRvcHQiCi0rCQkJc2V0IGR1bW15 ICIkZnVuY19vcHRfc3BsaXRfb3B0IiAiJGZ1bmNfb3B0X3NwbGl0X2FyZyIgJHsxKyIkQCJ9Ci0r CQkJc2hpZnQKLSsJCQk7OwotKwotKyAgICAgIC1cP3wtaCkJCWZ1bmNfdXNhZ2UJCQkJCTs7Ci0r ICAgICAgLS1oZWxwKQkJb3B0X2hlbHA9OgkJCQkJOzsKLSsgICAgICAtLXZlcnNpb24pCWZ1bmNf dmVyc2lvbgkJCQkJOzsKLSsKLSsgICAgICAtKikJCWZ1bmNfZmF0YWxfaGVscCAidW5yZWNvZ25p emVkIG9wdGlvbiBcYCRvcHQnIgk7OwotKwotKyAgICAgICopCQlub25vcHQ9IiRvcHQiCi0rCQkJ YnJlYWsKLSsJCQk7OwotKyAgICBlc2FjCi0rICBkb25lCi0rCi0rCi0rICBjYXNlICRob3N0IGlu Ci0rICAgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpwdzMyKiB8ICpjZWdjYyopCi0rICAgICAgIyBk b24ndCBlbGltaW5hdGUgZHVwbGljYXRpb25zIGluICRwb3N0ZGVwcyBhbmQgJHByZWRlcHMKLSsg ICAgICBvcHRfZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9kZXBzPToKLSsgICAgICA7Owot KyAgICAqKQotKyAgICAgIG9wdF9kdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHM9JG9w dF9kdXBsaWNhdGVfZGVwcwotKyAgICAgIDs7Ci0rICBlc2FjCi0rCi0rICAjIEhhdmluZyB3YXJu ZWQgYWJvdXQgYWxsIG1pcy1zcGVjaWZpZWQgb3B0aW9ucywgYmFpbCBvdXQgaWYKLSsgICMgYW55 dGhpbmcgd2FzIHdyb25nLgotKyAgJGV4aXRfY21kICRFWElUX0ZBSUxVUkUKLSt9Ci0rCi0rIyBm dW5jX2NoZWNrX3ZlcnNpb25fbWF0Y2gKLSsjIEVuc3VyZSB0aGF0IHdlIGFyZSB1c2luZyBtNCBt YWNyb3MsIGFuZCBsaWJ0b29sIHNjcmlwdCBmcm9tIHRoZSBzYW1lCi0rIyByZWxlYXNlIG9mIGxp YnRvb2wuCi0rZnVuY19jaGVja192ZXJzaW9uX21hdGNoICgpCi0rewotKyAgaWYgdGVzdCAiJHBh Y2thZ2VfcmV2aXNpb24iICE9ICIkbWFjcm9fcmV2aXNpb24iOyB0aGVuCi0rICAgIGlmIHRlc3Qg IiRWRVJTSU9OIiAhPSAiJG1hY3JvX3ZlcnNpb24iOyB0aGVuCi0rICAgICAgaWYgdGVzdCAteiAi JG1hY3JvX3ZlcnNpb24iOyB0aGVuCi0rICAgICAgICBjYXQgPiYyIDw8X0xUX0VPRgotKyRwcm9n bmFtZTogVmVyc2lvbiBtaXNtYXRjaCBlcnJvci4gIFRoaXMgaXMgJFBBQ0tBR0UgJFZFUlNJT04s IGJ1dCB0aGUKLSskcHJvZ25hbWU6IGRlZmluaXRpb24gb2YgdGhpcyBMVF9JTklUIGNvbWVzIGZy b20gYW4gb2xkZXIgcmVsZWFzZS4KLSskcHJvZ25hbWU6IFlvdSBzaG91bGQgcmVjcmVhdGUgYWNs b2NhbC5tNCB3aXRoIG1hY3JvcyBmcm9tICRQQUNLQUdFICRWRVJTSU9OCi0rJHByb2duYW1lOiBh bmQgcnVuIGF1dG9jb25mIGFnYWluLgotK19MVF9FT0YKLSsgICAgICBlbHNlCi0rICAgICAgICBj YXQgPiYyIDw8X0xUX0VPRgotKyRwcm9nbmFtZTogVmVyc2lvbiBtaXNtYXRjaCBlcnJvci4gIFRo aXMgaXMgJFBBQ0tBR0UgJFZFUlNJT04sIGJ1dCB0aGUKLSskcHJvZ25hbWU6IGRlZmluaXRpb24g b2YgdGhpcyBMVF9JTklUIGNvbWVzIGZyb20gJFBBQ0tBR0UgJG1hY3JvX3ZlcnNpb24uCi0rJHBy b2duYW1lOiBZb3Ugc2hvdWxkIHJlY3JlYXRlIGFjbG9jYWwubTQgd2l0aCBtYWNyb3MgZnJvbSAk UEFDS0FHRSAkVkVSU0lPTgotKyRwcm9nbmFtZTogYW5kIHJ1biBhdXRvY29uZiBhZ2Fpbi4KLStf TFRfRU9GCi0rICAgICAgZmkKLSsgICAgZWxzZQotKyAgICAgIGNhdCA+JjIgPDxfTFRfRU9GCi0r JHByb2duYW1lOiBWZXJzaW9uIG1pc21hdGNoIGVycm9yLiAgVGhpcyBpcyAkUEFDS0FHRSAkVkVS U0lPTiwgcmV2aXNpb24gJHBhY2thZ2VfcmV2aXNpb24sCi0rJHByb2duYW1lOiBidXQgdGhlIGRl ZmluaXRpb24gb2YgdGhpcyBMVF9JTklUIGNvbWVzIGZyb20gcmV2aXNpb24gJG1hY3JvX3Jldmlz aW9uLgotKyRwcm9nbmFtZTogWW91IHNob3VsZCByZWNyZWF0ZSBhY2xvY2FsLm00IHdpdGggbWFj cm9zIGZyb20gcmV2aXNpb24gJHBhY2thZ2VfcmV2aXNpb24KLSskcHJvZ25hbWU6IG9mICRQQUNL QUdFICRWRVJTSU9OIGFuZCBydW4gYXV0b2NvbmYgYWdhaW4uCi0rX0xUX0VPRgotKyAgICBmaQot KwotKyAgICBleGl0ICRFWElUX01JU01BVENICi0rICBmaQotK30KLSsKLSsKLSsjIyAtLS0tLS0t LS0tLSAjIwotKyMjICAgIE1haW4uICAgICMjCi0rIyMgLS0tLS0tLS0tLS0gIyMKLSsKLSskb3B0 X2hlbHAgfHwgewotKyAgIyBTYW5pdHkgY2hlY2tzIGZpcnN0OgotKyAgZnVuY19jaGVja192ZXJz aW9uX21hdGNoCi0rCi0rICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXMgJiYg dGVzdCAiJGJ1aWxkX29sZF9saWJzIiAhPSB5ZXM7IHRoZW4KLSsgICAgZnVuY19mYXRhbF9jb25m aWd1cmF0aW9uICJub3QgY29uZmlndXJlZCB0byBidWlsZCBhbnkga2luZCBvZiBsaWJyYXJ5Igot KyAgZmkKLSsKLSsgIHRlc3QgLXogIiRtb2RlIiAmJiBmdW5jX2ZhdGFsX2Vycm9yICJlcnJvcjog eW91IG11c3Qgc3BlY2lmeSBhIE1PREUuIgotKwotKwotKyAgIyBEYXJ3aW4gc3Vja3MKLSsgIGV2 YWwgc3RkX3NocmV4dD1cIiRzaHJleHRfY21kc1wiCi0rCi0rCi0rICAjIE9ubHkgZXhlY3V0ZSBt b2RlIGlzIGFsbG93ZWQgdG8gaGF2ZSAtZGxvcGVuIGZsYWdzLgotKyAgaWYgdGVzdCAtbiAiJGV4 ZWN1dGVfZGxmaWxlcyIgJiYgdGVzdCAiJG1vZGUiICE9IGV4ZWN1dGU7IHRoZW4KLSsgICAgZnVu Y19lcnJvciAidW5yZWNvZ25pemVkIG9wdGlvbiBcYC1kbG9wZW4nIgotKyAgICAkRUNITyAiJGhl bHAiIDE+JjIKLSsgICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rICBmaQotKwotKyAgIyBDaGFuZ2Ug dGhlIGhlbHAgbWVzc2FnZSB0byBhIG1vZGUtc3BlY2lmaWMgb25lLgotKyAgZ2VuZXJpY19oZWxw PSIkaGVscCIKLSsgIGhlbHA9IlRyeSBcYCRwcm9nbmFtZSAtLWhlbHAgLS1tb2RlPSRtb2RlJyBm b3IgbW9yZSBpbmZvcm1hdGlvbi4iCi0rfQotKwotKwotKyMgZnVuY19sYWxpYl9wIGZpbGUKLSsj IFRydWUgaWZmIEZJTEUgaXMgYSBsaWJ0b29sIGAubGEnIGxpYnJhcnkgb3IgYC5sbycgb2JqZWN0 IGZpbGUuCi0rIyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYSBiYXNpYyBzYW5pdHkgY2hlY2s7IGl0 IHdpbGwgaGFyZGx5IGZsdXNoIG91dAotKyMgZGV0ZXJtaW5lZCBpbXBvc3RlcnMuCi0rZnVuY19s YWxpYl9wICgpCi0rewotKyAgICB0ZXN0IC1mICIkMSIgJiYKLSsgICAgICAkU0VEIC1lIDRxICIk MSIgMj4vZGV2L251bGwgXAotKyAgICAgICAgfCAkR1JFUCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBB Q0tBR0UiID4gL2Rldi9udWxsIDI+JjEKLSt9Ci0rCi0rIyBmdW5jX2xhbGliX3Vuc2FmZV9wIGZp bGUKLSsjIFRydWUgaWZmIEZJTEUgaXMgYSBsaWJ0b29sIGAubGEnIGxpYnJhcnkgb3IgYC5sbycg b2JqZWN0IGZpbGUuCi0rIyBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIHNhbWUgY2hlY2sg YXMgZnVuY19sYWxpYl9wIHdpdGhvdXQKLSsjIHJlc29ydGluZyB0byBleHRlcm5hbCBwcm9ncmFt cy4gIFRvIHRoaXMgZW5kLCBpdCByZWRpcmVjdHMgc3RkaW4gYW5kCi0rIyBjbG9zZXMgaXQgYWZ0 ZXJ3YXJkcywgd2l0aG91dCBzYXZpbmcgdGhlIG9yaWdpbmFsIGZpbGUgZGVzY3JpcHRvci4KLSsj IEFzIGEgc2FmZXR5IG1lYXN1cmUsIHVzZSBpdCBvbmx5IHdoZXJlIGEgbmVnYXRpdmUgcmVzdWx0 IHdvdWxkIGJlCi0rIyBmYXRhbCBhbnl3YXkuICBXb3JrcyBpZiBgZmlsZScgZG9lcyBub3QgZXhp c3QuCi0rZnVuY19sYWxpYl91bnNhZmVfcCAoKQotK3sKLSsgICAgbGFsaWJfcD1ubwotKyAgICBp ZiB0ZXN0IC1mICIkMSIgJiYgdGVzdCAtciAiJDEiICYmIGV4ZWMgNTwmMCA8IiQxIjsgdGhlbgot Kwlmb3IgbGFsaWJfcF9sIGluIDEgMiAzIDQKLSsJZG8KLSsJICAgIHJlYWQgbGFsaWJfcF9saW5l Ci0rCSAgICBjYXNlICIkbGFsaWJfcF9saW5lIiBpbgotKwkJXCNcIEdlbmVyYXRlZFwgYnlcICok UEFDS0FHRSogKSBsYWxpYl9wPXllczsgYnJlYWs7OwotKwkgICAgZXNhYwotKwlkb25lCi0rCWV4 ZWMgMDwmNSA1PCYtCi0rICAgIGZpCi0rICAgIHRlc3QgIiRsYWxpYl9wIiA9IHllcwotK30KLSsK LSsjIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wIGZpbGUKLSsjIFRydWUgaWZmIEZJTEUgaXMgYSBs aWJ0b29sIHdyYXBwZXIgc2NyaXB0Ci0rIyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYSBiYXNpYyBz YW5pdHkgY2hlY2s7IGl0IHdpbGwgaGFyZGx5IGZsdXNoIG91dAotKyMgZGV0ZXJtaW5lZCBpbXBv c3RlcnMuCi0rZnVuY19sdHdyYXBwZXJfc2NyaXB0X3AgKCkKLSt7Ci0rICAgIGZ1bmNfbGFsaWJf cCAiJDEiCi0rfQotKwotKyMgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wIGZpbGUKLSsjIFRy dWUgaWZmIEZJTEUgaXMgYSBsaWJ0b29sIHdyYXBwZXIgZXhlY3V0YWJsZQotKyMgVGhpcyBmdW5j dGlvbiBpcyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhhcmRseSBmbHVzaCBv dXQKLSsjIGRldGVybWluZWQgaW1wb3N0ZXJzLgotK2Z1bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVf cCAoKQotK3sKLSsgICAgZnVuY19sdHdyYXBwZXJfZXhlY19zdWZmaXg9Ci0rICAgIGNhc2UgJDEg aW4KLSsgICAgKi5leGUpIDs7Ci0rICAgICopIGZ1bmNfbHR3cmFwcGVyX2V4ZWNfc3VmZml4PS5l eGUgOzsKLSsgICAgZXNhYwotKyAgICAkR1JFUCAiJG1hZ2ljX2V4ZSIgIiQxJGZ1bmNfbHR3cmFw cGVyX2V4ZWNfc3VmZml4IiA+L2Rldi9udWxsIDI+JjEKLSt9Ci0rCi0rIyBmdW5jX2x0d3JhcHBl cl9zY3JpcHRuYW1lIGZpbGUKLSsjIEFzc3VtZXMgZmlsZSBpcyBhbiBsdHdyYXBwZXJfZXhlY3V0 YWJsZQotKyMgdXNlcyAkZmlsZSB0byBkZXRlcm1pbmUgdGhlIGFwcHJvcHJpYXRlIGZpbGVuYW1l IGZvciBhCi0rIyB0ZW1wb3JhcnkgbHR3cmFwcGVyX3NjcmlwdC4KLStmdW5jX2x0d3JhcHBlcl9z Y3JpcHRuYW1lICgpCi0rewotKyAgICBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdD0i IgotKyAgICBpZiBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgIiQxIjsgdGhlbgotKwlmdW5j X2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICIkMSIgIiIgIi4iCi0rCWZ1bmNfc3RyaXBuYW1lICcnICcu ZXhlJyAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKwlmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1l X3Jlc3VsdD0iJGZ1bmNfZGlybmFtZV9yZXN1bHQvJG9iamRpci8ke2Z1bmNfc3RyaXBuYW1lX3Jl c3VsdH1fbHRzaHdyYXBwZXIiCi0rICAgIGZpCi0rfQotKwotKyMgZnVuY19sdHdyYXBwZXJfcCBm aWxlCi0rIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCB3cmFwcGVyIHNjcmlwdCBvciB3cmFw cGVyIGV4ZWN1dGFibGUKLSsjIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhIGJhc2ljIHNhbml0eSBj aGVjazsgaXQgd2lsbCBoYXJkbHkgZmx1c2ggb3V0Ci0rIyBkZXRlcm1pbmVkIGltcG9zdGVycy4K LStmdW5jX2x0d3JhcHBlcl9wICgpCi0rewotKyAgICBmdW5jX2x0d3JhcHBlcl9zY3JpcHRfcCAi JDEiIHx8IGZ1bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAiJDEiCi0rfQotKwotKwotKyMgZnVu Y19leGVjdXRlX2NtZHMgY29tbWFuZHMgZmFpbF9jbWQKLSsjIEV4ZWN1dGUgdGlsZGUtZGVsaW1p dGVkIENPTU1BTkRTLgotKyMgSWYgRkFJTF9DTUQgaXMgZ2l2ZW4sIGV2YWwgdGhhdCB1cG9uIGZh aWx1cmUuCi0rIyBGQUlMX0NNRCBtYXkgcmVhZC1hY2Nlc3MgdGhlIGN1cnJlbnQgY29tbWFuZCBp biB2YXJpYWJsZSBDTUQhCi0rZnVuY19leGVjdXRlX2NtZHMgKCkKLSt7Ci0rICAgICRvcHRfZGVi dWcKLSsgICAgc2F2ZV9pZnM9JElGUzsgSUZTPSd+JwotKyAgICBmb3IgY21kIGluICQxOyBkbwot KyAgICAgIElGUz0kc2F2ZV9pZnMKLSsgICAgICBldmFsIGNtZD1cIiRjbWRcIgotKyAgICAgIGZ1 bmNfc2hvd19ldmFsICIkY21kIiAiJHsyLTp9IgotKyAgICBkb25lCi0rICAgIElGUz0kc2F2ZV9p ZnMKLSt9Ci0rCi0rCi0rIyBmdW5jX3NvdXJjZSBmaWxlCi0rIyBTb3VyY2UgRklMRSwgYWRkaW5n IGRpcmVjdG9yeSBjb21wb25lbnQgaWYgbmVjZXNzYXJ5LgotKyMgTm90ZSB0aGF0IGl0IGlzIG5v dCBuZWNlc3Nhcnkgb24gY3lnd2luL21pbmd3IHRvIGFwcGVuZCBhIGRvdCB0bwotKyMgRklMRSBl dmVuIGlmIGJvdGggRklMRSBhbmQgRklMRS5leGUgZXhpc3Q6IGF1dG9tYXRpYy1hcHBlbmQtLmV4 ZQotKyMgYmVoYXZpb3IgaGFwcGVucyBvbmx5IGZvciBleGVjKDMpLCBub3QgZm9yIG9wZW4oMikh ICBBbHNvLCBzb3VyY2luZwotKyMgYEZJTEUuJyBkb2VzIG5vdCB3b3JrIG9uIGN5Z3dpbiBtYW5h Z2VkIG1vdW50cy4KLStmdW5jX3NvdXJjZSAoKQotK3sKLSsgICAgJG9wdF9kZWJ1ZwotKyAgICBj YXNlICQxIGluCi0rICAgICovKiB8ICpcXCopCS4gIiQxIiA7OwotKyAgICAqKQkJLiAiLi8kMSIg OzsKLSsgICAgZXNhYwotK30KLSsKLSsKLSsjIGZ1bmNfaW5mZXJfdGFnIGFyZwotKyMgSW5mZXIg dGFnZ2VkIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGlmIGFueSBhcmUgYXZhaWxhYmxlIGFuZAotKyMg aWYgb25lIHdhc24ndCBjaG9zZW4gdmlhIHRoZSAiLS10YWciIGNvbW1hbmQgbGluZSBvcHRpb24u Ci0rIyBPbmx5IGF0dGVtcHQgdGhpcyBpZiB0aGUgY29tcGlsZXIgaW4gdGhlIGJhc2UgY29tcGls ZQotKyMgY29tbWFuZCBkb2Vzbid0IG1hdGNoIHRoZSBkZWZhdWx0IGNvbXBpbGVyLgotKyMgYXJn IGlzIHVzdWFsbHkgb2YgdGhlIGZvcm0gJ2djYyAuLi4nCi0rZnVuY19pbmZlcl90YWcgKCkKLSt7 Ci0rICAgICRvcHRfZGVidWcKLSsgICAgaWYgdGVzdCAtbiAiJGF2YWlsYWJsZV90YWdzIiAmJiB0 ZXN0IC16ICIkdGFnbmFtZSI7IHRoZW4KLSsgICAgICBDQ19xdW90ZWQ9Ci0rICAgICAgZm9yIGFy ZyBpbiAkQ0M7IGRvCi0rICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgotKwlDQ19x dW90ZWQ9IiRDQ19xdW90ZWQgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKyAgICAgIGRv bmUKLSsgICAgICBjYXNlICRAIGluCi0rICAgICAgIyBCbGFua3MgaW4gdGhlIGNvbW1hbmQgbWF5 IGhhdmUgYmVlbiBzdHJpcHBlZCBieSB0aGUgY2FsbGluZyBzaGVsbCwKLSsgICAgICAjIGJ1dCBu b3QgZnJvbSB0aGUgQ0MgZW52aXJvbm1lbnQgdmFyaWFibGUgd2hlbiBjb25maWd1cmUgd2FzIHJ1 bi4KLSsgICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiIGAkRUNITyAkQ0NgICIqIHwgImAkRUNI TyAkQ0NgICIqIHwgIiAkQ0NfcXVvdGVkIiogfCAiJENDX3F1b3RlZCAiKiB8ICIgYCRFQ0hPICRD Q19xdW90ZWRgICIqIHwgImAkRUNITyAkQ0NfcXVvdGVkYCAiKikgOzsKLSsgICAgICAjIEJsYW5r cyBhdCB0aGUgc3RhcnQgb2YgJGJhc2VfY29tcGlsZSB3aWxsIGNhdXNlIHRoaXMgdG8gZmFpbAot KyAgICAgICMgaWYgd2UgZG9uJ3QgY2hlY2sgZm9yIHRoZW0gYXMgd2VsbC4KLSsgICAgICAqKQot Kwlmb3IgeiBpbiAkYXZhaWxhYmxlX3RhZ3M7IGRvCi0rCSAgaWYgJEdSRVAgIl4jICMjIyBCRUdJ TiBMSUJUT09MIFRBRyBDT05GSUc6ICR6JCIgPCAiJHByb2dwYXRoIiA+IC9kZXYvbnVsbDsgdGhl bgotKwkgICAgIyBFdmFsdWF0ZSB0aGUgY29uZmlndXJhdGlvbi4KLSsJICAgIGV2YWwgImAke1NF RH0gLW4gLWUgJy9eIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAnJHonJC8sL14jICMj IyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAnJHonJC9wJyA8ICRwcm9ncGF0aGAiCi0rCSAgICBD Q19xdW90ZWQ9Ci0rCSAgICBmb3IgYXJnIGluICRDQzsgZG8KLSsJICAgICAgIyBEb3VibGUtcXVv dGUgYXJncyBjb250YWluaW5nIG90aGVyIHNoZWxsIG1ldGFjaGFyYWN0ZXJzLgotKwkgICAgICBm dW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgotKwkgICAgICBDQ19xdW90ZWQ9IiRDQ19xdW90ZWQg JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKwkgICAgZG9uZQotKwkgICAgY2FzZSAiJEAg IiBpbgotKwkgICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiIGAkRUNITyAkQ0NgICIqIHwgImAk RUNITyAkQ0NgICIqIHwgIiAkQ0NfcXVvdGVkIiogfCAiJENDX3F1b3RlZCAiKiB8ICIgYCRFQ0hP ICRDQ19xdW90ZWRgICIqIHwgImAkRUNITyAkQ0NfcXVvdGVkYCAiKikKLSsJICAgICAgIyBUaGUg Y29tcGlsZXIgaW4gdGhlIGJhc2UgY29tcGlsZSBjb21tYW5kIG1hdGNoZXMKLSsJICAgICAgIyB0 aGUgb25lIGluIHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbi4KLSsJICAgICAgIyBBc3N1bWUgdGhp cyBpcyB0aGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb24gd2Ugd2FudC4KLSsJICAgICAgdGFnbmFtZT0k egotKwkgICAgICBicmVhawotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgIGZpCi0rCWRvbmUK LSsJIyBJZiAkdGFnbmFtZSBzdGlsbCBpc24ndCBzZXQsIHRoZW4gbm8gdGFnZ2VkIGNvbmZpZ3Vy YXRpb24KLSsJIyB3YXMgZm91bmQgYW5kIGxldCB0aGUgdXNlciBrbm93IHRoYXQgdGhlICItLXRh ZyIgY29tbWFuZAotKwkjIGxpbmUgb3B0aW9uIG11c3QgYmUgdXNlZC4KLSsJaWYgdGVzdCAteiAi JHRhZ25hbWUiOyB0aGVuCi0rCSAgZnVuY19lY2hvICJ1bmFibGUgdG8gaW5mZXIgdGFnZ2VkIGNv bmZpZ3VyYXRpb24iCi0rCSAgZnVuY19mYXRhbF9lcnJvciAic3BlY2lmeSBhIHRhZyB3aXRoIFxg LS10YWcnIgotKyMJZWxzZQotKyMJICBmdW5jX3ZlcmJvc2UgInVzaW5nICR0YWduYW1lIHRhZ2dl ZCBjb25maWd1cmF0aW9uIgotKwlmaQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSt9Ci0r Ci0rCi0rCi0rIyBmdW5jX3dyaXRlX2xpYnRvb2xfb2JqZWN0IG91dHB1dF9uYW1lIHBpY19uYW1l IG5vbnBpY19uYW1lCi0rIyBDcmVhdGUgYSBsaWJ0b29sIG9iamVjdCBmaWxlIChhbmFsb2dvdXMg dG8gYSAiLmxhIiBmaWxlKSwKLSsjIGJ1dCBkb24ndCBjcmVhdGUgaXQgaWYgd2UncmUgZG9pbmcg YSBkcnkgcnVuLgotK2Z1bmNfd3JpdGVfbGlidG9vbF9vYmplY3QgKCkKLSt7Ci0rICAgIHdyaXRl X2xpYm9iaj0kezF9Ci0rICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0 aGVuCi0rICAgICAgd3JpdGVfbG9iaj1cJyR7Mn1cJwotKyAgICBlbHNlCi0rICAgICAgd3JpdGVf bG9iaj1ub25lCi0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5 ZXM7IHRoZW4KLSsgICAgICB3cml0ZV9vbGRvYmo9XCckezN9XCcKLSsgICAgZWxzZQotKyAgICAg IHdyaXRlX29sZG9iaj1ub25lCi0rICAgIGZpCi0rCi0rICAgICRvcHRfZHJ5X3J1biB8fCB7Ci0r ICAgICAgY2F0ID4ke3dyaXRlX2xpYm9ian1UIDw8RU9GCi0rIyAkd3JpdGVfbGlib2JqIC0gYSBs aWJ0b29sIG9iamVjdCBmaWxlCi0rIyBHZW5lcmF0ZWQgYnkgJFBST0dSQU0gKEdOVSAkUEFDS0FH RSRUSU1FU1RBTVApICRWRVJTSU9OCi0rIwotKyMgUGxlYXNlIERPIE5PVCBkZWxldGUgdGhpcyBm aWxlIQotKyMgSXQgaXMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHRoZSBsaWJyYXJ5LgotKwotKyMg TmFtZSBvZiB0aGUgUElDIG9iamVjdC4KLStwaWNfb2JqZWN0PSR3cml0ZV9sb2JqCi0rCi0rIyBO YW1lIG9mIHRoZSBub24tUElDIG9iamVjdAotK25vbl9waWNfb2JqZWN0PSR3cml0ZV9vbGRvYmoK LSsKLStFT0YKLSsgICAgICAkTVYgIiR7d3JpdGVfbGlib2JqfVQiICIke3dyaXRlX2xpYm9ian0i Ci0rICAgIH0KLSt9Ci0rCi0rIyBmdW5jX21vZGVfY29tcGlsZSBhcmcuLi4KLStmdW5jX21vZGVf Y29tcGlsZSAoKQotK3sKLSsgICAgJG9wdF9kZWJ1ZwotKyAgICAjIEdldCB0aGUgY29tcGlsYXRp b24gY29tbWFuZCBhbmQgdGhlIHNvdXJjZSBmaWxlLgotKyAgICBiYXNlX2NvbXBpbGU9Ci0rICAg IHNyY2ZpbGU9IiRub25vcHQiICAjICBhbHdheXMga2VlcCBhIG5vbi1lbXB0eSB2YWx1ZSBpbiAi c3JjZmlsZSIKLSsgICAgc3VwcHJlc3Nfb3B0PXllcwotKyAgICBzdXBwcmVzc19vdXRwdXQ9Ci0r ICAgIGFyZ19tb2RlPW5vcm1hbAotKyAgICBsaWJvYmo9Ci0rICAgIGxhdGVyPQotKyAgICBwaWVf ZmxhZz0KLSsKLSsgICAgZm9yIGFyZwotKyAgICBkbwotKyAgICAgIGNhc2UgJGFyZ19tb2RlIGlu Ci0rICAgICAgYXJnICApCi0rCSMgZG8gbm90ICJjb250aW51ZSIuICBJbnN0ZWFkLCBhZGQgdGhp cyB0byBiYXNlX2NvbXBpbGUKLSsJbGFzdGFyZz0iJGFyZyIKLSsJYXJnX21vZGU9bm9ybWFsCi0r CTs7Ci0rCi0rICAgICAgdGFyZ2V0ICkKLSsJbGlib2JqPSIkYXJnIgotKwlhcmdfbW9kZT1ub3Jt YWwKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICBub3JtYWwgKQotKwkjIEFjY2VwdCBhbnkg Y29tbWFuZC1saW5lIG9wdGlvbnMuCi0rCWNhc2UgJGFyZyBpbgotKwktbykKLSsJICB0ZXN0IC1u ICIkbGlib2JqIiAmJiBcCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJ5b3UgY2Fubm90IHNwZWNp ZnkgXGAtbycgbW9yZSB0aGFuIG9uY2UiCi0rCSAgYXJnX21vZGU9dGFyZ2V0Ci0rCSAgY29udGlu dWUKLSsJICA7OwotKwotKwktcGllIHwgLWZwaWUgfCAtZlBJRSkKLSsgICAgICAgICAgcGllX2Zs YWc9IiRwaWVfZmxhZyAkYXJnIgotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsKLSsJLXNoYXJlZCB8 IC1zdGF0aWMgfCAtcHJlZmVyLXBpYyB8IC1wcmVmZXItbm9uLXBpYykKLSsJICBsYXRlcj0iJGxh dGVyICRhcmciCi0rCSAgY29udGludWUKLSsJICA7OwotKwotKwktbm8tc3VwcHJlc3MpCi0rCSAg c3VwcHJlc3Nfb3B0PW5vCi0rCSAgY29udGludWUKLSsJICA7OwotKwotKwktWGNvbXBpbGVyKQot KwkgIGFyZ19tb2RlPWFyZyAgIyAgdGhlIG5leHQgb25lIGdvZXMgaW50byB0aGUgImJhc2VfY29t cGlsZSIgYXJnIGxpc3QKLSsJICBjb250aW51ZSAgICAgICMgIFRoZSBjdXJyZW50ICJzcmNmaWxl IiB3aWxsIGVpdGhlciBiZSByZXRhaW5lZCBvcgotKwkgIDs7ICAgICAgICAgICAgIyAgcmVwbGFj ZWQgbGF0ZXIuICBJIHdvdWxkIGd1ZXNzIHRoYXQgd291bGQgYmUgYSBidWcuCi0rCi0rCS1XYywq KQotKwkgIGZ1bmNfc3RyaXBuYW1lICctV2MsJyAnJyAiJGFyZyIKLSsJICBhcmdzPSRmdW5jX3N0 cmlwbmFtZV9yZXN1bHQKLSsJICBsYXN0YXJnPQotKwkgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPScs JwotKwkgIGZvciBhcmcgaW4gJGFyZ3M7IGRvCi0rCSAgICBJRlM9IiRzYXZlX2lmcyIKLSsJICAg IGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCi0rCSAgICBsYXN0YXJnPSIkbGFzdGFyZyAkZnVu Y19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0rCSAgZG9uZQotKwkgIElGUz0iJHNhdmVfaWZzIgot KwkgIGZ1bmNfc3RyaXBuYW1lICcgJyAnJyAiJGxhc3RhcmciCi0rCSAgbGFzdGFyZz0kZnVuY19z dHJpcG5hbWVfcmVzdWx0Ci0rCi0rCSAgIyBBZGQgdGhlIGFyZ3VtZW50cyB0byBiYXNlX2NvbXBp bGUuCi0rCSAgYmFzZV9jb21waWxlPSIkYmFzZV9jb21waWxlICRsYXN0YXJnIgotKwkgIGNvbnRp bnVlCi0rCSAgOzsKLSsKLSsJKikKLSsJICAjIEFjY2VwdCB0aGUgY3VycmVudCBhcmd1bWVudCBh cyB0aGUgc291cmNlIGZpbGUuCi0rCSAgIyBUaGUgcHJldmlvdXMgInNyY2ZpbGUiIGJlY29tZXMg dGhlIGN1cnJlbnQgYXJndW1lbnQuCi0rCSAgIwotKwkgIGxhc3Rhcmc9IiRzcmNmaWxlIgotKwkg IHNyY2ZpbGU9IiRhcmciCi0rCSAgOzsKLSsJZXNhYyAgIyAgY2FzZSAkYXJnCi0rCTs7Ci0rICAg ICAgZXNhYyAgICAjICBjYXNlICRhcmdfbW9kZQotKwotKyAgICAgICMgQWVzdGhldGljYWxseSBx dW90ZSB0aGUgcHJldmlvdXMgYXJndW1lbnQuCi0rICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAi JGxhc3RhcmciCi0rICAgICAgYmFzZV9jb21waWxlPSIkYmFzZV9jb21waWxlICRmdW5jX3F1b3Rl X2Zvcl9ldmFsX3Jlc3VsdCIKLSsgICAgZG9uZSAjIGZvciBhcmcKLSsKLSsgICAgY2FzZSAkYXJn X21vZGUgaW4KLSsgICAgYXJnKQotKyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgInlvdSBtdXN0IHNw ZWNpZnkgYW4gYXJndW1lbnQgZm9yIC1YY29tcGlsZSIKLSsgICAgICA7OwotKyAgICB0YXJnZXQp Ci0rICAgICAgZnVuY19mYXRhbF9lcnJvciAieW91IG11c3Qgc3BlY2lmeSBhIHRhcmdldCB3aXRo IFxgLW8nIgotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgIyBHZXQgdGhlIG5hbWUgb2YgdGhl IGxpYnJhcnkgb2JqZWN0LgotKyAgICAgIHRlc3QgLXogIiRsaWJvYmoiICYmIHsKLSsJZnVuY19i YXNlbmFtZSAiJHNyY2ZpbGUiCi0rCWxpYm9iaj0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKyAg ICAgIH0KLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgICMgUmVjb2duaXplIHNldmVyYWwg ZGlmZmVyZW50IGZpbGUgc3VmZml4ZXMuCi0rICAgICMgSWYgdGhlIHVzZXIgc3BlY2lmaWVzIC1v IGZpbGUubywgaXQgaXMgcmVwbGFjZWQgd2l0aCBmaWxlLmxvCi0rICAgIGNhc2UgJGxpYm9iaiBp bgotKyAgICAqLltjQ0ZTaWZtc29dIHwgXAotKyAgICAqLmFkYSB8ICouYWRiIHwgKi5hZHMgfCAq LmFzbSB8IFwKLSsgICAgKi5jKysgfCAqLmNjIHwgKi5paSB8ICouY2xhc3MgfCAqLmNwcCB8ICou Y3h4IHwgXAotKyAgICAqLltmRl1bMDldPyB8ICouZm9yIHwgKi5qYXZhIHwgKi5vYmogfCAqLnN4 KQotKyAgICAgIGZ1bmNfeGZvcm0gIiRsaWJvYmoiCi0rICAgICAgbGlib2JqPSRmdW5jX3hmb3Jt X3Jlc3VsdAotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgY2FzZSAkbGlib2JqIGluCi0r ICAgICoubG8pIGZ1bmNfbG8ybyAiJGxpYm9iaiI7IG9iaj0kZnVuY19sbzJvX3Jlc3VsdCA7Owot KyAgICAqKQotKyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBkZXRlcm1pbmUgbmFtZSBv ZiBsaWJyYXJ5IG9iamVjdCBmcm9tIFxgJGxpYm9iaiciCi0rICAgICAgOzsKLSsgICAgZXNhYwot KwotKyAgICBmdW5jX2luZmVyX3RhZyAkYmFzZV9jb21waWxlCi0rCi0rICAgIGZvciBhcmcgaW4g JGxhdGVyOyBkbwotKyAgICAgIGNhc2UgJGFyZyBpbgotKyAgICAgIC1zaGFyZWQpCi0rCXRlc3Qg IiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllcyAmJiBcCi0rCSAgZnVuY19mYXRhbF9jb25maWd1 cmF0aW9uICJjYW4gbm90IGJ1aWxkIGEgc2hhcmVkIGxpYnJhcnkiCi0rCWJ1aWxkX29sZF9saWJz PW5vCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLXN0YXRpYykKLSsJYnVpbGRfbGlidG9v bF9saWJzPW5vCi0rCWJ1aWxkX29sZF9saWJzPXllcwotKwljb250aW51ZQotKwk7OwotKwotKyAg ICAgIC1wcmVmZXItcGljKQotKwlwaWNfbW9kZT15ZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsg ICAgICAtcHJlZmVyLW5vbi1waWMpCi0rCXBpY19tb2RlPW5vCi0rCWNvbnRpbnVlCi0rCTs7Ci0r ICAgICAgZXNhYwotKyAgICBkb25lCi0rCi0rICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRsaWJv YmoiCi0rICAgIHRlc3QgIlgkbGlib2JqIiAhPSAiWCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3Vs dCIgXAotKyAgICAgICYmICRFQ0hPICJYJGxpYm9iaiIgfCAkR1JFUCAnW11+I14qe307PD4/Iici JyInCSAmKCl8YCRbXScgXAotKyAgICAgICYmIGZ1bmNfd2FybmluZyAibGlib2JqIG5hbWUgXGAk bGlib2JqJyBtYXkgbm90IGNvbnRhaW4gc2hlbGwgc3BlY2lhbCBjaGFyYWN0ZXJzLiIKLSsgICAg ZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJG9iaiIgIi8iICIiCi0rICAgIG9iam5hbWU9IiRm dW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsgICAgeGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0r ICAgIGxvYmo9JHt4ZGlyfSRvYmpkaXIvJG9iam5hbWUKLSsKLSsgICAgdGVzdCAteiAiJGJhc2Vf Y29tcGlsZSIgJiYgXAotKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBh IGNvbXBpbGF0aW9uIGNvbW1hbmQiCi0rCi0rICAgICMgRGVsZXRlIGFueSBsZWZ0b3ZlciBsaWJy YXJ5IG9iamVjdHMuCi0rICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4K LSsgICAgICByZW1vdmVsaXN0PSIkb2JqICRsb2JqICRsaWJvYmogJHtsaWJvYmp9VCIKLSsgICAg ZWxzZQotKyAgICAgIHJlbW92ZWxpc3Q9IiRsb2JqICRsaWJvYmogJHtsaWJvYmp9VCIKLSsgICAg ZmkKLSsKLSsgICAgIyBPbiBDeWd3aW4gdGhlcmUncyBubyAicmVhbCIgUElDIGZsYWcgc28gd2Ug bXVzdCBidWlsZCBib3RoIG9iamVjdCB0eXBlcwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAg IGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IG9zMiogfCBjZWdjYyopCi0rICAgICAgcGljX21v ZGU9ZGVmYXVsdAotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgaWYgdGVzdCAiJHBpY19tb2Rl IiA9IG5vICYmIHRlc3QgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgIT0gcGFzc19hbGw7IHRoZW4K LSsgICAgICAjIG5vbi1QSUMgY29kZSBpbiBzaGFyZWQgbGlicmFyaWVzIGlzIG5vdCBzdXBwb3J0 ZWQKLSsgICAgICBwaWNfbW9kZT1kZWZhdWx0Ci0rICAgIGZpCi0rCi0rICAgICMgQ2FsY3VsYXRl IHRoZSBmaWxlbmFtZSBvZiB0aGUgb3V0cHV0IG9iamVjdCBpZiBjb21waWxlciBkb2VzCi0rICAg ICMgbm90IHN1cHBvcnQgLW8gd2l0aCAtYwotKyAgICBpZiB0ZXN0ICIkY29tcGlsZXJfY19vIiA9 IG5vOyB0aGVuCi0rICAgICAgb3V0cHV0X29iaj1gJEVDSE8gIlgkc3JjZmlsZSIgfCAkWHNlZCAt ZSAncyVeLiovJSUnIC1lICdzJVwuW14uXSokJSUnYC4ke29iamV4dH0KLSsgICAgICBsb2NrZmls ZT0iJG91dHB1dF9vYmoubG9jayIKLSsgICAgZWxzZQotKyAgICAgIG91dHB1dF9vYmo9Ci0rICAg ICAgbmVlZF9sb2Nrcz1ubwotKyAgICAgIGxvY2tmaWxlPQotKyAgICBmaQotKwotKyAgICAjIExv Y2sgdGhpcyBjcml0aWNhbCBzZWN0aW9uIGlmIGl0IGlzIG5lZWRlZAotKyAgICAjIFdlIHVzZSB0 aGlzIHNjcmlwdCBmaWxlIHRvIG1ha2UgdGhlIGxpbmssIGl0IGF2b2lkcyBjcmVhdGluZyBhIG5l dyBmaWxlCi0rICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHllczsgdGhlbgotKyAgICAgIHVu dGlsICRvcHRfZHJ5X3J1biB8fCBsbiAiJHByb2dwYXRoIiAiJGxvY2tmaWxlIiAyPi9kZXYvbnVs bDsgZG8KLSsJZnVuY19lY2hvICJXYWl0aW5nIGZvciAkbG9ja2ZpbGUgdG8gYmUgcmVtb3ZlZCIK LSsJc2xlZXAgMgotKyAgICAgIGRvbmUKLSsgICAgZWxpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgPSB3 YXJuOyB0aGVuCi0rICAgICAgaWYgdGVzdCAtZiAiJGxvY2tmaWxlIjsgdGhlbgotKwkkRUNITyAi XAotKyoqKiBFUlJPUiwgJGxvY2tmaWxlIGV4aXN0cyBhbmQgY29udGFpbnM6Ci0rYGNhdCAkbG9j a2ZpbGUgMj4vZGV2L251bGxgCi0rCi0rVGhpcyBpbmRpY2F0ZXMgdGhhdCBhbm90aGVyIHByb2Nl c3MgaXMgdHJ5aW5nIHRvIHVzZSB0aGUgc2FtZQotK3RlbXBvcmFyeSBvYmplY3QgZmlsZSwgYW5k IGxpYnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UKLSt5b3VyIGNvbXBpbGVy IGRvZXMgbm90IHN1cHBvcnQgXGAtYycgYW5kIFxgLW8nIHRvZ2V0aGVyLiAgSWYgeW91Ci0rcmVw ZWF0IHRoaXMgY29tcGlsYXRpb24sIGl0IG1heSBzdWNjZWVkLCBieSBjaGFuY2UsIGJ1dCB5b3Ug aGFkIGJldHRlcgotK2F2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikgaW4gdGhpcyBwbGF0 Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCi0rY29tcGlsZXIuIgotKwotKwkkb3B0X2RyeV9ydW4gfHwg JFJNICRyZW1vdmVsaXN0Ci0rCWV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICAgIGZpCi0rICAgICAg cmVtb3ZlbGlzdD0iJHJlbW92ZWxpc3QgJG91dHB1dF9vYmoiCi0rICAgICAgJEVDSE8gIiRzcmNm aWxlIiA+ICIkbG9ja2ZpbGUiCi0rICAgIGZpCi0rCi0rICAgICRvcHRfZHJ5X3J1biB8fCAkUk0g JHJlbW92ZWxpc3QKLSsgICAgcmVtb3ZlbGlzdD0iJHJlbW92ZWxpc3QgJGxvY2tmaWxlIgotKyAg ICB0cmFwICckb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRFWElUX0ZBSUxV UkUnIDEgMiAxNQotKwotKyAgICBpZiB0ZXN0IC1uICIkZml4X3NyY2ZpbGVfcGF0aCI7IHRoZW4K LSsgICAgICBldmFsIHNyY2ZpbGU9XCIkZml4X3NyY2ZpbGVfcGF0aFwiCi0rICAgIGZpCi0rICAg IGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRzcmNmaWxlIgotKyAgICBxc3JjZmlsZT0kZnVuY19xdW90 ZV9mb3JfZXZhbF9yZXN1bHQKLSsKLSsgICAgIyBPbmx5IGJ1aWxkIGEgUElDIG9iamVjdCBpZiB3 ZSBhcmUgYnVpbGRpbmcgbGlidG9vbCBsaWJyYXJpZXMuCi0rICAgIGlmIHRlc3QgIiRidWlsZF9s aWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCi0rICAgICAgIyBXaXRob3V0IHRoaXMgYXNzaWdubWVu dCwgYmFzZV9jb21waWxlIGdldHMgZW1wdGllZC4KLSsgICAgICBmYnNkX2hpZGVvdXNfc2hfYnVn PSRiYXNlX2NvbXBpbGUKLSsKLSsgICAgICBpZiB0ZXN0ICIkcGljX21vZGUiICE9IG5vOyB0aGVu Ci0rCWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlICRwaWNfZmxhZyIKLSsgICAgICBl bHNlCi0rCSMgRG9uJ3QgYnVpbGQgUElDIGNvZGUKLSsJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAk cXNyY2ZpbGUiCi0rICAgICAgZmkKLSsKLSsgICAgICBmdW5jX21rZGlyX3AgIiR4ZGlyJG9iamRp ciIKLSsKLSsgICAgICBpZiB0ZXN0IC16ICIkb3V0cHV0X29iaiI7IHRoZW4KLSsJIyBQbGFjZSBQ SUMgb2JqZWN0cyBpbiAkb2JqZGlyCi0rCWNvbW1hbmQ9IiRjb21tYW5kIC1vICRsb2JqIgotKyAg ICAgIGZpCi0rCi0rICAgICAgZnVuY19zaG93X2V2YWxfbG9jYWxlICIkY29tbWFuZCIJXAotKyAg ICAgICAgICAndGVzdCAtbiAiJG91dHB1dF9vYmoiICYmICRSTSAkcmVtb3ZlbGlzdDsgZXhpdCAk RVhJVF9GQUlMVVJFJwotKwotKyAgICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHdhcm4gJiYK LSsJIHRlc3QgIlhgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAiICE9ICJYJHNyY2ZpbGUiOyB0 aGVuCi0rCSRFQ0hPICJcCi0rKioqIEVSUk9SLCAkbG9ja2ZpbGUgY29udGFpbnM6Ci0rYGNhdCAk bG9ja2ZpbGUgMj4vZGV2L251bGxgCi0rCi0rYnV0IGl0IHNob3VsZCBjb250YWluOgotKyRzcmNm aWxlCi0rCi0rVGhpcyBpbmRpY2F0ZXMgdGhhdCBhbm90aGVyIHByb2Nlc3MgaXMgdHJ5aW5nIHRv IHVzZSB0aGUgc2FtZQotK3RlbXBvcmFyeSBvYmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291bGQg bm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UKLSt5b3VyIGNvbXBpbGVyIGRvZXMgbm90IHN1cHBv cnQgXGAtYycgYW5kIFxgLW8nIHRvZ2V0aGVyLiAgSWYgeW91Ci0rcmVwZWF0IHRoaXMgY29tcGls YXRpb24sIGl0IG1heSBzdWNjZWVkLCBieSBjaGFuY2UsIGJ1dCB5b3UgaGFkIGJldHRlcgotK2F2 b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikgaW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0IGEg YmV0dGVyCi0rY29tcGlsZXIuIgotKwotKwkkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0 Ci0rCWV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICAgIGZpCi0rCi0rICAgICAgIyBKdXN0IG1vdmUg dGhlIG9iamVjdCBpZiBuZWVkZWQsIHRoZW4gZ28gb24gdG8gY29tcGlsZSB0aGUgbmV4dCBvbmUK LSsgICAgICBpZiB0ZXN0IC1uICIkb3V0cHV0X29iaiIgJiYgdGVzdCAiWCRvdXRwdXRfb2JqIiAh PSAiWCRsb2JqIjsgdGhlbgotKwlmdW5jX3Nob3dfZXZhbCAnJE1WICIkb3V0cHV0X29iaiIgIiRs b2JqIicgXAotKwkgICdlcnJvcj0kPzsgJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdDsg ZXhpdCAkZXJyb3InCi0rICAgICAgZmkKLSsKLSsgICAgICAjIEFsbG93IGVycm9yIG1lc3NhZ2Vz IG9ubHkgZnJvbSB0aGUgZmlyc3QgY29tcGlsYXRpb24uCi0rICAgICAgaWYgdGVzdCAiJHN1cHBy ZXNzX29wdCIgPSB5ZXM7IHRoZW4KLSsJc3VwcHJlc3Nfb3V0cHV0PScgPi9kZXYvbnVsbCAyPiYx JwotKyAgICAgIGZpCi0rICAgIGZpCi0rCi0rICAgICMgT25seSBidWlsZCBhIHBvc2l0aW9uLWRl cGVuZGVudCBvYmplY3QgaWYgd2UgYnVpbGQgb2xkIGxpYnJhcmllcy4KLSsgICAgaWYgdGVzdCAi JGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgotKyAgICAgIGlmIHRlc3QgIiRwaWNfbW9kZSIg IT0geWVzOyB0aGVuCi0rCSMgRG9uJ3QgYnVpbGQgUElDIGNvZGUKLSsJY29tbWFuZD0iJGJhc2Vf Y29tcGlsZSAkcXNyY2ZpbGUkcGllX2ZsYWciCi0rICAgICAgZWxzZQotKwljb21tYW5kPSIkYmFz ZV9jb21waWxlICRxc3JjZmlsZSAkcGljX2ZsYWciCi0rICAgICAgZmkKLSsgICAgICBpZiB0ZXN0 ICIkY29tcGlsZXJfY19vIiA9IHllczsgdGhlbgotKwljb21tYW5kPSIkY29tbWFuZCAtbyAkb2Jq IgotKyAgICAgIGZpCi0rCi0rICAgICAgIyBTdXBwcmVzcyBjb21waWxlciBvdXRwdXQgaWYgd2Ug YWxyZWFkeSBkaWQgYSBQSUMgY29tcGlsYXRpb24uCi0rICAgICAgY29tbWFuZD0iJGNvbW1hbmQk c3VwcHJlc3Nfb3V0cHV0IgotKyAgICAgIGZ1bmNfc2hvd19ldmFsX2xvY2FsZSAiJGNvbW1hbmQi IFwKLSsgICAgICAgICckb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRFWElU X0ZBSUxVUkUnCi0rCi0rICAgICAgaWYgdGVzdCAiJG5lZWRfbG9ja3MiID0gd2FybiAmJgotKwkg dGVzdCAiWGBjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYCIgIT0gIlgkc3JjZmlsZSI7IHRoZW4K LSsJJEVDSE8gIlwKLSsqKiogRVJST1IsICRsb2NrZmlsZSBjb250YWluczoKLStgY2F0ICRsb2Nr ZmlsZSAyPi9kZXYvbnVsbGAKLSsKLStidXQgaXQgc2hvdWxkIGNvbnRhaW46Ci0rJHNyY2ZpbGUK LSsKLStUaGlzIGluZGljYXRlcyB0aGF0IGFub3RoZXIgcHJvY2VzcyBpcyB0cnlpbmcgdG8gdXNl IHRoZSBzYW1lCi0rdGVtcG9yYXJ5IG9iamVjdCBmaWxlLCBhbmQgbGlidG9vbCBjb3VsZCBub3Qg d29yayBhcm91bmQgaXQgYmVjYXVzZQotK3lvdXIgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBc YC1jJyBhbmQgXGAtbycgdG9nZXRoZXIuICBJZiB5b3UKLStyZXBlYXQgdGhpcyBjb21waWxhdGlv biwgaXQgbWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwgYnV0IHlvdSBoYWQgYmV0dGVyCi0rYXZvaWQg cGFyYWxsZWwgYnVpbGRzIChtYWtlIC1qKSBpbiB0aGlzIHBsYXRmb3JtLCBvciBnZXQgYSBiZXR0 ZXIKLStjb21waWxlci4iCi0rCi0rCSRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3QKLSsJ ZXhpdCAkRVhJVF9GQUlMVVJFCi0rICAgICAgZmkKLSsKLSsgICAgICAjIEp1c3QgbW92ZSB0aGUg b2JqZWN0IGlmIG5lZWRlZAotKyAgICAgIGlmIHRlc3QgLW4gIiRvdXRwdXRfb2JqIiAmJiB0ZXN0 ICJYJG91dHB1dF9vYmoiICE9ICJYJG9iaiI7IHRoZW4KLSsJZnVuY19zaG93X2V2YWwgJyRNViAi JG91dHB1dF9vYmoiICIkb2JqIicgXAotKwkgICdlcnJvcj0kPzsgJG9wdF9kcnlfcnVuIHx8ICRS TSAkcmVtb3ZlbGlzdDsgZXhpdCAkZXJyb3InCi0rICAgICAgZmkKLSsgICAgZmkKLSsKLSsgICAg JG9wdF9kcnlfcnVuIHx8IHsKLSsgICAgICBmdW5jX3dyaXRlX2xpYnRvb2xfb2JqZWN0ICIkbGli b2JqIiAiJG9iamRpci8kb2JqbmFtZSIgIiRvYmpuYW1lIgotKwotKyAgICAgICMgVW5sb2NrIHRo ZSBjcml0aWNhbCBzZWN0aW9uIGlmIGl0IHdhcyBsb2NrZWQKLSsgICAgICBpZiB0ZXN0ICIkbmVl ZF9sb2NrcyIgIT0gbm87IHRoZW4KLSsJcmVtb3ZlbGlzdD0kbG9ja2ZpbGUKLSsgICAgICAgICRS TSAiJGxvY2tmaWxlIgotKyAgICAgIGZpCi0rICAgIH0KLSsKLSsgICAgZXhpdCAkRVhJVF9TVUND RVNTCi0rfQotKwotKyRvcHRfaGVscCB8fCB7Ci0rdGVzdCAiJG1vZGUiID0gY29tcGlsZSAmJiBm dW5jX21vZGVfY29tcGlsZSAkezErIiRAIn0KLSt9Ci0rCi0rZnVuY19tb2RlX2hlbHAgKCkKLSt7 Ci0rICAgICMgV2UgbmVlZCB0byBkaXNwbGF5IGhlbHAgZm9yIGVhY2ggb2YgdGhlIG1vZGVzLgot KyAgICBjYXNlICRtb2RlIGluCi0rICAgICAgIiIpCi0rICAgICAgICAjIEdlbmVyaWMgaGVscCBp cyBleHRyYWN0ZWQgZnJvbSB0aGUgdXNhZ2UgY29tbWVudHMKLSsgICAgICAgICMgYXQgdGhlIHN0 YXJ0IG9mIHRoaXMgZmlsZS4KLSsgICAgICAgIGZ1bmNfaGVscAotKyAgICAgICAgOzsKLSsKLSsg ICAgICBjbGVhbikKLSsgICAgICAgICRFQ0hPIFwKLSsiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9O XS4uLiAtLW1vZGU9Y2xlYW4gUk0gW1JNLU9QVElPTl0uLi4gRklMRS4uLgotKwotK1JlbW92ZSBm aWxlcyBmcm9tIHRoZSBidWlsZCBkaXJlY3RvcnkuCi0rCi0rUk0gaXMgdGhlIG5hbWUgb2YgdGhl IHByb2dyYW0gdG8gdXNlIHRvIGRlbGV0ZSBmaWxlcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBGSUxF Ci0rKHR5cGljYWxseSBcYC9iaW4vcm0nKS4gIFJNLU9QVElPTlMgYXJlIG9wdGlvbnMgKHN1Y2gg YXMgXGAtZicpIHRvIGJlIHBhc3NlZAotK3RvIFJNLgotKwotK0lmIEZJTEUgaXMgYSBsaWJ0b29s IGxpYnJhcnksIG9iamVjdCBvciBwcm9ncmFtLCBhbGwgdGhlIGZpbGVzIGFzc29jaWF0ZWQKLSt3 aXRoIGl0IGFyZSBkZWxldGVkLiBPdGhlcndpc2UsIG9ubHkgRklMRSBpdHNlbGYgaXMgZGVsZXRl ZCB1c2luZyBSTS4iCi0rICAgICAgICA7OwotKwotKyAgICAgIGNvbXBpbGUpCi0rICAgICAgJEVD SE8gXAotKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1jb21waWxlIENPTVBJ TEUtQ09NTUFORC4uLiBTT1VSQ0VGSUxFCi0rCi0rQ29tcGlsZSBhIHNvdXJjZSBmaWxlIGludG8g YSBsaWJ0b29sIGxpYnJhcnkgb2JqZWN0LgotKwotK1RoaXMgbW9kZSBhY2NlcHRzIHRoZSBmb2xs b3dpbmcgYWRkaXRpb25hbCBvcHRpb25zOgotKwotKyAgLW8gT1VUUFVULUZJTEUgICAgc2V0IHRo ZSBvdXRwdXQgZmlsZSBuYW1lIHRvIE9VVFBVVC1GSUxFCi0rICAtbm8tc3VwcHJlc3MgICAgICBk byBub3Qgc3VwcHJlc3MgY29tcGlsZXIgb3V0cHV0IGZvciBtdWx0aXBsZSBwYXNzZXMKLSsgIC1w cmVmZXItcGljICAgICAgIHRyeSB0byBidWlsZGluZyBQSUMgb2JqZWN0cyBvbmx5Ci0rICAtcHJl ZmVyLW5vbi1waWMgICB0cnkgdG8gYnVpbGRpbmcgbm9uLVBJQyBvYmplY3RzIG9ubHkKLSsgIC1z aGFyZWQgICAgICAgICAgIGRvIG5vdCBidWlsZCBhIFxgLm8nIGZpbGUgc3VpdGFibGUgZm9yIHN0 YXRpYyBsaW5raW5nCi0rICAtc3RhdGljICAgICAgICAgICBvbmx5IGJ1aWxkIGEgXGAubycgZmls ZSBzdWl0YWJsZSBmb3Igc3RhdGljIGxpbmtpbmcKLSsKLStDT01QSUxFLUNPTU1BTkQgaXMgYSBj b21tYW5kIHRvIGJlIHVzZWQgaW4gY3JlYXRpbmcgYSBcYHN0YW5kYXJkJyBvYmplY3QgZmlsZQot K2Zyb20gdGhlIGdpdmVuIFNPVVJDRUZJTEUuCi0rCi0rVGhlIG91dHB1dCBmaWxlIG5hbWUgaXMg ZGV0ZXJtaW5lZCBieSByZW1vdmluZyB0aGUgZGlyZWN0b3J5IGNvbXBvbmVudCBmcm9tCi0rU09V UkNFRklMRSwgdGhlbiBzdWJzdGl0dXRpbmcgdGhlIEMgc291cmNlIGNvZGUgc3VmZml4IFxgLmMn IHdpdGggdGhlCi0rbGlicmFyeSBvYmplY3Qgc3VmZml4LCBcYC5sbycuIgotKyAgICAgICAgOzsK LSsKLSsgICAgICBleGVjdXRlKQotKyAgICAgICAgJEVDSE8gXAotKyJVc2FnZTogJHByb2duYW1l IFtPUFRJT05dLi4uIC0tbW9kZT1leGVjdXRlIENPTU1BTkQgW0FSR1NdLi4uCi0rCi0rQXV0b21h dGljYWxseSBzZXQgbGlicmFyeSBwYXRoLCB0aGVuIHJ1biBhIHByb2dyYW0uCi0rCi0rVGhpcyBt b2RlIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIG9wdGlvbnM6Ci0rCi0rICAtZGxv cGVuIEZJTEUgICAgICBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIEZJTEUgdG8gdGhlIGxp YnJhcnkgcGF0aAotKwotK1RoaXMgbW9kZSBzZXRzIHRoZSBsaWJyYXJ5IHBhdGggZW52aXJvbm1l bnQgdmFyaWFibGUgYWNjb3JkaW5nIHRvIFxgLWRsb3BlbicKLStmbGFncy4KLSsKLStJZiBhbnkg b2YgdGhlIEFSR1MgYXJlIGxpYnRvb2wgZXhlY3V0YWJsZSB3cmFwcGVycywgdGhlbiB0aGV5IGFy ZSB0cmFuc2xhdGVkCi0raW50byB0aGVpciBjb3JyZXNwb25kaW5nIHVuaW5zdGFsbGVkIGJpbmFy eSwgYW5kIGFueSBvZiB0aGVpciByZXF1aXJlZCBsaWJyYXJ5Ci0rZGlyZWN0b3JpZXMgYXJlIGFk ZGVkIHRvIHRoZSBsaWJyYXJ5IHBhdGguCi0rCi0rVGhlbiwgQ09NTUFORCBpcyBleGVjdXRlZCwg d2l0aCBBUkdTIGFzIGFyZ3VtZW50cy4iCi0rICAgICAgICA7OwotKwotKyAgICAgIGZpbmlzaCkK LSsgICAgICAgICRFQ0hPIFwKLSsiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9 ZmluaXNoIFtMSUJESVJdLi4uCi0rCi0rQ29tcGxldGUgdGhlIGluc3RhbGxhdGlvbiBvZiBsaWJ0 b29sIGxpYnJhcmllcy4KLSsKLStFYWNoIExJQkRJUiBpcyBhIGRpcmVjdG9yeSB0aGF0IGNvbnRh aW5zIGxpYnRvb2wgbGlicmFyaWVzLgotKwotK1RoZSBjb21tYW5kcyB0aGF0IHRoaXMgbW9kZSBl eGVjdXRlcyBtYXkgcmVxdWlyZSBzdXBlcnVzZXIgcHJpdmlsZWdlcy4gIFVzZQotK3RoZSBcYC0t ZHJ5LXJ1bicgb3B0aW9uIGlmIHlvdSBqdXN0IHdhbnQgdG8gc2VlIHdoYXQgd291bGQgYmUgZXhl Y3V0ZWQuIgotKyAgICAgICAgOzsKLSsKLSsgICAgICBpbnN0YWxsKQotKyAgICAgICAgJEVDSE8g XAotKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1pbnN0YWxsIElOU1RBTEwt Q09NTUFORC4uLgotKwotK0luc3RhbGwgZXhlY3V0YWJsZXMgb3IgbGlicmFyaWVzLgotKwotK0lO U1RBTEwtQ09NTUFORCBpcyB0aGUgaW5zdGFsbGF0aW9uIGNvbW1hbmQuICBUaGUgZmlyc3QgY29t cG9uZW50IHNob3VsZCBiZQotK2VpdGhlciB0aGUgXGBpbnN0YWxsJyBvciBcYGNwJyBwcm9ncmFt LgotKwotK1RoZSBmb2xsb3dpbmcgY29tcG9uZW50cyBvZiBJTlNUQUxMLUNPTU1BTkQgYXJlIHRy ZWF0ZWQgc3BlY2lhbGx5OgotKwotKyAgLWluc3QtcHJlZml4IFBSRUZJWC1ESVIgIFVzZSBQUkVG SVgtRElSIGFzIGEgc3RhZ2luZyBhcmVhIGZvciBpbnN0YWxsYXRpb24KLSsKLStUaGUgcmVzdCBv ZiB0aGUgY29tcG9uZW50cyBhcmUgaW50ZXJwcmV0ZWQgYXMgYXJndW1lbnRzIHRvIHRoYXQgY29t bWFuZCAob25seQotK0JTRC1jb21wYXRpYmxlIGluc3RhbGwgb3B0aW9ucyBhcmUgcmVjb2duaXpl ZCkuIgotKyAgICAgICAgOzsKLSsKLSsgICAgICBsaW5rKQotKyAgICAgICAgJEVDSE8gXAotKyJV c2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1saW5rIExJTkstQ09NTUFORC4uLgot KwotK0xpbmsgb2JqZWN0IGZpbGVzIG9yIGxpYnJhcmllcyB0b2dldGhlciB0byBmb3JtIGFub3Ro ZXIgbGlicmFyeSwgb3IgdG8KLStjcmVhdGUgYW4gZXhlY3V0YWJsZSBwcm9ncmFtLgotKwotK0xJ TkstQ09NTUFORCBpcyBhIGNvbW1hbmQgdXNpbmcgdGhlIEMgY29tcGlsZXIgdGhhdCB5b3Ugd291 bGQgdXNlIHRvIGNyZWF0ZQotK2EgcHJvZ3JhbSBmcm9tIHNldmVyYWwgb2JqZWN0IGZpbGVzLgot KwotK1RoZSBmb2xsb3dpbmcgY29tcG9uZW50cyBvZiBMSU5LLUNPTU1BTkQgYXJlIHRyZWF0ZWQg c3BlY2lhbGx5OgotKwotKyAgLWFsbC1zdGF0aWMgICAgICAgZG8gbm90IGRvIGFueSBkeW5hbWlj IGxpbmtpbmcgYXQgYWxsCi0rICAtYXZvaWQtdmVyc2lvbiAgICBkbyBub3QgYWRkIGEgdmVyc2lv biBzdWZmaXggaWYgcG9zc2libGUKLSsgIC1kbG9wZW4gRklMRSAgICAgIFxgLWRscHJlb3Blbicg RklMRSBpZiBpdCBjYW5ub3QgYmUgZGxvcGVuZWQgYXQgcnVudGltZQotKyAgLWRscHJlb3BlbiBG SUxFICAgbGluayBpbiBGSUxFIGFuZCBhZGQgaXRzIHN5bWJvbHMgdG8gbHRfcHJlbG9hZGVkX3N5 bWJvbHMKLSsgIC1leHBvcnQtZHluYW1pYyAgIGFsbG93IHN5bWJvbHMgZnJvbSBPVVRQVVQtRklM RSB0byBiZSByZXNvbHZlZCB3aXRoIGRsc3ltKDMpCi0rICAtZXhwb3J0LXN5bWJvbHMgU1lNRklM RQotKyAgICAgICAgICAgICAgICAgICAgdHJ5IHRvIGV4cG9ydCBvbmx5IHRoZSBzeW1ib2xzIGxp c3RlZCBpbiBTWU1GSUxFCi0rICAtZXhwb3J0LXN5bWJvbHMtcmVnZXggUkVHRVgKLSsgICAgICAg ICAgICAgICAgICAgIHRyeSB0byBleHBvcnQgb25seSB0aGUgc3ltYm9scyBtYXRjaGluZyBSRUdF WAotKyAgLUxMSUJESVIgICAgICAgICAgc2VhcmNoIExJQkRJUiBmb3IgcmVxdWlyZWQgaW5zdGFs bGVkIGxpYnJhcmllcwotKyAgLWxOQU1FICAgICAgICAgICAgT1VUUFVULUZJTEUgcmVxdWlyZXMg dGhlIGluc3RhbGxlZCBsaWJyYXJ5IGxpYk5BTUUKLSsgIC1tb2R1bGUgICAgICAgICAgIGJ1aWxk IGEgbGlicmFyeSB0aGF0IGNhbiBkbG9wZW5lZAotKyAgLW5vLWZhc3QtaW5zdGFsbCAgZGlzYWJs ZSB0aGUgZmFzdC1pbnN0YWxsIG1vZGUKLSsgIC1uby1pbnN0YWxsICAgICAgIGxpbmsgYSBub3Qt aW5zdGFsbGFibGUgZXhlY3V0YWJsZQotKyAgLW5vLXVuZGVmaW5lZCAgICAgZGVjbGFyZSB0aGF0 IGEgbGlicmFyeSBkb2VzIG5vdCByZWZlciB0byBleHRlcm5hbCBzeW1ib2xzCi0rICAtbyBPVVRQ VVQtRklMRSAgICBjcmVhdGUgT1VUUFVULUZJTEUgZnJvbSB0aGUgc3BlY2lmaWVkIG9iamVjdHMK LSsgIC1vYmplY3RsaXN0IEZJTEUgIFVzZSBhIGxpc3Qgb2Ygb2JqZWN0IGZpbGVzIGZvdW5kIGlu IEZJTEUgdG8gc3BlY2lmeSBvYmplY3RzCi0rICAtcHJlY2lvdXMtZmlsZXMtcmVnZXggUkVHRVgK LSsgICAgICAgICAgICAgICAgICAgIGRvbid0IHJlbW92ZSBvdXRwdXQgZmlsZXMgbWF0Y2hpbmcg UkVHRVgKLSsgIC1yZWxlYXNlIFJFTEVBU0UgIHNwZWNpZnkgcGFja2FnZSByZWxlYXNlIGluZm9y bWF0aW9uCi0rICAtcnBhdGggTElCRElSICAgICB0aGUgY3JlYXRlZCBsaWJyYXJ5IHdpbGwgZXZl bnR1YWxseSBiZSBpbnN0YWxsZWQgaW4gTElCRElSCi0rICAtUlsgXUxJQkRJUiAgICAgICBhZGQg TElCRElSIHRvIHRoZSBydW50aW1lIHBhdGggb2YgcHJvZ3JhbXMgYW5kIGxpYnJhcmllcwotKyAg LXNoYXJlZCAgICAgICAgICAgb25seSBkbyBkeW5hbWljIGxpbmtpbmcgb2YgbGlidG9vbCBsaWJy YXJpZXMKLSsgIC1zaHJleHQgU1VGRklYICAgIG92ZXJyaWRlIHRoZSBzdGFuZGFyZCBzaGFyZWQg bGlicmFyeSBmaWxlIGV4dGVuc2lvbgotKyAgLXN0YXRpYyAgICAgICAgICAgZG8gbm90IGRvIGFu eSBkeW5hbWljIGxpbmtpbmcgb2YgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKLSsgIC1z dGF0aWMtbGlidG9vbC1saWJzCi0rICAgICAgICAgICAgICAgICAgICBkbyBub3QgZG8gYW55IGR5 bmFtaWMgbGlua2luZyBvZiBsaWJ0b29sIGxpYnJhcmllcwotKyAgLXZlcnNpb24taW5mbyBDVVJS RU5UWzpSRVZJU0lPTls6QUdFXV0KLSsgICAgICAgICAgICAgICAgICAgIHNwZWNpZnkgbGlicmFy eSB2ZXJzaW9uIGluZm8gW2VhY2ggdmFyaWFibGUgZGVmYXVsdHMgdG8gMF0KLSsgIC13ZWFrIExJ Qk5BTUUgICAgIGRlY2xhcmUgdGhhdCB0aGUgdGFyZ2V0IHByb3ZpZGVzIHRoZSBMSUJOQU1FIGlu dGVyZmFjZQotKwotK0FsbCBvdGhlciBvcHRpb25zIChhcmd1bWVudHMgYmVnaW5uaW5nIHdpdGgg XGAtJykgYXJlIGlnbm9yZWQuCi0rCi0rRXZlcnkgb3RoZXIgYXJndW1lbnQgaXMgdHJlYXRlZCBh cyBhIGZpbGVuYW1lLiAgRmlsZXMgZW5kaW5nIGluIFxgLmxhJyBhcmUKLSt0cmVhdGVkIGFzIHVu aW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzLCBvdGhlciBmaWxlcyBhcmUgc3RhbmRhcmQgb3Ig bGlicmFyeQotK29iamVjdCBmaWxlcy4KLSsKLStJZiB0aGUgT1VUUFVULUZJTEUgZW5kcyBpbiBc YC5sYScsIHRoZW4gYSBsaWJ0b29sIGxpYnJhcnkgaXMgY3JlYXRlZCwKLStvbmx5IGxpYnJhcnkg b2JqZWN0cyAoXGAubG8nIGZpbGVzKSBtYXkgYmUgc3BlY2lmaWVkLCBhbmQgXGAtcnBhdGgnIGlz Ci0rcmVxdWlyZWQsIGV4Y2VwdCB3aGVuIGNyZWF0aW5nIGEgY29udmVuaWVuY2UgbGlicmFyeS4K LSsKLStJZiBPVVRQVVQtRklMRSBlbmRzIGluIFxgLmEnIG9yIFxgLmxpYicsIHRoZW4gYSBzdGFu ZGFyZCBsaWJyYXJ5IGlzIGNyZWF0ZWQKLSt1c2luZyBcYGFyJyBhbmQgXGByYW5saWInLCBvciBv biBXaW5kb3dzIHVzaW5nIFxgbGliJy4KLSsKLStJZiBPVVRQVVQtRklMRSBlbmRzIGluIFxgLmxv JyBvciBcYC4ke29iamV4dH0nLCB0aGVuIGEgcmVsb2FkYWJsZSBvYmplY3QgZmlsZQotK2lzIGNy ZWF0ZWQsIG90aGVyd2lzZSBhbiBleGVjdXRhYmxlIHByb2dyYW0gaXMgY3JlYXRlZC4iCi0rICAg ICAgICA7OwotKwotKyAgICAgIHVuaW5zdGFsbCkKLSsgICAgICAgICRFQ0hPIFwKLSsiVXNhZ2U6 ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9dW5pbnN0YWxsIFJNIFtSTS1PUFRJT05dLi4u IEZJTEUuLi4KLSsKLStSZW1vdmUgbGlicmFyaWVzIGZyb20gYW4gaW5zdGFsbGF0aW9uIGRpcmVj dG9yeS4KLSsKLStSTSBpcyB0aGUgbmFtZSBvZiB0aGUgcHJvZ3JhbSB0byB1c2UgdG8gZGVsZXRl IGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIEZJTEUKLSsodHlwaWNhbGx5IFxgL2Jpbi9ybScp LiAgUk0tT1BUSU9OUyBhcmUgb3B0aW9ucyAoc3VjaCBhcyBcYC1mJykgdG8gYmUgcGFzc2VkCi0r dG8gUk0uCi0rCi0rSWYgRklMRSBpcyBhIGxpYnRvb2wgbGlicmFyeSwgYWxsIHRoZSBmaWxlcyBh c3NvY2lhdGVkIHdpdGggaXQgYXJlIGRlbGV0ZWQuCi0rT3RoZXJ3aXNlLCBvbmx5IEZJTEUgaXRz ZWxmIGlzIGRlbGV0ZWQgdXNpbmcgUk0uIgotKyAgICAgICAgOzsKLSsKLSsgICAgICAqKQotKyAg ICAgICAgZnVuY19mYXRhbF9oZWxwICJpbnZhbGlkIG9wZXJhdGlvbiBtb2RlIFxgJG1vZGUnIgot KyAgICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICAkRUNITwotKyAgICAkRUNITyAiVHJ5IFxg JHByb2duYW1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgb3RoZXIgbW9kZXMu IgotKwotKyAgICBleGl0ICQ/Ci0rfQotKwotKyAgIyBOb3cgdGhhdCB3ZSd2ZSBjb2xsZWN0ZWQg YSBwb3NzaWJsZSAtLW1vZGUgYXJnLCBzaG93IGhlbHAgaWYgbmVjZXNzYXJ5Ci0rICAkb3B0X2hl bHAgJiYgZnVuY19tb2RlX2hlbHAKLSsKLSsKLSsjIGZ1bmNfbW9kZV9leGVjdXRlIGFyZy4uLgot K2Z1bmNfbW9kZV9leGVjdXRlICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rICAgICMgVGhlIGZp cnN0IGFyZ3VtZW50IGlzIHRoZSBjb21tYW5kIG5hbWUuCi0rICAgIGNtZD0iJG5vbm9wdCIKLSsg ICAgdGVzdCAteiAiJGNtZCIgJiYgXAotKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qg c3BlY2lmeSBhIENPTU1BTkQiCi0rCi0rICAgICMgSGFuZGxlIC1kbG9wZW4gZmxhZ3MgaW1tZWRp YXRlbHkuCi0rICAgIGZvciBmaWxlIGluICRleGVjdXRlX2RsZmlsZXM7IGRvCi0rICAgICAgdGVz dCAtZiAiJGZpbGUiIFwKLSsJfHwgZnVuY19mYXRhbF9oZWxwICJcYCRmaWxlJyBpcyBub3QgYSBm aWxlIgotKwotKyAgICAgIGRpcj0KLSsgICAgICBjYXNlICRmaWxlIGluCi0rICAgICAgKi5sYSkK LSsJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wgYXJjaGl2ZS4K LSsJZnVuY19sYWxpYl91bnNhZmVfcCAiJGZpbGUiIFwKLSsJICB8fCBmdW5jX2ZhdGFsX2hlbHAg IlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgotKwotKwkjIFJlYWQgdGhl IGxpYnRvb2wgbGlicmFyeS4KLSsJZGxuYW1lPQotKwlsaWJyYXJ5X25hbWVzPQotKwlmdW5jX3Nv dXJjZSAiJGZpbGUiCi0rCi0rCSMgU2tpcCB0aGlzIGxpYnJhcnkgaWYgaXQgY2Fubm90IGJlIGRs b3BlbmVkLgotKwlpZiB0ZXN0IC16ICIkZGxuYW1lIjsgdGhlbgotKwkgICMgV2FybiBpZiBpdCB3 YXMgYSBzaGFyZWQgbGlicmFyeS4KLSsJICB0ZXN0IC1uICIkbGlicmFyeV9uYW1lcyIgJiYgXAot KwkgICAgZnVuY193YXJuaW5nICJcYCRmaWxlJyB3YXMgbm90IGxpbmtlZCB3aXRoIFxgLWV4cG9y dC1keW5hbWljJyIKLSsJICBjb250aW51ZQotKwlmaQotKwotKwlmdW5jX2Rpcm5hbWUgIiRmaWxl IiAiIiAiLiIKLSsJZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKLSsKLSsJaWYgdGVzdCAtZiAi JGRpci8kb2JqZGlyLyRkbG5hbWUiOyB0aGVuCi0rCSAgZGlyPSIkZGlyLyRvYmpkaXIiCi0rCWVs c2UKLSsJICBpZiB0ZXN0ICEgLWYgIiRkaXIvJGRsbmFtZSI7IHRoZW4KLSsJICAgIGZ1bmNfZmF0 YWxfZXJyb3IgImNhbm5vdCBmaW5kIFxgJGRsbmFtZScgaW4gXGAkZGlyJyBvciBcYCRkaXIvJG9i amRpciciCi0rCSAgZmkKLSsJZmkKLSsJOzsKLSsKLSsgICAgICAqLmxvKQotKwkjIEp1c3QgYWRk IHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgLmxvIGZpbGUuCi0rCWZ1bmNfZGlybmFtZSAi JGZpbGUiICIiICIuIgotKwlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKwk7OwotKwotKyAg ICAgICopCi0rCWZ1bmNfd2FybmluZyAiXGAtZGxvcGVuJyBpcyBpZ25vcmVkIGZvciBub24tbGli dG9vbCBsaWJyYXJpZXMgYW5kIG9iamVjdHMiCi0rCWNvbnRpbnVlCi0rCTs7Ci0rICAgICAgZXNh YwotKwotKyAgICAgICMgR2V0IHRoZSBhYnNvbHV0ZSBwYXRobmFtZS4KLSsgICAgICBhYnNkaXI9 YGNkICIkZGlyIiAmJiBwd2RgCi0rICAgICAgdGVzdCAtbiAiJGFic2RpciIgJiYgZGlyPSIkYWJz ZGlyIgotKwotKyAgICAgICMgTm93IGFkZCB0aGUgZGlyZWN0b3J5IHRvIHNobGlicGF0aF92YXIu Ci0rICAgICAgaWYgZXZhbCAidGVzdCAteiBcIlwkJHNobGlicGF0aF92YXJcIiI7IHRoZW4KLSsJ ZXZhbCAiJHNobGlicGF0aF92YXI9XCJcJGRpclwiIgotKyAgICAgIGVsc2UKLSsJZXZhbCAiJHNo bGlicGF0aF92YXI9XCJcJGRpcjpcJCRzaGxpYnBhdGhfdmFyXCIiCi0rICAgICAgZmkKLSsgICAg ZG9uZQotKwotKyAgICAjIFRoaXMgdmFyaWFibGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3Qg dG8gc2V0IHNobGlicGF0aF92YXIKLSsgICAgIyByYXRoZXIgdGhhbiBydW5uaW5nIHRoZWlyIHBy b2dyYW1zLgotKyAgICBsaWJ0b29sX2V4ZWN1dGVfbWFnaWM9IiRtYWdpYyIKLSsKLSsgICAgIyBD aGVjayBpZiBhbnkgb2YgdGhlIGFyZ3VtZW50cyBpcyBhIHdyYXBwZXIgc2NyaXB0LgotKyAgICBh cmdzPQotKyAgICBmb3IgZmlsZQotKyAgICBkbwotKyAgICAgIGNhc2UgJGZpbGUgaW4KLSsgICAg ICAtKikgOzsKLSsgICAgICAqKQotKwkjIERvIGEgdGVzdCB0byBzZWUgaWYgdGhpcyBpcyByZWFs bHkgYSBsaWJ0b29sIHByb2dyYW0uCi0rCWlmIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkZmls ZSI7IHRoZW4KLSsJICBmdW5jX3NvdXJjZSAiJGZpbGUiCi0rCSAgIyBUcmFuc2Zvcm0gYXJnIHRv IHdyYXBwZWQgbmFtZS4KLSsJICBmaWxlPSIkcHJvZ2Rpci8kcHJvZ3JhbSIKLSsJZWxpZiBmdW5j X2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgIiRmaWxlIjsgdGhlbgotKwkgIGZ1bmNfbHR3cmFwcGVy X3NjcmlwdG5hbWUgIiRmaWxlIgotKwkgIGZ1bmNfc291cmNlICIkZnVuY19sdHdyYXBwZXJfc2Ny aXB0bmFtZV9yZXN1bHQiCi0rCSAgIyBUcmFuc2Zvcm0gYXJnIHRvIHdyYXBwZWQgbmFtZS4KLSsJ ICBmaWxlPSIkcHJvZ2Rpci8kcHJvZ3JhbSIKLSsJZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rICAg ICAgIyBRdW90ZSBhcmd1bWVudHMgKHRvIHByZXNlcnZlIHNoZWxsIG1ldGFjaGFyYWN0ZXJzKS4K LSsgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkZmlsZSIKLSsgICAgICBhcmdzPSIkYXJncyAk ZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0rICAgIGRvbmUKLSsKLSsgICAgaWYgdGVzdCAi WCRvcHRfZHJ5X3J1biIgPSBYZmFsc2U7IHRoZW4KLSsgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJw YXRoX3ZhciI7IHRoZW4KLSsJIyBFeHBvcnQgdGhlIHNobGlicGF0aF92YXIuCi0rCWV2YWwgImV4 cG9ydCAkc2hsaWJwYXRoX3ZhciIKLSsgICAgICBmaQotKwotKyAgICAgICMgUmVzdG9yZSBzYXZl ZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMKLSsgICAgICBmb3IgbHRfdmFyIGluIExBTkcgTEFOR1VB R0UgTENfQUxMIExDX0NUWVBFIExDX0NPTExBVEUgTENfTUVTU0FHRVMKLSsgICAgICBkbwotKwll dmFsICJpZiB0ZXN0IFwiXCR7c2F2ZV8kbHRfdmFyK3NldH1cIiA9IHNldDsgdGhlbgotKyAgICAg ICAgICAgICAgICAkbHRfdmFyPVwkc2F2ZV8kbHRfdmFyOyBleHBvcnQgJGx0X3ZhcgotKwkgICAg ICBlbHNlCi0rCQkkbHRfdW5zZXQgJGx0X3ZhcgotKwkgICAgICBmaSIKLSsgICAgICBkb25lCi0r Ci0rICAgICAgIyBOb3cgcHJlcGFyZSB0byBhY3R1YWxseSBleGVjIHRoZSBjb21tYW5kLgotKyAg ICAgIGV4ZWNfY21kPSJcJGNtZCRhcmdzIgotKyAgICBlbHNlCi0rICAgICAgIyBEaXNwbGF5IHdo YXQgd291bGQgYmUgZG9uZS4KLSsgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRo ZW4KLSsJZXZhbCAiXCRFQ0hPIFwiXCRzaGxpYnBhdGhfdmFyPVwkJHNobGlicGF0aF92YXJcIiIK LSsJJEVDSE8gImV4cG9ydCAkc2hsaWJwYXRoX3ZhciIKLSsgICAgICBmaQotKyAgICAgICRFQ0hP ICIkY21kJGFyZ3MiCi0rICAgICAgZXhpdCAkRVhJVF9TVUNDRVNTCi0rICAgIGZpCi0rfQotKwot K3Rlc3QgIiRtb2RlIiA9IGV4ZWN1dGUgJiYgZnVuY19tb2RlX2V4ZWN1dGUgJHsxKyIkQCJ9Ci0r Ci0rCi0rIyBmdW5jX21vZGVfZmluaXNoIGFyZy4uLgotK2Z1bmNfbW9kZV9maW5pc2ggKCkKLSt7 Ci0rICAgICRvcHRfZGVidWcKLSsgICAgbGliZGlycz0iJG5vbm9wdCIKLSsgICAgYWRtaW5jbWRz PQotKwotKyAgICBpZiB0ZXN0IC1uICIkZmluaXNoX2NtZHMkZmluaXNoX2V2YWwiICYmIHRlc3Qg LW4gIiRsaWJkaXJzIjsgdGhlbgotKyAgICAgIGZvciBkaXIKLSsgICAgICBkbwotKwlsaWJkaXJz PSIkbGliZGlycyAkZGlyIgotKyAgICAgIGRvbmUKLSsKLSsgICAgICBmb3IgbGliZGlyIGluICRs aWJkaXJzOyBkbwotKwlpZiB0ZXN0IC1uICIkZmluaXNoX2NtZHMiOyB0aGVuCi0rCSAgIyBEbyBl YWNoIGNvbW1hbmQgaW4gdGhlIGZpbmlzaCBjb21tYW5kcy4KLSsJICBmdW5jX2V4ZWN1dGVfY21k cyAiJGZpbmlzaF9jbWRzIiAnYWRtaW5jbWRzPSIkYWRtaW5jbWRzCi0rJyIkY21kIiciJwotKwlm aQotKwlpZiB0ZXN0IC1uICIkZmluaXNoX2V2YWwiOyB0aGVuCi0rCSAgIyBEbyB0aGUgc2luZ2xl IGZpbmlzaF9ldmFsLgotKwkgIGV2YWwgY21kcz1cIiRmaW5pc2hfZXZhbFwiCi0rCSAgJG9wdF9k cnlfcnVuIHx8IGV2YWwgIiRjbWRzIiB8fCBhZG1pbmNtZHM9IiRhZG1pbmNtZHMKLSsgICAgICAg JGNtZHMiCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICBmaQotKwotKyAgICAjIEV4aXQgaGVyZSBp ZiB0aGV5IHdhbnRlZCBzaWxlbnQgbW9kZS4KLSsgICAgJG9wdF9zaWxlbnQgJiYgZXhpdCAkRVhJ VF9TVUNDRVNTCi0rCi0rICAgICRFQ0hPICJYLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgfCAkWHNlZAotKyAgICAk RUNITyAiTGlicmFyaWVzIGhhdmUgYmVlbiBpbnN0YWxsZWQgaW46IgotKyAgICBmb3IgbGliZGly IGluICRsaWJkaXJzOyBkbwotKyAgICAgICRFQ0hPICIgICAkbGliZGlyIgotKyAgICBkb25lCi0r ICAgICRFQ0hPCi0rICAgICRFQ0hPICJJZiB5b3UgZXZlciBoYXBwZW4gdG8gd2FudCB0byBsaW5r IGFnYWluc3QgaW5zdGFsbGVkIGxpYnJhcmllcyIKLSsgICAgJEVDSE8gImluIGEgZ2l2ZW4gZGly ZWN0b3J5LCBMSUJESVIsIHlvdSBtdXN0IGVpdGhlciB1c2UgbGlidG9vbCwgYW5kIgotKyAgICAk RUNITyAic3BlY2lmeSB0aGUgZnVsbCBwYXRobmFtZSBvZiB0aGUgbGlicmFyeSwgb3IgdXNlIHRo ZSBcYC1MTElCRElSJyIKLSsgICAgJEVDSE8gImZsYWcgZHVyaW5nIGxpbmtpbmcgYW5kIGRvIGF0 IGxlYXN0IG9uZSBvZiB0aGUgZm9sbG93aW5nOiIKLSsgICAgaWYgdGVzdCAtbiAiJHNobGlicGF0 aF92YXIiOyB0aGVuCi0rICAgICAgJEVDSE8gIiAgIC0gYWRkIExJQkRJUiB0byB0aGUgXGAkc2hs aWJwYXRoX3ZhcicgZW52aXJvbm1lbnQgdmFyaWFibGUiCi0rICAgICAgJEVDSE8gIiAgICAgZHVy aW5nIGV4ZWN1dGlvbiIKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsg dGhlbgotKyAgICAgICRFQ0hPICIgICAtIGFkZCBMSUJESVIgdG8gdGhlIFxgJHJ1bnBhdGhfdmFy JyBlbnZpcm9ubWVudCB2YXJpYWJsZSIKLSsgICAgICAkRUNITyAiICAgICBkdXJpbmcgbGlua2lu ZyIKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMi OyB0aGVuCi0rICAgICAgbGliZGlyPUxJQkRJUgotKyAgICAgIGV2YWwgZmxhZz1cIiRoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjXCIKLSsKLSsgICAgICAkRUNITyAiICAgLSB1c2UgdGhlIFxgJGZs YWcnIGxpbmtlciBmbGFnIgotKyAgICBmaQotKyAgICBpZiB0ZXN0IC1uICIkYWRtaW5jbWRzIjsg dGhlbgotKyAgICAgICRFQ0hPICIgICAtIGhhdmUgeW91ciBzeXN0ZW0gYWRtaW5pc3RyYXRvciBy dW4gdGhlc2UgY29tbWFuZHM6JGFkbWluY21kcyIKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAtZiAv ZXRjL2xkLnNvLmNvbmY7IHRoZW4KLSsgICAgICAkRUNITyAiICAgLSBoYXZlIHlvdXIgc3lzdGVt IGFkbWluaXN0cmF0b3IgYWRkIExJQkRJUiB0byBcYC9ldGMvbGQuc28uY29uZiciCi0rICAgIGZp Ci0rICAgICRFQ0hPCi0rCi0rICAgICRFQ0hPICJTZWUgYW55IG9wZXJhdGluZyBzeXN0ZW0gZG9j dW1lbnRhdGlvbiBhYm91dCBzaGFyZWQgbGlicmFyaWVzIGZvciIKLSsgICAgY2FzZSAkaG9zdCBp bgotKyAgICAgIHNvbGFyaXMyLls2Nzg5XXxzb2xhcmlzMi4xWzAtOV0pCi0rICAgICAgICAkRUNI TyAibW9yZSBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgbGQoMSksIGNybGUoMSkgYW5kIGxkLnNv KDgpIG1hbnVhbCIKLSsJJEVDSE8gInBhZ2VzLiIKLSsJOzsKLSsgICAgICAqKQotKyAgICAgICAg JEVDSE8gIm1vcmUgaW5mb3JtYXRpb24sIHN1Y2ggYXMgdGhlIGxkKDEpIGFuZCBsZC5zbyg4KSBt YW51YWwgcGFnZXMuIgotKyAgICAgICAgOzsKLSsgICAgZXNhYwotKyAgICAkRUNITyAiWC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0iIHwgJFhzZWQKLSsgICAgZXhpdCAkRVhJVF9TVUNDRVNTCi0rfQotKwotK3Rlc3Qg IiRtb2RlIiA9IGZpbmlzaCAmJiBmdW5jX21vZGVfZmluaXNoICR7MSsiJEAifQotKwotKwotKyMg ZnVuY19tb2RlX2luc3RhbGwgYXJnLi4uCi0rZnVuY19tb2RlX2luc3RhbGwgKCkKLSt7Ci0rICAg ICRvcHRfZGVidWcKLSsgICAgIyBUaGVyZSBtYXkgYmUgYW4gb3B0aW9uYWwgc2goMSkgYXJndW1l bnQgYXQgdGhlIGJlZ2lubmluZyBvZgotKyAgICAjIGluc3RhbGxfcHJvZyAoZXNwZWNpYWxseSBv biBXaW5kb3dzIE5UKS4KLSsgICAgaWYgdGVzdCAiJG5vbm9wdCIgPSAiJFNIRUxMIiB8fCB0ZXN0 ICIkbm9ub3B0IiA9IC9iaW4vc2ggfHwKLSsgICAgICAgIyBBbGxvdyB0aGUgdXNlIG9mIEdOVSBz aHRvb2wncyBpbnN0YWxsIGNvbW1hbmQuCi0rICAgICAgICRFQ0hPICJYJG5vbm9wdCIgfCAkR1JF UCBzaHRvb2wgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICMgQWVzdGhldGljYWxseSBxdW90ZSBp dC4KLSsgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkbm9ub3B0IgotKyAgICAgIGluc3RhbGxf cHJvZz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0ICIKLSsgICAgICBhcmc9JDEKLSsgICAg ICBzaGlmdAotKyAgICBlbHNlCi0rICAgICAgaW5zdGFsbF9wcm9nPQotKyAgICAgIGFyZz0kbm9u b3B0Ci0rICAgIGZpCi0rCi0rICAgICMgVGhlIHJlYWwgZmlyc3QgYXJndW1lbnQgc2hvdWxkIGJl IHRoZSBuYW1lIG9mIHRoZSBpbnN0YWxsYXRpb24gcHJvZ3JhbS4KLSsgICAgIyBBZXN0aGV0aWNh bGx5IHF1b3RlIGl0LgotKyAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgotKyAgICBpbnN0 YWxsX3Byb2c9IiRpbnN0YWxsX3Byb2ckZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0rCi0r ICAgICMgV2UgbmVlZCB0byBhY2NlcHQgYXQgbGVhc3QgYWxsIHRoZSBCU0QgaW5zdGFsbCBmbGFn cy4KLSsgICAgZGVzdD0KLSsgICAgZmlsZXM9Ci0rICAgIG9wdHM9Ci0rICAgIHByZXY9Ci0rICAg IGluc3RhbGxfdHlwZT0KLSsgICAgaXNkaXI9bm8KLSsgICAgc3RyaXBtZT0KLSsgICAgZm9yIGFy ZwotKyAgICBkbwotKyAgICAgIGlmIHRlc3QgLW4gIiRkZXN0IjsgdGhlbgotKwlmaWxlcz0iJGZp bGVzICRkZXN0IgotKwlkZXN0PSRhcmcKLSsJY29udGludWUKLSsgICAgICBmaQotKwotKyAgICAg IGNhc2UgJGFyZyBpbgotKyAgICAgIC1kKSBpc2Rpcj15ZXMgOzsKLSsgICAgICAtZikKLSsJY2Fz ZSAiICRpbnN0YWxsX3Byb2cgIiBpbgotKwkqW1xcXCAvXWNwXCAqKSA7OwotKwkqKSBwcmV2PSRh cmcgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIC1nIHwgLW0gfCAtbykKLSsJcHJldj0kYXJnCi0r CTs7Ci0rICAgICAgLXMpCi0rCXN0cmlwbWU9IiAtcyIKLSsJY29udGludWUKLSsJOzsKLSsgICAg ICAtKikKLSsJOzsKLSsgICAgICAqKQotKwkjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZGVk IGFuIGFyZ3VtZW50LCB0aGVuIHNraXAgaXQuCi0rCWlmIHRlc3QgLW4gIiRwcmV2IjsgdGhlbgot KwkgIHByZXY9Ci0rCWVsc2UKLSsJICBkZXN0PSRhcmcKLSsJICBjb250aW51ZQotKwlmaQotKwk7 OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgdGhlIGFyZ3Vt ZW50LgotKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCi0rICAgICAgaW5zdGFsbF9w cm9nPSIkaW5zdGFsbF9wcm9nICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsgICAgZG9u ZQotKwotKyAgICB0ZXN0IC16ICIkaW5zdGFsbF9wcm9nIiAmJiBcCi0rICAgICAgZnVuY19mYXRh bF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGFuIGluc3RhbGwgcHJvZ3JhbSIKLSsKLSsgICAgdGVz dCAtbiAiJHByZXYiICYmIFwKLSsgICAgICBmdW5jX2ZhdGFsX2hlbHAgInRoZSBcYCRwcmV2JyBv cHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQiCi0rCi0rICAgIGlmIHRlc3QgLXogIiRmaWxlcyI7 IHRoZW4KLSsgICAgICBpZiB0ZXN0IC16ICIkZGVzdCI7IHRoZW4KLSsJZnVuY19mYXRhbF9oZWxw ICJubyBmaWxlIG9yIGRlc3RpbmF0aW9uIHNwZWNpZmllZCIKLSsgICAgICBlbHNlCi0rCWZ1bmNf ZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhIGRlc3RpbmF0aW9uIgotKyAgICAgIGZpCi0r ICAgIGZpCi0rCi0rICAgICMgU3RyaXAgYW55IHRyYWlsaW5nIHNsYXNoIGZyb20gdGhlIGRlc3Rp bmF0aW9uLgotKyAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLycgIiRkZXN0IgotKyAgICBkZXN0PSRm dW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsKLSsgICAgIyBDaGVjayB0byBzZWUgdGhhdCB0aGUgZGVz dGluYXRpb24gaXMgYSBkaXJlY3RvcnkuCi0rICAgIHRlc3QgLWQgIiRkZXN0IiAmJiBpc2Rpcj15 ZXMKLSsgICAgaWYgdGVzdCAiJGlzZGlyIiA9IHllczsgdGhlbgotKyAgICAgIGRlc3RkaXI9IiRk ZXN0IgotKyAgICAgIGRlc3RuYW1lPQotKyAgICBlbHNlCi0rICAgICAgZnVuY19kaXJuYW1lX2Fu ZF9iYXNlbmFtZSAiJGRlc3QiICIiICIuIgotKyAgICAgIGRlc3RkaXI9IiRmdW5jX2Rpcm5hbWVf cmVzdWx0IgotKyAgICAgIGRlc3RuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rCi0rICAg ICAgIyBOb3QgYSBkaXJlY3RvcnksIHNvIGNoZWNrIHRvIHNlZSB0aGF0IHRoZXJlIGlzIG9ubHkg b25lIGZpbGUgc3BlY2lmaWVkLgotKyAgICAgIHNldCBkdW1teSAkZmlsZXM7IHNoaWZ0Ci0rICAg ICAgdGVzdCAiJCMiIC1ndCAxICYmIFwKLSsJZnVuY19mYXRhbF9oZWxwICJcYCRkZXN0JyBpcyBu b3QgYSBkaXJlY3RvcnkiCi0rICAgIGZpCi0rICAgIGNhc2UgJGRlc3RkaXIgaW4KLSsgICAgW1xc L10qIHwgW0EtWmEtel06W1xcL10qKSA7OwotKyAgICAqKQotKyAgICAgIGZvciBmaWxlIGluICRm aWxlczsgZG8KLSsJY2FzZSAkZmlsZSBpbgotKwkqLmxvKSA7OwotKwkqKQotKwkgIGZ1bmNfZmF0 YWxfaGVscCAiXGAkZGVzdGRpcicgbXVzdCBiZSBhbiBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSIK LSsJICA7OwotKwllc2FjCi0rICAgICAgZG9uZQotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsg ICAgIyBUaGlzIHZhcmlhYmxlIHRlbGxzIHdyYXBwZXIgc2NyaXB0cyBqdXN0IHRvIHNldCB2YXJp YWJsZXMgcmF0aGVyCi0rICAgICMgdGhhbiBydW5uaW5nIHRoZWlyIHByb2dyYW1zLgotKyAgICBs aWJ0b29sX2luc3RhbGxfbWFnaWM9IiRtYWdpYyIKLSsKLSsgICAgc3RhdGljbGlicz0KLSsgICAg ZnV0dXJlX2xpYmRpcnM9Ci0rICAgIGN1cnJlbnRfbGliZGlycz0KLSsgICAgZm9yIGZpbGUgaW4g JGZpbGVzOyBkbwotKwotKyAgICAgICMgRG8gZWFjaCBpbnN0YWxsYXRpb24uCi0rICAgICAgY2Fz ZSAkZmlsZSBpbgotKyAgICAgICouJGxpYmV4dCkKLSsJIyBEbyB0aGUgc3RhdGljIGxpYnJhcmll cyBsYXRlci4KLSsJc3RhdGljbGlicz0iJHN0YXRpY2xpYnMgJGZpbGUiCi0rCTs7Ci0rCi0rICAg ICAgKi5sYSkKLSsJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wg YXJjaGl2ZS4KLSsJZnVuY19sYWxpYl91bnNhZmVfcCAiJGZpbGUiIFwKLSsJICB8fCBmdW5jX2Zh dGFsX2hlbHAgIlxgJGZpbGUnIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKLSsKLSsJ bGlicmFyeV9uYW1lcz0KLSsJb2xkX2xpYnJhcnk9Ci0rCXJlbGlua19jb21tYW5kPQotKwlmdW5j X3NvdXJjZSAiJGZpbGUiCi0rCi0rCSMgQWRkIHRoZSBsaWJkaXIgdG8gY3VycmVudF9saWJkaXJz IGlmIGl0IGlzIHRoZSBkZXN0aW5hdGlvbi4KLSsJaWYgdGVzdCAiWCRkZXN0ZGlyIiA9ICJYJGxp YmRpciI7IHRoZW4KLSsJICBjYXNlICIkY3VycmVudF9saWJkaXJzICIgaW4KLSsJICAqIiAkbGli ZGlyICIqKSA7OwotKwkgICopIGN1cnJlbnRfbGliZGlycz0iJGN1cnJlbnRfbGliZGlycyAkbGli ZGlyIiA7OwotKwkgIGVzYWMKLSsJZWxzZQotKwkgICMgTm90ZSB0aGUgbGliZGlyIGFzIGEgZnV0 dXJlIGxpYmRpci4KLSsJICBjYXNlICIkZnV0dXJlX2xpYmRpcnMgIiBpbgotKwkgICoiICRsaWJk aXIgIiopIDs7Ci0rCSAgKikgZnV0dXJlX2xpYmRpcnM9IiRmdXR1cmVfbGliZGlycyAkbGliZGly IiA7OwotKwkgIGVzYWMKLSsJZmkKLSsKLSsJZnVuY19kaXJuYW1lICIkZmlsZSIgIi8iICIiCi0r CWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0rCWRpcj0iJGRpciRvYmpkaXIiCi0rCi0rCWlm IHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4KLSsJICAjIERldGVybWluZSB0aGUgcHJl Zml4IHRoZSB1c2VyIGhhcyBhcHBsaWVkIHRvIG91ciBmdXR1cmUgZGlyLgotKwkgIGluc3RfcHJl Zml4X2Rpcj1gJEVDSE8gIlgkZGVzdGRpciIgfCAkWHNlZCAtZSAicyUkbGliZGlyXCQlJSJgCi0r Ci0rCSAgIyBEb24ndCBhbGxvdyB0aGUgdXNlciB0byBwbGFjZSB1cyBvdXRzaWRlIG9mIG91ciBl eHBlY3RlZAotKwkgICMgbG9jYXRpb24gYi9jIHRoaXMgcHJldmVudHMgZmluZGluZyBkZXBlbmRl bnQgbGlicmFyaWVzIHRoYXQKLSsJICAjIGFyZSBpbnN0YWxsZWQgdG8gdGhlIHNhbWUgcHJlZml4 LgotKwkgICMgQXQgcHJlc2VudCwgdGhpcyBjaGVjayBkb2Vzbid0IGFmZmVjdCB3aW5kb3dzIC5k bGwncyB0aGF0Ci0rCSAgIyBhcmUgaW5zdGFsbGVkIGludG8gJGxpYmRpci8uLi9iaW4gKGN1cnJl bnRseSwgdGhhdCB3b3JrcyBmaW5lKQotKwkgICMgYnV0IGl0J3Mgc29tZXRoaW5nIHRvIGtlZXAg YW4gZXllIG9uLgotKwkgIHRlc3QgIiRpbnN0X3ByZWZpeF9kaXIiID0gIiRkZXN0ZGlyIiAmJiBc Ci0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJlcnJvcjogY2Fubm90IGluc3RhbGwgXGAkZmlsZScg dG8gYSBkaXJlY3Rvcnkgbm90IGVuZGluZyBpbiAkbGliZGlyIgotKwotKwkgIGlmIHRlc3QgLW4g IiRpbnN0X3ByZWZpeF9kaXIiOyB0aGVuCi0rCSAgICAjIFN0aWNrIHRoZSBpbnN0X3ByZWZpeF9k aXIgZGF0YSBpbnRvIHRoZSBsaW5rIGNvbW1hbmQuCi0rCSAgICByZWxpbmtfY29tbWFuZD1gJEVD SE8gIlgkcmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQGluc3RfcHJlZml4X2RpckAlLWlu c3QtcHJlZml4LWRpciAkaW5zdF9wcmVmaXhfZGlyJSJgCi0rCSAgZWxzZQotKwkgICAgcmVsaW5r X2NvbW1hbmQ9YCRFQ0hPICJYJHJlbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBpbnN0X3By ZWZpeF9kaXJAJSUiYAotKwkgIGZpCi0rCi0rCSAgZnVuY193YXJuaW5nICJyZWxpbmtpbmcgXGAk ZmlsZSciCi0rCSAgZnVuY19zaG93X2V2YWwgIiRyZWxpbmtfY29tbWFuZCIgXAotKwkgICAgJ2Z1 bmNfZmF0YWxfZXJyb3IgImVycm9yOiByZWxpbmsgXGAkZmlsZSdcJycgd2l0aCB0aGUgYWJvdmUg Y29tbWFuZCBiZWZvcmUgaW5zdGFsbGluZyBpdCInCi0rCWZpCi0rCi0rCSMgU2VlIHRoZSBuYW1l cyBvZiB0aGUgc2hhcmVkIGxpYnJhcnkuCi0rCXNldCBkdW1teSAkbGlicmFyeV9uYW1lczsgc2hp ZnQKLSsJaWYgdGVzdCAtbiAiJDEiOyB0aGVuCi0rCSAgcmVhbG5hbWU9IiQxIgotKwkgIHNoaWZ0 Ci0rCi0rCSAgc3JjbmFtZT0iJHJlYWxuYW1lIgotKwkgIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFu ZCIgJiYgc3JjbmFtZT0iJHJlYWxuYW1lIlQKLSsKLSsJICAjIEluc3RhbGwgdGhlIHNoYXJlZCBs aWJyYXJ5IGFuZCBidWlsZCB0aGUgc3ltbGlua3MuCi0rCSAgZnVuY19zaG93X2V2YWwgIiRpbnN0 YWxsX3Byb2cgJGRpci8kc3JjbmFtZSAkZGVzdGRpci8kcmVhbG5hbWUiIFwKLSsJICAgICAgJ2V4 aXQgJD8nCi0rCSAgdHN0cmlwbWU9IiRzdHJpcG1lIgotKwkgIGNhc2UgJGhvc3Rfb3MgaW4KLSsJ ICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rCSAgICBjYXNlICRyZWFsbmFt ZSBpbgotKwkgICAgKi5kbGwuYSkKLSsJICAgICAgdHN0cmlwbWU9IiIKLSsJICAgICAgOzsKLSsJ ICAgIGVzYWMKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIGlmIHRlc3QgLW4gIiR0c3RyaXBtZSIg JiYgdGVzdCAtbiAiJHN0cmlwbGliIjsgdGhlbgotKwkgICAgZnVuY19zaG93X2V2YWwgIiRzdHJp cGxpYiAkZGVzdGRpci8kcmVhbG5hbWUiICdleGl0ICQ/JwotKwkgIGZpCi0rCi0rCSAgaWYgdGVz dCAiJCMiIC1ndCAwOyB0aGVuCi0rCSAgICAjIERlbGV0ZSB0aGUgb2xkIHN5bWxpbmtzLCBhbmQg Y3JlYXRlIG5ldyBvbmVzLgotKwkgICAgIyBUcnkgYGxuIC1zZicgZmlyc3QsIGJlY2F1c2UgdGhl IGBsbicgYmluYXJ5IG1pZ2h0IGRlcGVuZCBvbgotKwkgICAgIyB0aGUgc3ltbGluayB3ZSByZXBs YWNlISAgU29sYXJpcyAvYmluL2xuIGRvZXMgbm90IHVuZGVyc3RhbmQgLWYsCi0rCSAgICAjIHNv IHdlIGFsc28gbmVlZCB0byB0cnkgcm0gJiYgbG4gLXMuCi0rCSAgICBmb3IgbGlua25hbWUKLSsJ ICAgIGRvCi0rCSAgICAgIHRlc3QgIiRsaW5rbmFtZSIgIT0gIiRyZWFsbmFtZSIgXAotKwkJJiYg ZnVuY19zaG93X2V2YWwgIihjZCAkZGVzdGRpciAmJiB7ICRMTl9TIC1mICRyZWFsbmFtZSAkbGlu a25hbWUgfHwgeyAkUk0gJGxpbmtuYW1lICYmICRMTl9TICRyZWFsbmFtZSAkbGlua25hbWU7IH07 IH0pIgotKwkgICAgZG9uZQotKwkgIGZpCi0rCi0rCSAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhl IHBvc3RpbnN0YWxsIGNvbW1hbmRzLgotKwkgIGxpYj0iJGRlc3RkaXIvJHJlYWxuYW1lIgotKwkg IGZ1bmNfZXhlY3V0ZV9jbWRzICIkcG9zdGluc3RhbGxfY21kcyIgJ2V4aXQgJD8nCi0rCWZpCi0r Ci0rCSMgSW5zdGFsbCB0aGUgcHNldWRvLWxpYnJhcnkgZm9yIGluZm9ybWF0aW9uIHB1cnBvc2Vz LgotKwlmdW5jX2Jhc2VuYW1lICIkZmlsZSIKLSsJbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0 IgotKwlpbnN0bmFtZT0iJGRpci8kbmFtZSJpCi0rCWZ1bmNfc2hvd19ldmFsICIkaW5zdGFsbF9w cm9nICRpbnN0bmFtZSAkZGVzdGRpci8kbmFtZSIgJ2V4aXQgJD8nCi0rCi0rCSMgTWF5YmUgaW5z dGFsbCB0aGUgc3RhdGljIGxpYnJhcnksIHRvby4KLSsJdGVzdCAtbiAiJG9sZF9saWJyYXJ5IiAm JiBzdGF0aWNsaWJzPSIkc3RhdGljbGlicyAkZGlyLyRvbGRfbGlicmFyeSIKLSsJOzsKLSsKLSsg ICAgICAqLmxvKQotKwkjIEluc3RhbGwgKGkuZS4gY29weSkgYSBsaWJ0b29sIG9iamVjdC4KLSsK LSsJIyBGaWd1cmUgb3V0IGRlc3RpbmF0aW9uIGZpbGUgbmFtZSwgaWYgaXQgd2Fzbid0IGFscmVh ZHkgc3BlY2lmaWVkLgotKwlpZiB0ZXN0IC1uICIkZGVzdG5hbWUiOyB0aGVuCi0rCSAgZGVzdGZp bGU9IiRkZXN0ZGlyLyRkZXN0bmFtZSIKLSsJZWxzZQotKwkgIGZ1bmNfYmFzZW5hbWUgIiRmaWxl IgotKwkgIGRlc3RmaWxlPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rCSAgZGVzdGZpbGU9IiRk ZXN0ZGlyLyRkZXN0ZmlsZSIKLSsJZmkKLSsKLSsJIyBEZWR1Y2UgdGhlIG5hbWUgb2YgdGhlIGRl c3RpbmF0aW9uIG9sZC1zdHlsZSBvYmplY3QgZmlsZS4KLSsJY2FzZSAkZGVzdGZpbGUgaW4KLSsJ Ki5sbykKLSsJICBmdW5jX2xvMm8gIiRkZXN0ZmlsZSIKLSsJICBzdGF0aWNkZXN0PSRmdW5jX2xv Mm9fcmVzdWx0Ci0rCSAgOzsKLSsJKi4kb2JqZXh0KQotKwkgIHN0YXRpY2Rlc3Q9IiRkZXN0Zmls ZSIKLSsJICBkZXN0ZmlsZT0KLSsJICA7OwotKwkqKQotKwkgIGZ1bmNfZmF0YWxfaGVscCAiY2Fu bm90IGNvcHkgYSBsaWJ0b29sIG9iamVjdCB0byBcYCRkZXN0ZmlsZSciCi0rCSAgOzsKLSsJZXNh YwotKwotKwkjIEluc3RhbGwgdGhlIGxpYnRvb2wgb2JqZWN0IGlmIHJlcXVlc3RlZC4KLSsJdGVz dCAtbiAiJGRlc3RmaWxlIiAmJiBcCi0rCSAgZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cg JGZpbGUgJGRlc3RmaWxlIiAnZXhpdCAkPycKLSsKLSsJIyBJbnN0YWxsIHRoZSBvbGQgb2JqZWN0 IGlmIGVuYWJsZWQuCi0rCWlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsJ ICAjIERlZHVjZSB0aGUgbmFtZSBvZiB0aGUgb2xkLXN0eWxlIG9iamVjdCBmaWxlLgotKwkgIGZ1 bmNfbG8ybyAiJGZpbGUiCi0rCSAgc3RhdGljb2JqPSRmdW5jX2xvMm9fcmVzdWx0Ci0rCSAgZnVu Y19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgXCRzdGF0aWNvYmogXCRzdGF0aWNkZXN0IiAnZXhp dCAkPycKLSsJZmkKLSsJZXhpdCAkRVhJVF9TVUNDRVNTCi0rCTs7Ci0rCi0rICAgICAgKikKLSsJ IyBGaWd1cmUgb3V0IGRlc3RpbmF0aW9uIGZpbGUgbmFtZSwgaWYgaXQgd2Fzbid0IGFscmVhZHkg c3BlY2lmaWVkLgotKwlpZiB0ZXN0IC1uICIkZGVzdG5hbWUiOyB0aGVuCi0rCSAgZGVzdGZpbGU9 IiRkZXN0ZGlyLyRkZXN0bmFtZSIKLSsJZWxzZQotKwkgIGZ1bmNfYmFzZW5hbWUgIiRmaWxlIgot KwkgIGRlc3RmaWxlPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rCSAgZGVzdGZpbGU9IiRkZXN0 ZGlyLyRkZXN0ZmlsZSIKLSsJZmkKLSsKLSsJIyBJZiB0aGUgZmlsZSBpcyBtaXNzaW5nLCBhbmQg dGhlcmUgaXMgYSAuZXhlIG9uIHRoZSBlbmQsIHN0cmlwIGl0Ci0rCSMgYmVjYXVzZSBpdCBpcyBt b3N0IGxpa2VseSBhIGxpYnRvb2wgc2NyaXB0IHdlIGFjdHVhbGx5IHdhbnQgdG8KLSsJIyBpbnN0 YWxsCi0rCXN0cmlwcGVkX2V4dD0iIgotKwljYXNlICRmaWxlIGluCi0rCSAgKi5leGUpCi0rCSAg ICBpZiB0ZXN0ICEgLWYgIiRmaWxlIjsgdGhlbgotKwkgICAgICBmdW5jX3N0cmlwbmFtZSAnJyAn LmV4ZScgIiRmaWxlIgotKwkgICAgICBmaWxlPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICAg ICAgc3RyaXBwZWRfZXh0PSIuZXhlIgotKwkgICAgZmkKLSsJICAgIDs7Ci0rCWVzYWMKLSsKLSsJ IyBEbyBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgcmVhbGx5IGEgbGlidG9vbCBwcm9ncmFtLgot KwljYXNlICRob3N0IGluCi0rCSpjeWd3aW4qIHwgKm1pbmd3KikKLSsJICAgIGlmIGZ1bmNfbHR3 cmFwcGVyX2V4ZWN1dGFibGVfcCAiJGZpbGUiOyB0aGVuCi0rCSAgICAgIGZ1bmNfbHR3cmFwcGVy X3NjcmlwdG5hbWUgIiRmaWxlIgotKwkgICAgICB3cmFwcGVyPSRmdW5jX2x0d3JhcHBlcl9zY3Jp cHRuYW1lX3Jlc3VsdAotKwkgICAgZWxzZQotKwkgICAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4 ZScgIiRmaWxlIgotKwkgICAgICB3cmFwcGVyPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICAg IGZpCi0rCSAgICA7OwotKwkqKQotKwkgICAgd3JhcHBlcj0kZmlsZQotKwkgICAgOzsKLSsJZXNh YwotKwlpZiBmdW5jX2x0d3JhcHBlcl9zY3JpcHRfcCAiJHdyYXBwZXIiOyB0aGVuCi0rCSAgbm90 aW5zdF9kZXBsaWJzPQotKwkgIHJlbGlua19jb21tYW5kPQotKwotKwkgIGZ1bmNfc291cmNlICIk d3JhcHBlciIKLSsKLSsJICAjIENoZWNrIHRoZSB2YXJpYWJsZXMgdGhhdCBzaG91bGQgaGF2ZSBi ZWVuIHNldC4KLSsJICB0ZXN0IC16ICIkZ2VuZXJhdGVkX2J5X2xpYnRvb2xfdmVyc2lvbiIgJiYg XAotKwkgICAgZnVuY19mYXRhbF9lcnJvciAiaW52YWxpZCBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0 IFxgJHdyYXBwZXInIgotKwotKwkgIGZpbmFsaXplPXllcwotKwkgIGZvciBsaWIgaW4gJG5vdGlu c3RfZGVwbGliczsgZG8KLSsJICAgICMgQ2hlY2sgdG8gc2VlIHRoYXQgZWFjaCBsaWJyYXJ5IGlz IGluc3RhbGxlZC4KLSsJICAgIGxpYmRpcj0KLSsJICAgIGlmIHRlc3QgLWYgIiRsaWIiOyB0aGVu Ci0rCSAgICAgIGZ1bmNfc291cmNlICIkbGliIgotKwkgICAgZmkKLSsJICAgIGxpYmZpbGU9IiRs aWJkaXIvImAkRUNITyAiWCRsaWIiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlZydgICMjIyB0ZXN0c3Vp dGU6IHNraXAgbmVzdGVkIHF1b3RpbmcgdGVzdAotKwkgICAgaWYgdGVzdCAtbiAiJGxpYmRpciIg JiYgdGVzdCAhIC1mICIkbGliZmlsZSI7IHRoZW4KLSsJICAgICAgZnVuY193YXJuaW5nICJcYCRs aWInIGhhcyBub3QgYmVlbiBpbnN0YWxsZWQgaW4gXGAkbGliZGlyJyIKLSsJICAgICAgZmluYWxp emU9bm8KLSsJICAgIGZpCi0rCSAgZG9uZQotKwotKwkgIHJlbGlua19jb21tYW5kPQotKwkgIGZ1 bmNfc291cmNlICIkd3JhcHBlciIKLSsKLSsJICBvdXRwdXRuYW1lPQotKwkgIGlmIHRlc3QgIiRm YXN0X2luc3RhbGwiID0gbm8gJiYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgotKwkg ICAgJG9wdF9kcnlfcnVuIHx8IHsKLSsJICAgICAgaWYgdGVzdCAiJGZpbmFsaXplIiA9IHllczsg dGhlbgotKwkgICAgICAgIHRtcGRpcj1gZnVuY19ta3RlbXBkaXJgCi0rCQlmdW5jX2Jhc2VuYW1l ICIkZmlsZSRzdHJpcHBlZF9leHQiCi0rCQlmaWxlPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0r CSAgICAgICAgb3V0cHV0bmFtZT0iJHRtcGRpci8kZmlsZSIKLSsJICAgICAgICAjIFJlcGxhY2Ug dGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCi0rCSAgICAgICAgcmVsaW5rX2NvbW1hbmQ9 YCRFQ0hPICJYJHJlbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJSciJG91dHB1 dG5hbWUiJyVnJ2AKLSsKLSsJICAgICAgICAkb3B0X3NpbGVudCB8fCB7Ci0rCSAgICAgICAgICBm dW5jX3F1b3RlX2Zvcl9leHBhbmQgIiRyZWxpbmtfY29tbWFuZCIKLSsJCSAgZXZhbCAiZnVuY19l Y2hvICRmdW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgotKwkgICAgICAgIH0KLSsJICAgICAg ICBpZiBldmFsICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuIDoKLSsJICAgICAgICAgIGVsc2UKLSsJ CSAgZnVuY19lcnJvciAiZXJyb3I6IHJlbGluayBcYCRmaWxlJyB3aXRoIHRoZSBhYm92ZSBjb21t YW5kIGJlZm9yZSBpbnN0YWxsaW5nIGl0IgotKwkJICAkb3B0X2RyeV9ydW4gfHwgJHtSTX1yICIk dG1wZGlyIgotKwkJICBjb250aW51ZQotKwkgICAgICAgIGZpCi0rCSAgICAgICAgZmlsZT0iJG91 dHB1dG5hbWUiCi0rCSAgICAgIGVsc2UKLSsJICAgICAgICBmdW5jX3dhcm5pbmcgImNhbm5vdCBy ZWxpbmsgXGAkZmlsZSciCi0rCSAgICAgIGZpCi0rCSAgICB9Ci0rCSAgZWxzZQotKwkgICAgIyBJ bnN0YWxsIHRoZSBiaW5hcnkgdGhhdCB3ZSBjb21waWxlZCBlYXJsaWVyLgotKwkgICAgZmlsZT1g JEVDSE8gIlgkZmlsZSRzdHJpcHBlZF9leHQiIHwgJFhzZWQgLWUgInMlXChbXi9dKlwpJCUkb2Jq ZGlyL1wxJSJgCi0rCSAgZmkKLSsJZmkKLSsKLSsJIyByZW1vdmUgLmV4ZSBzaW5jZSBjeWd3aW4g L3Vzci9iaW4vaW5zdGFsbCB3aWxsIGFwcGVuZCBhbm90aGVyCi0rCSMgb25lIGFueXdheQotKwlj YXNlICRpbnN0YWxsX3Byb2csJGhvc3QgaW4KLSsJKi91c3IvYmluL2luc3RhbGwqLCpjeWd3aW4q KQotKwkgIGNhc2UgJGZpbGU6JGRlc3RmaWxlIGluCi0rCSAgKi5leGU6Ki5leGUpCi0rCSAgICAj IHRoaXMgaXMgb2sKLSsJICAgIDs7Ci0rCSAgKi5leGU6KikKLSsJICAgIGRlc3RmaWxlPSRkZXN0 ZmlsZS5leGUKLSsJICAgIDs7Ci0rCSAgKjoqLmV4ZSkKLSsJICAgIGZ1bmNfc3RyaXBuYW1lICcn ICcuZXhlJyAiJGRlc3RmaWxlIgotKwkgICAgZGVzdGZpbGU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3Vs dAotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwotKwlmdW5jX3Nob3dfZXZhbCAi JGluc3RhbGxfcHJvZ1wkc3RyaXBtZSBcJGZpbGUgXCRkZXN0ZmlsZSIgJ2V4aXQgJD8nCi0rCSRv cHRfZHJ5X3J1biB8fCBpZiB0ZXN0IC1uICIkb3V0cHV0bmFtZSI7IHRoZW4KLSsJICAke1JNfXIg IiR0bXBkaXIiCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBkb25lCi0rCi0rICAgIGZv ciBmaWxlIGluICRzdGF0aWNsaWJzOyBkbwotKyAgICAgIGZ1bmNfYmFzZW5hbWUgIiRmaWxlIgot KyAgICAgIG5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsKLSsgICAgICAjIFNldCB1cCB0 aGUgcmFubGliIHBhcmFtZXRlcnMuCi0rICAgICAgb2xkbGliPSIkZGVzdGRpci8kbmFtZSIKLSsK LSsgICAgICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyBcJGZpbGUgXCRvbGRsaWIiICdl eGl0ICQ/JwotKwotKyAgICAgIGlmIHRlc3QgLW4gIiRzdHJpcG1lIiAmJiB0ZXN0IC1uICIkb2xk X3N0cmlwbGliIjsgdGhlbgotKwlmdW5jX3Nob3dfZXZhbCAiJG9sZF9zdHJpcGxpYiAkb2xkbGli IiAnZXhpdCAkPycKLSsgICAgICBmaQotKwotKyAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRo ZSBwb3N0aW5zdGFsbCBjb21tYW5kcy4KLSsgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJG9sZF9w b3N0aW5zdGFsbF9jbWRzIiAnZXhpdCAkPycKLSsgICAgZG9uZQotKwotKyAgICB0ZXN0IC1uICIk ZnV0dXJlX2xpYmRpcnMiICYmIFwKLSsgICAgICBmdW5jX3dhcm5pbmcgInJlbWVtYmVyIHRvIHJ1 biBcYCRwcm9nbmFtZSAtLWZpbmlzaCRmdXR1cmVfbGliZGlycyciCi0rCi0rICAgIGlmIHRlc3Qg LW4gIiRjdXJyZW50X2xpYmRpcnMiOyB0aGVuCi0rICAgICAgIyBNYXliZSBqdXN0IGRvIGEgZHJ5 IHJ1bi4KLSsgICAgICAkb3B0X2RyeV9ydW4gJiYgY3VycmVudF9saWJkaXJzPSIgLW4kY3VycmVu dF9saWJkaXJzIgotKyAgICAgIGV4ZWNfY21kPSckU0hFTEwgJHByb2dwYXRoICRwcmVzZXJ2ZV9h cmdzIC0tZmluaXNoJGN1cnJlbnRfbGliZGlycycKLSsgICAgZWxzZQotKyAgICAgIGV4aXQgJEVY SVRfU1VDQ0VTUwotKyAgICBmaQotK30KLSsKLSt0ZXN0ICIkbW9kZSIgPSBpbnN0YWxsICYmIGZ1 bmNfbW9kZV9pbnN0YWxsICR7MSsiJEAifQotKwotKwotKyMgZnVuY19nZW5lcmF0ZV9kbHN5bXMg b3V0cHV0bmFtZSBvcmlnaW5hdG9yIHBpY19wCi0rIyBFeHRyYWN0IHN5bWJvbHMgZnJvbSBkbHBy ZWZpbGVzIGFuZCBjcmVhdGUgJHtvdXRwdXRuYW1lfVMubyB3aXRoCi0rIyBhIGRscHJlb3BlbiBz eW1ib2wgdGFibGUuCi0rZnVuY19nZW5lcmF0ZV9kbHN5bXMgKCkKLSt7Ci0rICAgICRvcHRfZGVi dWcKLSsgICAgbXlfb3V0cHV0bmFtZT0iJDEiCi0rICAgIG15X29yaWdpbmF0b3I9IiQyIgotKyAg ICBteV9waWNfcD0iJHszLW5vfSIKLSsgICAgbXlfcHJlZml4PWAkRUNITyAiJG15X29yaWdpbmF0 b3IiIHwgc2VkICdzJVteYS16QS1aMC05XSVfJWcnYAotKyAgICBteV9kbHN5bXM9Ci0rCi0rICAg IGlmIHRlc3QgLW4gIiRkbGZpbGVzJGRscHJlZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5v OyB0aGVuCi0rICAgICAgaWYgdGVzdCAtbiAiJE5NIiAmJiB0ZXN0IC1uICIkZ2xvYmFsX3N5bWJv bF9waXBlIjsgdGhlbgotKwlteV9kbHN5bXM9IiR7bXlfb3V0cHV0bmFtZX1TLmMiCi0rICAgICAg ZWxzZQotKwlmdW5jX2Vycm9yICJub3QgY29uZmlndXJlZCB0byBleHRyYWN0IGdsb2JhbCBzeW1i b2xzIGZyb20gZGxwcmVvcGVuZWQgZmlsZXMiCi0rICAgICAgZmkKLSsgICAgZmkKLSsKLSsgICAg aWYgdGVzdCAtbiAiJG15X2Rsc3ltcyI7IHRoZW4KLSsgICAgICBjYXNlICRteV9kbHN5bXMgaW4K LSsgICAgICAiIikgOzsKLSsgICAgICAqLmMpCi0rCSMgRGlzY292ZXIgdGhlIG5saXN0IG9mIGVh Y2ggb2YgdGhlIGRsZmlsZXMuCi0rCW5saXN0PSIkb3V0cHV0X29iamRpci8ke215X291dHB1dG5h bWV9Lm5tIgotKwotKwlmdW5jX3Nob3dfZXZhbCAiJFJNICRubGlzdCAke25saXN0fVMgJHtubGlz dH1UIgotKwotKwkjIFBhcnNlIHRoZSBuYW1lIGxpc3QgaW50byBhIHNvdXJjZSBmaWxlLgotKwlm dW5jX3ZlcmJvc2UgImNyZWF0aW5nICRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiCi0rCi0rCSRv cHRfZHJ5X3J1biB8fCAkRUNITyA+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAotKy8q ICRteV9kbHN5bXMgLSBzeW1ib2wgcmVzb2x1dGlvbiB0YWJsZSBmb3IgXGAkbXlfb3V0cHV0bmFt ZScgZGxzeW0gZW11bGF0aW9uLiAqLwotKy8qIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQ QUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04gKi8KLSsKLSsjaWZkZWYgX19jcGx1c3BsdXMKLStl eHRlcm4gXCJDXCIgewotKyNlbmRpZgotKwotKy8qIEV4dGVybmFsIHN5bWJvbCBkZWNsYXJhdGlv bnMgZm9yIHRoZSBjb21waWxlci4gKi9cCi0rIgotKwotKwlpZiB0ZXN0ICIkZGxzZWxmIiA9IHll czsgdGhlbgotKwkgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3IgXGAk b3V0cHV0JyIKLSsKLSsJICAkb3B0X2RyeV9ydW4gfHwgZWNobyAnOiBAUFJPR1JBTUAgJyA+ICIk bmxpc3QiCi0rCi0rCSAgIyBBZGQgb3VyIG93biBwcm9ncmFtIG9iamVjdHMgdG8gdGhlIHN5bWJv bCBsaXN0LgotKwkgIHByb2dmaWxlcz1gJEVDSE8gIlgkb2JqcyRvbGRfZGVwbGlicyIgfCAkU1Ay TkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAotKwkgIGZvciBwcm9nZmlsZSBpbiAkcHJv Z2ZpbGVzOyBkbwotKwkgICAgZnVuY192ZXJib3NlICJleHRyYWN0aW5nIGdsb2JhbCBDIHN5bWJv bHMgZnJvbSBcYCRwcm9nZmlsZSciCi0rCSAgICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiJE5NICRw cm9nZmlsZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgPj4gJyRubGlzdCciCi0rCSAgZG9uZQotKwot KwkgIGlmIHRlc3QgLW4gIiRleGNsdWRlX2V4cHN5bXMiOyB0aGVuCi0rCSAgICAkb3B0X2RyeV9y dW4gfHwgewotKwkgICAgICBldmFsICckRUdSRVAgLXYgIiAoJGV4Y2x1ZGVfZXhwc3ltcykkIiAi JG5saXN0IiA+ICIkbmxpc3QiVCcKLSsJICAgICAgZXZhbCAnJE1WICIkbmxpc3QiVCAiJG5saXN0 IicKLSsJICAgIH0KLSsJICBmaQotKwotKwkgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19y ZWdleCI7IHRoZW4KLSsJICAgICRvcHRfZHJ5X3J1biB8fCB7Ci0rCSAgICAgIGV2YWwgJyRFR1JF UCAtZSAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IiAiJG5saXN0IiA+ICIkbmxpc3QiVCcKLSsJICAg ICAgZXZhbCAnJE1WICIkbmxpc3QiVCAiJG5saXN0IicKLSsJICAgIH0KLSsJICBmaQotKwotKwkg ICMgUHJlcGFyZSB0aGUgbGlzdCBvZiBleHBvcnRlZCBzeW1ib2xzCi0rCSAgaWYgdGVzdCAteiAi JGV4cG9ydF9zeW1ib2xzIjsgdGhlbgotKwkgICAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRfb2Jq ZGlyLyRvdXRwdXRuYW1lLmV4cCIKLSsJICAgICRvcHRfZHJ5X3J1biB8fCB7Ci0rCSAgICAgICRS TSAkZXhwb3J0X3N5bWJvbHMKLSsJICAgICAgZXZhbCAiJHtTRUR9IC1uIC1lICcvXjogQFBST0dS QU1AICQvZCcgLWUgJ3MvXi4qIFwoLipcKSQvXDEvcCcgIic8ICIkbmxpc3QiID4gIiRleHBvcnRf c3ltYm9scyInCi0rCSAgICAgIGNhc2UgJGhvc3QgaW4KLSsJICAgICAgKmN5Z3dpbiogfCAqbWlu Z3cqIHwgKmNlZ2NjKiApCi0rICAgICAgICAgICAgICAgIGV2YWwgImVjaG8gRVhQT1JUUyAiJz4g IiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmRlZiInCi0rICAgICAgICAgICAgICAgIGV2YWwg J2NhdCAiJGV4cG9ydF9zeW1ib2xzIiA+PiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZGVm IicKLSsJICAgICAgICA7OwotKwkgICAgICBlc2FjCi0rCSAgICB9Ci0rCSAgZWxzZQotKwkgICAg JG9wdF9kcnlfcnVuIHx8IHsKLSsJICAgICAgZXZhbCAiJHtTRUR9IC1lICdzL1woW10uWypeJF1c KS9cXFxcXDEvZycgLWUgJ3MvXi8gLycgLWUgJ3MvJC8kLyciJyA8ICIkZXhwb3J0X3N5bWJvbHMi ID4gIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4cCInCi0rCSAgICAgIGV2YWwgJyRHUkVQ IC1mICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5leHAiIDwgIiRubGlzdCIgPiAiJG5saXN0 IlQnCi0rCSAgICAgIGV2YWwgJyRNViAiJG5saXN0IlQgIiRubGlzdCInCi0rCSAgICAgIGNhc2Ug JGhvc3QgaW4KLSsJICAgICAgICAqY3lnd2luIHwgKm1pbmd3KiB8ICpjZWdjYyogKQotKwkgICAg ICAgICAgZXZhbCAiZWNobyBFWFBPUlRTICInPiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUu ZGVmIicKLSsJICAgICAgICAgIGV2YWwgJ2NhdCAiJG5saXN0IiA+PiAiJG91dHB1dF9vYmpkaXIv JG91dHB1dG5hbWUuZGVmIicKLSsJICAgICAgICAgIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIH0K LSsJICBmaQotKwlmaQotKwotKwlmb3IgZGxwcmVmaWxlIGluICRkbHByZWZpbGVzOyBkbwotKwkg IGZ1bmNfdmVyYm9zZSAiZXh0cmFjdGluZyBnbG9iYWwgQyBzeW1ib2xzIGZyb20gXGAkZGxwcmVm aWxlJyIKLSsJICBmdW5jX2Jhc2VuYW1lICIkZGxwcmVmaWxlIgotKwkgIG5hbWU9IiRmdW5jX2Jh c2VuYW1lX3Jlc3VsdCIKLSsJICAkb3B0X2RyeV9ydW4gfHwgewotKwkgICAgZXZhbCAnJEVDSE8g IjogJG5hbWUgIiA+PiAiJG5saXN0IicKLSsJICAgIGV2YWwgIiROTSAkZGxwcmVmaWxlIDI+L2Rl di9udWxsIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSA+PiAnJG5saXN0JyIKLSsJICB9Ci0rCWRvbmUK LSsKLSsJJG9wdF9kcnlfcnVuIHx8IHsKLSsJICAjIE1ha2Ugc3VyZSB3ZSBoYXZlIGF0IGxlYXN0 IGFuIGVtcHR5IGZpbGUuCi0rCSAgdGVzdCAtZiAiJG5saXN0IiB8fCA6ID4gIiRubGlzdCIKLSsK LSsJICBpZiB0ZXN0IC1uICIkZXhjbHVkZV9leHBzeW1zIjsgdGhlbgotKwkgICAgJEVHUkVQIC12 ICIgKCRleGNsdWRlX2V4cHN5bXMpJCIgIiRubGlzdCIgPiAiJG5saXN0IlQKLSsJICAgICRNViAi JG5saXN0IlQgIiRubGlzdCIKLSsJICBmaQotKwotKwkgICMgVHJ5IHNvcnRpbmcgYW5kIHVuaXF1 aWZ5aW5nIHRoZSBvdXRwdXQuCi0rCSAgaWYgJEdSRVAgLXYgIl46ICIgPCAiJG5saXN0IiB8Ci0r CSAgICAgIGlmIHNvcnQgLWsgMyA8L2Rldi9udWxsID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkJ c29ydCAtayAzCi0rCSAgICAgIGVsc2UKLSsJCXNvcnQgKzIKLSsJICAgICAgZmkgfAotKwkgICAg ICB1bmlxID4gIiRubGlzdCJTOyB0aGVuCi0rCSAgICA6Ci0rCSAgZWxzZQotKwkgICAgJEdSRVAg LXYgIl46ICIgPCAiJG5saXN0IiA+ICIkbmxpc3QiUwotKwkgIGZpCi0rCi0rCSAgaWYgdGVzdCAt ZiAiJG5saXN0IlM7IHRoZW4KLSsJICAgIGV2YWwgIiRnbG9iYWxfc3ltYm9sX3RvX2NkZWNsIicg PCAiJG5saXN0IlMgPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiJwotKwkgIGVsc2UKLSsJ ICAgICRFQ0hPICcvKiBOT05FICovJyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIKLSsJ ICBmaQotKwotKwkgICRFQ0hPID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAotKwot Ky8qIFRoZSBtYXBwaW5nIGJldHdlZW4gc3ltYm9sIG5hbWVzIGFuZCBzeW1ib2xzLiAgKi8KLSt0 eXBlZGVmIHN0cnVjdCB7Ci0rICBjb25zdCBjaGFyICpuYW1lOwotKyAgdm9pZCAqYWRkcmVzczsK LSt9IGx0X2Rsc3ltbGlzdDsKLSsiCi0rCSAgY2FzZSAkaG9zdCBpbgotKwkgICpjeWd3aW4qIHwg Km1pbmd3KiB8ICpjZWdjYyogKQotKwkgICAgJEVDSE8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9k bHN5bXMiICJcCi0rLyogREFUQSBpbXBvcnRzIGZyb20gRExMcyBvbiBXSU4zMiBjb24ndCBiZSBj b25zdCwgYmVjYXVzZQotKyAgIHJ1bnRpbWUgcmVsb2NhdGlvbnMgYXJlIHBlcmZvcm1lZCAtLSBz ZWUgbGQncyBkb2N1bWVudGF0aW9uCi0rICAgb24gcHNldWRvLXJlbG9jcy4gICovIgotKwkgICAg bHRfZGxzeW1fY29uc3Q9IDs7Ci0rCSAgKm9zZjUqKQotKwkgICAgZWNobyA+PiAiJG91dHB1dF9v YmpkaXIvJG15X2Rsc3ltcyIgIlwKLSsvKiBUaGlzIHN5c3RlbSBkb2VzIG5vdCBjb3BlIHdlbGwg d2l0aCByZWxvY2F0aW9ucyBpbiBjb25zdCBkYXRhICovIgotKwkgICAgbHRfZGxzeW1fY29uc3Q9 IDs7Ci0rCSAgKikKLSsJICAgIGx0X2Rsc3ltX2NvbnN0PWNvbnN0IDs7Ci0rCSAgZXNhYwotKwot KwkgICRFQ0hPID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAotK2V4dGVybiAkbHRf ZGxzeW1fY29uc3QgbHRfZGxzeW1saXN0Ci0rbHRfJHtteV9wcmVmaXh9X0xUWF9wcmVsb2FkZWRf c3ltYm9sc1tdOwotKyRsdF9kbHN5bV9jb25zdCBsdF9kbHN5bWxpc3QKLStsdF8ke215X3ByZWZp eH1fTFRYX3ByZWxvYWRlZF9zeW1ib2xzW10gPQotK3tcCi0rICB7IFwiJG15X29yaWdpbmF0b3Jc IiwgKHZvaWQgKikgMCB9LCIKLSsKLSsJICBjYXNlICRuZWVkX2xpYl9wcmVmaXggaW4KLSsJICBu bykKLSsJICAgIGV2YWwgIiRnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzIiA8ICIkbmxp c3QiID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIgotKwkgICAgOzsKLSsJICAqKQotKwkg ICAgZXZhbCAiJGdsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeCIgPCAi JG5saXN0IiA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIKLSsJICAgIDs7Ci0rCSAgZXNh YwotKwkgICRFQ0hPID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAotKyAgezAsICh2 b2lkICopIDB9Ci0rfTsKLSsKLSsvKiBUaGlzIHdvcmtzIGFyb3VuZCBhIHByb2JsZW0gaW4gRnJl ZUJTRCBsaW5rZXIgKi8KLSsjaWZkZWYgRlJFRUJTRF9XT1JLQVJPVU5ECi0rc3RhdGljIGNvbnN0 IHZvaWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgpIHsKLSsgIHJldHVybiBsdF8ke215X3ByZWZpeH1f TFRYX3ByZWxvYWRlZF9zeW1ib2xzOwotK30KLSsjZW5kaWYKLSsKLSsjaWZkZWYgX19jcGx1c3Bs dXMKLSt9Ci0rI2VuZGlmXAotKyIKLSsJfSAjICEkb3B0X2RyeV9ydW4KLSsKLSsJcGljX2ZsYWdf Zm9yX3N5bXRhYmxlPQotKwljYXNlICIkY29tcGlsZV9jb21tYW5kICIgaW4KLSsJKiIgLXN0YXRp YyAiKikgOzsKLSsJKikKLSsJICBjYXNlICRob3N0IGluCi0rCSAgIyBjb21waWxpbmcgdGhlIHN5 bWJvbCB0YWJsZSBmaWxlIHdpdGggcGljX2ZsYWcgd29ya3MgYXJvdW5kCi0rCSAgIyBhIEZyZWVC U0QgYnVnIHRoYXQgY2F1c2VzIHByb2dyYW1zIHRvIGNyYXNoIHdoZW4gLWxtIGlzCi0rCSAgIyBs aW5rZWQgYmVmb3JlIGFueSBvdGhlciBQSUMgb2JqZWN0LiAgQnV0IHdlIG11c3Qgbm90IHVzZQot KwkgICMgcGljX2ZsYWcgd2hlbiBsaW5raW5nIHdpdGggLXN0YXRpYy4gIFRoZSBwcm9ibGVtIGV4 aXN0cyBpbgotKwkgICMgRnJlZUJTRCAyLjIuNiBhbmQgaXMgZml4ZWQgaW4gRnJlZUJTRCAzLjEu Ci0rCSAgKi0qLWZyZWVic2QyKnwqLSotZnJlZWJzZDMuMCp8Ki0qLWZyZWVic2RlbGYzLjAqKQot KwkgICAgcGljX2ZsYWdfZm9yX3N5bXRhYmxlPSIgJHBpY19mbGFnIC1ERlJFRUJTRF9XT1JLQVJP VU5EIiA7OwotKwkgICotKi1ocHV4KikKLSsJICAgIHBpY19mbGFnX2Zvcl9zeW10YWJsZT0iICRw aWNfZmxhZyIgIDs7Ci0rCSAgKikKLSsJICAgIGlmIHRlc3QgIlgkbXlfcGljX3AiICE9IFhubzsg dGhlbgotKwkgICAgICBwaWNfZmxhZ19mb3Jfc3ltdGFibGU9IiAkcGljX2ZsYWciCi0rCSAgICBm aQotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwotKwlzeW10YWJfY2ZsYWdzPQot Kwlmb3IgYXJnIGluICRMVENGTEFHUzsgZG8KLSsJICBjYXNlICRhcmcgaW4KLSsJICAtcGllIHwg LWZwaWUgfCAtZlBJRSkgOzsKLSsJICAqKSBzeW10YWJfY2ZsYWdzPSIkc3ltdGFiX2NmbGFncyAk YXJnIiA7OwotKwkgIGVzYWMKLSsJZG9uZQotKwotKwkjIE5vdyBjb21waWxlIHRoZSBkeW5hbWlj IHN5bWJvbCBmaWxlLgotKwlmdW5jX3Nob3dfZXZhbCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRM VENDJHN5bXRhYl9jZmxhZ3MgLWMkbm9fYnVpbHRpbl9mbGFnJHBpY19mbGFnX2Zvcl9zeW10YWJs ZSAiJG15X2Rsc3ltcyIpJyAnZXhpdCAkPycKLSsKLSsJIyBDbGVhbiB1cCB0aGUgZ2VuZXJhdGVk IGZpbGVzLgotKwlmdW5jX3Nob3dfZXZhbCAnJFJNICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1z IiAiJG5saXN0IiAiJHtubGlzdH1TIiAiJHtubGlzdH1UIicKLSsKLSsJIyBUcmFuc2Zvcm0gdGhl IHN5bWJvbCBmaWxlIGludG8gdGhlIGNvcnJlY3QgbmFtZS4KLSsJc3ltZmlsZW9iaj0iJG91dHB1 dF9vYmpkaXIvJHtteV9vdXRwdXRuYW1lfVMuJG9iamV4dCIKLSsJY2FzZSAkaG9zdCBpbgotKwkq Y3lnd2luKiB8ICptaW5ndyogfCAqY2VnY2MqICkKLSsJICBpZiB0ZXN0IC1mICIkb3V0cHV0X29i amRpci8kbXlfb3V0cHV0bmFtZS5kZWYiOyB0aGVuCi0rCSAgICBjb21waWxlX2NvbW1hbmQ9YCRF Q0hPICJYJGNvbXBpbGVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJG91dHB1dF9v YmpkaXIvJG15X291dHB1dG5hbWUuZGVmICRzeW1maWxlb2JqJSJgCi0rCSAgICBmaW5hbGl6ZV9j b21tYW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxF QCUkb3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFtZS5kZWYgJHN5bWZpbGVvYmolImAKLSsJICBl bHNlCi0rCSAgICBjb21waWxlX2NvbW1hbmQ9YCRFQ0hPICJYJGNvbXBpbGVfY29tbWFuZCIgfCAk WHNlZCAtZSAicyVAU1lNRklMRUAlJHN5bWZpbGVvYmolImAKLSsJICAgIGZpbmFsaXplX2NvbW1h bmQ9YCRFQ0hPICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRz eW1maWxlb2JqJSJgCi0rCSAgZmkKLSsJICA7OwotKwkqKQotKwkgIGNvbXBpbGVfY29tbWFuZD1g JEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkc3ltZmls ZW9iaiUiYAotKwkgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICJYJGZpbmFsaXplX2NvbW1hbmQi IHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCi0rCSAgOzsKLSsJZXNhYwot Kwk7OwotKyAgICAgICopCi0rCWZ1bmNfZmF0YWxfZXJyb3IgInVua25vd24gc3VmZml4IGZvciBc YCRteV9kbHN5bXMnIgotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZWxzZQotKyAgICAgICMgV2Ug a2VlcCBnb2luZyBqdXN0IGluIGNhc2UgdGhlIHVzZXIgZGlkbid0IHJlZmVyIHRvCi0rICAgICAg IyBsdF9wcmVsb2FkZWRfc3ltYm9scy4gIFRoZSBsaW5rZXIgd2lsbCBmYWlsIGlmIGdsb2JhbF9z eW1ib2xfcGlwZQotKyAgICAgICMgcmVhbGx5IHdhcyByZXF1aXJlZC4KLSsKLSsgICAgICAjIE51 bGxpZnkgdGhlIHN5bWJvbCBmaWxlLgotKyAgICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgk Y29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJSBAU1lNRklMRUAlJSJgCi0rICAgICAgZmlu YWxpemVfY29tbWFuZD1gJEVDSE8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyUg QFNZTUZJTEVAJSUiYAotKyAgICBmaQotK30KLSsKLSsjIGZ1bmNfd2luMzJfbGliaWQgYXJnCi0r IyByZXR1cm4gdGhlIGxpYnJhcnkgdHlwZSBvZiBmaWxlICdhcmcnCi0rIwotKyMgTmVlZCBhIGxv dCBvZiBnb28gdG8gaGFuZGxlICpib3RoKiBETExzIGFuZCBpbXBvcnQgbGlicwotKyMgSGFzIHRv IGJlIGEgc2hlbGwgZnVuY3Rpb24gaW4gb3JkZXIgdG8gJ2VhdCcgdGhlIGFyZ3VtZW50Ci0rIyB0 aGF0IGlzIHN1cHBsaWVkIHdoZW4gJGZpbGVfbWFnaWNfY29tbWFuZCBpcyBjYWxsZWQuCi0rZnVu Y193aW4zMl9saWJpZCAoKQotK3sKLSsgICRvcHRfZGVidWcKLSsgIHdpbjMyX2xpYmlkX3R5cGU9 InVua25vd24iCi0rICB3aW4zMl9maWxlcmVzPWBmaWxlIC1MICQxIDI+L2Rldi9udWxsYAotKyAg Y2FzZSAkd2luMzJfZmlsZXJlcyBpbgotKyAgKmFyXCBhcmNoaXZlXCBpbXBvcnRcIGxpYnJhcnkq KSAjIGRlZmluaXRlbHkgaW1wb3J0Ci0rICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBhcmNoaXZl IGltcG9ydCIKLSsgICAgOzsKLSsgICphclwgYXJjaGl2ZSopICMgY291bGQgYmUgYW4gaW1wb3J0 LCBvciBzdGF0aWMKLSsgICAgaWYgZXZhbCAkT0JKRFVNUCAtZiAkMSB8ICRTRUQgLWUgJzEwcScg Mj4vZGV2L251bGwgfAotKyAgICAgICAkRUdSRVAgJ2ZpbGUgZm9ybWF0IHBlLWkzODYoLiphcmNo aXRlY3R1cmU6IGkzODYpPycgPi9kZXYvbnVsbCA7IHRoZW4KLSsgICAgICB3aW4zMl9ubXJlcz1g ZXZhbCAkTk0gLWYgcG9zaXggLUEgJDEgfAotKwkkU0VEIC1uIC1lICcKLSsJICAgIDEsMTAwewot KwkJLyBJIC97Ci0rCQkgICAgcywuKixpbXBvcnQsCi0rCQkgICAgcAotKwkJICAgIHEKLSsJCX0K LSsJICAgIH0nYAotKyAgICAgIGNhc2UgJHdpbjMyX25tcmVzIGluCi0rICAgICAgaW1wb3J0Kikg IHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBhcmNoaXZlIGltcG9ydCI7OwotKyAgICAgICopICAgICAg ICB3aW4zMl9saWJpZF90eXBlPSJ4ODYgYXJjaGl2ZSBzdGF0aWMiOzsKLSsgICAgICBlc2FjCi0r ICAgIGZpCi0rICAgIDs7Ci0rICAqRExMKikKLSsgICAgd2luMzJfbGliaWRfdHlwZT0ieDg2IERM TCIKLSsgICAgOzsKLSsgICpleGVjdXRhYmxlKikgIyBidXQgc2hlbGwgc2NyaXB0cyBhcmUgImV4 ZWN1dGFibGUiIHRvby4uLgotKyAgICBjYXNlICR3aW4zMl9maWxlcmVzIGluCi0rICAgICpNU1wg V2luZG93c1wgUEVcIEludGVsKikKLSsgICAgICB3aW4zMl9saWJpZF90eXBlPSJ4ODYgRExMIgot KyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsgIGVzYWMKLSsgICRFQ0hPICIkd2luMzJf bGliaWRfdHlwZSIKLSt9Ci0rCi0rCi0rCi0rIyBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSBkaXIg b2xkbGliCi0rZnVuY19leHRyYWN0X2FuX2FyY2hpdmUgKCkKLSt7Ci0rICAgICRvcHRfZGVidWcK LSsgICAgZl9leF9hbl9hcl9kaXI9IiQxIjsgc2hpZnQKLSsgICAgZl9leF9hbl9hcl9vbGRsaWI9 IiQxIgotKyAgICBmdW5jX3Nob3dfZXZhbCAiKGNkIFwkZl9leF9hbl9hcl9kaXIgJiYgJEFSIHgg XCJcJGZfZXhfYW5fYXJfb2xkbGliXCIpIiAnZXhpdCAkPycKLSsgICAgaWYgKCRBUiB0ICIkZl9l eF9hbl9hcl9vbGRsaWIiIHwgc29ydCB8IHNvcnQgLXVjID4vZGV2L251bGwgMj4mMSk7IHRoZW4K LSsgICAgIDoKLSsgICAgZWxzZQotKyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm9iamVjdCBuYW1l IGNvbmZsaWN0cyBpbiBhcmNoaXZlOiAkZl9leF9hbl9hcl9kaXIvJGZfZXhfYW5fYXJfb2xkbGli IgotKyAgICBmaQotK30KLSsKLSsKLSsjIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyBnZW50b3Agb2xk bGliIC4uLgotK2Z1bmNfZXh0cmFjdF9hcmNoaXZlcyAoKQotK3sKLSsgICAgJG9wdF9kZWJ1Zwot KyAgICBteV9nZW50b3A9IiQxIjsgc2hpZnQKLSsgICAgbXlfb2xkbGlicz0kezErIiRAIn0KLSsg ICAgbXlfb2xkb2Jqcz0iIgotKyAgICBteV94bGliPSIiCi0rICAgIG15X3hhYnM9IiIKLSsgICAg bXlfeGRpcj0iIgotKwotKyAgICBmb3IgbXlfeGxpYiBpbiAkbXlfb2xkbGliczsgZG8KLSsgICAg ICAjIEV4dHJhY3QgdGhlIG9iamVjdHMuCi0rICAgICAgY2FzZSAkbXlfeGxpYiBpbgotKwlbXFwv XSogfCBbQS1aYS16XTpbXFwvXSopIG15X3hhYnM9IiRteV94bGliIiA7OwotKwkqKSBteV94YWJz PWBwd2RgIi8kbXlfeGxpYiIgOzsKLSsgICAgICBlc2FjCi0rICAgICAgZnVuY19iYXNlbmFtZSAi JG15X3hsaWIiCi0rICAgICAgbXlfeGxpYj0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKyAgICAg IG15X3hsaWJfdT0kbXlfeGxpYgotKyAgICAgIHdoaWxlIDo7IGRvCi0rICAgICAgICBjYXNlICIg JGV4dHJhY3RlZF9hcmNoaXZlcyAiIGluCi0rCSoiICRteV94bGliX3UgIiopCi0rCSAgZnVuY19h cml0aCAkZXh0cmFjdGVkX3NlcmlhbCArIDEKLSsJICBleHRyYWN0ZWRfc2VyaWFsPSRmdW5jX2Fy aXRoX3Jlc3VsdAotKwkgIG15X3hsaWJfdT1sdCRleHRyYWN0ZWRfc2VyaWFsLSRteV94bGliIDs7 Ci0rCSopIGJyZWFrIDs7Ci0rCWVzYWMKLSsgICAgICBkb25lCi0rICAgICAgZXh0cmFjdGVkX2Fy Y2hpdmVzPSIkZXh0cmFjdGVkX2FyY2hpdmVzICRteV94bGliX3UiCi0rICAgICAgbXlfeGRpcj0i JG15X2dlbnRvcC8kbXlfeGxpYl91IgotKwotKyAgICAgIGZ1bmNfbWtkaXJfcCAiJG15X3hkaXIi Ci0rCi0rICAgICAgY2FzZSAkaG9zdCBpbgotKyAgICAgICotZGFyd2luKikKLSsJZnVuY192ZXJi b3NlICJFeHRyYWN0aW5nICRteV94YWJzIgotKwkjIERvIG5vdCBib3RoZXIgZG9pbmcgYW55dGhp bmcgaWYganVzdCBhIGRyeSBydW4KLSsJJG9wdF9kcnlfcnVuIHx8IHsKLSsJICBkYXJ3aW5fb3Jp Z19kaXI9YHB3ZGAKLSsJICBjZCAkbXlfeGRpciB8fCBleGl0ICQ/Ci0rCSAgZGFyd2luX2FyY2hp dmU9JG15X3hhYnMKLSsJICBkYXJ3aW5fY3VyZGlyPWBwd2RgCi0rCSAgZGFyd2luX2Jhc2VfYXJj aGl2ZT1gYmFzZW5hbWUgIiRkYXJ3aW5fYXJjaGl2ZSJgCi0rCSAgZGFyd2luX2FyY2hlcz1gJExJ UE8gLWluZm8gIiRkYXJ3aW5fYXJjaGl2ZSIgMj4vZGV2L251bGwgfCAkR1JFUCBBcmNoaXRlY3R1 cmVzIDI+L2Rldi9udWxsIHx8IHRydWVgCi0rCSAgaWYgdGVzdCAtbiAiJGRhcndpbl9hcmNoZXMi OyB0aGVuCi0rCSAgICBkYXJ3aW5fYXJjaGVzPWAkRUNITyAiJGRhcndpbl9hcmNoZXMiIHwgJFNF RCAtZSAncy8uKmFyZTovLydgCi0rCSAgICBkYXJ3aW5fYXJjaD0KLSsJICAgIGZ1bmNfdmVyYm9z ZSAiJGRhcndpbl9iYXNlX2FyY2hpdmUgaGFzIG11bHRpcGxlIGFyY2hpdGVjdHVyZXMgJGRhcndp bl9hcmNoZXMiCi0rCSAgICBmb3IgZGFyd2luX2FyY2ggaW4gICRkYXJ3aW5fYXJjaGVzIDsgZG8K LSsJICAgICAgZnVuY19ta2Rpcl9wICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7 ZGFyd2luX2FyY2h9IgotKwkgICAgICAkTElQTyAtdGhpbiAkZGFyd2luX2FyY2ggLW91dHB1dCAi dW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9i YXNlX2FyY2hpdmV9IiAiJHtkYXJ3aW5fYXJjaGl2ZX0iCi0rCSAgICAgIGNkICJ1bmZhdC0kJC8k e2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9IgotKwkgICAgICBmdW5jX2V4dHJh Y3RfYW5fYXJjaGl2ZSAiYHB3ZGAiICIke2Rhcndpbl9iYXNlX2FyY2hpdmV9IgotKwkgICAgICBj ZCAiJGRhcndpbl9jdXJkaXIiCi0rCSAgICAgICRSTSAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9h cmNoaXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9IgotKwkgICAgZG9u ZSAjICRkYXJ3aW5fYXJjaGVzCi0rICAgICAgICAgICAgIyMgT2theSBub3cgd2UndmUgYSBidW5j aCBvZiB0aGluIG9iamVjdHMsIGdvdHRhIGZhdHRlbiB0aGVtIHVwIDopCi0rCSAgICBkYXJ3aW5f ZmlsZWxpc3Q9YGZpbmQgdW5mYXQtJCQgLXR5cGUgZiAtbmFtZSBcKi5vIC1wcmludCAtbyAtbmFt ZSBcKi5sbyAtcHJpbnQgfCAkU0VEIC1lICIkYmFzZW5hbWUiIHwgc29ydCAtdWAKLSsJICAgIGRh cndpbl9maWxlPQotKwkgICAgZGFyd2luX2ZpbGVzPQotKwkgICAgZm9yIGRhcndpbl9maWxlIGlu ICRkYXJ3aW5fZmlsZWxpc3Q7IGRvCi0rCSAgICAgIGRhcndpbl9maWxlcz1gZmluZCB1bmZhdC0k JCAtbmFtZSAkZGFyd2luX2ZpbGUgLXByaW50IHwgJE5MMlNQYAotKwkgICAgICAkTElQTyAtY3Jl YXRlIC1vdXRwdXQgIiRkYXJ3aW5fZmlsZSIgJGRhcndpbl9maWxlcwotKwkgICAgZG9uZSAjICRk YXJ3aW5fZmlsZWxpc3QKLSsJICAgICRSTSAtcmYgdW5mYXQtJCQKLSsJICAgIGNkICIkZGFyd2lu X29yaWdfZGlyIgotKwkgIGVsc2UKLSsJICAgIGNkICRkYXJ3aW5fb3JpZ19kaXIKLSsJICAgIGZ1 bmNfZXh0cmFjdF9hbl9hcmNoaXZlICIkbXlfeGRpciIgIiRteV94YWJzIgotKwkgIGZpICMgJGRh cndpbl9hcmNoZXMKLSsJfSAjICEkb3B0X2RyeV9ydW4KLSsJOzsKLSsgICAgICAqKQotKyAgICAg ICAgZnVuY19leHRyYWN0X2FuX2FyY2hpdmUgIiRteV94ZGlyIiAiJG15X3hhYnMiCi0rCTs7Ci0r ICAgICAgZXNhYwotKyAgICAgIG15X29sZG9ianM9IiRteV9vbGRvYmpzICJgZmluZCAkbXlfeGRp ciAtbmFtZSBcKi4kb2JqZXh0IC1wcmludCAtbyAtbmFtZSBcKi5sbyAtcHJpbnQgfCAkTkwyU1Bg Ci0rICAgIGRvbmUKLSsKLSsgICAgZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdD0iJG15X29s ZG9ianMiCi0rfQotKwotKwotKwotKyMgZnVuY19lbWl0X3dyYXBwZXJfcGFydDEgW2FyZz1ub10K LSsjCi0rIyBFbWl0IHRoZSBmaXJzdCBwYXJ0IG9mIGEgbGlidG9vbCB3cmFwcGVyIHNjcmlwdCBv biBzdGRvdXQuCi0rIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkZXNjcmlwdGlvbiBh c3NvY2lhdGVkIHdpdGgKLSsjIGZ1bmNfZW1pdF93cmFwcGVyKCksIGJlbG93LgotK2Z1bmNfZW1p dF93cmFwcGVyX3BhcnQxICgpCi0rewotKwlmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MV9hcmcxPW5v Ci0rCWlmIHRlc3QgLW4gIiQxIiA7IHRoZW4KLSsJICBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MV9h cmcxPSQxCi0rCWZpCi0rCi0rCSRFQ0hPICJcCi0rIyEgJFNIRUxMCi0rCi0rIyAkb3V0cHV0IC0g dGVtcG9yYXJ5IHdyYXBwZXIgc2NyaXB0IGZvciAkb2JqZGlyLyRvdXRwdXRuYW1lCi0rIyBHZW5l cmF0ZWQgYnkgJFBST0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OCi0rIwot KyMgVGhlICRvdXRwdXQgcHJvZ3JhbSBjYW5ub3QgYmUgZGlyZWN0bHkgZXhlY3V0ZWQgdW50aWwg YWxsIHRoZSBsaWJ0b29sCi0rIyBsaWJyYXJpZXMgdGhhdCBpdCBkZXBlbmRzIG9uIGFyZSBpbnN0 YWxsZWQuCi0rIwotKyMgVGhpcyB3cmFwcGVyIHNjcmlwdCBzaG91bGQgbmV2ZXIgYmUgbW92ZWQg b3V0IG9mIHRoZSBidWlsZCBkaXJlY3RvcnkuCi0rIyBJZiBpdCBpcywgaXQgd2lsbCBub3Qgb3Bl cmF0ZSBjb3JyZWN0bHkuCi0rCi0rIyBTZWQgc3Vic3RpdHV0aW9uIHRoYXQgaGVscHMgdXMgZG8g cm9idXN0IHF1b3RpbmcuICBJdCBiYWNrc2xhc2hpZmllcwotKyMgbWV0YWNoYXJhY3RlcnMgdGhh dCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUtcXVvdGVkIHN0cmluZ3MuCi0rWHNlZD0n JHtTRUR9IC1lIDFzL15YLy8nCi0rc2VkX3F1b3RlX3N1YnN0PSckc2VkX3F1b3RlX3N1YnN0Jwot KwotKyMgQmUgQm91cm5lIGNvbXBhdGlibGUKLStpZiB0ZXN0IC1uIFwiXCR7WlNIX1ZFUlNJT04r c2V0fVwiICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIGVtdWxhdGUg c2gKLSsgIE5VTExDTUQ9OgotKyAgIyBac2ggMy54IGFuZCA0LnggcGVyZm9ybXMgd29yZCBzcGxp dHRpbmcgb24gXCR7MStcIlwkQFwifSwgd2hpY2gKLSsgICMgaXMgY29udHJhcnkgdG8gb3VyIHVz YWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCi0rICBhbGlhcyAtZyAnXCR7MStcIlwkQFwifSc9 J1wiXCRAXCInCi0rICBzZXRvcHQgTk9fR0xPQl9TVUJTVAotK2Vsc2UKLSsgIGNhc2UgXGAoc2V0 IC1vKSAyPi9kZXYvbnVsbFxgIGluICpwb3NpeCopIHNldCAtbyBwb3NpeDs7IGVzYWMKLStmaQot K0JJTl9TSD14cGc0OyBleHBvcnQgQklOX1NIICMgZm9yIFRydTY0Ci0rRFVBTENBU0U9MTsgZXhw b3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAotKwotKyMgVGhlIEhQLVVYIGtzaCBhbmQgUE9TSVgg c2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gc3Rkb3V0Ci0rIyBpZiBDRFBBVEgg aXMgc2V0LgotKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgK LSsKLStyZWxpbmtfY29tbWFuZD1cIiRyZWxpbmtfY29tbWFuZFwiCi0rCi0rIyBUaGlzIGVudmly b25tZW50IHZhcmlhYmxlIGRldGVybWluZXMgb3VyIG9wZXJhdGlvbiBtb2RlLgotK2lmIHRlc3Qg XCJcJGxpYnRvb2xfaW5zdGFsbF9tYWdpY1wiID0gXCIkbWFnaWNcIjsgdGhlbgotKyAgIyBpbnN0 YWxsIG1vZGUgbmVlZHMgdGhlIGZvbGxvd2luZyB2YXJpYWJsZXM6Ci0rICBnZW5lcmF0ZWRfYnlf bGlidG9vbF92ZXJzaW9uPSckbWFjcm9fdmVyc2lvbicKLSsgIG5vdGluc3RfZGVwbGlicz0nJG5v dGluc3RfZGVwbGlicycKLStlbHNlCi0rICAjIFdoZW4gd2UgYXJlIHNvdXJjZWQgaW4gZXhlY3V0 ZSBtb2RlLCBcJGZpbGUgYW5kIFwkRUNITyBhcmUgYWxyZWFkeSBzZXQuCi0rICBpZiB0ZXN0IFwi XCRsaWJ0b29sX2V4ZWN1dGVfbWFnaWNcIiAhPSBcIiRtYWdpY1wiOyB0aGVuCi0rICAgIEVDSE89 XCIkcWVjaG9cIgotKyAgICBmaWxlPVwiXCQwXCIKLSsgICAgIyBNYWtlIHN1cmUgZWNobyB3b3Jr cy4KLSsgICAgaWYgdGVzdCBcIlhcJDFcIiA9IFgtLW5vLXJlZXhlYzsgdGhlbgotKyAgICAgICMg RGlzY2FyZCB0aGUgLS1uby1yZWV4ZWMgZmxhZywgYW5kIGNvbnRpbnVlLgotKyAgICAgIHNoaWZ0 Ci0rICAgIGVsaWYgdGVzdCBcIlhcYHsgXCRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxcYFwiID0g J1hcdCc7IHRoZW4KLSsgICAgICAjIFlpcHBlZSwgXCRFQ0hPIHdvcmtzIQotKyAgICAgIDoKLSsg ICAgZWxzZQotKyAgICAgICMgUmVzdGFydCB1bmRlciB0aGUgY29ycmVjdCBzaGVsbCwgYW5kIHRo ZW4gbWF5YmUgXCRFQ0hPIHdpbGwgd29yay4KLSsgICAgICBleGVjICRTSEVMTCBcIlwkMFwiIC0t bm8tcmVleGVjIFwkezErXCJcJEBcIn0KLSsgICAgZmkKLSsgIGZpXAotKyIKLSsJJEVDSE8gIlwK LSsKLSsgICMgRmluZCB0aGUgZGlyZWN0b3J5IHRoYXQgdGhpcyBzY3JpcHQgbGl2ZXMgaW4uCi0r ICB0aGlzZGlyPVxgXCRFQ0hPIFwiWFwkZmlsZVwiIHwgXCRYc2VkIC1lICdzJS9bXi9dKiQlJSdc YAotKyAgdGVzdCBcInhcJHRoaXNkaXJcIiA9IFwieFwkZmlsZVwiICYmIHRoaXNkaXI9LgotKwot KyAgIyBGb2xsb3cgc3ltYm9saWMgbGlua3MgdW50aWwgd2UgZ2V0IHRvIHRoZSByZWFsIHRoaXNk aXIuCi0rICBmaWxlPVxgbHMgLWxkIFwiXCRmaWxlXCIgfCAke1NFRH0gLW4gJ3MvLiotPiAvL3An XGAKLSsgIHdoaWxlIHRlc3QgLW4gXCJcJGZpbGVcIjsgZG8KLSsgICAgZGVzdGRpcj1cYFwkRUNI TyBcIlhcJGZpbGVcIiB8IFwkWHNlZCAtZSAncyUvW14vXSpcJCUlJ1xgCi0rCi0rICAgICMgSWYg dGhlcmUgd2FzIGEgZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBjaGFuZ2UgdGhpc2Rpci4KLSsg ICAgaWYgdGVzdCBcInhcJGRlc3RkaXJcIiAhPSBcInhcJGZpbGVcIjsgdGhlbgotKyAgICAgIGNh c2UgXCJcJGRlc3RkaXJcIiBpbgotKyAgICAgIFtcXFxcL10qIHwgW0EtWmEtel06W1xcXFwvXSop IHRoaXNkaXI9XCJcJGRlc3RkaXJcIiA7OwotKyAgICAgICopIHRoaXNkaXI9XCJcJHRoaXNkaXIv XCRkZXN0ZGlyXCIgOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rCi0rICAgIGZpbGU9XGBcJEVD SE8gXCJYXCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3MlXi4qLyUlJ1xgCi0rICAgIGZpbGU9XGBscyAt bGQgXCJcJHRoaXNkaXIvXCRmaWxlXCIgfCAke1NFRH0gLW4gJ3MvLiotPiAvL3AnXGAKLSsgIGRv bmUKLSsiCi0rfQotKyMgZW5kOiBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MQotKwotKyMgZnVuY19l bWl0X3dyYXBwZXJfcGFydDIgW2FyZz1ub10KLSsjCi0rIyBFbWl0IHRoZSBzZWNvbmQgcGFydCBv ZiBhIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgb24gc3Rkb3V0LgotKyMgRm9yIG1vcmUgaW5mb3Jt YXRpb24sIHNlZSB0aGUgZGVzY3JpcHRpb24gYXNzb2NpYXRlZCB3aXRoCi0rIyBmdW5jX2VtaXRf d3JhcHBlcigpLCBiZWxvdy4KLStmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MiAoKQotK3sKLSsJZnVu Y19lbWl0X3dyYXBwZXJfcGFydDJfYXJnMT1ubwotKwlpZiB0ZXN0IC1uICIkMSIgOyB0aGVuCi0r CSAgZnVuY19lbWl0X3dyYXBwZXJfcGFydDJfYXJnMT0kMQotKwlmaQotKwotKwkkRUNITyAiXAot KwotKyAgIyBVc3VhbGx5ICdubycsIGV4Y2VwdCBvbiBjeWd3aW4vbWluZ3cgd2hlbiBlbWJlZGRl ZCBpbnRvCi0rICAjIHRoZSBjd3JhcHBlci4KLSsgIFdSQVBQRVJfU0NSSVBUX0JFTE9OR1NfSU5f T0JKRElSPSRmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0Ml9hcmcxCi0rICBpZiB0ZXN0IFwiXCRXUkFQ UEVSX1NDUklQVF9CRUxPTkdTX0lOX09CSkRJUlwiID0gXCJ5ZXNcIjsgdGhlbgotKyAgICAjIHNw ZWNpYWwgY2FzZSBmb3IgJy4nCi0rICAgIGlmIHRlc3QgXCJcJHRoaXNkaXJcIiA9IFwiLlwiOyB0 aGVuCi0rICAgICAgdGhpc2Rpcj1cYHB3ZFxgCi0rICAgIGZpCi0rICAgICMgcmVtb3ZlIC5saWJz IGZyb20gdGhpc2RpcgotKyAgICBjYXNlIFwiXCR0aGlzZGlyXCIgaW4KLSsgICAgKltcXFxcL10k b2JqZGlyICkgdGhpc2Rpcj1cYFwkRUNITyBcIlhcJHRoaXNkaXJcIiB8IFwkWHNlZCAtZSAncyVb XFxcXC9dW15cXFxcL10qJCUlJ1xgIDs7Ci0rICAgICRvYmpkaXIgKSAgIHRoaXNkaXI9LiA7Owot KyAgICBlc2FjCi0rICBmaQotKwotKyAgIyBUcnkgdG8gZ2V0IHRoZSBhYnNvbHV0ZSBkaXJlY3Rv cnkgbmFtZS4KLSsgIGFic2Rpcj1cYGNkIFwiXCR0aGlzZGlyXCIgJiYgcHdkXGAKLSsgIHRlc3Qg LW4gXCJcJGFic2RpclwiICYmIHRoaXNkaXI9XCJcJGFic2RpclwiCi0rIgotKwotKwlpZiB0ZXN0 ICIkZmFzdF9pbnN0YWxsIiA9IHllczsgdGhlbgotKwkgICRFQ0hPICJcCi0rICBwcm9ncmFtPWx0 LSckb3V0cHV0bmFtZSckZXhlZXh0Ci0rICBwcm9nZGlyPVwiXCR0aGlzZGlyLyRvYmpkaXJcIgot KwotKyAgaWYgdGVzdCAhIC1mIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiIHx8Ci0rICAgICB7IGZp bGU9XGBscyAtMWR0IFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiIFwiXCRwcm9nZGlyLy4uL1wkcHJv Z3JhbVwiIDI+L2Rldi9udWxsIHwgJHtTRUR9IDFxXGA7IFxcCi0rICAgICAgIHRlc3QgXCJYXCRm aWxlXCIgIT0gXCJYXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOyB9OyB0aGVuCi0rCi0rICAgIGZpbGU9 XCJcJFwkLVwkcHJvZ3JhbVwiCi0rCi0rICAgIGlmIHRlc3QgISAtZCBcIlwkcHJvZ2RpclwiOyB0 aGVuCi0rICAgICAgJE1LRElSIFwiXCRwcm9nZGlyXCIKLSsgICAgZWxzZQotKyAgICAgICRSTSBc IlwkcHJvZ2Rpci9cJGZpbGVcIgotKyAgICBmaSIKLSsKLSsJICAkRUNITyAiXAotKwotKyAgICAj IHJlbGluayBleGVjdXRhYmxlIGlmIG5lY2Vzc2FyeQotKyAgICBpZiB0ZXN0IC1uIFwiXCRyZWxp bmtfY29tbWFuZFwiOyB0aGVuCi0rICAgICAgaWYgcmVsaW5rX2NvbW1hbmRfb3V0cHV0PVxgZXZh bCBcJHJlbGlua19jb21tYW5kIDI+JjFcYDsgdGhlbiA6Ci0rICAgICAgZWxzZQotKwkkRUNITyBc IlwkcmVsaW5rX2NvbW1hbmRfb3V0cHV0XCIgPiYyCi0rCSRSTSBcIlwkcHJvZ2Rpci9cJGZpbGVc IgotKwlleGl0IDEKLSsgICAgICBmaQotKyAgICBmaQotKwotKyAgICAkTVYgXCJcJHByb2dkaXIv XCRmaWxlXCIgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgMj4vZGV2L251bGwgfHwKLSsgICAgeyAk Uk0gXCJcJHByb2dkaXIvXCRwcm9ncmFtXCI7Ci0rICAgICAgJE1WIFwiXCRwcm9nZGlyL1wkZmls ZVwiIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOyB9Ci0rICAgICRSTSBcIlwkcHJvZ2Rpci9cJGZp bGVcIgotKyAgZmkiCi0rCWVsc2UKLSsJICAkRUNITyAiXAotKyAgcHJvZ3JhbT0nJG91dHB1dG5h bWUnCi0rICBwcm9nZGlyPVwiXCR0aGlzZGlyLyRvYmpkaXJcIgotKyIKLSsJZmkKLSsKLSsJJEVD SE8gIlwKLSsKLSsgIGlmIHRlc3QgLWYgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCI7IHRoZW4iCi0r Ci0rCSMgRXhwb3J0IG91ciBzaGxpYnBhdGhfdmFyIGlmIHdlIGhhdmUgb25lLgotKwlpZiB0ZXN0 ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHllcyAmJiB0ZXN0IC1uICIkc2hsaWJw YXRoX3ZhciIgJiYgdGVzdCAtbiAiJHRlbXBfcnBhdGgiOyB0aGVuCi0rCSAgJEVDSE8gIlwKLSsg ICAgIyBBZGQgb3VyIG93biBsaWJyYXJ5IHBhdGggdG8gJHNobGlicGF0aF92YXIKLSsgICAgJHNo bGlicGF0aF92YXI9XCIkdGVtcF9ycGF0aFwkJHNobGlicGF0aF92YXJcIgotKwotKyAgICAjIFNv bWUgc3lzdGVtcyBjYW5ub3QgY29wZSB3aXRoIGNvbG9uLXRlcm1pbmF0ZWQgJHNobGlicGF0aF92 YXIKLSsgICAgIyBUaGUgc2Vjb25kIGNvbG9uIGlzIGEgd29ya2Fyb3VuZCBmb3IgYSBidWcgaW4g QmVPUyBSNCBzZWQKLSsgICAgJHNobGlicGF0aF92YXI9XGBcJEVDSE8gXCJYXCQkc2hsaWJwYXRo X3ZhclwiIHwgXCRYc2VkIC1lICdzLzo6KlwkLy8nXGAKLSsKLSsgICAgZXhwb3J0ICRzaGxpYnBh dGhfdmFyCi0rIgotKwlmaQotKwotKwkjIGZpeHVwIHRoZSBkbGwgc2VhcmNocGF0aCBpZiB3ZSBu ZWVkIHRvLgotKwlpZiB0ZXN0IC1uICIkZGxsc2VhcmNocGF0aCI7IHRoZW4KLSsJICAkRUNITyAi XAotKyAgICAjIEFkZCB0aGUgZGxsIHNlYXJjaCBwYXRoIGNvbXBvbmVudHMgdG8gdGhlIGV4ZWN1 dGFibGUgUEFUSAotKyAgICBQQVRIPSRkbGxzZWFyY2hwYXRoOlwkUEFUSAotKyIKLSsJZmkKLSsK LSsJJEVDSE8gIlwKLSsgICAgaWYgdGVzdCBcIlwkbGlidG9vbF9leGVjdXRlX21hZ2ljXCIgIT0g XCIkbWFnaWNcIjsgdGhlbgotKyAgICAgICMgUnVuIHRoZSBhY3R1YWwgcHJvZ3JhbSB3aXRoIG91 ciBhcmd1bWVudHMuCi0rIgotKwljYXNlICRob3N0IGluCi0rCSMgQmFja3NsYXNoZXMgc2VwYXJh dGUgZGlyZWN0b3JpZXMgb24gcGxhaW4gd2luZG93cwotKwkqLSotbWluZ3cgfCAqLSotb3MyKiB8 ICotY2VnY2MqKQotKwkgICRFQ0hPICJcCi0rICAgICAgZXhlYyBcIlwkcHJvZ2RpclxcXFxcJHBy b2dyYW1cIiBcJHsxK1wiXCRAXCJ9Ci0rIgotKwkgIDs7Ci0rCi0rCSopCi0rCSAgJEVDSE8gIlwK LSsgICAgICBleGVjIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiIFwkezErXCJcJEBcIn0KLSsiCi0r CSAgOzsKLSsJZXNhYwotKwkkRUNITyAiXAotKyAgICAgIFwkRUNITyBcIlwkMDogY2Fubm90IGV4 ZWMgXCRwcm9ncmFtIFwkKlwiIDE+JjIKLSsgICAgICBleGl0IDEKLSsgICAgZmkKLSsgIGVsc2UK LSsgICAgIyBUaGUgcHJvZ3JhbSBkb2Vzbid0IGV4aXN0LgotKyAgICBcJEVDSE8gXCJcJDA6IGVy cm9yOiBcXFxgXCRwcm9nZGlyL1wkcHJvZ3JhbScgZG9lcyBub3QgZXhpc3RcIiAxPiYyCi0rICAg IFwkRUNITyBcIlRoaXMgc2NyaXB0IGlzIGp1c3QgYSB3cmFwcGVyIGZvciBcJHByb2dyYW0uXCIg MT4mMgotKyAgICAkRUNITyBcIlNlZSB0aGUgJFBBQ0tBR0UgZG9jdW1lbnRhdGlvbiBmb3IgbW9y ZSBpbmZvcm1hdGlvbi5cIiAxPiYyCi0rICAgIGV4aXQgMQotKyAgZmkKLStmaVwKLSsiCi0rfQot KyMgZW5kOiBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MgotKwotKwotKyMgZnVuY19lbWl0X3dyYXBw ZXIgW2FyZz1ub10KLSsjCi0rIyBFbWl0IGEgbGlidG9vbCB3cmFwcGVyIHNjcmlwdCBvbiBzdGRv dXQuCi0rIyBEb24ndCBkaXJlY3RseSBvcGVuIGEgZmlsZSBiZWNhdXNlIHdlIG1heSB3YW50IHRv Ci0rIyBpbmNvcnBvcmF0ZSB0aGUgc2NyaXB0IGNvbnRlbnRzIHdpdGhpbiBhIGN5Z3dpbi9taW5n dwotKyMgd3JhcHBlciBleGVjdXRhYmxlLiAgTXVzdCBPTkxZIGJlIGNhbGxlZCBmcm9tIHdpdGhp bgotKyMgZnVuY19tb2RlX2xpbmsgYmVjYXVzZSBpdCBkZXBlbmRzIG9uIGEgbnVtYmVyIG9mIHZh cmlhYmxlcwotKyMgc2V0IHRoZXJlaW4uCi0rIwotKyMgQVJHIGlzIHRoZSB2YWx1ZSB0aGF0IHRo ZSBXUkFQUEVSX1NDUklQVF9CRUxPTkdTX0lOX09CSkRJUgotKyMgdmFyaWFibGUgd2lsbCB0YWtl LiAgSWYgJ3llcycsIHRoZW4gdGhlIGVtaXR0ZWQgc2NyaXB0Ci0rIyB3aWxsIGFzc3VtZSB0aGF0 IHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggaXQgaXMgc3RvcmVkIGlzCi0rIyB0aGUgJG9iamRpciBk aXJlY3RvcnkuICBUaGlzIGlzIGEgY3lnd2luL21pbmd3LXNwZWNpZmljCi0rIyBiZWhhdmlvci4K LStmdW5jX2VtaXRfd3JhcHBlciAoKQotK3sKLSsJZnVuY19lbWl0X3dyYXBwZXJfYXJnMT1ubwot KwlpZiB0ZXN0IC1uICIkMSIgOyB0aGVuCi0rCSAgZnVuY19lbWl0X3dyYXBwZXJfYXJnMT0kMQot KwlmaQotKwotKwkjIHNwbGl0IHRoaXMgdXAgc28gdGhhdCBmdW5jX2VtaXRfY3dyYXBwZXJleGVf c3JjCi0rCSMgY2FuIGNhbGwgZWFjaCBwYXJ0IGluZGVwZW5kZW50bHkuCi0rCWZ1bmNfZW1pdF93 cmFwcGVyX3BhcnQxICIke2Z1bmNfZW1pdF93cmFwcGVyX2FyZzF9IgotKwlmdW5jX2VtaXRfd3Jh cHBlcl9wYXJ0MiAiJHtmdW5jX2VtaXRfd3JhcHBlcl9hcmcxfSIKLSt9Ci0rCi0rCi0rIyBmdW5j X3RvX2hvc3RfcGF0aCBhcmcKLSsjCi0rIyBDb252ZXJ0IHBhdGhzIHRvIGhvc3QgZm9ybWF0IHdo ZW4gdXNlZCB3aXRoIGJ1aWxkIHRvb2xzLgotKyMgSW50ZW5kZWQgZm9yIHVzZSB3aXRoICJuYXRp dmUiIG1pbmd3ICh3aGVyZSBsaWJ0b29sIGl0c2VsZgotKyMgaXMgcnVubmluZyB1bmRlciB0aGUg bXN5cyBzaGVsbCksIG9yIGluIHRoZSBmb2xsb3dpbmcgY3Jvc3MtCi0rIyBidWlsZCBlbnZpcm9u bWVudHM6Ci0rIyAgICAkYnVpbGQgICAgICAgICAgJGhvc3QKLSsjICAgIG1pbmd3IChtc3lzKSAg ICBtaW5ndyAgW2UuZy4gbmF0aXZlXQotKyMgICAgY3lnd2luICAgICAgICAgIG1pbmd3Ci0rIyAg ICAqbml4ICsgd2luZSAgICAgbWluZ3cKLSsjIHdoZXJlIHdpbmUgaXMgZXF1aXBwZWQgd2l0aCB0 aGUgYHdpbmVwYXRoJyBleGVjdXRhYmxlLgotKyMgSW4gdGhlIG5hdGl2ZSBtaW5ndyBjYXNlLCB0 aGUgKG1zeXMpIHNoZWxsIGF1dG9tYXRpY2FsbHkKLSsjIGNvbnZlcnRzIHBhdGhzIGZvciBhbnkg bm9uLW1zeXMgYXBwbGljYXRpb25zIGl0IGxhdW5jaGVzLAotKyMgYnV0IHRoYXQgZmFjaWxpdHkg aXNuJ3QgYXZhaWxhYmxlIGZyb20gaW5zaWRlIHRoZSBjd3JhcHBlci4KLSsjIFNpbWlsYXIgYWNj b21tb2RhdGlvbnMgYXJlIG5lY2Vzc2FyeSBmb3IgJGhvc3QgbWluZ3cgYW5kCi0rIyAkYnVpbGQg Y3lnd2luLiAgQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGRvZXMgbm8gaGFybSBmb3Igb3RoZXIKLSsj ICRob3N0LyRidWlsZCBjb21iaW5hdGlvbnMgbm90IGxpc3RlZCBhYm92ZS4KLSsjCi0rIyBBUkcg aXMgdGhlIHBhdGggKG9uICRidWlsZCkgdGhhdCBzaG91bGQgYmUgY29udmVydGVkIHRvCi0rIyB0 aGUgcHJvcGVyIHJlcHJlc2VudGF0aW9uIGZvciAkaG9zdC4gVGhlIHJlc3VsdCBpcyBzdG9yZWQK LSsjIGluICRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQuCi0rZnVuY190b19ob3N0X3BhdGggKCkK LSt7Ci0rICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQxIgotKyAgaWYgdGVzdCAtbiAiJDEi IDsgdGhlbgotKyAgICBjYXNlICRob3N0IGluCi0rICAgICAgKm1pbmd3KiApCi0rICAgICAgICBs dF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5PSdzfFxcXFwqfFxcfGc7c3wvfFxcfGc7c3xcXHxcXFxc fGcnCi0rICAgICAgICBjYXNlICRidWlsZCBpbgotKyAgICAgICAgICAqbWluZ3cqICkgIyBhY3R1 YWxseSwgbXN5cwotKyAgICAgICAgICAgICMgYXdrd2FyZDogY21kIGFwcGVuZHMgc3BhY2VzIHRv IHJlc3VsdAotKyAgICAgICAgICAgIGx0X3NlZF9zdHJpcF90cmFpbGluZ19zcGFjZXM9InMvWyBd KlwkLy8iCi0rICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfdG1wMT1gKCBjbWQgLy9jIGVj aG8gIiQxIiB8XAotKyAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9zdHJpcF90cmFpbGlu Z19zcGFjZXMiICkgMj4vZGV2L251bGwgfHwgZWNobyAiImAKLSsgICAgICAgICAgICBmdW5jX3Rv X2hvc3RfcGF0aF9yZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiB8XAotKyAg ICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAotKyAgICAg ICAgICAgIDs7Ci0rICAgICAgICAgICpjeWd3aW4qICkKLSsgICAgICAgICAgICBmdW5jX3RvX2hv c3RfcGF0aF90bXAxPWBjeWdwYXRoIC13ICIkMSJgCi0rICAgICAgICAgICAgZnVuY190b19ob3N0 X3BhdGhfcmVzdWx0PWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIgfFwKLSsgICAgICAg ICAgICAgICRTRUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKLSsgICAgICAgICAg ICA7OwotKyAgICAgICAgICAqICkKLSsgICAgICAgICAgICAjIFVuZm9ydHVuYXRlbHksIHdpbmVw YXRoIGRvZXMgbm90IGV4aXQgd2l0aCBhIG5vbi16ZXJvCi0rICAgICAgICAgICAgIyBlcnJvciBj b2RlLCBzbyB3ZSBhcmUgZm9yY2VkIHRvIGNoZWNrIHRoZSBjb250ZW50cyBvZgotKyAgICAgICAg ICAgICMgc3Rkb3V0LiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgdGhlIGNvbW1hbmQgaXMgbm90Ci0r ICAgICAgICAgICAgIyBmb3VuZCwgdGhlIHNoZWxsIHdpbGwgc2V0IGFuIGV4aXQgY29kZSBvZiAx MjcgYW5kIHByaW50Ci0rICAgICAgICAgICAgIyAqYW4gZXJyb3IgbWVzc2FnZSogdG8gc3Rkb3V0 LiBTbyB3ZSBtdXN0IGNoZWNrIGZvciBib3RoCi0rICAgICAgICAgICAgIyBlcnJvciBjb2RlIG9m IHplcm8gQU5EIG5vbi1lbXB0eSBzdGRvdXQsIHdoaWNoIGV4cGxhaW5zCi0rICAgICAgICAgICAg IyB0aGUgb2RkIGNvbnN0cnVjdGlvbjoKLSsgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF90 bXAxPWB3aW5lcGF0aCAtdyAiJDEiIDI+L2Rldi9udWxsYAotKyAgICAgICAgICAgIGlmIHRlc3Qg IiQ/IiAtZXEgMCAmJiB0ZXN0IC1uICIke2Z1bmNfdG9faG9zdF9wYXRoX3RtcDF9IjsgdGhlbgot KyAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PWBlY2hvICIkZnVuY190b19o b3N0X3BhdGhfdG1wMSIgfFwKLSsgICAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9uYWl2 ZV9iYWNrc2xhc2hpZnkiYAotKyAgICAgICAgICAgIGVsc2UKLSsgICAgICAgICAgICAgICMgQWxs b3cgd2FybmluZyBiZWxvdy4KLSsgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3Vs dD0iIgotKyAgICAgICAgICAgIGZpCi0rICAgICAgICAgICAgOzsKLSsgICAgICAgIGVzYWMKLSsg ICAgICAgIGlmIHRlc3QgLXogIiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiIDsgdGhlbgotKyAg ICAgICAgICBmdW5jX2Vycm9yICJDb3VsZCBub3QgZGV0ZXJtaW5lIGhvc3QgcGF0aCBjb3JyZXNw b25kaW5nIHRvIgotKyAgICAgICAgICBmdW5jX2Vycm9yICIgICckMSciCi0rICAgICAgICAgIGZ1 bmNfZXJyb3IgIkNvbnRpbnVpbmcsIGJ1dCB1bmluc3RhbGxlZCBleGVjdXRhYmxlcyBtYXkgbm90 IHdvcmsuIgotKyAgICAgICAgICAjIEZhbGxiYWNrOgotKyAgICAgICAgICBmdW5jX3RvX2hvc3Rf cGF0aF9yZXN1bHQ9IiQxIgotKyAgICAgICAgZmkKLSsgICAgICAgIDs7Ci0rICAgIGVzYWMKLSsg IGZpCi0rfQotKyMgZW5kOiBmdW5jX3RvX2hvc3RfcGF0aAotKwotKyMgZnVuY190b19ob3N0X3Bh dGhsaXN0IGFyZwotKyMKLSsjIENvbnZlcnQgcGF0aGxpc3RzIHRvIGhvc3QgZm9ybWF0IHdoZW4g dXNlZCB3aXRoIGJ1aWxkIHRvb2xzLgotKyMgU2VlIGZ1bmNfdG9faG9zdF9wYXRoKCksIGFib3Zl LiBUaGlzIGZ1bmN0aW9uIHN1cHBvcnRzIHRoZQotKyMgZm9sbG93aW5nICRidWlsZC8kaG9zdCBj b21iaW5hdGlvbnMgKGJ1dCBkb2VzIG5vIGhhcm0gZm9yCi0rIyBjb21iaW5hdGlvbnMgbm90IGxp c3RlZCBoZXJlKToKLSsjICAgICRidWlsZCAgICAgICAgICAkaG9zdAotKyMgICAgbWluZ3cgKG1z eXMpICAgIG1pbmd3ICBbZS5nLiBuYXRpdmVdCi0rIyAgICBjeWd3aW4gICAgICAgICAgbWluZ3cK LSsjICAgICpuaXggKyB3aW5lICAgICBtaW5ndwotKyMKLSsjIFBhdGggc2VwYXJhdG9ycyBhcmUg YWxzbyBjb252ZXJ0ZWQgZnJvbSAkYnVpbGQgZm9ybWF0IHRvCi0rIyAkaG9zdCBmb3JtYXQuIElm IEFSRyBiZWdpbnMgb3IgZW5kcyB3aXRoIGEgcGF0aCBzZXBhcmF0b3IKLSsjIGNoYXJhY3Rlciwg aXQgaXMgcHJlc2VydmVkIChidXQgY29udmVydGVkIHRvICRob3N0IGZvcm1hdCkKLSsjIG9uIG91 dHB1dC4KLSsjCi0rIyBBUkcgaXMgYSBwYXRobGlzdCAob24gJGJ1aWxkKSB0aGF0IHNob3VsZCBi ZSBjb252ZXJ0ZWQgdG8KLSsjIHRoZSBwcm9wZXIgcmVwcmVzZW50YXRpb24gb24gJGhvc3QuIFRo ZSByZXN1bHQgaXMgc3RvcmVkCi0rIyBpbiAkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdC4K LStmdW5jX3RvX2hvc3RfcGF0aGxpc3QgKCkKLSt7Ci0rICBmdW5jX3RvX2hvc3RfcGF0aGxpc3Rf cmVzdWx0PSIkMSIKLSsgIGlmIHRlc3QgLW4gIiQxIiA7IHRoZW4KLSsgICAgY2FzZSAkaG9zdCBp bgotKyAgICAgICptaW5ndyogKQotKyAgICAgICAgbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeT0n c3xcXFxcKnxcXHxnO3N8L3xcXHxnO3N8XFx8XFxcXHxnJwotKyAgICAgICAgIyBSZW1vdmUgbGVh ZGluZyBhbmQgdHJhaWxpbmcgcGF0aCBzZXBhcmF0b3IgY2hhcmFjdGVycyBmcm9tCi0rICAgICAg ICAjIEFSRy4gbXN5cyBiZWhhdmlvciBpcyBpbmNvbnNpc3RlbnQgaGVyZSwgY3lncGF0aCB0dXJu cyB0aGVtCi0rICAgICAgICAjIGludG8gJy47JyBhbmQgJzsuJywgYW5kIHdpbmVwYXRoIGlnbm9y ZXMgdGhlbSBjb21wbGV0ZWx5LgotKyAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDI9 IiQxIgotKyAgICAgICAgIyBPbmNlIHNldCBmb3IgdGhpcyBjYWxsLCB0aGlzIHZhcmlhYmxlIHNo b3VsZCBub3QgYmUKLSsgICAgICAgICMgcmVhc3NpZ25lZC4gSXQgaXMgdXNlZCBpbiB0aGEgZmFs bGJhY2sgY2FzZS4KLSsgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAxPWBlY2hvICIk ZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDIiIHxcCi0rICAgICAgICAgICRTRUQgLWUgJ3N8Xjoq fHwnIC1lICdzfDoqJHx8J2AKLSsgICAgICAgIGNhc2UgJGJ1aWxkIGluCi0rICAgICAgICAgICpt aW5ndyogKSAjIEFjdHVhbGx5LCBtc3lzLgotKyAgICAgICAgICAgICMgQXdrd2FyZDogY21kIGFw cGVuZHMgc3BhY2VzIHRvIHJlc3VsdC4KLSsgICAgICAgICAgICBsdF9zZWRfc3RyaXBfdHJhaWxp bmdfc3BhY2VzPSJzL1sgXSpcJC8vIgotKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlz dF90bXAyPWAoIGNtZCAvL2MgZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAxIiB8XAot KyAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9zdHJpcF90cmFpbGluZ19zcGFjZXMiICkg Mj4vZGV2L251bGwgfHwgZWNobyAiImAKLSsgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxp c3RfcmVzdWx0PWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDIiIHxcCi0rICAgICAg ICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCi0rICAgICAgICAg ICAgOzsKLSsgICAgICAgICAgKmN5Z3dpbiogKQotKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9w YXRobGlzdF90bXAyPWBjeWdwYXRoIC13IC1wICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDEi YAotKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9YGVjaG8gIiRmdW5j X3RvX2hvc3RfcGF0aGxpc3RfdG1wMiIgfFwKLSsgICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9z ZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKLSsgICAgICAgICAgICA7OwotKyAgICAgICAgICAqICkK LSsgICAgICAgICAgICAjIHVuZm9ydHVuYXRlbHksIHdpbmVwYXRoIGRvZXNuJ3QgY29udmVydCBw YXRobGlzdHMKLSsgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSIiCi0r ICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X29sZElGUz0kSUZTCi0rICAgICAgICAg ICAgSUZTPToKLSsgICAgICAgICAgICBmb3IgZnVuY190b19ob3N0X3BhdGhsaXN0X2YgaW4gJGZ1 bmNfdG9faG9zdF9wYXRobGlzdF90bXAxIDsgZG8KLSsgICAgICAgICAgICAgIElGUz0kZnVuY190 b19ob3N0X3BhdGhsaXN0X29sZElGUwotKyAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJGZ1bmNf dG9faG9zdF9wYXRobGlzdF9mIiA7IHRoZW4KLSsgICAgICAgICAgICAgICAgZnVuY190b19ob3N0 X3BhdGggIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfZiIKLSsgICAgICAgICAgICAgICAgaWYgdGVz dCAtbiAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIgOyB0aGVuCi0rICAgICAgICAgICAgICAg ICAgaWYgdGVzdCAteiAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQiIDsgdGhlbgotKyAg ICAgICAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0iJGZ1bmNfdG9f aG9zdF9wYXRoX3Jlc3VsdCIKLSsgICAgICAgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAg ICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSIkZnVuY190b19ob3N0X3BhdGhs aXN0X3Jlc3VsdDskZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IgotKyAgICAgICAgICAgICAgICAg IGZpCi0rICAgICAgICAgICAgICAgIGZpCi0rICAgICAgICAgICAgICBmaQotKyAgICAgICAgICAg ICAgSUZTPToKLSsgICAgICAgICAgICBkb25lCi0rICAgICAgICAgICAgSUZTPSRmdW5jX3RvX2hv c3RfcGF0aGxpc3Rfb2xkSUZTCi0rICAgICAgICAgICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAg ICAgIGlmIHRlc3QgLXogIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IiA7IHRoZW4KLSsg ICAgICAgICAgZnVuY19lcnJvciAiQ291bGQgbm90IGRldGVybWluZSB0aGUgaG9zdCBwYXRoKHMp IGNvcnJlc3BvbmRpbmcgdG8iCi0rICAgICAgICAgIGZ1bmNfZXJyb3IgIiAgJyQxJyIKLSsgICAg ICAgICAgZnVuY19lcnJvciAiQ29udGludWluZywgYnV0IHVuaW5zdGFsbGVkIGV4ZWN1dGFibGVz IG1heSBub3Qgd29yay4iCi0rICAgICAgICAgICMgRmFsbGJhY2suIFRoaXMgbWF5IGJyZWFrIGlm ICQxIGNvbnRhaW5zIERPUy1zdHlsZSBkcml2ZQotKyAgICAgICAgICAjIHNwZWNpZmljYXRpb25z LiBUaGUgZml4IGlzIG5vdCB0byBjb21wbGljYXRlIHRoZSBleHByZXNzaW9uCi0rICAgICAgICAg ICMgYmVsb3csIGJ1dCBmb3IgdGhlIHVzZXIgdG8gcHJvdmlkZSBhIHdvcmtpbmcgd2luZSBpbnN0 YWxsYXRpb24KLSsgICAgICAgICAgIyB3aXRoIHdpbmVwYXRoIHNvIHRoYXQgcGF0aCB0cmFuc2xh dGlvbiBpbiB0aGUgY3Jvc3MtdG8tbWluZ3cKLSsgICAgICAgICAgIyBjYXNlIHdvcmtzIHByb3Bl cmx5LgotKyAgICAgICAgICBsdF9yZXBsYWNlX3BhdGhzZXBfbml4X3RvX2Rvcz0ic3w6fDt8ZyIK LSsgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9f aG9zdF9wYXRobGlzdF90bXAxIiB8XAotKyAgICAgICAgICAgICRTRUQgLWUgIiRsdF9yZXBsYWNl X3BhdGhzZXBfbml4X3RvX2RvcyJgCi0rICAgICAgICBmaQotKyAgICAgICAgIyBOb3csIGFkZCB0 aGUgbGVhZGluZyBhbmQgdHJhaWxpbmcgcGF0aCBzZXBhcmF0b3JzIGJhY2sKLSsgICAgICAgIGNh c2UgIiQxIiBpbgotKyAgICAgICAgICA6KiApIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9 IjskZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCIKLSsgICAgICAgICAgICA7OwotKyAgICAg ICAgZXNhYwotKyAgICAgICAgY2FzZSAiJDEiIGluCi0rICAgICAgICAgICo6ICkgZnVuY190b19o b3N0X3BhdGhsaXN0X3Jlc3VsdD0iJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ7IgotKyAg ICAgICAgICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKyAgICBlc2FjCi0rICBm aQotK30KLSsjIGVuZDogZnVuY190b19ob3N0X3BhdGhsaXN0Ci0rCi0rIyBmdW5jX2VtaXRfY3dy YXBwZXJleGVfc3JjCi0rIyBlbWl0IHRoZSBzb3VyY2UgY29kZSBmb3IgYSB3cmFwcGVyIGV4ZWN1 dGFibGUgb24gc3Rkb3V0Ci0rIyBNdXN0IE9OTFkgYmUgY2FsbGVkIGZyb20gd2l0aGluIGZ1bmNf bW9kZV9saW5rIGJlY2F1c2UKLSsjIGl0IGRlcGVuZHMgb24gYSBudW1iZXIgb2YgdmFyaWFibGUg c2V0IHRoZXJlaW4uCi0rZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYyAoKQotK3sKLSsJY2F0IDw8 RU9GCi0rCi0rLyogJGN3cmFwcGVyc291cmNlIC0gdGVtcG9yYXJ5IHdyYXBwZXIgZXhlY3V0YWJs ZSBmb3IgJG9iamRpci8kb3V0cHV0bmFtZQotKyAgIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05V ICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KLSsKLSsgICBUaGUgJG91dHB1dCBwcm9ncmFt IGNhbm5vdCBiZSBkaXJlY3RseSBleGVjdXRlZCB1bnRpbCBhbGwgdGhlIGxpYnRvb2wKLSsgICBs aWJyYXJpZXMgdGhhdCBpdCBkZXBlbmRzIG9uIGFyZSBpbnN0YWxsZWQuCi0rCi0rICAgVGhpcyB3 cmFwcGVyIGV4ZWN1dGFibGUgc2hvdWxkIG5ldmVyIGJlIG1vdmVkIG91dCBvZiB0aGUgYnVpbGQg ZGlyZWN0b3J5LgotKyAgIElmIGl0IGlzLCBpdCB3aWxsIG5vdCBvcGVyYXRlIGNvcnJlY3RseS4K LSsKLSsgICBDdXJyZW50bHksIGl0IHNpbXBseSBleGVjcyB0aGUgd3JhcHBlciAqc2NyaXB0KiAi JFNIRUxMICRvdXRwdXQiLAotKyAgIGJ1dCBjb3VsZCBldmVudHVhbGx5IGFic29yYiBhbGwgb2Yg dGhlIHNjcmlwdHMgZnVuY3Rpb25hbGl0eSBhbmQKLSsgICBleGVjICRvYmpkaXIvJG91dHB1dG5h bWUgZGlyZWN0bHkuCi0rKi8KLStFT0YKLSsJICAgIGNhdCA8PCJFT0YiCi0rI2luY2x1ZGUgPHN0 ZGlvLmg+Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpZmRlZiBfTVNDX1ZFUgotKyMgaW5jbHVk ZSA8ZGlyZWN0Lmg+Ci0rIyBpbmNsdWRlIDxwcm9jZXNzLmg+Ci0rIyBpbmNsdWRlIDxpby5oPgot KyMgZGVmaW5lIHNldG1vZGUgX3NldG1vZGUKLSsjZWxzZQotKyMgaW5jbHVkZSA8dW5pc3RkLmg+ Ci0rIyBpbmNsdWRlIDxzdGRpbnQuaD4KLSsjIGlmZGVmIF9fQ1lHV0lOX18KLSsjICBpbmNsdWRl IDxpby5oPgotKyMgIGRlZmluZSBIQVZFX1NFVEVOVgotKyMgIGlmZGVmIF9fU1RSSUNUX0FOU0lf XwotK2NoYXIgKnJlYWxwYXRoIChjb25zdCBjaGFyICosIGNoYXIgKik7Ci0raW50IHB1dGVudiAo Y2hhciAqKTsKLStpbnQgc2V0ZW52IChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgaW50KTsK LSsjICBlbmRpZgotKyMgZW5kaWYKLSsjZW5kaWYKLSsjaW5jbHVkZSA8bWFsbG9jLmg+Ci0rI2lu Y2x1ZGUgPHN0ZGFyZy5oPgotKyNpbmNsdWRlIDxhc3NlcnQuaD4KLSsjaW5jbHVkZSA8c3RyaW5n Lmg+Ci0rI2luY2x1ZGUgPGN0eXBlLmg+Ci0rI2luY2x1ZGUgPGVycm5vLmg+Ci0rI2luY2x1ZGUg PGZjbnRsLmg+Ci0rI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0rCi0rI2lmIGRlZmluZWQoUEFUSF9N QVgpCi0rIyBkZWZpbmUgTFRfUEFUSE1BWCBQQVRIX01BWAotKyNlbGlmIGRlZmluZWQoTUFYUEFU SExFTikKLSsjIGRlZmluZSBMVF9QQVRITUFYIE1BWFBBVEhMRU4KLSsjZWxzZQotKyMgZGVmaW5l IExUX1BBVEhNQVggMTAyNAotKyNlbmRpZgotKwotKyNpZm5kZWYgU19JWE9USAotKyMgZGVmaW5l IFNfSVhPVEggMAotKyNlbmRpZgotKyNpZm5kZWYgU19JWEdSUAotKyMgZGVmaW5lIFNfSVhHUlAg MAotKyNlbmRpZgotKwotKyNpZmRlZiBfTVNDX1ZFUgotKyMgZGVmaW5lIFNfSVhVU1IgX1NfSUVY RUMKLSsjIGRlZmluZSBzdGF0IF9zdGF0Ci0rIyBpZm5kZWYgX0lOVFBUUl9UX0RFRklORUQKLSsj ICBkZWZpbmUgaW50cHRyX3QgaW50Ci0rIyBlbmRpZgotKyNlbmRpZgotKwotKyNpZm5kZWYgRElS X1NFUEFSQVRPUgotKyMgZGVmaW5lIERJUl9TRVBBUkFUT1IgJy8nCi0rIyBkZWZpbmUgUEFUSF9T RVBBUkFUT1IgJzonCi0rI2VuZGlmCi0rCi0rI2lmIGRlZmluZWQgKF9XSU4zMikgfHwgZGVmaW5l ZCAoX19NU0RPU19fKSB8fCBkZWZpbmVkIChfX0RKR1BQX18pIHx8IFwKLSsgIGRlZmluZWQgKF9f T1MyX18pCi0rIyBkZWZpbmUgSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0KLSsjIGRlZmluZSBG T1BFTl9XQiAid2IiCi0rIyBpZm5kZWYgRElSX1NFUEFSQVRPUl8yCi0rIyAgZGVmaW5lIERJUl9T RVBBUkFUT1JfMiAnXFwnCi0rIyBlbmRpZgotKyMgaWZuZGVmIFBBVEhfU0VQQVJBVE9SXzIKLSsj ICBkZWZpbmUgUEFUSF9TRVBBUkFUT1JfMiAnOycKLSsjIGVuZGlmCi0rI2VuZGlmCi0rCi0rI2lm bmRlZiBESVJfU0VQQVJBVE9SXzIKLSsjIGRlZmluZSBJU19ESVJfU0VQQVJBVE9SKGNoKSAoKGNo KSA9PSBESVJfU0VQQVJBVE9SKQotKyNlbHNlIC8qIERJUl9TRVBBUkFUT1JfMiAqLwotKyMgZGVm aW5lIElTX0RJUl9TRVBBUkFUT1IoY2gpIFwKLSsJKCgoY2gpID09IERJUl9TRVBBUkFUT1IpIHx8 ICgoY2gpID09IERJUl9TRVBBUkFUT1JfMikpCi0rI2VuZGlmIC8qIERJUl9TRVBBUkFUT1JfMiAq LwotKwotKyNpZm5kZWYgUEFUSF9TRVBBUkFUT1JfMgotKyMgZGVmaW5lIElTX1BBVEhfU0VQQVJB VE9SKGNoKSAoKGNoKSA9PSBQQVRIX1NFUEFSQVRPUikKLSsjZWxzZSAvKiBQQVRIX1NFUEFSQVRP Ul8yICovCi0rIyBkZWZpbmUgSVNfUEFUSF9TRVBBUkFUT1IoY2gpICgoY2gpID09IFBBVEhfU0VQ QVJBVE9SXzIpCi0rI2VuZGlmIC8qIFBBVEhfU0VQQVJBVE9SXzIgKi8KLSsKLSsjaWZkZWYgX19D WUdXSU5fXwotKyMgZGVmaW5lIEZPUEVOX1dCICJ3YiIKLSsjZW5kaWYKLSsKLSsjaWZuZGVmIEZP UEVOX1dCCi0rIyBkZWZpbmUgRk9QRU5fV0IgInciCi0rI2VuZGlmCi0rI2lmbmRlZiBfT19CSU5B UlkKLSsjIGRlZmluZSBfT19CSU5BUlkgMAotKyNlbmRpZgotKwotKyNkZWZpbmUgWE1BTExPQyh0 eXBlLCBudW0pICAgICAgKCh0eXBlICopIHhtYWxsb2MgKChudW0pICogc2l6ZW9mKHR5cGUpKSkK LSsjZGVmaW5lIFhGUkVFKHN0YWxlKSBkbyB7IFwKLSsgIGlmIChzdGFsZSkgeyBmcmVlICgodm9p ZCAqKSBzdGFsZSk7IHN0YWxlID0gMDsgfSBcCi0rfSB3aGlsZSAoMCkKLSsKLSsjdW5kZWYgTFRX UkFQUEVSX0RFQlVHUFJJTlRGCi0rI2lmIGRlZmluZWQgREVCVUdXUkFQUEVSCi0rIyBkZWZpbmUg TFRXUkFQUEVSX0RFQlVHUFJJTlRGKGFyZ3MpIGx0d3JhcHBlcl9kZWJ1Z3ByaW50ZiBhcmdzCi0r c3RhdGljIHZvaWQKLStsdHdyYXBwZXJfZGVidWdwcmludGYgKGNvbnN0IGNoYXIgKmZtdCwgLi4u KQotK3sKLSsgICAgdmFfbGlzdCBhcmdzOwotKyAgICB2YV9zdGFydCAoYXJncywgZm10KTsKLSsg ICAgKHZvaWQpIHZmcHJpbnRmIChzdGRlcnIsIGZtdCwgYXJncyk7Ci0rICAgIHZhX2VuZCAoYXJn cyk7Ci0rfQotKyNlbHNlCi0rIyBkZWZpbmUgTFRXUkFQUEVSX0RFQlVHUFJJTlRGKGFyZ3MpCi0r I2VuZGlmCi0rCi0rY29uc3QgY2hhciAqcHJvZ3JhbV9uYW1lID0gTlVMTDsKLSsKLSt2b2lkICp4 bWFsbG9jIChzaXplX3QgbnVtKTsKLStjaGFyICp4c3RyZHVwIChjb25zdCBjaGFyICpzdHJpbmcp OwotK2NvbnN0IGNoYXIgKmJhc2VfbmFtZSAoY29uc3QgY2hhciAqbmFtZSk7Ci0rY2hhciAqZmlu ZF9leGVjdXRhYmxlIChjb25zdCBjaGFyICp3cmFwcGVyKTsKLStjaGFyICpjaGFzZV9zeW1saW5r cyAoY29uc3QgY2hhciAqcGF0aHNwZWMpOwotK2ludCBtYWtlX2V4ZWN1dGFibGUgKGNvbnN0IGNo YXIgKnBhdGgpOwotK2ludCBjaGVja19leGVjdXRhYmxlIChjb25zdCBjaGFyICpwYXRoKTsKLStj aGFyICpzdHJlbmR6YXAgKGNoYXIgKnN0ciwgY29uc3QgY2hhciAqcGF0KTsKLSt2b2lkIGx0X2Zh dGFsIChjb25zdCBjaGFyICptZXNzYWdlLCAuLi4pOwotK3ZvaWQgbHRfc2V0ZW52IChjb25zdCBj aGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSk7Ci0rY2hhciAqbHRfZXh0ZW5kX3N0ciAoY29u c3QgY2hhciAqb3JpZ192YWx1ZSwgY29uc3QgY2hhciAqYWRkLCBpbnQgdG9fZW5kKTsKLSt2b2lk IGx0X29wdF9wcm9jZXNzX2Vudl9zZXQgKGNvbnN0IGNoYXIgKmFyZyk7Ci0rdm9pZCBsdF9vcHRf cHJvY2Vzc19lbnZfcHJlcGVuZCAoY29uc3QgY2hhciAqYXJnKTsKLSt2b2lkIGx0X29wdF9wcm9j ZXNzX2Vudl9hcHBlbmQgKGNvbnN0IGNoYXIgKmFyZyk7Ci0raW50IGx0X3NwbGl0X25hbWVfdmFs dWUgKGNvbnN0IGNoYXIgKmFyZywgY2hhcioqIG5hbWUsIGNoYXIqKiB2YWx1ZSk7Ci0rdm9pZCBs dF91cGRhdGVfZXhlX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKTsK LSt2b2lkIGx0X3VwZGF0ZV9saWJfcGF0aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAq dmFsdWUpOwotKwotK3N0YXRpYyBjb25zdCBjaGFyICpzY3JpcHRfdGV4dF9wYXJ0MSA9Ci0rRU9G Ci0rCi0rCSAgICBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MSB5ZXMgfAotKwkgICAgICAgICRTRUQg LWUgJ3MvXChbXFwiXVwpL1xcXDEvZycgXAotKwkgICAgICAgICAgICAgLWUgJ3MvXi8gICIvJyAt ZSAncy8kL1xcbiIvJwotKwkgICAgZWNobyAiOyIKLSsJICAgIGNhdCA8PEVPRgotKwotK3N0YXRp YyBjb25zdCBjaGFyICpzY3JpcHRfdGV4dF9wYXJ0MiA9Ci0rRU9GCi0rCSAgICBmdW5jX2VtaXRf d3JhcHBlcl9wYXJ0MiB5ZXMgfAotKwkgICAgICAgICRTRUQgLWUgJ3MvXChbXFwiXVwpL1xcXDEv ZycgXAotKwkgICAgICAgICAgICAgLWUgJ3MvXi8gICIvJyAtZSAncy8kL1xcbiIvJwotKwkgICAg ZWNobyAiOyIKLSsKLSsJICAgIGNhdCA8PEVPRgotK2NvbnN0IGNoYXIgKiBNQUdJQ19FWEUgPSAi JG1hZ2ljX2V4ZSI7Ci0rY29uc3QgY2hhciAqIExJQl9QQVRIX1ZBUk5BTUUgPSAiJHNobGlicGF0 aF92YXIiOwotK0VPRgotKwotKwkgICAgaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aCIgPSB5ZXMgJiYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiICYmIHRlc3QgLW4gIiR0ZW1w X3JwYXRoIjsgdGhlbgotKyAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0ICIkdGVt cF9ycGF0aCIKLSsJICAgICAgY2F0IDw8RU9GCi0rY29uc3QgY2hhciAqIExJQl9QQVRIX1ZBTFVF ICAgPSAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQiOwotK0VPRgotKwkgICAgZWxzZQot KwkgICAgICBjYXQgPDwiRU9GIgotK2NvbnN0IGNoYXIgKiBMSUJfUEFUSF9WQUxVRSAgID0gIiI7 Ci0rRU9GCi0rCSAgICBmaQotKwotKwkgICAgaWYgdGVzdCAtbiAiJGRsbHNlYXJjaHBhdGgiOyB0 aGVuCi0rICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3QgIiRkbGxzZWFyY2hwYXRo OiIKLSsJICAgICAgY2F0IDw8RU9GCi0rY29uc3QgY2hhciAqIEVYRV9QQVRIX1ZBUk5BTUUgPSAi UEFUSCI7Ci0rY29uc3QgY2hhciAqIEVYRV9QQVRIX1ZBTFVFICAgPSAiJGZ1bmNfdG9faG9zdF9w YXRobGlzdF9yZXN1bHQiOwotK0VPRgotKwkgICAgZWxzZQotKwkgICAgICBjYXQgPDwiRU9GIgot K2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQVJOQU1FID0gIiI7Ci0rY29uc3QgY2hhciAqIEVYRV9Q QVRIX1ZBTFVFICAgPSAiIjsKLStFT0YKLSsJICAgIGZpCi0rCi0rCSAgICBpZiB0ZXN0ICIkZmFz dF9pbnN0YWxsIiA9IHllczsgdGhlbgotKwkgICAgICBjYXQgPDxFT0YKLStjb25zdCBjaGFyICog VEFSR0VUX1BST0dSQU1fTkFNRSA9ICJsdC0kb3V0cHV0bmFtZSI7IC8qIGhvcGVmdWxseSwgbm8g LmV4ZSAqLwotK0VPRgotKwkgICAgZWxzZQotKwkgICAgICBjYXQgPDxFT0YKLStjb25zdCBjaGFy ICogVEFSR0VUX1BST0dSQU1fTkFNRSA9ICIkb3V0cHV0bmFtZSI7IC8qIGhvcGVmdWxseSwgbm8g LmV4ZSAqLwotK0VPRgotKwkgICAgZmkKLSsKLSsKLSsJICAgIGNhdCA8PCJFT0YiCi0rCi0rI2Rl ZmluZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAgICAgICAgICItLWx0LSIKLSsjZGVmaW5lIExU V1JBUFBFUl9PUFRJT05fUFJFRklYX0xFTkdUSCAgNQotKwotK3N0YXRpYyBjb25zdCBzaXplX3Qg b3B0X3ByZWZpeF9sZW4gICAgICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYX0xFTkdUSDsK LStzdGF0aWMgY29uc3QgY2hhciAqbHR3cmFwcGVyX29wdGlvbl9wcmVmaXggPSBMVFdSQVBQRVJf T1BUSU9OX1BSRUZJWDsKLSsKLStzdGF0aWMgY29uc3QgY2hhciAqZHVtcHNjcmlwdF9vcHQgICAg ICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAiZHVtcC1zY3JpcHQiOwotKwotK3N0YXRpYyBj b25zdCBzaXplX3QgZW52X3NldF9vcHRfbGVuICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklY X0xFTkdUSCArIDc7Ci0rc3RhdGljIGNvbnN0IGNoYXIgKmVudl9zZXRfb3B0ICAgICAgICAgID0g TFRXUkFQUEVSX09QVElPTl9QUkVGSVggImVudi1zZXQiOwotKyAgLyogYXJndW1lbnQgaXMgcHV0 ZW52LXN0eWxlICJmb289YmFyIiwgdmFsdWUgb2YgZm9vIGlzIHNldCB0byBiYXIgKi8KLSsKLStz dGF0aWMgY29uc3Qgc2l6ZV90IGVudl9wcmVwZW5kX29wdF9sZW4gPSBMVFdSQVBQRVJfT1BUSU9O X1BSRUZJWF9MRU5HVEggKyAxMTsKLStzdGF0aWMgY29uc3QgY2hhciAqZW52X3ByZXBlbmRfb3B0 ICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAiZW52LXByZXBlbmQiOwotKyAgLyogYXJn dW1lbnQgaXMgcHV0ZW52LXN0eWxlICJmb289YmFyIiwgbmV3IHZhbHVlIG9mIGZvbyBpcyBiYXIk e2Zvb30gKi8KLSsKLStzdGF0aWMgY29uc3Qgc2l6ZV90IGVudl9hcHBlbmRfb3B0X2xlbiAgPSBM VFdSQVBQRVJfT1BUSU9OX1BSRUZJWF9MRU5HVEggKyAxMDsKLStzdGF0aWMgY29uc3QgY2hhciAq ZW52X2FwcGVuZF9vcHQgICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAiZW52LWFwcGVu ZCI7Ci0rICAvKiBhcmd1bWVudCBpcyBwdXRlbnYtc3R5bGUgImZvbz1iYXIiLCBuZXcgdmFsdWUg b2YgZm9vIGlzICR7Zm9vfWJhciAqLwotKwotK2ludAotK21haW4gKGludCBhcmdjLCBjaGFyICph cmd2W10pCi0rewotKyAgY2hhciAqKm5ld2FyZ3o7Ci0rICBpbnQgIG5ld2FyZ2M7Ci0rICBjaGFy ICp0bXBfcGF0aHNwZWM7Ci0rICBjaGFyICphY3R1YWxfY3dyYXBwZXJfcGF0aDsKLSsgIGNoYXIg KmFjdHVhbF9jd3JhcHBlcl9uYW1lOwotKyAgY2hhciAqdGFyZ2V0X25hbWU7Ci0rICBjaGFyICps dF9hcmd2X3plcm87Ci0rICBpbnRwdHJfdCBydmFsID0gMTI3OwotKwotKyAgaW50IGk7Ci0rCi0r ICBwcm9ncmFtX25hbWUgPSAoY2hhciAqKSB4c3RyZHVwIChiYXNlX25hbWUgKGFyZ3ZbMF0pKTsK LSsgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgYXJndlswXSAgICAgIDogJXNcbiIs IGFyZ3ZbMF0pKTsKLSsgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgcHJvZ3JhbV9u YW1lIDogJXNcbiIsIHByb2dyYW1fbmFtZSkpOwotKwotKyAgLyogdmVyeSBzaW1wbGUgYXJnIHBh cnNpbmc7IGRvbid0IHdhbnQgdG8gcmVseSBvbiBnZXRvcHQgKi8KLSsgIGZvciAoaSA9IDE7IGkg PCBhcmdjOyBpKyspCi0rICAgIHsKLSsgICAgICBpZiAoc3RyY21wIChhcmd2W2ldLCBkdW1wc2Ny aXB0X29wdCkgPT0gMCkKLSsJewotK0VPRgotKwkgICAgY2FzZSAiJGhvc3QiIGluCi0rCSAgICAg ICptaW5ndyogfCAqY3lnd2luKiApCi0rCQkjIG1ha2Ugc3Rkb3V0IHVzZSAidW5peCIgbGluZSBl bmRpbmdzCi0rCQllY2hvICIgICAgICAgICAgc2V0bW9kZSgxLF9PX0JJTkFSWSk7IgotKwkJOzsK LSsJICAgICAgZXNhYwotKwotKwkgICAgY2F0IDw8IkVPRiIKLSsJICBwcmludGYgKCIlcyIsIHNj cmlwdF90ZXh0X3BhcnQxKTsKLSsJICBwcmludGYgKCIlcyIsIHNjcmlwdF90ZXh0X3BhcnQyKTsK LSsJICByZXR1cm4gMDsKLSsJfQotKyAgICB9Ci0rCi0rICBuZXdhcmd6ID0gWE1BTExPQyAoY2hh ciAqLCBhcmdjICsgMSk7Ci0rICB0bXBfcGF0aHNwZWMgPSBmaW5kX2V4ZWN1dGFibGUgKGFyZ3Zb MF0pOwotKyAgaWYgKHRtcF9wYXRoc3BlYyA9PSBOVUxMKQotKyAgICBsdF9mYXRhbCAoIkNvdWxk bid0IGZpbmQgJXMiLCBhcmd2WzBdKTsKLSsgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFp bikgZm91bmQgZXhlIChiZWZvcmUgc3ltbGluayBjaGFzZSkgYXQgOiAlc1xuIiwKLSsJCQkgIHRt cF9wYXRoc3BlYykpOwotKwotKyAgYWN0dWFsX2N3cmFwcGVyX3BhdGggPSBjaGFzZV9zeW1saW5r cyAodG1wX3BhdGhzcGVjKTsKLSsgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgZm91 bmQgZXhlIChhZnRlciBzeW1saW5rIGNoYXNlKSBhdCA6ICVzXG4iLAotKwkJCSAgYWN0dWFsX2N3 cmFwcGVyX3BhdGgpKTsKLSsgIFhGUkVFICh0bXBfcGF0aHNwZWMpOwotKwotKyAgYWN0dWFsX2N3 cmFwcGVyX25hbWUgPSB4c3RyZHVwKCBiYXNlX25hbWUgKGFjdHVhbF9jd3JhcHBlcl9wYXRoKSk7 Ci0rICBzdHJlbmR6YXAgKGFjdHVhbF9jd3JhcHBlcl9wYXRoLCBhY3R1YWxfY3dyYXBwZXJfbmFt ZSk7Ci0rCi0rICAvKiB3cmFwcGVyIG5hbWUgdHJhbnNmb3JtcyAqLwotKyAgc3RyZW5kemFwIChh Y3R1YWxfY3dyYXBwZXJfbmFtZSwgIi5leGUiKTsKLSsgIHRtcF9wYXRoc3BlYyA9IGx0X2V4dGVu ZF9zdHIgKGFjdHVhbF9jd3JhcHBlcl9uYW1lLCAiLmV4ZSIsIDEpOwotKyAgWEZSRUUgKGFjdHVh bF9jd3JhcHBlcl9uYW1lKTsKLSsgIGFjdHVhbF9jd3JhcHBlcl9uYW1lID0gdG1wX3BhdGhzcGVj OwotKyAgdG1wX3BhdGhzcGVjID0gMDsKLSsKLSsgIC8qIHRhcmdldF9uYW1lIHRyYW5zZm9ybXMg LS0gdXNlIGFjdHVhbCB0YXJnZXQgcHJvZ3JhbSBuYW1lOyBtaWdodCBoYXZlIGx0LSBwcmVmaXgg Ki8KLSsgIHRhcmdldF9uYW1lID0geHN0cmR1cCAoYmFzZV9uYW1lIChUQVJHRVRfUFJPR1JBTV9O QU1FKSk7Ci0rICBzdHJlbmR6YXAgKHRhcmdldF9uYW1lLCAiLmV4ZSIpOwotKyAgdG1wX3BhdGhz cGVjID0gbHRfZXh0ZW5kX3N0ciAodGFyZ2V0X25hbWUsICIuZXhlIiwgMSk7Ci0rICBYRlJFRSAo dGFyZ2V0X25hbWUpOwotKyAgdGFyZ2V0X25hbWUgPSB0bXBfcGF0aHNwZWM7Ci0rICB0bXBfcGF0 aHNwZWMgPSAwOwotKwotKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBsaWJ0b29s IHRhcmdldCBuYW1lOiAlc1xuIiwKLSsJCQkgIHRhcmdldF9uYW1lKSk7Ci0rRU9GCi0rCi0rCSAg ICBjYXQgPDxFT0YKLSsgIG5ld2FyZ3pbMF0gPQotKyAgICBYTUFMTE9DIChjaGFyLCAoc3RybGVu IChhY3R1YWxfY3dyYXBwZXJfcGF0aCkgKwotKwkJICAgIHN0cmxlbiAoIiRvYmpkaXIiKSArIDEg KyBzdHJsZW4gKGFjdHVhbF9jd3JhcHBlcl9uYW1lKSArIDEpKTsKLSsgIHN0cmNweSAobmV3YXJn elswXSwgYWN0dWFsX2N3cmFwcGVyX3BhdGgpOwotKyAgc3RyY2F0IChuZXdhcmd6WzBdLCAiJG9i amRpciIpOwotKyAgc3RyY2F0IChuZXdhcmd6WzBdLCAiLyIpOwotK0VPRgotKwotKwkgICAgY2F0 IDw8IkVPRiIKLSsgIC8qIHN0b3AgaGVyZSwgYW5kIGNvcHkgc28gd2UgZG9uJ3QgaGF2ZSB0byBk byB0aGlzIHR3aWNlICovCi0rICB0bXBfcGF0aHNwZWMgPSB4c3RyZHVwIChuZXdhcmd6WzBdKTsK LSsKLSsgIC8qIGRvIE5PVCB3YW50IHRoZSBsdC0gcHJlZml4IGhlcmUsIHNvIHVzZSBhY3R1YWxf Y3dyYXBwZXJfbmFtZSAqLwotKyAgc3RyY2F0IChuZXdhcmd6WzBdLCBhY3R1YWxfY3dyYXBwZXJf bmFtZSk7Ci0rCi0rICAvKiBETyB3YW50IHRoZSBsdC0gcHJlZml4IGhlcmUgaWYgaXQgZXhpc3Rz LCBzbyB1c2UgdGFyZ2V0X25hbWUgKi8KLSsgIGx0X2FyZ3ZfemVybyA9IGx0X2V4dGVuZF9zdHIg KHRtcF9wYXRoc3BlYywgdGFyZ2V0X25hbWUsIDEpOwotKyAgWEZSRUUgKHRtcF9wYXRoc3BlYyk7 Ci0rICB0bXBfcGF0aHNwZWMgPSBOVUxMOwotK0VPRgotKwotKwkgICAgY2FzZSAkaG9zdF9vcyBp bgotKwkgICAgICBtaW5ndyopCi0rCSAgICBjYXQgPDwiRU9GIgotKyAgewotKyAgICBjaGFyKiBw OwotKyAgICB3aGlsZSAoKHAgPSBzdHJjaHIgKG5ld2FyZ3pbMF0sICdcXCcpKSAhPSBOVUxMKQot KyAgICAgIHsKLSsJKnAgPSAnLyc7Ci0rICAgICAgfQotKyAgICB3aGlsZSAoKHAgPSBzdHJjaHIg KGx0X2FyZ3ZfemVybywgJ1xcJykpICE9IE5VTEwpCi0rICAgICAgewotKwkqcCA9ICcvJzsKLSsg ICAgICB9Ci0rICB9Ci0rRU9GCi0rCSAgICA7OwotKwkgICAgZXNhYwotKwotKwkgICAgY2F0IDw8 IkVPRiIKLSsgIFhGUkVFICh0YXJnZXRfbmFtZSk7Ci0rICBYRlJFRSAoYWN0dWFsX2N3cmFwcGVy X3BhdGgpOwotKyAgWEZSRUUgKGFjdHVhbF9jd3JhcHBlcl9uYW1lKTsKLSsKLSsgIGx0X3NldGVu diAoIkJJTl9TSCIsICJ4cGc0Iik7IC8qIGZvciBUcnU2NCAqLwotKyAgbHRfc2V0ZW52ICgiRFVB TENBU0UiLCAiMSIpOyAgLyogZm9yIE1TSyBzaCAqLwotKyAgbHRfdXBkYXRlX2xpYl9wYXRoIChM SUJfUEFUSF9WQVJOQU1FLCBMSUJfUEFUSF9WQUxVRSk7Ci0rICBsdF91cGRhdGVfZXhlX3BhdGgg KEVYRV9QQVRIX1ZBUk5BTUUsIEVYRV9QQVRIX1ZBTFVFKTsKLSsKLSsgIG5ld2FyZ2M9MDsKLSsg IGZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKyspCi0rICAgIHsKLSsgICAgICBpZiAoc3RybmNtcCAo YXJndltpXSwgZW52X3NldF9vcHQsIGVudl9zZXRfb3B0X2xlbikgPT0gMCkKLSsgICAgICAgIHsK LSsgICAgICAgICAgaWYgKGFyZ3ZbaV1bZW52X3NldF9vcHRfbGVuXSA9PSAnPScpCi0rICAgICAg ICAgICAgewotKyAgICAgICAgICAgICAgY29uc3QgY2hhciAqcCA9IGFyZ3ZbaV0gKyBlbnZfc2V0 X29wdF9sZW4gKyAxOwotKyAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X3NldCAocCk7 Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICBlbHNlIGlmIChhcmd2W2ldW2Vudl9zZXRfb3B0 X2xlbl0gPT0gJ1wwJyAmJiBpICsgMSA8IGFyZ2MpCi0rICAgICAgICAgICAgewotKyAgICAgICAg ICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X3NldCAoYXJndlsrK2ldKTsgLyogZG9uJ3QgY29weSAq LwotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgIGx0X2ZhdGFs ICgiJXMgbWlzc2luZyByZXF1aXJlZCBhcmd1bWVudCIsIGVudl9zZXRfb3B0KTsKLSsgICAgICAg ICAgY29udGludWU7Ci0rICAgICAgICB9Ci0rICAgICAgaWYgKHN0cm5jbXAgKGFyZ3ZbaV0sIGVu dl9wcmVwZW5kX29wdCwgZW52X3ByZXBlbmRfb3B0X2xlbikgPT0gMCkKLSsgICAgICAgIHsKLSsg ICAgICAgICAgaWYgKGFyZ3ZbaV1bZW52X3ByZXBlbmRfb3B0X2xlbl0gPT0gJz0nKQotKyAgICAg ICAgICAgIHsKLSsgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnAgPSBhcmd2W2ldICsgZW52X3By ZXBlbmRfb3B0X2xlbiArIDE7Ci0rICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZfcHJl cGVuZCAocCk7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICBlbHNlIGlmIChhcmd2W2ldW2Vu dl9wcmVwZW5kX29wdF9sZW5dID09ICdcMCcgJiYgaSArIDEgPCBhcmdjKQotKyAgICAgICAgICAg IHsKLSsgICAgICAgICAgICAgIGx0X29wdF9wcm9jZXNzX2Vudl9wcmVwZW5kIChhcmd2WysraV0p OyAvKiBkb24ndCBjb3B5ICovCi0rICAgICAgICAgICAgfQotKyAgICAgICAgICBlbHNlCi0rICAg ICAgICAgICAgbHRfZmF0YWwgKCIlcyBtaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50IiwgZW52X3By ZXBlbmRfb3B0KTsKLSsgICAgICAgICAgY29udGludWU7Ci0rICAgICAgICB9Ci0rICAgICAgaWYg KHN0cm5jbXAgKGFyZ3ZbaV0sIGVudl9hcHBlbmRfb3B0LCBlbnZfYXBwZW5kX29wdF9sZW4pID09 IDApCi0rICAgICAgICB7Ci0rICAgICAgICAgIGlmIChhcmd2W2ldW2Vudl9hcHBlbmRfb3B0X2xl bl0gPT0gJz0nKQotKyAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnAg PSBhcmd2W2ldICsgZW52X2FwcGVuZF9vcHRfbGVuICsgMTsKLSsgICAgICAgICAgICAgIGx0X29w dF9wcm9jZXNzX2Vudl9hcHBlbmQgKHApOwotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgZWxz ZSBpZiAoYXJndltpXVtlbnZfYXBwZW5kX29wdF9sZW5dID09ICdcMCcgJiYgaSArIDEgPCBhcmdj KQotKyAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgIGx0X29wdF9wcm9jZXNzX2Vudl9hcHBl bmQgKGFyZ3ZbKytpXSk7IC8qIGRvbid0IGNvcHkgKi8KLSsgICAgICAgICAgICB9Ci0rICAgICAg ICAgIGVsc2UKLSsgICAgICAgICAgICBsdF9mYXRhbCAoIiVzIG1pc3NpbmcgcmVxdWlyZWQgYXJn dW1lbnQiLCBlbnZfYXBwZW5kX29wdCk7Ci0rICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAg fQotKyAgICAgIGlmIChzdHJuY21wIChhcmd2W2ldLCBsdHdyYXBwZXJfb3B0aW9uX3ByZWZpeCwg b3B0X3ByZWZpeF9sZW4pID09IDApCi0rICAgICAgICB7Ci0rICAgICAgICAgIC8qIGhvd2V2ZXIs IGlmIHRoZXJlIGlzIGFuIG9wdGlvbiBpbiB0aGUgTFRXUkFQUEVSX09QVElPTl9QUkVGSVgKLSsg ICAgICAgICAgICAgbmFtZXNwYWNlLCBidXQgaXQgaXMgbm90IG9uZSBvZiB0aGUgb25lcyB3ZSBr bm93IGFib3V0IGFuZAotKyAgICAgICAgICAgICBoYXZlIGFscmVhZHkgZGVhbHQgd2l0aCwgYWJv dmUgKGlubHVkaW5nIGR1bXAtc2NyaXB0KSwgdGhlbgotKyAgICAgICAgICAgICByZXBvcnQgYW4g ZXJyb3IuIE90aGVyd2lzZSwgdGFyZ2V0cyBtaWdodCBiZWdpbiB0byBiZWxpZXZlCi0rICAgICAg ICAgICAgIHRoZXkgYXJlIGFsbG93ZWQgdG8gdXNlIG9wdGlvbnMgaW4gdGhlIExUV1JBUFBFUl9P UFRJT05fUFJFRklYCi0rICAgICAgICAgICAgIG5hbWVzcGFjZS4gVGhlIGZpcnN0IHRpbWUgYW55 IHVzZXIgY29tcGxhaW5zIGFib3V0IHRoaXMsIHdlJ2xsCi0rICAgICAgICAgICAgIG5lZWQgdG8g bWFrZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCBhIGNvbmZpZ3VyZS10aW1lIG9wdGlvbgotKyAg ICAgICAgICAgICBvciBhIGNvbmZpZ3VyZS5hYy1zZXR0YWJsZSB2YWx1ZS4KLSsgICAgICAgICAg ICovCi0rICAgICAgICAgIGx0X2ZhdGFsICgiVW5yZWNvZ25pemVkIG9wdGlvbiBpbiAlcyBuYW1l c3BhY2U6ICclcyciLAotKyAgICAgICAgICAgICAgICAgICAgbHR3cmFwcGVyX29wdGlvbl9wcmVm aXgsIGFyZ3ZbaV0pOwotKyAgICAgICAgfQotKyAgICAgIC8qIG90aGVyd2lzZSAuLi4gKi8KLSsg ICAgICBuZXdhcmd6WysrbmV3YXJnY10gPSB4c3RyZHVwIChhcmd2W2ldKTsKLSsgICAgfQotKyAg bmV3YXJnelsrK25ld2FyZ2NdID0gTlVMTDsKLSsKLSsgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAg ICAgKCgiKG1haW4pIGx0X2FyZ3ZfemVybyA6ICVzXG4iLCAobHRfYXJndl96ZXJvID8gbHRfYXJn dl96ZXJvIDogIjxOVUxMPiIpKSk7Ci0rICBmb3IgKGkgPSAwOyBpIDwgbmV3YXJnYzsgaSsrKQot KyAgICB7Ci0rICAgICAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBuZXdhcmd6WyVk XSAgIDogJXNcbiIsIGksIChuZXdhcmd6W2ldID8gbmV3YXJneltpXSA6ICI8TlVMTD4iKSkpOwot KyAgICB9Ci0rCi0rRU9GCi0rCi0rCSAgICBjYXNlICRob3N0X29zIGluCi0rCSAgICAgIG1pbmd3 KikKLSsJCWNhdCA8PCJFT0YiCi0rICAvKiBleGVjdiBkb2Vzbid0IGFjdHVhbGx5IHdvcmsgb24g bWluZ3cgYXMgZXhwZWN0ZWQgb24gdW5peCAqLwotKyAgcnZhbCA9IF9zcGF3bnYgKF9QX1dBSVQs IGx0X2FyZ3ZfemVybywgKGNvbnN0IGNoYXIgKiBjb25zdCAqKSBuZXdhcmd6KTsKLSsgIGlmIChy dmFsID09IC0xKQotKyAgICB7Ci0rICAgICAgLyogZmFpbGVkIHRvIHN0YXJ0IHByb2Nlc3MgKi8K LSsgICAgICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIGZhaWxlZCB0byBsYXVuY2gg dGFyZ2V0IFwiJXNcIjogZXJybm8gPSAlZFxuIiwgbHRfYXJndl96ZXJvLCBlcnJubykpOwotKyAg ICAgIHJldHVybiAxMjc7Ci0rICAgIH0KLSsgIHJldHVybiBydmFsOwotK0VPRgotKwkJOzsKLSsJ ICAgICAgKikKLSsJCWNhdCA8PCJFT0YiCi0rICBleGVjdiAobHRfYXJndl96ZXJvLCBuZXdhcmd6 KTsKLSsgIHJldHVybiBydmFsOyAvKiA9MTI3LCBidXQgYXZvaWRzIHVudXNlZCB2YXJpYWJsZSB3 YXJuaW5nICovCi0rRU9GCi0rCQk7OwotKwkgICAgZXNhYwotKwotKwkgICAgY2F0IDw8IkVPRiIK LSt9Ci0rCi0rdm9pZCAqCi0reG1hbGxvYyAoc2l6ZV90IG51bSkKLSt7Ci0rICB2b2lkICpwID0g KHZvaWQgKikgbWFsbG9jIChudW0pOwotKyAgaWYgKCFwKQotKyAgICBsdF9mYXRhbCAoIk1lbW9y eSBleGhhdXN0ZWQiKTsKLSsKLSsgIHJldHVybiBwOwotK30KLSsKLStjaGFyICoKLSt4c3RyZHVw IChjb25zdCBjaGFyICpzdHJpbmcpCi0rewotKyAgcmV0dXJuIHN0cmluZyA/IHN0cmNweSAoKGNo YXIgKikgeG1hbGxvYyAoc3RybGVuIChzdHJpbmcpICsgMSksCi0rCQkJICBzdHJpbmcpIDogTlVM TDsKLSt9Ci0rCi0rY29uc3QgY2hhciAqCi0rYmFzZV9uYW1lIChjb25zdCBjaGFyICpuYW1lKQot K3sKLSsgIGNvbnN0IGNoYXIgKmJhc2U7Ci0rCi0rI2lmIGRlZmluZWQgKEhBVkVfRE9TX0JBU0VE X0ZJTEVfU1lTVEVNKQotKyAgLyogU2tpcCBvdmVyIHRoZSBkaXNrIG5hbWUgaW4gTVNET1MgcGF0 aG5hbWVzLiAqLwotKyAgaWYgKGlzYWxwaGEgKCh1bnNpZ25lZCBjaGFyKSBuYW1lWzBdKSAmJiBu YW1lWzFdID09ICc6JykKLSsgICAgbmFtZSArPSAyOwotKyNlbmRpZgotKwotKyAgZm9yIChiYXNl ID0gbmFtZTsgKm5hbWU7IG5hbWUrKykKLSsgICAgaWYgKElTX0RJUl9TRVBBUkFUT1IgKCpuYW1l KSkKLSsgICAgICBiYXNlID0gbmFtZSArIDE7Ci0rICByZXR1cm4gYmFzZTsKLSt9Ci0rCi0raW50 Ci0rY2hlY2tfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqcGF0aCkKLSt7Ci0rICBzdHJ1Y3Qgc3Rh dCBzdDsKLSsKLSsgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIoY2hlY2tfZXhlY3V0YWJsZSkg IDogJXNcbiIsCi0rCQkJICBwYXRoID8gKCpwYXRoID8gcGF0aCA6ICJFTVBUWSEiKSA6ICJOVUxM ISIpKTsKLSsgIGlmICgoIXBhdGgpIHx8ICghKnBhdGgpKQotKyAgICByZXR1cm4gMDsKLSsKLSsg IGlmICgoc3RhdCAocGF0aCwgJnN0KSA+PSAwKQotKyAgICAgICYmIChzdC5zdF9tb2RlICYgKFNf SVhVU1IgfCBTX0lYR1JQIHwgU19JWE9USCkpKQotKyAgICByZXR1cm4gMTsKLSsgIGVsc2UKLSsg ICAgcmV0dXJuIDA7Ci0rfQotKwotK2ludAotK21ha2VfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAq cGF0aCkKLSt7Ci0rICBpbnQgcnZhbCA9IDA7Ci0rICBzdHJ1Y3Qgc3RhdCBzdDsKLSsKLSsgIExU V1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFrZV9leGVjdXRhYmxlKSAgIDogJXNcbiIsCi0rCQkJ ICBwYXRoID8gKCpwYXRoID8gcGF0aCA6ICJFTVBUWSEiKSA6ICJOVUxMISIpKTsKLSsgIGlmICgo IXBhdGgpIHx8ICghKnBhdGgpKQotKyAgICByZXR1cm4gMDsKLSsKLSsgIGlmIChzdGF0IChwYXRo LCAmc3QpID49IDApCi0rICAgIHsKLSsgICAgICBydmFsID0gY2htb2QgKHBhdGgsIHN0LnN0X21v ZGUgfCBTX0lYT1RIIHwgU19JWEdSUCB8IFNfSVhVU1IpOwotKyAgICB9Ci0rICByZXR1cm4gcnZh bDsKLSt9Ci0rCi0rLyogU2VhcmNoZXMgZm9yIHRoZSBmdWxsIHBhdGggb2YgdGhlIHdyYXBwZXIu ICBSZXR1cm5zCi0rICAgbmV3bHkgYWxsb2NhdGVkIGZ1bGwgcGF0aCBuYW1lIGlmIGZvdW5kLCBO VUxMIG90aGVyd2lzZQotKyAgIERvZXMgbm90IGNoYXNlIHN5bWxpbmtzLCBldmVuIG9uIHBsYXRm b3JtcyB0aGF0IHN1cHBvcnQgdGhlbS4KLSsqLwotK2NoYXIgKgotK2ZpbmRfZXhlY3V0YWJsZSAo Y29uc3QgY2hhciAqd3JhcHBlcikKLSt7Ci0rICBpbnQgaGFzX3NsYXNoID0gMDsKLSsgIGNvbnN0 IGNoYXIgKnA7Ci0rICBjb25zdCBjaGFyICpwX25leHQ7Ci0rICAvKiBzdGF0aWMgYnVmZmVyIGZv ciBnZXRjd2QgKi8KLSsgIGNoYXIgdG1wW0xUX1BBVEhNQVggKyAxXTsKLSsgIGludCB0bXBfbGVu OwotKyAgY2hhciAqY29uY2F0X25hbWU7Ci0rCi0rICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgi KGZpbmRfZXhlY3V0YWJsZSkgICA6ICVzXG4iLAotKwkJCSAgd3JhcHBlciA/ICgqd3JhcHBlciA/ IHdyYXBwZXIgOiAiRU1QVFkhIikgOiAiTlVMTCEiKSk7Ci0rCi0rICBpZiAoKHdyYXBwZXIgPT0g TlVMTCkgfHwgKCp3cmFwcGVyID09ICdcMCcpKQotKyAgICByZXR1cm4gTlVMTDsKLSsKLSsgIC8q IEFic29sdXRlIHBhdGg/ICovCi0rI2lmIGRlZmluZWQgKEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lT VEVNKQotKyAgaWYgKGlzYWxwaGEgKCh1bnNpZ25lZCBjaGFyKSB3cmFwcGVyWzBdKSAmJiB3cmFw cGVyWzFdID09ICc6JykKLSsgICAgewotKyAgICAgIGNvbmNhdF9uYW1lID0geHN0cmR1cCAod3Jh cHBlcik7Ci0rICAgICAgaWYgKGNoZWNrX2V4ZWN1dGFibGUgKGNvbmNhdF9uYW1lKSkKLSsJcmV0 dXJuIGNvbmNhdF9uYW1lOwotKyAgICAgIFhGUkVFIChjb25jYXRfbmFtZSk7Ci0rICAgIH0KLSsg IGVsc2UKLSsgICAgewotKyNlbmRpZgotKyAgICAgIGlmIChJU19ESVJfU0VQQVJBVE9SICh3cmFw cGVyWzBdKSkKLSsJewotKwkgIGNvbmNhdF9uYW1lID0geHN0cmR1cCAod3JhcHBlcik7Ci0rCSAg aWYgKGNoZWNrX2V4ZWN1dGFibGUgKGNvbmNhdF9uYW1lKSkKLSsJICAgIHJldHVybiBjb25jYXRf bmFtZTsKLSsJICBYRlJFRSAoY29uY2F0X25hbWUpOwotKwl9Ci0rI2lmIGRlZmluZWQgKEhBVkVf RE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQotKyAgICB9Ci0rI2VuZGlmCi0rCi0rICBmb3IgKHAgPSB3 cmFwcGVyOyAqcDsgcCsrKQotKyAgICBpZiAoKnAgPT0gJy8nKQotKyAgICAgIHsKLSsJaGFzX3Ns YXNoID0gMTsKLSsJYnJlYWs7Ci0rICAgICAgfQotKyAgaWYgKCFoYXNfc2xhc2gpCi0rICAgIHsK LSsgICAgICAvKiBubyBzbGFzaGVzOyBzZWFyY2ggUEFUSCAqLwotKyAgICAgIGNvbnN0IGNoYXIg KnBhdGggPSBnZXRlbnYgKCJQQVRIIik7Ci0rICAgICAgaWYgKHBhdGggIT0gTlVMTCkKLSsJewot KwkgIGZvciAocCA9IHBhdGg7ICpwOyBwID0gcF9uZXh0KQotKwkgICAgewotKwkgICAgICBjb25z dCBjaGFyICpxOwotKwkgICAgICBzaXplX3QgcF9sZW47Ci0rCSAgICAgIGZvciAocSA9IHA7ICpx OyBxKyspCi0rCQlpZiAoSVNfUEFUSF9TRVBBUkFUT1IgKCpxKSkKLSsJCSAgYnJlYWs7Ci0rCSAg ICAgIHBfbGVuID0gcSAtIHA7Ci0rCSAgICAgIHBfbmV4dCA9ICgqcSA9PSAnXDAnID8gcSA6IHEg KyAxKTsKLSsJICAgICAgaWYgKHBfbGVuID09IDApCi0rCQl7Ci0rCQkgIC8qIGVtcHR5IHBhdGg6 IGN1cnJlbnQgZGlyZWN0b3J5ICovCi0rCQkgIGlmIChnZXRjd2QgKHRtcCwgTFRfUEFUSE1BWCkg PT0gTlVMTCkKLSsJCSAgICBsdF9mYXRhbCAoImdldGN3ZCBmYWlsZWQiKTsKLSsJCSAgdG1wX2xl biA9IHN0cmxlbiAodG1wKTsKLSsJCSAgY29uY2F0X25hbWUgPQotKwkJICAgIFhNQUxMT0MgKGNo YXIsIHRtcF9sZW4gKyAxICsgc3RybGVuICh3cmFwcGVyKSArIDEpOwotKwkJICBtZW1jcHkgKGNv bmNhdF9uYW1lLCB0bXAsIHRtcF9sZW4pOwotKwkJICBjb25jYXRfbmFtZVt0bXBfbGVuXSA9ICcv JzsKLSsJCSAgc3RyY3B5IChjb25jYXRfbmFtZSArIHRtcF9sZW4gKyAxLCB3cmFwcGVyKTsKLSsJ CX0KLSsJICAgICAgZWxzZQotKwkJewotKwkJICBjb25jYXRfbmFtZSA9Ci0rCQkgICAgWE1BTExP QyAoY2hhciwgcF9sZW4gKyAxICsgc3RybGVuICh3cmFwcGVyKSArIDEpOwotKwkJICBtZW1jcHkg KGNvbmNhdF9uYW1lLCBwLCBwX2xlbik7Ci0rCQkgIGNvbmNhdF9uYW1lW3BfbGVuXSA9ICcvJzsK LSsJCSAgc3RyY3B5IChjb25jYXRfbmFtZSArIHBfbGVuICsgMSwgd3JhcHBlcik7Ci0rCQl9Ci0r CSAgICAgIGlmIChjaGVja19leGVjdXRhYmxlIChjb25jYXRfbmFtZSkpCi0rCQlyZXR1cm4gY29u Y2F0X25hbWU7Ci0rCSAgICAgIFhGUkVFIChjb25jYXRfbmFtZSk7Ci0rCSAgICB9Ci0rCX0KLSsg ICAgICAvKiBub3QgZm91bmQgaW4gUEFUSDsgYXNzdW1lIGN1cmRpciAqLwotKyAgICB9Ci0rICAv KiBSZWxhdGl2ZSBwYXRoIHwgbm90IGZvdW5kIGluIHBhdGg6IHByZXBlbmQgY3dkICovCi0rICBp ZiAoZ2V0Y3dkICh0bXAsIExUX1BBVEhNQVgpID09IE5VTEwpCi0rICAgIGx0X2ZhdGFsICgiZ2V0 Y3dkIGZhaWxlZCIpOwotKyAgdG1wX2xlbiA9IHN0cmxlbiAodG1wKTsKLSsgIGNvbmNhdF9uYW1l ID0gWE1BTExPQyAoY2hhciwgdG1wX2xlbiArIDEgKyBzdHJsZW4gKHdyYXBwZXIpICsgMSk7Ci0r ICBtZW1jcHkgKGNvbmNhdF9uYW1lLCB0bXAsIHRtcF9sZW4pOwotKyAgY29uY2F0X25hbWVbdG1w X2xlbl0gPSAnLyc7Ci0rICBzdHJjcHkgKGNvbmNhdF9uYW1lICsgdG1wX2xlbiArIDEsIHdyYXBw ZXIpOwotKwotKyAgaWYgKGNoZWNrX2V4ZWN1dGFibGUgKGNvbmNhdF9uYW1lKSkKLSsgICAgcmV0 dXJuIGNvbmNhdF9uYW1lOwotKyAgWEZSRUUgKGNvbmNhdF9uYW1lKTsKLSsgIHJldHVybiBOVUxM OwotK30KLSsKLStjaGFyICoKLStjaGFzZV9zeW1saW5rcyAoY29uc3QgY2hhciAqcGF0aHNwZWMp Ci0rewotKyNpZm5kZWYgU19JU0xOSwotKyAgcmV0dXJuIHhzdHJkdXAgKHBhdGhzcGVjKTsKLSsj ZWxzZQotKyAgY2hhciBidWZbTFRfUEFUSE1BWF07Ci0rICBzdHJ1Y3Qgc3RhdCBzOwotKyAgY2hh ciAqdG1wX3BhdGhzcGVjID0geHN0cmR1cCAocGF0aHNwZWMpOwotKyAgY2hhciAqcDsKLSsgIGlu dCBoYXNfc3ltbGlua3MgPSAwOwotKyAgd2hpbGUgKHN0cmxlbiAodG1wX3BhdGhzcGVjKSAmJiAh aGFzX3N5bWxpbmtzKQotKyAgICB7Ci0rICAgICAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoImNo ZWNraW5nIHBhdGggY29tcG9uZW50IGZvciBzeW1saW5rczogJXNcbiIsCi0rCQkJICAgICAgdG1w X3BhdGhzcGVjKSk7Ci0rICAgICAgaWYgKGxzdGF0ICh0bXBfcGF0aHNwZWMsICZzKSA9PSAwKQot Kwl7Ci0rCSAgaWYgKFNfSVNMTksgKHMuc3RfbW9kZSkgIT0gMCkKLSsJICAgIHsKLSsJICAgICAg aGFzX3N5bWxpbmtzID0gMTsKLSsJICAgICAgYnJlYWs7Ci0rCSAgICB9Ci0rCi0rCSAgLyogc2Vh cmNoIGJhY2t3YXJkcyBmb3IgbGFzdCBESVJfU0VQQVJBVE9SICovCi0rCSAgcCA9IHRtcF9wYXRo c3BlYyArIHN0cmxlbiAodG1wX3BhdGhzcGVjKSAtIDE7Ci0rCSAgd2hpbGUgKChwID4gdG1wX3Bh dGhzcGVjKSAmJiAoIUlTX0RJUl9TRVBBUkFUT1IgKCpwKSkpCi0rCSAgICBwLS07Ci0rCSAgaWYg KChwID09IHRtcF9wYXRoc3BlYykgJiYgKCFJU19ESVJfU0VQQVJBVE9SICgqcCkpKQotKwkgICAg ewotKwkgICAgICAvKiBubyBtb3JlIERJUl9TRVBBUkFUT1JTIGxlZnQgKi8KLSsJICAgICAgYnJl YWs7Ci0rCSAgICB9Ci0rCSAgKnAgPSAnXDAnOwotKwl9Ci0rICAgICAgZWxzZQotKwl7Ci0rCSAg Y2hhciAqZXJyc3RyID0gc3RyZXJyb3IgKGVycm5vKTsKLSsJICBsdF9mYXRhbCAoIkVycm9yIGFj Y2Vzc2luZyBmaWxlICVzICglcykiLCB0bXBfcGF0aHNwZWMsIGVycnN0cik7Ci0rCX0KLSsgICAg fQotKyAgWEZSRUUgKHRtcF9wYXRoc3BlYyk7Ci0rCi0rICBpZiAoIWhhc19zeW1saW5rcykKLSsg ICAgewotKyAgICAgIHJldHVybiB4c3RyZHVwIChwYXRoc3BlYyk7Ci0rICAgIH0KLSsKLSsgIHRt cF9wYXRoc3BlYyA9IHJlYWxwYXRoIChwYXRoc3BlYywgYnVmKTsKLSsgIGlmICh0bXBfcGF0aHNw ZWMgPT0gMCkKLSsgICAgewotKyAgICAgIGx0X2ZhdGFsICgiQ291bGQgbm90IGZvbGxvdyBzeW1s aW5rcyBmb3IgJXMiLCBwYXRoc3BlYyk7Ci0rICAgIH0KLSsgIHJldHVybiB4c3RyZHVwICh0bXBf cGF0aHNwZWMpOwotKyNlbmRpZgotK30KLSsKLStjaGFyICoKLStzdHJlbmR6YXAgKGNoYXIgKnN0 ciwgY29uc3QgY2hhciAqcGF0KQotK3sKLSsgIHNpemVfdCBsZW4sIHBhdGxlbjsKLSsKLSsgIGFz c2VydCAoc3RyICE9IE5VTEwpOwotKyAgYXNzZXJ0IChwYXQgIT0gTlVMTCk7Ci0rCi0rICBsZW4g PSBzdHJsZW4gKHN0cik7Ci0rICBwYXRsZW4gPSBzdHJsZW4gKHBhdCk7Ci0rCi0rICBpZiAocGF0 bGVuIDw9IGxlbikKLSsgICAgewotKyAgICAgIHN0ciArPSBsZW4gLSBwYXRsZW47Ci0rICAgICAg aWYgKHN0cmNtcCAoc3RyLCBwYXQpID09IDApCi0rCSpzdHIgPSAnXDAnOwotKyAgICB9Ci0rICBy ZXR1cm4gc3RyOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2x0X2Vycm9yX2NvcmUgKGludCBleGl0 X3N0YXR1cywgY29uc3QgY2hhciAqbW9kZSwKLSsJICAgICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2Us IHZhX2xpc3QgYXApCi0rewotKyAgZnByaW50ZiAoc3RkZXJyLCAiJXM6ICVzOiAiLCBwcm9ncmFt X25hbWUsIG1vZGUpOwotKyAgdmZwcmludGYgKHN0ZGVyciwgbWVzc2FnZSwgYXApOwotKyAgZnBy aW50ZiAoc3RkZXJyLCAiLlxuIik7Ci0rCi0rICBpZiAoZXhpdF9zdGF0dXMgPj0gMCkKLSsgICAg ZXhpdCAoZXhpdF9zdGF0dXMpOwotK30KLSsKLSt2b2lkCi0rbHRfZmF0YWwgKGNvbnN0IGNoYXIg Km1lc3NhZ2UsIC4uLikKLSt7Ci0rICB2YV9saXN0IGFwOwotKyAgdmFfc3RhcnQgKGFwLCBtZXNz YWdlKTsKLSsgIGx0X2Vycm9yX2NvcmUgKEVYSVRfRkFJTFVSRSwgIkZBVEFMIiwgbWVzc2FnZSwg YXApOwotKyAgdmFfZW5kIChhcCk7Ci0rfQotKwotK3ZvaWQKLStsdF9zZXRlbnYgKGNvbnN0IGNo YXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQotK3sKLSsgIExUV1JBUFBFUl9ERUJVR1BSSU5U RiAoKCIobHRfc2V0ZW52KSBzZXR0aW5nICclcycgdG8gJyVzJ1xuIiwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgIChuYW1lID8gbmFtZSA6ICI8TlVMTD4iKSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICh2YWx1ZSA/IHZhbHVlIDogIjxOVUxMPiIpKSk7Ci0rICB7Ci0rI2lmZGVmIEhB VkVfU0VURU5WCi0rICAgIC8qIGFsd2F5cyBtYWtlIGEgY29weSwgZm9yIGNvbnNpc3RlbmN5IHdp dGggIUhBVkVfU0VURU5WICovCi0rICAgIGNoYXIgKnN0ciA9IHhzdHJkdXAgKHZhbHVlKTsKLSsg ICAgc2V0ZW52IChuYW1lLCBzdHIsIDEpOwotKyNlbHNlCi0rICAgIGludCBsZW4gPSBzdHJsZW4g KG5hbWUpICsgMSArIHN0cmxlbiAodmFsdWUpICsgMTsKLSsgICAgY2hhciAqc3RyID0gWE1BTExP QyAoY2hhciwgbGVuKTsKLSsgICAgc3ByaW50ZiAoc3RyLCAiJXM9JXMiLCBuYW1lLCB2YWx1ZSk7 Ci0rICAgIGlmIChwdXRlbnYgKHN0cikgIT0gRVhJVF9TVUNDRVNTKQotKyAgICAgIHsKLSsgICAg ICAgIFhGUkVFIChzdHIpOwotKyAgICAgIH0KLSsjZW5kaWYKLSsgIH0KLSt9Ci0rCi0rY2hhciAq Ci0rbHRfZXh0ZW5kX3N0ciAoY29uc3QgY2hhciAqb3JpZ192YWx1ZSwgY29uc3QgY2hhciAqYWRk LCBpbnQgdG9fZW5kKQotK3sKLSsgIGNoYXIgKm5ld192YWx1ZTsKLSsgIGlmIChvcmlnX3ZhbHVl ICYmICpvcmlnX3ZhbHVlKQotKyAgICB7Ci0rICAgICAgaW50IG9yaWdfdmFsdWVfbGVuID0gc3Ry bGVuIChvcmlnX3ZhbHVlKTsKLSsgICAgICBpbnQgYWRkX2xlbiA9IHN0cmxlbiAoYWRkKTsKLSsg ICAgICBuZXdfdmFsdWUgPSBYTUFMTE9DIChjaGFyLCBhZGRfbGVuICsgb3JpZ192YWx1ZV9sZW4g KyAxKTsKLSsgICAgICBpZiAodG9fZW5kKQotKyAgICAgICAgewotKyAgICAgICAgICBzdHJjcHkg KG5ld192YWx1ZSwgb3JpZ192YWx1ZSk7Ci0rICAgICAgICAgIHN0cmNweSAobmV3X3ZhbHVlICsg b3JpZ192YWx1ZV9sZW4sIGFkZCk7Ci0rICAgICAgICB9Ci0rICAgICAgZWxzZQotKyAgICAgICAg ewotKyAgICAgICAgICBzdHJjcHkgKG5ld192YWx1ZSwgYWRkKTsKLSsgICAgICAgICAgc3RyY3B5 IChuZXdfdmFsdWUgKyBhZGRfbGVuLCBvcmlnX3ZhbHVlKTsKLSsgICAgICAgIH0KLSsgICAgfQot KyAgZWxzZQotKyAgICB7Ci0rICAgICAgbmV3X3ZhbHVlID0geHN0cmR1cCAoYWRkKTsKLSsgICAg fQotKyAgcmV0dXJuIG5ld192YWx1ZTsKLSt9Ci0rCi0raW50Ci0rbHRfc3BsaXRfbmFtZV92YWx1 ZSAoY29uc3QgY2hhciAqYXJnLCBjaGFyKiogbmFtZSwgY2hhcioqIHZhbHVlKQotK3sKLSsgIGNv bnN0IGNoYXIgKnA7Ci0rICBpbnQgbGVuOwotKyAgaWYgKCFhcmcgfHwgISphcmcpCi0rICAgIHJl dHVybiAxOwotKwotKyAgcCA9IHN0cmNociAoYXJnLCAoaW50KSc9Jyk7Ci0rCi0rICBpZiAoIXAp Ci0rICAgIHJldHVybiAxOwotKwotKyAgKnZhbHVlID0geHN0cmR1cCAoKytwKTsKLSsKLSsgIGxl biA9IHN0cmxlbiAoYXJnKSAtIHN0cmxlbiAoKnZhbHVlKTsKLSsgICpuYW1lID0gWE1BTExPQyAo Y2hhciwgbGVuKTsKLSsgIHN0cm5jcHkgKCpuYW1lLCBhcmcsIGxlbi0xKTsKLSsgICgqbmFtZSlb bGVuIC0gMV0gPSAnXDAnOwotKwotKyAgcmV0dXJuIDA7Ci0rfQotKwotK3ZvaWQKLStsdF9vcHRf cHJvY2Vzc19lbnZfc2V0IChjb25zdCBjaGFyICphcmcpCi0rewotKyAgY2hhciAqbmFtZSA9IE5V TEw7Ci0rICBjaGFyICp2YWx1ZSA9IE5VTEw7Ci0rCi0rICBpZiAobHRfc3BsaXRfbmFtZV92YWx1 ZSAoYXJnLCAmbmFtZSwgJnZhbHVlKSAhPSAwKQotKyAgICB7Ci0rICAgICAgWEZSRUUgKG5hbWUp OwotKyAgICAgIFhGUkVFICh2YWx1ZSk7Ci0rICAgICAgbHRfZmF0YWwgKCJiYWQgYXJndW1lbnQg Zm9yICVzOiAnJXMnIiwgZW52X3NldF9vcHQsIGFyZyk7Ci0rICAgIH0KLSsKLSsgIGx0X3NldGVu diAobmFtZSwgdmFsdWUpOwotKyAgWEZSRUUgKG5hbWUpOwotKyAgWEZSRUUgKHZhbHVlKTsKLSt9 Ci0rCi0rdm9pZAotK2x0X29wdF9wcm9jZXNzX2Vudl9wcmVwZW5kIChjb25zdCBjaGFyICphcmcp Ci0rewotKyAgY2hhciAqbmFtZSA9IE5VTEw7Ci0rICBjaGFyICp2YWx1ZSA9IE5VTEw7Ci0rICBj aGFyICpuZXdfdmFsdWUgPSBOVUxMOwotKwotKyAgaWYgKGx0X3NwbGl0X25hbWVfdmFsdWUgKGFy ZywgJm5hbWUsICZ2YWx1ZSkgIT0gMCkKLSsgICAgewotKyAgICAgIFhGUkVFIChuYW1lKTsKLSsg ICAgICBYRlJFRSAodmFsdWUpOwotKyAgICAgIGx0X2ZhdGFsICgiYmFkIGFyZ3VtZW50IGZvciAl czogJyVzJyIsIGVudl9wcmVwZW5kX29wdCwgYXJnKTsKLSsgICAgfQotKwotKyAgbmV3X3ZhbHVl ID0gbHRfZXh0ZW5kX3N0ciAoZ2V0ZW52IChuYW1lKSwgdmFsdWUsIDApOwotKyAgbHRfc2V0ZW52 IChuYW1lLCBuZXdfdmFsdWUpOwotKyAgWEZSRUUgKG5ld192YWx1ZSk7Ci0rICBYRlJFRSAobmFt ZSk7Ci0rICBYRlJFRSAodmFsdWUpOwotK30KLSsKLSt2b2lkCi0rbHRfb3B0X3Byb2Nlc3NfZW52 X2FwcGVuZCAoY29uc3QgY2hhciAqYXJnKQotK3sKLSsgIGNoYXIgKm5hbWUgPSBOVUxMOwotKyAg Y2hhciAqdmFsdWUgPSBOVUxMOwotKyAgY2hhciAqbmV3X3ZhbHVlID0gTlVMTDsKLSsKLSsgIGlm IChsdF9zcGxpdF9uYW1lX3ZhbHVlIChhcmcsICZuYW1lLCAmdmFsdWUpICE9IDApCi0rICAgIHsK LSsgICAgICBYRlJFRSAobmFtZSk7Ci0rICAgICAgWEZSRUUgKHZhbHVlKTsKLSsgICAgICBsdF9m YXRhbCAoImJhZCBhcmd1bWVudCBmb3IgJXM6ICclcyciLCBlbnZfYXBwZW5kX29wdCwgYXJnKTsK LSsgICAgfQotKwotKyAgbmV3X3ZhbHVlID0gbHRfZXh0ZW5kX3N0ciAoZ2V0ZW52IChuYW1lKSwg dmFsdWUsIDEpOwotKyAgbHRfc2V0ZW52IChuYW1lLCBuZXdfdmFsdWUpOwotKyAgWEZSRUUgKG5l d192YWx1ZSk7Ci0rICBYRlJFRSAobmFtZSk7Ci0rICBYRlJFRSAodmFsdWUpOwotK30KLSsKLSt2 b2lkCi0rbHRfdXBkYXRlX2V4ZV9wYXRoIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2 YWx1ZSkKLSt7Ci0rICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKGx0X3VwZGF0ZV9leGVfcGF0 aCkgbW9kaWZ5aW5nICclcycgYnkgcHJlcGVuZGluZyAnJXMnXG4iLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgKG5hbWUgPyBuYW1lIDogIjxOVUxMPiIpLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgKHZhbHVlID8gdmFsdWUgOiAiPE5VTEw+IikpKTsKLSsKLSsgIGlmIChuYW1lICYm ICpuYW1lICYmIHZhbHVlICYmICp2YWx1ZSkKLSsgICAgewotKyAgICAgIGNoYXIgKm5ld192YWx1 ZSA9IGx0X2V4dGVuZF9zdHIgKGdldGVudiAobmFtZSksIHZhbHVlLCAwKTsKLSsgICAgICAvKiBz b21lIHN5c3RlbXMgY2FuJ3QgY29wZSB3aXRoIGEgJzonLXRlcm1pbmF0ZWQgcGF0aCAjJyAqLwot KyAgICAgIGludCBsZW4gPSBzdHJsZW4gKG5ld192YWx1ZSk7Ci0rICAgICAgd2hpbGUgKCgobGVu ID0gc3RybGVuIChuZXdfdmFsdWUpKSA+IDApICYmIElTX1BBVEhfU0VQQVJBVE9SIChuZXdfdmFs dWVbbGVuLTFdKSkKLSsgICAgICAgIHsKLSsgICAgICAgICAgbmV3X3ZhbHVlW2xlbi0xXSA9ICdc MCc7Ci0rICAgICAgICB9Ci0rICAgICAgbHRfc2V0ZW52IChuYW1lLCBuZXdfdmFsdWUpOwotKyAg ICAgIFhGUkVFIChuZXdfdmFsdWUpOwotKyAgICB9Ci0rfQotKwotK3ZvaWQKLStsdF91cGRhdGVf bGliX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQotK3sKLSsgIExU V1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobHRfdXBkYXRlX2xpYl9wYXRoKSBtb2RpZnlpbmcgJyVz JyBieSBwcmVwZW5kaW5nICclcydcbiIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAobmFt ZSA/IG5hbWUgOiAiPE5VTEw+IiksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWUg PyB2YWx1ZSA6ICI8TlVMTD4iKSkpOwotKwotKyAgaWYgKG5hbWUgJiYgKm5hbWUgJiYgdmFsdWUg JiYgKnZhbHVlKQotKyAgICB7Ci0rICAgICAgY2hhciAqbmV3X3ZhbHVlID0gbHRfZXh0ZW5kX3N0 ciAoZ2V0ZW52IChuYW1lKSwgdmFsdWUsIDApOwotKyAgICAgIGx0X3NldGVudiAobmFtZSwgbmV3 X3ZhbHVlKTsKLSsgICAgICBYRlJFRSAobmV3X3ZhbHVlKTsKLSsgICAgfQotK30KLSsKLSsKLStF T0YKLSt9Ci0rIyBlbmQ6IGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMKLSsKLSsjIGZ1bmNfbW9k ZV9saW5rIGFyZy4uLgotK2Z1bmNfbW9kZV9saW5rICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0r ICAgIGNhc2UgJGhvc3QgaW4KLSsgICAgKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3 MzIqIHwgKi0qLW9zMiogfCAqLWNlZ2NjKikKLSsgICAgICAjIEl0IGlzIGltcG9zc2libGUgdG8g bGluayBhIGRsbCB3aXRob3V0IHRoaXMgc2V0dGluZywgYW5kCi0rICAgICAgIyB3ZSBzaG91bGRu J3QgZm9yY2UgdGhlIG1ha2VmaWxlIG1haW50YWluZXIgdG8gZmlndXJlIG91dAotKyAgICAgICMg d2hpY2ggc3lzdGVtIHdlIGFyZSBjb21waWxpbmcgZm9yIGluIG9yZGVyIHRvIHBhc3MgYW4gZXh0 cmEKLSsgICAgICAjIGZsYWcgZm9yIGV2ZXJ5IGxpYnRvb2wgaW52b2NhdGlvbi4KLSsgICAgICAj IGFsbG93X3VuZGVmaW5lZD1ubwotKwotKyAgICAgICMgRklYTUU6IFVuZm9ydHVuYXRlbHksIHRo ZXJlIGFyZSBwcm9ibGVtcyB3aXRoIHRoZSBhYm92ZSB3aGVuIHRyeWluZwotKyAgICAgICMgdG8g bWFrZSBhIGRsbCB3aGljaCBoYXMgdW5kZWZpbmVkIHN5bWJvbHMsIGluIHdoaWNoIGNhc2Ugbm90 Ci0rICAgICAgIyBldmVuIGEgc3RhdGljIGxpYnJhcnkgaXMgYnVpbHQuICBGb3Igbm93LCB3ZSBu ZWVkIHRvIHNwZWNpZnkKLSsgICAgICAjIC1uby11bmRlZmluZWQgb24gdGhlIGxpYnRvb2wgbGlu ayBsaW5lIHdoZW4gd2UgY2FuIGJlIGNlcnRhaW4KLSsgICAgICAjIHRoYXQgYWxsIHN5bWJvbHMg YXJlIHNhdGlzZmllZCwgb3RoZXJ3aXNlIHdlIGdldCBhIHN0YXRpYyBsaWJyYXJ5LgotKyAgICAg IGFsbG93X3VuZGVmaW5lZD15ZXMKLSsgICAgICA7OwotKyAgICAqKQotKyAgICAgIGFsbG93X3Vu ZGVmaW5lZD15ZXMKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgIGxpYnRvb2xfYXJncz0kbm9u b3B0Ci0rICAgIGJhc2VfY29tcGlsZT0iJG5vbm9wdCAkQCIKLSsgICAgY29tcGlsZV9jb21tYW5k PSRub25vcHQKLSsgICAgZmluYWxpemVfY29tbWFuZD0kbm9ub3B0Ci0rCi0rICAgIGNvbXBpbGVf cnBhdGg9Ci0rICAgIGZpbmFsaXplX3JwYXRoPQotKyAgICBjb21waWxlX3NobGlicGF0aD0KLSsg ICAgZmluYWxpemVfc2hsaWJwYXRoPQotKyAgICBjb252ZW5pZW5jZT0KLSsgICAgb2xkX2NvbnZl bmllbmNlPQotKyAgICBkZXBsaWJzPQotKyAgICBvbGRfZGVwbGlicz0KLSsgICAgY29tcGlsZXJf ZmxhZ3M9Ci0rICAgIGxpbmtlcl9mbGFncz0KLSsgICAgZGxsc2VhcmNocGF0aD0KLSsgICAgbGli X3NlYXJjaF9wYXRoPWBwd2RgCi0rICAgIGluc3RfcHJlZml4X2Rpcj0KLSsgICAgbmV3X2luaGVy aXRlZF9saW5rZXJfZmxhZ3M9Ci0rCi0rICAgIGF2b2lkX3ZlcnNpb249bm8KLSsgICAgZGxmaWxl cz0KLSsgICAgZGxwcmVmaWxlcz0KLSsgICAgZGxzZWxmPW5vCi0rICAgIGV4cG9ydF9keW5hbWlj PW5vCi0rICAgIGV4cG9ydF9zeW1ib2xzPQotKyAgICBleHBvcnRfc3ltYm9sc19yZWdleD0KLSsg ICAgZ2VuZXJhdGVkPQotKyAgICBsaWJvYmpzPQotKyAgICBsdGxpYnM9Ci0rICAgIG1vZHVsZT1u bwotKyAgICBub19pbnN0YWxsPW5vCi0rICAgIG9ianM9Ci0rICAgIG5vbl9waWNfb2JqZWN0cz0K LSsgICAgcHJlY2lvdXNfZmlsZXNfcmVnZXg9Ci0rICAgIHByZWZlcl9zdGF0aWNfbGlicz1ubwot KyAgICBwcmVsb2FkPW5vCi0rICAgIHByZXY9Ci0rICAgIHByZXZhcmc9Ci0rICAgIHJlbGVhc2U9 Ci0rICAgIHJwYXRoPQotKyAgICB4cnBhdGg9Ci0rICAgIHBlcm1fcnBhdGg9Ci0rICAgIHRlbXBf cnBhdGg9Ci0rICAgIHRocmVhZF9zYWZlPW5vCi0rICAgIHZpbmZvPQotKyAgICB2aW5mb19udW1i ZXI9bm8KLSsgICAgd2Vha19saWJzPQotKyAgICBzaW5nbGVfbW9kdWxlPSIke3dsfS1zaW5nbGVf bW9kdWxlIgotKyAgICBmdW5jX2luZmVyX3RhZyAkYmFzZV9jb21waWxlCi0rCi0rICAgICMgV2Ug bmVlZCB0byBrbm93IC1zdGF0aWMsIHRvIGdldCB0aGUgcmlnaHQgb3V0cHV0IGZpbGVuYW1lcy4K LSsgICAgZm9yIGFyZwotKyAgICBkbwotKyAgICAgIGNhc2UgJGFyZyBpbgotKyAgICAgIC1zaGFy ZWQpCi0rCXRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllcyAmJiBcCi0rCSAgZnVuY19m YXRhbF9jb25maWd1cmF0aW9uICJjYW4gbm90IGJ1aWxkIGEgc2hhcmVkIGxpYnJhcnkiCi0rCWJ1 aWxkX29sZF9saWJzPW5vCi0rCWJyZWFrCi0rCTs7Ci0rICAgICAgLWFsbC1zdGF0aWMgfCAtc3Rh dGljIHwgLXN0YXRpYy1saWJ0b29sLWxpYnMpCi0rCWNhc2UgJGFyZyBpbgotKwktYWxsLXN0YXRp YykKLSsJICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllcyAmJiB0ZXN0IC16ICIk bGlua19zdGF0aWNfZmxhZyI7IHRoZW4KLSsJICAgIGZ1bmNfd2FybmluZyAiY29tcGxldGUgc3Rh dGljIGxpbmtpbmcgaXMgaW1wb3NzaWJsZSBpbiB0aGlzIGNvbmZpZ3VyYXRpb24iCi0rCSAgZmkK LSsJICBpZiB0ZXN0IC1uICIkbGlua19zdGF0aWNfZmxhZyI7IHRoZW4KLSsJICAgIGRsb3Blbl9z ZWxmPSRkbG9wZW5fc2VsZl9zdGF0aWMKLSsJICBmaQotKwkgIHByZWZlcl9zdGF0aWNfbGlicz15 ZXMKLSsJICA7OwotKwktc3RhdGljKQotKwkgIGlmIHRlc3QgLXogIiRwaWNfZmxhZyIgJiYgdGVz dCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCi0rCSAgICBkbG9wZW5fc2VsZj0kZGxvcGVu X3NlbGZfc3RhdGljCi0rCSAgZmkKLSsJICBwcmVmZXJfc3RhdGljX2xpYnM9YnVpbHQKLSsJICA7 OwotKwktc3RhdGljLWxpYnRvb2wtbGlicykKLSsJICBpZiB0ZXN0IC16ICIkcGljX2ZsYWciICYm IHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgotKwkgICAgZGxvcGVuX3NlbGY9JGRs b3Blbl9zZWxmX3N0YXRpYwotKwkgIGZpCi0rCSAgcHJlZmVyX3N0YXRpY19saWJzPXllcwotKwkg IDs7Ci0rCWVzYWMKLSsJYnVpbGRfbGlidG9vbF9saWJzPW5vCi0rCWJ1aWxkX29sZF9saWJzPXll cwotKwlicmVhawotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZG9uZQotKwotKyAgICAjIFNlZSBp ZiBvdXIgc2hhcmVkIGFyY2hpdmVzIGRlcGVuZCBvbiBzdGF0aWMgYXJjaGl2ZXMuCi0rICAgIHRl c3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzIiAmJiBidWlsZF9vbGRfbGlicz15ZXMK LSsKLSsgICAgIyBHbyB0aHJvdWdoIHRoZSBhcmd1bWVudHMsIHRyYW5zZm9ybWluZyB0aGVtIG9u IHRoZSB3YXkuCi0rICAgIHdoaWxlIHRlc3QgIiQjIiAtZ3QgMDsgZG8KLSsgICAgICBhcmc9IiQx IgotKyAgICAgIHNoaWZ0Ci0rICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKLSsgICAg ICBxYXJnPSRmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdAotKyAgICAgIGZ1bmNf YXBwZW5kIGxpYnRvb2xfYXJncyAiICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsKLSsg ICAgICAjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZHMgYW4gYXJndW1lbnQsIGFzc2lnbiBp dC4KLSsgICAgICBpZiB0ZXN0IC1uICIkcHJldiI7IHRoZW4KLSsJY2FzZSAkcHJldiBpbgotKwlv dXRwdXQpCi0rCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgQE9VVFBVVEAiCi0rCSAg ZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiIEBPVVRQVVRAIgotKwkgIDs7Ci0rCWVzYWMK LSsKLSsJY2FzZSAkcHJldiBpbgotKwlkbGZpbGVzfGRscHJlZmlsZXMpCi0rCSAgaWYgdGVzdCAi JHByZWxvYWQiID0gbm87IHRoZW4KLSsJICAgICMgQWRkIHRoZSBzeW1ib2wgb2JqZWN0IGludG8g dGhlIGxpbmtpbmcgY29tbWFuZHMuCi0rCSAgICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQg IiBAU1lNRklMRUAiCi0rCSAgICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgQFNZTUZJ TEVAIgotKwkgICAgcHJlbG9hZD15ZXMKLSsJICBmaQotKwkgIGNhc2UgJGFyZyBpbgotKwkgICou bGEgfCAqLmxvKSA7OyAgIyBXZSBoYW5kbGUgdGhlc2UgY2FzZXMgYmVsb3cuCi0rCSAgZm9yY2Up Ci0rCSAgICBpZiB0ZXN0ICIkZGxzZWxmIiA9IG5vOyB0aGVuCi0rCSAgICAgIGRsc2VsZj1uZWVk bGVzcwotKwkgICAgICBleHBvcnRfZHluYW1pYz15ZXMKLSsJICAgIGZpCi0rCSAgICBwcmV2PQot KwkgICAgY29udGludWUKLSsJICAgIDs7Ci0rCSAgc2VsZikKLSsJICAgIGlmIHRlc3QgIiRwcmV2 IiA9IGRscHJlZmlsZXM7IHRoZW4KLSsJICAgICAgZGxzZWxmPXllcwotKwkgICAgZWxpZiB0ZXN0 ICIkcHJldiIgPSBkbGZpbGVzICYmIHRlc3QgIiRkbG9wZW5fc2VsZiIgIT0geWVzOyB0aGVuCi0r CSAgICAgIGRsc2VsZj15ZXMKLSsJICAgIGVsc2UKLSsJICAgICAgZGxzZWxmPW5lZWRsZXNzCi0r CSAgICAgIGV4cG9ydF9keW5hbWljPXllcwotKwkgICAgZmkKLSsJICAgIHByZXY9Ci0rCSAgICBj b250aW51ZQotKwkgICAgOzsKLSsJICAqKQotKwkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxmaWxl czsgdGhlbgotKwkgICAgICBkbGZpbGVzPSIkZGxmaWxlcyAkYXJnIgotKwkgICAgZWxzZQotKwkg ICAgICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkYXJnIgotKwkgICAgZmkKLSsJICAgIHByZXY9 Ci0rCSAgICBjb250aW51ZQotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXhwc3ltcykK LSsJICBleHBvcnRfc3ltYm9scz0iJGFyZyIKLSsJICB0ZXN0IC1mICIkYXJnIiBcCi0rCSAgICB8 fCBmdW5jX2ZhdGFsX2Vycm9yICJzeW1ib2wgZmlsZSBcYCRhcmcnIGRvZXMgbm90IGV4aXN0Igot KwkgIHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7OwotKwlleHBzeW1zX3JlZ2V4KQotKwkgIGV4 cG9ydF9zeW1ib2xzX3JlZ2V4PSIkYXJnIgotKwkgIHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7 OwotKwlmcmFtZXdvcmspCi0rCSAgY2FzZSAkaG9zdCBpbgotKwkgICAgKi0qLWRhcndpbiopCi0r CSAgICAgIGNhc2UgIiRkZXBsaWJzICIgaW4KLSsJCSoiICRxYXJnLmx0ZnJhbWV3b3JrICIqKSA7 OwotKwkJKikgZGVwbGlicz0iJGRlcGxpYnMgJHFhcmcubHRmcmFtZXdvcmsiICMgdGhpcyBpcyBm aXhlZCBsYXRlcgotKwkJICAgOzsKLSsJICAgICAgZXNhYwotKwkgICAgICA7OwotKwkgIGVzYWMK LSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJaW5zdF9wcmVmaXgpCi0rCSAgaW5z dF9wcmVmaXhfZGlyPSIkYXJnIgotKwkgIHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7OwotKwlv YmplY3RsaXN0KQotKwkgIGlmIHRlc3QgLWYgIiRhcmciOyB0aGVuCi0rCSAgICBzYXZlX2FyZz0k YXJnCi0rCSAgICBtb3JlYXJncz0KLSsJICAgIGZvciBmaWwgaW4gYGNhdCAiJHNhdmVfYXJnImAK LSsJICAgIGRvCi0rIwkgICAgICBtb3JlYXJncz0iJG1vcmVhcmdzICRmaWwiCi0rCSAgICAgIGFy Zz0kZmlsCi0rCSAgICAgICMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgb2JqZWN0LgotKwotKwkgICAg ICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBvYmplY3QuCi0r CSAgICAgIGlmIGZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRhcmciOyB0aGVuCi0rCQlwaWNfb2JqZWN0 PQotKwkJbm9uX3BpY19vYmplY3Q9Ci0rCi0rCQkjIFJlYWQgdGhlIC5sbyBmaWxlCi0rCQlmdW5j X3NvdXJjZSAiJGFyZyIKLSsKLSsJCWlmIHRlc3QgLXogIiRwaWNfb2JqZWN0IiB8fAotKwkJICAg dGVzdCAteiAiJG5vbl9waWNfb2JqZWN0IiB8fAotKwkJICAgdGVzdCAiJHBpY19vYmplY3QiID0g bm9uZSAmJgotKwkJICAgdGVzdCAiJG5vbl9waWNfb2JqZWN0IiA9IG5vbmU7IHRoZW4KLSsJCSAg ZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgbmFtZSBvZiBvYmplY3QgZm9yIFxgJGFyZyci Ci0rCQlmaQotKwotKwkJIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVudC4K LSsJCWZ1bmNfZGlybmFtZSAiJGFyZyIgIi8iICIiCi0rCQl4ZGlyPSIkZnVuY19kaXJuYW1lX3Jl c3VsdCIKLSsKLSsJCWlmIHRlc3QgIiRwaWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCi0rCQkgICMg UHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91bmQgaW4uCi0rCQkgIHBp Y19vYmplY3Q9IiR4ZGlyJHBpY19vYmplY3QiCi0rCi0rCQkgIGlmIHRlc3QgIiRwcmV2IiA9IGRs ZmlsZXM7IHRoZW4KLSsJCSAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllcyAm JiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0geWVzOyB0aGVuCi0rCQkgICAgICBkbGZpbGVzPSIk ZGxmaWxlcyAkcGljX29iamVjdCIKLSsJCSAgICAgIHByZXY9Ci0rCQkgICAgICBjb250aW51ZQot KwkJICAgIGVsc2UKLSsJCSAgICAgICMgSWYgbGlidG9vbCBvYmplY3RzIGFyZSB1bnN1cHBvcnRl ZCwgdGhlbiB3ZSBuZWVkIHRvIHByZWxvYWQuCi0rCQkgICAgICBwcmV2PWRscHJlZmlsZXMKLSsJ CSAgICBmaQotKwkJICBmaQotKwotKwkJICAjIENIRUNLIE1FOiAgSSB0aGluayBJIGJ1c3RlZCB0 aGlzLiAgLU9zc2FtYQotKwkJICBpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCi0r CQkgICAgIyBQcmVsb2FkIHRoZSBvbGQtc3R5bGUgb2JqZWN0LgotKwkJICAgIGRscHJlZmlsZXM9 IiRkbHByZWZpbGVzICRwaWNfb2JqZWN0IgotKwkJICAgIHByZXY9Ci0rCQkgIGZpCi0rCi0rCQkg ICMgQSBQSUMgb2JqZWN0LgotKwkJICBmdW5jX2FwcGVuZCBsaWJvYmpzICIgJHBpY19vYmplY3Qi Ci0rCQkgIGFyZz0iJHBpY19vYmplY3QiCi0rCQlmaQotKwotKwkJIyBOb24tUElDIG9iamVjdC4K LSsJCWlmIHRlc3QgIiRub25fcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgotKwkJICAjIFByZXBl bmQgdGhlIHN1YmRpcmVjdG9yeSB0aGUgb2JqZWN0IGlzIGZvdW5kIGluLgotKwkJICBub25fcGlj X29iamVjdD0iJHhkaXIkbm9uX3BpY19vYmplY3QiCi0rCi0rCQkgICMgQSBzdGFuZGFyZCBub24t UElDIG9iamVjdAotKwkJICBmdW5jX2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19v YmplY3QiCi0rCQkgIGlmIHRlc3QgLXogIiRwaWNfb2JqZWN0IiB8fCB0ZXN0ICIkcGljX29iamVj dCIgPSBub25lIDsgdGhlbgotKwkJICAgIGFyZz0iJG5vbl9waWNfb2JqZWN0IgotKwkJICBmaQot KwkJZWxzZQotKwkJICAjIElmIHRoZSBQSUMgb2JqZWN0IGV4aXN0cywgdXNlIGl0IGluc3RlYWQu Ci0rCQkgICMgJHhkaXIgd2FzIHByZXBlbmRlZCB0byAkcGljX29iamVjdCBhYm92ZS4KLSsJCSAg bm9uX3BpY19vYmplY3Q9IiRwaWNfb2JqZWN0IgotKwkJICBmdW5jX2FwcGVuZCBub25fcGljX29i amVjdHMgIiAkbm9uX3BpY19vYmplY3QiCi0rCQlmaQotKwkgICAgICBlbHNlCi0rCQkjIE9ubHkg YW4gZXJyb3IgaWYgbm90IGRvaW5nIGEgZHJ5LXJ1bi4KLSsJCWlmICRvcHRfZHJ5X3J1bjsgdGhl bgotKwkJICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgotKwkJICBm dW5jX2Rpcm5hbWUgIiRhcmciICIvIiAiIgotKwkJICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3Vs dCIKLSsKLSsJCSAgZnVuY19sbzJvICIkYXJnIgotKwkJICBwaWNfb2JqZWN0PSR4ZGlyJG9iamRp ci8kZnVuY19sbzJvX3Jlc3VsdAotKwkJICBub25fcGljX29iamVjdD0keGRpciRmdW5jX2xvMm9f cmVzdWx0Ci0rCQkgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkcGljX29iamVjdCIKLSsJCSAgZnVu Y19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5vbl9waWNfb2JqZWN0IgotKwkgICAgICAgIGVs c2UKLSsJCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkYXJnJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29s IG9iamVjdCIKLSsJCWZpCi0rCSAgICAgIGZpCi0rCSAgICBkb25lCi0rCSAgZWxzZQotKwkgICAg ZnVuY19mYXRhbF9lcnJvciAibGluayBpbnB1dCBmaWxlIFxgJGFyZycgZG9lcyBub3QgZXhpc3Qi Ci0rCSAgZmkKLSsJICBhcmc9JHNhdmVfYXJnCi0rCSAgcHJldj0KLSsJICBjb250aW51ZQotKwkg IDs7Ci0rCXByZWNpb3VzX3JlZ2V4KQotKwkgIHByZWNpb3VzX2ZpbGVzX3JlZ2V4PSIkYXJnIgot KwkgIHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7OwotKwlyZWxlYXNlKQotKwkgIHJlbGVhc2U9 Ii0kYXJnIgotKwkgIHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7OwotKwlycGF0aCB8IHhycGF0 aCkKLSsJICAjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KLSsJICBjYXNlICRhcmcgaW4KLSsJ ICBbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7Ci0rCSAgKikKLSsJICAgIGZ1bmNfZmF0YWxf ZXJyb3IgIm9ubHkgYWJzb2x1dGUgcnVuLXBhdGhzIGFyZSBhbGxvd2VkIgotKwkgICAgOzsKLSsJ ICBlc2FjCi0rCSAgaWYgdGVzdCAiJHByZXYiID0gcnBhdGg7IHRoZW4KLSsJICAgIGNhc2UgIiRy cGF0aCAiIGluCi0rCSAgICAqIiAkYXJnICIqKSA7OwotKwkgICAgKikgcnBhdGg9IiRycGF0aCAk YXJnIiA7OwotKwkgICAgZXNhYwotKwkgIGVsc2UKLSsJICAgIGNhc2UgIiR4cnBhdGggIiBpbgot KwkgICAgKiIgJGFyZyAiKikgOzsKLSsJICAgICopIHhycGF0aD0iJHhycGF0aCAkYXJnIiA7Owot KwkgICAgZXNhYwotKwkgIGZpCi0rCSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCXNo cmV4dCkKLSsJICBzaHJleHRfY21kcz0iJGFyZyIKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0r CSAgOzsKLSsJd2VhaykKLSsJICB3ZWFrX2xpYnM9IiR3ZWFrX2xpYnMgJGFyZyIKLSsJICBwcmV2 PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJeGNjbGlua2VyKQotKwkgIGxpbmtlcl9mbGFncz0i JGxpbmtlcl9mbGFncyAkcWFyZyIKLSsJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdz ICRxYXJnIgotKwkgIHByZXY9Ci0rCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJHFh cmciCi0rCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRxYXJnIgotKwkgIGNvbnRp bnVlCi0rCSAgOzsKLSsJeGNvbXBpbGVyKQotKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJf ZmxhZ3MgJHFhcmciCi0rCSAgcHJldj0KLSsJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQg IiAkcWFyZyIKLSsJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJHFhcmciCi0rCSAg Y29udGludWUKLSsJICA7OwotKwl4bGlua2VyKQotKwkgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9m bGFncyAkcWFyZyIKLSsJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICR3bCRxYXJn IgotKwkgIHByZXY9Ci0rCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJHdsJHFhcmci Ci0rCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICR3bCRxYXJnIgotKwkgIGNvbnRp bnVlCi0rCSAgOzsKLSsJKikKLSsJICBldmFsICIkcHJldj1cIlwkYXJnXCIiCi0rCSAgcHJldj0K LSsJICBjb250aW51ZQotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBmaSAjIHRlc3QgLW4gIiRwcmV2 IgotKwotKyAgICAgIHByZXZhcmc9IiRhcmciCi0rCi0rICAgICAgY2FzZSAkYXJnIGluCi0rICAg ICAgLWFsbC1zdGF0aWMpCi0rCWlmIHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgot KwkgICMgU2VlIGNvbW1lbnQgZm9yIC1zdGF0aWMgZmxhZyBiZWxvdywgZm9yIG1vcmUgZGV0YWls cy4KLSsJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkbGlua19zdGF0aWNfZmxhZyIK LSsJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGxpbmtfc3RhdGljX2ZsYWciCi0r CWZpCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLWFsbG93LXVuZGVmaW5lZCkKLSsJIyBG SVhNRTogcmVtb3ZlIHRoaXMgZmxhZyBzb21ldGltZSBpbiB0aGUgZnV0dXJlLgotKwlmdW5jX2Zh dGFsX2Vycm9yICJcYC1hbGxvdy11bmRlZmluZWQnIG11c3Qgbm90IGJlIHVzZWQgYmVjYXVzZSBp dCBpcyB0aGUgZGVmYXVsdCIKLSsJOzsKLSsKLSsgICAgICAtYXZvaWQtdmVyc2lvbikKLSsJYXZv aWRfdmVyc2lvbj15ZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtZGxvcGVuKQotKwlw cmV2PWRsZmlsZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtZGxwcmVvcGVuKQotKwlw cmV2PWRscHJlZmlsZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtZXhwb3J0LWR5bmFt aWMpCi0rCWV4cG9ydF9keW5hbWljPXllcwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1l eHBvcnQtc3ltYm9scyB8IC1leHBvcnQtc3ltYm9scy1yZWdleCkKLSsJaWYgdGVzdCAtbiAiJGV4 cG9ydF9zeW1ib2xzIiB8fCB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCi0r CSAgZnVuY19mYXRhbF9lcnJvciAibW9yZSB0aGFuIG9uZSAtZXhwb3J0ZWQtc3ltYm9scyBhcmd1 bWVudCBpcyBub3QgYWxsb3dlZCIKLSsJZmkKLSsJaWYgdGVzdCAiWCRhcmciID0gIlgtZXhwb3J0 LXN5bWJvbHMiOyB0aGVuCi0rCSAgcHJldj1leHBzeW1zCi0rCWVsc2UKLSsJICBwcmV2PWV4cHN5 bXNfcmVnZXgKLSsJZmkKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtZnJhbWV3b3JrKQot KwlwcmV2PWZyYW1ld29yawotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1pbnN0LXByZWZp eC1kaXIpCi0rCXByZXY9aW5zdF9wcmVmaXgKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAj IFRoZSBuYXRpdmUgSVJJWCBsaW5rZXIgdW5kZXJzdGFuZHMgLUxBTkc6KiwgLUxJU1Q6KiBhbmQg LUxOTzoqCi0rICAgICAgIyBzbywgaWYgd2Ugc2VlIHRoZXNlIGZsYWdzIGJlIGNhcmVmdWwgbm90 IHRvIHRyZWF0IHRoZW0gbGlrZSAtTAotKyAgICAgIC1MW0EtWl1bQS1aXSo6KikKLSsJY2FzZSAk d2l0aF9nY2MvJGhvc3QgaW4KLSsJbm8vKi0qLWlyaXgqIHwgLyotKi1pcml4KikKLSsJICBmdW5j X2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgotKwkgIGZ1bmNfYXBwZW5kIGZpbmFsaXpl X2NvbW1hbmQgIiAkYXJnIgotKwkgIDs7Ci0rCWVzYWMKLSsJY29udGludWUKLSsJOzsKLSsKLSsg ICAgICAtTCopCi0rCWZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRhcmciCi0rCWRpcj0kZnVuY19z dHJpcG5hbWVfcmVzdWx0Ci0rCWlmIHRlc3QgLXogIiRkaXIiOyB0aGVuCi0rCSAgaWYgdGVzdCAi JCMiIC1ndCAwOyB0aGVuCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJyZXF1aXJlIG5vIHNwYWNl IGJldHdlZW4gXGAtTCcgYW5kIFxgJDEnIgotKwkgIGVsc2UKLSsJICAgIGZ1bmNfZmF0YWxfZXJy b3IgIm5lZWQgcGF0aCBmb3IgXGAtTCcgb3B0aW9uIgotKwkgIGZpCi0rCWZpCi0rCSMgV2UgbmVl ZCBhbiBhYnNvbHV0ZSBwYXRoLgotKwljYXNlICRkaXIgaW4KLSsJW1xcL10qIHwgW0EtWmEtel06 W1xcL10qKSA7OwotKwkqKQotKwkgIGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKLSsJICB0ZXN0 IC16ICIkYWJzZGlyIiAmJiBcCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZGV0ZXJt aW5lIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIG9mIFxgJGRpciciCi0rCSAgZGlyPSIkYWJzZGly IgotKwkgIDs7Ci0rCWVzYWMKLSsJY2FzZSAiJGRlcGxpYnMgIiBpbgotKwkqIiAtTCRkaXIgIiop IDs7Ci0rCSopCi0rCSAgZGVwbGlicz0iJGRlcGxpYnMgLUwkZGlyIgotKwkgIGxpYl9zZWFyY2hf cGF0aD0iJGxpYl9zZWFyY2hfcGF0aCAkZGlyIgotKwkgIDs7Ci0rCWVzYWMKLSsJY2FzZSAkaG9z dCBpbgotKwkqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKiB8 ICotY2VnY2MqKQotKwkgIHRlc3RiaW5kaXI9YCRFQ0hPICJYJGRpciIgfCAkWHNlZCAtZSAncyov bGliJCovYmluKidgCi0rCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCi0rCSAgKiI6JGRpcjoi KikgOzsKLSsJICA6OikgZGxsc2VhcmNocGF0aD0kZGlyOzsKLSsJICAqKSBkbGxzZWFyY2hwYXRo PSIkZGxsc2VhcmNocGF0aDokZGlyIjs7Ci0rCSAgZXNhYwotKwkgIGNhc2UgOiRkbGxzZWFyY2hw YXRoOiBpbgotKwkgICoiOiR0ZXN0YmluZGlyOiIqKSA7OwotKwkgIDo6KSBkbGxzZWFyY2hwYXRo PSR0ZXN0YmluZGlyOzsKLSsJICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxsc2VhcmNocGF0aDokdGVz dGJpbmRpciI7OwotKwkgIGVzYWMKLSsJICA7OwotKwllc2FjCi0rCWNvbnRpbnVlCi0rCTs7Ci0r Ci0rICAgICAgLWwqKQotKwlpZiB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgfHwgdGVzdCAiWCRhcmci ID0gIlgtbG0iOyB0aGVuCi0rCSAgY2FzZSAkaG9zdCBpbgotKwkgICotKi1jeWd3aW4qIHwgKi0q LW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1iZW9zKiB8ICotY2VnY2MqKQotKwkgICAgIyBUaGVz ZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBDIG9yIG1hdGggbGlicmFyeSAoYXMgc3Vj aCkKLSsJICAgIGNvbnRpbnVlCi0rCSAgICA7OwotKwkgICotKi1vczIqKQotKwkgICAgIyBUaGVz ZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBDIGxpYnJhcnkgKGFzIHN1Y2gpCi0rCSAg ICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKLSsJICAgIDs7Ci0rCSAgKi0qLW9w ZW5ic2QqIHwgKi0qLWZyZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCi0rCSAgICAjIERvIG5vdCBp bmNsdWRlIGxpYmMgZHVlIHRvIHVzIGhhdmluZyBsaWJjL2xpYmNfci4KLSsJICAgIHRlc3QgIlgk YXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQotKwkgICAgOzsKLSsJICAqLSotcmhhcHNvZHkqIHwg Ki0qLWRhcndpbjEuWzAxMl0pCi0rCSAgICAjIFJoYXBzb2R5IEMgYW5kIG1hdGggbGlicmFyaWVz IGFyZSBpbiB0aGUgU3lzdGVtIGZyYW1ld29yawotKwkgICAgZGVwbGlicz0iJGRlcGxpYnMgU3lz dGVtLmx0ZnJhbWV3b3JrIgotKwkgICAgY29udGludWUKLSsJICAgIDs7Ci0rCSAgKi0qLXNjbzMu MnY1KiB8ICotKi1zY281djYqKQotKwkgICAgIyBDYXVzZXMgcHJvYmxlbXMgd2l0aCBfX2N0eXBl Ci0rCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKLSsJICAgIDs7Ci0rCSAg Ki0qLXN5c3Y0LjJ1dzIqIHwgKi0qLXN5c3Y1KiB8ICotKi11bml4d2FyZSogfCAqLSotT3BlblVO SVgqKQotKwkgICAgIyBDb21waWxlciBpbnNlcnRzIGxpYmMgaW4gdGhlIGNvcnJlY3QgcGxhY2Ug Zm9yIHRocmVhZHMgdG8gd29yawotKwkgICAgdGVzdCAiWCRhcmciID0gIlgtbGMiICYmIGNvbnRp bnVlCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJZWxpZiB0ZXN0ICJYJGFyZyIgPSAiWC1sY19yIjsg dGhlbgotKwkgY2FzZSAkaG9zdCBpbgotKwkgKi0qLW9wZW5ic2QqIHwgKi0qLWZyZWVic2QqIHwg Ki0qLWRyYWdvbmZseSopCi0rCSAgICMgRG8gbm90IGluY2x1ZGUgbGliY19yIGRpcmVjdGx5LCB1 c2UgLXB0aHJlYWQgZmxhZy4KLSsJICAgY29udGludWUKLSsJICAgOzsKLSsJIGVzYWMKLSsJZmkK LSsJZGVwbGlicz0iJGRlcGxpYnMgJGFyZyIKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAt bW9kdWxlKQotKwltb2R1bGU9eWVzCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgIyBUcnU2 NCBVTklYIHVzZXMgLW1vZGVsIFthcmddIHRvIGRldGVybWluZSB0aGUgbGF5b3V0IG9mIEMrKwot KyAgICAgICMgY2xhc3NlcywgbmFtZSBtYW5nbGluZywgYW5kIGV4Y2VwdGlvbiBoYW5kbGluZy4K LSsgICAgICAjIERhcndpbiB1c2VzIHRoZSAtYXJjaCBmbGFnIHRvIGRldGVybWluZSBvdXRwdXQg YXJjaGl0ZWN0dXJlLgotKyAgICAgIC1tb2RlbHwtYXJjaHwtaXN5c3Jvb3QpCi0rCWNvbXBpbGVy X2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJGFyZyIKLSsJZnVuY19hcHBlbmQgY29tcGlsZV9jb21t YW5kICIgJGFyZyIKLSsJZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRhcmciCi0rCXBy ZXY9eGNvbXBpbGVyCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLW10fC1tdGhyZWFkc3wt a3RocmVhZHwtS3RocmVhZHwtcHRocmVhZHwtcHRocmVhZHN8LS10aHJlYWQtc2FmZXwtdGhyZWFk cykKLSsJY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkYXJnIgotKwlmdW5jX2FwcGVu ZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgotKwlmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5k ICIgJGFyZyIKLSsJY2FzZSAiJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgaW4KLSsJICAg ICoiICRhcmcgIiopIDs7Ci0rCSAgICAqICkgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9IiRu ZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkYXJnIiA7OwotKwllc2FjCi0rCWNvbnRpbnVlCi0r CTs7Ci0rCi0rICAgICAgLW11bHRpX21vZHVsZSkKLSsJc2luZ2xlX21vZHVsZT0iJHt3bH0tbXVs dGlfbW9kdWxlIgotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1uby1mYXN0LWluc3RhbGwp Ci0rCWZhc3RfaW5zdGFsbD1ubwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1uby1pbnN0 YWxsKQotKwljYXNlICRob3N0IGluCi0rCSotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1w dzMyKiB8ICotKi1vczIqIHwgKi0qLWRhcndpbiogfCAqLWNlZ2NjKikKLSsJICAjIFRoZSBQQVRI IGhhY2tlcnkgaW4gd3JhcHBlciBzY3JpcHRzIGlzIHJlcXVpcmVkIG9uIFdpbmRvd3MKLSsJICAj IGFuZCBEYXJ3aW4gaW4gb3JkZXIgZm9yIHRoZSBsb2FkZXIgdG8gZmluZCBhbnkgZGxscyBpdCBu ZWVkcy4KLSsJICBmdW5jX3dhcm5pbmcgIlxgLW5vLWluc3RhbGwnIGlzIGlnbm9yZWQgZm9yICRo b3N0IgotKwkgIGZ1bmNfd2FybmluZyAiYXNzdW1pbmcgXGAtbm8tZmFzdC1pbnN0YWxsJyBpbnN0 ZWFkIgotKwkgIGZhc3RfaW5zdGFsbD1ubwotKwkgIDs7Ci0rCSopIG5vX2luc3RhbGw9eWVzIDs7 Ci0rCWVzYWMKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtbm8tdW5kZWZpbmVkKQotKwlh bGxvd191bmRlZmluZWQ9bm8KLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtb2JqZWN0bGlz dCkKLSsJcHJldj1vYmplY3RsaXN0Ci0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLW8pIHBy ZXY9b3V0cHV0IDs7Ci0rCi0rICAgICAgLXByZWNpb3VzLWZpbGVzLXJlZ2V4KQotKwlwcmV2PXBy ZWNpb3VzX3JlZ2V4Ci0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLXJlbGVhc2UpCi0rCXBy ZXY9cmVsZWFzZQotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1ycGF0aCkKLSsJcHJldj1y cGF0aAotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1SKQotKwlwcmV2PXhycGF0aAotKwlj b250aW51ZQotKwk7OwotKwotKyAgICAgIC1SKikKLSsJZnVuY19zdHJpcG5hbWUgJy1SJyAnJyAi JGFyZyIKLSsJZGlyPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJIyBXZSBuZWVkIGFuIGFic29s dXRlIHBhdGguCi0rCWNhc2UgJGRpciBpbgotKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7 Ci0rCSopCi0rCSAgZnVuY19mYXRhbF9lcnJvciAib25seSBhYnNvbHV0ZSBydW4tcGF0aHMgYXJl IGFsbG93ZWQiCi0rCSAgOzsKLSsJZXNhYwotKwljYXNlICIkeHJwYXRoICIgaW4KLSsJKiIgJGRp ciAiKikgOzsKLSsJKikgeHJwYXRoPSIkeHJwYXRoICRkaXIiIDs7Ci0rCWVzYWMKLSsJY29udGlu dWUKLSsJOzsKLSsKLSsgICAgICAtc2hhcmVkKQotKwkjIFRoZSBlZmZlY3RzIG9mIC1zaGFyZWQg YXJlIGRlZmluZWQgaW4gYSBwcmV2aW91cyBsb29wLgotKwljb250aW51ZQotKwk7OwotKwotKyAg ICAgIC1zaHJleHQpCi0rCXByZXY9c2hyZXh0Ci0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAg LXN0YXRpYyB8IC1zdGF0aWMtbGlidG9vbC1saWJzKQotKwkjIFRoZSBlZmZlY3RzIG9mIC1zdGF0 aWMgYXJlIGRlZmluZWQgaW4gYSBwcmV2aW91cyBsb29wLgotKwkjIFdlIHVzZWQgdG8gZG8gdGhl IHNhbWUgYXMgLWFsbC1zdGF0aWMgb24gcGxhdGZvcm1zIHRoYXQKLSsJIyBkaWRuJ3QgaGF2ZSBh IFBJQyBmbGFnLCBidXQgdGhlIGFzc3VtcHRpb24gdGhhdCB0aGUgZWZmZWN0cwotKwkjIHdvdWxk IGJlIGVxdWl2YWxlbnQgd2FzIHdyb25nLiAgSXQgd291bGQgYnJlYWsgb24gYXQgbGVhc3QKLSsJ IyBEaWdpdGFsIFVuaXggYW5kIEFJWC4KLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtdGhy ZWFkLXNhZmUpCi0rCXRocmVhZF9zYWZlPXllcwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAg IC12ZXJzaW9uLWluZm8pCi0rCXByZXY9dmluZm8KLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAg ICAtdmVyc2lvbi1udW1iZXIpCi0rCXByZXY9dmluZm8KLSsJdmluZm9fbnVtYmVyPXllcwotKwlj b250aW51ZQotKwk7OwotKwotKyAgICAgIC13ZWFrKQotKyAgICAgICAgcHJldj13ZWFrCi0rCWNv bnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLVdjLCopCi0rCWZ1bmNfc3RyaXBuYW1lICctV2MsJyAn JyAiJGFyZyIKLSsJYXJncz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCWFyZz0KLSsJc2F2ZV9p ZnM9IiRJRlMiOyBJRlM9JywnCi0rCWZvciBmbGFnIGluICRhcmdzOyBkbwotKwkgIElGUz0iJHNh dmVfaWZzIgotKyAgICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkZmxhZyIKLSsJICBhcmc9 IiRhcmcgJHdsJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKwkgIGNvbXBpbGVyX2ZsYWdz PSIkY29tcGlsZXJfZmxhZ3MgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKwlkb25lCi0r CUlGUz0iJHNhdmVfaWZzIgotKwlmdW5jX3N0cmlwbmFtZSAnICcgJycgIiRhcmciCi0rCWFyZz0k ZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCTs7Ci0rCi0rICAgICAgLVdsLCopCi0rCWZ1bmNfc3Ry aXBuYW1lICctV2wsJyAnJyAiJGFyZyIKLSsJYXJncz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0r CWFyZz0KLSsJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JywnCi0rCWZvciBmbGFnIGluICRhcmdzOyBk bwotKwkgIElGUz0iJHNhdmVfaWZzIgotKyAgICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIk ZmxhZyIKLSsJICBhcmc9IiRhcmcgJHdsJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKwkg IGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHdsJGZ1bmNfcXVvdGVfZm9yX2V2YWxf cmVzdWx0IgotKwkgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkZnVuY19xdW90ZV9mb3Jf ZXZhbF9yZXN1bHQiCi0rCWRvbmUKLSsJSUZTPSIkc2F2ZV9pZnMiCi0rCWZ1bmNfc3RyaXBuYW1l ICcgJyAnJyAiJGFyZyIKLSsJYXJnPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJOzsKLSsKLSsg ICAgICAtWGNvbXBpbGVyKQotKwlwcmV2PXhjb21waWxlcgotKwljb250aW51ZQotKwk7OwotKwot KyAgICAgIC1YbGlua2VyKQotKwlwcmV2PXhsaW5rZXIKLSsJY29udGludWUKLSsJOzsKLSsKLSsg ICAgICAtWENDbGlua2VyKQotKwlwcmV2PXhjY2xpbmtlcgotKwljb250aW51ZQotKwk7OwotKwot KyAgICAgICMgLW1zZ18qIGZvciBvc2YgY2MKLSsgICAgICAtbXNnXyopCi0rCWZ1bmNfcXVvdGVf Zm9yX2V2YWwgIiRhcmciCi0rCWFyZz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKwk7 OwotKwotKyAgICAgICMgLTY0LCAtbWlwc1swLTldIGVuYWJsZSA2NC1iaXQgbW9kZSBvbiB0aGUg U0dJIGNvbXBpbGVyCi0rICAgICAgIyAtclswLTldWzAtOV0qIHNwZWNpZmllcyB0aGUgcHJvY2Vz c29yIG9uIHRoZSBTR0kgY29tcGlsZXIKLSsgICAgICAjIC14YXJjaD0qLCAteHRhcmdldD0qIGVu YWJsZSA2NC1iaXQgbW9kZSBvbiB0aGUgU3VuIGNvbXBpbGVyCi0rICAgICAgIyArREEqLCArREQq IGVuYWJsZSA2NC1iaXQgbW9kZSBvbiB0aGUgSFAgY29tcGlsZXIKLSsgICAgICAjIC1xKiBwYXNz IHRocm91Z2ggY29tcGlsZXIgYXJncyBmb3IgdGhlIElCTSBjb21waWxlcgotKyAgICAgICMgLW0q LCAtdFs0NV0qLCAtdHhzY2FsZSogcGFzcyB0aHJvdWdoIGFyY2hpdGVjdHVyZS1zcGVjaWZpYwot KyAgICAgICMgY29tcGlsZXIgYXJncyBmb3IgR0NDCi0rICAgICAgIyAtRi9wYXRoIGdpdmVzIHBh dGggdG8gdW5pbnN0YWxsZWQgZnJhbWV3b3JrcywgZ2NjIG9uIGRhcndpbgotKyAgICAgICMgLXAs IC1wZywgLS1jb3ZlcmFnZSwgLWZwcm9maWxlLSogcGFzcyB0aHJvdWdoIHByb2ZpbGluZyBmbGFn IGZvciBHQ0MKLSsgICAgICAjIEBmaWxlIEdDQyByZXNwb25zZSBmaWxlcwotKyAgICAgIC02NHwt bWlwc1swLTldfC1yWzAtOV1bMC05XSp8LXhhcmNoPSp8LXh0YXJnZXQ9KnwrREEqfCtERCp8LXEq fC1tKnwgXAotKyAgICAgIC10WzQ1XSp8LXR4c2NhbGUqfC1wfC1wZ3wtLWNvdmVyYWdlfC1mcHJv ZmlsZS0qfC1GKnxAKikKLSsgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCi0rCWFy Zz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKyAgICAgICAgZnVuY19hcHBlbmQgY29t cGlsZV9jb21tYW5kICIgJGFyZyIKLSsgICAgICAgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1h bmQgIiAkYXJnIgotKyAgICAgICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkYXJn IgotKyAgICAgICAgY29udGludWUKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgIyBTb21lIG90aGVy IGNvbXBpbGVyIGZsYWcuCi0rICAgICAgLSogfCArKikKLSsgICAgICAgIGZ1bmNfcXVvdGVfZm9y X2V2YWwgIiRhcmciCi0rCWFyZz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKwk7Owot KwotKyAgICAgICouJG9iamV4dCkKLSsJIyBBIHN0YW5kYXJkIG9iamVjdC4KLSsJb2Jqcz0iJG9i anMgJGFyZyIKLSsJOzsKLSsKLSsgICAgICAqLmxvKQotKwkjIEEgbGlidG9vbC1jb250cm9sbGVk IG9iamVjdC4KLSsKLSsJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRv b2wgb2JqZWN0LgotKwlpZiBmdW5jX2xhbGliX3Vuc2FmZV9wICIkYXJnIjsgdGhlbgotKwkgIHBp Y19vYmplY3Q9Ci0rCSAgbm9uX3BpY19vYmplY3Q9Ci0rCi0rCSAgIyBSZWFkIHRoZSAubG8gZmls ZQotKwkgIGZ1bmNfc291cmNlICIkYXJnIgotKwotKwkgIGlmIHRlc3QgLXogIiRwaWNfb2JqZWN0 IiB8fAotKwkgICAgIHRlc3QgLXogIiRub25fcGljX29iamVjdCIgfHwKLSsJICAgICB0ZXN0ICIk cGljX29iamVjdCIgPSBub25lICYmCi0rCSAgICAgdGVzdCAiJG5vbl9waWNfb2JqZWN0IiA9IG5v bmU7IHRoZW4KLSsJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2Ygb2Jq ZWN0IGZvciBcYCRhcmcnIgotKwkgIGZpCi0rCi0rCSAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBm cm9tIHRoZSBhcmd1bWVudC4KLSsJICBmdW5jX2Rpcm5hbWUgIiRhcmciICIvIiAiIgotKwkgIHhk aXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKwotKwkgIGlmIHRlc3QgIiRwaWNfb2JqZWN0IiAh PSBub25lOyB0aGVuCi0rCSAgICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0aGUgb2JqZWN0 IGlzIGZvdW5kIGluLgotKwkgICAgcGljX29iamVjdD0iJHhkaXIkcGljX29iamVjdCIKLSsKLSsJ ICAgIGlmIHRlc3QgIiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4KLSsJICAgICAgaWYgdGVzdCAiJGJ1 aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiA9IHllczsg dGhlbgotKwkJZGxmaWxlcz0iJGRsZmlsZXMgJHBpY19vYmplY3QiCi0rCQlwcmV2PQotKwkJY29u dGludWUKLSsJICAgICAgZWxzZQotKwkJIyBJZiBsaWJ0b29sIG9iamVjdHMgYXJlIHVuc3VwcG9y dGVkLCB0aGVuIHdlIG5lZWQgdG8gcHJlbG9hZC4KLSsJCXByZXY9ZGxwcmVmaWxlcwotKwkgICAg ICBmaQotKwkgICAgZmkKLSsKLSsJICAgICMgQ0hFQ0sgTUU6ICBJIHRoaW5rIEkgYnVzdGVkIHRo aXMuICAtT3NzYW1hCi0rCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCi0r CSAgICAgICMgUHJlbG9hZCB0aGUgb2xkLXN0eWxlIG9iamVjdC4KLSsJICAgICAgZGxwcmVmaWxl cz0iJGRscHJlZmlsZXMgJHBpY19vYmplY3QiCi0rCSAgICAgIHByZXY9Ci0rCSAgICBmaQotKwot KwkgICAgIyBBIFBJQyBvYmplY3QuCi0rCSAgICBmdW5jX2FwcGVuZCBsaWJvYmpzICIgJHBpY19v YmplY3QiCi0rCSAgICBhcmc9IiRwaWNfb2JqZWN0IgotKwkgIGZpCi0rCi0rCSAgIyBOb24tUElD IG9iamVjdC4KLSsJICBpZiB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KLSsJ ICAgICMgUHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91bmQgaW4uCi0r CSAgICBub25fcGljX29iamVjdD0iJHhkaXIkbm9uX3BpY19vYmplY3QiCi0rCi0rCSAgICAjIEEg c3RhbmRhcmQgbm9uLVBJQyBvYmplY3QKLSsJICAgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0 cyAiICRub25fcGljX29iamVjdCIKLSsJICAgIGlmIHRlc3QgLXogIiRwaWNfb2JqZWN0IiB8fCB0 ZXN0ICIkcGljX29iamVjdCIgPSBub25lIDsgdGhlbgotKwkgICAgICBhcmc9IiRub25fcGljX29i amVjdCIKLSsJICAgIGZpCi0rCSAgZWxzZQotKwkgICAgIyBJZiB0aGUgUElDIG9iamVjdCBleGlz dHMsIHVzZSBpdCBpbnN0ZWFkLgotKwkgICAgIyAkeGRpciB3YXMgcHJlcGVuZGVkIHRvICRwaWNf b2JqZWN0IGFib3ZlLgotKwkgICAgbm9uX3BpY19vYmplY3Q9IiRwaWNfb2JqZWN0IgotKwkgICAg ZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5vbl9waWNfb2JqZWN0IgotKwkgIGZpCi0r CWVsc2UKLSsJICAjIE9ubHkgYW4gZXJyb3IgaWYgbm90IGRvaW5nIGEgZHJ5LXJ1bi4KLSsJICBp ZiAkb3B0X2RyeV9ydW47IHRoZW4KLSsJICAgICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0 aGUgYXJndW1lbnQuCi0rCSAgICBmdW5jX2Rpcm5hbWUgIiRhcmciICIvIiAiIgotKwkgICAgeGRp cj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0rCi0rCSAgICBmdW5jX2xvMm8gIiRhcmciCi0rCSAg ICBwaWNfb2JqZWN0PSR4ZGlyJG9iamRpci8kZnVuY19sbzJvX3Jlc3VsdAotKwkgICAgbm9uX3Bp Y19vYmplY3Q9JHhkaXIkZnVuY19sbzJvX3Jlc3VsdAotKwkgICAgZnVuY19hcHBlbmQgbGlib2Jq cyAiICRwaWNfb2JqZWN0IgotKwkgICAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5v bl9waWNfb2JqZWN0IgotKwkgIGVsc2UKLSsJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGFyZycg aXMgbm90IGEgdmFsaWQgbGlidG9vbCBvYmplY3QiCi0rCSAgZmkKLSsJZmkKLSsJOzsKLSsKLSsg ICAgICAqLiRsaWJleHQpCi0rCSMgQW4gYXJjaGl2ZS4KLSsJZGVwbGlicz0iJGRlcGxpYnMgJGFy ZyIKLSsJb2xkX2RlcGxpYnM9IiRvbGRfZGVwbGlicyAkYXJnIgotKwljb250aW51ZQotKwk7Owot KwotKyAgICAgICoubGEpCi0rCSMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgbGlicmFyeS4KLSsKLSsJ aWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgotKwkgICMgVGhpcyBsaWJyYXJ5IHdhcyBz cGVjaWZpZWQgd2l0aCAtZGxvcGVuLgotKwkgIGRsZmlsZXM9IiRkbGZpbGVzICRhcmciCi0rCSAg cHJldj0KLSsJZWxpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCi0rCSAgIyBUaGUg bGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRscHJlb3Blbi4KLSsJICBkbHByZWZpbGVzPSIk ZGxwcmVmaWxlcyAkYXJnIgotKwkgIHByZXY9Ci0rCWVsc2UKLSsJICBkZXBsaWJzPSIkZGVwbGli cyAkYXJnIgotKwlmaQotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgICMgU29tZSBvdGhlciBj b21waWxlciBhcmd1bWVudC4KLSsgICAgICAqKQotKwkjIFVua25vd24gYXJndW1lbnRzIGluIGJv dGggZmluYWxpemVfY29tbWFuZCBhbmQgY29tcGlsZV9jb21tYW5kIG5lZWQKLSsJIyB0byBiZSBh ZXN0aGV0aWNhbGx5IHF1b3RlZCBiZWNhdXNlIHRoZXkgYXJlIGV2YWxlZCBsYXRlci4KLSsJZnVu Y19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKLSsJYXJnPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1 bHQiCi0rCTs7Ci0rICAgICAgZXNhYyAjIGFyZwotKwotKyAgICAgICMgTm93IGFjdHVhbGx5IHN1 YnN0aXR1dGUgdGhlIGFyZ3VtZW50IGludG8gdGhlIGNvbW1hbmRzLgotKyAgICAgIGlmIHRlc3Qg LW4gIiRhcmciOyB0aGVuCi0rCWZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCi0r CWZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgotKyAgICAgIGZpCi0rICAgIGRv bmUgIyBhcmd1bWVudCBwYXJzaW5nIGxvb3AKLSsKLSsgICAgdGVzdCAtbiAiJHByZXYiICYmIFwK LSsgICAgICBmdW5jX2ZhdGFsX2hlbHAgInRoZSBcYCRwcmV2YXJnJyBvcHRpb24gcmVxdWlyZXMg YW4gYXJndW1lbnQiCi0rCi0rICAgIGlmIHRlc3QgIiRleHBvcnRfZHluYW1pYyIgPSB5ZXMgJiYg dGVzdCAtbiAiJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyI7IHRoZW4KLSsgICAgICBldmFsIGFy Zz1cIiRleHBvcnRfZHluYW1pY19mbGFnX3NwZWNcIgotKyAgICAgIGZ1bmNfYXBwZW5kIGNvbXBp bGVfY29tbWFuZCAiICRhcmciCi0rICAgICAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAi ICRhcmciCi0rICAgIGZpCi0rCi0rICAgIG9sZGxpYnM9Ci0rICAgICMgY2FsY3VsYXRlIHRoZSBu YW1lIG9mIHRoZSBmaWxlLCB3aXRob3V0IGl0cyBkaXJlY3RvcnkKLSsgICAgZnVuY19iYXNlbmFt ZSAiJG91dHB1dCIKLSsgICAgb3V0cHV0bmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKyAg ICBsaWJvYmpzX3NhdmU9IiRsaWJvYmpzIgotKwotKyAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRo X3ZhciI7IHRoZW4KLSsgICAgICAjIGdldCB0aGUgZGlyZWN0b3JpZXMgbGlzdGVkIGluICRzaGxp YnBhdGhfdmFyCi0rICAgICAgZXZhbCBzaGxpYl9zZWFyY2hfcGF0aD1cYFwkRUNITyBcIlhcJHsk c2hsaWJwYXRoX3Zhcn1cIiBcfCBcJFhzZWQgLWUgXCdzLzovIC9nXCdcYAotKyAgICBlbHNlCi0r ICAgICAgc2hsaWJfc2VhcmNoX3BhdGg9Ci0rICAgIGZpCi0rICAgIGV2YWwgc3lzX2xpYl9zZWFy Y2hfcGF0aD1cIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWNcIgotKyAgICBldmFsIHN5c19saWJf ZGxzZWFyY2hfcGF0aD1cIiRzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlY1wiCi0rCi0rICAgIGZ1 bmNfZGlybmFtZSAiJG91dHB1dCIgIi8iICIiCi0rICAgIG91dHB1dF9vYmpkaXI9IiRmdW5jX2Rp cm5hbWVfcmVzdWx0JG9iamRpciIKLSsgICAgIyBDcmVhdGUgdGhlIG9iamVjdCBkaXJlY3Rvcnku Ci0rICAgIGZ1bmNfbWtkaXJfcCAiJG91dHB1dF9vYmpkaXIiCi0rCi0rICAgICMgRGV0ZXJtaW5l IHRoZSB0eXBlIG9mIG91dHB1dAotKyAgICBjYXNlICRvdXRwdXQgaW4KLSsgICAgIiIpCi0rICAg ICAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIgotKyAg ICAgIDs7Ci0rICAgICouJGxpYmV4dCkgbGlua21vZGU9b2xkbGliIDs7Ci0rICAgICoubG8gfCAq LiRvYmpleHQpIGxpbmttb2RlPW9iaiA7OwotKyAgICAqLmxhKSBsaW5rbW9kZT1saWIgOzsKLSsg ICAgKikgbGlua21vZGU9cHJvZyA7OyAjIEFueXRoaW5nIGVsc2Ugc2hvdWxkIGJlIGEgcHJvZ3Jh bS4KLSsgICAgZXNhYwotKwotKyAgICBzcGVjaWFsZGVwbGlicz0KLSsKLSsgICAgbGlicz0KLSsg ICAgIyBGaW5kIGFsbCBpbnRlcmRlcGVuZGVudCBkZXBsaWJzIGJ5IHNlYXJjaGluZyBmb3IgbGli cmFyaWVzCi0rICAgICMgdGhhdCBhcmUgbGlua2VkIG1vcmUgdGhhbiBvbmNlIChlLmcuIC1sYSAt bGIgLWxhKQotKyAgICBmb3IgZGVwbGliIGluICRkZXBsaWJzOyBkbwotKyAgICAgIGlmICRvcHRf ZHVwbGljYXRlX2RlcHMgOyB0aGVuCi0rCWNhc2UgIiRsaWJzICIgaW4KLSsJKiIgJGRlcGxpYiAi Kikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkZGVwbGliIiA7OwotKwllc2FjCi0r ICAgICAgZmkKLSsgICAgICBsaWJzPSIkbGlicyAkZGVwbGliIgotKyAgICBkb25lCi0rCi0rICAg IGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRoZW4KLSsgICAgICBsaWJzPSIkcHJlZGVwcyAk bGlicyAkY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoICRwb3N0ZGVwcyIKLSsKLSsgICAgICAjIENv bXB1dGUgbGlicmFyaWVzIHRoYXQgYXJlIGxpc3RlZCBtb3JlIHRoYW4gb25jZSBpbiAkcHJlZGVw cwotKyAgICAgICMgJHBvc3RkZXBzIGFuZCBtYXJrIHRoZW0gYXMgc3BlY2lhbCAoaS5lLiwgd2hv c2UgZHVwbGljYXRlcyBhcmUKLSsgICAgICAjIG5vdCB0byBiZSBlbGltaW5hdGVkKS4KLSsgICAg ICBwcmVfcG9zdF9kZXBzPQotKyAgICAgIGlmICRvcHRfZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVy YXRlZF9kZXBzOyB0aGVuCi0rCWZvciBwcmVfcG9zdF9kZXAgaW4gJHByZWRlcHMgJHBvc3RkZXBz OyBkbwotKwkgIGNhc2UgIiRwcmVfcG9zdF9kZXBzICIgaW4KLSsJICAqIiAkcHJlX3Bvc3RfZGVw ICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRwcmVfcG9zdF9kZXBzIiA7Owot KwkgIGVzYWMKLSsJICBwcmVfcG9zdF9kZXBzPSIkcHJlX3Bvc3RfZGVwcyAkcHJlX3Bvc3RfZGVw IgotKwlkb25lCi0rICAgICAgZmkKLSsgICAgICBwcmVfcG9zdF9kZXBzPQotKyAgICBmaQotKwot KyAgICBkZXBsaWJzPQotKyAgICBuZXdkZXBlbmRlbmN5X2xpYnM9Ci0rICAgIG5ld2xpYl9zZWFy Y2hfcGF0aD0KLSsgICAgbmVlZF9yZWxpbms9bm8gIyB3aGV0aGVyIHdlJ3JlIGxpbmtpbmcgYW55 IHVuaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzCi0rICAgIG5vdGluc3RfZGVwbGlicz0gIyBu b3QtaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzCi0rICAgIG5vdGluc3RfcGF0aD0gIyBwYXRo cyB0aGF0IGNvbnRhaW4gbm90LWluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcwotKwotKyAgICBj YXNlICRsaW5rbW9kZSBpbgotKyAgICBsaWIpCi0rCXBhc3Nlcz0iY29udiBkbHByZW9wZW4gbGlu ayIKLSsJZm9yIGZpbGUgaW4gJGRsZmlsZXMgJGRscHJlZmlsZXM7IGRvCi0rCSAgY2FzZSAkZmls ZSBpbgotKwkgICoubGEpIDs7Ci0rCSAgKikKLSsJICAgIGZ1bmNfZmF0YWxfaGVscCAibGlicmFy aWVzIGNhbiBcYC1kbG9wZW4nIG9ubHkgbGlidG9vbCBsaWJyYXJpZXM6ICRmaWxlIgotKwkgICAg OzsKLSsJICBlc2FjCi0rCWRvbmUKLSsJOzsKLSsgICAgcHJvZykKLSsJY29tcGlsZV9kZXBsaWJz PQotKwlmaW5hbGl6ZV9kZXBsaWJzPQotKwlhbGxkZXBsaWJzPW5vCi0rCW5ld2RsZmlsZXM9Ci0r CW5ld2RscHJlZmlsZXM9Ci0rCXBhc3Nlcz0iY29udiBzY2FuIGRsb3BlbiBkbHByZW9wZW4gbGlu ayIKLSsJOzsKLSsgICAgKikgIHBhc3Nlcz0iY29udiIKLSsJOzsKLSsgICAgZXNhYwotKwotKyAg ICBmb3IgcGFzcyBpbiAkcGFzc2VzOyBkbwotKyAgICAgICMgVGhlIHByZW9wZW4gcGFzcyBpbiBs aWIgbW9kZSByZXZlcnNlcyAkZGVwbGliczsgcHV0IGl0IGJhY2sgaGVyZQotKyAgICAgICMgc28g dGhhdCAtTCBjb21lcyBiZWZvcmUgbGlicyB0aGF0IG5lZWQgaXQgZm9yIGluc3RhbmNlLi4uCi0r ICAgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsbGluayI7IHRoZW4KLSsJIyMg RklYTUU6IEZpbmQgdGhlIHBsYWNlIHdoZXJlIHRoZSBsaXN0IGlzIHJlYnVpbHQgaW4gdGhlIHdy b25nCi0rCSMjICAgICAgICBvcmRlciwgYW5kIGZpeCBpdCB0aGVyZSBwcm9wZXJseQotKyAgICAg ICAgdG1wX2RlcGxpYnM9Ci0rCWZvciBkZXBsaWIgaW4gJGRlcGxpYnM7IGRvCi0rCSAgdG1wX2Rl cGxpYnM9IiRkZXBsaWIgJHRtcF9kZXBsaWJzIgotKwlkb25lCi0rCWRlcGxpYnM9IiR0bXBfZGVw bGlicyIKLSsgICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAi bGliLGxpbmsiIHx8Ci0rCSB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csc2NhbiI7IHRo ZW4KLSsJbGlicz0iJGRlcGxpYnMiCi0rCWRlcGxpYnM9Ci0rICAgICAgZmkKLSsgICAgICBpZiB0 ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgotKwljYXNlICRwYXNzIGluCi0rCWRsb3Blbikg bGlicz0iJGRsZmlsZXMiIDs7Ci0rCWRscHJlb3BlbikgbGlicz0iJGRscHJlZmlsZXMiIDs7Ci0r CWxpbmspIGxpYnM9IiRkZXBsaWJzICVERVBMSUJTJSAkZGVwZW5kZW5jeV9saWJzIiA7OwotKwll c2FjCi0rICAgICAgZmkKLSsgICAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gImxpYixk bHByZW9wZW4iOyB0aGVuCi0rCSMgQ29sbGVjdCBhbmQgZm9yd2FyZCBkZXBsaWJzIG9mIHByZW9w ZW5lZCBsaWJ0b29sIGxpYnMKLSsJZm9yIGxpYiBpbiAkZGxwcmVmaWxlczsgZG8KLSsJICAjIEln bm9yZSBub24tbGlidG9vbC1saWJzCi0rCSAgZGVwZW5kZW5jeV9saWJzPQotKwkgIGNhc2UgJGxp YiBpbgotKwkgICoubGEpCWZ1bmNfc291cmNlICIkbGliIiA7OwotKwkgIGVzYWMKLSsKLSsJICAj IENvbGxlY3QgcHJlb3BlbmVkIGxpYnRvb2wgZGVwbGlicywgZXhjZXB0IGFueSB0aGlzIGxpYnJh cnkKLSsJICAjIGhhcyBkZWNsYXJlZCBhcyB3ZWFrIGxpYnMKLSsJICBmb3IgZGVwbGliIGluICRk ZXBlbmRlbmN5X2xpYnM7IGRvCi0rICAgICAgICAgICAgZGVwbGliX2Jhc2U9YCRFQ0hPICJYJGRl cGxpYiIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKLSsJICAgIGNhc2UgIiAkd2Vha19saWJzICIg aW4KLSsJICAgICoiICRkZXBsaWJfYmFzZSAiKikgOzsKLSsJICAgICopIGRlcGxpYnM9IiRkZXBs aWJzICRkZXBsaWIiIDs7Ci0rCSAgICBlc2FjCi0rCSAgZG9uZQotKwlkb25lCi0rCWxpYnM9IiRk bHByZWZpbGVzIgotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxvcGVuOyB0 aGVuCi0rCSMgQ29sbGVjdCBkbHByZW9wZW5lZCBsaWJyYXJpZXMKLSsJc2F2ZV9kZXBsaWJzPSIk ZGVwbGlicyIKLSsJZGVwbGlicz0KLSsgICAgICBmaQotKwotKyAgICAgIGZvciBkZXBsaWIgaW4g JGxpYnM7IGRvCi0rCWxpYj0KLSsJZm91bmQ9bm8KLSsJY2FzZSAkZGVwbGliIGluCi0rCS1tdHwt bXRocmVhZHN8LWt0aHJlYWR8LUt0aHJlYWR8LXB0aHJlYWR8LXB0aHJlYWRzfC0tdGhyZWFkLXNh ZmV8LXRocmVhZHMpCi0rCSAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsi OyB0aGVuCi0rCSAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIK LSsJICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAg ZWxzZQotKwkgICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkZGVwbGliIgotKwkg ICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiA7IHRoZW4KLSsJCWNhc2UgIiRuZXdfaW5oZXJp dGVkX2xpbmtlcl9mbGFncyAiIGluCi0rCQkgICAgKiIgJGRlcGxpYiAiKikgOzsKLSsJCSAgICAq ICkgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFn cyAkZGVwbGliIiA7OwotKwkJZXNhYwotKwkgICAgZmkKLSsJICBmaQotKwkgIGNvbnRpbnVlCi0r CSAgOzsKLSsJLWwqKQotKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgIT0gbGliICYmIHRlc3QgIiRs aW5rbW9kZSIgIT0gcHJvZzsgdGhlbgotKwkgICAgZnVuY193YXJuaW5nICJcYC1sJyBpcyBpZ25v cmVkIGZvciBhcmNoaXZlcy9vYmplY3RzIgotKwkgICAgY29udGludWUKLSsJICBmaQotKwkgIGZ1 bmNfc3RyaXBuYW1lICctbCcgJycgIiRkZXBsaWIiCi0rCSAgbmFtZT0kZnVuY19zdHJpcG5hbWVf cmVzdWx0Ci0rCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgotKwkgICAgc2VhcmNo ZGlycz0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkbGliX3NlYXJjaF9wYXRoICRjb21waWxlcl9saWJf c2VhcmNoX2RpcnMgJHN5c19saWJfc2VhcmNoX3BhdGggJHNobGliX3NlYXJjaF9wYXRoIgotKwkg IGVsc2UKLSsJICAgIHNlYXJjaGRpcnM9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGxpYl9zZWFyY2hf cGF0aCAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGgiCi0rCSAgZmkKLSsJ ICBmb3Igc2VhcmNoZGlyIGluICRzZWFyY2hkaXJzOyBkbwotKwkgICAgZm9yIHNlYXJjaF9leHQg aW4gLmxhICRzdGRfc2hyZXh0IC5zbyAuYTsgZG8KLSsJICAgICAgIyBTZWFyY2ggdGhlIGxpYnRv b2wgbGlicmFyeQotKwkgICAgICBsaWI9IiRzZWFyY2hkaXIvbGliJHtuYW1lfSR7c2VhcmNoX2V4 dH0iCi0rCSAgICAgIGlmIHRlc3QgLWYgIiRsaWIiOyB0aGVuCi0rCQlpZiB0ZXN0ICIkc2VhcmNo X2V4dCIgPSAiLmxhIjsgdGhlbgotKwkJICBmb3VuZD15ZXMKLSsJCWVsc2UKLSsJCSAgZm91bmQ9 bm8KLSsJCWZpCi0rCQlicmVhayAyCi0rCSAgICAgIGZpCi0rCSAgICBkb25lCi0rCSAgZG9uZQot KwkgIGlmIHRlc3QgIiRmb3VuZCIgIT0geWVzOyB0aGVuCi0rCSAgICAjIGRlcGxpYiBkb2Vzbid0 IHNlZW0gdG8gYmUgYSBsaWJ0b29sIGxpYnJhcnkKLSsJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwk cGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgotKwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBs aWIgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAk ZmluYWxpemVfZGVwbGlicyIKLSsJICAgIGVsc2UKLSsJICAgICAgZGVwbGlicz0iJGRlcGxpYiAk ZGVwbGlicyIKLSsJICAgICAgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiAmJiBuZXdkZXBlbmRlbmN5 X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKLSsJICAgIGZpCi0rCSAgICBjb250 aW51ZQotKwkgIGVsc2UgIyBkZXBsaWIgaXMgYSBsaWJ0b29sIGxpYnJhcnkKLSsJICAgICMgSWYg JGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyAmJiAkZGVwbGliIGlzIGEg c3RkbGliLAotKwkgICAgIyBXZSBuZWVkIHRvIGRvIHNvbWUgc3BlY2lhbCB0aGluZ3MgaGVyZSwg YW5kIG5vdCBsYXRlci4KLSsJICAgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhf c3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KLSsJICAgICAgY2FzZSAiICRwcmVkZXBz ICRwb3N0ZGVwcyAiIGluCi0rCSAgICAgICoiICRkZXBsaWIgIiopCi0rCQlpZiBmdW5jX2xhbGli X3AgIiRsaWIiOyB0aGVuCi0rCQkgIGxpYnJhcnlfbmFtZXM9Ci0rCQkgIG9sZF9saWJyYXJ5PQot KwkJICBmdW5jX3NvdXJjZSAiJGxpYiIKLSsJCSAgZm9yIGwgaW4gJG9sZF9saWJyYXJ5ICRsaWJy YXJ5X25hbWVzOyBkbwotKwkJICAgIGxsPSIkbCIKLSsJCSAgZG9uZQotKwkJICBpZiB0ZXN0ICJY JGxsIiA9ICJYJG9sZF9saWJyYXJ5IiA7IHRoZW4gIyBvbmx5IHN0YXRpYyB2ZXJzaW9uIGF2YWls YWJsZQotKwkJICAgIGZvdW5kPW5vCi0rCQkgICAgZnVuY19kaXJuYW1lICIkbGliIiAiIiAiLiIK LSsJCSAgICBsYWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0rCQkgICAgbGliPSRsYWRpci8k b2xkX2xpYnJhcnkKLSsJCSAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGlu ayI7IHRoZW4KLSsJCSAgICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBs aWJzIgotKwkJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGli cyIKLSsJCSAgICBlbHNlCi0rCQkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotKwkJ ICAgICAgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiAmJiBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBs aWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKLSsJCSAgICBmaQotKwkJICAgIGNvbnRpbnVlCi0rCQkg IGZpCi0rCQlmaQotKwkJOzsKLSsJICAgICAgKikgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZmkK LSsJICBmaQotKwkgIDs7ICMgLWwKLSsJKi5sdGZyYW1ld29yaykKLSsJICBpZiB0ZXN0ICIkbGlu a21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KLSsJICAgIGNvbXBpbGVfZGVwbGlicz0i JGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxp YiAkZmluYWxpemVfZGVwbGlicyIKLSsJICBlbHNlCi0rCSAgICBkZXBsaWJzPSIkZGVwbGliICRk ZXBsaWJzIgotKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiA7IHRoZW4KLSsJCWNhc2Ug IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCi0rCQkgICAgKiIgJGRlcGxpYiAiKikg OzsKLSsJCSAgICAqICkgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9IiRuZXdfaW5oZXJpdGVk X2xpbmtlcl9mbGFncyAkZGVwbGliIiA7OwotKwkJZXNhYwotKwkgICAgZmkKLSsJICBmaQotKwkg IGNvbnRpbnVlCi0rCSAgOzsKLSsJLUwqKQotKwkgIGNhc2UgJGxpbmttb2RlIGluCi0rCSAgbGli KQotKwkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgIHRlc3QgIiRwYXNzIiA9 IGNvbnYgJiYgY29udGludWUKLSsJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3 ZGVwZW5kZW5jeV9saWJzIgotKwkgICAgZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGRlcGxpYiIK LSsJICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkZnVuY19zdHJp cG5hbWVfcmVzdWx0IgotKwkgICAgOzsKLSsJICBwcm9nKQotKwkgICAgaWYgdGVzdCAiJHBhc3Mi ID0gY29udjsgdGhlbgotKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotKwkgICAg ICBjb250aW51ZQotKwkgICAgZmkKLSsJICAgIGlmIHRlc3QgIiRwYXNzIiA9IHNjYW47IHRoZW4K LSsJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgIGVsc2UKLSsJICAgICAg Y29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCi0rCSAgICAgIGZpbmFs aXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgICBmaQotKwkgICAg ZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGRlcGxpYiIKLSsJICAgIG5ld2xpYl9zZWFyY2hfcGF0 aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgotKwkgICAgOzsK LSsJICAqKQotKwkgICAgZnVuY193YXJuaW5nICJcYC1MJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZl cy9vYmplY3RzIgotKwkgICAgOzsKLSsJICBlc2FjICMgbGlua21vZGUKLSsJICBjb250aW51ZQot KwkgIDs7ICMgLUwKLSsJLVIqKQotKwkgIGlmIHRlc3QgIiRwYXNzIiA9IGxpbms7IHRoZW4KLSsJ ICAgIGZ1bmNfc3RyaXBuYW1lICctUicgJycgIiRkZXBsaWIiCi0rCSAgICBkaXI9JGZ1bmNfc3Ry aXBuYW1lX3Jlc3VsdAotKwkgICAgIyBNYWtlIHN1cmUgdGhlIHhycGF0aCBjb250YWlucyBvbmx5 IHVuaXF1ZSBkaXJlY3Rvcmllcy4KLSsJICAgIGNhc2UgIiR4cnBhdGggIiBpbgotKwkgICAgKiIg JGRpciAiKikgOzsKLSsJICAgICopIHhycGF0aD0iJHhycGF0aCAkZGlyIiA7OwotKwkgICAgZXNh YwotKwkgIGZpCi0rCSAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICBjb250aW51ZQot KwkgIDs7Ci0rCSoubGEpIGxpYj0iJGRlcGxpYiIgOzsKLSsJKi4kbGliZXh0KQotKwkgIGlmIHRl c3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KLSsJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMi Ci0rCSAgICBjb250aW51ZQotKwkgIGZpCi0rCSAgY2FzZSAkbGlua21vZGUgaW4KLSsJICBsaWIp Ci0rCSAgICAjIExpbmtpbmcgY29udmVuaWVuY2UgbW9kdWxlcyBpbnRvIHNoYXJlZCBsaWJyYXJp ZXMgaXMgYWxsb3dlZCwKLSsJICAgICMgYnV0IGxpbmtpbmcgb3RoZXIgc3RhdGljIGxpYnJhcmll cyBpcyBub24tcG9ydGFibGUuCi0rCSAgICBjYXNlICIgJGRscHJlY29udmVuaWVuY2VsaWJzICIg aW4KLSsJICAgICoiICRkZXBsaWIgIiopIDs7Ci0rCSAgICAqKQotKwkgICAgICB2YWxpZF9hX2xp Yj1ubwotKwkgICAgICBjYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgotKwkJbWF0Y2hfcGF0 dGVybiopCi0rCQkgIHNldCBkdW1teSAkZGVwbGlic19jaGVja19tZXRob2Q7IHNoaWZ0Ci0rCQkg IG1hdGNoX3BhdHRlcm5fcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiJDEg XCguKlwpImAKLSsJCSAgaWYgZXZhbCAiXCRFQ0hPIFwiWCRkZXBsaWJcIiIgMj4vZGV2L251bGwg fCAkWHNlZCAtZSAxMHEgXAotKwkJICAgIHwgJEVHUkVQICIkbWF0Y2hfcGF0dGVybl9yZWdleCIg PiAvZGV2L251bGw7IHRoZW4KLSsJCSAgICB2YWxpZF9hX2xpYj15ZXMKLSsJCSAgZmkKLSsJCTs7 Ci0rCQlwYXNzX2FsbCkKLSsJCSAgdmFsaWRfYV9saWI9eWVzCi0rCQk7OwotKwkgICAgICBlc2Fj Ci0rCSAgICAgIGlmIHRlc3QgIiR2YWxpZF9hX2xpYiIgIT0geWVzOyB0aGVuCi0rCQkkRUNITwot KwkJJEVDSE8gIioqKiBXYXJuaW5nOiBUcnlpbmcgdG8gbGluayB3aXRoIHN0YXRpYyBsaWIgYXJj aGl2ZSAkZGVwbGliLiIKLSsJCSRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1h a2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgotKwkJJEVDSE8gIioq KiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlv dSBoYXZlIGEiCi0rCQkkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3 aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgotKwkJJEVDSE8gIioqKiBiZWNhdXNlIHRo ZSBmaWxlIGV4dGVuc2lvbnMgLiRsaWJleHQgb2YgdGhpcyBhcmd1bWVudCBtYWtlcyBtZSBiZWxp ZXZlIgotKwkJJEVDSE8gIioqKiB0aGF0IGl0IGlzIGp1c3QgYSBzdGF0aWMgYXJjaGl2ZSB0aGF0 IEkgc2hvdWxkIG5vdCB1c2UgaGVyZS4iCi0rCSAgICAgIGVsc2UKLSsJCSRFQ0hPCi0rCQkkRUNI TyAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIHNoYXJlZCBsaWJyYXJ5ICRvdXRwdXQgYWdhaW5z dCB0aGUiCi0rCQkkRUNITyAiKioqIHN0YXRpYyBsaWJyYXJ5ICRkZXBsaWIgaXMgbm90IHBvcnRh YmxlISIKLSsJCWRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCi0rCSAgICAgIGZpCi0rCSAgICAg IDs7Ci0rCSAgICBlc2FjCi0rCSAgICBjb250aW51ZQotKwkgICAgOzsKLSsJICBwcm9nKQotKwkg ICAgaWYgdGVzdCAiJHBhc3MiICE9IGxpbms7IHRoZW4KLSsJICAgICAgZGVwbGlicz0iJGRlcGxp YiAkZGVwbGlicyIKLSsJICAgIGVsc2UKLSsJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGli ICRjb21waWxlX2RlcGxpYnMiCi0rCSAgICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZp bmFsaXplX2RlcGxpYnMiCi0rCSAgICBmaQotKwkgICAgY29udGludWUKLSsJICAgIDs7Ci0rCSAg ZXNhYyAjIGxpbmttb2RlCi0rCSAgOzsgIyAqLiRsaWJleHQKLSsJKi5sbyB8ICouJG9iamV4dCkK LSsJICBpZiB0ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVuCi0rCSAgICBkZXBsaWJzPSIkZGVwbGli ICRkZXBsaWJzIgotKwkgIGVsaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KLSsJICAg IGlmIHRlc3QgIiRwYXNzIiA9IGRscHJlb3BlbiB8fCB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiICE9 IHllcyB8fCB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG5vOyB0aGVuCi0rCSAgICAgICMg SWYgdGhlcmUgaXMgbm8gZGxvcGVuIHN1cHBvcnQgb3Igd2UncmUgbGlua2luZyBzdGF0aWNhbGx5 LAotKwkgICAgICAjIHdlIG5lZWQgdG8gcHJlbG9hZC4KLSsJICAgICAgbmV3ZGxwcmVmaWxlcz0i JG5ld2RscHJlZmlsZXMgJGRlcGxpYiIKLSsJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGli ICRjb21waWxlX2RlcGxpYnMiCi0rCSAgICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZp bmFsaXplX2RlcGxpYnMiCi0rCSAgICBlbHNlCi0rCSAgICAgIG5ld2RsZmlsZXM9IiRuZXdkbGZp bGVzICRkZXBsaWIiCi0rCSAgICBmaQotKwkgIGZpCi0rCSAgY29udGludWUKLSsJICA7OwotKwkl REVQTElCUyUpCi0rCSAgYWxsZGVwbGlicz15ZXMKLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCWVz YWMgIyBjYXNlICRkZXBsaWIKLSsKLSsJaWYgdGVzdCAiJGZvdW5kIiA9IHllcyB8fCB0ZXN0IC1m ICIkbGliIjsgdGhlbiA6Ci0rCWVsc2UKLSsJICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmlu ZCB0aGUgbGlicmFyeSBcYCRsaWInIG9yIHVuaGFuZGxlZCBhcmd1bWVudCBcYCRkZXBsaWInIgot KwlmaQotKwotKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBh cmNoaXZlLgotKwlmdW5jX2xhbGliX3Vuc2FmZV9wICIkbGliIiBcCi0rCSAgfHwgZnVuY19mYXRh bF9lcnJvciAiXGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCi0rCi0rCWZ1 bmNfZGlybmFtZSAiJGxpYiIgIiIgIi4iCi0rCWxhZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIK LSsKLSsJZGxuYW1lPQotKwlkbG9wZW49Ci0rCWRscHJlb3Blbj0KLSsJbGliZGlyPQotKwlsaWJy YXJ5X25hbWVzPQotKwlvbGRfbGlicmFyeT0KLSsJaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0KLSsJ IyBJZiB0aGUgbGlicmFyeSB3YXMgaW5zdGFsbGVkIHdpdGggYW4gb2xkIHJlbGVhc2Ugb2YgbGli dG9vbCwKLSsJIyBpdCB3aWxsIG5vdCByZWRlZmluZSB2YXJpYWJsZXMgaW5zdGFsbGVkLCBvciBz aG91bGRub3RsaW5rCi0rCWluc3RhbGxlZD15ZXMKLSsJc2hvdWxkbm90bGluaz1ubwotKwlhdm9p ZHRlbXBycGF0aD0KLSsKLSsKLSsJIyBSZWFkIHRoZSAubGEgZmlsZQotKwlmdW5jX3NvdXJjZSAi JGxpYiIKLSsKLSsJIyBDb252ZXJ0ICItZnJhbWV3b3JrIGZvbyIgdG8gImZvby5sdGZyYW1ld29y ayIKLSsJaWYgdGVzdCAtbiAiJGluaGVyaXRlZF9saW5rZXJfZmxhZ3MiOyB0aGVuCi0rCSAgdG1w X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9YCRFQ0hPICJYJGluaGVyaXRlZF9saW5rZXJfZmxhZ3Mi IHwgJFhzZWQgLWUgJ3MvLWZyYW1ld29yayBcKFteICRdKlwpL1wxLmx0ZnJhbWV3b3JrL2cnYAot KwkgIGZvciB0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnIGluICR0bXBfaW5oZXJpdGVkX2xpbmtl cl9mbGFnczsgZG8KLSsJICAgIGNhc2UgIiAkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiBp bgotKwkgICAgICAqIiAkdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZyAiKikgOzsKLSsJICAgICAg KikgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFn cyAkdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZyI7OwotKwkgICAgZXNhYwotKwkgIGRvbmUKLSsJ ZmkKLSsJZGVwZW5kZW5jeV9saWJzPWAkRUNITyAiWCAkZGVwZW5kZW5jeV9saWJzIiB8ICRYc2Vk IC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAotKwlpZiB0 ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gImxpYixsaW5rIiB8fAotKwkgICB0ZXN0ICIkbGlua21v ZGUsJHBhc3MiID0gInByb2csc2NhbiIgfHwKLSsJICAgeyB0ZXN0ICIkbGlua21vZGUiICE9IHBy b2cgJiYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWI7IH07IHRoZW4KLSsJICB0ZXN0IC1uICIkZGxv cGVuIiAmJiBkbGZpbGVzPSIkZGxmaWxlcyAkZGxvcGVuIgotKwkgIHRlc3QgLW4gIiRkbHByZW9w ZW4iICYmIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRkbHByZW9wZW4iCi0rCWZpCi0rCi0rCWlm IHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KLSsJICAjIE9ubHkgY2hlY2sgZm9yIGNvbnZlbmll bmNlIGxpYnJhcmllcwotKwkgIGRlcGxpYnM9IiRsaWIgJGRlcGxpYnMiCi0rCSAgaWYgdGVzdCAt eiAiJGxpYmRpciI7IHRoZW4KLSsJICAgIGlmIHRlc3QgLXogIiRvbGRfbGlicmFyeSI7IHRoZW4K LSsJICAgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgbmFtZSBvZiBsaW5rIGxpYnJh cnkgZm9yIFxgJGxpYiciCi0rCSAgICBmaQotKwkgICAgIyBJdCBpcyBhIGxpYnRvb2wgY29udmVu aWVuY2UgbGlicmFyeSwgc28gYWRkIGluIGl0cyBvYmplY3RzLgotKwkgICAgY29udmVuaWVuY2U9 IiRjb252ZW5pZW5jZSAkbGFkaXIvJG9iamRpci8kb2xkX2xpYnJhcnkiCi0rCSAgICBvbGRfY29u dmVuaWVuY2U9IiRvbGRfY29udmVuaWVuY2UgJGxhZGlyLyRvYmpkaXIvJG9sZF9saWJyYXJ5Igot KwkgIGVsaWYgdGVzdCAiJGxpbmttb2RlIiAhPSBwcm9nICYmIHRlc3QgIiRsaW5rbW9kZSIgIT0g bGliOyB0aGVuCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRsaWInIGlzIG5vdCBhIGNvbnZl bmllbmNlIGxpYnJhcnkiCi0rCSAgZmkKLSsJICB0bXBfbGlicz0KLSsJICBmb3IgZGVwbGliIGlu ICRkZXBlbmRlbmN5X2xpYnM7IGRvCi0rCSAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgot KwkgICAgaWYgJG9wdF9kdXBsaWNhdGVfZGVwcyA7IHRoZW4KLSsJICAgICAgY2FzZSAiJHRtcF9s aWJzICIgaW4KLSsJICAgICAgKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFs ZGVwbGlicyAkZGVwbGliIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICBmaQotKwkgICAgdG1wX2xp YnM9IiR0bXBfbGlicyAkZGVwbGliIgotKwkgIGRvbmUKLSsJICBjb250aW51ZQotKwlmaSAjICRw YXNzID0gY29udgotKwotKwotKwkjIEdldCB0aGUgbmFtZSBvZiB0aGUgbGlicmFyeSB3ZSBsaW5r IGFnYWluc3QuCi0rCWxpbmtsaWI9Ci0rCWZvciBsIGluICRvbGRfbGlicmFyeSAkbGlicmFyeV9u YW1lczsgZG8KLSsJICBsaW5rbGliPSIkbCIKLSsJZG9uZQotKwlpZiB0ZXN0IC16ICIkbGlua2xp YiI7IHRoZW4KLSsJICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmluZCBuYW1lIG9mIGxpbmsg bGlicmFyeSBmb3IgXGAkbGliJyIKLSsJZmkKLSsKLSsJIyBUaGlzIGxpYnJhcnkgd2FzIHNwZWNp ZmllZCB3aXRoIC1kbG9wZW4uCi0rCWlmIHRlc3QgIiRwYXNzIiA9IGRsb3BlbjsgdGhlbgotKwkg IGlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5u b3QgLWRsb3BlbiBhIGNvbnZlbmllbmNlIGxpYnJhcnk6IFxgJGxpYiciCi0rCSAgZmkKLSsJICBp ZiB0ZXN0IC16ICIkZGxuYW1lIiB8fAotKwkgICAgIHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgIT0g eWVzIHx8Ci0rCSAgICAgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBubzsgdGhlbgotKwkg ICAgIyBJZiB0aGVyZSBpcyBubyBkbG5hbWUsIG5vIGRsb3BlbiBzdXBwb3J0IG9yIHdlJ3JlIGxp bmtpbmcKLSsJICAgICMgc3RhdGljYWxseSwgd2UgbmVlZCB0byBwcmVsb2FkLiAgV2UgYWxzbyBu ZWVkIHRvIHByZWxvYWQgYW55Ci0rCSAgICAjIGRlcGVuZGVudCBsaWJyYXJpZXMgc28gbGlibHRk bCdzIGRlcGxpYiBwcmVsb2FkZXIgZG9lc24ndAotKwkgICAgIyBib21iIG91dCBpbiB0aGUgbG9h ZCBkZXBsaWJzIHBoYXNlLgotKwkgICAgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJGxpYiAkZGVw ZW5kZW5jeV9saWJzIgotKwkgIGVsc2UKLSsJICAgIG5ld2RsZmlsZXM9IiRuZXdkbGZpbGVzICRs aWIiCi0rCSAgZmkKLSsJICBjb250aW51ZQotKwlmaSAjICRwYXNzID0gZGxvcGVuCi0rCi0rCSMg V2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgotKwljYXNlICRsYWRpciBpbgotKwlbXFwvXSogfCBb QS1aYS16XTpbXFwvXSopIGFic19sYWRpcj0iJGxhZGlyIiA7OwotKwkqKQotKwkgIGFic19sYWRp cj1gY2QgIiRsYWRpciIgJiYgcHdkYAotKwkgIGlmIHRlc3QgLXogIiRhYnNfbGFkaXIiOyB0aGVu Ci0rCSAgICBmdW5jX3dhcm5pbmcgImNhbm5vdCBkZXRlcm1pbmUgYWJzb2x1dGUgZGlyZWN0b3J5 IG5hbWUgb2YgXGAkbGFkaXInIgotKwkgICAgZnVuY193YXJuaW5nICJwYXNzaW5nIGl0IGxpdGVy YWxseSB0byB0aGUgbGlua2VyLCBhbHRob3VnaCBpdCBtaWdodCBmYWlsIgotKwkgICAgYWJzX2xh ZGlyPSIkbGFkaXIiCi0rCSAgZmkKLSsJICA7OwotKwllc2FjCi0rCWZ1bmNfYmFzZW5hbWUgIiRs aWIiCi0rCWxhbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKwotKwkjIEZpbmQgdGhlIHJl bGV2YW50IG9iamVjdCBkaXJlY3RvcnkgYW5kIGxpYnJhcnkgbmFtZS4KLSsJaWYgdGVzdCAiWCRp bnN0YWxsZWQiID0gWHllczsgdGhlbgotKwkgIGlmIHRlc3QgISAtZiAiJGxpYmRpci8kbGlua2xp YiIgJiYgdGVzdCAtZiAiJGFic19sYWRpci8kbGlua2xpYiI7IHRoZW4KLSsJICAgIGZ1bmNfd2Fy bmluZyAibGlicmFyeSBcYCRsaWInIHdhcyBtb3ZlZC4iCi0rCSAgICBkaXI9IiRsYWRpciIKLSsJ ICAgIGFic2Rpcj0iJGFic19sYWRpciIKLSsJICAgIGxpYmRpcj0iJGFic19sYWRpciIKLSsJICBl bHNlCi0rCSAgICBkaXI9IiRsaWJkaXIiCi0rCSAgICBhYnNkaXI9IiRsaWJkaXIiCi0rCSAgZmkK LSsJICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSBYeWVzICYmIGF2b2lkdGVtcHJwYXRo PXllcwotKwllbHNlCi0rCSAgaWYgdGVzdCAhIC1mICIkbGFkaXIvJG9iamRpci8kbGlua2xpYiIg JiYgdGVzdCAtZiAiJGFic19sYWRpci8kbGlua2xpYiI7IHRoZW4KLSsJICAgIGRpcj0iJGxhZGly IgotKwkgICAgYWJzZGlyPSIkYWJzX2xhZGlyIgotKwkgICAgIyBSZW1vdmUgdGhpcyBzZWFyY2gg cGF0aCBsYXRlcgotKwkgICAgbm90aW5zdF9wYXRoPSIkbm90aW5zdF9wYXRoICRhYnNfbGFkaXIi Ci0rCSAgZWxzZQotKwkgICAgZGlyPSIkbGFkaXIvJG9iamRpciIKLSsJICAgIGFic2Rpcj0iJGFi c19sYWRpci8kb2JqZGlyIgotKwkgICAgIyBSZW1vdmUgdGhpcyBzZWFyY2ggcGF0aCBsYXRlcgot KwkgICAgbm90aW5zdF9wYXRoPSIkbm90aW5zdF9wYXRoICRhYnNfbGFkaXIiCi0rCSAgZmkKLSsJ ZmkgIyAkaW5zdGFsbGVkID0geWVzCi0rCWZ1bmNfc3RyaXBuYW1lICdsaWInICcubGEnICIkbGFu YW1lIgotKwluYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsKLSsJIyBUaGlzIGxpYnJhcnkg d2FzIHNwZWNpZmllZCB3aXRoIC1kbHByZW9wZW4uCi0rCWlmIHRlc3QgIiRwYXNzIiA9IGRscHJl b3BlbjsgdGhlbgotKwkgIGlmIHRlc3QgLXogIiRsaWJkaXIiICYmIHRlc3QgIiRsaW5rbW9kZSIg PSBwcm9nOyB0aGVuCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJvbmx5IGxpYnJhcmllcyBtYXkg LWRscHJlb3BlbiBhIGNvbnZlbmllbmNlIGxpYnJhcnk6IFxgJGxpYiciCi0rCSAgZmkKLSsJICAj IFByZWZlciB1c2luZyBhIHN0YXRpYyBsaWJyYXJ5IChzbyB0aGF0IG5vIHNpbGx5IF9EWU5BTUlD IHN5bWJvbHMKLSsJICAjIGFyZSByZXF1aXJlZCB0byBsaW5rKS4KLSsJICBpZiB0ZXN0IC1uICIk b2xkX2xpYnJhcnkiOyB0aGVuCi0rCSAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAk ZGlyLyRvbGRfbGlicmFyeSIKLSsJICAgICMgS2VlcCBhIGxpc3Qgb2YgcHJlb3BlbmVkIGNvbnZl bmllbmNlIGxpYnJhcmllcyB0byBjaGVjawotKwkgICAgIyB0aGF0IHRoZXkgYXJlIGJlaW5nIHVz ZWQgY29ycmVjdGx5IGluIHRoZSBsaW5rIHBhc3MuCi0rCSAgICB0ZXN0IC16ICIkbGliZGlyIiAm JiBcCi0rCQlkbHByZWNvbnZlbmllbmNlbGlicz0iJGRscHJlY29udmVuaWVuY2VsaWJzICRkaXIv JG9sZF9saWJyYXJ5IgotKwkgICMgT3RoZXJ3aXNlLCB1c2UgdGhlIGRsbmFtZSwgc28gdGhhdCBs dF9kbG9wZW4gZmluZHMgaXQuCi0rCSAgZWxpZiB0ZXN0IC1uICIkZGxuYW1lIjsgdGhlbgotKwkg ICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGRpci8kZGxuYW1lIgotKwkgIGVsc2UK LSsJICAgIG5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRkaXIvJGxpbmtsaWIiCi0rCSAg ZmkKLSsJZmkgIyAkcGFzcyA9IGRscHJlb3BlbgotKwotKwlpZiB0ZXN0IC16ICIkbGliZGlyIjsg dGhlbgotKwkgICMgTGluayB0aGUgY29udmVuaWVuY2UgbGlicmFyeQotKwkgIGlmIHRlc3QgIiRs aW5rbW9kZSIgPSBsaWI7IHRoZW4KLSsJICAgIGRlcGxpYnM9IiRkaXIvJG9sZF9saWJyYXJ5ICRk ZXBsaWJzIgotKwkgIGVsaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0 aGVuCi0rCSAgICBjb21waWxlX2RlcGxpYnM9IiRkaXIvJG9sZF9saWJyYXJ5ICRjb21waWxlX2Rl cGxpYnMiCi0rCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGlyLyRvbGRfbGlicmFyeSAkZmluYWxp emVfZGVwbGlicyIKLSsJICBlbHNlCi0rCSAgICBkZXBsaWJzPSIkbGliICRkZXBsaWJzIiAjIHVz ZWQgZm9yIHByb2csc2NhbiBwYXNzCi0rCSAgZmkKLSsJICBjb250aW51ZQotKwlmaQotKwotKwot KwlpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyAmJiB0ZXN0ICIkcGFzcyIgIT0gbGluazsgdGhl bgotKwkgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkbGFkaXIiCi0r CSAgZGVwbGlicz0iJGxpYiAkZGVwbGlicyIKLSsKLSsJICBsaW5rYWxsZGVwbGlicz1ubwotKwkg IGlmIHRlc3QgIiRsaW5rX2FsbF9kZXBsaWJzIiAhPSBubyB8fCB0ZXN0IC16ICIkbGlicmFyeV9u YW1lcyIgfHwKLSsJICAgICB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG5vOyB0aGVuCi0r CSAgICBsaW5rYWxsZGVwbGlicz15ZXMKLSsJICBmaQotKwotKwkgIHRtcF9saWJzPQotKwkgIGZv ciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KLSsJICAgIGNhc2UgJGRlcGxpYiBpbgot KwkgICAgLUwqKSBmdW5jX3N0cmlwbmFtZSAnLUwnICcnICIkZGVwbGliIgotKwkgICAgICAgICBu ZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGZ1bmNfc3RyaXBuYW1lX3Jl c3VsdCIKLSsJCSA7OwotKwkgICAgZXNhYwotKwkgICAgIyBOZWVkIHRvIGxpbmsgYWdhaW5zdCBh bGwgZGVwZW5kZW5jeV9saWJzPwotKwkgICAgaWYgdGVzdCAiJGxpbmthbGxkZXBsaWJzIiA9IHll czsgdGhlbgotKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotKwkgICAgZWxzZQot KwkgICAgICAjIE5lZWQgdG8gaGFyZGNvZGUgc2hhcmVkIGxpYnJhcnkgcGF0aHMKLSsJICAgICAg IyBvci9hbmQgbGluayBhZ2FpbnN0IHN0YXRpYyBsaWJyYXJpZXMKLSsJICAgICAgbmV3ZGVwZW5k ZW5jeV9saWJzPSIkZGVwbGliICRuZXdkZXBlbmRlbmN5X2xpYnMiCi0rCSAgICBmaQotKwkgICAg aWYgJG9wdF9kdXBsaWNhdGVfZGVwcyA7IHRoZW4KLSsJICAgICAgY2FzZSAiJHRtcF9saWJzICIg aW4KLSsJICAgICAgKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGli cyAkZGVwbGliIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICBmaQotKwkgICAgdG1wX2xpYnM9IiR0 bXBfbGlicyAkZGVwbGliIgotKwkgIGRvbmUgIyBmb3IgZGVwbGliCi0rCSAgY29udGludWUKLSsJ ZmkgIyAkbGlua21vZGUgPSBwcm9nLi4uCi0rCi0rCWlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIg PSAicHJvZyxsaW5rIjsgdGhlbgotKwkgIGlmIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIiAmJgot KwkgICAgIHsgeyB0ZXN0ICIkcHJlZmVyX3N0YXRpY19saWJzIiA9IG5vIHx8Ci0rCSAgICAgICAg IHRlc3QgIiRwcmVmZXJfc3RhdGljX2xpYnMsJGluc3RhbGxlZCIgPSAiYnVpbHQseWVzIjsgfSB8 fAotKwkgICAgICAgdGVzdCAteiAiJG9sZF9saWJyYXJ5IjsgfTsgdGhlbgotKwkgICAgIyBXZSBu ZWVkIHRvIGhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGgKLSsJICAgIGlmIHRlc3QgLW4gIiRzaGxp YnBhdGhfdmFyIiAmJiB0ZXN0IC16ICIkYXZvaWR0ZW1wcnBhdGgiIDsgdGhlbgotKwkgICAgICAj IE1ha2Ugc3VyZSB0aGUgcnBhdGggY29udGFpbnMgb25seSB1bmlxdWUgZGlyZWN0b3JpZXMuCi0r CSAgICAgIGNhc2UgIiR0ZW1wX3JwYXRoOiIgaW4KLSsJICAgICAgKiIkYWJzZGlyOiIqKSA7Owot KwkgICAgICAqKSB0ZW1wX3JwYXRoPSIkdGVtcF9ycGF0aCRhYnNkaXI6IiA7OwotKwkgICAgICBl c2FjCi0rCSAgICBmaQotKwotKwkgICAgIyBIYXJkY29kZSB0aGUgbGlicmFyeSBwYXRoLgotKwkg ICAgIyBTa2lwIGRpcmVjdG9yaWVzIHRoYXQgYXJlIGluIHRoZSBzeXN0ZW0gZGVmYXVsdCBydW4t dGltZQotKwkgICAgIyBzZWFyY2ggcGF0aC4KLSsJICAgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJj aF9wYXRoICIgaW4KLSsJICAgICoiICRhYnNkaXIgIiopIDs7Ci0rCSAgICAqKQotKwkgICAgICBj YXNlICIkY29tcGlsZV9ycGF0aCAiIGluCi0rCSAgICAgICoiICRhYnNkaXIgIiopIDs7Ci0rCSAg ICAgICopIGNvbXBpbGVfcnBhdGg9IiRjb21waWxlX3JwYXRoICRhYnNkaXIiCi0rCSAgICAgIGVz YWMKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICAgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJj aF9wYXRoICIgaW4KLSsJICAgICoiICRsaWJkaXIgIiopIDs7Ci0rCSAgICAqKQotKwkgICAgICBj YXNlICIkZmluYWxpemVfcnBhdGggIiBpbgotKwkgICAgICAqIiAkbGliZGlyICIqKSA7OwotKwkg ICAgICAqKSBmaW5hbGl6ZV9ycGF0aD0iJGZpbmFsaXplX3JwYXRoICRsaWJkaXIiCi0rCSAgICAg IGVzYWMKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICBmaSAjICRsaW5rbW9kZSwkcGFzcyA9 IHByb2csbGluay4uLgotKwotKwkgIGlmIHRlc3QgIiRhbGxkZXBsaWJzIiA9IHllcyAmJgotKwkg ICAgIHsgdGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA9IHBhc3NfYWxsIHx8Ci0rCSAgICAg ICB7IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmCi0rCQkgdGVzdCAtbiAiJGxp YnJhcnlfbmFtZXMiOyB9OyB9OyB0aGVuCi0rCSAgICAjIFdlIG9ubHkgbmVlZCB0byBzZWFyY2gg Zm9yIHN0YXRpYyBsaWJyYXJpZXMKLSsJICAgIGNvbnRpbnVlCi0rCSAgZmkKLSsJZmkKLSsKLSsJ bGlua19zdGF0aWM9bm8gIyBXaGV0aGVyIHRoZSBkZXBsaWIgd2lsbCBiZSBsaW5rZWQgc3RhdGlj YWxseQotKwl1c2Vfc3RhdGljX2xpYnM9JHByZWZlcl9zdGF0aWNfbGlicwotKwlpZiB0ZXN0ICIk dXNlX3N0YXRpY19saWJzIiA9IGJ1aWx0ICYmIHRlc3QgIiRpbnN0YWxsZWQiID0geWVzOyB0aGVu Ci0rCSAgdXNlX3N0YXRpY19saWJzPW5vCi0rCWZpCi0rCWlmIHRlc3QgLW4gIiRsaWJyYXJ5X25h bWVzIiAmJgotKwkgICB7IHRlc3QgIiR1c2Vfc3RhdGljX2xpYnMiID0gbm8gfHwgdGVzdCAteiAi JG9sZF9saWJyYXJ5IjsgfTsgdGhlbgotKwkgIGNhc2UgJGhvc3QgaW4KLSsJICAqY3lnd2luKiB8 ICptaW5ndyogfCAqY2VnY2MqKQotKwkgICAgICAjIE5vIHBvaW50IGluIHJlbGlua2luZyBETExz IGJlY2F1c2UgcGF0aHMgYXJlIG5vdCBlbmNvZGVkCi0rCSAgICAgIG5vdGluc3RfZGVwbGlicz0i JG5vdGluc3RfZGVwbGlicyAkbGliIgotKwkgICAgICBuZWVkX3JlbGluaz1ubwotKwkgICAgOzsK LSsJICAqKQotKwkgICAgaWYgdGVzdCAiJGluc3RhbGxlZCIgPSBubzsgdGhlbgotKwkgICAgICBu b3RpbnN0X2RlcGxpYnM9IiRub3RpbnN0X2RlcGxpYnMgJGxpYiIKLSsJICAgICAgbmVlZF9yZWxp bms9eWVzCi0rCSAgICBmaQotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgIyBUaGlzIGlzIGEgc2hh cmVkIGxpYnJhcnkKLSsKLSsJICAjIFdhcm4gYWJvdXQgcG9ydGFiaWxpdHksIGNhbid0IGxpbmsg YWdhaW5zdCAtbW9kdWxlJ3Mgb24gc29tZQotKwkgICMgc3lzdGVtcyAoZGFyd2luKS4gIERvbid0 IGJsZWF0IGFib3V0IGRsb3BlbmVkIG1vZHVsZXMgdGhvdWdoIQotKwkgIGRsb3Blbm1vZHVsZT0i IgotKwkgIGZvciBkbHByZW1vZHVsZXRlc3QgaW4gJGRscHJlZmlsZXM7IGRvCi0rCSAgICBpZiB0 ZXN0ICJYJGRscHJlbW9kdWxldGVzdCIgPSAiWCRsaWIiOyB0aGVuCi0rCSAgICAgIGRsb3Blbm1v ZHVsZT0iJGRscHJlbW9kdWxldGVzdCIKLSsJICAgICAgYnJlYWsKLSsJICAgIGZpCi0rCSAgZG9u ZQotKwkgIGlmIHRlc3QgLXogIiRkbG9wZW5tb2R1bGUiICYmIHRlc3QgIiRzaG91bGRub3RsaW5r IiA9IHllcyAmJiB0ZXN0ICIkcGFzcyIgPSBsaW5rOyB0aGVuCi0rCSAgICAkRUNITwotKwkgICAg aWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KLSsJICAgICAgJEVDSE8gIioqKiBXYXJu aW5nOiBMaW5raW5nIHRoZSBleGVjdXRhYmxlICRvdXRwdXQgYWdhaW5zdCB0aGUgbG9hZGFibGUg bW9kdWxlIgotKwkgICAgZWxzZQotKwkgICAgICAkRUNITyAiKioqIFdhcm5pbmc6IExpbmtpbmcg dGhlIHNoYXJlZCBsaWJyYXJ5ICRvdXRwdXQgYWdhaW5zdCB0aGUgbG9hZGFibGUgbW9kdWxlIgot KwkgICAgZmkKLSsJICAgICRFQ0hPICIqKiogJGxpbmtsaWIgaXMgbm90IHBvcnRhYmxlISIKLSsJ ICBmaQotKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIgJiYKLSsJICAgICB0ZXN0ICIkaGFy ZGNvZGVfaW50b19saWJzIiA9IHllczsgdGhlbgotKwkgICAgIyBIYXJkY29kZSB0aGUgbGlicmFy eSBwYXRoLgotKwkgICAgIyBTa2lwIGRpcmVjdG9yaWVzIHRoYXQgYXJlIGluIHRoZSBzeXN0ZW0g ZGVmYXVsdCBydW4tdGltZQotKwkgICAgIyBzZWFyY2ggcGF0aC4KLSsJICAgIGNhc2UgIiAkc3lz X2xpYl9kbHNlYXJjaF9wYXRoICIgaW4KLSsJICAgICoiICRhYnNkaXIgIiopIDs7Ci0rCSAgICAq KQotKwkgICAgICBjYXNlICIkY29tcGlsZV9ycGF0aCAiIGluCi0rCSAgICAgICoiICRhYnNkaXIg IiopIDs7Ci0rCSAgICAgICopIGNvbXBpbGVfcnBhdGg9IiRjb21waWxlX3JwYXRoICRhYnNkaXIi Ci0rCSAgICAgIGVzYWMKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICAgIGNhc2UgIiAkc3lz X2xpYl9kbHNlYXJjaF9wYXRoICIgaW4KLSsJICAgICoiICRsaWJkaXIgIiopIDs7Ci0rCSAgICAq KQotKwkgICAgICBjYXNlICIkZmluYWxpemVfcnBhdGggIiBpbgotKwkgICAgICAqIiAkbGliZGly ICIqKSA7OwotKwkgICAgICAqKSBmaW5hbGl6ZV9ycGF0aD0iJGZpbmFsaXplX3JwYXRoICRsaWJk aXIiCi0rCSAgICAgIGVzYWMKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICBmaQotKwotKwkg IGlmIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyI7IHRoZW4KLSsJICAg ICMgZmlndXJlIG91dCB0aGUgc29uYW1lCi0rCSAgICBzZXQgZHVtbXkgJGxpYnJhcnlfbmFtZXMK LSsJICAgIHNoaWZ0Ci0rCSAgICByZWFsbmFtZT0iJDEiCi0rCSAgICBzaGlmdAotKwkgICAgbGli bmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCi0rCSAgICAjIHVzZSBkbG5h bWUgaWYgd2UgZ290IGl0LiBpdCdzIHBlcmZlY3RseSBnb29kLCBubz8KLSsJICAgIGlmIHRlc3Qg LW4gIiRkbG5hbWUiOyB0aGVuCi0rCSAgICAgIHNvbmFtZT0iJGRsbmFtZSIKLSsJICAgIGVsaWYg dGVzdCAtbiAiJHNvbmFtZV9zcGVjIjsgdGhlbgotKwkgICAgICAjIGJsZWggd2luZG93cwotKwkg ICAgICBjYXNlICRob3N0IGluCi0rCSAgICAgICpjeWd3aW4qIHwgbWluZ3cqIHwgKmNlZ2NjKikK LSsJICAgICAgICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQotKwkJbWFqb3I9JGZ1bmNfYXJp dGhfcmVzdWx0Ci0rCQl2ZXJzdWZmaXg9Ii0kbWFqb3IiCi0rCQk7OwotKwkgICAgICBlc2FjCi0r CSAgICAgIGV2YWwgc29uYW1lPVwiJHNvbmFtZV9zcGVjXCIKLSsJICAgIGVsc2UKLSsJICAgICAg c29uYW1lPSIkcmVhbG5hbWUiCi0rCSAgICBmaQotKwotKwkgICAgIyBNYWtlIGEgbmV3IG5hbWUg Zm9yIHRoZSBleHRyYWN0X2V4cHN5bXNfY21kcyB0byB1c2UKLSsJICAgIHNvcm9vdD0iJHNvbmFt ZSIKLSsJICAgIGZ1bmNfYmFzZW5hbWUgIiRzb3Jvb3QiCi0rCSAgICBzb25hbWU9IiRmdW5jX2Jh c2VuYW1lX3Jlc3VsdCIKLSsJICAgIGZ1bmNfc3RyaXBuYW1lICdsaWInICcuZGxsJyAiJHNvbmFt ZSIKLSsJICAgIG5ld2xpYj1saWJpbXAtJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdC5hCi0rCi0rCSAg ICAjIElmIHRoZSBsaWJyYXJ5IGhhcyBubyBleHBvcnQgbGlzdCwgdGhlbiBjcmVhdGUgb25lIG5v dwotKwkgICAgaWYgdGVzdCAtZiAiJG91dHB1dF9vYmpkaXIvJHNvbmFtZS1kZWYiOyB0aGVuIDoK LSsJICAgIGVsc2UKLSsJICAgICAgZnVuY192ZXJib3NlICJleHRyYWN0aW5nIGV4cG9ydGVkIHN5 bWJvbCBsaXN0IGZyb20gXGAkc29uYW1lJyIKLSsJICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRl eHRyYWN0X2V4cHN5bXNfY21kcyIgJ2V4aXQgJD8nCi0rCSAgICBmaQotKwotKwkgICAgIyBDcmVh dGUgJG5ld2xpYgotKwkgICAgaWYgdGVzdCAtZiAiJG91dHB1dF9vYmpkaXIvJG5ld2xpYiI7IHRo ZW4gOjsgZWxzZQotKwkgICAgICBmdW5jX3ZlcmJvc2UgImdlbmVyYXRpbmcgaW1wb3J0IGxpYnJh cnkgZm9yIFxgJHNvbmFtZSciCi0rCSAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkb2xkX2FyY2hp dmVfZnJvbV9leHBzeW1zX2NtZHMiICdleGl0ICQ/JwotKwkgICAgZmkKLSsJICAgICMgbWFrZSBz dXJlIHRoZSBsaWJyYXJ5IHZhcmlhYmxlcyBhcmUgcG9pbnRpbmcgdG8gdGhlIG5ldyBsaWJyYXJ5 Ci0rCSAgICBkaXI9JG91dHB1dF9vYmpkaXIKLSsJICAgIGxpbmtsaWI9JG5ld2xpYgotKwkgIGZp ICMgdGVzdCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIgotKwotKwkgIGlmIHRl c3QgIiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRlc3QgIiRtb2RlIiAhPSByZWxpbms7IHRoZW4KLSsJ ICAgIGFkZF9zaGxpYnBhdGg9Ci0rCSAgICBhZGRfZGlyPQotKwkgICAgYWRkPQotKwkgICAgbGli X2xpbmtlZD15ZXMKLSsJICAgIGNhc2UgJGhhcmRjb2RlX2FjdGlvbiBpbgotKwkgICAgaW1tZWRp YXRlIHwgdW5zdXBwb3J0ZWQpCi0rCSAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiID0g bm87IHRoZW4KLSsJCWFkZD0iJGRpci8kbGlua2xpYiIKLSsJCWNhc2UgJGhvc3QgaW4KLSsJCSAg Ki0qLXNjbzMuMnY1LjAuWzAyNF0qKSBhZGRfZGlyPSItTCRkaXIiIDs7Ci0rCQkgICotKi1zeXN2 NCp1dzIqKSBhZGRfZGlyPSItTCRkaXIiIDs7Ci0rCQkgICotKi1zeXN2NU9wZW5VTklYKiB8ICot Ki1zeXN2NVVuaXhXYXJlNy5bMDFdLlsxMF0qIHwgXAotKwkJICAgICotKi11bml4d2FyZTcqKSBh ZGRfZGlyPSItTCRkaXIiIDs7Ci0rCQkgICotKi1kYXJ3aW4qICkKLSsJCSAgICAjIGlmIHRoZSBs aWIgaXMgYSAobm9uLWRsb3BlbmVkKSBtb2R1bGUgdGhlbiB3ZSBjYW4gbm90Ci0rCQkgICAgIyBs aW5rIGFnYWluc3QgaXQsIHNvbWVvbmUgaXMgaWdub3JpbmcgdGhlIGVhcmxpZXIgd2FybmluZ3MK LSsJCSAgICBpZiAvdXNyL2Jpbi9maWxlIC1MICRhZGQgMj4gL2Rldi9udWxsIHwKLSsJCQkgJEdS RVAgIjogW146XSogYnVuZGxlIiA+L2Rldi9udWxsIDsgdGhlbgotKwkJICAgICAgaWYgdGVzdCAi WCRkbG9wZW5tb2R1bGUiICE9ICJYJGxpYiI7IHRoZW4KLSsJCQkkRUNITyAiKioqIFdhcm5pbmc6 IGxpYiAkbGlua2xpYiBpcyBhIG1vZHVsZSwgbm90IGEgc2hhcmVkIGxpYnJhcnkiCi0rCQkJaWYg dGVzdCAteiAiJG9sZF9saWJyYXJ5IiA7IHRoZW4KLSsJCQkgICRFQ0hPCi0rCQkJICAkRUNITyAi KioqIEFuZCB0aGVyZSBkb2Vzbid0IHNlZW0gdG8gYmUgYSBzdGF0aWMgYXJjaGl2ZSBhdmFpbGFi bGUiCi0rCQkJICAkRUNITyAiKioqIFRoZSBsaW5rIHdpbGwgcHJvYmFibHkgZmFpbCwgc29ycnki Ci0rCQkJZWxzZQotKwkJCSAgYWRkPSIkZGlyLyRvbGRfbGlicmFyeSIKLSsJCQlmaQotKwkJICAg ICAgZWxpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiOyB0aGVuCi0rCQkJYWRkPSIkZGlyLyRvbGRf bGlicmFyeSIKLSsJCSAgICAgIGZpCi0rCQkgICAgZmkKLSsJCWVzYWMKLSsJICAgICAgZWxpZiB0 ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSBubzsgdGhlbgotKwkJY2FzZSAkaG9zdCBpbgotKwkJ Ki0qLXN1bm9zKikgYWRkX3NobGlicGF0aD0iJGRpciIgOzsKLSsJCWVzYWMKLSsJCWFkZF9kaXI9 Ii1MJGRpciIKLSsJCWFkZD0iLWwkbmFtZSIKLSsJICAgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVf c2hsaWJwYXRoX3ZhciIgPSBubzsgdGhlbgotKwkJYWRkX3NobGlicGF0aD0iJGRpciIKLSsJCWFk ZD0iLWwkbmFtZSIKLSsJICAgICAgZWxzZQotKwkJbGliX2xpbmtlZD1ubwotKwkgICAgICBmaQot KwkgICAgICA7OwotKwkgICAgcmVsaW5rKQotKwkgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGly ZWN0IiA9IHllcyAmJgotKwkgICAgICAgICB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRl IiA9IG5vOyB0aGVuCi0rCQlhZGQ9IiRkaXIvJGxpbmtsaWIiCi0rCSAgICAgIGVsaWYgdGVzdCAi JGhhcmRjb2RlX21pbnVzX0wiID0geWVzOyB0aGVuCi0rCQlhZGRfZGlyPSItTCRkaXIiCi0rCQkj IFRyeSBsb29raW5nIGZpcnN0IGluIHRoZSBsb2NhdGlvbiB3ZSdyZSBiZWluZyBpbnN0YWxsZWQg dG8uCi0rCQlpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsgdGhlbgotKwkJICBjYXNlICRs aWJkaXIgaW4KLSsJCSAgICBbXFwvXSopCi0rCQkgICAgICBhZGRfZGlyPSIkYWRkX2RpciAtTCRp bnN0X3ByZWZpeF9kaXIkbGliZGlyIgotKwkJICAgICAgOzsKLSsJCSAgZXNhYwotKwkJZmkKLSsJ CWFkZD0iLWwkbmFtZSIKLSsJICAgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfc2hsaWJwYXRoX3Zh ciIgPSB5ZXM7IHRoZW4KLSsJCWFkZF9zaGxpYnBhdGg9IiRkaXIiCi0rCQlhZGQ9Ii1sJG5hbWUi Ci0rCSAgICAgIGVsc2UKLSsJCWxpYl9saW5rZWQ9bm8KLSsJICAgICAgZmkKLSsJICAgICAgOzsK LSsJICAgICopIGxpYl9saW5rZWQ9bm8gOzsKLSsJICAgIGVzYWMKLSsKLSsJICAgIGlmIHRlc3Qg IiRsaWJfbGlua2VkIiAhPSB5ZXM7IHRoZW4KLSsJICAgICAgZnVuY19mYXRhbF9jb25maWd1cmF0 aW9uICJ1bnN1cHBvcnRlZCBoYXJkY29kZSBwcm9wZXJ0aWVzIgotKwkgICAgZmkKLSsKLSsJICAg IGlmIHRlc3QgLW4gIiRhZGRfc2hsaWJwYXRoIjsgdGhlbgotKwkgICAgICBjYXNlIDokY29tcGls ZV9zaGxpYnBhdGg6IGluCi0rCSAgICAgICoiOiRhZGRfc2hsaWJwYXRoOiIqKSA7OwotKwkgICAg ICAqKSBjb21waWxlX3NobGlicGF0aD0iJGNvbXBpbGVfc2hsaWJwYXRoJGFkZF9zaGxpYnBhdGg6 IiA7OwotKwkgICAgICBlc2FjCi0rCSAgICBmaQotKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9 IHByb2c7IHRoZW4KLSsJICAgICAgdGVzdCAtbiAiJGFkZF9kaXIiICYmIGNvbXBpbGVfZGVwbGli cz0iJGFkZF9kaXIgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAgICAgdGVzdCAtbiAiJGFkZCIgJiYg Y29tcGlsZV9kZXBsaWJzPSIkYWRkICRjb21waWxlX2RlcGxpYnMiCi0rCSAgICBlbHNlCi0rCSAg ICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBkZXBsaWJzPSIkYWRkX2RpciAkZGVwbGlicyIKLSsJ ICAgICAgdGVzdCAtbiAiJGFkZCIgJiYgZGVwbGlicz0iJGFkZCAkZGVwbGlicyIKLSsJICAgICAg aWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgIT0geWVzICYmCi0rCQkgdGVzdCAiJGhhcmRjb2Rl X21pbnVzX0wiICE9IHllcyAmJgotKwkJIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9 IHllczsgdGhlbgotKwkJY2FzZSA6JGZpbmFsaXplX3NobGlicGF0aDogaW4KLSsJCSoiOiRsaWJk aXI6IiopIDs7Ci0rCQkqKSBmaW5hbGl6ZV9zaGxpYnBhdGg9IiRmaW5hbGl6ZV9zaGxpYnBhdGgk bGliZGlyOiIgOzsKLSsJCWVzYWMKLSsJICAgICAgZmkKLSsJICAgIGZpCi0rCSAgZmkKLSsKLSsJ ICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyB8fCB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRo ZW4KLSsJICAgIGFkZF9zaGxpYnBhdGg9Ci0rCSAgICBhZGRfZGlyPQotKwkgICAgYWRkPQotKwkg ICAgIyBGaW5hbGl6ZSBjb21tYW5kIGZvciBib3RoIGlzIHNpbXBsZToganVzdCBoYXJkY29kZSBp dC4KLSsJICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiID0geWVzICYmCi0rCSAgICAgICB0 ZXN0ICIkaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlIiA9IG5vOyB0aGVuCi0rCSAgICAgIGFkZD0i JGxpYmRpci8kbGlua2xpYiIKLSsJICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiID0g eWVzOyB0aGVuCi0rCSAgICAgIGFkZF9kaXI9Ii1MJGxpYmRpciIKLSsJICAgICAgYWRkPSItbCRu YW1lIgotKwkgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgPSB5ZXM7IHRo ZW4KLSsJICAgICAgY2FzZSA6JGZpbmFsaXplX3NobGlicGF0aDogaW4KLSsJICAgICAgKiI6JGxp YmRpcjoiKikgOzsKLSsJICAgICAgKikgZmluYWxpemVfc2hsaWJwYXRoPSIkZmluYWxpemVfc2hs aWJwYXRoJGxpYmRpcjoiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgICAgYWRkPSItbCRuYW1lIgot KwkgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfYXV0b21hdGljIiA9IHllczsgdGhlbgotKwkgICAg ICBpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIiAmJgotKwkJIHRlc3QgLWYgIiRpbnN0X3By ZWZpeF9kaXIkbGliZGlyLyRsaW5rbGliIiA7IHRoZW4KLSsJCWFkZD0iJGluc3RfcHJlZml4X2Rp ciRsaWJkaXIvJGxpbmtsaWIiCi0rCSAgICAgIGVsc2UKLSsJCWFkZD0iJGxpYmRpci8kbGlua2xp YiIKLSsJICAgICAgZmkKLSsJICAgIGVsc2UKLSsJICAgICAgIyBXZSBjYW5ub3Qgc2VlbSB0byBo YXJkY29kZSBpdCwgZ3Vlc3Mgd2UnbGwgZmFrZSBpdC4KLSsJICAgICAgYWRkX2Rpcj0iLUwkbGli ZGlyIgotKwkgICAgICAjIFRyeSBsb29raW5nIGZpcnN0IGluIHRoZSBsb2NhdGlvbiB3ZSdyZSBi ZWluZyBpbnN0YWxsZWQgdG8uCi0rCSAgICAgIGlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIi OyB0aGVuCi0rCQljYXNlICRsaWJkaXIgaW4KLSsJCSAgW1xcL10qKQotKwkJICAgIGFkZF9kaXI9 IiRhZGRfZGlyIC1MJGluc3RfcHJlZml4X2RpciRsaWJkaXIiCi0rCQkgICAgOzsKLSsJCWVzYWMK LSsJICAgICAgZmkKLSsJICAgICAgYWRkPSItbCRuYW1lIgotKwkgICAgZmkKLSsKLSsJICAgIGlm IHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCi0rCSAgICAgIHRlc3QgLW4gIiRhZGRfZGly IiAmJiBmaW5hbGl6ZV9kZXBsaWJzPSIkYWRkX2RpciAkZmluYWxpemVfZGVwbGlicyIKLSsJICAg ICAgdGVzdCAtbiAiJGFkZCIgJiYgZmluYWxpemVfZGVwbGlicz0iJGFkZCAkZmluYWxpemVfZGVw bGlicyIKLSsJICAgIGVsc2UKLSsJICAgICAgdGVzdCAtbiAiJGFkZF9kaXIiICYmIGRlcGxpYnM9 IiRhZGRfZGlyICRkZXBsaWJzIgotKwkgICAgICB0ZXN0IC1uICIkYWRkIiAmJiBkZXBsaWJzPSIk YWRkICRkZXBsaWJzIgotKwkgICAgZmkKLSsJICBmaQotKwllbGlmIHRlc3QgIiRsaW5rbW9kZSIg PSBwcm9nOyB0aGVuCi0rCSAgIyBIZXJlIHdlIGFzc3VtZSB0aGF0IG9uZSBvZiBoYXJkY29kZV9k aXJlY3Qgb3IgaGFyZGNvZGVfbWludXNfTAotKwkgICMgaXMgbm90IHVuc3VwcG9ydGVkLiAgVGhp cyBpcyB2YWxpZCBvbiBhbGwga25vd24gc3RhdGljIGFuZAotKwkgICMgc2hhcmVkIHBsYXRmb3Jt cy4KLSsJICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiAhPSB1bnN1cHBvcnRlZDsgdGhlbgot KwkgICAgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IiAmJiBsaW5rbGliPSIkb2xkX2xpYnJhcnkiCi0r CSAgICBjb21waWxlX2RlcGxpYnM9IiRkaXIvJGxpbmtsaWIgJGNvbXBpbGVfZGVwbGlicyIKLSsJ ICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkaXIvJGxpbmtsaWIgJGZpbmFsaXplX2RlcGxpYnMiCi0r CSAgZWxzZQotKwkgICAgY29tcGlsZV9kZXBsaWJzPSItbCRuYW1lIC1MJGRpciAkY29tcGlsZV9k ZXBsaWJzIgotKwkgICAgZmluYWxpemVfZGVwbGlicz0iLWwkbmFtZSAtTCRkaXIgJGZpbmFsaXpl X2RlcGxpYnMiCi0rCSAgZmkKLSsJZWxpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHll czsgdGhlbgotKwkgICMgTm90IGEgc2hhcmVkIGxpYnJhcnkKLSsJICBpZiB0ZXN0ICIkZGVwbGli c19jaGVja19tZXRob2QiICE9IHBhc3NfYWxsOyB0aGVuCi0rCSAgICAjIFdlJ3JlIHRyeWluZyBs aW5rIGEgc2hhcmVkIGxpYnJhcnkgYWdhaW5zdCBhIHN0YXRpYyBvbmUKLSsJICAgICMgYnV0IHRo ZSBzeXN0ZW0gZG9lc24ndCBzdXBwb3J0IGl0LgotKwotKwkgICAgIyBKdXN0IHByaW50IGEgd2Fy bmluZyBhbmQgYWRkIHRoZSBsaWJyYXJ5IHRvIGRlcGVuZGVuY3lfbGlicyBzbwotKwkgICAgIyB0 aGF0IHRoZSBwcm9ncmFtIGNhbiBiZSBsaW5rZWQgYWdhaW5zdCB0aGUgc3RhdGljIGxpYnJhcnku Ci0rCSAgICAkRUNITwotKwkgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBUaGlzIHN5c3RlbSBjYW4g bm90IGxpbmsgdG8gc3RhdGljIGxpYiBhcmNoaXZlICRsaWIuIgotKwkgICAgJEVDSE8gIioqKiBJ IGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBs aW5rIGluIHdoZW4iCi0rCSAgICAkRUNITyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4g IEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKLSsJICAgICRFQ0hPICIqKiog c2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRv IGhhdmUuIgotKwkgICAgaWYgdGVzdCAiJG1vZHVsZSIgPSB5ZXM7IHRoZW4KLSsJICAgICAgJEVD SE8gIioqKiBCdXQgYXMgeW91IHRyeSB0byBidWlsZCBhIG1vZHVsZSBsaWJyYXJ5LCBsaWJ0b29s IHdpbGwgc3RpbGwgY3JlYXRlICIKLSsJICAgICAgJEVDSE8gIioqKiBhIHN0YXRpYyBtb2R1bGUs IHRoYXQgc2hvdWxkIHdvcmsgYXMgbG9uZyBhcyB0aGUgZGxvcGVuaW5nIGFwcGxpY2F0aW9uIgot KwkgICAgICAkRUNITyAiKioqIGlzIGxpbmtlZCB3aXRoIHRoZSAtZGxvcGVuIGZsYWcgdG8gcmVz b2x2ZSBzeW1ib2xzIGF0IHJ1bnRpbWUuIgotKwkgICAgICBpZiB0ZXN0IC16ICIkZ2xvYmFsX3N5 bWJvbF9waXBlIjsgdGhlbgotKwkJJEVDSE8KLSsJCSRFQ0hPICIqKiogSG93ZXZlciwgdGhpcyB3 b3VsZCBvbmx5IHdvcmsgaWYgbGlidG9vbCB3YXMgYWJsZSB0byBleHRyYWN0IHN5bWJvbCIKLSsJ CSRFQ0hPICIqKiogbGlzdHMgZnJvbSBhIHByb2dyYW0sIHVzaW5nIFxgbm0nIG9yIGVxdWl2YWxl bnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgotKwkJJEVDSE8gIioqKiBub3QgZmluZCBzdWNoIGEgcHJv Z3JhbS4gIFNvLCB0aGlzIG1vZHVsZSBpcyBwcm9iYWJseSB1c2VsZXNzLiIKLSsJCSRFQ0hPICIq KiogXGBubScgZnJvbSBHTlUgYmludXRpbHMgYW5kIGEgZnVsbCByZWJ1aWxkIG1heSBoZWxwLiIK LSsJICAgICAgZmkKLSsJICAgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0aGVu Ci0rCQlidWlsZF9saWJ0b29sX2xpYnM9bW9kdWxlCi0rCQlidWlsZF9vbGRfbGlicz15ZXMKLSsJ ICAgICAgZWxzZQotKwkJYnVpbGRfbGlidG9vbF9saWJzPW5vCi0rCSAgICAgIGZpCi0rCSAgICBm aQotKwkgIGVsc2UKLSsJICAgIGRlcGxpYnM9IiRkaXIvJG9sZF9saWJyYXJ5ICRkZXBsaWJzIgot KwkgICAgbGlua19zdGF0aWM9eWVzCi0rCSAgZmkKLSsJZmkgIyBsaW5rIHNoYXJlZC9zdGF0aWMg bGlicmFyeT8KLSsKLSsJaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgotKwkgIGlmIHRl c3QgLW4gIiRkZXBlbmRlbmN5X2xpYnMiICYmCi0rCSAgICAgeyB0ZXN0ICIkaGFyZGNvZGVfaW50 b19saWJzIiAhPSB5ZXMgfHwKLSsJICAgICAgIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXMg fHwKLSsJICAgICAgIHRlc3QgIiRsaW5rX3N0YXRpYyIgPSB5ZXM7IH07IHRoZW4KLSsJICAgICMg RXh0cmFjdCAtUiBmcm9tIGRlcGVuZGVuY3lfbGlicwotKwkgICAgdGVtcF9kZXBsaWJzPQotKwkg ICAgZm9yIGxpYmRpciBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwotKwkgICAgICBjYXNlICRsaWJk aXIgaW4KLSsJICAgICAgLVIqKSBmdW5jX3N0cmlwbmFtZSAnLVInICcnICIkbGliZGlyIgotKwkg ICAgICAgICAgIHRlbXBfeHJwYXRoPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJCSAgIGNhc2Ug IiAkeHJwYXRoICIgaW4KLSsJCSAgICoiICR0ZW1wX3hycGF0aCAiKikgOzsKLSsJCSAgICopIHhy cGF0aD0iJHhycGF0aCAkdGVtcF94cnBhdGgiOzsKLSsJCSAgIGVzYWM7OwotKwkgICAgICAqKSB0 ZW1wX2RlcGxpYnM9IiR0ZW1wX2RlcGxpYnMgJGxpYmRpciI7OwotKwkgICAgICBlc2FjCi0rCSAg ICBkb25lCi0rCSAgICBkZXBlbmRlbmN5X2xpYnM9IiR0ZW1wX2RlcGxpYnMiCi0rCSAgZmkKLSsK LSsJICBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGFic2RpciIKLSsJ ICAjIExpbmsgYWdhaW5zdCB0aGlzIGxpYnJhcnkKLSsJICB0ZXN0ICIkbGlua19zdGF0aWMiID0g bm8gJiYgbmV3ZGVwZW5kZW5jeV9saWJzPSIkYWJzX2xhZGlyLyRsYW5hbWUgJG5ld2RlcGVuZGVu Y3lfbGlicyIKLSsJICAjIC4uLiBhbmQgaXRzIGRlcGVuZGVuY3lfbGlicwotKwkgIHRtcF9saWJz PQotKwkgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KLSsJICAgIG5ld2RlcGVu ZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgotKwkgICAgaWYgJG9wdF9k dXBsaWNhdGVfZGVwcyA7IHRoZW4KLSsJICAgICAgY2FzZSAiJHRtcF9saWJzICIgaW4KLSsJICAg ICAgKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkZGVwbGli IiA7OwotKwkgICAgICBlc2FjCi0rCSAgICBmaQotKwkgICAgdG1wX2xpYnM9IiR0bXBfbGlicyAk ZGVwbGliIgotKwkgIGRvbmUKLSsKLSsJICBpZiB0ZXN0ICIkbGlua19hbGxfZGVwbGlicyIgIT0g bm87IHRoZW4KLSsJICAgICMgQWRkIHRoZSBzZWFyY2ggcGF0aHMgb2YgYWxsIGRlcGVuZGVuY3kg bGlicmFyaWVzCi0rCSAgICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCi0rCSAg ICAgIGNhc2UgJGRlcGxpYiBpbgotKwkgICAgICAtTCopIHBhdGg9IiRkZXBsaWIiIDs7Ci0rCSAg ICAgICoubGEpCi0rCSAgICAgICAgZnVuY19kaXJuYW1lICIkZGVwbGliIiAiIiAiLiIKLSsJCWRp cj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0rCQkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4K LSsJCWNhc2UgJGRpciBpbgotKwkJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBhYnNkaXI9IiRk aXIiIDs7Ci0rCQkqKQotKwkJICBhYnNkaXI9YGNkICIkZGlyIiAmJiBwd2RgCi0rCQkgIGlmIHRl c3QgLXogIiRhYnNkaXIiOyB0aGVuCi0rCQkgICAgZnVuY193YXJuaW5nICJjYW5ub3QgZGV0ZXJt aW5lIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIG9mIFxgJGRpciciCi0rCQkgICAgYWJzZGlyPSIk ZGlyIgotKwkJICBmaQotKwkJICA7OwotKwkJZXNhYwotKwkJaWYgJEdSRVAgIl5pbnN0YWxsZWQ9 bm8iICRkZXBsaWIgPiAvZGV2L251bGw7IHRoZW4KLSsJCWNhc2UgJGhvc3QgaW4KLSsJCSotKi1k YXJ3aW4qKQotKwkJICBkZXBkZXBsPQotKwkJICBldmFsIGRlcGxpYnJhcnlfbmFtZXM9YCR7U0VE fSAtbiAtZSAncy9ebGlicmFyeV9uYW1lcz1cKC4qXCkkL1wxL3AnICRkZXBsaWJgCi0rCQkgIGlm IHRlc3QgLW4gIiRkZXBsaWJyYXJ5X25hbWVzIiA7IHRoZW4KLSsJCSAgICBmb3IgdG1wIGluICRk ZXBsaWJyYXJ5X25hbWVzIDsgZG8KLSsJCSAgICAgIGRlcGRlcGw9JHRtcAotKwkJICAgIGRvbmUK LSsJCSAgICBpZiB0ZXN0IC1mICIkYWJzZGlyLyRvYmpkaXIvJGRlcGRlcGwiIDsgdGhlbgotKwkJ ICAgICAgZGVwZGVwbD0iJGFic2Rpci8kb2JqZGlyLyRkZXBkZXBsIgotKwkJICAgICAgZGFyd2lu X2luc3RhbGxfbmFtZT1gJHtPVE9PTH0gLUwgJGRlcGRlcGwgfCBhd2sgJ3tpZiAoTlIgPT0gMikg e3ByaW50ICQxO2V4aXR9fSdgCi0rICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRk YXJ3aW5faW5zdGFsbF9uYW1lIjsgdGhlbgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGFy d2luX2luc3RhbGxfbmFtZT1gJHtPVE9PTDY0fSAtTCAkZGVwZGVwbCAgfCBhd2sgJ3tpZiAoTlIg PT0gMikge3ByaW50ICQxO2V4aXR9fSdgCi0rICAgICAgICAgICAgICAgICAgICAgIGZpCi0rCQkg ICAgICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWR5bGliX2ZpbGUgJHt3 bH0ke2Rhcndpbl9pbnN0YWxsX25hbWV9OiR7ZGVwZGVwbH0iCi0rCQkgICAgICBsaW5rZXJfZmxh Z3M9IiRsaW5rZXJfZmxhZ3MgLWR5bGliX2ZpbGUgJHtkYXJ3aW5faW5zdGFsbF9uYW1lfToke2Rl cGRlcGx9IgotKwkJICAgICAgcGF0aD0KLSsJCSAgICBmaQotKwkJICBmaQotKwkJICA7OwotKwkJ KikKLSsJCSAgcGF0aD0iLUwkYWJzZGlyLyRvYmpkaXIiCi0rCQkgIDs7Ci0rCQllc2FjCi0rCQll bHNlCi0rCQkgIGV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wx L3AnICRkZXBsaWJgCi0rCQkgIHRlc3QgLXogIiRsaWJkaXIiICYmIFwKLSsJCSAgICBmdW5jX2Zh dGFsX2Vycm9yICJcYCRkZXBsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKLSsJ CSAgdGVzdCAiJGFic2RpciIgIT0gIiRsaWJkaXIiICYmIFwKLSsJCSAgICBmdW5jX3dhcm5pbmcg IlxgJGRlcGxpYicgc2VlbXMgdG8gYmUgbW92ZWQiCi0rCi0rCQkgIHBhdGg9Ii1MJGFic2RpciIK LSsJCWZpCi0rCQk7OwotKwkgICAgICBlc2FjCi0rCSAgICAgIGNhc2UgIiAkZGVwbGlicyAiIGlu Ci0rCSAgICAgICoiICRwYXRoICIqKSA7OwotKwkgICAgICAqKSBkZXBsaWJzPSIkcGF0aCAkZGVw bGlicyIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgIGZpICMgbGlua19hbGxfZGVw bGlicyAhPSBubwotKwlmaSAjIGxpbmttb2RlID0gbGliCi0rICAgICAgZG9uZSAjIGZvciBkZXBs aWIgaW4gJGxpYnMKLSsgICAgICBpZiB0ZXN0ICIkcGFzcyIgPSBsaW5rOyB0aGVuCi0rCWlmIHRl c3QgIiRsaW5rbW9kZSIgPSAicHJvZyI7IHRoZW4KLSsJICBjb21waWxlX2RlcGxpYnM9IiRuZXdf aW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkY29tcGlsZV9kZXBsaWJzIgotKwkgIGZpbmFsaXplX2Rl cGxpYnM9IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkZmluYWxpemVfZGVwbGlicyIKLSsJ ZWxzZQotKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgImAkRUNITyAiWCAkbmV3 X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFt ZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCi0rCWZpCi0rICAgICAgZmkKLSsgICAgICBkZXBlbmRl bmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMiCi0rICAgICAgaWYgdGVzdCAiJHBhc3MiID0g ZGxwcmVvcGVuOyB0aGVuCi0rCSMgTGluayB0aGUgZGxwcmVvcGVuZWQgbGlicmFyaWVzIGJlZm9y ZSBvdGhlciBsaWJyYXJpZXMKLSsJZm9yIGRlcGxpYiBpbiAkc2F2ZV9kZXBsaWJzOyBkbwotKwkg IGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCi0rCWRvbmUKLSsgICAgICBmaQotKyAgICAgIGlm IHRlc3QgIiRwYXNzIiAhPSBkbG9wZW47IHRoZW4KLSsJaWYgdGVzdCAiJHBhc3MiICE9IGNvbnY7 IHRoZW4KLSsJICAjIE1ha2Ugc3VyZSBsaWJfc2VhcmNoX3BhdGggY29udGFpbnMgb25seSB1bmlx dWUgZGlyZWN0b3JpZXMuCi0rCSAgbGliX3NlYXJjaF9wYXRoPQotKwkgIGZvciBkaXIgaW4gJG5l d2xpYl9zZWFyY2hfcGF0aDsgZG8KLSsJICAgIGNhc2UgIiRsaWJfc2VhcmNoX3BhdGggIiBpbgot KwkgICAgKiIgJGRpciAiKikgOzsKLSsJICAgICopIGxpYl9zZWFyY2hfcGF0aD0iJGxpYl9zZWFy Y2hfcGF0aCAkZGlyIiA7OwotKwkgICAgZXNhYwotKwkgIGRvbmUKLSsJICBuZXdsaWJfc2VhcmNo X3BhdGg9Ci0rCWZpCi0rCi0rCWlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgIT0gInByb2csbGlu ayI7IHRoZW4KLSsJICB2YXJzPSJkZXBsaWJzIgotKwllbHNlCi0rCSAgdmFycz0iY29tcGlsZV9k ZXBsaWJzIGZpbmFsaXplX2RlcGxpYnMiCi0rCWZpCi0rCWZvciB2YXIgaW4gJHZhcnMgZGVwZW5k ZW5jeV9saWJzOyBkbwotKwkgICMgQWRkIGxpYnJhcmllcyB0byAkdmFyIGluIHJldmVyc2Ugb3Jk ZXIKLSsJICBldmFsIHRtcF9saWJzPVwiXCQkdmFyXCIKLSsJICBuZXdfbGlicz0KLSsJICBmb3Ig ZGVwbGliIGluICR0bXBfbGliczsgZG8KLSsJICAgICMgRklYTUU6IFBlZGFudGljYWxseSwgdGhp cyBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8sIHNvCi0rCSAgICAjICAgICAgICB0aGF0IHNvbWUg bmFzdHkgZGVwZW5kZW5jeSBsb29wIGlzbid0IGFjY2lkZW50YWxseQotKwkgICAgIyAgICAgICAg YnJva2VuOgotKwkgICAgI25ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIKLSsJICAgICMgUHJh Z21hdGljYWxseSwgdGhpcyBzZWVtcyB0byBjYXVzZSB2ZXJ5IGZldyBwcm9ibGVtcyBpbgotKwkg ICAgIyBwcmFjdGljZToKLSsJICAgIGNhc2UgJGRlcGxpYiBpbgotKwkgICAgLUwqKSBuZXdfbGli cz0iJGRlcGxpYiAkbmV3X2xpYnMiIDs7Ci0rCSAgICAtUiopIDs7Ci0rCSAgICAqKQotKwkgICAg ICAjIEFuZCBoZXJlIGlzIHRoZSByZWFzb246IHdoZW4gYSBsaWJyYXJ5IGFwcGVhcnMgbW9yZQot KwkgICAgICAjIHRoYW4gb25jZSBhcyBhbiBleHBsaWNpdCBkZXBlbmRlbmNlIG9mIGEgbGlicmFy eSwgb3IKLSsJICAgICAgIyBpcyBpbXBsaWNpdGx5IGxpbmtlZCBpbiBtb3JlIHRoYW4gb25jZSBi eSB0aGUKLSsJICAgICAgIyBjb21waWxlciwgaXQgaXMgY29uc2lkZXJlZCBzcGVjaWFsLCBhbmQg bXVsdGlwbGUKLSsJICAgICAgIyBvY2N1cnJlbmNlcyB0aGVyZW9mIGFyZSBub3QgcmVtb3ZlZC4g IENvbXBhcmUgdGhpcwotKwkgICAgICAjIHdpdGggaGF2aW5nIHRoZSBzYW1lIGxpYnJhcnkgYmVp bmcgbGlzdGVkIGFzIGEKLSsJICAgICAgIyBkZXBlbmRlbmN5IG9mIG11bHRpcGxlIG90aGVyIGxp YnJhcmllczogaW4gdGhpcyBjYXNlLAotKwkgICAgICAjIHdlIGtub3cgKHBlZGFudGljYWxseSwg d2UgYXNzdW1lKSB0aGUgbGlicmFyeSBkb2VzIG5vdAotKwkgICAgICAjIG5lZWQgdG8gYmUgbGlz dGVkIG1vcmUgdGhhbiBvbmNlLCBzbyB3ZSBrZWVwIG9ubHkgdGhlCi0rCSAgICAgICMgbGFzdCBj b3B5LiAgVGhpcyBpcyBub3QgYWx3YXlzIHJpZ2h0LCBidXQgaXQgaXMgcmFyZQotKwkgICAgICAj IGVub3VnaCB0aGF0IHdlIHJlcXVpcmUgdXNlcnMgdGhhdCByZWFsbHkgbWVhbiB0byBwbGF5Ci0r CSAgICAgICMgc3VjaCB1bnBvcnRhYmxlIGxpbmtpbmcgdHJpY2tzIHRvIGxpbmsgdGhlIGxpYnJh cnkKLSsJICAgICAgIyB1c2luZyAtV2wsLWxuYW1lLCBzbyB0aGF0IGxpYnRvb2wgZG9lcyBub3Qg Y29uc2lkZXIgaXQKLSsJICAgICAgIyBmb3IgZHVwbGljYXRlIHJlbW92YWwuCi0rCSAgICAgIGNh c2UgIiAkc3BlY2lhbGRlcGxpYnMgIiBpbgotKwkgICAgICAqIiAkZGVwbGliICIqKSBuZXdfbGli cz0iJGRlcGxpYiAkbmV3X2xpYnMiIDs7Ci0rCSAgICAgICopCi0rCQljYXNlICIgJG5ld19saWJz ICIgaW4KLSsJCSoiICRkZXBsaWIgIiopIDs7Ci0rCQkqKSBuZXdfbGlicz0iJGRlcGxpYiAkbmV3 X2xpYnMiIDs7Ci0rCQllc2FjCi0rCQk7OwotKwkgICAgICBlc2FjCi0rCSAgICAgIDs7Ci0rCSAg ICBlc2FjCi0rCSAgZG9uZQotKwkgIHRtcF9saWJzPQotKwkgIGZvciBkZXBsaWIgaW4gJG5ld19s aWJzOyBkbwotKwkgICAgY2FzZSAkZGVwbGliIGluCi0rCSAgICAtTCopCi0rCSAgICAgIGNhc2Ug IiAkdG1wX2xpYnMgIiBpbgotKwkgICAgICAqIiAkZGVwbGliICIqKSA7OwotKwkgICAgICAqKSB0 bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgICAgOzsK LSsJICAgICopIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIgOzsKLSsJICAgIGVzYWMKLSsJ ICBkb25lCi0rCSAgZXZhbCAkdmFyPVwiJHRtcF9saWJzXCIKLSsJZG9uZSAjIGZvciB2YXIKLSsg ICAgICBmaQotKyAgICAgICMgTGFzdCBzdGVwOiByZW1vdmUgcnVudGltZSBsaWJzIGZyb20gZGVw ZW5kZW5jeV9saWJzCi0rICAgICAgIyAodGhleSBzdGF5IGluIGRlcGxpYnMpCi0rICAgICAgdG1w X2xpYnM9Ci0rICAgICAgZm9yIGkgaW4gJGRlcGVuZGVuY3lfbGlicyA7IGRvCi0rCWNhc2UgIiAk cHJlZGVwcyAkcG9zdGRlcHMgJGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCAiIGluCi0rCSoiICRp ICIqKQotKwkgIGk9IiIKLSsJICA7OwotKwllc2FjCi0rCWlmIHRlc3QgLW4gIiRpIiA7IHRoZW4K LSsJICB0bXBfbGlicz0iJHRtcF9saWJzICRpIgotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICBk ZXBlbmRlbmN5X2xpYnM9JHRtcF9saWJzCi0rICAgIGRvbmUgIyBmb3IgcGFzcwotKyAgICBpZiB0 ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgotKyAgICAgIGRsZmlsZXM9IiRuZXdkbGZpbGVz IgotKyAgICBmaQotKyAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyB8fCB0ZXN0ICIkbGlu a21vZGUiID0gbGliOyB0aGVuCi0rICAgICAgZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMiCi0r ICAgIGZpCi0rCi0rICAgIGNhc2UgJGxpbmttb2RlIGluCi0rICAgIG9sZGxpYikKLSsgICAgICBp ZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAhPSBubzsg dGhlbgotKwlmdW5jX3dhcm5pbmcgIlxgLWRsb3BlbicgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMi Ci0rICAgICAgZmkKLSsKLSsgICAgICBjYXNlICIgJGRlcGxpYnMiIGluCi0rICAgICAgKlwgLWwq IHwgKlwgLUwqKQotKwlmdW5jX3dhcm5pbmcgIlxgLWwnIGFuZCBcYC1MJyBhcmUgaWdub3JlZCBm b3IgYXJjaGl2ZXMiIDs7Ci0rICAgICAgZXNhYwotKwotKyAgICAgIHRlc3QgLW4gIiRycGF0aCIg JiYgXAotKwlmdW5jX3dhcm5pbmcgIlxgLXJwYXRoJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIK LSsKLSsgICAgICB0ZXN0IC1uICIkeHJwYXRoIiAmJiBcCi0rCWZ1bmNfd2FybmluZyAiXGAtUicg aXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMiCi0rCi0rICAgICAgdGVzdCAtbiAiJHZpbmZvIiAmJiBc Ci0rCWZ1bmNfd2FybmluZyAiXGAtdmVyc2lvbi1pbmZvLy12ZXJzaW9uLW51bWJlcicgaXMgaWdu b3JlZCBmb3IgYXJjaGl2ZXMiCi0rCi0rICAgICAgdGVzdCAtbiAiJHJlbGVhc2UiICYmIFwKLSsJ ZnVuY193YXJuaW5nICJcYC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKLSsKLSsg ICAgICB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICYmIFwK LSsJZnVuY193YXJuaW5nICJcYC1leHBvcnQtc3ltYm9scycgaXMgaWdub3JlZCBmb3IgYXJjaGl2 ZXMiCi0rCi0rICAgICAgIyBOb3cgc2V0IHRoZSB2YXJpYWJsZXMgZm9yIGJ1aWxkaW5nIG9sZCBs aWJyYXJpZXMuCi0rICAgICAgYnVpbGRfbGlidG9vbF9saWJzPW5vCi0rICAgICAgb2xkbGlicz0i JG91dHB1dCIKLSsgICAgICBvYmpzPSIkb2JqcyRvbGRfZGVwbGlicyIKLSsgICAgICA7OwotKwot KyAgICBsaWIpCi0rICAgICAgIyBNYWtlIHN1cmUgd2Ugb25seSBnZW5lcmF0ZSBsaWJyYXJpZXMg b2YgdGhlIGZvcm0gYGxpYk5BTUUubGEnLgotKyAgICAgIGNhc2UgJG91dHB1dG5hbWUgaW4KLSsg ICAgICBsaWIqKQotKwlmdW5jX3N0cmlwbmFtZSAnbGliJyAnLmxhJyAiJG91dHB1dG5hbWUiCi0r CW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwlldmFsIHNoYXJlZF9leHQ9XCIkc2hyZXh0 X2NtZHNcIgotKwlldmFsIGxpYm5hbWU9XCIkbGlibmFtZV9zcGVjXCIKLSsJOzsKLSsgICAgICAq KQotKwl0ZXN0ICIkbW9kdWxlIiA9IG5vICYmIFwKLSsJICBmdW5jX2ZhdGFsX2hlbHAgImxpYnRv b2wgbGlicmFyeSBcYCRvdXRwdXQnIG11c3QgYmVnaW4gd2l0aCBcYGxpYiciCi0rCi0rCWlmIHRl c3QgIiRuZWVkX2xpYl9wcmVmaXgiICE9IG5vOyB0aGVuCi0rCSAgIyBBZGQgdGhlICJsaWIiIHBy ZWZpeCBmb3IgbW9kdWxlcyBpZiByZXF1aXJlZAotKwkgIGZ1bmNfc3RyaXBuYW1lICcnICcubGEn ICIkb3V0cHV0bmFtZSIKLSsJICBuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICBldmFs IHNoYXJlZF9leHQ9XCIkc2hyZXh0X2NtZHNcIgotKwkgIGV2YWwgbGlibmFtZT1cIiRsaWJuYW1l X3NwZWNcIgotKwllbHNlCi0rCSAgZnVuY19zdHJpcG5hbWUgJycgJy5sYScgIiRvdXRwdXRuYW1l IgotKwkgIGxpYm5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwlmaQotKwk7OwotKyAgICAg IGVzYWMKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkb2JqcyI7IHRoZW4KLSsJaWYgdGVzdCAiJGRl cGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBwYXNzX2FsbDsgdGhlbgotKwkgIGZ1bmNfZmF0YWxfZXJy b3IgImNhbm5vdCBidWlsZCBsaWJ0b29sIGxpYnJhcnkgXGAkb3V0cHV0JyBmcm9tIG5vbi1saWJ0 b29sIG9iamVjdHMgb24gdGhpcyBob3N0OiRvYmpzIgotKwllbHNlCi0rCSAgJEVDSE8KLSsJICAk RUNITyAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIHNoYXJlZCBsaWJyYXJ5ICRvdXRwdXQgYWdh aW5zdCB0aGUgbm9uLWxpYnRvb2wiCi0rCSAgJEVDSE8gIioqKiBvYmplY3RzICRvYmpzIGlzIG5v dCBwb3J0YWJsZSEiCi0rCSAgbGlib2Jqcz0iJGxpYm9ianMgJG9ianMiCi0rCWZpCi0rICAgICAg ZmkKLSsKLSsgICAgICB0ZXN0ICIkZGxzZWxmIiAhPSBubyAmJiBcCi0rCWZ1bmNfd2FybmluZyAi XGAtZGxvcGVuIHNlbGYnIGlzIGlnbm9yZWQgZm9yIGxpYnRvb2wgbGlicmFyaWVzIgotKwotKyAg ICAgIHNldCBkdW1teSAkcnBhdGgKLSsgICAgICBzaGlmdAotKyAgICAgIHRlc3QgIiQjIiAtZ3Qg MSAmJiBcCi0rCWZ1bmNfd2FybmluZyAiaWdub3JpbmcgbXVsdGlwbGUgXGAtcnBhdGgncyBmb3Ig YSBsaWJ0b29sIGxpYnJhcnkiCi0rCi0rICAgICAgaW5zdGFsbF9saWJkaXI9IiQxIgotKwotKyAg ICAgIG9sZGxpYnM9Ci0rICAgICAgaWYgdGVzdCAteiAiJHJwYXRoIjsgdGhlbgotKwlpZiB0ZXN0 ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgotKwkgICMgQnVpbGRpbmcgYSBsaWJ0 b29sIGNvbnZlbmllbmNlIGxpYnJhcnkuCi0rCSAgIyBTb21lIGNvbXBpbGVycyBoYXZlIHByb2Js ZW1zIHdpdGggYSBgLmFsJyBleHRlbnNpb24gc28KLSsJICAjIGNvbnZlbmllbmNlIGxpYnJhcmll cyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBleHRlbnNpb24gYW4KLSsJICAjIGFyY2hpdmUgbm9ybWFs bHkgd291bGQuCi0rCSAgb2xkbGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCAk b2xkbGlicyIKLSsJICBidWlsZF9saWJ0b29sX2xpYnM9Y29udmVuaWVuY2UKLSsJICBidWlsZF9v bGRfbGlicz15ZXMKLSsJZmkKLSsKLSsJdGVzdCAtbiAiJHZpbmZvIiAmJiBcCi0rCSAgZnVuY193 YXJuaW5nICJcYC12ZXJzaW9uLWluZm8vLXZlcnNpb24tbnVtYmVyJyBpcyBpZ25vcmVkIGZvciBj b252ZW5pZW5jZSBsaWJyYXJpZXMiCi0rCi0rCXRlc3QgLW4gIiRyZWxlYXNlIiAmJiBcCi0rCSAg ZnVuY193YXJuaW5nICJcYC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZvciBjb252ZW5pZW5jZSBsaWJy YXJpZXMiCi0rICAgICAgZWxzZQotKwotKwkjIFBhcnNlIHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9u IGFyZ3VtZW50LgotKwlzYXZlX2lmcz0iJElGUyI7IElGUz0nOicKLSsJc2V0IGR1bW15ICR2aW5m byAwIDAgMAotKwlzaGlmdAotKwlJRlM9IiRzYXZlX2lmcyIKLSsKLSsJdGVzdCAtbiAiJDciICYm IFwKLSsJICBmdW5jX2ZhdGFsX2hlbHAgInRvbyBtYW55IHBhcmFtZXRlcnMgdG8gXGAtdmVyc2lv bi1pbmZvJyIKLSsKLSsJIyBjb252ZXJ0IGFic29sdXRlIHZlcnNpb24gbnVtYmVycyB0byBsaWJ0 b29sIGFnZXMKLSsJIyB0aGlzIHJldGFpbnMgY29tcGF0aWJpbGl0eSB3aXRoIC5sYSBmaWxlcyBh bmQgYXR0ZW1wdHMKLSsJIyB0byBtYWtlIHRoZSBjb2RlIGJlbG93IGEgYml0IG1vcmUgY29tcHJl aGVuc2libGUKLSsKLSsJY2FzZSAkdmluZm9fbnVtYmVyIGluCi0rCXllcykKLSsJICBudW1iZXJf bWFqb3I9IiQxIgotKwkgIG51bWJlcl9taW5vcj0iJDIiCi0rCSAgbnVtYmVyX3JldmlzaW9uPSIk MyIKLSsJICAjCi0rCSAgIyBUaGVyZSBhcmUgcmVhbGx5IG9ubHkgdHdvIGtpbmRzIC0tIHRob3Nl IHRoYXQKLSsJICAjIHVzZSB0aGUgY3VycmVudCByZXZpc2lvbiBhcyB0aGUgbWFqb3IgdmVyc2lv bgotKwkgICMgYW5kIHRob3NlIHRoYXQgc3VidHJhY3QgYWdlIGFuZCB1c2UgYWdlIGFzCi0rCSAg IyBhIG1pbm9yIHZlcnNpb24uICBCdXQsIHRoZW4gdGhlcmUgaXMgaXJpeAotKwkgICMgd2hpY2gg aGFzIGFuIGV4dHJhIDEgYWRkZWQganVzdCBmb3IgZnVuCi0rCSAgIwotKwkgIGNhc2UgJHZlcnNp b25fdHlwZSBpbgotKwkgIGRhcndpbnxsaW51eHxvc2Z8d2luZG93c3xub25lKQotKwkgICAgZnVu Y19hcml0aCAkbnVtYmVyX21ham9yICsgJG51bWJlcl9taW5vcgotKwkgICAgY3VycmVudD0kZnVu Y19hcml0aF9yZXN1bHQKLSsJICAgIGFnZT0iJG51bWJlcl9taW5vciIKLSsJICAgIHJldmlzaW9u PSIkbnVtYmVyX3JldmlzaW9uIgotKwkgICAgOzsKLSsJICBmcmVlYnNkLWFvdXR8ZnJlZWJzZC1l bGZ8c3Vub3MpCi0rCSAgICBjdXJyZW50PSIkbnVtYmVyX21ham9yIgotKwkgICAgcmV2aXNpb249 IiRudW1iZXJfbWlub3IiCi0rCSAgICBhZ2U9IjAiCi0rCSAgICA7OwotKwkgIGlyaXh8bm9uc3Rv cHV4KQotKwkgICAgZnVuY19hcml0aCAkbnVtYmVyX21ham9yICsgJG51bWJlcl9taW5vcgotKwkg ICAgY3VycmVudD0kZnVuY19hcml0aF9yZXN1bHQKLSsJICAgIGFnZT0iJG51bWJlcl9taW5vciIK LSsJICAgIHJldmlzaW9uPSIkbnVtYmVyX21pbm9yIgotKwkgICAgbHRfaXJpeF9pbmNyZW1lbnQ9 bm8KLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCW5vKQotKwkgIGN1cnJlbnQ9IiQxIgot KwkgIHJldmlzaW9uPSIkMiIKLSsJICBhZ2U9IiQzIgotKwkgIDs7Ci0rCWVzYWMKLSsKLSsJIyBD aGVjayB0aGF0IGVhY2ggb2YgdGhlIHRoaW5ncyBhcmUgdmFsaWQgbnVtYmVycy4KLSsJY2FzZSAk Y3VycmVudCBpbgotKwkwfFsxLTldfFsxLTldWzAtOV18WzEtOV1bMC05XVswLTldfFsxLTldWzAt OV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldWzAtOV0pIDs7Ci0rCSopCi0rCSAgZnVu Y19lcnJvciAiQ1VSUkVOVCBcYCRjdXJyZW50JyBtdXN0IGJlIGEgbm9ubmVnYXRpdmUgaW50ZWdl ciIKLSsJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCR2aW5mbycgaXMgbm90IHZhbGlkIHZlcnNpb24g aW5mb3JtYXRpb24iCi0rCSAgOzsKLSsJZXNhYwotKwotKwljYXNlICRyZXZpc2lvbiBpbgotKwkw fFsxLTldfFsxLTldWzAtOV18WzEtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldfFsx LTldWzAtOV1bMC05XVswLTldWzAtOV0pIDs7Ci0rCSopCi0rCSAgZnVuY19lcnJvciAiUkVWSVNJ T04gXGAkcmV2aXNpb24nIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIgotKwkgIGZ1bmNf ZmF0YWxfZXJyb3IgIlxgJHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlvbiIK LSsJICA7OwotKwllc2FjCi0rCi0rCWNhc2UgJGFnZSBpbgotKwkwfFsxLTldfFsxLTldWzAtOV18 WzEtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTld WzAtOV0pIDs7Ci0rCSopCi0rCSAgZnVuY19lcnJvciAiQUdFIFxgJGFnZScgbXVzdCBiZSBhIG5v bm5lZ2F0aXZlIGludGVnZXIiCi0rCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkdmluZm8nIGlzIG5v dCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIgotKwkgIDs7Ci0rCWVzYWMKLSsKLSsJaWYgdGVz dCAiJGFnZSIgLWd0ICIkY3VycmVudCI7IHRoZW4KLSsJICBmdW5jX2Vycm9yICJBR0UgXGAkYWdl JyBpcyBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgaW50ZXJmYWNlIG51bWJlciBcYCRjdXJyZW50 JyIKLSsJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCR2aW5mbycgaXMgbm90IHZhbGlkIHZlcnNpb24g aW5mb3JtYXRpb24iCi0rCWZpCi0rCi0rCSMgQ2FsY3VsYXRlIHRoZSB2ZXJzaW9uIHZhcmlhYmxl cy4KLSsJbWFqb3I9Ci0rCXZlcnN1ZmZpeD0KLSsJdmVyc3RyaW5nPQotKwljYXNlICR2ZXJzaW9u X3R5cGUgaW4KLSsJbm9uZSkgOzsKLSsKLSsJZGFyd2luKQotKwkgICMgTGlrZSBMaW51eCwgYnV0 IHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbiBhdmFpbGFibGUgaW4KLSsJICAjIHZlcnN0cmluZyBm b3IgY29kaW5nIGl0IGludG8gdGhlIGxpYnJhcnkgaGVhZGVyCi0rCSAgZnVuY19hcml0aCAkY3Vy cmVudCAtICRhZ2UKLSsJICBtYWpvcj0uJGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgdmVyc3VmZml4 PSIkbWFqb3IuJGFnZS4kcmV2aXNpb24iCi0rCSAgIyBEYXJ3aW4gbGQgZG9lc24ndCBsaWtlIDAg Zm9yIHRoZXNlIG9wdGlvbnMuLi4KLSsJICBmdW5jX2FyaXRoICRjdXJyZW50ICsgMQotKwkgIG1p bm9yX2N1cnJlbnQ9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgeGxjdmVyc3RyaW5nPSIke3dsfS1j b21wYXRpYmlsaXR5X3ZlcnNpb24gJHt3bH0kbWlub3JfY3VycmVudCAke3dsfS1jdXJyZW50X3Zl cnNpb24gJHt3bH0kbWlub3JfY3VycmVudC4kcmV2aXNpb24iCi0rCSAgdmVyc3RyaW5nPSItY29t cGF0aWJpbGl0eV92ZXJzaW9uICRtaW5vcl9jdXJyZW50IC1jdXJyZW50X3ZlcnNpb24gJG1pbm9y X2N1cnJlbnQuJHJldmlzaW9uIgotKwkgIDs7Ci0rCi0rCWZyZWVic2QtYW91dCkKLSsJICBtYWpv cj0iLiRjdXJyZW50IgotKwkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50LiRyZXZpc2lvbiI7Ci0rCSAg OzsKLSsKLSsJZnJlZWJzZC1lbGYpCi0rCSAgbWFqb3I9Ii4kY3VycmVudCIKLSsJICB2ZXJzdWZm aXg9Ii4kY3VycmVudCIKLSsJICA7OwotKwotKwlpcml4IHwgbm9uc3RvcHV4KQotKwkgIGlmIHRl c3QgIlgkbHRfaXJpeF9pbmNyZW1lbnQiID0gIlhubyI7IHRoZW4KLSsJICAgIGZ1bmNfYXJpdGgg JGN1cnJlbnQgLSAkYWdlCi0rCSAgZWxzZQotKwkgICAgZnVuY19hcml0aCAkY3VycmVudCAtICRh Z2UgKyAxCi0rCSAgZmkKLSsJICBtYWpvcj0kZnVuY19hcml0aF9yZXN1bHQKLSsKLSsJICBjYXNl ICR2ZXJzaW9uX3R5cGUgaW4KLSsJICAgIG5vbnN0b3B1eCkgdmVyc3RyaW5nX3ByZWZpeD1ub25z dG9wdXggOzsKLSsJICAgICopICAgICAgICAgdmVyc3RyaW5nX3ByZWZpeD1zZ2kgOzsKLSsJICBl c2FjCi0rCSAgdmVyc3RyaW5nPSIkdmVyc3RyaW5nX3ByZWZpeCRtYWpvci4kcmV2aXNpb24iCi0r Ci0rCSAgIyBBZGQgaW4gYWxsIHRoZSBpbnRlcmZhY2VzIHRoYXQgd2UgYXJlIGNvbXBhdGlibGUg d2l0aC4KLSsJICBsb29wPSRyZXZpc2lvbgotKwkgIHdoaWxlIHRlc3QgIiRsb29wIiAtbmUgMDsg ZG8KLSsJICAgIGZ1bmNfYXJpdGggJHJldmlzaW9uIC0gJGxvb3AKLSsJICAgIGlmYWNlPSRmdW5j X2FyaXRoX3Jlc3VsdAotKwkgICAgZnVuY19hcml0aCAkbG9vcCAtIDEKLSsJICAgIGxvb3A9JGZ1 bmNfYXJpdGhfcmVzdWx0Ci0rCSAgICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmdfcHJlZml4JG1ham9y LiRpZmFjZTokdmVyc3RyaW5nIgotKwkgIGRvbmUKLSsKLSsJICAjIEJlZm9yZSB0aGlzIHBvaW50 LCAkbWFqb3IgbXVzdCBub3QgY29udGFpbiBgLicuCi0rCSAgbWFqb3I9LiRtYWpvcgotKwkgIHZl cnN1ZmZpeD0iJG1ham9yLiRyZXZpc2lvbiIKLSsJICA7OwotKwotKwlsaW51eCkKLSsJICBmdW5j X2FyaXRoICRjdXJyZW50IC0gJGFnZQotKwkgIG1ham9yPS4kZnVuY19hcml0aF9yZXN1bHQKLSsJ ICB2ZXJzdWZmaXg9IiRtYWpvci4kYWdlLiRyZXZpc2lvbiIKLSsJICA7OwotKwotKwlvc2YpCi0r CSAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKLSsJICBtYWpvcj0uJGZ1bmNfYXJpdGhfcmVz dWx0Ci0rCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQuJGFnZS4kcmV2aXNpb24iCi0rCSAgdmVyc3Ry aW5nPSIkY3VycmVudC4kYWdlLiRyZXZpc2lvbiIKLSsKLSsJICAjIEFkZCBpbiBhbGwgdGhlIGlu dGVyZmFjZXMgdGhhdCB3ZSBhcmUgY29tcGF0aWJsZSB3aXRoLgotKwkgIGxvb3A9JGFnZQotKwkg IHdoaWxlIHRlc3QgIiRsb29wIiAtbmUgMDsgZG8KLSsJICAgIGZ1bmNfYXJpdGggJGN1cnJlbnQg LSAkbG9vcAotKwkgICAgaWZhY2U9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgICBmdW5jX2FyaXRo ICRsb29wIC0gMQotKwkgICAgbG9vcD0kZnVuY19hcml0aF9yZXN1bHQKLSsJICAgIHZlcnN0cmlu Zz0iJHZlcnN0cmluZzoke2lmYWNlfS4wIgotKwkgIGRvbmUKLSsKLSsJICAjIE1ha2UgZXhlY3V0 YWJsZXMgZGVwZW5kIG9uIG91ciBjdXJyZW50IHZlcnNpb24uCi0rCSAgdmVyc3RyaW5nPSIkdmVy c3RyaW5nOiR7Y3VycmVudH0uMCIKLSsJICA7OwotKwotKwlxbngpCi0rCSAgbWFqb3I9Ii4kY3Vy cmVudCIKLSsJICB2ZXJzdWZmaXg9Ii4kY3VycmVudCIKLSsJICA7OwotKwotKwlzdW5vcykKLSsJ ICBtYWpvcj0iLiRjdXJyZW50IgotKwkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50LiRyZXZpc2lvbiIK LSsJICA7OwotKwotKwl3aW5kb3dzKQotKwkgICMgVXNlICctJyByYXRoZXIgdGhhbiAnLicsIHNp bmNlIHdlIG9ubHkgd2FudCBvbmUKLSsJICAjIGV4dGVuc2lvbiBvbiBET1MgOC4zIGZpbGVzeXN0 ZW1zLgotKwkgIGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlCi0rCSAgbWFqb3I9JGZ1bmNfYXJp dGhfcmVzdWx0Ci0rCSAgdmVyc3VmZml4PSItJG1ham9yIgotKwkgIDs7Ci0rCi0rCSopCi0rCSAg ZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJ1bmtub3duIGxpYnJhcnkgdmVyc2lvbiB0eXBlIFxg JHZlcnNpb25fdHlwZSciCi0rCSAgOzsKLSsJZXNhYwotKwotKwkjIENsZWFyIHRoZSB2ZXJzaW9u IGluZm8gaWYgd2UgZGVmYXVsdGVkLCBhbmQgdGhleSBzcGVjaWZpZWQgYSByZWxlYXNlLgotKwlp ZiB0ZXN0IC16ICIkdmluZm8iICYmIHRlc3QgLW4gIiRyZWxlYXNlIjsgdGhlbgotKwkgIG1ham9y PQotKwkgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgotKwkgIGRhcndpbikKLSsJICAgICMgd2UgY2Fu J3QgY2hlY2sgZm9yICIwLjAiIGluIGFyY2hpdmVfY21kcyBkdWUgdG8gcXVvdGluZwotKwkgICAg IyBwcm9ibGVtcywgc28gd2UgcmVzZXQgaXQgY29tcGxldGVseQotKwkgICAgdmVyc3RyaW5nPQot KwkgICAgOzsKLSsJICAqKQotKwkgICAgdmVyc3RyaW5nPSIwLjAiCi0rCSAgICA7OwotKwkgIGVz YWMKLSsJICBpZiB0ZXN0ICIkbmVlZF92ZXJzaW9uIiA9IG5vOyB0aGVuCi0rCSAgICB2ZXJzdWZm aXg9Ci0rCSAgZWxzZQotKwkgICAgdmVyc3VmZml4PSIuMC4wIgotKwkgIGZpCi0rCWZpCi0rCi0r CSMgUmVtb3ZlIHZlcnNpb24gaW5mbyBmcm9tIG5hbWUgaWYgdmVyc2lvbmluZyBzaG91bGQgYmUg YXZvaWRlZAotKwlpZiB0ZXN0ICIkYXZvaWRfdmVyc2lvbiIgPSB5ZXMgJiYgdGVzdCAiJG5lZWRf dmVyc2lvbiIgPSBubzsgdGhlbgotKwkgIG1ham9yPQotKwkgIHZlcnN1ZmZpeD0KLSsJICB2ZXJz dHJpbmc9IiIKLSsJZmkKLSsKLSsJIyBDaGVjayB0byBzZWUgaWYgdGhlIGFyY2hpdmUgd2lsbCBo YXZlIHVuZGVmaW5lZCBzeW1ib2xzLgotKwlpZiB0ZXN0ICIkYWxsb3dfdW5kZWZpbmVkIiA9IHll czsgdGhlbgotKwkgIGlmIHRlc3QgIiRhbGxvd191bmRlZmluZWRfZmxhZyIgPSB1bnN1cHBvcnRl ZDsgdGhlbgotKwkgICAgZnVuY193YXJuaW5nICJ1bmRlZmluZWQgc3ltYm9scyBub3QgYWxsb3dl ZCBpbiAkaG9zdCBzaGFyZWQgbGlicmFyaWVzIgotKwkgICAgYnVpbGRfbGlidG9vbF9saWJzPW5v Ci0rCSAgICBidWlsZF9vbGRfbGlicz15ZXMKLSsJICBmaQotKwllbHNlCi0rCSAgIyBEb24ndCBh bGxvdyB1bmRlZmluZWQgc3ltYm9scy4KLSsJICBhbGxvd191bmRlZmluZWRfZmxhZz0iJG5vX3Vu ZGVmaW5lZF9mbGFnIgotKwlmaQotKwotKyAgICAgIGZpCi0rCi0rICAgICAgZnVuY19nZW5lcmF0 ZV9kbHN5bXMgIiRsaWJuYW1lIiAiJGxpYm5hbWUiICJ5ZXMiCi0rICAgICAgbGlib2Jqcz0iJGxp Ym9ianMgJHN5bWZpbGVvYmoiCi0rICAgICAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGli b2Jqcz0KLSsKLSsgICAgICBpZiB0ZXN0ICIkbW9kZSIgIT0gcmVsaW5rOyB0aGVuCi0rCSMgUmVt b3ZlIG91ciBvdXRwdXRzLCBidXQgZG9uJ3QgcmVtb3ZlIG9iamVjdCBmaWxlcyBzaW5jZSB0aGV5 Ci0rCSMgbWF5IGhhdmUgYmVlbiBjcmVhdGVkIHdoZW4gY29tcGlsaW5nIFBJQyBvYmplY3RzLgot KwlyZW1vdmVsaXN0PQotKwl0ZW1wcmVtb3ZlbGlzdD1gJEVDSE8gIiRvdXRwdXRfb2JqZGlyLyoi YAotKwlmb3IgcCBpbiAkdGVtcHJlbW92ZWxpc3Q7IGRvCi0rCSAgY2FzZSAkcCBpbgotKwkgICAg Ki4kb2JqZXh0IHwgKi5nY25vKQotKwkgICAgICAgOzsKLSsJICAgICRvdXRwdXRfb2JqZGlyLyRv dXRwdXRuYW1lIHwgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuKiB8ICRvdXRwdXRfb2JqZGlyLyR7 bGlibmFtZX0ke3JlbGVhc2V9LiopCi0rCSAgICAgICBpZiB0ZXN0ICJYJHByZWNpb3VzX2ZpbGVz X3JlZ2V4IiAhPSAiWCI7IHRoZW4KLSsJCSBpZiAkRUNITyAiJHAiIHwgJEVHUkVQIC1lICIkcHJl Y2lvdXNfZmlsZXNfcmVnZXgiID4vZGV2L251bGwgMj4mMQotKwkJIHRoZW4KLSsJCSAgIGNvbnRp bnVlCi0rCQkgZmkKLSsJICAgICAgIGZpCi0rCSAgICAgICByZW1vdmVsaXN0PSIkcmVtb3ZlbGlz dCAkcCIKLSsJICAgICAgIDs7Ci0rCSAgICAqKSA7OwotKwkgIGVzYWMKLSsJZG9uZQotKwl0ZXN0 IC1uICIkcmVtb3ZlbGlzdCIgJiYgXAotKwkgIGZ1bmNfc2hvd19ldmFsICIke1JNfXIgXCRyZW1v dmVsaXN0IgotKyAgICAgIGZpCi0rCi0rICAgICAgIyBOb3cgc2V0IHRoZSB2YXJpYWJsZXMgZm9y IGJ1aWxkaW5nIG9sZCBsaWJyYXJpZXMuCi0rICAgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJz IiA9IHllcyAmJiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSBjb252ZW5pZW5jZSA7IHRo ZW4KLSsJb2xkbGlicz0iJG9sZGxpYnMgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIK LSsKLSsJIyBUcmFuc2Zvcm0gLmxvIGZpbGVzIHRvIC5vIGZpbGVzLgotKwlvbGRvYmpzPSIkb2Jq cyAiYCRFQ0hPICJYJGxpYm9ianMiIHwgJFNQMk5MIHwgJFhzZWQgLWUgJy9cLicke2xpYmV4dH0n JC9kJyAtZSAiJGxvMm8iIHwgJE5MMlNQYAotKyAgICAgIGZpCi0rCi0rICAgICAgIyBFbGltaW5h dGUgYWxsIHRlbXBvcmFyeSBkaXJlY3Rvcmllcy4KLSsgICAgICAjZm9yIHBhdGggaW4gJG5vdGlu c3RfcGF0aDsgZG8KLSsgICAgICAjCWxpYl9zZWFyY2hfcGF0aD1gJEVDSE8gIlgkbGliX3NlYXJj aF9wYXRoICIgfCAkWHNlZCAtZSAicyUgJHBhdGggJSAlZyJgCi0rICAgICAgIwlkZXBsaWJzPWAk RUNITyAiWCRkZXBsaWJzICIgfCAkWHNlZCAtZSAicyUgLUwkcGF0aCAlICVnImAKLSsgICAgICAj CWRlcGVuZGVuY3lfbGlicz1gJEVDSE8gIlgkZGVwZW5kZW5jeV9saWJzICIgfCAkWHNlZCAtZSAi cyUgLUwkcGF0aCAlICVnImAKLSsgICAgICAjZG9uZQotKwotKyAgICAgIGlmIHRlc3QgLW4gIiR4 cnBhdGgiOyB0aGVuCi0rCSMgSWYgdGhlIHVzZXIgc3BlY2lmaWVkIGFueSBycGF0aCBmbGFncywg dGhlbiBhZGQgdGhlbS4KLSsJdGVtcF94cnBhdGg9Ci0rCWZvciBsaWJkaXIgaW4gJHhycGF0aDsg ZG8KLSsJICB0ZW1wX3hycGF0aD0iJHRlbXBfeHJwYXRoIC1SJGxpYmRpciIKLSsJICBjYXNlICIk ZmluYWxpemVfcnBhdGggIiBpbgotKwkgICoiICRsaWJkaXIgIiopIDs7Ci0rCSAgKikgZmluYWxp emVfcnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCAkbGliZGlyIiA7OwotKwkgIGVzYWMKLSsJZG9uZQot KwlpZiB0ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiAhPSB5ZXMgfHwgdGVzdCAiJGJ1aWxkX29s ZF9saWJzIiA9IHllczsgdGhlbgotKwkgIGRlcGVuZGVuY3lfbGlicz0iJHRlbXBfeHJwYXRoICRk ZXBlbmRlbmN5X2xpYnMiCi0rCWZpCi0rICAgICAgZmkKLSsKLSsgICAgICAjIE1ha2Ugc3VyZSBk bGZpbGVzIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGZpbGVzIHRoYXQgd29uJ3QgYmUgZGxwcmVvcGVu ZWQKLSsgICAgICBvbGRfZGxmaWxlcz0iJGRsZmlsZXMiCi0rICAgICAgZGxmaWxlcz0KLSsgICAg ICBmb3IgbGliIGluICRvbGRfZGxmaWxlczsgZG8KLSsJY2FzZSAiICRkbHByZWZpbGVzICRkbGZp bGVzICIgaW4KLSsJKiIgJGxpYiAiKikgOzsKLSsJKikgZGxmaWxlcz0iJGRsZmlsZXMgJGxpYiIg OzsKLSsJZXNhYwotKyAgICAgIGRvbmUKLSsKLSsgICAgICAjIE1ha2Ugc3VyZSBkbHByZWZpbGVz IGNvbnRhaW5zIG9ubHkgdW5pcXVlIGZpbGVzCi0rICAgICAgb2xkX2RscHJlZmlsZXM9IiRkbHBy ZWZpbGVzIgotKyAgICAgIGRscHJlZmlsZXM9Ci0rICAgICAgZm9yIGxpYiBpbiAkb2xkX2RscHJl ZmlsZXM7IGRvCi0rCWNhc2UgIiRkbHByZWZpbGVzICIgaW4KLSsJKiIgJGxpYiAiKikgOzsKLSsJ KikgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJGxpYiIgOzsKLSsJZXNhYwotKyAgICAgIGRvbmUK LSsKLSsgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgotKwlp ZiB0ZXN0IC1uICIkcnBhdGgiOyB0aGVuCi0rCSAgY2FzZSAkaG9zdCBpbgotKwkgICotKi1jeWd3 aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi0qLWJlb3MqIHwgKi1j ZWdjYyopCi0rCSAgICAjIHRoZXNlIHN5c3RlbXMgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhIGMgbGli cmFyeSAoYXMgc3VjaCkhCi0rCSAgICA7OwotKwkgICotKi1yaGFwc29keSogfCAqLSotZGFyd2lu MS5bMDEyXSkKLSsJICAgICMgUmhhcHNvZHkgQyBsaWJyYXJ5IGlzIGluIHRoZSBTeXN0ZW0gZnJh bWV3b3JrCi0rCSAgICBkZXBsaWJzPSIkZGVwbGlicyBTeXN0ZW0ubHRmcmFtZXdvcmsiCi0rCSAg ICA7OwotKwkgICotKi1uZXRic2QqKQotKwkgICAgIyBEb24ndCBsaW5rIHdpdGggbGliYyB1bnRp bCB0aGUgYS5vdXQgbGQuc28gaXMgZml4ZWQuCi0rCSAgICA7OwotKwkgICotKi1vcGVuYnNkKiB8 ICotKi1mcmVlYnNkKiB8ICotKi1kcmFnb25mbHkqKQotKwkgICAgIyBEbyBub3QgaW5jbHVkZSBs aWJjIGR1ZSB0byB1cyBoYXZpbmcgbGliYy9saWJjX3IuCi0rCSAgICA7OwotKwkgICotKi1zY28z LjJ2NSogfCAqLSotc2NvNXY2KikKLSsJICAgICMgQ2F1c2VzIHByb2JsZW1zIHdpdGggX19jdHlw ZQotKwkgICAgOzsKLSsJICAqLSotc3lzdjQuMnV3MiogfCAqLSotc3lzdjUqIHwgKi0qLXVuaXh3 YXJlKiB8ICotKi1PcGVuVU5JWCopCi0rCSAgICAjIENvbXBpbGVyIGluc2VydHMgbGliYyBpbiB0 aGUgY29ycmVjdCBwbGFjZSBmb3IgdGhyZWFkcyB0byB3b3JrCi0rCSAgICA7OwotKwkgICopCi0r CSAgICAjIEFkZCBsaWJjIHRvIGRlcGxpYnMgb24gYWxsIG90aGVyIHN5c3RlbXMgaWYgbmVjZXNz YXJ5LgotKwkgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbmVlZF9sYyIgPSAieWVzIjsgdGhl bgotKwkgICAgICBkZXBsaWJzPSIkZGVwbGlicyAtbGMiCi0rCSAgICBmaQotKwkgICAgOzsKLSsJ ICBlc2FjCi0rCWZpCi0rCi0rCSMgVHJhbnNmb3JtIGRlcGxpYnMgaW50byBvbmx5IGRlcGxpYnMg dGhhdCBjYW4gYmUgbGlua2VkIGluIHNoYXJlZC4KLSsJbmFtZV9zYXZlPSRuYW1lCi0rCWxpYm5h bWVfc2F2ZT0kbGlibmFtZQotKwlyZWxlYXNlX3NhdmU9JHJlbGVhc2UKLSsJdmVyc3VmZml4X3Nh dmU9JHZlcnN1ZmZpeAotKwltYWpvcl9zYXZlPSRtYWpvcgotKwkjIEknbSBub3Qgc3VyZSBpZiBJ J20gdHJlYXRpbmcgdGhlIHJlbGVhc2UgY29ycmVjdGx5LiAgSSB0aGluawotKwkjIHJlbGVhc2Ug c2hvdWxkIHNob3cgdXAgaW4gdGhlIC1sIChpZSAtbGdtcDUpIHNvIHdlIGRvbid0IHdhbnQgdG8K LSsJIyBhZGQgaXQgaW4gdHdpY2UuICBJcyB0aGF0IGNvcnJlY3Q/Ci0rCXJlbGVhc2U9IiIKLSsJ dmVyc3VmZml4PSIiCi0rCW1ham9yPSIiCi0rCW5ld2RlcGxpYnM9Ci0rCWRyb3BwZWRkZXBzPW5v Ci0rCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCi0rCXBhc3NfYWxsKQotKwkgICMgRG9u J3QgY2hlY2sgZm9yIHNoYXJlZC9zdGF0aWMuICBFdmVyeXRoaW5nIHdvcmtzLgotKwkgICMgVGhp cyBtaWdodCBiZSBhIGxpdHRsZSBuYWl2ZS4gIFdlIG1pZ2h0IHdhbnQgdG8gY2hlY2sKLSsJICAj IHdoZXRoZXIgdGhlIGxpYnJhcnkgZXhpc3RzIG9yIG5vdC4gIEJ1dCB0aGlzIGlzIG9uCi0rCSAg IyBvc2YzICYgb3NmNCBhbmQgSSdtIG5vdCByZWFsbHkgc3VyZS4uLiBKdXN0Ci0rCSAgIyBpbXBs ZW1lbnRpbmcgd2hhdCB3YXMgYWxyZWFkeSB0aGUgYmVoYXZpb3IuCi0rCSAgbmV3ZGVwbGlicz0k ZGVwbGlicwotKwkgIDs7Ci0rCXRlc3RfY29tcGlsZSkKLSsJICAjIFRoaXMgY29kZSBzdHJlc3Nl cyB0aGUgImxpYnJhcmllcyBhcmUgcHJvZ3JhbXMiIHBhcmFkaWdtIHRvIGl0cwotKwkgICMgbGlt aXRzLiBNYXliZSBldmVuIGJyZWFrcyBpdC4gIFdlIGNvbXBpbGUgYSBwcm9ncmFtLCBsaW5raW5n IGl0Ci0rCSAgIyBhZ2FpbnN0IHRoZSBkZXBsaWJzIGFzIGEgcHJveHkgZm9yIHRoZSBsaWJyYXJ5 LiAgVGhlbiB3ZSBjYW4gY2hlY2sKLSsJICAjIHdoZXRoZXIgdGhleSBsaW5rZWQgaW4gc3RhdGlj YWxseSBvciBkeW5hbWljYWxseSB3aXRoIGxkZC4KLSsJICAkb3B0X2RyeV9ydW4gfHwgJFJNIGNv bmZ0ZXN0LmMKLSsJICBjYXQgPiBjb25mdGVzdC5jIDw8RU9GCi0rCSAgaW50IG1haW4oKSB7IHJl dHVybiAwOyB9Ci0rRU9GCi0rCSAgJG9wdF9kcnlfcnVuIHx8ICRSTSBjb25mdGVzdAotKwkgIGlm ICRMVENDICRMVENGTEFHUyAtbyBjb25mdGVzdCBjb25mdGVzdC5jICRkZXBsaWJzOyB0aGVuCi0r CSAgICBsZGRfb3V0cHV0PWBsZGQgY29uZnRlc3RgCi0rCSAgICBmb3IgaSBpbiAkZGVwbGliczsg ZG8KLSsJICAgICAgY2FzZSAkaSBpbgotKwkgICAgICAtbCopCi0rCQlmdW5jX3N0cmlwbmFtZSAt bCAnJyAiJGkiCi0rCQluYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJCWlmIHRlc3QgIlgk YWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4K LSsJCSAgY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCi0rCQkgICoiICRpICIqKQotKwkJ ICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgotKwkJICAgIGk9IiIKLSsJCSAgICA7Owot KwkJICBlc2FjCi0rCQlmaQotKwkJaWYgdGVzdCAtbiAiJGkiIDsgdGhlbgotKwkJICBsaWJuYW1l PWBldmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKLSsJCSAgZGVwbGliX21hdGNoZXM9 YGV2YWwgIlxcJEVDSE8gXCIkbGlicmFyeV9uYW1lc19zcGVjXCIiYAotKwkJICBzZXQgZHVtbXkg JGRlcGxpYl9tYXRjaGVzOyBzaGlmdAotKwkJICBkZXBsaWJfbWF0Y2g9JDEKLSsJCSAgaWYgdGVz dCBgZXhwciAiJGxkZF9vdXRwdXQiIDogIi4qJGRlcGxpYl9tYXRjaCJgIC1uZSAwIDsgdGhlbgot KwkJICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgotKwkJICBlbHNlCi0rCQkgICAgZHJv cHBlZGRlcHM9eWVzCi0rCQkgICAgJEVDSE8KLSsJCSAgICAkRUNITyAiKioqIFdhcm5pbmc6IGR5 bmFtaWMgbGlua2VyIGRvZXMgbm90IGFjY2VwdCBuZWVkZWQgbGlicmFyeSAkaS4iCi0rCQkgICAg JEVDSE8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0 b21hdGljYWxseSBsaW5rIGluIHdoZW4iCi0rCQkgICAgJEVDSE8gIioqKiB5b3UgbGluayB0byB0 aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0rCQkg ICAgJEVDSE8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggSSBiZWxp ZXZlIHlvdSBkbyBub3QgaGF2ZSIKLSsJCSAgICAkRUNITyAiKioqIGJlY2F1c2UgYSB0ZXN0X2Nv bXBpbGUgZGlkIHJldmVhbCB0aGF0IHRoZSBsaW5rZXIgZGlkIG5vdCB1c2UgaXQgZm9yIgotKwkJ ICAgICRFQ0hPICIqKiogaXRzIGR5bmFtaWMgZGVwZW5kZW5jeSBsaXN0IHRoYXQgcHJvZ3JhbXMg Z2V0IHJlc29sdmVkIHdpdGggYXQgcnVudGltZS4iCi0rCQkgIGZpCi0rCQlmaQotKwkJOzsKLSsJ ICAgICAgKikKLSsJCW5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgotKwkJOzsKLSsJICAgICAg ZXNhYwotKwkgICAgZG9uZQotKwkgIGVsc2UKLSsJICAgICMgRXJyb3Igb2NjdXJyZWQgaW4gdGhl IGZpcnN0IGNvbXBpbGUuICBMZXQncyB0cnkgdG8gc2FsdmFnZQotKwkgICAgIyB0aGUgc2l0dWF0 aW9uOiBDb21waWxlIGEgc2VwYXJhdGUgcHJvZ3JhbSBmb3IgZWFjaCBsaWJyYXJ5LgotKwkgICAg Zm9yIGkgaW4gJGRlcGxpYnM7IGRvCi0rCSAgICAgIGNhc2UgJGkgaW4KLSsJICAgICAgLWwqKQot KwkJZnVuY19zdHJpcG5hbWUgLWwgJycgIiRpIgotKwkJbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVz dWx0Ci0rCQkkb3B0X2RyeV9ydW4gfHwgJFJNIGNvbmZ0ZXN0Ci0rCQlpZiAkTFRDQyAkTFRDRkxB R1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAkaTsgdGhlbgotKwkJICBsZGRfb3V0cHV0PWBsZGQg Y29uZnRlc3RgCi0rCQkgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGlj X3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KLSsJCSAgICBjYXNlICIgJHByZWRlcHMgJHBvc3Rk ZXBzICIgaW4KLSsJCSAgICAqIiAkaSAiKikKLSsJCSAgICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBs aWJzICRpIgotKwkJICAgICAgaT0iIgotKwkJICAgICAgOzsKLSsJCSAgICBlc2FjCi0rCQkgIGZp Ci0rCQkgIGlmIHRlc3QgLW4gIiRpIiA7IHRoZW4KLSsJCSAgICBsaWJuYW1lPWBldmFsICJcXCRF Q0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKLSsJCSAgICBkZXBsaWJfbWF0Y2hlcz1gZXZhbCAiXFwk RUNITyBcIiRsaWJyYXJ5X25hbWVzX3NwZWNcIiJgCi0rCQkgICAgc2V0IGR1bW15ICRkZXBsaWJf bWF0Y2hlczsgc2hpZnQKLSsJCSAgICBkZXBsaWJfbWF0Y2g9JDEKLSsJCSAgICBpZiB0ZXN0IGBl eHByICIkbGRkX291dHB1dCIgOiAiLiokZGVwbGliX21hdGNoImAgLW5lIDAgOyB0aGVuCi0rCQkg ICAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKLSsJCSAgICBlbHNlCi0rCQkgICAgICBk cm9wcGVkZGVwcz15ZXMKLSsJCSAgICAgICRFQ0hPCi0rCQkgICAgICAkRUNITyAiKioqIFdhcm5p bmc6IGR5bmFtaWMgbGlua2VyIGRvZXMgbm90IGFjY2VwdCBuZWVkZWQgbGlicmFyeSAkaS4iCi0r CQkgICAgICAkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGli cmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKLSsJCSAgICAgICRFQ0hPICIqKiogeW91 IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2 ZSBhIgotKwkJICAgICAgJEVDSE8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwg d2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIKLSsJCSAgICAgICRFQ0hPICIqKiogYmVj YXVzZSBhIHRlc3RfY29tcGlsZSBkaWQgcmV2ZWFsIHRoYXQgdGhlIGxpbmtlciBkaWQgbm90IHVz ZSB0aGlzIG9uZSIKLSsJCSAgICAgICRFQ0hPICIqKiogYXMgYSBkeW5hbWljIGRlcGVuZGVuY3kg dGhhdCBwcm9ncmFtcyBjYW4gZ2V0IHJlc29sdmVkIHdpdGggYXQgcnVudGltZS4iCi0rCQkgICAg ZmkKLSsJCSAgZmkKLSsJCWVsc2UKLSsJCSAgZHJvcHBlZGRlcHM9eWVzCi0rCQkgICRFQ0hPCi0r CQkgICRFQ0hPICIqKiogV2FybmluZyEgIExpYnJhcnkgJGkgaXMgbmVlZGVkIGJ5IHRoaXMgbGli cmFyeSBidXQgSSB3YXMgbm90IGFibGUgdG8iCi0rCQkgICRFQ0hPICIqKiogbWFrZSBpdCBsaW5r IGluISAgWW91IHdpbGwgcHJvYmFibHkgbmVlZCB0byBpbnN0YWxsIGl0IG9yIHNvbWUiCi0rCQkg ICRFQ0hPICIqKiogbGlicmFyeSB0aGF0IGl0IGRlcGVuZHMgb24gYmVmb3JlIHRoaXMgbGlicmFy eSB3aWxsIGJlIGZ1bGx5IgotKwkJICAkRUNITyAiKioqIGZ1bmN0aW9uYWwuICBJbnN0YWxsaW5n IGl0IGJlZm9yZSBjb250aW51aW5nIHdvdWxkIGJlIGV2ZW4gYmV0dGVyLiIKLSsJCWZpCi0rCQk7 OwotKwkgICAgICAqKQotKwkJbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCi0rCQk7OwotKwkg ICAgICBlc2FjCi0rCSAgICBkb25lCi0rCSAgZmkKLSsJICA7OwotKwlmaWxlX21hZ2ljKikKLSsJ ICBzZXQgZHVtbXkgJGRlcGxpYnNfY2hlY2tfbWV0aG9kOyBzaGlmdAotKwkgIGZpbGVfbWFnaWNf cmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiJDEgXCguKlwpImAKLSsJICBm b3IgYV9kZXBsaWIgaW4gJGRlcGxpYnM7IGRvCi0rCSAgICBjYXNlICRhX2RlcGxpYiBpbgotKwkg ICAgLWwqKQotKwkgICAgICBmdW5jX3N0cmlwbmFtZSAtbCAnJyAiJGFfZGVwbGliIgotKwkgICAg ICBuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICAgICAgaWYgdGVzdCAiWCRhbGxvd19s aWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgotKwkJY2Fz ZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCi0rCQkqIiAkYV9kZXBsaWIgIiopCi0rCQkgIG5l d2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKLSsJCSAgYV9kZXBsaWI9IiIKLSsJCSAg OzsKLSsJCWVzYWMKLSsJICAgICAgZmkKLSsJICAgICAgaWYgdGVzdCAtbiAiJGFfZGVwbGliIiA7 IHRoZW4KLSsJCWxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGlibmFtZV9zcGVjXCIiYAotKwkJ Zm9yIGkgaW4gJGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2Vh cmNoX3BhdGg7IGRvCi0rCQkgIHBvdGVudGlhbF9saWJzPWBscyAkaS8kbGlibmFtZVsuLV0qIDI+ L2Rldi9udWxsYAotKwkJICBmb3IgcG90ZW50X2xpYiBpbiAkcG90ZW50aWFsX2xpYnM7IGRvCi0r CQkgICAgICAjIEZvbGxvdyBzb2Z0IGxpbmtzLgotKwkJICAgICAgaWYgbHMgLWxMZCAiJHBvdGVu dF9saWIiIDI+L2Rldi9udWxsIHwKLSsJCQkgJEdSRVAgIiAtPiAiID4vZGV2L251bGw7IHRoZW4K LSsJCQljb250aW51ZQotKwkJICAgICAgZmkKLSsJCSAgICAgICMgVGhlIHN0YXRlbWVudCBhYm92 ZSB0cmllcyB0byBhdm9pZCBlbnRlcmluZyBhbgotKwkJICAgICAgIyBlbmRsZXNzIGxvb3AgYmVs b3csIGluIGNhc2Ugb2YgY3ljbGljIGxpbmtzLgotKwkJICAgICAgIyBXZSBtaWdodCBzdGlsbCBl bnRlciBhbiBlbmRsZXNzIGxvb3AsIHNpbmNlIGEgbGluawotKwkJICAgICAgIyBsb29wIGNhbiBi ZSBjbG9zZWQgd2hpbGUgd2UgZm9sbG93IGxpbmtzLAotKwkJICAgICAgIyBidXQgc28gd2hhdD8K LSsJCSAgICAgIHBvdGxpYj0iJHBvdGVudF9saWIiCi0rCQkgICAgICB3aGlsZSB0ZXN0IC1oICIk cG90bGliIiAyPi9kZXYvbnVsbDsgZG8KLSsJCQlwb3RsaWJsaW5rPWBscyAtbGQgJHBvdGxpYiB8 ICR7U0VEfSAncy8uKiAtPiAvLydgCi0rCQkJY2FzZSAkcG90bGlibGluayBpbgotKwkJCVtcXC9d KiB8IFtBLVphLXpdOltcXC9dKikgcG90bGliPSIkcG90bGlibGluayI7OwotKwkJCSopIHBvdGxp Yj1gJEVDSE8gIlgkcG90bGliIiB8ICRYc2VkIC1lICdzLFteL10qJCwsJ2AiJHBvdGxpYmxpbmsi OzsKLSsJCQllc2FjCi0rCQkgICAgICBkb25lCi0rCQkgICAgICBpZiBldmFsICRmaWxlX21hZ2lj X2NtZCBcIlwkcG90bGliXCIgMj4vZGV2L251bGwgfAotKwkJCSAkU0VEIC1lIDEwcSB8Ci0rCQkJ ICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCi0rCQkJbmV3ZGVw bGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgotKwkJCWFfZGVwbGliPSIiCi0rCQkJYnJlYWsg MgotKwkJICAgICAgZmkKLSsJCSAgZG9uZQotKwkJZG9uZQotKwkgICAgICBmaQotKwkgICAgICBp ZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgotKwkJZHJvcHBlZGRlcHM9eWVzCi0rCQkkRUNI TwotKwkJJEVDSE8gIioqKiBXYXJuaW5nOiBsaW5rZXIgcGF0aCBkb2VzIG5vdCBoYXZlIHJlYWwg ZmlsZSBmb3IgbGlicmFyeSAkYV9kZXBsaWIuIgotKwkJJEVDSE8gIioqKiBJIGhhdmUgdGhlIGNh cGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4i Ci0rCQkkRUNITyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5 IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKLSsJCSRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2Yg dGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCi0rCQkkRUNITyAi KioqIGJlY2F1c2UgSSBkaWQgY2hlY2sgdGhlIGxpbmtlciBwYXRoIGxvb2tpbmcgZm9yIGEgZmls ZSBzdGFydGluZyIKLSsJCWlmIHRlc3QgLXogIiRwb3RsaWIiIDsgdGhlbgotKwkJICAkRUNITyAi KioqIHdpdGggJGxpYm5hbWUgYnV0IG5vIGNhbmRpZGF0ZXMgd2VyZSBmb3VuZC4gKC4uLmZvciBm aWxlIG1hZ2ljIHRlc3QpIgotKwkJZWxzZQotKwkJICAkRUNITyAiKioqIHdpdGggJGxpYm5hbWUg YW5kIG5vbmUgb2YgdGhlIGNhbmRpZGF0ZXMgcGFzc2VkIGEgZmlsZSBmb3JtYXQgdGVzdCIKLSsJ CSAgJEVDSE8gIioqKiB1c2luZyBhIGZpbGUgbWFnaWMuIExhc3QgZmlsZSBjaGVja2VkOiAkcG90 bGliIgotKwkJZmkKLSsJICAgICAgZmkKLSsJICAgICAgOzsKLSsJICAgICopCi0rCSAgICAgICMg QWRkIGEgLUwgYXJndW1lbnQuCi0rCSAgICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2Rl cGxpYiIKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICBkb25lICMgR29uZSB0aHJvdWdoIGFs bCBkZXBsaWJzLgotKwkgIDs7Ci0rCW1hdGNoX3BhdHRlcm4qKQotKwkgIHNldCBkdW1teSAkZGVw bGlic19jaGVja19tZXRob2Q7IHNoaWZ0Ci0rCSAgbWF0Y2hfcGF0dGVybl9yZWdleD1gZXhwciAi JGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMSBcKC4qXCkiYAotKwkgIGZvciBhX2RlcGxpYiBp biAkZGVwbGliczsgZG8KLSsJICAgIGNhc2UgJGFfZGVwbGliIGluCi0rCSAgICAtbCopCi0rCSAg ICAgIGZ1bmNfc3RyaXBuYW1lIC1sICcnICIkYV9kZXBsaWIiCi0rCSAgICAgIG5hbWU9JGZ1bmNf c3RyaXBuYW1lX3Jlc3VsdAotKwkgICAgICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193 aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCi0rCQljYXNlICIgJHByZWRlcHMg JHBvc3RkZXBzICIgaW4KLSsJCSoiICRhX2RlcGxpYiAiKikKLSsJCSAgbmV3ZGVwbGlicz0iJG5l d2RlcGxpYnMgJGFfZGVwbGliIgotKwkJICBhX2RlcGxpYj0iIgotKwkJICA7OwotKwkJZXNhYwot KwkgICAgICBmaQotKwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgotKwkJbGli bmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCi0rCQlmb3IgaSBpbiAkbGli X3NlYXJjaF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aDsgZG8K LSsJCSAgcG90ZW50aWFsX2xpYnM9YGxzICRpLyRsaWJuYW1lWy4tXSogMj4vZGV2L251bGxgCi0r CQkgIGZvciBwb3RlbnRfbGliIGluICRwb3RlbnRpYWxfbGliczsgZG8KLSsJCSAgICBwb3RsaWI9 IiRwb3RlbnRfbGliIiAjIHNlZSBzeW1saW5rLWNoZWNrIGFib3ZlIGluIGZpbGVfbWFnaWMgdGVz dAotKwkJICAgIGlmIGV2YWwgIlwkRUNITyBcIlgkcG90ZW50X2xpYlwiIiAyPi9kZXYvbnVsbCB8 ICRYc2VkIC1lIDEwcSB8IFwKLSsJCSAgICAgICAkRUdSRVAgIiRtYXRjaF9wYXR0ZXJuX3JlZ2V4 IiA+IC9kZXYvbnVsbDsgdGhlbgotKwkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFf ZGVwbGliIgotKwkJICAgICAgYV9kZXBsaWI9IiIKLSsJCSAgICAgIGJyZWFrIDIKLSsJCSAgICBm aQotKwkJICBkb25lCi0rCQlkb25lCi0rCSAgICAgIGZpCi0rCSAgICAgIGlmIHRlc3QgLW4gIiRh X2RlcGxpYiIgOyB0aGVuCi0rCQlkcm9wcGVkZGVwcz15ZXMKLSsJCSRFQ0hPCi0rCQkkRUNITyAi KioqIFdhcm5pbmc6IGxpbmtlciBwYXRoIGRvZXMgbm90IGhhdmUgcmVhbCBmaWxlIGZvciBsaWJy YXJ5ICRhX2RlcGxpYi4iCi0rCQkkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBt YWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKLSsJCSRFQ0hPICIq KiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5 b3UgaGF2ZSBhIgotKwkJJEVDSE8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwg d2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIKLSsJCSRFQ0hPICIqKiogYmVjYXVzZSBJ IGRpZCBjaGVjayB0aGUgbGlua2VyIHBhdGggbG9va2luZyBmb3IgYSBmaWxlIHN0YXJ0aW5nIgot KwkJaWYgdGVzdCAteiAiJHBvdGxpYiIgOyB0aGVuCi0rCQkgICRFQ0hPICIqKiogd2l0aCAkbGli bmFtZSBidXQgbm8gY2FuZGlkYXRlcyB3ZXJlIGZvdW5kLiAoLi4uZm9yIHJlZ2V4IHBhdHRlcm4g dGVzdCkiCi0rCQllbHNlCi0rCQkgICRFQ0hPICIqKiogd2l0aCAkbGlibmFtZSBhbmQgbm9uZSBv ZiB0aGUgY2FuZGlkYXRlcyBwYXNzZWQgYSBmaWxlIGZvcm1hdCB0ZXN0IgotKwkJICAkRUNITyAi KioqIHVzaW5nIGEgcmVnZXggcGF0dGVybi4gTGFzdCBmaWxlIGNoZWNrZWQ6ICRwb3RsaWIiCi0r CQlmaQotKwkgICAgICBmaQotKwkgICAgICA7OwotKwkgICAgKikKLSsJICAgICAgIyBBZGQgYSAt TCBhcmd1bWVudC4KLSsJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgot KwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgIGRvbmUgIyBHb25lIHRocm91Z2ggYWxsIGRlcGxp YnMuCi0rCSAgOzsKLSsJbm9uZSB8IHVua25vd24gfCAqKQotKwkgIG5ld2RlcGxpYnM9IiIKLSsJ ICB0bXBfZGVwbGlicz1gJEVDSE8gIlggJGRlcGxpYnMiIHwgJFhzZWQgXAotKwkgICAgICAtZSAn cy8gLWxjJC8vJyAtZSAncy8gLVtMUl1bXiBdKi8vZydgCi0rCSAgaWYgdGVzdCAiWCRhbGxvd19s aWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgotKwkgICAg Zm9yIGkgaW4gJHByZWRlcHMgJHBvc3RkZXBzIDsgZG8KLSsJICAgICAgIyBjYW4ndCB1c2UgWHNl ZCBiZWxvdywgYmVjYXVzZSAkaSBtaWdodCBjb250YWluICcvJwotKwkgICAgICB0bXBfZGVwbGli cz1gJEVDSE8gIlggJHRtcF9kZXBsaWJzIiB8ICRYc2VkIC1lICJzLCRpLCwiYAotKwkgICAgZG9u ZQotKwkgIGZpCi0rCSAgaWYgJEVDSE8gIlggJHRtcF9kZXBsaWJzIiB8ICRYc2VkIC1lICdzL1sJ IF0vL2cnIHwKLSsJICAgICAkR1JFUCAuID4vZGV2L251bGw7IHRoZW4KLSsJICAgICRFQ0hPCi0r CSAgICBpZiB0ZXN0ICJYJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA9ICJYbm9uZSI7IHRoZW4KLSsJ ICAgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUg bm90IHN1cHBvcnRlZCBpbiB0aGlzIHBsYXRmb3JtLiIKLSsJICAgIGVsc2UKLSsJICAgICAgJEVD SE8gIioqKiBXYXJuaW5nOiBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUgbm90IGtub3du IHRvIGJlIHN1cHBvcnRlZC4iCi0rCSAgICBmaQotKwkgICAgJEVDSE8gIioqKiBBbGwgZGVjbGFy ZWQgaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIGJlaW5nIGRyb3BwZWQuIgotKwkgICAg ZHJvcHBlZGRlcHM9eWVzCi0rCSAgZmkKLSsJICA7OwotKwllc2FjCi0rCXZlcnN1ZmZpeD0kdmVy c3VmZml4X3NhdmUKLSsJbWFqb3I9JG1ham9yX3NhdmUKLSsJcmVsZWFzZT0kcmVsZWFzZV9zYXZl Ci0rCWxpYm5hbWU9JGxpYm5hbWVfc2F2ZQotKwluYW1lPSRuYW1lX3NhdmUKLSsKLSsJY2FzZSAk aG9zdCBpbgotKwkqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCi0rCSAgIyBPbiBS aGFwc29keSByZXBsYWNlIHRoZSBDIGxpYnJhcnkgd2l0aCB0aGUgU3lzdGVtIGZyYW1ld29yawot KwkgIG5ld2RlcGxpYnM9YCRFQ0hPICJYICRuZXdkZXBsaWJzIiB8ICRYc2VkIC1lICdzLyAtbGMg LyBTeXN0ZW0ubHRmcmFtZXdvcmsgLydgCi0rCSAgOzsKLSsJZXNhYwotKwotKwlpZiB0ZXN0ICIk ZHJvcHBlZGRlcHMiID0geWVzOyB0aGVuCi0rCSAgaWYgdGVzdCAiJG1vZHVsZSIgPSB5ZXM7IHRo ZW4KLSsJICAgICRFQ0hPCi0rCSAgICAkRUNITyAiKioqIFdhcm5pbmc6IGxpYnRvb2wgY291bGQg bm90IHNhdGlzZnkgYWxsIGRlY2xhcmVkIGludGVyLWxpYnJhcnkiCi0rCSAgICAkRUNITyAiKioq IGRlcGVuZGVuY2llcyBvZiBtb2R1bGUgJGxpYm5hbWUuICBUaGVyZWZvcmUsIGxpYnRvb2wgd2ls bCBjcmVhdGUiCi0rCSAgICAkRUNITyAiKioqIGEgc3RhdGljIG1vZHVsZSwgdGhhdCBzaG91bGQg d29yayBhcyBsb25nIGFzIHRoZSBkbG9wZW5pbmciCi0rCSAgICAkRUNITyAiKioqIGFwcGxpY2F0 aW9uIGlzIGxpbmtlZCB3aXRoIHRoZSAtZGxvcGVuIGZsYWcuIgotKwkgICAgaWYgdGVzdCAteiAi JGdsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KLSsJICAgICAgJEVDSE8KLSsJICAgICAgJEVDSE8g IioqKiBIb3dldmVyLCB0aGlzIHdvdWxkIG9ubHkgd29yayBpZiBsaWJ0b29sIHdhcyBhYmxlIHRv IGV4dHJhY3Qgc3ltYm9sIgotKwkgICAgICAkRUNITyAiKioqIGxpc3RzIGZyb20gYSBwcm9ncmFt LCB1c2luZyBcYG5tJyBvciBlcXVpdmFsZW50LCBidXQgbGlidG9vbCBjb3VsZCIKLSsJICAgICAg JEVDSE8gIioqKiBub3QgZmluZCBzdWNoIGEgcHJvZ3JhbS4gIFNvLCB0aGlzIG1vZHVsZSBpcyBw cm9iYWJseSB1c2VsZXNzLiIKLSsJICAgICAgJEVDSE8gIioqKiBcYG5tJyBmcm9tIEdOVSBiaW51 dGlscyBhbmQgYSBmdWxsIHJlYnVpbGQgbWF5IGhlbHAuIgotKwkgICAgZmkKLSsJICAgIGlmIHRl c3QgIiRidWlsZF9vbGRfbGlicyIgPSBubzsgdGhlbgotKwkgICAgICBvbGRsaWJzPSIkb3V0cHV0 X29iamRpci8kbGlibmFtZS4kbGliZXh0IgotKwkgICAgICBidWlsZF9saWJ0b29sX2xpYnM9bW9k dWxlCi0rCSAgICAgIGJ1aWxkX29sZF9saWJzPXllcwotKwkgICAgZWxzZQotKwkgICAgICBidWls ZF9saWJ0b29sX2xpYnM9bm8KLSsJICAgIGZpCi0rCSAgZWxzZQotKwkgICAgJEVDSE8gIioqKiBU aGUgaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgdGhhdCBoYXZlIGJlZW4gZHJvcHBlZCBoZXJl IHdpbGwgYmUiCi0rCSAgICAkRUNITyAiKioqIGF1dG9tYXRpY2FsbHkgYWRkZWQgd2hlbmV2ZXIg YSBwcm9ncmFtIGlzIGxpbmtlZCB3aXRoIHRoaXMgbGlicmFyeSIKLSsJICAgICRFQ0hPICIqKiog b3IgaXMgZGVjbGFyZWQgdG8gLWRsb3BlbiBpdC4iCi0rCi0rCSAgICBpZiB0ZXN0ICIkYWxsb3df dW5kZWZpbmVkIiA9IG5vOyB0aGVuCi0rCSAgICAgICRFQ0hPCi0rCSAgICAgICRFQ0hPICIqKiog U2luY2UgdGhpcyBsaWJyYXJ5IG11c3Qgbm90IGNvbnRhaW4gdW5kZWZpbmVkIHN5bWJvbHMsIgot KwkgICAgICAkRUNITyAiKioqIGJlY2F1c2UgZWl0aGVyIHRoZSBwbGF0Zm9ybSBkb2VzIG5vdCBz dXBwb3J0IHRoZW0gb3IiCi0rCSAgICAgICRFQ0hPICIqKiogaXQgd2FzIGV4cGxpY2l0bHkgcmVx dWVzdGVkIHdpdGggLW5vLXVuZGVmaW5lZCwiCi0rCSAgICAgICRFQ0hPICIqKiogbGlidG9vbCB3 aWxsIG9ubHkgY3JlYXRlIGEgc3RhdGljIHZlcnNpb24gb2YgaXQuIgotKwkgICAgICBpZiB0ZXN0 ICIkYnVpbGRfb2xkX2xpYnMiID0gbm87IHRoZW4KLSsJCW9sZGxpYnM9IiRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLiRsaWJleHQiCi0rCQlidWlsZF9saWJ0b29sX2xpYnM9bW9kdWxlCi0rCQlidWls ZF9vbGRfbGlicz15ZXMKLSsJICAgICAgZWxzZQotKwkJYnVpbGRfbGlidG9vbF9saWJzPW5vCi0r CSAgICAgIGZpCi0rCSAgICBmaQotKwkgIGZpCi0rCWZpCi0rCSMgRG9uZSBjaGVja2luZyBkZXBs aWJzIQotKwlkZXBsaWJzPSRuZXdkZXBsaWJzCi0rICAgICAgZmkKLSsgICAgICAjIFRpbWUgdG8g Y2hhbmdlIGFsbCBvdXIgImZvby5sdGZyYW1ld29yayIgc3R1ZmYgYmFjayB0byAiLWZyYW1ld29y ayBmb28iCi0rICAgICAgY2FzZSAkaG9zdCBpbgotKwkqLSotZGFyd2luKikKLSsJICBuZXdkZXBs aWJzPWAkRUNITyAiWCAkbmV3ZGVwbGlicyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZy YW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKLSsJICBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFn cz1gJEVDSE8gIlggJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzIiB8ICRYc2VkIC1lICdzJSBc KFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAotKwkgIGRlcGxpYnM9YCRF Q0hPICJYICRkZXBsaWJzIiB8ICRYc2VkIC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAt ZnJhbWV3b3JrIFwxJWcnYAotKwkgIDs7Ci0rICAgICAgZXNhYwotKwotKyAgICAgICMgbW92ZSBs aWJyYXJ5IHNlYXJjaCBwYXRocyB0aGF0IGNvaW5jaWRlIHdpdGggcGF0aHMgdG8gbm90IHlldAot KyAgICAgICMgaW5zdGFsbGVkIGxpYnJhcmllcyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaWJy YXJ5IHNlYXJjaCBsaXN0Ci0rICAgICAgbmV3X2xpYnM9Ci0rICAgICAgZm9yIHBhdGggaW4gJG5v dGluc3RfcGF0aDsgZG8KLSsJY2FzZSAiICRuZXdfbGlicyAiIGluCi0rCSoiIC1MJHBhdGgvJG9i amRpciAiKikgOzsKLSsJKikKLSsJICBjYXNlICIgJGRlcGxpYnMgIiBpbgotKwkgICoiIC1MJHBh dGgvJG9iamRpciAiKikKLSsJICAgIG5ld19saWJzPSIkbmV3X2xpYnMgLUwkcGF0aC8kb2JqZGly IiA7OwotKwkgIGVzYWMKLSsJICA7OwotKwllc2FjCi0rICAgICAgZG9uZQotKyAgICAgIGZvciBk ZXBsaWIgaW4gJGRlcGxpYnM7IGRvCi0rCWNhc2UgJGRlcGxpYiBpbgotKwktTCopCi0rCSAgY2Fz ZSAiICRuZXdfbGlicyAiIGluCi0rCSAgKiIgJGRlcGxpYiAiKikgOzsKLSsJICAqKSBuZXdfbGli cz0iJG5ld19saWJzICRkZXBsaWIiIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCSopIG5ld19saWJz PSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKLSsJZXNhYwotKyAgICAgIGRvbmUKLSsgICAgICBkZXBs aWJzPSIkbmV3X2xpYnMiCi0rCi0rICAgICAgIyBBbGwgdGhlIGxpYnJhcnktc3BlY2lmaWMgdmFy aWFibGVzIChpbnN0YWxsX2xpYmRpciBpcyBzZXQgYWJvdmUpLgotKyAgICAgIGxpYnJhcnlfbmFt ZXM9Ci0rICAgICAgb2xkX2xpYnJhcnk9Ci0rICAgICAgZGxuYW1lPQotKwotKyAgICAgICMgVGVz dCBhZ2Fpbiwgd2UgbWF5IGhhdmUgZGVjaWRlZCBub3QgdG8gYnVpbGQgaXQgYW55IG1vcmUKLSsg ICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgotKwlpZiB0ZXN0 ICIkaGFyZGNvZGVfaW50b19saWJzIiA9IHllczsgdGhlbgotKwkgICMgSGFyZGNvZGUgdGhlIGxp YnJhcnkgcGF0aHMKLSsJICBoYXJkY29kZV9saWJkaXJzPQotKwkgIGRlcF9ycGF0aD0KLSsJICBy cGF0aD0iJGZpbmFsaXplX3JwYXRoIgotKwkgIHRlc3QgIiRtb2RlIiAhPSByZWxpbmsgJiYgcnBh dGg9IiRjb21waWxlX3JwYXRoJHJwYXRoIgotKwkgIGZvciBsaWJkaXIgaW4gJHJwYXRoOyBkbwot KwkgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCi0rCSAg ICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhlbgotKwkJaWYg dGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0rCQkgIGhhcmRjb2RlX2xpYmRpcnM9 IiRsaWJkaXIiCi0rCQllbHNlCi0rCQkgICMgSnVzdCBhY2N1bXVsYXRlIHRoZSB1bmlxdWUgbGli ZGlycy4KLSsJCSAgY2FzZSAkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRoYXJkY29kZV9saWJk aXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IgaW4KLSsJCSAgKiIkaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIqKQotKwkJICAgIDs7 Ci0rCQkgICopCi0rCQkgICAgaGFyZGNvZGVfbGliZGlycz0iJGhhcmRjb2RlX2xpYmRpcnMkaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCi0rCQkgICAgOzsKLSsJCSAgZXNhYwotKwkJ ZmkKLSsJICAgICAgZWxzZQotKwkJZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNcIgotKwkJZGVwX3JwYXRoPSIkZGVwX3JwYXRoICRmbGFnIgotKwkgICAgICBmaQotKwkgICAg ZWxpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCi0rCSAgICAgIGNhc2UgIiRwZXJtX3Jw YXRoICIgaW4KLSsJICAgICAgKiIgJGxpYmRpciAiKikgOzsKLSsJICAgICAgKikgcGVybV9ycGF0 aD0iJHBlcm1fcnBhdGggJGxpYmRpciIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZmkKLSsJICBk b25lCi0rCSAgIyBTdWJzdGl0dXRlIHRoZSBoYXJkY29kZWQgbGliZGlycyBpbnRvIHRoZSBycGF0 aC4KLSsJICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIgJiYKLSsJICAg ICB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KLSsJICAgIGxpYmRpcj0iJGhhcmRj b2RlX2xpYmRpcnMiCi0rCSAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19sZCI7IHRoZW4KLSsJICAgICAgZXZhbCBkZXBfcnBhdGg9XCIkaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY19sZFwiCi0rCSAgICBlbHNlCi0rCSAgICAgIGV2YWwgZGVwX3JwYXRoPVwiJGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNcIgotKwkgICAgZmkKLSsJICBmaQotKwkgIGlmIHRlc3QgLW4g IiRydW5wYXRoX3ZhciIgJiYgdGVzdCAtbiAiJHBlcm1fcnBhdGgiOyB0aGVuCi0rCSAgICAjIFdl IHNob3VsZCBzZXQgdGhlIHJ1bnBhdGhfdmFyLgotKwkgICAgcnBhdGg9Ci0rCSAgICBmb3IgZGly IGluICRwZXJtX3JwYXRoOyBkbwotKwkgICAgICBycGF0aD0iJHJwYXRoJGRpcjoiCi0rCSAgICBk b25lCi0rCSAgICBldmFsICIkcnVucGF0aF92YXI9JyRycGF0aFwkJHJ1bnBhdGhfdmFyJzsgZXhw b3J0ICRydW5wYXRoX3ZhciIKLSsJICBmaQotKwkgIHRlc3QgLW4gIiRkZXBfcnBhdGgiICYmIGRl cGxpYnM9IiRkZXBfcnBhdGggJGRlcGxpYnMiCi0rCWZpCi0rCi0rCXNobGlicGF0aD0iJGZpbmFs aXplX3NobGlicGF0aCIKLSsJdGVzdCAiJG1vZGUiICE9IHJlbGluayAmJiBzaGxpYnBhdGg9IiRj b21waWxlX3NobGlicGF0aCRzaGxpYnBhdGgiCi0rCWlmIHRlc3QgLW4gIiRzaGxpYnBhdGgiOyB0 aGVuCi0rCSAgZXZhbCAiJHNobGlicGF0aF92YXI9JyRzaGxpYnBhdGhcJCRzaGxpYnBhdGhfdmFy JzsgZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgotKwlmaQotKwotKwkjIEdldCB0aGUgcmVhbCBhbmQg bGluayBuYW1lcyBvZiB0aGUgbGlicmFyeS4KLSsJZXZhbCBzaGFyZWRfZXh0PVwiJHNocmV4dF9j bWRzXCIKLSsJZXZhbCBsaWJyYXJ5X25hbWVzPVwiJGxpYnJhcnlfbmFtZXNfc3BlY1wiCi0rCXNl dCBkdW1teSAkbGlicmFyeV9uYW1lcwotKwlzaGlmdAotKwlyZWFsbmFtZT0iJDEiCi0rCXNoaWZ0 Ci0rCi0rCWlmIHRlc3QgLW4gIiRzb25hbWVfc3BlYyI7IHRoZW4KLSsJICBldmFsIHNvbmFtZT1c IiRzb25hbWVfc3BlY1wiCi0rCWVsc2UKLSsJICBzb25hbWU9IiRyZWFsbmFtZSIKLSsJZmkKLSsJ aWYgdGVzdCAteiAiJGRsbmFtZSI7IHRoZW4KLSsJICBkbG5hbWU9JHNvbmFtZQotKwlmaQotKwot KwlsaWI9IiRvdXRwdXRfb2JqZGlyLyRyZWFsbmFtZSIKLSsJbGlua25hbWVzPQotKwlmb3IgbGlu awotKwlkbwotKwkgIGxpbmtuYW1lcz0iJGxpbmtuYW1lcyAkbGluayIKLSsJZG9uZQotKwotKwkj IFVzZSBzdGFuZGFyZCBvYmplY3RzIGlmIHRoZXkgYXJlIHBpYwotKwl0ZXN0IC16ICIkcGljX2Zs YWciICYmIGxpYm9ianM9YCRFQ0hPICJYJGxpYm9ianMiIHwgJFNQMk5MIHwgJFhzZWQgLWUgIiRs bzJvIiB8ICROTDJTUGAKLSsJdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KLSsK LSsJZGVsZmlsZXM9Ci0rCWlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAi JGluY2x1ZGVfZXhwc3ltcyI7IHRoZW4KLSsJICAkb3B0X2RyeV9ydW4gfHwgY3AgIiRleHBvcnRf c3ltYm9scyIgIiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnVleHAiCi0rCSAgZXhwb3J0X3N5bWJv bHM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnVleHAiCi0rCSAgZGVsZmlsZXM9IiRkZWxmaWxl cyAkZXhwb3J0X3N5bWJvbHMiCi0rCWZpCi0rCi0rCW9yaWdfZXhwb3J0X3N5bWJvbHM9Ci0rCWNh c2UgJGhvc3Rfb3MgaW4KLSsJY3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKLSsJICBpZiB0ZXN0 IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLXogIiRleHBvcnRfc3ltYm9sc19yZWdleCI7 IHRoZW4KLSsJICAgICMgZXhwb3J0aW5nIHVzaW5nIHVzZXIgc3VwcGxpZWQgc3ltZmlsZQotKwkg ICAgaWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiICE9IHhFWFBPUlRTOyB0aGVu Ci0rCSAgICAgICMgYW5kIGl0J3MgTk9UIGFscmVhZHkgYSAuZGVmIGZpbGUuIE11c3QgZmlndXJl IG91dAotKwkgICAgICAjIHdoaWNoIG9mIHRoZSBnaXZlbiBzeW1ib2xzIGFyZSBkYXRhIHN5bWJv bHMgYW5kIHRhZwotKwkgICAgICAjIHRoZW0gYXMgc3VjaC4gU28sIHRyaWdnZXIgdXNlIG9mIGV4 cG9ydF9zeW1ib2xzX2NtZHMuCi0rCSAgICAgICMgZXhwb3J0X3N5bWJvbHMgZ2V0cyByZWFzc2ln bmVkIGluc2lkZSB0aGUgInByZXBhcmUKLSsJICAgICAgIyB0aGUgbGlzdCBvZiBleHBvcnRlZCBz eW1ib2xzIiBpZiBzdGF0ZW1lbnQsIHNvIHRoZQotKwkgICAgICAjIGluY2x1ZGVfZXhwc3ltcyBs b2dpYyBzdGlsbCB3b3Jrcy4KLSsJICAgICAgb3JpZ19leHBvcnRfc3ltYm9scz0iJGV4cG9ydF9z eW1ib2xzIgotKwkgICAgICBleHBvcnRfc3ltYm9scz0KLSsJICAgICAgYWx3YXlzX2V4cG9ydF9z eW1ib2xzPXllcwotKwkgICAgZmkKLSsJICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsKLSsJIyBQcmVw YXJlIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMKLSsJaWYgdGVzdCAteiAiJGV4cG9ydF9z eW1ib2xzIjsgdGhlbgotKwkgIGlmIHRlc3QgIiRhbHdheXNfZXhwb3J0X3N5bWJvbHMiID0geWVz IHx8IHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCI7IHRoZW4KLSsJICAgIGZ1bmNfdmVy Ym9zZSAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYSciCi0rCSAgICBl eHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZXhwIgotKwkgICAgJG9wdF9k cnlfcnVuIHx8ICRSTSAkZXhwb3J0X3N5bWJvbHMKLSsJICAgIGNtZHM9JGV4cG9ydF9zeW1ib2xz X2NtZHMKLSsJICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JwotKwkgICAgZm9yIGNtZCBpbiAk Y21kczsgZG8KLSsJICAgICAgSUZTPSIkc2F2ZV9pZnMiCi0rCSAgICAgIGV2YWwgY21kPVwiJGNt ZFwiCi0rCSAgICAgIGZ1bmNfbGVuICIgJGNtZCIKLSsJICAgICAgbGVuPSRmdW5jX2xlbl9yZXN1 bHQKLSsJICAgICAgaWYgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iIHx8IHRlc3QgIiRt YXhfY21kX2xlbiIgLWxlIC0xOyB0aGVuCi0rCQlmdW5jX3Nob3dfZXZhbCAiJGNtZCIgJ2V4aXQg JD8nCi0rCQlza2lwcGVkX2V4cG9ydD1mYWxzZQotKwkgICAgICBlbHNlCi0rCQkjIFRoZSBjb21t YW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8gZXhlY3V0ZSBpbiBvbmUgc3RlcC4KLSsJCWZ1bmNfdmVy Ym9zZSAidXNpbmcgcmVsb2FkYWJsZSBvYmplY3QgZmlsZSBmb3IgZXhwb3J0IGxpc3QuLi4iCi0r CQlza2lwcGVkX2V4cG9ydD06Ci0rCQkjIEJyZWFrIG91dCBlYXJseSwgb3RoZXJ3aXNlIHNraXBw ZWRfZXhwb3J0IG1heSBiZQotKwkJIyBzZXQgdG8gZmFsc2UgYnkgYSBsYXRlciBidXQgc2hvcnRl ciBjbWQuCi0rCQlicmVhawotKwkgICAgICBmaQotKwkgICAgZG9uZQotKwkgICAgSUZTPSIkc2F2 ZV9pZnMiCi0rCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICYmIHRlc3Qg Ilgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiI7IHRoZW4KLSsJICAgICAgZnVuY19zaG93X2V2YWwg JyRFR1JFUCAtZSAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IiAiJGV4cG9ydF9zeW1ib2xzIiA+ICIk e2V4cG9ydF9zeW1ib2xzfVQiJwotKwkgICAgICBmdW5jX3Nob3dfZXZhbCAnJE1WICIke2V4cG9y dF9zeW1ib2xzfVQiICIkZXhwb3J0X3N5bWJvbHMiJwotKwkgICAgZmkKLSsJICBmaQotKwlmaQot KwotKwlpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRpbmNsdWRlX2V4 cHN5bXMiOyB0aGVuCi0rCSAgdG1wX2V4cG9ydF9zeW1ib2xzPSIkZXhwb3J0X3N5bWJvbHMiCi0r CSAgdGVzdCAtbiAiJG9yaWdfZXhwb3J0X3N5bWJvbHMiICYmIHRtcF9leHBvcnRfc3ltYm9scz0i JG9yaWdfZXhwb3J0X3N5bWJvbHMiCi0rCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgJyRFQ0hPICJY JGluY2x1ZGVfZXhwc3ltcyIgfCAkWHNlZCB8ICRTUDJOTCA+PiAiJHRtcF9leHBvcnRfc3ltYm9s cyInCi0rCWZpCi0rCi0rCWlmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiIgJiYgdGVz dCAtbiAiJG9yaWdfZXhwb3J0X3N5bWJvbHMiOyB0aGVuCi0rCSAgIyBUaGUgZ2l2ZW4gZXhwb3J0 c19zeW1ib2xzIGZpbGUgaGFzIHRvIGJlIGZpbHRlcmVkLCBzbyBmaWx0ZXIgaXQuCi0rCSAgZnVu Y192ZXJib3NlICJmaWx0ZXIgc3ltYm9sIGxpc3QgZm9yIFxgJGxpYm5hbWUubGEnIHRvIHRhZyBE QVRBIGV4cG9ydHMiCi0rCSAgIyBGSVhNRTogJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVy IHBvdGVudGlhbGx5IGNvbnRhaW5zIGxvdHMgb2YKLSsJICAjICdzJyBjb21tYW5kcyB3aGljaCBu b3QgYWxsIHNlZHMgY2FuIGhhbmRsZS4gR05VIHNlZCBzaG91bGQgYmUgZmluZQotKwkgICMgdGhv dWdoLiBBbHNvLCB0aGUgZmlsdGVyIHNjYWxlcyBzdXBlcmxpbmVhcmx5IHdpdGggdGhlIG51bWJl ciBvZgotKwkgICMgZ2xvYmFsIHZhcmlhYmxlcy4gam9pbigxKSB3b3VsZCBiZSBuaWNlIGhlcmUs IGJ1dCB1bmZvcnR1bmF0ZWx5Ci0rCSAgIyBpc24ndCBhIGJsZXNzZWQgdG9vbC4KLSsJICAkb3B0 X2RyeV9ydW4gfHwgJFNFRCAtZSAnL1sgLF1EQVRBLyFkO3MsXCguKlwpXChbIFwsXS4qXCksc3xe XDEkfFwxXDJ8LCcgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5m aWx0ZXIKLSsJICBkZWxmaWxlcz0iJGRlbGZpbGVzICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29i amRpci8kbGlibmFtZS5maWx0ZXIiCi0rCSAgZXhwb3J0X3N5bWJvbHM9JG91dHB1dF9vYmpkaXIv JGxpYm5hbWUuZGVmCi0rCSAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWYgJG91dHB1dF9vYmpkaXIv JGxpYm5hbWUuZmlsdGVyIDwgJG9yaWdfZXhwb3J0X3N5bWJvbHMgPiAkZXhwb3J0X3N5bWJvbHMK LSsJZmkKLSsKLSsJdG1wX2RlcGxpYnM9Ci0rCWZvciB0ZXN0X2RlcGxpYiBpbiAkZGVwbGliczsg ZG8KLSsJICBjYXNlICIgJGNvbnZlbmllbmNlICIgaW4KLSsJICAqIiAkdGVzdF9kZXBsaWIgIiop IDs7Ci0rCSAgKikKLSsJICAgIHRtcF9kZXBsaWJzPSIkdG1wX2RlcGxpYnMgJHRlc3RfZGVwbGli IgotKwkgICAgOzsKLSsJICBlc2FjCi0rCWRvbmUKLSsJZGVwbGlicz0iJHRtcF9kZXBsaWJzIgot KwotKwlpZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiOyB0aGVuCi0rCSAgaWYgdGVzdCAtbiAiJHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjIiAmJgotKwkgICAgdGVzdCAiJGNvbXBpbGVyX25lZWRzX29i amVjdCIgPSB5ZXMgJiYKLSsJICAgIHRlc3QgLXogIiRsaWJvYmpzIjsgdGhlbgotKwkgICAgIyBl eHRyYWN0IHRoZSBhcmNoaXZlcywgc28gd2UgaGF2ZSBvYmplY3RzIHRvIGxpc3QuCi0rCSAgICAj IFRPRE86IGNvdWxkIG9wdGltaXplIHRoaXMgdG8ganVzdCBleHRyYWN0IG9uZSBhcmNoaXZlLgot KwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Ci0rCSAgZmkKLSsJICBpZiB0ZXN0IC1uICIk d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgICBzYXZlX2xpYm9ianM9JGxpYm9i anMKLSsJICAgIGV2YWwgbGlib2Jqcz1cIlwkbGlib2JqcyAkd2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWNcIgotKwkgICAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KLSsJICBlbHNl Ci0rCSAgICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgotKwkgICAgZ2Vu ZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCi0rCi0rCSAgICBmdW5jX2V4dHJhY3RfYXJjaGl2 ZXMgJGdlbnRvcCAkY29udmVuaWVuY2UKLSsJICAgIGxpYm9ianM9IiRsaWJvYmpzICRmdW5jX2V4 dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgotKwkgICAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYg bGlib2Jqcz0KLSsJICBmaQotKwlmaQotKwotKwlpZiB0ZXN0ICIkdGhyZWFkX3NhZmUiID0geWVz ICYmIHRlc3QgLW4gIiR0aHJlYWRfc2FmZV9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgZXZhbCBmbGFn PVwiJHRocmVhZF9zYWZlX2ZsYWdfc3BlY1wiCi0rCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2Zs YWdzICRmbGFnIgotKwlmaQotKwotKwkjIE1ha2UgYSBiYWNrdXAgb2YgdGhlIHVuaW5zdGFsbGVk IGxpYnJhcnkgd2hlbiByZWxpbmtpbmcKLSsJaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVu Ci0rCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgJyhjZCAkb3V0cHV0X29iamRpciAmJiAkUk0gJHty ZWFsbmFtZX1VICYmICRNViAkcmVhbG5hbWUgJHtyZWFsbmFtZX1VKScgfHwgZXhpdCAkPwotKwlm aQotKwotKwkjIERvIGVhY2ggb2YgdGhlIGFyY2hpdmUgY29tbWFuZHMuCi0rCWlmIHRlc3QgIiRt b2R1bGUiID0geWVzICYmIHRlc3QgLW4gIiRtb2R1bGVfY21kcyIgOyB0aGVuCi0rCSAgaWYgdGVz dCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkbW9kdWxlX2V4cHN5bV9jbWRzIjsg dGhlbgotKwkgICAgZXZhbCB0ZXN0X2NtZHM9XCIkbW9kdWxlX2V4cHN5bV9jbWRzXCIKLSsJICAg IGNtZHM9JG1vZHVsZV9leHBzeW1fY21kcwotKwkgIGVsc2UKLSsJICAgIGV2YWwgdGVzdF9jbWRz PVwiJG1vZHVsZV9jbWRzXCIKLSsJICAgIGNtZHM9JG1vZHVsZV9jbWRzCi0rCSAgZmkKLSsJZWxz ZQotKwkgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGFyY2hpdmVf ZXhwc3ltX2NtZHMiOyB0aGVuCi0rCSAgICBldmFsIHRlc3RfY21kcz1cIiRhcmNoaXZlX2V4cHN5 bV9jbWRzXCIKLSsJICAgIGNtZHM9JGFyY2hpdmVfZXhwc3ltX2NtZHMKLSsJICBlbHNlCi0rCSAg ICBldmFsIHRlc3RfY21kcz1cIiRhcmNoaXZlX2NtZHNcIgotKwkgICAgY21kcz0kYXJjaGl2ZV9j bWRzCi0rCSAgZmkKLSsJZmkKLSsKLSsJaWYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6 IiAmJgotKwkgICBmdW5jX2xlbiAiICR0ZXN0X2NtZHMiICYmCi0rCSAgIGxlbj0kZnVuY19sZW5f cmVzdWx0ICYmCi0rCSAgIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIiB8fCB0ZXN0ICIk bWF4X2NtZF9sZW4iIC1sZSAtMTsgdGhlbgotKwkgIDoKLSsJZWxzZQotKwkgICMgVGhlIGNvbW1h bmQgbGluZSBpcyB0b28gbG9uZyB0byBsaW5rIGluIG9uZSBzdGVwLCBsaW5rIHBpZWNld2lzZQot KwkgICMgb3IsIGlmIHVzaW5nIEdOVSBsZCBhbmQgc2tpcHBlZF9leHBvcnQgaXMgbm90IDosIHVz ZSBhIGxpbmtlcgotKwkgICMgc2NyaXB0LgotKwotKwkgICMgU2F2ZSB0aGUgdmFsdWUgb2YgJG91 dHB1dCBhbmQgJGxpYm9ianMgYmVjYXVzZSB3ZSB3YW50IHRvCi0rCSAgIyB1c2UgdGhlbSBsYXRl ci4gIElmIHdlIGhhdmUgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsIHdlCi0rCSAgIyB3YW50IHRv IHVzZSBzYXZlX2xpYm9ianMgYXMgaXQgd2FzIGJlZm9yZQotKwkgICMgd2hvbGVfYXJjaGl2ZV9m bGFnX3NwZWMgd2FzIGV4cGFuZGVkLCBiZWNhdXNlIHdlIGNhbid0Ci0rCSAgIyBhc3N1bWUgdGhl IGxpbmtlciB1bmRlcnN0YW5kcyB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYy4KLSsJICAjIFRoaXMg bWF5IGhhdmUgdG8gYmUgcmV2aXNpdGVkLCBpbiBjYXNlIHRvbyBtYW55Ci0rCSAgIyBjb252ZW5p ZW5jZSBsaWJyYXJpZXMgZ2V0IGxpbmtlZCBpbiBhbmQgZW5kIHVwIGV4Y2VlZGluZwotKwkgICMg dGhlIHNwZWMuCi0rCSAgaWYgdGVzdCAteiAiJGNvbnZlbmllbmNlIiB8fCB0ZXN0IC16ICIkd2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgICBzYXZlX2xpYm9ianM9JGxpYm9ianMK LSsJICBmaQotKwkgIHNhdmVfb3V0cHV0PSRvdXRwdXQKLSsJICBvdXRwdXRfbGE9YCRFQ0hPICJY JG91dHB1dCIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKLSsKLSsJICAjIENsZWFyIHRoZSByZWxv YWRhYmxlIG9iamVjdCBjcmVhdGlvbiBjb21tYW5kIHF1ZXVlIGFuZAotKwkgICMgaW5pdGlhbGl6 ZSBrIHRvIG9uZS4KLSsJICB0ZXN0X2NtZHM9Ci0rCSAgY29uY2F0X2NtZHM9Ci0rCSAgb2JqbGlz dD0KLSsJICBsYXN0X3JvYmo9Ci0rCSAgaz0xCi0rCi0rCSAgaWYgdGVzdCAtbiAiJHNhdmVfbGli b2JqcyIgJiYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6IiAmJiB0ZXN0ICIkd2l0aF9n bnVfbGQiID0geWVzOyB0aGVuCi0rCSAgICBvdXRwdXQ9JHtvdXRwdXRfb2JqZGlyfS8ke291dHB1 dF9sYX0ubG5rc2NyaXB0Ci0rCSAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nIEdOVSBsZCBzY3Jp cHQ6ICRvdXRwdXQiCi0rCSAgICAkRUNITyAnSU5QVVQgKCcgPiAkb3V0cHV0Ci0rCSAgICBmb3Ig b2JqIGluICRzYXZlX2xpYm9ianMKLSsJICAgIGRvCi0rCSAgICAgICRFQ0hPICIkb2JqIiA+PiAk b3V0cHV0Ci0rCSAgICBkb25lCi0rCSAgICAkRUNITyAnKScgPj4gJG91dHB1dAotKwkgICAgZGVs ZmlsZXM9IiRkZWxmaWxlcyAkb3V0cHV0IgotKwkgIGVsaWYgdGVzdCAtbiAiJHNhdmVfbGlib2Jq cyIgJiYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6IiAmJiB0ZXN0ICJYJGZpbGVfbGlz dF9zcGVjIiAhPSBYOyB0aGVuCi0rCSAgICBvdXRwdXQ9JHtvdXRwdXRfb2JqZGlyfS8ke291dHB1 dF9sYX0ubG5rCi0rCSAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nIGxpbmtlciBpbnB1dCBmaWxl IGxpc3Q6ICRvdXRwdXQiCi0rCSAgICA6ID4gJG91dHB1dAotKwkgICAgc2V0IHggJHNhdmVfbGli b2JqcwotKwkgICAgc2hpZnQKLSsJICAgIGZpcnN0b2JqPQotKwkgICAgaWYgdGVzdCAiJGNvbXBp bGVyX25lZWRzX29iamVjdCIgPSB5ZXM7IHRoZW4KLSsJICAgICAgZmlyc3RvYmo9IiQxICIKLSsJ ICAgICAgc2hpZnQKLSsJICAgIGZpCi0rCSAgICBmb3Igb2JqCi0rCSAgICBkbwotKwkgICAgICAk RUNITyAiJG9iaiIgPj4gJG91dHB1dAotKwkgICAgZG9uZQotKwkgICAgZGVsZmlsZXM9IiRkZWxm aWxlcyAkb3V0cHV0IgotKwkgICAgb3V0cHV0PSRmaXJzdG9ialwiJGZpbGVfbGlzdF9zcGVjJG91 dHB1dFwiCi0rCSAgZWxzZQotKwkgICAgaWYgdGVzdCAtbiAiJHNhdmVfbGlib2JqcyI7IHRoZW4K LSsJICAgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4u LiIKLSsJICAgICAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0 Ci0rCSAgICAgIGV2YWwgdGVzdF9jbWRzPVwiJHJlbG9hZF9jbWRzXCIKLSsJICAgICAgZnVuY19s ZW4gIiAkdGVzdF9jbWRzIgotKwkgICAgICBsZW4wPSRmdW5jX2xlbl9yZXN1bHQKLSsJICAgICAg bGVuPSRsZW4wCi0rCi0rCSAgICAgICMgTG9vcCBvdmVyIHRoZSBsaXN0IG9mIG9iamVjdHMgdG8g YmUgbGlua2VkLgotKwkgICAgICBmb3Igb2JqIGluICRzYXZlX2xpYm9ianMKLSsJICAgICAgZG8K LSsJCWZ1bmNfbGVuICIgJG9iaiIKLSsJCWZ1bmNfYXJpdGggJGxlbiArICRmdW5jX2xlbl9yZXN1 bHQKLSsJCWxlbj0kZnVuY19hcml0aF9yZXN1bHQKLSsJCWlmIHRlc3QgIlgkb2JqbGlzdCIgPSBY IHx8Ci0rCQkgICB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiI7IHRoZW4KLSsJCSAgZnVu Y19hcHBlbmQgb2JqbGlzdCAiICRvYmoiCi0rCQllbHNlCi0rCQkgICMgVGhlIGNvbW1hbmQgJHRl c3RfY21kcyBpcyBhbG1vc3QgdG9vIGxvbmcsIGFkZCBhCi0rCQkgICMgY29tbWFuZCB0byB0aGUg cXVldWUuCi0rCQkgIGlmIHRlc3QgIiRrIiAtZXEgMSA7IHRoZW4KLSsJCSAgICAjIFRoZSBmaXJz dCBmaWxlIGRvZXNuJ3QgaGF2ZSBhIHByZXZpb3VzIGNvbW1hbmQgdG8gYWRkLgotKwkJICAgIGV2 YWwgY29uY2F0X2NtZHM9XCIkcmVsb2FkX2NtZHMgJG9iamxpc3QgJGxhc3Rfcm9ialwiCi0rCQkg IGVsc2UKLSsJCSAgICAjIEFsbCBzdWJzZXF1ZW50IHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzIHdp bGwgbGluayBpbgotKwkJICAgICMgdGhlIGxhc3Qgb25lIGNyZWF0ZWQuCi0rCQkgICAgZXZhbCBj b25jYXRfY21kcz1cIlwkY29uY2F0X2NtZHN+JHJlbG9hZF9jbWRzICRvYmpsaXN0ICRsYXN0X3Jv Ymp+XCRSTSAkbGFzdF9yb2JqXCIKLSsJCSAgZmkKLSsJCSAgbGFzdF9yb2JqPSRvdXRwdXRfb2Jq ZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0Ci0rCQkgIGZ1bmNfYXJpdGggJGsgKyAxCi0rCQkg IGs9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCQkgIG91dHB1dD0kb3V0cHV0X29iamRpci8kb3V0cHV0 X2xhLSR7a30uJG9iamV4dAotKwkJICBvYmpsaXN0PSRvYmoKLSsJCSAgZnVuY19sZW4gIiAkbGFz dF9yb2JqIgotKwkJICBmdW5jX2FyaXRoICRsZW4wICsgJGZ1bmNfbGVuX3Jlc3VsdAotKwkJICBs ZW49JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCQlmaQotKwkgICAgICBkb25lCi0rCSAgICAgICMgSGFu ZGxlIHRoZSByZW1haW5pbmcgb2JqZWN0cyBieSBjcmVhdGluZyBvbmUgbGFzdAotKwkgICAgICAj IHJlbG9hZGFibGUgb2JqZWN0IGZpbGUuICBBbGwgc3Vic2VxdWVudCByZWxvYWRhYmxlIG9iamVj dAotKwkgICAgICAjIGZpbGVzIHdpbGwgbGluayBpbiB0aGUgbGFzdCBvbmUgY3JlYXRlZC4KLSsJ ICAgICAgdGVzdCAteiAiJGNvbmNhdF9jbWRzIiB8fCBjb25jYXRfY21kcz0kY29uY2F0X2NtZHN+ Ci0rCSAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJHtjb25jYXRfY21kc30kcmVsb2FkX2NtZHMg JG9iamxpc3QgJGxhc3Rfcm9ialwiCi0rCSAgICAgIGlmIHRlc3QgLW4gIiRsYXN0X3JvYmoiOyB0 aGVuCi0rCSAgICAgICAgZXZhbCBjb25jYXRfY21kcz1cIlwke2NvbmNhdF9jbWRzfX5cJFJNICRs YXN0X3JvYmpcIgotKwkgICAgICBmaQotKwkgICAgICBkZWxmaWxlcz0iJGRlbGZpbGVzICRvdXRw dXQiCi0rCi0rCSAgICBlbHNlCi0rCSAgICAgIG91dHB1dD0KLSsJICAgIGZpCi0rCi0rCSAgICBp ZiAke3NraXBwZWRfZXhwb3J0LWZhbHNlfTsgdGhlbgotKwkgICAgICBmdW5jX3ZlcmJvc2UgImdl bmVyYXRpbmcgc3ltYm9sIGxpc3QgZm9yIFxgJGxpYm5hbWUubGEnIgotKwkgICAgICBleHBvcnRf c3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZXhwIgotKwkgICAgICAkb3B0X2RyeV9y dW4gfHwgJFJNICRleHBvcnRfc3ltYm9scwotKwkgICAgICBsaWJvYmpzPSRvdXRwdXQKLSsJICAg ICAgIyBBcHBlbmQgdGhlIGNvbW1hbmQgdG8gY3JlYXRlIHRoZSBleHBvcnQgZmlsZS4KLSsJICAg ICAgdGVzdCAteiAiJGNvbmNhdF9jbWRzIiB8fCBjb25jYXRfY21kcz0kY29uY2F0X2NtZHN+Ci0r CSAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJGNvbmNhdF9jbWRzJGV4cG9ydF9zeW1ib2xzX2Nt ZHNcIgotKwkgICAgICBpZiB0ZXN0IC1uICIkbGFzdF9yb2JqIjsgdGhlbgotKwkJZXZhbCBjb25j YXRfY21kcz1cIlwkY29uY2F0X2NtZHN+XCRSTSAkbGFzdF9yb2JqXCIKLSsJICAgICAgZmkKLSsJ ICAgIGZpCi0rCi0rCSAgICB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIiAmJgotKwkgICAgICBmdW5j X3ZlcmJvc2UgImNyZWF0aW5nIGEgdGVtcG9yYXJ5IHJlbG9hZGFibGUgb2JqZWN0IGZpbGU6ICRv dXRwdXQiCi0rCi0rCSAgICAjIExvb3AgdGhyb3VnaCB0aGUgY29tbWFuZHMgZ2VuZXJhdGVkIGFi b3ZlIGFuZCBleGVjdXRlIHRoZW0uCi0rCSAgICBzYXZlX2lmcz0iJElGUyI7IElGUz0nficKLSsJ ICAgIGZvciBjbWQgaW4gJGNvbmNhdF9jbWRzOyBkbwotKwkgICAgICBJRlM9IiRzYXZlX2lmcyIK LSsJICAgICAgJG9wdF9zaWxlbnQgfHwgewotKwkJICBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgIiRj bWQiCi0rCQkgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdCIK LSsJICAgICAgfQotKwkgICAgICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiJGNtZCIgfHwgewotKwkJ bHRfZXhpdD0kPwotKwotKwkJIyBSZXN0b3JlIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IGFuZCBl eGl0Ci0rCQlpZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KLSsJCSAgKCBjZCAiJG91dHB1 dF9vYmpkaXIiICYmIFwKLSsJCSAgICAkUk0gIiR7cmVhbG5hbWV9VCIgJiYgXAotKwkJICAgICRN ViAiJHtyZWFsbmFtZX1VIiAiJHJlYWxuYW1lIiApCi0rCQlmaQotKwotKwkJZXhpdCAkbHRfZXhp dAotKwkgICAgICB9Ci0rCSAgICBkb25lCi0rCSAgICBJRlM9IiRzYXZlX2lmcyIKLSsKLSsJICAg IGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCIgJiYgJHtza2lwcGVkX2V4cG9ydC1m YWxzZX07IHRoZW4KLSsJICAgICAgZnVuY19zaG93X2V2YWwgJyRFR1JFUCAtZSAiJGV4cG9ydF9z eW1ib2xzX3JlZ2V4IiAiJGV4cG9ydF9zeW1ib2xzIiA+ICIke2V4cG9ydF9zeW1ib2xzfVQiJwot KwkgICAgICBmdW5jX3Nob3dfZXZhbCAnJE1WICIke2V4cG9ydF9zeW1ib2xzfVQiICIkZXhwb3J0 X3N5bWJvbHMiJwotKwkgICAgZmkKLSsJICBmaQotKwotKyAgICAgICAgICBpZiAke3NraXBwZWRf ZXhwb3J0LWZhbHNlfTsgdGhlbgotKwkgICAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAm JiB0ZXN0IC1uICIkaW5jbHVkZV9leHBzeW1zIjsgdGhlbgotKwkgICAgICB0bXBfZXhwb3J0X3N5 bWJvbHM9IiRleHBvcnRfc3ltYm9scyIKLSsJICAgICAgdGVzdCAtbiAiJG9yaWdfZXhwb3J0X3N5 bWJvbHMiICYmIHRtcF9leHBvcnRfc3ltYm9scz0iJG9yaWdfZXhwb3J0X3N5bWJvbHMiCi0rCSAg ICAgICRvcHRfZHJ5X3J1biB8fCBldmFsICckRUNITyAiWCRpbmNsdWRlX2V4cHN5bXMiIHwgJFhz ZWQgfCAkU1AyTkwgPj4gIiR0bXBfZXhwb3J0X3N5bWJvbHMiJwotKwkgICAgZmkKLSsKLSsJICAg IGlmIHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9zeW1ib2xzIjsgdGhlbgotKwkgICAgICAjIFRoZSBn aXZlbiBleHBvcnRzX3N5bWJvbHMgZmlsZSBoYXMgdG8gYmUgZmlsdGVyZWQsIHNvIGZpbHRlciBp dC4KLSsJICAgICAgZnVuY192ZXJib3NlICJmaWx0ZXIgc3ltYm9sIGxpc3QgZm9yIFxgJGxpYm5h bWUubGEnIHRvIHRhZyBEQVRBIGV4cG9ydHMiCi0rCSAgICAgICMgRklYTUU6ICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLmZpbHRlciBwb3RlbnRpYWxseSBjb250YWlucyBsb3RzIG9mCi0rCSAgICAg ICMgJ3MnIGNvbW1hbmRzIHdoaWNoIG5vdCBhbGwgc2VkcyBjYW4gaGFuZGxlLiBHTlUgc2VkIHNo b3VsZCBiZSBmaW5lCi0rCSAgICAgICMgdGhvdWdoLiBBbHNvLCB0aGUgZmlsdGVyIHNjYWxlcyBz dXBlcmxpbmVhcmx5IHdpdGggdGhlIG51bWJlciBvZgotKwkgICAgICAjIGdsb2JhbCB2YXJpYWJs ZXMuIGpvaW4oMSkgd291bGQgYmUgbmljZSBoZXJlLCBidXQgdW5mb3J0dW5hdGVseQotKwkgICAg ICAjIGlzbid0IGEgYmxlc3NlZCB0b29sLgotKwkgICAgICAkb3B0X2RyeV9ydW4gfHwgJFNFRCAt ZSAnL1sgLF1EQVRBLyFkO3MsXCguKlwpXChbIFwsXS4qXCksc3xeXDEkfFwxXDJ8LCcgPCAkZXhw b3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIKLSsJICAgICAgZGVs ZmlsZXM9IiRkZWxmaWxlcyAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu ZmlsdGVyIgotKwkgICAgICBleHBvcnRfc3ltYm9scz0kb3V0cHV0X29iamRpci8kbGlibmFtZS5k ZWYKLSsJICAgICAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWYgJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuZmlsdGVyIDwgJG9yaWdfZXhwb3J0X3N5bWJvbHMgPiAkZXhwb3J0X3N5bWJvbHMKLSsJICAg IGZpCi0rCSAgZmkKLSsKLSsJICBsaWJvYmpzPSRvdXRwdXQKLSsJICAjIFJlc3RvcmUgdGhlIHZh bHVlIG9mIG91dHB1dC4KLSsJICBvdXRwdXQ9JHNhdmVfb3V0cHV0Ci0rCi0rCSAgaWYgdGVzdCAt biAiJGNvbnZlbmllbmNlIiAmJiB0ZXN0IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0 aGVuCi0rCSAgICBldmFsIGxpYm9ianM9XCJcJGxpYm9ianMgJHdob2xlX2FyY2hpdmVfZmxhZ19z cGVjXCIKLSsJICAgIHRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9Ci0rCSAgZmkK LSsJICAjIEV4cGFuZCB0aGUgbGlicmFyeSBsaW5raW5nIGNvbW1hbmRzIGFnYWluIHRvIHJlc2V0 IHRoZQotKwkgICMgdmFsdWUgb2YgJGxpYm9ianMgZm9yIHBpZWNld2lzZSBsaW5raW5nLgotKwot KwkgICMgRG8gZWFjaCBvZiB0aGUgYXJjaGl2ZSBjb21tYW5kcy4KLSsJICBpZiB0ZXN0ICIkbW9k dWxlIiA9IHllcyAmJiB0ZXN0IC1uICIkbW9kdWxlX2NtZHMiIDsgdGhlbgotKwkgICAgaWYgdGVz dCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkbW9kdWxlX2V4cHN5bV9jbWRzIjsg dGhlbgotKwkgICAgICBjbWRzPSRtb2R1bGVfZXhwc3ltX2NtZHMKLSsJICAgIGVsc2UKLSsJICAg ICAgY21kcz0kbW9kdWxlX2NtZHMKLSsJICAgIGZpCi0rCSAgZWxzZQotKwkgICAgaWYgdGVzdCAt biAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkYXJjaGl2ZV9leHBzeW1fY21kcyI7IHRo ZW4KLSsJICAgICAgY21kcz0kYXJjaGl2ZV9leHBzeW1fY21kcwotKwkgICAgZWxzZQotKwkgICAg ICBjbWRzPSRhcmNoaXZlX2NtZHMKLSsJICAgIGZpCi0rCSAgZmkKLSsJZmkKLSsKLSsJaWYgdGVz dCAtbiAiJGRlbGZpbGVzIjsgdGhlbgotKwkgICMgQXBwZW5kIHRoZSBjb21tYW5kIHRvIHJlbW92 ZSB0ZW1wb3JhcnkgZmlsZXMgdG8gJGNtZHMuCi0rCSAgZXZhbCBjbWRzPVwiXCRjbWRzflwkUk0g JGRlbGZpbGVzXCIKLSsJZmkKLSsKLSsJIyBBZGQgYW55IG9iamVjdHMgZnJvbSBwcmVsb2FkZWQg Y29udmVuaWVuY2UgbGlicmFyaWVzCi0rCWlmIHRlc3QgLW4gIiRkbHByZWZpbGVzIjsgdGhlbgot KwkgIGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCi0rCSAgZ2VuZXJhdGVk PSIkZ2VuZXJhdGVkICRnZW50b3AiCi0rCi0rCSAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50 b3AgJGRscHJlZmlsZXMKLSsJICBsaWJvYmpzPSIkbGlib2JqcyAkZnVuY19leHRyYWN0X2FyY2hp dmVzX3Jlc3VsdCIKLSsJICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQotKwlm aQotKwotKwlzYXZlX2lmcz0iJElGUyI7IElGUz0nficKLSsJZm9yIGNtZCBpbiAkY21kczsgZG8K LSsJICBJRlM9IiRzYXZlX2lmcyIKLSsJICBldmFsIGNtZD1cIiRjbWRcIgotKwkgICRvcHRfc2ls ZW50IHx8IHsKLSsJICAgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAiJGNtZCIKLSsJICAgIGV2YWwg ImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdCIKLSsJICB9Ci0rCSAgJG9w dF9kcnlfcnVuIHx8IGV2YWwgIiRjbWQiIHx8IHsKLSsJICAgIGx0X2V4aXQ9JD8KLSsKLSsJICAg ICMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBhbmQgZXhpdAotKwkgICAgaWYgdGVz dCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCi0rCSAgICAgICggY2QgIiRvdXRwdXRfb2JqZGlyIiAm JiBcCi0rCSAgICAgICAgJFJNICIke3JlYWxuYW1lfVQiICYmIFwKLSsJCSRNViAiJHtyZWFsbmFt ZX1VIiAiJHJlYWxuYW1lIiApCi0rCSAgICBmaQotKwotKwkgICAgZXhpdCAkbHRfZXhpdAotKwkg IH0KLSsJZG9uZQotKwlJRlM9IiRzYXZlX2lmcyIKLSsKLSsJIyBSZXN0b3JlIHRoZSB1bmluc3Rh bGxlZCBsaWJyYXJ5IGFuZCBleGl0Ci0rCWlmIHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgot KwkgICRvcHRfZHJ5X3J1biB8fCBldmFsICcoY2QgJG91dHB1dF9vYmpkaXIgJiYgJFJNICR7cmVh bG5hbWV9VCAmJiAkTVYgJHJlYWxuYW1lICR7cmVhbG5hbWV9VCAmJiAkTVYgJHtyZWFsbmFtZX1V ICRyZWFsbmFtZSknIHx8IGV4aXQgJD8KLSsKLSsJICBpZiB0ZXN0IC1uICIkY29udmVuaWVuY2Ui OyB0aGVuCi0rCSAgICBpZiB0ZXN0IC16ICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVu Ci0rCSAgICAgIGZ1bmNfc2hvd19ldmFsICcke1JNfXIgIiRnZW50b3AiJwotKwkgICAgZmkKLSsJ ICBmaQotKwotKwkgIGV4aXQgJEVYSVRfU1VDQ0VTUwotKwlmaQotKwotKwkjIENyZWF0ZSBsaW5r cyB0byB0aGUgcmVhbCBsaWJyYXJ5LgotKwlmb3IgbGlua25hbWUgaW4gJGxpbmtuYW1lczsgZG8K LSsJICBpZiB0ZXN0ICIkcmVhbG5hbWUiICE9ICIkbGlua25hbWUiOyB0aGVuCi0rCSAgICBmdW5j X3Nob3dfZXZhbCAnKGNkICIkb3V0cHV0X29iamRpciIgJiYgJFJNICIkbGlua25hbWUiICYmICRM Tl9TICIkcmVhbG5hbWUiICIkbGlua25hbWUiKScgJ2V4aXQgJD8nCi0rCSAgZmkKLSsJZG9uZQot KwotKwkjIElmIC1tb2R1bGUgb3IgLWV4cG9ydC1keW5hbWljIHdhcyBzcGVjaWZpZWQsIHNldCB0 aGUgZGxuYW1lLgotKwlpZiB0ZXN0ICIkbW9kdWxlIiA9IHllcyB8fCB0ZXN0ICIkZXhwb3J0X2R5 bmFtaWMiID0geWVzOyB0aGVuCi0rCSAgIyBPbiBhbGwga25vd24gb3BlcmF0aW5nIHN5c3RlbXMs IHRoZXNlIGFyZSBpZGVudGljYWwuCi0rCSAgZGxuYW1lPSIkc29uYW1lIgotKwlmaQotKyAgICAg IGZpCi0rICAgICAgOzsKLSsKLSsgICAgb2JqKQotKyAgICAgIGlmIHRlc3QgLW4gIiRkbGZpbGVz JGRscHJlZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCi0rCWZ1bmNfd2Fybmlu ZyAiXGAtZGxvcGVuJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIgotKyAgICAgIGZpCi0rCi0rICAg ICAgY2FzZSAiICRkZXBsaWJzIiBpbgotKyAgICAgICpcIC1sKiB8ICpcIC1MKikKLSsJZnVuY193 YXJuaW5nICJcYC1sJyBhbmQgXGAtTCcgYXJlIGlnbm9yZWQgZm9yIG9iamVjdHMiIDs7Ci0rICAg ICAgZXNhYwotKwotKyAgICAgIHRlc3QgLW4gIiRycGF0aCIgJiYgXAotKwlmdW5jX3dhcm5pbmcg IlxgLXJwYXRoJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIgotKwotKyAgICAgIHRlc3QgLW4gIiR4 cnBhdGgiICYmIFwKLSsJZnVuY193YXJuaW5nICJcYC1SJyBpcyBpZ25vcmVkIGZvciBvYmplY3Rz IgotKwotKyAgICAgIHRlc3QgLW4gIiR2aW5mbyIgJiYgXAotKwlmdW5jX3dhcm5pbmcgIlxgLXZl cnNpb24taW5mbycgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIKLSsKLSsgICAgICB0ZXN0IC1uICIk cmVsZWFzZSIgJiYgXAotKwlmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9y IG9iamVjdHMiCi0rCi0rICAgICAgY2FzZSAkb3V0cHV0IGluCi0rICAgICAgKi5sbykKLSsJdGVz dCAtbiAiJG9ianMkb2xkX2RlcGxpYnMiICYmIFwKLSsJICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5u b3QgYnVpbGQgbGlicmFyeSBvYmplY3QgXGAkb3V0cHV0JyBmcm9tIG5vbi1saWJ0b29sIG9iamVj dHMiCi0rCi0rCWxpYm9iaj0kb3V0cHV0Ci0rCWZ1bmNfbG8ybyAiJGxpYm9iaiIKLSsJb2JqPSRm dW5jX2xvMm9fcmVzdWx0Ci0rCTs7Ci0rICAgICAgKikKLSsJbGlib2JqPQotKwlvYmo9IiRvdXRw dXQiCi0rCTs7Ci0rICAgICAgZXNhYwotKwotKyAgICAgICMgRGVsZXRlIHRoZSBvbGQgb2JqZWN0 cy4KLSsgICAgICAkb3B0X2RyeV9ydW4gfHwgJFJNICRvYmogJGxpYm9iagotKwotKyAgICAgICMg T2JqZWN0cyBmcm9tIGNvbnZlbmllbmNlIGxpYnJhcmllcy4gIFRoaXMgYXNzdW1lcwotKyAgICAg ICMgc2luZ2xlLXZlcnNpb24gY29udmVuaWVuY2UgbGlicmFyaWVzLiAgV2hlbmV2ZXIgd2UgY3Jl YXRlCi0rICAgICAgIyBkaWZmZXJlbnQgb25lcyBmb3IgUElDL25vbi1QSUMsIHRoaXMgd2UnbGwg aGF2ZSB0byBkdXBsaWNhdGUKLSsgICAgICAjIHRoZSBleHRyYWN0aW9uLgotKyAgICAgIHJlbG9h ZF9jb252X29ianM9Ci0rICAgICAgZ2VudG9wPQotKyAgICAgICMgcmVsb2FkX2NtZHMgcnVucyAk TEQgZGlyZWN0bHksIHNvIGxldCB1cyBnZXQgcmlkIG9mCi0rICAgICAgIyAtV2wgZnJvbSB3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlYyBhbmQgaG9wZSB3ZSBjYW4gZ2V0IGJ5IHdpdGgKLSsgICAgICAj IHR1cm5pbmcgY29tbWEgaW50byBzcGFjZS4uCi0rICAgICAgd2w9Ci0rCi0rICAgICAgaWYgdGVz dCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgotKwlpZiB0ZXN0IC1uICIkd2hvbGVfYXJjaGl2ZV9m bGFnX3NwZWMiOyB0aGVuCi0rCSAgZXZhbCB0bXBfd2hvbGVfYXJjaGl2ZV9mbGFncz1cIiR3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlY1wiCi0rCSAgcmVsb2FkX2NvbnZfb2Jqcz0kcmVsb2FkX29ianNc IGAkRUNITyAiWCR0bXBfd2hvbGVfYXJjaGl2ZV9mbGFncyIgfCAkWHNlZCAtZSAnc3wsfCB8Zydg Ci0rCWVsc2UKLSsJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b2JqfXgiCi0rCSAgZ2VuZXJh dGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCi0rCi0rCSAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRn ZW50b3AgJGNvbnZlbmllbmNlCi0rCSAgcmVsb2FkX2NvbnZfb2Jqcz0iJHJlbG9hZF9vYmpzICRm dW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAg IyBDcmVhdGUgdGhlIG9sZC1zdHlsZSBvYmplY3QuCi0rICAgICAgcmVsb2FkX29ianM9IiRvYmpz JG9sZF9kZXBsaWJzICJgJEVDSE8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAnL1wu JyR7bGliZXh0fSQnL2QnIC1lICcvXC5saWIkL2QnIC1lICIkbG8ybyIgfCAkTkwyU1BgIiAkcmVs b2FkX2NvbnZfb2JqcyIgIyMjIHRlc3RzdWl0ZTogc2tpcCBuZXN0ZWQgcXVvdGluZyB0ZXN0Ci0r Ci0rICAgICAgb3V0cHV0PSIkb2JqIgotKyAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkcmVsb2Fk X2NtZHMiICdleGl0ICQ/JwotKwotKyAgICAgICMgRXhpdCBpZiB3ZSBhcmVuJ3QgZG9pbmcgYSBs aWJyYXJ5IG9iamVjdCBmaWxlLgotKyAgICAgIGlmIHRlc3QgLXogIiRsaWJvYmoiOyB0aGVuCi0r CWlmIHRlc3QgLW4gIiRnZW50b3AiOyB0aGVuCi0rCSAgZnVuY19zaG93X2V2YWwgJyR7Uk19ciAi JGdlbnRvcCInCi0rCWZpCi0rCi0rCWV4aXQgJEVYSVRfU1VDQ0VTUwotKyAgICAgIGZpCi0rCi0r ICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzOyB0aGVuCi0rCWlmIHRl c3QgLW4gIiRnZW50b3AiOyB0aGVuCi0rCSAgZnVuY19zaG93X2V2YWwgJyR7Uk19ciAiJGdlbnRv cCInCi0rCWZpCi0rCi0rCSMgQ3JlYXRlIGFuIGludmFsaWQgbGlidG9vbCBvYmplY3QgaWYgbm8g UElDLCBzbyB0aGF0IHdlIGRvbid0Ci0rCSMgYWNjaWRlbnRhbGx5IGxpbmsgaXQgaW50byBhIHBy b2dyYW0uCi0rCSMgJHNob3cgImVjaG8gdGltZXN0YW1wID4gJGxpYm9iaiIKLSsJIyAkb3B0X2Ry eV9ydW4gfHwgZXZhbCAiZWNobyB0aW1lc3RhbXAgPiAkbGlib2JqIiB8fCBleGl0ICQ/Ci0rCWV4 aXQgJEVYSVRfU1VDQ0VTUwotKyAgICAgIGZpCi0rCi0rICAgICAgaWYgdGVzdCAtbiAiJHBpY19m bGFnIiB8fCB0ZXN0ICIkcGljX21vZGUiICE9IGRlZmF1bHQ7IHRoZW4KLSsJIyBPbmx5IGRvIGNv bW1hbmRzIGlmIHdlIHJlYWxseSBoYXZlIGRpZmZlcmVudCBQSUMgb2JqZWN0cy4KLSsJcmVsb2Fk X29ianM9IiRsaWJvYmpzICRyZWxvYWRfY29udl9vYmpzIgotKwlvdXRwdXQ9IiRsaWJvYmoiCi0r CWZ1bmNfZXhlY3V0ZV9jbWRzICIkcmVsb2FkX2NtZHMiICdleGl0ICQ/JwotKyAgICAgIGZpCi0r Ci0rICAgICAgaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KLSsJZnVuY19zaG93X2V2YWwgJyR7 Uk19ciAiJGdlbnRvcCInCi0rICAgICAgZmkKLSsKLSsgICAgICBleGl0ICRFWElUX1NVQ0NFU1MK LSsgICAgICA7OwotKwotKyAgICBwcm9nKQotKyAgICAgIGNhc2UgJGhvc3QgaW4KLSsJKmN5Z3dp biopIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJG91dHB1dCIKLSsJICAgICAgICAgIG91dHB1 dD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0LmV4ZTs7Ci0rICAgICAgZXNhYwotKyAgICAgIHRlc3Qg LW4gIiR2aW5mbyIgJiYgXAotKwlmdW5jX3dhcm5pbmcgIlxgLXZlcnNpb24taW5mbycgaXMgaWdu b3JlZCBmb3IgcHJvZ3JhbXMiCi0rCi0rICAgICAgdGVzdCAtbiAiJHJlbGVhc2UiICYmIFwKLSsJ ZnVuY193YXJuaW5nICJcYC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZvciBwcm9ncmFtcyIKLSsKLSsg ICAgICB0ZXN0ICIkcHJlbG9hZCIgPSB5ZXMgXAotKyAgICAgICAgJiYgdGVzdCAiJGRsb3Blbl9z dXBwb3J0IiA9IHVua25vd24gXAotKwkmJiB0ZXN0ICIkZGxvcGVuX3NlbGYiID0gdW5rbm93biBc Ci0rCSYmIHRlc3QgIiRkbG9wZW5fc2VsZl9zdGF0aWMiID0gdW5rbm93biAmJiBcCi0rCSAgZnVu Y193YXJuaW5nICJcYExUX0lOSVQoW2Rsb3Blbl0pJyBub3QgdXNlZC4gQXNzdW1pbmcgbm8gZGxv cGVuIHN1cHBvcnQuIgotKwotKyAgICAgIGNhc2UgJGhvc3QgaW4KLSsgICAgICAqLSotcmhhcHNv ZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCi0rCSMgT24gUmhhcHNvZHkgcmVwbGFjZSB0aGUgQyBs aWJyYXJ5IGlzIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCi0rCWNvbXBpbGVfZGVwbGlicz1gJEVDSE8g IlggJGNvbXBpbGVfZGVwbGlicyIgfCAkWHNlZCAtZSAncy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3 b3JrIC8nYAotKwlmaW5hbGl6ZV9kZXBsaWJzPWAkRUNITyAiWCAkZmluYWxpemVfZGVwbGlicyIg fCAkWHNlZCAtZSAncy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3b3JrIC8nYAotKwk7OwotKyAgICAg IGVzYWMKLSsKLSsgICAgICBjYXNlICRob3N0IGluCi0rICAgICAgKi0qLWRhcndpbiopCi0rCSMg RG9uJ3QgYWxsb3cgbGF6eSBsaW5raW5nLCBpdCBicmVha3MgQysrIGdsb2JhbCBjb25zdHJ1Y3Rv cnMKLSsJIyBCdXQgaXMgc3VwcG9zZWRseSBmaXhlZCBvbiAxMC40IG9yIGxhdGVyICh5YXkhKS4K LSsJaWYgdGVzdCAiJHRhZ25hbWUiID0gQ1hYIDsgdGhlbgotKwkgIGNhc2UgJHtNQUNPU1hfREVQ TE9ZTUVOVF9UQVJHRVQtMTAuMH0gaW4KLSsJICAgIDEwLlswMTIzXSkKLSsJICAgICAgY29tcGls ZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kICR7d2x9LWJpbmRfYXRfbG9hZCIKLSsJICAgICAg ZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgJHt3bH0tYmluZF9hdF9sb2FkIgot KwkgICAgOzsKLSsJICBlc2FjCi0rCWZpCi0rCSMgVGltZSB0byBjaGFuZ2UgYWxsIG91ciAiZm9v Lmx0ZnJhbWV3b3JrIiBzdHVmZiBiYWNrIHRvICItZnJhbWV3b3JrIGZvbyIKLSsJY29tcGlsZV9k ZXBsaWJzPWAkRUNITyAiWCAkY29tcGlsZV9kZXBsaWJzIiB8ICRYc2VkIC1lICdzJSBcKFteICRd KlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAotKwlmaW5hbGl6ZV9kZXBsaWJzPWAk RUNITyAiWCAkZmluYWxpemVfZGVwbGlicyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZy YW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKLSsJOzsKLSsgICAgICBlc2FjCi0rCi0rCi0rICAg ICAgIyBtb3ZlIGxpYnJhcnkgc2VhcmNoIHBhdGhzIHRoYXQgY29pbmNpZGUgd2l0aCBwYXRocyB0 byBub3QgeWV0Ci0rICAgICAgIyBpbnN0YWxsZWQgbGlicmFyaWVzIHRvIHRoZSBiZWdpbm5pbmcg b2YgdGhlIGxpYnJhcnkgc2VhcmNoIGxpc3QKLSsgICAgICBuZXdfbGlicz0KLSsgICAgICBmb3Ig cGF0aCBpbiAkbm90aW5zdF9wYXRoOyBkbwotKwljYXNlICIgJG5ld19saWJzICIgaW4KLSsJKiIg LUwkcGF0aC8kb2JqZGlyICIqKSA7OwotKwkqKQotKwkgIGNhc2UgIiAkY29tcGlsZV9kZXBsaWJz ICIgaW4KLSsJICAqIiAtTCRwYXRoLyRvYmpkaXIgIiopCi0rCSAgICBuZXdfbGlicz0iJG5ld19s aWJzIC1MJHBhdGgvJG9iamRpciIgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwotKyAgICAg IGRvbmUKLSsgICAgICBmb3IgZGVwbGliIGluICRjb21waWxlX2RlcGxpYnM7IGRvCi0rCWNhc2Ug JGRlcGxpYiBpbgotKwktTCopCi0rCSAgY2FzZSAiICRuZXdfbGlicyAiIGluCi0rCSAgKiIgJGRl cGxpYiAiKikgOzsKLSsJICAqKSBuZXdfbGlicz0iJG5ld19saWJzICRkZXBsaWIiIDs7Ci0rCSAg ZXNhYwotKwkgIDs7Ci0rCSopIG5ld19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKLSsJZXNh YwotKyAgICAgIGRvbmUKLSsgICAgICBjb21waWxlX2RlcGxpYnM9IiRuZXdfbGlicyIKLSsKLSsK LSsgICAgICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGNvbXBpbGVfZGVwbGli cyIKLSsgICAgICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAkZmluYWxpemVf ZGVwbGlicyIKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkcnBhdGgkeHJwYXRoIjsgdGhlbgotKwkj IElmIHRoZSB1c2VyIHNwZWNpZmllZCBhbnkgcnBhdGggZmxhZ3MsIHRoZW4gYWRkIHRoZW0uCi0r CWZvciBsaWJkaXIgaW4gJHJwYXRoICR4cnBhdGg7IGRvCi0rCSAgIyBUaGlzIGlzIHRoZSBtYWdp YyB0byB1c2UgLXJwYXRoLgotKwkgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCi0rCSAgKiIg JGxpYmRpciAiKikgOzsKLSsJICAqKSBmaW5hbGl6ZV9ycGF0aD0iJGZpbmFsaXplX3JwYXRoICRs aWJkaXIiIDs7Ci0rCSAgZXNhYwotKwlkb25lCi0rICAgICAgZmkKLSsKLSsgICAgICAjIE5vdyBo YXJkY29kZSB0aGUgbGlicmFyeSBwYXRocwotKyAgICAgIHJwYXRoPQotKyAgICAgIGhhcmRjb2Rl X2xpYmRpcnM9Ci0rICAgICAgZm9yIGxpYmRpciBpbiAkY29tcGlsZV9ycGF0aCAkZmluYWxpemVf cnBhdGg7IGRvCi0rCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhl bgotKwkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhlbgotKwkg ICAgaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0rCSAgICAgIGhhcmRjb2Rl X2xpYmRpcnM9IiRsaWJkaXIiCi0rCSAgICBlbHNlCi0rCSAgICAgICMgSnVzdCBhY2N1bXVsYXRl IHRoZSB1bmlxdWUgbGliZGlycy4KLSsJICAgICAgY2FzZSAkaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvciRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IgaW4KLSsJICAg ICAgKiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvciIqKQotKwkJOzsKLSsJICAgICAgKikKLSsJCWhhcmRjb2RlX2xpYmRpcnM9IiRoYXJk Y29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgotKwkJOzsKLSsJ ICAgICAgZXNhYwotKwkgICAgZmkKLSsJICBlbHNlCi0rCSAgICBldmFsIGZsYWc9XCIkaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY1wiCi0rCSAgICBycGF0aD0iJHJwYXRoICRmbGFnIgotKwkgIGZp Ci0rCWVsaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgotKwkgIGNhc2UgIiRwZXJtX3Jw YXRoICIgaW4KLSsJICAqIiAkbGliZGlyICIqKSA7OwotKwkgICopIHBlcm1fcnBhdGg9IiRwZXJt X3JwYXRoICRsaWJkaXIiIDs7Ci0rCSAgZXNhYwotKwlmaQotKwljYXNlICRob3N0IGluCi0rCSot Ki1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi1jZWdjYyop Ci0rCSAgdGVzdGJpbmRpcj1gJHtFQ0hPfSAiJGxpYmRpciIgfCAke1NFRH0gLWUgJ3MqL2xpYiQq L2JpbionYAotKwkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgotKwkgICoiOiRsaWJkaXI6Iiop IDs7Ci0rCSAgOjopIGRsbHNlYXJjaHBhdGg9JGxpYmRpcjs7Ci0rCSAgKikgZGxsc2VhcmNocGF0 aD0iJGRsbHNlYXJjaHBhdGg6JGxpYmRpciI7OwotKwkgIGVzYWMKLSsJICBjYXNlIDokZGxsc2Vh cmNocGF0aDogaW4KLSsJICAqIjokdGVzdGJpbmRpcjoiKikgOzsKLSsJICA6OikgZGxsc2VhcmNo cGF0aD0kdGVzdGJpbmRpcjs7Ci0rCSAgKikgZGxsc2VhcmNocGF0aD0iJGRsbHNlYXJjaHBhdGg6 JHRlc3RiaW5kaXIiOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGRvbmUKLSsg ICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhlIHJwYXRoLgot KyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgotKwkgdGVz dCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0rCWxpYmRpcj0iJGhhcmRjb2RlX2xpYmRp cnMiCi0rCWV2YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgotKyAgICAg IGZpCi0rICAgICAgY29tcGlsZV9ycGF0aD0iJHJwYXRoIgotKwotKyAgICAgIHJwYXRoPQotKyAg ICAgIGhhcmRjb2RlX2xpYmRpcnM9Ci0rICAgICAgZm9yIGxpYmRpciBpbiAkZmluYWxpemVfcnBh dGg7IGRvCi0rCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgot KwkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhlbgotKwkgICAg aWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0rCSAgICAgIGhhcmRjb2RlX2xp YmRpcnM9IiRsaWJkaXIiCi0rCSAgICBlbHNlCi0rCSAgICAgICMgSnVzdCBhY2N1bXVsYXRlIHRo ZSB1bmlxdWUgbGliZGlycy4KLSsJICAgICAgY2FzZSAkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv ciRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IgaW4KLSsJICAgICAg KiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvciIqKQotKwkJOzsKLSsJICAgICAgKikKLSsJCWhhcmRjb2RlX2xpYmRpcnM9IiRoYXJkY29k ZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgotKwkJOzsKLSsJICAg ICAgZXNhYwotKwkgICAgZmkKLSsJICBlbHNlCi0rCSAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY1wiCi0rCSAgICBycGF0aD0iJHJwYXRoICRmbGFnIgotKwkgIGZpCi0r CWVsaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgotKwkgIGNhc2UgIiRmaW5hbGl6ZV9w ZXJtX3JwYXRoICIgaW4KLSsJICAqIiAkbGliZGlyICIqKSA7OwotKwkgICopIGZpbmFsaXplX3Bl cm1fcnBhdGg9IiRmaW5hbGl6ZV9wZXJtX3JwYXRoICRsaWJkaXIiIDs7Ci0rCSAgZXNhYwotKwlm aQotKyAgICAgIGRvbmUKLSsgICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJz IGludG8gdGhlIHJwYXRoLgotKyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yIiAmJgotKwkgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0rCWxpYmRp cj0iJGhhcmRjb2RlX2xpYmRpcnMiCi0rCWV2YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNcIgotKyAgICAgIGZpCi0rICAgICAgZmluYWxpemVfcnBhdGg9IiRycGF0aCIKLSsK LSsgICAgICBpZiB0ZXN0IC1uICIkbGlib2JqcyIgJiYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9 IHllczsgdGhlbgotKwkjIFRyYW5zZm9ybSBhbGwgdGhlIGxpYnJhcnkgb2JqZWN0cyBpbnRvIHN0 YW5kYXJkIG9iamVjdHMuCi0rCWNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21t YW5kIiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8ybyIgfCAkTkwyU1BgCi0rCWZpbmFsaXplX2Nv bW1hbmQ9YCRFQ0hPICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgIiRs bzJvIiB8ICROTDJTUGAKLSsgICAgICBmaQotKwotKyAgICAgIGZ1bmNfZ2VuZXJhdGVfZGxzeW1z ICIkb3V0cHV0bmFtZSIgIkBQUk9HUkFNQCIgIm5vIgotKwotKyAgICAgICMgdGVtcGxhdGUgcHJl bGlua2luZyBzdGVwCi0rICAgICAgaWYgdGVzdCAtbiAiJHByZWxpbmtfY21kcyI7IHRoZW4KLSsJ ZnVuY19leGVjdXRlX2NtZHMgIiRwcmVsaW5rX2NtZHMiICdleGl0ICQ/JwotKyAgICAgIGZpCi0r Ci0rICAgICAgd3JhcHBlcnNfcmVxdWlyZWQ9eWVzCi0rICAgICAgY2FzZSAkaG9zdCBpbgotKyAg ICAgICpjeWd3aW4qIHwgKm1pbmd3KiApCi0rICAgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9v bF9saWJzIiAhPSB5ZXM7IHRoZW4KLSsgICAgICAgICAgd3JhcHBlcnNfcmVxdWlyZWQ9bm8KLSsg ICAgICAgIGZpCi0rICAgICAgICA7OwotKyAgICAgICpjZWdjYykKLSsgICAgICAgICMgRGlzYWJs ZSB3cmFwcGVycyBmb3IgY2VnY2MsIHdlIGFyZSBjcm9zcyBjb21waWxpbmcgYW55d2F5LgotKyAg ICAgICAgd3JhcHBlcnNfcmVxdWlyZWQ9bm8KLSsgICAgICAgIDs7Ci0rICAgICAgKikKLSsgICAg ICAgIGlmIHRlc3QgIiRuZWVkX3JlbGluayIgPSBubyB8fCB0ZXN0ICIkYnVpbGRfbGlidG9vbF9s aWJzIiAhPSB5ZXM7IHRoZW4KLSsgICAgICAgICAgd3JhcHBlcnNfcmVxdWlyZWQ9bm8KLSsgICAg ICAgIGZpCi0rICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgICBpZiB0ZXN0ICIkd3JhcHBl cnNfcmVxdWlyZWQiID0gbm87IHRoZW4KLSsJIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVj aWZpY2F0aW9uLgotKwljb21waWxlX2NvbW1hbmQ9YCRFQ0hPICJYJGNvbXBpbGVfY29tbWFuZCIg fCAkWHNlZCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXQiJyVnJ2AKLSsJbGlua19jb21tYW5kPSIk Y29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCi0rCi0rCSMgV2UgaGF2ZSBubyB1bmluc3Rh bGxlZCBsaWJyYXJ5IGRlcGVuZGVuY2llcywgc28gZmluYWxpemUgcmlnaHQgbm93LgotKwlleGl0 X3N0YXR1cz0wCi0rCWZ1bmNfc2hvd19ldmFsICIkbGlua19jb21tYW5kIiAnZXhpdF9zdGF0dXM9 JD8nCi0rCi0rCSMgRGVsZXRlIHRoZSBnZW5lcmF0ZWQgZmlsZXMuCi0rCWlmIHRlc3QgLWYgIiRv dXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSI7IHRoZW4KLSsJICBmdW5jX3No b3dfZXZhbCAnJFJNICIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9Uy4ke29iamV4dH0iJwot KwlmaQotKwotKwlleGl0ICRleGl0X3N0YXR1cwotKyAgICAgIGZpCi0rCi0rICAgICAgaWYgdGVz dCAtbiAiJGNvbXBpbGVfc2hsaWJwYXRoJGZpbmFsaXplX3NobGlicGF0aCI7IHRoZW4KLSsJY29t cGlsZV9jb21tYW5kPSIkc2hsaWJwYXRoX3Zhcj1cIiRjb21waWxlX3NobGlicGF0aCRmaW5hbGl6 ZV9zaGxpYnBhdGhcJCRzaGxpYnBhdGhfdmFyXCIgJGNvbXBpbGVfY29tbWFuZCIKLSsgICAgICBm aQotKyAgICAgIGlmIHRlc3QgLW4gIiRmaW5hbGl6ZV9zaGxpYnBhdGgiOyB0aGVuCi0rCWZpbmFs aXplX2NvbW1hbmQ9IiRzaGxpYnBhdGhfdmFyPVwiJGZpbmFsaXplX3NobGlicGF0aFwkJHNobGli cGF0aF92YXJcIiAkZmluYWxpemVfY29tbWFuZCIKLSsgICAgICBmaQotKwotKyAgICAgIGNvbXBp bGVfdmFyPQotKyAgICAgIGZpbmFsaXplX3Zhcj0KLSsgICAgICBpZiB0ZXN0IC1uICIkcnVucGF0 aF92YXIiOyB0aGVuCi0rCWlmIHRlc3QgLW4gIiRwZXJtX3JwYXRoIjsgdGhlbgotKwkgICMgV2Ug c2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIuCi0rCSAgcnBhdGg9Ci0rCSAgZm9yIGRpciBpbiAk cGVybV9ycGF0aDsgZG8KLSsJICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIKLSsJICBkb25lCi0rCSAg Y29tcGlsZV92YXI9IiRydW5wYXRoX3Zhcj1cIiRycGF0aFwkJHJ1bnBhdGhfdmFyXCIgIgotKwlm aQotKwlpZiB0ZXN0IC1uICIkZmluYWxpemVfcGVybV9ycGF0aCI7IHRoZW4KLSsJICAjIFdlIHNo b3VsZCBzZXQgdGhlIHJ1bnBhdGhfdmFyLgotKwkgIHJwYXRoPQotKwkgIGZvciBkaXIgaW4gJGZp bmFsaXplX3Blcm1fcnBhdGg7IGRvCi0rCSAgICBycGF0aD0iJHJwYXRoJGRpcjoiCi0rCSAgZG9u ZQotKwkgIGZpbmFsaXplX3Zhcj0iJHJ1bnBhdGhfdmFyPVwiJHJwYXRoXCQkcnVucGF0aF92YXJc IiAiCi0rCWZpCi0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0ICIkbm9faW5zdGFsbCIgPSB5 ZXM7IHRoZW4KLSsJIyBXZSBkb24ndCBuZWVkIHRvIGNyZWF0ZSBhIHdyYXBwZXIgc2NyaXB0Lgot KwlsaW5rX2NvbW1hbmQ9IiRjb21waWxlX3ZhciRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0 aCIKLSsJIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgotKwlsaW5rX2Nv bW1hbmQ9YCRFQ0hPICJYJGxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCUnIiRv dXRwdXQiJyVnJ2AKLSsJIyBEZWxldGUgdGhlIG9sZCBvdXRwdXQgZmlsZS4KLSsJJG9wdF9kcnlf cnVuIHx8ICRSTSAkb3V0cHV0Ci0rCSMgTGluayB0aGUgZXhlY3V0YWJsZSBhbmQgZXhpdAotKwlm dW5jX3Nob3dfZXZhbCAiJGxpbmtfY29tbWFuZCIgJ2V4aXQgJD8nCi0rCWV4aXQgJEVYSVRfU1VD Q0VTUwotKyAgICAgIGZpCi0rCi0rICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2FjdGlvbiIgPSBy ZWxpbms7IHRoZW4KLSsJIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCi0rCWxp bmtfY29tbWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgot KwlyZWxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRmaW5hbGl6ZV9jb21tYW5kJGZpbmFsaXpl X3JwYXRoIgotKwotKwlmdW5jX3dhcm5pbmcgInRoaXMgcGxhdGZvcm0gZG9lcyBub3QgbGlrZSB1 bmluc3RhbGxlZCBzaGFyZWQgbGlicmFyaWVzIgotKwlmdW5jX3dhcm5pbmcgIlxgJG91dHB1dCcg d2lsbCBiZSByZWxpbmtlZCBkdXJpbmcgaW5zdGFsbGF0aW9uIgotKyAgICAgIGVsc2UKLSsJaWYg dGVzdCAiJGZhc3RfaW5zdGFsbCIgIT0gbm87IHRoZW4KLSsJICBsaW5rX2NvbW1hbmQ9IiRmaW5h bGl6ZV92YXIkY29tcGlsZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgotKwkgIGlmIHRlc3QgIiRm YXN0X2luc3RhbGwiID0geWVzOyB0aGVuCi0rCSAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgk Y29tcGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiIHwgJFhzZWQgLWUgJ3Ml QE9VVFBVVEAlXCRwcm9nZGlyL1wkZmlsZSVnJ2AKLSsJICBlbHNlCi0rCSAgICAjIGZhc3RfaW5z dGFsbCBpcyBzZXQgdG8gbmVlZGxlc3MKLSsJICAgIHJlbGlua19jb21tYW5kPQotKwkgIGZpCi0r CWVsc2UKLSsJICBsaW5rX2NvbW1hbmQ9IiRjb21waWxlX3ZhciRjb21waWxlX2NvbW1hbmQkY29t cGlsZV9ycGF0aCIKLSsJICByZWxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRmaW5hbGl6ZV9j b21tYW5kJGZpbmFsaXplX3JwYXRoIgotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAgIyBSZXBs YWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgotKyAgICAgIGxpbmtfY29tbWFuZD1g JEVDSE8gIlgkbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dF9v YmpkaXIvJG91dHB1dG5hbWUiJyVnJ2AKLSsKLSsgICAgICAjIERlbGV0ZSB0aGUgb2xkIG91dHB1 dCBmaWxlcy4KLSsgICAgICAkb3B0X2RyeV9ydW4gfHwgJFJNICRvdXRwdXQgJG91dHB1dF9vYmpk aXIvJG91dHB1dG5hbWUgJG91dHB1dF9vYmpkaXIvbHQtJG91dHB1dG5hbWUKLSsKLSsgICAgICBm dW5jX3Nob3dfZXZhbCAiJGxpbmtfY29tbWFuZCIgJ2V4aXQgJD8nCi0rCi0rICAgICAgIyBOb3cg Y3JlYXRlIHRoZSB3cmFwcGVyIHNjcmlwdC4KLSsgICAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5n ICRvdXRwdXQiCi0rCi0rICAgICAgIyBRdW90ZSB0aGUgcmVsaW5rIGNvbW1hbmQgZm9yIHNoaXBw aW5nLgotKyAgICAgIGlmIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4KLSsJIyBQcmVz ZXJ2ZSBhbnkgdmFyaWFibGVzIHRoYXQgbWF5IGFmZmVjdCBjb21waWxlciBiZWhhdmlvcgotKwlm b3IgdmFyIGluICR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluazsgZG8KLSsJICBpZiBldmFsIHRl c3QgLXogXCJcJHskdmFyK3NldH1cIjsgdGhlbgotKwkgICAgcmVsaW5rX2NvbW1hbmQ9InsgdGVz dCAteiBcIlwkeyR2YXIrc2V0fVwiIHx8ICRsdF91bnNldCAkdmFyIHx8IHsgJHZhcj07IGV4cG9y dCAkdmFyOyB9OyB9OyAkcmVsaW5rX2NvbW1hbmQiCi0rCSAgZWxpZiBldmFsIHZhcl92YWx1ZT1c JCR2YXI7IHRlc3QgLXogIiR2YXJfdmFsdWUiOyB0aGVuCi0rCSAgICByZWxpbmtfY29tbWFuZD0i JHZhcj07IGV4cG9ydCAkdmFyOyAkcmVsaW5rX2NvbW1hbmQiCi0rCSAgZWxzZQotKwkgICAgZnVu Y19xdW90ZV9mb3JfZXZhbCAiJHZhcl92YWx1ZSIKLSsJICAgIHJlbGlua19jb21tYW5kPSIkdmFy PSRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdDsgZXhwb3J0ICR2YXI7ICRyZWxpbmtfY29tbWFu ZCIKLSsJICBmaQotKwlkb25lCi0rCXJlbGlua19jb21tYW5kPSIoY2QgYHB3ZGA7ICRyZWxpbmtf Y29tbWFuZCkiCi0rCXJlbGlua19jb21tYW5kPWAkRUNITyAiWCRyZWxpbmtfY29tbWFuZCIgfCAk WHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCi0rICAgICAgZmkKLSsKLSsgICAgICAjIFF1b3Rl ICRFQ0hPIGZvciBzaGlwcGluZy4KLSsgICAgICBpZiB0ZXN0ICJYJEVDSE8iID0gIlgkU0hFTEwg JHByb2dwYXRoIC0tZmFsbGJhY2stZWNobyI7IHRoZW4KLSsJY2FzZSAkcHJvZ3BhdGggaW4KLSsJ W1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBxZWNobz0iJFNIRUxMICRwcm9ncGF0aCAtLWZhbGxi YWNrLWVjaG8iOzsKLSsJKikgcWVjaG89IiRTSEVMTCBgcHdkYC8kcHJvZ3BhdGggLS1mYWxsYmFj ay1lY2hvIjs7Ci0rCWVzYWMKLSsJcWVjaG89YCRFQ0hPICJYJHFlY2hvIiB8ICRYc2VkIC1lICIk c2VkX3F1b3RlX3N1YnN0ImAKLSsgICAgICBlbHNlCi0rCXFlY2hvPWAkRUNITyAiWCRFQ0hPIiB8 ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKLSsgICAgICBmaQotKwotKyAgICAgICMgT25s eSBhY3R1YWxseSBkbyB0aGluZ3MgaWYgbm90IGluIGRyeSBydW4gbW9kZS4KLSsgICAgICAkb3B0 X2RyeV9ydW4gfHwgewotKwkjIHdpbjMyIHdpbGwgdGhpbmsgdGhlIHNjcmlwdCBpcyBhIGJpbmFy eSBpZiBpdCBoYXMKLSsJIyBhIC5leGUgc3VmZml4LCBzbyB3ZSBzdHJpcCBpdCBvZmYgaGVyZS4K LSsJY2FzZSAkb3V0cHV0IGluCi0rCSAgKi5leGUpIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAi JG91dHB1dCIKLSsJICAgICAgICAgb3V0cHV0PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQgOzsKLSsJ ZXNhYwotKwkjIHRlc3QgZm9yIGN5Z3dpbiBiZWNhdXNlIG12IGZhaWxzIHcvbyAuZXhlIGV4dGVu c2lvbnMKLSsJY2FzZSAkaG9zdCBpbgotKwkgICpjeWd3aW4qKQotKwkgICAgZXhlZXh0PS5leGUK LSsJICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJG91dHB1dG5hbWUiCi0rCSAgICBvdXRw dXRuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQgOzsKLSsJICAqKSBleGVleHQ9IDs7Ci0rCWVz YWMKLSsJY2FzZSAkaG9zdCBpbgotKwkgICpjeWd3aW4qIHwgKm1pbmd3KiApCi0rCSAgICBmdW5j X2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICIkb3V0cHV0IiAiIiAiLiIKLSsJICAgIG91dHB1dF9uYW1l PSRmdW5jX2Jhc2VuYW1lX3Jlc3VsdAotKwkgICAgb3V0cHV0X3BhdGg9JGZ1bmNfZGlybmFtZV9y ZXN1bHQKLSsJICAgIGN3cmFwcGVyc291cmNlPSIkb3V0cHV0X3BhdGgvJG9iamRpci9sdC0kb3V0 cHV0X25hbWUuYyIKLSsJICAgIGN3cmFwcGVyPSIkb3V0cHV0X3BhdGgvJG91dHB1dF9uYW1lLmV4 ZSIKLSsJICAgICRSTSAkY3dyYXBwZXJzb3VyY2UgJGN3cmFwcGVyCi0rCSAgICB0cmFwICIkUk0g JGN3cmFwcGVyc291cmNlICRjd3JhcHBlcjsgZXhpdCAkRVhJVF9GQUlMVVJFIiAxIDIgMTUKLSsK LSsJICAgIGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMgPiAkY3dyYXBwZXJzb3VyY2UKLSsKLSsJ ICAgICMgVGhlIHdyYXBwZXIgZXhlY3V0YWJsZSBpcyBidWlsdCB1c2luZyB0aGUgJGhvc3QgY29t cGlsZXIsCi0rCSAgICAjIGJlY2F1c2UgaXQgY29udGFpbnMgJGhvc3QgcGF0aHMgYW5kIGZpbGVz LiBJZiBjcm9zcy0KLSsJICAgICMgY29tcGlsaW5nLCBpdCwgbGlrZSB0aGUgdGFyZ2V0IGV4ZWN1 dGFibGUsIG11c3QgYmUKLSsJICAgICMgZXhlY3V0ZWQgb24gdGhlICRob3N0IG9yIHVuZGVyIGFu IGVtdWxhdGlvbiBlbnZpcm9ubWVudC4KLSsJICAgICRvcHRfZHJ5X3J1biB8fCB7Ci0rCSAgICAg ICRMVENDICRMVENGTEFHUyAtbyAkY3dyYXBwZXIgJGN3cmFwcGVyc291cmNlCi0rCSAgICAgICRT VFJJUCAkY3dyYXBwZXIKLSsJICAgIH0KLSsKLSsJICAgICMgTm93LCBjcmVhdGUgdGhlIHdyYXBw ZXIgc2NyaXB0IGZvciBmdW5jX3NvdXJjZSB1c2U6Ci0rCSAgICBmdW5jX2x0d3JhcHBlcl9zY3Jp cHRuYW1lICRjd3JhcHBlcgotKwkgICAgJFJNICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jl c3VsdAotKwkgICAgdHJhcCAiJFJNICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdDsg ZXhpdCAkRVhJVF9GQUlMVVJFIiAxIDIgMTUKLSsJICAgICRvcHRfZHJ5X3J1biB8fCB7Ci0rCSAg ICAgICMgbm90ZTogdGhpcyBzY3JpcHQgd2lsbCBub3QgYmUgZXhlY3V0ZWQsIHNvIGRvIG5vdCBj aG1vZC4KLSsJICAgICAgaWYgdGVzdCAieCRidWlsZCIgPSAieCRob3N0IiA7IHRoZW4KLSsJCSRj d3JhcHBlciAtLWx0LWR1bXAtc2NyaXB0ID4gJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVz dWx0Ci0rCSAgICAgIGVsc2UKLSsJCWZ1bmNfZW1pdF93cmFwcGVyIG5vID4gJGZ1bmNfbHR3cmFw cGVyX3NjcmlwdG5hbWVfcmVzdWx0Ci0rCSAgICAgIGZpCi0rCSAgICB9Ci0rCSAgOzsKLSsJICAq ICkKLSsJICAgICRSTSAkb3V0cHV0Ci0rCSAgICB0cmFwICIkUk0gJG91dHB1dDsgZXhpdCAkRVhJ VF9GQUlMVVJFIiAxIDIgMTUKLSsKLSsJICAgIGZ1bmNfZW1pdF93cmFwcGVyIG5vID4gJG91dHB1 dAotKwkgICAgY2htb2QgK3ggJG91dHB1dAotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICB9Ci0rICAg ICAgZXhpdCAkRVhJVF9TVUNDRVNTCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICAjIFNl ZSBpZiB3ZSBuZWVkIHRvIGJ1aWxkIGFuIG9sZC1mYXNoaW9uZWQgYXJjaGl2ZS4KLSsgICAgZm9y IG9sZGxpYiBpbiAkb2xkbGliczsgZG8KLSsKLSsgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9v bF9saWJzIiA9IGNvbnZlbmllbmNlOyB0aGVuCi0rCW9sZG9ianM9IiRsaWJvYmpzX3NhdmUgJHN5 bWZpbGVvYmoiCi0rCWFkZGxpYnM9IiRjb252ZW5pZW5jZSIKLSsJYnVpbGRfbGlidG9vbF9saWJz PW5vCi0rICAgICAgZWxzZQotKwlpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG1vZHVs ZTsgdGhlbgotKwkgIG9sZG9ianM9IiRsaWJvYmpzX3NhdmUiCi0rCSAgYnVpbGRfbGlidG9vbF9s aWJzPW5vCi0rCWVsc2UKLSsJICBvbGRvYmpzPSIkb2xkX2RlcGxpYnMgJG5vbl9waWNfb2JqZWN0 cyIKLSsJICBpZiB0ZXN0ICIkcHJlbG9hZCIgPSB5ZXMgJiYgdGVzdCAtZiAiJHN5bWZpbGVvYmoi OyB0aGVuCi0rCSAgICBvbGRvYmpzPSIkb2xkb2JqcyAkc3ltZmlsZW9iaiIKLSsJICBmaQotKwlm aQotKwlhZGRsaWJzPSIkb2xkX2NvbnZlbmllbmNlIgotKyAgICAgIGZpCi0rCi0rICAgICAgaWYg dGVzdCAtbiAiJGFkZGxpYnMiOyB0aGVuCi0rCWdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRw dXRuYW1lfXgiCi0rCWdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgotKwotKwlmdW5jX2V4 dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkYWRkbGlicwotKwlvbGRvYmpzPSIkb2xkb2JqcyAkZnVu Y19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKLSsgICAgICBmaQotKwotKyAgICAgICMgRG8gZWFj aCBjb21tYW5kIGluIHRoZSBhcmNoaXZlIGNvbW1hbmRzLgotKyAgICAgIGlmIHRlc3QgLW4gIiRv bGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzIiAmJiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9 IHllczsgdGhlbgotKwljbWRzPSRvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzCi0rICAgICAgZWxz ZQotKwotKwkjIEFkZCBhbnkgb2JqZWN0cyBmcm9tIHByZWxvYWRlZCBjb252ZW5pZW5jZSBsaWJy YXJpZXMKLSsJaWYgdGVzdCAtbiAiJGRscHJlZmlsZXMiOyB0aGVuCi0rCSAgZ2VudG9wPSIkb3V0 cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKLSsJICBnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdl bnRvcCIKLSsKLSsJICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkZGxwcmVmaWxlcwot KwkgIG9sZG9ianM9IiRvbGRvYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgotKwlm aQotKwotKwkjIFBPU0lYIGRlbWFuZHMgbm8gcGF0aHMgdG8gYmUgZW5jb2RlZCBpbiBhcmNoaXZl cy4gIFdlIGhhdmUKLSsJIyB0byBhdm9pZCBjcmVhdGluZyBhcmNoaXZlcyB3aXRoIGR1cGxpY2F0 ZSBiYXNlbmFtZXMgaWYgd2UKLSsJIyBtaWdodCBoYXZlIHRvIGV4dHJhY3QgdGhlbSBhZnRlcndh cmRzLCBlLmcuLCB3aGVuIGNyZWF0aW5nIGEKLSsJIyBzdGF0aWMgYXJjaGl2ZSBvdXQgb2YgYSBj b252ZW5pZW5jZSBsaWJyYXJ5LCBvciB3aGVuIGxpbmtpbmcKLSsJIyB0aGUgZW50aXJldHkgb2Yg YSBsaWJ0b29sIGFyY2hpdmUgaW50byBhbm90aGVyIChjdXJyZW50bHkKLSsJIyBub3Qgc3VwcG9y dGVkIGJ5IGxpYnRvb2wpLgotKwlpZiAoZm9yIG9iaiBpbiAkb2xkb2JqcwotKwkgICAgZG8KLSsJ ICAgICAgZnVuY19iYXNlbmFtZSAiJG9iaiIKLSsJICAgICAgJEVDSE8gIiRmdW5jX2Jhc2VuYW1l X3Jlc3VsdCIKLSsJICAgIGRvbmUgfCBzb3J0IHwgc29ydCAtdWMgPi9kZXYvbnVsbCAyPiYxKTsg dGhlbgotKwkgIDoKLSsJZWxzZQotKwkgICRFQ0hPICJjb3B5aW5nIHNlbGVjdGVkIG9iamVjdCBm aWxlcyB0byBhdm9pZCBiYXNlbmFtZSBjb25mbGljdHMuLi4iCi0rCSAgZ2VudG9wPSIkb3V0cHV0 X29iamRpci8ke291dHB1dG5hbWV9eCIKLSsJICBnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRv cCIKLSsJICBmdW5jX21rZGlyX3AgIiRnZW50b3AiCi0rCSAgc2F2ZV9vbGRvYmpzPSRvbGRvYmpz Ci0rCSAgb2xkb2Jqcz0KLSsJICBjb3VudGVyPTEKLSsJICBmb3Igb2JqIGluICRzYXZlX29sZG9i anMKLSsJICBkbwotKwkgICAgZnVuY19iYXNlbmFtZSAiJG9iaiIKLSsJICAgIG9iamJhc2U9IiRm dW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJICAgIGNhc2UgIiAkb2xkb2JqcyAiIGluCi0rCSAgICAi ICIpIG9sZG9ianM9JG9iaiA7OwotKwkgICAgKltcIC9dIiRvYmpiYXNlICIqKQotKwkgICAgICB3 aGlsZSA6OyBkbwotKwkJIyBNYWtlIHN1cmUgd2UgZG9uJ3QgcGljayBhbiBhbHRlcm5hdGUgbmFt ZSB0aGF0IGFsc28KLSsJCSMgb3ZlcmxhcHMuCi0rCQluZXdvYmo9bHQkY291bnRlci0kb2JqYmFz ZQotKwkJZnVuY19hcml0aCAkY291bnRlciArIDEKLSsJCWNvdW50ZXI9JGZ1bmNfYXJpdGhfcmVz dWx0Ci0rCQljYXNlICIgJG9sZG9ianMgIiBpbgotKwkJKltcIC9dIiRuZXdvYmogIiopIDs7Ci0r CQkqKSBpZiB0ZXN0ICEgLWYgIiRnZW50b3AvJG5ld29iaiI7IHRoZW4gYnJlYWs7IGZpIDs7Ci0r CQllc2FjCi0rCSAgICAgIGRvbmUKLSsJICAgICAgZnVuY19zaG93X2V2YWwgImxuICRvYmogJGdl bnRvcC8kbmV3b2JqIHx8IGNwICRvYmogJGdlbnRvcC8kbmV3b2JqIgotKwkgICAgICBvbGRvYmpz PSIkb2xkb2JqcyAkZ2VudG9wLyRuZXdvYmoiCi0rCSAgICAgIDs7Ci0rCSAgICAqKSBvbGRvYmpz PSIkb2xkb2JqcyAkb2JqIiA7OwotKwkgICAgZXNhYwotKwkgIGRvbmUKLSsJZmkKLSsJZXZhbCBj bWRzPVwiJG9sZF9hcmNoaXZlX2NtZHNcIgotKwotKwlmdW5jX2xlbiAiICRjbWRzIgotKwlsZW49 JGZ1bmNfbGVuX3Jlc3VsdAotKwlpZiB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiIgfHwg dGVzdCAiJG1heF9jbWRfbGVuIiAtbGUgLTE7IHRoZW4KLSsJICBjbWRzPSRvbGRfYXJjaGl2ZV9j bWRzCi0rCWVsc2UKLSsJICAjIHRoZSBjb21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8gbGluayBp biBvbmUgc3RlcCwgbGluayBpbiBwYXJ0cwotKwkgIGZ1bmNfdmVyYm9zZSAidXNpbmcgcGllY2V3 aXNlIGFyY2hpdmUgbGlua2luZy4uLiIKLSsJICBzYXZlX1JBTkxJQj0kUkFOTElCCi0rCSAgUkFO TElCPToKLSsJICBvYmpsaXN0PQotKwkgIGNvbmNhdF9jbWRzPQotKwkgIHNhdmVfb2xkb2Jqcz0k b2xkb2JqcwotKwkgIG9sZG9ianM9Ci0rCSAgIyBJcyB0aGVyZSBhIGJldHRlciB3YXkgb2YgZmlu ZGluZyB0aGUgbGFzdCBvYmplY3QgaW4gdGhlIGxpc3Q/Ci0rCSAgZm9yIG9iaiBpbiAkc2F2ZV9v bGRvYmpzCi0rCSAgZG8KLSsJICAgIGxhc3Rfb2xkb2JqPSRvYmoKLSsJICBkb25lCi0rCSAgZXZh bCB0ZXN0X2NtZHM9XCIkb2xkX2FyY2hpdmVfY21kc1wiCi0rCSAgZnVuY19sZW4gIiAkdGVzdF9j bWRzIgotKwkgIGxlbjA9JGZ1bmNfbGVuX3Jlc3VsdAotKwkgIGxlbj0kbGVuMAotKwkgIGZvciBv YmogaW4gJHNhdmVfb2xkb2JqcwotKwkgIGRvCi0rCSAgICBmdW5jX2xlbiAiICRvYmoiCi0rCSAg ICBmdW5jX2FyaXRoICRsZW4gKyAkZnVuY19sZW5fcmVzdWx0Ci0rCSAgICBsZW49JGZ1bmNfYXJp dGhfcmVzdWx0Ci0rCSAgICBmdW5jX2FwcGVuZCBvYmpsaXN0ICIgJG9iaiIKLSsJICAgIGlmIHRl c3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIjsgdGhlbgotKwkgICAgICA6Ci0rCSAgICBlbHNl Ci0rCSAgICAgICMgdGhlIGFib3ZlIGNvbW1hbmQgc2hvdWxkIGJlIHVzZWQgYmVmb3JlIGl0IGdl dHMgdG9vIGxvbmcKLSsJICAgICAgb2xkb2Jqcz0kb2JqbGlzdAotKwkgICAgICBpZiB0ZXN0ICIk b2JqIiA9ICIkbGFzdF9vbGRvYmoiIDsgdGhlbgotKwkJUkFOTElCPSRzYXZlX1JBTkxJQgotKwkg ICAgICBmaQotKwkgICAgICB0ZXN0IC16ICIkY29uY2F0X2NtZHMiIHx8IGNvbmNhdF9jbWRzPSRj b25jYXRfY21kc34KLSsJICAgICAgZXZhbCBjb25jYXRfY21kcz1cIlwke2NvbmNhdF9jbWRzfSRv bGRfYXJjaGl2ZV9jbWRzXCIKLSsJICAgICAgb2JqbGlzdD0KLSsJICAgICAgbGVuPSRsZW4wCi0r CSAgICBmaQotKwkgIGRvbmUKLSsJICBSQU5MSUI9JHNhdmVfUkFOTElCCi0rCSAgb2xkb2Jqcz0k b2JqbGlzdAotKwkgIGlmIHRlc3QgIlgkb2xkb2JqcyIgPSAiWCIgOyB0aGVuCi0rCSAgICBldmFs IGNtZHM9XCJcJGNvbmNhdF9jbWRzXCIKLSsJICBlbHNlCi0rCSAgICBldmFsIGNtZHM9XCJcJGNv bmNhdF9jbWRzflwkb2xkX2FyY2hpdmVfY21kc1wiCi0rCSAgZmkKLSsJZmkKLSsgICAgICBmaQot KyAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkY21kcyIgJ2V4aXQgJD8nCi0rICAgIGRvbmUKLSsK LSsgICAgdGVzdCAtbiAiJGdlbmVyYXRlZCIgJiYgXAotKyAgICAgIGZ1bmNfc2hvd19ldmFsICIk e1JNfXIkZ2VuZXJhdGVkIgotKwotKyAgICAjIE5vdyBjcmVhdGUgdGhlIGxpYnRvb2wgYXJjaGl2 ZS4KLSsgICAgY2FzZSAkb3V0cHV0IGluCi0rICAgICoubGEpCi0rICAgICAgb2xkX2xpYnJhcnk9 Ci0rICAgICAgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllcyAmJiBvbGRfbGlicmFyeT0iJGxp Ym5hbWUuJGxpYmV4dCIKLSsgICAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nICRvdXRwdXQiCi0r Ci0rICAgICAgIyBQcmVzZXJ2ZSBhbnkgdmFyaWFibGVzIHRoYXQgbWF5IGFmZmVjdCBjb21waWxl ciBiZWhhdmlvcgotKyAgICAgIGZvciB2YXIgaW4gJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5r OyBkbwotKwlpZiBldmFsIHRlc3QgLXogXCJcJHskdmFyK3NldH1cIjsgdGhlbgotKwkgIHJlbGlu a19jb21tYW5kPSJ7IHRlc3QgLXogXCJcJHskdmFyK3NldH1cIiB8fCAkbHRfdW5zZXQgJHZhciB8 fCB7ICR2YXI9OyBleHBvcnQgJHZhcjsgfTsgfTsgJHJlbGlua19jb21tYW5kIgotKwllbGlmIGV2 YWwgdmFyX3ZhbHVlPVwkJHZhcjsgdGVzdCAteiAiJHZhcl92YWx1ZSI7IHRoZW4KLSsJICByZWxp bmtfY29tbWFuZD0iJHZhcj07IGV4cG9ydCAkdmFyOyAkcmVsaW5rX2NvbW1hbmQiCi0rCWVsc2UK LSsJICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkdmFyX3ZhbHVlIgotKwkgIHJlbGlua19jb21tYW5k PSIkdmFyPSRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdDsgZXhwb3J0ICR2YXI7ICRyZWxpbmtf Y29tbWFuZCIKLSsJZmkKLSsgICAgICBkb25lCi0rICAgICAgIyBRdW90ZSB0aGUgbGluayBjb21t YW5kIGZvciBzaGlwcGluZy4KLSsgICAgICByZWxpbmtfY29tbWFuZD0iKGNkIGBwd2RgOyAkU0hF TEwgJHByb2dwYXRoICRwcmVzZXJ2ZV9hcmdzIC0tbW9kZT1yZWxpbmsgJGxpYnRvb2xfYXJncyBA aW5zdF9wcmVmaXhfZGlyQCkiCi0rICAgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJHJlbGlu a19jb21tYW5kIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKLSsgICAgICBpZiB0ZXN0 ICIkaGFyZGNvZGVfYXV0b21hdGljIiA9IHllcyA7IHRoZW4KLSsJcmVsaW5rX2NvbW1hbmQ9Ci0r ICAgICAgZmkKLSsKLSsgICAgICAjIE9ubHkgY3JlYXRlIHRoZSBvdXRwdXQgaWYgbm90IGEgZHJ5 IHJ1bi4KLSsgICAgICAkb3B0X2RyeV9ydW4gfHwgewotKwlmb3IgaW5zdGFsbGVkIGluIG5vIHll czsgZG8KLSsJICBpZiB0ZXN0ICIkaW5zdGFsbGVkIiA9IHllczsgdGhlbgotKwkgICAgaWYgdGVz dCAteiAiJGluc3RhbGxfbGliZGlyIjsgdGhlbgotKwkgICAgICBicmVhawotKwkgICAgZmkKLSsJ ICAgIG91dHB1dD0iJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUiaQotKwkgICAgIyBSZXBsYWNl IGFsbCB1bmluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcyB3aXRoIHRoZSBpbnN0YWxsZWQgb25l cwotKwkgICAgbmV3ZGVwZW5kZW5jeV9saWJzPQotKwkgICAgZm9yIGRlcGxpYiBpbiAkZGVwZW5k ZW5jeV9saWJzOyBkbwotKwkgICAgICBjYXNlICRkZXBsaWIgaW4KLSsJICAgICAgKi5sYSkKLSsJ CWZ1bmNfYmFzZW5hbWUgIiRkZXBsaWIiCi0rCQluYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQi Ci0rCQlldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAk ZGVwbGliYAotKwkJdGVzdCAteiAiJGxpYmRpciIgJiYgXAotKwkJICBmdW5jX2ZhdGFsX2Vycm9y ICJcYCRkZXBsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKLSsJCW5ld2RlcGVu ZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVuY3lfbGlicyAkbGliZGlyLyRuYW1lIgotKwkJOzsKLSsJ ICAgICAgKikgbmV3ZGVwZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJzICRkZXBsaWIi IDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGRvbmUKLSsJICAgIGRlcGVuZGVuY3lfbGlicz0iJG5l d2RlcGVuZGVuY3lfbGlicyIKLSsJICAgIG5ld2RsZmlsZXM9Ci0rCi0rCSAgICBmb3IgbGliIGlu ICRkbGZpbGVzOyBkbwotKwkgICAgICBjYXNlICRsaWIgaW4KLSsJICAgICAgKi5sYSkKLSsJICAg ICAgICBmdW5jX2Jhc2VuYW1lICIkbGliIgotKwkJbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0 IgotKwkJZXZhbCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcg JGxpYmAKLSsJCXRlc3QgLXogIiRsaWJkaXIiICYmIFwKLSsJCSAgZnVuY19mYXRhbF9lcnJvciAi XGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCi0rCQluZXdkbGZpbGVzPSIk bmV3ZGxmaWxlcyAkbGliZGlyLyRuYW1lIgotKwkJOzsKLSsJICAgICAgKikgbmV3ZGxmaWxlcz0i JG5ld2RsZmlsZXMgJGxpYiIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgICAgZGxm aWxlcz0iJG5ld2RsZmlsZXMiCi0rCSAgICBuZXdkbHByZWZpbGVzPQotKwkgICAgZm9yIGxpYiBp biAkZGxwcmVmaWxlczsgZG8KLSsJICAgICAgY2FzZSAkbGliIGluCi0rCSAgICAgICoubGEpCi0r CQkjIE9ubHkgcGFzcyBwcmVvcGVuZWQgZmlsZXMgdG8gdGhlIHBzZXVkby1hcmNoaXZlIChmb3IK LSsJCSMgZXZlbnR1YWwgbGlua2luZyB3aXRoIHRoZSBhcHAuIHRoYXQgbGlua3MgaXQpIGlmIHdl Ci0rCQkjIGRpZG4ndCBhbHJlYWR5IGxpbmsgdGhlIHByZW9wZW5lZCBvYmplY3RzIGRpcmVjdGx5 IGludG8KLSsJCSMgdGhlIGxpYnJhcnk6Ci0rCQlmdW5jX2Jhc2VuYW1lICIkbGliIgotKwkJbmFt ZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKwkJZXZhbCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAn cy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGxpYmAKLSsJCXRlc3QgLXogIiRsaWJkaXIiICYmIFwK LSsJCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFy Y2hpdmUiCi0rCQluZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkbGliZGlyLyRuYW1lIgot KwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgICAgZGxwcmVmaWxlcz0iJG5ld2Rs cHJlZmlsZXMiCi0rCSAgZWxzZQotKwkgICAgbmV3ZGxmaWxlcz0KLSsJICAgIGZvciBsaWIgaW4g JGRsZmlsZXM7IGRvCi0rCSAgICAgIGNhc2UgJGxpYiBpbgotKwkJW1xcL10qIHwgW0EtWmEtel06 W1xcL10qKSBhYnM9IiRsaWIiIDs7Ci0rCQkqKSBhYnM9YHB3ZGAiLyRsaWIiIDs7Ci0rCSAgICAg IGVzYWMKLSsJICAgICAgbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGFicyIKLSsJICAgIGRvbmUK LSsJICAgIGRsZmlsZXM9IiRuZXdkbGZpbGVzIgotKwkgICAgbmV3ZGxwcmVmaWxlcz0KLSsJICAg IGZvciBsaWIgaW4gJGRscHJlZmlsZXM7IGRvCi0rCSAgICAgIGNhc2UgJGxpYiBpbgotKwkJW1xc L10qIHwgW0EtWmEtel06W1xcL10qKSBhYnM9IiRsaWIiIDs7Ci0rCQkqKSBhYnM9YHB3ZGAiLyRs aWIiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmls ZXMgJGFicyIKLSsJICAgIGRvbmUKLSsJICAgIGRscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzIgot KwkgIGZpCi0rCSAgJFJNICRvdXRwdXQKLSsJICAjIHBsYWNlIGRsbmFtZSBpbiBjb3JyZWN0IHBv c2l0aW9uIGZvciBjeWd3aW4KLSsJICB0ZGxuYW1lPSRkbG5hbWUKLSsJICBjYXNlICRob3N0LCRv dXRwdXQsJGluc3RhbGxlZCwkbW9kdWxlLCRkbG5hbWUgaW4KLSsJICAgICpjeWd3aW4qLCpsYWks eWVzLG5vLCouZGxsIHwgKm1pbmd3KiwqbGFpLHllcyxubywqLmRsbCB8ICpjZWdjYyosKmxhaSx5 ZXMsbm8sKi5kbGwpIHRkbG5hbWU9Li4vYmluLyRkbG5hbWUgOzsKLSsJICBlc2FjCi0rCSAgJEVD SE8gPiAkb3V0cHV0ICJcCi0rIyAkb3V0cHV0bmFtZSAtIGEgbGlidG9vbCBsaWJyYXJ5IGZpbGUK LSsjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJ T04KLSsjCi0rIyBQbGVhc2UgRE8gTk9UIGRlbGV0ZSB0aGlzIGZpbGUhCi0rIyBJdCBpcyBuZWNl c3NhcnkgZm9yIGxpbmtpbmcgdGhlIGxpYnJhcnkuCi0rCi0rIyBUaGUgbmFtZSB0aGF0IHdlIGNh biBkbG9wZW4oMykuCi0rZGxuYW1lPSckdGRsbmFtZScKLSsKLSsjIE5hbWVzIG9mIHRoaXMgbGli cmFyeS4KLStsaWJyYXJ5X25hbWVzPSckbGlicmFyeV9uYW1lcycKLSsKLSsjIFRoZSBuYW1lIG9m IHRoZSBzdGF0aWMgYXJjaGl2ZS4KLStvbGRfbGlicmFyeT0nJG9sZF9saWJyYXJ5JwotKwotKyMg TGlua2VyIGZsYWdzIHRoYXQgY2FuIG5vdCBnbyBpbiBkZXBlbmRlbmN5X2xpYnMuCi0raW5oZXJp dGVkX2xpbmtlcl9mbGFncz0nJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzJwotKwotKyMgTGli cmFyaWVzIHRoYXQgdGhpcyBvbmUgZGVwZW5kcyB1cG9uLgotK2RlcGVuZGVuY3lfbGlicz0nJGRl cGVuZGVuY3lfbGlicycKLSsKLSsjIE5hbWVzIG9mIGFkZGl0aW9uYWwgd2VhayBsaWJyYXJpZXMg cHJvdmlkZWQgYnkgdGhpcyBsaWJyYXJ5Ci0rd2Vha19saWJyYXJ5X25hbWVzPSckd2Vha19saWJz JwotKwotKyMgVmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgJGxpYm5hbWUuCi0rY3VycmVudD0kY3Vy cmVudAotK2FnZT0kYWdlCi0rcmV2aXNpb249JHJldmlzaW9uCi0rCi0rIyBJcyB0aGlzIGFuIGFs cmVhZHkgaW5zdGFsbGVkIGxpYnJhcnk/Ci0raW5zdGFsbGVkPSRpbnN0YWxsZWQKLSsKLSsjIFNo b3VsZCB3ZSB3YXJuIGFib3V0IHBvcnRhYmlsaXR5IHdoZW4gbGlua2luZyBhZ2FpbnN0IC1tb2R1 bGVzPwotK3Nob3VsZG5vdGxpbms9JG1vZHVsZQotKwotKyMgRmlsZXMgdG8gZGxvcGVuL2RscHJl b3BlbgotK2Rsb3Blbj0nJGRsZmlsZXMnCi0rZGxwcmVvcGVuPSckZGxwcmVmaWxlcycKLSsKLSsj IERpcmVjdG9yeSB0aGF0IHRoaXMgbGlicmFyeSBuZWVkcyB0byBiZSBpbnN0YWxsZWQgaW46Ci0r bGliZGlyPSckaW5zdGFsbF9saWJkaXInIgotKwkgIGlmIHRlc3QgIiRpbnN0YWxsZWQiID0gbm8g JiYgdGVzdCAiJG5lZWRfcmVsaW5rIiA9IHllczsgdGhlbgotKwkgICAgJEVDSE8gPj4gJG91dHB1 dCAiXAotK3JlbGlua19jb21tYW5kPVwiJHJlbGlua19jb21tYW5kXCIiCi0rCSAgZmkKLSsJZG9u ZQotKyAgICAgIH0KLSsKLSsgICAgICAjIERvIGEgc3ltYm9saWMgbGluayBzbyB0aGF0IHRoZSBs aWJ0b29sIGFyY2hpdmUgY2FuIGJlIGZvdW5kIGluCi0rICAgICAgIyBMRF9MSUJSQVJZX1BBVEgg YmVmb3JlIHRoZSBwcm9ncmFtIGlzIGluc3RhbGxlZC4KLSsgICAgICBmdW5jX3Nob3dfZXZhbCAn KCBjZCAiJG91dHB1dF9vYmpkaXIiICYmICRSTSAiJG91dHB1dG5hbWUiICYmICRMTl9TICIuLi8k b3V0cHV0bmFtZSIgIiRvdXRwdXRuYW1lIiApJyAnZXhpdCAkPycKLSsgICAgICA7OwotKyAgICBl c2FjCi0rICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwotK30KLSsKLSt7IHRlc3QgIiRtb2RlIiA9IGxp bmsgfHwgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB9ICYmCi0rICAgIGZ1bmNfbW9kZV9saW5rICR7 MSsiJEAifQotKwotKwotKyMgZnVuY19tb2RlX3VuaW5zdGFsbCBhcmcuLi4KLStmdW5jX21vZGVf dW5pbnN0YWxsICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rICAgIFJNPSIkbm9ub3B0IgotKyAg ICBmaWxlcz0KLSsgICAgcm1mb3JjZT0KLSsgICAgZXhpdF9zdGF0dXM9MAotKwotKyAgICAjIFRo aXMgdmFyaWFibGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHZhcmlhYmxlcyBy YXRoZXIKLSsgICAgIyB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMuCi0rICAgIGxpYnRvb2xf aW5zdGFsbF9tYWdpYz0iJG1hZ2ljIgotKwotKyAgICBmb3IgYXJnCi0rICAgIGRvCi0rICAgICAg Y2FzZSAkYXJnIGluCi0rICAgICAgLWYpIFJNPSIkUk0gJGFyZyI7IHJtZm9yY2U9eWVzIDs7Ci0r ICAgICAgLSopIFJNPSIkUk0gJGFyZyIgOzsKLSsgICAgICAqKSBmaWxlcz0iJGZpbGVzICRhcmci IDs7Ci0rICAgICAgZXNhYwotKyAgICBkb25lCi0rCi0rICAgIHRlc3QgLXogIiRSTSIgJiYgXAot KyAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhbiBSTSBwcm9ncmFtIgot KwotKyAgICBybWRpcnM9Ci0rCi0rICAgIG9yaWdvYmpkaXI9IiRvYmpkaXIiCi0rICAgIGZvciBm aWxlIGluICRmaWxlczsgZG8KLSsgICAgICBmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiIiAiLiIKLSsg ICAgICBkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKyAgICAgIGlmIHRlc3QgIlgkZGlyIiA9 IFguOyB0aGVuCi0rCW9iamRpcj0iJG9yaWdvYmpkaXIiCi0rICAgICAgZWxzZQotKwlvYmpkaXI9 IiRkaXIvJG9yaWdvYmpkaXIiCi0rICAgICAgZmkKLSsgICAgICBmdW5jX2Jhc2VuYW1lICIkZmls ZSIKLSsgICAgICBuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rICAgICAgdGVzdCAiJG1v ZGUiID0gdW5pbnN0YWxsICYmIG9iamRpcj0iJGRpciIKLSsKLSsgICAgICAjIFJlbWVtYmVyIG9i amRpciBmb3IgcmVtb3ZhbCBsYXRlciwgYmVpbmcgY2FyZWZ1bCB0byBhdm9pZCBkdXBsaWNhdGVz Ci0rICAgICAgaWYgdGVzdCAiJG1vZGUiID0gY2xlYW47IHRoZW4KLSsJY2FzZSAiICRybWRpcnMg IiBpbgotKwkgICoiICRvYmpkaXIgIiopIDs7Ci0rCSAgKikgcm1kaXJzPSIkcm1kaXJzICRvYmpk aXIiIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKwotKyAgICAgICMgRG9uJ3QgZXJyb3IgaWYgdGhl IGZpbGUgZG9lc24ndCBleGlzdCBhbmQgcm0gLWYgd2FzIHVzZWQuCi0rICAgICAgaWYgeyB0ZXN0 IC1MICIkZmlsZSI7IH0gPi9kZXYvbnVsbCAyPiYxIHx8Ci0rCSB7IHRlc3QgLWggIiRmaWxlIjsg fSA+L2Rldi9udWxsIDI+JjEgfHwKLSsJIHRlc3QgLWYgIiRmaWxlIjsgdGhlbgotKwk6Ci0rICAg ICAgZWxpZiB0ZXN0IC1kICIkZmlsZSI7IHRoZW4KLSsJZXhpdF9zdGF0dXM9MQotKwljb250aW51 ZQotKyAgICAgIGVsaWYgdGVzdCAiJHJtZm9yY2UiID0geWVzOyB0aGVuCi0rCWNvbnRpbnVlCi0r ICAgICAgZmkKLSsKLSsgICAgICBybWZpbGVzPSIkZmlsZSIKLSsKLSsgICAgICBjYXNlICRuYW1l IGluCi0rICAgICAgKi5sYSkKLSsJIyBQb3NzaWJseSBhIGxpYnRvb2wgYXJjaGl2ZSwgc28gdmVy aWZ5IGl0LgotKwlpZiBmdW5jX2xhbGliX3AgIiRmaWxlIjsgdGhlbgotKwkgIGZ1bmNfc291cmNl ICRkaXIvJG5hbWUKLSsKLSsJICAjIERlbGV0ZSB0aGUgbGlidG9vbCBsaWJyYXJpZXMgYW5kIHN5 bWxpbmtzLgotKwkgIGZvciBuIGluICRsaWJyYXJ5X25hbWVzOyBkbwotKwkgICAgcm1maWxlcz0i JHJtZmlsZXMgJG9iamRpci8kbiIKLSsJICBkb25lCi0rCSAgdGVzdCAtbiAiJG9sZF9saWJyYXJ5 IiAmJiBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRvbGRfbGlicmFyeSIKLSsKLSsJICBjYXNl ICIkbW9kZSIgaW4KLSsJICBjbGVhbikKLSsJICAgIGNhc2UgIiAgJGxpYnJhcnlfbmFtZXMgIiBp bgotKwkgICAgIyAiICAiIGluIHRoZSBiZWdpbm5pbmcgY2F0Y2hlcyBlbXB0eSAkZGxuYW1lCi0r CSAgICAqIiAkZGxuYW1lICIqKSA7OwotKwkgICAgKikgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRp ci8kZGxuYW1lIiA7OwotKwkgICAgZXNhYwotKwkgICAgdGVzdCAtbiAiJGxpYmRpciIgJiYgcm1m aWxlcz0iJHJtZmlsZXMgJG9iamRpci8kbmFtZSAkb2JqZGlyLyR7bmFtZX1pIgotKwkgICAgOzsK LSsJICB1bmluc3RhbGwpCi0rCSAgICBpZiB0ZXN0IC1uICIkbGlicmFyeV9uYW1lcyI7IHRoZW4K LSsJICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIHBvc3R1bmluc3RhbGwgY29tbWFuZHMu Ci0rCSAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkcG9zdHVuaW5zdGFsbF9jbWRzIiAndGVzdCAi JHJtZm9yY2UiID0geWVzIHx8IGV4aXRfc3RhdHVzPTEnCi0rCSAgICBmaQotKwotKwkgICAgaWYg dGVzdCAtbiAiJG9sZF9saWJyYXJ5IjsgdGhlbgotKwkgICAgICAjIERvIGVhY2ggY29tbWFuZCBp biB0aGUgb2xkX3Bvc3R1bmluc3RhbGwgY29tbWFuZHMuCi0rCSAgICAgIGZ1bmNfZXhlY3V0ZV9j bWRzICIkb2xkX3Bvc3R1bmluc3RhbGxfY21kcyIgJ3Rlc3QgIiRybWZvcmNlIiA9IHllcyB8fCBl eGl0X3N0YXR1cz0xJwotKwkgICAgZmkKLSsJICAgICMgRklYTUU6IHNob3VsZCByZWluc3RhbGwg dGhlIGJlc3QgcmVtYWluaW5nIHNoYXJlZCBsaWJyYXJ5LgotKwkgICAgOzsKLSsJICBlc2FjCi0r CWZpCi0rCTs7Ci0rCi0rICAgICAgKi5sbykKLSsJIyBQb3NzaWJseSBhIGxpYnRvb2wgb2JqZWN0 LCBzbyB2ZXJpZnkgaXQuCi0rCWlmIGZ1bmNfbGFsaWJfcCAiJGZpbGUiOyB0aGVuCi0rCi0rCSAg IyBSZWFkIHRoZSAubG8gZmlsZQotKwkgIGZ1bmNfc291cmNlICRkaXIvJG5hbWUKLSsKLSsJICAj IEFkZCBQSUMgb2JqZWN0IHRvIHRoZSBsaXN0IG9mIGZpbGVzIHRvIHJlbW92ZS4KLSsJICBpZiB0 ZXN0IC1uICIkcGljX29iamVjdCIgJiYKLSsJICAgICB0ZXN0ICIkcGljX29iamVjdCIgIT0gbm9u ZTsgdGhlbgotKwkgICAgcm1maWxlcz0iJHJtZmlsZXMgJGRpci8kcGljX29iamVjdCIKLSsJICBm aQotKwotKwkgICMgQWRkIG5vbi1QSUMgb2JqZWN0IHRvIHRoZSBsaXN0IG9mIGZpbGVzIHRvIHJl bW92ZS4KLSsJICBpZiB0ZXN0IC1uICIkbm9uX3BpY19vYmplY3QiICYmCi0rCSAgICAgdGVzdCAi JG5vbl9waWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCi0rCSAgICBybWZpbGVzPSIkcm1maWxlcyAk ZGlyLyRub25fcGljX29iamVjdCIKLSsJICBmaQotKwlmaQotKwk7OwotKwotKyAgICAgICopCi0r CWlmIHRlc3QgIiRtb2RlIiA9IGNsZWFuIDsgdGhlbgotKwkgIG5vZXhlbmFtZT0kbmFtZQotKwkg IGNhc2UgJGZpbGUgaW4KLSsJICAqLmV4ZSkKLSsJICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhl JyAiJGZpbGUiCi0rCSAgICBmaWxlPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICAgIGZ1bmNf c3RyaXBuYW1lICcnICcuZXhlJyAiJG5hbWUiCi0rCSAgICBub2V4ZW5hbWU9JGZ1bmNfc3RyaXBu YW1lX3Jlc3VsdAotKwkgICAgIyAkZmlsZSB3aXRoIC5leGUgaGFzIGFscmVhZHkgYmVlbiBhZGRl ZCB0byBybWZpbGVzLAotKwkgICAgIyBhZGQgJGZpbGUgd2l0aG91dCAuZXhlCi0rCSAgICBybWZp bGVzPSIkcm1maWxlcyAkZmlsZSIKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgICMgRG8gYSB0ZXN0 IHRvIHNlZSBpZiB0aGlzIGlzIGEgbGlidG9vbCBwcm9ncmFtLgotKwkgIGlmIGZ1bmNfbHR3cmFw cGVyX3AgIiRmaWxlIjsgdGhlbgotKwkgICAgaWYgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9w ICIkZmlsZSI7IHRoZW4KLSsJICAgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSAiJGZpbGUi Ci0rCSAgICAgIHJlbGlua19jb21tYW5kPQotKwkgICAgICBmdW5jX3NvdXJjZSAkZnVuY19sdHdy YXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQKLSsJICAgICAgcm1maWxlcz0iJHJtZmlsZXMgJGZ1bmNf bHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0IgotKwkgICAgZWxzZQotKwkgICAgICByZWxpbmtf Y29tbWFuZD0KLSsJICAgICAgZnVuY19zb3VyY2UgJGRpci8kbm9leGVuYW1lCi0rCSAgICBmaQot KwotKwkgICAgIyBub3RlICRuYW1lIHN0aWxsIGNvbnRhaW5zIC5leGUgaWYgaXQgd2FzIGluICRm aWxlIG9yaWdpbmFsbHkKLSsJICAgICMgYXMgZG9lcyB0aGUgdmVyc2lvbiBvZiAkZmlsZSB0aGF0 IHdhcyBhZGRlZCBpbnRvICRybWZpbGVzCi0rCSAgICBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGly LyRuYW1lICRvYmpkaXIvJHtuYW1lfVMuJHtvYmpleHR9IgotKwkgICAgaWYgdGVzdCAiJGZhc3Rf aW5zdGFsbCIgPSB5ZXMgJiYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgotKwkgICAg ICBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyL2x0LSRuYW1lIgotKwkgICAgZmkKLSsJICAgIGlm IHRlc3QgIlgkbm9leGVuYW1lIiAhPSAiWCRuYW1lIiA7IHRoZW4KLSsJICAgICAgcm1maWxlcz0i JHJtZmlsZXMgJG9iamRpci9sdC0ke25vZXhlbmFtZX0uYyIKLSsJICAgIGZpCi0rCSAgZmkKLSsJ ZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgZnVuY19zaG93X2V2YWwgIiRSTSAkcm1maWxl cyIgJ2V4aXRfc3RhdHVzPTEnCi0rICAgIGRvbmUKLSsgICAgb2JqZGlyPSIkb3JpZ29iamRpciIK LSsKLSsgICAgIyBUcnkgdG8gcmVtb3ZlIHRoZSAke29iamRpcn1zIGluIHRoZSBkaXJlY3Rvcmll cyB3aGVyZSB3ZSBkZWxldGVkIGZpbGVzCi0rICAgIGZvciBkaXIgaW4gJHJtZGlyczsgZG8KLSsg ICAgICBpZiB0ZXN0IC1kICIkZGlyIjsgdGhlbgotKwlmdW5jX3Nob3dfZXZhbCAicm1kaXIgJGRp ciA+L2Rldi9udWxsIDI+JjEiCi0rICAgICAgZmkKLSsgICAgZG9uZQotKwotKyAgICBleGl0ICRl eGl0X3N0YXR1cwotK30KLSsKLSt7IHRlc3QgIiRtb2RlIiA9IHVuaW5zdGFsbCB8fCB0ZXN0ICIk bW9kZSIgPSBjbGVhbjsgfSAmJgotKyAgICBmdW5jX21vZGVfdW5pbnN0YWxsICR7MSsiJEAifQot KwotK3Rlc3QgLXogIiRtb2RlIiAmJiB7Ci0rICBoZWxwPSIkZ2VuZXJpY19oZWxwIgotKyAgZnVu Y19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGEgTU9ERSIKLSt9Ci0rCi0rdGVzdCAteiAi JGV4ZWNfY21kIiAmJiBcCi0rICBmdW5jX2ZhdGFsX2hlbHAgImludmFsaWQgb3BlcmF0aW9uIG1v ZGUgXGAkbW9kZSciCi0rCi0raWYgdGVzdCAtbiAiJGV4ZWNfY21kIjsgdGhlbgotKyAgZXZhbCBl eGVjICIkZXhlY19jbWQiCi0rICBleGl0ICRFWElUX0ZBSUxVUkUKLStmaQotKwotK2V4aXQgJGV4 aXRfc3RhdHVzCi0rCi0rCi0rIyBUaGUgVEFHcyBiZWxvdyBhcmUgZGVmaW5lZCBzdWNoIHRoYXQg d2UgbmV2ZXIgZ2V0IGludG8gYSBzaXR1YXRpb24KLSsjIGluIHdoaWNoIHdlIGRpc2FibGUgYm90 aCBraW5kcyBvZiBsaWJyYXJpZXMuICBHaXZlbiBjb25mbGljdGluZwotKyMgY2hvaWNlcywgd2Ug Z28gZm9yIGEgc3RhdGljIGxpYnJhcnksIHRoYXQgaXMgdGhlIG1vc3QgcG9ydGFibGUsCi0rIyBz aW5jZSB3ZSBjYW4ndCB0ZWxsIHdoZXRoZXIgc2hhcmVkIGxpYnJhcmllcyB3ZXJlIGRpc2FibGVk IGJlY2F1c2UKLSsjIHRoZSB1c2VyIGFza2VkIGZvciB0aGF0IG9yIGJlY2F1c2UgdGhlIHBsYXRm b3JtIGRvZXNuJ3Qgc3VwcG9ydAotKyMgdGhlbS4gIFRoaXMgaXMgcGFydGljdWxhcmx5IGltcG9y dGFudCBvbiBBSVgsIGJlY2F1c2Ugd2UgZG9uJ3QKLSsjIHN1cHBvcnQgaGF2aW5nIGJvdGggc3Rh dGljIGFuZCBzaGFyZWQgbGlicmFyaWVzIGVuYWJsZWQgYXQgdGhlIHNhbWUKLSsjIHRpbWUgb24g dGhhdCBwbGF0Zm9ybSwgc28gd2UgZGVmYXVsdCB0byBhIHNoYXJlZC1vbmx5IGNvbmZpZ3VyYXRp b24uCi0rIyBJZiBhIGRpc2FibGUtc2hhcmVkIHRhZyBpcyBnaXZlbiwgd2UnbGwgZmFsbGJhY2sg dG8gYSBzdGF0aWMtb25seQotKyMgY29uZmlndXJhdGlvbi4gIEJ1dCB3ZSdsbCBuZXZlciBnbyBm cm9tIHN0YXRpYy1vbmx5IHRvIHNoYXJlZC1vbmx5LgotKwotKyMgIyMjIEJFR0lOIExJQlRPT0wg VEFHIENPTkZJRzogZGlzYWJsZS1zaGFyZWQKLStidWlsZF9saWJ0b29sX2xpYnM9bm8KLStidWls ZF9vbGRfbGlicz15ZXMKLSsjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXNo YXJlZAotKwotKyMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zdGF0aWMK LStidWlsZF9vbGRfbGlicz1gY2FzZSAkYnVpbGRfbGlidG9vbF9saWJzIGluIHllcykgZWNobyBu bzs7ICopIGVjaG8geWVzOzsgZXNhY2AKLSsjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiBk aXNhYmxlLXN0YXRpYwotKwotKyMgTG9jYWwgVmFyaWFibGVzOgotKyMgbW9kZTpzaGVsbC1zY3Jp cHQKLSsjIHNoLWluZGVudGF0aW9uOjIKLSsjIEVuZDoKLSsjIHZpOnN3PTIKLSsKLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHR+b2Jzb2xldGUubTQgc29jaS0zLjAuMF90cmVw MzAwL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9s dH5vYnNvbGV0ZS5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHR+b2Jzb2xldGUubTQJMjAxMC0wMS0yMyAxNDo0NDo0 NC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsOTIgQEAKLSsjIGx0fm9ic29sZXRlLm00IC0t IGFjbG9jYWwgc2F0aXNmeWluZyBvYnNvbGV0ZSBkZWZpbml0aW9ucy4gICAgLSotQXV0b2NvbmYt Ki0KLSsjCi0rIyAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNyBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KLSsjICAgV3JpdHRlbiBieSBTY290dCBKYW1lcyBSZW1uYW50LCAy MDA0LgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uIGdpdmVzCi0rIyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9v ciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKLSsjIG1vZGlmaWNhdGlvbnMsIGFzIGxv bmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgc2VyaWFsIDQgbHR+b2Jzb2xl dGUubTQKLSsKLSsjIFRoZXNlIGV4aXN0IGVudGlyZWx5IHRvIGZvb2wgYWNsb2NhbCB3aGVuIGJv b3RzdHJhcHBpbmcgbGlidG9vbC4KLSsjCi0rIyBJbiB0aGUgcGFzdCBsaWJ0b29sLm00IGhhcyBw cm92aWRlZCBtYWNyb3MgdmlhIEFDX0RFRlVOIChvciBBVV9ERUZVTikKLSsjIHdoaWNoIGhhdmUg bGF0ZXIgYmVlbiBjaGFuZ2VkIHRvIG00X2RlZmluZSBhcyB0aGV5IGFyZW4ndCBwYXJ0IG9mIHRo ZQotKyMgZXhwb3J0ZWQgQVBJLCBvciBtb3ZlZCB0byBBdXRvY29uZiBvciBBdXRvbWFrZSB3aGVy ZSB0aGV5IGJlbG9uZy4KLSsjCi0rIyBUaGUgdHJvdWJsZSBpcywgYWNsb2NhbCBpcyBhIGJpdCB0 aGljay4gIEl0J2xsIHNlZSB0aGUgb2xkIEFDX0RFRlVOCi0rIyBpbiAvdXNyL3NoYXJlL2FjbG9j YWwvbGlidG9vbC5tNCBhbmQgcmVtZW1iZXIgaXQsIHRoZW4gd2hlbiBpdCBzZWVzIHVzCi0rIyB1 c2luZyBhIG1hY3JvIHdpdGggdGhlIHNhbWUgbmFtZSBpbiBvdXIgbG9jYWwgbTQvbGlidG9vbC5t NCBpdCdsbAotKyMgcHVsbCB0aGUgb2xkIGxpYnRvb2wubTQgaW4gKGl0IGRvZXNuJ3Qgc2VlIG91 ciBzaGlueSBuZXcgbTRfZGVmaW5lCi0rIyBhbmQgZG9lc24ndCBrbm93IGFib3V0IEF1dG9jb25m IG1hY3JvcyBhdCBhbGwuKQotKyMKLSsjIFNvIHdlIHByb3ZpZGUgdGhpcyBmaWxlLCB3aGljaCBo YXMgYSBzaWxseSBmaWxlbmFtZSBzbyBpdCdzIGFsd2F5cwotKyMgaW5jbHVkZWQgYWZ0ZXIgZXZl cnl0aGluZyBlbHNlLiAgVGhpcyBwcm92aWRlcyBhY2xvY2FsIHdpdGggdGhlCi0rIyBBQ19ERUZV TnMgaXQgd2FudHMsIGJ1dCB3aGVuIG00IHByb2Nlc3NlcyBpdCwgaXQgZG9lc24ndCBkbyBhbnl0 aGluZwotKyMgYmVjYXVzZSB0aG9zZSBtYWNyb3MgYWxyZWFkeSBleGlzdCwgb3Igd2lsbCBiZSBv dmVyd3JpdHRlbiBsYXRlci4KLSsjIFdlIHVzZSBBQ19ERUZVTiBvdmVyIEFVX0RFRlVOIGZvciBj b21wYXRpYmlsaXR5IHdpdGggYWNsb2NhbC0xLjYuIAotKyMKLSsjIEFueXRpbWUgd2Ugd2l0aGRy YXcgYW4gQUNfREVGVU4gb3IgQVVfREVGVU4sIHJlbWVtYmVyIHRvIGFkZCBpdCBoZXJlLgotKyMg WWVzLCB0aGF0IG1lYW5zIGV2ZXJ5IG5hbWUgb25jZSB0YWtlbiB3aWxsIG5lZWQgdG8gcmVtYWlu IGhlcmUgdW50aWwKLSsjIHdlIGdpdmUgdXAgY29tcGF0aWJpbGl0eSB3aXRoIHZlcnNpb25zIGJl Zm9yZSAxLjcsIGF0IHdoaWNoIHBvaW50Ci0rIyB3ZSBuZWVkIHRvIGtlZXAgb25seSB0aG9zZSBu YW1lcyB3aGljaCB3ZSBzdGlsbCByZWZlciB0by4KLSsKLSsjIFRoaXMgaXMgdG8gaGVscCBhY2xv Y2FsIGZpbmQgdGhlc2UgbWFjcm9zLCBhcyBpdCBjYW4ndCBzZWUgbTRfZGVmaW5lLgotK0FDX0RF RlVOKFtMVE9CU09MRVRFX1ZFUlNJT05dLCBbbTRfaWYoWzFdKV0pCi0rCi0rbTRfaWZuZGVmKFtB Q19MSUJUT09MX0xJTktFUl9PUFRJT05dLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfTElOS0VSX09Q VElPTl0pXSkKLSttNF9pZm5kZWYoW0FDX1BST0dfRUdSRVBdLAkJW0FDX0RFRlVOKFtBQ19QUk9H X0VHUkVQXSldKQotK200X2lmbmRlZihbX0xUX0FDX1BST0dfRUNIT19CQUNLU0xBU0hdLAlbQUNf REVGVU4oW19MVF9BQ19QUk9HX0VDSE9fQkFDS1NMQVNIXSldKQotK200X2lmbmRlZihbX0xUX0FD X1NIRUxMX0lOSVRdLAkJW0FDX0RFRlVOKFtfTFRfQUNfU0hFTExfSU5JVF0pXSkKLSttNF9pZm5k ZWYoW19MVF9BQ19TWVNfTElCUEFUSF9BSVhdLAlbQUNfREVGVU4oW19MVF9BQ19TWVNfTElCUEFU SF9BSVhdKV0pCi0rbTRfaWZuZGVmKFtfTFRfUFJPR19MVE1BSU5dLAkJW0FDX0RFRlVOKFtfTFRf UFJPR19MVE1BSU5dKV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfVEFHVkFSXSwJCVtBQ19ERUZVTihb X0xUX0FDX1RBR1ZBUl0pXSkKLSttNF9pZm5kZWYoW0FDX0xURExfRU5BQkxFX0lOU1RBTExdLAlb QUNfREVGVU4oW0FDX0xURExfRU5BQkxFX0lOU1RBTExdKV0pCi0rbTRfaWZuZGVmKFtBQ19MVERM X1BSRU9QRU5dLAkJW0FDX0RFRlVOKFtBQ19MVERMX1BSRU9QRU5dKV0pCi0rbTRfaWZuZGVmKFtf TFRfQUNfU1lTX0NPTVBJTEVSXSwJW0FDX0RFRlVOKFtfTFRfQUNfU1lTX0NPTVBJTEVSXSldKQot K200X2lmbmRlZihbX0xUX0FDX0xPQ0tdLAkJW0FDX0RFRlVOKFtfTFRfQUNfTE9DS10pXSkKLStt NF9pZm5kZWYoW0FDX0xJQlRPT0xfU1lTX09MRF9BUkNISVZFXSwJW0FDX0RFRlVOKFtBQ19MSUJU T09MX1NZU19PTERfQVJDSElWRV0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19UUllfRExPUEVOX1NF TEZdLAlbQUNfREVGVU4oW19MVF9BQ19UUllfRExPUEVOX1NFTEZdKV0pCi0rbTRfaWZuZGVmKFtB Q19MSUJUT09MX1BST0dfQ0NfQ19PXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfQ0NfQ19P XSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9TWVNfSEFSRF9MSU5LX0xPQ0tTXSwgW0FDX0RF RlVOKFtBQ19MSUJUT09MX1NZU19IQVJEX0xJTktfTE9DS1NdKV0pCi0rbTRfaWZuZGVmKFtBQ19M SUJUT09MX09CSkRJUl0sCQlbQUNfREVGVU4oW0FDX0xJQlRPT0xfT0JKRElSXSldKQotK200X2lm bmRlZihbQUNfTFRETF9PQkpESVJdLAkJW0FDX0RFRlVOKFtBQ19MVERMX09CSkRJUl0pXSkKLStt NF9pZm5kZWYoW0FDX0xJQlRPT0xfUFJPR19MRF9IQVJEQ09ERV9MSUJQQVRIXSwgW0FDX0RFRlVO KFtBQ19MSUJUT09MX1BST0dfTERfSEFSRENPREVfTElCUEFUSF0pXSkKLSttNF9pZm5kZWYoW0FD X0xJQlRPT0xfU1lTX0xJQl9TVFJJUF0sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfTElCX1NU UklQXSldKQotK200X2lmbmRlZihbQUNfUEFUSF9NQUdJQ10sCQlbQUNfREVGVU4oW0FDX1BBVEhf TUFHSUNdKV0pCi0rbTRfaWZuZGVmKFtBQ19QUk9HX0xEX0dOVV0sCQlbQUNfREVGVU4oW0FDX1BS T0dfTERfR05VXSldKQotK200X2lmbmRlZihbQUNfUFJPR19MRF9SRUxPQURfRkxBR10sCVtBQ19E RUZVTihbQUNfUFJPR19MRF9SRUxPQURfRkxBR10pXSkKLSttNF9pZm5kZWYoW0FDX0RFUExJQlNf Q0hFQ0tfTUVUSE9EXSwJW0FDX0RFRlVOKFtBQ19ERVBMSUJTX0NIRUNLX01FVEhPRF0pXSkKLStt NF9pZm5kZWYoW0FDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9OT19SVFRJXSwgW0FDX0RFRlVOKFtB Q19MSUJUT09MX1BST0dfQ09NUElMRVJfTk9fUlRUSV0pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRP T0xfU1lTX0dMT0JBTF9TWU1CT0xfUElQRV0sIFtBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfR0xP QkFMX1NZTUJPTF9QSVBFXSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVS X1BJQ10sIFtBQ19ERUZVTihbQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX1BJQ10pXSkKLSttNF9p Zm5kZWYoW0FDX0xJQlRPT0xfUFJPR19MRF9TSExJQlNdLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xf UFJPR19MRF9TSExJQlNdKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1BPU1RERVBfUFJFREVQ XSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1BPU1RERVBfUFJFREVQXSldKQotK200X2lmbmRlZihb TFRfQUNfUFJPR19FR1JFUF0sCQlbQUNfREVGVU4oW0xUX0FDX1BST0dfRUdSRVBdKV0pCi0rbTRf aWZuZGVmKFtMVF9BQ19QUk9HX1NFRF0sCQlbQUNfREVGVU4oW0xUX0FDX1BST0dfU0VEXSldKQot K200X2lmbmRlZihbX0xUX0NDX0JBU0VOQU1FXSwJCVtBQ19ERUZVTihbX0xUX0NDX0JBU0VOQU1F XSldKQotK200X2lmbmRlZihbX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFXSwJW0FDX0RFRlVOKFtf TFRfQ09NUElMRVJfQk9JTEVSUExBVEVdKV0pCi0rbTRfaWZuZGVmKFtfTFRfTElOS0VSX0JPSUxF UlBMQVRFXSwJW0FDX0RFRlVOKFtfTFRfTElOS0VSX0JPSUxFUlBMQVRFXSldKQotK200X2lmbmRl ZihbX0FDX1BST0dfTElCVE9PTF0sCQlbQUNfREVGVU4oW19BQ19QUk9HX0xJQlRPT0xdKV0pCi0r bTRfaWZuZGVmKFtBQ19MSUJUT09MX1NFVFVQXSwJCVtBQ19ERUZVTihbQUNfTElCVE9PTF9TRVRV UF0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19DSEVDS19ETEZDTl0sCQlbQUNfREVGVU4oW19MVF9B Q19DSEVDS19ETEZDTl0pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfU1lTX0RZTkFNSUNfTElO S0VSXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19EWU5BTUlDX0xJTktFUl0pXSkKLSttNF9p Zm5kZWYoW19MVF9BQ19UQUdDT05GSUddLAkJW0FDX0RFRlVOKFtfTFRfQUNfVEFHQ09ORklHXSld KQotK200X2lmbmRlZihbQUNfRElTQUJMRV9GQVNUX0lOU1RBTExdLAlbQUNfREVGVU4oW0FDX0RJ U0FCTEVfRkFTVF9JTlNUQUxMXSldKQotK200X2lmbmRlZihbX0xUX0FDX0xBTkdfQ1hYXSwJCVtB Q19ERUZVTihbX0xUX0FDX0xBTkdfQ1hYXSldKQotK200X2lmbmRlZihbX0xUX0FDX0xBTkdfRjc3 XSwJCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfRjc3XSldKQotK200X2lmbmRlZihbX0xUX0FDX0xB TkdfR0NKXSwJCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfR0NKXSldKQotK200X2lmbmRlZihbQUNf TElCVE9PTF9SQ10sCQlbQUNfREVGVU4oW0FDX0xJQlRPT0xfUkNdKV0pCi0rbTRfaWZuZGVmKFtB Q19MSUJUT09MX0xBTkdfQ19DT05GSUddLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfTEFOR19DX0NP TkZJR10pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19MQU5HX0NfQ09ORklHXSwJW0FDX0RFRlVOKFtf TFRfQUNfTEFOR19DX0NPTkZJR10pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfTEFOR19DWFhf Q09ORklHXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfQ1hYX0NPTkZJR10pXSkKLSttNF9p Zm5kZWYoW19MVF9BQ19MQU5HX0NYWF9DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0NY WF9DT05GSUddKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX0xBTkdfRjc3X0NPTkZJR10sCVtB Q19ERUZVTihbQUNfTElCVE9PTF9MQU5HX0Y3N19DT05GSUddKV0pCi0rbTRfaWZuZGVmKFtfTFRf QUNfTEFOR19GNzdfQ09ORklHXSwJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19GNzdfQ09ORklHXSld KQotK200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX0dDSl9DT05GSUddLAlbQUNfREVGVU4oW0FD X0xJQlRPT0xfTEFOR19HQ0pfQ09ORklHXSldKQotK200X2lmbmRlZihbX0xUX0FDX0xBTkdfR0NK X0NPTkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfR0NKX0NPTkZJR10pXSkKLSttNF9pZm5k ZWYoW0FDX0xJQlRPT0xfTEFOR19SQ19DT05GSUddLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfTEFO R19SQ19DT05GSUddKV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19SQ19DT05GSUddLAlbQUNf REVGVU4oW19MVF9BQ19MQU5HX1JDX0NPTkZJR10pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xf Q09ORklHXSwJCVtBQ19ERUZVTihbQUNfTElCVE9PTF9DT05GSUddKV0pCi0rbTRfaWZuZGVmKFtf TFRfQUNfRklMRV9MVERMTF9DXSwJW0FDX0RFRlVOKFtfTFRfQUNfRklMRV9MVERMTF9DXSldKQot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdG9wdGlvbnMubTQgc29jaS0zLjAu MF90cmVwMzAwL2NvbmZpZy9sdG9wdGlvbnMubTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25m aWcvbHRvcHRpb25zLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysg c29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdG9wdGlvbnMubTQJMjAxMC0wMS0yMyAxNDo0NDo0 NC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMzY4IEBACi0rIyBIZWxwZXIgZnVuY3Rpb25z IGZvciBvcHRpb24gaGFuZGxpbmcuICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSot Ci0rIwotKyMgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcsIDIwMDggRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyAgIFdyaXR0ZW4gYnkgR2FyeSBWLiBWYXVnaGFuLCAy MDA0Ci0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24gZ2l2ZXMKLSsjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29y IGRpc3RyaWJ1dGUgaXQsIHdpdGggb3Igd2l0aG91dAotKyMgbW9kaWZpY2F0aW9ucywgYXMgbG9u ZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgNiBsdG9wdGlvbnMu bTQKLSsKLSsjIFRoaXMgaXMgdG8gaGVscCBhY2xvY2FsIGZpbmQgdGhlc2UgbWFjcm9zLCBhcyBp dCBjYW4ndCBzZWUgbTRfZGVmaW5lLgotK0FDX0RFRlVOKFtMVE9QVElPTlNfVkVSU0lPTl0sIFtt NF9pZihbMV0pXSkKLSsKLSsKLSsjIF9MVF9NQU5HTEVfT1BUSU9OKE1BQ1JPLU5BTUUsIE9QVElP Ti1OQU1FKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0r bTRfZGVmaW5lKFtfTFRfTUFOR0xFX09QVElPTl0sCi0rW1tfTFRfT1BUSU9OX11tNF9icGF0c3Vi c3QoJDFfXyQyLCBbW15hLXpBLVowLTlfXV0sIFtfXSldKQotKwotKwotKyMgX0xUX1NFVF9PUFRJ T04oTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSsjIFNldCBvcHRpb24gT1BUSU9OLU5BTUUgZm9yIG1hY3JvIE1BQ1JP LU5BTUUsIGFuZCBpZiB0aGVyZSBpcyBhCi0rIyBtYXRjaGluZyBoYW5kbGVyIGRlZmluZWQsIGRp c3BhdGNoIHRvIGl0LiAgT3RoZXIgT1BUSU9OLU5BTUVzIGFyZQotKyMgc2F2ZWQgYXMgYSBmbGFn LgotK200X2RlZmluZShbX0xUX1NFVF9PUFRJT05dLAotK1ttNF9kZWZpbmUoX0xUX01BTkdMRV9P UFRJT04oWyQxXSwgWyQyXSkpZG5sCi0rbTRfaWZkZWYoX0xUX01BTkdMRV9ERUZVTihbJDFdLCBb JDJdKSwKLSsgICAgICAgIF9MVF9NQU5HTEVfREVGVU4oWyQxXSwgWyQyXSksCi0rICAgIFttNF93 YXJuaW5nKFtVbmtub3duICQxIG9wdGlvbiBgJDInXSldKVtdZG5sCi0rXSkKLSsKLSsKLSsjIF9M VF9JRl9PUFRJT04oTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUsIElGLVNFVCwgW0lGLU5PVC1TRVRd KQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rIyBFeGVjdXRlIElGLVNFVCBpZiBPUFRJT04gaXMgc2V0LCBJRi1OT1QtU0VU IG90aGVyd2lzZS4KLSttNF9kZWZpbmUoW19MVF9JRl9PUFRJT05dLAotK1ttNF9pZmRlZihfTFRf TUFOR0xFX09QVElPTihbJDFdLCBbJDJdKSwgWyQzXSwgWyQ0XSldKQotKwotKwotKyMgX0xUX1VO TEVTU19PUFRJT05TKE1BQ1JPLU5BTUUsIE9QVElPTi1MSVNULCBJRi1OT1QtU0VUKQotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMg RXhlY3V0ZSBJRi1OT1QtU0VUIHVubGVzcyBhbGwgb3B0aW9ucyBpbiBPUFRJT04tTElTVCBmb3Ig TUFDUk8tTkFNRQotKyMgYXJlIHNldC4KLSttNF9kZWZpbmUoW19MVF9VTkxFU1NfT1BUSU9OU10s Ci0rW200X2ZvcmVhY2goW19MVF9PcHRpb25dLCBtNF9zcGxpdChtNF9ub3JtYWxpemUoWyQyXSkp LAotKwkgICAgW200X2lmZGVmKF9MVF9NQU5HTEVfT1BUSU9OKFskMV0sIF9MVF9PcHRpb24pLAot KwkJICAgICAgW200X2RlZmluZShbJDBfZm91bmRdKV0pXSlbXWRubAotK200X2lmZGVmKFskMF9m b3VuZF0sIFttNF91bmRlZmluZShbJDBfZm91bmRdKV0sIFskMwotK10pW11kbmwKLStdKQotKwot KwotKyMgX0xUX1NFVF9PUFRJT05TKE1BQ1JPLU5BTUUsIE9QVElPTi1MSVNUKQotKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgT1BUSU9OLUxJU1QgaXMgYSBz cGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBMaWJ0b29sIG9wdGlvbnMgYXNzb2NpYXRlZAotKyMgd2l0 aCBNQUNSTy1OQU1FLiAgSWYgYW55IE9QVElPTiBoYXMgYSBtYXRjaGluZyBoYW5kbGVyIGRlY2xh cmVkIHdpdGgKLSsjIExUX09QVElPTl9ERUZJTkUsIGRpc3BhdGNoIHRvIHRoYXQgbWFjcm87IG90 aGVyd2lzZSBjb21wbGFpbiBhYm91dAotKyMgdGhlIHVua25vd24gb3B0aW9uIGFuZCBleGl0Lgot K200X2RlZnVuKFtfTFRfU0VUX09QVElPTlNdLAotK1sjIFNldCBvcHRpb25zCi0rbTRfZm9yZWFj aChbX0xUX09wdGlvbl0sIG00X3NwbGl0KG00X25vcm1hbGl6ZShbJDJdKSksCi0rICAgIFtfTFRf U0VUX09QVElPTihbJDFdLCBfTFRfT3B0aW9uKV0pCi0rCi0rbTRfaWYoWyQxXSxbTFRfSU5JVF0s WwotKyAgZG5sCi0rICBkbmwgU2ltcGx5IHNldCBzb21lIGRlZmF1bHQgdmFsdWVzIChpLmUgb2Zm KSBpZiBib29sZWFuIG9wdGlvbnMgd2VyZSBub3QKLSsgIGRubCBzcGVjaWZpZWQ6Ci0rICBfTFRf VU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBbZGxvcGVuXSwgW2VuYWJsZV9kbG9wZW49bm8KLSsg IF0pCi0rICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBbd2luMzItZGxsXSwgW2VuYWJs ZV93aW4zMl9kbGw9bm8KLSsgIF0pCi0rICBkbmwKLSsgIGRubCBJZiBubyByZWZlcmVuY2Ugd2Fz IG1hZGUgdG8gdmFyaW91cyBwYWlycyBvZiBvcHBvc2luZyBvcHRpb25zLCB0aGVuCi0rICBkbmwg d2UgcnVuIHRoZSBkZWZhdWx0IG1vZGUgaGFuZGxlciBmb3IgdGhlIHBhaXIuICBGb3IgZXhhbXBs ZSwgaWYgbmVpdGhlcgotKyAgZG5sIGBzaGFyZWQnIG5vciBgZGlzYWJsZS1zaGFyZWQnIHdhcyBw YXNzZWQsIHdlIGVuYWJsZSBidWlsZGluZyBvZiBzaGFyZWQKLSsgIGRubCBhcmNoaXZlcyBieSBk ZWZhdWx0OgotKyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9JTklUXSwgW3NoYXJlZCBkaXNhYmxl LXNoYXJlZF0sIFtfTFRfRU5BQkxFX1NIQVJFRF0pCi0rICBfTFRfVU5MRVNTX09QVElPTlMoW0xU X0lOSVRdLCBbc3RhdGljIGRpc2FibGUtc3RhdGljXSwgW19MVF9FTkFCTEVfU1RBVElDXSkKLSsg IF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFtwaWMtb25seSBuby1waWNdLCBbX0xUX1dJ VEhfUElDXSkKLSsgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFtmYXN0LWluc3RhbGwg ZGlzYWJsZS1mYXN0LWluc3RhbGxdLAotKyAgCQkgICBbX0xUX0VOQUJMRV9GQVNUX0lOU1RBTExd KQotKyAgXSkKLStdKSMgX0xUX1NFVF9PUFRJT05TCi0rCi0rCi0rIyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgTWFjcm9zIHRvIGhhbmRsZSBMVF9JTklUIG9wdGlv bnMuICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rCi0rIyBf TFRfTUFOR0xFX0RFRlVOKE1BQ1JPLU5BTUUsIE9QVElPTi1OQU1FKQotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZpbmUoW19MVF9NQU5HTEVfREVG VU5dLAotK1tbX0xUX09QVElPTl9ERUZVTl9dbTRfYnBhdHN1YnN0KG00X3RvdXBwZXIoWyQxX18k Ml0pLCBbW15BLVowLTlfXV0sIFtfXSldKQotKwotKwotKyMgTFRfT1BUSU9OX0RFRklORShNQUNS Ty1OQU1FLCBPUFRJT04tTkFNRSwgQ09ERSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtMVF9PUFRJT05fREVGSU5FXSwKLStb bTRfZGVmaW5lKF9MVF9NQU5HTEVfREVGVU4oWyQxXSwgWyQyXSksIFskM10pW11kbmwKLStdKSMg TFRfT1BUSU9OX0RFRklORQotKwotKwotKyMgZGxvcGVuCi0rIyAtLS0tLS0KLStMVF9PUFRJT05f REVGSU5FKFtMVF9JTklUXSwgW2Rsb3Blbl0sIFtlbmFibGVfZGxvcGVuPXllcwotK10pCi0rCi0r QVVfREVGVU4oW0FDX0xJQlRPT0xfRExPUEVOXSwKLStbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRd LCBbZGxvcGVuXSkKLStBQ19ESUFHTk9TRShbb2Jzb2xldGVdLAotK1skMDogUmVtb3ZlIHRoaXMg d2FybmluZyBhbmQgdGhlIGNhbGwgdG8gX0xUX1NFVF9PUFRJT04gd2hlbiB5b3UKLStwdXQgdGhl IGBkbG9wZW4nIG9wdGlvbiBpbnRvIExUX0lOSVQncyBmaXJzdCBwYXJhbWV0ZXIuXSkKLStdKQot KwotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVG VU4oW0FDX0xJQlRPT0xfRExPUEVOXSwgW10pCi0rCi0rCi0rIyB3aW4zMi1kbGwKLSsjIC0tLS0t LS0tLQotKyMgRGVjbGFyZSBwYWNrYWdlIHN1cHBvcnQgZm9yIGJ1aWxkaW5nIHdpbjMyIGRsbCdz LgotK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbd2luMzItZGxsXSwKLStbZW5hYmxlX3dp bjMyX2RsbD15ZXMKLSsKLStjYXNlICRob3N0IGluCi0rKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cq IHwgKi0qLXB3MzIqIHwgKi1jZWdjYyopCi0rICBBQ19DSEVDS19UT09MKEFTLCBhcywgZmFsc2Up Ci0rICBBQ19DSEVDS19UT09MKERMTFRPT0wsIGRsbHRvb2wsIGZhbHNlKQotKyAgQUNfQ0hFQ0tf VE9PTChPQkpEVU1QLCBvYmpkdW1wLCBmYWxzZSkKLSsgIDs7Ci0rZXNhYwotKwotK3Rlc3QgLXog IiRBUyIgJiYgQVM9YXMKLStfTFRfREVDTChbXSwgW0FTXSwgICAgICBbMF0sIFtBc3NlbWJsZXIg cHJvZ3JhbV0pZG5sCi0rCi0rdGVzdCAteiAiJERMTFRPT0wiICYmIERMTFRPT0w9ZGxsdG9vbAot K19MVF9ERUNMKFtdLCBbRExMVE9PTF0sIFswXSwgW0RMTCBjcmVhdGlvbiBwcm9ncmFtXSlkbmwK LSsKLSt0ZXN0IC16ICIkT0JKRFVNUCIgJiYgT0JKRFVNUD1vYmpkdW1wCi0rX0xUX0RFQ0woW10s IFtPQkpEVU1QXSwgWzBdLCBbT2JqZWN0IGR1bXBlciBwcm9ncmFtXSlkbmwKLStdKSMgd2luMzIt ZGxsCi0rCi0rQVVfREVGVU4oW0FDX0xJQlRPT0xfV0lOMzJfRExMXSwKLStbQUNfUkVRVUlSRShb QUNfQ0FOT05JQ0FMX0hPU1RdKWRubAotK19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwgW3dpbjMy LWRsbF0pCi0rQUNfRElBR05PU0UoW29ic29sZXRlXSwKLStbJDA6IFJlbW92ZSB0aGlzIHdhcm5p bmcgYW5kIHRoZSBjYWxsIHRvIF9MVF9TRVRfT1BUSU9OIHdoZW4geW91Ci0rcHV0IHRoZSBgd2lu MzItZGxsJyBvcHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3QgcGFyYW1ldGVyLl0pCi0rXSkKLSsK LStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVO KFtBQ19MSUJUT09MX1dJTjMyX0RMTF0sIFtdKQotKwotKwotKyMgX0xUX0VOQUJMRV9TSEFSRUQo W0RFRkFVTFRdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgaW1wbGVtZW50 IHRoZSAtLWVuYWJsZS1zaGFyZWQgZmxhZywgYW5kIHN1cHBvcnRzIHRoZSBgc2hhcmVkJyBhbmQK LSsjIGBkaXNhYmxlLXNoYXJlZCcgTFRfSU5JVCBvcHRpb25zLgotKyMgREVGQVVMVCBpcyBlaXRo ZXIgYHllcycgb3IgYG5vJy4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIGB5ZXMnLgotK200 X2RlZmluZShbX0xUX0VOQUJMRV9TSEFSRURdLAotK1ttNF9kZWZpbmUoW19MVF9FTkFCTEVfU0hB UkVEX0RFRkFVTFRdLCBbbTRfaWYoJDEsIG5vLCBubywgeWVzKV0pZG5sCi0rQUNfQVJHX0VOQUJM RShbc2hhcmVkXSwKLSsgICAgW0FTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1zaGFyZWRAPDpAPVBL R1NAOj5AXSwKLSsJW2J1aWxkIHNoYXJlZCBsaWJyYXJpZXMgQDw6QGRlZmF1bHQ9XV9MVF9FTkFC TEVfU0hBUkVEX0RFRkFVTFRbQDo+QF0pXSwKLSsgICAgW3A9JHtQQUNLQUdFLWRlZmF1bHR9Ci0r ICAgIGNhc2UgJGVuYWJsZXZhbCBpbgotKyAgICB5ZXMpIGVuYWJsZV9zaGFyZWQ9eWVzIDs7Ci0r ICAgIG5vKSBlbmFibGVfc2hhcmVkPW5vIDs7Ci0rICAgICopCi0rICAgICAgZW5hYmxlX3NoYXJl ZD1ubwotKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0 aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KLSsgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElG Uz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKLSsgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7 IGRvCi0rCUlGUz0iJGx0X3NhdmVfaWZzIgotKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhl bgotKwkgIGVuYWJsZV9zaGFyZWQ9eWVzCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICAgIElGUz0i JGx0X3NhdmVfaWZzIgotKyAgICAgIDs7Ci0rICAgIGVzYWNdLAotKyAgICBbZW5hYmxlX3NoYXJl ZD1dX0xUX0VOQUJMRV9TSEFSRURfREVGQVVMVCkKLSsKLSsgICAgX0xUX0RFQ0woW2J1aWxkX2xp YnRvb2xfbGlic10sIFtlbmFibGVfc2hhcmVkXSwgWzBdLAotKwlbV2hldGhlciBvciBub3QgdG8g YnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCi0rXSkjIF9MVF9FTkFCTEVfU0hBUkVECi0rCi0rTFRf T1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtzaGFyZWRdLCBbX0xUX0VOQUJMRV9TSEFSRUQoW3ll c10pXSkKLStMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW2Rpc2FibGUtc2hhcmVkXSwgW19M VF9FTkFCTEVfU0hBUkVEKFtub10pXSkKLSsKLSsjIE9sZCBuYW1lczoKLStBQ19ERUZVTihbQUNf RU5BQkxFX1NIQVJFRF0sCi0rW19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwgbTRfaWYoWyQxXSwg W25vXSwgW2Rpc2FibGUtXSlbc2hhcmVkXSkKLStdKQotKwotK0FDX0RFRlVOKFtBQ19ESVNBQkxF X1NIQVJFRF0sCi0rW19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwgW2Rpc2FibGUtc2hhcmVkXSkK LStdKQotKwotK0FVX0RFRlVOKFtBTV9FTkFCTEVfU0hBUkVEXSwgW0FDX0VOQUJMRV9TSEFSRUQo JEApXSkKLStBVV9ERUZVTihbQU1fRElTQUJMRV9TSEFSRURdLCBbQUNfRElTQUJMRV9TSEFSRUQo JEApXSkKLSsKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5s IEFDX0RFRlVOKFtBTV9FTkFCTEVfU0hBUkVEXSwgW10pCi0rZG5sIEFDX0RFRlVOKFtBTV9ESVNB QkxFX1NIQVJFRF0sIFtdKQotKwotKwotKwotKyMgX0xUX0VOQUJMRV9TVEFUSUMoW0RFRkFVTFRd KQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgaW1wbGVtZW50IHRoZSAtLWVu YWJsZS1zdGF0aWMgZmxhZywgYW5kIHN1cHBvcnQgdGhlIGBzdGF0aWMnIGFuZAotKyMgYGRpc2Fi bGUtc3RhdGljJyBMVF9JTklUIG9wdGlvbnMuCi0rIyBERUZBVUxUIGlzIGVpdGhlciBgeWVzJyBv ciBgbm8nLiAgSWYgb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gYHllcycuCi0rbTRfZGVmaW5lKFtf TFRfRU5BQkxFX1NUQVRJQ10sCi0rW200X2RlZmluZShbX0xUX0VOQUJMRV9TVEFUSUNfREVGQVVM VF0sIFttNF9pZigkMSwgbm8sIG5vLCB5ZXMpXSlkbmwKLStBQ19BUkdfRU5BQkxFKFtzdGF0aWNd LAotKyAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXN0YXRpY0A8OkA9UEtHU0A6PkBdLAot KwlbYnVpbGQgc3RhdGljIGxpYnJhcmllcyBAPDpAZGVmYXVsdD1dX0xUX0VOQUJMRV9TVEFUSUNf REVGQVVMVFtAOj5AXSldLAotKyAgICBbcD0ke1BBQ0tBR0UtZGVmYXVsdH0KLSsgICAgY2FzZSAk ZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxlX3N0YXRpYz15ZXMgOzsKLSsgICAgbm8pIGVu YWJsZV9zdGF0aWM9bm8gOzsKLSsgICAgKikKLSsgICAgIGVuYWJsZV9zdGF0aWM9bm8KLSsgICAg ICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBs aXN0IHNlcGFyYXRvcnMuCi0rICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQ QVRIX1NFUEFSQVRPUiwiCi0rICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbwotKwlJRlM9 IiRsdF9zYXZlX2lmcyIKLSsJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KLSsJICBlbmFi bGVfc3RhdGljPXllcwotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9IiRsdF9zYXZlX2lm cyIKLSsgICAgICA7OwotKyAgICBlc2FjXSwKLSsgICAgW2VuYWJsZV9zdGF0aWM9XV9MVF9FTkFC TEVfU1RBVElDX0RFRkFVTFQpCi0rCi0rICAgIF9MVF9ERUNMKFtidWlsZF9vbGRfbGlic10sIFtl bmFibGVfc3RhdGljXSwgWzBdLAotKwlbV2hldGhlciBvciBub3QgdG8gYnVpbGQgc3RhdGljIGxp YnJhcmllc10pCi0rXSkjIF9MVF9FTkFCTEVfU1RBVElDCi0rCi0rTFRfT1BUSU9OX0RFRklORShb TFRfSU5JVF0sIFtzdGF0aWNdLCBbX0xUX0VOQUJMRV9TVEFUSUMoW3llc10pXSkKLStMVF9PUFRJ T05fREVGSU5FKFtMVF9JTklUXSwgW2Rpc2FibGUtc3RhdGljXSwgW19MVF9FTkFCTEVfU1RBVElD KFtub10pXSkKLSsKLSsjIE9sZCBuYW1lczoKLStBQ19ERUZVTihbQUNfRU5BQkxFX1NUQVRJQ10s Ci0rW19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwgbTRfaWYoWyQxXSwgW25vXSwgW2Rpc2FibGUt XSlbc3RhdGljXSkKLStdKQotKwotK0FDX0RFRlVOKFtBQ19ESVNBQkxFX1NUQVRJQ10sCi0rW19M VF9TRVRfT1BUSU9OKFtMVF9JTklUXSwgW2Rpc2FibGUtc3RhdGljXSkKLStdKQotKwotK0FVX0RF RlVOKFtBTV9FTkFCTEVfU1RBVElDXSwgW0FDX0VOQUJMRV9TVEFUSUMoJEApXSkKLStBVV9ERUZV TihbQU1fRElTQUJMRV9TVEFUSUNdLCBbQUNfRElTQUJMRV9TVEFUSUMoJEApXSkKLSsKLStkbmwg YWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtBTV9F TkFCTEVfU1RBVElDXSwgW10pCi0rZG5sIEFDX0RFRlVOKFtBTV9ESVNBQkxFX1NUQVRJQ10sIFtd KQotKwotKwotKwotKyMgX0xUX0VOQUJMRV9GQVNUX0lOU1RBTEwoW0RFRkFVTFRdKQotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgaW1wbGVtZW50IHRoZSAtLWVuYWJs ZS1mYXN0LWluc3RhbGwgZmxhZywgYW5kIHN1cHBvcnQgdGhlIGBmYXN0LWluc3RhbGwnCi0rIyBh bmQgYGRpc2FibGUtZmFzdC1pbnN0YWxsJyBMVF9JTklUIG9wdGlvbnMuCi0rIyBERUZBVUxUIGlz IGVpdGhlciBgeWVzJyBvciBgbm8nLiAgSWYgb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gYHllcycu Ci0rbTRfZGVmaW5lKFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTF0sCi0rW200X2RlZmluZShbX0xU X0VOQUJMRV9GQVNUX0lOU1RBTExfREVGQVVMVF0sIFttNF9pZigkMSwgbm8sIG5vLCB5ZXMpXSlk bmwKLStBQ19BUkdfRU5BQkxFKFtmYXN0LWluc3RhbGxdLAotKyAgICBbQVNfSEVMUF9TVFJJTkco Wy0tZW5hYmxlLWZhc3QtaW5zdGFsbEA8OkA9UEtHU0A6PkBdLAotKyAgICBbb3B0aW1pemUgZm9y IGZhc3QgaW5zdGFsbGF0aW9uIEA8OkBkZWZhdWx0PV1fTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTF9E RUZBVUxUW0A6PkBdKV0sCi0rICAgIFtwPSR7UEFDS0FHRS1kZWZhdWx0fQotKyAgICBjYXNlICRl bmFibGV2YWwgaW4KLSsgICAgeWVzKSBlbmFibGVfZmFzdF9pbnN0YWxsPXllcyA7OwotKyAgICBu bykgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubyA7OwotKyAgICAqKQotKyAgICAgIGVuYWJsZV9mYXN0 X2luc3RhbGw9bm8KLSsgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVz ZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0rICAgICAgbHRfc2F2ZV9pZnM9IiRJ RlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0rICAgICAgZm9yIHBrZyBpbiAkZW5h YmxldmFsOyBkbwotKwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJaWYgdGVzdCAiWCRwa2ciID0gIlgk cCI7IHRoZW4KLSsJICBlbmFibGVfZmFzdF9pbnN0YWxsPXllcwotKwlmaQotKyAgICAgIGRvbmUK LSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICA7OwotKyAgICBlc2FjXSwKLSsgICAg W2VuYWJsZV9mYXN0X2luc3RhbGw9XV9MVF9FTkFCTEVfRkFTVF9JTlNUQUxMX0RFRkFVTFQpCi0r Ci0rX0xUX0RFQ0woW2Zhc3RfaW5zdGFsbF0sIFtlbmFibGVfZmFzdF9pbnN0YWxsXSwgWzBdLAot KwkgW1doZXRoZXIgb3Igbm90IHRvIG9wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbl0pZG5s Ci0rXSkjIF9MVF9FTkFCTEVfRkFTVF9JTlNUQUxMCi0rCi0rTFRfT1BUSU9OX0RFRklORShbTFRf SU5JVF0sIFtmYXN0LWluc3RhbGxdLCBbX0xUX0VOQUJMRV9GQVNUX0lOU1RBTEwoW3llc10pXSkK LStMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW2Rpc2FibGUtZmFzdC1pbnN0YWxsXSwgW19M VF9FTkFCTEVfRkFTVF9JTlNUQUxMKFtub10pXSkKLSsKLSsjIE9sZCBuYW1lczoKLStBVV9ERUZV TihbQUNfRU5BQkxFX0ZBU1RfSU5TVEFMTF0sCi0rW19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwg bTRfaWYoWyQxXSwgW25vXSwgW2Rpc2FibGUtXSlbZmFzdC1pbnN0YWxsXSkKLStBQ19ESUFHTk9T RShbb2Jzb2xldGVdLAotK1skMDogUmVtb3ZlIHRoaXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8g X0xUX1NFVF9PUFRJT04gd2hlbiB5b3UgcHV0Ci0rdGhlIGBmYXN0LWluc3RhbGwnIG9wdGlvbiBp bnRvIExUX0lOSVQncyBmaXJzdCBwYXJhbWV0ZXIuXSkKLStdKQotKwotK0FVX0RFRlVOKFtBQ19E SVNBQkxFX0ZBU1RfSU5TVEFMTF0sCi0rW19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwgW2Rpc2Fi bGUtZmFzdC1pbnN0YWxsXSkKLStBQ19ESUFHTk9TRShbb2Jzb2xldGVdLAotK1skMDogUmVtb3Zl IHRoaXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8gX0xUX1NFVF9PUFRJT04gd2hlbiB5b3UgcHV0 Ci0rdGhlIGBkaXNhYmxlLWZhc3QtaW5zdGFsbCcgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0 IHBhcmFtZXRlci5dKQotK10pCi0rCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRp YmlsaXR5OgotK2RubCBBQ19ERUZVTihbQUNfRU5BQkxFX0ZBU1RfSU5TVEFMTF0sIFtdKQotK2Ru bCBBQ19ERUZVTihbQU1fRElTQUJMRV9GQVNUX0lOU1RBTExdLCBbXSkKLSsKLSsKLSsjIF9MVF9X SVRIX1BJQyhbTU9ERV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgaW1wbGVtZW50IHRo ZSAtLXdpdGgtcGljIGZsYWcsIGFuZCBzdXBwb3J0IHRoZSBgcGljLW9ubHknIGFuZCBgbm8tcGlj JwotKyMgTFRfSU5JVCBvcHRpb25zLgotKyMgTU9ERSBpcyBlaXRoZXIgYHllcycgb3IgYG5vJy4g IElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIGBib3RoJy4KLSttNF9kZWZpbmUoW19MVF9XSVRI X1BJQ10sCi0rW0FDX0FSR19XSVRIKFtwaWNdLAotKyAgICBbQVNfSEVMUF9TVFJJTkcoWy0td2l0 aC1waWNdLAotKwlbdHJ5IHRvIHVzZSBvbmx5IFBJQy9ub24tUElDIG9iamVjdHMgQDw6QGRlZmF1 bHQ9dXNlIGJvdGhAOj5AXSldLAotKyAgICBbcGljX21vZGU9IiR3aXRodmFsIl0sCi0rICAgIFtw aWNfbW9kZT1kZWZhdWx0XSkKLSsKLSt0ZXN0IC16ICIkcGljX21vZGUiICYmIHBpY19tb2RlPW00 X2RlZmF1bHQoWyQxXSwgW2RlZmF1bHRdKQotKwotK19MVF9ERUNMKFtdLCBbcGljX21vZGVdLCBb MF0sIFtXaGF0IHR5cGUgb2Ygb2JqZWN0cyB0byBidWlsZF0pZG5sCi0rXSkjIF9MVF9XSVRIX1BJ QwotKwotK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbcGljLW9ubHldLCBbX0xUX1dJVEhf UElDKFt5ZXNdKV0pCi0rTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtuby1waWNdLCBbX0xU X1dJVEhfUElDKFtub10pXSkKLSsKLSsjIE9sZCBuYW1lOgotK0FVX0RFRlVOKFtBQ19MSUJUT09M X1BJQ01PREVdLAotK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFtwaWMtb25seV0pCi0rQUNf RElBR05PU0UoW29ic29sZXRlXSwKLStbJDA6IFJlbW92ZSB0aGlzIHdhcm5pbmcgYW5kIHRoZSBj YWxsIHRvIF9MVF9TRVRfT1BUSU9OIHdoZW4geW91Ci0rcHV0IHRoZSBgcGljLW9ubHknIG9wdGlv biBpbnRvIExUX0lOSVQncyBmaXJzdCBwYXJhbWV0ZXIuXSkKLStdKQotKwotK2RubCBhY2xvY2Fs LTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xf UElDTU9ERV0sIFtdKQotKwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgTFRETF9JTklU IE9wdGlvbnMgIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwotKwotK200X2RlZmluZShbX0xU RExfTU9ERV0sIFtdKQotK0xUX09QVElPTl9ERUZJTkUoW0xURExfSU5JVF0sIFtub25yZWN1cnNp dmVdLAotKwkJIFttNF9kZWZpbmUoW19MVERMX01PREVdLCBbbm9ucmVjdXJzaXZlXSldKQotK0xU X09QVElPTl9ERUZJTkUoW0xURExfSU5JVF0sIFtyZWN1cnNpdmVdLAotKwkJIFttNF9kZWZpbmUo W19MVERMX01PREVdLCBbcmVjdXJzaXZlXSldKQotK0xUX09QVElPTl9ERUZJTkUoW0xURExfSU5J VF0sIFtzdWJwcm9qZWN0XSwKLSsJCSBbbTRfZGVmaW5lKFtfTFRETF9NT0RFXSwgW3N1YnByb2pl Y3RdKV0pCi0rCi0rbTRfZGVmaW5lKFtfTFRETF9UWVBFXSwgW10pCi0rTFRfT1BUSU9OX0RFRklO RShbTFRETF9JTklUXSwgW2luc3RhbGxhYmxlXSwKLSsJCSBbbTRfZGVmaW5lKFtfTFRETF9UWVBF XSwgW2luc3RhbGxhYmxlXSldKQotK0xUX09QVElPTl9ERUZJTkUoW0xURExfSU5JVF0sIFtjb252 ZW5pZW5jZV0sCi0rCQkgW200X2RlZmluZShbX0xURExfVFlQRV0sIFtjb252ZW5pZW5jZV0pXSkK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHRzdWdhci5tNCBzb2NpLTMuMC4w X3RyZXAzMDAvY29uZmlnL2x0c3VnYXIubTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcv bHRzdWdhci5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2kt My4wLjBfdHJlcDMwMC9jb25maWcvbHRzdWdhci5tNAkyMDEwLTAxLTIzIDE0OjQ0OjQ0LjAwMDAw MDAwMCArMDEwMAotQEAgLTAsMCArMSwxMjMgQEAKLSsjIGx0c3VnYXIubTQgLS0gbGlidG9vbCBt NCBiYXNlIGxheWVyLiAgICAgICAgICAgICAgICAgICAgICAgICAtKi1BdXRvY29uZi0qLQotKyMK LSsjIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLSsjIFdyaXR0ZW4gYnkgR2FyeSBWLiBWYXVnaGFuLCAyMDA0Ci0rIwot KyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24gZ2l2ZXMKLSsjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1 dGUgaXQsIHdpdGggb3Igd2l0aG91dAotKyMgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlz IG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgNiBsdHN1Z2FyLm00Ci0rCi0rIyBU aGlzIGlzIHRvIGhlbHAgYWNsb2NhbCBmaW5kIHRoZXNlIG1hY3JvcywgYXMgaXQgY2FuJ3Qgc2Vl IG00X2RlZmluZS4KLStBQ19ERUZVTihbTFRTVUdBUl9WRVJTSU9OXSwgW200X2lmKFswLjFdKV0p Ci0rCi0rCi0rIyBsdF9qb2luKFNFUCwgQVJHMSwgW0FSRzIuLi5dKQotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSsjIFByb2R1Y2UgQVJHMVNFUEFSRzIuLi5TRVBBUkduLCBvbWl0 dGluZyBbXSBhcmd1bWVudHMgYW5kIHRoZWlyCi0rIyBhc3NvY2lhdGVkIHNlcGFyYXRvci4KLSsj IE5lZWRlZCB1bnRpbCB3ZSBjYW4gcmVseSBvbiBtNF9qb2luIGZyb20gQXV0b2NvbmYgMi42Miwg c2luY2UgYWxsIGVhcmxpZXIKLSsjIHZlcnNpb25zIGluIG00c3VnYXIgaGFkIGJ1Z3MuCi0rbTRf ZGVmaW5lKFtsdF9qb2luXSwKLStbbTRfaWYoWyQjXSwgWzFdLCBbXSwKLSsgICAgICAgWyQjXSwg WzJdLCBbWyQyXV0sCi0rICAgICAgIFttNF9pZihbJDJdLCBbXSwgW10sIFtbJDJdX10pJDAoWyQx XSwgbTRfc2hpZnQobTRfc2hpZnQoJEApKSldKV0pCi0rbTRfZGVmaW5lKFtfbHRfam9pbl0sCi0r W200X2lmKFskIyQyXSwgWzJdLCBbXSwKLSsgICAgICAgW200X2lmKFskMl0sIFtdLCBbXSwgW1sk MSQyXV0pJDAoWyQxXSwgbTRfc2hpZnQobTRfc2hpZnQoJEApKSldKV0pCi0rCi0rCi0rIyBsdF9j YXIoTElTVCkKLSsjIGx0X2NkcihMSVNUKQotKyMgLS0tLS0tLS0tLS0tCi0rIyBNYW5pcHVsYXRl IG00IGxpc3RzLgotKyMgVGhlc2UgbWFjcm9zIGFyZSBuZWNlc3NhcnkgYXMgbG9uZyBhcyB3aWxs IHN0aWxsIG5lZWQgdG8gc3VwcG9ydAotKyMgQXV0b2NvbmYtMi41OSB3aGljaCBxdW90ZXMgZGlm ZmVyZW50bHkuCi0rbTRfZGVmaW5lKFtsdF9jYXJdLCBbWyQxXV0pCi0rbTRfZGVmaW5lKFtsdF9j ZHJdLAotK1ttNF9pZihbJCNdLCAwLCBbbTRfZmF0YWwoWyQwOiBjYW5ub3QgYmUgY2FsbGVkIHdp dGhvdXQgYXJndW1lbnRzXSldLAotKyAgICAgICBbJCNdLCAxLCBbXSwKLSsgICAgICAgW200X2Rx dW90ZShtNF9zaGlmdCgkQCkpXSldKQotK200X2RlZmluZShbbHRfdW5xdW90ZV0sICQxKQotKwot KwotKyMgbHRfYXBwZW5kKE1BQ1JPLU5BTUUsIFNUUklORywgW1NFUEFSQVRPUl0pCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFJlZGVmaW5lIE1BQ1JP LU5BTUUgdG8gaG9sZCBpdHMgZm9ybWVyIGNvbnRlbnQgcGx1cyBgU0VQQVJBVE9SJ2BTVFJJTkcn LgotKyMgTm90ZSB0aGF0IG5laXRoZXIgU0VQQVJBVE9SIG5vciBTVFJJTkcgYXJlIGV4cGFuZGVk OyB0aGV5IGFyZSBhcHBlbmRlZAotKyMgdG8gTUFDUk8tTkFNRSBhcyBpcyAobGVhdmluZyB0aGUg ZXhwYW5zaW9uIGZvciB3aGVuIE1BQ1JPLU5BTUUgaXMgaW52b2tlZCkuCi0rIyBObyBTRVBBUkFU T1IgaXMgb3V0cHV0IGlmIE1BQ1JPLU5BTUUgd2FzIHByZXZpb3VzbHkgdW5kZWZpbmVkIChkaWZm ZXJlbnQKLSsjIHRoYW4gZGVmaW5lZCBhbmQgZW1wdHkpLgotKyMKLSsjIFRoaXMgbWFjcm8gaXMg bmVlZGVkIHVudGlsIHdlIGNhbiByZWx5IG9uIEF1dG9jb25mIDIuNjIsIHNpbmNlIGVhcmxpZXIK LSsjIHZlcnNpb25zIG9mIG00c3VnYXIgbWlzdGFrZW5seSBleHBhbmRlZCBTRVBBUkFUT1IgYnV0 IG5vdCBTVFJJTkcuCi0rbTRfZGVmaW5lKFtsdF9hcHBlbmRdLAotK1ttNF9kZWZpbmUoWyQxXSwK LSsJICAgbTRfaWZkZWYoWyQxXSwgW200X2RlZm4oWyQxXSlbJDNdXSlbJDJdKV0pCi0rCi0rCi0r Ci0rIyBsdF9jb21iaW5lKFNFUCwgUFJFRklYLUxJU1QsIElORklYLCBTVUZGSVgxLCBbU1VGRklY Mi4uLl0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rIyBQcm9kdWNlIGEgU0VQIGRlbGltaXRlZCBsaXN0IG9mIGFsbCBwYWly ZWQgY29tYmluYXRpb25zIG9mIGVsZW1lbnRzIG9mCi0rIyBQUkVGSVgtTElTVCB3aXRoIFNVRkZJ WDEgdGhyb3VnaCBTVUZGSVhuLiAgRWFjaCBlbGVtZW50IG9mIHRoZSBsaXN0Ci0rIyBoYXMgdGhl IGZvcm0gUFJFRklYbUlORklYU1VGRklYbi4KLSsjIE5lZWRlZCB1bnRpbCB3ZSBjYW4gcmVseSBv biBtNF9jb21iaW5lIGFkZGVkIGluIEF1dG9jb25mIDIuNjIuCi0rbTRfZGVmaW5lKFtsdF9jb21i aW5lXSwKLStbbTRfaWYobTRfZXZhbChbJCMgPiAzXSksIFsxXSwKLSsgICAgICAgW200X3B1c2hk ZWYoW19MdF9zZXBdLCBbbTRfZGVmaW5lKFtfTHRfc2VwXSwgbTRfZGVmbihbbHRfY2FyXSkpXSld XWRubAotK1tbbTRfZm9yZWFjaChbX0x0X3ByZWZpeF0sIFskMl0sCi0rCSAgICAgW200X2ZvcmVh Y2goW19MdF9zdWZmaXhdLAotKwkJXW00X2RxdW90ZShtNF9kcXVvdGUobTRfc2hpZnQobTRfc2hp ZnQobTRfc2hpZnQoJEApKSkpKVssCi0rCVtfTHRfc2VwKFskMV0pW11tNF9kZWZuKFtfTHRfcHJl Zml4XSlbJDNdbTRfZGVmbihbX0x0X3N1ZmZpeF0pXSldKV0pXSkKLSsKLSsKLSsjIGx0X2lmX2Fw cGVuZF91bmlxKE1BQ1JPLU5BTUUsIFZBUk5BTUUsIFtTRVBBUkFUT1JdLCBbVU5JUV0sIFtOT1Qt VU5JUV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgSWZmIE1BQ1JPLU5BTUUgZG9lcyBub3QgeWV0 IGNvbnRhaW4gVkFSTkFNRSwgdGhlbiBhcHBlbmQgaXQgKGRlbGltaXRlZAotKyMgYnkgU0VQQVJB VE9SIGlmIHN1cHBsaWVkKSBhbmQgZXhwYW5kIFVOSVEsIGVsc2UgTk9ULVVOSVEuCi0rbTRfZGVm aW5lKFtsdF9pZl9hcHBlbmRfdW5pcV0sCi0rW200X2lmZGVmKFskMV0sCi0rCSAgW200X2lmKG00 X2luZGV4KFskM11tNF9kZWZuKFskMV0pWyQzXSwgWyQzJDIkM10pLCBbLTFdLAotKwkJIFtsdF9h cHBlbmQoWyQxXSwgWyQyXSwgWyQzXSkkNF0sCi0rCQkgWyQ1XSldLAotKwkgIFtsdF9hcHBlbmQo WyQxXSwgWyQyXSwgWyQzXSkkNF0pXSkKLSsKLSsKLSsjIGx0X2RpY3RfYWRkKERJQ1QsIEtFWSwg VkFMVUUpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbbHRf ZGljdF9hZGRdLAotK1ttNF9kZWZpbmUoWyQxKCQyKV0sIFskM10pXSkKLSsKLSsKLSsjIGx0X2Rp Y3RfYWRkX3N1YmtleShESUNULCBLRVksIFNVQktFWSwgVkFMVUUpCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbbHRfZGljdF9hZGRf c3Via2V5XSwKLStbbTRfZGVmaW5lKFskMSgkMjokMyldLCBbJDRdKV0pCi0rCi0rCi0rIyBsdF9k aWN0X2ZldGNoKERJQ1QsIEtFWSwgW1NVQktFWV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtsdF9kaWN0X2ZldGNoXSwKLStbbTRfaWZ2YWwoWyQz XSwKLSsJbTRfaWZkZWYoWyQxKCQyOiQzKV0sIFttNF9kZWZuKFskMSgkMjokMyldKV0pLAotKyAg ICBtNF9pZmRlZihbJDEoJDIpXSwgW200X2RlZm4oWyQxKCQyKV0pXSkpXSkKLSsKLSsKLSsjIGx0 X2lmX2RpY3RfZmV0Y2goRElDVCwgS0VZLCBbU1VCS0VZXSwgVkFMVUUsIElGLVRSVUUsIFtJRi1G QUxTRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbbHRfaWZfZGljdF9mZXRjaF0sCi0rW200 X2lmKGx0X2RpY3RfZmV0Y2goWyQxXSwgWyQyXSwgWyQzXSksIFskNF0sCi0rCVskNV0sCi0rICAg IFskNl0pXSkKLSsKLSsKLSsjIGx0X2RpY3RfZmlsdGVyKERJQ1QsIFtTVUJLRVldLCBWQUxVRSwg W1NFUEFSQVRPUl0sIEtFWSwgWy4uLl0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbbHRfZGljdF9m aWx0ZXJdLAotK1ttNF9pZihbJDVdLCBbXSwgW10sCi0rICBbbHRfam9pbihtNF9xdW90ZShtNF9k ZWZhdWx0KFskNF0sIFtbLCBdXSkpLAotKyAgICAgICAgICAgbHRfdW5xdW90ZShtNF9zcGxpdCht NF9ub3JtYWxpemUobTRfZm9yZWFjaChfTHRfa2V5LCBsdF9jYXIoW200X3NoaWZ0big0LCAkQCld KSwKLSsJCSAgICAgIFtsdF9pZl9kaWN0X2ZldGNoKFskMV0sIF9MdF9rZXksIFskMl0sIFskM10s IFtfTHRfa2V5IF0pXSkpKSkpXSlbXWRubAotK10pCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svY29uZmlnL2x0dmVyc2lvbi5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0dmVyc2lv bi5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdHZlcnNpb24ubTQJMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmln L2x0dmVyc2lvbi5tNAkyMDEwLTAxLTIzIDE0OjQ0OjQ0LjAwMDAwMDAwMCArMDEwMAotQEAgLTAs MCArMSwyMyBAQAotKyMgbHR2ZXJzaW9uLm00IC0tIHZlcnNpb24gbnVtYmVycwkJCS0qLSBBdXRv Y29uZiAtKi0KLSsjCi0rIyAgIENvcHlyaWdodCAoQykgMjAwNCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLSsjICAgV3JpdHRlbiBieSBTY290dCBKYW1lcyBSZW1uYW50LCAyMDA0Ci0r IwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24gZ2l2ZXMKLSsjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3Ry aWJ1dGUgaXQsIHdpdGggb3Igd2l0aG91dAotKyMgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0 aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBHZW5lcmF0ZWQgZnJvbSBsdHZlcnNpb24u aW4uCi0rCi0rIyBzZXJpYWwgMzAxNyBsdHZlcnNpb24ubTQKLSsjIFRoaXMgZmlsZSBpcyBwYXJ0 IG9mIEdOVSBMaWJ0b29sCi0rCi0rbTRfZGVmaW5lKFtMVF9QQUNLQUdFX1ZFUlNJT05dLCBbMi4y LjZiXSkKLSttNF9kZWZpbmUoW0xUX1BBQ0tBR0VfUkVWSVNJT05dLCBbMS4zMDE3XSkKLSsKLStB Q19ERUZVTihbTFRWRVJTSU9OX1ZFUlNJT05dLAotK1ttYWNyb192ZXJzaW9uPScyLjIuNmInCi0r bWFjcm9fcmV2aXNpb249JzEuMzAxNycKLStfTFRfREVDTCgsIG1hY3JvX3ZlcnNpb24sIDAsIFtX aGljaCByZWxlYXNlIG9mIGxpYnRvb2wubTQgd2FzIHVzZWQ/XSkKLStfTFRfREVDTCgsIG1hY3Jv X3JldmlzaW9uLCAwKQotK10pCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL21p c3Npbmcgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9taXNzaW5nCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svY29uZmlnL21pc3NpbmcJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL21pc3NpbmcJMjAxMC0wMS0yMyAxNDo0NDo1 MC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMzc2IEBACi0rIyEgL2Jpbi9zaAotKyMgQ29t bW9uIHN0dWIgZm9yIGEgZmV3IG1pc3NpbmcgR05VIHByb2dyYW1zIHdoaWxlIGluc3RhbGxpbmcu Ci0rCi0rc2NyaXB0dmVyc2lvbj0yMDA5LTA0LTI4LjIxOyAjIFVUQwotKwotKyMgQ29weXJpZ2h0 IChDKSAxOTk2LCAxOTk3LCAxOTk5LCAyMDAwLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2 LAotKyMgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIE9yaWdp bmFsbHkgYnkgRnJhbixjb2lzIFBpbmFyZCA8cGluYXJkQGlyby51bW9udHJlYWwuY2E+LCAxOTk2 LgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pCi0rIyBh bnkgbGF0ZXIgdmVyc2lvbi4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rIyBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91Ci0rIyBkaXN0cmlidXRlIHRoaXMgZmls ZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKLSsjIGNvbmZpZ3VyYXRpb24g c2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCi0r IyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBv ZiB0aGF0IHByb2dyYW0uCi0rCi0raWYgdGVzdCAkIyAtZXEgMDsgdGhlbgotKyAgZWNobyAxPiYy ICJUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIgotKyAgZXhpdCAxCi0rZmkK LSsKLStydW49OgotK3NlZF9vdXRwdXQ9J3MvLiogLS1vdXRwdXRbID1dXChbXiBdKlwpLiovXDEv cCcKLStzZWRfbWludXNvPSdzLy4qIC1vIFwoW14gXSpcKS4qL1wxL3AnCi0rCi0rIyBJbiB0aGUg Y2FzZXMgd2hlcmUgdGhpcyBtYXR0ZXJzLCBgbWlzc2luZycgaXMgYmVpbmcgcnVuIGluIHRoZQot KyMgc3JjZGlyIGFscmVhZHkuCi0raWYgdGVzdCAtZiBjb25maWd1cmUuYWM7IHRoZW4KLSsgIGNv bmZpZ3VyZV9hYz1jb25maWd1cmUuYWMKLStlbHNlCi0rICBjb25maWd1cmVfYWM9Y29uZmlndXJl LmluCi0rZmkKLSsKLSttc2c9Im1pc3Npbmcgb24geW91ciBzeXN0ZW0iCi0rCi0rY2FzZSAkMSBp bgotKy0tcnVuKQotKyAgIyBUcnkgdG8gcnVuIHJlcXVlc3RlZCBwcm9ncmFtLCBhbmQganVzdCBl eGl0IGlmIGl0IHN1Y2NlZWRzLgotKyAgcnVuPQotKyAgc2hpZnQKLSsgICIkQCIgJiYgZXhpdCAw Ci0rICAjIEV4aXQgY29kZSA2MyBtZWFucyB2ZXJzaW9uIG1pc21hdGNoLiAgVGhpcyBvZnRlbiBo YXBwZW5zCi0rICAjIHdoZW4gdGhlIHVzZXIgdHJ5IHRvIHVzZSBhbiBhbmNpZW50IHZlcnNpb24g b2YgYSB0b29sIG9uCi0rICAjIGEgZmlsZSB0aGF0IHJlcXVpcmVzIGEgbWluaW11bSB2ZXJzaW9u LiAgSW4gdGhpcyBjYXNlIHdlCi0rICAjIHdlIHNob3VsZCBwcm9jZWVkIGhhcyBpZiB0aGUgcHJv Z3JhbSBoYWQgYmVlbiBhYnNlbnQsIG9yCi0rICAjIGlmIC0tcnVuIGhhZG4ndCBiZWVuIHBhc3Nl ZC4KLSsgIGlmIHRlc3QgJD8gPSA2MzsgdGhlbgotKyAgICBydW49OgotKyAgICBtc2c9InByb2Jh Ymx5IHRvbyBvbGQiCi0rICBmaQotKyAgOzsKLSsKLSsgIC1ofC0taHwtLWhlfC0taGVsfC0taGVs cCkKLSsgICAgZWNobyAiXAotKyQwIFtPUFRJT05dLi4uIFBST0dSQU0gW0FSR1VNRU5UXS4uLgot KwotK0hhbmRsZSBcYFBST0dSQU0gW0FSR1VNRU5UXS4uLicgZm9yIHdoZW4gUFJPR1JBTSBpcyBt aXNzaW5nLCBvciByZXR1cm4gYW4KLStlcnJvciBzdGF0dXMgaWYgdGhlcmUgaXMgbm8ga25vd24g aGFuZGxpbmcgZm9yIFBST0dSQU0uCi0rCi0rT3B0aW9uczoKLSsgIC1oLCAtLWhlbHAgICAgICBk aXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAotKyAgLXYsIC0tdmVyc2lvbiAgIG91dHB1dCB2ZXJz aW9uIGluZm9ybWF0aW9uIGFuZCBleGl0Ci0rICAtLXJ1biAgICAgICAgICAgdHJ5IHRvIHJ1biB0 aGUgZ2l2ZW4gY29tbWFuZCwgYW5kIGVtdWxhdGUgaXQgaWYgaXQgZmFpbHMKLSsKLStTdXBwb3J0 ZWQgUFJPR1JBTSB2YWx1ZXM6Ci0rICBhY2xvY2FsICAgICAgdG91Y2ggZmlsZSBcYGFjbG9jYWwu bTQnCi0rICBhdXRvY29uZiAgICAgdG91Y2ggZmlsZSBcYGNvbmZpZ3VyZScKLSsgIGF1dG9oZWFk ZXIgICB0b3VjaCBmaWxlIFxgY29uZmlnLmguaW4nCi0rICBhdXRvbTR0ZSAgICAgdG91Y2ggdGhl IG91dHB1dCBmaWxlLCBvciBjcmVhdGUgYSBzdHViIG9uZQotKyAgYXV0b21ha2UgICAgIHRvdWNo IGFsbCBcYE1ha2VmaWxlLmluJyBmaWxlcwotKyAgYmlzb24gICAgICAgIGNyZWF0ZSBcYHkudGFi LltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2NoXQotKyAgZmxleCAgICAgICAg IGNyZWF0ZSBcYGxleC55eS5jJywgaWYgcG9zc2libGUsIGZyb20gZXhpc3RpbmcgLmMKLSsgIGhl bHAybWFuICAgICB0b3VjaCB0aGUgb3V0cHV0IGZpbGUKLSsgIGxleCAgICAgICAgICBjcmVhdGUg XGBsZXgueXkuYycsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5jCi0rICBtYWtlaW5mbyAg ICAgdG91Y2ggdGhlIG91dHB1dCBmaWxlCi0rICB0YXIgICAgICAgICAgdHJ5IHRhciwgZ251dGFy LCBndGFyLCB0aGVuIHRhciB3aXRob3V0IG5vbi1wb3J0YWJsZSBmbGFncwotKyAgeWFjYyAgICAg ICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2No XQotKwotK1ZlcnNpb24gc3VmZml4ZXMgdG8gUFJPR1JBTSBhcyB3ZWxsIGFzIHRoZSBwcmVmaXhl cyBcYGdudS0nLCBcYGdudScsIGFuZAotK1xgZycgYXJlIGlnbm9yZWQgd2hlbiBjaGVja2luZyB0 aGUgbmFtZS4KLSsKLStTZW5kIGJ1ZyByZXBvcnRzIHRvIDxidWctYXV0b21ha2VAZ251Lm9yZz4u IgotKyAgICBleGl0ICQ/Ci0rICAgIDs7Ci0rCi0rICAtdnwtLXZ8LS12ZXwtLXZlcnwtLXZlcnN8 LS12ZXJzaXwtLXZlcnNpb3wtLXZlcnNpb24pCi0rICAgIGVjaG8gIm1pc3NpbmcgJHNjcmlwdHZl cnNpb24gKEdOVSBBdXRvbWFrZSkiCi0rICAgIGV4aXQgJD8KLSsgICAgOzsKLSsKLSsgIC0qKQot KyAgICBlY2hvIDE+JjIgIiQwOiBVbmtub3duIFxgJDEnIG9wdGlvbiIKLSsgICAgZWNobyAxPiYy ICJUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIgotKyAgICBleGl0IDEKLSsg ICAgOzsKLSsKLStlc2FjCi0rCi0rIyBub3JtYWxpemUgcHJvZ3JhbSBuYW1lIHRvIGNoZWNrIGZv ci4KLStwcm9ncmFtPWBlY2hvICIkMSIgfCBzZWQgJwotKyAgcy9eZ251LS8vOyB0Ci0rICBzL15n bnUvLzsgdAotKyAgcy9eZy8vOyB0J2AKLSsKLSsjIE5vdyBleGl0IGlmIHdlIGhhdmUgaXQsIGJ1 dCBpdCBmYWlsZWQuICBBbHNvIGV4aXQgbm93IGlmIHdlCi0rIyBkb24ndCBoYXZlIGl0IGFuZCAt LXZlcnNpb24gd2FzIHBhc3NlZCAobW9zdCBsaWtlbHkgdG8gZGV0ZWN0Ci0rIyB0aGUgcHJvZ3Jh bSkuICBUaGlzIGlzIGFib3V0IG5vbi1HTlUgcHJvZ3JhbXMsIHNvIHVzZSAkMSBub3QKLSsjICRw cm9ncmFtLgotK2Nhc2UgJDEgaW4KLSsgIGxleCp8eWFjYyopCi0rICAgICMgTm90IEdOVSBwcm9n cmFtcywgdGhleSBkb24ndCBoYXZlIC0tdmVyc2lvbi4KLSsgICAgOzsKLSsKLSsgIHRhciopCi0r ICAgIGlmIHRlc3QgLW4gIiRydW4iOyB0aGVuCi0rICAgICAgIGVjaG8gMT4mMiAiRVJST1I6IFxg dGFyJyByZXF1aXJlcyAtLXJ1biIKLSsgICAgICAgZXhpdCAxCi0rICAgIGVsaWYgdGVzdCAieCQy IiA9ICJ4LS12ZXJzaW9uIiB8fCB0ZXN0ICJ4JDIiID0gIngtLWhlbHAiOyB0aGVuCi0rICAgICAg IGV4aXQgMQotKyAgICBmaQotKyAgICA7OwotKwotKyAgKikKLSsgICAgaWYgdGVzdCAteiAiJHJ1 biIgJiYgKCQxIC0tdmVyc2lvbikgPiAvZGV2L251bGwgMj4mMTsgdGhlbgotKyAgICAgICAjIFdl IGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuCi0rICAgICAgIGV4aXQgMQotKyAgICBlbGlmIHRlc3Qg IngkMiIgPSAieC0tdmVyc2lvbiIgfHwgdGVzdCAieCQyIiA9ICJ4LS1oZWxwIjsgdGhlbgotKyAg ICAgICAjIENvdWxkIG5vdCBydW4gLS12ZXJzaW9uIG9yIC0taGVscC4gIFRoaXMgaXMgcHJvYmFi bHkgc29tZW9uZQotKyAgICAgICAjIHJ1bm5pbmcgYCRUT09MIC0tdmVyc2lvbicgb3IgYCRUT09M IC0taGVscCcgdG8gY2hlY2sgd2hldGhlcgotKyAgICAgICAjICRUT09MIGV4aXN0cyBhbmQgbm90 IGtub3dpbmcgJFRPT0wgdXNlcyBtaXNzaW5nLgotKyAgICAgICBleGl0IDEKLSsgICAgZmkKLSsg ICAgOzsKLStlc2FjCi0rCi0rIyBJZiBpdCBkb2VzIG5vdCBleGlzdCwgb3IgZmFpbHMgdG8gcnVu IChwb3NzaWJseSBhbiBvdXRkYXRlZCB2ZXJzaW9uKSwKLSsjIHRyeSB0byBlbXVsYXRlIGl0Lgot K2Nhc2UgJHByb2dyYW0gaW4KLSsgIGFjbG9jYWwqKQotKyAgICBlY2hvIDE+JjIgIlwKLStXQVJO SU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKLSsgICAgICAg ICB5b3UgbW9kaWZpZWQgXGBhY2luY2x1ZGUubTQnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4gIFlv dSBtaWdodCB3YW50Ci0rICAgICAgICAgdG8gaW5zdGFsbCB0aGUgXGBBdXRvbWFrZScgYW5kIFxg UGVybCcgcGFja2FnZXMuICBHcmFiIHRoZW0gZnJvbQotKyAgICAgICAgIGFueSBHTlUgYXJjaGl2 ZSBzaXRlLiIKLSsgICAgdG91Y2ggYWNsb2NhbC5tNAotKyAgICA7OwotKwotKyAgYXV0b2NvbmYq KQotKyAgICBlY2hvIDE+JjIgIlwKLStXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3Vs ZCBvbmx5IG5lZWQgaXQgaWYKLSsgICAgICAgICB5b3UgbW9kaWZpZWQgXGAke2NvbmZpZ3VyZV9h Y30nLiAgWW91IG1pZ2h0IHdhbnQgdG8gaW5zdGFsbCB0aGUKLSsgICAgICAgICBcYEF1dG9jb25m JyBhbmQgXGBHTlUgbTQnIHBhY2thZ2VzLiAgR3JhYiB0aGVtIGZyb20gYW55IEdOVQotKyAgICAg ICAgIGFyY2hpdmUgc2l0ZS4iCi0rICAgIHRvdWNoIGNvbmZpZ3VyZQotKyAgICA7OwotKwotKyAg YXV0b2hlYWRlciopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cu ICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYGFj Y29uZmlnLmgnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4gIFlvdSBtaWdodCB3YW50Ci0rICAgICAg ICAgdG8gaW5zdGFsbCB0aGUgXGBBdXRvY29uZicgYW5kIFxgR05VIG00JyBwYWNrYWdlcy4gIEdy YWIgdGhlbQotKyAgICAgICAgIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotKyAgICBmaWxl cz1gc2VkIC1uICdzL15bIF0qQVtDTV1fQ09ORklHX0hFQURFUihcKFteKV0qXCkpLiovXDEvcCcg JHtjb25maWd1cmVfYWN9YAotKyAgICB0ZXN0IC16ICIkZmlsZXMiICYmIGZpbGVzPSJjb25maWcu aCIKLSsgICAgdG91Y2hfZmlsZXM9Ci0rICAgIGZvciBmIGluICRmaWxlczsgZG8KLSsgICAgICBj YXNlICRmIGluCi0rICAgICAgKjoqKSB0b3VjaF9maWxlcz0iJHRvdWNoX2ZpbGVzICJgZWNobyAi JGYiIHwKLSsJCQkJICAgICAgIHNlZCAtZSAncy9eW146XSo6Ly8nIC1lICdzLzouKi8vJ2A7Owot KyAgICAgICopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgJGYuaW4iOzsKLSsgICAgICBlc2Fj Ci0rICAgIGRvbmUKLSsgICAgdG91Y2ggJHRvdWNoX2ZpbGVzCi0rICAgIDs7Ci0rCi0rICBhdXRv bWFrZSopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ug c2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYE1ha2VmaWxl LmFtJywgXGBhY2luY2x1ZGUubTQnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4KLSsgICAgICAgICBZ b3UgbWlnaHQgd2FudCB0byBpbnN0YWxsIHRoZSBcYEF1dG9tYWtlJyBhbmQgXGBQZXJsJyBwYWNr YWdlcy4KLSsgICAgICAgICBHcmFiIHRoZW0gZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0r ICAgIGZpbmQgLiAtdHlwZSBmIC1uYW1lIE1ha2VmaWxlLmFtIC1wcmludCB8Ci0rCSAgIHNlZCAn cy9cLmFtJC8uaW4vJyB8Ci0rCSAgIHdoaWxlIHJlYWQgZjsgZG8gdG91Y2ggIiRmIjsgZG9uZQot KyAgICA7OwotKwotKyAgYXV0b200dGUqKQotKyAgICBlY2hvIDE+JjIgIlwKLStXQVJOSU5HOiBc YCQxJyBpcyBuZWVkZWQsIGJ1dCBpcyAkbXNnLgotKyAgICAgICAgIFlvdSBtaWdodCBoYXZlIG1v ZGlmaWVkIHNvbWUgZmlsZXMgd2l0aG91dCBoYXZpbmcgdGhlCi0rICAgICAgICAgcHJvcGVyIHRv b2xzIGZvciBmdXJ0aGVyIGhhbmRsaW5nIHRoZW0uCi0rICAgICAgICAgWW91IGNhbiBnZXQgXGAk MScgYXMgcGFydCBvZiBcYEF1dG9jb25mJyBmcm9tIGFueSBHTlUKLSsgICAgICAgICBhcmNoaXZl IHNpdGUuIgotKwotKyAgICBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfb3V0cHV0ImAK LSsgICAgdGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9t aW51c28iYAotKyAgICBpZiB0ZXN0IC1mICIkZmlsZSI7IHRoZW4KLSsJdG91Y2ggJGZpbGUKLSsg ICAgZWxzZQotKwl0ZXN0IC16ICIkZmlsZSIgfHwgZXhlYyA+JGZpbGUKLSsJZWNobyAiIyEgL2Jp bi9zaCIKLSsJZWNobyAiIyBDcmVhdGVkIGJ5IEdOVSBBdXRvbWFrZSBtaXNzaW5nIGFzIGEgcmVw bGFjZW1lbnQgb2YiCi0rCWVjaG8gIiMgICQgJEAiCi0rCWVjaG8gImV4aXQgMCIKLSsJY2htb2Qg K3ggJGZpbGUKLSsJZXhpdCAxCi0rICAgIGZpCi0rICAgIDs7Ci0rCi0rICBiaXNvbip8eWFjYyop Ci0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnICRtc2cuICBZb3Ugc2hvdWxkIG9u bHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLnknIGZpbGUuICBZb3Ug bWF5IG5lZWQgdGhlIFxgQmlzb24nIHBhY2thZ2UKLSsgICAgICAgICBpbiBvcmRlciBmb3IgdGhv c2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlIGVmZmVjdC4gIFlvdSBjYW4gZ2V0Ci0rICAgICAgICAg XGBCaXNvbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0rICAgIHJtIC1mIHkudGFiLmMg eS50YWIuaAotKyAgICBpZiB0ZXN0ICQjIC1uZSAxOyB0aGVuCi0rICAgICAgICBldmFsIExBU1RB Ukc9IlwkeyQjfSIKLSsJY2FzZSAkTEFTVEFSRyBpbgotKwkqLnkpCi0rCSAgICBTUkNGSUxFPWBl Y2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MveSQvYy8nYAotKwkgICAgaWYgdGVzdCAtZiAiJFNSQ0ZJ TEUiOyB0aGVuCi0rCSAgICAgICAgIGNwICIkU1JDRklMRSIgeS50YWIuYwotKwkgICAgZmkKLSsJ ICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy95JC9oLydgCi0rCSAgICBpZiB0 ZXN0IC1mICIkU1JDRklMRSI7IHRoZW4KLSsJICAgICAgICAgY3AgIiRTUkNGSUxFIiB5LnRhYi5o Ci0rCSAgICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAhIC1mIHku dGFiLmg7IHRoZW4KLSsJZWNobyA+eS50YWIuaAotKyAgICBmaQotKyAgICBpZiB0ZXN0ICEgLWYg eS50YWIuYzsgdGhlbgotKwllY2hvICdtYWluKCkgeyByZXR1cm4gMDsgfScgPnkudGFiLmMKLSsg ICAgZmkKLSsgICAgOzsKLSsKLSsgIGxleCp8ZmxleCopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dB Uk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAg ICAgIHlvdSBtb2RpZmllZCBhIFxgLmwnIGZpbGUuICBZb3UgbWF5IG5lZWQgdGhlIFxgRmxleCcg cGFja2FnZQotKyAgICAgICAgIGluIG9yZGVyIGZvciB0aG9zZSBtb2RpZmljYXRpb25zIHRvIHRh a2UgZWZmZWN0LiAgWW91IGNhbiBnZXQKLSsgICAgICAgICBcYEZsZXgnIGZyb20gYW55IEdOVSBh cmNoaXZlIHNpdGUuIgotKyAgICBybSAtZiBsZXgueXkuYwotKyAgICBpZiB0ZXN0ICQjIC1uZSAx OyB0aGVuCi0rICAgICAgICBldmFsIExBU1RBUkc9IlwkeyQjfSIKLSsJY2FzZSAkTEFTVEFSRyBp bgotKwkqLmwpCi0rCSAgICBTUkNGSUxFPWBlY2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MvbCQvYy8n YAotKwkgICAgaWYgdGVzdCAtZiAiJFNSQ0ZJTEUiOyB0aGVuCi0rCSAgICAgICAgIGNwICIkU1JD RklMRSIgbGV4Lnl5LmMKLSsJICAgIGZpCi0rCSAgOzsKLSsJZXNhYwotKyAgICBmaQotKyAgICBp ZiB0ZXN0ICEgLWYgbGV4Lnl5LmM7IHRoZW4KLSsJZWNobyAnbWFpbigpIHsgcmV0dXJuIDA7IH0n ID5sZXgueXkuYwotKyAgICBmaQotKyAgICA7OwotKwotKyAgaGVscDJtYW4qKQotKyAgICBlY2hv IDE+JjIgIlwKLStXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQg aXQgaWYKLSsJIHlvdSBtb2RpZmllZCBhIGRlcGVuZGVuY3kgb2YgYSBtYW51YWwgcGFnZS4gIFlv dSBtYXkgbmVlZCB0aGUKLSsJIFxgSGVscDJtYW4nIHBhY2thZ2UgaW4gb3JkZXIgZm9yIHRob3Nl IG1vZGlmaWNhdGlvbnMgdG8gdGFrZQotKwkgZWZmZWN0LiAgWW91IGNhbiBnZXQgXGBIZWxwMm1h bicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0rCi0rICAgIGZpbGU9YGVjaG8gIiQqIiB8 IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAotKyAgICB0ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNo byAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVzbyJgCi0rICAgIGlmIHRlc3QgLWYgIiRmaWxlIjsg dGhlbgotKwl0b3VjaCAkZmlsZQotKyAgICBlbHNlCi0rCXRlc3QgLXogIiRmaWxlIiB8fCBleGVj ID4kZmlsZQotKwllY2hvICIuYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhp cyBwYWdlIgotKwlleGl0ICQ/Ci0rICAgIGZpCi0rICAgIDs7Ci0rCi0rICBtYWtlaW5mbyopCi0r ICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9u bHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLnRleGknIG9yIFxgLnRl eGluZm8nIGZpbGUsIG9yIGFueSBvdGhlciBmaWxlCi0rICAgICAgICAgaW5kaXJlY3RseSBhZmZl Y3RpbmcgdGhlIGFzcGVjdCBvZiB0aGUgbWFudWFsLiAgVGhlIHNwdXJpb3VzCi0rICAgICAgICAg Y2FsbCBtaWdodCBhbHNvIGJlIHRoZSBjb25zZXF1ZW5jZSBvZiB1c2luZyBhIGJ1Z2d5IFxgbWFr ZScgKEFJWCwKLSsgICAgICAgICBEVSwgSVJJWCkuICBZb3UgbWlnaHQgd2FudCB0byBpbnN0YWxs IHRoZSBcYFRleGluZm8nIHBhY2thZ2Ugb3IKLSsgICAgICAgICB0aGUgXGBHTlUgbWFrZScgcGFj a2FnZS4gIEdyYWIgZWl0aGVyIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotKyAgICAjIFRo ZSBmaWxlIHRvIHRvdWNoIGlzIHRoYXQgc3BlY2lmaWVkIHdpdGggLW8gLi4uCi0rICAgIGZpbGU9 YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAotKyAgICB0ZXN0IC16ICIkZmlsZSIg JiYgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVzbyJgCi0rICAgIGlmIHRlc3Qg LXogIiRmaWxlIjsgdGhlbgotKyAgICAgICMgLi4uIG9yIGl0IGlzIHRoZSBvbmUgc3BlY2lmaWVk IHdpdGggQHNldGZpbGVuYW1lIC4uLgotKyAgICAgIGluZmlsZT1gZWNobyAiJCoiIHwgc2VkICdz Ly4qIFwoW14gXSpcKSAqJC9cMS8nYAotKyAgICAgIGZpbGU9YHNlZCAtbiAnCi0rCS9eQHNldGZp bGVuYW1lL3sKLSsJICBzLy4qIFwoW14gXSpcKSAqJC9cMS8KLSsJICBwCi0rCSAgcQotKwl9JyAk aW5maWxlYAotKyAgICAgICMgLi4uIG9yIGl0IGlzIGRlcml2ZWQgZnJvbSB0aGUgc291cmNlIG5h bWUgKGRpci9mLnRleGkgYmVjb21lcyBmLmluZm8pCi0rICAgICAgdGVzdCAteiAiJGZpbGUiICYm IGZpbGU9YGVjaG8gIiRpbmZpbGUiIHwgc2VkICdzLC4qLywsO3MsLlteLl0qJCwsJ2AuaW5mbwot KyAgICBmaQotKyAgICAjIElmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LCB0aGUgdXNlciByZWFs bHkgbmVlZHMgbWFrZWluZm87Ci0rICAgICMgbGV0J3MgZmFpbCB3aXRob3V0IHRvdWNoaW5nIGFu eXRoaW5nLgotKyAgICB0ZXN0IC1mICRmaWxlIHx8IGV4aXQgMQotKyAgICB0b3VjaCAkZmlsZQot KyAgICA7OwotKwotKyAgdGFyKikKLSsgICAgc2hpZnQKLSsKLSsgICAgIyBXZSBoYXZlIGFscmVh ZHkgdHJpZWQgdGFyIGluIHRoZSBnZW5lcmljIHBhcnQuCi0rICAgICMgTG9vayBmb3IgZ251dGFy L2d0YXIgYmVmb3JlIGludm9jYXRpb24gdG8gYXZvaWQgdWdseSBlcnJvcgotKyAgICAjIG1lc3Nh Z2VzLgotKyAgICBpZiAoZ251dGFyIC0tdmVyc2lvbiA+IC9kZXYvbnVsbCAyPiYxKTsgdGhlbgot KyAgICAgICBnbnV0YXIgIiRAIiAmJiBleGl0IDAKLSsgICAgZmkKLSsgICAgaWYgKGd0YXIgLS12 ZXJzaW9uID4gL2Rldi9udWxsIDI+JjEpOyB0aGVuCi0rICAgICAgIGd0YXIgIiRAIiAmJiBleGl0 IDAKLSsgICAgZmkKLSsgICAgZmlyc3Rhcmc9IiQxIgotKyAgICBpZiBzaGlmdDsgdGhlbgotKwlj YXNlICRmaXJzdGFyZyBpbgotKwkqbyopCi0rCSAgICBmaXJzdGFyZz1gZWNobyAiJGZpcnN0YXJn IiB8IHNlZCBzL28vL2AKLSsJICAgIHRhciAiJGZpcnN0YXJnIiAiJEAiICYmIGV4aXQgMAotKwkg ICAgOzsKLSsJZXNhYwotKwljYXNlICRmaXJzdGFyZyBpbgotKwkqaCopCi0rCSAgICBmaXJzdGFy Zz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL2gvL2AKLSsJICAgIHRhciAiJGZpcnN0YXJnIiAi JEAiICYmIGV4aXQgMAotKwkgICAgOzsKLSsJZXNhYwotKyAgICBmaQotKwotKyAgICBlY2hvIDE+ JjIgIlwKLStXQVJOSU5HOiBJIGNhbid0IHNlZW0gdG8gYmUgYWJsZSB0byBydW4gXGB0YXInIHdp dGggdGhlIGdpdmVuIGFyZ3VtZW50cy4KLSsgICAgICAgICBZb3UgbWF5IHdhbnQgdG8gaW5zdGFs bCBHTlUgdGFyIG9yIEZyZWUgcGF4dXRpbHMsIG9yIGNoZWNrIHRoZQotKyAgICAgICAgIGNvbW1h bmQgbGluZSBhcmd1bWVudHMuIgotKyAgICBleGl0IDEKLSsgICAgOzsKLSsKLSsgICopCi0rICAg IGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzIG5lZWRlZCwgYW5kIGlzICRtc2cuCi0r ICAgICAgICAgWW91IG1pZ2h0IGhhdmUgbW9kaWZpZWQgc29tZSBmaWxlcyB3aXRob3V0IGhhdmlu ZyB0aGUKLSsgICAgICAgICBwcm9wZXIgdG9vbHMgZm9yIGZ1cnRoZXIgaGFuZGxpbmcgdGhlbS4g IENoZWNrIHRoZSBcYFJFQURNRScgZmlsZSwKLSsgICAgICAgICBpdCBvZnRlbiB0ZWxscyB5b3Ug YWJvdXQgdGhlIG5lZWRlZCBwcmVyZXF1aXNpdGVzIGZvciBpbnN0YWxsaW5nCi0rICAgICAgICAg dGhpcyBwYWNrYWdlLiAgWW91IG1heSBhbHNvIHBlZWsgYXQgYW55IEdOVSBhcmNoaXZlIHNpdGUs IGluIGNhc2UKLSsgICAgICAgICBzb21lIG90aGVyIHBhY2thZ2Ugd291bGQgY29udGFpbiB0aGlz IG1pc3NpbmcgXGAkMScgcHJvZ3JhbS4iCi0rICAgIGV4aXQgMQotKyAgICA7OwotK2VzYWMKLSsK LStleGl0IDAKLSsKLSsjIExvY2FsIHZhcmlhYmxlczoKLSsjIGV2YWw6IChhZGQtaG9vayAnd3Jp dGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKLSsjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2 ZXJzaW9uPSIKLSsjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgotKyMg dGltZS1zdGFtcC10aW1lLXpvbmU6ICJVVEMiCi0rIyB0aW1lLXN0YW1wLWVuZDogIjsgIyBVVEMi Ci0rIyBFbmQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlndXJlIHNvY2ktMy4w LjBfdHJlcDMwMC9jb25maWd1cmUKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWd1cmUJMjAx MC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAv Y29uZmlndXJlCTIwMTAtMDEtMjMgMTQ6NDQ6NDkuMDAwMDAwMDAwICswMTAwCi1AQCAtMSw3MiAr MSwyMzA0MCBAQAotLSMhL2Jpbi9zaAotKyMhIC9iaW4vc2gKLSsjIEd1ZXNzIHZhbHVlcyBmb3Ig c3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgYW5kIGNyZWF0ZSBNYWtlZmlsZXMuCi0rIyBHZW5l cmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjMgZm9yIFNPQ0kgMy4wLjAuCi0rIwotKyMgUmVwb3J0 IGJ1Z3MgdG8gPG1zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4uCi0rIwotKyMgQ29weXJp Z2h0IChDKSAyMDA0LTIwMDkgTWFjaWVqIFNvYmN6YWsgPG1zb2JjemFrQHVzZXJzLnNvdXJjZWZv cmdlLm5ldD4KLSsjCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5 OTYsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsCi0rIyAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAy MDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBj b25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUg YW5kIG1vZGlmeSBpdC4KLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBNNHNoIElu aXRpYWxpemF0aW9uLiAgIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSAKLS1pZiBb ICQjIC1ndCAwIF0KLS10aGVuCi0tICAgIGlmIFsgJDEgPSAiLWhlbHAiIC1vICQxID0gIi0taGVs cCIgXQotLSAgICB0aGVuCi0tICAgICAgICBlY2hvICdSZWNvZ25pemVkIGNvbmZpZ3VyZSBvcHRp b25zOicKLS0gICAgICAgIGVjaG8gJycKLS0gICAgICAgIGVjaG8gJ0luc3RhbGxhdGlvbiBvcHRp b25zOicKLS0gICAgICAgIGVjaG8gJy0taW5jbHVkZS1wcmVmaXg9L3NvbWUvcGF0aCAgICAgIC0g cGF0aCB0byBpbnN0YWxsIFNPQ0kgaGVhZGVyIGZpbGVzJwotLSAgICAgICAgZWNobyAnLS1saWIt cHJlZml4PS9zb21lL3BhdGggICAgICAgICAgLSBwYXRoIHRvIGluc3RhbGwgU09DSSBsaWJyYXJp ZXMnCi0tICAgICAgICBlY2hvICcnCi0tICAgICAgICBlY2hvICdNeVNRTCBvcHRpb25zOicKLS0g ICAgICAgIGVjaG8gJy0tbXlzcWwtaW5jbHVkZT0vc29tZS9wYXRoICAgICAgIC0gZGlyZWN0b3J5 IGNvbnRhaW5pbmcgbXlzcWwuaCcKLS0gICAgICAgIGVjaG8gJy0tbXlzcWwtbGliPS9zb21lL3Bh dGggICAgICAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGlibXlzcWxjbGllbnQuW2F8c29d JwotLSAgICAgICAgZWNobyAnJwotLSAgICAgICAgZWNobyAnT3JhY2xlIG9wdGlvbnMgKGlmIE9S QUNMRV9IT01FIHZhcmlhYmxlIGlzIG5vdCBzZXQpOicKLS0gICAgICAgIGVjaG8gJy0tb3JhY2xl LWluY2x1ZGU9L3NvbWUvcGF0aCAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgb2NpLmgnCi0t ICAgICAgICBlY2hvICctLW9yYWNsZS1saWI9L3NvbWUvcGF0aCAgICAgICAgICAtIGRpcmVjdG9y eSBjb250YWluaW5nIGxpYmNsbnRzaC5bYXxzb10nCi0tICAgICAgICBlY2hvICcnCi0tICAgICAg ICBlY2hvICdQb3N0Z3JlU1FMIG9wdGlvbnM6JwotLSAgICAgICAgZWNobyAnLS1wb3N0Z3Jlc3Fs LWluY2x1ZGU9L3NvbWUvcGF0aCAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJwcS9saWJwcS1m cy5oJwotLSAgICAgICAgZWNobyAnLS1wb3N0Z3Jlc3FsLWxpYj0vc29tZS9wYXRoICAgICAgLSBk aXJlY3RvcnkgY29udGFpbmluZyBsaWJwcS5bYXxzb10nCi0tICAgICAgICBlY2hvICcnCi0tICAg ICAgICBlY2hvICdUZXN0IHByb2dyYW1zIGNvbXBpbGF0aW9uIG9wdGlvbnMgKG5vdCBuZWVkZWQg Zm9yIGxpYnJhcnkgYnVpbGQpOicKLS0gICAgICAgIGVjaG8gJy0tYm9vc3QtaW5jbHVkZT0vc29t ZS9wYXRoICAgICAgIC0gcm9vdCBpbmNsdWRlIGRpcmVjdG9yeSBvZiBCb29zdCcKLS0gICAgICAg IGVjaG8gJy0tYm9vc3QtbGliPS9zb21lL3BhdGggICAgICAgICAgIC0gcm9vdCBsaWIgZGlyZWN0 b3J5IG9mIEJvb3N0JwotLSAgICAgICAgZWNobyAnJwotLSAgICAgICAgZXhpdAotLSAgICBmaQot KyMgQmUgbW9yZSBCb3VybmUgY29tcGF0aWJsZQotK0RVQUxDQVNFPTE7IGV4cG9ydCBEVUFMQ0FT RSAjIGZvciBNS1Mgc2gKLStpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVs YXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIGVtdWxhdGUgc2gKLSsgIE5VTExDTUQ9 OgotKyAgIyBQcmUtNC4yIHZlcnNpb25zIG9mIFpzaCBkbyB3b3JkIHNwbGl0dGluZyBvbiAkezEr IiRAIn0sIHdoaWNoCi0rICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhp cyBmZWF0dXJlLgotKyAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCi0rICBzZXRvcHQgTk9f R0xPQl9TVUJTVAotK2Vsc2UKLSsgIGNhc2UgYChzZXQgLW8pIDI+L2Rldi9udWxsYCBpbgotKyAg KnBvc2l4Kikgc2V0IC1vIHBvc2l4IDs7Ci0rZXNhYwotKwotK2ZpCi0rCi0rCi0rCi0rCi0rIyBQ QVRIIG5lZWRzIENSCi0rIyBBdm9pZCBkZXBlbmRpbmcgdXBvbiBDaGFyYWN0ZXIgUmFuZ2VzLgot K2FzX2NyX2xldHRlcnM9J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JwotK2FzX2NyX0xFVFRF UlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJwotK2FzX2NyX0xldHRlcnM9JGFzX2NyX2xl dHRlcnMkYXNfY3JfTEVUVEVSUwotK2FzX2NyX2RpZ2l0cz0nMDEyMzQ1Njc4OScKLSthc19jcl9h bG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKLSsKLSthc19ubD0nCi0rJwotK2V4cG9y dCBhc19ubAotKyMgUHJpbnRpbmcgYSBsb25nIHN0cmluZyBjcmFzaGVzIFNvbGFyaXMgNyAvdXNy L2Jpbi9wcmludGYuCi0rYXNfZWNobz0nXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXCcKLSthc19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hv JGFzX2VjaG8KLSthc19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2Vj aG8kYXNfZWNobwotK2lmICh0ZXN0ICJYYHByaW50ZiAlcyAkYXNfZWNob2AiID0gIlgkYXNfZWNo byIpIDI+L2Rldi9udWxsOyB0aGVuCi0rICBhc19lY2hvPSdwcmludGYgJXNcbicKLSsgIGFzX2Vj aG9fbj0ncHJpbnRmICVzJwotK2Vsc2UKLSsgIGlmIHRlc3QgIlhgKC91c3IvdWNiL2VjaG8gLW4g LW4gJGFzX2VjaG8pIDI+L2Rldi9udWxsYCIgPSAiWC1uICRhc19lY2hvIjsgdGhlbgotKyAgICBh c19lY2hvX2JvZHk9J2V2YWwgL3Vzci91Y2IvZWNobyAtbiAiJDEkYXNfbmwiJwotKyAgICBhc19l Y2hvX249Jy91c3IvdWNiL2VjaG8gLW4nCi0rICBlbHNlCi0rICAgIGFzX2VjaG9fYm9keT0nZXZh bCBleHByICJYJDEiIDogIlhcXCguKlxcKSInCi0rICAgIGFzX2VjaG9fbl9ib2R5PSdldmFsCi0r ICAgICAgYXJnPSQxOwotKyAgICAgIGNhc2UgJGFyZyBpbgotKyAgICAgICoiJGFzX25sIiopCi0r CWV4cHIgIlgkYXJnIiA6ICJYXFwoLipcXCkkYXNfbmwiOwotKwlhcmc9YGV4cHIgIlgkYXJnIiA6 ICIuKiRhc19ubFxcKC4qXFwpImA7OwotKyAgICAgIGVzYWM7Ci0rICAgICAgZXhwciAiWCRhcmci IDogIlhcXCguKlxcKSIgfCB0ciAtZCAiJGFzX25sIgotKyAgICAnCi0rICAgIGV4cG9ydCBhc19l Y2hvX25fYm9keQotKyAgICBhc19lY2hvX249J3NoIC1jICRhc19lY2hvX25fYm9keSBhc19lY2hv JwotKyAgZmkKLSsgIGV4cG9ydCBhc19lY2hvX2JvZHkKLSsgIGFzX2VjaG89J3NoIC1jICRhc19l Y2hvX2JvZHkgYXNfZWNobycKLStmaQotKwotKyMgVGhlIHVzZXIgaXMgYWx3YXlzIHJpZ2h0Lgot K2lmIHRlc3QgIiR7UEFUSF9TRVBBUkFUT1Irc2V0fSIgIT0gc2V0OyB0aGVuCi0rICBQQVRIX1NF UEFSQVRPUj06Ci0rICAoUEFUSD0nL2JpbjsvYmluJzsgRlBBVEg9JFBBVEg7IHNoIC1jIDopID4v ZGV2L251bGwgMj4mMSAmJiB7Ci0rICAgIChQQVRIPScvYmluOi9iaW4nOyBGUEFUSD0kUEFUSDsg c2ggLWMgOikgPi9kZXYvbnVsbCAyPiYxIHx8Ci0rICAgICAgUEFUSF9TRVBBUkFUT1I9JzsnCi0r ICB9Ci0rZmkKLSsKLSsjIFN1cHBvcnQgdW5zZXQgd2hlbiBwb3NzaWJsZS4KLStpZiAoIChNQUlM PTYwOyB1bnNldCBNQUlMKSB8fCBleGl0KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIGFzX3Vu c2V0PXVuc2V0Ci0rZWxzZQotKyAgYXNfdW5zZXQ9ZmFsc2UKLStmaQotKwotKwotKyMgSUZTCi0r IyBXZSBuZWVkIHNwYWNlLCB0YWIgYW5kIG5ldyBsaW5lLCBpbiBwcmVjaXNlbHkgdGhhdCBvcmRl ci4gIFF1b3RpbmcgaXMKLSsjIHRoZXJlIHRvIHByZXZlbnQgZWRpdG9ycyBmcm9tIGNvbXBsYWlu aW5nIGFib3V0IHNwYWNlLXRhYi4KLSsjIChJZiBfQVNfUEFUSF9XQUxLIHdlcmUgY2FsbGVkIHdp dGggSUZTIHVuc2V0LCBpdCB3b3VsZCBkaXNhYmxlIHdvcmQKLSsjIHNwbGl0dGluZyBieSBzZXR0 aW5nIElGUyB0byBlbXB0eSB2YWx1ZS4pCi0rSUZTPSIgIiIJJGFzX25sIgotKwotKyMgRmluZCB3 aG8gd2UgYXJlLiAgTG9vayBpbiB0aGUgcGF0aCBpZiB3ZSBjb250YWluIG5vIGRpcmVjdG9yeSBz ZXBhcmF0b3IuCi0rY2FzZSAkMCBpbgotKyAgKltcXC9dKiApIGFzX215c2VsZj0kMCA7OwotKyAg KikgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4g JFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KLSsgIHRlc3QgLXIgIiRhc19kaXIvJDAiICYmIGFzX215c2VsZj0kYXNfZGlyLyQw ICYmIGJyZWFrCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgICAgIDs7Ci0rZXNhYwot KyMgV2UgZGlkIG5vdCBmaW5kIG91cnNlbHZlcywgbW9zdCBwcm9iYWJseSB3ZSB3ZXJlIHJ1biBh cyBgc2ggQ09NTUFORCcKLSsjIGluIHdoaWNoIGNhc2Ugd2UgYXJlIG5vdCB0byBiZSBmb3VuZCBp biB0aGUgcGF0aC4KLStpZiB0ZXN0ICJ4JGFzX215c2VsZiIgPSB4OyB0aGVuCi0rICBhc19teXNl bGY9JDAKLStmaQotK2lmIHRlc3QgISAtZiAiJGFzX215c2VsZiI7IHRoZW4KLSsgICRhc19lY2hv ICIkYXNfbXlzZWxmOiBlcnJvcjogY2Fubm90IGZpbmQgbXlzZWxmOyByZXJ1biB3aXRoIGFuIGFi c29sdXRlIGZpbGUgbmFtZSIgPiYyCi0rICB7IChleGl0IDEpOyBleGl0IDE7IH0KLStmaQotKwot KyMgV29yayBhcm91bmQgYnVncyBpbiBwcmUtMy4wIFVXSU4ga3NoLgotK2ZvciBhc192YXIgaW4g RU5WIE1BSUwgTUFJTFBBVEgKLStkbyAoJGFzX3Vuc2V0ICRhc192YXIpID4vZGV2L251bGwgMj4m MSAmJiAkYXNfdW5zZXQgJGFzX3ZhcgotK2RvbmUKLStQUzE9JyQgJwotK1BTMj0nPiAnCi0rUFM0 PScrICcKLSsKLSsjIE5MUyBudWlzYW5jZXMuCi0rTENfQUxMPUMKLStleHBvcnQgTENfQUxMCi0r TEFOR1VBR0U9QwotK2V4cG9ydCBMQU5HVUFHRQotKwotKyMgUmVxdWlyZWQgdG8gdXNlIGJhc2Vu YW1lLgotK2lmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxICYmCi0rICAgdGVzdCAi WGBleHByIDAwMDAxIDogJy4qXCguLi5cKSdgIiA9IFgwMDE7IHRoZW4KLSsgIGFzX2V4cHI9ZXhw cgotK2Vsc2UKLSsgIGFzX2V4cHI9ZmFsc2UKLStmaQotKwotK2lmIChiYXNlbmFtZSAtLSAvKSA+ L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAiWGBiYXNlbmFtZSAtLSAvIDI+JjFgIiA9ICJYLyI7IHRo ZW4KLSsgIGFzX2Jhc2VuYW1lPWJhc2VuYW1lCi0rZWxzZQotKyAgYXNfYmFzZW5hbWU9ZmFsc2UK LStmaQotKwotKwotKyMgTmFtZSBvZiB0aGUgZXhlY3V0YWJsZS4KLSthc19tZT1gJGFzX2Jhc2Vu YW1lIC0tICIkMCIgfHwKLSskYXNfZXhwciBYLyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcg XHwgXAotKwkgWCIkMCIgOiAnWFwoLy9cKSQnIFx8IFwKLSsJIFgiJDAiIDogJ1hcKC9cKScgXHwg LiAyPi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgvIiQwIiB8Ci0rICAgIHNlZCAnL14uKlwvXChb Xi9dW14vXSpcKVwvKiQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwv XChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcL1woXC9c KS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICBzLy4qLy4vOyBxJ2AKLSsK LSsjIENEUEFUSC4KLSskYXNfdW5zZXQgQ0RQQVRICi0rCi0rCi0raWYgdGVzdCAieCRDT05GSUdf U0hFTEwiID0geDsgdGhlbgotKyAgaWYgKGV2YWwgIjoiKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAg YXNfaGF2ZV9yZXF1aXJlZD15ZXMKLStlbHNlCi0rICBhc19oYXZlX3JlcXVpcmVkPW5vCi0rZmkK LSsKLSsgIGlmIHRlc3QgJGFzX2hhdmVfcmVxdWlyZWQgPSB5ZXMgJiYJIChldmFsICI6Ci0rKGFz X2Z1bmNfcmV0dXJuICgpIHsKLSsgIChleGl0IFwkMSkKLSt9Ci0rYXNfZnVuY19zdWNjZXNzICgp IHsKLSsgIGFzX2Z1bmNfcmV0dXJuIDAKLSt9Ci0rYXNfZnVuY19mYWlsdXJlICgpIHsKLSsgIGFz X2Z1bmNfcmV0dXJuIDEKLSt9Ci0rYXNfZnVuY19yZXRfc3VjY2VzcyAoKSB7Ci0rICByZXR1cm4g MAotK30KLSthc19mdW5jX3JldF9mYWlsdXJlICgpIHsKLSsgIHJldHVybiAxCi0rfQotKwotK2V4 aXRjb2RlPTAKLStpZiBhc19mdW5jX3N1Y2Nlc3M7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBleGl0 Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNfc3VjY2VzcyBmYWlsZWQuCi0rZmkKLSsKLStpZiBhc19m dW5jX2ZhaWx1cmU7IHRoZW4KLSsgIGV4aXRjb2RlPTEKLSsgIGVjaG8gYXNfZnVuY19mYWlsdXJl IHN1Y2NlZWRlZC4KLStmaQotKwotK2lmIGFzX2Z1bmNfcmV0X3N1Y2Nlc3M7IHRoZW4KLSsgIDoK LStlbHNlCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNfcmV0X3N1Y2Nlc3MgZmFpbGVk LgotK2ZpCi0rCi0raWYgYXNfZnVuY19yZXRfZmFpbHVyZTsgdGhlbgotKyAgZXhpdGNvZGU9MQot KyAgZWNobyBhc19mdW5jX3JldF9mYWlsdXJlIHN1Y2NlZWRlZC4KLStmaQotKwotK2lmICggc2V0 IHg7IGFzX2Z1bmNfcmV0X3N1Y2Nlc3MgeSAmJiB0ZXN0IHggPSBcIlwkMVwiICk7IHRoZW4KLSsg IDoKLStlbHNlCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIHBvc2l0aW9uYWwgcGFyYW1ldGVycyB3 ZXJlIG5vdCBzYXZlZC4KLStmaQotKwotK3Rlc3QgXCRleGl0Y29kZSA9IDApIHx8IHsgKGV4aXQg MSk7IGV4aXQgMTsgfQotKwotKygKLSsgIGFzX2xpbmVub18xPVwkTElORU5PCi0rICBhc19saW5l bm9fMj1cJExJTkVOTwotKyAgdGVzdCBcInhcJGFzX2xpbmVub18xXCIgIT0gXCJ4XCRhc19saW5l bm9fMlwiICYmCi0rICB0ZXN0IFwieFxgZXhwciBcJGFzX2xpbmVub18xICsgMVxgXCIgPSBcInhc JGFzX2xpbmVub18yXCIpIHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQotKyIpIDI+IC9kZXYvbnVs bDsgdGhlbgotKyAgOgotK2Vsc2UKLSsgIGFzX2NhbmRpZGF0ZV9zaGVsbHM9Ci0rICAgIGFzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluIC9iaW4kUEFU SF9TRVBBUkFUT1IvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRICi0rZG8KLSsgIElGUz0kYXNf c2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBjYXNlICRhc19k aXIgaW4KLSsJIC8qKQotKwkgICBmb3IgYXNfYmFzZSBpbiBzaCBiYXNoIGtzaCBzaDU7IGRvCi0r CSAgICAgYXNfY2FuZGlkYXRlX3NoZWxscz0iJGFzX2NhbmRpZGF0ZV9zaGVsbHMgJGFzX2Rpci8k YXNfYmFzZSIKLSsJICAgZG9uZTs7Ci0rICAgICAgIGVzYWMKLStkb25lCi0rSUZTPSRhc19zYXZl X0lGUwotKwotKwotKyAgICAgIGZvciBhc19zaGVsbCBpbiAkYXNfY2FuZGlkYXRlX3NoZWxscyAk U0hFTEw7IGRvCi0rCSAjIFRyeSBvbmx5IHNoZWxscyB0aGF0IGV4aXN0LCB0byBzYXZlIHNldmVy YWwgZm9ya3MuCi0rCSBpZiB7IHRlc3QgLWYgIiRhc19zaGVsbCIgfHwgdGVzdCAtZiAiJGFzX3No ZWxsLmV4ZSI7IH0gJiYKLSsJCXsgKCIkYXNfc2hlbGwiKSAyPiAvZGV2L251bGwgPDxcX0FTRU9G Ci0raWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYv bnVsbCAyPiYxOyB0aGVuCi0rICBlbXVsYXRlIHNoCi0rICBOVUxMQ01EPToKLSsgICMgUHJlLTQu MiB2ZXJzaW9ucyBvZiBac2ggZG8gd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAot KyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSsg IGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJwotKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLStl bHNlCi0rICBjYXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4KLSsgICpwb3NpeCopIHNldCAt byBwb3NpeCA7OwotK2VzYWMKLSsKLStmaQotKwotKwotKzoKLStfQVNFT0YKLSt9OyB0aGVuCi0r ICBDT05GSUdfU0hFTEw9JGFzX3NoZWxsCi0rCSAgICAgICBhc19oYXZlX3JlcXVpcmVkPXllcwot KwkgICAgICAgaWYgeyAiJGFzX3NoZWxsIiAyPiAvZGV2L251bGwgPDxcX0FTRU9GCi0raWYgdGVz dCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYx OyB0aGVuCi0rICBlbXVsYXRlIHNoCi0rICBOVUxMQ01EPToKLSsgICMgUHJlLTQuMiB2ZXJzaW9u cyBvZiBac2ggZG8gd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAotKyAgIyBpcyBj b250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSsgIGFsaWFzIC1n ICckezErIiRAIn0nPSciJEAiJwotKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLStlbHNlCi0rICBj YXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4KLSsgICpwb3NpeCopIHNldCAtbyBwb3NpeCA7 OwotK2VzYWMKLSsKLStmaQotKwotKwotKzoKLSsoYXNfZnVuY19yZXR1cm4gKCkgewotKyAgKGV4 aXQgJDEpCi0rfQotK2FzX2Z1bmNfc3VjY2VzcyAoKSB7Ci0rICBhc19mdW5jX3JldHVybiAwCi0r fQotK2FzX2Z1bmNfZmFpbHVyZSAoKSB7Ci0rICBhc19mdW5jX3JldHVybiAxCi0rfQotK2FzX2Z1 bmNfcmV0X3N1Y2Nlc3MgKCkgewotKyAgcmV0dXJuIDAKLSt9Ci0rYXNfZnVuY19yZXRfZmFpbHVy ZSAoKSB7Ci0rICByZXR1cm4gMQotK30KLSsKLStleGl0Y29kZT0wCi0raWYgYXNfZnVuY19zdWNj ZXNzOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9MQotKyAgZWNobyBhc19mdW5jX3N1 Y2Nlc3MgZmFpbGVkLgotK2ZpCi0rCi0raWYgYXNfZnVuY19mYWlsdXJlOyB0aGVuCi0rICBleGl0 Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNfZmFpbHVyZSBzdWNjZWVkZWQuCi0rZmkKLSsKLStpZiBh c19mdW5jX3JldF9zdWNjZXNzOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9MQotKyAg ZWNobyBhc19mdW5jX3JldF9zdWNjZXNzIGZhaWxlZC4KLStmaQotKwotK2lmIGFzX2Z1bmNfcmV0 X2ZhaWx1cmU7IHRoZW4KLSsgIGV4aXRjb2RlPTEKLSsgIGVjaG8gYXNfZnVuY19yZXRfZmFpbHVy ZSBzdWNjZWVkZWQuCi0rZmkKLSsKLStpZiAoIHNldCB4OyBhc19mdW5jX3JldF9zdWNjZXNzIHkg JiYgdGVzdCB4ID0gIiQxIiApOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9MQotKyAg ZWNobyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgd2VyZSBub3Qgc2F2ZWQuCi0rZmkKLSsKLSt0ZXN0 ICRleGl0Y29kZSA9IDApIHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQotKwotKygKLSsgIGFzX2xp bmVub18xPSRMSU5FTk8KLSsgIGFzX2xpbmVub18yPSRMSU5FTk8KLSsgIHRlc3QgIngkYXNfbGlu ZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgotKyAgdGVzdCAieGBleHByICRhc19saW5lbm9f MSArIDFgIiA9ICJ4JGFzX2xpbmVub18yIikgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci0rCi0r X0FTRU9GCi0rfTsgdGhlbgotKyAgYnJlYWsKLStmaQotKwotK2ZpCi0rCi0rICAgICAgZG9uZQot KwotKyAgICAgIGlmIHRlc3QgIngkQ09ORklHX1NIRUxMIiAhPSB4OyB0aGVuCi0rICBmb3IgYXNf dmFyIGluIEJBU0hfRU5WIEVOVgotKwlkbyAoJGFzX3Vuc2V0ICRhc192YXIpID4vZGV2L251bGwg Mj4mMSAmJiAkYXNfdW5zZXQgJGFzX3ZhcgotKwlkb25lCi0rCWV4cG9ydCBDT05GSUdfU0hFTEwK LSsJZXhlYyAiJENPTkZJR19TSEVMTCIgIiRhc19teXNlbGYiICR7MSsiJEAifQotK2ZpCi0rCi0r Ci0rICAgIGlmIHRlc3QgJGFzX2hhdmVfcmVxdWlyZWQgPSBubzsgdGhlbgotKyAgZWNobyBUaGlz IHNjcmlwdCByZXF1aXJlcyBhIHNoZWxsIG1vcmUgbW9kZXJuIHRoYW4gYWxsIHRoZQotKyAgICAg IGVjaG8gc2hlbGxzIHRoYXQgSSBmb3VuZCBvbiB5b3VyIHN5c3RlbS4gIFBsZWFzZSBpbnN0YWxs IGEKLSsgICAgICBlY2hvIG1vZGVybiBzaGVsbCwgb3IgbWFudWFsbHkgcnVuIHRoZSBzY3JpcHQg dW5kZXIgc3VjaCBhCi0rICAgICAgZWNobyBzaGVsbCBpZiB5b3UgZG8gaGF2ZSBvbmUuCi0rICAg ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci0rZmkKLSsKLSsKLStmaQotKwotK2ZpCi0rCi0rCi0r Ci0rKGV2YWwgImFzX2Z1bmNfcmV0dXJuICgpIHsKLSsgIChleGl0IFwkMSkKLSt9Ci0rYXNfZnVu Y19zdWNjZXNzICgpIHsKLSsgIGFzX2Z1bmNfcmV0dXJuIDAKLSt9Ci0rYXNfZnVuY19mYWlsdXJl ICgpIHsKLSsgIGFzX2Z1bmNfcmV0dXJuIDEKLSt9Ci0rYXNfZnVuY19yZXRfc3VjY2VzcyAoKSB7 Ci0rICByZXR1cm4gMAotK30KLSthc19mdW5jX3JldF9mYWlsdXJlICgpIHsKLSsgIHJldHVybiAx Ci0rfQotKwotK2V4aXRjb2RlPTAKLStpZiBhc19mdW5jX3N1Y2Nlc3M7IHRoZW4KLSsgIDoKLStl bHNlCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNfc3VjY2VzcyBmYWlsZWQuCi0rZmkK LSsKLStpZiBhc19mdW5jX2ZhaWx1cmU7IHRoZW4KLSsgIGV4aXRjb2RlPTEKLSsgIGVjaG8gYXNf ZnVuY19mYWlsdXJlIHN1Y2NlZWRlZC4KLStmaQotKwotK2lmIGFzX2Z1bmNfcmV0X3N1Y2Nlc3M7 IHRoZW4KLSsgIDoKLStlbHNlCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNfcmV0X3N1 Y2Nlc3MgZmFpbGVkLgotK2ZpCi0rCi0raWYgYXNfZnVuY19yZXRfZmFpbHVyZTsgdGhlbgotKyAg ZXhpdGNvZGU9MQotKyAgZWNobyBhc19mdW5jX3JldF9mYWlsdXJlIHN1Y2NlZWRlZC4KLStmaQot KwotK2lmICggc2V0IHg7IGFzX2Z1bmNfcmV0X3N1Y2Nlc3MgeSAmJiB0ZXN0IHggPSBcIlwkMVwi ICk7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIHBvc2l0aW9uYWwg cGFyYW1ldGVycyB3ZXJlIG5vdCBzYXZlZC4KLStmaQotKwotK3Rlc3QgXCRleGl0Y29kZSA9IDAi KSB8fCB7Ci0rICBlY2hvIE5vIHNoZWxsIGZvdW5kIHRoYXQgc3VwcG9ydHMgc2hlbGwgZnVuY3Rp b25zLgotKyAgZWNobyBQbGVhc2UgdGVsbCBidWctYXV0b2NvbmZAZ251Lm9yZyBhYm91dCB5b3Vy IHN5c3RlbSwKLSsgIGVjaG8gaW5jbHVkaW5nIGFueSBlcnJvciBwb3NzaWJseSBvdXRwdXQgYmVm b3JlIHRoaXMgbWVzc2FnZS4KLSsgIGVjaG8gVGhpcyBjYW4gaGVscCB1cyBpbXByb3ZlIGZ1dHVy ZSBhdXRvY29uZiB2ZXJzaW9ucy4KLSsgIGVjaG8gQ29uZmlndXJhdGlvbiB3aWxsIG5vdyBwcm9j ZWVkIHdpdGhvdXQgc2hlbGwgZnVuY3Rpb25zLgotK30KLSsKLSsKLSsKLSsgIGFzX2xpbmVub18x PSRMSU5FTk8KLSsgIGFzX2xpbmVub18yPSRMSU5FTk8KLSsgIHRlc3QgIngkYXNfbGluZW5vXzEi ICE9ICJ4JGFzX2xpbmVub18yIiAmJgotKyAgdGVzdCAieGBleHByICRhc19saW5lbm9fMSArIDFg IiA9ICJ4JGFzX2xpbmVub18yIiB8fCB7Ci0rCi0rICAjIENyZWF0ZSAkYXNfbWUubGluZW5vIGFz IGEgY29weSBvZiAkYXNfbXlzZWxmLCBidXQgd2l0aCAkTElORU5PCi0rICAjIHVuaWZvcm1seSBy ZXBsYWNlZCBieSB0aGUgbGluZSBudW1iZXIuICBUaGUgZmlyc3QgJ3NlZCcgaW5zZXJ0cyBhCi0r ICAjIGxpbmUtbnVtYmVyIGxpbmUgYWZ0ZXIgZWFjaCBsaW5lIHVzaW5nICRMSU5FTk87IHRoZSBz ZWNvbmQgJ3NlZCcKLSsgICMgZG9lcyB0aGUgcmVhbCB3b3JrLiAgVGhlIHNlY29uZCBzY3JpcHQg dXNlcyAnTicgdG8gcGFpciBlYWNoCi0rICAjIGxpbmUtbnVtYmVyIGxpbmUgd2l0aCB0aGUgbGlu ZSBjb250YWluaW5nICRMSU5FTk8sIGFuZCBhcHBlbmRzCi0rICAjIHRyYWlsaW5nICctJyBkdXJp bmcgc3Vic3RpdHV0aW9uIHNvIHRoYXQgJExJTkVOTyBpcyBub3QgYSBzcGVjaWFsCi0rICAjIGNh c2UgYXQgbGluZSBlbmQuCi0rICAjIChSYWphIFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNlZCAnPScs IGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0aGUKLSsgICMgc2NyaXB0cyB3aXRoIG9wdGltaXphdGlv biBoZWxwIGZyb20gUGFvbG8gQm9uemluaS4gIEJsYW1lIExlZQotKyAgIyBFLiBNY01haG9uICgx OTMxLTE5ODkpIGZvciBzZWQncyBzeW50YXguICA6LSkKLSsgIHNlZCAtbiAnCi0rICAgIHAKLSsg ICAgL1skXUxJTkVOTy89Ci0rICAnIDwkYXNfbXlzZWxmIHwKLSsgICAgc2VkICcKLSsgICAgICBz L1skXUxJTkVOTy4qLyYtLwotKyAgICAgIHQgbGluZW5vCi0rICAgICAgYgotKyAgICAgIDpsaW5l bm8KLSsgICAgICBOCi0rICAgICAgOmxvb3AKLSsgICAgICBzL1skXUxJTkVOT1woW14nJGFzX2Ny X2FsbnVtJ19dLipcblwpXCguKlwpL1wyXDFcMi8KLSsgICAgICB0IGxvb3AKLSsgICAgICBzLy1c bi4qLy8KLSsgICAgJyA+JGFzX21lLmxpbmVubyAmJgotKyAgY2htb2QgK3ggIiRhc19tZS5saW5l bm8iIHx8Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgJGFz X21lLmxpbmVubzsgcmVydW4gd2l0aCBhIFBPU0lYIHNoZWxsIiA+JjIKLSsgICB7IChleGl0IDEp OyBleGl0IDE7IH07IH0KLSsKLSsgICMgRG9uJ3QgdHJ5IHRvIGV4ZWMgYXMgaXQgY2hhbmdlcyAk WzBdLCBjYXVzaW5nIGFsbCBzb3J0IG9mIHByb2JsZW1zCi0rICAjICh0aGUgZGlybmFtZSBvZiAk WzBdIGlzIG5vdCB0aGUgcGxhY2Ugd2hlcmUgd2UgbWlnaHQgZmluZCB0aGUKLSsgICMgb3JpZ2lu YWwgYW5kIHNvIG9uLiAgQXV0b2NvbmYgaXMgZXNwZWNpYWxseSBzZW5zaXRpdmUgdG8gdGhpcyku Ci0rICAuICIuLyRhc19tZS5saW5lbm8iCi0rICAjIEV4aXQgc3RhdHVzIGlzIHRoYXQgb2YgdGhl IGxhc3QgY29tbWFuZC4KLSsgIGV4aXQKLSt9Ci0rCi0rCi0raWYgKGFzX2Rpcj1gZGlybmFtZSAt LSAvYCAmJiB0ZXN0ICJYJGFzX2RpciIgPSBYLykgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBh c19kaXJuYW1lPWRpcm5hbWUKLStlbHNlCi0rICBhc19kaXJuYW1lPWZhbHNlCi0rZmkKLSsKLStF Q0hPX0M9IEVDSE9fTj0gRUNIT19UPQotK2Nhc2UgYGVjaG8gLW4geGAgaW4KLSstbiopCi0rICBj YXNlIGBlY2hvICd4XGMnYCBpbgotKyAgKmMqKSBFQ0hPX1Q9JwknOzsJIyBFQ0hPX1QgaXMgc2lu Z2xlIHRhYiBjaGFyYWN0ZXIuCi0rICAqKSAgIEVDSE9fQz0nXGMnOzsKLSsgIGVzYWM7OwotKyop Ci0rICBFQ0hPX049Jy1uJzs7Ci0rZXNhYwotK2lmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVs bCAyPiYxICYmCi0rICAgdGVzdCAiWGBleHByIDAwMDAxIDogJy4qXCguLi5cKSdgIiA9IFgwMDE7 IHRoZW4KLSsgIGFzX2V4cHI9ZXhwcgotK2Vsc2UKLSsgIGFzX2V4cHI9ZmFsc2UKLStmaQotKwot K3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCi0raWYgdGVzdCAtZCBjb25mJCQu ZGlyOyB0aGVuCi0rICBybSAtZiBjb25mJCQuZGlyL2NvbmYkJC5maWxlCi0rZWxzZQotKyAgcm0g LWYgY29uZiQkLmRpcgotKyAgbWtkaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAotK2ZpCi0raWYg KGVjaG8gPmNvbmYkJC5maWxlKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgaWYgbG4gLXMgY29uZiQk LmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCi0rICAgIGFzX2xuX3M9J2xuIC1zJwotKyAg ICAjIC4uLiBidXQgdGhlcmUgYXJlIHR3byBnb3RjaGFzOgotKyAgICAjIDEpIE9uIE1TWVMsIGJv dGggYGxuIC1zIGZpbGUgZGlyJyBhbmQgYGxuIGZpbGUgZGlyJyBmYWlsLgotKyAgICAjIDIpIERK R1BQIDwgMi4wNCBoYXMgbm8gc3ltbGlua3M7IGBsbiAtcycgY3JlYXRlcyBhIHdyYXBwZXIgZXhl Y3V0YWJsZS4KLSsgICAgIyBJbiBib3RoIGNhc2VzLCB3ZSBoYXZlIHRvIGRlZmF1bHQgdG8gYGNw IC1wJy4KLSsgICAgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkLmRpciAyPi9kZXYvbnVsbCAmJiB0 ZXN0ICEgLWYgY29uZiQkLmV4ZSB8fAotKyAgICAgIGFzX2xuX3M9J2NwIC1wJwotKyAgZWxpZiBs biBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KLSsgICAgYXNfbG5fcz1sbgot KyAgZWxzZQotKyAgICBhc19sbl9zPSdjcCAtcCcKLSsgIGZpCi0rZWxzZQotKyAgYXNfbG5fcz0n Y3AgLXAnCi0rZmkKLStybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZGlyL2NvbmYkJC5m aWxlIGNvbmYkJC5maWxlCi0rcm1kaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAotKwotK2lmIG1r ZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4KLSsgIGFzX21rZGlyX3A9OgotK2Vsc2UKLSsgIHRl c3QgLWQgLi8tcCAmJiBybWRpciAuLy1wCi0rICBhc19ta2Rpcl9wPWZhbHNlCi0rZmkKLSsKLStp ZiB0ZXN0IC14IC8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBhc190ZXN0X3g9J3Rlc3QgLXgn Ci0rZWxzZQotKyAgaWYgbHMgLWRMIC8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgIGFzX2xz X0xfb3B0aW9uPUwKLSsgIGVsc2UKLSsgICAgYXNfbHNfTF9vcHRpb249Ci0rICBmaQotKyAgYXNf dGVzdF94PScKLSsgICAgZXZhbCBzaCAtYyAnXCcnCi0rICAgICAgaWYgdGVzdCAtZCAiJDEiOyB0 aGVuCi0rCXRlc3QgLWQgIiQxLy4iOwotKyAgICAgIGVsc2UKLSsJY2FzZSAkMSBpbgotKwktKilz ZXQgIi4vJDEiOzsKLSsJZXNhYzsKLSsJY2FzZSBgbHMgLWxkJyRhc19sc19MX29wdGlvbicgIiQx IiAyPi9kZXYvbnVsbGAgaW4KLSsJPz8/W3N4XSopOjs7KilmYWxzZTs7ZXNhYztmaQotKyAgICAn XCcnIHNoCi0rICAnCi0rZmkKLSthc19leGVjdXRhYmxlX3A9JGFzX3Rlc3RfeAotKwotKyMgU2Vk IGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCBDUFAgbmFtZS4KLSthc190 cl9jcHA9ImV2YWwgc2VkICd5JSokYXNfY3JfbGV0dGVycyVQJGFzX2NyX0xFVFRFUlMlO3MlW15f JGFzX2NyX2FsbnVtXSVfJWcnIgotKwotKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5n IG9udG8gYSB2YWxpZCB2YXJpYWJsZSBuYW1lLgotK2FzX3RyX3NoPSJldmFsIHNlZCAneSUqKyVw cCU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCi0rCi0rCi0rCi0rCi0rIyBDaGVjayB0aGF0IHdl IGFyZSBydW5uaW5nIHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLgotK1NIRUxMPSR7Q09ORklHX1NI RUxMLS9iaW4vc2h9Ci0rCi0rY2FzZSBYJGx0X0VDSE8gaW4KLStYKi0tZmFsbGJhY2stZWNobykK LSsgICMgUmVtb3ZlIG9uZSBsZXZlbCBvZiBxdW90YXRpb24gKHdoaWNoIHdhcyByZXF1aXJlZCBm b3IgTWFrZSkuCi0rICBFQ0hPPWBlY2hvICIkbHRfRUNITyIgfCBzZWQgJ3MsXFxcXFwkXFwkMCwn JDAnLCdgCi0rICA7OwotK2VzYWMKLSsKLStFQ0hPPSR7bHRfRUNITy1lY2hvfQotK2lmIHRlc3Qg IlgkMSIgPSBYLS1uby1yZWV4ZWM7IHRoZW4KLSsgICMgRGlzY2FyZCB0aGUgLS1uby1yZWV4ZWMg ZmxhZywgYW5kIGNvbnRpbnVlLgotKyAgc2hpZnQKLStlbGlmIHRlc3QgIlgkMSIgPSBYLS1mYWxs YmFjay1lY2hvOyB0aGVuCi0rICAjIEF2b2lkIGlubGluZSBkb2N1bWVudCBoZXJlLCBpdCBtYXkg YmUgbGVmdCBvdmVyCi0rICA6Ci0rZWxpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYv bnVsbGAiID0gJ1hcdCcgOyB0aGVuCi0rICAjIFlpcHBlZSwgJEVDSE8gd29ya3MhCi0rICA6Ci0r ZWxzZQotKyAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLgotKyAgZXhlYyAkU0hF TEwgIiQwIiAtLW5vLXJlZXhlYyAkezErIiRAIn0KLStmaQotKwotK2lmIHRlc3QgIlgkMSIgPSBY LS1mYWxsYmFjay1lY2hvOyB0aGVuCi0rICAjIHVzZWQgYXMgZmFsbGJhY2sgZWNobwotKyAgc2hp ZnQKLSsgIGNhdCA8PF9MVF9FT0YKLSskKgotK19MVF9FT0YKLSsgIGV4aXQgMAotIGZpCi0gCi0t bWtkaXIgLXAgYnVpbGQvdW5peC9sb2NhbAotLXBhdGg9ImJ1aWxkL3VuaXgvbG9jYWwvcGFyYW1l dGVycyIKLS1ybSAtZiAkcGF0aAotLXRvdWNoICRwYXRoCi0tZm9yIHBhcmFtIGluICQqCi0tZG8K LS0gICAgICAgIGVjaG8gJHBhcmFtID4+ICRwYXRoCi0tZG9uZQotLQotLXByaW50ZiAnVHJ5aW5n IHRvIGZpbmQgdGhlIFRjbCBpbnRlcnByZXRlci4uLiAnCi0tdGNsX2ZvdW5kPTAKLS0KLS1mb3Ig cGF0aCBpbiAiL3Vzci9iaW4vdGNsc2giIFwKLS0gICAgICAgICAgICAiL3Vzci9sb2NhbC9iaW4v dGNsc2g4LjUiIFwKLS0gICAgICAgICAgICAiL3Vzci9sb2NhbC9iaW4vdGNsc2g4LjQiIFwKLS0g ICAgICAgICAgICAiL3Vzci9sb2NhbC9iaW4vdGNsc2g4LjMiOyBkbwotLSAgICBpZiBbIC14ICRw YXRoIF0KLS0gICAgdGhlbgotLSAgICAgICAgZWNobyAkcGF0aCA+IGJ1aWxkL3VuaXgvbG9jYWwv dGNsCi0tICAgICAgICBlY2hvICRwYXRoCi0tICAgICAgICB0Y2xfZm91bmQ9MQotKyMgVGhlIEhQ LVVYIGtzaCBhbmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gc3Rk b3V0Ci0rIyBpZiBDRFBBVEggaXMgc2V0LgotKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4m MSAmJiB1bnNldCBDRFBBVEgKLSsKLStpZiB0ZXN0IC16ICIkbHRfRUNITyI7IHRoZW4KLSsgIGlm IHRlc3QgIlgke2VjaG9fdGVzdF9zdHJpbmcrc2V0fSIgIT0gWHNldDsgdGhlbgotKyAgICAjIGZp bmQgYSBzdHJpbmcgYXMgbGFyZ2UgYXMgcG9zc2libGUsIGFzIGxvbmcgYXMgdGhlIHNoZWxsIGNh biBjb3BlIHdpdGggaXQKLSsgICAgZm9yIGNtZCBpbiAnc2VkIDUwcSAiJDAiJyAnc2VkIDIwcSAi JDAiJyAnc2VkIDEwcSAiJDAiJyAnc2VkIDJxICIkMCInICdlY2hvIHRlc3QnOyBkbwotKyAgICAg ICMgZXhwZWN0ZWQgc2l6ZXM6IGxlc3MgdGhhbiAyS2IsIDFLYiwgNTEyIGJ5dGVzLCAxNiBieXRl cywgLi4uCi0rICAgICAgaWYgeyBlY2hvX3Rlc3Rfc3RyaW5nPWBldmFsICRjbWRgOyB9IDI+L2Rl di9udWxsICYmCi0rCSB7IHRlc3QgIlgkZWNob190ZXN0X3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rf c3RyaW5nIjsgfSAyPi9kZXYvbnVsbAotKyAgICAgIHRoZW4KLSsgICAgICAgIGJyZWFrCi0rICAg ICAgZmkKLSsgICAgZG9uZQotKyAgZmkKLSsKLSsgIGlmIHRlc3QgIlhgeyAkRUNITyAnXHQnOyB9 IDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotKyAgICAgZWNob190ZXN0aW5nX3N0cmluZz1geyAk RUNITyAiJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsYCAmJgotKyAgICAgdGVzdCAi WCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rICAg IDoKLSsgIGVsc2UKLSsgICAgIyBUaGUgU29sYXJpcywgQUlYLCBhbmQgRGlnaXRhbCBVbml4IGRl ZmF1bHQgZWNobyBwcm9ncmFtcyB1bnF1b3RlCi0rICAgICMgYmFja3NsYXNoZXMuICBUaGlzIG1h a2VzIGl0IGltcG9zc2libGUgdG8gcXVvdGUgYmFja3NsYXNoZXMgdXNpbmcKLSsgICAgIyAgIGVj aG8gIiRzb21ldGhpbmciIHwgc2VkICdzL1xcL1xcXFwvZycKLSsgICAgIwotKyAgICAjIFNvLCBm aXJzdCB3ZSBsb29rIGZvciBhIHdvcmtpbmcgZWNobyBpbiB0aGUgdXNlcidzIFBBVEguCi0rCi0r ICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotKyAgICBmb3IgZGly IGluICRQQVRIIC91c3IvdWNiOyBkbwotKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICAg IGlmICh0ZXN0IC1mICRkaXIvZWNobyB8fCB0ZXN0IC1mICRkaXIvZWNobyRhY19leGVleHQpICYm Ci0rICAgICAgICAgdGVzdCAiWGAoJGRpci9lY2hvICdcdCcpIDI+L2Rldi9udWxsYCIgPSAnWFx0 JyAmJgotKyAgICAgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkZGlyL2VjaG8gIiRlY2hvX3Rl c3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCi0rICAgICAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rp bmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rICAgICAgICBFQ0hPPSIk ZGlyL2VjaG8iCi0gICAgICAgICBicmVhawotKyAgICAgIGZpCi0rICAgIGRvbmUKLSsgICAgSUZT PSIkbHRfc2F2ZV9pZnMiCi0rCi0rICAgIGlmIHRlc3QgIlgkRUNITyIgPSBYZWNobzsgdGhlbgot KyAgICAgICMgV2UgZGlkbid0IGZpbmQgYSBiZXR0ZXIgZWNobywgc28gbG9vayBmb3IgYWx0ZXJu YXRpdmVzLgotKyAgICAgIGlmIHRlc3QgIlhgeyBwcmludCAtciAnXHQnOyB9IDI+L2Rldi9udWxs YCIgPSAnWFx0JyAmJgotKyAgICAgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YHsgcHJpbnQgLXIg IiRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKLSsgICAgICAgICB0ZXN0ICJY JGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSsgICAg ICAgICMgVGhpcyBzaGVsbCBoYXMgYSBidWlsdGluIHByaW50IC1yIHRoYXQgZG9lcyB0aGUgdHJp Y2suCi0rICAgICAgICBFQ0hPPSdwcmludCAtcicKLSsgICAgICBlbGlmIHsgdGVzdCAtZiAvYmlu L2tzaCB8fCB0ZXN0IC1mIC9iaW4va3NoJGFjX2V4ZWV4dDsgfSAmJgotKwkgICB0ZXN0ICJYJENP TkZJR19TSEVMTCIgIT0gWC9iaW4va3NoOyB0aGVuCi0rICAgICAgICAjIElmIHdlIGhhdmUga3No LCB0cnkgcnVubmluZyBjb25maWd1cmUgYWdhaW4gd2l0aCBpdC4KLSsgICAgICAgIE9SSUdJTkFM X0NPTkZJR19TSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQotKyAgICAgICAgZXhwb3J0IE9S SUdJTkFMX0NPTkZJR19TSEVMTAotKyAgICAgICAgQ09ORklHX1NIRUxMPS9iaW4va3NoCi0rICAg ICAgICBleHBvcnQgQ09ORklHX1NIRUxMCi0rICAgICAgICBleGVjICRDT05GSUdfU0hFTEwgIiQw IiAtLW5vLXJlZXhlYyAkezErIiRAIn0KLSsgICAgICBlbHNlCi0rICAgICAgICAjIFRyeSB1c2lu ZyBwcmludGYuCi0rICAgICAgICBFQ0hPPSdwcmludGYgJXNcbicKLSsgICAgICAgIGlmIHRlc3Qg IlhgeyAkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotKwkgICBlY2hvX3Rl c3Rpbmdfc3RyaW5nPWB7ICRFQ0hPICIkZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2L251bGxg ICYmCi0rCSAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3Ry aW5nIjsgdGhlbgotKwkgICMgQ29vbCwgcHJpbnRmIHdvcmtzCi0rCSAgOgotKyAgICAgICAgZWxp ZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJR19TSEVMTCAiJDAiIC0tZmFs bGJhY2stZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAgJiYKLSsJICAgICB0ZXN0ICJYJGVjaG9fdGVz dGluZ19zdHJpbmciID0gJ1hcdCcgJiYKLSsJICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJE9S SUdJTkFMX0NPTkZJR19TSEVMTCAiJDAiIC0tZmFsbGJhY2stZWNobyAiJGVjaG9fdGVzdF9zdHJp bmciKSAyPi9kZXYvbnVsbGAgJiYKLSsJICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmci ID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSsJICBDT05GSUdfU0hFTEw9JE9SSUdJTkFM X0NPTkZJR19TSEVMTAotKwkgIGV4cG9ydCBDT05GSUdfU0hFTEwKLSsJICBTSEVMTD0iJENPTkZJ R19TSEVMTCIKLSsJICBleHBvcnQgU0hFTEwKLSsJICBFQ0hPPSIkQ09ORklHX1NIRUxMICQwIC0t ZmFsbGJhY2stZWNobyIKLSsgICAgICAgIGVsaWYgZWNob190ZXN0aW5nX3N0cmluZz1gKCRDT05G SUdfU0hFTEwgIiQwIiAtLWZhbGxiYWNrLWVjaG8gJ1x0JykgMj4vZGV2L251bGxgICYmCi0rCSAg ICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICdYXHQnICYmCi0rCSAgICAgZWNob190 ZXN0aW5nX3N0cmluZz1gKCRDT05GSUdfU0hFTEwgIiQwIiAtLWZhbGxiYWNrLWVjaG8gIiRlY2hv X3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCi0rCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rp bmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rCSAgRUNITz0iJENPTkZJ R19TSEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8iCi0rICAgICAgICBlbHNlCi0rCSAgIyBtYXliZSB3 aXRoIGEgc21hbGxlciBzdHJpbmcuLi4KLSsJICBwcmV2PToKLSsKLSsJICBmb3IgY21kIGluICdl Y2hvIHRlc3QnICdzZWQgMnEgIiQwIicgJ3NlZCAxMHEgIiQwIicgJ3NlZCAyMHEgIiQwIicgJ3Nl ZCA1MHEgIiQwIic7IGRvCi0rCSAgICBpZiB7IHRlc3QgIlgkZWNob190ZXN0X3N0cmluZyIgPSAi WGBldmFsICRjbWRgIjsgfSAyPi9kZXYvbnVsbAotKwkgICAgdGhlbgotKwkgICAgICBicmVhawot KwkgICAgZmkKLSsJICAgIHByZXY9IiRjbWQiCi0rCSAgZG9uZQotKwotKwkgIGlmIHRlc3QgIiRw cmV2IiAhPSAnc2VkIDUwcSAiJDAiJzsgdGhlbgotKwkgICAgZWNob190ZXN0X3N0cmluZz1gZXZh bCAkcHJldmAKLSsJICAgIGV4cG9ydCBlY2hvX3Rlc3Rfc3RyaW5nCi0rCSAgICBleGVjICR7T1JJ R0lOQUxfQ09ORklHX1NIRUxMLSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9fSAiJDAiICR7MSsiJEAi fQotKwkgIGVsc2UKLSsJICAgICMgT29wcy4gIFdlIGxvc3QgY29tcGxldGVseSwgc28ganVzdCBz dGljayB3aXRoIGVjaG8uCi0rCSAgICBFQ0hPPWVjaG8KLSsJICBmaQotKyAgICAgICAgZmkKLSsg ICAgICBmaQotICAgICBmaQotKyAgZmkKLStmaQotKwotKyMgQ29weSBlY2hvIGFuZCBxdW90ZSB0 aGUgY29weSBzdWl0YWJseSBmb3IgcGFzc2luZyB0byBsaWJ0b29sIGZyb20KLSsjIHRoZSBNYWtl ZmlsZSwgaW5zdGVhZCBvZiBxdW90aW5nIHRoZSBvcmlnaW5hbCwgd2hpY2ggaXMgdXNlZCBsYXRl ci4KLStsdF9FQ0hPPSRFQ0hPCi0raWYgdGVzdCAiWCRsdF9FQ0hPIiA9ICJYJENPTkZJR19TSEVM TCAkMCAtLWZhbGxiYWNrLWVjaG8iOyB0aGVuCi0rICAgbHRfRUNITz0iJENPTkZJR19TSEVMTCBc XFwkXCQwIC0tZmFsbGJhY2stZWNobyIKLStmaQotKwotKwotKwotKwotK2V4ZWMgNzwmMCA8L2Rl di9udWxsIDY+JjEKLSsKLSsjIE5hbWUgb2YgdGhlIGhvc3QuCi0rIyBob3N0bmFtZSBvbiBzb21l IHN5c3RlbXMgKFNWUjMuMiwgTGludXgpIHJldHVybnMgYSBib2d1cyBleGl0IHN0YXR1cywKLSsj IHNvIHVuYW1lIGdldHMgcnVuIHRvby4KLSthY19ob3N0bmFtZT1gKGhvc3RuYW1lIHx8IHVuYW1l IC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAKLSsKLSsjCi0rIyBJbml0aWFsaXphdGlvbnMuCi0r IwotK2FjX2RlZmF1bHRfcHJlZml4PS91c3IvbG9jYWwKLSthY19jbGVhbl9maWxlcz0KLSthY19j b25maWdfbGlib2JqX2Rpcj0uCi0rTElCT0JKUz0KLStjcm9zc19jb21waWxpbmc9bm8KLStzdWJk aXJzPQotK01GTEFHUz0KLStNQUtFRkxBR1M9Ci0rU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9z aH0KLSsKLSsjIElkZW50aXR5IG9mIHRoaXMgcGFja2FnZS4KLStQQUNLQUdFX05BTUU9J1NPQ0kn Ci0rUEFDS0FHRV9UQVJOQU1FPSdzb2NpJwotK1BBQ0tBR0VfVkVSU0lPTj0nMy4wLjAnCi0rUEFD S0FHRV9TVFJJTkc9J1NPQ0kgMy4wLjAnCi0rUEFDS0FHRV9CVUdSRVBPUlQ9J21zb2JjemFrQHVz ZXJzLnNvdXJjZWZvcmdlLm5ldCcKLSsKLSthY191bmlxdWVfZmlsZT0ic29jaS9jb3JlL2Vycm9y LmNwcCIKLSsjIEZhY3RvcmluZyBkZWZhdWx0IGhlYWRlcnMgZm9yIG1vc3QgdGVzdHMuCi0rYWNf aW5jbHVkZXNfZGVmYXVsdD0iXAotKyNpbmNsdWRlIDxzdGRpby5oPgotKyNpZmRlZiBIQVZFX1NZ U19UWVBFU19ICi0rIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSsjZW5kaWYKLSsjaWZkZWYgSEFW RV9TWVNfU1RBVF9ICi0rIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotKyNlbmRpZgotKyNpZmRlZiBT VERDX0hFQURFUlMKLSsjIGluY2x1ZGUgPHN0ZGxpYi5oPgotKyMgaW5jbHVkZSA8c3RkZGVmLmg+ Ci0rI2Vsc2UKLSsjIGlmZGVmIEhBVkVfU1RETElCX0gKLSsjICBpbmNsdWRlIDxzdGRsaWIuaD4K LSsjIGVuZGlmCi0rI2VuZGlmCi0rI2lmZGVmIEhBVkVfU1RSSU5HX0gKLSsjIGlmICFkZWZpbmVk IFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKLSsjICBpbmNsdWRlIDxtZW1v cnkuaD4KLSsjIGVuZGlmCi0rIyBpbmNsdWRlIDxzdHJpbmcuaD4KLSsjZW5kaWYKLSsjaWZkZWYg SEFWRV9TVFJJTkdTX0gKLSsjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLSsjZW5kaWYKLSsjaWZkZWYg SEFWRV9JTlRUWVBFU19ICi0rIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotKyNlbmRpZgotKyNpZmRl ZiBIQVZFX1NURElOVF9ICi0rIyBpbmNsdWRlIDxzdGRpbnQuaD4KLSsjZW5kaWYKLSsjaWZkZWYg SEFWRV9VTklTVERfSAotKyMgaW5jbHVkZSA8dW5pc3RkLmg+Ci0rI2VuZGlmIgotKwotK2FjX3N1 YnN0X3ZhcnM9J2FtX19FWEVFWFRfRkFMU0UKLSthbV9fRVhFRVhUX1RSVUUKLStMVExJQk9CSlMK LStMSUJPQkpTCi0rUlVOX1RFU1RTX0ZBTFNFCi0rUlVOX1RFU1RTX1RSVUUKLStzZWRfb2sKLStk aWZmX29rCi0rSFRNTF9ET0NfRkFMU0UKLStIVE1MX0RPQ19UUlVFCi0rUEVSTAotK2dzX29rCi0r ZHZpcHNfb2sKLStsYXRleF9vawotK2RveHlnZW5fb2sKLStJTkZPX0RPQ19GQUxTRQotK0lORk9f RE9DX1RSVUUKLStQT1NUR1JFU1FMX0RJUlMKLStIQVZFX1BPU1RHUkVTUUxfRkFMU0UKLStIQVZF X1BPU1RHUkVTUUxfVFJVRQotK1BPU1RHUkVTUUxfTERGTEFHUwotK1BPU1RHUkVTUUxfQ0ZMQUdT Ci0rUE9TVEdSRVNRTF9WRVJTSU9OCi0rUEdfQ09ORklHCi0rT1JBQ0xFX0RJUlMKLStIQVZFX09S QUNMRV9GQUxTRQotK0hBVkVfT1JBQ0xFX1RSVUUKLStPUkFDTEVfT0NJX0xERkxBR1MKLStPUkFD TEVfT0NJX0NGTEFHUwotK09SQUNMRV9PQ0lfVkVSU0lPTgotK01ZU1FMX0RJUlMKLStIQVZFX01Z U1FMX0ZBTFNFCi0rSEFWRV9NWVNRTF9UUlVFCi0rTVlTUUxfQ19MSUIKLStNWVNRTF9MSUJTCi0r TVlTUUxfQ0ZMQUdTCi0rTVlTUUxfVkVSU0lPTgotK0JPT1NUX1ZFUlNJT04KLStCT09TVF9VTklU X1RFU1RfRlJBTUVXT1JLX0xJQgotK0JPT1NUX01QSV9QWVRIT05fTElCCi0rQk9PU1RfTVBJX0xJ QgotK0JPT1NUX1BZVEhPTl9MSUIKLStCT09TVF9SRUdFWF9MSUIKLStCT09TVF9EQVRFX1RJTUVf TElCCi0rQk9PU1RfU0lHTkFMU19MSUIKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIKLStCT09T VF9TRVJJQUxJWkFUSU9OX0xJQgotK0JPT1NUX0lPU1RSRUFNU19MSUIKLStCT09TVF9USFJFQURf TElCCi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQgotK0JPT1NUX1NZU1RFTV9MSUIKLStCT09T VF9GSUxFU1lTVEVNX0xJQgotK0JPT1NUX0xJQlMKLStCT09TVF9DRkxBR1MKLStTT0NJX1BPU1RH UkVTUUxfSEVBREVSU19CVVJJRUQKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfRkFM U0UKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfVFJVRQotK1NPQ0lfTVlTUUxfSEVB REVSU19CVVJJRUQKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFCi0rU09DSV9NWVNR TF9IRUFERVJTX0JVUklFRF9UUlVFCi0rU09DSV9IRUFERVJTX0JVUklFRAotK1NPQ0lfSEVBREVS U19CVVJJRURfRkFMU0UKLStTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUUKLStDUFAKLStPVE9PTDY0 Ci0rT1RPT0wKLStMSVBPCi0rTk1FRElUCi0rRFNZTVVUSUwKLStsdF9FQ0hPCi0rUkFOTElCCi0r QVIKLStPQkpEVU1QCi0rTE5fUwotK05NCi0rYWNfY3RfRFVNUEJJTgotK0RVTVBCSU4KLStMRAot K0ZHUkVQCi0rRUdSRVAKLStHUkVQCi0rU0VECi0rYW1fX2Zhc3RkZXBDQ19GQUxTRQotK2FtX19m YXN0ZGVwQ0NfVFJVRQotK0NDREVQTU9ERQotK2FjX2N0X0NDCi0rQ0ZMQUdTCi0rQ0MKLStMSUJU T09MCi0rQ1hYQ1BQCi0rYW1fX2Zhc3RkZXBDWFhfRkFMU0UKLSthbV9fZmFzdGRlcENYWF9UUlVF Ci0rQ1hYREVQTU9ERQotK0FNREVQQkFDS1NMQVNICi0rQU1ERVBfRkFMU0UKLStBTURFUF9UUlVF Ci0rYW1fX3F1b3RlCi0rYW1fX2luY2x1ZGUKLStERVBESVIKLStPQkpFWFQKLStFWEVFWFQKLSth Y19jdF9DWFgKLStDUFBGTEFHUwotK0xERkxBR1MKLStDWFhGTEFHUwotK0NYWAotK2hvc3Rfb3MK LStob3N0X3ZlbmRvcgotK2hvc3RfY3B1Ci0raG9zdAotK2J1aWxkX29zCi0rYnVpbGRfdmVuZG9y Ci0rYnVpbGRfY3B1Ci0rYnVpbGQKLStVUExPQURfQ09NTUFORAotK0dFTkVSSUNfTElCUkFSWV9W RVJTSU9OCi0rUlBNX1JFTEVBU0UKLStIQVZFX0NQUFVOSVRfRkFMU0UKLStIQVZFX0NQUFVOSVRf VFJVRQotK0NQUFVOSVRfVkVSU0lPTgotK0NQUFVOSVRfTElCUwotK0NQUFVOSVRfQ0ZMQUdTCi0r Q1BQVU5JVF9DT05GSUcKLSthbV9fdW50YXIKLSthbV9fdGFyCi0rQU1UQVIKLSthbV9fbGVhZGlu Z19kb3QKLStTRVRfTUFLRQotK0FXSwotK21rZGlyX3AKLStNS0RJUl9QCi0rSU5TVEFMTF9TVFJJ UF9QUk9HUkFNCi0rU1RSSVAKLStpbnN0YWxsX3NoCi0rTUFLRUlORk8KLStBVVRPSEVBREVSCi0r QVVUT01BS0UKLStBVVRPQ09ORgotK0FDTE9DQUwKLStWRVJTSU9OCi0rUEFDS0FHRQotK0NZR1BB VEhfVwotK2FtX19pc3JjCi0rSU5TVEFMTF9EQVRBCi0rSU5TVEFMTF9TQ1JJUFQKLStJTlNUQUxM X1BST0dSQU0KLSt0YXJnZXRfYWxpYXMKLStob3N0X2FsaWFzCi0rYnVpbGRfYWxpYXMKLStMSUJT Ci0rRUNIT19UCi0rRUNIT19OCi0rRUNIT19DCi0rREVGUwotK21hbmRpcgotK2xvY2FsZWRpcgot K2xpYmRpcgotK3BzZGlyCi0rcGRmZGlyCi0rZHZpZGlyCi0raHRtbGRpcgotK2luZm9kaXIKLStk b2NkaXIKLStvbGRpbmNsdWRlZGlyCi0raW5jbHVkZWRpcgotK2xvY2Fsc3RhdGVkaXIKLStzaGFy ZWRzdGF0ZWRpcgotK3N5c2NvbmZkaXIKLStkYXRhZGlyCi0rZGF0YXJvb3RkaXIKLStsaWJleGVj ZGlyCi0rc2JpbmRpcgotK2JpbmRpcgotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUKLStwcmVmaXgK LStleGVjX3ByZWZpeAotK1BBQ0tBR0VfQlVHUkVQT1JUCi0rUEFDS0FHRV9TVFJJTkcKLStQQUNL QUdFX1ZFUlNJT04KLStQQUNLQUdFX1RBUk5BTUUKLStQQUNLQUdFX05BTUUKLStQQVRIX1NFUEFS QVRPUgotK1NIRUxMJwotK2FjX3N1YnN0X2ZpbGVzPScnCi0rYWNfdXNlcl9vcHRzPScKLStlbmFi bGVfb3B0aW9uX2NoZWNraW5nCi0rd2l0aF9jcHB1bml0X3ByZWZpeAotK3dpdGhfY3BwdW5pdF9l eGVjX3ByZWZpeAotK2VuYWJsZV9zaGFyZWQKLStlbmFibGVfc3RhdGljCi0rZW5hYmxlX2RlcGVu ZGVuY3lfdHJhY2tpbmcKLSt3aXRoX3BpYwotK2VuYWJsZV9mYXN0X2luc3RhbGwKLSt3aXRoX2du dV9sZAotK2VuYWJsZV9saWJ0b29sX2xvY2sKLStlbmFibGVfZXhjZXB0aW9ucwotK2VuYWJsZV9p bmZvX2RvYwotK2VuYWJsZV9odG1sX2RvYwotK3dpdGhfZG9jZGlyCi0rZW5hYmxlX2J1cnJpZWRf aGVhZGVycwotK2VuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnMKLStlbmFibGVfcG9zdGdyZXNx bF9idXJyaWVkX2hlYWRlcnMKLSt3aXRoX2Jvb3N0Ci0rZW5hYmxlX2JhY2tlbmRfbXlzcWwKLSt3 aXRoX215c3FsCi0rd2l0aF9teXNxbF9saWIKLSt3aXRoX215c3FsX2luY2x1ZGUKLStlbmFibGVf YmFja2VuZF9vcmFjbGUKLSt3aXRoX29yYWNsZQotK3dpdGhfb3JhY2xlX2luY2x1ZGUKLSt3aXRo X29yYWNsZV9saWIKLStlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsCi0rd2l0aF9wb3N0Z3Jlc3Fs Ci0rJwotKyAgICAgIGFjX3ByZWNpb3VzX3ZhcnM9J2J1aWxkX2FsaWFzCi0raG9zdF9hbGlhcwot K3RhcmdldF9hbGlhcwotK0NYWAotK0NYWEZMQUdTCi0rTERGTEFHUwotK0xJQlMKLStDUFBGTEFH UwotK0NDQwotK0NYWENQUAotK0NDCi0rQ0ZMQUdTCi0rQ1BQJwotKwotKwotKyMgSW5pdGlhbGl6 ZSBzb21lIHZhcmlhYmxlcyBzZXQgYnkgb3B0aW9ucy4KLSthY19pbml0X2hlbHA9Ci0rYWNfaW5p dF92ZXJzaW9uPWZhbHNlCi0rYWNfdW5yZWNvZ25pemVkX29wdHM9Ci0rYWNfdW5yZWNvZ25pemVk X3NlcD0KLSsjIFRoZSB2YXJpYWJsZXMgaGF2ZSB0aGUgc2FtZSBuYW1lcyBhcyB0aGUgb3B0aW9u cywgd2l0aAotKyMgZGFzaGVzIGNoYW5nZWQgdG8gdW5kZXJsaW5lcy4KLStjYWNoZV9maWxlPS9k ZXYvbnVsbAotK2V4ZWNfcHJlZml4PU5PTkUKLStub19jcmVhdGU9Ci0rbm9fcmVjdXJzaW9uPQot K3ByZWZpeD1OT05FCi0rcHJvZ3JhbV9wcmVmaXg9Tk9ORQotK3Byb2dyYW1fc3VmZml4PU5PTkUK LStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPXMseCx4LAotK3NpbGVudD0KLStzaXRlPQotK3NyY2Rp cj0KLSt2ZXJib3NlPQotK3hfaW5jbHVkZXM9Tk9ORQotK3hfbGlicmFyaWVzPU5PTkUKLSsKLSsj IEluc3RhbGxhdGlvbiBkaXJlY3Rvcnkgb3B0aW9ucy4KLSsjIFRoZXNlIGFyZSBsZWZ0IHVuZXhw YW5kZWQgc28gdXNlcnMgY2FuICJtYWtlIGluc3RhbGwgZXhlY19wcmVmaXg9L2ZvbyIKLSsjIGFu ZCBhbGwgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBzdXBwb3NlZCB0byBiZSBiYXNlZCBvbiBleGVj X3ByZWZpeAotKyMgYnkgZGVmYXVsdCB3aWxsIGFjdHVhbGx5IGNoYW5nZS4KLSsjIFVzZSBicmFj ZXMgaW5zdGVhZCBvZiBwYXJlbnMgYmVjYXVzZSBzaCwgcGVybCwgZXRjLiBhbHNvIGFjY2VwdCB0 aGVtLgotKyMgKFRoZSBsaXN0IGZvbGxvd3MgdGhlIHNhbWUgb3JkZXIgYXMgdGhlIEdOVSBDb2Rp bmcgU3RhbmRhcmRzLikKLStiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L2JpbicKLStzYmluZGlyPSck e2V4ZWNfcHJlZml4fS9zYmluJwotK2xpYmV4ZWNkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYmV4ZWMn Ci0rZGF0YXJvb3RkaXI9JyR7cHJlZml4fS9zaGFyZScKLStkYXRhZGlyPScke2RhdGFyb290ZGly fScKLStzeXNjb25mZGlyPScke3ByZWZpeH0vZXRjJwotK3NoYXJlZHN0YXRlZGlyPScke3ByZWZp eH0vY29tJwotK2xvY2Fsc3RhdGVkaXI9JyR7cHJlZml4fS92YXInCi0raW5jbHVkZWRpcj0nJHtw cmVmaXh9L2luY2x1ZGUnCi0rb2xkaW5jbHVkZWRpcj0nL3Vzci9pbmNsdWRlJwotK2RvY2Rpcj0n JHtkYXRhcm9vdGRpcn0vZG9jLyR7UEFDS0FHRV9UQVJOQU1FfScKLStpbmZvZGlyPScke2RhdGFy b290ZGlyfS9pbmZvJwotK2h0bWxkaXI9JyR7ZG9jZGlyfScKLStkdmlkaXI9JyR7ZG9jZGlyfScK LStwZGZkaXI9JyR7ZG9jZGlyfScKLStwc2Rpcj0nJHtkb2NkaXJ9JwotK2xpYmRpcj0nJHtleGVj X3ByZWZpeH0vbGliJwotK2xvY2FsZWRpcj0nJHtkYXRhcm9vdGRpcn0vbG9jYWxlJwotK21hbmRp cj0nJHtkYXRhcm9vdGRpcn0vbWFuJwotKwotK2FjX3ByZXY9Ci0rYWNfZGFzaGRhc2g9Ci0rZm9y IGFjX29wdGlvbgotK2RvCi0rICAjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZHMgYW4gYXJn dW1lbnQsIGFzc2lnbiBpdC4KLSsgIGlmIHRlc3QgLW4gIiRhY19wcmV2IjsgdGhlbgotKyAgICBl dmFsICRhY19wcmV2PVwkYWNfb3B0aW9uCi0rICAgIGFjX3ByZXY9Ci0rICAgIGNvbnRpbnVlCi0r ICBmaQotKwotKyAgY2FzZSAkYWNfb3B0aW9uIGluCi0rICAqPSopCWFjX29wdGFyZz1gZXhwciAi WCRhY19vcHRpb24iIDogJ1tePV0qPVwoLipcKSdgIDs7Ci0rICAqKQlhY19vcHRhcmc9eWVzIDs7 Ci0rICBlc2FjCi0rCi0rICAjIEFjY2VwdCB0aGUgaW1wb3J0YW50IEN5Z251cyBjb25maWd1cmUg b3B0aW9ucywgc28gd2UgY2FuIGRpYWdub3NlIHR5cG9zLgotKwotKyAgY2FzZSAkYWNfZGFzaGRh c2gkYWNfb3B0aW9uIGluCi0rICAtLSkKLSsgICAgYWNfZGFzaGRhc2g9eWVzIDs7Ci0rCi0rICAt YmluZGlyIHwgLS1iaW5kaXIgfCAtLWJpbmRpIHwgLS1iaW5kIHwgLS1iaW4gfCAtLWJpKQotKyAg ICBhY19wcmV2PWJpbmRpciA7OwotKyAgLWJpbmRpcj0qIHwgLS1iaW5kaXI9KiB8IC0tYmluZGk9 KiB8IC0tYmluZD0qIHwgLS1iaW49KiB8IC0tYmk9KikKLSsgICAgYmluZGlyPSRhY19vcHRhcmcg OzsKLSsKLSsgIC1idWlsZCB8IC0tYnVpbGQgfCAtLWJ1aWwgfCAtLWJ1aSB8IC0tYnUpCi0rICAg IGFjX3ByZXY9YnVpbGRfYWxpYXMgOzsKLSsgIC1idWlsZD0qIHwgLS1idWlsZD0qIHwgLS1idWls PSogfCAtLWJ1aT0qIHwgLS1idT0qKQotKyAgICBidWlsZF9hbGlhcz0kYWNfb3B0YXJnIDs7Ci0r Ci0rICAtY2FjaGUtZmlsZSB8IC0tY2FjaGUtZmlsZSB8IC0tY2FjaGUtZmlsIHwgLS1jYWNoZS1m aSBcCi0rICB8IC0tY2FjaGUtZiB8IC0tY2FjaGUtIHwgLS1jYWNoZSB8IC0tY2FjaCB8IC0tY2Fj IHwgLS1jYSB8IC0tYykKLSsgICAgYWNfcHJldj1jYWNoZV9maWxlIDs7Ci0rICAtY2FjaGUtZmls ZT0qIHwgLS1jYWNoZS1maWxlPSogfCAtLWNhY2hlLWZpbD0qIHwgLS1jYWNoZS1maT0qIFwKLSsg IHwgLS1jYWNoZS1mPSogfCAtLWNhY2hlLT0qIHwgLS1jYWNoZT0qIHwgLS1jYWNoPSogfCAtLWNh Yz0qIHwgLS1jYT0qIHwgLS1jPSopCi0rICAgIGNhY2hlX2ZpbGU9JGFjX29wdGFyZyA7OwotKwot KyAgLS1jb25maWctY2FjaGUgfCAtQykKLSsgICAgY2FjaGVfZmlsZT1jb25maWcuY2FjaGUgOzsK LSsKLSsgIC1kYXRhZGlyIHwgLS1kYXRhZGlyIHwgLS1kYXRhZGkgfCAtLWRhdGFkKQotKyAgICBh Y19wcmV2PWRhdGFkaXIgOzsKLSsgIC1kYXRhZGlyPSogfCAtLWRhdGFkaXI9KiB8IC0tZGF0YWRp PSogfCAtLWRhdGFkPSopCi0rICAgIGRhdGFkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWRhdGFy b290ZGlyIHwgLS1kYXRhcm9vdGRpciB8IC0tZGF0YXJvb3RkaSB8IC0tZGF0YXJvb3RkIHwgLS1k YXRhcm9vdCBcCi0rICB8IC0tZGF0YXJvbyB8IC0tZGF0YXJvIHwgLS1kYXRhcikKLSsgICAgYWNf cHJldj1kYXRhcm9vdGRpciA7OwotKyAgLWRhdGFyb290ZGlyPSogfCAtLWRhdGFyb290ZGlyPSog fCAtLWRhdGFyb290ZGk9KiB8IC0tZGF0YXJvb3RkPSogXAotKyAgfCAtLWRhdGFyb290PSogfCAt LWRhdGFyb289KiB8IC0tZGF0YXJvPSogfCAtLWRhdGFyPSopCi0rICAgIGRhdGFyb290ZGlyPSRh Y19vcHRhcmcgOzsKLSsKLSsgIC1kaXNhYmxlLSogfCAtLWRpc2FibGUtKikKLSsgICAgYWNfdXNl cm9wdD1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKmRpc2FibGUtXCguKlwpJ2AKLSsgICAgIyBS ZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgotKyAg ICBleHByICJ4JGFjX3VzZXJvcHQiIDogIi4qW14tKy5fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVs bCAmJgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgZmVhdHVyZSBu YW1lOiAkYWNfdXNlcm9wdCIgPiYyCi0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICAg IGFjX3VzZXJvcHRfb3JpZz0kYWNfdXNlcm9wdAotKyAgICBhY191c2Vyb3B0PWAkYXNfZWNobyAi JGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydgCi0rICAgIGNhc2UgJGFjX3VzZXJfb3B0 cyBpbgotKyAgICAgICoiCi0rImVuYWJsZV8kYWNfdXNlcm9wdCIKLSsiKikgOzsKLSsgICAgICAq KSBhY191bnJlY29nbml6ZWRfb3B0cz0iJGFjX3VucmVjb2duaXplZF9vcHRzJGFjX3VucmVjb2du aXplZF9zZXAtLWRpc2FibGUtJGFjX3VzZXJvcHRfb3JpZyIKLSsJIGFjX3VucmVjb2duaXplZF9z ZXA9JywgJzs7Ci0rICAgIGVzYWMKLSsgICAgZXZhbCBlbmFibGVfJGFjX3VzZXJvcHQ9bm8gOzsK LSsKLSsgIC1kb2NkaXIgfCAtLWRvY2RpciB8IC0tZG9jZGkgfCAtLWRvYyB8IC0tZG8pCi0rICAg IGFjX3ByZXY9ZG9jZGlyIDs7Ci0rICAtZG9jZGlyPSogfCAtLWRvY2Rpcj0qIHwgLS1kb2NkaT0q IHwgLS1kb2M9KiB8IC0tZG89KikKLSsgICAgZG9jZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1k dmlkaXIgfCAtLWR2aWRpciB8IC0tZHZpZGkgfCAtLWR2aWQgfCAtLWR2aSB8IC0tZHYpCi0rICAg IGFjX3ByZXY9ZHZpZGlyIDs7Ci0rICAtZHZpZGlyPSogfCAtLWR2aWRpcj0qIHwgLS1kdmlkaT0q IHwgLS1kdmlkPSogfCAtLWR2aT0qIHwgLS1kdj0qKQotKyAgICBkdmlkaXI9JGFjX29wdGFyZyA7 OwotKwotKyAgLWVuYWJsZS0qIHwgLS1lbmFibGUtKikKLSsgICAgYWNfdXNlcm9wdD1gZXhwciAi eCRhY19vcHRpb24iIDogJ3gtKmVuYWJsZS1cKFtePV0qXCknYAotKyAgICAjIFJlamVjdCBuYW1l cyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCi0rICAgIGV4cHIgIngk YWNfdXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCi0rICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBmZWF0dXJlIG5hbWU6ICRhY191 c2Vyb3B0IiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgICAgYWNfdXNlcm9w dF9vcmlnPSRhY191c2Vyb3B0Ci0rICAgIGFjX3VzZXJvcHQ9YCRhc19lY2hvICIkYWNfdXNlcm9w dCIgfCBzZWQgJ3MvWy0rLl0vXy9nJ2AKLSsgICAgY2FzZSAkYWNfdXNlcl9vcHRzIGluCi0rICAg ICAgKiIKLSsiZW5hYmxlXyRhY191c2Vyb3B0IgotKyIqKSA7OwotKyAgICAgICopIGFjX3VucmVj b2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNvZ25pemVkX3NlcC0t ZW5hYmxlLSRhY191c2Vyb3B0X29yaWciCi0rCSBhY191bnJlY29nbml6ZWRfc2VwPScsICc7Owot KyAgICBlc2FjCi0rICAgIGV2YWwgZW5hYmxlXyRhY191c2Vyb3B0PVwkYWNfb3B0YXJnIDs7Ci0r Ci0rICAtZXhlYy1wcmVmaXggfCAtLWV4ZWNfcHJlZml4IHwgLS1leGVjLXByZWZpeCB8IC0tZXhl Yy1wcmVmaSBcCi0rICB8IC0tZXhlYy1wcmVmIHwgLS1leGVjLXByZSB8IC0tZXhlYy1wciB8IC0t ZXhlYy1wIHwgLS1leGVjLSBcCi0rICB8IC0tZXhlYyB8IC0tZXhlIHwgLS1leCkKLSsgICAgYWNf cHJldj1leGVjX3ByZWZpeCA7OwotKyAgLWV4ZWMtcHJlZml4PSogfCAtLWV4ZWNfcHJlZml4PSog fCAtLWV4ZWMtcHJlZml4PSogfCAtLWV4ZWMtcHJlZmk9KiBcCi0rICB8IC0tZXhlYy1wcmVmPSog fCAtLWV4ZWMtcHJlPSogfCAtLWV4ZWMtcHI9KiB8IC0tZXhlYy1wPSogfCAtLWV4ZWMtPSogXAot KyAgfCAtLWV4ZWM9KiB8IC0tZXhlPSogfCAtLWV4PSopCi0rICAgIGV4ZWNfcHJlZml4PSRhY19v cHRhcmcgOzsKLSsKLSsgIC1nYXMgfCAtLWdhcyB8IC0tZ2EgfCAtLWcpCi0rICAgICMgT2Jzb2xl dGU7IHVzZSAtLXdpdGgtZ2FzLgotKyAgICB3aXRoX2dhcz15ZXMgOzsKLSsKLSsgIC1oZWxwIHwg LS1oZWxwIHwgLS1oZWwgfCAtLWhlIHwgLWgpCi0rICAgIGFjX2luaXRfaGVscD1sb25nIDs7Ci0r ICAtaGVscD1yKiB8IC0taGVscD1yKiB8IC0taGVsPXIqIHwgLS1oZT1yKiB8IC1ociopCi0rICAg IGFjX2luaXRfaGVscD1yZWN1cnNpdmUgOzsKLSsgIC1oZWxwPXMqIHwgLS1oZWxwPXMqIHwgLS1o ZWw9cyogfCAtLWhlPXMqIHwgLWhzKikKLSsgICAgYWNfaW5pdF9oZWxwPXNob3J0IDs7Ci0rCi0r ICAtaG9zdCB8IC0taG9zdCB8IC0taG9zIHwgLS1obykKLSsgICAgYWNfcHJldj1ob3N0X2FsaWFz IDs7Ci0rICAtaG9zdD0qIHwgLS1ob3N0PSogfCAtLWhvcz0qIHwgLS1obz0qKQotKyAgICBob3N0 X2FsaWFzPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1odG1sZGlyIHwgLS1odG1sZGlyIHwgLS1odG1s ZGkgfCAtLWh0bWxkIHwgLS1odG1sIHwgLS1odG0gfCAtLWh0KQotKyAgICBhY19wcmV2PWh0bWxk aXIgOzsKLSsgIC1odG1sZGlyPSogfCAtLWh0bWxkaXI9KiB8IC0taHRtbGRpPSogfCAtLWh0bWxk PSogfCAtLWh0bWw9KiB8IC0taHRtPSogXAotKyAgfCAtLWh0PSopCi0rICAgIGh0bWxkaXI9JGFj X29wdGFyZyA7OwotKwotKyAgLWluY2x1ZGVkaXIgfCAtLWluY2x1ZGVkaXIgfCAtLWluY2x1ZGVk aSB8IC0taW5jbHVkZWQgfCAtLWluY2x1ZGUgXAotKyAgfCAtLWluY2x1ZCB8IC0taW5jbHUgfCAt LWluY2wgfCAtLWluYykKLSsgICAgYWNfcHJldj1pbmNsdWRlZGlyIDs7Ci0rICAtaW5jbHVkZWRp cj0qIHwgLS1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaT0qIHwgLS1pbmNsdWRlZD0qIHwgLS1p bmNsdWRlPSogXAotKyAgfCAtLWluY2x1ZD0qIHwgLS1pbmNsdT0qIHwgLS1pbmNsPSogfCAtLWlu Yz0qKQotKyAgICBpbmNsdWRlZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1pbmZvZGlyIHwgLS1p bmZvZGlyIHwgLS1pbmZvZGkgfCAtLWluZm9kIHwgLS1pbmZvIHwgLS1pbmYpCi0rICAgIGFjX3By ZXY9aW5mb2RpciA7OwotKyAgLWluZm9kaXI9KiB8IC0taW5mb2Rpcj0qIHwgLS1pbmZvZGk9KiB8 IC0taW5mb2Q9KiB8IC0taW5mbz0qIHwgLS1pbmY9KikKLSsgICAgaW5mb2Rpcj0kYWNfb3B0YXJn IDs7Ci0rCi0rICAtbGliZGlyIHwgLS1saWJkaXIgfCAtLWxpYmRpIHwgLS1saWJkKQotKyAgICBh Y19wcmV2PWxpYmRpciA7OwotKyAgLWxpYmRpcj0qIHwgLS1saWJkaXI9KiB8IC0tbGliZGk9KiB8 IC0tbGliZD0qKQotKyAgICBsaWJkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWxpYmV4ZWNkaXIg fCAtLWxpYmV4ZWNkaXIgfCAtLWxpYmV4ZWNkaSB8IC0tbGliZXhlY2QgfCAtLWxpYmV4ZWMgXAot KyAgfCAtLWxpYmV4ZSB8IC0tbGliZXggfCAtLWxpYmUpCi0rICAgIGFjX3ByZXY9bGliZXhlY2Rp ciA7OwotKyAgLWxpYmV4ZWNkaXI9KiB8IC0tbGliZXhlY2Rpcj0qIHwgLS1saWJleGVjZGk9KiB8 IC0tbGliZXhlY2Q9KiB8IC0tbGliZXhlYz0qIFwKLSsgIHwgLS1saWJleGU9KiB8IC0tbGliZXg9 KiB8IC0tbGliZT0qKQotKyAgICBsaWJleGVjZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1sb2Nh bGVkaXIgfCAtLWxvY2FsZWRpciB8IC0tbG9jYWxlZGkgfCAtLWxvY2FsZWQgfCAtLWxvY2FsZSkK LSsgICAgYWNfcHJldj1sb2NhbGVkaXIgOzsKLSsgIC1sb2NhbGVkaXI9KiB8IC0tbG9jYWxlZGly PSogfCAtLWxvY2FsZWRpPSogfCAtLWxvY2FsZWQ9KiB8IC0tbG9jYWxlPSopCi0rICAgIGxvY2Fs ZWRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtbG9jYWxzdGF0ZWRpciB8IC0tbG9jYWxzdGF0ZWRp ciB8IC0tbG9jYWxzdGF0ZWRpIHwgLS1sb2NhbHN0YXRlZCBcCi0rICB8IC0tbG9jYWxzdGF0ZSB8 IC0tbG9jYWxzdGF0IHwgLS1sb2NhbHN0YSB8IC0tbG9jYWxzdCB8IC0tbG9jYWxzKQotKyAgICBh Y19wcmV2PWxvY2Fsc3RhdGVkaXIgOzsKLSsgIC1sb2NhbHN0YXRlZGlyPSogfCAtLWxvY2Fsc3Rh dGVkaXI9KiB8IC0tbG9jYWxzdGF0ZWRpPSogfCAtLWxvY2Fsc3RhdGVkPSogXAotKyAgfCAtLWxv Y2Fsc3RhdGU9KiB8IC0tbG9jYWxzdGF0PSogfCAtLWxvY2Fsc3RhPSogfCAtLWxvY2Fsc3Q9KiB8 IC0tbG9jYWxzPSopCi0rICAgIGxvY2Fsc3RhdGVkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLW1h bmRpciB8IC0tbWFuZGlyIHwgLS1tYW5kaSB8IC0tbWFuZCB8IC0tbWFuIHwgLS1tYSB8IC0tbSkK LSsgICAgYWNfcHJldj1tYW5kaXIgOzsKLSsgIC1tYW5kaXI9KiB8IC0tbWFuZGlyPSogfCAtLW1h bmRpPSogfCAtLW1hbmQ9KiB8IC0tbWFuPSogfCAtLW1hPSogfCAtLW09KikKLSsgICAgbWFuZGly PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1uZnAgfCAtLW5mcCB8IC0tbmYpCi0rICAgICMgT2Jzb2xl dGU7IHVzZSAtLXdpdGhvdXQtZnAuCi0rICAgIHdpdGhfZnA9bm8gOzsKLSsKLSsgIC1uby1jcmVh dGUgfCAtLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXQgfCAtLW5vLWNyZWEgfCAtLW5vLWNyZSBcCi0r ICB8IC0tbm8tY3IgfCAtLW5vLWMgfCAtbikKLSsgICAgbm9fY3JlYXRlPXllcyA7OwotKwotKyAg LW5vLXJlY3Vyc2lvbiB8IC0tbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNpbyB8IC0tbm8tcmVj dXJzaSBcCi0rICB8IC0tbm8tcmVjdXJzIHwgLS1uby1yZWN1ciB8IC0tbm8tcmVjdSB8IC0tbm8t cmVjIHwgLS1uby1yZSB8IC0tbm8tcikKLSsgICAgbm9fcmVjdXJzaW9uPXllcyA7OwotKwotKyAg LW9sZGluY2x1ZGVkaXIgfCAtLW9sZGluY2x1ZGVkaXIgfCAtLW9sZGluY2x1ZGVkaSB8IC0tb2xk aW5jbHVkZWQgXAotKyAgfCAtLW9sZGluY2x1ZGUgfCAtLW9sZGluY2x1ZCB8IC0tb2xkaW5jbHUg fCAtLW9sZGluY2wgfCAtLW9sZGluYyBcCi0rICB8IC0tb2xkaW4gfCAtLW9sZGkgfCAtLW9sZCB8 IC0tb2wgfCAtLW8pCi0rICAgIGFjX3ByZXY9b2xkaW5jbHVkZWRpciA7OwotKyAgLW9sZGluY2x1 ZGVkaXI9KiB8IC0tb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNsdWRlZGk9KiB8IC0tb2xkaW5j bHVkZWQ9KiBcCi0rICB8IC0tb2xkaW5jbHVkZT0qIHwgLS1vbGRpbmNsdWQ9KiB8IC0tb2xkaW5j bHU9KiB8IC0tb2xkaW5jbD0qIHwgLS1vbGRpbmM9KiBcCi0rICB8IC0tb2xkaW49KiB8IC0tb2xk aT0qIHwgLS1vbGQ9KiB8IC0tb2w9KiB8IC0tbz0qKQotKyAgICBvbGRpbmNsdWRlZGlyPSRhY19v cHRhcmcgOzsKLSsKLSsgIC1wcmVmaXggfCAtLXByZWZpeCB8IC0tcHJlZmkgfCAtLXByZWYgfCAt LXByZSB8IC0tcHIgfCAtLXApCi0rICAgIGFjX3ByZXY9cHJlZml4IDs7Ci0rICAtcHJlZml4PSog fCAtLXByZWZpeD0qIHwgLS1wcmVmaT0qIHwgLS1wcmVmPSogfCAtLXByZT0qIHwgLS1wcj0qIHwg LS1wPSopCi0rICAgIHByZWZpeD0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtcHJvZ3JhbS1wcmVmaXgg fCAtLXByb2dyYW0tcHJlZml4IHwgLS1wcm9ncmFtLXByZWZpIHwgLS1wcm9ncmFtLXByZWYgXAot KyAgfCAtLXByb2dyYW0tcHJlIHwgLS1wcm9ncmFtLXByIHwgLS1wcm9ncmFtLXApCi0rICAgIGFj X3ByZXY9cHJvZ3JhbV9wcmVmaXggOzsKLSsgIC1wcm9ncmFtLXByZWZpeD0qIHwgLS1wcm9ncmFt LXByZWZpeD0qIHwgLS1wcm9ncmFtLXByZWZpPSogXAotKyAgfCAtLXByb2dyYW0tcHJlZj0qIHwg LS1wcm9ncmFtLXByZT0qIHwgLS1wcm9ncmFtLXByPSogfCAtLXByb2dyYW0tcD0qKQotKyAgICBw cm9ncmFtX3ByZWZpeD0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtcHJvZ3JhbS1zdWZmaXggfCAtLXBy b2dyYW0tc3VmZml4IHwgLS1wcm9ncmFtLXN1ZmZpIHwgLS1wcm9ncmFtLXN1ZmYgXAotKyAgfCAt LXByb2dyYW0tc3VmIHwgLS1wcm9ncmFtLXN1IHwgLS1wcm9ncmFtLXMpCi0rICAgIGFjX3ByZXY9 cHJvZ3JhbV9zdWZmaXggOzsKLSsgIC1wcm9ncmFtLXN1ZmZpeD0qIHwgLS1wcm9ncmFtLXN1ZmZp eD0qIHwgLS1wcm9ncmFtLXN1ZmZpPSogXAotKyAgfCAtLXByb2dyYW0tc3VmZj0qIHwgLS1wcm9n cmFtLXN1Zj0qIHwgLS1wcm9ncmFtLXN1PSogfCAtLXByb2dyYW0tcz0qKQotKyAgICBwcm9ncmFt X3N1ZmZpeD0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZSB8IC0t cHJvZ3JhbS10cmFuc2Zvcm0tbmFtZSBcCi0rICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtIHwg LS1wcm9ncmFtLXRyYW5zZm9ybS1uYSBcCi0rICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbiB8IC0t cHJvZ3JhbS10cmFuc2Zvcm0tIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybSB8IC0tcHJvZ3Jh bS10cmFuc2ZvciBcCi0rICB8IC0tcHJvZ3JhbS10cmFuc2ZvIHwgLS1wcm9ncmFtLXRyYW5zZiBc Ci0rICB8IC0tcHJvZ3JhbS10cmFucyB8IC0tcHJvZ3JhbS10cmFuIFwKLSsgIHwgLS1wcm9nci10 cmEgfCAtLXByb2dyYW0tdHIgfCAtLXByb2dyYW0tdCkKLSsgICAgYWNfcHJldj1wcm9ncmFtX3Ry YW5zZm9ybV9uYW1lIDs7Ci0rICAtcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZT0qIHwgLS1wcm9ncmFt LXRyYW5zZm9ybS1uYW1lPSogXAotKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbT0qIHwgLS1w cm9ncmFtLXRyYW5zZm9ybS1uYT0qIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uPSogfCAt LXByb2dyYW0tdHJhbnNmb3JtLT0qIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybT0qIHwgLS1w cm9ncmFtLXRyYW5zZm9yPSogXAotKyAgfCAtLXByb2dyYW0tdHJhbnNmbz0qIHwgLS1wcm9ncmFt LXRyYW5zZj0qIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zPSogfCAtLXByb2dyYW0tdHJhbj0qIFwK LSsgIHwgLS1wcm9nci10cmE9KiB8IC0tcHJvZ3JhbS10cj0qIHwgLS1wcm9ncmFtLXQ9KikKLSsg ICAgcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtcGRmZGlyIHwg LS1wZGZkaXIgfCAtLXBkZmRpIHwgLS1wZGZkIHwgLS1wZGYgfCAtLXBkKQotKyAgICBhY19wcmV2 PXBkZmRpciA7OwotKyAgLXBkZmRpcj0qIHwgLS1wZGZkaXI9KiB8IC0tcGRmZGk9KiB8IC0tcGRm ZD0qIHwgLS1wZGY9KiB8IC0tcGQ9KikKLSsgICAgcGRmZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsg IC1wc2RpciB8IC0tcHNkaXIgfCAtLXBzZGkgfCAtLXBzZCB8IC0tcHMpCi0rICAgIGFjX3ByZXY9 cHNkaXIgOzsKLSsgIC1wc2Rpcj0qIHwgLS1wc2Rpcj0qIHwgLS1wc2RpPSogfCAtLXBzZD0qIHwg LS1wcz0qKQotKyAgICBwc2Rpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtcSB8IC1xdWlldCB8IC0t cXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAotKyAgfCAtc2lsZW50IHwgLS1z aWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwpCi0rICAgIHNpbGVudD15ZXMgOzsKLSsK LSsgIC1zYmluZGlyIHwgLS1zYmluZGlyIHwgLS1zYmluZGkgfCAtLXNiaW5kIHwgLS1zYmluIHwg LS1zYmkgfCAtLXNiKQotKyAgICBhY19wcmV2PXNiaW5kaXIgOzsKLSsgIC1zYmluZGlyPSogfCAt LXNiaW5kaXI9KiB8IC0tc2JpbmRpPSogfCAtLXNiaW5kPSogfCAtLXNiaW49KiBcCi0rICB8IC0t c2JpPSogfCAtLXNiPSopCi0rICAgIHNiaW5kaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLXNoYXJl ZHN0YXRlZGlyIHwgLS1zaGFyZWRzdGF0ZWRpciB8IC0tc2hhcmVkc3RhdGVkaSBcCi0rICB8IC0t c2hhcmVkc3RhdGVkIHwgLS1zaGFyZWRzdGF0ZSB8IC0tc2hhcmVkc3RhdCB8IC0tc2hhcmVkc3Rh IFwKLSsgIHwgLS1zaGFyZWRzdCB8IC0tc2hhcmVkcyB8IC0tc2hhcmVkIHwgLS1zaGFyZSB8IC0t c2hhciBcCi0rICB8IC0tc2hhIHwgLS1zaCkKLSsgICAgYWNfcHJldj1zaGFyZWRzdGF0ZWRpciA7 OwotKyAgLXNoYXJlZHN0YXRlZGlyPSogfCAtLXNoYXJlZHN0YXRlZGlyPSogfCAtLXNoYXJlZHN0 YXRlZGk9KiBcCi0rICB8IC0tc2hhcmVkc3RhdGVkPSogfCAtLXNoYXJlZHN0YXRlPSogfCAtLXNo YXJlZHN0YXQ9KiB8IC0tc2hhcmVkc3RhPSogXAotKyAgfCAtLXNoYXJlZHN0PSogfCAtLXNoYXJl ZHM9KiB8IC0tc2hhcmVkPSogfCAtLXNoYXJlPSogfCAtLXNoYXI9KiBcCi0rICB8IC0tc2hhPSog fCAtLXNoPSopCi0rICAgIHNoYXJlZHN0YXRlZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1zaXRl IHwgLS1zaXRlIHwgLS1zaXQpCi0rICAgIGFjX3ByZXY9c2l0ZSA7OwotKyAgLXNpdGU9KiB8IC0t c2l0ZT0qIHwgLS1zaXQ9KikKLSsgICAgc2l0ZT0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtc3JjZGly IHwgLS1zcmNkaXIgfCAtLXNyY2RpIHwgLS1zcmNkIHwgLS1zcmMgfCAtLXNyKQotKyAgICBhY19w cmV2PXNyY2RpciA7OwotKyAgLXNyY2Rpcj0qIHwgLS1zcmNkaXI9KiB8IC0tc3JjZGk9KiB8IC0t c3JjZD0qIHwgLS1zcmM9KiB8IC0tc3I9KikKLSsgICAgc3JjZGlyPSRhY19vcHRhcmcgOzsKLSsK LSsgIC1zeXNjb25mZGlyIHwgLS1zeXNjb25mZGlyIHwgLS1zeXNjb25mZGkgfCAtLXN5c2NvbmZk IHwgLS1zeXNjb25mIFwKLSsgIHwgLS1zeXNjb24gfCAtLXN5c2NvIHwgLS1zeXNjIHwgLS1zeXMg fCAtLXN5KQotKyAgICBhY19wcmV2PXN5c2NvbmZkaXIgOzsKLSsgIC1zeXNjb25mZGlyPSogfCAt LXN5c2NvbmZkaXI9KiB8IC0tc3lzY29uZmRpPSogfCAtLXN5c2NvbmZkPSogfCAtLXN5c2NvbmY9 KiBcCi0rICB8IC0tc3lzY29uPSogfCAtLXN5c2NvPSogfCAtLXN5c2M9KiB8IC0tc3lzPSogfCAt LXN5PSopCi0rICAgIHN5c2NvbmZkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLXRhcmdldCB8IC0t dGFyZ2V0IHwgLS10YXJnZSB8IC0tdGFyZyB8IC0tdGFyIHwgLS10YSB8IC0tdCkKLSsgICAgYWNf cHJldj10YXJnZXRfYWxpYXMgOzsKLSsgIC10YXJnZXQ9KiB8IC0tdGFyZ2V0PSogfCAtLXRhcmdl PSogfCAtLXRhcmc9KiB8IC0tdGFyPSogfCAtLXRhPSogfCAtLXQ9KikKLSsgICAgdGFyZ2V0X2Fs aWFzPSRhY19vcHRhcmcgOzsKLSsKLSsgIC12IHwgLXZlcmJvc2UgfCAtLXZlcmJvc2UgfCAtLXZl cmJvcyB8IC0tdmVyYm8gfCAtLXZlcmIpCi0rICAgIHZlcmJvc2U9eWVzIDs7Ci0rCi0rICAtdmVy c2lvbiB8IC0tdmVyc2lvbiB8IC0tdmVyc2lvIHwgLS12ZXJzaSB8IC0tdmVycyB8IC1WKQotKyAg ICBhY19pbml0X3ZlcnNpb249OiA7OwotKwotKyAgLXdpdGgtKiB8IC0td2l0aC0qKQotKyAgICBh Y191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qd2l0aC1cKFtePV0qXCknYAotKyAg ICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMu Ci0rICAgIGV4cHIgIngkYWNfdXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3JfYWxudW1dIiA+L2Rl di9udWxsICYmCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBwYWNr YWdlIG5hbWU6ICRhY191c2Vyb3B0IiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K LSsgICAgYWNfdXNlcm9wdF9vcmlnPSRhY191c2Vyb3B0Ci0rICAgIGFjX3VzZXJvcHQ9YCRhc19l Y2hvICIkYWNfdXNlcm9wdCIgfCBzZWQgJ3MvWy0rLl0vXy9nJ2AKLSsgICAgY2FzZSAkYWNfdXNl cl9vcHRzIGluCi0rICAgICAgKiIKLSsid2l0aF8kYWNfdXNlcm9wdCIKLSsiKikgOzsKLSsgICAg ICAqKSBhY191bnJlY29nbml6ZWRfb3B0cz0iJGFjX3VucmVjb2duaXplZF9vcHRzJGFjX3VucmVj b2duaXplZF9zZXAtLXdpdGgtJGFjX3VzZXJvcHRfb3JpZyIKLSsJIGFjX3VucmVjb2duaXplZF9z ZXA9JywgJzs7Ci0rICAgIGVzYWMKLSsgICAgZXZhbCB3aXRoXyRhY191c2Vyb3B0PVwkYWNfb3B0 YXJnIDs7Ci0rCi0rICAtd2l0aG91dC0qIHwgLS13aXRob3V0LSopCi0rICAgIGFjX3VzZXJvcHQ9 YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSp3aXRob3V0LVwoLipcKSdgCi0rICAgICMgUmVqZWN0 IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KLSsgICAgZXhw ciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYK LSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHBhY2thZ2UgbmFtZTog JGFjX3VzZXJvcHQiID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICBhY191 c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKLSsgICAgYWNfdXNlcm9wdD1gJGFzX2VjaG8gIiRhY191 c2Vyb3B0IiB8IHNlZCAncy9bLSsuXS9fL2cnYAotKyAgICBjYXNlICRhY191c2VyX29wdHMgaW4K LSsgICAgICAqIgotKyJ3aXRoXyRhY191c2Vyb3B0IgotKyIqKSA7OwotKyAgICAgICopIGFjX3Vu cmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNvZ25pemVkX3Nl cC0td2l0aG91dC0kYWNfdXNlcm9wdF9vcmlnIgotKwkgYWNfdW5yZWNvZ25pemVkX3NlcD0nLCAn OzsKLSsgICAgZXNhYwotKyAgICBldmFsIHdpdGhfJGFjX3VzZXJvcHQ9bm8gOzsKLSsKLSsgIC0t eCkKLSsgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC14LgotKyAgICB3aXRoX3g9eWVzIDs7Ci0r Ci0rICAteC1pbmNsdWRlcyB8IC0teC1pbmNsdWRlcyB8IC0teC1pbmNsdWRlIHwgLS14LWluY2x1 ZCB8IC0teC1pbmNsdSBcCi0rICB8IC0teC1pbmNsIHwgLS14LWluYyB8IC0teC1pbiB8IC0teC1p KQotKyAgICBhY19wcmV2PXhfaW5jbHVkZXMgOzsKLSsgIC14LWluY2x1ZGVzPSogfCAtLXgtaW5j bHVkZXM9KiB8IC0teC1pbmNsdWRlPSogfCAtLXgtaW5jbHVkPSogfCAtLXgtaW5jbHU9KiBcCi0r ICB8IC0teC1pbmNsPSogfCAtLXgtaW5jPSogfCAtLXgtaW49KiB8IC0teC1pPSopCi0rICAgIHhf aW5jbHVkZXM9JGFjX29wdGFyZyA7OwotKwotKyAgLXgtbGlicmFyaWVzIHwgLS14LWxpYnJhcmll cyB8IC0teC1saWJyYXJpZSB8IC0teC1saWJyYXJpIFwKLSsgIHwgLS14LWxpYnJhciB8IC0teC1s aWJyYSB8IC0teC1saWJyIHwgLS14LWxpYiB8IC0teC1saSB8IC0teC1sKQotKyAgICBhY19wcmV2 PXhfbGlicmFyaWVzIDs7Ci0rICAteC1saWJyYXJpZXM9KiB8IC0teC1saWJyYXJpZXM9KiB8IC0t eC1saWJyYXJpZT0qIHwgLS14LWxpYnJhcmk9KiBcCi0rICB8IC0teC1saWJyYXI9KiB8IC0teC1s aWJyYT0qIHwgLS14LWxpYnI9KiB8IC0teC1saWI9KiB8IC0teC1saT0qIHwgLS14LWw9KikKLSsg ICAgeF9saWJyYXJpZXM9JGFjX29wdGFyZyA7OwotKwotKyAgLSopIHsgJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb246ICRhY19vcHRpb24KLStUcnkgXGAkMCAtLWhl bHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyCi0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 OyB9Ci0rICAgIDs7Ci0rCi0rICAqPSopCi0rICAgIGFjX2VudnZhcj1gZXhwciAieCRhY19vcHRp b24iIDogJ3hcKFtePV0qXCk9J2AKLSsgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZh bGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgotKyAgICBleHByICJ4JGFjX2VudnZhciIgOiAiLipb Xl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21l OiBlcnJvcjogaW52YWxpZCB2YXJpYWJsZSBuYW1lOiAkYWNfZW52dmFyIiA+JjIKLSsgICB7IChl eGl0IDEpOyBleGl0IDE7IH07IH0KLSsgICAgZXZhbCAkYWNfZW52dmFyPVwkYWNfb3B0YXJnCi0r ICAgIGV4cG9ydCAkYWNfZW52dmFyIDs7Ci0rCi0rICAqKQotKyAgICAjIEZJWE1FOiBzaG91bGQg YmUgcmVtb3ZlZCBpbiBhdXRvY29uZiAzLjAuCi0rICAgICRhc19lY2hvICIkYXNfbWU6IFdBUk5J Tkc6IHlvdSBzaG91bGQgdXNlIC0tYnVpbGQsIC0taG9zdCwgLS10YXJnZXQiID4mMgotKyAgICBl eHByICJ4JGFjX29wdGlvbiIgOiAiLipbXi0uXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYK LSsgICAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBpbnZhbGlkIGhvc3QgdHlwZTogJGFj X29wdGlvbiIgPiYyCi0rICAgIDogJHtidWlsZF9hbGlhcz0kYWNfb3B0aW9ufSAke2hvc3RfYWxp YXM9JGFjX29wdGlvbn0gJHt0YXJnZXRfYWxpYXM9JGFjX29wdGlvbn0KLSsgICAgOzsKLSsKLSsg IGVzYWMKLSBkb25lCi0gCi0taWYgWyAkdGNsX2ZvdW5kIC1lcSAwIF0KLS10aGVuCi0tICAgICAg ICBlY2hvICdOT1QgZm91bmQuJwotLSAgICAgICAgZWNobyAnSXMgdGhlIFRjbCBpbnN0YWxsZWQ/ JwotLSAgICAgICAgZXhpdAotK2lmIHRlc3QgLW4gIiRhY19wcmV2IjsgdGhlbgotKyAgYWNfb3B0 aW9uPS0tYGVjaG8gJGFjX3ByZXYgfCBzZWQgJ3MvXy8tL2cnYAotKyAgeyAkYXNfZWNobyAiJGFz X21lOiBlcnJvcjogbWlzc2luZyBhcmd1bWVudCB0byAkYWNfb3B0aW9uIiA+JjIKLSsgICB7IChl eGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotKwotK2lmIHRlc3QgLW4gIiRhY191bnJlY29nbml6 ZWRfb3B0cyI7IHRoZW4KLSsgIGNhc2UgJGVuYWJsZV9vcHRpb25fY2hlY2tpbmcgaW4KLSsgICAg bm8pIDs7Ci0rICAgIGZhdGFsKSB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiB1bnJlY29nbml6 ZWQgb3B0aW9uczogJGFjX3VucmVjb2duaXplZF9vcHRzIiA+JjIKLSsgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0gOzsKLSsgICAgKikgICAgICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVu cmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4mMiA7OwotKyAgZXNh YwotK2ZpCi0rCi0rIyBDaGVjayBhbGwgZGlyZWN0b3J5IGFyZ3VtZW50cyBmb3IgY29uc2lzdGVu Y3kuCi0rZm9yIGFjX3ZhciBpbglleGVjX3ByZWZpeCBwcmVmaXggYmluZGlyIHNiaW5kaXIgbGli ZXhlY2RpciBkYXRhcm9vdGRpciBcCi0rCQlkYXRhZGlyIHN5c2NvbmZkaXIgc2hhcmVkc3RhdGVk aXIgbG9jYWxzdGF0ZWRpciBpbmNsdWRlZGlyIFwKLSsJCW9sZGluY2x1ZGVkaXIgZG9jZGlyIGlu Zm9kaXIgaHRtbGRpciBkdmlkaXIgcGRmZGlyIHBzZGlyIFwKLSsJCWxpYmRpciBsb2NhbGVkaXIg bWFuZGlyCi0rZG8KLSsgIGV2YWwgYWNfdmFsPVwkJGFjX3ZhcgotKyAgIyBSZW1vdmUgdHJhaWxp bmcgc2xhc2hlcy4KLSsgIGNhc2UgJGFjX3ZhbCBpbgotKyAgICAqLyApCi0rICAgICAgYWNfdmFs PWBleHByICJYJGFjX3ZhbCIgOiAnWFwoLipbXi9dXCknIFx8ICJYJGFjX3ZhbCIgOiAnWFwoLipc KSdgCi0rICAgICAgZXZhbCAkYWNfdmFyPVwkYWNfdmFsOzsKLSsgIGVzYWMKLSsgICMgQmUgc3Vy ZSB0byBoYXZlIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lcy4KLSsgIGNhc2UgJGFjX3ZhbCBpbgot KyAgICBbXFwvJF0qIHwgPzpbXFwvXSogKSAgY29udGludWU7OwotKyAgICBOT05FIHwgJycgKSBj YXNlICRhY192YXIgaW4gKnByZWZpeCApIGNvbnRpbnVlOzsgZXNhYzs7Ci0rICBlc2FjCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBleHBlY3RlZCBhbiBhYnNvbHV0ZSBkaXJlY3Rvcnkg bmFtZSBmb3IgLS0kYWNfdmFyOiAkYWNfdmFsIiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH0KLStkb25lCi0rCi0rIyBUaGVyZSBtaWdodCBiZSBwZW9wbGUgd2hvIGRlcGVuZCBvbiB0 aGUgb2xkIGJyb2tlbiBiZWhhdmlvcjogYCRob3N0JwotKyMgdXNlZCB0byBob2xkIHRoZSBhcmd1 bWVudCBvZiAtLWhvc3QgZXRjLgotKyMgRklYTUU6IFRvIHJlbW92ZSBzb21lIGRheS4KLStidWls ZD0kYnVpbGRfYWxpYXMKLStob3N0PSRob3N0X2FsaWFzCi0rdGFyZ2V0PSR0YXJnZXRfYWxpYXMK LSsKLSsjIEZJWE1FOiBUbyByZW1vdmUgc29tZSBkYXkuCi0raWYgdGVzdCAieCRob3N0X2FsaWFz IiAhPSB4OyB0aGVuCi0rICBpZiB0ZXN0ICJ4JGJ1aWxkX2FsaWFzIiA9IHg7IHRoZW4KLSsgICAg Y3Jvc3NfY29tcGlsaW5nPW1heWJlCi0rICAgICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IElm IHlvdSB3YW50ZWQgdG8gc2V0IHRoZSAtLWJ1aWxkIHR5cGUsIGRvbid0IHVzZSAtLWhvc3QuCi0r ICAgIElmIGEgY3Jvc3MgY29tcGlsZXIgaXMgZGV0ZWN0ZWQgdGhlbiBjcm9zcyBjb21waWxlIG1v ZGUgd2lsbCBiZSB1c2VkLiIgPiYyCi0rICBlbGlmIHRlc3QgIngkYnVpbGRfYWxpYXMiICE9ICJ4 JGhvc3RfYWxpYXMiOyB0aGVuCi0rICAgIGNyb3NzX2NvbXBpbGluZz15ZXMKLSsgIGZpCi0rZmkK LSsKLSthY190b29sX3ByZWZpeD0KLSt0ZXN0IC1uICIkaG9zdF9hbGlhcyIgJiYgYWNfdG9vbF9w cmVmaXg9JGhvc3RfYWxpYXMtCi0rCi0rdGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYgZXhlYyA2Pi9k ZXYvbnVsbAotKwotKwotK2FjX3B3ZD1gcHdkYCAmJiB0ZXN0IC1uICIkYWNfcHdkIiAmJgotK2Fj X2xzX2RpPWBscyAtZGkgLmAgJiYKLSthY19wd2RfbHNfZGk9YGNkICIkYWNfcHdkIiAmJiBscyAt ZGkgLmAgfHwKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHdvcmtpbmcgZGlyZWN0b3J5 IGNhbm5vdCBiZSBkZXRlcm1pbmVkIiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K LSt0ZXN0ICJYJGFjX2xzX2RpIiA9ICJYJGFjX3B3ZF9sc19kaSIgfHwKLSsgIHsgJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IHB3ZCBkb2VzIG5vdCByZXBvcnQgbmFtZSBvZiB3b3JraW5nIGRpcmVj dG9yeSIgPiYyCi0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rCi0rCi0rIyBGaW5kIHRo ZSBzb3VyY2UgZmlsZXMsIGlmIGxvY2F0aW9uIHdhcyBub3Qgc3BlY2lmaWVkLgotK2lmIHRlc3Qg LXogIiRzcmNkaXIiOyB0aGVuCi0rICBhY19zcmNkaXJfZGVmYXVsdGVkPXllcwotKyAgIyBUcnkg dGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoaXMgc2NyaXB0LCB0aGVuIHRoZSBwYXJlbnQgZGly ZWN0b3J5LgotKyAgYWNfY29uZmRpcj1gJGFzX2Rpcm5hbWUgLS0gIiRhc19teXNlbGYiIHx8Ci0r JGFzX2V4cHIgWCIkYXNfbXlzZWxmIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwg XAotKwkgWCIkYXNfbXlzZWxmIiA6ICdYXCgvL1wpW14vXScgXHwgXAotKwkgWCIkYXNfbXlzZWxm IiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkYXNfbXlzZWxmIiA6ICdYXCgvXCknIFx8IC4gMj4v ZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRhc19teXNlbGYiIHwKLSsgICAgc2VkICcvXlhcKC4q W14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0K LSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0r CSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhc KFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdg Ci0rICBzcmNkaXI9JGFjX2NvbmZkaXIKLSsgIGlmIHRlc3QgISAtciAiJHNyY2Rpci8kYWNfdW5p cXVlX2ZpbGUiOyB0aGVuCi0rICAgIHNyY2Rpcj0uLgotKyAgZmkKLStlbHNlCi0rICBhY19zcmNk aXJfZGVmYXVsdGVkPW5vCi0rZmkKLStpZiB0ZXN0ICEgLXIgIiRzcmNkaXIvJGFjX3VuaXF1ZV9m aWxlIjsgdGhlbgotKyAgdGVzdCAiJGFjX3NyY2Rpcl9kZWZhdWx0ZWQiID0geWVzICYmIHNyY2Rp cj0iJGFjX2NvbmZkaXIgb3IgLi4iCi0rICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5u b3QgZmluZCBzb3VyY2VzICgkYWNfdW5pcXVlX2ZpbGUpIGluICRzcmNkaXIiID4mMgotKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0rYWNfbXNnPSJzb3VyY2VzIGFyZSBpbiAkc3Jj ZGlyLCBidXQgXGBjZCAkc3JjZGlyJyBkb2VzIG5vdCB3b3JrIgotK2FjX2Fic19jb25mZGlyPWAo Ci0rCWNkICIkc3JjZGlyIiAmJiB0ZXN0IC1yICIuLyRhY191bmlxdWVfZmlsZSIgfHwgeyAkYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogJGFjX21zZyIgPiYyCi0rICAgeyAoZXhpdCAxKTsgZXhpdCAx OyB9OyB9Ci0rCXB3ZClgCi0rIyBXaGVuIGJ1aWxkaW5nIGluIHBsYWNlLCBzZXQgc3JjZGlyPS4K LStpZiB0ZXN0ICIkYWNfYWJzX2NvbmZkaXIiID0gIiRhY19wd2QiOyB0aGVuCi0rICBzcmNkaXI9 LgotK2ZpCi0rIyBSZW1vdmUgdW5uZWNlc3NhcnkgdHJhaWxpbmcgc2xhc2hlcyBmcm9tIHNyY2Rp ci4KLSsjIERvdWJsZSBzbGFzaGVzIGluIGZpbGUgbmFtZXMgaW4gb2JqZWN0IGZpbGUgZGVidWdn aW5nIGluZm8KLSsjIG1lc3MgdXAgTS14IGdkYiBpbiBFbWFjcy4KLStjYXNlICRzcmNkaXIgaW4K LSsqLykgc3JjZGlyPWBleHByICJYJHNyY2RpciIgOiAnWFwoLipbXi9dXCknIFx8ICJYJHNyY2Rp ciIgOiAnWFwoLipcKSdgOzsKLStlc2FjCi0rZm9yIGFjX3ZhciBpbiAkYWNfcHJlY2lvdXNfdmFy czsgZG8KLSsgIGV2YWwgYWNfZW52XyR7YWNfdmFyfV9zZXQ9XCR7JHthY192YXJ9K3NldH0KLSsg IGV2YWwgYWNfZW52XyR7YWNfdmFyfV92YWx1ZT1cJCR7YWNfdmFyfQotKyAgZXZhbCBhY19jdl9l bnZfJHthY192YXJ9X3NldD1cJHske2FjX3Zhcn0rc2V0fQotKyAgZXZhbCBhY19jdl9lbnZfJHth Y192YXJ9X3ZhbHVlPVwkJHthY192YXJ9Ci0rZG9uZQotKwotKyMKLSsjIFJlcG9ydCB0aGUgLS1o ZWxwIG1lc3NhZ2UuCi0rIwotK2lmIHRlc3QgIiRhY19pbml0X2hlbHAiID0gImxvbmciOyB0aGVu Ci0rICAjIE9taXQgc29tZSBpbnRlcm5hbCBvciBvYnNvbGV0ZSBvcHRpb25zIHRvIG1ha2UgdGhl IGxpc3QgbGVzcyBpbXBvc2luZy4KLSsgICMgVGhpcyBtZXNzYWdlIGlzIHRvbyBsb25nIHRvIGJl IGEgc3RyaW5nIGluIHRoZSBBL1VYIDMuMSBzaC4KLSsgIGNhdCA8PF9BQ0VPRgotK1xgY29uZmln dXJlJyBjb25maWd1cmVzIFNPQ0kgMy4wLjAgdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0 ZW1zLgotKwotK1VzYWdlOiAkMCBbT1BUSU9OXS4uLiBbVkFSPVZBTFVFXS4uLgotKwotK1RvIGFz c2lnbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKGUuZy4sIENDLCBDRkxBR1MuLi4pLCBzcGVjaWZ5 IHRoZW0gYXMKLStWQVI9VkFMVUUuICBTZWUgYmVsb3cgZm9yIGRlc2NyaXB0aW9ucyBvZiBzb21l IG9mIHRoZSB1c2VmdWwgdmFyaWFibGVzLgotKwotK0RlZmF1bHRzIGZvciB0aGUgb3B0aW9ucyBh cmUgc3BlY2lmaWVkIGluIGJyYWNrZXRzLgotKwotK0NvbmZpZ3VyYXRpb246Ci0rICAtaCwgLS1o ZWxwICAgICAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAotKyAgICAgIC0taGVs cD1zaG9ydCAgICAgICAgZGlzcGxheSBvcHRpb25zIHNwZWNpZmljIHRvIHRoaXMgcGFja2FnZQot KyAgICAgIC0taGVscD1yZWN1cnNpdmUgICAgZGlzcGxheSB0aGUgc2hvcnQgaGVscCBvZiBhbGwg dGhlIGluY2x1ZGVkIHBhY2thZ2VzCi0rICAtViwgLS12ZXJzaW9uICAgICAgICAgICBkaXNwbGF5 IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKLSsgIC1xLCAtLXF1aWV0LCAtLXNpbGVudCAg IGRvIG5vdCBwcmludCBcYGNoZWNraW5nLi4uJyBtZXNzYWdlcwotKyAgICAgIC0tY2FjaGUtZmls ZT1GSUxFICAgY2FjaGUgdGVzdCByZXN1bHRzIGluIEZJTEUgW2Rpc2FibGVkXQotKyAgLUMsIC0t Y29uZmlnLWNhY2hlICAgICAgYWxpYXMgZm9yIFxgLS1jYWNoZS1maWxlPWNvbmZpZy5jYWNoZScK LSsgIC1uLCAtLW5vLWNyZWF0ZSAgICAgICAgIGRvIG5vdCBjcmVhdGUgb3V0cHV0IGZpbGVzCi0r ICAgICAgLS1zcmNkaXI9RElSICAgICAgICBmaW5kIHRoZSBzb3VyY2VzIGluIERJUiBbY29uZmln dXJlIGRpciBvciBcYC4uJ10KLSsKLStJbnN0YWxsYXRpb24gZGlyZWN0b3JpZXM6Ci0rICAtLXBy ZWZpeD1QUkVGSVggICAgICAgICBpbnN0YWxsIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBmaWxl cyBpbiBQUkVGSVgKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIFskYWNfZGVmYXVsdF9wcmVm aXhdCi0rICAtLWV4ZWMtcHJlZml4PUVQUkVGSVggICBpbnN0YWxsIGFyY2hpdGVjdHVyZS1kZXBl bmRlbnQgZmlsZXMgaW4gRVBSRUZJWAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgW1BSRUZJ WF0KLSsKLStCeSBkZWZhdWx0LCBcYG1ha2UgaW5zdGFsbCcgd2lsbCBpbnN0YWxsIGFsbCB0aGUg ZmlsZXMgaW4KLStcYCRhY19kZWZhdWx0X3ByZWZpeC9iaW4nLCBcYCRhY19kZWZhdWx0X3ByZWZp eC9saWInIGV0Yy4gIFlvdSBjYW4gc3BlY2lmeQotK2FuIGluc3RhbGxhdGlvbiBwcmVmaXggb3Ro ZXIgdGhhbiBcYCRhY19kZWZhdWx0X3ByZWZpeCcgdXNpbmcgXGAtLXByZWZpeCcsCi0rZm9yIGlu c3RhbmNlIFxgLS1wcmVmaXg9XCRIT01FJy4KLSsKLStGb3IgYmV0dGVyIGNvbnRyb2wsIHVzZSB0 aGUgb3B0aW9ucyBiZWxvdy4KLSsKLStGaW5lIHR1bmluZyBvZiB0aGUgaW5zdGFsbGF0aW9uIGRp cmVjdG9yaWVzOgotKyAgLS1iaW5kaXI9RElSICAgICAgICAgICAgdXNlciBleGVjdXRhYmxlcyBb RVBSRUZJWC9iaW5dCi0rICAtLXNiaW5kaXI9RElSICAgICAgICAgICBzeXN0ZW0gYWRtaW4gZXhl Y3V0YWJsZXMgW0VQUkVGSVgvc2Jpbl0KLSsgIC0tbGliZXhlY2Rpcj1ESVIgICAgICAgIHByb2dy YW0gZXhlY3V0YWJsZXMgW0VQUkVGSVgvbGliZXhlY10KLSsgIC0tc3lzY29uZmRpcj1ESVIgICAg ICAgIHJlYWQtb25seSBzaW5nbGUtbWFjaGluZSBkYXRhIFtQUkVGSVgvZXRjXQotKyAgLS1zaGFy ZWRzdGF0ZWRpcj1ESVIgICAgbW9kaWZpYWJsZSBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZGF0 YSBbUFJFRklYL2NvbV0KLSsgIC0tbG9jYWxzdGF0ZWRpcj1ESVIgICAgIG1vZGlmaWFibGUgc2lu Z2xlLW1hY2hpbmUgZGF0YSBbUFJFRklYL3Zhcl0KLSsgIC0tbGliZGlyPURJUiAgICAgICAgICAg IG9iamVjdCBjb2RlIGxpYnJhcmllcyBbRVBSRUZJWC9saWJdCi0rICAtLWluY2x1ZGVkaXI9RElS ICAgICAgICBDIGhlYWRlciBmaWxlcyBbUFJFRklYL2luY2x1ZGVdCi0rICAtLW9sZGluY2x1ZGVk aXI9RElSICAgICBDIGhlYWRlciBmaWxlcyBmb3Igbm9uLWdjYyBbL3Vzci9pbmNsdWRlXQotKyAg LS1kYXRhcm9vdGRpcj1ESVIgICAgICAgcmVhZC1vbmx5IGFyY2guLWluZGVwZW5kZW50IGRhdGEg cm9vdCBbUFJFRklYL3NoYXJlXQotKyAgLS1kYXRhZGlyPURJUiAgICAgICAgICAgcmVhZC1vbmx5 IGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIFtEQVRBUk9PVERJUl0KLSsgIC0taW5mb2Rp cj1ESVIgICAgICAgICAgIGluZm8gZG9jdW1lbnRhdGlvbiBbREFUQVJPT1RESVIvaW5mb10KLSsg IC0tbG9jYWxlZGlyPURJUiAgICAgICAgIGxvY2FsZS1kZXBlbmRlbnQgZGF0YSBbREFUQVJPT1RE SVIvbG9jYWxlXQotKyAgLS1tYW5kaXI9RElSICAgICAgICAgICAgbWFuIGRvY3VtZW50YXRpb24g W0RBVEFST09URElSL21hbl0KLSsgIC0tZG9jZGlyPURJUiAgICAgICAgICAgIGRvY3VtZW50YXRp b24gcm9vdCBbREFUQVJPT1RESVIvZG9jL3NvY2ldCi0rICAtLWh0bWxkaXI9RElSICAgICAgICAg ICBodG1sIGRvY3VtZW50YXRpb24gW0RPQ0RJUl0KLSsgIC0tZHZpZGlyPURJUiAgICAgICAgICAg IGR2aSBkb2N1bWVudGF0aW9uIFtET0NESVJdCi0rICAtLXBkZmRpcj1ESVIgICAgICAgICAgICBw ZGYgZG9jdW1lbnRhdGlvbiBbRE9DRElSXQotKyAgLS1wc2Rpcj1ESVIgICAgICAgICAgICAgcHMg ZG9jdW1lbnRhdGlvbiBbRE9DRElSXQotK19BQ0VPRgotKwotKyAgY2F0IDw8XF9BQ0VPRgotKwot K1Byb2dyYW0gbmFtZXM6Ci0rICAtLXByb2dyYW0tcHJlZml4PVBSRUZJWCAgICAgICAgICAgIHBy ZXBlbmQgUFJFRklYIHRvIGluc3RhbGxlZCBwcm9ncmFtIG5hbWVzCi0rICAtLXByb2dyYW0tc3Vm Zml4PVNVRkZJWCAgICAgICAgICAgIGFwcGVuZCBTVUZGSVggdG8gaW5zdGFsbGVkIHByb2dyYW0g bmFtZXMKLSsgIC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZT1QUk9HUkFNICAgcnVuIHNlZCBQUk9H UkFNIG9uIGluc3RhbGxlZCBwcm9ncmFtIG5hbWVzCi0rCi0rU3lzdGVtIHR5cGVzOgotKyAgLS1i dWlsZD1CVUlMRCAgICAgY29uZmlndXJlIGZvciBidWlsZGluZyBvbiBCVUlMRCBbZ3Vlc3NlZF0K LSsgIC0taG9zdD1IT1NUICAgICAgIGNyb3NzLWNvbXBpbGUgdG8gYnVpbGQgcHJvZ3JhbXMgdG8g cnVuIG9uIEhPU1QgW0JVSUxEXQotK19BQ0VPRgotK2ZpCi0rCi0raWYgdGVzdCAtbiAiJGFjX2lu aXRfaGVscCI7IHRoZW4KLSsgIGNhc2UgJGFjX2luaXRfaGVscCBpbgotKyAgICAgc2hvcnQgfCBy ZWN1cnNpdmUgKSBlY2hvICJDb25maWd1cmF0aW9uIG9mIFNPQ0kgMy4wLjA6Ijs7Ci0rICAgZXNh YwotKyAgY2F0IDw8XF9BQ0VPRgotKwotK09wdGlvbmFsIEZlYXR1cmVzOgotKyAgLS1kaXNhYmxl LW9wdGlvbi1jaGVja2luZyAgaWdub3JlIHVucmVjb2duaXplZCAtLWVuYWJsZS8tLXdpdGggb3B0 aW9ucwotKyAgLS1kaXNhYmxlLUZFQVRVUkUgICAgICAgZG8gbm90IGluY2x1ZGUgRkVBVFVSRSAo c2FtZSBhcyAtLWVuYWJsZS1GRUFUVVJFPW5vKQotKyAgLS1lbmFibGUtRkVBVFVSRVs9QVJHXSAg aW5jbHVkZSBGRUFUVVJFIFtBUkc9eWVzXQotKyAgLS1lbmFibGUtc2hhcmVkWz1QS0dTXSAgYnVp bGQgc2hhcmVkIGxpYnJhcmllcyBbZGVmYXVsdD1ub10KLSsgIC0tZW5hYmxlLXN0YXRpY1s9UEtH U10gIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMgW2RlZmF1bHQ9eWVzXQotKyAgLS1kaXNhYmxlLWRl cGVuZGVuY3ktdHJhY2tpbmcgIHNwZWVkcyB1cCBvbmUtdGltZSBidWlsZAotKyAgLS1lbmFibGUt ZGVwZW5kZW5jeS10cmFja2luZyAgIGRvIG5vdCByZWplY3Qgc2xvdyBkZXBlbmRlbmN5IGV4dHJh Y3RvcnMKLSsgIC0tZW5hYmxlLWZhc3QtaW5zdGFsbFs9UEtHU10KLSsgICAgICAgICAgICAgICAg ICAgICAgICAgIG9wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbiBbZGVmYXVsdD15ZXNdCi0r ICAtLWRpc2FibGUtbGlidG9vbC1sb2NrICBhdm9pZCBsb2NraW5nIChtaWdodCBicmVhayBwYXJh bGxlbCBidWlsZHMpCi0rICAtLWVuYWJsZS1leGNlcHRpb25zICAgICBlbmFibGUgZXhjZXB0aW9u cyBoYW5kbGluZyBtZWNoYW5pc20KLSsgIC0tZGlzYWJsZS1pbmZvLWRvYyAgICAgIGRvIG5vdCBn ZW5lcmF0ZSBJbmZvIGRvY3VtZW50YXRpb24KLSsgIC0tZGlzYWJsZS1odG1sLWRvYyAgICAgIGRv IG5vdCBnZW5lcmF0ZSBIVE1MIGRvY3VtZW50YXRpb24KLSsgIC0tZW5hYmxlLWJ1cnJpZWQtaGVh ZGVycwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZSBoZWFkZXIgZmlsZXMgZnJv bSBhIGRpcmVjdG9yeSBzdHJ1Y3R1cmUKLSsgIC0tZW5hYmxlLW15c3FsLWJ1cnJpZWQtaGVhZGVy cwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZSBNeVNRTCBoZWFkZXIgZmlsZXMg ZnJvbSBhIGRpcmVjdG9yeQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0dXJlCi0r ICAtLWVuYWJsZS1wb3N0Z3Jlc3FsLWJ1cnJpZWQtaGVhZGVycwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgaW5jbHVkZSBQb3N0R3JlU1FMIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUKLSsgIC0tZW5hYmxlLWJhY2tl bmQtbXlzcWwgIGJ1aWxkLWluIE15U1FMIGJhY2tlbmQgc3VwcG9ydCBbZGVmYXVsdD1ub10KLSsg IC0tZW5hYmxlLWJhY2tlbmQtb3JhY2xlIGJ1aWxkLWluIE9SQUNMRSBiYWNrZW5kIHN1cHBvcnQg W2RlZmF1bHQ9bm9dCi0rICAtLWVuYWJsZS1iYWNrZW5kLXBvc3RncmVzcWwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgIGJ1aWxkLWluIFBvc3RncmVTUUwgYmFja2VuZCBzdXBwb3J0IFtkZWZh dWx0PW5vXQotKwotK09wdGlvbmFsIFBhY2thZ2VzOgotKyAgLS13aXRoLVBBQ0tBR0VbPUFSR10g ICAgdXNlIFBBQ0tBR0UgW0FSRz15ZXNdCi0rICAtLXdpdGhvdXQtUEFDS0FHRSAgICAgICBkbyBu b3QgdXNlIFBBQ0tBR0UgKHNhbWUgYXMgLS13aXRoLVBBQ0tBR0U9bm8pCi0rICAtLXdpdGgtY3Bw dW5pdC1wcmVmaXg9UEZYICAgUHJlZml4IHdoZXJlIENwcFVuaXQgaXMgaW5zdGFsbGVkIChvcHRp b25hbCkKLSsgIC0td2l0aC1jcHB1bml0LWV4ZWMtcHJlZml4PVBGWCAgRXhlYyBwcmVmaXggd2hl cmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKQotKyAgLS13aXRoLXBpYyAgICAgICAg ICAgICAgdHJ5IHRvIHVzZSBvbmx5IFBJQy9ub24tUElDIG9iamVjdHMgW2RlZmF1bHQ9dXNlCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICBib3RoXQotKyAgLS13aXRoLWdudS1sZCAgICAgICAg ICAgYXNzdW1lIHRoZSBDIGNvbXBpbGVyIHVzZXMgR05VIGxkIFtkZWZhdWx0PW5vXQotKyAgLS13 aXRoLWRvY2Rpcj1ESVIgICAgICAgc2V0IGRvY3VtZW50YXRpb24gZGlyZWN0b3J5IHRvIERJUgot KyAgLS13aXRoLWJvb3N0PURJUiAgICAgICAgdXNlIGJvb3N0IChkZWZhdWx0IGlzIE5PKSAsIHNw ZWNpZnkgdGhlIHJvb3QKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSBmb3Ig Ym9vc3QgbGlicmFyeSAob3B0aW9uYWwpCi0rICAtLXdpdGgtbXlzcWw9PHBhdGg+ICAgICByb290 IGRpcmVjdG9yeSBwYXRoIG9mIE15U1FMIGluc3RhbGxhdGlvbgotKyAgLS13aXRoLW15c3FsLWxp Yj08cGF0aD4gZGlyZWN0b3J5IHBhdGggb2YgTXlTUUwgbGlicmFyeSBpbnN0YWxsYXRpb24KLSsg IC0td2l0aC1teXNxbC1pbmNsdWRlPTxwYXRoPiBkaXJlY3RvcnkgcGF0aCBvZiBNeVNRTCBoZWFk ZXIgaW5zdGFsbGF0aW9uCi0rICAtLXdpdGgtb3JhY2xlPVtESVJdICAgICB1c2UgT3JhY2xlIE9D SSBBUEkgZnJvbSBnaXZlbiBwYXRoIHRvIE9yYWNsZSBob21lCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICBkaXJlY3RvcnkKLSsgIC0td2l0aC1vcmFjbGUtaW5jbHVkZT1bRElSXQotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgdXNlIE9yYWNsZSBPQ0kgQVBJIGhlYWRlcnMgZnJvbSBnaXZl biBwYXRoCi0rICAtLXdpdGgtb3JhY2xlLWxpYj1bRElSXSB1c2UgT3JhY2xlIE9DSSBBUEkgbGli cmFyaWVzIGZyb20gZ2l2ZW4gcGF0aAotKyAgLS13aXRoLXBvc3RncmVzcWw9W0FSR10gdXNlIFBv c3RncmVTUUwgbGlicmFyeSBbZGVmYXVsdD15ZXNdLCBvcHRpb25hbGx5Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICBzcGVjaWZ5IHBhdGggdG8gcGdfY29uZmlnCi0rCi0rU29tZSBpbmZsdWVu dGlhbCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Ci0rICBDWFggICAgICAgICBDKysgY29tcGlsZXIg Y29tbWFuZAotKyAgQ1hYRkxBR1MgICAgQysrIGNvbXBpbGVyIGZsYWdzCi0rICBMREZMQUdTICAg ICBsaW5rZXIgZmxhZ3MsIGUuZy4gLUw8bGliIGRpcj4gaWYgeW91IGhhdmUgbGlicmFyaWVzIGlu IGEKLSsgICAgICAgICAgICAgIG5vbnN0YW5kYXJkIGRpcmVjdG9yeSA8bGliIGRpcj4KLSsgIExJ QlMgICAgICAgIGxpYnJhcmllcyB0byBwYXNzIHRvIHRoZSBsaW5rZXIsIGUuZy4gLWw8bGlicmFy eT4KLSsgIENQUEZMQUdTICAgIEMvQysrL09iamVjdGl2ZSBDIHByZXByb2Nlc3NvciBmbGFncywg ZS5nLiAtSTxpbmNsdWRlIGRpcj4gaWYKLSsgICAgICAgICAgICAgIHlvdSBoYXZlIGhlYWRlcnMg aW4gYSBub25zdGFuZGFyZCBkaXJlY3RvcnkgPGluY2x1ZGUgZGlyPgotKyAgQ1hYQ1BQICAgICAg QysrIHByZXByb2Nlc3NvcgotKyAgQ0MgICAgICAgICAgQyBjb21waWxlciBjb21tYW5kCi0rICBD RkxBR1MgICAgICBDIGNvbXBpbGVyIGZsYWdzCi0rICBDUFAgICAgICAgICBDIHByZXByb2Nlc3Nv cgotKwotK1VzZSB0aGVzZSB2YXJpYWJsZXMgdG8gb3ZlcnJpZGUgdGhlIGNob2ljZXMgbWFkZSBi eSBgY29uZmlndXJlJyBvciB0byBoZWxwCi0raXQgdG8gZmluZCBsaWJyYXJpZXMgYW5kIHByb2dy YW1zIHdpdGggbm9uc3RhbmRhcmQgbmFtZXMvbG9jYXRpb25zLgotKwotK1JlcG9ydCBidWdzIHRv IDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+LgotK19BQ0VPRgotK2FjX3N0YXR1cz0k PwotK2ZpCi0rCi0raWYgdGVzdCAiJGFjX2luaXRfaGVscCIgPSAicmVjdXJzaXZlIjsgdGhlbgot KyAgIyBJZiB0aGVyZSBhcmUgc3ViZGlycywgcmVwb3J0IHRoZWlyIHNwZWNpZmljIC0taGVscC4K LSsgIGZvciBhY19kaXIgaW4gOiAkYWNfc3ViZGlyc19hbGw7IGRvIHRlc3QgIngkYWNfZGlyIiA9 IHg6ICYmIGNvbnRpbnVlCi0rICAgIHRlc3QgLWQgIiRhY19kaXIiIHx8Ci0rICAgICAgeyBjZCAi JHNyY2RpciIgJiYgYWNfcHdkPWBwd2RgICYmIHNyY2Rpcj0uICYmIHRlc3QgLWQgIiRhY19kaXIi OyB9IHx8Ci0rICAgICAgY29udGludWUKLSsgICAgYWNfYnVpbGRkaXI9LgotKwotK2Nhc2UgIiRh Y19kaXIiIGluCi0rLikgYWNfZGlyX3N1ZmZpeD0gYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3Rv cF9idWlsZF9wcmVmaXg9IDs7Ci0rKikKLSsgIGFjX2Rpcl9zdWZmaXg9L2AkYXNfZWNobyAiJGFj X2RpciIgfCBzZWQgJ3N8XlwuW1xcL118fCdgCi0rICAjIEEgIi4uIiBmb3IgZWFjaCBkaXJlY3Rv cnkgaW4gJGFjX2Rpcl9zdWZmaXguCi0rICBhY190b3BfYnVpbGRkaXJfc3ViPWAkYXNfZWNobyAi JGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzfC9bXlxcL10qfC8uLnxnO3N8L3x8J2AKLSsgIGNhc2Ug JGFjX3RvcF9idWlsZGRpcl9zdWIgaW4KLSsgICIiKSBhY190b3BfYnVpbGRkaXJfc3ViPS4gYWNf dG9wX2J1aWxkX3ByZWZpeD0gOzsKLSsgICopICBhY190b3BfYnVpbGRfcHJlZml4PSRhY190b3Bf YnVpbGRkaXJfc3ViLyA7OwotKyAgZXNhYyA7OwotK2VzYWMKLSthY19hYnNfdG9wX2J1aWxkZGly PSRhY19wd2QKLSthY19hYnNfYnVpbGRkaXI9JGFjX3B3ZCRhY19kaXJfc3VmZml4Ci0rIyBmb3Ig YmFja3dhcmQgY29tcGF0aWJpbGl0eToKLSthY190b3BfYnVpbGRkaXI9JGFjX3RvcF9idWlsZF9w cmVmaXgKLSsKLStjYXNlICRzcmNkaXIgaW4KLSsgIC4pICAjIFdlIGFyZSBidWlsZGluZyBpbiBw bGFjZS4KLSsgICAgYWNfc3JjZGlyPS4KLSsgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxk ZGlyX3N1YgotKyAgICBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfcHdkIDs7Ci0rICBbXFwvXSogfCA/ OltcXC9dKiApICAjIEFic29sdXRlIG5hbWUuCi0rICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rp cl9zdWZmaXg7Ci0rICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpcgotKyAgICBhY19hYnNfdG9wX3Ny Y2Rpcj0kc3JjZGlyIDs7Ci0rICAqKSAjIFJlbGF0aXZlIG5hbWUuCi0rICAgIGFjX3NyY2Rpcj0k YWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIkYWNfZGlyX3N1ZmZpeAotKyAgICBhY190b3Bfc3Jj ZGlyPSRhY190b3BfYnVpbGRfcHJlZml4JHNyY2RpcgotKyAgICBhY19hYnNfdG9wX3NyY2Rpcj0k YWNfcHdkLyRzcmNkaXIgOzsKLStlc2FjCi0rYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX3RvcF9zcmNk aXIkYWNfZGlyX3N1ZmZpeAotKwotKyAgICBjZCAiJGFjX2RpciIgfHwgeyBhY19zdGF0dXM9JD87 IGNvbnRpbnVlOyB9Ci0rICAgICMgQ2hlY2sgZm9yIGd1ZXN0ZWQgY29uZmlndXJlLgotKyAgICBp ZiB0ZXN0IC1mICIkYWNfc3JjZGlyL2NvbmZpZ3VyZS5nbnUiOyB0aGVuCi0rICAgICAgZWNobyAm JgotKyAgICAgICRTSEVMTCAiJGFjX3NyY2Rpci9jb25maWd1cmUuZ251IiAtLWhlbHA9cmVjdXJz aXZlCi0rICAgIGVsaWYgdGVzdCAtZiAiJGFjX3NyY2Rpci9jb25maWd1cmUiOyB0aGVuCi0rICAg ICAgZWNobyAmJgotKyAgICAgICRTSEVMTCAiJGFjX3NyY2Rpci9jb25maWd1cmUiIC0taGVscD1y ZWN1cnNpdmUKLSsgICAgZWxzZQotKyAgICAgICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IG5v IGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gaXMgaW4gJGFjX2RpciIgPiYyCi0rICAgIGZpIHx8 IGFjX3N0YXR1cz0kPwotKyAgICBjZCAiJGFjX3B3ZCIgfHwgeyBhY19zdGF0dXM9JD87IGJyZWFr OyB9Ci0rICBkb25lCi0rZmkKLSsKLSt0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIiAmJiBleGl0ICRh Y19zdGF0dXMKLStpZiAkYWNfaW5pdF92ZXJzaW9uOyB0aGVuCi0rICBjYXQgPDxcX0FDRU9GCi0r U09DSSBjb25maWd1cmUgMy4wLjAKLStnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjMKLSsK LStDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTgsIDE5OTks IDIwMDAsIDIwMDEsCi0rMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLStUaGlzIGNvbmZpZ3VyZSBzY3JpcHQgaXMg ZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotK2dpdmVzIHVubGlt aXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4KLSsKLStD b3B5cmlnaHQgKEMpIDIwMDQtMjAwOSBNYWNpZWogU29iY3phayA8bXNvYmN6YWtAdXNlcnMuc291 cmNlZm9yZ2UubmV0PgotK19BQ0VPRgotKyAgZXhpdAotIGZpCi0rY2F0ID5jb25maWcubG9nIDw8 X0FDRU9GCi0rVGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21w aWxlcnMgd2hpbGUKLStydW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlkIGRlYnVnZ2luZyBpZiBjb25m aWd1cmUgbWFrZXMgYSBtaXN0YWtlLgotKwotK0l0IHdhcyBjcmVhdGVkIGJ5IFNPQ0kgJGFzX21l IDMuMC4wLCB3aGljaCB3YXMKLStnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjMuICBJbnZv Y2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKLSsKLSsgICQgJDAgJEAKLSsKLStfQUNFT0YKLStleGVj IDU+PmNvbmZpZy5sb2cKLSt7Ci0rY2F0IDw8X0FTVU5BTUUKLSsjIyAtLS0tLS0tLS0gIyMKLSsj IyBQbGF0Zm9ybS4gIyMKLSsjIyAtLS0tLS0tLS0gIyMKLSsKLStob3N0bmFtZSA9IGAoaG9zdG5h bWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYAotK3VuYW1lIC1tID0gYCh1bmFt ZSAtbSkgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotK3VuYW1lIC1yID0gYCh1bmFtZSAt cikgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotK3VuYW1lIC1zID0gYCh1bmFtZSAtcykg Mj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotK3VuYW1lIC12ID0gYCh1bmFtZSAtdikgMj4v ZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotKwotKy91c3IvYmluL3VuYW1lIC1wID0gYCgvdXNy L2Jpbi91bmFtZSAtcCkgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotKy9iaW4vdW5hbWUg LVggICAgID0gYCgvYmluL3VuYW1lIC1YKSAyPi9kZXYvbnVsbCAgICAgfHwgZWNobyB1bmtub3du YAotKwotKy9iaW4vYXJjaCAgICAgICAgICAgICAgPSBgKC9iaW4vYXJjaCkgMj4vZGV2L251bGwg ICAgICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLSsvdXNyL2Jpbi9hcmNoIC1rICAgICAgID0g YCgvdXNyL2Jpbi9hcmNoIC1rKSAyPi9kZXYvbnVsbCAgICAgICB8fCBlY2hvIHVua25vd25gCi0r L3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IGAoL3Vzci9jb252ZXgvZ2V0c3lzaW5mbykgMj4vZGV2 L251bGwgfHwgZWNobyB1bmtub3duYAotKy91c3IvYmluL2hvc3RpbmZvICAgICAgPSBgKC91c3Iv YmluL2hvc3RpbmZvKSAyPi9kZXYvbnVsbCAgICAgIHx8IGVjaG8gdW5rbm93bmAKLSsvYmluL21h Y2hpbmUgICAgICAgICAgID0gYCgvYmluL21hY2hpbmUpIDI+L2Rldi9udWxsICAgICAgICAgICB8 fCBlY2hvIHVua25vd25gCi0rL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IGAoL3Vzci9iaW4vb3Ns ZXZlbCkgMj4vZGV2L251bGwgICAgICAgfHwgZWNobyB1bmtub3duYAotKy9iaW4vdW5pdmVyc2Ug ICAgICAgICAgPSBgKC9iaW4vdW5pdmVyc2UpIDI+L2Rldi9udWxsICAgICAgICAgIHx8IGVjaG8g dW5rbm93bmAKLSsKLStfQVNVTkFNRQotKwotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T RVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMK LSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAkYXNfZWNobyAiUEFUSDogJGFz X2RpciIKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK30gPiY1Ci0rCi0rY2F0ID4mNSA8 PF9BQ0VPRgotKwotKwotKyMjIC0tLS0tLS0tLS0tICMjCi0rIyMgQ29yZSB0ZXN0cy4gIyMKLSsj IyAtLS0tLS0tLS0tLSAjIwotKwotK19BQ0VPRgotKwotKwotKyMgS2VlcCBhIHRyYWNlIG9mIHRo ZSBjb21tYW5kIGxpbmUuCi0rIyBTdHJpcCBvdXQgLS1uby1jcmVhdGUgYW5kIC0tbm8tcmVjdXJz aW9uIHNvIHRoZXkgZG8gbm90IHBpbGUgdXAuCi0rIyBTdHJpcCBvdXQgLS1zaWxlbnQgYmVjYXVz ZSB3ZSBkb24ndCB3YW50IHRvIHJlY29yZCBpdCBmb3IgZnV0dXJlIHJ1bnMuCi0rIyBBbHNvIHF1 b3RlIGFueSBhcmdzIGNvbnRhaW5pbmcgc2hlbGwgbWV0YS1jaGFyYWN0ZXJzLgotKyMgTWFrZSB0 d28gcGFzc2VzIHRvIGFsbG93IGZvciBwcm9wZXIgZHVwbGljYXRlLWFyZ3VtZW50IHN1cHByZXNz aW9uLgotK2FjX2NvbmZpZ3VyZV9hcmdzPQotK2FjX2NvbmZpZ3VyZV9hcmdzMD0KLSthY19jb25m aWd1cmVfYXJnczE9Ci0rYWNfbXVzdF9rZWVwX25leHQ9ZmFsc2UKLStmb3IgYWNfcGFzcyBpbiAx IDIKLStkbwotKyAgZm9yIGFjX2FyZwotKyAgZG8KLSsgICAgY2FzZSAkYWNfYXJnIGluCi0rICAg IC1uby1jcmVhdGUgfCAtLW5vLWMqIHwgLW4gfCAtbm8tcmVjdXJzaW9uIHwgLS1uby1yKikgY29u dGludWUgOzsKLSsgICAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwgLS1xdWkgfCAt LXF1IHwgLS1xIFwKLSsgICAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxl IHwgLS1zaWwpCi0rICAgICAgY29udGludWUgOzsKLSsgICAgKlwnKikKLSsgICAgICBhY19hcmc9 YCRhc19lY2hvICIkYWNfYXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OwotKyAgICBl c2FjCi0rICAgIGNhc2UgJGFjX3Bhc3MgaW4KLSsgICAgMSkgYWNfY29uZmlndXJlX2FyZ3MwPSIk YWNfY29uZmlndXJlX2FyZ3MwICckYWNfYXJnJyIgOzsKLSsgICAgMikKLSsgICAgICBhY19jb25m aWd1cmVfYXJnczE9IiRhY19jb25maWd1cmVfYXJnczEgJyRhY19hcmcnIgotKyAgICAgIGlmIHRl c3QgJGFjX211c3Rfa2VlcF9uZXh0ID0gdHJ1ZTsgdGhlbgotKwlhY19tdXN0X2tlZXBfbmV4dD1m YWxzZSAjIEdvdCB2YWx1ZSwgYmFjayB0byBub3JtYWwuCi0rICAgICAgZWxzZQotKwljYXNlICRh Y19hcmcgaW4KLSsJICAqPSogfCAtLWNvbmZpZy1jYWNoZSB8IC1DIHwgLWRpc2FibGUtKiB8IC0t ZGlzYWJsZS0qIFwKLSsJICB8IC1lbmFibGUtKiB8IC0tZW5hYmxlLSogfCAtZ2FzIHwgLS1nKiB8 IC1uZnAgfCAtLW5mKiBcCi0rCSAgfCAtcSB8IC1xdWlldCB8IC0tcSogfCAtc2lsZW50IHwgLS1z aWwqIHwgLXYgfCAtdmVyYiogXAotKwkgIHwgLXdpdGgtKiB8IC0td2l0aC0qIHwgLXdpdGhvdXQt KiB8IC0td2l0aG91dC0qIHwgLS14KQotKwkgICAgY2FzZSAiJGFjX2NvbmZpZ3VyZV9hcmdzMCAi IGluCi0rCSAgICAgICIkYWNfY29uZmlndXJlX2FyZ3MxIioiICckYWNfYXJnJyAiKiApIGNvbnRp bnVlIDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7OwotKwkgIC0qICkgYWNfbXVzdF9rZWVwX25leHQ9 dHJ1ZSA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBhY19jb25maWd1cmVfYXJncz0iJGFj X2NvbmZpZ3VyZV9hcmdzICckYWNfYXJnJyIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBkb25l Ci0rZG9uZQotKyRhc191bnNldCBhY19jb25maWd1cmVfYXJnczAgfHwgdGVzdCAiJHthY19jb25m aWd1cmVfYXJnczArc2V0fSIgIT0gc2V0IHx8IHsgYWNfY29uZmlndXJlX2FyZ3MwPTsgZXhwb3J0 IGFjX2NvbmZpZ3VyZV9hcmdzMDsgfQotKyRhc191bnNldCBhY19jb25maWd1cmVfYXJnczEgfHwg dGVzdCAiJHthY19jb25maWd1cmVfYXJnczErc2V0fSIgIT0gc2V0IHx8IHsgYWNfY29uZmlndXJl X2FyZ3MxPTsgZXhwb3J0IGFjX2NvbmZpZ3VyZV9hcmdzMTsgfQotKwotKyMgV2hlbiBpbnRlcnJ1 cHRlZCBvciBleGl0J2QsIGNsZWFudXAgdGVtcG9yYXJ5IGZpbGVzLCBhbmQgY29tcGxldGUKLSsj IGNvbmZpZy5sb2cuICBXZSByZW1vdmUgY29tbWVudHMgYmVjYXVzZSBhbnl3YXkgdGhlIHF1b3Rl cyBpbiB0aGVyZQotKyMgd291bGQgY2F1c2UgcHJvYmxlbXMgb3IgbG9vayB1Z2x5LgotKyMgV0FS TklORzogVXNlICdcJycgdG8gcmVwcmVzZW50IGFuIGFwb3N0cm9waGUgd2l0aGluIHRoZSB0cmFw LgotKyMgV0FSTklORzogRG8gbm90IHN0YXJ0IHRoZSB0cmFwIGNvZGUgd2l0aCBhIG5ld2xpbmUs IGR1ZSB0byBhIEZyZWVCU0QgNC4wIGJ1Zy4KLSt0cmFwICdleGl0X3N0YXR1cz0kPwotKyAgIyBT YXZlIGludG8gY29uZmlnLmxvZyBzb21lIGluZm9ybWF0aW9uIHRoYXQgbWlnaHQgaGVscCBpbiBk ZWJ1Z2dpbmcuCi0rICB7Ci0rICAgIGVjaG8KLSsKLSsgICAgY2F0IDw8XF9BU0JPWAotKyMjIC0t LS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBDYWNoZSB2YXJpYWJsZXMuICMjCi0rIyMgLS0tLS0tLS0t LS0tLS0tLSAjIwotK19BU0JPWAotKyAgICBlY2hvCi0rICAgICMgVGhlIGZvbGxvd2luZyB3YXkg b2Ygd3JpdGluZyB0aGUgY2FjaGUgbWlzaGFuZGxlcyBuZXdsaW5lcyBpbiB2YWx1ZXMsCi0rKAot KyAgZm9yIGFjX3ZhciBpbiBgKHNldCkgMj4mMSB8IHNlZCAtbiAnXCcncy9eXChbYS16QS1aX11b YS16QS1aMC05X10qXCk9LiovXDEvcCdcJydgOyBkbwotKyAgICBldmFsIGFjX3ZhbD1cJCRhY192 YXIKLSsgICAgY2FzZSAkYWNfdmFsIGluICMoCi0rICAgICoke2FzX25sfSopCi0rICAgICAgY2Fz ZSAkYWNfdmFyIGluICMoCi0rICAgICAgKl9jdl8qKSB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogV0FSTklORzogY2FjaGUgdmFyaWFibGUgJGFjX3ZhciBjb250YWlucyBhIG5ld2xpbmUiID4m NQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGNhY2hlIHZhcmlhYmxlICRhY192YXIgY29u dGFpbnMgYSBuZXdsaW5lIiA+JjI7fSA7OwotKyAgICAgIGVzYWMKLSsgICAgICBjYXNlICRhY192 YXIgaW4gIygKLSsgICAgICBfIHwgSUZTIHwgYXNfbmwpIDs7ICMoCi0rICAgICAgQkFTSF9BUkdW IHwgQkFTSF9TT1VSQ0UpIGV2YWwgJGFjX3Zhcj0gOzsgIygKLSsgICAgICAqKSAkYXNfdW5zZXQg JGFjX3ZhciA7OwotKyAgICAgIGVzYWMgOzsKLSsgICAgZXNhYwotKyAgZG9uZQotKyAgKHNldCkg Mj4mMSB8Ci0rICAgIGNhc2UgJGFzX25sYChhY19zcGFjZT0nXCcnICdcJyc7IHNldCkgMj4mMWAg aW4gIygKLSsgICAgKiR7YXNfbmx9YWNfc3BhY2U9XCAqKQotKyAgICAgIHNlZCAtbiBcCi0rCSJz LydcJycvJ1wnJ1xcXFwnXCcnJ1wnJy9nOwotKwkgIHMvXlxcKFtfJGFzX2NyX2FsbnVtXSpfY3Zf W18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9J1wnJ1xcMidcJycvcCIKLSsgICAgICA7 OyAjKAotKyAgICAqKQotKyAgICAgIHNlZCAtbiAiL15bXyRhc19jcl9hbG51bV0qX2N2X1tfJGFz X2NyX2FsbnVtXSo9L3AiCi0rICAgICAgOzsKLSsgICAgZXNhYyB8Ci0rICAgIHNvcnQKLSspCi0r ICAgIGVjaG8KLSsKLSsgICAgY2F0IDw8XF9BU0JPWAotKyMjIC0tLS0tLS0tLS0tLS0tLS0tICMj Ci0rIyMgT3V0cHV0IHZhcmlhYmxlcy4gIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwotK19B U0JPWAotKyAgICBlY2hvCi0rICAgIGZvciBhY192YXIgaW4gJGFjX3N1YnN0X3ZhcnMKLSsgICAg ZG8KLSsgICAgICBldmFsIGFjX3ZhbD1cJCRhY192YXIKLSsgICAgICBjYXNlICRhY192YWwgaW4K LSsgICAgICAqXCdcJycqKSBhY192YWw9YCRhc19lY2hvICIkYWNfdmFsIiB8IHNlZCAicy8nXCcn LydcJydcXFxcXFxcXCdcJycnXCcnL2ciYDs7Ci0rICAgICAgZXNhYwotKyAgICAgICRhc19lY2hv ICIkYWNfdmFyPSdcJyckYWNfdmFsJ1wnJyIKLSsgICAgZG9uZSB8IHNvcnQKLSsgICAgZWNobwot KwotKyAgICBpZiB0ZXN0IC1uICIkYWNfc3Vic3RfZmlsZXMiOyB0aGVuCi0rICAgICAgY2F0IDw8 XF9BU0JPWAotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBGaWxlIHN1YnN0aXR1dGlv bnMuICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotK19BU0JPWAotKyAgICAgIGVjaG8K LSsgICAgICBmb3IgYWNfdmFyIGluICRhY19zdWJzdF9maWxlcwotKyAgICAgIGRvCi0rCWV2YWwg YWNfdmFsPVwkJGFjX3ZhcgotKwljYXNlICRhY192YWwgaW4KLSsJKlwnXCcnKikgYWNfdmFsPWAk YXNfZWNobyAiJGFjX3ZhbCIgfCBzZWQgInMvJ1wnJy8nXCcnXFxcXFxcXFwnXCcnJ1wnJy9nImA7 OwotKwllc2FjCi0rCSRhc19lY2hvICIkYWNfdmFyPSdcJyckYWNfdmFsJ1wnJyIKLSsgICAgICBk b25lIHwgc29ydAotKyAgICAgIGVjaG8KLSsgICAgZmkKLSsKLSsgICAgaWYgdGVzdCAtcyBjb25m ZGVmcy5oOyB0aGVuCi0rICAgICAgY2F0IDw8XF9BU0JPWAotKyMjIC0tLS0tLS0tLS0tICMjCi0r IyMgY29uZmRlZnMuaC4gIyMKLSsjIyAtLS0tLS0tLS0tLSAjIwotK19BU0JPWAotKyAgICAgIGVj aG8KLSsgICAgICBjYXQgY29uZmRlZnMuaAotKyAgICAgIGVjaG8KLSsgICAgZmkKLSsgICAgdGVz dCAiJGFjX3NpZ25hbCIgIT0gMCAmJgotKyAgICAgICRhc19lY2hvICIkYXNfbWU6IGNhdWdodCBz aWduYWwgJGFjX3NpZ25hbCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTogZXhpdCAkZXhpdF9zdGF0 dXMiCi0rICB9ID4mNQotKyAgcm0gLWYgY29yZSAqLmNvcmUgY29yZS5jb25mdGVzdC4qICYmCi0r ICAgIHJtIC1mIC1yIGNvbmZ0ZXN0KiBjb25mZGVmcyogY29uZiQkKiAkYWNfY2xlYW5fZmlsZXMg JiYKLSsgICAgZXhpdCAkZXhpdF9zdGF0dXMKLSsnIDAKLStmb3IgYWNfc2lnbmFsIGluIDEgMiAx MyAxNTsgZG8KLSsgIHRyYXAgJ2FjX3NpZ25hbD0nJGFjX3NpZ25hbCc7IHsgKGV4aXQgMSk7IGV4 aXQgMTsgfScgJGFjX3NpZ25hbAotK2RvbmUKLSthY19zaWduYWw9MAotKwotKyMgY29uZmRlZnMu aCBhdm9pZHMgT1MgY29tbWFuZCBsaW5lIGxlbmd0aCBsaW1pdHMgdGhhdCBERUZTIGNhbiBleGNl ZWQuCi0rcm0gLWYgLXIgY29uZnRlc3QqIGNvbmZkZWZzLmgKLSsKLSsjIFByZWRlZmluZWQgcHJl cHJvY2Vzc29yIHZhcmlhYmxlcy4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2Rl ZmluZSBQQUNLQUdFX05BTUUgIiRQQUNLQUdFX05BTUUiCi0rX0FDRU9GCi0rCi0rCi0rY2F0ID4+ Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICIkUEFDS0FHRV9U QVJOQU1FIgotK19BQ0VPRgotKwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiJFBBQ0tBR0VfVkVSU0lPTiIKLStfQUNFT0YKLSsKLSsKLStj YXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBQQUNLQUdFX1NUUklORyAiJFBBQ0tB R0VfU1RSSU5HIgotK19BQ0VPRgotKwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIkUEFDS0FHRV9CVUdSRVBPUlQiCi0rX0FDRU9GCi0r Ci0rCi0rIyBMZXQgdGhlIHNpdGUgZmlsZSBzZWxlY3QgYW4gYWx0ZXJuYXRlIGNhY2hlIGZpbGUg aWYgaXQgd2FudHMgdG8uCi0rIyBQcmVmZXIgYW4gZXhwbGljaXRseSBzZWxlY3RlZCBmaWxlIHRv IGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgb25lcy4KLSthY19zaXRlX2ZpbGUxPU5PTkUKLSthY19z aXRlX2ZpbGUyPU5PTkUKLStpZiB0ZXN0IC1uICIkQ09ORklHX1NJVEUiOyB0aGVuCi0rICBhY19z aXRlX2ZpbGUxPSRDT05GSUdfU0lURQotK2VsaWYgdGVzdCAieCRwcmVmaXgiICE9IHhOT05FOyB0 aGVuCi0rICBhY19zaXRlX2ZpbGUxPSRwcmVmaXgvc2hhcmUvY29uZmlnLnNpdGUKLSsgIGFjX3Np dGVfZmlsZTI9JHByZWZpeC9ldGMvY29uZmlnLnNpdGUKLStlbHNlCi0rICBhY19zaXRlX2ZpbGUx PSRhY19kZWZhdWx0X3ByZWZpeC9zaGFyZS9jb25maWcuc2l0ZQotKyAgYWNfc2l0ZV9maWxlMj0k YWNfZGVmYXVsdF9wcmVmaXgvZXRjL2NvbmZpZy5zaXRlCi0rZmkKLStmb3IgYWNfc2l0ZV9maWxl IGluICIkYWNfc2l0ZV9maWxlMSIgIiRhY19zaXRlX2ZpbGUyIgotK2RvCi0rICB0ZXN0ICJ4JGFj X3NpdGVfZmlsZSIgPSB4Tk9ORSAmJiBjb250aW51ZQotKyAgaWYgdGVzdCAtciAiJGFjX3NpdGVf ZmlsZSI7IHRoZW4KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGxvYWRpbmcgc2l0 ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogbG9hZGluZyBz aXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIiA+JjY7fQotKyAgICBzZWQgJ3MvXi98IC8nICIkYWNf c2l0ZV9maWxlIiA+JjUKLSsgICAgLiAiJGFjX3NpdGVfZmlsZSIKLSsgIGZpCi0rZG9uZQotKwot K2lmIHRlc3QgLXIgIiRjYWNoZV9maWxlIjsgdGhlbgotKyAgIyBTb21lIHZlcnNpb25zIG9mIGJh c2ggd2lsbCBmYWlsIHRvIHNvdXJjZSAvZGV2L251bGwgKHNwZWNpYWwKLSsgICMgZmlsZXMgYWN0 dWFsbHkpLCBzbyB3ZSBhdm9pZCBkb2luZyB0aGF0LgotKyAgaWYgdGVzdCAtZiAiJGNhY2hlX2Zp bGUiOyB0aGVuCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBsb2FkaW5nIGNhY2hl ICRjYWNoZV9maWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBsb2FkaW5nIGNhY2hlICRjYWNo ZV9maWxlIiA+JjY7fQotKyAgICBjYXNlICRjYWNoZV9maWxlIGluCi0rICAgICAgW1xcL10qIHwg PzpbXFwvXSogKSAuICIkY2FjaGVfZmlsZSI7OwotKyAgICAgICopICAgICAgICAgICAgICAgICAg ICAgIC4gIi4vJGNhY2hlX2ZpbGUiOzsKLSsgICAgZXNhYwotKyAgZmkKLStlbHNlCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY3JlYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNQot KyRhc19lY2hvICIkYXNfbWU6IGNyZWF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjY7fQotKyAg PiRjYWNoZV9maWxlCi0rZmkKLSsKLSsjIENoZWNrIHRoYXQgdGhlIHByZWNpb3VzIHZhcmlhYmxl cyBzYXZlZCBpbiB0aGUgY2FjaGUgaGF2ZSBrZXB0IHRoZSBzYW1lCi0rIyB2YWx1ZS4KLSthY19j YWNoZV9jb3JydXB0ZWQ9ZmFsc2UKLStmb3IgYWNfdmFyIGluICRhY19wcmVjaW91c192YXJzOyBk bwotKyAgZXZhbCBhY19vbGRfc2V0PVwkYWNfY3ZfZW52XyR7YWNfdmFyfV9zZXQKLSsgIGV2YWwg YWNfbmV3X3NldD1cJGFjX2Vudl8ke2FjX3Zhcn1fc2V0Ci0rICBldmFsIGFjX29sZF92YWw9XCRh Y19jdl9lbnZfJHthY192YXJ9X3ZhbHVlCi0rICBldmFsIGFjX25ld192YWw9XCRhY19lbnZfJHth Y192YXJ9X3ZhbHVlCi0rICBjYXNlICRhY19vbGRfc2V0LCRhY19uZXdfc2V0IGluCi0rICAgIHNl dCwpCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBcYCRhY192YXIn IHdhcyBzZXQgdG8gXGAkYWNfb2xkX3ZhbCcgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiY1Ci0rJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIHNldCB0byBcYCRhY19vbGRfdmFs JyBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjI7fQotKyAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06 IDs7Ci0rICAgICxzZXQpCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBcYCRhY192YXInIHdhcyBub3Qgc2V0IGluIHRoZSBwcmV2aW91cyBydW4iID4mNQotKyRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiBcYCRhY192YXInIHdhcyBub3Qgc2V0IGluIHRoZSBwcmV2aW91 cyBydW4iID4mMjt9Ci0rICAgICAgYWNfY2FjaGVfY29ycnVwdGVkPTogOzsKLSsgICAgLCk7Owot KyAgICAqKQotKyAgICAgIGlmIHRlc3QgIngkYWNfb2xkX3ZhbCIgIT0gIngkYWNfbmV3X3ZhbCI7 IHRoZW4KLSsJIyBkaWZmZXJlbmNlcyBpbiB3aGl0ZXNwYWNlIGRvIG5vdCBsZWFkIHRvIGZhaWx1 cmUuCi0rCWFjX29sZF92YWxfdz1gZWNobyB4ICRhY19vbGRfdmFsYAotKwlhY19uZXdfdmFsX3c9 YGVjaG8geCAkYWNfbmV3X3ZhbGAKLSsJaWYgdGVzdCAiJGFjX29sZF92YWxfdyIgIT0gIiRhY19u ZXdfdmFsX3ciOyB0aGVuCi0rCSAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBc YCRhY192YXInIGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgcHJl dmlvdXMgcnVuOiIgPiYyO30KLSsJICBhY19jYWNoZV9jb3JydXB0ZWQ9OgotKwllbHNlCi0rCSAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHdhcm5pbmc6IGlnbm9yaW5nIHdoaXRlc3BhY2Ug Y2hhbmdlcyBpbiBcYCRhY192YXInIHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiB3YXJuaW5nOiBpZ25vcmluZyB3aGl0ZXNwYWNlIGNoYW5nZXMgaW4gXGAk YWNfdmFyJyBzaW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiYyO30KLSsJICBldmFsICRhY192YXI9 XCRhY19vbGRfdmFsCi0rCWZpCi0rCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiAgIGZvcm1l ciB2YWx1ZTogIFxgJGFjX29sZF92YWwnIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiAgIGZvcm1l ciB2YWx1ZTogIFxgJGFjX29sZF92YWwnIiA+JjI7fQotKwl7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogICBjdXJyZW50IHZhbHVlOiBcYCRhY19uZXdfdmFsJyIgPiY1Ci0rJGFzX2VjaG8gIiRh c19tZTogICBjdXJyZW50IHZhbHVlOiBcYCRhY19uZXdfdmFsJyIgPiYyO30KLSsgICAgICBmaTs7 Ci0rICBlc2FjCi0rICAjIFBhc3MgcHJlY2lvdXMgdmFyaWFibGVzIHRvIGNvbmZpZy5zdGF0dXMu Ci0rICBpZiB0ZXN0ICIkYWNfbmV3X3NldCIgPSBzZXQ7IHRoZW4KLSsgICAgY2FzZSAkYWNfbmV3 X3ZhbCBpbgotKyAgICAqXCcqKSBhY19hcmc9JGFjX3Zhcj1gJGFzX2VjaG8gIiRhY19uZXdfdmFs IiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OwotKyAgICAqKSBhY19hcmc9JGFjX3Zhcj0k YWNfbmV3X3ZhbCA7OwotKyAgICBlc2FjCi0rICAgIGNhc2UgIiAkYWNfY29uZmlndXJlX2FyZ3Mg IiBpbgotKyAgICAgICoiICckYWNfYXJnJyAiKikgOzsgIyBBdm9pZCBkdXBzLiAgVXNlIG9mIHF1 b3RlcyBlbnN1cmVzIGFjY3VyYWN5LgotKyAgICAgICopIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNf Y29uZmlndXJlX2FyZ3MgJyRhY19hcmcnIiA7OwotKyAgICBlc2FjCi0rICBmaQotK2RvbmUKLStp ZiAkYWNfY2FjaGVfY29ycnVwdGVkOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjog aW4gXGAkYWNfcHdkJzoiID4mMjt9Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJy b3I6IGNoYW5nZXMgaW4gdGhlIGVudmlyb25tZW50IGNhbiBjb21wcm9taXNlIHRoZSBidWlsZCIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNoYW5nZXMgaW4gdGhlIGVudmlyb25tZW50 IGNhbiBjb21wcm9taXNlIHRoZSBidWlsZCIgPiYyO30KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBydW4gXGBtYWtlIGRpc3RjbGVhbicgYW5kL29yIFxgcm0gJGNhY2hl X2ZpbGUnIGFuZCBzdGFydCBvdmVyIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogcnVu IFxgbWFrZSBkaXN0Y2xlYW4nIGFuZC9vciBcYHJtICRjYWNoZV9maWxlJyBhbmQgc3RhcnQgb3Zl ciIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSck Q0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0n JENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGls ZXJfZ251Ci0rCi0rCi0rYWNfY29uZmlnX2hlYWRlcnM9IiRhY19jb25maWdfaGVhZGVycyBzb2Np L2NvbmZpZy5oIgotKwotKwotK2FjX2F1eF9kaXI9Ci0rZm9yIGFjX2RpciBpbiBjb25maWcgIiRz cmNkaXIiL2NvbmZpZzsgZG8KLSsgIGlmIHRlc3QgLWYgIiRhY19kaXIvaW5zdGFsbC1zaCI7IHRo ZW4KLSsgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0rICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhf ZGlyL2luc3RhbGwtc2ggLWMiCi0rICAgIGJyZWFrCi0rICBlbGlmIHRlc3QgLWYgIiRhY19kaXIv aW5zdGFsbC5zaCI7IHRoZW4KLSsgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0rICAgIGFjX2luc3Rh bGxfc2g9IiRhY19hdXhfZGlyL2luc3RhbGwuc2ggLWMiCi0rICAgIGJyZWFrCi0rICBlbGlmIHRl c3QgLWYgIiRhY19kaXIvc2h0b29sIjsgdGhlbgotKyAgICBhY19hdXhfZGlyPSRhY19kaXIKLSsg ICAgYWNfaW5zdGFsbF9zaD0iJGFjX2F1eF9kaXIvc2h0b29sIGluc3RhbGwgLWMiCi0rICAgIGJy ZWFrCi0rICBmaQotK2RvbmUKLStpZiB0ZXN0IC16ICIkYWNfYXV4X2RpciI7IHRoZW4KLSsgIHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnN0YWxsLXNo IG9yIGluc3RhbGwuc2ggaW4gY29uZmlnIFwiJHNyY2RpclwiL2NvbmZpZyIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGluc3RhbGwtc2ggb3IgaW5zdGFsbC5zaCBp biBjb25maWcgXCIkc3JjZGlyXCIvY29uZmlnIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQotK2ZpCi0rCi0rIyBUaGVzZSB0aHJlZSB2YXJpYWJsZXMgYXJlIHVuZG9jdW1lbnRl ZCBhbmQgdW5zdXBwb3J0ZWQsCi0rIyBhbmQgYXJlIGludGVuZGVkIHRvIGJlIHdpdGhkcmF3biBp biBhIGZ1dHVyZSBBdXRvY29uZiByZWxlYXNlLgotKyMgVGhleSBjYW4gY2F1c2Ugc2VyaW91cyBw cm9ibGVtcyBpZiBhIGJ1aWxkZXIncyBzb3VyY2UgdHJlZSBpcyBpbiBhIGRpcmVjdG9yeQotKyMg d2hvc2UgZnVsbCBuYW1lIGNvbnRhaW5zIHVudXN1YWwgY2hhcmFjdGVycy4KLSthY19jb25maWdf Z3Vlc3M9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuZ3Vlc3MiICAjIFBsZWFzZSBkb24ndCB1 c2UgdGhpcyB2YXIuCi0rYWNfY29uZmlnX3N1Yj0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5z dWIiICAjIFBsZWFzZSBkb24ndCB1c2UgdGhpcyB2YXIuCi0rYWNfY29uZmlndXJlPSIkU0hFTEwg JGFjX2F1eF9kaXIvY29uZmlndXJlIiAgIyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFyLgotKwot KwotK2FtX19hcGlfdmVyc2lvbj0nMS4xMScKLSsKLSsjIEZpbmQgYSBnb29kIGluc3RhbGwgcHJv Z3JhbS4gIFdlIHByZWZlciBhIEMgcHJvZ3JhbSAoZmFzdGVyKSwKLSsjIHNvIG9uZSBzY3JpcHQg aXMgYXMgZ29vZCBhcyBhbm90aGVyLiAgQnV0IGF2b2lkIHRoZSBicm9rZW4gb3IKLSsjIGluY29t cGF0aWJsZSB2ZXJzaW9uczoKLSsjIFN5c1YgL2V0Yy9pbnN0YWxsLCAvdXNyL3NiaW4vaW5zdGFs bAotKyMgU3VuT1MgL3Vzci9ldGMvaW5zdGFsbAotKyMgSVJJWCAvc2Jpbi9pbnN0YWxsCi0rIyBB SVggL2Jpbi9pbnN0YWxsCi0rIyBBbWlnYU9TIC9DL2luc3RhbGwsIHdoaWNoIGluc3RhbGxzIGJv b3RibG9ja3Mgb24gZmxvcHB5IGRpc2NzCi0rIyBBSVggNCAvdXNyL2Jpbi9pbnN0YWxsYnNkLCB3 aGljaCBkb2Vzbid0IHdvcmsgd2l0aG91dCBhIC1nIGZsYWcKLSsjIEFGUyAvdXNyL2Fmc3dzL2Jp bi9pbnN0YWxsLCB3aGljaCBtaXNoYW5kbGVzIG5vbmV4aXN0ZW50IGFyZ3MKLSsjIFNWUjQgL3Vz ci91Y2IvaW5zdGFsbCwgd2hpY2ggdHJpZXMgdG8gdXNlIHRoZSBub25leGlzdGVudCBncm91cCAi c3RhZmYiCi0rIyBPUy8yJ3Mgc3lzdGVtIGluc3RhbGwsIHdoaWNoIGhhcyBhIGNvbXBsZXRlbHkg ZGlmZmVyZW50IHNlbWFudGljCi0rIyAuL2luc3RhbGwsIHdoaWNoIGNhbiBiZSBlcnJvbmVvdXNs eSBjcmVhdGVkIGJ5IG1ha2UgZnJvbSAuL2luc3RhbGwuc2guCi0rIyBSZWplY3QgaW5zdGFsbCBw cm9ncmFtcyB0aGF0IGNhbm5vdCBpbnN0YWxsIG11bHRpcGxlIGZpbGVzLgotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4u ICIgPiY2OyB9Ci0raWYgdGVzdCAteiAiJElOU1RBTEwiOyB0aGVuCi0raWYgdGVzdCAiJHthY19j dl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgot K2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAt eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICMgQWNjb3VudCBmb3IgcGVvcGxlIHdobyBwdXQg dHJhaWxpbmcgc2xhc2hlcyBpbiBQQVRIIGVsZW1lbnRzLgotK2Nhc2UgJGFzX2Rpci8gaW4KLSsg IC4vIHwgLi8vIHwgL2NDLyogfCBcCi0rICAvZXRjLyogfCAvdXNyL3NiaW4vKiB8IC91c3IvZXRj LyogfCAvc2Jpbi8qIHwgL3Vzci9hZnN3cy9iaW4vKiB8IFwKLSsgID86XFwvb3MyXFwvaW5zdGFs bFxcLyogfCA/OlxcL09TMlxcL0lOU1RBTExcXC8qIHwgXAotKyAgL3Vzci91Y2IvKiApIDs7Ci0r ICAqKQotKyAgICAjIE9TRjEgYW5kIFNDTyBPRFQgMy4wIGhhdmUgdGhlaXIgb3duIG5hbWVzIGZv ciBpbnN0YWxsLgotKyAgICAjIERvbid0IHVzZSBpbnN0YWxsYnNkIGZyb20gT1NGIHNpbmNlIGl0 IGluc3RhbGxzIHN0dWZmIGFzIHJvb3QKLSsgICAgIyBieSBkZWZhdWx0LgotKyAgICBmb3IgYWNf cHJvZyBpbiBnaW5zdGFsbCBzY29pbnN0IGluc3RhbGw7IGRvCi0rICAgICAgZm9yIGFjX2V4ZWNf ZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rCWlmIHsgdGVzdCAtZiAi JGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNf cHJvZyRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsJICBpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFs bCAmJgotKwkgICAgZ3JlcCBkc3Btc2cgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiID4v ZGV2L251bGwgMj4mMTsgdGhlbgotKwkgICAgIyBBSVggaW5zdGFsbC4gIEl0IGhhcyBhbiBpbmNv bXBhdGlibGUgY2FsbGluZyBjb252ZW50aW9uLgotKwkgICAgOgotKwkgIGVsaWYgdGVzdCAkYWNf cHJvZyA9IGluc3RhbGwgJiYKLSsJICAgIGdyZXAgcHdwbHVzICIkYXNfZGlyLyRhY19wcm9nJGFj X2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJICAgICMgcHJvZ3JhbS1zcGVjaWZp YyBpbnN0YWxsIHNjcmlwdCB1c2VkIGJ5IEhQIHB3cGx1cy0tZG9uJ3QgdXNlLgotKwkgICAgOgot KwkgIGVsc2UKLSsJICAgIHJtIC1yZiBjb25mdGVzdC5vbmUgY29uZnRlc3QudHdvIGNvbmZ0ZXN0 LmRpcgotKwkgICAgZWNobyBvbmUgPiBjb25mdGVzdC5vbmUKLSsJICAgIGVjaG8gdHdvID4gY29u ZnRlc3QudHdvCi0rCSAgICBta2RpciBjb25mdGVzdC5kaXIKLSsJICAgIGlmICIkYXNfZGlyLyRh Y19wcm9nJGFjX2V4ZWNfZXh0IiAtYyBjb25mdGVzdC5vbmUgY29uZnRlc3QudHdvICJgcHdkYC9j b25mdGVzdC5kaXIiICYmCi0rCSAgICAgIHRlc3QgLXMgY29uZnRlc3Qub25lICYmIHRlc3QgLXMg Y29uZnRlc3QudHdvICYmCi0rCSAgICAgIHRlc3QgLXMgY29uZnRlc3QuZGlyL2NvbmZ0ZXN0Lm9u ZSAmJgotKwkgICAgICB0ZXN0IC1zIGNvbmZ0ZXN0LmRpci9jb25mdGVzdC50d28KLSsJICAgIHRo ZW4KLSsJICAgICAgYWNfY3ZfcGF0aF9pbnN0YWxsPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNf ZXh0IC1jIgotKwkgICAgICBicmVhayAzCi0rCSAgICBmaQotKwkgIGZpCi0rCWZpCi0rICAgICAg ZG9uZQotKyAgICBkb25lCi0rICAgIDs7Ci0rZXNhYwotKwotK2RvbmUKLStJRlM9JGFzX3NhdmVf SUZTCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gY29uZnRlc3QuZGlyCi0r Ci0rZmkKLSsgIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVu Ci0rICAgIElOU1RBTEw9JGFjX2N2X3BhdGhfaW5zdGFsbAotKyAgZWxzZQotKyAgICAjIEFzIGEg bGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQuICBEb24ndCBjYWNoZSBhCi0r ICAgICMgdmFsdWUgZm9yIElOU1RBTEwgd2l0aGluIGEgc291cmNlIGRpcmVjdG9yeSwgYmVjYXVz ZSB0aGF0IHdpbGwKLSsgICAgIyBicmVhayBvdGhlciBwYWNrYWdlcyB1c2luZyB0aGUgY2FjaGUg aWYgdGhhdCBkaXJlY3RvcnkgaXMKLSsgICAgIyByZW1vdmVkLCBvciBpZiB0aGUgdmFsdWUgaXMg YSByZWxhdGl2ZSBuYW1lLgotKyAgICBJTlNUQUxMPSRhY19pbnN0YWxsX3NoCi0rICBmaQotK2Zp Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJElOU1RBTEwiID4mNQotKyRh c19lY2hvICIkSU5TVEFMTCIgPiY2OyB9Ci0rCi0rIyBVc2UgdGVzdCAteiBiZWNhdXNlIFN1bk9T NCBzaCBtaXNoYW5kbGVzIGJyYWNlcyBpbiAke3Zhci12YWx9LgotKyMgSXQgdGhpbmtzIHRoZSBm aXJzdCBjbG9zZSBicmFjZSBlbmRzIHRoZSB2YXJpYWJsZSBzdWJzdGl0dXRpb24uCi0rdGVzdCAt eiAiJElOU1RBTExfUFJPR1JBTSIgJiYgSU5TVEFMTF9QUk9HUkFNPScke0lOU1RBTEx9JwotKwot K3Rlc3QgLXogIiRJTlNUQUxMX1NDUklQVCIgJiYgSU5TVEFMTF9TQ1JJUFQ9JyR7SU5TVEFMTH0n Ci0rCi0rdGVzdCAteiAiJElOU1RBTExfREFUQSIgJiYgSU5TVEFMTF9EQVRBPScke0lOU1RBTEx9 IC1tIDY0NCcKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhl ciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3 aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuLi4gIiA+JjY7IH0KLSsjIEp1c3QgaW4g Y2FzZQotK3NsZWVwIDEKLStlY2hvIHRpbWVzdGFtcCA+IGNvbmZ0ZXN0LmZpbGUKLSsjIFJlamVj dCB1bnNhZmUgY2hhcmFjdGVycyBpbiAkc3JjZGlyIG9yIHRoZSBhYnNvbHV0ZSB3b3JraW5nIGRp cmVjdG9yeQotKyMgbmFtZS4gIEFjY2VwdCBzcGFjZSBhbmQgdGFiIG9ubHkgaW4gdGhlIGxhdHRl ci4KLSthbV9sZj0nCi0rJwotK2Nhc2UgYHB3ZGAgaW4KLSsgICpbXFxcIlwjXCRcJlwnXGAkYW1f bGZdKikKLSsgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHVuc2FmZSBh YnNvbHV0ZSB3b3JraW5nIGRpcmVjdG9yeSBuYW1lIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogdW5zYWZlIGFic29sdXRlIHdvcmtpbmcgZGlyZWN0b3J5IG5hbWUiID4mMjt9Ci0rICAg eyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKLStlc2FjCi0rY2FzZSAkc3JjZGlyIGluCi0rICAq W1xcXCJcI1wkXCZcJ1xgJGFtX2xmXCBcCV0qKQotKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogdW5zYWZlIHNyY2RpciB2YWx1ZTogXGAkc3JjZGlyJyIgPiY1Ci0rJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IHVuc2FmZSBzcmNkaXIgdmFsdWU6IFxgJHNyY2RpciciID4m Mjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKLStlc2FjCi0rCi0rIyBEbyBgc2V0 JyBpbiBhIHN1YnNoZWxsIHNvIHdlIGRvbid0IGNsb2JiZXIgdGhlIGN1cnJlbnQgc2hlbGwncwot KyMgYXJndW1lbnRzLiAgTXVzdCB0cnkgLUwgZmlyc3QgaW4gY2FzZSBjb25maWd1cmUgaXMgYWN0 dWFsbHkgYQotKyMgc3ltbGluazsgc29tZSBzeXN0ZW1zIHBsYXkgd2VpcmQgZ2FtZXMgd2l0aCB0 aGUgbW9kIHRpbWUgb2Ygc3ltbGlua3MKLSsjIChlZyBGcmVlQlNEIHJldHVybnMgdGhlIG1vZCB0 aW1lIG9mIHRoZSBzeW1saW5rJ3MgY29udGFpbmluZwotKyMgZGlyZWN0b3J5KS4KLStpZiAoCi0r ICAgc2V0IFggYGxzIC1MdCAiJHNyY2Rpci9jb25maWd1cmUiIGNvbmZ0ZXN0LmZpbGUgMj4gL2Rl di9udWxsYAotKyAgIGlmIHRlc3QgIiQqIiA9ICJYIjsgdGhlbgotKyAgICAgICMgLUwgZGlkbid0 IHdvcmsuCi0rICAgICAgc2V0IFggYGxzIC10ICIkc3JjZGlyL2NvbmZpZ3VyZSIgY29uZnRlc3Qu ZmlsZWAKLSsgICBmaQotKyAgIHJtIC1mIGNvbmZ0ZXN0LmZpbGUKLSsgICBpZiB0ZXN0ICIkKiIg IT0gIlggJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3QuZmlsZSIgXAotKyAgICAgICYmIHRlc3Qg IiQqIiAhPSAiWCBjb25mdGVzdC5maWxlICRzcmNkaXIvY29uZmlndXJlIjsgdGhlbgotKwotKyAg ICAgICMgSWYgbmVpdGhlciBtYXRjaGVkLCB0aGVuIHdlIGhhdmUgYSBicm9rZW4gbHMuICBUaGlz IGNhbiBoYXBwZW4KLSsgICAgICAjIGlmLCBmb3IgaW5zdGFuY2UsIENPTkZJR19TSEVMTCBpcyBi YXNoIGFuZCBpdCBpbmhlcml0cyBhCi0rICAgICAgIyBicm9rZW4gbHMgYWxpYXMgZnJvbSB0aGUg ZW52aXJvbm1lbnQuICBUaGlzIGhhcyBhY3R1YWxseQotKyAgICAgICMgaGFwcGVuZWQuICBTdWNo IGEgc3lzdGVtIGNvdWxkIG5vdCBiZSBjb25zaWRlcmVkICJzYW5lIi4KLSsgICAgICB7IHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbHMgLXQgYXBwZWFycyB0byBmYWlsLiAgTWFr ZSBzdXJlIHRoZXJlIGlzIG5vdCBhIGJyb2tlbgotK2FsaWFzIGluIHlvdXIgZW52aXJvbm1lbnQi ID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBscyAtdCBhcHBlYXJzIHRvIGZhaWwuICBN YWtlIHN1cmUgdGhlcmUgaXMgbm90IGEgYnJva2VuCi0rYWxpYXMgaW4geW91ciBlbnZpcm9ubWVu dCIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgICBmaQotKwotKyAgIHRl c3QgIiQyIiA9IGNvbmZ0ZXN0LmZpbGUKLSsgICApCi0rdGhlbgotKyAgICMgT2suCi0rICAgOgot K2Vsc2UKLSsgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbmV3bHkgY3Jl YXRlZCBmaWxlIGlzIG9sZGVyIHRoYW4gZGlzdHJpYnV0ZWQgZmlsZXMhCi0rQ2hlY2sgeW91ciBz eXN0ZW0gY2xvY2siID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBuZXdseSBjcmVhdGVk IGZpbGUgaXMgb2xkZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxlcyEKLStDaGVjayB5b3VyIHN5c3Rl bSBjbG9jayIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIg PiY2OyB9Ci0rdGVzdCAiJHByb2dyYW1fcHJlZml4IiAhPSBOT05FICYmCi0rICBwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lPSJzJl4mJHByb2dyYW1fcHJlZml4JjskcHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZSIKLSsjIFVzZSBhIGRvdWJsZSAkIHNvIG1ha2UgaWdub3JlcyBpdC4KLSt0ZXN0ICIkcHJvZ3Jh bV9zdWZmaXgiICE9IE5PTkUgJiYKLSsgIHByb2dyYW1fdHJhbnNmb3JtX25hbWU9InMmXCQmJHBy b2dyYW1fc3VmZml4JjskcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSIKLSsjIERvdWJsZSBhbnkgXCBv ciAkLgotKyMgQnkgZGVmYXVsdCB3YXMgYHMseCx4JywgcmVtb3ZlIGl0IGlmIHVzZWxlc3MuCi0r YWNfc2NyaXB0PSdzL1tcXCRdLyYmL2c7cy87cyx4LHgsJC8vJwotK3Byb2dyYW1fdHJhbnNmb3Jt X25hbWU9YCRhc19lY2hvICIkcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSIgfCBzZWQgIiRhY19zY3Jp cHQiYAotKwotKyMgZXhwYW5kICRhY19hdXhfZGlyIHRvIGFuIGFic29sdXRlIHBhdGgKLSthbV9h dXhfZGlyPWBjZCAkYWNfYXV4X2RpciAmJiBwd2RgCi0rCi0raWYgdGVzdCB4IiR7TUlTU0lORytz ZXR9IiAhPSB4c2V0OyB0aGVuCi0rICBjYXNlICRhbV9hdXhfZGlyIGluCi0rICAqXCAqIHwgKlwJ KikKLSsgICAgTUlTU0lORz0iXCR7U0hFTEx9IFwiJGFtX2F1eF9kaXIvbWlzc2luZ1wiIiA7Owot KyAgKikKLSsgICAgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL21pc3NpbmciIDs7Ci0r ICBlc2FjCi0rZmkKLSsjIFVzZSBldmFsIHRvIGV4cGFuZCAkU0hFTEwKLStpZiBldmFsICIkTUlT U0lORyAtLXJ1biB0cnVlIjsgdGhlbgotKyAgYW1fbWlzc2luZ19ydW49IiRNSVNTSU5HIC0tcnVu ICIKLStlbHNlCi0rICBhbV9taXNzaW5nX3J1bj0KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBXQVJOSU5HOiBcYG1pc3NpbmcnIHNjcmlwdCBpcyB0b28gb2xkIG9yIG1pc3NpbmciID4m NQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IFxgbWlzc2luZycgc2NyaXB0IGlzIHRvbyBv bGQgb3IgbWlzc2luZyIgPiYyO30KLStmaQotKwotK2lmIHRlc3QgeCIke2luc3RhbGxfc2h9IiAh PSB4c2V0OyB0aGVuCi0rICBjYXNlICRhbV9hdXhfZGlyIGluCi0rICAqXCAqIHwgKlwJKikKLSsg ICAgaW5zdGFsbF9zaD0iXCR7U0hFTEx9ICckYW1fYXV4X2Rpci9pbnN0YWxsLXNoJyIgOzsKLSsg ICopCi0rICAgIGluc3RhbGxfc2g9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9pbnN0YWxsLXNoIgot KyAgZXNhYwotK2ZpCi0rCi0rIyBJbnN0YWxsZWQgYmluYXJpZXMgYXJlIHVzdWFsbHkgc3RyaXBw ZWQgdXNpbmcgYHN0cmlwJyB3aGVuIHRoZSB1c2VyCi0rIyBydW4gYG1ha2UgaW5zdGFsbC1zdHJp cCcuICBIb3dldmVyIGBzdHJpcCcgbWlnaHQgbm90IGJlIHRoZSByaWdodAotKyMgdG9vbCB0byB1 c2UgaW4gY3Jvc3MtY29tcGlsYXRpb24gZW52aXJvbm1lbnRzLCB0aGVyZWZvcmUgQXV0b21ha2UK LSsjIHdpbGwgaG9ub3IgdGhlIGBTVFJJUCcgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gb3ZlcnJ1 bGUgdGhpcyBwcm9ncmFtLgotK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciICE9IG5vOyB0aGVu Ci0rICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBw cm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXN0cmlw OyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAk YWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2 OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX1NUUklQK3NldH0iID0gc2V0OyB0aGVuCi0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRTVFJJUCI7 IHRoZW4KLSsgIGFjX2N2X3Byb2dfU1RSSVA9IiRTVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJp ZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRl c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19TVFJJUD0iJHthY190b29sX3ByZWZpeH1z dHJpcCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQot K0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rU1RSSVA9JGFjX2N2X3Byb2dfU1RSSVAK LStpZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkU1RSSVAiID4mNQotKyRhc19lY2hvICIkU1RSSVAiID4mNjsgfQotK2Vsc2UK LSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNo byAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rZmkKLStpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19T VFJJUCI7IHRoZW4KLSsgIGFjX2N0X1NUUklQPSRTVFJJUAotKyAgIyBFeHRyYWN0IHRoZSBmaXJz dCB3b3JkIG9mICJzdHJpcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3Mu Ci0rc2V0IGR1bW15IHN0cmlwOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y ICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X1NUUklQ K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIGlmIHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3Rf U1RSSVA9IiRhY19jdF9TVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0r ZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGly IGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIi ICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0 ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4K LSsgICAgYWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0ic3RyaXAiCi0rICAgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAg IGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkK LStmaQotK2FjX2N0X1NUUklQPSRhY19jdl9wcm9nX2FjX2N0X1NUUklQCi0raWYgdGVzdCAtbiAi JGFjX2N0X1NUUklQIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGFjX2N0X1NUUklQIiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X1NUUklQIiA+JjY7IH0KLStl bHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFz X2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9TVFJJUCIgPSB4 OyB0aGVuCi0rICAgIFNUUklQPSI6IgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21waWxp bmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlw bGV0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBu b3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVz IDs7Ci0rZXNhYwotKyAgICBTVFJJUD0kYWNfY3RfU1RSSVAKLSsgIGZpCi0rZWxzZQotKyAgU1RS SVA9IiRhY19jdl9wcm9nX1NUUklQIgotK2ZpCi0rCi0rZmkKLStJTlNUQUxMX1NUUklQX1BST0dS QU09IlwkKGluc3RhbGxfc2gpIC1jIC1zIgotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgYSB0aHJlYWQtc2FmZSBta2RpciAtcCIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIGEgdGhyZWFkLXNhZmUgbWtkaXIgLXAuLi4gIiA+JjY7IH0KLStpZiB0ZXN0 IC16ICIkTUtESVJfUCI7IHRoZW4KLSsgIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9ta2RpcitzZXR9 IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBh c19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFU SCRQQVRIX1NFUEFSQVRPUi9vcHQvc2Z3L2JpbgotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0r ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX3Byb2cgaW4gbWtkaXIg Z21rZGlyOyBkbwotKwkgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVu c2lvbnM7IGRvCi0rCSAgIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIg JiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCI7IH0gfHwgY29udGlu dWUKLSsJICAgY2FzZSBgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiIC0tdmVyc2lvbiAy PiYxYCBpbiAjKAotKwkgICAgICdta2RpciAoR05VIGNvcmV1dGlscykgJyogfCBcCi0rCSAgICAg J21rZGlyIChjb3JldXRpbHMpICcqIHwgXAotKwkgICAgICdta2RpciAoZmlsZXV0aWxzKSAnNC4x KikKLSsJICAgICAgIGFjX2N2X3BhdGhfbWtkaXI9JGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4 dAotKwkgICAgICAgYnJlYWsgMzs7Ci0rCSAgIGVzYWMKLSsJIGRvbmUKLSsgICAgICAgZG9uZQot K2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLSsKLSsgIGlmIHRlc3QgIiR7YWNfY3Zf cGF0aF9ta2RpcitzZXR9IiA9IHNldDsgdGhlbgotKyAgICBNS0RJUl9QPSIkYWNfY3ZfcGF0aF9t a2RpciAtcCIKLSsgIGVsc2UKLSsgICAgIyBBcyBhIGxhc3QgcmVzb3J0LCB1c2UgdGhlIHNsb3cg c2hlbGwgc2NyaXB0LiAgRG9uJ3QgY2FjaGUgYQotKyAgICAjIHZhbHVlIGZvciBNS0RJUl9QIHdp dGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCi0rICAgICMgYnJlYWsg b3RoZXIgcGFja2FnZXMgdXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQgZGlyZWN0b3J5IGlzCi0rICAg ICMgcmVtb3ZlZCwgb3IgaWYgdGhlIHZhbHVlIGlzIGEgcmVsYXRpdmUgbmFtZS4KLSsgICAgdGVz dCAtZCAuLy0tdmVyc2lvbiAmJiBybWRpciAuLy0tdmVyc2lvbgotKyAgICBNS0RJUl9QPSIkYWNf aW5zdGFsbF9zaCAtZCIKLSsgIGZpCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkTUtESVJfUCIgPiY1Ci0rJGFzX2VjaG8gIiRNS0RJUl9QIiA+JjY7IH0KLSsKLStt a2Rpcl9wPSIkTUtESVJfUCIKLStjYXNlICRta2Rpcl9wIGluCi0rICBbXFwvJF0qIHwgPzpbXFwv XSopIDs7Ci0rICAqLyopIG1rZGlyX3A9IlwkKHRvcF9idWlsZGRpcikvJG1rZGlyX3AiIDs7Ci0r ZXNhYwotKwotK2ZvciBhY19wcm9nIGluIGdhd2sgbWF3ayBuYXdrIGF3awotK2RvCi0rICAjIEV4 dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2Fj X2N2X3Byb2dfQVdLK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRBV0siOyB0aGVuCi0rICBhY19jdl9wcm9nX0FX Sz0iJEFXSyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0r ZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u Ci0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8K LSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rl c3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3Zf cHJvZ19BV0s9IiRhY19wcm9nIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5k ICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQot K2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStBV0s9JGFjX2N2 X3Byb2dfQVdLCi0raWYgdGVzdCAtbiAiJEFXSyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRBV0siID4mNQotKyRhc19lY2hvICIkQVdLIiA+JjY7IH0KLStl bHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFz X2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgdGVzdCAtbiAiJEFXSyIgJiYgYnJlYWsK LStkb25lCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIg JHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdo ZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkuLi4gIiA+JjY7IH0KLStzZXQgeCAke01B S0UtbWFrZX0KLSthY19tYWtlPWAkYXNfZWNobyAiJDIiIHwgc2VkICdzLysvcC9nOyBzL1teYS16 QS1aMC05X10vXy9nJ2AKLStpZiB7IGFzX3Zhcj1hY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9z ZXQ7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0ID5jb25mdGVzdC5tYWtlIDw8 XF9BQ0VPRgotK1NIRUxMID0gL2Jpbi9zaAotK2FsbDoKLSsJQGVjaG8gJ0BAQCUlJT0kKE1BS0Up PUBAQCUlJScKLStfQUNFT0YKLSsjIEdOVSBtYWtlIHNvbWV0aW1lcyBwcmludHMgIm1ha2VbMV06 IEVudGVyaW5nLi4uIiwgd2hpY2ggd291bGQgY29uZnVzZSB1cy4KLStjYXNlIGAke01BS0UtbWFr ZX0gLWYgY29uZnRlc3QubWFrZSAyPi9kZXYvbnVsbGAgaW4KLSsgICpAQEAlJSU9Pyo9QEBAJSUl KikKLSsgICAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9eWVzOzsKLSsgICop Ci0rICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0PW5vOzsKLStlc2FjCi0r cm0gLWYgY29uZnRlc3QubWFrZQotK2ZpCi0raWYgZXZhbCB0ZXN0IFwkYWNfY3ZfcHJvZ19tYWtl XyR7YWNfbWFrZX1fc2V0ID0geWVzOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKyAgU0VUX01BS0U9 Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQot KyRhc19lY2hvICJubyIgPiY2OyB9Ci0rICBTRVRfTUFLRT0iTUFLRT0ke01BS0UtbWFrZX0iCi0r ZmkKLSsKLStybSAtcmYgLnRzdCAyPi9kZXYvbnVsbAotK21rZGlyIC50c3QgMj4vZGV2L251bGwK LStpZiB0ZXN0IC1kIC50c3Q7IHRoZW4KLSsgIGFtX19sZWFkaW5nX2RvdD0uCi0rZWxzZQotKyAg YW1fX2xlYWRpbmdfZG90PV8KLStmaQotK3JtZGlyIC50c3QgMj4vZGV2L251bGwKLSsKLStpZiB0 ZXN0ICJgY2QgJHNyY2RpciAmJiBwd2RgIiAhPSAiYHB3ZGAiOyB0aGVuCi0rICAjIFVzZSAtSSQo c3JjZGlyKSBvbmx5IHdoZW4gJChzcmNkaXIpICE9IC4sIHNvIHRoYXQgbWFrZSdzIG91dHB1dAot KyAgIyBpcyBub3QgcG9sbHV0ZWQgd2l0aCByZXBlYXRlZCAiLUkuIgotKyAgYW1fX2lzcmM9JyAt SSQoc3JjZGlyKScKLSsgICMgdGVzdCB0byBzZWUgaWYgc3JjZGlyIGFscmVhZHkgY29uZmlndXJl ZAotKyAgaWYgdGVzdCAtZiAkc3JjZGlyL2NvbmZpZy5zdGF0dXM7IHRoZW4KLSsgICAgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHNvdXJjZSBkaXJlY3RvcnkgYWxyZWFkeSBj b25maWd1cmVkOyBydW4gXCJtYWtlIGRpc3RjbGVhblwiIHRoZXJlIGZpcnN0IiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogc291cmNlIGRpcmVjdG9yeSBhbHJlYWR5IGNvbmZpZ3VyZWQ7 IHJ1biBcIm1ha2UgZGlzdGNsZWFuXCIgdGhlcmUgZmlyc3QiID4mMjt9Ci0rICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9Ci0rICBmaQotK2ZpCi0rCi0rIyB0ZXN0IHdoZXRoZXIgd2UgaGF2ZSBj eWdwYXRoCi0raWYgdGVzdCAteiAiJENZR1BBVEhfVyI7IHRoZW4KLSsgIGlmIChjeWdwYXRoIC0t dmVyc2lvbikgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgotKyAgICBDWUdQQVRIX1c9J2N5 Z3BhdGggLXcnCi0rICBlbHNlCi0rICAgIENZR1BBVEhfVz1lY2hvCi0rICBmaQotK2ZpCi0rCi0r Ci0rIyBEZWZpbmUgdGhlIGlkZW50aXR5IG9mIHRoZSBwYWNrYWdlLgotKyBQQUNLQUdFPSdzb2Np JwotKyBWRVJTSU9OPSczLjAuMCcKLSsKLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0r I2RlZmluZSBQQUNLQUdFICIkUEFDS0FHRSIKLStfQUNFT0YKLSsKLSsKLStjYXQgPj5jb25mZGVm cy5oIDw8X0FDRU9GCi0rI2RlZmluZSBWRVJTSU9OICIkVkVSU0lPTiIKLStfQUNFT0YKLSsKLSsj IFNvbWUgdG9vbHMgQXV0b21ha2UgbmVlZHMuCi0rCi0rQUNMT0NBTD0ke0FDTE9DQUwtIiR7YW1f bWlzc2luZ19ydW59YWNsb2NhbC0ke2FtX19hcGlfdmVyc2lvbn0ifQotKwotKwotK0FVVE9DT05G PSR7QVVUT0NPTkYtIiR7YW1fbWlzc2luZ19ydW59YXV0b2NvbmYifQotKwotKwotK0FVVE9NQUtF PSR7QVVUT01BS0UtIiR7YW1fbWlzc2luZ19ydW59YXV0b21ha2UtJHthbV9fYXBpX3ZlcnNpb259 In0KLSsKLSsKLStBVVRPSEVBREVSPSR7QVVUT0hFQURFUi0iJHthbV9taXNzaW5nX3J1bn1hdXRv aGVhZGVyIn0KLSsKLSsKLStNQUtFSU5GTz0ke01BS0VJTkZPLSIke2FtX21pc3NpbmdfcnVufW1h a2VpbmZvIn0KLSsKLSsjIFdlIG5lZWQgYXdrIGZvciB0aGUgImNoZWNrIiB0YXJnZXQuICBUaGUg c3lzdGVtICJhd2siIGlzIGJhZCBvbgotKyMgc29tZSBwbGF0Zm9ybXMuCi0rIyBBbHdheXMgZGVm aW5lIEFNVEFSIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgotKwotK0FNVEFSPSR7QU1UQVIt IiR7YW1fbWlzc2luZ19ydW59dGFyIn0KLSsKLSthbV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQk dGFyZGlyIic7IGFtX191bnRhcj0nJHtBTVRBUn0geGYgLScKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLWNwcHVuaXQtcHJlZml4IHdhcyBnaXZlbi4KLStp ZiB0ZXN0ICIke3dpdGhfY3BwdW5pdF9wcmVmaXgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2 YWw9JHdpdGhfY3BwdW5pdF9wcmVmaXg7IGNwcHVuaXRfY29uZmlnX3ByZWZpeD0iJHdpdGh2YWwi Ci0rZWxzZQotKyAgY3BwdW5pdF9jb25maWdfcHJlZml4PSIiCi0rZmkKLSsKLSsKLSsjIENoZWNr IHdoZXRoZXIgLS13aXRoLWNwcHVuaXQtZXhlYy1wcmVmaXggd2FzIGdpdmVuLgotK2lmIHRlc3Qg IiR7d2l0aF9jcHB1bml0X2V4ZWNfcHJlZml4K3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFs PSR3aXRoX2NwcHVuaXRfZXhlY19wcmVmaXg7IGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4PSIk d2l0aHZhbCIKLStlbHNlCi0rICBjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeD0iIgotK2ZpCi0r Ci0rCi0rICBpZiB0ZXN0IHgkY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXggIT0geCA7IHRoZW4K LSsgICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tZXhlYy1w cmVmaXg9JGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4IgotKyAgICAgaWYgdGVzdCB4JHtDUFBV TklUX0NPTkZJRytzZXR9ICE9IHhzZXQgOyB0aGVuCi0rICAgICAgICBDUFBVTklUX0NPTkZJRz0k Y3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCi0rICAgICBmaQot KyAgZmkKLSsgIGlmIHRlc3QgeCRjcHB1bml0X2NvbmZpZ19wcmVmaXggIT0geCA7IHRoZW4KLSsg ICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tcHJlZml4PSRj cHB1bml0X2NvbmZpZ19wcmVmaXgiCi0rICAgICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklHK3Nl dH0gIT0geHNldCA7IHRoZW4KLSsgICAgICAgIENQUFVOSVRfQ09ORklHPSRjcHB1bml0X2NvbmZp Z19wcmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCi0rICAgICBmaQotKyAgZmkKLSsKLSsgICMgRXh0 cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiY3BwdW5pdC1jb25maWciLCBzbyBpdCBjYW4gYmUgYSBw cm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBjcHB1bml0LWNvbmZpZzsgYWNfd29y ZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQi ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lm IHRlc3QgIiR7YWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRytzZXR9IiA9IHNldDsgdGhlbgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXNlICRDUFBVTklUX0NPTkZJ RyBpbgotKyAgW1xcL10qIHwgPzpbXFwvXSopCi0rICBhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklH PSIkQ1BQVU5JVF9DT05GSUciICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGgg YSBwYXRoLgotKyAgOzsKLSsgICopCi0rICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0r ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcn ICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3BhdGhfQ1BQVU5JVF9DT05GSUc9IiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Zm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsg IGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICB0ZXN0IC16ICIkYWNf Y3ZfcGF0aF9DUFBVTklUX0NPTkZJRyIgJiYgYWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRz0ibm8i Ci0rICA7OwotK2VzYWMKLStmaQotK0NQUFVOSVRfQ09ORklHPSRhY19jdl9wYXRoX0NQUFVOSVRf Q09ORklHCi0raWYgdGVzdCAtbiAiJENQUFVOSVRfQ09ORklHIjsgdGhlbgotKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENQUFVOSVRfQ09ORklHIiA+JjUKLSskYXNfZWNo byAiJENQUFVOSVRfQ09ORklHIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwot KwotKyAgY3BwdW5pdF92ZXJzaW9uX21pbj0xLjEwCi0rCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yIENwcHVuaXQgLSB2ZXJzaW9uID49ICRjcHB1bml0X3ZlcnNp b25fbWluIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgQ3BwdW5pdCAtIHZlcnNpb24g Pj0gJGNwcHVuaXRfdmVyc2lvbl9taW4uLi4gIiA+JjY7IH0KLSsgIG5vX2NwcHVuaXQ9IiIKLSsg IGlmIHRlc3QgIiRDUFBVTklUX0NPTkZJRyIgPSAibm8iIDsgdGhlbgotKyAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0K LSsgICAgbm9fY3BwdW5pdD15ZXMKLSsgIGVsc2UKLSsgICAgQ1BQVU5JVF9DRkxBR1M9YCRDUFBV TklUX0NPTkZJRyAtLWNmbGFnc2AKLSsgICAgQ1BQVU5JVF9MSUJTPWAkQ1BQVU5JVF9DT05GSUcg LS1saWJzYAotKyAgICBDUFBVTklUX1ZFUlNJT049YCRDUFBVTklUX0NPTkZJRyAtLXZlcnNpb25g Ci0rCi0rICAgIGNwcHVuaXRfbWFqb3JfdmVyc2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwg XAotKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wx LydgCi0rICAgIGNwcHVuaXRfbWlub3JfdmVyc2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwg XAotKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wy LydgCi0rICAgIGNwcHVuaXRfbWljcm9fdmVyc2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwg XAotKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wz LydgCi0rCi0rICAgIGNwcHVuaXRfbWFqb3JfbWluPWBlY2hvICRjcHB1bml0X3ZlcnNpb25fbWlu IHwgXAotKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwp L1wxLydgCi0rICAgIGlmIHRlc3QgIngke2NwcHVuaXRfbWFqb3JfbWlufSIgPSAieCIgOyB0aGVu Ci0rICAgICAgIGNwcHVuaXRfbWFqb3JfbWluPTAKLSsgICAgZmkKLSsKLSsgICAgY3BwdW5pdF9t aW5vcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCi0rICAgICAgICAgICBzZWQg J3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDIvJ2AKLSsgICAgaWYgdGVzdCAi eCR7Y3BwdW5pdF9taW5vcl9taW59IiA9ICJ4IiA7IHRoZW4KLSsgICAgICAgY3BwdW5pdF9taW5v cl9taW49MAotKyAgICBmaQotKwotKyAgICBjcHB1bml0X21pY3JvX21pbj1gZWNobyAkY3BwdW5p dF92ZXJzaW9uX21pbiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9cKFswLTldKlwpLlwoWzAtOV0q XCkuXChbMC05XSpcKS9cMy8nYAotKyAgICBpZiB0ZXN0ICJ4JHtjcHB1bml0X21pY3JvX21pbn0i ID0gIngiIDsgdGhlbgotKyAgICAgICBjcHB1bml0X21pY3JvX21pbj0wCi0rICAgIGZpCi0rCi0r ICAgIGNwcHVuaXRfdmVyc2lvbl9wcm9wZXI9YGV4cHIgXAotKyAgICAgICAgJGNwcHVuaXRfbWFq b3JfdmVyc2lvbiBcPiAkY3BwdW5pdF9tYWpvcl9taW4gXHwgXAotKyAgICAgICAgJGNwcHVuaXRf bWFqb3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9tYWpvcl9taW4gXCYgXAotKyAgICAgICAgJGNwcHVu aXRfbWlub3JfdmVyc2lvbiBcPiAkY3BwdW5pdF9taW5vcl9taW4gXHwgXAotKyAgICAgICAgJGNw cHVuaXRfbWFqb3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9tYWpvcl9taW4gXCYgXAotKyAgICAgICAg JGNwcHVuaXRfbWlub3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9taW5vcl9taW4gXCYgXAotKyAgICAg ICAgJGNwcHVuaXRfbWljcm9fdmVyc2lvbiBcPj0gJGNwcHVuaXRfbWljcm9fbWluIGAKLSsKLSsg ICAgaWYgdGVzdCAiJGNwcHVuaXRfdmVyc2lvbl9wcm9wZXIiID0gIjEiIDsgdGhlbgotKyAgICAg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRjcHB1bml0X21ham9yX3ZlcnNp b24uJGNwcHVuaXRfbWlub3JfdmVyc2lvbi4kY3BwdW5pdF9taWNyb192ZXJzaW9uIiA+JjUKLSsk YXNfZWNobyAiJGNwcHVuaXRfbWFqb3JfdmVyc2lvbi4kY3BwdW5pdF9taW5vcl92ZXJzaW9uLiRj cHB1bml0X21pY3JvX3ZlcnNpb24iID4mNjsgfQotKyAgICBlbHNlCi0rICAgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9 Ci0rICAgICAgbm9fY3BwdW5pdD15ZXMKLSsgICAgZmkKLSsgIGZpCi0rCi0rICBpZiB0ZXN0ICJ4 JG5vX2NwcHVuaXQiID0geCA7IHRoZW4KLSsgICAgIDoKLSsgIGVsc2UKLSsgICAgIENQUFVOSVRf Q0ZMQUdTPSIiCi0rICAgICBDUFBVTklUX0xJQlM9IiIKLSsgICAgIDoKLSsgIGZpCi0rCi0rCi0r Ci0rCi0rCi0rIGlmIHRlc3QgIngkQ1BQVU5JVF9MSUJTIiAhPSB4OyB0aGVuCi0rICBIQVZFX0NQ UFVOSVRfVFJVRT0KLSsgIEhBVkVfQ1BQVU5JVF9GQUxTRT0nIycKLStlbHNlCi0rICBIQVZFX0NQ UFVOSVRfVFJVRT0nIycKLSsgIEhBVkVfQ1BQVU5JVF9GQUxTRT0KLStmaQotKwotKwotKyMgUlBN IHJlbGVhc2UgbnVtYmVyCi0rUlBNX1JFTEVBU0U9IjE2IgotKwotKwotKyMgU2hhcmVkIGxpYnJh cnkgdmVyc2lvbmluZwotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OPSIzOjA6MCIKLSsjICAgICAg ICAgICAgICAgICAgICAgICAgfCB8IHwKLSsjICAgICAgICAgICAgICAgICArLS0tLS0tKyB8ICst LS0rCi0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAotKyMgICAgICAgICAgICAg IGN1cnJlbnQ6cmV2aXNpb246YWdlCi0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAg fAotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICstIGluY3JlbWVudCBpZiBpbnRl cmZhY2VzIGhhdmUgYmVlbiBhZGRlZDsKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAg ICAgICBzZXQgdG8gemVybyBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbgotKyMgICAgICAgICAgICAg ICAgIHwgICAgICAgIHwgICAgICAgIHJlbW92ZWQgb3IgY2hhbmdlZAotKyMgICAgICAgICAgICAg ICAgIHwgICAgICAgICstIGluY3JlbWVudCBpZiBzb3VyY2UgY29kZSBoYXMgY2hhbmdlZDsKLSsj ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICBzZXQgdG8gemVybyBpZiBjdXJyZW50IGlzIGlu Y3JlbWVudGVkCi0rIyAgICAgICAgICAgICAgICAgKy0gaW5jcmVtZW50IGlmIGludGVyZmFjZXMg aGF2ZSBiZWVuIGFkZGVkLCByZW1vdmVkCi0rIyAgICAgICAgICAgICAgICAgICAgb3IgY2hhbmdl ZAotKwotKwotKyMgVXBsb2FkIGNvbW1hbmQgZm9yIFNvdXJjZUZvcmdlCi0rVVBMT0FEX0NPTU1B TkQ9Im5jZnRwcHV0IC12IHVwbG9hZC5zb3VyY2Vmb3JnZS5uZXQgL2luY29taW5nIgotKwotKwot KyMgQ2hlY2sgZm9yIGhvc3QgYW5kIGRpc2FibGUgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBp biBXaW5kb3dzCi0rIyBNYWtlIHN1cmUgd2UgY2FuIHJ1biBjb25maWcuc3ViLgotKyRTSEVMTCAi JGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgc3VuNCA+L2Rldi9udWxsIDI+JjEgfHwKLSsgIHsgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgcnVuICRTSEVMTCAkYWNfYXV4 X2Rpci9jb25maWcuc3ViIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IHJ1 biAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0KLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgYnVp bGQgc3lzdGVtIHR5cGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0 eXBlLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9idWlsZCtzZXR9IiA9IHNldDsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19idWlsZF9hbGlh cz0kYnVpbGRfYWxpYXMKLSt0ZXN0ICJ4JGFjX2J1aWxkX2FsaWFzIiA9IHggJiYKLSsgIGFjX2J1 aWxkX2FsaWFzPWAkU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5ndWVzcyJgCi0rdGVzdCAieCRh Y19idWlsZF9hbGlhcyIgPSB4ICYmCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBl cnJvcjogY2Fubm90IGd1ZXNzIGJ1aWxkIHR5cGU7IHlvdSBtdXN0IHNwZWNpZnkgb25lIiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGd1ZXNzIGJ1aWxkIHR5cGU7IHlvdSBt dXN0IHNwZWNpZnkgb25lIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2Fj X2N2X2J1aWxkPWAkU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5zdWIiICRhY19idWlsZF9hbGlh c2AgfHwKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAkU0hFTEwgJGFj X2F1eF9kaXIvY29uZmlnLnN1YiAkYWNfYnVpbGRfYWxpYXMgZmFpbGVkIiA+JjUKLSskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIgJGFjX2J1aWxk X2FsaWFzIGZhaWxlZCIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsKLStm aQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9idWlsZCIgPiY1 Ci0rJGFzX2VjaG8gIiRhY19jdl9idWlsZCIgPiY2OyB9Ci0rY2FzZSAkYWNfY3ZfYnVpbGQgaW4K LSsqLSotKikgOzsKLSsqKSB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW52 YWxpZCB2YWx1ZSBvZiBjYW5vbmljYWwgYnVpbGQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBpbnZhbGlkIHZhbHVlIG9mIGNhbm9uaWNhbCBidWlsZCIgPiYyO30KLSsgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH07OwotK2VzYWMKLStidWlsZD0kYWNfY3ZfYnVpbGQKLSthY19zYXZl X0lGUz0kSUZTOyBJRlM9Jy0nCi0rc2V0IHggJGFjX2N2X2J1aWxkCi0rc2hpZnQKLStidWlsZF9j cHU9JDEKLStidWlsZF92ZW5kb3I9JDIKLStzaGlmdDsgc2hpZnQKLSsjIFJlbWVtYmVyLCB0aGUg Zmlyc3QgY2hhcmFjdGVyIG9mIElGUyBpcyB1c2VkIHRvIGNyZWF0ZSAkKiwKLSsjIGV4Y2VwdCB3 aXRoIG9sZCBzaGVsbHM6Ci0rYnVpbGRfb3M9JCoKLStJRlM9JGFjX3NhdmVfSUZTCi0rY2FzZSAk YnVpbGRfb3MgaW4gKlwgKikgYnVpbGRfb3M9YGVjaG8gIiRidWlsZF9vcyIgfCBzZWQgJ3MvIC8t L2cnYDs7IGVzYWMKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg aG9zdCBzeXN0ZW0gdHlwZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG9zdCBzeXN0ZW0g dHlwZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfaG9zdCtzZXR9IiA9IHNldDsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0ICJ4JGhv c3RfYWxpYXMiID0geDsgdGhlbgotKyAgYWNfY3ZfaG9zdD0kYWNfY3ZfYnVpbGQKLStlbHNlCi0r ICBhY19jdl9ob3N0PWAkU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5zdWIiICRob3N0X2FsaWFz YCB8fAotKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogJFNIRUxMICRh Y19hdXhfZGlyL2NvbmZpZy5zdWIgJGhvc3RfYWxpYXMgZmFpbGVkIiA+JjUKLSskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIgJGhvc3RfYWxpYXMg ZmFpbGVkIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0rCi0rZmkK LSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaG9zdCIgPiY1Ci0r JGFzX2VjaG8gIiRhY19jdl9ob3N0IiA+JjY7IH0KLStjYXNlICRhY19jdl9ob3N0IGluCi0rKi0q LSopIDs7Ci0rKikgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGludmFsaWQg dmFsdWUgb2YgY2Fub25pY2FsIGhvc3QiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBp bnZhbGlkIHZhbHVlIG9mIGNhbm9uaWNhbCBob3N0IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfTs7Ci0rZXNhYwotK2hvc3Q9JGFjX2N2X2hvc3QKLSthY19zYXZlX0lGUz0kSUZT OyBJRlM9Jy0nCi0rc2V0IHggJGFjX2N2X2hvc3QKLStzaGlmdAotK2hvc3RfY3B1PSQxCi0raG9z dF92ZW5kb3I9JDIKLStzaGlmdDsgc2hpZnQKLSsjIFJlbWVtYmVyLCB0aGUgZmlyc3QgY2hhcmFj dGVyIG9mIElGUyBpcyB1c2VkIHRvIGNyZWF0ZSAkKiwKLSsjIGV4Y2VwdCB3aXRoIG9sZCBzaGVs bHM6Ci0raG9zdF9vcz0kKgotK0lGUz0kYWNfc2F2ZV9JRlMKLStjYXNlICRob3N0X29zIGluICpc ICopIGhvc3Rfb3M9YGVjaG8gIiRob3N0X29zIiB8IHNlZCAncy8gLy0vZydgOzsgZXNhYwotKwot KwotK2Nhc2UgJGhvc3QgaW4KLSsgICotKi1tc2RvcyogfCAqLSotZ28zMiogfCAqLSotbWluZ3cz MiogfCAqLSotY3lnd2luKiB8ICotKi13aW5kb3dzKikKLSsgICAgIyBDaGVjayB3aGV0aGVyIC0t ZW5hYmxlLXNoYXJlZCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfc2hhcmVkK3NldH0i ID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9zaGFyZWQ7IHA9JHtQQUNLQUdFLWRl ZmF1bHR9Ci0rICAgIGNhc2UgJGVuYWJsZXZhbCBpbgotKyAgICB5ZXMpIGVuYWJsZV9zaGFyZWQ9 eWVzIDs7Ci0rICAgIG5vKSBlbmFibGVfc2hhcmVkPW5vIDs7Ci0rICAgICopCi0rICAgICAgZW5h YmxlX3NoYXJlZD1ubwotKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2Ug dXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KLSsgICAgICBsdF9zYXZlX2lmcz0i JElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKLSsgICAgICBmb3IgcGtnIGluICRl bmFibGV2YWw7IGRvCi0rCUlGUz0iJGx0X3NhdmVfaWZzIgotKwlpZiB0ZXN0ICJYJHBrZyIgPSAi WCRwIjsgdGhlbgotKwkgIGVuYWJsZV9zaGFyZWQ9eWVzCi0rCWZpCi0rICAgICAgZG9uZQotKyAg ICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLStlbHNlCi0rICBl bmFibGVfc2hhcmVkPW5vCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsgICAgIyBD aGVjayB3aGV0aGVyIC0tZW5hYmxlLXN0YXRpYyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFi bGVfc3RhdGljK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9zdGF0aWM7 IHA9JHtQQUNLQUdFLWRlZmF1bHR9Ci0rICAgIGNhc2UgJGVuYWJsZXZhbCBpbgotKyAgICB5ZXMp IGVuYWJsZV9zdGF0aWM9eWVzIDs7Ci0rICAgIG5vKSBlbmFibGVfc3RhdGljPW5vIDs7Ci0rICAg ICopCi0rICAgICBlbmFibGVfc3RhdGljPW5vCi0rICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVu dCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgotKyAgICAg IGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgotKyAgICAg IGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KLSsJSUZTPSIkbHRfc2F2ZV9pZnMiCi0rCWlmIHRl c3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCi0rCSAgZW5hYmxlX3N0YXRpYz15ZXMKLSsJZmkKLSsg ICAgICBkb25lCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICAgOzsKLSsgICAgZXNh YwotK2Vsc2UKLSsgIGVuYWJsZV9zdGF0aWM9eWVzCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsgICAgOzsKLSsgICopCi0rICAgICMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1zaGFy ZWQgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX3NoYXJlZCtzZXR9IiA9IHNldDsgdGhl bgotKyAgZW5hYmxldmFsPSRlbmFibGVfc2hhcmVkOyBwPSR7UEFDS0FHRS1kZWZhdWx0fQotKyAg ICBjYXNlICRlbmFibGV2YWwgaW4KLSsgICAgeWVzKSBlbmFibGVfc2hhcmVkPXllcyA7OwotKyAg ICBubykgZW5hYmxlX3NoYXJlZD1ubyA7OwotKyAgICAqKQotKyAgICAgIGVuYWJsZV9zaGFyZWQ9 bm8KLSsgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhl IGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0rICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9 IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0rICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBk bwotKwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4K LSsJICBlbmFibGVfc2hhcmVkPXllcwotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9IiRs dF9zYXZlX2lmcyIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rZWxzZQotKyAgZW5hYmxlX3NoYXJl ZD15ZXMKLStmaQotKwotKwotKwotKwotKwotKwotKyAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFi bGUtc3RhdGljIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9zdGF0aWMrc2V0fSIgPSBz ZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX3N0YXRpYzsgcD0ke1BBQ0tBR0UtZGVmYXVs dH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxlX3N0YXRpYz15ZXMg OzsKLSsgICAgbm8pIGVuYWJsZV9zdGF0aWM9bm8gOzsKLSsgICAgKikKLSsgICAgIGVuYWJsZV9z dGF0aWM9bm8KLSsgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBh bGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0rICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMi OyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0rICAgICAgZm9yIHBrZyBpbiAkZW5hYmxl dmFsOyBkbwotKwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7 IHRoZW4KLSsJICBlbmFibGVfc3RhdGljPXllcwotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICBJ RlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rZWxzZQotKyAgZW5hYmxl X3N0YXRpYz1ubwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rICAgIDs7Ci0rZXNhYwotKwotKyMg Q2hlY2tzIGZvciBwcm9ncmFtcwotK3NhdmVfQ1hYRkxBR1M9IiRDWFhGTEFHUyIKLSthY19leHQ9 Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRD WFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAt byBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVz dC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxl cl9nbnUKLStpZiB0ZXN0IC16ICIkQ1hYIjsgdGhlbgotKyAgaWYgdGVzdCAtbiAiJENDQyI7IHRo ZW4KLSsgICAgQ1hYPSRDQ0MKLSsgIGVsc2UKLSsgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJl Zml4IjsgdGhlbgotKyAgZm9yIGFjX3Byb2cgaW4gZysrIGMrKyBncHAgYUNDIENDIGN4eCBjYysr IGNsLmV4ZSBGQ0MgS0NDIFJDQyB4bENfciB4bEMKLSsgIGRvCi0rICAgICMgRXh0cmFjdCB0aGUg Zmlyc3Qgd29yZCBvZiAiJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBw cm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJv ZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig JGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4m NjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJENYWCI7IHRo ZW4KLSsgIGFjX2N2X3Byb2dfQ1hYPSIkQ1hYIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUg dGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2Zv ciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAi JGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0 YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0Ijsg fTsgdGhlbgotKyAgICBhY19jdl9wcm9nX0NYWD0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCi0r ICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFz X3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK0NYWD0kYWNfY3ZfcHJvZ19DWFgKLStpZiB0ZXN0IC1u ICIkQ1hYIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENY WCIgPiY1Ci0rJGFzX2VjaG8gIiRDWFgiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2Zp Ci0rCi0rCi0rICAgIHRlc3QgLW4gIiRDWFgiICYmIGJyZWFrCi0rICBkb25lCi0rZmkKLStpZiB0 ZXN0IC16ICIkQ1hYIjsgdGhlbgotKyAgYWNfY3RfQ1hYPSRDWFgKLSsgIGZvciBhY19wcm9nIGlu IGcrKyBjKysgZ3BwIGFDQyBDQyBjeHggY2MrKyBjbC5leGUgRkNDIEtDQyBSQ0MgeGxDX3IgeGxD Ci0rZG8KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBj YW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNfcHJvZzsgYWNf d29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dv cmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQot K2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DWFgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0NY WCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfY3RfQ1hYIiAjIExldCB0aGUg dXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQ QVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZl X0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4 dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X0NYWD0iJGFj X3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUK LStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X0NYWD0kYWNfY3ZfcHJvZ19h Y19jdF9DWFgKLStpZiB0ZXN0IC1uICIkYWNfY3RfQ1hYIjsgdGhlbgotKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19j dF9DWFgiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICB0ZXN0IC1u ICIkYWNfY3RfQ1hYIiAmJiBicmVhawotK2RvbmUKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfQ1hY IiA9IHg7IHRoZW4KLSsgICAgQ1hYPSJnKysiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2Nv bXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0 IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRv b2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5l ZD15ZXMgOzsKLStlc2FjCi0rICAgIENYWD0kYWNfY3RfQ1hYCi0rICBmaQotK2ZpCi0rCi0rICBm aQotK2ZpCi0rIyBQcm92aWRlIHNvbWUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbXBpbGVyLgot KyRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEMrKyBjb21waWxlciB2ZXJz aW9uIiA+JjUKLStzZXQgWCAkYWNfY29tcGlsZQotK2FjX2NvbXBpbGVyPSQyCi0reyAoYWNfdHJ5 PSIkYWNfY29tcGlsZXIgLS12ZXJzaW9uID4mNSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAq XCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9l Y2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVO TzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2 YWwgIiRhY19jb21waWxlciAtLXZlcnNpb24gPiY1IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0KLSt7IChhY190cnk9IiRhY19jb21waWxlciAtdiA+JjUiCi0rY2Fz ZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj X3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlf ZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNf dHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZXIgLXYgPiY1IikgMj4mNQotKyAg YWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLSt7IChhY190cnk9IiRhY19jb21waWxl ciAtViA+JjUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2Fj Ci0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgot KyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZXIgLVYg PiY1IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLSsKLStjYXQg PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YK LStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkK LSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rYWNfY2xlYW5fZmlsZXNf c2F2ZT0kYWNfY2xlYW5fZmlsZXMKLSthY19jbGVhbl9maWxlcz0iJGFjX2NsZWFuX2ZpbGVzIGEu b3V0IGEub3V0LmRTWU0gYS5leGUgYi5vdXQiCi0rIyBUcnkgdG8gY3JlYXRlIGFuIGV4ZWN1dGFi bGUgd2l0aG91dCAtbyBmaXJzdCwgZGlzcmVnYXJkIGEub3V0LgotKyMgSXQgd2lsbCBoZWxwIHVz IGRpYWdub3NlIGJyb2tlbiBjb21waWxlcnMsIGFuZCBmaW5kaW5nIG91dCBhbiBpbnR1aXRpb24K LSsjIG9mIGV4ZWV4dC4KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y IEMrKyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciBDKysgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lLi4uICIg PiY2OyB9Ci0rYWNfbGlua19kZWZhdWx0PWAkYXNfZWNobyAiJGFjX2xpbmsiIHwgc2VkICdzLyAt byAqY29uZnRlc3RbXiBdKi8vJ2AKLSsKLSsjIFRoZSBwb3NzaWJsZSBvdXRwdXQgZmlsZXM6Ci0r YWNfZmlsZXM9ImEub3V0IGNvbmZ0ZXN0LmV4ZSBjb25mdGVzdCBhLmV4ZSBhX291dC5leGUgYi5v dXQgY29uZnRlc3QuKiIKLSsKLSthY19ybWZpbGVzPQotK2ZvciBhY19maWxlIGluICRhY19maWxl cwotK2RvCi0rICBjYXNlICRhY19maWxlIGluCi0rICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAq LnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5tYXAgfCAqLmlu ZiB8ICouZFNZTSB8ICoubyB8ICoub2JqICkgOzsKLSsgICAgKiApIGFjX3JtZmlsZXM9IiRhY19y bWZpbGVzICRhY19maWxlIjs7Ci0rICBlc2FjCi0rZG9uZQotK3JtIC1mICRhY19ybWZpbGVzCi0r Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGlua19kZWZhdWx0IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4K LSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0r ICAoZXZhbCAiJGFjX2xpbmtfZGVmYXVsdCIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRh Y19zdGF0dXMpOyB9OyB0aGVuCi0rICAjIEF1dG9jb25mLTIuMTMgY291bGQgc2V0IHRoZSBhY19j dl9leGVleHQgdmFyaWFibGUgdG8gYG5vJy4KLSsjIFNvIGlnbm9yZSBhIHZhbHVlIG9mIGBubycs IG90aGVyd2lzZSB0aGlzIHdvdWxkIGxlYWQgdG8gYEVYRUVYVCA9IG5vJwotKyMgaW4gYSBNYWtl ZmlsZS4gIFdlIHNob3VsZCBub3Qgb3ZlcnJpZGUgYWNfY3ZfZXhlZXh0IGlmIGl0IHdhcyBjYWNo ZWQsCi0rIyBzbyB0aGF0IHRoZSB1c2VyIGNhbiBzaG9ydC1jaXJjdWl0IHRoaXMgdGVzdCBmb3Ig Y29tcGlsZXJzIHVua25vd24gdG8KLSsjIEF1dG9jb25mLgotK2ZvciBhY19maWxlIGluICRhY19m aWxlcyAnJwotK2RvCi0rICB0ZXN0IC1mICIkYWNfZmlsZSIgfHwgY29udGludWUKLSsgIGNhc2Ug JGFjX2ZpbGUgaW4KLSsgICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5w ZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAqLm1hcCB8ICouaW5mIHwgKi5kU1lNIHwgKi5v IHwgKi5vYmogKQotKwk7OwotKyAgICBbYWJdLm91dCApCi0rCSMgV2UgZm91bmQgdGhlIGRlZmF1 bHQgZXhlY3V0YWJsZSwgYnV0IGV4ZWV4dD0nJyBpcyBtb3N0Ci0rCSMgY2VydGFpbmx5IHJpZ2h0 LgotKwlicmVhazs7Ci0rICAgICouKiApCi0rICAgICAgICBpZiB0ZXN0ICIke2FjX2N2X2V4ZWV4 dCtzZXR9IiA9IHNldCAmJiB0ZXN0ICIkYWNfY3ZfZXhlZXh0IiAhPSBubzsKLSsJdGhlbiA6OyBl bHNlCi0rCSAgIGFjX2N2X2V4ZWV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCkn YAotKwlmaQotKwkjIFdlIHNldCBhY19jdl9leGVleHQgaGVyZSBiZWNhdXNlIHRoZSBsYXRlciB0 ZXN0IGZvciBpdCBpcyBub3QKLSsJIyBzYWZlOiBjcm9zcyBjb21waWxlcnMgbWF5IG5vdCBhZGQg dGhlIHN1ZmZpeCBpZiBnaXZlbiBhbiBgLW8nCi0rCSMgYXJndW1lbnQsIHNvIHdlIG1heSBuZWVk IHRvIGtub3cgaXQgYXQgdGhhdCBwb2ludCBhbHJlYWR5LgotKwkjIEV2ZW4gaWYgdGhpcyBzZWN0 aW9uIGxvb2tzIGNydWZ0eTogaXQgaGFzIHRoZSBhZHZhbnRhZ2Ugb2YKLSsJIyBhY3R1YWxseSB3 b3JraW5nLgotKwlicmVhazs7Ci0rICAgICogKQotKwlicmVhazs7Ci0rICBlc2FjCi0rZG9uZQot K3Rlc3QgIiRhY19jdl9leGVleHQiID0gbm8gJiYgYWNfY3ZfZXhlZXh0PQotKwotK2Vsc2UKLSsg IGFjX2ZpbGU9JycKLStmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhY19maWxlIiA+JjUKLSskYXNfZWNobyAiJGFjX2ZpbGUiID4mNjsgfQotK2lmIHRlc3QgLXog IiRhY19maWxlIjsgdGhlbgotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz OiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotK3sgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotK3sgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGVycm9yOiBDKysgY29tcGlsZXIgY2Fubm90IGNyZWF0ZSBleGVjdXRh YmxlcwotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKLSskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogQysrIGNvbXBpbGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMK LStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLSsgICB7IChleGl0 IDc3KTsgZXhpdCA3NzsgfTsgfTsgfQotK2ZpCi0rCi0rYWNfZXhlZXh0PSRhY19jdl9leGVleHQK LSsKLSsjIENoZWNrIHRoYXQgdGhlIGNvbXBpbGVyIHByb2R1Y2VzIGV4ZWN1dGFibGVzIHdlIGNh biBydW4uICBJZiBub3QsIGVpdGhlcgotKyMgdGhlIGNvbXBpbGVyIGlzIGJyb2tlbiwgb3Igd2Ug Y3Jvc3MgY29tcGlsZS4KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hl dGhlciB0aGUgQysrIGNvbXBpbGVyIHdvcmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3 aGV0aGVyIHRoZSBDKysgY29tcGlsZXIgd29ya3MuLi4gIiA+JjY7IH0KLSsjIEZJWE1FOiBUaGVz ZSBjcm9zcyBjb21waWxlciBoYWNrcyBzaG91bGQgYmUgcmVtb3ZlZCBmb3IgQXV0b2NvbmYgMy4w Ci0rIyBJZiBub3QgY3Jvc3MgY29tcGlsaW5nLCBjaGVjayB0aGF0IHdlIGNhbiBydW4gYSBzaW1w bGUgcHJvZ3JhbS4KLStpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAhPSB5ZXM7IHRoZW4KLSsg IGlmIHsgYWNfdHJ5PScuLyRhY19maWxlJwotKyAgeyAoY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChl dmFsICIkYWNfdHJ5IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07 IH07IHRoZW4KLSsgICAgY3Jvc3NfY29tcGlsaW5nPW5vCi0rICBlbHNlCi0rICAgIGlmIHRlc3Qg IiRjcm9zc19jb21waWxpbmciID0gbWF5YmU7IHRoZW4KLSsJY3Jvc3NfY29tcGlsaW5nPXllcwot KyAgICBlbHNlCi0rCXsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRh Y19wd2QnOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+ JjI7fQotK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgcnVuIEMr KyBjb21waWxlZCBwcm9ncmFtcy4KLStJZiB5b3UgbWVhbnQgdG8gY3Jvc3MgY29tcGlsZSwgdXNl IFxgLS1ob3N0Jy4KLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBydW4gQysrIGNvbXBpbGVkIHByb2dyYW1z LgotK0lmIHlvdSBtZWFudCB0byBjcm9zcyBjb21waWxlLCB1c2UgXGAtLWhvc3QnLgotK1NlZSBc YGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfTsgfQotKyAgICBmaQotKyAgZmkKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rCi0rcm0g LWYgLXIgYS5vdXQgYS5vdXQuZFNZTSBhLmV4ZSBjb25mdGVzdCRhY19jdl9leGVleHQgYi5vdXQK LSthY19jbGVhbl9maWxlcz0kYWNfY2xlYW5fZmlsZXNfc2F2ZQotKyMgQ2hlY2sgdGhhdCB0aGUg Y29tcGlsZXIgcHJvZHVjZXMgZXhlY3V0YWJsZXMgd2UgY2FuIHJ1bi4gIElmIG5vdCwgZWl0aGVy Ci0rIyB0aGUgY29tcGlsZXIgaXMgYnJva2VuLCBvciB3ZSBjcm9zcyBjb21waWxlLgotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21w aWxpbmciID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNv bXBpbGluZy4uLiAiID4mNjsgfQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRjcm9zc19jb21waWxpbmciID4mNQotKyRhc19lY2hvICIkY3Jvc3NfY29tcGlsaW5nIiA+JjY7 IH0KLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN1ZmZpeCBv ZiBleGVjdXRhYmxlcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBl eGVjdXRhYmxlcy4uLiAiID4mNjsgfQotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAi KCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwot KyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChl eGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCi0rICAjIElmIGJvdGggYGNvbmZ0ZXN0LmV4ZScgYW5k IGBjb25mdGVzdCcgYXJlIGBwcmVzZW50JyAod2VsbCwgb2JzZXJ2YWJsZSkKLSsjIGNhdGNoIGBj b25mdGVzdC5leGUnLiAgRm9yIGluc3RhbmNlIHdpdGggQ3lnd2luLCBgbHMgY29uZnRlc3QnIHdp bGwKLSsjIHdvcmsgcHJvcGVybHkgKGkuZS4sIHJlZmVyIHRvIGBjb25mdGVzdC5leGUnKSwgd2hp bGUgaXQgd29uJ3Qgd2l0aAotKyMgYHJtJy4KLStmb3IgYWNfZmlsZSBpbiBjb25mdGVzdC5leGUg Y29uZnRlc3QgY29uZnRlc3QuKjsgZG8KLSsgIHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51 ZQotKyAgY2FzZSAkYWNfZmlsZSBpbgotKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMg fCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5pbmYgfCAq LmRTWU0gfCAqLm8gfCAqLm9iaiApIDs7Ci0rICAgICouKiApIGFjX2N2X2V4ZWV4dD1gZXhwciAi JGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCknYAotKwkgIGJyZWFrOzsKLSsgICAgKiApIGJyZWFr OzsKLSsgIGVzYWMKLStkb25lCi0rZWxzZQotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjog aW4gXGAkYWNfcHdkJzoiID4mMjt9Ci0reyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJy b3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUg YW5kIGxpbmsKLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci0rJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxl czogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBk ZXRhaWxzLiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLStmaQotKwot K3JtIC1mIGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRhY19jdl9leGVleHQiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfZXhlZXh0IiA+ JjY7IH0KLSsKLStybSAtZiBjb25mdGVzdC4kYWNfZXh0Ci0rRVhFRVhUPSRhY19jdl9leGVleHQK LSthY19leGVleHQ9JEVYRUVYVAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2 X29iamV4dCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5o LiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwot K2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0r cm0gLWYgY29uZnRlc3QubyBjb25mdGVzdC5vYmoKLStpZiB7IChhY190cnk9IiRhY19jb21waWxl IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPiY1Ci0rICBh Y19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgotKyAgZm9yIGFjX2ZpbGUgaW4g Y29uZnRlc3QubyBjb25mdGVzdC5vYmogY29uZnRlc3QuKjsgZG8KLSsgIHRlc3QgLWYgIiRhY19m aWxlIiB8fCBjb250aW51ZTsKLSsgIGNhc2UgJGFjX2ZpbGUgaW4KLSsgICAgKi4kYWNfZXh0IHwg Ki54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAq Lm1hcCB8ICouaW5mIHwgKi5kU1lNICkgOzsKLSsgICAgKikgYWNfY3Zfb2JqZXh0PWBleHByICIk YWNfZmlsZSIgOiAnLipcLlwoLipcKSdgCi0rICAgICAgIGJyZWFrOzsKLSsgIGVzYWMKLStkb25l Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0r c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotK3sgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotK3sgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGVycm9yOiBjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzOiBjYW5u b3QgY29tcGlsZQotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIG9iamVjdCBm aWxlczogY2Fubm90IGNvbXBpbGUKLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxz LiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLStmaQotKwotK3JtIC1m IGNvbmZ0ZXN0LiRhY19jdl9vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2ZpCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X29iamV4dCIgPiY1Ci0rJGFzX2VjaG8g IiRhY19jdl9vYmpleHQiID4mNjsgfQotK09CSkVYVD0kYWNfY3Zfb2JqZXh0Ci0rYWNfb2JqZXh0 PSRPQkpFWFQKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB3 ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGlsZXIiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQysrIGNvbXBpbGVyLi4uICIgPiY2OyB9 Ci0raWYgdGVzdCAiJHthY19jdl9jeHhfY29tcGlsZXJfZ251K3NldH0iID0gc2V0OyB0aGVuCi0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsjaWZuZGVm IF9fR05VQ19fCi0rICAgICAgIGNob2tlIG1lCi0rI2VuZGlmCi0rCi0rICA7Ci0rICByZXR1cm4g MDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3Ry eT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAq XFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsK LStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNo b1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGls ZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNv bmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBj b25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFj X2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAg fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGFjX2NvbXBpbGVyX2du dT15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2NvbXBpbGVy X2dudT1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rYWNfY3ZfY3h4X2NvbXBpbGVyX2dudT0kYWNfY29tcGls ZXJfZ251Ci0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf Y3ZfY3h4X2NvbXBpbGVyX2dudSIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9jeHhfY29tcGlsZXJf Z251IiA+JjY7IH0KLStpZiB0ZXN0ICRhY19jb21waWxlcl9nbnUgPSB5ZXM7IHRoZW4KLSsgIEdY WD15ZXMKLStlbHNlCi0rICBHWFg9Ci0rZmkKLSthY190ZXN0X0NYWEZMQUdTPSR7Q1hYRkxBR1Mr c2V0fQotK2FjX3NhdmVfQ1hYRkxBR1M9JENYWEZMQUdTCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIHdoZXRoZXIgJENYWCBhY2NlcHRzIC1nIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyB3aGV0aGVyICRDWFggYWNjZXB0cyAtZy4uLiAiID4mNjsgfQotK2lmIHRlc3Qg IiR7YWNfY3ZfcHJvZ19jeHhfZytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19zYXZlX2N4eF93ZXJyb3JfZmxhZz0kYWNfY3h4X3dl cnJvcl9mbGFnCi0rICAgYWNfY3h4X3dlcnJvcl9mbGFnPXllcwotKyAgIGFjX2N2X3Byb2dfY3h4 X2c9bm8KLSsgICBDWFhGTEFHUz0iLWciCi0rICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25m dGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJu IDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190 cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBp bGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBj b25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQg Y29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRh Y19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAg IH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBhY19jdl9wcm9nX2N4 eF9nPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJQ1hYRkxBR1M9 IiIKLSsgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5o LiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwot K2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0r cm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0r Y2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c JGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190 cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIk YWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIx Ci0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRl c3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIg fHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0 ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIDoKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBm YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg PiY1Ci0rCi0rCWFjX2N4eF93ZXJyb3JfZmxhZz0kYWNfc2F2ZV9jeHhfd2Vycm9yX2ZsYWcKLSsJ IENYWEZMQUdTPSItZyIKLSsJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNv bmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4g ICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStf QUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29t cGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25m dGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJv cl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3Qg LXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY3ZfcHJvZ19jeHhfZz15ZXMKLStl bHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCi0rZmkKLSsKLStybSAtZiBjb3Jl IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQot KwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Qu JGFjX2V4dAotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICAgYWNfY3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4 eF93ZXJyb3JfZmxhZwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGFjX2N2X3Byb2dfY3h4X2ciID4mNQotKyRhc19lY2hvICIkYWNfY3ZfcHJvZ19jeHhfZyIgPiY2 OyB9Ci0raWYgdGVzdCAiJGFjX3Rlc3RfQ1hYRkxBR1MiID0gc2V0OyB0aGVuCi0rICBDWFhGTEFH Uz0kYWNfc2F2ZV9DWFhGTEFHUwotK2VsaWYgdGVzdCAkYWNfY3ZfcHJvZ19jeHhfZyA9IHllczsg dGhlbgotKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgQ1hYRkxBR1M9Ii1nIC1P MiIKLSsgIGVsc2UKLSsgICAgQ1hYRkxBR1M9Ii1nIgotKyAgZmkKLStlbHNlCi0rICBpZiB0ZXN0 ICIkR1hYIiA9IHllczsgdGhlbgotKyAgICBDWFhGTEFHUz0iLU8yIgotKyAgZWxzZQotKyAgICBD WFhGTEFHUz0KLSsgIGZpCi0rZmkKLSthY19leHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1Mn Ci0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg PiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jX2NvbXBpbGVyX2dudQotK0RFUERJUj0iJHthbV9fbGVhZGluZ19kb3R9ZGVwcyIK LSsKLSthY19jb25maWdfY29tbWFuZHM9IiRhY19jb25maWdfY29tbWFuZHMgZGVwZmlsZXMiCi0r Ci0rCi0rYW1fbWFrZT0ke01BS0UtbWFrZX0KLStjYXQgPiBjb25maW5jIDw8ICdFTkQnCi0rYW1f X2RvaXQ6Ci0rCUBlY2hvIHRoaXMgaXMgdGhlIGFtX19kb2l0IHRhcmdldAotKy5QSE9OWTogYW1f X2RvaXQKLStFTkQKLSsjIElmIHdlIGRvbid0IGZpbmQgYW4gaW5jbHVkZSBkaXJlY3RpdmUsIGp1 c3QgY29tbWVudCBvdXQgdGhlIGNvZGUuCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgJGFtX21ha2UiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgJGFtX21ha2UuLi4g IiA+JjY7IH0KLSthbV9faW5jbHVkZT0iIyIKLSthbV9fcXVvdGU9Ci0rX2FtX3Jlc3VsdD1ub25l Ci0rIyBGaXJzdCB0cnkgR05VIG1ha2Ugc3R5bGUgaW5jbHVkZS4KLStlY2hvICJpbmNsdWRlIGNv bmZpbmMiID4gY29uZm1mCi0rIyBJZ25vcmUgYWxsIGtpbmRzIG9mIGFkZGl0aW9uYWwgb3V0cHV0 IGZyb20gYG1ha2UnLgotK2Nhc2UgYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGxg IGluICMoCi0rKnRoZVwgYW1fX2RvaXRcIHRhcmdldCopCi0rICBhbV9faW5jbHVkZT1pbmNsdWRl Ci0rICBhbV9fcXVvdGU9Ci0rICBfYW1fcmVzdWx0PUdOVQotKyAgOzsKLStlc2FjCi0rIyBOb3cg dHJ5IEJTRCBtYWtlIHN0eWxlIGluY2x1ZGUuCi0raWYgdGVzdCAiJGFtX19pbmNsdWRlIiA9ICIj IjsgdGhlbgotKyAgIGVjaG8gJy5pbmNsdWRlICJjb25maW5jIicgPiBjb25mbWYKLSsgICBjYXNl IGAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCBpbiAjKAotKyAgICp0aGVcIGFt X19kb2l0XCB0YXJnZXQqKQotKyAgICAgYW1fX2luY2x1ZGU9LmluY2x1ZGUKLSsgICAgIGFtX19x dW90ZT0iXCIiCi0rICAgICBfYW1fcmVzdWx0PUJTRAotKyAgICAgOzsKLSsgICBlc2FjCi0rZmkK LSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkX2FtX3Jlc3VsdCIg PiY1Ci0rJGFzX2VjaG8gIiRfYW1fcmVzdWx0IiA+JjY7IH0KLStybSAtZiBjb25maW5jIGNvbmZt ZgotKwotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nIHdhcyBn aXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nK3NldH0iID0gc2V0 OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nOwotK2ZpCi0r Ci0raWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vOyB0aGVuCi0r ICBhbV9kZXBjb21wPSIkYWNfYXV4X2Rpci9kZXBjb21wIgotKyAgQU1ERVBCQUNLU0xBU0g9J1wn Ci0rZmkKLSsgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vOyB0 aGVuCi0rICBBTURFUF9UUlVFPQotKyAgQU1ERVBfRkFMU0U9JyMnCi0rZWxzZQotKyAgQU1ERVBf VFJVRT0nIycKLSsgIEFNREVQX0ZBTFNFPQotK2ZpCi0rCi0rCi0rCi0rZGVwY2M9IiRDWFgiICBh bV9jb21waWxlcl9saXN0PQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg ZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2MuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FtX2N2 X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC16ICIkQU1ERVBfVFJV RSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCi0rICAjIFdlIG1ha2UgYSBzdWJkaXIg YW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCi0rICAjIG1h a2luZyBib2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVyIHJlbW92 ZS4gIEZvcgotKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUg Z2NjIHRlc3Qgd2lsbCBlbmQgdXAKLSsgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcg LS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKLSsgICMgaW4gRCcuCi0rICBt a2RpciBjb25mdGVzdC5kaXIKLSsgICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNhdXNlIG90 aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCi0rICAjIHVzaW5nIGEgcmVsYXRpdmUg ZGlyZWN0b3J5LgotKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKLSsgIGNkIGNvbmZ0 ZXN0LmRpcgotKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVuY2llcyBpbiBh IHN1YmRpcmVjdG9yeSBiZWNhdXNlCi0rICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2Fi bGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQotKyAgIyBib3RoIFRydTY0J3MgY2Mg YW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKLSsgICMgc2lk ZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRlcGVuZGVuY2ll cyBpbgotKyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhl bSBpbiB0aGUgb2JqZWN0Ci0rICAjIGRpcmVjdG9yeS4KLSsgIG1rZGlyIHN1YgotKwotKyAgYW1f Y3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKLSsgIGlmIHRlc3QgIiRhbV9j b21waWxlcl9saXN0IiA9ICIiOyB0aGVuCi0rICAgICBhbV9jb21waWxlcl9saXN0PWBzZWQgLW4g J3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnIDwgLi9kZXBjb21wYAotKyAgZmkKLSsgIGFt X191bml2ZXJzYWw9ZmFsc2UKLSsgIGNhc2UgIiAkZGVwY2MgIiBpbiAjKAotKyAgICAgKlwgLWFy Y2hcICpcIC1hcmNoXCAqKSBhbV9fdW5pdmVyc2FsPXRydWUgOzsKLSsgICAgIGVzYWMKLSsKLSsg IGZvciBkZXBtb2RlIGluICRhbV9jb21waWxlcl9saXN0OyBkbwotKyAgICAjIFNldHVwIGEgc291 cmNlIHdpdGggbWFueSBkZXBlbmRlbmNpZXMsIGJlY2F1c2Ugc29tZSBjb21waWxlcnMKLSsgICAg IyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVwZW5kZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAgKHdpdGgg XCksIGFuZAotKyAgICAjIHdlIHNob3VsZCBub3QgY2hvb3NlIGEgZGVwY29tcCBtb2RlIHdoaWNo IGlzIGNvbmZ1c2VkIGJ5IHRoaXMuCi0rICAgICMKLSsgICAgIyBXZSBuZWVkIHRvIHJlY3JlYXRl IHRoZXNlIGZpbGVzIGZvciBlYWNoIHRlc3QsIGFzIHRoZSBjb21waWxlciBtYXkKLSsgICAgIyBv dmVyd3JpdGUgc29tZSBvZiB0aGVtIHdoZW4gdGVzdGluZyB3aXRoIG9ic2N1cmUgY29tbWFuZCBs aW5lcy4KLSsgICAgIyBUaGlzIGhhcHBlbnMgYXQgbGVhc3Qgd2l0aCB0aGUgQUlYIEMgY29tcGls ZXIuCi0rICAgIDogPiBzdWIvY29uZnRlc3QuYwotKyAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNjsg ZG8KLSsgICAgICBlY2hvICcjaW5jbHVkZSAiY29uZnRzdCckaScuaCInID4+IHN1Yi9jb25mdGVz dC5jCi0rICAgICAgIyBVc2luZyBgOiA+IHN1Yi9jb25mdHN0JGkuaCcgY3JlYXRlcyBvbmx5IHN1 Yi9jb25mdHN0MS5oIHdpdGgKLSsgICAgICAjIFNvbGFyaXMgOCdzIHsvdXNyLH0vYmluL3NoLgot KyAgICAgIHRvdWNoIHN1Yi9jb25mdHN0JGkuaAotKyAgICBkb25lCi0rICAgIGVjaG8gIiR7YW1f X2luY2x1ZGV9ICR7YW1fX3F1b3RlfXN1Yi9jb25mdGVzdC5QbyR7YW1fX3F1b3RlfSIgPiBjb25m bWYKLSsKLSsgICAgIyBXZSBjaGVjayB3aXRoIGAtYycgYW5kIGAtbycgZm9yIHRoZSBzYWtlIG9m IHRoZSAiZGFzaG1zdGRvdXQiCi0rICAgICMgbW9kZS4gIEl0IHR1cm5zIG91dCB0aGF0IHRoZSBT dW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90IHByb3Blcmx5Ci0rICAgICMgaGFuZGxlIGAtTSAt bycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzLiAgQWxzbywgc29tZSBJbnRlbAotKyAgICAj IHZlcnNpb25zIGhhZCB0cm91YmxlIHdpdGggb3V0cHV0IGluIHN1YmRpcnMKLSsgICAgYW1fX29i aj1zdWIvY29uZnRlc3QuJHtPQkpFWFQtb30KLSsgICAgYW1fX21pbnVzX29iaj0iLW8gJGFtX19v YmoiCi0rICAgIGNhc2UgJGRlcG1vZGUgaW4KLSsgICAgZ2NjKQotKyAgICAgICMgVGhpcyBkZXBt b2RlIGNhdXNlcyBhIGNvbXBpbGVyIHJhY2UgaW4gdW5pdmVyc2FsIG1vZGUuCi0rICAgICAgdGVz dCAiJGFtX191bml2ZXJzYWwiID0gZmFsc2UgfHwgY29udGludWUKLSsgICAgICA7OwotKyAgICBu b3NpZGVlZmZlY3QpCi0rICAgICAgIyBhZnRlciB0aGlzIHRhZywgbWVjaGFuaXNtcyBhcmUgbm90 IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5J2xsCi0rICAgICAgIyBvbmx5IGJlIHVzZWQgd2hlbiBl eHBsaWNpdGx5IHJlcXVlc3RlZAotKyAgICAgIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lf dHJhY2tpbmciID0geHllczsgdGhlbgotKwljb250aW51ZQotKyAgICAgIGVsc2UKLSsJYnJlYWsK LSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIG1zdmlzdWFsY3BwIHwgbXN2Y21zeXMpCi0rICAg ICAgIyBUaGlzIGNvbXBpbGVyIHdvbid0IGdyb2sgYC1jIC1vJywgYnV0IGFsc28sIHRoZSBtaW51 c28gdGVzdCBoYXMKLSsgICAgICAjIG5vdCBydW4geWV0LiAgVGhlc2UgZGVwbW9kZXMgYXJlIGxh dGUgZW5vdWdoIGluIHRoZSBnYW1lLCBhbmQKLSsgICAgICAjIHNvIHdlYWsgdGhhdCB0aGVpciBm dW5jdGlvbmluZyBzaG91bGQgbm90IGJlIGltcGFjdGVkLgotKyAgICAgIGFtX19vYmo9Y29uZnRl c3QuJHtPQkpFWFQtb30KLSsgICAgICBhbV9fbWludXNfb2JqPQotKyAgICAgIDs7Ci0rICAgIG5v bmUpIGJyZWFrIDs7Ci0rICAgIGVzYWMKLSsgICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBcCi0rICAg ICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9JGFtX19vYmogXAotKyAgICAgICBkZXBm aWxlPXN1Yi9jb25mdGVzdC5QbyB0bXBkZXBmaWxlPXN1Yi9jb25mdGVzdC5UUG8gXAotKyAgICAg ICAkU0hFTEwgLi9kZXBjb21wICRkZXBjYyAtYyAkYW1fX21pbnVzX29iaiBzdWIvY29uZnRlc3Qu YyBcCi0rICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgotKyAgICAgICBncmVw IHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCi0rICAg ICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEg JiYKLSsgICAgICAgZ3JlcCAkYW1fX29iaiBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4m MSAmJgotKyAgICAgICAke01BS0UtbWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxsIDI+JjE7 IHRoZW4KLSsgICAgICAjIGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywgaXQg d2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCi0rICAgICAgIyBvciByZW1hcmtzIChldmVuIHdpdGgg LVdlcnJvcikuICBTbyB3ZSBncmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKLSsgICAgICAjIHRo YXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KLSsgICAgICAj IFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5OgotKyAgICAg ICMgICBpY2M6IENvbW1hbmQgbGluZSB3YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsgbm8g YXJndW1lbnQgcmVxdWlyZWQKLSsgICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBpY2Mg OC4wOgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1QJyBu b3Qgc3VwcG9ydGVkCi0rICAgICAgaWYgKGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29uZnRlc3Qu ZXJyIHx8Ci0rICAgICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikgPi9k ZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSsgICAgICAgIGFtX2N2X0NYWF9kZXBlbmRlbmNp ZXNfY29tcGlsZXJfdHlwZT0kZGVwbW9kZQotKyAgICAgICAgYnJlYWsKLSsgICAgICBmaQotKyAg ICBmaQotKyAgZG9uZQotKwotKyAgY2QgLi4KLSsgIHJtIC1yZiBjb25mdGVzdC5kaXIKLStlbHNl Ci0rICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQotK2ZpCi0rCi0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYW1fY3ZfQ1hYX2RlcGVu ZGVuY2llc19jb21waWxlcl90eXBlIiA+JjUKLSskYXNfZWNobyAiJGFtX2N2X0NYWF9kZXBlbmRl bmNpZXNfY29tcGlsZXJfdHlwZSIgPiY2OyB9Ci0rQ1hYREVQTU9ERT1kZXBtb2RlPSRhbV9jdl9D WFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUKLSsKLSsgaWYKLSsgIHRlc3QgIngkZW5hYmxl X2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubyBcCi0rICAmJiB0ZXN0ICIkYW1fY3ZfQ1hYX2Rl cGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzM7IHRoZW4KLSsgIGFtX19mYXN0ZGVwQ1hY X1RSVUU9Ci0rICBhbV9fZmFzdGRlcENYWF9GQUxTRT0nIycKLStlbHNlCi0rICBhbV9fZmFzdGRl cENYWF9UUlVFPScjJwotKyAgYW1fX2Zhc3RkZXBDWFhfRkFMU0U9Ci0rZmkKLSsKLSsKLSthY19l eHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1j ICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENY WCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21w aWxlcl9nbnUKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRvIHJ1 biB0aGUgQysrIHByZXByb2Nlc3NvciIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRv IHJ1biB0aGUgQysrIHByZXByb2Nlc3Nvci4uLiAiID4mNjsgfQotK2lmIHRlc3QgLXogIiRDWFhD UFAiOyB0aGVuCi0rICBpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ1hYQ1BQK3NldH0iID0gc2V0OyB0 aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgICAgICAjIERvdWJs ZSBxdW90ZXMgYmVjYXVzZSBDWFhDUFAgbmVlZHMgdG8gYmUgZXhwYW5kZWQKLSsgICAgZm9yIENY WENQUCBpbiAiJENYWCAtRSIgIi9saWIvY3BwIgotKyAgICBkbwotKyAgICAgIGFjX3ByZXByb2Nf b2s9ZmFsc2UKLStmb3IgYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcwotK2RvCi0r ICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5n IGdsaWJjCi0rICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KLSsgICMgUHJl ZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5j ZQotKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMu Ci0rICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBp bGVyJ3MgcGFyc2VyLAotKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIg aXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNv bmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5k IGNvbmZkZWZzLmguICAqLwotKyNpZmRlZiBfX1NURENfXwotKyMgaW5jbHVkZSA8bGltaXRzLmg+ Ci0rI2Vsc2UKLSsjIGluY2x1ZGUgPGFzc2VydC5oPgotKyNlbmRpZgotKwkJICAgICBTeW50YXgg ZXJyb3IKLStfQUNFT0YKLStpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIK LStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIp IDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0 ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25m dGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0 IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAgOgotK2Vsc2UKLSsg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBp bnB1dC4KLStjb250aW51ZQotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19leHQKLSsKLSsgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhl ciBub25leGlzdGVudCBoZWFkZXJzCi0rICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgotKyAg Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FD RU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8YWNf bm9uZXhpc3RlbnQuaD4KLStfQUNFT0YKLStpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3Qu JGFjX2V4dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMK LStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0r JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3Qu JGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsg IGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7 Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxh ZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAgIyBC cm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2Vsc2UKLSsgICRh c19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycg Y29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgUGFzc2VzIGJvdGggdGVzdHMuCi0rYWNfcHJl cHJvY19vaz06Ci0rYnJlYWsKLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfZXh0Ci0rCi0rZG9uZQotKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVM U0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfZXh0Ci0raWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KLSsgIGJyZWFrCi0rZmkKLSsK LSsgICAgZG9uZQotKyAgICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQCi0rCi0rZmkKLSsgIENY WENQUD0kYWNfY3ZfcHJvZ19DWFhDUFAKLStlbHNlCi0rICBhY19jdl9wcm9nX0NYWENQUD0kQ1hY Q1BQCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1hYQ1BQIiA+ JjUKLSskYXNfZWNobyAiJENYWENQUCIgPiY2OyB9Ci0rYWNfcHJlcHJvY19vaz1mYWxzZQotK2Zv ciBhY19jeHhfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCi0rZG8KLSsgICMgVXNlIGEgaGVh ZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKLSsgICMg d2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgotKyAgIyBQcmVmZXIgPGxpbWl0cy5o PiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCi0rICAjIDxsaW1p dHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KLSsgICMgT24gdGhl IE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIs Ci0rICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNh dGNoIHRoaXMgY2FzZS4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNv bmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4g ICovCi0rI2lmZGVmIF9fU1REQ19fCi0rIyBpbmNsdWRlIDxsaW1pdHMuaD4KLSsjZWxzZQotKyMg aW5jbHVkZSA8YXNzZXJ0Lmg+Ci0rI2VuZGlmCi0rCQkgICAgIFN5bnRheCBlcnJvcgotK19BQ0VP RgotK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgotK2Nhc2UgIigoJGFj X3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owot KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1Ci0rICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5l cjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25m dGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK LSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAo ZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhf cHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycgotKyAgICAgICB9OyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRh c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4k YWNfZXh0ID4mNQotKwotKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgotK2NvbnRp bnVlCi0rZmkKLSsKLStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotKwotKyAg IyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50 IGhlYWRlcnMKLSsgICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCi0rICBjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxhY19ub25leGlzdGVudC5o PgotK19BQ0VPRgotK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgotK2Nh c2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5j b25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu ZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0 LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKLSsJIHRlc3QgLXog IiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9OyB0aGVuCi0rICAjIEJyb2tlbjogc3VjY2Vz cyBvbiBpbnZhbGlkIGlucHV0LgotK2NvbnRpbnVlCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19t ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNf ZXh0ID4mNQotKwotKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KLSthY19wcmVwcm9jX29rPToKLSti cmVhawotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLStk b25lCi0rIyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5n IGNvZGUgd2FzIHNraXBwZWQuCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQK LStpZiAkYWNfcHJlcHJvY19vazsgdGhlbgotKyAgOgotK2Vsc2UKLSsgIHsgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Ci0rJGFzX2VjaG8gIiRh c19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotK3sgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBDKysgcHJlcHJvY2Vzc29yIFwiJENYWENQUFwiIGZhaWxzIHNhbml0 eSBjaGVjawotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogQysrIHByZXByb2Nlc3NvciBcIiRDWFhDUFBcIiBmYWlscyBz YW5pdHkgY2hlY2sKLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30K LSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLStmaQotKwotK2FjX2V4dD1jCi0rYWNf Y3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxB R1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4m NScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0rCi0rQ1hYRkxBR1M9 IiRzYXZlX0NYWEZMQUdTIgotKyMgRmluZCBhIGdvb2QgaW5zdGFsbCBwcm9ncmFtLiAgV2UgcHJl ZmVyIGEgQyBwcm9ncmFtIChmYXN0ZXIpLAotKyMgc28gb25lIHNjcmlwdCBpcyBhcyBnb29kIGFz IGFub3RoZXIuICBCdXQgYXZvaWQgdGhlIGJyb2tlbiBvcgotKyMgaW5jb21wYXRpYmxlIHZlcnNp b25zOgotKyMgU3lzViAvZXRjL2luc3RhbGwsIC91c3Ivc2Jpbi9pbnN0YWxsCi0rIyBTdW5PUyAv dXNyL2V0Yy9pbnN0YWxsCi0rIyBJUklYIC9zYmluL2luc3RhbGwKLSsjIEFJWCAvYmluL2luc3Rh bGwKLSsjIEFtaWdhT1MgL0MvaW5zdGFsbCwgd2hpY2ggaW5zdGFsbHMgYm9vdGJsb2NrcyBvbiBm bG9wcHkgZGlzY3MKLSsjIEFJWCA0IC91c3IvYmluL2luc3RhbGxic2QsIHdoaWNoIGRvZXNuJ3Qg d29yayB3aXRob3V0IGEgLWcgZmxhZwotKyMgQUZTIC91c3IvYWZzd3MvYmluL2luc3RhbGwsIHdo aWNoIG1pc2hhbmRsZXMgbm9uZXhpc3RlbnQgYXJncwotKyMgU1ZSNCAvdXNyL3VjYi9pbnN0YWxs LCB3aGljaCB0cmllcyB0byB1c2UgdGhlIG5vbmV4aXN0ZW50IGdyb3VwICJzdGFmZiIKLSsjIE9T LzIncyBzeXN0ZW0gaW5zdGFsbCwgd2hpY2ggaGFzIGEgY29tcGxldGVseSBkaWZmZXJlbnQgc2Vt YW50aWMKLSsjIC4vaW5zdGFsbCwgd2hpY2ggY2FuIGJlIGVycm9uZW91c2x5IGNyZWF0ZWQgYnkg bWFrZSBmcm9tIC4vaW5zdGFsbC5zaC4KLSsjIFJlamVjdCBpbnN0YWxsIHByb2dyYW1zIHRoYXQg Y2Fubm90IGluc3RhbGwgbXVsdGlwbGUgZmlsZXMuCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gIiA+JjY7IH0KLStp ZiB0ZXN0IC16ICIkSU5TVEFMTCI7IHRoZW4KLStpZiB0ZXN0ICIke2FjX2N2X3BhdGhfaW5zdGFs bCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBp biAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgotKyAgIyBBY2NvdW50IGZvciBwZW9wbGUgd2hvIHB1dCB0cmFpbGluZyBzbGFz aGVzIGluIFBBVEggZWxlbWVudHMuCi0rY2FzZSAkYXNfZGlyLyBpbgotKyAgLi8gfCAuLy8gfCAv Y0MvKiB8IFwKLSsgIC9ldGMvKiB8IC91c3Ivc2Jpbi8qIHwgL3Vzci9ldGMvKiB8IC9zYmluLyog fCAvdXNyL2Fmc3dzL2Jpbi8qIHwgXAotKyAgPzpcXC9vczJcXC9pbnN0YWxsXFwvKiB8ID86XFwv T1MyXFwvSU5TVEFMTFxcLyogfCBcCi0rICAvdXNyL3VjYi8qICkgOzsKLSsgICopCi0rICAgICMg T1NGMSBhbmQgU0NPIE9EVCAzLjAgaGF2ZSB0aGVpciBvd24gbmFtZXMgZm9yIGluc3RhbGwuCi0r ICAgICMgRG9uJ3QgdXNlIGluc3RhbGxic2QgZnJvbSBPU0Ygc2luY2UgaXQgaW5zdGFsbHMgc3R1 ZmYgYXMgcm9vdAotKyAgICAjIGJ5IGRlZmF1bHQuCi0rICAgIGZvciBhY19wcm9nIGluIGdpbnN0 YWxsIHNjb2luc3QgaW5zdGFsbDsgZG8KLSsgICAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsJaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY19w cm9nJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNf ZXh0IjsgfTsgdGhlbgotKwkgIGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCi0rCSAgICBn cmVwIGRzcG1zZyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYx OyB0aGVuCi0rCSAgICAjIEFJWCBpbnN0YWxsLiAgSXQgaGFzIGFuIGluY29tcGF0aWJsZSBjYWxs aW5nIGNvbnZlbnRpb24uCi0rCSAgICA6Ci0rCSAgZWxpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFs bCAmJgotKwkgICAgZ3JlcCBwd3BsdXMgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiID4v ZGV2L251bGwgMj4mMTsgdGhlbgotKwkgICAgIyBwcm9ncmFtLXNwZWNpZmljIGluc3RhbGwgc2Ny aXB0IHVzZWQgYnkgSFAgcHdwbHVzLS1kb24ndCB1c2UuCi0rCSAgICA6Ci0rCSAgZWxzZQotKwkg ICAgcm0gLXJmIGNvbmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gY29uZnRlc3QuZGlyCi0rCSAgICBl Y2hvIG9uZSA+IGNvbmZ0ZXN0Lm9uZQotKwkgICAgZWNobyB0d28gPiBjb25mdGVzdC50d28KLSsJ ICAgIG1rZGlyIGNvbmZ0ZXN0LmRpcgotKwkgICAgaWYgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhl Y19leHQiIC1jIGNvbmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gImBwd2RgL2NvbmZ0ZXN0LmRpciIg JiYKLSsJICAgICAgdGVzdCAtcyBjb25mdGVzdC5vbmUgJiYgdGVzdCAtcyBjb25mdGVzdC50d28g JiYKLSsJICAgICAgdGVzdCAtcyBjb25mdGVzdC5kaXIvY29uZnRlc3Qub25lICYmCi0rCSAgICAg IHRlc3QgLXMgY29uZnRlc3QuZGlyL2NvbmZ0ZXN0LnR3bwotKwkgICAgdGhlbgotKwkgICAgICBh Y19jdl9wYXRoX2luc3RhbGw9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQgLWMiCi0rCSAg ICAgIGJyZWFrIDMKLSsJICAgIGZpCi0rCSAgZmkKLSsJZmkKLSsgICAgICBkb25lCi0rICAgIGRv bmUKLSsgICAgOzsKLStlc2FjCi0rCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStybSAt cmYgY29uZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byBjb25mdGVzdC5kaXIKLSsKLStmaQotKyAgaWYg dGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICAgSU5TVEFM TD0kYWNfY3ZfcGF0aF9pbnN0YWxsCi0rICBlbHNlCi0rICAgICMgQXMgYSBsYXN0IHJlc29ydCwg dXNlIHRoZSBzbG93IHNoZWxsIHNjcmlwdC4gIERvbid0IGNhY2hlIGEKLSsgICAgIyB2YWx1ZSBm b3IgSU5TVEFMTCB3aXRoaW4gYSBzb3VyY2UgZGlyZWN0b3J5LCBiZWNhdXNlIHRoYXQgd2lsbAot KyAgICAjIGJyZWFrIG90aGVyIHBhY2thZ2VzIHVzaW5nIHRoZSBjYWNoZSBpZiB0aGF0IGRpcmVj dG9yeSBpcwotKyAgICAjIHJlbW92ZWQsIG9yIGlmIHRoZSB2YWx1ZSBpcyBhIHJlbGF0aXZlIG5h bWUuCi0rICAgIElOU1RBTEw9JGFjX2luc3RhbGxfc2gKLSsgIGZpCi0rZmkKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkSU5TVEFMTCIgPiY1Ci0rJGFzX2VjaG8gIiRJTlNU QUxMIiA+JjY7IH0KLSsKLSsjIFVzZSB0ZXN0IC16IGJlY2F1c2UgU3VuT1M0IHNoIG1pc2hhbmRs ZXMgYnJhY2VzIGluICR7dmFyLXZhbH0uCi0rIyBJdCB0aGlua3MgdGhlIGZpcnN0IGNsb3NlIGJy YWNlIGVuZHMgdGhlIHZhcmlhYmxlIHN1YnN0aXR1dGlvbi4KLSt0ZXN0IC16ICIkSU5TVEFMTF9Q Uk9HUkFNIiAmJiBJTlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCi0rCi0rdGVzdCAteiAiJElO U1RBTExfU0NSSVBUIiAmJiBJTlNUQUxMX1NDUklQVD0nJHtJTlNUQUxMfScKLSsKLSt0ZXN0IC16 ICIkSU5TVEFMTF9EQVRBIiAmJiBJTlNUQUxMX0RBVEE9JyR7SU5TVEFMTH0gLW0gNjQ0JwotKwot K2Nhc2UgYHB3ZGAgaW4KLSsgICpcICogfCAqXAkqKQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogV0FSTklORzogTGlidG9vbCBkb2VzIG5vdCBjb3BlIHdlbGwgd2l0aCB3aGl0ZXNw YWNlIGluIFxgcHdkXGAiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IExpYnRvb2wg ZG9lcyBub3QgY29wZSB3ZWxsIHdpdGggd2hpdGVzcGFjZSBpbiBcYHB3ZFxgIiA+JjI7fSA7Owot K2VzYWMKLSsKLSsKLSsKLSttYWNyb192ZXJzaW9uPScyLjIuNmInCi0rbWFjcm9fcmV2aXNpb249 JzEuMzAxNycKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLStsdG1haW49 IiRhY19hdXhfZGlyL2x0bWFpbi5zaCIKLSsKLSthY19leHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQ RkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGls ZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotK2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZp eCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZp eH1nY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1t eSAke2FjX3Rvb2xfcHJlZml4fWdjYzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9 IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBp ZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0rICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVf SUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0 IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfQ0M9IiR7YWNfdG9vbF9w cmVmaXh9Z2NjIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStk b25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStDQz0kYWNfY3ZfcHJvZ19DQwot K2lmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRDQyIgPiY1Ci0rJGFzX2VjaG8gIiRDQyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2 OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX0NDIjsgdGhlbgot KyAgYWNfY3RfQ0M9JENDCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImdjYyIsIHNv IGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGdjYzsgYWNf d29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dv cmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQot K2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DQytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0Mi OyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2Vy IG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhf U0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZT Ci0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGlu ICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9ImdjYyIKLSsg ICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNf c2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfQ0M9JGFjX2N2X3Byb2dfYWNfY3RfQ0MKLStp ZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkYWNfY3RfQ0MiID4mNQotKyRhc19lY2hvICIkYWNfY3RfQ0MiID4mNjsgfQot K2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSsk YXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X0NDIiA9IHg7 IHRoZW4KLSsgICAgQ0M9IiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRh Y190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdB Uk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHBy ZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7Owot K2VzYWMKLSsgICAgQ0M9JGFjX2N0X0NDCi0rICBmaQotK2Vsc2UKLSsgIENDPSIkYWNfY3ZfcHJv Z19DQyIKLStmaQotKwotK2lmIHRlc3QgLXogIiRDQyI7IHRoZW4KLSsgICAgICAgICAgaWYgdGVz dCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdv cmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9Y2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmdzLgotK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWNjOyBhY193b3JkPSQyCi0r eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAi JHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSsgIGFjX2N2X3Byb2df Q0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0r ZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u Ci0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8K LSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rl c3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3Zf cHJvZ19DQz0iJHthY190b29sX3ByZWZpeH1jYyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsg MgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0r Q0M9JGFjX2N2X3Byb2dfQ0MKLStpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4mNQotKyRhc19lY2hvICIkQ0MiID4mNjsg fQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUK LSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICBmaQotK2ZpCi0raWYgdGVzdCAt eiAiJENDIjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJjYyIsIHNvIGl0 IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGNjOyBhY193b3Jk PSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYg dGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSsgIGFjX2N2 X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQot KyAgYWNfcHJvZ19yZWplY3RlZD1ubwotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB UkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCI7IH07IHRoZW4KLSsgICAgaWYgdGVzdCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgPSAiL3Vzci91Y2IvY2MiOyB0aGVuCi0rICAgICAgIGFjX3Byb2dfcmVqZWN0ZWQ9eWVz Ci0rICAgICAgIGNvbnRpbnVlCi0rICAgICBmaQotKyAgICBhY19jdl9wcm9nX0NDPSJjYyIKLSsg ICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNf c2F2ZV9JRlMKLSsKLStpZiB0ZXN0ICRhY19wcm9nX3JlamVjdGVkID0geWVzOyB0aGVuCi0rICAj IFdlIGZvdW5kIGEgYm9nb24gaW4gdGhlIHBhdGgsIHNvIG1ha2Ugc3VyZSB3ZSBuZXZlciB1c2Ug aXQuCi0rICBzZXQgZHVtbXkgJGFjX2N2X3Byb2dfQ0MKLSsgIHNoaWZ0Ci0rICBpZiB0ZXN0ICQj ICE9IDA7IHRoZW4KLSsgICAgIyBXZSBjaG9zZSBhIGRpZmZlcmVudCBjb21waWxlciBmcm9tIHRo ZSBib2d1cyBvbmUuCi0rICAgICMgSG93ZXZlciwgaXQgaGFzIHRoZSBzYW1lIGJhc2VuYW1lLCBz byB0aGUgYm9nb24gd2lsbCBiZSBjaG9zZW4KLSsgICAgIyBmaXJzdCBpZiB3ZSBzZXQgQ0MgdG8g anVzdCB0aGUgYmFzZW5hbWU7IHVzZSB0aGUgZnVsbCBmaWxlIG5hbWUuCi0rICAgIHNoaWZ0Ci0r ICAgIGFjX2N2X3Byb2dfQ0M9IiRhc19kaXIvJGFjX3dvcmQkezErJyAnfSRAIgotKyAgZmkKLStm aQotK2ZpCi0rZmkKLStDQz0kYWNfY3ZfcHJvZ19DQwotK2lmIHRlc3QgLW4gIiRDQyI7IHRoZW4K LSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1Ci0rJGFzX2Vj aG8gIiRDQyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lm IHRlc3QgLXogIiRDQyI7IHRoZW4KLSsgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRo ZW4KLSsgIGZvciBhY19wcm9nIGluIGNsLmV4ZQotKyAgZG8KLSsgICAgIyBFeHRyYWN0IHRoZSBm aXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9n OyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAk YWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2 OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4K LSsgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu Ci0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNf ZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRo ZW4KLSsgICAgYWNfY3ZfcHJvZ19DQz0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCi0rICAgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVf SUZTCi0rCi0rZmkKLStmaQotK0NDPSRhY19jdl9wcm9nX0NDCi0raWYgdGVzdCAtbiAiJENDIjsg dGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKLSsk YXNfZWNobyAiJENDIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAg ICB0ZXN0IC1uICIkQ0MiICYmIGJyZWFrCi0rICBkb25lCi0rZmkKLStpZiB0ZXN0IC16ICIkQ0Mi OyB0aGVuCi0rICBhY19jdF9DQz0kQ0MKLSsgIGZvciBhY19wcm9nIGluIGNsLmV4ZQotK2RvCi0r ICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEg cHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIK LSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0 ICIke2FjX2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgot KyAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iJGFjX2N0X0NDIiAjIExldCB0aGUgdXNlciBvdmVycmlk ZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRP UgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVz dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNf ZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfcHJvZyIKLSsgICAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2 ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfQ0M9JGFjX2N2X3Byb2dfYWNfY3RfQ0MKLStpZiB0 ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYWNfY3RfQ0MiID4mNQotKyRhc19lY2hvICIkYWNfY3RfQ0MiID4mNjsgfQotK2Vs c2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNf ZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICB0ZXN0IC1uICIkYWNfY3RfQ0MiICYmIGJy ZWFrCi0rZG9uZQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9DQyIgPSB4OyB0aGVuCi0rICAgIEND PSIiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQg aW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBj cm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hv ICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhv c3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIEND PSRhY19jdF9DQwotKyAgZmkKLStmaQotKwotK2ZpCi0rCi0rCi0rdGVzdCAteiAiJENDIiAmJiB7 IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQot KyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLSt7IHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBDIGNvbXBpbGVyIGZv dW5kIGluIFwkUEFUSAotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBDIGNvbXBpbGVyIGZvdW5k IGluIFwkUEFUSAotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQot KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQotKwotKyMgUHJvdmlkZSBzb21lIGluZm9y bWF0aW9uIGFib3V0IHRoZSBjb21waWxlci4KLSskYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciBDIGNvbXBpbGVyIHZlcnNpb24iID4mNQotK3NldCBYICRhY19jb21waWxlCi0r YWNfY29tcGlsZXI9JDIKLSt7IChhY190cnk9IiRhY19jb21waWxlciAtLXZlcnNpb24gPiY1Igot K2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA+JjUi KSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotK3sgKGFjX3RyeT0i JGFjX2NvbXBpbGVyIC12ID4mNSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19j b21waWxlciAtdiA+JjUiKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsg fQotK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC1WID4mNSIKLStjYXNlICIoKCRhY190cnkiIGlu Ci0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQot KyAgKGV2YWwgIiRhY19jb21waWxlciAtViA+JjUiKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhp dCAkYWNfc3RhdHVzKTsgfQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlci4uLiAi ID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfY19jb21waWxlcl9nbnUrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKyNp Zm5kZWYgX19HTlVDX18KLSsgICAgICAgY2hva2UgbWUKLSsjZW5kaWYKLSsKLSsgIDsKLSsgIHJl dHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAo YWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19j b21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAq KycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAg Y2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16 ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAg ICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGFjX2NvbXBpbGVy X2dudT15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2NvbXBp bGVyX2dudT1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rYWNfY3ZfY19jb21waWxlcl9nbnU9JGFjX2NvbXBp bGVyX2dudQotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj X2N2X2NfY29tcGlsZXJfZ251IiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X2NfY29tcGlsZXJfZ251 IiA+JjY7IH0KLStpZiB0ZXN0ICRhY19jb21waWxlcl9nbnUgPSB5ZXM7IHRoZW4KLSsgIEdDQz15 ZXMKLStlbHNlCi0rICBHQ0M9Ci0rZmkKLSthY190ZXN0X0NGTEFHUz0ke0NGTEFHUytzZXR9Ci0r YWNfc2F2ZV9DRkxBR1M9JENGTEFHUwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyB3aGV0aGVyICRDQyBhY2NlcHRzIC1nIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3 aGV0aGVyICRDQyBhY2NlcHRzIC1nLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9n X2NjX2crc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgYWNfc2F2ZV9jX3dlcnJvcl9mbGFnPSRhY19jX3dlcnJvcl9mbGFnCi0rICAgYWNf Y193ZXJyb3JfZmxhZz15ZXMKLSsgICBhY19jdl9wcm9nX2NjX2c9bm8KLSsgICBDRkxBR1M9Ii1n IgotKyAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAq LwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50 Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAt ZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNl ICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsg IGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRh Y19vYmpleHQ7IHRoZW4KLSsgIGFjX2N2X3Byb2dfY2NfZz15ZXMKLStlbHNlCi0rICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1Ci0rCi0rCUNGTEFHUz0iIgotKyAgICAgIGNhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsK LSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0r aWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwg IiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAt diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVy MQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0 ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIK LSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIDoKLStl bHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2Nfd2Vycm9yX2ZsYWc9JGFj X3NhdmVfY193ZXJyb3JfZmxhZwotKwkgQ0ZMQUdTPSItZyIKLSsJIGNhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsK LSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0r aWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwg IiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAt diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVy MQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0 ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIK LSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGFjX2N2 X3Byb2dfY2NfZz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCi0r ZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0LiRhY19leHQKLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICAgYWNfY193ZXJyb3Jf ZmxhZz0kYWNfc2F2ZV9jX3dlcnJvcl9mbGFnCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jY19nIiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X3By b2dfY2NfZyIgPiY2OyB9Ci0raWYgdGVzdCAiJGFjX3Rlc3RfQ0ZMQUdTIiA9IHNldDsgdGhlbgot KyAgQ0ZMQUdTPSRhY19zYXZlX0NGTEFHUwotK2VsaWYgdGVzdCAkYWNfY3ZfcHJvZ19jY19nID0g eWVzOyB0aGVuCi0rICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBDRkxBR1M9Ii1n IC1PMiIKLSsgIGVsc2UKLSsgICAgQ0ZMQUdTPSItZyIKLSsgIGZpCi0rZWxzZQotKyAgaWYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICAgQ0ZMQUdTPSItTzIiCi0rICBlbHNlCi0rICAgIENG TEFHUz0KLSsgIGZpCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg Zm9yICRDQyBvcHRpb24gdG8gYWNjZXB0IElTTyBDODkiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciAkQ0Mgb3B0aW9uIHRvIGFjY2VwdCBJU08gQzg5Li4uICIgPiY2OyB9Ci0raWYgdGVz dCAiJHthY19jdl9wcm9nX2NjX2M4OStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jdl9wcm9nX2NjX2M4OT1ubwotK2FjX3NhdmVf Q0M9JENDCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4g ICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5j bHVkZSA8c3RkYXJnLmg+Ci0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rI2luY2x1ZGUgPHN5cy90eXBl cy5oPgotKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgotKy8qIE1vc3Qgb2YgdGhlIGZvbGxvd2luZyB0 ZXN0cyBhcmUgc3RvbGVuIGZyb20gUkNTIDUuNydzIHNyYy9jb25mLnNoLiAgKi8KLStzdHJ1Y3Qg YnVmIHsgaW50IHg7IH07Ci0rRklMRSAqICgqcmNzb3BlbikgKHN0cnVjdCBidWYgKiwgc3RydWN0 IHN0YXQgKiwgaW50KTsKLStzdGF0aWMgY2hhciAqZSAocCwgaSkKLSsgICAgIGNoYXIgKipwOwot KyAgICAgaW50IGk7Ci0rewotKyAgcmV0dXJuIHBbaV07Ci0rfQotK3N0YXRpYyBjaGFyICpmIChj aGFyICogKCpnKSAoY2hhciAqKiwgaW50KSwgY2hhciAqKnAsIC4uLikKLSt7Ci0rICBjaGFyICpz OwotKyAgdmFfbGlzdCB2OwotKyAgdmFfc3RhcnQgKHYscCk7Ci0rICBzID0gZyAocCwgdmFfYXJn ICh2LGludCkpOwotKyAgdmFfZW5kICh2KTsKLSsgIHJldHVybiBzOwotK30KLSsKLSsvKiBPU0Yg NC4wIENvbXBhcSBjYyBpcyBzb21lIHNvcnQgb2YgYWxtb3N0LUFOU0kgYnkgZGVmYXVsdC4gIEl0 IGhhcwotKyAgIGZ1bmN0aW9uIHByb3RvdHlwZXMgYW5kIHN0dWZmLCBidXQgbm90ICdceEhIJyBo ZXggY2hhcmFjdGVyIGNvbnN0YW50cy4KLSsgICBUaGVzZSBkb24ndCBwcm92b2tlIGFuIGVycm9y IHVuZm9ydHVuYXRlbHksIGluc3RlYWQgYXJlIHNpbGVudGx5IHRyZWF0ZWQKLSsgICBhcyAneCcu ICBUaGUgZm9sbG93aW5nIGluZHVjZXMgYW4gZXJyb3IsIHVudGlsIC1zdGQgaXMgYWRkZWQgdG8g Z2V0Ci0rICAgcHJvcGVyIEFOU0kgbW9kZS4gIEN1cmlvdXNseSAnXHgwMCchPSd4JyBhbHdheXMg Y29tZXMgb3V0IHRydWUsIGZvciBhbgotKyAgIGFycmF5IHNpemUgYXQgbGVhc3QuICBJdCdzIG5l Y2Vzc2FyeSB0byB3cml0ZSAnXHgwMCc9PTAgdG8gZ2V0IHNvbWV0aGluZwotKyAgIHRoYXQncyB0 cnVlIG9ubHkgd2l0aCAtc3RkLiAgKi8KLStpbnQgb3NmNF9jY19hcnJheSBbJ1x4MDAnID09IDAg PyAxIDogLTFdOwotKwotKy8qIElCTSBDIDYgZm9yIEFJWCBpcyBhbG1vc3QtQU5TSSBieSBkZWZh dWx0LCBidXQgaXQgcmVwbGFjZXMgbWFjcm8gcGFyYW1ldGVycwotKyAgIGluc2lkZSBzdHJpbmdz IGFuZCBjaGFyYWN0ZXIgY29uc3RhbnRzLiAgKi8KLSsjZGVmaW5lIEZPTyh4KSAneCcKLStpbnQg eGxjNl9jY19hcnJheVtGT08oYSkgPT0gJ3gnID8gMSA6IC0xXTsKLSsKLStpbnQgdGVzdCAoaW50 IGksIGRvdWJsZSB4KTsKLStzdHJ1Y3QgczEge2ludCAoKmYpIChpbnQgYSk7fTsKLStzdHJ1Y3Qg czIge2ludCAoKmYpIChkb3VibGUgYSk7fTsKLStpbnQgcGFpcm5hbWVzIChpbnQsIGNoYXIgKios IEZJTEUgKigqKShzdHJ1Y3QgYnVmICosIHN0cnVjdCBzdGF0ICosIGludCksIGludCwgaW50KTsK LStpbnQgYXJnYzsKLStjaGFyICoqYXJndjsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBm IChlLCBhcmd2LCAwKSAhPSBhcmd2WzBdICB8fCAgZiAoZSwgYXJndiwgMSkgIT0gYXJndlsxXTsK LSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStmb3IgYWNfYXJnIGluICcnIC1xbGFu Z2x2bD1leHRjODkgLXFsYW5nbHZsPWFuc2kgLXN0ZCBcCi0rCS1BZSAiLUFhIC1EX0hQVVhfU09V UkNFIiAiLVhjIC1EX19FWFRFTlNJT05TX18iCi0rZG8KLSsgIENDPSIkYWNfc2F2ZV9DQyAkYWNf YXJnIgotKyAgcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2Nv bXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0r ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29u ZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVy MSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5l cnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9y X2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAt cyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBhY19jdl9wcm9nX2NjX2M4OT0kYWNfYXJn Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0r c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0rCi0rcm0gLWYg Y29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dAotKyAgdGVzdCAieCRhY19jdl9w cm9nX2NjX2M4OSIgIT0gInhubyIgJiYgYnJlYWsKLStkb25lCi0rcm0gLWYgY29uZnRlc3QuJGFj X2V4dAotK0NDPSRhY19zYXZlX0NDCi0rCi0rZmkKLSsjIEFDX0NBQ0hFX1ZBTAotK2Nhc2UgIngk YWNfY3ZfcHJvZ19jY19jODkiIGluCi0rICB4KQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBub25lIG5lZWRlZCIgPiY1Ci0rJGFzX2VjaG8gIm5vbmUgbmVlZGVkIiA+ JjY7IH0gOzsKLSsgIHhubykKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogdW5zdXBwb3J0ZWQiID4mNQotKyRhc19lY2hvICJ1bnN1cHBvcnRlZCIgPiY2OyB9IDs7Ci0r ICAqKQotKyAgICBDQz0iJENDICRhY19jdl9wcm9nX2NjX2M4OSIKLSsgICAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3Byb2dfY2NfYzg5IiA+JjUKLSskYXNfZWNo byAiJGFjX2N2X3Byb2dfY2NfYzg5IiA+JjY7IH0gOzsKLStlc2FjCi0rCi0rCi0rYWNfZXh0PWMK LSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ0MgLW8gY29uZnRlc3Qk YWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ QlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLSsKLStkZXBj Yz0iJENDIiAgIGFtX2NvbXBpbGVyX2xpc3Q9Ci0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYy4uLiAiID4mNjsgfQotK2lmIHRl c3QgIiR7YW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAteiAi JEFNREVQX1RSVUUiICYmIHRlc3QgLWYgIiRhbV9kZXBjb21wIjsgdGhlbgotKyAgIyBXZSBtYWtl IGEgc3ViZGlyIGFuZCBkbyB0aGUgdGVzdHMgdGhlcmUuICBPdGhlcndpc2Ugd2UgY2FuIGVuZCB1 cAotKyAgIyBtYWtpbmcgYm9ndXMgZmlsZXMgdGhhdCB3ZSBkb24ndCBrbm93IGFib3V0IGFuZCBu ZXZlciByZW1vdmUuICBGb3IKLSsgICMgaW5zdGFuY2UgaXQgd2FzIHJlcG9ydGVkIHRoYXQgb24g SFAtVVggdGhlIGdjYyB0ZXN0IHdpbGwgZW5kIHVwCi0rICAjIG1ha2luZyBhIGR1bW15IGZpbGUg bmFtZWQgYEQnIC0tIGJlY2F1c2UgYC1NRCcgbWVhbnMgYHB1dCB0aGUgb3V0cHV0Ci0rICAjIGlu IEQnLgotKyAgbWtkaXIgY29uZnRlc3QuZGlyCi0rICAjIENvcHkgZGVwY29tcCB0byBzdWJkaXIg YmVjYXVzZSBvdGhlcndpc2Ugd2Ugd29uJ3QgZmluZCBpdCBpZiB3ZSdyZQotKyAgIyB1c2luZyBh IHJlbGF0aXZlIGRpcmVjdG9yeS4KLSsgIGNwICIkYW1fZGVwY29tcCIgY29uZnRlc3QuZGlyCi0r ICBjZCBjb25mdGVzdC5kaXIKLSsgICMgV2Ugd2lsbCBidWlsZCBvYmplY3RzIGFuZCBkZXBlbmRl bmNpZXMgaW4gYSBzdWJkaXJlY3RvcnkgYmVjYXVzZQotKyAgIyBpdCBoZWxwcyB0byBkZXRlY3Qg aW5hcHBsaWNhYmxlIGRlcGVuZGVuY3kgbW9kZXMuICBGb3IgaW5zdGFuY2UKLSsgICMgYm90aCBU cnU2NCdzIGNjIGFuZCBJQ0Mgc3VwcG9ydCAtTUQgdG8gb3V0cHV0IGRlcGVuZGVuY2llcyBhcyBh Ci0rICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBpbGF0aW9uLCBidXQgSUNDIHdpbGwgcHV0IHRoZSBk ZXBlbmRlbmNpZXMgaW4KLSsgICMgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHdoaWxlIFRydTY0IHdp bGwgcHV0IHRoZW0gaW4gdGhlIG9iamVjdAotKyAgIyBkaXJlY3RvcnkuCi0rICBta2RpciBzdWIK LSsKLSsgIGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKLSsgIGlmIHRl c3QgIiRhbV9jb21waWxlcl9saXN0IiA9ICIiOyB0aGVuCi0rICAgICBhbV9jb21waWxlcl9saXN0 PWBzZWQgLW4gJ3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnIDwgLi9kZXBjb21wYAotKyAg ZmkKLSsgIGFtX191bml2ZXJzYWw9ZmFsc2UKLSsgIGNhc2UgIiAkZGVwY2MgIiBpbiAjKAotKyAg ICAgKlwgLWFyY2hcICpcIC1hcmNoXCAqKSBhbV9fdW5pdmVyc2FsPXRydWUgOzsKLSsgICAgIGVz YWMKLSsKLSsgIGZvciBkZXBtb2RlIGluICRhbV9jb21waWxlcl9saXN0OyBkbwotKyAgICAjIFNl dHVwIGEgc291cmNlIHdpdGggbWFueSBkZXBlbmRlbmNpZXMsIGJlY2F1c2Ugc29tZSBjb21waWxl cnMKLSsgICAgIyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVwZW5kZW5jeSBsaXN0cyBvbiBjb2x1bW4g ODAgKHdpdGggXCksIGFuZAotKyAgICAjIHdlIHNob3VsZCBub3QgY2hvb3NlIGEgZGVwY29tcCBt b2RlIHdoaWNoIGlzIGNvbmZ1c2VkIGJ5IHRoaXMuCi0rICAgICMKLSsgICAgIyBXZSBuZWVkIHRv IHJlY3JlYXRlIHRoZXNlIGZpbGVzIGZvciBlYWNoIHRlc3QsIGFzIHRoZSBjb21waWxlciBtYXkK LSsgICAgIyBvdmVyd3JpdGUgc29tZSBvZiB0aGVtIHdoZW4gdGVzdGluZyB3aXRoIG9ic2N1cmUg Y29tbWFuZCBsaW5lcy4KLSsgICAgIyBUaGlzIGhhcHBlbnMgYXQgbGVhc3Qgd2l0aCB0aGUgQUlY IEMgY29tcGlsZXIuCi0rICAgIDogPiBzdWIvY29uZnRlc3QuYwotKyAgICBmb3IgaSBpbiAxIDIg MyA0IDUgNjsgZG8KLSsgICAgICBlY2hvICcjaW5jbHVkZSAiY29uZnRzdCckaScuaCInID4+IHN1 Yi9jb25mdGVzdC5jCi0rICAgICAgIyBVc2luZyBgOiA+IHN1Yi9jb25mdHN0JGkuaCcgY3JlYXRl cyBvbmx5IHN1Yi9jb25mdHN0MS5oIHdpdGgKLSsgICAgICAjIFNvbGFyaXMgOCdzIHsvdXNyLH0v YmluL3NoLgotKyAgICAgIHRvdWNoIHN1Yi9jb25mdHN0JGkuaAotKyAgICBkb25lCi0rICAgIGVj aG8gIiR7YW1fX2luY2x1ZGV9ICR7YW1fX3F1b3RlfXN1Yi9jb25mdGVzdC5QbyR7YW1fX3F1b3Rl fSIgPiBjb25mbWYKLSsKLSsgICAgIyBXZSBjaGVjayB3aXRoIGAtYycgYW5kIGAtbycgZm9yIHRo ZSBzYWtlIG9mIHRoZSAiZGFzaG1zdGRvdXQiCi0rICAgICMgbW9kZS4gIEl0IHR1cm5zIG91dCB0 aGF0IHRoZSBTdW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90IHByb3Blcmx5Ci0rICAgICMgaGFu ZGxlIGAtTSAtbycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzLiAgQWxzbywgc29tZSBJbnRl bAotKyAgICAjIHZlcnNpb25zIGhhZCB0cm91YmxlIHdpdGggb3V0cHV0IGluIHN1YmRpcnMKLSsg ICAgYW1fX29iaj1zdWIvY29uZnRlc3QuJHtPQkpFWFQtb30KLSsgICAgYW1fX21pbnVzX29iaj0i LW8gJGFtX19vYmoiCi0rICAgIGNhc2UgJGRlcG1vZGUgaW4KLSsgICAgZ2NjKQotKyAgICAgICMg VGhpcyBkZXBtb2RlIGNhdXNlcyBhIGNvbXBpbGVyIHJhY2UgaW4gdW5pdmVyc2FsIG1vZGUuCi0r ICAgICAgdGVzdCAiJGFtX191bml2ZXJzYWwiID0gZmFsc2UgfHwgY29udGludWUKLSsgICAgICA7 OwotKyAgICBub3NpZGVlZmZlY3QpCi0rICAgICAgIyBhZnRlciB0aGlzIHRhZywgbWVjaGFuaXNt cyBhcmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5J2xsCi0rICAgICAgIyBvbmx5IGJlIHVz ZWQgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZAotKyAgICAgIGlmIHRlc3QgIngkZW5hYmxlX2Rl cGVuZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhlbgotKwljb250aW51ZQotKyAgICAgIGVsc2UK LSsJYnJlYWsKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIG1zdmlzdWFsY3BwIHwgbXN2Y21z eXMpCi0rICAgICAgIyBUaGlzIGNvbXBpbGVyIHdvbid0IGdyb2sgYC1jIC1vJywgYnV0IGFsc28s IHRoZSBtaW51c28gdGVzdCBoYXMKLSsgICAgICAjIG5vdCBydW4geWV0LiAgVGhlc2UgZGVwbW9k ZXMgYXJlIGxhdGUgZW5vdWdoIGluIHRoZSBnYW1lLCBhbmQKLSsgICAgICAjIHNvIHdlYWsgdGhh dCB0aGVpciBmdW5jdGlvbmluZyBzaG91bGQgbm90IGJlIGltcGFjdGVkLgotKyAgICAgIGFtX19v Ymo9Y29uZnRlc3QuJHtPQkpFWFQtb30KLSsgICAgICBhbV9fbWludXNfb2JqPQotKyAgICAgIDs7 Ci0rICAgIG5vbmUpIGJyZWFrIDs7Ci0rICAgIGVzYWMKLSsgICAgaWYgZGVwbW9kZT0kZGVwbW9k ZSBcCi0rICAgICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9JGFtX19vYmogXAotKyAg ICAgICBkZXBmaWxlPXN1Yi9jb25mdGVzdC5QbyB0bXBkZXBmaWxlPXN1Yi9jb25mdGVzdC5UUG8g XAotKyAgICAgICAkU0hFTEwgLi9kZXBjb21wICRkZXBjYyAtYyAkYW1fX21pbnVzX29iaiBzdWIv Y29uZnRlc3QuYyBcCi0rICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgotKyAg ICAgICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYx ICYmCi0rICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9u dWxsIDI+JjEgJiYKLSsgICAgICAgZ3JlcCAkYW1fX29iaiBzdWIvY29uZnRlc3QuUG8gPiAvZGV2 L251bGwgMj4mMSAmJgotKyAgICAgICAke01BS0UtbWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9u dWxsIDI+JjE7IHRoZW4KLSsgICAgICAjIGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0 aW9ucywgaXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCi0rICAgICAgIyBvciByZW1hcmtzIChl dmVuIHdpdGggLVdlcnJvcikuICBTbyB3ZSBncmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKLSsg ICAgICAjIHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4K LSsgICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5 OgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3YXJuaW5nOiBpZ25vcmluZyBvcHRpb24g Jy1NJzsgbm8gYXJndW1lbnQgcmVxdWlyZWQKLSsgICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdl ZCBpbiBpY2MgOC4wOgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlv biAnLU1QJyBub3Qgc3VwcG9ydGVkCi0rICAgICAgaWYgKGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicg Y29uZnRlc3QuZXJyIHx8Ci0rICAgICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0 LmVycikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSsgICAgICAgIGFtX2N2X0NDX2Rl cGVuZGVuY2llc19jb21waWxlcl90eXBlPSRkZXBtb2RlCi0rICAgICAgICBicmVhawotKyAgICAg IGZpCi0rICAgIGZpCi0rICBkb25lCi0rCi0rICBjZCAuLgotKyAgcm0gLXJmIGNvbmZ0ZXN0LmRp cgotK2Vsc2UKLSsgIGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKLStm aQotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFtX2N2X0ND X2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA+JjUKLSskYXNfZWNobyAiJGFtX2N2X0NDX2Rl cGVuZGVuY2llc19jb21waWxlcl90eXBlIiA+JjY7IH0KLStDQ0RFUE1PREU9ZGVwbW9kZT0kYW1f Y3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUKLSsKLSsgaWYKLSsgIHRlc3QgIngkZW5h YmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubyBcCi0rICAmJiB0ZXN0ICIkYW1fY3ZfQ0Nf ZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID0gZ2NjMzsgdGhlbgotKyAgYW1fX2Zhc3RkZXBD Q19UUlVFPQotKyAgYW1fX2Zhc3RkZXBDQ19GQUxTRT0nIycKLStlbHNlCi0rICBhbV9fZmFzdGRl cENDX1RSVUU9JyMnCi0rICBhbV9fZmFzdGRlcENDX0ZBTFNFPQotK2ZpCi0rCi0rCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBhIHNlZCB0aGF0IGRvZXMgbm90IHRy dW5jYXRlIG91dHB1dCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGEgc2VkIHRoYXQg ZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9w YXRoX1NFRCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICAgICAgICAgICAgYWNfc2NyaXB0PXMvYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWEvYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiLwotKyAgICAgZm9y IGFjX2kgaW4gMSAyIDMgNCA1IDYgNzsgZG8KLSsgICAgICAgYWNfc2NyaXB0PSIkYWNfc2NyaXB0 JGFzX25sJGFjX3NjcmlwdCIKLSsgICAgIGRvbmUKLSsgICAgIGVjaG8gIiRhY19zY3JpcHQiIDI+ L2Rldi9udWxsIHwgc2VkIDk5cSA+Y29uZnRlc3Quc2VkCi0rICAgICAkYXNfdW5zZXQgYWNfc2Ny aXB0IHx8IGFjX3NjcmlwdD0KLSsgICAgIGlmIHRlc3QgLXogIiRTRUQiOyB0aGVuCi0rICBhY19w YXRoX1NFRF9mb3VuZD1mYWxzZQotKyAgIyBMb29wIHRocm91Z2ggdGhlIHVzZXIncyBwYXRoIGFu ZCB0ZXN0IGZvciBlYWNoIG9mIFBST0dOQU1FLUxJU1QKLSsgIGFzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNf c2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfcHJv ZyBpbiBzZWQgZ3NlZDsgZG8KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRh YmxlX2V4dGVuc2lvbnM7IGRvCi0rICAgICAgYWNfcGF0aF9TRUQ9IiRhc19kaXIvJGFjX3Byb2ck YWNfZXhlY19leHQiCi0rICAgICAgeyB0ZXN0IC1mICIkYWNfcGF0aF9TRUQiICYmICRhc190ZXN0 X3ggIiRhY19wYXRoX1NFRCI7IH0gfHwgY29udGludWUKLSsjIENoZWNrIGZvciBHTlUgYWNfcGF0 aF9TRUQgYW5kIHNlbGVjdCBpdCBpZiBpdCBpcyBmb3VuZC4KLSsgICMgQ2hlY2sgZm9yIEdOVSAk YWNfcGF0aF9TRUQKLStjYXNlIGAiJGFjX3BhdGhfU0VEIiAtLXZlcnNpb24gMj4mMWAgaW4KLSsq R05VKikKLSsgIGFjX2N2X3BhdGhfU0VEPSIkYWNfcGF0aF9TRUQiIGFjX3BhdGhfU0VEX2ZvdW5k PTo7OwotKyopCi0rICBhY19jb3VudD0wCi0rICAkYXNfZWNob19uIDAxMjM0NTY3ODkgPiJjb25m dGVzdC5pbiIKLSsgIHdoaWxlIDoKLSsgIGRvCi0rICAgIGNhdCAiY29uZnRlc3QuaW4iICJjb25m dGVzdC5pbiIgPiJjb25mdGVzdC50bXAiCi0rICAgIG12ICJjb25mdGVzdC50bXAiICJjb25mdGVz dC5pbiIKLSsgICAgY3AgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QubmwiCi0rICAgICRhc19lY2hv ICcnID4+ICJjb25mdGVzdC5ubCIKLSsgICAgIiRhY19wYXRoX1NFRCIgLWYgY29uZnRlc3Quc2Vk IDwgImNvbmZ0ZXN0Lm5sIiA+ImNvbmZ0ZXN0Lm91dCIgMj4vZGV2L251bGwgfHwgYnJlYWsKLSsg ICAgZGlmZiAiY29uZnRlc3Qub3V0IiAiY29uZnRlc3QubmwiID4vZGV2L251bGwgMj4mMSB8fCBi cmVhawotKyAgICBhY19jb3VudD1gZXhwciAkYWNfY291bnQgKyAxYAotKyAgICBpZiB0ZXN0ICRh Y19jb3VudCAtZ3QgJHthY19wYXRoX1NFRF9tYXgtMH07IHRoZW4KLSsgICAgICAjIEJlc3Qgb25l IHNvIGZhciwgc2F2ZSBpdCBidXQga2VlcCBsb29raW5nIGZvciBhIGJldHRlciBvbmUKLSsgICAg ICBhY19jdl9wYXRoX1NFRD0iJGFjX3BhdGhfU0VEIgotKyAgICAgIGFjX3BhdGhfU0VEX21heD0k YWNfY291bnQKLSsgICAgZmkKLSsgICAgIyAxMCooMl4xMCkgY2hhcnMgYXMgaW5wdXQgc2VlbXMg bW9yZSB0aGFuIGVub3VnaAotKyAgICB0ZXN0ICRhY19jb3VudCAtZ3QgMTAgJiYgYnJlYWsKLSsg IGRvbmUKLSsgIHJtIC1mIGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5ubCBjb25m dGVzdC5vdXQ7OwotK2VzYWMKLSsKLSsgICAgICAkYWNfcGF0aF9TRURfZm91bmQgJiYgYnJlYWsg MwotKyAgICBkb25lCi0rICBkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsgIGlmIHRl c3QgLXogIiRhY19jdl9wYXRoX1NFRCI7IHRoZW4KLSsgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IG5vIGFjY2VwdGFibGUgc2VkIGNvdWxkIGJlIGZvdW5kIGluIFwkUEFU SCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IG5vIGFjY2VwdGFibGUgc2VkIGNvdWxk IGJlIGZvdW5kIGluIFwkUEFUSCIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K LSsgIGZpCi0rZWxzZQotKyAgYWNfY3ZfcGF0aF9TRUQ9JFNFRAotK2ZpCi0rCi0rZmkKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcGF0aF9TRUQiID4mNQotKyRh c19lY2hvICIkYWNfY3ZfcGF0aF9TRUQiID4mNjsgfQotKyBTRUQ9IiRhY19jdl9wYXRoX1NFRCIK LSsgIHJtIC1mIGNvbmZ0ZXN0LnNlZAotKwotK3Rlc3QgLXogIiRTRUQiICYmIFNFRD1zZWQKLStY c2VkPSIkU0VEIC1lIDFzL15YLy8iCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBncmVwIHRoYXQgaGFuZGxl cyBsb25nIGxpbmVzIGFuZCAtZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGdyZXAg dGhhdCBoYW5kbGVzIGxvbmcgbGluZXMgYW5kIC1lLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHth Y19jdl9wYXRoX0dSRVArc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAteiAiJEdSRVAiOyB0aGVuCi0rICBhY19wYXRoX0dS RVBfZm91bmQ9ZmFsc2UKLSsgICMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVz dCBmb3IgZWFjaCBvZiBQUk9HTkFNRS1MSVNUCi0rICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBn NC9iaW4KLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KLSsgIGZvciBhY19wcm9nIGluIGdyZXAgZ2dyZXA7IGRvCi0rICAgIGZvciBhY19l eGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgICAgIGFjX3Bh dGhfR1JFUD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIKLSsgICAgICB7IHRlc3QgLWYg IiRhY19wYXRoX0dSRVAiICYmICRhc190ZXN0X3ggIiRhY19wYXRoX0dSRVAiOyB9IHx8IGNvbnRp bnVlCi0rIyBDaGVjayBmb3IgR05VIGFjX3BhdGhfR1JFUCBhbmQgc2VsZWN0IGl0IGlmIGl0IGlz IGZvdW5kLgotKyAgIyBDaGVjayBmb3IgR05VICRhY19wYXRoX0dSRVAKLStjYXNlIGAiJGFjX3Bh dGhfR1JFUCIgLS12ZXJzaW9uIDI+JjFgIGluCi0rKkdOVSopCi0rICBhY19jdl9wYXRoX0dSRVA9 IiRhY19wYXRoX0dSRVAiIGFjX3BhdGhfR1JFUF9mb3VuZD06OzsKLSsqKQotKyAgYWNfY291bnQ9 MAotKyAgJGFzX2VjaG9fbiAwMTIzNDU2Nzg5ID4iY29uZnRlc3QuaW4iCi0rICB3aGlsZSA6Ci0r ICBkbwotKyAgICBjYXQgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QuaW4iID4iY29uZnRlc3QudG1w IgotKyAgICBtdiAiY29uZnRlc3QudG1wIiAiY29uZnRlc3QuaW4iCi0rICAgIGNwICJjb25mdGVz dC5pbiIgImNvbmZ0ZXN0Lm5sIgotKyAgICAkYXNfZWNobyAnR1JFUCcgPj4gImNvbmZ0ZXN0Lm5s IgotKyAgICAiJGFjX3BhdGhfR1JFUCIgLWUgJ0dSRVAkJyAtZSAnLShjYW5ub3QgbWF0Y2gpLScg PCAiY29uZnRlc3QubmwiID4iY29uZnRlc3Qub3V0IiAyPi9kZXYvbnVsbCB8fCBicmVhawotKyAg ICBkaWZmICJjb25mdGVzdC5vdXQiICJjb25mdGVzdC5ubCIgPi9kZXYvbnVsbCAyPiYxIHx8IGJy ZWFrCi0rICAgIGFjX2NvdW50PWBleHByICRhY19jb3VudCArIDFgCi0rICAgIGlmIHRlc3QgJGFj X2NvdW50IC1ndCAke2FjX3BhdGhfR1JFUF9tYXgtMH07IHRoZW4KLSsgICAgICAjIEJlc3Qgb25l IHNvIGZhciwgc2F2ZSBpdCBidXQga2VlcCBsb29raW5nIGZvciBhIGJldHRlciBvbmUKLSsgICAg ICBhY19jdl9wYXRoX0dSRVA9IiRhY19wYXRoX0dSRVAiCi0rICAgICAgYWNfcGF0aF9HUkVQX21h eD0kYWNfY291bnQKLSsgICAgZmkKLSsgICAgIyAxMCooMl4xMCkgY2hhcnMgYXMgaW5wdXQgc2Vl bXMgbW9yZSB0aGFuIGVub3VnaAotKyAgICB0ZXN0ICRhY19jb3VudCAtZ3QgMTAgJiYgYnJlYWsK LSsgIGRvbmUKLSsgIHJtIC1mIGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5ubCBj b25mdGVzdC5vdXQ7OwotK2VzYWMKLSsKLSsgICAgICAkYWNfcGF0aF9HUkVQX2ZvdW5kICYmIGJy ZWFrIDMKLSsgICAgZG9uZQotKyAgZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rICBp ZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9HUkVQIjsgdGhlbgotKyAgICB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBncmVwIGNvdWxkIGJlIGZvdW5kIGlu ICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IG5vIGFjY2VwdGFibGUgZ3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAkUEFUSCRQQVRI X1NFUEFSQVRPUi91c3IveHBnNC9iaW4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 OyB9Ci0rICBmaQotK2Vsc2UKLSsgIGFjX2N2X3BhdGhfR1JFUD0kR1JFUAotK2ZpCi0rCi0rZmkK LSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcGF0aF9HUkVQIiA+ JjUKLSskYXNfZWNobyAiJGFjX2N2X3BhdGhfR1JFUCIgPiY2OyB9Ci0rIEdSRVA9IiRhY19jdl9w YXRoX0dSRVAiCi0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciBlZ3JlcCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGVncmVwLi4uICIgPiY2OyB9 Ci0raWYgdGVzdCAiJHthY19jdl9wYXRoX0VHUkVQK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIGVjaG8gYSB8ICRHUkVQIC1FICco YXxiKScgPi9kZXYvbnVsbCAyPiYxCi0rICAgdGhlbiBhY19jdl9wYXRoX0VHUkVQPSIkR1JFUCAt RSIKLSsgICBlbHNlCi0rICAgICBpZiB0ZXN0IC16ICIkRUdSRVAiOyB0aGVuCi0rICBhY19wYXRo X0VHUkVQX2ZvdW5kPWZhbHNlCi0rICAjIExvb3AgdGhyb3VnaCB0aGUgdXNlcidzIHBhdGggYW5k IHRlc3QgZm9yIGVhY2ggb2YgUFJPR05BTUUtTElTVAotKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNy L3hwZzQvYmluCi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIi ICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfcHJvZyBpbiBlZ3JlcDsgZG8KLSsgICAgZm9yIGFjX2V4 ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICAgICAgYWNfcGF0 aF9FR1JFUD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIKLSsgICAgICB7IHRlc3QgLWYg IiRhY19wYXRoX0VHUkVQIiAmJiAkYXNfdGVzdF94ICIkYWNfcGF0aF9FR1JFUCI7IH0gfHwgY29u dGludWUKLSsjIENoZWNrIGZvciBHTlUgYWNfcGF0aF9FR1JFUCBhbmQgc2VsZWN0IGl0IGlmIGl0 IGlzIGZvdW5kLgotKyAgIyBDaGVjayBmb3IgR05VICRhY19wYXRoX0VHUkVQCi0rY2FzZSBgIiRh Y19wYXRoX0VHUkVQIiAtLXZlcnNpb24gMj4mMWAgaW4KLSsqR05VKikKLSsgIGFjX2N2X3BhdGhf RUdSRVA9IiRhY19wYXRoX0VHUkVQIiBhY19wYXRoX0VHUkVQX2ZvdW5kPTo7OwotKyopCi0rICBh Y19jb3VudD0wCi0rICAkYXNfZWNob19uIDAxMjM0NTY3ODkgPiJjb25mdGVzdC5pbiIKLSsgIHdo aWxlIDoKLSsgIGRvCi0rICAgIGNhdCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5pbiIgPiJjb25m dGVzdC50bXAiCi0rICAgIG12ICJjb25mdGVzdC50bXAiICJjb25mdGVzdC5pbiIKLSsgICAgY3Ag ImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QubmwiCi0rICAgICRhc19lY2hvICdFR1JFUCcgPj4gImNv bmZ0ZXN0Lm5sIgotKyAgICAiJGFjX3BhdGhfRUdSRVAiICdFR1JFUCQnIDwgImNvbmZ0ZXN0Lm5s IiA+ImNvbmZ0ZXN0Lm91dCIgMj4vZGV2L251bGwgfHwgYnJlYWsKLSsgICAgZGlmZiAiY29uZnRl c3Qub3V0IiAiY29uZnRlc3QubmwiID4vZGV2L251bGwgMj4mMSB8fCBicmVhawotKyAgICBhY19j b3VudD1gZXhwciAkYWNfY291bnQgKyAxYAotKyAgICBpZiB0ZXN0ICRhY19jb3VudCAtZ3QgJHth Y19wYXRoX0VHUkVQX21heC0wfTsgdGhlbgotKyAgICAgICMgQmVzdCBvbmUgc28gZmFyLCBzYXZl IGl0IGJ1dCBrZWVwIGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQotKyAgICAgIGFjX2N2X3BhdGhf RUdSRVA9IiRhY19wYXRoX0VHUkVQIgotKyAgICAgIGFjX3BhdGhfRUdSRVBfbWF4PSRhY19jb3Vu dAotKyAgICBmaQotKyAgICAjIDEwKigyXjEwKSBjaGFycyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRo YW4gZW5vdWdoCi0rICAgIHRlc3QgJGFjX2NvdW50IC1ndCAxMCAmJiBicmVhawotKyAgZG9uZQot KyAgcm0gLWYgY29uZnRlc3QuaW4gY29uZnRlc3QudG1wIGNvbmZ0ZXN0Lm5sIGNvbmZ0ZXN0Lm91 dDs7Ci0rZXNhYwotKwotKyAgICAgICRhY19wYXRoX0VHUkVQX2ZvdW5kICYmIGJyZWFrIDMKLSsg ICAgZG9uZQotKyAgZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rICBpZiB0ZXN0IC16 ICIkYWNfY3ZfcGF0aF9FR1JFUCI7IHRoZW4KLSsgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZXJyb3I6IG5vIGFjY2VwdGFibGUgZWdyZXAgY291bGQgYmUgZm91bmQgaW4gJFBBVEgk UEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogbm8gYWNjZXB0YWJsZSBlZ3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAkUEFUSCRQQVRIX1NFUEFS QVRPUi91c3IveHBnNC9iaW4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0r ICBmaQotK2Vsc2UKLSsgIGFjX2N2X3BhdGhfRUdSRVA9JEVHUkVQCi0rZmkKLSsKLSsgICBmaQot K2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3BhdGhfRUdS RVAiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfcGF0aF9FR1JFUCIgPiY2OyB9Ci0rIEVHUkVQPSIk YWNfY3ZfcGF0aF9FR1JFUCIKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yIGZncmVwIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgZmdyZXAuLi4g IiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3BhdGhfRkdSRVArc2V0fSIgPSBzZXQ7IHRoZW4K LSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgZWNobyAnYWIqYycg fCAkR1JFUCAtRiAnYWIqYycgPi9kZXYvbnVsbCAyPiYxCi0rICAgdGhlbiBhY19jdl9wYXRoX0ZH UkVQPSIkR1JFUCAtRiIKLSsgICBlbHNlCi0rICAgICBpZiB0ZXN0IC16ICIkRkdSRVAiOyB0aGVu Ci0rICBhY19wYXRoX0ZHUkVQX2ZvdW5kPWZhbHNlCi0rICAjIExvb3AgdGhyb3VnaCB0aGUgdXNl cidzIHBhdGggYW5kIHRlc3QgZm9yIGVhY2ggb2YgUFJPR05BTUUtTElTVAotKyAgYXNfc2F2ZV9J RlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgkUEFUSF9T RVBBUkFUT1IvdXNyL3hwZzQvYmluCi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3Qg LXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfcHJvZyBpbiBmZ3JlcDsgZG8KLSsg ICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0r ICAgICAgYWNfcGF0aF9GR1JFUD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIKLSsgICAg ICB7IHRlc3QgLWYgIiRhY19wYXRoX0ZHUkVQIiAmJiAkYXNfdGVzdF94ICIkYWNfcGF0aF9GR1JF UCI7IH0gfHwgY29udGludWUKLSsjIENoZWNrIGZvciBHTlUgYWNfcGF0aF9GR1JFUCBhbmQgc2Vs ZWN0IGl0IGlmIGl0IGlzIGZvdW5kLgotKyAgIyBDaGVjayBmb3IgR05VICRhY19wYXRoX0ZHUkVQ Ci0rY2FzZSBgIiRhY19wYXRoX0ZHUkVQIiAtLXZlcnNpb24gMj4mMWAgaW4KLSsqR05VKikKLSsg IGFjX2N2X3BhdGhfRkdSRVA9IiRhY19wYXRoX0ZHUkVQIiBhY19wYXRoX0ZHUkVQX2ZvdW5kPTo7 OwotKyopCi0rICBhY19jb3VudD0wCi0rICAkYXNfZWNob19uIDAxMjM0NTY3ODkgPiJjb25mdGVz dC5pbiIKLSsgIHdoaWxlIDoKLSsgIGRvCi0rICAgIGNhdCAiY29uZnRlc3QuaW4iICJjb25mdGVz dC5pbiIgPiJjb25mdGVzdC50bXAiCi0rICAgIG12ICJjb25mdGVzdC50bXAiICJjb25mdGVzdC5p biIKLSsgICAgY3AgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QubmwiCi0rICAgICRhc19lY2hvICdG R1JFUCcgPj4gImNvbmZ0ZXN0Lm5sIgotKyAgICAiJGFjX3BhdGhfRkdSRVAiIEZHUkVQIDwgImNv bmZ0ZXN0Lm5sIiA+ImNvbmZ0ZXN0Lm91dCIgMj4vZGV2L251bGwgfHwgYnJlYWsKLSsgICAgZGlm ZiAiY29uZnRlc3Qub3V0IiAiY29uZnRlc3QubmwiID4vZGV2L251bGwgMj4mMSB8fCBicmVhawot KyAgICBhY19jb3VudD1gZXhwciAkYWNfY291bnQgKyAxYAotKyAgICBpZiB0ZXN0ICRhY19jb3Vu dCAtZ3QgJHthY19wYXRoX0ZHUkVQX21heC0wfTsgdGhlbgotKyAgICAgICMgQmVzdCBvbmUgc28g ZmFyLCBzYXZlIGl0IGJ1dCBrZWVwIGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQotKyAgICAgIGFj X2N2X3BhdGhfRkdSRVA9IiRhY19wYXRoX0ZHUkVQIgotKyAgICAgIGFjX3BhdGhfRkdSRVBfbWF4 PSRhY19jb3VudAotKyAgICBmaQotKyAgICAjIDEwKigyXjEwKSBjaGFycyBhcyBpbnB1dCBzZWVt cyBtb3JlIHRoYW4gZW5vdWdoCi0rICAgIHRlc3QgJGFjX2NvdW50IC1ndCAxMCAmJiBicmVhawot KyAgZG9uZQotKyAgcm0gLWYgY29uZnRlc3QuaW4gY29uZnRlc3QudG1wIGNvbmZ0ZXN0Lm5sIGNv bmZ0ZXN0Lm91dDs7Ci0rZXNhYwotKwotKyAgICAgICRhY19wYXRoX0ZHUkVQX2ZvdW5kICYmIGJy ZWFrIDMKLSsgICAgZG9uZQotKyAgZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rICBp ZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9GR1JFUCI7IHRoZW4KLSsgICAgeyB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZXJyb3I6IG5vIGFjY2VwdGFibGUgZmdyZXAgY291bGQgYmUgZm91bmQg aW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiA+JjUKLSskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBmZ3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAkUEFUSCRQ QVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAx OyB9OyB9Ci0rICBmaQotK2Vsc2UKLSsgIGFjX2N2X3BhdGhfRkdSRVA9JEZHUkVQCi0rZmkKLSsK LSsgICBmaQotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2 X3BhdGhfRkdSRVAiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfcGF0aF9GR1JFUCIgPiY2OyB9Ci0r IEZHUkVQPSIkYWNfY3ZfcGF0aF9GR1JFUCIKLSsKLSsKLSt0ZXN0IC16ICIkR1JFUCIgJiYgR1JF UD1ncmVwCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1nbnUtbGQgd2FzIGdpdmVuLgotK2lmIHRl c3QgIiR7d2l0aF9nbnVfbGQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhfZ251 X2xkOyB0ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3aXRoX2dudV9sZD15ZXMKLStlbHNlCi0rICB3 aXRoX2dudV9sZD1ubwotK2ZpCi0rCi0rYWNfcHJvZz1sZAotK2lmIHRlc3QgIiRHQ0MiID0geWVz OyB0aGVuCi0rICAjIENoZWNrIGlmIGdjYyAtcHJpbnQtcHJvZy1uYW1lPWxkIGdpdmVzIGEgcGF0 aC4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbGQgdXNlZCBi eSAkQ0MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBsZCB1c2VkIGJ5ICRDQy4uLiAi ID4mNjsgfQotKyAgY2FzZSAkaG9zdCBpbgotKyAgKi0qLW1pbmd3KikKLSsgICAgIyBnY2MgbGVh dmVzIGEgdHJhaWxpbmcgY2FycmlhZ2UgcmV0dXJuIHdoaWNoIHVwc2V0cyBtaW5ndwotKyAgICBh Y19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjUgfCB0ciAtZCAnXDAxNSdgIDs7 Ci0rICAqKQotKyAgICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjVgIDs7 Ci0rICBlc2FjCi0rICBjYXNlICRhY19wcm9nIGluCi0rICAgICMgQWNjZXB0IGFic29sdXRlIHBh dGhzLgotKyAgICBbXFwvXSogfCA/OltcXC9dKikKLSsgICAgICByZV9kaXJlbHQ9Jy9bXi9dW14v XSovXC5cLi8nCi0rICAgICAgIyBDYW5vbmljYWxpemUgdGhlIHBhdGhuYW1lIG9mIGxkCi0rICAg ICAgYWNfcHJvZz1gJEVDSE8gIiRhY19wcm9nInwgJFNFRCAncyVcXFxcJS8lZydgCi0rICAgICAg d2hpbGUgJEVDSE8gIiRhY19wcm9nIiB8ICRHUkVQICIkcmVfZGlyZWx0IiA+IC9kZXYvbnVsbCAy PiYxOyBkbwotKwlhY19wcm9nPWAkRUNITyAkYWNfcHJvZ3wgJFNFRCAicyUkcmVfZGlyZWx0JS8l ImAKLSsgICAgICBkb25lCi0rICAgICAgdGVzdCAteiAiJExEIiAmJiBMRD0iJGFjX3Byb2ciCi0r ICAgICAgOzsKLSsgICIiKQotKyAgICAjIElmIGl0IGZhaWxzLCB0aGVuIHByZXRlbmQgd2UgYXJl bid0IHVzaW5nIEdDQy4KLSsgICAgYWNfcHJvZz1sZAotKyAgICA7OwotKyAgKikKLSsgICAgIyBJ ZiBpdCBpcyByZWxhdGl2ZSwgdGhlbiBzZWFyY2ggZm9yIHRoZSBmaXJzdCBsZCBpbiBQQVRILgot KyAgICB3aXRoX2dudV9sZD11bmtub3duCi0rICAgIDs7Ci0rICBlc2FjCi0rZWxpZiB0ZXN0ICIk d2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZm9yIEdOVSBsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEdOVSBs ZC4uLiAiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3Igbm9uLUdOVSBsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG5vbi1H TlUgbGQuLi4gIiA+JjY7IH0KLStmaQotK2lmIHRlc3QgIiR7bHRfY3ZfcGF0aF9MRCtzZXR9IiA9 IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0 ZXN0IC16ICIkTEQiOyB0aGVuCi0rICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBB UkFUT1IKLSsgIGZvciBhY19kaXIgaW4gJFBBVEg7IGRvCi0rICAgIElGUz0iJGx0X3NhdmVfaWZz IgotKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotKyAgICBpZiB0ZXN0IC1mICIk YWNfZGlyLyRhY19wcm9nIiB8fCB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nJGFjX2V4ZWV4dCI7 IHRoZW4KLSsgICAgICBsdF9jdl9wYXRoX0xEPSIkYWNfZGlyLyRhY19wcm9nIgotKyAgICAgICMg Q2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9ncmFtIGlzIEdOVSBsZC4gIEknZCByYXRoZXIgdXNlIC0t dmVyc2lvbiwKLSsgICAgICAjIGJ1dCBhcHBhcmVudGx5IHNvbWUgdmFyaWFudHMgb2YgR05VIGxk IG9ubHkgYWNjZXB0IC12LgotKyAgICAgICMgQnJlYWsgb25seSBpZiBpdCB3YXMgdGhlIEdOVS9u b24tR05VIGxkIHRoYXQgd2UgcHJlZmVyLgotKyAgICAgIGNhc2UgYCIkbHRfY3ZfcGF0aF9MRCIg LXYgMj4mMSA8L2Rldi9udWxsYCBpbgotKyAgICAgICpHTlUqIHwgKid3aXRoIEJGRCcqKQotKwl0 ZXN0ICIkd2l0aF9nbnVfbGQiICE9IG5vICYmIGJyZWFrCi0rCTs7Ci0rICAgICAgKikKLSsJdGVz dCAiJHdpdGhfZ251X2xkIiAhPSB5ZXMgJiYgYnJlYWsKLSsJOzsKLSsgICAgICBlc2FjCi0rICAg IGZpCi0rICBkb25lCi0rICBJRlM9IiRsdF9zYXZlX2lmcyIKLStlbHNlCi0rICBsdF9jdl9wYXRo X0xEPSIkTEQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgot K2ZpCi0rZmkKLSsKLStMRD0iJGx0X2N2X3BhdGhfTEQiCi0raWYgdGVzdCAtbiAiJExEIjsgdGhl bgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJExEIiA+JjUKLSskYXNf ZWNobyAiJExEIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotK3Rlc3QgLXogIiRM RCIgJiYgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG5vIGFjY2VwdGFibGUg bGQgZm91bmQgaW4gXCRQQVRIIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogbm8gYWNj ZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEgiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAx OyB9OyB9Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIHRoZSBsaW5r ZXIgKCRMRCkgaXMgR05VIGxkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiB0aGUgbGlu a2VyICgkTEQpIGlzIEdOVSBsZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19n bnVfbGQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgIyBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24gaGVyZSwgYnV0IGFwcGFyZW50bHkg c29tZSBHTlUgbGRzIG9ubHkgYWNjZXB0IC12LgotK2Nhc2UgYCRMRCAtdiAyPiYxIDwvZGV2L251 bGxgIGluCi0rKkdOVSogfCAqJ3dpdGggQkZEJyopCi0rICBsdF9jdl9wcm9nX2dudV9sZD15ZXMK LSsgIDs7Ci0rKikKLSsgIGx0X2N2X3Byb2dfZ251X2xkPW5vCi0rICA7OwotK2VzYWMKLStmaQot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2dudV9sZCIg PiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2dudV9sZCIgPiY2OyB9Ci0rd2l0aF9nbnVfbGQ9 JGx0X2N2X3Byb2dfZ251X2xkCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFt ZSBsaXN0ZXIgKG5tKSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEJTRC0gb3IgTVMt Y29tcGF0aWJsZSBuYW1lIGxpc3RlciAobm0pLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9j dl9wYXRoX05NK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiROTSI7IHRoZW4KLSsgICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0LgotKyAgbHRfY3ZfcGF0aF9OTT0iJE5NIgotK2Vsc2UKLSsgIGx0X25t X3RvX2NoZWNrPSIke2FjX3Rvb2xfcHJlZml4fW5tIgotKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xf cHJlZml4IiAmJiB0ZXN0ICIkYnVpbGQiID0gIiRob3N0IjsgdGhlbgotKyAgICBsdF9ubV90b19j aGVjaz0iJGx0X25tX3RvX2NoZWNrIG5tIgotKyAgZmkKLSsgIGZvciBsdF90bXBfbm0gaW4gJGx0 X25tX3RvX2NoZWNrOyBkbwotKyAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBB UkFUT1IKLSsgICAgZm9yIGFjX2RpciBpbiAkUEFUSCAvdXNyL2Njcy9iaW4vZWxmIC91c3IvY2Nz L2JpbiAvdXNyL3VjYiAvYmluOyBkbwotKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICAg IHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgICAgdG1wX25tPSIkYWNfZGlyLyRs dF90bXBfbm0iCi0rICAgICAgaWYgdGVzdCAtZiAiJHRtcF9ubSIgfHwgdGVzdCAtZiAiJHRtcF9u bSRhY19leGVleHQiIDsgdGhlbgotKwkjIENoZWNrIHRvIHNlZSBpZiB0aGUgbm0gYWNjZXB0cyBh IEJTRC1jb21wYXQgZmxhZy4KLSsJIyBBZGRpbmcgdGhlIGBzZWQgMXEnIHByZXZlbnRzIGZhbHNl IHBvc2l0aXZlcyBvbiBIUC1VWCwgd2hpY2ggc2F5czoKLSsJIyAgIG5tOiB1bmtub3duIG9wdGlv biAiQiIgaWdub3JlZAotKwkjIFRydTY0J3Mgbm0gY29tcGxhaW5zIHRoYXQgL2Rldi9udWxsIGlz IGFuIGludmFsaWQgb2JqZWN0IGZpbGUKLSsJY2FzZSBgIiR0bXBfbm0iIC1CIC9kZXYvbnVsbCAy PiYxIHwgc2VkICcxcSdgIGluCi0rCSovZGV2L251bGwqIHwgKidJbnZhbGlkIGZpbGUgb3Igb2Jq ZWN0IHR5cGUnKikKLSsJICBsdF9jdl9wYXRoX05NPSIkdG1wX25tIC1CIgotKwkgIGJyZWFrCi0r CSAgOzsKLSsJKikKLSsJICBjYXNlIGAiJHRtcF9ubSIgLXAgL2Rldi9udWxsIDI+JjEgfCBzZWQg JzFxJ2AgaW4KLSsJICAqL2Rldi9udWxsKikKLSsJICAgIGx0X2N2X3BhdGhfTk09IiR0bXBfbm0g LXAiCi0rCSAgICBicmVhawotKwkgICAgOzsKLSsJICAqKQotKwkgICAgbHRfY3ZfcGF0aF9OTT0k e2x0X2N2X3BhdGhfTk09IiR0bXBfbm0ifSAjIGtlZXAgdGhlIGZpcnN0IG1hdGNoLCBidXQKLSsJ ICAgIGNvbnRpbnVlICMgc28gdGhhdCB3ZSBjYW4gdHJ5IHRvIGZpbmQgb25lIHRoYXQgc3VwcG9y dHMgQlNEIGZsYWdzCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJICA7OwotKwllc2FjCi0rICAgICAg ZmkKLSsgICAgZG9uZQotKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgIGRvbmUKLSsgIDogJHts dF9jdl9wYXRoX05NPW5vfQotK2ZpCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkbHRfY3ZfcGF0aF9OTSIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wYXRoX05NIiA+ JjY7IH0KLStpZiB0ZXN0ICIkbHRfY3ZfcGF0aF9OTSIgIT0gIm5vIjsgdGhlbgotKyAgTk09IiRs dF9jdl9wYXRoX05NIgotK2Vsc2UKLSsgICMgRGlkbid0IGZpbmQgYW55IEJTRCBjb21wYXRpYmxl IG5hbWUgbGlzdGVyLCBsb29rIGZvciBkdW1wYmluLgotKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xf cHJlZml4IjsgdGhlbgotKyAgZm9yIGFjX3Byb2cgaW4gImR1bXBiaW4gLXN5bWJvbHMiICJsaW5r IC1kdW1wIC1zeW1ib2xzIgotKyAgZG8KLSsgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9m ICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3 aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQy Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVz dCAiJHthY19jdl9wcm9nX0RVTVBCSU4rc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJERVTVBCSU4iOyB0aGVuCi0r ICBhY19jdl9wcm9nX0RVTVBCSU49IiREVU1QQklOIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0 aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgot K2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAt eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl Y3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX0RVTVBCSU49IiRhY190b29sX3ByZWZpeCRhY19w cm9nIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0r SUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStEVU1QQklOPSRhY19jdl9wcm9nX0RVTVBC SU4KLStpZiB0ZXN0IC1uICIkRFVNUEJJTiI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICREVU1QQklOIiA+JjUKLSskYXNfZWNobyAiJERVTVBCSU4iID4mNjsg fQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUK LSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICAgIHRlc3QgLW4gIiREVU1QQklO IiAmJiBicmVhawotKyAgZG9uZQotK2ZpCi0raWYgdGVzdCAteiAiJERVTVBCSU4iOyB0aGVuCi0r ICBhY19jdF9EVU1QQklOPSREVU1QQklOCi0rICBmb3IgYWNfcHJvZyBpbiAiZHVtcGJpbiAtc3lt Ym9scyIgImxpbmsgLWR1bXAgLXN5bWJvbHMiCi0rZG8KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdz LgotK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9E VU1QQklOK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRhY19jdF9EVU1QQklOIjsgdGhlbgotKyAgYWNfY3ZfcHJv Z19hY19jdF9EVU1QQklOPSIkYWNfY3RfRFVNUEJJTiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg dGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK LStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3Qg LXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4 ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9EVU1QQklOPSIkYWNfcHJvZyIKLSsg ICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNf c2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfRFVNUEJJTj0kYWNfY3ZfcHJvZ19hY19jdF9E VU1QQklOCi0raWYgdGVzdCAtbiAiJGFjX2N0X0RVTVBCSU4iOyB0aGVuCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfRFVNUEJJTiIgPiY1Ci0rJGFzX2VjaG8g IiRhY19jdF9EVU1QQklOIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwot KyAgdGVzdCAtbiAiJGFjX2N0X0RVTVBCSU4iICYmIGJyZWFrCi0rZG9uZQotKwotKyAgaWYgdGVz dCAieCRhY19jdF9EVU1QQklOIiA9IHg7IHRoZW4KLSsgICAgRFVNUEJJTj0iOiIKLSsgIGVsc2UK LSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0r eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5v dCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FS TklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+ JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgRFVNUEJJTj0kYWNfY3Rf RFVNUEJJTgotKyAgZmkKLStmaQotKwotKwotKyAgaWYgdGVzdCAiJERVTVBCSU4iICE9ICI6Ijsg dGhlbgotKyAgICBOTT0iJERVTVBCSU4iCi0rICBmaQotK2ZpCi0rdGVzdCAteiAiJE5NIiAmJiBO TT1ubQotKwotKwotKwotKwotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyB0aGUgbmFtZSBsaXN0ZXIgKCROTSkgaW50ZXJmYWNlIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyB0aGUgbmFtZSBsaXN0ZXIgKCROTSkgaW50ZXJmYWNlLi4uICIgPiY2OyB9Ci0raWYg dGVzdCAiJHtsdF9jdl9ubV9pbnRlcmZhY2Urc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3Zfbm1faW50ZXJmYWNlPSJCU0Qgbm0i Ci0rICBlY2hvICJpbnQgc29tZV92YXJpYWJsZSA9IDA7IiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsg IChldmFsIGVjaG8gIlwiXCRhc19tZTo1NjMyOiAkYWNfY29tcGlsZVwiIiA+JjUpCi0rICAoZXZh bCAiJGFjX2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK LSsgIChldmFsIGVjaG8gIlwiXCRhc19tZTo1NjM1OiAkTk0gXFxcImNvbmZ0ZXN0LiRhY19vYmpl eHRcXFwiXCIiID4mNSkKLSsgIChldmFsICIkTk0gXCJjb25mdGVzdC4kYWNfb2JqZXh0XCIiIDI+ Y29uZnRlc3QuZXJyID4gY29uZnRlc3Qub3V0KQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsg IChldmFsIGVjaG8gIlwiXCRhc19tZTo1NjM4OiBvdXRwdXRcIiIgPiY1KQotKyAgY2F0IGNvbmZ0 ZXN0Lm91dCA+JjUKLSsgIGlmICRHUkVQICdFeHRlcm5hbC4qc29tZV92YXJpYWJsZScgY29uZnRl c3Qub3V0ID4gL2Rldi9udWxsOyB0aGVuCi0rICAgIGx0X2N2X25tX2ludGVyZmFjZT0iTVMgZHVt cGJpbiIKLSsgIGZpCi0rICBybSAtZiBjb25mdGVzdCoKLStmaQotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9ubV9pbnRlcmZhY2UiID4mNQotKyRhc19lY2hvICIk bHRfY3Zfbm1faW50ZXJmYWNlIiA+JjY7IH0KLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3JrcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgd2hldGhlciBsbiAtcyB3b3Jrcy4uLiAiID4mNjsgfQotK0xOX1M9JGFzX2xuX3MKLStpZiB0 ZXN0ICIkTE5fUyIgPSAibG4gLXMiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotK2Vsc2UKLSsgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vLCB1c2luZyAkTE5fUyIgPiY1Ci0r JGFzX2VjaG8gIm5vLCB1c2luZyAkTE5fUyIgPiY2OyB9Ci0rZmkKLSsKLSsjIGZpbmQgdGhlIG1h eGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMKLSt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBh cmd1bWVudHMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHRoZSBtYXhpbXVtIGxlbmd0aCBv ZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9z eXNfbWF4X2NtZF9sZW4rc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgICBpPTAKLSsgIHRlc3RzdHJpbmc9IkFCQ0QiCi0rCi0rICBjYXNl ICRidWlsZF9vcyBpbgotKyAgbXNkb3NkamdwcCopCi0rICAgICMgT24gREpHUFAsIHRoaXMgdGVz dCBjYW4gYmxvdyB1cCBwcmV0dHkgYmFkbHkgZHVlIHRvIHByb2JsZW1zIGluIGxpYmMKLSsgICAg IyAoYW55IHNpbmdsZSBhcmd1bWVudCBleGNlZWRpbmcgMjAwMCBieXRlcyBjYXVzZXMgYSBidWZm ZXIgb3ZlcnJ1bgotKyAgICAjIGR1cmluZyBnbG9iIGV4cGFuc2lvbikuICBFdmVuIGlmIGl0IHdl cmUgZml4ZWQsIHRoZSByZXN1bHQgb2YgdGhpcwotKyAgICAjIGNoZWNrIHdvdWxkIGJlIGxhcmdl ciB0aGFuIGl0IHNob3VsZCBiZS4KLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTEyMjg4OyAg ICAjIDEySyBpcyBhYm91dCByaWdodAotKyAgICA7OwotKwotKyAgZ251KikKLSsgICAgIyBVbmRl ciBHTlUgSHVyZCwgdGhpcyB0ZXN0IGlzIG5vdCByZXF1aXJlZCBiZWNhdXNlIHRoZXJlIGlzCi0r ICAgICMgbm8gbGltaXQgdG8gdGhlIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzLgot KyAgICAjIExpYnRvb2wgd2lsbCBpbnRlcnByZXQgLTEgYXMgbm8gbGltaXQgd2hhdHNvZXZlcgot KyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49LTE7Ci0rICAgIDs7Ci0rCi0rICBjeWd3aW4qIHwg bWluZ3cqIHwgY2VnY2MqKQotKyAgICAjIE9uIFdpbjl4L01FLCB0aGlzIHRlc3QgYmxvd3MgdXAg LS0gaXQgc3VjY2VlZHMsIGJ1dCB0YWtlcwotKyAgICAjIGFib3V0IDUgbWludXRlcyBhcyB0aGUg dGVzdHN0cmluZyBncm93cyBleHBvbmVudGlhbGx5LgotKyAgICAjIFdvcnNlLCBzaW5jZSA5eC9N RSBhcmUgbm90IHByZS1lbXB0aXZlbHkgbXVsdGl0YXNraW5nLAotKyAgICAjIHlvdSBlbmQgdXAg d2l0aCBhICJmcm96ZW4iIGNvbXB1dGVyLCBldmVuIHRob3VnaCB3aXRoIHBhdGllbmNlCi0rICAg ICMgdGhlIHRlc3QgZXZlbnR1YWxseSBzdWNjZWVkcyAod2l0aCBhIG1heCBsaW5lIGxlbmd0aCBv ZiAyNTZrKS4KLSsgICAgIyBJbnN0ZWFkLCBsZXQncyBqdXN0IHB1bnQ6IHVzZSB0aGUgbWluaW11 bSBsaW5lbGVuZ3RoIHJlcG9ydGVkIGJ5Ci0rICAgICMgYWxsIG9mIHRoZSBzdXBwb3J0ZWQgcGxh dGZvcm1zOiA4MTkyIChvbiBOVC8ySy9YUCkuCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj04 MTkyOwotKyAgICA7OwotKwotKyAgYW1pZ2FvcyopCi0rICAgICMgT24gQW1pZ2FPUyB3aXRoIHBk a3NoLCB0aGlzIHRlc3QgdGFrZXMgaG91cnMsIGxpdGVyYWxseS4KLSsgICAgIyBTbyB3ZSBqdXN0 IHB1bnQgYW5kIHVzZSBhIG1pbmltdW0gbGluZSBsZW5ndGggb2YgODE5Mi4KLSsgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPTgxOTI7Ci0rICAgIDs7Ci0rCi0rICBuZXRic2QqIHwgZnJlZWJzZCog fCBvcGVuYnNkKiB8IGRhcndpbiogfCBkcmFnb25mbHkqKQotKyAgICAjIFRoaXMgaGFzIGJlZW4g YXJvdW5kIHNpbmNlIDM4NkJTRCwgYXQgbGVhc3QuICBMaWtlbHkgZnVydGhlci4KLSsgICAgaWYg dGVzdCAteCAvc2Jpbi9zeXNjdGw7IHRoZW4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49 YC9zYmluL3N5c2N0bCAtbiBrZXJuLmFyZ21heGAKLSsgICAgZWxpZiB0ZXN0IC14IC91c3Ivc2Jp bi9zeXNjdGw7IHRoZW4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YC91c3Ivc2Jpbi9z eXNjdGwgLW4ga2Vybi5hcmdtYXhgCi0rICAgIGVsc2UKLSsgICAgICBsdF9jdl9zeXNfbWF4X2Nt ZF9sZW49NjU1MzYJIyB1c2FibGUgZGVmYXVsdCBmb3IgYWxsIEJTRHMKLSsgICAgZmkKLSsgICAg IyBBbmQgYWRkIGEgc2FmZXR5IHpvbmUKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHBy ICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gNGAKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVu PWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXCogM2AKLSsgICAgOzsKLSsKLSsgIGludGVy aXgqKQotKyAgICAjIFdlIGtub3cgdGhlIHZhbHVlIDI2MjE0NCBhbmQgaGFyZGNvZGUgaXQgd2l0 aCBhIHNhZmV0eSB6b25lIChsaWtlIEJTRCkKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE5 NjYwOAotKyAgICA7OwotKwotKyAgb3NmKikKLSsgICAgIyBEci4gSGFucyBFa2tlaGFyZCBQbGVz c2VyIHJlcG9ydHMgc2VlaW5nIGEga2VybmVsIHBhbmljIHJ1bm5pbmcgY29uZmlndXJlCi0rICAg ICMgZHVlIHRvIHRoaXMgdGVzdCB3aGVuIGV4ZWNfZGlzYWJsZV9hcmdfbGltaXQgaXMgMSBvbiBU cnU2NC4gSXQgaXMgbm90Ci0rICAgICMgbmljZSB0byBjYXVzZSBrZXJuZWwgcGFuaWNzIHNvIGxl dHMgYXZvaWQgdGhlIGxvb3AgYmVsb3cuCi0rICAgICMgRmlyc3Qgc2V0IGEgcmVhc29uYWJsZSBk ZWZhdWx0LgotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTYzODQKLSsgICAgIwotKyAgICBp ZiB0ZXN0IC14IC9zYmluL3N5c2NvbmZpZzsgdGhlbgotKyAgICAgIGNhc2UgYC9zYmluL3N5c2Nv bmZpZyAtcSBwcm9jIGV4ZWNfZGlzYWJsZV9hcmdfbGltaXRgIGluCi0rICAgICAgICAqMSopIGx0 X2N2X3N5c19tYXhfY21kX2xlbj0tMSA7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSsgICAgOzsK LSsgIHNjbzMuMnY1KikKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTEwMjQwMAotKyAgICA7 OwotKyAgc3lzdjUqIHwgc2NvNXY2KiB8IHN5c3Y0LjJ1dzIqKQotKyAgICBrYXJnbWF4PWBncmVw IEFSR19NQVggL2V0Yy9jb25mL2NmLmQvc3R1bmUgMj4vZGV2L251bGxgCi0rICAgIGlmIHRlc3Qg LW4gIiRrYXJnbWF4IjsgdGhlbgotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZWNobyAk a2FyZ21heCB8IHNlZCAncy8uKlsJIF0vLydgCi0rICAgIGVsc2UKLSsgICAgICBsdF9jdl9zeXNf bWF4X2NtZF9sZW49MzI3NjgKLSsgICAgZmkKLSsgICAgOzsKLSsgICopCi0rICAgIGx0X2N2X3N5 c19tYXhfY21kX2xlbj1gKGdldGNvbmYgQVJHX01BWCkgMj4gL2Rldi9udWxsYAotKyAgICBpZiB0 ZXN0IC1uICIkbHRfY3Zfc3lzX21heF9jbWRfbGVuIjsgdGhlbgotKyAgICAgIGx0X2N2X3N5c19t YXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDRgCi0rICAgICAgbHRf Y3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXCogM2AKLSsg ICAgZWxzZQotKyAgICAgICMgTWFrZSB0ZXN0c3RyaW5nIGEgbGl0dGxlIGJpZ2dlciBiZWZvcmUg d2UgZG8gYW55dGhpbmcgd2l0aCBpdC4KLSsgICAgICAjIGEgMUsgc3RyaW5nIHNob3VsZCBiZSBh IHJlYXNvbmFibGUgc3RhcnQuCi0rICAgICAgZm9yIGkgaW4gMSAyIDMgNCA1IDYgNyA4IDsgZG8K LSsgICAgICAgIHRlc3RzdHJpbmc9JHRlc3RzdHJpbmckdGVzdHN0cmluZwotKyAgICAgIGRvbmUK LSsgICAgICBTSEVMTD0ke1NIRUxMLSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9fQotKyAgICAgICMg SWYgdGVzdCBpcyBub3QgYSBzaGVsbCBidWlsdC1pbiwgd2UnbGwgcHJvYmFibHkgZW5kIHVwIGNv bXB1dGluZyBhCi0rICAgICAgIyBtYXhpbXVtIGxlbmd0aCB0aGF0IGlzIG9ubHkgaGFsZiBvZiB0 aGUgYWN0dWFsIG1heGltdW0gbGVuZ3RoLCBidXQKLSsgICAgICAjIHdlIGNhbid0IHRlbGwuCi0r ICAgICAgd2hpbGUgeyB0ZXN0ICJYImAkU0hFTEwgJDAgLS1mYWxsYmFjay1lY2hvICJYJHRlc3Rz dHJpbmckdGVzdHN0cmluZyIgMj4vZGV2L251bGxgIFwKLSsJICAgICAgICAgPSAiWFgkdGVzdHN0 cmluZyR0ZXN0c3RyaW5nIjsgfSA+L2Rldi9udWxsIDI+JjEgJiYKLSsJICAgICAgdGVzdCAkaSAh PSAxNyAjIDEvMiBNQiBzaG91bGQgYmUgZW5vdWdoCi0rICAgICAgZG8KLSsgICAgICAgIGk9YGV4 cHIgJGkgKyAxYAotKyAgICAgICAgdGVzdHN0cmluZz0kdGVzdHN0cmluZyR0ZXN0c3RyaW5nCi0r ICAgICAgZG9uZQotKyAgICAgICMgT25seSBjaGVjayB0aGUgc3RyaW5nIGxlbmd0aCBvdXRzaWRl IHRoZSBsb29wLgotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAiWCR0ZXN0c3Ry aW5nIiA6ICIuKiIgMj4mMWAKLSsgICAgICB0ZXN0c3RyaW5nPQotKyAgICAgICMgQWRkIGEgc2ln bmlmaWNhbnQgc2FmZXR5IGZhY3RvciBiZWNhdXNlIEMrKyBjb21waWxlcnMgY2FuIHRhY2sgb24K LSsgICAgICAjIG1hc3NpdmUgYW1vdW50cyBvZiBhZGRpdGlvbmFsIGFyZ3VtZW50cyBiZWZvcmUg cGFzc2luZyB0aGVtIHRvIHRoZQotKyAgICAgICMgbGlua2VyLiAgSXQgYXBwZWFycyBhcyB0aG91 Z2ggMS8yIGlzIGEgdXNhYmxlIHZhbHVlLgotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1g ZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDJgCi0rICAgIGZpCi0rICAgIDs7Ci0rICBl c2FjCi0rCi0rZmkKLSsKLStpZiB0ZXN0IC1uICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gOyB0aGVu Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3Zfc3lzX21heF9j bWRfbGVuIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3N5c19tYXhfY21kX2xlbiIgPiY2OyB9Ci0r ZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm9uZSIgPiY1Ci0r JGFzX2VjaG8gIm5vbmUiID4mNjsgfQotK2ZpCi0rbWF4X2NtZF9sZW49JGx0X2N2X3N5c19tYXhf Y21kX2xlbgotKwotKwotKwotKwotKwotKwotKzogJHtDUD0iY3AgLWYifQotKzogJHtNVj0ibXYg LWYifQotKzogJHtSTT0icm0gLWYifQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyBzb21lIFhTSSBjb25zdHJ1Y3Rz IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5k cyBzb21lIFhTSSBjb25zdHJ1Y3RzLi4uICIgPiY2OyB9Ci0rIyBUcnkgc29tZSBYU0kgZmVhdHVy ZXMKLSt4c2lfc2hlbGw9bm8KLSsoIF9sdF9kdW1teT0iYS9iL2MiCi0rICB0ZXN0ICIke19sdF9k dW1teSMjKi99LCR7X2x0X2R1bW15JS8qfSwiJHtfbHRfZHVtbXklIiRfbHRfZHVtbXkifSwgXAot KyAgICAgID0gYyxhL2IsLCBcCi0rICAgICYmIGV2YWwgJ3Rlc3QgJCgoIDEgKyAxICkpIC1lcSAy IFwKLSsgICAgJiYgdGVzdCAiJHsjX2x0X2R1bW15fSIgLWVxIDUnICkgPi9kZXYvbnVsbCAyPiYx IFwKLSsgICYmIHhzaV9zaGVsbD15ZXMKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkeHNpX3NoZWxsIiA+JjUKLSskYXNfZWNobyAiJHhzaV9zaGVsbCIgPiY2OyB9Ci0rCi0r Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIHNoZWxs IHVuZGVyc3RhbmRzIFwiKz1cIiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0 aGUgc2hlbGwgdW5kZXJzdGFuZHMgXCIrPVwiLi4uICIgPiY2OyB9Ci0rbHRfc2hlbGxfYXBwZW5k PW5vCi0rKCBmb289YmFyOyBzZXQgZm9vIGJhejsgZXZhbCAiJDErPVwkMiIgJiYgdGVzdCAiJGZv byIgPSBiYXJiYXogKSBcCi0rICAgID4vZGV2L251bGwgMj4mMSBcCi0rICAmJiBsdF9zaGVsbF9h cHBlbmQ9eWVzCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X3NoZWxs X2FwcGVuZCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9zaGVsbF9hcHBlbmQiID4mNjsgfQotKwotKwot K2lmICggKE1BSUw9NjA7IHVuc2V0IE1BSUwpIHx8IGV4aXQpID4vZGV2L251bGwgMj4mMTsgdGhl bgotKyAgbHRfdW5zZXQ9dW5zZXQKLStlbHNlCi0rICBsdF91bnNldD1mYWxzZQotK2ZpCi0rCi0r Ci0rCi0rCi0rCi0rIyB0ZXN0IEVCQ0RJQyBvciBBU0NJSQotK2Nhc2UgYGVjaG8gWHx0ciBYICdc MTAxJ2AgaW4KLSsgQSkgIyBBU0NJSSBiYXNlZCBzeXN0ZW0KLSsgICAgIyBcbiBpcyBub3QgaW50 ZXJwcmV0ZWQgY29ycmVjdGx5IGJ5IFNvbGFyaXMgOCAvdXNyL3VjYi90cgotKyAgbHRfU1AyTkw9 J3RyIFwwNDAgXDAxMicKLSsgIGx0X05MMlNQPSd0ciBcMDE1XDAxMiBcMDQwXDA0MCcKLSsgIDs7 Ci0rICopICMgRUJDRElDIGJhc2VkIHN5c3RlbQotKyAgbHRfU1AyTkw9J3RyIFwxMDAgXG4nCi0r ICBsdF9OTDJTUD0ndHIgXHJcbiBcMTAwXDEwMCcKLSsgIDs7Ci0rZXNhYwotKwotKwotKwotKwot KwotKwotKwotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig JExEIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZpbGVzIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBmb3IgJExEIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZpbGVzLi4uICIgPiY2OyB9Ci0r aWYgdGVzdCAiJHtsdF9jdl9sZF9yZWxvYWRfZmxhZytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9sZF9yZWxvYWRfZmxhZz0n LXInCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfbGRf cmVsb2FkX2ZsYWciID4mNQotKyRhc19lY2hvICIkbHRfY3ZfbGRfcmVsb2FkX2ZsYWciID4mNjsg fQotK3JlbG9hZF9mbGFnPSRsdF9jdl9sZF9yZWxvYWRfZmxhZwotK2Nhc2UgJHJlbG9hZF9mbGFn IGluCi0rIiIgfCAiICIqKSA7OwotKyopIHJlbG9hZF9mbGFnPSIgJHJlbG9hZF9mbGFnIiA7Owot K2VzYWMKLStyZWxvYWRfY21kcz0nJExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29i anMnCi0rY2FzZSAkaG9zdF9vcyBpbgotKyAgZGFyd2luKikKLSsgICAgaWYgdGVzdCAiJEdDQyIg PSB5ZXM7IHRoZW4KLSsgICAgICByZWxvYWRfY21kcz0nJExUQ0MgJExUQ0ZMQUdTIC1ub3N0ZGxp YiAke3dsfS1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0rICAgIGVsc2UKLSsgICAgICByZWxv YWRfY21kcz0nJExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0rICAgIGZp Ci0rICAgIDs7Ci0rZXNhYwotKwotKwotKwotKwotKwotKwotKwotKwotKwotK2lmIHRlc3QgLW4g IiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAi JHthY190b29sX3ByZWZpeH1vYmpkdW1wIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdp dGggYXJncy4KLStzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1vYmpkdW1wOyBhY193b3JkPSQy Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVz dCAiJHthY19jdl9wcm9nX09CSkRVTVArc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJE9CSkRVTVAiOyB0aGVuCi0r ICBhY19jdl9wcm9nX09CSkRVTVA9IiRPQkpEVU1QIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0 aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgot K2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAt eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl Y3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX09CSkRVTVA9IiR7YWNfdG9vbF9wcmVmaXh9b2Jq ZHVtcCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQot K0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rT0JKRFVNUD0kYWNfY3ZfcHJvZ19PQkpE VU1QCi0raWYgdGVzdCAtbiAiJE9CSkRVTVAiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkT0JKRFVNUCIgPiY1Ci0rJGFzX2VjaG8gIiRPQkpEVU1QIiA+JjY7 IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1 Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFj X2N2X3Byb2dfT0JKRFVNUCI7IHRoZW4KLSsgIGFjX2N0X09CSkRVTVA9JE9CSkRVTVAKLSsgICMg RXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAib2JqZHVtcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dy YW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IG9iamR1bXA7IGFjX3dvcmQ9JDIKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2Fj X2N2X3Byb2dfYWNfY3RfT0JKRFVNUCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfT0JKRFVNUCI7IHRo ZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfT0JKRFVNUD0iJGFjX2N0X09CSkRVTVAiICMgTGV0IHRo ZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9 JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3Nh dmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNf ZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfT0JKRFVN UD0ib2JqZHVtcCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0r ZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfT0JKRFVNUD0kYWNf Y3ZfcHJvZ19hY19jdF9PQkpEVU1QCi0raWYgdGVzdCAtbiAiJGFjX2N0X09CSkRVTVAiOyB0aGVu Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfT0JKRFVNUCIg PiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9PQkpEVU1QIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7 IH0KLStmaQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9PQkpEVU1QIiA9IHg7IHRoZW4KLSsgICAg T0JKRFVNUD0iZmFsc2UiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNf dG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJO SU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4m NQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVm aXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStl c2FjCi0rICAgIE9CSkRVTVA9JGFjX2N0X09CSkRVTVAKLSsgIGZpCi0rZWxzZQotKyAgT0JKRFVN UD0iJGFjX2N2X3Byb2dfT0JKRFVNUCIKLStmaQotKwotK3Rlc3QgLXogIiRPQkpEVU1QIiAmJiBP QkpEVU1QPW9iamR1bXAKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRvIHJlY29nbml6ZSBkZXBlbmRlbnQgbGlicmFy aWVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gcmVjb2duaXplIGRlcGVuZGVu dCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X2RlcGxpYnNfY2hlY2tf bWV0aG9kK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSckTUFHSUNfQ01EJwotK2x0X2N2X2ZpbGVf bWFnaWNfdGVzdF9maWxlPQotK2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSd1bmtub3duJwot KyMgTmVlZCB0byBzZXQgdGhlIHByZWNlZGluZyB2YXJpYWJsZSBvbiBhbGwgcGxhdGZvcm1zIHRo YXQgc3VwcG9ydAotKyMgaW50ZXJsaWJyYXJ5IGRlcGVuZGVuY2llcy4KLSsjICdub25lJyAtLSBk ZXBlbmRlbmNpZXMgbm90IHN1cHBvcnRlZC4KLSsjIGB1bmtub3duJyAtLSBzYW1lIGFzIG5vbmUs IGJ1dCBkb2N1bWVudHMgdGhhdCB3ZSByZWFsbHkgZG9uJ3Qga25vdy4KLSsjICdwYXNzX2FsbCcg LS0gYWxsIGRlcGVuZGVuY2llcyBwYXNzZWQgd2l0aCBubyBjaGVja3MuCi0rIyAndGVzdF9jb21w aWxlJyAtLSBjaGVjayBieSBtYWtpbmcgdGVzdCBwcm9ncmFtLgotKyMgJ2ZpbGVfbWFnaWMgW1ty ZWdleF1dJyAtLSBjaGVjayBieSBsb29raW5nIGZvciBmaWxlcyBpbiBsaWJyYXJ5IHBhdGgKLSsj IHdoaWNoIHJlc3BvbmRzIHRvIHRoZSAkZmlsZV9tYWdpY19jbWQgd2l0aCBhIGdpdmVuIGV4dGVu ZGVkIHJlZ2V4LgotKyMgSWYgeW91IGhhdmUgYGZpbGUnIG9yIGVxdWl2YWxlbnQgb24geW91ciBz eXN0ZW0gYW5kIHlvdSdyZSBub3Qgc3VyZQotKyMgd2hldGhlciBgcGFzc19hbGwnIHdpbGwgKmFs d2F5cyogd29yaywgeW91IHByb2JhYmx5IHdhbnQgdGhpcyBvbmUuCi0rCi0rY2FzZSAkaG9zdF9v cyBpbgotK2FpeFs0LTldKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxs Ci0rICA7OwotKwotK2Jlb3MqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19h bGwKLSsgIDs7Ci0rCi0rYnNkaVs0NV0qKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 J2ZpbGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTUxdU0IgKHNoYXJlZCBvYmplY3R8ZHlu YW1pYyBsaWIpJwotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9Jy91c3IvYmluL2ZpbGUgLUwnCi0r ICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vc2hsaWIvbGliYy5zbwotKyAgOzsKLSsKLStj eWd3aW4qKQotKyAgIyBmdW5jX3dpbjMyX2xpYmlkIGlzIGEgc2hlbGwgZnVuY3Rpb24gZGVmaW5l ZCBpbiBsdG1haW4uc2gKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2lj IF54ODYgYXJjaGl2ZSBpbXBvcnR8Xng4NiBETEwnCi0rICBsdF9jdl9maWxlX21hZ2ljX2NtZD0n ZnVuY193aW4zMl9saWJpZCcKLSsgIDs7Ci0rCi0rbWluZ3cqIHwgcHczMiopCi0rICAjIEJhc2Ug TVNZUy9NaW5HVyBkbyBub3QgcHJvdmlkZSB0aGUgJ2ZpbGUnIGNvbW1hbmQgbmVlZGVkIGJ5Ci0r ICAjIGZ1bmNfd2luMzJfbGliaWQgc2hlbGwgZnVuY3Rpb24sIHNvIHVzZSBhIHdlYWtlciB0ZXN0 IGJhc2VkIG9uICdvYmpkdW1wJywKLSsgICMgdW5sZXNzIHdlIGZpbmQgJ2ZpbGUnLCBmb3IgZXhh bXBsZSBiZWNhdXNlIHdlIGFyZSBjcm9zcy1jb21waWxpbmcuCi0rICBpZiAoIGZpbGUgLyApID4v ZGV2L251bGwgMj4mMTsgdGhlbgotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmls ZV9tYWdpYyBeeDg2IGFyY2hpdmUgaW1wb3J0fF54ODYgRExMJwotKyAgICBsdF9jdl9maWxlX21h Z2ljX2NtZD0nZnVuY193aW4zMl9saWJpZCcKLSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgcGVpKi1pMzg2KC4qYXJjaGl0ZWN0 dXJlOiBpMzg2KT8nCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKLSsg IGZpCi0rICA7OwotKwotK2NlZ2NjKQotKyAgIyB1c2UgdGhlIHdlYWtlciB0ZXN0IGJhc2VkIG9u ICdvYmpkdW1wJy4gU2VlIG1pbmd3Ki4KLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdm aWxlX21hZ2ljIGZpbGUgZm9ybWF0IHBlLWFybS0uKmxpdHRsZSguKmFyY2hpdGVjdHVyZTogYXJt KT8nCi0rICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE9CSkRVTVAgLWYnCi0rICA7OwotKwotK2Rh cndpbiogfCByaGFwc29keSopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2Fs bAotKyAgOzsKLSsKLStmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICBpZiBlY2hvIF9fRUxGX18g fCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPiAvZGV2L251bGw7IHRoZW4KLSsgICAgY2FzZSAk aG9zdF9jcHUgaW4KLSsgICAgaSo4NiApCi0rICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHRoZSBw cmVzZW5jZSBvZiBPcGVuQlNEIGhlcmUgd2FzIGEgbWlzdGFrZS4KLSsgICAgICAjIExldCdzIGFj Y2VwdCBib3RoIG9mIHRoZW0gdW50aWwgdGhpcyBpcyBjbGVhcmVkIHVwLgotKyAgICAgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChGcmVlQlNEfE9wZW5CU0R8RHJhZ29u Rmx5KS9pWzMtOV04NiAoY29tcGFjdCApP2RlbWFuZCBwYWdlZCBzaGFyZWQgbGlicmFyeScKLSsg ICAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxlCi0rICAgICAgbHRfY3ZfZmls ZV9tYWdpY190ZXN0X2ZpbGU9YGVjaG8gL3Vzci9saWIvbGliYy5zby4qYAotKyAgICAgIDs7Ci0r ICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19h bGwKLSsgIGZpCi0rICA7OwotKwotK2dudSopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD1wYXNzX2FsbAotKyAgOzsKLSsKLStocHV4MTAuMjAqIHwgaHB1eDExKikKLSsgIGx0X2N2X2Zp bGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKLSsgIGNhc2UgJGhvc3RfY3B1IGluCi0rICBpYTY0 KikKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbMC05XVsw LTldWzAtOV18RUxGLVswLTldWzAtOV0pIHNoYXJlZCBvYmplY3QgZmlsZSAtIElBNjQnCi0rICAg IGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2hwdXgzMi9saWJjLnNvCi0rICAg IDs7Ci0rICBocHBhKjY0KikKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVf bWFnaWMgKHNbMC05XVswLTldWzAtOV18RUxGLVswLTldWzAtOV0pIHNoYXJlZCBvYmplY3QgZmls ZSAtIFBBLVJJU0MgWzAtOV0uWzAtOV0nCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxl PS91c3IvbGliL3BhMjBfNjQvbGliYy5zbAotKyAgICA7OwotKyAgKikKLSsgICAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbMC05XVswLTldWzAtOV18UEEtUklTQ1sw LTldLlswLTldKSBzaGFyZWQgbGlicmFyeScKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2Zp bGU9L3Vzci9saWIvbGliYy5zbAotKyAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLStpbnRlcml4 WzMtOV0qKQotKyAgIyBQSUMgY29kZSBpcyBicm9rZW4gb24gSW50ZXJpeCAzLngsIHRoYXQncyB3 aHkgfFwuYSBub3QgfF9waWNcLmEgaGVyZQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 J21hdGNoX3BhdHRlcm4gL2xpYlteL10rKFwuc298XC5hKSQnCi0rICA7OwotKwotK2lyaXg1KiB8 IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rICBjYXNlICRMRCBpbgotKyAgKi0zMnwqIi0zMiAiKSBs aWJtYWdpYz0zMi1iaXQ7OwotKyAgKi1uMzJ8KiItbjMyICIpIGxpYm1hZ2ljPU4zMjs7Ci0rICAq LTY0fCoiLTY0ICIpIGxpYm1hZ2ljPTY0LWJpdDs7Ci0rICAqKSBsaWJtYWdpYz1uZXZlci1tYXRj aDs7Ci0rICBlc2FjCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAg OzsKLSsKLSsjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCi0rbGludXgqIHwgaypic2QqLWdudSkK LSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK25ldGJz ZCopCi0rICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPiAvZGV2 L251bGw7IHRoZW4KLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRl cm4gL2xpYlteL10rKFwuc29cLlswLTldK1wuWzAtOV0rfF9waWNcLmEpJCcKLSsgIGVsc2UKLSsg ICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYlteL10rKFwu c298X3BpY1wuYSkkJwotKyAgZmkKLSsgIDs7Ci0rCi0rbmV3b3M2KikKLSsgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQgW01MXVNCIChl eGVjdXRhYmxlfGR5bmFtaWMgbGliKScKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmlu L2ZpbGUKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2xpYm5scy5zbwot KyAgOzsKLSsKLSsqbnRvKiB8ICpxbngqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 cGFzc19hbGwKLSsgIDs7Ci0rCi0rb3BlbmJzZCopCi0rICBpZiB0ZXN0IC16ICJgZWNobyBfX0VM Rl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3Rf Y3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbXi9dKyhcLnNvXC5bMC05XStcLlswLTldK3xc LnNvfF9waWNcLmEpJCcKLSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 J21hdGNoX3BhdHRlcm4gL2xpYlteL10rKFwuc29cLlswLTldK1wuWzAtOV0rfF9waWNcLmEpJCcK LSsgIGZpCi0rICA7OwotKwotK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK3Jkb3MqKQotKyAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rc29sYXJpcyopCi0rICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStzeXN2NSogfCBzY28z LjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqIHwgc3lzdjQqdXcyKikKLSsg IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK3N5c3Y0IHwg c3lzdjQuMyopCi0rICBjYXNlICRob3N0X3ZlbmRvciBpbgotKyAgbW90b3JvbGEpCi0rICAgIGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQg W01MXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliKSBNWzAtOV1bMC05XSogVmVyc2lvbiBb MC05XScKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9YGVjaG8gL3Vzci9saWIvbGli Yy5zbypgCi0rICAgIDs7Ci0rICBuY3IpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9k PXBhc3NfYWxsCi0rICAgIDs7Ci0rICBzZXF1ZW50KQotKyAgICBsdF9jdl9maWxlX21hZ2ljX2Nt ZD0nL2Jpbi9maWxlJwotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdp YyBFTEYgWzAtOV1bMC05XSotYml0IFtMTV1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYiAp JwotKyAgICA7OwotKyAgc25pKQotKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nL2Jpbi9maWxl JwotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0iZmlsZV9tYWdpYyBFTEYgWzAtOV1b MC05XSotYml0IFtMTV1TQiBkeW5hbWljIGxpYiIKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0 X2ZpbGU9L2xpYi9saWJjLnNvCi0rICAgIDs7Ci0rICBzaWVtZW5zKQotKyAgICBsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgICA7OwotKyAgcGMpCi0rICAgIGx0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwot K3RwZiopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLStl c2FjCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2QiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2QiID4mNjsgfQotK2ZpbGVfbWFnaWNfY21kPSRsdF9jdl9maWxlX21hZ2ljX2NtZAot K2RlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZAotK3Rlc3Qg LXogIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgJiYgZGVwbGlic19jaGVja19tZXRob2Q9dW5rbm93 bgotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotK2lmIHRlc3QgLW4gIiRhY190 b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190 b29sX3ByZWZpeH1hciIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0r c2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9YXI7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2df QVIrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKyAgaWYgdGVzdCAtbiAiJEFSIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19BUj0iJEFSIiAjIExl dCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsg SUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRh c19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19l eGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0 IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX0FSPSIke2Fj X3Rvb2xfcHJlZml4fWFyIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2Rv bmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStBUj0kYWNfY3ZfcHJv Z19BUgotK2lmIHRlc3QgLW4gIiRBUiI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRBUiIgPiY1Ci0rJGFzX2VjaG8gIiRBUiIgPiY2OyB9Ci0rZWxzZQotKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJu byIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX0FSIjsg dGhlbgotKyAgYWNfY3RfQVI9JEFSCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImFy Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgYXI7 IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRh Y193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7 IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQVIrc2V0fSIgPSBzZXQ7IHRoZW4KLSsg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0 X0FSIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19hY19jdF9BUj0iJGFjX2N0X0FSIiAjIExldCB0aGUg dXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQ QVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZl X0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4 dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X0FSPSJhciIK LSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0k YXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfQVI9JGFjX2N2X3Byb2dfYWNfY3RfQVIK LStpZiB0ZXN0IC1uICIkYWNfY3RfQVIiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkYWNfY3RfQVIiID4mNQotKyRhc19lY2hvICIkYWNfY3RfQVIiID4mNjsg fQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUK LSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X0FSIiA9 IHg7IHRoZW4KLSsgICAgQVI9ImZhbHNlIgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21w aWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0 cmlwbGV0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29s cyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9 eWVzIDs7Ci0rZXNhYwotKyAgICBBUj0kYWNfY3RfQVIKLSsgIGZpCi0rZWxzZQotKyAgQVI9IiRh Y19jdl9wcm9nX0FSIgotK2ZpCi0rCi0rdGVzdCAteiAiJEFSIiAmJiBBUj1hcgotK3Rlc3QgLXog IiRBUl9GTEFHUyIgJiYgQVJfRkxBR1M9Y3J1Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0raWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRo ZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fXN0cmlwIiwgc28gaXQgY2FuIGJlIGEg cHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1zdHJp cDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig JGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4m NjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19TVFJJUCtzZXR9IiA9IHNldDsgdGhlbgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkU1RSSVAi OyB0aGVuCi0rICBhY19jdl9wcm9nX1NUUklQPSIkU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRh Y19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfU1RSSVA9IiR7YWNfdG9vbF9wcmVmaXh9 c3RyaXAiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUK LStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK1NUUklQPSRhY19jdl9wcm9nX1NUUklQ Ci0raWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJFNUUklQIiA+JjUKLSskYXNfZWNobyAiJFNUUklQIiA+JjY7IH0KLStlbHNl Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2Vj aG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2df U1RSSVAiOyB0aGVuCi0rICBhY19jdF9TVFJJUD0kU1RSSVAKLSsgICMgRXh0cmFjdCB0aGUgZmly c3Qgd29yZCBvZiAic3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdz LgotK3NldCBkdW1teSBzdHJpcDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9TVFJJ UCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBpZiB0ZXN0IC1uICIkYWNfY3RfU1RSSVAiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0 X1NUUklQPSIkYWNfY3RfU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0Lgot K2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2Rp ciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu Ci0rICAgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9InN0cmlwIgotKyAgICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAg ICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2Zp Ci0rZmkKLSthY19jdF9TVFJJUD0kYWNfY3ZfcHJvZ19hY19jdF9TVFJJUAotK2lmIHRlc3QgLW4g IiRhY19jdF9TVFJJUCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRhY19jdF9TVFJJUCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9TVFJJUCIgPiY2OyB9Ci0r ZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRh c19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfU1RSSVAiID0g eDsgdGhlbgotKyAgICBTVFJJUD0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGls aW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJp cGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMg bm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXll cyA7OwotK2VzYWMKLSsgICAgU1RSSVA9JGFjX2N0X1NUUklQCi0rICBmaQotK2Vsc2UKLSsgIFNU UklQPSIkYWNfY3ZfcHJvZ19TVFJJUCIKLStmaQotKwotK3Rlc3QgLXogIiRTVFJJUCIgJiYgU1RS SVA9OgotKwotKwotKwotKwotKwotKwotK2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRo ZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1yYW5s aWIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAk e2FjX3Rvb2xfcHJlZml4fXJhbmxpYjsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19SQU5MSUIr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQot KyAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfUkFOTElCPSIkUkFO TElCIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9J RlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwot KyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsg IGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAg aWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94 ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9n X1JBTkxJQj0iJHthY190b29sX3ByZWZpeH1yYW5saWIiCi0rICAgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJy ZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStm aQotK1JBTkxJQj0kYWNfY3ZfcHJvZ19SQU5MSUIKLStpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhl bgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFJBTkxJQiIgPiY1Ci0r JGFzX2VjaG8gIiRSQU5MSUIiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0r Ci0rZmkKLStpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19SQU5MSUIiOyB0aGVuCi0rICBhY19jdF9S QU5MSUI9JFJBTkxJQgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJyYW5saWIiLCBz byBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSByYW5saWI7 IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRh Y193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7 IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfUkFOTElCK3NldH0iID0gc2V0OyB0aGVu Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRh Y19jdF9SQU5MSUIiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X1JBTkxJQj0iJGFjX2N0X1JB TkxJQiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8K LSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0r ICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsg IGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3Rf eCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJv Z19hY19jdF9SQU5MSUI9InJhbmxpYiIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAg ZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3Rf UkFOTElCPSRhY19jdl9wcm9nX2FjX2N0X1JBTkxJQgotK2lmIHRlc3QgLW4gIiRhY19jdF9SQU5M SUIiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Rf UkFOTElCIiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X1JBTkxJQiIgPiY2OyB9Ci0rZWxzZQotKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJu byIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfUkFOTElCIiA9IHg7IHRoZW4K LSsgICAgUkFOTElCPSI6IgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFj X3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FS TklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJl Zml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0r ZXNhYwotKyAgICBSQU5MSUI9JGFjX2N0X1JBTkxJQgotKyAgZmkKLStlbHNlCi0rICBSQU5MSUI9 IiRhY19jdl9wcm9nX1JBTkxJQiIKLStmaQotKwotK3Rlc3QgLXogIiRSQU5MSUIiICYmIFJBTkxJ Qj06Ci0rCi0rCi0rCi0rCi0rCi0rCi0rIyBEZXRlcm1pbmUgY29tbWFuZHMgdG8gY3JlYXRlIG9s ZC1zdHlsZSBzdGF0aWMgYXJjaGl2ZXMuCi0rb2xkX2FyY2hpdmVfY21kcz0nJEFSICRBUl9GTEFH UyAkb2xkbGliJG9sZG9ianMnCi0rb2xkX3Bvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDY0NCAkb2xk bGliJwotK29sZF9wb3N0dW5pbnN0YWxsX2NtZHM9Ci0rCi0raWYgdGVzdCAtbiAiJFJBTkxJQiI7 IHRoZW4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIG9wZW5ic2QqKQotKyAgICBvbGRfcG9zdGlu c3RhbGxfY21kcz0iJG9sZF9wb3N0aW5zdGFsbF9jbWRzflwkUkFOTElCIC10IFwkb2xkbGliIgot KyAgICA7OwotKyAgKikKLSsgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3Rh bGxfY21kc35cJFJBTkxJQiBcJG9sZGxpYiIKLSsgICAgOzsKLSsgIGVzYWMKLSsgIG9sZF9hcmNo aXZlX2NtZHM9IiRvbGRfYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkb2xkbGliIgotK2ZpCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rIyBJZiBubyBDIGNvbXBp bGVyIHdhcyBzcGVjaWZpZWQsIHVzZSBDQy4KLStMVENDPSR7TFRDQy0iJENDIn0KLSsKLSsjIElm IG5vIEMgY29tcGlsZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQsIHVzZSBDRkxBR1MuCi0rTFRDRkxB R1M9JHtMVENGTEFHUy0iJENGTEFHUyJ9Ci0rCi0rIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0g bmFtZSB3aXRoIGFyZ3VtZW50cy4KLStjb21waWxlcj0kQ0MKLSsKLSsKLSsjIENoZWNrIGZvciBj b21tYW5kIHRvIGdyYWIgdGhlIHJhdyBzeW1ib2wgbmFtZSBmb2xsb3dlZCBieSBDIHN5bWJvbCBm cm9tIG5tLgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBjb21tYW5kIHRv IHBhcnNlICROTSBvdXRwdXQgZnJvbSAkY29tcGlsZXIgb2JqZWN0IiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBjb21tYW5kIHRvIHBhcnNlICROTSBvdXRwdXQgZnJvbSAkY29tcGlsZXIgb2Jq ZWN0Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBl K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsKLSsjIFRoZXNlIGFyZSBzYW5lIGRlZmF1bHRzIHRoYXQgd29yayBvbiBhdCBsZWFzdCBhIGZl dyBvbGQgc3lzdGVtcy4KLSsjIFtUaGV5IGNvbWUgZnJvbSBVbHRyaXguICBXaGF0IGNvdWxkIGJl IG9sZGVyIHRoYW4gVWx0cml4PyEhIDspXQotKwotKyMgQ2hhcmFjdGVyIGNsYXNzIGRlc2NyaWJp bmcgTk0gZ2xvYmFsIHN5bWJvbCBjb2Rlcy4KLStzeW1jb2RlPSdbQkNERUdSU1RdJwotKwotKyMg UmVnZXhwIHRvIG1hdGNoIHN5bWJvbHMgdGhhdCBjYW4gYmUgYWNjZXNzZWQgZGlyZWN0bHkgZnJv bSBDLgotK3N5bXBhdD0nXChbX0EtWmEtel1bX0EtWmEtejAtOV0qXCknCi0rCi0rIyBEZWZpbmUg c3lzdGVtLXNwZWNpZmljIHZhcmlhYmxlcy4KLStjYXNlICRob3N0X29zIGluCi0rYWl4KikKLSsg IHN5bWNvZGU9J1tCQ0RUXScKLSsgIDs7Ci0rY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2Vn Y2MqKQotKyAgc3ltY29kZT0nW0FCQ0RHSVNUV10nCi0rICA7OwotK2hwdXgqKQotKyAgaWYgdGVz dCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgc3ltY29kZT0nW0FCQ0RFR1JTVF0nCi0r ICBmaQotKyAgOzsKLStpcml4KiB8IG5vbnN0b3B1eCopCi0rICBzeW1jb2RlPSdbQkNERUdSU1Rd JwotKyAgOzsKLStvc2YqKQotKyAgc3ltY29kZT0nW0JDREVHUVJTVF0nCi0rICA7OwotK3NvbGFy aXMqKQotKyAgc3ltY29kZT0nW0JEUlRdJwotKyAgOzsKLStzY28zLjJ2NSopCi0rICBzeW1jb2Rl PSdbRFRdJwotKyAgOzsKLStzeXN2NC4ydXcyKikKLSsgIHN5bWNvZGU9J1tEVF0nCi0rICA7Owot K3N5c3Y1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCopCi0rICBzeW1jb2RlPSdb QUJEVF0nCi0rICA7OwotK3N5c3Y0KQotKyAgc3ltY29kZT0nW0RGTlNUVV0nCi0rICA7OwotK2Vz YWMKLSsKLSsjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB1c2UgaXRzIHN0YW5kYXJkIHN5 bWJvbCBjb2Rlcy4KLStjYXNlIGAkTk0gLVYgMj4mMWAgaW4KLSsqR05VKiB8ICond2l0aCBCRkQn KikKLSsgIHN5bWNvZGU9J1tBQkNER0lSU1RXXScgOzsKLStlc2FjCi0rCi0rIyBUcmFuc2Zvcm0g YW4gZXh0cmFjdGVkIHN5bWJvbCBsaW5lIGludG8gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbi4KLSsj IFNvbWUgc3lzdGVtcyAoZXNwLiBvbiBpYTY0KSBsaW5rIGRhdGEgYW5kIGNvZGUgc3ltYm9scyBk aWZmZXJlbnRseSwKLSsjIHNvIHVzZSB0aGlzIGdlbmVyYWwgYXBwcm9hY2guCi0rbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9InNlZCAtbiAtZSAncy9eVCAuKiBcKC4qXCkkL2V4dGVy biBpbnQgXDEoKTsvcCcgLWUgJ3MvXiRzeW1jb2RlKiAuKiBcKC4qXCkkL2V4dGVybiBjaGFyIFwx Oy9wJyIKLSsKLSsjIFRyYW5zZm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUgaW50byBzeW1i b2wgbmFtZSBhbmQgc3ltYm9sIGFkZHJlc3MKLStsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19j X25hbWVfYWRkcmVzcz0ic2VkIC1uIC1lICdzL146IFwoW14gXSpcKSAkLyAge1xcXCJcMVxcXCIs ICh2b2lkICopIDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW14gXSpcKSBcKFteIF0qXCkkLyAg e1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIgotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3Rv X2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXg9InNlZCAtbiAtZSAncy9eOiBcKFteIF0qXCkgJC8g IHtcXFwiXDFcXFwiLCAodm9pZCAqKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFteIF0qXCkg XChsaWJbXiBdKlwpJC8gIHtcIlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyAtZSAncy9eJHN5bWNv ZGUqIFwoW14gXSpcKSBcKFteIF0qXCkkLyAge1wibGliXDJcIiwgKHZvaWQgKikgXCZcMn0sL3An IgotKwotKyMgSGFuZGxlIENSTEYgaW4gbWluZ3cgdG9vbCBjaGFpbgotK29wdF9jcj0KLStjYXNl ICRidWlsZF9vcyBpbgotK21pbmd3KikKLSsgIG9wdF9jcj1gJEVDSE8gJ3hcezAsMVx9JyB8IHRy IHggJ1wwMTUnYCAjIG9wdGlvbiBjciBpbiByZWdleHAKLSsgIDs7Ci0rZXNhYwotKwotKyMgVHJ5 IHdpdGhvdXQgYSBwcmVmaXggdW5kZXJzY29yZSwgdGhlbiB3aXRoIGl0LgotK2ZvciBhY19zeW1w cmZ4IGluICIiICJfIjsgZG8KLSsKLSsgICMgVHJhbnNmb3JtIHN5bWNvZGUsIHN5bXBhdCwgYW5k IHN5bXByZnggaW50byBhIHJhdyBzeW1ib2wgYW5kIGEgQyBzeW1ib2wuCi0rICBzeW14ZnJtPSJc XDEgJGFjX3N5bXByZnhcXDIgXFwyIgotKwotKyAgIyBXcml0ZSB0aGUgcmF3IGFuZCBDIGlkZW50 aWZpZXJzLgotKyAgaWYgdGVzdCAiJGx0X2N2X25tX2ludGVyZmFjZSIgPSAiTVMgZHVtcGJpbiI7 IHRoZW4KLSsgICAgIyBGYWtlIGl0IGZvciBkdW1wYmluIGFuZCBzYXkgVCBmb3IgYW55IG5vbi1z dGF0aWMgZnVuY3Rpb24KLSsgICAgIyBhbmQgRCBmb3IgYW55IGdsb2JhbCB2YXJpYWJsZS4KLSsg ICAgIyBBbHNvIGZpbmQgQysrIGFuZCBfX2Zhc3RjYWxsIHN5bWJvbHMgZnJvbSBNU1ZDKyssCi0r ICAgICMgd2hpY2ggc3RhcnQgd2l0aCBAIG9yID8uCi0rICAgIGx0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3BpcGU9IiRBV0sgJyJcCi0rIiAgICAge2xhc3Rfc2VjdGlvbj1zZWN0aW9uOyBzZWN0aW9u PVwkIDN9OyJcCi0rIiAgICAgL1NlY3Rpb24gbGVuZ3RoIC4qI3JlbG9jcy4qKHBpY2sgYW55KS97 aGlkZVtsYXN0X3NlY3Rpb25dPTF9OyJcCi0rIiAgICAgXCQgMCF+L0V4dGVybmFsICpcfC97bmV4 dH07IlwKLSsiICAgICAvIDArIFVOREVGIC97bmV4dH07IC8gVU5ERUYgXChbXnxdXCkqKCkve25l eHR9OyJcCi0rIiAgICAge2lmKGhpZGVbc2VjdGlvbl0pIG5leHR9OyJcCi0rIiAgICAge2Y9MH07 IFwkIDB+L1woXCkuKlx8L3tmPTF9OyB7cHJpbnRmIGYgPyBcIlQgXCIgOiBcIkQgXCJ9OyJcCi0r IiAgICAge3NwbGl0KFwkIDAsIGEsIC9cfHxcci8pOyBzcGxpdChhWzJdLCBzKX07IlwKLSsiICAg ICBzWzFdfi9eW0A/XS97cHJpbnQgc1sxXSwgc1sxXTsgbmV4dH07IlwKLSsiICAgICBzWzFdfnBy Zngge3NwbGl0KHNbMV0sdCxcIkBcIik7IHByaW50IHRbMV0sIHN1YnN0cih0WzFdLGxlbmd0aChw cmZ4KSl9IlwKLSsiICAgICAnIHByZng9XiRhY19zeW1wcmZ4IgotKyAgZWxzZQotKyAgICBsdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPSJzZWQgLW4gLWUgJ3MvXi4qWwkgXVwoJHN5bWNvZGUk c3ltY29kZSpcKVsJIF1bCSBdKiRhY19zeW1wcmZ4JHN5bXBhdCRvcHRfY3IkLyRzeW14ZnJtL3An IgotKyAgZmkKLSsKLSsgICMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhlIHBpcGUgd29ya3MgY29ycmVj dGx5LgotKyAgcGlwZV93b3Jrcz1ubwotKwotKyAgcm0gLWYgY29uZnRlc3QqCi0rICBjYXQgPiBj b25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAi QyIgewotKyNlbmRpZgotK2NoYXIgbm1fdGVzdF92YXI7Ci0rdm9pZCBubV90ZXN0X2Z1bmModm9p ZCk7Ci0rdm9pZCBubV90ZXN0X2Z1bmModm9pZCl7fQotKyNpZmRlZiBfX2NwbHVzcGx1cwotK30K LSsjZW5kaWYKLStpbnQgbWFpbigpe25tX3Rlc3RfdmFyPSdhJztubV90ZXN0X2Z1bmMoKTtyZXR1 cm4oMCk7fQotK19MVF9FT0YKLSsKLSsgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86 IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLSsgIGFj X3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCi0rICAgICMgTm93IHRyeSB0byBn cmFiIHRoZSBzeW1ib2xzLgotKyAgICBubGlzdD1jb25mdGVzdC5ubQotKyAgICBpZiB7IChldmFs IGVjaG8gIiRhc19tZTokTElORU5POiBcIiROTSBjb25mdGVzdC4kYWNfb2JqZXh0IFx8ICRsdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIFw+ICRubGlzdFwiIikgPiY1Ci0rICAoZXZhbCAkTk0g Y29uZnRlc3QuJGFjX29iamV4dCBcfCAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBcPiAk bmxpc3QpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHRlc3Qg LXMgIiRubGlzdCI7IHRoZW4KLSsgICAgICAjIFRyeSBzb3J0aW5nIGFuZCB1bmlxdWlmeWluZyB0 aGUgb3V0cHV0LgotKyAgICAgIGlmIHNvcnQgIiRubGlzdCIgfCB1bmlxID4gIiRubGlzdCJUOyB0 aGVuCi0rCW12IC1mICIkbmxpc3QiVCAiJG5saXN0IgotKyAgICAgIGVsc2UKLSsJcm0gLWYgIiRu bGlzdCJUCi0rICAgICAgZmkKLSsKLSsgICAgICAjIE1ha2Ugc3VyZSB0aGF0IHdlIHNuYWdnZWQg YWxsIHRoZSBzeW1ib2xzIHdlIG5lZWQuCi0rICAgICAgaWYgJEdSRVAgJyBubV90ZXN0X3ZhciQn ICIkbmxpc3QiID4vZGV2L251bGw7IHRoZW4KLSsJaWYgJEdSRVAgJyBubV90ZXN0X2Z1bmMkJyAi JG5saXN0IiA+L2Rldi9udWxsOyB0aGVuCi0rCSAgY2F0IDw8X0xUX0VPRiA+IGNvbmZ0ZXN0LiRh Y19leHQKLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiIHsKLSsjZW5kaWYKLSsKLStf TFRfRU9GCi0rCSAgIyBOb3cgZ2VuZXJhdGUgdGhlIHN5bWJvbCBmaWxlLgotKwkgIGV2YWwgIiRs dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCInIDwgIiRubGlzdCIgfCAkR1JFUCAtdiBt YWluID4+IGNvbmZ0ZXN0LiRhY19leHQnCi0rCi0rCSAgY2F0IDw8X0xUX0VPRiA+PiBjb25mdGVz dC4kYWNfZXh0Ci0rCi0rLyogVGhlIG1hcHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHN5 bWJvbHMuICAqLwotK2NvbnN0IHN0cnVjdCB7Ci0rICBjb25zdCBjaGFyICpuYW1lOwotKyAgdm9p ZCAgICAgICAqYWRkcmVzczsKLSt9Ci0rbHRfX1BST0dSQU1fX0xUWF9wcmVsb2FkZWRfc3ltYm9s c1tdID0KLSt7Ci0rICB7ICJAUFJPR1JBTUAiLCAodm9pZCAqKSAwIH0sCi0rX0xUX0VPRgotKwkg ICRTRUQgInMvXiRzeW1jb2RlJHN5bWNvZGUqIFwoLipcKSBcKC4qXCkkLyAge1wiXDJcIiwgKHZv aWQgKikgXCZcMn0sLyIgPCAiJG5saXN0IiB8ICRHUkVQIC12IG1haW4gPj4gY29uZnRlc3QuJGFj X2V4dAotKwkgIGNhdCA8PFxfTFRfRU9GID4+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIHswLCAodm9p ZCAqKSAwfQotK307Ci0rCi0rLyogVGhpcyB3b3JrcyBhcm91bmQgYSBwcm9ibGVtIGluIEZyZWVC U0QgbGlua2VyICovCi0rI2lmZGVmIEZSRUVCU0RfV09SS0FST1VORAotK3N0YXRpYyBjb25zdCB2 b2lkICpsdF9wcmVsb2FkZWRfc2V0dXAoKSB7Ci0rICByZXR1cm4gbHRfX1BST0dSQU1fX0xUWF9w cmVsb2FkZWRfc3ltYm9sczsKLSt9Ci0rI2VuZGlmCi0rCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0r fQotKyNlbmRpZgotK19MVF9FT0YKLSsJICAjIE5vdyB0cnkgbGlua2luZyB0aGUgdHdvIGZpbGVz LgotKwkgIG12IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRzdG0uJGFjX29iamV4dAotKwkgIGx0 X3NhdmVfTElCUz0iJExJQlMiCi0rCSAgbHRfc2F2ZV9DRkxBR1M9IiRDRkxBR1MiCi0rCSAgTElC Uz0iY29uZnRzdG0uJGFjX29iamV4dCIKLSsJICBDRkxBR1M9IiRDRkxBR1MkbHRfcHJvZ19jb21w aWxlcl9ub19idWlsdGluX2ZsYWciCi0rCSAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVO TzogXCIkYWNfbGlua1wiIikgPiY1Ci0rICAoZXZhbCAkYWNfbGluaykgMj4mNQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0 fTsgdGhlbgotKwkgICAgcGlwZV93b3Jrcz15ZXMKLSsJICBmaQotKwkgIExJQlM9IiRsdF9zYXZl X0xJQlMiCi0rCSAgQ0ZMQUdTPSIkbHRfc2F2ZV9DRkxBR1MiCi0rCWVsc2UKLSsJICBlY2hvICJj YW5ub3QgZmluZCBubV90ZXN0X2Z1bmMgaW4gJG5saXN0IiA+JjUKLSsJZmkKLSsgICAgICBlbHNl Ci0rCWVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfdmFyIGluICRubGlzdCIgPiY1Ci0rICAgICAg ZmkKLSsgICAgZWxzZQotKyAgICAgIGVjaG8gImNhbm5vdCBydW4gJGx0X2N2X3N5c19nbG9iYWxf c3ltYm9sX3BpcGUiID4mNQotKyAgICBmaQotKyAgZWxzZQotKyAgICBlY2hvICIkcHJvZ25hbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotKyAgICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUK LSsgIGZpCi0rICBybSAtcmYgY29uZnRlc3QqIGNvbmZ0c3QqCi0rCi0rICAjIERvIG5vdCB1c2Ug dGhlIGdsb2JhbF9zeW1ib2xfcGlwZSB1bmxlc3MgaXQgd29ya3MuCi0rICBpZiB0ZXN0ICIkcGlw ZV93b3JrcyIgPSB5ZXM7IHRoZW4KLSsgICAgYnJlYWsKLSsgIGVsc2UKLSsgICAgbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfcGlwZT0KLSsgIGZpCi0rZG9uZQotKwotK2ZpCi0rCi0raWYgdGVzdCAt eiAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCi0rICBsdF9jdl9zeXNfZ2xv YmFsX3N5bWJvbF90b19jZGVjbD0KLStmaQotK2lmIHRlc3QgLXogIiRsdF9jdl9zeXNfZ2xvYmFs X3N5bWJvbF9waXBlJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIjsgdGhlbgotKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogZmFpbGVkIiA+JjUKLSskYXNfZWNo byAiZmFpbGVkIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiBvayIgPiY1Ci0rJGFzX2VjaG8gIm9rIiA+JjY7IH0KLStmaQotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1saWJ0b29sLWxvY2sgd2FzIGdpdmVuLgotK2lmIHRl c3QgIiR7ZW5hYmxlX2xpYnRvb2xfbG9jaytzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFs PSRlbmFibGVfbGlidG9vbF9sb2NrOwotK2ZpCi0rCi0rdGVzdCAieCRlbmFibGVfbGlidG9vbF9s b2NrIiAhPSB4bm8gJiYgZW5hYmxlX2xpYnRvb2xfbG9jaz15ZXMKLSsKLSsjIFNvbWUgZmxhZ3Mg bmVlZCB0byBiZSBwcm9wYWdhdGVkIHRvIHRoZSBjb21waWxlciBvciBsaW5rZXIgZm9yIGdvb2QK LSsjIGxpYnRvb2wgc3VwcG9ydC4KLStjYXNlICRob3N0IGluCi0raWE2NC0qLWhwdXgqKQotKyAg IyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgotKyAgZWNobyAnaW50IGk7JyA+IGNv bmZ0ZXN0LiRhY19leHQKLSsgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFj X2NvbXBpbGVcIiIpID4mNQotKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLSsgIGFjX3N0YXR1 cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK LSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCi0rICAgIGNhc2UgYC91c3IvYmluL2ZpbGUg Y29uZnRlc3QuJGFjX29iamV4dGAgaW4KLSsgICAgICAqRUxGLTMyKikKLSsJSFBVWF9JQTY0X01P REU9IjMyIgotKwk7OwotKyAgICAgICpFTEYtNjQqKQotKwlIUFVYX0lBNjRfTU9ERT0iNjQiCi0r CTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBybSAtcmYgY29uZnRlc3QqCi0rICA7OwotKyotKi1p cml4NiopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBlY2hvICcj bGluZSA2ODQ0ICJjb25maWd1cmUiJyA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlmIHsgKGV2YWwg ZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotKyAgKGV2YWwgJGFj X2NvbXBpbGUpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVu Ci0rICAgIGlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgICBj YXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCi0rCSozMi1iaXQqKQot KwkgIExEPSIke0xELWxkfSAtbWVsZjMyYnNtaXAiCi0rCSAgOzsKLSsJKk4zMiopCi0rCSAgTEQ9 IiR7TEQtbGR9IC1tZWxmMzJibWlwbjMyIgotKwkgIDs7Ci0rCSo2NC1iaXQqKQotKwkgIExEPSIk e0xELWxkfSAtbWVsZjY0Ym1pcCIKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgIGVsc2UKLSsgICAg ICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCi0rCSozMi1iaXQq KQotKwkgIExEPSIke0xELWxkfSAtMzIiCi0rCSAgOzsKLSsJKk4zMiopCi0rCSAgTEQ9IiR7TEQt bGR9IC1uMzIiCi0rCSAgOzsKLSsJKjY0LWJpdCopCi0rCSAgTEQ9IiR7TEQtbGR9IC02NCIKLSsJ ICA7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSsgIGZpCi0rICBybSAtcmYgY29uZnRlc3QqCi0r ICA7OwotKwotK3g4Nl82NC0qa2ZyZWVic2QqLWdudXx4ODZfNjQtKmxpbnV4KnxwcGMqLSpsaW51 eCp8cG93ZXJwYyotKmxpbnV4KnwgXAotK3MzOTAqLSpsaW51eCp8czM5MCotKnRwZip8c3BhcmMq LSpsaW51eCopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBlY2hv ICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAotKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6 JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfY29tcGlsZSkgMj4m NQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh Y19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KLSsgICAgY2FzZSBg L3Vzci9iaW4vZmlsZSBjb25mdGVzdC5vYCBpbgotKyAgICAgICozMi1iaXQqKQotKwljYXNlICRo b3N0IGluCi0rCSAgeDg2XzY0LSprZnJlZWJzZCotZ251KQotKwkgICAgTEQ9IiR7TEQtbGR9IC1t IGVsZl9pMzg2X2Zic2QiCi0rCSAgICA7OwotKwkgIHg4Nl82NC0qbGludXgqKQotKwkgICAgTEQ9 IiR7TEQtbGR9IC1tIGVsZl9pMzg2IgotKwkgICAgOzsKLSsJICBwcGM2NC0qbGludXgqfHBvd2Vy cGM2NC0qbGludXgqKQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjMycHBjbGludXgiCi0rCSAg ICA7OwotKwkgIHMzOTB4LSpsaW51eCopCi0rCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3MzOTAi Ci0rCSAgICA7OwotKwkgIHNwYXJjNjQtKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBl bGYzMl9zcGFyYyIKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICAqNjQtYml0KikKLSsJ Y2FzZSAkaG9zdCBpbgotKwkgIHg4Nl82NC0qa2ZyZWVic2QqLWdudSkKLSsJICAgIExEPSIke0xE LWxkfSAtbSBlbGZfeDg2XzY0X2Zic2QiCi0rCSAgICA7OwotKwkgIHg4Nl82NC0qbGludXgqKQot KwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94ODZfNjQiCi0rCSAgICA7OwotKwkgIHBwYyotKmxp bnV4Knxwb3dlcnBjKi0qbGludXgqKQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0cHBjIgot KwkgICAgOzsKLSsJICBzMzkwKi0qbGludXgqfHMzOTAqLSp0cGYqKQotKwkgICAgTEQ9IiR7TEQt bGR9IC1tIGVsZjY0X3MzOTAiCi0rCSAgICA7OwotKwkgIHNwYXJjKi0qbGludXgqKQotKwkgICAg TEQ9IiR7TEQtbGR9IC1tIGVsZjY0X3NwYXJjIgotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAg ICBlc2FjCi0rICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgOzsKLSsKLSsqLSotc2NvMy4y djUqKQotKyAgIyBPbiBTQ08gT3BlblNlcnZlciA1LCB3ZSBuZWVkIC1iZWxmIHRvIGdldCBmdWxs LWZlYXR1cmVkIGJpbmFyaWVzLgotKyAgU0FWRV9DRkxBR1M9IiRDRkxBR1MiCi0rICBDRkxBR1M9 IiRDRkxBR1MgLWJlbGYiCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg d2hldGhlciB0aGUgQyBjb21waWxlciBuZWVkcyAtYmVsZiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciBuZWVkcyAtYmVsZi4uLiAiID4mNjsgfQotK2lm IHRlc3QgIiR7bHRfY3ZfY2NfbmVlZHNfYmVsZitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19leHQ9YwotK2FjX2NwcD0nJENQUCAk Q1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFH UyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29t cGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotKwotKyAgICAgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAg OwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRh Y190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK LSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1 cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJt IC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVz KTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAt cyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAm JiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBj b25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgbHRfY3ZfY2NfbmVlZHNfYmVs Zj15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWx0X2N2X2NjX25l ZWRzX2JlbGY9bm8KLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9v IFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotKyAgICAgYWNf ZXh0PWMKLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZM QUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ0MgLW8gY29u ZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLSsK LStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9jY19uZWVk c19iZWxmIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X2NjX25lZWRzX2JlbGYiID4mNjsgfQotKyAg aWYgdGVzdCB4IiRsdF9jdl9jY19uZWVkc19iZWxmIiAhPSB4InllcyI7IHRoZW4KLSsgICAgIyB0 aGlzIGlzIHByb2JhYmx5IGdjYyAyLjguMCwgZWdjcyAxLjAgb3IgbmV3ZXI7IG5vIG5lZWQgZm9y IC1iZWxmCi0rICAgIENGTEFHUz0iJFNBVkVfQ0ZMQUdTIgotKyAgZmkKLSsgIDs7Ci0rc3BhcmMq LSpzb2xhcmlzKikKLSsgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KLSsgIGVj aG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICBpZiB7IChldmFsIGVjaG8gIiRhc19t ZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAy PiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgotKyAgICBjYXNl IGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCi0rICAgICo2NC1iaXQqKQotKyAgICAgIGNh c2UgJGx0X2N2X3Byb2dfZ251X2xkIGluCi0rICAgICAgeWVzKikgTEQ9IiR7TEQtbGR9IC1tIGVs ZjY0X3NwYXJjIiA7OwotKyAgICAgICopCi0rCWlmICR7TEQtbGR9IC02NCAtciAtbyBjb25mdGVz dDIubyBjb25mdGVzdC5vID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkgIExEPSIke0xELWxkfSAt NjQiCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZp Ci0rICBybSAtcmYgY29uZnRlc3QqCi0rICA7OwotK2VzYWMKLSsKLStuZWVkX2xvY2tzPSIkZW5h YmxlX2xpYnRvb2xfbG9jayIKLSsKLSsKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgcmhhcHNv ZHkqIHwgZGFyd2luKikKLSsgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgot KyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWRzeW11dGls Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJHth Y190b29sX3ByZWZpeH1kc3ltdXRpbDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19EU1lNVVRJ TCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBpZiB0ZXN0IC1uICIkRFNZTVVUSUwiOyB0aGVuCi0rICBhY19jdl9wcm9nX0RTWU1VVElM PSIkRFNZTVVUSUwiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSth c19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFU SAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19k aXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7 IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRh c190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFj X2N2X3Byb2dfRFNZTVVUSUw9IiR7YWNfdG9vbF9wcmVmaXh9ZHN5bXV0aWwiCi0rICAgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIg PiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZT Ci0rCi0rZmkKLStmaQotK0RTWU1VVElMPSRhY19jdl9wcm9nX0RTWU1VVElMCi0raWYgdGVzdCAt biAiJERTWU1VVElMIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJERTWU1VVElMIiA+JjUKLSskYXNfZWNobyAiJERTWU1VVElMIiA+JjY7IH0KLStlbHNlCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8g Im5vIiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfRFNZ TVVUSUwiOyB0aGVuCi0rICBhY19jdF9EU1lNVVRJTD0kRFNZTVVUSUwKLSsgICMgRXh0cmFjdCB0 aGUgZmlyc3Qgd29yZCBvZiAiZHN5bXV0aWwiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmdzLgotK3NldCBkdW1teSBkc3ltdXRpbDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJv Z19hY19jdF9EU1lNVVRJTCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfRFNZTVVUSUwiOyB0aGVuCi0r ICBhY19jdl9wcm9nX2FjX2N0X0RTWU1VVElMPSIkYWNfY3RfRFNZTVVUSUwiICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVf SUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0 IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfRFNZTVVUSUw9 ImRzeW11dGlsIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStk b25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9EU1lNVVRJTD0kYWNf Y3ZfcHJvZ19hY19jdF9EU1lNVVRJTAotK2lmIHRlc3QgLW4gIiRhY19jdF9EU1lNVVRJTCI7IHRo ZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9EU1lNVVRJ TCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9EU1lNVVRJTCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIg PiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfRFNZTVVUSUwiID0geDsgdGhlbgot KyAgICBEU1lNVVRJTD0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRh Y190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdB Uk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHBy ZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7Owot K2VzYWMKLSsgICAgRFNZTVVUSUw9JGFjX2N0X0RTWU1VVElMCi0rICBmaQotK2Vsc2UKLSsgIERT WU1VVElMPSIkYWNfY3ZfcHJvZ19EU1lNVVRJTCIKLStmaQotKwotKyAgICBpZiB0ZXN0IC1uICIk YWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7 YWNfdG9vbF9wcmVmaXh9bm1lZGl0Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGgg YXJncy4KLStzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1ubWVkaXQ7IGFjX3dvcmQ9JDIKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSsk YXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIk e2FjX2N2X3Byb2dfTk1FRElUK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiROTUVESVQiOyB0aGVuCi0rICBhY19j dl9wcm9nX05NRURJVD0iJE5NRURJVCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu Ci0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNf ZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRo ZW4KLSsgICAgYWNfY3ZfcHJvZ19OTUVESVQ9IiR7YWNfdG9vbF9wcmVmaXh9bm1lZGl0IgotKyAg ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19z YXZlX0lGUwotKwotK2ZpCi0rZmkKLStOTUVESVQ9JGFjX2N2X3Byb2dfTk1FRElUCi0raWYgdGVz dCAtbiAiJE5NRURJVCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICROTUVESVQiID4mNQotKyRhc19lY2hvICIkTk1FRElUIiA+JjY7IH0KLStlbHNlCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5v IiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfTk1FRElU IjsgdGhlbgotKyAgYWNfY3RfTk1FRElUPSROTUVESVQKLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAibm1lZGl0Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4K LStzZXQgZHVtbXkgbm1lZGl0OyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y ICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X05NRURJ VCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBpZiB0ZXN0IC1uICIkYWNfY3RfTk1FRElUIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19hY19j dF9OTUVESVQ9IiRhY19jdF9OTUVESVQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFz X2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxl X2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0 aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfTk1FRElUPSJubWVkaXQiCi0rICAgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1 Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0r Ci0rZmkKLStmaQotK2FjX2N0X05NRURJVD0kYWNfY3ZfcHJvZ19hY19jdF9OTUVESVQKLStpZiB0 ZXN0IC1uICIkYWNfY3RfTk1FRElUIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGFjX2N0X05NRURJVCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9OTUVESVQi ID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5v IiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0 X05NRURJVCIgPSB4OyB0aGVuCi0rICAgIE5NRURJVD0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAk Y3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3 aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcg Y3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rv b2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgTk1FRElUPSRhY19jdF9OTUVESVQKLSsgIGZp Ci0rZWxzZQotKyAgTk1FRElUPSIkYWNfY3ZfcHJvZ19OTUVESVQiCi0rZmkKLSsKLSsgICAgaWYg dGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3 b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWxpcG8iLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5h bWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWxpcG87IGFjX3dvcmQ9 JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0 ZXN0ICIke2FjX2N2X3Byb2dfTElQTytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkTElQTyI7IHRoZW4KLSsgIGFj X2N2X3Byb2dfTElQTz0iJExJUE8iICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0Lgot K2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2Rp ciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu Ci0rICAgIGFjX2N2X3Byb2dfTElQTz0iJHthY190b29sX3ByZWZpeH1saXBvIgotKyAgICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lG UwotKwotK2ZpCi0rZmkKLStMSVBPPSRhY19jdl9wcm9nX0xJUE8KLStpZiB0ZXN0IC1uICIkTElQ TyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRMSVBPIiA+ JjUKLSskYXNfZWNobyAiJExJUE8iID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0r Ci0rCi0rZmkKLStpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19MSVBPIjsgdGhlbgotKyAgYWNfY3Rf TElQTz0kTElQTwotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJsaXBvIiwgc28gaXQg Y2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgbGlwbzsgYWNfd29y ZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQi ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lm IHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9MSVBPK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRhY19jdF9MSVBP IjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19hY19jdF9MSVBPPSIkYWNfY3RfTElQTyIgIyBMZXQgdGhl IHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0k UEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2 ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19l eHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9MSVBPPSJs aXBvIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0r SUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9MSVBPPSRhY19jdl9wcm9nX2Fj X2N0X0xJUE8KLStpZiB0ZXN0IC1uICIkYWNfY3RfTElQTyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9MSVBPIiA+JjUKLSskYXNfZWNobyAiJGFj X2N0X0xJUE8iID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0 ICJ4JGFjX2N0X0xJUE8iID0geDsgdGhlbgotKyAgICBMSVBPPSI6IgotKyAgZWxzZQotKyAgICBj YXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZp eGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1 c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0r YWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBMSVBPPSRhY19jdF9MSVBPCi0rICBm aQotK2Vsc2UKLSsgIExJUE89IiRhY19jdl9wcm9nX0xJUE8iCi0rZmkKLSsKLSsgICAgaWYgdGVz dCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk IG9mICIke2FjX3Rvb2xfcHJlZml4fW90b29sIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1l IHdpdGggYXJncy4KLStzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1vdG9vbDsgYWNfd29yZD0k MgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRl c3QgIiR7YWNfY3ZfcHJvZ19PVE9PTCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkT1RPT0wiOyB0aGVuCi0rICBh Y19jdl9wcm9nX09UT09MPSIkT1RPT0wiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFz X2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxl X2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0 aGVuCi0rICAgIGFjX2N2X3Byb2dfT1RPT0w9IiR7YWNfdG9vbF9wcmVmaXh9b3Rvb2wiCi0rICAg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3Nh dmVfSUZTCi0rCi0rZmkKLStmaQotK09UT09MPSRhY19jdl9wcm9nX09UT09MCi0raWYgdGVzdCAt biAiJE9UT09MIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JE9UT09MIiA+JjUKLSskYXNfZWNobyAiJE9UT09MIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7 IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfT1RPT0wiOyB0aGVu Ci0rICBhY19jdF9PVE9PTD0kT1RPT0wKLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAi b3Rvb2wiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1t eSBvdG9vbDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4u LiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9PVE9PTCtzZXR9IiA9IHNl dDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0 IC1uICIkYWNfY3RfT1RPT0wiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X09UT09MPSIkYWNf Y3RfT1RPT0wiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAot K2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9 LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRv Ci0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190 ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2 X3Byb2dfYWNfY3RfT1RPT0w9Im90b29sIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0r ICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19j dF9PVE9PTD0kYWNfY3ZfcHJvZ19hY19jdF9PVE9PTAotK2lmIHRlc3QgLW4gIiRhY19jdF9PVE9P TCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9P VE9PTCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9PVE9PTCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIg PiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfT1RPT0wiID0geDsgdGhlbgotKyAg ICBPVE9PTD0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29s X3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6 IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVk IHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMK LSsgICAgT1RPT0w9JGFjX2N0X09UT09MCi0rICBmaQotK2Vsc2UKLSsgIE9UT09MPSIkYWNfY3Zf cHJvZ19PVE9PTCIKLStmaQotKwotKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0 aGVuCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9b3Rv b2w2NCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15 ICR7YWNfdG9vbF9wcmVmaXh9b3Rvb2w2NDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19PVE9P TDY0K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsgIGlmIHRlc3QgLW4gIiRPVE9PTDY0IjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19PVE9PTDY0 PSIkT1RPT0w2NCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2Fz X3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRI Ci0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rp cj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsg ZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFz X3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNf Y3ZfcHJvZ19PVE9PTDY0PSIke2FjX3Rvb2xfcHJlZml4fW90b29sNjQiCi0rICAgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1 Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0r Ci0rZmkKLStmaQotK09UT09MNjQ9JGFjX2N2X3Byb2dfT1RPT0w2NAotK2lmIHRlc3QgLW4gIiRP VE9PTDY0IjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE9U T09MNjQiID4mNQotKyRhc19lY2hvICIkT1RPT0w2NCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2 OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX09UT09MNjQiOyB0 aGVuCi0rICBhY19jdF9PVE9PTDY0PSRPVE9PTDY0Ci0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdv cmQgb2YgIm90b29sNjQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgot K3NldCBkdW1teSBvdG9vbDY0OyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y ICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X09UT09M NjQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X09UT09MNjQiOyB0aGVuCi0rICBhY19jdl9wcm9nX2Fj X2N0X09UT09MNjQ9IiRhY19jdF9PVE9PTDY0IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUg dGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2Zv ciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAi JGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0 YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0Ijsg fTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X09UT09MNjQ9Im90b29sNjQiCi0rICAgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVf SUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X09UT09MNjQ9JGFjX2N2X3Byb2dfYWNfY3RfT1RPT0w2 NAotK2lmIHRlc3QgLW4gIiRhY19jdF9PVE9PTDY0IjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X09UT09MNjQiID4mNQotKyRhc19lY2hvICIkYWNf Y3RfT1RPT0w2NCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRl c3QgIngkYWNfY3RfT1RPT0w2NCIgPSB4OyB0aGVuCi0rICAgIE9UT09MNjQ9IjoiCi0rICBlbHNl Ci0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBu b3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdB Uk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIg PiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIE9UT09MNjQ9JGFjX2N0 X09UT09MNjQKLSsgIGZpCi0rZWxzZQotKyAgT1RPT0w2ND0iJGFjX2N2X3Byb2dfT1RPT0w2NCIK LStmaQotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yIC1zaW5nbGVfbW9kdWxlIGxpbmtlciBmbGFnIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyBmb3IgLXNpbmdsZV9tb2R1bGUgbGlua2VyIGZsYWcuLi4gIiA+JjY7 IH0KLStpZiB0ZXN0ICIke2x0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Qrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3ZfYXBwbGVf Y2Nfc2luZ2xlX21vZD1ubwotKyAgICAgIGlmIHRlc3QgLXogIiR7TFRfTVVMVElfTU9EVUxFfSI7 IHRoZW4KLSsJIyBCeSBkZWZhdWx0IHdlIHdpbGwgYWRkIHRoZSAtc2luZ2xlX21vZHVsZSBmbGFn LiBZb3UgY2FuIG92ZXJyaWRlCi0rCSMgYnkgZWl0aGVyIHNldHRpbmcgdGhlIGVudmlyb25tZW50 IHZhcmlhYmxlIExUX01VTFRJX01PRFVMRQotKwkjIG5vbi1lbXB0eSBhdCBjb25maWd1cmUgdGlt ZSwgb3IgYnkgYWRkaW5nIC1tdWx0aV9tb2R1bGUgdG8gdGhlCi0rCSMgbGluayBmbGFncy4KLSsJ cm0gLXJmIGxpYmNvbmZ0ZXN0LmR5bGliKgotKwllY2hvICJpbnQgZm9vKHZvaWQpe3JldHVybiAx O30iID4gY29uZnRlc3QuYwotKwllY2hvICIkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGli Y29uZnRlc3QuZHlsaWIgXAotKy1keW5hbWljbGliIC1XbCwtc2luZ2xlX21vZHVsZSBjb25mdGVz dC5jIiA+JjUKLSsJJExUQ0MgJExUQ0ZMQUdTICRMREZMQUdTIC1vIGxpYmNvbmZ0ZXN0LmR5bGli IFwKLSsJICAtZHluYW1pY2xpYiAtV2wsLXNpbmdsZV9tb2R1bGUgY29uZnRlc3QuYyAyPmNvbmZ0 ZXN0LmVycgotKyAgICAgICAgX2x0X3Jlc3VsdD0kPwotKwlpZiB0ZXN0IC1mIGxpYmNvbmZ0ZXN0 LmR5bGliICYmIHRlc3QgISAtcyBjb25mdGVzdC5lcnIgJiYgdGVzdCAkX2x0X3Jlc3VsdCA9IDA7 IHRoZW4KLSsJICBsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kPXllcwotKwllbHNlCi0rCSAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKLSsJZmkKLSsJcm0gLXJmIGxpYmNvbmZ0ZXN0LmR5bGliKgotKwly bSAtZiBjb25mdGVzdC4qCi0rICAgICAgZmkKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kIiA+JjUKLSskYXNfZWNobyAi JGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiID4mNjsgfQotKyAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgbGlua2VyIGZs YWciID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAtZXhwb3J0ZWRfc3ltYm9sc19saXN0 IGxpbmtlciBmbGFnLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9sZF9leHBvcnRlZF9z eW1ib2xzX2xpc3Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci0rZWxzZQotKyAgbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PW5vCi0rICAgICAg c2F2ZV9MREZMQUdTPSRMREZMQUdTCi0rICAgICAgZWNobyAiX21haW4iID4gY29uZnRlc3Quc3lt Ci0rICAgICAgTERGTEFHUz0iJExERkxBR1MgLVdsLC1leHBvcnRlZF9zeW1ib2xzX2xpc3QsY29u ZnRlc3Quc3ltIgotKyAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNv bmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4g ICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStf QUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lm IHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNf bGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisn IGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNh dCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh Y19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAi JGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAg IH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2Nv bXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAg ICAgIH07IHRoZW4KLSsgIGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD15ZXMKLStlbHNl Ci0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWx0X2N2X2xkX2V4cG9ydGVkX3N5bWJv bHNfbGlzdD1ubwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28g XAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCUxERkxBR1M9 IiRzYXZlX0xERkxBR1MiCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0IiA+JjUKLSskYXNfZWNobyAiJGx0 X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdCIgPiY2OyB9Ci0rICAgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsgICAgcmhhcHNvZHkqIHwgZGFyd2luMS5bMDEyXSkKLSsgICAgICBfbHRfZGFyX2FsbG93 X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7Ci0rICAgIGRhcndp bjEuKikKLSsgICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tZmxhdF9uYW1lc3Bh Y2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7Ci0rICAgIGRhcndpbiopICMgZGFy d2luIDUueCBvbgotKyAgICAgICMgaWYgcnVubmluZyBvbiAxMC41IG9yIGxhdGVyLCB0aGUgZGVw bG95bWVudCB0YXJnZXQgZGVmYXVsdHMKLSsgICAgICAjIHRvIHRoZSBPUyB2ZXJzaW9uLCBpZiBv biB4ODYsIGFuZCAxMC40LCB0aGUgZGVwbG95bWVudAotKyAgICAgICMgdGFyZ2V0IGRlZmF1bHRz IHRvIDEwLjQuIERvbid0IHlvdSBsb3ZlIGl0PwotKyAgICAgIGNhc2UgJHtNQUNPU1hfREVQTE9Z TUVOVF9UQVJHRVQtMTAuMH0sJGhvc3QgaW4KLSsJMTAuMCwqODYqLWRhcndpbjgqfDEwLjAsKi1k YXJ3aW5bOTFdKikKLSsJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVk ICR7d2x9ZHluYW1pY19sb29rdXAnIDs7Ci0rCTEwLlswMTJdKikKLSsJICBfbHRfZGFyX2FsbG93 X3VuZGVmaW5lZD0nJHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9c3Vw cHJlc3MnIDs7Ci0rCTEwLiopCi0rCSAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVu ZGVmaW5lZCAke3dsfWR5bmFtaWNfbG9va3VwJyA7OwotKyAgICAgIGVzYWMKLSsgICAgOzsKLSsg IGVzYWMKLSsgICAgaWYgdGVzdCAiJGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiID0gInllcyI7 IHRoZW4KLSsgICAgICBfbHRfZGFyX3NpbmdsZV9tb2Q9JyRzaW5nbGVfbW9kdWxlJwotKyAgICBm aQotKyAgICBpZiB0ZXN0ICIkbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0IiA9ICJ5ZXMi OyB0aGVuCi0rICAgICAgX2x0X2Rhcl9leHBvcnRfc3ltcz0nICR7d2x9LWV4cG9ydGVkX3N5bWJv bHNfbGlzdCwkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltJwotKyAgICBl bHNlCi0rICAgICAgX2x0X2Rhcl9leHBvcnRfc3ltcz0nfiROTUVESVQgLXMgJG91dHB1dF9vYmpk aXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xpYn0nCi0rICAgIGZpCi0rICAgIGlmIHRl c3QgIiREU1lNVVRJTCIgIT0gIjoiOyB0aGVuCi0rICAgICAgX2x0X2RzeW11dGlsPSd+JERTWU1V VElMICRsaWIgfHwgOicKLSsgICAgZWxzZQotKyAgICAgIF9sdF9kc3ltdXRpbD0KLSsgICAgZmkK LSsgICAgOzsKLSsgIGVzYWMKLSsKLSthY19leHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1Mn Ci0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg PiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jX2NvbXBpbGVyX2dudQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3NvciIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IuLi4gIiA+JjY7IH0KLSsjIE9uIFN1 bnMsIHNvbWV0aW1lcyAkQ1BQIG5hbWVzIGEgZGlyZWN0b3J5LgotK2lmIHRlc3QgLW4gIiRDUFAi ICYmIHRlc3QgLWQgIiRDUFAiOyB0aGVuCi0rICBDUFA9Ci0rZmkKLStpZiB0ZXN0IC16ICIkQ1BQ IjsgdGhlbgotKyAgaWYgdGVzdCAiJHthY19jdl9wcm9nX0NQUCtzZXR9IiA9IHNldDsgdGhlbgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICAgICAgIyBEb3VibGUgcXVv dGVzIGJlY2F1c2UgQ1BQIG5lZWRzIHRvIGJlIGV4cGFuZGVkCi0rICAgIGZvciBDUFAgaW4gIiRD QyAtRSIgIiRDQyAtRSAtdHJhZGl0aW9uYWwtY3BwIiAiL2xpYi9jcHAiCi0rICAgIGRvCi0rICAg ICAgYWNfcHJlcHJvY19vaz1mYWxzZQotK2ZvciBhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluICcn IHllcwotK2RvCi0rICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNv IGNvbmZpZ3VyaW5nIGdsaWJjCi0rICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jr cy4KLSsgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBk ZWZpbmVkLCBzaW5jZQotKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGlu ZyBjb21waWxlcnMuCi0rICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91 Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAotKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5 bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCi0rICBjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpZmRlZiBfX1NURENfXwotKyMgaW5jbHVk ZSA8bGltaXRzLmg+Ci0rI2Vsc2UKLSsjIGluY2x1ZGUgPGFzc2VydC5oPgotKyNlbmRpZgotKwkJ ICAgICBTeW50YXggZXJyb3IKLStfQUNFT0YKLStpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRl c3QuJGFjX2V4dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2Vz YWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi Ci0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRl c3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYg J14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEK LSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAm JiB7Ci0rCSB0ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFn IiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9OyB0aGVuCi0rICA6Ci0r ZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2Vk ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKyAgIyBCcm9rZW46IGZhaWxzIG9u IHZhbGlkIGlucHV0LgotK2NvbnRpbnVlCi0rZmkKLSsKLStybSAtZiBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX2V4dAotKwotKyAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVj ayB3aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKLSsgICMgY2FuIGJlIGRldGVjdGVkIGFuZCBo b3cuCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAg Ki8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNs dWRlIDxhY19ub25leGlzdGVudC5oPgotK19BQ0VPRgotK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBj b25mdGVzdC4kYWNfZXh0IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NwcCBj b25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3Jl cCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0 LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9u dWxsICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9y X2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH07IHRoZW4KLSsg ICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCi0rY29udGludWUKLStlbHNlCi0r ICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rICAjIFBhc3NlcyBib3RoIHRlc3RzLgotK2Fj X3ByZXByb2Nfb2s9OgotK2JyZWFrCi0rZmkKLSsKLStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX2V4dAotKwotK2RvbmUKLSsjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0Nf SUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KLStybSAtZiBjb25mdGVzdC5lcnIg Y29uZnRlc3QuJGFjX2V4dAotK2lmICRhY19wcmVwcm9jX29rOyB0aGVuCi0rICBicmVhawotK2Zp Ci0rCi0rICAgIGRvbmUKLSsgICAgYWNfY3ZfcHJvZ19DUFA9JENQUAotKwotK2ZpCi0rICBDUFA9 JGFjX2N2X3Byb2dfQ1BQCi0rZWxzZQotKyAgYWNfY3ZfcHJvZ19DUFA9JENQUAotK2ZpCi0reyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENQUCIgPiY1Ci0rJGFzX2VjaG8gIiRD UFAiID4mNjsgfQotK2FjX3ByZXByb2Nfb2s9ZmFsc2UKLStmb3IgYWNfY19wcmVwcm9jX3dhcm5f ZmxhZyBpbiAnJyB5ZXMKLStkbwotKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdp dGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29t cGlsZXIgd29ya3MuCi0rICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19T VERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBm cmVlc3RhbmRpbmcgY29tcGlsZXJzLgotKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUg Y29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKLSsgICMgbm90IGp1c3QgdGhyb3Vn aCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgotKyAgY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9G Ci0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaWZkZWYgX19TVERDX18K LSsjIGluY2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsj ZW5kaWYKLSsJCSAgICAgU3ludGF4IGVycm9yCi0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNf Y3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNf Y3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29u ZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4v ZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2ZsYWckYWNfY193 ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhl bgotKyAgOgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgQnJva2Vu OiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2ZpCi0rCi0rcm0gLWYgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMu ICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCi0rICAjIGNhbiBiZSBkZXRl Y3RlZCBhbmQgaG93LgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29u ZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0 Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KLSsjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KLStfQUNFT0YKLStpZiB7IChhY190cnk9 IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwg IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9 JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAt ZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRh Y19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9 OyB0aGVuCi0rICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgotK2NvbnRpbnVl Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0r c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKyAgIyBQYXNzZXMgYm90aCB0 ZXN0cy4KLSthY19wcmVwcm9jX29rPToKLSticmVhawotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLStkb25lCi0rIyBCZWNhdXNlIG9mIGBicmVhaycsIF9B Q19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCi0rcm0gLWYgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLStpZiAkYWNfcHJlcHJvY19vazsgdGhlbgotKyAg OgotK2Vsc2UKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRh Y19wd2QnOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+ JjI7fQotK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBDIHByZXByb2Nlc3Nv ciBcIiRDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9y ZSBkZXRhaWxzLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IEMgcHJlcHJvY2Vzc29y IFwiJENQUFwiIGZhaWxzIHNhbml0eSBjaGVjawotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3Jl IGRldGFpbHMuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQotK2ZpCi0r Ci0rYWNfZXh0PWMKLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDQyAt YyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ0Mg LW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9n bnUKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEFOU0kg QyBoZWFkZXIgZmlsZXMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBBTlNJIEMgaGVh ZGVyIGZpbGVzLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3RkYytzZXR9 IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBj YXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNF T0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxzdGRs aWIuaD4KLSsjaW5jbHVkZSA8c3RkYXJnLmg+Ci0rI2luY2x1ZGUgPHN0cmluZy5oPgotKyNpbmNs dWRlIDxmbG9hdC5oPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4g MDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3Ry eT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAq XFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsK LStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNo b1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGls ZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNv bmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBj b25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFj X2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0g JiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBhY19jdl9oZWFkZXJfc3Rk Yz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N2X2hlYWRl cl9zdGRjPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsKLStpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9 IHllczsgdGhlbgotKyAgIyBTdW5PUyA0Lnggc3RyaW5nLmggZG9lcyBub3QgZGVjbGFyZSBtZW0q LCBjb250cmFyeSB0byBBTlNJLgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0r LyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rCi0rX0FDRU9GCi0raWYgKGV2YWwgIiRh Y19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotKyAgJEVHUkVQICJtZW1jaHIiID4vZGV2 L251bGwgMj4mMTsgdGhlbgotKyAgOgotK2Vsc2UKLSsgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCi0r ZmkKLStybSAtZiBjb25mdGVzdCoKLSsKLStmaQotKwotK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9z dGRjID0geWVzOyB0aGVuCi0rICAjIElTQyAyLjAuMiBzdGRsaWIuaCBkb2VzIG5vdCBkZWNsYXJl IGZyZWUsIGNvbnRyYXJ5IHRvIEFOU0kuCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsKLStfQUNFT0YKLStpZiAoZXZh bCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8Ci0rICAkRUdSRVAgImZyZWUiID4v ZGV2L251bGwgMj4mMTsgdGhlbgotKyAgOgotK2Vsc2UKLSsgIGFjX2N2X2hlYWRlcl9zdGRjPW5v Ci0rZmkKLStybSAtZiBjb25mdGVzdCoKLSsKLStmaQotKwotK2lmIHRlc3QgJGFjX2N2X2hlYWRl cl9zdGRjID0geWVzOyB0aGVuCi0rICAjIC9iaW4vY2MgaW4gSXJpeC00LjAuNSBnZXRzIG5vbi1B TlNJIGN0eXBlIG1hY3JvcyB1bmxlc3MgdXNpbmcgLWFuc2kuCi0rICBpZiB0ZXN0ICIkY3Jvc3Nf Y29tcGlsaW5nIiA9IHllczsgdGhlbgotKyAgOgotK2Vsc2UKLSsgIGNhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGN0eXBlLmg+Ci0rI2luY2x1ZGUg PHN0ZGxpYi5oPgotKyNpZiAoKCcgJyAmIDB4MEZGKSA9PSAweDAyMCkKLSsjIGRlZmluZSBJU0xP V0VSKGMpICgnYScgPD0gKGMpICYmIChjKSA8PSAneicpCi0rIyBkZWZpbmUgVE9VUFBFUihjKSAo SVNMT1dFUihjKSA/ICdBJyArICgoYykgLSAnYScpIDogKGMpKQotKyNlbHNlCi0rIyBkZWZpbmUg SVNMT1dFUihjKSBcCi0rCQkgICAoKCdhJyA8PSAoYykgJiYgKGMpIDw9ICdpJykgXAotKwkJICAg ICB8fCAoJ2onIDw9IChjKSAmJiAoYykgPD0gJ3InKSBcCi0rCQkgICAgIHx8ICgncycgPD0gKGMp ICYmIChjKSA8PSAneicpKQotKyMgZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAoKGMp IHwgMHg0MCkgOiAoYykpCi0rI2VuZGlmCi0rCi0rI2RlZmluZSBYT1IoZSwgZikgKCgoZSkgJiYg IShmKSkgfHwgKCEoZSkgJiYgKGYpKSkKLStpbnQKLSttYWluICgpCi0rewotKyAgaW50IGk7Ci0r ICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCi0rICAgIGlmIChYT1IgKGlzbG93ZXIgKGkpLCBJ U0xPV0VSIChpKSkKLSsJfHwgdG91cHBlciAoaSkgIT0gVE9VUFBFUiAoaSkpCi0rICAgICAgcmV0 dXJuIDI7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QkYWNfZXhl ZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAq XCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9l Y2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVO TzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2 YWwgIiRhY19saW5rIikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0g JiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNfZXhlZXh0JwotKyAgeyAoY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfdHJ5IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0 YXR1cyk7IH07IH07IHRoZW4KLSsgIDoKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBwcm9n cmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUKLSskYXNfZWNobyAiJGFzX21l OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l eHQgPiY1Ci0rCi0rKCBleGl0ICRhY19zdGF0dXMgKQotK2FjX2N2X2hlYWRlcl9zdGRjPW5vCi0r ZmkKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRl c3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3QuJGFjX2V4dAotK2ZpCi0rCi0rCi0rZmkKLStmaQotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3RkYyIgPiY1Ci0rJGFzX2VjaG8g IiRhY19jdl9oZWFkZXJfc3RkYyIgPiY2OyB9Ci0raWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMg PSB5ZXM7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgU1RE Q19IRUFERVJTIDEKLStfQUNFT0YKLSsKLStmaQotKwotKyMgT24gSVJJWCA1LjMsIHN5cy90eXBl cyBhbmQgaW50dHlwZXMuaCBhcmUgY29uZmxpY3RpbmcuCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rZm9yIGFjX2hlYWRlciBpbiBzeXMvdHlwZXMuaCBzeXMvc3RhdC5oIHN0ZGxpYi5oIHN0 cmluZy5oIG1lbW9yeS5oIHN0cmluZ3MuaCBcCi0rCQkgIGludHR5cGVzLmggc3RkaW50LmggdW5p c3RkLmgKLStkbwotK2FzX2FjX0hlYWRlcj1gJGFzX2VjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVh ZGVyIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg Zm9yICRhY19oZWFkZXIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfaGVhZGVy Li4uICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFzX2FjX0hlYWRlcjsgZXZhbCAidGVzdCBcIlwk eyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25m ZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK LStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAq LwotKyRhY19pbmNsdWRlc19kZWZhdWx0Ci0rCi0rI2luY2x1ZGUgPCRhY19oZWFkZXI+Ci0rX0FD RU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBp bGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRl c3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIg PiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQot KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2Zs YWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBj b25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBldmFsICIkYXNfYWNfSGVhZGVyPXllcyIKLStl bHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWV2YWwgIiRhc19hY19IZWFkZXI9 bm8iCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19I ZWFkZXInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIg PiY2OyB9Ci0rYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0hlYWRlcid9Ci0rCQkgJGFz X2VjaG8gIiRhc192YWwiJ2AKLSsgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4K LSsgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIGAkYXNfZWNobyAiSEFWRV8k YWNfaGVhZGVyIiB8ICRhc190cl9jcHBgIDEKLStfQUNFT0YKLSsKLStmaQotKwotK2RvbmUKLSsK LSsKLSsKLStmb3IgYWNfaGVhZGVyIGluIGRsZmNuLmgKLStkbwotK2FzX2FjX0hlYWRlcj1gJGFz X2VjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFz X2FjX0hlYWRlcjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyRhY19pbmNsdWRlc19kZWZhdWx0Ci0rCi0r I2luY2x1ZGUgPCRhY19oZWFkZXI+Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4 dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChl dmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVz dC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewot KwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBl dmFsICIkYXNfYWNfSGVhZGVyPXllcyIKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 Ci0rCi0rCWV2YWwgIiRhc19hY19IZWFkZXI9bm8iCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotK2FjX3Jl cz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQotKwkJICRhc19lY2hvICIkYXNfdmFs IidgCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVz IiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rYXNfdmFsPWBldmFsICdhc192YWw9 JHsnJGFzX2FjX0hlYWRlcid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsgICBpZiB0ZXN0 ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KLSsgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YK LSsjZGVmaW5lIGAkYXNfZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9jcHBgIDEKLStf QUNFT0YKLSsKLStmaQotKwotK2RvbmUKLSsKLSsKLSsKLSthY19leHQ9Y3BwCi0rYWNfY3BwPSck Q1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxB R1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19l eGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJT ID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLStpZiB0ZXN0 IC16ICIkQ1hYIjsgdGhlbgotKyAgaWYgdGVzdCAtbiAiJENDQyI7IHRoZW4KLSsgICAgQ1hYPSRD Q0MKLSsgIGVsc2UKLSsgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAg Zm9yIGFjX3Byb2cgaW4gZysrIGMrKyBncHAgYUNDIENDIGN4eCBjYysrIGNsLmV4ZSBGQ0MgS0ND IFJDQyB4bENfciB4bEMKLSsgIGRvCi0rICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAi JGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmdzLgotK3NldCBkdW1teSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZzsgYWNfd29yZD0kMgot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3Qg IiR7YWNfY3ZfcHJvZ19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJENYWCI7IHRoZW4KLSsgIGFjX2N2X3By b2dfQ1hYPSIkQ1hYIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0r YXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBB VEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNf ZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25z OyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAk YXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBh Y19jdl9wcm9nX0NYWD0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0r ICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0r ZmkKLStmaQotK0NYWD0kYWNfY3ZfcHJvZ19DWFgKLStpZiB0ZXN0IC1uICIkQ1hYIjsgdGhlbgot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENYWCIgPiY1Ci0rJGFzX2Vj aG8gIiRDWFgiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICAgIHRl c3QgLW4gIiRDWFgiICYmIGJyZWFrCi0rICBkb25lCi0rZmkKLStpZiB0ZXN0IC16ICIkQ1hYIjsg dGhlbgotKyAgYWNfY3RfQ1hYPSRDWFgKLSsgIGZvciBhY19wcm9nIGluIGcrKyBjKysgZ3BwIGFD QyBDQyBjeHggY2MrKyBjbC5leGUgRkNDIEtDQyBSQ0MgeGxDX3IgeGxDCi0rZG8KLSsgICMgRXh0 cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFt IG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNf Y3ZfcHJvZ19hY19jdF9DWFgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0NYWCI7IHRoZW4KLSsgIGFj X2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfY3RfQ1hYIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0 aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgot K2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAt eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl Y3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X0NYWD0iJGFjX3Byb2ciCi0rICAgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVf SUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X0NYWD0kYWNfY3ZfcHJvZ19hY19jdF9DWFgKLStpZiB0 ZXN0IC1uICIkYWNfY3RfQ1hYIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGFjX2N0X0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9DWFgiID4mNjsgfQot K2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSsk YXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICB0ZXN0IC1uICIkYWNfY3RfQ1hYIiAm JiBicmVhawotK2RvbmUKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfQ1hYIiA9IHg7IHRoZW4KLSsg ICAgQ1hYPSJnKysiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9v bF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5H OiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQot KyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhl ZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2Fj Ci0rICAgIENYWD0kYWNfY3RfQ1hYCi0rICBmaQotK2ZpCi0rCi0rICBmaQotK2ZpCi0rIyBQcm92 aWRlIHNvbWUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbXBpbGVyLgotKyRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEMrKyBjb21waWxlciB2ZXJzaW9uIiA+JjUKLStzZXQg WCAkYWNfY29tcGlsZQotK2FjX2NvbXBpbGVyPSQyCi0reyAoYWNfdHJ5PSIkYWNfY29tcGlsZXIg LS12ZXJzaW9uID4mNSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owot K2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxl ciAtLXZlcnNpb24gPiY1IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0KLSt7IChhY190cnk9IiRhY19jb21waWxlciAtdiA+JjUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBp bgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBh Y190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21l OiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUK LSsgIChldmFsICIkYWNfY29tcGlsZXIgLXYgPiY1IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0KLSt7IChhY190cnk9IiRhY19jb21waWxlciAtViA+JjUiCi0rY2Fz ZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj X3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlf ZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNf dHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZXIgLVYgPiY1IikgMj4mNQotKyAg YWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGls ZXIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBH TlUgQysrIGNvbXBpbGVyLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9jeHhfY29tcGls ZXJfZ251K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmgu ICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+ PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0r aW50Ci0rbWFpbiAoKQotK3sKLSsjaWZuZGVmIF9fR05VQ19fCi0rICAgICAgIGNob2tlIG1lCi0r I2VuZGlmCi0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRl c3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNf dHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0r ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i KSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0 dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBy bSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpl eHQ7IHRoZW4KLSsgIGFjX2NvbXBpbGVyX2dudT15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1Ci0rCi0rCWFjX2NvbXBpbGVyX2dudT1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rYWNfY3Zf Y3h4X2NvbXBpbGVyX2dudT0kYWNfY29tcGlsZXJfZ251Ci0rCi0rZmkKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfY3h4X2NvbXBpbGVyX2dudSIgPiY1Ci0rJGFz X2VjaG8gIiRhY19jdl9jeHhfY29tcGlsZXJfZ251IiA+JjY7IH0KLStpZiB0ZXN0ICRhY19jb21w aWxlcl9nbnUgPSB5ZXM7IHRoZW4KLSsgIEdYWD15ZXMKLStlbHNlCi0rICBHWFg9Ci0rZmkKLSth Y190ZXN0X0NYWEZMQUdTPSR7Q1hYRkxBR1Mrc2V0fQotK2FjX3NhdmVfQ1hYRkxBR1M9JENYWEZM QUdTCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgJENYWCBh Y2NlcHRzIC1nIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICRDWFggYWNjZXB0 cyAtZy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19jeHhfZytzZXR9IiA9IHNl dDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19zYXZl X2N4eF93ZXJyb3JfZmxhZz0kYWNfY3h4X3dlcnJvcl9mbGFnCi0rICAgYWNfY3h4X3dlcnJvcl9m bGFnPXllcwotKyAgIGFjX2N2X3Byb2dfY3h4X2c9bm8KLSsgICBDWFhGTEFHUz0iLWciCi0rICAg Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FD RU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWlu ICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0 ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFj X3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owot KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAg cm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2Jq ZXh0OyB0aGVuCi0rICBhY19jdl9wcm9nX2N4eF9nPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKLSsKLSsJQ1hYRkxBR1M9IiIKLSsgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMu aCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0r LyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0r ICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lm IHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIk YWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYg J14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEK LSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVz dCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIK LSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIDoKLStl bHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N4eF93ZXJyb3JfZmxhZz0k YWNfc2F2ZV9jeHhfd2Vycm9yX2ZsYWcKLSsJIENYWEZMQUdTPSItZyIKLSsJIGNhdCA+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBj b25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsK LSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2Jq ZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0r ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJ TkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAg KGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAg Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0 ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7 Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgot KyAgYWNfY3ZfcHJvZ19jeHhfZz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 Ci0rCi0rCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2ZpCi0rCi0rcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICAgYWNf Y3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4eF93ZXJyb3JfZmxhZwotK2ZpCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3Byb2dfY3h4X2ciID4mNQotKyRhc19l Y2hvICIkYWNfY3ZfcHJvZ19jeHhfZyIgPiY2OyB9Ci0raWYgdGVzdCAiJGFjX3Rlc3RfQ1hYRkxB R1MiID0gc2V0OyB0aGVuCi0rICBDWFhGTEFHUz0kYWNfc2F2ZV9DWFhGTEFHUwotK2VsaWYgdGVz dCAkYWNfY3ZfcHJvZ19jeHhfZyA9IHllczsgdGhlbgotKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7 IHRoZW4KLSsgICAgQ1hYRkxBR1M9Ii1nIC1PMiIKLSsgIGVsc2UKLSsgICAgQ1hYRkxBR1M9Ii1n IgotKyAgZmkKLStlbHNlCi0rICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKyAgICBDWFhG TEFHUz0iLU8yIgotKyAgZWxzZQotKyAgICBDWFhGTEFHUz0KLSsgIGZpCi0rZmkKLSthY19leHQ9 YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1Mg JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVz dCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAk TElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotKwotK2Rl cGNjPSIkQ1hYIiAgYW1fY29tcGlsZXJfbGlzdD0KLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2MiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjLi4uICIgPiY2OyB9Ci0raWYg dGVzdCAiJHthbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUrc2V0fSIgPSBzZXQ7 IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAt eiAiJEFNREVQX1RSVUUiICYmIHRlc3QgLWYgIiRhbV9kZXBjb21wIjsgdGhlbgotKyAgIyBXZSBt YWtlIGEgc3ViZGlyIGFuZCBkbyB0aGUgdGVzdHMgdGhlcmUuICBPdGhlcndpc2Ugd2UgY2FuIGVu ZCB1cAotKyAgIyBtYWtpbmcgYm9ndXMgZmlsZXMgdGhhdCB3ZSBkb24ndCBrbm93IGFib3V0IGFu ZCBuZXZlciByZW1vdmUuICBGb3IKLSsgICMgaW5zdGFuY2UgaXQgd2FzIHJlcG9ydGVkIHRoYXQg b24gSFAtVVggdGhlIGdjYyB0ZXN0IHdpbGwgZW5kIHVwCi0rICAjIG1ha2luZyBhIGR1bW15IGZp bGUgbmFtZWQgYEQnIC0tIGJlY2F1c2UgYC1NRCcgbWVhbnMgYHB1dCB0aGUgb3V0cHV0Ci0rICAj IGluIEQnLgotKyAgbWtkaXIgY29uZnRlc3QuZGlyCi0rICAjIENvcHkgZGVwY29tcCB0byBzdWJk aXIgYmVjYXVzZSBvdGhlcndpc2Ugd2Ugd29uJ3QgZmluZCBpdCBpZiB3ZSdyZQotKyAgIyB1c2lu ZyBhIHJlbGF0aXZlIGRpcmVjdG9yeS4KLSsgIGNwICIkYW1fZGVwY29tcCIgY29uZnRlc3QuZGly Ci0rICBjZCBjb25mdGVzdC5kaXIKLSsgICMgV2Ugd2lsbCBidWlsZCBvYmplY3RzIGFuZCBkZXBl bmRlbmNpZXMgaW4gYSBzdWJkaXJlY3RvcnkgYmVjYXVzZQotKyAgIyBpdCBoZWxwcyB0byBkZXRl Y3QgaW5hcHBsaWNhYmxlIGRlcGVuZGVuY3kgbW9kZXMuICBGb3IgaW5zdGFuY2UKLSsgICMgYm90 aCBUcnU2NCdzIGNjIGFuZCBJQ0Mgc3VwcG9ydCAtTUQgdG8gb3V0cHV0IGRlcGVuZGVuY2llcyBh cyBhCi0rICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBpbGF0aW9uLCBidXQgSUNDIHdpbGwgcHV0IHRo ZSBkZXBlbmRlbmNpZXMgaW4KLSsgICMgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHdoaWxlIFRydTY0 IHdpbGwgcHV0IHRoZW0gaW4gdGhlIG9iamVjdAotKyAgIyBkaXJlY3RvcnkuCi0rICBta2RpciBz dWIKLSsKLSsgIGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCi0rICBp ZiB0ZXN0ICIkYW1fY29tcGlsZXJfbGlzdCIgPSAiIjsgdGhlbgotKyAgICAgYW1fY29tcGlsZXJf bGlzdD1gc2VkIC1uICdzL14jKlwoW2EtekEtWjAtOV0qXCkpJC9cMS9wJyA8IC4vZGVwY29tcGAK LSsgIGZpCi0rICBhbV9fdW5pdmVyc2FsPWZhbHNlCi0rICBjYXNlICIgJGRlcGNjICIgaW4gIygK LSsgICAgICpcIC1hcmNoXCAqXCAtYXJjaFwgKikgYW1fX3VuaXZlcnNhbD10cnVlIDs7Ci0rICAg ICBlc2FjCi0rCi0rICBmb3IgZGVwbW9kZSBpbiAkYW1fY29tcGlsZXJfbGlzdDsgZG8KLSsgICAg IyBTZXR1cCBhIHNvdXJjZSB3aXRoIG1hbnkgZGVwZW5kZW5jaWVzLCBiZWNhdXNlIHNvbWUgY29t cGlsZXJzCi0rICAgICMgbGlrZSB0byB3cmFwIGxhcmdlIGRlcGVuZGVuY3kgbGlzdHMgb24gY29s dW1uIDgwICh3aXRoIFwpLCBhbmQKLSsgICAgIyB3ZSBzaG91bGQgbm90IGNob29zZSBhIGRlcGNv bXAgbW9kZSB3aGljaCBpcyBjb25mdXNlZCBieSB0aGlzLgotKyAgICAjCi0rICAgICMgV2UgbmVl ZCB0byByZWNyZWF0ZSB0aGVzZSBmaWxlcyBmb3IgZWFjaCB0ZXN0LCBhcyB0aGUgY29tcGlsZXIg bWF5Ci0rICAgICMgb3ZlcndyaXRlIHNvbWUgb2YgdGhlbSB3aGVuIHRlc3Rpbmcgd2l0aCBvYnNj dXJlIGNvbW1hbmQgbGluZXMuCi0rICAgICMgVGhpcyBoYXBwZW5zIGF0IGxlYXN0IHdpdGggdGhl IEFJWCBDIGNvbXBpbGVyLgotKyAgICA6ID4gc3ViL2NvbmZ0ZXN0LmMKLSsgICAgZm9yIGkgaW4g MSAyIDMgNCA1IDY7IGRvCi0rICAgICAgZWNobyAnI2luY2x1ZGUgImNvbmZ0c3QnJGknLmgiJyA+ PiBzdWIvY29uZnRlc3QuYwotKyAgICAgICMgVXNpbmcgYDogPiBzdWIvY29uZnRzdCRpLmgnIGNy ZWF0ZXMgb25seSBzdWIvY29uZnRzdDEuaCB3aXRoCi0rICAgICAgIyBTb2xhcmlzIDgncyB7L3Vz cix9L2Jpbi9zaC4KLSsgICAgICB0b3VjaCBzdWIvY29uZnRzdCRpLmgKLSsgICAgZG9uZQotKyAg ICBlY2hvICIke2FtX19pbmNsdWRlfSAke2FtX19xdW90ZX1zdWIvY29uZnRlc3QuUG8ke2FtX19x dW90ZX0iID4gY29uZm1mCi0rCi0rICAgICMgV2UgY2hlY2sgd2l0aCBgLWMnIGFuZCBgLW8nIGZv ciB0aGUgc2FrZSBvZiB0aGUgImRhc2htc3Rkb3V0IgotKyAgICAjIG1vZGUuICBJdCB0dXJucyBv dXQgdGhhdCB0aGUgU3VuUHJvIEMrKyBjb21waWxlciBkb2VzIG5vdCBwcm9wZXJseQotKyAgICAj IGhhbmRsZSBgLU0gLW8nLCBhbmQgd2UgbmVlZCB0byBkZXRlY3QgdGhpcy4gIEFsc28sIHNvbWUg SW50ZWwKLSsgICAgIyB2ZXJzaW9ucyBoYWQgdHJvdWJsZSB3aXRoIG91dHB1dCBpbiBzdWJkaXJz Ci0rICAgIGFtX19vYmo9c3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99Ci0rICAgIGFtX19taW51c19v Ymo9Ii1vICRhbV9fb2JqIgotKyAgICBjYXNlICRkZXBtb2RlIGluCi0rICAgIGdjYykKLSsgICAg ICAjIFRoaXMgZGVwbW9kZSBjYXVzZXMgYSBjb21waWxlciByYWNlIGluIHVuaXZlcnNhbCBtb2Rl LgotKyAgICAgIHRlc3QgIiRhbV9fdW5pdmVyc2FsIiA9IGZhbHNlIHx8IGNvbnRpbnVlCi0rICAg ICAgOzsKLSsgICAgbm9zaWRlZWZmZWN0KQotKyAgICAgICMgYWZ0ZXIgdGhpcyB0YWcsIG1lY2hh bmlzbXMgYXJlIG5vdCBieSBzaWRlLWVmZmVjdCwgc28gdGhleSdsbAotKyAgICAgICMgb25seSBi ZSB1c2VkIHdoZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQKLSsgICAgICBpZiB0ZXN0ICJ4JGVuYWJs ZV9kZXBlbmRlbmN5X3RyYWNraW5nIiA9IHh5ZXM7IHRoZW4KLSsJY29udGludWUKLSsgICAgICBl bHNlCi0rCWJyZWFrCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBtc3Zpc3VhbGNwcCB8IG1z dmNtc3lzKQotKyAgICAgICMgVGhpcyBjb21waWxlciB3b24ndCBncm9rIGAtYyAtbycsIGJ1dCBh bHNvLCB0aGUgbWludXNvIHRlc3QgaGFzCi0rICAgICAgIyBub3QgcnVuIHlldC4gIFRoZXNlIGRl cG1vZGVzIGFyZSBsYXRlIGVub3VnaCBpbiB0aGUgZ2FtZSwgYW5kCi0rICAgICAgIyBzbyB3ZWFr IHRoYXQgdGhlaXIgZnVuY3Rpb25pbmcgc2hvdWxkIG5vdCBiZSBpbXBhY3RlZC4KLSsgICAgICBh bV9fb2JqPWNvbmZ0ZXN0LiR7T0JKRVhULW99Ci0rICAgICAgYW1fX21pbnVzX29iaj0KLSsgICAg ICA7OwotKyAgICBub25lKSBicmVhayA7OwotKyAgICBlc2FjCi0rICAgIGlmIGRlcG1vZGU9JGRl cG1vZGUgXAotKyAgICAgICBzb3VyY2U9c3ViL2NvbmZ0ZXN0LmMgb2JqZWN0PSRhbV9fb2JqIFwK LSsgICAgICAgZGVwZmlsZT1zdWIvY29uZnRlc3QuUG8gdG1wZGVwZmlsZT1zdWIvY29uZnRlc3Qu VFBvIFwKLSsgICAgICAgJFNIRUxMIC4vZGVwY29tcCAkZGVwY2MgLWMgJGFtX19taW51c19vYmog c3ViL2NvbmZ0ZXN0LmMgXAotKyAgICAgICAgID4vZGV2L251bGwgMj5jb25mdGVzdC5lcnIgJiYK LSsgICAgICAgZ3JlcCBzdWIvY29uZnRzdDEuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwg Mj4mMSAmJgotKyAgICAgICBncmVwIHN1Yi9jb25mdHN0Ni5oIHN1Yi9jb25mdGVzdC5QbyA+IC9k ZXYvbnVsbCAyPiYxICYmCi0rICAgICAgIGdyZXAgJGFtX19vYmogc3ViL2NvbmZ0ZXN0LlBvID4g L2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgJHtNQUtFLW1ha2V9IC1zIC1mIGNvbmZtZiA+IC9k ZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgICAgIyBpY2MgZG9lc24ndCBjaG9rZSBvbiB1bmtub3du IG9wdGlvbnMsIGl0IHdpbGwganVzdCBpc3N1ZSB3YXJuaW5ncwotKyAgICAgICMgb3IgcmVtYXJr cyAoZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28gd2UgZ3JlcCBzdGRlcnIgZm9yIGFueSBtZXNzYWdl Ci0rICAgICAgIyB0aGF0IHNheXMgYW4gb3B0aW9uIHdhcyBpZ25vcmVkIG9yIG5vdCBzdXBwb3J0 ZWQuCi0rICAgICAgIyBXaGVuIGdpdmVuIC1NUCwgaWNjIDcuMCBhbmQgNy4xIGNvbXBsYWluIHRo dXNseToKLSsgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgd2FybmluZzogaWdub3Jpbmcgb3B0 aW9uICctTSc7IG5vIGFyZ3VtZW50IHJlcXVpcmVkCi0rICAgICAgIyBUaGUgZGlhZ25vc2lzIGNo YW5nZWQgaW4gaWNjIDguMDoKLSsgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgcmVtYXJrOiBv cHRpb24gJy1NUCcgbm90IHN1cHBvcnRlZAotKyAgICAgIGlmIChncmVwICdpZ25vcmluZyBvcHRp b24nIGNvbmZ0ZXN0LmVyciB8fAotKyAgICAgICAgICBncmVwICdub3Qgc3VwcG9ydGVkJyBjb25m dGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNlCi0rICAgICAgICBhbV9jdl9D WFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUKLSsgICAgICAgIGJyZWFrCi0r ICAgICAgZmkKLSsgICAgZmkKLSsgIGRvbmUKLSsKLSsgIGNkIC4uCi0rICBybSAtcmYgY29uZnRl c3QuZGlyCi0rZWxzZQotKyAgYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5v bmUKLStmaQotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFt X2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY1Ci0rJGFzX2VjaG8gIiRhbV9j dl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNjsgfQotK0NYWERFUE1PREU9ZGVw bW9kZT0kYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlCi0rCi0rIGlmCi0rICB0 ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8gXAotKyAgJiYgdGVzdCAi JGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPSBnY2MzOyB0aGVuCi0rICBh bV9fZmFzdGRlcENYWF9UUlVFPQotKyAgYW1fX2Zhc3RkZXBDWFhfRkFMU0U9JyMnCi0rZWxzZQot KyAgYW1fX2Zhc3RkZXBDWFhfVFJVRT0nIycKLSsgIGFtX19mYXN0ZGVwQ1hYX0ZBTFNFPQotK2Zp Ci0rCi0rCi0raWYgdGVzdCAtbiAiJENYWCIgJiYgKCB0ZXN0ICJYJENYWCIgIT0gIlhubyIgJiYK LSsgICAgKCAodGVzdCAiWCRDWFgiID0gIlhnKysiICYmIGBnKysgLXYgPi9kZXYvbnVsbCAyPiYx YCApIHx8Ci0rICAgICh0ZXN0ICJYJENYWCIgIT0gIlhnKysiKSkpIDsgdGhlbgotKyAgYWNfZXh0 PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAk Q1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFgg LW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRl c3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGls ZXJfZ251Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byBydW4g dGhlIEMrKyBwcmVwcm9jZXNzb3IiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBy dW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IuLi4gIiA+JjY7IH0KLStpZiB0ZXN0IC16ICIkQ1hYQ1BQ IjsgdGhlbgotKyAgaWYgdGVzdCAiJHthY19jdl9wcm9nX0NYWENQUCtzZXR9IiA9IHNldDsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICAgICAgIyBEb3VibGUg cXVvdGVzIGJlY2F1c2UgQ1hYQ1BQIG5lZWRzIHRvIGJlIGV4cGFuZGVkCi0rICAgIGZvciBDWFhD UFAgaW4gIiRDWFggLUUiICIvbGliL2NwcCIKLSsgICAgZG8KLSsgICAgICBhY19wcmVwcm9jX29r PWZhbHNlCi0rZm9yIGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKLStkbwotKyAg IyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBn bGliYwotKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCi0rICAjIFByZWZl ciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UK LSsgICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgot KyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxl cidzIHBhcnNlciwKLSsgICMgbm90IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlz IGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25m dGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KLSsjaWZkZWYgX19TVERDX18KLSsjIGluY2x1ZGUgPGxpbWl0cy5oPgot KyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYKLSsJCSAgICAgU3ludGF4IGVy cm9yCi0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0r Y2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c JGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190 cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIk YWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAy PmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRl c3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewotKwkgdGVzdCAt eiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH07IHRoZW4KLSsgIDoKLStlbHNlCi0rICAk YXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8n IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5w dXQuCi0rY29udGludWUKLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf ZXh0Ci0rCi0rICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIg bm9uZXhpc3RlbnQgaGVhZGVycwotKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KLSsgIGNh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VP RgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGFjX25v bmV4aXN0ZW50Lmg+Ci0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRh Y19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0r ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRh Y19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBj YXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewot KwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWci IHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH07IHRoZW4KLSsgICMgQnJv a2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCi0rY29udGludWUKLStlbHNlCi0rICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rICAjIFBhc3NlcyBib3RoIHRlc3RzLgotK2FjX3ByZXBy b2Nfb2s9OgotK2JyZWFrCi0rZmkKLSsKLStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X2V4dAotKwotK2RvbmUKLSsjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNF J3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KLStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX2V4dAotK2lmICRhY19wcmVwcm9jX29rOyB0aGVuCi0rICBicmVhawotK2ZpCi0rCi0r ICAgIGRvbmUKLSsgICAgYWNfY3ZfcHJvZ19DWFhDUFA9JENYWENQUAotKwotK2ZpCi0rICBDWFhD UFA9JGFjX2N2X3Byb2dfQ1hYQ1BQCi0rZWxzZQotKyAgYWNfY3ZfcHJvZ19DWFhDUFA9JENYWENQ UAotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENYWENQUCIgPiY1 Ci0rJGFzX2VjaG8gIiRDWFhDUFAiID4mNjsgfQotK2FjX3ByZXByb2Nfb2s9ZmFsc2UKLStmb3Ig YWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcwotK2RvCi0rICAjIFVzZSBhIGhlYWRl ciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCi0rICAjIHdp dGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KLSsgICMgUHJlZmVyIDxsaW1pdHMuaD4g dG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQotKyAgIyA8bGltaXRz Lmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCi0rICAjIE9uIHRoZSBO ZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAot KyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRj aCB0aGlzIGNhc2UuCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25m ZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK LStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAq LwotKyNpZmRlZiBfX1NURENfXwotKyMgaW5jbHVkZSA8bGltaXRzLmg+Ci0rI2Vsc2UKLSsjIGlu Y2x1ZGUgPGFzc2VydC5oPgotKyNlbmRpZgotKwkJICAgICBTeW50YXggZXJyb3IKLStfQUNFT0YK LStpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRhY190 cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIx Ci0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRl c3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3By ZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25m dGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAgOgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKLSsKLSsgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KLStjb250aW51 ZQotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICMg T0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBo ZWFkZXJzCi0rICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgotKyAgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4K LStfQUNFT0YKLStpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKLStjYXNl ICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29u ZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVy MSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5l cnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIk YWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAgIyBCcm9rZW46IHN1Y2Nlc3Mg b24gaW52YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKLSsKLSsgICMgUGFzc2VzIGJvdGggdGVzdHMuCi0rYWNfcHJlcHJvY19vaz06Ci0rYnJl YWsKLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rZG9u ZQotKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBj b2RlIHdhcyBza2lwcGVkLgotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0r aWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KLSsgIDoKLStlbHNlCi0rICB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLStfbHRfY2F1Z2h0X0NYWF9lcnJvcj15 ZXM7IH0KLStmaQotKwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19j b21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0r YWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2 X2NfY29tcGlsZXJfZ251Ci0rCi0rZWxzZQotKyAgX2x0X2NhdWdodF9DWFhfZXJyb3I9eWVzCi0r ZmkKLSsKLSsKLSsKLSsKLSsKLSsjIFNldCBvcHRpb25zCi0rCi0rCi0rCi0rICAgICAgICBlbmFi bGVfZGxvcGVuPW5vCi0rCi0rCi0rICBlbmFibGVfd2luMzJfZGxsPW5vCi0rCi0rCi0rCi0rCi0r Ci0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1waWMgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0 aF9waWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhfcGljOyBwaWNfbW9kZT0i JHdpdGh2YWwiCi0rZWxzZQotKyAgcGljX21vZGU9ZGVmYXVsdAotK2ZpCi0rCi0rCi0rdGVzdCAt eiAiJHBpY19tb2RlIiAmJiBwaWNfbW9kZT1kZWZhdWx0Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r ICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtZmFzdC1pbnN0YWxsIHdhcyBnaXZlbi4KLStpZiB0 ZXN0ICIke2VuYWJsZV9mYXN0X2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZh bD0kZW5hYmxlX2Zhc3RfaW5zdGFsbDsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KLSsgICAgY2FzZSAk ZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxlX2Zhc3RfaW5zdGFsbD15ZXMgOzsKLSsgICAg bm8pIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8gOzsKLSsgICAgKikKLSsgICAgICBlbmFibGVfZmFz dF9pbnN0YWxsPW5vCi0rICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1 c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgotKyAgICAgIGx0X3NhdmVfaWZzPSIk SUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgotKyAgICAgIGZvciBwa2cgaW4gJGVu YWJsZXZhbDsgZG8KLSsJSUZTPSIkbHRfc2F2ZV9pZnMiCi0rCWlmIHRlc3QgIlgkcGtnIiA9ICJY JHAiOyB0aGVuCi0rCSAgZW5hYmxlX2Zhc3RfaW5zdGFsbD15ZXMKLSsJZmkKLSsgICAgICBkb25l Ci0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICAgOzsKLSsgICAgZXNhYwotK2Vsc2UK LSsgIGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsjIFRoaXMgY2FuIGJlIHVzZWQgdG8gcmVidWlsZCBsaWJ0b29sIHdoZW4gbmVl ZGVkCi0rTElCVE9PTF9ERVBTPSIkbHRtYWluIgotKwotKyMgQWx3YXlzIHVzZSBvdXIgb3duIGxp YnRvb2wuCi0rTElCVE9PTD0nJChTSEVMTCkgJCh0b3BfYnVpbGRkaXIpL2xpYnRvb2wnCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rdGVzdCAteiAiJExOX1MiICYmIExOX1M9ImxuIC1zIgotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJ T04rc2V0fSIgOyB0aGVuCi0rICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLStmaQotKwotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igb2JqZGlyIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBmb3Igb2JqZGlyLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9v YmpkaXIrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgcm0gLWYgLmxpYnMgMj4vZGV2L251bGwKLStta2RpciAubGlicyAyPi9kZXYvbnVs bAotK2lmIHRlc3QgLWQgLmxpYnM7IHRoZW4KLSsgIGx0X2N2X29iamRpcj0ubGlicwotK2Vsc2UK LSsgICMgTVMtRE9TIGRvZXMgbm90IGFsbG93IGZpbGVuYW1lcyB0aGF0IGJlZ2luIHdpdGggYSBk b3QuCi0rICBsdF9jdl9vYmpkaXI9X2xpYnMKLStmaQotK3JtZGlyIC5saWJzIDI+L2Rldi9udWxs Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3Zfb2JqZGly IiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X29iamRpciIgPiY2OyB9Ci0rb2JqZGlyPSRsdF9jdl9v YmpkaXIKLSsKLSsKLSsKLSsKLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmlu ZSBMVF9PQkpESVIgIiRsdF9jdl9vYmpkaXIvIgotK19BQ0VPRgotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXgz KikKLSsgICMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3Qy IHByb2dyYW0uICBGb3Igc29tZQotKyAgIyByZWFzb24sIGlmIHdlIHNldCB0aGUgQ09MTEVDVF9O QU1FUyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHByb2JsZW1zCi0rICAjIHZhbmlzaCBpbiBh IHB1ZmYgb2Ygc21va2UuCi0rICBpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhz ZXQ7IHRoZW4KLSsgICAgQ09MTEVDVF9OQU1FUz0KLSsgICAgZXhwb3J0IENPTExFQ1RfTkFNRVMK LSsgIGZpCi0rICA7OwotK2VzYWMKLSsKLSsjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1 cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCi0rIyBtZXRhY2hhcmFjdGVy cyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KLStz ZWRfcXVvdGVfc3Vic3Q9J3MvXChbImAkXFxdXCkvXFxcMS9nJwotKwotKyMgU2FtZSBhcyBhYm92 ZSwgYnV0IGRvIG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVuY2VzLgotK2RvdWJsZV9xdW90ZV9z dWJzdD0ncy9cKFsiYFxcXVwpL1xcXDEvZycKLSsKLSsjIFNlZCBzdWJzdGl0dXRpb24gdG8gZGVs YXkgZXhwYW5zaW9uIG9mIGFuIGVzY2FwZWQgc2hlbGwgdmFyaWFibGUgaW4gYQotKyMgZG91Ymxl X3F1b3RlX3N1YnN0J2VkIHN0cmluZy4KLStkZWxheV92YXJpYWJsZV9zdWJzdD0ncy9cXFxcXFxc XFxcXCQvXFxcXFxcJC9nJwotKwotKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNp b24gb2YgYW4gZXNjYXBlZCBzaW5nbGUgcXVvdGUuCi0rZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 PSdzLydcJycvJ1wnXFxcXFxcXCdcJycvZycKLSsKLSsjIFNlZCBzdWJzdGl0dXRpb24gdG8gYXZv aWQgYWNjaWRlbnRhbCBnbG9iYmluZyBpbiBldmFsZWQgZXhwcmVzc2lvbnMKLStub19nbG9iX3N1 YnN0PSdzL1wqL1xcXCovZycKLSsKLSsjIEdsb2JhbCB2YXJpYWJsZXM6Ci0rb2ZpbGU9bGlidG9v bAotK2Nhbl9idWlsZF9zaGFyZWQ9eWVzCi0rCi0rIyBBbGwga25vd24gbGlua2VycyByZXF1aXJl IGEgYC5hJyBhcmNoaXZlIGZvciBzdGF0aWMgbGlua2luZyAoZXhjZXB0IE1TVkMsCi0rIyB3aGlj aCBuZWVkcyAnLmxpYicpLgotK2xpYmV4dD1hCi0rCi0rd2l0aF9nbnVfbGQ9IiRsdF9jdl9wcm9n X2dudV9sZCIKLSsKLStvbGRfQ0M9IiRDQyIKLStvbGRfQ0ZMQUdTPSIkQ0ZMQUdTIgotKwotKyMg U2V0IHNhbmUgZGVmYXVsdHMgZm9yIHZhcmlvdXMgdmFyaWFibGVzCi0rdGVzdCAteiAiJENDIiAm JiBDQz1jYwotK3Rlc3QgLXogIiRMVENDIiAmJiBMVENDPSRDQwotK3Rlc3QgLXogIiRMVENGTEFH UyIgJiYgTFRDRkxBR1M9JENGTEFHUwotK3Rlc3QgLXogIiRMRCIgJiYgTEQ9bGQKLSt0ZXN0IC16 ICIkYWNfb2JqZXh0IiAmJiBhY19vYmpleHQ9bwotKwotK2ZvciBjY190ZW1wIGluICRjb21waWxl ciIiOyBkbwotKyAgY2FzZSAkY2NfdGVtcCBpbgotKyAgICBjb21waWxlIHwgKltcXC9dY29tcGls ZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7Ci0rICAgIGRpc3RjYyB8ICpbXFwvXWRpc3Rj YyB8IHB1cmlmeSB8ICpbXFwvXXB1cmlmeSApIDs7Ci0rICAgIFwtKikgOzsKLSsgICAgKikgYnJl YWs7OwotKyAgZXNhYwotK2RvbmUKLStjY19iYXNlbmFtZT1gJEVDSE8gIlgkY2NfdGVtcCIgfCAk WHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2FsaWFzLSUlImAKLSsKLSsKLSsjIE9ubHkg cGVyZm9ybSB0aGUgY2hlY2sgZm9yIGZpbGUsIGlmIHRoZSBjaGVjayBtZXRob2QgcmVxdWlyZXMg aXQKLSt0ZXN0IC16ICIkTUFHSUNfQ01EIiAmJiBNQUdJQ19DTUQ9ZmlsZQotK2Nhc2UgJGRlcGxp YnNfY2hlY2tfbWV0aG9kIGluCi0rZmlsZV9tYWdpYyopCi0rICBpZiB0ZXN0ICIkZmlsZV9tYWdp Y19jbWQiID0gJyRNQUdJQ19DTUQnOyB0aGVuCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgJHthY190b29sX3ByZWZpeH1maWxlIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJHthY190b29sX3ByZWZpeH1maWxlLi4uICIgPiY2OyB9Ci0raWYgdGVz dCAiJHtsdF9jdl9wYXRoX01BR0lDX0NNRCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXNlICRNQUdJQ19DTUQgaW4KLStbXFwvKl0g fCAgPzpbXFwvXSopCi0rICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rICA7OwotKyopCi0rICBs dF9zYXZlX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIKLSsgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZT PSRQQVRIX1NFUEFSQVRPUgotKyAgYWNfZHVtbXk9Ii91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBB VEgiCi0rICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9p ZnMiCi0rICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYg JGFjX2Rpci8ke2FjX3Rvb2xfcHJlZml4fWZpbGU7IHRoZW4KLSsgICAgICBsdF9jdl9wYXRoX01B R0lDX0NNRD0iJGFjX2Rpci8ke2FjX3Rvb2xfcHJlZml4fWZpbGUiCi0rICAgICAgaWYgdGVzdCAt biAiJGZpbGVfbWFnaWNfdGVzdF9maWxlIjsgdGhlbgotKwljYXNlICRkZXBsaWJzX2NoZWNrX21l dGhvZCBpbgotKwkiZmlsZV9tYWdpYyAiKikKLSsJICBmaWxlX21hZ2ljX3JlZ2V4PWBleHByICIk ZGVwbGlic19jaGVja19tZXRob2QiIDogImZpbGVfbWFnaWMgXCguKlwpImAKLSsJICBNQUdJQ19D TUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIKLSsJICBpZiBldmFsICRmaWxlX21hZ2ljX2NtZCBc JGZpbGVfbWFnaWNfdGVzdF9maWxlIDI+IC9kZXYvbnVsbCB8Ci0rCSAgICAkRUdSRVAgIiRmaWxl X21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgotKwkgICAgOgotKwkgIGVsc2UKLSsJICAg IGNhdCA8PF9MVF9FT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiB0aGUgY29tbWFuZCBsaWJ0b29s IHVzZXMgdG8gZGV0ZWN0IHNoYXJlZCBsaWJyYXJpZXMsCi0rKioqICRmaWxlX21hZ2ljX2NtZCwg cHJvZHVjZXMgb3V0cHV0IHRoYXQgbGlidG9vbCBjYW5ub3QgcmVjb2duaXplLgotKyoqKiBUaGUg cmVzdWx0IGlzIHRoYXQgbGlidG9vbCBtYXkgZmFpbCB0byByZWNvZ25pemUgc2hhcmVkIGxpYnJh cmllcwotKyoqKiBhcyBzdWNoLiAgVGhpcyB3aWxsIGFmZmVjdCB0aGUgY3JlYXRpb24gb2YgbGli dG9vbCBsaWJyYXJpZXMgdGhhdAotKyoqKiBkZXBlbmQgb24gc2hhcmVkIGxpYnJhcmllcywgYnV0 IHByb2dyYW1zIGxpbmtlZCB3aXRoIHN1Y2ggbGlidG9vbAotKyoqKiBsaWJyYXJpZXMgd2lsbCB3 b3JrIHJlZ2FyZGxlc3Mgb2YgdGhpcyBwcm9ibGVtLiAgTmV2ZXJ0aGVsZXNzLCB5b3UKLSsqKiog bWF5IHdhbnQgdG8gcmVwb3J0IHRoZSBwcm9ibGVtIHRvIHlvdXIgc3lzdGVtIG1hbmFnZXIgYW5k L29yIHRvCi0rKioqIGJ1Zy1saWJ0b29sQGdudS5vcmcKLSsKLStfTFRfRU9GCi0rCSAgZmkgOzsK LSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAgYnJlYWsKLSsgICAgZmkKLSsgIGRvbmUKLSsgIElG Uz0iJGx0X3NhdmVfaWZzIgotKyAgTUFHSUNfQ01EPSIkbHRfc2F2ZV9NQUdJQ19DTUQiCi0rICA7 OwotK2VzYWMKLStmaQotKwotK01BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgotK2lm IHRlc3QgLW4gIiRNQUdJQ19DTUQiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkTUFHSUNfQ01EIiA+JjUKLSskYXNfZWNobyAiJE1BR0lDX0NNRCIgPiY2OyB9 Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQot KyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsKLSsKLSsKLStpZiB0ZXN0IC16ICIk bHRfY3ZfcGF0aF9NQUdJQ19DTUQiOyB0aGVuCi0rICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVm aXgiOyB0aGVuCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig ZmlsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGZpbGUuLi4gIiA+JjY7IH0KLStp ZiB0ZXN0ICIke2x0X2N2X3BhdGhfTUFHSUNfQ01EK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhc2UgJE1BR0lDX0NNRCBpbgotK1tc XC8qXSB8ICA/OltcXC9dKikKLSsgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIiAj IExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KLSsgIDs7Ci0rKikK LSsgIGx0X3NhdmVfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIgotKyAgbHRfc2F2ZV9pZnM9IiRJRlMi OyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rICBhY19kdW1teT0iL3Vzci9iaW4kUEFUSF9TRVBBUkFU T1IkUEFUSCIKLSsgIGZvciBhY19kaXIgaW4gJGFjX2R1bW15OyBkbwotKyAgICBJRlM9IiRsdF9z YXZlX2lmcyIKLSsgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSsgICAgaWYgdGVz dCAtZiAkYWNfZGlyL2ZpbGU7IHRoZW4KLSsgICAgICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJGFj X2Rpci9maWxlIgotKyAgICAgIGlmIHRlc3QgLW4gIiRmaWxlX21hZ2ljX3Rlc3RfZmlsZSI7IHRo ZW4KLSsJY2FzZSAkZGVwbGlic19jaGVja19tZXRob2QgaW4KLSsJImZpbGVfbWFnaWMgIiopCi0r CSAgZmlsZV9tYWdpY19yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICJmaWxl X21hZ2ljIFwoLipcKSJgCi0rCSAgTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCi0r CSAgaWYgZXZhbCAkZmlsZV9tYWdpY19jbWQgXCRmaWxlX21hZ2ljX3Rlc3RfZmlsZSAyPiAvZGV2 L251bGwgfAotKwkgICAgJEVHUkVQICIkZmlsZV9tYWdpY19yZWdleCIgPiAvZGV2L251bGw7IHRo ZW4KLSsJICAgIDoKLSsJICBlbHNlCi0rCSAgICBjYXQgPDxfTFRfRU9GIDE+JjIKLSsKLSsqKiog V2FybmluZzogdGhlIGNvbW1hbmQgbGlidG9vbCB1c2VzIHRvIGRldGVjdCBzaGFyZWQgbGlicmFy aWVzLAotKyoqKiAkZmlsZV9tYWdpY19jbWQsIHByb2R1Y2VzIG91dHB1dCB0aGF0IGxpYnRvb2wg Y2Fubm90IHJlY29nbml6ZS4KLSsqKiogVGhlIHJlc3VsdCBpcyB0aGF0IGxpYnRvb2wgbWF5IGZh aWwgdG8gcmVjb2duaXplIHNoYXJlZCBsaWJyYXJpZXMKLSsqKiogYXMgc3VjaC4gIFRoaXMgd2ls bCBhZmZlY3QgdGhlIGNyZWF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzIHRoYXQKLSsqKiogZGVw ZW5kIG9uIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dCBwcm9ncmFtcyBsaW5rZWQgd2l0aCBzdWNoIGxp YnRvb2wKLSsqKiogbGlicmFyaWVzIHdpbGwgd29yayByZWdhcmRsZXNzIG9mIHRoaXMgcHJvYmxl bS4gIE5ldmVydGhlbGVzcywgeW91Ci0rKioqIG1heSB3YW50IHRvIHJlcG9ydCB0aGUgcHJvYmxl bSB0byB5b3VyIHN5c3RlbSBtYW5hZ2VyIGFuZC9vciB0bwotKyoqKiBidWctbGlidG9vbEBnbnUu b3JnCi0rCi0rX0xUX0VPRgotKwkgIGZpIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGJy ZWFrCi0rICAgIGZpCi0rICBkb25lCi0rICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgIE1BR0lDX0NN RD0iJGx0X3NhdmVfTUFHSUNfQ01EIgotKyAgOzsKLStlc2FjCi0rZmkKLSsKLStNQUdJQ19DTUQ9 IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIKLStpZiB0ZXN0IC1uICIkTUFHSUNfQ01EIjsgdGhlbgot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE1BR0lDX0NNRCIgPiY1Ci0r JGFzX2VjaG8gIiRNQUdJQ19DTUQiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0r Ci0rCi0rICBlbHNlCi0rICAgIE1BR0lDX0NNRD06Ci0rICBmaQotK2ZpCi0rCi0rICBmaQotKyAg OzsKLStlc2FjCi0rCi0rIyBVc2UgQyBmb3IgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBpbiB0 aGUgbGlidG9vbCBzY3JpcHQKLSsKLStsdF9zYXZlX0NDPSIkQ0MiCi0rYWNfZXh0PWMKLSthY19j cHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFH UyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhl ZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1 JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLSsKLSsKLSsjIFNvdXJj ZSBmaWxlIGV4dGVuc2lvbiBmb3IgQyB0ZXN0IHNvdXJjZXMuCi0rYWNfZXh0PWMKLSsKLSsjIE9i amVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgQyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0 PW8KLStvYmpleHQ9JG9iamV4dAotKwotKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21w aWxlIHRlc3RzCi0rbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJpbnQgc29tZV92YXJpYWJs ZSA9IDA7IgotKwotKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCi0rbHRf c2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFpbigpe3JldHVybigwKTt9JwotKwotKwotKwot KwotKwotKwotKwotKyMgSWYgbm8gQyBjb21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCi0r TFRDQz0ke0xUQ0MtIiRDQyJ9Ci0rCi0rIyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdlcmUgc3Bl Y2lmaWVkLCB1c2UgQ0ZMQUdTLgotK0xUQ0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQotKwot KyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rY29tcGls ZXI9JENDCi0rCi0rIyBTYXZlIHRoZSBkZWZhdWx0IGNvbXBpbGVyLCBzaW5jZSBpdCBnZXRzIG92 ZXJ3cml0dGVuIHdoZW4gdGhlIG90aGVyCi0rIyB0YWdzIGFyZSBiZWluZyB0ZXN0ZWQsIGFuZCBf TFRfVEFHVkFSKGNvbXBpbGVyLCBbXSkgaXMgYSBOT1AuCi0rY29tcGlsZXJfREVGQVVMVD0kQ0MK LSsKLSsjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQotK2Fj X291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotK2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90 ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9k ZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCi0rX2x0X2NvbXBp bGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAotKyRSTSBjb25mdGVzdCoKLSsKLSth Y19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKLStlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVz dF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAotK2V2YWwgIiRhY19saW5rIiAyPiYxID4vZGV2L251 bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgotK19sdF9saW5rZXJfYm9p bGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCi0rJFJNIC1yIGNvbmZ0ZXN0KgotKwotKwotKyMj IENBVkVBVCBFTVBUT1I6Ci0rIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhl IGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKLSsjIyB0aGUgcnVubmluZyBvcmRlciBv ciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQotKyMj IHdoYXQgeW91IGFyZSBkb2luZy4uLgotK2lmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KLSsK LStsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZz0KLSsKLStpZiB0ZXN0ICIkR0NDIiA9 IHllczsgdGhlbgotKyAgbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWc9JyAtZm5vLWJ1 aWx0aW4nCi0rCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNv bXBpbGVyIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtZm5vLXJ0dGkgLWZuby1leGNlcHRp b25zLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhj ZXB0aW9ucytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucz1ubwotKyAgIGFj X291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGls ZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1m bm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIg KDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUg YSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMg Tm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVz IGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28g dGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgICMgVGhlIG9wdGlvbiBpcyByZWZl cmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2luZyBzZWQuCi0rICAgbHRfY29t cGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31cezAs MVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0 XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJf ZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTo5Mzc5OiAkbHRfY29tcGlsZVwiIiA+ JjUpCi0rICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKLSsgICBhY19zdGF0 dXM9JD8KLSsgICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19tZTo5MzgzOiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1z ICIkYWNfb3V0ZmlsZSI7IHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4g YW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBu byBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0LgotKyAg ICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcg PmNvbmZ0ZXN0LmV4cAotKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+ Y29uZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYgY29u ZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAgIGx0X2N2X3By b2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgICRS TSBjb25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucyIgPiY1Ci0rJGFzX2VjaG8gIiRs dF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucyIgPiY2OyB9Ci0rCi0raWYgdGVzdCB4 IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucyIgPSB4eWVzOyB0aGVuCi0rICAg IGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnPSIkbHRfcHJvZ19jb21waWxlcl9ub19i dWlsdGluX2ZsYWcgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyIKLStlbHNlCi0rICAgIDoKLStm aQotKwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rICBsdF9wcm9nX2NvbXBpbGVyX3dsPQotK2x0 X3Byb2dfY29tcGlsZXJfcGljPQotK2x0X3Byb2dfY29tcGlsZXJfc3RhdGljPQotKwotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBw cm9kdWNlIFBJQyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRjb21waWxlciBvcHRp b24gdG8gcHJvZHVjZSBQSUMuLi4gIiA+JjY7IH0KLSsKLSsgIGlmIHRlc3QgIiRHQ0MiID0geWVz OyB0aGVuCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rICAgIGx0X3Byb2dfY29t cGlsZXJfc3RhdGljPSctc3RhdGljJwotKwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAg YWl4KikKLSsgICAgICAjIEFsbCBBSVggY29kZSBpcyBQSUMuCi0rICAgICAgaWYgdGVzdCAiJGhv c3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNz b3IKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAg ICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAg ICBwb3dlcnBjKQotKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNv IHN1cHBvcnQKLSsgICAgICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZQSUMnCi0rICAg ICAgICA7OwotKyAgICAgIG02OGspCi0rICAgICAgICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBs ZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAotKyAgICAgICAg ICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcg YW55dGhpbmcgYmV0dGVyLAotKyAgICAgICAgICAgICMgbGlrZSBgLW02ODA0MCcuCi0rICAgICAg ICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1tNjgwMjAgLXJlc2lkZW50MzIgLW1hbHdheXMt cmVzdG9yZS1hNCcKLSsgICAgICAgIDs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAg IGJlb3MqIHwgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KiB8IG9zZjMqIHwgb3NmNCogfCBv c2Y1KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgdGhlc2UgT1Nlcy4KLSsgICAg ICA7OwotKwotKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgcHczMiogfCBvczIqIHwgY2VnY2MqKQot KyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdo ZXRoZXIgaXQgaXMgYmVpbmcKLSsgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwg KGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgotKyAgICAgICMgQWx0aG91 Z2ggdGhlIGN5Z3dpbiBnY2MgaWdub3JlcyAtZlBJQywgc3RpbGwgbmVlZCB0aGlzIGZvciBvbGQt c3R5bGUKLSsgICAgICAjICgtLWRpc2FibGUtYXV0by1pbXBvcnQpIGxpYnJhcmllcwotKyAgICAg IGx0X3Byb2dfY29tcGlsZXJfcGljPSctRERMTF9FWFBPUlQnCi0rICAgICAgOzsKLSsKLSsgICAg ZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlz IHBsYXRmb3JtCi0rICAgICAgIyBDb21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJ QiBmaWxlcwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctZm5vLWNvbW1vbicKLSsgICAg ICA7OwotKwotKyAgICBocHV4KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgNjQt Yml0IFBBIEhQLVVYLCBidXQgbm90IGZvciAzMi1iaXQKLSsgICAgICAjIFBBIEhQLVVYLiAgT24g SUE2NCBIUC1VWCwgUElDIGlzIHRoZSBkZWZhdWx0IGJ1dCB0aGUgcGljIGZsYWcKLSsgICAgICAj IHNldHMgdGhlIGRlZmF1bHQgVExTIG1vZGVsIGFuZCBhZmZlY3RzIGlubGluaW5nLgotKyAgICAg IGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgaHBwYSo2NCopCi0rCSMgK1ogdGhlIGRlZmF1bHQK LSsJOzsKLSsgICAgICAqKQotKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZQSUMnCi0rCTs7Ci0r ICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIGludGVyaXhbMy05XSopCi0rICAgICAgIyBJ bnRlcml4IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4K LSsgICAgICAjIEluc3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGlt ZS4KLSsgICAgICA7OwotKwotKyAgICBtc2Rvc2RqZ3BwKikKLSsgICAgICAjIEp1c3QgYmVjYXVz ZSB3ZSB1c2UgR0NDIGRvZXNuJ3QgbWVhbiB3ZSBzdWRkZW5seSBnZXQgc2hhcmVkIGxpYnJhcmll cwotKyAgICAgICMgb24gc3lzdGVtcyB0aGF0IGRvbid0IHN1cHBvcnQgdGhlbS4KLSsgICAgICBs dF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQ9bm8KLSsgICAgICBlbmFibGVfc2hhcmVk PW5vCi0rICAgICAgOzsKLSsKLSsgICAgKm50byogfCAqcW54KikKLSsgICAgICAjIFFOWCB1c2Vz IEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lz ZQotKyAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp Yz0nLWZQSUMgLXNoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCpNUCopCi0rICAgICAg aWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgotKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0tS2NvbmZv cm1fcGljCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfcGljPSctZlBJQycKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBlbHNlCi0rICAg ICMgUE9SVE1FIENoZWNrIGZvciBmbGFnIHRvIHBhc3MgbGlua2VyIGZsYWdzIHRocm91Z2ggdGhl IHN5c3RlbSBjb21waWxlci4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBhaXgqKQotKyAg ICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1 IiA9IGlhNjQ7IHRoZW4KLSsJIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKLSsJ bHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwotKyAgICAgIGVsc2UKLSsJbHRfcHJv Z19jb21waWxlcl9zdGF0aWM9Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxzLmV4cCcKLSsgICAgICBm aQotKyAgICAgIDs7Ci0rCi0rICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiogfCBj ZWdjYyopCi0rICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2Fu IHRlbGwgd2hldGhlciBpdCBpcyBiZWluZwotKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBp biBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCi0rICAgICAg bHRfcHJvZ19jb21waWxlcl9waWM9Jy1ERExMX0VYUE9SVCcKLSsgICAgICA7OwotKwotKyAgICBo cHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSct V2wsJwotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciBJQTY0IEhQLVVYIGFuZCA2NC1i aXQgSFAtVVgsIGJ1dAotKyAgICAgICMgbm90IGZvciBQQSBIUC1VWC4KLSsgICAgICBjYXNlICRo b3N0X2NwdSBpbgotKyAgICAgIGhwcGEqNjQqfGlhNjQqKQotKwkjICtaIHRoZSBkZWZhdWx0Ci0r CTs7Ci0rICAgICAgKikKLSsJbHRfcHJvZ19jb21waWxlcl9waWM9JytaJwotKwk7OwotKyAgICAg IGVzYWMKLSsgICAgICAjIElzIHRoZXJlIGEgYmV0dGVyIGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj IHRoYXQgd29ya3Mgd2l0aCB0aGUgYnVuZGxlZCBDQz8KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYz0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCi0rICAgICAgOzsKLSsKLSsgICAgaXJpeDUq IHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2ws JwotKyAgICAgICMgUElDICh3aXRoIC1LUElDKSBpcyB0aGUgZGVmYXVsdC4KLSsgICAgICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYz0nLW5vbl9zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsgICAgbGlu dXgqIHwgaypic2QqLWdudSkKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICMg b2xkIEludGVsIGZvciB4ODZfNjQgd2hpY2ggc3RpbGwgc3VwcG9ydGVkIC1LUElDLgotKyAgICAg IGVjYyopCi0rCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rCWx0X3Byb2dfY29tcGlsZXJf cGljPSctS1BJQycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1zdGF0aWMnCi0rICAgICAg ICA7OwotKyAgICAgICMgaWNjIHVzZWQgdG8gYmUgaW5jb21wYXRpYmxlIHdpdGggR0NDLgotKyAg ICAgICMgSUNDIDEwIGRvZXNuJ3QgYWNjZXB0IC1LUElDIGFueSBtb3JlLgotKyAgICAgIGljYyog fCBpZm9ydCopCi0rCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rCWx0X3Byb2dfY29tcGls ZXJfcGljPSctZlBJQycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1zdGF0aWMnCi0rICAg ICAgICA7OwotKyAgICAgICMgTGFoZXkgRm9ydHJhbiA4LjEuCi0rICAgICAgbGY5NSopCi0rCWx0 X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljPSctLXNoYXJl ZCcKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy0tc3RhdGljJwotKwk7OwotKyAgICAgIHBn Y2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQotKyAgICAgICAgIyBQb3J0bGFuZCBHcm91 cCBjb21waWxlcnMgKCpub3QqIHRoZSBQZW50aXVtIGdjYyBjb21waWxlciwKLSsJIyB3aGljaCBs b29rcyB0byBiZSBhIGRlYWQgcHJvamVjdCkKLSsJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcK LSsJbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mcGljJwotKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Yz0nLUJzdGF0aWMnCi0rICAgICAgICA7OwotKyAgICAgIGNjYyopCi0rICAgICAgICBsdF9wcm9n X2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgICAgIyBBbGwgQWxwaGEgY29kZSBpcyBQSUMuCi0r ICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLW5vbl9zaGFyZWQnCi0rICAgICAgICA7 OwotKyAgICAgIHhsKikKLSsJIyBJQk0gWEwgQyA4LjAvRm9ydHJhbiAxMC4xIG9uIFBQQwotKwls dF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLXFwaWMn Ci0rCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctcXN0YXRpY2xpbmsnCi0rCTs7Ci0rICAgICAg KikKLSsJY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCi0rCSpTdW5cIEMqKQotKwkgICMg U3VuIEMgNS45Ci0rCSAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwotKwkgIGx0X3Byb2df Y29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsJICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2ws JwotKwkgIDs7Ci0rCSpTdW5cIEYqKQotKwkgICMgU3VuIEZvcnRyYW4gOC4zIHBhc3NlcyBhbGwg dW5yZWNvZ25pemVkIGZsYWdzIHRvIHRoZSBsaW5rZXIKLSsJICBsdF9wcm9nX2NvbXBpbGVyX3Bp Yz0nLUtQSUMnCi0rCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwotKwkgIGx0 X3Byb2dfY29tcGlsZXJfd2w9JycKLSsJICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZXNhYwot KyAgICAgIDs7Ci0rCi0rICAgIG5ld3NvczYpCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9 Jy1LUElDJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAg ICA7OwotKwotKyAgICAqbnRvKiB8ICpxbngqKQotKyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywg YnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCi0rICAgICAg IyBpdCB3aWxsIGNvcmVkdW1wLgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQyAt c2hhcmVkJwotKyAgICAgIDs7Ci0rCi0rICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgICMgQWxsIE9TRi8xIGNvZGUgaXMg UElDLgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctbm9uX3NoYXJlZCcKLSsgICAg ICA7OwotKwotKyAgICByZG9zKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLW5v bl9zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAgbHRfcHJvZ19j b21waWxlcl9waWM9Jy1LUElDJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0 YXRpYycKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGY3NyogfCBmOTAqIHwg Zjk1KikKLSsJbHRfcHJvZ19jb21waWxlcl93bD0nLVFvcHRpb24gbGQgJzs7Ci0rICAgICAgKikK LSsJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCc7OwotKyAgICAgIGVzYWMKLSsgICAgICA7Owot KwotKyAgICBzdW5vczQqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1Rb3B0aW9uIGxk ICcKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLVBJQycKLSsgICAgICBsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQgfCBzeXN2 NC4ydXcyKiB8IHN5c3Y0LjMqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0r ICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwotKyAgICAgIGx0X3Byb2dfY29tcGls ZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCpNUCopCi0rICAg ICAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhlbgotKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtj b25mb3JtX3BpYycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwotKyAgICAg IGZpCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUqIHwg c2NvNXY2KiB8IE9wZW5VTklYKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwot KyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKLSsgICAgICBsdF9wcm9nX2NvbXBp bGVyX3N0YXRpYz0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsKLSsgICAgdW5pY29zKikKLSsgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfY2Fu X2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIDs7Ci0rCi0rICAgIHV0czQqKQotKyAgICAgIGx0X3By b2dfY29tcGlsZXJfcGljPSctcGljJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSct QnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJf Y2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rCi0rY2Fz ZSAkaG9zdF9vcyBpbgotKyAgIyBGb3IgcGxhdGZvcm1zIHdoaWNoIGRvIG5vdCBzdXBwb3J0IFBJ QywgLURQSUMgaXMgbWVhbmluZ2xlc3M6Ci0rICAqZGpncHAqKQotKyAgICBsdF9wcm9nX2NvbXBp bGVyX3BpYz0KLSsgICAgOzsKLSsgICopCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSIkbHRf cHJvZ19jb21waWxlcl9waWMgLURQSUMiCi0rICAgIDs7Ci0rZXNhYwotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRsdF9wcm9nX2NvbXBpbGVyX3BpYyIgPiY1Ci0rJGFzX2Vj aG8gIiRsdF9wcm9nX2NvbXBpbGVyX3BpYyIgPiY2OyB9Ci0rCi0rCi0rCi0rCi0rCi0rCi0rIwot KyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KLSsjCi0r aWYgdGVzdCAtbiAiJGx0X3Byb2dfY29tcGlsZXJfcGljIjsgdGhlbgotKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19j b21waWxlcl9waWMgd29ya3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxl ciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWMgd29ya3MuLi4gIiA+JjY7IH0KLStpZiB0 ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzK3NldH0iID0gc2V0OyB0aGVuCi0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGls ZXJfcGljX3dvcmtzPW5vCi0rICAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rICAg ZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0r ICAgbHRfY29tcGlsZXJfZmxhZz0iJGx0X3Byb2dfY29tcGlsZXJfcGljIC1EUElDIgotKyAgICMg SW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFi bGUsIG9yCi0rICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBv ciAoMykgYXQgdGhlIGVuZC4KLSsgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9l cyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCi0rICAgIyB3aXRoIGEgZG9sbGFy IHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4K LSsgICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBj b25mdXNpbmcgc2VkLgotKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQg XAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwK LSsgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCi0r ICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAoZXZhbCBlY2hvICJcIlwkYXNf bWU6OTcxODogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5j b25mdGVzdC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK LSsgICBlY2hvICIkYXNfbWU6OTcyMjogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAgaWYgKGV4 aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCi0rICAgICAjIFRo ZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVj b2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVyIHRo YW4gdGhlIHVzdWFsIG91dHB1dC4KLSsgICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9ib2lsZXJw bGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9eJC9k OyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgotKyAgICAgaWYgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVs bDsgdGhlbgotKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrcz15ZXMKLSsgICAg IGZpCi0rICAgZmkKLSsgICAkUk0gY29uZnRlc3QqCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3MiID4mNQot KyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3MiID4mNjsgfQotKwotK2lm IHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3MiID0geHllczsgdGhlbgotKyAg ICBjYXNlICRsdF9wcm9nX2NvbXBpbGVyX3BpYyBpbgotKyAgICAgIiIgfCAiICIqKSA7OwotKyAg ICAgKikgbHRfcHJvZ19jb21waWxlcl9waWM9IiAkbHRfcHJvZ19jb21waWxlcl9waWMiIDs7Ci0r ICAgICBlc2FjCi0rZWxzZQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0KLSsgICAgIGx0X3By b2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZD1ubwotK2ZpCi0rCi0rZmkKLSsKLSsKLSsKLSsK LSsKLSsKLSsjCi0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5 IHdvcmtzLgotKyMKLSt3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIGx0X3RtcF9zdGF0aWNf ZmxhZz1cIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY1wiCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19m bGFnIHdvcmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGlj IGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxhZyB3b3Jrcy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7 bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9z dGF0aWNfd29ya3M9bm8KLSsgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgIExERkxBR1M9 IiRMREZMQUdTICRsdF90bXBfc3RhdGljX2ZsYWciCi0rICAgZWNobyAiJGx0X3NpbXBsZV9saW5r X3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICAgaWYgKGV2YWwgJGFjX2xpbmsgMj5j b25mdGVzdC5lcnIpICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCi0rICAgICAj IFRoZSBsaW5rZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJl Y29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncwotKyAgICAg aWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSsgICAgICAgIyBBcHBlbmQgYW55IGVycm9y cyB0byB0aGUgY29uZmlnLmxvZy4KLSsgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1Ci0rICAg ICAgICRFQ0hPICJYJF9sdF9saW5rZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+ IGNvbmZ0ZXN0LmV4cAotKyAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJy ID5jb25mdGVzdC5lcjIKLSsgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIy ID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193 b3Jrcz15ZXMKLSsgICAgICAgZmkKLSsgICAgIGVsc2UKLSsgICAgICAgbHRfY3ZfcHJvZ19jb21w aWxlcl9zdGF0aWNfd29ya3M9eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAgJFJNIC1yIGNvbmZ0 ZXN0KgotKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCi0rCi0rZmkKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3Mi ID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MiID4mNjsg fQotKwotK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MiID0geHll czsgdGhlbgotKyAgICA6Ci0rZWxzZQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0KLStm aQotKwotKwotKwotKwotKwotKwotKwotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRh Y19vYmpleHQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfY19v K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vPW5vCi0rICAgJFJNIC1yIGNvbmZ0ZXN0IDI+L2Rl di9udWxsCi0rICAgbWtkaXIgY29uZnRlc3QKLSsgICBjZCBjb25mdGVzdAotKyAgIG1rZGlyIG91 dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFj X2V4dAotKwotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4 dCIKLSsgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZM QUdTIHZhcmlhYmxlLCBvcgotKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29u ZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCi0rICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUg aXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucwotKyAgICMgd2l0 aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBj b3JyZWN0bHkuCi0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0r ICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAg IC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAt ZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTo5 ODIzOiAkbHRfY29tcGlsZVwiIiA+JjUpCi0rICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91dC9j b25mdGVzdC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IG91dC9jb25mdGVzdC5lcnIg PiY1Ci0rICAgZWNobyAiJGFzX21lOjk4Mjc6IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgIGlm IChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0Ci0r ICAgdGhlbgotKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRo ZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFy ZSB3YXJuaW5ncwotKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRY c2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCi0rICAgICAkU0VEICcvXiQvZDsgL14g KisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgotKyAgICAgaWYgdGVzdCAh IC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVz dC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz15 ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICBjaG1vZCB1K3cgLiAyPiY1Ci0rICAgJFJNIGNvbmZ0 ZXN0KgotKyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lp X2ZpbGVzLyBmb3IKLSsgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KLSsgICB0ZXN0IC1kIG91 dC9paV9maWxlcyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCi0r ICAgJFJNIG91dC8qICYmIHJtZGlyIG91dAotKyAgIGNkIC4uCi0rICAgJFJNIC1yIGNvbmZ0ZXN0 Ci0rICAgJFJNIGNvbmZ0ZXN0KgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2 X3Byb2dfY29tcGlsZXJfY19vIiA+JjY7IH0KLSsKLSsKLSsKLSsKLSsKLSsKLSsgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8g ZmlsZS4kYWNfb2JqZXh0IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIg c3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHts dF9jdl9wcm9nX2NvbXBpbGVyX2NfbytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz1ubwotKyAg ICRSTSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAotKyAgIG1rZGlyIGNvbmZ0ZXN0Ci0rICAgY2Qg Y29uZnRlc3QKLSsgICBta2RpciBvdXQKLSsgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVz dF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICBsdF9jb21waWxlcl9mbGFnPSItbyBv dXQvY29uZnRlc3QyLiRhY19vYmpleHQiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIg KDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUg YSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMg Tm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVz IGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28g dGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRh Y19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21w aWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGls ZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAo ZXZhbCBlY2hvICJcIlwkYXNfbWU6OTg3ODogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFs ICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQotKyAgIGFjX3N0YXR1cz0kPwotKyAg IGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19tZTo5ODgyOiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9j b25mdGVzdDIuJGFjX29iamV4dAotKyAgIHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBv bmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAj IFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSsgICAgICRFQ0hPICJYJF9sdF9jb21w aWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAot KyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVz dC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2Nv bmZ0ZXN0LmV4cCBvdXQvY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgbHRf Y3ZfcHJvZ19jb21waWxlcl9jX289eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAgY2htb2QgdSt3 IC4gMj4mNQotKyAgICRSTSBjb25mdGVzdCoKLSsgICAjIFNHSSBDKysgY29tcGlsZXIgd2lsbCBj cmVhdGUgZGlyZWN0b3J5IG91dC9paV9maWxlcy8gZm9yCi0rICAgIyB0ZW1wbGF0ZSBpbnN0YW50 aWF0aW9uCi0rICAgdGVzdCAtZCBvdXQvaWlfZmlsZXMgJiYgJFJNIG91dC9paV9maWxlcy8qICYm IHJtZGlyIG91dC9paV9maWxlcwotKyAgICRSTSBvdXQvKiAmJiBybWRpciBvdXQKLSsgICBjZCAu LgotKyAgICRSTSAtciBjb25mdGVzdAotKyAgICRSTSBjb25mdGVzdCoKLSsKLStmaQotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIg PiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgPiY2OyB9Ci0rCi0rCi0r Ci0rCi0raGFyZF9saW5rcz0ibm90dGVzdGVkIgotK2lmIHRlc3QgIiRsdF9jdl9wcm9nX2NvbXBp bGVyX2NfbyIgPSBubyAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KLSsgICMgZG8g bm90IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBwcm92aWRlZCBieSB0aGUgdXNl cgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIHdlIGNhbiBsb2Nr IHdpdGggaGFyZCBsaW5rcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgd2UgY2FuIGxv Y2sgd2l0aCBoYXJkIGxpbmtzLi4uICIgPiY2OyB9Ci0rICBoYXJkX2xpbmtzPXllcwotKyAgJFJN IGNvbmZ0ZXN0KgotKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhh cmRfbGlua3M9bm8KLSsgIHRvdWNoIGNvbmZ0ZXN0LmEKLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRl c3QuYiAyPiY1IHx8IGhhcmRfbGlua3M9bm8KLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAy Pi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkaGFyZF9saW5rcyIgPiY1Ci0rJGFzX2VjaG8gIiRoYXJkX2xpbmtzIiA+JjY7 IH0KLSsgIGlmIHRlc3QgIiRoYXJkX2xpbmtzIiA9IG5vOyB0aGVuCi0rICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBXQVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1v Jywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBX QVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBt YXkgYmUgdW5zYWZlIiA+JjI7fQotKyAgICBuZWVkX2xvY2tzPXdhcm4KLSsgIGZpCi0rZWxzZQot KyAgbmVlZF9sb2Nrcz1ubwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExE KSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3 aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJp ZXMuLi4gIiA+JjY7IH0KLSsKLSsgIHJ1bnBhdGhfdmFyPQotKyAgYWxsb3dfdW5kZWZpbmVkX2Zs YWc9Ci0rICBhbHdheXNfZXhwb3J0X3N5bWJvbHM9bm8KLSsgIGFyY2hpdmVfY21kcz0KLSsgIGFy Y2hpdmVfZXhwc3ltX2NtZHM9Ci0rICBjb21waWxlcl9uZWVkc19vYmplY3Q9bm8KLSsgIGVuYWJs ZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXM9bm8KLSsgIGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlYz0KLSsgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2Ug fCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5p cSA+ICRleHBvcnRfc3ltYm9scycKLSsgIGhhcmRjb2RlX2F1dG9tYXRpYz1ubwotKyAgaGFyZGNv ZGVfZGlyZWN0PW5vCi0rICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9bm8KLSsgIGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWM9Ci0rICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPQotKyAg aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0KLSsgIGhhcmRjb2RlX21pbnVzX0w9bm8KLSsgIGhh cmRjb2RlX3NobGlicGF0aF92YXI9dW5zdXBwb3J0ZWQKLSsgIGluaGVyaXRfcnBhdGg9bm8KLSsg IGxpbmtfYWxsX2RlcGxpYnM9dW5rbm93bgotKyAgbW9kdWxlX2NtZHM9Ci0rICBtb2R1bGVfZXhw c3ltX2NtZHM9Ci0rICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPQotKyAgb2xkX2FyY2hpdmVf ZnJvbV9leHBzeW1zX2NtZHM9Ci0rICB0aHJlYWRfc2FmZV9mbGFnX3NwZWM9Ci0rICB3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYz0KLSsgICMgaW5jbHVkZV9leHBzeW1zIHNob3VsZCBiZSBhIGxpc3Qg b2Ygc3BhY2Utc2VwYXJhdGVkIHN5bWJvbHMgdG8gYmUgKmFsd2F5cyoKLSsgICMgaW5jbHVkZWQg aW4gdGhlIHN5bWJvbCBsaXN0Ci0rICBpbmNsdWRlX2V4cHN5bXM9Ci0rICAjIGV4Y2x1ZGVfZXhw c3ltcyBjYW4gYmUgYW4gZXh0ZW5kZWQgcmVnZXhwIG9mIHN5bWJvbHMgdG8gZXhjbHVkZQotKyAg IyBpdCB3aWxsIGJlIHdyYXBwZWQgYnkgYCAoJyBhbmQgYCkkJywgc28gb25lIG11c3Qgbm90IG1h dGNoIGJlZ2lubmluZyBvcgotKyAgIyBlbmQgb2YgbGluZS4gIEV4YW1wbGU6IGBhfGJjfC4qZC4q JyB3aWxsIGV4Y2x1ZGUgdGhlIHN5bWJvbHMgYGEnIGFuZCBgYmMnLAotKyAgIyBhcyB3ZWxsIGFz IGFueSBzeW1ib2wgdGhhdCBjb250YWlucyBgZCcuCi0rICBleGNsdWRlX2V4cHN5bXM9J19HTE9C QUxfT0ZGU0VUX1RBQkxFX3xfR0xPQkFMX19GW0lEXV8uKicKLSsgICMgQWx0aG91Z2ggX0dMT0JB TF9PRkZTRVRfVEFCTEVfIGlzIGEgdmFsaWQgc3ltYm9sIEMgbmFtZSwgbW9zdCBhLm91dAotKyAg IyBwbGF0Zm9ybXMgKGFiKXVzZSBpdCBpbiBQSUMgY29kZSwgYnV0IHRoZWlyIGxpbmtlcnMgZ2V0 IGNvbmZ1c2VkIGlmCi0rICAjIHRoZSBzeW1ib2wgaXMgZXhwbGljaXRseSByZWZlcmVuY2VkLiAg U2luY2UgcG9ydGFibGUgY29kZSBjYW5ub3QKLSsgICMgcmVseSBvbiB0aGlzIHN5bWJvbCBuYW1l LCBpdCdzIHByb2JhYmx5IGZpbmUgdG8gbmV2ZXIgaW5jbHVkZSBpdCBpbgotKyAgIyBwcmVsb2Fk ZWQgc3ltYm9sIHRhYmxlcy4KLSsgICMgRXhjbHVkZSBzaGFyZWQgbGlicmFyeSBpbml0aWFsaXph dGlvbi9maW5hbGl6YXRpb24gc3ltYm9scy4KLSsgIGV4dHJhY3RfZXhwc3ltc19jbWRzPQotKwot KyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2Mq KQotKyAgICAjIEZJWE1FOiB0aGUgTVNWQysrIHBvcnQgaGFzbid0IGJlZW4gdGVzdGVkIGluIGEg bG9vb29uZyB0aW1lCi0rICAgICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNz dW1lIHRoYXQgd2UgYXJlIHVzaW5nCi0rICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCi0rICAg IGlmIHRlc3QgIiRHQ0MiICE9IHllczsgdGhlbgotKyAgICAgIHdpdGhfZ251X2xkPW5vCi0rICAg IGZpCi0rICAgIDs7Ci0rICBpbnRlcml4KikKLSsgICAgIyB3ZSBqdXN0IGhvcGUvYXNzdW1lIHRo aXMgaXMgZ2NjIGFuZCBub3QgYzg5ICg9IE1TVkMrKykKLSsgICAgd2l0aF9nbnVfbGQ9eWVzCi0r ICAgIDs7Ci0rICBvcGVuYnNkKikKLSsgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAgOzsKLSsgIGVz YWMKLSsKLSsgIGxkX3NobGlicz15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7 IHRoZW4KLSsgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91 bGQgYmUgZW1wdHkKLSsgICAgd2xhcmM9JyR7d2x9JwotKwotKyAgICAjIFNldCBzb21lIGRlZmF1 bHRzIGZvciBHTlUgbGQgd2l0aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQotKyAgICAj IGFyZSByZXNldCBsYXRlciBpZiBzaGFyZWQgbGlicmFyaWVzIGFyZSBub3Qgc3VwcG9ydGVkLiBQ dXR0aW5nIHRoZW0KLSsgICAgIyBoZXJlIGFsbG93cyB0aGVtIHRvIGJlIG92ZXJyaWRkZW4gaWYg bmVjZXNzYXJ5LgotKyAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKyAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgIGV4cG9ydF9k eW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKyAgICAjIGFuY2llbnQg R05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCi0rICAgIGlmICRM RCAtLWhlbHAgMj4mMSB8ICRHUkVQICduby13aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhl bgotKyAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2 ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJwotKyAgICBlbHNlCi0r ICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Ci0rICAgIGZpCi0rICAgIHN1cHBvcnRzX2Fu b25fdmVyc2lvbmluZz1ubwotKyAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4KLSsgICAgICAqXCBb MDFdLiogfCAqXCAyLlswLTldLiogfCAqXCAyLjEwLiopIDs7ICMgY2F0Y2ggdmVyc2lvbnMgPCAy LjExCi0rICAgICAgKlwgMi4xMS45My4wLjJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15 ZXMgOzsgIyBSSDcuMyAuLi4KLSsgICAgICAqXCAyLjExLjkyLjAuMTJcICopIHN1cHBvcnRzX2Fu b25fdmVyc2lvbmluZz15ZXMgOzsgIyBNYW5kcmFrZSA4LjIgLi4uCi0rICAgICAgKlwgMi4xMS4q KSA7OyAjIG90aGVyIDIuMTEgdmVyc2lvbnMKLSsgICAgICAqKSBzdXBwb3J0c19hbm9uX3ZlcnNp b25pbmc9eWVzIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgIyBTZWUgaWYgR05VIGxkIHN1cHBvcnRz IHNoYXJlZCBsaWJyYXJpZXMuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4WzMtOV0q KQotKyAgICAgICMgT24gQUlYL1BQQywgdGhlIEdOVSBsaW5rZXIgaXMgdmVyeSBicm9rZW4KLSsg ICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KLSsJbGRfc2hsaWJzPW5vCi0r CWNhdCA8PF9MVF9FT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiB0aGUgR05VIGxpbmtlciwgYXQg bGVhc3QgdXAgdG8gcmVsZWFzZSAyLjkuMSwgaXMgcmVwb3J0ZWQKLSsqKiogdG8gYmUgdW5hYmxl IHRvIHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIEFJWC4KLSsqKiogVGhlcmVm b3JlLCBsaWJ0b29sIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBJZiB5 b3UKLSsqKiogcmVhbGx5IGNhcmUgZm9yIHNoYXJlZCBsaWJyYXJpZXMsIHlvdSBtYXkgd2FudCB0 byBtb2RpZnkgeW91ciBQQVRICi0rKioqIHNvIHRoYXQgYSBub24tR05VIGxpbmtlciBpcyBmb3Vu ZCwgYW5kIHRoZW4gcmVzdGFydC4KLSsKLStfTFRfRU9GCi0rICAgICAgZmkKLSsgICAgICA7Owot KwotKyAgICBhbWlnYW9zKikKLSsgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgIHBvd2Vy cGMpCi0rICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9TNCAuc28gc3VwcG9y dAotKyAgICAgICAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rICAg ICAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJwotKyAgICAgICAgOzsKLSsgICAgICBtNjhr KQotKyAgICAgICAgICAgIGFyY2hpdmVfY21kcz0nJFJNICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJy YXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTkFNRSAkbGlibmFtZSIgPiAkb3V0cHV0X29iamRpci9h Mml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIExJQlJBUllfSUQgMSIgPj4gJG91dHB1dF9v YmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBWRVJTSU9OICRtYWpvciIgPj4g JG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBSRVZJU0lPTiAk cmV2aXNpb24iID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEFSICRBUl9GTEFH UyAkbGliICRsaWJvYmpzfiRSQU5MSUIgJGxpYn4oY2QgJG91dHB1dF9vYmpkaXIgJiYgYTJpeGxp YnJhcnkgLTMyKScKLSsgICAgICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRs aWJkaXInCi0rICAgICAgICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKLSsgICAgICAgIDs7Ci0r ICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIGJlb3MqKQotKyAgICAgIGlmICRMRCAtLWhl bHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7 IHRoZW4KLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsJIyBKb3NlcGggQmVj a2VuYmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYwotKwkjIHN1 cHBvcnQgLS11bmRlZmluZWQuICBUaGlzIGRlc2VydmVzIHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJ WE1FCi0rCWFyY2hpdmVfY21kcz0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKyAgICAgIGVsc2UK LSsJbGRfc2hsaWJzPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBjeWd3aW4qIHwg bWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAgICAgIyBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCi0rICAgICAgIyBhcyB0 aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsgICAgICBoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjPSctTCRsaWJkaXInCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBw b3J0ZWQKLSsgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHM9bm8KLSsgICAgICBlbmFibGVfc2hh cmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPXllcwotKyAgICAgIGV4cG9ydF9zeW1ib2xzX2NtZHM9 JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAt ZSAnXCcnL15bQkNER1JTXVsgXS9zLy4qWyBdXChbXiBdKlwpL1wxIERBVEEvJ1wnJyB8ICRTRUQg LWUgJ1wnJy9eW0FJVFddWyBdL3MvLipbIF0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRf c3ltYm9scycKLSsKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnYXV0by1pbXBv cnQnID4gL2Rldi9udWxsOyB0aGVuCi0rICAgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVk ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29u YW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAt WGxpbmtlciAkbGliJwotKwkjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMg YSAuZGVmIGZpbGUgKDFzdCBsaW5lCi0rCSMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3Ro ZXJ3aXNlLCBwcmVwZW5kLi4uCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9J2lmIHRlc3QgInhgJFNF RCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCi0rCSAgY3AgJGV4cG9ydF9z eW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKwllbHNlCi0rCSAgZWNobyBFWFBP UlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rCSAgY2F0ICRleHBvcnRfc3ltYm9s cyA+PiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsJZml+Ci0rCSRDQyAtc2hhcmVkICRv dXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNl IC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwotKyAgICAgIGVsc2UKLSsJbGRf c2hsaWJzPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBpbnRlcml4WzMtOV0qKQot KyAgICAgIGhhcmRjb2RlX2RpcmVjdD1ubwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9 bm8KLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCwkbGliZGly JwotKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tRScKLSsgICAgICAjIEhh Y2s6IE9uIEludGVyaXggMy54LCB3ZSBjYW5ub3QgY29tcGlsZSBQSUMgYmVjYXVzZSBvZiBhIGJy b2tlbiBnY2MuCi0rICAgICAgIyBJbnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFyZSBsb2FkZWQg YXQgYW4gaW1hZ2UgYmFzZSAoMHgxMDAwMDAwMCBieQotKyAgICAgICMgZGVmYXVsdCkgYW5kIHJl bG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkKLSsg ICAgICAjIGNvbnN1bWluZyBhbmQgZnJhZ21lbnRpbmcgcHJvY2Vzcy4gIFRvIGF2b2lkIHRoaXMs IHdlIHBpY2sgYSByYW5kb20sCi0rICAgICAgIyAyNTYgS2lCLWFsaWduZWQgaW1hZ2UgYmFzZSBi ZXR3ZWVuIDB4NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQgbGluawotKyAgICAgICMgdGltZS4g IE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNl LgotKyAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2Us YGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8g JGxpYicKLSsgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSdzZWQgInMsXixfLCIgJGV4cG9ydF9z eW1ib2xzID4kb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bX4kQ0MgLXNoYXJlZCAkcGljX2Zs YWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3ds fS0tcmV0YWluLXN5bWJvbHMtZmlsZSwkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bSAke3ds fS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAx MzQyMTc3MjgwYCAtbyAkbGliJwotKyAgICAgIDs7Ci0rCi0rICAgIGdudSogfCBsaW51eCogfCB0 cGYqIHwgaypic2QqLWdudSkKLSsgICAgICB0bXBfZGlldD1ubwotKyAgICAgIGlmIHRlc3QgIiRo b3N0X29zIiA9IGxpbnV4LWRpZXRsaWJjOyB0aGVuCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0r CSAgZGlldFwgKikgdG1wX2RpZXQ9eWVzOzsJIyBsaW51eC1kaWV0bGliYyB3aXRoIHN0YXRpYyBs aW5raW5nICghZGlldC1keW4pCi0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGlmICRMRCAtLWhl bHAgMj4mMSB8ICRFR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxs IFwKLSsJICYmIHRlc3QgIiR0bXBfZGlldCIgPSBubwotKyAgICAgIHRoZW4KLSsJdG1wX2FkZGZs YWc9Ci0rCXRtcF9zaGFyZWRmbGFnPSctc2hhcmVkJwotKwljYXNlICRjY19iYXNlbmFtZSwkaG9z dF9jcHUgaW4KLSsgICAgICAgIHBnY2MqKQkJCQkjIFBvcnRsYW5kIEdyb3VwIEMgY29tcGlsZXIK LSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNv bnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252 ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2Nv bnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIHRtcF9hZGRmbGFnPScg JHBpY19mbGFnJwotKwkgIDs7Ci0rCXBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KikJIyBQb3J0bGFu ZCBHcm91cCBmNzcgYW5kIGY5MCBjb21waWxlcnMKLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl Yz0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8g dGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2Us JGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9s ZS1hcmNoaXZlJwotKwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnIC1Nbm9tYWluJyA7OwotKwll Y2MqLGlhNjQqIHwgaWNjKixpYTY0KikJIyBJbnRlbCBDIGNvbXBpbGVyIG9uIGlhNjQKLSsJICB0 bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMnIDs7Ci0rCWVmYyosaWE2NCogfCBpZm9ydCosaWE2NCop CSMgSW50ZWwgRm9ydHJhbiBjb21waWxlciBvbiBpYTY0Ci0rCSAgdG1wX2FkZGZsYWc9JyAtaV9k eW5hbWljIC1ub2Zvcl9tYWluJyA7OwotKwlpZmMqIHwgaWZvcnQqKQkJCSMgSW50ZWwgRm9ydHJh biBjb21waWxlcgotKwkgIHRtcF9hZGRmbGFnPScgLW5vZm9yX21haW4nIDs7Ci0rCWxmOTUqKQkJ CQkjIExhaGV5IEZvcnRyYW4gOC4xCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Ci0rCSAg dG1wX3NoYXJlZGZsYWc9Jy0tc2hhcmVkJyA7OwotKwl4bFtjQ10qKQkJCSMgSUJNIFhMIEMgOC4w IG9uIFBQQyAoZGVhbCB3aXRoIHhsZiBiZWxvdykKLSsJICB0bXBfc2hhcmVkZmxhZz0nLXFta3No cm9iaicKLSsJICB0bXBfYWRkZmxhZz0gOzsKLSsJZXNhYwotKwljYXNlIGAkQ0MgLVYgMj4mMSB8 IHNlZCA1cWAgaW4KLSsJKlN1blwgQyopCQkJIyBTdW4gQyA1LjkKLSsJICB3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlYz0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNv bnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZl bmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29u dmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgY29tcGlsZXJfbmVlZHNf b2JqZWN0PXllcwotKwkgIHRtcF9zaGFyZWRmbGFnPSctRycgOzsKLSsJKlN1blwgRiopCQkJIyBT dW4gRm9ydHJhbiA4LjMKLSsJICB0bXBfc2hhcmVkZmxhZz0nLUcnIDs7Ci0rCWVzYWMKLSsJYXJj aGl2ZV9jbWRzPSckQ0MgJyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGli JwotKwotKyAgICAgICAgaWYgdGVzdCAieCRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmciID0geHll czsgdGhlbgotKyAgICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSdlY2hvICJ7IGdsb2JhbDoi ID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAgY2F0ICRleHBvcnRfc3ltYm9s cyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVy fgotKwkgICAgZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52 ZXJ+Ci0rCSAgICAkQ0MgJyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS12 ZXJzaW9uLXNjcmlwdCAke3dsfSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJwot KyAgICAgICAgZmkKLSsKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJeGxmKikKLSsJICAjIElC TSBYTCBGb3J0cmFuIDEwLjEgb24gUFBDIGNhbm5vdCBjcmVhdGUgc2hhcmVkIGxpYnMgaXRzZWxm Ci0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Jy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5j ZSAtLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0KLSsJ ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSctcnBhdGggJGxpYmRpcicKLSsJICBhcmNo aXZlX2NtZHM9JyRMRCAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAt c29uYW1lICRzb25hbWUgLW8gJGxpYicKLSsJICBpZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVy c2lvbmluZyIgPSB4eWVzOyB0aGVuCi0rCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSdlY2hvICJ7 IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAgICBjYXQgJGV4 cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8k bGlibmFtZS52ZXJ+Ci0rCSAgICAgIGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpk aXIvJGxpYm5hbWUudmVyfgotKwkgICAgICAkTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIC12ZXJzaW9uLXNjcmlwdCAkb3V0cHV0X29i amRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKLSsJICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsgICAg ICBlbHNlCi0rICAgICAgICBsZF9zaGxpYnM9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0r ICAgIG5ldGJzZCopCi0rICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBf X0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbyAkbGliJwotKwl3bGFyYz0KLSsgICAg ICBlbHNlCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCWFyY2hpdmVf ZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRl eHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgc29s YXJpcyopCi0rICAgICAgaWYgJExEIC12IDI+JjEgfCAkR1JFUCAnQkZEIDJcLjgnID4gL2Rldi9u dWxsOyB0aGVuCi0rCWxkX3NobGlicz1ubwotKwljYXQgPDxfTFRfRU9GIDE+JjIKLSsKLSsqKiog V2FybmluZzogVGhlIHJlbGVhc2VzIDIuOC4qIG9mIHRoZSBHTlUgbGlua2VyIGNhbm5vdCByZWxp YWJseQotKyoqKiBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBTb2xhcmlzIHN5c3RlbXMuICBU aGVyZWZvcmUsIGxpYnRvb2wKLSsqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3Vw cG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCi0rKioqIGJpbnV0aWxzIHRvIHJlbGVh c2UgMi45LjEgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKLSsqKiogeW91 ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZlIGxpbmtl ciBpcwotKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgotKwotK19MVF9FT0YKLSsgICAgICBl bGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicg PiAvZGV2L251bGw7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicK LSsJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xz LWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rICAgICAgZWxzZQotKwlsZF9zaGxp YnM9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8 IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCopCi0rICAgICAgY2FzZSBgJExEIC12IDI+ JjFgIGluCi0rICAgICAgICAqXCBbMDFdLiogfCAqXCAyLlswLTldLiogfCAqXCAyLjFbMC01XS4q KQotKwlsZF9zaGxpYnM9bm8KLSsJY2F0IDw8X0xUX0VPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6 IFJlbGVhc2VzIG9mIHRoZSBHTlUgbGlua2VyIHByaW9yIHRvIDIuMTYuOTEuMC4zIGNhbiBub3QK LSsqKiogcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU0NPIHN5c3RlbXMuICBU aGVyZWZvcmUsIGxpYnRvb2wKLSsqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3Vw cG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCi0rKioqIGJpbnV0aWxzIHRvIHJlbGVh c2UgMi4xNi45MS4wLjMgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKLSsq KiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZl IGxpbmtlciBpcwotKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgotKwotK19MVF9FT0YKLSsJ OzsKLSsJKikKLSsJICAjIEZvciBzZWN1cml0eSByZWFzb25zLCBpdCBpcyBoaWdobHkgcmVjb21t ZW5kZWQgdGhhdCB5b3UgYWx3YXlzCi0rCSAgIyB1c2UgYWJzb2x1dGUgcGF0aHMgZm9yIG5hbWlu ZyBzaGFyZWQgbGlicmFyaWVzLCBhbmQgZXhjbHVkZSB0aGUKLSsJICAjIERUX1JVTlBBVEggdGFn IGZyb20gZXhlY3V0YWJsZXMgYW5kIGxpYnJhcmllcy4gIEJ1dCBkb2luZyBzbwotKwkgICMgcmVx dWlyZXMgdGhhdCB5b3UgY29tcGlsZSBldmVyeXRoaW5nIHR3aWNlLCB3aGljaCBpcyBhIHBhaW4u Ci0rCSAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6Liog ZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0n JHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJl ZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25h bWUgLW8gJGxpYicKLSsJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3ds fS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKwkgIGVs c2UKLSsJICAgIGxkX3NobGlicz1ubwotKwkgIGZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAg IDs7Ci0rCi0rICAgIHN1bm9zNCopCi0rICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLWFzc2VydCBw dXJlLXRleHQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2Zs YWdzJwotKyAgICAgIHdsYXJjPQotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsgICAgICBo YXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBp ZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4g L2Rldi9udWxsOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0r CWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1m aWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJbGRfc2hsaWJz PW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIGlmIHRlc3QgIiRs ZF9zaGxpYnMiID0gbm87IHRoZW4KLSsgICAgICBydW5wYXRoX3Zhcj0KLSsgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPQotKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0KLSsg ICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KLSsgICAgZmkKLSsgIGVsc2UKLSsgICAgIyBQ T1JUTUUgZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lzdGVtJ3MgbGlua2VyIChub3Qg R05VIGxkKQotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGFpeDMqKQotKyAgICAgIGFsbG93 X3VuZGVmaW5lZF9mbGFnPXVuc3VwcG9ydGVkCi0rICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xz PXllcwotKyAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRMRCAtbyAkb3V0cHV0X29iamRpci8k c29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLWJFOiRleHBvcnRfc3ltYm9s cyAtVDUxMiAtSDUxMiAtYk06U1JFfiRBUiAkQVJfRkxBR1MgJGxpYiAkb3V0cHV0X29iamRpci8k c29uYW1lJwotKyAgICAgICMgTm90ZTogdGhpcyBsaW5rZXIgaGFyZGNvZGVzIHRoZSBkaXJlY3Rv cmllcyBpbiBMSUJQQVRIIGlmIHRoZXJlCi0rICAgICAgIyBhcmUgbm8gZGlyZWN0b3JpZXMgc3Bl Y2lmaWVkIGJ5IC1MLgotKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rICAgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAteiAiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIjsgdGhl bgotKwkjIE5laXRoZXIgZGlyZWN0IGhhcmRjb2Rpbmcgbm9yIHN0YXRpYyBsaW5raW5nIGlzIHN1 cHBvcnRlZCB3aXRoIGEKLSsJIyBicm9rZW4gY29sbGVjdDIuCi0rCWhhcmRjb2RlX2RpcmVjdD11 bnN1cHBvcnRlZAotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYWl4WzQtOV0qKQotKyAg ICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSMgT24gSUE2NCwgdGhlIGxp bmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwgc28gd2UgZG9uJ3QKLSsJIyBo YXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCi0rCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8K LSsJZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcKLSsJbm9fZW50cnlfZmxhZz0iIgotKyAgICAgIGVs c2UKLSsJIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1D IiBvcHRpb24uCi0rCSMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9u J3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KLSsJaWYgJE5NIC1WIDI+JjEgfCAkR1JFUCAnR05VJyA+ IC9kZXYvbnVsbDsgdGhlbgotKwkgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAtQnBnICRsaWJv YmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIg PT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoc3Vic3RyKFwkIDMsMSwxKSAhPSAiLiIpKSB7 IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCi0rCWVsc2UK LSsJICBleHBvcnRfc3ltYm9sc19jbWRzPSckTk0gLUJDcGcgJGxpYm9ianMgJGNvbnZlbmllbmNl IHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAy ID09ICJCIikpICYmIChzdWJzdHIoXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0n XCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKLSsJZmkKLSsJYWl4X3VzZV9ydW50aW1l bGlua2luZz1ubwotKwotKwkjIFRlc3QgaWYgd2UgYXJlIHRyeWluZyB0byB1c2UgcnVuIHRpbWUg bGlua2luZyBvciBub3JtYWwKLSsJIyBBSVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwgaXMgc29t ZXdoZXJlIGluIExERkxBR1MsIHdlCi0rCSMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtpbmcuCi0r CWNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMjNdfGFpeDQuWzIzXS4qfGFpeFs1LTldKikKLSsJICBm b3IgbGRfZmxhZyBpbiAkTERGTEFHUzsgZG8KLSsJICBpZiAodGVzdCAkbGRfZmxhZyA9ICItYnJ0 bCIgfHwgdGVzdCAkbGRfZmxhZyA9ICItV2wsLWJydGwiKTsgdGhlbgotKwkgICAgYWl4X3VzZV9y dW50aW1lbGlua2luZz15ZXMKLSsJICAgIGJyZWFrCi0rCSAgZmkKLSsJICBkb25lCi0rCSAgOzsK LSsJZXNhYwotKwotKwlleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0JwotKwlub19lbnRyeV9mbGFnPSct Ym5vZW50cnknCi0rICAgICAgZmkKLSsKLSsgICAgICAjIFdoZW4gbGFyZ2UgZXhlY3V0YWJsZXMg b3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQgY2FuCi0rICAgICAgIyBoYXZlIHBy b2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElmIGxpbmtpbmcgYSBsaWJy YXJ5Ci0rICAgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMgaW4gImVycm9yIFRPQyBvdmVyZmxvdyIg YWRkIC1tbWluaW1hbC10b2MgdG8KLSsgICAgICAjIENYWEZMQUdTL0NGTEFHUyBmb3IgZysrL2dj Yy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5vdAotKyAgICAgICMgZW5vdWdoIHRvIGZp eCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgotKwotKyAgICAgIGFy Y2hpdmVfY21kcz0nJwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsgICAgICBoYXJkY29k ZV9kaXJlY3RfYWJzb2x1dGU9eWVzCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0n OicKLSsgICAgICBsaW5rX2FsbF9kZXBsaWJzPXllcwotKyAgICAgIGZpbGVfbGlzdF9zcGVjPSck e3dsfS1mLCcKLSsKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwljYXNlICRo b3N0X29zIGluIGFpeDQuWzAxMl18YWl4NC5bMDEyXS4qKQotKwkjIFdlIG9ubHkgd2FudCB0byBk byB0aGlzIG9uIEFJWCA0LjIgYW5kIGxvd2VyLCB0aGUgY2hlY2sKLSsJIyBiZWxvdyBmb3IgYnJv a2VuIGNvbGxlY3QyIGRvZXNuJ3Qgd29yayB1bmRlciA0LjMrCi0rCSAgY29sbGVjdDJuYW1lPWAk e0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxlY3QyYAotKwkgIGlmIHRlc3QgLWYgIiRjb2xsZWN0 Mm5hbWUiICYmCi0rCSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgJEdSRVAgcmVzb2x2ZV9s aWJfbmFtZSA+L2Rldi9udWxsCi0rCSAgdGhlbgotKwkgICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xs ZWN0MgotKwkgIDoKLSsJICBlbHNlCi0rCSAgIyBXZSBoYXZlIG9sZCBjb2xsZWN0MgotKwkgIGhh cmRjb2RlX2RpcmVjdD11bnN1cHBvcnRlZAotKwkgICMgSXQgZmFpbHMgdG8gZmluZCB1bmluc3Rh bGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQKLSsJICAjIHBhdGggaXMgbm90IGxp c3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRpbmcgaGFyZGNvZGVfbWludXNfTAotKwkgICMgdG8g dW5zdXBwb3J0ZWQgZm9yY2VzIHJlbGlua2luZwotKwkgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0r CSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJwotKwkgIGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3I9Ci0rCSAgZmkKLSsJICA7OwotKwllc2FjCi0rCXNoYXJlZF9mbGFnPSct c2hhcmVkJwotKwlpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4K LSsJICBzaGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFnICInJHt3bH0tRycKLSsJZmkKLSsgICAgICBl bHNlCi0rCSMgbm90IHVzaW5nIGdjYwotKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhl bgotKwkjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0LCBC ZXRhIDMgUmVsZWFzZQotKwkjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBp cyBjb3JyZWN0OgotKwkgIHNoYXJlZF9mbGFnPSctRycKLSsJZWxzZQotKwkgIGlmIHRlc3QgIiRh aXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkgICAgc2hhcmVkX2ZsYWc9JyR7 d2x9LUcnCi0rCSAgZWxzZQotKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKLSsJICBm aQotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPSck e3dsfS1iZXhwYWxsJwotKyAgICAgICMgSXQgc2VlbXMgdGhhdCAtYmV4cGFsbCBkb2VzIG5vdCBl eHBvcnQgc3ltYm9scyBiZWdpbm5pbmcgd2l0aAotKyAgICAgICMgdW5kZXJzY29yZSAoXyksIHNv IGl0IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0byBleHBvcnQuCi0r ICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzPXllcwotKyAgICAgIGlmIHRlc3QgIiRhaXhfdXNl X3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5n IHRoZSBvdGhlciBydW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRsKSwKLSsJIyAtYmVyb2sgd2ls bCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5Lgot KwlhbGxvd191bmRlZmluZWRfZmxhZz0nLWJlcm9rJwotKyAgICAgICAgIyBEZXRlcm1pbmUgdGhl IGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCi0rICAgICAgICAj IGVtcHR5IGV4ZWN1dGFibGUuCi0rICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4g MDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19l eGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAo ZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJ IHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3Qg IiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4 ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rCi0rbHRfYWl4X2xpYnBhdGhfc2VkPScKLSsgICAgL0lt cG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8gewotKwkvXjAvIHsKLSsJICAgIHMvXjAgICpcKC4qXCkk L1wxLwotKwkgICAgcAotKwl9Ci0rICAgIH0nCi0rYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRl c3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3Nl ZCJgCi0rIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRo aW5nLgotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KLSsgIGFpeF9saWJwYXRoPWBk dW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRs dF9haXhfbGlicGF0aF9zZWQiYAotK2ZpCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQotKwotKwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAot KyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0raWYgdGVzdCAteiAi JGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCi0rCi0r ICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ibGlicGF0aDokbGliZGly OiciJGFpeF9saWJwYXRoIgotKyAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1vICRv dXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlf ZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAieCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9 IiAhPSAieCI7IHRoZW4gJEVDSE8gIlgke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiB8ICRY c2VkOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAk c2hhcmVkX2ZsYWciCi0rICAgICAgZWxzZQotKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsg dGhlbgotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LVIgJGxpYmRpcjovdXNy L2xpYjovbGliJwotKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSIteiBub2RlZnMiCi0rCSAgYXJj aGl2ZV9leHBzeW1fY21kcz0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8k c29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2Zs YWc6XCRleHBvcnRfc3ltYm9scyIKLSsJZWxzZQotKwkgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQg bGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCi0rCSAjIGVtcHR5IGV4ZWN1dGFi bGUuCi0rCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAg Ki8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2lu dAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0g LWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9 IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNh YwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK LSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNv bmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l cjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3Qu ZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJv cl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3Qg LXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0g eWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVu Ci0rCi0rbHRfYWl4X2xpYnBhdGhfc2VkPScKLSsgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9e JC8gewotKwkvXjAvIHsKLSsJICAgIHMvXjAgICpcKC4qXCkkL1wxLwotKwkgICAgcAotKwl9Ci0r ICAgIH0nCi0rYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9u dWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rIyBDaGVjayBmb3IgYSA2 NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotK2lmIHRlc3QgLXogIiRh aXhfbGlicGF0aCI7IHRoZW4KLSsgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFj X2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAot K2ZpCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0rCi0rcm0g LXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbiBh aXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCi0rCi0rCSBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwkgICMgV2Fy bmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCi0r CSAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJy b2tlbiBsaWJyYXJ5LgotKwkgIG5vX3VuZGVmaW5lZF9mbGFnPScgJHt3bH0tYmVybm90b2snCi0r CSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAke3dsfS1iZXJvaycKLSsJICAjIEV4cG9ydGVkIHN5 bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKLSsJ ICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJGNvbnZlbmllbmNlJwotKwkgIGFyY2hpdmVfY21k c19uZWVkX2xjPXllcwotKwkgICMgVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBBSVggdHJhZGl0aW9u YWxseSBidWlsZHMgaXRzIHNoYXJlZCBsaWJyYXJpZXMuCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21k cz0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpz ICRkZXBsaWJzICR7d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTokZXhwb3J0 X3N5bWJvbHMke2FsbG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lJHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29uYW1lJwotKwlmaQotKyAg ICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgY2FzZSAkaG9zdF9j cHUgaW4KLSsgICAgICBwb3dlcnBjKQotKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQg QW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsgICAgICAgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hh cmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNv bmFtZSAtbyAkbGliJwotKyAgICAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JycKLSsgICAg ICAgIDs7Ci0rICAgICAgbTY4aykKLSsgICAgICAgICAgICBhcmNoaXZlX2NtZHM9JyRSTSAkb3V0 cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUi ID4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBMSUJSQVJZ X0lEIDEiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUg VkVSU0lPTiAkbWFqb3IiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8g IiNkZWZpbmUgUkVWSVNJT04gJHJldmlzaW9uIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFy eS5kYXRhfiRBUiAkQVJfRkxBR1MgJGxpYiAkbGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRw dXRfb2JqZGlyICYmIGEyaXhsaWJyYXJ5IC0zMiknCi0rICAgICAgICAgICAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJwotKyAgICAgICAgICAgIGhhcmRjb2RlX21pbnVzX0w9 eWVzCi0rICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBic2RpWzQ1 XSopCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPS1yZHluYW1pYwotKyAgICAgIDs7 Ci0rCi0rICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKLSsgICAgICAjIFdo ZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZwot KyAgICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCi0rICAgICAgIyBoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBpcwotKyAgICAgICMg bm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Yz0nICcKLSsgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAotKyAgICAgICMg VGVsbCBsdG1haW4gdG8gbWFrZSAubGliIGZpbGVzLCBub3QgLmEgZmlsZXMuCi0rICAgICAgbGli ZXh0PWxpYgotKyAgICAgICMgVGVsbCBsdG1haW4gdG8gbWFrZSAuZGxsIGZpbGVzLCBub3QgLnNv IGZpbGVzLgotKyAgICAgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAgICAgICMgRklYTUU6IFNldHRp bmcgbGlua25hbWVzIGhlcmUgaXMgYSBiYWQgaGFjay4KLSsgICAgICBhcmNoaXZlX2NtZHM9JyRD QyAtbyAkbGliICRsaWJvYmpzICRjb21waWxlcl9mbGFncyBgJEVDSE8gIlgkZGVwbGlicyIgfCAk WHNlZCAtZSAnXCcncy8gLWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9JwotKyAgICAg ICMgVGhlIGxpbmtlciB3aWxsIGF1dG9tYXRpY2FsbHkgYnVpbGQgYSAubGliIGZpbGUgaWYgd2Ug YnVpbGQgYSBETEwuCi0rICAgICAgb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0ndHJ1ZScKLSsg ICAgICAjIEZJWE1FOiBTaG91bGQgbGV0IHRoZSB1c2VyIHNwZWNpZnkgdGhlIGxpYiBwcm9ncmFt LgotKyAgICAgIG9sZF9hcmNoaXZlX2NtZHM9J2xpYiAtT1VUOiRvbGRsaWIkb2xkb2JqcyRvbGRf ZGVwbGlicycKLSsgICAgICBmaXhfc3JjZmlsZV9wYXRoPSdgY3lncGF0aCAtdyAiJHNyY2ZpbGUi YCcKLSsgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPXllcwotKyAgICAg IDs7Ci0rCi0rICAgIGRhcndpbiogfCByaGFwc29keSopCi0rCi0rCi0rICBhcmNoaXZlX2NtZHNf bmVlZF9sYz1ubwotKyAgaGFyZGNvZGVfZGlyZWN0PW5vCi0rICBoYXJkY29kZV9hdXRvbWF0aWM9 eWVzCi0rICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPXVuc3VwcG9ydGVkCi0rICB3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlYz0nJwotKyAgbGlua19hbGxfZGVwbGlicz15ZXMKLSsgIGFsbG93X3VuZGVm aW5lZF9mbGFnPSIkX2x0X2Rhcl9hbGxvd191bmRlZmluZWQiCi0rICBjYXNlICRjY19iYXNlbmFt ZSBpbgotKyAgICAgaWZvcnQqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9eWVzIDs7Ci0rICAgICAqKSBf bHRfZGFyX2Nhbl9zaGFyZWQ9JEdDQyA7OwotKyAgZXNhYwotKyAgaWYgdGVzdCAiJF9sdF9kYXJf Y2FuX3NoYXJlZCIgPSAieWVzIjsgdGhlbgotKyAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD1l Y2hvCi0rICAgIGFyY2hpdmVfY21kcz0iXCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5l ZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5z dGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9kYXJfc2luZ2xlX21v ZCR7X2x0X2RzeW11dGlsfSIKLSsgICAgbW9kdWxlX2NtZHM9IlwkQ0MgXCRhbGxvd191bmRlZmlu ZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9m bGFncyR7X2x0X2RzeW11dGlsfSIKLSsgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0ic2VkICdzLF4s XywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1i b2xzLmV4cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRs aWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRy cGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJf ZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICBtb2R1bGVfZXhwc3ltX2NtZHM9InNl ZCAtZSAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGli bmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGli IC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZGFyX2V4 cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKLSsKLSsgIGVsc2UKLSsgIGxkX3NobGlicz1ubwot KyAgZmkKLSsKLSsgICAgICA7OwotKwotKyAgICBkZ3V4KikKLSsgICAgICBhcmNoaXZlX2NtZHM9 JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFn cycKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0rICAgICAg aGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIDs7Ci0rCi0rICAgIGZyZWVic2QxKikK LSsgICAgICBsZF9zaGxpYnM9bm8KLSsgICAgICA7OwotKwotKyAgICAjIEZyZWVCU0QgMi4yLlsw MTJdIGFsbG93cyB1cyB0byBpbmNsdWRlIGMrK3J0MC5vIHRvIGdldCBDKysgY29uc3RydWN0b3IK LSsgICAgIyBzdXBwb3J0LiAgRnV0dXJlIHZlcnNpb25zIGRvIHRoaXMgYXV0b21hdGljYWxseSwg YnV0IGFuIGV4cGxpY2l0IGMrK3J0MC5vCi0rICAgICMgZG9lcyBub3QgYnJlYWsgYW55dGhpbmcs IGFuZCBoZWxwcyBzaWduaWZpY2FudGx5IChhdCB0aGUgY29zdCBvZiBhIGxpdHRsZQotKyAgICAj IGV4dHJhIHNwYWNlKS4KLSsgICAgZnJlZWJzZDIuMiopCi0rICAgICAgYXJjaGl2ZV9jbWRzPSck TEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC91 c3IvbGliL2MrK3J0MC5vJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxp YmRpcicKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rICAgICAgaGFyZGNvZGVfc2hsaWJw YXRoX3Zhcj1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgVW5mb3J0dW5hdGVseSwgb2xkZXIgdmVy c2lvbnMgb2YgRnJlZUJTRCAyIGRvIG5vdCBoYXZlIHRoaXMgZmVhdHVyZS4KLSsgICAgZnJlZWJz ZDIqKQotKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0r ICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFy PW5vCi0rICAgICAgOzsKLSsKLSsgICAgIyBGcmVlQlNEIDMgYW5kIGdyZWF0ZXIgdXNlcyBnY2Mg LXNoYXJlZCB0byBkbyBzaGFyZWQgbGlicmFyaWVzLgotKyAgICBmcmVlYnNkKiB8IGRyYWdvbmZs eSopCi0rICAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj PSctUiRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcwotKyAgICAgIGhhcmRjb2Rl X3NobGlicGF0aF92YXI9bm8KLSsgICAgICA7OwotKwotKyAgICBocHV4OSopCi0rICAgICAgaWYg dGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzPSckUk0gJG91dHB1dF9vYmpk aXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGly IC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpk aXIvJHNvbmFtZSAkbGliJwotKyAgICAgIGVsc2UKLSsJYXJjaGl2ZV9jbWRzPSckUk0gJG91dHB1 dF9vYmpkaXIvJHNvbmFtZX4kTEQgLWIgK2IgJGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc350ZXN0ICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicK LSsgICAgICBmaQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9K2IgJHt3 bH0kbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotKyAgICAgIGhh cmRjb2RlX2RpcmVjdD15ZXMKLSsKLSsgICAgICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFs bHkgaW4gdGhlIHNlYXJjaCBQQVRILAotKyAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0 aW9uIG9mIHRoZSBsaWJyYXJ5LgotKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rICAgICAg ZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1FJwotKyAgICAgIDs7Ci0rCi0rICAgIGhw dXgxMCopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBu bzsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0k c29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHM9JyRMRCAt YiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQi ID0gbm87IHRoZW4KLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3dsfSRs aWJkaXInCi0rCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9JytiICRsaWJkaXInCi0rCWhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotKwloYXJkY29kZV9kaXJlY3Q9eWVzCi0rCWhhcmRj b2RlX2RpcmVjdF9hYnNvbHV0ZT15ZXMKLSsJZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3ds fS1FJwotKwkjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRI LAotKwkjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KLSsJaGFy ZGNvZGVfbWludXNfTD15ZXMKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGhwdXgxMSop Ci0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhl bgotKwljYXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0KikKLSsJICBhcmNoaXZlX2NtZHM9JyRD QyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWlhNjQqKQotKwkgIGFyY2hpdmVfY21kcz0nJEND IC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGgg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJKikK LSsJICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1l ICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGVsc2UKLSsJY2FzZSAkaG9z dF9jcHUgaW4KLSsJaHBwYSo2NCopCi0rCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLWIgJHt3bH0raCAk e3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0r CSAgOzsKLSsJaWE2NCopCi0rCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLWIgJHt3bH0raCAke3dsfSRz b25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJKikKLSsJICBhcmNoaXZlX2NtZHM9JyRDQyAtYiAke3ds fStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBm aQotKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwloYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjPScke3dsfStiICR7d2x9JGxpYmRpcicKLSsJaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvcj06Ci0rCi0rCWNhc2UgJGhvc3RfY3B1IGluCi0rCWhwcGEqNjQqfGlhNjQqKQot KwkgIGhhcmRjb2RlX2RpcmVjdD1ubwotKwkgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsJ ICA7OwotKwkqKQotKwkgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsJICBoYXJkY29kZV9kaXJlY3Rf YWJzb2x1dGU9eWVzCi0rCSAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1FJwotKwot KwkgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCi0r CSAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCi0rCSAgaGFy ZGNvZGVfbWludXNfTD15ZXMKLSsJICA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICA7Owot KwotKyAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKyAgICAgIGlmIHRlc3QgIiRH Q0MiID0geWVzOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4g IiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5n IiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3Nv X2xvY2F0aW9ucyAtbyAkbGliJwotKwkjIFRyeSB0byB1c2UgdGhlIC1leHBvcnRlZF9zeW1ib2wg bGQgb3B0aW9uLCBpZiBpdCBkb2VzIG5vdAotKwkjIHdvcmssIGFzc3VtZSB0aGF0IC1leHBvcnRz X2ZpbGUgZG9lcyBub3Qgd29yayBlaXRoZXIgYW5kCi0rCSMgaW1wbGljaXRseSBleHBvcnQgYWxs IHN5bWJvbHMuCi0rICAgICAgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgICAgICAgTERG TEFHUz0iJExERkxBR1MgLXNoYXJlZCAke3dsfS1leHBvcnRlZF9zeW1ib2wgJHt3bH1mb28gJHt3 bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9L2Rldi9udWxsIgotKyAgICAgICAgY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCi0raW50IGZvbyh2b2lkKSB7fQotK19BQ0VPRgotK3JtIC1mIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNf bGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVz dC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0r ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxh ZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8 fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAg YXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmci ICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAk e3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAk e3dsfS1leHBvcnRzX2ZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsKLStlbHNl Ci0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCi0rZmkKLSsKLStybSAtcmYgY29uZnRl c3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0 ZXN0LiRhY19leHQKLSsgICAgICAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCi0rICAgICAgZWxz ZQotKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJY LXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRw dXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJYXJjaGl2ZV9leHBzeW1fY21kcz0n JENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNv bmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0 cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0 aW9ucyAtZXhwb3J0c19maWxlICRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGZpCi0r ICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9J25vJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yPToKLSsgICAgICBpbmhlcml0X3JwYXRoPXllcwotKyAgICAgIGxpbmtfYWxs X2RlcGxpYnM9eWVzCi0rICAgICAgOzsKLSsKLSsgICAgbmV0YnNkKikKLSsgICAgICBpZiBlY2hv IF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKwlh cmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRs aW5rZXJfZmxhZ3MnICAjIGEub3V0Ci0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHM9JyRMRCAt c2hhcmVkIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICAgICAjIEVM RgotKyAgICAgIGZpCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGly JwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhf dmFyPW5vCi0rICAgICAgOzsKLSsKLSsgICAgbmV3c29zNikKLSsgICAgICBhcmNoaXZlX2NtZHM9 JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFn cycKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3I9OgotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICA7 OwotKwotKyAgICAqbnRvKiB8ICpxbngqKQotKyAgICAgIDs7Ci0rCi0rICAgIG9wZW5ic2QqKQot KyAgICAgIGlmIHRlc3QgLWYgL3Vzci9saWJleGVjL2xkLnNvOyB0aGVuCi0rCWhhcmRjb2RlX2Rp cmVjdD15ZXMKLSsJaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKwloYXJkY29kZV9kaXJlY3Rf YWJzb2x1dGU9eWVzCi0rCWlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRH UkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgt cG93ZXJwYyI7IHRoZW4KLSsJICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICBhcmNoaXZlX2V4 cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJv bHMnCi0rCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGgsJGxpYmRpcicK LSsJICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUUnCi0rCWVsc2UKLSsJICBjYXNl ICRob3N0X29zIGluCi0rCSAgIG9wZW5ic2RbMDFdLiogfCBvcGVuYnNkMi5bMC03XSB8IG9wZW5i c2QyLlswLTddLiopCi0rCSAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwkgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKLSsJICAgICA7OwotKwkgICAqKQotKwkgICAgIGFyY2hp dmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9 LXJwYXRoLCRsaWJkaXInCi0rCSAgICAgOzsKLSsJICBlc2FjCi0rCWZpCi0rICAgICAgZWxzZQot KwlsZF9zaGxpYnM9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIG9zMiopCi0rICAg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJwotKyAgICAgIGhhcmRjb2Rl X21pbnVzX0w9eWVzCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsg ICAgICBhcmNoaXZlX2NtZHM9JyRFQ0hPICJMSUJSQVJZICRsaWJuYW1lIElOSVRJTlNUQU5DRSIg PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gIkRFU0NSSVBUSU9OIFwiJGxpYm5h bWVcIiIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPIERBVEEgPj4gJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPICIgU0lOR0xFIE5PTlNIQVJFRCIgPj4gJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPIEVYUE9SVFMgPj4gJG91dHB1dF9vYmpkaXIvJGxp Ym5hbWUuZGVmfmVteGV4cCAkbGlib2JqcyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ JENDIC1aZGxsIC1aY3J0ZGxsIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKLSsgICAgICBvbGRfYXJjaGl2ZV9mcm9t X25ld19jbWRzPSdlbXhpbXAgLW8gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuYSAkb3V0cHV0X29i amRpci8kbGlibmFtZS5kZWYnCi0rICAgICAgOzsKLSsKLSsgICAgb3NmMyopCi0rICAgICAgaWYg dGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAke3dsfS1l eHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwotKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkJHth bGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJY JHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVf cmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKyAg ICAgIGVsc2UKLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXCon Ci0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIk dmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAt dXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0r ICAgICAgZmkKLSsgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sYz0nbm8nCi0rICAgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgIGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotKyAgICAgIDs7Ci0rCi0rICAgIG9zZjQqIHwgb3Nm NSopCSMgYXMgb3NmMyogd2l0aCB0aGUgYWRkaXRpb24gb2YgLW1zeW0gZmxhZwotKyAgICAgIGlm IHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWFsbG93X3VuZGVmaW5lZF9mbGFnPScgJHt3bH0t ZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCR7 YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmci ICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAk e3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAt byAkbGliJwotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRs aWJkaXInCi0rICAgICAgZWxzZQotKwlhbGxvd191bmRlZmluZWRfZmxhZz0nIC1leHBlY3RfdW5y ZXNvbHZlZCBcKicKLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRz b25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJz dHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2Nh dGlvbnMgLW8gJGxpYicKLSsJYXJjaGl2ZV9leHBzeW1fY21kcz0nZm9yIGkgaW4gYGNhdCAkZXhw b3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGki ID4+ICRsaWIuZXhwOyBkb25lOyBwcmludGYgIiVzXFxuIiAiLWhpZGRlbiI+PiAkbGliLmV4cH4K LSsJJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAke3dsfS1pbnB1dCAke3dsfSRs aWIuZXhwICRjb21waWxlcl9mbGFncyAkbGlib2JqcyAkZGVwbGlicyAtc29uYW1lICRzb25hbWUg YHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmci IHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMg LW8gJGxpYn4kUk0gJGxpYi5leHAnCi0rCi0rCSMgQm90aCBjIGFuZCBjeHggY29tcGlsZXIgc3Vw cG9ydCAtcnBhdGggZGlyZWN0bHkKLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLXJwYXRo ICRsaWJkaXInCi0rICAgICAgZmkKLSsgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sYz0nbm8nCi0r ICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06Ci0rICAgICAgOzsKLSsKLSsgICAgc29s YXJpcyopCi0rICAgICAgbm9fdW5kZWZpbmVkX2ZsYWc9JyAteiBkZWZzJwotKyAgICAgIGlmIHRl c3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCXdsYXJjPScke3dsfScKLSsJYXJjaGl2ZV9jbWRzPSck Q0MgLXNoYXJlZCAke3dsfS16ICR7d2x9dGV4dCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJYXJjaGl2ZV9leHBzeW1fY21k cz0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VE IC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRs aWIuZXhwfgotKwkgICRDQyAtc2hhcmVkICR7d2x9LXogJHt3bH10ZXh0ICR7d2x9LU0gJHt3bH0k bGliLmV4cCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCi0rICAgICAgZWxzZQotKwljYXNlIGAkQ0MgLVYg Mj4mMWAgaW4KLSsJKiJDb21waWxlcnMgNS4wIiopCi0rCSAgd2xhcmM9JycKLSsJICBhcmNoaXZl X2NtZHM9JyRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oICRzb25hbWUgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHM9 J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAt ZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGli LmV4cH4KLSsJICAkTEQgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAk c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc34kUk0gJGxpYi5l eHAnCi0rCSAgOzsKLSsJKikKLSsJICB3bGFyYz0nJHt3bH0nCi0rCSAgYXJjaGl2ZV9jbWRzPSck Q0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8g InsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9c KC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4K LSsJICAkQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcK LSsJICA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjPSctUiRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAg IGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBzb2xhcmlzMi5bMC01XSB8IHNvbGFyaXMyLlswLTVd LiopIDs7Ci0rICAgICAgKikKLSsJIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgY29tYmluZSBh bmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKLSsJIyBidXQgdW5kZXJzdGFuZHMgYC16IGxpbmtl cl9mbGFnJy4gIEdDQyBkaXNjYXJkcyBpdCB3aXRob3V0IGAkd2wnLAotKwkjIGJ1dCBpcyBjYXJl ZnVsIGVub3VnaCBub3QgdG8gcmVvcmRlci4KLSsJIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJpcyAy LjYgKG1heWJlIDIuNS4xPykKLSsJaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJICB3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0teiAke3dsfWFsbGV4dHJhY3QkY29udmVuaWVuY2Ug JHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0JwotKwllbHNlCi0rCSAgd2hvbGVfYXJjaGl2ZV9m bGFnX3NwZWM9Jy16IGFsbGV4dHJhY3QkY29udmVuaWVuY2UgLXogZGVmYXVsdGV4dHJhY3QnCi0r CWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCi0rICAg ICAgOzsKLSsKLSsgICAgc3Vub3M0KikKLSsgICAgICBpZiB0ZXN0ICJ4JGhvc3RfdmVuZG9yIiA9 IHhzZXF1ZW50OyB0aGVuCi0rCSMgVXNlICRDQyB0byBsaW5rIHVuZGVyIHNlcXVlbnQsIGJlY2F1 c2UgaXQgdGhyb3dzIGluIHNvbWUgZXh0cmEgLm8KLSsJIyBmaWxlcyB0aGF0IG1ha2UgLmluaXQg YW5kIC5maW5pIHNlY3Rpb25zIHdvcmsuCi0rCWFyY2hpdmVfY21kcz0nJENDIC1HICR7d2x9LWgg JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAg ICBlbHNlCi0rCWFyY2hpdmVfY21kcz0nJExEIC1hc3NlcnQgcHVyZS10ZXh0IC1Cc3RhdGljIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBmaQotKyAgICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9k aXJlY3Q9eWVzCi0rICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKLSsgICAgICBoYXJkY29kZV9z aGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQpCi0rICAgICAgY2FzZSAk aG9zdF92ZW5kb3IgaW4KLSsJc25pKQotKwkgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25h bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwkgIGhhcmRjb2Rl X2RpcmVjdD15ZXMgIyBpcyB0aGlzIHJlYWxseSB0cnVlPz8/Ci0rCTs7Ci0rCXNpZW1lbnMpCi0r CSAgIyMgTEQgaXMgbGQgaXQgbWFrZXMgYSBQTEFNTElCCi0rCSAgIyMgQ0MganVzdCBtYWtlcyBh IEdyb3NzTW9kdWxlLgotKwkgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICByZWxvYWRfY21kcz0nJENDIC1yIC1vICRvdXRw dXQkcmVsb2FkX29ianMnCi0rCSAgaGFyZGNvZGVfZGlyZWN0PW5vCi0rICAgICAgICA7OwotKwlt b3Rvcm9sYSkKLSsJICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICBoYXJkY29kZV9kaXJlY3Q9bm8gI01v dG9yb2xhIG1hbnVhbCBzYXlzIHllcywgYnV0IG15IHRlc3RzIHNheSB0aGV5IGxpZQotKwk7Owot KyAgICAgIGVzYWMKLSsgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCi0rICAgICAgaGFy ZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0LjMqKQotKyAg ICAgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsg ICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9Jy1CZXhwb3J0JwotKyAgICAgIDs7Ci0rCi0r ICAgIHN5c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCi0rCWFyY2hp dmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlu a2VyX2ZsYWdzJwotKwloYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rCXJ1bnBhdGhfdmFyPUxE X1JVTl9QQVRICi0rCWhhcmRjb2RlX3J1bnBhdGhfdmFyPXllcwotKwlsZF9zaGxpYnM9eWVzCi0r ICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCp1dzIqIHwgc3lzdjVPcGVuVU5JWCog fCBzeXN2NVVuaXhXYXJlNy5bMDFdLlsxMF0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAuWzAy NF0qKQotKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFnPScke3dsfS16LHRleHQnCi0rICAgICAgYXJj aGl2ZV9jbWRzX25lZWRfbGM9bm8KLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0r ICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJwotKwotKyAgICAgIGlmIHRlc3QgIiRHQ0Mi ID0geWVzOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlhcmNoaXZlX2V4 cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3ds fS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0r ICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHM9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCWFyY2hpdmVfZXhwc3ltX2Nt ZHM9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsg ICAgICA7OwotKwotKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqKQotKyAgICAgICMg Tm90ZTogV2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ug d2UgZG8gbm90Ci0rICAgICAgIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBh bnkgc3ltYm9scyB1c2VkIGZyb20gbGliYyB0bwotKyAgICAgICMgYWx3YXlzIGJlIHVucmVzb2x2 ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGlicmFyeSB3b3VsZAotKyAgICAgICMgZXZl ciBsaW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRl eHQKLSsgICAgICAjIHRob3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1 dCBpc24ndCBhcyBoZWF2eS1oYW5kZWQKLSsgICAgICAjIGFzIC16IGRlZnMuCi0rICAgICAgbm9f dW5kZWZpbmVkX2ZsYWc9JyR7d2x9LXosdGV4dCcKLSsgICAgICBhbGxvd191bmRlZmluZWRfZmxh Zz0nJHt3bH0teixub2RlZnMnCi0rICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9bm8KLSsgICAg ICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0nJHt3bH0tUiwkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9 JzonCi0rICAgICAgbGlua19hbGxfZGVwbGlicz15ZXMKLSsgICAgICBleHBvcnRfZHluYW1pY19m bGFnX3NwZWM9JyR7d2x9LUJleHBvcnQnCi0rICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRI JwotKwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0n JENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfS1C ZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHM9JyRD QyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBv cnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICB1dHM0KikKLSsgICAg ICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRs aWJkaXInCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIDs7Ci0rCi0r ICAgICopCi0rICAgICAgbGRfc2hsaWJzPW5vCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAg ICBpZiB0ZXN0IHgkaG9zdF92ZW5kb3IgPSB4c25pOyB0aGVuCi0rICAgICAgY2FzZSAkaG9zdCBp bgotKyAgICAgIHN5c3Y0IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4zKiB8IHN5c3Y1KikKLSsJZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1CbGFyZ2VkeW5zeW0nCi0rCTs7Ci0rICAgICAg ZXNhYwotKyAgICBmaQotKyAgZmkKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkbGRfc2hsaWJzIiA+JjUKLSskYXNfZWNobyAiJGxkX3NobGlicyIgPiY2OyB9Ci0rdGVz dCAiJGxkX3NobGlicyIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCi0rCi0rd2l0aF9nbnVf bGQ9JHdpdGhfZ251X2xkCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rIwotKyMgRG8gd2UgbmVlZCB0byBleHBsaWNpdGx5IGxpbmsgbGliYz8KLSsjCi0rY2Fz ZSAieCRhcmNoaXZlX2NtZHNfbmVlZF9sYyIgaW4KLSt4fHh5ZXMpCi0rICAjIEFzc3VtZSAtbGMg c2hvdWxkIGJlIGFkZGVkCi0rICBhcmNoaXZlX2NtZHNfbmVlZF9sYz15ZXMKLSsKLSsgIGlmIHRl c3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAg ICBjYXNlICRhcmNoaXZlX2NtZHMgaW4KLSsgICAgKid+JyopCi0rICAgICAgIyBGSVhNRTogd2Ug bWF5IGhhdmUgdG8gZGVhbCB3aXRoIG11bHRpLWNvbW1hbmQgc2VxdWVuY2VzLgotKyAgICAgIDs7 Ci0rICAgICckQ0MgJyopCi0rICAgICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNvbXBpbGVyIGltcGxp Y2l0bHkgbGlua3Mgd2l0aCAtbGMgc2luY2Ugb24gc29tZQotKyAgICAgICMgc3lzdGVtcywgLWxn Y2MgaGFzIHRvIGNvbWUgYmVmb3JlIC1sYy4gSWYgZ2NjIGFscmVhZHkgcGFzc2VzIC1sYwotKyAg ICAgICMgdG8gbGQsIGRvbid0IGFkZCAtbGMgYmVmb3JlIC1sZ2NjLgotKyAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGlj aXRseSBsaW5rZWQgaW4iID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgLWxjIHNo b3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbi4uLiAiID4mNjsgfQotKyAgICAgICRSTSBjb25m dGVzdCoKLSsgICAgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0 ZXN0LiRhY19leHQKLSsKLSsgICAgICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBc IiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0rICBhY19z dGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgotKyAgICAg ICAgc29uYW1lPWNvbmZ0ZXN0Ci0rICAgICAgICBsaWI9Y29uZnRlc3QKLSsgICAgICAgIGxpYm9i anM9Y29uZnRlc3QuJGFjX29iamV4dAotKyAgICAgICAgZGVwbGlicz0KLSsgICAgICAgIHdsPSRs dF9wcm9nX2NvbXBpbGVyX3dsCi0rCXBpY19mbGFnPSRsdF9wcm9nX2NvbXBpbGVyX3BpYwotKyAg ICAgICAgY29tcGlsZXJfZmxhZ3M9LXYKLSsgICAgICAgIGxpbmtlcl9mbGFncz0tdgotKyAgICAg ICAgdmVyc3RyaW5nPQotKyAgICAgICAgb3V0cHV0X29iamRpcj0uCi0rICAgICAgICBsaWJuYW1l PWNvbmZ0ZXN0Ci0rICAgICAgICBsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnPSRhbGxvd191 bmRlZmluZWRfZmxhZwotKyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9Ci0rICAgICAgICBp ZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhcmNoaXZlX2NtZHMgMlw+XCYxIFx8 ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjFcIiIpID4mNQotKyAgKGV2YWwgJGFy Y2hpdmVfY21kcyAyXD5cJjEgXHwgJEdSRVAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMSkg Mj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLSsgICAgICAgIHRoZW4K LSsJICBhcmNoaXZlX2NtZHNfbmVlZF9sYz1ubwotKyAgICAgICAgZWxzZQotKwkgIGFyY2hpdmVf Y21kc19uZWVkX2xjPXllcwotKyAgICAgICAgZmkKLSsgICAgICAgIGFsbG93X3VuZGVmaW5lZF9m bGFnPSRsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnCi0rICAgICAgZWxzZQotKyAgICAgICAg Y2F0IGNvbmZ0ZXN0LmVyciAxPiY1Ci0rICAgICAgZmkKLSsgICAgICAkUk0gY29uZnRlc3QqCi0r ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFyY2hpdmVfY21kc19u ZWVkX2xjIiA+JjUKLSskYXNfZWNobyAiJGFyY2hpdmVfY21kc19uZWVkX2xjIiA+JjY7IH0KLSsg ICAgICA7OwotKyAgICBlc2FjCi0rICBmaQotKyAgOzsKLStlc2FjCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hh cmFjdGVyaXN0aWNzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBkeW5hbWljIGxpbmtlciBj aGFyYWN0ZXJpc3RpY3MuLi4gIiA+JjY7IH0KLSsKLStpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhl bgotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBkYXJ3aW4qKSBsdF9hd2tfYXJnPSIvXmxpYnJh cmllczovLC9MUi8iIDs7Ci0rICAgICopIGx0X2F3a19hcmc9Ii9ebGlicmFyaWVzOi8iIDs7Ci0r ICBlc2FjCi0rICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJzIHwg YXdrICRsdF9hd2tfYXJnIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGci YAotKyAgaWYgJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRHUkVQICc7JyA+L2Rldi9u dWxsIDsgdGhlbgotKyAgICAjIGlmIHRoZSBwYXRoIGNvbnRhaW5zICI7IiB0aGVuIHdlIGFzc3Vt ZSBpdCB0byBiZSB0aGUgc2VwYXJhdG9yCi0rICAgICMgb3RoZXJ3aXNlIGRlZmF1bHQgdG8gdGhl IHN0YW5kYXJkIHBhdGggc2VwYXJhdG9yIChpLmUuICI6IikgLSBpdCBpcwotKyAgICAjIGFzc3Vt ZWQgdGhhdCBubyBwYXJ0IG9mIGEgbm9ybWFsIHBhdGhuYW1lIGNvbnRhaW5zICI7IiBidXQgdGhh dCBzaG91bGQKLSsgICAgIyBva2F5IGluIHRoZSByZWFsIHdvcmxkIHdoZXJlICI7IiBpbiBkaXJw YXRocyBpcyBpdHNlbGYgcHJvYmxlbWF0aWMuCi0rICAgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRF Q0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKLSsgIGVsc2UK LSsgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8 ICRTRUQgIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAotKyAgZmkKLSsgICMgT2ssIG5vdyB3 ZSBoYXZlIHRoZSBwYXRoLCBzZXBhcmF0ZWQgYnkgc3BhY2VzLCB3ZSBjYW4gc3RlcCB0aHJvdWdo IGl0Ci0rICAjIGFuZCBhZGQgbXVsdGlsaWIgZGlyIGlmIG5lY2Vzc2FyeS4KLSsgIGx0X3RtcF9s dF9zZWFyY2hfcGF0aF9zcGVjPQotKyAgbHRfbXVsdGlfb3NfZGlyPWAkQ0MgJENQUEZMQUdTICRD RkxBR1MgJExERkxBR1MgLXByaW50LW11bHRpLW9zLWRpcmVjdG9yeSAyPi9kZXYvbnVsbGAKLSsg IGZvciBsdF9zeXNfcGF0aCBpbiAkbHRfc2VhcmNoX3BhdGhfc3BlYzsgZG8KLSsgICAgaWYgdGVz dCAtZCAiJGx0X3N5c19wYXRoLyRsdF9tdWx0aV9vc19kaXIiOyB0aGVuCi0rICAgICAgbHRfdG1w X2x0X3NlYXJjaF9wYXRoX3NwZWM9IiRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyAkbHRfc3lz X3BhdGgvJGx0X211bHRpX29zX2RpciIKLSsgICAgZWxzZQotKyAgICAgIHRlc3QgLWQgIiRsdF9z eXNfcGF0aCIgJiYgXAotKwlsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9z ZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNfcGF0aCIKLSsgICAgZmkKLSsgIGRvbmUKLSsgIGx0X3Nl YXJjaF9wYXRoX3NwZWM9YCRFQ0hPICRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyB8IGF3ayAn Ci0rQkVHSU4ge1JTPSIgIjsgRlM9Ii98XG4iO30gewotKyAgbHRfZm9vPSIiOwotKyAgbHRfY291 bnQ9MDsKLSsgIGZvciAobHRfaSA9IE5GOyBsdF9pID4gMDsgbHRfaS0tKSB7Ci0rICAgIGlmICgk bHRfaSAhPSAiIiAmJiAkbHRfaSAhPSAiLiIpIHsKLSsgICAgICBpZiAoJGx0X2kgPT0gIi4uIikg ewotKyAgICAgICAgbHRfY291bnQrKzsKLSsgICAgICB9IGVsc2UgewotKyAgICAgICAgaWYgKGx0 X2NvdW50ID09IDApIHsKLSsgICAgICAgICAgbHRfZm9vPSIvIiAkbHRfaSBsdF9mb287Ci0rICAg ICAgICB9IGVsc2UgewotKyAgICAgICAgICBsdF9jb3VudC0tOwotKyAgICAgICAgfQotKyAgICAg IH0KLSsgICAgfQotKyAgfQotKyAgaWYgKGx0X2ZvbyAhPSAiIikgeyBsdF9mcmVxW2x0X2Zvb10r KzsgfQotKyAgaWYgKGx0X2ZyZXFbbHRfZm9vXSA9PSAxKSB7IHByaW50IGx0X2ZvbzsgfQotK30n YAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAkbHRfc2VhcmNoX3BhdGhfc3Bl Y2AKLStlbHNlCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIgL3Vz ci9sb2NhbC9saWIiCi0rZmkKLStsaWJyYXJ5X25hbWVzX3NwZWM9Ci0rbGlibmFtZV9zcGVjPSds aWIkbmFtZScKLStzb25hbWVfc3BlYz0KLStzaHJleHRfY21kcz0iLnNvIgotK3Bvc3RpbnN0YWxs X2NtZHM9Ci0rcG9zdHVuaW5zdGFsbF9jbWRzPQotK2ZpbmlzaF9jbWRzPQotK2ZpbmlzaF9ldmFs PQotK3NobGlicGF0aF92YXI9Ci0rc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXVua25vd24K LSt2ZXJzaW9uX3R5cGU9bm9uZQotK2R5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKLStz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiIKLStuZWVkX2xpYl9wcmVm aXg9dW5rbm93bgotK2hhcmRjb2RlX2ludG9fbGlicz1ubwotKwotKyMgd2hlbiB5b3Ugc2V0IG5l ZWRfdmVyc2lvbiB0byBubywgbWFrZSBzdXJlIGl0IGRvZXMgbm90IGNhdXNlIC1zZXRfdmVyc2lv bgotKyMgZmxhZ3MgdG8gYmUgbGVmdCB3aXRob3V0IGFyZ3VtZW50cwotK25lZWRfdmVyc2lvbj11 bmtub3duCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotK2FpeDMqKQotKyAgdmVyc2lvbl90eXBlPWxp bnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUuYScKLSsgIHNobGlicGF0aF92YXI9TElCUEFUSAotKwot KyAgIyBBSVggMyBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpv ciB2ZXJzaW9uIHRvIHRoZSBuYW1lLgotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIDs7Ci0rCi0rYWl4WzQtOV0qKQotKyAgdmVyc2lv bl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwot KyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7 IHRoZW4KLSsgICAgIyBBSVggNSBzdXBwb3J0cyBJQTY0Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAg ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgZWxzZQotKyAgICAjIFdpdGggR0ND IHVwIHRvIDIuOTUueCwgY29sbGVjdDIgd291bGQgY3JlYXRlIGFuIGltcG9ydCBmaWxlCi0rICAg ICMgZm9yIGRlcGVuZGVuY2UgbGlicmFyaWVzLiAgVGhlIGltcG9ydCBmaWxlIHdvdWxkIHN0YXJ0 IHdpdGgKLSsgICAgIyB0aGUgbGluZSBgIyEgLicuICBUaGlzIHdvdWxkIGNhdXNlIHRoZSBnZW5l cmF0ZWQgbGlicmFyeSB0bwotKyAgICAjIGRlcGVuZCBvbiBgLicsIGFsd2F5cyBhbiBpbnZhbGlk IGxpYnJhcnkuICBUaGlzIHdhcyBmaXhlZCBpbgotKyAgICAjIGRldmVsb3BtZW50IHNuYXBzaG90 cyBvZiBHQ0MgcHJpb3IgdG8gMy4wLgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4 NCB8IGFpeDQuWzAxXSB8IGFpeDQuWzAxXS4qKQotKyAgICAgIGlmIHsgZWNobyAnI2lmIF9fR05V Q19fID4gMiB8fCAoX19HTlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA5NyknCi0rCSAg IGVjaG8gJyB5ZXMgJwotKwkgICBlY2hvICcjZW5kaWYnOyB9IHwgJHtDQ30gLUUgLSB8ICRHUkVQ IHllcyA+IC9kZXYvbnVsbDsgdGhlbgotKwk6Ci0rICAgICAgZWxzZQotKwljYW5fYnVpbGRfc2hh cmVkPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgICMgQUlYIChvbiBQ b3dlciopIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIGN1cnJlbnRseSB3ZSBjYW4gbm90 IGhhcmRjb2RlIGNvcnJlY3QKLSsgICAgIyBzb25hbWUgaW50byBleGVjdXRhYmxlLiBQcm9iYWJs eSB3ZSBjYW4gYWRkIHZlcnNpb25pbmcgc3VwcG9ydCB0bwotKyAgICAjIGNvbGxlY3QyLCBzbyBh ZGRpdGlvbmFsIGxpbmtzIGNhbiBiZSB1c2VmdWwgaW4gZnV0dXJlLgotKyAgICBpZiB0ZXN0ICIk YWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsgICAgICAjIElmIHVzaW5nIHJ1 biB0aW1lIGxpbmtpbmcgKG9uIEFJWCA0LjIgb3IgbGF0ZXIpIHVzZSBsaWI8bmFtZT4uc28KLSsg ICAgICAjIGluc3RlYWQgb2YgbGliPG5hbWU+LmEgdG8gbGV0IHBlb3BsZSBrbm93IHRoYXQgdGhl c2UgYXJlIG5vdAotKyAgICAgICMgdHlwaWNhbCBBSVggc2hhcmVkIGxpYnJhcmllcy4KLSsgICAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKLSsgICAgZWxzZQotKyAgICAgICMgV2UgcHJlc2VydmUgLmEgYXMgZXh0 ZW5zaW9uIGZvciBzaGFyZWQgbGlicmFyaWVzIHRocm91Z2ggQUlYNC4yCi0rICAgICAgIyBhbmQg bGF0ZXIgd2hlbiB3ZSBhcmUgbm90IGRvaW5nIHJ1biB0aW1lIGxpbmtpbmcuCi0rICAgICAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfS5hICRsaWJuYW1lLmEnCi0rICAg ICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicK LSsgICAgZmkKLSsgICAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICi0rICBmaQotKyAgOzsKLSsKLSth bWlnYW9zKikKLSsgIGNhc2UgJGhvc3RfY3B1IGluCi0rICBwb3dlcnBjKQotKyAgICAjIFNpbmNl IEp1bHkgMjAwNyBBbWlnYU9TNCBvZmZpY2lhbGx5IHN1cHBvcnRzIC5zbyBsaWJyYXJpZXMuCi0r ICAgICMgV2hlbiBjb21waWxpbmcgdGhlIGV4ZWN1dGFibGUsIGFkZCAtdXNlLWR5bmxkIC1Mc29i anM6IHRvIHRoZSBjb21waWxlbGluZS4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIDs7Ci0rICBt NjhrKQotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLml4bGlicmFyeSAkbGlibmFt ZS5hJwotKyAgICAjIENyZWF0ZSAke2xpYm5hbWV9X2l4bGlicmFyeS5hIGVudHJpZXMgaW4gL3N5 cy9saWJzLgotKyAgICBmaW5pc2hfZXZhbD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8qLml4bGli cmFyeSAyPi9kZXYvbnVsbGA7IGRvIGxpYm5hbWU9YCRFQ0hPICJYJGxpYiIgfCAkWHNlZCAtZSAn XCcncyVeLiovXChbXi9dKlwpXC5peGxpYnJhcnkkJVwxJSdcJydgOyB0ZXN0ICRSTSAvc3lzL2xp YnMvJHtsaWJuYW1lfV9peGxpYnJhcnkuYTsgJHNob3cgImNkIC9zeXMvbGlicyAmJiAkTE5fUyAk bGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEiOyBjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAk e2xpYm5hbWV9X2l4bGlicmFyeS5hIHx8IGV4aXQgMTsgZG9uZScKLSsgICAgOzsKLSsgIGVzYWMK LSsgIDs7Ci0rCi0rYmVvcyopCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3No YXJlZF9leHR9JwotKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgotKyAgc2hsaWJw YXRoX3Zhcj1MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rYnNkaVs0NV0qKQotKyAgdmVyc2lvbl90 eXBlPWxpbnV4Ci0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGZpbmlz aF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnICRsaWJkaXInCi0rICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvc2hs aWIgL3Vzci9saWIgL3Vzci9YMTEvbGliIC91c3IvY29udHJpYi9saWIgL2xpYiAvdXNyL2xvY2Fs L2xpYiIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vz ci9sb2NhbC9saWIiCi0rICAjIHRoZSBkZWZhdWx0IGxkLnNvLmNvbmYgYWxzbyBjb250YWlucyAv dXNyL2NvbnRyaWIvbGliIGFuZAotKyAgIyAvdXNyL1gxMVI2L2xpYiAoL3Vzci9YMTEgaXMgYSBs aW5rIHRvIC91c3IvWDExUjYpLCBidXQgbGV0IHVzIGFsbG93Ci0rICAjIGxpYnRvb2wgdG8gaGFy ZC1jb2RlIHRoZXNlIGludG8gcHJvZ3JhbXMKLSsgIDs7Ci0rCi0rY3lnd2luKiB8IG1pbmd3KiB8 IHB3MzIqIHwgY2VnY2MqKQotKyAgdmVyc2lvbl90eXBlPXdpbmRvd3MKLSsgIHNocmV4dF9jbWRz PSIuZGxsIgotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsKLSsg IGNhc2UgJEdDQywkaG9zdF9vcyBpbgotKyAgeWVzLGN5Z3dpbiogfCB5ZXMsbWluZ3cqIHwgeWVz LHB3MzIqIHwgeWVzLGNlZ2NjKikKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5k bGwuYScKLSsgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9z dGluc3RhbGxfY21kcwotKyAgICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1l IFwke2ZpbGV9YH4KLSsgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wn J1wke2Jhc2VfZmlsZX0nXCcnaTsgZWNobyBcJGRsbmFtZSdcJydgfgotKyAgICAgIGRsZGlyPSRk ZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KLSsgICAgICB0ZXN0IC1kIFwkZGxkaXIgfHwgbWtk aXIgLXAgXCRkbGRpcn4KLSsgICAgICAkaW5zdGFsbF9wcm9nICRkaXIvJGRsbmFtZSBcJGRsZGly LyRkbG5hbWV+Ci0rICAgICAgY2htb2QgYSt4IFwkZGxkaXIvJGRsbmFtZX4KLSsgICAgICBpZiB0 ZXN0IC1uICdcJyckc3RyaXBtZSdcJycgJiYgdGVzdCAtbiAnXCcnJHN0cmlwbGliJ1wnJzsgdGhl bgotKyAgICAgICAgZXZhbCAnXCcnJHN0cmlwbGliIFwkZGxkaXIvJGRsbmFtZSdcJycgfHwgZXhp dCBcJD87Ci0rICAgICAgZmknCi0rICAgIHBvc3R1bmluc3RhbGxfY21kcz0nZGxkbGw9YCRTSEVM TCAyPiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+Ci0rICAgICAgZGxwYXRo PSRkaXIvXCRkbGRsbH4KLSsgICAgICAgJFJNIFwkZGxwYXRoJwotKyAgICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgY3lnd2lu KikKLSsgICAgICAjIEN5Z3dpbiBETExzIHVzZSAnY3lnJyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xp YicKLSsgICAgICBzb25hbWVfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGli L2N5Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4 fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xp YiAvbGliL3czMmFwaSAvbGliIC91c3IvbG9jYWwvbGliIgotKyAgICAgIDs7Ci0rICAgIG1pbmd3 KiB8IGNlZ2NjKikKLSsgICAgICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlvbmFsICdsaWInIHBy ZWZpeAotKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRT RUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAgICBzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCAkR1JFUCAiXmxp YnJhcmllczoiIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGciYAotKyAg ICAgIGlmICRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRHUkVQICc7W2MtekMt Wl06LycgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgIyBJdCBpcyBtb3N0IHByb2JhYmx5IGEg V2luZG93cyBmb3JtYXQgUEFUSCBwcmludGVkIGJ5Ci0rICAgICAgICAjIG1pbmd3IGdjYywgYnV0 IHdlIGFyZSBydW5uaW5nIG9uIEN5Z3dpbi4gR2NjIHByaW50cyBpdHMgc2VhcmNoCi0rICAgICAg ICAjIHBhdGggd2l0aCA7IHNlcGFyYXRvcnMsIGFuZCB3aXRoIGRyaXZlIGxldHRlcnMuIFdlIGNh biBoYW5kbGUgdGhlCi0rICAgICAgICAjIGRyaXZlIGxldHRlcnMgKGN5Z3dpbiBmaWxldXRpbHMg dW5kZXJzdGFuZHMgdGhlbSksIHNvIGxlYXZlIHRoZW0sCi0rICAgICAgICAjIGVzcGVjaWFsbHkg YXMgd2UgbWlnaHQgcGFzcyBmaWxlcyBmb3VuZCB0aGVyZSB0byBhIG1pbmd3IG9iamR1bXAsCi0r ICAgICAgICAjIHdoaWNoIHdvdWxkbid0IHVuZGVyc3RhbmQgYSBjeWd3aW5pZmllZCBwYXRoLiBB aGguCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAotKyAgICAgIGVsc2UKLSsgICAg ICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0rICAgICAgZmkKLSsg ICAgICA7OwotKyAgICBwdzMyKikKLSsgICAgICAjIHB3MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXgg cmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hvICR7bGli bmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9wdy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdz L1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgOzsKLSsgICAgZXNh YwotKyAgICA7OwotKwotKyAgKikKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFy ZWRfZXh0fSAkbGlibmFtZS5saWInCi0rICAgIDs7Ci0rICBlc2FjCi0rICBkeW5hbWljX2xpbmtl cj0nV2luMzIgbGQuZXhlJwotKyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFu ZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGluCi0rICBzaGxpYnBhdGhfdmFyPVBB VEgKLSsgIDs7Ci0rCi0rZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgIGR5bmFtaWNfbGlua2VyPSIk aG9zdF9vcyBkeWxkIgotKyAgdmVyc2lvbl90eXBlPWRhcndpbgotKyAgbmVlZF9saWJfcHJlZml4 PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0ICR7bGlibmFtZX0kc2hhcmVkX2V4dCcKLSsg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQnCi0r ICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBzaGxpYnBhdGhfdmFyPURZTERf TElCUkFSWV9QQVRICi0rICBzaHJleHRfY21kcz0nYHRlc3QgLiRtb2R1bGUgPSAueWVzICYmIGVj aG8gLnNvIHx8IGVjaG8gLmR5bGliYCcKLSsKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0i JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvdXNyL2xvY2FsL2xpYiIKLSsgIHN5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvbGliIC91c3IvbGliJwotKyAgOzsKLSsK LStkZ3V4KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0r ICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJGxpYm5hbWUkc2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJ QlJBUllfUEFUSAotKyAgOzsKLSsKLStmcmVlYnNkMSopCi0rICBkeW5hbWljX2xpbmtlcj1ubwot KyAgOzsKLSsKLStmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAjIERyYWdvbkZseSBkb2VzIG5v dCBoYXZlIGFvdXQuICBXaGVuL2lmIHRoZXkgaW1wbGVtZW50IGEgbmV3Ci0rICAjIHZlcnNpb25p bmcgbWVjaGFuaXNtLCBhZGp1c3QgdGhpcy4KLSsgIGlmIHRlc3QgLXggL3Vzci9iaW4vb2JqZm9y bWF0OyB0aGVuCi0rICAgIG9iamZvcm1hdD1gL3Vzci9iaW4vb2JqZm9ybWF0YAotKyAgZWxzZQot KyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGZyZWVic2RbMTIzXSopIG9iamZvcm1hdD1hb3V0 IDs7Ci0rICAgICopIG9iamZvcm1hdD1lbGYgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHZlcnNp b25fdHlwZT1mcmVlYnNkLSRvYmpmb3JtYXQKLSsgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgotKyAg ICBmcmVlYnNkLWVsZiopCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0r ICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgOzsKLSsgICAgZnJlZWJzZC0qKQotKyAg ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgICAgIG5lZWRf dmVyc2lvbj15ZXMKLSsgICAgICA7OwotKyAgZXNhYwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGZyZWVic2QyKikKLSsgICAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICA7OwotKyAgZnJlZWJzZDMuWzAxXSogfCBm cmVlYnNkZWxmMy5bMDFdKikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwot KyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIDs7Ci0rICBmcmVlYnNkMy5bMi05XSog fCBmcmVlYnNkZWxmMy5bMi05XSogfCBcCi0rICBmcmVlYnNkNC5bMC01XSB8IGZyZWVic2RlbGY0 LlswLTVdIHwgZnJlZWJzZDQuMS4xIHwgZnJlZWJzZGVsZjQuMS4xKQotKyAgICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICA7 OwotKyAgKikgIyBmcm9tIDQuNiBvbiwgYW5kIERyYWdvbkZseQotKyAgICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsK LSsgIGVzYWMKLSsgIDs7Ci0rCi0rZ251KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVl ZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0ke21ham9yfSAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScK LSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In Ci0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgaGFyZGNvZGVfaW50b19saWJz PXllcwotKyAgOzsKLSsKLStocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsgICMgR2l2ZSBh IHNvbmFtZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBtYWpvciB2ZXJzaW9uIHNvIHRoYXQgZGxkLnNs IHJlZnVzZXMgdG8KLSsgICMgbGluayBhZ2FpbnN0IG90aGVyIHZlcnNpb25zLgotKyAgdmVyc2lv bl90eXBlPXN1bm9zCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwot KyAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgIGlhNjQqKQotKyAgICBzaHJleHRfY21kcz0nLnNvJwot KyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9v cyBkbGQuc28iCi0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICAgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmll ZC4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGlmIHRlc3QgIlgkSFBVWF9JQTY0X01PREUi ID0gWDMyOyB0aGVuCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9o cHV4MzIgL3Vzci9sb2NhbC9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliIgotKyAgICBlbHNlCi0r ICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4NjQgL3Vzci9sb2Nh bC9saWIvaHB1eDY0IgotKyAgICBmaQotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0k c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7Ci0rICBocHBhKjY0KikKLSsgICAgc2hy ZXh0X2NtZHM9Jy5zbCcKLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICBkeW5hbWlj X2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSCAjIEhvdyBzaG91bGQgd2UgaGFuZGxlIFNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgotKyAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvcicKLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xp Yi9wYTIwXzY0IC91c3IvY2NzL2xpYi9wYTIwXzY0IgotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7Ci0rICAqKQotKyAgICBz aHJleHRfY21kcz0nLnNsJwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgot KyAgICBzaGxpYnBhdGhfdmFyPVNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPW5vICMgK3MgaXMgcmVxdWlyZWQgdG8gZW5hYmxlIFNITElCX1BBVEgKLSsgICAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hh cmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCi0rICAgIDs7Ci0rICBlc2FjCi0rICAjIEhQLVVYIHJ1bnMgKnJlYWxseSog c2xvd2x5IHVubGVzcyBzaGFyZWQgbGlicmFyaWVzIGFyZSBtb2RlIDU1NS4KLSsgIHBvc3RpbnN0 YWxsX2NtZHM9J2NobW9kIDU1NSAkbGliJwotKyAgOzsKLSsKLStpbnRlcml4WzMtOV0qKQotKyAg dmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lv bj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk e2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBkeW5hbWljX2xpbmtlcj0nSW50ZXJpeCAzLngg bGQuc28uMSAoUEUsIGxpa2UgRUxGKScKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI Ci0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhhcmRjb2RlX2ludG9fbGli cz15ZXMKLSsgIDs7Ci0rCi0raXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsgIGNhc2Ug JGhvc3Rfb3MgaW4KLSsgICAgbm9uc3RvcHV4KikgdmVyc2lvbl90eXBlPW5vbnN0b3B1eCA7Owot KyAgICAqKQotKwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCi0rCQl2 ZXJzaW9uX3R5cGU9bGludXgKLSsJZWxzZQotKwkJdmVyc2lvbl90eXBlPWlyaXgKLSsJZmkgOzsK LSsgIGVzYWMKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBz b25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgY2FzZSAk aG9zdF9vcyBpbgotKyAgaXJpeDUqIHwgbm9uc3RvcHV4KikKLSsgICAgbGlic3VmZj0gc2hsaWJz dWZmPQotKyAgICA7OwotKyAgKikKLSsgICAgY2FzZSAkTEQgaW4gIyBsaWJ0b29sLm00IHdpbGwg YWRkIG9uZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAotKyAgICAqLTMyfCoiLTMyICJ8Ki1tZWxm MzJic21pcHwqIi1tZWxmMzJic21pcCAiKQotKyAgICAgIGxpYnN1ZmY9IHNobGlic3VmZj0gbGli bWFnaWM9MzItYml0OzsKLSsgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJibWlwbjMyfCoiLW1l bGYzMmJtaXBuMzIgIikKLSsgICAgICBsaWJzdWZmPTMyIHNobGlic3VmZj1OMzIgbGlibWFnaWM9 TjMyOzsKLSsgICAgKi02NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxmNjRibWlwICIpCi0r ICAgICAgbGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0OzsKLSsgICAgKikg bGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7Ci0rICAgIGVzYWMKLSsg ICAgOzsKLSsgIGVzYWMKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7c2hsaWJzdWZmfV9Q QVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwv bGliJHtsaWJzdWZmfSIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7 bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7 OwotKwotKyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRsZCwgYW91dCwgb3Ig Y29mZi4KLStsaW51eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYqKQotKyAgZHlu YW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rCi0rIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgotK2xp bnV4KiB8IGsqYnNkKi1nbnUpCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3By ZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBmaW5pc2hf Y21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbiAkbGliZGlyJwotKyAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1u bwotKyAgIyBTb21lIGJpbnV0aWxzIGxkIGFyZSBwYXRjaGVkIHRvIHNldCBEVF9SVU5QQVRICi0r ICBzYXZlX0xERkxBR1M9JExERkxBR1MKLSsgIHNhdmVfbGliZGlyPSRsaWJkaXIKLSsgIGV2YWwg ImxpYmRpcj0vZm9vOyB3bD1cIiRsdF9wcm9nX2NvbXBpbGVyX3dsXCI7IFwKLSsgICAgICAgTERG TEFHUz1cIlwkTERGTEFHUyAkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiIgotKyAgY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0r Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0r ewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStj YXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsg IGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFz X3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgaWYgICgkT0JK RFVNUCAtcCBjb25mdGVzdCRhY19leGVleHQpIDI+L2Rldi9udWxsIHwgZ3JlcCAiUlVOUEFUSC4q JGxpYmRpciIgPi9kZXYvbnVsbDsgdGhlbgotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcwotK2ZpCi0rCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0g d2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2Zp Ci0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICBMREZMQUdTPSRzYXZlX0xERkxBR1MK LSsgIGxpYmRpcj0kc2F2ZV9saWJkaXIKLSsKLSsgICMgVGhpcyBpbXBsaWVzIG5vIGZhc3RfaW5z dGFsbCwgd2hpY2ggaXMgdW5hY2NlcHRhYmxlLgotKyAgIyBTb21lIHJld29yayB3aWxsIGJlIG5l ZWRlZCB0byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxsCi0rICAjIGJlZm9yZSB0aGlzIGNhbiBiZSBl bmFibGVkLgotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKwotKyAgIyBBZGQgQUJJLXNwZWNp ZmljIGRpcmVjdG9yaWVzIHRvIHRoZSBzeXN0ZW0gbGlicmFyeSBwYXRoLgotKyAgc3lzX2xpYl9k bHNlYXJjaF9wYXRoX3NwZWM9Ii9saWI2NCAvdXNyL2xpYjY0IC9saWIgL3Vzci9saWIiCi0rCi0r ICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBzZWFyY2ggcGF0aAotKyAgaWYg dGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KLSsgICAgbHRfbGRfZXh0cmE9YGF3ayAnL15p bmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+L2Rldi9udWxsIiwg XCQyKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcJDA7IHNraXAgPSAwOyB9JyA8 IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15bCSBdKmh3Y2FwWwkgXS9kO3Mv WzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAvIC9nOy9eJC9kJyB8IHRyICdcbicgJyAn YAotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfZGxzZWFyY2hfcGF0 aF9zcGVjICRsdF9sZF9leHRyYSIKLSsgIGZpCi0rCi0rICAjIFdlIHVzZWQgdG8gdGVzdCBmb3Ig L2xpYi9sZC5zby4xIGFuZCBkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMgb24KLSsgICMgcG93ZXJw YywgYmVjYXVzZSBNa0xpbnV4IG9ubHkgc3VwcG9ydGVkIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB0 aGUKLSsgICMgR05VIGR5bmFtaWMgbGlua2VyLiAgU2luY2UgdGhpcyB3YXMgYnJva2VuIHdpdGgg Y3Jvc3MgY29tcGlsZXJzLAotKyAgIyBtb3N0IHBvd2VycGMtbGludXggYm94ZXMgc3VwcG9ydCBk eW5hbWljIGxpbmtpbmcgdGhlc2UgZGF5cyBhbmQKLSsgICMgcGVvcGxlIGNhbiBhbHdheXMgLS1k aXNhYmxlLXNoYXJlZCwgdGhlIHRlc3Qgd2FzIHJlbW92ZWQsIGFuZCB3ZQotKyAgIyBhc3N1bWUg dGhlIEdOVS9MaW51eCBkeW5hbWljIGxpbmtlciBpcyBpbiB1c2UuCi0rICBkeW5hbWljX2xpbmtl cj0nR05VL0xpbnV4IGxkLnNvJwotKyAgOzsKLSsKLStuZXRic2QqKQotKyAgdmVyc2lvbl90eXBl PXN1bm9zCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgaWYg ZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4K LSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsgICAgZmlu aXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKLSsgICAg ZHluYW1pY19saW5rZXI9J05ldEJTRCAoYS5vdXQpIGxkLnNvJwotKyAgZWxzZQotKyAgICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3No YXJlZF9leHR9JwotKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yJwotKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIGxkLmVsZl9zbycKLSsg IGZpCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLStu ZXdzb3M2KQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 eWVzCi0rICA7OwotKwotKypudG8qIHwgKnFueCopCi0rICB2ZXJzaW9uX3R5cGU9cW54Ci0rICBu ZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0r ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwot KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgZHluYW1pY19saW5rZXI9 J2xkcW54LnNvJwotKyAgOzsKLSsKLStvcGVuYnNkKikKLSsgIHZlcnNpb25fdHlwZT1zdW5vcwot KyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIgotKyAgbmVlZF9saWJfcHJl Zml4PW5vCi0rICAjIFNvbWUgb2xkZXIgdmVyc2lvbnMgb2YgT3BlbkJTRCAoMy4zIGF0IGxlYXN0 KSAqZG8qIG5lZWQgdmVyc2lvbmVkIGxpYnMuCi0rICBjYXNlICRob3N0X29zIGluCi0rICAgIG9w ZW5ic2QzLjMgfCBvcGVuYnNkMy4zLiopCW5lZWRfdmVyc2lvbj15ZXMgOzsKLSsgICAgKikJCQkJ bmVlZF92ZXJzaW9uPW5vICA7OwotKyAgZXNhYwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCcKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxk Y29uZmlnIC1tICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAg aWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8 IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgot KyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgb3BlbmJzZDIuWzg5XSB8IG9wZW5ic2QyLls4 OV0uKikKLSsJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rCTs7Ci0rICAgICAgKikK LSsJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKwk7OwotKyAgICAgIGVzYWMKLSsg IGVsc2UKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgZmkKLSsgIDs7 Ci0rCi0rb3MyKikKLSsgIGxpYm5hbWVfc3BlYz0nJG5hbWUnCi0rICBzaHJleHRfY21kcz0iLmRs bCIKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFt ZSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUuYScKLSsgIGR5bmFtaWNfbGlua2VyPSdPUy8yIGxkLmV4 ZScKLSsgIHNobGlicGF0aF92YXI9TElCUEFUSAotKyAgOzsKLSsKLStvc2YzKiB8IG9zZjQqIHwg b3NmNSopCi0rICB2ZXJzaW9uX3R5cGU9b3NmCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5l ZWRfdmVyc2lvbj1ubwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvcicKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9zaGxpYiAvdXNyL2Nj cy9saWIgL3Vzci9saWIvY21wbHJzL2NjIC91c3IvbGliIC91c3IvbG9jYWwvbGliIC92YXIvc2hs aWIiCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYyIKLSsgIDs7Ci0rCi0rcmRvcyopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsK LStzb2xhcmlzKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5v Ci0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBo YXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAjIGxkZCBjb21wbGFpbnMgdW5sZXNzIGxpYnJhcmll cyBhcmUgZXhlY3V0YWJsZQotKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgK3ggJGxpYicKLSsg IDs7Ci0rCi0rc3Vub3M0KikKLSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBB VEg6L3Vzci9ldGMiIGxkY29uZmlnICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgaWYgdGVzdCAi JHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIGZp Ci0rICBuZWVkX3ZlcnNpb249eWVzCi0rICA7OwotKwotK3N5c3Y0IHwgc3lzdjQuMyopCi0rICB2 ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICi0rICBjYXNlICRob3N0X3ZlbmRvciBpbgotKyAgICBzbmkpCi0rICAgICAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5v Ci0rICAgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsgICAgICA7OwotKyAgICBzaWVtZW5z KQotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIDs7Ci0rICAgIG1vdG9yb2xhKQot KyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIG5lZWRfdmVyc2lvbj1ubwotKyAgICAg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICAgIHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz0nL2xpYiAvdXNyL2xpYiAvdXNyL2Njcy9saWInCi0rICAgICAgOzsKLSsgIGVzYWMK LSsgIDs7Ci0rCi0rc3lzdjQqTVAqKQotKyAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhlbgotKyAg ICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSR7 c2hhcmVkX2V4dH0uJHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yICRsaWJu YW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0 fS4kbWFqb3InCi0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBmaQotKyAg OzsKLSsKLStzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVO SVgqIHwgc3lzdjQqdXcyKikKLSsgIHZlcnNpb25fdHlwZT1mcmVlYnNkLWVsZgotKyAgbmVlZF9s aWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0 aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVz Ci0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0g eWVzOyB0aGVuCi0rICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIg L3Vzci9nbnUvbGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYiAvbGliJwotKyAgZWxzZQotKyAgICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvY2NzL2xpYiAvdXNyL2xpYicKLSsgICAgY2Fz ZSAkaG9zdF9vcyBpbgotKyAgICAgIHNjbzMuMnY1KikKLSsgICAgICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvbGliIgotKwk7OwotKyAgICBl c2FjCi0rICBmaQotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbGliJwotKyAg OzsKLSsKLSt0cGYqKQotKyAgIyBUUEYgaXMgYSBjcm9zcy10YXJnZXQgb25seS4gIFByZWZlcnJl ZCBjcm9zcy1ob3N0ID0gR05VL0xpbnV4LgotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVk X2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPW5vCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotK3V0czQqKQotKyAg dmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAotKyAgOzsKLSsKLSsqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7 Ci0rZXNhYwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRkeW5hbWljX2xp bmtlciIgPiY1Ci0rJGFzX2VjaG8gIiRkeW5hbWljX2xpbmtlciIgPiY2OyB9Ci0rdGVzdCAiJGR5 bmFtaWNfbGlua2VyIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KLSsKLSt2YXJpYWJsZXNf c2F2ZWRfZm9yX3JlbGluaz0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92YXIiCi0raWYg dGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgIHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSIk dmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJTEVSX1BBVEgg TElCUkFSWV9QQVRIIgotK2ZpCi0rCi0raWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX3NlYXJjaF9w YXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0i JGx0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKLStmaQotK2lmIHRlc3QgIiR7bHRfY3Zf c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHN5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCi0r ZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHBy b2dyYW1zIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFy eSBwYXRocyBpbnRvIHByb2dyYW1zLi4uICIgPiY2OyB9Ci0raGFyZGNvZGVfYWN0aW9uPQotK2lm IHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIiB8fAotKyAgIHRlc3QgLW4gIiRy dW5wYXRoX3ZhciIgfHwKLSsgICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSAiWHllcyIg OyB0aGVuCi0rCi0rICAjIFdlIGNhbiBoYXJkY29kZSBub24tZXhpc3RlbnQgZGlyZWN0b3JpZXMu Ci0rICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiAhPSBubyAmJgotKyAgICAgIyBJZiB0aGUg b25seSBtZWNoYW5pc20gdG8gYXZvaWQgaGFyZGNvZGluZyBpcyBzaGxpYnBhdGhfdmFyLCB3ZQot KyAgICAgIyBoYXZlIHRvIHJlbGluaywgb3RoZXJ3aXNlIHdlIG1pZ2h0IGxpbmsgd2l0aCBhbiBp bnN0YWxsZWQgbGlicmFyeQotKyAgICAgIyB3aGVuIHdlIHNob3VsZCBiZSBsaW5raW5nIHdpdGgg YSB5ZXQtdG8tYmUtaW5zdGFsbGVkIG9uZQotKyAgICAgIyMgdGVzdCAiJF9MVF9UQUdWQVIoaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhciwgKSIgIT0gbm8gJiYKLSsgICAgIHRlc3QgIiRoYXJkY29kZV9t aW51c19MIiAhPSBubzsgdGhlbgotKyAgICAjIExpbmtpbmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUg dGVtcG9yYXJ5IGxpYnJhcnkgZGlyZWN0b3J5LgotKyAgICBoYXJkY29kZV9hY3Rpb249cmVsaW5r Ci0rICBlbHNlCi0rICAgICMgV2UgY2FuIGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQgd2Ug Y2FuIGhhcmRjb2RlIG5vbmV4aXN0aW5nIGRpcnMuCi0rICAgIGhhcmRjb2RlX2FjdGlvbj1pbW1l ZGlhdGUKLSsgIGZpCi0rZWxzZQotKyAgIyBXZSBjYW5ub3QgaGFyZGNvZGUgYW55dGhpbmcsIG9y IGVsc2Ugd2UgY2FuIG9ubHkgaGFyZGNvZGUgZXhpc3RpbmcKLSsgICMgZGlyZWN0b3JpZXMuCi0r ICBoYXJkY29kZV9hY3Rpb249dW5zdXBwb3J0ZWQKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRoYXJkY29kZV9hY3Rpb24iID4mNQotKyRhc19lY2hvICIkaGFyZGNv ZGVfYWN0aW9uIiA+JjY7IH0KLSsKLStpZiB0ZXN0ICIkaGFyZGNvZGVfYWN0aW9uIiA9IHJlbGlu ayB8fAotKyAgIHRlc3QgIiRpbmhlcml0X3JwYXRoIiA9IHllczsgdGhlbgotKyAgIyBGYXN0IGlu c3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCi0rICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCi0r ZWxpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHllcyB8fAotKyAgICAg dGVzdCAiJGVuYWJsZV9zaGFyZWQiID0gbm87IHRoZW4KLSsgICMgRmFzdCBpbnN0YWxsYXRpb24g aXMgbm90IG5lY2Vzc2FyeQotKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1uZWVkbGVzcwotK2ZpCi0r Ci0rCi0rCi0rCi0rCi0rCi0rICBpZiB0ZXN0ICJ4JGVuYWJsZV9kbG9wZW4iICE9IHh5ZXM7IHRo ZW4KLSsgIGVuYWJsZV9kbG9wZW49dW5rbm93bgotKyAgZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25v d24KLSsgIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93bgotK2Vsc2UKLSsgIGx0X2N2 X2Rsb3Blbj1ubwotKyAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0rCi0rICBjYXNlICRob3N0X29zIGlu Ci0rICBiZW9zKikKLSsgICAgbHRfY3ZfZGxvcGVuPSJsb2FkX2FkZF9vbiIKLSsgICAgbHRfY3Zf ZGxvcGVuX2xpYnM9Ci0rICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcwotKyAgICA7OwotKwotKyAg bWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAgIGx0X2N2X2Rsb3Blbj0iTG9hZExpYnJhcnki Ci0rICAgIGx0X2N2X2Rsb3Blbl9saWJzPQotKyAgICA7OwotKwotKyAgY3lnd2luKikKLSsgICAg bHRfY3ZfZGxvcGVuPSJkbG9wZW4iCi0rICAgIGx0X2N2X2Rsb3Blbl9saWJzPQotKyAgICA7Owot KwotKyAgZGFyd2luKikKLSsgICMgaWYgbGliZGwgaXMgaW5zdGFsbGVkIHdlIG5lZWQgdG8gbGlu ayBhZ2FpbnN0IGl0Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgZGxvcGVuIGluIC1sZGwiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbG9wZW4g aW4gLWxkbC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfbGliX2RsX2Rsb3BlbitzZXR9 IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBh Y19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWxkbCAgJExJQlMiCi0rY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0r Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsvKiBPdmVycmlkZSBhbnkg R0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KLSsgICBVc2UgY2hhciBi ZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKLSsgICBidWls dGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAq LwotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIKLSsjZW5kaWYKLStjaGFyIGRsb3Bl biAoKTsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBkbG9wZW4gKCk7Ci0rICA7Ci0rICBy ZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIg aW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29u ZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJ IHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0 JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBhY19jdl9saWJfZGxfZGxvcGVuPXllcwot K2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY3ZfbGliX2RsX2Rsb3Bl bj1ubwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAg ICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tf bGliX3NhdmVfTElCUwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGFjX2N2X2xpYl9kbF9kbG9wZW4iID4mNQotKyRhc19lY2hvICIkYWNfY3ZfbGliX2RsX2Rsb3Bl biIgPiY2OyB9Ci0raWYgdGVzdCAieCRhY19jdl9saWJfZGxfZGxvcGVuIiA9IHgiInllczsgdGhl bgotKyAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIgotK2Vs c2UKLSsKLSsgICAgbHRfY3ZfZGxvcGVuPSJkeWxkIgotKyAgICBsdF9jdl9kbG9wZW5fbGlicz0K LSsgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzCi0rCi0rZmkKLSsKLSsgICAgOzsKLSsKLSsgICop Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc2hsX2xvYWQi ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBzaGxfbG9hZC4uLiAiID4mNjsgfQotK2lm IHRlc3QgIiR7YWNfY3ZfZnVuY19zaGxfbG9hZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNv bmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5k IGNvbmZkZWZzLmguICAqLwotKy8qIERlZmluZSBzaGxfbG9hZCB0byBhbiBpbm5vY3VvdXMgdmFy aWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIHNobF9sb2FkLgotKyAgIEZvciBleGFt cGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwotKyNk ZWZpbmUgc2hsX2xvYWQgaW5ub2N1b3VzX3NobF9sb2FkCi0rCi0rLyogU3lzdGVtIGhlYWRlciB0 byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAotKyAg ICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHNobF9sb2FkICgpOyBiZWxvdy4KLSsgICAg UHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBz aW5jZQotKyAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxl cnMuICAqLwotKwotKyNpZmRlZiBfX1NURENfXwotKyMgaW5jbHVkZSA8bGltaXRzLmg+Ci0rI2Vs c2UKLSsjIGluY2x1ZGUgPGFzc2VydC5oPgotKyNlbmRpZgotKwotKyN1bmRlZiBzaGxfbG9hZAot KwotKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVy cm9yLgotKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlw ZSBvZiBhIEdDQwotKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3 b3VsZCBzdGlsbCBhcHBseS4gICovCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJuICJDIgot KyNlbmRpZgotK2NoYXIgc2hsX2xvYWQgKCk7Ci0rLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5l cyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwotKyAgICB0byBhbHdheXMg ZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAotKyAg ICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFs aWFzLiAgKi8KLSsjaWYgZGVmaW5lZCBfX3N0dWJfc2hsX2xvYWQgfHwgZGVmaW5lZCBfX3N0dWJf X19zaGxfbG9hZAotK2Nob2tlIG1lCi0rI2VuZGlmCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSty ZXR1cm4gc2hsX2xvYWQgKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0g LWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9 IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNh YwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK LSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNv bmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l cjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3Qu ZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJv cl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3Qg LXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0g eWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVu Ci0rICBhY19jdl9mdW5jX3NobF9sb2FkPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKLSsKLSsJYWNfY3ZfZnVuY19zaGxfbG9hZD1ubwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0 ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25m dGVzdC4kYWNfZXh0Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfY3ZfZnVuY19zaGxfbG9hZCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9mdW5jX3NobF9sb2Fk IiA+JjY7IH0KLStpZiB0ZXN0ICJ4JGFjX2N2X2Z1bmNfc2hsX2xvYWQiID0geCIieWVzOyB0aGVu Ci0rICBsdF9jdl9kbG9wZW49InNobF9sb2FkIgotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3Igc2hsX2xvYWQgaW4gLWxkbGQiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGZvciBzaGxfbG9hZCBpbiAtbGRsZC4uLiAiID4mNjsgfQotK2lmIHRlc3Qg IiR7YWNfY3ZfbGliX2RsZF9zaGxfbG9hZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJT Ci0rTElCUz0iLWxkbGQgICRMSUJTIgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRl ZnMuaC4gICovCi0rCi0rLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8g YXZvaWQgYW4gZXJyb3IuCi0rICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhl IHJldHVybiB0eXBlIG9mIGEgR0NDCi0rICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQg cHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KLSsjaWZkZWYgX19jcGx1c3BsdXMKLStl eHRlcm4gIkMiCi0rI2VuZGlmCi0rY2hhciBzaGxfbG9hZCAoKTsKLStpbnQKLSttYWluICgpCi0r ewotK3JldHVybiBzaGxfbG9hZCAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YK LStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFj X3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAq XFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsK LStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNo b1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIp IDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0 ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25m dGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2Nf d2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYg dGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGlu ZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07 IHRoZW4KLSsgIGFjX2N2X2xpYl9kbGRfc2hsX2xvYWQ9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8g IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVz dC4kYWNfZXh0ID4mNQotKwotKwlhY19jdl9saWJfZGxkX3NobF9sb2FkPW5vCi0rZmkKLSsKLSty bSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNf ZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbGliX2RsZF9z aGxfbG9hZCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9saWJfZGxkX3NobF9sb2FkIiA+JjY7IH0K LStpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kbGRfc2hsX2xvYWQiID0geCIieWVzOyB0aGVuCi0rICBs dF9jdl9kbG9wZW49InNobF9sb2FkIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbGQiCi0rZWxzZQot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBkbG9wZW4iID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbG9wZW4uLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIk e2FjX2N2X2Z1bmNfZGxvcGVuK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8q IGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj X2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMu aC4gICovCi0rLyogRGVmaW5lIGRsb3BlbiB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2Fz ZSA8bGltaXRzLmg+IGRlY2xhcmVzIGRsb3Blbi4KLSsgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFp IDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KLSsjZGVmaW5lIGRsb3BlbiBp bm5vY3VvdXNfZGxvcGVuCi0rCi0rLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1h Y3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAotKyAgICB3aGljaCBjYW4gY29uZmxp Y3Qgd2l0aCBjaGFyIGRsb3BlbiAoKTsgYmVsb3cuCi0rICAgIFByZWZlciA8bGltaXRzLmg+IHRv IDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICAgPGxpbWl0cy5o PiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KLSsKLSsjaWZkZWYg X19TVERDX18KLSsjIGluY2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3Nl cnQuaD4KLSsjZW5kaWYKLSsKLSsjdW5kZWYgZGxvcGVuCi0rCi0rLyogT3ZlcnJpZGUgYW55IEdD QyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCi0rICAgVXNlIGNoYXIgYmVj YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCi0rICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8K LSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiCi0rI2VuZGlmCi0rY2hhciBkbG9wZW4g KCk7Ci0rLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hp Y2ggaXQgaW1wbGVtZW50cwotKyAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUg ZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAotKyAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0 aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KLSsjaWYgZGVmaW5lZCBf X3N0dWJfZGxvcGVuIHx8IGRlZmluZWQgX19zdHViX19fZGxvcGVuCi0rY2hva2UgbWUKLSsjZW5k aWYKLSsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBkbG9wZW4gKCk7Ci0rICA7Ci0rICBy ZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIg aW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29u ZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJ IHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0 JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBhY19jdl9mdW5jX2Rsb3Blbj15ZXMKLStl bHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N2X2Z1bmNfZGxvcGVuPW5v Ci0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAg Y29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9mdW5jX2Rsb3BlbiIgPiY1Ci0rJGFzX2VjaG8g IiRhY19jdl9mdW5jX2Rsb3BlbiIgPiY2OyB9Ci0raWYgdGVzdCAieCRhY19jdl9mdW5jX2Rsb3Bl biIgPSB4IiJ5ZXM7IHRoZW4KLSsgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIgotK2Vsc2UKLSsgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sZGwiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbC4uLiAiID4mNjsgfQot K2lmIHRlc3QgIiR7YWNfY3ZfbGliX2RsX2Rsb3BlbitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJT PSRMSUJTCi0rTElCUz0iLWxkbCAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25m dGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KLSsKLSsvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlw ZSB0byBhdm9pZCBhbiBlcnJvci4KLSsgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRj aCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKLSsgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1 bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotKyNpZmRlZiBfX2NwbHVzcGx1 cwotK2V4dGVybiAiQyIKLSsjZW5kaWYKLStjaGFyIGRsb3BlbiAoKTsKLStpbnQKLSttYWluICgp Ci0rewotK3JldHVybiBkbG9wZW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9G Ci0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChh Y190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsi KSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25m dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29u ZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19j X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYm IHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxp bmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9 OyB0aGVuCi0rICBhY19jdl9saWJfZGxfZGxvcGVuPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKLSsKLSsJYWNfY3ZfbGliX2RsX2Rsb3Blbj1ubwotK2ZpCi0rCi0rcm0gLXJm IGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0r eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9kbF9kbG9wZW4i ID4mNQotKyRhc19lY2hvICIkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY2OyB9Ci0raWYgdGVzdCAi eCRhY19jdl9saWJfZGxfZGxvcGVuIiA9IHgiInllczsgdGhlbgotKyAgbHRfY3ZfZGxvcGVuPSJk bG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIgotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sc3ZsZCIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbHN2bGQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0 ICIke2FjX2N2X2xpYl9zdmxkX2Rsb3BlbitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJT Ci0rTElCUz0iLWxzdmxkICAkTElCUyIKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0 LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZk ZWZzLmguICAqLwotKwotKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRv IGF2b2lkIGFuIGVycm9yLgotKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRo ZSByZXR1cm4gdHlwZSBvZiBhIEdDQwotKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50 IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0r ZXh0ZXJuICJDIgotKyNlbmRpZgotK2NoYXIgZGxvcGVuICgpOwotK2ludAotK21haW4gKCkKLSt7 Ci0rcmV0dXJuIGRsb3BlbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLSty bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3Ry eT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStl c2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi IgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+ Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0 LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVz dC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vy cm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVz dCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIg PSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRo ZW4KLSsgIGFjX2N2X2xpYl9zdmxkX2Rsb3Blbj15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1Ci0rCi0rCWFjX2N2X2xpYl9zdmxkX2Rsb3Blbj1ubwotK2ZpCi0rCi0rcm0gLXJm IGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0r eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9zdmxkX2Rsb3Bl biIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9saWJfc3ZsZF9kbG9wZW4iID4mNjsgfQotK2lmIHRl c3QgIngkYWNfY3ZfbGliX3N2bGRfZGxvcGVuIiA9IHgiInllczsgdGhlbgotKyAgbHRfY3ZfZGxv cGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbHN2bGQiCi0rZWxzZQotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBkbGRfbGluayBpbiAtbGRsZCIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsZF9saW5rIGluIC1sZGxkLi4uICIgPiY2OyB9 Ci0raWYgdGVzdCAiJHthY19jdl9saWJfZGxkX2RsZF9saW5rK3NldH0iID0gc2V0OyB0aGVuCi0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZl X0xJQlM9JExJQlMKLStMSUJTPSItbGRsZCAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmgg Pj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHBy b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KLSsgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdo dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKLSsgICBidWlsdGluIGFuZCB0aGVuIGl0 cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotKyNpZmRlZiBfX2Nw bHVzcGx1cwotK2V4dGVybiAiQyIKLSsjZW5kaWYKLStjaGFyIGRsZF9saW5rICgpOwotK2ludAot K21haW4gKCkKLSt7Ci0rcmV0dXJuIGRsZF9saW5rICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0r fQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0 Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwg IiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAn XiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQot KyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0 IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsg ICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jv c3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQK LSsgICAgICAgfTsgdGhlbgotKyAgYWNfY3ZfbGliX2RsZF9kbGRfbGluaz15ZXMKLStlbHNlCi0r ICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N2X2xpYl9kbGRfZGxkX2xpbms9bm8K LStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIg Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBj b25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9z YXZlX0xJQlMKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19j dl9saWJfZGxkX2RsZF9saW5rIiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X2xpYl9kbGRfZGxkX2xp bmsiID4mNjsgfQotK2lmIHRlc3QgIngkYWNfY3ZfbGliX2RsZF9kbGRfbGluayIgPSB4IiJ5ZXM7 IHRoZW4KLSsgIGx0X2N2X2Rsb3Blbj0iZGxkX2xpbmsiIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRs ZCIKLStmaQotKwotKwotK2ZpCi0rCi0rCi0rZmkKLSsKLSsKLStmaQotKwotKwotK2ZpCi0rCi0r Ci0rZmkKLSsKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIGlmIHRlc3QgIngkbHRfY3ZfZGxvcGVu IiAhPSB4bm87IHRoZW4KLSsgICAgZW5hYmxlX2Rsb3Blbj15ZXMKLSsgIGVsc2UKLSsgICAgZW5h YmxlX2Rsb3Blbj1ubwotKyAgZmkKLSsKLSsgIGNhc2UgJGx0X2N2X2Rsb3BlbiBpbgotKyAgZGxv cGVuKQotKyAgICBzYXZlX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0rICAgIHRlc3QgIngkYWNfY3Zf aGVhZGVyX2RsZmNuX2giID0geHllcyAmJiBDUFBGTEFHUz0iJENQUEZMQUdTIC1ESEFWRV9ETEZD Tl9IIgotKwotKyAgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgICB3bD0kbHRfcHJvZ19j b21waWxlcl93bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlY1wiCi0rCi0rICAgIHNhdmVfTElCUz0iJExJQlMiCi0rICAgIExJQlM9IiRsdF9jdl9kbG9w ZW5fbGlicyAkTElCUyIKLSsKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIHdoZXRoZXIgYSBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxmIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyB3aGV0aGVyIGEgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZi4uLiAiID4mNjsg fQotK2lmIHRlc3QgIiR7bHRfY3ZfZGxvcGVuX3NlbGYrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgCSAgaWYgdGVzdCAiJGNyb3NzX2Nv bXBpbGluZyIgPSB5ZXM7IHRoZW4gOgotKyAgbHRfY3ZfZGxvcGVuX3NlbGY9Y3Jvc3MKLStlbHNl Ci0rICBsdF9kbHVua25vd249MDsgbHRfZGxub191c2NvcmU9MTsgbHRfZGxuZWVkX3VzY29yZT0y Ci0rICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93bgotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8 PF9MVF9FT0YKLSsjbGluZSAxMjY4MSAiY29uZmlndXJlIgotKyNpbmNsdWRlICJjb25mZGVmcy5o IgotKwotKyNpZiBIQVZFX0RMRkNOX0gKLSsjaW5jbHVkZSA8ZGxmY24uaD4KLSsjZW5kaWYKLSsK LSsjaW5jbHVkZSA8c3RkaW8uaD4KLSsKLSsjaWZkZWYgUlRMRF9HTE9CQUwKLSsjICBkZWZpbmUg TFRfRExHTE9CQUwJCVJUTERfR0xPQkFMCi0rI2Vsc2UKLSsjICBpZmRlZiBETF9HTE9CQUwKLSsj ICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJRExfR0xPQkFMCi0rIyAgZWxzZQotKyMgICAgZGVmaW5l IExUX0RMR0xPQkFMCQkwCi0rIyAgZW5kaWYKLSsjZW5kaWYKLSsKLSsvKiBXZSBtYXkgaGF2ZSB0 byBkZWZpbmUgTFRfRExMQVpZX09SX05PVyBpbiB0aGUgY29tbWFuZCBsaW5lIGlmIHdlCi0rICAg ZmluZCBvdXQgaXQgZG9lcyBub3Qgd29yayBpbiBzb21lIHBsYXRmb3JtLiAqLwotKyNpZm5kZWYg TFRfRExMQVpZX09SX05PVwotKyMgIGlmZGVmIFJUTERfTEFaWQotKyMgICAgZGVmaW5lIExUX0RM TEFaWV9PUl9OT1cJCVJUTERfTEFaWQotKyMgIGVsc2UKLSsjICAgIGlmZGVmIERMX0xBWlkKLSsj ICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCURMX0xBWlkKLSsjICAgIGVsc2UKLSsjICAg ICAgaWZkZWYgUlRMRF9OT1cKLSsjICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlSVExE X05PVwotKyMgICAgICBlbHNlCi0rIyAgICAgICAgaWZkZWYgRExfTk9XCi0rIyAgICAgICAgICBk ZWZpbmUgTFRfRExMQVpZX09SX05PVwlETF9OT1cKLSsjICAgICAgICBlbHNlCi0rIyAgICAgICAg ICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkwCi0rIyAgICAgICAgZW5kaWYKLSsjICAgICAgZW5k aWYKLSsjICAgIGVuZGlmCi0rIyAgZW5kaWYKLSsjZW5kaWYKLSsKLSt2b2lkIGZub3JkKCkgeyBp bnQgaT00Mjt9Ci0raW50IG1haW4gKCkKLSt7Ci0rICB2b2lkICpzZWxmID0gZGxvcGVuICgwLCBM VF9ETEdMT0JBTHxMVF9ETExBWllfT1JfTk9XKTsKLSsgIGludCBzdGF0dXMgPSAkbHRfZGx1bmtu b3duOwotKwotKyAgaWYgKHNlbGYpCi0rICAgIHsKLSsgICAgICBpZiAoZGxzeW0gKHNlbGYsImZu b3JkIikpICAgICAgIHN0YXR1cyA9ICRsdF9kbG5vX3VzY29yZTsKLSsgICAgICBlbHNlIGlmIChk bHN5bSggc2VsZiwiX2Zub3JkIikpIHN0YXR1cyA9ICRsdF9kbG5lZWRfdXNjb3JlOwotKyAgICAg IC8qIGRsY2xvc2UgKHNlbGYpOyAqLwotKyAgICB9Ci0rICBlbHNlCi0rICAgIHB1dHMgKGRsZXJy b3IgKCkpOwotKwotKyAgcmV0dXJuIHN0YXR1czsKLSt9Ci0rX0xUX0VPRgotKyAgaWYgeyAoZXZh bCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0rICAoZXZhbCAkYWNf bGluaykgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgdGVzdCAt cyBjb25mdGVzdCR7YWNfZXhlZXh0fSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgICAoLi9jb25mdGVz dDsgZXhpdDsgKSA+JjUgMj4vZGV2L251bGwKLSsgICAgbHRfc3RhdHVzPSQ/Ci0rICAgIGNhc2Ug eCRsdF9zdGF0dXMgaW4KLSsgICAgICB4JGx0X2Rsbm9fdXNjb3JlKSBsdF9jdl9kbG9wZW5fc2Vs Zj15ZXMgOzsKLSsgICAgICB4JGx0X2RsbmVlZF91c2NvcmUpIGx0X2N2X2Rsb3Blbl9zZWxmPXll cyA7OwotKyAgICAgIHgkbHRfZGx1bmtub3dufHgqKSBsdF9jdl9kbG9wZW5fc2VsZj1ubyA7Owot KyAgICBlc2FjCi0rICBlbHNlIDoKLSsgICAgIyBjb21waWxhdGlvbiBmYWlsZWQKLSsgICAgbHRf Y3ZfZGxvcGVuX3NlbGY9bm8KLSsgIGZpCi0rZmkKLStybSAtZnIgY29uZnRlc3QqCi0rCi0rCi0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfZGxvcGVuX3Nl bGYiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfZGxvcGVuX3NlbGYiID4mNjsgfQotKwotKyAgICBp ZiB0ZXN0ICJ4JGx0X2N2X2Rsb3Blbl9zZWxmIiA9IHh5ZXM7IHRoZW4KLSsgICAgICB3bD0kbHRf cHJvZ19jb21waWxlcl93bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGx0X3Byb2dfY29tcGls ZXJfc3RhdGljXCIKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg d2hldGhlciBhIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGYiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9n cmFtIGNhbiBkbG9wZW4gaXRzZWxmLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9kbG9w ZW5fc2VsZl9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgCSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRo ZW4gOgotKyAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPWNyb3NzCi0rZWxzZQotKyAgbHRfZGx1 bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9MgotKyAgbHRfc3Rh dHVzPSRsdF9kbHVua25vd24KLSsgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0r I2xpbmUgMTI3NzcgImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSsKLSsjaWYg SEFWRV9ETEZDTl9ICi0rI2luY2x1ZGUgPGRsZmNuLmg+Ci0rI2VuZGlmCi0rCi0rI2luY2x1ZGUg PHN0ZGlvLmg+Ci0rCi0rI2lmZGVmIFJUTERfR0xPQkFMCi0rIyAgZGVmaW5lIExUX0RMR0xPQkFM CQlSVExEX0dMT0JBTAotKyNlbHNlCi0rIyAgaWZkZWYgRExfR0xPQkFMCi0rIyAgICBkZWZpbmUg TFRfRExHTE9CQUwJCURMX0dMT0JBTAotKyMgIGVsc2UKLSsjICAgIGRlZmluZSBMVF9ETEdMT0JB TAkJMAotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rLyogV2UgbWF5IGhhdmUgdG8gZGVmaW5lIExU X0RMTEFaWV9PUl9OT1cgaW4gdGhlIGNvbW1hbmQgbGluZSBpZiB3ZQotKyAgIGZpbmQgb3V0IGl0 IGRvZXMgbm90IHdvcmsgaW4gc29tZSBwbGF0Zm9ybS4gKi8KLSsjaWZuZGVmIExUX0RMTEFaWV9P Ul9OT1cKLSsjICBpZmRlZiBSVExEX0xBWlkKLSsjICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9X CQlSVExEX0xBWlkKLSsjICBlbHNlCi0rIyAgICBpZmRlZiBETF9MQVpZCi0rIyAgICAgIGRlZmlu ZSBMVF9ETExBWllfT1JfTk9XCQlETF9MQVpZCi0rIyAgICBlbHNlCi0rIyAgICAgIGlmZGVmIFJU TERfTk9XCi0rIyAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJUlRMRF9OT1cKLSsjICAg ICAgZWxzZQotKyMgICAgICAgIGlmZGVmIERMX05PVwotKyMgICAgICAgICAgZGVmaW5lIExUX0RM TEFaWV9PUl9OT1cJRExfTk9XCi0rIyAgICAgICAgZWxzZQotKyMgICAgICAgICAgZGVmaW5lIExU X0RMTEFaWV9PUl9OT1cJMAotKyMgICAgICAgIGVuZGlmCi0rIyAgICAgIGVuZGlmCi0rIyAgICBl bmRpZgotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rdm9pZCBmbm9yZCgpIHsgaW50IGk9NDI7fQot K2ludCBtYWluICgpCi0rewotKyAgdm9pZCAqc2VsZiA9IGRsb3BlbiAoMCwgTFRfRExHTE9CQUx8 TFRfRExMQVpZX09SX05PVyk7Ci0rICBpbnQgc3RhdHVzID0gJGx0X2RsdW5rbm93bjsKLSsKLSsg IGlmIChzZWxmKQotKyAgICB7Ci0rICAgICAgaWYgKGRsc3ltIChzZWxmLCJmbm9yZCIpKSAgICAg ICBzdGF0dXMgPSAkbHRfZGxub191c2NvcmU7Ci0rICAgICAgZWxzZSBpZiAoZGxzeW0oIHNlbGYs Il9mbm9yZCIpKSBzdGF0dXMgPSAkbHRfZGxuZWVkX3VzY29yZTsKLSsgICAgICAvKiBkbGNsb3Nl IChzZWxmKTsgKi8KLSsgICAgfQotKyAgZWxzZQotKyAgICBwdXRzIChkbGVycm9yICgpKTsKLSsK LSsgIHJldHVybiBzdGF0dXM7Ci0rfQotK19MVF9FT0YKLSsgIGlmIHsgKGV2YWwgZWNobyAiJGFz X21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQotKyAgKGV2YWwgJGFjX2xpbmspIDI+JjUK LSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qk e2FjX2V4ZWV4dH0gMj4vZGV2L251bGw7IHRoZW4KLSsgICAgKC4vY29uZnRlc3Q7IGV4aXQ7ICkg PiY1IDI+L2Rldi9udWxsCi0rICAgIGx0X3N0YXR1cz0kPwotKyAgICBjYXNlIHgkbHRfc3RhdHVz IGluCi0rICAgICAgeCRsdF9kbG5vX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXll cyA7OwotKyAgICAgIHgkbHRfZGxuZWVkX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGlj PXllcyA7OwotKyAgICAgIHgkbHRfZGx1bmtub3dufHgqKSBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0 aWM9bm8gOzsKLSsgICAgZXNhYwotKyAgZWxzZSA6Ci0rICAgICMgY29tcGlsYXRpb24gZmFpbGVk Ci0rICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1ubwotKyAgZmkKLStmaQotK3JtIC1mciBj b25mdGVzdCoKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfZGxvcGVu X3NlbGZfc3RhdGljIiA+JjY7IH0KLSsgICAgZmkKLSsKLSsgICAgQ1BQRkxBR1M9IiRzYXZlX0NQ UEZMQUdTIgotKyAgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgotKyAgICBMSUJTPSIkc2F2ZV9M SUJTIgotKyAgICA7OwotKyAgZXNhYwotKwotKyAgY2FzZSAkbHRfY3ZfZGxvcGVuX3NlbGYgaW4K LSsgIHllc3xubykgZW5hYmxlX2Rsb3Blbl9zZWxmPSRsdF9jdl9kbG9wZW5fc2VsZiA7OwotKyAg KikgZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25vd24gOzsKLSsgIGVzYWMKLSsKLSsgIGNhc2UgJGx0 X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyBpbgotKyAgeWVzfG5vKSBlbmFibGVfZGxvcGVuX3NlbGZf c3RhdGljPSRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMgOzsKLSsgICopIGVuYWJsZV9kbG9wZW5f c2VsZl9zdGF0aWM9dW5rbm93biA7OwotKyAgZXNhYwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rc3RyaXBsaWI9Ci0rb2xkX3N0cmlwbGli PQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHN0cmlwcGlu ZyBsaWJyYXJpZXMgaXMgcG9zc2libGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRo ZXIgc3RyaXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJsZS4uLiAiID4mNjsgfQotK2lmIHRlc3Qg LW4gIiRTVFJJUCIgJiYgJFNUUklQIC1WIDI+JjEgfCAkR1JFUCAiR05VIHN0cmlwIiA+L2Rldi9u dWxsOyB0aGVuCi0rICB0ZXN0IC16ICIkb2xkX3N0cmlwbGliIiAmJiBvbGRfc3RyaXBsaWI9IiRT VFJJUCAtLXN0cmlwLWRlYnVnIgotKyAgdGVzdCAteiAiJHN0cmlwbGliIiAmJiBzdHJpcGxpYj0i JFNUUklQIC0tc3RyaXAtdW5uZWVkZWQiCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotK2Vsc2UKLSsjIEZJWE1F IC0gaW5zZXJ0IHNvbWUgcmVhbCB0ZXN0cywgaG9zdF9vcyBpc24ndCByZWFsbHkgZ29vZCBlbm91 Z2gKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGRhcndpbiopCi0rICAgIGlmIHRlc3QgLW4gIiRT VFJJUCIgOyB0aGVuCi0rICAgICAgc3RyaXBsaWI9IiRTVFJJUCAteCIKLSsgICAgICBvbGRfc3Ry aXBsaWI9IiRTVFJJUCAtUyIKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKyAgICBlbHNlCi0rICAgICAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJu byIgPiY2OyB9Ci0rICAgIGZpCi0rICAgIDs7Ci0rICAqKQotKyAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLSsgICAg OzsKLSsgIGVzYWMKLStmaQotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyAg IyBSZXBvcnQgd2hpY2ggbGlicmFyeSB0eXBlcyB3aWxsIGFjdHVhbGx5IGJlIGJ1aWx0Ci0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgbGlidG9vbCBzdXBwb3J0cyBz aGFyZWQgbGlicmFyaWVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiBsaWJ0b29sIHN1 cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KLSsgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRjYW5fYnVpbGRfc2hhcmVkIiA+JjUKLSskYXNfZWNobyAiJGNh bl9idWlsZF9zaGFyZWQiID4mNjsgfQotKwotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcyIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2 OyB9Ci0rICB0ZXN0ICIkY2FuX2J1aWxkX3NoYXJlZCIgPSAibm8iICYmIGVuYWJsZV9zaGFyZWQ9 bm8KLSsKLSsgICMgT24gQUlYLCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0aWMgbGlicmFyaWVz IHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAotKyAgIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElD LgotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgYWl4MyopCi0rICAgIHRlc3QgIiRlbmFibGVfc2hh cmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rICAgIGlmIHRlc3QgLW4gIiRSQU5MSUIi OyB0aGVuCi0rICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGli IgotKyAgICAgIHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxpYicKLSsgICAgZmkKLSsgICAg OzsKLSsKLSsgIGFpeFs0LTldKikKLSsgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYm IHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgotKyAgICAgIHRlc3Qg IiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rICAgIGZpCi0rICAg IDs7Ci0rICBlc2FjCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZW5h YmxlX3NoYXJlZCIgPiY1Ci0rJGFzX2VjaG8gIiRlbmFibGVfc2hhcmVkIiA+JjY7IH0KLSsKLSsg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHN0 YXRpYyBsaWJyYXJpZXMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdG8gYnVp bGQgc3RhdGljIGxpYnJhcmllcy4uLiAiID4mNjsgfQotKyAgIyBNYWtlIHN1cmUgZWl0aGVyIGVu YWJsZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCi0rICB0ZXN0ICIkZW5hYmxlX3No YXJlZCIgPSB5ZXMgfHwgZW5hYmxlX3N0YXRpYz15ZXMKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRlbmFibGVfc3RhdGljIiA+JjUKLSskYXNfZWNobyAiJGVuYWJsZV9z dGF0aWMiID4mNjsgfQotKwotKwotKwotKwotK2ZpCi0rYWNfZXh0PWMKLSthY19jcHA9JyRDUFAg JENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVz dC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLSsKLStDQz0iJGx0X3NhdmVfQ0MiCi0r Ci0rCi0rYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGls ZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2Fj X2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExE RkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19j dl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCi0rYWxs b3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPQotK2Fsd2F5c19leHBvcnRfc3ltYm9sc19DWFg9bm8KLSth cmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0KLStjb21waWxlcl9uZWVkc19vYmplY3RfQ1hYPW5vCi0r ZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0KLStoYXJkY29kZV9kaXJlY3RfQ1hYPW5vCi0r aGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlX0NYWD1ubwotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfQ1hYPQotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hYPQotK2hhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3JfQ1hYPQotK2hhcmRjb2RlX21pbnVzX0xfQ1hYPW5vCi0raGFyZGNvZGVf c2hsaWJwYXRoX3Zhcl9DWFg9dW5zdXBwb3J0ZWQKLStoYXJkY29kZV9hdXRvbWF0aWNfQ1hYPW5v Ci0raW5oZXJpdF9ycGF0aF9DWFg9bm8KLSttb2R1bGVfY21kc19DWFg9Ci0rbW9kdWxlX2V4cHN5 bV9jbWRzX0NYWD0KLStsaW5rX2FsbF9kZXBsaWJzX0NYWD11bmtub3duCi0rb2xkX2FyY2hpdmVf Y21kc19DWFg9JG9sZF9hcmNoaXZlX2NtZHMKLStub191bmRlZmluZWRfZmxhZ19DWFg9Ci0rd2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPQotK2VuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVu dGltZXNfQ1hYPW5vCi0rCi0rIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEMrKyB0ZXN0IHNv dXJjZXMuCi0rYWNfZXh0PWNwcAotKwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21w aWxlZCBDKysgdGVzdCBzb3VyY2VzLgotK29iamV4dD1vCi0rb2JqZXh0X0NYWD0kb2JqZXh0Ci0r Ci0rIyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0ZXN0cyBpZiB3ZSBhbHJlYWR5IGRl dGVybWluZWQgdGhhdAotKyMgdGhlIENYWCBjb21waWxlciBpc24ndCB3b3JraW5nLiAgU29tZSB2 YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJlZCkKLSsjIGFyZSBjdXJyZW50bHkgYXNzdW1lZCB0 byBhcHBseSB0byBhbGwgY29tcGlsZXJzIG9uIHRoaXMgcGxhdGZvcm0sCi0rIyBhbmQgd2lsbCBi ZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2VkIG9uIGEgbm9uLXdvcmtpbmcgY29tcGls ZXIuCi0raWYgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAhPSB5ZXM7IHRoZW4KLSsgICMg Q29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCi0rICBsdF9zaW1wbGVfY29t cGlsZV90ZXN0X2NvZGU9ImludCBzb21lX3ZhcmlhYmxlID0gMDsiCi0rCi0rICAjIENvZGUgdG8g YmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotKyAgbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2Rl PSdpbnQgbWFpbihpbnQsIGNoYXIgKltdKSB7IHJldHVybigwKTsgfScKLSsKLSsgICMgbHRtYWlu IG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJEND IGlzIHNldC4KLSsKLSsKLSsKLSsKLSsKLSsKLSsjIElmIG5vIEMgY29tcGlsZXIgd2FzIHNwZWNp ZmllZCwgdXNlIENDLgotK0xUQ0M9JHtMVENDLSIkQ0MifQotKwotKyMgSWYgbm8gQyBjb21waWxl ciBmbGFncyB3ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4KLStMVENGTEFHUz0ke0xUQ0ZMQUdT LSIkQ0ZMQUdTIn0KLSsKLSsjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn dW1lbnRzLgotK2NvbXBpbGVyPSRDQwotKwotKwotKyAgIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBs YXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKLSsgIGFjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4 dAotK2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0 Ci0rZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAq Ky9kJyA+Y29uZnRlc3QuZXJyCi0rX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRl c3QuZXJyYAotKyRSTSBjb25mdGVzdCoKLSsKLSsgIGFjX291dGZpbGU9Y29uZnRlc3QuJGFjX29i amV4dAotK2VjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0 Ci0rZXZhbCAiJGFjX2xpbmsiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9k JyA+Y29uZnRlc3QuZXJyCi0rX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVy cmAKLSskUk0gLXIgY29uZnRlc3QqCi0rCi0rCi0rICAjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJndW1lbnRzLgotKyAgbHRfc2F2ZV9DQz0kQ0MKLSsgIGx0X3NhdmVfTEQ9 JExECi0rICBsdF9zYXZlX0dDQz0kR0NDCi0rICBHQ0M9JEdYWAotKyAgbHRfc2F2ZV93aXRoX2du dV9sZD0kd2l0aF9nbnVfbGQKLSsgIGx0X3NhdmVfcGF0aF9MRD0kbHRfY3ZfcGF0aF9MRAotKyAg aWYgdGVzdCAtbiAiJHtsdF9jdl9wcm9nX2dudV9sZGN4eCtzZXR9IjsgdGhlbgotKyAgICBsdF9j dl9wcm9nX2dudV9sZD0kbHRfY3ZfcHJvZ19nbnVfbGRjeHgKLSsgIGVsc2UKLSsgICAgJGFzX3Vu c2V0IGx0X2N2X3Byb2dfZ251X2xkCi0rICBmaQotKyAgaWYgdGVzdCAtbiAiJHtsdF9jdl9wYXRo X0xEQ1hYK3NldH0iOyB0aGVuCi0rICAgIGx0X2N2X3BhdGhfTEQ9JGx0X2N2X3BhdGhfTERDWFgK LSsgIGVsc2UKLSsgICAgJGFzX3Vuc2V0IGx0X2N2X3BhdGhfTEQKLSsgIGZpCi0rICB0ZXN0IC16 ICIke0xEQ1hYK3NldH0iIHx8IExEPSRMRENYWAotKyAgQ0M9JHtDWFgtImMrKyJ9Ci0rICBjb21w aWxlcj0kQ0MKLSsgIGNvbXBpbGVyX0NYWD0kQ0MKLSsgIGZvciBjY190ZW1wIGluICRjb21waWxl ciIiOyBkbwotKyAgY2FzZSAkY2NfdGVtcCBpbgotKyAgICBjb21waWxlIHwgKltcXC9dY29tcGls ZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7Ci0rICAgIGRpc3RjYyB8ICpbXFwvXWRpc3Rj YyB8IHB1cmlmeSB8ICpbXFwvXXB1cmlmeSApIDs7Ci0rICAgIFwtKikgOzsKLSsgICAgKikgYnJl YWs7OwotKyAgZXNhYwotK2RvbmUKLStjY19iYXNlbmFtZT1gJEVDSE8gIlgkY2NfdGVtcCIgfCAk WHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2FsaWFzLSUlImAKLSsKLSsKLSsgIGlmIHRl c3QgLW4gIiRjb21waWxlciI7IHRoZW4KLSsgICAgIyBXZSBkb24ndCB3YW50IC1mbm8tZXhjZXB0 aW9uIHdoZW4gY29tcGlsaW5nIEMrKyBjb2RlLCBzbyBzZXQgdGhlCi0rICAgICMgbm9fYnVpbHRp bl9mbGFnIHNlcGFyYXRlbHkKLSsgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAg ICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFg9JyAtZm5vLWJ1aWx0aW4nCi0r ICAgIGVsc2UKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFg9Ci0r ICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgICAgIyBTZXQg dXAgZGVmYXVsdCBHTlUgQysrIGNvbmZpZ3VyYXRpb24KLSsKLSsKLSsKLSsjIENoZWNrIHdoZXRo ZXIgLS13aXRoLWdudS1sZCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX2dudV9sZCtzZXR9 IiA9IHNldDsgdGhlbgotKyAgd2l0aHZhbD0kd2l0aF9nbnVfbGQ7IHRlc3QgIiR3aXRodmFsIiA9 IG5vIHx8IHdpdGhfZ251X2xkPXllcwotK2Vsc2UKLSsgIHdpdGhfZ251X2xkPW5vCi0rZmkKLSsK LSthY19wcm9nPWxkCi0raWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICMgQ2hlY2sgaWYg Z2NjIC1wcmludC1wcm9nLW5hbWU9bGQgZ2l2ZXMgYSBwYXRoLgotKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBsZCB1c2VkIGJ5ICRDQyIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgJENDLi4uICIgPiY2OyB9Ci0rICBjYXNlICRob3N0 IGluCi0rICAqLSotbWluZ3cqKQotKyAgICAjIGdjYyBsZWF2ZXMgYSB0cmFpbGluZyBjYXJyaWFn ZSByZXR1cm4gd2hpY2ggdXBzZXRzIG1pbmd3Ci0rICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXBy b2ctbmFtZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1J2AgOzsKLSsgICopCi0rICAgIGFjX3Byb2c9 YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNWAgOzsKLSsgIGVzYWMKLSsgIGNhc2UgJGFj X3Byb2cgaW4KLSsgICAgIyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMuCi0rICAgIFtcXC9dKiB8ID86 W1xcL10qKQotKyAgICAgIHJlX2RpcmVsdD0nL1teL11bXi9dKi9cLlwuLycKLSsgICAgICAjIENh bm9uaWNhbGl6ZSB0aGUgcGF0aG5hbWUgb2YgbGQKLSsgICAgICBhY19wcm9nPWAkRUNITyAiJGFj X3Byb2cifCAkU0VEICdzJVxcXFwlLyVnJ2AKLSsgICAgICB3aGlsZSAkRUNITyAiJGFjX3Byb2ci IHwgJEdSRVAgIiRyZV9kaXJlbHQiID4gL2Rldi9udWxsIDI+JjE7IGRvCi0rCWFjX3Byb2c9YCRF Q0hPICRhY19wcm9nfCAkU0VEICJzJSRyZV9kaXJlbHQlLyUiYAotKyAgICAgIGRvbmUKLSsgICAg ICB0ZXN0IC16ICIkTEQiICYmIExEPSIkYWNfcHJvZyIKLSsgICAgICA7OwotKyAgIiIpCi0rICAg ICMgSWYgaXQgZmFpbHMsIHRoZW4gcHJldGVuZCB3ZSBhcmVuJ3QgdXNpbmcgR0NDLgotKyAgICBh Y19wcm9nPWxkCi0rICAgIDs7Ci0rICAqKQotKyAgICAjIElmIGl0IGlzIHJlbGF0aXZlLCB0aGVu IHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBBVEguCi0rICAgIHdpdGhfZ251X2xkPXVua25v d24KLSsgICAgOzsKLSsgIGVzYWMKLStlbGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRo ZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgR05VIGxkIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgR05VIGxkLi4uICIgPiY2OyB9Ci0rZWxzZQot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBub24tR05VIGxkIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Igbm9uLUdOVSBsZC4uLiAiID4mNjsgfQotK2Zp Ci0raWYgdGVzdCAiJHtsdF9jdl9wYXRoX0xEK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLXogIiRMRCI7IHRoZW4KLSsg IGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotKyAgZm9yIGFjX2RpciBp biAkUEFUSDsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgIHRlc3QgLXogIiRhY19k aXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ciIHx8IHRl c3QgLWYgIiRhY19kaXIvJGFjX3Byb2ckYWNfZXhlZXh0IjsgdGhlbgotKyAgICAgIGx0X2N2X3Bh dGhfTEQ9IiRhY19kaXIvJGFjX3Byb2ciCi0rICAgICAgIyBDaGVjayB0byBzZWUgaWYgdGhlIHBy b2dyYW0gaXMgR05VIGxkLiAgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uLAotKyAgICAgICMgYnV0 IGFwcGFyZW50bHkgc29tZSB2YXJpYW50cyBvZiBHTlUgbGQgb25seSBhY2NlcHQgLXYuCi0rICAg ICAgIyBCcmVhayBvbmx5IGlmIGl0IHdhcyB0aGUgR05VL25vbi1HTlUgbGQgdGhhdCB3ZSBwcmVm ZXIuCi0rICAgICAgY2FzZSBgIiRsdF9jdl9wYXRoX0xEIiAtdiAyPiYxIDwvZGV2L251bGxgIGlu Ci0rICAgICAgKkdOVSogfCAqJ3dpdGggQkZEJyopCi0rCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0g bm8gJiYgYnJlYWsKLSsJOzsKLSsgICAgICAqKQotKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IHll cyAmJiBicmVhawotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSsgIGRvbmUKLSsgIElGUz0i JGx0X3NhdmVfaWZzIgotK2Vsc2UKLSsgIGx0X2N2X3BhdGhfTEQ9IiRMRCIgIyBMZXQgdGhlIHVz ZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rZmkKLStmaQotKwotK0xEPSIkbHRf Y3ZfcGF0aF9MRCIKLStpZiB0ZXN0IC1uICIkTEQiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkTEQiID4mNQotKyRhc19lY2hvICIkTEQiID4mNjsgfQotK2Vs c2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNf ZWNobyAibm8iID4mNjsgfQotK2ZpCi0rdGVzdCAteiAiJExEIiAmJiB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEgiID4m NQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIGxkIGZvdW5kIGluIFwk UEFUSCIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGQiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmIHRoZSBsaW5rZXIgKCRMRCkgaXMgR05VIGxkLi4u ICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wcm9nX2dudV9sZCtzZXR9IiA9IHNldDsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICAjIEknZCByYXRoZXIg dXNlIC0tdmVyc2lvbiBoZXJlLCBidXQgYXBwYXJlbnRseSBzb21lIEdOVSBsZHMgb25seSBhY2Nl cHQgLXYuCi0rY2FzZSBgJExEIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KLSsqR05VKiB8ICond2l0 aCBCRkQnKikKLSsgIGx0X2N2X3Byb2dfZ251X2xkPXllcwotKyAgOzsKLSsqKQotKyAgbHRfY3Zf cHJvZ19nbnVfbGQ9bm8KLSsgIDs7Ci0rZXNhYwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfZ251X2xkIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2 X3Byb2dfZ251X2xkIiA+JjY7IH0KLSt3aXRoX2dudV9sZD0kbHRfY3ZfcHJvZ19nbnVfbGQKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsgICAgICAjIENoZWNrIGlmIEdOVSBDKysgdXNlcyBHTlUgbGQg YXMgdGhlIHVuZGVybHlpbmcgbGlua2VyLCBzaW5jZSB0aGUKLSsgICAgICAjIGFyY2hpdmluZyBj b21tYW5kcyBiZWxvdyBhc3N1bWUgdGhhdCBHTlUgbGQgaXMgYmVpbmcgdXNlZC4KLSsgICAgICBp ZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICAgICAgICBhcmNoaXZlX2NtZHNf Q1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs aWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29u YW1lIC1vICRsaWInCi0rICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFy ZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRh aW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKwotKyAgICAgICAg aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicK LSsgICAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1leHBvcnQtZHlu YW1pYycKLSsKLSsgICAgICAgICMgSWYgYXJjaGl2ZV9jbWRzIHJ1bnMgTEQsIG5vdCBDQywgd2xh cmMgc2hvdWxkIGJlIGVtcHR5Ci0rICAgICAgICAjIFhYWCBJIHRoaW5rIHdsYXJjIGNhbiBiZSBl bGltaW5hdGVkIGluIGx0Y2YtY3h4LCBidXQgSSBuZWVkIHRvCi0rICAgICAgICAjICAgICBpbnZl c3RpZ2F0ZSBpdCBhIGxpdHRsZSBiaXQgbW9yZS4gKE1NKQotKyAgICAgICAgd2xhcmM9JyR7d2x9 JwotKwotKyAgICAgICAgIyBhbmNpZW50IEdOVSBsZCBkaWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFy Y2hpdmUgZXQuIGFsLgotKyAgICAgICAgaWYgZXZhbCAiYCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxk YCAtLWhlbHAgMj4mMSIgfAotKwkgICRHUkVQICduby13aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVs bDsgdGhlbgotKyAgICAgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9IiR3bGFyYyIn LS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUn Ci0rICAgICAgICBlbHNlCi0rICAgICAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0K LSsgICAgICAgIGZpCi0rICAgICAgZWxzZQotKyAgICAgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAg ICAgIHdsYXJjPQotKwotKyAgICAgICAgIyBBIGdlbmVyaWMgYW5kIHZlcnkgc2ltcGxlIGRlZmF1 bHQgc2hhcmVkIGxpYnJhcnkgY3JlYXRpb24KLSsgICAgICAgICMgY29tbWFuZCBmb3IgR05VIEMr KyBmb3IgdGhlIGNhc2Ugd2hlcmUgaXQgdXNlcyB0aGUgbmF0aXZlCi0rICAgICAgICAjIGxpbmtl ciwgaW5zdGVhZCBvZiBHTlUgbGQuICBJZiBwb3NzaWJsZSwgdGhpcyBzZXR0aW5nIHNob3VsZAot KyAgICAgICAgIyBvdmVycmlkZGVuIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBuYXRpdmUgbGlu a2VyIGZlYXR1cmVzIG9uCi0rICAgICAgICAjIHRoZSBwbGF0Zm9ybSBpdCBpcyBiZWluZyB1c2Vk IG9uLgotKyAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncyAtbyAkbGliJwotKyAgICAgIGZpCi0rCi0rICAgICAgIyBDb21tYW5kcyB0byBtYWtl IGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKyAgICAgICMgd2hh dCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hl bgotKyAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKyAgICAgIG91dHB1dF92ZXJi b3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4m MSB8ICRHUkVQICJcLUwiJwotKwotKyAgICBlbHNlCi0rICAgICAgR1hYPW5vCi0rICAgICAgd2l0 aF9nbnVfbGQ9bm8KLSsgICAgICB3bGFyYz0KLSsgICAgZmkKLSsKLSsgICAgIyBQT1JUTUU6IGZp bGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3RlbSdzIEMrKyBsaW5rIGNoYXJhY3Rlcmlz dGljcwotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0 aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQp IHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KLSsgICAgbGRfc2hsaWJzX0NY WD15ZXMKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeDMqKQotKyAgICAgICAgIyBG SVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICBsZF9zaGxp YnNfQ1hYPW5vCi0rICAgICAgICA7OwotKyAgICAgIGFpeFs0LTldKikKLSsgICAgICAgIGlmIHRl c3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rICAgICAgICAgICMgT24gSUE2NCwgdGhlIGxp bmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwgc28gd2UgZG9uJ3QKLSsgICAg ICAgICAgIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCi0rICAgICAgICAgIGFpeF91c2Vf cnVudGltZWxpbmtpbmc9bm8KLSsgICAgICAgICAgZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcKLSsg ICAgICAgICAgbm9fZW50cnlfZmxhZz0iIgotKyAgICAgICAgZWxzZQotKyAgICAgICAgICBhaXhf dXNlX3J1bnRpbWVsaW5raW5nPW5vCi0rCi0rICAgICAgICAgICMgVGVzdCBpZiB3ZSBhcmUgdHJ5 aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1hbAotKyAgICAgICAgICAjIEFJWCBz dHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBpcyBzb21ld2hlcmUgaW4gTERGTEFHUywgd2UKLSsgICAg ICAgICAgIyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2luZy4KLSsgICAgICAgICAgY2FzZSAkaG9z dF9vcyBpbiBhaXg0LlsyM118YWl4NC5bMjNdLip8YWl4WzUtOV0qKQotKwkgICAgZm9yIGxkX2Zs YWcgaW4gJExERkxBR1M7IGRvCi0rCSAgICAgIGNhc2UgJGxkX2ZsYWcgaW4KLSsJICAgICAgKi1i cnRsKikKLSsJICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPXllcwotKwkgICAgICAgIGJy ZWFrCi0rCSAgICAgICAgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgICAgOzsKLSsg ICAgICAgICAgZXNhYwotKwotKyAgICAgICAgICBleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0JwotKyAg ICAgICAgICBub19lbnRyeV9mbGFnPSctYm5vZW50cnknCi0rICAgICAgICBmaQotKwotKyAgICAg ICAgIyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBvYmplY3RzIGFyZSBidWlsdCwg QUlYIGxkIGNhbgotKyAgICAgICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBv ZiBjb250ZW50cy4gIElmIGxpbmtpbmcgYSBsaWJyYXJ5Ci0rICAgICAgICAjIG9yIHByb2dyYW0g cmVzdWx0cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBhZGQgLW1taW5pbWFsLXRvYyB0bwotKyAg ICAgICAgIyBDWFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9nY2MuICBJbiB0aGUgY2FzZXMgd2hlcmUg dGhhdCBpcyBub3QKLSsgICAgICAgICMgZW5vdWdoIHRvIGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1X bCwtYmJpZ3RvYyB0byBMREZMQUdTLgotKwotKyAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJwot KyAgICAgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD15ZXMKLSsgICAgICAgIGhhcmRjb2RlX2RpcmVj dF9hYnNvbHV0ZV9DWFg9eWVzCi0rICAgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NY WD0nOicKLSsgICAgICAgIGxpbmtfYWxsX2RlcGxpYnNfQ1hYPXllcwotKyAgICAgICAgZmlsZV9s aXN0X3NwZWNfQ1hYPScke3dsfS1mLCcKLSsKLSsgICAgICAgIGlmIHRlc3QgIiRHWFgiID0geWVz OyB0aGVuCi0rICAgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMDEyXXxhaXg0LlswMTJd LiopCi0rICAgICAgICAgICMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gQUlYIDQuMiBhbmQg bG93ZXIsIHRoZSBjaGVjawotKyAgICAgICAgICAjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIg ZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKLSsJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1w cm9nLW5hbWU9Y29sbGVjdDJgCi0rCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYKLSsJ ICAgICBzdHJpbmdzICIkY29sbGVjdDJuYW1lIiB8ICRHUkVQIHJlc29sdmVfbGliX25hbWUgPi9k ZXYvbnVsbAotKwkgIHRoZW4KLSsJICAgICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xsZWN0MgotKwkg ICAgOgotKwkgIGVsc2UKLSsJICAgICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIKLSsJICAgIGhhcmRj b2RlX2RpcmVjdF9DWFg9dW5zdXBwb3J0ZWQKLSsJICAgICMgSXQgZmFpbHMgdG8gZmluZCB1bmlu c3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQKLSsJICAgICMgcGF0aCBpcyBu b3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJkY29kZV9taW51c19MCi0rCSAg ICAjIHRvIHVuc3VwcG9ydGVkIGZvcmNlcyByZWxpbmtpbmcKLSsJICAgIGhhcmRjb2RlX21pbnVz X0xfQ1hYPXllcwotKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9Jy1MJGxpYmRp cicKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPQotKwkgIGZpCi0rICAgICAg ICAgIGVzYWMKLSsgICAgICAgICAgc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCi0rCSAgaWYgdGVzdCAi JGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCSAgICBzaGFyZWRfZmxhZz0i JHNoYXJlZF9mbGFnICInJHt3bH0tRycKLSsJICBmaQotKyAgICAgICAgZWxzZQotKyAgICAgICAg ICAjIG5vdCB1c2luZyBnY2MKLSsgICAgICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7 IHRoZW4KLSsJICAjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVggNUwgZm9yIElB LTY0LCBCZXRhIDMgUmVsZWFzZQotKwkgICMgY2hva2VzIG9uIC1XbCwtRy4gVGhlIGZvbGxvd2lu ZyBsaW5lIGlzIGNvcnJlY3Q6Ci0rCSAgc2hhcmVkX2ZsYWc9Jy1HJwotKyAgICAgICAgICBlbHNl Ci0rCSAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJ ICAgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCi0rCSAgICBlbHNlCi0rCSAgICAgIHNoYXJlZF9m bGFnPScke3dsfS1iTTpTUkUnCi0rCSAgICBmaQotKyAgICAgICAgICBmaQotKyAgICAgICAgZmkK LSsKLSsgICAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LWJleHBhbGwn Ci0rICAgICAgICAjIEl0IHNlZW1zIHRoYXQgLWJleHBhbGwgZG9lcyBub3QgZXhwb3J0IHN5bWJv bHMgYmVnaW5uaW5nIHdpdGgKLSsgICAgICAgICMgdW5kZXJzY29yZSAoXyksIHNvIGl0IGlzIGJl dHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0bwotKwkjIGV4cG9ydC4KLSsgICAg ICAgIGFsd2F5c19leHBvcnRfc3ltYm9sc19DWFg9eWVzCi0rICAgICAgICBpZiB0ZXN0ICIkYWl4 X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsgICAgICAgICAgIyBXYXJuaW5nIC0g d2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVudGltZSBsb2FkaW5nIGZsYWdzICgtYnJ0bCksCi0r ICAgICAgICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1 Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsgICAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hY PSctYmVyb2snCi0rICAgICAgICAgICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJv bSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbiBlbXB0eQotKyAgICAgICAgICAjIGV4ZWN1dGFibGUu Ci0rICAgICAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZz LmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2Nh dCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0r Ci0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YK LStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFj X3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAq XFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsK LStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNo b1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIp IDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0 ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25m dGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4 eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAm JiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGls aW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAg fTsgdGhlbgotKwotK2x0X2FpeF9saWJwYXRoX3NlZD0nCi0rICAgIC9JbXBvcnQgRmlsZSBTdHJp bmdzLywvXiQvIHsKLSsJL14wLyB7Ci0rCSAgICBzL14wICAqXCguKlwpJC9cMS8KLSsJICAgIHAK LSsJfQotKyAgICB9JwotK2FpeF9saWJwYXRoPWBkdW1wIC1IIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAy Pi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotKyMgQ2hlY2sg Zm9yIGEgNjQtYml0IG9iamVjdCBpZiB3ZSBkaWRuJ3QgZmluZCBhbnl0aGluZy4KLStpZiB0ZXN0 IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuCi0rICBhaXhfbGlicGF0aD1gZHVtcCAtSFg2NCBjb25m dGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhf c2VkImAKLStmaQotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdh czoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsKLStmaQot KwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVz dCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7 IHRoZW4gYWl4X2xpYnBhdGg9Ii91c3IvbGliOi9saWIiOyBmaQotKwotKyAgICAgICAgICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhf bGlicGF0aCIKLSsKLSsgICAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtbyAk b3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5 X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93X3VuZGVmaW5lZF9mbGFn fSIgIT0gIngiOyB0aGVuICRFQ0hPICJYJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgfCAk WHNlZDsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMg JHNoYXJlZF9mbGFnIgotKyAgICAgICAgZWxzZQotKyAgICAgICAgICBpZiB0ZXN0ICIkaG9zdF9j cHUiID0gaWE2NDsgdGhlbgotKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7 d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJwotKwkgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdf Q1hYPSIteiBub2RlZnMiCi0rCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0iXCRDQyAkc2hh cmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICci XCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVm aW5lZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyIKLSsgICAg ICAgICAgZWxzZQotKwkgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRo ZSB2YWx1ZSBlbmNvZGVkIGluIGFuCi0rCSAgICAjIGVtcHR5IGV4ZWN1dGFibGUuCi0rCSAgICBj YXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNF T0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4g KCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRl c3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5r IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVy MQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0 ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQot KyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChl eGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWci IHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25m dGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwK LSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsKLSts dF9haXhfbGlicGF0aF9zZWQ9JwotKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7Ci0r CS9eMC8gewotKwkgICAgcy9eMCAgKlwoLipcKSQvXDEvCi0rCSAgICBwCi0rCX0KLSsgICAgfScK LSthaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAk U0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKLSsjIENoZWNrIGZvciBhIDY0LWJpdCBv YmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCi0raWYgdGVzdCAteiAiJGFpeF9saWJw YXRoIjsgdGhlbgotKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0 IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rZmkKLStl bHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCi0rZmkKLSsKLStybSAtcmYgY29u ZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNv bmZ0ZXN0LiRhY19leHQKLStpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJw YXRoPSIvdXNyL2xpYjovbGliIjsgZmkKLSsKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfQ1hYPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwkgICAgIyBX YXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFncywK LSsJICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2Ug YSBicm9rZW4gbGlicmFyeS4KLSsJICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9LWJl cm5vdG9rJwotKwkgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPScgJHt3bH0tYmVyb2snCi0r CSAgICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3Rz IGZyb20gYXJjaGl2ZXMKLSsJICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJGNvbnZl bmllbmNlJwotKwkgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPXllcwotKwkgICAgIyBUaGlz IGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1aWxkcyBpdHMgc2hhcmVkCi0r CSAgICAjIGxpYnJhcmllcy4KLSsJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSJcJENDICRz aGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMg JHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7 YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCi0rICAgICAgICAgIGZpCi0rICAg ICAgICBmaQotKyAgICAgICAgOzsKLSsKLSsgICAgICBiZW9zKikKLSsJaWYgJExEIC0taGVscCAy PiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhl bgotKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD11bnN1cHBvcnRlZAotKwkgICMgSm9zZXBo IEJlY2tlbmJhY2ggPGpyYjNAYmVzdC5jb20+IHNheXMgc29tZSByZWxlYXNlcyBvZiBnY2MKLSsJ ICAjIHN1cHBvcnQgLS11bmRlZmluZWQuICBUaGlzIGRlc2VydmVzIHNvbWUgaW52ZXN0aWdhdGlv bi4gIEZJWE1FCi0rCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwot KwllbHNlCi0rCSAgbGRfc2hsaWJzX0NYWD1ubwotKwlmaQotKwk7OwotKwotKyAgICAgIGNob3J1 cyopCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICAqKQotKwkgICMg RklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgIGxkX3NobGlic19D WFg9bm8KLSsJICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAgICBjeWd3 aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAgICAgICAjIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgQ1hYKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKLSsg ICAgICAgICMgYXMgdGhlcmUgaXMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCi0rICAgICAgICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLUwkbGliZGlyJwotKyAgICAgICAgYWxsb3df dW5kZWZpbmVkX2ZsYWdfQ1hYPXVuc3VwcG9ydGVkCi0rICAgICAgICBhbHdheXNfZXhwb3J0X3N5 bWJvbHNfQ1hYPW5vCi0rICAgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVz X0NYWD15ZXMKLSsKLSsgICAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICdhdXRvLWlt cG9ydCcgPiAvZGV2L251bGw7IHRoZW4KLSsgICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJEND IC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7 d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtl ciAkbGliJwotKyAgICAgICAgICAjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkg aXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCi0rICAgICAgICAgICMgaXMgRVhQT1JUUyksIHVzZSBp dCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCi0rICAgICAgICAgIGFyY2hpdmVfZXhwc3lt X2NtZHNfQ1hYPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JU UzsgdGhlbgotKwkgICAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUu ZGVmOwotKyAgICAgICAgICBlbHNlCi0rCSAgICBlY2hvIEVYUE9SVFMgPiAkb3V0cHV0X29iamRp ci8kc29uYW1lLmRlZjsKLSsJICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpk aXIvJHNvbmFtZS5kZWY7Ci0rICAgICAgICAgIGZpfgotKyAgICAgICAgICAkQ0MgLXNoYXJlZCAt bm9zdGRsaWIgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWYgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1v dXQtaW1wbGliIC1YbGlua2VyICRsaWInCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgIGxkX3No bGlic19DWFg9bm8KLSsgICAgICAgIGZpCi0rICAgICAgICA7OwotKyAgICAgIGRhcndpbiogfCBy aGFwc29keSopCi0rCi0rCi0rICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KLSsgIGhhcmRj b2RlX2RpcmVjdF9DWFg9bm8KLSsgIGhhcmRjb2RlX2F1dG9tYXRpY19DWFg9eWVzCi0rICBoYXJk Y29kZV9zaGxpYnBhdGhfdmFyX0NYWD11bnN1cHBvcnRlZAotKyAgd2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWNfQ1hYPScnCi0rICBsaW5rX2FsbF9kZXBsaWJzX0NYWD15ZXMKLSsgIGFsbG93X3VuZGVm aW5lZF9mbGFnX0NYWD0iJF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkIgotKyAgY2FzZSAkY2NfYmFz ZW5hbWUgaW4KLSsgICAgIGlmb3J0KikgX2x0X2Rhcl9jYW5fc2hhcmVkPXllcyA7OwotKyAgICAg KikgX2x0X2Rhcl9jYW5fc2hhcmVkPSRHQ0MgOzsKLSsgIGVzYWMKLSsgIGlmIHRlc3QgIiRfbHRf ZGFyX2Nhbl9zaGFyZWQiID0gInllcyI7IHRoZW4KLSsgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19j bWQ9ZWNobwotKyAgICBhcmNoaXZlX2NtZHNfQ1hYPSJcJENDIC1keW5hbWljbGliIFwkYWxsb3df dW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2Zs YWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAkX2x0X2Rhcl9z aW5nbGVfbW9kJHtfbHRfZHN5bXV0aWx9IgotKyAgICBtb2R1bGVfY21kc19DWFg9IlwkQ0MgXCRh bGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMg XCRjb21waWxlcl9mbGFncyR7X2x0X2RzeW11dGlsfSIKLSsgICAgYXJjaGl2ZV9leHBzeW1fY21k c19DWFg9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIv XCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVm aW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAt aW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJHtfbHRfZGFyX3Npbmds ZV9tb2R9JHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKLSsgICAgbW9kdWxl X2V4cHN5bV9jbWRzX0NYWD0ic2VkIC1lICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwk b3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIFwkYWxsb3dfdW5k ZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGls ZXJfZmxhZ3Mke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICAgICBp ZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgIT0gInllcyI7IHRoZW4KLSsgICAg ICBhcmNoaXZlX2NtZHNfQ1hYPSJcJENDIC1yIC1rZWVwX3ByaXZhdGVfZXh0ZXJucyAtbm9zdGRs aWIgLW8gXCR7bGlifS1tYXN0ZXIubyBcJGxpYm9ianN+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93 X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwke2xpYn0tbWFzdGVyLm8gXCRkZXBsaWJzIFwkY29t cGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nJHtf bHRfZHN5bXV0aWx9IgotKyAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSJzZWQgJ3MsXixf LCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJv bHMuZXhwc3ltflwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0ZGxpYiAtbyBcJHts aWJ9LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVk X2ZsYWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFn cyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcke19sdF9kYXJfZXhw b3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICBmaQotKwotKyAgZWxzZQotKyAgbGRfc2hs aWJzX0NYWD1ubwotKyAgZmkKLSsKLSsJOzsKLSsKLSsgICAgICBkZ3V4KikKLSsgICAgICAgIGNh c2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIGVjKysqKQotKwkgICAgIyBGSVhNRTogaW5z ZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBsZF9zaGxpYnNfQ1hYPW5vCi0r CSAgICA7OwotKyAgICAgICAgICBnaGN4KikKLSsJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBp bGVyCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJ ICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgICopCi0rCSAgICAjIEZJ WE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19D WFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAgIGZy ZWVic2RbMTJdKikKLSsgICAgICAgICMgQysrIHNoYXJlZCBsaWJyYXJpZXMgcmVwb3J0ZWQgdG8g YmUgZmFpcmx5IGJyb2tlbiBiZWZvcmUKLSsJIyBzd2l0Y2ggdG8gRUxGCi0rICAgICAgICBsZF9z aGxpYnNfQ1hYPW5vCi0rICAgICAgICA7OwotKwotKyAgICAgIGZyZWVic2QtZWxmKikKLSsgICAg ICAgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubwotKyAgICAgICAgOzsKLSsKLSsgICAgICBm cmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAgICAgICAjIEZyZWVCU0QgMyBhbmQgbGF0ZXIgdXNl IEdOVSBDKysgYW5kIEdOVSBsZCB3aXRoIHN0YW5kYXJkIEVMRgotKyAgICAgICAgIyBjb252ZW50 aW9ucwotKyAgICAgICAgbGRfc2hsaWJzX0NYWD15ZXMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAg Z251KikKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgaHB1eDkqKQotKyAgICAgICAgaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9K2IgJHt3bH0kbGliZGlyJwotKyAgICAgICAgaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgotKyAgICAgICAgZXhwb3J0X2R5bmFtaWNfZmxh Z19zcGVjX0NYWD0nJHt3bH0tRScKLSsgICAgICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVzCi0r ICAgICAgICBoYXJkY29kZV9taW51c19MX0NYWD15ZXMgIyBOb3QgaW4gdGhlIHNlYXJjaCBQQVRI LAotKwkJCQkgICAgICAgICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQKLSsJCQkJICAgICAgICAg ICAgICMgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCi0rCi0rICAgICAgICBjYXNlICRjY19iYXNl bmFtZSBpbgotKyAgICAgICAgICBDQyopCi0rICAgICAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHBy b3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICAgICAgbGRfc2hsaWJzX0NYWD1ubwot KyAgICAgICAgICAgIDs7Ci0rICAgICAgICAgIGFDQyopCi0rICAgICAgICAgICAgYXJjaGl2ZV9j bWRzX0NYWD0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1iICR7d2x9K2IgJHt3bH0k aW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAk b3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1l ICRsaWInCi0rICAgICAgICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2Ug dmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKyAgICAgICAgICAgICMgd2hhdCAiaGlkZGVuIiBs aWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKyAgICAgICAg ICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKyAgICAgICAgICAgICMKLSsgICAgICAg ICAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBj b21waWxlciBmcm9tCi0rICAgICAgICAgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9i amVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsgICAgICAgICAgICAjIGZyb20g dGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5 Ci0rICAgICAgICAgICAgIyBkZXBlbmRlbmNpZXMuCi0rICAgICAgICAgICAgb3V0cHV0X3ZlcmJv c2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4 dCAyPiYxKSB8ICRFR1JFUCAiXC1MImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8g Y2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQp OzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2Vk JwotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICopCi0rICAgICAgICAgICAgaWYgdGVzdCAi JEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRSTSAk b3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfSti ICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz fnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIv JHNvbmFtZSAkbGliJwotKyAgICAgICAgICAgIGVsc2UKLSsgICAgICAgICAgICAgICMgRklYTUU6 IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgICAgICAgbGRfc2hs aWJzX0NYWD1ubwotKyAgICAgICAgICAgIGZpCi0rICAgICAgICAgICAgOzsKLSsgICAgICAgIGVz YWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgaHB1eDEwKnxocHV4MTEqKQotKyAgICAgICAgaWYg dGVzdCAkd2l0aF9nbnVfbGQgPSBubzsgdGhlbgotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfQ1hYPScke3dsfStiICR7d2x9JGxpYmRpcicKLSsJICBoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yX0NYWD06Ci0rCi0rICAgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgICAgICAg aHBwYSo2NCp8aWE2NCopCi0rICAgICAgICAgICAgICA7OwotKyAgICAgICAgICAgICopCi0rCSAg ICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUUnCi0rICAgICAgICAgICAg ICA7OwotKyAgICAgICAgICBlc2FjCi0rICAgICAgICBmaQotKyAgICAgICAgY2FzZSAkaG9zdF9j cHUgaW4KLSsgICAgICAgICAgaHBwYSo2NCp8aWE2NCopCi0rICAgICAgICAgICAgaGFyZGNvZGVf ZGlyZWN0X0NYWD1ubwotKyAgICAgICAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5v Ci0rICAgICAgICAgICAgOzsKLSsgICAgICAgICAgKikKLSsgICAgICAgICAgICBoYXJkY29kZV9k aXJlY3RfQ1hYPXllcwotKyAgICAgICAgICAgIGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFg9 eWVzCi0rICAgICAgICAgICAgaGFyZGNvZGVfbWludXNfTF9DWFg9eWVzICMgTm90IGluIHRoZSBz ZWFyY2ggUEFUSCwKLSsJCQkJCSAgICAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0Ci0rCQkJCQkg ICAgICAgICAjIGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgotKyAgICAgICAgICAgIDs7Ci0rICAg ICAgICBlc2FjCi0rCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICBD QyopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJ ICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgIGFDQyopCi0rCSAgICBj YXNlICRob3N0X2NwdSBpbgotKwkgICAgICBocHBhKjY0KikKLSsJICAgICAgICBhcmNoaXZlX2Nt ZHNfQ1hYPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0r CSAgICAgICAgOzsKLSsJICAgICAgaWE2NCopCi0rCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0n JENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzJwotKwkgICAgICAgIDs7Ci0rCSAgICAgICopCi0rCSAgICAgICAgYXJjaGl2ZV9j bWRzX0NYWD0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFs bF9saWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgOzsKLSsJICAgIGVzYWMKLSsJ ICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRo YXQgbGlzdHMKLSsJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBh bmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnku Ci0rCSAgICAjCi0rCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHBy ZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCi0rCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0 ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQotKwkgICAgIyBmcm9tIHRo ZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQot KwkgICAgIyBkZXBlbmRlbmNpZXMuCi0rCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVt cGxpc3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEdSRVAg IlwtTCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRl c3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0 ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKLSsJICAgIDs7Ci0rICAg ICAgICAgICopCi0rCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKwkgICAgICBpZiB0 ZXN0ICR3aXRoX2dudV9sZCA9IG5vOyB0aGVuCi0rCSAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4K LSsJICAgICAgICAgIGhwcGEqNjQqKQotKwkgICAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSck Q0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MnCi0rCSAgICAgICAgICAgIDs7Ci0rCSAgICAgICAgICBpYTY0KikKLSsJICAgICAg ICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9 K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwot KwkgICAgICAgICAgICA7OwotKwkgICAgICAgICAgKikKLSsJICAgICAgICAgICAgYXJjaGl2ZV9j bWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1l ICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAg ICAgICAgIDs7Ci0rCSAgICAgICAgZXNhYwotKwkgICAgICBmaQotKwkgICAgZWxzZQotKwkgICAg ICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgICAgbGRf c2hsaWJzX0NYWD1ubwotKwkgICAgZmkKLSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAg ICA7OwotKwotKyAgICAgIGludGVyaXhbMy05XSopCi0rCWhhcmRjb2RlX2RpcmVjdF9DWFg9bm8K LSsJaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19DWFg9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCWV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl Y19DWFg9JyR7d2x9LUUnCi0rCSMgSGFjazogT24gSW50ZXJpeCAzLngsIHdlIGNhbm5vdCBjb21w aWxlIFBJQyBiZWNhdXNlIG9mIGEgYnJva2VuIGdjYy4KLSsJIyBJbnN0ZWFkLCBzaGFyZWQgbGli cmFyaWVzIGFyZSBsb2FkZWQgYXQgYW4gaW1hZ2UgYmFzZSAoMHgxMDAwMDAwMCBieQotKwkjIGRl ZmF1bHQpIGFuZCByZWxvY2F0ZWQgaWYgdGhleSBjb25mbGljdCwgd2hpY2ggaXMgYSBzbG93IHZl cnkgbWVtb3J5Ci0rCSMgY29uc3VtaW5nIGFuZCBmcmFnbWVudGluZyBwcm9jZXNzLiAgVG8gYXZv aWQgdGhpcywgd2UgcGljayBhIHJhbmRvbSwKLSsJIyAyNTYgS2lCLWFsaWduZWQgaW1hZ2UgYmFz ZSBiZXR3ZWVuIDB4NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQgbGluawotKwkjIHRpbWUuICBN b3ZpbmcgdXAgZnJvbSAweDEwMDAwMDAwIGFsc28gYWxsb3dzIG1vcmUgc2JyaygyKSBzcGFjZS4K LSsJYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4 cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxp YicKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J3NlZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJv bHMgPiRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1y ZXRhaW4tc3ltYm9scy1maWxlLCRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltICR7d2x9LS1p bWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIx NzcyODBgIC1vICRsaWInCi0rCTs7Ci0rICAgICAgaXJpeDUqIHwgaXJpeDYqKQotKyAgICAgICAg Y2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAgIyBTR0kgQysrCi0r CSAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtYWxsIC1tdWx0aWdvdCAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRf dmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29i amRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCi0rCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5p bmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJICAgICMgIkNDIC1h ciIsIHdoZXJlICJDQyIgaXMgdGhlIElSSVggQysrIGNvbXBpbGVyLiAgVGhpcyBpcwotKwkgICAg IyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1 ZGVkCi0rCSAgICAjIGluIHRoZSBhcmNoaXZlLgotKwkgICAgb2xkX2FyY2hpdmVfY21kc19DWFg9 JyRDQyAtYXIgLVdSLC11IC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCSAgICA7OwotKyAgICAgICAg ICAqKQotKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsJICAgICAgaWYgdGVzdCAi JHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJEND IC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0 ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZl cnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2Jq ZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJICAgICAgZWxzZQotKwkgICAgICAgIGFyY2hp dmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRf dmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgIC1vICRsaWInCi0rCSAgICAgIGZpCi0r CSAgICBmaQotKwkgICAgbGlua19hbGxfZGVwbGlic19DWFg9eWVzCi0rCSAgICA7OwotKyAgICAg ICAgZXNhYwotKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJw YXRoICR7d2x9JGxpYmRpcicKLSsgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hY PToKLSsgICAgICAgIGluaGVyaXRfcnBhdGhfQ1hYPXllcwotKyAgICAgICAgOzsKLSsKLSsgICAg ICBsaW51eCogfCBrKmJzZCotZ251KQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsg ICAgICAgICAgS0NDKikKLSsJICAgICMgS3VjayBhbmQgQXNzb2NpYXRlcywgSW5jLiAoS0FJKSBD KysgQ29tcGlsZXIKLSsKLSsJICAgICMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQgbGli cmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKLSsJICAgICMgZW5kcyB3aXRoICIuc28iIChvciAiLnNs IiBmb3IgSFAtVVgpLCBzbyByZW5hbWUgdGhlIGxpYnJhcnkKLSsJICAgICMgdG8gaXRzIHByb3Bl ciBuYW1lICh3aXRoIHZlcnNpb24pIGFmdGVyIGxpbmtpbmcuCi0rCSAgICBhcmNoaXZlX2NtZHNf Q1hYPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFteKCkwLTlB LVphLXp7fV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJz L1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAt byBcJHRlbXBsaWI7IG12IFwkdGVtcGxpYiAkbGliJwotKwkgICAgYXJjaGl2ZV9leHBzeW1fY21k c19DWFg9J3RlbXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW14oKTAt OUEtWmEtent9XVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUg InMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1l IC1vIFwkdGVtcGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9sczsg bXYgXCR0ZW1wbGliICRsaWInCi0rCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJv ZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAjIHdoYXQgImhpZGRlbiIgbGli cmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICMgbGlu a2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkgICAgIwotKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFw cGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkgICAgIyBl eHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlw IHRoZW0KLSsJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5j bHVkZWQgaW4gdGhlIGxpYnJhcnkKLSsJICAgICMgZGVwZW5kZW5jaWVzLgotKwkgICAgb3V0cHV0 X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgJENGTEFHUyAtdiBjb25mdGVzdC4kb2Jq ZXh0IC1vIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4mMSB8ICRHUkVQICJsZCJgOyBybSAtZiBs aWJjb25mdGVzdCRzaGFyZWRfZXh0OyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNh c2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7 ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcK LSsKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGli ZGlyJwotKwkgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1k eW5hbWljJwotKwotKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMg bXVzdCBiZSBjcmVhdGVkIHVzaW5nCi0rCSAgICAjICJDQyAtQnN0YXRpYyIsIHdoZXJlICJDQyIg aXMgdGhlIEtBSSBDKysgY29tcGlsZXIuCi0rCSAgICBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJEND IC1Cc3RhdGljIC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCSAgICA7OwotKwkgIGljcGMqIHwgZWNw YyogKQotKwkgICAgIyBJbnRlbCBDKysKLSsJICAgIHdpdGhfZ251X2xkPXllcwotKwkgICAgIyB2 ZXJzaW9uIDguMCBhbmQgYWJvdmUgb2YgaWNwYyBjaG9rZSBvbiBtdWx0aXBseSBkZWZpbmVkIHN5 bWJvbHMKLSsJICAgICMgaWYgd2UgYWRkICRwcmVkZXBfb2JqZWN0cyBhbmQgJHBvc3RkZXBfb2Jq ZWN0cywgaG93ZXZlciA3LjEgYW5kCi0rCSAgICAjIGVhcmxpZXIgZG8gbm90IGFkZCB0aGUgb2Jq ZWN0cyB0aGVtc2VsdmVzLgotKwkgICAgY2FzZSBgJENDIC1WIDI+JjFgIGluCi0rCSAgICAgICoi VmVyc2lvbiA3LiIqKQotKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwkJYXJjaGl2ZV9leHBz eW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFt ZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwot KwkJOzsKLSsJICAgICAgKikgICMgVmVyc2lvbiA4LjAgb3IgbmV3ZXIKLSsJICAgICAgICB0bXBf aWR5bj0KLSsJICAgICAgICBjYXNlICRob3N0X2NwdSBpbgotKwkJICBpYTY0KikgdG1wX2lkeW49 JyAtaV9keW5hbWljJzs7Ci0rCQllc2FjCi0rCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJEND IC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwkJYXJjaGl2ZV9leHBzeW1fY21kc19D WFg9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAk d2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJCTs7Ci0rCSAgICBlc2FjCi0rCSAgICBhcmNo aXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf Q1hYPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj X0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWNfQ1hYPScke3dsfS0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAke3dsfS0tbm8td2hvbGUt YXJjaGl2ZScKLSsJICAgIDs7Ci0rICAgICAgICAgIHBnQ0MqIHwgcGdjcHAqKQotKyAgICAgICAg ICAgICMgUG9ydGxhbmQgR3JvdXAgQysrIGNvbXBpbGVyCi0rCSAgICBjYXNlIGAkQ0MgLVZgIGlu Ci0rCSAgICAqcGdDQ1wgWzEtNV0qIHwgKnBnY3BwXCBbMS01XSopCi0rCSAgICAgIHByZWxpbmtf Y21kc19DWFg9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+Ci0rCQlybSAtcmYgJHRwbGRpcn4KLSsJCSRD QyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJG9ianMgJGxp Ym9ianMgJGNvbXBpbGVfZGVwbGlic34KLSsJCWNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29t bWFuZCBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCAkTkwyU1BgIicKLSsJICAgICAgb2xkX2Fy Y2hpdmVfY21kc19DWFg9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+Ci0rCQlybSAtcmYgJHRwbGRpcn4K LSsJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJG9s ZG9ianMkb2xkX2RlcGxpYnN+Ci0rCQkkQVIgJEFSX0ZMQUdTICRvbGRsaWIkb2xkb2JqcyRvbGRf ZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCAkTkwyU1BgfgotKwkJJFJBTkxJQiAk b2xkbGliJwotKwkgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgot KwkJcm0gLXJmICR0cGxkaXJ+Ci0rCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50aWF0 aW9uX2RpciAkdHBsZGlyICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkY29udmVu aWVuY2UgJHBvc3RkZXBfb2JqZWN0c34KLSsJCSRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5M MlNQYCAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0k c29uYW1lIC1vICRsaWInCi0rCSAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSd0cGxkaXI9 VGVtcGxhdGUuZGlyfgotKwkJcm0gLXJmICR0cGxkaXJ+Ci0rCQkkQ0MgLS1wcmVsaW5rX29iamVj dHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGlyICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkY29udmVuaWVuY2UgJHBvc3RkZXBfb2JqZWN0c34KLSsJCSRDQyAtc2hhcmVkICRw aWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgYGZpbmQgJHRwbGRpciAt bmFtZSBcKi5vIHwgJE5MMlNQYCAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhw b3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICAgICAgOzsKLSsJICAgICopICMgVmVyc2lvbiA2IHdp bGwgdXNlIHdlYWsgc3ltYm9scwotKwkgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJl ZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgLW8gJGxpYicK LSsJICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1m aWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rCSAgICAgIDs7Ci0rCSAgICBlc2Fj Ci0rCi0rCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXJwYXRoICR7 d2x9JGxpYmRpcicKLSsJICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1l eHBvcnQtZHluYW1pYycKLSsJICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJHt3bH0t LXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4g XCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsg ZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZl JwotKyAgICAgICAgICAgIDs7Ci0rCSAgY3h4KikKLSsJICAgICMgQ29tcGFxIEMrKwotKwkgICAg YXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wk c29uYW1lIC1vICRsaWInCi0rCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFy ZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICAtbyAkbGliICR7d2x9LXJldGFp bi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzJwotKwotKwkgICAgcnVucGF0aF92YXI9 TERfUlVOX1BBVEgKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctcnBhdGgg JGxpYmRpcicKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsKLSsJICAg ICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQg bGlzdHMKLSsJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQg ZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0r CSAgICAjCi0rCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZl bnQgdGhpcyBjb21waWxlciBmcm9tCi0rCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0g b2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQotKwkgICAgIyBmcm9tIHRoZSBv dXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQotKwkg ICAgIyBkZXBlbmRlbmNpZXMuCi0rCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxp c3Q9YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAg ImxkImA7IHRlbXBsaXN0PWAkRUNITyAiWCR0ZW1wbGlzdCIgfCAkWHNlZCAtZSAicy9cKF4uKmxk LipcKVwoIC4qbGQgLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8g Y2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQp OzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2Vk JwotKwkgICAgOzsKLSsJICB4bCopCi0rCSAgICAjIElCTSBYTCA4LjAgb24gUFBDLCB3aXRoIEdO VSBsZAotKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoICR7 d2x9JGxpYmRpcicKLSsJICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1l eHBvcnQtZHluYW1pYycKLSsJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtcW1rc2hyb2JqICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAt byAkbGliJwotKwkgICAgaWYgdGVzdCAieCRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmciID0geHll czsgdGhlbgotKwkgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nZWNobyAieyBnbG9iYWw6 IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJCWNhdCAkZXhwb3J0X3N5bWJvbHMg fCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4K LSsJCWVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgot KwkJJENDIC1xbWtzaHJvYmogJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXZlcnNpb24tc2NyaXB0ICR7d2x9JG91dHB1dF9vYmpk aXIvJGxpYm5hbWUudmVyIC1vICRsaWInCi0rCSAgICBmaQotKwkgICAgOzsKLSsJICAqKQotKwkg ICAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCi0rCSAgICAqU3VuXCBDKikKLSsJICAg ICAgIyBTdW4gQysrIDUuOQotKwkgICAgICBub191bmRlZmluZWRfZmxhZ19DWFg9JyAtemRlZnMn Ci0rCSAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9 IC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICAgICAgYXJjaGl2ZV9leHBzeW1fY21k c19DWFg9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oJHNvbmFtZSAtbyAkbGliICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzJwot KwkgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLVIkbGliZGlyJwotKwkgICAg ICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS13aG9sZS1hcmNoaXZlYG5ld19j b252ZW5pZW5jZT07IGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgLXogXCIk Y29udlwiIHx8IG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9u ZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwot KwkgICAgICBjb21waWxlcl9uZWVkc19vYmplY3RfQ1hYPXllcwotKwotKwkgICAgICAjIE5vdCBz dXJlIHdoZXRoZXIgc29tZXRoaW5nIGJhc2VkIG9uCi0rCSAgICAgICMgJENDICRDRkxBR1MgLXYg Y29uZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRfZXh0IDI+JjEKLSsJICAgICAg IyB3b3VsZCBiZSBiZXR0ZXIuCi0rCSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hv JwotKwotKwkgICAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0 IGJlIGNyZWF0ZWQgdXNpbmcKLSsJICAgICAgIyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMgdGhl IFN1biBDKysgY29tcGlsZXIuICBUaGlzIGlzCi0rCSAgICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ug c3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAotKwkgICAgICAjIGluIHRo ZSBhcmNoaXZlLgotKwkgICAgICBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC14YXIgLW8gJG9s ZGxpYiAkb2xkb2JqcycKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICAgIDs7Ci0rCWVzYWMK LSsJOzsKLSsKLSsgICAgICBseW54b3MqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3Bl ciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCWxkX3NobGlic19DWFg9bm8KLSsJOzsKLSsKLSsgICAg ICBtODhrKikKLSsgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAotKyAgICAgICAgbGRfc2hsaWJzX0NYWD1ubwotKwk7OwotKwotKyAgICAgIG12cyopCi0r ICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICBjeHgqKQotKwkgICAgIyBG SVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBsZF9zaGxpYnNf Q1hYPW5vCi0rCSAgICA7OwotKwkgICopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMr KyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rCWVz YWMKLSsJOzsKLSsKLSsgICAgICBuZXRic2QqKQotKyAgICAgICAgaWYgZWNobyBfX0VMRl9fIHwg JENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsJICBhcmNoaXZlX2Nt ZHNfQ1hYPSckTEQgLUJzaGFyZWFibGUgIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGxpbmtlcl9mbGFncycKLSsJICB3bGFyYz0KLSsJ ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLVIkbGliZGlyJwotKwkgIGhhcmRjb2Rl X2RpcmVjdF9DWFg9eWVzCi0rCSAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KLSsJZmkK LSsJIyBXb3JrYXJvdW5kIHNvbWUgYnJva2VuIHByZS0xLjUgdG9vbGNoYWlucwotKwlvdXRwdXRf dmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0 IDI+JjEgfCAkR1JFUCBjb25mdGVzdC4kb2JqZXh0IHwgJFNFRCAtZSAiczotbGdjYyAtbGMgLWxn Y2M6OiInCi0rCTs7Ci0rCi0rICAgICAgKm50byogfCAqcW54KikKLSsgICAgICAgIGxkX3NobGli c19DWFg9eWVzCi0rCTs7Ci0rCi0rICAgICAgb3BlbmJzZDIqKQotKyAgICAgICAgIyBDKysgc2hh cmVkIGxpYnJhcmllcyBhcmUgZmFpcmx5IGJyb2tlbgotKwlsZF9zaGxpYnNfQ1hYPW5vCi0rCTs7 Ci0rCi0rICAgICAgb3BlbmJzZCopCi0rCWlmIHRlc3QgLWYgL3Vzci9saWJleGVjL2xkLnNvOyB0 aGVuCi0rCSAgaGFyZGNvZGVfZGlyZWN0X0NYWD15ZXMKLSsJICBoYXJkY29kZV9zaGxpYnBhdGhf dmFyX0NYWD1ubwotKwkgIGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFg9eWVzCi0rCSAgYXJj aGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkbGliJwot KwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGlyJwot KwkgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfX2Ai IHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhl bgotKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMgLW8gJGxp YicKLSsJICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUUnCi0rCSAgICB3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZl bmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgZmkKLSsJICBvdXRwdXRf dmVyYm9zZV9saW5rX2NtZD1lY2hvCi0rCWVsc2UKLSsJICBsZF9zaGxpYnNfQ1hYPW5vCi0rCWZp Ci0rCTs7Ci0rCi0rICAgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgICAgICAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgS0NDKikKLSsJICAgICMgS3VjayBhbmQgQXNzb2Np YXRlcywgSW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKLSsKLSsJICAgICMgS0NDIHdpbGwgb25seSBj cmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKLSsJICAgICMgZW5kcyB3 aXRoICIuc28iIChvciAiLnNsIiBmb3IgSFAtVVgpLCBzbyByZW5hbWUgdGhlIGxpYnJhcnkKLSsJ ICAgICMgdG8gaXRzIHByb3BlciBuYW1lICh3aXRoIHZlcnNpb24pIGFmdGVyIGxpbmtpbmcuCi0r CSAgICBhcmNoaXZlX2NtZHNfQ1hYPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAt ZSAnXCcncy9cKFteKCkwLTlBLVphLXp7fV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hv ICIkbGliIiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCi0rCi0r CSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGgsJGxpYmRpcicK LSsJICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsKLSsJICAgICMgQXJjaGl2 ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZwotKwkg ICAgIyB0aGUgS0FJIEMrKyBjb21waWxlci4KLSsJICAgIGNhc2UgJGhvc3QgaW4KLSsJICAgICAg b3NmMyopIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUJzdGF0aWMgLW8gJG9sZGxpYiAkb2xk b2JqcycgOzsKLSsJICAgICAgKikgb2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAtbyAkb2xkbGli ICRvbGRvYmpzJyA7OwotKwkgICAgZXNhYwotKwkgICAgOzsKLSsgICAgICAgICAgUkNDKikKLSsJ ICAgICMgUmF0aW9uYWwgQysrIDIuNC4xCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMr KyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAg ICAgICAgIGN4eCopCi0rCSAgICBjYXNlICRob3N0IGluCi0rCSAgICAgIG9zZjMqKQotKwkgICAg ICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7 d2x9XConCi0rCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQke2FsbG93X3Vu ZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2 ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNl ZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGli JwotKwkgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCAk e3dsfSRsaWJkaXInCi0rCQk7OwotKwkgICAgICAqKQotKwkgICAgICAgIGFsbG93X3VuZGVmaW5l ZF9mbGFnX0NYWD0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKLSsJICAgICAgICBhcmNoaXZlX2Nt ZHNfQ1hYPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5 bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92 ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2Jq ZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRz X0NYWD0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxu IiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lfgotKwkgICAgICAgICAg ZWNobyAiLWhpZGRlbiI+PiAkbGliLmV4cH4KLSsJICAgICAgICAgICRDQyAtc2hhcmVkJGFsbG93 X3VuZGVmaW5lZF9mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgJHt3bH0taW5w dXQgJHt3bH0kbGliLmV4cCAgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92 ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2Jq ZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4KLSsJICAgICAgICAgICRSTSAkbGliLmV4cCcKLSsJ ICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLXJwYXRoICRsaWJkaXInCi0r CQk7OwotKwkgICAgZXNhYwotKwotKwkgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9 OgotKwotKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBv dXRwdXQgdGhhdCBsaXN0cwotKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0 IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQg bGlicmFyeS4KLSsJICAgICMKLSsJICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3 YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KLSsJICAgICMgZXhwbGljaXRseSBsaW5r aW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCi0rCSAgICAj IGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBs aWJyYXJ5Ci0rCSAgICAjIGRlcGVuZGVuY2llcy4KLSsJICAgIG91dHB1dF92ZXJib3NlX2xpbmtf Y21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+ JjEgfCAkR1JFUCAibGQiIHwgJEdSRVAgLXYgImxkOiJgOyB0ZW1wbGlzdD1gJEVDSE8gIlgkdGVt cGxpc3QiIHwgJFhzZWQgLWUgInMvXCheLipsZC4qXClcKCAuKmxkLiokXCkvXDEvImA7IGxpc3Q9 IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBs aXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBk b25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgaWYg dGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCSAg ICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7 d2x9XConCi0rCSAgICAgIGNhc2UgJGhvc3QgaW4KLSsJICAgICAgICBvc2YzKikKLSsJICAgICAg ICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVm aW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAi JHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmci IHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29f bG9jYXRpb25zIC1vICRsaWInCi0rCQkgIDs7Ci0rCSAgICAgICAgKikKLSsJICAgICAgICAgIGFy Y2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9m bGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0 IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3Ry aW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9 L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkJICA7OwotKwkgICAgICBlc2FjCi0rCi0rCSAgICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXIn Ci0rCSAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsKLSsJICAgICAgIyBD b21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0 cwotKwkgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZs YWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0r CSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNv bmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwiJwotKwotKwkgICAgZWxzZQotKwkgICAg ICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgICAgbGRf c2hsaWJzX0NYWD1ubwotKwkgICAgZmkKLSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAg ICA7OwotKwotKyAgICAgIHBzb3MqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAgICAgICA7 OwotKwotKyAgICAgIHN1bm9zNCopCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAg ICAgICAgICBDQyopCi0rCSAgICAjIFN1biBDKysgNC54Ci0rCSAgICAjIEZJWE1FOiBpbnNlcnQg cHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAg IDs7Ci0rICAgICAgICAgIGxjYyopCi0rCSAgICAjIEx1Y2lkCi0rCSAgICAjIEZJWE1FOiBpbnNl cnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJ ICAgIDs7Ci0rICAgICAgICAgICopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBs aWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAg ICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAgIHNvbGFyaXMqKQotKyAgICAgICAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAgIyBTdW4gQysrIDQuMiwgNS54 IGFuZCBDZW50ZXJsaW5lIEMrKwotKyAgICAgICAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NY WD15ZXMKLSsJICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nIC16ZGVmcycKLSsJICAgIGFyY2hp dmVfY21kc19DWFg9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICAtaCRzb25hbWUgLW8g JGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MnCi0rCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nZWNobyAieyBn bG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipc KS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkg ICAgICAkQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAke3dsfS1NICR7d2x9JGxpYi5leHAg LWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKLSsKLSsJICAgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctUiRsaWJkaXInCi0rCSAgICBoYXJkY29kZV9zaGxp YnBhdGhfdmFyX0NYWD1ubwotKwkgICAgY2FzZSAkaG9zdF9vcyBpbgotKwkgICAgICBzb2xhcmlz Mi5bMC01XSB8IHNvbGFyaXMyLlswLTVdLiopIDs7Ci0rCSAgICAgICopCi0rCQkjIFRoZSBjb21w aWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtlciBvcHRpb25zLAotKwkJ IyBidXQgdW5kZXJzdGFuZHMgYC16IGxpbmtlcl9mbGFnJy4KLSsJICAgICAgICAjIFN1cHBvcnRl ZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5YmUgMi41LjE/KQotKwkJd2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWNfQ1hYPScteiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRlZmF1bHRleHRyYWN0Jwot KwkgICAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICBsaW5rX2FsbF9kZXBsaWJzX0NYWD15ZXMK LSsKLSsJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJwotKwotKwkgICAgIyBBcmNo aXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCi0r CSAgICAjICJDQyAteGFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgU3VuIEMrKyBjb21waWxlci4gIFRo aXMgaXMKLSsJICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxh dGVzIGFyZSBpbmNsdWRlZAotKwkgICAgIyBpbiB0aGUgYXJjaGl2ZS4KLSsJICAgIG9sZF9hcmNo aXZlX2NtZHNfQ1hYPSckQ0MgLXhhciAtbyAkb2xkbGliICRvbGRvYmpzJwotKwkgICAgOzsKLSsg ICAgICAgICAgZ2N4KikKLSsJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCi0rCSAgICBh cmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1l IC1vICRsaWInCi0rCi0rCSAgICAjIFRoZSBDKysgY29tcGlsZXIgbXVzdCBiZSB1c2VkIHRvIGNy ZWF0ZSB0aGUgYXJjaGl2ZS4KLSsJICAgIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgJExERkxB R1MgLWFyY2hpdmUgLW8gJG9sZGxpYiAkb2xkb2JqcycKLSsJICAgIDs7Ci0rICAgICAgICAgICop Ci0rCSAgICAjIEdOVSBDKysgY29tcGlsZXIgd2l0aCBTb2xhcmlzIGxpbmtlcgotKwkgICAgaWYg dGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCSAg ICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9LXogJHt3bH1kZWZzJwotKwkgICAgICBp ZiAkQ0MgLS12ZXJzaW9uIHwgJEdSRVAgLXYgJ14yXC43JyA+IC9kZXYvbnVsbDsgdGhlbgotKwkg ICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkTERGTEFHUyAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICAgICAgYXJjaGl2ZV9l eHBzeW1fY21kc19DWFg9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9z eW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6 ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJCSAgJENDIC1zaGFyZWQgLW5vc3RkbGliICR7d2x9LU0g JHdsJGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwotKwotKwkgICAgICAg ICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQg bGlzdHMKLSsJICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMg YW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGli cmFyeS4KLSsJICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENG TEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKLSsJICAgICAgZWxz ZQotKwkgICAgICAgICMgZysrIDIuNyBhcHBlYXJzIHRvIHJlcXVpcmUgYC1HJyBOT1QgYC1zaGFy ZWQnIG9uIHRoaXMKLSsJICAgICAgICAjIHBsYXRmb3JtLgotKwkgICAgICAgIGFyY2hpdmVfY21k c19DWFg9JyRDQyAtRyAtbm9zdGRsaWIgJExERkxBR1MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNv bmFtZSAtbyAkbGliJwotKwkgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdlY2hvICJ7 IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCgu KlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+Ci0r CQkgICRDQyAtRyAtbm9zdGRsaWIgJHt3bH0tTSAkd2wkbGliLmV4cCAtbyAkbGliICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn c34kUk0gJGxpYi5leHAnCi0rCi0rCSAgICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVy IHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAgICAgICMgd2hhdCAiaGlk ZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkg ICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkgICAgICAgIG91dHB1dF92ZXJi b3NlX2xpbmtfY21kPSckQ0MgLUcgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAk R1JFUCAiXC1MIicKLSsJICAgICAgZmkKLSsKLSsJICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19DWFg9JyR7d2x9LVIgJHdsJGxpYmRpcicKLSsJICAgICAgY2FzZSAkaG9zdF9vcyBpbgot KwkJc29sYXJpczIuWzAtNV0gfCBzb2xhcmlzMi5bMC01XS4qKSA7OwotKwkJKikKLSsJCSAgd2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3dsfS16ICR7d2x9YWxsZXh0cmFjdCRjb252ZW5p ZW5jZSAke3dsfS16ICR7d2x9ZGVmYXVsdGV4dHJhY3QnCi0rCQkgIDs7Ci0rCSAgICAgIGVzYWMK LSsJICAgIGZpCi0rCSAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAg c3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcuWzAxXS5bMTBdKiB8 IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4wLlswMjRdKikKLSsgICAgICBub191bmRlZmluZWRfZmxh Z19DWFg9JyR7d2x9LXosdGV4dCcKLSsgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8K LSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwotKyAgICAgIHJ1bnBhdGhfdmFy PSdMRF9SVU5fUEFUSCcKLSsKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAg Q0MqKQotKwkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgYXJjaGl2ZV9leHBzeW1f Y21kc19DWFg9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsK LSsJKikKLSsJICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgYXJjaGl2ZV9l eHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xz ICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKLSsJICA7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICAgIHN5c3Y1KiB8IHNj bzMuMnY1KiB8IHNjbzV2NiopCi0rCSMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3 ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90Ci0rCSMgbGluayB3aXRoIC1sYywgYW5k IHRoYXQgd291bGQgY2F1c2UgYW55IHN5bWJvbHMgdXNlZCBmcm9tIGxpYmMgdG8KLSsJIyBhbHdh eXMgYmUgdW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMganVzdCBhYm91dCBubyBsaWJyYXJ5IHdvdWxk Ci0rCSMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2Ug dXNlIC16IHRleHQKLSsJIyB0aG91Z2gsIHdoaWNoIGRvZXMgY2F0Y2ggc29tZSBiYWQgc3ltYm9s cyBidXQgaXNuJ3QgYXMgaGVhdnktaGFuZGVkCi0rCSMgYXMgLXogZGVmcy4KLSsJbm9fdW5kZWZp bmVkX2ZsYWdfQ1hYPScke3dsfS16LHRleHQnCi0rCWFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0n JHt3bH0teixub2RlZnMnCi0rCWFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubwotKwloYXJkY29k ZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0n JHt3bH0tUiwkbGliZGlyJwotKwloYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD0nOicKLSsJ bGlua19hbGxfZGVwbGlic19DWFg9eWVzCi0rCWV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9 JyR7d2x9LUJleHBvcnQnCi0rCXJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsJY2FzZSAk Y2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0n JENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKLSsJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLUcgJHt3bH0tQmV4 cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgYXJjaGl2ZV9j bWRzX0NYWD0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRD QyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICAgIDs7Ci0rCWVz YWMKLSsgICAgICA7OwotKwotKyAgICAgIHRhbmRlbSopCi0rICAgICAgICBjYXNlICRjY19iYXNl bmFtZSBpbgotKyAgICAgICAgICBOQ0MqKQotKwkgICAgIyBOb25TdG9wLVVYIE5DQyAzLjIwCi0r CSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxk X3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgICopCi0rCSAgICAjIEZJWE1FOiBp bnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8K LSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAgIHZ4d29ya3Mq KQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0r ICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAgICAgICA7OwotKwotKyAgICAgICopCi0rICAg ICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgICAg IGxkX3NobGlic19DWFg9bm8KLSsgICAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGxkX3NobGlic19DWFgiID4mNQotKyRhc19l Y2hvICIkbGRfc2hsaWJzX0NYWCIgPiY2OyB9Ci0rICAgIHRlc3QgIiRsZF9zaGxpYnNfQ1hYIiA9 IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KLSsKLSsgICAgR0NDX0NYWD0iJEdYWCIKLSsgICAg TERfQ1hYPSIkTEQiCi0rCi0rICAgICMjIENBVkVBVCBFTVBUT1I6Ci0rICAgICMjIFRoZXJlIGlz IG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hh bmdlCi0rICAgICMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJv dW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5Ci0rICAgICMjIHdoYXQgeW91IGFyZSBkb2luZy4u LgotKyAgICAjIERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgYW5kIGFmdGVyIHRoZSBvYmpl Y3QgYmVpbmcgbGlua2VkOgotK3ByZWRlcF9vYmplY3RzX0NYWD0KLStwb3N0ZGVwX29iamVjdHNf Q1hYPQotK3ByZWRlcHNfQ1hYPQotK3Bvc3RkZXBzX0NYWD0KLStjb21waWxlcl9saWJfc2VhcmNo X3BhdGhfQ1hYPQotKwotK2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0rY2xhc3Mg Rm9vCi0rewotK3B1YmxpYzoKLSsgIEZvbyAodm9pZCkgeyBhID0gMDsgfQotK3ByaXZhdGU6Ci0r ICBpbnQgYTsKLSt9OwotK19MVF9FT0YKLSsKLStpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElO RU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0r ICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgotKyAgIyBQYXJzZSB0aGUg Y29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkKLSsgICMgb2JqZWN0cywg bGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgotKwotKyAgIyBTZW50aW5lbCB1c2VkIHRvIGtl ZXAgdHJhY2sgb2Ygd2hldGhlciBvciBub3Qgd2UgYXJlIGJlZm9yZQotKyAgIyB0aGUgY29uZnRl c3Qgb2JqZWN0IGZpbGUuCi0rICBwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lPW5vCi0rCi0rICBm b3IgcCBpbiBgZXZhbCAiJG91dHB1dF92ZXJib3NlX2xpbmtfY21kImA7IGRvCi0rICAgIGNhc2Ug JHAgaW4KLSsKLSsgICAgLUwqIHwgLVIqIHwgLWwqKQotKyAgICAgICAjIFNvbWUgY29tcGlsZXJz IHBsYWNlIHNwYWNlIGJldHdlZW4gIi17TCxSfSIgYW5kIHRoZSBwYXRoLgotKyAgICAgICAjIFJl bW92ZSB0aGUgc3BhY2UuCi0rICAgICAgIGlmIHRlc3QgJHAgPSAiLUwiIHx8Ci0rICAgICAgICAg IHRlc3QgJHAgPSAiLVIiOyB0aGVuCi0rCSBwcmV2PSRwCi0rCSBjb250aW51ZQotKyAgICAgICBl bHNlCi0rCSBwcmV2PQotKyAgICAgICBmaQotKwotKyAgICAgICBpZiB0ZXN0ICIkcHJlX3Rlc3Rf b2JqZWN0X2RlcHNfZG9uZSIgPSBubzsgdGhlbgotKwkgY2FzZSAkcCBpbgotKwkgLUwqIHwgLVIq KQotKwkgICAjIEludGVybmFsIGNvbXBpbGVyIGxpYnJhcnkgcGF0aHMgc2hvdWxkIGNvbWUgYWZ0 ZXIgdGhvc2UKLSsJICAgIyBwcm92aWRlZCB0aGUgdXNlci4gIFRoZSBwb3N0ZGVwcyBhbHJlYWR5 IGNvbWUgYWZ0ZXIgdGhlCi0rCSAgICMgdXNlciBzdXBwbGllZCBsaWJzIHNvIHRoZXJlIGlzIG5v IG5lZWQgdG8gcHJvY2VzcyB0aGVtLgotKwkgICBpZiB0ZXN0IC16ICIkY29tcGlsZXJfbGliX3Nl YXJjaF9wYXRoX0NYWCI7IHRoZW4KLSsJICAgICBjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hY PSIke3ByZXZ9JHtwfSIKLSsJICAgZWxzZQotKwkgICAgIGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0 aF9DWFg9IiR7Y29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWH0gJHtwcmV2fSR7cH0iCi0rCSAg IGZpCi0rCSAgIDs7Ci0rCSAjIFRoZSAiLWwiIGNhc2Ugd291bGQgbmV2ZXIgY29tZSBiZWZvcmUg dGhlIG9iamVjdCBiZWluZwotKwkgIyBsaW5rZWQsIHNvIGRvbid0IGJvdGhlciBoYW5kbGluZyB0 aGlzIGNhc2UuCi0rCSBlc2FjCi0rICAgICAgIGVsc2UKLSsJIGlmIHRlc3QgLXogIiRwb3N0ZGVw c19DWFgiOyB0aGVuCi0rCSAgIHBvc3RkZXBzX0NYWD0iJHtwcmV2fSR7cH0iCi0rCSBlbHNlCi0r CSAgIHBvc3RkZXBzX0NYWD0iJHtwb3N0ZGVwc19DWFh9ICR7cHJldn0ke3B9IgotKwkgZmkKLSsg ICAgICAgZmkKLSsgICAgICAgOzsKLSsKLSsgICAgKi4kb2JqZXh0KQotKyAgICAgICAjIFRoaXMg YXNzdW1lcyB0aGF0IHRoZSB0ZXN0IG9iamVjdCBmaWxlIG9ubHkgc2hvd3MgdXAKLSsgICAgICAg IyBvbmNlIGluIHRoZSBjb21waWxlciBvdXRwdXQuCi0rICAgICAgIGlmIHRlc3QgIiRwIiA9ICJj b25mdGVzdC4kb2JqZXh0IjsgdGhlbgotKwkgcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZT15ZXMK LSsJIGNvbnRpbnVlCi0rICAgICAgIGZpCi0rCi0rICAgICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9v YmplY3RfZGVwc19kb25lIiA9IG5vOyB0aGVuCi0rCSBpZiB0ZXN0IC16ICIkcHJlZGVwX29iamVj dHNfQ1hYIjsgdGhlbgotKwkgICBwcmVkZXBfb2JqZWN0c19DWFg9IiRwIgotKwkgZWxzZQotKwkg ICBwcmVkZXBfb2JqZWN0c19DWFg9IiRwcmVkZXBfb2JqZWN0c19DWFggJHAiCi0rCSBmaQotKyAg ICAgICBlbHNlCi0rCSBpZiB0ZXN0IC16ICIkcG9zdGRlcF9vYmplY3RzX0NYWCI7IHRoZW4KLSsJ ICAgcG9zdGRlcF9vYmplY3RzX0NYWD0iJHAiCi0rCSBlbHNlCi0rCSAgIHBvc3RkZXBfb2JqZWN0 c19DWFg9IiRwb3N0ZGVwX29iamVjdHNfQ1hYICRwIgotKwkgZmkKLSsgICAgICAgZmkKLSsgICAg ICAgOzsKLSsKLSsgICAgKikgOzsgIyBJZ25vcmUgdGhlIHJlc3QuCi0rCi0rICAgIGVzYWMKLSsg IGRvbmUKLSsKLSsgICMgQ2xlYW4gdXAuCi0rICBybSAtZiBhLm91dCBhLmV4ZQotK2Vsc2UKLSsg IGVjaG8gImxpYnRvb2wubTQ6IGVycm9yOiBwcm9ibGVtIGNvbXBpbGluZyBDWFggdGVzdCBwcm9n cmFtIgotK2ZpCi0rCi0rJFJNIC1mIGNvbmZlc3QuJG9iamV4dAotKwotKyMgUE9SVE1FOiBvdmVy cmlkZSBhYm92ZSB0ZXN0IG9uIHN5c3RlbXMgd2hlcmUgaXQgaXMgYnJva2VuCi0rY2FzZSAkaG9z dF9vcyBpbgotK2ludGVyaXhbMy05XSopCi0rICAjIEludGVyaXggMy41IGluc3RhbGxzIGNvbXBs ZXRlbHkgaG9zZWQgLmxhIGZpbGVzIGZvciBDKyssIHNvIHJhdGhlciB0aGFuCi0rICAjIGhhY2sg YWxsIGFyb3VuZCBpdCwgbGV0J3MganVzdCB0cnVzdCAiZysrIiB0byBEVFJULgotKyAgcHJlZGVw X29iamVjdHNfQ1hYPQotKyAgcG9zdGRlcF9vYmplY3RzX0NYWD0KLSsgIHBvc3RkZXBzX0NYWD0K LSsgIDs7Ci0rCi0rbGludXgqKQotKyAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCi0r ICAqU3VuXCBDKikKLSsgICAgIyBTdW4gQysrIDUuOQotKwotKyAgICAjIFRoZSBtb3JlIHN0YW5k YXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKLSsgICAgIyBpbmNvbXBhdGlibGUg d2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCi0rICAgICMgaXQgaWYgaXQn cyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4gYXMKLSsgICAgIyAtbGlicmFyeT1zdGxwb3J0 NCBkZXBlbmRzIG9uIGl0LgotKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1MgIiBpbgotKyAgICAq IiAtbGlicmFyeT1zdGxwb3J0NCAiKikKLSsgICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMK LSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIGlmIHRlc3QgIiRzb2xhcmlzX3VzZV9zdGxw b3J0NCIgIT0geWVzOyB0aGVuCi0rICAgICAgcG9zdGRlcHNfQ1hYPSctbGlicmFyeT1Dc3RkIC1s aWJyYXJ5PUNydW4nCi0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwotK3NvbGFy aXMqKQotKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgIENDKikKLSsgICAgIyBUaGUgbW9yZSBz dGFuZGFyZHMtY29uZm9ybWluZyBzdGxwb3J0NCBsaWJyYXJ5IGlzCi0rICAgICMgaW5jb21wYXRp YmxlIHdpdGggdGhlIENzdGQgbGlicmFyeS4gQXZvaWQgc3BlY2lmeWluZwotKyAgICAjIGl0IGlm IGl0J3MgaW4gQ1hYRkxBR1MuIElnbm9yZSBsaWJDcnVuIGFzCi0rICAgICMgLWxpYnJhcnk9c3Rs cG9ydDQgZGVwZW5kcyBvbiBpdC4KLSsgICAgY2FzZSAiICRDWFggJENYWEZMQUdTICIgaW4KLSsg ICAgKiIgLWxpYnJhcnk9c3RscG9ydDQgIiopCi0rICAgICAgc29sYXJpc191c2Vfc3RscG9ydDQ9 eWVzCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICAjIEFkZGluZyB0aGlzIHJlcXVpcmVz IGEga25vd24tZ29vZCBzZXR1cCBvZiBzaGFyZWQgbGlicmFyaWVzIGZvcgotKyAgICAjIFN1biBj b21waWxlciB2ZXJzaW9ucyBiZWZvcmUgNS42LCBlbHNlIFBJQyBvYmplY3RzIGZyb20gYW4gb2xk Ci0rICAgICMgYXJjaGl2ZSB3aWxsIGJlIGxpbmtlZCBpbnRvIHRoZSBvdXRwdXQsIGxlYWRpbmcg dG8gc3VidGxlIGJ1Z3MuCi0rICAgIGlmIHRlc3QgIiRzb2xhcmlzX3VzZV9zdGxwb3J0NCIgIT0g eWVzOyB0aGVuCi0rICAgICAgcG9zdGRlcHNfQ1hYPSctbGlicmFyeT1Dc3RkIC1saWJyYXJ5PUNy dW4nCi0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotK2VzYWMKLSsKLSsKLStjYXNl ICIgJHBvc3RkZXBzX0NYWCAiIGluCi0rKiIgLWxjICIqKSBhcmNoaXZlX2NtZHNfbmVlZF9sY19D WFg9bm8gOzsKLStlc2FjCi0rIGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19DWFg9Ci0raWYgdGVz dCAtbiAiJHtjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYfSI7IHRoZW4KLSsgY29tcGlsZXJf bGliX3NlYXJjaF9kaXJzX0NYWD1gZWNobyAiICR7Y29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NY WH0iIHwgJHtTRUR9IC1lICdzISAtTCEgIWcnIC1lICdzIV4gISEnYAotK2ZpCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPQot K2x0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KLStsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9 Ci0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkY29tcGlsZXIg b3B0aW9uIHRvIHByb2R1Y2UgUElDIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGNv bXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQy4uLiAiID4mNjsgfQotKwotKyAgIyBDKysgc3Bl Y2lmaWMgY2FzZXMgZm9yIHBpYywgc3RhdGljLCB3bCwgZXRjLgotKyAgaWYgdGVzdCAiJEdYWCIg PSB5ZXM7IHRoZW4KLSsgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCi0rICAgIGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLXN0YXRpYycKLSsKLSsgICAgY2FzZSAkaG9zdF9v cyBpbgotKyAgICBhaXgqKQotKyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KLSsgICAgICBp ZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJ QTY0IHByb2Nlc3NvcgotKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJwot KyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgY2FzZSAkaG9z dF9jcHUgaW4KLSsgICAgICBwb3dlcnBjKQotKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJv dXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsgICAgICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp Y19DWFg9Jy1mUElDJwotKyAgICAgICAgOzsKLSsgICAgICBtNjhrKQotKyAgICAgICAgICAgICMg RklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBzaGFyZWQgbGlicmFy aWVzLCBidXQKLSsgICAgICAgICAgICAjIGFkZGluZyB0aGUgYC1tNjgwMjAnIGZsYWcgdG8gR0ND IHByZXZlbnRzIGJ1aWxkaW5nIGFueXRoaW5nIGJldHRlciwKLSsgICAgICAgICAgICAjIGxpa2Ug YC1tNjgwNDAnLgotKyAgICAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLW02ODAy MCAtcmVzaWRlbnQzMiAtbWFsd2F5cy1yZXN0b3JlLWE0JwotKyAgICAgICAgOzsKLSsgICAgICBl c2FjCi0rICAgICAgOzsKLSsKLSsgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9w dXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0 IGZvciB0aGVzZSBPU2VzLgotKyAgICAgIDs7Ci0rICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBvczIq IHwgcHczMiogfCBjZWdjYyopCi0rICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291 cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZwotKyAgICAgICMgYnVpbHQgZm9y IGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBs ZSkuCi0rICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGls bCBuZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQotKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9y dCkgbGlicmFyaWVzCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctRERMTF9FWFBP UlQnCi0rICAgICAgOzsKLSsgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgICAgICAjIFBJQyBp cyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCi0rICAgICAgIyBDb21tb24gc3ltYm9scyBu b3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGlj X0NYWD0nLWZuby1jb21tb24nCi0rICAgICAgOzsKLSsgICAgKmRqZ3BwKikKLSsgICAgICAjIERK R1BQIGRvZXMgbm90IHN1cHBvcnQgc2hhcmVkIGxpYnJhcmllcyBhdCBhbGwKLSsgICAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFg9Ci0rICAgICAgOzsKLSsgICAgaW50ZXJpeFszLTldKikKLSsg ICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJQyBvcHRpb25zIGdlbmVyYXRlIGJyb2tl biBjb2RlLgotKyAgICAgICMgSW5zdGVhZCwgd2UgcmVsb2NhdGUgc2hhcmVkIGxpYnJhcmllcyBh dCBydW50aW1lLgotKyAgICAgIDs7Ci0rICAgIHN5c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1k IC91c3IvbmVjOyB0aGVuCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0tS2NvbmZvcm1fcGlj Ci0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBocHV4KikKLSsgICAgICAjIFBJQyBpcyB0aGUg ZGVmYXVsdCBmb3IgNjQtYml0IFBBIEhQLVVYLCBidXQgbm90IGZvciAzMi1iaXQKLSsgICAgICAj IFBBIEhQLVVYLiAgT24gSUE2NCBIUC1VWCwgUElDIGlzIHRoZSBkZWZhdWx0IGJ1dCB0aGUgcGlj IGZsYWcKLSsgICAgICAjIHNldHMgdGhlIGRlZmF1bHQgVExTIG1vZGVsIGFuZCBhZmZlY3RzIGlu bGluaW5nLgotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgaHBwYSo2NCopCi0rCTs7 Ci0rICAgICAgKikKLSsJbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZlBJQycKLSsJOzsKLSsg ICAgICBlc2FjCi0rICAgICAgOzsKLSsgICAgKnFueCogfCAqbnRvKikKLSsgICAgICAjIFFOWCB1 c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVy d2lzZQotKyAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVy X3BpY19DWFg9Jy1mUElDIC1zaGFyZWQnCi0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDJwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGVs c2UKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeFs0LTldKikKLSsJIyBBbGwgQUlY IGNvZGUgaXMgUElDLgotKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkgICMg QUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCi0rCSAgbHRfcHJvZ19jb21waWxlcl9z dGF0aWNfQ1hYPSctQnN0YXRpYycKLSsJZWxzZQotKwkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj X0NYWD0nLWJuc28gLWJJOi9saWIvc3lzY2FsbHMuZXhwJwotKwlmaQotKwk7OwotKyAgICAgIGNo b3J1cyopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCWN4Y2g2OCopCi0rCSAgIyBHcmVlbiBI aWxscyBDKysgQ29tcGlsZXIKLSsJICAjIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0 aWMsIENYWCk9Ii0tbm9fYXV0b19pbnN0YW50aWF0aW9uIC11IF9fbWFpbiAtdSBfX3ByZW1haW4g LXUgX2Fib3J0IC1yICRDT09MX0RJUi9saWIvbGliT3JiLmEgJE1WTUVfRElSL2xpYi9DQy9saWJD LmEgJE1WTUVfRElSL2xpYi9jbGFzc2l4L2xpYmN4LnMuYSIKLSsJICA7OwotKwllc2FjCi0rCTs7 Ci0rICAgICAgZGd1eCopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgZWMrKyopCi0rCSAg ICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJwotKwkgICAgOzsKLSsJICBnaGN4KikK LSsJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVy X3BpY19DWFg9Jy1waWMnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7 Ci0rICAgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQotKwkjIEZyZWVCU0QgdXNlcyBHTlUgQysr Ci0rCTs7Ci0rICAgICAgaHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCi0rCWNhc2UgJGNjX2Jh c2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwn Ci0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9JyR7d2x9LWEgJHt3bH1hcmNoaXZl JwotKwkgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0OyB0aGVuCi0rCSAgICAgIGx0X3By b2dfY29tcGlsZXJfcGljX0NYWD0nK1onCi0rCSAgICBmaQotKwkgICAgOzsKLSsJICBhQ0MqKQot KwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2NvbXBp bGVyX3N0YXRpY19DWFg9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJwotKwkgICAgY2FzZSAkaG9zdF9j cHUgaW4KLSsJICAgIGhwcGEqNjQqfGlhNjQqKQotKwkgICAgICAjICtaIHRoZSBkZWZhdWx0Ci0r CSAgICAgIDs7Ci0rCSAgICAqKQotKwkgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jyta JwotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJ ZXNhYwotKwk7OwotKyAgICAgIGludGVyaXgqKQotKwkjIFRoaXMgaXMgYzg5LCB3aGljaCBpcyBN UyBWaXN1YWwgQysrIChubyBzaGFyZWQgbGlicykKLSsJIyBBbnlvbmUgd2FudHMgdG8gZG8gYSBw b3J0PwotKwk7OwotKyAgICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rCWNhc2Ug JGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9 Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1ub25fc2hhcmVkJwot KwkgICAgIyBDQyBwaWMgZmxhZyAtS1BJQyBpcyB0aGUgZGVmYXVsdC4KLSsJICAgIDs7Ci0rCSAg KikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBsaW51eCogfCBrKmJzZCotZ251KQot KwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIEtDQyopCi0rCSAgICAjIEtBSSBDKysgQ29tcGls ZXIKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctLWJhY2tlbmQgLVdsLCcKLSsJICAg IGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMnCi0rCSAgICA7OwotKwkgIGVjcGMqICkK LSsJICAgICMgb2xkIEludGVsIEMrKyBmb3IgeDg2XzY0IHdoaWNoIHN0aWxsIHN1cHBvcnRlZCAt S1BJQy4KLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJwotKwkgICAgbHRfcHJv Z19jb21waWxlcl9waWNfQ1hYPSctS1BJQycKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj X0NYWD0nLXN0YXRpYycKLSsJICAgIDs7Ci0rCSAgaWNwYyogKQotKwkgICAgIyBJbnRlbCBDKyss IHVzZWQgdG8gYmUgaW5jb21wYXRpYmxlIHdpdGggR0NDLgotKwkgICAgIyBJQ0MgMTAgZG9lc24n dCBhY2NlcHQgLUtQSUMgYW55IG1vcmUuCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0n LVdsLCcKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMnCi0rCSAgICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1zdGF0aWMnCi0rCSAgICA7OwotKwkgIHBnQ0MqIHwg cGdjcHAqKQotKwkgICAgIyBQb3J0bGFuZCBHcm91cCBDKysgY29tcGlsZXIKLSsJICAgIGx0X3By b2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJwotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hY PSctZnBpYycKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCi0r CSAgICA7OwotKwkgIGN4eCopCi0rCSAgICAjIENvbXBhcSBDKysKLSsJICAgICMgTWFrZSBzdXJl IHRoZSBQSUMgZmxhZyBpcyBlbXB0eS4gIEl0IGFwcGVhcnMgdGhhdCBhbGwgQWxwaGEKLSsJICAg ICMgTGludXggYW5kIENvbXBhcSBUcnU2NCBVbml4IG9iamVjdHMgYXJlIFBJQy4KLSsJICAgIGx0 X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NY WD0nLW5vbl9zaGFyZWQnCi0rCSAgICA7OwotKwkgIHhsYyogfCB4bEMqKQotKwkgICAgIyBJQk0g WEwgOC4wIG9uIFBQQwotKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAg ICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1xcGljJwotKwkgICAgbHRfcHJvZ19jb21waWxl cl9zdGF0aWNfQ1hYPSctcXN0YXRpY2xpbmsnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICBjYXNl IGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KLSsJICAgICpTdW5cIEMqKQotKwkgICAgICAjIFN1 biBDKysgNS45Ci0rCSAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCi0rCSAg ICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCi0rCSAgICAgIGx0X3By b2dfY29tcGlsZXJfd2xfQ1hYPSctUW9wdGlvbiBsZCAnCi0rCSAgICAgIDs7Ci0rCSAgICBlc2Fj Ci0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgbHlueG9zKikKLSsJOzsKLSsgICAgICBt ODhrKikKLSsJOzsKLSsgICAgICBtdnMqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIGN4 eCopCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1XIGMsZXhwb3J0YWxsJwotKwkg ICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIG5ldGJzZCopCi0r CTs7Ci0rICAgICAgKnFueCogfCAqbnRvKikKLSsgICAgICAgICMgUU5YIHVzZXMgR05VIEMrKywg YnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCi0rICAgICAg ICAjIGl0IHdpbGwgY29yZWR1bXAuCi0rICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9 Jy1mUElDIC1zaGFyZWQnCi0rICAgICAgICA7OwotKyAgICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1 KikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBLQ0MqKQotKwkgICAgbHRfcHJvZ19jb21w aWxlcl93bF9DWFg9Jy0tYmFja2VuZCAtV2wsJwotKwkgICAgOzsKLSsJICBSQ0MqKQotKwkgICAg IyBSYXRpb25hbCBDKysgMi40LjEKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLXBp YycKLSsJICAgIDs7Ci0rCSAgY3h4KikKLSsJICAgICMgRGlnaXRhbC9Db21wYXEgQysrCi0rCSAg ICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsJICAgICMgTWFrZSBzdXJlIHRoZSBQ SUMgZmxhZyBpcyBlbXB0eS4gIEl0IGFwcGVhcnMgdGhhdCBhbGwgQWxwaGEKLSsJICAgICMgTGlu dXggYW5kIENvbXBhcSBUcnU2NCBVbml4IG9iamVjdHMgYXJlIFBJQy4KLSsJICAgIGx0X3Byb2df Y29tcGlsZXJfcGljX0NYWD0KLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLW5v bl9zaGFyZWQnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAg ICAgcHNvcyopCi0rCTs7Ci0rICAgICAgc29sYXJpcyopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGlu Ci0rCSAgQ0MqKQotKwkgICAgIyBTdW4gQysrIDQuMiwgNS54IGFuZCBDZW50ZXJsaW5lIEMrKwot KwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJQycKLSsJICAgIGx0X3Byb2dfY29t cGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NY WD0nLVFvcHRpb24gbGQgJwotKwkgICAgOzsKLSsJICBnY3gqKQotKwkgICAgIyBHcmVlbiBIaWxs cyBDKysgQ29tcGlsZXIKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLVBJQycKLSsJ ICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBzdW5vczQqKQot KwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIENDKikKLSsJICAgICMgU3VuIEMrKyA0LngKLSsJ ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLXBpYycKLSsJICAgIGx0X3Byb2dfY29tcGls ZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCi0rCSAgICA7OwotKwkgIGxjYyopCi0rCSAgICAjIEx1 Y2lkCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMnCi0rCSAgICA7OwotKwkg ICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgc3lzdjUqIHwgdW5peHdhcmUqIHwg c2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklYKikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4K LSsJICBDQyopCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsJICAgIGx0 X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpY19DWFg9Jy1Cc3RhdGljJwotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIHRhbmRl bSopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgTkNDKikKLSsJICAgICMgTm9uU3RvcC1V WCBOQ0MgMy4yMAotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJQycKLSsJICAg IDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICB2eHdvcmtzKikKLSsJ OzsKLSsgICAgICAqKQotKwlsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWRfQ1hYPW5v Ci0rCTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotKyAgIyBGb3Ig cGxhdGZvcm1zIHdoaWNoIGRvIG5vdCBzdXBwb3J0IFBJQywgLURQSUMgaXMgbWVhbmluZ2xlc3M6 Ci0rICAqZGpncHAqKQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Ci0rICAgIDs7Ci0r ICAqKQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9IiRsdF9wcm9nX2NvbXBpbGVyX3Bp Y19DWFggLURQSUMiCi0rICAgIDs7Ci0rZXNhYwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgiID4mNQotKyRhc19lY2hvICIkbHRf cHJvZ19jb21waWxlcl9waWNfQ1hYIiA+JjY7IH0KLSsKLSsKLSsKLSsjCi0rIyBDaGVjayB0byBt YWtlIHN1cmUgdGhlIFBJQyBmbGFnIGFjdHVhbGx5IHdvcmtzLgotKyMKLStpZiB0ZXN0IC1uICIk bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9w aWNfQ1hYIHdvcmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgUElD IGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCB3b3Jrcy4uLiAiID4mNjsgfQotK2lmIHRl c3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYK3NldH0iID0gc2V0OyB0aGVu Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29t cGlsZXJfcGljX3dvcmtzX0NYWD1ubwotKyAgIGFjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4 dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFj X2V4dAotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9IiRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFggLURQ SUMiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpG TEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNv bmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxl IGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdp dGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsg Y29ycmVjdGx5LgotKyAgICMgVGhlIG9wdGlvbiBpcyByZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxl IHRvIGF2b2lkIGNvbmZ1c2luZyBzZWQuCi0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBp bGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2Zs YWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFn Jjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVj aG8gIlwiXCRhc19tZToxNDc5NzogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRf Y29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKLSsgICBlY2hvICIkYXNfbWU6MTQ4MDE6IFwkPyA9ICRhY19zdGF0dXMiID4m NQotKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19vdXRmaWxlIjsgdGhl bgotKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRp b24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJu aW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCi0rICAgICAkRUNITyAiWCRfbHRfY29t cGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCi0rICAg ICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAg IGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3Qu ZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29y a3NfQ1hYPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgICRSTSBjb25mdGVzdCoKLSsKLStmaQot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVy X3BpY193b3Jrc19DWFgiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNf d29ya3NfQ1hYIiA+JjY7IH0KLSsKLStpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfcGlj X3dvcmtzX0NYWCIgPSB4eWVzOyB0aGVuCi0rICAgIGNhc2UgJGx0X3Byb2dfY29tcGlsZXJfcGlj X0NYWCBpbgotKyAgICAgIiIgfCAiICIqKSA7OwotKyAgICAgKikgbHRfcHJvZ19jb21waWxlcl9w aWNfQ1hYPSIgJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCIgOzsKLSsgICAgIGVzYWMKLStlbHNl Ci0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KLSsgICAgIGx0X3Byb2dfY29tcGlsZXJf Y2FuX2J1aWxkX3NoYXJlZF9DWFg9bm8KLStmaQotKwotK2ZpCi0rCi0rCi0rCi0rIwotKyMgQ2hl Y2sgdG8gbWFrZSBzdXJlIHRoZSBzdGF0aWMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KLSsjCi0rd2w9 JGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYIGV2YWwgbHRfdG1wX3N0YXRpY19mbGFnPVwiJGx0X3By b2dfY29tcGlsZXJfc3RhdGljX0NYWFwiCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtz IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0 X3RtcF9zdGF0aWNfZmxhZyB3b3Jrcy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcHJv Z19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGlj X3dvcmtzX0NYWD1ubwotKyAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCi0rICAgTERGTEFHUz0i JExERkxBR1MgJGx0X3RtcF9zdGF0aWNfZmxhZyIKLSsgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtf dGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgICBpZiAoZXZhbCAkYWNfbGluayAyPmNv bmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KLSsgICAgICMg VGhlIGxpbmtlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVj b2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0rICAgICBp ZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotKyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3Jz IHRvIHRoZSBjb25maWcubG9nLgotKyAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKLSsgICAg ICAgJEVDSE8gIlgkX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4g Y29uZnRlc3QuZXhwCi0rICAgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIg PmNvbmZ0ZXN0LmVyMgotKyAgICAgICBpZiBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIg Pi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dv cmtzX0NYWD15ZXMKLSsgICAgICAgZmkKLSsgICAgIGVsc2UKLSsgICAgICAgbHRfY3ZfcHJvZ19j b21waWxlcl9zdGF0aWNfd29ya3NfQ1hYPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgICRSTSAt ciBjb25mdGVzdCoKLSsgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgotKwotK2ZpCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGlj X3dvcmtzX0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193 b3Jrc19DWFgiID4mNjsgfQotKwotK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0 aWNfd29ya3NfQ1hYIiA9IHh5ZXM7IHRoZW4KLSsgICAgOgotK2Vsc2UKLSsgICAgbHRfcHJvZ19j b21waWxlcl9zdGF0aWNfQ1hYPQotK2ZpCi0rCi0rCi0rCi0rCi0rICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4k YWNfb2JqZXh0IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9y dHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9w cm9nX2NvbXBpbGVyX2Nfb19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYPW5vCi0r ICAgJFJNIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCi0rICAgbWtkaXIgY29uZnRlc3QKLSsgICBj ZCBjb25mdGVzdAotKyAgIG1rZGlyIG91dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90 ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1v IG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKLSsgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhl ciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgotKyAgICMgKDIpIGJlZm9y ZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCi0rICAg IyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNo ZXMgYW5kIGJlZ2lucwotKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBz byB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCi0rICAgbHRfY29tcGlsZT1gZWNobyAi JGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2Nv bXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21w aWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAg IChldmFsIGVjaG8gIlwiXCRhc19tZToxNDg5NjogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChl dmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQotKyAgIGFjX3N0YXR1cz0kPwot KyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19tZToxNDkwMDogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyBv dXQvY29uZnRlc3QyLiRhY19vYmpleHQKLSsgICB0aGVuCi0rICAgICAjIFRoZSBjb21waWxlciBj YW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAg ICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0rICAgICAkRUNITyAiWCRfbHRf Y29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IG91dC9jb25mdGVzdC5l eHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRlc3QuZXJyID5vdXQvY29u ZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0LmVyMiB8fCBkaWZmIG91 dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAg IGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWD15ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICBj aG1vZCB1K3cgLiAyPiY1Ci0rICAgJFJNIGNvbmZ0ZXN0KgotKyAgICMgU0dJIEMrKyBjb21waWxl ciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBmb3IKLSsgICAjIHRlbXBsYXRl IGluc3RhbnRpYXRpb24KLSsgICB0ZXN0IC1kIG91dC9paV9maWxlcyAmJiAkUk0gb3V0L2lpX2Zp bGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCi0rICAgJFJNIG91dC8qICYmIHJtZGlyIG91dAot KyAgIGNkIC4uCi0rICAgJFJNIC1yIGNvbmZ0ZXN0Ci0rICAgJFJNIGNvbmZ0ZXN0KgotKwotK2Zp Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGls ZXJfY19vX0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgi ID4mNjsgfQotKwotKwotKwotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dCIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29i amV4dC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hY K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWD1ubwotKyAgICRSTSAtciBjb25mdGVzdCAy Pi9kZXYvbnVsbAotKyAgIG1rZGlyIGNvbmZ0ZXN0Ci0rICAgY2QgY29uZnRlc3QKLSsgICBta2Rp ciBvdXQKLSsgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0 LiRhY19leHQKLSsKLSsgICBsdF9jb21waWxlcl9mbGFnPSItbyBvdXQvY29uZnRlc3QyLiRhY19v YmpleHQiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0 ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcg ImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21w aWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAj IHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdv cmsgY29ycmVjdGx5LgotKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQg XAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwK LSsgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCi0r ICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAoZXZhbCBlY2hvICJcIlwkYXNf bWU6MTQ5NDg6ICRsdF9jb21waWxlXCIiID4mNSkKLSsgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+ b3V0L2NvbmZ0ZXN0LmVycikKLSsgICBhY19zdGF0dXM9JD8KLSsgICBjYXQgb3V0L2NvbmZ0ZXN0 LmVyciA+JjUKLSsgICBlY2hvICIkYXNfbWU6MTQ5NTI6IFwkPyA9ICRhY19zdGF0dXMiID4mNQot KyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0Mi4kYWNfb2Jq ZXh0Ci0rICAgdGhlbgotKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdu b3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRo ZXJlIGFyZSB3YXJuaW5ncwotKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRl IiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCi0rICAgICAkU0VEICcvXiQv ZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgotKyAgICAgaWYg dGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9j b25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVy X2Nfb19DWFg9eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAgY2htb2QgdSt3IC4gMj4mNQotKyAg ICRSTSBjb25mdGVzdCoKLSsgICAjIFNHSSBDKysgY29tcGlsZXIgd2lsbCBjcmVhdGUgZGlyZWN0 b3J5IG91dC9paV9maWxlcy8gZm9yCi0rICAgIyB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uCi0rICAg dGVzdCAtZCBvdXQvaWlfZmlsZXMgJiYgJFJNIG91dC9paV9maWxlcy8qICYmIHJtZGlyIG91dC9p aV9maWxlcwotKyAgICRSTSBvdXQvKiAmJiBybWRpciBvdXQKLSsgICBjZCAuLgotKyAgICRSTSAt ciBjb25mdGVzdAotKyAgICRSTSBjb25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiID4mNQotKyRh c19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIiA+JjY7IH0KLSsKLSsKLSsKLSsK LStoYXJkX2xpbmtzPSJub3R0ZXN0ZWQiCi0raWYgdGVzdCAiJGx0X2N2X3Byb2dfY29tcGlsZXJf Y19vX0NYWCIgPSBubyAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KLSsgICMgZG8g bm90IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBwcm92aWRlZCBieSB0aGUgdXNl cgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIHdlIGNhbiBsb2Nr IHdpdGggaGFyZCBsaW5rcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgd2UgY2FuIGxv Y2sgd2l0aCBoYXJkIGxpbmtzLi4uICIgPiY2OyB9Ci0rICBoYXJkX2xpbmtzPXllcwotKyAgJFJN IGNvbmZ0ZXN0KgotKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhh cmRfbGlua3M9bm8KLSsgIHRvdWNoIGNvbmZ0ZXN0LmEKLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRl c3QuYiAyPiY1IHx8IGhhcmRfbGlua3M9bm8KLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAy Pi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkaGFyZF9saW5rcyIgPiY1Ci0rJGFzX2VjaG8gIiRoYXJkX2xpbmtzIiA+JjY7 IH0KLSsgIGlmIHRlc3QgIiRoYXJkX2xpbmtzIiA9IG5vOyB0aGVuCi0rICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBXQVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1v Jywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBX QVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBt YXkgYmUgdW5zYWZlIiA+JjI7fQotKyAgICBuZWVkX2xvY2tzPXdhcm4KLSsgIGZpCi0rZWxzZQot KyAgbmVlZF9sb2Nrcz1ubwotK2ZpCi0rCi0rCi0rCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBv cnRzIHNoYXJlZCBsaWJyYXJpZXMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIg dGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4uLiAi ID4mNjsgfQotKwotKyAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAkbGlib2JqcyAkY29u dmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBz b3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGFp eFs0LTldKikKLSsgICAgIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2Fu dCB0aGUgIi1DIiBvcHRpb24uCi0rICAgICMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBi dXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KLSsgICAgaWYgJE5NIC1WIDI+JjEg fCAkR1JFUCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgIGV4cG9ydF9zeW1ib2xzX2Nt ZHNfQ1hYPSckTk0gLUJwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgo XCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKHN1YnN0 cihcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4 cG9ydF9zeW1ib2xzJwotKyAgICBlbHNlCi0rICAgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9 JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9 PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKHN1YnN0cihcJCAz LDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9z eW1ib2xzJwotKyAgICBmaQotKyAgICA7OwotKyAgcHczMiopCi0rICAgIGV4cG9ydF9zeW1ib2xz X2NtZHNfQ1hYPSIkbHRkbGxfY21kcyIKLSsgIDs7Ci0rICBjeWd3aW4qIHwgbWluZ3cqIHwgY2Vn Y2MqKQotKyAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NICRsaWJvYmpzICRjb252ZW5p ZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltCQ0RHUlNdWyBdL3Mv LipbIF1cKFteIF0qXCkvXDEgREFUQS87L14uKlsgXV9fbm1fXy9zL14uKlsgXV9fbm1fX1woW14g XSpcKVsgXVteIF0qL1wxIERBVEEvOy9eSVsgXS9kOy9eW0FJVFddWyBdL3MvLiogLy8nXCcnIHwg c29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0rICA7OwotKyAgKikKLSsgICAgZXhwb3J0 X3N5bWJvbHNfY21kc19DWFg9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5 bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRf c3ltYm9scycKLSsgIDs7Ci0rICBlc2FjCi0rICBleGNsdWRlX2V4cHN5bXNfQ1hYPSdfR0xPQkFM X09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionCi0rCi0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGxkX3NobGlic19DWFgiID4mNQotKyRhc19lY2hvICIkbGRfc2hs aWJzX0NYWCIgPiY2OyB9Ci0rdGVzdCAiJGxkX3NobGlic19DWFgiID0gbm8gJiYgY2FuX2J1aWxk X3NoYXJlZD1ubwotKwotK3dpdGhfZ251X2xkX0NYWD0kd2l0aF9nbnVfbGQKLSsKLSsKLSsKLSsK LSsKLSsKLSsjCi0rIyBEbyB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkgbGluayBsaWJjPwotKyMKLStj YXNlICJ4JGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWCIgaW4KLSt4fHh5ZXMpCi0rICAjIEFzc3Vt ZSAtbGMgc2hvdWxkIGJlIGFkZGVkCi0rICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9eWVzCi0r Ci0rICBpZiB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgdGVzdCAiJEdDQyIgPSB5ZXM7 IHRoZW4KLSsgICAgY2FzZSAkYXJjaGl2ZV9jbWRzX0NYWCBpbgotKyAgICAqJ34nKikKLSsgICAg ICAjIEZJWE1FOiB3ZSBtYXkgaGF2ZSB0byBkZWFsIHdpdGggbXVsdGktY29tbWFuZCBzZXF1ZW5j ZXMuCi0rICAgICAgOzsKLSsgICAgJyRDQyAnKikKLSsgICAgICAjIFRlc3Qgd2hldGhlciB0aGUg Y29tcGlsZXIgaW1wbGljaXRseSBsaW5rcyB3aXRoIC1sYyBzaW5jZSBvbiBzb21lCi0rICAgICAg IyBzeXN0ZW1zLCAtbGdjYyBoYXMgdG8gY29tZSBiZWZvcmUgLWxjLiBJZiBnY2MgYWxyZWFkeSBw YXNzZXMgLWxjCi0rICAgICAgIyB0byBsZCwgZG9uJ3QgYWRkIC1sYyBiZWZvcmUgLWxnY2MuCi0r ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgLWxjIHNo b3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg d2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluLi4uICIgPiY2OyB9Ci0r ICAgICAgJFJNIGNvbmZ0ZXN0KgotKyAgICAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0 X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwotKyAgICAgIGlmIHsgKGV2YWwgZWNobyAiJGFz X21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotKyAgKGV2YWwgJGFjX2NvbXBpbGUp IDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9IDI+Y29uZnRlc3QuZXJy OyB0aGVuCi0rICAgICAgICBzb25hbWU9Y29uZnRlc3QKLSsgICAgICAgIGxpYj1jb25mdGVzdAot KyAgICAgICAgbGlib2Jqcz1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rICAgICAgICBkZXBsaWJzPQot KyAgICAgICAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYCi0rCXBpY19mbGFnPSRsdF9wcm9n X2NvbXBpbGVyX3BpY19DWFgKLSsgICAgICAgIGNvbXBpbGVyX2ZsYWdzPS12Ci0rICAgICAgICBs aW5rZXJfZmxhZ3M9LXYKLSsgICAgICAgIHZlcnN0cmluZz0KLSsgICAgICAgIG91dHB1dF9vYmpk aXI9LgotKyAgICAgICAgbGlibmFtZT1jb25mdGVzdAotKyAgICAgICAgbHRfc2F2ZV9hbGxvd191 bmRlZmluZWRfZmxhZz0kYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYCi0rICAgICAgICBhbGxvd191 bmRlZmluZWRfZmxhZ19DWFg9Ci0rICAgICAgICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElO RU5POiBcIiRhcmNoaXZlX2NtZHNfQ1hYIDJcPlwmMSBcfCAkR1JFUCBcIiAtbGMgXCIgXD4vZGV2 L251bGwgMlw+XCYxXCIiKSA+JjUKLSsgIChldmFsICRhcmNoaXZlX2NtZHNfQ1hYIDJcPlwmMSBc fCAkR1JFUCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxKSAyPiY1Ci0rICBhY19zdGF0dXM9 JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0r ICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotKyAgICAgICAgdGhlbgotKwkgIGFyY2hpdmVfY21kc19u ZWVkX2xjX0NYWD1ubwotKyAgICAgICAgZWxzZQotKwkgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NY WD15ZXMKLSsgICAgICAgIGZpCi0rICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JGx0 X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKLSsgICAgICBlbHNlCi0rICAgICAgICBjYXQgY29u ZnRlc3QuZXJyIDE+JjUKLSsgICAgICBmaQotKyAgICAgICRSTSBjb25mdGVzdCoKLSsgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXJjaGl2ZV9jbWRzX25lZWRfbGNf Q1hYIiA+JjUKLSskYXNfZWNobyAiJGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWCIgPiY2OyB9Ci0r ICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIDs7Ci0rZXNhYwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZHluYW1pYyBs aW5rZXIgY2hhcmFjdGVyaXN0aWNzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBkeW5hbWlj IGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MuLi4gIiA+JjY7IH0KLSsKLStsaWJyYXJ5X25hbWVzX3Nw ZWM9Ci0rbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKLStzb25hbWVfc3BlYz0KLStzaHJleHRfY21k cz0iLnNvIgotK3Bvc3RpbnN0YWxsX2NtZHM9Ci0rcG9zdHVuaW5zdGFsbF9jbWRzPQotK2Zpbmlz aF9jbWRzPQotK2ZpbmlzaF9ldmFsPQotK3NobGlicGF0aF92YXI9Ci0rc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPXVua25vd24KLSt2ZXJzaW9uX3R5cGU9bm9uZQotK2R5bmFtaWNfbGlua2Vy PSIkaG9zdF9vcyBsZC5zbyIKLStzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNy L2xpYiIKLStuZWVkX2xpYl9wcmVmaXg9dW5rbm93bgotK2hhcmRjb2RlX2ludG9fbGlicz1ubwot KwotKyMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lvbiB0byBubywgbWFrZSBzdXJlIGl0IGRvZXMg bm90IGNhdXNlIC1zZXRfdmVyc2lvbgotKyMgZmxhZ3MgdG8gYmUgbGVmdCB3aXRob3V0IGFyZ3Vt ZW50cwotK25lZWRfdmVyc2lvbj11bmtub3duCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotK2FpeDMq KQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUuYScKLSsgIHNobGli cGF0aF92YXI9TElCUEFUSAotKwotKyAgIyBBSVggMyBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0 LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRvIHRoZSBuYW1lLgotKyAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIDs7Ci0rCi0r YWl4WzQtOV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8K LSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgaWYgdGVz dCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgIyBBSVggNSBzdXBwb3J0cyBJQTY0Ci0r ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5h bWUke3NoYXJlZF9leHR9JwotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAg ZWxzZQotKyAgICAjIFdpdGggR0NDIHVwIHRvIDIuOTUueCwgY29sbGVjdDIgd291bGQgY3JlYXRl IGFuIGltcG9ydCBmaWxlCi0rICAgICMgZm9yIGRlcGVuZGVuY2UgbGlicmFyaWVzLiAgVGhlIGlt cG9ydCBmaWxlIHdvdWxkIHN0YXJ0IHdpdGgKLSsgICAgIyB0aGUgbGluZSBgIyEgLicuICBUaGlz IHdvdWxkIGNhdXNlIHRoZSBnZW5lcmF0ZWQgbGlicmFyeSB0bwotKyAgICAjIGRlcGVuZCBvbiBg LicsIGFsd2F5cyBhbiBpbnZhbGlkIGxpYnJhcnkuICBUaGlzIHdhcyBmaXhlZCBpbgotKyAgICAj IGRldmVsb3BtZW50IHNuYXBzaG90cyBvZiBHQ0MgcHJpb3IgdG8gMy4wLgotKyAgICBjYXNlICRo b3N0X29zIGluCi0rICAgICAgYWl4NCB8IGFpeDQuWzAxXSB8IGFpeDQuWzAxXS4qKQotKyAgICAg IGlmIHsgZWNobyAnI2lmIF9fR05VQ19fID4gMiB8fCAoX19HTlVDX18gPT0gMiAmJiBfX0dOVUNf TUlOT1JfXyA+PSA5NyknCi0rCSAgIGVjaG8gJyB5ZXMgJwotKwkgICBlY2hvICcjZW5kaWYnOyB9 IHwgJHtDQ30gLUUgLSB8ICRHUkVQIHllcyA+IC9kZXYvbnVsbDsgdGhlbgotKwk6Ci0rICAgICAg ZWxzZQotKwljYW5fYnVpbGRfc2hhcmVkPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBl c2FjCi0rICAgICMgQUlYIChvbiBQb3dlciopIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNv IGN1cnJlbnRseSB3ZSBjYW4gbm90IGhhcmRjb2RlIGNvcnJlY3QKLSsgICAgIyBzb25hbWUgaW50 byBleGVjdXRhYmxlLiBQcm9iYWJseSB3ZSBjYW4gYWRkIHZlcnNpb25pbmcgc3VwcG9ydCB0bwot KyAgICAjIGNvbGxlY3QyLCBzbyBhZGRpdGlvbmFsIGxpbmtzIGNhbiBiZSB1c2VmdWwgaW4gZnV0 dXJlLgotKyAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4K LSsgICAgICAjIElmIHVzaW5nIHJ1biB0aW1lIGxpbmtpbmcgKG9uIEFJWCA0LjIgb3IgbGF0ZXIp IHVzZSBsaWI8bmFtZT4uc28KLSsgICAgICAjIGluc3RlYWQgb2YgbGliPG5hbWU+LmEgdG8gbGV0 IHBlb3BsZSBrbm93IHRoYXQgdGhlc2UgYXJlIG5vdAotKyAgICAgICMgdHlwaWNhbCBBSVggc2hh cmVkIGxpYnJhcmllcy4KLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgZWxzZQotKyAgICAgICMg V2UgcHJlc2VydmUgLmEgYXMgZXh0ZW5zaW9uIGZvciBzaGFyZWQgbGlicmFyaWVzIHRocm91Z2gg QUlYNC4yCi0rICAgICAgIyBhbmQgbGF0ZXIgd2hlbiB3ZSBhcmUgbm90IGRvaW5nIHJ1biB0aW1l IGxpbmtpbmcuCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fS5hICRsaWJuYW1lLmEnCi0rICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgZmkKLSsgICAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRI Ci0rICBmaQotKyAgOzsKLSsKLSthbWlnYW9zKikKLSsgIGNhc2UgJGhvc3RfY3B1IGluCi0rICBw b3dlcnBjKQotKyAgICAjIFNpbmNlIEp1bHkgMjAwNyBBbWlnYU9TNCBvZmZpY2lhbGx5IHN1cHBv cnRzIC5zbyBsaWJyYXJpZXMuCi0rICAgICMgV2hlbiBjb21waWxpbmcgdGhlIGV4ZWN1dGFibGUs IGFkZCAtdXNlLWR5bmxkIC1Mc29ianM6IHRvIHRoZSBjb21waWxlbGluZS4KLSsgICAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCi0rICAgIDs7Ci0rICBtNjhrKQotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJu YW1lLml4bGlicmFyeSAkbGlibmFtZS5hJwotKyAgICAjIENyZWF0ZSAke2xpYm5hbWV9X2l4bGli cmFyeS5hIGVudHJpZXMgaW4gL3N5cy9saWJzLgotKyAgICBmaW5pc2hfZXZhbD0nZm9yIGxpYiBp biBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYvbnVsbGA7IGRvIGxpYm5hbWU9YCRFQ0hP ICJYJGxpYiIgfCAkWHNlZCAtZSAnXCcncyVeLiovXChbXi9dKlwpXC5peGxpYnJhcnkkJVwxJSdc JydgOyB0ZXN0ICRSTSAvc3lzL2xpYnMvJHtsaWJuYW1lfV9peGxpYnJhcnkuYTsgJHNob3cgImNk IC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEiOyBjZCAvc3lz L2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIHx8IGV4aXQgMTsgZG9u ZScKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rYmVvcyopCi0rICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgZHluYW1pY19saW5rZXI9IiRob3N0 X29zIGxkLnNvIgotKyAgc2hsaWJwYXRoX3Zhcj1MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rYnNk aVs0NV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3No YXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmln ICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9YMTEvbGliIC91c3IvY29udHJp Yi9saWIgL2xpYiAvdXNyL2xvY2FsL2xpYiIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PSIvc2hsaWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCi0rICAjIHRoZSBkZWZhdWx0IGxkLnNv LmNvbmYgYWxzbyBjb250YWlucyAvdXNyL2NvbnRyaWIvbGliIGFuZAotKyAgIyAvdXNyL1gxMVI2 L2xpYiAoL3Vzci9YMTEgaXMgYSBsaW5rIHRvIC91c3IvWDExUjYpLCBidXQgbGV0IHVzIGFsbG93 Ci0rICAjIGxpYnRvb2wgdG8gaGFyZC1jb2RlIHRoZXNlIGludG8gcHJvZ3JhbXMKLSsgIDs7Ci0r Ci0rY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgdmVyc2lvbl90eXBlPXdp bmRvd3MKLSsgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBuZWVk X2xpYl9wcmVmaXg9bm8KLSsKLSsgIGNhc2UgJEdDQywkaG9zdF9vcyBpbgotKyAgeWVzLGN5Z3dp biogfCB5ZXMsbWluZ3cqIHwgeWVzLHB3MzIqIHwgeWVzLGNlZ2NjKikKLSsgICAgbGlicmFyeV9u YW1lc19zcGVjPSckbGlibmFtZS5kbGwuYScKLSsgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQo bGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21kcwotKyAgICBwb3N0aW5zdGFsbF9jbWRz PSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwke2ZpbGV9YH4KLSsgICAgICBkbHBhdGg9YCRTSEVMTCAy PiYxIC1jICdcJycuICRkaXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcnaTsgZWNobyBcJGRsbmFtZSdc JydgfgotKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KLSsgICAgICB0 ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4KLSsgICAgICAkaW5zdGFsbF9wcm9n ICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+Ci0rICAgICAgY2htb2QgYSt4IFwkZGxkaXIv JGRsbmFtZX4KLSsgICAgICBpZiB0ZXN0IC1uICdcJyckc3RyaXBtZSdcJycgJiYgdGVzdCAtbiAn XCcnJHN0cmlwbGliJ1wnJzsgdGhlbgotKyAgICAgICAgZXZhbCAnXCcnJHN0cmlwbGliIFwkZGxk aXIvJGRsbmFtZSdcJycgfHwgZXhpdCBcJD87Ci0rICAgICAgZmknCi0rICAgIHBvc3R1bmluc3Rh bGxfY21kcz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwkZGxuYW1l J1wnJ2B+Ci0rICAgICAgZGxwYXRoPSRkaXIvXCRkbGRsbH4KLSsgICAgICAgJFJNIFwkZGxwYXRo JwotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rCi0rICAgIGNhc2UgJGhv c3Rfb3MgaW4KLSsgICAgY3lnd2luKikKLSsgICAgICAjIEN5Z3dpbiBETExzIHVzZSAnY3lnJyBw cmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBzb25hbWVfc3BlYz0nYGVjaG8gJHtsaWJu YW1lfSB8IHNlZCAtZSAncy9ebGliL2N5Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdz L1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFwaSAvbGliIC91c3IvbG9jYWwvbGliIgot KyAgICAgIDs7Ci0rICAgIG1pbmd3KiB8IGNlZ2NjKikKLSsgICAgICAjIE1pbkdXIERMTHMgdXNl IHRyYWRpdGlvbmFsICdsaWInIHByZWZpeAotKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFy ZWRfZXh0fScKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2Vh cmNoLWRpcnMgfCAkR1JFUCAiXmxpYnJhcmllczoiIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8v IiAtZSAicyw9LywvLGciYAotKyAgICAgIGlmICRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjIiB8ICRHUkVQICc7W2MtekMtWl06LycgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgIyBJ dCBpcyBtb3N0IHByb2JhYmx5IGEgV2luZG93cyBmb3JtYXQgUEFUSCBwcmludGVkIGJ5Ci0rICAg ICAgICAjIG1pbmd3IGdjYywgYnV0IHdlIGFyZSBydW5uaW5nIG9uIEN5Z3dpbi4gR2NjIHByaW50 cyBpdHMgc2VhcmNoCi0rICAgICAgICAjIHBhdGggd2l0aCA7IHNlcGFyYXRvcnMsIGFuZCB3aXRo IGRyaXZlIGxldHRlcnMuIFdlIGNhbiBoYW5kbGUgdGhlCi0rICAgICAgICAjIGRyaXZlIGxldHRl cnMgKGN5Z3dpbiBmaWxldXRpbHMgdW5kZXJzdGFuZHMgdGhlbSksIHNvIGxlYXZlIHRoZW0sCi0r ICAgICAgICAjIGVzcGVjaWFsbHkgYXMgd2UgbWlnaHQgcGFzcyBmaWxlcyBmb3VuZCB0aGVyZSB0 byBhIG1pbmd3IG9iamR1bXAsCi0rICAgICAgICAjIHdoaWNoIHdvdWxkbid0IHVuZGVyc3RhbmQg YSBjeWd3aW5pZmllZCBwYXRoLiBBaGguCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cn YAotKyAgICAgIGVsc2UKLSsgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8g IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9S LyAvZyJgCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBwdzMyKikKLSsgICAgICAjIHB3MzIg RExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBsaWJyYXJ5X25h bWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9wdy8nYGBlY2hvICR7 cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0n Ci0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICA7OwotKwotKyAgKikKLSsgICAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0v ZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCi0rICAgIDs7Ci0rICBl c2FjCi0rICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJwotKyAgIyBGSVhNRTogZmlyc3Qg d2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGlu Ci0rICBzaGxpYnBhdGhfdmFyPVBBVEgKLSsgIDs7Ci0rCi0rZGFyd2luKiB8IHJoYXBzb2R5KikK LSsgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgotKyAgdmVyc2lvbl90eXBlPWRhcndp bgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0ICR7bGli bmFtZX0kc2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 bWFqb3J9JHNoYXJlZF9leHQnCi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0r ICBzaGxpYnBhdGhfdmFyPURZTERfTElCUkFSWV9QQVRICi0rICBzaHJleHRfY21kcz0nYHRlc3Qg LiRtb2R1bGUgPSAueWVzICYmIGVjaG8gLnNvIHx8IGVjaG8gLmR5bGliYCcKLSsKLSsgIHN5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvbGliIC91c3IvbGliJwotKyAg OzsKLSsKLStkZ3V4KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4 PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUkc2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAotKyAgOzsKLSsKLStmcmVlYnNkMSopCi0rICBkeW5hbWljX2xpbmtl cj1ubwotKyAgOzsKLSsKLStmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAjIERyYWdvbkZseSBk b2VzIG5vdCBoYXZlIGFvdXQuICBXaGVuL2lmIHRoZXkgaW1wbGVtZW50IGEgbmV3Ci0rICAjIHZl cnNpb25pbmcgbWVjaGFuaXNtLCBhZGp1c3QgdGhpcy4KLSsgIGlmIHRlc3QgLXggL3Vzci9iaW4v b2JqZm9ybWF0OyB0aGVuCi0rICAgIG9iamZvcm1hdD1gL3Vzci9iaW4vb2JqZm9ybWF0YAotKyAg ZWxzZQotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGZyZWVic2RbMTIzXSopIG9iamZvcm1h dD1hb3V0IDs7Ci0rICAgICopIG9iamZvcm1hdD1lbGYgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsg IHZlcnNpb25fdHlwZT1mcmVlYnNkLSRvYmpmb3JtYXQKLSsgIGNhc2UgJHZlcnNpb25fdHlwZSBp bgotKyAgICBmcmVlYnNkLWVsZiopCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgICAgbmVlZF92ZXJzaW9u PW5vCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgOzsKLSsgICAgZnJlZWJzZC0q KQotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgICAg IG5lZWRfdmVyc2lvbj15ZXMKLSsgICAgICA7OwotKyAgZXNhYwotKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGZyZWVic2QyKikKLSsgICAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICA7OwotKyAgZnJlZWJzZDMuWzAx XSogfCBmcmVlYnNkZWxmMy5bMDFdKikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIDs7Ci0rICBmcmVlYnNkMy5b Mi05XSogfCBmcmVlYnNkZWxmMy5bMi05XSogfCBcCi0rICBmcmVlYnNkNC5bMC01XSB8IGZyZWVi c2RlbGY0LlswLTVdIHwgZnJlZWJzZDQuMS4xIHwgZnJlZWJzZGVsZjQuMS4xKQotKyAgICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwot KyAgICA7OwotKyAgKikgIyBmcm9tIDQuNiBvbiwgYW5kIERyYWdvbkZseQotKyAgICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsg ICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rZ251KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAot KyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0ke21ham9yfSAke2xpYm5hbWV9JHtzaGFyZWRf ZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgaGFyZGNvZGVfaW50 b19saWJzPXllcwotKyAgOzsKLSsKLStocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsgICMg R2l2ZSBhIHNvbmFtZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBtYWpvciB2ZXJzaW9uIHNvIHRoYXQg ZGxkLnNsIHJlZnVzZXMgdG8KLSsgICMgbGluayBhZ2FpbnN0IG90aGVyIHZlcnNpb25zLgotKyAg dmVyc2lvbl90eXBlPXN1bm9zCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lv bj1ubwotKyAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgIGlhNjQqKQotKyAgICBzaHJleHRfY21kcz0n LnNvJwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIGR5bmFtaWNfbGlua2VyPSIk aG9zdF9vcyBkbGQuc28iCi0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICAg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNw ZWNpZmllZC4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGlmIHRlc3QgIlgkSFBVWF9JQTY0 X01PREUiID0gWDMyOyB0aGVuCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNy L2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliIgotKyAgICBl bHNlCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4NjQgL3Vz ci9sb2NhbC9saWIvaHB1eDY0IgotKyAgICBmaQotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhf c3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7Ci0rICBocHBhKjY0KikKLSsg ICAgc2hyZXh0X2NtZHM9Jy5zbCcKLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICBk eW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJ QlJBUllfUEFUSCAjIEhvdyBzaG91bGQgd2UgaGFuZGxlIFNITElCX1BBVEgKLSsgICAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVk LgotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIv dXNyL2xpYi9wYTIwXzY0IC91c3IvY2NzL2xpYi9wYTIwXzY0IgotKyAgICBzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7Ci0rICAqKQot KyAgICBzaHJleHRfY21kcz0nLnNsJwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxk LnNsIgotKyAgICBzaGxpYnBhdGhfdmFyPVNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPW5vICMgK3MgaXMgcmVxdWlyZWQgdG8gZW5hYmxlIFNITElCX1BBVEgKLSsg ICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIDs7Ci0rICBlc2FjCi0rICAjIEhQLVVYIHJ1bnMgKnJl YWxseSogc2xvd2x5IHVubGVzcyBzaGFyZWQgbGlicmFyaWVzIGFyZSBtb2RlIDU1NS4KLSsgIHBv c3RpbnN0YWxsX2NtZHM9J2NobW9kIDU1NSAkbGliJwotKyAgOzsKLSsKLStpbnRlcml4WzMtOV0q KQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRf dmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBkeW5hbWljX2xpbmtlcj0nSW50ZXJp eCAzLnggbGQuc28uMSAoUEUsIGxpa2UgRUxGKScKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0raXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsg IGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgbm9uc3RvcHV4KikgdmVyc2lvbl90eXBlPW5vbnN0b3B1 eCA7OwotKyAgICAqKQotKwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVu Ci0rCQl2ZXJzaW9uX3R5cGU9bGludXgKLSsJZWxzZQotKwkJdmVyc2lvbl90eXBlPWlyaXgKLSsJ ZmkgOzsKLSsgIGVzYWMKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5v Ci0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAg Y2FzZSAkaG9zdF9vcyBpbgotKyAgaXJpeDUqIHwgbm9uc3RvcHV4KikKLSsgICAgbGlic3VmZj0g c2hsaWJzdWZmPQotKyAgICA7OwotKyAgKikKLSsgICAgY2FzZSAkTEQgaW4gIyBsaWJ0b29sLm00 IHdpbGwgYWRkIG9uZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAotKyAgICAqLTMyfCoiLTMyICJ8 Ki1tZWxmMzJic21pcHwqIi1tZWxmMzJic21pcCAiKQotKyAgICAgIGxpYnN1ZmY9IHNobGlic3Vm Zj0gbGlibWFnaWM9MzItYml0OzsKLSsgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJibWlwbjMy fCoiLW1lbGYzMmJtaXBuMzIgIikKLSsgICAgICBsaWJzdWZmPTMyIHNobGlic3VmZj1OMzIgbGli bWFnaWM9TjMyOzsKLSsgICAgKi02NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxmNjRibWlw ICIpCi0rICAgICAgbGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0OzsKLSsg ICAgKikgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7Ci0rICAgIGVz YWMKLSsgICAgOzsKLSsgIGVzYWMKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7c2hsaWJz dWZmfV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3Iv bG9jYWwvbGliJHtsaWJzdWZmfSIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNy L2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVz Ci0rICA7OwotKwotKyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRsZCwgYW91 dCwgb3IgY29mZi4KLStsaW51eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYqKQot KyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rCi0rIyBUaGlzIG11c3QgYmUgTGludXggRUxG LgotK2xpbnV4KiB8IGsqYnNkKi1nbnUpCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRf bGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBm aW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbiAkbGliZGlyJwotKyAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD1ubwotKyAgIyBTb21lIGJpbnV0aWxzIGxkIGFyZSBwYXRjaGVkIHRvIHNldCBEVF9SVU5Q QVRICi0rICBzYXZlX0xERkxBR1M9JExERkxBR1MKLSsgIHNhdmVfbGliZGlyPSRsaWJkaXIKLSsg IGV2YWwgImxpYmRpcj0vZm9vOyB3bD1cIiRsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWFwiOyBcCi0r ICAgICAgIExERkxBR1M9XCJcJExERkxBR1MgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hY XCIiCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAg Ki8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2lu dAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0g LWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9 IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNh YwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK LSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNv bmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l cjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3Qu ZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vy cm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVz dCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIg PSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRo ZW4KLSsgIGlmICAoJE9CSkRVTVAgLXAgY29uZnRlc3QkYWNfZXhlZXh0KSAyPi9kZXYvbnVsbCB8 IGdyZXAgIlJVTlBBVEguKiRsaWJkaXIiID4vZGV2L251bGw7IHRoZW4KLSsgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD15ZXMKLStmaQotKwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKLSsKLSsKLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9v IFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotKyAgTERGTEFH Uz0kc2F2ZV9MREZMQUdTCi0rICBsaWJkaXI9JHNhdmVfbGliZGlyCi0rCi0rICAjIFRoaXMgaW1w bGllcyBubyBmYXN0X2luc3RhbGwsIHdoaWNoIGlzIHVuYWNjZXB0YWJsZS4KLSsgICMgU29tZSBy ZXdvcmsgd2lsbCBiZSBuZWVkZWQgdG8gYWxsb3cgZm9yIGZhc3RfaW5zdGFsbAotKyAgIyBiZWZv cmUgdGhpcyBjYW4gYmUgZW5hYmxlZC4KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsKLSsg ICMgQWRkIEFCSS1zcGVjaWZpYyBkaXJlY3RvcmllcyB0byB0aGUgc3lzdGVtIGxpYnJhcnkgcGF0 aC4KLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliNjQgL3Vzci9saWI2NCAvbGli IC91c3IvbGliIgotKwotKyAgIyBBcHBlbmQgbGQuc28uY29uZiBjb250ZW50cyB0byB0aGUgc2Vh cmNoIHBhdGgKLSsgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCi0rICAgIGx0X2xk X2V4dHJhPWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAl cyAyPi9kZXYvbnVsbCIsIFwkMikpOyBza2lwID0gMTsgfSB7IGlmICghc2tpcCkgcHJpbnQgXCQw OyBza2lwID0gMDsgfScgPCAvZXRjL2xkLnNvLmNvbmYgfCAkU0VEIC1lICdzLyMuKi8vOy9eWwkg XSpod2NhcFsJIF0vZDtzL1s6LAldLyAvZztzLz1bXj1dKiQvLztzLz1bXj0gXSogLyAvZzsvXiQv ZCcgfCB0ciAnXG4nICcgJ2AKLSsgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlYyAkbHRfbGRfZXh0cmEiCi0rICBmaQotKwotKyAgIyBXZSB1 c2VkIHRvIHRlc3QgZm9yIC9saWIvbGQuc28uMSBhbmQgZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVz IG9uCi0rICAjIHBvd2VycGMsIGJlY2F1c2UgTWtMaW51eCBvbmx5IHN1cHBvcnRlZCBzaGFyZWQg bGlicmFyaWVzIHdpdGggdGhlCi0rICAjIEdOVSBkeW5hbWljIGxpbmtlci4gIFNpbmNlIHRoaXMg d2FzIGJyb2tlbiB3aXRoIGNyb3NzIGNvbXBpbGVycywKLSsgICMgbW9zdCBwb3dlcnBjLWxpbnV4 IGJveGVzIHN1cHBvcnQgZHluYW1pYyBsaW5raW5nIHRoZXNlIGRheXMgYW5kCi0rICAjIHBlb3Bs ZSBjYW4gYWx3YXlzIC0tZGlzYWJsZS1zaGFyZWQsIHRoZSB0ZXN0IHdhcyByZW1vdmVkLCBhbmQg d2UKLSsgICMgYXNzdW1lIHRoZSBHTlUvTGludXggZHluYW1pYyBsaW5rZXIgaXMgaW4gdXNlLgot KyAgZHluYW1pY19saW5rZXI9J0dOVS9MaW51eCBsZC5zbycKLSsgIDs7Ci0rCi0rbmV0YnNkKikK LSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3Zl cnNpb249bm8KLSsgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+ L2Rldi9udWxsOyB0aGVuCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXgnCi0rICAgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1t ICRsaWJkaXInCi0rICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgKGEub3V0KSBsZC5zbycKLSsg IGVsc2UKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv ciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgZHluYW1pY19saW5rZXI9J05ldEJT RCBsZC5lbGZfc28nCi0rICBmaQotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKLSsgIDs7Ci0rCi0rbmV3c29zNikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgOzsKLSsKLSsqbnRvKiB8ICpxbngqKQotKyAgdmVyc2lv bl90eXBlPXFueAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUk e3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsg IGR5bmFtaWNfbGlua2VyPSdsZHFueC5zbycKLSsgIDs7Ci0rCi0rb3BlbmJzZCopCi0rICB2ZXJz aW9uX3R5cGU9c3Vub3MKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiIK LSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgIyBTb21lIG9sZGVyIHZlcnNpb25zIG9mIE9wZW5C U0QgKDMuMyBhdCBsZWFzdCkgKmRvKiBuZWVkIHZlcnNpb25lZCBsaWJzLgotKyAgY2FzZSAkaG9z dF9vcyBpbgotKyAgICBvcGVuYnNkMy4zIHwgb3BlbmJzZDMuMy4qKQluZWVkX3ZlcnNpb249eWVz IDs7Ci0rICAgICopCQkJCW5lZWRfdmVyc2lvbj1ubyAgOzsKLSsgIGVzYWMKLSsgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICBmaW5pc2hfY21kcz0nUEFUSD0i XCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKLSsgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRH UkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgt cG93ZXJwYyI7IHRoZW4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIG9wZW5ic2QyLls4 OV0gfCBvcGVuYnNkMi5bODldLiopCi0rCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwot Kwk7OwotKyAgICAgICopCi0rCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsJOzsK LSsgICAgICBlc2FjCi0rICBlbHNlCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15 ZXMKLSsgIGZpCi0rICA7OwotKwotK29zMiopCi0rICBsaWJuYW1lX3NwZWM9JyRuYW1lJwotKyAg c2hyZXh0X2NtZHM9Ii5kbGwiCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9ICRsaWJuYW1lLmEnCi0rICBkeW5hbWljX2xp bmtlcj0nT1MvMiBsZC5leGUnCi0rICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKLSsgIDs7Ci0rCi0r b3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgdmVyc2lvbl90eXBlPW9zZgotKyAgbmVlZF9saWJf cHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91 c3Ivc2hsaWIgL3Vzci9jY3MvbGliIC91c3IvbGliL2NtcGxycy9jYyAvdXNyL2xpYiAvdXNyL2xv Y2FsL2xpYiAvdmFyL3NobGliIgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWMiCi0rICA7OwotKwotK3Jkb3MqKQotKyAgZHluYW1pY19saW5r ZXI9bm8KLSsgIDs7Ci0rCi0rc29sYXJpcyopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5l ZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0r ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgIyBsZGQgY29tcGxhaW5z IHVubGVzcyBsaWJyYXJpZXMgYXJlIGV4ZWN1dGFibGUKLSsgIHBvc3RpbnN0YWxsX2NtZHM9J2No bW9kICt4ICRsaWInCi0rICA7OwotKwotK3N1bm9zNCopCi0rICB2ZXJzaW9uX3R5cGU9c3Vub3MK LSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICBmaW5pc2hf Y21kcz0nUEFUSD0iXCRQQVRIOi91c3IvZXRjIiBsZGNvbmZpZyAkbGliZGlyJwotKyAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15 ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgbmVlZF9saWJf cHJlZml4PW5vCi0rICBmaQotKyAgbmVlZF92ZXJzaW9uPXllcwotKyAgOzsKLSsKLStzeXN2NCB8 IHN5c3Y0LjMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KLSsg ICAgc25pKQotKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICAgIG5l ZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICi0rICAgICAg OzsKLSsgICAgc2llbWVucykKLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICA7Owot KyAgICBtb3Rvcm9sYSkKLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICBuZWVkX3Zl cnNpb249bm8KLSsgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAgICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy9saWIgL3Vzci9saWIgL3Vzci9jY3MvbGliJwotKyAg ICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwotK3N5c3Y0Kk1QKikKLSsgIGlmIHRlc3QgLWQgL3Vz ci9uZWMgO3RoZW4KLSsgICAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICAgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9l eHR9LiRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPSckbGli bmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yJwotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAotKyAgZmkKLSsgIDs7Ci0rCi0rc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVu aXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCi0rICB2ZXJzaW9uX3R5cGU9ZnJlZWJz ZC1lbGYKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgaWYgdGVzdCAi JHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 Jy91c3IvbG9jYWwvbGliIC91c3IvZ251L2xpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIgL2xpYicK LSsgIGVsc2UKLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2Njcy9saWIgL3Vz ci9saWInCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBzY28zLjJ2NSopCi0rICAgICAg ICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL2xp YiIKLSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PScvdXNyL2xpYicKLSsgIDs7Ci0rCi0rdHBmKikKLSsgICMgVFBGIGlzIGEgY3Jvc3MtdGFyZ2V0 IG9ubHkuICBQcmVmZXJyZWQgY3Jvc3MtaG9zdCA9IEdOVS9MaW51eC4KLSsgIHZlcnNpb25fdHlw ZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3No YXJlZF9leHR9JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsK LSsKLSt1dHM0KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBz b25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rKikKLSsgIGR5bmFtaWNf bGlua2VyPW5vCi0rICA7OwotK2VzYWMKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkZHluYW1pY19saW5rZXIiID4mNQotKyRhc19lY2hvICIkZHluYW1pY19saW5rZXIiID4m NjsgfQotK3Rlc3QgIiRkeW5hbWljX2xpbmtlciIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5v Ci0rCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IlBBVEggJHNobGlicGF0aF92YXIgJHJ1 bnBhdGhfdmFyIgotK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICB2YXJpYWJsZXNfc2F2 ZWRfZm9yX3JlbGluaz0iJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIEdDQ19FWEVDX1BSRUZJ WCBDT01QSUxFUl9QQVRIIExJQlJBUllfUEFUSCIKLStmaQotKwotK2lmIHRlc3QgIiR7bHRfY3Zf c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCi0rICBzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCi0rZmkKLStp ZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0 aGVuCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjIgotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBo b3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1z Li4uICIgPiY2OyB9Ci0raGFyZGNvZGVfYWN0aW9uX0NYWD0KLStpZiB0ZXN0IC1uICIkaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY19DWFgiIHx8Ci0rICAgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyX0NY WCIgfHwKLSsgICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRpY19DWFgiID0gIlh5ZXMiIDsgdGhl bgotKwotKyAgIyBXZSBjYW4gaGFyZGNvZGUgbm9uLWV4aXN0ZW50IGRpcmVjdG9yaWVzLgotKyAg aWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdF9DWFgiICE9IG5vICYmCi0rICAgICAjIElmIHRoZSBv bmx5IG1lY2hhbmlzbSB0byBhdm9pZCBoYXJkY29kaW5nIGlzIHNobGlicGF0aF92YXIsIHdlCi0r ICAgICAjIGhhdmUgdG8gcmVsaW5rLCBvdGhlcndpc2Ugd2UgbWlnaHQgbGluayB3aXRoIGFuIGlu c3RhbGxlZCBsaWJyYXJ5Ci0rICAgICAjIHdoZW4gd2Ugc2hvdWxkIGJlIGxpbmtpbmcgd2l0aCBh IHlldC10by1iZS1pbnN0YWxsZWQgb25lCi0rICAgICAjIyB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJk Y29kZV9zaGxpYnBhdGhfdmFyLCBDWFgpIiAhPSBubyAmJgotKyAgICAgdGVzdCAiJGhhcmRjb2Rl X21pbnVzX0xfQ1hYIiAhPSBubzsgdGhlbgotKyAgICAjIExpbmtpbmcgYWx3YXlzIGhhcmRjb2Rl cyB0aGUgdGVtcG9yYXJ5IGxpYnJhcnkgZGlyZWN0b3J5LgotKyAgICBoYXJkY29kZV9hY3Rpb25f Q1hYPXJlbGluawotKyAgZWxzZQotKyAgICAjIFdlIGNhbiBsaW5rIHdpdGhvdXQgaGFyZGNvZGlu ZywgYW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlzdGluZyBkaXJzLgotKyAgICBoYXJkY29kZV9h Y3Rpb25fQ1hYPWltbWVkaWF0ZQotKyAgZmkKLStlbHNlCi0rICAjIFdlIGNhbm5vdCBoYXJkY29k ZSBhbnl0aGluZywgb3IgZWxzZSB3ZSBjYW4gb25seSBoYXJkY29kZSBleGlzdGluZwotKyAgIyBk aXJlY3Rvcmllcy4KLSsgIGhhcmRjb2RlX2FjdGlvbl9DWFg9dW5zdXBwb3J0ZWQKLStmaQotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRoYXJkY29kZV9hY3Rpb25fQ1hYIiA+ JjUKLSskYXNfZWNobyAiJGhhcmRjb2RlX2FjdGlvbl9DWFgiID4mNjsgfQotKwotK2lmIHRlc3Qg IiRoYXJkY29kZV9hY3Rpb25fQ1hYIiA9IHJlbGluayB8fAotKyAgIHRlc3QgIiRpbmhlcml0X3Jw YXRoX0NYWCIgPSB5ZXM7IHRoZW4KLSsgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IHN1cHBv cnRlZAotKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubwotK2VsaWYgdGVzdCAiJHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKLSsgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9 IG5vOyB0aGVuCi0rICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBuZWNlc3NhcnkKLSsgIGVu YWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MKLStmaQotKwotKwotKwotKwotKwotKwotKwotKyAg ZmkgIyB0ZXN0IC1uICIkY29tcGlsZXIiCi0rCi0rICBDQz0kbHRfc2F2ZV9DQwotKyAgTERDWFg9 JExECi0rICBMRD0kbHRfc2F2ZV9MRAotKyAgR0NDPSRsdF9zYXZlX0dDQwotKyAgd2l0aF9nbnVf bGQ9JGx0X3NhdmVfd2l0aF9nbnVfbGQKLSsgIGx0X2N2X3BhdGhfTERDWFg9JGx0X2N2X3BhdGhf TEQKLSsgIGx0X2N2X3BhdGhfTEQ9JGx0X3NhdmVfcGF0aF9MRAotKyAgbHRfY3ZfcHJvZ19nbnVf bGRjeHg9JGx0X2N2X3Byb2dfZ251X2xkCi0rICBsdF9jdl9wcm9nX2dudV9sZD0kbHRfc2F2ZV93 aXRoX2dudV9sZAotK2ZpICMgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAhPSB5ZXMKLSsK LSthY19leHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1j ICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAt byBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3Qu JGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2du dQotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyAgICAgICAgYWNfY29u ZmlnX2NvbW1hbmRzPSIkYWNfY29uZmlnX2NvbW1hbmRzIGxpYnRvb2wiCi0rCi0rCi0rCi0rCi0r IyBPbmx5IGV4cGFuZCBvbmNlOgotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3 aGV0aGVyIGxuIC1zIHdvcmtzLi4uICIgPiY2OyB9Ci0rTE5fUz0kYXNfbG5fcwotK2lmIHRlc3Qg IiRMTl9TIiA9ICJsbiAtcyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8sIHVzaW5nICRMTl9TIiA+JjUKLSskYXNf ZWNobyAibm8sIHVzaW5nICRMTl9TIiA+JjY7IH0KLStmaQotKwotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyICR7TUFLRS1tYWtlfSBzZXRzIFwkKE1BS0UpIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICR7TUFLRS1tYWtlfSBzZXRzIFwkKE1B S0UpLi4uICIgPiY2OyB9Ci0rc2V0IHggJHtNQUtFLW1ha2V9Ci0rYWNfbWFrZT1gJGFzX2VjaG8g IiQyIiB8IHNlZCAncy8rL3AvZzsgcy9bXmEtekEtWjAtOV9dL18vZydgCi0raWYgeyBhc192YXI9 YWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0OyBldmFsICJ0ZXN0IFwiXCR7JGFzX3Zhcitz ZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsgIGNhdCA+Y29uZnRlc3QubWFrZSA8PFxfQUNFT0YKLStTSEVMTCA9IC9iaW4vc2gKLSth bGw6Ci0rCUBlY2hvICdAQEAlJSU9JChNQUtFKT1AQEAlJSUnCi0rX0FDRU9GCi0rIyBHTlUgbWFr ZSBzb21ldGltZXMgcHJpbnRzICJtYWtlWzFdOiBFbnRlcmluZy4uLiIsIHdoaWNoIHdvdWxkIGNv bmZ1c2UgdXMuCi0rY2FzZSBgJHtNQUtFLW1ha2V9IC1mIGNvbmZ0ZXN0Lm1ha2UgMj4vZGV2L251 bGxgIGluCi0rICAqQEBAJSUlPT8qPUBAQCUlJSopCi0rICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtl XyR7YWNfbWFrZX1fc2V0PXllczs7Ci0rICAqKQotKyAgICBldmFsIGFjX2N2X3Byb2dfbWFrZV8k e2FjX21ha2V9X3NldD1ubzs7Ci0rZXNhYwotK3JtIC1mIGNvbmZ0ZXN0Lm1ha2UKLStmaQotK2lm IGV2YWwgdGVzdCBcJGFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldCA9IHllczsgdGhlbgot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLSskYXNfZWNo byAieWVzIiA+JjY7IH0KLSsgIFNFVF9NQUtFPQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotKyAgU0VU X01BS0U9Ik1BS0U9JHtNQUtFLW1ha2V9IgotK2ZpCi0rCi0rCi0rIyBTZXQgZGVmYXVsdCBsYW5n dWFnZSB0byBDKysKLSthY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSth Y19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+ JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBG TEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9n bnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLSsjIENoZWNrIGZvciBleGNlcHRpb25z IHN3aXRjaAotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1leGNlcHRpb25zIHdhcyBnaXZlbi4K LStpZiB0ZXN0ICIke2VuYWJsZV9leGNlcHRpb25zK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFi bGV2YWw9JGVuYWJsZV9leGNlcHRpb25zOwotK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0r I2RlZmluZSBTT0NJX0VYQ0VQVElPTlMgMQotK19BQ0VPRgotKwotK2ZpCi0rCi0rdGVzdCAieCRl bmFibGVfZXhjZXB0aW9ucyIgIT0geG5vICYmIGVuYWJsZV9leGNlcHRpb25zPXllcwotK3Rlc3Qg IngkYXhfY3ZfYm9vc3RfZGF0ZV90aW1lIiAhPSB4bm8gJiYgZW5hYmxlX2V4Y2VwdGlvbnM9eWVz Ci0rCi0rIyBDaGVjayBmb3IgaW5mbyBwYWdlcwotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1p bmZvLWRvYyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfaW5mb19kb2Mrc2V0fSIgPSBz ZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2luZm9fZG9jOwotK2ZpCi0rCi0rdGVzdCAi eCRlbmFibGVfaW5mb19kb2MiICE9IHhubyAmJiBlbmFibGVfaW5mb19kb2M9eWVzCi0rCi0rCi0r IyBDaGVjayBmb3IgaHRtbC1kb2Mgc3dpdGNoCi0rIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWh0 bWwtZG9jIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9odG1sX2RvYytzZXR9IiA9IHNl dDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfaHRtbF9kb2M7Ci0rZmkKLSsKLSt0ZXN0ICJ4 JGVuYWJsZV9odG1sX2RvYyIgIT0geG5vICYmIGVuYWJsZV9odG1sX2RvYz15ZXMKLSsKLSsKLSsj IFByb3ZpZGUgLS13aXRoLWRvY2RpcgotKwotKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtZG9jZGly IHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfZG9jZGlyK3NldH0iID0gc2V0OyB0aGVuCi0r ICB3aXRodmFsPSR3aXRoX2RvY2RpcjsgRE9DX0RJUj0iJHdpdGh2YWwiCi0rZWxzZQotKyAgRE9D X0RJUj0iIgotK2ZpCi0rCi0raWYgdGVzdCAieCRET0NfRElSIiAhPSB4OyB0aGVuCi0rICBkb2Nk aXI9IiRET0NfRElSIgotK2Vsc2UKLSsgIGRvY2Rpcj0iJHtkYXRhZGlyfS9kb2MvJFBBQ0tBR0Ut JFZFUlNJT04iCi0rZmkKLSsKLSsKLSsKLSsjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxl cyAoZm9yIFNPQ0kgaXRzZWxmKQotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1idXJyaWVkLWhl YWRlcnMgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2J1cnJpZWRfaGVhZGVycytzZXR9 IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfYnVycmllZF9oZWFkZXJzOyAgaWYg dGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAgICAgIGVuYWJsZV9idXJyaWVkX2hlYWRl cnM9bm8KLSsgICBlbHNlCi0rICAgICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz15ZXMKLSsgICBm aQotK2Vsc2UKLSsgICBlbmFibGVfYnVycmllZF9oZWFkZXJzPW5vCi0rZmkKLSsKLSsjIFRlbXBv cmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlvbgotK2VuYWJsZV9idXJyaWVkX2hl YWRlcnM9eWVzCi0rIGlmIHRlc3QgIngkZW5hYmxlX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0 aGVuCi0rICBTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUU9Ci0rICBTT0NJX0hFQURFUlNfQlVSSUVE X0ZBTFNFPScjJwotK2Vsc2UKLSsgIFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRT0nIycKLSsgIFNP Q0lfSEVBREVSU19CVVJJRURfRkFMU0U9Ci0rZmkKLSsKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9i dXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgIENQUEZMQUdTPSItRFNPQ0lfSEVBREVS U19CVVJJRUQgJENQUEZMQUdTIgotK2ZpCi0rCi0rIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIg ZmlsZXMgKGZvciBNeVNRTCBjbGllbnQpCi0rIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLW15c3Fs LWJ1cnJpZWQtaGVhZGVycyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfbXlzcWxfYnVy cmllZF9oZWFkZXJzK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9teXNx bF9idXJyaWVkX2hlYWRlcnM7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0rCWVu YWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KLSsgICBlbHNlCi0rCWVuYWJsZV9teXNxbF9i dXJyaWVkX2hlYWRlcnM9eWVzCi0rICAgZmkKLStlbHNlCi0rICAgZW5hYmxlX215c3FsX2J1cnJp ZWRfaGVhZGVycz1ubwotK2ZpCi0rCi0rIyBUZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2Vz IGdlbmVyYXRpb24KLStlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPXllcwotKyBpZiB0ZXN0 ICJ4JGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgU09DSV9N WVNRTF9IRUFERVJTX0JVUklFRF9UUlVFPQotKyAgU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9G QUxTRT0nIycKLStlbHNlCi0rICBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX1RSVUU9JyMnCi0r ICBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFPQotK2ZpCi0rCi0rCi0raWYgdGVzdCAi eCRlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KLSsgICBDUFBGTEFH Uz0iLURTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEICRDUFBGTEFHUyIKLStmaQotKwotKyMgQ2hl Y2sgZm9yIGJ1cnJpZWQgaGVhZGVyIGZpbGVzIChmb3IgUG9zdEdyZVNRTCBjbGllbnQpCi0rIyBD aGVjayB3aGV0aGVyIC0tZW5hYmxlLXBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzIHdhcyBnaXZl bi4KLStpZiB0ZXN0ICIke2VuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycytzZXR9IiA9 IHNldDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRl cnM7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0rCWVuYWJsZV9wb3N0Z3Jlc3Fs X2J1cnJpZWRfaGVhZGVycz1ubwotKyAgIGVsc2UKLSsJZW5hYmxlX3Bvc3RncmVzcWxfYnVycmll ZF9oZWFkZXJzPXllcwotKyAgIGZpCi0rZWxzZQotKyAgIGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJp ZWRfaGVhZGVycz1ubwotK2ZpCi0rCi0rIyBUZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2Vz IGdlbmVyYXRpb24KLStlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCi0rIGlm IHRlc3QgIngkZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4K LSsgIFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9UUlVFPQotKyAgU09DSV9QT1NUR1JF U1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFPScjJwotK2Vsc2UKLSsgIFNPQ0lfUE9TVEdSRVNRTF9I RUFERVJTX0JVUklFRF9UUlVFPScjJwotKyAgU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVE X0ZBTFNFPQotK2ZpCi0rCi0rCi0raWYgdGVzdCAieCRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVk X2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgIENQUEZMQUdTPSItRFNPQ0lfUE9TVEdSRVNRTF9I RUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCi0rZmkKLSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBCb29zdCAoU1RMIEV4 dGVuc2lvbnM6IGh0dHA6Ly93d3cuYm9vc3Qub3JnKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsKLSsKLSsjIENoZWNrIHdoZXRo ZXIgLS13aXRoLWJvb3N0IHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfYm9vc3Qrc2V0fSIg PSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhfYm9vc3Q7Ci0rICAgICAgICAgICAgICAgIGlm IHRlc3QgIiR3aXRodmFsIiA9ICJubyI7IHRoZW4KLSsJCSAgICAgICAgICAgIHdhbnRfYm9vc3Q9 Im5vIgotKyAgICAgICAgICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVu Ci0rICAgICAgICAgICAgICAgICAgICB3YW50X2Jvb3N0PSJ5ZXMiCi0rICAgICAgICAgICAgICAg ICAgICBhY19ib29zdF9wYXRoPSIiCi0rICAgICAgICAgICAgICAgIGVsc2UKLSsJCQkgICAgICAg IHdhbnRfYm9vc3Q9InllcyIKLSsgICAgICAgICAgICAJCWFjX2Jvb3N0X3BhdGg9IiR3aXRodmFs IgotKwkJICAgICAgICBmaQotKwotK2Vsc2UKLSsgIHdhbnRfYm9vc3Q9InllcyIKLStmaQotKwot KwotKyMgICAgQUNfQ0FOT05JQ0FMX0JVSUxECi0rQk9PU1RfTURXX1ZFUlNJT049IjEtMzMtMSIK LStCT09TVExJQl9NRFdfVkVSU0lPTj0iMV8zM18xIgotK0JPT1NUX3ZlcnNpb25faGVhZGVyPSJi b29zdC92ZXJzaW9uLmhwcCIKLSsKLSsJaWYgdGVzdCAieCR3YW50X2Jvb3N0IiA9ICJ4eWVzIjsg dGhlbgotKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxPTEuMzMKLSsJCWJvb3N0X2xpYl92ZXJzaW9u X3JlcV9zaG9ydGVuPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnXChbMC05XSpcLlsw LTldKlwpJ2AKLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkYm9vc3RfbGli X3ZlcnNpb25fcmVxIDogJ1woWzAtOV0qXCknYAotKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX21p bm9yPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5cKFswLTldKlwpJ2AK LSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3I9YGV4cHIgJGJvb3N0X2xpYl92ZXJz aW9uX3JlcSA6ICdbMC05XSpcLlswLTldKlwuXChbMC05XSpcKSdgCi0rCQlpZiB0ZXN0ICJ4JGJv b3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3IiID0gIngiIDsgdGhlbgotKwkJCWJvb3N0X2xp Yl92ZXJzaW9uX3JlcV9zdWJfbWlub3I9IjAiCi0rICAgIAlmaQotKwkJV0FOVF9CT09TVF9WRVJT SU9OPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXFfbWFqb3IgXCogMTAwMDAwIFwrICAkYm9v c3RfbGliX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEwMCBcKyAkYm9vc3RfbGliX3ZlcnNpb25fcmVx X3N1Yl9taW5vcmAKLSsJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig Ym9vc3RsaWIgPj0gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yIGJvb3N0bGliID49ICRib29zdF9saWJfdmVyc2lvbl9yZXEuLi4gIiA+JjY7IH0K LSsJCXN1Y2NlZWRlZD1ubwotKwotKwkJCQkJCQkJCQlpZiB0ZXN0IC1kIC9saWI2NAotKwkJdGhl bgotKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYjY0IgotKwkJZWxzZQotKwkJCUJPT1NUX0xJQkRJ UlRZUEU9ImxpYiIKLSsJCWZpCi0rCQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiIKLSsJ CXRoZW4KLSsJCQlpZiB0ZXN0ICIkQk9PU1RfTElCRElSVFlQRSIgPT0gImxpYjY0IgotKwkJCXRo ZW4KLSsJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiICYm IHRlc3QgLXIgIiRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQl0aGVuCi0r CSAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJE SVJUWVBFIgotKwkJCQllbHNlCi0rICAgICAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRh Y19ib29zdF9wYXRoL2xpYiIKLSsJCQkJZmkKLSsJCQllbHNlCi0rCQkJCUJPT1NUX0xJQlM9Ii1M JGFjX2Jvb3N0X3BhdGgvbGliIgotKwkJCWZpCi0rCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29z dF9wYXRoL2luY2x1ZGUiCi0rCQkJQk9PU1RfVkVSU0lPTj1gZ3JlcCAiZGVmaW5lIEJPT1NUX0xJ Ql9WRVJTSU9OIiAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlLyR7Qk9PU1RfdmVyc2lvbl9oZWFkZXJ9 IHwgY3V0IC1kJyAnIC1mMyB8IGN1dCAtZFwiIC1mMmAKLSsJCWVsc2UKLSsJCQlmb3IgYWNfYm9v c3RfcGF0aF90bXAgaW4gL3VzciAvdXNyL2xvY2FsIC9vcHQgL25hc3Rvb2xzL2Jvb3N0Ci0rCQkJ ZG8KLSsJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QiICYm IHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0IgotKwkJCQl0aGVuCi0r CQkJCQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoX3RtcC8kQk9PU1RfTElCRElSVFlQRSIK LSsJCQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZSIKLSsJCQkJ CUJPT1NUX1ZFUlNJT049YGdyZXAgImRlZmluZSBCT09TVF9MSUJfVkVSU0lPTiIgJGFjX2Jvb3N0 X3BhdGhfdG1wL2luY2x1ZGUvJHtCT09TVF92ZXJzaW9uX2hlYWRlcn0gfCBjdXQgLWQnICcgLWYz IHwgY3V0IC1kXCIgLWYyYAotKwkJCQkJYnJlYWs7Ci0rCQkJCWZpCi0rCQkJCWlmIHRlc3QgLWQg IiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi9ib29z dCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01E V19WRVJTSU9OL2Jvb3N0IgotKwkJCQl0aGVuCi0rCQkJCQlCT09TVF9MSUJTPSItTCRhY19ib29z dF9wYXRoX3RtcC8kQk9PU1RfTElCRElSVFlQRSIKLSsJCQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNf Ym9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJT04iCi0rCQkJCQlC T09TVF9WRVJTSU9OPWBncmVwICJkZWZpbmUgQk9PU1RfTElCX1ZFUlNJT04iICRhY19ib29zdF9w YXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi8ke0JPT1NUX3ZlcnNpb25f aGVhZGVyfSB8IGN1dCAtZCcgJyAtZjMgfCBjdXQgLWRcIiAtZjJgCi0rCi0rCQkJCQkJCQkJCWlm IHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9saWIiIFwKLSsJCQkJCSYmIHRlc3QgLXIgIiRh Y19ib29zdF9wYXRoX3RtcC9saWIiIFwKLSsJCQkJCSYmIHRlc3QgISAtZCAiJGFjX2Jvb3N0X3Bh dGhfdG1wL2xpYjY0IgotKwkJCQkJdGhlbgotKwkJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0 X3BhdGhfdG1wL2xpYiIKLSsJCQkJCQllY2hvICJIYWNrOiAkQk9PU1RfTElCUyIKLSsJCQkJCWZp Ci0rCQkJCQlicmVhazsKLSsJCQkJZmkKLSsJCQlkb25lCi0rCQlmaQotKwotKwkJQ1BQRkxBR1Nf U0FWRUQ9IiRDUFBGTEFHUyIKLSsJCUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFHUyIK LSsJCWV4cG9ydCBDUFBGTEFHUwotKwotKwkJTERGTEFHU19TQVZFRD0iJExERkxBR1MiCi0rCQlM REZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElCUyIKLSsJCWV4cG9ydCBMREZMQUdTCi0rCi0rICAg ICAJY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0r X0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsjaW5jbHVk ZSA8Ym9vc3QvdmVyc2lvbi5ocHA+Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsjaWYgQk9P U1RfVkVSU0lPTiA+PSAkV0FOVF9CT09TVF9WRVJTSU9OCi0rLy8gRXZlcnl0aGluZyBpcyBva2F5 Ci0rI2Vsc2UKLSsjICBlcnJvciBCb29zdCB2ZXJzaW9uIGlzIHRvbyBvbGQKLSsjZW5kaWYKLSsK LSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNf b2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGlu Ci0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQot KyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwot KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNv bmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhl bgotKwotKyAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIg PiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rCQkgc3VjY2VlZGVkPXllcwotKwkJIGZvdW5k X3N5c3RlbT15ZXMKLSsgICAgICAgICA6Ci0rCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTog ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0 ID4mNQotKwotKwotKwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rCQkJCQkJaWYgdGVzdCAieCRzdWNjZWVk ZWQiICE9ICJ4eWVzIjsgdGhlbgotKwkJCV92ZXJzaW9uPTAKLSsJCQlpZiB0ZXN0ICIkYWNfYm9v c3RfcGF0aCIgIT0gIiI7IHRoZW4KLSsgICAgICAgICAgICAgICAgQk9PU1RfTElCUz0iLUwkYWNf Ym9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIKLSsJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0 X3BhdGgiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoIjsgdGhlbgotKwkJCQkJZm9yIGkgaW4g YGxzIC1kICRhY19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3QtKiAyPi9kZXYvbnVsbGA7IGRvCi0r CQkJCQkJX3ZlcnNpb25fdG1wPWBlY2hvICRpIHwgc2VkICJzIyRhY19ib29zdF9wYXRoIyMiIHwg c2VkICdzL1wvaW5jbHVkZVwvYm9vc3QtLy8nIHwgc2VkICdzL18vLi8nYAotKwkJCQkJCVZfQ0hF Q0s9YGV4cHIgJF92ZXJzaW9uX3RtcCBcPiAkX3ZlcnNpb25gCi0rCQkJCQkJaWYgdGVzdCAiJFZf Q0hFQ0siID0gIjEiIDsgdGhlbgotKwkJCQkJCQlfdmVyc2lvbj0kX3ZlcnNpb25fdG1wCi0rCQkJ CQkJZmkKLSsJCQkJCQlWRVJTSU9OX1VOREVSU0NPUkU9YGVjaG8gJF92ZXJzaW9uIHwgc2VkICdz L1wuL18vJ2AKLSsJCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS9i b29zdC0kVkVSU0lPTl9VTkRFUlNDT1JFIgotKwkJCQkJZG9uZQotKwkJCQlmaQotKwkJCWVsc2UK LSsJCQkJZm9yIGFjX2Jvb3N0X3BhdGggaW4gL3VzciAvdXNyL2xvY2FsIC9vcHQgOyBkbwotKwkJ CQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRo IjsgdGhlbgotKwkJCQkJCWZvciBpIGluIGBscyAtZCAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jv b3N0LSogMj4vZGV2L251bGxgOyBkbwotKwkJCQkJCQlfdmVyc2lvbl90bXA9YGVjaG8gJGkgfCBz ZWQgInMjJGFjX2Jvb3N0X3BhdGgjIyIgfCBzZWQgJ3MvXC9pbmNsdWRlXC9ib29zdC0vLycgfCBz ZWQgJ3MvXy8uLydgCi0rCQkJCQkJCVZfQ0hFQ0s9YGV4cHIgJF92ZXJzaW9uX3RtcCBcPiAkX3Zl cnNpb25gCi0rCQkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KLSsJCQkJCQkJ CV92ZXJzaW9uPSRfdmVyc2lvbl90bXAKLSsJCQkJCQkJCWJlc3RfcGF0aD0kYWNfYm9vc3RfcGF0 aAotKwkJCQkJCQlmaQotKwkJCQkJCWRvbmUKLSsJCQkJCWZpCi0rCQkJCWRvbmUKLSsKLSsJCQkJ VkVSU0lPTl9VTkRFUlNDT1JFPWBlY2hvICRfdmVyc2lvbiB8IHNlZCAncy9cLi9fLydgCi0rCQkJ CUJPT1NUX0NGTEFHUz0iLUkkYmVzdF9wYXRoL2luY2x1ZGUvYm9vc3QtJFZFUlNJT05fVU5ERVJT Q09SRSIKLSsJCQkJQk9PU1RfTElCUz0iLUwkYmVzdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgot KwotKwkgICAgCQlpZiB0ZXN0ICJ4JEJPT1NUX1JPT1QiICE9ICJ4IjsgdGhlbgotKwkJCQkJaWYg dGVzdCAtZCAiJEJPT1NUX1JPT1QiICYmIHRlc3QgLXIgIiRCT09TVF9ST09UIjsgdGhlbgotKwkJ CQkJCXZlcnNpb25fZGlyPWBleHByIC8vJEJPT1NUX1JPT1QgOiAnLiovXCguKlwpJ2AKLSsJCQkJ CQlzdGFnZV92ZXJzaW9uPWBlY2hvICR2ZXJzaW9uX2RpciB8IHNlZCAncy9ib29zdF8vLycgfCBz ZWQgJ3MvXy8uL2cnYAotKwkJCQkJCXN0YWdlX3ZlcnNpb25fc2hvcnRlbj1gZXhwciAkc3RhZ2Vf dmVyc2lvbiA6ICdcKFswLTldKlwuWzAtOV0qXCknYAotKwkJCQkJCVZfQ0hFQ0s9YGV4cHIgJHN0 YWdlX3ZlcnNpb25fc2hvcnRlbiBcPlw9ICRfdmVyc2lvbmAKLSsJCQkJCQlpZiB0ZXN0ICIkVl9D SEVDSyIgPSAiMSIgOyB0aGVuCi0rCQkJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBX ZSB3aWxsIHVzZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IGZyb20gJEJPT1NUX1JPT1QiID4mNQot KyRhc19lY2hvICIkYXNfbWU6IFdlIHdpbGwgdXNlIGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkgZnJv bSAkQk9PU1RfUk9PVCIgPiY2O30KLSsJCQkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRCT09TVF9ST09U IgotKwkJCQkJCQlCT09TVF9MSUJTPSItTCRCT09TVF9ST09UL3N0YWdlLyRCT09TVF9MSUJESVJU WVBFIgotKwkJCQkJCWZpCi0rCQkJCQlmaQotKwkgICAgCQlmaQotKwkJCWZpCi0rCi0rCQkJQ1BQ RkxBR1M9IiRDUFBGTEFHUyAkQk9PU1RfQ0ZMQUdTIgotKwkJCWV4cG9ydCBDUFBGTEFHUwotKwkJ CUxERkxBR1M9IiRMREZMQUdTICRCT09TVF9MSUJTIgotKwkJCWV4cG9ydCBMREZMQUdTCi0rCi0r ICAgICAJCWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAq LwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rI2lu Y2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rI2lm IEJPT1NUX1ZFUlNJT04gPj0gJFdBTlRfQk9PU1RfVkVSU0lPTgotKy8vIEV2ZXJ5dGhpbmcgaXMg b2theQotKyNlbHNlCi0rIyAgZXJyb3IgQm9vc3QgdmVyc2lvbiBpcyB0b28gb2xkCi0rI2VuZGlm Ci0rCi0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3Qu JGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9 JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAt ZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAt cyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7 IHRoZW4KLSsKLSsgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5 ZXMgKCRfdmVyc2lvbikiID4mNQotKyRhc19lY2hvICJ5ZXMgKCRfdmVyc2lvbikiID4mNjsgfQot KwkJIHN1Y2NlZWRlZD15ZXMKLSsgICAgICAgICA6Ci0rCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRh c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4k YWNfZXh0ID4mNQotKwotKwotKyAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6IG5vICgkX3ZlcnNpb24pIiA+JjUKLSskYXNfZWNobyAibm8gKCRfdmVyc2lvbikiID4m NjsgfQotKyAgICAgICAgIDoKLSsKLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJZmkKLSsKLSsJCWlmIHRlc3Qg IiRzdWNjZWVkZWQiICE9ICJ5ZXMiIDsgdGhlbgotKwkJCWlmIHRlc3QgIiRfdmVyc2lvbiIgPSAi MCIgOyB0aGVuCi0rCQkJCXsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBXZSBj b3VsZCBub3QgZGV0ZWN0IHRoZSBib29zdCBsaWJyYXJpZXMgKHZlcnNpb24gJGJvb3N0X2xpYl92 ZXJzaW9uX3JlcV9zaG9ydGVuIG9yIGhpZ2hlcikuIElmIHlvdSBoYXZlIGEgc3RhZ2VkIGJvb3N0 IGxpYnJhcnkgKHN0aWxsIG5vdCBpbnN0YWxsZWQpIHBsZWFzZSBzcGVjaWZ5IFwkQk9PU1RfUk9P VCBpbiB5b3VyIGVudmlyb25tZW50IGFuZCBkbyBub3QgZ2l2ZSBhIFBBVEggdG8gLS13aXRoLWJv b3N0IG9wdGlvbi4gIElmIHlvdSBhcmUgc3VyZSB5b3UgaGF2ZSBib29zdCBpbnN0YWxsZWQsIHRo ZW4gY2hlY2sgeW91ciB2ZXJzaW9uIG51bWJlciBsb29raW5nIGluIDxib29zdC92ZXJzaW9uLmhw cD4uIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogV2UgY291bGQgbm90IGRldGVjdCB0 aGUgYm9vc3QgbGlicmFyaWVzICh2ZXJzaW9uICRib29zdF9saWJfdmVyc2lvbl9yZXFfc2hvcnRl biBvciBoaWdoZXIpLiBJZiB5b3UgaGF2ZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IChzdGlsbCBu b3QgaW5zdGFsbGVkKSBwbGVhc2Ugc3BlY2lmeSBcJEJPT1NUX1JPT1QgaW4geW91ciBlbnZpcm9u bWVudCBhbmQgZG8gbm90IGdpdmUgYSBQQVRIIHRvIC0td2l0aC1ib29zdCBvcHRpb24uICBJZiB5 b3UgYXJlIHN1cmUgeW91IGhhdmUgYm9vc3QgaW5zdGFsbGVkLCB0aGVuIGNoZWNrIHlvdXIgdmVy c2lvbiBudW1iZXIgbG9va2luZyBpbiA8Ym9vc3QvdmVyc2lvbi5ocHA+LiIgPiYyO30KLSsgICB7 IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsJCQllbHNlCi0rCQkJCXsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiAnWW91ciBib29zdCBsaWJyYXJpZXMgc2VlbXMgdG8gb2xkICh2 ZXJzaW9uICRfdmVyc2lvbikuICBXZSBuZWVkIGF0IGxlYXN0ICRib29zdF9saWJfdmVyc2lvbl9z aG9ydGVuJyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6ICdZb3VyIGJvb3N0IGxpYnJh cmllcyBzZWVtcyB0byBvbGQgKHZlcnNpb24gJF92ZXJzaW9uKS4gIFdlIG5lZWQgYXQgbGVhc3Qg JGJvb3N0X2xpYl92ZXJzaW9uX3Nob3J0ZW4nIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQotKwkJCWZpCi0rCQllbHNlCi0rCi0rCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxf QUNFT0YKLSsjZGVmaW5lIEhBVkVfQk9PU1QgLyoqLwotK19BQ0VPRgotKwotKwotKyMKLSsjIEJv b3N0OjpGaWxlc3lzdGVtCi0rIwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyB3aGV0aGVyIHRoZSBCb29zdDo6RmlsZXN5c3RlbSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkZpbGVzeXN0ZW0g bGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0 X2ZpbGVzeXN0ZW0rc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFH UycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj X2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdT ICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21w aWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvZmlsZXN5c3RlbS9w YXRoLmhwcD4KLStpbnQKLSttYWluICgpCi0rewotK3VzaW5nIG5hbWVzcGFjZSBib29zdDo6Zmls ZXN5c3RlbTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggbXlfcGF0 aCggImZvby9iYXIvZGF0YS50eHQiICk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIo KCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFj X3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK LSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNf c3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFj X29iamV4dDsgdGhlbgotKyAgYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbT15ZXMKLStlbHNlCi0rICAk YXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8n IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09bm8KLStm aQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QuJGFjX2V4dAotKwkJIAkJICAgICAgICAJCQlhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQ ICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29u ZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQg JENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScK LSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9maWxlc3lzdGVt IiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0iID4mNjsgfQotKwkJCWlm IHRlc3QgIiRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rY2F0ID4+ Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfQk9PU1RfRklMRVNZU1RFTSAvKiov Ci0rX0FDRU9GCi0rCi0rCQkJCUJOPWJvb3N0X2ZpbGVzeXN0ZW0KLSsJCQkJZm9yIGF4X2xpYiBp biAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQg bGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4t JENDLXMgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBcCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJEJOLW1ndy1zICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9O IDsgZG8KLSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydf bWFpbiIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1h aW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZh bCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJT Ci0rTElCUz0iLWwkYXhfbGliICAkTElCUyIKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4gKCk7 Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2Ug IigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNf c3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgot KyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19z dGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19l eGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190 ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGV2YWwgIiRhc19h Y19MaWI9eWVzIgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdh czoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJZXZhbCAi JGFzX2FjX0xpYj1ubyIKLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0 Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9 JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRh c19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3Jl cyIgPiY2OyB9Ci0rYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFz X2VjaG8gIiRhc192YWwiJ2AKLSsgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4K LSsgIEJPT1NUX0ZJTEVTWVNURU1fTElCPSItbCRheF9saWIiICBsaW5rX2ZpbGVzeXN0ZW09Inll cyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX2ZpbGVzeXN0ZW09Im5vIgotK2ZpCi0rCi0rICAJCQkJ ZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfZmlsZXN5c3RlbSIgPSAieG5vIjsgdGhlbgotKwkJ CQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4 X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRh eF9saWIgISIgPiY2O30KLSsJCQkJZmkKLSsJCQlmaQotKwotKyMKLSsjIEJvb3N0OjpTeXN0ZW0K LSsjCi0rICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdo ZXRoZXIgdGhlIEJvb3N0OjpTeXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpTeXN0ZW0gbGlicmFyeSBpcyBhdmFp bGFibGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3N5c3RlbStzZXR9IiA9 IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rICAg ICAgICAgICAgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29t cGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1Jwot K2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1Mg JExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRh Y19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rICAgICAgICAgICAgY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3Qvc3lzdGVtL2Vycm9yX2Nv ZGUuaHBwPgotK2ludAotK21haW4gKCkKLSt7Ci0rdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpzeXN0 ZW07Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlIG15RXJy b3JDb2RlKCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsK LSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2Jq ZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0r ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJ TkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAg KGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAg Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0 ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7 Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgot KyAgYXhfY3ZfYm9vc3Rfc3lzdGVtPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZh aWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+ JjUKLSsKLSsJYXhfY3ZfYm9vc3Rfc3lzdGVtPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRD UFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRl c3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENY WEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSth Y19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9zeXN0ZW0iID4mNQot KyRhc19lY2hvICIkYXhfY3ZfYm9vc3Rfc3lzdGVtIiA+JjY7IH0KLSsgICAgICAgICAgICBpZiB0 ZXN0ICIkYXhfY3ZfYm9vc3Rfc3lzdGVtIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRl ZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfQk9PU1RfU1lTVEVNIC8qKi8KLStfQUNFT0YK LSsKLSsgICAgICAgICAgICAgICAgIEJOPWJvb3N0X3N5c3RlbQotKyAgICAgICAgICAgICAgICAg Zm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJEND LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxp YiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJEJOLW1ndyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1z ICRCTi1tZ3ctcyA7IGRvCi0rICAgICAgICAgICAgICAgICAgICAgYXNfYWNfTGliPWAkYXNfZWNo byAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KLStpZiB7 IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQi OyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2No ZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCA+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgot K2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50Ci0rbWFpbiAo KQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YK LStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFj X3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAq XFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsK LStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNo b1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIp IDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0 ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25m dGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4 eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAm JiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGls aW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAg fTsgdGhlbgotKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRh c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4k YWNfZXh0ID4mNQotKwotKwlldmFsICIkYXNfYWNfTGliPW5vIgotK2ZpCi0rCi0rcm0gLXJmIGNv bmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBj b25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0rYWNf cmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwi J2AKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMi ID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSthc192YWw9YGV2YWwgJ2FzX3ZhbD0k eyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKyAgIGlmIHRlc3QgIngk YXNfdmFsIiA9IHgiInllczsgdGhlbgotKyAgQk9PU1RfU1lTVEVNX0xJQj0iLWwkYXhfbGliIiAg bGlua19zeXN0ZW09InllcyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX3N5c3RlbT0ibm8iCi0rZmkK LSsKLSsgICAgICAgICAgICAgICAgIGRvbmUKLSsgICAgICAgICAgICAgICAgIGlmIHRlc3QgIngk bGlua19zeXN0ZW0iID0gInhubyI7IHRoZW4KLSsgICAgICAgICAgICAgICAgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4m NQotKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+ JjY7fQotKyAgICAgICAgICAgICAgICAgZmkKLSsgICAgICAgICAgICBmaQotKwotKyMKLSsjIEJv b3N0OjpQcm9ncmFtX09wdGlvbnMKLSsjCi0rCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpQcm9ncmFtX09wdGlvbnMgbGlicmFyeSBpcyBh dmFpbGFibGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpQ cm9ncmFtX09wdGlvbnMgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0 ICIke2F4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGls ZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2Fj X2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExE RkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19j dl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCQkJICAgICAgICAgICAgICAgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvcHJvZ3JhbV9vcHRp b25zLmhwcD4KLStpbnQKLSttYWluICgpCi0rewotK2Jvb3N0Ojpwcm9ncmFtX29wdGlvbnM6Om9w dGlvbnNfZGVzY3JpcHRpb24gZ2VuZXJpYygiR2VuZXJpYyBvcHRpb25zIik7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwot K30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIk YWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2Vz YWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi Ci0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikg Mj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4 X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYm IHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYXhfY3ZfYm9vc3RfcHJvZ3Jh bV9vcHRpb25zPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYXhf Y3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgICAgICAgICAg ICAgICBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxl PSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNf bGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2 X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnMiID4mNQotKyRhc19lY2hvICIk YXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zIiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICIkYXhfY3Zf Ym9vc3RfcHJvZ3JhbV9vcHRpb25zIiA9IHllczsgdGhlbgotKwotK2NhdCA+PmNvbmZkZWZzLmgg PDxcX0FDRU9GCi0rI2RlZmluZSBIQVZFX0JPT1NUX1BST0dSQU1fT1BUSU9OUyAvKiovCi0rX0FD RU9GCi0rCi0rCQkJCUJOPWJvb3N0X3Byb2dyYW1fb3B0aW9ucwotKwkJCQlmb3IgYXhfbGliIGlu ICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBs aWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0k Q0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OOyBkbwotKwkJCQkgICAgYXNfYWNfTGli PWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7 IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9 XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJT IgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwot K19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50 Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30K LStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAot K2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIk YWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsg IGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAt eiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsg ICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jv c3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQK LSsgICAgICAgfTsgdGhlbgotKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0rZWxzZQotKyAgJGFz X2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBj b25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlldmFsICIkYXNfYWNfTGliPW5vIgotK2ZpCi0rCi0r cm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFj X2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwot K2ZpCi0rYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8g IiRhc192YWwiJ2AKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSthc192YWw9YGV2YWwg J2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKyAgIGlm IHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgotKyAgQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQj0iLWwkYXhfbGliIiAgbGlua19wcm9ncmFtX29wdGlvbnM9InllcyIgYnJlYWsKLStlbHNl Ci0rICBsaW5rX3Byb2dyYW1fb3B0aW9ucz0ibm8iCi0rZmkKLSsKLSsgIAkJCQlkb25lCi0rCQkJ CWlmIHRlc3QgIngkbGlua19wcm9ncmFtX29wdGlvbnM9Im5vIiIgPSAieG5vIjsgdGhlbgotKwkJ CQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4 X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRh eF9saWIgISIgPiY2O30KLSsJCQkJZmkKLSsJCQlmaQotKwotKyMKLSsjIEJvb3N0OjpUaHJlYWRz Ci0rIwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRo ZSBCb29zdDo6VGhyZWFkIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6VGhyZWFkIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4u ICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtheF9jdl9ib29zdF90aHJlYWQrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9 Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRD WFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAt byBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVz dC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxl cl9nbnUKLSsKLSsJCQkgQ1hYRkxBR1NfU0FWRT0kQ1hYRkxBR1MKLSsKLSsJCQkgaWYgdGVzdCAi eCRidWlsZF9vcyIgPSAieHNvbGFyaXMiIDsgdGhlbgotKyAgCQkJCSBDWFhGTEFHUz0iLXB0aHJl YWRzICRDWFhGTEFHUyIKLSsJCQkgZWxpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4bWluZzMyIiA7 IHRoZW4KLSsJCQkJIENYWEZMQUdTPSItbXRocmVhZHMgJENYWEZMQUdTIgotKwkJCSBlbHNlCi0r CQkJCUNYWEZMQUdTPSItcHRocmVhZCAkQ1hYRkxBR1MiCi0rCQkJIGZpCi0rCQkJIGNhdCA+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2Nh dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGJvb3N0L3RocmVh ZC90aHJlYWQuaHBwPgotK2ludAotK21haW4gKCkKLSt7Ci0rYm9vc3Q6OnRocmVhZF9ncm91cCB0 aHJkczsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotKyAg OwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQK LStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZh bCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJ IHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBh eF9jdl9ib29zdF90aHJlYWQ9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQot KwotKwlheF9jdl9ib29zdF90aHJlYWQ9bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSBDWFhGTEFHUz0k Q1hYRkxBR1NfU0FWRQotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFH UycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj X2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdT ICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21w aWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF90aHJlYWQiID4mNQotKyRhc19l Y2hvICIkYXhfY3ZfYm9vc3RfdGhyZWFkIiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jv b3N0X3RocmVhZCIgPSAieHllcyI7IHRoZW4KLSsgICAgICAgICAgICAgICBpZiB0ZXN0ICJ4JGJ1 aWxkX29zIiA9ICJ4c29sYXJpcyIgOyB0aGVuCi0rIAkJCQkgIEJPT1NUX0NGTEFHUz0iLXB0aHJl YWRzICRCT09TVF9DRkxBR1MiCi0rCQkJICAgZWxpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4bWlu ZzMyIiA7IHRoZW4KLSsgCQkJCSAgQk9PU1RfQ0ZMQUdTPSItbXRocmVhZHMgJEJPT1NUX0NGTEFH UyIKLSsJCQkgICBlbHNlCi0rCQkJCSAgQk9PU1RfQ0ZMQUdTPSItcHRocmVhZCAkQk9PU1RfQ0ZM QUdTIgotKwkJCSAgIGZpCi0rCi0rCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsj ZGVmaW5lIEhBVkVfQk9PU1RfVEhSRUFEIC8qKi8KLStfQUNFT0YKLSsKLSsJCQkJQk49Ym9vc3Rf dGhyZWFkCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi1tdCAkQk4tJENDICRCTi0kQ0MtbXQg XAotKwkJCQkJCSAgIAkgICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRD Qy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJO LW1ndyAkQk4tbWd3LW10IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3 LW10LXMgJEJOLW1ndy1zICBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRD Qy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgYXNfYWNfTGliPWAkYXNf ZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKLSsk YXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KLStp ZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBz ZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFj X2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2Nh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VP RgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50Ci0rbWFp biAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNF T0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsg KGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCog fCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5 OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlf ZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGlu ayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNv bmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBj b25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFj X2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAg fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29t cGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAg ICAgfTsgdGhlbgotKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0rZWxzZQotKyAgJGFzX2VjaG8g IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVz dC4kYWNfZXh0ID4mNQotKwotKwlldmFsICIkYXNfYWNfTGliPW5vIgotK2ZpCi0rCi0rcm0gLXJm IGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0r YWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192 YWwiJ2AKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19y ZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSthc192YWw9YGV2YWwgJ2FzX3Zh bD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKyAgIGlmIHRlc3Qg IngkYXNfdmFsIiA9IHgiInllczsgdGhlbgotKyAgQk9PU1RfVEhSRUFEX0xJQj0iLWwkYXhfbGli IiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX3RocmVhZD0ibm8iCi0r ZmkKLSsKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7 IHRoZW4KLSsJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBh Z2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsg YWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBCb29z dDo6SU9TdHJlYW1zCi0rIwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyB3aGV0aGVyIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJh cnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtheF9jdl9ib29zdF9pb3N0 cmVhbXMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSth Y19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+ JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBG TEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9n bnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmgg Pj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvaW9zdHJlYW1zL2ZpbHRlcmlu Z19zdHJlYW0uaHBwPgotKwkJCQkJCQkJCQkJCSAjaW5jbHVkZSA8Ym9vc3QvcmFuZ2UvaXRlcmF0 b3JfcmFuZ2UuaHBwPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rc3RkOjpzdHJpbmcgIGlucHV0 ID0gIkhlbGxvIFdvcmxkISI7Ci0rCQkJCQkJCQkJIG5hbWVzcGFjZSBpbyA9IGJvb3N0Ojppb3N0 cmVhbXM7Ci0rCQkJCQkJCQkJIGlvOjpmaWx0ZXJpbmdfaXN0cmVhbSAgaW4oYm9vc3Q6Om1ha2Vf aXRlcmF0b3JfcmFuZ2UoaW5wdXQpKTsKLSsJCQkJCQkJCQkgcmV0dXJuIDA7Ci0rCi0rICA7Ci0r ICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lm IHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIk YWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYg J14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEK LSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVz dCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIK LSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4X2N2 X2Jvb3N0X2lvc3RyZWFtcz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0r Ci0rCWF4X2N2X2Jvb3N0X2lvc3RyZWFtcz1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCQkJIGFjX2V4dD1j cHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENY WEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1v IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVy X2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4 X2N2X2Jvb3N0X2lvc3RyZWFtcyIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF9pb3N0cmVh bXMiID4mNjsgfQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfaW9zdHJlYW1zIiA9ICJ4eWVz IjsgdGhlbgotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBIQVZFX0JP T1NUX0lPU1RSRUFNUyAvKiovCi0rX0FDRU9GCi0rCi0rCQkJCUJOPWJvb3N0X2lvc3RyZWFtcwot KwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRC Ti0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0k Q0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRv Ci0rCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4i IHwgJGFzX3RyX3NoYAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig bWFpbiBpbiAtbCRheF9saWIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGlu IC1sJGF4X2xpYi4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRl c3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwotK0xJ QlM9Ii1sJGF4X2xpYiAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0r LyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KLSsKLSsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBtYWluICgpOwotKyAg OwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRh Y190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK LSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1 cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJt IC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVz KTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0 ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94 IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBldmFsICIkYXNfYWNfTGli PXllcyIKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWV2YWwgIiRhc19h Y19MaWI9bm8iCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBc Ci0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19j aGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLSthY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNf TGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKwkgICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4m NjsgfQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hv ICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCi0rICBC T09TVF9JT1NUUkVBTVNfTElCPSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhawot K2Vsc2UKLSsgIGxpbmtfdGhyZWFkPSJubyIKLStmaQotKwotKyAgCQkJCWRvbmUKLSsJCQkJaWYg dGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KLSsJ CQkJZmkKLSsJCQlmaQotKwotKyMKLSsjIEJvb3N0OjpTZXJpYWxpemF0aW9uCi0rIwotKwkJCXsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6U2Vy aWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgd2hldGhlciB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGlicmFyeSBpcyBhdmFpbGFibGUu Li4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb24rc2V0fSIg PSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJ CSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSck Q1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGlu az0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFH UyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4 eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0r LyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KLSsjaW5jbHVkZSA8ZnN0cmVhbT4KLSsJCQkJCQkJCQkJCQkgI2luY2x1ZGUgPGJv b3N0L2FyY2hpdmUvdGV4dF9vYXJjaGl2ZS5ocHA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICNpbmNsdWRlIDxib29zdC9hcmNoaXZlL3RleHRfaWFy Y2hpdmUuaHBwPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rc3RkOjpvZnN0cmVhbSBvZnMoImZp bGVuYW1lIik7Ci0rCQkJCQkJCQkJYm9vc3Q6OmFyY2hpdmU6OnRleHRfb2FyY2hpdmUgb2Eob2Zz KTsKLSsJCQkJCQkJCQkgcmV0dXJuIDA7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FD RU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBp bGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRl c3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIg PiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQot KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3Jf ZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb249 eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlheF9jdl9ib29zdF9z ZXJpYWxpemF0aW9uPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0n JENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNf ZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3Rfc2Vy aWFsaXphdGlvbiIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uIiA+ JjY7IH0KLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb24iID0gInh5ZXMi OyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfQk9P U1RfU0VSSUFMSVpBVElPTiAvKiovCi0rX0FDRU9GCi0rCi0rCQkJCUJOPWJvb3N0X3NlcmlhbGl6 YXRpb24KLSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0Mt bXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBs aWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJ T04gOyBkbwotKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWIn J19tYWluIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Ig bWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBl dmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJ QlMKLStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29u ZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQg Y29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAo KTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2Fz ZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj X3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlf ZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNf dHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBh Y19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy Ci0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFz X3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgZXZhbCAiJGFz X2FjX0xpYj15ZXMiCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0g d2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlldmFs ICIkYXNfYWNfTGliPW5vIgotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRl c3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElC Uz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0rYWNfcmVzPWBldmFsICdhc192YWw9JHsn JGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsJICAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNf cmVzIiA+JjY7IH0KLSthc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAk YXNfZWNobyAiJGFzX3ZhbCInYAotKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhl bgotKyAgQk9PU1RfU0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfdGhyZWFkPSJ5 ZXMiIGJyZWFrCi0rZWxzZQotKyAgbGlua190aHJlYWQ9Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9u ZQotKwkJCQlCTj1ib29zdF93c2VyaWFsaXphdGlvbgotKwkJCQlmb3IgYXhfbGliIGluICRCTiAk Qk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4t JENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAk Qk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1t Z3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4t JENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBhc19hY19MaWI9YCRh c19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAotK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQot K2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9 IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAg YWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCi0r Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FD RU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsKLStpbnQKLStt YWluICgpCi0rewotK3JldHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19B Q0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYg eyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19s aW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycg Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIk YWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19j b21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAg ICAgICB9OyB0aGVuCi0rICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNlCi0rICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWV2YWwgIiRhc19hY19MaWI9bm8iCi0rZmkKLSsKLStybSAt cmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhl ZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkK LSthY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFz X3ZhbCInYAotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj X3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2FzX3ZhbD1gZXZhbCAnYXNf dmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVz dCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCi0rICBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUI9 Ii1sJGF4X2xpYiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCi0rZWxzZQotKyAgbGlua190aHJl YWQ9Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFk IiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQg bm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IENvdWxk IG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQotKwkJCQlmaQotKwkJCWZpCi0rCi0r IwotKyMgQm9vc3Q6OlNpZ25hbHMKLSsjCi0rCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxl IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6U2lnbmFscyBs aWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3Rf c2lnbmFscytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rCi0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwot K2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQ UEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVy X2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMu aCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0r LyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxib29zdC9zaWduYWwuaHBwPgotKwot K2ludAotK21haW4gKCkKLSt7Ci0rYm9vc3Q6OnNpZ25hbDx2b2lkICgpPiBzaWc7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotKwotKyAgOwotKyAgcmV0 dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChh Y190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2Nv bXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBj YXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXog IiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAg ICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBheF9jdl9ib29z dF9zaWduYWxzPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYXhf Y3ZfYm9vc3Rfc2lnbmFscz1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCQkJIGFjX2V4dD1jcHAKLSthY19j cHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg JExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwot KwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0 X3NpZ25hbHMiID4mNQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3Rfc2lnbmFscyIgPiY2OyB9Ci0r CQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9zaWduYWxzIiA9ICJ4eWVzIjsgdGhlbgotKwotK2Nh dCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBIQVZFX0JPT1NUX1NJR05BTFMgLyoq LwotK19BQ0VPRgotKwotKwkJCQlCTj1ib29zdF9zaWduYWxzCi0rCQkJCWZvciBheF9saWIgaW4g JEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxp YiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRD Qy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIGFzX2FjX0xp Yj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCi0reyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2 OyB9Ci0raWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0 fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwkYXhfbGliICAkTElC UyIKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8K LStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotKwotK2lu dAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9 Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQK LStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAi JGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICde ICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0r ICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3Qg LXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0r ICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNy b3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0 Ci0rICAgICAgIH07IHRoZW4KLSsgIGV2YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsgICRh c19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycg Y29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStmaQotKwot K3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRh Y19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMK LStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hv ICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rYXNfdmFsPWBldmFs ICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsgICBp ZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KLSsgIEJPT1NUX1NJR05BTFNfTElCPSIt bCRheF9saWIiICBsaW5rX3NpZ25hbHM9InllcyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX3NpZ25h bHM9Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfc2lnbmFs cyIgPSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxk IG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBDb3Vs ZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KLSsJCQkJZmkKLSsJCQlmaQotKwot KyMKLSsjIEJvb3N0OjpEYXRlX1RpbWUKLSsjCi0rCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpEYXRlX1RpbWUgbGlicmFyeSBpcyBhdmFp bGFibGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpEYXRl X1RpbWUgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2 X2Jvb3N0X2RhdGVfdGltZStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLStlbHNlCi0rCi0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQ UEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVz dC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hY RkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2Fj X2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwkJCSBjYXQgPmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQg Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxib29zdC9kYXRlX3Rp bWUvZ3JlZ29yaWFuL2dyZWdvcmlhbl90eXBlcy5ocHA+Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sK LSt1c2luZyBuYW1lc3BhY2UgYm9vc3Q6OmdyZWdvcmlhbjsgZGF0ZSBkKDIwMDIsSmFuLDEwKTsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0rCi0rICA7 Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAot K2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwi KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNo bz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86 ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFs ICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAg LXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5l cjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkg dGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5l cnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4 X2N2X2Jvb3N0X2RhdGVfdGltZT15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 Ci0rCi0rCWF4X2N2X2Jvb3N0X2RhdGVfdGltZT1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCQkJIGFjX2V4 dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMg JENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hY IC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBp bGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF9kYXRl X3RpbWUiID4mNjsgfQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfZGF0ZV90aW1lIiA9ICJ4 eWVzIjsgdGhlbgotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBIQVZF X0JPT1NUX0RBVEVfVElNRSAvKiovCi0rX0FDRU9GCi0rCi0rCQkJCUJOPWJvb3N0X2RhdGVfdGlt ZQotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1z ICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRC Ti0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7 IGRvCi0rCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21h aW4iIHwgJGFzX3RyX3NoYAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWlu IGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwg InRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwot K0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G Ci0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz dC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KLSsKLSsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBtYWluICgpOwot KyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIo KCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0 YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsg IHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhl ZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVz dF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBldmFsICIkYXNfYWNf TGliPXllcyIKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWV2YWwgIiRh c19hY19MaWI9bm8iCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5v byBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRh Y19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLSthY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNf YWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKwkgICAgICAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMi ID4mNjsgfQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19l Y2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCi0r ICBCT09TVF9EQVRFX1RJTUVfTElCPSItbCRheF9saWIiICBsaW5rX2RhdGVfdGltZT0ieWVzIiBi cmVhawotK2Vsc2UKLSsgIGxpbmtfZGF0ZV90aW1lPSJubyIKLStmaQotKwotKyAgCQkJCWRvbmUK LSsJCQkJaWYgdGVzdCAieCRsaW5rX2RhdGVfdGltZSI9Im5vIiA9ICJ4bm8iOyB0aGVuCi0rCQkJ CQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhf bGliICEiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4 X2xpYiAhIiA+JjY7fQotKwkJCQlmaQotKwkJCWZpCi0rCi0rIwotKyMgQm9vc3Q6OlJlZ2V4Ci0r IwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBC b29zdDo6UmVnZXggbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4m NjsgfQotK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfcmVnZXgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0r YWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25m dGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUK LSsKLSsJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4g ICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5j bHVkZSA8Ym9vc3QvcmVnZXguaHBwPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rYm9vc3Q6OnJl Z2V4IHIoKTsgcmV0dXJuIDA7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0g LWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2Fz ZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj X3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlf ZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNf dHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0r ICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3Qu ZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwK LSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0 LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4X2N2X2Jvb3N0X3JlZ2V4PXllcwotK2Vsc2UKLSsgICRh c19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycg Y29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYXhfY3ZfYm9vc3RfcmVnZXg9bm8KLStmaQotKwot K3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFj X2V4dAotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19j b21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn Ci0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFH UyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9 JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9yZWdleCIgPiY1Ci0rJGFzX2VjaG8gIiRheF9j dl9ib29zdF9yZWdleCIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9yZWdleCIg PSAieHllcyI7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUg SEFWRV9CT09TVF9SRUdFWCAvKiovCi0rX0FDRU9GCi0rCi0rCQkJCUJOPWJvb3N0X3JlZ2V4Ci0r CQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJO LSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRD QyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8K LSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIg fCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBt YWluIGluIC1sJGF4X2xpYiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4g LWwkYXhfbGliLi4uICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVz dCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElC Uz0iLWwkYXhfbGliICAkTElCUyIKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsv KiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh Y19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZz LmguICAqLwotKwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4gKCk7Ci0rICA7 Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFj X3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owot KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVz PSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0g LWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMp OyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEg LXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQg JiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3gg Y29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGV2YWwgIiRhc19hY19MaWI9 eWVzIgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4m NQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJZXZhbCAiJGFzX2Fj X0xpYj1ubyIKLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwK LSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2No ZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19M aWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2 OyB9Ci0rYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8g IiRhc192YWwiJ2AKLSsgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KLSsgIEJP T1NUX1JFR0VYX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKLStlbHNl Ci0rICBsaW5rX3RocmVhZD0ibm8iCi0rZmkKLSsKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3Qg IngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZp Ci0rCQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6QVNJTzogaXQgbmVlZHMgQm9vc3QuU3lzdGVtLCBC b29zdC5SZWdleCwgQm9vc3QuVGhyZWFkIGFuZAotKyMgQm9vc3QuRGF0ZVRpbWUsIGJ1dCBkb2Vz IG5vdCBwcm9kdWNlIGFueSAob3RoZXIpIGxpYnJhcnkuCi0rIwotKwkJCXsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6QXNpbyBsaWJyYXJ5IGlz IGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6 OkFzaW8gbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2 X2Jvb3N0X2FzaW8rc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFH UycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj X2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdT ICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21w aWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvYXNpby5ocHA+Ci0r aW50Ci0rbWFpbiAoKQotK3sKLStib29zdDo6YXNpbzo6aW9fc2VydmljZSBpbzsKLSsJICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vc3Q6OnN5c3RlbTo6ZXJyb3JfY29kZSB0aW1l cl9yZXN1bHQ7Ci0rCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb3N0Ojphc2lv OjpkZWFkbGluZV90aW1lciB0KGlvKTsKLSsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdC5jYW5jZWwoKTsKLSsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW8ucnVu X29uZSgpOwotKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsK LSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2Jq ZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0r ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJ TkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAg KGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAg Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0 ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7 Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgot KyAgYXhfY3ZfYm9vc3RfYXNpbz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 Ci0rCi0rCWF4X2N2X2Jvb3N0X2FzaW89bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSBhY19leHQ9Y3Bw Ci0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhG TEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBj b25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4k YWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9n bnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9j dl9ib29zdF9hc2lvIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2FzaW8iID4mNjsgfQot KwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfYXNpbyIgPSAieHllcyI7IHRoZW4KLSsKLStjYXQg Pj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgSEFWRV9CT09TVF9BU0lPIC8qKi8KLStf QUNFT0YKLSsKLSsJCQkgICBCT09TVF9BU0lPX0xJQj0iJHtCT09TVF9TWVNURU1fTElCfSAke0JP T1NUX1RIUkVBRF9MSUJ9IgotKwkJCSAgIEJPT1NUX0FTSU9fTElCPSIke0JPT1NUX0FTSU9fTElC fSAke0JPT1NUX0RBVEVfVElNRV9MSUJ9IgotKwkJCSAgIEJPT1NUX0FTSU9fTElCPSIke0JPT1NU X0FTSU9fTElCfSAke0JPT1NUX1JFR0VYX0xJQn0iCi0rCQkJICAgQk9PU1RfQVNJT19MSUI9IiR7 Qk9PU1RfQVNJT19MSUJ9ICR7Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUJ9IgotKwkJCWZpCi0rCi0r IwotKyMgU3VwcG9ydCBmb3IgUHl0aG9uIGFuZCBNUEkgKE1QSUNIMiwgQm9vc3Q6Ok1QSSwgQm9v c3Q6OlB5dGhvbiwKLSsjIEJvb3N0OjpTZXJpYWxpemF0aW9uLCBCb29zdDo6TVBJX1B5dGhvbikK LSsjIE5vdGU6IG9uIHNvbWUgZGlzdHJpYnV0aW9ucyAoZS5nLiwgRGViaWFuKSwgQm9vc3QuTVBJ IHVzZXMgT3Blbk1QSSByYXRoZXIKLSsjICAgICAgIHRoYW4gTVBJQ0gyCi0rIwotKwkJCUNQUEZM QUdTX09SSUc9IiR7Q1BQRkxBR1N9IgotKwkJCUNQUEZMQUdTPSIke0NQUEZMQUdTfSAke1BZVEhP Tl9DRkxBR1N9ICR7TVBJR0VOX0NGTEFHU30iCi0rIwkJCUNQUEZMQUdTPSIke0NQUEZMQUdTfSAk e1BZVEhPTl9DRkxBR1N9ICR7TVBJQ0gyX0NGTEFHU30iCi0rIwkJCUNQUEZMQUdTPSIke0NQUEZM QUdTfSAke1BZVEhPTl9DRkxBR1N9ICR7T1BFTk1QSV9DRkxBR1N9IgotKwkJCUxERkxBR1NfT1JJ Rz0iJHtMREZMQUdTfSIKLSsJCQlMREZMQUdTPSIke0xERkxBR1N9ICR7UFlUSE9OX0xJQlN9ICR7 UFlUSE9OX0FERF9MSUJTfSAke01QSUdFTl9MSUJTfSIKLSsjCQkJTERGTEFHUz0iJHtMREZMQUdT fSAke1BZVEhPTl9MSUJTfSAke1BZVEhPTl9BRERfTElCU30gJHtNUElDSDJfTElCU30iCi0rIwkJ CUxERkxBR1M9IiR7TERGTEFHU30gJHtQWVRIT05fTElCU30gJHtQWVRIT05fQUREX0xJQlN9ICR7 T1BFTk1QSV9MSUJTfSIKLSsKLSsjCi0rIyBCb29zdDo6UHl0aG9uCi0rIwotKwkJCXsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6UHl0aG9uIGxp YnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRo ZSBCb29zdDo6UHl0aG9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Ci0raWYgdGVz dCAiJHtheF9jdl9ib29zdF9weXRob24rc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCWFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhD UFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBj b25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1 JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwotKwkJICAg IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19B Q0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGJv b3N0L3B5dGhvbi5ocHA+Ci0rCQkJY2hhciBjb25zdCogZ3JlZXQoKSB7IHJldHVybiAiaGVsbG8i OyB9Ci0rCQkJQk9PU1RfUFlUSE9OX01PRFVMRShoZWxsb19leHQpIHsgYm9vc3Q6OnB5dGhvbjo6 ZGVmKCJncmVldCIsIGdyZWV0KTt9Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsg IHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYg eyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFj X3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRh Y19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAn XiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQot KyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0 IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgot KyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYXhfY3Zf Ym9vc3RfcHl0aG9uPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJ YXhfY3ZfYm9vc3RfcHl0aG9uPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgYWNfZXh0PWNwcAotK2Fj X2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1Mg JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRl c3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4 dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0r Ci0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9v c3RfcHl0aG9uIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3B5dGhvbiIgPiY2OyB9Ci0r Ci0rCQkJQk9PU1RfUFlUSE9OX0xJQj0iLWxib29zdF9weXRob24gJHtQWVRIT05fTElCU30gJHtQ WVRIT05fQUREX0xJQlN9IgotKwotKwotKyMKLSsjIEJvb3N0OjpNUEkKLSsjCi0rCQkJeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpNcGkgbGli cmFyeSBpcyBhdmFpbGFibGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhl IEJvb3N0OjpNcGkgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIk e2F4X2N2X2Jvb3N0X21waStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLStlbHNlCi0rCi0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQ UEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVz dC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hY RkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2Fj X2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwkJCSBjYXQgPmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQg Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxib29zdC9tcGkuaHBw PgotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAwOwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1m IGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2Ug IigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAg YWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRh Y19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0r CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4k YWNfb2JqZXh0OyB0aGVuCi0rICBheF9jdl9ib29zdF9tcGk9eWVzCi0rZWxzZQotKyAgJGFzX2Vj aG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25m dGVzdC4kYWNfZXh0ID4mNQotKwotKwlheF9jdl9ib29zdF9tcGk9bm8KLStmaQotKwotK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAot KwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxl PSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNf bGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2 X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRheF9jdl9ib29zdF9tcGkiID4mNQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3Rf bXBpIiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X21waSIgPSAieHllcyI7IHRo ZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgSEFWRV9CT09TVF9N UEkgLyoqLwotK19BQ0VPRgotKwotKwkJCQlCTj1ib29zdF9tcGkKLSsJCQkJZm9yIGF4X2xpYiBp biAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQg bGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4t JENDLXMgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBcCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJEJOLW1ndy1zICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9O IDsgZG8KLSsKLSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGli JydfbWFpbiIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFzX2FjX0xpYjsg ZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRM SUJTCi0rTElCUz0iLWwkYXhfbGliICAkTElCUyIKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNv bmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5k IGNvbmZkZWZzLmguICAqLwotKwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4g KCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nh c2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAg YWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRh Y19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0r CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRh Y19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRh c190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGV2YWwgIiRh c19hY19MaWI9eWVzIgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJZXZh bCAiJGFzX2FjX0xpYj1ubyIKLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYg Y29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0 ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJ QlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7 JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFj X3JlcyIgPiY2OyB9Ci0rYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkg JGFzX2VjaG8gIiRhc192YWwiJ2AKLSsgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRo ZW4KLSsgIEJPT1NUX01QSV9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfbXBpPSJ5ZXMiIGJyZWFrCi0r ZWxzZQotKyAgbGlua19tcGk9Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0 ICJ4JGxpbmtfbXBpIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQotKyRhc19lY2hvICIk YXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQotKwkJCQllbHNl Ci0rCQkJCQlCT09TVF9NUElfTElCPSIke0JPT1NUX01QSV9MSUJ9ICR7Qk9PU1RfU0VSSUFMSVpB VElPTl9MSUJ9ICR7TVBJR0VOX0xJQlN9IgotKwkJCQlmaQotKwkJCWZpCi0rCi0rIwotKyMgQm9v c3Q6Ok1QSV9QeXRob24KLSsjCi0rCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpNcGlfUHl0aG9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6TXBpX1B5dGhvbiBs aWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3Rf bXBpX3B5dGhvbitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rCi0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdT JwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1Mg JENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBp bGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwkJCSBjYXQgPmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRl ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxib29zdC9tcGkvcHl0aG9uL3Nl cmlhbGl6ZS5ocHA+Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsJICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0r X0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2Nv bXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0r ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29u ZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVy MSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5l cnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJy b3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0 IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4X2N2X2Jvb3N0X21waV9weXRob249 eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlheF9jdl9ib29zdF9t cGlfcHl0aG9uPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENY WENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhl ZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+ JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rZmkK LSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfbXBpX3B5 dGhvbiIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF9tcGlfcHl0aG9uIiA+JjY7IH0KLSsJ CQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X21waV9weXRob24iID0gInh5ZXMiOyB0aGVuCi0rCi0r Y2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfQk9PU1RfTVBJX1BZVEhP TiAvKiovCi0rX0FDRU9GCi0rCi0rCQkJCUJOPWJvb3N0X21waV9weXRob24KLSsjCQkJCUJOPWJv b3N0X21waV9weXRob24tcHkyNQotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0k Q0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1t Z3ctbXQgJEJOLW1ndy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4t bWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgYXNf YWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAK LSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhf bGliIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4g IiA+JjY7IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3Zh citzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9saWIg ICRMSUJTIgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmgu ICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+ PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0r Ci0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAw OwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4 ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChl dmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAg LXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5l cjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkg dGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5l cnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0 ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19l eGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0rZWxzZQot KyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14v fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlldmFsICIkYXNfYWNfTGliPW5vIgotK2Zp Ci0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVf TElCUwotK2ZpCi0rYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFz X2VjaG8gIiRhc192YWwiJ2AKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSthc192YWw9 YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAot KyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgotKyAgQk9PU1RfTVBJX1BZVEhP Tl9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfbXBpX3B5dGhvbj0ieWVzIiBicmVhawotK2Vsc2UKLSsg IGxpbmtfbXBpX3B5dGhvbj0ibm8iCi0rZmkKLSsKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3Qg IngkbGlua19tcGlfcHl0aG9uIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQl7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQotKyRhc19l Y2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQotKwkJ CQllbHNlCi0rCQkJCQlCT09TVF9NUElfUFlUSE9OX0xJQj0iJHtCT09TVF9NUElfUFlUSE9OX0xJ Qn0gJHtCT09TVF9TRVJJQUxJWkFUSU9OX0xJQn0iCi0rCQkJCQlCT09TVF9NUElfUFlUSE9OX0xJ Qj0iJHtCT09TVF9NUElfUFlUSE9OX0xJQn0gJHtCT09TVF9QWVRIT05fTElCfSIKLSsJCQkJCUJP T1NUX01QSV9QWVRIT05fTElCPSIke0JPT1NUX01QSV9QWVRIT05fTElCfSAke0JPT1NUX01QSV9M SUJ9IgotKwkJCQkJQk9PU1RfTVBJX1BZVEhPTl9MSUI9IiR7Qk9PU1RfTVBJX1BZVEhPTl9MSUJ9 ICR7TVBJR0VOX0xJQlN9IgotKwkJCQlmaQotKwkJCWZpCi0rCi0rIwotKyMgRW5kIG9mIHNlY3Rp b24gb24gc3VwcG9ydCBmb3IgTVBJCi0rIwotKwkJCUNQUEZMQUdTPSIke0NQUEZMQUdTX09SSUd9 IgotKwkJCUxERkxBR1M9IiR7TERGTEFHU19PUklHfSIKLSsKLSsjCi0rIyBCb29zdDo6VW5pdFRl c3RGcmFtZXdvcmsKLSsjCi0rCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IHdoZXRoZXIgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yayBsaWJyYXJ5IGlzIGF2YWlsYWJs ZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlVuaXRUZXN0 RnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHth eF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2Nw cD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQ UEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3Qk YWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAk TElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0r CQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwot K19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUg PGJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcD4KLStpbnQKLSttYWluICgpCi0rewotK3VzaW5nIGJv b3N0Ojp1bml0X3Rlc3Q6OnRlc3Rfc3VpdGU7Ci0rCQkJCQkgICAgICAgICAgICAgICAgIHRlc3Rf c3VpdGUqIHRlc3Q9IEJPT1NUX1RFU1RfU1VJVEUoICJVbml0IHRlc3QgZXhhbXBsZSAxIiApOyBy ZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVz dC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190 cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1 cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJt IC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVz KTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4 dDsgdGhlbgotKyAgYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaz15ZXMKLStlbHNlCi0r ICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFt ZXdvcms9bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQ ICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29u ZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQg JENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScK LSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF91bml0X3Rlc3Rf ZnJhbWV3b3JrIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdv cmsiID4mNjsgfQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29y ayIgPSAieHllcyI7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZp bmUgSEFWRV9CT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLIC8qKi8KLStfQUNFT0YKLSsKLSsJCQlC Tj1ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrCi0rICAgIAkJc2F2ZWRfbGRmbGFncz0iJHtMREZM QUdTfSIKLSsJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1t dC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJO LSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBcCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJf TURXX1ZFUlNJT04gOyBkbwotKyAgICAgICAgICAgICAgICBMREZMQUdTPSIke0xERkxBR1N9IC1s JGF4X2xpYiIKLSsgICAgCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHRo ZSBuYW1lIG9mIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFyeSIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgdGhlIG5hbWUgb2YgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29y ayBsaWJyYXJ5Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtheF9jdl9ib29zdF91bml0X3Rlc3Rf ZnJhbWV3b3JrK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgotK2Vsc2UKLSsKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1Mn Ci0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGls ZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rICAgICAgICAgICAgICAgY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0r Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvdGVz dC91bml0X3Rlc3QuaHBwPgotK2ludAotK21haW4gKCkKLSt7Ci0rdXNpbmcgYm9vc3Q6OnVuaXRf dGVzdDo6dGVzdF9zdWl0ZTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9z dWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9TVUlURSggIlVuaXQgdGVzdCBleGFtcGxlIDEiICk7IHJl dHVybiAwOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIK LStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEK LSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhp dCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8 fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRl c3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0r CSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBsaW5r X3RocmVhZD0ieWVzIgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJbGlu a190aHJlYWQ9Im5vIgotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3Jl IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qu b28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rCQkJ IGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRD WFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5r PSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4 X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID4mNQotKyRhc19lY2hvICIk YXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPiY2OyB9Ci0rICAgICAgICAgICAgICAg IExERkxBR1M9IiR7c2F2ZWRfbGRmbGFnc30iCi0rCQkJICAgIGlmIHRlc3QgIngkbGlua190aHJl YWQiID0gInh5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgICAgICAgICBCT09TVF9VTklUX1RFU1Rf RlJBTUVXT1JLX0xJQj0iLWwkYXhfbGliIgotKwotKwkJCQkJYnJlYWsKLSsJCQkJZmkKLSsgICAg ICAgICAgICAgIGRvbmUKLSsJCQkgICAgaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsg dGhlbgotKwkJCQkgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsg YWdhaW5zdCAkYXhfbGliICEiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5r IGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQotKwkJCQlmaQotKwkJCWZpCi0rCi0rCi0rCQlmaQot KyAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHU19TQVZFRCIKLSsgICAgICAgIExERkxBR1M9IiRM REZMQUdTX1NBVkVEIgotKwotKwlmaQotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIE15U1FMIGJhY2tlbmQgKEMgY2xpZW50IEFQSSk6IGh0 dHA6Ly93d3cubXlzcWwub3JnCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgd2hldGhlciAtLWVu YWJsZS1iYWNrZW5kLW15c3FsIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9iYWNrZW5k X215c3FsK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9iYWNrZW5kX215 c3FsOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAgICAgIAkgZW5hYmxlX2Jh Y2tlbmRfbXlzcWw9bm8KLSsgICAgICBlbHNlCi0rCSBlbmFibGVfYmFja2VuZF9teXNxbD15ZXMK LSsgICAgICBmaQotK2Vsc2UKLSsgICBlbmFibGVfYmFja2VuZF9teXNxbD1ubwotKwotK2ZpCi0r Ci0rCi0raWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9teXNxbCIgPSAieHllcyI7IHRoZW4KLSsg ICBNWVNRTF9ESVJTPSJteXNxbCIKLSsjICAgTVlTUUxfUkVRX1ZFUlNJT049IjMuMC4wIgotKwot KwkjCi0rCSMgU2V0IHVwIGNvbmZpZ3VyZSBzY3JpcHQgbWFjcm9zCi0rCSMKLSsKLSsjIENoZWNr IHdoZXRoZXIgLS13aXRoLW15c3FsIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfbXlzcWwr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhfbXlzcWw7IE1ZU1FMX2xpYl9jaGVj az0iJHdpdGhfbXlzcWwvbGliNjQvbXlzcWwgJHdpdGhfbXlzcWwvbGliL215c3FsICR3aXRoX215 c3FsL2xpYjY0ICR3aXRoX215c3FsL2xpYiIKLSsJCU1ZU1FMX2luY19jaGVjaz0iJHdpdGhfbXlz cWwvaW5jbHVkZSAkd2l0aF9teXNxbC9pbmNsdWRlL215c3FsIgotKwkJTVlTUUxfYmluX2NoZWNr PSIkd2l0aF9teXNxbC9iaW4iCi0rZWxzZQotKyAgTVlTUUxfbGliX2NoZWNrPSIvdXNyL2xpYjY0 IC91c3IvbGliIC91c3IvbGliNjQvbXlzcWwgL3Vzci9saWIvbXlzcWwgL3Vzci9sb2NhbC9saWI2 NCAvdXNyL2xvY2FsL2xpYiAvdXNyL2xvY2FsL2xpYi9teXNxbCAvdXNyL2xvY2FsL215c3FsL2xp YiAvdXNyL2xvY2FsL215c3FsL2xpYi9teXNxbCAvb3B0L215c3FsL2xpYiAvb3B0L215c3FsL2xp Yi9teXNxbCIKLSsJCU1ZU1FMX2luY19jaGVjaz0iL3Vzci9pbmNsdWRlL215c3FsIC91c3IvbG9j YWwvaW5jbHVkZS9teXNxbCAvdXNyL2xvY2FsL215c3FsL2luY2x1ZGUgL3Vzci9sb2NhbC9teXNx bC9pbmNsdWRlL215c3FsIC9vcHQvbXlzcWwvaW5jbHVkZS9teXNxbCIKLSsJCU1ZU1FMX2Jpbl9j aGVjaz0iL3Vzci9iaW4gL3Vzci9sb2NhbC9iaW4gL3Vzci9sb2NhbC9teXNxbC9iaW4iCi0rZmkK LSsKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLW15c3FsLWxpYiB3YXMgZ2l2ZW4uCi0r aWYgdGVzdCAiJHt3aXRoX215c3FsX2xpYitzZXR9IiA9IHNldDsgdGhlbgotKyAgd2l0aHZhbD0k d2l0aF9teXNxbF9saWI7IE1ZU1FMX2xpYl9jaGVjaz0iJHdpdGhfbXlzcWxfbGliICR3aXRoX215 c3FsX2xpYi9saWI2NCAkd2l0aF9teXNxbF9saWIvbGliICR3aXRoX215c3FsX2xpYi9saWI2NC9t eXNxbCAkd2l0aF9teXNxbF9saWIvbGliL215c3FsIgotK2ZpCi0rCi0rCi0rCi0rIyBDaGVjayB3 aGV0aGVyIC0td2l0aC1teXNxbC1pbmNsdWRlIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhf bXlzcWxfaW5jbHVkZStzZXR9IiA9IHNldDsgdGhlbgotKyAgd2l0aHZhbD0kd2l0aF9teXNxbF9p bmNsdWRlOyBNWVNRTF9pbmNfY2hlY2s9IiR3aXRoX215c3FsX2luY2x1ZGUgJHdpdGhfbXlzcWxf aW5jbHVkZS9pbmNsdWRlICR3aXRoX215c3FsX2luY2x1ZGUvaW5jbHVkZS9teXNxbCIKLStmaQot KwotKwotKwotKyAgICAjCi0rCSMgTG9vayBmb3IgTXlTUUwgQ29uZmlndXJhdGlvbiBTY3JpcHQK LSsJIwotKwl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIE15U1FMIGNv bmZpZ3VyYXRpb24gc2NyaXB0IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgTXlTUUwg Y29uZmlndXJhdGlvbiBzY3JpcHQuLi4gIiA+JjY7IH0KLSsJTVlTUUxfQ09ORklHPQotKwlNWVNR TF9iaW5kaXI9Ci0rCWZvciBtIGluICRNWVNRTF9iaW5fY2hlY2sKLSsJCWRvCi0rCQkJaWYgdGVz dCAtZCAiJG0iICYmIHRlc3QgLWYgIiRtL215c3FsX2NvbmZpZyIKLSsJCQl0aGVuCi0rCQkJCU1Z U1FMX0NPTkZJRz0kbS9teXNxbF9jb25maWcKLSsJCQkJTVlTUUxfYmluZGlyPSRtCi0rCQkJYnJl YWsKLSsJCWZpCi0rCWRvbmUKLSsKLSsJaWYgdGVzdCAteiAiJE1ZU1FMX2JpbmRpciIKLSsJdGhl bgotKwkJeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IERpZG4ndCBmaW5kICRN WVNRTF9DT05GSUcgYmluYXJ5IGluICckTVlTUUxfYmluX2NoZWNrJyIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IERpZG4ndCBmaW5kICRNWVNRTF9DT05GSUcgYmluYXJ5IGluICckTVlT UUxfYmluX2NoZWNrJyIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsJZmkK LSsKLSsJY2FzZSAiJE1ZU1FMX2JpbmRpciIgaW4KLSsJCS8qICkgOzsKLSsJCSogKSAgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFRoZSBNeVNRTCBiaW5hcnkgZGlyZWN0b3J5 ICgkTVlTUUxfYmluZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiA+JjUKLSskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogVGhlIE15U1FMIGJpbmFyeSBkaXJlY3RvcnkgKCRNWVNRTF9iaW5k aXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhp dCAxOyB9OyB9IDs7Ci0rCWVzYWMKLSsKLSsJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJE1ZU1FMX0NPTkZJRyIgPiY1Ci0rJGFzX2VjaG8gIiRNWVNRTF9DT05GSUciID4mNjsg fQotKwotKyMJQUNfUEFUSF9QUk9HKE1ZU1FMX0NPTkZJRywgbXlzcWxfY29uZmlnLCAkTVlTUUxf YmluZGlyKQotKwotKwkjCi0rCSMgRGVjaWRlIHdoaWNoIEMgQVBJIGxpYnJhcnkgdG8gdXNlLCBi YXNlZCBvbiB0aHJlYWQgc3VwcG9ydAotKwkjCi0rCWlmIHRlc3QgIngkYWN4X3B0aHJlYWRfb2si ID0geHllcwotKwl0aGVuCi0rCQlNWVNRTF9DX0xJQj1teXNxbGNsaWVudF9yCi0rCQlNWVNRTF9M SUJfT1BUSU9OPWxpYnNfcgotKwllbHNlCi0rCQlNWVNRTF9DX0xJQj1teXNxbGNsaWVudAotKwkJ TVlTUUxfTElCX09QVElPTj1saWJzCi0rCWZpCi0rCi0rCWlmIHRlc3QgIngke01ZU1FMX0NPTkZJ R30xIiA9ICJ4MSIKLSsJdGhlbgotKwkJTVlTUUxfVkVSU0lPTj1gJHtNWVNRTF9DT05GSUd9IC0t dmVyc2lvbmAKLSsJCU1ZU1FMX0NGTEFHUz1gJHtNWVNRTF9DT05GSUd9IC0tY2ZsYWdzYAotKwkJ TVlTUUxfTElCUz1gJHtNWVNRTF9DT05GSUd9IC0tJHtNWVNRTF9MSUJfT1BUSU9OfWAKLSsJZWxz ZQotKwkJIwotKwkJIyBMb29rIGZvciBNeVNRTCBDIEFQSSBsaWJyYXJ5Ci0rCQkjCi0rCQl7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIE15U1FMIGxpYnJhcnkgZGlyZWN0 b3J5IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgTXlTUUwgbGlicmFyeSBkaXJlY3Rv cnkuLi4gIiA+JjY7IH0KLSsJCU1ZU1FMX2xpYmRpcj0KLSsJCWZvciBtIGluICRNWVNRTF9saWJf Y2hlY2sKLSsJCWRvCi0rCQkJaWYgdGVzdCAtZCAiJG0iICYmIFwKLSsJCQkJKHRlc3QgLWYgIiRt L2xpYiRNWVNRTF9DX0xJQi5zbyIgXAotKwkJCQl8fCB0ZXN0IC1mICIkbS9saWIkTVlTUUxfQ19M SUIuYSIpCi0rCQkJdGhlbgotKwkJCQlNWVNRTF9saWJkaXI9JG0KLSsJCQkJYnJlYWsKLSsJCQlm aQotKwkJZG9uZQotKwotKwkJaWYgdGVzdCAteiAiJE1ZU1FMX2xpYmRpciIKLSsJCXRoZW4KLSsJ CQl7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogRGlkbid0IGZpbmQgJE1ZU1FM X0NfTElCIGxpYnJhcnkgaW4gJyRNWVNRTF9saWJfY2hlY2snIiA+JjUKLSskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogRGlkbid0IGZpbmQgJE1ZU1FMX0NfTElCIGxpYnJhcnkgaW4gJyRNWVNRTF9s aWJfY2hlY2snIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKwkJZmkKLSsK LSsJCWNhc2UgIiRNWVNRTF9saWJkaXIiIGluCi0rCQkJLyogKSA7OwotKwkJCSogKSAgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFRoZSBNeVNRTCBsaWJyYXJ5IGRpcmVjdG9y eSAoJE1ZU1FMX2xpYmRpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLiIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogZXJyb3I6IFRoZSBNeVNRTCBsaWJyYXJ5IGRpcmVjdG9yeSAoJE1ZU1FMX2xp YmRpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0gOzsKLSsJCWVzYWMKLSsKLSsJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRNWVNRTF9saWJkaXIiID4mNQotKyRhc19lY2hvICIkTVlTUUxfbGliZGlyIiA+ JjY7IH0KLSsKLSsjCQljYXNlICIkTVlTUUxfbGliZGlyIiBpbgotKyMJCSAgL3Vzci9saWIpIDs7 Ci0rIwkJICAqKSBMREZMQUdTPSIkTERGTEFHUyAtTCR7TVlTUUxfbGliZGlyfSIgOzsKLSsjCQll c2FjCi0rCi0rCQkjCi0rCQkjIExvb2sgZm9yIE15U1FMIEMgQVBJIGhlYWRlcnMKLSsJCSMKLSsJ CXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgTXlTUUwgaW5jbHVkZSBk aXJlY3RvcnkiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBNeVNRTCBpbmNsdWRlIGRp cmVjdG9yeS4uLiAiID4mNjsgfQotKwkJTVlTUUxfaW5jZGlyPQotKwkJZm9yIG0gaW4gJE1ZU1FM X2luY19jaGVjawotKwkJZG8KLSsJCQlpZiB0ZXN0IC1kICIkbSIgJiYgdGVzdCAtZiAiJG0vbXlz cWwuaCIKLSsJCQl0aGVuCi0rCQkJCU1ZU1FMX2luY2Rpcj0kbQotKwkJCQlicmVhawotKwkJCWZp Ci0rCQlkb25lCi0rCi0rCQlpZiB0ZXN0IC16ICIkTVlTUUxfaW5jZGlyIgotKwkJdGhlbgotKwkJ CXsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBEaWRuJ3QgZmluZCB0aGUgTXlT UUwgaW5jbHVkZSBkaXIgaW4gJyRNWVNRTF9pbmNfY2hlY2snIiA+JjUKLSskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogRGlkbid0IGZpbmQgdGhlIE15U1FMIGluY2x1ZGUgZGlyIGluICckTVlTUUxf aW5jX2NoZWNrJyIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsJCWZpCi0r Ci0rCQljYXNlICIkTVlTUUxfaW5jZGlyIiBpbgotKwkJCSAvKiApIDs7Ci0rCQkJICogKSAgeyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFRoZSBNeVNRTCBpbmNsdWRlIGRpcmVj dG9yeSAoJE1ZU1FMX2luY2RpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLiIgPiY1Ci0rJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IFRoZSBNeVNRTCBpbmNsdWRlIGRpcmVjdG9yeSAoJE1ZU1FM X2luY2RpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLiIgPiYyO30KLSsgICB7IChleGl0IDEp OyBleGl0IDE7IH07IH0gOzsKLSsJCWVzYWMKLSsKLSsJCXsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRNWVNRTF9pbmNkaXIiID4mNQotKyRhc19lY2hvICIkTVlTUUxfaW5jZGly IiA+JjY7IH0KLSsKLSsJCU1ZU1FMX1ZFUlNJT049YGdyZXAgImRlZmluZSBNWVNRTF9TRVJWRVJf VkVSU0lPTiIgJE1ZU1FMX2luY2Rpci9teXNxbF92ZXJzaW9uLmggfCBjdXQgLWRcIiAtZjJgCi0r CQlNWVNRTF9DRkxBR1M9Ii1JJHtNWVNRTF9pbmNkaXJ9IgotKwkJTVlTUUxfTElCUz0iLUwke01Z U1FMX2xpYmRpcn0gLWwke01ZU1FMX0NfTElCfSIKLSsJZmkKLSsKLSsKLSsKLSsKLSsKLSsJc2F2 ZV9MSUJTPSIkTElCUyIKLSsJTElCUz0iJExJQlMgJE1ZU1FMX0xJQlMiCi0rCi0rYXNfYWNfTGli PWAkYXNfZWNobyAiYWNfY3ZfbGliXyRNWVNRTF9DX0xJQicnX215c3FsX3N0b3JlX3Jlc3VsdCIg fCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBt eXNxbF9zdG9yZV9yZXN1bHQgaW4gLWwkTVlTUUxfQ19MSUIiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBteXNxbF9zdG9yZV9yZXN1bHQgaW4gLWwkTVlTUUxfQ19MSUIuLi4gIiA+JjY7 IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9 XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRNWVNRTF9DX0xJQiAg JExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4g ICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsv KiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4K LSsgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2Yg YSBHQ0MKLSsgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQg c3RpbGwgYXBwbHkuICAqLwotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIKLSsjZW5k aWYKLStjaGFyIG15c3FsX3N0b3JlX3Jlc3VsdCAoKTsKLStpbnQKLSttYWluICgpCi0rewotK3Jl dHVybiBteXNxbF9zdG9yZV9yZXN1bHQgKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FD RU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7 IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xp bmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBj b25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQg Y29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRh Y19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAg IH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2Nv bXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAg ICAgIH07IHRoZW4KLSsgIGV2YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKLSsKLSsJZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStmaQotKwotK3JtIC1y ZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVl eHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQot K2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNf dmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf cmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rYXNfdmFsPWBldmFsICdhc192 YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsgICBpZiB0ZXN0 ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KLSsgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YK LSsjZGVmaW5lIGAkYXNfZWNobyAiSEFWRV9MSUIkTVlTUUxfQ19MSUIiIHwgJGFzX3RyX2NwcGAg MQotK19BQ0VPRgotKwotKyAgTElCUz0iLWwkTVlTUUxfQ19MSUIgJExJQlMiCi0rCi0rZWxzZQot KyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IENvdWxkIG5vdCBmaW5kIHdv cmtpbmcgTXlTUUwgY2xpZW50IGxpYnJhcnkhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogQ291bGQgbm90IGZpbmQgd29ya2luZyBNeVNRTCBjbGllbnQgbGlicmFyeSEiID4mMjt9Ci0r ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rCi0rZmkKLSsKLSsKLSsJTElCUz0iJHNhdmVf TElCUyIKLSsKLStmaQotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX215c3FsIiA9IHh5ZXM7 IHRoZW4KLSsgIEhBVkVfTVlTUUxfVFJVRT0KLSsgIEhBVkVfTVlTUUxfRkFMU0U9JyMnCi0rZWxz ZQotKyAgSEFWRV9NWVNRTF9UUlVFPScjJwotKyAgSEFWRV9NWVNRTF9GQUxTRT0KLStmaQotKwot KyNNWVNRTF9ESVJTPSJteXNxbCIKLSsKLSsKLSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBv cnQgZm9yIE9yYWNsZSBiYWNrZW5kCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayB3aGV0aGVyIC0t ZW5hYmxlLWJhY2tlbmQtb3JhY2xlIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9iYWNr ZW5kX29yYWNsZStzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfYmFja2Vu ZF9vcmFjbGU7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0rICAgICAgCSBlbmFi bGVfYmFja2VuZF9vcmFjbGU9bm8KLSsgICAgICBlbHNlCi0rCSBlbmFibGVfYmFja2VuZF9vcmFj bGU9eWVzCi0rICAgICAgZmkKLStlbHNlCi0rICAgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPW5vCi0r Ci0rZmkKLSsKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX29yYWNsZSIgPSAieHllcyI7 IHRoZW4KLSsgICBPUkFDTEVfRElSUz0ib3JhY2xlIgotKyAgIE9SQUNMRV9PQ0lfUkVRX1ZFUlNJ T049IjkuMCIKLSsKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLW9yYWNsZSB3YXMgZ2l2 ZW4uCi0raWYgdGVzdCAiJHt3aXRoX29yYWNsZStzZXR9IiA9IHNldDsgdGhlbgotKyAgd2l0aHZh bD0kd2l0aF9vcmFjbGU7Ci0rICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhl bgotKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9NRSI7IHRoZW4KLSsgICAgICAg ICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUiCi0rICAgICAgICAgICAgZWxz ZQotKyAgICAgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiIKLSsgICAgICAgICAgICBmaQot KyAgICAgICAgZmkKLSsKLStlbHNlCi0rCi0rICAgICAgICBpZiB0ZXN0IC1uICIkT1JBQ0xFX0hP TUUiOyB0aGVuCi0rICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUiCi0r ICAgICAgICBlbHNlCi0rICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIiCi0rICAgICAgICBm aQotKwotKwotK2ZpCi0rCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1vcmFjbGUtaW5j bHVkZSB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX29yYWNsZV9pbmNsdWRlK3NldH0iID0g c2V0OyB0aGVuCi0rICB3aXRodmFsPSR3aXRoX29yYWNsZV9pbmNsdWRlOyBvcmFjbGVfaG9tZV9p bmNsdWRlX2Rpcj0iJHdpdGh2YWwiCi0rZWxzZQotKyAgb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXI9 IiIKLSsKLStmaQotKwotKwotKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtb3JhY2xlLWxpYiB3YXMg Z2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX29yYWNsZV9saWIrc2V0fSIgPSBzZXQ7IHRoZW4KLSsg IHdpdGh2YWw9JHdpdGhfb3JhY2xlX2xpYjsgb3JhY2xlX2hvbWVfbGliX2Rpcj0iJHdpdGh2YWwi Ci0rZWxzZQotKyAgb3JhY2xlX2hvbWVfbGliX2Rpcj0iIgotKwotK2ZpCi0rCi0rCi0rICAgIE9S QUNMRV9PQ0lfQ0ZMQUdTPSIiCi0rICAgIE9SQUNMRV9PQ0lfTERGTEFHUz0iIgotKyAgICBPUkFD TEVfT0NJX1ZFUlNJT049IiIKLSsKLSsgICAgICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25v X3BhdGg9Im5vIgotKwotKyAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2hvbWVfZGlyIjsgdGhlbgot KwotKyAgICAgICAgaWYgdGVzdCAiJG9yYWNsZV9ob21lX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNs ZV9ob21lX2RpciIgIT0gInllcyI7IHRoZW4KLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICBv cmFjbGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVfaG9tZV9kaXIvcmRibXMvcHVibGljIgotKwotKyAg ICAgICAgICAgICAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2RpcjI9IiRvcmFjbGVfaG9tZV9k aXIvcmRibXMvZGVtbyIKLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICBvcmFjbGVfbGliX2Rp cj0iJG9yYWNsZV9ob21lX2Rpci9saWIiCi0rICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9t ZV9kaXIiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0 aD0ieWVzIgotKyAgICAgICAgZmkKLSsKLSsgICAgZWxpZiB0ZXN0IC1uICIkb3JhY2xlX2hvbWVf aW5jbHVkZV9kaXIiIC1vIC1uICIkb3JhY2xlX2hvbWVfbGliX2RpciI7IHRoZW4KLSsKLSsgICAg ICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNs ZV9ob21lX2luY2x1ZGVfZGlyIiAhPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIG9yYWNsZV9p bmNsdWRlX2Rpcj0iJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIgotKyAgICAgICAgZWxpZiB0ZXN0 ICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICB3 YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIGlm IHRlc3QgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfbGli X2RpciIgIT0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNs ZV9ob21lX2xpYl9kaXIiCi0rICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9saWJfZGly IiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9Inll cyIKLSsgICAgICAgIGZpCi0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgIiR3YW50X29yYWNsZV9i dXRfbm9fcGF0aCIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFdBUk5JTkc6IE9yYWNsZSBzdXBwb3J0IGlzIHJlcXVlc3RlZCBidXQgbm8gT3JhY2xl IHBhdGhzIGhhdmUgYmVlbiBwcm92aWRlZC4gXAotK1BsZWFzZSwgbG9jYXRlIE9yYWNsZSBkaXJl Y3RvcmllcyB1c2luZyAtLXdpdGgtb3JhY2xlIG9yIFwKLSstLXdpdGgtb3JhY2xlLWluY2x1ZGUg YW5kIC0td2l0aC1vcmFjbGUtbGliIG9wdGlvbnMuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBX QVJOSU5HOiBPcmFjbGUgc3VwcG9ydCBpcyByZXF1ZXN0ZWQgYnV0IG5vIE9yYWNsZSBwYXRocyBo YXZlIGJlZW4gcHJvdmlkZWQuIFwKLStQbGVhc2UsIGxvY2F0ZSBPcmFjbGUgZGlyZWN0b3JpZXMg dXNpbmcgLS13aXRoLW9yYWNsZSBvciBcCi0rLS13aXRoLW9yYWNsZS1pbmNsdWRlIGFuZCAtLXdp dGgtb3JhY2xlLWxpYiBvcHRpb25zLiIgPiYyO30KLSsgICAgZmkKLSsKLSsgICAgICAgICAgICAg ICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9pbmNsdWRlX2RpciIgLWEgLW4gIiRvcmFjbGVfbGliX2Rp ciI7IHRoZW4KLSsKLSsgICAgICAgIHNhdmVkX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0rICAgICAg ICBDUFBGTEFHUz0iJENQUEZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpciIKLSsKLSsgICAgICAg ICAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9pbmNsdWRlX2RpcjIiOyB0aGVuCi0rICAgICAg ICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIyIgotKyAgICAg ICAgZmkKLSsKLSsgICAgICAgICMgRmlndXJlIG91dCBpZiB3ZSBhcmUgYnVpbGRpbmcgb24gd2lu MzIuCi0rICAgICAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgICAgICAgKm1pbmd3MzIqICkg V0lOMzI9eWVzIDs7Ci0rICAgICAgICAgICAgKmN5Z3dpbiogKSAgV0lOMzI9eWVzIDs7Ci0rICAg ICAgICAgICAgKikgV0lOMzI9bm8gOzsKLSsgICAgICAgIGVzYWMKLSsKLSsgICAgICAgIGlmIHRl c3QgIiRXSU4zMiIgPSAibm8iCi0rICAgICAgICB0aGVuCi0rICAgICAgICAgICAgb2NpX2xpYnM9 Ii1sY2xudHNoIC1sbm56MTEiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgb2NpX2xpYnM9 Ii1sb2NpIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIHNhdmVkX0xERkxBR1M9IiRMREZMQUdT IgotKyAgICAgICAgc2F2ZWRfTElCUz0iJExJQlMiCi0rICAgICAgICBvY2lfbGRmbGFncz0iLUwk b3JhY2xlX2xpYl9kaXIiCi0rICAgICAgICBMREZMQUdTPSIkTERGTEFHUyAkb2NpX2xkZmxhZ3Mi Ci0rICAgICAgICBMSUJTPSIkTElCUyAkb2NpX2xpYnMiCi0rCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIE9y YWNsZSBPQ0kgaGVhZGVycyBpbiAkb3JhY2xlX2luY2x1ZGVfZGlyIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBmb3IgT3JhY2xlIE9DSSBoZWFkZXJzIGluICRvcmFjbGVfaW5jbHVkZV9kaXIu Li4gIiA+JjY7IH0KLSsKLSsgICAgICAgIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQ UEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVz dC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hY RkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2Fj X2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKyAgICAgICAgY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rCi0rICAgICAgICAgICAgLyogY29uZmRlZnMuaC4g ICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5j bHVkZSA8b2NpLmg+Ci0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsjaWYgZGVmaW5lZChPQ0lfTUFK T1JfVkVSU0lPTikKLSsjaWYgT0NJX01BSk9SX1ZFUlNJT04gPT0gMTAgJiYgT0NJX01JTk9SX1ZF UlNJT04gPT0gMgotKy8vIE9yYWNsZSAxMC4yIGRldGVjdGVkCi0rI2VuZGlmCi0rI2VsaWYgZGVm aW5lZChPQ0lfVjdfU1lOVEFYKQotKy8vIE9LLCBvbGRlciBPcmFjbGUgZGV0ZWN0ZWQKLSsvLyBU T0RPIC0gbWxvc2tvdDogZmluZCBiZXR0ZXIgbWFjcm8gdG8gY2hlY2sgZm9yIG9sZGVyIHZlcnNp b25zOwotKyNlbHNlCi0rIyAgZXJyb3IgT3JhY2xlIG9jaS5oIGhlYWRlciBub3QgZm91bmQKLSsj ZW5kaWYKLSsKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25m dGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRh Y190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK LSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0 YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsg IHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29i amV4dDsgdGhlbgotKwotKyAgICAgICAgICAgIE9SQUNMRV9PQ0lfQ0ZMQUdTPSItSSRvcmFjbGVf aW5jbHVkZV9kaXIiCi0rCi0rICAgICAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9pbmNsdWRl X2RpcjIiOyB0aGVuCi0rICAgICAgICAgICAgICAgIE9SQUNMRV9PQ0lfQ0ZMQUdTPSIkT1JBQ0xF X09DSV9DRkxBR1MgLUkkb3JhY2xlX2luY2x1ZGVfZGlyMiIKLSsgICAgICAgICAgICBmaQotKwot KyAgICAgICAgICAgIG9jaV9oZWFkZXJfZm91bmQ9InllcyIKLSsgICAgICAgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4m NjsgfQotKwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsKLSsgICAgICAg ICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJubyIKLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiBub3QgZm91bmQiID4mNQotKyRhc19lY2hvICJub3QgZm91bmQi ID4mNjsgfQotKwotKwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICAgICAgICBhY19leHQ9Y3BwCi0rYWNfY3Bw PSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQ RkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRh Y19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRM SUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2Zv dW5kIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGZvciBPcmFjbGUgT0NJIGxpYnJhcmllcyBpbiAkb3JhY2xlX2xpYl9k aXIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBPcmFjbGUgT0NJIGxpYnJhcmllcyBp biAkb3JhY2xlX2xpYl9kaXIuLi4gIiA+JjY7IH0KLSsKLSsgICAgICAgICAgICBhY19leHQ9Y3Bw Ci0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhG TEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBj b25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4k YWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9n bnUKLSsKLSsgICAgICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsKLSsg ICAgICAgICAgICAgICAgLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8b2NpLmg+Ci0raW50Ci0rbWFpbiAo KQotK3sKLSsKLStPQ0lFbnYqIGVudmggPSAwOwotK09DSUVudkNyZWF0ZSgmZW52aCwgT0NJX0RF RkFVTFQsIDAsIDAsIDAsIDAsIDAsIDApOwotK2lmIChlbnZoKSBPQ0lIYW5kbGVGcmVlKGVudmgs IE9DSV9IVFlQRV9FTlYpOwotKwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgot K3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNf dHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owot K2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikg Mj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4 X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYm IHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxp bmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9 OyB0aGVuCi0rCi0rICAgICAgICAgICAgICAgIE9SQUNMRV9PQ0lfTERGTEFHUz0iJG9jaV9sZGZs YWdzICRvY2lfbGlicyIKLSsgICAgICAgICAgICAgICAgb2NpX2xpYl9mb3VuZD0ieWVzIgotKyAg ICAgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4m NQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKLSsKLSsKLSsgICAgICAgICAgICAgICAgb2NpX2xpYl9mb3VuZD0ibm8iCi0rICAgICAg ICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vdCBmb3VuZCIg PiY1Ci0rJGFzX2VjaG8gIm5vdCBmb3VuZCIgPiY2OyB9Ci0rCi0rCi0rZmkKLSsKLStybSAtcmYg Y29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0 IGNvbmZ0ZXN0LiRhY19leHQKLSsgICAgICAgICAgICBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hY Q1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVl eHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4m NScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsgICAgICAg IGZpCi0rCi0rICAgICAgICBDUFBGTEFHUz0iJHNhdmVkX0NQUEZMQUdTIgotKyAgICAgICAgTERG TEFHUz0iJHNhdmVkX0xERkxBR1MiCi0rICAgICAgICBMSUJTPSIkc2F2ZWRfTElCUyIKLSsgICAg ZmkKLSsKLSsgICAgICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxPSRPUkFDTEVfT0NJX1JF UV9WRVJTSU9OCi0rCi0rICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiIC1h ICIkb2NpX2xpYl9mb3VuZCIgPSAieWVzIiAtYSBcCi0rICAgICAgICAtbiAiJG9yYWNsZV92ZXJz aW9uX3JlcSI7IHRoZW4KLSsKLSsgICAgICAgIG9yYWNsZV92ZXJzaW9uX21ham9yPWBjYXQgJG9y YWNsZV9pbmNsdWRlX2Rpci9vY2kuaCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IGdyZXAgJyNkZWZpbmUuKk9DSV9NQUpPUl9WRVJTSU9OLionIFwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgc2VkIC1lICdzLyNkZWZpbmUgT0NJX01BSk9SX1ZFUlNJT04gICovLycg XAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvICAqXC9cKi4qXCpc Ly8vJ2AKLSsKLSsgICAgICAgIG9yYWNsZV92ZXJzaW9uX21pbm9yPWBjYXQgJG9yYWNsZV9pbmNs dWRlX2Rpci9vY2kuaCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGdyZXAgJyNk ZWZpbmUuKk9DSV9NSU5PUl9WRVJTSU9OLionIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgc2VkIC1lICdzLyNkZWZpbmUgT0NJX01JTk9SX1ZFUlNJT04gICovLycgXAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvICAqXC9cKi4qXCpcLy8vJ2AKLSsK LSsgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiBPcmFjbGUg T0NJIHZlcnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3JlcSIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgaWYgT3JhY2xlIE9DSSB2ZXJzaW9uIGlzID49ICRvcmFjbGVfdmVyc2lvbl9yZXEu Li4gIiA+JjY7IH0KLSsKLSsgICAgICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfdmVyc2lvbl9tYWpv ciIgLWEgLW4gJCJvcmFjbGVfdmVyc2lvbl9taW5vciI7IHRoZW4KLSsKLSsgICAgICAgICAgICBP UkFDTEVfT0NJX1ZFUlNJT049IiRvcmFjbGVfdmVyc2lvbl9tYWpvci4kb3JhY2xlX3ZlcnNpb25f bWlub3IiCi0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JhY2xlX3Zl cnNpb25fcmVxX21ham9yPWBleHByICRvcmFjbGVfdmVyc2lvbl9yZXEgOiAnXChbMC05XSpcKSdg Ci0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX21pbm9yPWBleHByICRvcmFjbGVfdmVy c2lvbl9yZXEgOiAnWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsKLSsgICAgICAgICAgICBvcmFjbGVf dmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRvcmFjbGVfdmVyc2lvbl9yZXFfbWFqb3IgXCogMTAw MDAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG9yYWNs ZV92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwYAotKwotKyAgICAgICAgICAgICAgICAgICAgICAg IG9yYWNsZV92ZXJzaW9uX251bWJlcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fbWFqb3IgXCogMTAw MDAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRvcmFjbGVfdmVy c2lvbl9taW5vciBcKiAxMDAwYAotKwotKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX2NoZWNr PWBleHByICRvcmFjbGVfdmVyc2lvbl9udW1iZXIgXD5cPSAkb3JhY2xlX3ZlcnNpb25fcmVxX251 bWJlcmAKLSsgICAgICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX3ZlcnNpb25fY2hlY2siID0gIjEi OyB0aGVuCi0rICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rCi0rY2F0ID4+Y29uZmRlZnMu aCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfT1JBQ0xFIDEKLStfQUNFT0YKLSsKLSsgICAgICAg ICAgICBlbHNlCi0rICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotKyAgICAgICAgICAgICAgICB7 IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogT3JhY2xlICRPUkFDTEVfT0NJX1ZF UlNJT04gZm91bmQsIGJ1dCByZXF1aXJlZCB2ZXJzaW9uIGlzICRvcmFjbGVfdmVyc2lvbl9yZXEi ID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBPcmFjbGUgJE9SQUNMRV9PQ0lfVkVSU0lP TiBmb3VuZCwgYnV0IHJlcXVpcmVkIHZlcnNpb24gaXMgJG9yYWNsZV92ZXJzaW9uX3JlcSIgPiYy O30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgICAgICAgICAgICBmaQotKyAgICAg ICAgZWxzZQotKyAgICAgICAgICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iVU5LTk9XTiIKLSsgICAg ICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFz X2VjaG8gIm5vIiA+JjY7IH0KLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogV0FSTklORzogT3JhY2xlIHZlcnNpb24gdW5rbm93biwgcHJvYmFibHkgT0NJIG9sZGVyIHRo YW4gMTAuMiBpcyBhdmFpbGFibGUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IE9y YWNsZSB2ZXJzaW9uIHVua25vd24sIHByb2JhYmx5IE9DSSBvbGRlciB0aGFuIDEwLjIgaXMgYXZh aWxhYmxlIiA+JjI7fQotKyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsKLSsKLSsKLSsKLStmaQot KyBpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX29yYWNsZSIgPSB4eWVzOyB0aGVuCi0rICBIQVZF X09SQUNMRV9UUlVFPQotKyAgSEFWRV9PUkFDTEVfRkFMU0U9JyMnCi0rZWxzZQotKyAgSEFWRV9P UkFDTEVfVFJVRT0nIycKLSsgIEhBVkVfT1JBQ0xFX0ZBTFNFPQotK2ZpCi0rCi0rI09SQUNMRV9E SVJTPSJvcmFjbGUiCi0rCi0rCi0rCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTdXBwb3J0IGZvciBQb3N0 Z3JlU1FMIGJhY2tlbmQKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUt YmFja2VuZC1wb3N0Z3Jlc3FsIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9iYWNrZW5k X3Bvc3RncmVzcWwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2JhY2tl bmRfcG9zdGdyZXNxbDsgIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KLSsgICAgICAJ IGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9bm8KLSsgICAgICBlbHNlCi0rCSBlbmFibGVfYmFj a2VuZF9wb3N0Z3Jlc3FsPXllcwotKyAgICAgIGZpCi0rZWxzZQotKyAgIGVuYWJsZV9iYWNrZW5k X3Bvc3RncmVzcWw9bm8KLSsKLStmaQotKwotKwotK2lmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRf cG9zdGdyZXNxbCIgPSAieHllcyI7IHRoZW4KLSsgICBQT1NUR1JFU1FMX0RJUlM9InBvc3RncmVz cWwiCi0rICAgUE9TVEdSRVNRTF9SRVFfVkVSU0lPTj0iNy4xLjQiCi0rCi0rCi0rIyBDaGVjayB3 aGV0aGVyIC0td2l0aC1wb3N0Z3Jlc3FsIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfcG9z dGdyZXNxbCtzZXR9IiA9IHNldDsgdGhlbgotKyAgd2l0aHZhbD0kd2l0aF9wb3N0Z3Jlc3FsOwot KwlQT1NUR1JFU1FMX2luY19jaGVjaz0iJHdpdGhfcG9zdGdyZXNxbC9pbmNsdWRlIgotKyAgICAg ICAgaWYgdGVzdCAiJHdpdGh2YWwiID0gIm5vIjsgdGhlbgotKyAgICAgICAgICAgIHdhbnRfcG9z dGdyZXNxbD0ibm8iCi0rICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVu Ci0rICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCi0rICAgICAgICBlbHNlCi0rICAg ICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCi0rICAgICAgICAgICAgUEdfQ09ORklHPSIk d2l0aHZhbCIKLSsgICAgICAgIGZpCi0rCi0rZWxzZQotKyAgd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMi Ci0rCVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9sb2NhbCAvb3B0Igot KwotK2ZpCi0rCi0rCi0rICAgIFBPU1RHUkVTUUxfQ0ZMQUdTPSIiCi0rICAgIFBPU1RHUkVTUUxf TERGTEFHUz0iIgotKyAgICBQT1NUR1JFU1FMX1BPU1RHUkVTUUw9IiIKLSsKLSsKLSsgICAgaWYg dGVzdCAiJHdhbnRfcG9zdGdyZXNxbCIgPSAieWVzIjsgdGhlbgotKwotKyAgICAgICAgaWYgdGVz dCAteiAiJFBHX0NPTkZJRyIgLW8gdGVzdDsgdGhlbgotKyAgICAgICAgICAgICMgRXh0cmFjdCB0 aGUgZmlyc3Qgd29yZCBvZiAicGdfY29uZmlnIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1l IHdpdGggYXJncy4KLStzZXQgZHVtbXkgcGdfY29uZmlnOyBhY193b3JkPSQyCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9w YXRoX1BHX0NPTkZJRytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBjYXNlICRQR19DT05GSUcgaW4KLSsgIFtcXC9dKiB8ID86W1xcL10q KQotKyAgYWNfY3ZfcGF0aF9QR19DT05GSUc9IiRQR19DT05GSUciICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgotKyAgOzsKLSsgICopCi0rICBhc19zYXZlX0lG Uz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0r ICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAg Zm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBp ZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3gg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3BhdGhf UEdfQ09ORklHPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IgotKyAgICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQot KyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwot KyAgOzsKLStlc2FjCi0rZmkKLStQR19DT05GSUc9JGFjX2N2X3BhdGhfUEdfQ09ORklHCi0raWYg dGVzdCAtbiAiJFBHX0NPTkZJRyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRQR19DT05GSUciID4mNQotKyRhc19lY2hvICIkUEdfQ09ORklHIiA+JjY7IH0K LStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0r JGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgICAgICAgZmkKLSsKLSsgICAgICAg IGlmIHRlc3QgISAteCAiJFBHX0NPTkZJRyI7IHRoZW4KLSsgICAgICAgICAgICB7IHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBlcnJvcjogJFBHX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBvciBp dCBpcyBub3QgYW4gZXhlY3R1YWJsZSBmaWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogJFBHX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBvciBpdCBpcyBub3QgYW4gZXhlY3R1YWJsZSBm aWxlIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICAgICAgICAgIFBH X0NPTkZJRz0ibm8iCi0rICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ibm8iCi0rICAgICAg ICBmaQotKwotKyAgICAgICAgaWYgdGVzdCAiJFBHX0NPTkZJRyIgIT0gIm5vIjsgdGhlbgotKyAg ICAgICAgICAgICMKLSsgICAgICAgICAgICAjIExvb2sgZm9yIFBvc3RncmVzcWwgQyBBUEkgaGVh ZGVycwotKyAgICAgICAgICAgICMKLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yIFBvc3RncmVzcWwgaW5jbHVkZSBkaXJlY3RvcnkiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIGZvciBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5Li4uICIg PiY2OyB9Ci0rICAgICAgICAgICAgUE9TVEdSRVNRTF9pbmNkaXI9Ci0rICAgICAgICAgICAgZm9y IHBvc3RncmVzcWxfaW5jX2RpciBpbiAkUE9TVEdSRVNRTF9pbmNfY2hlY2sKLSsgICAgICAgICAg ICBkbwotKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1kICIkcG9zdGdyZXNxbF9pbmNfZGlyIiBc Ci0rICAgICAgICAgICAgICAgICYmIHRlc3QgLWYgIiRwb3N0Z3Jlc3FsX2luY19kaXIvcG9zdGdy ZXNfZXh0LmgiCi0rICAgICAgICAgICAgICAgIHRoZW4KLSsgICAgICAgICAgICAgICAgICAgIFBP U1RHUkVTUUxfaW5jZGlyPSRwb3N0Z3Jlc3FsX2luY19kaXIKLSsgICAgICAgICAgICAgICAgICAg IGJyZWFrCi0rICAgICAgICAgICAgICAgIGZpCi0rICAgICAgICAgICAgZG9uZQotKwotKyAgICAg ICAgICAgIGlmIHRlc3QgLXogIiRQT1NUR1JFU1FMX2luY2RpciIKLSsgICAgICAgICAgICB0aGVu Ci0rICAgICAgICAgICAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBE aWRuJ3QgZmluZCB0aGUgUG9zdGdyZXNxbCBpbmNsdWRlIGRpciBpbiAnJFBPU1RHUkVTUUxfaW5j X2NoZWNrJyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IERpZG4ndCBmaW5kIHRoZSBQ b3N0Z3Jlc3FsIGluY2x1ZGUgZGlyIGluICckUE9TVEdSRVNRTF9pbmNfY2hlY2snIiA+JjI7fQot KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICAgICAgICAgIGZpCi0rCi0rICAgICAg ICAgICAgY2FzZSAiJFBPU1RHUkVTUUxfaW5jZGlyIiBpbgotKyAgICAgICAgICAgICAgICAvKiAp IDs7Ci0rICAgICAgICAgICAgICAgICogKSAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog ZXJyb3I6IFRoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNk aXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBUaGUgUG9zdGdyZXNxbCBpbmNsdWRlIGRpcmVjdG9yeSAoJFBPU1RHUkVTUUxfaW5jZGly KSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfSA7OwotKyAgICAgICAgICAgIGVzYWMKLSsKLSsgICAgICAgICAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkUE9TVEdSRVNRTF9pbmNkaXIiID4mNQotKyRhc19l Y2hvICIkUE9TVEdSRVNRTF9pbmNkaXIiID4mNjsgfQotKwotKyAgICAgICAgICAgIGlmIHRlc3Qg IiRQT1NUR1JFU1FMX2luY2RpciIgPSAiL3Vzci9pbmNsdWRlIjsgdGhlbgotKyAgICAgICAgICAg ICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAg ICBQT1NUR1JFU1FMX0NGTEFHUz0iLUkke1BPU1RHUkVTUUxfaW5jZGlyfSIKLSsgICAgICAgICAg ICBmaQotKwotKyAgICAgICAgICAgIFBPU1RHUkVTUUxfTERGTEFHUz0iLUxgJFBHX0NPTkZJRyAt LWxpYmRpcmAgLWxwcSIKLSsKLSsgICAgICAgICAgICBQT1NUR1JFU1FMX1ZFUlNJT049YCRQR19D T05GSUcgLS12ZXJzaW9uIHwgc2VkIC1lICdzI1Bvc3RncmVTUUwgIyMnYAotKwotKwotK2NhdCA+ PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBIQVZFX1BPU1RHUkVTUUwgMQotK19BQ0VP RgotKwotKwotKyAgICAgICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9InllcyIKLSsgICAgICAgIGVs c2UKLSsgICAgICAgICAgICBmb3VuZF9wb3N0Z3Jlc3FsPSJubyIKLSsgICAgICAgIGZpCi0rICAg IGZpCi0rCi0rCi0rCi0rICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXE9JFBPU1RHUkVTUUxfUkVR X1ZFUlNJT04KLSsKLSsgICAgaWYgdGVzdCAiJGZvdW5kX3Bvc3RncmVzcWwiID0gInllcyIgLWEg LW4gIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIjsgdGhlbgotKwotKyAgICAgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIFBvc3RncmVTUUwgdmVyc2lvbiBpcyA+PSAk cG9zdGdyZXNxbF92ZXJzaW9uX3JlcSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgUG9z dGdyZVNRTCB2ZXJzaW9uIGlzID49ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxLi4uICIgPiY2OyB9 Ci0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9tYWpv cj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwpJ2AKLSsgICAgICAg IHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9y ZXEgOiAnWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9y ZXFfbWljcm89YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5bMC05XSpc LlwoWzAtOV0qXCknYAotKyAgICAgICAgaWYgdGVzdCAieCRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVx X21pY3JvIiA9ICJ4IjsgdGhlbgotKyAgICAgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFf bWljcm89IjAiCi0rICAgICAgICBmaQotKwotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3Jl cV9udW1iZXI9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWFqb3IgXCogMTAwMDAwMCBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJz aW9uX3JlcV9taW5vciBcKiAxMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvYAotKwotKyAgICAgICAgICAgICAg ICAgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9tYWpvcj1gZXhwciAkUE9TVEdSRVNRTF9WRVJT SU9OIDogJ1woWzAtOV0qXCknYAotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21pbm9yPWBl eHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsgICAgICAg IHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1sw LTldKlwuWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsgICAgICAgIGlmIHRlc3QgIngkcG9zdGdyZXNx bF92ZXJzaW9uX21pY3JvIiA9ICJ4IjsgdGhlbgotKyAgICAgICAgICAgIHBvc3RncmVzcWxfdmVy c2lvbl9taWNybz0iMCIKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNp b25fbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWFqb3IgXCogMTAwMDAwMCBcCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9u X21pbm9yIFwqIDEwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsg JHBvc3RncmVzcWxfdmVyc2lvbl9taWNyb2AKLSsKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lv bl9jaGVjaz1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX251bWJlciBcPlw9ICRwb3N0Z3Jlc3Fs X3ZlcnNpb25fcmVxX251bWJlcmAKLSsgICAgICAgIGlmIHRlc3QgIiRwb3N0Z3Jlc3FsX3ZlcnNp b25fY2hlY2siID0gIjEiOyB0aGVuCi0rICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLSskYXNfZWNobyAieWVzIiA+JjY7IH0KLSsgICAgICAg IGVsc2UKLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBu byIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLSsgICAgICAgIGZpCi0rICAgIGZpCi0rCi0r Ci0rCi0rCi0rCi0rZmkKLSsgaWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsIiA9 IHh5ZXM7IHRoZW4KLSsgIEhBVkVfUE9TVEdSRVNRTF9UUlVFPQotKyAgSEFWRV9QT1NUR1JFU1FM X0ZBTFNFPScjJwotK2Vsc2UKLSsgIEhBVkVfUE9TVEdSRVNRTF9UUlVFPScjJwotKyAgSEFWRV9Q T1NUR1JFU1FMX0ZBTFNFPQotK2ZpCi0rCi0rI1BPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIK LSsKLSsKLSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIGRvY3VtZW50YXRpb24K LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrcyBmb3IgZG9jdW1lbnRhdGlvbiBidWlsZCB0b29scwot KyNBQ19DSEVDS19QUk9HKFt0ZXhpbmZvX29rXSwgW3RleGluZm9dLCBbeWVzXSwgW25vXSkKLSsj aWYgdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubzsgdGhlbgotKyMgIHRlc3QgIngkdGV4 aW5mb19vayIgIT0geHllcyAmJiBlbmFibGVfaW5mb19kb2M9bm8KLSsjICBBQ19QQVRIX1BST0co W1BFUkxdLCBbcGVybF0sIFtdKQotKyNmaQotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIg PSB4eWVzOyB0aGVuCi0rICBJTkZPX0RPQ19UUlVFPQotKyAgSU5GT19ET0NfRkFMU0U9JyMnCi0r ZWxzZQotKyAgSU5GT19ET0NfVFJVRT0nIycKLSsgIElORk9fRE9DX0ZBTFNFPQotK2ZpCi0rCi0r Ci0rIyBDaGVja3MgZm9yIGRvY3VtZW50YXRpb24gYnVpbGQgdG9vbHMKLSsjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgImRveHlnZW4iLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmdzLgotK3NldCBkdW1teSBkb3h5Z2VuOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2Rv eHlnZW5fb2src2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGRveHlnZW5fb2siOyB0aGVuCi0rICBhY19jdl9wcm9n X2RveHlnZW5fb2s9IiRkb3h5Z2VuX29rIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBh c19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFz X2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs ZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsg dGhlbgotKyAgICBhY19jdl9wcm9nX2RveHlnZW5fb2s9InllcyIKLSsgICAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsg ICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsg IHRlc3QgLXogIiRhY19jdl9wcm9nX2RveHlnZW5fb2siICYmIGFjX2N2X3Byb2dfZG94eWdlbl9v az0ibm8iCi0rZmkKLStmaQotK2RveHlnZW5fb2s9JGFjX2N2X3Byb2dfZG94eWdlbl9vawotK2lm IHRlc3QgLW4gIiRkb3h5Z2VuX29rIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGRveHlnZW5fb2siID4mNQotKyRhc19lY2hvICIkZG94eWdlbl9vayIgPiY2 OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4m NQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsjIEV4dHJhY3QgdGhlIGZpcnN0 IHdvcmQgb2YgImxhdGV4Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4K LStzZXQgZHVtbXkgbGF0ZXg7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Ig JGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfbGF0ZXhfb2src2V0 fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAg aWYgdGVzdCAtbiAiJGxhdGV4X29rIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19sYXRleF9vaz0iJGxh dGV4X29rIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2 ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStk bwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K LSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwot KyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVz dF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9w cm9nX2xhdGV4X29rPSJ5ZXMiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQg JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0r ZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICB0ZXN0IC16ICIkYWNfY3ZfcHJv Z19sYXRleF9vayIgJiYgYWNfY3ZfcHJvZ19sYXRleF9vaz0ibm8iCi0rZmkKLStmaQotK2xhdGV4 X29rPSRhY19jdl9wcm9nX2xhdGV4X29rCi0raWYgdGVzdCAtbiAiJGxhdGV4X29rIjsgdGhlbgot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGxhdGV4X29rIiA+JjUKLSsk YXNfZWNobyAiJGxhdGV4X29rIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwot KwotKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZHZpcHMiLCBzbyBpdCBjYW4gYmUgYSBw cm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBkdmlwczsgYWNfd29yZD0kMgotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7 YWNfY3ZfcHJvZ19kdmlwc19vaytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkZHZpcHNfb2siOyB0aGVuCi0rICBh Y19jdl9wcm9nX2R2aXBzX29rPSIkZHZpcHNfb2siICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRo ZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0r Zm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16 ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVj dXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi OyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfZHZpcHNfb2s9InllcyIKLSsgICAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUK LSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsK LSsgIHRlc3QgLXogIiRhY19jdl9wcm9nX2R2aXBzX29rIiAmJiBhY19jdl9wcm9nX2R2aXBzX29r PSJubyIKLStmaQotK2ZpCi0rZHZpcHNfb2s9JGFjX2N2X3Byb2dfZHZpcHNfb2sKLStpZiB0ZXN0 IC1uICIkZHZpcHNfb2siOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkZHZpcHNfb2siID4mNQotKyRhc19lY2hvICIkZHZpcHNfb2siID4mNjsgfQotK2Vsc2UK LSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNo byAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJn cyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGdz OyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAk YWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2 OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2dzX29rK3NldH0iID0gc2V0OyB0aGVuCi0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRnc19vayI7 IHRoZW4KLSsgIGFjX2N2X3Byb2dfZ3Nfb2s9IiRnc19vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJp ZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRl c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19nc19vaz0ieWVzIgotKyAgICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4m NQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwot KwotKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfZ3Nfb2siICYmIGFjX2N2X3Byb2dfZ3Nfb2s9Im5v IgotK2ZpCi0rZmkKLStnc19vaz0kYWNfY3ZfcHJvZ19nc19vawotK2lmIHRlc3QgLW4gIiRnc19v ayI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRnc19vayIg PiY1Ci0rJGFzX2VjaG8gIiRnc19vayIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkK LSsKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9odG1sX2RvYyIgIT0geG5vOyB0aGVuCi0rICB0ZXN0 ICJ4JGRveHlnZW5fb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCi0rICB0ZXN0ICJ4 JGxhdGV4X29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubwotKyAgdGVzdCAieCRkdmlw c19vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KLSsgIHRlc3QgIngkZ3Nfb2siICE9 IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQg b2YgInBlcmwiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBk dW1teSBwZXJsOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3Jk Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wYXRoX1BFUkwrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2FzZSAkUEVSTCBp bgotKyAgW1xcL10qIHwgPzpbXFwvXSopCi0rICBhY19jdl9wYXRoX1BFUkw9IiRQRVJMIiAjIExl dCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KLSsgIDs7Ci0rICAqKQot KyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4g JFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNp b25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAm JiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAg ICBhY19jdl9wYXRoX1BFUkw9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCi0rICAgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVf SUZTCi0rCi0rICA7OwotK2VzYWMKLStmaQotK1BFUkw9JGFjX2N2X3BhdGhfUEVSTAotK2lmIHRl c3QgLW4gIiRQRVJMIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJFBFUkwiID4mNQotKyRhc19lY2hvICIkUEVSTCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2 OyB9Ci0rZmkKLSsKLSsKLStmaQotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9odG1sX2RvYyIgPSB4eWVz OyB0aGVuCi0rICBIVE1MX0RPQ19UUlVFPQotKyAgSFRNTF9ET0NfRkFMU0U9JyMnCi0rZWxzZQot KyAgSFRNTF9ET0NfVFJVRT0nIycKLSsgIEhUTUxfRE9DX0ZBTFNFPQotK2ZpCi0rCi0rCi0rCi0r IyBDaGVjayBmb3IgZGlmZiBwcm9ncmFtIHVzZWQgZm9yIHRlc3RzCi0rIyBFeHRyYWN0IHRoZSBm aXJzdCB3b3JkIG9mICJkaWZmIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn cy4KLStzZXQgZHVtbXkgZGlmZjsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19kaWZmX29rK3Nl dH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsg IGlmIHRlc3QgLW4gIiRkaWZmX29rIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19kaWZmX29rPSIkZGlm Zl9vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8K LSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0r ICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsg IGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3Rf eCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJv Z19kaWZmX29rPSJ5ZXMiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9u ZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19k aWZmX29rIiAmJiBhY19jdl9wcm9nX2RpZmZfb2s9Im5vIgotK2ZpCi0rZmkKLStkaWZmX29rPSRh Y19jdl9wcm9nX2RpZmZfb2sKLStpZiB0ZXN0IC1uICIkZGlmZl9vayI7IHRoZW4KLSsgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRkaWZmX29rIiA+JjUKLSskYXNfZWNobyAi JGRpZmZfb2siID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rIyBFeHRy YWN0IHRoZSBmaXJzdCB3b3JkIG9mICJzZWQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmdzLgotK3NldCBkdW1teSBzZWQ7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfc2Vk X29rK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsgIGlmIHRlc3QgLW4gIiRzZWRfb2siOyB0aGVuCi0rICBhY19jdl9wcm9nX3NlZF9vaz0i JHNlZF9vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0r ZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u Ci0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8K LSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rl c3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3Zf cHJvZ19zZWRfb2s9InllcyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStk b25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgIHRlc3QgLXogIiRhY19jdl9wcm9n X3NlZF9vayIgJiYgYWNfY3ZfcHJvZ19zZWRfb2s9Im5vIgotK2ZpCi0rZmkKLStzZWRfb2s9JGFj X2N2X3Byb2dfc2VkX29rCi0raWYgdGVzdCAtbiAiJHNlZF9vayI7IHRoZW4KLSsgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRzZWRfb2siID4mNQotKyRhc19lY2hvICIkc2Vk X29rIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2VuYWJsZV90ZXN0 cz15ZXMKLSt0ZXN0ICJ4JGRpZmZfb2siICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCi0rdGVz dCAieCRzZWRfb2siICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCi0rIGlmIHRlc3QgIngkZW5h YmxlX3Rlc3RzIiA9IHh5ZXM7IHRoZW4KLSsgIFJVTl9URVNUU19UUlVFPQotKyAgUlVOX1RFU1RT X0ZBTFNFPScjJwotK2Vsc2UKLSsgIFJVTl9URVNUU19UUlVFPScjJwotKyAgUlVOX1RFU1RTX0ZB TFNFPQotK2ZpCi0rCi0rCi0rCi0rIyBDaGVja3MgZm9yIGhlYWRlciBmaWxlcwotKwotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcyIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMuLi4gIiA+ JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zdGRjK3NldH0iID0gc2V0OyB0aGVuCi0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpbmNsdWRl IDxzdGRhcmcuaD4KLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rI2luY2x1ZGUgPGZsb2F0Lmg+Ci0r Ci0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YK LStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIK LStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5l cjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25m dGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK LSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAo ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFn IiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29u ZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCi0rZWxzZQot KyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14v fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlhY19jdl9oZWFkZXJfc3RkYz1ubwotK2Zp Ci0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dC4kYWNfZXh0Ci0rCi0raWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSsg ICMgU3VuT1MgNC54IHN0cmluZy5oIGRvZXMgbm90IGRlY2xhcmUgbWVtKiwgY29udHJhcnkgdG8g QU5TSS4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmgu ICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+ PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2lu Y2x1ZGUgPHN0cmluZy5oPgotKwotK19BQ0VPRgotK2lmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0 LiRhY19leHQiKSAyPiY1IHwKLSsgICRFR1JFUCAibWVtY2hyIiA+L2Rldi9udWxsIDI+JjE7IHRo ZW4KLSsgIDoKLStlbHNlCi0rICBhY19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rcm0gLWYgY29u ZnRlc3QqCi0rCi0rZmkKLSsKLStpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhl bgotKyAgIyBJU0MgMi4wLjIgc3RkbGliLmggZG9lcyBub3QgZGVjbGFyZSBmcmVlLCBjb250cmFy eSB0byBBTlNJLgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRl ZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0r Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K LSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rCi0rX0FDRU9GCi0raWYgKGV2YWwgIiRhY19jcHAgY29u ZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotKyAgJEVHUkVQICJmcmVlIiA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KLSsgIDoKLStlbHNlCi0rICBhY19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rcm0gLWYg Y29uZnRlc3QqCi0rCi0rZmkKLSsKLStpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsg dGhlbgotKyAgIyAvYmluL2NjIGluIElyaXgtNC4wLjUgZ2V0cyBub24tQU5TSSBjdHlwZSBtYWNy b3MgdW5sZXNzIHVzaW5nIC1hbnNpLgotKyAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5 ZXM7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0 LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZk ZWZzLmguICAqLwotKyNpbmNsdWRlIDxjdHlwZS5oPgotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsj aWYgKCgnICcgJiAweDBGRikgPT0gMHgwMjApCi0rIyBkZWZpbmUgSVNMT1dFUihjKSAoJ2EnIDw9 IChjKSAmJiAoYykgPD0gJ3onKQotKyMgZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAn QScgKyAoKGMpIC0gJ2EnKSA6IChjKSkKLSsjZWxzZQotKyMgZGVmaW5lIElTTE9XRVIoYykgXAot KwkJICAgKCgnYScgPD0gKGMpICYmIChjKSA8PSAnaScpIFwKLSsJCSAgICAgfHwgKCdqJyA8PSAo YykgJiYgKGMpIDw9ICdyJykgXAotKwkJICAgICB8fCAoJ3MnIDw9IChjKSAmJiAoYykgPD0gJ3on KSkKLSsjIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VSKGMpID8gKChjKSB8IDB4NDApIDogKGMp KQotKyNlbmRpZgotKwotKyNkZWZpbmUgWE9SKGUsIGYpICgoKGUpICYmICEoZikpIHx8ICghKGUp ICYmIChmKSkpCi0raW50Ci0rbWFpbiAoKQotK3sKLSsgIGludCBpOwotKyAgZm9yIChpID0gMDsg aSA8IDI1NjsgaSsrKQotKyAgICBpZiAoWE9SIChpc2xvd2VyIChpKSwgSVNMT1dFUiAoaSkpCi0r CXx8IHRvdXBwZXIgKGkpICE9IFRPVVBQRVIgKGkpKQotKyAgICAgIHJldHVybiAyOwotKyAgcmV0 dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFj X3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAq XFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsK LStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNo b1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIp IDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScu L2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSsgIHsgKGNhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAi JGFjX3RyeSIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0 aGVuCi0rICA6Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0 aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKygg ZXhpdCAkYWNfc3RhdHVzICkKLSthY19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rcm0gLXJmIGNv bmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlICouY29yZSBjb3JlLmNvbmZ0ZXN0LiogZ21vbi5vdXQg YmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRh Y19leHQKLStmaQotKwotKwotK2ZpCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfaGVhZGVy X3N0ZGMiID4mNjsgfQotK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0r Ci0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIFNURENfSEVBREVSUyAxCi0r X0FDRU9GCi0rCi0rZmkKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg d2hldGhlciB0aW1lLmggYW5kIHN5cy90aW1lLmggbWF5IGJvdGggYmUgaW5jbHVkZWQiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGltZS5oIGFuZCBzeXMvdGltZS5oIG1heSBi b3RoIGJlIGluY2x1ZGVkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9oZWFkZXJfdGlt ZStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8K LStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRl IDxzeXMvdHlwZXMuaD4KLSsjaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSsjaW5jbHVkZSA8dGltZS5o PgotKwotK2ludAotK21haW4gKCkKLSt7Ci0raWYgKChzdHJ1Y3QgdG0gKikgMCkKLStyZXR1cm4g MDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNf b2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGlu Ci0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQot KyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwot KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNv bmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhl bgotKyAgYWNfY3ZfaGVhZGVyX3RpbWU9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTog ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0 ID4mNQotKwotKwlhY19jdl9oZWFkZXJfdGltZT1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3RpbWUiID4mNQot KyRhc19lY2hvICIkYWNfY3ZfaGVhZGVyX3RpbWUiID4mNjsgfQotK2lmIHRlc3QgJGFjX2N2X2hl YWRlcl90aW1lID0geWVzOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsj ZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCi0rX0FDRU9GCi0rCi0rZmkKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLStmb3IgYWNfaGVhZGVyIGluIGNtYXRo IFwKLSsgIGRlcXVlIFwKLSsgIGZzdHJlYW0gXAotKyAgaW9tYW5pcCBcCi0rICBpb3N0cmVhbSBc Ci0rICBzc3RyZWFtIFwKLSsgIGxpbWl0cyBcCi0rICBsaXN0IFwKLSsgIHNldCBcCi0rICB2ZWN0 b3IgXAotKyAgbWFwIFwKLSsgIHF1ZXVlIFwKLSsgIHN0ZGV4Y2VwdCBcCi0rICBzdHJpbmcKLStk bwotK2FzX2FjX0hlYWRlcj1gJGFzX2VjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRh c190cl9zaGAKLStpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0IFwiXCR7JGFz X3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfaGVhZGVyLi4uICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFzX2FjX0hlYWRlcjsgZXZh bCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19I ZWFkZXInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIg PiY2OyB9Ci0rZWxzZQotKyAgIyBJcyB0aGUgaGVhZGVyIGNvbXBpbGFibGU/Ci0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5IiA+JjUKLSsk YXNfZWNob19uICJjaGVja2luZyAkYWNfaGVhZGVyIHVzYWJpbGl0eS4uLiAiID4mNjsgfQotK2Nh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VP RgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rJGFjX2luY2x1ZGVzX2Rl ZmF1bHQKLSsjaW5jbHVkZSA8JGFjX2hlYWRlcj4KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4k YWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnki IGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0k PwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1m IGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsg fSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsg dGhlbgotKyAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKLSsKLSsJYWNfaGVhZGVyX2NvbXBpbGVyPW5vCi0rZmkKLSsKLStybSAtZiBjb3Jl IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUK LSskYXNfZWNobyAiJGFjX2hlYWRlcl9jb21waWxlciIgPiY2OyB9Ci0rCi0rIyBJcyB0aGUgaGVh ZGVyIHByZXNlbnQ/Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19o ZWFkZXIgcHJlc2VuY2UiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nICRhY19oZWFkZXIgcHJl c2VuY2UuLi4gIiA+JjY7IH0KLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBj b25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l eHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmgu ICAqLwotKyNpbmNsdWRlIDwkYWNfaGVhZGVyPgotK19BQ0VPRgotK2lmIHsgKGFjX3RyeT0iJGFj X2NwcCBjb25mdGVzdC4kYWNfZXh0IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFj X2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwot KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNv bmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+ L2Rldi9udWxsICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNf Y3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9 OyB0aGVuCi0rICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1Ci0rCi0rICBhY19oZWFkZXJfcHJlcHJvYz1ubwotK2ZpCi0rCi0rcm0gLWYgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQotKyRhc19lY2hvICIkYWNfaGVhZGVyX3By ZXByb2MiID4mNjsgfQotKwotKyMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwotK2Nhc2Ug JGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2N4eF9wcmVwcm9jX3dh cm5fZmxhZyBpbgotKyAgeWVzOm5vOiApCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVk IGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAk YWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVw cm9jZXNzb3IhIiA+JjI7fQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklO RzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1 Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRo IHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiYyO30KLSsgICAgYWNfaGVhZGVyX3ByZXByb2M9eWVz Ci0rICAgIDs7Ci0rICBubzp5ZXM6KiApCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4m NQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNh bm5vdCBiZSBjb21waWxlZCIgPiYyO30KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUg aGVhZGVycz8iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAg ICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mMjt9Ci0rICAgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBzZWUgdGhlIEF1 dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRh Y19oZWFkZXI6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KLSsgICAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBzZWN0aW9u IFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mNQotKyRhc19lY2hvICIkYXNf bWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90 IEJlIENvbXBpbGVkXCIiID4mMjt9Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBX QVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJl c3VsdCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2Vl ZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9Ci0rICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBpbiB0aGUgZnV0dXJlLCB0 aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mNQotKyRhc19lY2hvICIkYXNfbWU6 IFdBUk5JTkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRh a2UgcHJlY2VkZW5jZSIgPiYyO30KLSsgICAgKCBjYXQgPDxcX0FTQk9YCi0rIyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgUmVwb3J0IHRoaXMg dG8gbXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0ICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rX0FTQk9YCi0rICAgICApIHwgc2Vk ICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCi0rICAgIDs7Ci0rZXNhYwotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gIiA+JjY7IH0KLStpZiB7IGFzX3Zh cj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGV2YWwgIiRh c19hY19IZWFkZXI9XCRhY19oZWFkZXJfcHJlcHJvYyIKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNf dmFsPSR7JyRhc19hY19IZWFkZXInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNf ZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rCi0rZmkKLSthc192YWw9YGV2YWwgJ2FzX3ZhbD0keyck YXNfYWNfSGVhZGVyJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKyAgIGlmIHRlc3QgIngk YXNfdmFsIiA9IHgiInllczsgdGhlbgotKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNk ZWZpbmUgYCRhc19lY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQotK19BQ0VP RgotKwotK2ZpCi0rCi0rZG9uZQotKwotKwotKwotKyMgRGVmaW5lIGNvbmZpZ3VyZWQgZmlsZXMK LSthY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgc29jaS1jb25maWcg c29jaS5wYyBzb2NpLnNwZWMgc29jaS9NYWtlZmlsZSBzb2NpL2NvcmUvTWFrZWZpbGUgc29jaS9j b3JlL3Rlc3QvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL215 c3FsL01ha2VmaWxlIHNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZSBzb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFr ZWZpbGUgc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9vcmFjbGUv dGVzdC9NYWtlZmlsZSBtYW4vTWFrZWZpbGUgZG9jL01ha2VmaWxlIGRvYy9iYWNrZW5kcy9NYWtl ZmlsZSBidWlsZC9NYWtlZmlsZSBidWlsZC91bml4L01ha2VmaWxlIGJ1aWxkL21zdmM4MC9NYWtl ZmlsZSBidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlIGJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUi Ci0rCi0rCi0rY2F0ID5jb25mY2FjaGUgPDxcX0FDRU9GCi0rIyBUaGlzIGZpbGUgaXMgYSBzaGVs bCBzY3JpcHQgdGhhdCBjYWNoZXMgdGhlIHJlc3VsdHMgb2YgY29uZmlndXJlCi0rIyB0ZXN0cyBy dW4gb24gdGhpcyBzeXN0ZW0gc28gdGhleSBjYW4gYmUgc2hhcmVkIGJldHdlZW4gY29uZmlndXJl Ci0rIyBzY3JpcHRzIGFuZCBjb25maWd1cmUgcnVucywgc2VlIGNvbmZpZ3VyZSdzIG9wdGlvbiAt LWNvbmZpZy1jYWNoZS4KLSsjIEl0IGlzIG5vdCB1c2VmdWwgb24gb3RoZXIgc3lzdGVtcy4gIElm IGl0IGNvbnRhaW5zIHJlc3VsdHMgeW91IGRvbid0Ci0rIyB3YW50IHRvIGtlZXAsIHlvdSBtYXkg cmVtb3ZlIG9yIGVkaXQgaXQuCi0rIwotKyMgY29uZmlnLnN0YXR1cyBvbmx5IHBheXMgYXR0ZW50 aW9uIHRvIHRoZSBjYWNoZSBmaWxlIGlmIHlvdSBnaXZlIGl0Ci0rIyB0aGUgLS1yZWNoZWNrIG9w dGlvbiB0byByZXJ1biBjb25maWd1cmUuCi0rIwotKyMgYGFjX2N2X2Vudl9mb28nIHZhcmlhYmxl cyAoc2V0IG9yIHVuc2V0KSB3aWxsIGJlIG92ZXJyaWRkZW4gd2hlbgotKyMgbG9hZGluZyB0aGlz IGZpbGUsIG90aGVyICp1bnNldCogYGFjX2N2X2Zvbycgd2lsbCBiZSBhc3NpZ25lZCB0aGUKLSsj IGZvbGxvd2luZyB2YWx1ZXMuCi0rCi0rX0FDRU9GCi0rCi0rIyBUaGUgZm9sbG93aW5nIHdheSBv ZiB3cml0aW5nIHRoZSBjYWNoZSBtaXNoYW5kbGVzIG5ld2xpbmVzIGluIHZhbHVlcywKLSsjIGJ1 dCB3ZSBrbm93IG9mIG5vIHdvcmthcm91bmQgdGhhdCBpcyBzaW1wbGUsIHBvcnRhYmxlLCBhbmQg ZWZmaWNpZW50LgotKyMgU28sIHdlIGtpbGwgdmFyaWFibGVzIGNvbnRhaW5pbmcgbmV3bGluZXMu Ci0rIyBVbHRyaXggc2ggc2V0IHdyaXRlcyB0byBzdGRlcnIgYW5kIGNhbid0IGJlIHJlZGlyZWN0 ZWQgZGlyZWN0bHksCi0rIyBhbmQgc2V0cyB0aGUgaGlnaCBiaXQgaW4gdGhlIGNhY2hlIGZpbGUg dW5sZXNzIHdlIGFzc2lnbiB0byB0aGUgdmFycy4KLSsoCi0rICBmb3IgYWNfdmFyIGluIGAoc2V0 KSAyPiYxIHwgc2VkIC1uICdzL15cKFthLXpBLVpfXVthLXpBLVowLTlfXSpcKT0uKi9cMS9wJ2A7 IGRvCi0rICAgIGV2YWwgYWNfdmFsPVwkJGFjX3ZhcgotKyAgICBjYXNlICRhY192YWwgaW4gIygK LSsgICAgKiR7YXNfbmx9KikKLSsgICAgICBjYXNlICRhY192YXIgaW4gIygKLSsgICAgICAqX2N2 XyopIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAk YWNfdmFyIGNvbnRhaW5zIGEgbmV3bGluZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklO RzogY2FjaGUgdmFyaWFibGUgJGFjX3ZhciBjb250YWlucyBhIG5ld2xpbmUiID4mMjt9IDs7Ci0r ICAgICAgZXNhYwotKyAgICAgIGNhc2UgJGFjX3ZhciBpbiAjKAotKyAgICAgIF8gfCBJRlMgfCBh c19ubCkgOzsgIygKLSsgICAgICBCQVNIX0FSR1YgfCBCQVNIX1NPVVJDRSkgZXZhbCAkYWNfdmFy PSA7OyAjKAotKyAgICAgICopICRhc191bnNldCAkYWNfdmFyIDs7Ci0rICAgICAgZXNhYyA7Owot KyAgICBlc2FjCi0rICBkb25lCi0rCi0rICAoc2V0KSAyPiYxIHwKLSsgICAgY2FzZSAkYXNfbmxg KGFjX3NwYWNlPScgJzsgc2V0KSAyPiYxYCBpbiAjKAotKyAgICAqJHthc19ubH1hY19zcGFjZT1c ICopCi0rICAgICAgIyBgc2V0JyBkb2VzIG5vdCBxdW90ZSBjb3JyZWN0bHksIHNvIGFkZCBxdW90 ZXMgKGRvdWJsZS1xdW90ZQotKyAgICAgICMgc3Vic3RpdHV0aW9uIHR1cm5zIFxcXFwgaW50byBc XCwgYW5kIHNlZCB0dXJucyBcXCBpbnRvIFwpLgotKyAgICAgIHNlZCAtbiBcCi0rCSJzLycvJ1xc XFwnJy9nOwotKwkgIHMvXlxcKFtfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKlxc KT1cXCguKlxcKS9cXDE9J1xcMicvcCIKLSsgICAgICA7OyAjKAotKyAgICAqKQotKyAgICAgICMg YHNldCcgcXVvdGVzIGNvcnJlY3RseSBhcyByZXF1aXJlZCBieSBQT1NJWCwgc28gZG8gbm90IGFk ZCBxdW90ZXMuCi0rICAgICAgc2VkIC1uICIvXltfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3Jf YWxudW1dKj0vcCIKLSsgICAgICA7OwotKyAgICBlc2FjIHwKLSsgICAgc29ydAotKykgfAotKyAg c2VkICcKLSsgICAgIC9eYWNfY3ZfZW52Xy9iIGVuZAotKyAgICAgdCBjbGVhcgotKyAgICAgOmNs ZWFyCi0rICAgICBzL15cKFtePV0qXCk9XCguKlt7fV0uKlwpJC90ZXN0ICIke1wxK3NldH0iID0g c2V0IHx8ICYvCi0rICAgICB0IGVuZAotKyAgICAgcy9eXChbXj1dKlwpPVwoLipcKSQvXDE9JHtc MT1cMn0vCi0rICAgICA6ZW5kJyA+PmNvbmZjYWNoZQotK2lmIGRpZmYgIiRjYWNoZV9maWxlIiBj b25mY2FjaGUgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSsgIGlmIHRlc3QgLXcgIiRj YWNoZV9maWxlIjsgdGhlbgotKyAgICB0ZXN0ICJ4JGNhY2hlX2ZpbGUiICE9ICJ4L2Rldi9udWxs IiAmJgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiB1cGRhdGluZyBjYWNoZSAk Y2FjaGVfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogdXBkYXRpbmcgY2FjaGUgJGNhY2hl X2ZpbGUiID4mNjt9Ci0rICAgIGNhdCBjb25mY2FjaGUgPiRjYWNoZV9maWxlCi0rICBlbHNlCi0r ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBub3QgdXBkYXRpbmcgdW53cml0YWJsZSBj YWNoZSAkY2FjaGVfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogbm90IHVwZGF0aW5nIHVu d3JpdGFibGUgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9Ci0rICBmaQotK2ZpCi0rcm0gLWYgY29u ZmNhY2hlCi0rCi0rdGVzdCAieCRwcmVmaXgiID0geE5PTkUgJiYgcHJlZml4PSRhY19kZWZhdWx0 X3ByZWZpeAotKyMgTGV0IG1ha2UgZXhwYW5kIGV4ZWNfcHJlZml4LgotK3Rlc3QgIngkZXhlY19w cmVmaXgiID0geE5PTkUgJiYgZXhlY19wcmVmaXg9JyR7cHJlZml4fScKLSsKLStERUZTPS1ESEFW RV9DT05GSUdfSAotKwotK2FjX2xpYm9ianM9Ci0rYWNfbHRsaWJvYmpzPQotK2ZvciBhY19pIGlu IDogJExJQk9CSlM7IGRvIHRlc3QgIngkYWNfaSIgPSB4OiAmJiBjb250aW51ZQotKyAgIyAxLiBS ZW1vdmUgdGhlIGV4dGVuc2lvbiwgYW5kICRVIGlmIGFscmVhZHkgaW5zdGFsbGVkLgotKyAgYWNf c2NyaXB0PSdzL1wkVVwuLy4vO3MvXC5vJC8vO3MvXC5vYmokLy8nCi0rICBhY19pPWAkYXNfZWNo byAiJGFjX2kiIHwgc2VkICIkYWNfc2NyaXB0ImAKLSsgICMgMi4gUHJlcGVuZCBMSUJPQkpESVIu ICBXaGVuIHVzZWQgd2l0aCBhdXRvbWFrZT49MS4xMCBMSUJPQkpESVIKLSsgICMgICAgd2lsbCBi ZSBzZXQgdG8gdGhlIGRpcmVjdG9yeSB3aGVyZSBMSUJPQkpTIG9iamVjdHMgYXJlIGJ1aWx0Lgot KyAgYWNfbGlib2Jqcz0iJGFjX2xpYm9ianMgXCR7TElCT0JKRElSfSRhY19pXCRVLiRhY19vYmpl eHQiCi0rICBhY19sdGxpYm9ianM9IiRhY19sdGxpYm9ianMgXCR7TElCT0JKRElSfSRhY19pIick VS5sbycKLStkb25lCi0rTElCT0JKUz0kYWNfbGlib2JqcwotKwotK0xUTElCT0JKUz0kYWNfbHRs aWJvYmpzCi0rCi0rCi0rIGlmIHRlc3QgLW4gIiRFWEVFWFQiOyB0aGVuCi0rICBhbV9fRVhFRVhU X1RSVUU9Ci0rICBhbV9fRVhFRVhUX0ZBTFNFPScjJwotK2Vsc2UKLSsgIGFtX19FWEVFWFRfVFJV RT0nIycKLSsgIGFtX19FWEVFWFRfRkFMU0U9Ci0rZmkKLSsKLStpZiB0ZXN0IC16ICIke0hBVkVf Q1BQVU5JVF9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX0NQUFVOSVRfRkFMU0V9IjsgdGhlbgot KyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFW RV9DUFBVTklUXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBt YWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLSskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX0NQUFVOSVRcIiB3YXMgbmV2ZXIgZGVmaW5l ZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0 aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLStpZiB0 ZXN0IC16ICIke0FNREVQX1RSVUV9IiAmJiB0ZXN0IC16ICIke0FNREVQX0ZBTFNFfSI7IHRoZW4K LSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIkFN REVQXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3 YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogY29uZGl0aW9uYWwgXCJBTURFUFwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkg dGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYy O30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotK2lmIHRlc3QgLXogIiR7YW1f X2Zhc3RkZXBDWFhfVFJVRX0iICYmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDWFhfRkFMU0V9Ijsg dGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFs IFwiYW1fX2Zhc3RkZXBDWFhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVh bnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotKyRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ1hYXCIgd2FzIG5l dmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZv a2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQot K2ZpCi0raWYgdGVzdCAteiAiJHthbV9fZmFzdGRlcENDX1RSVUV9IiAmJiB0ZXN0IC16ICIke2Ft X19mYXN0ZGVwQ0NfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDQ1wiIHdhcyBuZXZlciBkZWZpbmVk LgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRp b25hbGx5LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiYW1f X2Zhc3RkZXBDQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUg bWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSsgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH0KLStmaQotK2lmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDWFhfVFJV RX0iICYmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDWFhfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBD WFhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdh cyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ1hYXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0r VXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFs bHkuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0raWYgdGVzdCAt eiAiJHtTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUV9IiAmJiB0ZXN0IC16ICIke1NPQ0lfSEVBREVS U19CVVJJRURfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog ZXJyb3I6IGNvbmRpdGlvbmFsIFwiU09DSV9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZp bmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25k aXRpb25hbGx5LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwi U09DSV9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBt ZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSsg ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotK2lmIHRlc3QgLXogIiR7U09DSV9NWVNR TF9IRUFERVJTX0JVUklFRF9UUlVFfSIgJiYgdGVzdCAteiAiJHtTT0NJX01ZU1FMX0hFQURFUlNf QlVSSUVEX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVy cm9yOiBjb25kaXRpb25hbCBcIlNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURcIiB3YXMgbmV2ZXIg ZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQg Y29uZGl0aW9uYWxseS4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25h bCBcIlNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3Vh bGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4i ID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIk e1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9UUlVFfSIgJiYgdGVzdCAteiAiJHtTT0NJ X1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRo ZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLSskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJ RURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdh cyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhp dCAxOyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIke0hBVkVfTVlTUUxfVFJVRX0iICYmIHRlc3Qg LXogIiR7SEFWRV9NWVNRTF9GQUxTRX0iOyB0aGVuCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX01ZU1FMXCIgd2FzIG5ldmVyIGRlZmlu ZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRp dGlvbmFsbHkuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJI QVZFX01ZU1FMXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBt YWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0raWYgdGVzdCAteiAiJHtIQVZFX09SQUNMRV9UUlVFfSIg JiYgdGVzdCAteiAiJHtIQVZFX09SQUNMRV9GQUxTRX0iOyB0aGVuCi0rICB7IHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX09SQUNMRVwiIHdhcyBu ZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52 b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRp dGlvbmFsIFwiSEFWRV9PUkFDTEVcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMg bWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0r ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIke0hBVkVfUE9T VEdSRVNRTF9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX1BPU1RHUkVTUUxfRkFMU0V9IjsgdGhl bgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwi SEFWRV9QT1NUR1JFU1FMXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5z IHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLSskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX1BPU1RHUkVTUUxcIiB3YXMgbmV2 ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9r ZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0r ZmkKLStpZiB0ZXN0IC16ICIke0lORk9fRE9DX1RSVUV9IiAmJiB0ZXN0IC16ICIke0lORk9fRE9D X0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBj b25kaXRpb25hbCBcIklORk9fRE9DXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlz IG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJJTkZPX0RPQ1wiIHdhcyBuZXZl ciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tl ZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStm aQotK2lmIHRlc3QgLXogIiR7SFRNTF9ET0NfVFJVRX0iICYmIHRlc3QgLXogIiR7SFRNTF9ET0Nf RkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNv bmRpdGlvbmFsIFwiSFRNTF9ET0NcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMg bWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotKyRh c19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIkhUTUxfRE9DXCIgd2FzIG5ldmVy IGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2Vk IGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2Zp Ci0raWYgdGVzdCAteiAiJHtSVU5fVEVTVFNfVFJVRX0iICYmIHRlc3QgLXogIiR7UlVOX1RFU1RT X0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBj b25kaXRpb25hbCBcIlJVTl9URVNUU1wiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhp cyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiUlVOX1RFU1RTXCIgd2FzIG5l dmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZv a2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQot K2ZpCi0rCi0rOiAke0NPTkZJR19TVEFUVVM9Li9jb25maWcuc3RhdHVzfQotK2FjX3dyaXRlX2Zh aWw9MAotK2FjX2NsZWFuX2ZpbGVzX3NhdmU9JGFjX2NsZWFuX2ZpbGVzCi0rYWNfY2xlYW5fZmls ZXM9IiRhY19jbGVhbl9maWxlcyAkQ09ORklHX1NUQVRVUyIKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY3JlYXRpbmcgJENPTkZJR19TVEFUVVMiID4mNQotKyRhc19lY2hvICIkYXNfbWU6 IGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjY7fQotK2NhdCA+JENPTkZJR19TVEFUVVMgPDxf QUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rIyEgJFNIRUxMCi0rIyBHZW5lcmF0ZWQgYnkgJGFz X21lLgotKyMgUnVuIHRoaXMgZmlsZSB0byByZWNyZWF0ZSB0aGUgY3VycmVudCBjb25maWd1cmF0 aW9uLgotKyMgQ29tcGlsZXIgb3V0cHV0IHByb2R1Y2VkIGJ5IGNvbmZpZ3VyZSwgdXNlZnVsIGZv ciBkZWJ1Z2dpbmcKLSsjIGNvbmZpZ3VyZSwgaXMgaW4gY29uZmlnLmxvZyBpZiBpdCBleGlzdHMu Ci0rCi0rZGVidWc9ZmFsc2UKLSthY19jc19yZWNoZWNrPWZhbHNlCi0rYWNfY3Nfc2lsZW50PWZh bHNlCi0rU0hFTEw9XCR7Q09ORklHX1NIRUxMLSRTSEVMTH0KLStfQUNFT0YKLSsKLStjYXQgPj4k Q09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rIyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tICMjCi0rIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gICMjCi0rIyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tICMjCi0rCi0rIyBCZSBtb3JlIEJvdXJuZSBjb21wYXRpYmxlCi0rRFVB TENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAotK2lmIHRlc3QgLW4gIiR7WlNI X1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAg ZW11bGF0ZSBzaAotKyAgTlVMTENNRD06Ci0rICAjIFByZS00LjIgdmVyc2lvbnMgb2YgWnNoIGRv IHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKLSsgICMgaXMgY29udHJhcnkgdG8g b3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCi0rICBhbGlhcyAtZyAnJHsxKyIkQCJ9 Jz0nIiRAIicKLSsgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZWxzZQotKyAgY2FzZSBgKHNldCAt bykgMj4vZGV2L251bGxgIGluCi0rICAqcG9zaXgqKSBzZXQgLW8gcG9zaXggOzsKLStlc2FjCi0r Ci0rZmkKLSsKLSsKLSsKLSsKLSsjIFBBVEggbmVlZHMgQ1IKLSsjIEF2b2lkIGRlcGVuZGluZyB1 cG9uIENoYXJhY3RlciBSYW5nZXMuCi0rYXNfY3JfbGV0dGVycz0nYWJjZGVmZ2hpamtsbW5vcHFy c3R1dnd4eXonCi0rYXNfY3JfTEVUVEVSUz0nQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonCi0r YXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRURVJTCi0rYXNfY3JfZGlnaXRz PScwMTIzNDU2Nzg5JwotK2FzX2NyX2FsbnVtPSRhc19jcl9MZXR0ZXJzJGFzX2NyX2RpZ2l0cwot KwotK2FzX25sPScKLSsnCi0rZXhwb3J0IGFzX25sCi0rIyBQcmludGluZyBhIGxvbmcgc3RyaW5n IGNyYXNoZXMgU29sYXJpcyA3IC91c3IvYmluL3ByaW50Zi4KLSthc19lY2hvPSdcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcJwotK2FzX2VjaG89JGFzX2VjaG8k YXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobwotK2FzX2VjaG89JGFzX2VjaG8kYXNfZWNo byRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvCi0raWYgKHRlc3QgIlhgcHJpbnRmICVz ICRhc19lY2hvYCIgPSAiWCRhc19lY2hvIikgMj4vZGV2L251bGw7IHRoZW4KLSsgIGFzX2VjaG89 J3ByaW50ZiAlc1xuJwotKyAgYXNfZWNob19uPSdwcmludGYgJXMnCi0rZWxzZQotKyAgaWYgdGVz dCAiWGAoL3Vzci91Y2IvZWNobyAtbiAtbiAkYXNfZWNobykgMj4vZGV2L251bGxgIiA9ICJYLW4g JGFzX2VjaG8iOyB0aGVuCi0rICAgIGFzX2VjaG9fYm9keT0nZXZhbCAvdXNyL3VjYi9lY2hvIC1u ICIkMSRhc19ubCInCi0rICAgIGFzX2VjaG9fbj0nL3Vzci91Y2IvZWNobyAtbicKLSsgIGVsc2UK LSsgICAgYXNfZWNob19ib2R5PSdldmFsIGV4cHIgIlgkMSIgOiAiWFxcKC4qXFwpIicKLSsgICAg YXNfZWNob19uX2JvZHk9J2V2YWwKLSsgICAgICBhcmc9JDE7Ci0rICAgICAgY2FzZSAkYXJnIGlu Ci0rICAgICAgKiIkYXNfbmwiKikKLSsJZXhwciAiWCRhcmciIDogIlhcXCguKlxcKSRhc19ubCI7 Ci0rCWFyZz1gZXhwciAiWCRhcmciIDogIi4qJGFzX25sXFwoLipcXCkiYDs7Ci0rICAgICAgZXNh YzsKLSsgICAgICBleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpIiB8IHRyIC1kICIkYXNfbmwiCi0r ICAgICcKLSsgICAgZXhwb3J0IGFzX2VjaG9fbl9ib2R5Ci0rICAgIGFzX2VjaG9fbj0nc2ggLWMg JGFzX2VjaG9fbl9ib2R5IGFzX2VjaG8nCi0rICBmaQotKyAgZXhwb3J0IGFzX2VjaG9fYm9keQot KyAgYXNfZWNobz0nc2ggLWMgJGFzX2VjaG9fYm9keSBhc19lY2hvJwotK2ZpCi0rCi0rIyBUaGUg dXNlciBpcyBhbHdheXMgcmlnaHQuCi0raWYgdGVzdCAiJHtQQVRIX1NFUEFSQVRPUitzZXR9IiAh PSBzZXQ7IHRoZW4KLSsgIFBBVEhfU0VQQVJBVE9SPToKLSsgIChQQVRIPScvYmluOy9iaW4nOyBG UEFUSD0kUEFUSDsgc2ggLWMgOikgPi9kZXYvbnVsbCAyPiYxICYmIHsKLSsgICAgKFBBVEg9Jy9i aW46L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+JjEgfHwKLSsgICAg ICBQQVRIX1NFUEFSQVRPUj0nOycKLSsgIH0KLStmaQotKwotKyMgU3VwcG9ydCB1bnNldCB3aGVu IHBvc3NpYmxlLgotK2lmICggKE1BSUw9NjA7IHVuc2V0IE1BSUwpIHx8IGV4aXQpID4vZGV2L251 bGwgMj4mMTsgdGhlbgotKyAgYXNfdW5zZXQ9dW5zZXQKLStlbHNlCi0rICBhc191bnNldD1mYWxz ZQotK2ZpCi0rCi0rCi0rIyBJRlMKLSsjIFdlIG5lZWQgc3BhY2UsIHRhYiBhbmQgbmV3IGxpbmUs IGluIHByZWNpc2VseSB0aGF0IG9yZGVyLiAgUXVvdGluZyBpcwotKyMgdGhlcmUgdG8gcHJldmVu dCBlZGl0b3JzIGZyb20gY29tcGxhaW5pbmcgYWJvdXQgc3BhY2UtdGFiLgotKyMgKElmIF9BU19Q QVRIX1dBTEsgd2VyZSBjYWxsZWQgd2l0aCBJRlMgdW5zZXQsIGl0IHdvdWxkIGRpc2FibGUgd29y ZAotKyMgc3BsaXR0aW5nIGJ5IHNldHRpbmcgSUZTIHRvIGVtcHR5IHZhbHVlLikKLStJRlM9IiAi IgkkYXNfbmwiCi0rCi0rIyBGaW5kIHdobyB3ZSBhcmUuICBMb29rIGluIHRoZSBwYXRoIGlmIHdl IGNvbnRhaW4gbm8gZGlyZWN0b3J5IHNlcGFyYXRvci4KLStjYXNlICQwIGluCi0rICAqW1xcL10q ICkgYXNfbXlzZWxmPSQwIDs7Ci0rICAqKSBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0r ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgdGVzdCAtciAiJGFzX2Rpci8kMCIg JiYgYXNfbXlzZWxmPSRhc19kaXIvJDAgJiYgYnJlYWsKLStkb25lCi0rSUZTPSRhc19zYXZlX0lG UwotKwotKyAgICAgOzsKLStlc2FjCi0rIyBXZSBkaWQgbm90IGZpbmQgb3Vyc2VsdmVzLCBtb3N0 IHByb2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBzaCBDT01NQU5EJwotKyMgaW4gd2hpY2ggY2FzZSB3 ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRoLgotK2lmIHRlc3QgIngkYXNfbXlzZWxm IiA9IHg7IHRoZW4KLSsgIGFzX215c2VsZj0kMAotK2ZpCi0raWYgdGVzdCAhIC1mICIkYXNfbXlz ZWxmIjsgdGhlbgotKyAgJGFzX2VjaG8gIiRhc19teXNlbGY6IGVycm9yOiBjYW5ub3QgZmluZCBt eXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgZmlsZSBuYW1lIiA+JjIKLSsgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfQotK2ZpCi0rCi0rIyBXb3JrIGFyb3VuZCBidWdzIGluIHByZS0zLjAgVVdJ TiBrc2guCi0rZm9yIGFzX3ZhciBpbiBFTlYgTUFJTCBNQUlMUEFUSAotK2RvICgkYXNfdW5zZXQg JGFzX3ZhcikgPi9kZXYvbnVsbCAyPiYxICYmICRhc191bnNldCAkYXNfdmFyCi0rZG9uZQotK1BT MT0nJCAnCi0rUFMyPSc+ICcKLStQUzQ9JysgJwotKwotKyMgTkxTIG51aXNhbmNlcy4KLStMQ19B TEw9QwotK2V4cG9ydCBMQ19BTEwKLStMQU5HVUFHRT1DCi0rZXhwb3J0IExBTkdVQUdFCi0rCi0r IyBSZXF1aXJlZCB0byB1c2UgYmFzZW5hbWUuCi0raWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9u dWxsIDI+JjEgJiYKLSsgICB0ZXN0ICJYYGV4cHIgMDAwMDEgOiAnLipcKC4uLlwpJ2AiID0gWDAw MTsgdGhlbgotKyAgYXNfZXhwcj1leHByCi0rZWxzZQotKyAgYXNfZXhwcj1mYWxzZQotK2ZpCi0r Ci0raWYgKGJhc2VuYW1lIC0tIC8pID4vZGV2L251bGwgMj4mMSAmJiB0ZXN0ICJYYGJhc2VuYW1l IC0tIC8gMj4mMWAiID0gIlgvIjsgdGhlbgotKyAgYXNfYmFzZW5hbWU9YmFzZW5hbWUKLStlbHNl Ci0rICBhc19iYXNlbmFtZT1mYWxzZQotK2ZpCi0rCi0rCi0rIyBOYW1lIG9mIHRoZSBleGVjdXRh YmxlLgotK2FzX21lPWAkYXNfYmFzZW5hbWUgLS0gIiQwIiB8fAotKyRhc19leHByIFgvIiQwIiA6 ICcuKi9cKFteL11bXi9dKlwpLyokJyBcfCBcCi0rCSBYIiQwIiA6ICdYXCgvL1wpJCcgXHwgXAot KwkgWCIkMCIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8Ci0rJGFzX2VjaG8gWC8iJDAi IHwKLSsgICAgc2VkICcvXi4qXC9cKFteL11bXi9dKlwpXC8qJC97Ci0rCSAgICBzLy9cMS8KLSsJ ICAgIHEKLSsJICB9Ci0rCSAgL15YXC9cKFwvXC9cKSQvewotKwkgICAgcy8vXDEvCi0rCSAgICBx Ci0rCSAgfQotKwkgIC9eWFwvXChcL1wpLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAg fQotKwkgIHMvLiovLi87IHEnYAotKwotKyMgQ0RQQVRILgotKyRhc191bnNldCBDRFBBVEgKLSsK LSsKLSsKLSsgIGFzX2xpbmVub18xPSRMSU5FTk8KLSsgIGFzX2xpbmVub18yPSRMSU5FTk8KLSsg IHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgotKyAgdGVzdCAieGBl eHByICRhc19saW5lbm9fMSArIDFgIiA9ICJ4JGFzX2xpbmVub18yIiB8fCB7Ci0rCi0rICAjIENy ZWF0ZSAkYXNfbWUubGluZW5vIGFzIGEgY29weSBvZiAkYXNfbXlzZWxmLCBidXQgd2l0aCAkTElO RU5PCi0rICAjIHVuaWZvcm1seSByZXBsYWNlZCBieSB0aGUgbGluZSBudW1iZXIuICBUaGUgZmly c3QgJ3NlZCcgaW5zZXJ0cyBhCi0rICAjIGxpbmUtbnVtYmVyIGxpbmUgYWZ0ZXIgZWFjaCBsaW5l IHVzaW5nICRMSU5FTk87IHRoZSBzZWNvbmQgJ3NlZCcKLSsgICMgZG9lcyB0aGUgcmVhbCB3b3Jr LiAgVGhlIHNlY29uZCBzY3JpcHQgdXNlcyAnTicgdG8gcGFpciBlYWNoCi0rICAjIGxpbmUtbnVt YmVyIGxpbmUgd2l0aCB0aGUgbGluZSBjb250YWluaW5nICRMSU5FTk8sIGFuZCBhcHBlbmRzCi0r ICAjIHRyYWlsaW5nICctJyBkdXJpbmcgc3Vic3RpdHV0aW9uIHNvIHRoYXQgJExJTkVOTyBpcyBu b3QgYSBzcGVjaWFsCi0rICAjIGNhc2UgYXQgbGluZSBlbmQuCi0rICAjIChSYWphIFIgSGFyaW5h dGggc3VnZ2VzdGVkIHNlZCAnPScsIGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0aGUKLSsgICMgc2Ny aXB0cyB3aXRoIG9wdGltaXphdGlvbiBoZWxwIGZyb20gUGFvbG8gQm9uemluaS4gIEJsYW1lIExl ZQotKyAgIyBFLiBNY01haG9uICgxOTMxLTE5ODkpIGZvciBzZWQncyBzeW50YXguICA6LSkKLSsg IHNlZCAtbiAnCi0rICAgIHAKLSsgICAgL1skXUxJTkVOTy89Ci0rICAnIDwkYXNfbXlzZWxmIHwK LSsgICAgc2VkICcKLSsgICAgICBzL1skXUxJTkVOTy4qLyYtLwotKyAgICAgIHQgbGluZW5vCi0r ICAgICAgYgotKyAgICAgIDpsaW5lbm8KLSsgICAgICBOCi0rICAgICAgOmxvb3AKLSsgICAgICBz L1skXUxJTkVOT1woW14nJGFzX2NyX2FsbnVtJ19dLipcblwpXCguKlwpL1wyXDFcMi8KLSsgICAg ICB0IGxvb3AKLSsgICAgICBzLy1cbi4qLy8KLSsgICAgJyA+JGFzX21lLmxpbmVubyAmJgotKyAg Y2htb2QgK3ggIiRhc19tZS5saW5lbm8iIHx8Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IGNhbm5vdCBjcmVhdGUgJGFzX21lLmxpbmVubzsgcmVydW4gd2l0aCBhIFBPU0lYIHNoZWxs IiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsKLSsgICMgRG9uJ3QgdHJ5IHRv IGV4ZWMgYXMgaXQgY2hhbmdlcyAkWzBdLCBjYXVzaW5nIGFsbCBzb3J0IG9mIHByb2JsZW1zCi0r ICAjICh0aGUgZGlybmFtZSBvZiAkWzBdIGlzIG5vdCB0aGUgcGxhY2Ugd2hlcmUgd2UgbWlnaHQg ZmluZCB0aGUKLSsgICMgb3JpZ2luYWwgYW5kIHNvIG9uLiAgQXV0b2NvbmYgaXMgZXNwZWNpYWxs eSBzZW5zaXRpdmUgdG8gdGhpcykuCi0rICAuICIuLyRhc19tZS5saW5lbm8iCi0rICAjIEV4aXQg c3RhdHVzIGlzIHRoYXQgb2YgdGhlIGxhc3QgY29tbWFuZC4KLSsgIGV4aXQKLSt9Ci0rCi0rCi0r aWYgKGFzX2Rpcj1gZGlybmFtZSAtLSAvYCAmJiB0ZXN0ICJYJGFzX2RpciIgPSBYLykgPi9kZXYv bnVsbCAyPiYxOyB0aGVuCi0rICBhc19kaXJuYW1lPWRpcm5hbWUKLStlbHNlCi0rICBhc19kaXJu YW1lPWZhbHNlCi0rZmkKLSsKLStFQ0hPX0M9IEVDSE9fTj0gRUNIT19UPQotK2Nhc2UgYGVjaG8g LW4geGAgaW4KLSstbiopCi0rICBjYXNlIGBlY2hvICd4XGMnYCBpbgotKyAgKmMqKSBFQ0hPX1Q9 JwknOzsJIyBFQ0hPX1QgaXMgc2luZ2xlIHRhYiBjaGFyYWN0ZXIuCi0rICAqKSAgIEVDSE9fQz0n XGMnOzsKLSsgIGVzYWM7OwotKyopCi0rICBFQ0hPX049Jy1uJzs7Ci0rZXNhYwotK2lmIGV4cHIg YSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxICYmCi0rICAgdGVzdCAiWGBleHByIDAwMDAxIDog Jy4qXCguLi5cKSdgIiA9IFgwMDE7IHRoZW4KLSsgIGFzX2V4cHI9ZXhwcgotK2Vsc2UKLSsgIGFz X2V4cHI9ZmFsc2UKLStmaQotKwotK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxl Ci0raWYgdGVzdCAtZCBjb25mJCQuZGlyOyB0aGVuCi0rICBybSAtZiBjb25mJCQuZGlyL2NvbmYk JC5maWxlCi0rZWxzZQotKyAgcm0gLWYgY29uZiQkLmRpcgotKyAgbWtkaXIgY29uZiQkLmRpciAy Pi9kZXYvbnVsbAotK2ZpCi0raWYgKGVjaG8gPmNvbmYkJC5maWxlKSAyPi9kZXYvbnVsbDsgdGhl bgotKyAgaWYgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCi0rICAg IGFzX2xuX3M9J2xuIC1zJwotKyAgICAjIC4uLiBidXQgdGhlcmUgYXJlIHR3byBnb3RjaGFzOgot KyAgICAjIDEpIE9uIE1TWVMsIGJvdGggYGxuIC1zIGZpbGUgZGlyJyBhbmQgYGxuIGZpbGUgZGly JyBmYWlsLgotKyAgICAjIDIpIERKR1BQIDwgMi4wNCBoYXMgbm8gc3ltbGlua3M7IGBsbiAtcycg Y3JlYXRlcyBhIHdyYXBwZXIgZXhlY3V0YWJsZS4KLSsgICAgIyBJbiBib3RoIGNhc2VzLCB3ZSBo YXZlIHRvIGRlZmF1bHQgdG8gYGNwIC1wJy4KLSsgICAgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQk LmRpciAyPi9kZXYvbnVsbCAmJiB0ZXN0ICEgLWYgY29uZiQkLmV4ZSB8fAotKyAgICAgIGFzX2xu X3M9J2NwIC1wJwotKyAgZWxpZiBsbiBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRo ZW4KLSsgICAgYXNfbG5fcz1sbgotKyAgZWxzZQotKyAgICBhc19sbl9zPSdjcCAtcCcKLSsgIGZp Ci0rZWxzZQotKyAgYXNfbG5fcz0nY3AgLXAnCi0rZmkKLStybSAtZiBjb25mJCQgY29uZiQkLmV4 ZSBjb25mJCQuZGlyL2NvbmYkJC5maWxlIGNvbmYkJC5maWxlCi0rcm1kaXIgY29uZiQkLmRpciAy Pi9kZXYvbnVsbAotKwotK2lmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4KLSsgIGFzX21r ZGlyX3A9OgotK2Vsc2UKLSsgIHRlc3QgLWQgLi8tcCAmJiBybWRpciAuLy1wCi0rICBhc19ta2Rp cl9wPWZhbHNlCi0rZmkKLSsKLStpZiB0ZXN0IC14IC8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0r ICBhc190ZXN0X3g9J3Rlc3QgLXgnCi0rZWxzZQotKyAgaWYgbHMgLWRMIC8gPi9kZXYvbnVsbCAy PiYxOyB0aGVuCi0rICAgIGFzX2xzX0xfb3B0aW9uPUwKLSsgIGVsc2UKLSsgICAgYXNfbHNfTF9v cHRpb249Ci0rICBmaQotKyAgYXNfdGVzdF94PScKLSsgICAgZXZhbCBzaCAtYyAnXCcnCi0rICAg ICAgaWYgdGVzdCAtZCAiJDEiOyB0aGVuCi0rCXRlc3QgLWQgIiQxLy4iOwotKyAgICAgIGVsc2UK LSsJY2FzZSAkMSBpbgotKwktKilzZXQgIi4vJDEiOzsKLSsJZXNhYzsKLSsJY2FzZSBgbHMgLWxk JyRhc19sc19MX29wdGlvbicgIiQxIiAyPi9kZXYvbnVsbGAgaW4KLSsJPz8/W3N4XSopOjs7Kilm YWxzZTs7ZXNhYztmaQotKyAgICAnXCcnIHNoCi0rICAnCi0rZmkKLSthc19leGVjdXRhYmxlX3A9 JGFzX3Rlc3RfeAotKwotKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2 YWxpZCBDUFAgbmFtZS4KLSthc190cl9jcHA9ImV2YWwgc2VkICd5JSokYXNfY3JfbGV0dGVycyVQ JGFzX2NyX0xFVFRFUlMlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgotKwotKyMgU2VkIGV4cHJl c3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCB2YXJpYWJsZSBuYW1lLgotK2FzX3Ry X3NoPSJldmFsIHNlZCAneSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCi0rCi0rCi0r ZXhlYyA2PiYxCi0rCi0rIyBTYXZlIHRoZSBsb2cgbWVzc2FnZSwgdG8ga2VlcCAkWzBdIGFuZCBz byBvbiBtZWFuaW5nZnVsLCBhbmQgdG8KLSsjIHJlcG9ydCBhY3R1YWwgaW5wdXQgdmFsdWVzIG9m IENPTkZJR19GSUxFUyBldGMuIGluc3RlYWQgb2YgdGhlaXIKLSsjIHZhbHVlcyBhZnRlciBvcHRp b25zIGhhbmRsaW5nLgotK2FjX2xvZz0iCi0rVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBTT0NJ ICRhc19tZSAzLjAuMCwgd2hpY2ggd2FzCi0rZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYz LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCi0rCi0rICBDT05GSUdfRklMRVMgICAgPSAk Q09ORklHX0ZJTEVTCi0rICBDT05GSUdfSEVBREVSUyAgPSAkQ09ORklHX0hFQURFUlMKLSsgIENP TkZJR19MSU5LUyAgICA9ICRDT05GSUdfTElOS1MKLSsgIENPTkZJR19DT01NQU5EUyA9ICRDT05G SUdfQ09NTUFORFMKLSsgICQgJDAgJEAKLSsKLStvbiBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAy Pi9kZXYvbnVsbCB8IHNlZCAxcWAKLSsiCi0rCi0rX0FDRU9GCi0rCi0rY2FzZSAkYWNfY29uZmln X2ZpbGVzIGluICoiCi0rIiopIHNldCB4ICRhY19jb25maWdfZmlsZXM7IHNoaWZ0OyBhY19jb25m aWdfZmlsZXM9JCo7OwotK2VzYWMKLSsKLStjYXNlICRhY19jb25maWdfaGVhZGVycyBpbiAqIgot KyIqKSBzZXQgeCAkYWNfY29uZmlnX2hlYWRlcnM7IHNoaWZ0OyBhY19jb25maWdfaGVhZGVycz0k Kjs7Ci0rZXNhYwotKwotKwotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dy aXRlX2ZhaWw9MQotKyMgRmlsZXMgdGhhdCBjb25maWcuc3RhdHVzIHdhcyBtYWRlIGZvci4KLStj b25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMiCi0rY29uZmlnX2hlYWRlcnM9IiRhY19jb25m aWdfaGVhZGVycyIKLStjb25maWdfY29tbWFuZHM9IiRhY19jb25maWdfY29tbWFuZHMiCi0rCi0r X0FDRU9GCi0rCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2Zh aWw9MQotK2FjX2NzX3VzYWdlPSJcCi0rXGAkYXNfbWUnIGluc3RhbnRpYXRlcyBmaWxlcyBmcm9t IHRlbXBsYXRlcyBhY2NvcmRpbmcgdG8gdGhlCi0rY3VycmVudCBjb25maWd1cmF0aW9uLgotKwot K1VzYWdlOiAkMCBbT1BUSU9OXS4uLiBbRklMRV0uLi4KLSsKLSsgIC1oLCAtLWhlbHAgICAgICAg cHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKLSsgIC1WLCAtLXZlcnNpb24gICAgcHJpbnQgdmVy c2lvbiBudW1iZXIgYW5kIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MsIHRoZW4gZXhpdAotKyAgLXEs IC0tcXVpZXQsIC0tc2lsZW50Ci0rICAgICAgICAgICAgICAgICAgIGRvIG5vdCBwcmludCBwcm9n cmVzcyBtZXNzYWdlcwotKyAgLWQsIC0tZGVidWcgICAgICBkb24ndCByZW1vdmUgdGVtcG9yYXJ5 IGZpbGVzCi0rICAgICAgLS1yZWNoZWNrICAgIHVwZGF0ZSAkYXNfbWUgYnkgcmVjb25maWd1cmlu ZyBpbiB0aGUgc2FtZSBjb25kaXRpb25zCi0rICAgICAgLS1maWxlPUZJTEVbOlRFTVBMQVRFXQot KyAgICAgICAgICAgICAgICAgICBpbnN0YW50aWF0ZSB0aGUgY29uZmlndXJhdGlvbiBmaWxlIEZJ TEUKLSsgICAgICAtLWhlYWRlcj1GSUxFWzpURU1QTEFURV0KLSsgICAgICAgICAgICAgICAgICAg aW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRpb24gaGVhZGVyIEZJTEUKLSsKLStDb25maWd1cmF0 aW9uIGZpbGVzOgotKyRjb25maWdfZmlsZXMKLSsKLStDb25maWd1cmF0aW9uIGhlYWRlcnM6Ci0r JGNvbmZpZ19oZWFkZXJzCi0rCi0rQ29uZmlndXJhdGlvbiBjb21tYW5kczoKLSskY29uZmlnX2Nv bW1hbmRzCi0rCi0rUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1hdXRvY29uZkBnbnUub3JnPi4iCi0rCi0r X0FDRU9GCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0x Ci0rYWNfY3NfdmVyc2lvbj0iXFwKLStTT0NJIGNvbmZpZy5zdGF0dXMgMy4wLjAKLStjb25maWd1 cmVkIGJ5ICQwLCBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjMsCi0rICB3aXRoIG9wdGlv bnMgXFwiYCRhc19lY2hvICIkYWNfY29uZmlndXJlX2FyZ3MiIHwgc2VkICdzL14gLy87IHMvW1xc IiJcYFwkXS9cXFxcJi9nJ2BcXCIKLSsKLStDb3B5cmlnaHQgKEMpIDIwMDggRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCi0rVGhpcyBjb25maWcuc3RhdHVzIHNjcmlwdCBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rZ2l2ZXMgdW5saW1pdGVkIHBl cm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LiIKLSsKLSthY19wd2Q9 JyRhY19wd2QnCi0rc3JjZGlyPSckc3JjZGlyJwotK0lOU1RBTEw9JyRJTlNUQUxMJwotK01LRElS X1A9JyRNS0RJUl9QJwotK0FXSz0nJEFXSycKLSt0ZXN0IC1uICJcJEFXSyIgfHwgQVdLPWF3awot K19BQ0VPRgotKwotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9m YWlsPTEKLSsjIFRoZSBkZWZhdWx0IGxpc3RzIGFwcGx5IGlmIHRoZSB1c2VyIGRvZXMgbm90IHNw ZWNpZnkgYW55IGZpbGUuCi0rYWNfbmVlZF9kZWZhdWx0cz06Ci0rd2hpbGUgdGVzdCAkIyAhPSAw Ci0rZG8KLSsgIGNhc2UgJDEgaW4KLSsgIC0tKj0qKQotKyAgICBhY19vcHRpb249YGV4cHIgIlgk MSIgOiAnWFwoW149XSpcKT0nYAotKyAgICBhY19vcHRhcmc9YGV4cHIgIlgkMSIgOiAnWFtePV0q PVwoLipcKSdgCi0rICAgIGFjX3NoaWZ0PToKLSsgICAgOzsKLSsgICopCi0rICAgIGFjX29wdGlv bj0kMQotKyAgICBhY19vcHRhcmc9JDIKLSsgICAgYWNfc2hpZnQ9c2hpZnQKLSsgICAgOzsKLSsg IGVzYWMKLSsKLSsgIGNhc2UgJGFjX29wdGlvbiBpbgotKyAgIyBIYW5kbGluZyBvZiB0aGUgb3B0 aW9ucy4KLSsgIC1yZWNoZWNrIHwgLS1yZWNoZWNrIHwgLS1yZWNoZWMgfCAtLXJlY2hlIHwgLS1y ZWNoIHwgLS1yZWMgfCAtLXJlIHwgLS1yKQotKyAgICBhY19jc19yZWNoZWNrPTogOzsKLSsgIC0t dmVyc2lvbiB8IC0tdmVyc2lvIHwgLS12ZXJzaSB8IC0tdmVycyB8IC0tdmVyIHwgLS12ZSB8IC0t diB8IC1WICkKLSsgICAgJGFzX2VjaG8gIiRhY19jc192ZXJzaW9uIjsgZXhpdCA7OwotKyAgLS1k ZWJ1ZyB8IC0tZGVidSB8IC0tZGViIHwgLS1kZSB8IC0tZCB8IC1kICkKLSsgICAgZGVidWc9OiA7 OwotKyAgLS1maWxlIHwgLS1maWwgfCAtLWZpIHwgLS1mICkKLSsgICAgJGFjX3NoaWZ0Ci0rICAg IGNhc2UgJGFjX29wdGFyZyBpbgotKyAgICAqXCcqKSBhY19vcHRhcmc9YCRhc19lY2hvICIkYWNf b3B0YXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OwotKyAgICBlc2FjCi0rICAgIENP TkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyAnJGFjX29wdGFyZyciCi0rICAgIGFjX25lZWRfZGVm YXVsdHM9ZmFsc2U7OwotKyAgLS1oZWFkZXIgfCAtLWhlYWRlIHwgLS1oZWFkIHwgLS1oZWEgKQot KyAgICAkYWNfc2hpZnQKLSsgICAgY2FzZSAkYWNfb3B0YXJnIGluCi0rICAgICpcJyopIGFjX29w dGFyZz1gJGFzX2VjaG8gIiRhY19vcHRhcmciIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7 Ci0rICAgIGVzYWMKLSsgICAgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyAnJGFjX29w dGFyZyciCi0rICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwotKyAgLS1oZSB8IC0taCkKLSsg ICAgIyBDb25mbGljdCBiZXR3ZWVuIC0taGVscCBhbmQgLS1oZWFkZXIKLSsgICAgeyAkYXNfZWNo byAiJGFzX21lOiBlcnJvcjogYW1iaWd1b3VzIG9wdGlvbjogJDEKLStUcnkgXGAkMCAtLWhlbHAn IGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyCi0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9 OzsKLSsgIC0taGVscCB8IC0taGVsIHwgLWggKQotKyAgICAkYXNfZWNobyAiJGFjX2NzX3VzYWdl IjsgZXhpdCA7OwotKyAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwgLS1xdWkgfCAt LXF1IHwgLS1xIFwKLSsgIHwgLXNpbGVudCB8IC0tc2lsZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8 IC0tc2lsIHwgLS1zaSB8IC0tcykKLSsgICAgYWNfY3Nfc2lsZW50PTogOzsKLSsKLSsgICMgVGhp cyBpcyBhbiBlcnJvci4KLSsgIC0qKSB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiB1bnJlY29n bml6ZWQgb3B0aW9uOiAkMQotK1RyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24u IiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0gOzsKLSsKLSsgICopIGFjX2NvbmZp Z190YXJnZXRzPSIkYWNfY29uZmlnX3RhcmdldHMgJDEiCi0rICAgICBhY19uZWVkX2RlZmF1bHRz PWZhbHNlIDs7Ci0rCi0rICBlc2FjCi0rICBzaGlmdAotK2RvbmUKLSsKLSthY19jb25maWd1cmVf ZXh0cmFfYXJncz0KLSsKLStpZiAkYWNfY3Nfc2lsZW50OyB0aGVuCi0rICBleGVjIDY+L2Rldi9u dWxsCi0rICBhY19jb25maWd1cmVfZXh0cmFfYXJncz0iJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdz IC0tc2lsZW50IgotK2ZpCi0rCi0rX0FDRU9GCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNF T0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0raWYgXCRhY19jc19yZWNoZWNrOyB0aGVuCi0rICBzZXQg WCAnJFNIRUxMJyAnJDAnICRhY19jb25maWd1cmVfYXJncyBcJGFjX2NvbmZpZ3VyZV9leHRyYV9h cmdzIC0tbm8tY3JlYXRlIC0tbm8tcmVjdXJzaW9uCi0rICBzaGlmdAotKyAgXCRhc19lY2hvICJy dW5uaW5nIENPTkZJR19TSEVMTD0kU0hFTEwgXCQqIiA+JjYKLSsgIENPTkZJR19TSEVMTD0nJFNI RUxMJwotKyAgZXhwb3J0IENPTkZJR19TSEVMTAotKyAgZXhlYyAiXCRAIgotK2ZpCi0rCi0rX0FD RU9GCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQot K2V4ZWMgNT4+Y29uZmlnLmxvZwotK3sKLSsgIGVjaG8KLSsgIHNlZCAnaDtzLy4vLS9nO3MvXi4u Li8jIyAvO3MvLi4uJC8gIyMvO3A7eDtwO3gnIDw8X0FTQk9YCi0rIyMgUnVubmluZyAkYXNfbWUu ICMjCi0rX0FTQk9YCi0rICAkYXNfZWNobyAiJGFjX2xvZyIKLSt9ID4mNQotKwotK19BQ0VPRgot K2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKyMKLSsj IElOSVQtQ09NTUFORFMKLSsjCi0rQU1ERVBfVFJVRT0iJEFNREVQX1RSVUUiIGFjX2F1eF9kaXI9 IiRhY19hdXhfZGlyIgotKwotKwotKyMgVGhlIEhQLVVYIGtzaCBhbmQgUE9TSVggc2hlbGwgcHJp bnQgdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gc3Rkb3V0Ci0rIyBpZiBDRFBBVEggaXMgc2V0Lgot Kyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgKLSsKLStzZWRf cXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3QnCi0rZG91YmxlX3F1b3RlX3N1YnN0PSckZG91 YmxlX3F1b3RlX3N1YnN0JwotK2RlbGF5X3ZhcmlhYmxlX3N1YnN0PSckZGVsYXlfdmFyaWFibGVf c3Vic3QnCi0rZW5hYmxlX3NoYXJlZD0nYCRFQ0hPICJYJGVuYWJsZV9zaGFyZWQiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStlbmFibGVfc3RhdGljPSdgJEVDSE8g IlgkZW5hYmxlX3N0YXRpYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK21hY3JvX3ZlcnNpb249J2AkRUNITyAiWCRtYWNyb192ZXJzaW9uIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbWFjcm9fcmV2aXNpb249J2AkRUNITyAiWCRt YWNyb19yZXZpc2lvbiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K3BpY19tb2RlPSdgJEVDSE8gIlgkcGljX21vZGUiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLStlbmFibGVfZmFzdF9pbnN0YWxsPSdgJEVDSE8gIlgkZW5hYmxlX2Zh c3RfaW5zdGFsbCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hv c3RfYWxpYXM9J2AkRUNITyAiWCRob3N0X2FsaWFzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCi0raG9zdD0nYCRFQ0hPICJYJGhvc3QiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStob3N0X29zPSdgJEVDSE8gIlgkaG9zdF9vcyIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2J1aWxkX2FsaWFzPSdgJEVD SE8gIlgkYnVpbGRfYWxpYXMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKLStidWlsZD0nYCRFQ0hPICJYJGJ1aWxkIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rYnVpbGRfb3M9J2AkRUNITyAiWCRidWlsZF9vcyIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK1NFRD0nYCRFQ0hPICJYJFNFRCIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK1hzZWQ9J2AkRUNITyAiWCRYc2Vk IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rR1JFUD0nYCRFQ0hP ICJYJEdSRVAiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStFR1JF UD0nYCRFQ0hPICJYJEVHUkVQIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rRkdSRVA9J2AkRUNITyAiWCRGR1JFUCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJwotK0xEPSdgJEVDSE8gIlgkTEQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKLStOTT0nYCRFQ0hPICJYJE5NIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rTE5fUz0nYCRFQ0hPICJYJExOX1MiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSttYXhfY21kX2xlbj0nYCRFQ0hPICJYJG1h eF9jbWRfbGVuIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYWNf b2JqZXh0PSdgJEVDSE8gIlgkYWNfb2JqZXh0IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rZXhlZXh0PSdgJEVDSE8gIlgkZXhlZXh0IiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRfdW5zZXQ9J2AkRUNITyAiWCRsdF91bnNldCIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0X1NQMk5MPSdgJEVD SE8gIlgkbHRfU1AyTkwiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStsdF9OTDJTUD0nYCRFQ0hPICJYJGx0X05MMlNQIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCi0rcmVsb2FkX2ZsYWc9J2AkRUNITyAiWCRyZWxvYWRfZmxhZyIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3JlbG9hZF9jbWRzPSdgJEVD SE8gIlgkcmVsb2FkX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKLStPQkpEVU1QPSdgJEVDSE8gIlgkT0JKRFVNUCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJwotK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdgJEVDSE8gIlgkZGVwbGli c19jaGVja19tZXRob2QiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStmaWxlX21hZ2ljX2NtZD0nYCRFQ0hPICJYJGZpbGVfbWFnaWNfY21kIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rQVI9J2AkRUNITyAiWCRBUiIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0FSX0ZMQUdTPSdgJEVDSE8gIlgkQVJf RkxBR1MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStTVFJJUD0n YCRFQ0hPICJYJFNUUklQIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0rUkFOTElCPSdgJEVDSE8gIlgkUkFOTElCIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rb2xkX3Bvc3RpbnN0YWxsX2NtZHM9J2AkRUNITyAiWCRvbGRfcG9zdGlu c3RhbGxfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK29s ZF9wb3N0dW5pbnN0YWxsX2NtZHM9J2AkRUNITyAiWCRvbGRfcG9zdHVuaW5zdGFsbF9jbWRzIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX2FyY2hpdmVfY21k cz0nYCRFQ0hPICJYJG9sZF9hcmNoaXZlX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLStDQz0nYCRFQ0hPICJYJENDIiB8ICRYc2VkIC1lICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCi0rQ0ZMQUdTPSdgJEVDSE8gIlgkQ0ZMQUdTIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rY29tcGlsZXI9J2AkRUNITyAiWCRjb21w aWxlciIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0dDQz0nYCRF Q0hPICJYJEdDQyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9J2AkRUNITyAiWCRsdF9jdl9zeXNfZ2xvYmFsX3N5 bWJvbF9waXBlIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9J2AkRUNITyAiWCRsdF9jdl9zeXNfZ2xvYmFs X3N5bWJvbF90b19jZGVjbCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSdgJEVDSE8gIlgk bHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19j X25hbWVfYWRkcmVzc19saWJfcHJlZml4PSdgJEVDSE8gIlgkbHRfY3Zfc3lzX2dsb2JhbF9zeW1i b2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJwotK29iamRpcj0nYCRFQ0hPICJYJG9iamRpciIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK1NIRUxMPSdgJEVDSE8gIlgkU0hFTEwiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStFQ0hPPSdgJEVDSE8gIlgk RUNITyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK01BR0lDX0NN RD0nYCRFQ0hPICJYJE1BR0lDX0NNRCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnPSdgJEVDSE8gIlgkbHRf cHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWciIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLStsdF9wcm9nX2NvbXBpbGVyX3dsPSdgJEVDSE8gIlgkbHRfcHJvZ19j b21waWxlcl93bCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0 X3Byb2dfY29tcGlsZXJfcGljPSdgJEVDSE8gIlgkbHRfcHJvZ19jb21waWxlcl9waWMiIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYz0nYCRFQ0hPICJYJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRfY3ZfcHJvZ19jb21waWxlcl9jX289J2AkRUNI TyAiWCRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJwotK25lZWRfbG9ja3M9J2AkRUNITyAiWCRuZWVkX2xvY2tzIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rRFNZTVVUSUw9J2AkRUNITyAiWCRE U1lNVVRJTCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK05NRURJ VD0nYCRFQ0hPICJYJE5NRURJVCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK0xJUE89J2AkRUNITyAiWCRMSVBPIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rT1RPT0w9J2AkRUNITyAiWCRPVE9PTCIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK09UT09MNjQ9J2AkRUNITyAiWCRPVE9PTDY0IiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbGliZXh0PSdgJEVDSE8gIlgk bGliZXh0IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rc2hyZXh0 X2NtZHM9J2AkRUNITyAiWCRzaHJleHRfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJwotK2V4dHJhY3RfZXhwc3ltc19jbWRzPSdgJEVDSE8gIlgkZXh0cmFjdF9l eHBzeW1zX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSth cmNoaXZlX2NtZHNfbmVlZF9sYz0nYCRFQ0hPICJYJGFyY2hpdmVfY21kc19uZWVkX2xjIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZW5hYmxlX3NoYXJlZF93aXRo X3N0YXRpY19ydW50aW1lcz0nYCRFQ0hPICJYJGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVu dGltZXMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStleHBvcnRf ZHluYW1pY19mbGFnX3NwZWM9J2AkRUNITyAiWCRleHBvcnRfZHluYW1pY19mbGFnX3NwZWMiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSt3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYz0nYCRFQ0hPICJYJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rY29tcGlsZXJfbmVlZHNfb2JqZWN0PSdgJEVD SE8gIlgkY29tcGlsZXJfbmVlZHNfb2JqZWN0IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0nYCRFQ0hPICJYJG9sZF9h cmNoaXZlX2Zyb21fbmV3X2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLStvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0nYCRFQ0hPICJYJG9sZF9hcmNo aXZlX2Zyb21fZXhwc3ltc19jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCi0rYXJjaGl2ZV9jbWRzPSdgJEVDSE8gIlgkYXJjaGl2ZV9jbWRzIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYXJjaGl2ZV9leHBzeW1fY21kcz0nYCRF Q0hPICJYJGFyY2hpdmVfZXhwc3ltX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKLSttb2R1bGVfY21kcz0nYCRFQ0hPICJYJG1vZHVsZV9jbWRzIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbW9kdWxlX2V4cHN5bV9jbWRzPSdg JEVDSE8gIlgkbW9kdWxlX2V4cHN5bV9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rd2l0aF9nbnVfbGQ9J2AkRUNITyAiWCR3aXRoX2dudV9sZCIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2FsbG93X3VuZGVmaW5lZF9mbGFn PSdgJEVDSE8gIlgkYWxsb3dfdW5kZWZpbmVkX2ZsYWciIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKLStub191bmRlZmluZWRfZmxhZz0nYCRFQ0hPICJYJG5vX3VuZGVm aW5lZF9mbGFnIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nYCRFQ0hPICJYJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX2xkPSdgJEVDSE8gIlgkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19s ZCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3I9J2AkRUNITyAiWCRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfZGlyZWN0PSdg JEVDSE8gIlgkaGFyZGNvZGVfZGlyZWN0IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0raGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPSdgJEVDSE8gIlgkaGFyZGNvZGVf ZGlyZWN0X2Fic29sdXRlIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0raGFyZGNvZGVfbWludXNfTD0nYCRFQ0hPICJYJGhhcmRjb2RlX21pbnVzX0wiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9zaGxpYnBhdGhfdmFy PSdgJEVDSE8gIlgkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2F1dG9tYXRpYz0nYCRFQ0hPICJYJGhhcmRj b2RlX2F1dG9tYXRpYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K2luaGVyaXRfcnBhdGg9J2AkRUNITyAiWCRpbmhlcml0X3JwYXRoIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbGlua19hbGxfZGVwbGlicz0nYCRFQ0hPICJYJGxp bmtfYWxsX2RlcGxpYnMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStmaXhfc3JjZmlsZV9wYXRoPSdgJEVDSE8gIlgkZml4X3NyY2ZpbGVfcGF0aCIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2Fsd2F5c19leHBvcnRfc3ltYm9scz0n YCRFQ0hPICJYJGFsd2F5c19leHBvcnRfc3ltYm9scyIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJwotK2V4cG9ydF9zeW1ib2xzX2NtZHM9J2AkRUNITyAiWCRleHBvcnRf c3ltYm9sc19jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0r ZXhjbHVkZV9leHBzeW1zPSdgJEVDSE8gIlgkZXhjbHVkZV9leHBzeW1zIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raW5jbHVkZV9leHBzeW1zPSdgJEVDSE8gIlgk aW5jbHVkZV9leHBzeW1zIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0rcHJlbGlua19jbWRzPSdgJEVDSE8gIlgkcHJlbGlua19jbWRzIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZmlsZV9saXN0X3NwZWM9J2AkRUNITyAiWCRmaWxl X2xpc3Rfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3Zh cmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSdgJEVDSE8gIlgkdmFyaWFibGVzX3NhdmVkX2Zvcl9y ZWxpbmsiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStuZWVkX2xp Yl9wcmVmaXg9J2AkRUNITyAiWCRuZWVkX2xpYl9wcmVmaXgiIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStuZWVkX3ZlcnNpb249J2AkRUNITyAiWCRuZWVkX3ZlcnNp b24iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSt2ZXJzaW9uX3R5 cGU9J2AkRUNITyAiWCR2ZXJzaW9uX3R5cGUiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKLStydW5wYXRoX3Zhcj0nYCRFQ0hPICJYJHJ1bnBhdGhfdmFyIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rc2hsaWJwYXRoX3Zhcj0nYCRFQ0hP ICJYJHNobGlicGF0aF92YXIiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKLStzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9J2AkRUNITyAiWCRzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStsaWJuYW1lX3NwZWM9J2AkRUNITyAiWCRsaWJuYW1lX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsaWJyYXJ5X25hbWVzX3NwZWM9J2AkRUNITyAiWCRs aWJyYXJ5X25hbWVzX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKLStzb25hbWVfc3BlYz0nYCRFQ0hPICJYJHNvbmFtZV9zcGVjIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcG9zdGluc3RhbGxfY21kcz0nYCRFQ0hPICJYJHBv c3RpbnN0YWxsX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStwb3N0dW5pbnN0YWxsX2NtZHM9J2AkRUNITyAiWCRwb3N0dW5pbnN0YWxsX2NtZHMiIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStmaW5pc2hfY21kcz0nYCRFQ0hP ICJYJGZpbmlzaF9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0rZmluaXNoX2V2YWw9J2AkRUNITyAiWCRmaW5pc2hfZXZhbCIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2ludG9fbGlicz0nYCRFQ0hPICJYJGhh cmRjb2RlX2ludG9fbGlicyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nYCRFQ0hPICJYJHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3N5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjPSdgJEVDSE8gIlgkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3Nw ZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9h Y3Rpb249J2AkRUNITyAiWCRoYXJkY29kZV9hY3Rpb24iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKLStlbmFibGVfZGxvcGVuPSdgJEVDSE8gIlgkZW5hYmxlX2Rsb3Bl biIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2VuYWJsZV9kbG9w ZW5fc2VsZj0nYCRFQ0hPICJYJGVuYWJsZV9kbG9wZW5fc2VsZiIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2VuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9J2AkRUNI TyAiWCRlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCi0rb2xkX3N0cmlwbGliPSdgJEVDSE8gIlgkb2xkX3N0cmlwbGliIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rc3RyaXBsaWI9J2AkRUNI TyAiWCRzdHJpcGxpYiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycz0nYCRFQ0hPICJYJGNvbXBpbGVyX2xpYl9zZWFyY2hf ZGlycyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3ByZWRlcF9v YmplY3RzPSdgJEVDSE8gIlgkcHJlZGVwX29iamVjdHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKLStwb3N0ZGVwX29iamVjdHM9J2AkRUNITyAiWCRwb3N0ZGVwX29i amVjdHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStwcmVkZXBz PSdgJEVDSE8gIlgkcHJlZGVwcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK3Bvc3RkZXBzPSdgJEVDSE8gIlgkcG9zdGRlcHMiIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStjb21waWxlcl9saWJfc2VhcmNoX3BhdGg9J2AkRUNITyAi WCRjb21waWxlcl9saWJfc2VhcmNoX3BhdGgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKLStMRF9DWFg9J2AkRUNITyAiWCRMRF9DWFgiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nYCRFQ0hPICJY JG9sZF9hcmNoaXZlX2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCi0rY29tcGlsZXJfQ1hYPSdgJEVDSE8gIlgkY29tcGlsZXJfQ1hYIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rR0NDX0NYWD0nYCRFQ0hPICJYJEdDQ19D WFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9wcm9nX2Nv bXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFg9J2AkRUNITyAiWCRsdF9wcm9nX2NvbXBpbGVyX25v X2J1aWx0aW5fZmxhZ19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKLStsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nYCRFQ0hPICJYJGx0X3Byb2dfY29tcGlsZXJf d2xfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRfcHJv Z19jb21waWxlcl9waWNfQ1hYPSdgJEVDSE8gIlgkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRfcHJvZ19jb21waWxl cl9zdGF0aWNfQ1hYPSdgJEVDSE8gIlgkbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRfY3ZfcHJvZ19jb21waWxl cl9jX29fQ1hYPSdgJEVDSE8gIlgkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYXJjaGl2ZV9jbWRzX25lZWRfbGNf Q1hYPSdgJEVDSE8gIlgkYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50 aW1lc19DWFg9J2AkRUNITyAiWCRlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0NY WCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4cG9ydF9keW5h bWljX2ZsYWdfc3BlY19DWFg9J2AkRUNITyAiWCRleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hY IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWNfQ1hYPSdgJEVDSE8gIlgkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rY29tcGlsZXJfbmVlZHNf b2JqZWN0X0NYWD0nYCRFQ0hPICJYJGNvbXBpbGVyX25lZWRzX29iamVjdF9DWFgiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStvbGRfYXJjaGl2ZV9mcm9tX25ld19j bWRzX0NYWD0nYCRFQ0hPICJYJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfQ1hYIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX2FyY2hpdmVfZnJvbV9leHBz eW1zX2NtZHNfQ1hYPSdgJEVDSE8gIlgkb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfQ1hY IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYXJjaGl2ZV9jbWRz X0NYWD0nYCRFQ0hPICJYJGFyY2hpdmVfY21kc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKLSthcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nYCRFQ0hPICJYJGFy Y2hpdmVfZXhwc3ltX2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCi0rbW9kdWxlX2NtZHNfQ1hYPSdgJEVDSE8gIlgkbW9kdWxlX2NtZHNfQ1hYIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbW9kdWxlX2V4cHN5bV9jbWRz X0NYWD0nYCRFQ0hPICJYJG1vZHVsZV9leHBzeW1fY21kc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSt3aXRoX2dudV9sZF9DWFg9J2AkRUNITyAiWCR3aXRo X2dudV9sZF9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSth bGxvd191bmRlZmluZWRfZmxhZ19DWFg9J2AkRUNITyAiWCRhbGxvd191bmRlZmluZWRfZmxhZ19D WFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStub191bmRlZmlu ZWRfZmxhZ19DWFg9J2AkRUNITyAiWCRub191bmRlZmluZWRfZmxhZ19DWFgiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0NYWD0nYCRFQ0hPICJYJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19sZF9DWFg9J2AkRUNITyAiWCRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0NYWCIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3JfQ1hYPSdgJEVDSE8gIlgkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFgiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9kaXJlY3Rf Q1hYPSdgJEVDSE8gIlgkaGFyZGNvZGVfZGlyZWN0X0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFg9J2AkRUNI TyAiWCRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfbWludXNfTF9DWFg9J2AkRUNITyAiWCRoYXJk Y29kZV9taW51c19MX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK2hhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPSdgJEVDSE8gIlgkaGFyZGNvZGVfc2hsaWJw YXRoX3Zhcl9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSto YXJkY29kZV9hdXRvbWF0aWNfQ1hYPSdgJEVDSE8gIlgkaGFyZGNvZGVfYXV0b21hdGljX0NYWCIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2luaGVyaXRfcnBhdGhf Q1hYPSdgJEVDSE8gIlgkaW5oZXJpdF9ycGF0aF9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKLStsaW5rX2FsbF9kZXBsaWJzX0NYWD0nYCRFQ0hPICJYJGxpbmtf YWxsX2RlcGxpYnNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0rZml4X3NyY2ZpbGVfcGF0aF9DWFg9J2AkRUNITyAiWCRmaXhfc3JjZmlsZV9wYXRoX0NYWCIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2Fsd2F5c19leHBvcnRf c3ltYm9sc19DWFg9J2AkRUNITyAiWCRhbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZXhwb3J0X3N5bWJvbHNfY21kc19D WFg9J2AkRUNITyAiWCRleHBvcnRfc3ltYm9sc19jbWRzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4Y2x1ZGVfZXhwc3ltc19DWFg9J2AkRUNITyAiWCRl eGNsdWRlX2V4cHN5bXNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0raW5jbHVkZV9leHBzeW1zX0NYWD0nYCRFQ0hPICJYJGluY2x1ZGVfZXhwc3ltc19DWFgi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStwcmVsaW5rX2NtZHNf Q1hYPSdgJEVDSE8gIlgkcHJlbGlua19jbWRzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJwotK2ZpbGVfbGlzdF9zcGVjX0NYWD0nYCRFQ0hPICJYJGZpbGVfbGlz dF9zcGVjX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hh cmRjb2RlX2FjdGlvbl9DWFg9J2AkRUNITyAiWCRoYXJkY29kZV9hY3Rpb25fQ1hYIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rY29tcGlsZXJfbGliX3NlYXJjaF9k aXJzX0NYWD0nYCRFQ0hPICJYJGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19DWFgiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStwcmVkZXBfb2JqZWN0c19DWFg9J2Ak RUNITyAiWCRwcmVkZXBfb2JqZWN0c19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKLStwb3N0ZGVwX29iamVjdHNfQ1hYPSdgJEVDSE8gIlgkcG9zdGRlcF9vYmpl Y3RzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3ByZWRl cHNfQ1hYPSdgJEVDSE8gIlgkcHJlZGVwc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLStwb3N0ZGVwc19DWFg9J2AkRUNITyAiWCRwb3N0ZGVwc19DWFgiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStjb21waWxlcl9saWJfc2Vh cmNoX3BhdGhfQ1hYPSdgJEVDSE8gIlgkY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWCIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotKwotK0xUQ0M9JyRMVENDJwot K0xUQ0ZMQUdTPSckTFRDRkxBR1MnCi0rY29tcGlsZXI9JyRjb21waWxlcl9ERUZBVUxUJwotKwot KyMgUXVvdGUgZXZhbGVkIHN0cmluZ3MuCi0rZm9yIHZhciBpbiBTRUQgXAotK0dSRVAgXAotK0VH UkVQIFwKLStGR1JFUCBcCi0rTEQgXAotK05NIFwKLStMTl9TIFwKLStsdF9TUDJOTCBcCi0rbHRf TkwyU1AgXAotK3JlbG9hZF9mbGFnIFwKLStPQkpEVU1QIFwKLStkZXBsaWJzX2NoZWNrX21ldGhv ZCBcCi0rZmlsZV9tYWdpY19jbWQgXAotK0FSIFwKLStBUl9GTEFHUyBcCi0rU1RSSVAgXAotK1JB TkxJQiBcCi0rQ0MgXAotK0NGTEFHUyBcCi0rY29tcGlsZXIgXAotK2x0X2N2X3N5c19nbG9iYWxf c3ltYm9sX3BpcGUgXAotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIFwKLStsdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyBcCi0rbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeCBcCi0rU0hFTEwgXAotK0VDSE8g XAotK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnIFwKLStsdF9wcm9nX2NvbXBpbGVy X3dsIFwKLStsdF9wcm9nX2NvbXBpbGVyX3BpYyBcCi0rbHRfcHJvZ19jb21waWxlcl9zdGF0aWMg XAotK2x0X2N2X3Byb2dfY29tcGlsZXJfY19vIFwKLStuZWVkX2xvY2tzIFwKLStEU1lNVVRJTCBc Ci0rTk1FRElUIFwKLStMSVBPIFwKLStPVE9PTCBcCi0rT1RPT0w2NCBcCi0rc2hyZXh0X2NtZHMg XAotK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyBcCi0rd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMg XAotK2NvbXBpbGVyX25lZWRzX29iamVjdCBcCi0rd2l0aF9nbnVfbGQgXAotK2FsbG93X3VuZGVm aW5lZF9mbGFnIFwKLStub191bmRlZmluZWRfZmxhZyBcCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYyBcCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCBcCi0raGFyZGNvZGVfbGliZGly X3NlcGFyYXRvciBcCi0rZml4X3NyY2ZpbGVfcGF0aCBcCi0rZXhjbHVkZV9leHBzeW1zIFwKLStp bmNsdWRlX2V4cHN5bXMgXAotK2ZpbGVfbGlzdF9zcGVjIFwKLSt2YXJpYWJsZXNfc2F2ZWRfZm9y X3JlbGluayBcCi0rbGlibmFtZV9zcGVjIFwKLStsaWJyYXJ5X25hbWVzX3NwZWMgXAotK3NvbmFt ZV9zcGVjIFwKLStmaW5pc2hfZXZhbCBcCi0rb2xkX3N0cmlwbGliIFwKLStzdHJpcGxpYiBcCi0r Y29tcGlsZXJfbGliX3NlYXJjaF9kaXJzIFwKLStwcmVkZXBfb2JqZWN0cyBcCi0rcG9zdGRlcF9v YmplY3RzIFwKLStwcmVkZXBzIFwKLStwb3N0ZGVwcyBcCi0rY29tcGlsZXJfbGliX3NlYXJjaF9w YXRoIFwKLStMRF9DWFggXAotK2NvbXBpbGVyX0NYWCBcCi0rbHRfcHJvZ19jb21waWxlcl9ub19i dWlsdGluX2ZsYWdfQ1hYIFwKLStsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWCBcCi0rbHRfcHJvZ19j b21waWxlcl9waWNfQ1hYIFwKLStsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFggXAotK2x0X2N2 X3Byb2dfY29tcGlsZXJfY19vX0NYWCBcCi0rZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWCBc Ci0rd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYIFwKLStjb21waWxlcl9uZWVkc19vYmplY3Rf Q1hYIFwKLSt3aXRoX2dudV9sZF9DWFggXAotK2FsbG93X3VuZGVmaW5lZF9mbGFnX0NYWCBcCi0r bm9fdW5kZWZpbmVkX2ZsYWdfQ1hYIFwKLStoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWCBc Ci0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9DWFggXAotK2hhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3JfQ1hYIFwKLStmaXhfc3JjZmlsZV9wYXRoX0NYWCBcCi0rZXhjbHVkZV9leHBzeW1z X0NYWCBcCi0raW5jbHVkZV9leHBzeW1zX0NYWCBcCi0rZmlsZV9saXN0X3NwZWNfQ1hYIFwKLStj b21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYIFwKLStwcmVkZXBfb2JqZWN0c19DWFggXAotK3Bv c3RkZXBfb2JqZWN0c19DWFggXAotK3ByZWRlcHNfQ1hYIFwKLStwb3N0ZGVwc19DWFggXAotK2Nv bXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg7IGRvCi0rICAgIGNhc2UgXGBldmFsIFxcXFxcJEVD SE8gIlhcXFxcXCRcJHZhciJcYCBpbgotKyAgICAqW1xcXFxcXFxgXFwiXFxcJF0qKQotKyAgICAg IGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiWFxcXCRcJHZhclxcIiB8IFxc XCRYc2VkIC1lIFxcIlxcXCRzZWRfcXVvdGVfc3Vic3RcXCJcXFxgXFxcXFxcIiIKLSsgICAgICA7 OwotKyAgICAqKQotKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFwkXCR2YXJcXFxcXFwi IgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLStkb25lCi0rCi0rIyBEb3VibGUtcXVvdGUgZG91Ymxl LWV2YWxlZCBzdHJpbmdzLgotK2ZvciB2YXIgaW4gcmVsb2FkX2NtZHMgXAotK29sZF9wb3N0aW5z dGFsbF9jbWRzIFwKLStvbGRfcG9zdHVuaW5zdGFsbF9jbWRzIFwKLStvbGRfYXJjaGl2ZV9jbWRz IFwKLStleHRyYWN0X2V4cHN5bXNfY21kcyBcCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcyBc Ci0rb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMgXAotK2FyY2hpdmVfY21kcyBcCi0rYXJj aGl2ZV9leHBzeW1fY21kcyBcCi0rbW9kdWxlX2NtZHMgXAotK21vZHVsZV9leHBzeW1fY21kcyBc Ci0rZXhwb3J0X3N5bWJvbHNfY21kcyBcCi0rcHJlbGlua19jbWRzIFwKLStwb3N0aW5zdGFsbF9j bWRzIFwKLStwb3N0dW5pbnN0YWxsX2NtZHMgXAotK2ZpbmlzaF9jbWRzIFwKLStzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWMgXAotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIFwKLStvbGRfYXJj aGl2ZV9jbWRzX0NYWCBcCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19DWFggXAotK29sZF9h cmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0NYWCBcCi0rYXJjaGl2ZV9jbWRzX0NYWCBcCi0rYXJj aGl2ZV9leHBzeW1fY21kc19DWFggXAotK21vZHVsZV9jbWRzX0NYWCBcCi0rbW9kdWxlX2V4cHN5 bV9jbWRzX0NYWCBcCi0rZXhwb3J0X3N5bWJvbHNfY21kc19DWFggXAotK3ByZWxpbmtfY21kc19D WFg7IGRvCi0rICAgIGNhc2UgXGBldmFsIFxcXFxcJEVDSE8gIlhcXFxcXCRcJHZhciJcYCBpbgot KyAgICAqW1xcXFxcXFxgXFwiXFxcJF0qKQotKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJc XFxgXFxcJEVDSE8gXFwiWFxcXCRcJHZhclxcIiB8IFxcXCRYc2VkIC1lIFxcIlxcXCRkb3VibGVf cXVvdGVfc3Vic3RcXCIgLWUgXFwiXFxcJHNlZF9xdW90ZV9zdWJzdFxcIiAtZSBcXCJcXFwkZGVs YXlfdmFyaWFibGVfc3Vic3RcXCJcXFxgXFxcXFxcIiIKLSsgICAgICA7OwotKyAgICAqKQotKyAg ICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFwkXCR2YXJcXFxcXFwiIgotKyAgICAgIDs7Ci0r ICAgIGVzYWMKLStkb25lCi0rCi0rIyBGaXgtdXAgZmFsbGJhY2sgZWNobyBpZiBpdCB3YXMgbWFu Z2xlZCBieSB0aGUgYWJvdmUgcXVvdGluZyBydWxlcy4KLStjYXNlIFwkbHRfRUNITyBpbgotKyon XFxcJDAgLS1mYWxsYmFjay1lY2hvIicpICBsdF9FQ0hPPVxgXCRFQ0hPICJYXCRsdF9FQ0hPIiB8 IFwkWHNlZCAtZSAncy9cXFxcXFxcXFxcXFxcXFwkMCAtLWZhbGxiYWNrLWVjaG8iXCQvXCQwIC0t ZmFsbGJhY2stZWNobyIvJ1xgCi0rICA7OwotK2VzYWMKLSsKLSthY19hdXhfZGlyPSckYWNfYXV4 X2RpcicKLSt4c2lfc2hlbGw9JyR4c2lfc2hlbGwnCi0rbHRfc2hlbGxfYXBwZW5kPSckbHRfc2hl bGxfYXBwZW5kJwotKwotKyMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNldCB0 aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIKLSsjIGNvbW1hbmRzIHRocm91Z2ggd2l0aG91dCBy ZW1vdmFsIG9mIFwgZXNjYXBlcyBJTklULgotK2lmIHRlc3QgLW4gIlwke1pTSF9WRVJTSU9OK3Nl dH0iIDsgdGhlbgotKyAgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZmkKLSsKLSsKLSsgICAgUEFD S0FHRT0nJFBBQ0tBR0UnCi0rICAgIFZFUlNJT049JyRWRVJTSU9OJwotKyAgICBUSU1FU1RBTVA9 JyRUSU1FU1RBTVAnCi0rICAgIFJNPSckUk0nCi0rICAgIG9maWxlPSckb2ZpbGUnCi0rCi0rCi0r Ci0rCi0rCi0rCi0rX0FDRU9GCi0rCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8 IGFjX3dyaXRlX2ZhaWw9MQotKwotKyMgSGFuZGxpbmcgb2YgYXJndW1lbnRzLgotK2ZvciBhY19j b25maWdfdGFyZ2V0IGluICRhY19jb25maWdfdGFyZ2V0cwotK2RvCi0rICBjYXNlICRhY19jb25m aWdfdGFyZ2V0IGluCi0rICAgICJzb2NpL2NvbmZpZy5oIikgQ09ORklHX0hFQURFUlM9IiRDT05G SUdfSEVBREVSUyBzb2NpL2NvbmZpZy5oIiA7OwotKyAgICAiZGVwZmlsZXMiKSBDT05GSUdfQ09N TUFORFM9IiRDT05GSUdfQ09NTUFORFMgZGVwZmlsZXMiIDs7Ci0rICAgICJsaWJ0b29sIikgQ09O RklHX0NPTU1BTkRTPSIkQ09ORklHX0NPTU1BTkRTIGxpYnRvb2wiIDs7Ci0rICAgICJNYWtlZmls ZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBNYWtlZmlsZSIgOzsKLSsgICAgInNvY2kt Y29uZmlnIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2ktY29uZmlnIiA7OwotKyAg ICAic29jaS5wYyIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpLnBjIiA7OwotKyAg ICAic29jaS5zcGVjIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kuc3BlYyIgOzsK LSsgICAgInNvY2kvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9N YWtlZmlsZSIgOzsKLSsgICAgInNvY2kvY29yZS9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENP TkZJR19GSUxFUyBzb2NpL2NvcmUvTWFrZWZpbGUiIDs7Ci0rICAgICJzb2NpL2NvcmUvdGVzdC9N YWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2NvcmUvdGVzdC9NYWtl ZmlsZSIgOzsKLSsgICAgInNvY2kvYmFja2VuZHMvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRD T05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvYmFja2Vu ZHMvbXlzcWwvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNr ZW5kcy9teXNxbC9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9N YWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL215c3Fs L3Rlc3QvTWFrZWZpbGUiIDs7Ci0rICAgICJzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZp bGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L01ha2VmaWxlIiA7OwotKyAgICAic29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZp bGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3Rlc3QvTWFrZWZpbGUiIDs7Ci0rICAgICJzb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZSIp IENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmls ZSIgOzsKLSsgICAgInNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUiKSBDT05GSUdf RklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZSIg OzsKLSsgICAgIm1hbi9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBtYW4v TWFrZWZpbGUiIDs7Ci0rICAgICJkb2MvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdf RklMRVMgZG9jL01ha2VmaWxlIiA7OwotKyAgICAiZG9jL2JhY2tlbmRzL01ha2VmaWxlIikgQ09O RklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGRvYy9iYWNrZW5kcy9NYWtlZmlsZSIgOzsKLSsgICAg ImJ1aWxkL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGJ1aWxkL01ha2Vm aWxlIiA7OwotKyAgICAiYnVpbGQvdW5peC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJ R19GSUxFUyBidWlsZC91bml4L01ha2VmaWxlIiA7OwotKyAgICAiYnVpbGQvbXN2YzgwL01ha2Vm aWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGJ1aWxkL21zdmM4MC9NYWtlZmlsZSIg OzsKLSsgICAgImJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05G SUdfRklMRVMgYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZSIgOzsKLSsgICAgImJ1aWxkL21zdmM4 MC9saWIvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgYnVpbGQvbXN2Yzgw L2xpYi9NYWtlZmlsZSIgOzsKLSsKLSsgICopIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBpbnZhbGlkIGFyZ3VtZW50OiAkYWNfY29uZmlnX3RhcmdldCIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgYXJndW1lbnQ6ICRhY19jb25maWdfdGFyZ2V0IiA+ JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7Ci0rICBlc2FjCi0rZG9uZQotKwot KwotKyMgSWYgdGhlIHVzZXIgZGlkIG5vdCB1c2UgdGhlIGFyZ3VtZW50cyB0byBzcGVjaWZ5IHRo ZSBpdGVtcyB0byBpbnN0YW50aWF0ZSwKLSsjIHRoZW4gdGhlIGVudnZhciBpbnRlcmZhY2UgaXMg dXNlZC4gIFNldCBvbmx5IHRob3NlIHRoYXQgYXJlIG5vdC4KLSsjIFdlIHVzZSB0aGUgbG9uZyBm b3JtIGZvciB0aGUgZGVmYXVsdCBhc3NpZ25tZW50IGJlY2F1c2Ugb2YgYW4gZXh0cmVtZWx5Ci0r IyBiaXphcnJlIGJ1ZyBvbiBTdW5PUyA0LjEuMy4KLStpZiAkYWNfbmVlZF9kZWZhdWx0czsgdGhl bgotKyAgdGVzdCAiJHtDT05GSUdfRklMRVMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0ZJTEVTPSRj b25maWdfZmlsZXMKLSsgIHRlc3QgIiR7Q09ORklHX0hFQURFUlMrc2V0fSIgPSBzZXQgfHwgQ09O RklHX0hFQURFUlM9JGNvbmZpZ19oZWFkZXJzCi0rICB0ZXN0ICIke0NPTkZJR19DT01NQU5EUytz ZXR9IiA9IHNldCB8fCBDT05GSUdfQ09NTUFORFM9JGNvbmZpZ19jb21tYW5kcwotK2ZpCi0rCi0r IyBIYXZlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgY29udmVuaWVuY2UuICBNYWtlIGl0IGlu IHRoZSBidWlsZCB0cmVlCi0rIyBzaW1wbHkgYmVjYXVzZSB0aGVyZSBpcyBubyByZWFzb24gYWdh aW5zdCBoYXZpbmcgaXQgaGVyZSwgYW5kIGluIGFkZGl0aW9uLAotKyMgY3JlYXRpbmcgYW5kIG1v dmluZyBmaWxlcyBmcm9tIC90bXAgY2FuIHNvbWV0aW1lcyBjYXVzZSBwcm9ibGVtcy4KLSsjIEhv b2sgZm9yIGl0cyByZW1vdmFsIHVubGVzcyBkZWJ1Z2dpbmcuCi0rIyBOb3RlIHRoYXQgdGhlcmUg aXMgYSBzbWFsbCB3aW5kb3cgaW4gd2hpY2ggdGhlIGRpcmVjdG9yeSB3aWxsIG5vdCBiZSBjbGVh bmVkOgotKyMgYWZ0ZXIgaXRzIGNyZWF0aW9uIGJ1dCBiZWZvcmUgaXRzIG5hbWUgaGFzIGJlZW4g YXNzaWduZWQgdG8gYCR0bXAnLgotKyRkZWJ1ZyB8fAotK3sKLSsgIHRtcD0KLSsgIHRyYXAgJ2V4 aXRfc3RhdHVzPSQ/Ci0rICB7IHRlc3QgLXogIiR0bXAiIHx8IHRlc3QgISAtZCAiJHRtcCIgfHwg cm0gLWZyICIkdG1wIjsgfSAmJiBleGl0ICRleGl0X3N0YXR1cwotKycgMAotKyAgdHJhcCAneyAo ZXhpdCAxKTsgZXhpdCAxOyB9JyAxIDIgMTMgMTUKLSt9Ci0rIyBDcmVhdGUgYSAoc2VjdXJlKSB0 bXAgZGlyZWN0b3J5IGZvciB0bXAgZmlsZXMuCi0rCi0rewotKyAgdG1wPWAodW1hc2sgMDc3ICYm IG1rdGVtcCAtZCAiLi9jb25mWFhYWFhYIikgMj4vZGV2L251bGxgICYmCi0rICB0ZXN0IC1uICIk dG1wIiAmJiB0ZXN0IC1kICIkdG1wIgotK30gIHx8Ci0rewotKyAgdG1wPS4vY29uZiQkLSRSQU5E T00KLSsgICh1bWFzayAwNzcgJiYgbWtkaXIgIiR0bXAiKQotK30gfHwKLSt7Ci0rICAgJGFzX2Vj aG8gIiRhc19tZTogY2Fubm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gLiIgPiYy Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci0rfQotKwotKyMgU2V0IHVwIHRoZSBzY3JpcHRz IGZvciBDT05GSUdfRklMRVMgc2VjdGlvbi4KLSsjIE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlbSBp ZiB0aGVyZSBhcmUgbm8gQ09ORklHX0ZJTEVTLgotKyMgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5j ZSB3aXRoIGAuL2NvbmZpZy5zdGF0dXMgY29uZmlnLmgnLgotK2lmIHRlc3QgLW4gIiRDT05GSUdf RklMRVMiOyB0aGVuCi0rCi0rCi0rYWNfY3I9Jw0nCi0rYWNfY3NfYXdrX2NyPWAkQVdLICdCRUdJ TiB7IHByaW50ICJhXHJiIiB9JyA8L2Rldi9udWxsIDI+L2Rldi9udWxsYAotK2lmIHRlc3QgIiRh Y19jc19hd2tfY3IiID0gImEke2FjX2NyfWIiOyB0aGVuCi0rICBhY19jc19hd2tfY3I9J1xccicK LStlbHNlCi0rICBhY19jc19hd2tfY3I9JGFjX2NyCi0rZmkKLSsKLStlY2hvICdCRUdJTiB7JyA+ IiR0bXAvc3ViczEuYXdrIiAmJgotK19BQ0VPRgotKwotKwotK3sKLSsgIGVjaG8gImNhdCA+Y29u ZiQkc3Vicy5hd2sgPDxfQUNFT0YiICYmCi0rICBlY2hvICIkYWNfc3Vic3RfdmFycyIgfCBzZWQg J3MvLiovJiEkJiRhY19kZWxpbS8nICYmCi0rICBlY2hvICJfQUNFT0YiCi0rfSA+Y29uZiQkc3Vi cy5zaCB8fAotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5v dCBtYWtlICRDT05GSUdfU1RBVFVTIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291 bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAx OyB9OyB9Ci0rYWNfZGVsaW1fbnVtPWBlY2hvICIkYWNfc3Vic3RfdmFycyIgfCBncmVwIC1jICck J2AKLSthY19kZWxpbT0nJSFfISMgJwotK2ZvciBhY19sYXN0X3RyeSBpbiBmYWxzZSBmYWxzZSBm YWxzZSBmYWxzZSBmYWxzZSA6OyBkbwotKyAgLiAuL2NvbmYkJHN1YnMuc2ggfHwKLSsgICAgeyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdf U1RBVFVTIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IG1ha2UgJENP TkZJR19TVEFUVVMiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rCi0rICBh Y19kZWxpbV9uPWBzZWQgLW4gInMvLiokYWNfZGVsaW1cJC9YL3AiIGNvbmYkJHN1YnMuYXdrIHwg Z3JlcCAtYyBYYAotKyAgaWYgdGVzdCAkYWNfZGVsaW1fbiA9ICRhY19kZWxpbV9udW07IHRoZW4K LSsgICAgYnJlYWsKLSsgIGVsaWYgJGFjX2xhc3RfdHJ5OyB0aGVuCi0rICAgIHsgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX1NUQVRVUyIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RB VFVTIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgZWxzZQotKyAgICBh Y19kZWxpbT0iJGFjX2RlbGltISRhY19kZWxpbSBfJGFjX2RlbGltISEgIgotKyAgZmkKLStkb25l Ci0rcm0gLWYgY29uZiQkc3Vicy5zaAotKwotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9G IHx8IGFjX3dyaXRlX2ZhaWw9MQotK2NhdCA+PiJcJHRtcC9zdWJzMS5hd2siIDw8XFxfQUNBV0sg JiYKLStfQUNFT0YKLStzZWQgLW4gJwotK2gKLStzL14vU1siLzsgcy8hLiovIl09LwotK3AKLStn Ci0rcy9eW14hXSohLy8KLSs6cmVwbAotK3QgcmVwbAotK3MvJyIkYWNfZGVsaW0iJyQvLwotK3Qg ZGVsaW0KLSs6bmwKLStoCi0rcy9cKC5cezE0OFx9XCkuKi9cMS8KLSt0IG1vcmUxCi0rcy9bIlxc XS9cXCYvZzsgcy9eLyIvOyBzLyQvXFxuIlxcLwotK3AKLStuCi0rYiByZXBsCi0rOm1vcmUxCi0r cy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIlxcLwotK3AKLStnCi0rcy8uXHsxNDhcfS8vCi0r dCBubAotKzpkZWxpbQotK2gKLStzL1woLlx7MTQ4XH1cKS4qL1wxLwotK3QgbW9yZTIKLStzL1si XFxdL1xcJi9nOyBzL14vIi87IHMvJC8iLwotK3AKLStiCi0rOm1vcmUyCi0rcy9bIlxcXS9cXCYv Zzsgcy9eLyIvOyBzLyQvIlxcLwotK3AKLStnCi0rcy8uXHsxNDhcfS8vCi0rdCBkZWxpbQotKycg PGNvbmYkJHN1YnMuYXdrIHwgc2VkICcKLSsvXlteIiJdL3sKLSsgIE4KLSsgIHMvXG4vLwotK30K LSsnID4+JENPTkZJR19TVEFUVVMgfHwgYWNfd3JpdGVfZmFpbD0xCi0rcm0gLWYgY29uZiQkc3Vi cy5hd2sKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEK LStfQUNBV0sKLStjYXQgPj4iXCR0bXAvc3ViczEuYXdrIiA8PF9BQ0FXSyAmJgotKyAgZm9yIChr ZXkgaW4gUykgU19pc19zZXRba2V5XSA9IDEKLSsgIEZTID0gIgciCi0rCi0rfQotK3sKLSsgIGxp bmUgPSAkIDAKLSsgIG5maWVsZHMgPSBzcGxpdChsaW5lLCBmaWVsZCwgIkAiKQotKyAgc3Vic3Rl ZCA9IDAKLSsgIGxlbiA9IGxlbmd0aChmaWVsZFsxXSkKLSsgIGZvciAoaSA9IDI7IGkgPCBuZmll bGRzOyBpKyspIHsKLSsgICAga2V5ID0gZmllbGRbaV0KLSsgICAga2V5bGVuID0gbGVuZ3RoKGtl eSkKLSsgICAgaWYgKFNfaXNfc2V0W2tleV0pIHsKLSsgICAgICB2YWx1ZSA9IFNba2V5XQotKyAg ICAgIGxpbmUgPSBzdWJzdHIobGluZSwgMSwgbGVuKSAiIiB2YWx1ZSAiIiBzdWJzdHIobGluZSwg bGVuICsga2V5bGVuICsgMykKLSsgICAgICBsZW4gKz0gbGVuZ3RoKHZhbHVlKSArIGxlbmd0aChm aWVsZFsrK2ldKQotKyAgICAgIHN1YnN0ZWQgPSAxCi0rICAgIH0gZWxzZQotKyAgICAgIGxlbiAr PSAxICsga2V5bGVuCi0rICB9Ci0rCi0rICBwcmludCBsaW5lCi0rfQotKwotK19BQ0FXSwotK19B Q0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEK LStpZiBzZWQgInMvJGFjX2NyLy8iIDwgL2Rldi9udWxsID4gL2Rldi9udWxsIDI+JjE7IHRoZW4K LSsgIHNlZCAicy8kYWNfY3JcJC8vOyBzLyRhY19jci8kYWNfY3NfYXdrX2NyL2ciCi0rZWxzZQot KyAgY2F0Ci0rZmkgPCAiJHRtcC9zdWJzMS5hd2siID4gIiR0bXAvc3Vicy5hd2siIFwKLSsgIHx8 IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3Qgc2V0dXAgY29u ZmlnIGZpbGVzIG1hY2hpbmVyeSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxk IG5vdCBzZXR1cCBjb25maWcgZmlsZXMgbWFjaGluZXJ5IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQotK19BQ0VPRgotKwotKyMgVlBBVEggbWF5IGNhdXNlIHRyb3VibGUgd2l0 aCBzb21lIG1ha2VzLCBzbyB3ZSByZW1vdmUgJChzcmNkaXIpLAotKyMgJHtzcmNkaXJ9IGFuZCBA c3JjZGlyQCBmcm9tIFZQQVRIIGlmIHNyY2RpciBpcyAiLiIsIHN0cmlwIGxlYWRpbmcgYW5kCi0r IyB0cmFpbGluZyBjb2xvbnMgYW5kIHRoZW4gcmVtb3ZlIHRoZSB3aG9sZSBsaW5lIGlmIFZQQVRI IGJlY29tZXMgZW1wdHkKLSsjIChhY3R1YWxseSB3ZSBsZWF2ZSBhbiBlbXB0eSBsaW5lIHRvIHBy ZXNlcnZlIGxpbmUgbnVtYmVycykuCi0raWYgdGVzdCAieCRzcmNkaXIiID0geC47IHRoZW4KLSsg IGFjX3Zwc3ViPScvXlsJIF0qVlBBVEhbCSBdKj0vewotK3MvOipcJChzcmNkaXIpOiovOi8KLStz LzoqXCR7c3JjZGlyfToqLzovCi0rcy86KkBzcmNkaXJAOiovOi8KLStzL15cKFtePV0qPVsJIF0q XCk6Ki9cMS8KLStzLzoqJC8vCi0rcy9eW149XSo9WwkgXSokLy8KLSt9JwotK2ZpCi0rCi0rY2F0 ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotK2ZpICMgdGVz dCAtbiAiJENPTkZJR19GSUxFUyIKLSsKLSsjIFNldCB1cCB0aGUgc2NyaXB0cyBmb3IgQ09ORklH X0hFQURFUlMgc2VjdGlvbi4KLSsjIE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlbSBpZiB0aGVyZSBh cmUgbm8gQ09ORklHX0hFQURFUlMuCi0rIyBUaGlzIGhhcHBlbnMgZm9yIGluc3RhbmNlIHdpdGgg YC4vY29uZmlnLnN0YXR1cyBNYWtlZmlsZScuCi0raWYgdGVzdCAtbiAiJENPTkZJR19IRUFERVJT IjsgdGhlbgotK2NhdCA+IiR0bXAvZGVmaW5lcy5hd2siIDw8XF9BQ0FXSyB8fAotK0JFR0lOIHsK LStfQUNFT0YKLSsKLSsjIFRyYW5zZm9ybSBjb25mZGVmcy5oIGludG8gYW4gYXdrIHNjcmlwdCBg ZGVmaW5lcy5hd2snLCBlbWJlZGRlZCBhcwotKyMgaGVyZS1kb2N1bWVudCBpbiBjb25maWcuc3Rh dHVzLCB0aGF0IHN1YnN0aXR1dGVzIHRoZSBwcm9wZXIgdmFsdWVzIGludG8KLSsjIGNvbmZpZy5o LmluIHRvIHByb2R1Y2UgY29uZmlnLmguCi0rCi0rIyBDcmVhdGUgYSBkZWxpbWl0ZXIgc3RyaW5n IHRoYXQgZG9lcyBub3QgZXhpc3QgaW4gY29uZmRlZnMuaCwgdG8gZWFzZQotKyMgaGFuZGxpbmcg b2YgbG9uZyBsaW5lcy4KLSthY19kZWxpbT0nJSFfISMgJwotK2ZvciBhY19sYXN0X3RyeSBpbiBm YWxzZSBmYWxzZSA6OyBkbwotKyAgYWNfdD1gc2VkIC1uICIvJGFjX2RlbGltL3AiIGNvbmZkZWZz LmhgCi0rICBpZiB0ZXN0IC16ICIkYWNfdCI7IHRoZW4KLSsgICAgYnJlYWsKLSsgIGVsaWYgJGFj X2xhc3RfdHJ5OyB0aGVuCi0rICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX0hFQURFUlMiID4mNQotKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX0hFQURFUlMiID4mMjt9Ci0rICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9Ci0rICBlbHNlCi0rICAgIGFjX2RlbGltPSIkYWNfZGVsaW0hJGFj X2RlbGltIF8kYWNfZGVsaW0hISAiCi0rICBmaQotK2RvbmUKLSsKLSsjIEZvciB0aGUgYXdrIHNj cmlwdCwgRCBpcyBhbiBhcnJheSBvZiBtYWNybyB2YWx1ZXMga2V5ZWQgYnkgbmFtZSwKLSsjIGxp a2V3aXNlIFAgY29udGFpbnMgbWFjcm8gcGFyYW1ldGVycyBpZiBhbnkuICBQcmVzZXJ2ZSBiYWNr c2xhc2gKLSsjIG5ld2xpbmUgc2VxdWVuY2VzLgotKwotK2FjX3dvcmRfcmU9W18kYXNfY3JfTGV0 dGVyc11bXyRhc19jcl9hbG51bV0qCi0rc2VkIC1uICcKLStzLy5cezE0OFx9LyYnIiRhY19kZWxp bSInL2cKLSt0IHJzZXQKLSs6cnNldAotK3MvXlsJIF0qI1sJIF0qZGVmaW5lWwkgXVsJIF0qLyAv Ci0rdCBkZWYKLStkCi0rOmRlZgotK3MvXFwkLy8KLSt0IGJzbmwKLStzL1siXFxdL1xcJi9nCi0r cy9eIFwoJyIkYWNfd29yZF9yZSInXClcKChbXigpXSopXClbCSBdKlwoLipcKS9QWyJcMSJdPSJc MiJcCi0rRFsiXDEiXT0iIFwzIi9wCi0rcy9eIFwoJyIkYWNfd29yZF9yZSInXClbCSBdKlwoLipc KS9EWyJcMSJdPSIgXDIiL3AKLStkCi0rOmJzbmwKLStzL1siXFxdL1xcJi9nCi0rcy9eIFwoJyIk YWNfd29yZF9yZSInXClcKChbXigpXSopXClbCSBdKlwoLipcKS9QWyJcMSJdPSJcMiJcCi0rRFsi XDEiXT0iIFwzXFxcXFxcbiJcXC9wCi0rdCBjb250Ci0rcy9eIFwoJyIkYWNfd29yZF9yZSInXClb CSBdKlwoLipcKS9EWyJcMSJdPSIgXDJcXFxcXFxuIlxcL3AKLSt0IGNvbnQKLStkCi0rOmNvbnQK LStuCi0rcy8uXHsxNDhcfS8mJyIkYWNfZGVsaW0iJy9nCi0rdCBjbGVhcgotKzpjbGVhcgotK3Mv XFwkLy8KLSt0IGJzbmxjCi0rcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIi9wCi0rZAotKzpi c25sYwotK3MvWyJcXF0vXFwmL2c7IHMvXi8iLzsgcy8kL1xcXFxcXG4iXFwvcAotK2IgY29udAot KycgPGNvbmZkZWZzLmggfCBzZWQgJwotK3MvJyIkYWNfZGVsaW0iJy8iXFxcCi0rIi9nJyA+PiRD T05GSUdfU1RBVFVTIHx8IGFjX3dyaXRlX2ZhaWw9MQotKwotK2NhdCA+PiRDT05GSUdfU1RBVFVT IDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKyAgZm9yIChrZXkgaW4gRCkgRF9pc19zZXRb a2V5XSA9IDEKLSsgIEZTID0gIgciCi0rfQotKy9eW1x0IF0qI1tcdCBdKihkZWZpbmV8dW5kZWYp W1x0IF0rJGFjX3dvcmRfcmUoW1x0IChdfFwkKS8gewotKyAgbGluZSA9IFwkIDAKLSsgIHNwbGl0 KGxpbmUsIGFyZywgIiAiKQotKyAgaWYgKGFyZ1sxXSA9PSAiIyIpIHsKLSsgICAgZGVmdW5kZWYg PSBhcmdbMl0KLSsgICAgbWFjMSA9IGFyZ1szXQotKyAgfSBlbHNlIHsKLSsgICAgZGVmdW5kZWYg PSBzdWJzdHIoYXJnWzFdLCAyKQotKyAgICBtYWMxID0gYXJnWzJdCi0rICB9Ci0rICBzcGxpdCht YWMxLCBtYWMyLCAiKCIpICMpCi0rICBtYWNybyA9IG1hYzJbMV0KLSsgIHByZWZpeCA9IHN1YnN0 cihsaW5lLCAxLCBpbmRleChsaW5lLCBkZWZ1bmRlZikgLSAxKQotKyAgaWYgKERfaXNfc2V0W21h Y3JvXSkgewotKyAgICAjIFByZXNlcnZlIHRoZSB3aGl0ZSBzcGFjZSBzdXJyb3VuZGluZyB0aGUg IiMiLgotKyAgICBwcmludCBwcmVmaXggImRlZmluZSIsIG1hY3JvIFBbbWFjcm9dIERbbWFjcm9d Ci0rICAgIG5leHQKLSsgIH0gZWxzZSB7Ci0rICAgICMgUmVwbGFjZSAjdW5kZWYgd2l0aCBjb21t ZW50cy4gIFRoaXMgaXMgbmVjZXNzYXJ5LCBmb3IgZXhhbXBsZSwKLSsgICAgIyBpbiB0aGUgY2Fz ZSBvZiBfUE9TSVhfU09VUkNFLCB3aGljaCBpcyBwcmVkZWZpbmVkIGFuZCByZXF1aXJlZAotKyAg ICAjIG9uIHNvbWUgc3lzdGVtcyB3aGVyZSBjb25maWd1cmUgd2lsbCBub3QgZGVjaWRlIHRvIGRl ZmluZSBpdC4KLSsgICAgaWYgKGRlZnVuZGVmID09ICJ1bmRlZiIpIHsKLSsgICAgICBwcmludCAi LyoiLCBwcmVmaXggZGVmdW5kZWYsIG1hY3JvLCAiKi8iCi0rICAgICAgbmV4dAotKyAgICB9Ci0r ICB9Ci0rfQotK3sgcHJpbnQgfQotK19BQ0FXSwotK19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RB VFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3Qgc2V0dXAgY29uZmlnIGhlYWRlcnMgbWFjaGluZXJ5 IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IHNldHVwIGNvbmZpZyBo ZWFkZXJzIG1hY2hpbmVyeSIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStm aSAjIHRlc3QgLW4gIiRDT05GSUdfSEVBREVSUyIKLSsKLSsKLStldmFsIHNldCBYICIgIDpGICRD T05GSUdfRklMRVMgIDpIICRDT05GSUdfSEVBREVSUyAgICA6QyAkQ09ORklHX0NPTU1BTkRTIgot K3NoaWZ0Ci0rZm9yIGFjX3RhZwotK2RvCi0rICBjYXNlICRhY190YWcgaW4KLSsgIDpbRkhMQ10p IGFjX21vZGU9JGFjX3RhZzsgY29udGludWU7OwotKyAgZXNhYwotKyAgY2FzZSAkYWNfbW9kZSRh Y190YWcgaW4KLSsgIDpbRkhMXSo6Kik7OwotKyAgOkwqIHwgOkMqOiopIHsgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlkIHRhZyAkYWNfdGFnIiA+JjUKLSskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogaW52YWxpZCB0YWcgJGFjX3RhZyIgPiYyO30KLSsgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH07OwotKyAgOltGSF0tKSBhY190YWc9LTotOzsKLSsgIDpbRkhdKikg YWNfdGFnPSRhY190YWc6JGFjX3RhZy5pbjs7Ci0rICBlc2FjCi0rICBhY19zYXZlX0lGUz0kSUZT Ci0rICBJRlM9OgotKyAgc2V0IHggJGFjX3RhZwotKyAgSUZTPSRhY19zYXZlX0lGUwotKyAgc2hp ZnQKLSsgIGFjX2ZpbGU9JDEKLSsgIHNoaWZ0Ci0rCi0rICBjYXNlICRhY19tb2RlIGluCi0rICA6 TCkgYWNfc291cmNlPSQxOzsKLSsgIDpbRkhdKQotKyAgICBhY19maWxlX2lucHV0cz0KLSsgICAg Zm9yIGFjX2YKLSsgICAgZG8KLSsgICAgICBjYXNlICRhY19mIGluCi0rICAgICAgLSkgYWNfZj0i JHRtcC9zdGRpbiI7OwotKyAgICAgICopICMgTG9vayBmb3IgdGhlIGZpbGUgZmlyc3QgaW4gdGhl IGJ1aWxkIHRyZWUsIHRoZW4gaW4gdGhlIHNvdXJjZSB0cmVlCi0rCSAjIChpZiB0aGUgcGF0aCBp cyBub3QgYWJzb2x1dGUpLiAgVGhlIGFic29sdXRlIHBhdGggY2Fubm90IGJlIERPUy1zdHlsZSwK LSsJICMgYmVjYXVzZSAkYWNfZiBjYW5ub3QgY29udGFpbiBgOicuCi0rCSB0ZXN0IC1mICIkYWNf ZiIgfHwKLSsJICAgY2FzZSAkYWNfZiBpbgotKwkgICBbXFwvJF0qKSBmYWxzZTs7Ci0rCSAgICop IHRlc3QgLWYgIiRzcmNkaXIvJGFjX2YiICYmIGFjX2Y9IiRzcmNkaXIvJGFjX2YiOzsKLSsJICAg ZXNhYyB8fAotKwkgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90 IGZpbmQgaW5wdXQgZmlsZTogJGFjX2YiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBj YW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkYWNfZiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH07OwotKyAgICAgIGVzYWMKLSsgICAgICBjYXNlICRhY19mIGluICpcJyopIGFjX2Y9 YCRhc19lY2hvICIkYWNfZiIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OyBlc2FjCi0rICAg ICAgYWNfZmlsZV9pbnB1dHM9IiRhY19maWxlX2lucHV0cyAnJGFjX2YnIgotKyAgICBkb25lCi0r Ci0rICAgICMgTGV0J3Mgc3RpbGwgcHJldGVuZCBpdCBpcyBgY29uZmlndXJlJyB3aGljaCBpbnN0 YW50aWF0ZXMgKGkuZS4sIGRvbid0Ci0rICAgICMgdXNlICRhc19tZSksIHBlb3BsZSB3b3VsZCBi ZSBzdXJwcmlzZWQgdG8gcmVhZDoKLSsgICAgIyAgICAvKiBjb25maWcuaC4gIEdlbmVyYXRlZCBi eSBjb25maWcuc3RhdHVzLiAgKi8KLSsgICAgY29uZmlndXJlX2lucHV0PSdHZW5lcmF0ZWQgZnJv bSAnYAotKwkgICRhc19lY2hvICIkKiIgfCBzZWQgJ3N8XlteOl0qL3x8O3N8OlteOl0qL3wsIHxn JwotKwlgJyBieSBjb25maWd1cmUuJwotKyAgICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0 aGVuCi0rICAgICAgY29uZmlndXJlX2lucHV0PSIkYWNfZmlsZS4gICRjb25maWd1cmVfaW5wdXQi Ci0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRhY19maWxlIiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBjcmVhdGluZyAkYWNfZmlsZSIgPiY2O30KLSsgICAgZmkK LSsgICAgIyBOZXV0cmFsaXplIHNwZWNpYWwgY2hhcmFjdGVycyBpbnRlcnByZXRlZCBieSBzZWQg aW4gcmVwbGFjZW1lbnQgc3RyaW5ncy4KLSsgICAgY2FzZSAkY29uZmlndXJlX2lucHV0IGluICMo Ci0rICAgICpcJiogfCAqXHwqIHwgKlxcKiApCi0rICAgICAgIGFjX3NlZF9jb25mX2lucHV0PWAk YXNfZWNobyAiJGNvbmZpZ3VyZV9pbnB1dCIgfAotKyAgICAgICBzZWQgJ3MvW1xcXFwmfF0vXFxc XCYvZydgOzsgIygKLSsgICAgKikgYWNfc2VkX2NvbmZfaW5wdXQ9JGNvbmZpZ3VyZV9pbnB1dDs7 Ci0rICAgIGVzYWMKLSsKLSsgICAgY2FzZSAkYWNfdGFnIGluCi0rICAgICo6LToqIHwgKjotKSBj YXQgPiIkdG1wL3N0ZGluIiBcCi0rICAgICAgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mNQotKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjI7fQotKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfSA7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0rICBh Y19kaXI9YCRhc19kaXJuYW1lIC0tICIkYWNfZmlsZSIgfHwKLSskYXNfZXhwciBYIiRhY19maWxl IiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkYWNfZmlsZSIgOiAn WFwoLy9cKVteL10nIFx8IFwKLSsJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBY IiRhY19maWxlIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRh Y19maWxlIiB8Ci0rICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97Ci0r CSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXClbXi9dLiovewotKwkg ICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpJC97Ci0rCSAgICBzLy9c MS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wpLiovewotKwkgICAgcy8vXDEvCi0rCSAg ICBxCi0rCSAgfQotKwkgIHMvLiovLi87IHEnYAotKyAgeyBhc19kaXI9IiRhY19kaXIiCi0rICBj YXNlICRhc19kaXIgaW4gIygKLSsgIC0qKSBhc19kaXI9Li8kYXNfZGlyOzsKLSsgIGVzYWMKLSsg IHRlc3QgLWQgIiRhc19kaXIiIHx8IHsgJGFzX21rZGlyX3AgJiYgbWtkaXIgLXAgIiRhc19kaXIi OyB9IHx8IHsKLSsgICAgYXNfZGlycz0KLSsgICAgd2hpbGUgOjsgZG8KLSsgICAgICBjYXNlICRh c19kaXIgaW4gIygKLSsgICAgICAqXCcqKSBhc19xZGlyPWAkYXNfZWNobyAiJGFzX2RpciIgfCBz ZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OyAjJygKLSsgICAgICAqKSBhc19xZGlyPSRhc19kaXI7 OwotKyAgICAgIGVzYWMKLSsgICAgICBhc19kaXJzPSInJGFzX3FkaXInICRhc19kaXJzIgotKyAg ICAgIGFzX2Rpcj1gJGFzX2Rpcm5hbWUgLS0gIiRhc19kaXIiIHx8Ci0rJGFzX2V4cHIgWCIkYXNf ZGlyIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkYXNfZGlyIiA6 ICdYXCgvL1wpW14vXScgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkg WCIkYXNfZGlyIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRh c19kaXIiIHwKLSsgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJ ICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAg ICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wx LwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAg IHEKLSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdgCi0rICAgICAgdGVzdCAtZCAiJGFzX2RpciIgJiYg YnJlYWsKLSsgICAgZG9uZQotKyAgICB0ZXN0IC16ICIkYXNfZGlycyIgfHwgZXZhbCAibWtkaXIg JGFzX2RpcnMiCi0rICB9IHx8IHRlc3QgLWQgIiRhc19kaXIiIHx8IHsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNfZGlyIiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGFzX2Rp ciIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLSsgIGFjX2J1aWxkZGly PS4KLSsKLStjYXNlICIkYWNfZGlyIiBpbgotKy4pIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWls ZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4PSA7OwotKyopCi0rICBhY19kaXJfc3VmZml4 PS9gJGFzX2VjaG8gIiRhY19kaXIiIHwgc2VkICdzfF5cLltcXC9dfHwnYAotKyAgIyBBICIuLiIg Zm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgotKyAgYWNfdG9wX2J1aWxkZGly X3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAnc3wvW15cXC9dKnwvLi58Zztz fC98fCdgCi0rICBjYXNlICRhY190b3BfYnVpbGRkaXJfc3ViIGluCi0rICAiIikgYWNfdG9wX2J1 aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7Ci0rICAqKSAgYWNfdG9wX2J1aWxk X3ByZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1Yi8gOzsKLSsgIGVzYWMgOzsKLStlc2FjCi0rYWNf YWJzX3RvcF9idWlsZGRpcj0kYWNfcHdkCi0rYWNfYWJzX2J1aWxkZGlyPSRhY19wd2QkYWNfZGly X3N1ZmZpeAotKyMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk6Ci0rYWNfdG9wX2J1aWxkZGly PSRhY190b3BfYnVpbGRfcHJlZml4Ci0rCi0rY2FzZSAkc3JjZGlyIGluCi0rICAuKSAgIyBXZSBh cmUgYnVpbGRpbmcgaW4gcGxhY2UuCi0rICAgIGFjX3NyY2Rpcj0uCi0rICAgIGFjX3RvcF9zcmNk aXI9JGFjX3RvcF9idWlsZGRpcl9zdWIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZCA7 OwotKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBuYW1lLgotKyAgICBhY19zcmNk aXI9JHNyY2RpciRhY19kaXJfc3VmZml4OwotKyAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIKLSsg ICAgYWNfYWJzX3RvcF9zcmNkaXI9JHNyY2RpciA7OwotKyAgKikgIyBSZWxhdGl2ZSBuYW1lLgot KyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgkc3JjZGlyJGFjX2Rpcl9zdWZmaXgK LSsgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIKLSsgICAgYWNf YWJzX3RvcF9zcmNkaXI9JGFjX3B3ZC8kc3JjZGlyIDs7Ci0rZXNhYwotK2FjX2Fic19zcmNkaXI9 JGFjX2Fic190b3Bfc3JjZGlyJGFjX2Rpcl9zdWZmaXgKLSsKLSsKLSsgIGNhc2UgJGFjX21vZGUg aW4KLSsgIDpGKQotKyAgIwotKyAgIyBDT05GSUdfRklMRQotKyAgIwotKwotKyAgY2FzZSAkSU5T VEFMTCBpbgotKyAgW1xcLyRdKiB8ID86W1xcL10qICkgYWNfSU5TVEFMTD0kSU5TVEFMTCA7Owot KyAgKikgYWNfSU5TVEFMTD0kYWNfdG9wX2J1aWxkX3ByZWZpeCRJTlNUQUxMIDs7Ci0rICBlc2Fj Ci0rICBhY19NS0RJUl9QPSRNS0RJUl9QCi0rICBjYXNlICRNS0RJUl9QIGluCi0rICBbXFwvJF0q IHwgPzpbXFwvXSogKSA7OwotKyAgKi8qKSBhY19NS0RJUl9QPSRhY190b3BfYnVpbGRfcHJlZml4 JE1LRElSX1AgOzsKLSsgIGVzYWMKLStfQUNFT0YKLSsKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8 PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rIyBJZiB0aGUgdGVtcGxhdGUgZG9lcyBub3Qg a25vdyBhYm91dCBkYXRhcm9vdGRpciwgZXhwYW5kIGl0LgotKyMgRklYTUU6IFRoaXMgaGFjayBz aG91bGQgYmUgcmVtb3ZlZCBhIGZldyB5ZWFycyBhZnRlciAyLjYwLgotK2FjX2RhdGFyb290ZGly X2hhY2s9OyBhY19kYXRhcm9vdGRpcl9zZWVuPQotKwotK2FjX3NlZF9kYXRhcm9vdD0nCi0rL2Rh dGFyb290ZGlyLyB7Ci0rICBwCi0rICBxCi0rfQotKy9AZGF0YWRpckAvcAotKy9AZG9jZGlyQC9w Ci0rL0BpbmZvZGlyQC9wCi0rL0Bsb2NhbGVkaXJAL3AKLSsvQG1hbmRpckAvcAotKycKLStjYXNl IGBldmFsICJzZWQgLW4gXCJcJGFjX3NlZF9kYXRhcm9vdFwiICRhY19maWxlX2lucHV0cyJgIGlu Ci0rKmRhdGFyb290ZGlyKikgYWNfZGF0YXJvb3RkaXJfc2Vlbj15ZXM7OwotKypAZGF0YWRpckAq fCpAZG9jZGlyQCp8KkBpbmZvZGlyQCp8KkBsb2NhbGVkaXJAKnwqQG1hbmRpckAqKQotKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19maWxlX2lucHV0cyBzZWVtcyB0 byBpZ25vcmUgdGhlIC0tZGF0YXJvb3RkaXIgc2V0dGluZyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogV0FSTklORzogJGFjX2ZpbGVfaW5wdXRzIHNlZW1zIHRvIGlnbm9yZSB0aGUgLS1kYXRhcm9v dGRpciBzZXR0aW5nIiA+JjI7fQotK19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FD RU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKyAgYWNfZGF0YXJvb3RkaXJfaGFjaz0nCi0rICBzJkBk YXRhZGlyQCYkZGF0YWRpciZnCi0rICBzJkBkb2NkaXJAJiRkb2NkaXImZwotKyAgcyZAaW5mb2Rp ckAmJGluZm9kaXImZwotKyAgcyZAbG9jYWxlZGlyQCYkbG9jYWxlZGlyJmcKLSsgIHMmQG1hbmRp ckAmJG1hbmRpciZnCi0rICAgIHMmXFxcJHtkYXRhcm9vdGRpcn0mJGRhdGFyb290ZGlyJmcnIDs7 Ci0rZXNhYwotK19BQ0VPRgotKwotKyMgTmV1dHJhbGl6ZSBWUEFUSCB3aGVuIGAkc3JjZGlyJyA9 IGAuJy4KLSsjIFNoZWxsIGNvZGUgaW4gY29uZmlndXJlLmFjIG1pZ2h0IHNldCBleHRyYXN1Yi4K LSsjIEZJWE1FOiBkbyB3ZSByZWFsbHkgd2FudCB0byBtYWludGFpbiB0aGlzIGZlYXR1cmU/Ci0r Y2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rYWNfc2Vk X2V4dHJhPSIkYWNfdnBzdWIKLSskZXh0cmFzdWIKLStfQUNFT0YKLStjYXQgPj4kQ09ORklHX1NU QVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rOnQKLSsvQFthLXpBLVpfXVthLXpB LVpfMC05XSpALyFiCi0rc3xAY29uZmlndXJlX2lucHV0QHwkYWNfc2VkX2NvbmZfaW5wdXR8O3Qg dAotK3MmQHRvcF9idWlsZGRpckAmJGFjX3RvcF9idWlsZGRpcl9zdWImO3QgdAotK3MmQHRvcF9i dWlsZF9wcmVmaXhAJiRhY190b3BfYnVpbGRfcHJlZml4Jjt0IHQKLStzJkBzcmNkaXJAJiRhY19z cmNkaXImO3QgdAotK3MmQGFic19zcmNkaXJAJiRhY19hYnNfc3JjZGlyJjt0IHQKLStzJkB0b3Bf c3JjZGlyQCYkYWNfdG9wX3NyY2RpciY7dCB0Ci0rcyZAYWJzX3RvcF9zcmNkaXJAJiRhY19hYnNf dG9wX3NyY2RpciY7dCB0Ci0rcyZAYnVpbGRkaXJAJiRhY19idWlsZGRpciY7dCB0Ci0rcyZAYWJz X2J1aWxkZGlyQCYkYWNfYWJzX2J1aWxkZGlyJjt0IHQKLStzJkBhYnNfdG9wX2J1aWxkZGlyQCYk YWNfYWJzX3RvcF9idWlsZGRpciY7dCB0Ci0rcyZASU5TVEFMTEAmJGFjX0lOU1RBTEwmO3QgdAot K3MmQE1LRElSX1BAJiRhY19NS0RJUl9QJjt0IHQKLSskYWNfZGF0YXJvb3RkaXJfaGFjawotKyIK LStldmFsIHNlZCBcIlwkYWNfc2VkX2V4dHJhXCIgIiRhY19maWxlX2lucHV0cyIgfCAkQVdLIC1m ICIkdG1wL3N1YnMuYXdrIiA+JHRtcC9vdXQgXAotKyAgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mNQotKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjI7fQotKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKwotK3Rlc3QgLXogIiRhY19kYXRhcm9vdGRpcl9oYWNr JGFjX2RhdGFyb290ZGlyX3NlZW4iICYmCi0rICB7IGFjX291dD1gc2VkIC1uICcvXCR7ZGF0YXJv b3RkaXJ9L3AnICIkdG1wL291dCJgOyB0ZXN0IC1uICIkYWNfb3V0IjsgfSAmJgotKyAgeyBhY19v dXQ9YHNlZCAtbiAnL15bCSBdKmRhdGFyb290ZGlyWwkgXSo6Kj0vcCcgIiR0bXAvb3V0ImA7IHRl c3QgLXogIiRhY19vdXQiOyB9ICYmCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FS TklORzogJGFjX2ZpbGUgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIHZhcmlhYmxlIFxgZGF0 YXJvb3RkaXInCi0rd2hpY2ggc2VlbXMgdG8gYmUgdW5kZWZpbmVkLiAgUGxlYXNlIG1ha2Ugc3Vy ZSBpdCBpcyBkZWZpbmVkLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2Zp bGUgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIHZhcmlhYmxlIFxgZGF0YXJvb3RkaXInCi0r d2hpY2ggc2VlbXMgdG8gYmUgdW5kZWZpbmVkLiAgUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBkZWZp bmVkLiIgPiYyO30KLSsKLSsgIHJtIC1mICIkdG1wL3N0ZGluIgotKyAgY2FzZSAkYWNfZmlsZSBp bgotKyAgLSkgY2F0ICIkdG1wL291dCIgJiYgcm0gLWYgIiR0bXAvb3V0Ijs7Ci0rICAqKSBybSAt ZiAiJGFjX2ZpbGUiICYmIG12ICIkdG1wL291dCIgIiRhY19maWxlIjs7Ci0rICBlc2FjIFwKLSsg IHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgY3JlYXRl ICRhY19maWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IGNyZWF0 ZSAkYWNfZmlsZSIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgOzsKLSsg IDpIKQotKyAgIwotKyAgIyBDT05GSUdfSEVBREVSCi0rICAjCi0rICBpZiB0ZXN0IHgiJGFjX2Zp bGUiICE9IHgtOyB0aGVuCi0rICAgIHsKLSsgICAgICAkYXNfZWNobyAiLyogJGNvbmZpZ3VyZV9p bnB1dCAgKi8iIFwKLSsgICAgICAmJiBldmFsICckQVdLIC1mICIkdG1wL2RlZmluZXMuYXdrIicg IiRhY19maWxlX2lucHV0cyIKLSsgICAgfSA+IiR0bXAvY29uZmlnLmgiIFwKLSsgICAgICB8fCB7 IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNf ZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFj X2ZpbGUiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICAgIGlmIGRpZmYg IiRhY19maWxlIiAiJHRtcC9jb25maWcuaCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgICAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86ICRhY19maWxlIGlzIHVuY2hhbmdlZCIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjY7fQotKyAgICBlbHNl Ci0rICAgICAgcm0gLWYgIiRhY19maWxlIgotKyAgICAgIG12ICIkdG1wL2NvbmZpZy5oIiAiJGFj X2ZpbGUiIFwKLSsJfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxk IG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3Vs ZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fQotKyAgICBmaQotKyAgZWxzZQotKyAgICAkYXNfZWNobyAiLyogJGNvbmZpZ3VyZV9pbnB1dCAg Ki8iIFwKLSsgICAgICAmJiBldmFsICckQVdLIC1mICIkdG1wL2RlZmluZXMuYXdrIicgIiRhY19m aWxlX2lucHV0cyIgXAotKyAgICAgIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVy cm9yOiBjb3VsZCBub3QgY3JlYXRlIC0iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBj b3VsZCBub3QgY3JlYXRlIC0iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0r ICBmaQotKyMgQ29tcHV0ZSAiJGFjX2ZpbGUiJ3MgaW5kZXggaW4gJGNvbmZpZ19oZWFkZXJzLgot K19hbV9hcmc9IiRhY19maWxlIgotK19hbV9zdGFtcF9jb3VudD0xCi0rZm9yIF9hbV9oZWFkZXIg aW4gJGNvbmZpZ19oZWFkZXJzIDo7IGRvCi0rICBjYXNlICRfYW1faGVhZGVyIGluCi0rICAgICRf YW1fYXJnIHwgJF9hbV9hcmc6KiApCi0rICAgICAgYnJlYWsgOzsKLSsgICAgKiApCi0rICAgICAg X2FtX3N0YW1wX2NvdW50PWBleHByICRfYW1fc3RhbXBfY291bnQgKyAxYCA7OwotKyAgZXNhYwot K2RvbmUKLStlY2hvICJ0aW1lc3RhbXAgZm9yICRfYW1fYXJnIiA+YCRhc19kaXJuYW1lIC0tICIk X2FtX2FyZyIgfHwKLSskYXNfZXhwciBYIiRfYW1fYXJnIiA6ICdYXCguKlteL11cKS8vKlteL11b Xi9dKi8qJCcgXHwgXAotKwkgWCIkX2FtX2FyZyIgOiAnWFwoLy9cKVteL10nIFx8IFwKLSsJIFgi JF9hbV9hcmciIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRfYW1fYXJnIiA6ICdYXCgvXCknIFx8 IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRfYW1fYXJnIiB8Ci0rICAgIHNlZCAnL15Y XCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJ ICB9Ci0rCSAgL15YXChcL1wvXClbXi9dLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAg fQotKwkgIC9eWFwoXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAg L15YXChcL1wpLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIHMvLiovLi87 IHEnYC9zdGFtcC1oJF9hbV9zdGFtcF9jb3VudAotKyA7OwotKwotKyAgOkMpICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZXhlY3V0aW5nICRhY19maWxlIGNvbW1hbmRzIiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBleGVjdXRpbmcgJGFjX2ZpbGUgY29tbWFuZHMiID4mNjt9Ci0rIDs7Ci0r ICBlc2FjCi0rCi0rCi0rICBjYXNlICRhY19maWxlJGFjX21vZGUgaW4KLSsgICAgImRlcGZpbGVz IjpDKSB0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgiIiB8fCB7Ci0rICAjIEF1dG9jb25mIDIuNjIg cXVvdGVzIC0tZmlsZSBhcmd1bWVudHMgZm9yIGV2YWwsIGJ1dCBub3Qgd2hlbiBmaWxlcwotKyAg IyBhcmUgbGlzdGVkIHdpdGhvdXQgLS1maWxlLiAgTGV0J3MgcGxheSBzYWZlIGFuZCBvbmx5IGVu YWJsZSB0aGUgZXZhbAotKyAgIyBpZiB3ZSBkZXRlY3QgdGhlIHF1b3RpbmcuCi0rICBjYXNlICRD T05GSUdfRklMRVMgaW4KLSsgICpcJyopIGV2YWwgc2V0IHggIiRDT05GSUdfRklMRVMiIDs7Ci0r ICAqKSAgIHNldCB4ICRDT05GSUdfRklMRVMgOzsKLSsgIGVzYWMKLSsgIHNoaWZ0Ci0rICBmb3Ig bWYKLSsgIGRvCi0rICAgICMgU3RyaXAgTUYgc28gd2UgZW5kIHVwIHdpdGggdGhlIG5hbWUgb2Yg dGhlIGZpbGUuCi0rICAgIG1mPWBlY2hvICIkbWYiIHwgc2VkIC1lICdzLzouKiQvLydgCi0rICAg ICMgQ2hlY2sgd2hldGhlciB0aGlzIGlzIGFuIEF1dG9tYWtlIGdlbmVyYXRlZCBNYWtlZmlsZSBv ciBub3QuCi0rICAgICMgV2UgdXNlZCB0byBtYXRjaCBvbmx5IHRoZSBmaWxlcyBuYW1lZCBgTWFr ZWZpbGUuaW4nLCBidXQKLSsgICAgIyBzb21lIHBlb3BsZSByZW5hbWUgdGhlbTsgc28gaW5zdGVh ZCB3ZSBsb29rIGF0IHRoZSBmaWxlIGNvbnRlbnQuCi0rICAgICMgR3JlcCdpbmcgdGhlIGZpcnN0 IGxpbmUgaXMgbm90IGVub3VnaDogc29tZSBwZW9wbGUgcG9zdC1wcm9jZXNzCi0rICAgICMgZWFj aCBNYWtlZmlsZS5pbiBhbmQgYWRkIGEgbmV3IGxpbmUgb24gdG9wIG9mIGVhY2ggZmlsZSB0byBz YXkgc28uCi0rICAgICMgR3JlcCdpbmcgdGhlIHdob2xlIGZpbGUgaXMgbm90IGdvb2QgZWl0aGVy OiBBSVggZ3JlcCBoYXMgYSBsaW5lCi0rICAgICMgbGltaXQgb2YgMjA0OCwgYnV0IGFsbCBzZWQn cyB3ZSBrbm93IGhhdmUgdW5kZXJzdGFuZCBhdCBsZWFzdCA0MDAwLgotKyAgICBpZiBzZWQgLW4g J3MsXiMuKmdlbmVyYXRlZCBieSBhdXRvbWFrZS4qLFgscCcgIiRtZiIgfCBncmVwIFggPi9kZXYv bnVsbCAyPiYxOyB0aGVuCi0rICAgICAgZGlycGFydD1gJGFzX2Rpcm5hbWUgLS0gIiRtZiIgfHwK LSskYXNfZXhwciBYIiRtZiIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLSsJ IFgiJG1mIiA6ICdYXCgvL1wpW14vXScgXHwgXAotKwkgWCIkbWYiIDogJ1hcKC8vXCkkJyBcfCBc Ci0rCSBYIiRtZiIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8Ci0rJGFzX2VjaG8gWCIk bWYiIHwKLSsgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAg IHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBz Ly9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwot KwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEK LSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdgCi0rICAgIGVsc2UKLSsgICAgICBjb250aW51ZQotKyAg ICBmaQotKyAgICAjIEV4dHJhY3QgdGhlIGRlZmluaXRpb24gb2YgREVQRElSLCBhbV9faW5jbHVk ZSwgYW5kIGFtX19xdW90ZQotKyAgICAjIGZyb20gdGhlIE1ha2VmaWxlIHdpdGhvdXQgcnVubmlu ZyBgbWFrZScuCi0rICAgIERFUERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJg Ci0rICAgIHRlc3QgLXogIiRERVBESVIiICYmIGNvbnRpbnVlCi0rICAgIGFtX19pbmNsdWRlPWBz ZWQgLW4gJ3MvXmFtX19pbmNsdWRlID0gLy9wJyA8ICIkbWYiYAotKyAgICB0ZXN0IC16ICJhbV9f aW5jbHVkZSIgJiYgY29udGludWUKLSsgICAgYW1fX3F1b3RlPWBzZWQgLW4gJ3MvXmFtX19xdW90 ZSA9IC8vcCcgPCAiJG1mImAKLSsgICAgIyBXaGVuIHVzaW5nIGFuc2kya25yLCBVIG1heSBiZSBl bXB0eSBvciBhbiB1bmRlcnNjb3JlOyBleHBhbmQgaXQKLSsgICAgVT1gc2VkIC1uICdzL15VID0g Ly9wJyA8ICIkbWYiYAotKyAgICAjIEZpbmQgYWxsIGRlcGVuZGVuY3kgb3V0cHV0IGZpbGVzLCB0 aGV5IGFyZSBpbmNsdWRlZCBmaWxlcyB3aXRoCi0rICAgICMgJChERVBESVIpIGluIHRoZWlyIG5h bWVzLiAgV2UgaW52b2tlIHNlZCB0d2ljZSBiZWNhdXNlIGl0IGlzIHRoZQotKyAgICAjIHNpbXBs ZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGlu IHRoZQotKyAgICAjIGV4cGFuc2lvbi4KLSsgICAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCi0rICAg ICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4qKERFUERJUikuKlwpJGFtX19xdW90ZSIn JC9cMS9wJyA8IiRtZiIgfCBcCi0rCSBzZWQgLWUgJ3MvXCQoREVQRElSKS8nIiRERVBESVIiJy9n JyAtZSAncy9cJFUvJyIkVSInL2cnYDsgZG8KLSsgICAgICAjIE1ha2Ugc3VyZSB0aGUgZGlyZWN0 b3J5IGV4aXN0cy4KLSsgICAgICB0ZXN0IC1mICIkZGlycGFydC8kZmlsZSIgJiYgY29udGludWUK LSsgICAgICBmZGlyPWAkYXNfZGlybmFtZSAtLSAiJGZpbGUiIHx8Ci0rJGFzX2V4cHIgWCIkZmls ZSIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLSsJIFgiJGZpbGUiIDogJ1hc KC8vXClbXi9dJyBcfCBcCi0rCSBYIiRmaWxlIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkZmls ZSIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8Ci0rJGFzX2VjaG8gWCIkZmlsZSIgfAot KyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewotKwkgICAgcy8vXDEv Ci0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKLSsJICAgIHMvL1wxLwot KwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKSQvewotKwkgICAgcy8vXDEvCi0rCSAgICBx Ci0rCSAgfQotKwkgIC9eWFwoXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0K LSsJICBzLy4qLy4vOyBxJ2AKLSsgICAgICB7IGFzX2Rpcj0kZGlycGFydC8kZmRpcgotKyAgY2Fz ZSAkYXNfZGlyIGluICMoCi0rICAtKikgYXNfZGlyPS4vJGFzX2Rpcjs7Ci0rICBlc2FjCi0rICB0 ZXN0IC1kICIkYXNfZGlyIiB8fCB7ICRhc19ta2Rpcl9wICYmIG1rZGlyIC1wICIkYXNfZGlyIjsg fSB8fCB7Ci0rICAgIGFzX2RpcnM9Ci0rICAgIHdoaWxlIDo7IGRvCi0rICAgICAgY2FzZSAkYXNf ZGlyIGluICMoCi0rICAgICAgKlwnKikgYXNfcWRpcj1gJGFzX2VjaG8gIiRhc19kaXIiIHwgc2Vk ICJzLycvJ1xcXFxcXFxcJycvZyJgOzsgIycoCi0rICAgICAgKikgYXNfcWRpcj0kYXNfZGlyOzsK LSsgICAgICBlc2FjCi0rICAgICAgYXNfZGlycz0iJyRhc19xZGlyJyAkYXNfZGlycyIKLSsgICAg ICBhc19kaXI9YCRhc19kaXJuYW1lIC0tICIkYXNfZGlyIiB8fAotKyRhc19leHByIFgiJGFzX2Rp ciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLSsJIFgiJGFzX2RpciIgOiAn WFwoLy9cKVteL10nIFx8IFwKLSsJIFgiJGFzX2RpciIgOiAnWFwoLy9cKSQnIFx8IFwKLSsJIFgi JGFzX2RpciIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8Ci0rJGFzX2VjaG8gWCIkYXNf ZGlyIiB8Ci0rICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97Ci0rCSAg ICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXClbXi9dLiovewotKwkgICAg cy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8K LSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wpLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBx Ci0rCSAgfQotKwkgIHMvLiovLi87IHEnYAotKyAgICAgIHRlc3QgLWQgIiRhc19kaXIiICYmIGJy ZWFrCi0rICAgIGRvbmUKLSsgICAgdGVzdCAteiAiJGFzX2RpcnMiIHx8IGV2YWwgIm1rZGlyICRh c19kaXJzIgotKyAgfSB8fCB0ZXN0IC1kICIkYXNfZGlyIiB8fCB7IHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGFzX2RpciIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5ICRhc19kaXIi ID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9Ci0rICAgICAgIyBlY2hvICJj cmVhdGluZyAkZGlycGFydC8kZmlsZSIKLSsgICAgICBlY2hvICcjIGR1bW15JyA+ICIkZGlycGFy dC8kZmlsZSIKLSsgICAgZG9uZQotKyAgZG9uZQotK30KLSsgOzsKLSsgICAgImxpYnRvb2wiOkMp Ci0rCi0rICAgICMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNldCB0aGUgb3B0 aW9ucyB3aGljaCBhbGxvdyBvdXIKLSsgICAgIyBjb21tYW5kcyB0aHJvdWdoIHdpdGhvdXQgcmVt b3ZhbCBvZiBcIGVzY2FwZXMuCi0rICAgIGlmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIg OyB0aGVuCi0rICAgICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLSsgICAgZmkKLSsKLSsgICAgY2Zn ZmlsZT0iJHtvZmlsZX1UIgotKyAgICB0cmFwICIkUk0gXCIkY2ZnZmlsZVwiOyBleGl0IDEiIDEg MiAxNQotKyAgICAkUk0gIiRjZmdmaWxlIgotKwotKyAgICBjYXQgPDxfTFRfRU9GID4+ICIkY2Zn ZmlsZSIKLSsjISAkU0hFTEwKLSsKLSsjIGAkRUNITyAiJG9maWxlIiB8IHNlZCAncyVeLiovJSUn YCAtIFByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGlicmFyeS1idWlsZGluZyBzdXBwb3J0IHNlcnZpY2Vz LgotKyMgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgJGFzX21lICgkUEFDS0FHRSRUSU1FU1RB TVApICRWRVJTSU9OCi0rIyBMaWJ0b29sIHdhcyBjb25maWd1cmVkIG9uIGhvc3QgYChob3N0bmFt ZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgOgotKyMgTk9URTogQ2hhbmdlcyBt YWRlIHRvIHRoaXMgZmlsZSB3aWxsIGJlIGxvc3Q6IGxvb2sgYXQgbHRtYWluLnNoLgotKyMKLSsj ICAgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAz LCAyMDA0LCAyMDA1LAotKyMgICAgICAgICAgICAgICAgIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyAgIFdyaXR0ZW4gYnkgR29yZG9uIE1hdHppZ2tl aXQsIDE5OTYKLSsjCi0rIyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBMaWJ0b29sLgotKyMK LSsjIEdOVSBMaWJ0b29sIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgotKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMKLSsjIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCi0rIyB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9u IHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKLSsjIGlmIHlvdSBkaXN0cmlidXRl IHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSBvciBsaWJyYXJ5IHRoYXQKLSsjIGlzIGJ1 aWx0IHVzaW5nIEdOVSBMaWJ0b29sLCB5b3UgbWF5IGluY2x1ZGUgdGhpcyBmaWxlIHVuZGVyIHRo ZQotKyMgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBv ZiB0aGF0IHByb2dyYW0uCi0rIwotKyMgR05VIExpYnRvb2wgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl Ci0rIyBhbG9uZyB3aXRoIEdOVSBMaWJ0b29sOyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5v dCwgYSBjb3B5Ci0rIyBjYW4gYmUgZG93bmxvYWRlZCBmcm9tIGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy9ncGwuaHRtbCwgb3IKLSsjIG9idGFpbmVkIGJ5IHdyaXRpbmcgdG8gdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKLSsjIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg Rmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotKwotKwotKyMgVGhlIG5hbWVzIG9m IHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbnMgc3VwcG9ydGVkIGJ5IHRoaXMgc2NyaXB0LgotK2F2 YWlsYWJsZV90YWdzPSJDWFggIgotKwotKyMgIyMjIEJFR0lOIExJQlRPT0wgQ09ORklHCi0rCi0r IyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLgotK2J1aWxkX2xpYnRv b2xfbGlicz0kZW5hYmxlX3NoYXJlZAotKwotKyMgV2hldGhlciBvciBub3QgdG8gYnVpbGQgc3Rh dGljIGxpYnJhcmllcy4KLStidWlsZF9vbGRfbGlicz0kZW5hYmxlX3N0YXRpYwotKwotKyMgV2hp Y2ggcmVsZWFzZSBvZiBsaWJ0b29sLm00IHdhcyB1c2VkPwotK21hY3JvX3ZlcnNpb249JG1hY3Jv X3ZlcnNpb24KLSttYWNyb19yZXZpc2lvbj0kbWFjcm9fcmV2aXNpb24KLSsKLSsjIFdoYXQgdHlw ZSBvZiBvYmplY3RzIHRvIGJ1aWxkLgotK3BpY19tb2RlPSRwaWNfbW9kZQotKwotKyMgV2hldGhl ciBvciBub3QgdG8gb3B0aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uLgotK2Zhc3RfaW5zdGFs bD0kZW5hYmxlX2Zhc3RfaW5zdGFsbAotKwotKyMgVGhlIGhvc3Qgc3lzdGVtLgotK2hvc3RfYWxp YXM9JGhvc3RfYWxpYXMKLStob3N0PSRob3N0Ci0raG9zdF9vcz0kaG9zdF9vcwotKwotKyMgVGhl IGJ1aWxkIHN5c3RlbS4KLStidWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKLStidWlsZD0kYnVpbGQK LStidWlsZF9vcz0kYnVpbGRfb3MKLSsKLSsjIEEgc2VkIHByb2dyYW0gdGhhdCBkb2VzIG5vdCB0 cnVuY2F0ZSBvdXRwdXQuCi0rU0VEPSRsdF9TRUQKLSsKLSsjIFNlZCB0aGF0IGhlbHBzIHVzIGF2 b2lkIGFjY2lkZW50YWxseSB0cmlnZ2VyaW5nIGVjaG8oMSkgb3B0aW9ucyBsaWtlIC1uLgotK1hz ZWQ9IlwkU0VEIC1lIDFzL15YLy8iCi0rCi0rIyBBIGdyZXAgcHJvZ3JhbSB0aGF0IGhhbmRsZXMg bG9uZyBsaW5lcy4KLStHUkVQPSRsdF9HUkVQCi0rCi0rIyBBbiBFUkUgbWF0Y2hlci4KLStFR1JF UD0kbHRfRUdSRVAKLSsKLSsjIEEgbGl0ZXJhbCBzdHJpbmcgbWF0Y2hlci4KLStGR1JFUD0kbHRf RkdSRVAKLSsKLSsjIEEgQlNELSBvciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVyLgotK05NPSRs dF9OTQotKwotKyMgV2hldGhlciB3ZSBuZWVkIHNvZnQgb3IgaGFyZCBsaW5rcy4KLStMTl9TPSRs dF9MTl9TCi0rCi0rIyBXaGF0IGlzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGNvbW1hbmQ/Ci0r bWF4X2NtZF9sZW49JG1heF9jbWRfbGVuCi0rCi0rIyBPYmplY3QgZmlsZSBzdWZmaXggKG5vcm1h bGx5ICJvIikuCi0rb2JqZXh0PSRhY19vYmpleHQKLSsKLSsjIEV4ZWN1dGFibGUgZmlsZSBzdWZm aXggKG5vcm1hbGx5ICIiKS4KLStleGVleHQ9JGV4ZWV4dAotKwotKyMgd2hldGhlciB0aGUgc2hl bGwgdW5kZXJzdGFuZHMgInVuc2V0Ii4KLStsdF91bnNldD0kbHRfdW5zZXQKLSsKLSsjIHR1cm4g c3BhY2VzIGludG8gbmV3bGluZXMuCi0rU1AyTkw9JGx0X2x0X1NQMk5MCi0rCi0rIyB0dXJuIG5l d2xpbmVzIGludG8gc3BhY2VzLgotK05MMlNQPSRsdF9sdF9OTDJTUAotKwotKyMgSG93IHRvIGNy ZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KLStyZWxvYWRfZmxhZz0kbHRfcmVsb2FkX2Zs YWcKLStyZWxvYWRfY21kcz0kbHRfcmVsb2FkX2NtZHMKLSsKLSsjIEFuIG9iamVjdCBzeW1ib2wg ZHVtcGVyLgotK09CSkRVTVA9JGx0X09CSkRVTVAKLSsKLSsjIE1ldGhvZCB0byBjaGVjayB3aGV0 aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBvYmplY3RzLgotK2RlcGxpYnNfY2hl Y2tfbWV0aG9kPSRsdF9kZXBsaWJzX2NoZWNrX21ldGhvZAotKwotKyMgQ29tbWFuZCB0byB1c2Ug d2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9PSAiZmlsZV9tYWdpYyIuCi0rZmlsZV9tYWdpY19j bWQ9JGx0X2ZpbGVfbWFnaWNfY21kCi0rCi0rIyBUaGUgYXJjaGl2ZXIuCi0rQVI9JGx0X0FSCi0r QVJfRkxBR1M9JGx0X0FSX0ZMQUdTCi0rCi0rIyBBIHN5bWJvbCBzdHJpcHBpbmcgcHJvZ3JhbS4K LStTVFJJUD0kbHRfU1RSSVAKLSsKLSsjIENvbW1hbmRzIHVzZWQgdG8gaW5zdGFsbCBhbiBvbGQt c3R5bGUgYXJjaGl2ZS4KLStSQU5MSUI9JGx0X1JBTkxJQgotK29sZF9wb3N0aW5zdGFsbF9jbWRz PSRsdF9vbGRfcG9zdGluc3RhbGxfY21kcwotK29sZF9wb3N0dW5pbnN0YWxsX2NtZHM9JGx0X29s ZF9wb3N0dW5pbnN0YWxsX2NtZHMKLSsKLSsjIEEgQyBjb21waWxlci4KLStMVENDPSRsdF9DQwot KwotKyMgTFRDQyBjb21waWxlciBmbGFncy4KLStMVENGTEFHUz0kbHRfQ0ZMQUdTCi0rCi0rIyBU YWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5kIHByb2R1Y2UgYSBsaXN0aW5nIG9mIHJhdyBzeW1ib2xz IGFuZCBDIG5hbWVzLgotK2dsb2JhbF9zeW1ib2xfcGlwZT0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9z eW1ib2xfcGlwZQotKwotKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBwcm9wZXIg QyBkZWNsYXJhdGlvbi4KLStnbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSRsdF9sdF9jdl9zeXNfZ2xv YmFsX3N5bWJvbF90b19jZGVjbAotKwotKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4g YSBDIG5hbWUgYWRkcmVzcyBwYWlyLgotK2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9 JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzCi0rCi0rIyBUcmFu c2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXIgd2hlbiBsaWIg cHJlZml4IGlzIG5lZWRlZC4KLStnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9w cmVmaXg9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9w cmVmaXgKLSsKLSsjIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0ZW1w b3JhcnkgbGlidG9vbCBmaWxlcy4KLStvYmpkaXI9JG9iamRpcgotKwotKyMgU2hlbGwgdG8gdXNl IHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0cy4KLStTSEVMTD0kbHRfU0hFTEwKLSsKLSsjIEFu IGVjaG8gcHJvZ3JhbSB0aGF0IGRvZXMgbm90IGludGVycHJldCBiYWNrc2xhc2hlcy4KLStFQ0hP PSRsdF9FQ0hPCi0rCi0rIyBVc2VkIHRvIGV4YW1pbmUgbGlicmFyaWVzIHdoZW4gZmlsZV9tYWdp Y19jbWQgYmVnaW5zIHdpdGggImZpbGUiLgotK01BR0lDX0NNRD0kTUFHSUNfQ01ECi0rCi0rIyBN dXN0IHdlIGxvY2sgZmlsZXMgd2hlbiBkb2luZyBjb21waWxhdGlvbj8KLStuZWVkX2xvY2tzPSRs dF9uZWVkX2xvY2tzCi0rCi0rIyBUb29sIHRvIG1hbmlwdWxhdGUgYXJjaGl2ZWQgRFdBUkYgZGVi dWcgc3ltYm9sIGZpbGVzIG9uIE1hYyBPUyBYLgotK0RTWU1VVElMPSRsdF9EU1lNVVRJTAotKwot KyMgVG9vbCB0byBjaGFuZ2UgZ2xvYmFsIHRvIGxvY2FsIHN5bWJvbHMgb24gTWFjIE9TIFguCi0r Tk1FRElUPSRsdF9OTUVESVQKLSsKLSsjIFRvb2wgdG8gbWFuaXB1bGF0ZSBmYXQgb2JqZWN0cyBh bmQgYXJjaGl2ZXMgb24gTWFjIE9TIFguCi0rTElQTz0kbHRfTElQTwotKwotKyMgbGRkL3JlYWRl bGYgbGlrZSB0b29sIGZvciBNYWNoLU8gYmluYXJpZXMgb24gTWFjIE9TIFguCi0rT1RPT0w9JGx0 X09UT09MCi0rCi0rIyBsZGQvcmVhZGVsZiBsaWtlIHRvb2wgZm9yIDY0IGJpdCBNYWNoLU8gYmlu YXJpZXMgb24gTWFjIE9TIFggMTAuNC4KLStPVE9PTDY0PSRsdF9PVE9PTDY0Ci0rCi0rIyBPbGQg YXJjaGl2ZSBzdWZmaXggKG5vcm1hbGx5ICJhIikuCi0rbGliZXh0PSRsaWJleHQKLSsKLSsjIFNo YXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkgIi5zbyIpLgotK3NocmV4dF9jbWRzPSRsdF9z aHJleHRfY21kcwotKwotKyMgVGhlIGNvbW1hbmRzIHRvIGV4dHJhY3QgdGhlIGV4cG9ydGVkIHN5 bWJvbCBsaXN0IGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4KLStleHRyYWN0X2V4cHN5bXNfY21kcz0k bHRfZXh0cmFjdF9leHBzeW1zX2NtZHMKLSsKLSsjIFZhcmlhYmxlcyB3aG9zZSB2YWx1ZXMgc2hv dWxkIGJlIHNhdmVkIGluIGxpYnRvb2wgd3JhcHBlciBzY3JpcHRzIGFuZAotKyMgcmVzdG9yZWQg YXQgbGluayB0aW1lLgotK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSRsdF92YXJpYWJsZXNf c2F2ZWRfZm9yX3JlbGluawotKwotKyMgRG8gd2UgbmVlZCB0aGUgImxpYiIgcHJlZml4IGZvciBt b2R1bGVzPwotK25lZWRfbGliX3ByZWZpeD0kbmVlZF9saWJfcHJlZml4Ci0rCi0rIyBEbyB3ZSBu ZWVkIGEgdmVyc2lvbiBmb3IgbGlicmFyaWVzPwotK25lZWRfdmVyc2lvbj0kbmVlZF92ZXJzaW9u Ci0rCi0rIyBMaWJyYXJ5IHZlcnNpb25pbmcgdHlwZS4KLSt2ZXJzaW9uX3R5cGU9JHZlcnNpb25f dHlwZQotKwotKyMgU2hhcmVkIGxpYnJhcnkgcnVudGltZSBwYXRoIHZhcmlhYmxlLgotK3J1bnBh dGhfdmFyPSRydW5wYXRoX3ZhcgotKwotKyMgU2hhcmVkIGxpYnJhcnkgcGF0aCB2YXJpYWJsZS4K LStzaGxpYnBhdGhfdmFyPSRzaGxpYnBhdGhfdmFyCi0rCi0rIyBJcyBzaGxpYnBhdGggc2VhcmNo ZWQgYmVmb3JlIHRoZSBoYXJkLWNvZGVkIGxpYnJhcnkgc2VhcmNoIHBhdGg/Ci0rc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPSRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgKLSsKLSsjIEZv cm1hdCBvZiBsaWJyYXJ5IG5hbWUgcHJlZml4LgotK2xpYm5hbWVfc3BlYz0kbHRfbGlibmFtZV9z cGVjCi0rCi0rIyBMaXN0IG9mIGFyY2hpdmUgbmFtZXMuICBGaXJzdCBuYW1lIGlzIHRoZSByZWFs IG9uZSwgdGhlIHJlc3QgYXJlIGxpbmtzLgotKyMgVGhlIGxhc3QgbmFtZSBpcyB0aGUgb25lIHRo YXQgdGhlIGxpbmtlciBmaW5kcyB3aXRoIC1sTkFNRQotK2xpYnJhcnlfbmFtZXNfc3BlYz0kbHRf bGlicmFyeV9uYW1lc19zcGVjCi0rCi0rIyBUaGUgY29kZWQgbmFtZSBvZiB0aGUgbGlicmFyeSwg aWYgZGlmZmVyZW50IGZyb20gdGhlIHJlYWwgbmFtZS4KLStzb25hbWVfc3BlYz0kbHRfc29uYW1l X3NwZWMKLSsKLSsjIENvbW1hbmQgdG8gdXNlIGFmdGVyIGluc3RhbGxhdGlvbiBvZiBhIHNoYXJl ZCBhcmNoaXZlLgotK3Bvc3RpbnN0YWxsX2NtZHM9JGx0X3Bvc3RpbnN0YWxsX2NtZHMKLSsKLSsj IENvbW1hbmQgdG8gdXNlIGFmdGVyIHVuaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmUu Ci0rcG9zdHVuaW5zdGFsbF9jbWRzPSRsdF9wb3N0dW5pbnN0YWxsX2NtZHMKLSsKLSsjIENvbW1h bmRzIHVzZWQgdG8gZmluaXNoIGEgbGlidG9vbCBsaWJyYXJ5IGluc3RhbGxhdGlvbiBpbiBhIGRp cmVjdG9yeS4KLStmaW5pc2hfY21kcz0kbHRfZmluaXNoX2NtZHMKLSsKLSsjIEFzICJmaW5pc2hf Y21kcyIsIGV4Y2VwdCBhIHNpbmdsZSBzY3JpcHQgZnJhZ21lbnQgdG8gYmUgZXZhbGVkIGJ1dAot KyMgbm90IHNob3duLgotK2ZpbmlzaF9ldmFsPSRsdF9maW5pc2hfZXZhbAotKwotKyMgV2hldGhl ciB3ZSBzaG91bGQgaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIGxpYnJhcmllcy4KLStoYXJk Y29kZV9pbnRvX2xpYnM9JGhhcmRjb2RlX2ludG9fbGlicwotKwotKyMgQ29tcGlsZS10aW1lIHN5 c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzLgotK3N5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz0kbHRfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rCi0rIyBSdW4tdGltZSBzeXN0ZW0gc2Vh cmNoIHBhdGggZm9yIGxpYnJhcmllcy4KLStzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kbHRf c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMKLSsKLSsjIFdoZXRoZXIgZGxvcGVuIGlzIHN1cHBv cnRlZC4KLStkbG9wZW5fc3VwcG9ydD0kZW5hYmxlX2Rsb3BlbgotKwotKyMgV2hldGhlciBkbG9w ZW4gb2YgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgotK2Rsb3Blbl9zZWxmPSRlbmFibGVfZGxvcGVu X3NlbGYKLSsKLSsjIFdoZXRoZXIgZGxvcGVuIG9mIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW1z IGlzIHN1cHBvcnRlZC4KLStkbG9wZW5fc2VsZl9zdGF0aWM9JGVuYWJsZV9kbG9wZW5fc2VsZl9z dGF0aWMKLSsKLSsjIENvbW1hbmRzIHRvIHN0cmlwIGxpYnJhcmllcy4KLStvbGRfc3RyaXBsaWI9 JGx0X29sZF9zdHJpcGxpYgotK3N0cmlwbGliPSRsdF9zdHJpcGxpYgotKwotKwotKyMgVGhlIGxp bmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllcy4KLStMRD0kbHRfTEQKLSsKLSsjIENvbW1hbmRz IHVzZWQgdG8gYnVpbGQgYW4gb2xkLXN0eWxlIGFyY2hpdmUuCi0rb2xkX2FyY2hpdmVfY21kcz0k bHRfb2xkX2FyY2hpdmVfY21kcwotKwotKyMgQSBsYW5ndWFnZSBzcGVjaWZpYyBjb21waWxlci4K LStDQz0kbHRfY29tcGlsZXIKLSsKLSsjIElzIHRoZSBjb21waWxlciB0aGUgR05VIGNvbXBpbGVy PwotK3dpdGhfZ2NjPSRHQ0MKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRp biBmdW5jdGlvbnMuCi0rbm9fYnVpbHRpbl9mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX25vX2J1 aWx0aW5fZmxhZwotKwotKyMgSG93IHRvIHBhc3MgYSBsaW5rZXIgZmxhZyB0aHJvdWdoIHRoZSBj b21waWxlci4KLSt3bD0kbHRfbHRfcHJvZ19jb21waWxlcl93bAotKwotKyMgQWRkaXRpb25hbCBj b21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzLgotK3BpY19mbGFnPSRs dF9sdF9wcm9nX2NvbXBpbGVyX3BpYwotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBwcmV2ZW50IGR5 bmFtaWMgbGlua2luZy4KLStsaW5rX3N0YXRpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYwotKwotKyMgRG9lcyBjb21waWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAt byBvcHRpb25zPwotK2NvbXBpbGVyX2Nfbz0kbHRfbHRfY3ZfcHJvZ19jb21waWxlcl9jX28KLSsK LSsjIFdoZXRoZXIgb3Igbm90IHRvIGFkZCAtbGMgZm9yIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJp ZXMuCi0rYnVpbGRfbGlidG9vbF9uZWVkX2xjPSRhcmNoaXZlX2NtZHNfbmVlZF9sYwotKwotKyMg V2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hhcmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMg YXJlIHN0YXRpYy4KLSthbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXM9JGVu YWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8g YWxsb3cgcmVmbGV4aXZlIGRsb3BlbnMuCi0rZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPSRsdF9l eHBvcnRfZHluYW1pY19mbGFnX3NwZWMKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUg c2hhcmVkIG9iamVjdHMgZGlyZWN0bHkgZnJvbSBhcmNoaXZlcy4KLSt3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYz0kbHRfd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMKLSsKLSsjIFdoZXRoZXIgdGhlIGNv bXBpbGVyIGNvcGVzIHdpdGggcGFzc2luZyBubyBvYmplY3RzIGRpcmVjdGx5LgotK2NvbXBpbGVy X25lZWRzX29iamVjdD0kbHRfY29tcGlsZXJfbmVlZHNfb2JqZWN0Ci0rCi0rIyBDcmVhdGUgYW4g b2xkLXN0eWxlIGFyY2hpdmUgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgotK29sZF9hcmNoaXZlX2Zy b21fbmV3X2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMKLSsKLSsjIENyZWF0ZSBh IHRlbXBvcmFyeSBvbGQtc3R5bGUgYXJjaGl2ZSB0byBsaW5rIGluc3RlYWQgb2YgYSBzaGFyZWQg YXJjaGl2ZS4KLStvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0kbHRfb2xkX2FyY2hpdmVf ZnJvbV9leHBzeW1zX2NtZHMKLSsKLSsjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBzaGFyZWQg YXJjaGl2ZS4KLSthcmNoaXZlX2NtZHM9JGx0X2FyY2hpdmVfY21kcwotK2FyY2hpdmVfZXhwc3lt X2NtZHM9JGx0X2FyY2hpdmVfZXhwc3ltX2NtZHMKLSsKLSsjIENvbW1hbmRzIHVzZWQgdG8gYnVp bGQgYSBsb2FkYWJsZSBtb2R1bGUgaWYgZGlmZmVyZW50IGZyb20gYnVpbGRpbmcKLSsjIGEgc2hh cmVkIGFyY2hpdmUuCi0rbW9kdWxlX2NtZHM9JGx0X21vZHVsZV9jbWRzCi0rbW9kdWxlX2V4cHN5 bV9jbWRzPSRsdF9tb2R1bGVfZXhwc3ltX2NtZHMKLSsKLSsjIFdoZXRoZXIgd2UgYXJlIGJ1aWxk aW5nIHdpdGggR05VIGxkIG9yIG5vdC4KLSt3aXRoX2dudV9sZD0kbHRfd2l0aF9nbnVfbGQKLSsK LSsjIEZsYWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHVuZGVmaW5lZCBzeW1i b2xzIHRvIGJlIGJ1aWx0LgotK2FsbG93X3VuZGVmaW5lZF9mbGFnPSRsdF9hbGxvd191bmRlZmlu ZWRfZmxhZwotKwotKyMgRmxhZyB0aGF0IGVuZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzLgot K25vX3VuZGVmaW5lZF9mbGFnPSRsdF9ub191bmRlZmluZWRfZmxhZwotKwotKyMgRmxhZyB0byBo YXJkY29kZSBcJGxpYmRpciBpbnRvIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLgotKyMgVGhpcyBt dXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5vdCBleGlzdAotK2hhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMKLSsKLSsjIElmIGxkIGlz IHVzZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5h cnkKLSsjIGR1cmluZyBsaW5raW5nLiAgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBk b2VzIG5vdCBleGlzdC4KLStoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSRsdF9oYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX2xkCi0rCi0rIyBXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgIi1y cGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50LgotK2hhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3I9JGx0X2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IKLSsKLSsjIFNldCB0byAieWVz IiBpZiB1c2luZyBESVIvbGliTkFNRVwke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRj b2RlcwotKyMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfZGlyZWN0 PSRoYXJkY29kZV9kaXJlY3QKLSsKLSsjIFNldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFN RVwke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcwotKyMgRElSIGludG8gdGhl IHJlc3VsdGluZyBiaW5hcnkgYW5kIHRoZSByZXN1bHRpbmcgbGlicmFyeSBkZXBlbmRlbmN5IGlz Ci0rIyAiYWJzb2x1dGUiLGkuZSBpbXBvc3NpYmxlIHRvIGNoYW5nZSBieSBzZXR0aW5nIFwke3No bGlicGF0aF92YXJ9IGlmIHRoZQotKyMgbGlicmFyeSBpcyByZWxvY2F0ZWQuCi0raGFyZGNvZGVf ZGlyZWN0X2Fic29sdXRlPSRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUKLSsKLSsjIFNldCB0byAi eWVzIiBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElS Ci0rIyBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgotK2hhcmRjb2RlX21pbnVzX0w9JGhhcmRj b2RlX21pbnVzX0wKLSsKLSsjIFNldCB0byAieWVzIiBpZiB1c2luZyBTSExJQlBBVEhfVkFSPURJ UiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCi0rIyBpbnRvIHRoZSByZXN1bHRpbmcgYmlu YXJ5LgotK2hhcmRjb2RlX3NobGlicGF0aF92YXI9JGhhcmRjb2RlX3NobGlicGF0aF92YXIKLSsK LSsjIFNldCB0byAieWVzIiBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRpY2Fs bHkgaGFyZGNvZGVzIERJUgotKyMgaW50byB0aGUgbGlicmFyeSBhbmQgYWxsIHN1YnNlcXVlbnQg bGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQKLSsjIGFnYWluc3QgaXQuCi0raGFyZGNv ZGVfYXV0b21hdGljPSRoYXJkY29kZV9hdXRvbWF0aWMKLSsKLSsjIFNldCB0byB5ZXMgaWYgbGlu a2VyIGFkZHMgcnVudGltZSBwYXRocyBvZiBkZXBlbmRlbnQgbGlicmFyaWVzCi0rIyB0byBydW50 aW1lIHBhdGggbGlzdC4KLStpbmhlcml0X3JwYXRoPSRpbmhlcml0X3JwYXRoCi0rCi0rIyBXaGV0 aGVyIGxpYnRvb2wgbXVzdCBsaW5rIGEgcHJvZ3JhbSBhZ2FpbnN0IGFsbCBpdHMgZGVwZW5kZW5j eSBsaWJyYXJpZXMuCi0rbGlua19hbGxfZGVwbGlicz0kbGlua19hbGxfZGVwbGlicwotKwotKyMg Rml4IHRoZSBzaGVsbCB2YXJpYWJsZSBcJHNyY2ZpbGUgZm9yIHRoZSBjb21waWxlci4KLStmaXhf c3JjZmlsZV9wYXRoPSRsdF9maXhfc3JjZmlsZV9wYXRoCi0rCi0rIyBTZXQgdG8gInllcyIgaWYg ZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQuCi0rYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSRh bHdheXNfZXhwb3J0X3N5bWJvbHMKLSsKLSsjIFRoZSBjb21tYW5kcyB0byBsaXN0IGV4cG9ydGVk IHN5bWJvbHMuCi0rZXhwb3J0X3N5bWJvbHNfY21kcz0kbHRfZXhwb3J0X3N5bWJvbHNfY21kcwot KwotKyMgU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQg c3ltYm9scy4KLStleGNsdWRlX2V4cHN5bXM9JGx0X2V4Y2x1ZGVfZXhwc3ltcwotKwotKyMgU3lt Ym9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgotK2luY2x1ZGVfZXhwc3ltcz0kbHRf aW5jbHVkZV9leHBzeW1zCi0rCi0rIyBDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgcHJv Z3JhbXMgKGFnYWluc3QgbGlicmFyaWVzKSB3aXRoIHRlbXBsYXRlcy4KLStwcmVsaW5rX2NtZHM9 JGx0X3ByZWxpbmtfY21kcwotKwotKyMgU3BlY2lmeSBmaWxlbmFtZSBjb250YWluaW5nIGlucHV0 IGZpbGVzLgotK2ZpbGVfbGlzdF9zcGVjPSRsdF9maWxlX2xpc3Rfc3BlYwotKwotKyMgSG93IHRv IGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGUuCi0raGFy ZGNvZGVfYWN0aW9uPSRoYXJkY29kZV9hY3Rpb24KLSsKLSsjIFRoZSBkaXJlY3RvcmllcyBzZWFy Y2hlZCBieSB0aGlzIGNvbXBpbGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFyZWQgbGlicmFyeS4KLStj b21waWxlcl9saWJfc2VhcmNoX2RpcnM9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycwotKwot KyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdHMgYmVp bmcgbGlua2VkIHRvCi0rIyBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeS4KLStwcmVkZXBfb2JqZWN0 cz0kbHRfcHJlZGVwX29iamVjdHMKLStwb3N0ZGVwX29iamVjdHM9JGx0X3Bvc3RkZXBfb2JqZWN0 cwotK3ByZWRlcHM9JGx0X3ByZWRlcHMKLStwb3N0ZGVwcz0kbHRfcG9zdGRlcHMKLSsKLSsjIFRo ZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hl biBsaW5raW5nCi0rIyBhIHNoYXJlZCBsaWJyYXJ5LgotK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0 aD0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoCi0rCi0rIyAjIyMgRU5EIExJQlRPT0wgQ09O RklHCi0rCi0rX0xUX0VPRgotKwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgYWl4MyopCi0rICAg IGNhdCA8PFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLSsjIEFJWCBzb21ldGltZXMgaGFzIHByb2Js ZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBwcm9ncmFtLiAgRm9yIHNvbWUKLSsjIHJlYXNvbiwg aWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgcHJv YmxlbXMKLSsjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCi0raWYgdGVzdCAiWCR7Q09MTEVD VF9OQU1FUytzZXR9IiAhPSBYc2V0OyB0aGVuCi0rICBDT0xMRUNUX05BTUVTPQotKyAgZXhwb3J0 IENPTExFQ1RfTkFNRVMKLStmaQotK19MVF9FT0YKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsKLSts dG1haW49IiRhY19hdXhfZGlyL2x0bWFpbi5zaCIKLSsKLSsKLSsgICMgV2UgdXNlIHNlZCBpbnN0 ZWFkIG9mIGNhdCBiZWNhdXNlIGJhc2ggb24gREpHUFAgZ2V0cyBjb25mdXNlZCBpZgotKyAgIyBp ZiBmaW5kcyBtaXhlZCBDUi9MRiBhbmQgTEYtb25seSBsaW5lcy4gIFNpbmNlIHNlZCBvcGVyYXRl cyBpbgotKyAgIyB0ZXh0IG1vZGUsIGl0IHByb3Blcmx5IGNvbnZlcnRzIGxpbmVzIHRvIENSL0xG LiAgVGhpcyBiYXNoIHByb2JsZW0KLSsgICMgaXMgcmVwb3J0ZWRseSBmaXhlZCwgYnV0IHdoeSBu b3QgcnVuIG9uIG9sZCB2ZXJzaW9ucyB0b28/Ci0rICBzZWQgJy9eIyBHZW5lcmF0ZWQgc2hlbGwg ZnVuY3Rpb25zIGluc2VydGVkIGhlcmUvcScgIiRsdG1haW4iID4+ICIkY2ZnZmlsZSIgXAotKyAg ICB8fCAocm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAxKQotKwotKyAgY2FzZSAkeHNpX3NoZWxsIGlu Ci0rICB5ZXMpCi0rICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCi0rCi0rIyBmdW5j X2Rpcm5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50Ci0rIyBDb21wdXRlIHRoZSBk aXJuYW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LAot KyMgb3RoZXJ3aXNlIHNldCByZXN1bHQgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgotK2Z1bmNfZGly bmFtZSAoKQotK3sKLSsgIGNhc2UgJHsxfSBpbgotKyAgICAqLyopIGZ1bmNfZGlybmFtZV9yZXN1 bHQ9IiR7MSUvKn0kezJ9IiA7OwotKyAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30i IDs7Ci0rICBlc2FjCi0rfQotKwotKyMgZnVuY19iYXNlbmFtZSBmaWxlCi0rZnVuY19iYXNlbmFt ZSAoKQotK3sKLSsgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyovfSIKLSt9Ci0rCi0rIyBm dW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNlbWVudAot KyMgcGVyZm9ybSBmdW5jX2Jhc2VuYW1lIGFuZCBmdW5jX2Rpcm5hbWUgaW4gYSBzaW5nbGUgZnVu Y3Rpb24KLSsjIGNhbGw6Ci0rIyAgIGRpcm5hbWU6ICBDb21wdXRlIHRoZSBkaXJuYW1lIG9mIEZJ TEUuICBJZiBub25lbXB0eSwKLSsjICAgICAgICAgICAgIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3Vs dCwgb3RoZXJ3aXNlIHNldCByZXN1bHQKLSsjICAgICAgICAgICAgIHRvIE5PTkRJUl9SRVBMQUNF TUVOVC4KLSsjICAgICAgICAgICAgIHZhbHVlIHJldHVybmVkIGluICIkZnVuY19kaXJuYW1lX3Jl c3VsdCIKLSsjICAgYmFzZW5hbWU6IENvbXB1dGUgZmlsZW5hbWUgb2YgRklMRS4KLSsjICAgICAg ICAgICAgIHZhbHVlIHJldHVuZWQgaW4gIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsjIEltcGxl bWVudGF0aW9uIG11c3QgYmUga2VwdCBzeW5jaHJvbml6ZWQgd2l0aCBmdW5jX2Rpcm5hbWUKLSsj IGFuZCBmdW5jX2Jhc2VuYW1lLiBGb3IgZWZmaWNpZW5jeSwgd2UgZG8gbm90IGRlbGVnYXRlIHRv Ci0rIyB0aG9zZSBmdW5jdGlvbnMgYnV0IGluc3RlYWQgZHVwbGljYXRlIHRoZSBmdW5jdGlvbmFs aXR5IGhlcmUuCi0rZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAoKQotK3sKLSsgIGNhc2UgJHsx fSBpbgotKyAgICAqLyopIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7MSUvKn0kezJ9IiA7OwotKyAg ICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iIDs7Ci0rICBlc2FjCi0rICBmdW5jX2Jh c2VuYW1lX3Jlc3VsdD0iJHsxIyMqL30iCi0rfQotKwotKyMgZnVuY19zdHJpcG5hbWUgcHJlZml4 IHN1ZmZpeCBuYW1lCi0rIyBzdHJpcCBQUkVGSVggYW5kIFNVRkZJWCBvZmYgb2YgTkFNRS4KLSsj IFBSRUZJWCBhbmQgU1VGRklYIG11c3Qgbm90IGNvbnRhaW4gZ2xvYmJpbmcgb3IgcmVnZXggc3Bl Y2lhbAotKyMgY2hhcmFjdGVycywgaGFzaGVzLCBwZXJjZW50IHNpZ25zLCBidXQgU1VGRklYIG1h eSBjb250YWluIGEgbGVhZGluZwotKyMgZG90IChpbiB3aGljaCBjYXNlIHRoYXQgbWF0Y2hlcyBv bmx5IGEgZG90KS4KLStmdW5jX3N0cmlwbmFtZSAoKQotK3sKLSsgICMgcGRrc2ggNS4yLjE0IGRv ZXMgbm90IGRvICR7WCUkWX0gY29ycmVjdGx5IGlmIGJvdGggWCBhbmQgWSBhcmUKLSsgICMgcG9z aXRpb25hbCBwYXJhbWV0ZXJzLCBzbyBhc3NpZ24gb25lIHRvIG9yZGluYXJ5IHBhcmFtZXRlciBm aXJzdC4KLSsgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0kezN9Ci0rICBmdW5jX3N0cmlwbmFtZV9y ZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQjIiR7MX0ifQotKyAgZnVuY19zdHJpcG5hbWVf cmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0JSIkezJ9In0KLSt9Ci0rCi0rIyBmdW5jX29w dF9zcGxpdAotK2Z1bmNfb3B0X3NwbGl0ICgpCi0rewotKyAgZnVuY19vcHRfc3BsaXRfb3B0PSR7 MSUlPSp9Ci0rICBmdW5jX29wdF9zcGxpdF9hcmc9JHsxIyo9fQotK30KLSsKLSsjIGZ1bmNfbG8y byBvYmplY3QKLStmdW5jX2xvMm8gKCkKLSt7Ci0rICBjYXNlICR7MX0gaW4KLSsgICAgKi5sbykg ZnVuY19sbzJvX3Jlc3VsdD0kezElLmxvfS4ke29iamV4dH0gOzsKLSsgICAgKikgICAgZnVuY19s bzJvX3Jlc3VsdD0kezF9IDs7Ci0rICBlc2FjCi0rfQotKwotKyMgZnVuY194Zm9ybSBsaWJvYmot b3Itc291cmNlCi0rZnVuY194Zm9ybSAoKQotK3sKLSsgIGZ1bmNfeGZvcm1fcmVzdWx0PSR7MSUu Kn0ubG8KLSt9Ci0rCi0rIyBmdW5jX2FyaXRoIGFyaXRobWV0aWMtdGVybS4uLgotK2Z1bmNfYXJp dGggKCkKLSt7Ci0rICBmdW5jX2FyaXRoX3Jlc3VsdD0kKCggJCogKSkKLSt9Ci0rCi0rIyBmdW5j X2xlbiBzdHJpbmcKLSsjIFNUUklORyBtYXkgbm90IHN0YXJ0IHdpdGggYSBoeXBoZW4uCi0rZnVu Y19sZW4gKCkKLSt7Ci0rICBmdW5jX2xlbl9yZXN1bHQ9JHsjMX0KLSt9Ci0rCi0rX0xUX0VPRgot KyAgICA7OwotKyAgKikgIyBCb3VybmUgY29tcGF0aWJsZSBmdW5jdGlvbnMuCi0rICAgIGNhdCA8 PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCi0rCi0rIyBmdW5jX2Rpcm5hbWUgZmlsZSBhcHBlbmQg bm9uZGlyX3JlcGxhY2VtZW50Ci0rIyBDb21wdXRlIHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBu b25lbXB0eSwgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LAotKyMgb3RoZXJ3aXNlIHNldCByZXN1 bHQgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgotK2Z1bmNfZGlybmFtZSAoKQotK3sKLSsgICMgRXh0 cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCi0rICBmdW5jX2Rpcm5hbWVfcmVz dWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRkaXJuYW1lImAKLSsgIGlmIHRlc3QgIlgk ZnVuY19kaXJuYW1lX3Jlc3VsdCIgPSAiWCR7MX0iOyB0aGVuCi0rICAgIGZ1bmNfZGlybmFtZV9y ZXN1bHQ9IiR7M30iCi0rICBlbHNlCi0rICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiRmdW5jX2Rp cm5hbWVfcmVzdWx0JHsyfSIKLSsgIGZpCi0rfQotKwotKyMgZnVuY19iYXNlbmFtZSBmaWxlCi0r ZnVuY19iYXNlbmFtZSAoKQotK3sKLSsgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PWAkRUNITyAiWCR7 MX0iIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJgCi0rfQotKwotKwotKyMgZnVuY19zdHJpcG5hbWUg cHJlZml4IHN1ZmZpeCBuYW1lCi0rIyBzdHJpcCBQUkVGSVggYW5kIFNVRkZJWCBvZmYgb2YgTkFN RS4KLSsjIFBSRUZJWCBhbmQgU1VGRklYIG11c3Qgbm90IGNvbnRhaW4gZ2xvYmJpbmcgb3IgcmVn ZXggc3BlY2lhbAotKyMgY2hhcmFjdGVycywgaGFzaGVzLCBwZXJjZW50IHNpZ25zLCBidXQgU1VG RklYIG1heSBjb250YWluIGEgbGVhZGluZwotKyMgZG90IChpbiB3aGljaCBjYXNlIHRoYXQgbWF0 Y2hlcyBvbmx5IGEgZG90KS4KLSsjIGZ1bmNfc3RyaXBfc3VmZml4IHByZWZpeCBuYW1lCi0rZnVu Y19zdHJpcG5hbWUgKCkKLSt7Ci0rICBjYXNlICR7Mn0gaW4KLSsgICAgLiopIGZ1bmNfc3RyaXBu YW1lX3Jlc3VsdD1gJEVDSE8gIlgkezN9IiBcCi0rICAgICAgICAgICB8ICRYc2VkIC1lICJzJV4k ezF9JSUiIC1lICJzJVxcXFwkezJ9XCQlJSJgOzsKLSsgICAgKikgIGZ1bmNfc3RyaXBuYW1lX3Jl c3VsdD1gJEVDSE8gIlgkezN9IiBcCi0rICAgICAgICAgICB8ICRYc2VkIC1lICJzJV4kezF9JSUi IC1lICJzJSR7Mn1cJCUlImA7OwotKyAgZXNhYwotK30KLSsKLSsjIHNlZCBzY3JpcHRzOgotK215 X3NlZF9sb25nX29wdD0nMXMvXlwoLVtePV0qXCk9LiovXDEvO3EnCi0rbXlfc2VkX2xvbmdfYXJn PScxcy9eLVtePV0qPS8vJwotKwotKyMgZnVuY19vcHRfc3BsaXQKLStmdW5jX29wdF9zcGxpdCAo KQotK3sKLSsgIGZ1bmNfb3B0X3NwbGl0X29wdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIk bXlfc2VkX2xvbmdfb3B0ImAKLSsgIGZ1bmNfb3B0X3NwbGl0X2FyZz1gJEVDSE8gIlgkezF9IiB8 ICRYc2VkIC1lICIkbXlfc2VkX2xvbmdfYXJnImAKLSt9Ci0rCi0rIyBmdW5jX2xvMm8gb2JqZWN0 Ci0rZnVuY19sbzJvICgpCi0rewotKyAgZnVuY19sbzJvX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8 ICRYc2VkIC1lICIkbG8ybyJgCi0rfQotKwotKyMgZnVuY194Zm9ybSBsaWJvYmotb3Itc291cmNl Ci0rZnVuY194Zm9ybSAoKQotK3sKLSsgIGZ1bmNfeGZvcm1fcmVzdWx0PWAkRUNITyAiWCR7MX0i IHwgJFhzZWQgLWUgJ3MvXC5bXi5dKiQvLmxvLydgCi0rfQotKwotKyMgZnVuY19hcml0aCBhcml0 aG1ldGljLXRlcm0uLi4KLStmdW5jX2FyaXRoICgpCi0rewotKyAgZnVuY19hcml0aF9yZXN1bHQ9 YGV4cHIgIiRAImAKLSt9Ci0rCi0rIyBmdW5jX2xlbiBzdHJpbmcKLSsjIFNUUklORyBtYXkgbm90 IHN0YXJ0IHdpdGggYSBoeXBoZW4uCi0rZnVuY19sZW4gKCkKLSt7Ci0rICBmdW5jX2xlbl9yZXN1 bHQ9YGV4cHIgIiQxIiA6ICIuKiIgMj4vZGV2L251bGwgfHwgZWNobyAkbWF4X2NtZF9sZW5gCi0r fQotKwotK19MVF9FT0YKLStlc2FjCi0rCi0rY2FzZSAkbHRfc2hlbGxfYXBwZW5kIGluCi0rICB5 ZXMpCi0rICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCi0rCi0rIyBmdW5jX2FwcGVu ZCB2YXIgdmFsdWUKLSsjIEFwcGVuZCBWQUxVRSB0byB0aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxl IFZBUi4KLStmdW5jX2FwcGVuZCAoKQotK3sKLSsgIGV2YWwgIiQxKz1cJDIiCi0rfQotK19MVF9F T0YKLSsgICAgOzsKLSsgICopCi0rICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCi0r Ci0rIyBmdW5jX2FwcGVuZCB2YXIgdmFsdWUKLSsjIEFwcGVuZCBWQUxVRSB0byB0aGUgZW5kIG9m IHNoZWxsIHZhcmlhYmxlIFZBUi4KLStmdW5jX2FwcGVuZCAoKQotK3sKLSsgIGV2YWwgIiQxPVwk JDFcJDIiCi0rfQotKwotK19MVF9FT0YKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsKLSsgIHNlZCAt biAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5zZXJ0ZWQgaGVyZS8sJHAnICIkbHRt YWluIiA+PiAiJGNmZ2ZpbGUiIFwKLSsgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSI7IGV4aXQgMSkK LSsKLSsgIG12IC1mICIkY2ZnZmlsZSIgIiRvZmlsZSIgfHwKLSsgICAgKHJtIC1mICIkb2ZpbGUi ICYmIGNwICIkY2ZnZmlsZSIgIiRvZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlIikKLSsgIGNobW9k ICt4ICIkb2ZpbGUiCi0rCi0rCi0rICAgIGNhdCA8PF9MVF9FT0YgPj4gIiRvZmlsZSIKLSsKLSsj ICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6IENYWAotKwotKyMgVGhlIGxpbmtlciB1c2Vk IHRvIGJ1aWxkIGxpYnJhcmllcy4KLStMRD0kbHRfTERfQ1hYCi0rCi0rIyBDb21tYW5kcyB1c2Vk IHRvIGJ1aWxkIGFuIG9sZC1zdHlsZSBhcmNoaXZlLgotK29sZF9hcmNoaXZlX2NtZHM9JGx0X29s ZF9hcmNoaXZlX2NtZHNfQ1hYCi0rCi0rIyBBIGxhbmd1YWdlIHNwZWNpZmljIGNvbXBpbGVyLgot K0NDPSRsdF9jb21waWxlcl9DWFgKLSsKLSsjIElzIHRoZSBjb21waWxlciB0aGUgR05VIGNvbXBp bGVyPwotK3dpdGhfZ2NjPSRHQ0NfQ1hYCi0rCi0rIyBDb21waWxlciBmbGFnIHRvIHR1cm4gb2Zm IGJ1aWx0aW4gZnVuY3Rpb25zLgotK25vX2J1aWx0aW5fZmxhZz0kbHRfbHRfcHJvZ19jb21waWxl cl9ub19idWlsdGluX2ZsYWdfQ1hYCi0rCi0rIyBIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRo cm91Z2ggdGhlIGNvbXBpbGVyLgotK3dsPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3dsX0NYWAotKwot KyMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3Rz LgotK3BpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgKLSsKLSsjIENvbXBpbGVy IGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmcuCi0rbGlua19zdGF0aWNfZmxhZz0kbHRf bHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYCi0rCi0rIyBEb2VzIGNvbXBpbGVyIHNpbXVsdGFu ZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/Ci0rY29tcGlsZXJfY19vPSRsdF9sdF9j dl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgKLSsKLSsjIFdoZXRoZXIgb3Igbm90IHRvIGFkZCAtbGMg Zm9yIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMuCi0rYnVpbGRfbGlidG9vbF9uZWVkX2xjPSRh cmNoaXZlX2NtZHNfbmVlZF9sY19DWFgKLSsKLSsjIFdoZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93 IHNoYXJlZCBsaWJzIHdoZW4gcnVudGltZSBsaWJzIGFyZSBzdGF0aWMuCi0rYWxsb3dfbGlidG9v bF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzPSRlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1 bnRpbWVzX0NYWAotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVu cy4KLStleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JGx0X2V4cG9ydF9keW5hbWljX2ZsYWdfc3Bl Y19DWFgKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgc2hhcmVkIG9iamVjdHMgZGly ZWN0bHkgZnJvbSBhcmNoaXZlcy4KLSt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0kbHRfd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWNfQ1hYCi0rCi0rIyBXaGV0aGVyIHRoZSBjb21waWxlciBjb3BlcyB3 aXRoIHBhc3Npbmcgbm8gb2JqZWN0cyBkaXJlY3RseS4KLStjb21waWxlcl9uZWVkc19vYmplY3Q9 JGx0X2NvbXBpbGVyX25lZWRzX29iamVjdF9DWFgKLSsKLSsjIENyZWF0ZSBhbiBvbGQtc3R5bGUg YXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21k cz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19DWFgKLSsKLSsjIENyZWF0ZSBhIHRlbXBv cmFyeSBvbGQtc3R5bGUgYXJjaGl2ZSB0byBsaW5rIGluc3RlYWQgb2YgYSBzaGFyZWQgYXJjaGl2 ZS4KLStvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9l eHBzeW1zX2NtZHNfQ1hYCi0rCi0rIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgc2hhcmVkIGFy Y2hpdmUuCi0rYXJjaGl2ZV9jbWRzPSRsdF9hcmNoaXZlX2NtZHNfQ1hYCi0rYXJjaGl2ZV9leHBz eW1fY21kcz0kbHRfYXJjaGl2ZV9leHBzeW1fY21kc19DWFgKLSsKLSsjIENvbW1hbmRzIHVzZWQg dG8gYnVpbGQgYSBsb2FkYWJsZSBtb2R1bGUgaWYgZGlmZmVyZW50IGZyb20gYnVpbGRpbmcKLSsj IGEgc2hhcmVkIGFyY2hpdmUuCi0rbW9kdWxlX2NtZHM9JGx0X21vZHVsZV9jbWRzX0NYWAotK21v ZHVsZV9leHBzeW1fY21kcz0kbHRfbW9kdWxlX2V4cHN5bV9jbWRzX0NYWAotKwotKyMgV2hldGhl ciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQgb3Igbm90LgotK3dpdGhfZ251X2xkPSRsdF93 aXRoX2dudV9sZF9DWFgKLSsKLSsjIEZsYWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3 aXRoIHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0LgotK2FsbG93X3VuZGVmaW5lZF9mbGFn PSRsdF9hbGxvd191bmRlZmluZWRfZmxhZ19DWFgKLSsKLSsjIEZsYWcgdGhhdCBlbmZvcmNlcyBu byB1bmRlZmluZWQgc3ltYm9scy4KLStub191bmRlZmluZWRfZmxhZz0kbHRfbm9fdW5kZWZpbmVk X2ZsYWdfQ1hYCi0rCi0rIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkg ZHVyaW5nIGxpbmtpbmcuCi0rIyBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMg bm90IGV4aXN0Ci0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0kbHRfaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19DWFgKLSsKLSsjIElmIGxkIGlzIHVzZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRv IGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkKLSsjIGR1cmluZyBsaW5raW5nLiAgVGhp cyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5vdCBleGlzdC4KLStoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX2xkPSRsdF9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0NYWAot KwotKyMgV2hldGhlciB3ZSBuZWVkIGEgc2luZ2xlICItcnBhdGgiIGZsYWcgd2l0aCBhIHNlcGFy YXRlZCBhcmd1bWVudC4KLStoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSRsdF9oYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yX0NYWAotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJO QU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCi0rIyBESVIgaW50byB0 aGUgcmVzdWx0aW5nIGJpbmFyeS4KLStoYXJkY29kZV9kaXJlY3Q9JGhhcmRjb2RlX2RpcmVjdF9D WFgKLSsKLSsjIFNldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRVwke3NoYXJlZF9leHR9 IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcwotKyMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5h cnkgYW5kIHRoZSByZXN1bHRpbmcgbGlicmFyeSBkZXBlbmRlbmN5IGlzCi0rIyAiYWJzb2x1dGUi LGkuZSBpbXBvc3NpYmxlIHRvIGNoYW5nZSBieSBzZXR0aW5nIFwke3NobGlicGF0aF92YXJ9IGlm IHRoZQotKyMgbGlicmFyeSBpcyByZWxvY2F0ZWQuCi0raGFyZGNvZGVfZGlyZWN0X2Fic29sdXRl PSRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hYCi0rCi0rIyBTZXQgdG8gInllcyIgaWYgdXNp bmcgdGhlIC1MRElSIGZsYWcgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUgotKyMgaW50byB0 aGUgcmVzdWx0aW5nIGJpbmFyeS4KLStoYXJkY29kZV9taW51c19MPSRoYXJkY29kZV9taW51c19M X0NYWAotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmlu ZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKLSsjIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCi0r aGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0kaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFgKLSsKLSsj IFNldCB0byAieWVzIiBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkg aGFyZGNvZGVzIERJUgotKyMgaW50byB0aGUgbGlicmFyeSBhbmQgYWxsIHN1YnNlcXVlbnQgbGli cmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQKLSsjIGFnYWluc3QgaXQuCi0raGFyZGNvZGVf YXV0b21hdGljPSRoYXJkY29kZV9hdXRvbWF0aWNfQ1hYCi0rCi0rIyBTZXQgdG8geWVzIGlmIGxp bmtlciBhZGRzIHJ1bnRpbWUgcGF0aHMgb2YgZGVwZW5kZW50IGxpYnJhcmllcwotKyMgdG8gcnVu dGltZSBwYXRoIGxpc3QuCi0raW5oZXJpdF9ycGF0aD0kaW5oZXJpdF9ycGF0aF9DWFgKLSsKLSsj IFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBl bmRlbmN5IGxpYnJhcmllcy4KLStsaW5rX2FsbF9kZXBsaWJzPSRsaW5rX2FsbF9kZXBsaWJzX0NY WAotKwotKyMgRml4IHRoZSBzaGVsbCB2YXJpYWJsZSBcJHNyY2ZpbGUgZm9yIHRoZSBjb21waWxl ci4KLStmaXhfc3JjZmlsZV9wYXRoPSRsdF9maXhfc3JjZmlsZV9wYXRoX0NYWAotKwotKyMgU2V0 IHRvICJ5ZXMiIGlmIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJlcXVpcmVkLgotK2Fsd2F5c19leHBv cnRfc3ltYm9scz0kYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0NYWAotKwotKyMgVGhlIGNvbW1hbmRz IHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KLStleHBvcnRfc3ltYm9sc19jbWRzPSRsdF9leHBv cnRfc3ltYm9sc19jbWRzX0NYWAotKwotKyMgU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlz dGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KLStleGNsdWRlX2V4cHN5bXM9JGx0X2V4Y2x1 ZGVfZXhwc3ltc19DWFgKLSsKLSsjIFN5bWJvbHMgdGhhdCBtdXN0IGFsd2F5cyBiZSBleHBvcnRl ZC4KLStpbmNsdWRlX2V4cHN5bXM9JGx0X2luY2x1ZGVfZXhwc3ltc19DWFgKLSsKLSsjIENvbW1h bmRzIG5lY2Vzc2FyeSBmb3IgbGlua2luZyBwcm9ncmFtcyAoYWdhaW5zdCBsaWJyYXJpZXMpIHdp dGggdGVtcGxhdGVzLgotK3ByZWxpbmtfY21kcz0kbHRfcHJlbGlua19jbWRzX0NYWAotKwotKyMg U3BlY2lmeSBmaWxlbmFtZSBjb250YWluaW5nIGlucHV0IGZpbGVzLgotK2ZpbGVfbGlzdF9zcGVj PSRsdF9maWxlX2xpc3Rfc3BlY19DWFgKLSsKLSsjIEhvdyB0byBoYXJkY29kZSBhIHNoYXJlZCBs aWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRhYmxlLgotK2hhcmRjb2RlX2FjdGlvbj0kaGFyZGNv ZGVfYWN0aW9uX0NYWAotKwotKyMgVGhlIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGJ5IHRoaXMgY29t cGlsZXIgd2hlbiBjcmVhdGluZyBhIHNoYXJlZCBsaWJyYXJ5LgotK2NvbXBpbGVyX2xpYl9zZWFy Y2hfZGlycz0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWAotKwotKyMgRGVwZW5kZW5j aWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRv Ci0rIyBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeS4KLStwcmVkZXBfb2JqZWN0cz0kbHRfcHJlZGVw X29iamVjdHNfQ1hYCi0rcG9zdGRlcF9vYmplY3RzPSRsdF9wb3N0ZGVwX29iamVjdHNfQ1hYCi0r cHJlZGVwcz0kbHRfcHJlZGVwc19DWFgKLStwb3N0ZGVwcz0kbHRfcG9zdGRlcHNfQ1hYCi0rCi0r IyBUaGUgbGlicmFyeSBzZWFyY2ggcGF0aCB1c2VkIGludGVybmFsbHkgYnkgdGhlIGNvbXBpbGVy IHdoZW4gbGlua2luZwotKyMgYSBzaGFyZWQgbGlicmFyeS4KLStjb21waWxlcl9saWJfc2VhcmNo X3BhdGg9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFgKLSsKLSsjICMjIyBFTkQgTElC VE9PTCBUQUcgQ09ORklHOiBDWFgKLStfTFRfRU9GCi0rCi0rIDs7Ci0rCi0rICBlc2FjCi0rZG9u ZSAjIGZvciBhY190YWcKLSsKLSsKLSt7IChleGl0IDApOyBleGl0IDA7IH0KLStfQUNFT0YKLStj aG1vZCAreCAkQ09ORklHX1NUQVRVUwotK2FjX2NsZWFuX2ZpbGVzPSRhY19jbGVhbl9maWxlc19z YXZlCi0rCi0rdGVzdCAkYWNfd3JpdGVfZmFpbCA9IDAgfHwKLSsgIHsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiB3cml0ZSBmYWlsdXJlIGNyZWF0aW5nICRDT05GSUdfU1RBVFVT IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogd3JpdGUgZmFpbHVyZSBjcmVhdGluZyAk Q09ORklHX1NUQVRVUyIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsKLSsK LSsjIGNvbmZpZ3VyZSBpcyB3cml0aW5nIHRvIGNvbmZpZy5sb2csIGFuZCB0aGVuIGNhbGxzIGNv bmZpZy5zdGF0dXMuCi0rIyBjb25maWcuc3RhdHVzIGRvZXMgaXRzIG93biByZWRpcmVjdGlvbiwg YXBwZW5kaW5nIHRvIGNvbmZpZy5sb2cuCi0rIyBVbmZvcnR1bmF0ZWx5LCBvbiBET1MgdGhpcyBm YWlscywgYXMgY29uZmlnLmxvZyBpcyBzdGlsbCBrZXB0IG9wZW4KLSsjIGJ5IGNvbmZpZ3VyZSwg c28gY29uZmlnLnN0YXR1cyB3b24ndCBiZSBhYmxlIHRvIHdyaXRlIHRvIGl0OyBpdHMKLSsjIG91 dHB1dCBpcyBzaW1wbHkgZGlzY2FyZGVkLiAgU28gd2UgZXhlYyB0aGUgRkQgdG8gL2Rldi9udWxs LAotKyMgZWZmZWN0aXZlbHkgY2xvc2luZyBjb25maWcubG9nLCBzbyBpdCBjYW4gYmUgcHJvcGVy bHkgKHJlKW9wZW5lZCBhbmQKLSsjIGFwcGVuZGVkIHRvIGJ5IGNvbmZpZy5zdGF0dXMuICBXaGVu IGNvbWluZyBiYWNrIHRvIGNvbmZpZ3VyZSwgd2UKLSsjIG5lZWQgdG8gbWFrZSB0aGUgRkQgYXZh aWxhYmxlIGFnYWluLgotK2lmIHRlc3QgIiRub19jcmVhdGUiICE9IHllczsgdGhlbgotKyAgYWNf Y3Nfc3VjY2Vzcz06Ci0rICBhY19jb25maWdfc3RhdHVzX2FyZ3M9Ci0rICB0ZXN0ICIkc2lsZW50 IiA9IHllcyAmJgotKyAgICBhY19jb25maWdfc3RhdHVzX2FyZ3M9IiRhY19jb25maWdfc3RhdHVz X2FyZ3MgLS1xdWlldCIKLSsgIGV4ZWMgNT4vZGV2L251bGwKLSsgICRTSEVMTCAkQ09ORklHX1NU QVRVUyAkYWNfY29uZmlnX3N0YXR1c19hcmdzIHx8IGFjX2NzX3N1Y2Nlc3M9ZmFsc2UKLSsgIGV4 ZWMgNT4+Y29uZmlnLmxvZwotKyAgIyBVc2UgfHwsIG5vdCAmJiwgdG8gYXZvaWQgZXhpdGluZyBm cm9tIHRoZSBpZiB3aXRoICQ/ID0gMSwgd2hpY2gKLSsgICMgd291bGQgbWFrZSBjb25maWd1cmUg ZmFpbCBpZiB0aGlzIGlzIHRoZSBsYXN0IGluc3RydWN0aW9uLgotKyAgJGFjX2NzX3N1Y2Nlc3Mg fHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci0rZmkKLStpZiB0ZXN0IC1uICIkYWNfdW5yZWNvZ25p emVkX29wdHMiICYmIHRlc3QgIiRlbmFibGVfb3B0aW9uX2NoZWNraW5nIiAhPSBubzsgdGhlbgot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVucmVjb2duaXplZCBvcHRp b25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5J Tkc6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4mMjt9Ci0r ZmkKLSsKLSsKLStlY2hvICIKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSskUEFDS0FHRS0kVkVS U0lPTiBsaWJyYXJ5IGNvbmZpZ3VyYXRpb246Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rCi0r RGlyZWN0b3JpZXM6Ci0rICAtIHByZWZpeCAuLi4uLi4uLi4uLi4uLi4gOiAke3ByZWZpeH0KLSsg IC0gZXhlY19wcmVmaXggLi4uLi4uLi4uLiA6ICR7ZXhlY19wcmVmaXh9Ci0rICAtIGluY2x1ZGVk aXIgLi4uLi4uLi4uLi4gOiAke2luY2x1ZGVkaXJ9Ci0rICAtIGxpYmRpciAuLi4uLi4uLi4uLi4u Li4gOiAke2xpYmRpcn0KLSsgIC0gZG9jZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZG9jZGlyfQot KyAgLSBtYW5kaXIgLi4uLi4uLi4uLi4uLi4uIDogJHttYW5kaXJ9Ci0rICAtIGluZm9kaXIgLi4u Li4uLi4uLi4uLi4gOiAke2luZm9kaXJ9Ci0rCi0rU3dpdGNoZXM6Ci0rICAtIGV4Y2VwdGlvbnMg Li4uLi4uLi4uLi4gOiAke2VuYWJsZV9leGNlcHRpb25zfQotKyAgLSBpbmZvLWRvYyAuLi4uLi4u Li4uLi4uIDogJHtlbmFibGVfaW5mb19kb2N9Ci0rICAtIGh0bWwtZG9jIC4uLi4uLi4uLi4uLi4g OiAke2VuYWJsZV9odG1sX2RvY30KLSsgIC0gc2hhcmVkIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZW5h YmxlX3NoYXJlZH0KLSsgIC0gc3RhdGljIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX3N0YXRp Y30KLSsKLStEb2N1bWVudGF0aW9uIHRvb2xzOgotKyAgLSB0ZXhpbmZvIC4uLi4uLi4uLi4uLi4u IDogJHt0ZXhpbmZvX29rfQotKyAgLSBkb3h5Z2VuIC4uLi4uLi4uLi4uLi4uIDogJHtkb3h5Z2Vu X29rfQotKyAgLSBsYXRleCAuLi4uLi4uLi4uLi4uLi4uIDogJHtsYXRleF9va30KLSsgIC0gZHZp cHMgLi4uLi4uLi4uLi4uLi4uLiA6ICR7ZHZpcHNfb2t9Ci0rICAtIGdob3N0c2NyaXB0IC4uLi4u Li4uLi4gOiAke2dzX29rfQotKwotK1Rlc3RpbmcgdG9vbHM6Ci0rICAtIGRpZmYgLi4uLi4uLi4u Li4uLi4uLi4gOiAke2RpZmZfb2t9Ci0rICAtIHNlZCAuLi4uLi4uLi4uLi4uLi4uLi4gOiAke3Nl ZF9va30KLSsKLStDb21waWxlci9saW5rZXIgZmxhZ3MvbGlicy9kZWZzOgotKyAgLSBDWFggLi4u Li4uLi4uLi4uLi4uLi4uIDogJHtDWFh9Ci0rICAtIENYWEZMQUdTIC4uLi4uLi4uLi4uLi4gOiAk e0NYWEZMQUdTfQotKyAgLSBDUFBGTEFHUyAuLi4uLi4uLi4uLi4uIDogJHtDUFBGTEFHU30KLSsg IC0gTERGTEFHUyAuLi4uLi4uLi4uLi4uLiA6ICR7TERGTEFHU30KLSsgIC0gTElCUyAuLi4uLi4u Li4uLi4uLi4uLiA6ICR7TElCU30KLSsKLStCdXJyaWVkIGhlYWRlciBmaWxlczoKLSsgIC0gU09D SV9IRUFERVJTX0JVUklFRCAuLi4uLi4uIDogJHtlbmFibGVfYnVycmllZF9oZWFkZXJzfQotKyAg LSBNWVNRTF9IRUFERVJTX0JVUklFRCAuLi4uLi4gOiAke2VuYWJsZV9teXNxbF9idXJyaWVkX2hl YWRlcnN9Ci0rICAtIFBPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgLiA6ICR7ZW5hYmxlX3Bvc3Rn cmVzcWxfYnVycmllZF9oZWFkZXJzfQotKwotK0V4dGVybmFsIGxpYnJhcmllczoKLSsgIC0gQm9v c3QgLi4uLi4uLi4uLi4uLi4uLiA6Ci0rICAgIG8gQk9PU1RfVkVSU0lPTiAuLi4uLi4gOiAke0JP T1NUX1ZFUlNJT059Ci0rICAgIG8gQk9PU1RfQ0ZMQUdTIC4uLi4uLi4gOiAke0JPT1NUX0NGTEFH U30KLSsgICAgbyBCT09TVF9MSUJTIC4uLi4uLi4uLiA6ICR7Qk9PU1RfTElCU30KLSsgICAgbyBC T09TVF9EVF9MSUIgLi4uLi4uLiA6ICR7Qk9PU1RfREFURV9USU1FX0xJQn0KLSsgICAgbyBCT09T VF9QT19MSUIgLi4uLi4uLiA6ICR7Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQn0KLSsKLSsgIC0g TXlTUUwgc3VwcG9ydCAuLi4uLi4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfbXlzcWx9Ci0rICAgIG8g TVlTUUxfVkVSU0lPTiAuLi4uLi4gOiAke01ZU1FMX1ZFUlNJT059Ci0rICAgIG8gTVlTUUxfQ0ZM QUdTIC4uLi4uLi4gOiAke01ZU1FMX0NGTEFHU30KLSsgICAgbyBNWVNRTF9MSUJTIC4uLi4uLi4u LiA6ICR7TVlTUUxfTElCU30KLSsKLSsgIC0gUG9zdEdyZVNRTCBzdXBwb3J0IC4uLiA6ICR7ZW5h YmxlX2JhY2tlbmRfcG9zdGdyZXNxbH0KLSsgICAgbyBQT1NUR1JFU1FMX1ZFUlNJT04gLiA6ICR7 UE9TVEdSRVNRTF9WRVJTSU9OfQotKyAgICBvIFBPU1RHUkVTUUxfQ0ZMQUdTIC4uIDogJHtQT1NU R1JFU1FMX0NGTEFHU30KLSsgICAgbyBQT1NUR1JFU1FMX0xERkxBR1MgLiA6ICR7UE9TVEdSRVNR TF9MREZMQUdTfQotKwotKyAgLSBPcmFjbGUgc3VwcG9ydCAuLi4uLi4uIDogJHtlbmFibGVfYmFj a2VuZF9vcmFjbGV9Ci0rICAgIG8gT1JBQ0xFX1ZFUlNJT04gLi4uLi4gOiAke09SQUNMRV9PQ0lf VkVSU0lPTn0KLSsgICAgbyBPUkFDTEVfQ0ZMQUdTIC4uLi4uLiA6ICR7T1JBQ0xFX09DSV9DRkxB R1N9Ci0rICAgIG8gT1JBQ0xFX0xERkxBR1MgLi4uLi4gOiAke09SQUNMRV9PQ0lfTERGTEFHU30K LSsKLSsgIC0gQ1BQVW5pdCAuLi4uLi4uLi4uLi4uLiA6Ci0rICAgIG8gQ1BQVU5JVF9WRVJTSU9O IC4uLi4gOiAke0NQUFVOSVRfVkVSU0lPTn0KLSsgICAgbyBDUFBVTklUX0NGTEFHUyAuLi4uLiA6 ICR7Q1BQVU5JVF9DRkxBR1N9Ci0rICAgIG8gQ1BQVU5JVF9MSUJTIC4uLi4uLi4gOiAke0NQUFVO SVRfTElCU30KLSAKLS1lY2hvICcnCi0tY2QgYnVpbGQvdW5peDsgYGNhdCBsb2NhbC90Y2xgIHBh cnNlLXBhcmFtZXRlcnMudGNsCi0tCi0tZWNobyAnJwotLWVjaG8gJ0NvbmZpZ3VyZSBkb25lLicK LS1lY2hvICdZZXMsIGl0IHdhcyBzaG9ydC4nCi0tZWNobyAnJwotLWVjaG8gJ1lvdSBjYW4gbm93 IHJ1biBtYWtlLicKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStOb3cgdHlwZSAnbWFrZSAmJiBt YWtlIGluc3RhbGwnIHRvIGJ1aWxkIGFuZCBpbnN0YWxsICRQQUNLQUdFLSRWRVJTSU9OIGxpYnJh cnkKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsiCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svY29uZmlndXJlLmFjIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWd1cmUuYWMKLS0tLSBzb2Np LTMuMC4wXzQtcGFjay9jb25maWd1cmUuYWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlndXJlLmFjCTIwMTAtMDEtMjMgMTQ6 NDI6NDIuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDQwMiBAQAotKyMgUHJvY2VzcyB0aGlz IGZpbGUgd2l0aCBhdXRvY29uZiB0byBwcm9kdWNlIGEgY29uZmlndXJlIHNjcmlwdAotKyMtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rQUNfUFJFUkVRKDIuNTkpCi0rQUNfQ09QWVJJR0hUKFtDb3B5cmlnaHQgKEMpIDIw MDQtMjAwOSBNYWNpZWogU29iY3phayA8bXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0Pl0p Ci0rQUNfSU5JVChbU09DSV0sWzMuMC4wXSxbbXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0 XSxbc29jaV0pCi0rQUNfQ09ORklHX0hFQURFUihbc29jaS9jb25maWcuaF0pCi0rQUNfQ09ORklH X1NSQ0RJUihbc29jaS9jb3JlL2Vycm9yLmNwcF0pCi0rQUNfQ09ORklHX0FVWF9ESVIoW2NvbmZp Z10pCi0rQU1fSU5JVF9BVVRPTUFLRQotK0FNX1BBVEhfQ1BQVU5JVCgxLjEwKQotK0FNX0NPTkRJ VElPTkFMKFtIQVZFX0NQUFVOSVRdLCBbdGVzdCAieCRDUFBVTklUX0xJQlMiICE9IHhdKQotKwot KyMgUlBNIHJlbGVhc2UgbnVtYmVyCi0rUlBNX1JFTEVBU0U9IjE2IgotK0FDX1NVQlNUKFJQTV9S RUxFQVNFKQotKwotKyMgU2hhcmVkIGxpYnJhcnkgdmVyc2lvbmluZwotK0dFTkVSSUNfTElCUkFS WV9WRVJTSU9OPSIzOjA6MCIKLSsjICAgICAgICAgICAgICAgICAgICAgICAgfCB8IHwKLSsjICAg ICAgICAgICAgICAgICArLS0tLS0tKyB8ICstLS0rCi0rIyAgICAgICAgICAgICAgICAgfCAgICAg ICAgfCAgICAgfAotKyMgICAgICAgICAgICAgIGN1cnJlbnQ6cmV2aXNpb246YWdlCi0rIyAgICAg ICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAotKyMgICAgICAgICAgICAgICAgIHwgICAgICAg IHwgICAgICstIGluY3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiBhZGRlZDsKLSsjICAg ICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICAgICBzZXQgdG8gemVybyBpZiBpbnRlcmZhY2Vz IGhhdmUgYmVlbiAKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICAgICByZW1vdmVk IG9yIGNoYW5nZWQKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICArLSBpbmNyZW1lbnQgaWYg c291cmNlIGNvZGUgaGFzIGNoYW5nZWQ7Ci0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg c2V0IHRvIHplcm8gaWYgY3VycmVudCBpcyBpbmNyZW1lbnRlZAotKyMgICAgICAgICAgICAgICAg ICstIGluY3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiBhZGRlZCwgcmVtb3ZlZAotKyMg ICAgICAgICAgICAgICAgICAgIG9yIGNoYW5nZWQKLStBQ19TVUJTVChHRU5FUklDX0xJQlJBUllf VkVSU0lPTikKLSsKLSsjIFVwbG9hZCBjb21tYW5kIGZvciBTb3VyY2VGb3JnZQotK1VQTE9BRF9D T01NQU5EPSJuY2Z0cHB1dCAtdiB1cGxvYWQuc291cmNlZm9yZ2UubmV0IC9pbmNvbWluZyIKLStB Q19TVUJTVChVUExPQURfQ09NTUFORCkKLSsKLSsjIENoZWNrIGZvciBob3N0IGFuZCBkaXNhYmxl IGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgaW4gV2luZG93cwotK0FDX0NBTk9OSUNBTF9IT1NU Ci0rY2FzZSAkaG9zdCBpbgotKyAgKi0qLW1zZG9zKiB8ICotKi1nbzMyKiB8ICotKi1taW5ndzMy KiB8ICotKi1jeWd3aW4qIHwgKi0qLXdpbmRvd3MqKSAKLSsgICAgQUNfRElTQUJMRV9TSEFSRUQK LSsgICAgQUNfRU5BQkxFX1NUQVRJQwotKyAgICA7OwotKyAgKikgIAotKyAgICBBQ19FTkFCTEVf U0hBUkVECi0rICAgIEFDX0RJU0FCTEVfU1RBVElDCi0rICAgIDs7Ci0rZXNhYwotKwotKyMgQ2hl Y2tzIGZvciBwcm9ncmFtcwotK3NhdmVfQ1hYRkxBR1M9IiRDWFhGTEFHUyIKLStBQ19QUk9HX0NY WAotK0FDX1BST0dfQ1hYQ1BQCi0rQ1hYRkxBR1M9IiRzYXZlX0NYWEZMQUdTIgotK0FDX1BST0df SU5TVEFMTAotK0FDX1BST0dfTElCVE9PTAotK0FDX1BST0dfTE5fUwotK0FDX1BST0dfTUFLRV9T RVQKLSsKLSsjIFNldCBkZWZhdWx0IGxhbmd1YWdlIHRvIEMrKwotK0FDX0xBTkcoW0MrK10pCi0r Ci0rIyBDaGVjayBmb3IgZXhjZXB0aW9ucyBzd2l0Y2gKLStBQ19BUkdfRU5BQkxFKGV4Y2VwdGlv bnMsCi0rICAgICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWV4Y2VwdGlvbnNd LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbmFibGUgZXhjZXB0aW9ucyBoYW5k bGluZyBtZWNoYW5pc21dKV0sCi0rICAgICAgICAgICAgICBbQUNfREVGSU5FKFtTT0NJX0VYQ0VQ VElPTlNdLCBbMV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgIFtEZWZpbmUgaWYgeW91IHdh bnQgZXhjZXB0aW9ucyBoYW5kbGluZ10pXSkKLSt0ZXN0ICJ4JGVuYWJsZV9leGNlcHRpb25zIiAh PSB4bm8gJiYgZW5hYmxlX2V4Y2VwdGlvbnM9eWVzCi0rdGVzdCAieCRheF9jdl9ib29zdF9kYXRl X3RpbWUiICE9IHhubyAmJiBlbmFibGVfZXhjZXB0aW9ucz15ZXMKLSsKLSsjIENoZWNrIGZvciBp bmZvIHBhZ2VzCi0rQUNfQVJHX0VOQUJMRShpbmZvLWRvYywgCi0rICAgICAgICAgICAgICBbQVNf SEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1pbmZvLWRvY10sCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgW2RvIG5vdCBnZW5lcmF0ZSBJbmZvIGRvY3VtZW50YXRpb25dKV0pCi0rdGVzdCAi eCRlbmFibGVfaW5mb19kb2MiICE9IHhubyAmJiBlbmFibGVfaW5mb19kb2M9eWVzCi0rCi0rCi0r IyBDaGVjayBmb3IgaHRtbC1kb2Mgc3dpdGNoCi0rQUNfQVJHX0VOQUJMRShodG1sLWRvYywgCi0r ICAgICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1odG1sLWRvY10sCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RvIG5vdCBnZW5lcmF0ZSBIVE1MIGRvY3VtZW50 YXRpb25dKV0pCi0rdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiICE9IHhubyAmJiBlbmFibGVfaHRt bF9kb2M9eWVzCi0rCi0rCi0rIyBQcm92aWRlIC0td2l0aC1kb2NkaXIKLStBQ19BUkdfV0lUSChk b2NkaXIsCi0rICAgICAgICAgICAgW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtZG9jZGlyPURJUl0s Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZXQgZG9jdW1lbnRhdGlvbiBkaXJlY3Rv cnkgdG8gRElSXSldLAotKyAgICAgICAgICAgIFtET0NfRElSPSIkd2l0aHZhbCJdLAotKyAgICAg ICAgICAgIFtET0NfRElSPSIiXSkKLStpZiB0ZXN0ICJ4JERPQ19ESVIiICE9IHg7IHRoZW4KLSsg IGRvY2Rpcj0iJERPQ19ESVIiCi0rZWxzZQotKyAgZG9jZGlyPSIke2RhdGFkaXJ9L2RvYy8kUEFD S0FHRS0kVkVSU0lPTiIKLStmaQotK0FDX1NVQlNUKGRvY2RpcikKLSsKLSsKLSsjIENoZWNrIGZv ciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIFNPQ0kgaXRzZWxmKQotK0FDX0FSR19FTkFCTEUo YnVycmllZC1oZWFkZXJzLCAKLSsgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWJ1cnJpZWQtaGVh ZGVyc10sCi0rCQlbaW5jbHVkZSBoZWFkZXIgZmlsZXMgZnJvbSBhIGRpcmVjdG9yeSBzdHJ1Y3R1 cmVdKSwKLSsgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0rICAgICAgZW5hYmxl X2J1cnJpZWRfaGVhZGVycz1ubwotKyAgIGVsc2UKLSsgICAgICBlbmFibGVfYnVycmllZF9oZWFk ZXJzPXllcwotKyAgIGZpIF0sCi0rIFsgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz1ubyBdKQotKyMg VGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCi0rZW5hYmxlX2J1cnJp ZWRfaGVhZGVycz15ZXMKLStBTV9DT05ESVRJT05BTChbU09DSV9IRUFERVJTX0JVUklFRF0sIFt0 ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hlYWRlcnMiID0geHllc10pCi0rQUNfU1VCU1QoU09DSV9I RUFERVJTX0JVUklFRCkKLStpZiB0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hlYWRlcnMiID0geHll czsgdGhlbgotKyAgIENQUEZMQUdTPSItRFNPQ0lfSEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgot K2ZpCi0rCi0rIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBNeVNRTCBjbGll bnQpCi0rQUNfQVJHX0VOQUJMRShteXNxbC1idXJyaWVkLWhlYWRlcnMsIAotKyBBU19IRUxQX1NU UklORyhbLS1lbmFibGUtbXlzcWwtYnVycmllZC1oZWFkZXJzXSwKLSsJCVtpbmNsdWRlIE15U1FM IGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5IHN0cnVjdHVyZV0pLAotKyBbIGlmIHRlc3Qg IiRlbmFibGV2YWwiID0gbm87IHRoZW4KLSsJZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz1u bwotKyAgIGVsc2UKLSsJZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKLSsgICBmaSBd LAotKyBbIGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9bm8gXSkKLSsjIFRlbXBvcmFyeSwg Zm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlvbgotK2VuYWJsZV9teXNxbF9idXJyaWVkX2hl YWRlcnM9eWVzCi0rQU1fQ09ORElUSU9OQUwoW1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURdLAot KyAgICAgICAgICAgICAgIFt0ZXN0ICJ4JGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnMiID0g eHllc10pCi0rQUNfU1VCU1QoU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCkKLStpZiB0ZXN0ICJ4 JGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgIENQUEZMQUdT PSItRFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgotK2ZpCi0rCi0rIyBDaGVj ayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBQb3N0R3JlU1FMIGNsaWVudCkKLStBQ19B UkdfRU5BQkxFKHBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzLCAKLSsgQVNfSEVMUF9TVFJJTkco Wy0tZW5hYmxlLXBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzXSwKLSsJCVtpbmNsdWRlIFBvc3RH cmVTUUwgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3Rvcnkgc3RydWN0dXJlXSksCi0rIFsgaWYg dGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKwllbmFibGVfcG9zdGdyZXNxbF9idXJyaWVk X2hlYWRlcnM9bm8KLSsgICBlbHNlCi0rCWVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVy cz15ZXMKLSsgICBmaSBdLAotKyBbIGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz1u byBdKQotKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCi0rZW5h YmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPXllcwotK0FNX0NPTkRJVElPTkFMKFtTT0NJ X1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURdLAotKyAgICAgICAgICAgICAgIFt0ZXN0ICJ4JGVu YWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzXSkKLStBQ19TVUJTVChTT0NJ X1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQpCi0raWYgdGVzdCAieCRlbmFibGVfcG9zdGdyZXNx bF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgIENQUEZMQUdTPSItRFNPQ0lfUE9T VEdSRVNRTF9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCi0rZmkKLSsKLSsKLSsjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBCb29z dCAoU1RMIEV4dGVuc2lvbnM6IGh0dHA6Ly93d3cuYm9vc3Qub3JnKQotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBWF9CT09TVChb MS4zM10pCi0rQUNfU1VCU1QoQk9PU1RfVkVSU0lPTikKLStBQ19TVUJTVChCT09TVF9DRkxBR1Mp Ci0rQUNfU1VCU1QoQk9PU1RfTElCUykKLStBQ19TVUJTVChCT09TVF9EQVRFX1RJTUVfTElCKQot K0FDX1NVQlNUKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpCi0rQUNfU1VCU1QoQk9PU1RfRklM RVNZU1RFTV9MSUIpCi0rQUNfU1VCU1QoQk9PU1RfVEhSRUFEX0xJQikKLStBQ19TVUJTVChCT09T VF9QWVRIT05fTElCKQotKwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIE15U1FMIGJh Y2tlbmQgKEMgY2xpZW50IEFQSSk6IGh0dHA6Ly93d3cubXlzcWwub3JnCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotK0FDX0FSR19FTkFCTEUoW2JhY2tlbmQtbXlzcWxdLAotKyAgICBBQ19IRUxQX1NUUklORyhb LS1lbmFibGUtYmFja2VuZC1teXNxbF0sCi0rICAgICAgICBbYnVpbGQtaW4gTXlTUUwgYmFja2Vu ZCBzdXBwb3J0IEA8OkBkZWZhdWx0PW5vQDo+QF0KLSsgICAgKSwKLSsgICAgWyBpZiB0ZXN0ICIk ZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0rICAgICAgCSBlbmFibGVfYmFja2VuZF9teXNxbD1ubwot KyAgICAgIGVsc2UKLSsJIGVuYWJsZV9iYWNrZW5kX215c3FsPXllcwotKyAgICAgIGZpIF0sCi0r ICAgIFsgZW5hYmxlX2JhY2tlbmRfbXlzcWw9bm8gXQotKykKLSsKLStpZiB0ZXN0ICJ4JGVuYWJs ZV9iYWNrZW5kX215c3FsIiA9ICJ4eWVzIjsgdGhlbgotKyAgIE1ZU1FMX0RJUlM9Im15c3FsIgot KyMgICBNWVNRTF9SRVFfVkVSU0lPTj0iMy4wLjAiCi0rICAgQVhfTVlTUUwKLStmaQotK0FNX0NP TkRJVElPTkFMKFtIQVZFX01ZU1FMXSwgW3Rlc3QgIngkZW5hYmxlX2JhY2tlbmRfbXlzcWwiID0g eHllc10pCi0rI01ZU1FMX0RJUlM9Im15c3FsIgotKwotK0FDX1NVQlNUKFtNWVNRTF9ESVJTXSkK LSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIE9yYWNsZSBiYWNrZW5kCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rQUNfQVJHX0VOQUJMRShbYmFja2VuZC1vcmFjbGVdLAotKyAgICBBQ19IRUxQ X1NUUklORyhbLS1lbmFibGUtYmFja2VuZC1vcmFjbGVdLAotKwkJICAgW2J1aWxkLWluIE9SQUNM RSBiYWNrZW5kIHN1cHBvcnQgQDw6QGRlZmF1bHQ9bm9AOj5AXSksCi0rICAgIFsgaWYgdGVzdCAi JGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAgICAgIAkgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPW5v Ci0rICAgICAgZWxzZQotKwkgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPXllcwotKyAgICAgIGZpIF0s Ci0rICAgIFsgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPW5vIF0KLSspCi0rCi0raWYgdGVzdCAieCRl bmFibGVfYmFja2VuZF9vcmFjbGUiID0gInh5ZXMiOyB0aGVuCi0rICAgT1JBQ0xFX0RJUlM9Im9y YWNsZSIKLSsgICBPUkFDTEVfT0NJX1JFUV9WRVJTSU9OPSI5LjAiCi0rICAgQVhfTElCX09SQUNM RV9PQ0koJE9SQUNMRV9PQ0lfUkVRX1ZFUlNJT04pCi0rZmkKLStBTV9DT05ESVRJT05BTChbSEFW RV9PUkFDTEVdLCBbdGVzdCAieCRlbmFibGVfYmFja2VuZF9vcmFjbGUiID0geHllc10pCi0rI09S QUNMRV9ESVJTPSJvcmFjbGUiCi0rCi0rQUNfU1VCU1QoW09SQUNMRV9ESVJTXSkKLSsKLSsjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIFBvc3RncmVTUUwgYmFja2VuZAotKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotK0FDX0FSR19FTkFCTEUoW2JhY2tlbmQtcG9zdGdyZXNxbF0sCi0rICAgIEFDX0hFTFBfU1RS SU5HKFstLWVuYWJsZS1iYWNrZW5kLXBvc3RncmVzcWxdLAotKyAgICAgICAgW2J1aWxkLWluIFBv c3RncmVTUUwgYmFja2VuZCBzdXBwb3J0IEA8OkBkZWZhdWx0PW5vQDo+QF0KLSsgICAgKSwKLSsg ICAgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0rICAgICAgCSBlbmFibGVfYmFj a2VuZF9wb3N0Z3Jlc3FsPW5vCi0rICAgICAgZWxzZQotKwkgZW5hYmxlX2JhY2tlbmRfcG9zdGdy ZXNxbD15ZXMKLSsgICAgICBmaSBdLAotKyAgICBbIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9 bm8gXQotKykKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwiID0gInh5 ZXMiOyB0aGVuCi0rICAgUE9TVEdSRVNRTF9ESVJTPSJwb3N0Z3Jlc3FsIgotKyAgIFBPU1RHUkVT UUxfUkVRX1ZFUlNJT049IjcuMS40IgotKyAgIEFYX0xJQl9QT1NUR1JFU1FMKCRQT1NUR1JFU1FM X1JFUV9WRVJTSU9OKQotK2ZpCi0rQU1fQ09ORElUSU9OQUwoW0hBVkVfUE9TVEdSRVNRTF0sIFt0 ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwiID0geHllc10pCi0rI1BPU1RHUkVTUUxf RElSUz0icG9zdGdyZXNxbCIKLSsKLStBQ19TVUJTVChbUE9TVEdSRVNRTF9ESVJTXSkKLSsKLSsK LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIGRvY3VtZW50YXRpb24KLSsjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSsjIENoZWNrcyBmb3IgZG9jdW1lbnRhdGlvbiBidWlsZCB0b29scwotKyNBQ19DSEVDS19Q Uk9HKFt0ZXhpbmZvX29rXSwgW3RleGluZm9dLCBbeWVzXSwgW25vXSkKLSsjaWYgdGVzdCAieCRl bmFibGVfaW5mb19kb2MiICE9IHhubzsgdGhlbgotKyMgIHRlc3QgIngkdGV4aW5mb19vayIgIT0g eHllcyAmJiBlbmFibGVfaW5mb19kb2M9bm8KLSsjICBBQ19QQVRIX1BST0coW1BFUkxdLCBbcGVy bF0sIFtdKQotKyNmaQotK0FNX0NPTkRJVElPTkFMKFtJTkZPX0RPQ10sIFt0ZXN0ICJ4JGVuYWJs ZV9pbmZvX2RvYyIgPSB4eWVzXSkKLSsKLSsjIENoZWNrcyBmb3IgZG9jdW1lbnRhdGlvbiBidWls ZCB0b29scwotK0FDX0NIRUNLX1BST0coW2RveHlnZW5fb2tdLCBbZG94eWdlbl0sIFt5ZXNdLCBb bm9dKQotK0FDX0NIRUNLX1BST0coW2xhdGV4X29rXSwgW2xhdGV4XSwgW3llc10sIFtub10pCi0r QUNfQ0hFQ0tfUFJPRyhbZHZpcHNfb2tdLCBbZHZpcHNdLCBbeWVzXSwgW25vXSkKLStBQ19DSEVD S19QUk9HKFtnc19va10sIFtnc10sIFt5ZXNdLCBbbm9dKQotK2lmIHRlc3QgIngkZW5hYmxlX2h0 bWxfZG9jIiAhPSB4bm87IHRoZW4KLSsgIHRlc3QgIngkZG94eWdlbl9vayIgIT0geHllcyAmJiBl bmFibGVfaHRtbF9kb2M9bm8KLSsgIHRlc3QgIngkbGF0ZXhfb2siICE9IHh5ZXMgJiYgZW5hYmxl X2h0bWxfZG9jPW5vCi0rICB0ZXN0ICJ4JGR2aXBzX29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1s X2RvYz1ubwotKyAgdGVzdCAieCRnc19vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8K LSsgIEFDX1BBVEhfUFJPRyhbUEVSTF0sIFtwZXJsXSwgW10pCi0rZmkKLStBTV9DT05ESVRJT05B TChbSFRNTF9ET0NdLCBbdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiID0geHllc10pCi0rCi0rCi0r IyBDaGVjayBmb3IgZGlmZiBwcm9ncmFtIHVzZWQgZm9yIHRlc3RzCi0rQUNfQ0hFQ0tfUFJPRyhb ZGlmZl9va10sIFtkaWZmXSwgW3llc10sIFtub10pCi0rQUNfQ0hFQ0tfUFJPRyhbc2VkX29rXSwg W3NlZF0sIFt5ZXNdLCBbbm9dKQotK2VuYWJsZV90ZXN0cz15ZXMKLSt0ZXN0ICJ4JGRpZmZfb2si ICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCi0rdGVzdCAieCRzZWRfb2siICE9IHh5ZXMgJiYg ZW5hYmxlX3Rlc3RzPW5vCi0rQU1fQ09ORElUSU9OQUwoW1JVTl9URVNUU10sIFt0ZXN0ICJ4JGVu YWJsZV90ZXN0cyIgPSB4eWVzXSkKLSsKLSsKLSsjIENoZWNrcyBmb3IgaGVhZGVyIGZpbGVzCi0r QUNfSEVBREVSX1NUREMKLStBQ19IRUFERVJfVElNRQotK0FDX0NIRUNLX0hFQURFUlMoW2NtYXRo IFwKLSsgIGRlcXVlIFwKLSsgIGZzdHJlYW0gXAotKyAgaW9tYW5pcCBcCi0rICBpb3N0cmVhbSBc Ci0rICBzc3RyZWFtIFwKLSsgIGxpbWl0cyBcCi0rICBsaXN0IFwKLSsgIHNldCBcCi0rICB2ZWN0 b3IgXAotKyAgbWFwIFwKLSsgIHF1ZXVlIFwKLSsgIHN0ZGV4Y2VwdCBcCi0rICBzdHJpbmddKQot KwotKwotKyMgRGVmaW5lIGNvbmZpZ3VyZWQgZmlsZXMKLStBQ19DT05GSUdfRklMRVMoCi0rCU1h a2VmaWxlCi0rCXNvY2ktY29uZmlnCi0rCXNvY2kucGMKLSsJc29jaS5zcGVjCi0rCXNvY2kvTWFr ZWZpbGUKLSsJc29jaS9jb3JlL01ha2VmaWxlCi0rCXNvY2kvY29yZS90ZXN0L01ha2VmaWxlCi0r CXNvY2kvYmFja2VuZHMvTWFrZWZpbGUKLSsJc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZQot Kwlzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUKLSsJc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL01ha2VmaWxlCi0rCXNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxl Ci0rCXNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlCi0rCXNvY2kvYmFja2VuZHMvb3JhY2xl L3Rlc3QvTWFrZWZpbGUKLSsJbWFuL01ha2VmaWxlCi0rICAgICAgICBkb2MvTWFrZWZpbGUKLSsg ICAgICAgIGRvYy9iYWNrZW5kcy9NYWtlZmlsZQotKwlidWlsZC9NYWtlZmlsZQotKwlidWlsZC91 bml4L01ha2VmaWxlCi0rCWJ1aWxkL21zdmM4MC9NYWtlZmlsZQotKwlidWlsZC9tc3ZjODAvZGxs L01ha2VmaWxlCi0rCWJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUpCi0rCi0rQUNfT1VUUFVUCi0r Ci0rZWNobyAiCi0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rJFBBQ0tBR0UtJFZFUlNJT04gbGli cmFyeSBjb25maWd1cmF0aW9uOgotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKwotK0RpcmVjdG9y aWVzOgotKyAgLSBwcmVmaXggLi4uLi4uLi4uLi4uLi4uIDogJHtwcmVmaXh9Ci0rICAtIGV4ZWNf cHJlZml4IC4uLi4uLi4uLi4gOiAke2V4ZWNfcHJlZml4fQotKyAgLSBpbmNsdWRlZGlyIC4uLi4u Li4uLi4uIDogJHtpbmNsdWRlZGlyfQotKyAgLSBsaWJkaXIgLi4uLi4uLi4uLi4uLi4uIDogJHts aWJkaXJ9Ci0rICAtIGRvY2RpciAuLi4uLi4uLi4uLi4uLi4gOiAke2RvY2Rpcn0KLSsgIC0gbWFu ZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7bWFuZGlyfQotKyAgLSBpbmZvZGlyIC4uLi4uLi4uLi4u Li4uIDogJHtpbmZvZGlyfQotKwotK1N3aXRjaGVzOgotKyAgLSBleGNlcHRpb25zIC4uLi4uLi4u Li4uIDogJHtlbmFibGVfZXhjZXB0aW9uc30KLSsgIC0gaW5mby1kb2MgLi4uLi4uLi4uLi4uLiA6 ICR7ZW5hYmxlX2luZm9fZG9jfQotKyAgLSBodG1sLWRvYyAuLi4uLi4uLi4uLi4uIDogJHtlbmFi bGVfaHRtbF9kb2N9Ci0rICAtIHNoYXJlZCAuLi4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9zaGFy ZWR9Ci0rICAtIHN0YXRpYyAuLi4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9zdGF0aWN9Ci0rCi0r RG9jdW1lbnRhdGlvbiB0b29sczoKLSsgIC0gdGV4aW5mbyAuLi4uLi4uLi4uLi4uLiA6ICR7dGV4 aW5mb19va30KLSsgIC0gZG94eWdlbiAuLi4uLi4uLi4uLi4uLiA6ICR7ZG94eWdlbl9va30KLSsg IC0gbGF0ZXggLi4uLi4uLi4uLi4uLi4uLiA6ICR7bGF0ZXhfb2t9Ci0rICAtIGR2aXBzIC4uLi4u Li4uLi4uLi4uLi4gOiAke2R2aXBzX29rfQotKyAgLSBnaG9zdHNjcmlwdCAuLi4uLi4uLi4uIDog JHtnc19va30KLSsKLStUZXN0aW5nIHRvb2xzOgotKyAgLSBkaWZmIC4uLi4uLi4uLi4uLi4uLi4u IDogJHtkaWZmX29rfQotKyAgLSBzZWQgLi4uLi4uLi4uLi4uLi4uLi4uIDogJHtzZWRfb2t9Ci0r Ci0rQ29tcGlsZXIvbGlua2VyIGZsYWdzL2xpYnMvZGVmczoKLSsgIC0gQ1hYIC4uLi4uLi4uLi4u Li4uLi4uLiA6ICR7Q1hYfQotKyAgLSBDWFhGTEFHUyAuLi4uLi4uLi4uLi4uIDogJHtDWFhGTEFH U30KLSsgIC0gQ1BQRkxBR1MgLi4uLi4uLi4uLi4uLiA6ICR7Q1BQRkxBR1N9Ci0rICAtIExERkxB R1MgLi4uLi4uLi4uLi4uLi4gOiAke0xERkxBR1N9Ci0rICAtIExJQlMgLi4uLi4uLi4uLi4uLi4u Li4gOiAke0xJQlN9Ci0rCi0rQnVycmllZCBoZWFkZXIgZmlsZXM6Ci0rICAtIFNPQ0lfSEVBREVS U19CVVJJRUQgLi4uLi4uLiA6ICR7ZW5hYmxlX2J1cnJpZWRfaGVhZGVyc30KLSsgIC0gTVlTUUxf SEVBREVSU19CVVJJRUQgLi4uLi4uIDogJHtlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzfQot KyAgLSBQT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEIC4gOiAke2VuYWJsZV9wb3N0Z3Jlc3FsX2J1 cnJpZWRfaGVhZGVyc30KLSsKLStFeHRlcm5hbCBsaWJyYXJpZXM6Ci0rICAtIEJvb3N0IC4uLi4u Li4uLi4uLi4uLi4gOgotKyAgICBvIEJPT1NUX1ZFUlNJT04gLi4uLi4uIDogJHtCT09TVF9WRVJT SU9OfQotKyAgICBvIEJPT1NUX0NGTEFHUyAuLi4uLi4uIDogJHtCT09TVF9DRkxBR1N9Ci0rICAg IG8gQk9PU1RfTElCUyAuLi4uLi4uLi4gOiAke0JPT1NUX0xJQlN9Ci0rICAgIG8gQk9PU1RfRFRf TElCIC4uLi4uLi4gOiAke0JPT1NUX0RBVEVfVElNRV9MSUJ9Ci0rICAgIG8gQk9PU1RfUE9fTElC IC4uLi4uLi4gOiAke0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJ9Ci0rCi0rICAtIE15U1FMIHN1 cHBvcnQgLi4uLi4uLi4gOiAke2VuYWJsZV9iYWNrZW5kX215c3FsfQotKyAgICBvIE1ZU1FMX1ZF UlNJT04gLi4uLi4uIDogJHtNWVNRTF9WRVJTSU9OfQotKyAgICBvIE1ZU1FMX0NGTEFHUyAuLi4u Li4uIDogJHtNWVNRTF9DRkxBR1N9Ci0rICAgIG8gTVlTUUxfTElCUyAuLi4uLi4uLi4gOiAke01Z U1FMX0xJQlN9Ci0rCi0rICAtIFBvc3RHcmVTUUwgc3VwcG9ydCAuLi4gOiAke2VuYWJsZV9iYWNr ZW5kX3Bvc3RncmVzcWx9Ci0rICAgIG8gUE9TVEdSRVNRTF9WRVJTSU9OIC4gOiAke1BPU1RHUkVT UUxfVkVSU0lPTn0KLSsgICAgbyBQT1NUR1JFU1FMX0NGTEFHUyAuLiA6ICR7UE9TVEdSRVNRTF9D RkxBR1N9Ci0rICAgIG8gUE9TVEdSRVNRTF9MREZMQUdTIC4gOiAke1BPU1RHUkVTUUxfTERGTEFH U30gCi0rCi0rICAtIE9yYWNsZSBzdXBwb3J0IC4uLi4uLi4gOiAke2VuYWJsZV9iYWNrZW5kX29y YWNsZX0KLSsgICAgbyBPUkFDTEVfVkVSU0lPTiAuLi4uLiA6ICR7T1JBQ0xFX09DSV9WRVJTSU9O fQotKyAgICBvIE9SQUNMRV9DRkxBR1MgLi4uLi4uIDogJHtPUkFDTEVfT0NJX0NGTEFHU30KLSsg ICAgbyBPUkFDTEVfTERGTEFHUyAuLi4uLiA6ICR7T1JBQ0xFX09DSV9MREZMQUdTfSAKLSsKLSsg IC0gQ1BQVW5pdCAuLi4uLi4uLi4uLi4uLiA6Ci0rICAgIG8gQ1BQVU5JVF9WRVJTSU9OIC4uLi4g OiAke0NQUFVOSVRfVkVSU0lPTn0KLSsgICAgbyBDUFBVTklUX0NGTEFHUyAuLi4uLiA6ICR7Q1BQ VU5JVF9DRkxBR1N9Ci0rICAgIG8gQ1BQVU5JVF9MSUJTIC4uLi4uLi4gOiAke0NQUFVOSVRfTElC U30KLSsKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStOb3cgdHlwZSAnbWFrZSAmJiBtYWtlIGlu c3RhbGwnIHRvIGJ1aWxkIGFuZCBpbnN0YWxsICRQQUNLQUdFLSRWRVJTSU9OIGxpYnJhcnkKLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsiCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svQ09Q WUlORyBzb2NpLTMuMC4wX3RyZXAzMDAvQ09QWUlORwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL0NP UFlJTkcJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvQ09QWUlORwkyMDA5LTA0LTE2IDE5OjM3OjEwLjAwMDAwMDAwMCArMDIwMAotQEAg LTIxLDMgKzIxLDQgQEAKLSBGT1IgQU5ZIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVU SEVSIElOIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKLSBBUklTSU5HIEZST00sIE9VVCBP RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIK LSBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0rCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svZG9jL2JhY2tlbmRzL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2Vu ZHMvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2VuZHMvTWFrZWZp bGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvZG9jL2JhY2tlbmRzL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6NTA6MzguMDAw MDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDE2IEBACi0rIyMgZG9jL2JhY2tlbmRzIHN1Yi1kaXJl Y3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0raW5jbHVkZSAk KHNyY2Rpcikvc291cmNlcy5tawotKwotKyMjIFNvdXJjZSBkaXJlY3RvcnkKLSsKLStNQUlOVEFJ TkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9Ci0rCi0rRVhUUkFfRElT VF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gJChodG1sX2Jja19zb3VyY2VzKQotKyNmaXJlYmly ZC5odG1sIGluZGV4Lmh0bWwgbXlzcWwuaHRtbCBvZGJjLmh0bWwgb3JhY2xlLmh0bWwgcG9zdGdy ZXNxbC5odG1sIHNxbGl0ZTMuaHRtbAotKwotK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9S X1NPQ0lfQ09NUEFUSUJJTElUWSkKLSsKLSsjcGtnZGF0YWRpciA9ICQoaHRtbF9iY2tfc291cmNl cykKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2VuZHMvTWFrZWZpbGUuaW4g c29jaS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4w LjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvTWFrZWZp bGUuaW4JMjAxMC0wMS0yMyAxNDo0NDo1MS4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsNjI5 IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFr ZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0 LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAw MywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLAotKyMgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lv biB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlm aWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVk IGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BT RVRfTUFLRUAKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBB Q0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rcGtnbGli ZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIp L0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQ QVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0 NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1ND UklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRB KQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFM TCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5T VEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxk X3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04g PSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJChzcmNk aXIpL3NvdXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBk b2MvYmFja2VuZHMKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1f X2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNx bC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25z Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29s ZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0g JChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChB Q0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hF QURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVT ID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNF UyA9Ci0rUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBk dmktcmVjdXJzaXZlIFwKLSsJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1k YXRhLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVj dXJzaXZlIFwKLSsJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZl IFwKLSsJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwt cmVjdXJzaXZlIFwKLSsJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNp dmUgcGRmLXJlY3Vyc2l2ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCi0r UkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVj dXJzaXZlCVwKLSsgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNp dmUKLStBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2 ZT0pIFwKLSsJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdT IGN0YWdzIENUQUdTIFwKLSsJZGlzdGRpcgotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdz Ci0rRElTVF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04p ICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rYW1fX3JlbGF0aXZp emUgPSBcCi0rICBkaXIwPWBwd2RgOyBcCi0rICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQk LFwxLCc7IFwKLSsgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCi0rICBzZWRfbGFzdD0ncyxe LiovXChbXi9dKlwpJCQsXDEsJzsgXAotKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBc Ci0rICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCi0rICAgIGZpcnN0PWBlY2hvICIkJGRp cjEiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9 ICIuIjsgdGhlbiBcCi0rICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKLSsg ICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIy IjsgXAotKyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFz dCJgOyBcCi0rICAgICAgZWxzZSBcCi0rICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBz ZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKLSsgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIk JGZpcnN0IjsgdGhlbiBcCi0rICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUg IiQkc2VkX3Jlc3QiYDsgXAotKyAgICAgICAgZWxzZSBcCi0rICAgICAgICAgIGRpcjI9Ii4uLyQk ZGlyMiI7IFwKLSsgICAgICAgIGZpOyBcCi0rICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0 IjsgXAotKyAgICAgIGZpOyBcCi0rICAgIGZpOyBcCi0rICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIg fCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgZG9uZTsgXAotKyAgcmVsZGlyPSIkJGRpcjIi Ci0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FV VE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFL RSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxB R1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NU X0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFN U19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNA Ci0rQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAotK0JPT1NUX01QSV9QWVRIT05fTElC ID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBA Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZ VEhPTl9MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9T RVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdO QUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9TWVNURU1fTElCID0gQEJPT1NU X1NZU1RFTV9MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JP T1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktf TElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpB VElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQ TU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQ UEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAot K0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBV TklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBA Q1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NY WEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBE RUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJ TiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStF Q0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0r RkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJS QVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNU QUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BS T0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJ UF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdT ID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJU T09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9C SlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtE SVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElCID0gQE1Z U1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MSUJTID0gQE1Z U1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAot K05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpF WFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBA T1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERG TEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09M ID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0r UEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0g QFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNL QUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNL QUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9 IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBA UE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AK LStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxf VkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1f UkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9N QUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFE RVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVB REVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9T VEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFO RCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGly ID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9i dWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bf c3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhA Ci0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19p bmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3Rl ID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191 bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFz ID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBA YnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBi dWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3Rk aXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9v ayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNf b2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9z dCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0 X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JA Ci0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZv ZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0g QGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGly QAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRl ZGlyQAotK2x0X0VDSE8gPSBAbHRfRUNIT0AKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3Ag PSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0g QHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBA cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNi aW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0 ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0 YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1 aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIg PSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bf c3JjZGlyKQotK2h0bWxfYmNrX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9p bmRleC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvZmlyZWJpcmQuaHRtbCBc Ci0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL215c3FsLmh0bWwgXAotKwkkKHRvcF9zcmNk aXIpL2RvYy9iYWNrZW5kcy9vZGJjLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5k cy9vcmFjbGUuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL3Bvc3RncmVzcWwu aHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL3NxbGl0ZTMuaHRtbAotKwotK01B SU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStTVUJESVJTID0gCi0rRVhUUkFfRElT VF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gJChodG1sX2Jja19zb3VyY2VzKQotKyNmaXJlYmly ZC5odG1sIGluZGV4Lmh0bWwgbXlzcWwuaHRtbCBvZGJjLmh0bWwgb3JhY2xlLmh0bWwgcG9zdGdy ZXNxbC5odG1sIHNxbGl0ZTMuaHRtbAotK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NP Q0lfQ09NUEFUSUJJTElUWSkKLSthbGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0r JChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2Rp cikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9k ZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9k ZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKLSsJICAgICAgICAm JiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAotKwkg ICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRv cF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IGRvYy9iYWNrZW5kcy9NYWtlZmlsZSc7IFwK LSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IGRv Yy9iYWNrZW5kcy9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChz cmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNl ICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwK LSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3Rh dHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRv cF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFt X19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZp Zy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRF TkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJl X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAot KyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Ci0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJt IC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0r IyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7 IHlvdSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRo cm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2 YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZh cmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0r IyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3 aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQg dmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMp OgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdT OyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAg ICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJ ZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsg XAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBl Y2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFy Z2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0 YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207 IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkg ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZp OyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBm YWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwK LSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikg ZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vl bj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1j bGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJ UlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJl dj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2 IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9y IHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1 YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9j YWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3Rhcmdl dD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZh aWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0r CWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3Qg IiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNV QkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIg PSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3Rh Z3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChU QUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc Ci0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0g MTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0r VEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5E RU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJaGVyZT1g cHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYv bnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwK LSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1 ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRo ZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAg IHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJ ICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16ICIkKEVU QUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5p cXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhl biBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFH U19BUkdTKSBcCi0rCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0rCSAgICAk KEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0r CSAgICAgICQkdW5pcXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFH UzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVO Q0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCWxpc3Q9JyQoU09VUkNFUykgJChI RUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQk bGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBl Y2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmls ZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0 eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENU QUdTX0FSR1MpJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1f Q1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1bmlxdWUKLSsKLStHVEFHUzoK LSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiAkKGFt X19jZCkgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRo ZXJlIgotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1Mg R1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3Ry aXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0r CXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwq XS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9 YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1l ICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3Ry aXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0r CSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAn L1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11 YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAg aWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChz cmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBk aXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYg dGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0 ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7 OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRl c3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQk ZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0 ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7 OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRk aXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8k JGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBc Ci0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1Rf U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3Vi ZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAg ICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIp LyQkc3ViZGlyIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld19kaXN0 ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGly KSI7IFwKLSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfdG9wX2Rpc3RkaXI9 JCRyZWxkaXI7IFwKLSsJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19k aXN0ZGlyIiBcXCI7IFwKLSsJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1f X3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKLSsJ ICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCi0rCSAg ICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTog XAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkJYW1fX3NraXBfbW9kZV9maXg9OiBc Ci0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAot Kwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwt YW06IE1ha2VmaWxlCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2luc3Rh bGxkaXJzLWFtOgotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBp bnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJz aXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxs LWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1k YXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFs bC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElO U1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFM TF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAn JChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9H PSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1n ZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xF QU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsJLXRlc3QgLiA9ICIk KHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0g LWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5l cmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0 byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lh bCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMp IiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1cnNp dmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFu LWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmls ZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRh Z3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1y ZWN1cnNpdmUKLSsKLStodG1sLWFtOgotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5m by1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZp LXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwtZXhlYy1hbToKLSsK LStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWh0bWwt YW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFs bC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBk Zi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxs LXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgot KwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAt ZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVy LWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0r Ci0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9v bAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJz aXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiAkKFJFQ1VSU0lW RV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAot KwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKLSsKLSsuUEhPTlk6ICQo UkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdT IFwKLSsJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFu LWxpYnRvb2wgXAotKwljdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1n ZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkg ZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0g aW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZp LWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFs bC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBp bnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCi0rCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBp bnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCi0rCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGly cyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1n ZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1s aWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBcCi0rCXVuaW5z dGFsbCB1bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0rCi0rI3BrZ2RhdGFkaXIgPSAkKGh0 bWxfYmNrX3NvdXJjZXMpCi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBt YWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBs aW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svZG9jL2JhY2tlbmRzL3NvdXJjZXMubWsgc29jaS0z LjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBh Y2svZG9jL2JhY2tlbmRzL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL2JhY2tlbmRzL3NvdXJjZXMubWsJMjAw OS0wNC0xNiAxOTo0Nzo1My4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNyBAQAotK2h0bWxf YmNrX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9pbmRleC5odG1sIFwKLSsJ JCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvZmlyZWJpcmQuaHRtbCBcCi0rCSQodG9wX3NyY2Rp cikvZG9jL2JhY2tlbmRzL215c3FsLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5k cy9vZGJjLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9vcmFjbGUuaHRtbCBc Ci0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL3Bvc3RncmVzcWwuaHRtbCBcCi0rCSQodG9w X3NyY2RpcikvZG9jL2JhY2tlbmRzL3NxbGl0ZTMuaHRtbAotZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL2RvYy9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL01ha2VmaWxlLmFt Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svZG9jL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9NYWtlZmlsZS5h bQkyMDEwLTAxLTIzIDEzOjI1OjU3LjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw4IEBACi0r aW5jbHVkZSAkKHRvcF9zcmNkaXIpL2RvYy9zb3VyY2VzLm1rCi0rCi0rU1VCRElSUyA9IGJhY2tl bmRzCi0rCi0rRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gJChodG1sX2xvY2Fs X3NvdXJjZXMpIFwKLSsJJChjc3NfbG9jYWxfc291cmNlcykgJChpbWdfbG9jYWxfc291cmNlcykK LSsKLStFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svZG9jL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJl cDMwMC9kb2MvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2MvTWFrZWZpbGUu aW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvZG9jL01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTEuMDAwMDAwMDAwICswMTAw Ci1AQCAtMCwwICsxLDYzMiBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtl IDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENv cHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAw MSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMg ZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5s aW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGgg b3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNl cnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUg ZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIg UFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIg PSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQ QUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJleGVjZGly ID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJT SU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0 YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1j Ci0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIg PSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUp Ci0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0g OgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5T VEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0 QAotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmls ZS5pbiBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3NvdXJjZXMubWsKLStzdWJkaXIgPSBkb2MKLStB Q0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVw cyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2Np Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0 b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVy c2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3Ny Y2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9t NF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21r aW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1 aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xF QU5fVlBBVEhfRklMRVMgPQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rUkVDVVJTSVZF X1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwK LSsJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBc Ci0rCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKLSsJaW5z dGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1w ZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKLSsJ aW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2 ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCi0rUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsgIGRp c3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStBTV9SRUNVUlNJ VkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKLSsJJChSRUNV UlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwK LSsJZGlzdGRpcgotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJT ID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VT KSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rYW1fX3JlbGF0aXZpemUgPSBcCi0rICBkaXIw PWBwd2RgOyBcCi0rICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKLSsgIHNl ZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCi0rICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwpJCQs XDEsJzsgXAotKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCi0rICB3aGlsZSB0ZXN0 IC1uICIkJGRpcjEiOyBkbyBcCi0rICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIk JHNlZF9maXJzdCJgOyBcCi0rICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBcCi0r ICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKLSsgICAgICAgIGRpcjI9YGVj aG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAotKyAgICAgICAg ZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCi0rICAgICAg ZWxzZSBcCi0rICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX2Zp cnN0ImA7IFwKLSsgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhlbiBc Ci0rICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsg XAotKyAgICAgICAgZWxzZSBcCi0rICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKLSsgICAg ICAgIGZpOyBcCi0rICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAotKyAgICAgIGZp OyBcCi0rICAgIGZpOyBcCi0rICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2Vk X3Jlc3QiYDsgXAotKyAgZG9uZTsgXAotKyAgcmVsZGlyPSIkJGRpcjIiCi0rQUNMT0NBTCA9IEBB Q0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9D T05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAK LStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFU RV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElC ID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1Rf SU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfTVBJX0xJ QiA9IEBCT09TVF9NUElfTElCQAotK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9Q WVRIT05fTElCQAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9P UFRJT05TX0xJQkAKLStCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJACi0rQk9P U1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJ QiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09T VF9TSUdOQUxTX0xJQkAKLStCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9MSUJACi0r Qk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZF UlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9P U1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1P REVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZM QUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklH ID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQ VU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9 IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZM QUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9 IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAot K0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19U QAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBA Ci0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0r R1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5T VEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFM TF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElO U1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0r TElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xA Ci0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpT QAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9D RkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAotK01Z U1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACi0rTVlT UUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBOTUVE SVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJ UlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxB R1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVf T0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAotK09U T09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBP UlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAK LStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBA UEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0r UEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NP TkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxB R1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xE RkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NU R1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1f UkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0g QFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStT T0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0r U09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJT X0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09N TUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRp ckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNf dG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0 X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRFVNUEJJ TiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19s ZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAK LSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIg PSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFz QAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVp bGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRh ZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9 IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29r QAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVm aXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hv c3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29z ID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBo dG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJA Ci0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xp YmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9 IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK2x0X0VDSE8g PSBAbHRfRUNIT0AKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStv bGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVm aXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zv cm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29r ID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIg PSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBA dGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0 b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAK LStodG1sX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy5odG1sIFwK LSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFzaWNzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9i ZXlvbmQuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2Jvb3N0Lmh0bWwgXAotKwkkKHRvcF9z cmNkaXIpL2RvYy9lcnJvcnMuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2V4Y2hhbmdlLmh0 bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9pbmRleC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9k b2MvaW50ZXJmYWNlcy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvbXVsdGl0aHJlYWRpbmcu aHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3JhdGlvbmFsZS5odG1sIFwKLSsJJCh0b3Bfc3Jj ZGlyKS9kb2MvcmVmZXJlbmNlLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9zdGF0ZW1lbnRz Lmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUuaHRtbAotKwotK2Nzc19sb2Nh bF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2Mvc3R5bGUuY3NzCi0raW1nX2xvY2FsX3NvdXJj ZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUucG5nCi0rU1VCRElSUyA9IGJhY2tlbmRz Ci0rRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gJChodG1sX2xvY2FsX3NvdXJj ZXMpIFwKLSsJJChjc3NfbG9jYWxfc291cmNlcykgJChpbWdfbG9jYWxfc291cmNlcykKLSsKLStF WFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi0rYWxsOiBh bGwtcmVjdXJzaXZlCi0rCi0rLlNVRkZJWEVTOgotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQo c3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL2RvYy9zb3VyY2VzLm1rICQoYW1fX2Nv bmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2Nv bmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICAoIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKLSsJ ICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsg fTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8g JyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IGRvYy9NYWtlZmlsZSc7IFwK LSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IGRv Yy9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01h a2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4g XAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVj aG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3Vi ZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxl c19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6 ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0r CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0r CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoYW1fX2Fj bG9jYWxfbTRfZGVwcyk6Ci0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8K LSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0rIyBUaGlzIGRp cmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4g Y2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhp cyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6 IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlz IHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAgICAgKHdo aWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBy dW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9u IHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgotKwlAZmFp bD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0r CSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZh aWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49 bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0 PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtp bmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4i OyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRh cmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBc Ci0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9u ZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16 ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsPSBmYWls Y29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNl ICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0n ZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAot KwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBs aXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBc Ci0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlm IHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJk aXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0r CXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBp biAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwK LSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0 PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJn ZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwK LSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQo U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGly IiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0 YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgk KGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCi0r CWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVT KQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9u ZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0r CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFn cy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBc Ci0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJaGVyZT1gcHdkYDsgXAot KwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYx OyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0 eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJ ICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGly IGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxz ZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHNldCAiJCRA IiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAot Kwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc Ci0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0g MTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1Mp JCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1 bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0rCSAg ICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBc Ci0rCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0rCSAgICAkKEVUQUdTKSAk KEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICQk dW5pcXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3Mt cmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAot KwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAg JChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8g XAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3Jj ZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9 IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3Ig KGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1Mp JCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFH UykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1g JChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiAkKGFtX19jZCkgJCh0 b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgotKwot K2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BB VEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8g IiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2Rp cnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxl IGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNy Y2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9w X2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAk KE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8 XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0r CWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAt ZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBm aTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8g Ii8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAi JChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZp bGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAg ICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9 ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChk aXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZp bGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAg ICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4 aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwK LSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8 fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47 IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0r CSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0 IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4g OjsgZWxzZSBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGly IjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld19kaXN0ZGlyPSQkcmVs ZGlyOyBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKLSsJ ICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7 IFwKLSsJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg dG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBc XCI7IFwKLSsJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVu Z3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKLSsJICAgICgkKGFt X19jZCkgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0r CSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlz dGRpcj0iJCRuZXdfZGlzdGRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1f X3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCi0rCSAgICAg ICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0r Y2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2Vm aWxlCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJzLWFt OgotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4 ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5p bnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0r Ci0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFsbC1zdHJpcDoK LSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RS SVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9Q Uk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCkn IHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQ KSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgot KwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMp IiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsJLXRlc3QgLiA9ICIkKHNyY2Rpciki IHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05G SUdfQ0xFQU5fVlBBVEhfRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlA ZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0r CUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0 byByZWJ1aWxkLiIKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06IGNsZWFu LWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlz dGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFu LWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmktcmVjdXJz aXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJzaXZlCi0rCi0raHRtbC1hbToK LSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRh LWFtOgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKLSsKLStpbnN0YWxs LWR2aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxs LWh0bWwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1odG1sLWFtOgotKwotK2luc3RhbGwtaW5mbzog aW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaW5mby1hbToKLSsKLStpbnN0YWxs LW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0rCi0raW5zdGFs bC1wZGYtYW06Ci0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0 YWxsLXBzLWFtOgotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBt YWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVy LWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9z dGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0 bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1cnNp dmUKLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwotK3Vu aW5zdGFsbC1hbToKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNV UlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1hbSBpbnN0YWxsLXN0 cmlwIHRhZ3MtcmVjdXJzaXZlCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRT KSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sg Y2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJY3RhZ3MgY3Rh Z3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1s aWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1h bSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3Rh bGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlp bnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8g XAotKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYt YW0gXAotKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hl Y2sgXAotKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRh aW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0 bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBz LWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAotKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0r Ci0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQg YWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQg bGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svZG9jL3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9zb3VyY2VzLm1r Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svZG9jL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL3NvdXJjZXMubWsJ MjAxMC0wMS0yMyAxMzoyNTo1Ny4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMTggQEAKLSto dG1sX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy5odG1sIFwKLSsJ JCh0b3Bfc3JjZGlyKS9kb2MvYmFzaWNzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iZXlv bmQuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2Jvb3N0Lmh0bWwgXAotKwkkKHRvcF9zcmNk aXIpL2RvYy9lcnJvcnMuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2V4Y2hhbmdlLmh0bWwg XAotKwkkKHRvcF9zcmNkaXIpL2RvYy9pbmRleC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2Mv aW50ZXJmYWNlcy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvbXVsdGl0aHJlYWRpbmcuaHRt bCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3JhdGlvbmFsZS5odG1sIFwKLSsJJCh0b3Bfc3JjZGly KS9kb2MvcmVmZXJlbmNlLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9zdGF0ZW1lbnRzLmh0 bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUuaHRtbAotKwotK2Nzc19sb2NhbF9z b3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2Mvc3R5bGUuY3NzCi0rCi0raW1nX2xvY2FsX3NvdXJj ZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUucG5nCi0rCi1kaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svSU5TVEFMTCBzb2NpLTMuMC4wX3RyZXAzMDAvSU5TVEFMTAotLS0tIHNvY2kt My4wLjBfNC1wYWNrL0lOU1RBTEwJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvSU5TVEFMTAkyMDEwLTAxLTIzIDE0OjQ0OjUyLjAwMDAw MDAwMCArMDEwMAotQEAgLTAsMCArMSwzNjUgQEAKLStJbnN0YWxsYXRpb24gSW5zdHJ1Y3Rpb25z Ci0rKioqKioqKioqKioqKioqKioqKioqKioqKgotKwotK0NvcHlyaWdodCAoQykgMTk5NCwgMTk5 NSwgMTk5NiwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwNCwgMjAwNSwKLSsyMDA2LCAyMDA3 LCAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIENvcHlp bmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpbGUsIHdpdGggb3Igd2l0aG91dCBtb2RpZmlj YXRpb24sCi0rYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92 aWRlZCB0aGUgY29weXJpZ2h0Ci0rbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVk LiAgVGhpcyBmaWxlIGlzIG9mZmVyZWQgYXMtaXMsCi0rd2l0aG91dCB3YXJyYW50eSBvZiBhbnkg a2luZC4KLSsKLStCYXNpYyBJbnN0YWxsYXRpb24KLSs9PT09PT09PT09PT09PT09PT0KLSsKLSsg ICBCcmllZmx5LCB0aGUgc2hlbGwgY29tbWFuZHMgYC4vY29uZmlndXJlOyBtYWtlOyBtYWtlIGlu c3RhbGwnIHNob3VsZAotK2NvbmZpZ3VyZSwgYnVpbGQsIGFuZCBpbnN0YWxsIHRoaXMgcGFja2Fn ZS4gIFRoZSBmb2xsb3dpbmcKLSttb3JlLWRldGFpbGVkIGluc3RydWN0aW9ucyBhcmUgZ2VuZXJp Yzsgc2VlIHRoZSBgUkVBRE1FJyBmaWxlIGZvcgotK2luc3RydWN0aW9ucyBzcGVjaWZpYyB0byB0 aGlzIHBhY2thZ2UuICBTb21lIHBhY2thZ2VzIHByb3ZpZGUgdGhpcwotK2BJTlNUQUxMJyBmaWxl IGJ1dCBkbyBub3QgaW1wbGVtZW50IGFsbCBvZiB0aGUgZmVhdHVyZXMgZG9jdW1lbnRlZAotK2Jl bG93LiAgVGhlIGxhY2sgb2YgYW4gb3B0aW9uYWwgZmVhdHVyZSBpbiBhIGdpdmVuIHBhY2thZ2Ug aXMgbm90Ci0rbmVjZXNzYXJpbHkgYSBidWcuICBNb3JlIHJlY29tbWVuZGF0aW9ucyBmb3IgR05V IHBhY2thZ2VzIGNhbiBiZSBmb3VuZAotK2luICpub3RlIE1ha2VmaWxlIENvbnZlbnRpb25zOiAo c3RhbmRhcmRzKU1ha2VmaWxlIENvbnZlbnRpb25zLgotKwotKyAgIFRoZSBgY29uZmlndXJlJyBz aGVsbCBzY3JpcHQgYXR0ZW1wdHMgdG8gZ3Vlc3MgY29ycmVjdCB2YWx1ZXMgZm9yCi0rdmFyaW91 cyBzeXN0ZW0tZGVwZW5kZW50IHZhcmlhYmxlcyB1c2VkIGR1cmluZyBjb21waWxhdGlvbi4gIEl0 IHVzZXMKLSt0aG9zZSB2YWx1ZXMgdG8gY3JlYXRlIGEgYE1ha2VmaWxlJyBpbiBlYWNoIGRpcmVj dG9yeSBvZiB0aGUgcGFja2FnZS4KLStJdCBtYXkgYWxzbyBjcmVhdGUgb25lIG9yIG1vcmUgYC5o JyBmaWxlcyBjb250YWluaW5nIHN5c3RlbS1kZXBlbmRlbnQKLStkZWZpbml0aW9ucy4gIEZpbmFs bHksIGl0IGNyZWF0ZXMgYSBzaGVsbCBzY3JpcHQgYGNvbmZpZy5zdGF0dXMnIHRoYXQKLSt5b3Ug Y2FuIHJ1biBpbiB0aGUgZnV0dXJlIHRvIHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRp b24sIGFuZCBhCi0rZmlsZSBgY29uZmlnLmxvZycgY29udGFpbmluZyBjb21waWxlciBvdXRwdXQg KHVzZWZ1bCBtYWlubHkgZm9yCi0rZGVidWdnaW5nIGBjb25maWd1cmUnKS4KLSsKLSsgICBJdCBj YW4gYWxzbyB1c2UgYW4gb3B0aW9uYWwgZmlsZSAodHlwaWNhbGx5IGNhbGxlZCBgY29uZmlnLmNh Y2hlJwotK2FuZCBlbmFibGVkIHdpdGggYC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnIG9yIHNp bXBseSBgLUMnKSB0aGF0IHNhdmVzCi0rdGhlIHJlc3VsdHMgb2YgaXRzIHRlc3RzIHRvIHNwZWVk IHVwIHJlY29uZmlndXJpbmcuICBDYWNoaW5nIGlzCi0rZGlzYWJsZWQgYnkgZGVmYXVsdCB0byBw cmV2ZW50IHByb2JsZW1zIHdpdGggYWNjaWRlbnRhbCB1c2Ugb2Ygc3RhbGUKLStjYWNoZSBmaWxl cy4KLSsKLSsgICBJZiB5b3UgbmVlZCB0byBkbyB1bnVzdWFsIHRoaW5ncyB0byBjb21waWxlIHRo ZSBwYWNrYWdlLCBwbGVhc2UgdHJ5Ci0rdG8gZmlndXJlIG91dCBob3cgYGNvbmZpZ3VyZScgY291 bGQgY2hlY2sgd2hldGhlciB0byBkbyB0aGVtLCBhbmQgbWFpbAotK2RpZmZzIG9yIGluc3RydWN0 aW9ucyB0byB0aGUgYWRkcmVzcyBnaXZlbiBpbiB0aGUgYFJFQURNRScgc28gdGhleSBjYW4KLSti ZSBjb25zaWRlcmVkIGZvciB0aGUgbmV4dCByZWxlYXNlLiAgSWYgeW91IGFyZSB1c2luZyB0aGUg Y2FjaGUsIGFuZCBhdAotK3NvbWUgcG9pbnQgYGNvbmZpZy5jYWNoZScgY29udGFpbnMgcmVzdWx0 cyB5b3UgZG9uJ3Qgd2FudCB0byBrZWVwLCB5b3UKLSttYXkgcmVtb3ZlIG9yIGVkaXQgaXQuCi0r Ci0rICAgVGhlIGZpbGUgYGNvbmZpZ3VyZS5hYycgKG9yIGBjb25maWd1cmUuaW4nKSBpcyB1c2Vk IHRvIGNyZWF0ZQotK2Bjb25maWd1cmUnIGJ5IGEgcHJvZ3JhbSBjYWxsZWQgYGF1dG9jb25mJy4g IFlvdSBuZWVkIGBjb25maWd1cmUuYWMnIGlmCi0reW91IHdhbnQgdG8gY2hhbmdlIGl0IG9yIHJl Z2VuZXJhdGUgYGNvbmZpZ3VyZScgdXNpbmcgYSBuZXdlciB2ZXJzaW9uCi0rb2YgYGF1dG9jb25m Jy4KLSsKLSsgICBUaGUgc2ltcGxlc3Qgd2F5IHRvIGNvbXBpbGUgdGhpcyBwYWNrYWdlIGlzOgot KwotKyAgMS4gYGNkJyB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIHBhY2thZ2UncyBz b3VyY2UgY29kZSBhbmQgdHlwZQotKyAgICAgYC4vY29uZmlndXJlJyB0byBjb25maWd1cmUgdGhl IHBhY2thZ2UgZm9yIHlvdXIgc3lzdGVtLgotKwotKyAgICAgUnVubmluZyBgY29uZmlndXJlJyBt aWdodCB0YWtlIGEgd2hpbGUuICBXaGlsZSBydW5uaW5nLCBpdCBwcmludHMKLSsgICAgIHNvbWUg bWVzc2FnZXMgdGVsbGluZyB3aGljaCBmZWF0dXJlcyBpdCBpcyBjaGVja2luZyBmb3IuCi0rCi0r ICAyLiBUeXBlIGBtYWtlJyB0byBjb21waWxlIHRoZSBwYWNrYWdlLgotKwotKyAgMy4gT3B0aW9u YWxseSwgdHlwZSBgbWFrZSBjaGVjaycgdG8gcnVuIGFueSBzZWxmLXRlc3RzIHRoYXQgY29tZSB3 aXRoCi0rICAgICB0aGUgcGFja2FnZSwgZ2VuZXJhbGx5IHVzaW5nIHRoZSBqdXN0LWJ1aWx0IHVu aW5zdGFsbGVkIGJpbmFyaWVzLgotKwotKyAgNC4gVHlwZSBgbWFrZSBpbnN0YWxsJyB0byBpbnN0 YWxsIHRoZSBwcm9ncmFtcyBhbmQgYW55IGRhdGEgZmlsZXMgYW5kCi0rICAgICBkb2N1bWVudGF0 aW9uLiAgV2hlbiBpbnN0YWxsaW5nIGludG8gYSBwcmVmaXggb3duZWQgYnkgcm9vdCwgaXQgaXMK LSsgICAgIHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhY2thZ2UgYmUgY29uZmlndXJlZCBhbmQgYnVp bHQgYXMgYSByZWd1bGFyCi0rICAgICB1c2VyLCBhbmQgb25seSB0aGUgYG1ha2UgaW5zdGFsbCcg cGhhc2UgZXhlY3V0ZWQgd2l0aCByb290Ci0rICAgICBwcml2aWxlZ2VzLgotKwotKyAgNS4gT3B0 aW9uYWxseSwgdHlwZSBgbWFrZSBpbnN0YWxsY2hlY2snIHRvIHJlcGVhdCBhbnkgc2VsZi10ZXN0 cywgYnV0Ci0rICAgICB0aGlzIHRpbWUgdXNpbmcgdGhlIGJpbmFyaWVzIGluIHRoZWlyIGZpbmFs IGluc3RhbGxlZCBsb2NhdGlvbi4KLSsgICAgIFRoaXMgdGFyZ2V0IGRvZXMgbm90IGluc3RhbGwg YW55dGhpbmcuICBSdW5uaW5nIHRoaXMgdGFyZ2V0IGFzIGEKLSsgICAgIHJlZ3VsYXIgdXNlciwg cGFydGljdWxhcmx5IGlmIHRoZSBwcmlvciBgbWFrZSBpbnN0YWxsJyByZXF1aXJlZAotKyAgICAg cm9vdCBwcml2aWxlZ2VzLCB2ZXJpZmllcyB0aGF0IHRoZSBpbnN0YWxsYXRpb24gY29tcGxldGVk Ci0rICAgICBjb3JyZWN0bHkuCi0rCi0rICA2LiBZb3UgY2FuIHJlbW92ZSB0aGUgcHJvZ3JhbSBi aW5hcmllcyBhbmQgb2JqZWN0IGZpbGVzIGZyb20gdGhlCi0rICAgICBzb3VyY2UgY29kZSBkaXJl Y3RvcnkgYnkgdHlwaW5nIGBtYWtlIGNsZWFuJy4gIFRvIGFsc28gcmVtb3ZlIHRoZQotKyAgICAg ZmlsZXMgdGhhdCBgY29uZmlndXJlJyBjcmVhdGVkIChzbyB5b3UgY2FuIGNvbXBpbGUgdGhlIHBh Y2thZ2UgZm9yCi0rICAgICBhIGRpZmZlcmVudCBraW5kIG9mIGNvbXB1dGVyKSwgdHlwZSBgbWFr ZSBkaXN0Y2xlYW4nLiAgVGhlcmUgaXMKLSsgICAgIGFsc28gYSBgbWFrZSBtYWludGFpbmVyLWNs ZWFuJyB0YXJnZXQsIGJ1dCB0aGF0IGlzIGludGVuZGVkIG1haW5seQotKyAgICAgZm9yIHRoZSBw YWNrYWdlJ3MgZGV2ZWxvcGVycy4gIElmIHlvdSB1c2UgaXQsIHlvdSBtYXkgaGF2ZSB0byBnZXQK LSsgICAgIGFsbCBzb3J0cyBvZiBvdGhlciBwcm9ncmFtcyBpbiBvcmRlciB0byByZWdlbmVyYXRl IGZpbGVzIHRoYXQgY2FtZQotKyAgICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotKwotKyAgNy4g T2Z0ZW4sIHlvdSBjYW4gYWxzbyB0eXBlIGBtYWtlIHVuaW5zdGFsbCcgdG8gcmVtb3ZlIHRoZSBp bnN0YWxsZWQKLSsgICAgIGZpbGVzIGFnYWluLiAgSW4gcHJhY3RpY2UsIG5vdCBhbGwgcGFja2Fn ZXMgaGF2ZSB0ZXN0ZWQgdGhhdAotKyAgICAgdW5pbnN0YWxsYXRpb24gd29ya3MgY29ycmVjdGx5 LCBldmVuIHRob3VnaCBpdCBpcyByZXF1aXJlZCBieSB0aGUKLSsgICAgIEdOVSBDb2RpbmcgU3Rh bmRhcmRzLgotKwotKyAgOC4gU29tZSBwYWNrYWdlcywgcGFydGljdWxhcmx5IHRob3NlIHRoYXQg dXNlIEF1dG9tYWtlLCBwcm92aWRlIGBtYWtlCi0rICAgICBkaXN0Y2hlY2snLCB3aGljaCBjYW4g YnkgdXNlZCBieSBkZXZlbG9wZXJzIHRvIHRlc3QgdGhhdCBhbGwgb3RoZXIKLSsgICAgIHRhcmdl dHMgbGlrZSBgbWFrZSBpbnN0YWxsJyBhbmQgYG1ha2UgdW5pbnN0YWxsJyB3b3JrIGNvcnJlY3Rs eS4KLSsgICAgIFRoaXMgdGFyZ2V0IGlzIGdlbmVyYWxseSBub3QgcnVuIGJ5IGVuZCB1c2Vycy4K LSsKLStDb21waWxlcnMgYW5kIE9wdGlvbnMKLSs9PT09PT09PT09PT09PT09PT09PT0KLSsKLSsg ICBTb21lIHN5c3RlbXMgcmVxdWlyZSB1bnVzdWFsIG9wdGlvbnMgZm9yIGNvbXBpbGF0aW9uIG9y IGxpbmtpbmcgdGhhdAotK3RoZSBgY29uZmlndXJlJyBzY3JpcHQgZG9lcyBub3Qga25vdyBhYm91 dC4gIFJ1biBgLi9jb25maWd1cmUgLS1oZWxwJwotK2ZvciBkZXRhaWxzIG9uIHNvbWUgb2YgdGhl IHBlcnRpbmVudCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCi0rCi0rICAgWW91IGNhbiBnaXZlIGBj b25maWd1cmUnIGluaXRpYWwgdmFsdWVzIGZvciBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMKLSti eSBzZXR0aW5nIHZhcmlhYmxlcyBpbiB0aGUgY29tbWFuZCBsaW5lIG9yIGluIHRoZSBlbnZpcm9u bWVudC4gIEhlcmUKLStpcyBhbiBleGFtcGxlOgotKwotKyAgICAgLi9jb25maWd1cmUgQ0M9Yzk5 IENGTEFHUz0tZyBMSUJTPS1scG9zaXgKLSsKLSsgICAqTm90ZSBEZWZpbmluZyBWYXJpYWJsZXM6 OiwgZm9yIG1vcmUgZGV0YWlscy4KLSsKLStDb21waWxpbmcgRm9yIE11bHRpcGxlIEFyY2hpdGVj dHVyZXMKLSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSsKLSsgICBZb3Ug Y2FuIGNvbXBpbGUgdGhlIHBhY2thZ2UgZm9yIG1vcmUgdGhhbiBvbmUga2luZCBvZiBjb21wdXRl ciBhdCB0aGUKLStzYW1lIHRpbWUsIGJ5IHBsYWNpbmcgdGhlIG9iamVjdCBmaWxlcyBmb3IgZWFj aCBhcmNoaXRlY3R1cmUgaW4gdGhlaXIKLStvd24gZGlyZWN0b3J5LiAgVG8gZG8gdGhpcywgeW91 IGNhbiB1c2UgR05VIGBtYWtlJy4gIGBjZCcgdG8gdGhlCi0rZGlyZWN0b3J5IHdoZXJlIHlvdSB3 YW50IHRoZSBvYmplY3QgZmlsZXMgYW5kIGV4ZWN1dGFibGVzIHRvIGdvIGFuZCBydW4KLSt0aGUg YGNvbmZpZ3VyZScgc2NyaXB0LiAgYGNvbmZpZ3VyZScgYXV0b21hdGljYWxseSBjaGVja3MgZm9y IHRoZQotK3NvdXJjZSBjb2RlIGluIHRoZSBkaXJlY3RvcnkgdGhhdCBgY29uZmlndXJlJyBpcyBp biBhbmQgaW4gYC4uJy4gIFRoaXMKLStpcyBrbm93biBhcyBhICJWUEFUSCIgYnVpbGQuCi0rCi0r ICAgV2l0aCBhIG5vbi1HTlUgYG1ha2UnLCBpdCBpcyBzYWZlciB0byBjb21waWxlIHRoZSBwYWNr YWdlIGZvciBvbmUKLSthcmNoaXRlY3R1cmUgYXQgYSB0aW1lIGluIHRoZSBzb3VyY2UgY29kZSBk aXJlY3RvcnkuICBBZnRlciB5b3UgaGF2ZQotK2luc3RhbGxlZCB0aGUgcGFja2FnZSBmb3Igb25l IGFyY2hpdGVjdHVyZSwgdXNlIGBtYWtlIGRpc3RjbGVhbicgYmVmb3JlCi0rcmVjb25maWd1cmlu ZyBmb3IgYW5vdGhlciBhcmNoaXRlY3R1cmUuCi0rCi0rICAgT24gTWFjT1MgWCAxMC41IGFuZCBs YXRlciBzeXN0ZW1zLCB5b3UgY2FuIGNyZWF0ZSBsaWJyYXJpZXMgYW5kCi0rZXhlY3V0YWJsZXMg dGhhdCB3b3JrIG9uIG11bHRpcGxlIHN5c3RlbSB0eXBlcy0ta25vd24gYXMgImZhdCIgb3IKLSsi dW5pdmVyc2FsIiBiaW5hcmllcy0tYnkgc3BlY2lmeWluZyBtdWx0aXBsZSBgLWFyY2gnIG9wdGlv bnMgdG8gdGhlCi0rY29tcGlsZXIgYnV0IG9ubHkgYSBzaW5nbGUgYC1hcmNoJyBvcHRpb24gdG8g dGhlIHByZXByb2Nlc3Nvci4gIExpa2UKLSt0aGlzOgotKwotKyAgICAgLi9jb25maWd1cmUgQ0M9 ImdjYyAtYXJjaCBpMzg2IC1hcmNoIHg4Nl82NCAtYXJjaCBwcGMgLWFyY2ggcHBjNjQiIFwKLSsg ICAgICAgICAgICAgICAgIENYWD0iZysrIC1hcmNoIGkzODYgLWFyY2ggeDg2XzY0IC1hcmNoIHBw YyAtYXJjaCBwcGM2NCIgXAotKyAgICAgICAgICAgICAgICAgQ1BQPSJnY2MgLUUiIENYWENQUD0i ZysrIC1FIgotKwotKyAgIFRoaXMgaXMgbm90IGd1YXJhbnRlZWQgdG8gcHJvZHVjZSB3b3JraW5n IG91dHB1dCBpbiBhbGwgY2FzZXMsIHlvdQotK21heSBoYXZlIHRvIGJ1aWxkIG9uZSBhcmNoaXRl Y3R1cmUgYXQgYSB0aW1lIGFuZCBjb21iaW5lIHRoZSByZXN1bHRzCi0rdXNpbmcgdGhlIGBsaXBv JyB0b29sIGlmIHlvdSBoYXZlIHByb2JsZW1zLgotKwotK0luc3RhbGxhdGlvbiBOYW1lcwotKz09 PT09PT09PT09PT09PT09PQotKwotKyAgIEJ5IGRlZmF1bHQsIGBtYWtlIGluc3RhbGwnIGluc3Rh bGxzIHRoZSBwYWNrYWdlJ3MgY29tbWFuZHMgdW5kZXIKLStgL3Vzci9sb2NhbC9iaW4nLCBpbmNs dWRlIGZpbGVzIHVuZGVyIGAvdXNyL2xvY2FsL2luY2x1ZGUnLCBldGMuICBZb3UKLStjYW4gc3Bl Y2lmeSBhbiBpbnN0YWxsYXRpb24gcHJlZml4IG90aGVyIHRoYW4gYC91c3IvbG9jYWwnIGJ5IGdp dmluZwotK2Bjb25maWd1cmUnIHRoZSBvcHRpb24gYC0tcHJlZml4PVBSRUZJWCcsIHdoZXJlIFBS RUZJWCBtdXN0IGJlIGFuCi0rYWJzb2x1dGUgZmlsZSBuYW1lLgotKwotKyAgIFlvdSBjYW4gc3Bl Y2lmeSBzZXBhcmF0ZSBpbnN0YWxsYXRpb24gcHJlZml4ZXMgZm9yCi0rYXJjaGl0ZWN0dXJlLXNw ZWNpZmljIGZpbGVzIGFuZCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZmlsZXMuICBJZiB5b3UK LStwYXNzIHRoZSBvcHRpb24gYC0tZXhlYy1wcmVmaXg9UFJFRklYJyB0byBgY29uZmlndXJlJywg dGhlIHBhY2thZ2UgdXNlcwotK1BSRUZJWCBhcyB0aGUgcHJlZml4IGZvciBpbnN0YWxsaW5nIHBy b2dyYW1zIGFuZCBsaWJyYXJpZXMuCi0rRG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZGF0YSBmaWxl cyBzdGlsbCB1c2UgdGhlIHJlZ3VsYXIgcHJlZml4LgotKwotKyAgIEluIGFkZGl0aW9uLCBpZiB5 b3UgdXNlIGFuIHVudXN1YWwgZGlyZWN0b3J5IGxheW91dCB5b3UgY2FuIGdpdmUKLStvcHRpb25z IGxpa2UgYC0tYmluZGlyPURJUicgdG8gc3BlY2lmeSBkaWZmZXJlbnQgdmFsdWVzIGZvciBwYXJ0 aWN1bGFyCi0ra2luZHMgb2YgZmlsZXMuICBSdW4gYGNvbmZpZ3VyZSAtLWhlbHAnIGZvciBhIGxp c3Qgb2YgdGhlIGRpcmVjdG9yaWVzCi0reW91IGNhbiBzZXQgYW5kIHdoYXQga2luZHMgb2YgZmls ZXMgZ28gaW4gdGhlbS4gIEluIGdlbmVyYWwsIHRoZQotK2RlZmF1bHQgZm9yIHRoZXNlIG9wdGlv bnMgaXMgZXhwcmVzc2VkIGluIHRlcm1zIG9mIGAke3ByZWZpeH0nLCBzbyB0aGF0Ci0rc3BlY2lm eWluZyBqdXN0IGAtLXByZWZpeCcgd2lsbCBhZmZlY3QgYWxsIG9mIHRoZSBvdGhlciBkaXJlY3Rv cnkKLStzcGVjaWZpY2F0aW9ucyB0aGF0IHdlcmUgbm90IGV4cGxpY2l0bHkgcHJvdmlkZWQuCi0r Ci0rICAgVGhlIG1vc3QgcG9ydGFibGUgd2F5IHRvIGFmZmVjdCBpbnN0YWxsYXRpb24gbG9jYXRp b25zIGlzIHRvIHBhc3MgdGhlCi0rY29ycmVjdCBsb2NhdGlvbnMgdG8gYGNvbmZpZ3VyZSc7IGhv d2V2ZXIsIG1hbnkgcGFja2FnZXMgcHJvdmlkZSBvbmUgb3IKLStib3RoIG9mIHRoZSBmb2xsb3dp bmcgc2hvcnRjdXRzIG9mIHBhc3NpbmcgdmFyaWFibGUgYXNzaWdubWVudHMgdG8gdGhlCi0rYG1h a2UgaW5zdGFsbCcgY29tbWFuZCBsaW5lIHRvIGNoYW5nZSBpbnN0YWxsYXRpb24gbG9jYXRpb25z IHdpdGhvdXQKLStoYXZpbmcgdG8gcmVjb25maWd1cmUgb3IgcmVjb21waWxlLgotKwotKyAgIFRo ZSBmaXJzdCBtZXRob2QgaW52b2x2ZXMgcHJvdmlkaW5nIGFuIG92ZXJyaWRlIHZhcmlhYmxlIGZv ciBlYWNoCi0rYWZmZWN0ZWQgZGlyZWN0b3J5LiAgRm9yIGV4YW1wbGUsIGBtYWtlIGluc3RhbGwK LStwcmVmaXg9L2FsdGVybmF0ZS9kaXJlY3RvcnknIHdpbGwgY2hvb3NlIGFuIGFsdGVybmF0ZSBs b2NhdGlvbiBmb3IgYWxsCi0rZGlyZWN0b3J5IGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIHRoYXQg d2VyZSBleHByZXNzZWQgaW4gdGVybXMgb2YKLStgJHtwcmVmaXh9Jy4gIEFueSBkaXJlY3Rvcmll cyB0aGF0IHdlcmUgc3BlY2lmaWVkIGR1cmluZyBgY29uZmlndXJlJywKLStidXQgbm90IGluIHRl cm1zIG9mIGAke3ByZWZpeH0nLCBtdXN0IGVhY2ggYmUgb3ZlcnJpZGRlbiBhdCBpbnN0YWxsCi0r dGltZSBmb3IgdGhlIGVudGlyZSBpbnN0YWxsYXRpb24gdG8gYmUgcmVsb2NhdGVkLiAgVGhlIGFw cHJvYWNoIG9mCi0rbWFrZWZpbGUgdmFyaWFibGUgb3ZlcnJpZGVzIGZvciBlYWNoIGRpcmVjdG9y eSB2YXJpYWJsZSBpcyByZXF1aXJlZCBieQotK3RoZSBHTlUgQ29kaW5nIFN0YW5kYXJkcywgYW5k IGlkZWFsbHkgY2F1c2VzIG5vIHJlY29tcGlsYXRpb24uCi0rSG93ZXZlciwgc29tZSBwbGF0Zm9y bXMgaGF2ZSBrbm93biBsaW1pdGF0aW9ucyB3aXRoIHRoZSBzZW1hbnRpY3Mgb2YKLStzaGFyZWQg bGlicmFyaWVzIHRoYXQgZW5kIHVwIHJlcXVpcmluZyByZWNvbXBpbGF0aW9uIHdoZW4gdXNpbmcg dGhpcwotK21ldGhvZCwgcGFydGljdWxhcmx5IG5vdGljZWFibGUgaW4gcGFja2FnZXMgdGhhdCB1 c2UgR05VIExpYnRvb2wuCi0rCi0rICAgVGhlIHNlY29uZCBtZXRob2QgaW52b2x2ZXMgcHJvdmlk aW5nIHRoZSBgREVTVERJUicgdmFyaWFibGUuICBGb3IKLStleGFtcGxlLCBgbWFrZSBpbnN0YWxs IERFU1RESVI9L2FsdGVybmF0ZS9kaXJlY3RvcnknIHdpbGwgcHJlcGVuZAotK2AvYWx0ZXJuYXRl L2RpcmVjdG9yeScgYmVmb3JlIGFsbCBpbnN0YWxsYXRpb24gbmFtZXMuICBUaGUgYXBwcm9hY2gg b2YKLStgREVTVERJUicgb3ZlcnJpZGVzIGlzIG5vdCByZXF1aXJlZCBieSB0aGUgR05VIENvZGlu ZyBTdGFuZGFyZHMsIGFuZAotK2RvZXMgbm90IHdvcmsgb24gcGxhdGZvcm1zIHRoYXQgaGF2ZSBk cml2ZSBsZXR0ZXJzLiAgT24gdGhlIG90aGVyIGhhbmQsCi0raXQgZG9lcyBiZXR0ZXIgYXQgYXZv aWRpbmcgcmVjb21waWxhdGlvbiBpc3N1ZXMsIGFuZCB3b3JrcyB3ZWxsIGV2ZW4KLSt3aGVuIHNv bWUgZGlyZWN0b3J5IG9wdGlvbnMgd2VyZSBub3Qgc3BlY2lmaWVkIGluIHRlcm1zIG9mIGAke3By ZWZpeH0nCi0rYXQgYGNvbmZpZ3VyZScgdGltZS4KLSsKLStPcHRpb25hbCBGZWF0dXJlcwotKz09 PT09PT09PT09PT09PT09Ci0rCi0rICAgSWYgdGhlIHBhY2thZ2Ugc3VwcG9ydHMgaXQsIHlvdSBj YW4gY2F1c2UgcHJvZ3JhbXMgdG8gYmUgaW5zdGFsbGVkCi0rd2l0aCBhbiBleHRyYSBwcmVmaXgg b3Igc3VmZml4IG9uIHRoZWlyIG5hbWVzIGJ5IGdpdmluZyBgY29uZmlndXJlJyB0aGUKLStvcHRp b24gYC0tcHJvZ3JhbS1wcmVmaXg9UFJFRklYJyBvciBgLS1wcm9ncmFtLXN1ZmZpeD1TVUZGSVgn LgotKwotKyAgIFNvbWUgcGFja2FnZXMgcGF5IGF0dGVudGlvbiB0byBgLS1lbmFibGUtRkVBVFVS RScgb3B0aW9ucyB0bwotK2Bjb25maWd1cmUnLCB3aGVyZSBGRUFUVVJFIGluZGljYXRlcyBhbiBv cHRpb25hbCBwYXJ0IG9mIHRoZSBwYWNrYWdlLgotK1RoZXkgbWF5IGFsc28gcGF5IGF0dGVudGlv biB0byBgLS13aXRoLVBBQ0tBR0UnIG9wdGlvbnMsIHdoZXJlIFBBQ0tBR0UKLStpcyBzb21ldGhp bmcgbGlrZSBgZ251LWFzJyBvciBgeCcgKGZvciB0aGUgWCBXaW5kb3cgU3lzdGVtKS4gIFRoZQot K2BSRUFETUUnIHNob3VsZCBtZW50aW9uIGFueSBgLS1lbmFibGUtJyBhbmQgYC0td2l0aC0nIG9w dGlvbnMgdGhhdCB0aGUKLStwYWNrYWdlIHJlY29nbml6ZXMuCi0rCi0rICAgRm9yIHBhY2thZ2Vz IHRoYXQgdXNlIHRoZSBYIFdpbmRvdyBTeXN0ZW0sIGBjb25maWd1cmUnIGNhbiB1c3VhbGx5Ci0r ZmluZCB0aGUgWCBpbmNsdWRlIGFuZCBsaWJyYXJ5IGZpbGVzIGF1dG9tYXRpY2FsbHksIGJ1dCBp ZiBpdCBkb2Vzbid0LAotK3lvdSBjYW4gdXNlIHRoZSBgY29uZmlndXJlJyBvcHRpb25zIGAtLXgt aW5jbHVkZXM9RElSJyBhbmQKLStgLS14LWxpYnJhcmllcz1ESVInIHRvIHNwZWNpZnkgdGhlaXIg bG9jYXRpb25zLgotKwotKyAgIFNvbWUgcGFja2FnZXMgb2ZmZXIgdGhlIGFiaWxpdHkgdG8gY29u ZmlndXJlIGhvdyB2ZXJib3NlIHRoZQotK2V4ZWN1dGlvbiBvZiBgbWFrZScgd2lsbCBiZS4gIEZv ciB0aGVzZSBwYWNrYWdlcywgcnVubmluZyBgLi9jb25maWd1cmUKLSstLWVuYWJsZS1zaWxlbnQt cnVsZXMnIHNldHMgdGhlIGRlZmF1bHQgdG8gbWluaW1hbCBvdXRwdXQsIHdoaWNoIGNhbiBiZQot K292ZXJyaWRkZW4gd2l0aCBgbWFrZSBWPTEnOyB3aGlsZSBydW5uaW5nIGAuL2NvbmZpZ3VyZQot Ky0tZGlzYWJsZS1zaWxlbnQtcnVsZXMnIHNldHMgdGhlIGRlZmF1bHQgdG8gdmVyYm9zZSwgd2hp Y2ggY2FuIGJlCi0rb3ZlcnJpZGRlbiB3aXRoIGBtYWtlIFY9MCcuCi0rCi0rUGFydGljdWxhciBz eXN0ZW1zCi0rPT09PT09PT09PT09PT09PT09Ci0rCi0rICAgT24gSFAtVVgsIHRoZSBkZWZhdWx0 IEMgY29tcGlsZXIgaXMgbm90IEFOU0kgQyBjb21wYXRpYmxlLiAgSWYgR05VCi0rQ0MgaXMgbm90 IGluc3RhbGxlZCwgaXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIHRoZSBmb2xsb3dpbmcgb3B0aW9u cyBpbgotK29yZGVyIHRvIHVzZSBhbiBBTlNJIEMgY29tcGlsZXI6Ci0rCi0rICAgICAuL2NvbmZp Z3VyZSBDQz0iY2MgLUFlIC1EX1hPUEVOX1NPVVJDRT01MDAiCi0rCi0rYW5kIGlmIHRoYXQgZG9l c24ndCB3b3JrLCBpbnN0YWxsIHByZS1idWlsdCBiaW5hcmllcyBvZiBHQ0MgZm9yIEhQLVVYLgot KwotKyAgIE9uIE9TRi8xIGEuay5hLiBUcnU2NCwgc29tZSB2ZXJzaW9ucyBvZiB0aGUgZGVmYXVs dCBDIGNvbXBpbGVyIGNhbm5vdAotK3BhcnNlIGl0cyBgPHdjaGFyLmg+JyBoZWFkZXIgZmlsZS4g IFRoZSBvcHRpb24gYC1ub2R0aycgY2FuIGJlIHVzZWQgYXMKLSthIHdvcmthcm91bmQuICBJZiBH TlUgQ0MgaXMgbm90IGluc3RhbGxlZCwgaXQgaXMgdGhlcmVmb3JlIHJlY29tbWVuZGVkCi0rdG8g dHJ5Ci0rCi0rICAgICAuL2NvbmZpZ3VyZSBDQz0iY2MiCi0rCi0rYW5kIGlmIHRoYXQgZG9lc24n dCB3b3JrLCB0cnkKLSsKLSsgICAgIC4vY29uZmlndXJlIENDPSJjYyAtbm9kdGsiCi0rCi0rICAg T24gU29sYXJpcywgZG9uJ3QgcHV0IGAvdXNyL3VjYicgZWFybHkgaW4geW91ciBgUEFUSCcuICBU aGlzCi0rZGlyZWN0b3J5IGNvbnRhaW5zIHNldmVyYWwgZHlzZnVuY3Rpb25hbCBwcm9ncmFtczsg d29ya2luZyB2YXJpYW50cyBvZgotK3RoZXNlIHByb2dyYW1zIGFyZSBhdmFpbGFibGUgaW4gYC91 c3IvYmluJy4gIFNvLCBpZiB5b3UgbmVlZCBgL3Vzci91Y2InCi0raW4geW91ciBgUEFUSCcsIHB1 dCBpdCBfYWZ0ZXJfIGAvdXNyL2JpbicuCi0rCi0rICAgT24gSGFpa3UsIHNvZnR3YXJlIGluc3Rh bGxlZCBmb3IgYWxsIHVzZXJzIGdvZXMgaW4gYC9ib290L2NvbW1vbicsCi0rbm90IGAvdXNyL2xv Y2FsJy4gIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGUgZm9sbG93aW5nIG9wdGlvbnM6Ci0r Ci0rICAgICAuL2NvbmZpZ3VyZSAtLXByZWZpeD0vYm9vdC9jb21tb24KLSsKLStTcGVjaWZ5aW5n IHRoZSBTeXN0ZW0gVHlwZQotKz09PT09PT09PT09PT09PT09PT09PT09PT09Ci0rCi0rICAgVGhl cmUgbWF5IGJlIHNvbWUgZmVhdHVyZXMgYGNvbmZpZ3VyZScgY2Fubm90IGZpZ3VyZSBvdXQKLSth dXRvbWF0aWNhbGx5LCBidXQgbmVlZHMgdG8gZGV0ZXJtaW5lIGJ5IHRoZSB0eXBlIG9mIG1hY2hp bmUgdGhlIHBhY2thZ2UKLSt3aWxsIHJ1biBvbi4gIFVzdWFsbHksIGFzc3VtaW5nIHRoZSBwYWNr YWdlIGlzIGJ1aWx0IHRvIGJlIHJ1biBvbiB0aGUKLStfc2FtZV8gYXJjaGl0ZWN0dXJlcywgYGNv bmZpZ3VyZScgY2FuIGZpZ3VyZSB0aGF0IG91dCwgYnV0IGlmIGl0IHByaW50cwotK2EgbWVzc2Fn ZSBzYXlpbmcgaXQgY2Fubm90IGd1ZXNzIHRoZSBtYWNoaW5lIHR5cGUsIGdpdmUgaXQgdGhlCi0r YC0tYnVpbGQ9VFlQRScgb3B0aW9uLiAgVFlQRSBjYW4gZWl0aGVyIGJlIGEgc2hvcnQgbmFtZSBm b3IgdGhlIHN5c3RlbQotK3R5cGUsIHN1Y2ggYXMgYHN1bjQnLCBvciBhIGNhbm9uaWNhbCBuYW1l IHdoaWNoIGhhcyB0aGUgZm9ybToKLSsKLSsgICAgIENQVS1DT01QQU5ZLVNZU1RFTQotKwotK3do ZXJlIFNZU1RFTSBjYW4gaGF2ZSBvbmUgb2YgdGhlc2UgZm9ybXM6Ci0rCi0rICAgICBPUwotKyAg ICAgS0VSTkVMLU9TCi0rCi0rICAgU2VlIHRoZSBmaWxlIGBjb25maWcuc3ViJyBmb3IgdGhlIHBv c3NpYmxlIHZhbHVlcyBvZiBlYWNoIGZpZWxkLiAgSWYKLStgY29uZmlnLnN1YicgaXNuJ3QgaW5j bHVkZWQgaW4gdGhpcyBwYWNrYWdlLCB0aGVuIHRoaXMgcGFja2FnZSBkb2Vzbid0Ci0rbmVlZCB0 byBrbm93IHRoZSBtYWNoaW5lIHR5cGUuCi0rCi0rICAgSWYgeW91IGFyZSBfYnVpbGRpbmdfIGNv bXBpbGVyIHRvb2xzIGZvciBjcm9zcy1jb21waWxpbmcsIHlvdSBzaG91bGQKLSt1c2UgdGhlIG9w dGlvbiBgLS10YXJnZXQ9VFlQRScgdG8gc2VsZWN0IHRoZSB0eXBlIG9mIHN5c3RlbSB0aGV5IHdp bGwKLStwcm9kdWNlIGNvZGUgZm9yLgotKwotKyAgIElmIHlvdSB3YW50IHRvIF91c2VfIGEgY3Jv c3MgY29tcGlsZXIsIHRoYXQgZ2VuZXJhdGVzIGNvZGUgZm9yIGEKLStwbGF0Zm9ybSBkaWZmZXJl bnQgZnJvbSB0aGUgYnVpbGQgcGxhdGZvcm0sIHlvdSBzaG91bGQgc3BlY2lmeSB0aGUKLSsiaG9z dCIgcGxhdGZvcm0gKGkuZS4sIHRoYXQgb24gd2hpY2ggdGhlIGdlbmVyYXRlZCBwcm9ncmFtcyB3 aWxsCi0rZXZlbnR1YWxseSBiZSBydW4pIHdpdGggYC0taG9zdD1UWVBFJy4KLSsKLStTaGFyaW5n IERlZmF1bHRzCi0rPT09PT09PT09PT09PT09PQotKwotKyAgIElmIHlvdSB3YW50IHRvIHNldCBk ZWZhdWx0IHZhbHVlcyBmb3IgYGNvbmZpZ3VyZScgc2NyaXB0cyB0byBzaGFyZSwKLSt5b3UgY2Fu IGNyZWF0ZSBhIHNpdGUgc2hlbGwgc2NyaXB0IGNhbGxlZCBgY29uZmlnLnNpdGUnIHRoYXQgZ2l2 ZXMKLStkZWZhdWx0IHZhbHVlcyBmb3IgdmFyaWFibGVzIGxpa2UgYENDJywgYGNhY2hlX2ZpbGUn LCBhbmQgYHByZWZpeCcuCi0rYGNvbmZpZ3VyZScgbG9va3MgZm9yIGBQUkVGSVgvc2hhcmUvY29u ZmlnLnNpdGUnIGlmIGl0IGV4aXN0cywgdGhlbgotK2BQUkVGSVgvZXRjL2NvbmZpZy5zaXRlJyBp ZiBpdCBleGlzdHMuICBPciwgeW91IGNhbiBzZXQgdGhlCi0rYENPTkZJR19TSVRFJyBlbnZpcm9u bWVudCB2YXJpYWJsZSB0byB0aGUgbG9jYXRpb24gb2YgdGhlIHNpdGUgc2NyaXB0LgotK0Egd2Fy bmluZzogbm90IGFsbCBgY29uZmlndXJlJyBzY3JpcHRzIGxvb2sgZm9yIGEgc2l0ZSBzY3JpcHQu Ci0rCi0rRGVmaW5pbmcgVmFyaWFibGVzCi0rPT09PT09PT09PT09PT09PT09Ci0rCi0rICAgVmFy aWFibGVzIG5vdCBkZWZpbmVkIGluIGEgc2l0ZSBzaGVsbCBzY3JpcHQgY2FuIGJlIHNldCBpbiB0 aGUKLStlbnZpcm9ubWVudCBwYXNzZWQgdG8gYGNvbmZpZ3VyZScuICBIb3dldmVyLCBzb21lIHBh Y2thZ2VzIG1heSBydW4KLStjb25maWd1cmUgYWdhaW4gZHVyaW5nIHRoZSBidWlsZCwgYW5kIHRo ZSBjdXN0b21pemVkIHZhbHVlcyBvZiB0aGVzZQotK3ZhcmlhYmxlcyBtYXkgYmUgbG9zdC4gIElu IG9yZGVyIHRvIGF2b2lkIHRoaXMgcHJvYmxlbSwgeW91IHNob3VsZCBzZXQKLSt0aGVtIGluIHRo ZSBgY29uZmlndXJlJyBjb21tYW5kIGxpbmUsIHVzaW5nIGBWQVI9dmFsdWUnLiAgRm9yIGV4YW1w bGU6Ci0rCi0rICAgICAuL2NvbmZpZ3VyZSBDQz0vdXNyL2xvY2FsMi9iaW4vZ2NjCi0rCi0rY2F1 c2VzIHRoZSBzcGVjaWZpZWQgYGdjYycgdG8gYmUgdXNlZCBhcyB0aGUgQyBjb21waWxlciAodW5s ZXNzIGl0IGlzCi0rb3ZlcnJpZGRlbiBpbiB0aGUgc2l0ZSBzaGVsbCBzY3JpcHQpLgotKwotK1Vu Zm9ydHVuYXRlbHksIHRoaXMgdGVjaG5pcXVlIGRvZXMgbm90IHdvcmsgZm9yIGBDT05GSUdfU0hF TEwnIGR1ZSB0bwotK2FuIEF1dG9jb25mIGJ1Zy4gIFVudGlsIHRoZSBidWcgaXMgZml4ZWQgeW91 IGNhbiB1c2UgdGhpcyB3b3JrYXJvdW5kOgotKwotKyAgICAgQ09ORklHX1NIRUxMPS9iaW4vYmFz aCAvYmluL2Jhc2ggLi9jb25maWd1cmUgQ09ORklHX1NIRUxMPS9iaW4vYmFzaAotKwotK2Bjb25m aWd1cmUnIEludm9jYXRpb24KLSs9PT09PT09PT09PT09PT09PT09PT09Ci0rCi0rICAgYGNvbmZp Z3VyZScgcmVjb2duaXplcyB0aGUgZm9sbG93aW5nIG9wdGlvbnMgdG8gY29udHJvbCBob3cgaXQK LStvcGVyYXRlcy4KLSsKLStgLS1oZWxwJwotK2AtaCcKLSsgICAgIFByaW50IGEgc3VtbWFyeSBv ZiBhbGwgb2YgdGhlIG9wdGlvbnMgdG8gYGNvbmZpZ3VyZScsIGFuZCBleGl0LgotKwotK2AtLWhl bHA9c2hvcnQnCi0rYC0taGVscD1yZWN1cnNpdmUnCi0rICAgICBQcmludCBhIHN1bW1hcnkgb2Yg dGhlIG9wdGlvbnMgdW5pcXVlIHRvIHRoaXMgcGFja2FnZSdzCi0rICAgICBgY29uZmlndXJlJywg YW5kIGV4aXQuICBUaGUgYHNob3J0JyB2YXJpYW50IGxpc3RzIG9wdGlvbnMgdXNlZAotKyAgICAg b25seSBpbiB0aGUgdG9wIGxldmVsLCB3aGlsZSB0aGUgYHJlY3Vyc2l2ZScgdmFyaWFudCBsaXN0 cyBvcHRpb25zCi0rICAgICBhbHNvIHByZXNlbnQgaW4gYW55IG5lc3RlZCBwYWNrYWdlcy4KLSsK LStgLS12ZXJzaW9uJwotK2AtVicKLSsgICAgIFByaW50IHRoZSB2ZXJzaW9uIG9mIEF1dG9jb25m IHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGBjb25maWd1cmUnCi0rICAgICBzY3JpcHQsIGFuZCBleGl0 LgotKwotK2AtLWNhY2hlLWZpbGU9RklMRScKLSsgICAgIEVuYWJsZSB0aGUgY2FjaGU6IHVzZSBh bmQgc2F2ZSB0aGUgcmVzdWx0cyBvZiB0aGUgdGVzdHMgaW4gRklMRSwKLSsgICAgIHRyYWRpdGlv bmFsbHkgYGNvbmZpZy5jYWNoZScuICBGSUxFIGRlZmF1bHRzIHRvIGAvZGV2L251bGwnIHRvCi0r ICAgICBkaXNhYmxlIGNhY2hpbmcuCi0rCi0rYC0tY29uZmlnLWNhY2hlJwotK2AtQycKLSsgICAg IEFsaWFzIGZvciBgLS1jYWNoZS1maWxlPWNvbmZpZy5jYWNoZScuCi0rCi0rYC0tcXVpZXQnCi0r YC0tc2lsZW50JwotK2AtcScKLSsgICAgIERvIG5vdCBwcmludCBtZXNzYWdlcyBzYXlpbmcgd2hp Y2ggY2hlY2tzIGFyZSBiZWluZyBtYWRlLiAgVG8KLSsgICAgIHN1cHByZXNzIGFsbCBub3JtYWwg b3V0cHV0LCByZWRpcmVjdCBpdCB0byBgL2Rldi9udWxsJyAoYW55IGVycm9yCi0rICAgICBtZXNz YWdlcyB3aWxsIHN0aWxsIGJlIHNob3duKS4KLSsKLStgLS1zcmNkaXI9RElSJwotKyAgICAgTG9v ayBmb3IgdGhlIHBhY2thZ2UncyBzb3VyY2UgY29kZSBpbiBkaXJlY3RvcnkgRElSLiAgVXN1YWxs eQotKyAgICAgYGNvbmZpZ3VyZScgY2FuIGRldGVybWluZSB0aGF0IGRpcmVjdG9yeSBhdXRvbWF0 aWNhbGx5LgotKwotK2AtLXByZWZpeD1ESVInCi0rICAgICBVc2UgRElSIGFzIHRoZSBpbnN0YWxs YXRpb24gcHJlZml4LiAgKm5vdGUgSW5zdGFsbGF0aW9uIE5hbWVzOjoKLSsgICAgIGZvciBtb3Jl IGRldGFpbHMsIGluY2x1ZGluZyBvdGhlciBvcHRpb25zIGF2YWlsYWJsZSBmb3IgZmluZS10dW5p bmcKLSsgICAgIHRoZSBpbnN0YWxsYXRpb24gbG9jYXRpb25zLgotKwotK2AtLW5vLWNyZWF0ZScK LStgLW4nCi0rICAgICBSdW4gdGhlIGNvbmZpZ3VyZSBjaGVja3MsIGJ1dCBzdG9wIGJlZm9yZSBj cmVhdGluZyBhbnkgb3V0cHV0Ci0rICAgICBmaWxlcy4KLSsKLStgY29uZmlndXJlJyBhbHNvIGFj Y2VwdHMgc29tZSBvdGhlciwgbm90IHdpZGVseSB1c2VmdWwsIG9wdGlvbnMuICBSdW4KLStgY29u ZmlndXJlIC0taGVscCcgZm9yIG1vcmUgZGV0YWlscy4KLSsKLWRpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9NYWtlZmlsZSBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUKLS0tLSBzb2NpLTMu MC4wXzQtcGFjay9NYWtlZmlsZQkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAotQEAgLTEsMjAgKzAsMCBAQAotLWJ1aWxkX2xpYnMgOgotLQljZCBidWlsZC91 bml4OyBgY2F0IGxvY2FsL3RjbGAgYnVpbGQudGNsIGNvcmUgY29yZS1zbyBteXNxbCBteXNxbC1z byBwb3N0Z3Jlc3FsIHBvc3RncmVzcWwtc28gb3JhY2xlIG9yYWNsZS1zbwotLQotLXRlc3RzIDoK LS0JY2QgYnVpbGQvdW5peDsgYGNhdCBsb2NhbC90Y2xgIGJ1aWxkLnRjbCBteXNxbC10ZXN0IG9y YWNsZS10ZXN0IHBvc3RncmVzcWwtdGVzdAotLQotLWluc3RhbGwgOgotLQljZCBidWlsZC91bml4 OyBgY2F0IGxvY2FsL3RjbGAgaW5zdGFsbC50Y2wKLS0KLS11bmluc3RhbGwgOgotLQljZCBidWls ZC91bml4L2xvY2FsOyAvYmluL3NoIHVuaW5zdGFsbC5zaAotLQotLWNsZWFuIDoKLS0JZmluZCAu IC1uYW1lICcqLm8nIHwgeGFyZ3Mgcm0KLS0JZmluZCAuIC1uYW1lICcqLmEnIHwgeGFyZ3Mgcm0K LS0JZmluZCAuIC1uYW1lICcqLnNvJyB8IHhhcmdzIHJtCi0tCXJtIC1mIHNyYy9iYWNrZW5kcy9t eXNxbC90ZXN0L3Rlc3QtbXlzcWwKLS0Jcm0gLWYgc3JjL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rl c3Qtb3JhY2xlCi0tCXJtIC1mIHNyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0 Z3Jlc3FsCi0tCXJtIC1yZiBidWlsZC91bml4L2luY2x1ZGUgYnVpbGQvdW5peC9saWIgYnVpbGQv dW5peC90ZXN0cwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmFtIHNvY2kt My4wLjBfdHJlcDMwMC9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxl LmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90 cmVwMzAwL01ha2VmaWxlLmFtCTIwMDktMDUtMDMgMDA6MTk6NDIuMDAwMDAwMDAwICswMjAwCi1A QCAtMCwwICsxLDYyIEBACi0rIyMgdG9wIGRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGly KS9NYWtlZmlsZS5jb21tb24KLSsKLStBQ0xPQ0FMX0FNRkxBR1MgPSAtSSBjb25maWcKLSsKLStB VVRPTUFLRV9PUFRJT05TID0gZGlzdC1iemlwMgotKwotK2lmIFJVTl9URVNUUwotKyMgIFRFU1Rf RElSID0gdGVzdAotK2VuZGlmCi0rCi0rTUFOX0RPQ19ESVIgPSBtYW4KLSsKLSsjIE1haW50YWlu YW5jZSBmaWxlcwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4gYWNsb2NhbC5t NCBjb25maWd1cmUgXAotKwkJCWNvbmZpZy1oLmluIHNpYy9zdGFtcC1oLmluIGF1dG9nZW4uc2gg Ym9vdHN0cmFwCi0rCi0rI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fY29u ZmlndXJlIC5fTWFrZWZpbGUgY29udHJpYgotK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJ TElUWSA9IGNvbnRyaWIKLSsKLStFWFRSQV9ESVNUID0gTWFrZWZpbGUuY29tbW9uICQoRVhUUkFf RElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKSBAUEFDS0FHRUAubTQKLSsKLSsjIEJ1aWxkIGlu IHRoZXNlIGRpcmVjdG9yaWVzOgotK1NVQkRJUlMgPSBidWlsZCBAUEFDS0FHRUAgJChNQU5fRE9D X0RJUikgZG9jICQoVEVTVF9ESVIpCi0rCi0rCi0rIyBDb25maWd1cmF0aW9uIGhlbHBlcnMKLSti aW5fU0NSSVBUUyA9IEBQQUNLQUdFQC1jb25maWcKLSsKLStwa2djb25maWdkaXIgPSAkKGxpYmRp cikvcGtnY29uZmlnCi0rcGtnY29uZmlnX0RBVEEgPSBAUEFDS0FHRUAucGMKLSsKLSttNGRhdGFk aXIgPSAkKGRhdGFkaXIpL2FjbG9jYWwKLSttNGRhdGFfREFUQSA9IEBQQUNLQUdFQC5tNAotKwot KyMgVGFyZ2V0cwotK3VuaW5zdGFsbC1sb2NhbDoKLSsJcm0gLXJmICQoREVTVERJUikkKGluY2x1 ZGVkaXIpL0BQQUNLQUdFQAotKwotK2Rpc3QtaHRtbDoKLSsJJChNQUtFKSAtQyBkb2MgZGlzdC1o dG1sCi0rCi0rCi0rc25hcHNob3Q6IHNuYXBzaG90LXNyYyBzbmFwc2hvdC1odG1sCi0rCi0rCi0r c25hcHNob3Qtc3JjOgotKyAgICAgICAgJChNQUtFKSBkaXN0IGRpc3RkaXI9QFBBQ0tBR0VfVEFS TkFNRUAtYGRhdGUgKyIlWSVtJWQiYAotKwotK3NuYXBzaG90LWh0bWw6Ci0rCSQoTUFLRSkgLUMg ZG9jIGRpc3QtaHRtbCBodG1sX3Rhcm5hbWU9QFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtYGRh dGUgKyIlWSVtJWQiYAotKwotK3VwbG9hZDogdXBsb2FkLXNyYyB1cGxvYWQtaHRtbAotKwotK3Vw bG9hZC1zcmM6IGRpc3QKLSsJQFVQTE9BRF9DT01NQU5EQCBAUEFDS0FHRV9UQVJOQU1FQC1AVkVS U0lPTkAudGFyLmd6IFwKLSsJQFBBQ0tBR0VfVEFSTkFNRUAtQFZFUlNJT05ALnRhci5iejIKLSsK LSt1cGxvYWQtaHRtbDogZGlzdC1odG1sCi0rCUBVUExPQURfQ09NTUFOREAgQFBBQ0tBR0VfVEFS TkFNRUAtaHRtbC1kb2MtQFZFUlNJT05ALnRhci5neiBcCi0rCUBQQUNLQUdFX1RBUk5BTUVALWh0 bWwtZG9jLUBWRVJTSU9OQC50YXIuYnoyCi0rCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv TWFrZWZpbGUuY29tbW9uIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5jb21tb24KLS0tLSBz b2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5jb21tb24JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUuY29tbW9uCTIwMDkt MDQtMTggMTc6MjA6MzIuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDIgQEAKLStAU0VUX01B S0VACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLWRp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAv TWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5pbgkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmls ZS5pbgkyMDEwLTAxLTIzIDE0OjQ0OjUyLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw5MjQg QEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtl ZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQs IDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAz LCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9u IHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZp Y2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQg YnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNF VF9NQUtFQAotKwotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGly KS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStw a2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhl Y2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFU SF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMg LW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxf c2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxM X0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9J TlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxf VU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0r YnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NP TU1PTiA9IFJFQURNRSAkKGFtX19jb25maWd1cmVfZGVwcykgJChzcmNkaXIpL01ha2VmaWxlLmFt IFwKLSsJJChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS9zb2NpLWNvbmZpZy5pbiBcCi0r CSQoc3JjZGlyKS9zb2NpLnBjLmluICQoc3JjZGlyKS9zb2NpLnNwZWMuaW4gXAotKwkkKHRvcF9z cmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSBBVVRIT1JTIFwK LSsJQ09QWUlORyBDaGFuZ2VMb2cgSU5TVEFMTCBORVdTIGNvbmZpZy9jb25maWcuZ3Vlc3MgXAot Kwljb25maWcvY29uZmlnLnN1YiBjb25maWcvZGVwY29tcCBjb25maWcvaW5zdGFsbC1zaCBcCi0r CWNvbmZpZy9sdG1haW4uc2ggY29uZmlnL21pc3NpbmcKLStzdWJkaXIgPSAuCi0rQUNMT0NBTF9N NCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4 X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykg JChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLSthbV9fQ09ORklH X0RJU1RDTEVBTl9GSUxFUyA9IGNvbmZpZy5zdGF0dXMgY29uZmlnLmNhY2hlIGNvbmZpZy5sb2cg XAotKyBjb25maWd1cmUubGluZW5vIGNvbmZpZy5zdGF0dXMubGluZW5vCi0rbWtpbnN0YWxsZGly cyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3Nv Y2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPSBzb2NpLWNvbmZpZyBzb2NpLnBjIHNv Y2kuc3BlYwotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0rYW1fX3ZwYXRoX2Fkal9zZXR1 cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7Ci0rYW1f X3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKLSsgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQk cCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKLSsgICAgKikgZj0kJHA7OyBcCi0r ICBlc2FjOwotK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwn YDsKLSthbV9faW5zdGFsbF9tYXggPSA0MAotK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCi0r ICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxc XCYvZydgCi0rYW1fX25vYmFzZV9zdHJpcCA9IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNo byAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8IgotK2FtX19ub2Jhc2Vf bGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKLSsgIGZvciBwIGluICQkbGlzdDsg ZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCi0rICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8 OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAotKyAgJChB V0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0g IiAiICQkMTsgXAotKyAgICBpZiAoKytuWyQkMl0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSBcCi0r ICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAi IiB9IH0gXAotKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tk aXJdIH0nCi0rYW1fX2Jhc2VfbGlzdCA9IFwKLSsgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjsk JCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCi0rICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47 cy9cbi8gL2cnCi0rYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKGJpbmRpcikiICIkKERF U1RESVIpJChtNGRhdGFkaXIpIiBcCi0rCSIkKERFU1RESVIpJChwa2djb25maWdkaXIpIgotK1ND UklQVFMgPSAkKGJpbl9TQ1JJUFRTKQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rUkVD VVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJz aXZlIFwKLSsJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vy c2l2ZSBcCi0rCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwK LSsJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKLSsJaW5z dGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZl IFwKLSsJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJl Y3Vyc2l2ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCi0rREFUQSA9ICQo bTRkYXRhX0RBVEEpICQocGtnY29uZmlnX0RBVEEpCi0rUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMg PSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsgIGRpc3RjbGVhbi1y ZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStBTV9SRUNVUlNJVkVfVEFSR0VU UyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKLSsJJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKLSsJZGlzdGRp ciBkaXN0IGRpc3QtYWxsIGRpc3RjaGVjawotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdz Ci0rRElTVF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04p ICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rZGlzdGRpciA9ICQo UEFDS0FHRSktJChWRVJTSU9OKQotK3RvcF9kaXN0ZGlyID0gJChkaXN0ZGlyKQotK2FtX19yZW1v dmVfZGlzdGRpciA9IFwKLSsgIHsgdGVzdCAhIC1kICIkKGRpc3RkaXIpIiBcCi0rICAgIHx8IHsg ZmluZCAiJChkaXN0ZGlyKSIgLXR5cGUgZCAhIC1wZXJtIC0yMDAgLWV4ZWMgY2htb2QgdSt3IHt9 ICc7JyBcCi0rICAgICAgICAgJiYgcm0gLWZyICIkKGRpc3RkaXIpIjsgfTsgfQotK2FtX19yZWxh dGl2aXplID0gXAotKyAgZGlyMD1gcHdkYDsgXAotKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkv LiokJCxcMSwnOyBcCi0rICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAotKyAgc2VkX2xhc3Q9 J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKLSsgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCws JzsgXAotKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAotKyAgICBmaXJzdD1gZWNobyAi JCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAgICBpZiB0ZXN0ICIkJGZpcnN0 IiAhPSAiLiI7IHRoZW4gXAotKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsgdGhlbiBc Ci0rICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0ImAvIiQk ZGlyMiI7IFwKLSsgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1 dGxhc3QiYDsgXAotKyAgICAgIGVsc2UgXAotKyAgICAgICAgZmlyc3QyPWBlY2hvICIkJGRpcjIi IHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIg PSAiJCRmaXJzdCI7IHRoZW4gXAotKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIiIHwgc2Vk IC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgICAgICAgIGVsc2UgXAotKyAgICAgICAgICBkaXIyPSIu Li8kJGRpcjIiOyBcCi0rICAgICAgICBmaTsgXAotKyAgICAgICAgZGlyMD0iJCRkaXIwIi8iJCRm aXJzdCI7IFwKLSsgICAgICBmaTsgXAotKyAgICBmaTsgXAotKyAgICBkaXIxPWBlY2hvICIkJGRp cjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgIGRvbmU7IFwKLSsgIHJlbGRpcj0iJCRk aXIyIgotK0RJU1RfQVJDSElWRVMgPSAkKGRpc3RkaXIpLnRhci5neiAkKGRpc3RkaXIpLnRhci5i ejIKLStHWklQX0VOViA9IC0tYmVzdAotK2Rpc3R1bmluc3RhbGxjaGVja19saXN0ZmlsZXMgPSBm aW5kIC4gLXR5cGUgZiAtcHJpbnQKLStkaXN0Y2xlYW5jaGVja19saXN0ZmlsZXMgPSBmaW5kIC4g LXR5cGUgZiAtcHJpbnQKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0r QVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVB REVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdT ID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElN RV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0r Qk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMg PSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1Rf TVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9P UFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9M SUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhf TElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElC QAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RF TV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RI UkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9U RVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JP T1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0Mg PSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQ UCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQ VU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5J VF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJT SU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENY WERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhf V0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lN VVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04g PSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhU ID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9 IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJ TlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFN ID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAK LStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0g QExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9 IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBM Tl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0r TUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlT UUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01Z U1FMX0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05A Ci0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0r T0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVf T0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBA T1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZF UlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0Ug PSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQ QUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0Vf U1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9W RVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFS QVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JF U1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9T VEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NA Ci0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBA UkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VU X01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklF RCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBA U09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJ RUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAot K1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAK LSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2Rp ckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNk aXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hY ID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2lu Y2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2Rv dEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9f dW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRA Ci0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAK LStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAot K2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRp ciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2Rp ckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlw c19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9 IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hv c3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9 IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNs dWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hA Ci0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGly ID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGly ID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRpciA9IEBtYW5k aXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRp ckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFu c2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAot K3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGly ID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBz eXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3By ZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJA Ci0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWls ZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rQUNMT0NBTF9BTUZMQUdTID0gLUkgY29uZmlnCi0rQVVU T01BS0VfT1BUSU9OUyA9IGRpc3QtYnppcDIKLSsKLSsjICBURVNUX0RJUiA9IHRlc3QKLStNQU5f RE9DX0RJUiA9IG1hbgotKwotKyMgTWFpbnRhaW5hbmNlIGZpbGVzCi0rTUFJTlRBSU5FUkNMRUFO RklMRVMgPSBNYWtlZmlsZS5pbiBhY2xvY2FsLm00IGNvbmZpZ3VyZSBcCi0rCQkJY29uZmlnLWgu aW4gc2ljL3N0YW1wLWguaW4gYXV0b2dlbi5zaCBib290c3RyYXAKLSsKLSsKLSsjRVhUUkFfRElT VF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gLl9jb25maWd1cmUgLl9NYWtlZmlsZSBjb250cmli Ci0rRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gY29udHJpYgotK0VYVFJBX0RJ U1QgPSBNYWtlZmlsZS5jb21tb24gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkp IEBQQUNLQUdFQC5tNAotKwotKyMgQnVpbGQgaW4gdGhlc2UgZGlyZWN0b3JpZXM6Ci0rU1VCRElS UyA9IGJ1aWxkIEBQQUNLQUdFQCAkKE1BTl9ET0NfRElSKSBkb2MgJChURVNUX0RJUikKLSsKLSsj IENvbmZpZ3VyYXRpb24gaGVscGVycwotK2Jpbl9TQ1JJUFRTID0gQFBBQ0tBR0VALWNvbmZpZwot K3BrZ2NvbmZpZ2RpciA9ICQobGliZGlyKS9wa2djb25maWcKLStwa2djb25maWdfREFUQSA9IEBQ QUNLQUdFQC5wYwotK200ZGF0YWRpciA9ICQoZGF0YWRpcikvYWNsb2NhbAotK200ZGF0YV9EQVRB ID0gQFBBQ0tBR0VALm00Ci0rYWxsOiBhbGwtcmVjdXJzaXZlCi0rCi0rLlNVRkZJWEVTOgotK2Ft LS1yZWZyZXNoOgotKwlAOgotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtl ZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVw cykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVw cyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJICAgICAgZWNobyAnIGNkICQoc3JjZGlyKSAm JiAkKEFVVE9NQUtFKSAtLWdudSc7IFwKLSsJICAgICAgJChhbV9fY2QpICQoc3JjZGlyKSAmJiAk KEFVVE9NQUtFKSAtLWdudSBcCi0rCQkmJiBleGl0IDA7IFwKLSsJICAgICAgZXhpdCAxOzsgXAot KwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFV VE9NQUtFKSAtLWdudSBNYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYg XAotKwkgICQoQVVUT01BS0UpIC0tZ251IE1ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQot K01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5z dGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBl Y2hvICcgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzJzsgXAotKwkgICAgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwK LSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAg JChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9j b25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQ RU5ERU5DSUVTKQotKwkkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgLS1yZWNoZWNrCi0rCi0rJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJJChhbV9fY2Qp ICQoc3JjZGlyKSAmJiAkKEFVVE9DT05GKQotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2Fs X200X2RlcHMpCi0rCSQoYW1fX2NkKSAkKHNyY2RpcikgJiYgJChBQ0xPQ0FMKSAkKEFDTE9DQUxf QU1GTEFHUykKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgotK3NvY2ktY29uZmlnOiAkKHRvcF9i dWlsZGRpcikvY29uZmlnLnN0YXR1cyAkKHNyY2Rpcikvc29jaS1jb25maWcuaW4KLSsJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQAotK3NvY2kucGM6ICQo dG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS9zb2NpLnBjLmluCi0rCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAKLStzb2NpLnNwZWM6 ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS9zb2NpLnNwZWMuaW4KLSsJ Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQAotK2luc3Rh bGwtYmluU0NSSVBUUzogJChiaW5fU0NSSVBUUykKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRl c3QgLXogIiQoYmluZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQoYmluZGlyKSIKLSsJ QGxpc3Q9JyQoYmluX1NDUklQVFMpJzsgdGVzdCAtbiAiJChiaW5kaXIpIiB8fCBsaXN0PTsgXAot Kwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBl bHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAotKwkgIGlmIHRlc3QgLWYgIiQkZCQkcCI7IHRoZW4g ZWNobyAiJCRkJCRwIjsgZWNobyAiJCRwIjsgZWxzZSA6OyBmaTsgXAotKwlkb25lIHwgXAotKwlz ZWQgLWUgJ3A7cywuKi8sLDtuJyBcCi0rCSAgICAtZSAnaDtzfC4qfC58JyBcCi0rCSAgICAtZSAn cDt4O3MsLiovLCw7JCh0cmFuc2Zvcm0pJyB8IHNlZCAnTjtOO047cyxcbiwgLGcnIHwgXAotKwkk KEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiOyBkaXJzWyIuIl0gPSAxOyB9IFwKLSsJICB7 IGQ9JCQzOyBpZiAoZGlyc1tkXSAhPSAxKSB7IHByaW50ICJkIiwgZDsgZGlyc1tkXSA9IDEgfSBc Ci0rCSAgICBpZiAoJCQyID09ICQkNCkgeyBmaWxlc1tkXSA9IGZpbGVzW2RdICIgIiAkJDE7IFwK LSsJICAgICAgaWYgKCsrbltkXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIHsgXAotKwkJcHJpbnQg ImYiLCBkLCBmaWxlc1tkXTsgbltkXSA9IDA7IGZpbGVzW2RdID0gIiIgfSB9IFwKLSsJICAgIGVs c2UgeyBwcmludCAiZiIsIGQgIi8iICQkNCwgJCQxIH0gfSBcCi0rCSAgRU5EIHsgZm9yIChkIGlu IGZpbGVzKSBwcmludCAiZiIsIGQsIGZpbGVzW2RdIH0nIHwgXAotKwl3aGlsZSByZWFkIHR5cGUg ZGlyIGZpbGVzOyBkbyBcCi0rCSAgICAgaWYgdGVzdCAiJCRkaXIiID0gLjsgdGhlbiBkaXI9OyBl bHNlIGRpcj0vJCRkaXI7IGZpOyBcCi0rCSAgICAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCi0r CSAgICAgICBlY2hvICIgJChJTlNUQUxMX1NDUklQVCkgJCRmaWxlcyAnJChERVNURElSKSQoYmlu ZGlyKSQkZGlyJyI7IFwKLSsJICAgICAgICQoSU5TVEFMTF9TQ1JJUFQpICQkZmlsZXMgIiQoREVT VERJUikkKGJpbmRpcikkJGRpciIgfHwgZXhpdCAkJD87IFwKLSsJICAgICB9IFwKLSsJOyBkb25l Ci0rCi0rdW5pbnN0YWxsLWJpblNDUklQVFM6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBs aXN0PSckKGJpbl9TQ1JJUFRTKSc7IHRlc3QgLW4gIiQoYmluZGlyKSIgfHwgZXhpdCAwOyBcCi0r CWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBcCi0rCSAgICAg ICBzZWQgLWUgJ3MsLiovLCw7JCh0cmFuc2Zvcm0pJ2A7IFwKLSsJdGVzdCAtbiAiJCRsaXN0IiB8 fCBleGl0IDA7IFwKLSsJZWNobyAiICggY2QgJyQoREVTVERJUikkKGJpbmRpciknICYmIHJtIC1m IiAkJGZpbGVzICIpIjsgXAotKwljZCAiJChERVNURElSKSQoYmluZGlyKSIgJiYgcm0gLWYgJCRm aWxlcwotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4t bGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotKwotK2Rpc3RjbGVhbi1saWJ0b29sOgot Kwktcm0gLWYgbGlidG9vbCBjb25maWcubHQKLStpbnN0YWxsLW00ZGF0YURBVEE6ICQobTRkYXRh X0RBVEEpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKG00ZGF0YWRpcikiIHx8 ICQoTUtESVJfUCkgIiQoREVTVERJUikkKG00ZGF0YWRpcikiCi0rCUBsaXN0PSckKG00ZGF0YV9E QVRBKSc7IHRlc3QgLW4gIiQobTRkYXRhZGlyKSIgfHwgbGlzdD07IFwKLSsJZm9yIHAgaW4gJCRs aXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2Rp cikvIjsgZmk7IFwKLSsJICBlY2hvICIkJGQkJHAiOyBcCi0rCWRvbmUgfCAkKGFtX19iYXNlX2xp c3QpIHwgXAotKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCi0rCSAgZWNobyAiICQoSU5TVEFMTF9E QVRBKSAkJGZpbGVzICckKERFU1RESVIpJChtNGRhdGFkaXIpJyI7IFwKLSsJICAkKElOU1RBTExf REFUQSkgJCRmaWxlcyAiJChERVNURElSKSQobTRkYXRhZGlyKSIgfHwgZXhpdCAkJD87IFwKLSsJ ZG9uZQotKwotK3VuaW5zdGFsbC1tNGRhdGFEQVRBOgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQot KwlAbGlzdD0nJChtNGRhdGFfREFUQSknOyB0ZXN0IC1uICIkKG00ZGF0YWRpcikiIHx8IGxpc3Q9 OyBcCi0rCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRwOyBkb25lIHwgc2VkIC1l ICdzfF4uKi98fCdgOyBcCi0rCXRlc3QgLW4gIiQkZmlsZXMiIHx8IGV4aXQgMDsgXAotKwllY2hv ICIgKCBjZCAnJChERVNURElSKSQobTRkYXRhZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBc Ci0rCWNkICIkKERFU1RESVIpJChtNGRhdGFkaXIpIiAmJiBybSAtZiAkJGZpbGVzCi0raW5zdGFs bC1wa2djb25maWdEQVRBOiAkKHBrZ2NvbmZpZ19EQVRBKQotKwlAJChOT1JNQUxfSU5TVEFMTCkK LSsJdGVzdCAteiAiJChwa2djb25maWdkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChw a2djb25maWdkaXIpIgotKwlAbGlzdD0nJChwa2djb25maWdfREFUQSknOyB0ZXN0IC1uICIkKHBr Z2NvbmZpZ2RpcikiIHx8IGxpc3Q9OyBcCi0rCWZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlm IHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCi0rCSAg ZWNobyAiJCRkJCRwIjsgXAotKwlkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwKLSsJd2hpbGUg cmVhZCBmaWxlczsgZG8gXAotKwkgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChE RVNURElSKSQocGtnY29uZmlnZGlyKSciOyBcCi0rCSAgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMg IiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiIHx8IGV4aXQgJCQ/OyBcCi0rCWRvbmUKLSsKLSt1 bmluc3RhbGwtcGtnY29uZmlnREFUQToKLSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9 JyQocGtnY29uZmlnX0RBVEEpJzsgdGVzdCAtbiAiJChwa2djb25maWdkaXIpIiB8fCBsaXN0PTsg XAotKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICQkcDsgZG9uZSB8IHNlZCAtZSAn c3xeLiovfHwnYDsgXAotKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKLSsJZWNobyAi ICggY2QgJyQoREVTVERJUikkKHBrZ2NvbmZpZ2RpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsg XAotKwljZCAiJChERVNURElSKSQocGtnY29uZmlnZGlyKSIgJiYgcm0gLWYgJCRmaWxlcwotKwot KyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50 OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0 aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScg dmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2 YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwot KyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQg d2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVk IHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRT KToKLSsJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFH UzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkg ICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0r CWRvdF9zZWVuPW5vOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7 IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAg ZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBkb3Rfc2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3Rh cmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQk dGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29t OyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJ ICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlm aTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlA ZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBc Ci0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayop IGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3Nl ZW49bm87IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXIt Y2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCi0rCSAgKikgbGlzdD0nJChTVUJE SVJTKScgOzsgXAotKwllc2FjOyBcCi0rCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRv IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgICBy ZXY9IiQkc3ViZGlyICQkcmV2IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIkJHJl diAuIjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZv ciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRz dWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGxv Y2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJn ZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRm YWlsY29tOyBcCi0rCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgotK3RhZ3MtcmVjdXJzaXZlOgot KwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0 ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChT VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIi ID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0 YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQo VEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9 IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwot K1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVO REVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXNldCB4OyBcCi0rCWhlcmU9 YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2 L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBc Ci0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNs dWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0 aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAg ICBzZXQgIiQkQCIgIiQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCi0r CSAgZmk7IFwKLSsJZG9uZTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElT UCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2Rpcikv JCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBu b25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGlu IGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJc2hpZnQ7IFwKLSsJaWYgdGVzdCAteiAiJChF VEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIkJHVu aXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRo ZW4gXAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRB R1NfQVJHUykgXAotKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAotKwkgIGVsc2UgXAotKwkgICAg JChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAot KwkgICAgICAkJHVuaXF1ZTsgXAotKwkgIGZpOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RB R1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRF TkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwlsaXN0PSckKFNPVVJDRVMpICQo SEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAk JGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2Ug ZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZp bGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1w dHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChD VEFHU19BUkdTKSQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFN X0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQkdW5pcXVlCi0rCi0rR1RBR1M6 Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgJChh bV9fY2QpICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQk aGVyZSIKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdT IEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJJChhbV9fcmVt b3ZlX2Rpc3RkaXIpCi0rCXRlc3QgLWQgIiQoZGlzdGRpcikiIHx8IG1rZGlyICIkKGRpc3RkaXIp IgotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0v XFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNl ZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAot KwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUg fCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8 XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlz dF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwg XAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwK LSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2Zp bGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4g ZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsg dGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwn YDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAg ICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNo bW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2Rp cikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1m cFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAg ICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNo bW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxl ICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAt ZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlz dGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0r CUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkg IGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIk KGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQk c3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0 PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBk aXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwK LSsJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIy PSIkKHRvcF9kaXN0ZGlyKSI7IFwKLSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBu ZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBk aXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKLSsJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92 ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBk aXN0ZGlyKSI7IFwKLSsJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9k aXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAotKwkJYW1fX3Jl bW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkJYW1fX3Nr aXBfbW9kZV9maXg9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7 IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCS10ZXN0IC1uICIkKGFtX19za2lwX21vZGVfZml4KSIg XAotKwl8fCBmaW5kICIkKGRpc3RkaXIpIiAtdHlwZSBkICEgLXBlcm0gLTc1NSBcCi0rCQktZXhl YyBjaG1vZCB1K3J3eCxnbytyeCB7fSBcOyAtbyBcCi0rCSAgISAtdHlwZSBkICEgLXBlcm0gLTQ0 NCAtbGlua3MgMSAtZXhlYyBjaG1vZCBhK3Ige30gXDsgLW8gXAotKwkgICEgLXR5cGUgZCAhIC1w ZXJtIC00MDAgLWV4ZWMgY2htb2QgYStyIHt9IFw7IC1vIFwKLSsJICAhIC10eXBlIGQgISAtcGVy bSAtNDQ0IC1leGVjICQoaW5zdGFsbF9zaCkgLWMgLW0gYStyIHt9IHt9IFw7IFwKLSsJfHwgY2ht b2QgLVIgYStyICIkKGRpc3RkaXIpIgotK2Rpc3QtZ3ppcDogZGlzdGRpcgotKwl0YXJkaXI9JChk aXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgR1pJUD0kKEdaSVBfRU5WKSBnemlwIC1jID4kKGRpc3Rk aXIpLnRhci5negotKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKLStkaXN0LWJ6aXAyOiBkaXN0ZGly Ci0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBiemlwMiAtOSAtYyA+JChkaXN0 ZGlyKS50YXIuYnoyCi0rCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotKwotK2Rpc3QtbHptYTogZGlz dGRpcgotKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgbHptYSAtOSAtYyA+JChk aXN0ZGlyKS50YXIubHptYQotKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKLSsKLStkaXN0LXh6OiBk aXN0ZGlyCi0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCB4eiAtYyA+JChkaXN0 ZGlyKS50YXIueHoKLSsJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0rCi0rZGlzdC10YXJaOiBkaXN0 ZGlyCi0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBjb21wcmVzcyAtYyA+JChk aXN0ZGlyKS50YXIuWgotKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKLSsKLStkaXN0LXNoYXI6IGRp c3RkaXIKLSsJc2hhciAkKGRpc3RkaXIpIHwgR1pJUD0kKEdaSVBfRU5WKSBnemlwIC1jID4kKGRp c3RkaXIpLnNoYXIuZ3oKLSsJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0rCi0rZGlzdC16aXA6IGRp c3RkaXIKLSsJLXJtIC1mICQoZGlzdGRpcikuemlwCi0rCXppcCAtcnEgJChkaXN0ZGlyKS56aXAg JChkaXN0ZGlyKQotKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKLSsKLStkaXN0IGRpc3QtYWxsOiBk aXN0ZGlyCi0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBHWklQPSQoR1pJUF9F TlYpIGd6aXAgLWMgPiQoZGlzdGRpcikudGFyLmd6Ci0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQo YW1fX3RhcikgfCBiemlwMiAtOSAtYyA+JChkaXN0ZGlyKS50YXIuYnoyCi0rCSQoYW1fX3JlbW92 ZV9kaXN0ZGlyKQotKwotKyMgVGhpcyB0YXJnZXQgdW50YXJzIHRoZSBkaXN0IGZpbGUgYW5kIHRy aWVzIGEgVlBBVEggY29uZmlndXJhdGlvbi4gIFRoZW4KLSsjIGl0IGd1YXJhbnRlZXMgdGhhdCB0 aGUgZGlzdHJpYnV0aW9uIGlzIHNlbGYtY29udGFpbmVkIGJ5IG1ha2luZyBhbm90aGVyCi0rIyB0 YXJmaWxlLgotK2Rpc3RjaGVjazogZGlzdAotKwljYXNlICckKERJU1RfQVJDSElWRVMpJyBpbiBc Ci0rCSoudGFyLmd6KikgXAotKwkgIEdaSVA9JChHWklQX0VOVikgZ3ppcCAtZGMgJChkaXN0ZGly KS50YXIuZ3ogfCAkKGFtX191bnRhcikgOztcCi0rCSoudGFyLmJ6MiopIFwKLSsJICBiemlwMiAt ZGMgJChkaXN0ZGlyKS50YXIuYnoyIHwgJChhbV9fdW50YXIpIDs7XAotKwkqLnRhci5sem1hKikg XAotKwkgIGx6bWEgLWRjICQoZGlzdGRpcikudGFyLmx6bWEgfCAkKGFtX191bnRhcikgOztcCi0r CSoudGFyLnh6KikgXAotKwkgIHh6IC1kYyAkKGRpc3RkaXIpLnRhci54eiB8ICQoYW1fX3VudGFy KSA7O1wKLSsJKi50YXIuWiopIFwKLSsJICB1bmNvbXByZXNzIC1jICQoZGlzdGRpcikudGFyLlog fCAkKGFtX191bnRhcikgOztcCi0rCSouc2hhci5neiopIFwKLSsJICBHWklQPSQoR1pJUF9FTlYp IGd6aXAgLWRjICQoZGlzdGRpcikuc2hhci5neiB8IHVuc2hhciA7O1wKLSsJKi56aXAqKSBcCi0r CSAgdW56aXAgJChkaXN0ZGlyKS56aXAgOztcCi0rCWVzYWMKLSsJY2htb2QgLVIgYS13ICQoZGlz dGRpcik7IGNobW9kIGErdyAkKGRpc3RkaXIpCi0rCW1rZGlyICQoZGlzdGRpcikvX2J1aWxkCi0r CW1rZGlyICQoZGlzdGRpcikvX2luc3QKLSsJY2htb2QgYS13ICQoZGlzdGRpcikKLSsJdGVzdCAt ZCAkKGRpc3RkaXIpL19idWlsZCB8fCBleGl0IDA7IFwKLSsJZGNfaW5zdGFsbF9iYXNlPWAkKGFt X19jZCkgJChkaXN0ZGlyKS9faW5zdCAmJiBwd2QgfCBzZWQgLWUgJ3MsXlteOlxcL106W1xcL10s LywnYCBcCi0rCSAgJiYgZGNfZGVzdGRpcj0iJCR7VE1QRElSLS90bXB9L2FtLWRjLSQkJCQvIiBc Ci0rCSAgJiYgYW1fX2N3ZD1gcHdkYCBcCi0rCSAgJiYgJChhbV9fY2QpICQoZGlzdGRpcikvX2J1 aWxkIFwKLSsJICAmJiAuLi9jb25maWd1cmUgLS1zcmNkaXI9Li4gLS1wcmVmaXg9IiQkZGNfaW5z dGFsbF9iYXNlIiBcCi0rCSAgICAkKERJU1RDSEVDS19DT05GSUdVUkVfRkxBR1MpIFwKLSsJICAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgZHZpIFwKLSsJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjaGVjayBcCi0rCSAgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbCBcCi0rCSAgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgaW5zdGFsbGNoZWNrIFwKLSsJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB1 bmluc3RhbGwgXAotKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGRpc3R1bmluc3RhbGxj aGVja19kaXI9IiQkZGNfaW5zdGFsbF9iYXNlIiBcCi0rCSAgICAgICAgZGlzdHVuaW5zdGFsbGNo ZWNrIFwKLSsJICAmJiBjaG1vZCAtUiBhLXcgIiQkZGNfaW5zdGFsbF9iYXNlIiBcCi0rCSAgJiYg KHsgXAotKwkgICAgICAgKGNkIC4uLy4uICYmIHVtYXNrIDA3NyAmJiBta2RpciAiJCRkY19kZXN0 ZGlyIikgXAotKwkgICAgICAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgREVTVERJUj0iJCRk Y19kZXN0ZGlyIiBpbnN0YWxsIFwKLSsJICAgICAgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IERFU1RESVI9IiQkZGNfZGVzdGRpciIgdW5pbnN0YWxsIFwKLSsJICAgICAgICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIERFU1RESVI9IiQkZGNfZGVzdGRpciIgXAotKwkgICAgICAgICAgICBk aXN0dW5pbnN0YWxsY2hlY2tfZGlyPSIkJGRjX2Rlc3RkaXIiIGRpc3R1bmluc3RhbGxjaGVjazsg XAotKwkgICAgICB9IHx8IHsgcm0gLXJmICIkJGRjX2Rlc3RkaXIiOyBleGl0IDE7IH0pIFwKLSsJ ICAmJiBybSAtcmYgIiQkZGNfZGVzdGRpciIgXAotKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGRpc3QgXAotKwkgICYmIHJtIC1yZiAkKERJU1RfQVJDSElWRVMpIFwKLSsJICAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBkaXN0Y2xlYW5jaGVjayBcCi0rCSAgJiYgY2QgIiQkYW1fX2N3 ZCIgXAotKwkgIHx8IGV4aXQgMQotKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKLSsJQChlY2hvICIk KGRpc3RkaXIpIGFyY2hpdmVzIHJlYWR5IGZvciBkaXN0cmlidXRpb246ICI7IFwKLSsJICBsaXN0 PSckKERJU1RfQVJDSElWRVMpJzsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICQkaTsgZG9uZSkg fCBcCi0rCSAgc2VkIC1lIDFoIC1lIDFzLy4vPS9nIC1lIDFwIC1lIDF4IC1lICckJHAnIC1lICck JHgnCi0rZGlzdHVuaW5zdGFsbGNoZWNrOgotKwlAJChhbV9fY2QpICckKGRpc3R1bmluc3RhbGxj aGVja19kaXIpJyBcCi0rCSYmIHRlc3QgYCQoZGlzdHVuaW5zdGFsbGNoZWNrX2xpc3RmaWxlcykg fCB3YyAtbGAgLWxlIDEgXAotKwkgICB8fCB7IGVjaG8gIkVSUk9SOiBmaWxlcyBsZWZ0IGFmdGVy IHVuaW5zdGFsbDoiIDsgXAotKwkgICAgICAgIGlmIHRlc3QgLW4gIiQoREVTVERJUikiOyB0aGVu IFwKLSsJICAgICAgICAgIGVjaG8gIiAgKGNoZWNrIERFU1RESVIgc3VwcG9ydCkiOyBcCi0rCSAg ICAgICAgZmkgOyBcCi0rCSAgICAgICAgJChkaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzKSA7 IFwKLSsJICAgICAgICBleGl0IDE7IH0gPiYyCi0rZGlzdGNsZWFuY2hlY2s6IGRpc3RjbGVhbgot KwlAaWYgdGVzdCAnJChzcmNkaXIpJyA9IC4gOyB0aGVuIFwKLSsJICBlY2hvICJFUlJPUjogZGlz dGNsZWFuY2hlY2sgY2FuIG9ubHkgcnVuIGZyb20gYSBWUEFUSCBidWlsZCIgOyBcCi0rCSAgZXhp dCAxIDsgXAotKwlmaQotKwlAdGVzdCBgJChkaXN0Y2xlYW5jaGVja19saXN0ZmlsZXMpIHwgd2Mg LWxgIC1lcSAwIFwKLSsJICB8fCB7IGVjaG8gIkVSUk9SOiBmaWxlcyBsZWZ0IGluIGJ1aWxkIGRp cmVjdG9yeSBhZnRlciBkaXN0Y2xlYW46IiA7IFwKLSsJICAgICAgICQoZGlzdGNsZWFuY2hlY2tf bGlzdGZpbGVzKSA7IFwKLSsJICAgICAgIGV4aXQgMTsgfSA+JjIKLStjaGVjay1hbTogYWxsLWFt Ci0rY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQotK2FsbC1hbTogTWFrZWZpbGUgJChTQ1JJUFRTKSAk KERBVEEpCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJz LWFtOgotKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChiaW5kaXIpIiAiJChERVNURElSKSQobTRk YXRhZGlyKSIgIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiOyBkbyBcCi0rCSAgdGVzdCAteiAi JCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAotKwlkb25lCi0raW5zdGFsbDogaW5zdGFs bC1yZWN1cnNpdmUKLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKLStpbnN0 YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1y ZWN1cnNpdmUKLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGlu c3RhbGxjaGVjay1yZWN1cnNpdmUKLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkg IGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NU UklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAi SU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0 bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVy aWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklH X0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05G SUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxF UykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQg aXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMg ZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVz dCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFO RklMRVMpCi0rY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5l cmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVh bi1yZWN1cnNpdmUKLSsJLXJtIC1mICQoYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMpCi0rCS1y bSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMg ZGlzdGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLXJlY3Vy c2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwotK2h0bWwtYW06 Ci0rCi0raW5mbzogaW5mby1yZWN1cnNpdmUKLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0 YS1hbTogaW5zdGFsbC1tNGRhdGFEQVRBIGluc3RhbGwtcGtnY29uZmlnREFUQQotKwotK2luc3Rh bGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWR2aS1hbToKLSsKLStp bnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtYmluU0NSSVBUUwotKwotK2luc3RhbGwtaHRtbDogaW5z dGFsbC1odG1sLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaHRtbC1hbToKLSsKLStpbnN0YWxsLWlu Zm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm8tYW06Ci0rCi0raW5z dGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQotKwotK2lu c3RhbGwtcGRmLWFtOgotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCi0rCi0r aW5zdGFsbC1wcy1hbToKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVh bjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mICQoYW1fX0NPTkZJR19ESVNU Q0xFQU5fRklMRVMpCi0rCS1ybSAtcmYgJCh0b3Bfc3JjZGlyKS9hdXRvbTR0ZS5jYWNoZQotKwkt cm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2 ZQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxp YnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1cnNpdmUKLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLXJl Y3Vyc2l2ZQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWJpblNDUklQ VFMgdW5pbnN0YWxsLWxvY2FsIFwKLSsJdW5pbnN0YWxsLW00ZGF0YURBVEEgdW5pbnN0YWxsLXBr Z2NvbmZpZ0RBVEEKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNV UlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1hbSBpbnN0YWxsLXN0 cmlwIHRhZ3MtcmVjdXJzaXZlCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRT KSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gYW0tLXJl ZnJlc2ggY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCi0rCWNsZWFuLWxpYnRv b2wgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3QgZGlzdC1hbGwgZGlzdC1iemlwMiBcCi0rCWRp c3QtZ3ppcCBkaXN0LWx6bWEgZGlzdC1zaGFyIGRpc3QtdGFyWiBkaXN0LXh6IGRpc3QtemlwIFwK LSsJZGlzdGNoZWNrIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9v bCBcCi0rCWRpc3RjbGVhbi10YWdzIGRpc3RjbGVhbmNoZWNrIGRpc3RkaXIgZGlzdHVuaW5zdGFs bGNoZWNrIGR2aSBcCi0rCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwg aW5zdGFsbC1hbSBcCi0rCWluc3RhbGwtYmluU0NSSVBUUyBpbnN0YWxsLWRhdGEgaW5zdGFsbC1k YXRhLWFtIGluc3RhbGwtZHZpIFwKLSsJaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIGluc3Rh bGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgXAotKwlpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZv IGluc3RhbGwtaW5mby1hbSBcCi0rCWluc3RhbGwtbTRkYXRhREFUQSBpbnN0YWxsLW1hbiBpbnN0 YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCi0rCWluc3RhbGwtcGtnY29uZmlnREFUQSBpbnN0YWxs LXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCi0rCWluc3RhbGxjaGVjayBpbnN0YWxs Y2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gXAotKwltYWludGFpbmVyLWNsZWFu IG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCi0rCW1vc3RseWNsZWFuLWdl bmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKLSsJdGFncyB0 YWdzLXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIFwKLSsJdW5pbnN0YWxsLWJpblND UklQVFMgdW5pbnN0YWxsLWxvY2FsIHVuaW5zdGFsbC1tNGRhdGFEQVRBIFwKLSsJdW5pbnN0YWxs LXBrZ2NvbmZpZ0RBVEEKLSsKLStAU0VUX01BS0VACi0rCi0rIyBUYXJnZXRzCi0rdW5pbnN0YWxs LWxvY2FsOgotKwlybSAtcmYgJChERVNURElSKSQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rCi0r ZGlzdC1odG1sOgotKwkkKE1BS0UpIC1DIGRvYyBkaXN0LWh0bWwKLSsKLStzbmFwc2hvdDogc25h cHNob3Qtc3JjIHNuYXBzaG90LWh0bWwKLSsKLStzbmFwc2hvdC1zcmM6Ci0rICAgICAgICAkKE1B S0UpIGRpc3QgZGlzdGRpcj1AUEFDS0FHRV9UQVJOQU1FQC1gZGF0ZSArIiVZJW0lZCJgCi0rCi0r c25hcHNob3QtaHRtbDoKLSsJJChNQUtFKSAtQyBkb2MgZGlzdC1odG1sIGh0bWxfdGFybmFtZT1A UEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1gZGF0ZSArIiVZJW0lZCJgCi0rCi0rdXBsb2FkOiB1 cGxvYWQtc3JjIHVwbG9hZC1odG1sCi0rCi0rdXBsb2FkLXNyYzogZGlzdAotKwlAVVBMT0FEX0NP TU1BTkRAIEBQQUNLQUdFX1RBUk5BTUVALUBWRVJTSU9OQC50YXIuZ3ogXAotKwlAUEFDS0FHRV9U QVJOQU1FQC1AVkVSU0lPTkAudGFyLmJ6MgotKwotK3VwbG9hZC1odG1sOiBkaXN0LWh0bWwKLSsJ QFVQTE9BRF9DT01NQU5EQCBAUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1AVkVSU0lPTkAudGFy Lmd6IFwKLSsJQFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtQFZFUlNJT05ALnRhci5iejIKLSsK LSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBh bGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBs ZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9tYW4vTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL21hbi9NYWtlZmlsZS5h bQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4vTWFrZWZpbGUu YW0JMjAwOS0wNC0xNiAxOTozNzowOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNCBAQAot KyMgTWFuIHBhZ2VzCi0rbWFuX01BTlMgPSBzb2NpLWNvbmZpZy4xCi0rCi0rRVhUUkFfRElTVCA9 ICQobWFuX01BTlMpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svbWFuL01ha2VmaWxlLmlu IHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4vTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFj ay9tYW4vTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsr KyBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTEu MDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDQ5NCBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJh dGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9p bnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwg MTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcs IDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRoaXMg TWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0 ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMg bm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEK LSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rVlBBVEggPSBAc3JjZGly QAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAk KGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAK LStwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBB VEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9z aF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAk KGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0r SU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1f dHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0r UE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9 IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3Rf dHJpcGxldCA9IEBob3N0QAotK3N1YmRpciA9IG1hbgotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIp L01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbgotK0FDTE9DQUxfTTQgPSAkKHRvcF9z cmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3Bw dW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1 Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMK LSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJF X0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5z dGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmln LmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0r U09VUkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0KLSthbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGly c3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKLSthbV9fdnBhdGhfYWRq ID0gY2FzZSAkJHAgaW4gXAotKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAi c3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAotKyAgICAqKSBmPSQkcDs7IFwKLSsgIGVzYWM7Ci0r YW1fX3N0cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOwotK2FtX19p bnN0YWxsX21heCA9IDQwCi0rYW1fX25vYmFzZV9zdHJpcF9zZXR1cCA9IFwKLSsgIHNyY2RpcnN0 cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKLSth bV9fbm9iYXNlX3N0cmlwID0gXAotKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBk b25lIHwgc2VkIC1lICJzfCQkc3JjZGlyc3RyaXAvfHwiCi0rYW1fX25vYmFzZV9saXN0ID0gJChh bV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgXAotKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIk JHAgJCRwIjsgZG9uZSB8IFwKLSsgIHNlZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAuKlwv LyFzLyAuKi8gLi87IHMsXCggLipcKS9bXi9dKiQkLFwxLCcgfCBcCi0rICAkKEFXSykgJ0JFR0lO IHsgZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBc Ci0rICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKLSsgICAgICB7IHBy aW50ICQkMiwgZmlsZXNbJCQyXTsgblskJDJdID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBcCi0r ICAgIEVORCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKLSth bV9fYmFzZV9saXN0ID0gXAotKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjsk JCFOO3MvXG4vIC9nJyB8IFwKLSsgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycK LSttYW4xZGlyID0gJChtYW5kaXIpL21hbjEKLSthbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElS KSQobWFuMWRpcikiCi0rTlJPRkYgPSBucm9mZgotK01BTlMgPSAkKG1hbl9NQU5TKQotK0RJU1RG SUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJB X0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFS QAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStB VVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09T VF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAot K0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lP U1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NU X0xJQlNACi0rQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAotK0JPT1NUX01QSV9QWVRI T05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19M SUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9QWVRIT05fTElCID0gQEJP T1NUX1BZVEhPTl9MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStC T09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09T VF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9TWVNURU1fTElCID0g QEJPT1NUX1NZU1RFTV9MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElC QAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFN RVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VS SUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAot K0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQ QAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZM QUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9 IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStD WFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RF QAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVG UyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0r RFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9f TkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVF WFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAK LStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNU QUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFM TF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStM REZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AK LStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStM VExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1Ag PSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElC ID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MSUJT ID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0g QE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9 IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxB R1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9P Q0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAot K09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tB R0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9O QU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AK LStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9 IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0r UEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxB R1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxf RElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RH UkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAK LStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0g QFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09D SV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlT UUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURf Q09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1 aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJz X3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFi c190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19j dF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0g QGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1f X3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0g QGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxk X2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRf b3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRp ciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0 YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94 eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBA ZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tA Ci0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9 IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92 ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAK LStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4 X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJl eGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2Nh bHN0YXRlZGlyQAotK2x0X0VDSE8gPSBAbHRfRUNIT0AKLSttYW5kaXIgPSBAbWFuZGlyQAotK21r ZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRm ZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25h bWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGly ID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFy ZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRp ckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBA dG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9z cmNkaXIgPSBAdG9wX3NyY2RpckAKLSsKLSsjIE1hbiBwYWdlcwotK21hbl9NQU5TID0gc29jaS1j b25maWcuMQotK0VYVFJBX0RJU1QgPSAkKG1hbl9NQU5TKQotK2FsbDogYWxsLWFtCi0rCi0rLlNV RkZJWEVTOgotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAg JChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAn JChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICgg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo ICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJl YWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwK LSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgbWFuL01ha2Vm aWxlJzsgXAotKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkg LS1nbnUgbWFuL01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNy Y2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2Ug JyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAot KwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0 dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1f X2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmln LnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVO Q0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVf ZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0r JChhbV9fYWNsb2NhbF9tNF9kZXBzKToKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0g LWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLStpbnN0 YWxsLW1hbjE6ICQobWFuX01BTlMpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIk KG1hbjFkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChtYW4xZGlyKSIKLSsJQGxpc3Q9 Jyc7IHRlc3QgLW4gIiQobWFuMWRpcikiIHx8IGV4aXQgMDsgXAotKwl7IGZvciBpIGluICQkbGlz dDsgZG8gZWNobyAiJCRpIjsgZG9uZTsgXAotKwlsMj0nJChtYW5fTUFOUyknOyBmb3IgaSBpbiAk JGwyOyBkbyBlY2hvICIkJGkiOyBkb25lIHwgXAotKwkgIHNlZCAtbiAnL1wuMVthLXpdKiQkL3An OyBcCi0rCX0gfCB3aGlsZSByZWFkIHA7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBk PTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKLSsJICBlY2hvICIkJGQkJHAiOyBlY2hvICIk JHAiOyBcCi0rCWRvbmUgfCBcCi0rCXNlZCAtZSAnbjtzLC4qLywsO3A7aDtzLC4qXC4sLDtzLF5b XjFdWzAtOWEtel0qJCQsMSw7eCcgXAotKwkgICAgICAtZSAncyxcLlswLTlhLXpdKiQkLCw7JCh0 cmFuc2Zvcm0pO0c7cyxcbiwuLCcgfCBcCi0rCXNlZCAnTjtOO3MsXG4sICxnJyB8IHsgXAotKwls aXN0PTsgd2hpbGUgcmVhZCBmaWxlIGJhc2UgaW5zdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkYmFz ZSIgPSAiJCRpbnN0IjsgdGhlbiBsaXN0PSIkJGxpc3QgJCRmaWxlIjsgZWxzZSBcCi0rCSAgICBl Y2hvICIgJChJTlNUQUxMX0RBVEEpICckJGZpbGUnICckKERFU1RESVIpJChtYW4xZGlyKS8kJGlu c3QnIjsgXAotKwkgICAgJChJTlNUQUxMX0RBVEEpICIkJGZpbGUiICIkKERFU1RESVIpJChtYW4x ZGlyKS8kJGluc3QiIHx8IGV4aXQgJCQ/OyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlmb3Ig aSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAot Kwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCi0rCSAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCi0r CSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgJyQoREVTVERJUikkKG1hbjFkaXIp JyI7IFwKLSsJICAgICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICIkKERFU1RESVIpJChtYW4xZGly KSIgfHwgZXhpdCAkJD87IH07IFwKLSsJZG9uZTsgfQotKwotK3VuaW5zdGFsbC1tYW4xOgotKwlA JChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW4xZGlyKSIgfHwg ZXhpdCAwOyBcCi0rCWZpbGVzPWB7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9u ZTsgXAotKwlsMj0nJChtYW5fTUFOUyknOyBmb3IgaSBpbiAkJGwyOyBkbyBlY2hvICIkJGkiOyBk b25lIHwgXAotKwkgIHNlZCAtbiAnL1wuMVthLXpdKiQkL3AnOyBcCi0rCX0gfCBzZWQgLWUgJ3Ms LiovLCw7aDtzLC4qXC4sLDtzLF5bXjFdWzAtOWEtel0qJCQsMSw7eCcgXAotKwkgICAgICAtZSAn cyxcLlswLTlhLXpdKiQkLCw7JCh0cmFuc2Zvcm0pO0c7cyxcbiwuLCdgOyBcCi0rCXRlc3QgLXog IiQkZmlsZXMiIHx8IHsgXAotKwkgIGVjaG8gIiAoIGNkICckKERFU1RESVIpJChtYW4xZGlyKScg JiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCi0rCSAgY2QgIiQoREVTVERJUikkKG1hbjFkaXIpIiAm JiBybSAtZiAkJGZpbGVzOyB9Ci0rdGFnczogVEFHUwotK1RBR1M6Ci0rCi0rY3RhZ3M6IENUQUdT Ci0rQ1RBR1M6Ci0rCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBsaXN0PSckKE1BTlMp JzsgaWYgdGVzdCAtbiAiJCRsaXN0IjsgdGhlbiBcCi0rCSAgbGlzdD1gZm9yIHAgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2Rpcikv IjsgZmk7IFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkZCQkcCI7IHRoZW4gZWNobyAiJCRkJCRwIjsg ZWxzZSA6OyBmaTsgZG9uZWA7IFwKLSsJICBpZiB0ZXN0IC1uICIkJGxpc3QiICYmIFwKLSsJICAg IGdyZXAgJ2FiIGhlbHAybWFuIGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoaXMgcGFnZScgJCRs aXN0ID4vZGV2L251bGw7IHRoZW4gXAotKwkgICAgZWNobyAiZXJyb3I6IGZvdW5kIG1hbiBwYWdl cyBjb250YWluaW5nIHRoZSBcYG1pc3NpbmcgaGVscDJtYW4nIHJlcGxhY2VtZW50IHRleHQ6IiA+ JjI7IFwKLSsJICAgIGdyZXAgLWwgJ2FiIGhlbHAybWFuIGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRl IHRoaXMgcGFnZScgJCRsaXN0IHwgc2VkICdzL14vICAgICAgICAgLycgPiYyOyBcCi0rCSAgICBl Y2hvICIgICAgICAgdG8gZml4IHRoZW0sIGluc3RhbGwgaGVscDJtYW4sIHJlbW92ZSBhbmQgcmVn ZW5lcmF0ZSB0aGUgbWFuIHBhZ2VzOyIgPiYyOyBcCi0rCSAgICBlY2hvICIgICAgICAgdHlwaWNh bGx5IFxgbWFrZSBtYWludGFpbmVyLWNsZWFuJyB3aWxsIHJlbW92ZSB0aGVtIiA+JjI7IFwKLSsJ ICAgIGV4aXQgMTsgXAotKwkgIGVsc2UgOjsgZmk7IFwKLSsJZWxzZSA6OyBmaQotKwlAc3JjZGly c3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBc Ci0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQk XFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmls ZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2Vk IC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGly c3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBc Ci0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNl ZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0 IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0r CSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9 JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAg ICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAg aWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChk aXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9 IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYm IHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIp LyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChk aXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9 IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIp JCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGly KS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxl IiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFs bC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1hbTogTWFrZWZpbGUgJChNQU5TKQotK2luc3Rh bGxkaXJzOgotKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChtYW4xZGlyKSI7IGRvIFwKLSsJICB0 ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCi0rCWRvbmUKLStpbnN0YWxs OiBpbnN0YWxsLWFtCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRh dGE6IGluc3RhbGwtZGF0YS1hbQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFs bC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0g aW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0 YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQo SU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNU QUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16 ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBS T0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFu LWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19D TEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0g IiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBy bSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdl bmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJz IHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVj aWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotK2NsZWFuOiBjbGVhbi1hbQotKwotK2NsZWFuLWFtOiBj bGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46 IGRpc3RjbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFt IGRpc3RjbGVhbi1nZW5lcmljCi0rCi0rZHZpOiBkdmktYW0KLSsKLStkdmktYW06Ci0rCi0raHRt bDogaHRtbC1hbQotKwotK2h0bWwtYW06Ci0rCi0raW5mbzogaW5mby1hbQotKwotK2luZm8tYW06 Ci0rCi0raW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW1hbgotKwotK2luc3RhbGwtZHZpOiBpbnN0 YWxsLWR2aS1hbQotKwotK2luc3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwtZXhlYy1hbToKLSsK LStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQotKwotK2luc3RhbGwtaHRtbC1hbToKLSsK LStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQotKwotK2luc3RhbGwtaW5mby1hbToKLSsK LStpbnN0YWxsLW1hbjogaW5zdGFsbC1tYW4xCi0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRm LWFtCi0rCi0raW5zdGFsbC1wZGYtYW06Ci0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQot KwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXIt Y2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5l ci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21v c3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVh bi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1hbQotKwotK3BkZi1h bToKLSsKLStwczogcHMtYW0KLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06IHVuaW5zdGFs bC1tYW4KLSsKLSt1bmluc3RhbGwtbWFuOiB1bmluc3RhbGwtbWFuMQotKwotKy5NQUtFOiBpbnN0 YWxsLWFtIGluc3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6IGFsbCBhbGwtYW0gY2hlY2sgY2hlY2st YW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJZGlzdGNsZWFuIGRpc3Rj bGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RkaXIgZHZpIFwKLSsJZHZpLWFtIGh0 bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwKLSsJaW5zdGFsbC1k YXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCi0rCWluc3Rh bGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCi0r CWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1tYW4xIFwK LSsJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwK LSsJaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJz IFwKLSsJbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xl YW4gXAotKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1h bSBwcyBwcy1hbSBcCi0rCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0gdW5pbnN0YWxsLW1hbiB1bmlu c3RhbGwtbWFuMQotKwotKwotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFr ZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGlt aXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9zb2NpLWNvbmZpZy4xIHNvY2ktMy4wLjBfdHJl cDMwMC9tYW4vc29jaS1jb25maWcuMQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9zb2NpLWNv bmZpZy4xCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL21hbi9zb2NpLWNvbmZpZy4xCTIwMDktMDQtMTYgMTk6Mzc6MDkuMDAwMDAwMDAw ICswMjAwCi1AQCAtMCwwICsxLDM5IEBACi0rLlRIIFNPQ0kgMSAiMjggTWFyY2ggMjAwOSIKLSsu U0ggTkFNRQotK3NvY2ktY29uZmlnIC0gc2NyaXB0IHRvIGdldCB2ZXJzaW9uIG51bWJlciBhbmQg Y29tcGlsZXIgZmxhZ3Mgb2YgdGhlIGluc3RhbGxlZCBTT0NJIGxpYnJhcnkKLSsuU0ggU1lOT1BT SVMKLSsuQiBzb2NpLWNvbmZpZwotK1tcLVwtcHJlZml4XSAgW1wtXC12ZXJzaW9uXSBbXC1cLWxp YnNdIFtcLVwtY2ZsYWdzXQotKy5TSCBERVNDUklQVElPTgotKy5QUAotK1xmSXNvY2ktY29uZmln XGZQIGlzIGEgdG9vbCB0aGF0IGlzIHVzZWQgdG8gY29uZmlndXJlIHRvIGRldGVybWluZQotK3Ro ZSBjb21waWxlciBhbmQgbGlua2VyIGZsYWdzIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gY29tcGls ZQotK2FuZCBsaW5rIHByb2dyYW1zIHRoYXQgdXNlIFxmSVNPQ0lcZlAuIEl0IGlzIGFsc28gdXNl ZCBpbnRlcm5hbGx5Ci0rdG8gdGhlIC5tNCBtYWNyb3MgZm9yIEdOVSBhdXRvY29uZiB0aGF0IGFy ZSBpbmNsdWRlZCB3aXRoIFxmSVNPQ0lcZlAuCi0rLgotKy5TSCBPUFRJT05TCi0rLmwKLStcZklz b2NpLWNvbmZpZ1xmUCBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKLSsuVFAgOAotKy5C ICBcLVwtdmVyc2lvbgotK1ByaW50IHRoZSBjdXJyZW50bHkgaW5zdGFsbGVkIHZlcnNpb24gb2Yg XGZJU09DSVxmUCBvbiB0aGUgc3RhbmRhcmQgb3V0cHV0LgotKy5UUCA4Ci0rLkIgIFwtXC1saWJz Ci0rUHJpbnQgdGhlIGxpbmtlciBmbGFncyB0aGF0IGFyZSBuZWNlc3NhcnkgdG8gbGluayBhIFxm SVNPQ0lcZlAgcHJvZ3JhbSwgd2l0aCBjYmxhcwotKy5UUCA4Ci0rLkIgIFwtXC1jZmxhZ3MKLStQ cmludCB0aGUgY29tcGlsZXIgZmxhZ3MgdGhhdCBhcmUgbmVjZXNzYXJ5IHRvIGNvbXBpbGUgYSBc ZklTT0NJXGZQIHByb2dyYW0uCi0rLlRQIDgKLSsuQiAgXC1cLXByZWZpeAotK1Nob3cgdGhlIFNP Q0kgaW5zdGFsbGF0aW9uIHByZWZpeC4KLSsuU0ggU0VFIEFMU08KLSsuQlIgZ3RrLWNvbmZpZyAo MSksCi0rLkJSIGdub21lLWNvbmZpZyAoMSkKLSsuU0ggQ09QWVJJR0hUCi0rQ29weXJpZ2h0IFwo Y28gIDIwMDkgRGVuaXMgQXJuYXVkCi0rCi0rUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlm eSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzCi0rZG9jdW1lbnRhdGlvbiBm b3IgYW55IHB1cnBvc2UgYW5kIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLAotK3Byb3Zp ZGVkIHRoYXQgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMg YW5kIHRoYXQKLStib3RoIHRoYXQgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u IG5vdGljZSBhcHBlYXIgaW4KLStzdXBwb3J0aW5nIGRvY3VtZW50YXRpb24uCi1kaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svTkVXUyBzb2NpLTMuMC4wX3RyZXAzMDAvTkVXUwotLS0tIHNvY2kt My4wLjBfNC1wYWNrL05FV1MJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsr KyBzb2NpLTMuMC4wX3RyZXAzMDAvTkVXUwkyMDA5LTA0LTE2IDE5OjM3OjEwLjAwMDAwMDAwMCAr MDIwMAotQEAgLTAsMCArMSwzIEBACi0rCi0rKiBXZWQgTWFyIDI2IDIwMDkgUlBNIHJlbGVhc2Ug Zm9yIHZlcnNpb24gMy4wLjAKLSsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL01ha2Vm aWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5hbQkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmFtCTIwMDktMDQtMjggMjM6MTU6MTQuMDAwMDAwMDAw ICswMjAwCi1AQCAtMCwwICsxLDkgQEAKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUu Y29tbW9uCi0rCi0rIyMgU291cmNlIGRpcmVjdG9yeQotKwotK01BSU5UQUlORVJDTEVBTkZJTEVT ID0gTWFrZWZpbGUuaW4KLSsKLStTVUJESVJTID0gQE1ZU1FMX0RJUlNAIEBQT1NUR1JFU1FMX0RJ UlNAIEBPUkFDTEVfRElSU0AKLSsKLStFWFRSQV9ESVNUID0KLWRpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6 NDQ6NTEuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDYxNyBAQAotKyMgTWFrZWZpbGUuaW4g Z2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZp Z3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5Nywg MTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYs IDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4KLSsj IFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlz dHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFz IHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsj IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rVlBBVEggPSBA c3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVk aXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFD S0FHRUAKLStwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKLSthbV9fY2Qg PSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5z dGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dS QU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gp IC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHBy b2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwg PSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5T VEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAot K2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxl LmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCi0rCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29t bW9uCi0rc3ViZGlyID0gc29jaS9iYWNrZW5kcwotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIp L2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9f Y29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVO REVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9z aCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStD T05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0rU09VUkNF UyA9Ci0rRElTVF9TT1VSQ0VTID0KLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUg Y2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJl Y3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZl IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3Rh bGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1y ZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGlu c3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5z dGFsbC1yZWN1cnNpdmUKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJl Y3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFp bmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChSRUNVUlNJVkVf VEFSR0VUUzotcmVjdXJzaXZlPSkgXAotKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1 cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAotKwlkaXN0ZGlyCi0rRVRBR1MgPSBldGFn cwotK0NUQUdTID0gY3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCi0rRElTVEZJTEVT ID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElT VCkKLSthbV9fcmVsYXRpdml6ZSA9IFwKLSsgIGRpcjA9YHB3ZGA7IFwKLSsgIHNlZF9maXJzdD0n cyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAotKyAgc2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7IFwK LSsgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCi0rICBzZWRfYnV0bGFzdD0n cywvKlteL10qJCQsLCc7IFwKLSsgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwKLSsgICAg Zmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKLSsgICAgaWYg dGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKLSsgICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9 ICIuLiI7IHRoZW4gXAotKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRz ZWRfbGFzdCJgLyIkJGRpcjIiOyBcCi0rICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAiIHwgc2Vk IC1lICIkJHNlZF9idXRsYXN0ImA7IFwKLSsgICAgICBlbHNlIFwKLSsgICAgICAgIGZpcnN0Mj1g ZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAgICAgICAgaWYgdGVz dCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKLSsgICAgICAgICAgZGlyMj1gZWNobyAi JCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0rICAgICAgICBlbHNlIFwKLSsgICAg ICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAotKyAgICAgICAgZmk7IFwKLSsgICAgICAgIGRpcjA9 IiQkZGlyMCIvIiQkZmlyc3QiOyBcCi0rICAgICAgZmk7IFwKLSsgICAgZmk7IFwKLSsgICAgZGly MT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0rICBkb25lOyBcCi0r ICByZWxkaXI9IiQkZGlyMiIKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJA Ci0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRP SEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZM QUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVf VElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJA Ci0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJ QlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9P U1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JB TV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhP Tl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVH RVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05f TElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZ U1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NU X1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAot K0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0r Q0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAot K0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBA Q1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQ VU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9W RVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0g QENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BB VEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBE U1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hP X04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhF RVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lP TiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9 IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9H UkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQ VEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xE ID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElC UyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9 IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9A Ci0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0r TVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAot K01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJ T05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBA Ci0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFD TEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1Mg PSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJ X1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tB R0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAK LStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tB R0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FH RV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NF UEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NU R1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBA UE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxB R1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIg PSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0r U0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JV UklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQg PSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19C VVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQ QAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lP TkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3Ny Y2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9z cmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3Rf Q1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1f X2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5n X2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSth bV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVp bGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2Nw dUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9y QAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9v dGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRv Y2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStk dmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19v ayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAot K2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRv ciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBp bmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxf c2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVj ZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRl ZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRpciA9IEBt YW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVk ZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGly QAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRl ZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9 IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxk X3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRk aXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9i dWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmls ZS5pbgotK1NVQkRJUlMgPSBATVlTUUxfRElSU0AgQFBPU1RHUkVTUUxfRElSU0AgQE9SQUNMRV9E SVJTQAotK0VYVFJBX0RJU1QgPSAKLSthbGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6 Ci0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3Ny Y2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBp biAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAg KiQkZGVwKikgXAotKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7 IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0r CSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVU T01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvTWFrZWZpbGUnOyBcCi0rCSQoYW1fX2NkKSAkKHRv cF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL01ha2Vm aWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUu aW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAg KmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRA ICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJl KTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bf c3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0r JCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChB Q0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChhbV9fYWNsb2NhbF9t NF9kZXBzKToKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2Ns ZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLSsKLSsjIFRoaXMgZGlyZWN0b3J5 J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAotKyMg aW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2Vm aWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVh ZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKLSsjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGlu IGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKLSsjICAgICAod2hpY2ggd2ls bCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFr ZScpOwotKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBt YWtlJyBjb21tYW5kIGxpbmUuCi0rJChSRUNVUlNJVkVfVEFSR0VUUyk6Ci0rCUBmYWlsPSBmYWls Y29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNl ICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0n ZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAot Kwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWxpc3Q9JyQoU1VC RElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRh cmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4g XAotKwkgICAgZG90X3NlZW49eWVzOyBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFt IjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBm aTsgXAotKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg JCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lOyBcCi0r CWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0rCSAgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJZmk7IHRlc3QgLXogIiQkZmFp bCIKLSsKLSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJQGZhaWw9IGZhaWxjb209J2V4 aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGlu IFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXll cyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCWNhc2Ug IiRAIiBpbiBcCi0rCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQo RElTVF9TVUJESVJTKScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKLSsJZXNh YzsgXAotKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgcmV2PSIkJHN1YmRpciAkJHJl diI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRyZXYgLiI7IFwKLSsJdGFyZ2V0 PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlmb3Igc3ViZGlyIGluICQkcmV2 OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlm IHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFy Z2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwK LSsJICBmaTsgXAotKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25l ICYmIHRlc3QgLXogIiQkZmFpbCIKLSt0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJT KSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8 fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBc Ci0rCWRvbmUKLStjdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2Nk KSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKLSsJZG9uZQot KwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVu aXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVu IGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAot KwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAg RU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBc Ci0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vy c2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQo VEFHU19GSUxFUykgJChMSVNQKQotKwlzZXQgeDsgXAotKwloZXJlPWBwd2RgOyBcCi0rCWlmICgk KEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4g XAotKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD0u OyBcCi0rCWVsc2UgXAotKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAotKwkgIGVtcHR5 X2ZpeD07IFwKLSsJZmk7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJ ICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKLSsJICAgICAgc2V0ICIkJEAiICIkJGlu Y2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7 IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUykn OyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIk JGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBk b25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwK LSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsg fTsgfSdgOyBcCi0rCXNoaWZ0OyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVu aXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0k JGVtcHR5X2ZpeDsgXAotKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKLSsJICAgICQoRVRB R1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAg ICAgIiQkQCIgJCR1bmlxdWU7IFwKLSsJICBlbHNlIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NG TEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAgJCR1bmlxdWU7 IFwKLSsJICBmaTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNp dmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRB R1NfRklMRVMpICQoTElTUCkKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1Ap ICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAg ICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQk aTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9u ZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBm aWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1 ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENU QUdTX0FSR1MpIFwKLSsJICAgICAkJHVuaXF1ZQotKwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19j ZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNk aXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCi0rCi0rZGlzdGNs ZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdz Ci0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNk aXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9 YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAot KwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRs aXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3Ry aXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRk aXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJf UCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlz dGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsg XAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmls ZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0r CSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmls ZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICIkKGRpc3Rk aXIpLyQkZmlsZSI7IHRoZW4gXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5 cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBc Ci0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNk aXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIp JCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5 cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBc Ci0rCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBc Ci0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAg fHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGV4aXQg MTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBz dWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6 OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8 ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAot KwkgIGZpOyBcCi0rCWRvbmUKLSsJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIg aW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNl IFwKLSsJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCi0r CSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAotKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwK LSsJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAotKwkgICAgJChh bV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAotKwkg ICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlz dGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAot KwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hl Y2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsgXAotKwkgICAgKCQoYW1fX2NkKSAk JHN1YmRpciAmJiBcCi0rCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKLSsJICAgICAg ICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwKLSsJICAgICAgICBkaXN0ZGlyPSIk JG5ld19kaXN0ZGlyIiBcCi0rCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCi0rCQlhbV9fc2tpcF9s ZW5ndGhfY2hlY2s9OiBcCi0rCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKLSsJICAgICAgICBkaXN0 ZGlyKSBcCi0rCSAgICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1h bTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQotK2FsbC1hbTogTWFrZWZpbGUKLStp bnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCi0raW5zdGFsbGRpcnMtYW06Ci0raW5z dGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1 cnNpdmUKLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKLSt1bmluc3RhbGw6 IHVuaW5zdGFsbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0 YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKLStpbnN0YWxsLXN0cmlwOgotKwkkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9H UkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0p IiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAot KwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGlu c3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlz dGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJt IC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVz dCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVB Tl9WUEFUSF9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJU aGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8g Iml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVp bGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJ TlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQotKwotK2NsZWFuLWFt OiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xl YW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFt OiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZp LXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwotK2h0 bWwtYW06Ci0rCi0raW5mbzogaW5mby1yZWN1cnNpdmUKLSsKLStpbmZvLWFtOgotKwotK2luc3Rh bGwtZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCi0rCi0r aW5zdGFsbC1kdmktYW06Ci0rCi0raW5zdGFsbC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDog aW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaHRtbC1hbToKLSsKLStpbnN0YWxs LWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm8tYW06Ci0rCi0r aW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQotKwot K2luc3RhbGwtcGRmLWFtOgotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCi0r Ci0raW5zdGFsbC1wcy1hbToKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1j bGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFp bnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwot KwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0bHljbGVhbi1h bTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYt cmVjdXJzaXZlCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1yZWN1cnNpdmUKLSsKLStwcy1hbToK LSsKLSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMp ICQoUkVDVVJTSVZFX1RBUkdFVFMpIGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtYW0gaW5z dGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQotKwotKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5f VEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAotKwlhbGwgYWxsLWFt IGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCi0rCWN0 YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0 Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCi0r CWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAot KwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVj IFwKLSsJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFs bC1pbmZvIFwKLSsJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3Rh bGwtcGRmLWFtIFwKLSsJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5z dGFsbGNoZWNrIFwKLSsJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFt IG1haW50YWluZXItY2xlYW4gXAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xl YW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1h bSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKLSsJdW5pbnN0YWxsIHVuaW5zdGFsbC1h bQotKwotK0BTRVRfTUFLRUAKLSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05V IG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVt IGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5j cHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcAotLS0t IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcAkyMDEwLTAx LTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAg KzAyMDAKLUBAIC02LDcgKzYsMTMgQEAKLSAvLwotIAotICNpbmNsdWRlICJjb21tb24uaCIKLS0j aW5jbHVkZSAic29jaS1iYWNrZW5kLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNf QlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgotKyNl bHNlCi0rIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsjZW5kaWYKLSsvLwotICNpbmNsdWRl IDxjaXNvNjQ2PgotICNpbmNsdWRlIDxjc3RkbGliPgotICNpbmNsdWRlIDxjdGltZT4KLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmFtIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmFtCi0tLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL215c3FsL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICsw MjAwCi1AQCAtMCwwICsxLDI2IEBACi0rIyMgYmFja2VuZHMvbXlzcWwgc3ViLWRpcmVjdG9yeQot K2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStpbmNsdWRlICQoc3JjZGly KS9zb3VyY2VzLm1rCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwot K1NVQkRJUlMgPSAuIHRlc3QKLSsKLStpZiBIQVZFX01ZU1FMCi0rbGliX0xUTElCUkFSSUVTPSBs aWJzb2NpX215c3FsLmxhCi0rCi0rbGlic29jaV9teXNxbF9sYV9TT1VSQ0VTPSAkKGJja19teXNx bF9oX3NvdXJjZXMpICQoYmNrX215c3FsX2NjX3NvdXJjZXMpIAotK2xpYnNvY2lfbXlzcWxfbGFf Q1hYRkxBR1MgPSAkKE1ZU1FMX0NGTEFHUykKLStsaWJzb2NpX215c3FsX2xhX0xJQkFERCA9Ci0r bGlic29jaV9teXNxbF9sYV9MREZMQUdTID0gXAotKwkkKEJPT1NUX0xJQlMpICQoQk9PU1RfREFU RV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCi0rCS12ZXJzaW9uLWlu Zm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLStwa2dpbmNsdWRlX0hFQURFUlMgPSAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCi0rZW5kaWYKLStp ZiBTT0NJX0hFQURFUlNfQlVSSUVECi0rc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikv c29jaS9iYWNrZW5kcy9teXNxbAotK2Vsc2UKLStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRl ZGlyKQotK2VuZGlmCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmJhc2lj IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmJhc2ljCi0t LS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5iYXNpYwky MDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCi1AQCAtMSw5NyArMCwwIEBACi0tIyBUaGUgZm9sbG93aW5nIHZhcmlh YmxlcyBhcmUgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCB0aGVpciBjb3JyZWN0Ci0tIyB2 YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0 IGl0IGFjY29yZGluZ2x5LgotLQotLU1ZU1FMTElCRElSID0gLUwvdXNyL2xpYi9teXNxbAotLU1Z U1FMTElCUyA9IC1sbXlzcWxjbGllbnQgLWx6Ci0tTVlTUUxJTkNMVURFRElSID0gLUkvdXNyL2lu Y2x1ZGUvbXlzcWwKLS0KLS0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVuZGVu dCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgotLQotLUNPTVBJTEVSID0gZysrCi0tQ1hYRkxB R1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKLS1DWFhGTEFHU1NPID0gJHtDWFhG TEFHU30gLWZQSUMKLS1JTkNMVURFRElSUyA9IC1JLi4vLi4vY29yZSAke01ZU1FMSU5DTFVERURJ Un0KLS0KLS0KLS1PQkpFQ1RTID0gYmxvYi5vIGZhY3RvcnkubyByb3ctaWQubyBzZXNzaW9uLm8g c3RhbmRhcmQtaW50by10eXBlLm8gXAotLQlzdGFuZGFyZC11c2UtdHlwZS5vIHN0YXRlbWVudC5v IHZlY3Rvci1pbnRvLXR5cGUubyB2ZWN0b3ItdXNlLXR5cGUubyBcCi0tCWNvbW1vbi5vCi0tCi0t Ci0tT0JKRUNUU1NPID0gYmxvYi1zLm8gZmFjdG9yeS1zLm8gcm93LWlkLXMubyBzZXNzaW9uLXMu byBcCi0tCXN0YW5kYXJkLWludG8tdHlwZS1zLm8gc3RhbmRhcmQtdXNlLXR5cGUtcy5vIHN0YXRl bWVudC1zLm8gXAotLQl2ZWN0b3ItaW50by10eXBlLXMubyB2ZWN0b3ItdXNlLXR5cGUtcy5vIGNv bW1vbi1zLm8KLS0KLS0KLS1saWJzb2NpX215c3FsLmEgOiAke09CSkVDVFN9Ci0tCWFyIHJ2ICRA ICQ/Ci0tCXJtICoubwotLQotLQotLWJsb2IubyA6IGJsb2IuY3BwCi0tCSR7Q09NUElMRVJ9IC1j ICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tY29tbW9uLm8gOiBjb21tb24uY3Bw Ci0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tZmFj dG9yeS5vIDogZmFjdG9yeS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJ TkNMVURFRElSU30KLS0KLS1yb3ctaWQubyA6IHJvdy1pZC5jcHAKLS0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1zZXNzaW9uLm8gOiBzZXNzaW9uLmNw cAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXN0 YW5kYXJkLWludG8tdHlwZS5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAotLQkke0NPTVBJTEVS fSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLXVzZS10eXBl Lm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFH U30gJHtJTkNMVURFRElSU30KLS0KLS1zdGF0ZW1lbnQubyA6IHN0YXRlbWVudC5jcHAKLS0JJHtD T01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS12ZWN0b3ItaW50 by10eXBlLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NY WEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci11c2UtdHlwZS5vIDogdmVjdG9yLXVz ZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fQotLQotLXNoYXJlZCA6ICR7T0JKRUNUU1NPfQotLQkke0NPTVBJTEVSfSAtc2hhcmVkIC1vIGxp YnNvY2lfbXlzcWwuc28gJHtPQkpFQ1RTU099Ci0tCXJtICoubwotLQotLWJsb2Itcy5vIDogYmxv Yi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVE SVJTfQotLQotLWNvbW1vbi1zLm8gOiBjb21tb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRA ICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1mYWN0b3J5LXMubyA6IGZhY3Rv cnkuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURF RElSU30KLS0KLS1yb3ctaWQtcy5vIDogcm93LWlkLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAk QCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc2Vzc2lvbi1zLm8gOiBzZXNz aW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVE RURJUlN9Ci0tCi0tc3RhbmRhcmQtaW50by10eXBlLXMubyA6IHN0YW5kYXJkLWludG8tdHlwZS5j cHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJT fQotLQotLXN0YW5kYXJkLXVzZS10eXBlLXMubyA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAotLQkk e0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0t c3RhdGVtZW50LXMubyA6IHN0YXRlbWVudC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8g JHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci1pbnRvLXR5cGUtcy5vIDog dmVjdG9yLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFH U1NPfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci11c2UtdHlwZS1zLm8gOiB2ZWN0b3ItdXNl LXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNM VURFRElSU30KLS0KLS0KLS1jbGVhbiA6Ci0tCXJtIC1mIGxpYnNvY2lfbXlzcWwuYSBsaWJzb2Np X215c3FsLnNvCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNx bC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9NYWtl ZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZp bGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5pbgkyMDEwLTAxLTIzIDE0OjQ0 OjUxLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw4OTggQEAKLSsjIE1ha2VmaWxlLmluIGdl bmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1 cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5 OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAy MDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMuCi0rIyBU aGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3Ry aWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0 aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotKwotKwotK1ZQQVRI ID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJk aXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2Rpcikv QFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBB UkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0 Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NS SVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEp Ci0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxM ID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNU QUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRf dHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9 ICQoYW1fX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAot KwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJjZXMubWsgXAotKwkkKHRvcF9z cmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvbXlzcWwKLStB Q0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVw cyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2Np Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0 b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVy c2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3Ny Y2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9t NF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21r aW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1 aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xF QU5fVlBBVEhfRklMRVMgPQotK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNo byAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOwotK2FtX192cGF0aF9hZGogPSBjYXNlICQk cCBpbiBcCi0rICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2Rp cnN0cmlwL3x8ImA7OyBcCi0rICAgICopIGY9JCRwOzsgXAotKyAgZXNhYzsKLSthbV9fc3RyaXBf ZGlyID0gZj1gZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7Ci0rYW1fX2luc3RhbGxfbWF4 ID0gNDAKLSthbV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAotKyAgc3JjZGlyc3RyaXA9YGVjaG8g IiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKnxdL1xcXFwmL2cnYAotK2FtX19ub2Jhc2Vf c3RyaXAgPSBcCi0rICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQg LWUgInN8JCRzcmNkaXJzdHJpcC98fCIKLSthbV9fbm9iYXNlX2xpc3QgPSAkKGFtX19ub2Jhc2Vf c3RyaXBfc2V0dXApOyBcCi0rICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBk b25lIHwgXAotKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAu LzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKLSsgICQoQVdLKSAnQkVHSU4geyBmaWxlc1si LiJdID0gIiIgfSB7IGZpbGVzWyQkMl0gPSBmaWxlc1skJDJdICIgIiAkJDE7IFwKLSsgICAgaWYg KCsrblskJDJdID09ICQoYW1fX2luc3RhbGxfbWF4KSkgXAotKyAgICAgIHsgcHJpbnQgJCQyLCBm aWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKLSsgICAgRU5EIHsg Zm9yIChkaXIgaW4gZmlsZXMpIHByaW50IGRpciwgZmlsZXNbZGlyXSB9JwotK2FtX19iYXNlX2xp c3QgPSBcCi0rICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8g L2cnIHwgXAotKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJwotK2FtX19pbnN0 YWxsZGlycyA9ICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRp cikiCi0rTFRMSUJSQVJJRVMgPSAkKGxpYl9MVExJQlJBUklFUykKLStsaWJzb2NpX215c3FsX2xh X0RFUEVOREVOQ0lFUyA9Ci0rYW1fX2xpYnNvY2lfbXlzcWxfbGFfU09VUkNFU19ESVNUID0gIFwK LSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oIFwKLSsJJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaCBcCi0rCSQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9jb21tb24uY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL2ZhY3RvcnkuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3Jvdy1pZC5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lv bi5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50 by10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFy ZC11c2UtdHlwZS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3Rh dGVtZW50LmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3It aW50by10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0 b3ItdXNlLXR5cGUuY3BwCi0rYW1fX29iamVjdHNfMSA9Ci0rYW1fX29iamVjdHNfMiA9IGxpYnNv Y2lfbXlzcWxfbGEtYmxvYi5sbyBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyBcCi0rCWxpYnNv Y2lfbXlzcWxfbGEtZmFjdG9yeS5sbyBsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbyBcCi0rCWxp YnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5sbyBcCi0rCWxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQt aW50by10eXBlLmxvIFwKLSsJbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBc Ci0rCWxpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvIFwKLSsJbGlic29jaV9teXNxbF9sYS12 ZWN0b3ItaW50by10eXBlLmxvIFwKLSsJbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUu bG8KLStASEFWRV9NWVNRTF9UUlVFQGFtX2xpYnNvY2lfbXlzcWxfbGFfT0JKRUNUUyA9ICQoYW1f X29iamVjdHNfMSkgXAotK0BIQVZFX01ZU1FMX1RSVUVACSQoYW1fX29iamVjdHNfMikKLStsaWJz b2NpX215c3FsX2xhX09CSkVDVFMgPSAkKGFtX2xpYnNvY2lfbXlzcWxfbGFfT0JKRUNUUykKLSts aWJzb2NpX215c3FsX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAotKwkkKGxp YnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIFwKLSsJJChsaWJzb2NpX215c3Fs X2xhX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKLStASEFWRV9NWVNRTF9UUlVFQGFtX2xpYnNv Y2lfbXlzcWxfbGFfcnBhdGggPSAtcnBhdGggJChsaWJkaXIpCi0rREVGQVVMVF9JTkNMVURFUyA9 IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQotK2RlcGNvbXAgPSAkKFNIRUxM KSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCi0rYW1fX2RlcGZpbGVzX21heWJlID0gZGVw ZmlsZXMKLSthbV9fbXYgPSBtdiAtZgotK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStMVENYWENPTVBJTEUgPSAkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBc Ci0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp Ci0rQ1hYTEQgPSAkKENYWCkKLStDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1saW5rICQoQ1hYTEQpICQo QU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1v ICRACi0rQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSBcCi0rCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFH UykKLStMVENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KEFNX0NGTEFHUykgJChDRkxBR1MpCi0rQ0NMRCA9ICQoQ0MpCi0rTElOSyA9ICQoTElCVE9PTCkg LS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1s aW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwKLSsJJChM REZMQUdTKSAtbyAkQAotK1NPVVJDRVMgPSAkKGxpYnNvY2lfbXlzcWxfbGFfU09VUkNFUykKLStE SVNUX1NPVVJDRVMgPSAkKGFtX19saWJzb2NpX215c3FsX2xhX1NPVVJDRVNfRElTVCkKLStSRUNV UlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNp dmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJz aXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAot KwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0 YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUg XAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVj dXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLSthbV9fcGtnaW5j bHVkZV9IRUFERVJTX0RJU1QgPSAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvc29jaS1teXNxbC5oCi0rSEVBREVSUyA9ICQocGtnaW5jbHVkZV9IRUFERVJTKQotK1JFQ1VS U0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2 ZQlcCi0rICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0r QU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBc Ci0rCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFn cyBDVEFHUyBcCi0rCWRpc3RkaXIKLStFVEFHUyA9IGV0YWdzCi0rQ1RBR1MgPSBjdGFncwotK0RJ U1RfU1VCRElSUyA9ICQoU1VCRElSUykKLStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJ U1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK2FtX19yZWxhdGl2aXplID0g XAotKyAgZGlyMD1gcHdkYDsgXAotKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwn OyBcCi0rICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAotKyAgc2VkX2xhc3Q9J3MsXi4qL1wo W14vXSpcKSQkLFwxLCc7IFwKLSsgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAotKyAg d2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAotKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8 IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7 IHRoZW4gXAotKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCi0rICAgICAg ICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwK LSsgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsg XAotKyAgICAgIGVsc2UgXAotKyAgICAgICAgZmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1l ICIkJHNlZF9maXJzdCJgOyBcCi0rICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJz dCI7IHRoZW4gXAotKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNl ZF9yZXN0ImA7IFwKLSsgICAgICAgIGVsc2UgXAotKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIi OyBcCi0rICAgICAgICBmaTsgXAotKyAgICAgICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwK LSsgICAgICBmaTsgXAotKyAgICBmaTsgXAotKyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2Vk IC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgIGRvbmU7IFwKLSsgIHJlbGRpcj0iJCRkaXIyIgotK3Br Z2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAot K0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FV VE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBA QVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJ QiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NU X0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1T X0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfTVBJX0xJQiA9IEBCT09T VF9NUElfTElCQAotK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElC QAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJ QkAKLStCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJACi0rQk9PU1RfUkVHRVhf TElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09T VF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxT X0xJQkAKLStCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9MSUJACi0rQk9PU1RfVEhS RUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktf TElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBA Qk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklB TElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZM QUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQ UFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVO SVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJT SU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBA Ci0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZ R1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJA Ci0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9 IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQ ID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBH UkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRB QAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQg PSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RS SVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9 IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9 IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJ TkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBA TVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMg PSBATVlTUUxfRElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lP TiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JK RFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JB Q0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JB Q0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJ T04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBA T1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFD S0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdF X1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9U QVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBB UkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQ R19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9T VEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBA UE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZF UlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAK LStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAot K1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FM X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NU R1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAK LStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStW RVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNf c3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxk ZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFj X2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19j dF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2Rv dCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFy ID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGly QAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxk X2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9y ID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRh dGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29r QAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRp ciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhl Y19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMg PSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rf b3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAot K2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFs bF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBs aWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVk aXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK2x0X0VDSE8gPSBAbHRfRUNI T0AKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRl ZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJl Zml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAK LStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9v a0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGly QAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2Fs aWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRk aXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBG TEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK2Jja19teXNxbF9oX3Nv dXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29t bW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2kt bXlzcWwuaAotKwotK2Jja19teXNxbF9jY19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNw cCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50 LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9y LWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2Vm aWxlLmluCi0rU1VCRElSUyA9IC4gdGVzdAotK0BIQVZFX01ZU1FMX1RSVUVAbGliX0xUTElCUkFS SUVTID0gbGlic29jaV9teXNxbC5sYQotK0BIQVZFX01ZU1FMX1RSVUVAbGlic29jaV9teXNxbF9s YV9TT1VSQ0VTID0gJChiY2tfbXlzcWxfaF9zb3VyY2VzKSAkKGJja19teXNxbF9jY19zb3VyY2Vz KSAKLStASEFWRV9NWVNRTF9UUlVFQGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MgPSAkKE1ZU1FM X0NGTEFHUykKLStASEFWRV9NWVNRTF9UUlVFQGxpYnNvY2lfbXlzcWxfbGFfTElCQUREID0gCi0r QEhBVkVfTVlTUUxfVFJVRUBsaWJzb2NpX215c3FsX2xhX0xERkxBR1MgPSBcCi0rQEhBVkVfTVlT UUxfVFJVRUAJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJP R1JBTV9PUFRJT05TX0xJQikgXAotK0BIQVZFX01ZU1FMX1RSVUVACS12ZXJzaW9uLWluZm8gJChH RU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLStASEFWRV9NWVNRTF9UUlVFQHBrZ2luY2x1ZGVf SEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgK LStAU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRl ZGlyKQotK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5j bHVkZWRpcikvc29jaS9iYWNrZW5kcy9teXNxbAotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5T VUZGSVhFUzoKLSsuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKLSskKHNyY2RpcikvTWFrZWZp bGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21t b24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVw IGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAg ICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAk QDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwK LSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChB VVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZSc7IFwKLSsJJChhbV9f Y2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2Vu ZHMvbXlzcWwvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3Jj ZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAn JD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0r CSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1 cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9f ZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcu c3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5D SUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9k ZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsk KGFtX19hY2xvY2FsX200X2RlcHMpOgotK2luc3RhbGwtbGliTFRMSUJSQVJJRVM6ICQobGliX0xU TElCUkFSSUVTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChsaWJkaXIpIiB8 fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChsaWJkaXIpIgotKwlAbGlzdD0nJChsaWJfTFRMSUJS QVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIpIiB8fCBsaXN0PTsgXAotKwlsaXN0Mj07IGZvciBw IGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwKLSsJICAgIGxpc3Qy PSIkJGxpc3QyICQkcCI7IFwKLSsJICBlbHNlIDo7IGZpOyBcCi0rCWRvbmU7IFwKLSsJdGVzdCAt eiAiJCRsaXN0MiIgfHwgeyBcCi0rCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTEwpICQoSU5TVEFMTF9T VFJJUF9GTEFHKSAkJGxpc3QyICckKERFU1RESVIpJChsaWJkaXIpJyI7IFwKLSsJICAkKExJQlRP T0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJ TlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJCRsaXN0MiAiJChERVNURElSKSQobGliZGly KSI7IFwKLSsJfQotKwotK3VuaW5zdGFsbC1saWJMVExJQlJBUklFUzoKLSsJQCQoTk9STUFMX1VO SU5TVEFMTCkKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IHRlc3QgLW4gIiQobGliZGly KSIgfHwgbGlzdD07IFwKLSsJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgJChhbV9fc3RyaXBf ZGlyKSBcCi0rCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICckKERFU1RESVIpJChsaWJkaXIpLyQkZici OyBcCi0rCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikkKGxpYmRpcikvJCRmIjsgXAotKwlkb25l Ci0rCi0rY2xlYW4tbGliTFRMSUJSQVJJRVM6Ci0rCS10ZXN0IC16ICIkKGxpYl9MVExJQlJBUklF UykiIHx8IHJtIC1mICQobGliX0xUTElCUkFSSUVTKQotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJ RVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUg J3N8L1teL10qJCR8fCdgIjsgXAotKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9Ljsg XAotKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKLSsJICBybSAt ZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCi0rCWRvbmUKLStsaWJzb2NpX215c3FsLmxhOiAk KGxpYnNvY2lfbXlzcWxfbGFfT0JKRUNUUykgJChsaWJzb2NpX215c3FsX2xhX0RFUEVOREVOQ0lF UykgCi0rCSQobGlic29jaV9teXNxbF9sYV9MSU5LKSAkKGFtX2xpYnNvY2lfbXlzcWxfbGFfcnBh dGgpICQobGlic29jaV9teXNxbF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfbXlzcWxfbGFfTElCQURE KSAkKExJQlMpCi0rCi0rbW9zdGx5Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICouJChPQkpFWFQp Ci0rCi0rZGlzdGNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLnRhYi5jCi0rCi0rQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEt YmxvYi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90 ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWNvbW1vbi5QbG9AYW1fX3F1b3RlQAotK0BB TURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215 c3FsX2xhLWZhY3RvcnkuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1yb3ctaWQuUGxvQGFtX19x dW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikv bGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFt X19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRh cmQtaW50by10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUu UGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQuUGxvQGFtX19xdW90ZUAKLStAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNx bF9sYS12ZWN0b3ItaW50by10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19p bmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVz ZS10eXBlLlBsb0BhbV9fcXVvdGVACi0rCi0rLmNwcC5vOgotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1v ICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBv ICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rLmNwcC5vYmo6Ci0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8g LWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFt X19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFN REVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cp ICckPCdgCi0rCi0rLmNwcC5sbzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJ TEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8k Ki5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9i amVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01Q SUxFKSAtYyAtbyAkQCAkPAotKwotK2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbzogJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1ibG9iLmxvIC1NRCAtTVAgLU1G ICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWJsb2IuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxf bGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Js b2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvYmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElS KS9saWJzb2NpX215c3FsX2xhLWJsb2IuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWJs b2IuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215 c3FsX2xhLWJsb2IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAk KGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElC VE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwCi0rCi0rbGlic29j aV9teXNxbF9sYS1jb21tb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9j b21tb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGli c29jaV9teXNxbF9sYS1jb21tb24ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlz cWxfbGEtY29tbW9uLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3Bw Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9teXNx bF9sYS1jb21tb24uVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWNvbW1vbi5QbG8KLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1j b21tb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkg IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwCi0rCi0rbGlic29j aV9teXNxbF9sYS1mYWN0b3J5LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv ZmFjdG9yeS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBs aWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf bXlzcWxfbGEtZmFjdG9yeS5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0 b3J5LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNv Y2lfbXlzcWxfbGEtZmFjdG9yeS5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9y eS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwJyBvYmplY3Q9J2xpYnNvY2lf bXlzcWxfbGEtZmFjdG9yeS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5j cHAKLSsKLStsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3Jvdy1pZC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09M KSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbyAtTUQgLU1QIC1NRiAkKERFUERJ UikvbGlic29jaV9teXNxbF9sYS1yb3ctaWQuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtcm93 LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlk LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3Jvdy1pZC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElS KS9saWJzb2NpX215c3FsX2xhLXJvdy1pZC5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEt cm93LWlkLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCcgb2JqZWN0PSdsaWJz b2NpX215c3FsX2xhLXJvdy1pZC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5j cHAKLSsKLStsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xh LXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9z ZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3Nlc3Npb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAk KERFUERJUikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlRwbyAkKERFUERJUikvbGlic29jaV9t eXNxbF9sYS1zZXNzaW9uLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAnIG9i amVjdD0nbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNL U0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9t eXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zZXNz aW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lv bi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9zZXNzaW9uLmNwcAotKwotK2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBl LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBl LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lf bXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJz b2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9s YS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfbXlzcWxf bGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFu ZGFyZC1pbnRvLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5 cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g bGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQt aW50by10eXBlLmNwcAotKwotK2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG86 ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3Fs X2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215 c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXN0YW5k YXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFy ZC11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5 cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIG9iamVj dD0nbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxf bGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLSsK LStsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3N0YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09M KSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxf bGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChh bV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5UcG8gJChERVBESVIp L2xpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3Rh dGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5sbycgbGlidG9v bD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNv Y2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAKLSsKLStsaWJzb2NpX215c3Fs X2xhLXZlY3Rvci1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC92ZWN0b3ItaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wp ICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyAtTUQgLU1QIC1N RiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlRwbyAtYyAtbyBs aWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5 cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29j aV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9s YS12ZWN0b3ItaW50by10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8t dHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g bGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10 eXBlLmNwcAotKwotK2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvOiAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9t eXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtdmVjdG9y LXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rv ci11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5 cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19t dikgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAkKERFUERJ UikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9y LXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv dmVjdG9yLXVzZS10eXBlLmNwcAotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAq LmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotK2luc3RhbGwt cGtnaW5jbHVkZUhFQURFUlM6ICQocGtnaW5jbHVkZV9IRUFERVJTKQotKwlAJChOT1JNQUxfSU5T VEFMTCkKLSsJdGVzdCAteiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNU RElSKSQocGtnaW5jbHVkZWRpcikiCi0rCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyB0 ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAotKwlmb3IgcCBpbiAkJGxpc3Q7 IGRvIFwKLSsJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8i OyBmaTsgXAotKwkgIGVjaG8gIiQkZCQkcCI7IFwKLSsJZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkg fCBcCi0rCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKLSsJICBlY2hvICIgJChJTlNUQUxMX0hFQURF UikgJCRmaWxlcyAnJChERVNURElSKSQocGtnaW5jbHVkZWRpciknIjsgXAotKwkgICQoSU5TVEFM TF9IRUFERVIpICQkZmlsZXMgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIiB8fCBleGl0ICQk PzsgXAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOgotKwlAJChOT1JN QUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgdGVzdCAtbiAi JChwa2dpbmNsdWRlZGlyKSIgfHwgbGlzdD07IFwKLSsJZmlsZXM9YGZvciBwIGluICQkbGlzdDsg ZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7IFwKLSsJdGVzdCAtbiAiJCRm aWxlcyIgfHwgZXhpdCAwOyBcCi0rCWVjaG8gIiAoIGNkICckKERFU1RESVIpJChwa2dpbmNsdWRl ZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCi0rCWNkICIkKERFU1RESVIpJChwa2dpbmNs dWRlZGlyKSIgJiYgcm0gLWYgJCRmaWxlcwotKwotKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJl Y3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRoZW0g YW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0rIyBU byBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRp bmcgTWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5z dGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRo ZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0rIyAo Mikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1h bmQgbGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWw9IGZhaWxjb209J2V4aXQg MSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwK LSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7 OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCXRhcmdldD1g ZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZv ciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQk c3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBk b3Rfc2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAg ZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAg KCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3Rh cmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAi JCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAi JCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQo UkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAot Kwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAg Kj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJ ICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAiIGluIFwK LSsJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJ UlMpJyA7OyBcCi0rCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAotKwllc2FjOyBcCi0rCXJl dj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIg PSAiLiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAotKwkg IGZpOyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAg fCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJ ICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBc Ci0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBc Ci0rCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxv Y2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYgdGVzdCAt eiAiJCRmYWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1 YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19j ZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQot K2N0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGly ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQo SEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VS Q0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3Ig aSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7 IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0sp ICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAo bm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAt ZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVB REVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVT KSAkKExJU1ApCi0rCXNldCB4OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0t ZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5j bHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxz ZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAot KwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK LSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAh IC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICBzZXQgIiQkQCIgIiQkaW5jbHVkZV9vcHRp b249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlsaXN0 PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5p cXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4g ZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0r CSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBF TkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwK LSsJc2hpZnQ7IFwKLSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhl biA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4 OyBcCi0rCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAotKwkgICAgJChFVEFHUykgJChFVEFH U0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAiJCRAIiAk JHVuaXF1ZTsgXAotKwkgIGVsc2UgXAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFN X0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAkJHVuaXF1ZTsgXAotKwkgIGZp OyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURF UlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykg JChMSVNQKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJ TEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3Qg LWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAot KwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7 IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmlu dCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCi0rCSAg fHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykg XAotKwkgICAgICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9i dWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAotKwkg ICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKLSsKLStkaXN0Y2xlYW4tdGFnczoK LSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0 ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2Vk ICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0 b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQo RElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVj aG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBc Ci0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7 IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAi JCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3Ms L1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBm aWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3Qg LWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0 IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAt ZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxl IjsgdGhlbiBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBl cm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGlm IHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4g XAotKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwg ZXhpdCAxOyBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBl cm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNw IC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICBlbHNl IFwKLSsJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBjcCAtcCAk JGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAg Zmk7IFwKLSsJZG9uZQotKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAot KwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgJChNS0RJUl9Q KSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwK LSsJZG9uZQotKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7 IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAg ZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwKLSsJICAgICQoYW1f X3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfZGlzdGRpcj0kJHJlbGRpcjsgXAotKwkgICAgZGly MT0kJHN1YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCi0rCSAgICAkKGFtX19yZWxhdGl2 aXplKTsgXAotKwkgICAgbmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBlY2hvICIg KGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIkJG5l d190b3BfZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBcCi0rCSAgICBlY2hv ICIgICAgIGFtX19yZW1vdmVfZGlzdGRpcj06IGFtX19za2lwX2xlbmd0aF9jaGVjaz06IGFtX19z a2lwX21vZGVfZml4PTogZGlzdGRpcikiOyBcCi0rCSAgICAoJChhbV9fY2QpICQkc3ViZGlyICYm IFwKLSsJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICAgICAgIHRvcF9kaXN0 ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRpc3RkaXI9IiQkbmV3X2Rpc3Rk aXIiIFwKLSsJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFtX19za2lwX2xlbmd0aF9jaGVj az06IFwKLSsJCWFtX19za2lwX21vZGVfZml4PTogXAotKwkgICAgICAgIGRpc3RkaXIpIFwKLSsJ ICAgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0K LStjaGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFSSUVT KSAkKEhFQURFUlMpCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2luc3Rh bGxkaXJzLWFtOgotKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElS KSQocGtnaW5jbHVkZWRpcikiOyBkbyBcCi0rCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJf UCkgIiQkZGlyIjsgXAotKwlkb25lCi0raW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKLStpbnN0 YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKLStpbnN0YWxsLWRhdGE6IGluc3RhbGwt ZGF0YS1yZWN1cnNpdmUKLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKLSsKLStpbnN0 YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1h bSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNp dmUKLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BS T0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JB TT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkg IGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VO Vj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgot KwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIk KENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwkt dGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklM RVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKLSsKLSttYWludGFpbmVy LWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1h aW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVx dWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVS Q0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNs ZWFuLXJlY3Vyc2l2ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYkxUTElC UkFSSUVTIGNsZWFuLWxpYnRvb2wgXAotKwltb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjog ZGlzdGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtl ZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFu LWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwot K2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwotK2h0bWwtYW06Ci0rCi0raW5m bzogaW5mby1yZWN1cnNpdmUKLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbTogaW5z dGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1 cnNpdmUKLSsKLStpbnN0YWxsLWR2aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwt bGliTFRMSUJSQVJJRVMKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUK LSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVj dXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3Rh bGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStp bnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0r aW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4t cmVjdXJzaXZlCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFp bnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwot KwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0bHljbGVhbi1h bTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xl YW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczog cHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtbGli TFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0rLk1BS0U6ICQoUkVD VVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGN0YWdzLXJlY3Vyc2l2 ZSBcCi0rCWluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQotKwotKy5QSE9O WTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1Mg R1RBR1MgXAotKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMg XAotKwljbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIGN0YWdzIGN0YWdzLXJlY3Vy c2l2ZSBcCi0rCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBc Ci0rCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBo dG1sIFwKLSsJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwt ZGF0YSBcCi0rCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0 YWxsLWV4ZWMgXAotKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1h bSBpbnN0YWxsLWluZm8gXAotKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1saWJMVExJQlJBUklF UyBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcGtn aW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wcyBcCi0rCWluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJp cCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKLSsJaW5zdGFsbGRpcnMgaW5zdGFsbGRp cnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKLSsJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAotKwl0YWdzIHRhZ3MtcmVjdXJz aXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAotKwl1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMg dW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0rQFNFVF9NQUtFQAotKwotKyMgVGVsbCB2 ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJs ZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkg YmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNx bC5oCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtMjMsMTIgKzIzLDIz IEBACi0gI2lmbmRlZiBTT0NJX01ZU1FMX0RFQ0wKLSAjIGRlZmluZSBTT0NJX01ZU1FMX0RFQ0wK LSAjZW5kaWYKLS0KLS0jaW5jbHVkZSAic29jaS1iYWNrZW5kLmgiCi0rLy8KLSsjaWYgZGVmaW5l ZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2kt YmFja2VuZC5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsjZW5kaWYK LSsvLwotICNpZmRlZiBfV0lOMzIKLSAjaW5jbHVkZSA8d2luc29jay5oPiAvLyBTT0NLRVQKLSAj ZW5kaWYgLy8gX1dJTjMyCi0tI2luY2x1ZGUgPG15c3FsLmg+IC8vIE15U1FMIENsaWVudAotKy8v Ci0rLy8gTXlTUUwgQ2xpZW50Ci0rI2lmIGRlZmluZWQoU09DSV9NWVNRTF9IRUFERVJTX0JVUklF RCkKLSsjICAgICAgIGluY2x1ZGUgPG15c3FsL215c3FsLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUg PG15c3FsLmg+Ci0rI2VuZGlmCi0gI2luY2x1ZGUgPHZlY3Rvcj4KLSAKLSAKLWRpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3NvdXJjZXMubWsgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5tawotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215 c3FsL3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0w LDAgKzEsMTQgQEAKLStiY2tfbXlzcWxfaF9zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKLStiY2tfbXlzcWxfY2Nfc291cmNl cyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNw cCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNw cCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5j cHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5j cHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24u Y3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFy ZC1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5 cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWlu dG8tdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3N0 YW5kYXJkLWludG8tdHlwZS5jcHAJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRv LXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtOCw4ICs4 LDE0IEBACi0gCi0gI2RlZmluZSBTT0NJX01ZU1FMX1NPVVJDRQotICNpbmNsdWRlICJzb2NpLW15 c3FsLmgiCi0tI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KLSAjaW5jbHVkZSAiY29tbW9uLmgi Ci0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVk ZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS1w bGF0Zm9ybS5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGNpc282NDY+Ci0gI2luY2x1ZGUg PGNhc3NlcnQ+Ci0gI2luY2x1ZGUgPGN0aW1lPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotLS0tIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIw MTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDktMDUtMDUgMjI6 MjU6NDAuMDAwMDAwMDAwICswMjAwCi1AQCAtOSw3ICs5LDEyIEBACi0gI2RlZmluZSBTT0NJX01Z U1FMX1NPVVJDRQotICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0gI2luY2x1ZGUgImNvbW1vbi5o IgotLSNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hF QURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0u aD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgotKyNlbmRpZgotIC8vCi0g I2luY2x1ZGUgPGNpc282NDY+Ci0gI2luY2x1ZGUgPGxpbWl0cz4KLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYW0gc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5hbQotLS0tIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYW0JMjAxMC0wMS0yMyAxNDo0MzoxOC4wMDAw MDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMTggQEAKLSsjIyBiYWNrZW5kL215c3FsL3Rlc3Qgc3Vi LWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStpbmNs dWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtl ZmlsZS5pbgotKwotK2lmIFJVTl9URVNUUwotKyAgbm9pbnN0X1BST0dSQU1TID0gdGVzdF9teXNx bAotK2VuZGlmCi0rCi0rdGVzdF9teXNxbF9TT1VSQ0VTID0gJChteXNxbF90ZXN0X2NjX3NvdXJj ZXMpCi0rdGVzdF9teXNxbF9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKQotK3Rlc3RfbXlzcWxf TERBREQgPQotK3Rlc3RfbXlzcWxfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUv bGlic29jaV9jb3JlLmxhIC1sZGwgXAotKwkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvbGlic29jaV9teXNxbC5sYSBcCi0rCQkkKE1ZU1FMX0xJQlMpCi0rCi0rI25vZGlzdF9w a2dpbmNsdWRlX0hFQURFUlMgPSAkKG15c3FsX3Rlc3RfaF9zb3VyY2VzKQotZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5iYXNpYyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmJhc2lj Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxl LmJhc2ljCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotQEAgLTEsMjIgKzAsMCBAQAotLSMgVGhlIGZv bGxvd2luZyB2YXJpYWJsZXMgYXJlIHNwZWNpZmljIHRvIHRoaXMgYmFja2VuZCBhbmQgdGhlaXIg Y29ycmVjdAotLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVl bCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KLS0KLS1NWVNRTExJQkRJUiA9IC1ML3Vzci9s aWIvbXlzcWwKLS1NWVNRTExJQlMgPSAtbG15c3FsY2xpZW50IC1segotLU1ZU1FMSU5DTFVERURJ UiA9IC1JL3Vzci9pbmNsdWRlL215c3FsCi0tCi0tIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUg aXMgaW5kZXBlbmRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KLS0KLS1DT01QSUxFUiA9 IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCi0tSU5DTFVE RURJUlMgPSAtSS4uIC1JLi4vLi4vLi4vY29yZSAke01ZU1FMSU5DTFVERURJUn0KLS1MSUJESVJT ID0gLUwuLiAtTC4uLy4uLy4uL2NvcmUgJHtNWVNRTExJQkRJUn0KLS1MSUJTID0gLWxzb2NpX2Nv cmUgLWxzb2NpX215c3FsIC1sZGwgJHtNWVNRTExJQlN9Ci0tCi0tCi0tdGVzdC1teXNxbCA6IHRl c3QtbXlzcWwuY3BwCi0tCSR7Q09NUElMRVJ9IC1vICRAICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVE RURJUlN9ICR7TElCRElSU30gJHtMSUJTfQotLQotLQotLWNsZWFuIDoKLS0Jcm0gLWYgdGVzdC1t eXNxbAotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVz dC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0 L01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90 ZXN0L01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5pbgky MDEwLTAxLTIzIDE0OjQ0OjUxLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw1NTggQEAKLSsj IE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5h bS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUs IDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0 LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s Ci0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv cHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u cywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3 OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtF QAotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FH RUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIg PSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBB Q0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFU T1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0r aW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBU ID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0r dHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0g OgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxM ID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJp cGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQo c3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHNyY2Rpcikv c291cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK0BSVU5fVEVTVFNfVFJV RUBub2luc3RfUFJPR1JBTVMgPSB0ZXN0X215c3FsJChFWEVFWFQpCi0rc3ViZGlyID0gc29jaS9i YWNrZW5kcy9teXNxbC90ZXN0Ci0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5t NAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bv c3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0 b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s dH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVf ZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBc Ci0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NP TkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVB Tl9GSUxFUyA9Ci0rQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KLStQUk9HUkFNUyA9ICQobm9p bnN0X1BST0dSQU1TKQotK2FtX19vYmplY3RzXzEgPSB0ZXN0X215c3FsLXRlc3QtbXlzcWwuJChP QkpFWFQpCi0rYW1fdGVzdF9teXNxbF9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKQotK3Rlc3Rf bXlzcWxfT0JKRUNUUyA9ICQoYW1fdGVzdF9teXNxbF9PQkpFQ1RTKQotK3Rlc3RfbXlzcWxfREVQ RU5ERU5DSUVTID0KLSt0ZXN0X215c3FsX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkg JCh0ZXN0X215c3FsX0NYWEZMQUdTKSBcCi0rCSQoQ1hYRkxBR1MpICQodGVzdF9teXNxbF9MREZM QUdTKSAkKExERkxBR1MpIC1vICRACi0rREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0Ag LUkkKHRvcF9idWlsZGRpcikvc29jaQotK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIp L2NvbmZpZy9kZXBjb21wCi0rYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKLSthbV9fbXYg PSBtdiAtZgotK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFH UykgJChDWFhGTEFHUykKLStMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rQ1hYTEQgPSAkKENY WCkKLStDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQo Q1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRACi0rU09VUkNFUyA9 ICQodGVzdF9teXNxbF9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQodGVzdF9teXNxbF9TT1VS Q0VTKQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVEZJTEVTID0gJChESVNU X0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xP Q0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYg PSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFV VE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStC T09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZ U1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9 IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09T VF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9P U1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9Q Uk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJ QkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTEla QVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElC ID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVN X0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0r Qk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJ QiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0g QENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1Mg PSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5J VF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElC U0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0r Q1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1Mg PSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0r REVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERV TVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9 IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9 IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVS U0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFU QSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAK LStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dS QU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERG TEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBA TElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBM VExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAot K01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19M SUJACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xJQlMgPSBATVlTUUxfTElC U0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElU ID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStP UkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVf T0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAot K09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RP T0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdF X0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FH RV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFS TkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVS U0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxA Ci0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JF U1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RH UkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9O ID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNF ID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0r U0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVS SUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JV UklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQ TE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJz X2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGly ID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJA Ci0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19j dF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVA Ci0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1f X3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAot K2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVp bGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9v c0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGly QAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStk aWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRv eHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStl eGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhv c3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAot K2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1s ZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBA aW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhf b2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9j YWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0r bHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rp cl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGly QAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFt X3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAK LStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAot K3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9h bGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJl Zml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bf c3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIp Ci0rbXlzcWxfdGVzdF9oX3NvdXJjZXMgPSAKLStteXNxbF90ZXN0X2NjX3NvdXJjZXMgPSAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAotK01BSU5U QUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSt0ZXN0X215c3FsX1NPVVJDRVMgPSAkKG15 c3FsX3Rlc3RfY2Nfc291cmNlcykKLSt0ZXN0X215c3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxB R1MpCi0rdGVzdF9teXNxbF9MREFERCA9IAotK3Rlc3RfbXlzcWxfTERGTEFHUyA9ICQodG9wX2J1 aWxkZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3JlLmxhIC1sZGwgXAotKwkJJCh0b3BfYnVpbGRk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvbGlic29jaV9teXNxbC5sYSBcCi0rCQkkKE1ZU1FMX0xJ QlMpCi0rCi0rYWxsOiBhbGwtYW0KLSsKLSsuU1VGRklYRVM6Ci0rLlNVRkZJWEVTOiAuY3BwIC5s byAubyAub2JqCi0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFt ICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1f X2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1f X2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICAoIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwK LSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBm aTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVj aG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMv bXlzcWwvdGVzdC9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAot KwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZQot Ky5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQo dG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25m aWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRv cF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFt X19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVM TCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBc Ci0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2Rp cikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9w X3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NB TF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoYW1fX2FjbG9jYWxfbTRfZGVw cyk6Ci0rCi0rY2xlYW4tbm9pbnN0UFJPR1JBTVM6Ci0rCUBsaXN0PSckKG5vaW5zdF9QUk9HUkFN UyknOyB0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAotKwllY2hvICIgcm0gLWYiICQkbGlz dDsgXAotKwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKLSsJdGVzdCAtbiAiJChFWEVFWFQp IiB8fCBleGl0IDA7IFwKLSsJbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBk b25lIHwgc2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAotKwllY2hvICIgcm0gLWYiICQkbGlzdDsg XAotKwlybSAtZiAkJGxpc3QKLSt0ZXN0X215c3FsJChFWEVFWFQpOiAkKHRlc3RfbXlzcWxfT0JK RUNUUykgJCh0ZXN0X215c3FsX0RFUEVOREVOQ0lFUykgCi0rCUBybSAtZiB0ZXN0X215c3FsJChF WEVFWFQpCi0rCSQodGVzdF9teXNxbF9MSU5LKSAkKHRlc3RfbXlzcWxfT0JKRUNUUykgJCh0ZXN0 X215c3FsX0xEQUREKSAkKExJQlMpCi0rCi0rbW9zdGx5Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1m ICouJChPQkpFWFQpCi0rCi0rZGlzdGNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLnRhYi5jCi0r Ci0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Rlc3Rf bXlzcWwtdGVzdC1teXNxbC5Qb0BhbV9fcXVvdGVACi0rCi0rLmNwcC5vOgotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCou VHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJ UikvJCouVHBvICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hA Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rLmNwcC5vYmo6Ci0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElS KS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRv b2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChD WUdQQVRIX1cpICckPCdgCi0rCi0rLmNwcC5sbzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChM VENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRA ICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQo REVQRElSKS8kKi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo TFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotK3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5vOiAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9teXNxbF9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vIC1NRCAtTVAgLU1GICQo REVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuVHBvIC1jIC1vIHRlc3RfbXlzcWwtdGVzdC1t eXNxbC5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90 ZXN0LW15c3FsLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuVHBvICQoREVQRElSKS90 ZXN0X215c3FsLXRlc3QtbXlzcWwuUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1t eXNxbC5jcHAnIG9iamVjdD0ndGVzdF9teXNxbC10ZXN0LW15c3FsLm8nIGxpYnRvb2w9bm8gQEFN REVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qv dGVzdC1teXNxbC5jcHAKLSsKLSt0ZXN0X215c3FsLXRlc3QtbXlzcWwub2JqOiAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9teXNxbF9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vYmogLU1EIC1NUCAtTUYgJChERVBESVIp L3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5UcG8gLWMgLW8gdGVzdF9teXNxbC10ZXN0LW15c3FsLm9i aiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVz dC1teXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNk aXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3Bw JzsgZmlgCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvdGVzdF9t eXNxbC10ZXN0LW15c3FsLlRwbyAkKERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlBvCi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJyBvYmplY3Q9J3Rlc3RfbXlz cWwtdGVzdC1teXNxbC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRl c3RfbXlzcWwtdGVzdC1teXNxbC5vYmogYGlmIHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJzsgZWxz ZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IGZpYAotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0r CS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwot KwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVu aXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVu IGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAot KwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAg RU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBc Ci0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiAgJChIRUFERVJT KSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQo TElTUCkKLSsJc2V0IHg7IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQo SEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAk JGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2Ug ZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZp bGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1w dHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJc2hpZnQ7IFwKLSsJ aWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJ ICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgaWYgdGVz dCAkJCMgLWd0IDA7IHRoZW4gXAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VU QUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAotKwkg IGVsc2UgXAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQo RVRBR1NfQVJHUykgXAotKwkgICAgICAkJHVuaXF1ZTsgXAotKwkgIGZpOyBcCi0rCWZpCi0rY3Rh Z3M6IENUQUdTCi0rQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRF TkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwlsaXN0PSckKFNPVVJDRVMpICQo SEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAk JGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2Ug ZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZp bGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1w dHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChD VEFHU19BUkdTKSQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFN X0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQkdW5pcXVlCi0rCi0rR1RBR1M6 Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgJChh bV9fY2QpICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQk aGVyZSIKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdT IEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0 cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAot Kwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxc Kl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVz PWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAt ZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0 cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAot KwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQg Jy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAt dWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkg IGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQo c3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAg ZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlm IHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCi0rCSAgICAgIGZpbmQgIiQoZGlz dGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBc OzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0 ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8k JGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgICAgIGZpbmQgIiQoZGlz dGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBc OzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQk ZGlyIiB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikv JCRmaWxlIiBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIg XAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwt YW0KLStjaGVjazogY2hlY2stYW0KLSthbGwtYW06IE1ha2VmaWxlICQoUFJPR1JBTVMpCi0raW5z dGFsbGRpcnM6Ci0raW5zdGFsbDogaW5zdGFsbC1hbQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1l eGVjLWFtCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KLSt1bmluc3RhbGw6IHVuaW5z dGFsbC1hbQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFH UykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5z dGFsbGNoZWNrLWFtCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykg SU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxs X3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFH PS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExf UFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4t Z2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwkt dGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9G SUxFUykKLSsJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFO X1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCi0rCi0r bWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVu ZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRo YXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQo TUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQot K2NsZWFuOiBjbGVhbi1hbQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRv b2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgXAotKwltb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVh bjogZGlzdGNsZWFuLWFtCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1ha2VmaWxl Ci0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2Vu ZXJpYyBcCi0rCWRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmktYW0KLSsKLStkdmktYW06Ci0r Ci0raHRtbDogaHRtbC1hbQotKwotK2h0bWwtYW06Ci0rCi0raW5mbzogaW5mby1hbQotKwotK2lu Zm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2 aS1hbQotKwotK2luc3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0 YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQotKwotK2luc3RhbGwtaHRtbC1hbToKLSsKLStpbnN0 YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQotKwotK2luc3RhbGwtaW5mby1hbToKLSsKLStpbnN0 YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KLSsKLStpbnN0YWxsLXBk Zi1hbToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCi0rCi0raW5zdGFsbC1wcy1hbToK LSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1j bGVhbi1hbQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50 YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsK LSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5 Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9v bAotKwotK3BkZjogcGRmLWFtCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1hbQotKwotK3BzLWFt OgotKwotK3VuaW5zdGFsbC1hbToKLSsKLSsuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlw Ci0rCi0rLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFu IGNsZWFuLWdlbmVyaWMgXAotKwljbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIGN0 YWdzIGRpc3RjbGVhbiBcCi0rCWRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRp c3RjbGVhbi1saWJ0b29sIFwKLSsJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0 bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAotKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1k YXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCi0rCWluc3RhbGwtZHZpLWFtIGluc3Rh bGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwKLSsJaW5zdGFsbC1odG1sLWFt IGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gXAotKwlpbnN0YWxsLXBk ZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAotKwlpbnN0YWxsLXN0 cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgXAotKwltYWludGFp bmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCi0rCW1vc3Rs eWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIFwK LSsJcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStA U0VUX01BS0VACi0rCi0rI25vZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKG15c3FsX3Rlc3Rf aF9zb3VyY2VzKQotKwotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0 byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQg KGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9zb3VyY2VzLm1r IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291cmNlcy5tawot LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9zb3VyY2VzLm1r CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6 MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDIgQEAKLStteXNxbF90ZXN0X2hfc291cmNl cyA9Ci0rbXlzcWxfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAkyMDEwLTAxLTIz IDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAw MDAwMDAgKzAyMDAKLUBAIC02LDkgKzYsMTcgQEAKLSAvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9M SUNFTlNFXzFfMC50eHQpCi0gLy8KLSAKLS0jaW5jbHVkZSAic29jaS5oIgotLSNpbmNsdWRlICJz b2NpLW15c3FsLmgiCi0tI2luY2x1ZGUgInRlc3QvY29tbW9uLXRlc3RzLmgiCi0rLy8KLSsjaWYg ZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3Jl L3NvY2kuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNx bC5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmg+Ci0r I2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2kuaD4KLSsjCWluY2x1ZGUgPHNvY2ktbXlzcWwuaD4KLSsj ICAgICAgIGluY2x1ZGUgPHRlc3QvY29tbW9uLXRlc3RzLmg+Ci0rI2VuZGlmCi0rLy8KLSAjaW5j bHVkZSA8aW9zdHJlYW0+Ci0gI2luY2x1ZGUgPHNzdHJlYW0+Ci0gI2luY2x1ZGUgPHN0cmluZz4K LUBAIC0xOCw4ICsyNiwxNCBAQAotICNpbmNsdWRlIDxjdGltZT4KLSAjaW5jbHVkZSA8Y2lzbzY0 Nj4KLSAjaW5jbHVkZSA8Y3N0ZGxpYj4KLS0jaW5jbHVkZSA8bXlzcWxkX2Vycm9yLmg+Ci0tI2lu Y2x1ZGUgPGVycm1zZy5oPgotKy8vIE15U1FMIENsaWVudAotKyNpZiBkZWZpbmVkKFNPQ0lfTVlT UUxfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxteXNxbC9teXNxbGRfZXJyb3Iu aD4KLSsjICAgICAgIGluY2x1ZGUgPG15c3FsL2Vycm1zZy5oPgotKyNlbHNlCi0rIyAgICAgICBp bmNsdWRlIDxteXNxbGRfZXJyb3IuaD4KLSsjICAgICAgIGluY2x1ZGUgPGVycm1zZy5oPgotKyNl bmRpZgotIAotIHVzaW5nIG5hbWVzcGFjZSBzb2NpOwotIHVzaW5nIG5hbWVzcGFjZSBzb2NpOjp0 ZXN0czsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Zl Y3Rvci1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3Fs L3ZlY3Rvci1pbnRvLXR5cGUuY3BwCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAw MCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rv ci1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAt OSw3ICs5LDEzIEBACi0gI2RlZmluZSBTT0NJX01ZU1FMX1NPVVJDRQotICNpbmNsdWRlICJzb2Np LW15c3FsLmgiCi0gI2luY2x1ZGUgImNvbW1vbi5oIgotLSNpbmNsdWRlIDxzb2NpLXBsYXRmb3Jt Lmg+Ci0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5j bHVkZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29j aS1wbGF0Zm9ybS5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGNpc282NDY+Ci0gCi0gI2lm ZGVmIF9NU0NfVkVSCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9t eXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC92 ZWN0b3ItdXNlLXR5cGUuY3BwCTIwMDktMDUtMDUgMjI6MjM6MjkuMDAwMDAwMDAwICswMjAwCi1A QCAtOSw3ICs5LDEyIEBACi0gI2RlZmluZSBTT0NJX01ZU1FMX1NPVVJDRQotICNpbmNsdWRlICJz b2NpLW15c3FsLmgiCi0gI2luY2x1ZGUgImNvbW1vbi5oIgotLSNpbmNsdWRlIDxzb2NpLXBsYXRm b3JtLmg+Ci0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAg aW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8 c29jaS1wbGF0Zm9ybS5oPgotKyNlbmRpZgotIC8vCi0gI2luY2x1ZGUgPGNpc282NDY+Ci0gI2lu Y2x1ZGUgPGxpbWl0cz4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRz L29yYWNsZS9ibG9iLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUv YmxvYi5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9i LmNwcAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2 LjAwMDAwMDAwMCArMDIwMAotQEAgLTcsNyArNywxMyBAQAotIAotICNpbmNsdWRlICJzb2NpLW9y YWNsZS5oIgotICNpbmNsdWRlICJlcnJvci5oIgotLSNpbmNsdWRlICJzdGF0ZW1lbnQuaCIKLSsv LwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxz b2NpL2NvcmUvc3RhdGVtZW50Lmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHN0YXRlbWVudC5oPgot KyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGNzdHJpbmc+Ci0gI2luY2x1ZGUgPHNzdHJlYW0+Ci0g I2luY2x1ZGUgPGNzdGRpbz4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL29yYWNsZS9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9v cmFjbGUvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29y YWNsZS9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5hbQkyMDA5 LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwyNyBAQAotKyMjIGJh Y2tlbmRzL29yYWNsZSBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsKLStNQUlOVEFJTkVS Q0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9IC4gdGVzdAotKwotK2lmIEhB VkVfT1JBQ0xFCi0rbGliX0xUTElCUkFSSUVTPSBsaWJzb2NpX29yYWNsZS5sYQotKwotK2xpYnNv Y2lfb3JhY2xlX2xhX1NPVVJDRVM9ICQoYmNrX29yYWNsZV9oX3NvdXJjZXMpICQoYmNrX29yYWNs ZV9jY19zb3VyY2VzKSAKLStsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUyA9ICQoT1JBQ0xFX09D SV9DRkxBR1MpCi0rbGlic29jaV9vcmFjbGVfbGFfTElCQUREID0KLStsaWJzb2NpX29yYWNsZV9s YV9MREZMQUdTID0gXAotKwkkKEJPT1NUX0xJQlMpICQoQk9PU1RfREFURV9USU1FX0xJQikgJChC T09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCi0rCSQoT1JBQ0xFX09DSV9MREZMQUdTKSBcCi0r CS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLStub2Jhc2VfcGtn aW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2Np LW9yYWNsZS5oCi0rZW5kaWYKLStpZiBTT0NJX0hFQURFUlNfQlVSSUVECi0rc29jaV9pbmNsdWRl X2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUKLStlbHNlCi0rc29jaV9p bmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKLStlbmRpZgotK3BrZ2luY2x1ZGVkaXIgPSAkKHNv Y2lfaW5jbHVkZV9kaXIpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9vcmFjbGUvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv b3JhY2xlL01ha2VmaWxlLmJhc2ljCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9vcmFjbGUvTWFrZWZpbGUuYmFzaWMJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUu YmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xLDk1ICswLDAg QEAKLS0jIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgaXMgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5k IGFuZCBpdHMgY29ycmVjdAotLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25t ZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KLS0KLS1PUkFDTEVJTkNMVURF RElSID0gLUkvdXNyL2xpYi9vcmFjbGUveGUvYXBwL29yYWNsZS9wcm9kdWN0LzEwLjIuMC9zZXJ2 ZXIvcmRibXMvcHVibGljCi0tCi0tIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBl bnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KLS0KLS1DT01QSUxFUiA9IGcrKwotLUNY WEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCi0tQ1hYRkxBR1NTTyA9ICR7 Q1hYRkxBR1N9IC1mUElDCi0tSU5DTFVERURJUlMgPSAtSS4uLy4uL2NvcmUgJHtPUkFDTEVJTkNM VURFRElSfQotLQotLU9CSkVDVFMgPSBibG9iLm8gZmFjdG9yeS5vIHJvdy1pZC5vIHNlc3Npb24u byBzdGFuZGFyZC1pbnRvLXR5cGUubyBcCi0tCXN0YW5kYXJkLXVzZS10eXBlLm8gc3RhdGVtZW50 Lm8gdmVjdG9yLWludG8tdHlwZS5vIHZlY3Rvci11c2UtdHlwZS5vIFwKLS0JZXJyb3IubwotLQot LU9CSkVDVFNTTyA9IGJsb2Itcy5vIGZhY3Rvcnktcy5vIHJvdy1pZC1zLm8gc2Vzc2lvbi1zLm8g XAotLQlzdGFuZGFyZC1pbnRvLXR5cGUtcy5vIHN0YW5kYXJkLXVzZS10eXBlLXMubyBzdGF0ZW1l bnQtcy5vIFwKLS0JdmVjdG9yLWludG8tdHlwZS1zLm8gdmVjdG9yLXVzZS10eXBlLXMubyBlcnJv ci1zLm8KLS0KLS1saWJzb2NpX29yYWNsZS5hIDogJHtPQkpFQ1RTfQotLQlhciBydiAkQCAkPwot LQlybSAqLm8KLS0KLS1zb2NpLW9yYWNsZS5vIDogc29jaS1vcmFjbGUuY3BwIAotLQkke0NPTVBJ TEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQkKLS1ibG9iLm8gOiBibG9i LmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQot LWVycm9yLm8gOiBlcnJvci5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJ TkNMVURFRElSU30KLS0KLS1mYWN0b3J5Lm8gOiBmYWN0b3J5LmNwcAotLQkke0NPTVBJTEVSfSAt YyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXJvdy1pZC5vIDogcm93LWlkLmNw cAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXNl c3Npb24ubyA6IHNlc3Npb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7 SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtaW50by10eXBlLm8gOiBzdGFuZGFyZC1pbnRvLXR5 cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0t Ci0tc3RhbmRhcmQtdXNlLXR5cGUubyA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAotLQkke0NPTVBJ TEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXN0YXRlbWVudC5vIDog c3RhdGVtZW50LmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVE SVJTfQotLQotLXZlY3Rvci1pbnRvLXR5cGUubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCi0tCSR7 Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdmVjdG9yLXVz ZS10eXBlLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tCi0tc2hhcmVkIDogJHtPQkpFQ1RTU099Ci0tCSR7 Q09NUElMRVJ9IC1zaGFyZWQgLW8gbGlic29jaV9vcmFjbGUuc28gJHtPQkpFQ1RTU099Ci0tCXJt ICoubwotLQotLWJsb2Itcy5vIDogYmxvYi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8g JHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLWVycm9yLXMubyA6IGVycm9yLmNwcAot LQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0t Ci0tZmFjdG9yeS1zLm8gOiBmYWN0b3J5LmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAk e0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tcm93LWlkLXMubyA6IHJvdy1pZC5jcHAK LS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQot LQotLXNlc3Npb24tcy5vIDogc2Vzc2lvbi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8g JHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLWludG8tdHlwZS1zLm8g OiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hY RkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zdGFuZGFyZC11c2UtdHlwZS1zLm8gOiBzdGFu ZGFyZC11c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NP fSAke0lOQ0xVREVESVJTfQotLQotLXN0YXRlbWVudC1zLm8gOiBzdGF0ZW1lbnQuY3BwCi0tCSR7 Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS12 ZWN0b3ItaW50by10eXBlLXMubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9 IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS12ZWN0b3ItdXNl LXR5cGUtcy5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAk PyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tCi0tY2xlYW4gOgotLQlybSAtZiAq Lm8gbGlic29jaV9vcmFjbGUuYSBsaWJzb2NpX29yYWNsZS5zbwotZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTEuMDAwMDAwMDAwICswMTAwCi1AQCAt MCwwICsxLDkwMyBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEu MSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdo dCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAw MiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBz b2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVk IHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0 aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4K LSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50 IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9T RS4KLSsKLStAU0VUX01BS0VACi0rCi0rCi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIg PSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAK LStwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBB VEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9z aF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAk KGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0r SU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1f dHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0r UE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9 IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3Rf dHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChhbV9fbm9iYXNlX3BrZ2luY2x1ZGVf SEVBREVSU19ESVNUKSBcCi0rCSQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZp bGUuaW4gXAotKwkkKHNyY2Rpcikvc291cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbgotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvb3JhY2xlCi0rQUNMT0NBTF9NNCA9ICQodG9w X3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9j cHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0 c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5h YwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdV UkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChp bnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25m aWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0K LSthbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBz ZWQgJ3N8LnwufGcnYDsKLSthbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAotKyAgICAkKHNy Y2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAot KyAgICAqKSBmPSQkcDs7IFwKLSsgIGVzYWM7Ci0rYW1fX3N0cmlwX2RpciA9IGY9YGVjaG8gJCRw IHwgc2VkIC1lICdzfF4uKi98fCdgOwotK2FtX19pbnN0YWxsX21heCA9IDQwCi0rYW1fX25vYmFz ZV9zdHJpcF9zZXR1cCA9IFwKLSsgIHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2Vk ICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKLSthbV9fbm9iYXNlX3N0cmlwID0gXAotKyAgZm9y IHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkIC1lICJzfCQkc3JjZGlyc3Ry aXAvfHwiCi0rYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgXAot KyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKLSsgIHNlZCAi c3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAuKlwvLyFzLyAuKi8gLi87IHMsXCggLipcKS9bXi9d KiQkLFwxLCcgfCBcCi0rICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxl c1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCi0rICAgIGlmICgrK25bJCQyXSA9PSAkKGFt X19pbnN0YWxsX21heCkpIFwKLSsgICAgICB7IHByaW50ICQkMiwgZmlsZXNbJCQyXTsgblskJDJd ID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBcCi0rICAgIEVORCB7IGZvciAoZGlyIGluIGZpbGVz KSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKLSthbV9fYmFzZV9saXN0ID0gXAotKyAgc2VkICck JCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJyB8IFwKLSsgIHNlZCAn JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKLSthbV9faW5zdGFsbGRpcnMgPSAiJChERVNU RElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgotK0xUTElCUkFSSUVT ID0gJChsaWJfTFRMSUJSQVJJRVMpCi0rbGlic29jaV9vcmFjbGVfbGFfREVQRU5ERU5DSUVTID0K LSthbV9fbGlic29jaV9vcmFjbGVfbGFfU09VUkNFU19ESVNUID0gIFwKLSsJJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5oIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9ibG9iLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvZXJyb3IuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0 b3J5LmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNw cCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAgXAot KwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5j cHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10 eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50 LmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8t dHlwZS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11 c2UtdHlwZS5jcHAKLSthbV9fb2JqZWN0c18xID0KLSthbV9fb2JqZWN0c18yID0gbGlic29jaV9v cmFjbGVfbGEtYmxvYi5sbyBsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbyBcCi0rCWxpYnNvY2lf b3JhY2xlX2xhLWZhY3RvcnkubG8gbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvIFwKLSsJbGli c29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5sbyBcCi0rCWxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJk LWludG8tdHlwZS5sbyBcCi0rCWxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxv IFwKLSsJbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LmxvIFwKLSsJbGlic29jaV9vcmFjbGVf bGEtdmVjdG9yLWludG8tdHlwZS5sbyBcCi0rCWxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2Ut dHlwZS5sbwotK0BIQVZFX09SQUNMRV9UUlVFQGFtX2xpYnNvY2lfb3JhY2xlX2xhX09CSkVDVFMg PSAkKGFtX19vYmplY3RzXzEpIFwKLStASEFWRV9PUkFDTEVfVFJVRUAJJChhbV9fb2JqZWN0c18y KQotK2xpYnNvY2lfb3JhY2xlX2xhX09CSkVDVFMgPSAkKGFtX2xpYnNvY2lfb3JhY2xlX2xhX09C SkVDVFMpCi0rbGlic29jaV9vcmFjbGVfbGFfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSBcCi0rCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExE KSBcCi0rCSQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIFwKLSsJJChs aWJzb2NpX29yYWNsZV9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0rQEhBVkVfT1JBQ0xF X1RSVUVAYW1fbGlic29jaV9vcmFjbGVfbGFfcnBhdGggPSAtcnBhdGggJChsaWJkaXIpCi0rREVG QVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQotK2Rl cGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCi0rYW1fX2RlcGZp bGVzX21heWJlID0gZGVwZmlsZXMKLSthbV9fbXYgPSBtdiAtZgotK0NYWENPTVBJTEUgPSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStMVENYWENPTVBJ TEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxB R1MpICQoQ1hYRkxBR1MpCi0rQ1hYTEQgPSAkKENYWCkKLStDWFhMSU5LID0gJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1s aW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAot KwkkKExERkxBR1MpIC1vICRACi0rQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCi0rCSQoQ1BQRkxBR1MpICQoQU1f Q0ZMQUdTKSAkKENGTEFHUykKLStMVENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAkKENDKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCi0rQ0NMRCA9ICQoQ0MpCi0rTElO SyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSBcCi0rCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xE RkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK1NPVVJDRVMgPSAkKGxpYnNvY2lfb3JhY2xl X2xhX1NPVVJDRVMpCi0rRElTVF9TT1VSQ0VTID0gJChhbV9fbGlic29jaV9vcmFjbGVfbGFfU09V UkNFU19ESVNUKQotK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1 cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGlu c3RhbGwtZGF0YS1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1l eGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJl Y3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBp bnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMt cmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAotKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vy c2l2ZQotK2FtX19ub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTX0RJU1QgPSAgXAotKwkkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmgKLStIRUFERVJTID0gJChu b2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTKQotK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9z dGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCi0rICBkaXN0Y2xlYW4tcmVjdXJz aXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAk KFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCi0rCSQoUkVDVVJTSVZFX0NMRUFOX1RB UkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCi0rCWRpc3RkaXIKLStF VEFHUyA9IGV0YWdzCi0rQ1RBR1MgPSBjdGFncwotK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykK LStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykg JChFWFRSQV9ESVNUKQotK2FtX19yZWxhdGl2aXplID0gXAotKyAgZGlyMD1gcHdkYDsgXAotKyAg c2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCi0rICBzZWRfcmVzdD0ncyxeW14v XSovKiwsJzsgXAotKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKLSsgIHNl ZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAotKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsg ZG8gXAotKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsg XAotKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAotKyAgICAgIGlmIHRlc3Qg IiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCi0rICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwg c2VkIC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKLSsgICAgICAgIGRpcjA9YGVjaG8gIiQk ZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAotKyAgICAgIGVsc2UgXAotKyAgICAg ICAgZmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAg ICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAotKyAgICAgICAgICBk aXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgICAgICAgIGVs c2UgXAotKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCi0rICAgICAgICBmaTsgXAotKyAg ICAgICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKLSsgICAgICBmaTsgXAotKyAgICBmaTsg XAotKyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsg IGRvbmU7IFwKLSsgIHJlbGRpcj0iJCRkaXIyIgotK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5j bHVkZV9kaXIpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0g QEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAK LStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBC T09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElC QAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NU X0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJP T1NUX0xJQlNACi0rQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAotK0JPT1NUX01QSV9Q WVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAotK0JPT1NUX1BST0dSQU1fT1BUSU9O U19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9QWVRIT05fTElCID0g QEJPT1NUX1BZVEhPTl9MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAK LStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStC T09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9TWVNURU1fTElC ID0gQEJPT1NUX1NZU1RFTV9MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURf TElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9X U0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQEND QAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBA Q1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRf Q0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElC UyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAK LStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBN T0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0r REVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxA Ci0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVD SE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBF WEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VO RVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFM TEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJ TlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5T VEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAK LStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElC U0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AK LStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElS X1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0Nf TElCID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9M SUJTID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05N ID0gQE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVY VCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9D RkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNM RV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9O QAotK09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBB Q0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FH RV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklO R0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lP TiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JA Ci0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9D RkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVT UUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BP U1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJ QkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtF ID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBA U09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lf TVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExP QURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJz X2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0r YWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0g QGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBh Y19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRl ID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0r YW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFy ID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1 aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVp bGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWls ZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBA ZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0r ZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sg PSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nf b2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2Nw dSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9z dF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRp ckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xh dGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBs aWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBs b2NhbHN0YXRlZGlyQAotK2x0X0VDSE8gPSBAbHRfRUNIT0AKLSttYW5kaXIgPSBAbWFuZGlyQAot K21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0r cGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3Jt X25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmlu ZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBz aGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29u ZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXgg PSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3Rv cF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIp IC1JJCh0b3Bfc3JjZGlyKQotK2Jja19vcmFjbGVfaF9zb3VyY2VzID0gXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5oIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAotKwotK2Jja19vcmFj bGVfY2Nfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvYmxvYi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9lcnJvci5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9mYWN0b3J5LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Jvdy1pZC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9zZXNzaW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5j cHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3It dXNlLXR5cGUuY3BwCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotK1NV QkRJUlMgPSAuIHRlc3QKLStASEFWRV9PUkFDTEVfVFJVRUBsaWJfTFRMSUJSQVJJRVMgPSBsaWJz b2NpX29yYWNsZS5sYQotK0BIQVZFX09SQUNMRV9UUlVFQGxpYnNvY2lfb3JhY2xlX2xhX1NPVVJD RVMgPSAkKGJja19vcmFjbGVfaF9zb3VyY2VzKSAkKGJja19vcmFjbGVfY2Nfc291cmNlcykgCi0r QEhBVkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MgPSAkKE9SQUNMRV9P Q0lfQ0ZMQUdTKQotK0BIQVZFX09SQUNMRV9UUlVFQGxpYnNvY2lfb3JhY2xlX2xhX0xJQkFERCA9 IAotK0BIQVZFX09SQUNMRV9UUlVFQGxpYnNvY2lfb3JhY2xlX2xhX0xERkxBR1MgPSBcCi0rQEhB VkVfT1JBQ0xFX1RSVUVACSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJP T1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLStASEFWRV9PUkFDTEVfVFJVRUAJJChPUkFDTEVf T0NJX0xERkxBR1MpIFwKLStASEFWRV9PUkFDTEVfVFJVRUAJLXZlcnNpb24taW5mbyAkKEdFTkVS SUNfTElCUkFSWV9WRVJTSU9OKQotKwotK0BIQVZFX09SQUNMRV9UUlVFQG5vYmFzZV9wa2dpbmNs dWRlX0hFQURFUlMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3Jh Y2xlLmgKLStAU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0gJChp bmNsdWRlZGlyKQotK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2RpciA9 ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUKLSthbGw6IGFsbC1yZWN1cnNpdmUK LSsKLSsuU1VGRklYRVM6Ci0rLlNVRkZJWEVTOiAuY3BwIC5sbyAubyAub2JqCi0rJChzcmNkaXIp L01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZp bGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlA Zm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4g XAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRl c3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0 IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIp ICYmICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlJzsgXAot KwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgc29j aS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZp bGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwot KwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJ ICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29u ZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikv JEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGly KS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNf REVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2Nv bmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBz KQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgotK2luc3RhbGwtbGliTFRMSUJSQVJJRVM6 ICQobGliX0xUTElCUkFSSUVTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChs aWJkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChsaWJkaXIpIgotKwlAbGlzdD0nJChs aWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIpIiB8fCBsaXN0PTsgXAotKwlsaXN0 Mj07IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwKLSsJ ICAgIGxpc3QyPSIkJGxpc3QyICQkcCI7IFwKLSsJICBlbHNlIDo7IGZpOyBcCi0rCWRvbmU7IFwK LSsJdGVzdCAteiAiJCRsaXN0MiIgfHwgeyBcCi0rCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTEwpICQo SU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICckKERFU1RESVIpJChsaWJkaXIpJyI7IFwKLSsJ ICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWlu c3RhbGwgJChJTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJCRsaXN0MiAiJChERVNURElS KSQobGliZGlyKSI7IFwKLSsJfQotKwotK3VuaW5zdGFsbC1saWJMVExJQlJBUklFUzoKLSsJQCQo Tk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IHRlc3QgLW4g IiQobGliZGlyKSIgfHwgbGlzdD07IFwKLSsJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgJChh bV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICckKERFU1RESVIpJChsaWJk aXIpLyQkZiciOyBcCi0rCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikkKGxpYmRpcikvJCRmIjsg XAotKwlkb25lCi0rCi0rY2xlYW4tbGliTFRMSUJSQVJJRVM6Ci0rCS10ZXN0IC16ICIkKGxpYl9M VExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElCUkFSSUVTKQotKwlAbGlzdD0nJChsaWJf TFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZGlyPSJgZWNobyAkJHAg fCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAotKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8 fCBkaXI9LjsgXAotKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwK LSsJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCi0rCWRvbmUKLStsaWJzb2NpX29y YWNsZS5sYTogJChsaWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfb3JhY2xlX2xh X0RFUEVOREVOQ0lFUykgCi0rCSQobGlic29jaV9vcmFjbGVfbGFfTElOSykgJChhbV9saWJzb2Np X29yYWNsZV9sYV9ycGF0aCkgJChsaWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lf b3JhY2xlX2xhX0xJQkFERCkgJChMSUJTKQotKwotK21vc3RseWNsZWFuLWNvbXBpbGU6Ci0rCS1y bSAtZiAqLiQoT0JKRVhUKQotKwotK2Rpc3RjbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi50YWIu YwotKwotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9s aWJzb2NpX29yYWNsZV9sYS1ibG9iLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19p bmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLlBs b0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChE RVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVf bGEtcm93LWlkLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1f X3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24uUGxvQGFtX19xdW90 ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGli c29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQ X1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xl X2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19p bmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVu dC5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAu LyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLlBsb0BhbV9fcXVv dGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xp YnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAotKwotKy5jcHAu bzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAt TUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8g QEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAot K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5j cHAub2JqOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQg LU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIp LyQqLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBv YmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElM RSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotKwotKy5jcHAubG86Ci0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIp LyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChE RVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNL U0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsKLStsaWJzb2NpX29y YWNsZV9sYS1ibG9iLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2Iu Y3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lf b3JhY2xlX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xh LWJsb2IuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1ibG9i LlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtYmxvYi5QbG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9ibG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxvJyBsaWJ0 b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxp YnNvY2lfb3JhY2xlX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAKLSsKLStsaWJzb2NpX29yYWNsZV9sYS1lcnJv ci5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEt ZXJyb3IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLlRw byAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwCi0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZXJyb3IuVHBv ICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1lcnJvci5QbG8KLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9lcnJvci5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8nIGxpYnRv b2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tT TEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGli c29jaV9vcmFjbGVfbGEtZXJyb3IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvZXJyb3IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcAotKwotK2xpYnNvY2lfb3JhY2xlX2xhLWZh Y3RvcnkubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFj bGVfbGEtZmFjdG9yeS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEt ZmFjdG9yeS5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfb3Jh Y2xlX2xhLWZhY3RvcnkuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LlBs bwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3Jh Y2xlX2xhLWZhY3RvcnkubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo TElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5 LmNwcAotKwotK2xpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbzogJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElC VE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbyAtTUQgLU1QIC1NRiAk KERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNs ZV9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLlRwbyAkKERFUERJUikvbGlic29j aV9vcmFjbGVfbGEtcm93LWlkLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAn IG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBC QUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xh LXJvdy1pZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9y b3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Jvdy1pZC5jcHAKLSsKLStsaWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLmxvOiAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29y YWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXNlc3Np b24ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24uVHBv IC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zZXNz aW9uLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5QbG8KLStAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1zZXNz aW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAKLSsKLSts aWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1p bnRvLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5k YXJkLWludG8tdHlwZS5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10 eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5k YXJkLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWlu dG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlw ZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMg QEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAot K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29y YWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5 cGUuY3BwCi0rCi0rbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG86ICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xh LXN0YW5kYXJkLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNs ZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc3RhbmRh cmQtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5k YXJkLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNl LXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyBv YmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvJyBsaWJ0b29sPXll cyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA Ci0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lf b3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlw ZS5jcHAKLSsKLStsaWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQubG86ICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5UcG8gLWMgLW8g bGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcAotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRl bWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5QbG8KLStAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xh LXN0YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQo ZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJU T09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1l bnQuY3BwCi0rCi0rbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5sbzogJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS12 ZWN0b3ItaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9s YS12ZWN0b3ItaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50 by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Zl Y3Rvci1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8t dHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxv Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGli c29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFD S1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf b3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS12 ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCi0rCi0rbGli c29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxv IC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUu VHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Zl Y3Rvci11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQ RElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJz b2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv dmVjdG9yLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNl LXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkg IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv dmVjdG9yLXVzZS10eXBlLmNwcAotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAq LmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotK2luc3RhbGwt bm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTOiAkKG5vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMpCi0r CUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCAkKE1L RElSX1ApICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKLSsJQGxpc3Q9JyQobm9iYXNlX3Br Z2luY2x1ZGVfSEVBREVSUyknOyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsg XAotKwkkKGFtX19ub2Jhc2VfbGlzdCkgfCB3aGlsZSByZWFkIGRpciBmaWxlczsgZG8gXAotKwkg IHhmaWxlcz07IGZvciBmaWxlIGluICQkZmlsZXM7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQk ZmlsZSI7IHRoZW4geGZpbGVzPSIkJHhmaWxlcyAkJGZpbGUiOyBcCi0rCSAgICBlbHNlIHhmaWxl cz0iJCR4ZmlsZXMgJChzcmNkaXIpLyQkZmlsZSI7IGZpOyBkb25lOyBcCi0rCSAgdGVzdCAteiAi JCR4ZmlsZXMiIHx8IHsgXAotKwkgICAgdGVzdCAieCQkZGlyIiA9IHguIHx8IHsgXAotKwkgICAg ICBlY2hvICIkKE1LRElSX1ApICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGRpciciOyBc Ci0rCSAgICAgICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZGlyIjsg fTsgXAotKwkgICAgZWNobyAiICQoSU5TVEFMTF9IRUFERVIpICQkeGZpbGVzICckKERFU1RESVIp JChwa2dpbmNsdWRlZGlyKS8kJGRpciciOyBcCi0rCSAgICAkKElOU1RBTExfSEVBREVSKSAkJHhm aWxlcyAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRkaXIiIHx8IGV4aXQgJCQ/OyB9OyBc Ci0rCWRvbmUKLSsKLSt1bmluc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTOgotKwlAJChO T1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTKSc7 IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBcCi0rCSQoYW1fX25vYmFzZV9z dHJpcF9zZXR1cCk7IGZpbGVzPWAkKGFtX19ub2Jhc2Vfc3RyaXApYDsgXAotKwl0ZXN0IC1uICIk JGZpbGVzIiB8fCBleGl0IDA7IFwKLSsJZWNobyAiICggY2QgJyQoREVTVERJUikkKHBrZ2luY2x1 ZGVkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKLSsJY2QgIiQoREVTVERJUikkKHBrZ2lu Y2x1ZGVkaXIpIiAmJiBybSAtZiAkJGZpbGVzCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRp cmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhl bSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsj IFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRp dGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmln LnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2Ug dGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsj ICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29t bWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhp dCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4g XAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVz Jzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0 PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4g JCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAg IGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJ ICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJ ICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxf dGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0 ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp ICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0r JChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBc Ci0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAg ICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAot KwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4g XAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VC RElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJ cmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGly IiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0r CSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAk QCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAot KwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7 IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7 IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQk bG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0 IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1f X2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25l Ci0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJk aXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDog JChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNP VVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZv ciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQk aTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFX SykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlm IChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lk IC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChI RUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklM RVMpICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykg LS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBp bmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwll bHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBc Ci0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0 ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29w dGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1 bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhl biBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwK LSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAg IEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsg XAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0 aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9m aXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0rCSAgICAkKEVUQUdTKSAkKEVU QUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICIkJEAi ICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQo QU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICQkdW5pcXVlOyBcCi0rCSAg Zmk7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVB REVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVT KSAkKExJU1ApCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc Ci0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0g MTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKLSsJ ICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdT KSBcCi0rCSAgICAgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9w X2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCi0r CSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgotKwotK2Rpc3RjbGVhbi10YWdz OgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rp c3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIk KHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0n JChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8g ZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3Qi IFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3Qi YDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hv ICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7 cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9y IGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVz dCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRl c3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2Vk IC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZp bGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAt cGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAg aWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhl biBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8 fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAt cGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAg Y3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVs c2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1w ICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJ ICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBc Ci0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElS X1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsg XAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAg ICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAotKwkgICAgJChh bV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBk aXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKLSsJICAgICQoYW1fX3JlbGF0 aXZpemUpOyBcCi0rCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGVjaG8g IiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQk bmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKLSsJICAgIGVj aG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1f X3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKLSsJICAgICgkKGFtX19jZCkgJCRzdWJkaXIg JiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rp c3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlz dGRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2No ZWNrPTogXAotKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAot KwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1h bQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJ RVMpICQoSEVBREVSUykKLStpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCi0raW5z dGFsbGRpcnMtYW06Ci0rCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RE SVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKLSsJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJ Ul9QKSAiJCRkaXIiOyBcCi0rCWRvbmUKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2lu c3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFs bC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2lu c3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVj LWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vy c2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExf UFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9H UkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0r CSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1f RU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6 Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXog IiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0r CS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9G SUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQotKwotK21haW50YWlu ZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3Ig bWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSBy ZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlO RVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjog Y2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGliTFRM SUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCi0rCW1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFu OiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1h a2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xl YW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmktcmVjdXJzaXZlCi0r Ci0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJzaXZlCi0rCi0raHRtbC1hbToKLSsKLStp bmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOiBp bnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVBREVSUwotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxs LWR2aS1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWR2aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06 IGluc3RhbGwtbGliTFRMSUJSQVJJRVMKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1y ZWN1cnNpdmUKLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxs LWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgot KwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBkZi1h bToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHMt YW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWlu ZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1ha2Vm aWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4t Z2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0 bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJ bW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToK LSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOiB1bmlu c3RhbGwtbGliTFRMSUJSQVJJRVMgXAotKwl1bmluc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVIRUFE RVJTCi0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RB UkdFVFMpIGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdz LXJlY3Vyc2l2ZQotKwotKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNV UlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAotKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFt IGNsZWFuIGNsZWFuLWdlbmVyaWMgXAotKwljbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0 b29sIGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGls ZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdz IGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFs bCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2 aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFs bC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAotKwlpbnN0YWxsLWluZm8tYW0g aW5zdGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW1hbiBcCi0rCWluc3RhbGwtbm9iYXNlX3Br Z2luY2x1ZGVIRUFERVJTIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKLSsJaW5zdGFsbC1w cyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKLSsJaW5zdGFsbGNo ZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAotKwlt YWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBc Ci0rCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBz IHBzLWFtIFwKLSsJdGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIFwK LSsJdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhF QURFUlMKLSsKLStAU0VUX01BS0VACi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9m IEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5 c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBP UlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc29j aS1vcmFjbGUuaCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1v cmFjbGUuaAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2kt b3JhY2xlLmgJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAkyMDA5LTA0LTE2 IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTIyLDkgKzIyLDE0IEBACi0gI2lmbmRlZiBT T0NJX09SQUNMRV9ERUNMCi0gIyBkZWZpbmUgU09DSV9PUkFDTEVfREVDTAotICNlbmRpZgotLQot LSNpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLS0jaW5jbHVkZSA8b2NpLmg+IC8vIE9DSQotKy8v Ci0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNv Y2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5k Lmg+Ci0rI2VuZGlmCi0rLy8KLSsjaW5jbHVkZSA8b2NpLmg+IC8vIE9DSSAoT3JhY2xlIGNsaWVu dCkKLSAjaW5jbHVkZSA8dmVjdG9yPgotIAotICNpZmRlZiBfTVNDX1ZFUgotZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvdXJjZXMubWsgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvdXJjZXMubWsKLS0tLSBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv b3JhY2xlL3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBA IC0wLDAgKzEsMTQgQEAKLStiY2tfb3JhY2xlX2hfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuaCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmgKLStiY2tfb3JhY2xlX2Nj X3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L2Jsb2IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv ZXJyb3IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv ZmFjdG9yeS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9yb3ctaWQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvc2Vzc2lvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10 eXBlLmNwcAotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xl L3N0YW5kYXJkLWludG8tdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv b3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMTAtMDEtMjMgMTQ6NDU6 NDQuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv b3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAw MDAgKzAyMDAKLUBAIC03LDEwICs3LDE4IEBACi0gCi0gI2RlZmluZSBTT0NJX09SQUNMRV9TT1VS Q0UKLSAjaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKLS0jaW5jbHVkZSAiYmxvYi5oIgotICNpbmNs dWRlICJlcnJvci5oIgotLSNpbmNsdWRlICJyb3dpZC5oIgotLSNpbmNsdWRlICJzdGF0ZW1lbnQu aCIKLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNs dWRlIDxzb2NpL2NvcmUvYmxvYi5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Jvd2lk Lmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc3RhdGVtZW50Lmg+Ci0rI2Vsc2UKLSsj ICAgICAgIGluY2x1ZGUgPGJsb2IuaD4KLSsjICAgICAgIGluY2x1ZGUgPHJvd2lkLmg+Ci0rIyAg ICAgICBpbmNsdWRlIDxzdGF0ZW1lbnQuaD4KLSsjZW5kaWYKLSsvLwotICNpbmNsdWRlIDxjY3R5 cGU+Ci0gI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLWRpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5j cHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10 eXBlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5k YXJkLXVzZS10eXBlLmNwcAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAotKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlw ZS5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC03LDEwICs3LDE4 IEBACi0gCi0gI2RlZmluZSBzb2NpX09SQUNMRV9TT1VSQ0UKLSAjaW5jbHVkZSAic29jaS1vcmFj bGUuaCIKLS0jaW5jbHVkZSAiYmxvYi5oIgotICNpbmNsdWRlICJlcnJvci5oIgotLSNpbmNsdWRl ICJyb3dpZC5oIgotLSNpbmNsdWRlICJzdGF0ZW1lbnQuaCIKLSsvLwotKyNpZiBkZWZpbmVkKFNP Q0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvYmxvYi5oPgot KyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Jvd2lkLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxz b2NpL2NvcmUvc3RhdGVtZW50Lmg+Ci0rI2Vsc2UKLSsjICAgICAgIGluY2x1ZGUgPGJsb2IuaD4K LSsjICAgICAgIGluY2x1ZGUgPHJvd2lkLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzdGF0ZW1lbnQu aD4KLSsjZW5kaWYKLSsvLwotICNpbmNsdWRlIDxjY3R5cGU+Ci0gI2luY2x1ZGUgPGNzdGRpbz4K LSAjaW5jbHVkZSA8Y3N0cmluZz4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCAr MDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1l bnQuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtOSw3ICs5LDEz IEBACi0gCi0gI2luY2x1ZGUgInNvY2ktb3JhY2xlLmgiCi0gI2luY2x1ZGUgImVycm9yLmgiCi0t I2luY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJT X0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KLSsj ZWxzZQotKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+Ci0rI2VuZGlmCi0rLy8KLSAjaW5jbHVk ZSA8Y2N0eXBlPgotICNpbmNsdWRlIDxjc3RkaW8+Ci0gI2luY2x1ZGUgPGNzdHJpbmc+Ci1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmls ZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmls ZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFr ZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5hbQkyMDA5LTA0 LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwyMiBAQAotKyMjIGNvcmUg c3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStp bmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBN YWtlZmlsZS5pbgotKwotK2lmIEhBVkVfT1JBQ0xFCi0rICBURVNUX09SQUNMRSA9IHRlc3Rfb3Jh Y2xlCi0rCi0raWYgUlVOX1RFU1RTCi0rICBub2luc3RfUFJPR1JBTVMgPSAkKFRFU1RfT1JBQ0xF KQotK2VuZGlmCi0rCi0rdGVzdF9vcmFjbGVfU09VUkNFUyA9ICQob3JhY2xlX3Rlc3RfY2Nfc291 cmNlcykKLSt0ZXN0X29yYWNsZV9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKSAkKE9SQUNMRV9P Q0lfQ0ZMQUdTKQotK3Rlc3Rfb3JhY2xlX0xEQUREID0KLSt0ZXN0X29yYWNsZV9MREZMQUdTID0g JCh0b3BfYnVpbGRkaXIpL3NvY2kvY29yZS9saWJzb2NpX2NvcmUubGEgLWxkbCBcCi0rCQkkKHRv cF9idWlsZGRpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvbGlic29jaV9vcmFjbGUubGEgXAotKwkJ JChPUkFDTEVfT0NJX0xERkxBR1MpCi0rZW5kaWYKLSsKLSsjbm9kaXN0X3BrZ2luY2x1ZGVfSEVB REVSUyA9ICQob3JhY2xlX3Rlc3RfaF9zb3VyY2VzKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYmFzaWMKLS0tLSBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmJhc2ljCTIw MTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xLDIzICswLDAgQEAKLS0jIFRoZSBmb2xsb3dpbmcg dmFyaWFibGUgaXMgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCBpdHMgY29ycmVjdAotLSMg dmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNl dCBpdCBhY2NvcmRpbmdseS4KLS0KLS1PUkFDTEVJTkNMVURFRElSID0gLUkvdXNyL2xpYi9vcmFj bGUveGUvYXBwL29yYWNsZS9wcm9kdWN0LzEwLjIuMC9zZXJ2ZXIvcmRibXMvcHVibGljIAotLU9S QUNMRUxJQkRJUiA9IC1ML3Vzci9saWIvb3JhY2xlL3hlL2FwcC9vcmFjbGUvcHJvZHVjdC8xMC4y LjAvc2VydmVyL2xpYiAKLS1PUkFDTEVMSUJTID0gLWxjbG50c2ggLWxubnoxMAotLQotLSMgVGhl IHJlc3Qgb2YgdGhlIE1ha2VmaWxlIGlzIGluZGVwZW50ZW50IG9mIHRoZSB0YXJnZXQgZW52aXJv bm1lbnQuCi0tCi0tQ09NUElMRVIgPSBnKysKLS1DWFhGTEFHUyA9IC1XYWxsIC1wZWRhbnRpYyAt V25vLWxvbmctbG9uZwotLUlOQ0xVREVESVJTID0gLUkuLiAtSS4uLy4uLy4uL2NvcmUgLUkuLi8u Li8uLi9jb3JlL3Rlc3QgJHtPUkFDTEVJTkNMVURFRElSfQotLUxJQkRJUlMgPSAtTC4uIC1MLi4v Li4vLi4vY29yZSAke09SQUNMRUxJQkRJUn0KLS1MSUJTID0gLWxzb2NpX2NvcmUgLWxzb2NpX29y YWNsZSAtbGRsIC1sYm9vc3RfZGF0ZV90aW1lICR7T1JBQ0xFTElCU30KLS0KLS0KLS10ZXN0LW9y YWNsZSA6IHRlc3Qtb3JhY2xlLmNwcCAKLS0jLi4vLi4vLi4vY29yZS90ZXN0L2NvbW1vbi10ZXN0 cy5oCi0tCSR7Q09NUElMRVJ9IC1vICRAICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9ICR7 TElCRElSU30gJHtMSUJTfQotLQotLQotLWNsZWFuIDoKLS0Jcm0gLWYgKi5vIHRlc3Qtb3JhY2xl Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9N YWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9N YWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rl c3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5pbgky MDEwLTAxLTIzIDE0OjQ0OjUyLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw1NjIgQEAKLSsj IE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5h bS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUs IDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0 LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s Ci0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv cHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u cywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3 OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtF QAotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FH RUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIg PSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBB Q0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFU T1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0r aW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBU ID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0r dHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0g OgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxM ID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJp cGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQo c3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHNyY2Rpcikv c291cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK0BIQVZFX09SQUNMRV9U UlVFQEBSVU5fVEVTVFNfVFJVRUBub2luc3RfUFJPR1JBTVMgPSAkKGFtX19FWEVFWFRfMSkKLStz dWJkaXIgPSBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0Ci0rQUNMT0NBTF9NNCA9ICQodG9wX3Ny Y2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1 bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3Vn YXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwot K2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVf REVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0 YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcu aAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KLStA SEFWRV9PUkFDTEVfVFJVRUBhbV9fRVhFRVhUXzEgPSB0ZXN0X29yYWNsZSQoRVhFRVhUKQotK1BS T0dSQU1TID0gJChub2luc3RfUFJPR1JBTVMpCi0rYW1fX3Rlc3Rfb3JhY2xlX1NPVVJDRVNfRElT VCA9ICBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9y YWNsZS5jcHAKLSthbV9fb2JqZWN0c18xID0gdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuJChPQkpF WFQpCi0rQEhBVkVfT1JBQ0xFX1RSVUVAYW1fdGVzdF9vcmFjbGVfT0JKRUNUUyA9ICQoYW1fX29i amVjdHNfMSkKLSt0ZXN0X29yYWNsZV9PQkpFQ1RTID0gJChhbV90ZXN0X29yYWNsZV9PQkpFQ1RT KQotK3Rlc3Rfb3JhY2xlX0RFUEVOREVOQ0lFUyA9Ci0rdGVzdF9vcmFjbGVfTElOSyA9ICQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCi0rCSQoTElCVE9PTEZMQUdTKSAt LW1vZGU9bGluayAkKENYWExEKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSBcCi0rCSQoQ1hYRkxB R1MpICQodGVzdF9vcmFjbGVfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAotK0RFRkFVTFRfSU5D TFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKLStkZXBjb21wID0g JChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAotK2FtX19kZXBmaWxlc19tYXli ZSA9IGRlcGZpbGVzCi0rYW1fX212ID0gbXYgLWYKLStDWFhDT01QSUxFID0gJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rTFRDWFhDT01QSUxFID0gJChM SUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0r CS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENY WEZMQUdTKQotK0NYWExEID0gJChDWFgpCi0rQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGluayAkKENY WExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKLSsJJChMREZM QUdTKSAtbyAkQAotK1NPVVJDRVMgPSAkKHRlc3Rfb3JhY2xlX1NPVVJDRVMpCi0rRElTVF9TT1VS Q0VTID0gJChhbV9fdGVzdF9vcmFjbGVfU09VUkNFU19ESVNUKQotK0VUQUdTID0gZXRhZ3MKLStD VEFHUyA9IGN0YWdzCi0rRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMp ICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIg PSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURF UiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0r Qk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJP T1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZ U1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAot K0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9M SUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9P U1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JP T1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBA Qk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklB TElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAot K0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElC ID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBA Qk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9W RVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElP Tl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBA Q0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9D RkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05G SUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBA Q1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhE RVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9X ID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lN VVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9f Q0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdS RVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJB UllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0r SU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5T VEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNU QUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9H UkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9C SlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9A Ci0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBA TUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9D RkxBR1NACi0rTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElSUyA9IEBNWVNR TF9ESVJTQAotK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJTSU9OID0gQE1Z U1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0g QE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElS U0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJ X0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBP UkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0 QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JV R1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5H ID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVA Ci0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9 IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJ R0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FM X0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JF U1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAK LStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9 IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9I RUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVS U19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxf SEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQ ID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04g PSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIg PSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0r YWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NA Ci0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBC SU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFt X19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1f X3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVp bGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0g QGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVp bGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAK LStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9j ZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2 aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZp eEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0 X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLSto b3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVk ZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0g QGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAK LStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLSts b2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21h bmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBA b2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0r cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGly ID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3No YXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lz Y29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0r dG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0 b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0g LUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rb3JhY2xlX3Rlc3RfaF9zb3VyY2Vz ID0gCi0rb3JhY2xlX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1h a2VmaWxlLmluCi0rQEhBVkVfT1JBQ0xFX1RSVUVAVEVTVF9PUkFDTEUgPSB0ZXN0X29yYWNsZQot K0BIQVZFX09SQUNMRV9UUlVFQHRlc3Rfb3JhY2xlX1NPVVJDRVMgPSAkKG9yYWNsZV90ZXN0X2Nj X3NvdXJjZXMpCi0rQEhBVkVfT1JBQ0xFX1RSVUVAdGVzdF9vcmFjbGVfQ1hYRkxBR1MgPSAkKEJP T1NUX0NGTEFHUykgJChPUkFDTEVfT0NJX0NGTEFHUykKLStASEFWRV9PUkFDTEVfVFJVRUB0ZXN0 X29yYWNsZV9MREFERCA9IAotK0BIQVZFX09SQUNMRV9UUlVFQHRlc3Rfb3JhY2xlX0xERkxBR1Mg PSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKLStASEFW RV9PUkFDTEVfVFJVRUAJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9saWJz b2NpX29yYWNsZS5sYSBcCi0rQEhBVkVfT1JBQ0xFX1RSVUVACQkkKE9SQUNMRV9PQ0lfTERGTEFH UykKLSsKLSthbGw6IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSsuU1VGRklYRVM6IC5jcHAgLmxv IC5vIC5vYmoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0g JCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9f Y29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9f Y29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAot KwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZp OyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNo byAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAot KwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUK LSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAk KHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29u ZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChh bV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hF TEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsg XAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNk aXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRv cF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9D QUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2Rl cHMpOgotKwotK2NsZWFuLW5vaW5zdFBST0dSQU1TOgotKwlAbGlzdD0nJChub2luc3RfUFJPR1JB TVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKLSsJZWNobyAiIHJtIC1mIiAkJGxp c3Q7IFwKLSsJcm0gLWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCi0rCXRlc3QgLW4gIiQoRVhFRVhU KSIgfHwgZXhpdCAwOyBcCi0rCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsg ZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKLSsJZWNobyAiIHJtIC1mIiAkJGxpc3Q7 IFwKLSsJcm0gLWYgJCRsaXN0Ci0rdGVzdF9vcmFjbGUkKEVYRUVYVCk6ICQodGVzdF9vcmFjbGVf T0JKRUNUUykgJCh0ZXN0X29yYWNsZV9ERVBFTkRFTkNJRVMpIAotKwlAcm0gLWYgdGVzdF9vcmFj bGUkKEVYRUVYVCkKLSsJJCh0ZXN0X29yYWNsZV9MSU5LKSAkKHRlc3Rfb3JhY2xlX09CSkVDVFMp ICQodGVzdF9vcmFjbGVfTERBREQpICQoTElCUykKLSsKLSttb3N0bHljbGVhbi1jb21waWxlOgot Kwktcm0gLWYgKi4kKE9CSkVYVCkKLSsKLStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICou dGFiLmMKLSsKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJ UikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuUG9AYW1fX3F1b3RlQAotKwotKy5jcHAubzoKLStA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChE RVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19t dikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5jcHAub2Jq OgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1N RiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBv Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9 JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMg LW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotKwotKy5jcHAubG86Ci0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRw byAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIp LyQqLlRwbyAkKERFUERJUikvJCouUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsKLSt0ZXN0X29yYWNsZS10ZXN0 LW9yYWNsZS5vOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1v cmFjbGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0 X29yYWNsZV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xl Lm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlRwbyAtYyAt byB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3Bw Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvdGVzdF9vcmFjbGUt dGVzdC1vcmFjbGUuVHBvICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5QbwotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyBvYmplY3Q9J3Rlc3Rfb3Jh Y2xlLXRlc3Qtb3JhY2xlLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0 ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi0r Ci0rdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJCh0ZXN0X29yYWNsZV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRl c3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVzdF9vcmFj bGUtdGVzdC1vcmFjbGUuVHBvIC1jIC1vIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iaiBgaWYg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3Jh Y2xlLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGly KS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3Bw JzsgZmlgCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvdGVzdF9v cmFjbGUtdGVzdC1vcmFjbGUuVHBvICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5Q bwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyBvYmplY3Q9J3Rl c3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hY REVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9vcmFjbGVfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1jIC1vIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCc7IHRoZW4gJChD WUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1v cmFjbGUuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgZmlgCi0rCi0rbW9zdGx5 Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0g LXJmIC5saWJzIF9saWJzCi0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQo VEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9 IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwot K1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJ CSQoVEFHU19GSUxFUykgJChMSVNQKQotKwlzZXQgeDsgXAotKwloZXJlPWBwd2RgOyBcCi0rCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1 bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhl biBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwK LSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAg IEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsg XAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0 aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9m aXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0rCSAgICAkKEVUQUdTKSAkKEVU QUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICIkJEAi ICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQo QU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICQkdW5pcXVlOyBcCi0rCSAg Zmk7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VT KSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1 bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhl biBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwK LSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAg IEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsg XAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAk KENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1 bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBw d2RgIFwKLSsJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkg JChHVEFHU19BUkdTKSAiJCRoZXJlIgotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFH UyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJ TEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxc Kl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8 IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsg XAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRv bmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUg InN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQk ZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMi IHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8 IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0 X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRo ZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmls ZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQk LCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJ ICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVj IGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNy Y2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNw IC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJ ICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVj IGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRm aWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVz dCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQo ZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25l Ci0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1hbTogTWFrZWZpbGUg JChQUk9HUkFNUykKLStpbnN0YWxsZGlyczoKLStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5zdGFs bC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQot K3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0r aW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFN KSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJ TlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkg ICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3Rh bGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNs ZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1m ICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAt eiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9W UEFUSF9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlz IGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0 IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQu IgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRB SU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdl bmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBcCi0rCW1vc3RseWNsZWFu LWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KLSsJLXJtIC1yZiAuLyQoREVQRElSKQot Kwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21w aWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1h bQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0raHRtbC1hbToKLSsKLStpbmZv OiBpbmZvLWFtCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFs bC1kdmk6IGluc3RhbGwtZHZpLWFtCi0rCi0raW5zdGFsbC1kdmktYW06Ci0rCi0raW5zdGFsbC1l eGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCi0rCi0raW5zdGFsbC1o dG1sLWFtOgotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCi0rCi0raW5zdGFsbC1p bmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1h bQotKwotK2luc3RhbGwtcGRmLWFtOgotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KLSsK LStpbnN0YWxsLXBzLWFtOgotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNs ZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1m IE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXIt Y2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwotK21vc3Rs eWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwlt b3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtYW0KLSsKLStwZGYtYW06Ci0rCi0rcHM6 IHBzLWFtCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiBpbnN0YWxs LWFtIGluc3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hl Y2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCi0rCWNsZWFuLWxpYnRvb2wgY2xlYW4t bm9pbnN0UFJPR1JBTVMgY3RhZ3MgZGlzdGNsZWFuIFwKLSsJZGlzdGNsZWFuLWNvbXBpbGUgZGlz dGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4tdGFncyBkaXN0 ZGlyIGR2aSBkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBcCi0rCWluc3RhbGwgaW5z dGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKLSsJaW5z dGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgXAot KwlpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1h biBcCi0rCWluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1h bSBcCi0rCWluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxs ZGlycyBcCi0rCW1haW50YWluZXItY2xlYW4gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3Rs eWNsZWFuIFwKLSsJbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3Rs eWNsZWFuLWxpYnRvb2wgXAotKwlwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdW5pbnN0YWxsIHVu aW5zdGFsbC1hbQotKwotK0BTRVRfTUFLRUAKLSsKLSsjbm9kaXN0X3BrZ2luY2x1ZGVfSEVBREVS UyA9ICQob3JhY2xlX3Rlc3RfaF9zb3VyY2VzKQotKwotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwz LjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndp c2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0r Lk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3Rlc3Qvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFj bGUvdGVzdC9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw Ci0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qvc291cmNl cy5tawkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwyIEBA Ci0rb3JhY2xlX3Rlc3RfaF9zb3VyY2VzID0KLStvcmFjbGVfdGVzdF9jY19zb3VyY2VzID0gJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAotZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1v cmFjbGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rl c3Qtb3JhY2xlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xl L3Rlc3QvdGVzdC1vcmFjbGUuY3BwCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAw Ci0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1v cmFjbGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtNSw5ICs1 LDE3IEBACi0gLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQotIC8vCi0g Ci0tI2luY2x1ZGUgInNvY2kuaCIKLS0jaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKLS0jaW5jbHVk ZSAiY29tbW9uLXRlc3RzLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVE KQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2kuaD4KLSsjICAgICAgIGluY2x1ZGUg PHNvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxz b2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS5o PgotKyMJaW5jbHVkZSA8c29jaS1vcmFjbGUuaD4KLSsjICAgICAgIGluY2x1ZGUgPHRlc3QvY29t bW9uLXRlc3RzLmg+Ci0rI2VuZGlmCi0rLy8KLSAjaW5jbHVkZSA8aW9zdHJlYW0+Ci0gI2luY2x1 ZGUgPHN0cmluZz4KLSAjaW5jbHVkZSA8Y2Fzc2VydD4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAKLS0tLSBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNw cAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAkyMDA5LTA0LTE2 IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTcsOCArNywxNCBAQAotIAotICNkZWZpbmUg c29jaV9PUkFDTEVfU09VUkNFCi0gI2luY2x1ZGUgInNvY2ktb3JhY2xlLmgiCi0tI2luY2x1ZGUg InN0YXRlbWVudC5oIgotICNpbmNsdWRlICJlcnJvci5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09D SV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zdGF0ZW1lbnQu aD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c3RhdGVtZW50Lmg+Ci0rI2VuZGlmCi0rLy8KLSAjaW5j bHVkZSA8Y2N0eXBlPgotICNpbmNsdWRlIDxjc3RkaW8+Ci0gI2luY2x1ZGUgPGNzdHJpbmc+Ci1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1v bi5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24u Y3BwCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1v bi5jcHAJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAJMjAwOS0wNS0wNSAy MjozMDo1Mi4wMDAwMDAwMDAgKzAyMDAKLUBAIC02LDcgKzYsMTIgQEAKLSAvLwotIAotICNpbmNs dWRlICJjb21tb24uaCIKLS0jaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+Ci0rLy8KLSsjaWYgZGVm aW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Nv Y2ktYmFja2VuZC5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsjZW5k aWYKLSAvLwotICNpbmNsdWRlIDxjc3RkbGliPgotICNpbmNsdWRlIDxjc3RkaW8+Ci1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmFt IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0K LS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUu YW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6 Mzc6MDUuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDMwIEBACi0rIyMgYmFja2VuZHMvcG9z dGdyZXNxbCBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsKLStNQUlOVEFJTkVSQ0xFQU5G SUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9IC4gdGVzdAotKwotKyNFWFRSQV9ESVNU X0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbW1vbi5oCi0rCi0rRVhUUkFfRElTVCA9ICQo RVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQotKwotK2lmIEhBVkVfUE9TVEdSRVNR TAotK2xpYl9MVExJQlJBUklFUz0gbGlic29jaV9wb3N0Z3Jlc3FsLmxhCi0rCi0rbGlic29jaV9w b3N0Z3Jlc3FsX2xhX1NPVVJDRVM9ICQoYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzKSAkKGJja19w b3N0Z3Jlc3FsX2NjX3NvdXJjZXMpIAotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUyA9 ICQoUE9TVEdSRVNRTF9DRkxBR1MpCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJQkFERCA9Ci0r bGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xERkxBR1MgPSBcCi0rCSQoQk9PU1RfTElCUykgJChCT09T VF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLSsJLXZlcnNp b24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwotK3BrZ2luY2x1ZGVfSEVBREVS UyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNx bC5oCi0rZW5kaWYKLStpZiBTT0NJX0hFQURFUlNfQlVSSUVECi0rc29jaV9pbmNsdWRlX2RpciA9 ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsCi0rZWxzZQotK3NvY2lfaW5j bHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCi0rZW5kaWYKLStwa2dpbmNsdWRlZGlyID0gJChzb2Np X2luY2x1ZGVfZGlyKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2ljCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2ljCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAw MDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAot QEAgLTEsOTUgKzAsMCBAQAotLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBpcyBzcGVjaWZpYyB0 byB0aGlzIGJhY2tlbmQgYW5kIGl0cyBjb3JyZWN0Ci0tIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9u IHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgotLQot LVBHU1FMSU5DTFVERURJUiA9IC1JL3Vzci9pbmNsdWRlCi0tCi0tIyBUaGUgcmVzdCBvZiB0aGUg TWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KLS0KLS1D T01QSUxFUiA9IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25n Ci0tQ1hYRkxBR1NTTyA9ICR7Q1hYRkxBR1N9IC1mUElDCi0tSU5DTFVERURJUlMgPSAtSS4uLy4u L2NvcmUgJHtQR1NRTElOQ0xVREVESVJ9Ci0tCi0tCi0tT0JKRUNUUyA9IGJsb2IubyBmYWN0b3J5 Lm8gcm93LWlkLm8gc2Vzc2lvbi5vIHN0YW5kYXJkLWludG8tdHlwZS5vIFwKLS0Jc3RhbmRhcmQt dXNlLXR5cGUubyBzdGF0ZW1lbnQubyB2ZWN0b3ItaW50by10eXBlLm8gdmVjdG9yLXVzZS10eXBl Lm8gXAotLQljb21tb24ubwotLQotLU9CSkVDVFNTTyA9IGJsb2Itcy5vIGZhY3Rvcnktcy5vIHJv dy1pZC1zLm8gc2Vzc2lvbi1zLm8gXAotLQlzdGFuZGFyZC1pbnRvLXR5cGUtcy5vIHN0YW5kYXJk LXVzZS10eXBlLXMubyBzdGF0ZW1lbnQtcy5vIFwKLS0JdmVjdG9yLWludG8tdHlwZS1zLm8gdmVj dG9yLXVzZS10eXBlLXMubyBjb21tb24tcy5vCi0tCi0tCi0tbGlic29jaV9wb3N0Z3Jlc3FsLmEg OiAke09CSkVDVFN9Ci0tCWFyIHJ2ICRAICQ/Ci0tCXJtICoubwotLQotLQotLWJsb2IubyA6IGJs b2IuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0t Ci0tY29tbW9uLm8gOiBjb21tb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCi0tZmFjdG9yeS5vIDogZmFjdG9yeS5jcHAKLS0JJHtDT01QSUxF Un0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1yb3ctaWQubyA6IHJvdy1p ZC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0K LS1zZXNzaW9uLm8gOiBzZXNzaW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdT fSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLWludG8tdHlwZS5vIDogc3RhbmRhcmQtaW50 by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fQotLQotLXN0YW5kYXJkLXVzZS10eXBlLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKLS0JJHtD T01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1zdGF0ZW1lbnQu byA6IHN0YXRlbWVudC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KLS0KLS12ZWN0b3ItaW50by10eXBlLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAot LQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rv ci11c2UtdHlwZS5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAk e0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLQotLXNoYXJlZCA6ICR7T0JKRUNUU1NPfQot LQkke0NPTVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfcG9zdGdyZXNxbC5zbyAke09CSkVDVFNT T30KLS0Jcm0gKi5vCi0tCi0tYmxvYi1zLm8gOiBibG9iLmNwcAotLQkke0NPTVBJTEVSfSAtYyAt byAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tY29tbW9uLXMubyA6IGNv bW1vbi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xV REVESVJTfQotLQotLWZhY3Rvcnktcy5vIDogZmFjdG9yeS5jcHAKLS0JJHtDT01QSUxFUn0gLWMg LW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXJvdy1pZC1zLm8gOiBy b3ctaWQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNM VURFRElSU30KLS0KLS1zZXNzaW9uLXMubyA6IHNlc3Npb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1j IC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zdGFuZGFyZC1pbnRv LXR5cGUtcy5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAk QCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtdXNlLXR5cGUt cy5vIDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7 Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zdGF0ZW1lbnQtcy5vIDogc3RhdGVtZW50 LmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJ UlN9Ci0tCi0tdmVjdG9yLWludG8tdHlwZS1zLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAotLQkk e0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0t dmVjdG9yLXVzZS10eXBlLXMubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0g LWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLQotLWNsZWFuIDoK LS0Jcm0gLWYgbGlic29jaV9wb3N0Z3Jlc3FsLmEgbGlic29jaV9wb3N0Z3Jlc3FsLnNvCi1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxl LmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUu aW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZp bGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmluCTIwMTAtMDEtMjMg MTQ6NDQ6NTIuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDkwNCBAQAotKyMgTWFrZWZpbGUu aW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNv bmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5 NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIw MDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4K LSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3Ig ZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25n IGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQK LSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rCi0rCi0r VlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3Br Z2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJleGVjZGlyID0gJChsaWJleGVj ZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRI X1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAt bSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9z aF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExf REFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lO U1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9V TklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLSti dWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09N TU9OID0gJChhbV9fcGtnaW5jbHVkZV9IRUFERVJTX0RJU1QpICQoc3JjZGlyKS9NYWtlZmlsZS5h bSBcCi0rCSQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHNyY2Rpcikvc291cmNlcy5tayBcCi0rCSQo dG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGlyID0gc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsCi0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xv Y2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf b3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvbGlidG9vbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9sdHZlcnNpb24ubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5t NCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1f X2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NB TF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIg PSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0r Q09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KLSthbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGly c3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKLSthbV9fdnBhdGhfYWRq ID0gY2FzZSAkJHAgaW4gXAotKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAi c3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAotKyAgICAqKSBmPSQkcDs7IFwKLSsgIGVzYWM7Ci0r YW1fX3N0cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOwotK2FtX19p bnN0YWxsX21heCA9IDQwCi0rYW1fX25vYmFzZV9zdHJpcF9zZXR1cCA9IFwKLSsgIHNyY2RpcnN0 cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKLSth bV9fbm9iYXNlX3N0cmlwID0gXAotKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBk b25lIHwgc2VkIC1lICJzfCQkc3JjZGlyc3RyaXAvfHwiCi0rYW1fX25vYmFzZV9saXN0ID0gJChh bV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgXAotKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIk JHAgJCRwIjsgZG9uZSB8IFwKLSsgIHNlZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAuKlwv LyFzLyAuKi8gLi87IHMsXCggLipcKS9bXi9dKiQkLFwxLCcgfCBcCi0rICAkKEFXSykgJ0JFR0lO IHsgZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBc Ci0rICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKLSsgICAgICB7IHBy aW50ICQkMiwgZmlsZXNbJCQyXTsgblskJDJdID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBcCi0r ICAgIEVORCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKLSth bV9fYmFzZV9saXN0ID0gXAotKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjsk JCFOO3MvXG4vIC9nJyB8IFwKLSsgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycK LSthbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBr Z2luY2x1ZGVkaXIpIgotK0xUTElCUkFSSUVTID0gJChsaWJfTFRMSUJSQVJJRVMpCi0rbGlic29j aV9wb3N0Z3Jlc3FsX2xhX0RFUEVOREVOQ0lFUyA9Ci0rYW1fX2xpYnNvY2lfcG9zdGdyZXNxbF9s YV9TT1VSQ0VTX0RJU1QgPSAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9jb21tb24uaCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3NvY2ktcG9zdGdyZXNxbC5oIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvYmxvYi5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9jb21tb24uY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv ZmFjdG9yeS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9y b3ctaWQuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vz c2lvbi5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFu ZGFyZC1pbnRvLXR5cGUuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotK2FtX19vYmplY3Rz XzEgPQotK2FtX19vYmplY3RzXzIgPSBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbyBcCi0r CWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1jb21tb24ubG8gXAotKwlsaWJzb2NpX3Bvc3RncmVzcWxf bGEtZmFjdG9yeS5sbyBcCi0rCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQubG8gXAotKwls aWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbyBcCi0rCWxpYnNvY2lfcG9zdGdyZXNxbF9s YS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gXAotKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRh cmQtdXNlLXR5cGUubG8gXAotKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LmxvIFwK LSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gXAotKwlsaWJzb2Np X3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvCi0rQEhBVkVfUE9TVEdSRVNRTF9UUlVF QGFtX2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9PQkpFQ1RTID0gIFwKLStASEFWRV9QT1NUR1JFU1FM X1RSVUVACSQoYW1fX29iamVjdHNfMSkgJChhbV9fb2JqZWN0c18yKQotK2xpYnNvY2lfcG9zdGdy ZXNxbF9sYV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX3Bvc3RncmVzcWxfbGFfT0JKRUNUUykKLSts aWJzb2NpX3Bvc3RncmVzcWxfbGFfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSBcCi0rCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSBcCi0r CSQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSBcCi0rCSQobGli c29jaV9wb3N0Z3Jlc3FsX2xhX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKLStASEFWRV9QT1NU R1JFU1FMX1RSVUVAYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX3JwYXRoID0gLXJwYXRoIFwKLStA SEFWRV9QT1NUR1JFU1FMX1RSVUVACSQobGliZGlyKQotK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5A YW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKLStkZXBjb21wID0gJChTSEVMTCkgJCh0 b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAotK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVz Ci0rYW1fX212ID0gbXYgLWYKLStDWFhDT01QSUxFID0gJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo QU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rTFRDWFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0NY WExEID0gJChDWFgpCi0rQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAot K0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgXAotKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCi0r TFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9D RkxBR1MpICQoQ0ZMQUdTKQotK0NDTEQgPSAkKENDKQotK0xJTksgPSAkKExJQlRPT0wpIC0tdGFn PUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGluayAk KENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFH UykgLW8gJEAKLStTT1VSQ0VTID0gJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfU09VUkNFUykKLStE SVNUX1NPVVJDRVMgPSAkKGFtX19saWJzb2NpX3Bvc3RncmVzcWxfbGFfU09VUkNFU19ESVNUKQot K1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJl Y3Vyc2l2ZSBcCi0rCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1y ZWN1cnNpdmUgXAotKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2 ZSBcCi0rCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0r CWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vy c2l2ZSBcCi0rCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBk Zi1yZWN1cnNpdmUgXAotKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQotK2FtX19w a2dpbmNsdWRlX0hFQURFUlNfRElTVCA9ICBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCi0rSEVBREVSUyA9ICQocGtnaW5jbHVkZV9I RUFERVJTKQotK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZl IGNsZWFuLXJlY3Vyc2l2ZQlcCi0rICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xl YW4tcmVjdXJzaXZlCi0rQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRT Oi1yZWN1cnNpdmU9KSBcCi0rCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0p IHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCi0rCWRpc3RkaXIKLStFVEFHUyA9IGV0YWdzCi0rQ1RB R1MgPSBjdGFncwotK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKLStESVNURklMRVMgPSAkKERJ U1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK2Ft X19yZWxhdGl2aXplID0gXAotKyAgZGlyMD1gcHdkYDsgXAotKyAgc2VkX2ZpcnN0PSdzLF5cKFte L10qXCkvLiokJCxcMSwnOyBcCi0rICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAotKyAgc2Vk X2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKLSsgIHNlZF9idXRsYXN0PSdzLC8qW14v XSokJCwsJzsgXAotKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAotKyAgICBmaXJzdD1g ZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAgICBpZiB0ZXN0ICIk JGZpcnN0IiAhPSAiLiI7IHRoZW4gXAotKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsg dGhlbiBcCi0rICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0 ImAvIiQkZGlyMiI7IFwKLSsgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQk c2VkX2J1dGxhc3QiYDsgXAotKyAgICAgIGVsc2UgXAotKyAgICAgICAgZmlyc3QyPWBlY2hvICIk JGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgICAgICBpZiB0ZXN0ICIkJGZp cnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAotKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIi IHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgICAgICAgIGVsc2UgXAotKyAgICAgICAgICBk aXIyPSIuLi8kJGRpcjIiOyBcCi0rICAgICAgICBmaTsgXAotKyAgICAgICAgZGlyMD0iJCRkaXIw Ii8iJCRmaXJzdCI7IFwKLSsgICAgICBmaTsgXAotKyAgICBmaTsgXAotKyAgICBkaXIxPWBlY2hv ICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgIGRvbmU7IFwKLSsgIHJlbGRp cj0iJCRkaXIyIgotK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCi0rQUNMT0NB TCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0g QEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRP TUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9P U1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNU RU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBA Qk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1Rf TVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAotK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NU X01QSV9QWVRIT05fTElCQAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJP R1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJA Ci0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFU SU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9 IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9M SUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRf VEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JP T1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIg PSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBD Q0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0g QENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRf Q09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNA Ci0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NY WENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0g QENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RF UERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1Q QklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBA RUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBA RkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJ T05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEg PSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0r SU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFN ID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxB R1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJ QlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRM SUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStN WVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElC QAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNA Ci0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9 IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JB Q0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09D SV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStP UkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09M QAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9C VUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0Vf TkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5B TUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJ T05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAot K1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNR TF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JF U1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9 IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9 IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NI RUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklF REAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJ RURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9I RUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExP QURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19i dWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9 IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAot K2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3Rf RFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAot K2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19x dW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLSti aW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxk X2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NA Ci0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAK LStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlm Zl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5 Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhl Y19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0 QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLSto b3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRp ciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGlu Zm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29r QAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2Fs ZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK2x0 X0VDSE8gPSBAbHRfRUNIT0AKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJf cEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAK LStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0r c2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStz cmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxp YXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZp eEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3Ny Y2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQot K2Jja19wb3N0Z3Jlc3FsX2hfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCi0rCi0rYmNrX3Bvc3Rn cmVzcWxfY2Nfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUu Y3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0 YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAK LSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rU1VCRElSUyA9IC4gdGVz dAotKwotKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbW1vbi5oCi0r RVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQotK0BIQVZF X1BPU1RHUkVTUUxfVFJVRUBsaWJfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX3Bvc3RncmVzcWwubGEK LStASEFWRV9QT1NUR1JFU1FMX1RSVUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJDRVMgPSAk KGJja19wb3N0Z3Jlc3FsX2hfc291cmNlcykgJChiY2tfcG9zdGdyZXNxbF9jY19zb3VyY2VzKSAK LStASEFWRV9QT1NUR1JFU1FMX1RSVUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTID0g JChQT1NUR1JFU1FMX0NGTEFHUykKLStASEFWRV9QT1NUR1JFU1FMX1RSVUVAbGlic29jaV9wb3N0 Z3Jlc3FsX2xhX0xJQkFERCA9IAotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3Rn cmVzcWxfbGFfTERGTEFHUyA9IFwKLStASEFWRV9QT1NUR1JFU1FMX1RSVUVACSQoQk9PU1RfTElC UykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwK LStASEFWRV9QT1NUR1JFU1FMX1RSVUVACS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllf VkVSU0lPTikKLSsKLStASEFWRV9QT1NUR1JFU1FMX1RSVUVAcGtnaW5jbHVkZV9IRUFERVJTID0g JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgK LStAU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRl ZGlyKQotK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5j bHVkZWRpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsCi0rYWxsOiBhbGwtcmVjdXJzaXZlCi0r Ci0rLlNVRkZJWEVTOgotKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagotKyQoc3JjZGlyKS9N YWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxl LmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZv ciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwK LSsJICAgICokJGRlcCopIFwKLSsJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0 IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAx OzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAm JiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUnOyBc Ci0rCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBz b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0r TWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0 YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7 IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwp IC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAot KwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1 YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1 aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19T VEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQo YW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9t NF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgotK2luc3RhbGwtbGliTFRMSUJS QVJJRVM6ICQobGliX0xUTElCUkFSSUVTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAt eiAiJChsaWJkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChsaWJkaXIpIgotKwlAbGlz dD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIpIiB8fCBsaXN0PTsgXAot KwlsaXN0Mj07IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVu IFwKLSsJICAgIGxpc3QyPSIkJGxpc3QyICQkcCI7IFwKLSsJICBlbHNlIDo7IGZpOyBcCi0rCWRv bmU7IFwKLSsJdGVzdCAteiAiJCRsaXN0MiIgfHwgeyBcCi0rCSAgZWNobyAiICQoTElCVE9PTCkg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RB TEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICckKERFU1RESVIpJChsaWJkaXIpJyI7 IFwKLSsJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWluc3RhbGwgJChJTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJCRsaXN0MiAiJChE RVNURElSKSQobGliZGlyKSI7IFwKLSsJfQotKwotK3VuaW5zdGFsbC1saWJMVExJQlJBUklFUzoK LSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IHRl c3QgLW4gIiQobGliZGlyKSIgfHwgbGlzdD07IFwKLSsJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0r CSAgJChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICckKERFU1RESVIp JChsaWJkaXIpLyQkZiciOyBcCi0rCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikkKGxpYmRpcikv JCRmIjsgXAotKwlkb25lCi0rCi0rY2xlYW4tbGliTFRMSUJSQVJJRVM6Ci0rCS10ZXN0IC16ICIk KGxpYl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElCUkFSSUVTKQotKwlAbGlzdD0n JChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZGlyPSJgZWNo byAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAotKwkgIHRlc3QgIiQkZGlyIiAhPSAi JCRwIiB8fCBkaXI9LjsgXAotKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNc IiI7IFwKLSsJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCi0rCWRvbmUKLStsaWJz b2NpX3Bvc3RncmVzcWwubGE6ICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMpICQobGli c29jaV9wb3N0Z3Jlc3FsX2xhX0RFUEVOREVOQ0lFUykgCi0rCSQobGlic29jaV9wb3N0Z3Jlc3Fs X2xhX0xJTkspICQoYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX3JwYXRoKSAkKGxpYnNvY2lfcG9z dGdyZXNxbF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9MSUJBREQpICQoTElC UykKLSsKLSttb3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkKLSsKLStk aXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStAQU1ERVBfVFJVRUBAYW1f X2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJs b2IuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5QbG9AYW1fX3F1b3RlQAot K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2Np X3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9f aW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93 LWlkLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3Rl QC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlBsb0BhbV9fcXVvdGVA Ci0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNv Y2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVA QGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9s YS1zdGF0ZW1lbnQuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBh bV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5 cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5QbG9AYW1f X3F1b3RlQAotKwotKy5jcHAubzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxF KSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCou UG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVj dD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAt YyAtbyAkQCAkPAotKwotKy5jcHAub2JqOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENP TVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZ R1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElS KS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotKwotKy5j cHAubG86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1E IC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0 b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAg JDwKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbzogJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChM SUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhG TEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLmxvIC1NRCAt TVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5UcG8gLWMgLW8gbGli c29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLlRw byAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IuUGxvCi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9i LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBA QU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwCi0r Ci0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbyAtTUQg LU1QIC1NRiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5UcG8gLWMgLW8g bGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9s YS1jb21tb24uVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLlBsbwot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9z dGdyZXNxbF9sYS1jb21tb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1jb21tb24u bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1v bi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL2NvbW1vbi5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAKLStA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfcG9z dGdyZXNxbF9sYS1mYWN0b3J5LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3Rn cmVzcWxfbGEtZmFjdG9yeS5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3Rvcnku bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3Rv cnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9mYWN0b3J5LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikg JChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LlRwbyAkKERFUERJUikvbGli c29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L2ZhY3RvcnkuY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LmxvJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt YyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3Bw Ci0rCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbzogJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5UcG8gLWMg LW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcAotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNx bF9sYS1yb3ctaWQuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLlBs bwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwJyBvYmplY3Q9J2xpYnNvY2lf cG9zdGdyZXNxbF9sYS1yb3ctaWQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhE RVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ct aWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jv dy1pZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lv bi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lf cG9zdGdyZXNxbF9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bv c3RncmVzcWxfbGEtc2Vzc2lvbi5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Np b24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nl c3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19t dikgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlRwbyAkKERFUERJUikv bGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24uUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Nlc3Npb24uY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLmxv JyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24u Y3BwCi0rCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29j aV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJ UikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gLWMgLW8gbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19t dikgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuVHBv ICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsbwot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyBvYmplY3Q9 J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8nIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK LStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNv Y2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRh cmQtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0 YW5kYXJkLXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIC1N RCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5 cGUuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQt dXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQt dXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNl LXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNw cCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8nIGxp YnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJB Q0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1j IC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEt c3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0 ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1N VCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LmxvIC1NRCAtTVAgLU1GICQoREVQRElS KS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0 YXRlbWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQuUGxv Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAnIG9iamVjdD0nbGlic29j aV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdy ZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcAotKwotK2xpYnNvY2lfcG9zdGdy ZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRv LXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0 b3ItaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8t dHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv dmVjdG9yLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZl Y3Rvci1pbnRvLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9y LWludG8tdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlw ZS5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8n IGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBl LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEt dmVjdG9yLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvIC1N RCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBl LlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5 cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo YW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5U cG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuUGxvCi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIG9iamVjdD0nbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10 eXBlLmNwcAotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xl YW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotK2luc3RhbGwtcGtnaW5jbHVkZUhF QURFUlM6ICQocGtnaW5jbHVkZV9IRUFERVJTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVz dCAteiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5j bHVkZWRpcikiCi0rCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyB0ZXN0IC1uICIkKHBr Z2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAotKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBp ZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAotKwkg IGVjaG8gIiQkZCQkcCI7IFwKLSsJZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCi0rCXdoaWxl IHJlYWQgZmlsZXM7IGRvIFwKLSsJICBlY2hvICIgJChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAn JChERVNURElSKSQocGtnaW5jbHVkZWRpciknIjsgXAotKwkgICQoSU5TVEFMTF9IRUFERVIpICQk ZmlsZXMgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIiB8fCBleGl0ICQkPzsgXAotKwlkb25l Ci0rCi0rdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOgotKwlAJChOT1JNQUxfVU5JTlNUQUxM KQotKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgdGVzdCAtbiAiJChwa2dpbmNsdWRl ZGlyKSIgfHwgbGlzdD07IFwKLSsJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7 IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7IFwKLSsJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhp dCAwOyBcCi0rCWVjaG8gIiAoIGNkICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKScgJiYgcm0g LWYiICQkZmlsZXMgIikiOyBcCi0rCWNkICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIgJiYg cm0gLWYgJCRmaWxlcwotKwotKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUg bW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFr ZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhl IHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVz LAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0 IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMg dG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNl LCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KLSsk KFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9y IGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8 IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNh YzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNl ZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAot KwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBkb3Rfc2Vlbj15ZXM7 IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAg ICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKCQoYW1fX2NkKSAk JHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkg IHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIg PSAibm8iOyB0aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0i IHx8IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQoUkVDVVJTSVZFX0NM RUFOX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4 ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtd Kik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0r CWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJICBkaXN0Y2xl YW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCi0r CSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAotKwllc2FjOyBcCi0rCXJldj0nJzsgZm9yIHN1 YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4g OjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAotKwkgIGZpOyBcCi0rCWRv bmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVj dXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJICBlY2hvICJNYWtp bmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4i OyB0aGVuIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBc Ci0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKCQoYW1f X2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkg XAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgot K3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxp c3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vy c2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0r CSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQoSEVBREVSUykgJChT T1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7 IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAk KHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQk MF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsg Zm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVl Ci0rdGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VS Q0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0r CXNldCB4OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVk ZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9vcHRpb249 LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5j bHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlmaTsgXAotKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0 ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1mICQkc3ViZGly L1RBR1MgfHwgXAotKwkgICAgICBzZXQgIiQkQCIgIiQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQk c3ViZGlyL1RBR1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlsaXN0PSckKFNPVVJDRVMp ICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBp biAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVs c2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7 IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9u ZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJc2hpZnQ7IFwK LSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwK LSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgaWYg dGVzdCAkJCMgLWd0IDA7IHRoZW4gXAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFN X0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAot KwkgIGVsc2UgXAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1Mp ICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAkJHVuaXF1ZTsgXAotKwkgIGZpOyBcCi0rCWZpCi0r Y3RhZ3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNF UykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBc Ci0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykg JChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQk dW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYg cHdkYCBcCi0rCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1p ICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRB R1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RG SUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRc XCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIg fCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7 IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBk b25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1l ICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAk JGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVz IiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcg fCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlz dF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0 aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZp bGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSok JCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCi0r CSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhl YyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChz cmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBj cCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0r CSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhl YyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1mcFIgJCRkLyQk ZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRl c3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIk KGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9u ZQotKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK LSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAt ZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGly KS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlA bGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBp ZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgZGlyMT0kJHN1YmRp cjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwKLSsJICAgICQoYW1fX3JlbGF0aXZpemUp OyBcCi0rCSAgICBuZXdfZGlzdGRpcj0kJHJlbGRpcjsgXAotKwkgICAgZGlyMT0kJHN1YmRpcjsg ZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCi0rCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAotKwkg ICAgbmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBlY2hvICIgKGNkICQkc3ViZGly ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRp ciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBcCi0rCSAgICBlY2hvICIgICAgIGFtX19y ZW1vdmVfZGlzdGRpcj06IGFtX19za2lwX2xlbmd0aF9jaGVjaz06IGFtX19za2lwX21vZGVfZml4 PTogZGlzdGRpcikiOyBcCi0rCSAgICAoJChhbV9fY2QpICQkc3ViZGlyICYmIFwKLSsJICAgICAg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJG5ld190 b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFwKLSsJCWFt X19yZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKLSsJCWFt X19za2lwX21vZGVfZml4PTogXAotKwkgICAgICAgIGRpc3RkaXIpIFwKLSsJICAgICAgfHwgZXhp dCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hl Y2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFSSUVTKSAkKEhFQURFUlMp Ci0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJzLWFtOgot Kwlmb3IgZGlyIGluICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVk ZWRpcikiOyBkbyBcCi0rCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsg XAotKwlkb25lCi0raW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKLStpbnN0YWxsLWV4ZWM6IGlu c3RhbGwtZXhlYy1yZWN1cnNpdmUKLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNp dmUKLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWFtOiBhbGwt YW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRh dGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKLStpbnN0YWxs LXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5T VEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxM X1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICck KFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9 JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdl bmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVB Tl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0gIiQo c3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAt ZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVy aWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRv IHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFs IHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUyki IHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLXJlY3Vyc2l2 ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFu LWxpYnRvb2wgXAotKwltb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJl Y3Vyc2l2ZQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3Rj bGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAot KwlkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsK LStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwotK2h0bWwtYW06Ci0rCi0raW5mbzogaW5mby1yZWN1 cnNpdmUKLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1wa2dpbmNs dWRlSEVBREVSUwotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKLSsKLStp bnN0YWxsLWR2aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtbGliTFRMSUJSQVJJ RVMKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxs LWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0r aW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0 YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBp bnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNr LWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0r CS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVh bi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNs ZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xl YW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbAot KwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJzaXZl Ci0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMg dW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWluc3Rh bGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQotKwotKy5QSE9OWTogJChSRUNVUlNJ VkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAotKwlh bGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAotKwljbGVhbi1s aWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWRp c3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVh bi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRt bC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWlu c3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAot KwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWlu Zm8gXAotKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW1h biBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcGtnaW5jbHVkZUhFQURF UlMgaW5zdGFsbC1wcyBcCi0rCWluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hl Y2sgaW5zdGFsbGNoZWNrLWFtIFwKLSsJaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRh aW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0 bHljbGVhbi1jb21waWxlIFwKLSsJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0 b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAotKwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFs bCB1bmluc3RhbGwtYW0gXAotKwl1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBr Z2luY2x1ZGVIRUFERVJTCi0rCi0rQFNFVF9NQUtFQAotKwotKyMgVGVsbCB2ZXJzaW9ucyBbMy41 OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhl cndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQu Ci0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCi0tLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCTIwMTAtMDEtMjMgMTQ6 NDU6NDQuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAw MDAwMCArMDIwMAotQEAgLTIyLDkgKzIyLDE0IEBACi0gI2lmbmRlZiBTT0NJX1BPU1RHUkVTUUxf REVDTAotICMgZGVmaW5lIFNPQ0lfUE9TVEdSRVNRTF9ERUNMCi0gI2VuZGlmCi0tCi0tI2luY2x1 ZGUgPHNvY2ktYmFja2VuZC5oPgotLSNpbmNsdWRlIDxsaWJwcS1mZS5oPgotKy8vCi0rI2lmIGRl ZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9z b2NpLWJhY2tlbmQuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+Ci0rI2Vu ZGlmCi0rLy8KLSsjaW5jbHVkZSA8bGlicHEtZmUuaD4gLy8gUG9zdEdyZVNRTCBjbGllbnQKLSAj aW5jbHVkZSA8dmVjdG9yPgotIAotICNpZmRlZiBfTVNDX1ZFUgotZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc291cmNlcy5tawotLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAw ICswMjAwCi1AQCAtMCwwICsxLDE0IEBACi0rYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzID0gXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmgg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1w b3N0Z3Jlc3FsLmgKLStiY2tfcG9zdGdyZXNxbF9jY19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAgXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQu Y3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nl c3Npb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAgXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8t dHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvdmVjdG9yLXVzZS10eXBlLmNwcAotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotLS0t IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRv LXR5cGUuY3BwCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUu Y3BwCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCi1AQCAtOCw5ICs4LDE2IEBA Ci0gI2RlZmluZSBTT0NJX1BPU1RHUkVTUUxfU09VUkNFCi0gI2luY2x1ZGUgInNvY2ktcG9zdGdy ZXNxbC5oIgotICNpbmNsdWRlICJjb21tb24uaCIKLS0jaW5jbHVkZSAicm93aWQuaCIKLS0jaW5j bHVkZSAiYmxvYi5oIgotLSNpbmNsdWRlIDxsaWJwcS9saWJwcS1mcy5oPiAvLyBsaWJwcQotKy8v Ci0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNv Y2kvY29yZS9ibG9iLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvcm93aWQuaD4KLSsj ZWxzZQotKyMgICAgICAgaW5jbHVkZSA8YmxvYi5oPgotKyMgICAgICAgaW5jbHVkZSA8cm93aWQu aD4KLSsjZW5kaWYKLSsvLwotKyNpbmNsdWRlIDxsaWJwcS9saWJwcS1mcy5oPiAvLyBsaWJwcSAo UG9zdEdyZVNRTCBjbGllbnQpCi0gI2luY2x1ZGUgPGNjdHlwZT4KLSAjaW5jbHVkZSA8Y3N0ZGlv PgotICNpbmNsdWRlIDxjc3RyaW5nPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLS0tLSBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5 cGUuY3BwCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJ MjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAKLUBAIC03LDggKzcsMTQgQEAKLSAK LSAjZGVmaW5lIFNPQ0lfUE9TVEdSRVNRTF9TT1VSQ0UKLSAjaW5jbHVkZSAic29jaS1wb3N0Z3Jl c3FsLmgiCi0tI2luY2x1ZGUgInJvd2lkLmgiCi0tI2luY2x1ZGUgPGxpYnBxL2xpYnBxLWZzLmg+ IC8vIGxpYnBxCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAg ICAgaW5jbHVkZSA8c29jaS9jb3JlL3Jvd2lkLmg+Ci0rI2Vsc2UKLSsjICAgICAgIGluY2x1ZGUg PHJvd2lkLmg+Ci0rI2VuZGlmCi0rLy8KLSsjaW5jbHVkZSA8bGlicHEvbGlicHEtZnMuaD4gLy8g bGlicHEgKFBvc3RHcmVTUUwgY2xpZW50KQotICNpbmNsdWRlIDxjY3R5cGU+Ci0gI2luY2x1ZGUg PGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYW0KLS0tLSBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5hbQkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5 OjM3OjA1LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwxOCBAQAotKyMjIGNvcmUgc3ViLWRp cmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStpbmNsdWRl ICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmls ZS5pbgotKwotK2lmIFJVTl9URVNUUwotKyAgbm9pbnN0X1BST0dSQU1TID0gdGVzdF9wb3N0Z3Jl c3FsCi0rZW5kaWYKLSsKLSt0ZXN0X3Bvc3RncmVzcWxfU09VUkNFUyA9ICQocG9zdGdyZXNxbF90 ZXN0X2NjX3NvdXJjZXMpCi0rdGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxB R1MpCi0rdGVzdF9wb3N0Z3Jlc3FsX0xEQUREID0KLSt0ZXN0X3Bvc3RncmVzcWxfTERGTEFHUyA9 ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3JlLmxhIC1sZGwgXAotKwkJJCh0 b3BfYnVpbGRkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9saWJzb2NpX3Bvc3RncmVzcWwu bGEgXAotKwkJJChQT1NUR1JFU1FMX0xERkxBR1MpCi0rCi0rI25vZGlzdF9wa2dpbmNsdWRlX0hF QURFUlMgPSAkKHBvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMpCi1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJh c2ljCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qv TWFrZWZpbGUuYmFzaWMJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUu YmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xLDIyICswLDAg QEAKLS0jIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgaXMgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5k IGFuZCBpdHMgY29ycmVjdAotLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25t ZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KLS0KLS1QR1NRTElOQ0xVREVE SVIgPSAtSS91c3IvaW5jbHVkZQotLVBHU1FMTElCRElSID0gLUwvdXNyL2xpYgotLVBHU1FMTElC UyA9IC1scHEKLS0KLS0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVudGVudCBv ZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgotLQotLUNPTVBJTEVSID0gZysrCi0tQ1hYRkxBR1Mg PSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKLS1JTkNMVURFRElSUyA9IC1JLi4gLUku Li8uLi8uLi9jb3JlL3Rlc3QgLUkuLi8uLi8uLi9jb3JlICR7UEdTUUxJTkNMVURFRElSfQotLUxJ QkRJUlMgPSAtTC4uIC1MLi4vLi4vLi4vY29yZSAke1BHU1FMTElCRElSfQotLUxJQlMgPSAtbHNv Y2lfY29yZSAtbHNvY2lfcG9zdGdyZXNxbCAtbGRsICR7UEdTUUxMSUJTfQotLQotLQotLXRlc3Qt cG9zdGdyZXNxbCA6IHRlc3QtcG9zdGdyZXNxbC5jcHAKLS0JJHtDT01QSUxFUn0gLW8gJEAgJD8g JHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30gJHtMSUJESVJTfSAke0xJQlN9Ci0tCi0tCi0tY2xl YW4gOgotLQlybSAtZiB0ZXN0LXBvc3RncmVzcWwKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuaW4KLS0tLSBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5pbgkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5pbgkyMDEwLTAxLTIzIDE0 OjQ0OjUyLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw1NTkgQEAKLSsjIE1ha2VmaWxlLmlu IGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25m aWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcs IDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2 LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMuCi0r IyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRp c3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBh cyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0r IyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotKwotK1ZQQVRI ID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNs dWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikv QFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1f X2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAot K2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9Q Uk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxs X3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0g JChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNU QUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9V TklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWls ZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtl ZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHNyY2Rpcikvc291cmNlcy5tayAk KHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK0BSVU5fVEVTVFNfVFJVRUBub2luc3RfUFJP R1JBTVMgPSB0ZXN0X3Bvc3RncmVzcWwkKEVYRUVYVCkKLStzdWJkaXIgPSBzb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvdGVzdAotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQK LSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0 Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9w dGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+ b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2Rl cHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAot KwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05G SUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5f RklMRVMgPQotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0rUFJPR1JBTVMgPSAkKG5vaW5z dF9QUk9HUkFNUykKLSthbV9fb2JqZWN0c18xID0gdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdy ZXNxbC4kKE9CSkVYVCkKLSthbV90ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUyA9ICQoYW1fX29iamVj dHNfMSkKLSt0ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUyA9ICQoYW1fdGVzdF9wb3N0Z3Jlc3FsX09C SkVDVFMpCi0rdGVzdF9wb3N0Z3Jlc3FsX0RFUEVOREVOQ0lFUyA9Ci0rdGVzdF9wb3N0Z3Jlc3Fs X0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAotKwkkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAotKwkkKHRlc3RfcG9zdGdyZXNxbF9D WFhGTEFHUykgJChDWFhGTEFHUykgXAotKwkkKHRlc3RfcG9zdGdyZXNxbF9MREZMQUdTKSAkKExE RkxBR1MpIC1vICRACi0rREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9i dWlsZGRpcikvc29jaQotK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9k ZXBjb21wCi0rYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKLSthbV9fbXYgPSBtdiAtZgot K0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhG TEFHUykKLStMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rQ1hYTEQgPSAkKENYWCkKLStDWFhM SU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSBcCi0rCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp ICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRACi0rU09VUkNFUyA9ICQodGVzdF9w b3N0Z3Jlc3FsX1NPVVJDRVMpCi0rRElTVF9TT1VSQ0VTID0gJCh0ZXN0X3Bvc3RncmVzcWxfU09V UkNFUykKLStFVEFHUyA9IGV0YWdzCi0rQ1RBR1MgPSBjdGFncwotK0RJU1RGSUxFUyA9ICQoRElT VF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNM T0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05G ID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBB VVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0r Qk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVT WVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIg PSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9P U1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAotK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJP T1NUX01QSV9QWVRIT05fTElCQAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1Rf UFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9M SUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJ WkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJ QiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RF TV9MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VO SVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAot K0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9M SUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9 IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdT ID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVO SVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJ QlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAot K0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdT ID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAot K0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBE VU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1Qg PSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAg PSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZF UlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RB VEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1A Ci0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9H UkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExE RkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0g QExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBA TFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAK LStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0Nf TElCQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJ QlNACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJ VCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0r T1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xF X09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AK LStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9U T09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FH RV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tB R0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RB Uk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZF UlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJM QAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdS RVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NU R1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lP TiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFT RSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAot K1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JV UklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19C VVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBV UExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFi c19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRp ciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGly QAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNf Y3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRl QAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFt X19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAK LStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1 aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRf b3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRp ckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0r ZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBk b3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0r ZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBo b3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAK LStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRt bGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0g QGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4 X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xv Y2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAot K2x0X0VDSE8gPSBAbHRfRUNIT0AKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtk aXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRp ckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJA Ci0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAK LStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRf YWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3By ZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9w X3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGly KQotK3Bvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMgPSAKLStwb3N0Z3Jlc3FsX3Rlc3RfY2Nfc291 cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1w b3N0Z3Jlc3FsLmNwcAotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSt0ZXN0 X3Bvc3RncmVzcWxfU09VUkNFUyA9ICQocG9zdGdyZXNxbF90ZXN0X2NjX3NvdXJjZXMpCi0rdGVz dF9wb3N0Z3Jlc3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpCi0rdGVzdF9wb3N0Z3Jlc3Fs X0xEQUREID0gCi0rdGVzdF9wb3N0Z3Jlc3FsX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29j aS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKLSsJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvbGlic29jaV9wb3N0Z3Jlc3FsLmxhIFwKLSsJCSQoUE9TVEdSRVNR TF9MREZMQUdTKQotKwotK2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJWEVTOgotKy5TVUZGSVhFUzog LmNwcCAubG8gLm8gLm9iagotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtl ZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5t ayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNl ICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJICAgICAg KCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBi cmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsg XAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3Ny Y2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC90ZXN0L01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2Rp cikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/ JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkg ICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMg JChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2Rl cGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0 YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lF UykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVw cykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChh bV9fYWNsb2NhbF9tNF9kZXBzKToKLSsKLStjbGVhbi1ub2luc3RQUk9HUkFNUzoKLSsJQGxpc3Q9 JyQobm9pbnN0X1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCi0rCWVj aG8gIiBybSAtZiIgJCRsaXN0OyBcCi0rCXJtIC1mICQkbGlzdCB8fCBleGl0ICQkPzsgXAotKwl0 ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAotKwlsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7 IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCi0rCWVjaG8g IiBybSAtZiIgJCRsaXN0OyBcCi0rCXJtIC1mICQkbGlzdAotK3Rlc3RfcG9zdGdyZXNxbCQoRVhF RVhUKTogJCh0ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUykgJCh0ZXN0X3Bvc3RncmVzcWxfREVQRU5E RU5DSUVTKSAKLSsJQHJtIC1mIHRlc3RfcG9zdGdyZXNxbCQoRVhFRVhUKQotKwkkKHRlc3RfcG9z dGdyZXNxbF9MSU5LKSAkKHRlc3RfcG9zdGdyZXNxbF9PQkpFQ1RTKSAkKHRlc3RfcG9zdGdyZXNx bF9MREFERCkgJChMSUJTKQotKwotK21vc3RseWNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLiQo T0JKRVhUKQotKwotK2Rpc3RjbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi50YWIuYwotKwotK0BB TURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0X3Bvc3Rn cmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlBvQGFtX19xdW90ZUAKLSsKLSsuY3BwLm86Ci0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElS KS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQo REVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tT TEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsKLSsuY3BwLm9iajoKLStA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChE RVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCi0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbwotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcg bGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRA IGAkKENZR1BBVEhfVykgJyQ8J2AKLSsKLSsuY3BwLmxvOgotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMg LW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5U cG8gJChERVBESVIpLyQqLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rdGVzdF9wb3N0Z3Jlc3FsLXRlc3Qt cG9zdGdyZXNxbC5vOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0 L3Rlc3QtcG9zdGdyZXNxbC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3RfcG9z dGdyZXNxbC10ZXN0LXBvc3RncmVzcWwubyAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVzdF9wb3N0 Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5UcG8gLWMgLW8gdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9z dGdyZXNxbC5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL3Rlc3RfcG9zdGdyZXNx bC10ZXN0LXBvc3RncmVzcWwuVHBvICQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0 Z3Jlc3FsLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3Fs LmNwcCcgb2JqZWN0PSd0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm8nIGxpYnRvb2w9 bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfcG9zdGdy ZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9z dGdyZXNxbC5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAot KwotK3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqIC1N RCAtTVAgLU1GICQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlRwbyAt YyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm9iaiBgaWYgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwu Y3BwJzsgdGhlbiAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNy Y2RpcikvJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBv c3RncmVzcWwuY3BwJzsgZmlgCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERF UERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5UcG8gJChERVBESVIpL3Rlc3Rf cG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv dGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJyBvYmplY3Q9J3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBv c3RncmVzcWwub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJCh0ZXN0X3Bvc3RncmVzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRl c3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyB0 aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv dGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8k KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNx bC5jcHAnOyBmaWAKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwot K2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLSsKLStJRDogJChIRUFERVJT KSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQo SEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQk bGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBl Y2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmls ZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0 eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1 bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChU QUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXNldCB4OyBc Ci0rCWhlcmU9YHB3ZGA7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1Ap ICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAg ICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQk aTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9u ZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBm aWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXNoaWZ0OyBcCi0rCWlmIHRlc3QgLXogIiQoRVRB R1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlx dWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVu IFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdT X0FSR1MpIFwKLSsJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKLSsJICBlbHNlIFwKLSsJICAgICQo RVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJ ICAgICAgJCR1bmlxdWU7IFwKLSsJICBmaTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdT OiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRB R1NfRklMRVMpICQoTElTUCkKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1Ap ICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAg ICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQk aTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9u ZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBm aWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1 ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENU QUdTX0FSR1MpIFwKLSsJICAgICAkJHVuaXF1ZQotKwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19j ZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNk aXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCi0rCi0rZGlzdGNs ZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdz Ci0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNk aXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9 YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAot KwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRs aXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3Ry aXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRk aXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJf UCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlz dGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsg XAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmls ZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0r CSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmls ZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICIkKGRpc3Rk aXIpLyQkZmlsZSI7IHRoZW4gXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5 cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBc Ci0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNk aXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIp JCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5 cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBc Ci0rCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBc Ci0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAg fHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGV4aXQg MTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNr LWFtCi0rYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKQotK2luc3RhbGxkaXJzOgotK2luc3Rh bGw6IGluc3RhbGwtYW0KLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQotK2luc3RhbGwt ZGF0YTogaW5zdGFsbC1kYXRhLWFtCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KLSsKLStpbnN0 YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1h bSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQotK2lu c3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0i JChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElO U1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3Qg LXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQ UFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xl YW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklH X0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCS10ZXN0IC4g PSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8 IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4t Z2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5l cnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNw ZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJ TEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tYW0K LSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdFBS T0dSQU1TIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQot Kwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTog Y2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xl YW4tdGFncwotKwotK2R2aTogZHZpLWFtCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtYW0K LSsKLStodG1sLWFtOgotKwotK2luZm86IGluZm8tYW0KLSsKLStpbmZvLWFtOgotKwotK2luc3Rh bGwtZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KLSsKLStpbnN0YWxs LWR2aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxs LWh0bWwtYW0KLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxs LWluZm8tYW0KLSsKLStpbnN0YWxsLWluZm8tYW06Ci0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5z dGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCi0rCi0raW5zdGFsbC1wZGYtYW06Ci0rCi0raW5zdGFs bC1wczogaW5zdGFsbC1wcy1hbQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNr LWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJLXJtIC1y ZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBk aXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1v c3RseWNsZWFuLWFtCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9z dGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1h bQotKwotK3BkZi1hbToKLSsKLStwczogcHMtYW0KLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwt YW06Ci0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTogQ1RB R1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwK LSsJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBjdGFncyBkaXN0Y2xlYW4gXAot KwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBc Ci0rCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBp bmZvLWFtIFwKLSsJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEt YW0gaW5zdGFsbC1kdmkgXAotKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1l eGVjLWFtIGluc3RhbGwtaHRtbCBcCi0rCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5z dGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKLSsJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0g aW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKLSsJaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sg aW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKLSsJbWFpbnRhaW5lci1jbGVhbiBtYWludGFp bmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAotKwltb3N0bHljbGVhbi1jb21waWxlIG1v c3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBcCi0rCXBkZiBwZGYtYW0gcHMg cHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9NQUtFQAotKwotKyNu b2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChwb3N0Z3Jlc3FsX3Rlc3RfaF9zb3VyY2VzKQot KwotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0 IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0 IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3NvdXJjZXMubWsgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3NvdXJjZXMubWsKLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9zb3VyY2Vz Lm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3NvdXJjZXMubWsJMjAwOS0wNC0x NiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMiBAQAotK3Bvc3RncmVzcWxf dGVzdF9oX3NvdXJjZXMgPQotK3Bvc3RncmVzcWxfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCi1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qv dGVzdC1wb3N0Z3Jlc3FsLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAJMjAxMC0wMS0y MyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAkyMDEwLTAxLTIzIDEz OjI1OjU3LjAwMDAwMDAwMCArMDEwMAotQEAgLTUsOSArNSwxNyBAQAotIC8vIGh0dHA6Ly93d3cu Ym9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKLSAvLwotIAotLSNpbmNsdWRlICJzb2NpLmgiCi0t I2luY2x1ZGUgInNvY2ktcG9zdGdyZXNxbC5oIgotLSNpbmNsdWRlICJjb21tb24tdGVzdHMuaCIK LSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRl IDxzb2NpL2NvcmUvc29jaS5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Rl c3QvY29tbW9uLXRlc3RzLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2kuaD4KLSsjCWluY2x1 ZGUgPHNvY2ktcG9zdGdyZXNxbC5oPgotKyMgICAgICAgaW5jbHVkZSA8dGVzdC9jb21tb24tdGVz dHMuaD4KLSsjZW5kaWYKLSsvLwotICNpbmNsdWRlIDxpb3N0cmVhbT4KLSAjaW5jbHVkZSA8c3N0 cmVhbT4KLSAjaW5jbHVkZSA8c3RyaW5nPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvY29uZmlnLmguaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29uZmlnLmguaW4KLS0tLSBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvbmZpZy5oLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw MDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29uZmlnLmguaW4JMjAx MC0wMS0yMyAxNDo0NDo1MC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMTU1IEBACi0rLyog c29jaS9jb25maWcuaC5pbi4gIEdlbmVyYXRlZCBmcm9tIGNvbmZpZ3VyZS5hYyBieSBhdXRvaGVh ZGVyLiAgKi8KLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0IGxpYnJhcnkgaXMgYXZhaWxhYmxl ICovCi0rI3VuZGVmIEhBVkVfQk9PU1QKLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpBc2lv IGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVfQk9PU1RfQVNJTwotKwotKy8q IGRlZmluZSBpZiB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwot KyN1bmRlZiBIQVZFX0JPT1NUX0RBVEVfVElNRQotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6 OkZJTEVTWVNURU0gbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9G SUxFU1lTVEVNCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkg aXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVfQk9PU1RfSU9TVFJFQU1TCi0rCi0rLyogZGVm aW5lIGlmIHRoZSBCb29zdDo6TXBpIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhB VkVfQk9PU1RfTVBJCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6TXBpX1B5dGhvbiBsaWJy YXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NUX01QSV9QWVRIT04KLSsKLSsv KiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpQUk9HUkFNX09QVElPTlMgbGlicmFyeSBpcyBhdmFpbGFi bGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9QUk9HUkFNX09QVElPTlMKLSsKLSsvKiBkZWZpbmUg aWYgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZF X0JPT1NUX1JFR0VYCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6U2VyaWFsaXphdGlvbiBs aWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NUX1NFUklBTElaQVRJT04K LSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxl ICovCi0rI3VuZGVmIEhBVkVfQk9PU1RfU0lHTkFMUwotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9v c3Q6OlNZU1RFTSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NUX1NZ U1RFTQotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OlRIUkVBRCBsaWJyYXJ5IGlzIGF2YWls YWJsZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NUX1RIUkVBRAotKwotKy8qIGRlZmluZSBpZiB0aGUg Qm9vc3Q6OlVuaXRfdGVzdF9mcmFtZXdvcmsgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5k ZWYgSEFWRV9CT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYg eW91IGhhdmUgdGhlIDxjbWF0aD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfQ01BVEgK LSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGRlcXVlPiBoZWFkZXIgZmlsZS4g Ki8KLSsjdW5kZWYgSEFWRV9ERVFVRQotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSA8ZGxmY24uaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfRExGQ05fSAotKwotKy8q IERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZnN0cmVhbT4gaGVhZGVyIGZpbGUuICovCi0r I3VuZGVmIEhBVkVfRlNUUkVBTQotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8 aW50dHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfSU5UVFlQRVNfSAotKwot Ky8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8aW9tYW5pcD4gaGVhZGVyIGZpbGUuICov Ci0rI3VuZGVmIEhBVkVfSU9NQU5JUAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSA8aW9zdHJlYW0+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX0lPU1RSRUFNCi0rCi0r LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW1pdHM+IGhlYWRlciBmaWxlLiAqLwot KyN1bmRlZiBIQVZFX0xJTUlUUwotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8 bGlzdD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfTElTVAotKwotKy8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSA8bWFwPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9N QVAKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1lbW9yeS5oPiBoZWFkZXIg ZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9NRU1PUllfSAotKwotKy8qIERlZmluZSB0byAxIGlmIHRo ZSBPcmFjbGUgT0NJIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVfT1JBQ0xF Ci0rCi0rLyogRGVmaW5lIHRvIDEgaWYgUG9zdGdyZVNRTCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJs ZSAqLwotKyN1bmRlZiBIQVZFX1BPU1RHUkVTUUwKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3Ug aGF2ZSB0aGUgPHF1ZXVlPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9RVUVVRQotKwot Ky8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c2V0PiBoZWFkZXIgZmlsZS4gKi8KLSsj dW5kZWYgSEFWRV9TRVQKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHNzdHJl YW0+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1NTVFJFQU0KLSsKLSsvKiBEZWZpbmUg dG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGV4Y2VwdD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVm IEhBVkVfU1RERVhDRVBUCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRp bnQuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfU1RESU5UX0gKLSsKLSsvKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGxpYi5oPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5k ZWYgSEFWRV9TVERMSUJfSAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3Ry aW5nPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9TVFJJTkcKLSsKLSsvKiBEZWZpbmUg dG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZ3MuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVm IEhBVkVfU1RSSU5HU19ICi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJp bmcuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfU1RSSU5HX0gKLSsKLSsvKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlciBmaWxlLiAqLwotKyN1 bmRlZiBIQVZFX1NZU19TVEFUX0gKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg PHN5cy90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9TWVNfVFlQRVNfSAot KwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dW5pc3RkLmg+IGhlYWRlciBmaWxl LiAqLwotKyN1bmRlZiBIQVZFX1VOSVNURF9ICi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIDx2ZWN0b3I+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1ZFQ1RPUgotKwot Ky8qIERlZmluZSB0byB0aGUgc3ViLWRpcmVjdG9yeSBpbiB3aGljaCBsaWJ0b29sIHN0b3JlcyB1 bmluc3RhbGxlZCBsaWJyYXJpZXMuCi0rICAgKi8KLSsjdW5kZWYgTFRfT0JKRElSCi0rCi0rLyog TmFtZSBvZiBwYWNrYWdlICovCi0rI3VuZGVmIFBBQ0tBR0UKLSsKLSsvKiBEZWZpbmUgdG8gdGhl IGFkZHJlc3Mgd2hlcmUgYnVnIHJlcG9ydHMgZm9yIHRoaXMgcGFja2FnZSBzaG91bGQgYmUgc2Vu dC4gKi8KLSsjdW5kZWYgUEFDS0FHRV9CVUdSRVBPUlQKLSsKLSsvKiBEZWZpbmUgdG8gdGhlIGZ1 bGwgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCi0rI3VuZGVmIFBBQ0tBR0VfTkFNRQotKwotKy8q IERlZmluZSB0byB0aGUgZnVsbCBuYW1lIGFuZCB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8K LSsjdW5kZWYgUEFDS0FHRV9TVFJJTkcKLSsKLSsvKiBEZWZpbmUgdG8gdGhlIG9uZSBzeW1ib2wg c2hvcnQgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCi0rI3VuZGVmIFBBQ0tBR0VfVEFSTkFNRQot KwotKy8qIERlZmluZSB0byB0aGUgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCi0rI3VuZGVm IFBBQ0tBR0VfVkVSU0lPTgotKwotKy8qIERlZmluZSBpZiB5b3Ugd2FudCBleGNlcHRpb25zIGhh bmRsaW5nICovCi0rI3VuZGVmIFNPQ0lfRVhDRVBUSU9OUwotKwotKy8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSBBTlNJIEMgaGVhZGVyIGZpbGVzLiAqLwotKyN1bmRlZiBTVERDX0hFQURF UlMKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgY2FuIHNhZmVseSBpbmNsdWRlIGJvdGggPHN5 cy90aW1lLmg+IGFuZCA8dGltZS5oPi4gKi8KLSsjdW5kZWYgVElNRV9XSVRIX1NZU19USU1FCi0r Ci0rLyogVmVyc2lvbiBudW1iZXIgb2YgcGFja2FnZSAqLwotKyN1bmRlZiBWRVJTSU9OCi1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcCBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAotLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAJMjAxMC0wMS0yMyAxNDo0NTo0 NC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL2JhY2tl bmQtbG9hZGVyLmNwcAkyMDEwLTAxLTIzIDEzOjI1OjU3LjAwMDAwMDAwMCArMDEwMAotQEAgLTEx LDYgKzExLDkgQEAKLSAjaW5jbHVkZSA8bWFwPgotICNpbmNsdWRlIDxjYXNzZXJ0PgotICNpbmNs dWRlIDxjc3RkbGliPgotKyNpZm5kZWYgX01TQ19WRVIKLSsjaW5jbHVkZSA8c3RkaW50Lmg+Ci0r I2VuZGlmCi0gCi0gdXNpbmcgbmFtZXNwYWNlIHNvY2k7Ci0gdXNpbmcgbmFtZXNwYWNlIHNvY2k6 OmR5bmFtaWNfYmFja2VuZHM7Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3Jl L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuYW0KLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL01h a2VmaWxlLmFtCTIwMDktMDUtMDYgMDA6Mjg6MTAuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsx LDI5IEBACi0rIyMgY29yZSBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01h a2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsKLStNQUlOVEFJ TkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9IC4gdGVzdAotKwotKyNF WFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX3Jvdy5jcHAgLl9zb2NpLXNpbXBs ZS5jcHAgLl9zb2NpLXNpbXBsZS5oIC5fdmFsdWVzLWV4Y2hhbmdlLmgKLSsKLStFWFRSQV9ESVNU ID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi0rCi0rbGliX0xUTElCUkFS SUVTPSBsaWJzb2NpX2NvcmUubGEKLSsKLStsaWJzb2NpX2NvcmVfbGFfU09VUkNFUz0gJChjb3Jl X2hfc291cmNlcykgJChjb3JlX2NjX3NvdXJjZXMpIAotK2xpYnNvY2lfY29yZV9sYV9DWFhGTEFH UyA9Ci0rbGlic29jaV9jb3JlX2xhX0xJQkFERCA9Ci0rbGlic29jaV9jb3JlX2xhX0xERkxBR1Mg PSBcCi0rCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dS QU1fT1BUSU9OU19MSUIpIFwKLSsJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJT SU9OKQotKwotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV9oX3NvdXJjZXMpCi0raWYgU09D SV9IRUFERVJTX0JVUklFRAotK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kv Y29yZQotK2Vsc2UKLStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK2VuZGlmCi0r cGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLSsKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvY29yZS9NYWtlZmlsZS5iYXNpYwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9N YWtlZmlsZS5iYXNpYwkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAotKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xLDc2ICswLDAgQEAKLS1DT01QSUxFUiA9IGcrKwot LUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCi0tSU5DTFVERURJUlMg PSAKLS1PQkpTID0gIHNlc3Npb24ubyBzdGF0ZW1lbnQubyByb3cubyB2YWx1ZXMubyBcCi0tCWlu dG8tdHlwZS5vIHVzZS10eXBlLm8gXAotLQlibG9iLm8gcm93aWQubyBwcm9jZWR1cmUubyByZWYt Y291bnRlZC1wcmVwYXJlLWluZm8ubyByZWYtY291bnRlZC1zdGF0ZW1lbnQubyBcCi0tCW9uY2Ut dGVtcC10eXBlLm8gcHJlcGFyZS10ZW1wLXR5cGUubyBlcnJvci5vIHRyYW5zYWN0aW9uLm8gYmFj a2VuZC1sb2FkZXIubyBcCi0tCWNvbm5lY3Rpb24tcG9vbC5vIHNvY2ktc2ltcGxlLm8KLS0KLS0K LS1saWJzb2NpX2NvcmUuYSA6ICR7T0JKU30gCi0tCWFyIHJ2ICRAICQ/Ci0tCXJtICoubwotLQot LXNoYXJlZCA6ICR7T0JKU30gCi0tCSR7Q09NUElMRVJ9IC1mUElDIC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCSR7Q09NUElMRVJ9IC1zaGFyZWQgLW8gbGlic29jaV9jb3JlLnNv ICR7T0JKU30gCi0tCXJtICoubwotLQotLXNlc3Npb24ubyA6IHNlc3Npb24uY3BwCi0tCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVtZW50Lm8g OiBzdGF0ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVE RURJUlN9Ci0tCi0tcm93Lm8gOiByb3cuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxB R1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdmFsdWVzLm8gOiB2YWx1ZXMuY3BwCi0tCSR7Q09NUElM RVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0taW50by10eXBlLm8gOiBp bnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJ UlN9Ci0tCi0tdXNlLXR5cGUubyA6IHVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAk e0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQkKLS1ibG9iLm8gOiBibG9iLmNwcAotLQkke0NP TVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLWVycm9yLm8gOiBl cnJvci5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30K LS0KLS1yb3dpZC5vIDogcm93aWQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCi0tcHJvY2VkdXJlLm8gOiBwcm9jZWR1cmUuY3BwCi0tCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcmVmLWNvdW50ZWQt cHJlcGFyZS1pbmZvLm8gOiByZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwCi0tCSR7Q09NUElM RVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcmVmLWNvdW50ZWQtc3Rh dGVtZW50Lm8gOiByZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tb25jZS10ZW1wLXR5cGUubyA6IG9uY2Ut dGVtcC10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVE SVJTfQotLQotLXByZXBhcmUtdGVtcC10eXBlLm8gOiBwcmVwYXJlLXRlbXAtdHlwZS5jcHAKLS0J JHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS10cmFuc2Fj dGlvbi5vIDogdHJhbnNhY3Rpb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCi0tYmFja2VuZC1sb2FkZXIubyA6IGJhY2tlbmQtbG9hZGVyLmNw cAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLWNv bm5lY3Rpb24tcG9vbC5vIDogY29ubmVjdGlvbi1wb29sLmNwcAotLQkke0NPTVBJTEVSfSAtYyAk PyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXNvY2ktc2ltcGxlLm8gOiBzb2NpLXNp bXBsZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30K LS0KLS0KLS1jbGVhbiA6Ci0tCXJtIC1mIGxpYnNvY2lfY29yZS5hIGxpYnNvY2lfY29yZS5zbwot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9NYWtlZmlsZS5pbiBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9jb3JlL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw Ci0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5pbgkyMDEwLTAxLTIz IDE0OjQ0OjUyLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw5OTYgQEAKLSsjIE1ha2VmaWxl LmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBj b25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5 OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAy MDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMu Ci0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29y IGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9u ZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0 Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotKwotKwot K1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStw a2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhl Y2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFU SF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMg LW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxf c2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxM X0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9J TlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxf VU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0r YnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NP TU1PTiA9ICQocGtnaW5jbHVkZV9IRUFERVJTKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAotKwkk KHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJjZXMubWsgXAotKwkkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IHNvY2kvY29yZQotK0FDTE9DQUxfTTQgPSAk KHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNx bC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1 cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09O RklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9 ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kv Y29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxF UyA9Ci0rYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2Rpciki IHwgc2VkICdzfC58LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKLSsgICAg JChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7 IFwKLSsgICAgKikgZj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hv ICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKLSthbV9faW5zdGFsbF9tYXggPSA0MAotK2FtX19u b2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCi0rICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8 IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCi0rYW1fX25vYmFzZV9zdHJpcCA9IFwKLSsg IGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2Rp cnN0cmlwL3x8IgotK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7 IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCi0rICBz ZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkv W14vXSokJCxcMSwnIHwgXAotKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsg ZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAotKyAgICBpZiAoKytuWyQkMl0gPT0g JChhbV9faW5zdGFsbF9tYXgpKSBcCi0rICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5b JCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAotKyAgICBFTkQgeyBmb3IgKGRpciBpbiBm aWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCi0rYW1fX2Jhc2VfbGlzdCA9IFwKLSsgIHNl ZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCi0rICBz ZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCi0rYW1fX2luc3RhbGxkaXJzID0gIiQo REVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKLStMVExJQlJB UklFUyA9ICQobGliX0xUTElCUkFSSUVTKQotK2xpYnNvY2lfY29yZV9sYV9ERVBFTkRFTkNJRVMg PQotK2FtX19vYmplY3RzXzEgPQotK2FtX19vYmplY3RzXzIgPSBsaWJzb2NpX2NvcmVfbGEtYmFj a2VuZC1sb2FkZXIubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbyBsaWJzb2NpX2NvcmVf bGEtY29ubmVjdGlvbi1wb29sLmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLWVycm9yLmxvIGxpYnNv Y2lfY29yZV9sYS1pbnRvLXR5cGUubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5 cGUubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUubG8gXAotKwlsaWJz b2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVk LXByZXBhcmUtaW5mby5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1l bnQubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtcm93LmxvIGxpYnNvY2lfY29yZV9sYS1yb3dpZC5s byBcCi0rCWxpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvIGxpYnNvY2lfY29yZV9sYS1zb2NpLXNp bXBsZS5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG8gbGlic29jaV9jb3JlX2xh LXRyYW5zYWN0aW9uLmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvIGxpYnNvY2lf Y29yZV9sYS12YWx1ZXMubG8KLSthbV9saWJzb2NpX2NvcmVfbGFfT0JKRUNUUyA9ICQoYW1fX29i amVjdHNfMSkgJChhbV9fb2JqZWN0c18yKQotK2xpYnNvY2lfY29yZV9sYV9PQkpFQ1RTID0gJChh bV9saWJzb2NpX2NvcmVfbGFfT0JKRUNUUykKLStsaWJzb2NpX2NvcmVfbGFfTElOSyA9ICQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCi0rCSQoTElCVE9PTEZMQUdTKSAt LW1vZGU9bGluayAkKENYWExEKSBcCi0rCSQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSBcCi0rCSQobGlic29jaV9jb3JlX2xhX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAK LStERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2Np Ci0rZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKLSthbV9f ZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcwotK2FtX19tdiA9IG12IC1mCi0rQ1hYQ09NUElMRSA9 ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0xUQ1hY Q09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9D WFhGTEFHUykgJChDWFhGTEFHUykKLStDWFhMRCA9ICQoQ1hYKQotK0NYWExJTksgPSAkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1t b2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9MREZMQUdT KSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKLSsJJChDUFBGTEFHUykg JChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q0Mg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQo Q0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKLStDQ0xEID0gJChDQykK LStMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQo QU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRACi0rU09VUkNFUyA9ICQobGlic29jaV9j b3JlX2xhX1NPVVJDRVMpCi0rRElTVF9TT1VSQ0VTID0gJChsaWJzb2NpX2NvcmVfbGFfU09VUkNF UykKLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2 aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRh dGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1 cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUg XAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1y ZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2 ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLStI RUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCi0rUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMg PSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsgIGRpc3RjbGVhbi1y ZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStBTV9SRUNVUlNJVkVfVEFSR0VU UyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKLSsJJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKLSsJZGlzdGRp cgotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJE SVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElO Rk9TKSAkKEVYVFJBX0RJU1QpCi0rYW1fX3JlbGF0aXZpemUgPSBcCi0rICBkaXIwPWBwd2RgOyBc Ci0rICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKLSsgIHNlZF9yZXN0PSdz LF5bXi9dKi8qLCwnOyBcCi0rICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAot KyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCi0rICB3aGlsZSB0ZXN0IC1uICIkJGRp cjEiOyBkbyBcCi0rICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJz dCJgOyBcCi0rICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBcCi0rICAgICAgaWYg dGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKLSsgICAgICAgIGRpcjI9YGVjaG8gIiQkZGly MCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAotKyAgICAgICAgZGlyMD1gZWNo byAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCi0rICAgICAgZWxzZSBcCi0r ICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwK LSsgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhlbiBcCi0rICAgICAg ICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgICAg ICAgZWxzZSBcCi0rICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKLSsgICAgICAgIGZpOyBc Ci0rICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAotKyAgICAgIGZpOyBcCi0rICAg IGZpOyBcCi0rICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsg XAotKyAgZG9uZTsgXAotKyAgcmVsZGlyPSIkJGRpcjIiCi0rcGtnaW5jbHVkZWRpciA9ICQoc29j aV9pbmNsdWRlX2RpcikKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0r QVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVB REVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdT ID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElN RV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0r Qk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMg PSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1Rf TVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9P UFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9M SUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhf TElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElC QAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RF TV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RI UkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9U RVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JP T1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0Mg PSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQ UCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQ VU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5J VF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJT SU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENY WERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhf V0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lN VVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04g PSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhU ID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9 IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJ TlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFN ID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAK LStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0g QExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9 IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBM Tl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0r TUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlT UUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01Z U1FMX0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05A Ci0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0r T0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVf T0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBA T1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZF UlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0Ug PSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQ QUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0Vf U1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9W RVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFS QVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JF U1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9T VEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NA Ci0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBA UkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VU X01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklF RCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBA U09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJ RUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAot K1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAK LSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2Rp ckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNk aXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hY ID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2lu Y2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2Rv dEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9f dW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRA Ci0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAK LStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAot K2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRp ciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2Rp ckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlw c19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9 IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hv c3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9 IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNs dWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hA Ci0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGly ID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGly ID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRpciA9IEBtYW5k aXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRp ckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFu c2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAot K3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGly ID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBz eXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3By ZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJA Ci0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWls ZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rY29yZV9oX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5oIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2Jsb2IuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9ibG9iLWV4Y2hhbmdlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9v c3QtZ3JlZ29yaWFuLWRhdGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9i b29zdC1mdXNpb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC1v cHRpb25hbC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LXR1cGxl LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmgg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuaCBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9leGNoYW5nZS10cmFpdHMuaCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvaW50by10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25j ZS10ZW1wLXR5cGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJl LXRlbXAtdHlwZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVy ZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBh cmUtaW5mby5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVk LXN0YXRlbWVudC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5oIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy1leGNoYW5nZS5oIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmggXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvcm93aWQtZXhjaGFuZ2UuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9yb3dzZXQuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9z ZXNzaW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1iYWNrZW5k LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1jb25maWcuaCBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmggXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuaCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvc3RhdGVtZW50LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJh bnNhY3Rpb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWNvbnZl cnNpb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWNvbnZlcnNp b24tdHJhaXRzLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1ob2xk ZXIuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLXB0ci5oIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS5oIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvdmFsdWVzLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVz LWV4Y2hhbmdlLmgKLSsKLStjb3JlX2NjX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvYmxvYi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv Y29ubmVjdGlvbi1wb29sLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9l cnJvci5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNw cCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3Bw IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAgXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNw cCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1l bnQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAgXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9zdGF0ZW1lbnQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Ry YW5zYWN0aW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlw ZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAotKwot K01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStTVUJESVJTID0gLiB0ZXN0Ci0r Ci0rI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fcm93LmNwcCAuX3NvY2kt c2ltcGxlLmNwcCAuX3NvY2ktc2ltcGxlLmggLl92YWx1ZXMtZXhjaGFuZ2UuaAotK0VYVFJBX0RJ U1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKLStsaWJfTFRMSUJSQVJJ RVMgPSBsaWJzb2NpX2NvcmUubGEKLStsaWJzb2NpX2NvcmVfbGFfU09VUkNFUyA9ICQoY29yZV9o X3NvdXJjZXMpICQoY29yZV9jY19zb3VyY2VzKSAKLStsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1Mg PSAKLStsaWJzb2NpX2NvcmVfbGFfTElCQUREID0gCi0rbGlic29jaV9jb3JlX2xhX0xERkxBR1Mg PSBcCi0rCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dS QU1fT1BUSU9OU19MSUIpIFwKLSsJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJT SU9OKQotKwotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV9oX3NvdXJjZXMpCi0rQFNPQ0lf SEVBREVSU19CVVJJRURfRkFMU0VAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKLStA U09DSV9IRUFERVJTX0JVUklFRF9UUlVFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIp L3NvY2kvY29yZQotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSsuU1VGRklY RVM6IC5jcHAgLmxvIC5vIC5vYmoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2Rpcikv TWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJj ZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAg Y2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAg ICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVs c2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRv bmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgc29j aS9jb3JlL01ha2VmaWxlJzsgXAotKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAg JChBVVRPTUFLRSkgLS1nbnUgc29jaS9jb3JlL01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmls ZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZp Zy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAg ICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNI RUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7 IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMg JChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRv cF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05G SUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6 ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9j YWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoCi0rJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKLStpbnN0YWxsLWxpYkxU TElCUkFSSUVTOiAkKGxpYl9MVExJQlJBUklFUykKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRl c3QgLXogIiQobGliZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobGliZGlyKSIKLSsJ QGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IHRlc3QgLW4gIiQobGliZGlyKSIgfHwgbGlzdD07 IFwKLSsJbGlzdDI9OyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkcDsg dGhlbiBcCi0rCSAgICBsaXN0Mj0iJCRsaXN0MiAkJHAiOyBcCi0rCSAgZWxzZSA6OyBmaTsgXAot Kwlkb25lOyBcCi0rCXRlc3QgLXogIiQkbGlzdDIiIHx8IHsgXAotKwkgIGVjaG8gIiAkKExJQlRP T0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJ TlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJCRsaXN0MiAnJChERVNURElSKSQobGliZGly KSciOyBcCi0rCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICQkbGlzdDIg IiQoREVTVERJUikkKGxpYmRpcikiOyBcCi0rCX0KLSsKLSt1bmluc3RhbGwtbGliTFRMSUJSQVJJ RVM6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUykn OyB0ZXN0IC1uICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBcCi0rCWZvciBwIGluICQkbGlzdDsgZG8g XAotKwkgICQoYW1fX3N0cmlwX2RpcikgXAotKwkgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAnJChERVNU RElSKSQobGliZGlyKS8kJGYnIjsgXAotKwkgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICIkKERFU1RESVIpJChsaWJk aXIpLyQkZiI7IFwKLSsJZG9uZQotKwotK2NsZWFuLWxpYkxUTElCUkFSSUVTOgotKwktdGVzdCAt eiAiJChsaWJfTFRMSUJSQVJJRVMpIiB8fCBybSAtZiAkKGxpYl9MVExJQlJBUklFUykKLSsJQGxp c3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGRpcj0i YGVjaG8gJCRwIHwgc2VkIC1lICdzfC9bXi9dKiQkfHwnYCI7IFwKLSsJICB0ZXN0ICIkJGRpciIg IT0gIiQkcCIgfHwgZGlyPS47IFwKLSsJICBlY2hvICJybSAtZiBcIiQke2Rpcn0vc29fbG9jYXRp b25zXCIiOyBcCi0rCSAgcm0gLWYgIiQke2Rpcn0vc29fbG9jYXRpb25zIjsgXAotKwlkb25lCi0r bGlic29jaV9jb3JlLmxhOiAkKGxpYnNvY2lfY29yZV9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29y ZV9sYV9ERVBFTkRFTkNJRVMpIAotKwkkKGxpYnNvY2lfY29yZV9sYV9MSU5LKSAtcnBhdGggJChs aWJkaXIpICQobGlic29jaV9jb3JlX2xhX09CSkVDVFMpICQobGlic29jaV9jb3JlX2xhX0xJQkFE RCkgJChMSUJTKQotKwotK21vc3RseWNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLiQoT0JKRVhU KQotKwotK2Rpc3RjbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi50YWIuYwotKwotK0BBTURFUF9U UlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt YmFja2VuZC1sb2FkZXIuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJsb2IuUGxvQGFtX19xdW90 ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGli c29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVF QEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtZXJy b3IuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5QbG9AYW1fX3F1b3RlQAotK0BB TURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2Nv cmVfbGEtb25jZS10ZW1wLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVt cC10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1 b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUuUGxvQGFtX19xdW90ZUAK LStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29j aV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5QbG9AYW1fX3F1b3RlQAotK0BBTURF UF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFt X19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3cuUGxv QGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lkLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVA QGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zZXNz aW9uLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3Rl QC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5QbG9AYW1fX3F1b3RlQAot K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNs dWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5Q bG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xh LXZhbHVlcy5QbG9AYW1fX3F1b3RlQAotKwotKy5jcHAubzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAt byAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRw byAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5jcHAub2JqOgotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBv IC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChh bV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBB TURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJ Uj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9X KSAnJDwnYAotKwotKy5jcHAubG86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01Q SUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikv JCouUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBv YmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09N UElMRSkgLWMgLW8gJEAgJDwKLSsKLStsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG86 ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3Jl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9h ZGVyLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2Fk ZXIuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmFj a2VuZC1sb2FkZXIuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIu UGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVf bGEtYmFja2VuZC1sb2FkZXIubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5j cHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv YmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfY29yZV9sYS1ibG9iLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt YmxvYi5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9ibG9iLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikg JChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1ibG9iLlRwbyAkKERFUERJUikvbGlic29jaV9jb3Jl X2xhLWJsb2IuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9s YS1ibG9iLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp ICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Jsb2IuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcAotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9j b3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rp b24tcG9vbC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rp b24tcG9vbC5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS1jb25uZWN0aW9uLXBvb2wuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtY29ubmVj dGlvbi1wb29sLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwJyBvYmplY3Q9J2xp YnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2Nv cmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1jb25uZWN0 aW9uLXBvb2wubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24t cG9vbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nv bm5lY3Rpb24tcG9vbC5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG86ICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLWVycm9yLmxvIC1NRCAtTVAgLU1GICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtZXJyb3IuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1lcnJvci5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAKLStAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtZXJyb3IuVHBv ICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtZXJyb3IuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNw cCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJB Q0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1lcnJv ci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAKLSsKLStsaWJz b2NpX2NvcmVfbGEtaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5 cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2Np X2NvcmVfbGEtaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWludG8tdHlw ZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUuUGxvCi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2ludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5sbycgbGli dG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGli c29jaV9jb3JlX2xhLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvaW50by10eXBlLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2Nv cmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1w LXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAt dHlwZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcAotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1v bmNlLXRlbXAtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlw ZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29y ZV9sYS1vbmNlLXRlbXAtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhG TEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBl LmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5sbzogJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUu bG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlw ZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcmVw YXJlLXRlbXAtdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xh LXByZXBhcmUtdGVtcC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9w cmVwYXJlLXRlbXAtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1wcm9j ZWR1cmUubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf Y29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1wcm9jZWR1 cmUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUuVHBv IC1jIC1vIGxpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChh bV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLlRwbyAkKERFUERJUikv bGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcCcg b2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBC QUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcHJv Y2VkdXJlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUu Y3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJlZi1j b3VudGVkLXByZXBhcmUtaW5mby5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3Jl X2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXJl Zi1jb3VudGVkLXByZXBhcmUtaW5mby5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYt Y291bnRlZC1wcmVwYXJlLWluZm8uVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNv dW50ZWQtcHJlcGFyZS1pbmZvLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWlu Zm8uY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8u bG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1j IC1vIGxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXBy ZXBhcmUtaW5mby5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50 LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEt cmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2Nv cmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcmVm LWNvdW50ZWQtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9y ZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0 YXRlbWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1l bnQuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAnIG9iamVjdD0nbGli c29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXJl Zi1jb3VudGVkLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv cmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcAotKwotK2xpYnNvY2lfY29y ZV9sYS1yb3cubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAKLStAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29y ZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1yb3cubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3cuVHBvIC1jIC1vIGxpYnNvY2lf Y29yZV9sYS1yb3cubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAKLStA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt cm93LlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvdy5QbG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93 LmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcm93LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBC QUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcm93 LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwCi0rCi0rbGlic29jaV9j b3JlX2xhLXJvd2lkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1yb3dp ZC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lkLlRwbyAtYyAt byBsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3Jvd2lkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvcm93aWQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikv bGlic29jaV9jb3JlX2xhLXJvd2lkLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lk LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXJvd2lk LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBA QU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt YyAtbyBsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3Jvd2lkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvcm93aWQuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG86ICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElC VE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9jb3JlX2xhLXNlc3Npb24uVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1z ZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtc2Vzc2lvbi5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zZXNzaW9uLlBsbwotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9zZXNzaW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5sbycg bGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g bGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9zZXNzaW9uLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5UcG8gLWMgLW8g bGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9zb2NpLXNpbXBsZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFt X19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5UcG8gJChERVBESVIp L2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUu Y3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbycgbGlidG9vbD15ZXMg QEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAot K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3Jl X2xhLXNvY2ktc2ltcGxlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2Np LXNpbXBsZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3NvY2ktc2ltcGxlLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG86ICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG8gLU1EIC1NUCAt TUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lf Y29yZV9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0 YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3N0YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LXN0YXRlbWVudC5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2Np X2NvcmVfbGEtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3BwCi0rCi0rbGlic29j aV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2Fj dGlvbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9j b3JlX2xhLXRyYW5zYWN0aW9uLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24u bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3Bw Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3Jl X2xhLXRyYW5zYWN0aW9uLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9u LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9z cmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xh LXRyYW5zYWN0aW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24ubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwCi0rCi0rbGlic29j aV9jb3JlX2xhLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5j cHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29y ZV9sYS11c2UtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXVz ZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLlRwbyAkKERF UERJUikvbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5j cHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1E RVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEt dXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUu Y3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvdmFsdWVzLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQg bGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9j b3JlX2xhLXZhbHVlcy5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS12YWx1ZXMuVHBvICQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtdmFsdWVzLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwJyBv YmplY3Q9J2xpYnNvY2lfY29yZV9sYS12YWx1ZXMubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2Nv cmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS12YWx1ZXMu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKLSsKLSttb3N0 bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1y bSAtcmYgLmxpYnMgX2xpYnMKLStpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOiAkKHBrZ2luY2x1 ZGVfSEVBREVSUykKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQocGtnaW5jbHVk ZWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgotKwlAbGlz dD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgdGVzdCAtbiAiJChwa2dpbmNsdWRlZGlyKSIgfHwg bGlzdD07IFwKLSsJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAiJCRwIjsg dGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKLSsJICBlY2hvICIkJGQkJHAiOyBc Ci0rCWRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAotKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBc Ci0rCSAgZWNobyAiICQoSU5TVEFMTF9IRUFERVIpICQkZmlsZXMgJyQoREVTVERJUikkKHBrZ2lu Y2x1ZGVkaXIpJyI7IFwKLSsJICAkKElOU1RBTExfSEVBREVSKSAkJGZpbGVzICIkKERFU1RESVIp JChwa2dpbmNsdWRlZGlyKSIgfHwgZXhpdCAkJD87IFwKLSsJZG9uZQotKwotK3VuaW5zdGFsbC1w a2dpbmNsdWRlSEVBREVSUzoKLSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQocGtn aW5jbHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBc Ci0rCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRwOyBkb25lIHwgc2VkIC1lICdz fF4uKi98fCdgOyBcCi0rCXRlc3QgLW4gIiQkZmlsZXMiIHx8IGV4aXQgMDsgXAotKwllY2hvICIg KCBjZCAnJChERVNURElSKSQocGtnaW5jbHVkZWRpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsg XAotKwljZCAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiICYmIHJtIC1mICQkZmlsZXMKLSsK LSsjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVu dDsgeW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcg dGhyb3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2Un IHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKLSsjICgxKSBpZiB0aGUg dmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycK LSsjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVk IHdoZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJl ZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCi0rJChSRUNVUlNJVkVfVEFSR0VU Uyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxB R1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJ ICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAot Kwlkb3Rfc2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9g OyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkg IGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVzOyBcCi0rCSAgICBsb2NhbF90 YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIk JHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNv bTsgXAotKwlkb25lOyBcCi0rCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0r CSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJ Zmk7IHRlc3QgLXogIiQkZmFpbCIKLSsKLSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJ QGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8g XAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsq KSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9z ZWVuPW5vOyBcCi0rCWNhc2UgIiRAIiBpbiBcCi0rCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVy LWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VC RElSUyknIDs7IFwKLSsJZXNhYzsgXAotKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBk byBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAg cmV2PSIkJHN1YmRpciAkJHJldiI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRy ZXYgLiI7IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlm b3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQk c3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBs b2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFy Z2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQk ZmFpbGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKLSt0YWdzLXJlY3Vyc2l2ZToK LSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVz dCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIHRhZ3MpOyBcCi0rCWRvbmUKLStjdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQo U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGly IiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBj dGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAk KFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkg PSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsK LStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBF TkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwlzZXQgeDsgXAotKwloZXJl PWBwd2RgOyBcCi0rCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rl di9udWxsIDI+JjE7IHRoZW4gXAotKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsg XAotKwkgIGVtcHR5X2ZpeD0uOyBcCi0rCWVsc2UgXAotKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5j bHVkZTsgXAotKwkgIGVtcHR5X2ZpeD07IFwKLSsJZmk7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsg dGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKLSsJICAg ICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAot KwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJ U1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0r CSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIp LyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsg bm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBp biBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXNoaWZ0OyBcCi0rCWlmIHRlc3QgLXogIiQo RVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1 bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0 aGVuIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVU QUdTX0FSR1MpIFwKLSsJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKLSsJICBlbHNlIFwKLSsJICAg ICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwK LSsJICAgICAgJCR1bmlxdWU7IFwKLSsJICBmaTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NU QUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5E RU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJbGlzdD0nJChTT1VSQ0VTKSAk KEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4g JCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNl IGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBm aWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVt cHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQo Q1RBR1NfQVJHUykkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChB TV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHVuaXF1ZQotKwotK0dUQUdT OgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYmICQo YW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIk JGhlcmUiCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFH UyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJz dHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwK LSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRc XCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxl cz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQg LWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJz dHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwK LSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2Vk ICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQg LXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJ ICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0k KHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAg IGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBp ZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAotKwkgICAgICBmaW5kICIkKGRp c3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30g XDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYg dGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLWZwUiAkKHNyY2Rpcikv JCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgICAgICBmaW5kICIkKGRp c3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30g XDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikk JGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIp LyQkZmlsZSIgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUi IFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJQGxpc3Q9JyQoRElT VF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRz dWJkaXIiIFwKLSsJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJ ICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJQGxpc3Q9JyQoRElTVF9TVUJE SVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRp cikvJCRzdWJkaXIiOyBcCi0rCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAotKwkgICAgbmV3X2Rp c3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3Rk aXIpIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld190b3BfZGlzdGRp cj0kJHJlbGRpcjsgXAotKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3 X2Rpc3RkaXIiIFxcIjsgXAotKwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBh bV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsgXAot KwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCi0rCSAgICAgICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIFwKLSsJICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwKLSsJ ICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCi0rCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9 OiBcCi0rCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCi0rCQlhbV9fc2tpcF9tb2RlX2ZpeD06 IFwKLSsJICAgICAgICBkaXN0ZGlyKSBcCi0rCSAgICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBc Ci0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQotK2Fs bC1hbTogTWFrZWZpbGUgJChMVExJQlJBUklFUykgJChIRUFERVJTKQotK2luc3RhbGxkaXJzOiBp bnN0YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLSsJZm9yIGRpciBpbiAiJChE RVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIjsgZG8gXAotKwkg IHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwKLSsJZG9uZQotK2luc3Rh bGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJz aXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1 bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFs bGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtF KSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JB TSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIg SU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJ ICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0 YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3Rj bGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAt ZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3Qg LXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5f VlBBVEhfRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhp cyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJp dCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxk LiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5U QUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTog Y2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIFwKLSsJbW9z dGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1y ZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFt IGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MK LSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1yZWN1 cnNpdmUKLSsKLStodG1sLWFtOgotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1h bToKLSsKLStpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKLSsKLStp bnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1kdmktYW06Ci0r Ci0raW5zdGFsbC1leGVjLWFtOiBpbnN0YWxsLWxpYkxUTElCUkFSSUVTCi0rCi0raW5zdGFsbC1o dG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1odG1sLWFtOgotKwotK2lu c3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaW5mby1hbToK LSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZl Ci0rCi0raW5zdGFsbC1wZGYtYW06Ci0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNp dmUKLSsKLStpbnN0YWxsLXBzLWFtOgotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFp bmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLXJmIC4vJChERVBE SVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1h bSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4t cmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5 Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1 cnNpdmUKLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwot K3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1wa2dpbmNs dWRlSEVBREVSUwotKwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VS U0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWFtIGluc3RhbGwtc3Ry aXAgdGFncy1yZWN1cnNpdmUKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMp ICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBjaGVjayBj aGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKLSsJY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xl YW4tbGlidG9vbCBjdGFncyBjdGFncy1yZWN1cnNpdmUgXAotKwlkaXN0Y2xlYW4gZGlzdGNsZWFu LWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xl YW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCi0rCWh0bWwtYW0gaW5mbyBpbmZvLWFt IGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAotKwlpbnN0YWxsLWRhdGEtYW0gaW5z dGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKLSsJaW5zdGFsbC1leGVjLWFt IGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKLSsJaW5zdGFsbC1p bmZvLWFtIGluc3RhbGwtbGliTFRMSUJSQVJJRVMgaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAot KwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTIGluc3RhbGwtcHMgXAot KwlpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1h bSBcCi0rCWluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAotKwlt YWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBc Ci0rCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBz IHBzLWFtIFwKLSsJdGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIFwK LSsJdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwot KwotK0BTRVRfTUFLRUAKLSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1h a2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxp bWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAw MDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvc29jaS1wbGF0Zm9y bS5oCTIwMTAtMDEtMjMgMTM6MjU6NTcuMDAwMDAwMDAwICswMTAwCi1AQCAtMTIsOCArMTIsMTAg QEAKLSAjaWZkZWYgX01TQ19WRVIKLSAKLSAvLyBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHZzbnBy aW50ZiB2YXJpYW50cy4KLS0jZGVmaW5lIEhBVkVfVlNOUFJJTlRGIDEKLS0jZGVmaW5lIHZzbnBy aW50ZiBfdnNucHJpbnRmCi0rI2lmIF9NU0NfVkVSIDwgMTUwMAotKyMgZGVmaW5lIEhBVkVfVlNO UFJJTlRGIDEKLSsjIGRlZmluZSB2c25wcmludGYgX3ZzbnByaW50ZgotKyNlbmRpZgotIAotIC8v IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc25wcmludGYgdmFyaWFudHMuCi0gI2RlZmluZSBIQVZF X1NOUFJJTlRGIDEKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvc29jaS1z aW1wbGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwCi0t LS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcAkyMDEwLTAxLTIz IDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Nv cmUvc29jaS1zaW1wbGUuY3BwCTIwMTAtMDEtMjMgMTM6MjU6NTcuMDAwMDAwMDAwICswMTAwCi1A QCAtNDczLDcgKzQ3Myw3IEBACi0gLy8gaGVscGVyIGZvciBmb3JtYXR0aW5nIGRhdGUgdmFsdWVz Ci0gY2hhciBjb25zdCAqIGZvcm1hdF9kYXRlKHN0YXRlbWVudF93cmFwcGVyICYgd3JhcHBlciwg c3RkOjp0bSBjb25zdCAmIGQpCi0gewotLSAgICBzcHJpbnRmKHdyYXBwZXIuZGF0ZV9mb3JtYXR0 ZWQsICIlZCAlZCAlZCAlZCAlZCAlZCIsCi0rICAgIHN0ZDo6c3ByaW50Zih3cmFwcGVyLmRhdGVf Zm9ybWF0dGVkLCAiJWQgJWQgJWQgJWQgJWQgJWQiLAotICAgICAgICAgZC50bV95ZWFyICsgMTkw MCwgZC50bV9tb24gKyAxLCBkLnRtX21kYXksCi0gICAgICAgICBkLnRtX2hvdXIsIGQudG1fbWlu LCBkLnRtX3NlYyk7Ci0gCi1AQCAtNDkwLDcgKzQ5MCw3IEBACi0gICAgIGludCBob3VyOwotICAg ICBpbnQgbWludXRlOwotICAgICBpbnQgc2Vjb25kOwotLSAgICBpbnQgY29uc3QgY29udmVydGVk ID0gc3NjYW5mKHZhbCwgIiVkICVkICVkICVkICVkICVkIiwKLSsgICAgaW50IGNvbnN0IGNvbnZl cnRlZCA9IHN0ZDo6c3NjYW5mKHZhbCwgIiVkICVkICVkICVkICVkICVkIiwKLSAgICAgICAgICZ5 ZWFyLCAmbW9udGgsICZkYXksICZob3VyLCAmbWludXRlLCAmc2Vjb25kKTsKLSAgICAgaWYgKGNv bnZlcnRlZCAhPSA2KQotICAgICB7Ci1AQCAtMTUxMSw3ICsxNTExLDcgQEAKLSAKLSAgICAgLy8g Zm9ybWF0IGlzOiAiWVlZWSBNTSBERCBoaCBtbSBzcyIKLSAgICAgc3RkOjp0bSBjb25zdCAmIGQg PSB3cmFwcGVyLT51c2VfZGF0ZXNbbmFtZV07Ci0tICAgIHNwcmludGYod3JhcHBlci0+ZGF0ZV9m b3JtYXR0ZWQsICIlZCAlZCAlZCAlZCAlZCAlZCIsCi0rICAgIHN0ZDo6c3ByaW50Zih3cmFwcGVy LT5kYXRlX2Zvcm1hdHRlZCwgIiVkICVkICVkICVkICVkICVkIiwKLSAgICAgICAgIGQudG1feWVh ciArIDE5MDAsIGQudG1fbW9uICsgMSwgZC50bV9tZGF5LAotICAgICAgICAgZC50bV9ob3VyLCBk LnRtX21pbiwgZC50bV9zZWMpOwotIAotQEAgLTE1MjgsMTAgKzE1MjgsMTAgQEAKLSAKLSAgICAg ICAgIC8vIGJpbmQgYWxsIGludG8gZWxlbWVudHMKLSAKLS0gICAgICAgIHNpemVfdCBjb25zdCBp bnRvX2VsZW1lbnRzID0gd3JhcHBlci0+aW50b190eXBlcy5zaXplKCk7Ci0rICAgICAgICBpbnQg Y29uc3QgaW50b19lbGVtZW50cyA9IHN0YXRpY19jYXN0PGludD4od3JhcHBlci0+aW50b190eXBl cy5zaXplKCkpOwotICAgICAgICAgaWYgKHdyYXBwZXItPmludG9fa2luZCA9PSBzdGF0ZW1lbnRf d3JhcHBlcjo6c2luZ2xlKQotICAgICAgICAgewotLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGkg PSAwOyBpICE9IGludG9fZWxlbWVudHM7ICsraSkKLSsgICAgICAgICAgICBmb3IgKGludCBpID0g MDsgaSAhPSBpbnRvX2VsZW1lbnRzOyArK2kpCi0gICAgICAgICAgICAgewotICAgICAgICAgICAg ICAgICBzd2l0Y2ggKHdyYXBwZXItPmludG9fdHlwZXNbaV0pCi0gICAgICAgICAgICAgICAgIHsK LUBAIC0xNTYzLDggKzE1NjMsNyBAQAotICAgICAgICAgZWxzZQotICAgICAgICAgewotICAgICAg ICAgICAgIC8vIHZlY3RvciBlbGVtZW50cwotLQotLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGkg PSAwOyBpICE9IGludG9fZWxlbWVudHM7ICsraSkKLSsgICAgICAgICAgICBmb3IgKGludCBpID0g MDsgaSAhPSBpbnRvX2VsZW1lbnRzOyArK2kpCi0gICAgICAgICAgICAgewotICAgICAgICAgICAg ICAgICBzd2l0Y2ggKHdyYXBwZXItPmludG9fdHlwZXNbaV0pCi0gICAgICAgICAgICAgICAgIHsK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvc291cmNlcy5tayBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9jb3JlL3NvdXJjZXMubWsKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2NvcmUvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5 OjM3OjA1LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw1OCBAQAotK2NvcmVfaF9zb3VyY2Vz ID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuaCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmggXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi1leGNoYW5nZS5oIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2Jvb3N0LWdyZWdvcmlhbi1kYXRlLmggXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvYm9vc3QtZnVzaW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvYm9vc3Qtb3B0aW9uYWwuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9ib29zdC10dXBsZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2Nvbm5lY3Rpb24tcG9vbC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vy cm9yLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXhjaGFuZ2UtdHJhaXRz LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by5oIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5oIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9wcm9jZWR1cmUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9yb3cuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3ct ZXhjaGFuZ2UuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5oIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLWV4Y2hhbmdlLmggXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93c2V0LmggXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3NvY2ktYmFja2VuZC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3NvY2ktY29uZmlnLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1w bGF0Zm9ybS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxl LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS5oIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5oIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvdHlwZS1jb252ZXJzaW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvdHlwZS1jb252ZXJzaW9uLXRyYWl0cy5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3R5cGUtaG9sZGVyLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvdHlwZS1wdHIuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UuaCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5oIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3ZhbHVlcy1leGNoYW5nZS5oCi0rY29yZV9jY19zb3VyY2VzID0gXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL2ludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25j ZS10ZW1wLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBh cmUtdGVtcC10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9j ZWR1cmUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVk LXByZXBhcmUtaW5mby5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVm LWNvdW50ZWQtc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9yb3cuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCBcCi0rICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAgXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvdXNlLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3ZhbHVlcy5jcHAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9j b21tb24tdGVzdHMuaCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRl c3RzLmgKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMu aAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAkyMDA5LTA1LTA2IDAwOjAyOjM2LjAw MDAwMDAwMCArMDIwMAotQEAgLTgsMTYgKzgsMzAgQEAKLSAjaWZuZGVmIFNPQ0lfQ09NTU9OX1RF U1RTX0hfSU5DTFVERUQKLSAjZGVmaW5lIFNPQ0lfQ09NTU9OX1RFU1RTX0hfSU5DTFVERUQKLSAK LS0jaW5jbHVkZSAic29jaS5oIgotLSNpbmNsdWRlICJzb2NpLWNvbmZpZy5oIgotKy8vCi0rI2lm IGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29y ZS9zb2NpLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1jb25maWcuaD4KLSsj ICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ib29zdC1vcHRpb25hbC5oPgotKyMgICAgICAgaW5j bHVkZSA8c29jaS9jb3JlL2Jvb3N0LXR1cGxlLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2Nv cmUvYm9vc3QtZ3JlZ29yaWFuLWRhdGUuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS5oPgot KyMgICAgICAgaW5jbHVkZSA8c29jaS1jb25maWcuaD4KLSsjICAgICAgIGluY2x1ZGUgPGJvb3N0 LW9wdGlvbmFsLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxib29zdC10dXBsZS5oPgotKyMgICAgICAg aW5jbHVkZSA8Ym9vc3QtZ3JlZ29yaWFuLWRhdGUuaD4KLSsjZW5kaWYKLSsvLwotIAotIC8vIGV4 cGxpY2l0bHkgcHVsbCBjb252ZXJzaW9ucyBmb3IgQm9vc3QncyBvcHRpb25hbCwgdHVwbGUgYW5k IGZ1c2lvbjoKLSAjaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+Ci0tI2luY2x1ZGUgPGJvb3N0 LW9wdGlvbmFsLmg+Ci0tI2luY2x1ZGUgPGJvb3N0LXR1cGxlLmg+Ci0tI2luY2x1ZGUgPGJvb3N0 LWdyZWdvcmlhbi1kYXRlLmg+Ci0gI2lmIGRlZmluZWQoQk9PU1RfVkVSU0lPTikgJiYgQk9PU1Rf VkVSU0lPTiA+PSAxMDM1MDAKLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyNp bmNsdWRlIDxzb2NpL2NvcmUvYm9vc3QtZnVzaW9uLmg+Ci0rI2Vsc2UKLSAjaW5jbHVkZSA8Ym9v c3QtZnVzaW9uLmg+Ci0rI2VuZGlmCi0gI2VuZGlmIC8vIEJPT1NUX1ZFUlNJT04KLSAKLSAjaW5j bHVkZSA8YWxnb3JpdGhtPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90 ZXN0L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9NYWtlZmls ZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmFtCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmFtCTIwMDktMDUtMDYgMDA6Mjk6MDYuMDAwMDAwMDAw ICswMjAwCi1AQCAtMCwwICsxLDI2IEBACi0rIyMgY29yZSBzdWItZGlyZWN0b3J5Ci0raW5jbHVk ZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJj ZXMubWsKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rRVhUUkFf RElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0KLSsKLStFWFRSQV9ESVNUID0gJChFWFRSQV9E SVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi0rCi0rbm9pbnN0X0xUTElCUkFSSUVTPSBsaWJz b2NpX2NvcmVfdGVzdC5sYQotKwotK2xpYnNvY2lfY29yZV90ZXN0X2xhX1NPVVJDRVM9ICQoY29y ZV90ZXN0X2hfc291cmNlcykKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9DWFhGTEFHUyA9Ci0rbGli c29jaV9jb3JlX3Rlc3RfbGFfTElCQUREID0KLSsjbGlic29jaV9jb3JlX3Rlc3RfbGFfTERGTEFH UyA9IC12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLStsaWJzb2NpX2Nv cmVfdGVzdF9sYV9MREZMQUdTID0KLSsKLStwa2dpbmNsdWRlX0hFQURFUlMgPSAkKGNvcmVfdGVz dF9oX3NvdXJjZXMpCi0raWYgU09DSV9IRUFERVJTX0JVUklFRAotK3NvY2lfaW5jbHVkZV9kaXIg PSAkKGluY2x1ZGVkaXIpL3NvY2kvY29yZS90ZXN0Ci0rZWxzZQotK3NvY2lfaW5jbHVkZV9kaXIg PSAkKGluY2x1ZGVkaXIpCi0rZW5kaWYKLStwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVf ZGlyKQotKwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L01ha2Vm aWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5pbgotLS0t IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmluCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29y ZS90ZXN0L01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTIuMDAwMDAwMDAwICswMTAwCi1A QCAtMCwwICsxLDU2NCBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEu MTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHly aWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwg MjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJl ZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1p dGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Ig d2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZl ZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0 ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVS UE9TRS4KLSsKLStAU0VUX01BS0VACi0rCi0rCi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFk aXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FH RUAKLStwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBD RFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFs bF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0g PSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1j Ci0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dy YW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6 Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFM TCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hv c3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChwa2dpbmNsdWRlX0hFQURFUlMp ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCi0rCSQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHNyY2Rp cikvc291cmNlcy5tayBcCi0rCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGly ID0gc29jaS9jb3JlL3Rlc3QKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00 Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9z dGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRv cHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0 fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9k ZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwK LSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09O RklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFO X0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQotK0xUTElCUkFSSUVTID0gJChu b2luc3RfTFRMSUJSQVJJRVMpCi0rbGlic29jaV9jb3JlX3Rlc3RfbGFfREVQRU5ERU5DSUVTID0K LSthbV9fb2JqZWN0c18xID0KLSthbV9saWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RTID0gJChh bV9fb2JqZWN0c18xKQotK2xpYnNvY2lfY29yZV90ZXN0X2xhX09CSkVDVFMgPSAkKGFtX2xpYnNv Y2lfY29yZV90ZXN0X2xhX09CSkVDVFMpCi0rbGlic29jaV9jb3JlX3Rlc3RfbGFfTElOSyA9ICQo TElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwKLSsJJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCi0rCSQobGlic29j aV9jb3JlX3Rlc3RfbGFfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAotK0RFRkFVTFRfSU5DTFVE RVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKLStDT01QSUxFID0gJChD QykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp IFwKLSsJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0xUQ09NUElMRSA9ICQo TElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0r CS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFH UykKLStDQ0xEID0gJChDQykKLStMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NG TEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRACi0rU09V UkNFUyA9ICQobGlic29jaV9jb3JlX3Rlc3RfbGFfU09VUkNFUykKLStESVNUX1NPVVJDRVMgPSAk KGxpYnNvY2lfY29yZV90ZXN0X2xhX1NPVVJDRVMpCi0rYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNy Y2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7Ci0rYW1fX3ZwYXRo X2FkaiA9IGNhc2UgJCRwIGluIFwKLSsgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBz ZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKLSsgICAgKikgZj0kJHA7OyBcCi0rICBlc2Fj OwotK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKLSth bV9faW5zdGFsbF9tYXggPSA0MAotK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCi0rICBzcmNk aXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydg Ci0rYW1fX25vYmFzZV9zdHJpcCA9IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRw IjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8IgotK2FtX19ub2Jhc2VfbGlzdCA9 ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNo byAiJCRwICQkcCI7IGRvbmUgfCBcCi0rICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8g LipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAotKyAgJChBV0spICdC RUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQk MTsgXAotKyAgICBpZiAoKytuWyQkMl0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSBcCi0rICAgICAg eyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0g XAotKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0n Ci0rYW1fX2Jhc2VfbGlzdCA9IFwKLSsgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQk IU47JCQhTjtzL1xuLyAvZycgfCBcCi0rICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8g L2cnCi0rYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgotK0hF QURFUlMgPSAkKHBrZ2luY2x1ZGVfSEVBREVSUykKLStFVEFHUyA9IGV0YWdzCi0rQ1RBR1MgPSBj dGFncwotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElO Rk9TKSAkKEVYVFJBX0RJU1QpCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikK LStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVU T0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtF ID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFH U0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1Rf RklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1T X0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AK LStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIg PSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBC T09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlU SE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NF UklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05B TFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1Rf U1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9P U1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19M SUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFU SU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBN T0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQ RkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0r Q1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVO SVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBD WFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hY RkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERF RlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklO ID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VD SE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStG R1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJB UllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RB TExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJP R1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQ X1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1Mg PSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRP T0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JK UyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJ Ul9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ19MSUIgPSBATVlT UUxfQ19MSUJACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xJQlMgPSBATVlT UUxfTElCU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0r Tk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVY VEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBP UkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZM QUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wg PSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQ QUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBA UEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tB R0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tB R0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0g QFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQ T1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAot K1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9W RVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9S RUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01B S0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURF UlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFE RVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NU R1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5E ID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIg PSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1 aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9z cmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAK LSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2lu Y2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUg PSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3Vu dGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMg PSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBi dWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1 aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRp ckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29r ID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19v a0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0 ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3Rf Y3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAK LStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9k aXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBA bGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJA Ci0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVk aXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9 IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBA cGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBw cm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2Jp bmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRl ZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3Rh cmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVp bGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9 IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9z cmNkaXIpCi0rY29yZV90ZXN0X2hfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Rl c3QvY29tbW9uLXRlc3RzLmgKLStjb3JlX3Rlc3RfY2Nfc291cmNlcyA9IAotK01BSU5UQUlORVJD TEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJ VFkgPSAKLStFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkp Ci0rbm9pbnN0X0xUTElCUkFSSUVTID0gbGlic29jaV9jb3JlX3Rlc3QubGEKLStsaWJzb2NpX2Nv cmVfdGVzdF9sYV9TT1VSQ0VTID0gJChjb3JlX3Rlc3RfaF9zb3VyY2VzKQotK2xpYnNvY2lfY29y ZV90ZXN0X2xhX0NYWEZMQUdTID0gCi0rbGlic29jaV9jb3JlX3Rlc3RfbGFfTElCQUREID0gCi0r I2xpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxBR1MgPSAtdmVyc2lvbi1pbmZvICQoR0VORVJJQ19M SUJSQVJZX1ZFUlNJT04pCi0rbGlic29jaV9jb3JlX3Rlc3RfbGFfTERGTEFHUyA9IAotK3BrZ2lu Y2x1ZGVfSEVBREVSUyA9ICQoY29yZV90ZXN0X2hfc291cmNlcykKLStAU09DSV9IRUFERVJTX0JV UklFRF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK0BTT0NJX0hFQURF UlNfQlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9jb3Jl L3Rlc3QKLSthbGw6IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUu aW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24g JChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGlu ICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAq JCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsg dGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJ ICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRP TUFLRSkgLS1nbnUgc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUnOyBcCi0rCSQoYW1fX2NkKSAkKHRv cF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2NvcmUvdGVzdC9NYWtl ZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxl LmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkg ICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8k QCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXli ZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9w X3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwot KyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQo QUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoYW1fX2FjbG9jYWxf bTRfZGVwcyk6Ci0rCi0rY2xlYW4tbm9pbnN0TFRMSUJSQVJJRVM6Ci0rCS10ZXN0IC16ICIkKG5v aW5zdF9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobm9pbnN0X0xUTElCUkFSSUVTKQotKwlAbGlz dD0nJChub2luc3RfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZGly PSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAotKwkgIHRlc3QgIiQkZGly IiAhPSAiJCRwIiB8fCBkaXI9LjsgXAotKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2Nh dGlvbnNcIiI7IFwKLSsJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCi0rCWRvbmUK LStsaWJzb2NpX2NvcmVfdGVzdC5sYTogJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RTKSAk KGxpYnNvY2lfY29yZV90ZXN0X2xhX0RFUEVOREVOQ0lFUykgCi0rCSQobGlic29jaV9jb3JlX3Rl c3RfbGFfTElOSykgICQobGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNUUykgJChsaWJzb2NpX2Nv cmVfdGVzdF9sYV9MSUJBREQpICQoTElCUykKLSsKLSttb3N0bHljbGVhbi1jb21waWxlOgotKwkt cm0gLWYgKi4kKE9CSkVYVCkKLSsKLStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFi LmMKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxp YnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLStpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJT OiAkKHBrZ2luY2x1ZGVfSEVBREVSUykKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXog IiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVk aXIpIgotKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgdGVzdCAtbiAiJChwa2dpbmNs dWRlZGlyKSIgfHwgbGlzdD07IFwKLSsJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVz dCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKLSsJICBlY2hv ICIkJGQkJHAiOyBcCi0rCWRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAotKwl3aGlsZSByZWFk IGZpbGVzOyBkbyBcCi0rCSAgZWNobyAiICQoSU5TVEFMTF9IRUFERVIpICQkZmlsZXMgJyQoREVT VERJUikkKHBrZ2luY2x1ZGVkaXIpJyI7IFwKLSsJICAkKElOU1RBTExfSEVBREVSKSAkJGZpbGVz ICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIgfHwgZXhpdCAkJD87IFwKLSsJZG9uZQotKwot K3VuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzoKLSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJ QGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRpciki IHx8IGxpc3Q9OyBcCi0rCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRwOyBkb25l IHwgc2VkIC1lICdzfF4uKi98fCdgOyBcCi0rCXRlc3QgLW4gIiQkZmlsZXMiIHx8IGV4aXQgMDsg XAotKwllY2hvICIgKCBjZCAnJChERVNURElSKSQocGtnaW5jbHVkZWRpciknICYmIHJtIC1mIiAk JGZpbGVzICIpIjsgXAotKwljZCAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiICYmIHJtIC1m ICQkZmlsZXMKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJ TEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMp JzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAi JCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAg ZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBc Ci0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7 IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzog ICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdT X0ZJTEVTKSAkKExJU1ApCi0rCXNldCB4OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1g Zm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8g JCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQo QVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsg aWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXNo aWZ0OyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsg ZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAot KwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFH UykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAgIiQkQCIgJCR1bmlx dWU7IFwKLSsJICBlbHNlIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFH U0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAgJCR1bmlxdWU7IFwKLSsJICBmaTsgXAot KwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRB R1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1g Zm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8g JCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQo QVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsg aWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRl c3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NG TEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHVuaXF1ZQot KwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAot KwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdT X0FSR1MpICIkJGhlcmUiCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdU QUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0r CUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxc Ji9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdz L1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAg ZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwK LSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0 b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2Zp bGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0r CQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJ CSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7 IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47 IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVu IFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBc Ci0rCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAotKwkgICAgICBm aW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2Qg dStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8k JGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLWZwUiAk KHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgICAgICBm aW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2Qg dStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQo ZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICIk KGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGly KS8kJGZpbGUiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVj ay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLWFtCi0rYWxsLWFtOiBNYWtlZmlsZSAkKExUTElC UkFSSUVTKSAkKEhFQURFUlMpCi0raW5zdGFsbGRpcnM6Ci0rCWZvciBkaXIgaW4gIiQoREVTVERJ UikkKHBrZ2luY2x1ZGVkaXIpIjsgZG8gXAotKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElS X1ApICIkJGRpciI7IFwKLSsJZG9uZQotK2luc3RhbGw6IGluc3RhbGwtYW0KLStpbnN0YWxsLWV4 ZWM6IGluc3RhbGwtZXhlYy1hbQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCi0rdW5p bnN0YWxsOiB1bmluc3RhbGwtYW0KLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0 YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBc Ci0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RB TExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBl Y2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAot K21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4t Z2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChD T05GSUdfQ0xFQU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIk KENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRI X0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29t bWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVs ZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0r CS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVS Q0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tYW0KLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJp YyBjbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdExUTElCUkFSSUVTIFwKLSsJbW9zdGx5Y2xlYW4t YW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0 Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwK LSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1hbQotKwotK2R2aS1hbToKLSsKLStodG1s OiBodG1sLWFtCi0rCi0raHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLWFtCi0rCi0raW5mby1hbToK LSsKLStpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKLSsKLStpbnN0 YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KLSsKLStpbnN0YWxsLWR2aS1hbToKLSsKLStpbnN0YWxs LWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KLSsKLStpbnN0YWxs LWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KLSsKLStpbnN0YWxs LWluZm8tYW06Ci0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRm LWFtCi0rCi0raW5zdGFsbC1wZGYtYW06Ci0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQot KwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXIt Y2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5l ci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21v c3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVh bi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sCi0r Ci0rcGRmOiBwZGYtYW0KLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLWFtCi0rCi0rcHMtYW06Ci0r Ci0rdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKLSsKLSsuTUFLRTog aW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxs LWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAotKwljbGVhbi1saWJ0b29s IGNsZWFuLW5vaW5zdExUTElCUkFSSUVTIGN0YWdzIGRpc3RjbGVhbiBcCi0rCWRpc3RjbGVhbi1j b21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKLSsJZGlzdGNsZWFu LXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAotKwlp bnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2 aSBcCi0rCWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFs bC1odG1sIFwKLSsJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0g aW5zdGFsbC1tYW4gXAotKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBrZ2lu Y2x1ZGVIRUFERVJTIFwKLSsJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAg aW5zdGFsbGNoZWNrIFwKLSsJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXIt Y2xlYW4gXAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xl YW4tY29tcGlsZSBcCi0rCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBw ZGYgcGRmLWFtIHBzIHBzLWFtIFwKLSsJdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIHVuaW5z dGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotK0BTRVRfTUFLRUAKLSsKLSsjIFRlbGwgdmVyc2lv bnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgot KyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4 Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Nv cmUvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9zb3Vy Y2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3Qvc291cmNlcy5tawkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAw ICswMjAwCi1AQCAtMCwwICsxLDIgQEAKLStjb3JlX3Rlc3RfaF9zb3VyY2VzID0gJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAotK2NvcmVfdGVzdF9jY19zb3VyY2Vz ID0KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL01ha2VmaWxlLmFtIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9N YWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDcuMDAwMDAw MDAwICswMjAwCi1AQCAtMCwwICsxLDkgQEAKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZp bGUuY29tbW9uCi0rCi0rIyMgU291cmNlIGRpcmVjdG9yeQotKwotK01BSU5UQUlORVJDTEVBTkZJ TEVTID0gTWFrZWZpbGUuaW4KLSsKLStTVUJESVJTID0gY29yZSBiYWNrZW5kcwotKwotK0VYVFJB X0RJU1QgPQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvTWFrZWZpbGUuaW4gc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZpbGUuaW4JMjAxMC0wMS0yMyAxNDo0NDo1MS4w MDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsNjM1IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0 ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lu cHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAx OTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywg MjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAotKyMgSW5jLgotKyMgVGhpcyBN YWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u Ci0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRl IGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBu b3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQot KyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLStWUEFUSCA9IEBzcmNkaXJA Ci0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQo aW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAot K3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFU SD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3No X0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQo aW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJ TlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQ T1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0g OgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90 cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChz cmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJChzcmNkaXIpL2NvbmZpZy5oLmluICQodG9wX3NyY2Rp cikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGlyID0gc29jaQotK0FDTE9DQUxfTTQgPSAkKHRvcF9z cmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3Bw dW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1 Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMK LSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJF X0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5z dGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklM RVMgPQotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0rU09VUkNFUyA9Ci0rRElTVF9TT1VS Q0VTID0KLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZl IGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxs LWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1y ZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNp dmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFs bC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vy c2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUK LStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1y ZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vy c2l2ZQotK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChSRUNVUlNJVkVfVEFSR0VUUzotcmVjdXJz aXZlPSkgXAotKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRB R1MgY3RhZ3MgQ1RBR1MgXAotKwlkaXN0ZGlyCi0rRVRBR1MgPSBldGFncwotK0NUQUdTID0gY3Rh Z3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCi0rRElTVEZJTEVTID0gJChESVNUX0NPTU1P TikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLSthbV9fcmVsYXRp dml6ZSA9IFwKLSsgIGRpcjA9YHB3ZGA7IFwKLSsgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4q JCQsXDEsJzsgXAotKyAgc2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7IFwKLSsgIHNlZF9sYXN0PSdz LF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCi0rICBzZWRfYnV0bGFzdD0ncywvKlteL10qJCQsLCc7 IFwKLSsgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwKLSsgICAgZmlyc3Q9YGVjaG8gIiQk ZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKLSsgICAgaWYgdGVzdCAiJCRmaXJzdCIg IT0gIi4iOyB0aGVuIFwKLSsgICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRoZW4gXAot KyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRp cjIiOyBcCi0rICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9idXRs YXN0ImA7IFwKLSsgICAgICBlbHNlIFwKLSsgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8 IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAgICAgICAgaWYgdGVzdCAiJCRmaXJzdDIiID0g IiQkZmlyc3QiOyB0aGVuIFwKLSsgICAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8IHNlZCAt ZSAiJCRzZWRfcmVzdCJgOyBcCi0rICAgICAgICBlbHNlIFwKLSsgICAgICAgICAgZGlyMj0iLi4v JCRkaXIyIjsgXAotKyAgICAgICAgZmk7IFwKLSsgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmly c3QiOyBcCi0rICAgICAgZmk7IFwKLSsgICAgZmk7IFwKLSsgICAgZGlyMT1gZWNobyAiJCRkaXIx IiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0rICBkb25lOyBcCi0rICByZWxkaXI9IiQkZGly MiIKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0r QVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9N QUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NG TEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9P U1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJF QU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElC U0AKLStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9M SUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9 IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1Rf UFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NU X1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJ R05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9P U1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0r Qk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJ WkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NE RVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0r Q1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NA Ci0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQ UFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9 IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0r Q1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0g QERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1Q QklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAot K0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAK LStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJ QlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lO U1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExf UFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NU UklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxB R1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJ QlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElC T0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBN S0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ19MSUIgPSBA TVlTUUxfQ19MSUJACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xJQlMgPSBA TVlTUUxfTElCU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1A Ci0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9C SkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9 IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9M REZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RP T0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAK LStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUg PSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BB Q0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBB Q0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJM ID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9 IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJT QAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNR TF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQ TV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VU X01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hF QURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9I RUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9Q T1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01N QU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRk aXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9w X2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3Rv cF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NY WEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1f X2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVv dGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1f X3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxp YXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9 IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0g QGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9v dGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2Vu X29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlw c19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLSto b3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhv c3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRv ckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2lu Zm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sg PSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNk aXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3Rh dGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJf cCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIg PSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9 IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBA c2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0 YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAot K3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3Bf YnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2Rp ciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRv cF9zcmNkaXIpCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotK1NVQkRJUlMg PSBjb3JlIGJhY2tlbmRzCi0rRVhUUkFfRElTVCA9IAotK2FsbDogY29uZmlnLmgKLSsJJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2Rp cikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtl ZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBc Ci0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBc Ci0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0 IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBc Ci0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1n bnUgc29jaS9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkg ICQoQVVUT01BS0UpIC0tZ251IHNvY2kvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0r TWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0 YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7 IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwp IC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAot KwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1 YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1 aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19T VEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQo YW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9t NF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgotKwotK2NvbmZpZy5oOiBzdGFt cC1oMQotKwlAaWYgdGVzdCAhIC1mICRAOyB0aGVuIFwKLSsJICBybSAtZiBzdGFtcC1oMTsgXAot KwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHN0YW1wLWgxOyBcCi0rCWVsc2UgOjsgZmkKLSsK LStzdGFtcC1oMTogJChzcmNkaXIpL2NvbmZpZy5oLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcu c3RhdHVzCi0rCUBybSAtZiBzdGFtcC1oMQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVM TCkgLi9jb25maWcuc3RhdHVzIHNvY2kvY29uZmlnLmgKLSskKHNyY2RpcikvY29uZmlnLmguaW46 ICAkKGFtX19jb25maWd1cmVfZGVwcykgCi0rCSgkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiAk KEFVVE9IRUFERVIpKQotKwlybSAtZiBzdGFtcC1oMQotKwl0b3VjaCAkQAotKwotK2Rpc3RjbGVh bi1oZHI6Ci0rCS1ybSAtZiBjb25maWcuaCBzdGFtcC1oMQotKwotK21vc3RseWNsZWFuLWxpYnRv b2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBf bGlicwotKwotKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGlu ZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91 dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBv ZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAotKyMgKDEp IGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcu c3RhdHVzJwotKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVn ZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRo ZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KLSskKFJFQ1VSU0lW RV9UQVJHRVRTKToKLSsJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAk JE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSop OzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlk b25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1 cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBk byBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBkb3Rfc2Vlbj15ZXM7IFwKLSsJICAg IGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90 YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwg JCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0 aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQg MTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdF VFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZM QUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0r CSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwK LSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1h aW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCi0rCSAgKikgbGlz dD0nJChTVUJESVJTKScgOzsgXAotKwllc2FjOyBcCi0rCXJldj0nJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBc Ci0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJ cmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9g OyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJn ZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwK LSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBs b2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKCQoYW1fX2NkKSAkJHN1 YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8 IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgotK3RhZ3MtcmVj dXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK LSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vyc2l2ZToKLSsJ bGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAi JCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAk KExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElT UCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2Rpcikv JCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBu b25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGlu IGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczog VEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSBjb25m aWcuaC5pbiAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkK LSsJc2V0IHg7IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNs dWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlv bj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBp bmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0r CWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJk aXIvVEFHUyB8fCBcCi0rCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUv JCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNF UykgJChIRUFERVJTKSBjb25maWcuaC5pbiAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVu aXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVu IGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAot KwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAg RU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBc Ci0rCXNoaWZ0OyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRo ZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2Zp eDsgXAotKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKLSsJICAgICQoRVRBR1MpICQoRVRB R1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAgIiQkQCIg JCR1bmlxdWU7IFwKLSsJICBlbHNlIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChB TV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAgJCR1bmlxdWU7IFwKLSsJICBm aTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFE RVJTKSAkKFNPVVJDRVMpIGNvbmZpZy5oLmluICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQo VEFHU19GSUxFUykgJChMSVNQKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgY29uZmln LmguaW4gJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlz dDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hv ICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNb JCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkg eyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdT X0FSR1MpJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RB R1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJ aGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiAkKGFtX19j ZCkgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJl IgotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZ TVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9 YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRv cHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9c XFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZv ciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJz fF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAv fCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAg Ki8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wv LyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7 OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYg dGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNk aXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9 YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVz dCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGly KS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBc Ci0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3Qg JCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmls ZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGly KS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBc Ci0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIi IHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZp bGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0r CSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VC RElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGly IiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGly IiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8 fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47 IHRoZW4gOjsgZWxzZSBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQk c3ViZGlyIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld19kaXN0ZGly PSQkcmVsZGlyOyBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7 IFwKLSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRy ZWxkaXI7IFwKLSsJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0 ZGlyIiBcXCI7IFwKLSsJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3Nr aXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKLSsJICAg ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCi0rCSAgICAg ICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAot KwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCi0r CSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlk b25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06 IE1ha2VmaWxlIGNvbmZpZy5oCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQot K2luc3RhbGxkaXJzLWFtOgotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1l eGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEt cmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1h bTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5z dGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0r aW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFN PSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQo SU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVz dCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RS SVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStj bGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05G SUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsJLXRlc3Qg LiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIg fHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVh bi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFp bmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUg c3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFO RklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1y ZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3Rs eWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBN YWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNs ZWFuLWhkciBkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1h bToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwotK2h0bWwtYW06Ci0rCi0raW5mbzogaW5m by1yZWN1cnNpdmUKLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbToKLSsKLStpbnN0 YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1kdmktYW06Ci0rCi0r aW5zdGFsbC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2 ZQotKwotK2luc3RhbGwtaHRtbC1hbToKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1y ZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm8tYW06Ci0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5z dGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcGRmLWFtOgotKwot K2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wcy1hbToKLSsK LStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVh bi1yZWN1cnNpdmUKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlz dGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0 bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJp YyBtb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFt OgotKwotK3BzOiBwcy1yZWN1cnNpdmUKLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06Ci0r Ci0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMp IGFsbCBcCi0rCWN0YWdzLXJlY3Vyc2l2ZSBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1y ZWN1cnNpdmUKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJT SVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBj bGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwljdGFncyBjdGFncy1yZWN1cnNp dmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWhkciBkaXN0Y2xl YW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBcCi0rCWR2aS1hbSBodG1sIGh0 bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCi0rCWluc3RhbGwtZGF0YSBp bnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gXAotKwlpbnN0YWxsLWV4 ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gXAotKwlpbnN0 YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKLSsJaW5z dGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgXAotKwlp bnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIFwK LSsJbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4g XAotKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBw cyBwcy1hbSBcCi0rCXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQot KwotK0BTRVRfTUFLRUAKLSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1h a2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxp bWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLWNvbmZpZy5pbiBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS1jb25maWcuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLWNvbmZpZy5pbgkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpLWNvbmZpZy5pbgkyMDA5LTA0LTE2IDE5OjM3OjEwLjAwMDAwMDAwMCArMDIwMAotQEAg LTAsMCArMSw3NiBAQAotKyMhL2Jpbi9zaAotKwotK3ByZWZpeD1AcHJlZml4QAotK2V4ZWNfcHJl Zml4PSR7cHJlZml4fQotK2xpYmRpcj1AbGliZGlyQAotK2luY2x1ZGVkaXI9QGluY2x1ZGVkaXJA Ci0rCi0rdXNhZ2UoKQotK3sKLSsgIGNhdCA8PEVPRgotK1VzYWdlOiBAUEFDS0FHRUAtY29uZmln IFtPUFRJT05dCi0rCi0rS25vd24gdmFsdWVzIGZvciBPUFRJT04gYXJlOgotKwotKyAgLS1wcmVm aXggICAgICAgIHByaW50IEBQQUNLQUdFX05BTUVAIGluc3RhbGxhdGlvbiBwcmVmaXgKLSsgIC0t bGlicyAgICAgICAgICBwcmludCBsaWJyYXJ5IGxpbmtpbmcgaW5mb3JtYXRpb24KLSsgIC0tY2Zs YWdzICAgICAgICBwcmludCBwcmUtcHJvY2Vzc29yIGFuZCBjb21waWxlciBmbGFncwotKyAgLS1o ZWxwICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0Ci0rICAtLXZlcnNpb24gICAg ICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb24KLStFT0YKLSsgIGV4aXQgJDEKLSt9Ci0rCi0r aWYgdGVzdCAkIyAtZXEgMDsgdGhlbgotKyAgdXNhZ2UgMQotK2ZpCi0rCi0rY2ZsYWdzPWZhbHNl Ci0rbGlicz1mYWxzZQotKwotK3doaWxlIHRlc3QgJCMgLWd0IDA7IGRvCi0rICBjYXNlICIkMSIg aW4KLSsgIC0qPSopIG9wdGFyZz1gZWNobyAiJDEiIHwgc2VkICdzL1stX2EtekEtWjAtOV0qPS8v J2AgOzsKLSsgICopIG9wdGFyZz0gOzsKLSsgIGVzYWMKLSsKLSsgIGNhc2UgJDEgaW4KLSsgICAg LS1wcmVmaXg9KikKLSsgICAgICBwcmVmaXg9JG9wdGFyZwotKyAgICAgIDs7Ci0rCi0rICAgIC0t cHJlZml4KQotKyAgICAgIGVjaG8gJHByZWZpeAotKyAgICAgIDs7Ci0rCi0rICAgIC0tdmVyc2lv bikKLSsgICAgICBlY2hvIEBWRVJTSU9OQAotKyAgICAgIDs7Ci0rCi0rICAgIC0taGVscCkKLSsg ICAgICB1c2FnZSAwCi0rICAgICAgOzsKLSsKLSsgICAgLS1jZmxhZ3MpCi0rICAgICAgaWYgWyAi JHtwcmVmaXh9IiAhPSAiL3VzciIgXTsgdGhlbgotKyAgICAgICAgZWNobyAtSSR7aW5jbHVkZWRp cn0KLSsgICAgICBlbHNlCi0rICAgICAgICBlY2hvCi0rICAgICAgZmkKLSsgICAgICA7OwotKwot KyAgICAtLWxpYnMpCi0rICAgICAgaWYgWyAiJHtwcmVmaXh9IiAhPSAiL3VzciIgXTsgdGhlbgot KyAgICAgICAgZWNobyAtTCR7bGliZGlyfSAtbEBQQUNLQUdFQAotKyAgICAgIGVsc2UKLSsgICAg ICAgIGVjaG8gLWxAUEFDS0FHRUAKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgICopCi0r ICAgICAgdXNhZ2UKLSsgICAgICBleGl0IDEKLSsgICAgICA7OwotKyAgZXNhYwotKyAgc2hpZnQK LStkb25lCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS5tNCBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kubTQJMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS5tNAky MDA5LTA1LTAyIDIzOjU5OjEzLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwxMTggQEAKLStk bmwgQHN5bm9wc2lzIEFYX1NPQ0kKLStkbmwgCi0rZG5sIFRoaXMgbWFjcm8gdHJpZXMgdG8gZmlu ZCBTb2NpIEMgQVBJIGhlYWRlciBhbmQgbGlicmFyeSBsb2NhdGlvbnMuCi0rZG5sCi0rZG5sIFdl IGRlZmluZSB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyZSBzY3JpcHQgZmxhZ3M6Ci0rZG5sCi0rZG5s CS0td2l0aC1zb2NpOiBHaXZlIHByZWZpeCBmb3IgYm90aCBsaWJyYXJ5IGFuZCBoZWFkZXJzLCBh bmQgdHJ5Ci0rZG5sCQkgICAgIHRvIGd1ZXNzIHN1YmRpcmVjdG9yeSBuYW1lcyBmb3IgZWFjaC4g IChlLmcuIGFkZCAvbGliIGFuZAotK2RubAkJICAgICAvaW5jbHVkZSBvbnRvIGdpdmVuIGRpciBu YW1lcywgYW5kIG90aGVyIGNvbW1vbiBzY2hlbWVzLikKLStkbmwKLStkbmwgQHZlcnNpb24gMS4z LCAyMDA5LzA1LzAyCi0rZG5sIEBhdXRob3IgRGVuaXMgQXJuYXVkIDxkZW5pc19hcm5hdWRAdXNl cnMuc291cmNlZm9yZ2UubmV0PgotK2RubAotK2RubCBAdmVyc2lvbiAxLjIsIDIwMDcvMDIvMjAK LStkbmwgQGF1dGhvciBXYXJyZW4gWW91bmcgPHNvY2lwcEBldHItdXNhLmNvbT4KLSsKLStBQ19E RUZVTihbQVhfU09DSV0sCi0rWwotKyMKLSsjIFNldCB1cCBjb25maWd1cmUgc2NyaXB0IG1hY3Jv cwotKyMKLStBQ19BUkdfV0lUSChzb2NpLAotKwlbLS13aXRoLXNvY2k9PHBhdGg+ICAgICByb290 IGRpcmVjdG9yeSBwYXRoIG9mIFNvY2kgaW5zdGFsbGF0aW9uXSwKLSsJW1NPQ0lfbGliX2NoZWNr PSIkd2l0aF9zb2NpL2xpYjY0L3NvY2kgJHdpdGhfc29jaS9saWIvc29jaSAkd2l0aF9zb2NpL2xp YjY0ICR3aXRoX3NvY2kvbGliIgotKwlTT0NJX2luY19jaGVjaz0iJHdpdGhfc29jaS9pbmNsdWRl ICR3aXRoX3NvY2kvaW5jbHVkZS9zb2NpIl0sCi0rCVtTT0NJX2xpYl9jaGVjaz0iL3Vzci9saWI2 NCAvdXNyL2xpYiAvdXNyL2xpYjY0L3NvY2kgL3Vzci9saWIvc29jaSAvdXNyL2xvY2FsL2xpYjY0 IC91c3IvbG9jYWwvbGliIC9vcHQvc29jaS9saWI2NCAvb3B0L3NvY2kvbGliIC91c3IvbG9jYWwv bGliNjQvc29jaSAvdXNyL2xvY2FsL2xpYi9zb2NpIC91c3IvbG9jYWwvc29jaS9saWI2NCAvdXNy L2xvY2FsL3NvY2kvbGliIC9vcHQvc29jaS9saWI2NC9zb2NpIC9vcHQvc29jaS9saWIvc29jaSIK LSsJU09DSV9pbmNfY2hlY2s9Ii91c3IvaW5jbHVkZSAvdXNyL2luY2x1ZGUvc29jaSAvdXNyL2xv Y2FsL2luY2x1ZGUgL29wdC9zb2NpL2luY2x1ZGUgL3Vzci9sb2NhbC9pbmNsdWRlL3NvY2kgL3Vz ci9sb2NhbC9zb2NpL2luY2x1ZGUgL3Vzci9sb2NhbC9zb2NpL2luY2x1ZGUvc29jaSAvb3B0L3Nv Y2kvaW5jbHVkZS9zb2NpIl0pCi0rCi0rIyBTT0NJIGxpYnJhcnkKLStTT0NJX0NPUkVfTElCPXNv Y2lfY29yZQotK1NPQ0lfTVlTUUxfTElCPXNvY2lfbXlzcWwKLSsKLSsjCi0rIyBMb29rIGZvciBT b2NpIENvcmUgQVBJIGxpYnJhcnkKLSsjCi0rQUNfTVNHX0NIRUNLSU5HKFtmb3IgU29jaSBsaWJy YXJ5IGRpcmVjdG9yeV0pCi0rU09DSV9saWJkaXI9Ci0rZm9yIG0gaW4gJFNPQ0lfbGliX2NoZWNr Ci0rZG8KLSsJaWYgdGVzdCAtZCAiJG0iICYmIFwKLSsJCSh0ZXN0IC1mICIkbS9saWIkU09DSV9D T1JFX0xJQi5zbyIgfHwgdGVzdCAtZiAiJG0vbGliJFNPQ0lfQ09SRV9MSUIuYSIpCi0rCXRoZW4K LSsJCVNPQ0lfbGliZGlyPSRtCi0rCQlicmVhawotKwlmaQotK2RvbmUKLSsKLStpZiB0ZXN0IC16 ICIkU09DSV9saWJkaXIiCi0rdGhlbgotKwlBQ19NU0dfRVJST1IoW0RpZG4ndCBmaW5kICRTT0NJ X0NPUkVfTElCIGxpYnJhcnkgaW4gJyRTT0NJX2xpYl9jaGVjayddKQotK2ZpCi0rCi0rY2FzZSAi JFNPQ0lfbGliZGlyIiBpbgotKwkvKiApIDs7Ci0rCSogKSAgQUNfTVNHX0VSUk9SKFtUaGUgU29j aSBsaWJyYXJ5IGRpcmVjdG9yeSAoJFNPQ0lfbGliZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBh dGguXSkgOzsKLStlc2FjCi0rCi0rQUNfTVNHX1JFU1VMVChbJFNPQ0lfbGliZGlyXSkKLSsKLStj YXNlICIkU09DSV9saWJkaXIiIGluCi0rICAvdXNyL2xpYjY0KSA7OwotKyAgL3Vzci9saWIpIDs7 Ci0rICAqKSBTT0NJX0xJQlM9Ii1MJHtTT0NJX2xpYmRpcn0iIDs7Ci0rZXNhYwotK0xERkxBR1M9 IiRMREZMQUdTICR7U09DSV9MSUJTfSIKLSsKLSsKLSsjCi0rIyBMb29rIGZvciBTb2NpIENvcmUg QVBJIGhlYWRlcnMKLSsjCi0rQUNfTVNHX0NIRUNLSU5HKFtmb3IgU29jaSBpbmNsdWRlIGRpcmVj dG9yeV0pCi0rU09DSV9pbmNkaXI9Ci0rZm9yIG0gaW4gJFNPQ0lfaW5jX2NoZWNrCi0rZG8KLSsJ aWYgdGVzdCAtZCAiJG0iICYmIHRlc3QgLWYgIiRtL3NvY2kvY29yZS9zb2NpLmgiCi0rCXRoZW4K LSsJCVNPQ0lfaW5jZGlyPSRtCi0rCQlicmVhawotKwlmaQotK2RvbmUKLSsKLStpZiB0ZXN0IC16 ICIkU09DSV9pbmNkaXIiCi0rdGhlbgotKwlBQ19NU0dfRVJST1IoW0RpZG4ndCBmaW5kIHRoZSBT b2NpIGluY2x1ZGUgZGlyIGluICckU09DSV9pbmNfY2hlY2snXSkKLStmaQotKwotK2Nhc2UgIiRT T0NJX2luY2RpciIgaW4KLSsJLyogKSA7OwotKwkqICkgIEFDX01TR19FUlJPUihbVGhlIFNvY2kg aW5jbHVkZSBkaXJlY3RvcnkgKCRTT0NJX2luY2RpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRo Ll0pIDs7Ci0rZXNhYwotKwotK0FDX01TR19SRVNVTFQoWyRTT0NJX2luY2Rpcl0pCi0rCi0rY2Fz ZSAiJFNPQ0lfaW5jZGlyIiBpbgotKyAgL3Vzci9pbmNsdWRlKSA7OwotKyAgKikgU09DSV9DRkxB R1M9Ii1JJHtTT0NJX2luY2Rpcn0iIDs7Ci0rZXNhYwotKwotK1NPQ0lfTElCUz0iJHtTT0NJX0xJ QlN9IC1sJHtTT0NJX0NPUkVfTElCfSAtbCR7U09DSV9NWVNRTF9MSUJ9IC1sZGwiCi0rCi0rQUNf U1VCU1QoU09DSV9DRkxBR1MpCi0rQUNfU1VCU1QoU09DSV9MSUJTKQotKwotKyMgVGVzdCBsaW5r aW5nIHdpdGggc29jaSAobm90ZSB0aGF0IGl0IG5lZWRzIE15U1FMIGNsaWVudCB0byBoYXZlIGJl ZW4gZGVmaW5lZAotKyMgYmVmb3JlKQotK3NhdmVfTElCUz0iJExJQlMiCi0raWYgdGVzdCAteiAi JE1ZU1FMX0xJQlMiCi0rdGhlbgotKwlNWVNRTF9MSUJTPSItTC91c3IvbGliNjQvbXlzcWwgLUwv dXNyL2xpYi9teXNxbCAtbG15c3FsY2xpZW50IgotK2ZpCi0rTElCUz0iJExJQlMgJE1ZU1FMX0xJ QlMgJFNPQ0lfTElCUyIKLStBQ19DSEVDS19MSUIoJFNPQ0lfQ09SRV9MSUIsIHNvY2lfYmVnaW4s Ci0rCSAgICAgW10sIAotKyAgICAgICAgICAgICBbQUNfTVNHX0VSUk9SKFtDb3VsZCBub3QgZmlu ZCB3b3JraW5nIFNvY2kgY2xpZW50IGxpYnJhcnkhXSldCi0rCSAgICAgKQotK0xJQlM9IiRzYXZl X0xJQlMiCi0rQUNfU1VCU1QoU09DSV9DT1JFX0xJQikKLStdKSBkbmwgQVhfU09DSQotZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kucGMuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2ku cGMuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLnBjLmluCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kucGMuaW4JMjAw OS0wNC0xNiAxOTozNzoxMC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTEgQEAKLStwcmVm aXg9QHByZWZpeEAKLStleGVjX3ByZWZpeD1AZXhlY19wcmVmaXhACi0rbGliZGlyPUBsaWJkaXJA Ci0raW5jbHVkZWRpcj1AaW5jbHVkZWRpckAKLSsKLStOYW1lOiBAUEFDS0FHRV9OQU1FQAotK0Rl c2NyaXB0aW9uOiBUaGUgZGF0YWJhc2UgYWNjZXNzIGxpYnJhcnkgZm9yIEMrKyBwcm9ncmFtbWVy cwotK1ZlcnNpb246IEBQQUNLQUdFX1ZFUlNJT05ACi0rVVJMOiBodHRwOi8vQFBBQ0tBR0VALnNv dXJjZWZvcmdlLm5ldAotK0xpYnM6IC1MJHtsaWJkaXJ9IC1sQFBBQ0tBR0VAX2NvcmUgQExERkxB R1NAIEBMSUJTQAotK0NmbGFnczogLUkke2luY2x1ZGVkaXJ9Ci1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS5zcGVjLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLnNwZWMuaW4KLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLnNwZWMuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS5zcGVjLmluCTIwMTAtMDEt MjMgMTQ6Mzk6MzIuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDMzNiBAQAotKyMKLSsjIwot KyMgRGVmYXVsdCB2YWx1ZXMgYXJlIC0td2l0aCBteXNxbCAtLXdpdGggcG9zdGdyZXNxbCAtLXdp dGhvdXQgb3JhY2xlIAotKyMgTm90ZSB0aGF0LCBmb3IgT3JhY2xlLCB3aGVuIGVuYWJsZWQsIHRo ZSBmb2xsb3dpbmcgb3B0aW9ucyBzaG91bGQKLSsjIGFsc28gYmUgZ2l2ZW46Ci0rIyAtLXdpdGgt b3JhY2xlLWluY2x1ZGU9L29wdC9vcmFjbGUvYXBwL29yYWNsZS9wcm9kdWN0LzExLjEuMC9kYl8x L3JkYm1zL3B1YmxpYwotKyMgLS13aXRoLW9yYWNsZS1saWI9L29wdC9vcmFjbGUvYXBwL29yYWNs ZS9wcm9kdWN0LzExLjEuMC9kYl8xL2xpYgotKyMgSWYgdGhlIG1hY3JvcyBhcmUgZGVmaW5lZCwg cmVkZWZpbmUgdGhlbSB3aXRoIHRoZSBjb3JyZWN0IGNvbXBpbGF0aW9uIGZsYWdzLgotKyViY29u ZF93aXRob3V0IG15c3FsCi0rJWJjb25kX3dpdGhvdXQgcG9zdGdyZXNxbAotKyViY29uZF93aXRo IG9yYWNsZQotKwotKyVkZWZpbmUgX2RlZmF1bHRfb3JhY2xlX2RpciAvb3B0L29yYWNsZS9hcHAv b3JhY2xlL3Byb2R1Y3QvMTEuMS4wL2RiXzEKLSsleyE/X3dpdGhfb3JhY2xlX2luY2RpcjogJWRl ZmluZSBfd2l0aF9vcmFjbGVfaW5jZGlyIC0td2l0aC1vcmFjbGUtaW5jbHVkZT0le19kZWZhdWx0 X29yYWNsZV9kaXJ9L3JkYm1zL3B1YmxpY30KLSsleyE/X3dpdGhfb3JhY2xlX2xpYmRpcjogJWRl ZmluZSBfd2l0aF9vcmFjbGVfbGliZGlyIC0td2l0aC1vcmFjbGUtbGliPSV7X2RlZmF1bHRfb3Jh Y2xlX2Rpcn0vbGlifQotKyMKLSsjIwotKyMKLStOYW1lOiAgICAgICAgICAgQFBBQ0tBR0VACi0r VmVyc2lvbjogICAgICAgIEBWRVJTSU9OQAotK1JlbGVhc2U6ICAgICAgICBAUlBNX1JFTEVBU0VA JXs/ZGlzdH0KLSsKLStTdW1tYXJ5OiAgICAgICAgVGhlIGRhdGFiYXNlIGFjY2VzcyBsaWJyYXJ5 IGZvciBDKysgcHJvZ3JhbW1lcnMKLSsKLStHcm91cDogICAgICAgICAgU3lzdGVtIEVudmlyb25t ZW50L0xpYnJhcmllcwotK0xpY2Vuc2U6ICAgICAgICBCb29zdAotK1VSTDogICAgICAgICAgICBo dHRwOi8vJXtuYW1lfS5zb3VyY2Vmb3JnZS5uZXQKLStTb3VyY2UwOiAgICAgICAgaHR0cDovL2Rv d25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvc29jaS8le25hbWV9LSV7dmVyc2lvbn0udGFyLmd6Ci0r IyBUaGF0IHBhdGNoIHdpbGwgYmUgc3VibWl0dGVkIHVwc3RyZWFtCi0rUGF0Y2gwOiAgICAgICAg ICV7bmFtZX0tJXt2ZXJzaW9ufS1AUlBNX1JFTEVBU0VALWZpeC1nY2M0NC1jb21wYXRpYmlsaXR5 LnBhdGNoCi0rIyBUaGF0IHBhdGNoIHdpbGwgYmUgc3VibWl0dGVkIHVwc3RyZWFtCi0rUGF0Y2gx OiAgICAgICAgICV7bmFtZX0tJXt2ZXJzaW9ufS1AUlBNX1JFTEVBU0VALWZpeC1nbnUtYXV0b3Rv b2xzLWNvbXBhdGliaWxpdHkucGF0Y2gKLStCdWlsZFJvb3Q6ICAgICAgJXtfdG1wcGF0aH0vJXtu YW1lfS0le3ZlcnNpb259LSV7cmVsZWFzZX0tcm9vdC0lKCV7X19pZF91fSAtbikKLSsKLStCdWls ZFJlcXVpcmVzOiAgYm9vc3QtZGV2ZWwKLSsjQnVpbGRSZXF1aXJlczogIGNwcHVuaXQtZGV2ZWwg Pj0gMS4xMAotK0J1aWxkUmVxdWlyZXM6ICBsaWJ0b29sCi0rI1JlcXVpcmVzOiAgICAgICAKLSsK LSslZGVzY3JpcHRpb24KLStAUEFDS0FHRV9OQU1FQCBpcyBhIEMrKyBkYXRhYmFzZSBhY2Nlc3Mg bGlicmFyeSB0aGF0IHByb3ZpZGVzIHRoZQotK2lsbHVzaW9uIG9mIGVtYmVkZGluZyBTUUwgaW4g cmVndWxhciBDKysgY29kZSwgc3RheWluZyBlbnRpcmVseSB3aXRoaW4KLSt0aGUgQysrIHN0YW5k YXJkLgotKwotKwotKyV7P3dpdGhfbXlzcWw6JXBhY2thZ2UgICAgICAgIG15c3FsCi0rU3VtbWFy eTogICAgICAgIE15U1FMIGJhY2tlbmQgZm9yICV7bmFtZX0KLStHcm91cDogICAgICAgICAgU3lz dGVtIEVudmlyb25tZW50L0xpYnJhcmllcwotK1JlcXVpcmVzOiAgICAgICAle25hbWV9ID0gJXt2 ZXJzaW9ufS0le3JlbGVhc2V9Ci0rQnVpbGRSZXF1aXJlczogIG15c3FsLWRldmVsID49IDUuMAot KwotKyVkZXNjcmlwdGlvbiAgICBteXNxbAotK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUgTXlT UUwgYmFja2VuZCBmb3IgQFBBQ0tBR0VfTkFNRUAsIGkuZS4sCi0rZHluYW1pYyBsaWJyYXJ5IHNw ZWNpZmljIHRvIHRoZSBNeVNRTCBkYXRhYmFzZS4gSWYgeW91IHdvdWxkIGxpa2UgdG8KLSt1c2Ug QFBBQ0tBR0VfTkFNRUAgaW4geW91ciBwcm9ncmFtcyB3aXRoIE15U1FMLCB5b3Ugd2lsbCBuZWVk IHRvCi0raW5zdGFsbCAle25hbWV9LW15c3FsLn0KLSsKLSslez93aXRoX3Bvc3RncmVzcWw6JXBh Y2thZ2UgICAgICAgIHBvc3RncmVzcWwKLStTdW1tYXJ5OiAgICAgICAgUG9zdEdyZVNRTCBiYWNr ZW5kIGZvciAle25hbWV9Ci0rR3JvdXA6ICAgICAgICAgIFN5c3RlbSBFbnZpcm9ubWVudC9MaWJy YXJpZXMKLStSZXF1aXJlczogICAgICAgJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQot K0J1aWxkUmVxdWlyZXM6ICBwb3N0Z3Jlc3FsLWRldmVsID49IDcuMQotKwotKyVkZXNjcmlwdGlv biAgICBwb3N0Z3Jlc3FsCi0rVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBQb3N0R3JlU1FMIGJh Y2tlbmQgZm9yIEBQQUNLQUdFX05BTUVALCBpLmUuLAotK2R5bmFtaWMgbGlicmFyeSBzcGVjaWZp YyB0byB0aGUgUG9zdEdyZVNRTCBkYXRhYmFzZS4gSWYgeW91IHdvdWxkIGxpa2UKLSt0byB1c2Ug QFBBQ0tBR0VfTkFNRUAgaW4geW91ciBwcm9ncmFtcyB3aXRoIFBvc3RHcmVTUUwsIHlvdSB3aWxs IG5lZWQgdG8KLStpbnN0YWxsICV7bmFtZX0tcG9zdGdyZXNxbC59Ci0rCi0rJXs/d2l0aF9vcmFj bGU6JXBhY2thZ2UgICAgICAgIG9yYWNsZQotK1N1bW1hcnk6ICAgICAgICBPcmFjbGUgYmFja2Vu ZCBmb3IgJXtuYW1lfQotK0dyb3VwOiAgICAgICAgICBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFy aWVzCi0rUmVxdWlyZXM6ICAgICAgICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KLSsK LSslZGVzY3JpcHRpb24gICAgb3JhY2xlCi0rVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBPcmFj bGUgYmFja2VuZCBmb3IgQFBBQ0tBR0VfTkFNRUAsIGkuZS4sCi0rZHluYW1pYyBsaWJyYXJ5IHNw ZWNpZmljIHRvIHRoZSBPcmFjbGUgZGF0YWJhc2UuIElmIHlvdSB3b3VsZCBsaWtlIHRvCi0rdXNl IEBQQUNLQUdFX05BTUVAIGluIHlvdXIgcHJvZ3JhbXMgd2l0aCBPcmFjbGUsIHlvdSB3aWxsIG5l ZWQgdG8gaW5zdGFsbAotKyV7bmFtZX0tb3JhY2xlLn0KLSsKLSsKLSslcGFja2FnZSAgICAgICAg ZGV2ZWwKLStTdW1tYXJ5OiAgICAgICAgSGVhZGVyIGZpbGVzLCBsaWJyYXJpZXMgYW5kIGRldmVs b3BtZW50IGRvY3VtZW50YXRpb24gZm9yICV7bmFtZX0KLStHcm91cDogICAgICAgICAgRGV2ZWxv cG1lbnQvTGlicmFyaWVzCi0rUmVxdWlyZXM6ICAgICAgICV7bmFtZX0gPSAle3ZlcnNpb259LSV7 cmVsZWFzZX0KLStSZXF1aXJlczogICAgICAgcGtnY29uZmlnCi0rCi0rJWRlc2NyaXB0aW9uICAg IGRldmVsCi0rVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBoZWFkZXIgZmlsZXMsIGR5bmFtaWMg bGlicmFyaWVzIGFuZAotK2RldmVsb3BtZW50IGRvY3VtZW50YXRpb24gZm9yICV7bmFtZX0uIElm IHlvdSB3b3VsZCBsaWtlIHRvIGRldmVsb3AKLStwcm9ncmFtcyB1c2luZyAle25hbWV9LCB5b3Ug d2lsbCBuZWVkIHRvIGluc3RhbGwgJXtuYW1lfS1kZXZlbC4KLSsKLSslez93aXRoX215c3FsOiVw YWNrYWdlICAgICAgICBteXNxbC1kZXZlbAotK1N1bW1hcnk6ICAgICAgICBNeVNRTCBiYWNrZW5k IGZvciAle25hbWV9Ci0rR3JvdXA6ICAgICAgICAgIERldmVsb3BtZW50L0xpYnJhcmllcwotK1Jl cXVpcmVzOiAgICAgICAle25hbWV9LWRldmVsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0rUmVx dWlyZXM6ICAgICAgICV7bmFtZX0tbXlzcWwgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KLStSZXF1 aXJlczogICAgICAgbXlzcWwtZGV2ZWwgPj0gNS4wCi0rCi0rJWRlc2NyaXB0aW9uICAgIG15c3Fs LWRldmVsCi0rVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBNeVNRTCBiYWNrZW5kIGZvciAle25h bWV9LCBpLmUuLCBoZWFkZXIKLStmaWxlcyBhbmQgZHluYW1pYyBsaWJyYXJpZXMgc3BlY2lmaWMg dG8gdGhlIE15U1FMIGRhdGFiYXNlLiBJZiB5b3UKLSt3b3VsZCBsaWtlIHRvIGRldmVsb3AgcHJv Z3JhbXMgdXNpbmcgJXtuYW1lfSBhbmQgTXlTUUwsIHlvdSB3aWxsIG5lZWQKLSt0byBpbnN0YWxs ICV7bmFtZX0tbXlzcWwufQotKwotKyV7P3dpdGhfcG9zdGdyZXNxbDolcGFja2FnZSAgICAgICAg cG9zdGdyZXNxbC1kZXZlbAotK1N1bW1hcnk6ICAgICAgICBQb3N0R3JlU1FMIGJhY2tlbmQgZm9y ICV7bmFtZX0KLStHcm91cDogICAgICAgICAgRGV2ZWxvcG1lbnQvTGlicmFyaWVzCi0rUmVxdWly ZXM6ICAgICAgICV7bmFtZX0tZGV2ZWwgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KLStSZXF1aXJl czogICAgICAgJXtuYW1lfS1wb3N0Z3Jlc3FsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0rUmVx dWlyZXM6ICAgICAgIHBvc3RncmVzcWwtZGV2ZWwgPj0gNy4xCi0rCi0rJWRlc2NyaXB0aW9uICAg IHBvc3RncmVzcWwtZGV2ZWwKLStUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIFBvc3RHcmVTUUwg YmFja2VuZCBmb3IgJXtuYW1lfSwgaS5lLiwgaGVhZGVyCi0rZmlsZXMgYW5kIGR5bmFtaWMgbGli cmFyaWVzIHNwZWNpZmljIHRvIHRoZSBQb3N0R3JlU1FMIGRhdGFiYXNlLiBJZgotK3lvdSB3b3Vs ZCBsaWtlIHRvIGRldmVsb3AgcHJvZ3JhbXMgdXNpbmcgJXtuYW1lfSBhbmQgUG9zdEdyZVNRTCwg eW91Ci0rd2lsbCBuZWVkIHRvIGluc3RhbGwgJXtuYW1lfS1wb3N0Z3Jlc3FsLn0KLSsKLSslez93 aXRoX29yYWNsZTolcGFja2FnZSAgICAgICAgb3JhY2xlLWRldmVsCi0rU3VtbWFyeTogICAgICAg IE9yYWNsZSBiYWNrZW5kIGZvciAle25hbWV9Ci0rR3JvdXA6ICAgICAgICAgIERldmVsb3BtZW50 L0xpYnJhcmllcwotK1JlcXVpcmVzOiAgICAgICAle25hbWV9LWRldmVsID0gJXt2ZXJzaW9ufS0l e3JlbGVhc2V9Ci0rUmVxdWlyZXM6ICAgICAgICV7bmFtZX0tb3JhY2xlID0gJXt2ZXJzaW9ufS0l e3JlbGVhc2V9Ci0rCi0rJWRlc2NyaXB0aW9uICAgIG9yYWNsZS1kZXZlbAotK1RoaXMgcGFja2Fn ZSBjb250YWlucyB0aGUgT3JhY2xlIGJhY2tlbmQgZm9yICV7bmFtZX0sIGkuZS4sIGhlYWRlcgot K2ZpbGVzIGFuZCBkeW5hbWljIGxpYnJhcmllcyBzcGVjaWZpYyB0byB0aGUgT3JhY2xlIGRhdGFi YXNlLiBJZiB5b3UKLSt3b3VsZCBsaWtlIHRvIGRldmVsb3AgcHJvZ3JhbXMgdXNpbmcgJXtuYW1l fSBhbmQgT3JhY2xlLCB5b3Ugd2lsbCBuZWVkCi0rdG8gaW5zdGFsbCAle25hbWV9LW9yYWNsZS59 Ci0rCi0rCi0rJXBhY2thZ2UgZG9jCi0rU3VtbWFyeTogICAgICAgIEhUTUwgZG9jdW1lbnRhdGlv biBmb3IgdGhlIEBQQUNLQUdFX05BTUVAIGxpYnJhcnkKLStHcm91cDogICAgICAgICAgRG9jdW1l bnRhdGlvbgotKyVpZiAwJXs/ZmVkb3JhfSA+PSAxMAotK0J1aWxkQXJjaDogICAgICBub2FyY2gK LSsjQnVpbGRSZXF1aXJlczogIHRleGxpdmUtbGF0ZXgsIHRleGxpdmUtZHZpcHMKLSslZW5kaWYK LSsjQnVpbGRSZXF1aXJlczogIHRldGV4LWxhdGV4LCB0ZXRleC1kdmlwcwotKyNCdWlsZFJlcXVp cmVzOiAgZG94eWdlbiwgZ2hvc3RzY3JpcHQKLSsKLSslZGVzY3JpcHRpb24gZG9jCi0rVGhpcyBw YWNrYWdlIGNvbnRhaW5zIHRoZSBkb2N1bWVudGF0aW9uIGluIHRoZSBIVE1MIGZvcm1hdCBvZiB0 aGUgQFBBQ0tBR0VfTkFNRUAKLStsaWJyYXJ5LiBUaGUgZG9jdW1lbnRhdGlvbiBpcyB0aGUgc2Ft ZSBhcyBhdCB0aGUgQFBBQ0tBR0VfTkFNRUAgd2ViIHBhZ2UuCi0rCi0rCi0rJXByZXAKLSslc2V0 dXAgLXEKLSsKLSsjIEFwcGx5IHRoZSBnKysgNC40IGNvbXBhdGliaWxpdHkgcGF0Y2gKLSslcGF0 Y2gwIC1wMQotKwotKyMgUmVuYW1lIGNoYW5nZS1sb2cgYW5kIGxpY2Vuc2UgZmlsZSwgc28gdGhh dCB0aGV5IGNvbXBseSB3aXRoCi0rIyBwYWNrYWdpbmcgc3RhbmRhcmQKLSttdiBDSEFOR0VTIENo YW5nZUxvZwotK212IExJQ0VOU0VfMV8wLnR4dCBDT1BZSU5HCi0rcm0gLWYgSU5TVEFMTAotKwot KyMgUmVtb3ZlIE1hY09TWCBjb21wYXRpYmlsaXR5IGJ1aWxkaW5nIGZpbGVzCi0rcm0gLWYgYnVp bGQvdW5peC8uXyoudGNsCi0rcm0gLWYgLl9NYWtlZmlsZSAuX2NvbmZpZ3VyZQotK3JtIC1mIHNy Yy9jb3JlLy5fKi5oIHNyYy9jb3JlLy5fKi5jcHAKLStybSAtZiBzcmMvYmFja2VuZHMvcG9zdGdy ZXNxbC8uXyouaAotK3JtIC1mIGRvYy8uXyouaHRtbAotKwotKyMgUmVuYW1lIHRoZSBzb3VyY2Ug Y29kZSBkaXJlY3RvcnksIHNvIHRoYXQgdGhlIGZpbGVzIChlLmcsIGhlYWRlcgotKyMgZmlsZXMp IGNhbiBiZSBleHBvcnRlZCBjb3JyZWN0bHkgaW50byB7X3N0YW5kYXJkX2Rpcn0vJXtuYW1lfQot K212IHNyYyAle25hbWV9Ci0rCi0rIyBBcHBseSB0aGUgR05VIEF1dG90b29scyBjb21wYXRpYmls aXR5IHBhdGNoCi0rJXBhdGNoMSAtcDEKLSsKLSsjIEZpeCBzb21lIHBlcm1pc3Npb25zIGFuZCBm b3JtYXRzCi0rZmluZCAuL2RvYyAtdHlwZSBmIC1wZXJtIDc1NSAtZXhlYyBjaG1vZCA2NDQge30g XDsKLStjaG1vZCAteCBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0rIyBm aW5kIC4gLXR5cGUgZiAtbmFtZSAnKi5baGNdcHAnIC1leGVjIGNobW9kIDY0NCB7fSBcOwotKwot KwotKyVidWlsZAotKyVjb25maWd1cmUgLS1kaXNhYmxlLXN0YXRpYyBcCi0rJXs/d2l0aF9teXNx bDotLWVuYWJsZS1iYWNrZW5kLW15c3FsfSBcCi0rJXs/d2l0aF9wb3N0Z3Jlc3FsOi0tZW5hYmxl LWJhY2tlbmQtcG9zdGdyZXNxbH0gXAotKyV7P3dpdGhfb3JhY2xlOi0tZW5hYmxlLWJhY2tlbmQt b3JhY2xlICV7P193aXRoX29yYWNsZV9pbmNkaXJ9ICV7P193aXRoX29yYWNsZV9saWJkaXJ9fQot K21ha2UgJXs/X3NtcF9tZmxhZ3N9Ci0rCi0rJWluc3RhbGwKLStybSAtcmYgJFJQTV9CVUlMRF9S T09UCi0rbWFrZSBpbnN0YWxsIERFU1RESVI9JFJQTV9CVUlMRF9ST09UCi0rIyMKLSsjICBSZW1v dmUgdW5wYWNrYWdlZCBmaWxlcyBmcm9tIHRoZSBidWlsZHJvb3QKLStybSAtZiAkUlBNX0JVSUxE X1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9L2NvbmZpZy5oCi0rcm0gLWYgJFJQTV9CVUlMRF9S T09UJXtfbGliZGlyfS9saWIle25hbWV9XyoubGEKLSsjIwotKyMjCi0rIyAgRHVwbGljYXRlIHRo ZSBoZWFkZXIgZmlsZXMsIHNvIGFzIHRvIGtlZXAgdGhlIGNvbXBhdGliaWxpdHksIGZvcgotKyMg IGRldmVsb3BlcnMgdXNpbmcgdGhlIFNPQ0kgbGlicmFyeSwgd2l0aCB0aGUgbm9uLXBhY2thZ2Vk IHZlcnNpb24gb2YKLSsjICB0aGF0IGxpYnJhcnkuCi0rZm9yIGhlYWRlcl9maWxlIGluICRSUE1f QlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vY29yZS8qLmg7IGRvCi0rICBjcCAke2hl YWRlcl9maWxlfSAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9Ci0rZG9uZQot KyV7P3dpdGhfbXlzcWw6Y3AgJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9i YWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmggJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0v JXtuYW1lfX0KLSslez93aXRoX3Bvc3RncmVzcWw6Y3AgJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVk ZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oICRSUE1f QlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX19Ci0rJXs/d2l0aF9vcmFjbGU6Y3AgJFJQ TV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9vcmFjbGUvc29jaS1v cmFjbGUuaCAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9fQotKwotKwotKyVj bGVhbgotK3JtIC1yZiAkUlBNX0JVSUxEX1JPT1QKLSsKLSslcG9zdCAtcCAvc2Jpbi9sZGNvbmZp ZwotKwotKyVwb3N0dW4gLXAgL3NiaW4vbGRjb25maWcKLSsKLSslez93aXRoX215c3FsOiVwb3N0 IG15c3FsIC1wIC9zYmluL2xkY29uZmlnCi0rCi0rJXBvc3R1biBteXNxbCAtcCAvc2Jpbi9sZGNv bmZpZ30KLSsKLSslez93aXRoX3Bvc3RncmVzcWw6JXBvc3QgcG9zdGdyZXNxbCAtcCAvc2Jpbi9s ZGNvbmZpZwotKwotKyVwb3N0dW4gcG9zdGdyZXNxbCAtcCAvc2Jpbi9sZGNvbmZpZ30KLSsKLSsl ez93aXRoX29yYWNsZTolcG9zdCBvcmFjbGUgLXAgL3NiaW4vbGRjb25maWcKLSsKLSslcG9zdHVu IG9yYWNsZSAtcCAvc2Jpbi9sZGNvbmZpZ30KLSsKLSsKLSsKLSslZmlsZXMKLSslZGVmYXR0cigt LHJvb3Qscm9vdCwtKQotKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURN RQotKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9jb3JlLnNvLioKLSsKLSslez93aXRoX215c3FsOiVm aWxlcyBteXNxbAotKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCi0rJWRvYyBBVVRIT1JTIENoYW5n ZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0rJXtfbGliZGlyfS9saWIle25hbWV9X215c3FsLnNv Lip9Ci0rCi0rJXs/d2l0aF9wb3N0Z3Jlc3FsOiVmaWxlcyBwb3N0Z3Jlc3FsCi0rJWRlZmF0dHIo LSxyb290LHJvb3QsLSkKLSslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFE TUUKLSsle19saWJkaXJ9L2xpYiV7bmFtZX1fcG9zdGdyZXNxbC5zby4qfQotKwotKyV7P3dpdGhf b3JhY2xlOiVmaWxlcyBvcmFjbGUKLSslZGVmYXR0cigtLHJvb3Qscm9vdCwtKQotKyVkb2MgQVVU SE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQotKyV7X2xpYmRpcn0vbGliJXtuYW1l fV9vcmFjbGUuc28uKn0KLSsKLSsKLSslZmlsZXMgZGV2ZWwKLSslZGVmYXR0cigtLHJvb3Qscm9v dCwtKQotKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQotKyVkaXIg JXtfaW5jbHVkZWRpcn0vJXtuYW1lfQotKyVkaXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9jb3Jl Ci0rJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS8qLmgKLSsle19pbmNsdWRlZGlyfS8le25hbWV9L2Nv cmUvKi5oCi0rJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9jb3JlL3Rlc3QKLSsle19iaW5kaXJ9LyV7 bmFtZX0tY29uZmlnCi0rJXtfbGliZGlyfS9saWIle25hbWV9X2NvcmUuc28KLSsle19saWJkaXJ9 L3BrZ2NvbmZpZy8le25hbWV9LnBjCi0rJXtfZGF0YWRpcn0vYWNsb2NhbC8le25hbWV9Lm00Ci0r JXtfbWFuZGlyfS9tYW4xLyV7bmFtZX0tY29uZmlnLjEuKgotKwotKyV7P3dpdGhfbXlzcWw6JWZp bGVzIG15c3FsLWRldmVsCi0rJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKLSslZG9jIEFVVEhPUlMg Q2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKLSslZGlyICV7X2luY2x1ZGVkaXJ9LyV7bmFt ZX0KLSsle19pbmNsdWRlZGlyfS8le25hbWV9L2JhY2tlbmRzL215c3FsCi0rJXtfbGliZGlyfS9s aWIle25hbWV9X215c3FsLnNvfQotKwotKyV7P3dpdGhfcG9zdGdyZXNxbDolZmlsZXMgcG9zdGdy ZXNxbC1kZXZlbAotKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCi0rJWRvYyBBVVRIT1JTIENoYW5n ZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0rJWRpciAle19pbmNsdWRlZGlyfS8le25hbWV9Ci0r JXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9wb3N0Z3Jlc3FsCi0rJXtfbGliZGlyfS9s aWIle25hbWV9X3Bvc3RncmVzcWwuc299Ci0rCi0rJXs/d2l0aF9vcmFjbGU6JWZpbGVzIG9yYWNs ZS1kZXZlbAotKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCi0rJWRvYyBBVVRIT1JTIENoYW5nZUxv ZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0rJWRpciAle19pbmNsdWRlZGlyfS8le25hbWV9Ci0rJXtf aW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9vcmFjbGUKLSsle19saWJkaXJ9L2xpYiV7bmFt ZX1fb3JhY2xlLnNvfQotKwotKwotKyVmaWxlcyBkb2MKLSslZGVmYXR0cigtLHJvb3Qscm9vdCwt KQotKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRSBkb2MKLSsKLSsK LSslY2hhbmdlbG9nCi0rKiBTYXQgSmFuIDIzIDIwMTAgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5h dWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTE2Ci0rLSBBZGRlZCBhIG1pc3NpbmcgY3N0cmluZyBo ZWFkZXIgaW5jbHVkZSBmb3IgZysrLTQuNCBjb21wYXRpYmlsaXR5Ci0rCi0rKiBGcmkgSmFuIDIy IDIwMTAgUmFodWwgU3VuZGFyYW0gPHN1bmRhcmFtQGZlZG9yYXByb2plY3Qub3JnPiAtIDMuMC4w LTE1Ci0rLSBSZWJ1aWxkIGZvciBCb29zdCBzb25hbWUgYnVtcAotKwotKyogU3VuIEp1bCAyNiAy MDA5IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWwtZW5nQGxpc3RzLmZlZG9yYXByb2pl Y3Qub3JnPiAtIDMuMC4wLTE0Ci0rLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qu b3JnL3dpa2kvRmVkb3JhXzEyX01hc3NfUmVidWlsZAotKwotKyogU2F0IE1heSAwOSAyMDA5IERl bmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0xMwotKy0gSW50 cm9kdWNlZCBkaXN0aW5jdCBkZXBlbmRlbmNpZXMgZm9yIGRpZmZlcmVudCBkaXN0cmlidXRpb25z Ci0rCi0rKiBUdWUgTWF5IDA1IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3Jh QG00eC5vcmc+IDMuMC4wLTEyCi0rLSBSZW1vdmVkIHRoZSBkZXBlbmRlbmN5IG9uIHRoZSB2ZXJz aW9uIG9mIEJvb3N0LCBhbmQgb24gQ1BQVW5pdAotKwotKyogVHVlIE1heSAwNSAyMDA5IERlbmlz IEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0xMQotKy0gUmVtb3Zl ZCB0aGUgZGVwZW5kZW5jeSBvbiBMYXRleCBmb3IgZG9jdW1lbnRhdGlvbiBkZWxpdmVyeQotKwot KyogVHVlIE1heSAwNSAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgu b3JnPiAzLjAuMC0xMAotKy0gQnVycmllZCB0aGUgQm9vc3QgRnVzaW9uIGhlYWRlciBpbmNsdWRl IGZvciBjb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKLSsKLSsqIFR1ZSBNYXkgMDUgMjAwOSBEZW5p cyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtOQotKy0gQWRkZWQg YSBtaXNzaW5nIGNzdGRpbyBoZWFkZXIgaW5jbHVkZSBmb3IgZysrLTQuNCBjb21wYXRpYmlsaXR5 Ci0rCi0rKiBUdWUgTWF5IDA1IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3Jh QG00eC5vcmc+IDMuMC4wLTgKLSstIEFkZGVkIG1pc3NpbmcgY3N0ZGlvIGhlYWRlciBpbmNsdWRl cyBmb3IgZysrLTQuNCBjb21wYXRpYmlsaXR5Ci0rCi0rKiBUdWUgTWF5IDA1IDIwMDkgRGVuaXMg QXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTcKLSstIEFkZGVkIGEg bWlzc2luZyBjc3RkaW8gaGVhZGVyIGluY2x1ZGUgZm9yIGcrKy00LjQgY29tcGF0aWJpbGl0eQot KwotKyogU2F0IE1heSAwMiAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBt NHgub3JnPiAzLjAuMC02Ci0rLSBSZW1vdmVkIHRoZSB1bnVzZWQgYnVpbGQgY29uZGl0aW9uYWxz Ci0rCi0rKiBUdWUgQXByIDI4IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3Jh QG00eC5vcmc+IDMuMC4wLTUKLSstIFNpbXBsaWZpZWQgdGhlIGNvbmRpdGlvbmFsIGJ1aWxkIHJ1 bGVzIHdpdGhpbiB0aGUgUlBNIHNwZWNpZmljYXRpb24gZmlsZQotKwotKyogU2F0IEFwciAxOCAy MDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC00Ci0r LSBGaXhlZCBhbiBpc3N1ZSBhYm91dCBPUFRGTEFHUyBjb21waWxhdGlvbgotKwotKyogVHVlIEFw ciAxNCAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAu MC0zCi0rLSBSZXN0YXJ0ZWQgZnJvbSBwcmlzdGluZSB2ZXJzaW9uIDMuMC4wIG9mIHVwc3RyZWFt IChTT0NJKSBwcm9qZWN0Ci0rCi0rKiBTYXQgQXByICA0IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5p cy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTIKLSstIFNwZWNpZmljIFJQTSBmb3IgZWFj aCBiYWNrZW5kCi0rCi0rKiBGcmkgTWFyIDI3IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5h dWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTEKLSstIEZpcnN0IFJQTSByZWxlYXNlCgpkaWZmIC0t Z2l0IGEvc29jaS0zLjAuMC1hZGQtZG9jLnBhdGNoIGIvc29jaS0zLjAuMC1hZGQtZG9jLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4ZDY4NjIKLS0tIC9kZXYvbnVs bAorKysgYi9zb2NpLTMuMC4wLWFkZC1kb2MucGF0Y2gKQEAgLTAsMCArMSwzODkgQEAKK2RpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9BVVRIT1JTIHNvY2ktMy4wLjBfdHJlcDMwMC9BVVRIT1JT CistLS0gc29jaS0zLjAuMF80LXBhY2svQVVUSE9SUwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9BVVRIT1JTCTIwMDktMDQtMTYgMTk6 Mzc6MTAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDkgQEAKKysKKytEYXZpZCBDb3VydG5l eSwgRGV2ZWxvcGVyLCBkYWNvdXJ0bmV5IGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAorK01hdGV1 c3ogTG9za290LCBEZXZlbG9wZXIsIG1sb3Nrb3QgYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0Cisr TWFjaWVqIFNvYmN6YWssIEFkbWluIFByb2plY3QgTWFuYWdlciwgbXNvYmN6YWsgYXQgdXNlcnMu c291cmNlZm9yZ2UubmV0CisrUGF3ZWwgQWxla3NhbmRlciBGZWRvcnluc2tpLCBEZXZlbG9wZXIs IHBmZWRvciBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKKytSYWZhbCBCb2Jyb3dza2ksIERldmVs b3BlciwgcmJvYnJvIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAorK0plYW4tTWFyYywgRGV2ZWxv cGVyLCBzaWRqdGFsIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAorK1N0ZXBoZW4gSHV0dG9uLCBE ZXZlbG9wZXIsIHN0ZXBoZW5odXR0b24gYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0CisrCitkaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svSU5TVEFMTCBzb2NpLTMuMC4wX3RyZXAzMDAvSU5TVEFM TAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL0lOU1RBTEwJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvSU5TVEFMTAkyMDExLTAyLTA4IDIy OjM5OjU3LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSwzNjUgQEAKKytJbnN0YWxsYXRpb24g SW5zdHJ1Y3Rpb25zCisrKioqKioqKioqKioqKioqKioqKioqKioqKgorKworK0NvcHlyaWdodCAo QykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwNCwgMjAwNSwK KysyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor KworKyAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpbGUsIHdpdGggb3Igd2l0 aG91dCBtb2RpZmljYXRpb24sCisrYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQg cm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0Cisrbm90aWNlIGFuZCB0aGlzIG5vdGljZSBh cmUgcHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIG9mZmVyZWQgYXMtaXMsCisrd2l0aG91dCB3YXJy YW50eSBvZiBhbnkga2luZC4KKysKKytCYXNpYyBJbnN0YWxsYXRpb24KKys9PT09PT09PT09PT09 PT09PT0KKysKKysgICBCcmllZmx5LCB0aGUgc2hlbGwgY29tbWFuZHMgYC4vY29uZmlndXJlOyBt YWtlOyBtYWtlIGluc3RhbGwnIHNob3VsZAorK2NvbmZpZ3VyZSwgYnVpbGQsIGFuZCBpbnN0YWxs IHRoaXMgcGFja2FnZS4gIFRoZSBmb2xsb3dpbmcKKyttb3JlLWRldGFpbGVkIGluc3RydWN0aW9u cyBhcmUgZ2VuZXJpYzsgc2VlIHRoZSBgUkVBRE1FJyBmaWxlIGZvcgorK2luc3RydWN0aW9ucyBz cGVjaWZpYyB0byB0aGlzIHBhY2thZ2UuICBTb21lIHBhY2thZ2VzIHByb3ZpZGUgdGhpcworK2BJ TlNUQUxMJyBmaWxlIGJ1dCBkbyBub3QgaW1wbGVtZW50IGFsbCBvZiB0aGUgZmVhdHVyZXMgZG9j dW1lbnRlZAorK2JlbG93LiAgVGhlIGxhY2sgb2YgYW4gb3B0aW9uYWwgZmVhdHVyZSBpbiBhIGdp dmVuIHBhY2thZ2UgaXMgbm90CisrbmVjZXNzYXJpbHkgYSBidWcuICBNb3JlIHJlY29tbWVuZGF0 aW9ucyBmb3IgR05VIHBhY2thZ2VzIGNhbiBiZSBmb3VuZAorK2luICpub3RlIE1ha2VmaWxlIENv bnZlbnRpb25zOiAoc3RhbmRhcmRzKU1ha2VmaWxlIENvbnZlbnRpb25zLgorKworKyAgIFRoZSBg Y29uZmlndXJlJyBzaGVsbCBzY3JpcHQgYXR0ZW1wdHMgdG8gZ3Vlc3MgY29ycmVjdCB2YWx1ZXMg Zm9yCisrdmFyaW91cyBzeXN0ZW0tZGVwZW5kZW50IHZhcmlhYmxlcyB1c2VkIGR1cmluZyBjb21w aWxhdGlvbi4gIEl0IHVzZXMKKyt0aG9zZSB2YWx1ZXMgdG8gY3JlYXRlIGEgYE1ha2VmaWxlJyBp biBlYWNoIGRpcmVjdG9yeSBvZiB0aGUgcGFja2FnZS4KKytJdCBtYXkgYWxzbyBjcmVhdGUgb25l IG9yIG1vcmUgYC5oJyBmaWxlcyBjb250YWluaW5nIHN5c3RlbS1kZXBlbmRlbnQKKytkZWZpbml0 aW9ucy4gIEZpbmFsbHksIGl0IGNyZWF0ZXMgYSBzaGVsbCBzY3JpcHQgYGNvbmZpZy5zdGF0dXMn IHRoYXQKKyt5b3UgY2FuIHJ1biBpbiB0aGUgZnV0dXJlIHRvIHJlY3JlYXRlIHRoZSBjdXJyZW50 IGNvbmZpZ3VyYXRpb24sIGFuZCBhCisrZmlsZSBgY29uZmlnLmxvZycgY29udGFpbmluZyBjb21w aWxlciBvdXRwdXQgKHVzZWZ1bCBtYWlubHkgZm9yCisrZGVidWdnaW5nIGBjb25maWd1cmUnKS4K KysKKysgICBJdCBjYW4gYWxzbyB1c2UgYW4gb3B0aW9uYWwgZmlsZSAodHlwaWNhbGx5IGNhbGxl ZCBgY29uZmlnLmNhY2hlJworK2FuZCBlbmFibGVkIHdpdGggYC0tY2FjaGUtZmlsZT1jb25maWcu Y2FjaGUnIG9yIHNpbXBseSBgLUMnKSB0aGF0IHNhdmVzCisrdGhlIHJlc3VsdHMgb2YgaXRzIHRl c3RzIHRvIHNwZWVkIHVwIHJlY29uZmlndXJpbmcuICBDYWNoaW5nIGlzCisrZGlzYWJsZWQgYnkg ZGVmYXVsdCB0byBwcmV2ZW50IHByb2JsZW1zIHdpdGggYWNjaWRlbnRhbCB1c2Ugb2Ygc3RhbGUK KytjYWNoZSBmaWxlcy4KKysKKysgICBJZiB5b3UgbmVlZCB0byBkbyB1bnVzdWFsIHRoaW5ncyB0 byBjb21waWxlIHRoZSBwYWNrYWdlLCBwbGVhc2UgdHJ5CisrdG8gZmlndXJlIG91dCBob3cgYGNv bmZpZ3VyZScgY291bGQgY2hlY2sgd2hldGhlciB0byBkbyB0aGVtLCBhbmQgbWFpbAorK2RpZmZz IG9yIGluc3RydWN0aW9ucyB0byB0aGUgYWRkcmVzcyBnaXZlbiBpbiB0aGUgYFJFQURNRScgc28g dGhleSBjYW4KKytiZSBjb25zaWRlcmVkIGZvciB0aGUgbmV4dCByZWxlYXNlLiAgSWYgeW91IGFy ZSB1c2luZyB0aGUgY2FjaGUsIGFuZCBhdAorK3NvbWUgcG9pbnQgYGNvbmZpZy5jYWNoZScgY29u dGFpbnMgcmVzdWx0cyB5b3UgZG9uJ3Qgd2FudCB0byBrZWVwLCB5b3UKKyttYXkgcmVtb3ZlIG9y IGVkaXQgaXQuCisrCisrICAgVGhlIGZpbGUgYGNvbmZpZ3VyZS5hYycgKG9yIGBjb25maWd1cmUu aW4nKSBpcyB1c2VkIHRvIGNyZWF0ZQorK2Bjb25maWd1cmUnIGJ5IGEgcHJvZ3JhbSBjYWxsZWQg YGF1dG9jb25mJy4gIFlvdSBuZWVkIGBjb25maWd1cmUuYWMnIGlmCisreW91IHdhbnQgdG8gY2hh bmdlIGl0IG9yIHJlZ2VuZXJhdGUgYGNvbmZpZ3VyZScgdXNpbmcgYSBuZXdlciB2ZXJzaW9uCisr b2YgYGF1dG9jb25mJy4KKysKKysgICBUaGUgc2ltcGxlc3Qgd2F5IHRvIGNvbXBpbGUgdGhpcyBw YWNrYWdlIGlzOgorKworKyAgMS4gYGNkJyB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhl IHBhY2thZ2UncyBzb3VyY2UgY29kZSBhbmQgdHlwZQorKyAgICAgYC4vY29uZmlndXJlJyB0byBj b25maWd1cmUgdGhlIHBhY2thZ2UgZm9yIHlvdXIgc3lzdGVtLgorKworKyAgICAgUnVubmluZyBg Y29uZmlndXJlJyBtaWdodCB0YWtlIGEgd2hpbGUuICBXaGlsZSBydW5uaW5nLCBpdCBwcmludHMK KysgICAgIHNvbWUgbWVzc2FnZXMgdGVsbGluZyB3aGljaCBmZWF0dXJlcyBpdCBpcyBjaGVja2lu ZyBmb3IuCisrCisrICAyLiBUeXBlIGBtYWtlJyB0byBjb21waWxlIHRoZSBwYWNrYWdlLgorKwor KyAgMy4gT3B0aW9uYWxseSwgdHlwZSBgbWFrZSBjaGVjaycgdG8gcnVuIGFueSBzZWxmLXRlc3Rz IHRoYXQgY29tZSB3aXRoCisrICAgICB0aGUgcGFja2FnZSwgZ2VuZXJhbGx5IHVzaW5nIHRoZSBq dXN0LWJ1aWx0IHVuaW5zdGFsbGVkIGJpbmFyaWVzLgorKworKyAgNC4gVHlwZSBgbWFrZSBpbnN0 YWxsJyB0byBpbnN0YWxsIHRoZSBwcm9ncmFtcyBhbmQgYW55IGRhdGEgZmlsZXMgYW5kCisrICAg ICBkb2N1bWVudGF0aW9uLiAgV2hlbiBpbnN0YWxsaW5nIGludG8gYSBwcmVmaXggb3duZWQgYnkg cm9vdCwgaXQgaXMKKysgICAgIHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhY2thZ2UgYmUgY29uZmln dXJlZCBhbmQgYnVpbHQgYXMgYSByZWd1bGFyCisrICAgICB1c2VyLCBhbmQgb25seSB0aGUgYG1h a2UgaW5zdGFsbCcgcGhhc2UgZXhlY3V0ZWQgd2l0aCByb290CisrICAgICBwcml2aWxlZ2VzLgor KworKyAgNS4gT3B0aW9uYWxseSwgdHlwZSBgbWFrZSBpbnN0YWxsY2hlY2snIHRvIHJlcGVhdCBh bnkgc2VsZi10ZXN0cywgYnV0CisrICAgICB0aGlzIHRpbWUgdXNpbmcgdGhlIGJpbmFyaWVzIGlu IHRoZWlyIGZpbmFsIGluc3RhbGxlZCBsb2NhdGlvbi4KKysgICAgIFRoaXMgdGFyZ2V0IGRvZXMg bm90IGluc3RhbGwgYW55dGhpbmcuICBSdW5uaW5nIHRoaXMgdGFyZ2V0IGFzIGEKKysgICAgIHJl Z3VsYXIgdXNlciwgcGFydGljdWxhcmx5IGlmIHRoZSBwcmlvciBgbWFrZSBpbnN0YWxsJyByZXF1 aXJlZAorKyAgICAgcm9vdCBwcml2aWxlZ2VzLCB2ZXJpZmllcyB0aGF0IHRoZSBpbnN0YWxsYXRp b24gY29tcGxldGVkCisrICAgICBjb3JyZWN0bHkuCisrCisrICA2LiBZb3UgY2FuIHJlbW92ZSB0 aGUgcHJvZ3JhbSBiaW5hcmllcyBhbmQgb2JqZWN0IGZpbGVzIGZyb20gdGhlCisrICAgICBzb3Vy Y2UgY29kZSBkaXJlY3RvcnkgYnkgdHlwaW5nIGBtYWtlIGNsZWFuJy4gIFRvIGFsc28gcmVtb3Zl IHRoZQorKyAgICAgZmlsZXMgdGhhdCBgY29uZmlndXJlJyBjcmVhdGVkIChzbyB5b3UgY2FuIGNv bXBpbGUgdGhlIHBhY2thZ2UgZm9yCisrICAgICBhIGRpZmZlcmVudCBraW5kIG9mIGNvbXB1dGVy KSwgdHlwZSBgbWFrZSBkaXN0Y2xlYW4nLiAgVGhlcmUgaXMKKysgICAgIGFsc28gYSBgbWFrZSBt YWludGFpbmVyLWNsZWFuJyB0YXJnZXQsIGJ1dCB0aGF0IGlzIGludGVuZGVkIG1haW5seQorKyAg ICAgZm9yIHRoZSBwYWNrYWdlJ3MgZGV2ZWxvcGVycy4gIElmIHlvdSB1c2UgaXQsIHlvdSBtYXkg aGF2ZSB0byBnZXQKKysgICAgIGFsbCBzb3J0cyBvZiBvdGhlciBwcm9ncmFtcyBpbiBvcmRlciB0 byByZWdlbmVyYXRlIGZpbGVzIHRoYXQgY2FtZQorKyAgICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9u LgorKworKyAgNy4gT2Z0ZW4sIHlvdSBjYW4gYWxzbyB0eXBlIGBtYWtlIHVuaW5zdGFsbCcgdG8g cmVtb3ZlIHRoZSBpbnN0YWxsZWQKKysgICAgIGZpbGVzIGFnYWluLiAgSW4gcHJhY3RpY2UsIG5v dCBhbGwgcGFja2FnZXMgaGF2ZSB0ZXN0ZWQgdGhhdAorKyAgICAgdW5pbnN0YWxsYXRpb24gd29y a3MgY29ycmVjdGx5LCBldmVuIHRob3VnaCBpdCBpcyByZXF1aXJlZCBieSB0aGUKKysgICAgIEdO VSBDb2RpbmcgU3RhbmRhcmRzLgorKworKyAgOC4gU29tZSBwYWNrYWdlcywgcGFydGljdWxhcmx5 IHRob3NlIHRoYXQgdXNlIEF1dG9tYWtlLCBwcm92aWRlIGBtYWtlCisrICAgICBkaXN0Y2hlY2sn LCB3aGljaCBjYW4gYnkgdXNlZCBieSBkZXZlbG9wZXJzIHRvIHRlc3QgdGhhdCBhbGwgb3RoZXIK KysgICAgIHRhcmdldHMgbGlrZSBgbWFrZSBpbnN0YWxsJyBhbmQgYG1ha2UgdW5pbnN0YWxsJyB3 b3JrIGNvcnJlY3RseS4KKysgICAgIFRoaXMgdGFyZ2V0IGlzIGdlbmVyYWxseSBub3QgcnVuIGJ5 IGVuZCB1c2Vycy4KKysKKytDb21waWxlcnMgYW5kIE9wdGlvbnMKKys9PT09PT09PT09PT09PT09 PT09PT0KKysKKysgICBTb21lIHN5c3RlbXMgcmVxdWlyZSB1bnVzdWFsIG9wdGlvbnMgZm9yIGNv bXBpbGF0aW9uIG9yIGxpbmtpbmcgdGhhdAorK3RoZSBgY29uZmlndXJlJyBzY3JpcHQgZG9lcyBu b3Qga25vdyBhYm91dC4gIFJ1biBgLi9jb25maWd1cmUgLS1oZWxwJworK2ZvciBkZXRhaWxzIG9u IHNvbWUgb2YgdGhlIHBlcnRpbmVudCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCisrCisrICAgWW91 IGNhbiBnaXZlIGBjb25maWd1cmUnIGluaXRpYWwgdmFsdWVzIGZvciBjb25maWd1cmF0aW9uIHBh cmFtZXRlcnMKKytieSBzZXR0aW5nIHZhcmlhYmxlcyBpbiB0aGUgY29tbWFuZCBsaW5lIG9yIGlu IHRoZSBlbnZpcm9ubWVudC4gIEhlcmUKKytpcyBhbiBleGFtcGxlOgorKworKyAgICAgLi9jb25m aWd1cmUgQ0M9Yzk5IENGTEFHUz0tZyBMSUJTPS1scG9zaXgKKysKKysgICAqTm90ZSBEZWZpbmlu ZyBWYXJpYWJsZXM6OiwgZm9yIG1vcmUgZGV0YWlscy4KKysKKytDb21waWxpbmcgRm9yIE11bHRp cGxlIEFyY2hpdGVjdHVyZXMKKys9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K KysKKysgICBZb3UgY2FuIGNvbXBpbGUgdGhlIHBhY2thZ2UgZm9yIG1vcmUgdGhhbiBvbmUga2lu ZCBvZiBjb21wdXRlciBhdCB0aGUKKytzYW1lIHRpbWUsIGJ5IHBsYWNpbmcgdGhlIG9iamVjdCBm aWxlcyBmb3IgZWFjaCBhcmNoaXRlY3R1cmUgaW4gdGhlaXIKKytvd24gZGlyZWN0b3J5LiAgVG8g ZG8gdGhpcywgeW91IGNhbiB1c2UgR05VIGBtYWtlJy4gIGBjZCcgdG8gdGhlCisrZGlyZWN0b3J5 IHdoZXJlIHlvdSB3YW50IHRoZSBvYmplY3QgZmlsZXMgYW5kIGV4ZWN1dGFibGVzIHRvIGdvIGFu ZCBydW4KKyt0aGUgYGNvbmZpZ3VyZScgc2NyaXB0LiAgYGNvbmZpZ3VyZScgYXV0b21hdGljYWxs eSBjaGVja3MgZm9yIHRoZQorK3NvdXJjZSBjb2RlIGluIHRoZSBkaXJlY3RvcnkgdGhhdCBgY29u ZmlndXJlJyBpcyBpbiBhbmQgaW4gYC4uJy4gIFRoaXMKKytpcyBrbm93biBhcyBhICJWUEFUSCIg YnVpbGQuCisrCisrICAgV2l0aCBhIG5vbi1HTlUgYG1ha2UnLCBpdCBpcyBzYWZlciB0byBjb21w aWxlIHRoZSBwYWNrYWdlIGZvciBvbmUKKythcmNoaXRlY3R1cmUgYXQgYSB0aW1lIGluIHRoZSBz b3VyY2UgY29kZSBkaXJlY3RvcnkuICBBZnRlciB5b3UgaGF2ZQorK2luc3RhbGxlZCB0aGUgcGFj a2FnZSBmb3Igb25lIGFyY2hpdGVjdHVyZSwgdXNlIGBtYWtlIGRpc3RjbGVhbicgYmVmb3JlCisr cmVjb25maWd1cmluZyBmb3IgYW5vdGhlciBhcmNoaXRlY3R1cmUuCisrCisrICAgT24gTWFjT1Mg WCAxMC41IGFuZCBsYXRlciBzeXN0ZW1zLCB5b3UgY2FuIGNyZWF0ZSBsaWJyYXJpZXMgYW5kCisr ZXhlY3V0YWJsZXMgdGhhdCB3b3JrIG9uIG11bHRpcGxlIHN5c3RlbSB0eXBlcy0ta25vd24gYXMg ImZhdCIgb3IKKysidW5pdmVyc2FsIiBiaW5hcmllcy0tYnkgc3BlY2lmeWluZyBtdWx0aXBsZSBg LWFyY2gnIG9wdGlvbnMgdG8gdGhlCisrY29tcGlsZXIgYnV0IG9ubHkgYSBzaW5nbGUgYC1hcmNo JyBvcHRpb24gdG8gdGhlIHByZXByb2Nlc3Nvci4gIExpa2UKKyt0aGlzOgorKworKyAgICAgLi9j b25maWd1cmUgQ0M9ImdjYyAtYXJjaCBpMzg2IC1hcmNoIHg4Nl82NCAtYXJjaCBwcGMgLWFyY2gg cHBjNjQiIFwKKysgICAgICAgICAgICAgICAgIENYWD0iZysrIC1hcmNoIGkzODYgLWFyY2ggeDg2 XzY0IC1hcmNoIHBwYyAtYXJjaCBwcGM2NCIgXAorKyAgICAgICAgICAgICAgICAgQ1BQPSJnY2Mg LUUiIENYWENQUD0iZysrIC1FIgorKworKyAgIFRoaXMgaXMgbm90IGd1YXJhbnRlZWQgdG8gcHJv ZHVjZSB3b3JraW5nIG91dHB1dCBpbiBhbGwgY2FzZXMsIHlvdQorK21heSBoYXZlIHRvIGJ1aWxk IG9uZSBhcmNoaXRlY3R1cmUgYXQgYSB0aW1lIGFuZCBjb21iaW5lIHRoZSByZXN1bHRzCisrdXNp bmcgdGhlIGBsaXBvJyB0b29sIGlmIHlvdSBoYXZlIHByb2JsZW1zLgorKworK0luc3RhbGxhdGlv biBOYW1lcworKz09PT09PT09PT09PT09PT09PQorKworKyAgIEJ5IGRlZmF1bHQsIGBtYWtlIGlu c3RhbGwnIGluc3RhbGxzIHRoZSBwYWNrYWdlJ3MgY29tbWFuZHMgdW5kZXIKKytgL3Vzci9sb2Nh bC9iaW4nLCBpbmNsdWRlIGZpbGVzIHVuZGVyIGAvdXNyL2xvY2FsL2luY2x1ZGUnLCBldGMuICBZ b3UKKytjYW4gc3BlY2lmeSBhbiBpbnN0YWxsYXRpb24gcHJlZml4IG90aGVyIHRoYW4gYC91c3Iv bG9jYWwnIGJ5IGdpdmluZworK2Bjb25maWd1cmUnIHRoZSBvcHRpb24gYC0tcHJlZml4PVBSRUZJ WCcsIHdoZXJlIFBSRUZJWCBtdXN0IGJlIGFuCisrYWJzb2x1dGUgZmlsZSBuYW1lLgorKworKyAg IFlvdSBjYW4gc3BlY2lmeSBzZXBhcmF0ZSBpbnN0YWxsYXRpb24gcHJlZml4ZXMgZm9yCisrYXJj aGl0ZWN0dXJlLXNwZWNpZmljIGZpbGVzIGFuZCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZmls ZXMuICBJZiB5b3UKKytwYXNzIHRoZSBvcHRpb24gYC0tZXhlYy1wcmVmaXg9UFJFRklYJyB0byBg Y29uZmlndXJlJywgdGhlIHBhY2thZ2UgdXNlcworK1BSRUZJWCBhcyB0aGUgcHJlZml4IGZvciBp bnN0YWxsaW5nIHByb2dyYW1zIGFuZCBsaWJyYXJpZXMuCisrRG9jdW1lbnRhdGlvbiBhbmQgb3Ro ZXIgZGF0YSBmaWxlcyBzdGlsbCB1c2UgdGhlIHJlZ3VsYXIgcHJlZml4LgorKworKyAgIEluIGFk ZGl0aW9uLCBpZiB5b3UgdXNlIGFuIHVudXN1YWwgZGlyZWN0b3J5IGxheW91dCB5b3UgY2FuIGdp dmUKKytvcHRpb25zIGxpa2UgYC0tYmluZGlyPURJUicgdG8gc3BlY2lmeSBkaWZmZXJlbnQgdmFs dWVzIGZvciBwYXJ0aWN1bGFyCisra2luZHMgb2YgZmlsZXMuICBSdW4gYGNvbmZpZ3VyZSAtLWhl bHAnIGZvciBhIGxpc3Qgb2YgdGhlIGRpcmVjdG9yaWVzCisreW91IGNhbiBzZXQgYW5kIHdoYXQg a2luZHMgb2YgZmlsZXMgZ28gaW4gdGhlbS4gIEluIGdlbmVyYWwsIHRoZQorK2RlZmF1bHQgZm9y IHRoZXNlIG9wdGlvbnMgaXMgZXhwcmVzc2VkIGluIHRlcm1zIG9mIGAke3ByZWZpeH0nLCBzbyB0 aGF0Cisrc3BlY2lmeWluZyBqdXN0IGAtLXByZWZpeCcgd2lsbCBhZmZlY3QgYWxsIG9mIHRoZSBv dGhlciBkaXJlY3RvcnkKKytzcGVjaWZpY2F0aW9ucyB0aGF0IHdlcmUgbm90IGV4cGxpY2l0bHkg cHJvdmlkZWQuCisrCisrICAgVGhlIG1vc3QgcG9ydGFibGUgd2F5IHRvIGFmZmVjdCBpbnN0YWxs YXRpb24gbG9jYXRpb25zIGlzIHRvIHBhc3MgdGhlCisrY29ycmVjdCBsb2NhdGlvbnMgdG8gYGNv bmZpZ3VyZSc7IGhvd2V2ZXIsIG1hbnkgcGFja2FnZXMgcHJvdmlkZSBvbmUgb3IKKytib3RoIG9m IHRoZSBmb2xsb3dpbmcgc2hvcnRjdXRzIG9mIHBhc3NpbmcgdmFyaWFibGUgYXNzaWdubWVudHMg dG8gdGhlCisrYG1ha2UgaW5zdGFsbCcgY29tbWFuZCBsaW5lIHRvIGNoYW5nZSBpbnN0YWxsYXRp b24gbG9jYXRpb25zIHdpdGhvdXQKKytoYXZpbmcgdG8gcmVjb25maWd1cmUgb3IgcmVjb21waWxl LgorKworKyAgIFRoZSBmaXJzdCBtZXRob2QgaW52b2x2ZXMgcHJvdmlkaW5nIGFuIG92ZXJyaWRl IHZhcmlhYmxlIGZvciBlYWNoCisrYWZmZWN0ZWQgZGlyZWN0b3J5LiAgRm9yIGV4YW1wbGUsIGBt YWtlIGluc3RhbGwKKytwcmVmaXg9L2FsdGVybmF0ZS9kaXJlY3RvcnknIHdpbGwgY2hvb3NlIGFu IGFsdGVybmF0ZSBsb2NhdGlvbiBmb3IgYWxsCisrZGlyZWN0b3J5IGNvbmZpZ3VyYXRpb24gdmFy aWFibGVzIHRoYXQgd2VyZSBleHByZXNzZWQgaW4gdGVybXMgb2YKKytgJHtwcmVmaXh9Jy4gIEFu eSBkaXJlY3RvcmllcyB0aGF0IHdlcmUgc3BlY2lmaWVkIGR1cmluZyBgY29uZmlndXJlJywKKyti dXQgbm90IGluIHRlcm1zIG9mIGAke3ByZWZpeH0nLCBtdXN0IGVhY2ggYmUgb3ZlcnJpZGRlbiBh dCBpbnN0YWxsCisrdGltZSBmb3IgdGhlIGVudGlyZSBpbnN0YWxsYXRpb24gdG8gYmUgcmVsb2Nh dGVkLiAgVGhlIGFwcHJvYWNoIG9mCisrbWFrZWZpbGUgdmFyaWFibGUgb3ZlcnJpZGVzIGZvciBl YWNoIGRpcmVjdG9yeSB2YXJpYWJsZSBpcyByZXF1aXJlZCBieQorK3RoZSBHTlUgQ29kaW5nIFN0 YW5kYXJkcywgYW5kIGlkZWFsbHkgY2F1c2VzIG5vIHJlY29tcGlsYXRpb24uCisrSG93ZXZlciwg c29tZSBwbGF0Zm9ybXMgaGF2ZSBrbm93biBsaW1pdGF0aW9ucyB3aXRoIHRoZSBzZW1hbnRpY3Mg b2YKKytzaGFyZWQgbGlicmFyaWVzIHRoYXQgZW5kIHVwIHJlcXVpcmluZyByZWNvbXBpbGF0aW9u IHdoZW4gdXNpbmcgdGhpcworK21ldGhvZCwgcGFydGljdWxhcmx5IG5vdGljZWFibGUgaW4gcGFj a2FnZXMgdGhhdCB1c2UgR05VIExpYnRvb2wuCisrCisrICAgVGhlIHNlY29uZCBtZXRob2QgaW52 b2x2ZXMgcHJvdmlkaW5nIHRoZSBgREVTVERJUicgdmFyaWFibGUuICBGb3IKKytleGFtcGxlLCBg bWFrZSBpbnN0YWxsIERFU1RESVI9L2FsdGVybmF0ZS9kaXJlY3RvcnknIHdpbGwgcHJlcGVuZAor K2AvYWx0ZXJuYXRlL2RpcmVjdG9yeScgYmVmb3JlIGFsbCBpbnN0YWxsYXRpb24gbmFtZXMuICBU aGUgYXBwcm9hY2ggb2YKKytgREVTVERJUicgb3ZlcnJpZGVzIGlzIG5vdCByZXF1aXJlZCBieSB0 aGUgR05VIENvZGluZyBTdGFuZGFyZHMsIGFuZAorK2RvZXMgbm90IHdvcmsgb24gcGxhdGZvcm1z IHRoYXQgaGF2ZSBkcml2ZSBsZXR0ZXJzLiAgT24gdGhlIG90aGVyIGhhbmQsCisraXQgZG9lcyBi ZXR0ZXIgYXQgYXZvaWRpbmcgcmVjb21waWxhdGlvbiBpc3N1ZXMsIGFuZCB3b3JrcyB3ZWxsIGV2 ZW4KKyt3aGVuIHNvbWUgZGlyZWN0b3J5IG9wdGlvbnMgd2VyZSBub3Qgc3BlY2lmaWVkIGluIHRl cm1zIG9mIGAke3ByZWZpeH0nCisrYXQgYGNvbmZpZ3VyZScgdGltZS4KKysKKytPcHRpb25hbCBG ZWF0dXJlcworKz09PT09PT09PT09PT09PT09CisrCisrICAgSWYgdGhlIHBhY2thZ2Ugc3VwcG9y dHMgaXQsIHlvdSBjYW4gY2F1c2UgcHJvZ3JhbXMgdG8gYmUgaW5zdGFsbGVkCisrd2l0aCBhbiBl eHRyYSBwcmVmaXggb3Igc3VmZml4IG9uIHRoZWlyIG5hbWVzIGJ5IGdpdmluZyBgY29uZmlndXJl JyB0aGUKKytvcHRpb24gYC0tcHJvZ3JhbS1wcmVmaXg9UFJFRklYJyBvciBgLS1wcm9ncmFtLXN1 ZmZpeD1TVUZGSVgnLgorKworKyAgIFNvbWUgcGFja2FnZXMgcGF5IGF0dGVudGlvbiB0byBgLS1l bmFibGUtRkVBVFVSRScgb3B0aW9ucyB0bworK2Bjb25maWd1cmUnLCB3aGVyZSBGRUFUVVJFIGlu ZGljYXRlcyBhbiBvcHRpb25hbCBwYXJ0IG9mIHRoZSBwYWNrYWdlLgorK1RoZXkgbWF5IGFsc28g cGF5IGF0dGVudGlvbiB0byBgLS13aXRoLVBBQ0tBR0UnIG9wdGlvbnMsIHdoZXJlIFBBQ0tBR0UK KytpcyBzb21ldGhpbmcgbGlrZSBgZ251LWFzJyBvciBgeCcgKGZvciB0aGUgWCBXaW5kb3cgU3lz dGVtKS4gIFRoZQorK2BSRUFETUUnIHNob3VsZCBtZW50aW9uIGFueSBgLS1lbmFibGUtJyBhbmQg YC0td2l0aC0nIG9wdGlvbnMgdGhhdCB0aGUKKytwYWNrYWdlIHJlY29nbml6ZXMuCisrCisrICAg Rm9yIHBhY2thZ2VzIHRoYXQgdXNlIHRoZSBYIFdpbmRvdyBTeXN0ZW0sIGBjb25maWd1cmUnIGNh biB1c3VhbGx5CisrZmluZCB0aGUgWCBpbmNsdWRlIGFuZCBsaWJyYXJ5IGZpbGVzIGF1dG9tYXRp Y2FsbHksIGJ1dCBpZiBpdCBkb2Vzbid0LAorK3lvdSBjYW4gdXNlIHRoZSBgY29uZmlndXJlJyBv cHRpb25zIGAtLXgtaW5jbHVkZXM9RElSJyBhbmQKKytgLS14LWxpYnJhcmllcz1ESVInIHRvIHNw ZWNpZnkgdGhlaXIgbG9jYXRpb25zLgorKworKyAgIFNvbWUgcGFja2FnZXMgb2ZmZXIgdGhlIGFi aWxpdHkgdG8gY29uZmlndXJlIGhvdyB2ZXJib3NlIHRoZQorK2V4ZWN1dGlvbiBvZiBgbWFrZScg d2lsbCBiZS4gIEZvciB0aGVzZSBwYWNrYWdlcywgcnVubmluZyBgLi9jb25maWd1cmUKKystLWVu YWJsZS1zaWxlbnQtcnVsZXMnIHNldHMgdGhlIGRlZmF1bHQgdG8gbWluaW1hbCBvdXRwdXQsIHdo aWNoIGNhbiBiZQorK292ZXJyaWRkZW4gd2l0aCBgbWFrZSBWPTEnOyB3aGlsZSBydW5uaW5nIGAu L2NvbmZpZ3VyZQorKy0tZGlzYWJsZS1zaWxlbnQtcnVsZXMnIHNldHMgdGhlIGRlZmF1bHQgdG8g dmVyYm9zZSwgd2hpY2ggY2FuIGJlCisrb3ZlcnJpZGRlbiB3aXRoIGBtYWtlIFY9MCcuCisrCisr UGFydGljdWxhciBzeXN0ZW1zCisrPT09PT09PT09PT09PT09PT09CisrCisrICAgT24gSFAtVVgs IHRoZSBkZWZhdWx0IEMgY29tcGlsZXIgaXMgbm90IEFOU0kgQyBjb21wYXRpYmxlLiAgSWYgR05V CisrQ0MgaXMgbm90IGluc3RhbGxlZCwgaXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIHRoZSBmb2xs b3dpbmcgb3B0aW9ucyBpbgorK29yZGVyIHRvIHVzZSBhbiBBTlNJIEMgY29tcGlsZXI6CisrCisr ICAgICAuL2NvbmZpZ3VyZSBDQz0iY2MgLUFlIC1EX1hPUEVOX1NPVVJDRT01MDAiCisrCisrYW5k IGlmIHRoYXQgZG9lc24ndCB3b3JrLCBpbnN0YWxsIHByZS1idWlsdCBiaW5hcmllcyBvZiBHQ0Mg Zm9yIEhQLVVYLgorKworKyAgIE9uIE9TRi8xIGEuay5hLiBUcnU2NCwgc29tZSB2ZXJzaW9ucyBv ZiB0aGUgZGVmYXVsdCBDIGNvbXBpbGVyIGNhbm5vdAorK3BhcnNlIGl0cyBgPHdjaGFyLmg+JyBo ZWFkZXIgZmlsZS4gIFRoZSBvcHRpb24gYC1ub2R0aycgY2FuIGJlIHVzZWQgYXMKKythIHdvcmth cm91bmQuICBJZiBHTlUgQ0MgaXMgbm90IGluc3RhbGxlZCwgaXQgaXMgdGhlcmVmb3JlIHJlY29t bWVuZGVkCisrdG8gdHJ5CisrCisrICAgICAuL2NvbmZpZ3VyZSBDQz0iY2MiCisrCisrYW5kIGlm IHRoYXQgZG9lc24ndCB3b3JrLCB0cnkKKysKKysgICAgIC4vY29uZmlndXJlIENDPSJjYyAtbm9k dGsiCisrCisrICAgT24gU29sYXJpcywgZG9uJ3QgcHV0IGAvdXNyL3VjYicgZWFybHkgaW4geW91 ciBgUEFUSCcuICBUaGlzCisrZGlyZWN0b3J5IGNvbnRhaW5zIHNldmVyYWwgZHlzZnVuY3Rpb25h bCBwcm9ncmFtczsgd29ya2luZyB2YXJpYW50cyBvZgorK3RoZXNlIHByb2dyYW1zIGFyZSBhdmFp bGFibGUgaW4gYC91c3IvYmluJy4gIFNvLCBpZiB5b3UgbmVlZCBgL3Vzci91Y2InCisraW4geW91 ciBgUEFUSCcsIHB1dCBpdCBfYWZ0ZXJfIGAvdXNyL2JpbicuCisrCisrICAgT24gSGFpa3UsIHNv ZnR3YXJlIGluc3RhbGxlZCBmb3IgYWxsIHVzZXJzIGdvZXMgaW4gYC9ib290L2NvbW1vbicsCisr bm90IGAvdXNyL2xvY2FsJy4gIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGUgZm9sbG93aW5n IG9wdGlvbnM6CisrCisrICAgICAuL2NvbmZpZ3VyZSAtLXByZWZpeD0vYm9vdC9jb21tb24KKysK KytTcGVjaWZ5aW5nIHRoZSBTeXN0ZW0gVHlwZQorKz09PT09PT09PT09PT09PT09PT09PT09PT09 CisrCisrICAgVGhlcmUgbWF5IGJlIHNvbWUgZmVhdHVyZXMgYGNvbmZpZ3VyZScgY2Fubm90IGZp Z3VyZSBvdXQKKythdXRvbWF0aWNhbGx5LCBidXQgbmVlZHMgdG8gZGV0ZXJtaW5lIGJ5IHRoZSB0 eXBlIG9mIG1hY2hpbmUgdGhlIHBhY2thZ2UKKyt3aWxsIHJ1biBvbi4gIFVzdWFsbHksIGFzc3Vt aW5nIHRoZSBwYWNrYWdlIGlzIGJ1aWx0IHRvIGJlIHJ1biBvbiB0aGUKKytfc2FtZV8gYXJjaGl0 ZWN0dXJlcywgYGNvbmZpZ3VyZScgY2FuIGZpZ3VyZSB0aGF0IG91dCwgYnV0IGlmIGl0IHByaW50 cworK2EgbWVzc2FnZSBzYXlpbmcgaXQgY2Fubm90IGd1ZXNzIHRoZSBtYWNoaW5lIHR5cGUsIGdp dmUgaXQgdGhlCisrYC0tYnVpbGQ9VFlQRScgb3B0aW9uLiAgVFlQRSBjYW4gZWl0aGVyIGJlIGEg c2hvcnQgbmFtZSBmb3IgdGhlIHN5c3RlbQorK3R5cGUsIHN1Y2ggYXMgYHN1bjQnLCBvciBhIGNh bm9uaWNhbCBuYW1lIHdoaWNoIGhhcyB0aGUgZm9ybToKKysKKysgICAgIENQVS1DT01QQU5ZLVNZ U1RFTQorKworK3doZXJlIFNZU1RFTSBjYW4gaGF2ZSBvbmUgb2YgdGhlc2UgZm9ybXM6CisrCisr ICAgICBPUworKyAgICAgS0VSTkVMLU9TCisrCisrICAgU2VlIHRoZSBmaWxlIGBjb25maWcuc3Vi JyBmb3IgdGhlIHBvc3NpYmxlIHZhbHVlcyBvZiBlYWNoIGZpZWxkLiAgSWYKKytgY29uZmlnLnN1 YicgaXNuJ3QgaW5jbHVkZWQgaW4gdGhpcyBwYWNrYWdlLCB0aGVuIHRoaXMgcGFja2FnZSBkb2Vz bid0CisrbmVlZCB0byBrbm93IHRoZSBtYWNoaW5lIHR5cGUuCisrCisrICAgSWYgeW91IGFyZSBf YnVpbGRpbmdfIGNvbXBpbGVyIHRvb2xzIGZvciBjcm9zcy1jb21waWxpbmcsIHlvdSBzaG91bGQK Kyt1c2UgdGhlIG9wdGlvbiBgLS10YXJnZXQ9VFlQRScgdG8gc2VsZWN0IHRoZSB0eXBlIG9mIHN5 c3RlbSB0aGV5IHdpbGwKKytwcm9kdWNlIGNvZGUgZm9yLgorKworKyAgIElmIHlvdSB3YW50IHRv IF91c2VfIGEgY3Jvc3MgY29tcGlsZXIsIHRoYXQgZ2VuZXJhdGVzIGNvZGUgZm9yIGEKKytwbGF0 Zm9ybSBkaWZmZXJlbnQgZnJvbSB0aGUgYnVpbGQgcGxhdGZvcm0sIHlvdSBzaG91bGQgc3BlY2lm eSB0aGUKKysiaG9zdCIgcGxhdGZvcm0gKGkuZS4sIHRoYXQgb24gd2hpY2ggdGhlIGdlbmVyYXRl ZCBwcm9ncmFtcyB3aWxsCisrZXZlbnR1YWxseSBiZSBydW4pIHdpdGggYC0taG9zdD1UWVBFJy4K KysKKytTaGFyaW5nIERlZmF1bHRzCisrPT09PT09PT09PT09PT09PQorKworKyAgIElmIHlvdSB3 YW50IHRvIHNldCBkZWZhdWx0IHZhbHVlcyBmb3IgYGNvbmZpZ3VyZScgc2NyaXB0cyB0byBzaGFy ZSwKKyt5b3UgY2FuIGNyZWF0ZSBhIHNpdGUgc2hlbGwgc2NyaXB0IGNhbGxlZCBgY29uZmlnLnNp dGUnIHRoYXQgZ2l2ZXMKKytkZWZhdWx0IHZhbHVlcyBmb3IgdmFyaWFibGVzIGxpa2UgYENDJywg YGNhY2hlX2ZpbGUnLCBhbmQgYHByZWZpeCcuCisrYGNvbmZpZ3VyZScgbG9va3MgZm9yIGBQUkVG SVgvc2hhcmUvY29uZmlnLnNpdGUnIGlmIGl0IGV4aXN0cywgdGhlbgorK2BQUkVGSVgvZXRjL2Nv bmZpZy5zaXRlJyBpZiBpdCBleGlzdHMuICBPciwgeW91IGNhbiBzZXQgdGhlCisrYENPTkZJR19T SVRFJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byB0aGUgbG9jYXRpb24gb2YgdGhlIHNpdGUgc2Ny aXB0LgorK0Egd2FybmluZzogbm90IGFsbCBgY29uZmlndXJlJyBzY3JpcHRzIGxvb2sgZm9yIGEg c2l0ZSBzY3JpcHQuCisrCisrRGVmaW5pbmcgVmFyaWFibGVzCisrPT09PT09PT09PT09PT09PT09 CisrCisrICAgVmFyaWFibGVzIG5vdCBkZWZpbmVkIGluIGEgc2l0ZSBzaGVsbCBzY3JpcHQgY2Fu IGJlIHNldCBpbiB0aGUKKytlbnZpcm9ubWVudCBwYXNzZWQgdG8gYGNvbmZpZ3VyZScuICBIb3dl dmVyLCBzb21lIHBhY2thZ2VzIG1heSBydW4KKytjb25maWd1cmUgYWdhaW4gZHVyaW5nIHRoZSBi dWlsZCwgYW5kIHRoZSBjdXN0b21pemVkIHZhbHVlcyBvZiB0aGVzZQorK3ZhcmlhYmxlcyBtYXkg YmUgbG9zdC4gIEluIG9yZGVyIHRvIGF2b2lkIHRoaXMgcHJvYmxlbSwgeW91IHNob3VsZCBzZXQK Kyt0aGVtIGluIHRoZSBgY29uZmlndXJlJyBjb21tYW5kIGxpbmUsIHVzaW5nIGBWQVI9dmFsdWUn LiAgRm9yIGV4YW1wbGU6CisrCisrICAgICAuL2NvbmZpZ3VyZSBDQz0vdXNyL2xvY2FsMi9iaW4v Z2NjCisrCisrY2F1c2VzIHRoZSBzcGVjaWZpZWQgYGdjYycgdG8gYmUgdXNlZCBhcyB0aGUgQyBj b21waWxlciAodW5sZXNzIGl0IGlzCisrb3ZlcnJpZGRlbiBpbiB0aGUgc2l0ZSBzaGVsbCBzY3Jp cHQpLgorKworK1VuZm9ydHVuYXRlbHksIHRoaXMgdGVjaG5pcXVlIGRvZXMgbm90IHdvcmsgZm9y IGBDT05GSUdfU0hFTEwnIGR1ZSB0bworK2FuIEF1dG9jb25mIGJ1Zy4gIFVudGlsIHRoZSBidWcg aXMgZml4ZWQgeW91IGNhbiB1c2UgdGhpcyB3b3JrYXJvdW5kOgorKworKyAgICAgQ09ORklHX1NI RUxMPS9iaW4vYmFzaCAvYmluL2Jhc2ggLi9jb25maWd1cmUgQ09ORklHX1NIRUxMPS9iaW4vYmFz aAorKworK2Bjb25maWd1cmUnIEludm9jYXRpb24KKys9PT09PT09PT09PT09PT09PT09PT09Cisr CisrICAgYGNvbmZpZ3VyZScgcmVjb2duaXplcyB0aGUgZm9sbG93aW5nIG9wdGlvbnMgdG8gY29u dHJvbCBob3cgaXQKKytvcGVyYXRlcy4KKysKKytgLS1oZWxwJworK2AtaCcKKysgICAgIFByaW50 IGEgc3VtbWFyeSBvZiBhbGwgb2YgdGhlIG9wdGlvbnMgdG8gYGNvbmZpZ3VyZScsIGFuZCBleGl0 LgorKworK2AtLWhlbHA9c2hvcnQnCisrYC0taGVscD1yZWN1cnNpdmUnCisrICAgICBQcmludCBh IHN1bW1hcnkgb2YgdGhlIG9wdGlvbnMgdW5pcXVlIHRvIHRoaXMgcGFja2FnZSdzCisrICAgICBg Y29uZmlndXJlJywgYW5kIGV4aXQuICBUaGUgYHNob3J0JyB2YXJpYW50IGxpc3RzIG9wdGlvbnMg dXNlZAorKyAgICAgb25seSBpbiB0aGUgdG9wIGxldmVsLCB3aGlsZSB0aGUgYHJlY3Vyc2l2ZScg dmFyaWFudCBsaXN0cyBvcHRpb25zCisrICAgICBhbHNvIHByZXNlbnQgaW4gYW55IG5lc3RlZCBw YWNrYWdlcy4KKysKKytgLS12ZXJzaW9uJworK2AtVicKKysgICAgIFByaW50IHRoZSB2ZXJzaW9u IG9mIEF1dG9jb25mIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGBjb25maWd1cmUnCisrICAgICBzY3Jp cHQsIGFuZCBleGl0LgorKworK2AtLWNhY2hlLWZpbGU9RklMRScKKysgICAgIEVuYWJsZSB0aGUg Y2FjaGU6IHVzZSBhbmQgc2F2ZSB0aGUgcmVzdWx0cyBvZiB0aGUgdGVzdHMgaW4gRklMRSwKKysg ICAgIHRyYWRpdGlvbmFsbHkgYGNvbmZpZy5jYWNoZScuICBGSUxFIGRlZmF1bHRzIHRvIGAvZGV2 L251bGwnIHRvCisrICAgICBkaXNhYmxlIGNhY2hpbmcuCisrCisrYC0tY29uZmlnLWNhY2hlJwor K2AtQycKKysgICAgIEFsaWFzIGZvciBgLS1jYWNoZS1maWxlPWNvbmZpZy5jYWNoZScuCisrCisr YC0tcXVpZXQnCisrYC0tc2lsZW50JworK2AtcScKKysgICAgIERvIG5vdCBwcmludCBtZXNzYWdl cyBzYXlpbmcgd2hpY2ggY2hlY2tzIGFyZSBiZWluZyBtYWRlLiAgVG8KKysgICAgIHN1cHByZXNz IGFsbCBub3JtYWwgb3V0cHV0LCByZWRpcmVjdCBpdCB0byBgL2Rldi9udWxsJyAoYW55IGVycm9y CisrICAgICBtZXNzYWdlcyB3aWxsIHN0aWxsIGJlIHNob3duKS4KKysKKytgLS1zcmNkaXI9RElS JworKyAgICAgTG9vayBmb3IgdGhlIHBhY2thZ2UncyBzb3VyY2UgY29kZSBpbiBkaXJlY3Rvcnkg RElSLiAgVXN1YWxseQorKyAgICAgYGNvbmZpZ3VyZScgY2FuIGRldGVybWluZSB0aGF0IGRpcmVj dG9yeSBhdXRvbWF0aWNhbGx5LgorKworK2AtLXByZWZpeD1ESVInCisrICAgICBVc2UgRElSIGFz IHRoZSBpbnN0YWxsYXRpb24gcHJlZml4LiAgKm5vdGUgSW5zdGFsbGF0aW9uIE5hbWVzOjoKKysg ICAgIGZvciBtb3JlIGRldGFpbHMsIGluY2x1ZGluZyBvdGhlciBvcHRpb25zIGF2YWlsYWJsZSBm b3IgZmluZS10dW5pbmcKKysgICAgIHRoZSBpbnN0YWxsYXRpb24gbG9jYXRpb25zLgorKworK2At LW5vLWNyZWF0ZScKKytgLW4nCisrICAgICBSdW4gdGhlIGNvbmZpZ3VyZSBjaGVja3MsIGJ1dCBz dG9wIGJlZm9yZSBjcmVhdGluZyBhbnkgb3V0cHV0CisrICAgICBmaWxlcy4KKysKKytgY29uZmln dXJlJyBhbHNvIGFjY2VwdHMgc29tZSBvdGhlciwgbm90IHdpZGVseSB1c2VmdWwsIG9wdGlvbnMu ICBSdW4KKytgY29uZmlndXJlIC0taGVscCcgZm9yIG1vcmUgZGV0YWlscy4KKysKK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9ORVdTIHNvY2ktMy4wLjBfdHJlcDMwMC9ORVdTCistLS0gc29j aS0zLjAuMF80LXBhY2svTkVXUwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAor KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9ORVdTCTIwMDktMDQtMTYgMTk6Mzc6MTAuMDAwMDAwMDAw ICswMjAwCitAQCAtMCwwICsxLDMgQEAKKysKKysqIFdlZCBNYXIgMjYgMjAwOSBSUE0gcmVsZWFz ZSBmb3IgdmVyc2lvbiAzLjAuMAorKwoKZGlmZiAtLWdpdCBhL3NvY2ktMy4wLjAtYnVyaWVkLWhl YWRlcnMucGF0Y2ggYi9zb2NpLTMuMC4wLWJ1cmllZC1oZWFkZXJzLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1N2Y4YmMKLS0tIC9kZXYvbnVsbAorKysgYi9zb2Np LTMuMC4wLWJ1cmllZC1oZWFkZXJzLnBhdGNoCkBAIC0wLDAgKzEsNTM2IEBACitkaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAKKy0tLSBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAJMjAxMS0wMi0wOCAyMzo1Mzoy Ni42Mjk4ODAxMjMgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9t eXNxbC9jb21tb24uY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAt Niw3ICs2LDEzIEBACisgLy8KKyAKKyAjaW5jbHVkZSAiY29tbW9uLmgiCistI2luY2x1ZGUgInNv Y2ktYmFja2VuZC5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysj ICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KKysjZWxzZQorKyMJaW5j bHVkZSA8c29jaS1iYWNrZW5kLmg+CisrI2VuZGlmCisrLy8KKyAjaW5jbHVkZSA8Y2lzbzY0Nj4K KyAjaW5jbHVkZSA8Y3N0ZGxpYj4KKyAjaW5jbHVkZSA8Y3RpbWU+CitkaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmggc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCistLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgJMjAxMS0wMi0wOCAyMzo1Mzoy Ni42NjM4ODA3NzAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9t eXNxbC9zb2NpLW15c3FsLmgJMjAxMS0wMi0wOCAyMjoyOTo1NC4wMDAwMDAwMDAgKzAxMDAKK0BA IC0yMywxMiArMjMsMjMgQEAKKyAjaWZuZGVmIFNPQ0lfTVlTUUxfREVDTAorICMgZGVmaW5lIFNP Q0lfTVlTUUxfREVDTAorICNlbmRpZgorLQorLSNpbmNsdWRlICJzb2NpLWJhY2tlbmQuaCIKKysv LworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxz b2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktYmFja2Vu ZC5oPgorKyNlbmRpZgorKy8vCisgI2lmZGVmIF9XSU4zMgorICNpbmNsdWRlIDx3aW5zb2NrLmg+ IC8vIFNPQ0tFVAorICNlbmRpZiAvLyBfV0lOMzIKKy0jaW5jbHVkZSA8bXlzcWwuaD4gLy8gTXlT UUwgQ2xpZW50CisrLy8KKysvLyBNeVNRTCBDbGllbnQKKysjaWYgZGVmaW5lZChTT0NJX01ZU1FM X0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8bXlzcWwvbXlzcWwuaD4KKysjZWxz ZQorKyMJaW5jbHVkZSA8bXlzcWwuaD4KKysjZW5kaWYKKyAjaW5jbHVkZSA8dmVjdG9yPgorIAor IAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRh cmQtaW50by10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9z dGFuZGFyZC1pbnRvLXR5cGUuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMTEtMDItMDggMjM6NTM6MjYuNjY1ODgw ODA3ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc3Rh bmRhcmQtaW50by10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAor QEAgLTgsOCArOCwxNCBAQAorIAorICNkZWZpbmUgU09DSV9NWVNRTF9TT1VSQ0UKKyAjaW5jbHVk ZSAic29jaS1teXNxbC5oIgorLSNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+CisgI2luY2x1ZGUg ImNvbW1vbi5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAg ICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmg+CisrI2Vsc2UKKysjCWluY2x1 ZGUgPHNvY2ktcGxhdGZvcm0uaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxjaXNvNjQ2Pgor ICNpbmNsdWRlIDxjYXNzZXJ0PgorICNpbmNsdWRlIDxjdGltZT4KK2RpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAK Ky0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10 eXBlLmNwcAkyMDExLTAyLTA4IDIzOjUzOjI2LjY2Njg4MDgyNiArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA5 LTA1LTA1IDIyOjI1OjQwLjAwMDAwMDAwMCArMDIwMAorQEAgLTksNyArOSwxMiBAQAorICNkZWZp bmUgU09DSV9NWVNRTF9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1teXNxbC5oIgorICNpbmNsdWRl ICJjb21tb24uaCIKKy0jaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgorKy8vCisrI2lmIGRlZmlu ZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2Np LXBsYXRmb3JtLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KKysjZW5k aWYKKyAvLworICNpbmNsdWRlIDxjaXNvNjQ2PgorICNpbmNsdWRlIDxsaW1pdHM+CitkaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwu Y3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNx bC5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVz dC1teXNxbC5jcHAJMjAxMS0wMi0wOCAyMzo1MzoyNi42Mjk4ODAxMjMgKzAxMDAKKysrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCTIw MDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtNiw5ICs2LDE3IEBACisgLy8g aHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIC8vCisgCistI2luY2x1ZGUg InNvY2kuaCIKKy0jaW5jbHVkZSAic29jaS1teXNxbC5oIgorLSNpbmNsdWRlICJ0ZXN0L2NvbW1v bi10ZXN0cy5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAg ICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2Jh Y2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS90 ZXN0L2NvbW1vbi10ZXN0cy5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLmg+CisrIwlpbmNs dWRlIDxzb2NpLW15c3FsLmg+CisrIyAgICAgICBpbmNsdWRlIDx0ZXN0L2NvbW1vbi10ZXN0cy5o PgorKyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGlvc3RyZWFtPgorICNpbmNsdWRlIDxzc3RyZWFt PgorICNpbmNsdWRlIDxzdHJpbmc+CitAQCAtMTgsOCArMjYsMTQgQEAKKyAjaW5jbHVkZSA8Y3Rp bWU+CisgI2luY2x1ZGUgPGNpc282NDY+CisgI2luY2x1ZGUgPGNzdGRsaWI+CistI2luY2x1ZGUg PG15c3FsZF9lcnJvci5oPgorLSNpbmNsdWRlIDxlcnJtc2cuaD4KKysvLyBNeVNRTCBDbGllbnQK KysjaWYgZGVmaW5lZChTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVk ZSA8bXlzcWwvbXlzcWxkX2Vycm9yLmg+CisrIyAgICAgICBpbmNsdWRlIDxteXNxbC9lcnJtc2cu aD4KKysjZWxzZQorKyMgICAgICAgaW5jbHVkZSA8bXlzcWxkX2Vycm9yLmg+CisrIyAgICAgICBp bmNsdWRlIDxlcnJtc2cuaD4KKysjZW5kaWYKKyAKKyB1c2luZyBuYW1lc3BhY2Ugc29jaTsKKyB1 c2luZyBuYW1lc3BhY2Ugc29jaTo6dGVzdHM7CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAJMjAxMS0w Mi0wOCAyMzo1MzoyNi42MzA4ODAxNDIgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2 LjAwMDAwMDAwMCArMDIwMAorQEAgLTksNyArOSwxMyBAQAorICNkZWZpbmUgU09DSV9NWVNRTF9T T1VSQ0UKKyAjaW5jbHVkZSAic29jaS1teXNxbC5oIgorICNpbmNsdWRlICJjb21tb24uaCIKKy0j aW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJT X0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmg+Cisr I2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KKysjZW5kaWYKKysvLworICNpbmNs dWRlIDxjaXNvNjQ2PgorIAorICNpZmRlZiBfTVNDX1ZFUgorZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCistLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCTIw MTEtMDItMDggMjM6NTM6MjYuNjY2ODgwODI2ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAkyMDA5LTA1LTA1IDIyOjIz OjI5LjAwMDAwMDAwMCArMDIwMAorQEAgLTksNyArOSwxMiBAQAorICNkZWZpbmUgU09DSV9NWVNR TF9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1teXNxbC5oIgorICNpbmNsdWRlICJjb21tb24uaCIK Ky0jaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFE RVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmg+ CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KKysjZW5kaWYKKyAvLworICNp bmNsdWRlIDxjaXNvNjQ2PgorICNpbmNsdWRlIDxsaW1pdHM+CitkaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAJMjAxMS0wMi0wOCAyMzo1MzoyNi42Mjg4ODAxMDUg KzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5j cHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC03LDcgKzcsMTMgQEAK KyAKKyAjaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKKyAjaW5jbHVkZSAiZXJyb3IuaCIKKy0jaW5j bHVkZSAic3RhdGVtZW50LmgiCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVE KQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3N0YXRlbWVudC5oPgorKyNlbHNlCisrIwlp bmNsdWRlIDxzdGF0ZW1lbnQuaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxjc3RyaW5nPgor ICNpbmNsdWRlIDxzc3RyZWFtPgorICNpbmNsdWRlIDxjc3RkaW8+CitkaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaCBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmgJMjAxMS0wMi0wOCAy Mzo1MzoyNi42NzE4ODA5MjIgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAkyMDExLTAyLTA4IDIyOjI5OjU0LjAwMDAwMDAwMCAr MDEwMAorQEAgLTIyLDkgKzIyLDE0IEBACisgI2lmbmRlZiBTT0NJX09SQUNMRV9ERUNMCisgIyBk ZWZpbmUgU09DSV9PUkFDTEVfREVDTAorICNlbmRpZgorLQorLSNpbmNsdWRlIDxzb2NpLWJhY2tl bmQuaD4KKy0jaW5jbHVkZSA8b2NpLmg+IC8vIE9DSQorKy8vCisrI2lmIGRlZmluZWQoU09DSV9I RUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQu aD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+CisrI2VuZGlmCisrLy8KKysj aW5jbHVkZSA8b2NpLmg+IC8vIE9DSSAoT3JhY2xlIGNsaWVudCkKKyAjaW5jbHVkZSA8dmVjdG9y PgorIAorICNpZmRlZiBfTVNDX1ZFUgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKKy0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIw MTEtMDItMDggMjM6NTM6MjYuNjI4ODgwMTA1ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAwOS0wNC0xNiAx OTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC03LDEwICs3LDE4IEBACisgCisgI2RlZmluZSBT T0NJX09SQUNMRV9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKKy0jaW5jbHVkZSAi YmxvYi5oIgorICNpbmNsdWRlICJlcnJvci5oIgorLSNpbmNsdWRlICJyb3dpZC5oIgorLSNpbmNs dWRlICJzdGF0ZW1lbnQuaCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQp CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvYmxvYi5oPgorKyMgICAgICAgaW5jbHVkZSA8 c29jaS9jb3JlL3Jvd2lkLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc3RhdGVtZW50 Lmg+CisrI2Vsc2UKKysjICAgICAgIGluY2x1ZGUgPGJsb2IuaD4KKysjICAgICAgIGluY2x1ZGUg PHJvd2lkLmg+CisrIyAgICAgICBpbmNsdWRlIDxzdGF0ZW1lbnQuaD4KKysjZW5kaWYKKysvLwor ICNpbmNsdWRlIDxjY3R5cGU+CisgI2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmlu Zz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFu ZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xl L3N0YW5kYXJkLXVzZS10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDExLTAyLTA4IDIzOjUzOjI2LjYyODg4 MDEwNSArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9z dGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAK K0BAIC03LDEwICs3LDE4IEBACisgCisgI2RlZmluZSBzb2NpX09SQUNMRV9TT1VSQ0UKKyAjaW5j bHVkZSAic29jaS1vcmFjbGUuaCIKKy0jaW5jbHVkZSAiYmxvYi5oIgorICNpbmNsdWRlICJlcnJv ci5oIgorLSNpbmNsdWRlICJyb3dpZC5oIgorLSNpbmNsdWRlICJzdGF0ZW1lbnQuaCIKKysvLwor KyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2Np L2NvcmUvYmxvYi5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Jvd2lkLmg+CisrIyAg ICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc3RhdGVtZW50Lmg+CisrI2Vsc2UKKysjICAgICAgIGlu Y2x1ZGUgPGJsb2IuaD4KKysjICAgICAgIGluY2x1ZGUgPHJvd2lkLmg+CisrIyAgICAgICBpbmNs dWRlIDxzdGF0ZW1lbnQuaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxjY3R5cGU+CisgI2lu Y2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KK2RpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCistLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcAkyMDExLTAyLTA4IDIzOjUz OjI2LjYyNzg4MDA4NiArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L29yYWNsZS9zdGF0ZW1lbnQuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAw CitAQCAtOSw3ICs5LDEzIEBACisgCisgI2luY2x1ZGUgInNvY2ktb3JhY2xlLmgiCisgI2luY2x1 ZGUgImVycm9yLmgiCistI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorKy8vCisrI2lmIGRlZmlu ZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2Np LWJhY2tlbmQuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+CisrI2VuZGlm CisrLy8KKyAjaW5jbHVkZSA8Y2N0eXBlPgorICNpbmNsdWRlIDxjc3RkaW8+CisgI2luY2x1ZGUg PGNzdHJpbmc+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFj bGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAJMjAxMS0wMi0wOCAyMzo1MzoyNi42 Mjc4ODAwODYgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFj bGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAy MDAKK0BAIC01LDkgKzUsMTcgQEAKKyAvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFf MC50eHQpCisgLy8KKyAKKy0jaW5jbHVkZSAic29jaS5oIgorLSNpbmNsdWRlICJzb2NpLW9yYWNs ZS5oIgorLSNpbmNsdWRlICJjb21tb24tdGVzdHMuaCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lf SEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS5oPgorKyMg ICAgICAgaW5jbHVkZSA8c29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaD4KKysjICAg ICAgIGluY2x1ZGUgPHNvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oPgorKyNlbHNlCisrIwlp bmNsdWRlIDxzb2NpLmg+CisrIwlpbmNsdWRlIDxzb2NpLW9yYWNsZS5oPgorKyMgICAgICAgaW5j bHVkZSA8dGVzdC9jb21tb24tdGVzdHMuaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxpb3N0 cmVhbT4KKyAjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDxjYXNzZXJ0PgorZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUu Y3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10 eXBlLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rv ci1pbnRvLXR5cGUuY3BwCTIwMTEtMDItMDggMjM6NTM6MjYuNjI4ODgwMTA1ICswMTAwCisrKysg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUu Y3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtNyw4ICs3LDE0IEBA CisgCisgI2RlZmluZSBzb2NpX09SQUNMRV9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1vcmFjbGUu aCIKKy0jaW5jbHVkZSAic3RhdGVtZW50LmgiCisgI2luY2x1ZGUgImVycm9yLmgiCisrLy8KKysj aWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9j b3JlL3N0YXRlbWVudC5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzdGF0ZW1lbnQuaD4KKysjZW5k aWYKKysvLworICNpbmNsdWRlIDxjY3R5cGU+CisgI2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVk ZSA8Y3N0cmluZz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvY29tbW9uLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL2NvbW1vbi5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvY29tbW9uLmNwcAkyMDExLTAyLTA4IDIzOjUzOjI2LjY3Mzg4MDk1OSArMDEwMAor KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNw cAkyMDA5LTA1LTA1IDIyOjMwOjUyLjAwMDAwMDAwMCArMDIwMAorQEAgLTYsNyArNiwxMiBAQAor IC8vCisgCisgI2luY2x1ZGUgImNvbW1vbi5oIgorLSNpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4K KysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRl IDxzb2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktYmFj a2VuZC5oPgorKyNlbmRpZgorIC8vCisgI2luY2x1ZGUgPGNzdGRsaWI+CisgI2luY2x1ZGUgPGNz dGRpbz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc29jaS1wb3N0Z3Jlc3FsLmggc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAkyMDExLTAyLTA4IDIzOjUzOjI2LjY3 NDg4MDk3OCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgJMjAxMS0wMi0wOCAyMjoyOTo1NC4wMDAwMDAwMDAgKzAx MDAKK0BAIC0yMiw5ICsyMiwxNCBAQAorICNpZm5kZWYgU09DSV9QT1NUR1JFU1FMX0RFQ0wKKyAj IGRlZmluZSBTT0NJX1BPU1RHUkVTUUxfREVDTAorICNlbmRpZgorLQorLSNpbmNsdWRlIDxzb2Np LWJhY2tlbmQuaD4KKy0jaW5jbHVkZSA8bGlicHEtZmUuaD4KKysvLworKyNpZiBkZWZpbmVkKFNP Q0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1iYWNr ZW5kLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorKyNlbmRpZgorKy8v CisrI2luY2x1ZGUgPGxpYnBxLWZlLmg+IC8vIFBvc3RHcmVTUUwgY2xpZW50CisgI2luY2x1ZGUg PHZlY3Rvcj4KKyAKKyAjaWZkZWYgX01TQ19WRVIKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5j cHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRh cmQtaW50by10eXBlLmNwcAkyMDExLTAyLTA4IDIzOjUzOjI2LjYyNjg4MDA2NiArMDEwMAorKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50 by10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAorQEAgLTgsOSAr OCwxNiBAQAorICNkZWZpbmUgU09DSV9QT1NUR1JFU1FMX1NPVVJDRQorICNpbmNsdWRlICJzb2Np LXBvc3RncmVzcWwuaCIKKyAjaW5jbHVkZSAiY29tbW9uLmgiCistI2luY2x1ZGUgInJvd2lkLmgi CistI2luY2x1ZGUgImJsb2IuaCIKKy0jaW5jbHVkZSA8bGlicHEvbGlicHEtZnMuaD4gLy8gbGli cHEKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNs dWRlIDxzb2NpL2NvcmUvYmxvYi5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Jvd2lk Lmg+CisrI2Vsc2UKKysjICAgICAgIGluY2x1ZGUgPGJsb2IuaD4KKysjICAgICAgIGluY2x1ZGUg PHJvd2lkLmg+CisrI2VuZGlmCisrLy8KKysjaW5jbHVkZSA8bGlicHEvbGlicHEtZnMuaD4gLy8g bGlicHEgKFBvc3RHcmVTUUwgY2xpZW50KQorICNpbmNsdWRlIDxjY3R5cGU+CisgI2luY2x1ZGUg PGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3Bw CistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJk LXVzZS10eXBlLmNwcAkyMDExLTAyLTA4IDIzOjUzOjI2LjYyNjg4MDA2NiArMDEwMAorKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5 cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCitAQCAtNyw4ICs3LDE0 IEBACisgCisgI2RlZmluZSBTT0NJX1BPU1RHUkVTUUxfU09VUkNFCisgI2luY2x1ZGUgInNvY2kt cG9zdGdyZXNxbC5oIgorLSNpbmNsdWRlICJyb3dpZC5oIgorLSNpbmNsdWRlIDxsaWJwcS9saWJw cS1mcy5oPiAvLyBsaWJwcQorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkK KysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9yb3dpZC5oPgorKyNlbHNlCisrIyAgICAgICBp bmNsdWRlIDxyb3dpZC5oPgorKyNlbmRpZgorKy8vCisrI2luY2x1ZGUgPGxpYnBxL2xpYnBxLWZz Lmg+IC8vIGxpYnBxIChQb3N0R3JlU1FMIGNsaWVudCkKKyAjaW5jbHVkZSA8Y2N0eXBlPgorICNp bmNsdWRlIDxjc3RkaW8+CisgI2luY2x1ZGUgPGNzdHJpbmc+CitkaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNw cCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1w b3N0Z3Jlc3FsLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAJMjAxMS0wMi0wOCAyMzo1MzoyNi42ODA4ODEw OTIgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAkyMDEwLTAxLTIzIDEzOjI1OjU3LjAwMDAwMDAwMCAr MDEwMAorQEAgLTUsOSArNSwxNyBAQAorIC8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0Vf MV8wLnR4dCkKKyAvLworIAorLSNpbmNsdWRlICJzb2NpLmgiCistI2luY2x1ZGUgInNvY2ktcG9z dGdyZXNxbC5oIgorLSNpbmNsdWRlICJjb21tb24tdGVzdHMuaCIKKysvLworKyNpZiBkZWZpbmVk KFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS5o PgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdy ZXNxbC5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmg+ CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2kuaD4KKysjCWluY2x1ZGUgPHNvY2ktcG9zdGdyZXNx bC5oPgorKyMgICAgICAgaW5jbHVkZSA8dGVzdC9jb21tb24tdGVzdHMuaD4KKysjZW5kaWYKKysv LworICNpbmNsdWRlIDxpb3N0cmVhbT4KKyAjaW5jbHVkZSA8c3N0cmVhbT4KKyAjaW5jbHVkZSA8 c3RyaW5nPgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9iYWNrZW5kLWxv YWRlci5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAK Ky0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwCTIwMTEt MDItMDggMjM6NTM6MjYuNjE3ODc5ODk2ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAJMjAxMC0wMS0yMyAxMzoyNTo1Ny4wMDAwMDAwMDAg KzAxMDAKK0BAIC0xMSw2ICsxMSw5IEBACisgI2luY2x1ZGUgPG1hcD4KKyAjaW5jbHVkZSA8Y2Fz c2VydD4KKyAjaW5jbHVkZSA8Y3N0ZGxpYj4KKysjaWZuZGVmIF9NU0NfVkVSCisrI2luY2x1ZGUg PHN0ZGludC5oPgorKyNlbmRpZgorIAorIHVzaW5nIG5hbWVzcGFjZSBzb2NpOworIHVzaW5nIG5h bWVzcGFjZSBzb2NpOjpkeW5hbWljX2JhY2tlbmRzOworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmggc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29y ZS9zb2NpLXBsYXRmb3JtLmgKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvc29jaS1w bGF0Zm9ybS5oCTIwMTEtMDItMDggMjM6NTM6MjYuNjIwODc5OTUzICswMTAwCisrKysgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmgJMjAxMC0wMS0yMyAxMzoyNTo1 Ny4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xMiw4ICsxMiwxMCBAQAorICNpZmRlZiBfTVNDX1ZFUgor IAorIC8vIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdnNucHJpbnRmIHZhcmlhbnRzLgorLSNkZWZp bmUgSEFWRV9WU05QUklOVEYgMQorLSNkZWZpbmUgdnNucHJpbnRmIF92c25wcmludGYKKysjaWYg X01TQ19WRVIgPCAxNTAwCisrIyBkZWZpbmUgSEFWRV9WU05QUklOVEYgMQorKyMgZGVmaW5lIHZz bnByaW50ZiBfdnNucHJpbnRmCisrI2VuZGlmCisgCisgLy8gRGVmaW5lIGlmIHlvdSBoYXZlIHRo ZSBzbnByaW50ZiB2YXJpYW50cy4KKyAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQorZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwCTIwMTEtMDItMDggMjM6NTM6MjYuNjc3ODgxMDM1ICsw MTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAJMjAx MC0wMS0yMyAxMzoyNTo1Ny4wMDAwMDAwMDAgKzAxMDAKK0BAIC00NzMsNyArNDczLDcgQEAKKyAv LyBoZWxwZXIgZm9yIGZvcm1hdHRpbmcgZGF0ZSB2YWx1ZXMKKyBjaGFyIGNvbnN0ICogZm9ybWF0 X2RhdGUoc3RhdGVtZW50X3dyYXBwZXIgJiB3cmFwcGVyLCBzdGQ6OnRtIGNvbnN0ICYgZCkKKyB7 CistICAgIHNwcmludGYod3JhcHBlci5kYXRlX2Zvcm1hdHRlZCwgIiVkICVkICVkICVkICVkICVk IiwKKysgICAgc3RkOjpzcHJpbnRmKHdyYXBwZXIuZGF0ZV9mb3JtYXR0ZWQsICIlZCAlZCAlZCAl ZCAlZCAlZCIsCisgICAgICAgICBkLnRtX3llYXIgKyAxOTAwLCBkLnRtX21vbiArIDEsIGQudG1f bWRheSwKKyAgICAgICAgIGQudG1faG91ciwgZC50bV9taW4sIGQudG1fc2VjKTsKKyAKK0BAIC00 OTAsNyArNDkwLDcgQEAKKyAgICAgaW50IGhvdXI7CisgICAgIGludCBtaW51dGU7CisgICAgIGlu dCBzZWNvbmQ7CistICAgIGludCBjb25zdCBjb252ZXJ0ZWQgPSBzc2NhbmYodmFsLCAiJWQgJWQg JWQgJWQgJWQgJWQiLAorKyAgICBpbnQgY29uc3QgY29udmVydGVkID0gc3RkOjpzc2NhbmYodmFs LCAiJWQgJWQgJWQgJWQgJWQgJWQiLAorICAgICAgICAgJnllYXIsICZtb250aCwgJmRheSwgJmhv dXIsICZtaW51dGUsICZzZWNvbmQpOworICAgICBpZiAoY29udmVydGVkICE9IDYpCisgICAgIHsK K0BAIC0xNTExLDcgKzE1MTEsNyBAQAorIAorICAgICAvLyBmb3JtYXQgaXM6ICJZWVlZIE1NIERE IGhoIG1tIHNzIgorICAgICBzdGQ6OnRtIGNvbnN0ICYgZCA9IHdyYXBwZXItPnVzZV9kYXRlc1tu YW1lXTsKKy0gICAgc3ByaW50Zih3cmFwcGVyLT5kYXRlX2Zvcm1hdHRlZCwgIiVkICVkICVkICVk ICVkICVkIiwKKysgICAgc3RkOjpzcHJpbnRmKHdyYXBwZXItPmRhdGVfZm9ybWF0dGVkLCAiJWQg JWQgJWQgJWQgJWQgJWQiLAorICAgICAgICAgZC50bV95ZWFyICsgMTkwMCwgZC50bV9tb24gKyAx LCBkLnRtX21kYXksCisgICAgICAgICBkLnRtX2hvdXIsIGQudG1fbWluLCBkLnRtX3NlYyk7Cisg CitAQCAtMTUyOCwxMCArMTUyOCwxMCBAQAorIAorICAgICAgICAgLy8gYmluZCBhbGwgaW50byBl bGVtZW50cworIAorLSAgICAgICAgc2l6ZV90IGNvbnN0IGludG9fZWxlbWVudHMgPSB3cmFwcGVy LT5pbnRvX3R5cGVzLnNpemUoKTsKKysgICAgICAgIGludCBjb25zdCBpbnRvX2VsZW1lbnRzID0g c3RhdGljX2Nhc3Q8aW50Pih3cmFwcGVyLT5pbnRvX3R5cGVzLnNpemUoKSk7CisgICAgICAgICBp ZiAod3JhcHBlci0+aW50b19raW5kID09IHN0YXRlbWVudF93cmFwcGVyOjpzaW5nbGUpCisgICAg ICAgICB7CistICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgIT0gaW50b19lbGVtZW50 czsgKytpKQorKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpICE9IGludG9fZWxlbWVudHM7 ICsraSkKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIHN3aXRjaCAod3JhcHBlci0+ aW50b190eXBlc1tpXSkKKyAgICAgICAgICAgICAgICAgeworQEAgLTE1NjMsOCArMTU2Myw3IEBA CisgICAgICAgICBlbHNlCisgICAgICAgICB7CisgICAgICAgICAgICAgLy8gdmVjdG9yIGVsZW1l bnRzCistCistICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgIT0gaW50b19lbGVtZW50 czsgKytpKQorKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpICE9IGludG9fZWxlbWVudHM7 ICsraSkKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIHN3aXRjaCAod3JhcHBlci0+ aW50b190eXBlc1tpXSkKKyAgICAgICAgICAgICAgICAgeworZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv Y29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oCTIwMTEtMDItMDggMjM6NTM6MjYuNjE5ODc5OTM0ICsw MTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5o CTIwMDktMDUtMDYgMDA6MDI6MzYuMDAwMDAwMDAwICswMjAwCitAQCAtOCwxNiArOCwzMCBAQAor ICNpZm5kZWYgU09DSV9DT01NT05fVEVTVFNfSF9JTkNMVURFRAorICNkZWZpbmUgU09DSV9DT01N T05fVEVTVFNfSF9JTkNMVURFRAorIAorLSNpbmNsdWRlICJzb2NpLmgiCistI2luY2x1ZGUgInNv Y2ktY29uZmlnLmgiCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMg ICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2kuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kv Y29yZS9zb2NpLWNvbmZpZy5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL2Jvb3N0LW9w dGlvbmFsLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvYm9vc3QtdHVwbGUuaD4KKysj ICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ib29zdC1ncmVnb3JpYW4tZGF0ZS5oPgorKyNlbHNl CisrIwlpbmNsdWRlIDxzb2NpLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpLWNvbmZpZy5oPgor KyMgICAgICAgaW5jbHVkZSA8Ym9vc3Qtb3B0aW9uYWwuaD4KKysjICAgICAgIGluY2x1ZGUgPGJv b3N0LXR1cGxlLmg+CisrIyAgICAgICBpbmNsdWRlIDxib29zdC1ncmVnb3JpYW4tZGF0ZS5oPgor KyNlbmRpZgorKy8vCisgCisgLy8gZXhwbGljaXRseSBwdWxsIGNvbnZlcnNpb25zIGZvciBCb29z dCdzIG9wdGlvbmFsLCB0dXBsZSBhbmQgZnVzaW9uOgorICNpbmNsdWRlIDxib29zdC92ZXJzaW9u LmhwcD4KKy0jaW5jbHVkZSA8Ym9vc3Qtb3B0aW9uYWwuaD4KKy0jaW5jbHVkZSA8Ym9vc3QtdHVw bGUuaD4KKy0jaW5jbHVkZSA8Ym9vc3QtZ3JlZ29yaWFuLWRhdGUuaD4KKyAjaWYgZGVmaW5lZChC T09TVF9WRVJTSU9OKSAmJiBCT09TVF9WRVJTSU9OID49IDEwMzUwMAorKyNpZiBkZWZpbmVkKFNP Q0lfSEVBREVSU19CVVJJRUQpCisrI2luY2x1ZGUgPHNvY2kvY29yZS9ib29zdC1mdXNpb24uaD4K KysjZWxzZQorICNpbmNsdWRlIDxib29zdC1mdXNpb24uaD4KKysjZW5kaWYKKyAjZW5kaWYgLy8g Qk9PU1RfVkVSU0lPTgorIAorICNpbmNsdWRlIDxhbGdvcml0aG0+CgpkaWZmIC0tZ2l0IGEvc29j aS0zLjAuMC1nY2M0Ni1jb21wYXRpYmlsaXR5LnBhdGNoIGIvc29jaS0zLjAuMC1nY2M0Ni1jb21w YXRpYmlsaXR5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2Yjdm YTUKLS0tIC9kZXYvbnVsbAorKysgYi9zb2NpLTMuMC4wLWdjYzQ2LWNvbXBhdGliaWxpdHkucGF0 Y2gKQEAgLTAsMCArMSwxNDUgQEAKK2RpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9t eXNxbC9jb21tb24uaCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvY29tbW9u LmgKKy0tLSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9jb21tb24uaAkyMDA4LTA3LTAz IDA5OjIyOjU3LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNr ZW5kcy9teXNxbC9jb21tb24uaAkyMDA5LTA1LTIzIDEzOjExOjAzLjAwMDAwMDAwMCArMDIwMAor QEAgLTEwLDYgKzEwLDcgQEAKKyAKKyAjaW5jbHVkZSA8c3N0cmVhbT4KKyAjaW5jbHVkZSAic29j aS1teXNxbC5oIgorKyNpbmNsdWRlIDxjdGltZT4KKyAKKyBuYW1lc3BhY2Ugc29jaQorIHsKK2Rp ZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCBzb2NpLTMu MC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAKKy0tLSBzb2NpLTMuMC4w L3NyYy9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAkyMDA4LTA1LTE1IDE1OjU4OjM4LjAwMDAw MDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zZXNz aW9uLmNwcAkyMDA5LTA1LTIzIDEzOjExOjAzLjAwMDAwMDAwMCArMDIwMAorQEAgLTExLDcgKzEx LDggQEAKKyAjaW5jbHVkZSA8Y2N0eXBlPgorICNpbmNsdWRlIDxjZXJybm8+CisgI2luY2x1ZGUg PGNpc282NDY+CistCisrI2luY2x1ZGUgPGNzdGRsaWI+CisrI2luY2x1ZGUgPGNsaW1pdHM+Cisg CisgI2lmZGVmIF9NU0NfVkVSCisgI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDM1NSkKK2RpZmYg LU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmggc29jaS0zLjAu MF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAorLS0tIHNvY2ktMy4wLjAv c3JjL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaCAgMjAxMS0wMi0wOCAyMzoxNzowNi4zODk1 NDM0MDkgKzAxMDAKKysrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvc29j aS1teXNxbC5oIDIwMTEtMDItMDggMjI6Mjk6NTQuMDAwMDAwMDAwICswMTAwCitAQCAtMjQ1LDYg KzI1Niw3IEBACisgCisgc3RydWN0IG15c3FsX2JhY2tlbmRfZmFjdG9yeSA6IGJhY2tlbmRfZmFj dG9yeQorIHsKKysJbXlzcWxfYmFja2VuZF9mYWN0b3J5KCkge30KKyAgICAgdmlydHVhbCBteXNx bF9zZXNzaW9uX2JhY2tlbmQgKiBtYWtlX3Nlc3Npb24oCisgICAgICAgICBzdGQ6OnN0cmluZyBj b25zdCAmY29ubmVjdFN0cmluZykgY29uc3Q7CisgfTsKK0BAIC0yNTksNiArMjcxLDYgQEAKKyAK KyB9IC8vIGV4dGVybiAiQyIKKyAKKy19IC8vIG5hbWVzcGFjZSBTT0NJCisrfSAvLyBuYW1lc3Bh Y2Ugc29jaQorIAorICNlbmRpZiAvLyBTT0NJX01ZU1FMX0hfSU5DTFVERUQKK2RpZmYgLU51ciBz b2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIHNvY2kt My4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCist LS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAky MDA4LTA1LTMwIDEzOjMzOjQ1LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfNC1wYWNr L3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDUtMjMgMTM6 MTE6MDMuMDAwMDAwMDAwICswMjAwCitAQCAtMTIsNiArMTIsOCBAQAorICNpbmNsdWRlICJjb21t b24uaCIKKyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKyAjaW5jbHVkZSA8Y2Fzc2VydD4KKysjaW5jbHVk ZSA8Y3RpbWU+CisrI2luY2x1ZGUgPGNzdHJpbmc+CisgCisgI2lmZGVmIF9NU0NfVkVSCisgI3By YWdtYSB3YXJuaW5nKGRpc2FibGU6NDM1NSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNr ZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2Jh Y2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjAvc3JjL2Jh Y2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA4LTA1LTE1IDE1OjU4OjM4LjAw MDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9z dGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNS0yMyAxMzoyNDo0Mi4wMDAwMDAwMDAgKzAyMDAK K0BAIC0xMCw4ICsxMCwxMCBAQAorICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCisgI2luY2x1ZGUg ImNvbW1vbi5oIgorICNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+CisrLy8KKyAjaW5jbHVkZSA8 Y2lzbzY0Nj4KKyAjaW5jbHVkZSA8bGltaXRzPgorKyNpbmNsdWRlIDxjc3RkaW8+CisgI2luY2x1 ZGUgPGNzdHJpbmc+CisgCisgI2lmZGVmIF9NU0NfVkVSCitkaWZmIC1OdXIgc29jaS0zLjAuMC9z cmMvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCBzb2NpLTMuMC4wXzQtcGFjay9z cmMvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjAvc3Jj L2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAJMjAwOC0wNS0xNSAxNTo1ODozOC4w MDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwv dmVjdG9yLXVzZS10eXBlLmNwcAkyMDA5LTA1LTIzIDEzOjI1OjExLjAwMDAwMDAwMCArMDIwMAor QEAgLTEwLDkgKzEwLDEyIEBACisgI2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKKyAjaW5jbHVkZSAi Y29tbW9uLmgiCisgI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KKysvLworICNpbmNsdWRlIDxj aXNvNjQ2PgorICNpbmNsdWRlIDxsaW1pdHM+CisrI2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVk ZSA8Y3N0cmluZz4KKysjaW5jbHVkZSA8Y3RpbWU+CisgCisgI2lmZGVmIF9NU0NfVkVSCisgI3By YWdtYSB3YXJuaW5nKGRpc2FibGU6NDM1NSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9z cmMvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmggc29jaS0zLjAuMF90cmVwMzAwL3NyYy9i YWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9i YWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaCAgICAgICAgMjAxMS0wMi0wOCAyMzoxNzowNi4z ODk1NDM0MDkgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc3JjL2JhY2tlbmRzL29yYWNs ZS9zb2NpLW9yYWNsZS5oICAgICAgIDIwMTEtMDItMDggMjI6Mjk6NTQuMDAwMDAwMDAwICswMTAw CitAQCAtMjY5LDYgKzI3NCw3IEBACisgCisgc3RydWN0IG9yYWNsZV9iYWNrZW5kX2ZhY3Rvcnkg OiBiYWNrZW5kX2ZhY3RvcnkKKyB7CisrCW9yYWNsZV9iYWNrZW5kX2ZhY3RvcnkoKSB7fQorICAg ICB2aXJ0dWFsIG9yYWNsZV9zZXNzaW9uX2JhY2tlbmQgKiBtYWtlX3Nlc3Npb24oCisgICAgICAg ICBzdGQ6OnN0cmluZyBjb25zdCAmY29ubmVjdFN0cmluZykgY29uc3Q7CisgfTsKK2RpZmYgLU51 ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAgc29jaS0zLjAu MF80LXBhY2svc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAorLS0tIHNvY2ktMy4w LjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAkyMDA4LTA2LTI3IDE2OjM4OjA1 LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL2NvbW1vbi5jcHAJMjAwOS0wNS0yMyAxMzoyMzozOC4wMDAwMDAwMDAgKzAyMDAKK0BA IC03LDcgKzcsOSBAQAorIAorICNpbmNsdWRlICJjb21tb24uaCIKKyAjaW5jbHVkZSA8c29jaS1i YWNrZW5kLmg+CisrLy8KKyAjaW5jbHVkZSA8Y3N0ZGxpYj4KKysjaW5jbHVkZSA8Y3N0ZGlvPgor ICNpbmNsdWRlIDxjdGltZT4KKyAKKyAKK2RpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCistLS0gc29jaS0zLjAuMC9zcmMvYmFj a2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaCAgICAgICAgMjAxMS0wMi0wOCAyMzox NzowNi4zODY1NDMzNTMgKzAxMDAKKysrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMv cG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaCAgICAgICAyMDExLTAyLTA4IDIyOjI5OjU0LjAw MDAwMDAwMCArMDEwMAorQEAgLTI0MSw2ICsyNDYsNyBAQAorIAorIHN0cnVjdCBwb3N0Z3Jlc3Fs X2JhY2tlbmRfZmFjdG9yeSA6IGJhY2tlbmRfZmFjdG9yeQorIHsKKysJcG9zdGdyZXNxbF9iYWNr ZW5kX2ZhY3RvcnkoKSB7fQorICAgICB2aXJ0dWFsIHBvc3RncmVzcWxfc2Vzc2lvbl9iYWNrZW5k ICogbWFrZV9zZXNzaW9uKAorICAgICAgICAgc3RkOjpzdHJpbmcgY29uc3QgJiBjb25uZWN0U3Ry aW5nKSBjb25zdDsKKyB9OworZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2NvcmUvc29jaS1zaW1w bGUuY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcAorLS0tIHNv Y2ktMy4wLjAvc3JjL2NvcmUvc29jaS1zaW1wbGUuY3BwCTIwMDgtMDctMDEgMDk6NDI6MjUuMDAw MDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF80LXBhY2svc3JjL2NvcmUvc29jaS1zaW1wbGUu Y3BwCTIwMDktMDUtMjMgMTM6MjE6MTQuMDAwMDAwMDAwICswMjAwCitAQCAtOSw2ICs5LDggQEAK KyAKKyAjaW5jbHVkZSAic29jaS1zaW1wbGUuaCIKKyAjaW5jbHVkZSAic29jaS5oIgorKy8vCisr I2luY2x1ZGUgPGNzdGRpbz4KKyAKKyB1c2luZyBuYW1lc3BhY2Ugc29jaTsKKworCitkaWZmIC1O dXIgc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNx bC5jcHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0 LXBvc3RncmVzcWwuY3BwCistLS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC90 ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAgMjAwOC0wNi0wNSAyMjo0MTo1OC4wMDAwMDAwMDAgKzAy MDAKKysrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rl c3QtcG9zdGdyZXNxbC5jcHAgIDIwMTAtMDEtMjMgMTM6MTc6MjguMDAwMDAwMDAwICswMTAwCitA QCAtMTUsNiArMTUsNyBAQAorICNpbmNsdWRlIDxjbWF0aD4KKyAjaW5jbHVkZSA8Y3RpbWU+Cisg I2luY2x1ZGUgPGNzdGRsaWI+CisrI2luY2x1ZGUgPGNzdHJpbmc+CisgCisgdXNpbmcgbmFtZXNw YWNlIHNvY2k7CisgdXNpbmcgbmFtZXNwYWNlIHNvY2k6OnRlc3RzOworCgpkaWZmIC0tZ2l0IGEv c29jaS0zLjAuMC1nbnUtYXV0b3Rvb2xzLWNvbXBhdGliaWxpdHkucGF0Y2ggYi9zb2NpLTMuMC4w LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5mZDM0ZjgzCi0tLSAvZGV2L251bGwKKysrIGIvc29jaS0zLjAuMC1nbnUt YXV0b3Rvb2xzLWNvbXBhdGliaWxpdHkucGF0Y2gKQEAgLTAsMCArMSw1ODkwMCBAQAorZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL2FjbG9jYWwubTQgc29jaS0zLjAuMF90cmVwMzAwL2FjbG9j YWwubTQKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9hY2xvY2FsLm00CTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2FjbG9jYWwubTQJMjAx MS0wMi0wOCAyMjozOTo1MC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsOTYxIEBACisrIyBn ZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBhY2xvY2FsIDEuMTEuMSAtKi0gQXV0b2NvbmYgLSot CisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEs IDIwMDIsIDIwMDMsIDIwMDQsCisrIyAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJl OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlz c2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1v ZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0 dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKwor K200X2lmbmRlZihbQUNfQVVUT0NPTkZfVkVSU0lPTl0sCisrICBbbTRfY29weShbbTRfUEFDS0FH RV9WRVJTSU9OXSwgW0FDX0FVVE9DT05GX1ZFUlNJT05dKV0pZG5sCisrbTRfaWYobTRfZGVmbihb QUNfQVVUT0NPTkZfVkVSU0lPTl0pLCBbMi42Nl0sLAorK1ttNF93YXJuaW5nKFt0aGlzIGZpbGUg d2FzIGdlbmVyYXRlZCBmb3IgYXV0b2NvbmYgMi42Ni4KKytZb3UgaGF2ZSBhbm90aGVyIHZlcnNp b24gb2YgYXV0b2NvbmYuICBJdCBtYXkgd29yaywgYnV0IGlzIG5vdCBndWFyYW50ZWVkIHRvLgor K0lmIHlvdSBoYXZlIHByb2JsZW1zLCB5b3UgbWF5IG5lZWQgdG8gcmVnZW5lcmF0ZSB0aGUgYnVp bGQgc3lzdGVtIGVudGlyZWx5LgorK1RvIGRvIHNvLCB1c2UgdGhlIHByb2NlZHVyZSBkb2N1bWVu dGVkIGJ5IHRoZSBwYWNrYWdlLCB0eXBpY2FsbHkgYGF1dG9yZWNvbmYnLl0pXSkKKysKKysjIENv cHlyaWdodCAoQykgMjAwMiwgMjAwMywgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNz aW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9k aWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBB TV9BVVRPTUFLRV9WRVJTSU9OKFZFUlNJT04pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisrIyBBdXRvbWFrZSBYLlkgdHJhY2VzIHRoaXMgbWFjcm8gdG8gZW5zdXJlIGFjbG9jYWwu bTQgaGFzIGJlZW4KKysjIGdlbmVyYXRlZCBmcm9tIHRoZSBtNCBmaWxlcyBhY2NvbXBhbnlpbmcg QXV0b21ha2UgWC5ZLgorKyMgKFRoaXMgcHJpdmF0ZSBtYWNybyBzaG91bGQgbm90IGJlIGNhbGxl ZCBvdXRzaWRlIHRoaXMgZmlsZS4pCisrQUNfREVGVU4oW0FNX0FVVE9NQUtFX1ZFUlNJT05dLAor K1thbV9fYXBpX3ZlcnNpb249JzEuMTEnCisrZG5sIFNvbWUgdXNlcnMgZmluZCBBTV9BVVRPTUFL RV9WRVJTSU9OIGFuZCBtaXN0YWtlIGl0IGZvciBhIHdheSB0bworK2RubCByZXF1aXJlIHNvbWUg bWluaW11bSB2ZXJzaW9uLiAgUG9pbnQgdGhlbSB0byB0aGUgcmlnaHQgbWFjcm8uCisrbTRfaWYo WyQxXSwgWzEuMTEuMV0sIFtdLAorKyAgICAgIFtBQ19GQVRBTChbRG8gbm90IGNhbGwgJDAsIHVz ZSBBTV9JTklUX0FVVE9NQUtFKFskMV0pLl0pXSlkbmwKKytdKQorKworKyMgX0FNX0FVVE9DT05G X1ZFUlNJT04oVkVSU0lPTikKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBh Y2xvY2FsIHRyYWNlcyB0aGlzIG1hY3JvIHRvIGZpbmQgdGhlIEF1dG9jb25mIHZlcnNpb24uCisr IyBUaGlzIGlzIGEgcHJpdmF0ZSBtYWNybyB0b28uICBVc2luZyBtNF9kZWZpbmUgc2ltcGxpZmll cworKyMgdGhlIGxvZ2ljIGluIGFjbG9jYWwsIHdoaWNoIGNhbiBzaW1wbHkgaWdub3JlIHRoaXMg ZGVmaW5pdGlvbi4KKyttNF9kZWZpbmUoW19BTV9BVVRPQ09ORl9WRVJTSU9OXSwgW10pCisrCisr IyBBTV9TRVRfQ1VSUkVOVF9BVVRPTUFLRV9WRVJTSU9OCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrIyBDYWxsIEFNX0FVVE9NQUtFX1ZFUlNJT04gYW5kIEFNX0FVVE9NQUtF X1ZFUlNJT04gc28gdGhleSBjYW4gYmUgdHJhY2VkLgorKyMgVGhpcyBmdW5jdGlvbiBpcyBBQ19S RVFVSVJFZCBieSBBTV9JTklUX0FVVE9NQUtFLgorK0FDX0RFRlVOKFtBTV9TRVRfQ1VSUkVOVF9B VVRPTUFLRV9WRVJTSU9OXSwKKytbQU1fQVVUT01BS0VfVkVSU0lPTihbMS4xMS4xXSlkbmwKKytt NF9pZm5kZWYoW0FDX0FVVE9DT05GX1ZFUlNJT05dLAorKyAgW200X2NvcHkoW200X1BBQ0tBR0Vf VkVSU0lPTl0sIFtBQ19BVVRPQ09ORl9WRVJTSU9OXSldKWRubAorK19BTV9BVVRPQ09ORl9WRVJT SU9OKG00X2RlZm4oW0FDX0FVVE9DT05GX1ZFUlNJT05dKSldKQorKworKyMgQU1fQVVYX0RJUl9F WFBBTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29u ZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9u IHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZp Y2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBGb3Ig cHJvamVjdHMgdXNpbmcgQUNfQ09ORklHX0FVWF9ESVIoW2Zvb10pLCBBdXRvY29uZiBzZXRzCisr IyAkYWNfYXV4X2RpciB0byBgJHNyY2Rpci9mb28nLiAgSW4gb3RoZXIgcHJvamVjdHMsIGl0IGlz IHNldCB0bworKyMgYCRzcmNkaXInLCBgJHNyY2Rpci8uLicsIG9yIGAkc3JjZGlyLy4uLy4uJy4K KysjCisrIyBPZiBjb3Vyc2UsIEF1dG9tYWtlIG11c3QgaG9ub3IgdGhpcyB2YXJpYWJsZSB3aGVu ZXZlciBpdCBjYWxscyBhCisrIyB0b29sIGZyb20gdGhlIGF1eGlsaWFyeSBkaXJlY3RvcnkuICBU aGUgcHJvYmxlbSBpcyB0aGF0ICRzcmNkaXIgKGFuZAorKyMgdGhlcmVmb3JlICRhY19hdXhfZGly IGFzIHdlbGwpIGNhbiBiZSBlaXRoZXIgYWJzb2x1dGUgb3IgcmVsYXRpdmUsCisrIyBkZXBlbmRp bmcgb24gaG93IGNvbmZpZ3VyZSBpcyBydW4uICBUaGlzIGlzIHByZXR0eSBhbm5veWluZywgc2lu Y2UKKysjIGl0IG1ha2VzICRhY19hdXhfZGlyIHF1aXRlIHVudXNhYmxlIGluIHN1YmRpcmVjdG9y aWVzOiBpbiB0aGUgdG9wCisrIyBzb3VyY2UgZGlyZWN0b3J5LCBhbnkgZm9ybSB3aWxsIHdvcmsg ZmluZSwgYnV0IGluIHN1YmRpcmVjdG9yaWVzIGEKKysjIHJlbGF0aXZlIHBhdGggbmVlZHMgdG8g YmUgYWRqdXN0ZWQgZmlyc3QuCisrIworKyMgJGFjX2F1eF9kaXIvbWlzc2luZworKyMgICAgZmFp bHMgd2hlbiBjYWxsZWQgZnJvbSBhIHN1YmRpcmVjdG9yeSBpZiAkYWNfYXV4X2RpciBpcyByZWxh dGl2ZQorKyMgJHRvcF9zcmNkaXIvJGFjX2F1eF9kaXIvbWlzc2luZworKyMgICAgZmFpbHMgaWYg JGFjX2F1eF9kaXIgaXMgYWJzb2x1dGUsCisrIyAgICBmYWlscyB3aGVuIGNhbGxlZCBmcm9tIGEg c3ViZGlyZWN0b3J5IGluIGEgVlBBVEggYnVpbGQgd2l0aAorKyMgICAgICAgICAgYSByZWxhdGl2 ZSAkYWNfYXV4X2RpcgorKyMKKysjIFRoZSByZWFzb24gb2YgdGhlIGxhdHRlciBmYWlsdXJlIGlz IHRoYXQgJHRvcF9zcmNkaXIgYW5kICRhY19hdXhfZGlyCisrIyBhcmUgYm90aCBwcmVmaXhlZCBi eSAkc3JjZGlyLiAgSW4gYW4gaW4tc291cmNlIGJ1aWxkIHRoaXMgaXMgdXN1YWxseQorKyMgaGFy bWxlc3MgYmVjYXVzZSAkc3JjZGlyIGlzIGAuJywgYnV0IHRoaW5ncyB3aWxsIGJyb2tlIHdoZW4g eW91CisrIyBzdGFydCBhIFZQQVRIIGJ1aWxkIG9yIHVzZSBhbiBhYnNvbHV0ZSAkc3JjZGlyLgor KyMKKysjIFNvIHdlIGNvdWxkIHVzZSBzb21ldGhpbmcgc2ltaWxhciB0byAkdG9wX3NyY2Rpci8k YWNfYXV4X2Rpci9taXNzaW5nLAorKyMgaWZmIHdlIHN0cmlwIHRoZSBsZWFkaW5nICRzcmNkaXIg ZnJvbSAkYWNfYXV4X2Rpci4gIFRoYXQgd291bGQgYmU6CisrIyAgIGFtX2F1eF9kaXI9J1wkKHRv cF9zcmNkaXIpLydgZXhwciAiJGFjX2F1eF9kaXIiIDogIiRzcmNkaXIvLypcKC4qXCkiYAorKyMg YW5kIHRoZW4gd2Ugd291bGQgZGVmaW5lICRNSVNTSU5HIGFzCisrIyAgIE1JU1NJTkc9Ilwke1NI RUxMfSAkYW1fYXV4X2Rpci9taXNzaW5nIgorKyMgVGhpcyB3aWxsIHdvcmsgYXMgbG9uZyBhcyBN SVNTSU5HIGlzIG5vdCBjYWxsZWQgZnJvbSBjb25maWd1cmUsIGJlY2F1c2UKKysjIHVuZm9ydHVu YXRlbHkgJCh0b3Bfc3JjZGlyKSBoYXMgbm8gbWVhbmluZyBpbiBjb25maWd1cmUuCisrIyBIb3dl dmVyIHRoZXJlIGFyZSBvdGhlciB2YXJpYWJsZXMsIGxpa2UgQ0MsIHdoaWNoIGFyZSBvZnRlbiB1 c2VkIGluCisrIyBjb25maWd1cmUsIGFuZCBjb3VsZCB0aGVyZWZvcmUgbm90IHVzZSB0aGlzICJm aXhlZCIgJGFjX2F1eF9kaXIuCisrIworKyMgQW5vdGhlciBzb2x1dGlvbiwgdXNlZCBoZXJlLCBp cyB0byBhbHdheXMgZXhwYW5kICRhY19hdXhfZGlyIHRvIGFuCisrIyBhYnNvbHV0ZSBQQVRILiAg VGhlIGRyYXdiYWNrIGlzIHRoYXQgdXNpbmcgYWJzb2x1dGUgcGF0aHMgcHJldmVudCBhCisrIyBj b25maWd1cmVkIHRyZWUgdG8gYmUgbW92ZWQgd2l0aG91dCByZWNvbmZpZ3VyYXRpb24uCisrCisr QUNfREVGVU4oW0FNX0FVWF9ESVJfRVhQQU5EXSwKKytbZG5sIFJlbHkgb24gYXV0b2NvbmYgdG8g c2V0IHVwIENEUEFUSCBwcm9wZXJseS4KKytBQ19QUkVSRVEoWzIuNTBdKWRubAorKyMgZXhwYW5k ICRhY19hdXhfZGlyIHRvIGFuIGFic29sdXRlIHBhdGgKKythbV9hdXhfZGlyPWBjZCAkYWNfYXV4 X2RpciAmJiBwd2RgCisrXSkKKysKKysjIEFNX0NPTkRJVElPTkFMICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCisrCisrIyBDb3B5cmln aHQgKEMpIDE5OTcsIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDgKKysj IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVl IHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0 ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3 aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVk LgorKworKyMgc2VyaWFsIDkKKysKKysjIEFNX0NPTkRJVElPTkFMKE5BTUUsIFNIRUxMLUNPTkRJ VElPTikKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIERlZmlu ZSBhIGNvbmRpdGlvbmFsLgorK0FDX0RFRlVOKFtBTV9DT05ESVRJT05BTF0sCisrW0FDX1BSRVJF USgyLjUyKWRubAorKyBpZmVsc2UoWyQxXSwgW1RSVUVdLCAgW0FDX0ZBVEFMKFskMDogaW52YWxp ZCBjb25kaXRpb246ICQxXSldLAorKwlbJDFdLCBbRkFMU0VdLCBbQUNfRkFUQUwoWyQwOiBpbnZh bGlkIGNvbmRpdGlvbjogJDFdKV0pZG5sCisrQUNfU1VCU1QoWyQxX1RSVUVdKWRubAorK0FDX1NV QlNUKFskMV9GQUxTRV0pZG5sCisrX0FNX1NVQlNUX05PVE1BS0UoWyQxX1RSVUVdKWRubAorK19B TV9TVUJTVF9OT1RNQUtFKFskMV9GQUxTRV0pZG5sCisrbTRfZGVmaW5lKFtfQU1fQ09ORF9WQUxV RV8kMV0sIFskMl0pZG5sCisraWYgJDI7IHRoZW4KKysgICQxX1RSVUU9CisrICAkMV9GQUxTRT0n IycKKytlbHNlCisrICAkMV9UUlVFPScjJworKyAgJDFfRkFMU0U9CisrZmkKKytBQ19DT05GSUdf Q09NTUFORFNfUFJFKAorK1tpZiB0ZXN0IC16ICIkeyQxX1RSVUV9IiAmJiB0ZXN0IC16ICIkeyQx X0ZBTFNFfSI7IHRoZW4KKysgIEFDX01TR19FUlJPUihbW2NvbmRpdGlvbmFsICIkMSIgd2FzIG5l dmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZv a2VkIGNvbmRpdGlvbmFsbHkuXV0pCisrZmldKV0pCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTks IDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDkKKysjIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3 YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVy bWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0 IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKwor KyMgc2VyaWFsIDEwCisrCisrIyBUaGVyZSBhcmUgYSBmZXcgZGlydHkgaGFja3MgYmVsb3cgdG8g YXZvaWQgbGV0dGluZyBgQUNfUFJPR19DQycgYmUKKysjIHdyaXR0ZW4gaW4gY2xlYXIsIGluIHdo aWNoIGNhc2UgYXV0b21ha2UsIHdoZW4gcmVhZGluZyBhY2xvY2FsLm00LAorKyMgd2lsbCB0aGlu ayBpdCBzZWVzIGEgKnVzZSosIGFuZCB0aGVyZWZvcmUgd2lsbCB0cmlnZ2VyIGFsbCBpdCdzCisr IyBDIHN1cHBvcnQgbWFjaGluZXJ5LiAgQWxzbyBub3RlIHRoYXQgaXQgbWVhbnMgdGhhdCBhdXRv c2Nhbiwgc2VlaW5nCisrIyBDQyBldGMuIGluIHRoZSBNYWtlZmlsZSwgd2lsbCBhc2sgZm9yIGFu IEFDX1BST0dfQ0MgdXNlLi4uCisrCisrCisrIyBfQU1fREVQRU5ERU5DSUVTKE5BTUUpCisrIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBTZWUgaG93IHRoZSBjb21waWxlciBpbXBsZW1lbnRz IGRlcGVuZGVuY3kgY2hlY2tpbmcuCisrIyBOQU1FIGlzICJDQyIsICJDWFgiLCAiR0NKIiwgb3Ig Ik9CSkMiLgorKyMgV2UgdHJ5IGEgZmV3IHRlY2huaXF1ZXMgYW5kIHVzZSB0aGF0IHRvIHNldCBh IHNpbmdsZSBjYWNoZSB2YXJpYWJsZS4KKysjCisrIyBXZSBkb24ndCBBQ19SRVFVSVJFIHRoZSBj b3JyZXNwb25kaW5nIEFDX1BST0dfQ0Mgc2luY2UgdGhlIGxhdHRlciB3YXMKKysjIG1vZGlmaWVk IHRvIGludm9rZSBfQU1fREVQRU5ERU5DSUVTKENDKTsgd2Ugd291bGQgaGF2ZSBhIGNpcmN1bGFy CisrIyBkZXBlbmRlbmN5LCBhbmQgZ2l2ZW4gdGhhdCB0aGUgdXNlciBpcyBub3QgZXhwZWN0ZWQg dG8gcnVuIHRoaXMgbWFjcm8sCisrIyBqdXN0IHJlbHkgb24gQUNfUFJPR19DQy4KKytBQ19ERUZV TihbX0FNX0RFUEVOREVOQ0lFU10sCisrW0FDX1JFUVVJUkUoW0FNX1NFVF9ERVBESVJdKWRubAor K0FDX1JFUVVJUkUoW0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSlkbmwKKytBQ19SRVFV SVJFKFtBTV9NQUtFX0lOQ0xVREVdKWRubAorK0FDX1JFUVVJUkUoW0FNX0RFUF9UUkFDS10pZG5s CisrCisraWZlbHNlKFskMV0sIENDLCAgIFtkZXBjYz0iJENDIiAgIGFtX2NvbXBpbGVyX2xpc3Q9 XSwKKysgICAgICAgWyQxXSwgQ1hYLCAgW2RlcGNjPSIkQ1hYIiAgYW1fY29tcGlsZXJfbGlzdD1d LAorKyAgICAgICBbJDFdLCBPQkpDLCBbZGVwY2M9IiRPQkpDIiBhbV9jb21waWxlcl9saXN0PSdn Y2MzIGdjYyddLAorKyAgICAgICBbJDFdLCBVUEMsICBbZGVwY2M9IiRVUEMiICBhbV9jb21waWxl cl9saXN0PV0sCisrICAgICAgIFskMV0sIEdDSiwgIFtkZXBjYz0iJEdDSiIgIGFtX2NvbXBpbGVy X2xpc3Q9J2djYzMgZ2NjJ10sCisrICAgICAgICAgICAgICAgICAgIFtkZXBjYz0iJCQxIiAgIGFt X2NvbXBpbGVyX2xpc3Q9XSkKKysKKytBQ19DQUNIRV9DSEVDSyhbZGVwZW5kZW5jeSBzdHlsZSBv ZiAkZGVwY2NdLAorKyAgICAgICAgICAgICAgIFthbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGls ZXJfdHlwZV0sCisrW2lmIHRlc3QgLXogIiRBTURFUF9UUlVFIiAmJiB0ZXN0IC1mICIkYW1fZGVw Y29tcCI7IHRoZW4KKysgICMgV2UgbWFrZSBhIHN1YmRpciBhbmQgZG8gdGhlIHRlc3RzIHRoZXJl LiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKKysgICMgbWFraW5nIGJvZ3VzIGZpbGVzIHRoYXQg d2UgZG9uJ3Qga25vdyBhYm91dCBhbmQgbmV2ZXIgcmVtb3ZlLiAgRm9yCisrICAjIGluc3RhbmNl IGl0IHdhcyByZXBvcnRlZCB0aGF0IG9uIEhQLVVYIHRoZSBnY2MgdGVzdCB3aWxsIGVuZCB1cAor KyAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5z IGBwdXQgdGhlIG91dHB1dAorKyAgIyBpbiBEJy4KKysgIG1rZGlyIGNvbmZ0ZXN0LmRpcgorKyAg IyBDb3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZpbmQg aXQgaWYgd2UncmUKKysgICMgdXNpbmcgYSByZWxhdGl2ZSBkaXJlY3RvcnkuCisrICBjcCAiJGFt X2RlcGNvbXAiIGNvbmZ0ZXN0LmRpcgorKyAgY2QgY29uZnRlc3QuZGlyCisrICAjIFdlIHdpbGwg YnVpbGQgb2JqZWN0cyBhbmQgZGVwZW5kZW5jaWVzIGluIGEgc3ViZGlyZWN0b3J5IGJlY2F1c2UK KysgICMgaXQgaGVscHMgdG8gZGV0ZWN0IGluYXBwbGljYWJsZSBkZXBlbmRlbmN5IG1vZGVzLiAg Rm9yIGluc3RhbmNlCisrICAjIGJvdGggVHJ1NjQncyBjYyBhbmQgSUNDIHN1cHBvcnQgLU1EIHRv IG91dHB1dCBkZXBlbmRlbmNpZXMgYXMgYQorKyAgIyBzaWRlIGVmZmVjdCBvZiBjb21waWxhdGlv biwgYnV0IElDQyB3aWxsIHB1dCB0aGUgZGVwZW5kZW5jaWVzIGluCisrICAjIHRoZSBjdXJyZW50 IGRpcmVjdG9yeSB3aGlsZSBUcnU2NCB3aWxsIHB1dCB0aGVtIGluIHRoZSBvYmplY3QKKysgICMg ZGlyZWN0b3J5LgorKyAgbWtkaXIgc3ViCisrCisrICBhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29t cGlsZXJfdHlwZT1ub25lCisrICBpZiB0ZXN0ICIkYW1fY29tcGlsZXJfbGlzdCIgPSAiIjsgdGhl bgorKyAgICAgYW1fY29tcGlsZXJfbGlzdD1gc2VkIC1uIFsncy9eIypcKFthLXpBLVowLTldKlwp KSQvXDEvcCddIDwgLi9kZXBjb21wYAorKyAgZmkKKysgIGFtX191bml2ZXJzYWw9ZmFsc2UKKysg IG00X2Nhc2UoWyQxXSwgW0NDXSwKKysgICAgW2Nhc2UgIiAkZGVwY2MgIiBpbiAjKAorKyAgICAg KlwgLWFyY2hcICpcIC1hcmNoXCAqKSBhbV9fdW5pdmVyc2FsPXRydWUgOzsKKysgICAgIGVzYWNd LAorKyAgICBbQ1hYXSwKKysgICAgW2Nhc2UgIiAkZGVwY2MgIiBpbiAjKAorKyAgICAgKlwgLWFy Y2hcICpcIC1hcmNoXCAqKSBhbV9fdW5pdmVyc2FsPXRydWUgOzsKKysgICAgIGVzYWNdKQorKwor KyAgZm9yIGRlcG1vZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRvCisrICAgICMgU2V0dXAgYSBz b3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycworKyAg ICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAod2l0 aCBcKSwgYW5kCisrICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUgd2hp Y2ggaXMgY29uZnVzZWQgYnkgdGhpcy4KKysgICAgIworKyAgICAjIFdlIG5lZWQgdG8gcmVjcmVh dGUgdGhlc2UgZmlsZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQorKyAgICAj IG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21tYW5k IGxpbmVzLgorKyAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBjb21w aWxlci4KKysgICAgOiA+IHN1Yi9jb25mdGVzdC5jCisrICAgIGZvciBpIGluIDEgMiAzIDQgNSA2 OyBkbworKyAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2NvbmZ0 ZXN0LmMKKysgICAgICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9ubHkg c3ViL2NvbmZ0c3QxLmggd2l0aAorKyAgICAgICMgU29sYXJpcyA4J3Mgey91c3IsfS9iaW4vc2gu CisrICAgICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCisrICAgIGRvbmUKKysgICAgZWNobyAiJHth bV9faW5jbHVkZX0gJHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9IiA+IGNv bmZtZgorKworKyAgICAjIFdlIGNoZWNrIHdpdGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ug b2YgdGhlICJkYXNobXN0ZG91dCIKKysgICAgIyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQgdGhl IFN1blBybyBDKysgY29tcGlsZXIgZG9lcyBub3QgcHJvcGVybHkKKysgICAgIyBoYW5kbGUgYC1N IC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMuICBBbHNvLCBzb21lIEludGVsCisrICAg ICMgdmVyc2lvbnMgaGFkIHRyb3VibGUgd2l0aCBvdXRwdXQgaW4gc3ViZGlycworKyAgICBhbV9f b2JqPXN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfQorKyAgICBhbV9fbWludXNfb2JqPSItbyAkYW1f X29iaiIKKysgICAgY2FzZSAkZGVwbW9kZSBpbgorKyAgICBnY2MpCisrICAgICAgIyBUaGlzIGRl cG1vZGUgY2F1c2VzIGEgY29tcGlsZXIgcmFjZSBpbiB1bml2ZXJzYWwgbW9kZS4KKysgICAgICB0 ZXN0ICIkYW1fX3VuaXZlcnNhbCIgPSBmYWxzZSB8fCBjb250aW51ZQorKyAgICAgIDs7CisrICAg IG5vc2lkZWVmZmVjdCkKKysgICAgICAjIGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFyZSBu b3QgYnkgc2lkZS1lZmZlY3QsIHNvIHRoZXknbGwKKysgICAgICAjIG9ubHkgYmUgdXNlZCB3aGVu IGV4cGxpY2l0bHkgcmVxdWVzdGVkCisrICAgICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5j eV90cmFja2luZyIgPSB4eWVzOyB0aGVuCisrCWNvbnRpbnVlCisrICAgICAgZWxzZQorKwlicmVh aworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgbXN2aXN1YWxjcHAgfCBtc3ZjbXN5cykKKysg ICAgICAjIFRoaXMgY29tcGlsZXIgd29uJ3QgZ3JvayBgLWMgLW8nLCBidXQgYWxzbywgdGhlIG1p bnVzbyB0ZXN0IGhhcworKyAgICAgICMgbm90IHJ1biB5ZXQuICBUaGVzZSBkZXBtb2RlcyBhcmUg bGF0ZSBlbm91Z2ggaW4gdGhlIGdhbWUsIGFuZAorKyAgICAgICMgc28gd2VhayB0aGF0IHRoZWly IGZ1bmN0aW9uaW5nIHNob3VsZCBub3QgYmUgaW1wYWN0ZWQuCisrICAgICAgYW1fX29iaj1jb25m dGVzdC4ke09CSkVYVC1vfQorKyAgICAgIGFtX19taW51c19vYmo9CisrICAgICAgOzsKKysgICAg bm9uZSkgYnJlYWsgOzsKKysgICAgZXNhYworKyAgICBpZiBkZXBtb2RlPSRkZXBtb2RlIFwKKysg ICAgICAgc291cmNlPXN1Yi9jb25mdGVzdC5jIG9iamVjdD0kYW1fX29iaiBcCisrICAgICAgIGRl cGZpbGU9c3ViL2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCisrICAg ICAgICRTSEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jICRhbV9fbWludXNfb2JqIHN1Yi9jb25mdGVz dC5jIFwKKysgICAgICAgICA+L2Rldi9udWxsIDI+Y29uZnRlc3QuZXJyICYmCisrICAgICAgIGdy ZXAgc3ViL2NvbmZ0c3QxLmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysg ICAgICAgZ3JlcCBzdWIvY29uZnRzdDYuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4m MSAmJgorKyAgICAgICBncmVwICRhbV9fb2JqIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAy PiYxICYmCisrICAgICAgICR7TUFLRS1tYWtlfSAtcyAtZiBjb25mbWYgPiAvZGV2L251bGwgMj4m MTsgdGhlbgorKyAgICAgICMgaWNjIGRvZXNuJ3QgY2hva2Ugb24gdW5rbm93biBvcHRpb25zLCBp dCB3aWxsIGp1c3QgaXNzdWUgd2FybmluZ3MKKysgICAgICAjIG9yIHJlbWFya3MgKGV2ZW4gd2l0 aCAtV2Vycm9yKS4gIFNvIHdlIGdyZXAgc3RkZXJyIGZvciBhbnkgbWVzc2FnZQorKyAgICAgICMg dGhhdCBzYXlzIGFuIG9wdGlvbiB3YXMgaWdub3JlZCBvciBub3Qgc3VwcG9ydGVkLgorKyAgICAg ICMgV2hlbiBnaXZlbiAtTVAsIGljYyA3LjAgYW5kIDcuMSBjb21wbGFpbiB0aHVzbHk6CisrICAg ICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHdhcm5pbmc6IGlnbm9yaW5nIG9wdGlvbiAnLU0nOyBu byBhcmd1bWVudCByZXF1aXJlZAorKyAgICAgICMgVGhlIGRpYWdub3NpcyBjaGFuZ2VkIGluIGlj YyA4LjA6CisrICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHJlbWFyazogb3B0aW9uICctTVAn IG5vdCBzdXBwb3J0ZWQKKysgICAgICBpZiAoZ3JlcCAnaWdub3Jpbmcgb3B0aW9uJyBjb25mdGVz dC5lcnIgfHwKKysgICAgICAgICAgZ3JlcCAnbm90IHN1cHBvcnRlZCcgY29uZnRlc3QuZXJyKSA+ L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsgZWxzZQorKyAgICAgICAgYW1fY3ZfJDFfZGVwZW5kZW5j aWVzX2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUKKysgICAgICAgIGJyZWFrCisrICAgICAgZmkKKysg ICAgZmkKKysgIGRvbmUKKysKKysgIGNkIC4uCisrICBybSAtcmYgY29uZnRlc3QuZGlyCisrZWxz ZQorKyAgYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorK2ZpCisrXSkK KytBQ19TVUJTVChbJDFERVBNT0RFXSwgW2RlcG1vZGU9JGFtX2N2XyQxX2RlcGVuZGVuY2llc19j b21waWxlcl90eXBlXSkKKytBTV9DT05ESVRJT05BTChbYW1fX2Zhc3RkZXAkMV0sIFsKKysgIHRl c3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubyBcCisrICAmJiB0ZXN0ICIk YW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID0gZ2NjM10pCisrXSkKKysKKysK KysjIEFNX1NFVF9ERVBESVIKKysjIC0tLS0tLS0tLS0tLS0KKysjIENob29zZSBhIGRpcmVjdG9y eSBuYW1lIGZvciBkZXBlbmRlbmN5IGZpbGVzLgorKyMgVGhpcyBtYWNybyBpcyBBQ19SRVFVSVJF ZCBpbiBfQU1fREVQRU5ERU5DSUVTCisrQUNfREVGVU4oW0FNX1NFVF9ERVBESVJdLAorK1tBQ19S RVFVSVJFKFtBTV9TRVRfTEVBRElOR19ET1RdKWRubAorK0FDX1NVQlNUKFtERVBESVJdLCBbIiR7 YW1fX2xlYWRpbmdfZG90fWRlcHMiXSlkbmwKKytdKQorKworKworKyMgQU1fREVQX1RSQUNLCisr IyAtLS0tLS0tLS0tLS0KKytBQ19ERUZVTihbQU1fREVQX1RSQUNLXSwKKytbQUNfQVJHX0VOQUJM RShkZXBlbmRlbmN5LXRyYWNraW5nLAorK1sgIC0tZGlzYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5n ICBzcGVlZHMgdXAgb25lLXRpbWUgYnVpbGQKKysgIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tp bmcgICBkbyBub3QgcmVqZWN0IHNsb3cgZGVwZW5kZW5jeSBleHRyYWN0b3JzXSkKKytpZiB0ZXN0 ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm87IHRoZW4KKysgIGFtX2RlcGNv bXA9IiRhY19hdXhfZGlyL2RlcGNvbXAiCisrICBBTURFUEJBQ0tTTEFTSD0nXCcKKytmaQorK0FN X0NPTkRJVElPTkFMKFtBTURFUF0sIFt0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5n IiAhPSB4bm9dKQorK0FDX1NVQlNUKFtBTURFUEJBQ0tTTEFTSF0pZG5sCisrX0FNX1NVQlNUX05P VE1BS0UoW0FNREVQQkFDS1NMQVNIXSlkbmwKKytdKQorKworKyMgR2VuZXJhdGUgY29kZSB0byBz ZXQgdXAgZGVwZW5kZW5jeSB0cmFja2luZy4gICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0K KysKKysjIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwg MjAwNSwgMjAwOAorKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhp cyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysj IGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQs CisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGlj ZSBpcyBwcmVzZXJ2ZWQuCisrCisrI3NlcmlhbCA1CisrCisrIyBfQU1fT1VUUFVUX0RFUEVOREVO Q1lfQ09NTUFORFMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK0FDX0RFRlVO KFtfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdLAorK1t7CisrICAjIEF1dG9jb25mIDIu NjIgcXVvdGVzIC0tZmlsZSBhcmd1bWVudHMgZm9yIGV2YWwsIGJ1dCBub3Qgd2hlbiBmaWxlcwor KyAgIyBhcmUgbGlzdGVkIHdpdGhvdXQgLS1maWxlLiAgTGV0J3MgcGxheSBzYWZlIGFuZCBvbmx5 IGVuYWJsZSB0aGUgZXZhbAorKyAgIyBpZiB3ZSBkZXRlY3QgdGhlIHF1b3RpbmcuCisrICBjYXNl ICRDT05GSUdfRklMRVMgaW4KKysgICpcJyopIGV2YWwgc2V0IHggIiRDT05GSUdfRklMRVMiIDs7 CisrICAqKSAgIHNldCB4ICRDT05GSUdfRklMRVMgOzsKKysgIGVzYWMKKysgIHNoaWZ0CisrICBm b3IgbWYKKysgIGRvCisrICAgICMgU3RyaXAgTUYgc28gd2UgZW5kIHVwIHdpdGggdGhlIG5hbWUg b2YgdGhlIGZpbGUuCisrICAgIG1mPWBlY2hvICIkbWYiIHwgc2VkIC1lICdzLzouKiQvLydgCisr ICAgICMgQ2hlY2sgd2hldGhlciB0aGlzIGlzIGFuIEF1dG9tYWtlIGdlbmVyYXRlZCBNYWtlZmls ZSBvciBub3QuCisrICAgICMgV2UgdXNlZCB0byBtYXRjaCBvbmx5IHRoZSBmaWxlcyBuYW1lZCBg TWFrZWZpbGUuaW4nLCBidXQKKysgICAgIyBzb21lIHBlb3BsZSByZW5hbWUgdGhlbTsgc28gaW5z dGVhZCB3ZSBsb29rIGF0IHRoZSBmaWxlIGNvbnRlbnQuCisrICAgICMgR3JlcCdpbmcgdGhlIGZp cnN0IGxpbmUgaXMgbm90IGVub3VnaDogc29tZSBwZW9wbGUgcG9zdC1wcm9jZXNzCisrICAgICMg ZWFjaCBNYWtlZmlsZS5pbiBhbmQgYWRkIGEgbmV3IGxpbmUgb24gdG9wIG9mIGVhY2ggZmlsZSB0 byBzYXkgc28uCisrICAgICMgR3JlcCdpbmcgdGhlIHdob2xlIGZpbGUgaXMgbm90IGdvb2QgZWl0 aGVyOiBBSVggZ3JlcCBoYXMgYSBsaW5lCisrICAgICMgbGltaXQgb2YgMjA0OCwgYnV0IGFsbCBz ZWQncyB3ZSBrbm93IGhhdmUgdW5kZXJzdGFuZCBhdCBsZWFzdCA0MDAwLgorKyAgICBpZiBzZWQg LW4gJ3MsXiMuKmdlbmVyYXRlZCBieSBhdXRvbWFrZS4qLFgscCcgIiRtZiIgfCBncmVwIFggPi9k ZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgICAgZGlycGFydD1gQVNfRElSTkFNRSgiJG1mIilgCisr ICAgIGVsc2UKKysgICAgICBjb250aW51ZQorKyAgICBmaQorKyAgICAjIEV4dHJhY3QgdGhlIGRl ZmluaXRpb24gb2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQorKyAgICAjIGZy b20gdGhlIE1ha2VmaWxlIHdpdGhvdXQgcnVubmluZyBgbWFrZScuCisrICAgIERFUERJUj1gc2Vk IC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCisrICAgIHRlc3QgLXogIiRERVBESVIiICYm IGNvbnRpbnVlCisrICAgIGFtX19pbmNsdWRlPWBzZWQgLW4gJ3MvXmFtX19pbmNsdWRlID0gLy9w JyA8ICIkbWYiYAorKyAgICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29udGludWUKKysgICAg YW1fX3F1b3RlPWBzZWQgLW4gJ3MvXmFtX19xdW90ZSA9IC8vcCcgPCAiJG1mImAKKysgICAgIyBX aGVuIHVzaW5nIGFuc2kya25yLCBVIG1heSBiZSBlbXB0eSBvciBhbiB1bmRlcnNjb3JlOyBleHBh bmQgaXQKKysgICAgVT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAorKyAgICAjIEZpbmQg YWxsIGRlcGVuZGVuY3kgb3V0cHV0IGZpbGVzLCB0aGV5IGFyZSBpbmNsdWRlZCBmaWxlcyB3aXRo CisrICAgICMgJChERVBESVIpIGluIHRoZWlyIG5hbWVzLiAgV2UgaW52b2tlIHNlZCB0d2ljZSBi ZWNhdXNlIGl0IGlzIHRoZQorKyAgICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5nICQo REVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQorKyAgICAjIGV4cGFuc2lvbi4KKysg ICAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCisrICAgICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVv dGVcKC4qKERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCisrCSBzZWQg LWUgJ3MvXCQoREVQRElSKS8nIiRERVBESVIiJy9nJyAtZSAncy9cJFUvJyIkVSInL2cnYDsgZG8K KysgICAgICAjIE1ha2Ugc3VyZSB0aGUgZGlyZWN0b3J5IGV4aXN0cy4KKysgICAgICB0ZXN0IC1m ICIkZGlycGFydC8kZmlsZSIgJiYgY29udGludWUKKysgICAgICBmZGlyPWBBU19ESVJOQU1FKFsi JGZpbGUiXSlgCisrICAgICAgQVNfTUtESVJfUChbJGRpcnBhcnQvJGZkaXJdKQorKyAgICAgICMg ZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQvJGZpbGUiCisrICAgICAgZWNobyAnIyBkdW1teScgPiAi JGRpcnBhcnQvJGZpbGUiCisrICAgIGRvbmUKKysgIGRvbmUKKyt9CisrXSkjIF9BTV9PVVRQVVRf REVQRU5ERU5DWV9DT01NQU5EUworKworKworKyMgQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFO RFMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBUaGlzIG1hY3JvIHNob3Vs ZCBvbmx5IGJlIGludm9rZWQgb25jZSAtLSB1c2UgdmlhIEFDX1JFUVVJUkUuCisrIworKyMgVGhp cyBjb2RlIGlzIG9ubHkgcmVxdWlyZWQgd2hlbiBhdXRvbWF0aWMgZGVwZW5kZW5jeSB0cmFja2lu ZworKyMgaXMgZW5hYmxlZC4gIEZJWE1FLiAgVGhpcyBjcmVhdGVzIGVhY2ggYC5QJyBmaWxlIHRo YXQgd2Ugd2lsbAorKyMgbmVlZCBpbiBvcmRlciB0byBib290c3RyYXAgdGhlIGRlcGVuZGVuY3kg aGFuZGxpbmcgY29kZS4KKytBQ19ERUZVTihbQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNd LAorK1tBQ19DT05GSUdfQ09NTUFORFMoW2RlcGZpbGVzXSwKKysgICAgIFt0ZXN0IHgiJEFNREVQ X1RSVUUiICE9IHgiIiB8fCBfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdLAorKyAgICAg W0FNREVQX1RSVUU9IiRBTURFUF9UUlVFIiBhY19hdXhfZGlyPSIkYWNfYXV4X2RpciJdKQorK10p CisrCisrIyBEbyBhbGwgdGhlIHdvcmsgZm9yIEF1dG9tYWtlLiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLSotIEF1dG9jb25mIC0qLQorKworKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3 LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LAorKyMgMjAwNSwgMjAw NiwgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjCisrIyBUaGlz IGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMg Z2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwK KysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNl IGlzIHByZXNlcnZlZC4KKysKKysjIHNlcmlhbCAxNgorKworKyMgVGhpcyBtYWNybyBhY3R1YWxs eSBkb2VzIHRvbyBtdWNoLiAgU29tZSBjaGVja3MgYXJlIG9ubHkgbmVlZGVkIGlmCisrIyB5b3Vy IHBhY2thZ2UgZG9lcyBjZXJ0YWluIHRoaW5ncy4gIEJ1dCB0aGlzIGlzbid0IHJlYWxseSBhIGJp ZyBkZWFsLgorKworKyMgQU1fSU5JVF9BVVRPTUFLRShQQUNLQUdFLCBWRVJTSU9OLCBbTk8tREVG SU5FXSkKKysjIEFNX0lOSVRfQVVUT01BS0UoW09QVElPTlNdKQorKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFRoZSBjYWxsIHdpdGggUEFDS0FH RSBhbmQgVkVSU0lPTiBhcmd1bWVudHMgaXMgdGhlIG9sZCBzdHlsZQorKyMgY2FsbCAocHJlIGF1 dG9jb25mLTIuNTApLCB3aGljaCBpcyBiZWluZyBwaGFzZWQgb3V0LiAgUEFDS0FHRQorKyMgYW5k IFZFUlNJT04gc2hvdWxkIG5vdyBiZSBwYXNzZWQgdG8gQUNfSU5JVCBhbmQgcmVtb3ZlZCBmcm9t CisrIyB0aGUgY2FsbCB0byBBTV9JTklUX0FVVE9NQUtFLgorKyMgV2Ugc3VwcG9ydCBib3RoIGNh bGwgc3R5bGVzIGZvciB0aGUgdHJhbnNpdGlvbi4gIEFmdGVyCisrIyB0aGUgbmV4dCBBdXRvbWFr ZSByZWxlYXNlLCBBdXRvY29uZiBjYW4gbWFrZSB0aGUgQUNfSU5JVAorKyMgYXJndW1lbnRzIG1h bmRhdG9yeSwgYW5kIHRoZW4gd2UgY2FuIGRlcGVuZCBvbiBhIG5ldyBBdXRvY29uZgorKyMgcmVs ZWFzZSBhbmQgZHJvcCB0aGUgb2xkIGNhbGwgc3VwcG9ydC4KKytBQ19ERUZVTihbQU1fSU5JVF9B VVRPTUFLRV0sCisrW0FDX1BSRVJFUShbMi42Ml0pZG5sCisrZG5sIEF1dG9jb25mIHdhbnRzIHRv IGRpc2FsbG93IEFNXyBuYW1lcy4gIFdlIGV4cGxpY2l0bHkgYWxsb3cKKytkbmwgdGhlIG9uZXMg d2UgY2FyZSBhYm91dC4KKyttNF9wYXR0ZXJuX2FsbG93KFteQU1fW0EtWl0rRkxBR1MkXSlkbmwK KytBQ19SRVFVSVJFKFtBTV9TRVRfQ1VSUkVOVF9BVVRPTUFLRV9WRVJTSU9OXSlkbmwKKytBQ19S RVFVSVJFKFtBQ19QUk9HX0lOU1RBTExdKWRubAorK2lmIHRlc3QgImBjZCAkc3JjZGlyICYmIHB3 ZGAiICE9ICJgcHdkYCI7IHRoZW4KKysgICMgVXNlIC1JJChzcmNkaXIpIG9ubHkgd2hlbiAkKHNy Y2RpcikgIT0gLiwgc28gdGhhdCBtYWtlJ3Mgb3V0cHV0CisrICAjIGlzIG5vdCBwb2xsdXRlZCB3 aXRoIHJlcGVhdGVkICItSS4iCisrICBBQ19TVUJTVChbYW1fX2lzcmNdLCBbJyAtSSQoc3JjZGly KSddKV9BTV9TVUJTVF9OT1RNQUtFKFthbV9faXNyY10pZG5sCisrICAjIHRlc3QgdG8gc2VlIGlm IHNyY2RpciBhbHJlYWR5IGNvbmZpZ3VyZWQKKysgIGlmIHRlc3QgLWYgJHNyY2Rpci9jb25maWcu c3RhdHVzOyB0aGVuCisrICAgIEFDX01TR19FUlJPUihbc291cmNlIGRpcmVjdG9yeSBhbHJlYWR5 IGNvbmZpZ3VyZWQ7IHJ1biAibWFrZSBkaXN0Y2xlYW4iIHRoZXJlIGZpcnN0XSkKKysgIGZpCisr ZmkKKysKKysjIHRlc3Qgd2hldGhlciB3ZSBoYXZlIGN5Z3BhdGgKKytpZiB0ZXN0IC16ICIkQ1lH UEFUSF9XIjsgdGhlbgorKyAgaWYgKGN5Z3BhdGggLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+L2Rl di9udWxsOyB0aGVuCisrICAgIENZR1BBVEhfVz0nY3lncGF0aCAtdycKKysgIGVsc2UKKysgICAg Q1lHUEFUSF9XPWVjaG8KKysgIGZpCisrZmkKKytBQ19TVUJTVChbQ1lHUEFUSF9XXSkKKysKKysj IERlZmluZSB0aGUgaWRlbnRpdHkgb2YgdGhlIHBhY2thZ2UuCisrZG5sIERpc3Rpbmd1aXNoIGJl dHdlZW4gb2xkLXN0eWxlIGFuZCBuZXctc3R5bGUgY2FsbHMuCisrbTRfaWZ2YWwoWyQyXSwKKytb bTRfaWZ2YWwoWyQzXSwgW19BTV9TRVRfT1BUSU9OKFtuby1kZWZpbmVdKV0pZG5sCisrIEFDX1NV QlNUKFtQQUNLQUdFXSwgWyQxXSlkbmwKKysgQUNfU1VCU1QoW1ZFUlNJT05dLCBbJDJdKV0sCisr W19BTV9TRVRfT1BUSU9OUyhbJDFdKWRubAorK2RubCBEaWFnbm9zZSBvbGQtc3R5bGUgQUNfSU5J VCB3aXRoIG5ldy1zdHlsZSBBTV9BVVRPTUFLRV9JTklULgorK200X2lmKG00X2lmZGVmKFtBQ19Q QUNLQUdFX05BTUVdLCAxKW00X2lmZGVmKFtBQ19QQUNLQUdFX1ZFUlNJT05dLCAxKSwgMTEsLAor KyAgW200X2ZhdGFsKFtBQ19JTklUIHNob3VsZCBiZSBjYWxsZWQgd2l0aCBwYWNrYWdlIGFuZCB2 ZXJzaW9uIGFyZ3VtZW50c10pXSlkbmwKKysgQUNfU1VCU1QoW1BBQ0tBR0VdLCBbJ0FDX1BBQ0tB R0VfVEFSTkFNRSddKWRubAorKyBBQ19TVUJTVChbVkVSU0lPTl0sIFsnQUNfUEFDS0FHRV9WRVJT SU9OJ10pXSlkbmwKKysKKytfQU1fSUZfT1BUSU9OKFtuby1kZWZpbmVdLCwKKytbQUNfREVGSU5F X1VOUVVPVEVEKFBBQ0tBR0UsICIkUEFDS0FHRSIsIFtOYW1lIG9mIHBhY2thZ2VdKQorKyBBQ19E RUZJTkVfVU5RVU9URUQoVkVSU0lPTiwgIiRWRVJTSU9OIiwgW1ZlcnNpb24gbnVtYmVyIG9mIHBh Y2thZ2VdKV0pZG5sCisrCisrIyBTb21lIHRvb2xzIEF1dG9tYWtlIG5lZWRzLgorK0FDX1JFUVVJ UkUoW0FNX1NBTklUWV9DSEVDS10pZG5sCisrQUNfUkVRVUlSRShbQUNfQVJHX1BST0dSQU1dKWRu bAorK0FNX01JU1NJTkdfUFJPRyhBQ0xPQ0FMLCBhY2xvY2FsLSR7YW1fX2FwaV92ZXJzaW9ufSkK KytBTV9NSVNTSU5HX1BST0coQVVUT0NPTkYsIGF1dG9jb25mKQorK0FNX01JU1NJTkdfUFJPRyhB VVRPTUFLRSwgYXV0b21ha2UtJHthbV9fYXBpX3ZlcnNpb259KQorK0FNX01JU1NJTkdfUFJPRyhB VVRPSEVBREVSLCBhdXRvaGVhZGVyKQorK0FNX01JU1NJTkdfUFJPRyhNQUtFSU5GTywgbWFrZWlu Zm8pCisrQUNfUkVRVUlSRShbQU1fUFJPR19JTlNUQUxMX1NIXSlkbmwKKytBQ19SRVFVSVJFKFtB TV9QUk9HX0lOU1RBTExfU1RSSVBdKWRubAorK0FDX1JFUVVJUkUoW0FNX1BST0dfTUtESVJfUF0p ZG5sCisrIyBXZSBuZWVkIGF3ayBmb3IgdGhlICJjaGVjayIgdGFyZ2V0LiAgVGhlIHN5c3RlbSAi YXdrIiBpcyBiYWQgb24KKysjIHNvbWUgcGxhdGZvcm1zLgorK0FDX1JFUVVJUkUoW0FDX1BST0df QVdLXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX01BS0VfU0VUXSlkbmwKKytBQ19SRVFVSVJF KFtBTV9TRVRfTEVBRElOR19ET1RdKWRubAorK19BTV9JRl9PUFRJT04oW3Rhci11c3Rhcl0sIFtf QU1fUFJPR19UQVIoW3VzdGFyXSldLAorKwkgICAgICBbX0FNX0lGX09QVElPTihbdGFyLXBheF0s IFtfQU1fUFJPR19UQVIoW3BheF0pXSwKKysJCQkgICAgIFtfQU1fUFJPR19UQVIoW3Y3XSldKV0p CisrX0FNX0lGX09QVElPTihbbm8tZGVwZW5kZW5jaWVzXSwsCisrW0FDX1BST1ZJREVfSUZFTFNF KFtBQ19QUk9HX0NDXSwKKysJCSAgW19BTV9ERVBFTkRFTkNJRVMoQ0MpXSwKKysJCSAgW2RlZmlu ZShbQUNfUFJPR19DQ10sCisrCQkJICBkZWZuKFtBQ19QUk9HX0NDXSlbX0FNX0RFUEVOREVOQ0lF UyhDQyldKV0pZG5sCisrQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfQ1hYXSwKKysJCSAgW19B TV9ERVBFTkRFTkNJRVMoQ1hYKV0sCisrCQkgIFtkZWZpbmUoW0FDX1BST0dfQ1hYXSwKKysJCQkg IGRlZm4oW0FDX1BST0dfQ1hYXSlbX0FNX0RFUEVOREVOQ0lFUyhDWFgpXSldKWRubAorK0FDX1BS T1ZJREVfSUZFTFNFKFtBQ19QUk9HX09CSkNdLAorKwkJICBbX0FNX0RFUEVOREVOQ0lFUyhPQkpD KV0sCisrCQkgIFtkZWZpbmUoW0FDX1BST0dfT0JKQ10sCisrCQkJICBkZWZuKFtBQ19QUk9HX09C SkNdKVtfQU1fREVQRU5ERU5DSUVTKE9CSkMpXSldKWRubAorK10pCisrX0FNX0lGX09QVElPTihb c2lsZW50LXJ1bGVzXSwgW0FDX1JFUVVJUkUoW0FNX1NJTEVOVF9SVUxFU10pXSlkbmwKKytkbmwg VGhlIGBwYXJhbGxlbC10ZXN0cycgZHJpdmVyIG1heSBuZWVkIHRvIGtub3cgYWJvdXQgRVhFRVhU LCBzbyBhZGQgdGhlCisrZG5sIGBhbV9fRVhFRVhUJyBjb25kaXRpb25hbCBpZiBfQU1fQ09NUElM RVJfRVhFRVhUIHdhcyBzZWVuLiAgVGhpcyBtYWNybworK2RubCBpcyBob29rZWQgb250byBfQUNf Q09NUElMRVJfRVhFRVhUIGVhcmx5LCBzZWUgYmVsb3cuCisrQUNfQ09ORklHX0NPTU1BTkRTX1BS RShkbmwKKytbbTRfcHJvdmlkZV9pZihbX0FNX0NPTVBJTEVSX0VYRUVYVF0sCisrICBbQU1fQ09O RElUSU9OQUwoW2FtX19FWEVFWFRdLCBbdGVzdCAtbiAiJEVYRUVYVCJdKV0pXSlkbmwKKytdKQor KworK2RubCBIb29rIGludG8gYF9BQ19DT01QSUxFUl9FWEVFWFQnIGVhcmx5IHRvIGxlYXJuIGl0 cyBleHBhbnNpb24uICBEbyBub3QKKytkbmwgYWRkIHRoZSBjb25kaXRpb25hbCByaWdodCBoZXJl LCBhcyBfQUNfQ09NUElMRVJfRVhFRVhUIG1heSBiZSBmdXJ0aGVyCisrZG5sIG1hbmdsZWQgYnkg QXV0b2NvbmYgYW5kIHJ1biBpbiBhIHNoZWxsIGNvbmRpdGlvbmFsIHN0YXRlbWVudC4KKyttNF9k ZWZpbmUoW19BQ19DT01QSUxFUl9FWEVFWFRdLAorK200X2RlZm4oW19BQ19DT01QSUxFUl9FWEVF WFRdKVttNF9wcm92aWRlKFtfQU1fQ09NUElMRVJfRVhFRVhUXSldKQorKworKworKyMgV2hlbiBj b25maWcuc3RhdHVzIGdlbmVyYXRlcyBhIGhlYWRlciwgd2UgbXVzdCB1cGRhdGUgdGhlIHN0YW1w LWggZmlsZS4KKysjIFRoaXMgZmlsZSByZXNpZGVzIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0 aGUgY29uZmlnIGhlYWRlcgorKyMgdGhhdCBpcyBnZW5lcmF0ZWQuICBUaGUgc3RhbXAgZmlsZXMg YXJlIG51bWJlcmVkIHRvIGhhdmUgZGlmZmVyZW50IG5hbWVzLgorKworKyMgQXV0b2NvbmYgY2Fs bHMgX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PSyAod2hlbiBkZWZpbmVkKSBpbiB0aGUKKysjIGxv b3Agd2hlcmUgY29uZmlnLnN0YXR1cyBjcmVhdGVzIHRoZSBoZWFkZXJzLCBzbyB3ZSBjYW4gZ2Vu ZXJhdGUKKysjIG91ciBzdGFtcCBmaWxlcyB0aGVyZS4KKytBQ19ERUZVTihbX0FDX0FNX0NPTkZJ R19IRUFERVJfSE9PS10sCisrWyMgQ29tcHV0ZSAkMSdzIGluZGV4IGluICRjb25maWdfaGVhZGVy cy4KKytfYW1fYXJnPSQxCisrX2FtX3N0YW1wX2NvdW50PTEKKytmb3IgX2FtX2hlYWRlciBpbiAk Y29uZmlnX2hlYWRlcnMgOjsgZG8KKysgIGNhc2UgJF9hbV9oZWFkZXIgaW4KKysgICAgJF9hbV9h cmcgfCAkX2FtX2FyZzoqICkKKysgICAgICBicmVhayA7OworKyAgICAqICkKKysgICAgICBfYW1f c3RhbXBfY291bnQ9YGV4cHIgJF9hbV9zdGFtcF9jb3VudCArIDFgIDs7CisrICBlc2FjCisrZG9u ZQorK2VjaG8gInRpbWVzdGFtcCBmb3IgJF9hbV9hcmciID5gQVNfRElSTkFNRShbIiRfYW1fYXJn Il0pYC9zdGFtcC1oW10kX2FtX3N0YW1wX2NvdW50XSkKKysKKysjIENvcHlyaWdodCAoQykgMjAw MSwgMjAwMywgMjAwNSwgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIwor KyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1 dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlz IG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBBTV9QUk9HX0lOU1RBTExfU0gKKysjIC0tLS0t LS0tLS0tLS0tLS0tLQorKyMgRGVmaW5lICRpbnN0YWxsX3NoLgorK0FDX0RFRlVOKFtBTV9QUk9H X0lOU1RBTExfU0hdLAorK1tBQ19SRVFVSVJFKFtBTV9BVVhfRElSX0VYUEFORF0pZG5sCisraWYg dGVzdCB4IiR7aW5zdGFsbF9zaH0iICE9IHhzZXQ7IHRoZW4KKysgIGNhc2UgJGFtX2F1eF9kaXIg aW4KKysgICpcICogfCAqXAkqKQorKyAgICBpbnN0YWxsX3NoPSJcJHtTSEVMTH0gJyRhbV9hdXhf ZGlyL2luc3RhbGwtc2gnIiA7OworKyAgKikKKysgICAgaW5zdGFsbF9zaD0iXCR7U0hFTEx9ICRh bV9hdXhfZGlyL2luc3RhbGwtc2giCisrICBlc2FjCisrZmkKKytBQ19TVUJTVChpbnN0YWxsX3No KV0pCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5 IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMs IGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDIKKysK KysjIENoZWNrIHdoZXRoZXIgdGhlIHVuZGVybHlpbmcgZmlsZS1zeXN0ZW0gc3VwcG9ydHMgZmls ZW5hbWVzCisrIyB3aXRoIGEgbGVhZGluZyBkb3QuICBGb3IgaW5zdGFuY2UgTVMtRE9TIGRvZXNu J3QuCisrQUNfREVGVU4oW0FNX1NFVF9MRUFESU5HX0RPVF0sCisrW3JtIC1yZiAudHN0IDI+L2Rl di9udWxsCisrbWtkaXIgLnRzdCAyPi9kZXYvbnVsbAorK2lmIHRlc3QgLWQgLnRzdDsgdGhlbgor KyAgYW1fX2xlYWRpbmdfZG90PS4KKytlbHNlCisrICBhbV9fbGVhZGluZ19kb3Q9XworK2ZpCisr cm1kaXIgLnRzdCAyPi9kZXYvbnVsbAorK0FDX1NVQlNUKFthbV9fbGVhZGluZ19kb3RdKV0pCisr CisrIyBDaGVjayB0byBzZWUgaG93ICdtYWtlJyB0cmVhdHMgaW5jbHVkZXMuCSAgICAgICAgICAg IC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMiwgMjAwMywg MjAwNSwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBm aWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdp dmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisr IyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBp cyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgNAorKworKyMgQU1fTUFLRV9JTkNMVURFKCkKKysj IC0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayB0byBzZWUgaG93IG1ha2UgdHJlYXRzIGluY2x1 ZGVzLgorK0FDX0RFRlVOKFtBTV9NQUtFX0lOQ0xVREVdLAorK1thbV9tYWtlPSR7TUFLRS1tYWtl fQorK2NhdCA+IGNvbmZpbmMgPDwgJ0VORCcKKythbV9fZG9pdDoKKysJQGVjaG8gdGhpcyBpcyB0 aGUgYW1fX2RvaXQgdGFyZ2V0CisrLlBIT05ZOiBhbV9fZG9pdAorK0VORAorKyMgSWYgd2UgZG9u J3QgZmluZCBhbiBpbmNsdWRlIGRpcmVjdGl2ZSwganVzdCBjb21tZW50IG91dCB0aGUgY29kZS4K KytBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgJGFtX21ha2Vd KQorK2FtX19pbmNsdWRlPSIjIgorK2FtX19xdW90ZT0KKytfYW1fcmVzdWx0PW5vbmUKKysjIEZp cnN0IHRyeSBHTlUgbWFrZSBzdHlsZSBpbmNsdWRlLgorK2VjaG8gImluY2x1ZGUgY29uZmluYyIg PiBjb25mbWYKKysjIElnbm9yZSBhbGwga2luZHMgb2YgYWRkaXRpb25hbCBvdXRwdXQgZnJvbSBg bWFrZScuCisrY2FzZSBgJGFtX21ha2UgLXMgLWYgY29uZm1mIDI+IC9kZXYvbnVsbGAgaW4gIygK KysqdGhlXCBhbV9fZG9pdFwgdGFyZ2V0KikKKysgIGFtX19pbmNsdWRlPWluY2x1ZGUKKysgIGFt X19xdW90ZT0KKysgIF9hbV9yZXN1bHQ9R05VCisrICA7OworK2VzYWMKKysjIE5vdyB0cnkgQlNE IG1ha2Ugc3R5bGUgaW5jbHVkZS4KKytpZiB0ZXN0ICIkYW1fX2luY2x1ZGUiID0gIiMiOyB0aGVu CisrICAgZWNobyAnLmluY2x1ZGUgImNvbmZpbmMiJyA+IGNvbmZtZgorKyAgIGNhc2UgYCRhbV9t YWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGxgIGluICMoCisrICAgKnRoZVwgYW1fX2RvaXRc IHRhcmdldCopCisrICAgICBhbV9faW5jbHVkZT0uaW5jbHVkZQorKyAgICAgYW1fX3F1b3RlPSJc IiIKKysgICAgIF9hbV9yZXN1bHQ9QlNECisrICAgICA7OworKyAgIGVzYWMKKytmaQorK0FDX1NV QlNUKFthbV9faW5jbHVkZV0pCisrQUNfU1VCU1QoW2FtX19xdW90ZV0pCisrQUNfTVNHX1JFU1VM VChbJF9hbV9yZXN1bHRdKQorK3JtIC1mIGNvbmZpbmMgY29uZm1mCisrXSkKKysKKysjIEZha2Ug dGhlIGV4aXN0ZW5jZSBvZiBwcm9ncmFtcyB0aGF0IEdOVSBtYWludGFpbmVycyB1c2UuICAtKi0g QXV0b2NvbmYgLSotCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTcsIDE5OTksIDIwMDAsIDIwMDEs IDIwMDMsIDIwMDQsIDIwMDUsIDIwMDgKKysjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBk aXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcg YXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDYKKysKKysjIEFNX01J U1NJTkdfUFJPRyhOQU1FLCBQUk9HUkFNKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisrQUNfREVGVU4oW0FNX01JU1NJTkdfUFJPR10sCisrW0FDX1JFUVVJUkUoW0FNX01JU1NJ TkdfSEFTX1JVTl0pCisrJDE9JHskMS0iJHthbV9taXNzaW5nX3J1bn0kMiJ9CisrQUNfU1VCU1Qo JDEpXSkKKysKKysKKysjIEFNX01JU1NJTkdfSEFTX1JVTgorKyMgLS0tLS0tLS0tLS0tLS0tLS0t CisrIyBEZWZpbmUgTUlTU0lORyBpZiBub3QgZGVmaW5lZCBzbyBmYXIgYW5kIHRlc3QgaWYgaXQg c3VwcG9ydHMgLS1ydW4uCisrIyBJZiBpdCBkb2VzLCBzZXQgYW1fbWlzc2luZ19ydW4gdG8gdXNl IGl0LCBvdGhlcndpc2UsIHRvIG5vdGhpbmcuCisrQUNfREVGVU4oW0FNX01JU1NJTkdfSEFTX1JV Tl0sCisrW0FDX1JFUVVJUkUoW0FNX0FVWF9ESVJfRVhQQU5EXSlkbmwKKytBQ19SRVFVSVJFX0FV WF9GSUxFKFttaXNzaW5nXSlkbmwKKytpZiB0ZXN0IHgiJHtNSVNTSU5HK3NldH0iICE9IHhzZXQ7 IHRoZW4KKysgIGNhc2UgJGFtX2F1eF9kaXIgaW4KKysgICpcICogfCAqXAkqKQorKyAgICBNSVNT SU5HPSJcJHtTSEVMTH0gXCIkYW1fYXV4X2Rpci9taXNzaW5nXCIiIDs7CisrICAqKQorKyAgICBN SVNTSU5HPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIvbWlzc2luZyIgOzsKKysgIGVzYWMKKytmaQor KyMgVXNlIGV2YWwgdG8gZXhwYW5kICRTSEVMTAorK2lmIGV2YWwgIiRNSVNTSU5HIC0tcnVuIHRy dWUiOyB0aGVuCisrICBhbV9taXNzaW5nX3J1bj0iJE1JU1NJTkcgLS1ydW4gIgorK2Vsc2UKKysg IGFtX21pc3NpbmdfcnVuPQorKyAgQUNfTVNHX1dBUk4oW2BtaXNzaW5nJyBzY3JpcHQgaXMgdG9v IG9sZCBvciBtaXNzaW5nXSkKKytmaQorK10pCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDMsIDIw MDQsIDIwMDUsIDIwMDYgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRo aXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisr IyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0 LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3Rp Y2UgaXMgcHJlc2VydmVkLgorKworKyMgQU1fUFJPR19NS0RJUl9QCisrIyAtLS0tLS0tLS0tLS0t LS0KKysjIENoZWNrIGZvciBgbWtkaXIgLXAnLgorK0FDX0RFRlVOKFtBTV9QUk9HX01LRElSX1Bd LAorK1tBQ19QUkVSRVEoWzIuNjBdKWRubAorK0FDX1JFUVVJUkUoW0FDX1BST0dfTUtESVJfUF0p ZG5sCisrZG5sIEF1dG9tYWtlIDEuOCB0byAxLjkuNiB1c2VkIHRvIGRlZmluZSBta2Rpcl9wLiAg V2Ugbm93IHVzZSBNS0RJUl9QLAorK2RubCB3aGlsZSBrZWVwaW5nIGEgZGVmaW5pdGlvbiBvZiBt a2Rpcl9wIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorK2RubCBATUtESVJfUEAgaXMgbWFn aWM6IEFDX09VVFBVVCBhZGp1c3RzIGl0cyB2YWx1ZSBmb3IgZWFjaCBNYWtlZmlsZS4KKytkbmwg SG93ZXZlciB3ZSBjYW5ub3QgZGVmaW5lIG1rZGlyX3AgYXMgJChNS0RJUl9QKSBmb3IgdGhlIHNh a2Ugb2YKKytkbmwgTWFrZWZpbGUuaW5zIHRoYXQgZG8gbm90IGRlZmluZSBNS0RJUl9QLCBzbyB3 ZSBkbyBvdXIgb3duCisrZG5sIGFkanVzdG1lbnQgdXNpbmcgdG9wX2J1aWxkZGlyICh3aGljaCBp cyBkZWZpbmVkIG1vcmUgb2Z0ZW4gdGhhbgorK2RubCBNS0RJUl9QKS4KKytBQ19TVUJTVChbbWtk aXJfcF0sIFsiJE1LRElSX1AiXSlkbmwKKytjYXNlICRta2Rpcl9wIGluCisrICBbW1xcLyRdXSog fCA/OltbXFwvXV0qKSA7OworKyAgKi8qKSBta2Rpcl9wPSJcJCh0b3BfYnVpbGRkaXIpLyRta2Rp cl9wIiA7OworK2VzYWMKKytdKQorKworKyMgSGVscGVyIGZ1bmN0aW9ucyBmb3Igb3B0aW9uIGhh bmRsaW5nLiAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHly aWdodCAoQykgMjAwMSwgMjAwMiwgMjAwMywgMjAwNSwgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv cHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u cywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgNAor KworKyMgX0FNX01BTkdMRV9PUFRJT04oTkFNRSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrQUNfREVGVU4oW19BTV9NQU5HTEVfT1BUSU9OXSwKKytbW19BTV9PUFRJT05fXW00X2JwYXRz dWJzdCgkMSwgW1teYS16QS1aMC05X11dLCBbX10pXSkKKysKKysjIF9BTV9TRVRfT1BUSU9OKE5B TUUpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFNldCBvcHRpb24gTkFN RS4gIFByZXNlbnRseSB0aGF0IG9ubHkgbWVhbnMgZGVmaW5pbmcgYSBmbGFnIGZvciB0aGlzIG9w dGlvbi4KKytBQ19ERUZVTihbX0FNX1NFVF9PUFRJT05dLAorK1ttNF9kZWZpbmUoX0FNX01BTkdM RV9PUFRJT04oWyQxXSksIDEpXSkKKysKKysjIF9BTV9TRVRfT1BUSU9OUyhPUFRJT05TKQorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgT1BUSU9OUyBpcyBhIHNwYWNl LXNlcGFyYXRlZCBsaXN0IG9mIEF1dG9tYWtlIG9wdGlvbnMuCisrQUNfREVGVU4oW19BTV9TRVRf T1BUSU9OU10sCisrW200X2ZvcmVhY2hfdyhbX0FNX09wdGlvbl0sIFskMV0sIFtfQU1fU0VUX09Q VElPTihfQU1fT3B0aW9uKV0pXSkKKysKKysjIF9BTV9JRl9PUFRJT04oT1BUSU9OLCBJRi1TRVQs IFtJRi1OT1QtU0VUXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysjIEV4ZWN1dGUgSUYtU0VUIGlmIE9QVElPTiBpcyBzZXQsIElGLU5PVC1TRVQgb3Ro ZXJ3aXNlLgorK0FDX0RFRlVOKFtfQU1fSUZfT1BUSU9OXSwKKytbbTRfaWZzZXQoX0FNX01BTkdM RV9PUFRJT04oWyQxXSksIFskMl0sIFskM10pXSkKKysKKysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0 aGF0IHRoZSBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLiAgICAtKi0gQXV0b2NvbmYgLSotCisr CisrIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDUsIDIw MDgKKysjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBp cyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1 bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0 aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJl c2VydmVkLgorKworKyMgc2VyaWFsIDUKKysKKysjIEFNX1NBTklUWV9DSEVDSworKyMgLS0tLS0t LS0tLS0tLS0tCisrQUNfREVGVU4oW0FNX1NBTklUWV9DSEVDS10sCisrW0FDX01TR19DSEVDS0lO Ryhbd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lXSkKKysjIEp1c3QgaW4gY2FzZQor K3NsZWVwIDEKKytlY2hvIHRpbWVzdGFtcCA+IGNvbmZ0ZXN0LmZpbGUKKysjIFJlamVjdCB1bnNh ZmUgY2hhcmFjdGVycyBpbiAkc3JjZGlyIG9yIHRoZSBhYnNvbHV0ZSB3b3JraW5nIGRpcmVjdG9y eQorKyMgbmFtZS4gIEFjY2VwdCBzcGFjZSBhbmQgdGFiIG9ubHkgaW4gdGhlIGxhdHRlci4KKyth bV9sZj0nCisrJworK2Nhc2UgYHB3ZGAgaW4KKysgICpbW1xcXCJcI1wkXCZcJ1xgJGFtX2xmXV0q KQorKyAgICBBQ19NU0dfRVJST1IoW3Vuc2FmZSBhYnNvbHV0ZSB3b3JraW5nIGRpcmVjdG9yeSBu YW1lXSk7OworK2VzYWMKKytjYXNlICRzcmNkaXIgaW4KKysgICpbW1xcXCJcI1wkXCZcJ1xgJGFt X2xmXCBcCV1dKikKKysgICAgQUNfTVNHX0VSUk9SKFt1bnNhZmUgc3JjZGlyIHZhbHVlOiBgJHNy Y2RpciddKTs7CisrZXNhYworKworKyMgRG8gYHNldCcgaW4gYSBzdWJzaGVsbCBzbyB3ZSBkb24n dCBjbG9iYmVyIHRoZSBjdXJyZW50IHNoZWxsJ3MKKysjIGFyZ3VtZW50cy4gIE11c3QgdHJ5IC1M IGZpcnN0IGluIGNhc2UgY29uZmlndXJlIGlzIGFjdHVhbGx5IGEKKysjIHN5bWxpbms7IHNvbWUg c3lzdGVtcyBwbGF5IHdlaXJkIGdhbWVzIHdpdGggdGhlIG1vZCB0aW1lIG9mIHN5bWxpbmtzCisr IyAoZWcgRnJlZUJTRCByZXR1cm5zIHRoZSBtb2QgdGltZSBvZiB0aGUgc3ltbGluaydzIGNvbnRh aW5pbmcKKysjIGRpcmVjdG9yeSkuCisraWYgKAorKyAgIHNldCBYIGBscyAtTHQgIiRzcmNkaXIv Y29uZmlndXJlIiBjb25mdGVzdC5maWxlIDI+IC9kZXYvbnVsbGAKKysgICBpZiB0ZXN0ICIkWypd IiA9ICJYIjsgdGhlbgorKyAgICAgICMgLUwgZGlkbid0IHdvcmsuCisrICAgICAgc2V0IFggYGxz IC10ICIkc3JjZGlyL2NvbmZpZ3VyZSIgY29uZnRlc3QuZmlsZWAKKysgICBmaQorKyAgIHJtIC1m IGNvbmZ0ZXN0LmZpbGUKKysgICBpZiB0ZXN0ICIkWypdIiAhPSAiWCAkc3JjZGlyL2NvbmZpZ3Vy ZSBjb25mdGVzdC5maWxlIiBcCisrICAgICAgJiYgdGVzdCAiJFsqXSIgIT0gIlggY29uZnRlc3Qu ZmlsZSAkc3JjZGlyL2NvbmZpZ3VyZSI7IHRoZW4KKysKKysgICAgICAjIElmIG5laXRoZXIgbWF0 Y2hlZCwgdGhlbiB3ZSBoYXZlIGEgYnJva2VuIGxzLiAgVGhpcyBjYW4gaGFwcGVuCisrICAgICAg IyBpZiwgZm9yIGluc3RhbmNlLCBDT05GSUdfU0hFTEwgaXMgYmFzaCBhbmQgaXQgaW5oZXJpdHMg YQorKyAgICAgICMgYnJva2VuIGxzIGFsaWFzIGZyb20gdGhlIGVudmlyb25tZW50LiAgVGhpcyBo YXMgYWN0dWFsbHkKKysgICAgICAjIGhhcHBlbmVkLiAgU3VjaCBhIHN5c3RlbSBjb3VsZCBub3Qg YmUgY29uc2lkZXJlZCAic2FuZSIuCisrICAgICAgQUNfTVNHX0VSUk9SKFtscyAtdCBhcHBlYXJz IHRvIGZhaWwuICBNYWtlIHN1cmUgdGhlcmUgaXMgbm90IGEgYnJva2VuCisrYWxpYXMgaW4geW91 ciBlbnZpcm9ubWVudF0pCisrICAgZmkKKysKKysgICB0ZXN0ICIkWzJdIiA9IGNvbmZ0ZXN0LmZp bGUKKysgICApCisrdGhlbgorKyAgICMgT2suCisrICAgOgorK2Vsc2UKKysgICBBQ19NU0dfRVJS T1IoW25ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFuIGRpc3RyaWJ1dGVkIGZpbGVzIQor K0NoZWNrIHlvdXIgc3lzdGVtIGNsb2NrXSkKKytmaQorK0FDX01TR19SRVNVTFQoeWVzKV0pCisr CisrIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5 IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMs IGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgQU1fUFJPR19JTlNU QUxMX1NUUklQCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIE9uZSBpc3N1ZSB3aXRoIHZl bmRvciBgaW5zdGFsbCcgKGV2ZW4gR05VKSBpcyB0aGF0IHlvdSBjYW4ndAorKyMgc3BlY2lmeSB0 aGUgcHJvZ3JhbSB1c2VkIHRvIHN0cmlwIGJpbmFyaWVzLiAgVGhpcyBpcyBlc3BlY2lhbGx5Cisr IyBhbm5veWluZyBpbiBjcm9zcy1jb21waWxpbmcgZW52aXJvbm1lbnRzLCB3aGVyZSB0aGUgYnVp bGQncyBzdHJpcAorKyMgaXMgdW5saWtlbHkgdG8gaGFuZGxlIHRoZSBob3N0J3MgYmluYXJpZXMu CisrIyBGb3J0dW5hdGVseSBpbnN0YWxsLXNoIHdpbGwgaG9ub3IgYSBTVFJJUFBST0cgdmFyaWFi bGUsIHNvIHdlCisrIyBhbHdheXMgdXNlIGluc3RhbGwtc2ggaW4gYG1ha2UgaW5zdGFsbC1zdHJp cCcsIGFuZCBpbml0aWFsaXplCisrIyBTVFJJUFBST0cgd2l0aCB0aGUgdmFsdWUgb2YgdGhlIFNU UklQIHZhcmlhYmxlIChzZXQgYnkgdGhlIHVzZXIpLgorK0FDX0RFRlVOKFtBTV9QUk9HX0lOU1RB TExfU1RSSVBdLAorK1tBQ19SRVFVSVJFKFtBTV9QUk9HX0lOU1RBTExfU0hdKWRubAorKyMgSW5z dGFsbGVkIGJpbmFyaWVzIGFyZSB1c3VhbGx5IHN0cmlwcGVkIHVzaW5nIGBzdHJpcCcgd2hlbiB0 aGUgdXNlcgorKyMgcnVuIGBtYWtlIGluc3RhbGwtc3RyaXAnLiAgSG93ZXZlciBgc3RyaXAnIG1p Z2h0IG5vdCBiZSB0aGUgcmlnaHQKKysjIHRvb2wgdG8gdXNlIGluIGNyb3NzLWNvbXBpbGF0aW9u IGVudmlyb25tZW50cywgdGhlcmVmb3JlIEF1dG9tYWtlCisrIyB3aWxsIGhvbm9yIHRoZSBgU1RS SVAnIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIG92ZXJydWxlIHRoaXMgcHJvZ3JhbS4KKytkbmwg RG9uJ3QgdGVzdCBmb3IgJGNyb3NzX2NvbXBpbGluZyA9IHllcywgYmVjYXVzZSBpdCBtaWdodCBi ZSBgbWF5YmUnLgorK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciICE9IG5vOyB0aGVuCisrICBB Q19DSEVDS19UT09MKFtTVFJJUF0sIFtzdHJpcF0sIDopCisrZmkKKytJTlNUQUxMX1NUUklQX1BS T0dSQU09IlwkKGluc3RhbGxfc2gpIC1jIC1zIgorK0FDX1NVQlNUKFtJTlNUQUxMX1NUUklQX1BS T0dSQU1dKV0pCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0 byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh dGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFs IDIKKysKKysjIF9BTV9TVUJTVF9OT1RNQUtFKFZBUklBQkxFKQorKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrIyBQcmV2ZW50IEF1dG9tYWtlIGZyb20gb3V0cHV0dGluZyBWQVJJQUJM RSA9IEBWQVJJQUJMRUAgaW4gTWFrZWZpbGUuaW4uCisrIyBUaGlzIG1hY3JvIGlzIHRyYWNlZCBi eSBBdXRvbWFrZS4KKytBQ19ERUZVTihbX0FNX1NVQlNUX05PVE1BS0VdKQorKworKyMgQU1fU1VC U1RfTk9UTUFLRShWQVJJQUJMRSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMg UHVibGljIHNpc3RlciBvZiBfQU1fU1VCU1RfTk9UTUFLRS4KKytBQ19ERUZVTihbQU1fU1VCU1Rf Tk9UTUFLRV0sIFtfQU1fU1VCU1RfTk9UTUFLRSgkQCldKQorKworKyMgQ2hlY2sgaG93IHRvIGNy ZWF0ZSBhIHRhcmJhbGwuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAt Ki0KKysKKysjIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkg YW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywg YXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgMgorKwor KyMgX0FNX1BST0dfVEFSKEZPUk1BVCkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVj ayBob3cgdG8gY3JlYXRlIGEgdGFyYmFsbCBpbiBmb3JtYXQgRk9STUFULgorKyMgRk9STUFUIHNo b3VsZCBiZSBvbmUgb2YgYHY3JywgYHVzdGFyJywgb3IgYHBheCcuCisrIworKyMgU3Vic3RpdHV0 ZSBhIHZhcmlhYmxlICQoYW1fX3RhcikgdGhhdCBpcyBhIGNvbW1hbmQKKysjIHdyaXRpbmcgdG8g c3Rkb3V0IGEgRk9STUFULXRhcmJhbGwgY29udGFpbmluZyB0aGUgZGlyZWN0b3J5CisrIyAkdGFy ZGlyLgorKyMgICAgIHRhcmRpcj1kaXJlY3RvcnkgJiYgJChhbV9fdGFyKSA+IHJlc3VsdC50YXIK KysjCisrIyBTdWJzdGl0dXRlIGEgdmFyaWFibGUgJChhbV9fdW50YXIpIHRoYXQgZXh0cmFjdCBz dWNoCisrIyBhIHRhcmJhbGwgcmVhZCBmcm9tIHN0ZGluLgorKyMgICAgICQoYW1fX3VudGFyKSA8 IHJlc3VsdC50YXIKKytBQ19ERUZVTihbX0FNX1BST0dfVEFSXSwKKytbIyBBbHdheXMgZGVmaW5l IEFNVEFSIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorK0FNX01JU1NJTkdfUFJPRyhbQU1U QVJdLCBbdGFyXSkKKyttNF9pZihbJDFdLCBbdjddLAorKyAgICAgW2FtX190YXI9JyR7QU1UQVJ9 IGNob2YgLSAiJCR0YXJkaXIiJzsgYW1fX3VudGFyPScke0FNVEFSfSB4ZiAtJ10sCisrICAgICBb bTRfY2FzZShbJDFdLCBbdXN0YXJdLCwgW3BheF0sLAorKyAgICAgICAgICAgICAgW200X2ZhdGFs KFtVbmtub3duIHRhciBmb3JtYXRdKV0pCisrQUNfTVNHX0NIRUNLSU5HKFtob3cgdG8gY3JlYXRl IGEgJDEgdGFyIGFyY2hpdmVdKQorKyMgTG9vcCBvdmVyIGFsbCBrbm93biBtZXRob2RzIHRvIGNy ZWF0ZSBhIHRhciBhcmNoaXZlIHVudGlsIG9uZSB3b3Jrcy4KKytfYW1fdG9vbHM9J2dudXRhciBt NF9pZihbJDFdLCBbdXN0YXJdLCBbcGxhaW50YXJdKSBwYXggY3BpbyBub25lJworK19hbV90b29s cz0ke2FtX2N2X3Byb2dfdGFyXyQxLSRfYW1fdG9vbHN9CisrIyBEbyBub3QgZm9sZCB0aGUgYWJv dmUgdHdvIGxpbmUgaW50byBvbmUsIGJlY2F1c2UgVHJ1NjQgc2ggYW5kCisrIyBTb2xhcmlzIHNo IHdpbGwgbm90IGdyb2sgc3BhY2VzIGluIHRoZSByaHMgb2YgYC0nLgorK2ZvciBfYW1fdG9vbCBp biAkX2FtX3Rvb2xzCisrZG8KKysgIGNhc2UgJF9hbV90b29sIGluCisrICBnbnV0YXIpCisrICAg IGZvciBfYW1fdGFyIGluIHRhciBnbnV0YXIgZ3RhcjsKKysgICAgZG8KKysgICAgICBBTV9SVU5f TE9HKFskX2FtX3RhciAtLXZlcnNpb25dKSAmJiBicmVhaworKyAgICBkb25lCisrICAgIGFtX190 YXI9IiRfYW1fdGFyIC0tZm9ybWF0PW00X2lmKFskMV0sIFtwYXhdLCBbcG9zaXhdLCBbJDFdKSAt Y2hmIC0gIiciJCR0YXJkaXIiJworKyAgICBhbV9fdGFyXz0iJF9hbV90YXIgLS1mb3JtYXQ9bTRf aWYoWyQxXSwgW3BheF0sIFtwb3NpeF0sIFskMV0pIC1jaGYgLSAiJyIkdGFyZGlyIicKKysgICAg YW1fX3VudGFyPSIkX2FtX3RhciAteGYgLSIKKysgICAgOzsKKysgIHBsYWludGFyKQorKyAgICAj IE11c3Qgc2tpcCBHTlUgdGFyOiBpZiBpdCBkb2VzIG5vdCBzdXBwb3J0IC0tZm9ybWF0PSBpdCBk b2Vzbid0IGNyZWF0ZQorKyAgICAjIHVzdGFyIHRhcmJhbGwgZWl0aGVyLgorKyAgICAodGFyIC0t dmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxICYmIGNvbnRpbnVlCisrICAgIGFtX190YXI9J3RhciBj aGYgLSAiJCR0YXJkaXIiJworKyAgICBhbV9fdGFyXz0ndGFyIGNoZiAtICIkdGFyZGlyIicKKysg ICAgYW1fX3VudGFyPSd0YXIgeGYgLScKKysgICAgOzsKKysgIHBheCkKKysgICAgYW1fX3Rhcj0n cGF4IC1MIC14ICQxIC13ICIkJHRhcmRpciInCisrICAgIGFtX190YXJfPSdwYXggLUwgLXggJDEg LXcgIiR0YXJkaXIiJworKyAgICBhbV9fdW50YXI9J3BheCAtcicKKysgICAgOzsKKysgIGNwaW8p CisrICAgIGFtX190YXI9J2ZpbmQgIiQkdGFyZGlyIiAtcHJpbnQgfCBjcGlvIC1vIC1IICQxIC1M JworKyAgICBhbV9fdGFyXz0nZmluZCAiJHRhcmRpciIgLXByaW50IHwgY3BpbyAtbyAtSCAkMSAt TCcKKysgICAgYW1fX3VudGFyPSdjcGlvIC1pIC1IICQxIC1kJworKyAgICA7OworKyAgbm9uZSkK KysgICAgYW1fX3Rhcj1mYWxzZQorKyAgICBhbV9fdGFyXz1mYWxzZQorKyAgICBhbV9fdW50YXI9 ZmFsc2UKKysgICAgOzsKKysgIGVzYWMKKysKKysgICMgSWYgdGhlIHZhbHVlIHdhcyBjYWNoZWQs IHN0b3Agbm93LiAgV2UganVzdCB3YW50ZWQgdG8gaGF2ZSBhbV9fdGFyCisrICAjIGFuZCBhbV9f dW50YXIgc2V0LgorKyAgdGVzdCAtbiAiJHthbV9jdl9wcm9nX3Rhcl8kMX0iICYmIGJyZWFrCisr CisrICAjIHRhci91bnRhciBhIGR1bW15IGRpcmVjdG9yeSwgYW5kIHN0b3AgaWYgdGhlIGNvbW1h bmQgd29ya3MKKysgIHJtIC1yZiBjb25mdGVzdC5kaXIKKysgIG1rZGlyIGNvbmZ0ZXN0LmRpcgor KyAgZWNobyBHcmVwTWUgPiBjb25mdGVzdC5kaXIvZmlsZQorKyAgQU1fUlVOX0xPRyhbdGFyZGly PWNvbmZ0ZXN0LmRpciAmJiBldmFsICRhbV9fdGFyXyA+Y29uZnRlc3QudGFyXSkKKysgIHJtIC1y ZiBjb25mdGVzdC5kaXIKKysgIGlmIHRlc3QgLXMgY29uZnRlc3QudGFyOyB0aGVuCisrICAgIEFN X1JVTl9MT0coWyRhbV9fdW50YXIgPGNvbmZ0ZXN0LnRhcl0pCisrICAgIGdyZXAgR3JlcE1lIGNv bmZ0ZXN0LmRpci9maWxlID4vZGV2L251bGwgMj4mMSAmJiBicmVhaworKyAgZmkKKytkb25lCisr cm0gLXJmIGNvbmZ0ZXN0LmRpcgorKworK0FDX0NBQ0hFX1ZBTChbYW1fY3ZfcHJvZ190YXJfJDFd LCBbYW1fY3ZfcHJvZ190YXJfJDE9JF9hbV90b29sXSkKKytBQ19NU0dfUkVTVUxUKFskYW1fY3Zf cHJvZ190YXJfJDFdKV0pCisrQUNfU1VCU1QoW2FtX190YXJdKQorK0FDX1NVQlNUKFthbV9fdW50 YXJdKQorK10pICMgX0FNX1BST0dfVEFSCisrCisrbTRfaW5jbHVkZShbY29uZmlnL2F4X2Jvb3N0 Lm00XSkKKyttNF9pbmNsdWRlKFtjb25maWcvYXhfbXlzcWwubTRdKQorK200X2luY2x1ZGUoW2Nv bmZpZy9heF9vcmFjbGVfb2NpLm00XSkKKyttNF9pbmNsdWRlKFtjb25maWcvYXhfcG9zdGdyZXNx bC5tNF0pCisrbTRfaW5jbHVkZShbY29uZmlnL2NwcHVuaXQubTRdKQorK200X2luY2x1ZGUoW2Nv bmZpZy9saWJ0b29sLm00XSkKKyttNF9pbmNsdWRlKFtjb25maWcvbHRvcHRpb25zLm00XSkKKytt NF9pbmNsdWRlKFtjb25maWcvbHRzdWdhci5tNF0pCisrbTRfaW5jbHVkZShbY29uZmlnL2x0dmVy c2lvbi5tNF0pCisrbTRfaW5jbHVkZShbY29uZmlnL2x0fm9ic29sZXRlLm00XSkKK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAv YnVpbGQvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9NYWtlZmlsZS5h bQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9idWlsZC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA4LjAwMDAwMDAwMCArMDIw MAorQEAgLTAsMCArMSw3IEBACisrIyMgYnVpbGQgc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0 b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1h a2VmaWxlLmluCisrCisrU1VCRElSUyA9IHVuaXggbXN2YzgwCisrCitkaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svYnVpbGQvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL01h a2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvTWFrZWZpbGUuaW4JMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVp bGQvTWFrZWZpbGUuaW4JMjAxMS0wMi0wOCAyMjozOTo1NS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0w LDAgKzEsNjE1IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4x IGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0 IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAy LAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQg cGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRo b3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgor KworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQg cGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NF LgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0 YWRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VA CisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmV4ZWNkaXIgPSAkKGxp YmV4ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0k KFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gp IC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0 YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5T VEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JN QUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9S TUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0g OgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElT VF9DT01NT04gPSBSRUFETUUgJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmls ZS5pbiBcCisrCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrc3ViZGlyID0gYnVpbGQK KytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRf ZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVf b2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s aWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0 dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9w X3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2Nh bF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQor K21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9w X2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytDT05GSUdf Q0xFQU5fVlBBVEhfRklMRVMgPQorK1NPVVJDRVMgPQorK0RJU1RfU09VUkNFUyA9CisrUkVDVVJT SVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZl IFwKKysJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2 ZSBcCisrCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJ aW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFs bC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwK KysJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vy c2l2ZSBcCisrCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrUkVDVVJTSVZFX0NM RUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysg IGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytBTV9SRUNV UlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKKysJJChS RUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdT IFwKKysJZGlzdGRpcgorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJE SVJTID0gJChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VS Q0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrYW1fX3JlbGF0aXZpemUgPSBcCisrICBk aXIwPWBwd2RgOyBcCisrICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKKysg IHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCisrICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwp JCQsXDEsJzsgXAorKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCisrICB3aGlsZSB0 ZXN0IC1uICIkJGRpcjEiOyBkbyBcCisrICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1l ICIkJHNlZF9maXJzdCJgOyBcCisrICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBc CisrICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKKysgICAgICAgIGRpcjI9 YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAorKyAgICAg ICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCisrICAg ICAgZWxzZSBcCisrICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2Vk X2ZpcnN0ImA7IFwKKysgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhl biBcCisrICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3Qi YDsgXAorKyAgICAgICAgZWxzZSBcCisrICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKKysg ICAgICAgIGZpOyBcCisrICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAorKyAgICAg IGZpOyBcCisrICAgIGZpOyBcCisrICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQk c2VkX3Jlc3QiYDsgXAorKyAgZG9uZTsgXAorKyAgcmVsZGlyPSIkJGRpcjIiCisrQUNMT0NBTCA9 IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFV VE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFL RUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1Rf REFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1f TElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9P U1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfTVBJ X0xJQiA9IEBCT09TVF9NUElfTElCQAorK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NUX01Q SV9QWVRIT05fTElCQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JB TV9PUFRJT05TX0xJQkAKKytCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJACisr Qk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9O X0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBC T09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9MSUJA CisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVT VF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NU X1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBA Qk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RF UE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQ UEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09O RklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisr Q1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQ UCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENY WEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJ UiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklO QAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNI T19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdS RVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05A CisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBA SU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5T VEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0g QElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NA CisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRP T0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJP QkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNR TF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAor K01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACisr TVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJVCA9IEBO TUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xF X0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9D RkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFD TEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9UT09MQAor K09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdS RVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFN RUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUg PSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAorK1BBQ0tB R0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9T RVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9T VEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0g QFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZM QUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElC ID0gQFJBTkxJQkAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxM ID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAK KytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURA CisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFE RVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURf Q09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWls ZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBh YnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2Fj X2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRFVN UEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2Ft X19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90 ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5k aXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2Fs aWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisr YnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytk YXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9v ayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2Vu X29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19w cmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAor K2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0 X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9 IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9k aXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAor K2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRp ciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK21hbmRp ciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xk aW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJv Z3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0g QHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJl ZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29u ZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9w X2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3Bf YnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkk KHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBN YWtlZmlsZS5pbgorK1NVQkRJUlMgPSB1bml4IG1zdmM4MAorK2FsbDogYWxsLXJlY3Vyc2l2ZQor KworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZp bGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMp CisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMp JyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsg aWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAg IGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3Ny Y2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgYnVpbGQvTWFrZWZpbGUnOyBcCisrCSQoYW1fX2Nk KSAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSBidWlsZC9NYWtlZmls ZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmlu ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpj b25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAk KGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChT SEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7 OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3Ny Y2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQo dG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNM T0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1fX2FjbG9jYWxfbTRf ZGVwcyk6CisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVh bi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrCisrIyBUaGlzIGRpcmVjdG9yeSdz IHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGlu dG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmls ZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQg b2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBg Y29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwg Y2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2Un KTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFr ZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlAZmFpbD0gZmFpbGNv bT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAk JGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2Zh aWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJ dGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJn ZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwK KysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7 IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7 IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQk bG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlp ZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwi CisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0 IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBc CisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMn OzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIk QCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJ U1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7 IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQk c3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYi OyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1g ZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsg ZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0 ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdl dC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisr CSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAm JiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwg KCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAor Kwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkg JCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisrCWRvbmUKKysK KytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0 PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlx dWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBl Y2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJ ICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVO RCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAor Kwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogdGFncy1yZWN1cnNp dmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRB R1NfRklMRVMpICQoTElTUCkKKysJc2V0IHg7IFwKKysJaGVyZT1gcHdkYDsgXAorKwlpZiAoJChF VEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwK KysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9Ljsg XAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKKysJICBlbXB0eV9m aXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAg ICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHNldCAiJCRAIiAiJCRpbmNs dWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBc CisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9u ZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisr CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAorKwlzaGlmdDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlx dWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRl bXB0eV9maXg7IFwKKysJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisrCSAgICAkKEVUQUdT KSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAg ICIkJEAiICQkdW5pcXVlOyBcCisrCSAgZWxzZSBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxB R1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAgICQkdW5pcXVlOyBc CisrCSAgZmk7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZl ICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdT X0ZJTEVTKSAkKExJU1ApCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAk KFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAg aWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7 IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVt cHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmls ZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUi IFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFH U19BUkdTKSBcCisrCSAgICAgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2Qp ICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGly KSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorKworK2Rpc3RjbGVh bi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwor KworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGly KSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBl Y2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJ bGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlz dDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlw L3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGly KS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1Ap IGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3Rk aXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwK KysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUg fHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkg IGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUi IHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGly KS8kJGZpbGUiOyB0aGVuIFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBl IGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAor KwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGly KTsgdGhlbiBcCisrCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQk ZGlyIiB8fCBleGl0IDE7IFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBl IGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAor KwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAor KwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8 IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBleGl0IDE7 IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCAk KE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJ ICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBc CisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAorKwkg ICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCisr CSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKKysJICAgICQoYW1f X3JlbGF0aXZpemUpOyBcCisrCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAg IGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3Rk aXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKKysJ ICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNr PTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKKysJICAgICgkKGFtX19jZCkgJCRz dWJkaXIgJiYgXAorKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisrCSAgICAgICAg dG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRu ZXdfZGlzdGRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorKwkJYW1fX3NraXBfbGVu Z3RoX2NoZWNrPTogXAorKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCisrCSAgICAgICAgZGlzdGRp cikgXAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06 IGFsbC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwtYW06IE1ha2VmaWxlCisraW5z dGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQorK2luc3RhbGxkaXJzLWFtOgorK2luc3Rh bGw6IGluc3RhbGwtcmVjdXJzaXZlCisraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJz aXZlCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCisrdW5pbnN0YWxsOiB1 bmluc3RhbGwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1hbTogYWxsLWFtCisrCUAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisrCisraW5zdGFs bGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtF KSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JB TSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIg SU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJ ICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0 YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3Rj bGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAt ZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3Qg LXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5f VlBBVEhfRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhp cyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJp dCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxk LiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5U QUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTog Y2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFu OiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTog Y2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1y ZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytodG1s LWFtOgorKworK2luZm86IGluZm8tcmVjdXJzaXZlCisrCisraW5mby1hbToKKysKKytpbnN0YWxs LWRhdGEtYW06CisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2lu c3RhbGwtZHZpLWFtOgorKworK2luc3RhbGwtZXhlYy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGlu c3RhbGwtaHRtbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWh0bWwtYW06CisrCisraW5zdGFsbC1p bmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisrCisraW5zdGFsbC1pbmZvLWFtOgorKworK2lu c3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKKysKKytp bnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKwor K2luc3RhbGwtcHMtYW06CisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xl YW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50 YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysK Kyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06 IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLXJl Y3Vyc2l2ZQorKworK3BkZi1hbToKKysKKytwczogcHMtcmVjdXJzaXZlCisrCisrcHMtYW06Cisr CisrdW5pbnN0YWxsLWFtOgorKworKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAk KFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWFtIGluc3Rh bGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKKysKKysuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RB UkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKKysJYWxsIGFsbC1hbSBj aGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorKwljdGFn cyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNs ZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAorKwlo dG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKysJ aW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBc CisrCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwt aW5mbyBcCisrCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxs LXBkZi1hbSBcCisrCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3Rh bGxjaGVjayBcCisrCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBt YWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFu IG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0g cHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBcCisrCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0K KysKKytAU0VUX01BS0VACisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBt YWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBs aW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6Citk aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5hbSBz b2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5hbQorLS0tIHNvY2kt My4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2Yzgw L2RsbC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA4LjAwMDAwMDAwMCArMDIwMAorQEAg LTAsMCArMSwxMSBAQAorKyMjIGJ1aWxkL21zdmM4MC9kbGwgc3ViLWRpcmVjdG9yeQorK2luY2x1 ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxF UyA9IE1ha2VmaWxlLmluCisrCisrRVhUUkFfRElTVCA9IGJ1aWxkLmJhdCBlbXB0eS52Y3Byb2og bWFrZXRlc3QubWFrIG9kYmNfdGVzdF9wb3N0Z3Jlc3FsLnZjcHJvaiBcCisrCXBvc3RncmVzcWxf dGVzdC52Y3Byb2ogc3FsaXRlM190ZXN0LnZjcHJvaiBjbGVhbi5iYXQgXAorKwlmaXJlYmlyZF90 ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfYWNjZXNzLnZjcHJvaiBvZGJjLnZjcHJvaiBcCisrCXBvc3Rn cmVzcWwudmNwcm9qIHNxbGl0ZTMudmNwcm9qIGNvcmUudmNwcm9qIGZpcmViaXJkLnZjcHJvaiBc CisrCW9kYmNfdGVzdF9tc3NxbC52Y3Byb2ogb3JhY2xlX3Rlc3QudmNwcm9qIHNvY2lfZGxsLnNs biBcCisrCWVtcHR5X3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9teXNxbC52Y3Byb2ogb3JhY2xlLnZj cHJvaiBzb2NpX2RsbC52c3Byb3BzCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQv bXN2YzgwL2RsbC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2Rs bC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9kbGwvTWFr ZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMu MC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5pbgkyMDExLTAyLTA4IDIyOjM5 OjU1LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw0MTkgQEAKKysjIE1ha2VmaWxlLmluIGdl bmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1 cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5 OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAy MDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyBJbmMuCisrIyBU aGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3Ry aWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0 aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorK1ZQQVRIID0gQHNy Y2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGly ID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tB R0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACisrYW1fX2NkID0g Q0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3Rh bGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFN ID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAt YworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9n cmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0g OgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RB TEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKyto b3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5h bSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1v bgorK3N1YmRpciA9IGJ1aWxkL21zdmM4MC9kbGwKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGly KS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmln L2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1f X2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBF TkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxf c2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisr Q09ORklHX0NMRUFOX0ZJTEVTID0KKytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorK1NPVVJD RVMgPQorK0RJU1RfU09VUkNFUyA9CisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNU X1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0gQEFDTE9DQUxA CisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisr QVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9 IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVf TElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9P U1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVB TVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9NUElfTElCID0gQEJP T1NUX01QSV9MSUJACisrQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9M SUJACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNf TElCQAorK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKKytCT09TVF9SRUdF WF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJP T1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05B TFNfTElCQAorK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKKytCT09TVF9U SFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9 IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VS SUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytD RkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisr Q1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQ VU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZF UlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQ UEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisr Q1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJ UkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5ACisrRUNIT19D ID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdS RVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytHRU5F UklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0g QEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RB VEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQ VCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9T VFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpT ID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMSVBP ID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFL RUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9 IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACisrTVlTUUxfRElS UyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKKytNWVNRTF9WRVJT SU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytP QkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBP UkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytP UkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVS U0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9 IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQ QUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tB R0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdF X1RBUk5BTUVACisrUEFDS0FHRV9VUkwgPSBAUEFDS0FHRV9VUkxACisrUEFDS0FHRV9WRVJTSU9O ID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAK KytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NG TEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNR TF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9T VEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElC QAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExA CisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlT UUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BP U1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVE QAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAor K1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fi c19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVp bGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBA YWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFj X2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdf ZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190 YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5k aXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVp bGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5k b3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBA ZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZf b2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZp ZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBl eGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlh cyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9z dF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJA CisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0 YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0g QGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2Fs ZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbWFuZGlyID0gQG1hbmRp ckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGly QAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisr c2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIg PSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5 c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJl Zml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAK Kyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxk ZGlyKSAtSSQodG9wX3NyY2RpcikKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmlu CisrRVhUUkFfRElTVCA9IGJ1aWxkLmJhdCBlbXB0eS52Y3Byb2ogbWFrZXRlc3QubWFrIG9kYmNf dGVzdF9wb3N0Z3Jlc3FsLnZjcHJvaiBcCisrCXBvc3RncmVzcWxfdGVzdC52Y3Byb2ogc3FsaXRl M190ZXN0LnZjcHJvaiBjbGVhbi5iYXQgXAorKwlmaXJlYmlyZF90ZXN0LnZjcHJvaiBvZGJjX3Rl c3RfYWNjZXNzLnZjcHJvaiBvZGJjLnZjcHJvaiBcCisrCXBvc3RncmVzcWwudmNwcm9qIHNxbGl0 ZTMudmNwcm9qIGNvcmUudmNwcm9qIGZpcmViaXJkLnZjcHJvaiBcCisrCW9kYmNfdGVzdF9tc3Nx bC52Y3Byb2ogb3JhY2xlX3Rlc3QudmNwcm9qIHNvY2lfZGxsLnNsbiBcCisrCWVtcHR5X3Rlc3Qu dmNwcm9qIG9kYmNfdGVzdF9teXNxbC52Y3Byb2ogb3JhY2xlLnZjcHJvaiBzb2NpX2RsbC52c3By b3BzCisrCisrYWxsOiBhbGwtYW0KKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxl LmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9u ICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2Ug JyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAo IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJy ZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBc CisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IGJ1aWxkL21z dmM4MC9kbGwvTWFrZWZpbGUnOyBcCisrCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKysJ ICAkKEFVVE9NQUtFKSAtLWdudSBidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlCisrLlBSRUNJT1VT OiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRk aXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMq KSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVz X21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZp Zy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsK KysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1 cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9j b25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQo YW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKKysKKytt b3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6Cisr CS1ybSAtcmYgLmxpYnMgX2xpYnMKKyt0YWdzOiBUQUdTCisrVEFHUzoKKysKKytjdGFnczogQ1RB R1MKKytDVEFHUzoKKysKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlw PWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0 b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0v XFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBm b3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAi c3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlw L3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkg ICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9c Ly8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAg OzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlm IHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3Jj ZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGly PWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRl c3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRp cikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsg XAorKwkgICAgZmk7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0 ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZp bGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRp cikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsg XAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGly IiB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRm aWxlIiBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAor KwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0K KytjaGVjazogY2hlY2stYW0KKythbGwtYW06IE1ha2VmaWxlCisraW5zdGFsbGRpcnM6CisraW5z dGFsbDogaW5zdGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCisraW5zdGFs bC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorKworK2lu c3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVj LWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCisr aW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFN PSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQo SU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVz dCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RS SVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytj bGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05G SUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysJLXRlc3Qg LiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIg fHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVh bi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFp bmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUg c3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFO RklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1h bQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4t YW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0 Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljCisrCisrZHZpOiBkdmktYW0KKysK KytkdmktYW06CisrCisraHRtbDogaHRtbC1hbQorKworK2h0bWwtYW06CisrCisraW5mbzogaW5m by1hbQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZp OiBpbnN0YWxsLWR2aS1hbQorKworK2luc3RhbGwtZHZpLWFtOgorKworK2luc3RhbGwtZXhlYy1h bToKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQorKworK2luc3RhbGwtaHRtbC1h bToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorKworK2luc3RhbGwtaW5mby1h bToKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKysK KytpbnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisrCisraW5z dGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjog bWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFu LWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xl YW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVy aWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLWFtCisrCisrcGRmLWFtOgorKwor K3BzOiBwcy1hbQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogaW5z dGFsbC1hbSBpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiBhbGwgYWxsLWFtIGNoZWNrIGNoZWNr LWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisrCWRpc3RjbGVhbiBkaXN0 Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0ZGlyIGR2aSBcCisrCWR2aS1hbSBo dG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCisrCWluc3RhbGwt ZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gXAorKwlpbnN0 YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gXAor KwlpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwK KysJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAg XAorKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXIt Y2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xl YW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB1 bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAorKworKyMgVGVsbCB2ZXJzaW9u cyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisr IyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhj ZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21z dmM4MC9saWIvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIv TWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvbGliL01ha2Vm aWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAu MF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTozNzow Ny4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTEgQEAKKysjIyBidWlsZC9tc3ZjODAvbGli IHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisr CisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK0VYVFJBX0RJU1QgPSBi dWlsZC5iYXQgZW1wdHkudmNwcm9qIG1ha2V0ZXN0Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52 Y3Byb2ogXAorKwlwb3N0Z3Jlc3FsX3Rlc3QudmNwcm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xl YW4uYmF0IFwKKysJZmlyZWJpcmRfdGVzdC52Y3Byb2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2og b2RiYy52Y3Byb2ogXAorKwlwb3N0Z3Jlc3FsLnZjcHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZj cHJvaiBmaXJlYmlyZC52Y3Byb2ogXAorKwlvZGJjX3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90 ZXN0LnZjcHJvaiBzb2NpX2xpYi5zbG4gXAorKwllbXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3Rf bXlzcWwudmNwcm9qIG9yYWNsZS52Y3Byb2ogc29jaV9saWIudnNwcm9wcworZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90 cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFj ay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZp bGUuaW4JMjAxMS0wMi0wOCAyMjozOTo1NS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNDE5 IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFr ZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0 LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAw MywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lv biB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlm aWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVk IGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BT RVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBB Q0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrcGtnbGli ZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIp L0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQ QVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0 NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1ND UklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRB KQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFM TCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5T VEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxk X3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04g PSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKysJJCh0b3Bf c3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBidWlsZC9tc3ZjODAvbGliCisrQUNM T0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMg PSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29u ZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9v bC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3Ny Y2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNp b24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNk aXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRf ZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2lu c3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWls ZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrQ09ORklHX0NMRUFO X1ZQQVRIX0ZJTEVTID0KKytTT1VSQ0VTID0KKytESVNUX1NPVVJDRVMgPQorK0RJU1RGSUxFUyA9 ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1Qp CisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FV VE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFL RSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxB R1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NU X0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFN U19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNA CisrQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAorK0JPT1NUX01QSV9QWVRIT05fTElC ID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBA Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZ VEhPTl9MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9T RVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdO QUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9TWVNURU1fTElCID0gQEJPT1NU X1NZU1RFTV9MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JP T1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktf TElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpB VElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQ TU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQ UEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAor K0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBV TklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBA Q1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NY WEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBE RUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJ TiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytF Q0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisr RkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJS QVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNU QUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BS T0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJ UF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdT ID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJU T09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9C SlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtE SVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NfTElCID0gQE1Z U1FMX0NfTElCQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MSUJTID0gQE1Z U1FMX0xJQlNACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0gQE5NQAor K05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9IEBPQkpF WFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBA T1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERG TEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK09UT09M ID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisr UEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0g QFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNL QUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0Vf VVJMQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFU T1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19D T05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdS RVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9T VEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJ T05ACisrUkFOTElCID0gQFJBTkxJQkAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9N QUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFE RVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVB REVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9T VEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFO RCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGly ID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9i dWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bf c3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhA CisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0gQGFtX19p bmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3Rl ID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191 bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFz ID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBA YnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBi dWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3Rk aXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9v ayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNf b2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9z dCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0 X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JA CisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZv ZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0g QGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGly QAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRl ZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1 ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBw cmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1l QAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2Vk X29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNk aXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRf YWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWls ZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQ UEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrTUFJTlRBSU5FUkNM RUFORklMRVMgPSBNYWtlZmlsZS5pbgorK0VYVFJBX0RJU1QgPSBidWlsZC5iYXQgZW1wdHkudmNw cm9qIG1ha2V0ZXN0Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3Byb2ogXAorKwlwb3N0Z3Jl c3FsX3Rlc3QudmNwcm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4uYmF0IFwKKysJZmlyZWJp cmRfdGVzdC52Y3Byb2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2ogb2RiYy52Y3Byb2ogXAorKwlw b3N0Z3Jlc3FsLnZjcHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJvaiBmaXJlYmlyZC52Y3By b2ogXAorKwlvZGJjX3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0LnZjcHJvaiBzb2NpX2xp Yi5zbG4gXAorKwllbXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlzcWwudmNwcm9qIG9yYWNs ZS52Y3Byb2ogc29jaV9saWIudnNwcm9wcworKworK2FsbDogYWxsLWFtCisrCisrLlNVRkZJWEVT OgorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9z cmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAg aW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAg ICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRA OyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAor KwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFV VE9NQUtFKSAtLWdudSBidWlsZC9tc3ZjODAvbGliL01ha2VmaWxlJzsgXAorKwkkKGFtX19jZCkg JCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgYnVpbGQvbXN2YzgwL2xp Yi9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01h a2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4g XAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVj aG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3Vi ZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxl c19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6 ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisr CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisr CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1fX2Fj bG9jYWxfbTRfZGVwcyk6CisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8K KysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrdGFnczogVEFHUwor K1RBR1M6CisrCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6CisrCisrCisrZGlzdGRpcjogJChESVNU RklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQk XFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2Rpciki IHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUykn OyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsg ZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAt ZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2Ug JCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxl cyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwn IHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRp c3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsg dGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRm aWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10q JCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAor KwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4 ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQo c3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAg Y3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAor KwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4 ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8k JGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0 ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAi JChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRv bmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtlZmls ZQorK2luc3RhbGxkaXJzOgorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxsLWV4ZWM6IGlu c3RhbGwtZXhlYy1hbQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisrdW5pbnN0YWxs OiB1bmluc3RhbGwtYW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hl Y2s6IGluc3RhbGxjaGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAg aW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RS SVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJ TlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3Rs eWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJp YzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdf Q0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJ R19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVT KQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBp cyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBm aWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0 IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5G SUxFUykKKytjbGVhbjogY2xlYW4tYW0KKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVh bi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKysJ LXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJp YworKworK2R2aTogZHZpLWFtCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtYW0KKysKKyto dG1sLWFtOgorKworK2luZm86IGluZm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0 YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWR2aS1h bToKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwt YW0KKysKKytpbnN0YWxsLWh0bWwtYW06CisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8t YW0KKysKKytpbnN0YWxsLWluZm8tYW06CisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1w ZGY6IGluc3RhbGwtcGRmLWFtCisrCisraW5zdGFsbC1wZGYtYW06CisrCisraW5zdGFsbC1wczog aW5zdGFsbC1wcy1hbQorKworK2luc3RhbGwtcHMtYW06CisrCisraW5zdGFsbGNoZWNrLWFtOgor KworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKysJLXJtIC1mIE1ha2Vm aWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4t Z2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorKworK21vc3RseWNsZWFu LWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBk Zi1hbQorKworK3BkZi1hbToKKysKKytwczogcHMtYW0KKysKKytwcy1hbToKKysKKyt1bmluc3Rh bGwtYW06CisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTog YWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRv b2wgXAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlz dGRpciBkdmkgXAorKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGlu c3RhbGwtYW0gXAorKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGlu c3RhbGwtZHZpLWFtIFwKKysJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0 bWwgaW5zdGFsbC1odG1sLWFtIFwKKysJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0 YWxsLW1hbiBpbnN0YWxsLXBkZiBcCisrCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFs bC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKKysJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBp bnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj IG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29s IHBkZiBwZGYtYW0gcHMgcHMtYW0gdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKworK0BTRVRfTUFL RUAKKysKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4 cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lz ViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAw L2J1aWxkL21zdmM4MC9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21z dmM4MC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAx OTozNzowOC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsOCBAQAorKyMjIGJ1aWxkL21zdmM4 MCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgor KworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytFWFRSQV9ESVNUID0g UkVBRE1FLnR4dCBzb2NpLnZzcHJvcHMKKysKKytTVUJESVJTID0gZGxsIGxpYgorZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3Ry ZXAzMDAvYnVpbGQvbXN2YzgwL01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svYnVp bGQvbXN2YzgwL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw CisrKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5pbgkyMDExLTAy LTA4IDIyOjM5OjU1LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw2MTYgQEAKKysjIE1ha2Vm aWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKysj IEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYs IDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1 LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyBJ bmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRo b3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorK1ZQ QVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dp bmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRp cikvQFBBQ0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACisr YW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBj ZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9z aF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0 YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3Jt ID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9J TlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BS RV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBi dWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9N YWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbgorK3N1YmRpciA9IGJ1aWxkL21zdmM4MAorK0FDTE9DQUxfTTQgPSAkKHRvcF9z cmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3Bw dW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1 Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMK KythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJF X0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5z dGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmln LmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9Cisr U09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1 cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBp bmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVj dXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZl IGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFs bC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJz aXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZl IHVuaW5zdGFsbC1yZWN1cnNpdmUKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNs ZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBt YWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChSRUNV UlNJVkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAorKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRT Oi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAorKwlkaXN0ZGlyCisrRVRBR1Mg PSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCisrRElT VEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhU UkFfRElTVCkKKythbV9fcmVsYXRpdml6ZSA9IFwKKysgIGRpcjA9YHB3ZGA7IFwKKysgIHNlZF9m aXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAorKyAgc2VkX3Jlc3Q9J3MsXlteL10qLyos LCc7IFwKKysgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCisrICBzZWRfYnV0 bGFzdD0ncywvKlteL10qJCQsLCc7IFwKKysgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwK KysgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysg ICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKKysgICAgICBpZiB0ZXN0ICIkJGZp cnN0IiA9ICIuLiI7IHRoZW4gXAorKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAt ZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCisrICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAi IHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKKysgICAgICBlbHNlIFwKKysgICAgICAgIGZp cnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorKyAgICAgICAg aWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKKysgICAgICAgICAgZGlyMj1g ZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICAgICAgICBlbHNlIFwK KysgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAorKyAgICAgICAgZmk7IFwKKysgICAgICAg IGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCisrICAgICAgZmk7IFwKKysgICAgZmk7IFwKKysg ICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICBkb25l OyBcCisrICByZWxkaXI9IiQkZGlyMiIKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBA QU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9 IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9P U1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NU X0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RF TV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JP T1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJA CisrQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACisrQk9PU1Rf UFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NU X1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9P U1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTEla QVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JP T1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKKytCT09TVF9USFJFQURfTElCID0g QEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9P U1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJT SU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9M SUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZM QUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxB R1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdA CisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQ VU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBN T0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0g QENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lNVVRJ TCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5ACisrRUNIT19DID0gQEVDSE9fQ0AK KytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBA CisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytHRU5FUklDX0xJQlJBUllf VkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5T VEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFM TF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxM X1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFN QAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNA CisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMSVBPID0gQExJUE9ACisr TE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBATUFL RUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxB R1NACisrTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACisrTVlTUUxfRElSUyA9IEBNWVNRTF9E SVJTQAorK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FM X1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9C SkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AK KytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xE RkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFD TEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAor K1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JF UE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0g QFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisr UEFDS0FHRV9VUkwgPSBAUEFDS0FHRV9VUkxACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0Vf VkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBF UkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NU R1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BP U1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJT SU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1NFRCA9IEBT RURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19C VVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVB REVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0g QFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBA VkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBA YWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJz X3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisr YWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5A CisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19s ZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3Rh ckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQg PSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1 aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRf dmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytk YXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGly ID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRp ckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAK Kytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2Fs aWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0 X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRp ciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGlu c3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKyts aWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2Nh bHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9w ID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9 IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0g QHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBz YmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3Rh dGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisr dGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9i dWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGly ID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9w X3NyY2RpcikKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrRVhUUkFfRElT VCA9IFJFQURNRS50eHQgc29jaS52c3Byb3BzCisrU1VCRElSUyA9IGRsbCBsaWIKKythbGw6IGFs bC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChz cmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2Nv bmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2Nv bmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJ ICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsg fTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8g JyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IGJ1aWxkL21zdmM4MC9NYWtl ZmlsZSc7IFwKKysJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0Up IC0tZ251IGJ1aWxkL21zdmM4MC9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtl ZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVz CisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAor KwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9j b25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAg ICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGly KS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRk aXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRV U19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9f Y29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2Rl cHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaAorKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisrCisrbW9zdGx5Y2xlYW4tbGlidG9v bDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9s aWJzCisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5k ZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0 IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9m IGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkg aWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5z dGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdl bmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhl IGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZF X1RBUkdFVFMpOgorKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQk TUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7 OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRv bmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vy c2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRv IFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAg bG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3Rh cmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAk JGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRo ZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAx OyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VU Uyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxB R1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJ ICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAor Kwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwgbWFp bnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBsaXN0 PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwK KysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwly ZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7 IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdl dCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAor KwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxv Y2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3Vi ZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwg ZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1 cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAor KwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIk JHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgY3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQo TElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBU QUdTCisrCisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRB R1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJc2V0IHg7IFwK KysJaGVyZT1gcHdkYDsgXAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lv bikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWlu Y2x1ZGU7IFwKKysJICBlbXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlv bj0tLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VC RElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGly IiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBc CisrCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFH UyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlzaGlmdDsgXAorKwlpZiB0ZXN0 IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3Qg LW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICBpZiB0ZXN0ICQkIyAt Z3QgMDsgdGhlbiBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFH UykgJChFVEFHU19BUkdTKSBcCisrCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisrCSAgZWxzZSBc CisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19B UkdTKSBcCisrCSAgICAgICQkdW5pcXVlOyBcCisrCSAgZmk7IFwKKysJZmkKKytjdGFnczogQ1RB R1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdT X0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCWxpc3Q9JyQoU09V UkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZv ciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQk aTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFX SykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlm IChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0 IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxB R1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR1bmlxdWUKKysK KytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJ ICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19B UkdTKSAiJCRoZXJlIgorKworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFH UyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlA c3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYv ZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9b XS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRp c3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisr CSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9w c3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxl cyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJ CSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkg ICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBk byBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBl bHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBc CisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAor KwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKysJICAgICAgZmlu ZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUr cnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRm aWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1mcFIgJChz cmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICAgICAgZmlu ZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUr cnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRp c3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAiJChk aXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikv JCRmaWxlIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0 PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3Rk aXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGly IiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJ U1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQk c3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIk KGRpc3RkaXIpLyQkc3ViZGlyIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAg IG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRv cF9kaXN0ZGlyKSI7IFwKKysJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisrCSAgICBuZXdfdG9w X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGly PSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKKysJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0 ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGly KSI7IFwKKysJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAorKwkgICAgICAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGly IiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAorKwkJYW1fX3JlbW92ZV9k aXN0ZGlyPTogXAorKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkJYW1fX3NraXBfbW9k ZV9maXg9OiBcCisrCSAgICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJ ICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNp dmUKKythbGwtYW06IE1ha2VmaWxlCisraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2 ZQorK2luc3RhbGxkaXJzLWFtOgorK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCisraW5zdGFs bC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRh dGEtcmVjdXJzaXZlCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisrCisraW5zdGFs bC1hbTogYWxsLWFtCisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0g aW5zdGFsbC1kYXRhLWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZl CisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9H UkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09 IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBg dGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9 U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysK KytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChD T05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysJLXRl c3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVT KSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisrCisrbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWlu dGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVp cmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNM RUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVh bi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1v c3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAt ZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlz dGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRt bDogaHRtbC1yZWN1cnNpdmUKKysKKytodG1sLWFtOgorKworK2luZm86IGluZm8tcmVjdXJzaXZl CisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06CisrCisraW5zdGFsbC1kdmk6IGlu c3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZHZpLWFtOgorKworK2luc3RhbGwtZXhl Yy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKysKKytpbnN0 YWxsLWh0bWwtYW06CisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisr CisraW5zdGFsbC1pbmZvLWFtOgorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBp bnN0YWxsLXBkZi1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxsLXBz OiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHMtYW06CisrCisraW5zdGFsbGNo ZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZl CisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBt YWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVj dXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xl YW4tbGlidG9vbAorKworK3BkZjogcGRmLXJlY3Vyc2l2ZQorKworK3BkZi1hbToKKysKKytwczog cHMtcmVjdXJzaXZlCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgorKworKy5NQUtFOiAk KFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1 cnNpdmUgXAorKwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKKysKKysu UEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENU QUdTIEdUQUdTIFwKKysJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5l cmljIGNsZWFuLWxpYnRvb2wgXAorKwljdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRp c3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlz dGRpciBkdmkgZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGlu c3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKysJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGlu c3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisrCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0 bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisrCWluc3RhbGwtaW5mby1hbSBpbnN0 YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCisrCWluc3RhbGwtcHMgaW5zdGFs bC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCisrCWluc3RhbGxjaGVjay1hbSBp bnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5l ci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0 bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBc CisrCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VACisrCisrIyBUZWxsIHZl cnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxl cy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBi ZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVp bGQvdW5peC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmls ZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL3VuaXgvTWFrZWZpbGUuYW0JMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVp bGQvdW5peC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA4LjAwMDAwMDAwMCArMDIwMAor QEAgLTAsMCArMSwxMSBAQAorKyMjIGJ1aWxkL3VuaXggc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUg JCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9 IE1ha2VmaWxlLmluCisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICAu X2ZpbmQtYm9vc3QudGNsIC5fYnVpbGQtbXlzcWwudGNsIC5fYnVpbGQtcG9zdGdyZXNxbC50Y2wg Ll9leGVjdXRlLnRjbCAuX2J1aWxkLWNvcmUudGNsIC5faW5zdGFsbC50Y2wgLl9wYXJzZS1wYXJh bWV0ZXJzLnRjbAorKworK0VYVFJBX0RJU1QgPSBidWlsZC1jb3JlLnRjbCBidWlsZC1vcmFjbGUu dGNsIGJ1aWxkLnRjbCBpbnN0YWxsLnRjbCBcCisrCXBhcnNlLXBhcmFtZXRlcnMudGNsIGZpbmQt Ym9vc3QudGNsIGJ1aWxkLW15c3FsLnRjbCBcCisrCWJ1aWxkLXBvc3RncmVzcWwudGNsIGV4ZWN1 dGUudGNsIFwKKysJJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCitkaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3Ry ZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxk L3VuaXgvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysr KyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5pbgkyMDExLTAyLTA4IDIy OjM5OjU1LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw0MTkgQEAKKysjIE1ha2VmaWxlLmlu IGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25m aWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcs IDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2 LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyBJbmMuCisr IyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRp c3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBh cyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Cisr IyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorK1ZQQVRIID0g QHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRl ZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBB Q0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACisrYW1fX2Nk ID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2lu c3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9H UkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3No KSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChw cm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxM ID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklO U1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAK Kytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmls ZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbgorK3N1YmRpciA9IGJ1aWxkL3VuaXgKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9h Y2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4 X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2Nv bmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRF TkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gp IC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09O RklHX0NMRUFOX0ZJTEVTID0KKytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorK1NPVVJDRVMg PQorK0RJU1RfU09VUkNFUyA9CisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NP VVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisr QU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVU T0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBB V0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElC ID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1Rf RklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNf TElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9NUElfTElCID0gQEJPT1NU X01QSV9MSUJACisrQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJA CisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElC QAorK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKKytCT09TVF9SRUdFWF9M SUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NU X1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNf TElCQAorK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKKytCT09TVF9USFJF QURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19M SUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBC T09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFM SVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxB R1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQ VU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5J VF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJ T04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAK KytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lH UEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAK KytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5ACisrRUNIT19DID0g QEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAg PSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytHRU5FUklD X0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdS RVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFA CisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9 IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJ UF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0g QExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMSVBPID0g QExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlO Rk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBN WVNRTF9DRkxBR1NACisrTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACisrTVlTUUxfRElSUyA9 IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKKytNWVNRTF9WRVJTSU9O ID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpE VU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFD TEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFD TEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lP TiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBP VE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNL QUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0Vf U1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RB Uk5BTUVACisrUEFDS0FHRV9VUkwgPSBAUEFDS0FHRV9VUkxACisrUEFDS0FHRV9WRVJTSU9OID0g QFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQ RVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFH UyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9E SVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdS RVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAor K1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisr U09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxf SEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RH UkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAor K1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZF UlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19z cmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRk aXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNf Y3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0 X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90 ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIg PSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJA CisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRf Y3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3Ig PSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0 YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tA CisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGly ID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVj X3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9 IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9v c0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisr aW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxs X3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxp YmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRp ckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbWFuZGlyID0gQG1hbmRpckAK Kytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAor K3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9y bV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2Jp bmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBA c2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2Nv bmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4 ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0 b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGly KSAtSSQodG9wX3NyY2RpcikKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisr CisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICAuX2ZpbmQtYm9vc3QudGNs IC5fYnVpbGQtbXlzcWwudGNsIC5fYnVpbGQtcG9zdGdyZXNxbC50Y2wgLl9leGVjdXRlLnRjbCAu X2J1aWxkLWNvcmUudGNsIC5faW5zdGFsbC50Y2wgLl9wYXJzZS1wYXJhbWV0ZXJzLnRjbAorK0VY VFJBX0RJU1QgPSBidWlsZC1jb3JlLnRjbCBidWlsZC1vcmFjbGUudGNsIGJ1aWxkLnRjbCBpbnN0 YWxsLnRjbCBcCisrCXBhcnNlLXBhcmFtZXRlcnMudGNsIGZpbmQtYm9vc3QudGNsIGJ1aWxkLW15 c3FsLnRjbCBcCisrCWJ1aWxkLXBvc3RncmVzcWwudGNsIGV4ZWN1dGUudGNsIFwKKysJJChFWFRS QV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCisrCisrYWxsOiBhbGwtYW0KKysKKysuU1VG RklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQo dG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9y IGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAor KwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3Qg LWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7 OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYm ICQoQVVUT01BS0UpIC0tZ251IGJ1aWxkL3VuaXgvTWFrZWZpbGUnOyBcCisrCSQoYW1fX2NkKSAk KHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSBidWlsZC91bml4L01ha2Vm aWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUu aW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAg KmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRA ICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJl KTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bf c3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisr JCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChB Q0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChhbV9fYWNsb2NhbF9t NF9kZXBzKToKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2Ns ZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKyt0YWdzOiBUQUdTCisrVEFHUzoK KysKKytjdGFnczogQ1RBR1MKKytDVEFHUzoKKysKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykK KysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xc XFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQg J3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJ ICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwg XAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4k JHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3Rf ZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwK KysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisr CQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxl czsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9 LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRo ZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7 IFwKKysJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisrCSAgICAg IGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1v ZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIp LyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtZnBS ICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgICAg IGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1v ZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAi JChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYg IiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3Rk aXIpLyQkZmlsZSIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2No ZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stYW0KKythbGwtYW06IE1ha2VmaWxlCisraW5z dGFsbGRpcnM6CisraW5zdGFsbDogaW5zdGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1l eGVjLWFtCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVuaW5z dGFsbC1hbQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFH UykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5z dGFsbGNoZWNrLWFtCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykg SU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxs X3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFH PS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExf UFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4t Z2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwkt dGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9G SUxFUykKKysJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFO X1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisrCisr bWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVu ZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRo YXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQo TUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQor K2NsZWFuOiBjbGVhbi1hbQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRv b2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorKwktcm0gLWYg TWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljCisrCisr ZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1hbQorKworK2h0bWwtYW06 CisrCisraW5mbzogaW5mby1hbQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgor KworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorKworK2luc3RhbGwtZHZpLWFtOgorKwor K2luc3RhbGwtZXhlYy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQorKwor K2luc3RhbGwtaHRtbC1hbToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorKwor K2luc3RhbGwtaW5mby1hbToKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5z dGFsbC1wZGYtYW0KKysKKytpbnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxs LXBzLWFtCisrCisraW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFp bnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKytt YWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj CisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4tYW06IG1v c3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLWFtCisr CisrcGRmLWFtOgorKworK3BzOiBwcy1hbQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToK KysKKysuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiBhbGwgYWxs LWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisr CWRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0ZGlyIGR2 aSBcCisrCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1h bSBcCisrCWluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1k dmktYW0gXAorKwlpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0 YWxsLWh0bWwtYW0gXAorKwlpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFu IGluc3RhbGwtcGRmIFwKKysJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFt IGluc3RhbGwtc3RyaXAgXAorKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxk aXJzIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5 Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBk Zi1hbSBwcyBwcy1hbSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAorKwor KyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFs bCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxl YXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL2NvbmZpZy9heF9ib29zdC5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X2Jv b3N0Lm00CistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X2Jvb3N0Lm00CTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZp Zy9heF9ib29zdC5tNAkyMDEwLTAxLTIzIDEzOjI3OjA0LjAwMDAwMDAwMCArMDEwMAorQEAgLTAs MCArMSw3NTQgQEAKKytkbmwgQHN5bm9wc2lzIEFYX0JPT1NUKFtNSU5JTVVNLVZFUlNJT05dLCBb QUNUSU9OLUlGLUZPVU5EXSwgW0FDVElPTi1JRi1OT1QtRk9VTkRdKQorK2RubAorK2RubCBUZXN0 IGZvciB0aGUgQm9vc3QgQysrIGxpYnJhcmllcyBvZiBhIHBhcnRpY3VsYXIgdmVyc2lvbiAob3Ig bmV3ZXIpCisrZG5sCisrZG5sIElmIG5vIHBhdGggdG8gdGhlIGluc3RhbGxlZCBib29zdCBsaWJy YXJ5IGlzIGdpdmVuIHRoZSBtYWNybworK2RubCBzZWFyY2hzIHVuZGVyIC91c3IsIC91c3IvbG9j YWwsIGFuZCAvb3B0LCBhbmQgZXZhbHVhdGVzIHRoZQorK2RubCAkQk9PU1RfUk9PVCBlbnZpcm9u bWVudCB2YXJpYWJsZS4KKytkbmwKKytkbmwgVGhpcyBtYWNybyBjYWxsczoKKytkbmwKKytkbmwg ICBBQ19TVUJTVChCT09TVF9DRkxBR1MpIC8gQUNfU1VCU1QoQk9PU1RfTElCUykKKytkbmwgICBB Q19TVUJTVChCT09TVF9GSUxFU1lTVEVNX0xJQikKKytkbmwgICBBQ19TVUJTVChCT09TVF9TWVNU RU1fTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpCisrZG5s ICAgQUNfU1VCU1QoQk9PU1RfVEhSRUFEX0xJQikKKytkbmwgICBBQ19TVUJTVChCT09TVF9JT1NU UkVBTVNfTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX1NFUklBTElaQVRJT05fTElCKQorK2Ru bCAgIEFDX1NVQlNUKEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQikKKytkbmwgICBBQ19TVUJTVChC T09TVF9TSUdOQUxTX0xJQikKKytkbmwgICBBQ19TVUJTVChCT09TVF9EQVRFX1RJTUVfTElCKQor K2RubCAgIEFDX1NVQlNUKEJPT1NUX1JFR0VYX0xJQikKKytkbmwgICBBQ19TVUJTVChCT09TVF9Q WVRIT05fTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX0FTSU9fTElCKQorK2RubCAgIEFDX1NV QlNUKEJPT1NUX01QSV9MSUIpCisrZG5sICAgQUNfU1VCU1QoQk9PU1RfTVBJX1BZVEhPTl9MSUIp CisrZG5sICAgQUNfU1VCU1QoQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIpCisrZG5sCisr ZG5sIEFuZCBzZXRzOgorK2RubAorK2RubCAgIEhBVkVfQk9PU1QKKytkbmwgICBIQVZFX0JPT1NU X0ZJTEVTWVNURU0KKytkbmwgICBIQVZFX0JPT1NUX1NZU1RFTQorK2RubCAgIEhBVkVfQk9PU1Rf UFJPR1JBTV9PUFRJT05TCisrZG5sICAgSEFWRV9CT09TVF9USFJFQUQKKytkbmwgICBIQVZFX0JP T1NUX0lPU1RSRUFNUworK2RubCAgIEhBVkVfQk9PU1RfU0VSSUFMSVpBVElPTgorK2RubCAgIEhB VkVfQk9PU1RfU0lHTkFMUworK2RubCAgIEhBVkVfQk9PU1RfREFURV9USU1FCisrZG5sICAgSEFW RV9CT09TVF9SRUdFWAorK2RubCAgIEhBVkVfQk9PU1RfUFlUSE9OCisrZG5sICAgSEFWRV9CT09T VF9BU0lPCisrZG5sICAgSEFWRV9CT09TVF9NUEkKKytkbmwgICBIQVZFX0JPT1NUX01QSV9QWVRI T04KKytkbmwgICBIQVZFX0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUksKKytkbmwKKytkbmwgQGNh dGVnb3J5IEluc3RhbGxlZFBhY2thZ2VzCisrZG5sIEBhdXRob3IgVGhvbWFzIFBvcnNjaGJlcmcg PHRob21hc0ByYW5kc3ByaW5nZXIuZGU+CisrZG5sIEB2ZXJzaW9uIDIwMDYtMDEtMDIKKytkbmwg QGxpY2Vuc2UgQWxsUGVybWlzc2l2ZQorKworK0FDX0RFRlVOKFtBWF9CT09TVF0sCisrWworKyAg ICBBQ19BUkdfV0lUSChbYm9vc3RdLAorKyAgICAgICAgICAgICAgICBBQ19IRUxQX1NUUklORyhb LS13aXRoLWJvb3N0PURJUl0sCisrICAgICAgICAgICAgICAgIFt1c2UgYm9vc3QgKGRlZmF1bHQg aXMgTk8pICwgc3BlY2lmeSB0aGUgcm9vdCBkaXJlY3RvcnkgZm9yIGJvb3N0IGxpYnJhcnkgKG9w dGlvbmFsKV0pLAorKyAgICAgICAgICAgICAgICBbCisrICAgICAgICAgICAgICAgIGlmIHRlc3Qg IiR3aXRodmFsIiA9ICJubyI7IHRoZW4KKysJCSAgICAgICAgICAgIHdhbnRfYm9vc3Q9Im5vIgor KyAgICAgICAgICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCisrICAg ICAgICAgICAgICAgICAgICB3YW50X2Jvb3N0PSJ5ZXMiCisrICAgICAgICAgICAgICAgICAgICBh Y19ib29zdF9wYXRoPSIiCisrICAgICAgICAgICAgICAgIGVsc2UKKysJCQkgICAgICAgIHdhbnRf Ym9vc3Q9InllcyIKKysgICAgICAgICAgICAJCWFjX2Jvb3N0X3BhdGg9IiR3aXRodmFsIgorKwkJ ICAgICAgICBmaQorKyAgICAgICAgICAgIAldLAorKyAgICAgICAgICAgICAgICBbd2FudF9ib29z dD0ieWVzIl0pCisrCisrIyAgICBBQ19DQU5PTklDQUxfQlVJTEQKKytCT09TVF9NRFdfVkVSU0lP Tj0iMS0zMy0xIgorK0JPT1NUTElCX01EV19WRVJTSU9OPSIxXzMzXzEiCisrQk9PU1RfdmVyc2lv bl9oZWFkZXI9ImJvb3N0L3ZlcnNpb24uaHBwIgorKworKwlpZiB0ZXN0ICJ4JHdhbnRfYm9vc3Qi ID0gInh5ZXMiOyB0aGVuCisrCQlib29zdF9saWJfdmVyc2lvbl9yZXE9aWZlbHNlKFskMV0sICwx LjIwLjAsJDEpCisrCQlib29zdF9saWJfdmVyc2lvbl9yZXFfc2hvcnRlbj1gZXhwciAkYm9vc3Rf bGliX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpcLltbMC05XV0qXCknYAorKwkJYm9vc3RfbGli X3ZlcnNpb25fcmVxX21ham9yPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnXChbWzAt OV1dKlwpJ2AKKysJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9taW5vcj1gZXhwciAkYm9vc3RfbGli X3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAorKwkJYm9vc3RfbGliX3Zl cnNpb25fcmVxX3N1Yl9taW5vcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1tbMC05 XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKKysJCWlmIHRlc3QgIngkYm9vc3RfbGliX3Zl cnNpb25fcmVxX3N1Yl9taW5vciIgPSAieCIgOyB0aGVuCisrCQkJYm9vc3RfbGliX3ZlcnNpb25f cmVxX3N1Yl9taW5vcj0iMCIKKysgICAgCWZpCisrCQlXQU5UX0JPT1NUX1ZFUlNJT049YGV4cHIg JGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAgXCsgICRib29zdF9saWJfdmVy c2lvbl9yZXFfbWlub3IgXCogMTAwIFwrICRib29zdF9saWJfdmVyc2lvbl9yZXFfc3ViX21pbm9y YAorKwkJQUNfTVNHX0NIRUNLSU5HKGZvciBib29zdGxpYiA+PSAkYm9vc3RfbGliX3ZlcnNpb25f cmVxKQorKwkJc3VjY2VlZGVkPW5vCisrCisrCQlkbmwgZmlyc3Qgd2UgY2hlY2sgdGhlIHN5c3Rl bSBsb2NhdGlvbiBmb3IgYm9vc3QgbGlicmFyaWVzCisrCQlkbmwgdGhpcyBsb2NhdGlvbiBpcyBj aG9zZW4gaWYgYm9vc3QgbGlicmFyaWVzIGFyZSBpbnN0YWxsZWQgCisrCQlkbmwgd2l0aCB0aGUg LS1sYXlvdXQ9c3lzdGVtIG9wdGlvbgorKwkJZG5sIG9yIGlmIHlvdSBpbnN0YWxsIGJvb3N0IHdp dGggUlBNCisrCQlpZiB0ZXN0IC1kIC9saWI2NAorKwkJdGhlbgorKwkJCUJPT1NUX0xJQkRJUlRZ UEU9ImxpYjY0IgorKwkJZWxzZQorKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYiIKKysJCWZpCisr CQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiIKKysJCXRoZW4KKysJCQlpZiB0ZXN0ICIk Qk9PU1RfTElCRElSVFlQRSIgPT0gImxpYjY0IgorKwkJCXRoZW4KKysJCQkJaWYgdGVzdCAtZCAi JGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiICYmIHRlc3QgLXIgIiRhY19ib29zdF9w YXRoLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQl0aGVuCisrCSAgICAgICAgICAgICAgICBCT09T VF9MSUJTPSItTCRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQllbHNlCisr ICAgICAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoL2xpYiIKKysJ CQkJZmkKKysJCQllbHNlCisrCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGliIgor KwkJCWZpCisrCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2luY2x1ZGUiCisrCQkJ Qk9PU1RfVkVSU0lPTj1gZ3JlcCAiZGVmaW5lIEJPT1NUX0xJQl9WRVJTSU9OIiAkYWNfYm9vc3Rf cGF0aC9pbmNsdWRlLyR7Qk9PU1RfdmVyc2lvbl9oZWFkZXJ9IHwgY3V0IC1kJyAnIC1mMyB8IGN1 dCAtZFwiIC1mMmAKKysJCWVsc2UKKysJCQlmb3IgYWNfYm9vc3RfcGF0aF90bXAgaW4gL3VzciAv dXNyL2xvY2FsIC9vcHQgL25hc3Rvb2xzL2Jvb3N0CisrCQkJZG8KKysJCQkJaWYgdGVzdCAtZCAi JGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QiICYmIHRlc3QgLXIgIiRhY19ib29zdF9w YXRoX3RtcC9pbmNsdWRlL2Jvb3N0IgorKwkJCQl0aGVuCisrCQkJCQlCT09TVF9MSUJTPSItTCRh Y19ib29zdF9wYXRoX3RtcC8kQk9PU1RfTElCRElSVFlQRSIKKysJCQkJCUJPT1NUX0NGTEFHUz0i LUkkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZSIKKysJCQkJCUJPT1NUX1ZFUlNJT049YGdyZXAg ImRlZmluZSBCT09TVF9MSUJfVkVSU0lPTiIgJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvJHtC T09TVF92ZXJzaW9uX2hlYWRlcn0gfCBjdXQgLWQnICcgLWYzIHwgY3V0IC1kXCIgLWYyYAorKwkJ CQkJYnJlYWs7CisrCQkJCWZpCisrCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9p bmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi9ib29zdCIgJiYgdGVzdCAtciAiJGFjX2Jv b3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0IgorKwkJ CQl0aGVuCisrCQkJCQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoX3RtcC8kQk9PU1RfTElC RElSVFlQRSIKKysJCQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVk ZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJT04iCisrCQkJCQlCT09TVF9WRVJTSU9OPWBncmVwICJk ZWZpbmUgQk9PU1RfTElCX1ZFUlNJT04iICRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0 LSRCT09TVF9NRFdfVkVSU0lPTi8ke0JPT1NUX3ZlcnNpb25faGVhZGVyfSB8IGN1dCAtZCcgJyAt ZjMgfCBjdXQgLWRcIiAtZjJgCisrCQkJCisrCQkJCQlkbmwgSGFjayBmb3Igd3JvbmdseSBpbnN0 YWxsZWQgQm9vc3QgbGlicmFyaWVzIChBTUQ2NCBsaWJyYXJpZXMgaW5zdGFsbGVkIGluIGJvb3N0 L2xpYiBkaXJlY3RvcnkpCisrCQkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aF90bXAvbGli IiBcCisrCQkJCQkmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvbGliIiBcCisrCQkJCQkm JiB0ZXN0ICEgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9saWI2NCIKKysJCQkJCXRoZW4KKysJCQkJ CQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoX3RtcC9saWIiCisrCQkJCQkJZWNobyAiSGFj azogJEJPT1NUX0xJQlMiCisrCQkJCQlmaQorKwkJCQkJYnJlYWs7CisrCQkJCWZpCisrCQkJZG9u ZQorKwkJZmkKKysKKysJCUNQUEZMQUdTX1NBVkVEPSIkQ1BQRkxBR1MiCisrCQlDUFBGTEFHUz0i JENQUEZMQUdTICRCT09TVF9DRkxBR1MiCisrCQlleHBvcnQgQ1BQRkxBR1MKKysKKysJCUxERkxB R1NfU0FWRUQ9IiRMREZMQUdTIgorKwkJTERGTEFHUz0iJExERkxBR1MgJEJPT1NUX0xJQlMiCisr CQlleHBvcnQgTERGTEFHUworKworKyAgICAgCUFDX1RSWV9DT01QSUxFKAorKyAgICAgICAJWwor K0AlOkBpbmNsdWRlIDxib29zdC92ZXJzaW9uLmhwcD4KKytdLAorKyAgICAgICBbCisrI2lmIEJP T1NUX1ZFUlNJT04gPj0gJFdBTlRfQk9PU1RfVkVSU0lPTgorKy8vIEV2ZXJ5dGhpbmcgaXMgb2th eQorKyNlbHNlCisrIyAgZXJyb3IgQm9vc3QgdmVyc2lvbiBpcyB0b28gb2xkCisrI2VuZGlmCisr CisrCQldLAorKyAgICAJWworKyAgICAgICAgIEFDX01TR19SRVNVTFQoeWVzKQorKwkJIHN1Y2Nl ZWRlZD15ZXMKKysJCSBmb3VuZF9zeXN0ZW09eWVzCisrICAgICAgICAgaWZlbHNlKFskMl0sICwg OiwgWyQyXSkKKysgICAgICAgXSwKKysgICAgICAgWworKyAgICAgICBdKQorKworKwkJZG5sIGlm IHdlIGZvdW5kIG5vIGJvb3N0IHdpdGggc3lzdGVtIGxheW91dCB3ZSBzZWFyY2ggZm9yIGJvb3N0 IGxpYnJhcmllcworKwkJZG5sIGJ1aWx0IGFuZCBpbnN0YWxsZWQgd2l0aG91dCB0aGUgLS1sYXlv dXQ9c3lzdGVtIG9wdGlvbiBvciBmb3IgYSBzdGFnZWQobm90IGluc3RhbGxlZCkgdmVyc2lvbgor KwkJaWYgdGVzdCAieCRzdWNjZWVkZWQiICE9ICJ4eWVzIjsgdGhlbgorKwkJCV92ZXJzaW9uPTAK KysJCQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiI7IHRoZW4KKysgICAgICAgICAgICAg ICAgQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIKKysJCQkJ aWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoIjsg dGhlbgorKwkJCQkJZm9yIGkgaW4gYGxzIC1kICRhY19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3Qt KiAyPi9kZXYvbnVsbGA7IGRvCisrCQkJCQkJX3ZlcnNpb25fdG1wPWBlY2hvICRpIHwgc2VkICJz IyRhY19ib29zdF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwvYm9vc3QtLy8nIHwgc2VkICdz L18vLi8nYAorKwkJCQkJCVZfQ0hFQ0s9YGV4cHIgJF92ZXJzaW9uX3RtcCBcPiAkX3ZlcnNpb25g CisrCQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgorKwkJCQkJCQlfdmVyc2lv bj0kX3ZlcnNpb25fdG1wCisrCQkJCQkJZmkKKysJCQkJCQlWRVJTSU9OX1VOREVSU0NPUkU9YGVj aG8gJF92ZXJzaW9uIHwgc2VkICdzL1wuL18vJ2AKKysJCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFj X2Jvb3N0X3BhdGgvaW5jbHVkZS9ib29zdC0kVkVSU0lPTl9VTkRFUlNDT1JFIgorKwkJCQkJZG9u ZQorKwkJCQlmaQorKwkJCWVsc2UKKysJCQkJZm9yIGFjX2Jvb3N0X3BhdGggaW4gL3VzciAvdXNy L2xvY2FsIC9vcHQgOyBkbworKwkJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgiICYmIHRl c3QgLXIgIiRhY19ib29zdF9wYXRoIjsgdGhlbgorKwkJCQkJCWZvciBpIGluIGBscyAtZCAkYWNf Ym9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251bGxgOyBkbworKwkJCQkJCQlfdmVy c2lvbl90bXA9YGVjaG8gJGkgfCBzZWQgInMjJGFjX2Jvb3N0X3BhdGgjIyIgfCBzZWQgJ3MvXC9p bmNsdWRlXC9ib29zdC0vLycgfCBzZWQgJ3MvXy8uLydgCisrCQkJCQkJCVZfQ0hFQ0s9YGV4cHIg JF92ZXJzaW9uX3RtcCBcPiAkX3ZlcnNpb25gCisrCQkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9 ICIxIiA7IHRoZW4KKysJCQkJCQkJCV92ZXJzaW9uPSRfdmVyc2lvbl90bXAKKysJCQkJCQkJCWJl c3RfcGF0aD0kYWNfYm9vc3RfcGF0aAorKwkJCQkJCQlmaQorKwkJCQkJCWRvbmUKKysJCQkJCWZp CisrCQkJCWRvbmUKKysKKysJCQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBlY2hvICRfdmVyc2lvbiB8 IHNlZCAncy9cLi9fLydgCisrCQkJCUJPT1NUX0NGTEFHUz0iLUkkYmVzdF9wYXRoL2luY2x1ZGUv Ym9vc3QtJFZFUlNJT05fVU5ERVJTQ09SRSIKKysJCQkJQk9PU1RfTElCUz0iLUwkYmVzdF9wYXRo LyRCT09TVF9MSUJESVJUWVBFIgorKworKwkgICAgCQlpZiB0ZXN0ICJ4JEJPT1NUX1JPT1QiICE9 ICJ4IjsgdGhlbgorKwkJCQkJaWYgdGVzdCAtZCAiJEJPT1NUX1JPT1QiICYmIHRlc3QgLXIgIiRC T09TVF9ST09UIjsgdGhlbgorKwkJCQkJCXZlcnNpb25fZGlyPWBleHByIC8vJEJPT1NUX1JPT1Qg OiAnLiovXCguKlwpJ2AKKysJCQkJCQlzdGFnZV92ZXJzaW9uPWBlY2hvICR2ZXJzaW9uX2RpciB8 IHNlZCAncy9ib29zdF8vLycgfCBzZWQgJ3MvXy8uL2cnYAorKwkJCQkJCXN0YWdlX3ZlcnNpb25f c2hvcnRlbj1gZXhwciAkc3RhZ2VfdmVyc2lvbiA6ICdcKFtbMC05XV0qXC5bWzAtOV1dKlwpJ2AK KysJCQkJCQlWX0NIRUNLPWBleHByICRzdGFnZV92ZXJzaW9uX3Nob3J0ZW4gXD5cPSAkX3ZlcnNp b25gCisrCQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgorKwkJCQkJCQlBQ19N U0dfTk9USUNFKFdlIHdpbGwgdXNlIGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkgZnJvbSAkQk9PU1Rf Uk9PVCkKKysJCQkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRCT09TVF9ST09UIgorKwkJCQkJCQlCT09T VF9MSUJTPSItTCRCT09TVF9ST09UL3N0YWdlLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQkJCWZp CisrCQkJCQlmaQorKwkgICAgCQlmaQorKwkJCWZpCisrCisrCQkJQ1BQRkxBR1M9IiRDUFBGTEFH UyAkQk9PU1RfQ0ZMQUdTIgorKwkJCWV4cG9ydCBDUFBGTEFHUworKwkJCUxERkxBR1M9IiRMREZM QUdTICRCT09TVF9MSUJTIgorKwkJCWV4cG9ydCBMREZMQUdTCisrCisrICAgICAJCUFDX1RSWV9D T01QSUxFKAorKyAgICAgICAJCVsKKytAJTpAaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+Cisr XSwKKysgICAgICAgWworKyNpZiBCT09TVF9WRVJTSU9OID49ICRXQU5UX0JPT1NUX1ZFUlNJT04K KysvLyBFdmVyeXRoaW5nIGlzIG9rYXkKKysjZWxzZQorKyMgIGVycm9yIEJvb3N0IHZlcnNpb24g aXMgdG9vIG9sZAorKyNlbmRpZgorKworKwkJXSwKKysgICAgCVsKKysgICAgICAgICBBQ19NU0df UkVTVUxUKHllcyAoJF92ZXJzaW9uKSkKKysJCSBzdWNjZWVkZWQ9eWVzCisrICAgICAgICAgaWZl bHNlKFskMl0sICwgOiwgWyQyXSkKKysgICAgICAgXSwKKysgICAgICAgWworKyAgICAgICAgIEFD X01TR19SRVNVTFQobm8gKCRfdmVyc2lvbikpCisrICAgICAgICAgaWZlbHNlKFskM10sICwgOiwg WyQzXSkKKysgICAgICAgXSkKKysJCWZpCisrCisrCQlpZiB0ZXN0ICIkc3VjY2VlZGVkIiAhPSAi eWVzIiA7IHRoZW4KKysJCQlpZiB0ZXN0ICIkX3ZlcnNpb24iID0gIjAiIDsgdGhlbgorKwkJCQlB Q19NU0dfRVJST1IoW1tXZSBjb3VsZCBub3QgZGV0ZWN0IHRoZSBib29zdCBsaWJyYXJpZXMgKHZl cnNpb24gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVuIG9yIGhpZ2hlcikuIElmIHlvdSBo YXZlIGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkgKHN0aWxsIG5vdCBpbnN0YWxsZWQpIHBsZWFzZSBz cGVjaWZ5IFwkQk9PU1RfUk9PVCBpbiB5b3VyIGVudmlyb25tZW50IGFuZCBkbyBub3QgZ2l2ZSBh IFBBVEggdG8gLS13aXRoLWJvb3N0IG9wdGlvbi4gIElmIHlvdSBhcmUgc3VyZSB5b3UgaGF2ZSBi b29zdCBpbnN0YWxsZWQsIHRoZW4gY2hlY2sgeW91ciB2ZXJzaW9uIG51bWJlciBsb29raW5nIGlu IDxib29zdC92ZXJzaW9uLmhwcD4uXV0pCisrCQkJZWxzZQorKwkJCQlBQ19NU0dfRVJST1IoJ1lv dXIgYm9vc3QgbGlicmFyaWVzIHNlZW1zIHRvIG9sZCAodmVyc2lvbiAkX3ZlcnNpb24pLiAgV2Ug bmVlZCBhdCBsZWFzdCAkYm9vc3RfbGliX3ZlcnNpb25fc2hvcnRlbicpCisrCQkJZmkKKysJCWVs c2UKKysJCQlBQ19TVUJTVChCT09TVF9DRkxBR1MpCisrCQkJQUNfU1VCU1QoQk9PU1RfTElCUykK KysJCQlBQ19ERUZJTkUoSEFWRV9CT09TVCwsW2RlZmluZSBpZiB0aGUgQm9vc3QgbGlicmFyeSBp cyBhdmFpbGFibGVdKQorKworKyMKKysjIEJvb3N0OjpGaWxlc3lzdGVtCisrIworKwkJCUFDX0NB Q0hFX0NIRUNLKFt3aGV0aGVyIHRoZSBCb29zdDo6RmlsZXN5c3RlbSBsaWJyYXJ5IGlzIGF2YWls YWJsZV0sCisrCQkJCQkJICAgYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbSwKKysJCQkJCQlbQUNfTEFO R19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFD X0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9maWxlc3lzdGVtL3BhdGguaHBwPl1d LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1t1c2luZyBuYW1lc3BhY2Ug Ym9vc3Q6OmZpbGVzeXN0ZW07CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw YXRoIG15X3BhdGgoICJmb28vYmFyL2RhdGEudHh0IiApOworKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIDA7XV0pLAorKyAgICAgICAgICAgIAkJCQkgICAgICAgYXhf Y3ZfYm9vc3RfZmlsZXN5c3RlbT15ZXMsIGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09bm8pCisrCQkg CQkgICAgICAgIAkJCUFDX0xBTkdfUkVTVE9SRQorKwkJCV0pCisrCQkJaWYgdGVzdCAiJGF4X2N2 X2Jvb3N0X2ZpbGVzeXN0ZW0iID0gInllcyI7IHRoZW4KKysJCQkJQUNfREVGSU5FKEhBVkVfQk9P U1RfRklMRVNZU1RFTSwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OkZJTEVTWVNURU0gbGlicmFyeSBp cyBhdmFpbGFibGVdKQorKwkJCQlCTj1ib29zdF9maWxlc3lzdGVtCisrCQkJCWZvciBheF9saWIg aW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10 IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJO LSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCAkQk4tbWd3LW10LXMgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRCTi1tZ3ctcyAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lP TiA7IGRvCisrCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbQk9PU1RfRklMRVNZU1RFTV9MSUI9Ii1sJGF4X2xpYiIg QUNfU1VCU1QoQk9PU1RfRklMRVNZU1RFTV9MSUIpIGxpbmtfZmlsZXN5c3RlbT0ieWVzIiBicmVh a10sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfZmlsZXN5c3RlbT0i bm8iXSkKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua19maWxlc3lzdGVtIiA9ICJ4 bm8iOyB0aGVuCisrCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4 X2xpYiAhKQorKwkJCQlmaQorKwkJCWZpCisrCisrIworKyMgQm9vc3Q6OlN5c3RlbQorKyMKKysg ICAgICAgICAgICBBQ19DQUNIRV9DSEVDSyhbd2hldGhlciB0aGUgQm9vc3Q6OlN5c3RlbSBsaWJy YXJ5IGlzIGF2YWlsYWJsZV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9v c3Rfc3lzdGVtLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFtBQ19MQU5HX1NBVkUKKysg ICAgICAgICAgICBBQ19MQU5HX0NQTFVTUExVUworKyAgICAgICAgICAgIEFDX0NPTVBJTEVfSUZF TFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9zeXN0ZW0vZXJyb3JfY29k ZS5ocHA+XV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW3VzaW5nIG5h bWVzcGFjZSBib29zdDo6c3lzdGVtOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZXJyb3JfY29kZSBteUVycm9yQ29kZSgpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIDA7XV0pLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXhfY3ZfYm9vc3Rfc3lzdGVtPXllcywgYXhfY3ZfYm9vc3Rfc3lzdGVtPW5vKQorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFDX0xBTkdfUkVTVE9SRQorKyAgICAgICAg ICAgIF0pCisrICAgICAgICAgICAgaWYgdGVzdCAiJGF4X2N2X2Jvb3N0X3N5c3RlbSIgPSAieWVz IjsgdGhlbgorKyAgICAgICAgICAgICAgICAgQUNfREVGSU5FKEhBVkVfQk9PU1RfU1lTVEVNLCxb ZGVmaW5lIGlmIHRoZSBCb29zdDo6U1lTVEVNIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKKysgICAg ICAgICAgICAgICAgIEJOPWJvb3N0X3N5c3RlbQorKyAgICAgICAgICAgICAgICAgZm9yIGF4X2xp YiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0Mt bXQgbGliJEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJEJOLW1ndyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zICRCTi1tZ3ct cyA7IGRvCisrICAgICAgICAgICAgICAgICAgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4s CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0JPT1NUX1NZU1RFTV9MSUI9Ii1s JGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfU1lTVEVNX0xJQikgbGlua19zeXN0ZW09InllcyIgYnJl YWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3N5c3RlbT0ibm8i XSkKKysgICAgICAgICAgICAgICAgIGRvbmUKKysgICAgICAgICAgICAgICAgIGlmIHRlc3QgIngk bGlua19zeXN0ZW0iID0gInhubyI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICBBQ19NU0df Tk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQorKyAgICAgICAgICAgICAg ICAgZmkKKysgICAgICAgICAgICBmaQorKworKyMKKysjIEJvb3N0OjpQcm9ncmFtX09wdGlvbnMK KysjCisrCQkJQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgdGhlIEJvb3N0OjpQcm9ncmFtX09wdGlv bnMgbGlicmFyeSBpcyBhdmFpbGFibGVdLAorKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3Byb2dyYW1f b3B0aW9ucywKKysJCQkJCQkgICBbQUNfTEFOR19TQVZFCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgQUNfTEFOR19DUExVU1BMVVMKKysJCQkgICAgICAgICAgICAgICBBQ19DT01QSUxFX0lG RUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvcHJvZ3JhbV9vcHRpb25z LmhwcD5dXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbYm9vc3Q6OnBy b2dyYW1fb3B0aW9uczo6b3B0aW9uc19kZXNjcmlwdGlvbiBnZW5lcmljKCJHZW5lcmljIG9wdGlv bnMiKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwO11dKSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnM9 eWVzLCBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnM9bm8pCisrCQkJICAgICAgICAgICAgICAg QUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICIkYXhfY3ZfYm9vc3RfcHJvZ3Jh bV9vcHRpb25zIiA9IHllczsgdGhlbgorKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9QUk9HUkFN X09QVElPTlMsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpQUk9HUkFNX09QVElPTlMgbGlicmFyeSBp cyBhdmFpbGFibGVdKQorKwkJCQlCTj1ib29zdF9wcm9ncmFtX29wdGlvbnMKKysJCQkJZm9yIGF4 X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0k Q0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTjsgZG8KKysJCQkJICAgIEFD X0NIRUNLX0xJQigkYXhfbGliLCBtYWluLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFtCT09TVF9QUk9HUkFNX09QVElPTlNfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NU X1BST0dSQU1fT1BUSU9OU19MSUIpIGxpbmtfcHJvZ3JhbV9vcHRpb25zPSJ5ZXMiIGJyZWFrXSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua19wcm9ncmFtX29wdGlvbnM9 Im5vIl0pCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfcHJvZ3JhbV9vcHRpb25z PSJubyIiID0gInhubyI7IHRoZW4KKysJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsg YWdhaW5zdCAkYXhfbGliICEpCisrCQkJCWZpCisrCQkJZmkKKysKKysjCisrIyBCb29zdDo6VGhy ZWFkcworKyMKKysJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6VGhyZWFkIGxp YnJhcnkgaXMgYXZhaWxhYmxlLAorKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3RocmVhZCwKKysJCQkJ CQlbQUNfTEFOR19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJIENYWEZMQUdTX1NB VkU9JENYWEZMQUdTCisrCisrCQkJIGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhzb2xhcmlzIiA7 IHRoZW4KKysgIAkJCQkgQ1hYRkxBR1M9Ii1wdGhyZWFkcyAkQ1hYRkxBR1MiCisrCQkJIGVsaWYg dGVzdCAieCRidWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCisrCQkJCSBDWFhGTEFHUz0iLW10 aHJlYWRzICRDWFhGTEFHUyIKKysJCQkgZWxzZQorKwkJCQlDWFhGTEFHUz0iLXB0aHJlYWQgJENY WEZMQUdTIgorKwkJCSBmaQorKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0o W1tAJTpAaW5jbHVkZSA8Ym9vc3QvdGhyZWFkL3RocmVhZC5ocHA+XV0sCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0Ojp0aHJlYWRfZ3JvdXAgdGhyZHM7CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtdXSksCisrICAgICAgICAg ICAgICAgICAgIGF4X2N2X2Jvb3N0X3RocmVhZD15ZXMsIGF4X2N2X2Jvb3N0X3RocmVhZD1ubykK KysJCQkgQ1hYRkxBR1M9JENYWEZMQUdTX1NBVkUKKysJCQkgQUNfTEFOR19SRVNUT1JFCisrCQkJ XSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3RocmVhZCIgPSAieHllcyI7IHRoZW4KKysg ICAgICAgICAgICAgICBpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4c29sYXJpcyIgOyB0aGVuCisr IAkJCQkgIEJPT1NUX0NGTEFHUz0iLXB0aHJlYWRzICRCT09TVF9DRkxBR1MiCisrCQkJICAgZWxp ZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4bWluZzMyIiA7IHRoZW4KKysgCQkJCSAgQk9PU1RfQ0ZM QUdTPSItbXRocmVhZHMgJEJPT1NUX0NGTEFHUyIKKysJCQkgICBlbHNlCisrCQkJCSAgQk9PU1Rf Q0ZMQUdTPSItcHRocmVhZCAkQk9PU1RfQ0ZMQUdTIgorKwkJCSAgIGZpCisrCisrCQkJCUFDX1NV QlNUKEJPT1NUX0NGTEFHUykKKysJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfVEhSRUFELCxbZGVm aW5lIGlmIHRoZSBCb29zdDo6VEhSRUFEIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKKysJCQkJQk49 Ym9vc3RfdGhyZWFkCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi1tdCAkQk4tJENDICRCTi0k Q0MtbXQgXAorKwkJCQkJCSAgIAkgICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGli JEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJEND LXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk Qk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgQUNfQ0hFQ0tf TElCKCRheF9saWIsIG1haW4sIFtCT09TVF9USFJFQURfTElCPSItbCRheF9saWIiIEFDX1NVQlNU KEJPT1NUX1RIUkVBRF9MSUIpIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrXSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbbGlua190aHJlYWQ9Im5vIl0pCisrICAJCQkJZG9uZQor KwkJCQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQlBQ19NU0df Tk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQorKwkJCQlmaQorKwkJCWZp CisrCisrIworKyMgQm9vc3Q6OklPU3RyZWFtcworKyMKKysJCQlBQ19DQUNIRV9DSEVDSyh3aGV0 aGVyIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAorKwkJCQkJCSAg IGF4X2N2X2Jvb3N0X2lvc3RyZWFtcywKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFDX0xB TkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0Al OkBpbmNsdWRlIDxib29zdC9pb3N0cmVhbXMvZmlsdGVyaW5nX3N0cmVhbS5ocHA+CisrCQkJCQkJ CQkJCQkJIEAlOkBpbmNsdWRlIDxib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5nZS5ocHA+CisrCQkJ CQkJCQkJCQkJXV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW3N0ZDo6 c3RyaW5nICBpbnB1dCA9ICJIZWxsbyBXb3JsZCEiOworKwkJCQkJCQkJCSBuYW1lc3BhY2UgaW8g PSBib29zdDo6aW9zdHJlYW1zOworKwkJCQkJCQkJCSBpbzo6ZmlsdGVyaW5nX2lzdHJlYW0gIGlu KGJvb3N0OjptYWtlX2l0ZXJhdG9yX3JhbmdlKGlucHV0KSk7CisrCQkJCQkJCQkJIHJldHVybiAw OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAorKyAgICAgICAgICAg ICAgICAgICBheF9jdl9ib29zdF9pb3N0cmVhbXM9eWVzLCBheF9jdl9ib29zdF9pb3N0cmVhbXM9 bm8pCisrCQkJIEFDX0xBTkdfUkVTVE9SRQorKwkJCV0pCisrCQkJaWYgdGVzdCAieCRheF9jdl9i b29zdF9pb3N0cmVhbXMiID0gInh5ZXMiOyB0aGVuCisrCQkJCUFDX0RFRklORShIQVZFX0JPT1NU X0lPU1RSRUFNUywsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OklPU3RyZWFtcyBsaWJyYXJ5IGlzIGF2 YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0X2lvc3RyZWFtcworKwkJCQlmb3IgYXhfbGliIGluICRC TiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIk Qk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0Mt cyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRC Ti1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk Qk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBBQ19DSEVDS19M SUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX0lPU1RSRUFNU19MSUI9Ii1sJGF4X2xpYiIgQUNfU1VC U1QoQk9PU1RfSU9TVFJFQU1TX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKKysgIAkJCQlk b25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KKysJCQkJCUFD X01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCisrCQkJCWZpCisr CQkJZmkKKysKKysjCisrIyBCb29zdDo6U2VyaWFsaXphdGlvbgorKyMKKysJCQlBQ19DQUNIRV9D SEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6U2VyaWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJs ZSwKKysJCQkJCQkgICBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uLAorKwkJCQkJCVtBQ19MQU5H X1NBVkUKKysJCQkgQUNfTEFOR19DUExVU1BMVVMKKysJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNf TEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGZzdHJlYW0+CisrCQkJCQkJCQkJCQkJIEAlOkBp bmNsdWRlIDxib29zdC9hcmNoaXZlL3RleHRfb2FyY2hpdmUuaHBwPgorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAJTpAaW5jbHVkZSA8Ym9vc3QvYXJj aGl2ZS90ZXh0X2lhcmNoaXZlLmhwcD4KKysJCQkJCQkJCQkJCQldXSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFtbc3RkOjpvZnN0cmVhbSBvZnMoImZpbGVuYW1lIik7Cisr CQkJCQkJCQkJYm9vc3Q6OmFyY2hpdmU6OnRleHRfb2FyY2hpdmUgb2Eob2ZzKTsKKysJCQkJCQkJ CQkgcmV0dXJuIDA7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXSksCisr ICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb249eWVzLCBheF9jdl9i b29zdF9zZXJpYWxpemF0aW9uPW5vKQorKwkJCSBBQ19MQU5HX1JFU1RPUkUKKysJCQldKQorKwkJ CWlmIHRlc3QgIngkYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiIgPSAieHllcyI7IHRoZW4KKysJ CQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfU0VSSUFMSVpBVElPTiwsW2RlZmluZSBpZiB0aGUgQm9v c3Q6OlNlcmlhbGl6YXRpb24gbGlicmFyeSBpcyBhdmFpbGFibGVdKQorKwkJCQlCTj1ib29zdF9z ZXJpYWxpemF0aW9uCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAk Qk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAg XAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01E V19WRVJTSU9OIDsgZG8KKysJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCT09TVF9TRVJJQUxJWkFUSU9OX0xJQj0i LWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9TRVJJQUxJWkFUSU9OX0xJQikgbGlua190aHJlYWQ9 InllcyIgYnJlYWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3Ro cmVhZD0ibm8iXSkKKysgIAkJCQlkb25lCisrCQkJCUJOPWJvb3N0X3dzZXJpYWxpemF0aW9uCisr CQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJO LSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRD QyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8K KysJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFtCT09TVF9XU0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xpYiIgQUNf U1VCU1QoQk9PU1RfV1NFUklBTElaQVRJT05fTElCKSBsaW5rX3RocmVhZD0ieWVzIiBicmVha10s CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfdGhyZWFkPSJubyJdKQor KyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgor KwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKKysJ CQkJZmkKKysJCQlmaQorKworKyMKKysjIEJvb3N0OjpTaWduYWxzCisrIworKwkJCUFDX0NBQ0hF X0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAor KwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3NpZ25hbHMsCisrCQkJCQkJW0FDX0xBTkdfU0FWRQorKwkJ CSBBQ19MQU5HX0NQTFVTUExVUworKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dS QU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3Qvc2lnbmFsLmhwcD4KKysJCQkJCQkJCQkJCQldXSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbYm9vc3Q6OnNpZ25hbDx2b2lkICgp PiBzaWc7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAorKyAgICAgICAgICAgICAg ICAgICBheF9jdl9ib29zdF9zaWduYWxzPXllcywgYXhfY3ZfYm9vc3Rfc2lnbmFscz1ubykKKysJ CQkgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3Np Z25hbHMiID0gInh5ZXMiOyB0aGVuCisrCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1NJR05BTFMs LFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKKysJ CQkJQk49Ym9vc3Rfc2lnbmFscworKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0k Q0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1t Z3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4t bWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09T VExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFp biwgW0JPT1NUX1NJR05BTFNfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX1NJR05BTFNf TElCKSBsaW5rX3NpZ25hbHM9InllcyIgYnJlYWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFtsaW5rX3NpZ25hbHM9Im5vIl0pCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0 ICJ4JGxpbmtfc2lnbmFscyIgPSAieG5vIjsgdGhlbgorKwkJCQkJQUNfTVNHX05PVElDRShDb3Vs ZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKKysJCQkJZmkKKysJCQlmaQorKworKyMKKysj IEJvb3N0OjpEYXRlX1RpbWUKKysjCisrCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9v c3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKKysJCQkJCQkgICBheF9jdl9ib29z dF9kYXRlX3RpbWUsCisrCQkJCQkJW0FDX0xBTkdfU0FWRQorKwkJCSBBQ19MQU5HX0NQTFVTUExV UworKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8 Ym9vc3QvZGF0ZV90aW1lL2dyZWdvcmlhbi9ncmVnb3JpYW5fdHlwZXMuaHBwPgorKwkJCQkJCQkJ CQkJCV1dLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1t1c2luZyBuYW1l c3BhY2UgYm9vc3Q6OmdyZWdvcmlhbjsgZGF0ZSBkKDIwMDIsSmFuLDEwKTsKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBdXSksCisrICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X2Rh dGVfdGltZT15ZXMsIGF4X2N2X2Jvb3N0X2RhdGVfdGltZT1ubykKKysJCQkgQUNfTEFOR19SRVNU T1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgPSAieHll cyI7IHRoZW4KKysJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfREFURV9USU1FLCxbZGVmaW5lIGlm IHRoZSBCb29zdDo6RGF0ZV9UaW1lIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKKysJCQkJQk49Ym9v c3RfZGF0ZV90aW1lCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAk Qk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAg XAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01E V19WRVJTSU9OIDsgZG8KKysJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLCBbQk9P U1RfREFURV9USU1FX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9EQVRFX1RJTUVfTElC KSBsaW5rX2RhdGVfdGltZT0ieWVzIiBicmVha10sCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgW2xpbmtfZGF0ZV90aW1lPSJubyJdKQorKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVz dCAieCRsaW5rX2RhdGVfdGltZSI9Im5vIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQlBQ19NU0dfTk9U SUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQorKwkJCQlmaQorKwkJCWZpCisr CisrIworKyMgQm9vc3Q6OlJlZ2V4CisrIworKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhl IEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKKysJCQkJCQkgICBheF9jdl9ib29z dF9yZWdleCwKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisr CQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29z dC9yZWdleC5ocHA+CisrCQkJCQkJCQkJCQkJXV0sCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBbW2Jvb3N0OjpyZWdleCByKCk7IHJldHVybiAwO11dKSwKKysgICAgICAgICAg ICAgICAgICAgYXhfY3ZfYm9vc3RfcmVnZXg9eWVzLCBheF9jdl9ib29zdF9yZWdleD1ubykKKysJ CQkgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3Jl Z2V4IiA9ICJ4eWVzIjsgdGhlbgorKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9SRUdFWCwsW2Rl ZmluZSBpZiB0aGUgQm9vc3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKKysJCQkJQk49 Ym9vc3RfcmVnZXgKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRC Ti0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURX X1ZFUlNJT04gOyBkbworKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09T VF9SRUdFWF9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfUkVHRVhfTElCKSBsaW5rX3Ro cmVhZD0ieWVzIiBicmVha10sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xp bmtfdGhyZWFkPSJubyJdKQorKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVh ZCIgPSAieG5vIjsgdGhlbgorKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2Fp bnN0ICRheF9saWIgISkKKysJCQkJZmkKKysJCQlmaQorKworKyMKKysjIEJvb3N0OjpBU0lPOiBp dCBuZWVkcyBCb29zdC5TeXN0ZW0sIEJvb3N0LlJlZ2V4LCBCb29zdC5UaHJlYWQgYW5kIAorKyMg Qm9vc3QuRGF0ZVRpbWUsIGJ1dCBkb2VzIG5vdCBwcm9kdWNlIGFueSAob3RoZXIpIGxpYnJhcnku CisrIworKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpBc2lvIGxpYnJhcnkg aXMgYXZhaWxhYmxlLAorKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X2FzaW8sCisrCQkJCQkJW0FDX0xB TkdfU0FWRQorKwkJCSBBQ19MQU5HX0NQTFVTUExVUworKwkJCSBBQ19DT01QSUxFX0lGRUxTRShB Q19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvYXNpby5ocHA+XV0sCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0Ojphc2lvOjppb19zZXJ2aWNlIGlv OworKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29zdDo6c3lzdGVtOjplcnJv cl9jb2RlIHRpbWVyX3Jlc3VsdDsKKysJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ym9vc3Q6OmFzaW86OmRlYWRsaW5lX3RpbWVyIHQoaW8pOworKwkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0LmNhbmNlbCgpOworKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpby5ydW5fb25lKCk7CisrCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAwOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAorKyAgICAg ICAgICAgICAgICAgICBheF9jdl9ib29zdF9hc2lvPXllcywgYXhfY3ZfYm9vc3RfYXNpbz1ubykK KysJCQkgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0 X2FzaW8iID0gInh5ZXMiOyB0aGVuCisrCQkJICAgQUNfREVGSU5FKEhBVkVfQk9PU1RfQVNJTyws W2RlZmluZSBpZiB0aGUgQm9vc3Q6OkFzaW8gbGlicmFyeSBpcyBhdmFpbGFibGVdKQorKwkJCSAg IEJPT1NUX0FTSU9fTElCPSIke0JPT1NUX1NZU1RFTV9MSUJ9ICR7Qk9PU1RfVEhSRUFEX0xJQn0i CisrCQkJICAgQk9PU1RfQVNJT19MSUI9IiR7Qk9PU1RfQVNJT19MSUJ9ICR7Qk9PU1RfREFURV9U SU1FX0xJQn0iCisrCQkJICAgQk9PU1RfQVNJT19MSUI9IiR7Qk9PU1RfQVNJT19MSUJ9ICR7Qk9P U1RfUkVHRVhfTElCfSIKKysJCQkgICBCT09TVF9BU0lPX0xJQj0iJHtCT09TVF9BU0lPX0xJQn0g JHtCT09TVF9TRVJJQUxJWkFUSU9OX0xJQn0iCisrCQkJZmkKKysKKysjCisrIyBTdXBwb3J0IGZv ciBQeXRob24gYW5kIE1QSSAoTVBJQ0gyLCBCb29zdDo6TVBJLCBCb29zdDo6UHl0aG9uLCAKKysj IEJvb3N0OjpTZXJpYWxpemF0aW9uLCBCb29zdDo6TVBJX1B5dGhvbikKKysjIE5vdGU6IG9uIHNv bWUgZGlzdHJpYnV0aW9ucyAoZS5nLiwgRGViaWFuKSwgQm9vc3QuTVBJIHVzZXMgT3Blbk1QSSBy YXRoZXIgCisrIyAgICAgICB0aGFuIE1QSUNIMgorKyMKKysJCQlDUFBGTEFHU19PUklHPSIke0NQ UEZMQUdTfSIKKysJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdTfSAke01Q SUdFTl9DRkxBR1N9IgorKyMJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdT fSAke01QSUNIMl9DRkxBR1N9IgorKyMJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU30gJHtQWVRIT05f Q0ZMQUdTfSAke09QRU5NUElfQ0ZMQUdTfSIKKysJCQlMREZMQUdTX09SSUc9IiR7TERGTEFHU30i CisrCQkJTERGTEFHUz0iJHtMREZMQUdTfSAke1BZVEhPTl9MSUJTfSAke1BZVEhPTl9BRERfTElC U30gJHtNUElHRU5fTElCU30iCisrIwkJCUxERkxBR1M9IiR7TERGTEFHU30gJHtQWVRIT05fTElC U30gJHtQWVRIT05fQUREX0xJQlN9ICR7TVBJQ0gyX0xJQlN9IgorKyMJCQlMREZMQUdTPSIke0xE RkxBR1N9ICR7UFlUSE9OX0xJQlN9ICR7UFlUSE9OX0FERF9MSUJTfSAke09QRU5NUElfTElCU30i CisrCisrIworKyMgQm9vc3Q6OlB5dGhvbgorKyMKKysJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVy IHRoZSBCb29zdDo6UHl0aG9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAorKwkJCQkJCSAgIGF4X2N2 X2Jvb3N0X3B5dGhvbiwKKysJCQlbQUNfTEFOR19TQVZFCisrCQkJQUNfTEFOR19DUExVU1BMVVMK KysKKysJCSAgICBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVk ZSA8Ym9vc3QvcHl0aG9uLmhwcD4KKysJCQljaGFyIGNvbnN0KiBncmVldCgpIHsgcmV0dXJuICJo ZWxsbyI7IH0gCisrCQkJQk9PU1RfUFlUSE9OX01PRFVMRShoZWxsb19leHQpIHsgYm9vc3Q6OnB5 dGhvbjo6ZGVmKCJncmVldCIsIGdyZWV0KTt9CisrCQkJCQkJCQkJCSAgIF1dKSwKKysgICAgICAg ICAgICAgICAgICAgYXhfY3ZfYm9vc3RfcHl0aG9uPXllcywgYXhfY3ZfYm9vc3RfcHl0aG9uPW5v KQorKwkJCSBBQ19MQU5HX1JFU1RPUkUKKysJCQldKQorKworKwkJCUJPT1NUX1BZVEhPTl9MSUI9 Ii1sYm9vc3RfcHl0aG9uICR7UFlUSE9OX0xJQlN9ICR7UFlUSE9OX0FERF9MSUJTfSIKKysJCQlB Q19TVUJTVChCT09TVF9QWVRIT05fTElCKQorKworKyMKKysjIEJvb3N0OjpNUEkKKysjCisrCQkJ QUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6Ok1waSBsaWJyYXJ5IGlzIGF2YWlsYWJs ZSwKKysJCQkJCQkgICBheF9jdl9ib29zdF9tcGksCisrCQkJCQkJW0FDX0xBTkdfU0FWRQorKwkJ CSBBQ19MQU5HX0NQTFVTUExVUworKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dS QU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvbXBpLmhwcD5dXSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFtbCisrCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAwOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAorKyAgICAg ICAgICAgICAgICAgICBheF9jdl9ib29zdF9tcGk9eWVzLCBheF9jdl9ib29zdF9tcGk9bm8pCisr CQkJIEFDX0xBTkdfUkVTVE9SRQorKwkJCV0pCisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9t cGkiID0gInh5ZXMiOyB0aGVuCisrCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX01QSSwsW2RlZmlu ZSBpZiB0aGUgQm9vc3Q6Ok1waSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0 X21waQorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1t dC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxp YiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1t dC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJOLSRDQy1t dC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKworKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRh eF9saWIsIG1haW4sIFtCT09TVF9NUElfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX01Q SV9MSUIpIGxpbmtfbXBpPSJ5ZXMiIGJyZWFrXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbbGlua19tcGk9Im5vIl0pCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxp bmtfbXBpIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5r IGFnYWluc3QgJGF4X2xpYiAhKQorKwkJCQllbHNlCisrCQkJCQlCT09TVF9NUElfTElCPSIke0JP T1NUX01QSV9MSUJ9ICR7Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUJ9ICR7TVBJR0VOX0xJQlN9Igor KwkJCQlmaQorKwkJCWZpCisrCisrIworKyMgQm9vc3Q6Ok1QSV9QeXRob24KKysjCisrCQkJQUNf Q0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6Ok1waV9QeXRob24gbGlicmFyeSBpcyBhdmFp bGFibGUsCisrCQkJCQkJICAgYXhfY3ZfYm9vc3RfbXBpX3B5dGhvbiwKKysJCQkJCQlbQUNfTEFO R19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFD X0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9tcGkvcHl0aG9uL3NlcmlhbGl6ZS5o cHA+CisrCQkJIAkJCQkJCQkJICAgXV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBbWworKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1dKSwKKysgICAgICAgICAgICAgICAg ICAgYXhfY3ZfYm9vc3RfbXBpX3B5dGhvbj15ZXMsIGF4X2N2X2Jvb3N0X21waV9weXRob249bm8p CisrCQkJIEFDX0xBTkdfUkVTVE9SRQorKwkJCV0pCisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29z dF9tcGlfcHl0aG9uIiA9ICJ4eWVzIjsgdGhlbgorKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9N UElfUFlUSE9OLCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6TXBpX1B5dGhvbiBsaWJyYXJ5IGlzIGF2 YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0X21waV9weXRob24KKysjCQkJCUJOPWJvb3N0X21waV9w eXRob24tcHkyNQorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJO LSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli JEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJO LW1ndy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJO LSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgQUNfQ0hFQ0tfTElC KCRheF9saWIsIG1haW4sIFtCT09TVF9NUElfUFlUSE9OX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJT VChCT09TVF9NUElfUFlUSE9OX0xJQikgbGlua19tcGlfcHl0aG9uPSJ5ZXMiIGJyZWFrXSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua19tcGlfcHl0aG9uPSJubyJdKQor KyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX21waV9weXRob24iID0gInhubyI7IHRo ZW4KKysJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEp CisrCQkJCWVsc2UKKysJCQkJCUJPT1NUX01QSV9QWVRIT05fTElCPSIke0JPT1NUX01QSV9QWVRI T05fTElCfSAke0JPT1NUX1NFUklBTElaQVRJT05fTElCfSIKKysJCQkJCUJPT1NUX01QSV9QWVRI T05fTElCPSIke0JPT1NUX01QSV9QWVRIT05fTElCfSAke0JPT1NUX1BZVEhPTl9MSUJ9IgorKwkJ CQkJQk9PU1RfTVBJX1BZVEhPTl9MSUI9IiR7Qk9PU1RfTVBJX1BZVEhPTl9MSUJ9ICR7Qk9PU1Rf TVBJX0xJQn0iCisrCQkJCQlCT09TVF9NUElfUFlUSE9OX0xJQj0iJHtCT09TVF9NUElfUFlUSE9O X0xJQn0gJHtNUElHRU5fTElCU30iCisrCQkJCWZpCisrCQkJZmkKKysKKysjCisrIyBFbmQgb2Yg c2VjdGlvbiBvbiBzdXBwb3J0IGZvciBNUEkKKysjCisrCQkJQ1BQRkxBR1M9IiR7Q1BQRkxBR1Nf T1JJR30iCisrCQkJTERGTEFHUz0iJHtMREZMQUdTX09SSUd9IgorKworKyMKKysjIEJvb3N0OjpV bml0VGVzdEZyYW1ld29yaworKyMKKysJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29z dDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFyeSBpcyBhdmFpbGFibGUsCisrCQkJCQkJICAgYXhf Y3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaywKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJ IEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JB TShbW0AlOkBpbmNsdWRlIDxib29zdC90ZXN0L3VuaXRfdGVzdC5ocHA+XV0sCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgW1t1c2luZyBib29zdDo6dW5pdF90ZXN0Ojp0ZXN0 X3N1aXRlOworKwkJCQkJICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlKiB0ZXN0PSBCT09TVF9U RVNUX1NVSVRFKCAiVW5pdCB0ZXN0IGV4YW1wbGUgMSIgKTsgcmV0dXJuIDA7XV0pLAorKyAgICAg ICAgICAgICAgICAgICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrPXllcywgYXhfY3Zf Ym9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaz1ubykKKysJCQkgQUNfTEFOR19SRVNUT1JFCisrCQkJ XSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID0gInh5 ZXMiOyB0aGVuCisrICAgIAkJQUNfREVGSU5FKEhBVkVfQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S SywsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlVuaXRfdGVzdF9mcmFtZXdvcmsgbGlicmFyeSBpcyBh dmFpbGFibGVdKQorKwkJCUJOPWJvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsKKysgICAgCQlzYXZl ZF9sZGZsYWdzPSIke0xERkxBR1N9IgorKwkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJO LSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQg JEJOLW1ndy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctcyAkQk4t JENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrICAgICAgICAgICAgICAgIExERkxB R1M9IiR7TERGTEFHU30gLWwkYXhfbGliIgorKyAgICAJCQlBQ19DQUNIRV9DSEVDSyh0aGUgbmFt ZSBvZiB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnksCisrCSAgICAgIAkJCQkJ ICAgYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaywKKysJCQkJCQlbQUNfTEFOR19TQVZF CisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrICAgICAgICAgICAgICAgQUNfTElOS19JRkVMU0Uo W0FDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC90ZXN0L3VuaXRfdGVzdC5ocHA+ XV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbdXNpbmcgYm9vc3Q6OnVuaXRf dGVzdDo6dGVzdF9zdWl0ZTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9z dWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9TVUlURSggIlVuaXQgdGVzdCBleGFtcGxlIDEiICk7IHJl dHVybiAwO11dKV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVh ZD0ieWVzIl0sW2xpbmtfdGhyZWFkPSJubyJdKQorKworKwkJCSBBQ19MQU5HX1JFU1RPUkUKKysg ICAgICAgICAgICAgICBdKQorKyAgICAgICAgICAgICAgICBMREZMQUdTPSIke3NhdmVkX2xkZmxh Z3N9IgorKwkJCSAgICBpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4eWVzIjsgdGhlbgorKyAg ICAgICAgICAgICAgICAgICAgQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUI9Ii1sJGF4X2xp YiIKKysgICAgICAgICAgICAgICAgICAgIEFDX1NVQlNUKEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdP UktfTElCKQorKwkJCQkJYnJlYWsKKysJCQkJZmkKKysgICAgICAgICAgICAgIGRvbmUKKysJCQkg ICAgaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgorKwkJCQkgICBBQ19NU0df Tk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQorKwkJCQlmaQorKwkJCWZp CisrCisrCisrCQlmaSBkbmwgZW5kaWYgdGVzdCAiJHN1Y2NlZWRlZCIKKysKKysgICAgICAgIENQ UEZMQUdTPSIkQ1BQRkxBR1NfU0FWRUQiCisrICAgICAgICBMREZMQUdTPSIkTERGTEFHU19TQVZF RCIKKysKKysJZmkgZG5sIGVuZGlmIHRlc3QgIngkd2FudF9ib29zdCIKKytdKQorZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9teXNxbC5tNCBzb2NpLTMuMC4wX3RyZXAzMDAv Y29uZmlnL2F4X215c3FsLm00CistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X215c3Fs Lm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL2NvbmZpZy9heF9teXNxbC5tNAkyMDEwLTAxLTIzIDEzOjI3OjA0LjAwMDAwMDAwMCAr MDEwMAorQEAgLTAsMCArMSwxNjQgQEAKKytkbmwgQHN5bm9wc2lzIEFYX01ZU1FMCisrZG5sIAor K2RubCBUaGlzIG1hY3JvIHRyaWVzIHRvIGZpbmQgTXlTUUwgQyBBUEkgaGVhZGVyIGFuZCBsaWJy YXJ5IGxvY2F0aW9ucy4KKytkbmwKKytkbmwgV2UgZGVmaW5lIHRoZSBmb2xsb3dpbmcgY29uZmln dXJlIHNjcmlwdCBmbGFnczoKKytkbmwKKytkbmwJCS0td2l0aC1teXNxbDogR2l2ZSBwcmVmaXgg Zm9yIGJvdGggbGlicmFyeSBhbmQgaGVhZGVycywgYW5kIHRyeQorK2RubAkJCXRvIGd1ZXNzIHN1 YmRpcmVjdG9yeSBuYW1lcyBmb3IgZWFjaC4gIChlLmcuIFRhY2sgL2xpYiBhbmQKKytkbmwJCQkv aW5jbHVkZSBvbnRvIGdpdmVuIGRpciBuYW1lLCBhbmQgb3RoZXIgY29tbW9uIHNjaGVtZXMuKQor K2RubAkJLS13aXRoLW15c3FsLWxpYjogU2ltaWxhciB0byAtLXdpdGgtbXlzcWwsIGJ1dCBmb3Ig bGlicmFyeSBvbmx5LgorK2RubAkJLS13aXRoLW15c3FsLWluY2x1ZGU6IFNpbWlsYXIgdG8gLS13 aXRoLW15c3FsLCBidXQgZm9yIGhlYWRlcnMKKytkbmwJCQlvbmx5LgorK2RubAorK2RubCBAdmVy c2lvbiAxLjIsIDIwMDcvMDIvMjAKKytkbmwgQGF1dGhvciBXYXJyZW4gWW91bmcgPG15c3FscHBA ZXRyLXVzYS5jb20+CisrCisrQUNfREVGVU4oW0FYX01ZU1FMXSwKKytbCisrCSMKKysJIyBTZXQg dXAgY29uZmlndXJlIHNjcmlwdCBtYWNyb3MKKysJIworKwlBQ19BUkdfV0lUSChteXNxbCwKKysJ CVsgIC0td2l0aC1teXNxbD08cGF0aD4gICAgIHJvb3QgZGlyZWN0b3J5IHBhdGggb2YgTXlTUUwg aW5zdGFsbGF0aW9uXSwKKysJCVtNWVNRTF9saWJfY2hlY2s9IiR3aXRoX215c3FsL2xpYjY0L215 c3FsICR3aXRoX215c3FsL2xpYi9teXNxbCAkd2l0aF9teXNxbC9saWI2NCAkd2l0aF9teXNxbC9s aWIiCisrCQlNWVNRTF9pbmNfY2hlY2s9IiR3aXRoX215c3FsL2luY2x1ZGUgJHdpdGhfbXlzcWwv aW5jbHVkZS9teXNxbCIKKysJCU1ZU1FMX2Jpbl9jaGVjaz0iJHdpdGhfbXlzcWwvYmluIl0sCisr CQlbTVlTUUxfbGliX2NoZWNrPSIvdXNyL2xpYjY0IC91c3IvbGliIC91c3IvbGliNjQvbXlzcWwg L3Vzci9saWIvbXlzcWwgL3Vzci9sb2NhbC9saWI2NCAvdXNyL2xvY2FsL2xpYiAvdXNyL2xvY2Fs L2xpYi9teXNxbCAvdXNyL2xvY2FsL215c3FsL2xpYiAvdXNyL2xvY2FsL215c3FsL2xpYi9teXNx bCAvb3B0L215c3FsL2xpYiAvb3B0L215c3FsL2xpYi9teXNxbCIKKysJCU1ZU1FMX2luY19jaGVj az0iL3Vzci9pbmNsdWRlL215c3FsIC91c3IvbG9jYWwvaW5jbHVkZS9teXNxbCAvdXNyL2xvY2Fs L215c3FsL2luY2x1ZGUgL3Vzci9sb2NhbC9teXNxbC9pbmNsdWRlL215c3FsIC9vcHQvbXlzcWwv aW5jbHVkZS9teXNxbCIKKysJCU1ZU1FMX2Jpbl9jaGVjaz0iL3Vzci9iaW4gL3Vzci9sb2NhbC9i aW4gL3Vzci9sb2NhbC9teXNxbC9iaW4iXSkKKysKKysJQUNfQVJHX1dJVEgobXlzcWwtbGliLAor KwkJWyAgLS13aXRoLW15c3FsLWxpYj08cGF0aD4gZGlyZWN0b3J5IHBhdGggb2YgTXlTUUwgbGli cmFyeSBpbnN0YWxsYXRpb25dLAorKwkJW01ZU1FMX2xpYl9jaGVjaz0iJHdpdGhfbXlzcWxfbGli ICR3aXRoX215c3FsX2xpYi9saWI2NCAkd2l0aF9teXNxbF9saWIvbGliICR3aXRoX215c3FsX2xp Yi9saWI2NC9teXNxbCAkd2l0aF9teXNxbF9saWIvbGliL215c3FsIl0pCisrCisrCUFDX0FSR19X SVRIKG15c3FsLWluY2x1ZGUsCisrCQlbICAtLXdpdGgtbXlzcWwtaW5jbHVkZT08cGF0aD4gZGly ZWN0b3J5IHBhdGggb2YgTXlTUUwgaGVhZGVyIGluc3RhbGxhdGlvbl0sCisrCQlbTVlTUUxfaW5j X2NoZWNrPSIkd2l0aF9teXNxbF9pbmNsdWRlICR3aXRoX215c3FsX2luY2x1ZGUvaW5jbHVkZSAk d2l0aF9teXNxbF9pbmNsdWRlL2luY2x1ZGUvbXlzcWwiXSkKKysKKysKKysgICAgIworKwkjIExv b2sgZm9yIE15U1FMIENvbmZpZ3VyYXRpb24gU2NyaXB0CisrCSMKKysJQUNfTVNHX0NIRUNLSU5H KFtmb3IgTXlTUUwgY29uZmlndXJhdGlvbiBzY3JpcHRdKQorKwlNWVNRTF9DT05GSUc9CisrCU1Z U1FMX2JpbmRpcj0KKysJZm9yIG0gaW4gJE1ZU1FMX2Jpbl9jaGVjaworKwkJZG8KKysJCQlpZiB0 ZXN0IC1kICIkbSIgJiYgdGVzdCAtZiAiJG0vbXlzcWxfY29uZmlnIgorKwkJCXRoZW4KKysJCQkJ TVlTUUxfQ09ORklHPSRtL215c3FsX2NvbmZpZworKwkJCQlNWVNRTF9iaW5kaXI9JG0KKysJCQli cmVhaworKwkJZmkKKysJZG9uZQorKworKwlpZiB0ZXN0IC16ICIkTVlTUUxfYmluZGlyIgorKwl0 aGVuCisrCQlBQ19NU0dfRVJST1IoW0RpZG4ndCBmaW5kICRNWVNRTF9DT05GSUcgYmluYXJ5IGlu ICckTVlTUUxfYmluX2NoZWNrJ10pCisrCWZpCisrCisrCWNhc2UgIiRNWVNRTF9iaW5kaXIiIGlu CisrCQkvKiApIDs7CisrCQkqICkgIEFDX01TR19FUlJPUihbVGhlIE15U1FMIGJpbmFyeSBkaXJl Y3RvcnkgKCRNWVNRTF9iaW5kaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7OworKwll c2FjCisrCisrCUFDX01TR19SRVNVTFQoWyRNWVNRTF9DT05GSUddKQorKworKyMJQUNfUEFUSF9Q Uk9HKE1ZU1FMX0NPTkZJRywgbXlzcWxfY29uZmlnLCAkTVlTUUxfYmluZGlyKQorKworKwkjCisr CSMgRGVjaWRlIHdoaWNoIEMgQVBJIGxpYnJhcnkgdG8gdXNlLCBiYXNlZCBvbiB0aHJlYWQgc3Vw cG9ydAorKwkjCisrCWlmIHRlc3QgIngkYWN4X3B0aHJlYWRfb2siID0geHllcworKwl0aGVuCisr CQlNWVNRTF9DX0xJQj1teXNxbGNsaWVudF9yCisrCQlNWVNRTF9MSUJfT1BUSU9OPWxpYnNfcgor KwllbHNlCisrCQlNWVNRTF9DX0xJQj1teXNxbGNsaWVudAorKwkJTVlTUUxfTElCX09QVElPTj1s aWJzCisrCWZpCisrCisrCWlmIHRlc3QgIngke01ZU1FMX0NPTkZJR30xIiA9ICJ4MSIKKysJdGhl bgorKwkJTVlTUUxfVkVSU0lPTj1gJHtNWVNRTF9DT05GSUd9IC0tdmVyc2lvbmAKKysJCU1ZU1FM X0NGTEFHUz1gJHtNWVNRTF9DT05GSUd9IC0tY2ZsYWdzYAorKwkJTVlTUUxfTElCUz1gJHtNWVNR TF9DT05GSUd9IC0tJHtNWVNRTF9MSUJfT1BUSU9OfWAKKysJZWxzZQorKwkJIworKwkJIyBMb29r IGZvciBNeVNRTCBDIEFQSSBsaWJyYXJ5CisrCQkjCisrCQlBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBN eVNRTCBsaWJyYXJ5IGRpcmVjdG9yeV0pCisrCQlNWVNRTF9saWJkaXI9CisrCQlmb3IgbSBpbiAk TVlTUUxfbGliX2NoZWNrCisrCQlkbworKwkJCWlmIHRlc3QgLWQgIiRtIiAmJiBcCisrCQkJCSh0 ZXN0IC1mICIkbS9saWIkTVlTUUxfQ19MSUIuc28iIFwKKysJCQkJfHwgdGVzdCAtZiAiJG0vbGli JE1ZU1FMX0NfTElCLmEiKQorKwkJCXRoZW4KKysJCQkJTVlTUUxfbGliZGlyPSRtCisrCQkJCWJy ZWFrCisrCQkJZmkKKysJCWRvbmUKKysKKysJCWlmIHRlc3QgLXogIiRNWVNRTF9saWJkaXIiCisr CQl0aGVuCisrCQkJQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCAkTVlTUUxfQ19MSUIgbGlicmFy eSBpbiAnJE1ZU1FMX2xpYl9jaGVjayddKQorKwkJZmkKKysKKysJCWNhc2UgIiRNWVNRTF9saWJk aXIiIGluCisrCQkJLyogKSA7OworKwkJCSogKSAgQUNfTVNHX0VSUk9SKFtUaGUgTXlTUUwgbGli cmFyeSBkaXJlY3RvcnkgKCRNWVNRTF9saWJkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5d KSA7OworKwkJZXNhYworKworKwkJQUNfTVNHX1JFU1VMVChbJE1ZU1FMX2xpYmRpcl0pCisrCisr IwkJY2FzZSAiJE1ZU1FMX2xpYmRpciIgaW4KKysjCQkgIC91c3IvbGliKSA7OworKyMJCSAgKikg TERGTEFHUz0iJExERkxBR1MgLUwke01ZU1FMX2xpYmRpcn0iIDs7CisrIwkJZXNhYworKworKwkJ IworKwkJIyBMb29rIGZvciBNeVNRTCBDIEFQSSBoZWFkZXJzCisrCQkjCisrCQlBQ19NU0dfQ0hF Q0tJTkcoW2ZvciBNeVNRTCBpbmNsdWRlIGRpcmVjdG9yeV0pCisrCQlNWVNRTF9pbmNkaXI9Cisr CQlmb3IgbSBpbiAkTVlTUUxfaW5jX2NoZWNrCisrCQlkbworKwkJCWlmIHRlc3QgLWQgIiRtIiAm JiB0ZXN0IC1mICIkbS9teXNxbC5oIgorKwkJCXRoZW4KKysJCQkJTVlTUUxfaW5jZGlyPSRtCisr CQkJCWJyZWFrCisrCQkJZmkKKysJCWRvbmUKKysKKysJCWlmIHRlc3QgLXogIiRNWVNRTF9pbmNk aXIiCisrCQl0aGVuCisrCQkJQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCB0aGUgTXlTUUwgaW5j bHVkZSBkaXIgaW4gJyRNWVNRTF9pbmNfY2hlY2snXSkKKysJCWZpCisrCisrCQljYXNlICIkTVlT UUxfaW5jZGlyIiBpbgorKwkJCSAvKiApIDs7CisrCQkJICogKSAgQUNfTVNHX0VSUk9SKFtUaGUg TXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkgKCRNWVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1 dGUgcGF0aC5dKSA7OworKwkJZXNhYworKworKwkJQUNfTVNHX1JFU1VMVChbJE1ZU1FMX2luY2Rp cl0pCisrCisrCQlNWVNRTF9WRVJTSU9OPWBncmVwICJkZWZpbmUgTVlTUUxfU0VSVkVSX1ZFUlNJ T04iICRNWVNRTF9pbmNkaXIvbXlzcWxfdmVyc2lvbi5oIHwgY3V0IC1kXCIgLWYyYAorKwkJTVlT UUxfQ0ZMQUdTPSItSSR7TVlTUUxfaW5jZGlyfSIKKysJCU1ZU1FMX0xJQlM9Ii1MJHtNWVNRTF9s aWJkaXJ9IC1sJHtNWVNRTF9DX0xJQn0iCisrCWZpCisrCisrCUFDX1NVQlNUKE1ZU1FMX1ZFUlNJ T04pCisrCUFDX1NVQlNUKE1ZU1FMX0NGTEFHUykKKysJQUNfU1VCU1QoTVlTUUxfTElCUykKKysK KysJc2F2ZV9MSUJTPSIkTElCUyIKKysJTElCUz0iJExJQlMgJE1ZU1FMX0xJQlMiCisrCUFDX0NI RUNLX0xJQigkTVlTUUxfQ19MSUIsIG15c3FsX3N0b3JlX3Jlc3VsdCwKKysgICAgICAgCQkJW10s IAorKyAgICAgICAgICAgICAgIAlbQUNfTVNHX0VSUk9SKFtDb3VsZCBub3QgZmluZCB3b3JraW5n IE15U1FMIGNsaWVudCBsaWJyYXJ5IV0pXQorKyAgICAgICAgICAgICAgIAkpCisrCUFDX1NVQlNU KE1ZU1FMX0NfTElCKQorKwlMSUJTPSIkc2F2ZV9MSUJTIgorK10pIGRubCBBWF9NWVNRTAorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IHNvY2ktMy4w LjBfdHJlcDMwMC9jb25maWcvYXhfb3JhY2xlX29jaS5tNAorLS0tIHNvY2ktMy4wLjBfNC1wYWNr L2NvbmZpZy9heF9vcmFjbGVfb2NpLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00CTIwMTAt MDEtMjMgMTM6Mjc6MDQuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDI4NiBAQAorK2RubCAk SWQ6IGF4X29yYWNsZV9vY2kubTQsdiAxLjExIDIwMDgvMDQvMjggMTk6NTg6NTQgbWxvc2tvdCBF eHAgJAorK2RubAorK2RubCBAc3lub3BzaXMgQVhfTElCX09SQUNMRV9PQ0koW01JTklNVU0tVkVS U0lPTl0pCisrZG5sCisrZG5sIFRoaXMgbWFjcm8gcHJvdmlkZXMgdGVzdHMgb2YgYXZhaWxhYmls aXR5IG9mIE9yYWNsZSBPQ0kgQVBJCisrZG5sIG9mIHBhcnRpY3VsYXIgdmVyc2lvbiBvciBuZXdl ci4KKytkbmwgVGhpcyBtYWNyb3MgY2hlY2tzIGZvciBPcmFjbGUgT0NJIGhlYWRlcnMgYW5kIGxp YnJhcmllcyAKKytkbmwgYW5kIGRlZmluZXMgY29tcGlsYXRpb24gZmxhZ3MKKytkbmwgCisrZG5s IE1hY3JvIHN1cHBvcnRzIGZvbGxvd2luZyBvcHRpb25zIGFuZCB0aGVpciB2YWx1ZXM6CisrZG5s IDEpIFNpbmdsZS1vcHRpb24gdXNhZ2U6CisrZG5sIC0td2l0aC1vcmFjbGUgLSBwYXRoIHRvIE9S QUNMRV9IT01FIGRpcmVjdG9yeQorK2RubCAyKSBUd28tb3B0aW9ucyB1c2FnZSAoYm90aCBvcHRp b25zIGFyZSByZXF1aXJlZCk6CisrZG5sIC0td2l0aC1vcmFjbGUtaW5jbHVkZSAtIHBhdGggdG8g ZGlyZWN0b3J5IHdpdGggT0NJIGhlYWRlcnMKKytkbmwgLS13aXRoLW9yYWNsZS1saWIgLSBwYXRo IHRvIGRpcmVjdG9yeSB3aXRoIE9DSSBsaWJyYXJpZXMgCisrZG5sCisrZG5sIE5PVEU6IFRoZXNl IG9wdGlvbnMgZGVzY3JpYmVkIGFib3ZlIGRvZXMgbm90IHRha2UgeWVzfG5vIHZhbHVlcy4KKytk bmwgSWYgJ3llcycgdmFsdWUgaXMgcGFzc2VkLCB0aGVuIFdBUk5JTkcgbWVzc2FnZSB3aWxsIGJl IGRpc3BsYXllZCwKKytkbmwgJ25vJyB2YWx1ZSwgYXMgd2VsbCBhcyB0aGUgLS13aXRob3V0LW9y YWNsZSogdmFyaWF0aW9ucyB3aWxsIGNhdXNlCisrZG5sIHRoZSBtYWNybyB3b24ndCBjaGVjayBl bnl0aGluZy4KKytkbmwKKytkbmwgVGhpcyBtYWNybyBjYWxsczoKKytkbmwKKytkbmwgICBBQ19T VUJTVChPUkFDTEVfT0NJX0NGTEFHUykKKytkbmwgICBBQ19TVUJTVChPUkFDTEVfT0NJX0xERkxB R1MpCisrZG5sICAgQUNfU1VCU1QoT1JBQ0xFX09DSV9WRVJTSU9OKQorK2RubAorK2RubCBBbmQg c2V0czoKKytkbmwKKytkbmwgICBIQVZFX09SQUNMRQorK2RubAorK2RubCBAY2F0ZWdvcnkgSW5z dGFsbGVkUGFja2FnZXMKKytkbmwgQGNhdGVnb3J5IEN4eAorK2RubCBAYXV0aG9yIE1hdGV1c3og TG9za290IDxtYXRldXN6QGxvc2tvdC5uZXQ+CisrZG5sIEB2ZXJzaW9uICREYXRlOiAyMDA4LzA0 LzI4IDE5OjU4OjU0ICQKKytkbmwgQGxpY2Vuc2UgQWxsUGVybWlzc2l2ZQorK2RubAorK2RubCAk SWQ6IGF4X29yYWNsZV9vY2kubTQsdiAxLjExIDIwMDgvMDQvMjggMTk6NTg6NTQgbWxvc2tvdCBF eHAgJAorK2RubAorK0FDX0RFRlVOKFtBWF9MSUJfT1JBQ0xFX09DSV0sCisrWworKyAgICBBQ19S RVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pCisrICAgIEFDX0FSR19XSVRIKFtvcmFjbGVdLAor KyAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1vcmFjbGU9QDw6QERJUkA6PkBdLAorKyAg ICAgICAgICAgIFt1c2UgT3JhY2xlIE9DSSBBUEkgZnJvbSBnaXZlbiBwYXRoIHRvIE9yYWNsZSBo b21lIGRpcmVjdG9yeV0KKysgICAgICAgICksCisrICAgICAgICBbCisrICAgICAgICBpZiB0ZXN0 ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFD TEVfSE9NRSI7IHRoZW4KKysgICAgICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xF X0hPTUUiCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICBvcmFjbGVfaG9tZV9k aXI9IiIKKysgICAgICAgICAgICBmaSAKKysgICAgICAgIGZpCisrICAgICAgICBdLAorKyAgICAg ICAgWworKyAgICAgICAgaWYgdGVzdCAtbiAiJE9SQUNMRV9IT01FIjsgdGhlbgorKyAgICAgICAg ICAgIG9yYWNsZV9ob21lX2Rpcj0iJE9SQUNMRV9IT01FIgorKyAgICAgICAgZWxzZQorKyAgICAg ICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iIgorKyAgICAgICAgZmkgCisrICAgICAgICBdCisrICAg ICkKKysKKysgICAgQUNfQVJHX1dJVEgoW29yYWNsZS1pbmNsdWRlXSwKKysgICAgICAgIEFDX0hF TFBfU1RSSU5HKFstLXdpdGgtb3JhY2xlLWluY2x1ZGU9QDw6QERJUkA6PkBdLAorKyAgICAgICAg ICAgIFt1c2UgT3JhY2xlIE9DSSBBUEkgaGVhZGVycyBmcm9tIGdpdmVuIHBhdGhdCisrICAgICAg ICApLAorKyAgICAgICAgW29yYWNsZV9ob21lX2luY2x1ZGVfZGlyPSIkd2l0aHZhbCJdLAorKyAg ICAgICAgW29yYWNsZV9ob21lX2luY2x1ZGVfZGlyPSIiXQorKyAgICApCisrICAgIEFDX0FSR19X SVRIKFtvcmFjbGUtbGliXSwKKysgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtb3JhY2xl LWxpYj1APDpARElSQDo+QF0sCisrICAgICAgICAgICAgW3VzZSBPcmFjbGUgT0NJIEFQSSBsaWJy YXJpZXMgZnJvbSBnaXZlbiBwYXRoXQorKyAgICAgICAgKSwKKysgICAgICAgIFtvcmFjbGVfaG9t ZV9saWJfZGlyPSIkd2l0aHZhbCJdLAorKyAgICAgICAgW29yYWNsZV9ob21lX2xpYl9kaXI9IiJd CisrICAgICkKKysKKysgICAgT1JBQ0xFX09DSV9DRkxBR1M9IiIKKysgICAgT1JBQ0xFX09DSV9M REZMQUdTPSIiCisrICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iIgorKworKyAgICBkbmwKKysgICAg ZG5sIENvbGxlY3QgaW5jbHVkZS9saWIgcGF0aHMKKysgICAgZG5sIAorKyAgICB3YW50X29yYWNs ZV9idXRfbm9fcGF0aD0ibm8iCisrCisrICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9kaXIi OyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAibm8iIC1h ICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIGRubCBPUkFD TEVfSE9NRSBwYXRoIHByb3ZpZGVkCisrICAgICAgICAgICAgCisrICAgICAgICAgICAgZG5sIFBy aW1hcnkgcGF0aCB0byBPQ0kgaGVhZGVycywgYXZhaWxhYmxlIGluIE9yYWNsZT49MTAKKysgICAg ICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVfaG9tZV9kaXIvcmRibXMvcHVibGlj IgorKyAgICAgICAgICAgIAorKyAgICAgICAgICAgIGRubCBTZWNvbmRhcnkgcGF0aCB0byBPQ0kg aGVhZGVycyB1c2VkIGJ5IG9sZGVyIHZlcnNpb25zCisrICAgICAgICAgICAgb3JhY2xlX2luY2x1 ZGVfZGlyMj0iJG9yYWNsZV9ob21lX2Rpci9yZGJtcy9kZW1vIgorKworKyAgICAgICAgICAgIGRu bCBMaWJyYXJ5IHBhdGgKKysgICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21l X2Rpci9saWIiCisrICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9kaXIiID0gInllcyI7 IHRoZW4KKysgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgorKyAgICAg ICAgZmkKKysKKysgICAgZWxpZiB0ZXN0IC1uICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiIC1v IC1uICIkb3JhY2xlX2hvbWVfbGliX2RpciI7IHRoZW4KKysKKysgICAgICAgIGlmIHRlc3QgIiRv cmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2luY2x1ZGVf ZGlyIiAhPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2Rpcj0iJG9y YWNsZV9ob21lX2luY2x1ZGVfZGlyIgorKyAgICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVf aW5jbHVkZV9kaXIiID0gInllcyI7IHRoZW4KKysgICAgICAgICAgICB3YW50X29yYWNsZV9idXRf bm9fcGF0aD0ieWVzIgorKyAgICAgICAgZmkKKysKKysgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVf aG9tZV9saWJfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfbGliX2RpciIgIT0gInllcyI7 IHRoZW4KKysgICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21lX2xpYl9kaXIi CisrICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiA9ICJ5ZXMiOyB0aGVu CisrICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKKysgICAgICAgIGZp CisrICAgIGZpCisrCisrICAgIGlmIHRlc3QgIiR3YW50X29yYWNsZV9idXRfbm9fcGF0aCIgPSAi eWVzIjsgdGhlbgorKyAgICAgICAgQUNfTVNHX1dBUk4oW09yYWNsZSBzdXBwb3J0IGlzIHJlcXVl c3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVlbiBwcm92aWRlZC4gXAorK1BsZWFzZSwg bG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAtLXdpdGgtb3JhY2xlIG9yIFwKKystLXdp dGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFjbGUtbGliIG9wdGlvbnMuXSkKKysgICAg ZmkKKysKKysgICAgZG5sCisrICAgIGRubCBDaGVjayBPQ0kgZmlsZXMKKysgICAgZG5sCisrICAg IGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIiIC1hIC1uICIkb3JhY2xlX2xpYl9kaXIi OyB0aGVuCisrCisrICAgICAgICBzYXZlZF9DUFBGTEFHUz0iJENQUEZMQUdTIgorKyAgICAgICAg Q1BQRkxBR1M9IiRDUFBGTEFHUyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIiCisrCisrICAgICAgICBk bmwgQWRkaXRpb25hbCBwYXRoIGZvciBvbGRlciBPcmFjbGUgaW5zdGFsbGF0aW9ucyAKKysgICAg ICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIyIjsgdGhlbgorKyAgICAgICAgICAg IENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkkb3JhY2xlX2luY2x1ZGVfZGlyMiIKKysgICAgICAgIGZp CisrCisrICAgICAgICAjIEZpZ3VyZSBvdXQgaWYgd2UgYXJlIGJ1aWxkaW5nIG9uIHdpbjMyLgor KyAgICAgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgICAgICAgICptaW5ndzMyKiApIFdJTjMy PXllcyA7OworKyAgICAgICAgICAgICpjeWd3aW4qICkgIFdJTjMyPXllcyA7OworKyAgICAgICAg ICAgICopIFdJTjMyPW5vIDs7CisrICAgICAgICBlc2FjCisrCisrICAgICAgICBpZiB0ZXN0ICIk V0lOMzIiID0gIm5vIgorKyAgICAgICAgdGhlbgorKyAgICAgICAgICAgIG9jaV9saWJzPSItbGNs bnRzaCAtbG5uejExIgorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIG9jaV9saWJzPSItbG9j aSIKKysgICAgICAgIGZpCisrCisrICAgICAgICBzYXZlZF9MREZMQUdTPSIkTERGTEFHUyIKKysg ICAgICAgIHNhdmVkX0xJQlM9IiRMSUJTIgorKyAgICAgICAgb2NpX2xkZmxhZ3M9Ii1MJG9yYWNs ZV9saWJfZGlyIgorKyAgICAgICAgTERGTEFHUz0iJExERkxBR1MgJG9jaV9sZGZsYWdzIgorKyAg ICAgICAgTElCUz0iJExJQlMgJG9jaV9saWJzIgorKworKyAgICAgICAgZG5sCisrICAgICAgICBk bmwgQ2hlY2sgT0NJIGhlYWRlcnMKKysgICAgICAgIGRubAorKyAgICAgICAgQUNfTVNHX0NIRUNL SU5HKFtmb3IgT3JhY2xlIE9DSSBoZWFkZXJzIGluICRvcmFjbGVfaW5jbHVkZV9kaXJdKQorKwor KyAgICAgICAgQUNfTEFOR19QVVNIKEMrKykKKysgICAgICAgIEFDX0NPTVBJTEVfSUZFTFNFKFsK KysgICAgICAgICAgICBBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8b2NpLmg+XV0sCisr ICAgICAgICAgICAgICAgIFtbCisrI2lmIGRlZmluZWQoT0NJX01BSk9SX1ZFUlNJT04pCisrI2lm IE9DSV9NQUpPUl9WRVJTSU9OID09IDEwICYmIE9DSV9NSU5PUl9WRVJTSU9OID09IDIKKysvLyBP cmFjbGUgMTAuMiBkZXRlY3RlZAorKyNlbmRpZgorKyNlbGlmIGRlZmluZWQoT0NJX1Y3X1NZTlRB WCkKKysvLyBPSywgb2xkZXIgT3JhY2xlIGRldGVjdGVkCisrLy8gVE9ETyAtIG1sb3Nrb3Q6IGZp bmQgYmV0dGVyIG1hY3JvIHRvIGNoZWNrIGZvciBvbGRlciB2ZXJzaW9uczsgCisrI2Vsc2UKKysj ICBlcnJvciBPcmFjbGUgb2NpLmggaGVhZGVyIG5vdCBmb3VuZAorKyNlbmRpZgorKyAgICAgICAg ICAgICAgICBdXQorKyAgICAgICAgICAgICldLAorKyAgICAgICAgICAgIFsKKysgICAgICAgICAg ICBPUkFDTEVfT0NJX0NGTEFHUz0iLUkkb3JhY2xlX2luY2x1ZGVfZGlyIgorKworKyAgICAgICAg ICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIyIjsgdGhlbgorKyAgICAgICAgICAg ICAgICBPUkFDTEVfT0NJX0NGTEFHUz0iJE9SQUNMRV9PQ0lfQ0ZMQUdTIC1JJG9yYWNsZV9pbmNs dWRlX2RpcjIiCisrICAgICAgICAgICAgZmkKKysKKysgICAgICAgICAgICBvY2lfaGVhZGVyX2Zv dW5kPSJ5ZXMiCisrICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKKysgICAgICAgICAg ICBdLAorKyAgICAgICAgICAgIFsKKysgICAgICAgICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJubyIK KysgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub3QgZm91bmRdKQorKyAgICAgICAgICAgIF0K KysgICAgICAgICkKKysgICAgICAgIEFDX0xBTkdfUE9QKFtDKytdKQorKyAgICAgICAgCisrICAg ICAgICBkbmwKKysgICAgICAgIGRubCBDaGVjayBPQ0kgbGlicmFyaWVzCisrICAgICAgICBkbmwK KysgICAgICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiOyB0aGVuCisrCisr ICAgICAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgT3JhY2xlIE9DSSBsaWJyYXJpZXMgaW4g JG9yYWNsZV9saWJfZGlyXSkKKysKKysgICAgICAgICAgICBBQ19MQU5HX1BVU0goQysrKQorKyAg ICAgICAgICAgIEFDX0xJTktfSUZFTFNFKFsKKysgICAgICAgICAgICAgICAgQUNfTEFOR19QUk9H UkFNKFtbQCU6QGluY2x1ZGUgPG9jaS5oPl1dLAorKyAgICAgICAgICAgICAgICAgICAgW1sKKytP Q0lFbnYqIGVudmggPSAwOworK09DSUVudkNyZWF0ZSgmZW52aCwgT0NJX0RFRkFVTFQsIDAsIDAs IDAsIDAsIDAsIDApOworK2lmIChlbnZoKSBPQ0lIYW5kbGVGcmVlKGVudmgsIE9DSV9IVFlQRV9F TlYpOworKyAgICAgICAgICAgICAgICAgICAgXV0KKysgICAgICAgICAgICAgICAgKV0sCisrICAg ICAgICAgICAgICAgIFsKKysgICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIkb2Np X2xkZmxhZ3MgJG9jaV9saWJzIgorKyAgICAgICAgICAgICAgICBvY2lfbGliX2ZvdW5kPSJ5ZXMi CisrICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCisrICAgICAgICAgICAgICAg IF0sCisrICAgICAgICAgICAgICAgIFsKKysgICAgICAgICAgICAgICAgb2NpX2xpYl9mb3VuZD0i bm8iCisrICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vdCBmb3VuZF0pCisrICAgICAg ICAgICAgICAgIF0KKysgICAgICAgICAgICApCisrICAgICAgICAgICAgQUNfTEFOR19QT1AoW0Mr K10pCisrICAgICAgICBmaQorKworKyAgICAgICAgQ1BQRkxBR1M9IiRzYXZlZF9DUFBGTEFHUyIK KysgICAgICAgIExERkxBR1M9IiRzYXZlZF9MREZMQUdTIgorKyAgICAgICAgTElCUz0iJHNhdmVk X0xJQlMiCisrICAgIGZpCisrCisrICAgIGRubAorKyAgICBkbmwgQ2hlY2sgcmVxdWlyZWQgdmVy c2lvbiBvZiBPcmFjbGUgaXMgYXZhaWxhYmxlCisrICAgIGRubAorKyAgICBvcmFjbGVfdmVyc2lv bl9yZXE9aWZlbHNlKFskMV0sIFtdLCBbXSwgWyQxXSkKKysKKysgICAgaWYgdGVzdCAiJG9jaV9o ZWFkZXJfZm91bmQiID0gInllcyIgLWEgIiRvY2lfbGliX2ZvdW5kIiA9ICJ5ZXMiIC1hIFwKKysg ICAgICAgIC1uICIkb3JhY2xlX3ZlcnNpb25fcmVxIjsgdGhlbgorKworKyAgICAgICAgb3JhY2xl X3ZlcnNpb25fbWFqb3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01BSk9SX1ZFUlNJT04u KicgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBP Q0lfTUFKT1JfVkVSU0lPTiAgKi8vJyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAorKworKyAgICAgICAgb3JhY2xlX3ZlcnNpb25f bWlub3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01JTk9SX1ZFUlNJT04uKicgXAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBPQ0lfTUlOT1Jf VkVSU0lPTiAgKi8vJyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAn cy8gICpcL1wqLipcKlwvLy8nYAorKworKyAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBPcmFj bGUgT0NJIHZlcnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3JlcV0pCisrCisrICAgICAgICBp ZiB0ZXN0IC1uICIkb3JhY2xlX3ZlcnNpb25fbWFqb3IiIC1hIC1uICQib3JhY2xlX3ZlcnNpb25f bWlub3IiOyB0aGVuCisrCisrICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSIkb3JhY2xl X3ZlcnNpb25fbWFqb3IuJG9yYWNsZV92ZXJzaW9uX21pbm9yIgorKworKyAgICAgICAgICAgIGRu bCBEZWNvbXBvc2UgcmVxdWlyZWQgdmVyc2lvbiBzdHJpbmcgb2YgT3JhY2xlCisrICAgICAgICAg ICAgZG5sIGFuZCBjYWxjdWxhdGUgaXRzIG51bWJlciByZXByZXNlbnRhdGlvbgorKyAgICAgICAg ICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fcmVxIDog J1woW1swLTldXSpcKSdgCisrICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX21pbm9yPWBl eHByICRvcmFjbGVfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLlwoW1swLTldXSpcKSdgCisrCisr ICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX251bWJlcj1gZXhwciAkb3JhY2xlX3ZlcnNp b25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwrICRvcmFjbGVfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMGAKKysKKysgICAg ICAgICAgICBkbmwgQ2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24gCisrICAgICAg ICAgICAgb3JhY2xlX3ZlcnNpb25fbnVtYmVyPWBleHByICRvcmFjbGVfdmVyc2lvbl9tYWpvciBc KiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG9yYWNs ZV92ZXJzaW9uX21pbm9yIFwqIDEwMDBgCisrCisrICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25f Y2hlY2s9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX251bWJlciBcPlw9ICRvcmFjbGVfdmVyc2lvbl9y ZXFfbnVtYmVyYAorKyAgICAgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfdmVyc2lvbl9jaGVjayIg PSAiMSI7IHRoZW4KKysgICAgICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKKysgICAg ICAgICAgICAgICAgQUNfREVGSU5FKEhBVkVfT1JBQ0xFLCBbMV0sIFtEZWZpbmUgdG8gMSBpZiB0 aGUgT3JhY2xlIE9DSSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrICAgICAgICAgICAgZWxzZQor KyAgICAgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCisrICAgICAgICAgICAgICAgIEFD X01TR19FUlJPUihbT3JhY2xlICRPUkFDTEVfT0NJX1ZFUlNJT04gZm91bmQsIGJ1dCByZXF1aXJl ZCB2ZXJzaW9uIGlzICRvcmFjbGVfdmVyc2lvbl9yZXFdKQorKyAgICAgICAgICAgIGZpCisrICAg ICAgICBlbHNlCisrICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSJVTktOT1dOIgorKyAg ICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKKysgICAgICAgICAgICBBQ19NU0dfV0FSTihb T3JhY2xlIHZlcnNpb24gdW5rbm93biwgcHJvYmFibHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBh dmFpbGFibGVdKQorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysgICAgQUNfU1VCU1QoW09SQUNM RV9PQ0lfVkVSU0lPTl0pCisrICAgIEFDX1NVQlNUKFtPUkFDTEVfT0NJX0NGTEFHU10pCisrICAg IEFDX1NVQlNUKFtPUkFDTEVfT0NJX0xERkxBR1NdKQorK10pCitkaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZp Zy9heF9wb3N0Z3Jlc3FsLm00CistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X3Bvc3Rn cmVzcWwubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMu MC4wX3RyZXAzMDAvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQJMjAxMC0wMS0yMyAxMzoyNzowNC4w MDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsMTcxIEBACisrZG5sICRJZDogYXhfcG9zdGdyZXNx bC5tNCx2IDEuMyAyMDA3LzA2LzIzIDAxOjUxOjIyIG1sb3Nrb3QgRXhwICQKKytkbmwKKytkbmwg QHN5bm9wc2lzIEFYX0xJQl9QT1NUR1JFU1FMKFtNSU5JTVVNLVZFUlNJT05dKQorK2RubAorK2Ru bCBUaGlzIG1hY3JvIHByb3ZpZGVzIHRlc3RzIG9mIGF2YWlsYWJpbGl0eSBvZiBQb3N0Z3JlU1FM ICdsaWJwcScgbGlicmFyeQorK2RubCBvZiBwYXJ0aWN1bGFyIHZlcnNpb24gb3IgbmV3ZXIuCisr ZG5sIAorK2RubCBBWF9MSUJfUE9TVEdSRVNRTCBtYWNybyB0YWtlcyBvbmx5IG9uZSBhcmd1bWVu dCB3aGljaCBpcyBvcHRpb25hbC4gSWYgdGhlcmUgaXMgbm8gCisrZG5sIHJlcXVpcmVkIHZlcnNp b24gcGFzc2VkLCB0aGVuIG1hY3JvIGRvZXMgbm90IHJ1biB2ZXJzaW9uIHRlc3QuCisrZG5sCisr ZG5sIFRoZSAtLXdpdGgtcG9zdGdyZXNxbCBvcHRpb24gdGFrZXMgb25lIG9mIHRocmVlIHBvc3Np YmxlIHZhbHVlczoKKytkbmwgbm8gICAtIGRvIG5vdCBjaGVjayBmb3IgUG9zdGdyZVNRTCBjbGll bnQgbGlicmFyeQorK2RubCB5ZXMgIC0gZG8gY2hlY2sgZm9yIFBvc3RncmVTUUwgbGlicmFyeSBp biBzdGFuZGFyZCBsb2NhdGlvbnMKKytkbmwgICAgICAgIChwZ19jb25maWcgc2hvdWxkIGJlIGlu IHRoZSBQQVRIKQorK2RubCBwYXRoIC0gY29tcGxldGUgcGF0aCB0byBwZ19jb25maWcgdXRpbGl0 eSwgdXNlIHRoaXMgb3B0aW9uCisrZG5sICAgICAgICBpZiBwZ19jb25maWcgY2FuJ3QgYmUgZm91 bmQgaW4gdGhlIFBBVEgKKytkbmwKKytkbmwgVGhpcyBtYWNybyBjYWxsczoKKytkbmwKKytkbmwg ICBBQ19TVUJTVChQT1NUR1JFU1FMX0NGTEFHUykKKytkbmwgICBBQ19TVUJTVChQT1NUR1JFU1FM X0xERkxBR1MpCisrZG5sICAgQUNfU1VCU1QoUE9TVEdSRVNRTF9WRVJTSU9OKQorK2RubAorK2Ru bCBBbmQgc2V0czoKKytkbmwKKytkbmwgICBIQVZFX1BPU1RHUkVTUUwKKytkbmwKKytkbmwgQGNh dGVnb3J5IEluc3RhbGxlZFBhY2thZ2VzCisrZG5sIEBjYXRlZ29yeSBDeHgKKytkbmwgQGF1dGhv ciBNYXRldXN6IExvc2tvdCA8bWF0ZXVzekBsb3Nrb3QubmV0PgorK2RubCBAdmVyc2lvbiAkRGF0 ZTogMjAwNy8wNi8yMyAwMTo1MToyMiAkCisrZG5sIEBsaWNlbnNlIEFsbFBlcm1pc3NpdmUKKytk bmwKKytkbmwgJElkOiBheF9wb3N0Z3Jlc3FsLm00LHYgMS4zIDIwMDcvMDYvMjMgMDE6NTE6MjIg bWxvc2tvdCBFeHAgJAorK2RubAorK0FDX0RFRlVOKFtBWF9MSUJfUE9TVEdSRVNRTF0sCisrWwor KyAgICBBQ19BUkdfV0lUSChbcG9zdGdyZXNxbF0sCisrICAgICAgICBBQ19IRUxQX1NUUklORyhb LS13aXRoLXBvc3RncmVzcWw9QDw6QEFSR0A6PkBdLAorKyAgICAgICAgICAgIFt1c2UgUG9zdGdy ZVNRTCBsaWJyYXJ5IEA8OkBkZWZhdWx0PXllc0A6PkAsIG9wdGlvbmFsbHkgc3BlY2lmeSBwYXRo IHRvIHBnX2NvbmZpZ10KKysgICAgICAgICksCisrICAgICAgICBbCisrCVBPU1RHUkVTUUxfaW5j X2NoZWNrPSIkd2l0aF9wb3N0Z3Jlc3FsL2luY2x1ZGUiCisrICAgICAgICBpZiB0ZXN0ICIkd2l0 aHZhbCIgPSAibm8iOyB0aGVuCisrICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJubyIKKysg ICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KKysgICAgICAgICAgICB3 YW50X3Bvc3RncmVzcWw9InllcyIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICB3YW50X3Bv c3RncmVzcWw9InllcyIKKysgICAgICAgICAgICBQR19DT05GSUc9IiR3aXRodmFsIgorKyAgICAg ICAgZmkKKysgICAgICAgIF0sCisrICAgICAgICBbd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCisrCVBP U1RHUkVTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9sb2NhbCAvb3B0Il0KKysgICAg KQorKworKyAgICBQT1NUR1JFU1FMX0NGTEFHUz0iIgorKyAgICBQT1NUR1JFU1FMX0xERkxBR1M9 IiIKKysgICAgUE9TVEdSRVNRTF9QT1NUR1JFU1FMPSIiCisrCisrICAgIGRubAorKyAgICBkbmwg Q2hlY2sgUG9zdGdyZVNRTCBsaWJyYXJpZXMgKGxpYnBxKQorKyAgICBkbmwKKysgICAgCisrICAg IGlmIHRlc3QgIiR3YW50X3Bvc3RncmVzcWwiID0gInllcyI7IHRoZW4KKysKKysgICAgICAgIGlm IHRlc3QgLXogIiRQR19DT05GSUciIC1vIHRlc3Q7IHRoZW4KKysgICAgICAgICAgICBBQ19QQVRI X1BST0coW1BHX0NPTkZJR10sIFtwZ19jb25maWddLCBbXSkKKysgICAgICAgIGZpCisrCisrICAg ICAgICBpZiB0ZXN0ICEgLXggIiRQR19DT05GSUciOyB0aGVuCisrICAgICAgICAgICAgQUNfTVNH X0VSUk9SKFskUEdfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVh YmxlIGZpbGVdKQorKyAgICAgICAgICAgIFBHX0NPTkZJRz0ibm8iCisrICAgICAgICAgICAgZm91 bmRfcG9zdGdyZXNxbD0ibm8iCisrICAgICAgICBmaQorKworKyAgICAgICAgaWYgdGVzdCAiJFBH X0NPTkZJRyIgIT0gIm5vIjsgdGhlbgorKyAgICAgICAgICAgICMKKysgICAgICAgICAgICAjIExv b2sgZm9yIFBvc3RncmVzcWwgQyBBUEkgaGVhZGVycworKyAgICAgICAgICAgICMKKysgICAgICAg ICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5XSkK KysgICAgICAgICAgICBQT1NUR1JFU1FMX2luY2Rpcj0KKysgICAgICAgICAgICBmb3IgcG9zdGdy ZXNxbF9pbmNfZGlyIGluICRQT1NUR1JFU1FMX2luY19jaGVjaworKyAgICAgICAgICAgIGRvCisr ICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRwb3N0Z3Jlc3FsX2luY19kaXIiIFwKKysgICAg ICAgICAgICAgICAgJiYgdGVzdCAtZiAiJHBvc3RncmVzcWxfaW5jX2Rpci9wb3N0Z3Jlc19leHQu aCIKKysgICAgICAgICAgICAgICAgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgUE9TVEdSRVNR TF9pbmNkaXI9JHBvc3RncmVzcWxfaW5jX2RpcgorKyAgICAgICAgICAgICAgICAgICAgYnJlYWsK KysgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICBkb25lCisrCisrICAgICAgICAgICAg aWYgdGVzdCAteiAiJFBPU1RHUkVTUUxfaW5jZGlyIgorKyAgICAgICAgICAgIHRoZW4KKysgICAg ICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCB0aGUgUG9zdGdyZXNxbCBpbmNs dWRlIGRpciBpbiAnJFBPU1RHUkVTUUxfaW5jX2NoZWNrJ10pCisrICAgICAgICAgICAgZmkKKysK KysgICAgICAgICAgICBjYXNlICIkUE9TVEdSRVNRTF9pbmNkaXIiIGluCisrICAgICAgICAgICAg ICAgIC8qICkgOzsKKysgICAgICAgICAgICAgICAgKiApICBBQ19NU0dfRVJST1IoW1RoZSBQb3N0 Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3QgYmUgYW4g YWJzb2x1dGUgcGF0aC5dKSA7OworKyAgICAgICAgICAgIGVzYWMKKysKKysgICAgICAgICAgICBB Q19NU0dfUkVTVUxUKFskUE9TVEdSRVNRTF9pbmNkaXJdKQorKworKyAgICAgICAgICAgIGlmIHRl c3QgIiRQT1NUR1JFU1FMX2luY2RpciIgPSAiL3Vzci9pbmNsdWRlIjsgdGhlbgorKyAgICAgICAg ICAgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKKysgICAgICAgICAgICBlbHNlCisrICAgICAgICAg ICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iLUkke1BPU1RHUkVTUUxfaW5jZGlyfSIKKysgICAgICAg ICAgICBmaQorKworKyAgICAgICAgICAgIFBPU1RHUkVTUUxfTERGTEFHUz0iLUxgJFBHX0NPTkZJ RyAtLWxpYmRpcmAgLWxwcSIKKysKKysgICAgICAgICAgICBQT1NUR1JFU1FMX1ZFUlNJT049YCRQ R19DT05GSUcgLS12ZXJzaW9uIHwgc2VkIC1lICdzI1Bvc3RncmVTUUwgIyMnYAorKworKyAgICAg ICAgICAgIEFDX0RFRklORShbSEFWRV9QT1NUR1JFU1FMXSwgWzFdLCBbRGVmaW5lIHRvIDEgaWYg UG9zdGdyZVNRTCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJsZV0pCisrICAgICAgICAgICAgCisrICAg ICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ieWVzIgorKyAgICAgICAgZWxzZQorKyAgICAgICAg ICAgIGZvdW5kX3Bvc3RncmVzcWw9Im5vIgorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysgICAg ZG5sCisrICAgIGRubCBDaGVjayBpZiByZXF1aXJlZCB2ZXJzaW9uIG9mIFBvc3RncmVTUUwgaXMg YXZhaWxhYmxlCisrICAgIGRubAorKyAgICAKKysKKysgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3Jl cT1pZmVsc2UoWyQxXSwgW10sIFtdLCBbJDFdKQorKworKyAgICBpZiB0ZXN0ICIkZm91bmRfcG9z dGdyZXNxbCIgPSAieWVzIiAtYSAtbiAiJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEiOyB0aGVuCisr CisrICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIFBvc3RncmVTUUwgdmVyc2lvbiBpcyA+PSAk cG9zdGdyZXNxbF92ZXJzaW9uX3JlcV0pCisrCisrICAgICAgICBkbmwgRGVjb21wb3NlIHJlcXVp cmVkIHZlcnNpb24gc3RyaW5nIG9mIFBvc3RncmVTUUwKKysgICAgICAgIGRubCBhbmQgY2FsY3Vs YXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lv bl9yZXFfbWFqb3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnXChbWzAtOV1dKlwp J2AKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJHBvc3RncmVz cWxfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLlwoW1swLTldXSpcKSdgCisrICAgICAgICBwb3N0 Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIDog J1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKKysgICAgICAgIGlmIHRlc3QgIngk cG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybyIgPSAieCI7IHRoZW4KKysgICAgICAgICAgICBw b3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPSIwIgorKyAgICAgICAgZmkKKysKKysgICAgICAg IHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25f cmVxX21ham9yIFwqIDEwMDAwMDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMCBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNy b2AKKysKKysgICAgICAgIGRubCBEZWNvbXBvc2UgdmVyc2lvbiBzdHJpbmcgb2YgaW5zdGFsbGVk IFBvc3RncmVTUUwKKysgICAgICAgIGRubCBhbmQgY2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVz ZW50YXRpb24KKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9tYWpvcj1gZXhwciAkUE9TVEdS RVNRTF9WRVJTSU9OIDogJ1woW1swLTldXSpcKSdgCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNp b25fbWlub3I9YGV4cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6ICdbWzAtOV1dKlwuXChbWzAtOV1d KlwpJ2AKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz1gZXhwciAkUE9TVEdSRVNR TF9WRVJTSU9OIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKKysgICAgICAg IGlmIHRlc3QgIngkcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvIiA9ICJ4IjsgdGhlbgorKyAgICAg ICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz0iMCIKKysgICAgICAgIGZpCisrCisrICAg ICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25f bWFqb3IgXCogMTAwMDAwMCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc KyAkcG9zdGdyZXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9taWNyb2AKKysKKysgICAg ICAgIHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjaz1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX251 bWJlciBcPlw9ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJlcmAKKysgICAgICAgIGlmIHRl c3QgIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCisrICAgICAgICAgICAg QUNfTVNHX1JFU1VMVChbeWVzXSkKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBBQ19NU0df UkVTVUxUKFtub10pCisrICAgICAgICBmaQorKyAgICBmaQorKworKyAgICBBQ19TVUJTVChbUE9T VEdSRVNRTF9WRVJTSU9OXSkKKysgICAgQUNfU1VCU1QoW1BPU1RHUkVTUUxfQ0ZMQUdTXSkKKysg ICAgQUNfU1VCU1QoW1BPU1RHUkVTUUxfTERGTEFHU10pCisrXSkKK2RpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9jb25maWcvY29uZmlnLmd1ZXNzIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcv Y29uZmlnLmd1ZXNzCistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NvbmZpZy5ndWVzcwkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9jb25maWcvY29uZmlnLmd1ZXNzCTIwMTEtMDItMDggMjI6Mzk6NTUuMDAwMDAwMDAwICswMTAw CitAQCAtMCwwICsxLDE1MDEgQEAKKysjISAvYmluL3NoCisrIyBBdHRlbXB0IHRvIGd1ZXNzIGEg Y2Fub25pY2FsIHN5c3RlbSBuYW1lLgorKyMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5 OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCisrIyAgIDIwMDAsIDIwMDEsIDIwMDIs IDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkKKysjICAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrdGltZXN0YW1wPScyMDA5LTExLTIwJworKworKyMg VGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkgaXQKKysjIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisrIyBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO VQorKyMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUg RnJlZSBTb2Z0d2FyZQorKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0g RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKKysjIDAyMTEwLTEzMDEsIFVTQS4KKysjCisrIyBBcyBh IHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYg eW91CisrIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNv bnRhaW5zIGEKKysjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwg eW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisrIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMg dGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisrCisrCisrIyBPcmln aW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIuICBQbGVhc2Ugc2VuZCBwYXRjaGVzIChjb250 ZXh0CisrIyBkaWZmIGZvcm1hdCkgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+IGFuZCBpbmNs dWRlIGEgQ2hhbmdlTG9nCisrIyBlbnRyeS4KKysjCisrIyBUaGlzIHNjcmlwdCBhdHRlbXB0cyB0 byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0gbmFtZSBzaW1pbGFyIHRvCisrIyBjb25maWcuc3Vi LiAgSWYgaXQgc3VjY2VlZHMsIGl0IHByaW50cyB0aGUgc3lzdGVtIG5hbWUgb24gc3Rkb3V0LCBh bmQKKysjIGV4aXRzIHdpdGggMC4gIE90aGVyd2lzZSwgaXQgZXhpdHMgd2l0aCAxLgorKyMKKysj IFlvdSBjYW4gZ2V0IHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIHNjcmlwdCBmcm9tOgorKyMg aHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9w bGFpbjtmPWNvbmZpZy5ndWVzcztoYj1IRUFECisrCisrbWU9YGVjaG8gIiQwIiB8IHNlZCAtZSAn cywuKi8sLCdgCisrCisrdXNhZ2U9IlwKKytVc2FnZTogJDAgW09QVElPTl0KKysKKytPdXRwdXQg dGhlIGNvbmZpZ3VyYXRpb24gbmFtZSBvZiB0aGUgc3lzdGVtIFxgJG1lJyBpcyBydW4gb24uCisr CisrT3BlcmF0aW9uIG1vZGVzOgorKyAgLWgsIC0taGVscCAgICAgICAgIHByaW50IHRoaXMgaGVs cCwgdGhlbiBleGl0CisrICAtdCwgLS10aW1lLXN0YW1wICAgcHJpbnQgZGF0ZSBvZiBsYXN0IG1v ZGlmaWNhdGlvbiwgdGhlbiBleGl0CisrICAtdiwgLS12ZXJzaW9uICAgICAgcHJpbnQgdmVyc2lv biBudW1iZXIsIHRoZW4gZXhpdAorKworK1JlcG9ydCBidWdzIGFuZCBwYXRjaGVzIHRvIDxjb25m aWctcGF0Y2hlc0BnbnUub3JnPi4iCisrCisrdmVyc2lvbj0iXAorK0dOVSBjb25maWcuZ3Vlc3Mg KCR0aW1lc3RhbXApCisrCisrT3JpZ2luYWxseSB3cml0dGVuIGJ5IFBlciBCb3RobmVyLgorK0Nv cHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5 OSwgMjAwMCwgMjAwMSwKKysyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworK1RoaXMgaXMgZnJlZSBzb2Z0d2Fy ZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PCisr d2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuIgorKworK2hlbHA9IgorK1RyeSBcYCRtZSAtLWhlbHAnIGZvciBt b3JlIGluZm9ybWF0aW9uLiIKKysKKysjIFBhcnNlIGNvbW1hbmQgbGluZQorK3doaWxlIHRlc3Qg JCMgLWd0IDAgOyBkbworKyAgY2FzZSAkMSBpbgorKyAgICAtLXRpbWUtc3RhbXAgfCAtLXRpbWUq IHwgLXQgKQorKyAgICAgICBlY2hvICIkdGltZXN0YW1wIiA7IGV4aXQgOzsKKysgICAgLS12ZXJz aW9uIHwgLXYgKQorKyAgICAgICBlY2hvICIkdmVyc2lvbiIgOyBleGl0IDs7CisrICAgIC0taGVs cCB8IC0taCogfCAtaCApCisrICAgICAgIGVjaG8gIiR1c2FnZSI7IGV4aXQgOzsKKysgICAgLS0g KSAgICAgIyBTdG9wIG9wdGlvbiBwcm9jZXNzaW5nCisrICAgICAgIHNoaWZ0OyBicmVhayA7Owor KyAgICAtICkJIyBVc2Ugc3RkaW4gYXMgaW5wdXQuCisrICAgICAgIGJyZWFrIDs7CisrICAgIC0q ICkKKysgICAgICAgZWNobyAiJG1lOiBpbnZhbGlkIG9wdGlvbiAkMSRoZWxwIiA+JjIKKysgICAg ICAgZXhpdCAxIDs7CisrICAgICogKQorKyAgICAgICBicmVhayA7OworKyAgZXNhYworK2RvbmUK KysKKytpZiB0ZXN0ICQjICE9IDA7IHRoZW4KKysgIGVjaG8gIiRtZTogdG9vIG1hbnkgYXJndW1l bnRzJGhlbHAiID4mMgorKyAgZXhpdCAxCisrZmkKKysKKyt0cmFwICdleGl0IDEnIDEgMiAxNQor KworKyMgQ0NfRk9SX0JVSUxEIC0tIGNvbXBpbGVyIHVzZWQgYnkgdGhpcyBzY3JpcHQuIE5vdGUg dGhhdCB0aGUgdXNlIG9mIGEKKysjIGNvbXBpbGVyIHRvIGFpZCBpbiBzeXN0ZW0gZGV0ZWN0aW9u IGlzIGRpc2NvdXJhZ2VkIGFzIGl0IHJlcXVpcmVzCisrIyB0ZW1wb3JhcnkgZmlsZXMgdG8gYmUg Y3JlYXRlZCBhbmQsIGFzIHlvdSBjYW4gc2VlIGJlbG93LCBpdCBpcyBhCisrIyBoZWFkYWNoZSB0 byBkZWFsIHdpdGggaW4gYSBwb3J0YWJsZSBmYXNoaW9uLgorKworKyMgSGlzdG9yaWNhbGx5LCBg Q0NfRk9SX0JVSUxEJyB1c2VkIHRvIGJlIG5hbWVkIGBIT1NUX0NDJy4gV2Ugc3RpbGwKKysjIHVz ZSBgSE9TVF9DQycgaWYgZGVmaW5lZCwgYnV0IGl0IGlzIGRlcHJlY2F0ZWQuCisrCisrIyBQb3J0 YWJsZSB0bXAgZGlyZWN0b3J5IGNyZWF0aW9uIGluc3BpcmVkIGJ5IHRoZSBBdXRvY29uZiB0ZWFt LgorKworK3NldF9jY19mb3JfYnVpbGQ9JworK3RyYXAgImV4aXRjb2RlPVwkPzsgKHJtIC1mIFwk dG1wZmlsZXMgMj4vZGV2L251bGw7IHJtZGlyIFwkdG1wIDI+L2Rldi9udWxsKSAmJiBleGl0IFwk ZXhpdGNvZGUiIDAgOworK3RyYXAgInJtIC1mIFwkdG1wZmlsZXMgMj4vZGV2L251bGw7IHJtZGly IFwkdG1wIDI+L2Rldi9udWxsOyBleGl0IDEiIDEgMiAxMyAxNSA7CisrOiAke1RNUERJUj0vdG1w fSA7CisrIHsgdG1wPWAodW1hc2sgMDc3ICYmIG1rdGVtcCAtZCAiJFRNUERJUi9jZ1hYWFhYWCIp IDI+L2Rldi9udWxsYCAmJiB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0IC1kICIkdG1wIiA7IH0gfHwK KysgeyB0ZXN0IC1uICIkUkFORE9NIiAmJiB0bXA9JFRNUERJUi9jZyQkLSRSQU5ET00gJiYgKHVt YXNrIDA3NyAmJiBta2RpciAkdG1wKSA7IH0gfHwKKysgeyB0bXA9JFRNUERJUi9jZy0kJCAmJiAo dW1hc2sgMDc3ICYmIG1rZGlyICR0bXApICYmIGVjaG8gIldhcm5pbmc6IGNyZWF0aW5nIGluc2Vj dXJlIHRlbXAgZGlyZWN0b3J5IiA+JjIgOyB9IHx8CisrIHsgZWNobyAiJG1lOiBjYW5ub3QgY3Jl YXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAkVE1QRElSIiA+JjIgOyBleGl0IDEgOyB9IDsK KytkdW1teT0kdG1wL2R1bW15IDsKKyt0bXBmaWxlcz0iJGR1bW15LmMgJGR1bW15Lm8gJGR1bW15 LnJlbCAkZHVtbXkiIDsKKytjYXNlICRDQ19GT1JfQlVJTEQsJEhPU1RfQ0MsJENDIGluCisrICws KSAgICBlY2hvICJpbnQgeDsiID4gJGR1bW15LmMgOworKwlmb3IgYyBpbiBjYyBnY2MgYzg5IGM5 OSA7IGRvCisrCSAgaWYgKCRjIC1jIC1vICRkdW1teS5vICRkdW1teS5jKSA+L2Rldi9udWxsIDI+ JjEgOyB0aGVuCisrCSAgICAgQ0NfRk9SX0JVSUxEPSIkYyI7IGJyZWFrIDsKKysJICBmaSA7Cisr CWRvbmUgOworKwlpZiB0ZXN0IHgiJENDX0ZPUl9CVUlMRCIgPSB4IDsgdGhlbgorKwkgIENDX0ZP Ul9CVUlMRD1ub19jb21waWxlcl9mb3VuZCA7CisrCWZpCisrCTs7CisrICwsKikgICBDQ19GT1Jf QlVJTEQ9JENDIDs7CisrICwqLCopICBDQ19GT1JfQlVJTEQ9JEhPU1RfQ0MgOzsKKytlc2FjIDsg c2V0X2NjX2Zvcl9idWlsZD0gOycKKysKKysjIFRoaXMgaXMgbmVlZGVkIHRvIGZpbmQgdW5hbWUg b24gYSBQeXJhbWlkIE9TeCB3aGVuIHJ1biBpbiB0aGUgQlNEIHVuaXZlcnNlLgorKyMgKGdoYXpp QG5vYy5ydXRnZXJzLmVkdSAxOTk0LTA4LTI0KQorK2lmICh0ZXN0IC1mIC8uYXR0YmluL3VuYW1l KSA+L2Rldi9udWxsIDI+JjEgOyB0aGVuCisrCVBBVEg9JFBBVEg6Ly5hdHRiaW4gOyBleHBvcnQg UEFUSAorK2ZpCisrCisrVU5BTUVfTUFDSElORT1gKHVuYW1lIC1tKSAyPi9kZXYvbnVsbGAgfHwg VU5BTUVfTUFDSElORT11bmtub3duCisrVU5BTUVfUkVMRUFTRT1gKHVuYW1lIC1yKSAyPi9kZXYv bnVsbGAgfHwgVU5BTUVfUkVMRUFTRT11bmtub3duCisrVU5BTUVfU1lTVEVNPWAodW5hbWUgLXMp IDI+L2Rldi9udWxsYCAgfHwgVU5BTUVfU1lTVEVNPXVua25vd24KKytVTkFNRV9WRVJTSU9OPWAo dW5hbWUgLXYpIDI+L2Rldi9udWxsYCB8fCBVTkFNRV9WRVJTSU9OPXVua25vd24KKysKKysjIE5v dGU6IG9yZGVyIGlzIHNpZ25pZmljYW50IC0gdGhlIGNhc2UgYnJhbmNoZXMgYXJlIG5vdCBleGNs dXNpdmUuCisrCisrY2FzZSAiJHtVTkFNRV9NQUNISU5FfToke1VOQU1FX1NZU1RFTX06JHtVTkFN RV9SRUxFQVNFfToke1VOQU1FX1ZFUlNJT059IiBpbgorKyAgICAqOk5ldEJTRDoqOiopCisrCSMg TmV0QlNEIChuYnNkKSB0YXJnZXRzIHNob3VsZCAod2hlcmUgYXBwbGljYWJsZSkgbWF0Y2ggb25l IG9yCisrCSMgbW9yZSBvZiB0aGUgdHVwcGxlczogKi0qLW5ldGJzZGVsZiosICotKi1uZXRic2Rh b3V0KiwKKysJIyAqLSotbmV0YnNkZWNvZmYqIGFuZCAqLSotbmV0YnNkKi4gIEZvciB0YXJnZXRz IHRoYXQgcmVjZW50bHkKKysJIyBzd2l0Y2hlZCB0byBFTEYsICotKi1uZXRic2QqIHdvdWxkIHNl bGVjdCB0aGUgb2xkCisrCSMgb2JqZWN0IGZpbGUgZm9ybWF0LiAgVGhpcyBwcm92aWRlcyBib3Ro IGZvcndhcmQKKysJIyBjb21wYXRpYmlsaXR5IGFuZCBhIGNvbnNpc3RlbnQgbWVjaGFuaXNtIGZv ciBzZWxlY3RpbmcgdGhlCisrCSMgb2JqZWN0IGZpbGUgZm9ybWF0LgorKwkjCisrCSMgTm90ZTog TmV0QlNEIGRvZXNuJ3QgcGFydGljdWxhcmx5IGNhcmUgYWJvdXQgdGhlIHZlbmRvcgorKwkjIHBv cnRpb24gb2YgdGhlIG5hbWUuICBXZSBhbHdheXMgc2V0IGl0IHRvICJ1bmtub3duIi4KKysJc3lz Y3RsPSJzeXNjdGwgLW4gaHcubWFjaGluZV9hcmNoIgorKwlVTkFNRV9NQUNISU5FX0FSQ0g9YCgv c2Jpbi8kc3lzY3RsIDI+L2Rldi9udWxsIHx8IFwKKysJICAgIC91c3Ivc2Jpbi8kc3lzY3RsIDI+ L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bilgCisrCWNhc2UgIiR7VU5BTUVfTUFDSElORV9BUkNI fSIgaW4KKysJICAgIGFybWViKSBtYWNoaW5lPWFybWViLXVua25vd24gOzsKKysJICAgIGFybSop IG1hY2hpbmU9YXJtLXVua25vd24gOzsKKysJICAgIHNoM2VsKSBtYWNoaW5lPXNobC11bmtub3du IDs7CisrCSAgICBzaDNlYikgbWFjaGluZT1zaC11bmtub3duIDs7CisrCSAgICBzaDVlbCkgbWFj aGluZT1zaDVsZS11bmtub3duIDs7CisrCSAgICAqKSBtYWNoaW5lPSR7VU5BTUVfTUFDSElORV9B UkNIfS11bmtub3duIDs7CisrCWVzYWMKKysJIyBUaGUgT3BlcmF0aW5nIFN5c3RlbSBpbmNsdWRp bmcgb2JqZWN0IGZvcm1hdCwgaWYgaXQgaGFzIHN3aXRjaGVkCisrCSMgdG8gRUxGIHJlY2VudGx5 LCBvciB3aWxsIGluIHRoZSBmdXR1cmUuCisrCWNhc2UgIiR7VU5BTUVfTUFDSElORV9BUkNIfSIg aW4KKysJICAgIGFybSp8aTM4NnxtNjhrfG5zMzJrfHNoMyp8c3BhcmN8dmF4KQorKwkJZXZhbCAk c2V0X2NjX2Zvcl9idWlsZAorKwkJaWYgZWNobyBfX0VMRl9fIHwgJENDX0ZPUl9CVUlMRCAtRSAt IDI+L2Rldi9udWxsIFwKKysJCQl8IGdyZXAgLXEgX19FTEZfXworKwkJdGhlbgorKwkJICAgICMg T25jZSBhbGwgdXRpbGl0aWVzIGNhbiBiZSBFQ09GRiAobmV0YnNkZWNvZmYpIG9yIGEub3V0IChu ZXRic2Rhb3V0KS4KKysJCSAgICAjIFJldHVybiBuZXRic2QgZm9yIGVpdGhlci4gIEZJWD8KKysJ CSAgICBvcz1uZXRic2QKKysJCWVsc2UKKysJCSAgICBvcz1uZXRic2RlbGYKKysJCWZpCisrCQk7 OworKwkgICAgKikKKysJICAgICAgICBvcz1uZXRic2QKKysJCTs7CisrCWVzYWMKKysJIyBUaGUg T1MgcmVsZWFzZQorKwkjIERlYmlhbiBHTlUvTmV0QlNEIG1hY2hpbmVzIGhhdmUgYSBkaWZmZXJl bnQgdXNlcmxhbmQsIGFuZAorKwkjIHRodXMsIG5lZWQgYSBkaXN0aW5jdCB0cmlwbGV0LiBIb3dl dmVyLCB0aGV5IGRvIG5vdCBuZWVkCisrCSMga2VybmVsIHZlcnNpb24gaW5mb3JtYXRpb24sIHNv IGl0IGNhbiBiZSByZXBsYWNlZCB3aXRoIGEKKysJIyBzdWl0YWJsZSB0YWcsIGluIHRoZSBzdHls ZSBvZiBsaW51eC1nbnUuCisrCWNhc2UgIiR7VU5BTUVfVkVSU0lPTn0iIGluCisrCSAgICBEZWJp YW4qKQorKwkJcmVsZWFzZT0nLWdudScKKysJCTs7CisrCSAgICAqKQorKwkJcmVsZWFzZT1gZWNo byAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLV9dLiovXC4vJ2AKKysJCTs7CisrCWVzYWMK KysJIyBTaW5jZSBDUFVfVFlQRS1NQU5VRkFDVFVSRVItS0VSTkVMLU9QRVJBVElOR19TWVNURU06 CisrCSMgY29udGFpbnMgcmVkdW5kYW50IGluZm9ybWF0aW9uLCB0aGUgc2hvcnRlciBmb3JtOgor KwkjIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1PUEVSQVRJTkdfU1lTVEVNIGlzIHVzZWQuCisrCWVj aG8gIiR7bWFjaGluZX0tJHtvc30ke3JlbGVhc2V9IgorKwlleGl0IDs7CisrICAgICo6T3BlbkJT RDoqOiopCisrCVVOQU1FX01BQ0hJTkVfQVJDSD1gYXJjaCB8IHNlZCAncy9PcGVuQlNELi8vJ2AK KysJZWNobyAke1VOQU1FX01BQ0hJTkVfQVJDSH0tdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxF QVNFfQorKwlleGl0IDs7CisrICAgICo6ZWtrb0JTRDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNI SU5FfS11bmtub3duLWVra29ic2Qke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgKjpT b2xpZEJTRDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXNvbGlkYnNkJHtV TkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIG1hY3BwYzpNaXJCU0Q6KjoqKQorKwllY2hv IHBvd2VycGMtdW5rbm93bi1taXJic2Qke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAg KjpNaXJCU0Q6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1taXJic2Qke1VO QU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgYWxwaGE6T1NGMToqOiopCisrCWNhc2UgJFVO QU1FX1JFTEVBU0UgaW4KKysJKjQuMCkKKysJCVVOQU1FX1JFTEVBU0U9YC91c3Ivc2Jpbi9zaXpl ciAtdiB8IGF3ayAne3ByaW50ICQzfSdgCisrCQk7OworKwkqNS4qKQorKwkgICAgICAgIFVOQU1F X1JFTEVBU0U9YC91c3Ivc2Jpbi9zaXplciAtdiB8IGF3ayAne3ByaW50ICQ0fSdgCisrCQk7Owor Kwllc2FjCisrCSMgQWNjb3JkaW5nIHRvIENvbXBhcSwgL3Vzci9zYmluL3BzcmluZm8gaGFzIGJl ZW4gYXZhaWxhYmxlIG9uCisrCSMgT1NGLzEgYW5kIFRydTY0IHN5c3RlbXMgcHJvZHVjZWQgc2lu Y2UgMTk5NS4gIEkgaG9wZSB0aGF0CisrCSMgY292ZXJzIG1vc3Qgc3lzdGVtcyBydW5uaW5nIHRv ZGF5LiAgVGhpcyBjb2RlIHBpcGVzIHRoZSBDUFUKKysJIyB0eXBlcyB0aHJvdWdoIGhlYWQgLW4g MSwgc28gd2Ugb25seSBkZXRlY3QgdGhlIHR5cGUgb2YgQ1BVIDAuCisrCUFMUEhBX0NQVV9UWVBF PWAvdXNyL3NiaW4vcHNyaW5mbyAtdiB8IHNlZCAtbiAtZSAncy9eICBUaGUgYWxwaGEgXCguKlwp IHByb2Nlc3Nvci4qJC9cMS9wJyB8IGhlYWQgLW4gMWAKKysJY2FzZSAiJEFMUEhBX0NQVV9UWVBF IiBpbgorKwkgICAgIkVWNCAoMjEwNjQpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7Owor KwkgICAgIkVWNC41ICgyMTA2NCkiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGEiIDs7CisrCSAg ICAiTENBNCAoMjEwNjYvMjEwNjgpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7OworKwkg ICAgIkVWNSAoMjExNjQpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY1IiA7OworKwkgICAg IkVWNS42ICgyMTE2NEEpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY1NiIgOzsKKysJICAg ICJFVjUuNiAoMjExNjRQQykiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFwY2E1NiIgOzsKKysJ ICAgICJFVjUuNyAoMjExNjRQQykiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFwY2E1NyIgOzsK KysJICAgICJFVjYgKDIxMjY0KSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NiIgOzsKKysJ ICAgICJFVjYuNyAoMjEyNjRBKSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NjciIDs7Cisr CSAgICAiRVY2LjhDQiAoMjEyNjRDKSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NjgiIDs7 CisrCSAgICAiRVY2LjhBTCAoMjEyNjRCKSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2Njgi IDs7CisrCSAgICAiRVY2LjhDWCAoMjEyNjREKSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2 NjgiIDs7CisrCSAgICAiRVY2LjlBICgyMTI2NC9FVjY5QSkiKQorKwkJVU5BTUVfTUFDSElORT0i YWxwaGFldjY5IiA7OworKwkgICAgIkVWNyAoMjEzNjQpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFs cGhhZXY3IiA7OworKwkgICAgIkVWNy45ICgyMTM2NEEpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFs cGhhZXY3OSIgOzsKKysJZXNhYworKwkjIEEgUG4ubiB2ZXJzaW9uIGlzIGEgcGF0Y2hlZCB2ZXJz aW9uLgorKwkjIEEgVm4ubiB2ZXJzaW9uIGlzIGEgcmVsZWFzZWQgdmVyc2lvbi4KKysJIyBBIFRu Lm4gdmVyc2lvbiBpcyBhIHJlbGVhc2VkIGZpZWxkIHRlc3QgdmVyc2lvbi4KKysJIyBBIFhuLm4g dmVyc2lvbiBpcyBhbiB1bnJlbGVhc2VkIGV4cGVyaW1lbnRhbCBiYXNlbGV2ZWwuCisrCSMgMS4y IHVzZXMgIjEuMiIgZm9yIHVuYW1lIC1yLgorKwllY2hvICR7VU5BTUVfTUFDSElORX0tZGVjLW9z ZmBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXltQVlRYXS8vJyB8IHRyICdBQkNE RUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6J2AKKysJ ZXhpdCA7OworKyAgICBBbHBoYVwgKjpXaW5kb3dzX05UKjoqKQorKwkjIEhvdyBkbyB3ZSBrbm93 IGl0J3MgSW50ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQT1NJWCBzdWJzeXN0ZW0/Cisr CSMgU2hvdWxkIHdlIGNoYW5nZSBVTkFNRV9NQUNISU5FIGJhc2VkIG9uIHRoZSBvdXRwdXQgb2Yg dW5hbWUgaW5zdGVhZAorKwkjIG9mIHRoZSBzcGVjaWZpYyBBbHBoYSBtb2RlbD8KKysJZWNobyBh bHBoYS1wYy1pbnRlcml4CisrCWV4aXQgOzsKKysgICAgMjEwNjQ6V2luZG93c19OVDo1MDozKQor KwllY2hvIGFscGhhLWRlYy13aW5udDMuNQorKwlleGl0IDs7CisrICAgIEFtaWdhKjpVTklYX1N5 c3RlbV9WOjQuMDoqKQorKwllY2hvIG02OGstdW5rbm93bi1zeXN2NAorKwlleGl0IDs7CisrICAg ICo6W0FhXW1pZ2FbT29dW1NzXToqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3du LWFtaWdhb3MKKysJZXhpdCA7OworKyAgICAqOltNbV1vcnBoW09vXVtTc106KjoqKQorKwllY2hv ICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1tb3JwaG9zCisrCWV4aXQgOzsKKysgICAgKjpPUy8z OTA6KjoqKQorKwllY2hvIGkzNzAtaWJtLW9wZW5lZGl0aW9uCisrCWV4aXQgOzsKKysgICAgKjp6 L1ZNOio6KikKKysJZWNobyBzMzkwLWlibS16dm1vZQorKwlleGl0IDs7CisrICAgICo6T1M0MDA6 KjoqKQorKyAgICAgICAgZWNobyBwb3dlcnBjLWlibS1vczQwMAorKwlleGl0IDs7CisrICAgIGFy bTpSSVNDKjoxLlswMTJdKjoqfGFybTpyaXNjaXg6MS5bMDEyXSo6KikKKysJZWNobyBhcm0tYWNv cm4tcmlzY2l4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIGFybTpyaXNjb3M6Kjoq fGFybTpSSVNDT1M6KjoqKQorKwllY2hvIGFybS11bmtub3duLXJpc2NvcworKwlleGl0IDs7Cisr ICAgIFNSMj8wMTpISS1VWC9NUFA6KjoqIHwgU1I4MDAwOkhJLVVYL01QUDoqOiopCisrCWVjaG8g aHBwYTEuMS1oaXRhY2hpLWhpdXhtcHAKKysJZXhpdCA7OworKyAgICBQeXJhbWlkKjpPU3gqOio6 KiB8IE1JUyo6T1N4KjoqOiogfCBNSVMqOlNNUF9EQy1PU3gqOio6KikKKysJIyBha2VlQHdwZGlz MDMud3BhZmIuYWYubWlsIChFYXJsZSBGLiBBa2UpIGNvbnRyaWJ1dGVkIE1JUyBhbmQgTklMRS4K KysJaWYgdGVzdCAiYCgvYmluL3VuaXZlcnNlKSAyPi9kZXYvbnVsbGAiID0gYXR0IDsgdGhlbgor KwkJZWNobyBweXJhbWlkLXB5cmFtaWQtc3lzdjMKKysJZWxzZQorKwkJZWNobyBweXJhbWlkLXB5 cmFtaWQtYnNkCisrCWZpCisrCWV4aXQgOzsKKysgICAgTklMRSo6KjoqOmRjb3N4KQorKwllY2hv IHB5cmFtaWQtcHlyYW1pZC1zdnI0CisrCWV4aXQgOzsKKysgICAgRFJTPzYwMDA6dW5peDo0LjA6 NiopCisrCWVjaG8gc3BhcmMtaWNsLW54NgorKwlleGl0IDs7CisrICAgIERSUz82MDAwOlVOSVhf U1Y6NC4yKjo3KiB8IERSUz82MDAwOmlzaXM6NC4yKjo3KikKKysJY2FzZSBgL3Vzci9iaW4vdW5h bWUgLXBgIGluCisrCSAgICBzcGFyYykgZWNobyBzcGFyYy1pY2wtbng3OyBleGl0IDs7CisrCWVz YWMgOzsKKysgICAgczM5MHg6U3VuT1M6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0taWJt LXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCisrCWV4 aXQgOzsKKysgICAgc3VuNEg6U3VuT1M6NS4qOiopCisrCWVjaG8gc3BhcmMtaGFsLXNvbGFyaXMy YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCisrCWV4aXQgOzsKKysg ICAgc3VuNCo6U3VuT1M6NS4qOiogfCB0YWRwb2xlKjpTdW5PUzo1Lio6KikKKysJZWNobyBzcGFy Yy1zdW4tc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AK KysJZXhpdCA7OworKyAgICBpODZwYzpBdXJvcmFVWDo1Lio6KiB8IGk4NnhlbjpBdXJvcmFVWDo1 Lio6KikKKysJZWNobyBpMzg2LXBjLWF1cm9yYXV4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7 CisrICAgIGk4NnBjOlN1bk9TOjUuKjoqIHwgaTg2eGVuOlN1bk9TOjUuKjoqKQorKwlldmFsICRz ZXRfY2NfZm9yX2J1aWxkCisrCVNVTl9BUkNIPSJpMzg2IgorKwkjIElmIHRoZXJlIGlzIGEgY29t cGlsZXIsIHNlZSBpZiBpdCBpcyBjb25maWd1cmVkIGZvciA2NC1iaXQgb2JqZWN0cy4KKysJIyBO b3RlIHRoYXQgdGhlIFN1biBjYyBkb2VzIG5vdCB0dXJuIF9fTFA2NF9fIGludG8gMSBsaWtlIGdj YyBkb2VzLgorKwkjIFRoaXMgdGVzdCB3b3JrcyBmb3IgYm90aCBjb21waWxlcnMuCisrCWlmIFsg IiRDQ19GT1JfQlVJTEQiICE9ICdub19jb21waWxlcl9mb3VuZCcgXTsgdGhlbgorKwkgICAgaWYg KGVjaG8gJyNpZmRlZiBfX2FtZDY0JzsgZWNobyBJU182NEJJVF9BUkNIOyBlY2hvICcjZW5kaWYn KSB8IFwKKysJCShDQ09QVFM9ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCkgfCBcCisr CQlncmVwIElTXzY0QklUX0FSQ0ggPi9kZXYvbnVsbAorKwkgICAgdGhlbgorKwkJU1VOX0FSQ0g9 Ing4Nl82NCIKKysJICAgIGZpCisrCWZpCisrCWVjaG8gJHtTVU5fQVJDSH0tcGMtc29sYXJpczJg ZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKysJZXhpdCA7OworKyAg ICBzdW40KjpTdW5PUzo2KjoqKQorKwkjIEFjY29yZGluZyB0byBjb25maWcuc3ViLCB0aGlzIGlz IHRoZSBwcm9wZXIgd2F5IHRvIGNhbm9uaWNhbGl6ZQorKwkjIFN1bk9TNi4gIEhhcmQgdG8gZ3Vl c3MgZXhhY3RseSB3aGF0IFN1bk9TNiB3aWxsIGJlIGxpa2UsIGJ1dAorKwkjIGl0J3MgbGlrZWx5 IHRvIGJlIG1vcmUgbGlrZSBTb2xhcmlzIHRoYW4gU3VuT1M0LgorKwllY2hvIHNwYXJjLXN1bi1z b2xhcmlzM2BlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorKwlleGl0 IDs7CisrICAgIHN1bjQqOlN1bk9TOio6KikKKysJY2FzZSAiYC91c3IvYmluL2FyY2ggLWtgIiBp bgorKwkgICAgU2VyaWVzKnxTNCopCisrCQlVTkFNRV9SRUxFQVNFPWB1bmFtZSAtdmAKKysJCTs7 CisrCWVzYWMKKysJIyBKYXBhbmVzZSBMYW5ndWFnZSB2ZXJzaW9ucyBoYXZlIGEgdmVyc2lvbiBu dW1iZXIgbGlrZSBgNC4xLjMtSkwnLgorKwllY2hvIHNwYXJjLXN1bi1zdW5vc2BlY2hvICR7VU5B TUVfUkVMRUFTRX18c2VkIC1lICdzLy0vXy8nYAorKwlleGl0IDs7CisrICAgIHN1bjMqOlN1bk9T Oio6KikKKysJZWNobyBtNjhrLXN1bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7Owor KyAgICBzdW4qOio6NC4yQlNEOiopCisrCVVOQU1FX1JFTEVBU0U9YChzZWQgMXEgL2V0Yy9tb3Rk IHwgYXdrICd7cHJpbnQgc3Vic3RyKCQ1LDEsMyl9JykgMj4vZGV2L251bGxgCisrCXRlc3QgIngk e1VOQU1FX1JFTEVBU0V9IiA9ICJ4IiAmJiBVTkFNRV9SRUxFQVNFPTMKKysJY2FzZSAiYC9iaW4v YXJjaGAiIGluCisrCSAgICBzdW4zKQorKwkJZWNobyBtNjhrLXN1bi1zdW5vcyR7VU5BTUVfUkVM RUFTRX0KKysJCTs7CisrCSAgICBzdW40KQorKwkJZWNobyBzcGFyYy1zdW4tc3Vub3Mke1VOQU1F X1JFTEVBU0V9CisrCQk7OworKwllc2FjCisrCWV4aXQgOzsKKysgICAgYXVzaHA6U3VuT1M6Kjoq KQorKwllY2hvIHNwYXJjLWF1c3BleC1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7Owor KyAgICAjIFRoZSBzaXR1YXRpb24gZm9yIE1pTlQgaXMgYSBsaXR0bGUgY29uZnVzaW5nLiAgVGhl IG1hY2hpbmUgbmFtZQorKyAgICAjIGNhbiBiZSB2aXJ0dWFsbHkgZXZlcnl0aGluZyAoZXZlcnl0 aGluZyB3aGljaCBpcyBub3QKKysgICAgIyAiYXRhcmlzdCIgb3IgImF0YXJpc3RlIiBhdCBsZWFz dCBzaG91bGQgaGF2ZSBhIHByb2Nlc3NvcgorKyAgICAjID4gbTY4MDAwKS4gIFRoZSBzeXN0ZW0g bmFtZSByYW5nZXMgZnJvbSAiTWlOVCIgb3ZlciAiRnJlZU1pTlQiCisrICAgICMgdG8gdGhlIGxv d2VyY2FzZSB2ZXJzaW9uICJtaW50IiAob3IgImZyZWVtaW50IikuICBGaW5hbGx5CisrICAgICMg dGhlIHN5c3RlbSBuYW1lICJUT1MiIGRlbm90ZXMgYSBzeXN0ZW0gd2hpY2ggaXMgYWN0dWFsbHkg bm90CisrICAgICMgTWlOVC4gIEJ1dCBNaU5UIGlzIGRvd253YXJkIGNvbXBhdGlibGUgdG8gVE9T LCBzbyB0aGlzIHNob3VsZAorKyAgICAjIGJlIG5vIHByb2JsZW0uCisrICAgIGF0YXJpc3RbZV06 Kk1pTlQ6KjoqIHwgYXRhcmlzdFtlXToqbWludDoqOiogfCBhdGFyaXN0W2VdOipUT1M6KjoqKQor KyAgICAgICAgZWNobyBtNjhrLWF0YXJpLW1pbnQke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsK KysgICAgYXRhcmkqOipNaU5UOio6KiB8IGF0YXJpKjoqbWludDoqOiogfCBhdGFyaXN0W2VdOipU T1M6KjoqKQorKwllY2hvIG02OGstYXRhcmktbWludCR7VU5BTUVfUkVMRUFTRX0KKysgICAgICAg IGV4aXQgOzsKKysgICAgKmZhbGNvbio6Kk1pTlQ6KjoqIHwgKmZhbGNvbio6Km1pbnQ6KjoqIHwg KmZhbGNvbio6KlRPUzoqOiopCisrICAgICAgICBlY2hvIG02OGstYXRhcmktbWludCR7VU5BTUVf UkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBtaWxhbio6Kk1pTlQ6KjoqIHwgbWlsYW4qOiptaW50 Oio6KiB8ICptaWxhbio6KlRPUzoqOiopCisrICAgICAgICBlY2hvIG02OGstbWlsYW4tbWludCR7 VU5BTUVfUkVMRUFTRX0KKysgICAgICAgIGV4aXQgOzsKKysgICAgaGFkZXMqOipNaU5UOio6KiB8 IGhhZGVzKjoqbWludDoqOiogfCAqaGFkZXMqOipUT1M6KjoqKQorKyAgICAgICAgZWNobyBtNjhr LWhhZGVzLW1pbnQke1VOQU1FX1JFTEVBU0V9CisrICAgICAgICBleGl0IDs7CisrICAgICo6Kk1p TlQ6KjoqIHwgKjoqbWludDoqOiogfCAqOipUT1M6KjoqKQorKyAgICAgICAgZWNobyBtNjhrLXVu a25vd24tbWludCR7VU5BTUVfUkVMRUFTRX0KKysgICAgICAgIGV4aXQgOzsKKysgICAgbTY4azpt YWNodGVuOio6KikKKysJZWNobyBtNjhrLWFwcGxlLW1hY2h0ZW4ke1VOQU1FX1JFTEVBU0V9Cisr CWV4aXQgOzsKKysgICAgcG93ZXJwYzptYWNodGVuOio6KikKKysJZWNobyBwb3dlcnBjLWFwcGxl LW1hY2h0ZW4ke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgUklTQyo6TWFjaDoqOiop CisrCWVjaG8gbWlwcy1kZWMtbWFjaF9ic2Q0LjMKKysJZXhpdCA7OworKyAgICBSSVNDKjpVTFRS SVg6KjoqKQorKwllY2hvIG1pcHMtZGVjLXVsdHJpeCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7 OworKyAgICBWQVgqOlVMVFJJWCo6KjoqKQorKwllY2hvIHZheC1kZWMtdWx0cml4JHtVTkFNRV9S RUxFQVNFfQorKwlleGl0IDs7CisrICAgIDIwMjA6Q0xJWDoqOiogfCAyNDMwOkNMSVg6KjoqKQor KwllY2hvIGNsaXBwZXItaW50ZXJncmFwaC1jbGl4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7 CisrICAgIG1pcHM6KjoqOlVNSVBTIHwgbWlwczoqOio6UklTQ29zKQorKwlldmFsICRzZXRfY2Nf Zm9yX2J1aWxkCisrCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCisrI2lmZGVmIF9fY3Bs dXNwbHVzCisrI2luY2x1ZGUgPHN0ZGlvLmg+ICAvKiBmb3IgcHJpbnRmKCkgcHJvdG90eXBlICov CisrCWludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKSB7CisrI2Vsc2UKKysJaW50IG1h aW4gKGFyZ2MsIGFyZ3YpIGludCBhcmdjOyBjaGFyICphcmd2W107IHsKKysjZW5kaWYKKysJI2lm IGRlZmluZWQgKGhvc3RfbWlwcykgJiYgZGVmaW5lZCAoTUlQU0VCKQorKwkjaWYgZGVmaW5lZCAo U1lTVFlQRV9TWVNWKQorKwkgIHByaW50ZiAoIm1pcHMtbWlwcy1yaXNjb3Mlc3N5c3ZcbiIsIGFy Z3ZbMV0pOyBleGl0ICgwKTsKKysJI2VuZGlmCisrCSNpZiBkZWZpbmVkIChTWVNUWVBFX1NWUjQp CisrCSAgcHJpbnRmICgibWlwcy1taXBzLXJpc2NvcyVzc3ZyNFxuIiwgYXJndlsxXSk7IGV4aXQg KDApOworKwkjZW5kaWYKKysJI2lmIGRlZmluZWQgKFNZU1RZUEVfQlNENDMpIHx8IGRlZmluZWQo U1lTVFlQRV9CU0QpCisrCSAgcHJpbnRmICgibWlwcy1taXBzLXJpc2NvcyVzYnNkXG4iLCBhcmd2 WzFdKTsgZXhpdCAoMCk7CisrCSNlbmRpZgorKwkjZW5kaWYKKysJICBleGl0ICgtMSk7CisrCX0K KytFT0YKKysJJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYKKysJICBkdW1teWFy Zz1gZWNobyAiJHtVTkFNRV9SRUxFQVNFfSIgfCBzZWQgLW4gJ3MvXChbMC05XSpcKS4qL1wxL3An YCAmJgorKwkgIFNZU1RFTV9OQU1FPWAkZHVtbXkgJGR1bW15YXJnYCAmJgorKwkgICAgeyBlY2hv ICIkU1lTVEVNX05BTUUiOyBleGl0OyB9CisrCWVjaG8gbWlwcy1taXBzLXJpc2NvcyR7VU5BTUVf UkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBNb3Rvcm9sYTpQb3dlck1BWF9PUzoqOiopCisrCWVj aG8gcG93ZXJwYy1tb3Rvcm9sYS1wb3dlcm1heAorKwlleGl0IDs7CisrICAgIE1vdG9yb2xhOio6 NC4zOlBMOC0qKQorKwllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VybWF4CisrCWV4aXQgOzsKKysg ICAgTmlnaHRfSGF3azoqOio6UG93ZXJNQVhfT1MgfCBTeW5lcmd5OlBvd2VyTUFYX09TOio6KikK KysJZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcm1heAorKwlleGl0IDs7CisrICAgIE5pZ2h0X0hh d2s6UG93ZXJfVU5JWDoqOiopCisrCWVjaG8gcG93ZXJwYy1oYXJyaXMtcG93ZXJ1bml4CisrCWV4 aXQgOzsKKysgICAgbTg4azpDWC9VWDo3KjoqKQorKwllY2hvIG04OGstaGFycmlzLWN4dXg3Cisr CWV4aXQgOzsKKysgICAgbTg4azoqOjQqOlI0KikKKysJZWNobyBtODhrLW1vdG9yb2xhLXN5c3Y0 CisrCWV4aXQgOzsKKysgICAgbTg4azoqOjMqOlIzKikKKysJZWNobyBtODhrLW1vdG9yb2xhLXN5 c3YzCisrCWV4aXQgOzsKKysgICAgQVZpaU9OOmRndXg6KjoqKQorKyAgICAgICAgIyBERy9VWCBy ZXR1cm5zIEFWaWlPTiBmb3IgYWxsIGFyY2hpdGVjdHVyZXMKKysgICAgICAgIFVOQU1FX1BST0NF U1NPUj1gL3Vzci9iaW4vdW5hbWUgLXBgCisrCWlmIFsgJFVOQU1FX1BST0NFU1NPUiA9IG1jODgx MDAgXSB8fCBbICRVTkFNRV9QUk9DRVNTT1IgPSBtYzg4MTEwIF0KKysJdGhlbgorKwkgICAgaWYg WyAke1RBUkdFVF9CSU5BUllfSU5URVJGQUNFfXggPSBtODhrZGd1eGVsZnggXSB8fCBcCisrCSAg ICAgICBbICR7VEFSR0VUX0JJTkFSWV9JTlRFUkZBQ0V9eCA9IHggXQorKwkgICAgdGhlbgorKwkJ ZWNobyBtODhrLWRnLWRndXgke1VOQU1FX1JFTEVBU0V9CisrCSAgICBlbHNlCisrCQllY2hvIG04 OGstZGctZGd1eGJjcyR7VU5BTUVfUkVMRUFTRX0KKysJICAgIGZpCisrCWVsc2UKKysJICAgIGVj aG8gaTU4Ni1kZy1kZ3V4JHtVTkFNRV9SRUxFQVNFfQorKwlmaQorKyAJZXhpdCA7OworKyAgICBN ODgqOkRvbHBoaW5PUzoqOiopCSMgRG9scGhpbk9TIChTVlIzKQorKwllY2hvIG04OGstZG9scGhp bi1zeXN2MworKwlleGl0IDs7CisrICAgIE04OCo6KjpSMyo6KikKKysJIyBEZWx0YSA4OGsgc3lz dGVtIHJ1bm5pbmcgU1ZSMworKwllY2hvIG04OGstbW90b3JvbGEtc3lzdjMKKysJZXhpdCA7Owor KyAgICBYRDg4KjoqOio6KikgIyBUZWt0cm9uaXggWEQ4OCBzeXN0ZW0gcnVubmluZyBVVGVrViAo U1ZSMykKKysJZWNobyBtODhrLXRla3Ryb25peC1zeXN2MworKwlleGl0IDs7CisrICAgIFRlazQz WzAtOV1bMC05XTpVVGVrOio6KikgIyBUZWt0cm9uaXggNDMwMCBzeXN0ZW0gcnVubmluZyBVVGVr IChCU0QpCisrCWVjaG8gbTY4ay10ZWt0cm9uaXgtYnNkCisrCWV4aXQgOzsKKysgICAgKjpJUklY KjoqOiopCisrCWVjaG8gbWlwcy1zZ2ktaXJpeGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1l ICdzLy0vXy9nJ2AKKysJZXhpdCA7OworKyAgICA/Pz8/Pz8/PzpBSVg/OlsxMl0uMToyKSAgICMg QUlYIDIuMi4xIG9yIEFJWCAyLjEuMSBpcyBSVC9QQyBBSVguCisrCWVjaG8gcm9tcC1pYm0tYWl4 ICAgICAjIHVuYW1lIC1tIGdpdmVzIGFuIDggaGV4LWNvZGUgQ1BVIGlkCisrCWV4aXQgOzsgICAg ICAgICAgICAgICAjIE5vdGUgdGhhdDogZWNobyAiJ2B1bmFtZSAtc2AnIiBnaXZlcyAnQUlYICcK KysgICAgaSo4NjpBSVg6KjoqKQorKwllY2hvIGkzODYtaWJtLWFpeAorKwlleGl0IDs7CisrICAg IGlhNjQ6QUlYOio6KikKKysJaWYgWyAteCAvdXNyL2Jpbi9vc2xldmVsIF0gOyB0aGVuCisrCQlJ Qk1fUkVWPWAvdXNyL2Jpbi9vc2xldmVsYAorKwllbHNlCisrCQlJQk1fUkVWPSR7VU5BTUVfVkVS U0lPTn0uJHtVTkFNRV9SRUxFQVNFfQorKwlmaQorKwllY2hvICR7VU5BTUVfTUFDSElORX0taWJt LWFpeCR7SUJNX1JFVn0KKysJZXhpdCA7OworKyAgICAqOkFJWDoyOjMpCisrCWlmIGdyZXAgYm9z MzI1IC91c3IvaW5jbHVkZS9zdGRpby5oID4vZGV2L251bGwgMj4mMTsgdGhlbgorKwkJZXZhbCAk c2V0X2NjX2Zvcl9idWlsZAorKwkJc2VkICdzL14JCS8vJyA8PCBFT0YgPiRkdW1teS5jCisrCQkj aW5jbHVkZSA8c3lzL3N5c3RlbWNmZy5oPgorKworKwkJbWFpbigpCisrCQkJeworKwkJCWlmICgh X19wb3dlcl9wYygpKQorKwkJCQlleGl0KDEpOworKwkJCXB1dHMoInBvd2VycGMtaWJtLWFpeDMu Mi41Iik7CisrCQkJZXhpdCgwKTsKKysJCQl9CisrRU9GCisrCQlpZiAkQ0NfRk9SX0JVSUxEIC1v ICRkdW1teSAkZHVtbXkuYyAmJiBTWVNURU1fTkFNRT1gJGR1bW15YAorKwkJdGhlbgorKwkJCWVj aG8gIiRTWVNURU1fTkFNRSIKKysJCWVsc2UKKysJCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjUK KysJCWZpCisrCWVsaWYgZ3JlcCBib3MzMjQgL3Vzci9pbmNsdWRlL3N0ZGlvLmggPi9kZXYvbnVs bCAyPiYxOyB0aGVuCisrCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjQKKysJZWxzZQorKwkJZWNo byByczYwMDAtaWJtLWFpeDMuMgorKwlmaQorKwlleGl0IDs7CisrICAgICo6QUlYOio6WzQ1Nl0p CisrCUlCTV9DUFVfSUQ9YC91c3Ivc2Jpbi9sc2RldiAtQyAtYyBwcm9jZXNzb3IgLVMgYXZhaWxh YmxlIHwgc2VkIDFxIHwgYXdrICd7IHByaW50ICQxIH0nYAorKwlpZiAvdXNyL3NiaW4vbHNhdHRy IC1FbCAke0lCTV9DUFVfSUR9IHwgZ3JlcCAnIFBPV0VSJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4K KysJCUlCTV9BUkNIPXJzNjAwMAorKwllbHNlCisrCQlJQk1fQVJDSD1wb3dlcnBjCisrCWZpCisr CWlmIFsgLXggL3Vzci9iaW4vb3NsZXZlbCBdIDsgdGhlbgorKwkJSUJNX1JFVj1gL3Vzci9iaW4v b3NsZXZlbGAKKysJZWxzZQorKwkJSUJNX1JFVj0ke1VOQU1FX1ZFUlNJT059LiR7VU5BTUVfUkVM RUFTRX0KKysJZmkKKysJZWNobyAke0lCTV9BUkNIfS1pYm0tYWl4JHtJQk1fUkVWfQorKwlleGl0 IDs7CisrICAgICo6QUlYOio6KikKKysJZWNobyByczYwMDAtaWJtLWFpeAorKwlleGl0IDs7Cisr ICAgIGlibXJ0OjQuNEJTRDoqfHJvbXAtaWJtOkJTRDoqKQorKwllY2hvIHJvbXAtaWJtLWJzZDQu NAorKwlleGl0IDs7CisrICAgIGlibXJ0OipCU0Q6Knxyb21wLWlibTpCU0Q6KikgICAgICAgICAg ICAjIGNvdmVycyBSVC9QQyBCU0QgYW5kCisrCWVjaG8gcm9tcC1pYm0tYnNkJHtVTkFNRV9SRUxF QVNFfSAgICMgNC4zIHdpdGggdW5hbWUgYWRkZWQgdG8KKysJZXhpdCA7OyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIyByZXBvcnQ6IHJvbXAtaWJtIEJTRCA0LjMKKysgICAgKjpCT1NYOio6 KikKKysJZWNobyByczYwMDAtYnVsbC1ib3N4CisrCWV4aXQgOzsKKysgICAgRFBYLzI/MDA6Qi5P LlMuOio6KikKKysJZWNobyBtNjhrLWJ1bGwtc3lzdjMKKysJZXhpdCA7OworKyAgICA5MDAwL1sz NF0/Pzo0LjNic2Q6MS4qOiopCisrCWVjaG8gbTY4ay1ocC1ic2QKKysJZXhpdCA7OworKyAgICBo cDMwMDo0LjRCU0Q6KjoqIHwgOTAwMC9bMzRdPz86NC4zYnNkOjIuKjoqKQorKwllY2hvIG02OGst aHAtYnNkNC40CisrCWV4aXQgOzsKKysgICAgOTAwMC9bMzQ2NzhdPz86SFAtVVg6KjoqKQorKwlI UFVYX1JFVj1gZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi5bMEJdKi8vJ2AK KysJY2FzZSAiJHtVTkFNRV9NQUNISU5FfSIgaW4KKysJICAgIDkwMDAvMzE/ICkgICAgICAgICAg ICBIUF9BUkNIPW02ODAwMCA7OworKwkgICAgOTAwMC9bMzRdPz8gKSAgICAgICAgIEhQX0FSQ0g9 bTY4ayA7OworKwkgICAgOTAwMC9bNjc4XVswLTldWzAtOV0pCisrCQlpZiBbIC14IC91c3IvYmlu L2dldGNvbmYgXTsgdGhlbgorKwkJICAgIHNjX2NwdV92ZXJzaW9uPWAvdXNyL2Jpbi9nZXRjb25m IFNDX0NQVV9WRVJTSU9OIDI+L2Rldi9udWxsYAorKyAgICAgICAgICAgICAgICAgICAgc2Nfa2Vy bmVsX2JpdHM9YC91c3IvYmluL2dldGNvbmYgU0NfS0VSTkVMX0JJVFMgMj4vZGV2L251bGxgCisr ICAgICAgICAgICAgICAgICAgICBjYXNlICIke3NjX2NwdV92ZXJzaW9ufSIgaW4KKysgICAgICAg ICAgICAgICAgICAgICAgNTIzKSBIUF9BUkNIPSJocHBhMS4wIiA7OyAjIENQVV9QQV9SSVNDMV8w CisrICAgICAgICAgICAgICAgICAgICAgIDUyOCkgSFBfQVJDSD0iaHBwYTEuMSIgOzsgIyBDUFVf UEFfUklTQzFfMQorKyAgICAgICAgICAgICAgICAgICAgICA1MzIpICAgICAgICAgICAgICAgICAg ICAgICMgQ1BVX1BBX1JJU0MyXzAKKysgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICIke3Nj X2tlcm5lbF9iaXRzfSIgaW4KKysgICAgICAgICAgICAgICAgICAgICAgICAgIDMyKSBIUF9BUkNI PSJocHBhMi4wbiIgOzsKKysgICAgICAgICAgICAgICAgICAgICAgICAgIDY0KSBIUF9BUkNIPSJo cHBhMi4wdyIgOzsKKysJCQkgICcnKSBIUF9BUkNIPSJocHBhMi4wIiA7OyAgICMgSFAtVVggMTAu MjAKKysgICAgICAgICAgICAgICAgICAgICAgICBlc2FjIDs7CisrICAgICAgICAgICAgICAgICAg ICBlc2FjCisrCQlmaQorKwkJaWYgWyAiJHtIUF9BUkNIfSIgPSAiIiBdOyB0aGVuCisrCQkgICAg ZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorKwkJICAgIHNlZCAncy9eICAgICAgICAgICAgICAvLycg PDwgRU9GID4kZHVtbXkuYworKworKyAgICAgICAgICAgICAgI2RlZmluZSBfSFBVWF9TT1VSQ0UK KysgICAgICAgICAgICAgICNpbmNsdWRlIDxzdGRsaWIuaD4KKysgICAgICAgICAgICAgICNpbmNs dWRlIDx1bmlzdGQuaD4KKysKKysgICAgICAgICAgICAgIGludCBtYWluICgpCisrICAgICAgICAg ICAgICB7CisrICAgICAgICAgICAgICAjaWYgZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpCisrICAg ICAgICAgICAgICAgICAgbG9uZyBiaXRzID0gc3lzY29uZihfU0NfS0VSTkVMX0JJVFMpOworKyAg ICAgICAgICAgICAgI2VuZGlmCisrICAgICAgICAgICAgICAgICAgbG9uZyBjcHUgID0gc3lzY29u ZiAoX1NDX0NQVV9WRVJTSU9OKTsKKysKKysgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNwdSkK KysgICAgICAgICAgICAgIAl7CisrICAgICAgICAgICAgICAJY2FzZSBDUFVfUEFfUklTQzFfMDog cHV0cyAoImhwcGExLjAiKTsgYnJlYWs7CisrICAgICAgICAgICAgICAJY2FzZSBDUFVfUEFfUklT QzFfMTogcHV0cyAoImhwcGExLjEiKTsgYnJlYWs7CisrICAgICAgICAgICAgICAJY2FzZSBDUFVf UEFfUklTQzJfMDoKKysgICAgICAgICAgICAgICNpZiBkZWZpbmVkKF9TQ19LRVJORUxfQklUUykK KysgICAgICAgICAgICAgIAkgICAgc3dpdGNoIChiaXRzKQorKyAgICAgICAgICAgICAgCQl7Cisr ICAgICAgICAgICAgICAJCWNhc2UgNjQ6IHB1dHMgKCJocHBhMi4wdyIpOyBicmVhazsKKysgICAg ICAgICAgICAgIAkJY2FzZSAzMjogcHV0cyAoImhwcGEyLjBuIik7IGJyZWFrOworKyAgICAgICAg ICAgICAgCQlkZWZhdWx0OiBwdXRzICgiaHBwYTIuMCIpOyBicmVhazsKKysgICAgICAgICAgICAg IAkJfSBicmVhazsKKysgICAgICAgICAgICAgICNlbHNlICAvKiAhZGVmaW5lZChfU0NfS0VSTkVM X0JJVFMpICovCisrICAgICAgICAgICAgICAJICAgIHB1dHMgKCJocHBhMi4wIik7IGJyZWFrOwor KyAgICAgICAgICAgICAgI2VuZGlmCisrICAgICAgICAgICAgICAJZGVmYXVsdDogcHV0cyAoImhw cGExLjAiKTsgYnJlYWs7CisrICAgICAgICAgICAgICAJfQorKyAgICAgICAgICAgICAgICAgIGV4 aXQgKDApOworKyAgICAgICAgICAgICAgfQorK0VPRgorKwkJICAgIChDQ09QVFM9ICRDQ19GT1Jf QlVJTEQgLW8gJGR1bW15ICRkdW1teS5jIDI+L2Rldi9udWxsKSAmJiBIUF9BUkNIPWAkZHVtbXlg CisrCQkgICAgdGVzdCAteiAiJEhQX0FSQ0giICYmIEhQX0FSQ0g9aHBwYQorKwkJZmkgOzsKKysJ ZXNhYworKwlpZiBbICR7SFBfQVJDSH0gPSAiaHBwYTIuMHciIF0KKysJdGhlbgorKwkgICAgZXZh bCAkc2V0X2NjX2Zvcl9idWlsZAorKworKwkgICAgIyBocHBhMi4wdy1ocC1ocHV4KiBoYXMgYSA2 NC1iaXQga2VybmVsIGFuZCBhIGNvbXBpbGVyIGdlbmVyYXRpbmcKKysJICAgICMgMzItYml0IGNv ZGUuICBocHBhNjQtaHAtaHB1eCogaGFzIHRoZSBzYW1lIGtlcm5lbCBhbmQgYSBjb21waWxlcgor KwkgICAgIyBnZW5lcmF0aW5nIDY0LWJpdCBjb2RlLiAgR05VIGFuZCBIUCB1c2UgZGlmZmVyZW50 IG5vbWVuY2xhdHVyZToKKysJICAgICMKKysJICAgICMgJCBDQ19GT1JfQlVJTEQ9Y2MgLi9jb25m aWcuZ3Vlc3MKKysJICAgICMgPT4gaHBwYTIuMHctaHAtaHB1eDExLjIzCisrCSAgICAjICQgQ0Nf Rk9SX0JVSUxEPSJjYyArREEyLjB3IiAuL2NvbmZpZy5ndWVzcworKwkgICAgIyA9PiBocHBhNjQt aHAtaHB1eDExLjIzCisrCisrCSAgICBpZiBlY2hvIF9fTFA2NF9fIHwgKENDT1BUUz0gJENDX0ZP Ul9CVUlMRCAtRSAtIDI+L2Rldi9udWxsKSB8CisrCQlncmVwIC1xIF9fTFA2NF9fCisrCSAgICB0 aGVuCisrCQlIUF9BUkNIPSJocHBhMi4wdyIKKysJICAgIGVsc2UKKysJCUhQX0FSQ0g9ImhwcGE2 NCIKKysJICAgIGZpCisrCWZpCisrCWVjaG8gJHtIUF9BUkNIfS1ocC1ocHV4JHtIUFVYX1JFVn0K KysJZXhpdCA7OworKyAgICBpYTY0OkhQLVVYOio6KikKKysJSFBVWF9SRVY9YGVjaG8gJHtVTkFN RV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSouWzBCXSovLydgCisrCWVjaG8gaWE2NC1ocC1ocHV4 JHtIUFVYX1JFVn0KKysJZXhpdCA7OworKyAgICAzMDUwKjpISS1VWDoqOiopCisrCWV2YWwgJHNl dF9jY19mb3JfYnVpbGQKKysJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKKysJI2luY2x1 ZGUgPHVuaXN0ZC5oPgorKwlpbnQKKysJbWFpbiAoKQorKwl7CisrCSAgbG9uZyBjcHUgPSBzeXNj b25mIChfU0NfQ1BVX1ZFUlNJT04pOworKwkgIC8qIFRoZSBvcmRlciBtYXR0ZXJzLCBiZWNhdXNl IENQVV9JU19IUF9NQzY4SyBlcnJvbmVvdXNseSByZXR1cm5zCisrCSAgICAgdHJ1ZSBmb3IgQ1BV X1BBX1JJU0MxXzAuICBDUFVfSVNfUEFfUklTQyByZXR1cm5zIGNvcnJlY3QKKysJICAgICByZXN1 bHRzLCBob3dldmVyLiAgKi8KKysJICBpZiAoQ1BVX0lTX1BBX1JJU0MgKGNwdSkpCisrCSAgICB7 CisrCSAgICAgIHN3aXRjaCAoY3B1KQorKwkJeworKwkJICBjYXNlIENQVV9QQV9SSVNDMV8wOiBw dXRzICgiaHBwYTEuMC1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7CisrCQkgIGNhc2UgQ1BVX1BB X1JJU0MxXzE6IHB1dHMgKCJocHBhMS4xLWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKKysJCSAg Y2FzZSBDUFVfUEFfUklTQzJfMDogcHV0cyAoImhwcGEyLjAtaGl0YWNoaS1oaXV4d2UyIik7IGJy ZWFrOworKwkJICBkZWZhdWx0OiBwdXRzICgiaHBwYS1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7 CisrCQl9CisrCSAgICB9CisrCSAgZWxzZSBpZiAoQ1BVX0lTX0hQX01DNjhLIChjcHUpKQorKwkg ICAgcHV0cyAoIm02OGstaGl0YWNoaS1oaXV4d2UyIik7CisrCSAgZWxzZSBwdXRzICgidW5rbm93 bi1oaXRhY2hpLWhpdXh3ZTIiKTsKKysJICBleGl0ICgwKTsKKysJfQorK0VPRgorKwkkQ0NfRk9S X0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAmJiBTWVNURU1fTkFNRT1gJGR1bW15YCAmJgorKwkJ eyBlY2hvICIkU1lTVEVNX05BTUUiOyBleGl0OyB9CisrCWVjaG8gdW5rbm93bi1oaXRhY2hpLWhp dXh3ZTIKKysJZXhpdCA7OworKyAgICA5MDAwLzc/Pzo0LjNic2Q6KjoqIHwgOTAwMC84P1s3OV06 NC4zYnNkOio6KiApCisrCWVjaG8gaHBwYTEuMS1ocC1ic2QKKysJZXhpdCA7OworKyAgICA5MDAw Lzg/Pzo0LjNic2Q6KjoqKQorKwllY2hvIGhwcGExLjAtaHAtYnNkCisrCWV4aXQgOzsKKysgICAg Kjk/Pyo6TVBFL2lYOio6KiB8ICozMDAwKjpNUEUvaVg6KjoqKQorKwllY2hvIGhwcGExLjAtaHAt bXBlaXgKKysJZXhpdCA7OworKyAgICBocDc/PzpPU0YxOio6KiB8IGhwOD9bNzldOk9TRjE6Kjoq ICkKKysJZWNobyBocHBhMS4xLWhwLW9zZgorKwlleGl0IDs7CisrICAgIGhwOD8/Ok9TRjE6Kjoq KQorKwllY2hvIGhwcGExLjAtaHAtb3NmCisrCWV4aXQgOzsKKysgICAgaSo4NjpPU0YxOio6KikK KysJaWYgWyAteCAvdXNyL3NiaW4vc3lzdmVyc2lvbiBdIDsgdGhlbgorKwkgICAgZWNobyAke1VO QU1FX01BQ0hJTkV9LXVua25vd24tb3NmMW1rCisrCWVsc2UKKysJICAgIGVjaG8gJHtVTkFNRV9N QUNISU5FfS11bmtub3duLW9zZjEKKysJZmkKKysJZXhpdCA7OworKyAgICBwYXJpc2MqOkxpdGVz KjoqOiopCisrCWVjaG8gaHBwYTEuMS1ocC1saXRlcworKwlleGl0IDs7CisrICAgIEMxKjpDb252 ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzEqOiopCisrCWVjaG8gYzEtY29udmV4LWJzZAor KyAgICAgICAgZXhpdCA7OworKyAgICBDMio6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9T OkMyKjoqKQorKwlpZiBnZXRzeXNpbmZvIC1mIHNjYWxhcl9hY2MKKysJdGhlbiBlY2hvIGMzMi1j b252ZXgtYnNkCisrCWVsc2UgZWNobyBjMi1jb252ZXgtYnNkCisrCWZpCisrICAgICAgICBleGl0 IDs7CisrICAgIEMzNCo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMzNCo6KikKKysJ ZWNobyBjMzQtY29udmV4LWJzZAorKyAgICAgICAgZXhpdCA7OworKyAgICBDMzgqOkNvbnZleE9T Oio6KiB8IGNvbnZleDpDb252ZXhPUzpDMzgqOiopCisrCWVjaG8gYzM4LWNvbnZleC1ic2QKKysg ICAgICAgIGV4aXQgOzsKKysgICAgQzQqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpD NCo6KikKKysJZWNobyBjNC1jb252ZXgtYnNkCisrICAgICAgICBleGl0IDs7CisrICAgIENSQVkq WS1NUDoqOio6KikKKysJZWNobyB5bXAtY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IHwgc2Vk IC1lICdzL1wuW14uXSokLy5YLycKKysJZXhpdCA7OworKyAgICBDUkFZKltBLVpdOTA6KjoqOiop CisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gXAor Kwl8IHNlZCAtZSAncy9DUkFZLipcKFtBLVpdOTBcKS9cMS8nIFwKKysJICAgICAgLWUgeS9BQkNE RUZHSElKS0xNTk9QUVJTVFVWV1hZWi9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei8gXAorKwkg ICAgICAtZSAncy9cLlteLl0qJC8uWC8nCisrCWV4aXQgOzsKKysgICAgQ1JBWSpUUzoqOio6KikK KysJZWNobyB0OTAtY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14u XSokLy5YLycKKysJZXhpdCA7OworKyAgICBDUkFZKlQzRToqOio6KikKKysJZWNobyBhbHBoYWV2 NS1jcmF5LXVuaWNvc21rJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8n CisrCWV4aXQgOzsKKysgICAgQ1JBWSpTVjE6KjoqOiopCisrCWVjaG8gc3YxLWNyYXktdW5pY29z JHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCisrCWV4aXQgOzsKKysg ICAgKjpVTklDT1MvbXA6KjoqKQorKwllY2hvIGNyYXludi1jcmF5LXVuaWNvc21wJHtVTkFNRV9S RUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCisrCWV4aXQgOzsKKysgICAgRjMwWzAx XTpVTklYX1N5c3RlbV9WOio6KiB8IEY3MDA6VU5JWF9TeXN0ZW1fVjoqOiopCisrCUZVSklUU1Vf UFJPQz1gdW5hbWUgLW0gfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZn aGlqa2xtbm9wcXJzdHV2d3h5eidgCisrICAgICAgICBGVUpJVFNVX1NZUz1gdW5hbWUgLXAgfCB0 ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5 eicgfCBzZWQgLWUgJ3MvXC8vLydgCisrICAgICAgICBGVUpJVFNVX1JFTD1gZWNobyAke1VOQU1F X1JFTEVBU0V9IHwgc2VkIC1lICdzLyAvXy8nYAorKyAgICAgICAgZWNobyAiJHtGVUpJVFNVX1BS T0N9LWZ1aml0c3UtJHtGVUpJVFNVX1NZU30ke0ZVSklUU1VfUkVMfSIKKysgICAgICAgIGV4aXQg OzsKKysgICAgNTAwMDpVTklYX1N5c3RlbV9WOjQuKjoqKQorKyAgICAgICAgRlVKSVRTVV9TWVM9 YHVuYW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamts bW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzL1wvLy8nYAorKyAgICAgICAgRlVKSVRTVV9SRUw9 YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicg J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyB8IHNlZCAtZSAncy8gL18vJ2AKKysgICAgICAg IGVjaG8gInNwYXJjLWZ1aml0c3UtJHtGVUpJVFNVX1NZU30ke0ZVSklUU1VfUkVMfSIKKysJZXhp dCA7OworKyAgICBpKjg2OkJTRC8zODY6KjoqIHwgaSo4NjpCU0QvT1M6KjoqIHwgKjpBc2NlbmRc IEVtYmVkZGVkL09TOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWJzZGkke1VOQU1F X1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgc3BhcmMqOkJTRC9PUzoqOiopCisrCWVjaG8gc3Bh cmMtdW5rbm93bi1ic2RpJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6QlNEL09T Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYnNkaSR7VU5BTUVfUkVMRUFT RX0KKysJZXhpdCA7OworKyAgICAqOkZyZWVCU0Q6KjoqKQorKwljYXNlICR7VU5BTUVfTUFDSElO RX0gaW4KKysJICAgIHBjOTgpCisrCQllY2hvIGkzODYtdW5rbm93bi1mcmVlYnNkYGVjaG8gJHtV TkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYCA7OworKwkgICAgYW1kNjQpCisrCQll Y2hvIHg4Nl82NC11bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAn cy9bLShdLiovLydgIDs7CisrCSAgICAqKQorKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25v d24tZnJlZWJzZGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AgOzsK KysJZXNhYworKwlleGl0IDs7CisrICAgIGkqOkNZR1dJTio6KikKKysJZWNobyAke1VOQU1FX01B Q0hJTkV9LXBjLWN5Z3dpbgorKwlleGl0IDs7CisrICAgICo6TUlOR1cqOiopCisrCWVjaG8gJHtV TkFNRV9NQUNISU5FfS1wYy1taW5ndzMyCisrCWV4aXQgOzsKKysgICAgaSo6d2luZG93czMyKjoq KQorKyAgICAJIyB1bmFtZSAtbSBpbmNsdWRlcyAiLXBjIiBvbiB0aGlzIHN5c3RlbS4KKysgICAg CWVjaG8gJHtVTkFNRV9NQUNISU5FfS1taW5ndzMyCisrCWV4aXQgOzsKKysgICAgaSo6UFcqOiop CisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1wdzMyCisrCWV4aXQgOzsKKysgICAgKjpJbnRl cml4KjoqKQorKyAgICAJY2FzZSAke1VOQU1FX01BQ0hJTkV9IGluCisrCSAgICB4ODYpCisrCQll Y2hvIGk1ODYtcGMtaW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KKysJCWV4aXQgOzsKKysJICAgIGF1 dGhlbnRpY2FtZCB8IGdlbnVpbmVpbnRlbCB8IEVNNjRUKQorKwkJZWNobyB4ODZfNjQtdW5rbm93 bi1pbnRlcml4JHtVTkFNRV9SRUxFQVNFfQorKwkJZXhpdCA7OworKwkgICAgSUE2NCkKKysJCWVj aG8gaWE2NC11bmtub3duLWludGVyaXgke1VOQU1FX1JFTEVBU0V9CisrCQlleGl0IDs7CisrCWVz YWMgOzsKKysgICAgWzM0NV04NjpXaW5kb3dzXzk1OiogfCBbMzQ1XTg2OldpbmRvd3NfOTg6KiB8 IFszNDVdODY6V2luZG93c19OVDoqKQorKwllY2hvIGkke1VOQU1FX01BQ0hJTkV9LXBjLW1rcwor KwlleGl0IDs7CisrICAgIDg2NjQ6V2luZG93c19OVDoqKQorKwllY2hvIHg4Nl82NC1wYy1ta3MK KysJZXhpdCA7OworKyAgICBpKjpXaW5kb3dzX05UKjoqIHwgUGVudGl1bSo6V2luZG93c19OVCo6 KikKKysJIyBIb3cgZG8gd2Uga25vdyBpdCdzIEludGVyaXggcmF0aGVyIHRoYW4gdGhlIGdlbmVy aWMgUE9TSVggc3Vic3lzdGVtPworKwkjIEl0IGFsc28gY29uZmxpY3RzIHdpdGggcHJlLTIuMCB2 ZXJzaW9ucyBvZiBBVCZUIFVXSU4uIFNob3VsZCB3ZQorKwkjIFVOQU1FX01BQ0hJTkUgYmFzZWQg b24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkIG9mIGkzODY/CisrCWVjaG8gaTU4Ni1wYy1p bnRlcml4CisrCWV4aXQgOzsKKysgICAgaSo6VVdJTio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJ TkV9LXBjLXV3aW4KKysJZXhpdCA7OworKyAgICBhbWQ2NDpDWUdXSU4qOio6KiB8IHg4Nl82NDpD WUdXSU4qOio6KikKKysJZWNobyB4ODZfNjQtdW5rbm93bi1jeWd3aW4KKysJZXhpdCA7OworKyAg ICBwKjpDWUdXSU4qOiopCisrCWVjaG8gcG93ZXJwY2xlLXVua25vd24tY3lnd2luCisrCWV4aXQg OzsKKysgICAgcHJlcCo6U3VuT1M6NS4qOiopCisrCWVjaG8gcG93ZXJwY2xlLXVua25vd24tc29s YXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKysJZXhpdCA7 OworKyAgICAqOkdOVToqOiopCisrCSMgdGhlIEdOVSBzeXN0ZW0KKysJZWNobyBgZWNobyAke1VO QU1FX01BQ0hJTkV9fHNlZCAtZSAncyxbLS9dLiokLCwnYC11bmtub3duLWdudWBlY2hvICR7VU5B TUVfUkVMRUFTRX18c2VkIC1lICdzLC8uKiQsLCdgCisrCWV4aXQgOzsKKysgICAgKjpHTlUvKjoq OiopCisrCSMgb3RoZXIgc3lzdGVtcyB3aXRoIEdOVSBsaWJjIGFuZCB1c2VybGFuZAorKwllY2hv ICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1gZWNobyAke1VOQU1FX1NZU1RFTX0gfCBzZWQgJ3Ms XlteL10qLywsJyB8IHRyICdbQS1aXScgJ1thLXpdJ2BgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNl ZCAtZSAncy9bLShdLiovLydgLWdudQorKwlleGl0IDs7CisrICAgIGkqODY6TWluaXg6KjoqKQor KwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbWluaXgKKysJZXhpdCA7OworKyAgICBhbHBoYTpM aW51eDoqOiopCisrCWNhc2UgYHNlZCAtbiAnL15jcHUgbW9kZWwvcy9eLio6IFwoLipcKS9cMS9w JyA8IC9wcm9jL2NwdWluZm9gIGluCisrCSAgRVY1KSAgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjUg OzsKKysJICBFVjU2KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2NTYgOzsKKysJICBQQ0E1NikgVU5B TUVfTUFDSElORT1hbHBoYXBjYTU2IDs7CisrCSAgUENBNTcpIFVOQU1FX01BQ0hJTkU9YWxwaGFw Y2E1NiA7OworKwkgIEVWNikgICBVTkFNRV9NQUNISU5FPWFscGhhZXY2IDs7CisrCSAgRVY2Nykg IFVOQU1FX01BQ0hJTkU9YWxwaGFldjY3IDs7CisrCSAgRVY2OCopIFVOQU1FX01BQ0hJTkU9YWxw aGFldjY4IDs7CisrICAgICAgICBlc2FjCisrCW9iamR1bXAgLS1wcml2YXRlLWhlYWRlcnMgL2Jp bi9zaCB8IGdyZXAgLXEgbGQuc28uMQorKwlpZiB0ZXN0ICIkPyIgPSAwIDsgdGhlbiBMSUJDPSJs aWJjMSIgOyBlbHNlIExJQkM9IiIgOyBmaQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93 bi1saW51eC1nbnUke0xJQkN9CisrCWV4aXQgOzsKKysgICAgYXJtKjpMaW51eDoqOiopCisrCWV2 YWwgJHNldF9jY19mb3JfYnVpbGQKKysJaWYgZWNobyBfX0FSTV9FQUJJX18gfCAkQ0NfRk9SX0JV SUxEIC1FIC0gMj4vZGV2L251bGwgXAorKwkgICAgfCBncmVwIC1xIF9fQVJNX0VBQklfXworKwl0 aGVuCisrCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKysJZWxz ZQorKwkgICAgZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251ZWFiaQorKwlm aQorKwlleGl0IDs7CisrICAgIGF2cjMyKjpMaW51eDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNI SU5FfS11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIGNyaXM6TGludXg6KjoqKQor KwllY2hvIGNyaXMtYXhpcy1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBjcmlzdjMyOkxpbnV4 Oio6KikKKysJZWNobyBjcmlzdjMyLWF4aXMtbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgZnJ2 OkxpbnV4Oio6KikKKysgICAgCWVjaG8gZnJ2LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsK KysgICAgaSo4NjpMaW51eDoqOiopCisrCUxJQkM9Z251CisrCWV2YWwgJHNldF9jY19mb3JfYnVp bGQKKysJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKKysJI2lmZGVmIF9fZGlldGxpYmNf XworKwlMSUJDPWRpZXRsaWJjCisrCSNlbmRpZgorK0VPRgorKwlldmFsIGAkQ0NfRk9SX0JVSUxE IC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgZ3JlcCAnXkxJQkMnYAorKwllY2hvICIke1VOQU1F X01BQ0hJTkV9LXBjLWxpbnV4LSR7TElCQ30iCisrCWV4aXQgOzsKKysgICAgaWE2NDpMaW51eDoq OiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7 CisrICAgIG0zMnIqOkxpbnV4Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24t bGludXgtZ251CisrCWV4aXQgOzsKKysgICAgbTY4KjpMaW51eDoqOiopCisrCWVjaG8gJHtVTkFN RV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIG1pcHM6TGludXg6 KjoqIHwgbWlwczY0OkxpbnV4Oio6KikKKysJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorKwlzZWQg J3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYworKwkjdW5kZWYgQ1BVCisrCSN1bmRlZiAke1VOQU1F X01BQ0hJTkV9CisrCSN1bmRlZiAke1VOQU1FX01BQ0hJTkV9ZWwKKysJI2lmIGRlZmluZWQoX19N SVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5lZChfTUlQU0VMKSB8fCBkZWZp bmVkKE1JUFNFTCkKKysJQ1BVPSR7VU5BTUVfTUFDSElORX1lbAorKwkjZWxzZQorKwkjaWYgZGVm aW5lZChfX01JUFNFQl9fKSB8fCBkZWZpbmVkKF9fTUlQU0VCKSB8fCBkZWZpbmVkKF9NSVBTRUIp IHx8IGRlZmluZWQoTUlQU0VCKQorKwlDUFU9JHtVTkFNRV9NQUNISU5FfQorKwkjZWxzZQorKwlD UFU9CisrCSNlbmRpZgorKwkjZW5kaWYKKytFT0YKKysJZXZhbCBgJENDX0ZPUl9CVUlMRCAtRSAk ZHVtbXkuYyAyPi9kZXYvbnVsbCB8IGdyZXAgJ15DUFUnYAorKwl0ZXN0IHgiJHtDUFV9IiAhPSB4 ICYmIHsgZWNobyAiJHtDUFV9LXVua25vd24tbGludXgtZ251IjsgZXhpdDsgfQorKwk7OworKyAg ICBvcjMyOkxpbnV4Oio6KikKKysJZWNobyBvcjMyLXVua25vd24tbGludXgtZ251CisrCWV4aXQg OzsKKysgICAgcGFkcmU6TGludXg6KjoqKQorKwllY2hvIHNwYXJjLXVua25vd24tbGludXgtZ251 CisrCWV4aXQgOzsKKysgICAgcGFyaXNjNjQ6TGludXg6KjoqIHwgaHBwYTY0OkxpbnV4Oio6KikK KysJZWNobyBocHBhNjQtdW5rbm93bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBwYXJpc2M6 TGludXg6KjoqIHwgaHBwYTpMaW51eDoqOiopCisrCSMgTG9vayBmb3IgQ1BVIGxldmVsCisrCWNh c2UgYGdyZXAgJ15jcHVbXmEtel0qOicgL3Byb2MvY3B1aW5mbyAyPi9kZXYvbnVsbCB8IGN1dCAt ZCcgJyAtZjJgIGluCisrCSAgUEE3KikgZWNobyBocHBhMS4xLXVua25vd24tbGludXgtZ251IDs7 CisrCSAgUEE4KikgZWNobyBocHBhMi4wLXVua25vd24tbGludXgtZ251IDs7CisrCSAgKikgICAg ZWNobyBocHBhLXVua25vd24tbGludXgtZ251IDs7CisrCWVzYWMKKysJZXhpdCA7OworKyAgICBw cGM2NDpMaW51eDoqOiopCisrCWVjaG8gcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251CisrCWV4 aXQgOzsKKysgICAgcHBjOkxpbnV4Oio6KikKKysJZWNobyBwb3dlcnBjLXVua25vd24tbGludXgt Z251CisrCWV4aXQgOzsKKysgICAgczM5MDpMaW51eDoqOiogfCBzMzkweDpMaW51eDoqOiopCisr CWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tbGludXgKKysJZXhpdCA7OworKyAgICBzaDY0KjpM aW51eDoqOiopCisrICAgIAllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUK KysJZXhpdCA7OworKyAgICBzaCo6TGludXg6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0t dW5rbm93bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBzcGFyYzpMaW51eDoqOiogfCBzcGFy YzY0OkxpbnV4Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251 CisrCWV4aXQgOzsKKysgICAgdmF4OkxpbnV4Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9 LWRlYy1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICB4ODZfNjQ6TGludXg6KjoqKQorKwllY2hv IHg4Nl82NC11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIHh0ZW5zYSo6TGludXg6 KjoqKQorKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisrCWV4 aXQgOzsKKysgICAgaSo4NjpEWU5JWC9wdHg6NCo6KikKKysJIyBwdHggNC4wIGRvZXMgdW5hbWUg LXMgY29ycmVjdGx5LCB3aXRoIERZTklYL3B0eCBpbiB0aGVyZS4KKysJIyBlYXJsaWVyIHZlcnNp b25zIGFyZSBtZXNzZWQgdXAgYW5kIHB1dCB0aGUgbm9kZW5hbWUgaW4gYm90aAorKwkjIHN5c25h bWUgYW5kIG5vZGVuYW1lLgorKwllY2hvIGkzODYtc2VxdWVudC1zeXN2NAorKwlleGl0IDs7Cisr ICAgIGkqODY6VU5JWF9TVjo0LjJNUDoyLiopCisrICAgICAgICAjIFVuaXh3YXJlIGlzIGFuIG9m ZnNob290IG9mIFNWUjQsIGJ1dCBpdCBoYXMgaXRzIG93biB2ZXJzaW9uCisrICAgICAgICAjIG51 bWJlciBzZXJpZXMgc3RhcnRpbmcgd2l0aCAyLi4uCisrICAgICAgICAjIEkgYW0gbm90IHBvc2l0 aXZlIHRoYXQgb3RoZXIgU1ZSNCBzeXN0ZW1zIHdvbid0IG1hdGNoIHRoaXMsCisrCSMgSSBqdXN0 IGhhdmUgdG8gaG9wZS4gIC0tIHJtcy4KKysgICAgICAgICMgVXNlIHN5c3Y0LjJ1dy4uLiBzbyB0 aGF0IHN5c3Y0KiBtYXRjaGVzIGl0LgorKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc3lzdjQu MnV3JHtVTkFNRV9WRVJTSU9OfQorKwlleGl0IDs7CisrICAgIGkqODY6T1MvMjoqOiopCisrCSMg SWYgd2Ugd2VyZSBhYmxlIHRvIGZpbmQgYHVuYW1lJywgdGhlbiBFTVggVW5peCBjb21wYXRpYmls aXR5CisrCSMgaXMgcHJvYmFibHkgaW5zdGFsbGVkLgorKwllY2hvICR7VU5BTUVfTUFDSElORX0t cGMtb3MyLWVteAorKwlleGl0IDs7CisrICAgIGkqODY6WFRTLTMwMDoqOlNUT1ApCisrCWVjaG8g JHtVTkFNRV9NQUNISU5FfS11bmtub3duLXN0b3AKKysJZXhpdCA7OworKyAgICBpKjg2OmF0aGVv czoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWF0aGVvcworKwlleGl0IDs7 CisrICAgIGkqODY6c3lsbGFibGU6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc3ls bGFibGUKKysJZXhpdCA7OworKyAgICBpKjg2Okx5bnhPUzoyLio6KiB8IGkqODY6THlueE9TOjMu WzAxXSo6KiB8IGkqODY6THlueE9TOjQuWzAyXSo6KikKKysJZWNobyBpMzg2LXVua25vd24tbHlu eG9zJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIGkqODY6KkRPUzoqOiopCisrCWVj aG8gJHtVTkFNRV9NQUNISU5FfS1wYy1tc2Rvc2RqZ3BwCisrCWV4aXQgOzsKKysgICAgaSo4Njoq OjQuKjoqIHwgaSo4NjpTWVNURU1fVjo0Lio6KikKKysJVU5BTUVfUkVMPWBlY2hvICR7VU5BTUVf UkVMRUFTRX0gfCBzZWQgJ3MvXC9NUCQvLydgCisrCWlmIGdyZXAgTm92ZWxsIC91c3IvaW5jbHVk ZS9saW5rLmggPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgorKwkJZWNobyAke1VOQU1FX01B Q0hJTkV9LXVuaXZlbC1zeXN2JHtVTkFNRV9SRUx9CisrCWVsc2UKKysJCWVjaG8gJHtVTkFNRV9N QUNISU5FfS1wYy1zeXN2JHtVTkFNRV9SRUx9CisrCWZpCisrCWV4aXQgOzsKKysgICAgaSo4Njoq OjU6WzY3OF0qKQorKyAgICAJIyBVbml4V2FyZSA3LngsIE9wZW5VTklYIGFuZCBPcGVuU2VydmVy IDYuCisrCWNhc2UgYC9iaW4vdW5hbWUgLVggfCBncmVwICJeTWFjaGluZSJgIGluCisrCSAgICAq NDg2KikJICAgICBVTkFNRV9NQUNISU5FPWk0ODYgOzsKKysJICAgICpQZW50aXVtKQkgICAgIFVO QU1FX01BQ0hJTkU9aTU4NiA7OworKwkgICAgKlBlbnQqfCpDZWxlcm9uKSBVTkFNRV9NQUNISU5F PWk2ODYgOzsKKysJZXNhYworKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1zeXN2JHtV TkFNRV9SRUxFQVNFfSR7VU5BTUVfU1lTVEVNfSR7VU5BTUVfVkVSU0lPTn0KKysJZXhpdCA7Owor KyAgICBpKjg2Oio6My4yOiopCisrCWlmIHRlc3QgLWYgL3Vzci9vcHRpb25zL2NiLm5hbWU7IHRo ZW4KKysJCVVOQU1FX1JFTD1gc2VkIC1uICdzLy4qVmVyc2lvbiAvL3AnIDwvdXNyL29wdGlvbnMv Y2IubmFtZWAKKysJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1pc2MkVU5BTUVfUkVMCisrCWVs aWYgL2Jpbi91bmFtZSAtWCAyPi9kZXYvbnVsbCA+L2Rldi9udWxsIDsgdGhlbgorKwkJVU5BTUVf UkVMPWAoL2Jpbi91bmFtZSAtWHxncmVwIFJlbGVhc2V8c2VkIC1lICdzLy4qPSAvLycpYAorKwkJ KC9iaW4vdW5hbWUgLVh8Z3JlcCBpODA0ODYgPi9kZXYvbnVsbCkgJiYgVU5BTUVfTUFDSElORT1p NDg2CisrCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudGl1bScgPi9kZXYvbnVs bCkgXAorKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTU4NgorKwkJKC9iaW4vdW5hbWUgLVh8Z3JlcCAn Xk1hY2hpbmUuKlBlbnQgKklJJyA+L2Rldi9udWxsKSBcCisrCQkJJiYgVU5BTUVfTUFDSElORT1p Njg2CisrCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudGl1bSBQcm8nID4vZGV2 L251bGwpIFwKKysJCQkmJiBVTkFNRV9NQUNISU5FPWk2ODYKKysJCWVjaG8gJHtVTkFNRV9NQUNI SU5FfS1wYy1zY28kVU5BTUVfUkVMCisrCWVsc2UKKysJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1w Yy1zeXN2MzIKKysJZmkKKysJZXhpdCA7OworKyAgICBwYzoqOio6KikKKysJIyBMZWZ0IGhlcmUg Zm9yIGNvbXBhdGliaWxpdHk6CisrICAgICAgICAjIHVuYW1lIC1tIHByaW50cyBmb3IgREpHUFAg YWx3YXlzICdwYycsIGJ1dCBpdCBwcmludHMgbm90aGluZyBhYm91dAorKyAgICAgICAgIyB0aGUg cHJvY2Vzc29yLCBzbyB3ZSBwbGF5IHNhZmUgYnkgYXNzdW1pbmcgaTU4Ni4KKysJIyBOb3RlOiB3 aGF0ZXZlciB0aGlzIGlzLCBpdCBNVVNUIGJlIHRoZSBzYW1lIGFzIHdoYXQgY29uZmlnLnN1Ygor KwkjIHByaW50cyBmb3IgdGhlICJkamdwcCIgaG9zdCwgb3IgZWxzZSBHREIgY29uZmlndXJ5IHdp bGwgZGVjaWRlIHRoYXQKKysJIyB0aGlzIGlzIGEgY3Jvc3MtYnVpbGQuCisrCWVjaG8gaTU4Ni1w Yy1tc2Rvc2RqZ3BwCisrICAgICAgICBleGl0IDs7CisrICAgIEludGVsOk1hY2g6Myo6KikKKysJ ZWNobyBpMzg2LXBjLW1hY2gzCisrCWV4aXQgOzsKKysgICAgcGFyYWdvbjoqOio6KikKKysJZWNo byBpODYwLWludGVsLW9zZjEKKysJZXhpdCA7OworKyAgICBpODYwOio6NC4qOiopICMgaTg2MC1T VlI0CisrCWlmIGdyZXAgU3RhcmRlbnQgL3Vzci9pbmNsdWRlL3N5cy91YWRtaW4uaCA+L2Rldi9u dWxsIDI+JjEgOyB0aGVuCisrCSAgZWNobyBpODYwLXN0YXJkZW50LXN5c3Yke1VOQU1FX1JFTEVB U0V9ICMgU3RhcmRlbnQgVmlzdHJhIGk4NjAtU1ZSNAorKwllbHNlICMgQWRkIG90aGVyIGk4NjAt U1ZSNCB2ZW5kb3JzIGJlbG93IGFzIHRoZXkgYXJlIGRpc2NvdmVyZWQuCisrCSAgZWNobyBpODYw LXVua25vd24tc3lzdiR7VU5BTUVfUkVMRUFTRX0gICMgVW5rbm93biBpODYwLVNWUjQKKysJZmkK KysJZXhpdCA7OworKyAgICBtaW5pKjpDVElYOlNZUyo1OiopCisrCSMgIm1pbmlmcmFtZSIKKysJ ZWNobyBtNjgwMTAtY29udmVyZ2VudC1zeXN2CisrCWV4aXQgOzsKKysgICAgbWM2OGs6VU5JWDpT WVNURU01OjMuNTFtKQorKwllY2hvIG02OGstY29udmVyZ2VudC1zeXN2CisrCWV4aXQgOzsKKysg ICAgTTY4MD8wOkQtTklYOjUuMzoqKQorKwllY2hvIG02OGstZGlhYi1kbml4CisrCWV4aXQgOzsK KysgICAgTTY4KjoqOlIzVls1Njc4XSo6KikKKysJdGVzdCAtciAvc3lzVjY4ICYmIHsgZWNobyAn bTY4ay1tb3Rvcm9sYS1zeXN2JzsgZXhpdDsgfSA7OworKyAgICAzWzM0NV0/PzoqOjQuMDozLjAg fCAzWzM0XT8/QToqOjQuMDozLjAgfCAzWzM0XT8/LCo6Kjo0LjA6My4wIHwgM1szNF0/Py8qOio6 NC4wOjMuMCB8IDQ0MDA6Kjo0LjA6My4wIHwgNDg1MDoqOjQuMDozLjAgfCBTS0E0MDoqOjQuMDoz LjAgfCBTRFMyOio6NC4wOjMuMCB8IFNIRzI6Kjo0LjA6My4wIHwgUzc1MDEqOio6NC4wOjMuMCkK KysJT1NfUkVMPScnCisrCXRlc3QgLXIgL2V0Yy8ucmVsaWQgXAorKwkmJiBPU19SRUw9LmBzZWQg LW4gJ3MvW14gXSogW14gXSogXChbMC05XVswLTldXCkuKi9cMS9wJyA8IC9ldGMvLnJlbGlkYAor KwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKKysJICAm JiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfQorKwkvYmluL3VuYW1l IC1wIDI+L2Rldi9udWxsIHwgL2Jpbi9ncmVwIGVudGl1bSA+L2Rldi9udWxsIFwKKysJICAmJiB7 IGVjaG8gaTU4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfSA7OworKyAgICAzWzM0XT8/ Oio6NC4wOiogfCAzWzM0XT8/LCo6Kjo0LjA6KikKKysgICAgICAgIC9iaW4vdW5hbWUgLXAgMj4v ZGV2L251bGwgfCBncmVwIDg2ID4vZGV2L251bGwgXAorKyAgICAgICAgICAmJiB7IGVjaG8gaTQ4 Ni1uY3Itc3lzdjQ7IGV4aXQ7IH0gOzsKKysgICAgTkNSKjoqOjQuMjoqIHwgTVBSQVMqOio6NC4y OiopCisrCU9TX1JFTD0nLjMnCisrCXRlc3QgLXIgL2V0Yy8ucmVsaWQgXAorKwkgICAgJiYgT1Nf UkVMPS5gc2VkIC1uICdzL1teIF0qIFteIF0qIFwoWzAtOV1bMC05XVwpLiovXDEvcCcgPCAvZXRj Ly5yZWxpZGAKKysJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IGdyZXAgODYgPi9kZXYvbnVs bCBcCisrCSAgICAmJiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfQor KwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgL2Jpbi9ncmVwIGVudGl1bSA+L2Rldi9udWxs IFwKKysJICAgICYmIHsgZWNobyBpNTg2LW5jci1zeXN2NC4zJHtPU19SRUx9OyBleGl0OyB9Cisr CS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCAvYmluL2dyZXAgcHRlcm9uID4vZGV2L251bGwg XAorKwkgICAgJiYgeyBlY2hvIGk1ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7IH0gOzsK KysgICAgbTY4KjpMeW54T1M6Mi4qOiogfCBtNjgqOkx5bnhPUzozLjAqOiopCisrCWVjaG8gbTY4 ay11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBtYzY4MDMw OlVOSVhfU3lzdGVtX1Y6NC4qOiopCisrCWVjaG8gbTY4ay1hdGFyaS1zeXN2NAorKwlleGl0IDs7 CisrICAgIFRTVU5BTUk6THlueE9TOjIuKjoqKQorKwllY2hvIHNwYXJjLXVua25vd24tbHlueG9z JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIHJzNjAwMDpMeW54T1M6Mi4qOiopCisr CWVjaG8gcnM2MDAwLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7Cisr ICAgIFBvd2VyUEM6THlueE9TOjIuKjoqIHwgUG93ZXJQQzpMeW54T1M6My5bMDFdKjoqIHwgUG93 ZXJQQzpMeW54T1M6NC5bMDJdKjoqKQorKwllY2hvIHBvd2VycGMtdW5rbm93bi1seW54b3Mke1VO QU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgU01bQkVdUzpVTklYX1NWOio6KikKKysJZWNo byBtaXBzLWRkZS1zeXN2JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIFJNKjpSZWxp YW50VU5JWC0qOio6KikKKysJZWNobyBtaXBzLXNuaS1zeXN2NAorKwlleGl0IDs7CisrICAgIFJN KjpTSU5JWC0qOio6KikKKysJZWNobyBtaXBzLXNuaS1zeXN2NAorKwlleGl0IDs7CisrICAgICo6 U0lOSVgtKjoqOiopCisrCWlmIHVuYW1lIC1wIDI+L2Rldi9udWxsID4vZGV2L251bGwgOyB0aGVu CisrCQlVTkFNRV9NQUNISU5FPWAodW5hbWUgLXApIDI+L2Rldi9udWxsYAorKwkJZWNobyAke1VO QU1FX01BQ0hJTkV9LXNuaS1zeXN2NAorKwllbHNlCisrCQllY2hvIG5zMzJrLXNuaS1zeXN2Cisr CWZpCisrCWV4aXQgOzsKKysgICAgUEVOVElVTToqOjQuMCo6KikgIyBVbmlzeXMgYENsZWFyUGF0 aCBITVAgSVggNDAwMCcgU1ZSNC9NUCBlZmZvcnQKKysgICAgICAgICAgICAgICAgICAgICAgIyBz YXlzIDxSaWNoYXJkLk0uQmFydGVsQGNjTWFpbC5DZW5zdXMuR09WPgorKyAgICAgICAgZWNobyBp NTg2LXVuaXN5cy1zeXN2NAorKyAgICAgICAgZXhpdCA7OworKyAgICAqOlVOSVhfU3lzdGVtX1Y6 NCo6RlRYKikKKysJIyBGcm9tIEdlcmFsZCBIZXdlcyA8aGV3ZXNAb3Blbm1hcmtldC5jb20+Lgor KwkjIEhvdyBhYm91dCBkaWZmZXJlbnRpYXRpbmcgYmV0d2VlbiBzdHJhdHVzIGFyY2hpdGVjdHVy ZXM/IC1kam0KKysJZWNobyBocHBhMS4xLXN0cmF0dXMtc3lzdjQKKysJZXhpdCA7OworKyAgICAq Oio6KjpGVFgqKQorKwkjIEZyb20gc2VhbmZAc3dkYy5zdHJhdHVzLmNvbS4KKysJZWNobyBpODYw LXN0cmF0dXMtc3lzdjQKKysJZXhpdCA7OworKyAgICBpKjg2OlZPUzoqOiopCisrCSMgRnJvbSBQ YXVsLkdyZWVuQHN0cmF0dXMuY29tLgorKwllY2hvICR7VU5BTUVfTUFDSElORX0tc3RyYXR1cy12 b3MKKysJZXhpdCA7OworKyAgICAqOlZPUzoqOiopCisrCSMgRnJvbSBQYXVsLkdyZWVuQHN0cmF0 dXMuY29tLgorKwllY2hvIGhwcGExLjEtc3RyYXR1cy12b3MKKysJZXhpdCA7OworKyAgICBtYzY4 KjpBL1VYOio6KikKKysJZWNobyBtNjhrLWFwcGxlLWF1eCR7VU5BTUVfUkVMRUFTRX0KKysJZXhp dCA7OworKyAgICBuZXdzKjpORVdTLU9TOjYqOiopCisrCWVjaG8gbWlwcy1zb255LW5ld3NvczYK KysJZXhpdCA7OworKyAgICBSWzM0XTAwMDoqU3lzdGVtX1YqOio6KiB8IFI0MDAwOlVOSVhfU1lT VjoqOiogfCBSKjAwMDpVTklYX1NWOio6KikKKysJaWYgWyAtZCAvdXNyL25lYyBdOyB0aGVuCisr CSAgICAgICAgZWNobyBtaXBzLW5lYy1zeXN2JHtVTkFNRV9SRUxFQVNFfQorKwllbHNlCisrCSAg ICAgICAgZWNobyBtaXBzLXVua25vd24tc3lzdiR7VU5BTUVfUkVMRUFTRX0KKysJZmkKKysgICAg ICAgIGV4aXQgOzsKKysgICAgQmVCb3g6QmVPUzoqOiopCSMgQmVPUyBydW5uaW5nIG9uIGhhcmR3 YXJlIG1hZGUgYnkgQmUsIFBQQyBvbmx5LgorKwllY2hvIHBvd2VycGMtYmUtYmVvcworKwlleGl0 IDs7CisrICAgIEJlTWFjOkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBNYWMgb3IgTWFjIGNs b25lLCBQUEMgb25seS4KKysJZWNobyBwb3dlcnBjLWFwcGxlLWJlb3MKKysJZXhpdCA7OworKyAg ICBCZVBDOkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBJbnRlbCBQQyBjb21wYXRpYmxlLgor KwllY2hvIGk1ODYtcGMtYmVvcworKwlleGl0IDs7CisrICAgIEJlUEM6SGFpa3U6KjoqKQkjIEhh aWt1IHJ1bm5pbmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4KKysJZWNobyBpNTg2LXBjLWhhaWt1 CisrCWV4aXQgOzsKKysgICAgU1gtNDpTVVBFUi1VWDoqOiopCisrCWVjaG8gc3g0LW5lYy1zdXBl cnV4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIFNYLTU6U1VQRVItVVg6KjoqKQor KwllY2hvIHN4NS1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBT WC02OlNVUEVSLVVYOio6KikKKysJZWNobyBzeDYtbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9 CisrCWV4aXQgOzsKKysgICAgU1gtNzpTVVBFUi1VWDoqOiopCisrCWVjaG8gc3g3LW5lYy1zdXBl cnV4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIFNYLTg6U1VQRVItVVg6KjoqKQor KwllY2hvIHN4OC1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBT WC04UjpTVVBFUi1VWDoqOiopCisrCWVjaG8gc3g4ci1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFT RX0KKysJZXhpdCA7OworKyAgICBQb3dlcio6UmhhcHNvZHk6KjoqKQorKwllY2hvIHBvd2VycGMt YXBwbGUtcmhhcHNvZHkke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgKjpSaGFwc29k eToqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1hcHBsZS1yaGFwc29keSR7VU5BTUVfUkVM RUFTRX0KKysJZXhpdCA7OworKyAgICAqOkRhcndpbjoqOiopCisrCVVOQU1FX1BST0NFU1NPUj1g dW5hbWUgLXBgIHx8IFVOQU1FX1BST0NFU1NPUj11bmtub3duCisrCWNhc2UgJFVOQU1FX1BST0NF U1NPUiBpbgorKwkgICAgaTM4NikKKysJCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKysJCWlmIFsg IiRDQ19GT1JfQlVJTEQiICE9ICdub19jb21waWxlcl9mb3VuZCcgXTsgdGhlbgorKwkJICBpZiAo ZWNobyAnI2lmZGVmIF9fTFA2NF9fJzsgZWNobyBJU182NEJJVF9BUkNIOyBlY2hvICcjZW5kaWYn KSB8IFwKKysJCSAgICAgIChDQ09QVFM9ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCkg fCBcCisrCQkgICAgICBncmVwIElTXzY0QklUX0FSQ0ggPi9kZXYvbnVsbAorKwkJICB0aGVuCisr CQkgICAgICBVTkFNRV9QUk9DRVNTT1I9Ing4Nl82NCIKKysJCSAgZmkKKysJCWZpIDs7CisrCSAg ICB1bmtub3duKSBVTkFNRV9QUk9DRVNTT1I9cG93ZXJwYyA7OworKwllc2FjCisrCWVjaG8gJHtV TkFNRV9QUk9DRVNTT1J9LWFwcGxlLWRhcndpbiR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7Owor KyAgICAqOnByb2NudG8qOio6KiB8ICo6UU5YOlswMTIzNDU2Nzg5XSo6KikKKysJVU5BTUVfUFJP Q0VTU09SPWB1bmFtZSAtcGAKKysJaWYgdGVzdCAiJFVOQU1FX1BST0NFU1NPUiIgPSAieDg2Ijsg dGhlbgorKwkJVU5BTUVfUFJPQ0VTU09SPWkzODYKKysJCVVOQU1FX01BQ0hJTkU9cGMKKysJZmkK KysJZWNobyAke1VOQU1FX1BST0NFU1NPUn0tJHtVTkFNRV9NQUNISU5FfS1udG8tcW54JHtVTkFN RV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6UU5YOio6NCopCisrCWVjaG8gaTM4Ni1wYy1x bngKKysJZXhpdCA7OworKyAgICBOU0UtPzpOT05TVE9QX0tFUk5FTDoqOiopCisrCWVjaG8gbnNl LXRhbmRlbS1uc2ske1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgTlNSLT86Tk9OU1RP UF9LRVJORUw6KjoqKQorKwllY2hvIG5zci10YW5kZW0tbnNrJHtVTkFNRV9SRUxFQVNFfQorKwll eGl0IDs7CisrICAgICo6Tm9uU3RvcC1VWDoqOiopCisrCWVjaG8gbWlwcy1jb21wYXEtbm9uc3Rv cHV4CisrCWV4aXQgOzsKKysgICAgQlMyMDAwOlBPU0lYKjoqOiopCisrCWVjaG8gYnMyMDAwLXNp ZW1lbnMtc3lzdgorKwlleGl0IDs7CisrICAgIERTLyo6VU5JWF9TeXN0ZW1fVjoqOiopCisrCWVj aG8gJHtVTkFNRV9NQUNISU5FfS0ke1VOQU1FX1NZU1RFTX0tJHtVTkFNRV9SRUxFQVNFfQorKwll eGl0IDs7CisrICAgICo6UGxhbjk6KjoqKQorKwkjICJ1bmFtZSAtbSIgaXMgbm90IGNvbnNpc3Rl bnQsIHNvIHVzZSAkY3B1dHlwZSBpbnN0ZWFkLiAzODYKKysJIyBpcyBjb252ZXJ0ZWQgdG8gaTM4 NiBmb3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciB4ODYKKysJIyBvcGVyYXRpbmcgc3lzdGVtcy4K KysJaWYgdGVzdCAiJGNwdXR5cGUiID0gIjM4NiI7IHRoZW4KKysJICAgIFVOQU1FX01BQ0hJTkU9 aTM4NgorKwllbHNlCisrCSAgICBVTkFNRV9NQUNISU5FPSIkY3B1dHlwZSIKKysJZmkKKysJZWNo byAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tcGxhbjkKKysJZXhpdCA7OworKyAgICAqOlRPUFMt MTA6KjoqKQorKwllY2hvIHBkcDEwLXVua25vd24tdG9wczEwCisrCWV4aXQgOzsKKysgICAgKjpU RU5FWDoqOiopCisrCWVjaG8gcGRwMTAtdW5rbm93bi10ZW5leAorKwlleGl0IDs7CisrICAgIEtT MTA6VE9QUy0yMDoqOiogfCBLTDEwOlRPUFMtMjA6KjoqIHwgVFlQRTQ6VE9QUy0yMDoqOiopCisr CWVjaG8gcGRwMTAtZGVjLXRvcHMyMAorKwlleGl0IDs7CisrICAgIFhLTC0xOlRPUFMtMjA6Kjoq IHwgVFlQRTU6VE9QUy0yMDoqOiopCisrCWVjaG8gcGRwMTAteGtsLXRvcHMyMAorKwlleGl0IDs7 CisrICAgICo6VE9QUy0yMDoqOiopCisrCWVjaG8gcGRwMTAtdW5rbm93bi10b3BzMjAKKysJZXhp dCA7OworKyAgICAqOklUUzoqOiopCisrCWVjaG8gcGRwMTAtdW5rbm93bi1pdHMKKysJZXhpdCA7 OworKyAgICBTRUk6KjoqOlNFSVVYKQorKyAgICAgICAgZWNobyBtaXBzLXNlaS1zZWl1eCR7VU5B TUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOkRyYWdvbkZseToqOiopCisrCWVjaG8gJHtV TkFNRV9NQUNISU5FfS11bmtub3duLWRyYWdvbmZseWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2Vk IC1lICdzL1stKF0uKi8vJ2AKKysJZXhpdCA7OworKyAgICAqOipWTVM6KjoqKQorKyAgICAJVU5B TUVfTUFDSElORT1gKHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKKysJY2FzZSAiJHtVTkFNRV9NQUNI SU5FfSIgaW4KKysJICAgIEEqKSBlY2hvIGFscGhhLWRlYy12bXMgOyBleGl0IDs7CisrCSAgICBJ KikgZWNobyBpYTY0LWRlYy12bXMgOyBleGl0IDs7CisrCSAgICBWKikgZWNobyB2YXgtZGVjLXZt cyA7IGV4aXQgOzsKKysJZXNhYyA7OworKyAgICAqOlhFTklYOio6U3lzVikKKysJZWNobyBpMzg2 LXBjLXhlbml4CisrCWV4aXQgOzsKKysgICAgaSo4Njpza3lvczoqOiopCisrCWVjaG8gJHtVTkFN RV9NQUNISU5FfS1wYy1za3lvc2BlY2hvICR7VU5BTUVfUkVMRUFTRX1gIHwgc2VkIC1lICdzLyAu KiQvLycKKysJZXhpdCA7OworKyAgICBpKjg2OnJkb3M6KjoqKQorKwllY2hvICR7VU5BTUVfTUFD SElORX0tcGMtcmRvcworKwlleGl0IDs7CisrICAgIGkqODY6QVJPUzoqOiopCisrCWVjaG8gJHtV TkFNRV9NQUNISU5FfS1wYy1hcm9zCisrCWV4aXQgOzsKKytlc2FjCisrCisrI2VjaG8gJyhObyB1 bmFtZSBjb21tYW5kIG9yIHVuYW1lIG91dHB1dCBub3QgcmVjb2duaXplZC4pJyAxPiYyCisrI2Vj aG8gIiR7VU5BTUVfTUFDSElORX06JHtVTkFNRV9TWVNURU19OiR7VU5BTUVfUkVMRUFTRX06JHtV TkFNRV9WRVJTSU9OfSIgMT4mMgorKworK2V2YWwgJHNldF9jY19mb3JfYnVpbGQKKytjYXQgPiRk dW1teS5jIDw8RU9GCisrI2lmZGVmIF9TRVFVRU5UXworKyMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+ CisrIyBpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorKyNlbmRpZgorK21haW4gKCkKKyt7CisrI2lm IGRlZmluZWQgKHNvbnkpCisrI2lmIGRlZmluZWQgKE1JUFNFQikKKysgIC8qIEJGRCB3YW50cyAi YnNkIiBpbnN0ZWFkIG9mICJuZXdzb3MiLiAgUGVyaGFwcyBCRkQgc2hvdWxkIGJlIGNoYW5nZWQs CisrICAgICBJIGRvbid0IGtub3cuLi4uICAqLworKyAgcHJpbnRmICgibWlwcy1zb255LWJzZFxu Iik7IGV4aXQgKDApOworKyNlbHNlCisrI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorKyAgcHJpbnRm ICgibTY4ay1zb255LW5ld3NvcyVzXG4iLAorKyNpZmRlZiBORVdTT1M0CisrICAgICAgICAgICI0 IgorKyNlbHNlCisrCSAgIiIKKysjZW5kaWYKKysgICAgICAgICApOyBleGl0ICgwKTsKKysjZW5k aWYKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoX19hcm0pICYmIGRlZmluZWQgKF9fYWNvcm4p ICYmIGRlZmluZWQgKF9fdW5peCkKKysgIHByaW50ZiAoImFybS1hY29ybi1yaXNjaXhcbiIpOyBl eGl0ICgwKTsKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoaHAzMDApICYmICFkZWZpbmVkICho cHV4KQorKyAgcHJpbnRmICgibTY4ay1ocC1ic2RcbiIpOyBleGl0ICgwKTsKKysjZW5kaWYKKysK KysjaWYgZGVmaW5lZCAoTmVYVCkKKysjaWYgIWRlZmluZWQgKF9fQVJDSElURUNUVVJFX18pCisr I2RlZmluZSBfX0FSQ0hJVEVDVFVSRV9fICJtNjhrIgorKyNlbmRpZgorKyAgaW50IHZlcnNpb247 CisrICB2ZXJzaW9uPWAoaG9zdGluZm8gfCBzZWQgLW4gJ3MvLipOZVhUIE1hY2ggXChbMC05XSpc KS4qL1wxL3AnKSAyPi9kZXYvbnVsbGA7CisrICBpZiAodmVyc2lvbiA8IDQpCisrICAgIHByaW50 ZiAoIiVzLW5leHQtbmV4dHN0ZXAlZFxuIiwgX19BUkNISVRFQ1RVUkVfXywgdmVyc2lvbik7Cisr ICBlbHNlCisrICAgIHByaW50ZiAoIiVzLW5leHQtb3BlbnN0ZXAlZFxuIiwgX19BUkNISVRFQ1RV UkVfXywgdmVyc2lvbik7CisrICBleGl0ICgwKTsKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAo TVVMVElNQVgpIHx8IGRlZmluZWQgKG4xNikKKysjaWYgZGVmaW5lZCAoVU1BWFYpCisrICBwcmlu dGYgKCJuczMyay1lbmNvcmUtc3lzdlxuIik7IGV4aXQgKDApOworKyNlbHNlCisrI2lmIGRlZmlu ZWQgKENNVSkKKysgIHByaW50ZiAoIm5zMzJrLWVuY29yZS1tYWNoXG4iKTsgZXhpdCAoMCk7Cisr I2Vsc2UKKysgIHByaW50ZiAoIm5zMzJrLWVuY29yZS1ic2RcbiIpOyBleGl0ICgwKTsKKysjZW5k aWYKKysjZW5kaWYKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoX18zODZCU0RfXykKKysgIHBy aW50ZiAoImkzODYtcGMtYnNkXG4iKTsgZXhpdCAoMCk7CisrI2VuZGlmCisrCisrI2lmIGRlZmlu ZWQgKHNlcXVlbnQpCisrI2lmIGRlZmluZWQgKGkzODYpCisrICBwcmludGYgKCJpMzg2LXNlcXVl bnQtZHluaXhcbiIpOyBleGl0ICgwKTsKKysjZW5kaWYKKysjaWYgZGVmaW5lZCAobnMzMjAwMCkK KysgIHByaW50ZiAoIm5zMzJrLXNlcXVlbnQtZHluaXhcbiIpOyBleGl0ICgwKTsKKysjZW5kaWYK KysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoX1NFUVVFTlRfKQorKyAgICBzdHJ1Y3QgdXRzbmFt ZSB1bjsKKysKKysgICAgdW5hbWUoJnVuKTsKKysKKysgICAgaWYgKHN0cm5jbXAodW4udmVyc2lv biwgIlYyIiwgMikgPT0gMCkgeworKwlwcmludGYgKCJpMzg2LXNlcXVlbnQtcHR4MlxuIik7IGV4 aXQgKDApOworKyAgICB9CisrICAgIGlmIChzdHJuY21wKHVuLnZlcnNpb24sICJWMSIsIDIpID09 IDApIHsgLyogWFhYIGlzIFYxIGNvcnJlY3Q/ICovCisrCXByaW50ZiAoImkzODYtc2VxdWVudC1w dHgxXG4iKTsgZXhpdCAoMCk7CisrICAgIH0KKysgICAgcHJpbnRmICgiaTM4Ni1zZXF1ZW50LXB0 eFxuIik7IGV4aXQgKDApOworKworKyNlbmRpZgorKworKyNpZiBkZWZpbmVkICh2YXgpCisrIyBp ZiAhZGVmaW5lZCAodWx0cml4KQorKyMgIGluY2x1ZGUgPHN5cy9wYXJhbS5oPgorKyMgIGlmIGRl ZmluZWQgKEJTRCkKKysjICAgaWYgQlNEID09IDQzCisrICAgICAgcHJpbnRmICgidmF4LWRlYy1i c2Q0LjNcbiIpOyBleGl0ICgwKTsKKysjICAgZWxzZQorKyMgICAgaWYgQlNEID09IDE5OTAwNgor KyAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkNC4zcmVub1xuIik7IGV4aXQgKDApOworKyMgICAg ZWxzZQorKyAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkXG4iKTsgZXhpdCAoMCk7CisrIyAgICBl bmRpZgorKyMgICBlbmRpZgorKyMgIGVsc2UKKysgICAgcHJpbnRmICgidmF4LWRlYy1ic2RcbiIp OyBleGl0ICgwKTsKKysjICBlbmRpZgorKyMgZWxzZQorKyAgICBwcmludGYgKCJ2YXgtZGVjLXVs dHJpeFxuIik7IGV4aXQgKDApOworKyMgZW5kaWYKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAo YWxsaWFudCkgJiYgZGVmaW5lZCAoaTg2MCkKKysgIHByaW50ZiAoImk4NjAtYWxsaWFudC1ic2Rc biIpOyBleGl0ICgwKTsKKysjZW5kaWYKKysKKysgIGV4aXQgKDEpOworK30KKytFT0YKKysKKysk Q0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAyPi9kZXYvbnVsbCAmJiBTWVNURU1fTkFN RT1gJGR1bW15YCAmJgorKwl7IGVjaG8gIiRTWVNURU1fTkFNRSI7IGV4aXQ7IH0KKysKKysjIEFw b2xsb3MgcHV0IHRoZSBzeXN0ZW0gdHlwZSBpbiB0aGUgZW52aXJvbm1lbnQuCisrCisrdGVzdCAt ZCAvdXNyL2Fwb2xsbyAmJiB7IGVjaG8gJHtJU1B9LWFwb2xsby0ke1NZU1RZUEV9OyBleGl0OyB9 CisrCisrIyBDb252ZXggdmVyc2lvbnMgdGhhdCBwcmVkYXRlIHVuYW1lIGNhbiB1c2UgZ2V0c3lz aW5mbygxKQorKworK2lmIFsgLXggL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyBdCisrdGhlbgorKyAg ICBjYXNlIGBnZXRzeXNpbmZvIC1mIGNwdV90eXBlYCBpbgorKyAgICBjMSopCisrCWVjaG8gYzEt Y29udmV4LWJzZAorKwlleGl0IDs7CisrICAgIGMyKikKKysJaWYgZ2V0c3lzaW5mbyAtZiBzY2Fs YXJfYWNjCisrCXRoZW4gZWNobyBjMzItY29udmV4LWJzZAorKwllbHNlIGVjaG8gYzItY29udmV4 LWJzZAorKwlmaQorKwlleGl0IDs7CisrICAgIGMzNCopCisrCWVjaG8gYzM0LWNvbnZleC1ic2QK KysJZXhpdCA7OworKyAgICBjMzgqKQorKwllY2hvIGMzOC1jb252ZXgtYnNkCisrCWV4aXQgOzsK KysgICAgYzQqKQorKwllY2hvIGM0LWNvbnZleC1ic2QKKysJZXhpdCA7OworKyAgICBlc2FjCisr ZmkKKysKKytjYXQgPiYyIDw8RU9GCisrJDA6IHVuYWJsZSB0byBndWVzcyBzeXN0ZW0gdHlwZQor KworK1RoaXMgc2NyaXB0LCBsYXN0IG1vZGlmaWVkICR0aW1lc3RhbXAsIGhhcyBmYWlsZWQgdG8g cmVjb2duaXplCisrdGhlIG9wZXJhdGluZyBzeXN0ZW0geW91IGFyZSB1c2luZy4gSXQgaXMgYWR2 aXNlZCB0aGF0IHlvdQorK2Rvd25sb2FkIHRoZSBtb3N0IHVwIHRvIGRhdGUgdmVyc2lvbiBvZiB0 aGUgY29uZmlnIHNjcmlwdHMgZnJvbQorKworKyAgaHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3Jn L2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9wbGFpbjtmPWNvbmZpZy5ndWVzcztoYj1IRUFE CisrYW5kCisrICBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZpZy5n aXQ7YT1ibG9iX3BsYWluO2Y9Y29uZmlnLnN1YjtoYj1IRUFECisrCisrSWYgdGhlIHZlcnNpb24g eW91IHJ1biAoJDApIGlzIGFscmVhZHkgdXAgdG8gZGF0ZSwgcGxlYXNlCisrc2VuZCB0aGUgZm9s bG93aW5nIGRhdGEgYW5kIGFueSBpbmZvcm1hdGlvbiB5b3UgdGhpbmsgbWlnaHQgYmUKKytwZXJ0 aW5lbnQgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+IGluIG9yZGVyIHRvIHByb3ZpZGUgdGhl IG5lZWRlZAorK2luZm9ybWF0aW9uIHRvIGhhbmRsZSB5b3VyIHN5c3RlbS4KKysKKytjb25maWcu Z3Vlc3MgdGltZXN0YW1wID0gJHRpbWVzdGFtcAorKworK3VuYW1lIC1tID0gYCh1bmFtZSAtbSkg Mj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAorK3VuYW1lIC1yID0gYCh1bmFtZSAtcikgMj4v ZGV2L251bGwgfHwgZWNobyB1bmtub3duYAorK3VuYW1lIC1zID0gYCh1bmFtZSAtcykgMj4vZGV2 L251bGwgfHwgZWNobyB1bmtub3duYAorK3VuYW1lIC12ID0gYCh1bmFtZSAtdikgMj4vZGV2L251 bGwgfHwgZWNobyB1bmtub3duYAorKworKy91c3IvYmluL3VuYW1lIC1wID0gYCgvdXNyL2Jpbi91 bmFtZSAtcCkgMj4vZGV2L251bGxgCisrL2Jpbi91bmFtZSAtWCAgICAgPSBgKC9iaW4vdW5hbWUg LVgpIDI+L2Rldi9udWxsYAorKworK2hvc3RpbmZvICAgICAgICAgICAgICAgPSBgKGhvc3RpbmZv KSAyPi9kZXYvbnVsbGAKKysvYmluL3VuaXZlcnNlICAgICAgICAgID0gYCgvYmluL3VuaXZlcnNl KSAyPi9kZXYvbnVsbGAKKysvdXNyL2Jpbi9hcmNoIC1rICAgICAgID0gYCgvdXNyL2Jpbi9hcmNo IC1rKSAyPi9kZXYvbnVsbGAKKysvYmluL2FyY2ggICAgICAgICAgICAgID0gYCgvYmluL2FyY2gp IDI+L2Rldi9udWxsYAorKy91c3IvYmluL29zbGV2ZWwgICAgICAgPSBgKC91c3IvYmluL29zbGV2 ZWwpIDI+L2Rldi9udWxsYAorKy91c3IvY29udmV4L2dldHN5c2luZm8gPSBgKC91c3IvY29udmV4 L2dldHN5c2luZm8pIDI+L2Rldi9udWxsYAorKworK1VOQU1FX01BQ0hJTkUgPSAke1VOQU1FX01B Q0hJTkV9CisrVU5BTUVfUkVMRUFTRSA9ICR7VU5BTUVfUkVMRUFTRX0KKytVTkFNRV9TWVNURU0g ID0gJHtVTkFNRV9TWVNURU19CisrVU5BTUVfVkVSU0lPTiA9ICR7VU5BTUVfVkVSU0lPTn0KKytF T0YKKysKKytleGl0IDEKKysKKysjIExvY2FsIHZhcmlhYmxlczoKKysjIGV2YWw6IChhZGQtaG9v ayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKysjIHRpbWUtc3RhbXAtc3RhcnQ6ICJ0 aW1lc3RhbXA9JyIKKysjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZCIKKysjIHRp bWUtc3RhbXAtZW5kOiAiJyIKKysjIEVuZDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9j b25maWcvY29uZmlnLnN1YiBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2NvbmZpZy5zdWIKKy0t LSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvY29uZmlnLnN1YgkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY29uZmlnLnN1 YgkyMDExLTAyLTA4IDIyOjM5OjU1LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSwxNzA1IEBA CisrIyEgL2Jpbi9zaAorKyMgQ29uZmlndXJhdGlvbiB2YWxpZGF0aW9uIHN1YnJvdXRpbmUgc2Ny aXB0LgorKyMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5 OTcsIDE5OTgsIDE5OTksCisrIyAgIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUs IDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkKKysjICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrCisrdGltZXN0YW1wPScyMDA5LTExLTIwJworKworKyMgVGhpcyBmaWxlIGlzIChpbiBw cmluY2lwbGUpIGNvbW1vbiB0byBBTEwgR05VIHNvZnR3YXJlLgorKyMgVGhlIHByZXNlbmNlIG9m IGEgbWFjaGluZSBpbiB0aGlzIGZpbGUgc3VnZ2VzdHMgdGhhdCBTT01FIEdOVSBzb2Z0d2FyZQor KyMgY2FuIGhhbmRsZSB0aGF0IG1hY2hpbmUuICBJdCBkb2VzIG5vdCBpbXBseSBBTEwgR05VIHNv ZnR3YXJlIGNhbi4KKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y CisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor KyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrIyBGb3VuZGF0aW9uLCBJbmMuLCA1 MSBGcmFua2xpbiBTdHJlZXQgLSBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQorKyMgMDIxMTAtMTMw MSwgVVNBLgorKyMKKysjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKKysjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQg b2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQorKyMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2Vu ZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKKysjIHRoZSBzYW1l IGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJv Z3JhbS4KKysKKysKKysjIFBsZWFzZSBzZW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdu dS5vcmc+LiAgU3VibWl0IGEgY29udGV4dAorKyMgZGlmZiBhbmQgYSBwcm9wZXJseSBmb3JtYXR0 ZWQgR05VIENoYW5nZUxvZyBlbnRyeS4KKysjCisrIyBDb25maWd1cmF0aW9uIHN1YnJvdXRpbmUg dG8gdmFsaWRhdGUgYW5kIGNhbm9uaWNhbGl6ZSBhIGNvbmZpZ3VyYXRpb24gdHlwZS4KKysjIFN1 cHBseSB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gdHlwZSBhcyBhbiBhcmd1bWVudC4KKysj IElmIGl0IGlzIGludmFsaWQsIHdlIHByaW50IGFuIGVycm9yIG1lc3NhZ2Ugb24gc3RkZXJyIGFu ZCBleGl0IHdpdGggY29kZSAxLgorKyMgT3RoZXJ3aXNlLCB3ZSBwcmludCB0aGUgY2Fub25pY2Fs IGNvbmZpZyB0eXBlIG9uIHN0ZG91dCBhbmQgc3VjY2VlZC4KKysKKysjIFlvdSBjYW4gZ2V0IHRo ZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIHNjcmlwdCBmcm9tOgorKyMgaHR0cDovL2dpdC5zYXZh bm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9wbGFpbjtmPWNvbmZpZy5z dWI7aGI9SEVBRAorKworKyMgVGhpcyBmaWxlIGlzIHN1cHBvc2VkIHRvIGJlIHRoZSBzYW1lIGZv ciBhbGwgR05VIHBhY2thZ2VzCisrIyBhbmQgcmVjb2duaXplIGFsbCB0aGUgQ1BVIHR5cGVzLCBz eXN0ZW0gdHlwZXMgYW5kIGFsaWFzZXMKKysjIHRoYXQgYXJlIG1lYW5pbmdmdWwgd2l0aCAqYW55 KiBHTlUgc29mdHdhcmUuCisrIyBFYWNoIHBhY2thZ2UgaXMgcmVzcG9uc2libGUgZm9yIHJlcG9y dGluZyB3aGljaCB2YWxpZCBjb25maWd1cmF0aW9ucworKyMgaXQgZG9lcyBub3Qgc3VwcG9ydC4g IFRoZSB1c2VyIHNob3VsZCBiZSBhYmxlIHRvIGRpc3Rpbmd1aXNoCisrIyBhIGZhaWx1cmUgdG8g c3VwcG9ydCBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gZnJvbSBhIG1lYW5pbmdsZXNzCisrIyBjb25m aWd1cmF0aW9uLgorKworKyMgVGhlIGdvYWwgb2YgdGhpcyBmaWxlIGlzIHRvIG1hcCBhbGwgdGhl IHZhcmlvdXMgdmFyaWF0aW9ucyBvZiBhIGdpdmVuCisrIyBtYWNoaW5lIHNwZWNpZmljYXRpb24g aW50byBhIHNpbmdsZSBzcGVjaWZpY2F0aW9uIGluIHRoZSBmb3JtOgorKyMJQ1BVX1RZUEUtTUFO VUZBQ1RVUkVSLU9QRVJBVElOR19TWVNURU0KKysjIG9yIGluIHNvbWUgY2FzZXMsIHRoZSBuZXdl ciBmb3VyLXBhcnQgZm9ybToKKysjCUNQVV9UWVBFLU1BTlVGQUNUVVJFUi1LRVJORUwtT1BFUkFU SU5HX1NZU1RFTQorKyMgSXQgaXMgd3JvbmcgdG8gZWNobyBhbnkgb3RoZXIgdHlwZSBvZiBzcGVj aWZpY2F0aW9uLgorKworK21lPWBlY2hvICIkMCIgfCBzZWQgLWUgJ3MsLiovLCwnYAorKworK3Vz YWdlPSJcCisrVXNhZ2U6ICQwIFtPUFRJT05dIENQVS1NRlItT1BTWVMKKysgICAgICAgJDAgW09Q VElPTl0gQUxJQVMKKysKKytDYW5vbmljYWxpemUgYSBjb25maWd1cmF0aW9uIG5hbWUuCisrCisr T3BlcmF0aW9uIG1vZGVzOgorKyAgLWgsIC0taGVscCAgICAgICAgIHByaW50IHRoaXMgaGVscCwg dGhlbiBleGl0CisrICAtdCwgLS10aW1lLXN0YW1wICAgcHJpbnQgZGF0ZSBvZiBsYXN0IG1vZGlm aWNhdGlvbiwgdGhlbiBleGl0CisrICAtdiwgLS12ZXJzaW9uICAgICAgcHJpbnQgdmVyc2lvbiBu dW1iZXIsIHRoZW4gZXhpdAorKworK1JlcG9ydCBidWdzIGFuZCBwYXRjaGVzIHRvIDxjb25maWct cGF0Y2hlc0BnbnUub3JnPi4iCisrCisrdmVyc2lvbj0iXAorK0dOVSBjb25maWcuc3ViICgkdGlt ZXN0YW1wKQorKworK0NvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5Niwg MTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwKKysyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAy MDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworK1RoaXMg aXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4g IFRoZXJlIGlzIE5PCisrd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgorKworK2hlbHA9IgorK1RyeSBcYCRt ZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKKysKKysjIFBhcnNlIGNvbW1hbmQgbGlu ZQorK3doaWxlIHRlc3QgJCMgLWd0IDAgOyBkbworKyAgY2FzZSAkMSBpbgorKyAgICAtLXRpbWUt c3RhbXAgfCAtLXRpbWUqIHwgLXQgKQorKyAgICAgICBlY2hvICIkdGltZXN0YW1wIiA7IGV4aXQg OzsKKysgICAgLS12ZXJzaW9uIHwgLXYgKQorKyAgICAgICBlY2hvICIkdmVyc2lvbiIgOyBleGl0 IDs7CisrICAgIC0taGVscCB8IC0taCogfCAtaCApCisrICAgICAgIGVjaG8gIiR1c2FnZSI7IGV4 aXQgOzsKKysgICAgLS0gKSAgICAgIyBTdG9wIG9wdGlvbiBwcm9jZXNzaW5nCisrICAgICAgIHNo aWZ0OyBicmVhayA7OworKyAgICAtICkJIyBVc2Ugc3RkaW4gYXMgaW5wdXQuCisrICAgICAgIGJy ZWFrIDs7CisrICAgIC0qICkKKysgICAgICAgZWNobyAiJG1lOiBpbnZhbGlkIG9wdGlvbiAkMSRo ZWxwIgorKyAgICAgICBleGl0IDEgOzsKKysKKysgICAgKmxvY2FsKikKKysgICAgICAgIyBGaXJz dCBwYXNzIHRocm91Z2ggYW55IGxvY2FsIG1hY2hpbmUgdHlwZXMuCisrICAgICAgIGVjaG8gJDEK KysgICAgICAgZXhpdCA7OworKworKyAgICAqICkKKysgICAgICAgYnJlYWsgOzsKKysgIGVzYWMK Kytkb25lCisrCisrY2FzZSAkIyBpbgorKyAwKSBlY2hvICIkbWU6IG1pc3NpbmcgYXJndW1lbnQk aGVscCIgPiYyCisrICAgIGV4aXQgMTs7CisrIDEpIDs7CisrICopIGVjaG8gIiRtZTogdG9vIG1h bnkgYXJndW1lbnRzJGhlbHAiID4mMgorKyAgICBleGl0IDE7OworK2VzYWMKKysKKysjIFNlcGFy YXRlIHdoYXQgdGhlIHVzZXIgZ2F2ZSBpbnRvIENQVS1DT01QQU5ZIGFuZCBPUyBvciBLRVJORUwt T1MgKGlmIGFueSkuCisrIyBIZXJlIHdlIG11c3QgcmVjb2duaXplIGFsbCB0aGUgdmFsaWQgS0VS TkVMLU9TIGNvbWJpbmF0aW9ucy4KKyttYXliZV9vcz1gZWNobyAkMSB8IHNlZCAncy9eXCguKlwp LVwoW14tXSotW14tXSpcKSQvXDIvJ2AKKytjYXNlICRtYXliZV9vcyBpbgorKyAgbnRvLXFueCog fCBsaW51eC1nbnUqIHwgbGludXgtZGlldGxpYmMgfCBsaW51eC1uZXdsaWIqIHwgbGludXgtdWNs aWJjKiB8IFwKKysgIHVjbGludXgtdWNsaWJjKiB8IHVjbGludXgtZ251KiB8IGtmcmVlYnNkKi1n bnUqIHwga25ldGJzZCotZ251KiB8IG5ldGJzZCotZ251KiB8IFwKKysgIGtvcGVuc29sYXJpcyot Z251KiB8IFwKKysgIHN0b3JtLWNoYW9zKiB8IG9zMi1lbXgqIHwgcnRtay1ub3ZhKikKKysgICAg b3M9LSRtYXliZV9vcworKyAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzL15cKC4q XCktXChbXi1dKi1bXi1dKlwpJC9cMS8nYAorKyAgICA7OworKyAgKikKKysgICAgYmFzaWNfbWFj aGluZT1gZWNobyAkMSB8IHNlZCAncy8tW14tXSokLy8nYAorKyAgICBpZiBbICRiYXNpY19tYWNo aW5lICE9ICQxIF0KKysgICAgdGhlbiBvcz1gZWNobyAkMSB8IHNlZCAncy8uKi0vLS8nYAorKyAg ICBlbHNlIG9zPTsgZmkKKysgICAgOzsKKytlc2FjCisrCisrIyMjIExldCdzIHJlY29nbml6ZSBj b21tb24gbWFjaGluZXMgYXMgbm90IGJlaW5nIG9wZXJhdGluZyBzeXN0ZW1zIHNvCisrIyMjIHRo YXQgdGhpbmdzIGxpa2UgY29uZmlnLnN1YiBkZWNzdGF0aW9uLTMxMDAgd29yay4gIFdlIGFsc28K KysjIyMgcmVjb2duaXplIHNvbWUgbWFudWZhY3R1cmVycyBhcyBub3QgYmVpbmcgb3BlcmF0aW5n IHN5c3RlbXMsIHNvIHdlCisrIyMjIGNhbiBwcm92aWRlIGRlZmF1bHQgb3BlcmF0aW5nIHN5c3Rl bXMgYmVsb3cuCisrY2FzZSAkb3MgaW4KKysJLXN1bipvcyopCisrCQkjIFByZXZlbnQgZm9sbG93 aW5nIGNsYXVzZSBmcm9tIGhhbmRsaW5nIHRoaXMgaW52YWxpZCBpbnB1dC4KKysJCTs7CisrCS1k ZWMqIHwgLW1pcHMqIHwgLXNlcXVlbnQqIHwgLWVuY29yZSogfCAtcGM1MzIqIHwgLXNnaSogfCAt c29ueSogfCBcCisrCS1hdHQqIHwgLTczMDAqIHwgLTMzMDAqIHwgLWRlbHRhKiB8IC1tb3Rvcm9s YSogfCAtc3VuWzIzNF0qIHwgXAorKwktdW5pY29tKiB8IC1pYm0qIHwgLW5leHQgfCAtaHAgfCAt aXNpKiB8IC1hcG9sbG8gfCAtYWx0b3MqIHwgXAorKwktY29udmVyZ2VudCogfCAtbmNyKiB8IC1u ZXdzIHwgLTMyKiB8IC0zNjAwKiB8IC0zMTAwKiB8IC1oaXRhY2hpKiB8XAorKwktY1sxMjNdKiB8 IC1jb252ZXgqIHwgLXN1biB8IC1jcmRzIHwgLW9tcm9uKiB8IC1kZyB8IC11bHRyYSB8IC10dGkq IHwgXAorKwktaGFycmlzIHwgLWRvbHBoaW4gfCAtaGlnaGxldmVsIHwgLWdvdWxkIHwgLWNibSB8 IC1ucyB8IC1tYXNzY29tcCB8IFwKKysJLWFwcGxlIHwgLWF4aXMgfCAta251dGggfCAtY3JheSB8 IC1taWNyb2JsYXplKQorKwkJb3M9CisrCQliYXNpY19tYWNoaW5lPSQxCisrCQk7OworKyAgICAg ICAgLWJsdWVnZW5lKikKKysJICAgICAgICBvcz0tY25rCisrCQk7OworKwktc2ltIHwgLWNpc2Nv IHwgLW9raSB8IC13ZWMgfCAtd2luYm9uZCkKKysJCW9zPQorKwkJYmFzaWNfbWFjaGluZT0kMQor KwkJOzsKKysJLXNjb3V0KQorKwkJOzsKKysJLXdycykKKysJCW9zPS12eHdvcmtzCisrCQliYXNp Y19tYWNoaW5lPSQxCisrCQk7OworKwktY2hvcnVzb3MqKQorKwkJb3M9LWNob3J1c29zCisrCQli YXNpY19tYWNoaW5lPSQxCisrCQk7OworKyAJLWNob3J1c3JkYikKKysgCQlvcz0tY2hvcnVzcmRi CisrCQliYXNpY19tYWNoaW5lPSQxCisrIAkJOzsKKysJLWhpdXgqKQorKwkJb3M9LWhpdXh3ZTIK KysJCTs7CisrCS1zY282KQorKwkJb3M9LXNjbzV2NgorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAk MSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorKwkJOzsKKysJLXNjbzUpCisrCQlvcz0tc2Nv My4ydjUKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMv J2AKKysJCTs7CisrCS1zY280KQorKwkJb3M9LXNjbzMuMnY0CisrCQliYXNpY19tYWNoaW5lPWBl Y2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7OworKwktc2NvMy4yLls0LTld KikKKysJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAncy9zY28zLjIuL3NjbzMuMnYvJ2AKKysJCWJh c2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKysJCTs7Cisr CS1zY28zLjJ2WzQtOV0qKQorKwkJIyBEb24ndCBmb3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAzLjJ2 NCBvciBuZXdlci4KKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiov ODYtcGMvJ2AKKysJCTs7CisrCS1zY281djYqKQorKwkJIyBEb24ndCBmb3JnZXQgdmVyc2lvbiBp ZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4KKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQg LWUgJ3MvODYtLiovODYtcGMvJ2AKKysJCTs7CisrCS1zY28qKQorKwkJb3M9LXNjbzMuMnYyCisr CQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7 OworKwktdWRrKikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiov ODYtcGMvJ2AKKysJCTs7CisrCS1pc2MpCisrCQlvcz0taXNjMi4yCisrCQliYXNpY19tYWNoaW5l PWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7OworKwktY2xpeCopCisr CQliYXNpY19tYWNoaW5lPWNsaXBwZXItaW50ZXJncmFwaAorKwkJOzsKKysJLWlzYyopCisrCQli YXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7Owor KwktbHlueCopCisrCQlvcz0tbHlueG9zCisrCQk7OworKwktcHR4KikKKysJCWJhc2ljX21hY2hp bmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtc2VxdWVudC8nYAorKwkJOzsKKysJLXdp bmRvd3NudCopCisrCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3Mvd2luZG93c250L3dpbm50Lydg CisrCQk7OworKwktcHNvcyopCisrCQlvcz0tcHNvcworKwkJOzsKKysJLW1pbnQgfCAtbWludFsw LTldKikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1hdGFyaQorKwkJb3M9LW1pbnQKKysJCTs7Cisr ZXNhYworKworKyMgRGVjb2RlIGFsaWFzZXMgZm9yIGNlcnRhaW4gQ1BVLUNPTVBBTlkgY29tYmlu YXRpb25zLgorK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KKysJIyBSZWNvZ25pemUgdGhlIGJhc2lj IENQVSB0eXBlcyB3aXRob3V0IGNvbXBhbnkgbmFtZS4KKysJIyBTb21lIGFyZSBvbWl0dGVkIGhl cmUgYmVjYXVzZSB0aGV5IGhhdmUgc3BlY2lhbCBtZWFuaW5ncyBiZWxvdy4KKysJMTc1MGEgfCA1 ODAgXAorKwl8IGEyOWsgXAorKwl8IGFscGhhIHwgYWxwaGFldls0LThdIHwgYWxwaGFldjU2IHwg YWxwaGFldjZbNzhdIHwgYWxwaGFwY2E1WzY3XSBcCisrCXwgYWxwaGE2NCB8IGFscGhhNjRldls0 LThdIHwgYWxwaGE2NGV2NTYgfCBhbHBoYTY0ZXY2Wzc4XSB8IGFscGhhNjRwY2E1WzY3XSBcCisr CXwgYW0zM18yLjAgXAorKwl8IGFyYyB8IGFybSB8IGFybVtibF1lIHwgYXJtZVtsYl0gfCBhcm12 WzIzNDVdIHwgYXJtdlszNDVdW2xiXSB8IGF2ciB8IGF2cjMyIFwKKysJfCBiZmluIFwKKysJfCBj NHggfCBjbGlwcGVyIFwKKysJfCBkMTB2IHwgZDMwdiB8IGRseCB8IGRzcDE2eHggXAorKwl8IGZp ZG8gfCBmcjMwIHwgZnJ2IFwKKysJfCBoODMwMCB8IGg4NTAwIHwgaHBwYSB8IGhwcGExLlswMV0g fCBocHBhMi4wIHwgaHBwYTIuMFtud10gfCBocHBhNjQgXAorKwl8IGkzNzAgfCBpODYwIHwgaTk2 MCB8IGlhNjQgXAorKwl8IGlwMmsgfCBpcTIwMDAgXAorKwl8IGxtMzIgXAorKwl8IG0zMmMgfCBt MzJyIHwgbTMycmxlIHwgbTY4MDAwIHwgbTY4ayB8IG04OGsgXAorKwl8IG1heHEgfCBtYiB8IG1p Y3JvYmxhemUgfCBtY29yZSB8IG1lcCB8IG1ldGFnIFwKKysJfCBtaXBzIHwgbWlwc2JlIHwgbWlw c2ViIHwgbWlwc2VsIHwgbWlwc2xlIFwKKysJfCBtaXBzMTYgXAorKwl8IG1pcHM2NCB8IG1pcHM2 NGVsIFwKKysJfCBtaXBzNjRvY3Rlb24gfCBtaXBzNjRvY3Rlb25lbCBcCisrCXwgbWlwczY0b3Jp b24gfCBtaXBzNjRvcmlvbmVsIFwKKysJfCBtaXBzNjRyNTkwMCB8IG1pcHM2NHI1OTAwZWwgXAor Kwl8IG1pcHM2NHZyIHwgbWlwczY0dnJlbCBcCisrCXwgbWlwczY0dnI0MTAwIHwgbWlwczY0dnI0 MTAwZWwgXAorKwl8IG1pcHM2NHZyNDMwMCB8IG1pcHM2NHZyNDMwMGVsIFwKKysJfCBtaXBzNjR2 cjUwMDAgfCBtaXBzNjR2cjUwMDBlbCBcCisrCXwgbWlwczY0dnI1OTAwIHwgbWlwczY0dnI1OTAw ZWwgXAorKwl8IG1pcHNpc2EzMiB8IG1pcHNpc2EzMmVsIFwKKysJfCBtaXBzaXNhMzJyMiB8IG1p cHNpc2EzMnIyZWwgXAorKwl8IG1pcHNpc2E2NCB8IG1pcHNpc2E2NGVsIFwKKysJfCBtaXBzaXNh NjRyMiB8IG1pcHNpc2E2NHIyZWwgXAorKwl8IG1pcHNpc2E2NHNiMSB8IG1pcHNpc2E2NHNiMWVs IFwKKysJfCBtaXBzaXNhNjRzcjcxayB8IG1pcHNpc2E2NHNyNzFrZWwgXAorKwl8IG1pcHN0eDM5 IHwgbWlwc3R4MzllbCBcCisrCXwgbW4xMDIwMCB8IG1uMTAzMDAgXAorKwl8IG1veGllIFwKKysJ fCBtdCBcCisrCXwgbXNwNDMwIFwKKysJfCBuaW9zIHwgbmlvczIgXAorKwl8IG5zMTZrIHwgbnMz MmsgXAorKwl8IG9yMzIgXAorKwl8IHBkcDEwIHwgcGRwMTEgfCBwaiB8IHBqbCBcCisrCXwgcG93 ZXJwYyB8IHBvd2VycGM2NCB8IHBvd2VycGM2NGxlIHwgcG93ZXJwY2xlIHwgcHBjYmUgXAorKwl8 IHB5cmFtaWQgXAorKwl8IHJ4IFwKKysJfCBzY29yZSBcCisrCXwgc2ggfCBzaFsxMjM0XSB8IHNo WzI0XWEgfCBzaFsyNF1hZWIgfCBzaFsyM11lIHwgc2hbMzRdZWIgfCBzaGViIHwgc2hiZSB8IHNo bGUgfCBzaFsxMjM0XWxlIHwgc2gzZWxlIFwKKysJfCBzaDY0IHwgc2g2NGxlIFwKKysJfCBzcGFy YyB8IHNwYXJjNjQgfCBzcGFyYzY0YiB8IHNwYXJjNjR2IHwgc3BhcmM4NnggfCBzcGFyY2xldCB8 IHNwYXJjbGl0ZSBcCisrCXwgc3BhcmN2OCB8IHNwYXJjdjkgfCBzcGFyY3Y5YiB8IHNwYXJjdjl2 IFwKKysJfCBzcHUgfCBzdHJvbmdhcm0gXAorKwl8IHRhaG9lIHwgdGh1bWIgfCB0aWM0eCB8IHRp YzgwIHwgdHJvbiBcCisrCXwgdWJpY29tMzIgXAorKwl8IHY4NTAgfCB2ODUwZSBcCisrCXwgd2Uz MmsgXAorKwl8IHg4NiB8IHhjMTZ4IHwgeHNjYWxlIHwgeHNjYWxlZVtibF0gfCB4c3Rvcm15MTYg fCB4dGVuc2EgXAorKwl8IHo4ayB8IHo4MCkKKysJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hp bmUtdW5rbm93bgorKwkJOzsKKysJbTY4MTEgfCBtNjhoYzExIHwgbTY4MTIgfCBtNjhoYzEyIHwg cGljb2NoaXApCisrCQkjIE1vdG9yb2xhIDY4SEMxMS8xMi4KKysJCWJhc2ljX21hY2hpbmU9JGJh c2ljX21hY2hpbmUtdW5rbm93bgorKwkJb3M9LW5vbmUKKysJCTs7CisrCW04ODExMCB8IG02ODBb MTIzNDZdMCB8IG02ODM/MiB8IG02ODM2MCB8IG01MjAwIHwgdjcwIHwgdzY1IHwgejhrKQorKwkJ OzsKKysJbXMxKQorKwkJYmFzaWNfbWFjaGluZT1tdC11bmtub3duCisrCQk7OworKworKwkjIFdl IHVzZSBgcGMnIHJhdGhlciB0aGFuIGB1bmtub3duJworKwkjIGJlY2F1c2UgKDEpIHRoYXQncyB3 aGF0IHRoZXkgbm9ybWFsbHkgYXJlLCBhbmQKKysJIyAoMikgdGhlIHdvcmQgInVua25vd24iIHRl bmRzIHRvIGNvbmZ1c2UgYmVnaW5uaW5nIHVzZXJzLgorKwlpKjg2IHwgeDg2XzY0KQorKwkgIGJh c2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtcGMKKysJICA7OworKwkjIE9iamVjdCBpZiBtb3Jl IHRoYW4gb25lIGNvbXBhbnkgbmFtZSB3b3JkLgorKwkqLSotKikKKysJCWVjaG8gSW52YWxpZCBj b25maWd1cmF0aW9uIFxgJDFcJzogbWFjaGluZSBcYCRiYXNpY19tYWNoaW5lXCcgbm90IHJlY29n bml6ZWQgMT4mMgorKwkJZXhpdCAxCisrCQk7OworKwkjIFJlY29nbml6ZSB0aGUgYmFzaWMgQ1BV IHR5cGVzIHdpdGggY29tcGFueSBuYW1lLgorKwk1ODAtKiBcCisrCXwgYTI5ay0qIFwKKysJfCBh bHBoYS0qIHwgYWxwaGFldls0LThdLSogfCBhbHBoYWV2NTYtKiB8IGFscGhhZXY2Wzc4XS0qIFwK KysJfCBhbHBoYTY0LSogfCBhbHBoYTY0ZXZbNC04XS0qIHwgYWxwaGE2NGV2NTYtKiB8IGFscGhh NjRldjZbNzhdLSogXAorKwl8IGFscGhhcGNhNVs2N10tKiB8IGFscGhhNjRwY2E1WzY3XS0qIHwg YXJjLSogXAorKwl8IGFybS0qICB8IGFybWJlLSogfCBhcm1sZS0qIHwgYXJtZWItKiB8IGFybXYq LSogXAorKwl8IGF2ci0qIHwgYXZyMzItKiBcCisrCXwgYmZpbi0qIHwgYnMyMDAwLSogXAorKwl8 IGNbMTIzXSogfCBjMzAtKiB8IFtjanRdOTAtKiB8IGM0eC0qIHwgYzU0eC0qIHwgYzU1eC0qIHwg YzZ4LSogXAorKwl8IGNsaXBwZXItKiB8IGNyYXludi0qIHwgY3lkcmEtKiBcCisrCXwgZDEwdi0q IHwgZDMwdi0qIHwgZGx4LSogXAorKwl8IGVseHNpLSogXAorKwl8IGYzMFswMV0tKiB8IGY3MDAt KiB8IGZpZG8tKiB8IGZyMzAtKiB8IGZydi0qIHwgZng4MC0qIFwKKysJfCBoODMwMC0qIHwgaDg1 MDAtKiBcCisrCXwgaHBwYS0qIHwgaHBwYTEuWzAxXS0qIHwgaHBwYTIuMC0qIHwgaHBwYTIuMFtu d10tKiB8IGhwcGE2NC0qIFwKKysJfCBpKjg2LSogfCBpODYwLSogfCBpOTYwLSogfCBpYTY0LSog XAorKwl8IGlwMmstKiB8IGlxMjAwMC0qIFwKKysJfCBsbTMyLSogXAorKwl8IG0zMmMtKiB8IG0z MnItKiB8IG0zMnJsZS0qIFwKKysJfCBtNjgwMDAtKiB8IG02ODBbMDEyMzQ2XTAtKiB8IG02ODM2 MC0qIHwgbTY4Mz8yLSogfCBtNjhrLSogXAorKwl8IG04ODExMC0qIHwgbTg4ay0qIHwgbWF4cS0q IHwgbWNvcmUtKiB8IG1ldGFnLSogfCBtaWNyb2JsYXplLSogXAorKwl8IG1pcHMtKiB8IG1pcHNi ZS0qIHwgbWlwc2ViLSogfCBtaXBzZWwtKiB8IG1pcHNsZS0qIFwKKysJfCBtaXBzMTYtKiBcCisr CXwgbWlwczY0LSogfCBtaXBzNjRlbC0qIFwKKysJfCBtaXBzNjRvY3Rlb24tKiB8IG1pcHM2NG9j dGVvbmVsLSogXAorKwl8IG1pcHM2NG9yaW9uLSogfCBtaXBzNjRvcmlvbmVsLSogXAorKwl8IG1p cHM2NHI1OTAwLSogfCBtaXBzNjRyNTkwMGVsLSogXAorKwl8IG1pcHM2NHZyLSogfCBtaXBzNjR2 cmVsLSogXAorKwl8IG1pcHM2NHZyNDEwMC0qIHwgbWlwczY0dnI0MTAwZWwtKiBcCisrCXwgbWlw czY0dnI0MzAwLSogfCBtaXBzNjR2cjQzMDBlbC0qIFwKKysJfCBtaXBzNjR2cjUwMDAtKiB8IG1p cHM2NHZyNTAwMGVsLSogXAorKwl8IG1pcHM2NHZyNTkwMC0qIHwgbWlwczY0dnI1OTAwZWwtKiBc CisrCXwgbWlwc2lzYTMyLSogfCBtaXBzaXNhMzJlbC0qIFwKKysJfCBtaXBzaXNhMzJyMi0qIHwg bWlwc2lzYTMycjJlbC0qIFwKKysJfCBtaXBzaXNhNjQtKiB8IG1pcHNpc2E2NGVsLSogXAorKwl8 IG1pcHNpc2E2NHIyLSogfCBtaXBzaXNhNjRyMmVsLSogXAorKwl8IG1pcHNpc2E2NHNiMS0qIHwg bWlwc2lzYTY0c2IxZWwtKiBcCisrCXwgbWlwc2lzYTY0c3I3MWstKiB8IG1pcHNpc2E2NHNyNzFr ZWwtKiBcCisrCXwgbWlwc3R4MzktKiB8IG1pcHN0eDM5ZWwtKiBcCisrCXwgbW1peC0qIFwKKysJ fCBtdC0qIFwKKysJfCBtc3A0MzAtKiBcCisrCXwgbmlvcy0qIHwgbmlvczItKiBcCisrCXwgbm9u ZS0qIHwgbnAxLSogfCBuczE2ay0qIHwgbnMzMmstKiBcCisrCXwgb3Jpb24tKiBcCisrCXwgcGRw MTAtKiB8IHBkcDExLSogfCBwai0qIHwgcGpsLSogfCBwbi0qIHwgcG93ZXItKiBcCisrCXwgcG93 ZXJwYy0qIHwgcG93ZXJwYzY0LSogfCBwb3dlcnBjNjRsZS0qIHwgcG93ZXJwY2xlLSogfCBwcGNi ZS0qIFwKKysJfCBweXJhbWlkLSogXAorKwl8IHJvbXAtKiB8IHJzNjAwMC0qIHwgcngtKiBcCisr CXwgc2gtKiB8IHNoWzEyMzRdLSogfCBzaFsyNF1hLSogfCBzaFsyNF1hZWItKiB8IHNoWzIzXWUt KiB8IHNoWzM0XWViLSogfCBzaGViLSogfCBzaGJlLSogXAorKwl8IHNobGUtKiB8IHNoWzEyMzRd bGUtKiB8IHNoM2VsZS0qIHwgc2g2NC0qIHwgc2g2NGxlLSogXAorKwl8IHNwYXJjLSogfCBzcGFy YzY0LSogfCBzcGFyYzY0Yi0qIHwgc3BhcmM2NHYtKiB8IHNwYXJjODZ4LSogfCBzcGFyY2xldC0q IFwKKysJfCBzcGFyY2xpdGUtKiBcCisrCXwgc3BhcmN2OC0qIHwgc3BhcmN2OS0qIHwgc3BhcmN2 OWItKiB8IHNwYXJjdjl2LSogfCBzdHJvbmdhcm0tKiB8IHN2MS0qIHwgc3g/LSogXAorKwl8IHRh aG9lLSogfCB0aHVtYi0qIFwKKysJfCB0aWMzMC0qIHwgdGljNHgtKiB8IHRpYzU0eC0qIHwgdGlj NTV4LSogfCB0aWM2eC0qIHwgdGljODAtKiB8IHRpbGUtKiBcCisrCXwgdHJvbi0qIFwKKysJfCB1 Ymljb20zMi0qIFwKKysJfCB2ODUwLSogfCB2ODUwZS0qIHwgdmF4LSogXAorKwl8IHdlMzJrLSog XAorKwl8IHg4Ni0qIHwgeDg2XzY0LSogfCB4YzE2eC0qIHwgeHBzMTAwLSogfCB4c2NhbGUtKiB8 IHhzY2FsZWVbYmxdLSogXAorKwl8IHhzdG9ybXkxNi0qIHwgeHRlbnNhKi0qIFwKKysJfCB5bXAt KiBcCisrCXwgejhrLSogfCB6ODAtKikKKysJCTs7CisrCSMgUmVjb2duaXplIHRoZSBiYXNpYyBD UFUgdHlwZXMgd2l0aG91dCBjb21wYW55IG5hbWUsIHdpdGggZ2xvYiBtYXRjaC4KKysJeHRlbnNh KikKKysJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtdW5rbm93bgorKwkJOzsKKysJIyBS ZWNvZ25pemUgdGhlIHZhcmlvdXMgbWFjaGluZSBuYW1lcyBhbmQgYWxpYXNlcyB3aGljaCBzdGFu ZAorKwkjIGZvciBhIENQVSB0eXBlIGFuZCBhIGNvbXBhbnkgYW5kIHNvbWV0aW1lcyBldmVuIGFu IE9TLgorKwkzODZic2QpCisrCQliYXNpY19tYWNoaW5lPWkzODYtdW5rbm93bgorKwkJb3M9LWJz ZAorKwkJOzsKKysJM2IxIHwgNzMwMCB8IDczMDAtYXR0IHwgYXR0LTczMDAgfCBwYzczMDAgfCBz YWZhcmkgfCB1bml4cGMpCisrCQliYXNpY19tYWNoaW5lPW02ODAwMC1hdHQKKysJCTs7CisrCTNi KikKKysJCWJhc2ljX21hY2hpbmU9d2UzMmstYXR0CisrCQk7OworKwlhMjlraGlmKQorKwkJYmFz aWNfbWFjaGluZT1hMjlrLWFtZAorKwkJb3M9LXVkaQorKwkJOzsKKysgICAgCWFiYWN1cykKKysJ CWJhc2ljX21hY2hpbmU9YWJhY3VzLXVua25vd24KKysJCTs7CisrCWFkb2JlNjhrKQorKwkJYmFz aWNfbWFjaGluZT1tNjgwMTAtYWRvYmUKKysJCW9zPS1zY291dAorKwkJOzsKKysJYWxsaWFudCB8 IGZ4ODApCisrCQliYXNpY19tYWNoaW5lPWZ4ODAtYWxsaWFudAorKwkJOzsKKysJYWx0b3MgfCBh bHRvczMwNjgpCisrCQliYXNpY19tYWNoaW5lPW02OGstYWx0b3MKKysJCTs7CisrCWFtMjlrKQor KwkJYmFzaWNfbWFjaGluZT1hMjlrLW5vbmUKKysJCW9zPS1ic2QKKysJCTs7CisrCWFtZDY0KQor KwkJYmFzaWNfbWFjaGluZT14ODZfNjQtcGMKKysJCTs7CisrCWFtZDY0LSopCisrCQliYXNpY19t YWNoaW5lPXg4Nl82NC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAor KwkJOzsKKysJYW1kYWhsKQorKwkJYmFzaWNfbWFjaGluZT01ODAtYW1kYWhsCisrCQlvcz0tc3lz dgorKwkJOzsKKysJYW1pZ2EgfCBhbWlnYS0qKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25v d24KKysJCTs7CisrCWFtaWdhb3MgfCBhbWlnYWRvcykKKysJCWJhc2ljX21hY2hpbmU9bTY4ay11 bmtub3duCisrCQlvcz0tYW1pZ2FvcworKwkJOzsKKysJYW1pZ2F1bml4IHwgYW1peCkKKysJCWJh c2ljX21hY2hpbmU9bTY4ay11bmtub3duCisrCQlvcz0tc3lzdjQKKysJCTs7CisrCWFwb2xsbzY4 KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwb2xsbworKwkJb3M9LXN5c3YKKysJCTs7CisrCWFw b2xsbzY4YnNkKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwb2xsbworKwkJb3M9LWJzZAorKwkJ OzsKKysJYXJvcykKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYworKwkJb3M9LWFyb3MKKysJCTs7 CisrCWF1eCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1hcHBsZQorKwkJb3M9LWF1eAorKwkJOzsK KysJYmFsYW5jZSkKKysJCWJhc2ljX21hY2hpbmU9bnMzMmstc2VxdWVudAorKwkJb3M9LWR5bml4 CisrCQk7OworKwlibGFja2ZpbikKKysJCWJhc2ljX21hY2hpbmU9YmZpbi11bmtub3duCisrCQlv cz0tbGludXgKKysJCTs7CisrCWJsYWNrZmluLSopCisrCQliYXNpY19tYWNoaW5lPWJmaW4tYGVj aG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCW9zPS1saW51eAorKwkJ OzsKKysJYmx1ZWdlbmUqKQorKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWlibQorKwkJb3M9LWNu aworKwkJOzsKKysJYzkwKQorKwkJYmFzaWNfbWFjaGluZT1jOTAtY3JheQorKwkJb3M9LXVuaWNv cworKwkJOzsKKysgICAgICAgIGNlZ2NjKQorKwkJYmFzaWNfbWFjaGluZT1hcm0tdW5rbm93bgor KwkJb3M9LWNlZ2NjCisrCQk7OworKwljb252ZXgtYzEpCisrCQliYXNpY19tYWNoaW5lPWMxLWNv bnZleAorKwkJb3M9LWJzZAorKwkJOzsKKysJY29udmV4LWMyKQorKwkJYmFzaWNfbWFjaGluZT1j Mi1jb252ZXgKKysJCW9zPS1ic2QKKysJCTs7CisrCWNvbnZleC1jMzIpCisrCQliYXNpY19tYWNo aW5lPWMzMi1jb252ZXgKKysJCW9zPS1ic2QKKysJCTs7CisrCWNvbnZleC1jMzQpCisrCQliYXNp Y19tYWNoaW5lPWMzNC1jb252ZXgKKysJCW9zPS1ic2QKKysJCTs7CisrCWNvbnZleC1jMzgpCisr CQliYXNpY19tYWNoaW5lPWMzOC1jb252ZXgKKysJCW9zPS1ic2QKKysJCTs7CisrCWNyYXkgfCBq OTApCisrCQliYXNpY19tYWNoaW5lPWo5MC1jcmF5CisrCQlvcz0tdW5pY29zCisrCQk7OworKwlj cmF5bnYpCisrCQliYXNpY19tYWNoaW5lPWNyYXludi1jcmF5CisrCQlvcz0tdW5pY29zbXAKKysJ CTs7CisrCWNyMTYpCisrCQliYXNpY19tYWNoaW5lPWNyMTYtdW5rbm93bgorKwkJb3M9LWVsZgor KwkJOzsKKysJY3JkcyB8IHVub3MpCisrCQliYXNpY19tYWNoaW5lPW02OGstY3JkcworKwkJOzsK KysJY3Jpc3YzMiB8IGNyaXN2MzItKiB8IGV0cmF4ZnMqKQorKwkJYmFzaWNfbWFjaGluZT1jcmlz djMyLWF4aXMKKysJCTs7CisrCWNyaXMgfCBjcmlzLSogfCBldHJheCopCisrCQliYXNpY19tYWNo aW5lPWNyaXMtYXhpcworKwkJOzsKKysJY3J4KQorKwkJYmFzaWNfbWFjaGluZT1jcngtdW5rbm93 bgorKwkJb3M9LWVsZgorKwkJOzsKKysJZGEzMCB8IGRhMzAtKikKKysJCWJhc2ljX21hY2hpbmU9 bTY4ay1kYTMwCisrCQk7OworKwlkZWNzdGF0aW9uIHwgZGVjc3RhdGlvbi0zMTAwIHwgcG1heCB8 IHBtYXgtKiB8IHBtaW4gfCBkZWMzMTAwIHwgZGVjc3RhdG4pCisrCQliYXNpY19tYWNoaW5lPW1p cHMtZGVjCisrCQk7OworKwlkZWNzeXN0ZW0xMCogfCBkZWMxMCopCisrCQliYXNpY19tYWNoaW5l PXBkcDEwLWRlYworKwkJb3M9LXRvcHMxMAorKwkJOzsKKysJZGVjc3lzdGVtMjAqIHwgZGVjMjAq KQorKwkJYmFzaWNfbWFjaGluZT1wZHAxMC1kZWMKKysJCW9zPS10b3BzMjAKKysJCTs7CisrCWRl bHRhIHwgMzMwMCB8IG1vdG9yb2xhLTMzMDAgfCBtb3Rvcm9sYS1kZWx0YSBcCisrCSAgICAgIHwg MzMwMC1tb3Rvcm9sYSB8IGRlbHRhLW1vdG9yb2xhKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLW1v dG9yb2xhCisrCQk7OworKwlkZWx0YTg4KQorKwkJYmFzaWNfbWFjaGluZT1tODhrLW1vdG9yb2xh CisrCQlvcz0tc3lzdjMKKysJCTs7CisrCWRpY29zKQorKwkJYmFzaWNfbWFjaGluZT1pNjg2LXBj CisrCQlvcz0tZGljb3MKKysJCTs7CisrCWRqZ3BwKQorKwkJYmFzaWNfbWFjaGluZT1pNTg2LXBj CisrCQlvcz0tbXNkb3NkamdwcAorKwkJOzsKKysJZHB4MjAgfCBkcHgyMC0qKQorKwkJYmFzaWNf bWFjaGluZT1yczYwMDAtYnVsbAorKwkJb3M9LWJvc3gKKysJCTs7CisrCWRweDIqIHwgZHB4Miot YnVsbCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCisrCQlvcz0tc3lzdjMKKysJCTs7Cisr CWVibW9uMjlrKQorKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAorKwkJb3M9LWVibW9uCisrCQk7 OworKwllbHhzaSkKKysJCWJhc2ljX21hY2hpbmU9ZWx4c2ktZWx4c2kKKysJCW9zPS1ic2QKKysJ CTs7CisrCWVuY29yZSB8IHVtYXggfCBtbWF4KQorKwkJYmFzaWNfbWFjaGluZT1uczMyay1lbmNv cmUKKysJCTs7CisrCWVzMTgwMCB8IE9TRTY4ayB8IG9zZTY4ayB8IG9zZSB8IE9TRSkKKysJCWJh c2ljX21hY2hpbmU9bTY4ay1lcmljc3NvbgorKwkJb3M9LW9zZQorKwkJOzsKKysJZngyODAwKQor KwkJYmFzaWNfbWFjaGluZT1pODYwLWFsbGlhbnQKKysJCTs7CisrCWdlbml4KQorKwkJYmFzaWNf bWFjaGluZT1uczMyay1ucworKwkJOzsKKysJZ21pY3JvKQorKwkJYmFzaWNfbWFjaGluZT10cm9u LWdtaWNybworKwkJb3M9LXN5c3YKKysJCTs7CisrCWdvMzIpCisrCQliYXNpY19tYWNoaW5lPWkz ODYtcGMKKysJCW9zPS1nbzMyCisrCQk7OworKwloMzA1MHIqIHwgaGl1eCopCisrCQliYXNpY19t YWNoaW5lPWhwcGExLjEtaGl0YWNoaQorKwkJb3M9LWhpdXh3ZTIKKysJCTs7CisrCWg4MzAwaG1z KQorKwkJYmFzaWNfbWFjaGluZT1oODMwMC1oaXRhY2hpCisrCQlvcz0taG1zCisrCQk7OworKwlo ODMwMHhyYXkpCisrCQliYXNpY19tYWNoaW5lPWg4MzAwLWhpdGFjaGkKKysJCW9zPS14cmF5Cisr CQk7OworKwloODUwMGhtcykKKysJCWJhc2ljX21hY2hpbmU9aDg1MDAtaGl0YWNoaQorKwkJb3M9 LWhtcworKwkJOzsKKysJaGFycmlzKQorKwkJYmFzaWNfbWFjaGluZT1tODhrLWhhcnJpcworKwkJ b3M9LXN5c3YzCisrCQk7OworKwlocDMwMC0qKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCisr CQk7OworKwlocDMwMGJzZCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAorKwkJb3M9LWJzZAor KwkJOzsKKysJaHAzMDBocHV4KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCisrCQlvcz0taHB1 eAorKwkJOzsKKysJaHAzazlbMC05XVswLTldIHwgaHA5WzAtOV1bMC05XSkKKysJCWJhc2ljX21h Y2hpbmU9aHBwYTEuMC1ocAorKwkJOzsKKysJaHA5azJbMC05XVswLTldIHwgaHA5azMxWzAtOV0p CisrCQliYXNpY19tYWNoaW5lPW02ODAwMC1ocAorKwkJOzsKKysJaHA5azNbMi05XVswLTldKQor KwkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCisrCQk7OworKwlocDlrNlswLTldWzAtOV0gfCBocDZb MC05XVswLTldKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4wLWhwCisrCQk7OworKwlocDlrN1sw LTc5XVswLTldIHwgaHA3WzAtNzldWzAtOV0pCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAK KysJCTs7CisrCWhwOWs3OFswLTldIHwgaHA3OFswLTldKQorKwkJIyBGSVhNRTogcmVhbGx5IGhw cGEyLjAtaHAKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAorKwkJOzsKKysJaHA5azhbNjdd MSB8IGhwOFs2N10xIHwgaHA5azgwWzI0XSB8IGhwODBbMjRdIHwgaHA5azhbNzhdOSB8IGhwOFs3 OF05IHwgaHA5azg5MyB8IGhwODkzKQorKwkJIyBGSVhNRTogcmVhbGx5IGhwcGEyLjAtaHAKKysJ CWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAorKwkJOzsKKysJaHA5azhbMC05XVsxMzY3OV0gfCBo cDhbMC05XVsxMzY3OV0pCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKKysJCTs7CisrCWhw OWs4WzAtOV1bMC05XSB8IGhwOFswLTldWzAtOV0pCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjAt aHAKKysJCTs7CisrCWhwcGEtbmV4dCkKKysJCW9zPS1uZXh0c3RlcDMKKysJCTs7CisrCWhwcGFv c2YpCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKKysJCW9zPS1vc2YKKysJCTs7CisrCWhw cHJvKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisrCQlvcz0tcHJvZWxmCisrCQk7Owor KwlpMzcwLWlibSogfCBpYm0qKQorKwkJYmFzaWNfbWFjaGluZT1pMzcwLWlibQorKwkJOzsKKysj IEknbSBub3Qgc3VyZSB3aGF0ICJTeXN2MzIiIG1lYW5zLiAgU2hvdWxkIHRoaXMgYmUgc3lzdjMu Mj8KKysJaSo4NnYzMikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYu Ki84Ni1wYy8nYAorKwkJb3M9LXN5c3YzMgorKwkJOzsKKysJaSo4NnY0KikKKysJCWJhc2ljX21h Y2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAorKwkJb3M9LXN5c3Y0Cisr CQk7OworKwlpKjg2dikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYu Ki84Ni1wYy8nYAorKwkJb3M9LXN5c3YKKysJCTs7CisrCWkqODZzb2wyKQorKwkJYmFzaWNfbWFj aGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCisrCQlvcz0tc29sYXJpczIK KysJCTs7CisrCWkzODZtYWNoKQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LW1hY2gKKysJCW9zPS1t YWNoCisrCQk7OworKwlpMzg2LXZzdGEgfCB2c3RhKQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LXVu a25vd24KKysJCW9zPS12c3RhCisrCQk7OworKwlpcmlzIHwgaXJpczRkKQorKwkJYmFzaWNfbWFj aGluZT1taXBzLXNnaQorKwkJY2FzZSAkb3MgaW4KKysJCSAgICAtaXJpeCopCisrCQkJOzsKKysJ CSAgICAqKQorKwkJCW9zPS1pcml4NAorKwkJCTs7CisrCQllc2FjCisrCQk7OworKwlpc2k2OCB8 IGlzaSkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1pc2kKKysJCW9zPS1zeXN2CisrCQk7OworKwlt Njhrbm9tbXUpCisrCQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93bgorKwkJb3M9LWxpbnV4Cisr CQk7OworKwltNjhrbm9tbXUtKikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1gZWNobyAkYmFzaWNf bWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorKwkJb3M9LWxpbnV4CisrCQk7OworKwltODhr LW9tcm9uKikKKysJCWJhc2ljX21hY2hpbmU9bTg4ay1vbXJvbgorKwkJOzsKKysJbWFnbnVtIHwg bTMyMzApCisrCQliYXNpY19tYWNoaW5lPW1pcHMtbWlwcworKwkJb3M9LXN5c3YKKysJCTs7Cisr CW1lcmxpbikKKysJCWJhc2ljX21hY2hpbmU9bnMzMmstdXRlaworKwkJb3M9LXN5c3YKKysJCTs7 CisrICAgICAgICBtaWNyb2JsYXplKQorKwkJYmFzaWNfbWFjaGluZT1taWNyb2JsYXplLXhpbGlu eAorKwkJOzsKKysJbWluZ3czMikKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYworKwkJb3M9LW1p bmd3MzIKKysJCTs7CisrCW1pbmd3MzJjZSkKKysJCWJhc2ljX21hY2hpbmU9YXJtLXVua25vd24K KysJCW9zPS1taW5ndzMyY2UKKysJCTs7CisrCW1pbmlmcmFtZSkKKysJCWJhc2ljX21hY2hpbmU9 bTY4MDAwLWNvbnZlcmdlbnQKKysJCTs7CisrCSptaW50IHwgLW1pbnRbMC05XSogfCAqTWlOVCB8 ICpNaU5UWzAtOV0qKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWF0YXJpCisrCQlvcz0tbWludAor KwkJOzsKKysJbWlwczMqLSopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5l IHwgc2VkIC1lICdzL21pcHMzL21pcHM2NC8nYAorKwkJOzsKKysJbWlwczMqKQorKwkJYmFzaWNf bWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9taXBzMy9taXBzNjQvJ2At dW5rbm93bgorKwkJOzsKKysJbW9uaXRvcikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1yb202OGsK KysJCW9zPS1jb2ZmCisrCQk7OworKwltb3JwaG9zKQorKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBj LXVua25vd24KKysJCW9zPS1tb3JwaG9zCisrCQk7OworKwltc2RvcykKKysJCWJhc2ljX21hY2hp bmU9aTM4Ni1wYworKwkJb3M9LW1zZG9zCisrCQk7OworKwltczEtKikKKysJCWJhc2ljX21hY2hp bmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbXMxLS9tdC0vJ2AKKysJCTs7Cisr CW12cykKKysJCWJhc2ljX21hY2hpbmU9aTM3MC1pYm0KKysJCW9zPS1tdnMKKysJCTs7CisrCW5j cjMwMDApCisrCQliYXNpY19tYWNoaW5lPWk0ODYtbmNyCisrCQlvcz0tc3lzdjQKKysJCTs7Cisr CW5ldGJzZDM4NikKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCisrCQlvcz0tbmV0YnNk CisrCQk7OworKwluZXR3aW5kZXIpCisrCQliYXNpY19tYWNoaW5lPWFybXY0bC1yZWJlbAorKwkJ b3M9LWxpbnV4CisrCQk7OworKwluZXdzIHwgbmV3czcwMCB8IG5ld3M4MDAgfCBuZXdzOTAwKQor KwkJYmFzaWNfbWFjaGluZT1tNjhrLXNvbnkKKysJCW9zPS1uZXdzb3MKKysJCTs7CisrCW5ld3Mx MDAwKQorKwkJYmFzaWNfbWFjaGluZT1tNjgwMzAtc29ueQorKwkJb3M9LW5ld3NvcworKwkJOzsK KysJbmV3cy0zNjAwIHwgcmlzYy1uZXdzKQorKwkJYmFzaWNfbWFjaGluZT1taXBzLXNvbnkKKysJ CW9zPS1uZXdzb3MKKysJCTs7CisrCW5lY3Y3MCkKKysJCWJhc2ljX21hY2hpbmU9djcwLW5lYwor KwkJb3M9LXN5c3YKKysJCTs7CisrCW5leHQgfCBtKi1uZXh0ICkKKysJCWJhc2ljX21hY2hpbmU9 bTY4ay1uZXh0CisrCQljYXNlICRvcyBpbgorKwkJICAgIC1uZXh0c3RlcCogKQorKwkJCTs7Cisr CQkgICAgLW5zMiopCisrCQkgICAgICBvcz0tbmV4dHN0ZXAyCisrCQkJOzsKKysJCSAgICAqKQor KwkJICAgICAgb3M9LW5leHRzdGVwMworKwkJCTs7CisrCQllc2FjCisrCQk7OworKwluaDMwMDAp CisrCQliYXNpY19tYWNoaW5lPW02OGstaGFycmlzCisrCQlvcz0tY3h1eAorKwkJOzsKKysJbmhb NDVdMDAwKQorKwkJYmFzaWNfbWFjaGluZT1tODhrLWhhcnJpcworKwkJb3M9LWN4dXgKKysJCTs7 CisrCW5pbmR5OTYwKQorKwkJYmFzaWNfbWFjaGluZT1pOTYwLWludGVsCisrCQlvcz0tbmluZHkK KysJCTs7CisrCW1vbjk2MCkKKysJCWJhc2ljX21hY2hpbmU9aTk2MC1pbnRlbAorKwkJb3M9LW1v bjk2MAorKwkJOzsKKysJbm9uc3RvcHV4KQorKwkJYmFzaWNfbWFjaGluZT1taXBzLWNvbXBhcQor KwkJb3M9LW5vbnN0b3B1eAorKwkJOzsKKysJbnAxKQorKwkJYmFzaWNfbWFjaGluZT1ucDEtZ291 bGQKKysJCTs7CisrCW5zci10YW5kZW0pCisrCQliYXNpY19tYWNoaW5lPW5zci10YW5kZW0KKysJ CTs7CisrCW9wNTBuLSogfCBvcDYwYy0qKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9raQor KwkJb3M9LXByb2VsZgorKwkJOzsKKysJb3BlbnJpc2MgfCBvcGVucmlzYy0qKQorKwkJYmFzaWNf bWFjaGluZT1vcjMyLXVua25vd24KKysJCTs7CisrCW9zNDAwKQorKwkJYmFzaWNfbWFjaGluZT1w b3dlcnBjLWlibQorKwkJb3M9LW9zNDAwCisrCQk7OworKwlPU0U2ODAwMCB8IG9zZTY4MDAwKQor KwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtZXJpY3Nzb24KKysJCW9zPS1vc2UKKysJCTs7CisrCW9z NjhrKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLW5vbmUKKysJCW9zPS1vczY4aworKwkJOzsKKysJ cGEtaGl0YWNoaSkKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1oaXRhY2hpCisrCQlvcz0taGl1 eHdlMgorKwkJOzsKKysJcGFyYWdvbikKKysJCWJhc2ljX21hY2hpbmU9aTg2MC1pbnRlbAorKwkJ b3M9LW9zZgorKwkJOzsKKysJcGFyaXNjKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhLXVua25vd24K KysJCW9zPS1saW51eAorKwkJOzsKKysJcGFyaXNjLSopCisrCQliYXNpY19tYWNoaW5lPWhwcGEt YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCW9zPS1saW51eAor KwkJOzsKKysJcGJkKQorKwkJYmFzaWNfbWFjaGluZT1zcGFyYy10dGkKKysJCTs7CisrCXBiYikK KysJCWJhc2ljX21hY2hpbmU9bTY4ay10dGkKKysJCTs7CisrCXBjNTMyIHwgcGM1MzItKikKKysJ CWJhc2ljX21hY2hpbmU9bnMzMmstcGM1MzIKKysJCTs7CisrCXBjOTgpCisrCQliYXNpY19tYWNo aW5lPWkzODYtcGMKKysJCTs7CisrCXBjOTgtKikKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1gZWNo byAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorKwkJOzsKKysJcGVudGl1bSB8 IHA1IHwgazUgfCBrNiB8IG5leGdlbiB8IHZpYWMzKQorKwkJYmFzaWNfbWFjaGluZT1pNTg2LXBj CisrCQk7OworKwlwZW50aXVtcHJvIHwgcDYgfCA2eDg2IHwgYXRobG9uIHwgYXRobG9uXyopCisr CQliYXNpY19tYWNoaW5lPWk2ODYtcGMKKysJCTs7CisrCXBlbnRpdW1paSB8IHBlbnRpdW0yIHwg cGVudGl1bWlpaSB8IHBlbnRpdW0zKQorKwkJYmFzaWNfbWFjaGluZT1pNjg2LXBjCisrCQk7Owor KwlwZW50aXVtNCkKKysJCWJhc2ljX21hY2hpbmU9aTc4Ni1wYworKwkJOzsKKysJcGVudGl1bS0q IHwgcDUtKiB8IGs1LSogfCBrNi0qIHwgbmV4Z2VuLSogfCB2aWFjMy0qKQorKwkJYmFzaWNfbWFj aGluZT1pNTg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisrCQk7 OworKwlwZW50aXVtcHJvLSogfCBwNi0qIHwgNng4Ni0qIHwgYXRobG9uLSopCisrCQliYXNpY19t YWNoaW5lPWk2ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJ CTs7CisrCXBlbnRpdW1paS0qIHwgcGVudGl1bTItKiB8IHBlbnRpdW1paWktKiB8IHBlbnRpdW0z LSopCisrCQliYXNpY19tYWNoaW5lPWk2ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3Mv XlteLV0qLS8vJ2AKKysJCTs7CisrCXBlbnRpdW00LSopCisrCQliYXNpY19tYWNoaW5lPWk3ODYt YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCTs7CisrCXBuKQor KwkJYmFzaWNfbWFjaGluZT1wbi1nb3VsZAorKwkJOzsKKysJcG93ZXIpCWJhc2ljX21hY2hpbmU9 cG93ZXItaWJtCisrCQk7OworKwlwcGMpCWJhc2ljX21hY2hpbmU9cG93ZXJwYy11bmtub3duCisr CQk7OworKwlwcGMtKikJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWBlY2hvICRiYXNpY19tYWNoaW5l IHwgc2VkICdzL15bXi1dKi0vLydgCisrCQk7OworKwlwcGNsZSB8IHBvd2VycGNsaXR0bGUgfCBw cGMtbGUgfCBwb3dlcnBjLWxpdHRsZSkKKysJCWJhc2ljX21hY2hpbmU9cG93ZXJwY2xlLXVua25v d24KKysJCTs7CisrCXBwY2xlLSogfCBwb3dlcnBjbGl0dGxlLSopCisrCQliYXNpY19tYWNoaW5l PXBvd2VycGNsZS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorKwkJ OzsKKysJcHBjNjQpCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0LXVua25vd24KKysJCTs7CisrCXBw YzY0LSopIGJhc2ljX21hY2hpbmU9cG93ZXJwYzY0LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2Vk ICdzL15bXi1dKi0vLydgCisrCQk7OworKwlwcGM2NGxlIHwgcG93ZXJwYzY0bGl0dGxlIHwgcHBj NjQtbGUgfCBwb3dlcnBjNjQtbGl0dGxlKQorKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjRsZS11 bmtub3duCisrCQk7OworKwlwcGM2NGxlLSogfCBwb3dlcnBjNjRsaXR0bGUtKikKKysJCWJhc2lj X21hY2hpbmU9cG93ZXJwYzY0bGUtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0q LS8vJ2AKKysJCTs7CisrCXBzMikKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1pYm0KKysJCTs7Cisr CXB3MzIpCisrCQliYXNpY19tYWNoaW5lPWk1ODYtdW5rbm93bgorKwkJb3M9LXB3MzIKKysJCTs7 CisrCXJkb3MpCisrCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKysJCW9zPS1yZG9zCisrCQk7Owor Kwlyb202OGspCisrCQliYXNpY19tYWNoaW5lPW02OGstcm9tNjhrCisrCQlvcz0tY29mZgorKwkJ OzsKKysJcm1bNDZdMDApCisrCQliYXNpY19tYWNoaW5lPW1pcHMtc2llbWVucworKwkJOzsKKysJ cnRwYyB8IHJ0cGMtKikKKysJCWJhc2ljX21hY2hpbmU9cm9tcC1pYm0KKysJCTs7CisrCXMzOTAg fCBzMzkwLSopCisrCQliYXNpY19tYWNoaW5lPXMzOTAtaWJtCisrCQk7OworKwlzMzkweCB8IHMz OTB4LSopCisrCQliYXNpY19tYWNoaW5lPXMzOTB4LWlibQorKwkJOzsKKysJc2EyOTIwMCkKKysJ CWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKKysJCW9zPS11ZGkKKysJCTs7CisrCXNiMSkKKysJCWJh c2ljX21hY2hpbmU9bWlwc2lzYTY0c2IxLXVua25vd24KKysJCTs7CisrCXNiMWVsKQorKwkJYmFz aWNfbWFjaGluZT1taXBzaXNhNjRzYjFlbC11bmtub3duCisrCQk7OworKwlzZGUpCisrCQliYXNp Y19tYWNoaW5lPW1pcHNpc2EzMi1zZGUKKysJCW9zPS1lbGYKKysJCTs7CisrCXNlaSkKKysJCWJh c2ljX21hY2hpbmU9bWlwcy1zZWkKKysJCW9zPS1zZWl1eAorKwkJOzsKKysJc2VxdWVudCkKKysJ CWJhc2ljX21hY2hpbmU9aTM4Ni1zZXF1ZW50CisrCQk7OworKwlzaCkKKysJCWJhc2ljX21hY2hp bmU9c2gtaGl0YWNoaQorKwkJb3M9LWhtcworKwkJOzsKKysJc2g1ZWwpCisrCQliYXNpY19tYWNo aW5lPXNoNWxlLXVua25vd24KKysJCTs7CisrCXNoNjQpCisrCQliYXNpY19tYWNoaW5lPXNoNjQt dW5rbm93bgorKwkJOzsKKysJc3BhcmNsaXRlLXdycyB8IHNpbXNvLXdycykKKysJCWJhc2ljX21h Y2hpbmU9c3BhcmNsaXRlLXdycworKwkJb3M9LXZ4d29ya3MKKysJCTs7CisrCXNwczcpCisrCQli YXNpY19tYWNoaW5lPW02OGstYnVsbAorKwkJb3M9LXN5c3YyCisrCQk7OworKwlzcHVyKQorKwkJ YmFzaWNfbWFjaGluZT1zcHVyLXVua25vd24KKysJCTs7CisrCXN0MjAwMCkKKysJCWJhc2ljX21h Y2hpbmU9bTY4ay10YW5kZW0KKysJCTs7CisrCXN0cmF0dXMpCisrCQliYXNpY19tYWNoaW5lPWk4 NjAtc3RyYXR1cworKwkJb3M9LXN5c3Y0CisrCQk7OworKwlzdW4yKQorKwkJYmFzaWNfbWFjaGlu ZT1tNjgwMDAtc3VuCisrCQk7OworKwlzdW4yb3MzKQorKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAt c3VuCisrCQlvcz0tc3Vub3MzCisrCQk7OworKwlzdW4yb3M0KQorKwkJYmFzaWNfbWFjaGluZT1t NjgwMDAtc3VuCisrCQlvcz0tc3Vub3M0CisrCQk7OworKwlzdW4zb3MzKQorKwkJYmFzaWNfbWFj aGluZT1tNjhrLXN1bgorKwkJb3M9LXN1bm9zMworKwkJOzsKKysJc3VuM29zNCkKKysJCWJhc2lj X21hY2hpbmU9bTY4ay1zdW4KKysJCW9zPS1zdW5vczQKKysJCTs7CisrCXN1bjRvczMpCisrCQli YXNpY19tYWNoaW5lPXNwYXJjLXN1bgorKwkJb3M9LXN1bm9zMworKwkJOzsKKysJc3VuNG9zNCkK KysJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisrCQlvcz0tc3Vub3M0CisrCQk7OworKwlzdW40 c29sMikKKysJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisrCQlvcz0tc29sYXJpczIKKysJCTs7 CisrCXN1bjMgfCBzdW4zLSopCisrCQliYXNpY19tYWNoaW5lPW02OGstc3VuCisrCQk7OworKwlz dW40KQorKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KKysJCTs7CisrCXN1bjM4NiB8IHN1bjM4 NmkgfCByb2FkcnVubmVyKQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LXN1bgorKwkJOzsKKysJc3Yx KQorKwkJYmFzaWNfbWFjaGluZT1zdjEtY3JheQorKwkJb3M9LXVuaWNvcworKwkJOzsKKysJc3lt bWV0cnkpCisrCQliYXNpY19tYWNoaW5lPWkzODYtc2VxdWVudAorKwkJb3M9LWR5bml4CisrCQk7 OworKwl0M2UpCisrCQliYXNpY19tYWNoaW5lPWFscGhhZXY1LWNyYXkKKysJCW9zPS11bmljb3MK KysJCTs7CisrCXQ5MCkKKysJCWJhc2ljX21hY2hpbmU9dDkwLWNyYXkKKysJCW9zPS11bmljb3MK KysJCTs7CisrCXRpYzU0eCB8IGM1NHgqKQorKwkJYmFzaWNfbWFjaGluZT10aWM1NHgtdW5rbm93 bgorKwkJb3M9LWNvZmYKKysJCTs7CisrCXRpYzU1eCB8IGM1NXgqKQorKwkJYmFzaWNfbWFjaGlu ZT10aWM1NXgtdW5rbm93bgorKwkJb3M9LWNvZmYKKysJCTs7CisrCXRpYzZ4IHwgYzZ4KikKKysJ CWJhc2ljX21hY2hpbmU9dGljNngtdW5rbm93bgorKwkJb3M9LWNvZmYKKysJCTs7CisrCXRpbGUq KQorKwkJYmFzaWNfbWFjaGluZT10aWxlLXVua25vd24KKysJCW9zPS1saW51eC1nbnUKKysJCTs7 CisrCXR4MzkpCisrCQliYXNpY19tYWNoaW5lPW1pcHN0eDM5LXVua25vd24KKysJCTs7CisrCXR4 MzllbCkKKysJCWJhc2ljX21hY2hpbmU9bWlwc3R4MzllbC11bmtub3duCisrCQk7OworKwl0b2Fk MSkKKysJCWJhc2ljX21hY2hpbmU9cGRwMTAteGtsCisrCQlvcz0tdG9wczIwCisrCQk7OworKwl0 b3dlciB8IHRvd2VyLTMyKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLW5jcgorKwkJOzsKKysJdHBm KQorKwkJYmFzaWNfbWFjaGluZT1zMzkweC1pYm0KKysJCW9zPS10cGYKKysJCTs7CisrCXVkaTI5 aykKKysJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKKysJCW9zPS11ZGkKKysJCTs7CisrCXVsdHJh MykKKysJCWJhc2ljX21hY2hpbmU9YTI5ay1ueXUKKysJCW9zPS1zeW0xCisrCQk7OworKwl2ODEw IHwgbmVjdjgxMCkKKysJCWJhc2ljX21hY2hpbmU9djgxMC1uZWMKKysJCW9zPS1ub25lCisrCQk7 OworKwl2YXh2KQorKwkJYmFzaWNfbWFjaGluZT12YXgtZGVjCisrCQlvcz0tc3lzdgorKwkJOzsK KysJdm1zKQorKwkJYmFzaWNfbWFjaGluZT12YXgtZGVjCisrCQlvcz0tdm1zCisrCQk7OworKwl2 cHAqfHZ4fHZ4LSopCisrCQliYXNpY19tYWNoaW5lPWYzMDEtZnVqaXRzdQorKwkJOzsKKysJdnh3 b3Jrczk2MCkKKysJCWJhc2ljX21hY2hpbmU9aTk2MC13cnMKKysJCW9zPS12eHdvcmtzCisrCQk7 OworKwl2eHdvcmtzNjgpCisrCQliYXNpY19tYWNoaW5lPW02OGstd3JzCisrCQlvcz0tdnh3b3Jr cworKwkJOzsKKysJdnh3b3JrczI5aykKKysJCWJhc2ljX21hY2hpbmU9YTI5ay13cnMKKysJCW9z PS12eHdvcmtzCisrCQk7OworKwl3NjUqKQorKwkJYmFzaWNfbWFjaGluZT13NjUtd2RjCisrCQlv cz0tbm9uZQorKwkJOzsKKysJdzg5ay0qKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLXdpbmJv bmQKKysJCW9zPS1wcm9lbGYKKysJCTs7CisrCXhib3gpCisrCQliYXNpY19tYWNoaW5lPWk2ODYt cGMKKysJCW9zPS1taW5ndzMyCisrCQk7OworKwl4cHMgfCB4cHMxMDApCisrCQliYXNpY19tYWNo aW5lPXhwczEwMC1ob25leXdlbGwKKysJCTs7CisrCXltcCkKKysJCWJhc2ljX21hY2hpbmU9eW1w LWNyYXkKKysJCW9zPS11bmljb3MKKysJCTs7CisrCXo4ay0qLWNvZmYpCisrCQliYXNpY19tYWNo aW5lPXo4ay11bmtub3duCisrCQlvcz0tc2ltCisrCQk7OworKwl6ODAtKi1jb2ZmKQorKwkJYmFz aWNfbWFjaGluZT16ODAtdW5rbm93bgorKwkJb3M9LXNpbQorKwkJOzsKKysJbm9uZSkKKysJCWJh c2ljX21hY2hpbmU9bm9uZS1ub25lCisrCQlvcz0tbm9uZQorKwkJOzsKKysKKysjIEhlcmUgd2Ug aGFuZGxlIHRoZSBkZWZhdWx0IG1hbnVmYWN0dXJlciBvZiBjZXJ0YWluIENQVSB0eXBlcy4gIEl0 IGlzIGluCisrIyBzb21lIGNhc2VzIHRoZSBvbmx5IG1hbnVmYWN0dXJlciwgaW4gb3RoZXJzLCBp dCBpcyB0aGUgbW9zdCBwb3B1bGFyLgorKwl3ODlrKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4x LXdpbmJvbmQKKysJCTs7CisrCW9wNTBuKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9raQor KwkJOzsKKysJb3A2MGMpCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjEtb2tpCisrCQk7OworKwly b21wKQorKwkJYmFzaWNfbWFjaGluZT1yb21wLWlibQorKwkJOzsKKysJbW1peCkKKysJCWJhc2lj X21hY2hpbmU9bW1peC1rbnV0aAorKwkJOzsKKysJcnM2MDAwKQorKwkJYmFzaWNfbWFjaGluZT1y czYwMDAtaWJtCisrCQk7OworKwl2YXgpCisrCQliYXNpY19tYWNoaW5lPXZheC1kZWMKKysJCTs7 CisrCXBkcDEwKQorKwkJIyB0aGVyZSBhcmUgbWFueSBjbG9uZXMsIHNvIERFQyBpcyBub3QgYSBz YWZlIGJldAorKwkJYmFzaWNfbWFjaGluZT1wZHAxMC11bmtub3duCisrCQk7OworKwlwZHAxMSkK KysJCWJhc2ljX21hY2hpbmU9cGRwMTEtZGVjCisrCQk7OworKwl3ZTMyaykKKysJCWJhc2ljX21h Y2hpbmU9d2UzMmstYXR0CisrCQk7OworKwlzaFsxMjM0XSB8IHNoWzI0XWEgfCBzaFsyNF1hZWIg fCBzaFszNF1lYiB8IHNoWzEyMzRdbGUgfCBzaFsyM11lbGUpCisrCQliYXNpY19tYWNoaW5lPXNo LXVua25vd24KKysJCTs7CisrCXNwYXJjIHwgc3BhcmN2OCB8IHNwYXJjdjkgfCBzcGFyY3Y5YiB8 IHNwYXJjdjl2KQorKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KKysJCTs7CisrCWN5ZHJhKQor KwkJYmFzaWNfbWFjaGluZT1jeWRyYS1jeWRyb21lCisrCQk7OworKwlvcmlvbikKKysJCWJhc2lj X21hY2hpbmU9b3Jpb24taGlnaGxldmVsCisrCQk7OworKwlvcmlvbjEwNSkKKysJCWJhc2ljX21h Y2hpbmU9Y2xpcHBlci1oaWdobGV2ZWwKKysJCTs7CisrCW1hYyB8IG1wdyB8IG1hYy1tcHcpCisr CQliYXNpY19tYWNoaW5lPW02OGstYXBwbGUKKysJCTs7CisrCXBtYWMgfCBwbWFjLW1wdykKKysJ CWJhc2ljX21hY2hpbmU9cG93ZXJwYy1hcHBsZQorKwkJOzsKKysJKi11bmtub3duKQorKwkJIyBN YWtlIHN1cmUgdG8gbWF0Y2ggYW4gYWxyZWFkeS1jYW5vbmljYWxpemVkIG1hY2hpbmUgbmFtZS4K KysJCTs7CisrCSopCisrCQllY2hvIEludmFsaWQgY29uZmlndXJhdGlvbiBcYCQxXCc6IG1hY2hp bmUgXGAkYmFzaWNfbWFjaGluZVwnIG5vdCByZWNvZ25pemVkIDE+JjIKKysJCWV4aXQgMQorKwkJ OzsKKytlc2FjCisrCisrIyBIZXJlIHdlIGNhbm9uaWNhbGl6ZSBjZXJ0YWluIGFsaWFzZXMgZm9y IG1hbnVmYWN0dXJlcnMuCisrY2FzZSAkYmFzaWNfbWFjaGluZSBpbgorKwkqLWRpZ2l0YWwqKQor KwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9kaWdpdGFsLiov ZGVjLydgCisrCQk7OworKwkqLWNvbW1vZG9yZSopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICRi YXNpY19tYWNoaW5lIHwgc2VkICdzL2NvbW1vZG9yZS4qL2NibS8nYAorKwkJOzsKKysJKikKKysJ CTs7CisrZXNhYworKworKyMgRGVjb2RlIG1hbnVmYWN0dXJlci1zcGVjaWZpYyBhbGlhc2VzIGZv ciBjZXJ0YWluIG9wZXJhdGluZyBzeXN0ZW1zLgorKworK2lmIFsgeCIkb3MiICE9IHgiIiBdCisr dGhlbgorK2Nhc2UgJG9zIGluCisrICAgICAgICAjIEZpcnN0IG1hdGNoIHNvbWUgc3lzdGVtIHR5 cGUgYWxpYXNlcworKyAgICAgICAgIyB0aGF0IG1pZ2h0IGdldCBjb25mdXNlZCB3aXRoIHZhbGlk IHN5c3RlbSB0eXBlcy4KKysJIyAtc29sYXJpcyogaXMgYSBiYXNpYyBzeXN0ZW0gdHlwZSwgd2l0 aCB0aGlzIG9uZSBleGNlcHRpb24uCisrICAgICAgICAtYXVyb3JhdXgpCisrCSAgICAgICAgb3M9 LWF1cm9yYXV4CisrCQk7OworKwktc29sYXJpczEgfCAtc29sYXJpczEuKikKKysJCW9zPWBlY2hv ICRvcyB8IHNlZCAtZSAnc3xzb2xhcmlzMXxzdW5vczR8J2AKKysJCTs7CisrCS1zb2xhcmlzKQor KwkJb3M9LXNvbGFyaXMyCisrCQk7OworKwktc3ZyNCopCisrCQlvcz0tc3lzdjQKKysJCTs7Cisr CS11bml4d2FyZSopCisrCQlvcz0tc3lzdjQuMnV3CisrCQk7OworKwktZ251L2xpbnV4KikKKysJ CW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xnbnUvbGludXh8bGludXgtZ251fCdgCisrCQk7Owor KwkjIEZpcnN0IGFjY2VwdCB0aGUgYmFzaWMgc3lzdGVtIHR5cGVzLgorKwkjIFRoZSBwb3J0YWJs ZSBzeXN0ZW1zIGNvbWVzIGZpcnN0LgorKwkjIEVhY2ggYWx0ZXJuYXRpdmUgTVVTVCBFTkQgSU4g QSAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVyLgorKwkjIC1zeXN2KiBpcyBub3QgaGVyZSBi ZWNhdXNlIGl0IGNvbWVzIGxhdGVyLCBhZnRlciBzeXN2cjQuCisrCS1nbnUqIHwgLWJzZCogfCAt bWFjaCogfCAtbWluaXgqIHwgLWdlbml4KiB8IC11bHRyaXgqIHwgLWlyaXgqIFwKKysJICAgICAg fCAtKnZtcyogfCAtc2NvKiB8IC1lc2l4KiB8IC1pc2MqIHwgLWFpeCogfCAtY25rKiB8IC1zdW5v cyB8IC1zdW5vc1szNF0qXAorKwkgICAgICB8IC1ocHV4KiB8IC11bm9zKiB8IC1vc2YqIHwgLWx1 bmEqIHwgLWRndXgqIHwgLWF1cm9yYXV4KiB8IC1zb2xhcmlzKiBcCisrCSAgICAgIHwgLXN5bSog fCAta29wZW5zb2xhcmlzKiBcCisrCSAgICAgIHwgLWFtaWdhb3MqIHwgLWFtaWdhZG9zKiB8IC1t c2RvcyogfCAtbmV3c29zKiB8IC11bmljb3MqIHwgLWFvZiogXAorKwkgICAgICB8IC1hb3MqIHwg LWFyb3MqIFwKKysJICAgICAgfCAtbmluZHkqIHwgLXZ4c2ltKiB8IC12eHdvcmtzKiB8IC1lYm1v biogfCAtaG1zKiB8IC1tdnMqIFwKKysJICAgICAgfCAtY2xpeCogfCAtcmlzY29zKiB8IC11bmlw bHVzKiB8IC1pcmlzKiB8IC1ydHUqIHwgLXhlbml4KiBcCisrCSAgICAgIHwgLWhpdXgqIHwgLTM4 NmJzZCogfCAta25ldGJzZCogfCAtbWlyYnNkKiB8IC1uZXRic2QqIFwKKysJICAgICAgfCAtb3Bl bmJzZCogfCAtc29saWRic2QqIFwKKysJICAgICAgfCAtZWtrb2JzZCogfCAta2ZyZWVic2QqIHwg LWZyZWVic2QqIHwgLXJpc2NpeCogfCAtbHlueG9zKiBcCisrCSAgICAgIHwgLWJvc3gqIHwgLW5l eHRzdGVwKiB8IC1jeHV4KiB8IC1hb3V0KiB8IC1lbGYqIHwgLW9hYmkqIFwKKysJICAgICAgfCAt cHR4KiB8IC1jb2ZmKiB8IC1lY29mZiogfCAtd2lubnQqIHwgLWRvbWFpbiogfCAtdnN0YSogXAor KwkgICAgICB8IC11ZGkqIHwgLWVhYmkqIHwgLWxpdGVzKiB8IC1pZWVlKiB8IC1nbzMyKiB8IC1h dXgqIFwKKysJICAgICAgfCAtY2hvcnVzb3MqIHwgLWNob3J1c3JkYiogfCAtY2VnY2MqIFwKKysJ ICAgICAgfCAtY3lnd2luKiB8IC1wZSogfCAtcHNvcyogfCAtbW9zcyogfCAtcHJvZWxmKiB8IC1y dGVtcyogXAorKwkgICAgICB8IC1taW5ndzMyKiB8IC1saW51eC1nbnUqIHwgLWxpbnV4LW5ld2xp YiogfCAtbGludXgtdWNsaWJjKiBcCisrCSAgICAgIHwgLXV4cHYqIHwgLWJlb3MqIHwgLW1wZWl4 KiB8IC11ZGsqIFwKKysJICAgICAgfCAtaW50ZXJpeCogfCAtdXdpbiogfCAtbWtzKiB8IC1yaGFw c29keSogfCAtZGFyd2luKiB8IC1vcGVuZWQqIFwKKysJICAgICAgfCAtb3BlbnN0ZXAqIHwgLW9z a2l0KiB8IC1jb25peCogfCAtcHczMiogfCAtbm9uc3RvcHV4KiBcCisrCSAgICAgIHwgLXN0b3Jt LWNoYW9zKiB8IC10b3BzMTAqIHwgLXRlbmV4KiB8IC10b3BzMjAqIHwgLWl0cyogXAorKwkgICAg ICB8IC1vczIqIHwgLXZvcyogfCAtcGFsbW9zKiB8IC11Y2xpbnV4KiB8IC1udWNsZXVzKiBcCisr CSAgICAgIHwgLW1vcnBob3MqIHwgLXN1cGVydXgqIHwgLXJ0bWsqIHwgLXJ0bWstbm92YSogfCAt d2luZGlzcyogXAorKwkgICAgICB8IC1wb3dlcm1heCogfCAtZG5peCogfCAtbng2IHwgLW54NyB8 IC1zZWkqIHwgLWRyYWdvbmZseSogXAorKwkgICAgICB8IC1za3lvcyogfCAtaGFpa3UqIHwgLXJk b3MqIHwgLXRvcHBlcnMqIHwgLWRyb3BzKiB8IC1lcyopCisrCSMgUmVtZW1iZXIsIGVhY2ggYWx0 ZXJuYXRpdmUgTVVTVCBFTkQgSU4gKiwgdG8gbWF0Y2ggYSB2ZXJzaW9uIG51bWJlci4KKysJCTs7 CisrCS1xbngqKQorKwkJY2FzZSAkYmFzaWNfbWFjaGluZSBpbgorKwkJICAgIHg4Ni0qIHwgaSo4 Ni0qKQorKwkJCTs7CisrCQkgICAgKikKKysJCQlvcz0tbnRvJG9zCisrCQkJOzsKKysJCWVzYWMK KysJCTs7CisrCS1udG8tcW54KikKKysJCTs7CisrCS1udG8qKQorKwkJb3M9YGVjaG8gJG9zIHwg c2VkIC1lICdzfG50b3xudG8tcW54fCdgCisrCQk7OworKwktc2ltIHwgLWVzMTgwMCogfCAtaG1z KiB8IC14cmF5IHwgLW9zNjhrKiB8IC1ub25lKiB8IC12ODhyKiBcCisrCSAgICAgIHwgLXdpbmRv d3MqIHwgLW9zeCB8IC1hYnVnIHwgLW5ldHdhcmUqIHwgLW9zOSogfCAtYmVvcyogfCAtaGFpa3Uq IFwKKysJICAgICAgfCAtbWFjb3MqIHwgLW1wdyogfCAtbWFnaWMqIHwgLW1taXh3YXJlKiB8IC1t b245NjAqIHwgLWxuZXdzKikKKysJCTs7CisrCS1tYWMqKQorKwkJb3M9YGVjaG8gJG9zIHwgc2Vk IC1lICdzfG1hY3xtYWNvc3wnYAorKwkJOzsKKysJLWxpbnV4LWRpZXRsaWJjKQorKwkJb3M9LWxp bnV4LWRpZXRsaWJjCisrCQk7OworKwktbGludXgqKQorKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1l ICdzfGxpbnV4fGxpbnV4LWdudXwnYAorKwkJOzsKKysJLXN1bm9zNSopCisrCQlvcz1gZWNobyAk b3MgfCBzZWQgLWUgJ3N8c3Vub3M1fHNvbGFyaXMyfCdgCisrCQk7OworKwktc3Vub3M2KikKKysJ CW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzdW5vczZ8c29sYXJpczN8J2AKKysJCTs7CisrCS1v cGVuZWQqKQorKwkJb3M9LW9wZW5lZGl0aW9uCisrCQk7OworKyAgICAgICAgLW9zNDAwKikKKysJ CW9zPS1vczQwMAorKwkJOzsKKysJLXdpbmNlKikKKysJCW9zPS13aW5jZQorKwkJOzsKKysJLW9z ZnJvc2UqKQorKwkJb3M9LW9zZnJvc2UKKysJCTs7CisrCS1vc2YqKQorKwkJb3M9LW9zZgorKwkJ OzsKKysJLXV0ZWsqKQorKwkJb3M9LWJzZAorKwkJOzsKKysJLWR5bml4KikKKysJCW9zPS1ic2QK KysJCTs7CisrCS1hY2lzKikKKysJCW9zPS1hb3MKKysJCTs7CisrCS1hdGhlb3MqKQorKwkJb3M9 LWF0aGVvcworKwkJOzsKKysJLXN5bGxhYmxlKikKKysJCW9zPS1zeWxsYWJsZQorKwkJOzsKKysJ LTM4NmJzZCkKKysJCW9zPS1ic2QKKysJCTs7CisrCS1jdGl4KiB8IC11dHMqKQorKwkJb3M9LXN5 c3YKKysJCTs7CisrCS1ub3ZhKikKKysJCW9zPS1ydG1rLW5vdmEKKysJCTs7CisrCS1uczIgKQor KwkJb3M9LW5leHRzdGVwMgorKwkJOzsKKysJLW5zayopCisrCQlvcz0tbnNrCisrCQk7OworKwkj IFByZXNlcnZlIHRoZSB2ZXJzaW9uIG51bWJlciBvZiBzaW5peDUuCisrCS1zaW5peDUuKikKKysJ CW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzaW5peHxzeXN2fCdgCisrCQk7OworKwktc2luaXgq KQorKwkJb3M9LXN5c3Y0CisrCQk7OworKyAgICAgICAgLXRwZiopCisrCQlvcz0tdHBmCisrCQk7 OworKwktdHJpdG9uKikKKysJCW9zPS1zeXN2MworKwkJOzsKKysJLW9zcyopCisrCQlvcz0tc3lz djMKKysJCTs7CisrCS1zdnI0KQorKwkJb3M9LXN5c3Y0CisrCQk7OworKwktc3ZyMykKKysJCW9z PS1zeXN2MworKwkJOzsKKysJLXN5c3ZyNCkKKysJCW9zPS1zeXN2NAorKwkJOzsKKysJIyBUaGlz IG11c3QgY29tZSBhZnRlciAtc3lzdnI0LgorKwktc3lzdiopCisrCQk7OworKwktb3NlKikKKysJ CW9zPS1vc2UKKysJCTs7CisrCS1lczE4MDAqKQorKwkJb3M9LW9zZQorKwkJOzsKKysJLXhlbml4 KQorKwkJb3M9LXhlbml4CisrCQk7OworKwktKm1pbnQgfCAtbWludFswLTldKiB8IC0qTWlOVCB8 IC1NaU5UWzAtOV0qKQorKwkJb3M9LW1pbnQKKysJCTs7CisrCS1hcm9zKikKKysJCW9zPS1hcm9z CisrCQk7OworKwkta2FvcyopCisrCQlvcz0ta2FvcworKwkJOzsKKysJLXp2bW9lKQorKwkJb3M9 LXp2bW9lCisrCQk7OworKwktZGljb3MqKQorKwkJb3M9LWRpY29zCisrCQk7OworKwktbm9uZSkK KysJCTs7CisrCSopCisrCQkjIEdldCByaWQgb2YgdGhlIGAtJyBhdCB0aGUgYmVnaW5uaW5nIG9m ICRvcy4KKysJCW9zPWBlY2hvICRvcyB8IHNlZCAncy9bXi1dKi0vLydgCisrCQllY2hvIEludmFs aWQgY29uZmlndXJhdGlvbiBcYCQxXCc6IHN5c3RlbSBcYCRvc1wnIG5vdCByZWNvZ25pemVkIDE+ JjIKKysJCWV4aXQgMQorKwkJOzsKKytlc2FjCisrZWxzZQorKworKyMgSGVyZSB3ZSBoYW5kbGUg dGhlIGRlZmF1bHQgb3BlcmF0aW5nIHN5c3RlbXMgdGhhdCBjb21lIHdpdGggdmFyaW91cyBtYWNo aW5lcy4KKysjIFRoZSB2YWx1ZSBzaG91bGQgYmUgd2hhdCB0aGUgdmVuZG9yIGN1cnJlbnRseSBz aGlwcyBvdXQgdGhlIGRvb3Igd2l0aCB0aGVpcgorKyMgbWFjaGluZSBvciBwdXQgYW5vdGhlciB3 YXksIHRoZSBtb3N0IHBvcHVsYXIgb3MgcHJvdmlkZWQgd2l0aCB0aGUgbWFjaGluZS4KKysKKysj IE5vdGUgdGhhdCBpZiB5b3UncmUgZ29pbmcgdG8gdHJ5IHRvIG1hdGNoICItTUFOVUZBQ1RVUkVS IiBoZXJlIChzYXksCisrIyAiLXN1biIpLCB0aGVuIHlvdSBoYXZlIHRvIHRlbGwgdGhlIGNhc2Ug c3RhdGVtZW50IHVwIHRvd2FyZHMgdGhlIHRvcAorKyMgdGhhdCBNQU5VRkFDVFVSRVIgaXNuJ3Qg YW4gb3BlcmF0aW5nIHN5c3RlbS4gIE90aGVyd2lzZSwgY29kZSBhYm92ZQorKyMgd2lsbCBzaWdu YWwgYW4gZXJyb3Igc2F5aW5nIHRoYXQgTUFOVUZBQ1RVUkVSIGlzbid0IGFuIG9wZXJhdGluZwor KyMgc3lzdGVtLCBhbmQgd2UnbGwgbmV2ZXIgZ2V0IHRvIHRoaXMgcG9pbnQuCisrCisrY2FzZSAk YmFzaWNfbWFjaGluZSBpbgorKyAgICAgICAgc2NvcmUtKikKKysJCW9zPS1lbGYKKysJCTs7Cisr ICAgICAgICBzcHUtKikKKysJCW9zPS1lbGYKKysJCTs7CisrCSotYWNvcm4pCisrCQlvcz0tcmlz Y2l4MS4yCisrCQk7OworKwlhcm0qLXJlYmVsKQorKwkJb3M9LWxpbnV4CisrCQk7OworKwlhcm0q LXNlbWkpCisrCQlvcz0tYW91dAorKwkJOzsKKysgICAgICAgIGM0eC0qIHwgdGljNHgtKikKKysg ICAgICAgIAlvcz0tY29mZgorKwkJOzsKKysJIyBUaGlzIG11c3QgY29tZSBiZWZvcmUgdGhlICot ZGVjIGVudHJ5LgorKwlwZHAxMC0qKQorKwkJb3M9LXRvcHMyMAorKwkJOzsKKysJcGRwMTEtKikK KysJCW9zPS1ub25lCisrCQk7OworKwkqLWRlYyB8IHZheC0qKQorKwkJb3M9LXVsdHJpeDQuMgor KwkJOzsKKysJbTY4Ki1hcG9sbG8pCisrCQlvcz0tZG9tYWluCisrCQk7OworKwlpMzg2LXN1bikK KysJCW9zPS1zdW5vczQuMC4yCisrCQk7OworKwltNjgwMDAtc3VuKQorKwkJb3M9LXN1bm9zMwor KwkJIyBUaGlzIGFsc28gZXhpc3RzIGluIHRoZSBjb25maWd1cmUgcHJvZ3JhbSwgYnV0IHdhcyBu b3QgdGhlCisrCQkjIGRlZmF1bHQuCisrCQkjIG9zPS1zdW5vczQKKysJCTs7CisrCW02OCotY2lz Y28pCisrCQlvcz0tYW91dAorKwkJOzsKKysgICAgICAgIG1lcC0qKQorKwkJb3M9LWVsZgorKwkJ OzsKKysJbWlwcyotY2lzY28pCisrCQlvcz0tZWxmCisrCQk7OworKwltaXBzKi0qKQorKwkJb3M9 LWVsZgorKwkJOzsKKysJb3IzMi0qKQorKwkJb3M9LWNvZmYKKysJCTs7CisrCSotdHRpKQkjIG11 c3QgYmUgYmVmb3JlIHNwYXJjIGVudHJ5IG9yIHdlIGdldCB0aGUgd3Jvbmcgb3MuCisrCQlvcz0t c3lzdjMKKysJCTs7CisrCXNwYXJjLSogfCAqLXN1bikKKysJCW9zPS1zdW5vczQuMS4xCisrCQk7 OworKwkqLWJlKQorKwkJb3M9LWJlb3MKKysJCTs7CisrCSotaGFpa3UpCisrCQlvcz0taGFpa3UK KysJCTs7CisrCSotaWJtKQorKwkJb3M9LWFpeAorKwkJOzsKKysgICAgCSota251dGgpCisrCQlv cz0tbW1peHdhcmUKKysJCTs7CisrCSotd2VjKQorKwkJb3M9LXByb2VsZgorKwkJOzsKKysJKi13 aW5ib25kKQorKwkJb3M9LXByb2VsZgorKwkJOzsKKysJKi1va2kpCisrCQlvcz0tcHJvZWxmCisr CQk7OworKwkqLWhwKQorKwkJb3M9LWhwdXgKKysJCTs7CisrCSotaGl0YWNoaSkKKysJCW9zPS1o aXV4CisrCQk7OworKwlpODYwLSogfCAqLWF0dCB8ICotbmNyIHwgKi1hbHRvcyB8ICotbW90b3Jv bGEgfCAqLWNvbnZlcmdlbnQpCisrCQlvcz0tc3lzdgorKwkJOzsKKysJKi1jYm0pCisrCQlvcz0t YW1pZ2FvcworKwkJOzsKKysJKi1kZykKKysJCW9zPS1kZ3V4CisrCQk7OworKwkqLWRvbHBoaW4p CisrCQlvcz0tc3lzdjMKKysJCTs7CisrCW02OGstY2N1cikKKysJCW9zPS1ydHUKKysJCTs7Cisr CW04OGstb21yb24qKQorKwkJb3M9LWx1bmEKKysJCTs7CisrCSotbmV4dCApCisrCQlvcz0tbmV4 dHN0ZXAKKysJCTs7CisrCSotc2VxdWVudCkKKysJCW9zPS1wdHgKKysJCTs7CisrCSotY3JkcykK KysJCW9zPS11bm9zCisrCQk7OworKwkqLW5zKQorKwkJb3M9LWdlbml4CisrCQk7OworKwlpMzcw LSopCisrCQlvcz0tbXZzCisrCQk7OworKwkqLW5leHQpCisrCQlvcz0tbmV4dHN0ZXAzCisrCQk7 OworKwkqLWdvdWxkKQorKwkJb3M9LXN5c3YKKysJCTs7CisrCSotaGlnaGxldmVsKQorKwkJb3M9 LWJzZAorKwkJOzsKKysJKi1lbmNvcmUpCisrCQlvcz0tYnNkCisrCQk7OworKwkqLXNnaSkKKysJ CW9zPS1pcml4CisrCQk7OworKwkqLXNpZW1lbnMpCisrCQlvcz0tc3lzdjQKKysJCTs7CisrCSot bWFzc2NvbXApCisrCQlvcz0tcnR1CisrCQk7OworKwlmMzBbMDFdLWZ1aml0c3UgfCBmNzAwLWZ1 aml0c3UpCisrCQlvcz0tdXhwdgorKwkJOzsKKysJKi1yb202OGspCisrCQlvcz0tY29mZgorKwkJ OzsKKysJKi0qYnVnKQorKwkJb3M9LWNvZmYKKysJCTs7CisrCSotYXBwbGUpCisrCQlvcz0tbWFj b3MKKysJCTs7CisrCSotYXRhcmkqKQorKwkJb3M9LW1pbnQKKysJCTs7CisrCSopCisrCQlvcz0t bm9uZQorKwkJOzsKKytlc2FjCisrZmkKKysKKysjIEhlcmUgd2UgaGFuZGxlIHRoZSBjYXNlIHdo ZXJlIHdlIGtub3cgdGhlIG9zLCBhbmQgdGhlIENQVSB0eXBlLCBidXQgbm90IHRoZQorKyMgbWFu dWZhY3R1cmVyLiAgV2UgcGljayB0aGUgbG9naWNhbCBtYW51ZmFjdHVyZXIuCisrdmVuZG9yPXVu a25vd24KKytjYXNlICRiYXNpY19tYWNoaW5lIGluCisrCSotdW5rbm93bikKKysJCWNhc2UgJG9z IGluCisrCQkJLXJpc2NpeCopCisrCQkJCXZlbmRvcj1hY29ybgorKwkJCQk7OworKwkJCS1zdW5v cyopCisrCQkJCXZlbmRvcj1zdW4KKysJCQkJOzsKKysJCQktY25rKnwtYWl4KikKKysJCQkJdmVu ZG9yPWlibQorKwkJCQk7OworKwkJCS1iZW9zKikKKysJCQkJdmVuZG9yPWJlCisrCQkJCTs7Cisr CQkJLWhwdXgqKQorKwkJCQl2ZW5kb3I9aHAKKysJCQkJOzsKKysJCQktbXBlaXgqKQorKwkJCQl2 ZW5kb3I9aHAKKysJCQkJOzsKKysJCQktaGl1eCopCisrCQkJCXZlbmRvcj1oaXRhY2hpCisrCQkJ CTs7CisrCQkJLXVub3MqKQorKwkJCQl2ZW5kb3I9Y3JkcworKwkJCQk7OworKwkJCS1kZ3V4KikK KysJCQkJdmVuZG9yPWRnCisrCQkJCTs7CisrCQkJLWx1bmEqKQorKwkJCQl2ZW5kb3I9b21yb24K KysJCQkJOzsKKysJCQktZ2VuaXgqKQorKwkJCQl2ZW5kb3I9bnMKKysJCQkJOzsKKysJCQktbXZz KiB8IC1vcGVuZWQqKQorKwkJCQl2ZW5kb3I9aWJtCisrCQkJCTs7CisrCQkJLW9zNDAwKikKKysJ CQkJdmVuZG9yPWlibQorKwkJCQk7OworKwkJCS1wdHgqKQorKwkJCQl2ZW5kb3I9c2VxdWVudAor KwkJCQk7OworKwkJCS10cGYqKQorKwkJCQl2ZW5kb3I9aWJtCisrCQkJCTs7CisrCQkJLXZ4c2lt KiB8IC12eHdvcmtzKiB8IC13aW5kaXNzKikKKysJCQkJdmVuZG9yPXdycworKwkJCQk7OworKwkJ CS1hdXgqKQorKwkJCQl2ZW5kb3I9YXBwbGUKKysJCQkJOzsKKysJCQktaG1zKikKKysJCQkJdmVu ZG9yPWhpdGFjaGkKKysJCQkJOzsKKysJCQktbXB3KiB8IC1tYWNvcyopCisrCQkJCXZlbmRvcj1h cHBsZQorKwkJCQk7OworKwkJCS0qbWludCB8IC1taW50WzAtOV0qIHwgLSpNaU5UIHwgLU1pTlRb MC05XSopCisrCQkJCXZlbmRvcj1hdGFyaQorKwkJCQk7OworKwkJCS12b3MqKQorKwkJCQl2ZW5k b3I9c3RyYXR1cworKwkJCQk7OworKwkJZXNhYworKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFz aWNfbWFjaGluZSB8IHNlZCAicy91bmtub3duLyR2ZW5kb3IvImAKKysJCTs7CisrZXNhYworKwor K2VjaG8gJGJhc2ljX21hY2hpbmUkb3MKKytleGl0CisrCisrIyBMb2NhbCB2YXJpYWJsZXM6Cisr IyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCisrIyB0aW1l LXN0YW1wLXN0YXJ0OiAidGltZXN0YW1wPSciCisrIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0l MDJtLSUwMmQiCisrIyB0aW1lLXN0YW1wLWVuZDogIiciCisrIyBFbmQ6CitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svY29uZmlnL2NwcHVuaXQubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZp Zy9jcHB1bml0Lm00CistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NwcHVuaXQubTQJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv Y29uZmlnL2NwcHVuaXQubTQJMjAxMC0wMS0yMyAxMzoyNzowNC4wMDAwMDAwMDAgKzAxMDAKK0BA 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 cGNvbXAJMjAxMS0wMi0wOCAyMjozOTo1Ny4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNjMw IEBACisrIyEgL2Jpbi9zaAorKyMgZGVwY29tcCAtIGNvbXBpbGUgYSBwcm9ncmFtIGdlbmVyYXRp bmcgZGVwZW5kZW5jaWVzIGFzIHNpZGUtZWZmZWN0cworKworK3NjcmlwdHZlcnNpb249MjAwOS0w NC0yOC4yMTsgIyBVVEMKKysKKysjIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMywgMjAw NCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOSBGcmVlCisrIyBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKKysj IGFueSBsYXRlciB2ZXJzaW9uLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysjIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKKysjIGRpc3RyaWJ1dGUgdGhpcyBm aWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQorKyMgY29uZmlndXJhdGlv biBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIK KysjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0 IG9mIHRoYXQgcHJvZ3JhbS4KKysKKysjIE9yaWdpbmFsbHkgd3JpdHRlbiBieSBBbGV4YW5kcmUg T2xpdmEgPG9saXZhQGRjYy51bmljYW1wLmJyPi4KKysKKytjYXNlICQxIGluCisrICAnJykKKysg ICAgIGVjaG8gIiQwOiBObyBjb21tYW5kLiAgVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZv cm1hdGlvbi4iIDE+JjIKKysgICAgIGV4aXQgMTsKKysgICAgIDs7CisrICAtaCB8IC0taCopCisr ICAgIGNhdCA8PFxFT0YKKytVc2FnZTogZGVwY29tcCBbLS1oZWxwXSBbLS12ZXJzaW9uXSBQUk9H UkFNIFtBUkdTXQorKworK1J1biBQUk9HUkFNUyBBUkdTIHRvIGNvbXBpbGUgYSBmaWxlLCBnZW5l cmF0aW5nIGRlcGVuZGVuY2llcworK2FzIHNpZGUtZWZmZWN0cy4KKysKKytFbnZpcm9ubWVudCB2 YXJpYWJsZXM6CisrICBkZXBtb2RlICAgICBEZXBlbmRlbmN5IHRyYWNraW5nIG1vZGUuCisrICBz b3VyY2UgICAgICBTb3VyY2UgZmlsZSByZWFkIGJ5IGBQUk9HUkFNUyBBUkdTJy4KKysgIG9iamVj dCAgICAgIE9iamVjdCBmaWxlIG91dHB1dCBieSBgUFJPR1JBTVMgQVJHUycuCisrICBERVBESVIg ICAgICBkaXJlY3Rvcnkgd2hlcmUgdG8gc3RvcmUgZGVwZW5kZW5jaWVzLgorKyAgZGVwZmlsZSAg ICAgRGVwZW5kZW5jeSBmaWxlIHRvIG91dHB1dC4KKysgIHRtcGRlcGZpbGUgIFRlbXBvcmFyeSBm aWxlIHRvIHVzZSB3aGVuIG91dHB1dGluZyBkZXBlbmRlbmNpZXMuCisrICBsaWJ0b29sICAgICBX aGV0aGVyIGxpYnRvb2wgaXMgdXNlZCAoeWVzL25vKS4KKysKKytSZXBvcnQgYnVncyB0byA8YnVn LWF1dG9tYWtlQGdudS5vcmc+LgorK0VPRgorKyAgICBleGl0ICQ/CisrICAgIDs7CisrICAtdiB8 IC0tdiopCisrICAgIGVjaG8gImRlcGNvbXAgJHNjcmlwdHZlcnNpb24iCisrICAgIGV4aXQgJD8K KysgICAgOzsKKytlc2FjCisrCisraWYgdGVzdCAteiAiJGRlcG1vZGUiIHx8IHRlc3QgLXogIiRz b3VyY2UiIHx8IHRlc3QgLXogIiRvYmplY3QiOyB0aGVuCisrICBlY2hvICJkZXBjb21wOiBWYXJp YWJsZXMgc291cmNlLCBvYmplY3QgYW5kIGRlcG1vZGUgbXVzdCBiZSBzZXQiIDE+JjIKKysgIGV4 aXQgMQorK2ZpCisrCisrIyBEZXBlbmRlbmNpZXMgZm9yIHN1Yi9iYXIubyBvciBzdWIvYmFyLm9i aiBnbyBpbnRvIHN1Yi8uZGVwcy9iYXIuUG8uCisrZGVwZmlsZT0ke2RlcGZpbGUtYGVjaG8gIiRv YmplY3QiIHwKKysgIHNlZCAnc3xbXlxcL10qJHwnJHtERVBESVItLmRlcHN9Jy8mfDtzfFwuXChb Xi5dKlwpJHwuUFwxfDtzfFBvYmokfFBvfCdgfQorK3RtcGRlcGZpbGU9JHt0bXBkZXBmaWxlLWBl Y2hvICIkZGVwZmlsZSIgfCBzZWQgJ3MvXC5cKFteLl0qXCkkLy5UXDEvJ2B9CisrCisrcm0gLWYg IiR0bXBkZXBmaWxlIgorKworKyMgU29tZSBtb2RlcyB3b3JrIGp1c3QgbGlrZSBvdGhlciBtb2Rl cywgYnV0IHVzZSBkaWZmZXJlbnQgZmxhZ3MuICBXZQorKyMgcGFyYW1ldGVyaXplIGhlcmUsIGJ1 dCBzdGlsbCBsaXN0IHRoZSBtb2RlcyBpbiB0aGUgYmlnIGNhc2UgYmVsb3csCisrIyB0byBtYWtl IGRlcGVuZC5tNCBlYXNpZXIgdG8gd3JpdGUuICBOb3RlIHRoYXQgd2UgKmNhbm5vdCogdXNlIGEg Y2FzZQorKyMgaGVyZSwgYmVjYXVzZSB0aGlzIGZpbGUgY2FuIG9ubHkgY29udGFpbiBvbmUgY2Fz ZSBzdGF0ZW1lbnQuCisraWYgdGVzdCAiJGRlcG1vZGUiID0gaHA7IHRoZW4KKysgICMgSFAgY29t cGlsZXIgdXNlcyAtTSBhbmQgbm8gZXh0cmEgYXJnLgorKyAgZ2NjZmxhZz0tTQorKyAgZGVwbW9k ZT1nY2MKKytmaQorKworK2lmIHRlc3QgIiRkZXBtb2RlIiA9IGRhc2hYbXN0ZG91dDsgdGhlbgor KyAgICMgVGhpcyBpcyBqdXN0IGxpa2UgZGFzaG1zdGRvdXQgd2l0aCBhIGRpZmZlcmVudCBhcmd1 bWVudC4KKysgICBkYXNobWZsYWc9LXhNCisrICAgZGVwbW9kZT1kYXNobXN0ZG91dAorK2ZpCisr CisrY3lncGF0aF91PSJjeWdwYXRoIC11IC1mIC0iCisraWYgdGVzdCAiJGRlcG1vZGUiID0gbXN2 Y21zeXM7IHRoZW4KKysgICAjIFRoaXMgaXMganVzdCBsaWtlIG1zdmlzdWFsY3BwIGJ1dCB3L28g Y3lncGF0aCB0cmFuc2xhdGlvbi4KKysgICAjIEp1c3QgY29udmVydCB0aGUgYmFja3NsYXNoLWVz Y2FwZWQgYmFja3NsYXNoZXMgdG8gc2luZ2xlIGZvcndhcmQKKysgICAjIHNsYXNoZXMgdG8gc2F0 aXNmeSBkZXBlbmQubTQKKysgICBjeWdwYXRoX3U9InNlZCBzLFxcXFxcXFxcLC8sZyIKKysgICBk ZXBtb2RlPW1zdmlzdWFsY3BwCisrZmkKKysKKytjYXNlICIkZGVwbW9kZSIgaW4KKytnY2MzKQor KyMjIGdjYyAzIGltcGxlbWVudHMgZGVwZW5kZW5jeSB0cmFja2luZyB0aGF0IGRvZXMgZXhhY3Rs eSB3aGF0CisrIyMgd2Ugd2FudC4gIFlheSEgIE5vdGU6IGZvciBzb21lIHJlYXNvbiBsaWJ0b29s IDEuNCBkb2Vzbid0IGxpa2UKKysjIyBpdCBpZiAtTUQgLU1QIGNvbWVzIGFmdGVyIHRoZSAtTUYg c3R1ZmYuICBIbW0uCisrIyMgVW5mb3J0dW5hdGVseSwgRnJlZUJTRCBjODkgYWNjZXB0YW5jZSBv ZiBmbGFncyBkZXBlbmRzIHVwb24KKysjIyB0aGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50IG9yZGVy OyBzbyBhZGQgdGhlIGZsYWdzIHdoZXJlIHRoZXkKKysjIyBhcHBlYXIgaW4gZGVwZW5kMi5hbS4g IE5vdGUgdGhhdCB0aGUgc2xvd2Rvd24gaW5jdXJyZWQgaGVyZQorKyMjIGFmZmVjdHMgb25seSBj b25maWd1cmU6IGluIG1ha2VmaWxlcywgJUZBU1RERVAlIHNob3J0Y3V0cyB0aGlzLgorKyAgZm9y IGFyZworKyAgZG8KKysgICAgY2FzZSAkYXJnIGluCisrICAgIC1jKSBzZXQgZm5vcmQgIiRAIiAt TVQgIiRvYmplY3QiIC1NRCAtTVAgLU1GICIkdG1wZGVwZmlsZSIgIiRhcmciIDs7CisrICAgICop ICBzZXQgZm5vcmQgIiRAIiAiJGFyZyIgOzsKKysgICAgZXNhYworKyAgICBzaGlmdCAjIGZub3Jk CisrICAgIHNoaWZ0ICMgJGFyZworKyAgZG9uZQorKyAgIiRAIgorKyAgc3RhdD0kPworKyAgaWYg dGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6CisrICBlbHNlCisrICAgIHJtIC1mICIkdG1wZGVwZmls ZSIKKysgICAgZXhpdCAkc3RhdAorKyAgZmkKKysgIG12ICIkdG1wZGVwZmlsZSIgIiRkZXBmaWxl IgorKyAgOzsKKysKKytnY2MpCisrIyMgVGhlcmUgYXJlIHZhcmlvdXMgd2F5cyB0byBnZXQgZGVw ZW5kZW5jeSBvdXRwdXQgZnJvbSBnY2MuICBIZXJlJ3MKKysjIyB3aHkgd2UgcGljayB0aGlzIHJh dGhlciBvYnNjdXJlIG1ldGhvZDoKKysjIyAtIERvbid0IHdhbnQgdG8gdXNlIC1NRCBiZWNhdXNl IHdlJ2QgbGlrZSB0aGUgZGVwZW5kZW5jaWVzIHRvIGVuZAorKyMjICAgdXAgaW4gYSBzdWJkaXIu ICBIYXZpbmcgdG8gcmVuYW1lIGJ5IGhhbmQgaXMgdWdseS4KKysjIyAgIChXZSBtaWdodCBlbmQg dXAgZG9pbmcgdGhpcyBhbnl3YXkgdG8gc3VwcG9ydCBvdGhlciBjb21waWxlcnMuKQorKyMjIC0g VGhlIERFUEVOREVOQ0lFU19PVVRQVVQgZW52aXJvbm1lbnQgdmFyaWFibGUgbWFrZXMgZ2NjIGFj dCBsaWtlCisrIyMgICAtTU0sIG5vdCAtTSAoZGVzcGl0ZSB3aGF0IHRoZSBkb2NzIHNheSkuCisr IyMgLSBVc2luZyAtTSBkaXJlY3RseSBtZWFucyBydW5uaW5nIHRoZSBjb21waWxlciB0d2ljZSAo ZXZlbiB3b3JzZQorKyMjICAgdGhhbiByZW5hbWluZykuCisrICBpZiB0ZXN0IC16ICIkZ2NjZmxh ZyI7IHRoZW4KKysgICAgZ2NjZmxhZz0tTUQsCisrICBmaQorKyAgIiRAIiAtV3AsIiRnY2NmbGFn JHRtcGRlcGZpbGUiCisrICBzdGF0PSQ/CisrICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoK KysgIGVsc2UKKysgICAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAgICBleGl0ICRzdGF0CisrICBm aQorKyAgcm0gLWYgIiRkZXBmaWxlIgorKyAgZWNobyAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmls ZSIKKysgIGFscGhhPUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFy c3R1dnd4eXoKKysjIyBUaGUgc2Vjb25kIC1lIGV4cHJlc3Npb24gaGFuZGxlcyBET1Mtc3R5bGUg ZmlsZSBuYW1lcyB3aXRoIGRyaXZlIGxldHRlcnMuCisrICBzZWQgLWUgJ3MvXlteOl0qOiAvIC8n IFwKKysgICAgICAtZSAncy9eWyckYWxwaGEnXTpcL1teOl0qOiAvIC8nIDwgIiR0bXBkZXBmaWxl IiA+PiAiJGRlcGZpbGUiCisrIyMgVGhpcyBuZXh0IHBpZWNlIG9mIG1hZ2ljIGF2b2lkcyB0aGUg YGRlbGV0ZWQgaGVhZGVyIGZpbGUnIHByb2JsZW0uCisrIyMgVGhlIHByb2JsZW0gaXMgdGhhdCB3 aGVuIGEgaGVhZGVyIGZpbGUgd2hpY2ggYXBwZWFycyBpbiBhIC5QIGZpbGUKKysjIyBpcyBkZWxl dGVkLCB0aGUgZGVwZW5kZW5jeSBjYXVzZXMgbWFrZSB0byBkaWUgKGJlY2F1c2UgdGhlcmUgaXMK KysjIyB0eXBpY2FsbHkgbm8gd2F5IHRvIHJlYnVpbGQgdGhlIGhlYWRlcikuICBXZSBhdm9pZCB0 aGlzIGJ5IGFkZGluZworKyMjIGR1bW15IGRlcGVuZGVuY2llcyBmb3IgZWFjaCBoZWFkZXIgZmls ZS4gIFRvbyBiYWQgZ2NjIGRvZXNuJ3QgZG8KKysjIyB0aGlzIGZvciB1cyBkaXJlY3RseS4KKysg IHRyICcgJyAnCisrJyA8ICIkdG1wZGVwZmlsZSIgfAorKyMjIFNvbWUgdmVyc2lvbnMgb2YgZ2Nj IHB1dCBhIHNwYWNlIGJlZm9yZSB0aGUgYDonLiAgT24gdGhlIHRoZW9yeQorKyMjIHRoYXQgdGhl IHNwYWNlIG1lYW5zIHNvbWV0aGluZywgd2UgYWRkIGEgc3BhY2UgdG8gdGhlIG91dHB1dCBhcwor KyMjIHdlbGwuCisrIyMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBVWCAxMC4yMCBzZWQgY2FuJ3Qg cHJvY2VzcyB0aGlzIGludm9jYXRpb24KKysjIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRv IHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgorKyAgICBzZWQgLWUgJ3MvXlxc JC8vJyAtZSAnL14kL2QnIC1lICcvOiQvZCcgfCBzZWQgLWUgJ3MvJC8gOi8nID4+ICIkZGVwZmls ZSIKKysgIHJtIC1mICIkdG1wZGVwZmlsZSIKKysgIDs7CisrCisraHApCisrICAjIFRoaXMgY2Fz ZSBleGlzdHMgb25seSB0byBsZXQgZGVwZW5kLm00IGRvIGl0cyB3b3JrLiAgSXQgd29ya3MgYnkK KysgICMgbG9va2luZyBhdCB0aGUgdGV4dCBvZiB0aGlzIHNjcmlwdC4gIFRoaXMgY2FzZSB3aWxs IG5ldmVyIGJlIHJ1biwKKysgICMgc2luY2UgaXQgaXMgY2hlY2tlZCBmb3IgYWJvdmUuCisrICBl eGl0IDEKKysgIDs7CisrCisrc2dpKQorKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVu CisrICAgICIkQCIgIi1XcCwtTUR1cGRhdGUsJHRtcGRlcGZpbGUiCisrICBlbHNlCisrICAgICIk QCIgLU1EdXBkYXRlICIkdG1wZGVwZmlsZSIKKysgIGZpCisrICBzdGF0PSQ/CisrICBpZiB0ZXN0 ICRzdGF0IC1lcSAwOyB0aGVuIDoKKysgIGVsc2UKKysgICAgcm0gLWYgIiR0bXBkZXBmaWxlIgor KyAgICBleGl0ICRzdGF0CisrICBmaQorKyAgcm0gLWYgIiRkZXBmaWxlIgorKworKyAgaWYgdGVz dCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuICAjIHllcywgdGhlIHNvdXJjZWZpbGUgZGVwZW5kIG9u IG90aGVyIGZpbGVzCisrICAgIGVjaG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZpbGUiCisrCisr ICAgICMgQ2xpcCBvZmYgdGhlIGluaXRpYWwgZWxlbWVudCAodGhlIGRlcGVuZGVudCkuICBEb24n dCB0cnkgdG8gYmUKKysgICAgIyBjbGV2ZXIgYW5kIHJlcGxhY2UgdGhpcyB3aXRoIHNlZCBjb2Rl LCBhcyBJUklYIHNlZCB3b24ndCBoYW5kbGUKKysgICAgIyBsaW5lcyB3aXRoIG1vcmUgdGhhbiBh IGZpeGVkIG51bWJlciBvZiBjaGFyYWN0ZXJzICg0MDk2IGluCisrICAgICMgSVJJWCA2LjIgc2Vk LCA4MTkyIGluIElSSVggNi41KS4gIFdlIGFsc28gcmVtb3ZlIGNvbW1lbnQgbGluZXM7CisrICAg ICMgdGhlIElSSVggY2MgYWRkcyBjb21tZW50cyBsaWtlIGAjOmZlYycgdG8gdGhlIGVuZCBvZiB0 aGUKKysgICAgIyBkZXBlbmRlbmN5IGxpbmUuCisrICAgIHRyICcgJyAnCisrJyA8ICIkdG1wZGVw ZmlsZSIgXAorKyAgICB8IHNlZCAtZSAncy9eLipcLm86Ly8nIC1lICdzLyMuKiQvLycgLWUgJy9e JC8gZCcgfCBcCisrICAgIHRyICcKKysnICcgJyA+PiAiJGRlcGZpbGUiCisrICAgIGVjaG8gPj4g IiRkZXBmaWxlIgorKworKyAgICAjIFRoZSBzZWNvbmQgcGFzcyBnZW5lcmF0ZXMgYSBkdW1teSBl bnRyeSBmb3IgZWFjaCBoZWFkZXIgZmlsZS4KKysgICAgdHIgJyAnICcKKysnIDwgIiR0bXBkZXBm aWxlIiBcCisrICAgfCBzZWQgLWUgJ3MvXi4qXC5vOi8vJyAtZSAncy8jLiokLy8nIC1lICcvXiQv IGQnIC1lICdzLyQvOi8nIFwKKysgICA+PiAiJGRlcGZpbGUiCisrICBlbHNlCisrICAgICMgVGhl IHNvdXJjZWZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgZGVwZW5kZW5jaWVzLCBzbyBqdXN0Cisr ICAgICMgc3RvcmUgYSBkdW1teSBjb21tZW50IGxpbmUsIHRvIGF2b2lkIGVycm9ycyB3aXRoIHRo ZSBNYWtlZmlsZQorKyAgICAjICJpbmNsdWRlIGJhc2VuYW1lLlBsbyIgc2NoZW1lLgorKyAgICBl Y2hvICIjZHVtbXkiID4gIiRkZXBmaWxlIgorKyAgZmkKKysgIHJtIC1mICIkdG1wZGVwZmlsZSIK KysgIDs7CisrCisrYWl4KQorKyAgIyBUaGUgQyBmb3IgQUlYIENvbXBpbGVyIHVzZXMgLU0gYW5k IG91dHB1dHMgdGhlIGRlcGVuZGVuY2llcworKyAgIyBpbiBhIC51IGZpbGUuICBJbiBvbGRlciB2 ZXJzaW9ucywgdGhpcyBmaWxlIGFsd2F5cyBsaXZlcyBpbiB0aGUKKysgICMgY3VycmVudCBkaXJl Y3RvcnkuICBBbHNvLCB0aGUgQUlYIGNvbXBpbGVyIHB1dHMgYCRvYmplY3Q6JyBhdCB0aGUKKysg ICMgc3RhcnQgb2YgZWFjaCBsaW5lOyAkb2JqZWN0IGRvZXNuJ3QgaGF2ZSBkaXJlY3RvcnkgaW5m b3JtYXRpb24uCisrICAjIFZlcnNpb24gNiB1c2VzIHRoZSBkaXJlY3RvcnkgaW4gYm90aCBjYXNl cy4KKysgIGRpcj1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8L1teL10qJHwvfCdgCisrICB0 ZXN0ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRpcj0KKysgIGJhc2U9YGVjaG8gIiRvYmplY3Qi IHwgc2VkIC1lICdzfF4uKi98fCcgLWUgJ3MvXC5vJC8vJyAtZSAncy9cLmxvJC8vJ2AKKysgIGlm IHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorKyAgICB0bXBkZXBmaWxlMT0kZGlyJGJhc2Uu dQorKyAgICB0bXBkZXBmaWxlMj0kYmFzZS51CisrICAgIHRtcGRlcGZpbGUzPSRkaXIubGlicy8k YmFzZS51CisrICAgICIkQCIgLVdjLC1NCisrICBlbHNlCisrICAgIHRtcGRlcGZpbGUxPSRkaXIk YmFzZS51CisrICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS51CisrICAgIHRtcGRlcGZpbGUzPSRk aXIkYmFzZS51CisrICAgICIkQCIgLU0KKysgIGZpCisrICBzdGF0PSQ/CisrCisrICBpZiB0ZXN0 ICRzdGF0IC1lcSAwOyB0aGVuIDoKKysgIGVsc2UKKysgICAgcm0gLWYgIiR0bXBkZXBmaWxlMSIg IiR0bXBkZXBmaWxlMiIgIiR0bXBkZXBmaWxlMyIKKysgICAgZXhpdCAkc3RhdAorKyAgZmkKKysK KysgIGZvciB0bXBkZXBmaWxlIGluICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiICIkdG1w ZGVwZmlsZTMiCisrICBkbworKyAgICB0ZXN0IC1mICIkdG1wZGVwZmlsZSIgJiYgYnJlYWsKKysg IGRvbmUKKysgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhlbgorKyAgICAjIEVhY2ggbGlu ZSBpcyBvZiB0aGUgZm9ybSBgZm9vLm86IGRlcGVuZGVudC5oJy4KKysgICAgIyBEbyB0d28gcGFz c2VzLCBvbmUgdG8ganVzdCBjaGFuZ2UgdGhlc2UgdG8KKysgICAgIyBgJG9iamVjdDogZGVwZW5k ZW50LmgnIGFuZCBvbmUgdG8gc2ltcGx5IGBkZXBlbmRlbnQuaDonLgorKyAgICBzZWQgLWUgInMs Xi4qXC5bYS16XSo6LCRvYmplY3Q6LCIgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorKyAg ICAjIFRoYXQncyBhIHRhYiBhbmQgYSBzcGFjZSBpbiB0aGUgW10uCisrICAgIHNlZCAtZSAncyxe LipcLlthLXpdKjpbCSBdKiwsJyAtZSAncywkLDosJyA8ICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBm aWxlIgorKyAgZWxzZQorKyAgICAjIFRoZSBzb3VyY2VmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55 IGRlcGVuZGVuY2llcywgc28ganVzdAorKyAgICAjIHN0b3JlIGEgZHVtbXkgY29tbWVudCBsaW5l LCB0byBhdm9pZCBlcnJvcnMgd2l0aCB0aGUgTWFrZWZpbGUKKysgICAgIyAiaW5jbHVkZSBiYXNl bmFtZS5QbG8iIHNjaGVtZS4KKysgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKKysgIGZp CisrICBybSAtZiAiJHRtcGRlcGZpbGUiCisrICA7OworKworK2ljYykKKysgICMgSW50ZWwncyBD IGNvbXBpbGVyIHVuZGVyc3RhbmRzIGAtTUQgLU1GIGZpbGUnLiAgSG93ZXZlciBvbgorKyAgIyAg ICBpY2MgLU1EIC1NRiBmb28uZCAtYyAtbyBzdWIvZm9vLm8gc3ViL2Zvby5jCisrICAjIElDQyA3 LjAgd2lsbCBmaWxsIGZvby5kIHdpdGggc29tZXRoaW5nIGxpa2UKKysgICMgICAgZm9vLm86IHN1 Yi9mb28uYworKyAgIyAgICBmb28ubzogc3ViL2Zvby5oCisrICAjIHdoaWNoIGlzIHdyb25nLiAg V2Ugd2FudDoKKysgICMgICAgc3ViL2Zvby5vOiBzdWIvZm9vLmMKKysgICMgICAgc3ViL2Zvby5v OiBzdWIvZm9vLmgKKysgICMgICAgc3ViL2Zvby5jOgorKyAgIyAgICBzdWIvZm9vLmg6CisrICAj IElDQyA3LjEgd2lsbCBvdXRwdXQKKysgICMgICAgZm9vLm86IHN1Yi9mb28uYyBzdWIvZm9vLmgK KysgICMgYW5kIHdpbGwgd3JhcCBsb25nIGxpbmVzIHVzaW5nIFwgOgorKyAgIyAgICBmb28ubzog c3ViL2Zvby5jIC4uLiBcCisrICAjICAgICBzdWIvZm9vLmggLi4uIFwKKysgICMgICAgIC4uLgor KworKyAgIiRAIiAtTUQgLU1GICIkdG1wZGVwZmlsZSIKKysgIHN0YXQ9JD8KKysgIGlmIHRlc3Qg JHN0YXQgLWVxIDA7IHRoZW4gOgorKyAgZWxzZQorKyAgICBybSAtZiAiJHRtcGRlcGZpbGUiCisr ICAgIGV4aXQgJHN0YXQKKysgIGZpCisrICBybSAtZiAiJGRlcGZpbGUiCisrICAjIEVhY2ggbGlu ZSBpcyBvZiB0aGUgZm9ybSBgZm9vLm86IGRlcGVuZGVudC5oJywKKysgICMgb3IgYGZvby5vOiBk ZXAxLmggZGVwMi5oIFwnLCBvciBgIGRlcDMuaCBkZXA0LmggXCcuCisrICAjIERvIHR3byBwYXNz ZXMsIG9uZSB0byBqdXN0IGNoYW5nZSB0aGVzZSB0bworKyAgIyBgJG9iamVjdDogZGVwZW5kZW50 LmgnIGFuZCBvbmUgdG8gc2ltcGx5IGBkZXBlbmRlbnQuaDonLgorKyAgc2VkICJzLF5bXjpdKjos JG9iamVjdCA6LCIgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorKyAgIyBTb21lIHZlcnNp b25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgor KyAgIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRvIHR3byBzZWQgaW52b2NhdGlvbnMgaXMg YSB3b3JrYXJvdW5kLgorKyAgc2VkICdzLF5bXjpdKjogXCguKlwpJCxcMSw7cy9eXFwkLy87L14k L2Q7LzokL2QnIDwgIiR0bXBkZXBmaWxlIiB8CisrICAgIHNlZCAtZSAncy8kLyA6LycgPj4gIiRk ZXBmaWxlIgorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAgOzsKKysKKytocDIpCisrICAjIFRo ZSAiaHAiIHN0YW56YSBhYm92ZSBkb2VzIG5vdCB3b3JrIHdpdGggYUNDIChDKyspIGFuZCBIUCdz IGlhNjQKKysgICMgY29tcGlsZXJzLCB3aGljaCBoYXZlIGludGVncmF0ZWQgcHJlcHJvY2Vzc29y cy4gIFRoZSBjb3JyZWN0IG9wdGlvbgorKyAgIyB0byB1c2Ugd2l0aCB0aGVzZSBpcyArTWFrZWQ7 IGl0IHdyaXRlcyBkZXBlbmRlbmNpZXMgdG8gYSBmaWxlIG5hbWVkCisrICAjICdmb28uZCcsIHdo aWNoIGxhbmRzIG5leHQgdG8gdGhlIG9iamVjdCBmaWxlLCB3aGVyZXZlciB0aGF0CisrICAjIGhh cHBlbnMgdG8gYmUuCisrICAjIE11Y2ggb2YgdGhpcyBpcyBzaW1pbGFyIHRvIHRoZSB0cnU2NCBj YXNlOyBzZWUgY29tbWVudHMgdGhlcmUuCisrICBkaXI9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1l ICdzfC9bXi9dKiR8L3wnYAorKyAgdGVzdCAieCRkaXIiID0gIngkb2JqZWN0IiAmJiBkaXI9Cisr ICBiYXNlPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiovfHwnIC1lICdzL1wubyQvLycg LWUgJ3MvXC5sbyQvLydgCisrICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KKysgICAg dG1wZGVwZmlsZTE9JGRpciRiYXNlLmQKKysgICAgdG1wZGVwZmlsZTI9JGRpci5saWJzLyRiYXNl LmQKKysgICAgIiRAIiAtV2MsK01ha2VkCisrICBlbHNlCisrICAgIHRtcGRlcGZpbGUxPSRkaXIk YmFzZS5kCisrICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS5kCisrICAgICIkQCIgK01ha2VkCisr ICBmaQorKyAgc3RhdD0kPworKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6CisrICBlbHNl CisrICAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIgorKyAgICAgZXhpdCAk c3RhdAorKyAgZmkKKysKKysgIGZvciB0bXBkZXBmaWxlIGluICIkdG1wZGVwZmlsZTEiICIkdG1w ZGVwZmlsZTIiCisrICBkbworKyAgICB0ZXN0IC1mICIkdG1wZGVwZmlsZSIgJiYgYnJlYWsKKysg IGRvbmUKKysgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhlbgorKyAgICBzZWQgLWUgInMs Xi4qXC5bYS16XSo6LCRvYmplY3Q6LCIgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKKysgICAg IyBBZGQgYGRlcGVuZGVudC5oOicgbGluZXMuCisrICAgIHNlZCAtbmUgJzIsJHsKKysJICAgICAg IHMvXiAqLy8KKysJICAgICAgIHMvIFxcKiQvLworKwkgICAgICAgcy8kLzovCisrCSAgICAgICBw CisrCSAgICAgfScgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCisrICBlbHNlCisrICAgIGVj aG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCisrICBmaQorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIiAi JHRtcGRlcGZpbGUyIgorKyAgOzsKKysKKyt0cnU2NCkKKysgICAjIFRoZSBUcnU2NCBjb21waWxl ciB1c2VzIC1NRCB0byBnZW5lcmF0ZSBkZXBlbmRlbmNpZXMgYXMgYSBzaWRlCisrICAgIyBlZmZl Y3QuICBgY2MgLU1EIC1vIGZvby5vIC4uLicgcHV0cyB0aGUgZGVwZW5kZW5jaWVzIGludG8gYGZv by5vLmQnLgorKyAgICMgQXQgbGVhc3Qgb24gQWxwaGEvUmVkaGF0IDYuMSwgQ29tcGFxIENDQyBW Ni4yLTUwNCBzZWVtcyB0byBwdXQKKysgICAjIGRlcGVuZGVuY2llcyBpbiBgZm9vLmQnIGluc3Rl YWQsIHNvIHdlIGNoZWNrIGZvciB0aGF0IHRvby4KKysgICAjIFN1YmRpcmVjdG9yaWVzIGFyZSBy ZXNwZWN0ZWQuCisrICAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3wvW14vXSokfC98 J2AKKysgICB0ZXN0ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRpcj0KKysgICBiYXNlPWBlY2hv ICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiovfHwnIC1lICdzL1wubyQvLycgLWUgJ3MvXC5sbyQv LydgCisrCisrICAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisrICAgICAgIyBXaXRo IFRydTY0IGNjLCBzaGFyZWQgb2JqZWN0cyBjYW4gYWxzbyBiZSB1c2VkIHRvIG1ha2UgYQorKyAg ICAgICMgc3RhdGljIGxpYnJhcnkuICBUaGlzIG1lY2hhbmlzbSBpcyB1c2VkIGluIGxpYnRvb2wg MS40IHNlcmllcyB0bworKyAgICAgICMgaGFuZGxlIGJvdGggc2hhcmVkIGFuZCBzdGF0aWMgbGli cmFyaWVzIGluIGEgc2luZ2xlIGNvbXBpbGF0aW9uLgorKyAgICAgICMgV2l0aCBsaWJ0b29sIDEu NCwgZGVwZW5kZW5jaWVzIHdlcmUgb3V0cHV0IGluICRkaXIubGlicy8kYmFzZS5sby5kLgorKyAg ICAgICMKKysgICAgICAjIFdpdGggbGlidG9vbCAxLjUgdGhpcyBleGNlcHRpb24gd2FzIHJlbW92 ZWQsIGFuZCBsaWJ0b29sIG5vdworKyAgICAgICMgZ2VuZXJhdGVzIDIgc2VwYXJhdGUgb2JqZWN0 cyBmb3IgdGhlIDIgbGlicmFyaWVzLiAgVGhlc2UgdHdvCisrICAgICAgIyBjb21waWxhdGlvbnMg b3V0cHV0IGRlcGVuZGVuY2llcyBpbiAkZGlyLmxpYnMvJGJhc2Uuby5kIGFuZAorKyAgICAgICMg aW4gJGRpciRiYXNlLm8uZC4gIFdlIGhhdmUgdG8gY2hlY2sgZm9yIGJvdGggZmlsZXMsIGJlY2F1 c2UKKysgICAgICAjIG9uZSBvZiB0aGUgdHdvIGNvbXBpbGF0aW9ucyBjYW4gYmUgZGlzYWJsZWQu ICBXZSBzaG91bGQgcHJlZmVyCisrICAgICAgIyAkZGlyJGJhc2Uuby5kIG92ZXIgJGRpci5saWJz LyRiYXNlLm8uZCBiZWNhdXNlIHRoZSBsYXR0ZXIgaXMKKysgICAgICAjIGF1dG9tYXRpY2FsbHkg Y2xlYW5lZCB3aGVuIC5saWJzLyBpcyBkZWxldGVkLCB3aGlsZSBpZ25vcmluZworKyAgICAgICMg dGhlIGZvcm1lciB3b3VsZCBjYXVzZSBhIGRpc3RjbGVhbmNoZWNrIHBhbmljLgorKyAgICAgIHRt cGRlcGZpbGUxPSRkaXIubGlicy8kYmFzZS5sby5kICAgIyBsaWJ0b29sIDEuNAorKyAgICAgIHRt cGRlcGZpbGUyPSRkaXIkYmFzZS5vLmQgICAgICAgICAgIyBsaWJ0b29sIDEuNQorKyAgICAgIHRt cGRlcGZpbGUzPSRkaXIubGlicy8kYmFzZS5vLmQgICAgIyBsaWJ0b29sIDEuNQorKyAgICAgIHRt cGRlcGZpbGU0PSRkaXIubGlicy8kYmFzZS5kICAgICAgIyBDb21wYXEgQ0NDIFY2LjItNTA0Cisr ICAgICAgIiRAIiAtV2MsLU1ECisrICAgZWxzZQorKyAgICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFz ZS5vLmQKKysgICAgICB0bXBkZXBmaWxlMj0kZGlyJGJhc2UuZAorKyAgICAgIHRtcGRlcGZpbGUz PSRkaXIkYmFzZS5kCisrICAgICAgdG1wZGVwZmlsZTQ9JGRpciRiYXNlLmQKKysgICAgICAiJEAi IC1NRAorKyAgIGZpCisrCisrICAgc3RhdD0kPworKyAgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRo ZW4gOgorKyAgIGVsc2UKKysgICAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUy IiAiJHRtcGRlcGZpbGUzIiAiJHRtcGRlcGZpbGU0IgorKyAgICAgIGV4aXQgJHN0YXQKKysgICBm aQorKworKyAgIGZvciB0bXBkZXBmaWxlIGluICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIi ICIkdG1wZGVwZmlsZTMiICIkdG1wZGVwZmlsZTQiCisrICAgZG8KKysgICAgIHRlc3QgLWYgIiR0 bXBkZXBmaWxlIiAmJiBicmVhaworKyAgIGRvbmUKKysgICBpZiB0ZXN0IC1mICIkdG1wZGVwZmls ZSI7IHRoZW4KKysgICAgICBzZWQgLWUgInMsXi4qXC5bYS16XSo6LCRvYmplY3Q6LCIgPCAiJHRt cGRlcGZpbGUiID4gIiRkZXBmaWxlIgorKyAgICAgICMgVGhhdCdzIGEgdGFiIGFuZCBhIHNwYWNl IGluIHRoZSBbXS4KKysgICAgICBzZWQgLWUgJ3MsXi4qXC5bYS16XSo6WwkgXSosLCcgLWUgJ3Ms JCw6LCcgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKKysgICBlbHNlCisrICAgICAgZWNo byAiI2R1bW15IiA+ICIkZGVwZmlsZSIKKysgICBmaQorKyAgIHJtIC1mICIkdG1wZGVwZmlsZSIK KysgICA7OworKworKyNub3NpZGVlZmZlY3QpCisrICAjIFRoaXMgY29tbWVudCBhYm92ZSBpcyB1 c2VkIGJ5IGF1dG9tYWtlIHRvIHRlbGwgc2lkZS1lZmZlY3QKKysgICMgZGVwZW5kZW5jeSB0cmFj a2luZyBtZWNoYW5pc21zIGZyb20gc2xvd2VyIG9uZXMuCisrCisrZGFzaG1zdGRvdXQpCisrICAj IEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0IHRoaXMgbW9kZSwgYSBjb21waWxl ciAqbXVzdCoKKysgICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVwcm9jZXNzZWQgZmlsZSB0byBzdGRv dXQsIHJlZ2FyZGxlc3Mgb2YgLW8uCisrICAiJEAiIHx8IGV4aXQgJD8KKysKKysgICMgUmVtb3Zl IHRoZSBjYWxsIHRvIExpYnRvb2wuCisrICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4K KysgICAgd2hpbGUgdGVzdCAiWCQxIiAhPSAnWC0tbW9kZT1jb21waWxlJzsgZG8KKysgICAgICBz aGlmdAorKyAgICBkb25lCisrICAgIHNoaWZ0CisrICBmaQorKworKyAgIyBSZW1vdmUgYC1vICRv YmplY3QnLgorKyAgSUZTPSIgIgorKyAgZm9yIGFyZworKyAgZG8KKysgICAgY2FzZSAkYXJnIGlu CisrICAgIC1vKQorKyAgICAgIHNoaWZ0CisrICAgICAgOzsKKysgICAgJG9iamVjdCkKKysgICAg ICBzaGlmdAorKyAgICAgIDs7CisrICAgICopCisrICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmci CisrICAgICAgc2hpZnQgIyBmbm9yZAorKyAgICAgIHNoaWZ0ICMgJGFyZworKyAgICAgIDs7Cisr ICAgIGVzYWMKKysgIGRvbmUKKysKKysgIHRlc3QgLXogIiRkYXNobWZsYWciICYmIGRhc2htZmxh Zz0tTQorKyAgIyBSZXF1aXJlIGF0IGxlYXN0IHR3byBjaGFyYWN0ZXJzIGJlZm9yZSBzZWFyY2hp bmcgZm9yIGA6JworKyAgIyBpbiB0aGUgdGFyZ2V0IG5hbWUuICBUaGlzIGlzIHRvIGNvcGUgd2l0 aCBET1Mtc3R5bGUgZmlsZW5hbWVzOgorKyAgIyBhIGRlcGVuZGVuY3kgc3VjaCBhcyBgYzovZm9v L2JhcicgY291bGQgYmUgc2VlbiBhcyB0YXJnZXQgYGMnIG90aGVyd2lzZS4KKysgICIkQCIgJGRh c2htZmxhZyB8CisrICAgIHNlZCAnczpeWyAgXSpbXjogXVteOl1bXjpdKlw6WyAgICBdKjonIiRv YmplY3QiJ1w6IDonID4gIiR0bXBkZXBmaWxlIgorKyAgcm0gLWYgIiRkZXBmaWxlIgorKyAgY2F0 IDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKKysgIHRyICcgJyAnCisrJyA8ICIkdG1wZGVw ZmlsZSIgfCBcCisrIyMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBVWCAxMC4yMCBzZWQgY2FuJ3Qg cHJvY2VzcyB0aGlzIGludm9jYXRpb24KKysjIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRv IHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgorKyAgICBzZWQgLWUgJ3MvXlxc JC8vJyAtZSAnL14kL2QnIC1lICcvOiQvZCcgfCBzZWQgLWUgJ3MvJC8gOi8nID4+ICIkZGVwZmls ZSIKKysgIHJtIC1mICIkdG1wZGVwZmlsZSIKKysgIDs7CisrCisrZGFzaFhtc3Rkb3V0KQorKyAg IyBUaGlzIGNhc2Ugb25seSBleGlzdHMgdG8gc2F0aXNmeSBkZXBlbmQubTQuICBJdCBpcyBuZXZl ciBhY3R1YWxseQorKyAgIyBydW4sIGFzIHRoaXMgbW9kZSBpcyBzcGVjaWFsbHkgcmVjb2duaXpl ZCBpbiB0aGUgcHJlYW1ibGUuCisrICBleGl0IDEKKysgIDs7CisrCisrbWFrZWRlcGVuZCkKKysg ICIkQCIgfHwgZXhpdCAkPworKyAgIyBSZW1vdmUgYW55IExpYnRvb2wgY2FsbAorKyAgaWYgdGVz dCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisrICAgIHdoaWxlIHRlc3QgIlgkMSIgIT0gJ1gtLW1v ZGU9Y29tcGlsZSc7IGRvCisrICAgICAgc2hpZnQKKysgICAgZG9uZQorKyAgICBzaGlmdAorKyAg ZmkKKysgICMgWCBtYWtlZGVwZW5kCisrICBzaGlmdAorKyAgY2xlYXJlZD1ubyBlYXQ9bm8KKysg IGZvciBhcmcKKysgIGRvCisrICAgIGNhc2UgJGNsZWFyZWQgaW4KKysgICAgbm8pCisrICAgICAg c2V0ICIiOyBzaGlmdAorKyAgICAgIGNsZWFyZWQ9eWVzIDs7CisrICAgIGVzYWMKKysgICAgaWYg dGVzdCAkZWF0ID0geWVzOyB0aGVuCisrICAgICAgZWF0PW5vCisrICAgICAgY29udGludWUKKysg ICAgZmkKKysgICAgY2FzZSAiJGFyZyIgaW4KKysgICAgLUQqfC1JKikKKysgICAgICBzZXQgZm5v cmQgIiRAIiAiJGFyZyI7IHNoaWZ0IDs7CisrICAgICMgU3RyaXAgYW55IG9wdGlvbiB0aGF0IG1h a2VkZXBlbmQgbWF5IG5vdCB1bmRlcnN0YW5kLiAgUmVtb3ZlCisrICAgICMgdGhlIG9iamVjdCB0 b28sIG90aGVyd2lzZSBtYWtlZGVwZW5kIHdpbGwgcGFyc2UgaXQgYXMgYSBzb3VyY2UgZmlsZS4K KysgICAgLWFyY2gpCisrICAgICAgZWF0PXllcyA7OworKyAgICAtKnwkb2JqZWN0KQorKyAgICAg IDs7CisrICAgICopCisrICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmciOyBzaGlmdCA7OworKyAg ICBlc2FjCisrICBkb25lCisrICBvYmpfc3VmZml4PWBlY2hvICIkb2JqZWN0IiB8IHNlZCAncy9e LipcLi8uLydgCisrICB0b3VjaCAiJHRtcGRlcGZpbGUiCisrICAke01BS0VERVBFTkQtbWFrZWRl cGVuZH0gLW8iJG9ial9zdWZmaXgiIC1mIiR0bXBkZXBmaWxlIiAiJEAiCisrICBybSAtZiAiJGRl cGZpbGUiCisrICBjYXQgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorKyAgc2VkICcxLDJk JyAiJHRtcGRlcGZpbGUiIHwgdHIgJyAnICcKKysnIHwgXAorKyMjIFNvbWUgdmVyc2lvbnMgb2Yg dGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCisrIyMgY29y cmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fy b3VuZC4KKysgICAgc2VkIC1lICdzL15cXCQvLycgLWUgJy9eJC9kJyAtZSAnLzokL2QnIHwgc2Vk IC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCisrICBybSAtZiAiJHRtcGRlcGZpbGUiICIkdG1w ZGVwZmlsZSIuYmFrCisrICA7OworKworK2NwcCkKKysgICMgSW1wb3J0YW50IG5vdGU6IGluIG9y ZGVyIHRvIHN1cHBvcnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVyICptdXN0KgorKyAgIyBhbHdheXMg d3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dC4KKysgICIkQCIgfHwgZXhpdCAk PworKworKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KKysgIGlmIHRlc3QgIiRsaWJ0 b29sIiA9IHllczsgdGhlbgorKyAgICB3aGlsZSB0ZXN0ICJYJDEiICE9ICdYLS1tb2RlPWNvbXBp bGUnOyBkbworKyAgICAgIHNoaWZ0CisrICAgIGRvbmUKKysgICAgc2hpZnQKKysgIGZpCisrCisr ICAjIFJlbW92ZSBgLW8gJG9iamVjdCcuCisrICBJRlM9IiAiCisrICBmb3IgYXJnCisrICBkbwor KyAgICBjYXNlICRhcmcgaW4KKysgICAgLW8pCisrICAgICAgc2hpZnQKKysgICAgICA7OworKyAg ICAkb2JqZWN0KQorKyAgICAgIHNoaWZ0CisrICAgICAgOzsKKysgICAgKikKKysgICAgICBzZXQg Zm5vcmQgIiRAIiAiJGFyZyIKKysgICAgICBzaGlmdCAjIGZub3JkCisrICAgICAgc2hpZnQgIyAk YXJnCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZG9uZQorKworKyAgIiRAIiAtRSB8CisrICAg IHNlZCAtbiAtZSAnL14jIFswLTldWzAtOV0qICJcKFteIl0qXCkiLiovIHM6OiBcMSBcXDpwJyBc CisrICAgICAgIC1lICcvXiNsaW5lIFswLTldWzAtOV0qICJcKFteIl0qXCkiLiovIHM6OiBcMSBc XDpwJyB8CisrICAgIHNlZCAnJCBzOiBcXCQ6OicgPiAiJHRtcGRlcGZpbGUiCisrICBybSAtZiAi JGRlcGZpbGUiCisrICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgorKyAgY2F0IDwg IiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCisrICBzZWQgPCAiJHRtcGRlcGZpbGUiICcvXiQv ZDtzL14gLy87cy8gXFwkLy87cy8kLyA6LycgPj4gIiRkZXBmaWxlIgorKyAgcm0gLWYgIiR0bXBk ZXBmaWxlIgorKyAgOzsKKysKKyttc3Zpc3VhbGNwcCkKKysgICMgSW1wb3J0YW50IG5vdGU6IGlu IG9yZGVyIHRvIHN1cHBvcnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVyICptdXN0KgorKyAgIyBhbHdh eXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dC4KKysgICIkQCIgfHwgZXhp dCAkPworKworKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KKysgIGlmIHRlc3QgIiRs aWJ0b29sIiA9IHllczsgdGhlbgorKyAgICB3aGlsZSB0ZXN0ICJYJDEiICE9ICdYLS1tb2RlPWNv bXBpbGUnOyBkbworKyAgICAgIHNoaWZ0CisrICAgIGRvbmUKKysgICAgc2hpZnQKKysgIGZpCisr CisrICBJRlM9IiAiCisrICBmb3IgYXJnCisrICBkbworKyAgICBjYXNlICIkYXJnIiBpbgorKyAg ICAtbykKKysgICAgICBzaGlmdAorKyAgICAgIDs7CisrICAgICRvYmplY3QpCisrICAgICAgc2hp ZnQKKysgICAgICA7OworKyAgICAiLUdtInwiL0dtInwiLUdpInwiL0dpInwiLVpJInwiL1pJIikK KysJc2V0IGZub3JkICIkQCIKKysJc2hpZnQKKysJc2hpZnQKKysJOzsKKysgICAgKikKKysJc2V0 IGZub3JkICIkQCIgIiRhcmciCisrCXNoaWZ0CisrCXNoaWZ0CisrCTs7CisrICAgIGVzYWMKKysg IGRvbmUKKysgICIkQCIgLUUgMj4vZGV2L251bGwgfAorKyAgc2VkIC1uICcvXiNsaW5lIFswLTld WzAtOV0qICJcKFteIl0qXCkiLyBzOjpcMTpwJyB8ICRjeWdwYXRoX3UgfCBzb3J0IC11ID4gIiR0 bXBkZXBmaWxlIgorKyAgcm0gLWYgIiRkZXBmaWxlIgorKyAgZWNobyAiJG9iamVjdCA6IFxcIiA+ ICIkZGVwZmlsZSIKKysgIHNlZCA8ICIkdG1wZGVwZmlsZSIgLW4gLWUgJ3MlICVcXCAlZycgLWUg Jy9eXCguKlwpJC8gczo6CVwxIFxcOnAnID4+ICIkZGVwZmlsZSIKKysgIGVjaG8gIgkiID4+ICIk ZGVwZmlsZSIKKysgIHNlZCA8ICIkdG1wZGVwZmlsZSIgLW4gLWUgJ3MlICVcXCAlZycgLWUgJy9e XCguKlwpJC8gczo6XDFcOjpwJyA+PiAiJGRlcGZpbGUiCisrICBybSAtZiAiJHRtcGRlcGZpbGUi CisrICA7OworKworK21zdmNtc3lzKQorKyAgIyBUaGlzIGNhc2UgZXhpc3RzIG9ubHkgdG8gbGV0 IGRlcGVuZC5tNCBkbyBpdHMgd29yay4gIEl0IHdvcmtzIGJ5CisrICAjIGxvb2tpbmcgYXQgdGhl IHRleHQgb2YgdGhpcyBzY3JpcHQuICBUaGlzIGNhc2Ugd2lsbCBuZXZlciBiZSBydW4sCisrICAj IHNpbmNlIGl0IGlzIGNoZWNrZWQgZm9yIGFib3ZlLgorKyAgZXhpdCAxCisrICA7OworKworK25v bmUpCisrICBleGVjICIkQCIKKysgIDs7CisrCisrKikKKysgIGVjaG8gIlVua25vd24gZGVwbW9k ZSAkZGVwbW9kZSIgMT4mMgorKyAgZXhpdCAxCisrICA7OworK2VzYWMKKysKKytleGl0IDAKKysK KysjIExvY2FsIFZhcmlhYmxlczoKKysjIG1vZGU6IHNoZWxsLXNjcmlwdAorKyMgc2gtaW5kZW50 YXRpb246IDIKKysjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFt cCkKKysjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKKysjIHRpbWUtc3RhbXAt Zm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgorKyMgdGltZS1zdGFtcC10aW1lLXpvbmU6ICJV VEMiCisrIyB0aW1lLXN0YW1wLWVuZDogIjsgIyBVVEMiCisrIyBFbmQ6CitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svY29uZmlnL2luc3RhbGwtc2ggc29jaS0zLjAuMF90cmVwMzAwL2NvbmZp Zy9pbnN0YWxsLXNoCistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2luc3RhbGwtc2gJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv Y29uZmlnL2luc3RhbGwtc2gJMjAxMS0wMi0wOCAyMjozOTo1NS4wMDAwMDAwMDAgKzAxMDAKK0BA IC0wLDAgKzEsNTIwIEBACisrIyEvYmluL3NoCisrIyBpbnN0YWxsIC0gaW5zdGFsbCBhIHByb2dy YW0sIHNjcmlwdCwgb3IgZGF0YWZpbGUKKysKKytzY3JpcHR2ZXJzaW9uPTIwMDktMDQtMjguMjE7 ICMgVVRDCisrCisrIyBUaGlzIG9yaWdpbmF0ZXMgZnJvbSBYMTFSNSAobWl0L3V0aWwvc2NyaXB0 cy9pbnN0YWxsLnNoKSwgd2hpY2ggd2FzCisrIyBsYXRlciByZWxlYXNlZCBpbiBYMTFSNiAoeGMv Y29uZmlnL3V0aWwvaW5zdGFsbC5zaCkgd2l0aCB0aGUKKysjIGZvbGxvd2luZyBjb3B5cmlnaHQg YW5kIGxpY2Vuc2UuCisrIworKyMgQ29weXJpZ2h0IChDKSAxOTk0IFggQ29uc29ydGl1bQorKyMK KysjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg cGVyc29uIG9idGFpbmluZyBhIGNvcHkKKysjIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0 ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworKyMgZGVhbCBpbiB0 aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRh dGlvbiB0aGUKKysjIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorKyMgc2VsbCBjb3BpZXMgb2YgdGhlIFNv ZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKysj IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6 CisrIworKyMgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKysjIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorKyMKKysjIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisrIyBJ TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F UkNIQU5UQUJJTElUWSwKKysjIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO T05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKysjIFggQ09OU09SVElVTSBC RSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRI RVIgSU4KKysjIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJ TkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQy0KKysjIFRJT04gV0lUSCBUSEUgU09GVFdBUkUg T1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisrIworKyMgRXhj ZXB0IGFzIGNvbnRhaW5lZCBpbiB0aGlzIG5vdGljZSwgdGhlIG5hbWUgb2YgdGhlIFggQ29uc29y dGl1bSBzaGFsbCBub3QKKysjIGJlIHVzZWQgaW4gYWR2ZXJ0aXNpbmcgb3Igb3RoZXJ3aXNlIHRv IHByb21vdGUgdGhlIHNhbGUsIHVzZSBvciBvdGhlciBkZWFsLQorKyMgaW5ncyBpbiB0aGlzIFNv ZnR3YXJlIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBhdXRob3JpemF0aW9uIGZyb20gdGhlIFggQ29u c29yLQorKyMgdGl1bS4KKysjCisrIworKyMgRlNGIGNoYW5nZXMgdG8gdGhpcyBmaWxlIGFyZSBp biB0aGUgcHVibGljIGRvbWFpbi4KKysjCisrIyBDYWxsaW5nIHRoaXMgc2NyaXB0IGluc3RhbGwt c2ggaXMgcHJlZmVycmVkIG92ZXIgaW5zdGFsbC5zaCwgdG8gcHJldmVudAorKyMgYG1ha2UnIGlt cGxpY2l0IHJ1bGVzIGZyb20gY3JlYXRpbmcgYSBmaWxlIGNhbGxlZCBpbnN0YWxsIGZyb20gaXQK KysjIHdoZW4gdGhlcmUgaXMgbm8gTWFrZWZpbGUuCisrIworKyMgVGhpcyBzY3JpcHQgaXMgY29t cGF0aWJsZSB3aXRoIHRoZSBCU0QgaW5zdGFsbCBzY3JpcHQsIGJ1dCB3YXMgd3JpdHRlbgorKyMg ZnJvbSBzY3JhdGNoLgorKworK25sPScKKysnCisrSUZTPSIgIiIJJG5sIgorKworKyMgc2V0IERP SVRQUk9HIHRvIGVjaG8gdG8gdGVzdCB0aGlzIHNjcmlwdAorKworKyMgRG9uJ3QgdXNlIDotIHNp bmNlIDQuM0JTRCBhbmQgZWFybGllciBzaGVsbHMgZG9uJ3QgbGlrZSBpdC4KKytkb2l0PSR7RE9J VFBST0ctfQorK2lmIHRlc3QgLXogIiRkb2l0IjsgdGhlbgorKyAgZG9pdF9leGVjPWV4ZWMKKytl bHNlCisrICBkb2l0X2V4ZWM9JGRvaXQKKytmaQorKworKyMgUHV0IGluIGFic29sdXRlIGZpbGUg bmFtZXMgaWYgeW91IGRvbid0IGhhdmUgdGhlbSBpbiB5b3VyIHBhdGg7CisrIyBvciB1c2UgZW52 aXJvbm1lbnQgdmFycy4KKysKKytjaGdycHByb2c9JHtDSEdSUFBST0ctY2hncnB9CisrY2htb2Rw cm9nPSR7Q0hNT0RQUk9HLWNobW9kfQorK2Nob3ducHJvZz0ke0NIT1dOUFJPRy1jaG93bn0KKytj bXBwcm9nPSR7Q01QUFJPRy1jbXB9CisrY3Bwcm9nPSR7Q1BQUk9HLWNwfQorK21rZGlycHJvZz0k e01LRElSUFJPRy1ta2Rpcn0KKyttdnByb2c9JHtNVlBST0ctbXZ9Cisrcm1wcm9nPSR7Uk1QUk9H LXJtfQorK3N0cmlwcHJvZz0ke1NUUklQUFJPRy1zdHJpcH0KKysKKytwb3NpeF9nbG9iPSc/Jwor K2luaXRpYWxpemVfcG9zaXhfZ2xvYj0nCisrICB0ZXN0ICIkcG9zaXhfZ2xvYiIgIT0gIj8iIHx8 IHsKKysgICAgaWYgKHNldCAtZikgMj4vZGV2L251bGw7IHRoZW4KKysgICAgICBwb3NpeF9nbG9i PQorKyAgICBlbHNlCisrICAgICAgcG9zaXhfZ2xvYj06CisrICAgIGZpCisrICB9CisrJworKwor K3Bvc2l4X21rZGlyPQorKworKyMgRGVzaXJlZCBtb2RlIG9mIGluc3RhbGxlZCBmaWxlLgorK21v ZGU9MDc1NQorKworK2NoZ3JwY21kPQorK2NobW9kY21kPSRjaG1vZHByb2cKKytjaG93bmNtZD0K KyttdmNtZD0kbXZwcm9nCisrcm1jbWQ9IiRybXByb2cgLWYiCisrc3RyaXBjbWQ9CisrCisrc3Jj PQorK2RzdD0KKytkaXJfYXJnPQorK2RzdF9hcmc9CisrCisrY29weV9vbl9jaGFuZ2U9ZmFsc2UK Kytub190YXJnZXRfZGlyZWN0b3J5PQorKworK3VzYWdlPSJcCisrVXNhZ2U6ICQwIFtPUFRJT05d Li4uIFstVF0gU1JDRklMRSBEU1RGSUxFCisrICAgb3I6ICQwIFtPUFRJT05dLi4uIFNSQ0ZJTEVT Li4uIERJUkVDVE9SWQorKyAgIG9yOiAkMCBbT1BUSU9OXS4uLiAtdCBESVJFQ1RPUlkgU1JDRklM RVMuLi4KKysgICBvcjogJDAgW09QVElPTl0uLi4gLWQgRElSRUNUT1JJRVMuLi4KKysKKytJbiB0 aGUgMXN0IGZvcm0sIGNvcHkgU1JDRklMRSB0byBEU1RGSUxFLgorK0luIHRoZSAybmQgYW5kIDNy ZCwgY29weSBhbGwgU1JDRklMRVMgdG8gRElSRUNUT1JZLgorK0luIHRoZSA0dGgsIGNyZWF0ZSBE SVJFQ1RPUklFUy4KKysKKytPcHRpb25zOgorKyAgICAgLS1oZWxwICAgICBkaXNwbGF5IHRoaXMg aGVscCBhbmQgZXhpdC4KKysgICAgIC0tdmVyc2lvbiAgZGlzcGxheSB2ZXJzaW9uIGluZm8gYW5k IGV4aXQuCisrCisrICAtYyAgICAgICAgICAgIChpZ25vcmVkKQorKyAgLUMgICAgICAgICAgICBp bnN0YWxsIG9ubHkgaWYgZGlmZmVyZW50IChwcmVzZXJ2ZSB0aGUgbGFzdCBkYXRhIG1vZGlmaWNh dGlvbiB0aW1lKQorKyAgLWQgICAgICAgICAgICBjcmVhdGUgZGlyZWN0b3JpZXMgaW5zdGVhZCBv ZiBpbnN0YWxsaW5nIGZpbGVzLgorKyAgLWcgR1JPVVAgICAgICAkY2hncnBwcm9nIGluc3RhbGxl ZCBmaWxlcyB0byBHUk9VUC4KKysgIC1tIE1PREUgICAgICAgJGNobW9kcHJvZyBpbnN0YWxsZWQg ZmlsZXMgdG8gTU9ERS4KKysgIC1vIFVTRVIgICAgICAgJGNob3ducHJvZyBpbnN0YWxsZWQgZmls ZXMgdG8gVVNFUi4KKysgIC1zICAgICAgICAgICAgJHN0cmlwcHJvZyBpbnN0YWxsZWQgZmlsZXMu CisrICAtdCBESVJFQ1RPUlkgIGluc3RhbGwgaW50byBESVJFQ1RPUlkuCisrICAtVCAgICAgICAg ICAgIHJlcG9ydCBhbiBlcnJvciBpZiBEU1RGSUxFIGlzIGEgZGlyZWN0b3J5LgorKworK0Vudmly b25tZW50IHZhcmlhYmxlcyBvdmVycmlkZSB0aGUgZGVmYXVsdCBjb21tYW5kczoKKysgIENIR1JQ UFJPRyBDSE1PRFBST0cgQ0hPV05QUk9HIENNUFBST0cgQ1BQUk9HIE1LRElSUFJPRyBNVlBST0cK KysgIFJNUFJPRyBTVFJJUFBST0cKKysiCisrCisrd2hpbGUgdGVzdCAkIyAtbmUgMDsgZG8KKysg IGNhc2UgJDEgaW4KKysgICAgLWMpIDs7CisrCisrICAgIC1DKSBjb3B5X29uX2NoYW5nZT10cnVl OzsKKysKKysgICAgLWQpIGRpcl9hcmc9dHJ1ZTs7CisrCisrICAgIC1nKSBjaGdycGNtZD0iJGNo Z3JwcHJvZyAkMiIKKysJc2hpZnQ7OworKworKyAgICAtLWhlbHApIGVjaG8gIiR1c2FnZSI7IGV4 aXQgJD87OworKworKyAgICAtbSkgbW9kZT0kMgorKwljYXNlICRtb2RlIGluCisrCSAgKicgJyog fCAqJwknKiB8IConCisrJyoJICB8IConKicqIHwgKic/JyogfCAqJ1snKikKKysJICAgIGVjaG8g IiQwOiBpbnZhbGlkIG1vZGU6ICRtb2RlIiA+JjIKKysJICAgIGV4aXQgMTs7CisrCWVzYWMKKysJ c2hpZnQ7OworKworKyAgICAtbykgY2hvd25jbWQ9IiRjaG93bnByb2cgJDIiCisrCXNoaWZ0OzsK KysKKysgICAgLXMpIHN0cmlwY21kPSRzdHJpcHByb2c7OworKworKyAgICAtdCkgZHN0X2FyZz0k MgorKwlzaGlmdDs7CisrCisrICAgIC1UKSBub190YXJnZXRfZGlyZWN0b3J5PXRydWU7OworKwor KyAgICAtLXZlcnNpb24pIGVjaG8gIiQwICRzY3JpcHR2ZXJzaW9uIjsgZXhpdCAkPzs7CisrCisr ICAgIC0tKQlzaGlmdAorKwlicmVhazs7CisrCisrICAgIC0qKQllY2hvICIkMDogaW52YWxpZCBv cHRpb246ICQxIiA+JjIKKysJZXhpdCAxOzsKKysKKysgICAgKikgIGJyZWFrOzsKKysgIGVzYWMK KysgIHNoaWZ0CisrZG9uZQorKworK2lmIHRlc3QgJCMgLW5lIDAgJiYgdGVzdCAteiAiJGRpcl9h cmckZHN0X2FyZyI7IHRoZW4KKysgICMgV2hlbiAtZCBpcyB1c2VkLCBhbGwgcmVtYWluaW5nIGFy Z3VtZW50cyBhcmUgZGlyZWN0b3JpZXMgdG8gY3JlYXRlLgorKyAgIyBXaGVuIC10IGlzIHVzZWQs IHRoZSBkZXN0aW5hdGlvbiBpcyBhbHJlYWR5IHNwZWNpZmllZC4KKysgICMgT3RoZXJ3aXNlLCB0 aGUgbGFzdCBhcmd1bWVudCBpcyB0aGUgZGVzdGluYXRpb24uICBSZW1vdmUgaXQgZnJvbSAkQC4K KysgIGZvciBhcmcKKysgIGRvCisrICAgIGlmIHRlc3QgLW4gIiRkc3RfYXJnIjsgdGhlbgorKyAg ICAgICMgJEAgaXMgbm90IGVtcHR5OiBpdCBjb250YWlucyBhdCBsZWFzdCAkYXJnLgorKyAgICAg IHNldCBmbm9yZCAiJEAiICIkZHN0X2FyZyIKKysgICAgICBzaGlmdCAjIGZub3JkCisrICAgIGZp CisrICAgIHNoaWZ0ICMgYXJnCisrICAgIGRzdF9hcmc9JGFyZworKyAgZG9uZQorK2ZpCisrCisr aWYgdGVzdCAkIyAtZXEgMDsgdGhlbgorKyAgaWYgdGVzdCAteiAiJGRpcl9hcmciOyB0aGVuCisr ICAgIGVjaG8gIiQwOiBubyBpbnB1dCBmaWxlIHNwZWNpZmllZC4iID4mMgorKyAgICBleGl0IDEK KysgIGZpCisrICAjIEl0J3MgT0sgdG8gY2FsbCBgaW5zdGFsbC1zaCAtZCcgd2l0aG91dCBhcmd1 bWVudC4KKysgICMgVGhpcyBjYW4gaGFwcGVuIHdoZW4gY3JlYXRpbmcgY29uZGl0aW9uYWwgZGly ZWN0b3JpZXMuCisrICBleGl0IDAKKytmaQorKworK2lmIHRlc3QgLXogIiRkaXJfYXJnIjsgdGhl bgorKyAgdHJhcCAnKGV4aXQgJD8pOyBleGl0JyAxIDIgMTMgMTUKKysKKysgICMgU2V0IHVtYXNr IHNvIGFzIG5vdCB0byBjcmVhdGUgdGVtcHMgd2l0aCB0b28tZ2VuZXJvdXMgbW9kZXMuCisrICAj IEhvd2V2ZXIsICdzdHJpcCcgcmVxdWlyZXMgYm90aCByZWFkIGFuZCB3cml0ZSBhY2Nlc3MgdG8g dGVtcHMuCisrICBjYXNlICRtb2RlIGluCisrICAgICMgT3B0aW1pemUgY29tbW9uIGNhc2VzLgor KyAgICAqNjQ0KSBjcF91bWFzaz0xMzM7OworKyAgICAqNzU1KSBjcF91bWFzaz0yMjs7CisrCisr ICAgICpbMC03XSkKKysgICAgICBpZiB0ZXN0IC16ICIkc3RyaXBjbWQiOyB0aGVuCisrCXVfcGx1 c19ydz0KKysgICAgICBlbHNlCisrCXVfcGx1c19ydz0nJSAyMDAnCisrICAgICAgZmkKKysgICAg ICBjcF91bWFzaz1gZXhwciAnKCcgNzc3IC0gJG1vZGUgJSAxMDAwICcpJyAkdV9wbHVzX3J3YDs7 CisrICAgICopCisrICAgICAgaWYgdGVzdCAteiAiJHN0cmlwY21kIjsgdGhlbgorKwl1X3BsdXNf cnc9CisrICAgICAgZWxzZQorKwl1X3BsdXNfcnc9LHUrcncKKysgICAgICBmaQorKyAgICAgIGNw X3VtYXNrPSRtb2RlJHVfcGx1c19ydzs7CisrICBlc2FjCisrZmkKKysKKytmb3Igc3JjCisrZG8K KysgICMgUHJvdGVjdCBuYW1lcyBzdGFydGluZyB3aXRoIGAtJy4KKysgIGNhc2UgJHNyYyBpbgor KyAgICAtKikgc3JjPS4vJHNyYzs7CisrICBlc2FjCisrCisrICBpZiB0ZXN0IC1uICIkZGlyX2Fy ZyI7IHRoZW4KKysgICAgZHN0PSRzcmMKKysgICAgZHN0ZGlyPSRkc3QKKysgICAgdGVzdCAtZCAi JGRzdGRpciIKKysgICAgZHN0ZGlyX3N0YXR1cz0kPworKyAgZWxzZQorKworKyAgICAjIFdhaXRp bmcgZm9yIHRoaXMgdG8gYmUgZGV0ZWN0ZWQgYnkgdGhlICIkY3Bwcm9nICRzcmMgJGRzdHRtcCIg Y29tbWFuZAorKyAgICAjIG1pZ2h0IGNhdXNlIGRpcmVjdG9yaWVzIHRvIGJlIGNyZWF0ZWQsIHdo aWNoIHdvdWxkIGJlIGVzcGVjaWFsbHkgYmFkCisrICAgICMgaWYgJHNyYyAoYW5kIHRodXMgJGRz dHRtcCkgY29udGFpbnMgJyonLgorKyAgICBpZiB0ZXN0ICEgLWYgIiRzcmMiICYmIHRlc3QgISAt ZCAiJHNyYyI7IHRoZW4KKysgICAgICBlY2hvICIkMDogJHNyYyBkb2VzIG5vdCBleGlzdC4iID4m MgorKyAgICAgIGV4aXQgMQorKyAgICBmaQorKworKyAgICBpZiB0ZXN0IC16ICIkZHN0X2FyZyI7 IHRoZW4KKysgICAgICBlY2hvICIkMDogbm8gZGVzdGluYXRpb24gc3BlY2lmaWVkLiIgPiYyCisr ICAgICAgZXhpdCAxCisrICAgIGZpCisrCisrICAgIGRzdD0kZHN0X2FyZworKyAgICAjIFByb3Rl Y3QgbmFtZXMgc3RhcnRpbmcgd2l0aCBgLScuCisrICAgIGNhc2UgJGRzdCBpbgorKyAgICAgIC0q KSBkc3Q9Li8kZHN0OzsKKysgICAgZXNhYworKworKyAgICAjIElmIGRlc3RpbmF0aW9uIGlzIGEg ZGlyZWN0b3J5LCBhcHBlbmQgdGhlIGlucHV0IGZpbGVuYW1lOyB3b24ndCB3b3JrCisrICAgICMg aWYgZG91YmxlIHNsYXNoZXMgYXJlbid0IGlnbm9yZWQuCisrICAgIGlmIHRlc3QgLWQgIiRkc3Qi OyB0aGVuCisrICAgICAgaWYgdGVzdCAtbiAiJG5vX3RhcmdldF9kaXJlY3RvcnkiOyB0aGVuCisr CWVjaG8gIiQwOiAkZHN0X2FyZzogSXMgYSBkaXJlY3RvcnkiID4mMgorKwlleGl0IDEKKysgICAg ICBmaQorKyAgICAgIGRzdGRpcj0kZHN0CisrICAgICAgZHN0PSRkc3RkaXIvYGJhc2VuYW1lICIk c3JjImAKKysgICAgICBkc3RkaXJfc3RhdHVzPTAKKysgICAgZWxzZQorKyAgICAgICMgUHJlZmVy IGRpcm5hbWUsIGJ1dCBmYWxsIGJhY2sgb24gYSBzdWJzdGl0dXRlIGlmIGRpcm5hbWUgZmFpbHMu CisrICAgICAgZHN0ZGlyPWAKKysJKGRpcm5hbWUgIiRkc3QiKSAyPi9kZXYvbnVsbCB8fAorKwll eHByIFgiJGRzdCIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKysJICAgICBY IiRkc3QiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisrCSAgICAgWCIkZHN0IiA6ICdYXCgvL1wpJCcg XHwgXAorKwkgICAgIFgiJGRzdCIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrCWVj aG8gWCIkZHN0IiB8CisrCSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQv eworKwkJICAgcy8vXDEvCisrCQkgICBxCisrCQkgfQorKwkJIC9eWFwoXC9cL1wpW14vXS4qL3sK KysJCSAgIHMvL1wxLworKwkJICAgcQorKwkJIH0KKysJCSAvXlhcKFwvXC9cKSQveworKwkJICAg cy8vXDEvCisrCQkgICBxCisrCQkgfQorKwkJIC9eWFwoXC9cKS4qL3sKKysJCSAgIHMvL1wxLwor KwkJICAgcQorKwkJIH0KKysJCSBzLy4qLy4vOyBxJworKyAgICAgIGAKKysKKysgICAgICB0ZXN0 IC1kICIkZHN0ZGlyIgorKyAgICAgIGRzdGRpcl9zdGF0dXM9JD8KKysgICAgZmkKKysgIGZpCisr CisrICBvYnNvbGV0ZV9ta2Rpcl91c2VkPWZhbHNlCisrCisrICBpZiB0ZXN0ICRkc3RkaXJfc3Rh dHVzICE9IDA7IHRoZW4KKysgICAgY2FzZSAkcG9zaXhfbWtkaXIgaW4KKysgICAgICAnJykKKysJ IyBDcmVhdGUgaW50ZXJtZWRpYXRlIGRpcnMgdXNpbmcgbW9kZSA3NTUgYXMgbW9kaWZpZWQgYnkg dGhlIHVtYXNrLgorKwkjIFRoaXMgaXMgbGlrZSBGcmVlQlNEICdpbnN0YWxsJyBhcyBvZiAxOTk3 LTEwLTI4LgorKwl1bWFzaz1gdW1hc2tgCisrCWNhc2UgJHN0cmlwY21kLiR1bWFzayBpbgorKwkg ICMgT3B0aW1pemUgY29tbW9uIGNhc2VzLgorKwkgICpbMjM2N11bMjM2N10pIG1rZGlyX3VtYXNr PSR1bWFzazs7CisrCSAgLiowWzAyXVswMl0gfCAuWzAyXVswMl0gfCAuWzAyXSkgbWtkaXJfdW1h c2s9MjI7OworKworKwkgICpbMC03XSkKKysJICAgIG1rZGlyX3VtYXNrPWBleHByICR1bWFzayAr IDIyIFwKKysJICAgICAgLSAkdW1hc2sgJSAxMDAgJSA0MCArICR1bWFzayAlIDIwIFwKKysJICAg ICAgLSAkdW1hc2sgJSAxMCAlIDQgKyAkdW1hc2sgJSAyCisrCSAgICBgOzsKKysJICAqKSBta2Rp cl91bWFzaz0kdW1hc2ssZ28tdzs7CisrCWVzYWMKKysKKysJIyBXaXRoIC1kLCBjcmVhdGUgdGhl IG5ldyBkaXJlY3Rvcnkgd2l0aCB0aGUgdXNlci1zcGVjaWZpZWQgbW9kZS4KKysJIyBPdGhlcndp c2UsIHJlbHkgb24gJG1rZGlyX3VtYXNrLgorKwlpZiB0ZXN0IC1uICIkZGlyX2FyZyI7IHRoZW4K KysJICBta2Rpcl9tb2RlPS1tJG1vZGUKKysJZWxzZQorKwkgIG1rZGlyX21vZGU9CisrCWZpCisr CisrCXBvc2l4X21rZGlyPWZhbHNlCisrCWNhc2UgJHVtYXNrIGluCisrCSAgKlsxMjM1NjddWzAt N11bMC03XSkKKysJICAgICMgUE9TSVggbWtkaXIgLXAgc2V0cyB1K3d4IGJpdHMgcmVnYXJkbGVz cyBvZiB1bWFzaywgd2hpY2gKKysJICAgICMgaXMgaW5jb21wYXRpYmxlIHdpdGggRnJlZUJTRCAn aW5zdGFsbCcgd2hlbiAodW1hc2sgJiAzMDApICE9IDAuCisrCSAgICA7OworKwkgICopCisrCSAg ICB0bXBkaXI9JHtUTVBESVItL3RtcH0vaW5zJFJBTkRPTS0kJAorKwkgICAgdHJhcCAncmV0PSQ/ OyBybWRpciAiJHRtcGRpci9kIiAiJHRtcGRpciIgMj4vZGV2L251bGw7IGV4aXQgJHJldCcgMAor KworKwkgICAgaWYgKHVtYXNrICRta2Rpcl91bWFzayAmJgorKwkJZXhlYyAkbWtkaXJwcm9nICRt a2Rpcl9tb2RlIC1wIC0tICIkdG1wZGlyL2QiKSA+L2Rldi9udWxsIDI+JjEKKysJICAgIHRoZW4K KysJICAgICAgaWYgdGVzdCAteiAiJGRpcl9hcmciIHx8IHsKKysJCSAgICMgQ2hlY2sgZm9yIFBP U0lYIGluY29tcGF0aWJpbGl0aWVzIHdpdGggLW0uCisrCQkgICAjIEhQLVVYIDExLjIzIGFuZCBJ UklYIDYuNSBta2RpciAtbSAtcCBzZXRzIGdyb3VwLSBvcgorKwkJICAgIyBvdGhlci13cml0ZWFi bGUgYml0IG9mIHBhcmVudCBkaXJlY3Rvcnkgd2hlbiBpdCBzaG91bGRuJ3QuCisrCQkgICAjIEZy ZWVCU0QgNi4xIG1rZGlyIC1tIC1wIHNldHMgbW9kZSBvZiBleGlzdGluZyBkaXJlY3RvcnkuCisr CQkgICBsc19sZF90bXBkaXI9YGxzIC1sZCAiJHRtcGRpciJgCisrCQkgICBjYXNlICRsc19sZF90 bXBkaXIgaW4KKysJCSAgICAgZD8/Pz8tP3ItKikgZGlmZmVyZW50X21vZGU9NzAwOzsKKysJCSAg ICAgZD8/Pz8tPy0tKikgZGlmZmVyZW50X21vZGU9NzU1OzsKKysJCSAgICAgKikgZmFsc2U7Owor KwkJICAgZXNhYyAmJgorKwkJICAgJG1rZGlycHJvZyAtbSRkaWZmZXJlbnRfbW9kZSAtcCAtLSAi JHRtcGRpciIgJiYgeworKwkJICAgICBsc19sZF90bXBkaXJfMT1gbHMgLWxkICIkdG1wZGlyImAK KysJCSAgICAgdGVzdCAiJGxzX2xkX3RtcGRpciIgPSAiJGxzX2xkX3RtcGRpcl8xIgorKwkJICAg fQorKwkJIH0KKysJICAgICAgdGhlbiBwb3NpeF9ta2Rpcj06CisrCSAgICAgIGZpCisrCSAgICAg IHJtZGlyICIkdG1wZGlyL2QiICIkdG1wZGlyIgorKwkgICAgZWxzZQorKwkgICAgICAjIFJlbW92 ZSBhbnkgZGlycyBsZWZ0IGJlaGluZCBieSBhbmNpZW50IG1rZGlyIGltcGxlbWVudGF0aW9ucy4K KysJICAgICAgcm1kaXIgLi8kbWtkaXJfbW9kZSAuLy1wIC4vLS0gMj4vZGV2L251bGwKKysJICAg IGZpCisrCSAgICB0cmFwICcnIDA7OworKwllc2FjOzsKKysgICAgZXNhYworKworKyAgICBpZgor KyAgICAgICRwb3NpeF9ta2RpciAmJiAoCisrCXVtYXNrICRta2Rpcl91bWFzayAmJgorKwkkZG9p dF9leGVjICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiRkc3RkaXIiCisrICAgICAgKQor KyAgICB0aGVuIDoKKysgICAgZWxzZQorKworKyAgICAgICMgVGhlIHVtYXNrIGlzIHJpZGljdWxv dXMsIG9yIG1rZGlyIGRvZXMgbm90IGNvbmZvcm0gdG8gUE9TSVgsCisrICAgICAgIyBvciBpdCBm YWlsZWQgcG9zc2libHkgZHVlIHRvIGEgcmFjZSBjb25kaXRpb24uICBDcmVhdGUgdGhlCisrICAg ICAgIyBkaXJlY3RvcnkgdGhlIHNsb3cgd2F5LCBzdGVwIGJ5IHN0ZXAsIGNoZWNraW5nIGZvciBy YWNlcyBhcyB3ZSBnby4KKysKKysgICAgICBjYXNlICRkc3RkaXIgaW4KKysJLyopIHByZWZpeD0n Lyc7OworKwktKikgcHJlZml4PScuLyc7OworKwkqKSAgcHJlZml4PScnOzsKKysgICAgICBlc2Fj CisrCisrICAgICAgZXZhbCAiJGluaXRpYWxpemVfcG9zaXhfZ2xvYiIKKysKKysgICAgICBvSUZT PSRJRlMKKysgICAgICBJRlM9LworKyAgICAgICRwb3NpeF9nbG9iIHNldCAtZgorKyAgICAgIHNl dCBmbm9yZCAkZHN0ZGlyCisrICAgICAgc2hpZnQKKysgICAgICAkcG9zaXhfZ2xvYiBzZXQgK2YK KysgICAgICBJRlM9JG9JRlMKKysKKysgICAgICBwcmVmaXhlcz0KKysKKysgICAgICBmb3IgZAor KyAgICAgIGRvCisrCXRlc3QgLXogIiRkIiAmJiBjb250aW51ZQorKworKwlwcmVmaXg9JHByZWZp eCRkCisrCWlmIHRlc3QgLWQgIiRwcmVmaXgiOyB0aGVuCisrCSAgcHJlZml4ZXM9CisrCWVsc2UK KysJICBpZiAkcG9zaXhfbWtkaXI7IHRoZW4KKysJICAgICh1bWFzaz0kbWtkaXJfdW1hc2sgJiYK KysJICAgICAkZG9pdF9leGVjICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiRkc3RkaXIi KSAmJiBicmVhaworKwkgICAgIyBEb24ndCBmYWlsIGlmIHR3byBpbnN0YW5jZXMgYXJlIHJ1bm5p bmcgY29uY3VycmVudGx5LgorKwkgICAgdGVzdCAtZCAiJHByZWZpeCIgfHwgZXhpdCAxCisrCSAg ZWxzZQorKwkgICAgY2FzZSAkcHJlZml4IGluCisrCSAgICAgICpcJyopIHFwcmVmaXg9YGVjaG8g IiRwcmVmaXgiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsKKysJICAgICAgKikgcXByZWZp eD0kcHJlZml4OzsKKysJICAgIGVzYWMKKysJICAgIHByZWZpeGVzPSIkcHJlZml4ZXMgJyRxcHJl Zml4JyIKKysJICBmaQorKwlmaQorKwlwcmVmaXg9JHByZWZpeC8KKysgICAgICBkb25lCisrCisr ICAgICAgaWYgdGVzdCAtbiAiJHByZWZpeGVzIjsgdGhlbgorKwkjIERvbid0IGZhaWwgaWYgdHdv IGluc3RhbmNlcyBhcmUgcnVubmluZyBjb25jdXJyZW50bHkuCisrCSh1bWFzayAkbWtkaXJfdW1h c2sgJiYKKysJIGV2YWwgIlwkZG9pdF9leGVjIFwkbWtkaXJwcm9nICRwcmVmaXhlcyIpIHx8Cisr CSAgdGVzdCAtZCAiJGRzdGRpciIgfHwgZXhpdCAxCisrCW9ic29sZXRlX21rZGlyX3VzZWQ9dHJ1 ZQorKyAgICAgIGZpCisrICAgIGZpCisrICBmaQorKworKyAgaWYgdGVzdCAtbiAiJGRpcl9hcmci OyB0aGVuCisrICAgIHsgdGVzdCAteiAiJGNob3duY21kIiB8fCAkZG9pdCAkY2hvd25jbWQgIiRk c3QiOyB9ICYmCisrICAgIHsgdGVzdCAteiAiJGNoZ3JwY21kIiB8fCAkZG9pdCAkY2hncnBjbWQg IiRkc3QiOyB9ICYmCisrICAgIHsgdGVzdCAiJG9ic29sZXRlX21rZGlyX3VzZWQkY2hvd25jbWQk Y2hncnBjbWQiID0gZmFsc2UgfHwKKysgICAgICB0ZXN0IC16ICIkY2htb2RjbWQiIHx8ICRkb2l0 ICRjaG1vZGNtZCAkbW9kZSAiJGRzdCI7IH0gfHwgZXhpdCAxCisrICBlbHNlCisrCisrICAgICMg TWFrZSBhIGNvdXBsZSBvZiB0ZW1wIGZpbGUgbmFtZXMgaW4gdGhlIHByb3BlciBkaXJlY3Rvcnku CisrICAgIGRzdHRtcD0kZHN0ZGlyL19pbnN0LiQkXworKyAgICBybXRtcD0kZHN0ZGlyL19ybS4k JF8KKysKKysgICAgIyBUcmFwIHRvIGNsZWFuIHVwIHRob3NlIHRlbXAgZmlsZXMgYXQgZXhpdC4K KysgICAgdHJhcCAncmV0PSQ/OyBybSAtZiAiJGRzdHRtcCIgIiRybXRtcCIgJiYgZXhpdCAkcmV0 JyAwCisrCisrICAgICMgQ29weSB0aGUgZmlsZSBuYW1lIHRvIHRoZSB0ZW1wIG5hbWUuCisrICAg ICh1bWFzayAkY3BfdW1hc2sgJiYgJGRvaXRfZXhlYyAkY3Bwcm9nICIkc3JjIiAiJGRzdHRtcCIp ICYmCisrCisrICAgICMgYW5kIHNldCBhbnkgb3B0aW9uczsgZG8gY2htb2QgbGFzdCB0byBwcmVz ZXJ2ZSBzZXR1aWQgYml0cy4KKysgICAgIworKyAgICAjIElmIGFueSBvZiB0aGVzZSBmYWlsLCB3 ZSBhYm9ydCB0aGUgd2hvbGUgdGhpbmcuICBJZiB3ZSB3YW50IHRvCisrICAgICMgaWdub3JlIGVy cm9ycyBmcm9tIGFueSBvZiB0aGVzZSwganVzdCBtYWtlIHN1cmUgbm90IHRvIGlnbm9yZQorKyAg ICAjIGVycm9ycyBmcm9tIHRoZSBhYm92ZSAiJGRvaXQgJGNwcHJvZyAkc3JjICRkc3R0bXAiIGNv bW1hbmQuCisrICAgICMKKysgICAgeyB0ZXN0IC16ICIkY2hvd25jbWQiIHx8ICRkb2l0ICRjaG93 bmNtZCAiJGRzdHRtcCI7IH0gJiYKKysgICAgeyB0ZXN0IC16ICIkY2hncnBjbWQiIHx8ICRkb2l0 ICRjaGdycGNtZCAiJGRzdHRtcCI7IH0gJiYKKysgICAgeyB0ZXN0IC16ICIkc3RyaXBjbWQiIHx8 ICRkb2l0ICRzdHJpcGNtZCAiJGRzdHRtcCI7IH0gJiYKKysgICAgeyB0ZXN0IC16ICIkY2htb2Rj bWQiIHx8ICRkb2l0ICRjaG1vZGNtZCAkbW9kZSAiJGRzdHRtcCI7IH0gJiYKKysKKysgICAgIyBJ ZiAtQywgZG9uJ3QgYm90aGVyIHRvIGNvcHkgaWYgaXQgd291bGRuJ3QgY2hhbmdlIHRoZSBmaWxl LgorKyAgICBpZiAkY29weV9vbl9jaGFuZ2UgJiYKKysgICAgICAgb2xkPWBMQ19BTEw9QyBscyAt ZGxMICIkZHN0IgkyPi9kZXYvbnVsbGAgJiYKKysgICAgICAgbmV3PWBMQ19BTEw9QyBscyAtZGxM ICIkZHN0dG1wIgkyPi9kZXYvbnVsbGAgJiYKKysKKysgICAgICAgZXZhbCAiJGluaXRpYWxpemVf cG9zaXhfZ2xvYiIgJiYKKysgICAgICAgJHBvc2l4X2dsb2Igc2V0IC1mICYmCisrICAgICAgIHNl dCBYICRvbGQgJiYgb2xkPTokMjokNDokNTokNiAmJgorKyAgICAgICBzZXQgWCAkbmV3ICYmIG5l dz06JDI6JDQ6JDU6JDYgJiYKKysgICAgICAgJHBvc2l4X2dsb2Igc2V0ICtmICYmCisrCisrICAg ICAgIHRlc3QgIiRvbGQiID0gIiRuZXciICYmCisrICAgICAgICRjbXBwcm9nICIkZHN0IiAiJGRz dHRtcCIgPi9kZXYvbnVsbCAyPiYxCisrICAgIHRoZW4KKysgICAgICBybSAtZiAiJGRzdHRtcCIK KysgICAgZWxzZQorKyAgICAgICMgUmVuYW1lIHRoZSBmaWxlIHRvIHRoZSByZWFsIGRlc3RpbmF0 aW9uLgorKyAgICAgICRkb2l0ICRtdmNtZCAtZiAiJGRzdHRtcCIgIiRkc3QiIDI+L2Rldi9udWxs IHx8CisrCisrICAgICAgIyBUaGUgcmVuYW1lIGZhaWxlZCwgcGVyaGFwcyBiZWNhdXNlIG12IGNh bid0IHJlbmFtZSBzb21ldGhpbmcgZWxzZQorKyAgICAgICMgdG8gaXRzZWxmLCBvciBwZXJoYXBz IGJlY2F1c2UgbXYgaXMgc28gYW5jaWVudCB0aGF0IGl0IGRvZXMgbm90CisrICAgICAgIyBzdXBw b3J0IC1mLgorKyAgICAgIHsKKysJIyBOb3cgcmVtb3ZlIG9yIG1vdmUgYXNpZGUgYW55IG9sZCBm aWxlIGF0IGRlc3RpbmF0aW9uIGxvY2F0aW9uLgorKwkjIFdlIHRyeSB0aGlzIHR3byB3YXlzIHNp bmNlIHJtIGNhbid0IHVubGluayBpdHNlbGYgb24gc29tZQorKwkjIHN5c3RlbXMgYW5kIHRoZSBk ZXN0aW5hdGlvbiBmaWxlIG1pZ2h0IGJlIGJ1c3kgZm9yIG90aGVyCisrCSMgcmVhc29ucy4gIElu IHRoaXMgY2FzZSwgdGhlIGZpbmFsIGNsZWFudXAgbWlnaHQgZmFpbCBidXQgdGhlIG5ldworKwkj IGZpbGUgc2hvdWxkIHN0aWxsIGluc3RhbGwgc3VjY2Vzc2Z1bGx5LgorKwl7CisrCSAgdGVzdCAh IC1mICIkZHN0IiB8fAorKwkgICRkb2l0ICRybWNtZCAtZiAiJGRzdCIgMj4vZGV2L251bGwgfHwK KysJICB7ICRkb2l0ICRtdmNtZCAtZiAiJGRzdCIgIiRybXRtcCIgMj4vZGV2L251bGwgJiYKKysJ ICAgIHsgJGRvaXQgJHJtY21kIC1mICIkcm10bXAiIDI+L2Rldi9udWxsOyA6OyB9CisrCSAgfSB8 fAorKwkgIHsgZWNobyAiJDA6IGNhbm5vdCB1bmxpbmsgb3IgcmVuYW1lICRkc3QiID4mMgorKwkg ICAgKGV4aXQgMSk7IGV4aXQgMQorKwkgIH0KKysJfSAmJgorKworKwkjIE5vdyByZW5hbWUgdGhl IGZpbGUgdG8gdGhlIHJlYWwgZGVzdGluYXRpb24uCisrCSRkb2l0ICRtdmNtZCAiJGRzdHRtcCIg IiRkc3QiCisrICAgICAgfQorKyAgICBmaSB8fCBleGl0IDEKKysKKysgICAgdHJhcCAnJyAwCisr ICBmaQorK2RvbmUKKysKKysjIExvY2FsIHZhcmlhYmxlczoKKysjIGV2YWw6IChhZGQtaG9vayAn d3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKysjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3Jp cHR2ZXJzaW9uPSIKKysjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgor KyMgdGltZS1zdGFtcC10aW1lLXpvbmU6ICJVVEMiCisrIyB0aW1lLXN0YW1wLWVuZDogIjsgIyBV VEMiCisrIyBFbmQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2xpYnRvb2wu bTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9saWJ0b29sLm00CistLS0gc29jaS0zLjAuMF80 LXBhY2svY29uZmlnL2xpYnRvb2wubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2xpYnRvb2wubTQJMjAxMS0wMi0wOCAy MjozOTo0NC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNzQ0MSBAQAorKyMgbGlidG9vbC5t NCAtIENvbmZpZ3VyZSBsaWJ0b29sIGZvciB0aGUgaG9zdCBzeXN0ZW0uIC0qLUF1dG9jb25mLSot CisrIworKyMgICBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIw MDEsIDIwMDMsIDIwMDQsIDIwMDUsCisrIyAgICAgICAgICAgICAgICAgMjAwNiwgMjAwNywgMjAw OCwgMjAwOSwgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyAgICAgICAgICAgICAg ICAgSW5jLgorKyMgICBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdrZWl0LCAxOTk2CisrIworKyMg VGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24g Z2l2ZXMKKysjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUg aXQsIHdpdGggb3Igd2l0aG91dAorKyMgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5v dGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrbTRfZGVmaW5lKFtfTFRfQ09QWUlOR10sIFtkbmwKKysj ICAgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAz LCAyMDA0LCAyMDA1LAorKyMgICAgICAgICAgICAgICAgIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDks IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMgICAgICAgICAgICAgICAgIEluYy4K KysjICAgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCwgMTk5NgorKyMKKysjICAgVGhpcyBm aWxlIGlzIHBhcnQgb2YgR05VIExpYnRvb2wuCisrIworKyMgR05VIExpYnRvb2wgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrIyBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworKyMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIg b2YKKysjIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorKyMKKysjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlLAorKyMgaWYgeW91IGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBw cm9ncmFtIG9yIGxpYnJhcnkgdGhhdAorKyMgaXMgYnVpbHQgdXNpbmcgR05VIExpYnRvb2wsIHlv dSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIgdGhlCisrIyBzYW1lIGRpc3RyaWJ1dGlvbiB0 ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKysjCisrIyBH TlUgTGlidG9vbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggR05VIExpYnRv b2w7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCBhIGNvcHkKKysjIGNhbiBiZSBkb3du bG9hZGVkIGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sLCBvcgorKyMg b2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu LAorKyMgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0x MzAxLCBVU0EuCisrXSkKKysKKysjIHNlcmlhbCA1NyBMVF9JTklUCisrCisrCisrIyBMVF9QUkVS RVEoVkVSU0lPTikKKysjIC0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ29tcGxhaW4gYW5kIGV4aXQg aWYgdGhpcyBsaWJ0b29sIHZlcnNpb24gaXMgbGVzcyB0aGF0IFZFUlNJT04uCisrbTRfZGVmdW4o W0xUX1BSRVJFUV0sCisrW200X2lmKG00X3ZlcnNpb25fY29tcGFyZShtNF9kZWZuKFtMVF9QQUNL QUdFX1ZFUlNJT05dKSwgWyQxXSksIC0xLAorKyAgICAgICBbbTRfZGVmYXVsdChbJDNdLAorKwkJ ICAgW200X2ZhdGFsKFtMaWJ0b29sIHZlcnNpb24gJDEgb3IgaGlnaGVyIGlzIHJlcXVpcmVkXSwK KysJCSAgICAgICAgICAgICA2MyldKV0sCisrICAgICAgIFskMl0pXSkKKysKKysKKysjIF9MVF9D SEVDS19CVUlMRERJUgorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDb21wbGFpbiBpZiB0aGUg YWJzb2x1dGUgYnVpbGQgZGlyZWN0b3J5IG5hbWUgY29udGFpbnMgdW51c3VhbCBjaGFyYWN0ZXJz CisrbTRfZGVmdW4oW19MVF9DSEVDS19CVUlMRERJUl0sCisrW2Nhc2UgYHB3ZGAgaW4KKysgICpc ICogfCAqXAkqKQorKyAgICBBQ19NU0dfV0FSTihbTGlidG9vbCBkb2VzIG5vdCBjb3BlIHdlbGwg d2l0aCB3aGl0ZXNwYWNlIGluIGBwd2RgXSkgOzsKKytlc2FjCisrXSkKKysKKysKKysjIExUX0lO SVQoW09QVElPTlNdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0xUX0lOSVRd LAorK1tBQ19QUkVSRVEoWzIuNThdKWRubCBXZSB1c2UgQUNfSU5DTFVERVNfREVGQVVMVAorK0FD X1JFUVVJUkUoW0FDX0NPTkZJR19BVVhfRElSX0RFRkFVTFRdKWRubAorK0FDX0JFRk9SRShbJDBd LCBbTFRfTEFOR10pZG5sCisrQUNfQkVGT1JFKFskMF0sIFtMVF9PVVRQVVRdKWRubAorK0FDX0JF Rk9SRShbJDBdLCBbTFRETF9JTklUXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfQ0hFQ0tfQlVJTERE SVJdKWRubAorKworK2RubCBBdXRvY29uZiBkb2Vzbid0IGNhdGNoIHVuZXhwYW5kZWQgTFRfIG1h Y3JvcyBieSBkZWZhdWx0OgorK200X3BhdHRlcm5fZm9yYmlkKFteXz9MVF9bQS1aX10rJF0pZG5s CisrbTRfcGF0dGVybl9hbGxvdyhbXihfTFRfRU9GfExUX0RMR0xPQkFMfExUX0RMTEFaWV9PUl9O T1d8TFRfTVVMVElfTU9EVUxFKSRdKWRubAorK2RubCBhY2xvY2FsIGRvZXNuJ3QgcHVsbCBsdG9w dGlvbnMubTQsIGx0c3VnYXIubTQsIG9yIGx0dmVyc2lvbi5tNAorK2RubCB1bmxlc3Mgd2UgcmVx dWlyZSBhbiBBQ19ERUZVTmVkIG1hY3JvOgorK0FDX1JFUVVJUkUoW0xUT1BUSU9OU19WRVJTSU9O XSlkbmwKKytBQ19SRVFVSVJFKFtMVFNVR0FSX1ZFUlNJT05dKWRubAorK0FDX1JFUVVJUkUoW0xU VkVSU0lPTl9WRVJTSU9OXSlkbmwKKytBQ19SRVFVSVJFKFtMVE9CU09MRVRFX1ZFUlNJT05dKWRu bAorK200X3JlcXVpcmUoW19MVF9QUk9HX0xUTUFJTl0pZG5sCisrCisrX0xUX1NIRUxMX0lOSVQo W1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9XSkKKysKKytkbmwgUGFyc2UgT1BUSU9OUwor K19MVF9TRVRfT1BUSU9OUyhbJDBdLCBbJDFdKQorKworKyMgVGhpcyBjYW4gYmUgdXNlZCB0byBy ZWJ1aWxkIGxpYnRvb2wgd2hlbiBuZWVkZWQKKytMSUJUT09MX0RFUFM9IiRsdG1haW4iCisrCisr IyBBbHdheXMgdXNlIG91ciBvd24gbGlidG9vbC4KKytMSUJUT09MPSckKFNIRUxMKSAkKHRvcF9i dWlsZGRpcikvbGlidG9vbCcKKytBQ19TVUJTVChMSUJUT09MKWRubAorKworK19MVF9TRVRVUAor KworKyMgT25seSBleHBhbmQgb25jZToKKyttNF9kZWZpbmUoW0xUX0lOSVRdKQorK10pIyBMVF9J TklUCisrCisrIyBPbGQgbmFtZXM6CisrQVVfQUxJQVMoW0FDX1BST0dfTElCVE9PTF0sIFtMVF9J TklUXSkKKytBVV9BTElBUyhbQU1fUFJPR19MSUJUT09MXSwgW0xUX0lOSVRdKQorK2RubCBhY2xv Y2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW0FDX1BST0df TElCVE9PTF0sIFtdKQorK2RubCBBQ19ERUZVTihbQU1fUFJPR19MSUJUT09MXSwgW10pCisrCisr CisrIyBfTFRfQ0NfQkFTRU5BTUUoQ0MpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDYWxj dWxhdGUgY2NfYmFzZW5hbWUuICBTa2lwIGtub3duIGNvbXBpbGVyIHdyYXBwZXJzIGFuZCBjcm9z cy1wcmVmaXguCisrbTRfZGVmdW4oW19MVF9DQ19CQVNFTkFNRV0sCisrW2ZvciBjY190ZW1wIGlu ICQxIiI7IGRvCisrICBjYXNlICRjY190ZW1wIGluCisrICAgIGNvbXBpbGUgfCAqW1tcXC9dXWNv bXBpbGUgfCBjY2FjaGUgfCAqW1tcXC9dXWNjYWNoZSApIDs7CisrICAgIGRpc3RjYyB8ICpbW1xc L11dZGlzdGNjIHwgcHVyaWZ5IHwgKltbXFwvXV1wdXJpZnkgKSA7OworKyAgICBcLSopIDs7Cisr ICAgICopIGJyZWFrOzsKKysgIGVzYWMKKytkb25lCisrY2NfYmFzZW5hbWU9YCRFQ0hPICIkY2Nf dGVtcCIgfCAkU0VEICJzJS4qLyUlOyBzJV4kaG9zdF9hbGlhcy0lJSJgCisrXSkKKysKKysKKysj IF9MVF9GSUxFVVRJTFNfREVGQVVMVFMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEl0 IGlzIG9rYXkgdG8gdXNlIHRoZXNlIGZpbGUgY29tbWFuZHMgYW5kIGFzc3VtZSB0aGV5IGhhdmUg YmVlbiBzZXQKKysjIHNlbnNpYmx5IGFmdGVyIGBtNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RF RkFVTFRTXSknLgorK200X2RlZnVuKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSwKKytbOiAke0NQ PSJjcCAtZiJ9CisrOiAke01WPSJtdiAtZiJ9CisrOiAke1JNPSJybSAtZiJ9CisrXSkjIF9MVF9G SUxFVVRJTFNfREVGQVVMVFMKKysKKysKKysjIF9MVF9TRVRVUAorKyMgLS0tLS0tLS0tCisrbTRf ZGVmdW4oW19MVF9TRVRVUF0sCisrW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwK KytBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfQlVJTERdKWRubAorK0FDX1JFUVVJUkUoW19MVF9Q UkVQQVJFX1NFRF9RVU9URV9WQVJTXSlkbmwKKytBQ19SRVFVSVJFKFtfTFRfUFJPR19FQ0hPX0JB Q0tTTEFTSF0pZG5sCisrCisrX0xUX0RFQ0woW10sIFtob3N0X2FsaWFzXSwgWzBdLCBbVGhlIGhv c3Qgc3lzdGVtXSlkbmwKKytfTFRfREVDTChbXSwgW2hvc3RdLCBbMF0pZG5sCisrX0xUX0RFQ0wo W10sIFtob3N0X29zXSwgWzBdKWRubAorK2RubAorK19MVF9ERUNMKFtdLCBbYnVpbGRfYWxpYXNd LCBbMF0sIFtUaGUgYnVpbGQgc3lzdGVtXSlkbmwKKytfTFRfREVDTChbXSwgW2J1aWxkXSwgWzBd KWRubAorK19MVF9ERUNMKFtdLCBbYnVpbGRfb3NdLCBbMF0pZG5sCisrZG5sCisrQUNfUkVRVUlS RShbQUNfUFJPR19DQ10pZG5sCisrQUNfUkVRVUlSRShbTFRfUEFUSF9MRF0pZG5sCisrQUNfUkVR VUlSRShbTFRfUEFUSF9OTV0pZG5sCisrZG5sCisrQUNfUkVRVUlSRShbQUNfUFJPR19MTl9TXSlk bmwKKyt0ZXN0IC16ICIkTE5fUyIgJiYgTE5fUz0ibG4gLXMiCisrX0xUX0RFQ0woW10sIFtMTl9T XSwgWzFdLCBbV2hldGhlciB3ZSBuZWVkIHNvZnQgb3IgaGFyZCBsaW5rc10pZG5sCisrZG5sCisr QUNfUkVRVUlSRShbTFRfQ01EX01BWF9MRU5dKWRubAorK19MVF9ERUNMKFtvYmpleHRdLCBbYWNf b2JqZXh0XSwgWzBdLCBbT2JqZWN0IGZpbGUgc3VmZml4IChub3JtYWxseSAibyIpXSlkbmwKKytf TFRfREVDTChbXSwgW2V4ZWV4dF0sIFswXSwgW0V4ZWN1dGFibGUgZmlsZSBzdWZmaXggKG5vcm1h bGx5ICIiKV0pZG5sCisrZG5sCisrbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10p ZG5sCisrbTRfcmVxdWlyZShbX0xUX0NIRUNLX1NIRUxMX0ZFQVRVUkVTXSlkbmwKKyttNF9yZXF1 aXJlKFtfTFRfQ01EX1JFTE9BRF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0NIRUNLX01BR0lDX01F VEhPRF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0NNRF9PTERfQVJDSElWRV0pZG5sCisrbTRfcmVx dWlyZShbX0xUX0NNRF9HTE9CQUxfU1lNQk9MU10pZG5sCisrCisrX0xUX0NPTkZJR19MSUJUT09M X0lOSVQoWworKyMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNldCB0aGUgb3B0 aW9ucyB3aGljaCBhbGxvdyBvdXIKKysjIGNvbW1hbmRzIHRocm91Z2ggd2l0aG91dCByZW1vdmFs IG9mIFwgZXNjYXBlcyBJTklULgorK2lmIHRlc3QgLW4gIlwke1pTSF9WRVJTSU9OK3NldH0iIDsg dGhlbgorKyAgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZmkKKytdKQorK2lmIHRlc3QgLW4gIiR7 WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCisrICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKKytmaQor KworK19MVF9DSEVDS19PQkpESVIKKysKKyttNF9yZXF1aXJlKFtfTFRfVEFHX0NPTVBJTEVSXSlk bmwKKysKKytjYXNlICRob3N0X29zIGluCisrYWl4MyopCisrICAjIEFJWCBzb21ldGltZXMgaGFz IHByb2JsZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBwcm9ncmFtLiAgRm9yIHNvbWUKKysgICMg cmVhc29uLCBpZiB3ZSBzZXQgdGhlIENPTExFQ1RfTkFNRVMgZW52aXJvbm1lbnQgdmFyaWFibGUs IHRoZSBwcm9ibGVtcworKyAgIyB2YW5pc2ggaW4gYSBwdWZmIG9mIHNtb2tlLgorKyAgaWYgdGVz dCAiWCR7Q09MTEVDVF9OQU1FUytzZXR9IiAhPSBYc2V0OyB0aGVuCisrICAgIENPTExFQ1RfTkFN RVM9CisrICAgIGV4cG9ydCBDT0xMRUNUX05BTUVTCisrICBmaQorKyAgOzsKKytlc2FjCisrCisr IyBHbG9iYWwgdmFyaWFibGVzOgorK29maWxlPWxpYnRvb2wKKytjYW5fYnVpbGRfc2hhcmVkPXll cworKworKyMgQWxsIGtub3duIGxpbmtlcnMgcmVxdWlyZSBhIGAuYScgYXJjaGl2ZSBmb3Igc3Rh dGljIGxpbmtpbmcgKGV4Y2VwdCBNU1ZDLAorKyMgd2hpY2ggbmVlZHMgJy5saWInKS4KKytsaWJl eHQ9YQorKworK3dpdGhfZ251X2xkPSIkbHRfY3ZfcHJvZ19nbnVfbGQiCisrCisrb2xkX0NDPSIk Q0MiCisrb2xkX0NGTEFHUz0iJENGTEFHUyIKKysKKysjIFNldCBzYW5lIGRlZmF1bHRzIGZvciB2 YXJpb3VzIHZhcmlhYmxlcworK3Rlc3QgLXogIiRDQyIgJiYgQ0M9Y2MKKyt0ZXN0IC16ICIkTFRD QyIgJiYgTFRDQz0kQ0MKKyt0ZXN0IC16ICIkTFRDRkxBR1MiICYmIExUQ0ZMQUdTPSRDRkxBR1MK Kyt0ZXN0IC16ICIkTEQiICYmIExEPWxkCisrdGVzdCAteiAiJGFjX29iamV4dCIgJiYgYWNfb2Jq ZXh0PW8KKysKKytfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCisrCisrIyBPbmx5IHBlcmZv cm0gdGhlIGNoZWNrIGZvciBmaWxlLCBpZiB0aGUgY2hlY2sgbWV0aG9kIHJlcXVpcmVzIGl0Cisr dGVzdCAteiAiJE1BR0lDX0NNRCIgJiYgTUFHSUNfQ01EPWZpbGUKKytjYXNlICRkZXBsaWJzX2No ZWNrX21ldGhvZCBpbgorK2ZpbGVfbWFnaWMqKQorKyAgaWYgdGVzdCAiJGZpbGVfbWFnaWNfY21k IiA9ICckTUFHSUNfQ01EJzsgdGhlbgorKyAgICBfTFRfUEFUSF9NQUdJQworKyAgZmkKKysgIDs7 CisrZXNhYworKworKyMgVXNlIEMgZm9yIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gaW4gdGhl IGxpYnRvb2wgc2NyaXB0CisrTFRfU1VQUE9SVEVEX1RBRyhbQ0NdKQorK19MVF9MQU5HX0NfQ09O RklHCisrX0xUX0xBTkdfREVGQVVMVF9DT05GSUcKKytfTFRfQ09ORklHX0NPTU1BTkRTCisrXSkj IF9MVF9TRVRVUAorKworKworKyMgX0xUX1BSRVBBUkVfU0VEX1FVT1RFX1ZBUlMKKysjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBEZWZpbmUgYSBmZXcgc2VkIHN1YnN0aXR1dGlvbiB0 aGF0IGhlbHAgdXMgZG8gcm9idXN0IHF1b3RpbmcuCisrbTRfZGVmdW4oW19MVF9QUkVQQVJFX1NF RF9RVU9URV9WQVJTXSwKKytbIyBCYWNrc2xhc2hpZnkgbWV0YWNoYXJhY3RlcnMgdGhhdCBhcmUg c3RpbGwgYWN0aXZlIHdpdGhpbgorKyMgZG91YmxlLXF1b3RlZCBzdHJpbmdzLgorK3NlZF9xdW90 ZV9zdWJzdD0ncy9cKFtbImAkXFxdXVwpL1xcXDEvZycKKysKKysjIFNhbWUgYXMgYWJvdmUsIGJ1 dCBkbyBub3QgcXVvdGUgdmFyaWFibGUgcmVmZXJlbmNlcy4KKytkb3VibGVfcXVvdGVfc3Vic3Q9 J3MvXChbWyJgXFxdXVwpL1xcXDEvZycKKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdG8gZGVsYXkg ZXhwYW5zaW9uIG9mIGFuIGVzY2FwZWQgc2hlbGwgdmFyaWFibGUgaW4gYQorKyMgZG91YmxlX3F1 b3RlX3N1YnN0J2VkIHN0cmluZy4KKytkZWxheV92YXJpYWJsZV9zdWJzdD0ncy9cXFxcXFxcXFxc XCQvXFxcXFxcJC9nJworKworKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24g b2YgYW4gZXNjYXBlZCBzaW5nbGUgcXVvdGUuCisrZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0PSdz LydcJycvJ1wnXFxcXFxcXCdcJycvZycKKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdG8gYXZvaWQg YWNjaWRlbnRhbCBnbG9iYmluZyBpbiBldmFsZWQgZXhwcmVzc2lvbnMKKytub19nbG9iX3N1YnN0 PSdzL1wqL1xcXCovZycKKytdKQorKworKyMgX0xUX1BST0dfTFRNQUlOCisrIyAtLS0tLS0tLS0t LS0tLS0KKysjIE5vdGUgdGhhdCB0aGlzIGNvZGUgaXMgY2FsbGVkIGJvdGggZnJvbSBgY29uZmln dXJlJywgYW5kIGBjb25maWcuc3RhdHVzJworKyMgbm93IHRoYXQgd2UgdXNlIEFDX0NPTkZJR19D T01NQU5EUyB0byBnZW5lcmF0ZSBsaWJ0b29sLiAgTm90YWJseSwKKysjIGBjb25maWcuc3RhdHVz JyBoYXMgbm8gdmFsdWUgZm9yIGFjX2F1eF9kaXIgdW5sZXNzIHdlIGFyZSB1c2luZyBBdXRvbWFr ZSwKKysjIHNvIHdlIHBhc3MgYSBjb3B5IGFsb25nIHRvIG1ha2Ugc3VyZSBpdCBoYXMgYSBzZW5z aWJsZSB2YWx1ZSBhbnl3YXkuCisrbTRfZGVmdW4oW19MVF9QUk9HX0xUTUFJTl0sCisrW200X2lm ZGVmKFtBQ19SRVFVSVJFX0FVWF9GSUxFXSwgW0FDX1JFUVVJUkVfQVVYX0ZJTEUoW2x0bWFpbi5z aF0pXSlkbmwKKytfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbYWNfYXV4X2Rpcj0nJGFjX2F1eF9k aXInXSkKKytsdG1haW49IiRhY19hdXhfZGlyL2x0bWFpbi5zaCIKKytdKSMgX0xUX1BST0dfTFRN QUlOCisrCisrCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwor KyMjIEFjY3VtdWxhdGUgY29kZSBmb3IgY3JlYXRpbmcgbGlidG9vbC4gIyMKKysjIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrCisrIyBTbyB0aGF0IHdlIGNhbiBy ZWNyZWF0ZSBhIGZ1bGwgbGlidG9vbCBzY3JpcHQgaW5jbHVkaW5nIGFkZGl0aW9uYWwKKysjIHRh Z3MsIHdlIGFjY3VtdWxhdGUgdGhlIGNodW5rcyBvZiBjb2RlIHRvIHNlbmQgdG8gQUNfQ09ORklH X0NPTU1BTkRTCisrIyBpbiBtYWNyb3MgYW5kIHRoZW4gbWFrZSBhIHNpbmdsZSBjYWxsIGF0IHRo ZSBlbmQgdXNpbmcgdGhlIGBsaWJ0b29sJworKyMgbGFiZWwuCisrCisrCisrIyBfTFRfQ09ORklH X0xJQlRPT0xfSU5JVChbSU5JVC1DT01NQU5EU10pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrIyBSZWdpc3RlciBJTklULUNPTU1BTkRTIHRvIGJlIHBhc3Nl ZCB0byBBQ19DT05GSUdfQ09NTUFORFMgbGF0ZXIuCisrbTRfZGVmaW5lKFtfTFRfQ09ORklHX0xJ QlRPT0xfSU5JVF0sCisrW200X2lmdmFsKFskMV0sCisrICAgICAgICAgIFttNF9hcHBlbmQoW19M VF9PVVRQVVRfTElCVE9PTF9JTklUXSwKKysgICAgICAgICAgICAgICAgICAgICBbJDEKKytdKV0p XSkKKysKKysjIEluaXRpYWxpemUuCisrbTRfZGVmaW5lKFtfTFRfT1VUUFVUX0xJQlRPT0xfSU5J VF0pCisrCisrCisrIyBfTFRfQ09ORklHX0xJQlRPT0woW0NPTU1BTkRTXSkKKysjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgUmVnaXN0ZXIgQ09NTUFORFMgdG8gYmUgcGFzc2Vk IHRvIEFDX0NPTkZJR19DT01NQU5EUyBsYXRlci4KKyttNF9kZWZpbmUoW19MVF9DT05GSUdfTElC VE9PTF0sCisrW200X2lmdmFsKFskMV0sCisrICAgICAgICAgIFttNF9hcHBlbmQoW19MVF9PVVRQ VVRfTElCVE9PTF9DT01NQU5EU10sCisrICAgICAgICAgICAgICAgICAgICAgWyQxCisrXSldKV0p CisrCisrIyBJbml0aWFsaXplLgorK200X2RlZmluZShbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1B TkRTXSkKKysKKysKKysjIF9MVF9DT05GSUdfU0FWRV9DT01NQU5EUyhbQ09NTUFORFNdLCBbSU5J VF9DT01NQU5EU10pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfQ09ORklHX1NBVkVfQ09NTUFORFNdLAorK1tf TFRfQ09ORklHX0xJQlRPT0woWyQxXSkKKytfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbJDJdKQor K10pCisrCisrCisrIyBfTFRfRk9STUFUX0NPTU1FTlQoW0NPTU1FTlRdKQorKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEFkZCBsZWFkaW5nIGNvbW1lbnQgbWFya3MgdG8gdGhl IHN0YXJ0IG9mIGVhY2ggbGluZSwgYW5kIGEgdHJhaWxpbmcKKysjIGZ1bGwtc3RvcCB0byB0aGUg d2hvbGUgY29tbWVudCBpZiBvbmUgaXMgbm90IHByZXNlbnQgYWxyZWFkeS4KKyttNF9kZWZpbmUo W19MVF9GT1JNQVRfQ09NTUVOVF0sCisrW200X2lmdmFsKFskMV0sIFsKKyttNF9icGF0c3Vic3Qo W200X2JwYXRzdWJzdChbJDFdLCBbXiAqXSwgWyMgXSldLAorKyAgICAgICAgICAgICAgW1snYCRc XV0sIFtcXFwmXSldbTRfYm1hdGNoKFskMV0sIFtbIT8uXSRdLCBbXSwgWy5dKQorKyldKQorKwor KworKworKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworKyMjIEZJWE1FOiBFbGltaW5h dGUgVkFSTkFNRSAjIworKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworKworKworKyMg X0xUX0RFQ0woW0NPTkZJR05BTUVdLCBWQVJOQU1FLCBWQUxVRSwgW0RFU0NSSVBUSU9OXSwgW0lT LVRBR0dFRD9dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ09ORklHTkFNRSBpcyB0aGUgbmFtZSBnaXZl biB0byB0aGUgdmFsdWUgaW4gdGhlIGxpYnRvb2wgc2NyaXB0LgorKyMgVkFSTkFNRSBpcyB0aGUg KGJhc2UpIG5hbWUgdXNlZCBpbiB0aGUgY29uZmlndXJlIHNjcmlwdC4KKysjIFZBTFVFIG1heSBi ZSAwLCAxIG9yIDIgZm9yIGEgY29tcHV0ZWQgcXVvdGUgZXNjYXBlZCB2YWx1ZSBiYXNlZCBvbgor KyMgVkFSTkFNRS4gIEFueSBvdGhlciB2YWx1ZSB3aWxsIGJlIHVzZWQgZGlyZWN0bHkuCisrbTRf ZGVmaW5lKFtfTFRfREVDTF0sCisrW2x0X2lmX2FwcGVuZF91bmlxKFtsdF9kZWNsX3Zhcm5hbWVz XSwgWyQyXSwgWywgXSwKKysgICAgW2x0X2RpY3RfYWRkX3N1YmtleShbbHRfZGVjbF9kaWN0XSwg WyQyXSwgW2xpYnRvb2xfbmFtZV0sCisrCVttNF9pZnZhbChbJDFdLCBbJDFdLCBbJDJdKV0pCisr ICAgIGx0X2RpY3RfYWRkX3N1YmtleShbbHRfZGVjbF9kaWN0XSwgWyQyXSwgW3ZhbHVlXSwgWyQz XSkKKysgICAgbTRfaWZ2YWwoWyQ0XSwKKysJW2x0X2RpY3RfYWRkX3N1YmtleShbbHRfZGVjbF9k aWN0XSwgWyQyXSwgW2Rlc2NyaXB0aW9uXSwgWyQ0XSldKQorKyAgICBsdF9kaWN0X2FkZF9zdWJr ZXkoW2x0X2RlY2xfZGljdF0sIFskMl0sCisrCVt0YWdnZWQ/XSwgW200X2lmdmFsKFskNV0sIFt5 ZXNdLCBbbm9dKV0pXSkKKytdKQorKworKworKyMgX0xUX1RBR0RFQ0woW0NPTkZJR05BTUVdLCBW QVJOQU1FLCBWQUxVRSwgW0RFU0NSSVBUSU9OXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtfTFRfVEFHREVD TF0sIFtfTFRfREVDTChbJDFdLCBbJDJdLCBbJDNdLCBbJDRdLCBbeWVzXSldKQorKworKworKyMg bHRfZGVjbF90YWdfdmFybmFtZXMoW1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4uLl0pCisrIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUo W2x0X2RlY2xfdGFnX3Zhcm5hbWVzXSwKKytbX2x0X2RlY2xfZmlsdGVyKFt0YWdnZWQ/XSwgW3ll c10sICRAKV0pCisrCisrCisrIyBfbHRfZGVjbF9maWx0ZXIoU1VCS0VZLCBWQUxVRSwgW1NFUEFS QVRPUl0sIFtWQVJOQU1FMS4uXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZmluZShbX2x0X2RlY2xfZmlsdGVyXSwK KytbbTRfY2FzZShbJCNdLAorKyAgWzBdLCBbbTRfZmF0YWwoWyQwOiB0b28gZmV3IGFyZ3VtZW50 czogJCNdKV0sCisrICBbMV0sIFttNF9mYXRhbChbJDA6IHRvbyBmZXcgYXJndW1lbnRzOiAkIzog JDFdKV0sCisrICBbMl0sIFtsdF9kaWN0X2ZpbHRlcihbbHRfZGVjbF9kaWN0XSwgWyQxXSwgWyQy XSwgW10sIGx0X2RlY2xfdmFybmFtZXMpXSwKKysgIFszXSwgW2x0X2RpY3RfZmlsdGVyKFtsdF9k ZWNsX2RpY3RdLCBbJDFdLCBbJDJdLCBbJDNdLCBsdF9kZWNsX3Zhcm5hbWVzKV0sCisrICBbbHRf ZGljdF9maWx0ZXIoW2x0X2RlY2xfZGljdF0sICRAKV0pW11kbmwKKytdKQorKworKworKyMgbHRf ZGVjbF9xdW90ZV92YXJuYW1lcyhbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi4uXSkKKysjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5l KFtsdF9kZWNsX3F1b3RlX3Zhcm5hbWVzXSwKKytbX2x0X2RlY2xfZmlsdGVyKFt2YWx1ZV0sIFsx XSwgJEApXSkKKysKKysKKysjIGx0X2RlY2xfZHF1b3RlX3Zhcm5hbWVzKFtTRVBBUkFUT1JdLCBb VkFSTkFNRTEuLi5dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtsdF9kZWNsX2RxdW90ZV92YXJuYW1lc10sCisrW19s dF9kZWNsX2ZpbHRlcihbdmFsdWVdLCBbMl0sICRAKV0pCisrCisrCisrIyBsdF9kZWNsX3Zhcm5h bWVzX3RhZ2dlZChbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi4uXSkKKysjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZmluZShbbHRfZGVj bF92YXJuYW1lc190YWdnZWRdLAorK1ttNF9hc3NlcnQoWyQjIDw9IDJdKWRubAorK18kMChtNF9x dW90ZShtNF9kZWZhdWx0KFskMV0sIFtbLCBdXSkpLAorKyAgICBtNF9pZnZhbChbJDJdLCBbWyQy XV0sIFttNF9kcXVvdGUobHRfZGVjbF90YWdfdmFybmFtZXMpXSksCisrICAgIG00X3NwbGl0KG00 X25vcm1hbGl6ZShtNF9xdW90ZShfTFRfVEFHUykpLCBbIF0pKV0pCisrbTRfZGVmaW5lKFtfbHRf ZGVjbF92YXJuYW1lc190YWdnZWRdLAorK1ttNF9pZnZhbChbJDNdLCBbbHRfY29tYmluZShbJDFd LCBbJDJdLCBbX10sICQzKV0pXSkKKysKKysKKysjIGx0X2RlY2xfYWxsX3Zhcm5hbWVzKFtTRVBB UkFUT1JdLCBbVkFSTkFNRTEuLi5dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtsdF9kZWNsX2FsbF92YXJuYW1lc10sCisr W18kMChtNF9xdW90ZShtNF9kZWZhdWx0KFskMV0sIFtbLCBdXSkpLAorKyAgICAgbTRfaWYoWyQy XSwgW10sCisrCSAgIG00X3F1b3RlKGx0X2RlY2xfdmFybmFtZXMpLAorKwltNF9xdW90ZShtNF9z aGlmdCgkQCkpKSlbXWRubAorK10pCisrbTRfZGVmaW5lKFtfbHRfZGVjbF9hbGxfdmFybmFtZXNd LAorK1tsdF9qb2luKCRALCBsdF9kZWNsX3Zhcm5hbWVzX3RhZ2dlZChbJDFdLAorKwkJCWx0X2Rl Y2xfdGFnX3Zhcm5hbWVzKFtbLCBdXSwgbTRfc2hpZnQoJEApKSkpZG5sCisrXSkKKysKKysKKysj IF9MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkUoW1ZBUk5BTUVdKQorKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBRdW90ZSBhIHZhcmlhYmxlIHZhbHVlLCBhbmQgZm9y d2FyZCBpdCB0byBgY29uZmlnLnN0YXR1cycgc28gdGhhdCBpdHMKKysjIGRlY2xhcmF0aW9uIHRo ZXJlIHdpbGwgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyBpbiBgY29uZmlndXJlJy4gIFZBUk5BTUUK KysjIG11c3QgaGF2ZSBhIHNpbmdsZSBxdW90ZSBkZWxpbWl0ZWQgdmFsdWUgZm9yIHRoaXMgdG8g d29yay4KKyttNF9kZWZpbmUoW19MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkVdLAorK1skMT0nYCRF Q0hPICIkXVskMSIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnXSkKKysKKysK KysjIF9MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkFUSU9OUworKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrIyBXZSBkZWxpbWl0IGxpYnRvb2wgY29uZmlnIHZhcmlhYmxlcyB3aXRo IHNpbmdsZSBxdW90ZXMsIHNvIHdoZW4KKysjIHdlIHdyaXRlIHRoZW0gdG8gY29uZmlnLnN0YXR1 cywgd2UgaGF2ZSB0byBiZSBzdXJlIHRvIHF1b3RlIGFsbAorKyMgZW1iZWRkZWQgc2luZ2xlIHF1 b3RlcyBwcm9wZXJseS4gIEluIGNvbmZpZ3VyZSwgdGhpcyBtYWNybyBleHBhbmRzCisrIyBlYWNo IHZhcmlhYmxlIGRlY2xhcmVkIHdpdGggX0xUX0RFQ0wgKGFuZCBfTFRfVEFHREVDTCkgaW50bzoK KysjCisrIyAgICA8dmFyPj0nYCRFQ0hPICIkPHZhcj4iIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJworK200X2RlZnVuKFtfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJBVElPTlNd LAorK1ttNF9mb3JlYWNoKFtfbHRfdmFyXSwgbTRfcXVvdGUobHRfZGVjbF9hbGxfdmFybmFtZXMp LAorKyAgICBbbTRfbihbX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSRShfbHRfdmFyKV0pXSldKQor KworKworKyMgX0xUX0xJQlRPT0xfVEFHUworKyMgLS0tLS0tLS0tLS0tLS0tLQorKyMgT3V0cHV0 IGNvbW1lbnQgYW5kIGxpc3Qgb2YgdGFncyBzdXBwb3J0ZWQgYnkgdGhlIHNjcmlwdAorK200X2Rl ZnVuKFtfTFRfTElCVE9PTF9UQUdTXSwKKytbX0xUX0ZPUk1BVF9DT01NRU5UKFtUaGUgbmFtZXMg b2YgdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzdXBwb3J0ZWQgYnkgdGhpcyBzY3JpcHRdKWRu bAorK2F2YWlsYWJsZV90YWdzPSJfTFRfVEFHUyJkbmwKKytdKQorKworKworKyMgX0xUX0xJQlRP T0xfREVDTEFSRShWQVJOQU1FLCBbVEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrIyBFeHRyYWN0IHRoZSBkaWN0aW9uYXJ5IHZhbHVlcyBmb3IgVkFSTkFNRSAo b3B0aW9uYWxseSB3aXRoIFRBRykgYW5kCisrIyBleHBhbmQgdG8gYSBjb21tZW50ZWQgc2hlbGwg dmFyaWFibGUgc2V0dGluZzoKKysjCisrIyAgICAjIFNvbWUgY29tbWVudCBhYm91dCB3aGF0IFZB UiBpcyBmb3IuCisrIyAgICB2aXNpYmxlX25hbWU9JGx0X2ludGVybmFsX25hbWUKKyttNF9kZWZp bmUoW19MVF9MSUJUT09MX0RFQ0xBUkVdLAorK1tfTFRfRk9STUFUX0NPTU1FTlQobTRfcXVvdGUo bHRfZGljdF9mZXRjaChbbHRfZGVjbF9kaWN0XSwgWyQxXSwKKysJCQkJCSAgIFtkZXNjcmlwdGlv bl0pKSlbXWRubAorK200X3B1c2hkZWYoW19saWJ0b29sX25hbWVdLAorKyAgICBtNF9xdW90ZShs dF9kaWN0X2ZldGNoKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBbbGlidG9vbF9uYW1lXSkpKVtdZG5s CisrbTRfY2FzZShtNF9xdW90ZShsdF9kaWN0X2ZldGNoKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBb dmFsdWVdKSksCisrICAgIFswXSwgW19saWJ0b29sX25hbWU9WyRdJDFdLAorKyAgICBbMV0sIFtf bGlidG9vbF9uYW1lPSRsdF9bXSQxXSwKKysgICAgWzJdLCBbX2xpYnRvb2xfbmFtZT0kbHRfW10k MV0sCisrICAgIFtfbGlidG9vbF9uYW1lPWx0X2RpY3RfZmV0Y2goW2x0X2RlY2xfZGljdF0sIFsk MV0sIFt2YWx1ZV0pXSlbXWRubAorK200X2lmdmFsKFskMl0sIFtfJDJdKVtdbTRfcG9wZGVmKFtf bGlidG9vbF9uYW1lXSlbXWRubAorK10pCisrCisrCisrIyBfTFRfTElCVE9PTF9DT05GSUdfVkFS UworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFByb2R1Y2UgY29tbWVudGVkIGRlY2xh cmF0aW9ucyBvZiBub24tdGFnZ2VkIGxpYnRvb2wgY29uZmlnIHZhcmlhYmxlcworKyMgc3VpdGFi bGUgZm9yIGluc2VydGlvbiBpbiB0aGUgTElCVE9PTCBDT05GSUcgc2VjdGlvbiBvZiB0aGUgYGxp YnRvb2wnCisrIyBzY3JpcHQuICBUYWdnZWQgbGlidG9vbCBjb25maWcgdmFyaWFibGVzIChldmVu IGZvciB0aGUgTElCVE9PTCBDT05GSUcKKysjIHNlY3Rpb24pIGFyZSBwcm9kdWNlZCBieSBfTFRf TElCVE9PTF9UQUdfVkFSUy4KKyttNF9kZWZ1bihbX0xUX0xJQlRPT0xfQ09ORklHX1ZBUlNdLAor K1ttNF9mb3JlYWNoKFtfbHRfdmFyXSwKKysgICAgbTRfcXVvdGUoX2x0X2RlY2xfZmlsdGVyKFt0 YWdnZWQ/XSwgW25vXSwgW10sIGx0X2RlY2xfdmFybmFtZXMpKSwKKysgICAgW200X24oW19MVF9M SUJUT09MX0RFQ0xBUkUoX2x0X3ZhcildKV0pXSkKKysKKysKKysjIF9MVF9MSUJUT09MX1RBR19W QVJTKFRBRykKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW19MVF9M SUJUT09MX1RBR19WQVJTXSwKKytbbTRfZm9yZWFjaChbX2x0X3Zhcl0sIG00X3F1b3RlKGx0X2Rl Y2xfdGFnX3Zhcm5hbWVzKSwKKysgICAgW200X24oW19MVF9MSUJUT09MX0RFQ0xBUkUoX2x0X3Zh ciwgWyQxXSldKV0pXSkKKysKKysKKysjIF9MVF9UQUdWQVIoVkFSTkFNRSwgW1RBR05BTUVdKQor KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtfTFRfVEFHVkFS XSwgW200X2lmdmFsKFskMl0sIFskMV8kMl0sIFskMV0pXSkKKysKKysKKysjIF9MVF9DT05GSUdf Q09NTUFORFMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFNlbmQgYWNjdW11bGF0ZWQgb3V0 cHV0IHRvICRDT05GSUdfU1RBVFVTLiAgVGhhbmtzIHRvIHRoZSBsaXN0cyBvZgorKyMgdmFyaWFi bGVzIGZvciBzaW5nbGUgYW5kIGRvdWJsZSBxdW90ZSBlc2NhcGluZyB3ZSBzYXZlZCBmcm9tIGNh bGxzCisrIyB0byBfTFRfREVDTCwgd2UgY2FuIHB1dCBxdW90ZSBlc2NhcGVkIHZhcmlhYmxlcyBk ZWNsYXJhdGlvbnMKKysjIGludG8gYGNvbmZpZy5zdGF0dXMnLCBhbmQgdGhlbiB0aGUgc2hlbGwg Y29kZSB0byBxdW90ZSBlc2NhcGUgdGhlbSBpbgorKyMgZm9yIGxvb3BzIGluIGBjb25maWcuc3Rh dHVzJy4gIEZpbmFsbHksIGFueSBhZGRpdGlvbmFsIGNvZGUgYWNjdW11bGF0ZWQKKysjIGZyb20g Y2FsbHMgdG8gX0xUX0NPTkZJR19MSUJUT09MX0lOSVQgaXMgZXhwYW5kZWQuCisrbTRfZGVmdW4o W19MVF9DT05GSUdfQ09NTUFORFNdLAorK1tBQ19QUk9WSURFX0lGRUxTRShbTFRfT1VUUFVUXSwK KysJZG5sIElmIHRoZSBsaWJ0b29sIGdlbmVyYXRpb24gY29kZSBoYXMgYmVlbiBwbGFjZWQgaW4g JENPTkZJR19MVCwKKysJZG5sIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgaXQgYWxsIG92ZXIgYWdh aW4gaW50byBjb25maWcuc3RhdHVzLAorKwlkbmwgdGhlbiB3ZSB3aWxsIGhhdmUgY29uZmlnLnN0 YXR1cyBydW4gJENPTkZJR19MVCBsYXRlciwgc28gaXQKKysJZG5sIG5lZWRzIHRvIGtub3cgd2hh dCBuYW1lIGlzIHN0b3JlZCB0aGVyZToKKysgICAgICAgIFtBQ19DT05GSUdfQ09NTUFORFMoW2xp YnRvb2xdLAorKyAgICAgICAgICAgIFskU0hFTEwgJENPTkZJR19MVCB8fCBBU19FWElUKDEpXSwg W0NPTkZJR19MVD0nJENPTkZJR19MVCddKV0sCisrICAgIGRubCBJZiB0aGUgbGlidG9vbCBnZW5l cmF0aW9uIGNvZGUgaXMgZGVzdGluZWQgZm9yIGNvbmZpZy5zdGF0dXMsCisrICAgIGRubCBleHBh bmQgdGhlIGFjY3VtdWxhdGVkIGNvbW1hbmRzIGFuZCBpbml0IGNvZGUgbm93OgorKyAgICBbQUNf Q09ORklHX0NPTU1BTkRTKFtsaWJ0b29sXSwKKysgICAgICAgIFtfTFRfT1VUUFVUX0xJQlRPT0xf Q09NTUFORFNdLCBbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTX0lOSVRdKV0pCisrXSkjX0xU X0NPTkZJR19DT01NQU5EUworKworKworKyMgSW5pdGlhbGl6ZS4KKyttNF9kZWZpbmUoW19MVF9P VVRQVVRfTElCVE9PTF9DT01NQU5EU19JTklUXSwKKytbCisrCisrIyBUaGUgSFAtVVgga3NoIGFu ZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKKysjIGlm IENEUEFUSCBpcyBzZXQuCisrKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0 IENEUEFUSAorKworK3NlZF9xdW90ZV9zdWJzdD0nJHNlZF9xdW90ZV9zdWJzdCcKKytkb3VibGVf cXVvdGVfc3Vic3Q9JyRkb3VibGVfcXVvdGVfc3Vic3QnCisrZGVsYXlfdmFyaWFibGVfc3Vic3Q9 JyRkZWxheV92YXJpYWJsZV9zdWJzdCcKKytfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJBVElPTlMK KytMVENDPSckTFRDQycKKytMVENGTEFHUz0nJExUQ0ZMQUdTJworK2NvbXBpbGVyPSckY29tcGls ZXJfREVGQVVMVCcKKysKKysjIEEgZnVuY3Rpb24gdGhhdCBpcyB1c2VkIHdoZW4gdGhlcmUgaXMg bm8gcHJpbnQgYnVpbHRpbiBvciBwcmludGYuCisrZnVuY19mYWxsYmFja19lY2hvICgpCisrewor KyAgZXZhbCAnY2F0IDw8X0xURUNIT19FT0YKKytcJFtdMQorK19MVEVDSE9fRU9GJworK30KKysK KysjIFF1b3RlIGV2YWxlZCBzdHJpbmdzLgorK2ZvciB2YXIgaW4gbHRfZGVjbF9hbGxfdmFybmFt ZXMoW1sgXAorK11dLCBsdF9kZWNsX3F1b3RlX3Zhcm5hbWVzKTsgZG8KKysgICAgY2FzZSBcYGV2 YWwgXFxcXFwkRUNITyBcXFxcIiJcXFxcXCRcJHZhciJcXFxcIlxgIGluCisrICAgICpbW1xcXFxc XFxgXFwiXFxcJF1dKikKKysgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcYFxcXCRFQ0hP IFxcIlxcXCRcJHZhclxcIiB8IFxcXCRTRUQgXFwiXFxcJHNlZF9xdW90ZV9zdWJzdFxcIlxcXGBc XFxcXFwiIgorKyAgICAgIDs7CisrICAgICopCisrICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxc IlxcXCRcJHZhclxcXFxcXCIiCisrICAgICAgOzsKKysgICAgZXNhYworK2RvbmUKKysKKysjIERv dWJsZS1xdW90ZSBkb3VibGUtZXZhbGVkIHN0cmluZ3MuCisrZm9yIHZhciBpbiBsdF9kZWNsX2Fs bF92YXJuYW1lcyhbWyBcCisrXV0sIGx0X2RlY2xfZHF1b3RlX3Zhcm5hbWVzKTsgZG8KKysgICAg Y2FzZSBcYGV2YWwgXFxcXFwkRUNITyBcXFxcIiJcXFxcXCRcJHZhciJcXFxcIlxgIGluCisrICAg ICpbW1xcXFxcXFxgXFwiXFxcJF1dKikKKysgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxc YFxcXCRFQ0hPIFxcIlxcXCRcJHZhclxcIiB8IFxcXCRTRUQgLWUgXFwiXFxcJGRvdWJsZV9xdW90 ZV9zdWJzdFxcIiAtZSBcXCJcXFwkc2VkX3F1b3RlX3N1YnN0XFwiIC1lIFxcIlxcXCRkZWxheV92 YXJpYWJsZV9zdWJzdFxcIlxcXGBcXFxcXFwiIgorKyAgICAgIDs7CisrICAgICopCisrICAgICAg ZXZhbCAibHRfXCR2YXI9XFxcXFxcIlxcXCRcJHZhclxcXFxcXCIiCisrICAgICAgOzsKKysgICAg ZXNhYworK2RvbmUKKysKKytfTFRfT1VUUFVUX0xJQlRPT0xfSU5JVAorK10pCisrCisrIyBfTFRf R0VORVJBVEVEX0ZJTEVfSU5JVChGSUxFLCBbQ09NTUVOVF0pCisrIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEdlbmVyYXRlIGEgY2hpbGQgc2NyaXB0IEZJTEUgd2l0 aCBhbGwgaW5pdGlhbGl6YXRpb24gbmVjZXNzYXJ5IHRvCisrIyByZXVzZSB0aGUgZW52aXJvbm1l bnQgbGVhcm5lZCBieSB0aGUgcGFyZW50IHNjcmlwdCwgYW5kIG1ha2UgdGhlCisrIyBmaWxlIGV4 ZWN1dGFibGUuICBJZiBDT01NRU5UIGlzIHN1cHBsaWVkLCBpdCBpcyBpbnNlcnRlZCBhZnRlciB0 aGUKKysjIGAjIScgc2VxdWVuY2UgYnV0IGJlZm9yZSBpbml0aWFsaXphdGlvbiB0ZXh0IGJlZ2lu cy4gIEFmdGVyIHRoaXMKKysjIG1hY3JvLCBhZGRpdGlvbmFsIHRleHQgY2FuIGJlIGFwcGVuZGVk IHRvIEZJTEUgdG8gZm9ybSB0aGUgYm9keSBvZgorKyMgdGhlIGNoaWxkIHNjcmlwdC4gIFRoZSBt YWNybyBlbmRzIHdpdGggbm9uLXplcm8gc3RhdHVzIGlmIHRoZQorKyMgZmlsZSBjb3VsZCBub3Qg YmUgZnVsbHkgd3JpdHRlbiAoc3VjaCBhcyBpZiB0aGUgZGlzayBpcyBmdWxsKS4KKyttNF9pZmRl ZihbQVNfSU5JVF9HRU5FUkFURURdLAorK1ttNF9kZWZ1bihbX0xUX0dFTkVSQVRFRF9GSUxFX0lO SVRdLFtBU19JTklUX0dFTkVSQVRFRCgkQCldKV0sCisrW200X2RlZnVuKFtfTFRfR0VORVJBVEVE X0ZJTEVfSU5JVF0sCisrW200X3JlcXVpcmUoW0FTX1BSRVBBUkVdKV1kbmwKKytbbTRfcHVzaGRl ZihbQVNfTUVTU0FHRV9MT0dfRkRdKV1kbmwKKytbbHRfd3JpdGVfZmFpbD0wCisrY2F0ID4kMSA8 PF9BU0VPRiB8fCBsdF93cml0ZV9mYWlsPTEKKysjISAkU0hFTEwKKysjIEdlbmVyYXRlZCBieSAk YXNfbWUuCisrJDIKKytTSEVMTD1cJHtDT05GSUdfU0hFTEwtJFNIRUxMfQorK2V4cG9ydCBTSEVM TAorK19BU0VPRgorK2NhdCA+PiQxIDw8XF9BU0VPRiB8fCBsdF93cml0ZV9mYWlsPTEKKytBU19T SEVMTF9TQU5JVElaRQorK19BU19QUkVQQVJFCisrZXhlYyBBU19NRVNTQUdFX0ZEPiYxCisrX0FT RU9GCisrdGVzdCAkbHRfd3JpdGVfZmFpbCA9IDAgJiYgY2htb2QgK3ggJDFbXWRubAorK200X3Bv cGRlZihbQVNfTUVTU0FHRV9MT0dfRkRdKV0pXSkjIF9MVF9HRU5FUkFURURfRklMRV9JTklUCisr CisrIyBMVF9PVVRQVVQKKysjIC0tLS0tLS0tLQorKyMgVGhpcyBtYWNybyBhbGxvd3MgZWFybHkg Z2VuZXJhdGlvbiBvZiB0aGUgbGlidG9vbCBzY3JpcHQgKGJlZm9yZQorKyMgQUNfT1VUUFVUIGlz IGNhbGxlZCksIGluY2FzZSBpdCBpcyB1c2VkIGluIGNvbmZpZ3VyZSBmb3IgY29tcGlsYXRpb24K KysjIHRlc3RzLgorK0FDX0RFRlVOKFtMVF9PVVRQVVRdLAorK1s6ICR7Q09ORklHX0xUPS4vY29u ZmlnLmx0fQorK0FDX01TR19OT1RJQ0UoW2NyZWF0aW5nICRDT05GSUdfTFRdKQorK19MVF9HRU5F UkFURURfRklMRV9JTklUKFsiJENPTkZJR19MVCJdLAorK1sjIFJ1biB0aGlzIGZpbGUgdG8gcmVj cmVhdGUgYSBsaWJ0b29sIHN0dWIgd2l0aCB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLl0pCisr CisrY2F0ID4+IiRDT05GSUdfTFQiIDw8XF9MVEVPRgorK2x0X2NsX3NpbGVudD1mYWxzZQorK2V4 ZWMgQVNfTUVTU0FHRV9MT0dfRkQ+PmNvbmZpZy5sb2cKKyt7CisrICBlY2hvCisrICBBU19CT1go W1J1bm5pbmcgJGFzX21lLl0pCisrfSA+JkFTX01FU1NBR0VfTE9HX0ZECisrCisrbHRfY2xfaGVs cD0iXAorK1xgJGFzX21lJyBjcmVhdGVzIGEgbG9jYWwgbGlidG9vbCBzdHViIGZyb20gdGhlIGN1 cnJlbnQgY29uZmlndXJhdGlvbiwKKytmb3IgdXNlIGluIGZ1cnRoZXIgY29uZmlndXJlIHRpbWUg dGVzdHMgYmVmb3JlIHRoZSByZWFsIGxpYnRvb2wgaXMKKytnZW5lcmF0ZWQuCisrCisrVXNhZ2U6 ICRbMF0gW1tPUFRJT05TXV0KKysKKysgIC1oLCAtLWhlbHAgICAgICBwcmludCB0aGlzIGhlbHAs IHRoZW4gZXhpdAorKyAgLVYsIC0tdmVyc2lvbiAgIHByaW50IHZlcnNpb24gbnVtYmVyLCB0aGVu IGV4aXQKKysgIC1xLCAtLXF1aWV0ICAgICBkbyBub3QgcHJpbnQgcHJvZ3Jlc3MgbWVzc2FnZXMK KysgIC1kLCAtLWRlYnVnICAgICBkb24ndCByZW1vdmUgdGVtcG9yYXJ5IGZpbGVzCisrCisrUmVw b3J0IGJ1Z3MgdG8gPGJ1Zy1saWJ0b29sQGdudS5vcmc+LiIKKysKKytsdF9jbF92ZXJzaW9uPSJc CisrbTRfaWZzZXQoW0FDX1BBQ0tBR0VfTkFNRV0sIFtBQ19QQUNLQUdFX05BTUUgXSljb25maWcu bHRbXWRubAorK200X2lmc2V0KFtBQ19QQUNLQUdFX1ZFUlNJT05dLCBbIEFDX1BBQ0tBR0VfVkVS U0lPTl0pCisrY29uZmlndXJlZCBieSAkWzBdLCBnZW5lcmF0ZWQgYnkgbTRfUEFDS0FHRV9TVFJJ TkcuCisrCisrQ29weXJpZ2h0IChDKSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorK1RoaXMgY29uZmlnLmx0IHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uCisrZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc2lvbiB0byBjb3B5LCBkaXN0 cmlidXRlIGFuZCBtb2RpZnkgaXQuIgorKworK3doaWxlIHRlc3QgJFsjXSAhPSAwCisrZG8KKysg IGNhc2UgJFsxXSBpbgorKyAgICAtLXZlcnNpb24gfCAtLXYqIHwgLVYgKQorKyAgICAgIGVjaG8g IiRsdF9jbF92ZXJzaW9uIjsgZXhpdCAwIDs7CisrICAgIC0taGVscCB8IC0taCogfCAtaCApCisr ICAgICAgZWNobyAiJGx0X2NsX2hlbHAiOyBleGl0IDAgOzsKKysgICAgLS1kZWJ1ZyB8IC0tZCog fCAtZCApCisrICAgICAgZGVidWc9OiA7OworKyAgICAtLXF1aWV0IHwgLS1xKiB8IC0tc2lsZW50 IHwgLS1zKiB8IC1xICkKKysgICAgICBsdF9jbF9zaWxlbnQ9OiA7OworKworKyAgICAtKikgQUNf TVNHX0VSUk9SKFt1bnJlY29nbml6ZWQgb3B0aW9uOiAkWzFdCisrVHJ5IFxgJFswXSAtLWhlbHAn IGZvciBtb3JlIGluZm9ybWF0aW9uLl0pIDs7CisrCisrICAgICopIEFDX01TR19FUlJPUihbdW5y ZWNvZ25pemVkIGFyZ3VtZW50OiAkWzFdCisrVHJ5IFxgJFswXSAtLWhlbHAnIGZvciBtb3JlIGlu Zm9ybWF0aW9uLl0pIDs7CisrICBlc2FjCisrICBzaGlmdAorK2RvbmUKKysKKytpZiAkbHRfY2xf c2lsZW50OyB0aGVuCisrICBleGVjIEFTX01FU1NBR0VfRkQ+L2Rldi9udWxsCisrZmkKKytfTFRF T0YKKysKKytjYXQgPj4iJENPTkZJR19MVCIgPDxfTFRFT0YKKytfTFRfT1VUUFVUX0xJQlRPT0xf Q09NTUFORFNfSU5JVAorK19MVEVPRgorKworK2NhdCA+PiIkQ09ORklHX0xUIiA8PFxfTFRFT0YK KytBQ19NU0dfTk9USUNFKFtjcmVhdGluZyAkb2ZpbGVdKQorK19MVF9PVVRQVVRfTElCVE9PTF9D T01NQU5EUworK0FTX0VYSVQoMCkKKytfTFRFT0YKKytjaG1vZCAreCAiJENPTkZJR19MVCIKKysK KysjIGNvbmZpZ3VyZSBpcyB3cml0aW5nIHRvIGNvbmZpZy5sb2csIGJ1dCBjb25maWcubHQgZG9l cyBpdHMgb3duIHJlZGlyZWN0aW9uLAorKyMgYXBwZW5kaW5nIHRvIGNvbmZpZy5sb2csIHdoaWNo IGZhaWxzIG9uIERPUywgYXMgY29uZmlnLmxvZyBpcyBzdGlsbCBrZXB0CisrIyBvcGVuIGJ5IGNv bmZpZ3VyZS4gIEhlcmUgd2UgZXhlYyB0aGUgRkQgdG8gL2Rldi9udWxsLCBlZmZlY3RpdmVseSBj bG9zaW5nCisrIyBjb25maWcubG9nLCBzbyBpdCBjYW4gYmUgcHJvcGVybHkgKHJlKW9wZW5lZCBh bmQgYXBwZW5kZWQgdG8gYnkgY29uZmlnLmx0LgorK2x0X2NsX3N1Y2Nlc3M9OgorK3Rlc3QgIiRz aWxlbnQiID0geWVzICYmCisrICBsdF9jb25maWdfbHRfYXJncz0iJGx0X2NvbmZpZ19sdF9hcmdz IC0tcXVpZXQiCisrZXhlYyBBU19NRVNTQUdFX0xPR19GRD4vZGV2L251bGwKKyskU0hFTEwgIiRD T05GSUdfTFQiICRsdF9jb25maWdfbHRfYXJncyB8fCBsdF9jbF9zdWNjZXNzPWZhbHNlCisrZXhl YyBBU19NRVNTQUdFX0xPR19GRD4+Y29uZmlnLmxvZworKyRsdF9jbF9zdWNjZXNzIHx8IEFTX0VY SVQoMSkKKytdKSMgTFRfT1VUUFVUCisrCisrCisrIyBfTFRfQ09ORklHKFRBRykKKysjIC0tLS0t LS0tLS0tLS0tLQorKyMgSWYgVEFHIGlzIHRoZSBidWlsdC1pbiB0YWcsIGNyZWF0ZSBhbiBpbml0 aWFsIGxpYnRvb2wgc2NyaXB0IHdpdGggYQorKyMgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZyb20g dGhlIHVudGFnZ2VkIGNvbmZpZyB2YXJzLiAgT3RoZXJ3aXNlIGFkZCBjb2RlCisrIyB0byBjb25m aWcuc3RhdHVzIGZvciBhcHBlbmRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gbmFtZWQgYnkgVEFHIGZy b20gdGhlCisrIyBtYXRjaGluZyB0YWdnZWQgY29uZmlnIHZhcnMuCisrbTRfZGVmdW4oW19MVF9D T05GSUddLAorK1ttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKKytfTFRf Q09ORklHX1NBVkVfQ09NTUFORFMoWworKyAgbTRfZGVmaW5lKFtfTFRfVEFHXSwgbTRfaWYoWyQx XSwgW10sIFtDXSwgWyQxXSkpZG5sCisrICBtNF9pZihfTFRfVEFHLCBbQ10sIFsKKysgICAgIyBT ZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFs bG93IG91cgorKyAgICAjIGNvbW1hbmRzIHRocm91Z2ggd2l0aG91dCByZW1vdmFsIG9mIFwgZXNj YXBlcy4KKysgICAgaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4KKysgICAg ICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorKyAgICBmaQorKworKyAgICBjZmdmaWxlPSIke29maWxl fVQiCisrICAgIHRyYXAgIiRSTSBcIiRjZmdmaWxlXCI7IGV4aXQgMSIgMSAyIDE1CisrICAgICRS TSAiJGNmZ2ZpbGUiCisrCisrICAgIGNhdCA8PF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorKyMhICRT SEVMTAorKworKyMgYCRFQ0hPICIkb2ZpbGUiIHwgc2VkICdzJV4uKi8lJSdgIC0gUHJvdmlkZSBn ZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCisrIyBHZW5lcmF0 ZWQgYXV0b21hdGljYWxseSBieSAkYXNfbWUgKCRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04K KysjIExpYnRvb2wgd2FzIGNvbmZpZ3VyZWQgb24gaG9zdCBgKGhvc3RuYW1lIHx8IHVuYW1lIC1u KSAyPi9kZXYvbnVsbCB8IHNlZCAxcWA6CisrIyBOT1RFOiBDaGFuZ2VzIG1hZGUgdG8gdGhpcyBm aWxlIHdpbGwgYmUgbG9zdDogbG9vayBhdCBsdG1haW4uc2guCisrIworK19MVF9DT1BZSU5HCisr X0xUX0xJQlRPT0xfVEFHUworKworKyMgIyMjIEJFR0lOIExJQlRPT0wgQ09ORklHCisrX0xUX0xJ QlRPT0xfQ09ORklHX1ZBUlMKKytfTFRfTElCVE9PTF9UQUdfVkFSUworKyMgIyMjIEVORCBMSUJU T09MIENPTkZJRworKworK19MVF9FT0YKKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGFpeDMq KQorKyAgICBjYXQgPDxcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisrIyBBSVggc29tZXRpbWVzIGhh cyBwcm9ibGVtcyB3aXRoIHRoZSBHQ0MgY29sbGVjdDIgcHJvZ3JhbS4gIEZvciBzb21lCisrIyBy ZWFzb24sIGlmIHdlIHNldCB0aGUgQ09MTEVDVF9OQU1FUyBlbnZpcm9ubWVudCB2YXJpYWJsZSwg dGhlIHByb2JsZW1zCisrIyB2YW5pc2ggaW4gYSBwdWZmIG9mIHNtb2tlLgorK2lmIHRlc3QgIlgk e0NPTExFQ1RfTkFNRVMrc2V0fSIgIT0gWHNldDsgdGhlbgorKyAgQ09MTEVDVF9OQU1FUz0KKysg IGV4cG9ydCBDT0xMRUNUX05BTUVTCisrZmkKKytfTFRfRU9GCisrICAgIDs7CisrICBlc2FjCisr CisrICBfTFRfUFJPR19MVE1BSU4KKysKKysgICMgV2UgdXNlIHNlZCBpbnN0ZWFkIG9mIGNhdCBi ZWNhdXNlIGJhc2ggb24gREpHUFAgZ2V0cyBjb25mdXNlZCBpZgorKyAgIyBpZiBmaW5kcyBtaXhl ZCBDUi9MRiBhbmQgTEYtb25seSBsaW5lcy4gIFNpbmNlIHNlZCBvcGVyYXRlcyBpbgorKyAgIyB0 ZXh0IG1vZGUsIGl0IHByb3Blcmx5IGNvbnZlcnRzIGxpbmVzIHRvIENSL0xGLiAgVGhpcyBiYXNo IHByb2JsZW0KKysgICMgaXMgcmVwb3J0ZWRseSBmaXhlZCwgYnV0IHdoeSBub3QgcnVuIG9uIG9s ZCB2ZXJzaW9ucyB0b28/CisrICBzZWQgJy9eIyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGlu c2VydGVkIGhlcmUvcScgIiRsdG1haW4iID4+ICIkY2ZnZmlsZSIgXAorKyAgICB8fCAocm0gLWYg IiRjZmdmaWxlIjsgZXhpdCAxKQorKworKyAgX0xUX1BST0dfWFNJX1NIRUxMRk5TCisrCisrICBz ZWQgLW4gJy9eIyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGluc2VydGVkIGhlcmUvLCRwJyAi JGx0bWFpbiIgPj4gIiRjZmdmaWxlIiBcCisrICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiOyBleGl0 IDEpCisrCisrICBtdiAtZiAiJGNmZ2ZpbGUiICIkb2ZpbGUiIHx8CisrICAgIChybSAtZiAiJG9m aWxlIiAmJiBjcCAiJGNmZ2ZpbGUiICIkb2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZSIpCisrICBj aG1vZCAreCAiJG9maWxlIgorK10sCisrW2NhdCA8PF9MVF9FT0YgPj4gIiRvZmlsZSIKKysKKytk bmwgVW5mb3J0dW5hdGVseSB3ZSBoYXZlIHRvIHVzZSAkMSBoZXJlLCBzaW5jZSBfTFRfVEFHIGlz IG5vdCBleHBhbmRlZAorK2RubCBpbiBhIGNvbW1lbnQgKGllIGFmdGVyIGEgIykuCisrIyAjIyMg QkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkMQorK19MVF9MSUJUT09MX1RBR19WQVJTKF9MVF9U QUcpCisrIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogJDEKKytfTFRfRU9GCisrXSlkbmwg L200X2lmCisrXSwKKytbbTRfaWYoWyQxXSwgW10sIFsKKysgICAgUEFDS0FHRT0nJFBBQ0tBR0Un CisrICAgIFZFUlNJT049JyRWRVJTSU9OJworKyAgICBUSU1FU1RBTVA9JyRUSU1FU1RBTVAnCisr ICAgIFJNPSckUk0nCisrICAgIG9maWxlPSckb2ZpbGUnXSwgW10pCisrXSlkbmwgL19MVF9DT05G SUdfU0FWRV9DT01NQU5EUworK10pIyBfTFRfQ09ORklHCisrCisrCisrIyBMVF9TVVBQT1JURURf VEFHKFRBRykKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgVHJhY2UgdGhpcyBtYWNybyB0 byBkaXNjb3ZlciB3aGF0IHRhZ3MgYXJlIHN1cHBvcnRlZCBieSB0aGUgbGlidG9vbAorKyMgLS10 YWcgb3B0aW9uLCB1c2luZzoKKysjICAgIGF1dG9jb25mIC0tdHJhY2UgJ0xUX1NVUFBPUlRFRF9U QUc6JDEnCisrQUNfREVGVU4oW0xUX1NVUFBPUlRFRF9UQUddLCBbXSkKKysKKysKKysjIEMgc3Vw cG9ydCBpcyBidWlsdC1pbiBmb3Igbm93CisrbTRfZGVmaW5lKFtfTFRfTEFOR19DX2VuYWJsZWRd LCBbXSkKKyttNF9kZWZpbmUoW19MVF9UQUdTXSwgW10pCisrCisrCisrIyBMVF9MQU5HKExBTkcp CisrIyAtLS0tLS0tLS0tLS0tCisrIyBFbmFibGUgbGlidG9vbCBzdXBwb3J0IGZvciB0aGUgZ2l2 ZW4gbGFuZ3VhZ2UgaWYgbm90IGFscmVhZHkgZW5hYmxlZC4KKytBQ19ERUZVTihbTFRfTEFOR10s CisrW0FDX0JFRk9SRShbJDBdLCBbTFRfT1VUUFVUXSlkbmwKKyttNF9jYXNlKFskMV0sCisrICBb Q10sCQkJW19MVF9MQU5HKEMpXSwKKysgIFtDKytdLAkJW19MVF9MQU5HKENYWCldLAorKyAgW0ph dmFdLAkJW19MVF9MQU5HKEdDSildLAorKyAgW0ZvcnRyYW4gNzddLAkJW19MVF9MQU5HKEY3Nyld LAorKyAgW0ZvcnRyYW5dLAkJW19MVF9MQU5HKEZDKV0sCisrICBbV2luZG93cyBSZXNvdXJjZV0s CVtfTFRfTEFORyhSQyldLAorKyAgW200X2lmZGVmKFtfTFRfTEFOR19dJDFbX0NPTkZJR10sCisr ICAgIFtfTFRfTEFORygkMSldLAorKyAgICBbbTRfZmF0YWwoWyQwOiB1bnN1cHBvcnRlZCBsYW5n dWFnZTogIiQxIl0pXSldKWRubAorK10pIyBMVF9MQU5HCisrCisrCisrIyBfTFRfTEFORyhMQU5H TkFNRSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfTEFOR10sCisrW200 X2lmZGVmKFtfTFRfTEFOR19dJDFbX2VuYWJsZWRdLCBbXSwKKysgIFtMVF9TVVBQT1JURURfVEFH KFskMV0pZG5sCisrICBtNF9hcHBlbmQoW19MVF9UQUdTXSwgWyQxIF0pZG5sCisrICBtNF9kZWZp bmUoW19MVF9MQU5HX10kMVtfZW5hYmxlZF0sIFtdKWRubAorKyAgX0xUX0xBTkdfJDFfQ09ORklH KCQxKV0pZG5sCisrXSkjIF9MVF9MQU5HCisrCisrCisrIyBfTFRfTEFOR19ERUZBVUxUX0NPTkZJ RworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZ1bihbX0xUX0xBTkdfREVGQVVM VF9DT05GSUddLAorK1tBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19DWFhdLAorKyAgW0xUX0xB TkcoQ1hYKV0sCisrICBbbTRfZGVmaW5lKFtBQ19QUk9HX0NYWF0sIGRlZm4oW0FDX1BST0dfQ1hY XSlbTFRfTEFORyhDWFgpXSldKQorKworK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0Y3N10s CisrICBbTFRfTEFORyhGNzcpXSwKKysgIFttNF9kZWZpbmUoW0FDX1BST0dfRjc3XSwgZGVmbihb QUNfUFJPR19GNzddKVtMVF9MQU5HKEY3NyldKV0pCisrCisrQUNfUFJPVklERV9JRkVMU0UoW0FD X1BST0dfRkNdLAorKyAgW0xUX0xBTkcoRkMpXSwKKysgIFttNF9kZWZpbmUoW0FDX1BST0dfRkNd LCBkZWZuKFtBQ19QUk9HX0ZDXSlbTFRfTEFORyhGQyldKV0pCisrCisrZG5sIFRoZSBjYWxsIHRv IFtBXVtNX1BST0dfR0NKXSBpcyBxdW90ZWQgbGlrZSB0aGF0IHRvIHN0b3AgYWNsb2NhbAorK2Ru bCBwdWxsaW5nIHRoaW5ncyBpbiBuZWVkbGVzc2x5LgorK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19Q Uk9HX0dDSl0sCisrICBbTFRfTEFORyhHQ0opXSwKKysgIFtBQ19QUk9WSURFX0lGRUxTRShbQV1b TV9QUk9HX0dDSl0sCisrICAgIFtMVF9MQU5HKEdDSildLAorKyAgICBbQUNfUFJPVklERV9JRkVM U0UoW0xUX1BST0dfR0NKXSwKKysgICAgICBbTFRfTEFORyhHQ0opXSwKKysgICAgICBbbTRfaWZk ZWYoW0FDX1BST0dfR0NKXSwKKysJW200X2RlZmluZShbQUNfUFJPR19HQ0pdLCBkZWZuKFtBQ19Q Uk9HX0dDSl0pW0xUX0xBTkcoR0NKKV0pXSkKKysgICAgICAgbTRfaWZkZWYoW0FdW01fUFJPR19H Q0pdLAorKwlbbTRfZGVmaW5lKFtBXVtNX1BST0dfR0NKXSwgZGVmbihbQV1bTV9QUk9HX0dDSl0p W0xUX0xBTkcoR0NKKV0pXSkKKysgICAgICAgbTRfaWZkZWYoW0xUX1BST0dfR0NKXSwKKysJW200 X2RlZmluZShbTFRfUFJPR19HQ0pdLCBkZWZuKFtMVF9QUk9HX0dDSl0pW0xUX0xBTkcoR0NKKV0p XSldKV0pXSkKKysKKytBQ19QUk9WSURFX0lGRUxTRShbTFRfUFJPR19SQ10sCisrICBbTFRfTEFO RyhSQyldLAorKyAgW200X2RlZmluZShbTFRfUFJPR19SQ10sIGRlZm4oW0xUX1BST0dfUkNdKVtM VF9MQU5HKFJDKV0pXSkKKytdKSMgX0xUX0xBTkdfREVGQVVMVF9DT05GSUcKKysKKysjIE9ic29s ZXRlIG1hY3JvczoKKytBVV9ERUZVTihbQUNfTElCVE9PTF9DWFhdLCBbTFRfTEFORyhDKyspXSkK KytBVV9ERUZVTihbQUNfTElCVE9PTF9GNzddLCBbTFRfTEFORyhGb3J0cmFuIDc3KV0pCisrQVVf REVGVU4oW0FDX0xJQlRPT0xfRkNdLCBbTFRfTEFORyhGb3J0cmFuKV0pCisrQVVfREVGVU4oW0FD X0xJQlRPT0xfR0NKXSwgW0xUX0xBTkcoSmF2YSldKQorK0FVX0RFRlVOKFtBQ19MSUJUT09MX1JD XSwgW0xUX0xBTkcoV2luZG93cyBSZXNvdXJjZSldKQorK2RubCBhY2xvY2FsLTEuNCBiYWNrd2Fy ZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfQ1hYXSwgW10pCisr ZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0Y3N10sIFtdKQorK2RubCBBQ19ERUZVTihbQUNfTElC VE9PTF9GQ10sIFtdKQorK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9HQ0pdLCBbXSkKKytkbmwg QUNfREVGVU4oW0FDX0xJQlRPT0xfUkNdLCBbXSkKKysKKysKKysjIF9MVF9UQUdfQ09NUElMRVIK KysjIC0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZ1bihbX0xUX1RBR19DT01QSUxFUl0sCisrW0FD X1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAorKworK19MVF9ERUNMKFtMVENDXSwgW0NDXSwgWzFd LCBbQSBDIGNvbXBpbGVyXSlkbmwKKytfTFRfREVDTChbTFRDRkxBR1NdLCBbQ0ZMQUdTXSwgWzFd LCBbTFRDQyBjb21waWxlciBmbGFnc10pZG5sCisrX0xUX1RBR0RFQ0woW0NDXSwgW2NvbXBpbGVy XSwgWzFdLCBbQSBsYW5ndWFnZSBzcGVjaWZpYyBjb21waWxlcl0pZG5sCisrX0xUX1RBR0RFQ0wo W3dpdGhfZ2NjXSwgW0dDQ10sIFswXSwgW0lzIHRoZSBjb21waWxlciB0aGUgR05VIGNvbXBpbGVy P10pZG5sCisrCisrIyBJZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVjaWZpZWQsIHVzZSBDQy4KKytM VENDPSR7TFRDQy0iJENDIn0KKysKKysjIElmIG5vIEMgY29tcGlsZXIgZmxhZ3Mgd2VyZSBzcGVj aWZpZWQsIHVzZSBDRkxBR1MuCisrTFRDRkxBR1M9JHtMVENGTEFHUy0iJENGTEFHUyJ9CisrCisr IyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytjb21waWxl cj0kQ0MKKytdKSMgX0xUX1RBR19DT01QSUxFUgorKworKworKyMgX0xUX0NPTVBJTEVSX0JPSUxF UlBMQVRFCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIGZvciBjb21waWxl ciBib2lsZXJwbGF0ZSBvdXRwdXQgb3Igd2FybmluZ3Mgd2l0aAorKyMgdGhlIHNpbXBsZSBjb21w aWxlciB0ZXN0IGNvZGUuCisrbTRfZGVmdW4oW19MVF9DT01QSUxFUl9CT0lMRVJQTEFURV0sCisr W200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCisrYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNf b2JqZXh0CisrZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRh Y19leHQKKytldmFsICIkYWNfY29tcGlsZSIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7 IC9eICorL2QnID5jb25mdGVzdC5lcnIKKytfbHRfY29tcGlsZXJfYm9pbGVycGxhdGU9YGNhdCBj b25mdGVzdC5lcnJgCisrJFJNIGNvbmZ0ZXN0KgorK10pIyBfTFRfQ09NUElMRVJfQk9JTEVSUExB VEUKKysKKysKKysjIF9MVF9MSU5LRVJfQk9JTEVSUExBVEUKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysjIENoZWNrIGZvciBsaW5rZXIgYm9pbGVycGxhdGUgb3V0cHV0IG9yIHdhcm5pbmdz IHdpdGgKKysjIHRoZSBzaW1wbGUgbGluayB0ZXN0IGNvZGUuCisrbTRfZGVmdW4oW19MVF9MSU5L RVJfQk9JTEVSUExBVEVdLAorK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAorK2FjX291 dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAorK2VjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2Nv ZGUiID5jb25mdGVzdC4kYWNfZXh0CisrZXZhbCAiJGFjX2xpbmsiIDI+JjEgPi9kZXYvbnVsbCB8 ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCisrX2x0X2xpbmtlcl9ib2lsZXJw bGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKyskUk0gLXIgY29uZnRlc3QqCisrXSkjIF9MVF9MSU5L RVJfQk9JTEVSUExBVEUKKysKKysjIF9MVF9SRVFVSVJFRF9EQVJXSU5fQ0hFQ0tTCisrIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmdW5fb25jZShbX0xUX1JFUVVJUkVEX0RBUldJ Tl9DSEVDS1NdLFsKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgcmhhcHNvZHkqIHwgZGFyd2lu KikKKysgICAgQUNfQ0hFQ0tfVE9PTChbRFNZTVVUSUxdLCBbZHN5bXV0aWxdLCBbOl0pCisrICAg IEFDX0NIRUNLX1RPT0woW05NRURJVF0sIFtubWVkaXRdLCBbOl0pCisrICAgIEFDX0NIRUNLX1RP T0woW0xJUE9dLCBbbGlwb10sIFs6XSkKKysgICAgQUNfQ0hFQ0tfVE9PTChbT1RPT0xdLCBbb3Rv b2xdLCBbOl0pCisrICAgIEFDX0NIRUNLX1RPT0woW09UT09MNjRdLCBbb3Rvb2w2NF0sIFs6XSkK KysgICAgX0xUX0RFQ0woW10sIFtEU1lNVVRJTF0sIFsxXSwKKysgICAgICBbVG9vbCB0byBtYW5p cHVsYXRlIGFyY2hpdmVkIERXQVJGIGRlYnVnIHN5bWJvbCBmaWxlcyBvbiBNYWMgT1MgWF0pCisr ICAgIF9MVF9ERUNMKFtdLCBbTk1FRElUXSwgWzFdLAorKyAgICAgIFtUb29sIHRvIGNoYW5nZSBn bG9iYWwgdG8gbG9jYWwgc3ltYm9scyBvbiBNYWMgT1MgWF0pCisrICAgIF9MVF9ERUNMKFtdLCBb TElQT10sIFsxXSwKKysgICAgICBbVG9vbCB0byBtYW5pcHVsYXRlIGZhdCBvYmplY3RzIGFuZCBh cmNoaXZlcyBvbiBNYWMgT1MgWF0pCisrICAgIF9MVF9ERUNMKFtdLCBbT1RPT0xdLCBbMV0sCisr ICAgICAgW2xkZC9yZWFkZWxmIGxpa2UgdG9vbCBmb3IgTWFjaC1PIGJpbmFyaWVzIG9uIE1hYyBP UyBYXSkKKysgICAgX0xUX0RFQ0woW10sIFtPVE9PTDY0XSwgWzFdLAorKyAgICAgIFtsZGQvcmVh ZGVsZiBsaWtlIHRvb2wgZm9yIDY0IGJpdCBNYWNoLU8gYmluYXJpZXMgb24gTWFjIE9TIFggMTAu NF0pCisrCisrICAgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgLXNpbmdsZV9tb2R1bGUgbGlua2VyIGZs YWddLFtsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kXSwKKysgICAgICBbbHRfY3ZfYXBwbGVfY2Nf c2luZ2xlX21vZD1ubworKyAgICAgIGlmIHRlc3QgLXogIiR7TFRfTVVMVElfTU9EVUxFfSI7IHRo ZW4KKysJIyBCeSBkZWZhdWx0IHdlIHdpbGwgYWRkIHRoZSAtc2luZ2xlX21vZHVsZSBmbGFnLiBZ b3UgY2FuIG92ZXJyaWRlCisrCSMgYnkgZWl0aGVyIHNldHRpbmcgdGhlIGVudmlyb25tZW50IHZh cmlhYmxlIExUX01VTFRJX01PRFVMRQorKwkjIG5vbi1lbXB0eSBhdCBjb25maWd1cmUgdGltZSwg b3IgYnkgYWRkaW5nIC1tdWx0aV9tb2R1bGUgdG8gdGhlCisrCSMgbGluayBmbGFncy4KKysJcm0g LXJmIGxpYmNvbmZ0ZXN0LmR5bGliKgorKwllY2hvICJpbnQgZm9vKHZvaWQpe3JldHVybiAxO30i ID4gY29uZnRlc3QuYworKwllY2hvICIkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29u ZnRlc3QuZHlsaWIgXAorKy1keW5hbWljbGliIC1XbCwtc2luZ2xlX21vZHVsZSBjb25mdGVzdC5j IiA+JkFTX01FU1NBR0VfTE9HX0ZECisrCSRMVENDICRMVENGTEFHUyAkTERGTEFHUyAtbyBsaWJj b25mdGVzdC5keWxpYiBcCisrCSAgLWR5bmFtaWNsaWIgLVdsLC1zaW5nbGVfbW9kdWxlIGNvbmZ0 ZXN0LmMgMj5jb25mdGVzdC5lcnIKKysgICAgICAgIF9sdF9yZXN1bHQ9JD8KKysJaWYgdGVzdCAt ZiBsaWJjb25mdGVzdC5keWxpYiAmJiB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyICYmIHRlc3QgJF9s dF9yZXN1bHQgPSAwOyB0aGVuCisrCSAgbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZD15ZXMKKysJ ZWxzZQorKwkgIGNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAorKwlmaQorKwly bSAtcmYgbGliY29uZnRlc3QuZHlsaWIqCisrCXJtIC1mIGNvbmZ0ZXN0LioKKysgICAgICBmaV0p CisrICAgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBsaW5rZXIg ZmxhZ10sCisrICAgICAgW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdF0sCisrICAgICAg W2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD1ubworKyAgICAgIHNhdmVfTERGTEFHUz0k TERGTEFHUworKyAgICAgIGVjaG8gIl9tYWluIiA+IGNvbmZ0ZXN0LnN5bQorKyAgICAgIExERkxB R1M9IiRMREZMQUdTIC1XbCwtZXhwb3J0ZWRfc3ltYm9sc19saXN0LGNvbmZ0ZXN0LnN5bSIKKysg ICAgICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtdLFtdKV0sCisrCVtsdF9jdl9s ZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9eWVzXSwKKysJW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJv bHNfbGlzdD1ub10pCisrCUxERkxBR1M9IiRzYXZlX0xERkxBR1MiCisrICAgIF0pCisrICAgIEFD X0NBQ0hFX0NIRUNLKFtmb3IgLWZvcmNlX2xvYWQgbGlua2VyIGZsYWddLFtsdF9jdl9sZF9mb3Jj ZV9sb2FkXSwKKysgICAgICBbbHRfY3ZfbGRfZm9yY2VfbG9hZD1ubworKyAgICAgIGNhdCA+IGNv bmZ0ZXN0LmMgPDwgX0xUX0VPRgorK2ludCBmb3JjZWRfbG9hZGVkKCkgeyByZXR1cm4gMjt9Cisr X0xUX0VPRgorKyAgICAgIGVjaG8gIiRMVENDICRMVENGTEFHUyAtYyAtbyBjb25mdGVzdC5vIGNv bmZ0ZXN0LmMiID4mQVNfTUVTU0FHRV9MT0dfRkQKKysgICAgICAkTFRDQyAkTFRDRkxBR1MgLWMg LW8gY29uZnRlc3QubyBjb25mdGVzdC5jIDI+JkFTX01FU1NBR0VfTE9HX0ZECisrICAgICAgZWNo byAiJEFSIGNydSBsaWJjb25mdGVzdC5hIGNvbmZ0ZXN0Lm8iID4mQVNfTUVTU0FHRV9MT0dfRkQK KysgICAgICAkQVIgY3J1IGxpYmNvbmZ0ZXN0LmEgY29uZnRlc3QubyAyPiZBU19NRVNTQUdFX0xP R19GRAorKyAgICAgIGVjaG8gIiRSQU5MSUIgbGliY29uZnRlc3QuYSIgPiZBU19NRVNTQUdFX0xP R19GRAorKyAgICAgICRSQU5MSUIgbGliY29uZnRlc3QuYSAyPiZBU19NRVNTQUdFX0xPR19GRAor KyAgICAgIGNhdCA+IGNvbmZ0ZXN0LmMgPDwgX0xUX0VPRgorK2ludCBtYWluKCkgeyByZXR1cm4g MDt9CisrX0xUX0VPRgorKyAgICAgIGVjaG8gIiRMVENDICRMVENGTEFHUyAkTERGTEFHUyAtbyBj b25mdGVzdCBjb25mdGVzdC5jIC1XbCwtZm9yY2VfbG9hZCwuL2xpYmNvbmZ0ZXN0LmEiID4mQVNf TUVTU0FHRV9MT0dfRkQKKysgICAgICAkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gY29uZnRl c3QgY29uZnRlc3QuYyAtV2wsLWZvcmNlX2xvYWQsLi9saWJjb25mdGVzdC5hIDI+Y29uZnRlc3Qu ZXJyCisrICAgICAgX2x0X3Jlc3VsdD0kPworKyAgICAgIGlmIHRlc3QgLWYgY29uZnRlc3QgJiYg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVyciAmJiB0ZXN0ICRfbHRfcmVzdWx0ID0gMCAmJiAkR1JFUCBm b3JjZWRfbG9hZCBjb25mdGVzdCAyPiYxID4vZGV2L251bGw7IHRoZW4KKysJbHRfY3ZfbGRfZm9y Y2VfbG9hZD15ZXMKKysgICAgICBlbHNlCisrCWNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdF X0xPR19GRAorKyAgICAgIGZpCisrICAgICAgICBybSAtZiBjb25mdGVzdC5lcnIgbGliY29uZnRl c3QuYSBjb25mdGVzdCBjb25mdGVzdC5jCisrICAgICAgICBybSAtcmYgY29uZnRlc3QuZFNZTQor KyAgICBdKQorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIHJoYXBzb2R5KiB8IGRhcndpbjEu W1swMTJdXSkKKysgICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVk ICR7d2x9c3VwcHJlc3MnIDs7CisrICAgIGRhcndpbjEuKikKKysgICAgICBfbHRfZGFyX2FsbG93 X3VuZGVmaW5lZD0nJHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9c3Vw cHJlc3MnIDs7CisrICAgIGRhcndpbiopICMgZGFyd2luIDUueCBvbgorKyAgICAgICMgaWYgcnVu bmluZyBvbiAxMC41IG9yIGxhdGVyLCB0aGUgZGVwbG95bWVudCB0YXJnZXQgZGVmYXVsdHMKKysg ICAgICAjIHRvIHRoZSBPUyB2ZXJzaW9uLCBpZiBvbiB4ODYsIGFuZCAxMC40LCB0aGUgZGVwbG95 bWVudAorKyAgICAgICMgdGFyZ2V0IGRlZmF1bHRzIHRvIDEwLjQuIERvbid0IHlvdSBsb3ZlIGl0 PworKyAgICAgIGNhc2UgJHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQtMTAuMH0sJGhvc3QgaW4K KysJMTAuMCwqODYqLWRhcndpbjgqfDEwLjAsKi1kYXJ3aW5bWzkxXV0qKQorKwkgIF9sdF9kYXJf YWxsb3dfdW5kZWZpbmVkPScke3dsfS11bmRlZmluZWQgJHt3bH1keW5hbWljX2xvb2t1cCcgOzsK KysJMTAuW1swMTJdXSopCisrCSAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRf bmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OworKwkxMC4qKQorKwkg IF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS11bmRlZmluZWQgJHt3bH1keW5hbWljX2xv b2t1cCcgOzsKKysgICAgICBlc2FjCisrICAgIDs7CisrICBlc2FjCisrICAgIGlmIHRlc3QgIiRs dF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgX2x0X2Rhcl9z aW5nbGVfbW9kPSckc2luZ2xlX21vZHVsZScKKysgICAgZmkKKysgICAgaWYgdGVzdCAiJGx0X2N2 X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdCIgPSAieWVzIjsgdGhlbgorKyAgICAgIF9sdF9kYXJf ZXhwb3J0X3N5bXM9JyAke3dsfS1leHBvcnRlZF9zeW1ib2xzX2xpc3QsJG91dHB1dF9vYmpkaXIv JHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bScKKysgICAgZWxzZQorKyAgICAgIF9sdF9kYXJfZXhw b3J0X3N5bXM9J34kTk1FRElUIC1zICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5l eHBzeW0gJHtsaWJ9JworKyAgICBmaQorKyAgICBpZiB0ZXN0ICIkRFNZTVVUSUwiICE9ICI6IiAm JiB0ZXN0ICIkbHRfY3ZfbGRfZm9yY2VfbG9hZCIgPSAibm8iOyB0aGVuCisrICAgICAgX2x0X2Rz eW11dGlsPSd+JERTWU1VVElMICRsaWIgfHwgOicKKysgICAgZWxzZQorKyAgICAgIF9sdF9kc3lt dXRpbD0KKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKytdKQorKworKworKyMgX0xUX0RBUldJ Tl9MSU5LRVJfRkVBVFVSRVMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVj a3MgZm9yIGxpbmtlciBhbmQgY29tcGlsZXIgZmVhdHVyZXMgb24gZGFyd2luCisrbTRfZGVmdW4o W19MVF9EQVJXSU5fTElOS0VSX0ZFQVRVUkVTXSwKKytbCisrICBtNF9yZXF1aXJlKFtfTFRfUkVR VUlSRURfREFSV0lOX0NIRUNLU10pCisrICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xj LCAkMSk9bm8KKysgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKysgIF9MVF9U QUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSk9eWVzCisrICBfTFRfVEFHVkFSKGhhcmRjb2Rl X3NobGlicGF0aF92YXIsICQxKT11bnN1cHBvcnRlZAorKyAgaWYgdGVzdCAiJGx0X2N2X2xkX2Zv cmNlX2xvYWQiID0gInllcyI7IHRoZW4KKysgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYywgJDEpPSdgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4g XCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UgJHt3bH0tZm9y Y2VfbG9hZCwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwi YCcKKysgIGVsc2UKKysgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEp PScnCisrICBmaQorKyAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisrICBf TFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9IiRfbHRfZGFyX2FsbG93X3VuZGVm aW5lZCIKKysgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICBpZm9ydCopIF9sdF9kYXJfY2Fu X3NoYXJlZD15ZXMgOzsKKysgICAgICopIF9sdF9kYXJfY2FuX3NoYXJlZD0kR0NDIDs7CisrICBl c2FjCisrICBpZiB0ZXN0ICIkX2x0X2Rhcl9jYW5fc2hhcmVkIiA9ICJ5ZXMiOyB0aGVuCisrICAg IG91dHB1dF92ZXJib3NlX2xpbmtfY21kPWZ1bmNfZWNob19hbGwKKysgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0iXCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFn IC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9u YW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7X2x0 X2RzeW11dGlsfSIKKysgICAgX0xUX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPSJcJENDIFwkYWxs b3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJzIFwk Y29tcGlsZXJfZmxhZ3Mke19sdF9kc3ltdXRpbH0iCisrICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9l eHBzeW1fY21kcywgJDEpPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRw dXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLWR5bmFtaWNsaWIgXCRh bGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGls ZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICR7X2x0 X2Rhcl9zaW5nbGVfbW9kfSR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisr ICAgIF9MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9InNlZCAtZSAncyxeLF8sJyA8 IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5l eHBzeW1+XCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJv YmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0 X2RzeW11dGlsfSIKKysgICAgbTRfaWYoWyQxXSwgW0NYWF0sCisrWyAgIGlmIHRlc3QgIiRsdF9j dl9hcHBsZV9jY19zaW5nbGVfbW9kIiAhPSAieWVzIjsgdGhlbgorKyAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9IlwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0ZGxp YiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5hbWljbGliIFwkYWxsb3df dW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRjb21w aWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcke19s dF9kc3ltdXRpbH0iCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGli bmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtciAta2VlcF9wcml2YXRlX2V4dGVybnMgLW5vc3Rk bGliIC1vIFwke2xpYn0tbWFzdGVyLm8gXCRsaWJvYmpzflwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxv d191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJHtsaWJ9LW1hc3Rlci5vIFwkZGVwbGlicyBcJGNv bXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyR7 X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisrICAgIGZpCisrXSxbXSkKKysg IGVsc2UKKysgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgIGZpCisrXSkKKysKKysj IF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMg TGlua3MgYSBtaW5pbWFsIHByb2dyYW0gYW5kIGNoZWNrcyB0aGUgZXhlY3V0YWJsZQorKyMgZm9y IHRoZSBzeXN0ZW0gZGVmYXVsdCBoYXJkY29kZWQgbGlicmFyeSBwYXRoLiBJbiBtb3N0IGNhc2Vz LAorKyMgdGhpcyBpcyAvdXNyL2xpYjovbGliLCBidXQgd2hlbiB0aGUgTVBJIGNvbXBpbGVycyBh cmUgdXNlZAorKyMgdGhlIGxvY2F0aW9uIG9mIHRoZSBjb21tdW5pY2F0aW9uIGFuZCBNUEkgbGli cyBhcmUgaW5jbHVkZWQgdG9vLgorKyMgSWYgd2UgZG9uJ3QgZmluZCBhbnl0aGluZywgdXNlIHRo ZSBkZWZhdWx0IGxpYnJhcnkgcGF0aCBhY2NvcmRpbmcKKysjIHRvIHRoZSBhaXggbGQgbWFudWFs LgorK200X2RlZnVuKFtfTFRfU1lTX01PRFVMRV9QQVRIX0FJWF0sCisrW200X3JlcXVpcmUoW19M VF9ERUNMX1NFRF0pZG5sCisrQUNfTElOS19JRkVMU0UoQUNfTEFOR19QUk9HUkFNLFsKKytsdF9h aXhfbGlicGF0aF9zZWQ9JworKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7CisrCS9e MC8geworKwkgICAgcy9eMCAgKlwoLipcKSQvXDEvCisrCSAgICBwCisrCX0KKysgICAgfScKKyth aXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VE IC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKysjIENoZWNrIGZvciBhIDY0LWJpdCBvYmpl Y3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCisraWYgdGVzdCAteiAiJGFpeF9saWJwYXRo IjsgdGhlbgorKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+ L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrZmldLFtdKQor K2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4gYWl4X2xpYnBhdGg9Ii91c3IvbGliOi9s aWIiOyBmaQorK10pIyBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKworKworKyMgX0xUX1NIRUxM X0lOSVQoQVJHKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZmluZShbX0xUX1NIRUxM X0lOSVRdLAorK1ttNF9kaXZlcnRfdGV4dChbTTRTSC1JTklUXSwgWyQxCisrXSldKSMgX0xUX1NI RUxMX0lOSVQKKysKKysKKysKKysjIF9MVF9QUk9HX0VDSE9fQkFDS1NMQVNICisrIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKyMgRmluZCBob3cgd2UgY2FuIGZha2UgYW4gZWNobyBjb21tYW5k IHRoYXQgZG9lcyBub3QgaW50ZXJwcmV0IGJhY2tzbGFzaC4KKysjIEluIHBhcnRpY3VsYXIsIHdp dGggQXV0b2NvbmYgMi42MCBvciBsYXRlciB3ZSBhZGQgc29tZSBjb2RlIHRvIHRoZSBzdGFydAor KyMgb2YgdGhlIGdlbmVyYXRlZCBjb25maWd1cmUgc2NyaXB0IHdoaWNoIHdpbGwgZmluZCBhIHNo ZWxsIHdpdGggYSBidWlsdGluCisrIyBwcmludGYgKHdoaWNoIHdlIGNhbiB1c2UgYXMgYW4gZWNo byBjb21tYW5kKS4KKyttNF9kZWZ1bihbX0xUX1BST0dfRUNIT19CQUNLU0xBU0hdLAorK1tFQ0hP PSdcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcJworK0VDSE89 JEVDSE8kRUNITyRFQ0hPJEVDSE8kRUNITworK0VDSE89JEVDSE8kRUNITyRFQ0hPJEVDSE8kRUNI TyRFQ0hPCisrCisrQUNfTVNHX0NIRUNLSU5HKFtob3cgdG8gcHJpbnQgc3RyaW5nc10pCisrIyBU ZXN0IHByaW50IGZpcnN0LCBiZWNhdXNlIGl0IHdpbGwgYmUgYSBidWlsdGluIGlmIHByZXNlbnQu CisraWYgdGVzdCAiWGBwcmludCAtciAtLSAtbiAyPi9kZXYvbnVsbGAiID0gWC1uICYmIFwKKysg ICB0ZXN0ICJYYHByaW50IC1yIC0tICRFQ0hPIDI+L2Rldi9udWxsYCIgPSAiWCRFQ0hPIjsgdGhl bgorKyAgRUNITz0ncHJpbnQgLXIgLS0nCisrZWxpZiB0ZXN0ICJYYHByaW50ZiAlcyAkRUNITyAy Pi9kZXYvbnVsbGAiID0gIlgkRUNITyI7IHRoZW4KKysgIEVDSE89J3ByaW50ZiAlc1xuJworK2Vs c2UKKysgICMgVXNlIHRoaXMgZnVuY3Rpb24gYXMgYSBmYWxsYmFjayB0aGF0IGFsd2F5cyB3b3Jr cy4KKysgIGZ1bmNfZmFsbGJhY2tfZWNobyAoKQorKyAgeworKyAgICBldmFsICdjYXQgPDxfTFRF Q0hPX0VPRgorKyRbXTEKKytfTFRFQ0hPX0VPRicKKysgIH0KKysgIEVDSE89J2Z1bmNfZmFsbGJh Y2tfZWNobycKKytmaQorKworKyMgZnVuY19lY2hvX2FsbCBhcmcuLi4KKysjIEludm9rZSAkRUNI TyB3aXRoIGFsbCBhcmdzLCBzcGFjZS1zZXBhcmF0ZWQuCisrZnVuY19lY2hvX2FsbCAoKQorK3sK KysgICAgJEVDSE8gIiQqIiAKKyt9CisrCisrY2FzZSAiJEVDSE8iIGluCisrICBwcmludGYqKSBB Q19NU0dfUkVTVUxUKFtwcmludGZdKSA7OworKyAgcHJpbnQqKSBBQ19NU0dfUkVTVUxUKFtwcmlu dCAtcl0pIDs7CisrICAqKSBBQ19NU0dfUkVTVUxUKFtjYXRdKSA7OworK2VzYWMKKysKKyttNF9p ZmRlZihbX0FTX0RFVEVDVF9TVUdHRVNURURdLAorK1tfQVNfREVURUNUX1NVR0dFU1RFRChbCisr ICB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0ke0JBU0hfVkVSU0lPTitzZXR9IiB8fCAoCisr ICAgIEVDSE89J1xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwn CisrICAgIEVDSE89JEVDSE8kRUNITyRFQ0hPJEVDSE8kRUNITworKyAgICBFQ0hPPSRFQ0hPJEVD SE8kRUNITyRFQ0hPJEVDSE8kRUNITworKyAgICBQQVRIPS9lbXB0eSBGUEFUSD0vZW1wdHk7IGV4 cG9ydCBQQVRIIEZQQVRICisrICAgIHRlc3QgIlhgcHJpbnRmICVzICRFQ0hPYCIgPSAiWCRFQ0hP IiBcCisrICAgICAgfHwgdGVzdCAiWGBwcmludCAtciAtLSAkRUNIT2AiID0gIlgkRUNITyIgKV0p XSkKKysKKytfTFRfREVDTChbXSwgW1NIRUxMXSwgWzFdLCBbU2hlbGwgdG8gdXNlIHdoZW4gaW52 b2tpbmcgc2hlbGwgc2NyaXB0c10pCisrX0xUX0RFQ0woW10sIFtFQ0hPXSwgWzFdLCBbQW4gZWNo byBwcm9ncmFtIHRoYXQgcHJvdGVjdHMgYmFja3NsYXNoZXNdKQorK10pIyBfTFRfUFJPR19FQ0hP X0JBQ0tTTEFTSAorKworKworKyMgX0xUX0VOQUJMRV9MT0NLCisrIyAtLS0tLS0tLS0tLS0tLS0K KyttNF9kZWZ1bihbX0xUX0VOQUJMRV9MT0NLXSwKKytbQUNfQVJHX0VOQUJMRShbbGlidG9vbC1s b2NrXSwKKysgIFtBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLWxpYnRvb2wtbG9ja10sCisrICAg IFthdm9pZCBsb2NraW5nIChtaWdodCBicmVhayBwYXJhbGxlbCBidWlsZHMpXSldKQorK3Rlc3Qg IngkZW5hYmxlX2xpYnRvb2xfbG9jayIgIT0geG5vICYmIGVuYWJsZV9saWJ0b29sX2xvY2s9eWVz CisrCisrIyBTb21lIGZsYWdzIG5lZWQgdG8gYmUgcHJvcGFnYXRlZCB0byB0aGUgY29tcGlsZXIg b3IgbGlua2VyIGZvciBnb29kCisrIyBsaWJ0b29sIHN1cHBvcnQuCisrY2FzZSAkaG9zdCBpbgor K2lhNjQtKi1ocHV4KikKKysgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKysg IGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0CisrICBpZiBBQ19UUllfRVZBTChhY19j b21waWxlKTsgdGhlbgorKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpl eHRgIGluCisrICAgICAgKkVMRi0zMiopCisrCUhQVVhfSUE2NF9NT0RFPSIzMiIKKysJOzsKKysg ICAgICAqRUxGLTY0KikKKysJSFBVWF9JQTY0X01PREU9IjY0IgorKwk7OworKyAgICBlc2FjCisr ICBmaQorKyAgcm0gLXJmIGNvbmZ0ZXN0KgorKyAgOzsKKysqLSotaXJpeDYqKQorKyAgIyBGaW5k IG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgorKyAgZWNobyAnWyNdbGluZSAnJExJTkVOTycg ImNvbmZpZ3VyZSInID4gY29uZnRlc3QuJGFjX2V4dAorKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29t cGlsZSk7IHRoZW4KKysgICAgaWYgdGVzdCAiJGx0X2N2X3Byb2dfZ251X2xkIiA9IHllczsgdGhl bgorKyAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysJ KjMyLWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC1tZWxmMzJic21pcCIKKysJICA7OworKwkqTjMy KikKKysJICBMRD0iJHtMRC1sZH0gLW1lbGYzMmJtaXBuMzIiCisrCSAgOzsKKysJKjY0LWJpdCop CisrCSAgTEQ9IiR7TEQtbGR9IC1tZWxmNjRibWlwIgorKwk7OworKyAgICAgIGVzYWMKKysgICAg ZWxzZQorKyAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4K KysJKjMyLWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC0zMiIKKysJICA7OworKwkqTjMyKikKKysJ ICBMRD0iJHtMRC1sZH0gLW4zMiIKKysJICA7OworKwkqNjQtYml0KikKKysJICBMRD0iJHtMRC1s ZH0gLTY0IgorKwkgIDs7CisrICAgICAgZXNhYworKyAgICBmaQorKyAgZmkKKysgIHJtIC1yZiBj b25mdGVzdCoKKysgIDs7CisrCisreDg2XzY0LSprZnJlZWJzZCotZ251fHg4Nl82NC0qbGludXgq fHBwYyotKmxpbnV4Knxwb3dlcnBjKi0qbGludXgqfCBcCisrczM5MCotKmxpbnV4KnxzMzkwKi0q dHBmKnxzcGFyYyotKmxpbnV4KikKKysgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2lu Zy4KKysgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0CisrICBpZiBBQ19UUllfRVZB TChhY19jb21waWxlKTsgdGhlbgorKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9g IGluCisrICAgICAgKjMyLWJpdCopCisrCWNhc2UgJGhvc3QgaW4KKysJICB4ODZfNjQtKmtmcmVl YnNkKi1nbnUpCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODZfZmJzZCIKKysJICAgIDs7 CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODYiCisr CSAgICA7OworKwkgIHBwYzY0LSpsaW51eCp8cG93ZXJwYzY0LSpsaW51eCopCisrCSAgICBMRD0i JHtMRC1sZH0gLW0gZWxmMzJwcGNsaW51eCIKKysJICAgIDs7CisrCSAgczM5MHgtKmxpbnV4KikK KysJICAgIExEPSIke0xELWxkfSAtbSBlbGZfczM5MCIKKysJICAgIDs7CisrCSAgc3BhcmM2NC0q bGludXgqKQorKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjMyX3NwYXJjIgorKwkgICAgOzsKKysJ ZXNhYworKwk7OworKyAgICAgICo2NC1iaXQqKQorKwljYXNlICRob3N0IGluCisrCSAgeDg2XzY0 LSprZnJlZWJzZCotZ251KQorKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94ODZfNjRfZmJzZCIK KysJICAgIDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxm X3g4Nl82NCIKKysJICAgIDs7CisrCSAgcHBjKi0qbGludXgqfHBvd2VycGMqLSpsaW51eCopCisr CSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRwcGMiCisrCSAgICA7OworKwkgIHMzOTAqLSpsaW51 eCp8czM5MCotKnRwZiopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfczM5MCIKKysJICAg IDs7CisrCSAgc3BhcmMqLSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfc3Bh cmMiCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgIGVzYWMKKysgIGZpCisrICBybSAtcmYg Y29uZnRlc3QqCisrICA7OworKworKyotKi1zY28zLjJ2NSopCisrICAjIE9uIFNDTyBPcGVuU2Vy dmVyIDUsIHdlIG5lZWQgLWJlbGYgdG8gZ2V0IGZ1bGwtZmVhdHVyZWQgYmluYXJpZXMuCisrICBT QVZFX0NGTEFHUz0iJENGTEFHUyIKKysgIENGTEFHUz0iJENGTEFHUyAtYmVsZiIKKysgIEFDX0NB Q0hFX0NIRUNLKFt3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIG5lZWRzIC1iZWxmXSwgbHRfY3ZfY2Nf bmVlZHNfYmVsZiwKKysgICAgW0FDX0xBTkdfUFVTSChDKQorKyAgICAgQUNfTElOS19JRkVMU0Uo W0FDX0xBTkdfUFJPR1JBTShbW11dLFtbXV0pXSxbbHRfY3ZfY2NfbmVlZHNfYmVsZj15ZXNdLFts dF9jdl9jY19uZWVkc19iZWxmPW5vXSkKKysgICAgIEFDX0xBTkdfUE9QXSkKKysgIGlmIHRlc3Qg eCIkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgIT0geCJ5ZXMiOyB0aGVuCisrICAgICMgdGhpcyBpcyBw cm9iYWJseSBnY2MgMi44LjAsIGVnY3MgMS4wIG9yIG5ld2VyOyBubyBuZWVkIGZvciAtYmVsZgor KyAgICBDRkxBR1M9IiRTQVZFX0NGTEFHUyIKKysgIGZpCisrICA7OworK3NwYXJjKi0qc29sYXJp cyopCisrICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCisrICBlY2hvICdpbnQg aTsnID4gY29uZnRlc3QuJGFjX2V4dAorKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRo ZW4KKysgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC5vYCBpbgorKyAgICAqNjQtYml0 KikKKysgICAgICBjYXNlICRsdF9jdl9wcm9nX2dudV9sZCBpbgorKyAgICAgIHllcyopIExEPSIk e0xELWxkfSAtbSBlbGY2NF9zcGFyYyIgOzsKKysgICAgICAqKQorKwlpZiAke0xELWxkfSAtNjQg LXIgLW8gY29uZnRlc3QyLm8gY29uZnRlc3QubyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJICBM RD0iJHtMRC1sZH0gLTY0IgorKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKyAg ICBlc2FjCisrICBmaQorKyAgcm0gLXJmIGNvbmZ0ZXN0KgorKyAgOzsKKytlc2FjCisrCisrbmVl ZF9sb2Nrcz0iJGVuYWJsZV9saWJ0b29sX2xvY2siCisrXSkjIF9MVF9FTkFCTEVfTE9DSworKwor KworKyMgX0xUX0NNRF9PTERfQVJDSElWRQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2Rl ZnVuKFtfTFRfQ01EX09MRF9BUkNISVZFXSwKKytbQUNfQ0hFQ0tfVE9PTChBUiwgYXIsIGZhbHNl KQorK3Rlc3QgLXogIiRBUiIgJiYgQVI9YXIKKyt0ZXN0IC16ICIkQVJfRkxBR1MiICYmIEFSX0ZM QUdTPWNydQorK19MVF9ERUNMKFtdLCBbQVJdLCBbMV0sIFtUaGUgYXJjaGl2ZXJdKQorK19MVF9E RUNMKFtdLCBbQVJfRkxBR1NdLCBbMV0pCisrCisrQUNfQ0hFQ0tfVE9PTChTVFJJUCwgc3RyaXAs IDopCisrdGVzdCAteiAiJFNUUklQIiAmJiBTVFJJUD06CisrX0xUX0RFQ0woW10sIFtTVFJJUF0s IFsxXSwgW0Egc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtXSkKKysKKytBQ19DSEVDS19UT09MKFJB TkxJQiwgcmFubGliLCA6KQorK3Rlc3QgLXogIiRSQU5MSUIiICYmIFJBTkxJQj06CisrX0xUX0RF Q0woW10sIFtSQU5MSUJdLCBbMV0sCisrICAgIFtDb21tYW5kcyB1c2VkIHRvIGluc3RhbGwgYW4g b2xkLXN0eWxlIGFyY2hpdmVdKQorKworKyMgRGV0ZXJtaW5lIGNvbW1hbmRzIHRvIGNyZWF0ZSBv bGQtc3R5bGUgc3RhdGljIGFyY2hpdmVzLgorK29sZF9hcmNoaXZlX2NtZHM9JyRBUiAkQVJfRkxB R1MgJG9sZGxpYiRvbGRvYmpzJworK29sZF9wb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA2NDQgJG9s ZGxpYicKKytvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPQorKworK2lmIHRlc3QgLW4gIiRSQU5MSUIi OyB0aGVuCisrICBjYXNlICRob3N0X29zIGluCisrICBvcGVuYnNkKikKKysgICAgb2xkX3Bvc3Rp bnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJQiAtdCBcJG9sZGxpYiIK KysgICAgOzsKKysgICopCisrICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzPSIkb2xkX3Bvc3RpbnN0 YWxsX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCisrICAgIDs7CisrICBlc2FjCisrICBvbGRfYXJj aGl2ZV9jbWRzPSIkb2xkX2FyY2hpdmVfY21kc35cJFJBTkxJQiBcJG9sZGxpYiIKKytmaQorKwor K2Nhc2UgJGhvc3Rfb3MgaW4KKysgIGRhcndpbiopCisrICAgIGxvY2tfb2xkX2FyY2hpdmVfZXh0 cmFjdGlvbj15ZXMgOzsKKysgICopCisrICAgIGxvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbj1u byA7OworK2VzYWMKKytfTFRfREVDTChbXSwgW29sZF9wb3N0aW5zdGFsbF9jbWRzXSwgWzJdKQor K19MVF9ERUNMKFtdLCBbb2xkX3Bvc3R1bmluc3RhbGxfY21kc10sIFsyXSkKKytfTFRfVEFHREVD TChbXSwgW29sZF9hcmNoaXZlX2NtZHNdLCBbMl0sCisrICAgIFtDb21tYW5kcyB1c2VkIHRvIGJ1 aWxkIGFuIG9sZC1zdHlsZSBhcmNoaXZlXSkKKytfTFRfREVDTChbXSwgW2xvY2tfb2xkX2FyY2hp dmVfZXh0cmFjdGlvbl0sIFswXSwKKysgICAgW1doZXRoZXIgdG8gdXNlIGEgbG9jayBmb3Igb2xk IGFyY2hpdmUgZXh0cmFjdGlvbl0pCisrXSkjIF9MVF9DTURfT0xEX0FSQ0hJVkUKKysKKysKKysj IF9MVF9DT01QSUxFUl9PUFRJT04oTUVTU0FHRSwgVkFSSUFCTEUtTkFNRSwgRkxBR1MsCisrIwkJ W09VVFBVVC1GSUxFXSwgW0FDVElPTi1TVUNDRVNTXSwgW0FDVElPTi1GQUlMVVJFXSkKKysjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysjIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIGNvbXBpbGVyIG9wdGlvbiB3b3Jrcwor K0FDX0RFRlVOKFtfTFRfQ09NUElMRVJfT1BUSU9OXSwKKytbbTRfcmVxdWlyZShbX0xUX0ZJTEVV VElMU19ERUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKKytBQ19D QUNIRV9DSEVDSyhbJDFdLCBbJDJdLAorKyAgWyQyPW5vCisrICAgbTRfaWYoWyQ0XSwgLCBbYWNf b3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0XSwgW2FjX291dGZpbGU9JDRdKQorKyAgIGVjaG8g IiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKyAgIGx0 X2NvbXBpbGVyX2ZsYWc9IiQzIgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBh ZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29y ZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUg dGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQg YmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBl Y2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKysgICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNl ZCB2aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2VkLgorKyAgIGx0X2NvbXBpbGU9 YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAorKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6 JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKKysgICAtZSAnczogW1teIF1dKmNvbmZ0ZXN0XC46 ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKKysgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxh ZzonYAorKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiAkbHRfY29tcGlsZVwiIiA+ JkFTX01FU1NBR0VfTE9HX0ZEKQorKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5l cnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0Vf TE9HX0ZECisrICAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mQVNf TUVTU0FHRV9MT0dfRkQKKysgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNf b3V0ZmlsZSI7IHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGln bm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBubyBpZiB0 aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0LgorKyAgICAgJEVD SE8gIiRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFNFRCAnL14kL2QnID5jb25mdGVzdC5l eHAKKysgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVy MgorKyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBj b25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICAkMj15ZXMKKysgICAgIGZpCisr ICAgZmkKKysgICAkUk0gY29uZnRlc3QqCisrXSkKKysKKytpZiB0ZXN0IHgiWyRdJDIiID0geHll czsgdGhlbgorKyAgICBtNF9pZihbJDVdLCAsIDosIFskNV0pCisrZWxzZQorKyAgICBtNF9pZihb JDZdLCAsIDosIFskNl0pCisrZmkKKytdKSMgX0xUX0NPTVBJTEVSX09QVElPTgorKworKyMgT2xk IG5hbWU6CisrQVVfQUxJQVMoW0FDX0xJQlRPT0xfQ09NUElMRVJfT1BUSU9OXSwgW19MVF9DT01Q SUxFUl9PUFRJT05dKQorK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToK KytkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfQ09NUElMRVJfT1BUSU9OXSwgW10pCisrCisrCisr IyBfTFRfTElOS0VSX09QVElPTihNRVNTQUdFLCBWQVJJQUJMRS1OQU1FLCBGTEFHUywKKysjICAg ICAgICAgICAgICAgICAgW0FDVElPTi1TVUNDRVNTXSwgW0FDVElPTi1GQUlMVVJFXSkKKysjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENo ZWNrIHdoZXRoZXIgdGhlIGdpdmVuIGxpbmtlciBvcHRpb24gd29ya3MKKytBQ19ERUZVTihbX0xU X0xJTktFUl9PUFRJT05dLAorK1ttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlk bmwKKyttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAorK0FDX0NBQ0hFX0NIRUNLKFskMV0s IFskMl0sCisrICBbJDI9bm8KKysgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgorKyAgIExERkxB R1M9IiRMREZMQUdTICQzIgorKyAgIGVjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID4g Y29uZnRlc3QuJGFjX2V4dAorKyAgIGlmIChldmFsICRhY19saW5rIDI+Y29uZnRlc3QuZXJyKSAm JiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgorKyAgICAgIyBUaGUgbGlua2VyIGNh biBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAg ICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKKysgICAgIGlmIHRlc3QgLXMgY29u ZnRlc3QuZXJyOyB0aGVuCisrICAgICAgICMgQXBwZW5kIGFueSBlcnJvcnMgdG8gdGhlIGNvbmZp Zy5sb2cuCisrICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mQVNfTUVTU0FHRV9MT0dfRkQKKysg ICAgICAgJEVDSE8gIiRfbHRfbGlua2VyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+IGNv bmZ0ZXN0LmV4cAorKyAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5j b25mdGVzdC5lcjIKKysgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4v ZGV2L251bGw7IHRoZW4KKysgICAgICAgICAkMj15ZXMKKysgICAgICAgZmkKKysgICAgIGVsc2UK KysgICAgICAgJDI9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJFJNIC1yIGNvbmZ0ZXN0Kgor KyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisrXSkKKysKKytpZiB0ZXN0IHgiWyRdJDIiID0g eHllczsgdGhlbgorKyAgICBtNF9pZihbJDRdLCAsIDosIFskNF0pCisrZWxzZQorKyAgICBtNF9p ZihbJDVdLCAsIDosIFskNV0pCisrZmkKKytdKSMgX0xUX0xJTktFUl9PUFRJT04KKysKKysjIE9s ZCBuYW1lOgorK0FVX0FMSUFTKFtBQ19MSUJUT09MX0xJTktFUl9PUFRJT05dLCBbX0xUX0xJTktF Ul9PUFRJT05dKQorK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytk bmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0sIFtdKQorKworKworKyMgTFRf Q01EX01BWF9MRU4KKysjLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0xUX0NNRF9NQVhfTEVO XSwKKytbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAorKyMgZmluZCB0aGUgbWF4 aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cworK0FDX01TR19DSEVDS0lORyhb dGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHNdKQorK0FDX0NBQ0hF X1ZBTChbbHRfY3Zfc3lzX21heF9jbWRfbGVuXSwgW2RubAorKyAgaT0wCisrICB0ZXN0c3RyaW5n PSJBQkNEIgorKworKyAgY2FzZSAkYnVpbGRfb3MgaW4KKysgIG1zZG9zZGpncHAqKQorKyAgICAj IE9uIERKR1BQLCB0aGlzIHRlc3QgY2FuIGJsb3cgdXAgcHJldHR5IGJhZGx5IGR1ZSB0byBwcm9i bGVtcyBpbiBsaWJjCisrICAgICMgKGFueSBzaW5nbGUgYXJndW1lbnQgZXhjZWVkaW5nIDIwMDAg Ynl0ZXMgY2F1c2VzIGEgYnVmZmVyIG92ZXJydW4KKysgICAgIyBkdXJpbmcgZ2xvYiBleHBhbnNp b24pLiAgRXZlbiBpZiBpdCB3ZXJlIGZpeGVkLCB0aGUgcmVzdWx0IG9mIHRoaXMKKysgICAgIyBj aGVjayB3b3VsZCBiZSBsYXJnZXIgdGhhbiBpdCBzaG91bGQgYmUuCisrICAgIGx0X2N2X3N5c19t YXhfY21kX2xlbj0xMjI4ODsgICAgIyAxMksgaXMgYWJvdXQgcmlnaHQKKysgICAgOzsKKysKKysg IGdudSopCisrICAgICMgVW5kZXIgR05VIEh1cmQsIHRoaXMgdGVzdCBpcyBub3QgcmVxdWlyZWQg YmVjYXVzZSB0aGVyZSBpcworKyAgICAjIG5vIGxpbWl0IHRvIHRoZSBsZW5ndGggb2YgY29tbWFu ZCBsaW5lIGFyZ3VtZW50cy4KKysgICAgIyBMaWJ0b29sIHdpbGwgaW50ZXJwcmV0IC0xIGFzIG5v IGxpbWl0IHdoYXRzb2V2ZXIKKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPS0xOworKyAgICA7 OworKworKyAgY3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKKysgICAgIyBPbiBXaW45eC9NRSwg dGhpcyB0ZXN0IGJsb3dzIHVwIC0tIGl0IHN1Y2NlZWRzLCBidXQgdGFrZXMKKysgICAgIyBhYm91 dCA1IG1pbnV0ZXMgYXMgdGhlIHRlc3RzdHJpbmcgZ3Jvd3MgZXhwb25lbnRpYWxseS4KKysgICAg IyBXb3JzZSwgc2luY2UgOXgvTUUgYXJlIG5vdCBwcmUtZW1wdGl2ZWx5IG11bHRpdGFza2luZywK KysgICAgIyB5b3UgZW5kIHVwIHdpdGggYSAiZnJvemVuIiBjb21wdXRlciwgZXZlbiB0aG91Z2gg d2l0aCBwYXRpZW5jZQorKyAgICAjIHRoZSB0ZXN0IGV2ZW50dWFsbHkgc3VjY2VlZHMgKHdpdGgg YSBtYXggbGluZSBsZW5ndGggb2YgMjU2aykuCisrICAgICMgSW5zdGVhZCwgbGV0J3MganVzdCBw dW50OiB1c2UgdGhlIG1pbmltdW0gbGluZWxlbmd0aCByZXBvcnRlZCBieQorKyAgICAjIGFsbCBv ZiB0aGUgc3VwcG9ydGVkIHBsYXRmb3JtczogODE5MiAob24gTlQvMksvWFApLgorKyAgICBsdF9j dl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKKysgICAgOzsKKysKKysgIG1pbnQqKQorKyAgICAjIE9u IE1pTlQgdGhpcyBjYW4gdGFrZSBhIGxvbmcgdGltZSBhbmQgcnVuIG91dCBvZiBtZW1vcnkuCisr ICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOworKyAgICA7OworKworKyAgYW1pZ2Fvcyop CisrICAgICMgT24gQW1pZ2FPUyB3aXRoIHBka3NoLCB0aGlzIHRlc3QgdGFrZXMgaG91cnMsIGxp dGVyYWxseS4KKysgICAgIyBTbyB3ZSBqdXN0IHB1bnQgYW5kIHVzZSBhIG1pbmltdW0gbGluZSBs ZW5ndGggb2YgODE5Mi4KKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTI7CisrICAgIDs7 CisrCisrICBuZXRic2QqIHwgZnJlZWJzZCogfCBvcGVuYnNkKiB8IGRhcndpbiogfCBkcmFnb25m bHkqKQorKyAgICAjIFRoaXMgaGFzIGJlZW4gYXJvdW5kIHNpbmNlIDM4NkJTRCwgYXQgbGVhc3Qu ICBMaWtlbHkgZnVydGhlci4KKysgICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjdGw7IHRoZW4KKysg ICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YC9zYmluL3N5c2N0bCAtbiBrZXJuLmFyZ21heGAK KysgICAgZWxpZiB0ZXN0IC14IC91c3Ivc2Jpbi9zeXNjdGw7IHRoZW4KKysgICAgICBsdF9jdl9z eXNfbWF4X2NtZF9sZW49YC91c3Ivc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhgCisrICAgIGVs c2UKKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49NjU1MzYJIyB1c2FibGUgZGVmYXVsdCBm b3IgYWxsIEJTRHMKKysgICAgZmkKKysgICAgIyBBbmQgYWRkIGEgc2FmZXR5IHpvbmUKKysgICAg bHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gNGAK KysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4g XCogM2AKKysgICAgOzsKKysKKysgIGludGVyaXgqKQorKyAgICAjIFdlIGtub3cgdGhlIHZhbHVl IDI2MjE0NCBhbmQgaGFyZGNvZGUgaXQgd2l0aCBhIHNhZmV0eSB6b25lIChsaWtlIEJTRCkKKysg ICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE5NjYwOAorKyAgICA7OworKworKyAgb3NmKikKKysg ICAgIyBEci4gSGFucyBFa2tlaGFyZCBQbGVzc2VyIHJlcG9ydHMgc2VlaW5nIGEga2VybmVsIHBh bmljIHJ1bm5pbmcgY29uZmlndXJlCisrICAgICMgZHVlIHRvIHRoaXMgdGVzdCB3aGVuIGV4ZWNf ZGlzYWJsZV9hcmdfbGltaXQgaXMgMSBvbiBUcnU2NC4gSXQgaXMgbm90CisrICAgICMgbmljZSB0 byBjYXVzZSBrZXJuZWwgcGFuaWNzIHNvIGxldHMgYXZvaWQgdGhlIGxvb3AgYmVsb3cuCisrICAg ICMgRmlyc3Qgc2V0IGEgcmVhc29uYWJsZSBkZWZhdWx0LgorKyAgICBsdF9jdl9zeXNfbWF4X2Nt ZF9sZW49MTYzODQKKysgICAgIworKyAgICBpZiB0ZXN0IC14IC9zYmluL3N5c2NvbmZpZzsgdGhl bgorKyAgICAgIGNhc2UgYC9zYmluL3N5c2NvbmZpZyAtcSBwcm9jIGV4ZWNfZGlzYWJsZV9hcmdf bGltaXRgIGluCisrICAgICAgICAqMSopIGx0X2N2X3N5c19tYXhfY21kX2xlbj0tMSA7OworKyAg ICAgIGVzYWMKKysgICAgZmkKKysgICAgOzsKKysgIHNjbzMuMnY1KikKKysgICAgbHRfY3Zfc3lz X21heF9jbWRfbGVuPTEwMjQwMAorKyAgICA7OworKyAgc3lzdjUqIHwgc2NvNXY2KiB8IHN5c3Y0 LjJ1dzIqKQorKyAgICBrYXJnbWF4PWBncmVwIEFSR19NQVggL2V0Yy9jb25mL2NmLmQvc3R1bmUg Mj4vZGV2L251bGxgCisrICAgIGlmIHRlc3QgLW4gIiRrYXJnbWF4IjsgdGhlbgorKyAgICAgIGx0 X2N2X3N5c19tYXhfY21kX2xlbj1gZWNobyAka2FyZ21heCB8IHNlZCAncy8uKltbCSBdXS8vJ2AK KysgICAgZWxzZQorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0zMjc2OAorKyAgICBmaQor KyAgICA7OworKyAgKikKKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAoZ2V0Y29uZiBBUkdf TUFYKSAyPiAvZGV2L251bGxgCisrICAgIGlmIHRlc3QgLW4gIiRsdF9jdl9zeXNfbWF4X2NtZF9s ZW4iOyB0aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNf bWF4X2NtZF9sZW4gXC8gNGAKKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0 X2N2X3N5c19tYXhfY21kX2xlbiBcKiAzYAorKyAgICBlbHNlCisrICAgICAgIyBNYWtlIHRlc3Rz dHJpbmcgYSBsaXR0bGUgYmlnZ2VyIGJlZm9yZSB3ZSBkbyBhbnl0aGluZyB3aXRoIGl0LgorKyAg ICAgICMgYSAxSyBzdHJpbmcgc2hvdWxkIGJlIGEgcmVhc29uYWJsZSBzdGFydC4KKysgICAgICBm b3IgaSBpbiAxIDIgMyA0IDUgNiA3IDggOyBkbworKyAgICAgICAgdGVzdHN0cmluZz0kdGVzdHN0 cmluZyR0ZXN0c3RyaW5nCisrICAgICAgZG9uZQorKyAgICAgIFNIRUxMPSR7U0hFTEwtJHtDT05G SUdfU0hFTEwtL2Jpbi9zaH19CisrICAgICAgIyBJZiB0ZXN0IGlzIG5vdCBhIHNoZWxsIGJ1aWx0 LWluLCB3ZSdsbCBwcm9iYWJseSBlbmQgdXAgY29tcHV0aW5nIGEKKysgICAgICAjIG1heGltdW0g bGVuZ3RoIHRoYXQgaXMgb25seSBoYWxmIG9mIHRoZSBhY3R1YWwgbWF4aW11bSBsZW5ndGgsIGJ1 dAorKyAgICAgICMgd2UgY2FuJ3QgdGVsbC4KKysgICAgICB3aGlsZSB7IHRlc3QgIlgiYGZ1bmNf ZmFsbGJhY2tfZWNobyAiJHRlc3RzdHJpbmckdGVzdHN0cmluZyIgMj4vZGV2L251bGxgIFwKKysJ ICAgICAgICAgPSAiWCR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciOyB9ID4vZGV2L251bGwgMj4mMSAm JgorKwkgICAgICB0ZXN0ICRpICE9IDE3ICMgMS8yIE1CIHNob3VsZCBiZSBlbm91Z2gKKysgICAg ICBkbworKyAgICAgICAgaT1gZXhwciAkaSArIDFgCisrICAgICAgICB0ZXN0c3RyaW5nPSR0ZXN0 c3RyaW5nJHRlc3RzdHJpbmcKKysgICAgICBkb25lCisrICAgICAgIyBPbmx5IGNoZWNrIHRoZSBz dHJpbmcgbGVuZ3RoIG91dHNpZGUgdGhlIGxvb3AuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRf bGVuPWBleHByICJYJHRlc3RzdHJpbmciIDogIi4qIiAyPiYxYAorKyAgICAgIHRlc3RzdHJpbmc9 CisrICAgICAgIyBBZGQgYSBzaWduaWZpY2FudCBzYWZldHkgZmFjdG9yIGJlY2F1c2UgQysrIGNv bXBpbGVycyBjYW4gdGFjayBvbgorKyAgICAgICMgbWFzc2l2ZSBhbW91bnRzIG9mIGFkZGl0aW9u YWwgYXJndW1lbnRzIGJlZm9yZSBwYXNzaW5nIHRoZW0gdG8gdGhlCisrICAgICAgIyBsaW5rZXIu ICBJdCBhcHBlYXJzIGFzIHRob3VnaCAxLzIgaXMgYSB1c2FibGUgdmFsdWUuCisrICAgICAgbHRf Y3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gMmAKKysg ICAgZmkKKysgICAgOzsKKysgIGVzYWMKKytdKQorK2lmIHRlc3QgLW4gJGx0X2N2X3N5c19tYXhf Y21kX2xlbiA7IHRoZW4KKysgIEFDX01TR19SRVNVTFQoJGx0X2N2X3N5c19tYXhfY21kX2xlbikK KytlbHNlCisrICBBQ19NU0dfUkVTVUxUKG5vbmUpCisrZmkKKyttYXhfY21kX2xlbj0kbHRfY3Zf c3lzX21heF9jbWRfbGVuCisrX0xUX0RFQ0woW10sIFttYXhfY21kX2xlbl0sIFswXSwKKysgICAg W1doYXQgaXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgY29tbWFuZD9dKQorK10pIyBMVF9DTURf TUFYX0xFTgorKworKyMgT2xkIG5hbWU6CisrQVVfQUxJQVMoW0FDX0xJQlRPT0xfU1lTX01BWF9D TURfTEVOXSwgW0xUX0NNRF9NQVhfTEVOXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNv bXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19NQVhfQ01EX0xFTl0s IFtdKQorKworKworKyMgX0xUX0hFQURFUl9ETEZDTgorKyMgLS0tLS0tLS0tLS0tLS0tLQorK200 X2RlZnVuKFtfTFRfSEVBREVSX0RMRkNOXSwKKytbQUNfQ0hFQ0tfSEVBREVSUyhbZGxmY24uaF0s IFtdLCBbXSwgW0FDX0lOQ0xVREVTX0RFRkFVTFRdKWRubAorK10pIyBfTFRfSEVBREVSX0RMRkNO CisrCisrCisrIyBfTFRfVFJZX0RMT1BFTl9TRUxGIChBQ1RJT04tSUYtVFJVRSwgQUNUSU9OLUlG LVRSVUUtVy1VU0NPUkUsCisrIyAgICAgICAgICAgICAgICAgICAgICBBQ1RJT04tSUYtRkFMU0Us IEFDVElPTi1JRi1DUk9TUy1DT01QSUxJTkcpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9U UllfRExPUEVOX1NFTEZdLAorK1ttNF9yZXF1aXJlKFtfTFRfSEVBREVSX0RMRkNOXSlkbmwKKytp ZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6CisrICBbJDRdCisrZWxzZQor KyAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9Mgor KyAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KKysgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxf TFRfRU9GCisrWyNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKKysjaW5jbHVkZSAiY29uZmRlZnMu aCIKKysKKysjaWYgSEFWRV9ETEZDTl9ICisrI2luY2x1ZGUgPGRsZmNuLmg+CisrI2VuZGlmCisr CisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrCisrI2lmZGVmIFJUTERfR0xPQkFMCisrIyAgZGVmaW5l IExUX0RMR0xPQkFMCQlSVExEX0dMT0JBTAorKyNlbHNlCisrIyAgaWZkZWYgRExfR0xPQkFMCisr IyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCURMX0dMT0JBTAorKyMgIGVsc2UKKysjICAgIGRlZmlu ZSBMVF9ETEdMT0JBTAkJMAorKyMgIGVuZGlmCisrI2VuZGlmCisrCisrLyogV2UgbWF5IGhhdmUg dG8gZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cgaW4gdGhlIGNvbW1hbmQgbGluZSBpZiB3ZQorKyAg IGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsgaW4gc29tZSBwbGF0Zm9ybS4gKi8KKysjaWZuZGVm IExUX0RMTEFaWV9PUl9OT1cKKysjICBpZmRlZiBSVExEX0xBWlkKKysjICAgIGRlZmluZSBMVF9E TExBWllfT1JfTk9XCQlSVExEX0xBWlkKKysjICBlbHNlCisrIyAgICBpZmRlZiBETF9MQVpZCisr IyAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlETF9MQVpZCisrIyAgICBlbHNlCisrIyAg ICAgIGlmZGVmIFJUTERfTk9XCisrIyAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJUlRM RF9OT1cKKysjICAgICAgZWxzZQorKyMgICAgICAgIGlmZGVmIERMX05PVworKyMgICAgICAgICAg ZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJRExfTk9XCisrIyAgICAgICAgZWxzZQorKyMgICAgICAg ICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJMAorKyMgICAgICAgIGVuZGlmCisrIyAgICAgIGVu ZGlmCisrIyAgICBlbmRpZgorKyMgIGVuZGlmCisrI2VuZGlmCisrCisrLyogV2hlbiAtZnZpc2Jp bGl0eT1oaWRkZW4gaXMgdXNlZCwgYXNzdW1lIHRoZSBjb2RlIGhhcyBiZWVuIGFubm90YXRlZAor KyAgIGNvcnJlc3BvbmRpbmdseSBmb3IgdGhlIHN5bWJvbHMgbmVlZGVkLiAgKi8KKysjaWYgZGVm aW5lZChfX0dOVUNfXykgJiYgKCgoX19HTlVDX18gPT0gMykgJiYgKF9fR05VQ19NSU5PUl9fID49 IDMpKSB8fCAoX19HTlVDX18gPiAzKSkKKyt2b2lkIGZub3JkICgpIF9fYXR0cmlidXRlX18oKHZp c2liaWxpdHkoImRlZmF1bHQiKSkpOworKyNlbmRpZgorKworK3ZvaWQgZm5vcmQgKCkgeyBpbnQg aT00MjsgfQorK2ludCBtYWluICgpCisreworKyAgdm9pZCAqc2VsZiA9IGRsb3BlbiAoMCwgTFRf RExHTE9CQUx8TFRfRExMQVpZX09SX05PVyk7CisrICBpbnQgc3RhdHVzID0gJGx0X2RsdW5rbm93 bjsKKysKKysgIGlmIChzZWxmKQorKyAgICB7CisrICAgICAgaWYgKGRsc3ltIChzZWxmLCJmbm9y ZCIpKSAgICAgICBzdGF0dXMgPSAkbHRfZGxub191c2NvcmU7CisrICAgICAgZWxzZQorKyAgICAg ICAgeworKwkgIGlmIChkbHN5bSggc2VsZiwiX2Zub3JkIikpICBzdGF0dXMgPSAkbHRfZGxuZWVk X3VzY29yZTsKKysgICAgICAgICAgZWxzZSBwdXRzIChkbGVycm9yICgpKTsKKysJfQorKyAgICAg IC8qIGRsY2xvc2UgKHNlbGYpOyAqLworKyAgICB9CisrICBlbHNlCisrICAgIHB1dHMgKGRsZXJy b3IgKCkpOworKworKyAgcmV0dXJuIHN0YXR1czsKKyt9XQorK19MVF9FT0YKKysgIGlmIEFDX1RS WV9FVkFMKGFjX2xpbmspICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gMj4vZGV2L251 bGw7IHRoZW4KKysgICAgKC4vY29uZnRlc3Q7IGV4aXQ7ICkgPiZBU19NRVNTQUdFX0xPR19GRCAy Pi9kZXYvbnVsbAorKyAgICBsdF9zdGF0dXM9JD8KKysgICAgY2FzZSB4JGx0X3N0YXR1cyBpbgor KyAgICAgIHgkbHRfZGxub191c2NvcmUpICQxIDs7CisrICAgICAgeCRsdF9kbG5lZWRfdXNjb3Jl KSAkMiA7OworKyAgICAgIHgkbHRfZGx1bmtub3dufHgqKSAkMyA7OworKyAgICBlc2FjCisrICBl bHNlIDoKKysgICAgIyBjb21waWxhdGlvbiBmYWlsZWQKKysgICAgJDMKKysgIGZpCisrZmkKKyty bSAtZnIgY29uZnRlc3QqCisrXSkjIF9MVF9UUllfRExPUEVOX1NFTEYKKysKKysKKysjIExUX1NZ U19ETE9QRU5fU0VMRgorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0xUX1NZU19E TE9QRU5fU0VMRl0sCisrW200X3JlcXVpcmUoW19MVF9IRUFERVJfRExGQ05dKWRubAorK2lmIHRl c3QgIngkZW5hYmxlX2Rsb3BlbiIgIT0geHllczsgdGhlbgorKyAgZW5hYmxlX2Rsb3Blbj11bmtu b3duCisrICBlbmFibGVfZGxvcGVuX3NlbGY9dW5rbm93bgorKyAgZW5hYmxlX2Rsb3Blbl9zZWxm X3N0YXRpYz11bmtub3duCisrZWxzZQorKyAgbHRfY3ZfZGxvcGVuPW5vCisrICBsdF9jdl9kbG9w ZW5fbGlicz0KKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGJlb3MqKQorKyAgICBsdF9jdl9k bG9wZW49ImxvYWRfYWRkX29uIgorKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAgbHRfY3Zf ZGxvcGVuX3NlbGY9eWVzCisrICAgIDs7CisrCisrICBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikK KysgICAgbHRfY3ZfZGxvcGVuPSJMb2FkTGlicmFyeSIKKysgICAgbHRfY3ZfZGxvcGVuX2xpYnM9 CisrICAgIDs7CisrCisrICBjeWd3aW4qKQorKyAgICBsdF9jdl9kbG9wZW49ImRsb3BlbiIKKysg ICAgbHRfY3ZfZGxvcGVuX2xpYnM9CisrICAgIDs7CisrCisrICBkYXJ3aW4qKQorKyAgIyBpZiBs aWJkbCBpcyBpbnN0YWxsZWQgd2UgbmVlZCB0byBsaW5rIGFnYWluc3QgaXQKKysgICAgQUNfQ0hF Q0tfTElCKFtkbF0sIFtkbG9wZW5dLAorKwkJW2x0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9k bG9wZW5fbGlicz0iLWxkbCJdLFsKKysgICAgbHRfY3ZfZGxvcGVuPSJkeWxkIgorKyAgICBsdF9j dl9kbG9wZW5fbGlicz0KKysgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzCisrICAgIF0pCisrICAg IDs7CisrCisrICAqKQorKyAgICBBQ19DSEVDS19GVU5DKFtzaGxfbG9hZF0sCisrCSAgW2x0X2N2 X2Rsb3Blbj0ic2hsX2xvYWQiXSwKKysgICAgICBbQUNfQ0hFQ0tfTElCKFtkbGRdLCBbc2hsX2xv YWRdLAorKwkgICAgW2x0X2N2X2Rsb3Blbj0ic2hsX2xvYWQiIGx0X2N2X2Rsb3Blbl9saWJzPSIt bGRsZCJdLAorKwlbQUNfQ0hFQ0tfRlVOQyhbZGxvcGVuXSwKKysJICAgICAgW2x0X2N2X2Rsb3Bl bj0iZGxvcGVuIl0sCisrCSAgW0FDX0NIRUNLX0xJQihbZGxdLCBbZGxvcGVuXSwKKysJCVtsdF9j dl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGwiXSwKKysJICAgIFtBQ19D SEVDS19MSUIoW3N2bGRdLCBbZGxvcGVuXSwKKysJCSAgW2x0X2N2X2Rsb3Blbj0iZGxvcGVuIiBs dF9jdl9kbG9wZW5fbGlicz0iLWxzdmxkIl0sCisrCSAgICAgIFtBQ19DSEVDS19MSUIoW2RsZF0s IFtkbGRfbGlua10sCisrCQkgICAgW2x0X2N2X2Rsb3Blbj0iZGxkX2xpbmsiIGx0X2N2X2Rsb3Bl bl9saWJzPSItbGRsZCJdKQorKwkgICAgICBdKQorKwkgICAgXSkKKysJICBdKQorKwldKQorKyAg ICAgIF0pCisrICAgIDs7CisrICBlc2FjCisrCisrICBpZiB0ZXN0ICJ4JGx0X2N2X2Rsb3BlbiIg IT0geG5vOyB0aGVuCisrICAgIGVuYWJsZV9kbG9wZW49eWVzCisrICBlbHNlCisrICAgIGVuYWJs ZV9kbG9wZW49bm8KKysgIGZpCisrCisrICBjYXNlICRsdF9jdl9kbG9wZW4gaW4KKysgIGRsb3Bl bikKKysgICAgc2F2ZV9DUFBGTEFHUz0iJENQUEZMQUdTIgorKyAgICB0ZXN0ICJ4JGFjX2N2X2hl YWRlcl9kbGZjbl9oIiA9IHh5ZXMgJiYgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtREhBVkVfRExGQ05f SCIKKysKKysgICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysgICAgd2w9JGx0X3Byb2dfY29t cGlsZXJfd2wgZXZhbCBMREZMQUdTPVwiXCRMREZMQUdTICRleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWNcIgorKworKyAgICBzYXZlX0xJQlM9IiRMSUJTIgorKyAgICBMSUJTPSIkbHRfY3ZfZGxvcGVu X2xpYnMgJExJQlMiCisrCisrICAgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIGEgcHJvZ3JhbSBj YW4gZGxvcGVuIGl0c2VsZl0sCisrCSAgbHRfY3ZfZGxvcGVuX3NlbGYsIFtkbmwKKysJICBfTFRf VFJZX0RMT1BFTl9TRUxGKAorKwkgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzLCBsdF9jdl9kbG9w ZW5fc2VsZj15ZXMsCisrCSAgICBsdF9jdl9kbG9wZW5fc2VsZj1ubywgbHRfY3ZfZGxvcGVuX3Nl bGY9Y3Jvc3MpCisrICAgIF0pCisrCisrICAgIGlmIHRlc3QgIngkbHRfY3ZfZGxvcGVuX3NlbGYi ID0geHllczsgdGhlbgorKyAgICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgTERGTEFH Uz1cIlwkTERGTEFHUyAkbHRfcHJvZ19jb21waWxlcl9zdGF0aWNcIgorKyAgICAgIEFDX0NBQ0hF X0NIRUNLKFt3aGV0aGVyIGEgc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0 c2VsZl0sCisrCSAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljLCBbZG5sCisrCSAgX0xUX1RSWV9E TE9QRU5fU0VMRigKKysJICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz15ZXMsIGx0X2N2X2Rs b3Blbl9zZWxmX3N0YXRpYz15ZXMsCisrCSAgICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9bm8s ICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9Y3Jvc3MpCisrICAgICAgXSkKKysgICAgZmkKKysK KysgICAgQ1BQRkxBR1M9IiRzYXZlX0NQUEZMQUdTIgorKyAgICBMREZMQUdTPSIkc2F2ZV9MREZM QUdTIgorKyAgICBMSUJTPSIkc2F2ZV9MSUJTIgorKyAgICA7OworKyAgZXNhYworKworKyAgY2Fz ZSAkbHRfY3ZfZGxvcGVuX3NlbGYgaW4KKysgIHllc3xubykgZW5hYmxlX2Rsb3Blbl9zZWxmPSRs dF9jdl9kbG9wZW5fc2VsZiA7OworKyAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25vd24gOzsK KysgIGVzYWMKKysKKysgIGNhc2UgJGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyBpbgorKyAgeWVz fG5vKSBlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPSRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMg OzsKKysgICopIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93biA7OworKyAgZXNhYwor K2ZpCisrX0xUX0RFQ0woW2Rsb3Blbl9zdXBwb3J0XSwgW2VuYWJsZV9kbG9wZW5dLCBbMF0sCisr CSBbV2hldGhlciBkbG9wZW4gaXMgc3VwcG9ydGVkXSkKKytfTFRfREVDTChbZGxvcGVuX3NlbGZd LCBbZW5hYmxlX2Rsb3Blbl9zZWxmXSwgWzBdLAorKwkgW1doZXRoZXIgZGxvcGVuIG9mIHByb2dy YW1zIGlzIHN1cHBvcnRlZF0pCisrX0xUX0RFQ0woW2Rsb3Blbl9zZWxmX3N0YXRpY10sIFtlbmFi bGVfZGxvcGVuX3NlbGZfc3RhdGljXSwgWzBdLAorKwkgW1doZXRoZXIgZGxvcGVuIG9mIHN0YXRp Y2FsbHkgbGlua2VkIHByb2dyYW1zIGlzIHN1cHBvcnRlZF0pCisrXSkjIExUX1NZU19ETE9QRU5f U0VMRgorKworKyMgT2xkIG5hbWU6CisrQVVfQUxJQVMoW0FDX0xJQlRPT0xfRExPUEVOX1NFTEZd LCBbTFRfU1lTX0RMT1BFTl9TRUxGXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBh dGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0RMT1BFTl9TRUxGXSwgW10pCisr CisrCisrIyBfTFRfQ09NUElMRVJfQ19PKFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKyMgQ2hlY2sgdG8gc2VlIGlmIG9wdGlvbnMgLWMgYW5kIC1vIGFyZSBzaW11 bHRhbmVvdXNseSBzdXBwb3J0ZWQgYnkgY29tcGlsZXIuCisrIyBUaGlzIG1hY3JvIGRvZXMgbm90 IGhhcmQgY29kZSB0aGUgY29tcGlsZXIgbGlrZSBBQ19QUk9HX0NDX0NfTy4KKyttNF9kZWZ1bihb X0xUX0NPTVBJTEVSX0NfT10sCisrW200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCisrbTRf cmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX1RB R19DT01QSUxFUl0pZG5sCisrQUNfQ0FDSEVfQ0hFQ0soW2lmICRjb21waWxlciBzdXBwb3J0cyAt YyAtbyBmaWxlLiRhY19vYmpleHRdLAorKyAgW19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxl cl9jX28sICQxKV0sCisrICBbX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbywgJDEp PW5vCisrICAgJFJNIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCisrICAgbWtkaXIgY29uZnRlc3QK KysgICBjZCBjb25mdGVzdAorKyAgIG1rZGlyIG91dAorKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29t cGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKworKyAgIGx0X2NvbXBpbGVyX2Zs YWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKKysgICAjIEluc2VydCB0aGUgb3B0aW9u IGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIp IGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQu CisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFj a3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBo ZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCisrICAgbHRfY29tcGlsZT1g ZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCisrICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDom JGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAorKyAgIC1lICdzOiBbW14gXV0qY29uZnRlc3RcLjog JGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFn OidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOiRMSU5FTk86ICRsdF9jb21waWxlXCIiID4m QVNfTUVTU0FHRV9MT0dfRkQpCisrICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91dC9jb25mdGVz dC5lcnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IG91dC9jb25mdGVzdC5lcnIgPiZBU19N RVNTQUdFX0xPR19GRAorKyAgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JkFTX01FU1NBR0VfTE9HX0ZECisrICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAt cyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKKysgICB0aGVuCisrICAgICAjIFRoZSBjb21waWxl ciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAor KyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICAkRUNITyAiJF9s dF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkU0VEICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhw CisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0 ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQv Y29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICBf TFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSk9eWVzCisrICAgICBmaQorKyAg IGZpCisrICAgY2htb2QgdSt3IC4gMj4mQVNfTUVTU0FHRV9MT0dfRkQKKysgICAkUk0gY29uZnRl c3QqCisrICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlf ZmlsZXMvIGZvcgorKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgorKyAgIHRlc3QgLWQgb3V0 L2lpX2ZpbGVzICYmICRSTSBvdXQvaWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmlsZXMKKysg ICAkUk0gb3V0LyogJiYgcm1kaXIgb3V0CisrICAgY2QgLi4KKysgICAkUk0gLXIgY29uZnRlc3QK KysgICAkUk0gY29uZnRlc3QqCisrXSkKKytfTFRfVEFHREVDTChbY29tcGlsZXJfY19vXSwgW2x0 X2N2X3Byb2dfY29tcGlsZXJfY19vXSwgWzFdLAorKwlbRG9lcyBjb21waWxlciBzaW11bHRhbmVv dXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zP10pCisrXSkjIF9MVF9DT01QSUxFUl9DX08K KysKKysKKysjIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKFtUQUdOQU1FXSkKKysjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIHRvIHNlZSBpZiB3ZSBjYW4gZG8g aGFyZCBsaW5rcyB0byBsb2NrIHNvbWUgZmlsZXMgaWYgbmVlZGVkCisrbTRfZGVmdW4oW19MVF9D T01QSUxFUl9GSUxFX0xPQ0tTXSwKKytbbTRfcmVxdWlyZShbX0xUX0VOQUJMRV9MT0NLXSlkbmwK KyttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKKytfTFRfQ09NUElMRVJf Q19PKFskMV0pCisrCisraGFyZF9saW5rcz0ibm90dGVzdGVkIgorK2lmIHRlc3QgIiRfTFRfVEFH VkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSkiID0gbm8gJiYgdGVzdCAiJG5lZWRfbG9j a3MiICE9IG5vOyB0aGVuCisrICAjIGRvIG5vdCBvdmVyd3JpdGUgdGhlIHZhbHVlIG9mIG5lZWRf bG9ja3MgcHJvdmlkZWQgYnkgdGhlIHVzZXIKKysgIEFDX01TR19DSEVDS0lORyhbaWYgd2UgY2Fu IGxvY2sgd2l0aCBoYXJkIGxpbmtzXSkKKysgIGhhcmRfbGlua3M9eWVzCisrICAkUk0gY29uZnRl c3QqCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5r cz1ubworKyAgdG91Y2ggY29uZnRlc3QuYQorKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+ JjUgfHwgaGFyZF9saW5rcz1ubworKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9u dWxsICYmIGhhcmRfbGlua3M9bm8KKysgIEFDX01TR19SRVNVTFQoWyRoYXJkX2xpbmtzXSkKKysg IGlmIHRlc3QgIiRoYXJkX2xpbmtzIiA9IG5vOyB0aGVuCisrICAgIEFDX01TR19XQVJOKFtgJEND JyBkb2VzIG5vdCBzdXBwb3J0IGAtYyAtbycsIHNvIGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlXSkK KysgICAgbmVlZF9sb2Nrcz13YXJuCisrICBmaQorK2Vsc2UKKysgIG5lZWRfbG9ja3M9bm8KKytm aQorK19MVF9ERUNMKFtdLCBbbmVlZF9sb2Nrc10sIFsxXSwgW011c3Qgd2UgbG9jayBmaWxlcyB3 aGVuIGRvaW5nIGNvbXBpbGF0aW9uP10pCisrXSkjIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTCisr CisrCisrIyBfTFRfQ0hFQ0tfT0JKRElSCisrIyAtLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmdW4o W19MVF9DSEVDS19PQkpESVJdLAorK1tBQ19DQUNIRV9DSEVDSyhbZm9yIG9iamRpcl0sIFtsdF9j dl9vYmpkaXJdLAorK1tybSAtZiAubGlicyAyPi9kZXYvbnVsbAorK21rZGlyIC5saWJzIDI+L2Rl di9udWxsCisraWYgdGVzdCAtZCAubGliczsgdGhlbgorKyAgbHRfY3Zfb2JqZGlyPS5saWJzCisr ZWxzZQorKyAgIyBNUy1ET1MgZG9lcyBub3QgYWxsb3cgZmlsZW5hbWVzIHRoYXQgYmVnaW4gd2l0 aCBhIGRvdC4KKysgIGx0X2N2X29iamRpcj1fbGlicworK2ZpCisrcm1kaXIgLmxpYnMgMj4vZGV2 L251bGxdKQorK29iamRpcj0kbHRfY3Zfb2JqZGlyCisrX0xUX0RFQ0woW10sIFtvYmpkaXJdLCBb MF0sCisrICAgICAgICAgW1RoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0 ZW1wb3JhcnkgbGlidG9vbCBmaWxlc10pZG5sCisrbTRfcGF0dGVybl9hbGxvdyhbTFRfT0JKRElS XSlkbmwKKytBQ19ERUZJTkVfVU5RVU9URUQoTFRfT0JKRElSLCAiJGx0X2N2X29iamRpci8iLAor KyAgW0RlZmluZSB0byB0aGUgc3ViLWRpcmVjdG9yeSBpbiB3aGljaCBsaWJ0b29sIHN0b3JlcyB1 bmluc3RhbGxlZCBsaWJyYXJpZXMuXSkKKytdKSMgX0xUX0NIRUNLX09CSkRJUgorKworKworKyMg X0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayBoYXJkY29kaW5nIGF0dHJpYnV0ZXMu CisrbTRfZGVmdW4oW19MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSF0sCisrW0FDX01TR19DSEVD S0lORyhbaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtc10pCisrX0xU X1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT0KKytpZiB0ZXN0IC1uICIkX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkiIHx8CisrICAgdGVzdCAtbiAiJF9MVF9UQUdW QVIocnVucGF0aF92YXIsICQxKSIgfHwKKysgICB0ZXN0ICJYJF9MVF9UQUdWQVIoaGFyZGNvZGVf YXV0b21hdGljLCAkMSkiID0gIlh5ZXMiIDsgdGhlbgorKworKyAgIyBXZSBjYW4gaGFyZGNvZGUg bm9uLWV4aXN0ZW50IGRpcmVjdG9yaWVzLgorKyAgaWYgdGVzdCAiJF9MVF9UQUdWQVIoaGFyZGNv ZGVfZGlyZWN0LCAkMSkiICE9IG5vICYmCisrICAgICAjIElmIHRoZSBvbmx5IG1lY2hhbmlzbSB0 byBhdm9pZCBoYXJkY29kaW5nIGlzIHNobGlicGF0aF92YXIsIHdlCisrICAgICAjIGhhdmUgdG8g cmVsaW5rLCBvdGhlcndpc2Ugd2UgbWlnaHQgbGluayB3aXRoIGFuIGluc3RhbGxlZCBsaWJyYXJ5 CisrICAgICAjIHdoZW4gd2Ugc2hvdWxkIGJlIGxpbmtpbmcgd2l0aCBhIHlldC10by1iZS1pbnN0 YWxsZWQgb25lCisrICAgICAjIyB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhf dmFyLCAkMSkiICE9IG5vICYmCisrICAgICB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9taW51 c19MLCAkMSkiICE9IG5vOyB0aGVuCisrICAgICMgTGlua2luZyBhbHdheXMgaGFyZGNvZGVzIHRo ZSB0ZW1wb3JhcnkgbGlicmFyeSBkaXJlY3RvcnkuCisrICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf YWN0aW9uLCAkMSk9cmVsaW5rCisrICBlbHNlCisrICAgICMgV2UgY2FuIGxpbmsgd2l0aG91dCBo YXJkY29kaW5nLCBhbmQgd2UgY2FuIGhhcmRjb2RlIG5vbmV4aXN0aW5nIGRpcnMuCisrICAgIF9M VF9UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAkMSk9aW1tZWRpYXRlCisrICBmaQorK2Vsc2UKKysg ICMgV2UgY2Fubm90IGhhcmRjb2RlIGFueXRoaW5nLCBvciBlbHNlIHdlIGNhbiBvbmx5IGhhcmRj b2RlIGV4aXN0aW5nCisrICAjIGRpcmVjdG9yaWVzLgorKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9h Y3Rpb24sICQxKT11bnN1cHBvcnRlZAorK2ZpCisrQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdWQVIo aGFyZGNvZGVfYWN0aW9uLCAkMSldKQorKworK2lmIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRjb2Rl X2FjdGlvbiwgJDEpIiA9IHJlbGluayB8fAorKyAgIHRlc3QgIiRfTFRfVEFHVkFSKGluaGVyaXRf cnBhdGgsICQxKSIgPSB5ZXM7IHRoZW4KKysgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IHN1 cHBvcnRlZAorKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubworK2VsaWYgdGVzdCAiJHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKKysgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVk IiA9IG5vOyB0aGVuCisrICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBuZWNlc3NhcnkKKysg IGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MKKytmaQorK19MVF9UQUdERUNMKFtdLCBbaGFy ZGNvZGVfYWN0aW9uXSwgWzBdLAorKyAgICBbSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJh cnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGVdKQorK10pIyBfTFRfTElOS0VSX0hBUkRDT0RFX0xJ QlBBVEgKKysKKysKKysjIF9MVF9DTURfU1RSSVBMSUIKKysjIC0tLS0tLS0tLS0tLS0tLS0KKytt NF9kZWZ1bihbX0xUX0NNRF9TVFJJUExJQl0sCisrW200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQ XSkKKytzdHJpcGxpYj0KKytvbGRfc3RyaXBsaWI9CisrQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVy IHN0cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2libGVdKQorK2lmIHRlc3QgLW4gIiRTVFJJUCIg JiYgJFNUUklQIC1WIDI+JjEgfCAkR1JFUCAiR05VIHN0cmlwIiA+L2Rldi9udWxsOyB0aGVuCisr ICB0ZXN0IC16ICIkb2xkX3N0cmlwbGliIiAmJiBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtLXN0cmlw LWRlYnVnIgorKyAgdGVzdCAteiAiJHN0cmlwbGliIiAmJiBzdHJpcGxpYj0iJFNUUklQIC0tc3Ry aXAtdW5uZWVkZWQiCisrICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQorK2Vsc2UKKysjIEZJWE1FIC0g aW5zZXJ0IHNvbWUgcmVhbCB0ZXN0cywgaG9zdF9vcyBpc24ndCByZWFsbHkgZ29vZCBlbm91Z2gK KysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGRhcndpbiopCisrICAgIGlmIHRlc3QgLW4gIiRTVFJJ UCIgOyB0aGVuCisrICAgICAgc3RyaXBsaWI9IiRTVFJJUCAteCIKKysgICAgICBvbGRfc3RyaXBs aWI9IiRTVFJJUCAtUyIKKysgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQorKyAgICBlbHNlCisr ICAgICAgQUNfTVNHX1JFU1VMVChbbm9dKQorKyAgICBmaQorKyAgICA7OworKyAgKikKKysgICAg QUNfTVNHX1JFU1VMVChbbm9dKQorKyAgICA7OworKyAgZXNhYworK2ZpCisrX0xUX0RFQ0woW10s IFtvbGRfc3RyaXBsaWJdLCBbMV0sIFtDb21tYW5kcyB0byBzdHJpcCBsaWJyYXJpZXNdKQorK19M VF9ERUNMKFtdLCBbc3RyaXBsaWJdLCBbMV0pCisrXSkjIF9MVF9DTURfU1RSSVBMSUIKKysKKysK KysjIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoW1RBR10pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKyMgUE9SVE1FIEZpbGwgaW4geW91ciBsZC5zbyBjaGFyYWN0ZXJpc3RpY3MK KyttNF9kZWZ1bihbX0xUX1NZU19EWU5BTUlDX0xJTktFUl0sCisrW0FDX1JFUVVJUkUoW0FDX0NB Tk9OSUNBTF9IT1NUXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCisrbTRf cmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RF Q0xfT0JKRFVNUF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKKyttNF9yZXF1 aXJlKFtfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVNdKWRubAorK0FDX01TR19DSEVDS0lORyhbZHlu YW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzXSkKKyttNF9pZihbJDFdLAorKwlbXSwgWworK2lm IHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICBjYXNlICRob3N0X29zIGluCisrICAgIGRhcndp biopIGx0X2F3a19hcmc9Ii9ebGlicmFyaWVzOi8sL0xSLyIgOzsKKysgICAgKikgbHRfYXdrX2Fy Zz0iL15saWJyYXJpZXM6LyIgOzsKKysgIGVzYWMKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAg bWluZ3cqIHwgY2VnY2MqKSBsdF9zZWRfc3RyaXBfZXE9InMsPVwoW1tBLVphLXpdXTpcKSxcMSxn IiA7OworKyAgICAqKSBsdF9zZWRfc3RyaXBfZXE9InMsPS8sLyxnIiA7OworKyAgZXNhYworKyAg bHRfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8IGF3ayAkbHRfYXdr X2FyZyB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgJGx0X3NlZF9zdHJpcF9lcWAKKysg IGNhc2UgJGx0X3NlYXJjaF9wYXRoX3NwZWMgaW4KKysgICpcOyopCisrICAgICMgaWYgdGhlIHBh dGggY29udGFpbnMgIjsiIHRoZW4gd2UgYXNzdW1lIGl0IHRvIGJlIHRoZSBzZXBhcmF0b3IKKysg ICAgIyBvdGhlcndpc2UgZGVmYXVsdCB0byB0aGUgc3RhbmRhcmQgcGF0aCBzZXBhcmF0b3IgKGku ZS4gIjoiKSAtIGl0IGlzCisrICAgICMgYXNzdW1lZCB0aGF0IG5vIHBhcnQgb2YgYSBub3JtYWwg cGF0aG5hbWUgY29udGFpbnMgIjsiIGJ1dCB0aGF0IHNob3VsZAorKyAgICAjIG9rYXkgaW4gdGhl IHJlYWwgd29ybGQgd2hlcmUgIjsiIGluIGRpcnBhdGhzIGlzIGl0c2VsZiBwcm9ibGVtYXRpYy4K KysgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8 ICRTRUQgJ3MvOy8gL2cnYAorKyAgICA7OworKyAgKikKKysgICAgbHRfc2VhcmNoX3BhdGhfc3Bl Yz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgInMvJFBBVEhfU0VQQVJBVE9S LyAvZyJgCisrICAgIDs7CisrICBlc2FjCisrICAjIE9rLCBub3cgd2UgaGF2ZSB0aGUgcGF0aCwg c2VwYXJhdGVkIGJ5IHNwYWNlcywgd2UgY2FuIHN0ZXAgdGhyb3VnaCBpdAorKyAgIyBhbmQgYWRk IG11bHRpbGliIGRpciBpZiBuZWNlc3NhcnkuCisrICBsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3Bl Yz0KKysgIGx0X211bHRpX29zX2Rpcj1gJENDICRDUFBGTEFHUyAkQ0ZMQUdTICRMREZMQUdTIC1w cmludC1tdWx0aS1vcy1kaXJlY3RvcnkgMj4vZGV2L251bGxgCisrICBmb3IgbHRfc3lzX3BhdGgg aW4gJGx0X3NlYXJjaF9wYXRoX3NwZWM7IGRvCisrICAgIGlmIHRlc3QgLWQgIiRsdF9zeXNfcGF0 aC8kbHRfbXVsdGlfb3NfZGlyIjsgdGhlbgorKyAgICAgIGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9z cGVjPSIkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMgJGx0X3N5c19wYXRoLyRsdF9tdWx0aV9v c19kaXIiCisrICAgIGVsc2UKKysgICAgICB0ZXN0IC1kICIkbHRfc3lzX3BhdGgiICYmIFwKKysJ bHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9IiRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyAk bHRfc3lzX3BhdGgiCisrICAgIGZpCisrICBkb25lCisrICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAk RUNITyAiJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjIiB8IGF3ayAnCisrQkVHSU4ge1JTPSIg IjsgRlM9Ii98XG4iO30geworKyAgbHRfZm9vPSIiOworKyAgbHRfY291bnQ9MDsKKysgIGZvciAo bHRfaSA9IE5GOyBsdF9pID4gMDsgbHRfaS0tKSB7CisrICAgIGlmICgkbHRfaSAhPSAiIiAmJiAk bHRfaSAhPSAiLiIpIHsKKysgICAgICBpZiAoJGx0X2kgPT0gIi4uIikgeworKyAgICAgICAgbHRf Y291bnQrKzsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgaWYgKGx0X2NvdW50ID09IDApIHsK KysgICAgICAgICAgbHRfZm9vPSIvIiAkbHRfaSBsdF9mb287CisrICAgICAgICB9IGVsc2Ugewor KyAgICAgICAgICBsdF9jb3VudC0tOworKyAgICAgICAgfQorKyAgICAgIH0KKysgICAgfQorKyAg fQorKyAgaWYgKGx0X2ZvbyAhPSAiIikgeyBsdF9mcmVxW1tsdF9mb29dXSsrOyB9CisrICBpZiAo bHRfZnJlcVtbbHRfZm9vXV0gPT0gMSkgeyBwcmludCBsdF9mb287IH0KKyt9J2AKKysgICMgQVdL IHByb2dyYW0gYWJvdmUgZXJyb25lb3VzbHkgcHJlcGVuZHMgJy8nIHRvIEM6L2Rvcy9wYXRocwor KyAgIyBmb3IgdGhlc2UgaG9zdHMuCisrICBjYXNlICRob3N0X29zIGluCisrICAgIG1pbmd3KiB8 IGNlZ2NjKikgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVj IiB8XAorKyAgICAgICRTRUQgJ3MsL1woW1tBLVphLXpdXTpcKSxcMSxnJ2AgOzsKKysgIGVzYWMK KysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVj IiB8ICRsdF9OTDJTUGAKKytlbHNlCisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9saWIg L3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCisrZmldKQorK2xpYnJhcnlfbmFtZXNfc3BlYz0KKyts aWJuYW1lX3NwZWM9J2xpYiRuYW1lJworK3NvbmFtZV9zcGVjPQorK3NocmV4dF9jbWRzPSIuc28i CisrcG9zdGluc3RhbGxfY21kcz0KKytwb3N0dW5pbnN0YWxsX2NtZHM9CisrZmluaXNoX2NtZHM9 CisrZmluaXNoX2V2YWw9Cisrc2hsaWJwYXRoX3Zhcj0KKytzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9dW5rbm93bgorK3ZlcnNpb25fdHlwZT1ub25lCisrZHluYW1pY19saW5rZXI9IiRob3N0 X29zIGxkLnNvIgorK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIgor K25lZWRfbGliX3ByZWZpeD11bmtub3duCisraGFyZGNvZGVfaW50b19saWJzPW5vCisrCisrIyB3 aGVuIHlvdSBzZXQgbmVlZF92ZXJzaW9uIHRvIG5vLCBtYWtlIHN1cmUgaXQgZG9lcyBub3QgY2F1 c2UgLXNldF92ZXJzaW9uCisrIyBmbGFncyB0byBiZSBsZWZ0IHdpdGhvdXQgYXJndW1lbnRzCisr bmVlZF92ZXJzaW9uPXVua25vd24KKysKKytjYXNlICRob3N0X29zIGluCisrYWl4MyopCisrICB2 ZXJzaW9uX3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZS5hJworKyAgc2hsaWJwYXRoX3Zh cj1MSUJQQVRICisrCisrICAjIEFJWCAzIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIHdl IGFwcGVuZCBhIG1ham9yIHZlcnNpb24gdG8gdGhlIG5hbWUuCisrICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgOzsKKysKKythaXhbWzQt OV1dKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBu ZWVkX3ZlcnNpb249bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIGlmIHRlc3QgIiRo b3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAgICMgQUlYIDUgc3VwcG9ydHMgSUE2NAorKyAgICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv ciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtz aGFyZWRfZXh0fScKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGVsc2UK KysgICAgIyBXaXRoIEdDQyB1cCB0byAyLjk1LngsIGNvbGxlY3QyIHdvdWxkIGNyZWF0ZSBhbiBp bXBvcnQgZmlsZQorKyAgICAjIGZvciBkZXBlbmRlbmNlIGxpYnJhcmllcy4gIFRoZSBpbXBvcnQg ZmlsZSB3b3VsZCBzdGFydCB3aXRoCisrICAgICMgdGhlIGxpbmUgYCMhIC4nLiAgVGhpcyB3b3Vs ZCBjYXVzZSB0aGUgZ2VuZXJhdGVkIGxpYnJhcnkgdG8KKysgICAgIyBkZXBlbmQgb24gYC4nLCBh bHdheXMgYW4gaW52YWxpZCBsaWJyYXJ5LiAgVGhpcyB3YXMgZml4ZWQgaW4KKysgICAgIyBkZXZl bG9wbWVudCBzbmFwc2hvdHMgb2YgR0NDIHByaW9yIHRvIDMuMC4KKysgICAgY2FzZSAkaG9zdF9v cyBpbgorKyAgICAgIGFpeDQgfCBhaXg0LltbMDFdXSB8IGFpeDQuW1swMV1dLiopCisrICAgICAg aWYgeyBlY2hvICcjaWYgX19HTlVDX18gPiAyIHx8IChfX0dOVUNfXyA9PSAyICYmIF9fR05VQ19N SU5PUl9fID49IDk3KScKKysJICAgZWNobyAnIHllcyAnCisrCSAgIGVjaG8gJyNlbmRpZic7IH0g fCAke0NDfSAtRSAtIHwgJEdSRVAgeWVzID4gL2Rldi9udWxsOyB0aGVuCisrCToKKysgICAgICBl bHNlCisrCWNhbl9idWlsZF9zaGFyZWQ9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrICAgIGVz YWMKKysgICAgIyBBSVggKG9uIFBvd2VyKikgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28g Y3VycmVudGx5IHdlIGNhbiBub3QgaGFyZGNvZGUgY29ycmVjdAorKyAgICAjIHNvbmFtZSBpbnRv IGV4ZWN1dGFibGUuIFByb2JhYmx5IHdlIGNhbiBhZGQgdmVyc2lvbmluZyBzdXBwb3J0IHRvCisr ICAgICMgY29sbGVjdDIsIHNvIGFkZGl0aW9uYWwgbGlua3MgY2FuIGJlIHVzZWZ1bCBpbiBmdXR1 cmUuCisrICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgor KyAgICAgICMgSWYgdXNpbmcgcnVuIHRpbWUgbGlua2luZyAob24gQUlYIDQuMiBvciBsYXRlcikg dXNlIGxpYjxuYW1lPi5zbworKyAgICAgICMgaW5zdGVhZCBvZiBsaWI8bmFtZT4uYSB0byBsZXQg cGVvcGxlIGtub3cgdGhhdCB0aGVzZSBhcmUgbm90CisrICAgICAgIyB0eXBpY2FsIEFJWCBzaGFy ZWQgbGlicmFyaWVzLgorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBlbHNlCisrICAgICAgIyBX ZSBwcmVzZXJ2ZSAuYSBhcyBleHRlbnNpb24gZm9yIHNoYXJlZCBsaWJyYXJpZXMgdGhyb3VnaCBB SVg0LjIKKysgICAgICAjIGFuZCBsYXRlciB3aGVuIHdlIGFyZSBub3QgZG9pbmcgcnVuIHRpbWUg bGlua2luZy4KKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 LmEgJGxpYm5hbWUuYScKKysgICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJworKyAgICBmaQorKyAgICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgK KysgIGZpCisrICA7OworKworK2FtaWdhb3MqKQorKyAgY2FzZSAkaG9zdF9jcHUgaW4KKysgIHBv d2VycGMpCisrICAgICMgU2luY2UgSnVseSAyMDA3IEFtaWdhT1M0IG9mZmljaWFsbHkgc3VwcG9y dHMgLnNvIGxpYnJhcmllcy4KKysgICAgIyBXaGVuIGNvbXBpbGluZyB0aGUgZXhlY3V0YWJsZSwg YWRkIC11c2UtZHlubGQgLUxzb2JqczogdG8gdGhlIGNvbXBpbGVsaW5lLgorKyAgICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRf ZXh0fScKKysgICAgOzsKKysgIG02OGspCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5h bWUuaXhsaWJyYXJ5ICRsaWJuYW1lLmEnCisrICAgICMgQ3JlYXRlICR7bGlibmFtZX1faXhsaWJy YXJ5LmEgZW50cmllcyBpbiAvc3lzL2xpYnMuCisrICAgIGZpbmlzaF9ldmFsPSdmb3IgbGliIGlu IGBscyAkbGliZGlyLyouaXhsaWJyYXJ5IDI+L2Rldi9udWxsYDsgZG8gbGlibmFtZT1gZnVuY19l Y2hvX2FsbCAiJGxpYiIgfCAkU0VEICdcJydzJV4uKi9cKFtbXi9dXSpcKVwuaXhsaWJyYXJ5JCVc MSUnXCcnYDsgdGVzdCAkUk0gL3N5cy9saWJzLyR7bGlibmFtZX1faXhsaWJyYXJ5LmE7ICRzaG93 ICJjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIjsgY2Qg L3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSB8fCBleGl0IDE7 IGRvbmUnCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2Jlb3MqKQorKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgIGR5bmFtaWNfbGlua2VyPSIk aG9zdF9vcyBsZC5zbyIKKysgIHNobGlicGF0aF92YXI9TElCUkFSWV9QQVRICisrICA7OworKwor K2JzZGlbWzQ1XV0qKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX3ZlcnNpb249bm8K KysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5h bWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvcicKKysgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxk Y29uZmlnICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9YMTEvbGliIC91c3Iv Y29udHJpYi9saWIgL2xpYiAvdXNyL2xvY2FsL2xpYiIKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0 aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCisrICAjIHRoZSBkZWZhdWx0 IGxkLnNvLmNvbmYgYWxzbyBjb250YWlucyAvdXNyL2NvbnRyaWIvbGliIGFuZAorKyAgIyAvdXNy L1gxMVI2L2xpYiAoL3Vzci9YMTEgaXMgYSBsaW5rIHRvIC91c3IvWDExUjYpLCBidXQgbGV0IHVz IGFsbG93CisrICAjIGxpYnRvb2wgdG8gaGFyZC1jb2RlIHRoZXNlIGludG8gcHJvZ3JhbXMKKysg IDs7CisrCisrY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorKyAgdmVyc2lvbl90 eXBlPXdpbmRvd3MKKysgIHNocmV4dF9jbWRzPSIuZGxsIgorKyAgbmVlZF92ZXJzaW9uPW5vCisr ICBuZWVkX2xpYl9wcmVmaXg9bm8KKysKKysgIGNhc2UgJEdDQywkaG9zdF9vcyBpbgorKyAgeWVz LGN5Z3dpbiogfCB5ZXMsbWluZ3cqIHwgeWVzLHB3MzIqIHwgeWVzLGNlZ2NjKikKKysgICAgbGli cmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwuYScKKysgICAgIyBETEwgaXMgaW5zdGFsbGVk IHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21kcworKyAgICBwb3N0aW5zdGFs bF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwke2ZpbGV9YH4KKysgICAgICBkbHBhdGg9YCRT SEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcnaTsgZWNobyBcJGRs bmFtZSdcJydgfgorKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KKysg ICAgICB0ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4KKysgICAgICAkaW5zdGFs bF9wcm9nICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+CisrICAgICAgY2htb2QgYSt4IFwk ZGxkaXIvJGRsbmFtZX4KKysgICAgICBpZiB0ZXN0IC1uICdcJyckc3RyaXBtZSdcJycgJiYgdGVz dCAtbiAnXCcnJHN0cmlwbGliJ1wnJzsgdGhlbgorKyAgICAgICAgZXZhbCAnXCcnJHN0cmlwbGli IFwkZGxkaXIvJGRsbmFtZSdcJycgfHwgZXhpdCBcJD87CisrICAgICAgZmknCisrICAgIHBvc3R1 bmluc3RhbGxfY21kcz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwk ZGxuYW1lJ1wnJ2B+CisrICAgICAgZGxwYXRoPSRkaXIvXCRkbGRsbH4KKysgICAgICAgJFJNIFwk ZGxwYXRoJworKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrCisrICAgIGNh c2UgJGhvc3Rfb3MgaW4KKysgICAgY3lnd2luKikKKysgICAgICAjIEN5Z3dpbiBETExzIHVzZSAn Y3lnJyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKKysgICAgICBzb25hbWVfc3BlYz0nYGVjaG8g JHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL2N5Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VE IC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKyttNF9pZihbJDFd LCBbXSxbCisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjIC91c3IvbGliL3czMmFwaSJdKQorKyAgICAgIDs7CisrICAgIG1pbmd3KiB8IGNl Z2NjKikKKysgICAgICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlvbmFsICdsaWInIHByZWZpeAor KyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUg J3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIDs7CisrICAg IHB3MzIqKQorKyAgICAgICMgcHczMiBETExzIHVzZSAncHcnIHByZWZpeCByYXRoZXIgdGhhbiAn bGliJworKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAt ZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ak e3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgOzsK KysKKysgICopCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVs ZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAk bGlibmFtZS5saWInCisrICAgIDs7CisrICBlc2FjCisrICBkeW5hbWljX2xpbmtlcj0nV2luMzIg bGQuZXhlJworKyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGly ZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGluCisrICBzaGxpYnBhdGhfdmFyPVBBVEgKKysgIDs7 CisrCisrZGFyd2luKiB8IHJoYXBzb2R5KikKKysgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBk eWxkIgorKyAgdmVyc2lvbl90eXBlPWRhcndpbgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBu ZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke21ham9yfSRzaGFyZWRfZXh0ICR7bGlibmFtZX0kc2hhcmVkX2V4dCcKKysgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQnCisrICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBzaGxpYnBhdGhfdmFyPURZTERfTElCUkFSWV9Q QVRICisrICBzaHJleHRfY21kcz0nYHRlc3QgLiRtb2R1bGUgPSAueWVzICYmIGVjaG8gLnNvIHx8 IGVjaG8gLmR5bGliYCcKKyttNF9pZihbJDFdLCBbXSxbCisrICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL3Vzci9sb2NhbC9saWIiXSkKKysgIHN5 c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvbGliIC91c3IvbGliJwor KyAgOzsKKysKKytkZ3V4KikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJl Zml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUkc2hhcmVkX2V4dCcKKysgIHNvbmFtZV9zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAorKyAgOzsKKysKKytmcmVlYnNkMSopCisrICBkeW5hbWljX2xp bmtlcj1ubworKyAgOzsKKysKKytmcmVlYnNkKiB8IGRyYWdvbmZseSopCisrICAjIERyYWdvbkZs eSBkb2VzIG5vdCBoYXZlIGFvdXQuICBXaGVuL2lmIHRoZXkgaW1wbGVtZW50IGEgbmV3CisrICAj IHZlcnNpb25pbmcgbWVjaGFuaXNtLCBhZGp1c3QgdGhpcy4KKysgIGlmIHRlc3QgLXggL3Vzci9i aW4vb2JqZm9ybWF0OyB0aGVuCisrICAgIG9iamZvcm1hdD1gL3Vzci9iaW4vb2JqZm9ybWF0YAor KyAgZWxzZQorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGZyZWVic2RbWzEyM11dKikgb2Jq Zm9ybWF0PWFvdXQgOzsKKysgICAgKikgb2JqZm9ybWF0PWVsZiA7OworKyAgICBlc2FjCisrICBm aQorKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtJG9iamZvcm1hdAorKyAgY2FzZSAkdmVyc2lvbl90 eXBlIGluCisrICAgIGZyZWVic2QtZWxmKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgICBuZWVkX3Zl cnNpb249bm8KKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICA7OworKyAgICBmcmVl YnNkLSopCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisr ICAgICAgbmVlZF92ZXJzaW9uPXllcworKyAgICAgIDs7CisrICBlc2FjCisrICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgZnJlZWJzZDIqKQor KyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICAgIDs7CisrICBmcmVlYnNk My5bWzAxXV0qIHwgZnJlZWJzZGVsZjMuW1swMV1dKikKKysgICAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPXllcworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7CisrICBm cmVlYnNkMy5bWzItOV1dKiB8IGZyZWVic2RlbGYzLltbMi05XV0qIHwgXAorKyAgZnJlZWJzZDQu W1swLTVdXSB8IGZyZWVic2RlbGY0LltbMC01XV0gfCBmcmVlYnNkNC4xLjEgfCBmcmVlYnNkZWxm NC4xLjEpCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgICBoYXJkY29k ZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7CisrICAqKSAjIGZyb20gNC42IG9uLCBhbmQgRHJhZ29u Rmx5CisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAgaGFyZGNvZGVf aW50b19saWJzPXllcworKyAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytnbnUqKQorKyAgdmVy c2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1u bworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7 bGlibmFtZX0ke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI CisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK2hhaWt1KikKKysgIHZlcnNp b25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8K KysgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBydW50aW1lX2xvYWRlciIKKysgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0ke21ham9yfSAke2xpYm5hbWV9JHtzaGFy ZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcworKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy9ib290 L2hvbWUvY29uZmlnL2xpYiAvYm9vdC9jb21tb24vbGliIC9ib290L3N5c3RlbS9saWInCisrICBo YXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK2hwdXg5KiB8IGhwdXgxMCogfCBocHV4 MTEqKQorKyAgIyBHaXZlIGEgc29uYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1ham9yIHZlcnNp b24gc28gdGhhdCBkbGQuc2wgcmVmdXNlcyB0bworKyAgIyBsaW5rIGFnYWluc3Qgb3RoZXIgdmVy c2lvbnMuCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAg bmVlZF92ZXJzaW9uPW5vCisrICBjYXNlICRob3N0X2NwdSBpbgorKyAgaWE2NCopCisrICAgIHNo cmV4dF9jbWRzPScuc28nCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgZHluYW1p Y19saW5rZXI9IiRob3N0X29zIGRsZC5zbyIKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ X1BBVEgKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9l bnZ2YXIgaXMgc3BlY2lmaWVkLgorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgaWYgdGVzdCAi WCRIUFVYX0lBNjRfTU9ERSIgPSBYMzI7IHRoZW4KKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9Ii91c3IvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9s aWIiCisrICAgIGVsc2UKKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGli L2hwdXg2NCAvdXNyL2xvY2FsL2xpYi9ocHV4NjQiCisrICAgIGZpCisrICAgIHN5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKKysgICAgOzsKKysgIGhw cGEqNjQqKQorKyAgICBzaHJleHRfY21kcz0nLnNsJworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9 eWVzCisrICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCisrICAgIHNobGlicGF0 aF92YXI9TERfTElCUkFSWV9QQVRIICMgSG93IHNob3VsZCB3ZSBoYW5kbGUgU0hMSUJfUEFUSAor KyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZhciBp cyBzcGVjaWZpZWQuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICBzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9Ii91c3IvbGliL3BhMjBfNjQgL3Vzci9jY3MvbGliL3BhMjBfNjQiCisrICAgIHN5 c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKKysgICAg OzsKKysgICopCisrICAgIHNocmV4dF9jbWRzPScuc2wnCisrICAgIGR5bmFtaWNfbGlua2VyPSIk aG9zdF9vcyBkbGQuc2wiCisrICAgIHNobGlicGF0aF92YXI9U0hMSUJfUEFUSAorKyAgICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8gIyArcyBpcyByZXF1aXJlZCB0byBlbmFibGUgU0hM SUJfUEFUSAorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgOzsKKysgIGVzYWMKKysgICMgSFAt VVggcnVucyAqcmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG1vZGUg NTU1LCAuLi4KKysgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDU1NSAkbGliJworKyAgIyBvciBm YWlscyBvdXRyaWdodCwgc28gb3ZlcnJpZGUgYXRvbWljYWxseToKKysgIGluc3RhbGxfb3ZlcnJp ZGVfbW9kZT01NTUKKysgIDs7CisrCisraW50ZXJpeFtbMy05XV0qKQorKyAgdmVyc2lvbl90eXBl PWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtz aGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCisrICBkeW5hbWljX2xpbmtlcj0nSW50ZXJpeCAzLnggbGQuc28uMSAoUEUs IGxpa2UgRUxGKScKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7 CisrCisraXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysgIGNhc2UgJGhvc3Rfb3MgaW4K KysgICAgbm9uc3RvcHV4KikgdmVyc2lvbl90eXBlPW5vbnN0b3B1eCA7OworKyAgICAqKQorKwlp ZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCisrCQl2ZXJzaW9uX3R5cGU9 bGludXgKKysJZWxzZQorKwkJdmVyc2lvbl90eXBlPWlyaXgKKysJZmkgOzsKKysgIGVzYWMKKysg IG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBzb25hbWVfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgY2FzZSAkaG9zdF9vcyBpbgor KyAgaXJpeDUqIHwgbm9uc3RvcHV4KikKKysgICAgbGlic3VmZj0gc2hsaWJzdWZmPQorKyAgICA7 OworKyAgKikKKysgICAgY2FzZSAkTEQgaW4gIyBsaWJ0b29sLm00IHdpbGwgYWRkIG9uZSBvZiB0 aGVzZSBzd2l0Y2hlcyB0byBMRAorKyAgICAqLTMyfCoiLTMyICJ8Ki1tZWxmMzJic21pcHwqIi1t ZWxmMzJic21pcCAiKQorKyAgICAgIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9MzItYml0 OzsKKysgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJibWlwbjMyfCoiLW1lbGYzMmJtaXBuMzIg IikKKysgICAgICBsaWJzdWZmPTMyIHNobGlic3VmZj1OMzIgbGlibWFnaWM9TjMyOzsKKysgICAg Ki02NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxmNjRibWlwICIpCisrICAgICAgbGlic3Vm Zj02NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0OzsKKysgICAgKikgbGlic3VmZj0gc2hs aWJzdWZmPSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIGVz YWMKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7c2hsaWJzdWZmfV9QQVRICisrICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0i L3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHtsaWJzdWZm fSIKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xp YiR7bGlic3VmZn0iCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworKyMgTm8g c2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRsZCwgYW91dCwgb3IgY29mZi4KKytsaW51 eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYqKQorKyAgZHluYW1pY19saW5rZXI9 bm8KKysgIDs7CisrCisrIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgorK2xpbnV4KiB8IGsqYnNk Ki1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVl ZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAg c29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysg IGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1uICRsaWJkaXInCisr ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPW5vCisrCisrICAjIFNvbWUgYmludXRpbHMgbGQgYXJlIHBhdGNoZWQgdG8gc2V0IERU X1JVTlBBVEgKKysgIEFDX0NBQ0hFX1ZBTChbbHRfY3Zfc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoXSwKKysgICAgW2x0X2N2X3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgICBz YXZlX0xERkxBR1M9JExERkxBR1MKKysgICAgc2F2ZV9saWJkaXI9JGxpYmRpcgorKyAgICBldmFs ICJsaWJkaXI9L2Zvbzsgd2w9XCIkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSlc IjsgXAorKwkgTERGTEFHUz1cIlwkTERGTEFHUyAkX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSlcIiIKKysgICAgQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShb XSxbXSldLAorKyAgICAgIFtBU19JRihbICgkT0JKRFVNUCAtcCBjb25mdGVzdCRhY19leGVleHQp IDI+L2Rldi9udWxsIHwgZ3JlcCAiUlVOUEFUSC4qJGxpYmRpciIgPi9kZXYvbnVsbF0sCisrCSBb bHRfY3Zfc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllc10pXSkKKysgICAgTERGTEFHUz0k c2F2ZV9MREZMQUdTCisrICAgIGxpYmRpcj0kc2F2ZV9saWJkaXIKKysgICAgXSkKKysgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD0kbHRfY3Zfc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo CisrCisrICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGwsIHdoaWNoIGlzIHVuYWNjZXB0 YWJsZS4KKysgICMgU29tZSByZXdvcmsgd2lsbCBiZSBuZWVkZWQgdG8gYWxsb3cgZm9yIGZhc3Rf aW5zdGFsbAorKyAgIyBiZWZvcmUgdGhpcyBjYW4gYmUgZW5hYmxlZC4KKysgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKKysKKysgICMgQWRkIEFCSS1zcGVjaWZpYyBkaXJlY3RvcmllcyB0byB0aGUg c3lzdGVtIGxpYnJhcnkgcGF0aC4KKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGli NjQgL3Vzci9saWI2NCAvbGliIC91c3IvbGliIgorKworKyAgIyBBcHBlbmQgbGQuc28uY29uZiBj b250ZW50cyB0byB0aGUgc2VhcmNoIHBhdGgKKysgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25m OyB0aGVuCisrICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmlu dGYoImNkIC9ldGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIsIFxbJF0yKSk7IHNraXAgPSAxOyB9IHsg aWYgKCFza2lwKSBwcmludCBcWyRdMDsgc2tpcCA9IDA7IH0nIDwgL2V0Yy9sZC5zby5jb25mIHwg JFNFRCAtZSAncy8jLiovLzsvXlsJIF0qaHdjYXBbCSBdL2Q7cy9bOiwJXS8gL2c7cy89W149XSok Ly87cy89W149IF0qIC8gL2c7cy8iLy9nOy9eJC9kJyB8IHRyICdcbicgJyAnYAorKyAgICBzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjICRsdF9s ZF9leHRyYSIKKysKKysgIGZpCisrCisrICAjIFdlIHVzZWQgdG8gdGVzdCBmb3IgL2xpYi9sZC5z by4xIGFuZCBkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMgb24KKysgICMgcG93ZXJwYywgYmVjYXVz ZSBNa0xpbnV4IG9ubHkgc3VwcG9ydGVkIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB0aGUKKysgICMg R05VIGR5bmFtaWMgbGlua2VyLiAgU2luY2UgdGhpcyB3YXMgYnJva2VuIHdpdGggY3Jvc3MgY29t cGlsZXJzLAorKyAgIyBtb3N0IHBvd2VycGMtbGludXggYm94ZXMgc3VwcG9ydCBkeW5hbWljIGxp bmtpbmcgdGhlc2UgZGF5cyBhbmQKKysgICMgcGVvcGxlIGNhbiBhbHdheXMgLS1kaXNhYmxlLXNo YXJlZCwgdGhlIHRlc3Qgd2FzIHJlbW92ZWQsIGFuZCB3ZQorKyAgIyBhc3N1bWUgdGhlIEdOVS9M aW51eCBkeW5hbWljIGxpbmtlciBpcyBpbiB1c2UuCisrICBkeW5hbWljX2xpbmtlcj0nR05VL0xp bnV4IGxkLnNvJworKyAgOzsKKysKKytuZXRic2QqKQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisr ICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgaWYgZWNobyBfX0VM Rl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KKysgICAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKysgICAgZmluaXNoX2NtZHM9 J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKKysgICAgZHluYW1pY19s aW5rZXI9J05ldEJTRCAoYS5vdXQpIGxkLnNvJworKyAgZWxzZQorKyAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9 JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJworKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIGxkLmVsZl9zbycKKysgIGZpCisrICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPXllcworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKytuZXdzb3M2KQor KyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICA7 OworKworKypudG8qIHwgKnFueCopCisrICB2ZXJzaW9uX3R5cGU9cW54CisrICBuZWVkX2xpYl9w cmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1u bworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgZHluYW1pY19saW5rZXI9J2xkcW54LnNv JworKyAgOzsKKysKKytvcGVuYnNkKikKKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisr ICAjIFNvbWUgb2xkZXIgdmVyc2lvbnMgb2YgT3BlbkJTRCAoMy4zIGF0IGxlYXN0KSAqZG8qIG5l ZWQgdmVyc2lvbmVkIGxpYnMuCisrICBjYXNlICRob3N0X29zIGluCisrICAgIG9wZW5ic2QzLjMg fCBvcGVuYnNkMy4zLiopCW5lZWRfdmVyc2lvbj15ZXMgOzsKKysgICAgKikJCQkJbmVlZF92ZXJz aW9uPW5vICA7OworKyAgZXNhYworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCcKKysgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1t ICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgaWYgdGVzdCAt eiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8IHRlc3QgIiRo b3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgorKyAgICBjYXNl ICRob3N0X29zIGluCisrICAgICAgb3BlbmJzZDIuW1s4OV1dIHwgb3BlbmJzZDIuW1s4OV1dLiop CisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKwk7OworKyAgICAgICopCisrCXNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysJOzsKKysgICAgICBlc2FjCisrICBlbHNl CisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGZpCisrICA7OworKwor K29zMiopCisrICBsaWJuYW1lX3NwZWM9JyRuYW1lJworKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCisr ICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3No YXJlZF9leHR9ICRsaWJuYW1lLmEnCisrICBkeW5hbWljX2xpbmtlcj0nT1MvMiBsZC5leGUnCisr ICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysgIDs7CisrCisrb3NmMyogfCBvc2Y0KiB8IG9zZjUq KQorKyAgdmVyc2lvbl90eXBlPW9zZgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3Zl cnNpb249bm8KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3InCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Ivc2hsaWIgL3Vzci9jY3MvbGli IC91c3IvbGliL2NtcGxycy9jYyAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiAvdmFyL3NobGliIgor KyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMi CisrICA7OworKworK3Jkb3MqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrc29s YXJpcyopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAg bmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJ QlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgaGFyZGNv ZGVfaW50b19saWJzPXllcworKyAgIyBsZGQgY29tcGxhaW5zIHVubGVzcyBsaWJyYXJpZXMgYXJl IGV4ZWN1dGFibGUKKysgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kICt4ICRsaWInCisrICA7Owor KworK3N1bm9zNCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi91 c3IvZXRjIiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB VEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGlmIHRlc3QgIiR3aXRo X2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgbmVlZF9saWJfcHJlZml4PW5vCisrICBmaQorKyAg bmVlZF92ZXJzaW9uPXllcworKyAgOzsKKysKKytzeXN2NCB8IHN5c3Y0LjMqKQorKyAgdmVyc2lv bl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAorKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KKysgICAgc25pKQorKyAgICAgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAg ICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrICAgICAgOzsKKysgICAgc2llbWVucykKKysg ICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICA7OworKyAgICBtb3Rvcm9sYSkKKysgICAg ICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICBuZWVkX3ZlcnNpb249bm8KKysgICAgICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9Jy9saWIgL3Vzci9saWIgL3Vzci9jY3MvbGliJworKyAgICAgIDs7CisrICBlc2FjCisrICA7 OworKworK3N5c3Y0Kk1QKikKKysgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KKysgICAgdmVy c2lvbl90eXBlPWxpbnV4CisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJl ZF9leHR9LiR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvciAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1h am9yJworKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgZmkKKysgIDs7Cisr Cisrc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8 IHN5c3Y0KnV3MiopCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC1lbGYKKysgIG5lZWRfbGliX3By ZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAg aGFyZGNvZGVfaW50b19saWJzPXllcworKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsg dGhlbgorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC91c3Iv Z251L2xpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIgL2xpYicKKysgIGVsc2UKKysgICAgc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2Njcy9saWIgL3Vzci9saWInCisrICAgIGNhc2UgJGhv c3Rfb3MgaW4KKysgICAgICBzY28zLjJ2NSopCisrICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL2xpYiIKKysJOzsKKysgICAgZXNhYwor KyAgZmkKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xpYicKKysgIDs7Cisr CisrdHBmKikKKysgICMgVFBGIGlzIGEgY3Jvc3MtdGFyZ2V0IG9ubHkuICBQcmVmZXJyZWQgY3Jv c3MtaG9zdCA9IEdOVS9MaW51eC4KKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJf cHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1u bworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKyt1dHM0KikKKysgIHZlcnNp b25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKKysgIDs7CisrCisrKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworK2Vz YWMKKytBQ19NU0dfUkVTVUxUKFskZHluYW1pY19saW5rZXJdKQorK3Rlc3QgIiRkeW5hbWljX2xp bmtlciIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisrCisrdmFyaWFibGVzX3NhdmVkX2Zv cl9yZWxpbms9IlBBVEggJHNobGlicGF0aF92YXIgJHJ1bnBhdGhfdmFyIgorK2lmIHRlc3QgIiRH Q0MiID0geWVzOyB0aGVuCisrICB2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iJHZhcmlhYmxl c19zYXZlZF9mb3JfcmVsaW5rIEdDQ19FWEVDX1BSRUZJWCBDT01QSUxFUl9QQVRIIExJQlJBUllf UEFUSCIKKytmaQorKworK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj K3NldH0iID0gc2V0OyB0aGVuCisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9z eXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCisrZmkKKytpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCisrICBzeXNfbGliX2Rsc2VhcmNo X3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIgorK2ZpCisrCisr X0xUX0RFQ0woW10sIFt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGlua10sIFsxXSwKKysgICAgW1Zh cmlhYmxlcyB3aG9zZSB2YWx1ZXMgc2hvdWxkIGJlIHNhdmVkIGluIGxpYnRvb2wgd3JhcHBlciBz Y3JpcHRzIGFuZAorKyAgICByZXN0b3JlZCBhdCBsaW5rIHRpbWVdKQorK19MVF9ERUNMKFtdLCBb bmVlZF9saWJfcHJlZml4XSwgWzBdLAorKyAgICBbRG8gd2UgbmVlZCB0aGUgImxpYiIgcHJlZml4 IGZvciBtb2R1bGVzP10pCisrX0xUX0RFQ0woW10sIFtuZWVkX3ZlcnNpb25dLCBbMF0sIFtEbyB3 ZSBuZWVkIGEgdmVyc2lvbiBmb3IgbGlicmFyaWVzP10pCisrX0xUX0RFQ0woW10sIFt2ZXJzaW9u X3R5cGVdLCBbMF0sIFtMaWJyYXJ5IHZlcnNpb25pbmcgdHlwZV0pCisrX0xUX0RFQ0woW10sIFty dW5wYXRoX3Zhcl0sIFswXSwgIFtTaGFyZWQgbGlicmFyeSBydW50aW1lIHBhdGggdmFyaWFibGVd KQorK19MVF9ERUNMKFtdLCBbc2hsaWJwYXRoX3Zhcl0sIFswXSxbU2hhcmVkIGxpYnJhcnkgcGF0 aCB2YXJpYWJsZV0pCisrX0xUX0RFQ0woW10sIFtzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGhd LCBbMF0sCisrICAgIFtJcyBzaGxpYnBhdGggc2VhcmNoZWQgYmVmb3JlIHRoZSBoYXJkLWNvZGVk IGxpYnJhcnkgc2VhcmNoIHBhdGg/XSkKKytfTFRfREVDTChbXSwgW2xpYm5hbWVfc3BlY10sIFsx XSwgW0Zvcm1hdCBvZiBsaWJyYXJ5IG5hbWUgcHJlZml4XSkKKytfTFRfREVDTChbXSwgW2xpYnJh cnlfbmFtZXNfc3BlY10sIFsxXSwKKysgICAgW1tMaXN0IG9mIGFyY2hpdmUgbmFtZXMuICBGaXJz dCBuYW1lIGlzIHRoZSByZWFsIG9uZSwgdGhlIHJlc3QgYXJlIGxpbmtzLgorKyAgICBUaGUgbGFz dCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2VyIGZpbmRzIHdpdGggLWxOQU1FXV0pCisr X0xUX0RFQ0woW10sIFtzb25hbWVfc3BlY10sIFsxXSwKKysgICAgW1tUaGUgY29kZWQgbmFtZSBv ZiB0aGUgbGlicmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhlIHJlYWwgbmFtZV1dKQorK19MVF9E RUNMKFtdLCBbaW5zdGFsbF9vdmVycmlkZV9tb2RlXSwgWzFdLAorKyAgICBbUGVybWlzc2lvbiBt b2RlIG92ZXJyaWRlIGZvciBpbnN0YWxsYXRpb24gb2Ygc2hhcmVkIGxpYnJhcmllc10pCisrX0xU X0RFQ0woW10sIFtwb3N0aW5zdGFsbF9jbWRzXSwgWzJdLAorKyAgICBbQ29tbWFuZCB0byB1c2Ug YWZ0ZXIgaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmVdKQorK19MVF9ERUNMKFtdLCBb cG9zdHVuaW5zdGFsbF9jbWRzXSwgWzJdLAorKyAgICBbQ29tbWFuZCB0byB1c2UgYWZ0ZXIgdW5p bnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2ZV0pCisrX0xUX0RFQ0woW10sIFtmaW5pc2hf Y21kc10sIFsyXSwKKysgICAgW0NvbW1hbmRzIHVzZWQgdG8gZmluaXNoIGEgbGlidG9vbCBsaWJy YXJ5IGluc3RhbGxhdGlvbiBpbiBhIGRpcmVjdG9yeV0pCisrX0xUX0RFQ0woW10sIFtmaW5pc2hf ZXZhbF0sIFsxXSwKKysgICAgW1tBcyAiZmluaXNoX2NtZHMiLCBleGNlcHQgYSBzaW5nbGUgc2Ny aXB0IGZyYWdtZW50IHRvIGJlIGV2YWxlZCBidXQKKysgICAgbm90IHNob3duXV0pCisrX0xUX0RF Q0woW10sIFtoYXJkY29kZV9pbnRvX2xpYnNdLCBbMF0sCisrICAgIFtXaGV0aGVyIHdlIHNob3Vs ZCBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gbGlicmFyaWVzXSkKKytfTFRfREVDTChbXSwg W3N5c19saWJfc2VhcmNoX3BhdGhfc3BlY10sIFsyXSwKKysgICAgW0NvbXBpbGUtdGltZSBzeXN0 ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllc10pCisrX0xUX0RFQ0woW10sIFtzeXNfbGliX2Rs c2VhcmNoX3BhdGhfc3BlY10sIFsyXSwKKysgICAgW1J1bi10aW1lIHN5c3RlbSBzZWFyY2ggcGF0 aCBmb3IgbGlicmFyaWVzXSkKKytdKSMgX0xUX1NZU19EWU5BTUlDX0xJTktFUgorKworKworKyMg X0xUX1BBVEhfVE9PTF9QUkVGSVgoVE9PTCkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrIyBmaW5kIGEgZmlsZSBwcm9ncmFtIHdoaWNoIGNhbiByZWNvZ25pemUgc2hhcmVkIGxpYnJh cnkKKytBQ19ERUZVTihbX0xUX1BBVEhfVE9PTF9QUkVGSVhdLAorK1ttNF9yZXF1aXJlKFtfTFRf REVDTF9FR1JFUF0pZG5sCisrQUNfTVNHX0NIRUNLSU5HKFtmb3IgJDFdKQorK0FDX0NBQ0hFX1ZB TChsdF9jdl9wYXRoX01BR0lDX0NNRCwKKytbY2FzZSAkTUFHSUNfQ01EIGluCisrW1tcXC8qXSB8 ICA/OltcXC9dKl0pCisrICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisrICA7OworKyopCisrICBs dF9zYXZlX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIKKysgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZT PSRQQVRIX1NFUEFSQVRPUgorK2RubCAkYWNfZHVtbXkgZm9yY2VzIHNwbGl0dGluZyBvbiBjb25z dGFudCB1c2VyLXN1cHBsaWVkIHBhdGhzLgorK2RubCBQT1NJWC4yIHdvcmQgc3BsaXR0aW5nIGlz IGRvbmUgb25seSBvbiB0aGUgb3V0cHV0IG9mIHdvcmQgZXhwYW5zaW9ucywKKytkbmwgbm90IGV2 ZXJ5IHdvcmQuICBUaGlzIGNsb3NlcyBhIGxvbmdzdGFuZGluZyBzaCBzZWN1cml0eSBob2xlLgor KyAgYWNfZHVtbXk9Im00X2lmKFskMl0sICwgJFBBVEgsIFskMl0pIgorKyAgZm9yIGFjX2RpciBp biAkYWNfZHVtbXk7IGRvCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16ICIk YWNfZGlyIiAmJiBhY19kaXI9LgorKyAgICBpZiB0ZXN0IC1mICRhY19kaXIvJDE7IHRoZW4KKysg ICAgICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJGFjX2Rpci8kMSIKKysgICAgICBpZiB0ZXN0IC1u ICIkZmlsZV9tYWdpY190ZXN0X2ZpbGUiOyB0aGVuCisrCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0 aG9kIGluCisrCSJmaWxlX21hZ2ljICIqKQorKwkgIGZpbGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRk ZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiZmlsZV9tYWdpYyBcKC4qXCkiYAorKwkgIE1BR0lDX0NN RD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgorKwkgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwk ZmlsZV9tYWdpY190ZXN0X2ZpbGUgMj4gL2Rldi9udWxsIHwKKysJICAgICRFR1JFUCAiJGZpbGVf bWFnaWNfcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICA6CisrCSAgZWxzZQorKwkgICAg Y2F0IDw8X0xUX0VPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IHRoZSBjb21tYW5kIGxpYnRvb2wg dXNlcyB0byBkZXRlY3Qgc2hhcmVkIGxpYnJhcmllcywKKysqKiogJGZpbGVfbWFnaWNfY21kLCBw cm9kdWNlcyBvdXRwdXQgdGhhdCBsaWJ0b29sIGNhbm5vdCByZWNvZ25pemUuCisrKioqIFRoZSBy ZXN1bHQgaXMgdGhhdCBsaWJ0b29sIG1heSBmYWlsIHRvIHJlY29nbml6ZSBzaGFyZWQgbGlicmFy aWVzCisrKioqIGFzIHN1Y2guICBUaGlzIHdpbGwgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiBsaWJ0 b29sIGxpYnJhcmllcyB0aGF0CisrKioqIGRlcGVuZCBvbiBzaGFyZWQgbGlicmFyaWVzLCBidXQg cHJvZ3JhbXMgbGlua2VkIHdpdGggc3VjaCBsaWJ0b29sCisrKioqIGxpYnJhcmllcyB3aWxsIHdv cmsgcmVnYXJkbGVzcyBvZiB0aGlzIHByb2JsZW0uICBOZXZlcnRoZWxlc3MsIHlvdQorKyoqKiBt YXkgd2FudCB0byByZXBvcnQgdGhlIHByb2JsZW0gdG8geW91ciBzeXN0ZW0gbWFuYWdlciBhbmQv b3IgdG8KKysqKiogYnVnLWxpYnRvb2xAZ251Lm9yZworKworK19MVF9FT0YKKysJICBmaSA7Owor Kwllc2FjCisrICAgICAgZmkKKysgICAgICBicmVhaworKyAgICBmaQorKyAgZG9uZQorKyAgSUZT PSIkbHRfc2F2ZV9pZnMiCisrICBNQUdJQ19DTUQ9IiRsdF9zYXZlX01BR0lDX0NNRCIKKysgIDs7 CisrZXNhY10pCisrTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCisraWYgdGVzdCAt biAiJE1BR0lDX0NNRCI7IHRoZW4KKysgIEFDX01TR19SRVNVTFQoJE1BR0lDX0NNRCkKKytlbHNl CisrICBBQ19NU0dfUkVTVUxUKG5vKQorK2ZpCisrX0xUX0RFQ0woW10sIFtNQUdJQ19DTURdLCBb MF0sCisrCSBbVXNlZCB0byBleGFtaW5lIGxpYnJhcmllcyB3aGVuIGZpbGVfbWFnaWNfY21kIGJl Z2lucyB3aXRoICJmaWxlIl0pZG5sCisrXSkjIF9MVF9QQVRIX1RPT0xfUFJFRklYCisrCisrIyBP bGQgbmFtZToKKytBVV9BTElBUyhbQUNfUEFUSF9UT09MX1BSRUZJWF0sIFtfTFRfUEFUSF9UT09M X1BSRUZJWF0pCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2Ru bCBBQ19ERUZVTihbQUNfUEFUSF9UT09MX1BSRUZJWF0sIFtdKQorKworKworKyMgX0xUX1BBVEhf TUFHSUMKKysjIC0tLS0tLS0tLS0tLS0tCisrIyBmaW5kIGEgZmlsZSBwcm9ncmFtIHdoaWNoIGNh biByZWNvZ25pemUgYSBzaGFyZWQgbGlicmFyeQorK200X2RlZnVuKFtfTFRfUEFUSF9NQUdJQ10s CisrW19MVF9QQVRIX1RPT0xfUFJFRklYKCR7YWNfdG9vbF9wcmVmaXh9ZmlsZSwgL3Vzci9iaW4k UEFUSF9TRVBBUkFUT1IkUEFUSCkKKytpZiB0ZXN0IC16ICIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQi OyB0aGVuCisrICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAgIF9MVF9Q QVRIX1RPT0xfUFJFRklYKGZpbGUsIC91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgpCisrICBl bHNlCisrICAgIE1BR0lDX0NNRD06CisrICBmaQorK2ZpCisrXSkjIF9MVF9QQVRIX01BR0lDCisr CisrCisrIyBMVF9QQVRIX0xECisrIyAtLS0tLS0tLS0tCisrIyBmaW5kIHRoZSBwYXRobmFtZSB0 byB0aGUgR05VIG9yIG5vbi1HTlUgbGlua2VyCisrQUNfREVGVU4oW0xUX1BBVEhfTERdLAorK1tB Q19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9T VF0pZG5sCisrQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0JVSUxEXSlkbmwKKyttNF9yZXF1aXJl KFtfTFRfREVDTF9TRURdKWRubAorK200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKKytt NF9yZXF1aXJlKFtfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSF0pZG5sCisrCisrQUNfQVJHX1dJVEgo W2dudS1sZF0sCisrICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLWdudS1sZF0sCisrCVthc3N1 bWUgdGhlIEMgY29tcGlsZXIgdXNlcyBHTlUgbGQgQDw6QGRlZmF1bHQ9bm9AOj5AXSldLAorKyAg ICBbdGVzdCAiJHdpdGh2YWwiID0gbm8gfHwgd2l0aF9nbnVfbGQ9eWVzXSwKKysgICAgW3dpdGhf Z251X2xkPW5vXSlkbmwKKysKKythY19wcm9nPWxkCisraWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRo ZW4KKysgICMgQ2hlY2sgaWYgZ2NjIC1wcmludC1wcm9nLW5hbWU9bGQgZ2l2ZXMgYSBwYXRoLgor KyAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgbGQgdXNlZCBieSAkQ0NdKQorKyAgY2FzZSAkaG9zdCBp bgorKyAgKi0qLW1pbmd3KikKKysgICAgIyBnY2MgbGVhdmVzIGEgdHJhaWxpbmcgY2FycmlhZ2Ug cmV0dXJuIHdoaWNoIHVwc2V0cyBtaW5ndworKyAgICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9n LW5hbWU9bGQpIDI+JjUgfCB0ciAtZCAnXDAxNSdgIDs7CisrICAqKQorKyAgICBhY19wcm9nPWAo JENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjVgIDs7CisrICBlc2FjCisrICBjYXNlICRhY19w cm9nIGluCisrICAgICMgQWNjZXB0IGFic29sdXRlIHBhdGhzLgorKyAgICBbW1xcL11dKiB8ID86 W1tcXC9dXSopCisrICAgICAgcmVfZGlyZWx0PScvW1teL11dW1teL11dKi9cLlwuLycKKysgICAg ICAjIENhbm9uaWNhbGl6ZSB0aGUgcGF0aG5hbWUgb2YgbGQKKysgICAgICBhY19wcm9nPWAkRUNI TyAiJGFjX3Byb2cifCAkU0VEICdzJVxcXFwlLyVnJ2AKKysgICAgICB3aGlsZSAkRUNITyAiJGFj X3Byb2ciIHwgJEdSRVAgIiRyZV9kaXJlbHQiID4gL2Rldi9udWxsIDI+JjE7IGRvCisrCWFjX3By b2c9YCRFQ0hPICRhY19wcm9nfCAkU0VEICJzJSRyZV9kaXJlbHQlLyUiYAorKyAgICAgIGRvbmUK KysgICAgICB0ZXN0IC16ICIkTEQiICYmIExEPSIkYWNfcHJvZyIKKysgICAgICA7OworKyAgIiIp CisrICAgICMgSWYgaXQgZmFpbHMsIHRoZW4gcHJldGVuZCB3ZSBhcmVuJ3QgdXNpbmcgR0NDLgor KyAgICBhY19wcm9nPWxkCisrICAgIDs7CisrICAqKQorKyAgICAjIElmIGl0IGlzIHJlbGF0aXZl LCB0aGVuIHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBBVEguCisrICAgIHdpdGhfZ251X2xk PXVua25vd24KKysgICAgOzsKKysgIGVzYWMKKytlbGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5 ZXM7IHRoZW4KKysgIEFDX01TR19DSEVDS0lORyhbZm9yIEdOVSBsZF0pCisrZWxzZQorKyAgQUNf TVNHX0NIRUNLSU5HKFtmb3Igbm9uLUdOVSBsZF0pCisrZmkKKytBQ19DQUNIRV9WQUwobHRfY3Zf cGF0aF9MRCwKKytbaWYgdGVzdCAteiAiJExEIjsgdGhlbgorKyAgbHRfc2F2ZV9pZnM9IiRJRlMi OyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrICBmb3IgYWNfZGlyIGluICRQQVRIOyBkbworKyAgICBJ RlM9IiRsdF9zYXZlX2lmcyIKKysgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KKysg ICAgaWYgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyIgfHwgdGVzdCAtZiAiJGFjX2Rpci8kYWNf cHJvZyRhY19leGVleHQiOyB0aGVuCisrICAgICAgbHRfY3ZfcGF0aF9MRD0iJGFjX2Rpci8kYWNf cHJvZyIKKysgICAgICAjIENoZWNrIHRvIHNlZSBpZiB0aGUgcHJvZ3JhbSBpcyBHTlUgbGQuICBJ J2QgcmF0aGVyIHVzZSAtLXZlcnNpb24sCisrICAgICAgIyBidXQgYXBwYXJlbnRseSBzb21lIHZh cmlhbnRzIG9mIEdOVSBsZCBvbmx5IGFjY2VwdCAtdi4KKysgICAgICAjIEJyZWFrIG9ubHkgaWYg aXQgd2FzIHRoZSBHTlUvbm9uLUdOVSBsZCB0aGF0IHdlIHByZWZlci4KKysgICAgICBjYXNlIGAi JGx0X2N2X3BhdGhfTEQiIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KKysgICAgICAqR05VKiB8ICon d2l0aCBCRkQnKikKKysJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSBubyAmJiBicmVhaworKwk7Owor KyAgICAgICopCisrCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0geWVzICYmIGJyZWFrCisrCTs7Cisr ICAgICAgZXNhYworKyAgICBmaQorKyAgZG9uZQorKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrZWxz ZQorKyAgbHRfY3ZfcGF0aF9MRD0iJExEIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dCB3aXRoIGEgcGF0aC4KKytmaV0pCisrTEQ9IiRsdF9jdl9wYXRoX0xEIgorK2lmIHRlc3QgLW4g IiRMRCI7IHRoZW4KKysgIEFDX01TR19SRVNVTFQoJExEKQorK2Vsc2UKKysgIEFDX01TR19SRVNV TFQobm8pCisrZmkKKyt0ZXN0IC16ICIkTEQiICYmIEFDX01TR19FUlJPUihbbm8gYWNjZXB0YWJs ZSBsZCBmb3VuZCBpbiBcJFBBVEhdKQorK19MVF9QQVRIX0xEX0dOVQorK0FDX1NVQlNUKFtMRF0p CisrCisrX0xUX1RBR0RFQ0woW10sIFtMRF0sIFsxXSwgW1RoZSBsaW5rZXIgdXNlZCB0byBidWls ZCBsaWJyYXJpZXNdKQorK10pIyBMVF9QQVRIX0xECisrCisrIyBPbGQgbmFtZXM6CisrQVVfQUxJ QVMoW0FNX1BST0dfTERdLCBbTFRfUEFUSF9MRF0pCisrQVVfQUxJQVMoW0FDX1BST0dfTERdLCBb TFRfUEFUSF9MRF0pCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5Ogor K2RubCBBQ19ERUZVTihbQU1fUFJPR19MRF0sIFtdKQorK2RubCBBQ19ERUZVTihbQUNfUFJPR19M RF0sIFtdKQorKworKworKyMgX0xUX1BBVEhfTERfR05VCisrIy0gLS0tLS0tLS0tLS0tLS0KKytt NF9kZWZ1bihbX0xUX1BBVEhfTERfR05VXSwKKytbQUNfQ0FDSEVfQ0hFQ0soW2lmIHRoZSBsaW5r ZXIgKCRMRCkgaXMgR05VIGxkXSwgbHRfY3ZfcHJvZ19nbnVfbGQsCisrWyMgSSdkIHJhdGhlciB1 c2UgLS12ZXJzaW9uIGhlcmUsIGJ1dCBhcHBhcmVudGx5IHNvbWUgR05VIGxkcyBvbmx5IGFjY2Vw dCAtdi4KKytjYXNlIGAkTEQgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgorKypHTlUqIHwgKid3aXRo IEJGRCcqKQorKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9eWVzCisrICA7OworKyopCisrICBsdF9jdl9w cm9nX2dudV9sZD1ubworKyAgOzsKKytlc2FjXSkKKyt3aXRoX2dudV9sZD0kbHRfY3ZfcHJvZ19n bnVfbGQKKytdKSMgX0xUX1BBVEhfTERfR05VCisrCisrCisrIyBfTFRfQ01EX1JFTE9BRAorKyMg LS0tLS0tLS0tLS0tLS0KKysjIGZpbmQgcmVsb2FkIGZsYWcgZm9yIGxpbmtlcgorKyMgICAtLSBQ T1JUTUUgU29tZSBsaW5rZXJzIG1heSBuZWVkIGEgZGlmZmVyZW50IHJlbG9hZCBmbGFnLgorK200 X2RlZnVuKFtfTFRfQ01EX1JFTE9BRF0sCisrW0FDX0NBQ0hFX0NIRUNLKFtmb3IgJExEIG9wdGlv biB0byByZWxvYWQgb2JqZWN0IGZpbGVzXSwKKysgIGx0X2N2X2xkX3JlbG9hZF9mbGFnLAorKyAg W2x0X2N2X2xkX3JlbG9hZF9mbGFnPSctciddKQorK3JlbG9hZF9mbGFnPSRsdF9jdl9sZF9yZWxv YWRfZmxhZworK2Nhc2UgJHJlbG9hZF9mbGFnIGluCisrIiIgfCAiICIqKSA7OworKyopIHJlbG9h ZF9mbGFnPSIgJHJlbG9hZF9mbGFnIiA7OworK2VzYWMKKytyZWxvYWRfY21kcz0nJExEJHJlbG9h ZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCisrY2FzZSAkaG9zdF9vcyBpbgorKyAgZGFy d2luKikKKysgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICAgICByZWxvYWRfY21k cz0nJExUQ0MgJExUQ0ZMQUdTIC1ub3N0ZGxpYiAke3dsfS1yIC1vICRvdXRwdXQkcmVsb2FkX29i anMnCisrICAgIGVsc2UKKysgICAgICByZWxvYWRfY21kcz0nJExEJHJlbG9hZF9mbGFnIC1vICRv dXRwdXQkcmVsb2FkX29ianMnCisrICAgIGZpCisrICAgIDs7CisrZXNhYworK19MVF9UQUdERUNM KFtdLCBbcmVsb2FkX2ZsYWddLCBbMV0sIFtIb3cgdG8gY3JlYXRlIHJlbG9hZGFibGUgb2JqZWN0 IGZpbGVzXSlkbmwKKytfTFRfVEFHREVDTChbXSwgW3JlbG9hZF9jbWRzXSwgWzJdKWRubAorK10p IyBfTFRfQ01EX1JFTE9BRAorKworKworKyMgX0xUX0NIRUNLX01BR0lDX01FVEhPRAorKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgaG93IHRvIGNoZWNrIGZvciBsaWJyYXJ5IGRlcGVuZGVu Y2llcworKyMgIC0tIFBPUlRNRSBmaWxsIGluIHdpdGggdGhlIGR5bmFtaWMgbGlicmFyeSBjaGFy YWN0ZXJpc3RpY3MKKyttNF9kZWZ1bihbX0xUX0NIRUNLX01BR0lDX01FVEhPRF0sCisrW200X3Jl cXVpcmUoW19MVF9ERUNMX0VHUkVQXSkKKyttNF9yZXF1aXJlKFtfTFRfREVDTF9PQkpEVU1QXSkK KytBQ19DQUNIRV9DSEVDSyhbaG93IHRvIHJlY29nbml6ZSBkZXBlbmRlbnQgbGlicmFyaWVzXSwK KytsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZCwKKytbbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRN QUdJQ19DTUQnCisrbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9CisrbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9J3Vua25vd24nCisrIyBOZWVkIHRvIHNldCB0aGUgcHJlY2VkaW5nIHZhcmlh YmxlIG9uIGFsbCBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0CisrIyBpbnRlcmxpYnJhcnkgZGVwZW5k ZW5jaWVzLgorKyMgJ25vbmUnIC0tIGRlcGVuZGVuY2llcyBub3Qgc3VwcG9ydGVkLgorKyMgYHVu a25vd24nIC0tIHNhbWUgYXMgbm9uZSwgYnV0IGRvY3VtZW50cyB0aGF0IHdlIHJlYWxseSBkb24n dCBrbm93LgorKyMgJ3Bhc3NfYWxsJyAtLSBhbGwgZGVwZW5kZW5jaWVzIHBhc3NlZCB3aXRoIG5v IGNoZWNrcy4KKysjICd0ZXN0X2NvbXBpbGUnIC0tIGNoZWNrIGJ5IG1ha2luZyB0ZXN0IHByb2dy YW0uCisrIyAnZmlsZV9tYWdpYyBbW3JlZ2V4XV0nIC0tIGNoZWNrIGJ5IGxvb2tpbmcgZm9yIGZp bGVzIGluIGxpYnJhcnkgcGF0aAorKyMgd2hpY2ggcmVzcG9uZHMgdG8gdGhlICRmaWxlX21hZ2lj X2NtZCB3aXRoIGEgZ2l2ZW4gZXh0ZW5kZWQgcmVnZXguCisrIyBJZiB5b3UgaGF2ZSBgZmlsZScg b3IgZXF1aXZhbGVudCBvbiB5b3VyIHN5c3RlbSBhbmQgeW91J3JlIG5vdCBzdXJlCisrIyB3aGV0 aGVyIGBwYXNzX2FsbCcgd2lsbCAqYWx3YXlzKiB3b3JrLCB5b3UgcHJvYmFibHkgd2FudCB0aGlz IG9uZS4KKysKKytjYXNlICRob3N0X29zIGluCisrYWl4W1s0LTldXSopCisrICBsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytiZW9zKikKKysgIGx0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK2JzZGlbWzQ1XV0qKQorKyAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1d Ki1iaXQgW1tNTF1dU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIpJworKyAgbHRfY3ZfZmls ZV9tYWdpY19jbWQ9Jy91c3IvYmluL2ZpbGUgLUwnCisrICBsdF9jdl9maWxlX21hZ2ljX3Rlc3Rf ZmlsZT0vc2hsaWIvbGliYy5zbworKyAgOzsKKysKKytjeWd3aW4qKQorKyAgIyBmdW5jX3dpbjMy X2xpYmlkIGlzIGEgc2hlbGwgZnVuY3Rpb24gZGVmaW5lZCBpbiBsdG1haW4uc2gKKysgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBpbXBvcnR8Xng4 NiBETEwnCisrICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nZnVuY193aW4zMl9saWJpZCcKKysgIDs7 CisrCisrbWluZ3cqIHwgcHczMiopCisrICAjIEJhc2UgTVNZUy9NaW5HVyBkbyBub3QgcHJvdmlk ZSB0aGUgJ2ZpbGUnIGNvbW1hbmQgbmVlZGVkIGJ5CisrICAjIGZ1bmNfd2luMzJfbGliaWQgc2hl bGwgZnVuY3Rpb24sIHNvIHVzZSBhIHdlYWtlciB0ZXN0IGJhc2VkIG9uICdvYmpkdW1wJywKKysg ICMgdW5sZXNzIHdlIGZpbmQgJ2ZpbGUnLCBmb3IgZXhhbXBsZSBiZWNhdXNlIHdlIGFyZSBjcm9z cy1jb21waWxpbmcuCisrICAjIGZ1bmNfd2luMzJfbGliaWQgYXNzdW1lcyBCU0Qgbm0sIHNvIGRp c2FsbG93IGl0IGlmIHVzaW5nIE1TIGR1bXBiaW4uCisrICBpZiAoIHRlc3QgIiRsdF9jdl9ubV9p bnRlcmZhY2UiID0gIkJTRCBubSIgJiYgZmlsZSAvICkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisr ICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBp bXBvcnR8Xng4NiBETEwnCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSdmdW5jX3dpbjMyX2xp YmlkJworKyAgZWxzZQorKyAgICAjIEtlZXAgdGhpcyBwYXR0ZXJuIGluIHN5bmMgd2l0aCB0aGUg b25lIGluIGZ1bmNfd2luMzJfbGliaWQuCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9k PSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0IChwZWkqLWkzODYoLiphcmNoaXRlY3R1cmU6IGkzODYp P3xwZS1hcm0td2luY2V8cGUteDg2LTY0KScKKysgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRP QkpEVU1QIC1mJworKyAgZmkKKysgIDs7CisrCisrY2VnY2MqKQorKyAgIyB1c2UgdGhlIHdlYWtl ciB0ZXN0IGJhc2VkIG9uICdvYmpkdW1wJy4gU2VlIG1pbmd3Ki4KKysgIGx0X2N2X2RlcGxpYnNf Y2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0IHBlLWFybS0uKmxpdHRsZSguKmFy Y2hpdGVjdHVyZTogYXJtKT8nCisrICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE9CSkRVTVAgLWYn CisrICA7OworKworK2RhcndpbiogfCByaGFwc29keSopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytmcmVlYnNkKiB8IGRyYWdvbmZseSopCisrICBp ZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPiAvZGV2L251bGw7IHRo ZW4KKysgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgaSo4NiApCisrICAgICAgIyBOb3Qgc3Vy ZSB3aGV0aGVyIHRoZSBwcmVzZW5jZSBvZiBPcGVuQlNEIGhlcmUgd2FzIGEgbWlzdGFrZS4KKysg ICAgICAjIExldCdzIGFjY2VwdCBib3RoIG9mIHRoZW0gdW50aWwgdGhpcyBpcyBjbGVhcmVkIHVw LgorKyAgICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChGcmVlQlNE fE9wZW5CU0R8RHJhZ29uRmx5KS9pW1szLTldXTg2IChjb21wYWN0ICk/ZGVtYW5kIHBhZ2VkIHNo YXJlZCBsaWJyYXJ5JworKyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUK KysgICAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNv LipgCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgZmkKKysgIDs7CisrCisrZ251KikKKysgIGx0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK2hhaWt1KikKKysgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK2hwdXgxMC4yMCogfCBo cHV4MTEqKQorKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQorKyAgY2FzZSAk aG9zdF9jcHUgaW4KKysgIGlhNjQqKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0n ZmlsZV9tYWdpYyAoc1tbMC05XV1bWzAtOV1dW1swLTldXXxFTEYtW1swLTldXVtbMC05XV0pIHNo YXJlZCBvYmplY3QgZmlsZSAtIElBNjQnCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxl PS91c3IvbGliL2hwdXgzMi9saWJjLnNvCisrICAgIDs7CisrICBocHBhKjY0KikKKysgICAgW2x0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzWzAtOV1bMC05XVswLTldfEVM RlsgLV1bMC05XVswLTldKSgtYml0KT8oIFtMTV1TQik/IHNoYXJlZCBvYmplY3QoIGZpbGUpP1ss IC1dKiBQQS1SSVNDIFswLTldXC5bMC05XSddCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9m aWxlPS91c3IvbGliL3BhMjBfNjQvbGliYy5zbAorKyAgICA7OworKyAgKikKKysgICAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbWzAtOV1dW1swLTldXVtbMC05XV18 UEEtUklTQ1tbMC05XV1cLltbMC05XV0pIHNoYXJlZCBsaWJyYXJ5JworKyAgICBsdF9jdl9maWxl X21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9saWJjLnNsCisrICAgIDs7CisrICBlc2FjCisrICA7 OworKworK2ludGVyaXhbWzMtOV1dKikKKysgICMgUElDIGNvZGUgaXMgYnJva2VuIG9uIEludGVy aXggMy54LCB0aGF0J3Mgd2h5IHxcLmEgbm90IHxfcGljXC5hIGhlcmUKKysgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc298XC5hKSQnCisr ICA7OworKworK2lyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICBjYXNlICRMRCBpbgor KyAgKi0zMnwqIi0zMiAiKSBsaWJtYWdpYz0zMi1iaXQ7OworKyAgKi1uMzJ8KiItbjMyICIpIGxp Ym1hZ2ljPU4zMjs7CisrICAqLTY0fCoiLTY0ICIpIGxpYm1hZ2ljPTY0LWJpdDs7CisrICAqKSBs aWJtYWdpYz1uZXZlci1tYXRjaDs7CisrICBlc2FjCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKysjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCisrbGlu dXgqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQorKyAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrbmV0YnNkKikKKysgIGlmIGVjaG8gX19F TEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNv XC5bWzAtOV1dK1wuW1swLTldXSt8X3BpY1wuYSkkJworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvfF9waWNcLmEp JCcKKysgIGZpCisrICA7OworKworK25ld29zNiopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD0nZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05XV0qLWJpdCBbW01MXV1TQiAoZXhlY3V0 YWJsZXxkeW5hbWljIGxpYiknCisrICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxl CisrICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9saWJubHMuc28KKysgIDs7 CisrCisrKm50byogfCAqcW54KikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3Nf YWxsCisrICA7OworKworK29wZW5ic2QqKQorKyAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8 ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIg PSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvXC5bWzAtOV1dK1wuW1swLTldXSt8 XC5zb3xfcGljXC5hKSQnCisrICBlbHNlCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9k PSdtYXRjaF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc29cLltbMC05XV0rXC5bWzAtOV1dK3xfcGlj XC5hKSQnCisrICBmaQorKyAgOzsKKysKKytvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytyZG9zKikKKysgIGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK3NvbGFyaXMqKQor KyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrc3lzdjUq IHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3 MiopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytz eXN2NCB8IHN5c3Y0LjMqKQorKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KKysgIG1vdG9yb2xhKQor KyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgW1swLTldXVtb MC05XV0qLWJpdCBbW01MXV1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYikgTVtbMC05XV1b WzAtOV1dKiBWZXJzaW9uIFtbMC05XV0nCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxl PWBlY2hvIC91c3IvbGliL2xpYmMuc28qYAorKyAgICA7OworKyAgbmNyKQorKyAgICBsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgICA7OworKyAgc2VxdWVudCkKKysgICAg bHRfY3ZfZmlsZV9tYWdpY19jbWQ9Jy9iaW4vZmlsZScKKysgICAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tMTV1dU0IgKHNo YXJlZCBvYmplY3R8ZHluYW1pYyBsaWIgKScKKysgICAgOzsKKysgIHNuaSkKKysgICAgbHRfY3Zf ZmlsZV9tYWdpY19jbWQ9Jy9iaW4vZmlsZScKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRo b2Q9ImZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tMTV1dU0IgZHluYW1pYyBs aWIiCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS9saWIvbGliYy5zbworKyAgICA7 OworKyAgc2llbWVucykKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwK KysgICAgOzsKKysgIHBjKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2Fs bAorKyAgICA7OworKyAgZXNhYworKyAgOzsKKysKKyt0cGYqKQorKyAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrZXNhYworK10pCisrZmlsZV9tYWdpY19jbWQ9 JGx0X2N2X2ZpbGVfbWFnaWNfY21kCisrZGVwbGlic19jaGVja19tZXRob2Q9JGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kCisrdGVzdCAteiAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAmJiBkZXBs aWJzX2NoZWNrX21ldGhvZD11bmtub3duCisrCisrX0xUX0RFQ0woW10sIFtkZXBsaWJzX2NoZWNr X21ldGhvZF0sIFsxXSwKKysgICAgW01ldGhvZCB0byBjaGVjayB3aGV0aGVyIGRlcGVuZGVudCBs aWJyYXJpZXMgYXJlIHNoYXJlZCBvYmplY3RzXSkKKytfTFRfREVDTChbXSwgW2ZpbGVfbWFnaWNf Y21kXSwgWzFdLAorKyAgICBbQ29tbWFuZCB0byB1c2Ugd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhv ZCA9PSAiZmlsZV9tYWdpYyJdKQorK10pIyBfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9ECisrCisrCisr IyBMVF9QQVRIX05NCisrIyAtLS0tLS0tLS0tCisrIyBmaW5kIHRoZSBwYXRobmFtZSB0byBhIEJT RC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlcgorK0FDX0RFRlVOKFtMVF9QQVRIX05NXSwK KytbQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCisrQUNfQ0FDSEVfQ0hFQ0soW2ZvciBCU0Qt IG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKV0sIGx0X2N2X3BhdGhfTk0sCisrW2lm IHRlc3QgLW4gIiROTSI7IHRoZW4KKysgICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgorKyAgbHRfY3ZfcGF0aF9OTT0iJE5NIgorK2Vsc2UKKysgIGx0X25tX3RvX2NoZWNrPSIke2Fj X3Rvb2xfcHJlZml4fW5tIgorKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IiAmJiB0ZXN0 ICIkYnVpbGQiID0gIiRob3N0IjsgdGhlbgorKyAgICBsdF9ubV90b19jaGVjaz0iJGx0X25tX3Rv X2NoZWNrIG5tIgorKyAgZmkKKysgIGZvciBsdF90bXBfbm0gaW4gJGx0X25tX3RvX2NoZWNrOyBk bworKyAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKysgICAgZm9y IGFjX2RpciBpbiAkUEFUSCAvdXNyL2Njcy9iaW4vZWxmIC91c3IvY2NzL2JpbiAvdXNyL3VjYiAv YmluOyBkbworKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICAgIHRlc3QgLXogIiRhY19k aXIiICYmIGFjX2Rpcj0uCisrICAgICAgdG1wX25tPSIkYWNfZGlyLyRsdF90bXBfbm0iCisrICAg ICAgaWYgdGVzdCAtZiAiJHRtcF9ubSIgfHwgdGVzdCAtZiAiJHRtcF9ubSRhY19leGVleHQiIDsg dGhlbgorKwkjIENoZWNrIHRvIHNlZSBpZiB0aGUgbm0gYWNjZXB0cyBhIEJTRC1jb21wYXQgZmxh Zy4KKysJIyBBZGRpbmcgdGhlIGBzZWQgMXEnIHByZXZlbnRzIGZhbHNlIHBvc2l0aXZlcyBvbiBI UC1VWCwgd2hpY2ggc2F5czoKKysJIyAgIG5tOiB1bmtub3duIG9wdGlvbiAiQiIgaWdub3JlZAor KwkjIFRydTY0J3Mgbm0gY29tcGxhaW5zIHRoYXQgL2Rldi9udWxsIGlzIGFuIGludmFsaWQgb2Jq ZWN0IGZpbGUKKysJY2FzZSBgIiR0bXBfbm0iIC1CIC9kZXYvbnVsbCAyPiYxIHwgc2VkICcxcSdg IGluCisrCSovZGV2L251bGwqIHwgKidJbnZhbGlkIGZpbGUgb3Igb2JqZWN0IHR5cGUnKikKKysJ ICBsdF9jdl9wYXRoX05NPSIkdG1wX25tIC1CIgorKwkgIGJyZWFrCisrCSAgOzsKKysJKikKKysJ ICBjYXNlIGAiJHRtcF9ubSIgLXAgL2Rldi9udWxsIDI+JjEgfCBzZWQgJzFxJ2AgaW4KKysJICAq L2Rldi9udWxsKikKKysJICAgIGx0X2N2X3BhdGhfTk09IiR0bXBfbm0gLXAiCisrCSAgICBicmVh aworKwkgICAgOzsKKysJICAqKQorKwkgICAgbHRfY3ZfcGF0aF9OTT0ke2x0X2N2X3BhdGhfTk09 IiR0bXBfbm0ifSAjIGtlZXAgdGhlIGZpcnN0IG1hdGNoLCBidXQKKysJICAgIGNvbnRpbnVlICMg c28gdGhhdCB3ZSBjYW4gdHJ5IHRvIGZpbmQgb25lIHRoYXQgc3VwcG9ydHMgQlNEIGZsYWdzCisr CSAgICA7OworKwkgIGVzYWMKKysJICA7OworKwllc2FjCisrICAgICAgZmkKKysgICAgZG9uZQor KyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgIGRvbmUKKysgIDogJHtsdF9jdl9wYXRoX05NPW5v fQorK2ZpXSkKKytpZiB0ZXN0ICIkbHRfY3ZfcGF0aF9OTSIgIT0gIm5vIjsgdGhlbgorKyAgTk09 IiRsdF9jdl9wYXRoX05NIgorK2Vsc2UKKysgICMgRGlkbid0IGZpbmQgYW55IEJTRCBjb21wYXRp YmxlIG5hbWUgbGlzdGVyLCBsb29rIGZvciBkdW1wYmluLgorKyAgaWYgdGVzdCAtbiAiJERVTVBC SU4iOyB0aGVuIDoKKysgICAgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrICBl bHNlCisrICAgIEFDX0NIRUNLX1RPT0xTKERVTVBCSU4sIFtkdW1wYmluICJsaW5rIC1kdW1wIl0s IDopCisrICAgIGNhc2UgYCREVU1QQklOIC1zeW1ib2xzIC9kZXYvbnVsbCAyPiYxIHwgc2VkICcx cSdgIGluCisrICAgICpDT0ZGKikKKysgICAgICBEVU1QQklOPSIkRFVNUEJJTiAtc3ltYm9scyIK KysgICAgICA7OworKyAgICAqKQorKyAgICAgIERVTVBCSU49OgorKyAgICAgIDs7CisrICAgIGVz YWMKKysgIGZpCisrICBBQ19TVUJTVChbRFVNUEJJTl0pCisrICBpZiB0ZXN0ICIkRFVNUEJJTiIg IT0gIjoiOyB0aGVuCisrICAgIE5NPSIkRFVNUEJJTiIKKysgIGZpCisrZmkKKyt0ZXN0IC16ICIk Tk0iICYmIE5NPW5tCisrQUNfU1VCU1QoW05NXSkKKytfTFRfREVDTChbXSwgW05NXSwgWzFdLCBb QSBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXJdKWRubAorKworK0FDX0NBQ0hFX0NI RUNLKFt0aGUgbmFtZSBsaXN0ZXIgKCROTSkgaW50ZXJmYWNlXSwgW2x0X2N2X25tX2ludGVyZmFj ZV0sCisrICBbbHRfY3Zfbm1faW50ZXJmYWNlPSJCU0Qgbm0iCisrICBlY2hvICJpbnQgc29tZV92 YXJpYWJsZSA9IDA7IiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgIChldmFsIGVjaG8gIlwiXCRhc19t ZTokTElORU5POiAkYWNfY29tcGlsZVwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQorKyAgKGV2YWwg IiRhY19jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKKysgIGNhdCBjb25mdGVzdC5lcnIgPiZBU19N RVNTQUdFX0xPR19GRAorKyAgKGV2YWwgZWNobyAiXCJcJGFzX21lOiRMSU5FTk86ICROTSBcXFwi Y29uZnRlc3QuJGFjX29iamV4dFxcXCJcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKysgIChldmFs ICIkTk0gXCJjb25mdGVzdC4kYWNfb2JqZXh0XCIiIDI+Y29uZnRlc3QuZXJyID4gY29uZnRlc3Qu b3V0KQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECisrICAoZXZhbCBl Y2hvICJcIlwkYXNfbWU6JExJTkVOTzogb3V0cHV0XCIiID4mQVNfTUVTU0FHRV9MT0dfRkQpCisr ICBjYXQgY29uZnRlc3Qub3V0ID4mQVNfTUVTU0FHRV9MT0dfRkQKKysgIGlmICRHUkVQICdFeHRl cm5hbC4qc29tZV92YXJpYWJsZScgY29uZnRlc3Qub3V0ID4gL2Rldi9udWxsOyB0aGVuCisrICAg IGx0X2N2X25tX2ludGVyZmFjZT0iTVMgZHVtcGJpbiIKKysgIGZpCisrICBybSAtZiBjb25mdGVz dCpdKQorK10pIyBMVF9QQVRIX05NCisrCisrIyBPbGQgbmFtZXM6CisrQVVfQUxJQVMoW0FNX1BS T0dfTk1dLCBbTFRfUEFUSF9OTV0pCisrQVVfQUxJQVMoW0FDX1BST0dfTk1dLCBbTFRfUEFUSF9O TV0pCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19E RUZVTihbQU1fUFJPR19OTV0sIFtdKQorK2RubCBBQ19ERUZVTihbQUNfUFJPR19OTV0sIFtdKQor KworKworKyMgTFRfTElCX00KKysjIC0tLS0tLS0tCisrIyBjaGVjayBmb3IgbWF0aCBsaWJyYXJ5 CisrQUNfREVGVU4oW0xUX0xJQl9NXSwKKytbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1Rd KWRubAorK0xJQk09CisrY2FzZSAkaG9zdCBpbgorKyotKi1iZW9zKiB8ICotKi1jZWdjYyogfCAq LSotY3lnd2luKiB8ICotKi1oYWlrdSogfCAqLSotcHczMiogfCAqLSotZGFyd2luKikKKysgICMg VGhlc2Ugc3lzdGVtIGRvbid0IGhhdmUgbGlibSwgb3IgZG9uJ3QgbmVlZCBpdAorKyAgOzsKKysq LW5jci1zeXN2NC4zKikKKysgIEFDX0NIRUNLX0xJQihtdywgX213dmFsaWRjaGVja2wsIExJQk09 Ii1sbXciKQorKyAgQUNfQ0hFQ0tfTElCKG0sIGNvcywgTElCTT0iJExJQk0gLWxtIikKKysgIDs7 CisrKikKKysgIEFDX0NIRUNLX0xJQihtLCBjb3MsIExJQk09Ii1sbSIpCisrICA7OworK2VzYWMK KytBQ19TVUJTVChbTElCTV0pCisrXSkjIExUX0xJQl9NCisrCisrIyBPbGQgbmFtZToKKytBVV9B TElBUyhbQUNfQ0hFQ0tfTElCTV0sIFtMVF9MSUJfTV0pCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3 YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQUNfQ0hFQ0tfTElCTV0sIFtdKQor KworKworKyMgX0xUX0NPTVBJTEVSX05PX1JUVEkoW1RBR05BTUVdKQorKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfQ09NUElMRVJfTk9fUlRUSV0sCisr W200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAorKworK19MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0KKysKKytpZiB0ZXN0ICIkR0NDIiA9IHll czsgdGhlbgorKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgIG52Y2MqKQorKyAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9JyAtWGNvbXBpbGVyIC1m bm8tYnVpbHRpbicgOzsKKysgICopCisrICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9u b19idWlsdGluX2ZsYWcsICQxKT0nIC1mbm8tYnVpbHRpbicgOzsKKysgIGVzYWMKKysKKysgIF9M VF9DT01QSUxFUl9PUFRJT04oW2lmICRjb21waWxlciBzdXBwb3J0cyAtZm5vLXJ0dGkgLWZuby1l eGNlcHRpb25zXSwKKysgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMsCisr ICAgIFstZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zXSwgW10sCisrICAgIFtfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9IiRfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSkgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyJd KQorK2ZpCisrX0xUX1RBR0RFQ0woW25vX2J1aWx0aW5fZmxhZ10sIFtsdF9wcm9nX2NvbXBpbGVy X25vX2J1aWx0aW5fZmxhZ10sIFsxXSwKKysJW0NvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVp bHRpbiBmdW5jdGlvbnNdKQorK10pIyBfTFRfQ09NUElMRVJfTk9fUlRUSQorKworKworKyMgX0xU X0NNRF9HTE9CQUxfU1lNQk9MUworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVu KFtfTFRfQ01EX0dMT0JBTF9TWU1CT0xTXSwKKytbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hP U1RdKWRubAorK0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAorK0FDX1JFUVVJUkUoW0FDX1BS T0dfQVdLXSlkbmwKKytBQ19SRVFVSVJFKFtMVF9QQVRIX05NXSlkbmwKKytBQ19SRVFVSVJFKFtM VF9QQVRIX0xEXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAorK200X3JlcXVp cmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfVEFHX0NPTVBJTEVSXSlk bmwKKysKKysjIENoZWNrIGZvciBjb21tYW5kIHRvIGdyYWIgdGhlIHJhdyBzeW1ib2wgbmFtZSBm b2xsb3dlZCBieSBDIHN5bWJvbCBmcm9tIG5tLgorK0FDX01TR19DSEVDS0lORyhbY29tbWFuZCB0 byBwYXJzZSAkTk0gb3V0cHV0IGZyb20gJGNvbXBpbGVyIG9iamVjdF0pCisrQUNfQ0FDSEVfVkFM KFtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlXSwKKytbCisrIyBUaGVzZSBhcmUgc2FuZSBk ZWZhdWx0cyB0aGF0IHdvcmsgb24gYXQgbGVhc3QgYSBmZXcgb2xkIHN5c3RlbXMuCisrIyBbVGhl eSBjb21lIGZyb20gVWx0cml4LiAgV2hhdCBjb3VsZCBiZSBvbGRlciB0aGFuIFVsdHJpeD8hISA7 KV0KKysKKysjIENoYXJhY3RlciBjbGFzcyBkZXNjcmliaW5nIE5NIGdsb2JhbCBzeW1ib2wgY29k ZXMuCisrc3ltY29kZT0nW1tCQ0RFR1JTVF1dJworKworKyMgUmVnZXhwIHRvIG1hdGNoIHN5bWJv bHMgdGhhdCBjYW4gYmUgYWNjZXNzZWQgZGlyZWN0bHkgZnJvbSBDLgorK3N5bXBhdD0nXChbW19B LVphLXpdXVtbX0EtWmEtejAtOV1dKlwpJworKworKyMgRGVmaW5lIHN5c3RlbS1zcGVjaWZpYyB2 YXJpYWJsZXMuCisrY2FzZSAkaG9zdF9vcyBpbgorK2FpeCopCisrICBzeW1jb2RlPSdbW0JDRFRd XScKKysgIDs7CisrY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorKyAgc3ltY29k ZT0nW1tBQkNER0lTVFddXScKKysgIDs7CisraHB1eCopCisrICBpZiB0ZXN0ICIkaG9zdF9jcHUi ID0gaWE2NDsgdGhlbgorKyAgICBzeW1jb2RlPSdbW0FCQ0RFR1JTVF1dJworKyAgZmkKKysgIDs7 CisraXJpeCogfCBub25zdG9wdXgqKQorKyAgc3ltY29kZT0nW1tCQ0RFR1JTVF1dJworKyAgOzsK Kytvc2YqKQorKyAgc3ltY29kZT0nW1tCQ0RFR1FSU1RdXScKKysgIDs7Cisrc29sYXJpcyopCisr ICBzeW1jb2RlPSdbW0JEUlRdXScKKysgIDs7Cisrc2NvMy4ydjUqKQorKyAgc3ltY29kZT0nW1tE VF1dJworKyAgOzsKKytzeXN2NC4ydXcyKikKKysgIHN5bWNvZGU9J1tbRFRdXScKKysgIDs7Cisr c3lzdjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikKKysgIHN5bWNvZGU9J1tb QUJEVF1dJworKyAgOzsKKytzeXN2NCkKKysgIHN5bWNvZGU9J1tbREZOU1RVXV0nCisrICA7Owor K2VzYWMKKysKKysjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB1c2UgaXRzIHN0YW5kYXJk IHN5bWJvbCBjb2Rlcy4KKytjYXNlIGAkTk0gLVYgMj4mMWAgaW4KKysqR05VKiB8ICond2l0aCBC RkQnKikKKysgIHN5bWNvZGU9J1tbQUJDREdJUlNUV11dJyA7OworK2VzYWMKKysKKysjIFRyYW5z Zm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUgaW50byBhIHByb3BlciBDIGRlY2xhcmF0aW9u LgorKyMgU29tZSBzeXN0ZW1zIChlc3AuIG9uIGlhNjQpIGxpbmsgZGF0YSBhbmQgY29kZSBzeW1i b2xzIGRpZmZlcmVudGx5LAorKyMgc28gdXNlIHRoaXMgZ2VuZXJhbCBhcHByb2FjaC4KKytsdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0ic2VkIC1uIC1lICdzL15UIC4qIFwoLipcKSQv ZXh0ZXJuIGludCBcMSgpOy9wJyAtZSAncy9eJHN5bWNvZGUqIC4qIFwoLipcKSQvZXh0ZXJuIGNo YXIgXDE7L3AnIgorKworKyMgVHJhbnNmb3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRv IHN5bWJvbCBuYW1lIGFuZCBzeW1ib2wgYWRkcmVzcworK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChbW14gXV0qXCkgJC8gIHtcXFwi XDFcXFwiLCAodm9pZCAqKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFtbXiBdXSpcKSBcKFtb XiBdXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCciCisrbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeD0ic2VkIC1uIC1lICdzL146IFwo W1teIF1dKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3ltY29k ZSogXChbW14gXV0qXCkgXChsaWJbW14gXV0qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0s L3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChbW14gXV0qXCkkLyAge1wibGliXDJc IiwgKHZvaWQgKikgXCZcMn0sL3AnIgorKworKyMgSGFuZGxlIENSTEYgaW4gbWluZ3cgdG9vbCBj aGFpbgorK29wdF9jcj0KKytjYXNlICRidWlsZF9vcyBpbgorK21pbmd3KikKKysgIG9wdF9jcj1g JEVDSE8gJ3hcezAsMVx9JyB8IHRyIHggJ1wwMTUnYCAjIG9wdGlvbiBjciBpbiByZWdleHAKKysg IDs7CisrZXNhYworKworKyMgVHJ5IHdpdGhvdXQgYSBwcmVmaXggdW5kZXJzY29yZSwgdGhlbiB3 aXRoIGl0LgorK2ZvciBhY19zeW1wcmZ4IGluICIiICJfIjsgZG8KKysKKysgICMgVHJhbnNmb3Jt IHN5bWNvZGUsIHN5bXBhdCwgYW5kIHN5bXByZnggaW50byBhIHJhdyBzeW1ib2wgYW5kIGEgQyBz eW1ib2wuCisrICBzeW14ZnJtPSJcXDEgJGFjX3N5bXByZnhcXDIgXFwyIgorKworKyAgIyBXcml0 ZSB0aGUgcmF3IGFuZCBDIGlkZW50aWZpZXJzLgorKyAgaWYgdGVzdCAiJGx0X2N2X25tX2ludGVy ZmFjZSIgPSAiTVMgZHVtcGJpbiI7IHRoZW4KKysgICAgIyBGYWtlIGl0IGZvciBkdW1wYmluIGFu ZCBzYXkgVCBmb3IgYW55IG5vbi1zdGF0aWMgZnVuY3Rpb24KKysgICAgIyBhbmQgRCBmb3IgYW55 IGdsb2JhbCB2YXJpYWJsZS4KKysgICAgIyBBbHNvIGZpbmQgQysrIGFuZCBfX2Zhc3RjYWxsIHN5 bWJvbHMgZnJvbSBNU1ZDKyssCisrICAgICMgd2hpY2ggc3RhcnQgd2l0aCBAIG9yID8uCisrICAg IGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9IiRBV0sgWyciXAorKyIgICAgIHtsYXN0X3Nl Y3Rpb249c2VjdGlvbjsgc2VjdGlvbj1cJCAzfTsiXAorKyIgICAgIC9TZWN0aW9uIGxlbmd0aCAu KiNyZWxvY3MuKihwaWNrIGFueSkve2hpZGVbbGFzdF9zZWN0aW9uXT0xfTsiXAorKyIgICAgIFwk IDAhfi9FeHRlcm5hbCAqXHwve25leHR9OyJcCisrIiAgICAgLyAwKyBVTkRFRiAve25leHR9OyAv IFVOREVGIFwoW158XVwpKigpL3tuZXh0fTsiXAorKyIgICAgIHtpZihoaWRlW3NlY3Rpb25dKSBu ZXh0fTsiXAorKyIgICAgIHtmPTB9OyBcJCAwfi9cKFwpLipcfC97Zj0xfTsge3ByaW50ZiBmID8g XCJUIFwiIDogXCJEIFwifTsiXAorKyIgICAgIHtzcGxpdChcJCAwLCBhLCAvXHx8XHIvKTsgc3Bs aXQoYVsyXSwgcyl9OyJcCisrIiAgICAgc1sxXX4vXltAP10ve3ByaW50IHNbMV0sIHNbMV07IG5l eHR9OyJcCisrIiAgICAgc1sxXX5wcmZ4IHtzcGxpdChzWzFdLHQsXCJAXCIpOyBwcmludCB0WzFd LCBzdWJzdHIodFsxXSxsZW5ndGgocHJmeCkpfSJcCisrIiAgICAgJyBwcmZ4PV4kYWNfc3ltcHJm eF0iCisrICBlbHNlCisrICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9InNlZCAtbiAt ZSAncy9eLipbWwkgXV1cKCRzeW1jb2RlJHN5bWNvZGUqXClbWwkgXV1bWwkgXV0qJGFjX3N5bXBy Zngkc3ltcGF0JG9wdF9jciQvJHN5bXhmcm0vcCciCisrICBmaQorKworKyAgIyBDaGVjayB0byBz ZWUgdGhhdCB0aGUgcGlwZSB3b3JrcyBjb3JyZWN0bHkuCisrICBwaXBlX3dvcmtzPW5vCisrCisr ICBybSAtZiBjb25mdGVzdCoKKysgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisr I2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIiB7CisrI2VuZGlmCisrY2hhciBubV90ZXN0 X3ZhcjsKKyt2b2lkIG5tX3Rlc3RfZnVuYyh2b2lkKTsKKyt2b2lkIG5tX3Rlc3RfZnVuYyh2b2lk KXt9CisrI2lmZGVmIF9fY3BsdXNwbHVzCisrfQorKyNlbmRpZgorK2ludCBtYWluKCl7bm1fdGVz dF92YXI9J2EnO25tX3Rlc3RfZnVuYygpO3JldHVybigwKTt9CisrX0xUX0VPRgorKworKyAgaWYg QUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KKysgICAgIyBOb3cgdHJ5IHRvIGdyYWIgdGhl IHN5bWJvbHMuCisrICAgIG5saXN0PWNvbmZ0ZXN0Lm5tCisrICAgIGlmIEFDX1RSWV9FVkFMKE5N IGNvbmZ0ZXN0LiRhY19vYmpleHQgXHwgIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIiBc PiAkbmxpc3QpICYmIHRlc3QgLXMgIiRubGlzdCI7IHRoZW4KKysgICAgICAjIFRyeSBzb3J0aW5n IGFuZCB1bmlxdWlmeWluZyB0aGUgb3V0cHV0LgorKyAgICAgIGlmIHNvcnQgIiRubGlzdCIgfCB1 bmlxID4gIiRubGlzdCJUOyB0aGVuCisrCW12IC1mICIkbmxpc3QiVCAiJG5saXN0IgorKyAgICAg IGVsc2UKKysJcm0gLWYgIiRubGlzdCJUCisrICAgICAgZmkKKysKKysgICAgICAjIE1ha2Ugc3Vy ZSB0aGF0IHdlIHNuYWdnZWQgYWxsIHRoZSBzeW1ib2xzIHdlIG5lZWQuCisrICAgICAgaWYgJEdS RVAgJyBubV90ZXN0X3ZhciQnICIkbmxpc3QiID4vZGV2L251bGw7IHRoZW4KKysJaWYgJEdSRVAg JyBubV90ZXN0X2Z1bmMkJyAiJG5saXN0IiA+L2Rldi9udWxsOyB0aGVuCisrCSAgY2F0IDw8X0xU X0VPRiA+IGNvbmZ0ZXN0LiRhY19leHQKKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMi IHsKKysjZW5kaWYKKysKKytfTFRfRU9GCisrCSAgIyBOb3cgZ2VuZXJhdGUgdGhlIHN5bWJvbCBm aWxlLgorKwkgIGV2YWwgIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCInIDwgIiRu bGlzdCIgfCAkR1JFUCAtdiBtYWluID4+IGNvbmZ0ZXN0LiRhY19leHQnCisrCisrCSAgY2F0IDw8 X0xUX0VPRiA+PiBjb25mdGVzdC4kYWNfZXh0CisrCisrLyogVGhlIG1hcHBpbmcgYmV0d2VlbiBz eW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMuICAqLworK2NvbnN0IHN0cnVjdCB7CisrICBjb25zdCBj aGFyICpuYW1lOworKyAgdm9pZCAgICAgICAqYWRkcmVzczsKKyt9CisrbHRfX1BST0dSQU1fX0xU WF9wcmVsb2FkZWRfc3ltYm9sc1tbXV0gPQorK3sKKysgIHsgIkBQUk9HUkFNQCIsICh2b2lkICop IDAgfSwKKytfTFRfRU9GCisrCSAgJFNFRCAicy9eJHN5bWNvZGUkc3ltY29kZSogXCguKlwpIFwo LipcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvIiA8ICIkbmxpc3QiIHwgJEdSRVAgLXYg bWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0CisrCSAgY2F0IDw8XF9MVF9FT0YgPj4gY29uZnRlc3Qu JGFjX2V4dAorKyAgezAsICh2b2lkICopIDB9CisrfTsKKysKKysvKiBUaGlzIHdvcmtzIGFyb3Vu ZCBhIHByb2JsZW0gaW4gRnJlZUJTRCBsaW5rZXIgKi8KKysjaWZkZWYgRlJFRUJTRF9XT1JLQVJP VU5ECisrc3RhdGljIGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgpIHsKKysgIHJldHVy biBsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRlZF9zeW1ib2xzOworK30KKysjZW5kaWYKKysKKysj aWZkZWYgX19jcGx1c3BsdXMKKyt9CisrI2VuZGlmCisrX0xUX0VPRgorKwkgICMgTm93IHRyeSBs aW5raW5nIHRoZSB0d28gZmlsZXMuCisrCSAgbXYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdHN0 bS4kYWNfb2JqZXh0CisrCSAgbHRfc2F2ZV9MSUJTPSIkTElCUyIKKysJICBsdF9zYXZlX0NGTEFH Uz0iJENGTEFHUyIKKysJICBMSUJTPSJjb25mdHN0bS4kYWNfb2JqZXh0IgorKwkgIENGTEFHUz0i JENGTEFHUyRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSki CisrCSAgaWYgQUNfVFJZX0VWQUwoYWNfbGluaykgJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhl ZXh0fTsgdGhlbgorKwkgICAgcGlwZV93b3Jrcz15ZXMKKysJICBmaQorKwkgIExJQlM9IiRsdF9z YXZlX0xJQlMiCisrCSAgQ0ZMQUdTPSIkbHRfc2F2ZV9DRkxBR1MiCisrCWVsc2UKKysJICBlY2hv ICJjYW5ub3QgZmluZCBubV90ZXN0X2Z1bmMgaW4gJG5saXN0IiA+JkFTX01FU1NBR0VfTE9HX0ZE CisrCWZpCisrICAgICAgZWxzZQorKwllY2hvICJjYW5ub3QgZmluZCBubV90ZXN0X3ZhciBpbiAk bmxpc3QiID4mQVNfTUVTU0FHRV9MT0dfRkQKKysgICAgICBmaQorKyAgICBlbHNlCisrICAgICAg ZWNobyAiY2Fubm90IHJ1biAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSIgPiZBU19NRVNT QUdFX0xPR19GRAorKyAgICBmaQorKyAgZWxzZQorKyAgICBlY2hvICIkcHJvZ25hbWU6IGZhaWxl ZCBwcm9ncmFtIHdhczoiID4mQVNfTUVTU0FHRV9MT0dfRkQKKysgICAgY2F0IGNvbmZ0ZXN0LiRh Y19leHQgPiY1CisrICBmaQorKyAgcm0gLXJmIGNvbmZ0ZXN0KiBjb25mdHN0KgorKworKyAgIyBE byBub3QgdXNlIHRoZSBnbG9iYWxfc3ltYm9sX3BpcGUgdW5sZXNzIGl0IHdvcmtzLgorKyAgaWYg dGVzdCAiJHBpcGVfd29ya3MiID0geWVzOyB0aGVuCisrICAgIGJyZWFrCisrICBlbHNlCisrICAg IGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9CisrICBmaQorK2RvbmUKKytdKQorK2lmIHRl c3QgLXogIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgorKyAgbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9CisrZmkKKytpZiB0ZXN0IC16ICIkbHRfY3Zfc3lzX2ds b2JhbF9zeW1ib2xfcGlwZSRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCI7IHRoZW4K KysgIEFDX01TR19SRVNVTFQoZmFpbGVkKQorK2Vsc2UKKysgIEFDX01TR19SRVNVTFQob2spCisr ZmkKKysKKytfTFRfREVDTChbZ2xvYmFsX3N5bWJvbF9waXBlXSwgW2x0X2N2X3N5c19nbG9iYWxf c3ltYm9sX3BpcGVdLCBbMV0sCisrICAgIFtUYWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5kIHByb2R1 Y2UgYSBsaXN0aW5nIG9mIHJhdyBzeW1ib2xzIGFuZCBDIG5hbWVzXSkKKytfTFRfREVDTChbZ2xv YmFsX3N5bWJvbF90b19jZGVjbF0sIFtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbF0s IFsxXSwKKysgICAgW1RyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgcHJvcGVyIEMgZGVj bGFyYXRpb25dKQorK19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzXSwK KysgICAgW2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzXSwgWzFdLAor KyAgICBbVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVzcyBwYWly XSkKKytfTFRfREVDTChbZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4 XSwKKysgICAgW2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9w cmVmaXhdLCBbMV0sCisrICAgIFtUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFt ZSBhZGRyZXNzIHBhaXIgd2hlbiBsaWIgcHJlZml4IGlzIG5lZWRlZF0pCisrXSkgIyBfTFRfQ01E X0dMT0JBTF9TWU1CT0xTCisrCisrCisrIyBfTFRfQ09NUElMRVJfUElDKFtUQUdOQU1FXSkKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfQ09NUElMRVJfUElD XSwKKytbbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCisrX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3dsLCAkMSk9CisrX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPQorK19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0KKysKKytBQ19N U0dfQ0hFQ0tJTkcoW2ZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDXSkKKyttNF9p ZihbJDFdLCBbQ1hYXSwgWworKyAgIyBDKysgc3BlY2lmaWMgY2FzZXMgZm9yIHBpYywgc3RhdGlj LCB3bCwgZXRjLgorKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKKysKKysgICAgY2FzZSAkaG9zdF9vcyBp bgorKyAgICBhaXgqKQorKyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KKysgICAgICBpZiB0 ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0 IHByb2Nlc3NvcgorKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1C c3RhdGljJworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgYW1pZ2FvcyopCisrICAgICAg Y2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBwb3dlcnBjKQorKyAgICAgICAgICAgICMgc2VlIGNv bW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKKysgICAgICAgICAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworKyAgICAgICAgOzsKKysgICAgICBt NjhrKQorKyAgICAgICAgICAgICMgRklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0 byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLCBidXQKKysgICAgICAgICAgICAjIGFkZGluZyB0aGUg YC1tNjgwMjAnIGZsYWcgdG8gR0NDIHByZXZlbnRzIGJ1aWxkaW5nIGFueXRoaW5nIGJldHRlciwK KysgICAgICAgICAgICAjIGxpa2UgYC1tNjgwNDAnLgorKyAgICAgICAgICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLW02ODAyMCAtcmVzaWRlbnQzMiAtbWFsd2F5cy1y ZXN0b3JlLWE0JworKyAgICAgICAgOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAg YmVvcyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9z ZjUqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgorKyAgICAg IDs7CisrICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBvczIqIHwgcHczMiogfCBjZWdjYyopCisrICAg ICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhl ciBpdCBpcyBiZWluZworKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5k IHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCisrICAgICAgIyBBbHRob3VnaCB0 aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1zdHls ZQorKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCisrICAgICAgbTRf aWYoWyQxXSwgW0dDSl0sIFtdLAorKwlbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPSctRERMTF9FWFBPUlQnXSkKKysgICAgICA7OworKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkq KQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KKysgICAgICAj IENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCisrICAgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZm5vLWNvbW1vbicKKysgICAgICA7 OworKyAgICAqZGpncHAqKQorKyAgICAgICMgREpHUFAgZG9lcyBub3Qgc3VwcG9ydCBzaGFyZWQg bGlicmFyaWVzIGF0IGFsbAorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMs ICQxKT0KKysgICAgICA7OworKyAgICBoYWlrdSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1 bHQgZm9yIEhhaWt1LgorKyAgICAgICMgVGhlICItc3RhdGljIiBmbGFnIGV4aXN0cywgYnV0IGlz IGJyb2tlbi4KKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9 CisrICAgICAgOzsKKysgICAgaW50ZXJpeFtbMy05XV0qKQorKyAgICAgICMgSW50ZXJpeCAzLngg Z2NjIC1mcGljLy1mUElDIG9wdGlvbnMgZ2VuZXJhdGUgYnJva2VuIGNvZGUuCisrICAgICAgIyBJ bnN0ZWFkLCB3ZSByZWxvY2F0ZSBzaGFyZWQgbGlicmFyaWVzIGF0IHJ1bnRpbWUuCisrICAgICAg OzsKKysgICAgc3lzdjQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKysJ X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPS1LY29uZm9ybV9waWMKKysgICAg ICBmaQorKyAgICAgIDs7CisrICAgIGhwdXgqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0 IGZvciA2NC1iaXQgUEEgSFAtVVgsIGJ1dCBub3QgZm9yIDMyLWJpdAorKyAgICAgICMgUEEgSFAt VVguICBPbiBJQTY0IEhQLVVYLCBQSUMgaXMgdGhlIGRlZmF1bHQgYnV0IHRoZSBwaWMgZmxhZwor KyAgICAgICMgc2V0cyB0aGUgZGVmYXVsdCBUTFMgbW9kZWwgYW5kIGFmZmVjdHMgaW5saW5pbmcu CisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0KikKKysJOzsKKysgICAg ICAqKQorKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworKwk7 OworKyAgICAgIGVzYWMKKysgICAgICA7OworKyAgICAqcW54KiB8ICpudG8qKQorKyAgICAgICMg UU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywg b3RoZXJ3aXNlCisrICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgorKyAgICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMgLXNoYXJlZCcKKysgICAgICA7OworKyAg ICAqKQorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMn CisrICAgICAgOzsKKysgICAgZXNhYworKyAgZWxzZQorKyAgICBjYXNlICRob3N0X29zIGluCisr ICAgICAgYWl4W1s0LTldXSopCisrCSMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KKysJaWYgdGVzdCAi JGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysJICAjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHBy b2Nlc3NvcgorKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJz dGF0aWMnCisrCWVsc2UKKysJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAk MSk9Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxzLmV4cCcKKysJZmkKKysJOzsKKysgICAgICBjaG9y dXMqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwljeGNoNjgqKQorKwkgICMgR3JlZW4gSGls bHMgQysrIENvbXBpbGVyCisrCSAgIyBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj LCAkMSk9Ii0tbm9fYXV0b19pbnN0YW50aWF0aW9uIC11IF9fbWFpbiAtdSBfX3ByZW1haW4gLXUg X2Fib3J0IC1yICRDT09MX0RJUi9saWIvbGliT3JiLmEgJE1WTUVfRElSL2xpYi9DQy9saWJDLmEg JE1WTUVfRElSL2xpYi9jbGFzc2l4L2xpYmN4LnMuYSIKKysJICA7OworKwllc2FjCisrCTs7Cisr ICAgICAgZGd1eCopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgZWMrKyopCisrCSAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworKwkgICAgOzsKKysJ ICBnaGN4KikKKysJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCSAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1waWMnCisrCSAgICA7OworKwkgICopCisr CSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQorKwkj IEZyZWVCU0QgdXNlcyBHTlUgQysrCisrCTs7CisrICAgICAgaHB1eDkqIHwgaHB1eDEwKiB8IGhw dXgxMSopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgQ0MqKQorKwkgICAgX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCSAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfc3RhdGljLCAkMSk9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJworKwkgICAgaWYg dGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0OyB0aGVuCisrCSAgICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0nK1onCisrCSAgICBmaQorKwkgICAgOzsKKysJICBhQ0MqKQor KwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCSAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9JyR7d2x9LWEgJHt3bH1hcmNo aXZlJworKwkgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysJICAgIGhwcGEqNjQqfGlhNjQqKQorKwkg ICAgICAjICtaIHRoZSBkZWZhdWx0CisrCSAgICAgIDs7CisrCSAgICAqKQorKwkgICAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9JytaJworKwkgICAgICA7OworKwkgICAg ZXNhYworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGlu dGVyaXgqKQorKwkjIFRoaXMgaXMgYzg5LCB3aGljaCBpcyBNUyBWaXN1YWwgQysrIChubyBzaGFy ZWQgbGlicykKKysJIyBBbnlvbmUgd2FudHMgdG8gZG8gYSBwb3J0PworKwk7OworKyAgICAgIGly aXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAg Q0MqKQorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisr CSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVk JworKwkgICAgIyBDQyBwaWMgZmxhZyAtS1BJQyBpcyB0aGUgZGVmYXVsdC4KKysJICAgIDs7Cisr CSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBsaW51eCogfCBrKmJzZCotZ251 IHwga29wZW5zb2xhcmlzKi1nbnUpCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgS0NDKikK KysJICAgICMgS0FJIEMrKyBDb21waWxlcgorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3dsLCAkMSk9Jy0tYmFja2VuZCAtV2wsJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctZlBJQycKKysJICAgIDs7CisrCSAgZWNwYyogKQorKwkgICAgIyBv bGQgSW50ZWwgQysrIGZvciB4ODZfNjQgd2hpY2ggc3RpbGwgc3VwcG9ydGVkIC1LUElDLgorKwkg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCSAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworKwkgICAgX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3RhdGljJworKwkgICAgOzsKKysJICBp Y3BjKiApCisrCSAgICAjIEludGVsIEMrKywgdXNlZCB0byBiZSBpbmNvbXBhdGlibGUgd2l0aCBH Q0MuCisrCSAgICAjIElDQyAxMCBkb2Vzbid0IGFjY2VwdCAtS1BJQyBhbnkgbW9yZS4KKysJICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKKysJICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKKysJICAgIDs7CisrCSAgcGdD QyogfCBwZ2NwcCopCisrCSAgICAjIFBvcnRsYW5kIEdyb3VwIEMrKyBjb21waWxlcgorKwkgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCSAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mcGljJworKwkgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysJICAgIDs7CisrCSAgY3h4 KikKKysJICAgICMgQ29tcGFxIEMrKworKwkgICAgIyBNYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGlz IGVtcHR5LiAgSXQgYXBwZWFycyB0aGF0IGFsbCBBbHBoYQorKwkgICAgIyBMaW51eCBhbmQgQ29t cGFxIFRydTY0IFVuaXggb2JqZWN0cyBhcmUgUElDLgorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPQorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKysJICAgIDs7CisrCSAgeGxjKiB8IHhsQyogfCBiZ3hs W1tjQ11dKiB8IG1waXhsW1tjQ11dKikKKysJICAgICMgSUJNIFhMIDguMCwgOS4wIG9uIFBQQyBh bmQgQmx1ZUdlbmUKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSct V2wsJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcXBpYycK KysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXFzdGF0aWNs aW5rJworKwkgICAgOzsKKysJICAqKQorKwkgICAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFg IGluCisrCSAgICAqU3VuXCBDKikKKysJICAgICAgIyBTdW4gQysrIDUuOQorKwkgICAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworKwkgICAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwkgICAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVFvcHRpb24gbGQgJworKwkgICAgICA7 OworKwkgICAgZXNhYworKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGx5bnhvcyopCisr CTs7CisrICAgICAgbTg4ayopCisrCTs7CisrICAgICAgbXZzKikKKysJY2FzZSAkY2NfYmFzZW5h bWUgaW4KKysJICBjeHgqKQorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPSctVyBjLGV4cG9ydGFsbCcKKysJICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMK KysJOzsKKysgICAgICBuZXRic2QqKQorKwk7OworKyAgICAgICpxbngqIHwgKm50byopCisrICAg ICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlv biB0b28sIG90aGVyd2lzZQorKyAgICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgorKyAgICAgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQyAtc2hhcmVkJworKyAg ICAgICAgOzsKKysgICAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrCWNhc2UgJGNjX2Jhc2Vu YW1lIGluCisrCSAgS0NDKikKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwg JDEpPSctLWJhY2tlbmQgLVdsLCcKKysJICAgIDs7CisrCSAgUkNDKikKKysJICAgICMgUmF0aW9u YWwgQysrIDIuNC4xCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9 Jy1waWMnCisrCSAgICA7OworKwkgIGN4eCopCisrCSAgICAjIERpZ2l0YWwvQ29tcGFxIEMrKwor KwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCSAgICAj IE1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgaXMgZW1wdHkuICBJdCBhcHBlYXJzIHRoYXQgYWxsIEFs cGhhCisrCSAgICAjIExpbnV4IGFuZCBDb21wYXEgVHJ1NjQgVW5peCBvYmplY3RzIGFyZSBQSUMu CisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9CisrCSAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworKwkgICAg OzsKKysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIHBzb3MqKQorKwk7Owor KyAgICAgIHNvbGFyaXMqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKiB8IHN1bkND KikKKysJICAgICMgU3VuIEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGluZSBDKysKKysJICAgIF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwkgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICcKKysJICAgIDs7Cisr CSAgZ2N4KikKKysJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCSAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1QSUMnCisrCSAgICA7OworKwkgICopCisr CSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgc3Vub3M0KikKKysJY2FzZSAkY2NfYmFzZW5h bWUgaW4KKysJICBDQyopCisrCSAgICAjIFN1biBDKysgNC54CisrCSAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1waWMnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwkgICAgOzsKKysJICBsY2MqKQorKwkg ICAgIyBMdWNpZAorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSct cGljJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIHN5 c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCisrCWNh c2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgQ0MqKQorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf cGljLCAkMSk9Jy1LUElDJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRp YywgJDEpPSctQnN0YXRpYycKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICB0YW5kZW0q KQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIE5DQyopCisrCSAgICAjIE5vblN0b3AtVVgg TkNDIDMuMjAKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQ SUMnCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgdnh3 b3JrcyopCisrCTs7CisrICAgICAgKikKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nh bl9idWlsZF9zaGFyZWQsICQxKT1ubworKwk7OworKyAgICBlc2FjCisrICBmaQorK10sCisrWwor KyAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9z dGF0aWMsICQxKT0nLXN0YXRpYycKKysKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFp eCopCisrICAgICAgIyBBbGwgQUlYIGNvZGUgaXMgUElDLgorKyAgICAgIGlmIHRlc3QgIiRob3N0 X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29y CisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisr ICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhbWlnYW9zKikKKysgICAgICBjYXNlICRob3N0 X2NwdSBpbgorKyAgICAgIHBvd2VycGMpCisrICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91 dCBBbWlnYU9TNCAuc28gc3VwcG9ydAorKyAgICAgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nLWZQSUMnCisrICAgICAgICA7OworKyAgICAgIG02OGspCisrICAg ICAgICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNo YXJlZCBsaWJyYXJpZXMsIGJ1dAorKyAgICAgICAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcg ZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAorKyAgICAgICAg ICAgICMgbGlrZSBgLW02ODA0MCcuCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQn CisrICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBiZW9zKiB8IGly aXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICAg ICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMuCisrICAgICAgOzsKKysKKysg ICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKiB8IGNlZ2NjKikKKysgICAgICAjIFRo aXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlz IGJlaW5nCisrICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQgc2hvdWxk IGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KKysgICAgICAjIEFsdGhvdWdoIHRoZSBjeWd3 aW4gZ2NjIGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBmb3Igb2xkLXN0eWxlCisrICAg ICAgIyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMKKysgICAgICBtNF9pZihbJDFd LCBbR0NKXSwgW10sCisrCVtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1E RExMX0VYUE9SVCddKQorKyAgICAgIDs7CisrCisrICAgIGRhcndpbiogfCByaGFwc29keSopCisr ICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQorKyAgICAgICMgQ29t bW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKKysgICAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mbm8tY29tbW9uJworKyAgICAgIDs7Cisr CisrICAgIGhhaWt1KikKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSGFpa3UuCisr ICAgICAgIyBUaGUgIi1zdGF0aWMiIGZsYWcgZXhpc3RzLCBidXQgaXMgYnJva2VuLgorKyAgICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0KKysgICAgICA7OworKwor KyAgICBocHV4KikKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgNjQtYml0IFBBIEhQ LVVYLCBidXQgbm90IGZvciAzMi1iaXQKKysgICAgICAjIFBBIEhQLVVYLiAgT24gSUE2NCBIUC1V WCwgUElDIGlzIHRoZSBkZWZhdWx0IGJ1dCB0aGUgcGljIGZsYWcKKysgICAgICAjIHNldHMgdGhl IGRlZmF1bHQgVExTIG1vZGVsIGFuZCBhZmZlY3RzIGlubGluaW5nLgorKyAgICAgIGNhc2UgJGhv c3RfY3B1IGluCisrICAgICAgaHBwYSo2NCopCisrCSMgK1ogdGhlIGRlZmF1bHQKKysJOzsKKysg ICAgICAqKQorKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJwor Kwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBpbnRlcml4W1szLTldXSopCisr ICAgICAgIyBJbnRlcml4IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9r ZW4gY29kZS4KKysgICAgICAjIEluc3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMg YXQgcnVudGltZS4KKysgICAgICA7OworKworKyAgICBtc2Rvc2RqZ3BwKikKKysgICAgICAjIEp1 c3QgYmVjYXVzZSB3ZSB1c2UgR0NDIGRvZXNuJ3QgbWVhbiB3ZSBzdWRkZW5seSBnZXQgc2hhcmVk IGxpYnJhcmllcworKyAgICAgICMgb24gc3lzdGVtcyB0aGF0IGRvbid0IHN1cHBvcnQgdGhlbS4K KysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZCwgJDEp PW5vCisrICAgICAgZW5hYmxlX3NoYXJlZD1ubworKyAgICAgIDs7CisrCisrICAgICpudG8qIHwg KnFueCopCisrICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNo YXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKysgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCisr ICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQyAtc2hhcmVk JworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0ZXN0IC1kIC91c3Iv bmVjOyB0aGVuCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0tS2NvbmZv cm1fcGljCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICAqKQorKyAgICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCisrICAgICAgOzsKKysgICAgZXNh YworKworKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICBudmNjKikgIyBDdWRhIENvbXBp bGVyIERyaXZlciAyLjIKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQx KT0nLVhsaW5rZXIgJworKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0nLVhjb21waWxlciAtZlBJQycKKysgICAgICA7OworKyAgICBlc2FjCisrICBlbHNlCisrICAg ICMgUE9SVE1FIENoZWNrIGZvciBmbGFnIHRvIHBhc3MgbGlua2VyIGZsYWdzIHRocm91Z2ggdGhl IHN5c3RlbSBjb21waWxlci4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXgqKQorKyAg ICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKyAgICAgIGlm IHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElB NjQgcHJvY2Vzc29yCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0n LUJzdGF0aWMnCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljLCAkMSk9Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxzLmV4cCcKKysgICAgICBmaQorKyAgICAg IDs7CisrCisrICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiogfCBjZWdjYyopCisr ICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hl dGhlciBpdCBpcyBiZWluZworKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAo YW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCisrICAgICAgbTRfaWYoWyQx XSwgW0dDSl0sIFtdLAorKwlbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSct RERMTF9FWFBPUlQnXSkKKysgICAgICA7OworKworKyAgICBocHV4OSogfCBocHV4MTAqIHwgaHB1 eDExKikKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcK KysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQ LVVYLCBidXQKKysgICAgICAjIG5vdCBmb3IgUEEgSFAtVVguCisrICAgICAgY2FzZSAkaG9zdF9j cHUgaW4KKysgICAgICBocHBhKjY0KnxpYTY0KikKKysJIyArWiB0aGUgZGVmYXVsdAorKwk7Owor KyAgICAgICopCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nK1onCisr CTs7CisrICAgICAgZXNhYworKyAgICAgICMgSXMgdGhlcmUgYSBiZXR0ZXIgbHRfcHJvZ19jb21w aWxlcl9zdGF0aWMgdGhhdCB3b3JrcyB3aXRoIHRoZSBidW5kbGVkIENDPworKyAgICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nJHt3bH0tYSAke3dsfWFyY2hpdmUn CisrICAgICAgOzsKKysKKysgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysgICAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICAjIFBJ QyAod2l0aCAtS1BJQykgaXMgdGhlIGRlZmF1bHQuCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKysgICAgICA7OworKworKyAgICBs aW51eCogfCBrKmJzZCotZ251IHwga29wZW5zb2xhcmlzKi1nbnUpCisrICAgICAgY2FzZSAkY2Nf YmFzZW5hbWUgaW4KKysgICAgICAjIG9sZCBJbnRlbCBmb3IgeDg2XzY0IHdoaWNoIHN0aWxsIHN1 cHBvcnRlZCAtS1BJQy4KKysgICAgICBlY2MqKQorKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfd2wsICQxKT0nLVdsLCcKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PSctS1BJQycKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3Rh dGljJworKyAgICAgICAgOzsKKysgICAgICAjIGljYyB1c2VkIHRvIGJlIGluY29tcGF0aWJsZSB3 aXRoIEdDQy4KKysgICAgICAjIElDQyAxMCBkb2Vzbid0IGFjY2VwdCAtS1BJQyBhbnkgbW9yZS4K KysgICAgICBpY2MqIHwgaWZvcnQqKQorKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2ws ICQxKT0nLVdsLCcKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJ QycKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3RhdGljJwor KyAgICAgICAgOzsKKysgICAgICAjIExhaGV5IEZvcnRyYW4gOC4xLgorKyAgICAgIGxmOTUqKQor KwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctLXNoYXJlZCcKKysJX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctLXN0YXRpYycKKysJOzsKKysgICAgICBwZ2NjKiB8 IHBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KiB8IHBnZm9ydHJhbiopCisrICAgICAgICAjIFBvcnRs YW5kIEdyb3VwIGNvbXBpbGVycyAoKm5vdCogdGhlIFBlbnRpdW0gZ2NjIGNvbXBpbGVyLAorKwkj IHdoaWNoIGxvb2tzIHRvIGJlIGEgZGVhZCBwcm9qZWN0KQorKwlfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3Bp YywgJDEpPSctZnBpYycKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEp PSctQnN0YXRpYycKKysgICAgICAgIDs7CisrICAgICAgY2NjKikKKysgICAgICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKyAgICAgICAgIyBBbGwgQWxwaGEg Y29kZSBpcyBQSUMuCisrICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj LCAkMSk9Jy1ub25fc2hhcmVkJworKyAgICAgICAgOzsKKysgICAgICB4bCogfCBiZ3hsKiB8IGJn ZiogfCBtcGl4bCopCisrCSMgSUJNIFhMIEMgOC4wL0ZvcnRyYW4gMTAuMSwgMTEuMSBvbiBQUEMg YW5kIEJsdWVHZW5lCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2ws JworKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1xcGljJworKwlfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1xc3RhdGljbGluaycKKysJOzsK KysgICAgICAqKQorKwljYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysJKlN1blwgRiog fCAqU3VuKkZvcnRyYW4qKQorKwkgICMgU3VuIEZvcnRyYW4gOC4zIHBhc3NlcyBhbGwgdW5yZWNv Z25pemVkIGZsYWdzIHRvIHRoZSBsaW5rZXIKKysJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfcGljLCAkMSk9Jy1LUElDJworKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0 aWMsICQxKT0nLUJzdGF0aWMnCisrCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9JycKKysJICA7OworKwkqU3VuXCBDKikKKysJICAjIFN1biBDIDUuOQorKwkgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysJICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJICA7OworKwllc2FjCisrCTs7CisrICAgICAg ZXNhYworKyAgICAgIDs7CisrCisrICAgIG5ld3NvczYpCisrICAgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgICpudG8q IHwgKnFueCopCisrICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUg LXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKysgICAgICAjIGl0IHdpbGwgY29yZWR1bXAu CisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQyAtc2hh cmVkJworKyAgICAgIDs7CisrCisrICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgICAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICAjIEFsbCBP U0YvMSBjb2RlIGlzIFBJQy4KKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljLCAkMSk9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIHJkb3MqKQorKyAgICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCisr ICAgICAgOzsKKysKKysgICAgc29sYXJpcyopCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisr ICAgICAgZjc3KiB8IGY5MCogfCBmOTUqIHwgc3VuZjc3KiB8IHN1bmY5MCogfCBzdW5mOTUqKQor KwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVFvcHRpb24gbGQgJzs7Cisr ICAgICAgKikKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnOzsK KysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAgc3Vub3M0KikKKysgICAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVFvcHRpb24gbGQgJworKyAgICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLVBJQycKKysgICAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisr ICAgIHN5c3Y0IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4zKikKKysgICAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrICAgICAgOzsKKysKKysgICAgc3lzdjQqTVAq KQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KKysJX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPSctS2NvbmZvcm1fcGljJworKwlfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIGZpCisrICAgICAgOzsKKysK KysgICAgc3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklY KikKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysg ICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworKyAgICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrICAg ICAgOzsKKysKKysgICAgdW5pY29zKikKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfY2Fu X2J1aWxkX3NoYXJlZCwgJDEpPW5vCisrICAgICAgOzsKKysKKysgICAgdXRzNCopCisrICAgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJworKyAgICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrICAgICAgOzsK KysKKysgICAgKikKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxk X3NoYXJlZCwgJDEpPW5vCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKytdKQorK2Nhc2Ug JGhvc3Rfb3MgaW4KKysgICMgRm9yIHBsYXRmb3JtcyB3aGljaCBkbyBub3Qgc3VwcG9ydCBQSUMs IC1EUElDIGlzIG1lYW5pbmdsZXNzOgorKyAgKmRqZ3BwKikKKysgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpPQorKyAgICA7OworKyAgKikKKysgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSIkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3Bp YywgJDEpQCZ0QG00X2lmKFskMV0sW10sWyAtRFBJQ10sW200X2lmKFskMV0sW0NYWF0sWyAtRFBJ Q10sW10pXSkiCisrICAgIDs7CisrZXNhYworK0FDX01TR19SRVNVTFQoWyRfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfcGljLCAkMSldKQorK19MVF9UQUdERUNMKFt3bF0sIFtsdF9wcm9nX2Nv bXBpbGVyX3dsXSwgWzFdLAorKwlbSG93IHRvIHBhc3MgYSBsaW5rZXIgZmxhZyB0aHJvdWdoIHRo ZSBjb21waWxlcl0pCisrCisrIworKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBh Y3R1YWxseSB3b3Jrcy4KKysjCisraWYgdGVzdCAtbiAiJF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKSI7IHRoZW4KKysgIF9MVF9DT01QSUxFUl9PUFRJT04oW2lmICRjb21waWxl ciBQSUMgZmxhZyAkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIHdvcmtzXSwK KysgICAgW19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3MsICQxKV0sCisr ICAgIFskX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpQCZ0QG00X2lmKFskMV0s W10sWyAtRFBJQ10sW200X2lmKFskMV0sW0NYWF0sWyAtRFBJQ10sW10pXSldLCBbXSwKKysgICAg W2Nhc2UgJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKSBpbgorKyAgICAgIiIg fCAiICIqKSA7OworKyAgICAgKikgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PSIgJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKSIgOzsKKysgICAgIGVzYWNd LAorKyAgICBbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQorKyAgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ub10pCisrZmkK KytfTFRfVEFHREVDTChbcGljX2ZsYWddLCBbbHRfcHJvZ19jb21waWxlcl9waWNdLCBbMV0sCisr CVtBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHNd KQorKworKyMKKysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGljIGZsYWcgYWN0dWFsbHkg d29ya3MuCisrIworK3dsPSRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKSBldmFs IGx0X3RtcF9zdGF0aWNfZmxhZz1cIiRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj LCAkMSlcIgorK19MVF9MSU5LRVJfT1BUSU9OKFtpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0 X3RtcF9zdGF0aWNfZmxhZyB3b3Jrc10sCisrICBfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGls ZXJfc3RhdGljX3dvcmtzLCAkMSksCisrICAkbHRfdG1wX3N0YXRpY19mbGFnLAorKyAgW10sCisr ICBbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPV0pCisrX0xUX1RBR0RF Q0woW2xpbmtfc3RhdGljX2ZsYWddLCBbbHRfcHJvZ19jb21waWxlcl9zdGF0aWNdLCBbMV0sCisr CVtDb21waWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nXSkKKytdKSMgX0xUX0NP TVBJTEVSX1BJQworKworKworKyMgX0xUX0xJTktFUl9TSExJQlMoW1RBR05BTUVdKQorKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU2VlIGlmIHRoZSBsaW5rZXIgc3VwcG9ydHMg YnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KKyttNF9kZWZ1bihbX0xUX0xJTktFUl9TSExJQlNd LAorK1tBQ19SRVFVSVJFKFtMVF9QQVRIX0xEXSlkbmwKKytBQ19SRVFVSVJFKFtMVF9QQVRIX05N XSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKKyttNF9yZXF1 aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwK KyttNF9yZXF1aXJlKFtfTFRfQ01EX0dMT0JBTF9TWU1CT0xTXSlkbmwKKyttNF9yZXF1aXJlKFtf TFRfVEFHX0NPTVBJTEVSXSlkbmwKKytBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdGhlICRjb21w aWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10pCisrbTRfaWYoWyQx XSwgW0NYWF0sIFsKKysgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0g JGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3Mv LiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrICBjYXNlICRob3N0 X29zIGluCisrICBhaXhbWzQtOV1dKikKKysgICAgIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRo ZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCisrICAgICMgLUMgbWVhbnMgZGVtYW5n bGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KKysgICAg IyBBbHNvLCBBSVggbm0gdHJlYXRzIHdlYWsgZGVmaW5lZCBzeW1ib2xzIGxpa2Ugb3RoZXIgZ2xv YmFsIGRlZmluZWQKKysgICAgIyBzeW1ib2xzLCB3aGVyZWFzIEdOVSBubSBtYXJrcyB0aGVtIGFz ICJXIi4KKysgICAgaWYgJE5NIC1WIDI+JjEgfCAkR1JFUCAnR05VJyA+IC9kZXYvbnVsbDsgdGhl bgorKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gLUJwZyAk bGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChc JCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSB8fCAoXCQgMiA9PSAiVyIpKSAmJiAoW3N1YnN0 cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRl eHBvcnRfc3ltYm9scycKKysgICAgZWxzZQorKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJv bHNfY21kcywgJDEpPSckTk0gLUJDcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7 IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYm IChbc3Vic3RyXShcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0 IC11ID4gJGV4cG9ydF9zeW1ib2xzJworKyAgICBmaQorKyAgICA7OworKyAgcHczMiopCisrICAg IF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSIkbHRkbGxfY21kcyIKKysgIDs7 CisrICBjeWd3aW4qIHwgbWluZ3cqIHwgY2VnY2MqKQorKyAgICBfTFRfVEFHVkFSKGV4cG9ydF9z eW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3lt Ym9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltbQkNER1JTXV1bWyBdXS9zLy4qW1sgXV1cKFtbXiBd XSpcKS9cMSBEQVRBLzsvXi4qW1sgXV1fX25tX18vcy9eLipbWyBdXV9fbm1fX1woW1teIF1dKlwp W1sgXV1bW14gXV0qL1wxIERBVEEvOy9eSVtbIF1dL2Q7L15bW0FJVFddXVtbIF1dL3MvLiogLy8n XCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrICA7OworKyAgKikKKysgICAg X0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29udmVu aWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0 IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKysgIDs7CisrICBlc2FjCisrICBfTFRfVEFHVkFS KGV4Y2x1ZGVfZXhwc3ltcywgJDEpPVsnX0dMT0JBTF9PRkZTRVRfVEFCTEVffF9HTE9CQUxfX0Zb SURdXy4qJ10KKytdLCBbCisrICBydW5wYXRoX3Zhcj0KKysgIF9MVF9UQUdWQVIoYWxsb3dfdW5k ZWZpbmVkX2ZsYWcsICQxKT0KKysgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAk MSk9bm8KKysgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9CisrICBfTFRfVEFHVkFSKGFy Y2hpdmVfZXhwc3ltX2NtZHMsICQxKT0KKysgIF9MVF9UQUdWQVIoY29tcGlsZXJfbmVlZHNfb2Jq ZWN0LCAkMSk9bm8KKysgIF9MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50 aW1lcywgJDEpPW5vCisrICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEp PQorKyAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAk Y29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycg fCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKysgIF9MVF9UQUdWQVIoaGFyZGNvZGVf YXV0b21hdGljLCAkMSk9bm8KKysgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8K KysgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9bm8KKysgIF9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQorKyAgX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9CisrICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3IsICQxKT0KKysgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEp PW5vCisrICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT11bnN1cHBvcnRl ZAorKyAgX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9bm8KKysgIF9MVF9UQUdWQVIobGlu a19hbGxfZGVwbGlicywgJDEpPXVua25vd24KKysgIF9MVF9UQUdWQVIobW9kdWxlX2NtZHMsICQx KT0KKysgIF9MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9CisrICBfTFRfVEFHVkFS KG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0KKysgIF9MVF9UQUdWQVIob2xkX2FyY2hp dmVfZnJvbV9leHBzeW1zX2NtZHMsICQxKT0KKysgIF9MVF9UQUdWQVIodGhyZWFkX3NhZmVfZmxh Z19zcGVjLCAkMSk9CisrICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9 CisrICAjIGluY2x1ZGVfZXhwc3ltcyBzaG91bGQgYmUgYSBsaXN0IG9mIHNwYWNlLXNlcGFyYXRl ZCBzeW1ib2xzIHRvIGJlICphbHdheXMqCisrICAjIGluY2x1ZGVkIGluIHRoZSBzeW1ib2wgbGlz dAorKyAgX0xUX1RBR1ZBUihpbmNsdWRlX2V4cHN5bXMsICQxKT0KKysgICMgZXhjbHVkZV9leHBz eW1zIGNhbiBiZSBhbiBleHRlbmRlZCByZWdleHAgb2Ygc3ltYm9scyB0byBleGNsdWRlCisrICAj IGl0IHdpbGwgYmUgd3JhcHBlZCBieSBgICgnIGFuZCBgKSQnLCBzbyBvbmUgbXVzdCBub3QgbWF0 Y2ggYmVnaW5uaW5nIG9yCisrICAjIGVuZCBvZiBsaW5lLiAgRXhhbXBsZTogYGF8YmN8LipkLion IHdpbGwgZXhjbHVkZSB0aGUgc3ltYm9scyBgYScgYW5kIGBiYycsCisrICAjIGFzIHdlbGwgYXMg YW55IHN5bWJvbCB0aGF0IGNvbnRhaW5zIGBkJy4KKysgIF9MVF9UQUdWQVIoZXhjbHVkZV9leHBz eW1zLCAkMSk9WydfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionXQorKyAg IyBBbHRob3VnaCBfR0xPQkFMX09GRlNFVF9UQUJMRV8gaXMgYSB2YWxpZCBzeW1ib2wgQyBuYW1l LCBtb3N0IGEub3V0CisrICAjIHBsYXRmb3JtcyAoYWIpdXNlIGl0IGluIFBJQyBjb2RlLCBidXQg dGhlaXIgbGlua2VycyBnZXQgY29uZnVzZWQgaWYKKysgICMgdGhlIHN5bWJvbCBpcyBleHBsaWNp dGx5IHJlZmVyZW5jZWQuICBTaW5jZSBwb3J0YWJsZSBjb2RlIGNhbm5vdAorKyAgIyByZWx5IG9u IHRoaXMgc3ltYm9sIG5hbWUsIGl0J3MgcHJvYmFibHkgZmluZSB0byBuZXZlciBpbmNsdWRlIGl0 IGluCisrICAjIHByZWxvYWRlZCBzeW1ib2wgdGFibGVzLgorKyAgIyBFeGNsdWRlIHNoYXJlZCBs aWJyYXJ5IGluaXRpYWxpemF0aW9uL2ZpbmFsaXphdGlvbiBzeW1ib2xzLgorK2RubCBOb3RlIGFs c28gYWRqdXN0IGV4Y2x1ZGVfZXhwc3ltcyBmb3IgQysrIGFib3ZlLgorKyAgZXh0cmFjdF9leHBz eW1zX2NtZHM9CisrCisrICBjYXNlICRob3N0X29zIGluCisrICBjeWd3aW4qIHwgbWluZ3cqIHwg cHczMiogfCBjZWdjYyopCisrICAgICMgRklYTUU6IHRoZSBNU1ZDKysgcG9ydCBoYXNuJ3QgYmVl biB0ZXN0ZWQgaW4gYSBsb29vb25nIHRpbWUKKysgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdl IGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcKKysgICAgIyBNaWNyb3NvZnQgVmlz dWFsIEMrKy4KKysgICAgaWYgdGVzdCAiJEdDQyIgIT0geWVzOyB0aGVuCisrICAgICAgd2l0aF9n bnVfbGQ9bm8KKysgICAgZmkKKysgICAgOzsKKysgIGludGVyaXgqKQorKyAgICAjIHdlIGp1c3Qg aG9wZS9hc3N1bWUgdGhpcyBpcyBnY2MgYW5kIG5vdCBjODkgKD0gTVNWQysrKQorKyAgICB3aXRo X2dudV9sZD15ZXMKKysgICAgOzsKKysgIG9wZW5ic2QqKQorKyAgICB3aXRoX2dudV9sZD1ubwor KyAgICA7OworKyAgZXNhYworKworKyAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKKysK KysgICMgT24gc29tZSB0YXJnZXRzLCBHTlUgbGQgaXMgY29tcGF0aWJsZSBlbm91Z2ggd2l0aCB0 aGUgbmF0aXZlIGxpbmtlcgorKyAgIyB0aGF0IHdlJ3JlIGJldHRlciBvZmYgdXNpbmcgdGhlIG5h dGl2ZSBpbnRlcmZhY2UgZm9yIGJvdGguCisrICBsdF91c2VfZ251X2xkX2ludGVyZmFjZT1ubwor KyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICBjYXNlICRob3N0X29z IGluCisrICAgICAgYWl4KikKKysJIyBUaGUgQUlYIHBvcnQgb2YgR05VIGxkIGhhcyBhbHdheXMg YXNwaXJlZCB0byBjb21wYXRpYmlsaXR5CisrCSMgd2l0aCB0aGUgbmF0aXZlIGxpbmtlci4gIEhv d2V2ZXIsIGFzIHRoZSB3YXJuaW5nIGluIHRoZSBHTlUgbGQKKysJIyBibG9jayBzYXlzLCB2ZXJz aW9ucyBiZWZvcmUgMi4xOS41KiBjb3VsZG4ndCByZWFsbHkgY3JlYXRlIHdvcmtpbmcKKysJIyBz aGFyZWQgbGlicmFyaWVzLCByZWdhcmRsZXNzIG9mIHRoZSBpbnRlcmZhY2UgdXNlZC4KKysJY2Fz ZSBgJExEIC12IDI+JjFgIGluCisrCSAgKlwgXChHTlVcIEJpbnV0aWxzXClcIDIuMTkuNSopIDs7 CisrCSAgKlwgXChHTlVcIEJpbnV0aWxzXClcIDIuW1syLTldXSopIDs7CisrCSAgKlwgXChHTlVc IEJpbnV0aWxzXClcIFtbMy05XV0qKSA7OworKwkgICopCisrCSAgICBsdF91c2VfZ251X2xkX2lu dGVyZmFjZT15ZXMKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICAqKQorKwlsdF91c2Vf Z251X2xkX2ludGVyZmFjZT15ZXMKKysJOzsKKysgICAgZXNhYworKyAgZmkKKysKKysgIGlmIHRl c3QgIiRsdF91c2VfZ251X2xkX2ludGVyZmFjZSIgPSB5ZXM7IHRoZW4KKysgICAgIyBJZiBhcmNo aXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKKysgICAgd2xh cmM9JyR7d2x9JworKworKyAgICAjIFNldCBzb21lIGRlZmF1bHRzIGZvciBHTlUgbGQgd2l0aCBz aGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQorKyAgICAjIGFyZSByZXNldCBsYXRlciBpZiBz aGFyZWQgbGlicmFyaWVzIGFyZSBub3Qgc3VwcG9ydGVkLiBQdXR0aW5nIHRoZW0KKysgICAgIyBo ZXJlIGFsbG93cyB0aGVtIHRvIGJlIG92ZXJyaWRkZW4gaWYgbmVjZXNzYXJ5LgorKyAgICBydW5w YXRoX3Zhcj1MRF9SVU5fUEFUSAorKyAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICBfTFRfVEFHVkFSKGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrICAg ICMgYW5jaWVudCBHTlUgbGQgZGlkbid0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlIGV0LiBhbC4K KysgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rl di9udWxsOyB0aGVuCisrICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywg JDEpPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13 aG9sZS1hcmNoaXZlJworKyAgICBlbHNlCisrICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlYywgJDEpPQorKyAgICBmaQorKyAgICBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9 bm8KKysgICAgY2FzZSBgJExEIC12IDI+JjFgIGluCisrICAgICAgKkdOVVwgZ29sZCopIHN1cHBv cnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsKKysgICAgICAqXCBbWzAxXV0uKiB8ICpcIDIuW1sw LTldXS4qIHwgKlwgMi4xMC4qKSA7OyAjIGNhdGNoIHZlcnNpb25zIDwgMi4xMQorKyAgICAgICpc IDIuMTEuOTMuMC4yXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgUkg3LjMg Li4uCisrICAgICAgKlwgMi4xMS45Mi4wLjEyXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9 eWVzIDs7ICMgTWFuZHJha2UgOC4yIC4uLgorKyAgICAgICpcIDIuMTEuKikgOzsgIyBvdGhlciAy LjExIHZlcnNpb25zCisrICAgICAgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7Owor KyAgICBlc2FjCisrCisrICAgICMgU2VlIGlmIEdOVSBsZCBzdXBwb3J0cyBzaGFyZWQgbGlicmFy aWVzLgorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFpeFtbMy05XV0qKQorKyAgICAgICMg T24gQUlYL1BQQywgdGhlIEdOVSBsaW5rZXIgaXMgdmVyeSBicm9rZW4KKysgICAgICBpZiB0ZXN0 ICIkaG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KKysJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1u bworKwljYXQgPDxfTFRfRU9GIDE+JjIKKysKKysqKiogV2FybmluZzogdGhlIEdOVSBsaW5rZXIs IGF0IGxlYXN0IHVwIHRvIHJlbGVhc2UgMi4xOSwgaXMgcmVwb3J0ZWQKKysqKiogdG8gYmUgdW5h YmxlIHRvIHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIEFJWC4KKysqKiogVGhl cmVmb3JlLCBsaWJ0b29sIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBJ ZiB5b3UKKysqKiogcmVhbGx5IGNhcmUgZm9yIHNoYXJlZCBsaWJyYXJpZXMsIHlvdSBtYXkgd2Fu dCB0byBpbnN0YWxsIGJpbnV0aWxzCisrKioqIDIuMjAgb3IgYWJvdmUsIG9yIG1vZGlmeSB5b3Vy IFBBVEggc28gdGhhdCBhIG5vbi1HTlUgbGlua2VyIGlzIGZvdW5kLgorKyoqKiBZb3Ugd2lsbCB0 aGVuIG5lZWQgdG8gcmVzdGFydCB0aGUgY29uZmlndXJhdGlvbiBwcm9jZXNzLgorKworK19MVF9F T0YKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFtaWdhb3MqKQorKyAgICAgIGNhc2Ug JGhvc3RfY3B1IGluCisrICAgICAgcG93ZXJwYykKKysgICAgICAgICAgICAjIHNlZSBjb21tZW50 IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisrICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAgICAgICAgICAgX0xUX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JycKKysgICAgICAgIDs7CisrICAgICAgbTY4 aykKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1 dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTElCUkFSWV9J RCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFZF UlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIj ZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnku ZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0 X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJworKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrICAgICAgICAgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAgICA7OworKyAgICAgIGVz YWMKKysgICAgICA7OworKworKyAgICBiZW9zKikKKysgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEg fCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisr CV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAorKwkjIEpv c2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMgb2YgZ2Nj CisrCSMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0 aW9uLiAgRklYTUUKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1ub3N0YXJ0 ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFt ZSAtbyAkbGliJworKyAgICAgIGVsc2UKKysJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwor KyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwg Y2VnY2MqKQorKyAgICAgICMgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCisrICAgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFy Y2ggcGF0aCBmb3IgRExMcy4KKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKT0nLUwkbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtYWxsLXN5bWJvbHMnCisrICAgICAgX0xUX1RB R1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrICAgICAgX0xUX1RB R1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubworKyAgICAgIF9MVF9UQUdWQVIoZW5h YmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPXllcworKyAgICAgIF9MVF9UQUdW QVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwg JGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW1tCQ0RHUlNdXVtbIF1dL3MvLipb WyBdXVwoW1teIF1dKlwpL1wxIERBVEEvJ1wnJyB8ICRTRUQgLWUgJ1wnJy9eW1tBSVRXXV1bWyBd XS9zLy4qW1sgXV0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKysKKysg ICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnYXV0by1pbXBvcnQnID4gL2Rldi9udWxs OyB0aGVuCisrICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJl ZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNv bmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIg LVhsaW5rZXIgJGxpYicKKysJIyBJZiB0aGUgZXhwb3J0LXN5bWJvbHMgZmlsZSBhbHJlYWR5IGlz IGEgLmRlZiBmaWxlICgxc3QgbGluZQorKwkjIGlzIEVYUE9SVFMpLCB1c2UgaXQgYXMgaXM7IG90 aGVyd2lzZSwgcHJlcGVuZC4uLgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4K KysJICBjcCAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrCWVs c2UKKysJICBlY2hvIEVYUE9SVFMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysJICBj YXQgJGV4cG9ydF9zeW1ib2xzID4+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworKwlmaX4K KysJJENDIC1zaGFyZWQgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWYgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJs ZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCisr ICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgZmkKKysg ICAgICA7OworKworKyAgICBoYWlrdSopCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9k ZXBsaWJzLCAkMSk9eWVzCisrICAgICAgOzsKKysKKysgICAgaW50ZXJpeFtbMy05XV0qKQorKyAg ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKysgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworKyAgICAgIF9M VF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisrICAgICAg IyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElDIGJlY2F1c2Ugb2Yg YSBicm9rZW4gZ2NjLgorKyAgICAgICMgSW5zdGVhZCwgc2hhcmVkIGxpYnJhcmllcyBhcmUgbG9h ZGVkIGF0IGFuIGltYWdlIGJhc2UgKDB4MTAwMDAwMDAgYnkKKysgICAgICAjIGRlZmF1bHQpIGFu ZCByZWxvY2F0ZWQgaWYgdGhleSBjb25mbGljdCwgd2hpY2ggaXMgYSBzbG93IHZlcnkgbWVtb3J5 CisrICAgICAgIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBhdm9pZCB0 aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAorKyAgICAgICMgMjU2IEtpQi1hbGlnbmVkIGltYWdlIGJh c2UgYmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMwMDAwIGF0IGxpbmsKKysgICAgICAjIHRp bWUuICBNb3ZpbmcgdXAgZnJvbSAweDEwMDAwMDAwIGFsc28gYWxsb3dzIG1vcmUgc2JyaygyKSBz cGFjZS4KKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAk cGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFt ZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIx NDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBz eW1fY21kcywgJDEpPSdzZWQgInMsXixfLCIgJGV4cG9ydF9zeW1ib2xzID4kb3V0cHV0X29iamRp ci8kc29uYW1lLmV4cHN5bX4kQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0tcmV0YWluLXN5bWJvbHMtZmls ZSwkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAk e1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJwor KyAgICAgIDs7CisrCisrICAgIGdudSogfCBsaW51eCogfCB0cGYqIHwgaypic2QqLWdudSB8IGtv cGVuc29sYXJpcyotZ251KQorKyAgICAgIHRtcF9kaWV0PW5vCisrICAgICAgaWYgdGVzdCAiJGhv c3Rfb3MiID0gbGludXgtZGlldGxpYmM7IHRoZW4KKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJ ICBkaWV0XCAqKSB0bXBfZGlldD15ZXM7OwkjIGxpbnV4LWRpZXRsaWJjIHdpdGggc3RhdGljIGxp bmtpbmcgKCFkaWV0LWR5bikKKysJZXNhYworKyAgICAgIGZpCisrICAgICAgaWYgJExEIC0taGVs cCAyPiYxIHwgJEVHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGwg XAorKwkgJiYgdGVzdCAiJHRtcF9kaWV0IiA9IG5vCisrICAgICAgdGhlbgorKwl0bXBfYWRkZmxh Zz0KKysJdG1wX3NoYXJlZGZsYWc9Jy1zaGFyZWQnCisrCWNhc2UgJGNjX2Jhc2VuYW1lLCRob3N0 X2NwdSBpbgorKyAgICAgICAgcGdjYyopCQkJCSMgUG9ydGxhbmQgR3JvdXAgQyBjb21waWxlcgor KwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xl LWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29u dlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsg ZnVuY19lY2hvX2FsbCBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hp dmUnCisrCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcnCisrCSAgOzsKKysJcGdmNzcqIHwgcGdm OTAqIHwgcGdmOTUqIHwgcGdmb3J0cmFuKikKKysJCQkJCSMgUG9ydGxhbmQgR3JvdXAgZjc3IGFu ZCBmOTAgY29tcGlsZXJzCisrCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywg JDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBk byB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5j ZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3ds fS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZyAtTW5vbWFp bicgOzsKKysJZWNjKixpYTY0KiB8IGljYyosaWE2NCopCSMgSW50ZWwgQyBjb21waWxlciBvbiBp YTY0CisrCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljJyA7OworKwllZmMqLGlhNjQqIHwgaWZv cnQqLGlhNjQqKQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIgb24gaWE2NAorKwkgIHRtcF9hZGRm bGFnPScgLWlfZHluYW1pYyAtbm9mb3JfbWFpbicgOzsKKysJaWZjKiB8IGlmb3J0KikJCQkjIElu dGVsIEZvcnRyYW4gY29tcGlsZXIKKysJICB0bXBfYWRkZmxhZz0nIC1ub2Zvcl9tYWluJyA7Owor KwlsZjk1KikJCQkJIyBMYWhleSBGb3J0cmFuIDguMQorKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMsICQxKT0KKysJICB0bXBfc2hhcmVkZmxhZz0nLS1zaGFyZWQnIDs7Cisr CXhsW1tjQ11dKiB8IGJneGxbW2NDXV0qIHwgbXBpeGxbW2NDXV0qKSAjIElCTSBYTCBDIDguMCBv biBQUEMgKGRlYWwgd2l0aCB4bGYgYmVsb3cpCisrCSAgdG1wX3NoYXJlZGZsYWc9Jy1xbWtzaHJv YmonCisrCSAgdG1wX2FkZGZsYWc9IDs7CisrCW52Y2MqKQkjIEN1ZGEgQ29tcGlsZXIgRHJpdmVy IDIuMgorKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0t LXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4g XCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsg ZG9uZTsgZnVuY19lY2hvX2FsbCBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xl LWFyY2hpdmUnCisrCSAgX0xUX1RBR1ZBUihjb21waWxlcl9uZWVkc19vYmplY3QsICQxKT15ZXMK KysJICA7OworKwllc2FjCisrCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkqU3Vu XCBDKikJCQkjIFN1biBDIDUuOQorKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYg aW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmll bmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5l d19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICBfTFRfVEFHVkFS KGNvbXBpbGVyX25lZWRzX29iamVjdCwgJDEpPXllcworKwkgIHRtcF9zaGFyZWRmbGFnPSctRycg OzsKKysJKlN1blwgRiopCQkJIyBTdW4gRm9ydHJhbiA4LjMKKysJICB0bXBfc2hhcmVkZmxhZz0n LUcnIDs7CisrCWVzYWMKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDICciJHRt cF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysKKysgICAgICAgIGlmIHRl c3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KKysgICAgICAgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAk b3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwg c2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Cisr CSAgICBlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4K KysJICAgICRDQyAnIiR0bXBfc2hhcmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXZlcnNp b24tc2NyaXB0ICR7d2x9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisrICAg ICAgICBmaQorKworKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwl4bGYqIHwgYmdmKiB8IGJneGxm KiB8IG1waXhsZiopCisrCSAgIyBJQk0gWEwgRm9ydHJhbiAxMC4xIG9uIFBQQyBjYW5ub3QgY3Jl YXRlIHNoYXJlZCBsaWJzIGl0c2VsZgorKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWMsICQxKT0nLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlIC0tbm8td2hvbGUtYXJjaGl2 ZScKKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KKysJICBf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0nLXJwYXRoICRsaWJk aXInCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1zaGFyZWQgJGxpYm9i anMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgLW8gJGxpYicKKysJICBp ZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0aGVuCisrCSAgICBf TFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRv dXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICAgY2F0ICRleHBvcnRfc3ltYm9scyB8 IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgor KwkgICAgICBlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZl cn4KKysJICAgICAgJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAt c29uYW1lICRzb25hbWUgLXZlcnNpb24tc2NyaXB0ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZl ciAtbyAkbGliJworKwkgIGZpCisrCSAgOzsKKysJZXNhYworKyAgICAgIGVsc2UKKysgICAgICAg IF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisr ICAgIG5ldGJzZCopCisrICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBf X0VMRl9fID4vZGV2L251bGw7IHRoZW4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JExEIC1Cc2hhcmVhYmxlICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLW8gJGxpYicK KysJd2xhcmM9CisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck Q0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR3bCRzb25hbWUgLW8gJGxpYicKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAk MSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1z b25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3lt Ym9scyAtbyAkbGliJworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgc29sYXJpcyopCisr ICAgICAgaWYgJExEIC12IDI+JjEgfCAkR1JFUCAnQkZEIDJcLjgnID4gL2Rldi9udWxsOyB0aGVu CisrCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJY2F0IDw8X0xUX0VPRiAxPiYyCisr CisrKioqIFdhcm5pbmc6IFRoZSByZWxlYXNlcyAyLjguKiBvZiB0aGUgR05VIGxpbmtlciBjYW5u b3QgcmVsaWFibHkKKysqKiogY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU29sYXJpcyBzeXN0 ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCisrKioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFy aWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdOVQorKyoqKiBiaW51dGlscyB0 byByZWxlYXNlIDIuOS4xIG9yIG5ld2VyLiAgQW5vdGhlciBvcHRpb24gaXMgdG8gbW9kaWZ5Cisr KioqIHlvdXIgUEFUSCBvciBjb21waWxlciBjb25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2 ZSBsaW5rZXIgaXMKKysqKiogdXNlZCwgYW5kIHRoZW4gcmVzdGFydC4KKysKKytfTFRfRU9GCisr ICAgICAgZWxpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czou KiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9z eW1ib2xzIC1vICRsaWInCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBz Y281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqKQorKyAgICAgIGNhc2UgYCRMRCAtdiAyPiYx YCBpbgorKyAgICAgICAgKlwgW1swMV1dLiogfCAqXCAyLltbMC05XV0uKiB8ICpcIDIuMVtbMC01 XV0uKikKKysJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwljYXQgPDxfTFRfRU9GIDE+ JjIKKysKKysqKiogV2FybmluZzogUmVsZWFzZXMgb2YgdGhlIEdOVSBsaW5rZXIgcHJpb3IgdG8g Mi4xNi45MS4wLjMgY2FuIG5vdAorKyoqKiByZWxpYWJseSBjcmVhdGUgc2hhcmVkIGxpYnJhcmll cyBvbiBTQ08gc3lzdGVtcy4gIFRoZXJlZm9yZSwgbGlidG9vbAorKyoqKiBpcyBkaXNhYmxpbmcg c2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgV2UgdXJnZSB5b3UgdG8gdXBncmFkZSBHTlUKKysq KiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjE2LjkxLjAuMyBvciBuZXdlci4gIEFub3RoZXIgb3B0 aW9uIGlzIHRvIG1vZGlmeQorKyoqKiB5b3VyIFBBVEggb3IgY29tcGlsZXIgY29uZmlndXJhdGlv biBzbyB0aGF0IHRoZSBuYXRpdmUgbGlua2VyIGlzCisrKioqIHVzZWQsIGFuZCB0aGVuIHJlc3Rh cnQuCisrCisrX0xUX0VPRgorKwk7OworKwkqKQorKwkgICMgRm9yIHNlY3VyaXR5IHJlYXNvbnMs IGl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHlvdSBhbHdheXMKKysJICAjIHVzZSBhYnNv bHV0ZSBwYXRocyBmb3IgbmFtaW5nIHNoYXJlZCBsaWJyYXJpZXMsIGFuZCBleGNsdWRlIHRoZQor KwkgICMgRFRfUlVOUEFUSCB0YWcgZnJvbSBleGVjdXRhYmxlcyBhbmQgbGlicmFyaWVzLiAgQnV0 IGRvaW5nIHNvCisrCSAgIyByZXF1aXJlcyB0aGF0IHlvdSBjb21waWxlIGV2ZXJ5dGhpbmcgdHdp Y2UsIHdoaWNoIGlzIGEgcGFpbi4KKysJICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBz dXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGli ZGlyJworKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1v ICRsaWInCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wk c29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRs aWInCisrCSAgZWxzZQorKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwkgIGZp CisrCTs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIHN1bm9zNCopCisrICAgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1hc3NlcnQgcHVyZS10ZXh0IC1Cc2hh cmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICB3 bGFyYz0KKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKyAgICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsKKysK KysgICAgKikKKysgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQg dGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhw c3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHds JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGxkX3No bGlicywgJDEpPW5vCisrICAgICAgZmkKKysgICAgICA7OworKyAgICBlc2FjCisrCisrICAgIGlm IHRlc3QgIiRfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpIiA9IG5vOyB0aGVuCisrICAgICAgcnVu cGF0aF92YXI9CisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSk9CisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0KKysg ICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9CisrICAgIGZpCisr ICBlbHNlCisrICAgICMgUE9SVE1FIGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3Rl bSdzIGxpbmtlciAobm90IEdOVSBsZCkKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXgz KikKKysgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0 ZWQKKysgICAgICBfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPXllcworKyAg ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckTEQgLW8gJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1iRTokZXhwb3J0 X3N5bWJvbHMgLVQ1MTIgLUg1MTIgLWJNOlNSRX4kQVIgJEFSX0ZMQUdTICRsaWIgJG91dHB1dF9v YmpkaXIvJHNvbmFtZScKKysgICAgICAjIE5vdGU6IHRoaXMgbGlua2VyIGhhcmRjb2RlcyB0aGUg ZGlyZWN0b3JpZXMgaW4gTElCUEFUSCBpZiB0aGVyZQorKyAgICAgICMgYXJlIG5vIGRpcmVjdG9y aWVzIHNwZWNpZmllZCBieSAtTC4KKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0ws ICQxKT15ZXMKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAmJiB0ZXN0IC16ICIkbHRfcHJv Z19jb21waWxlcl9zdGF0aWMiOyB0aGVuCisrCSMgTmVpdGhlciBkaXJlY3QgaGFyZGNvZGluZyBu b3Igc3RhdGljIGxpbmtpbmcgaXMgc3VwcG9ydGVkIHdpdGggYQorKwkjIGJyb2tlbiBjb2xsZWN0 Mi4KKysJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT11bnN1cHBvcnRlZAorKyAgICAg IGZpCisrICAgICAgOzsKKysKKysgICAgYWl4W1s0LTldXSopCisrICAgICAgaWYgdGVzdCAiJGhv c3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysJIyBPbiBJQTY0LCB0aGUgbGlua2VyIGRvZXMgcnVuIHRp bWUgbGlua2luZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAorKwkjIGhhdmUgdG8gZG8gYW55dGhp bmcgc3BlY2lhbC4KKysJYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworKwlleHBfc3ltX2ZsYWc9 Jy1CZXhwb3J0JworKwlub19lbnRyeV9mbGFnPSIiCisrICAgICAgZWxzZQorKwkjIElmIHdlJ3Jl IHVzaW5nIEdOVSBubSwgdGhlbiB3ZSBkb24ndCB3YW50IHRoZSAiLUMiIG9wdGlvbi4KKysJIyAt QyBtZWFucyBkZW1hbmdsZSB0byBBSVggbm0sIGJ1dCBtZWFucyBkb24ndCBkZW1hbmdsZSB3aXRo IEdOVSBubQorKwkjIEFsc28sIEFJWCBubSB0cmVhdHMgd2VhayBkZWZpbmVkIHN5bWJvbHMgbGlr ZSBvdGhlciBnbG9iYWwKKysJIyBkZWZpbmVkIHN5bWJvbHMsIHdoZXJlYXMgR05VIG5tIG1hcmtz IHRoZW0gYXMgIlciLgorKwlpZiAkTk0gLVYgMj4mMSB8ICRHUkVQICdHTlUnID4gL2Rldi9udWxs OyB0aGVuCisrCSAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQnBn ICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwg KFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpIHx8IChcJCAyID09ICJXIikpICYmIChbc3Vi c3RyXShcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4g JGV4cG9ydF9zeW1ib2xzJworKwllbHNlCisrCSAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19j bWRzLCAkMSk9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYg KCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKFtz dWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUg PiAkZXhwb3J0X3N5bWJvbHMnCisrCWZpCisrCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysK KysJIyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9y bWFsCisrCSMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZM QUdTLCB3ZQorKwkjIG5lZWQgdG8gZG8gcnVudGltZSBsaW5raW5nLgorKwljYXNlICRob3N0X29z IGluIGFpeDQuW1syM11dfGFpeDQuW1syM11dLip8YWl4W1s1LTldXSopCisrCSAgZm9yIGxkX2Zs YWcgaW4gJExERkxBR1M7IGRvCisrCSAgaWYgKHRlc3QgJGxkX2ZsYWcgPSAiLWJydGwiIHx8IHRl c3QgJGxkX2ZsYWcgPSAiLVdsLC1icnRsIik7IHRoZW4KKysJICAgIGFpeF91c2VfcnVudGltZWxp bmtpbmc9eWVzCisrCSAgICBicmVhaworKwkgIGZpCisrCSAgZG9uZQorKwkgIDs7CisrCWVzYWMK KysKKysJZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcKKysJbm9fZW50cnlfZmxhZz0nLWJub2VudHJ5 JworKyAgICAgIGZpCisrCisrICAgICAgIyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNoYXJl ZCBvYmplY3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgorKyAgICAgICMgaGF2ZSBwcm9ibGVtcyBj cmVhdGluZyB0aGUgdGFibGUgb2YgY29udGVudHMuICBJZiBsaW5raW5nIGEgbGlicmFyeQorKyAg ICAgICMgb3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1p bmltYWwtdG9jIHRvCisrICAgICAgIyBDWFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9nY2MuICBJbiB0 aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBub3QKKysgICAgICAjIGVub3VnaCB0byBmaXggdGhlIHBy b2JsZW0sIGFkZCAtV2wsLWJiaWd0b2MgdG8gTERGTEFHUy4KKysKKysgICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPScnCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3Qs ICQxKT15ZXMKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEp PXllcworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPSc6 JworKyAgICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworKyAgICAgIF9M VF9UQUdWQVIoZmlsZV9saXN0X3NwZWMsICQxKT0nJHt3bH0tZiwnCisrCisrICAgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMDEyXV18YWl4 NC5bWzAxMl1dLiopCisrCSMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gQUlYIDQuMiBhbmQg bG93ZXIsIHRoZSBjaGVjaworKwkjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3 b3JrIHVuZGVyIDQuMysKKysJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9 Y29sbGVjdDJgCisrCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYKKysJICAgc3RyaW5n cyAiJGNvbGxlY3QybmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJ ICB0aGVuCisrCSAgIyBXZSBoYXZlIHJld29ya2VkIGNvbGxlY3QyCisrCSAgOgorKwkgIGVsc2UK KysJICAjIFdlIGhhdmUgb2xkIGNvbGxlY3QyCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJl Y3QsICQxKT11bnN1cHBvcnRlZAorKwkgICMgSXQgZmFpbHMgdG8gZmluZCB1bmluc3RhbGxlZCBs aWJyYXJpZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQKKysJICAjIHBhdGggaXMgbm90IGxpc3RlZCBp biB0aGUgbGlicGF0aC4gIFNldHRpbmcgaGFyZGNvZGVfbWludXNfTAorKwkgICMgdG8gdW5zdXBw b3J0ZWQgZm9yY2VzIHJlbGlua2luZworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwg JDEpPXllcworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSct TCRsaWJkaXInCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9 CisrCSAgZmkKKysJICA7OworKwllc2FjCisrCXNoYXJlZF9mbGFnPSctc2hhcmVkJworKwlpZiB0 ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysJICBzaGFyZWRfZmxh Zz0iJHNoYXJlZF9mbGFnICInJHt3bH0tRycKKysJZmkKKysgICAgICBlbHNlCisrCSMgbm90IHVz aW5nIGdjYworKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIFZpc3VhbEFn ZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQor KwkjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgorKwkg IHNoYXJlZF9mbGFnPSctRycKKysJZWxzZQorKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVs aW5raW5nIiA9IHllczsgdGhlbgorKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCisrCSAgZWxz ZQorKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKKysJICBmaQorKwlmaQorKyAgICAg IGZpCisrCisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0n JHt3bH0tYmV4cGFsbCcKKysgICAgICAjIEl0IHNlZW1zIHRoYXQgLWJleHBhbGwgZG9lcyBub3Qg ZXhwb3J0IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKKysgICAgICAjIHVuZGVyc2NvcmUgKF8pLCBz byBpdCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8gZXhwb3J0Lgor KyAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9eWVzCisrICAgICAg aWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSMgV2Fybmlu ZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJydGwp LAorKwkjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEg YnJva2VuIGxpYnJhcnkuCisrCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0n LWJlcm9rJworKyAgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRo ZSB2YWx1ZSBlbmNvZGVkIGluIGFuCisrICAgICAgICAjIGVtcHR5IGV4ZWN1dGFibGUuCisrICAg ICAgICBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xp YnBhdGgiCisrICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJEND IC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9f ZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAieCR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9IiAhPSAieCI7IHRoZW4gZnVuY19lY2hvX2FsbCAiJHt3bH0ke2FsbG93X3VuZGVmaW5l ZF9mbGFnfSI7IGVsc2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1i b2xzICRzaGFyZWRfZmxhZyIKKysgICAgICBlbHNlCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBp YTY0OyB0aGVuCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJworKwkgIF9MVF9UQUdWQVIoYWxsb3dfdW5k ZWZpbmVkX2ZsYWcsICQxKT0iLXogbm9kZWZzIgorKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBz eW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25h bWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9m bGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1fZmxhZzpc JGV4cG9ydF9zeW1ib2xzIgorKwllbHNlCisrCSAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJw YXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KKysJICMgZW1wdHkgZXhlY3V0YWJsZS4K KysJIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCisrCSBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIK KysJICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW4gdGltZSBsb2FkaW5n IGZsYWdzLAorKwkgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHBy b2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKysJICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFn LCAkMSk9JyAke3dsfS1iZXJub3RvaycKKysJICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9m bGFnLCAkMSk9JyAke3dsfS1iZXJvaycKKysJICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVz OyB0aGVuCisrCSAgICAjIFdlIG9ubHkgdXNlIHRoaXMgY29kZSBmb3IgR05VIGxkcyB0aGF0IHN1 cHBvcnQgLS13aG9sZS1hcmNoaXZlLgorKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAke3dsfS0tbm8t d2hvbGUtYXJjaGl2ZScKKysJICBlbHNlCisrCSAgICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJl IHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKKysJICAgIF9MVF9UQUdW QVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJGNvbnZlbmllbmNlJworKwkgIGZpCisr CSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworKwkgICMgVGhpcyBp cyBzaW1pbGFyIHRvIGhvdyBBSVggdHJhZGl0aW9uYWxseSBidWlsZHMgaXRzIHNoYXJlZCBsaWJy YXJpZXMuCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNo YXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAk e3dsfS1ibm9lbnRyeSAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHth bGxvd191bmRlZmluZWRfZmxhZ31+JEFSICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFt ZSRyZWxlYXNlLmEgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScKKysJZmkKKysgICAgICBmaQorKyAg ICAgIDs7CisrCisrICAgIGFtaWdhb3MqKQorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAg ICAgcG93ZXJwYykKKysgICAgICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5z byBzdXBwb3J0CisrICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEND IC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk d2wkc29uYW1lIC1vICRsaWInCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9JycKKysgICAgICAgIDs7CisrICAgICAgbTY4aykKKysgICAgICAgICAgICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJh cnkuZGF0YX4kRUNITyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2Ey aXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29i amRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAk b3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFJFVklTSU9OICRy ZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdT ICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGli cmFyeSAtMzIpJworKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPSctTCRsaWJkaXInCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9t aW51c19MLCAkMSk9eWVzCisrICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKwor KyAgICBic2RpW1s0NV1dKikKKysgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlYywgJDEpPS1yZHluYW1pYworKyAgICAgIDs7CisrCisrICAgIGN5Z3dpbiogfCBtaW5ndyog fCBwdzMyKiB8IGNlZ2NjKikKKysgICAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVu dGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZworKyAgICAgICMgTWljcm9zb2Z0IFZpc3VhbCBD KysuCisrICAgICAgIyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5p bmdsZXNzLCBhcyB0aGVyZSBpcworKyAgICAgICMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCisr ICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyAnCisrICAg ICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrICAg ICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4KKysgICAg ICBsaWJleHQ9bGliCisrICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMsIG5v dCAuc28gZmlsZXMuCisrICAgICAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICAgICAgIyBGSVhNRTog U2V0dGluZyBsaW5rbmFtZXMgaGVyZSBpcyBhIGJhZCBoYWNrLgorKyAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtbyAkbGliICRsaWJvYmpzICRjb21waWxlcl9mbGFncyBg ZnVuY19lY2hvX2FsbCAiJGRlcGxpYnMiIHwgJFNFRCAnXCcncy8gLWxjJC8vJ1wnJ2AgLWxpbmsg LWRsbH5saW5rbmFtZXM9JworKyAgICAgICMgVGhlIGxpbmtlciB3aWxsIGF1dG9tYXRpY2FsbHkg YnVpbGQgYSAubGliIGZpbGUgaWYgd2UgYnVpbGQgYSBETEwuCisrICAgICAgX0xUX1RBR1ZBUihv bGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzLCAkMSk9J3RydWUnCisrICAgICAgIyBGSVhNRTogU2hv dWxkIGxldCB0aGUgdXNlciBzcGVjaWZ5IHRoZSBsaWIgcHJvZ3JhbS4KKysgICAgICBfTFRfVEFH VkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nbGliIC1PVVQ6JG9sZGxpYiRvbGRvYmpzJG9sZF9k ZXBsaWJzJworKyAgICAgIF9MVF9UQUdWQVIoZml4X3NyY2ZpbGVfcGF0aCwgJDEpPSdgY3lncGF0 aCAtdyAiJHNyY2ZpbGUiYCcKKysgICAgICBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9z dGF0aWNfcnVudGltZXMsICQxKT15ZXMKKysgICAgICA7OworKworKyAgICBkYXJ3aW4qIHwgcmhh cHNvZHkqKQorKyAgICAgIF9MVF9EQVJXSU5fTElOS0VSX0ZFQVRVUkVTKCQxKQorKyAgICAgIDs7 CisrCisrICAgIGRndXgqKQorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRM RCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycK KysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGli ZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisr ICAgICAgOzsKKysKKysgICAgZnJlZWJzZDEqKQorKyAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJz LCAkMSk9bm8KKysgICAgICA7OworKworKyAgICAjIEZyZWVCU0QgMi4yLlswMTJdIGFsbG93cyB1 cyB0byBpbmNsdWRlIGMrK3J0MC5vIHRvIGdldCBDKysgY29uc3RydWN0b3IKKysgICAgIyBzdXBw b3J0LiAgRnV0dXJlIHZlcnNpb25zIGRvIHRoaXMgYXV0b21hdGljYWxseSwgYnV0IGFuIGV4cGxp Y2l0IGMrK3J0MC5vCisrICAgICMgZG9lcyBub3QgYnJlYWsgYW55dGhpbmcsIGFuZCBoZWxwcyBz aWduaWZpY2FudGx5IChhdCB0aGUgY29zdCBvZiBhIGxpdHRsZQorKyAgICAjIGV4dHJhIHNwYWNl KS4KKysgICAgZnJlZWJzZDIuMiopCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFn cyAvdXNyL2xpYi9jKytydDAubycKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSk9bm8KKysgICAgICA7OworKworKyAgICAjIFVuZm9ydHVuYXRlbHksIG9sZGVyIHZlcnNpb25z IG9mIEZyZWVCU0QgMiBkbyBub3QgaGF2ZSB0aGlzIGZlYXR1cmUuCisrICAgIGZyZWVic2QyKikK KysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51 c19MLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSk9bm8KKysgICAgICA7OworKworKyAgICAjIEZyZWVCU0QgMyBhbmQgZ3JlYXRlciB1c2VzIGdj YyAtc2hhcmVkIHRvIGRvIHNoYXJlZCBsaWJyYXJpZXMuCisrICAgIGZyZWVic2QqIHwgZHJhZ29u Zmx5KikKKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworKyAgICAgIF9M VF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKworKyAgICBocHV4OSopCisr ICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1zaGFyZWQgLWZQSUMgJHt3 bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUg PSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAgICBlbHNlCisr CV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1l fiRMRCAtYiArYiAkaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9 ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAgIGZpCisrICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3 bH0kbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwg JDEpPToKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKworKyAg ICAgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCisr ICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisrICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZB UihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKysgICAgICA7OworKwor KyAgICBocHV4MTAqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzICYmIHRlc3QgIiR3aXRo X2dudV9sZCIgPSBubzsgdGhlbgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxf bGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAg IGVsc2UKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1iICtoICRzb25hbWUg K2IgJGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFn cycKKysgICAgICBmaQorKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgor KwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3ds fSRsaWJkaXInCisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEp PScrYiAkbGliZGlyJworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQx KT06CisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrCV9MVF9UQUdWQVIo aGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCisrCV9MVF9UQUdWQVIoZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisrCSMgaGFyZGNvZGVfbWludXNfTDogTm90 IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCisrCSMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0 aW9uIG9mIHRoZSBsaWJyYXJ5LgorKwlfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15 ZXMKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGhwdXgxMSopCisrICAgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCWNhc2Ug JGhvc3RfY3B1IGluCisrCWhwcGEqNjQqKQorKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCWlhNjQqKQorKwkgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1l ICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJworKwkgIDs7CisrCSopCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0 YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJ ICA7OworKwllc2FjCisrICAgICAgZWxzZQorKwljYXNlICRob3N0X2NwdSBpbgorKwlocHBhKjY0 KikKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3ds fSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAg OzsKKysJaWE2NCopCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7 d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSopCisrCW00X2lmKCQxLCBbXSwg WworKwkgICMgT2xkZXIgdmVyc2lvbnMgb2YgdGhlIDExLjAwIGNvbXBpbGVyIGRvIG5vdCB1bmRl cnN0YW5kIC1iIHlldAorKwkgICMgKEhQOTI0NTMtMDEgQS4xMS4wMS4yMCBkb2Vzbid0LCBIUDky NDUzLTAxIEIuMTEuWC4zNTE3NS0zNTE3Ni5HUCBkb2VzKQorKwkgIF9MVF9MSU5LRVJfT1BUSU9O KFtpZiAkQ0MgdW5kZXJzdGFuZHMgLWJdLAorKwkgICAgX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2Nv bXBpbGVyX19iLCAkMSksIFstYl0sCisrCSAgICBbX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJk aXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnXSwKKysJICAgIFtf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWIgK2ggJHNvbmFtZSArYiAkaW5zdGFs bF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJ10pXSwKKysJ ICBbX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29u YW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnXSkKKysJICA7OworKwllc2FjCisrICAgICAgZmkKKysgICAgICBp ZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJX0xUX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKwlfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrCisrCWNhc2UgJGhvc3RfY3B1IGlu CisrCWhwcGEqNjQqfGlhNjQqKQorKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9 bm8KKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKwkgIDs7 CisrCSopCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysJICBfTFRf VEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcworKwkgIF9MVF9UQUdWQVIo ZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisrCisrCSAgIyBoYXJkY29k ZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJICAjIGJ1dCBhcyB0 aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysJICBfTFRfVEFHVkFSKGhhcmRj b2RlX21pbnVzX0wsICQxKT15ZXMKKysJICA7OworKwllc2FjCisrICAgICAgZmkKKysgICAgICA7 OworKworKyAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorKyAgICAgIGlmIHRlc3Qg IiRHQ0MiID0geWVzOyB0aGVuCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3 bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1z ZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0k e291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkjIFRyeSB0byB1c2UgdGhl IC1leHBvcnRlZF9zeW1ib2wgbGQgb3B0aW9uLCBpZiBpdCBkb2VzIG5vdAorKwkjIHdvcmssIGFz c3VtZSB0aGF0IC1leHBvcnRzX2ZpbGUgZG9lcyBub3Qgd29yayBlaXRoZXIgYW5kCisrCSMgaW1w bGljaXRseSBleHBvcnQgYWxsIHN5bWJvbHMuCisrICAgICAgICBzYXZlX0xERkxBR1M9IiRMREZM QUdTIgorKyAgICAgICAgTERGTEFHUz0iJExERkxBR1MgLXNoYXJlZCAke3dsfS1leHBvcnRlZF9z eW1ib2wgJHt3bH1mb28gJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9L2Rldi9udWxsIgorKyAg ICAgICAgQUNfTElOS19JRkVMU0UoaW50IGZvbyh2b2lkKSB7fSwKKysgICAgICAgICAgX0xUX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIk dmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJz dHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xv Y2F0aW9ucyAke3dsfS1leHBvcnRzX2ZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicK KysgICAgICAgICkKKysgICAgICAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisrICAgICAgZWxz ZQorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3Ry aW5nIiAmJiBmdW5jX2VjaG9fYWxsICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVf cmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJX0xUX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmci ICYmIGZ1bmNfZWNob19hbGwgIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdp c3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtZXhwb3J0c19maWxlICRleHBvcnRf c3ltYm9scyAtbyAkbGliJworKyAgICAgIGZpCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHNfbmVlZF9sYywgJDEpPSdubycKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysgICAgICBfTFRfVEFHVkFSKGlu aGVyaXRfcnBhdGgsICQxKT15ZXMKKysgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMs ICQxKT15ZXMKKysgICAgICA7OworKworKyAgICBuZXRic2QqKQorKyAgICAgIGlmIGVjaG8gX19F TEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrCV9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAjIGEub3V0CisrICAgICAgZWxzZQorKwlfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MnICAgICAgIyBFTEYKKysgICAgICBmaQorKyAgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCisrICAgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAgICAgIDs7CisrCisrICAgIG5ld3NvczYpCisr ICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrICAgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKworKyAgICAqbnRv KiB8ICpxbngqKQorKyAgICAgIDs7CisrCisrICAgIG9wZW5ic2QqKQorKyAgICAgIGlmIHRlc3Qg LWYgL3Vzci9saWJleGVjL2xkLnNvOyB0aGVuCisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0 LCAkMSk9eWVzCisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisr CV9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCisrCWlmIHRlc3Qg LXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIk aG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysJICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZl X2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBv cnRfc3ltYm9scycKKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlYywgJDEpPScke3dsfS1FJworKwllbHNlCisrCSAgY2FzZSAkaG9zdF9vcyBpbgorKwkg ICBvcGVuYnNkW1swMV1dLiogfCBvcGVuYnNkMi5bWzAtN11dIHwgb3BlbmJzZDIuW1swLTddXS4q KQorKwkgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCSAgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKKysJICAgICA7Owor KwkgICAqKQorKwkgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk ICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJ ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBh dGgsJGxpYmRpcicKKysJICAgICA7OworKwkgIGVzYWMKKysJZmkKKysgICAgICBlbHNlCisrCV9M VF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAg IG9zMiopCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9 Jy1MJGxpYmRpcicKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMK KysgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQK KysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckRUNITyAiTElCUkFSWSAkbGli bmFtZSBJTklUSU5TVEFOQ0UiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPICJE RVNDUklQVElPTiBcIiRsaWJuYW1lXCIiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn5l Y2hvIERBVEEgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVjaG8gIiBTSU5HTEUgTk9O U0hBUkVEIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZWNobyBFWFBPUlRTID4+ICRv dXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn5lbXhleHAgJGxpYm9ianMgPj4gJG91dHB1dF9vYmpk aXIvJGxpYm5hbWUuZGVmfiRDQyAtWmRsbCAtWmNydGRsbCAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCisrICAgICAg X0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzLCAkMSk9J2VteGltcCAtbyAkb3V0 cHV0X29iamRpci8kbGlibmFtZS5hICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKKysgICAg ICA7OworKworKyAgICBvc2YzKikKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgor KwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1leHBlY3RfdW5y ZXNvbHZlZCAke3dsfVwqJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNo YXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBm dW5jX2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciYCAke3dsfS11 cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGli JworKyAgICAgIGVsc2UKKysJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScg LWV4cGVjdF91bnJlc29sdmVkIFwqJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck Q0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNf ZWNob19hbGwgIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291 dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKyAgICAgIGZpCisrICAgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPSdubycKKysgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGly JworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysg ICAgICA7OworKworKyAgICBvc2Y0KiB8IG9zZjUqKQkjIGFzIG9zZjMqIHdpdGggdGhlIGFkZGl0 aW9uIG9mIC1tc3ltIGZsYWcKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlf TFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1leHBlY3RfdW5yZXNv bHZlZCAke3dsfVwqJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJl ZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJp bmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyJg ICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25z IC1vICRsaWInCisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSck e3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGFsbG93 X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCisrCV9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30g JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBg dGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNldF92ZXJzaW9uICR2ZXJz dHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1v ICRsaWInCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdmb3IgaSBpbiBg Y2F0ICRleHBvcnRfc3ltYm9sc2A7IGRvIHByaW50ZiAiJXMgJXNcXG4iIC1leHBvcnRlZF9zeW1i b2wgIlwkaSIgPj4gJGxpYi5leHA7IGRvbmU7IHByaW50ZiAiJXNcXG4iICItaGlkZGVuIj4+ICRs aWIuZXhwfgorKwkkQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICR7d2x9LWlucHV0 ICR7d2x9JGxpYi5leHAgJGNvbXBpbGVyX2ZsYWdzICRsaWJvYmpzICRkZXBsaWJzIC1zb25hbWUg JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIi1zZXRfdmVyc2lvbiAkdmVy c3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAt byAkbGlifiRSTSAkbGliLmV4cCcKKysKKysJIyBCb3RoIGMgYW5kIGN4eCBjb21waWxlciBzdXBw b3J0IC1ycGF0aCBkaXJlY3RseQorKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nLXJwYXRoICRsaWJkaXInCisrICAgICAgZmkKKysgICAgICBfTFRfVEFHVkFSKGFy Y2hpdmVfY21kc19uZWVkX2xjLCAkMSk9J25vJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysgICAgICA7OworKworKyAgICBzb2xhcmlzKikKKysg ICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAteiBkZWZzJworKyAgICAg IGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCXdsYXJjPScke3dsfScKKysJX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0teiAke3dsfXRleHQgJHt3bH0t aCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn CisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoi ID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8i ID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCSAgJENDIC1z aGFyZWQgJHt3bH0teiAke3dsfXRleHQgJHt3bH0tTSAke3dsfSRsaWIuZXhwICR7d2x9LWggJHt3 bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAk bGliLmV4cCcKKysgICAgICBlbHNlCisrCWNhc2UgYCRDQyAtViAyPiYxYCBpbgorKwkqIkNvbXBp bGVycyA1LjAiKikKKysJICB3bGFyYz0nJworKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oICRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBz eW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3lt Ym9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAq OyB9OyIgPj4gJGxpYi5leHB+CisrCSAgJExEIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLU0g JGxpYi5leHAgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxh Z3N+JFJNICRsaWIuZXhwJworKwkgIDs7CisrCSopCisrCSAgd2xhcmM9JyR7d2x9JworKwkgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9 IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisr CSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIg PiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIg Pj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJICAkQ0MgLUck e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKKysJICA7OworKwll c2FjCisrICAgICAgZmkKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nLVIkbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRo X3ZhciwgJDEpPW5vCisrICAgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIHNvbGFyaXMyLltb MC01XV0gfCBzb2xhcmlzMi5bWzAtNV1dLiopIDs7CisrICAgICAgKikKKysJIyBUaGUgY29tcGls ZXIgZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKKysJIyBi dXQgdW5kZXJzdGFuZHMgYC16IGxpbmtlcl9mbGFnJy4gIEdDQyBkaXNjYXJkcyBpdCB3aXRob3V0 IGAkd2wnLAorKwkjIGJ1dCBpcyBjYXJlZnVsIGVub3VnaCBub3QgdG8gcmVvcmRlci4KKysJIyBT dXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKKysJaWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KKysJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAk MSk9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZh dWx0ZXh0cmFjdCcKKysJZWxzZQorKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWMsICQxKT0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKKysJ ZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJz LCAkMSk9eWVzCisrICAgICAgOzsKKysKKysgICAgc3Vub3M0KikKKysgICAgICBpZiB0ZXN0ICJ4 JGhvc3RfdmVuZG9yIiA9IHhzZXF1ZW50OyB0aGVuCisrCSMgVXNlICRDQyB0byBsaW5rIHVuZGVy IHNlcXVlbnQsIGJlY2F1c2UgaXQgdGhyb3dzIGluIHNvbWUgZXh0cmEgLm8KKysJIyBmaWxlcyB0 aGF0IG1ha2UgLmluaXQgYW5kIC5maW5pIHNlY3Rpb25zIHdvcmsuCisrCV9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzdGF0aWMgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGZpCisrICAgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKysgICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbWludXNfTCwgJDEpPXllcworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRo X3ZhciwgJDEpPW5vCisrICAgICAgOzsKKysKKysgICAgc3lzdjQpCisrICAgICAgY2FzZSAkaG9z dF92ZW5kb3IgaW4KKysJc25pKQorKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRM RCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycK KysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcyAjIGlzIHRoaXMgcmVhbGx5 IHRydWU/Pz8KKysJOzsKKysJc2llbWVucykKKysJICAjIyBMRCBpcyBsZCBpdCBtYWtlcyBhIFBM QU1MSUIKKysJICAjIyBDQyBqdXN0IG1ha2VzIGEgR3Jvc3NNb2R1bGUuCisrCSAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFncycKKysJICBfTFRfVEFHVkFSKHJlbG9hZF9jbWRzLCAkMSk9JyRDQyAtciAtbyAk b3V0cHV0JHJlbG9hZF9vYmpzJworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9 bm8KKysgICAgICAgIDs7CisrCW1vdG9yb2xhKQorKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl cl9mbGFncycKKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vICNNb3Rvcm9s YSBtYW51YWwgc2F5cyB5ZXMsIGJ1dCBteSB0ZXN0cyBzYXkgdGhleSBsaWUKKysJOzsKKysgICAg ICBlc2FjCisrICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJworKyAgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsKKysKKysgICAgc3lz djQuMyopCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIF9M VF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgX0xUX1RBR1ZB UihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nLUJleHBvcnQnCisrICAgICAgOzsKKysK KysgICAgc3lzdjQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKysJX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGli cGF0aF92YXIsICQxKT1ubworKwlydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorKwloYXJkY29kZV9y dW5wYXRoX3Zhcj15ZXMKKysJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKKysgICAgICBm aQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5c3Y1 VW5peFdhcmU3LltbMDFdXS5bWzEwXV0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAuW1swMjRd XSopCisrICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LHRl eHQnCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICBydW5w YXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRo ZW4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0taCwk c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlfTFRf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9y dDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAg ICA7OworKworKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqKQorKyAgICAgICMgTm90 ZTogV2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2Ug ZG8gbm90CisrICAgICAgIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkg c3ltYm9scyB1c2VkIGZyb20gbGliYyB0bworKyAgICAgICMgYWx3YXlzIGJlIHVucmVzb2x2ZWQs IHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGlicmFyeSB3b3VsZAorKyAgICAgICMgZXZlciBs aW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQK KysgICAgICAjIHRob3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBp c24ndCBhcyBoZWF2eS1oYW5kZWQKKysgICAgICAjIGFzIC16IGRlZnMuCisrICAgICAgX0xUX1RB R1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LHRleHQnCisrICAgICAgX0xUX1RB R1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LG5vZGVmcycKKysgICAgICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKysgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1SLCRsaWJkaXInCisrICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9JzonCisrICAgICAgX0xUX1RBR1ZB UihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHlu YW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tQmV4cG9ydCcKKysgICAgICBydW5wYXRoX3Zhcj0n TERfUlVOX1BBVEgnCisrCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlfTFRfVEFHVkFSKGFy Y2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0 X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAk e3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAgICA7OworKwor KyAgICB1dHM0KikKKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcg LWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicK KysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAgICAg IDs7CisrCisrICAgICopCisrICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAg ICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgaWYgdGVzdCB4JGhvc3RfdmVuZG9yID0geHNuaTsg dGhlbgorKyAgICAgIGNhc2UgJGhvc3QgaW4KKysgICAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwg c3lzdjQuMyogfCBzeXN2NSopCisrCV9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj LCAkMSk9JyR7d2x9LUJsYXJnZWR5bnN5bScKKysJOzsKKysgICAgICBlc2FjCisrICAgIGZpCisr ICBmaQorK10pCisrQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSldKQor K3Rlc3QgIiRfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpIiA9IG5vICYmIGNhbl9idWlsZF9zaGFy ZWQ9bm8KKysKKytfTFRfVEFHVkFSKHdpdGhfZ251X2xkLCAkMSk9JHdpdGhfZ251X2xkCisrCisr X0xUX0RFQ0woW10sIFtsaWJleHRdLCBbMF0sIFtPbGQgYXJjaGl2ZSBzdWZmaXggKG5vcm1hbGx5 ICJhIildKWRubAorK19MVF9ERUNMKFtdLCBbc2hyZXh0X2NtZHNdLCBbMV0sIFtTaGFyZWQgbGli cmFyeSBzdWZmaXggKG5vcm1hbGx5ICIuc28iKV0pZG5sCisrX0xUX0RFQ0woW10sIFtleHRyYWN0 X2V4cHN5bXNfY21kc10sIFsyXSwKKysgICAgW1RoZSBjb21tYW5kcyB0byBleHRyYWN0IHRoZSBl eHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9tIGEgc2hhcmVkIGFyY2hpdmVdKQorKworKyMKKysjIERv IHdlIG5lZWQgdG8gZXhwbGljaXRseSBsaW5rIGxpYmM/CisrIworK2Nhc2UgIngkX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpIiBpbgorK3h8eHllcykKKysgICMgQXNzdW1lIC1s YyBzaG91bGQgYmUgYWRkZWQKKysgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQx KT15ZXMKKysKKysgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0ICIkR0ND IiA9IHllczsgdGhlbgorKyAgICBjYXNlICRfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpIGlu CisrICAgIConficqKQorKyAgICAgICMgRklYTUU6IHdlIG1heSBoYXZlIHRvIGRlYWwgd2l0aCBt dWx0aS1jb21tYW5kIHNlcXVlbmNlcy4KKysgICAgICA7OworKyAgICAnJENDICcqKQorKyAgICAg ICMgVGVzdCB3aGV0aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5IGxpbmtzIHdpdGggLWxjIHNp bmNlIG9uIHNvbWUKKysgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBjb21lIGJlZm9yZSAt bGMuIElmIGdjYyBhbHJlYWR5IHBhc3NlcyAtbGMKKysgICAgICAjIHRvIGxkLCBkb24ndCBhZGQg LWxjIGJlZm9yZSAtbGdjYy4KKysgICAgICBBQ19DQUNIRV9DSEVDSyhbd2hldGhlciAtbGMgc2hv dWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluXSwKKysJW2x0X2N2X11fTFRfVEFHVkFSKGFyY2hp dmVfY21kc19uZWVkX2xjLCAkMSksCisrCVskUk0gY29uZnRlc3QqCisrCWVjaG8gIiRsdF9zaW1w bGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKworKwlpZiBBQ19UUllf RVZBTChhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgorKwkgIHNvbmFtZT1jb25mdGVz dAorKwkgIGxpYj1jb25mdGVzdAorKwkgIGxpYm9ianM9Y29uZnRlc3QuJGFjX29iamV4dAorKwkg IGRlcGxpYnM9CisrCSAgd2w9JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpCisr CSAgcGljX2ZsYWc9JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKQorKwkgIGNv bXBpbGVyX2ZsYWdzPS12CisrCSAgbGlua2VyX2ZsYWdzPS12CisrCSAgdmVyc3RyaW5nPQorKwkg IG91dHB1dF9vYmpkaXI9LgorKwkgIGxpYm5hbWU9Y29uZnRlc3QKKysJICBsdF9zYXZlX2FsbG93 X3VuZGVmaW5lZF9mbGFnPSRfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSkKKysJ ICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9CisrCSAgaWYgQUNfVFJZX0VW QUwoX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKSAyXD5cJjEgXHwgJEdSRVAgXCIgLWxjIFwi IFw+L2Rldi9udWxsIDJcPlwmMSkKKysJICB0aGVuCisrCSAgICBsdF9jdl9bXV9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworKwkgIGVsc2UKKysJICAgIGx0X2N2X1tdX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworKwkgIGZpCisrCSAgX0xUX1RB R1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSRsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9m bGFnCisrCWVsc2UKKysJICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKKysJZmkKKysJJFJNIGNvbmZ0 ZXN0KgorKwldKQorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT0k bHRfY3ZfW11fTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSkKKysgICAgICA7Owor KyAgICBlc2FjCisrICBmaQorKyAgOzsKKytlc2FjCisrCisrX0xUX1RBR0RFQ0woW2J1aWxkX2xp YnRvb2xfbmVlZF9sY10sIFthcmNoaXZlX2NtZHNfbmVlZF9sY10sIFswXSwKKysgICAgW1doZXRo ZXIgb3Igbm90IHRvIGFkZCAtbGMgZm9yIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXNdKQorK19M VF9UQUdERUNMKFthbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXNdLAorKyAg ICBbZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc10sIFswXSwKKysgICAgW1doZXRo ZXIgb3Igbm90IHRvIGRpc2FsbG93IHNoYXJlZCBsaWJzIHdoZW4gcnVudGltZSBsaWJzIGFyZSBz dGF0aWNdKQorK19MVF9UQUdERUNMKFtdLCBbZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjXSwgWzFd LAorKyAgICBbQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVuc10pCisrX0xU X1RBR0RFQ0woW10sIFt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY10sIFsxXSwKKysgICAgW0NvbXBp bGVyIGZsYWcgdG8gZ2VuZXJhdGUgc2hhcmVkIG9iamVjdHMgZGlyZWN0bHkgZnJvbSBhcmNoaXZl c10pCisrX0xUX1RBR0RFQ0woW10sIFtjb21waWxlcl9uZWVkc19vYmplY3RdLCBbMV0sCisrICAg IFtXaGV0aGVyIHRoZSBjb21waWxlciBjb3BlcyB3aXRoIHBhc3Npbmcgbm8gb2JqZWN0cyBkaXJl Y3RseV0pCisrX0xUX1RBR0RFQ0woW10sIFtvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzXSwgWzJd LAorKyAgICBbQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2 ZV0pCisrX0xUX1RBR0RFQ0woW10sIFtvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc10sIFsy XSwKKysgICAgW0NyZWF0ZSBhIHRlbXBvcmFyeSBvbGQtc3R5bGUgYXJjaGl2ZSB0byBsaW5rIGlu c3RlYWQgb2YgYSBzaGFyZWQgYXJjaGl2ZV0pCisrX0xUX1RBR0RFQ0woW10sIFthcmNoaXZlX2Nt ZHNdLCBbMl0sIFtDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgc2hhcmVkIGFyY2hpdmVdKQorK19M VF9UQUdERUNMKFtdLCBbYXJjaGl2ZV9leHBzeW1fY21kc10sIFsyXSkKKytfTFRfVEFHREVDTChb XSwgW21vZHVsZV9jbWRzXSwgWzJdLAorKyAgICBbQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxv YWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBidWlsZGluZworKyAgICBhIHNoYXJlZCBh cmNoaXZlLl0pCisrX0xUX1RBR0RFQ0woW10sIFttb2R1bGVfZXhwc3ltX2NtZHNdLCBbMl0pCisr X0xUX1RBR0RFQ0woW10sIFt3aXRoX2dudV9sZF0sIFsxXSwKKysgICAgW1doZXRoZXIgd2UgYXJl IGJ1aWxkaW5nIHdpdGggR05VIGxkIG9yIG5vdF0pCisrX0xUX1RBR0RFQ0woW10sIFthbGxvd191 bmRlZmluZWRfZmxhZ10sIFsxXSwKKysgICAgW0ZsYWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJh cmllcyB3aXRoIHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0XSkKKytfTFRfVEFHREVDTChb XSwgW25vX3VuZGVmaW5lZF9mbGFnXSwgWzFdLAorKyAgICBbRmxhZyB0aGF0IGVuZm9yY2VzIG5v IHVuZGVmaW5lZCBzeW1ib2xzXSkKKytfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNdLCBbMV0sCisrICAgIFtGbGFnIHRvIGhhcmRjb2RlICRsaWJkaXIgaW50byBhIGJp bmFyeSBkdXJpbmcgbGlua2luZy4KKysgICAgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiAkbGliZGly IGRvZXMgbm90IGV4aXN0XSkKKytfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfbGRdLCBbMV0sCisrICAgIFtbSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcg dG8gaGFyZGNvZGUgJGxpYmRpciBpbnRvIGEgYmluYXJ5CisrICAgIGR1cmluZyBsaW5raW5nLiAg VGhpcyBtdXN0IHdvcmsgZXZlbiBpZiAkbGliZGlyIGRvZXMgbm90IGV4aXN0XV0pCisrX0xUX1RB R0RFQ0woW10sIFtoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yXSwgWzFdLAorKyAgICBbV2hldGhl ciB3ZSBuZWVkIGEgc2luZ2xlICItcnBhdGgiIGZsYWcgd2l0aCBhIHNlcGFyYXRlZCBhcmd1bWVu dF0pCisrX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9kaXJlY3RdLCBbMF0sCisrICAgIFtTZXQg dG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5n IGhhcmRjb2RlcworKyAgICBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeV0pCisrX0xUX1RB R0RFQ0woW10sIFtoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVdLCBbMF0sCisrICAgIFtTZXQgdG8g InllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhh cmRjb2RlcworKyAgICBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeSBhbmQgdGhlIHJlc3Vs dGluZyBsaWJyYXJ5IGRlcGVuZGVuY3kgaXMKKysgICAgImFic29sdXRlIiwgaS5lIGltcG9zc2li bGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgJHtzaGxpYnBhdGhfdmFyfSBpZiB0aGUKKysgICAgbGli cmFyeSBpcyByZWxvY2F0ZWRdKQorK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfbWludXNfTF0s IFswXSwKKysgICAgW1NldCB0byAieWVzIiBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBkdXJpbmcg bGlua2luZyBoYXJkY29kZXMgRElSCisrICAgIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnldKQor K19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl0sIFswXSwKKysgICAgW1Nl dCB0byAieWVzIiBpZiB1c2luZyBTSExJQlBBVEhfVkFSPURJUiBkdXJpbmcgbGlua2luZyBoYXJk Y29kZXMgRElSCisrICAgIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnldKQorK19MVF9UQUdERUNM KFtdLCBbaGFyZGNvZGVfYXV0b21hdGljXSwgWzBdLAorKyAgICBbU2V0IHRvICJ5ZXMiIGlmIGJ1 aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElSCisrICAg IGludG8gdGhlIGxpYnJhcnkgYW5kIGFsbCBzdWJzZXF1ZW50IGxpYnJhcmllcyBhbmQgZXhlY3V0 YWJsZXMgbGlua2VkCisrICAgIGFnYWluc3QgaXRdKQorK19MVF9UQUdERUNMKFtdLCBbaW5oZXJp dF9ycGF0aF0sIFswXSwKKysgICAgW1NldCB0byB5ZXMgaWYgbGlua2VyIGFkZHMgcnVudGltZSBw YXRocyBvZiBkZXBlbmRlbnQgbGlicmFyaWVzCisrICAgIHRvIHJ1bnRpbWUgcGF0aCBsaXN0XSkK KytfTFRfVEFHREVDTChbXSwgW2xpbmtfYWxsX2RlcGxpYnNdLCBbMF0sCisrICAgIFtXaGV0aGVy IGxpYnRvb2wgbXVzdCBsaW5rIGEgcHJvZ3JhbSBhZ2FpbnN0IGFsbCBpdHMgZGVwZW5kZW5jeSBs aWJyYXJpZXNdKQorK19MVF9UQUdERUNMKFtdLCBbZml4X3NyY2ZpbGVfcGF0aF0sIFsxXSwKKysg ICAgW0ZpeCB0aGUgc2hlbGwgdmFyaWFibGUgJHNyY2ZpbGUgZm9yIHRoZSBjb21waWxlcl0pCisr X0xUX1RBR0RFQ0woW10sIFthbHdheXNfZXhwb3J0X3N5bWJvbHNdLCBbMF0sCisrICAgIFtTZXQg dG8gInllcyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWRdKQorK19MVF9UQUdERUNM KFtdLCBbZXhwb3J0X3N5bWJvbHNfY21kc10sIFsyXSwKKysgICAgW1RoZSBjb21tYW5kcyB0byBs aXN0IGV4cG9ydGVkIHN5bWJvbHNdKQorK19MVF9UQUdERUNMKFtdLCBbZXhjbHVkZV9leHBzeW1z XSwgWzFdLAorKyAgICBbU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBw cmVsb2FkZWQgc3ltYm9sc10pCisrX0xUX1RBR0RFQ0woW10sIFtpbmNsdWRlX2V4cHN5bXNdLCBb MV0sCisrICAgIFtTeW1ib2xzIHRoYXQgbXVzdCBhbHdheXMgYmUgZXhwb3J0ZWRdKQorK19MVF9U QUdERUNMKFtdLCBbcHJlbGlua19jbWRzXSwgWzJdLAorKyAgICBbQ29tbWFuZHMgbmVjZXNzYXJ5 IGZvciBsaW5raW5nIHByb2dyYW1zIChhZ2FpbnN0IGxpYnJhcmllcykgd2l0aCB0ZW1wbGF0ZXNd KQorK19MVF9UQUdERUNMKFtdLCBbZmlsZV9saXN0X3NwZWNdLCBbMV0sCisrICAgIFtTcGVjaWZ5 IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXNdKQorK2RubCBGSVhNRTogTm90IHlldCBp bXBsZW1lbnRlZAorK2RubCBfTFRfVEFHREVDTChbXSwgW3RocmVhZF9zYWZlX2ZsYWdfc3BlY10s IFsxXSwKKytkbmwgICAgW0NvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgdGhyZWFkIHNhZmUgb2Jq ZWN0c10pCisrXSkjIF9MVF9MSU5LRVJfU0hMSUJTCisrCisrCisrIyBfTFRfTEFOR19DX0NPTkZJ RyhbVEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRW5zdXJlIHRoYXQgdGhl IGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEMgY29tcGlsZXIgYXJlIHN1aXRhYmx5Cisr IyBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRf Q09ORklHIHRvIHdyaXRlCisrIyB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9v bCcuCisrbTRfZGVmdW4oW19MVF9MQU5HX0NfQ09ORklHXSwKKytbbTRfcmVxdWlyZShbX0xUX0RF Q0xfRUdSRVBdKWRubAorK2x0X3NhdmVfQ0M9IiRDQyIKKytBQ19MQU5HX1BVU0goQykKKysKKysj IFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgQyB0ZXN0IHNvdXJjZXMuCisrYWNfZXh0PWMKKysK KysjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgQyB0ZXN0IHNvdXJjZXMuCisr b2JqZXh0PW8KKytfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKKysKKysjIENvZGUgdG8g YmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworK2x0X3NpbXBsZV9jb21waWxlX3Rlc3Rf Y29kZT0iaW50IHNvbWVfdmFyaWFibGUgPSAwOyIKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBz aW1wbGUgbGluayB0ZXN0cworK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0naW50IG1haW4oKXty ZXR1cm4oMCk7fScKKysKKytfTFRfVEFHX0NPTVBJTEVSCisrIyBTYXZlIHRoZSBkZWZhdWx0IGNv bXBpbGVyLCBzaW5jZSBpdCBnZXRzIG92ZXJ3cml0dGVuIHdoZW4gdGhlIG90aGVyCisrIyB0YWdz IGFyZSBiZWluZyB0ZXN0ZWQsIGFuZCBfTFRfVEFHVkFSKGNvbXBpbGVyLCBbXSkgaXMgYSBOT1Au CisrY29tcGlsZXJfREVGQVVMVD0kQ0MKKysKKysjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUg b2Ygc2ltcGxlIHRlc3QgY29kZQorK19MVF9DT01QSUxFUl9CT0lMRVJQTEFURQorK19MVF9MSU5L RVJfQk9JTEVSUExBVEUKKysKKysjIyBDQVZFQVQgRU1QVE9SOgorKyMjIFRoZXJlIGlzIG5vIGVu Y2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCisr IyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNz IHlvdSBrbm93IGV4YWN0bHkKKysjIyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4KKytpZiB0ZXN0IC1u ICIkY29tcGlsZXIiOyB0aGVuCisrICBfTFRfQ09NUElMRVJfTk9fUlRUSSgkMSkKKysgIF9MVF9D T01QSUxFUl9QSUMoJDEpCisrICBfTFRfQ09NUElMRVJfQ19PKCQxKQorKyAgX0xUX0NPTVBJTEVS X0ZJTEVfTE9DS1MoJDEpCisrICBfTFRfTElOS0VSX1NITElCUygkMSkKKysgIF9MVF9TWVNfRFlO QU1JQ19MSU5LRVIoJDEpCisrICBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgoJDEpCisrICBM VF9TWVNfRExPUEVOX1NFTEYKKysgIF9MVF9DTURfU1RSSVBMSUIKKysKKysgICMgUmVwb3J0IHdo aWNoIGxpYnJhcnkgdHlwZXMgd2lsbCBhY3R1YWxseSBiZSBidWlsdAorKyAgQUNfTVNHX0NIRUNL SU5HKFtpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQorKyAgQUNfTVNHX1JF U1VMVChbJGNhbl9idWlsZF9zaGFyZWRdKQorKworKyAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVy IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQorKyAgdGVzdCAiJGNhbl9idWlsZF9zaGFyZWQi ID0gIm5vIiAmJiBlbmFibGVfc2hhcmVkPW5vCisrCisrICAjIE9uIEFJWCwgc2hhcmVkIGxpYnJh cmllcyBhbmQgc3RhdGljIGxpYnJhcmllcyB1c2UgdGhlIHNhbWUgbmFtZXNwYWNlLCBhbmQKKysg ICMgYXJlIGFsbCBidWlsdCBmcm9tIFBJQy4KKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGFpeDMq KQorKyAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwor KyAgICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgorKyAgICAgIGFyY2hpdmVfY21kcz0iJGFy Y2hpdmVfY21kc35cJFJBTkxJQiBcJGxpYiIKKysgICAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFO TElCICRsaWInCisrICAgIGZpCisrICAgIDs7CisrCisrICBhaXhbWzQtOV1dKikKKysgICAgaWYg dGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5n IiA9IG5vIDsgdGhlbgorKyAgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFi bGVfc3RhdGljPW5vCisrICAgIGZpCisrICAgIDs7CisrICBlc2FjCisrICBBQ19NU0dfUkVTVUxU KFskZW5hYmxlX3NoYXJlZF0pCisrCisrICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVp bGQgc3RhdGljIGxpYnJhcmllc10pCisrICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3NoYXJl ZCBvciBlbmFibGVfc3RhdGljIGlzIHllcy4KKysgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHll cyB8fCBlbmFibGVfc3RhdGljPXllcworKyAgQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zdGF0aWNd KQorKworKyAgX0xUX0NPTkZJRygkMSkKKytmaQorK0FDX0xBTkdfUE9QCisrQ0M9IiRsdF9zYXZl X0NDIgorK10pIyBfTFRfTEFOR19DX0NPTkZJRworKworKworKyMgX0xUX0xBTkdfQ1hYX0NPTkZJ RyhbVEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFbnN1cmUgdGhhdCB0 aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIGEgQysrIGNvbXBpbGVyIGFyZSBzdWl0YWJs eQorKyMgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQgYnkg X0xUX0NPTkZJRyB0byB3cml0ZQorKyMgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxp YnRvb2wnLgorK200X2RlZnVuKFtfTFRfTEFOR19DWFhfQ09ORklHXSwKKytbbTRfcmVxdWlyZShb X0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBd KWRubAorK2lmIHRlc3QgLW4gIiRDWFgiICYmICggdGVzdCAiWCRDWFgiICE9ICJYbm8iICYmCisr ICAgICggKHRlc3QgIlgkQ1hYIiA9ICJYZysrIiAmJiBgZysrIC12ID4vZGV2L251bGwgMj4mMWAg KSB8fAorKyAgICAodGVzdCAiWCRDWFgiICE9ICJYZysrIikpKSA7IHRoZW4KKysgIEFDX1BST0df Q1hYQ1BQCisrZWxzZQorKyAgX2x0X2NhdWdodF9DWFhfZXJyb3I9eWVzCisrZmkKKysKKytBQ19M QU5HX1BVU0goQysrKQorK19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwor K19MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KKytfTFRfVEFHVkFSKGFsd2F5 c19leHBvcnRfc3ltYm9scywgJDEpPW5vCisrX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRz LCAkMSk9CisrX0xUX1RBR1ZBUihjb21waWxlcl9uZWVkc19vYmplY3QsICQxKT1ubworK19MVF9U QUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29k ZV9kaXJlY3QsICQxKT1ubworK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAk MSk9bm8KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KKytfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0KKytfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KKytfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVz X0wsICQxKT1ubworK19MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPXVuc3Vw cG9ydGVkCisrX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT1ubworK19MVF9UQUdW QVIoaW5oZXJpdF9ycGF0aCwgJDEpPW5vCisrX0xUX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPQor K19MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9CisrX0xUX1RBR1ZBUihsaW5rX2Fs bF9kZXBsaWJzLCAkMSk9dW5rbm93bgorK19MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEp PSRvbGRfYXJjaGl2ZV9jbWRzCisrX0xUX1RBR1ZBUihyZWxvYWRfZmxhZywgJDEpPSRyZWxvYWRf ZmxhZworK19MVF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKT0kcmVsb2FkX2NtZHMKKytfTFRfVEFH VkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9CisrX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYywgJDEpPQorK19MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50 aW1lcywgJDEpPW5vCisrCisrIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEMrKyB0ZXN0IHNv dXJjZXMuCisrYWNfZXh0PWNwcAorKworKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21w aWxlZCBDKysgdGVzdCBzb3VyY2VzLgorK29iamV4dD1vCisrX0xUX1RBR1ZBUihvYmpleHQsICQx KT0kb2JqZXh0CisrCisrIyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0ZXN0cyBpZiB3 ZSBhbHJlYWR5IGRldGVybWluZWQgdGhhdAorKyMgdGhlIENYWCBjb21waWxlciBpc24ndCB3b3Jr aW5nLiAgU29tZSB2YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJlZCkKKysjIGFyZSBjdXJyZW50 bHkgYXNzdW1lZCB0byBhcHBseSB0byBhbGwgY29tcGlsZXJzIG9uIHRoaXMgcGxhdGZvcm0sCisr IyBhbmQgd2lsbCBiZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2VkIG9uIGEgbm9uLXdv cmtpbmcgY29tcGlsZXIuCisraWYgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAhPSB5ZXM7 IHRoZW4KKysgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCisrICBs dF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9ImludCBzb21lX3ZhcmlhYmxlID0gMDsiCisrCisr ICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworKyAgbHRfc2ltcGxlX2xp bmtfdGVzdF9jb2RlPSdpbnQgbWFpbihpbnQsIGNoYXIgKltbXV0pIHsgcmV0dXJuKDApOyB9Jwor KworKyAgIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNv IG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgorKyAgX0xUX1RBR19DT01QSUxFUgorKworKyAgIyBzYXZl IHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKKysgIF9MVF9DT01QSUxF Ul9CT0lMRVJQTEFURQorKyAgX0xUX0xJTktFUl9CT0lMRVJQTEFURQorKworKyAgIyBBbGxvdyBD QyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKysgIGx0X3NhdmVfQ0M9JEND CisrICBsdF9zYXZlX0xEPSRMRAorKyAgbHRfc2F2ZV9HQ0M9JEdDQworKyAgR0NDPSRHWFgKKysg IGx0X3NhdmVfd2l0aF9nbnVfbGQ9JHdpdGhfZ251X2xkCisrICBsdF9zYXZlX3BhdGhfTEQ9JGx0 X2N2X3BhdGhfTEQKKysgIGlmIHRlc3QgLW4gIiR7bHRfY3ZfcHJvZ19nbnVfbGRjeHgrc2V0fSI7 IHRoZW4KKysgICAgbHRfY3ZfcHJvZ19nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkY3h4CisrICBl bHNlCisrICAgICRhc191bnNldCBsdF9jdl9wcm9nX2dudV9sZAorKyAgZmkKKysgIGlmIHRlc3Qg LW4gIiR7bHRfY3ZfcGF0aF9MRENYWCtzZXR9IjsgdGhlbgorKyAgICBsdF9jdl9wYXRoX0xEPSRs dF9jdl9wYXRoX0xEQ1hYCisrICBlbHNlCisrICAgICRhc191bnNldCBsdF9jdl9wYXRoX0xECisr ICBmaQorKyAgdGVzdCAteiAiJHtMRENYWCtzZXR9IiB8fCBMRD0kTERDWFgKKysgIENDPSR7Q1hY LSJjKysifQorKyAgY29tcGlsZXI9JENDCisrICBfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JEND CisrICBfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCisrCisrICBpZiB0ZXN0IC1uICIkY29t cGlsZXIiOyB0aGVuCisrICAgICMgV2UgZG9uJ3Qgd2FudCAtZm5vLWV4Y2VwdGlvbiB3aGVuIGNv bXBpbGluZyBDKysgY29kZSwgc28gc2V0IHRoZQorKyAgICAjIG5vX2J1aWx0aW5fZmxhZyBzZXBh cmF0ZWx5CisrICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgICAgX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPScgLWZuby1idWlsdGluJwor KyAgICBlbHNlCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5f ZmxhZywgJDEpPQorKyAgICBmaQorKworKyAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgor KyAgICAgICMgU2V0IHVwIGRlZmF1bHQgR05VIEMrKyBjb25maWd1cmF0aW9uCisrCisrICAgICAg TFRfUEFUSF9MRAorKworKyAgICAgICMgQ2hlY2sgaWYgR05VIEMrKyB1c2VzIEdOVSBsZCBhcyB0 aGUgdW5kZXJseWluZyBsaW5rZXIsIHNpbmNlIHRoZQorKyAgICAgICMgYXJjaGl2aW5nIGNvbW1h bmRzIGJlbG93IGFzc3VtZSB0aGF0IEdOVSBsZCBpcyBiZWluZyB1c2VkLgorKyAgICAgIGlmIHRl c3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR3bCRzb25hbWUgLW8gJGxpYicKKysgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk d2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1v ICRsaWInCisrCisrICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgICAgX0xUX1RBR1ZBUihleHBv cnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKworKyAg ICAgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUg ZW1wdHkKKysgICAgICAgICMgWFhYIEkgdGhpbmsgd2xhcmMgY2FuIGJlIGVsaW1pbmF0ZWQgaW4g bHRjZi1jeHgsIGJ1dCBJIG5lZWQgdG8KKysgICAgICAgICMgICAgIGludmVzdGlnYXRlIGl0IGEg bGl0dGxlIGJpdCBtb3JlLiAoTU0pCisrICAgICAgICB3bGFyYz0nJHt3bH0nCisrCisrICAgICAg ICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwu CisrICAgICAgICBpZiBldmFsICJgJENDIC1wcmludC1wcm9nLW5hbWU9bGRgIC0taGVscCAyPiYx IiB8CisrCSAgJEdSRVAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0aGVuCisrICAg ICAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0iJHdsYXJjIict LXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScK KysgICAgICAgIGVsc2UKKysgICAgICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYywgJDEpPQorKyAgICAgICAgZmkKKysgICAgICBlbHNlCisrICAgICAgICB3aXRoX2dudV9s ZD1ubworKyAgICAgICAgd2xhcmM9CisrCisrICAgICAgICAjIEEgZ2VuZXJpYyBhbmQgdmVyeSBz aW1wbGUgZGVmYXVsdCBzaGFyZWQgbGlicmFyeSBjcmVhdGlvbgorKyAgICAgICAgIyBjb21tYW5k IGZvciBHTlUgQysrIGZvciB0aGUgY2FzZSB3aGVyZSBpdCB1c2VzIHRoZSBuYXRpdmUKKysgICAg ICAgICMgbGlua2VyLCBpbnN0ZWFkIG9mIEdOVSBsZC4gIElmIHBvc3NpYmxlLCB0aGlzIHNldHRp bmcgc2hvdWxkCisrICAgICAgICAjIG92ZXJyaWRkZW4gdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhl IG5hdGl2ZSBsaW5rZXIgZmVhdHVyZXMgb24KKysgICAgICAgICMgdGhlIHBsYXRmb3JtIGl0IGlz IGJlaW5nIHVzZWQgb24uCisrICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck Q0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRsaWInCisrICAgICAgZmkKKysKKysg ICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0 aGF0IGxpc3RzCisrICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVz IGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJh cnkuCisrICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1Mg LXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgLXYgIl5Db25maWd1cmVkIHdpdGg6IiB8 ICRHUkVQICJcLUwiJworKworKyAgICBlbHNlCisrICAgICAgR1hYPW5vCisrICAgICAgd2l0aF9n bnVfbGQ9bm8KKysgICAgICB3bGFyYz0KKysgICAgZmkKKysKKysgICAgIyBQT1JUTUU6IGZpbGwg aW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3RlbSdzIEMrKyBsaW5rIGNoYXJhY3RlcmlzdGlj cworKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRM RCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10pCisrICAgIF9MVF9UQUdWQVIobGRfc2hsaWJz LCAkMSk9eWVzCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXgzKikKKysgICAgICAg ICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgX0xU X1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgICAgOzsKKysgICAgICBhaXhbWzQtOV1d KikKKysgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAgICAgICAg ICMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwg c28gd2UgZG9uJ3QKKysgICAgICAgICAgIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCisr ICAgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysgICAgICAgICAgZXhwX3N5bV9m bGFnPSctQmV4cG9ydCcKKysgICAgICAgICAgbm9fZW50cnlfZmxhZz0iIgorKyAgICAgICAgZWxz ZQorKyAgICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCisrCisrICAgICAgICAgICMg VGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1hbAor KyAgICAgICAgICAjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBpcyBzb21ld2hlcmUgaW4g TERGTEFHUywgd2UKKysgICAgICAgICAgIyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2luZy4KKysg ICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMjNdXXxhaXg0LltbMjNdXS4qfGFpeFtb NS05XV0qKQorKwkgICAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCisrCSAgICAgIGNhc2Ug JGxkX2ZsYWcgaW4KKysJICAgICAgKi1icnRsKikKKysJICAgICAgICBhaXhfdXNlX3J1bnRpbWVs aW5raW5nPXllcworKwkgICAgICAgIGJyZWFrCisrCSAgICAgICAgOzsKKysJICAgICAgZXNhYwor KwkgICAgZG9uZQorKwkgICAgOzsKKysgICAgICAgICAgZXNhYworKworKyAgICAgICAgICBleHBf c3ltX2ZsYWc9Jy1iZXhwb3J0JworKyAgICAgICAgICBub19lbnRyeV9mbGFnPSctYm5vZW50cnkn CisrICAgICAgICBmaQorKworKyAgICAgICAgIyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNo YXJlZCBvYmplY3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgorKyAgICAgICAgIyBoYXZlIHByb2Js ZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElmIGxpbmtpbmcgYSBsaWJyYXJ5 CisrICAgICAgICAjIG9yIHByb2dyYW0gcmVzdWx0cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBh ZGQgLW1taW5pbWFsLXRvYyB0bworKyAgICAgICAgIyBDWFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9n Y2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBub3QKKysgICAgICAgICMgZW5vdWdoIHRv IGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgorKworKyAgICAg ICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJworKyAgICAgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGly ZWN0X2Fic29sdXRlLCAkMSk9eWVzCisrICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IsICQxKT0nOicKKysgICAgICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGli cywgJDEpPXllcworKyAgICAgICAgX0xUX1RBR1ZBUihmaWxlX2xpc3Rfc3BlYywgJDEpPScke3ds fS1mLCcKKysKKysgICAgICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgICAgICAg IGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bWzAxMl1dfGFpeDQuW1swMTJdXS4qKQorKyAgICAgICAg ICAjIFdlIG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0LjIgYW5kIGxvd2VyLCB0aGUgY2hl Y2sKKysgICAgICAgICAgIyBiZWxvdyBmb3IgYnJva2VuIGNvbGxlY3QyIGRvZXNuJ3Qgd29yayB1 bmRlciA0LjMrCisrCSAgY29sbGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxl Y3QyYAorKwkgIGlmIHRlc3QgLWYgIiRjb2xsZWN0Mm5hbWUiICYmCisrCSAgICAgc3RyaW5ncyAi JGNvbGxlY3QybmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJICB0 aGVuCisrCSAgICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIKKysJICAgIDoKKysJICBlbHNl CisrCSAgICAjIFdlIGhhdmUgb2xkIGNvbGxlY3QyCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVkCisrCSAgICAjIEl0IGZhaWxzIHRvIGZpbmQgdW5pbnN0 YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVuaW5zdGFsbGVkCisrCSAgICAjIHBhdGggaXMgbm90 IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRpbmcgaGFyZGNvZGVfbWludXNfTAorKwkgICAg IyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCisrCSAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX21pbnVzX0wsICQxKT15ZXMKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IsICQxKT0KKysJICBmaQorKyAgICAgICAgICBlc2FjCisrICAgICAgICAgIHNo YXJlZF9mbGFnPSctc2hhcmVkJworKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5n IiA9IHllczsgdGhlbgorKwkgICAgc2hhcmVkX2ZsYWc9IiRzaGFyZWRfZmxhZyAiJyR7d2x9LUcn CisrCSAgZmkKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgIyBub3QgdXNpbmcgZ2NjCisrICAg ICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgIyBWaXN1YWxBZ2Ug QysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVhc2UKKysJ ICAjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgorKwkg IHNoYXJlZF9mbGFnPSctRycKKysgICAgICAgICAgZWxzZQorKwkgICAgaWYgdGVzdCAiJGFpeF91 c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSAgICAgIHNoYXJlZF9mbGFnPScke3ds fS1HJworKwkgICAgZWxzZQorKwkgICAgICBzaGFyZWRfZmxhZz0nJHt3bH0tYk06U1JFJworKwkg ICAgZmkKKysgICAgICAgICAgZmkKKysgICAgICAgIGZpCisrCisrICAgICAgICBfTFRfVEFHVkFS KGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1iZXhwYWxsJworKyAgICAgICAg IyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmlu ZyB3aXRoCisrICAgICAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2Vu ZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8KKysJIyBleHBvcnQuCisrICAgICAgICBfTFRfVEFH VkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPXllcworKyAgICAgICAgaWYgdGVzdCAiJGFp eF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrICAgICAgICAgICMgV2FybmluZyAt IHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJydGwpLAor KyAgICAgICAgICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9k dWNlIGEgYnJva2VuIGxpYnJhcnkuCisrICAgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZp bmVkX2ZsYWcsICQxKT0nLWJlcm9rJworKyAgICAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVs dCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkKKysgICAgICAgICAg IyBleGVjdXRhYmxlLgorKyAgICAgICAgICBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKyAgICAg ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxp YnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKKysKKysgICAgICAgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRs aWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3Mg YGlmIHRlc3QgIngke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuIGZ1bmNfZWNo b19hbGwgIiR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30iOyBlbHNlIDo7IGZpYCAnIlwke3ds fSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCisrICAgICAgICBl bHNlCisrICAgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tUiAkbGliZGly Oi91c3IvbGliOi9saWInCisrCSAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAk MSk9Ii16IG5vZGVmcyIKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp PSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMg JGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyAke3dsfSR7 YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1i b2xzIgorKyAgICAgICAgICBlbHNlCisrCSAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJw YXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KKysJICAgICMgZW1wdHkgZXhlY3V0YWJs ZS4KKysJICAgIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCisrCSAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhf bGlicGF0aCIKKysJICAgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0 aW1lIGxvYWRpbmcgZmxhZ3MsCisrCSAgICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJv ciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrCSAgICBfTFRfVEFHVkFSKG5v X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJub3RvaycKKysJICAgIF9MVF9UQUdWQVIo YWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm9rJworKwkgICAgaWYgdGVzdCAi JHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKwkgICAgICAjIFdlIG9ubHkgdXNlIHRoaXMgY29k ZSBmb3IgR05VIGxkcyB0aGF0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlLgorKwkgICAgICBfTFRf VEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZl JGNvbnZlbmllbmNlICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworKwkgICAgZWxzZQorKwkgICAg ICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZy b20gYXJjaGl2ZXMKKysJICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywg JDEpPSckY29udmVuaWVuY2UnCisrCSAgICBmaQorKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHNfbmVlZF9sYywgJDEpPXllcworKwkgICAgIyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0 cmFkaXRpb25hbGx5IGJ1aWxkcyBpdHMgc2hhcmVkCisrCSAgICAjIGxpYnJhcmllcy4KKysJICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyIn IC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50 cnkgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZp bmVkX2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5h ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCisrICAgICAgICAgIGZpCisrICAgICAgICBmaQorKyAg ICAgICAgOzsKKysKKysgICAgICBiZW9zKikKKysJaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAg Jzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorKwkgIF9MVF9U QUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAorKwkgICMgSm9zZXBo IEJlY2tlbmJhY2ggPGpyYjNAYmVzdC5jb20+IHNheXMgc29tZSByZWxlYXNlcyBvZiBnY2MKKysJ ICAjIHN1cHBvcnQgLS11bmRlZmluZWQuICBUaGlzIGRlc2VydmVzIHNvbWUgaW52ZXN0aWdhdGlv bi4gIEZJWE1FCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1ub3N0YXJ0 ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFt ZSAtbyAkbGliJworKwllbHNlCisrCSAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwlm aQorKwk7OworKworKyAgICAgIGNob3J1cyopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBp bgorKyAgICAgICAgICAqKQorKwkgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkg c3VwcG9ydAorKwkgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICA7OworKyAgICAg ICAgZXNhYworKyAgICAgICAgOzsKKysKKysgICAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiog fCBjZWdjYyopCisrICAgICAgICAjIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl YywgJDEpIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLAorKyAgICAgICAgIyBhcyB0aGVyZSBpcyBu byBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKysgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrICAgICAgICBfTFRfVEFHVkFSKGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWFsbC1zeW1ib2xzJworKyAg ICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisr ICAgICAgICBfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCisrICAgICAg ICBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMK KysKKysgICAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAv ZGV2L251bGw7IHRoZW4KKysgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1l ICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxp bmtlciAkbGliJworKyAgICAgICAgICAjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVh ZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCisrICAgICAgICAgICMgaXMgRVhQT1JUUyksIHVz ZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCisrICAgICAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1i b2xzYCIgPSB4RVhQT1JUUzsgdGhlbgorKwkgICAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRf b2JqZGlyLyRzb25hbWUuZGVmOworKyAgICAgICAgICBlbHNlCisrCSAgICBlY2hvIEVYUE9SVFMg PiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysJICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMg Pj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrICAgICAgICAgIGZpfgorKyAgICAgICAg ICAkQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWYgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJh c2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCisrICAgICAgICBlbHNlCisr ICAgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICAgIGZpCisrICAg ICAgICA7OworKyAgICAgIGRhcndpbiogfCByaGFwc29keSopCisrICAgICAgICBfTFRfREFSV0lO X0xJTktFUl9GRUFUVVJFUygkMSkKKysJOzsKKysKKysgICAgICBkZ3V4KikKKysgICAgICAgIGNh c2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIGVjKysqKQorKwkgICAgIyBGSVhNRTogaW5z ZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxkX3NobGli cywgJDEpPW5vCisrCSAgICA7OworKyAgICAgICAgICBnaGN4KikKKysJICAgICMgR3JlZW4gSGls bHMgQysrIENvbXBpbGVyCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5 IHN1cHBvcnQKKysJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7Cisr ICAgICAgICAgICopCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1 cHBvcnQKKysJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAg ICAgICBlc2FjCisrICAgICAgICA7OworKworKyAgICAgIGZyZWVic2RbWzEyXV0qKQorKyAgICAg ICAgIyBDKysgc2hhcmVkIGxpYnJhcmllcyByZXBvcnRlZCB0byBiZSBmYWlybHkgYnJva2VuIGJl Zm9yZQorKwkjIHN3aXRjaCB0byBFTEYKKysgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAk MSk9bm8KKysgICAgICAgIDs7CisrCisrICAgICAgZnJlZWJzZC1lbGYqKQorKyAgICAgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrICAgICAgICA7OworKworKyAg ICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICAgICAgICMgRnJlZUJTRCAzIGFuZCBsYXRl ciB1c2UgR05VIEMrKyBhbmQgR05VIGxkIHdpdGggc3RhbmRhcmQgRUxGCisrICAgICAgICAjIGNv bnZlbnRpb25zCisrICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPXllcworKyAgICAg ICAgOzsKKysKKysgICAgICBnbnUqKQorKyAgICAgICAgOzsKKysKKysgICAgICBoYWlrdSopCisr ICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxp YicKKysgICAgICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworKyAgICAg ICAgOzsKKysKKysgICAgICBocHV4OSopCisrICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisrICAgICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrICAgICAgICBfTFRfVEFH VkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJworKyAgICAgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbWludXNfTCwgJDEpPXllcyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCisrCQkJCSAg ICAgICAgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdAorKwkJCQkgICAgICAgICAgICAgIyBsb2Nh dGlvbiBvZiB0aGUgbGlicmFyeS4KKysKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisr ICAgICAgICAgIENDKikKKysgICAgICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBs aWJyYXJ5IHN1cHBvcnQKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5v CisrICAgICAgICAgICAgOzsKKysgICAgICAgICAgYUNDKikKKysgICAgICAgICAgICBfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLWIg JHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAgICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29t cGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrICAgICAgICAgICAgIyB3 aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3 aGVuCisrICAgICAgICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrICAgICAgICAg ICAgIworKyAgICAgICAgICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8g cHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KKysgICAgICAgICAgICAjIGV4cGxpY2l0bHkgbGlu a2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQorKyAgICAg ICAgICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQg aW4gdGhlIGxpYnJhcnkKKysgICAgICAgICAgICAjIGRlcGVuZGVuY2llcy4KKysgICAgICAgICAg ICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBj b25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEVHUkVQICJcLUwiYDsgbGlzdD0iIjsgZm9yIHogaW4g JHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6 Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGZ1bmNfZWNo b19hbGwgIiRsaXN0IicKKysgICAgICAgICAgICA7OworKyAgICAgICAgICAqKQorKyAgICAgICAg ICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgICAgICAgICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJl ZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0 X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAk bGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAgICAgICAgICBlbHNl CisrICAgICAgICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBv cnQKKysgICAgICAgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICAg ICAgICBmaQorKyAgICAgICAgICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICA7OworKwor KyAgICAgIGhwdXgxMCp8aHB1eDExKikKKysgICAgICAgIGlmIHRlc3QgJHdpdGhfZ251X2xkID0g bm87IHRoZW4KKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0n JHt3bH0rYiAke3dsfSRsaWJkaXInCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yLCAkMSk9OgorKworKyAgICAgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgICAg ICAgIGhwcGEqNjQqfGlhNjQqKQorKyAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgICAqKQor KwkgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1F JworKyAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgZXNhYworKyAgICAgICAgZmkKKysgICAg ICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgICAgIGhwcGEqNjQqfGlhNjQqKQorKyAgICAg ICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKysgICAgICAgICAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAgICAgICAgICAgIDs7 CisrICAgICAgICAgICopCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3Qs ICQxKT15ZXMKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0 ZSwgJDEpPXllcworKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEp PXllcyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCisrCQkJCQkgICAgICAgICAjIGJ1dCBhcyB0 aGUgZGVmYXVsdAorKwkJCQkJICAgICAgICAgIyBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysg ICAgICAgICAgICA7OworKyAgICAgICAgZXNhYworKworKyAgICAgICAgY2FzZSAkY2NfYmFzZW5h bWUgaW4KKysgICAgICAgICAgQ0MqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCSAg ICA7OworKyAgICAgICAgICBhQ0MqKQorKwkgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysJICAgICAg aHBwYSo2NCopCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1i ICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICAgIDs7Cisr CSAgICAgIGlhNjQqKQorKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncycKKysJICAgICAgICA7OworKwkgICAgICAqKQorKwkgICAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7 d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs aWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICAgIDs7CisrCSAg ICBlc2FjCisrCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3Nl IG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmpl Y3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICMgbGlua2luZyBhIHNoYXJl ZCBsaWJyYXJ5LgorKwkgICAgIworKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBh IHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKwkgICAgIyBleHBsaWNpdGx5IGxp bmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysJICAg ICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhl IGxpYnJhcnkKKysJICAgICMgZGVwZW5kZW5jaWVzLgorKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlu a19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYx KSB8ICRHUkVQICJcLUwiYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6 IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBs aXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGZ1bmNfZWNob19hbGwgIiRsaXN0IicKKysJICAg IDs7CisrICAgICAgICAgICopCisrCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKwkg ICAgICBpZiB0ZXN0ICR3aXRoX2dudV9sZCA9IG5vOyB0aGVuCisrCSAgICAgICAgY2FzZSAkaG9z dF9jcHUgaW4KKysJICAgICAgICAgIGhwcGEqNjQqKQorKwkgICAgICAgICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAk e3dsfSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgICAgIDs7CisrCSAgICAg ICAgICBpYTY0KikKKysJICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25v ZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICAgICAgICA7OworKwkgICAg ICAgICAgKikKKysJICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEND IC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3 bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgICAgIDs7Cisr CSAgICAgICAgZXNhYworKwkgICAgICBmaQorKwkgICAgZWxzZQorKwkgICAgICAjIEZJWE1FOiBp bnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgICAgX0xUX1RBR1ZBUihsZF9z aGxpYnMsICQxKT1ubworKwkgICAgZmkKKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAg ICA7OworKworKyAgICAgIGludGVyaXhbWzMtOV1dKikKKysJX0xUX1RBR1ZBUihoYXJkY29kZV9k aXJlY3QsICQxKT1ubworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1u bworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBh dGgsJGxpYmRpcicKKysJX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0n JHt3bH0tRScKKysJIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElD IGJlY2F1c2Ugb2YgYSBicm9rZW4gZ2NjLgorKwkjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMg YXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5CisrCSMgZGVmYXVsdCkg YW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1v cnkKKysJIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBhdm9pZCB0aGlz LCB3ZSBwaWNrIGEgcmFuZG9tLAorKwkjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdl ZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCisrCSMgdGltZS4gIE1vdmluZyB1 cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgorKwlfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFz ZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAt byAkbGliJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nc2VkICJzLF4s XywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1z aGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1o LCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFt ZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIg XCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKKysJOzsKKysgICAgICBpcml4NSogfCBp cml4NiopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBDQyopCisr CSAgICAjIFNHSSBDKysKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkIC1hbGwgLW11bHRpZ290ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4g IiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAg LXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwor KworKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBj cmVhdGVkIHVzaW5nCisrCSAgICAjICJDQyAtYXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBJUklYIEMr KyBjb21waWxlci4gIFRoaXMgaXMKKysJICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0 YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAorKwkgICAgIyBpbiB0aGUgYXJjaGl2ZS4K KysJICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLWFyIC1XUiwtdSAt byAkb2xkbGliICRvbGRvYmpzJworKwkgICAgOzsKKysgICAgICAgICAgKikKKysJICAgIGlmIHRl c3QgIiRHWFgiID0geWVzOyB0aGVuCisrCSAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBu bzsgdGhlbgorKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAt biAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0k dmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9z b19sb2NhdGlvbnMgLW8gJGxpYicKKysJICAgICAgZWxzZQorKwkgICAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2Fs bCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgLW8gJGxpYicKKysJICAgICAg ZmkKKysJICAgIGZpCisrCSAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMK KysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKyAgICAgICAgX0xU X1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9eWVzCisrICAgICAgICA7OworKworKyAgICAgIGxp bnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKKysgICAgICAgIGNhc2UgJGNj X2Jhc2VuYW1lIGluCisrICAgICAgICAgIEtDQyopCisrCSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0 ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCisrCisrCSAgICAjIEtDQyB3aWxsIG9ubHkgY3Jl YXRlIGEgc2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCisrCSAgICAjIGVuZHMgd2l0 aCAiLnNvIiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5CisrCSAg ICAjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgorKwkg ICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4 dCB8ICRTRUQgLWUgJ1wnJ3MvXChbW14oKTAtOUEtWmEtent9XV1cKS9cXFxcXDEvZydcJydgOyB0 ZW1wbGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRD QyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12IFwkdGVtcGxpYiAk bGliJworKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J3RlbXBleHQ9 YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW1teKCkwLTlBLVphLXp7fV1dXCkv XFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNobyAkbGliIHwgJFNFRCAtZSAicy9cJHt0ZW1wZXh0 fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0ZW1wbGli ICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzOyBtdiBcJHRlbXBsaWIg JGxpYicKKysJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ug b3V0cHV0IHRoYXQgbGlzdHMKKysJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVj dCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkgICAgIyBsaW5raW5nIGEgc2hhcmVk IGxpYnJhcnkuCisrCSAgICAjCisrCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEg d2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCisrCSAgICAjIGV4cGxpY2l0bHkgbGlu a2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQorKwkgICAg IyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUg bGlicmFyeQorKwkgICAgIyBkZXBlbmRlbmNpZXMuCisrCSAgICBvdXRwdXRfdmVyYm9zZV9saW5r X2NtZD0ndGVtcGxpc3Q9YCRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8gbGliY29u ZnRlc3Qkc2hhcmVkX2V4dCAyPiYxIHwgJEdSRVAgImxkImA7IHJtIC1mIGxpYmNvbmZ0ZXN0JHNo YXJlZF9leHQ7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25m dGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxp c3QgJHoiOztlc2FjOyBkb25lOyBmdW5jX2VjaG9fYWxsICIkbGlzdCInCisrCisrCSAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRp cicKKysJICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9 LS1leHBvcnQtZHluYW1pYycKKysKKysJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2Jq ZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkgICAgIyAiQ0MgLUJzdGF0aWMiLCB3 aGVyZSAiQ0MiIGlzIHRoZSBLQUkgQysrIGNvbXBpbGVyLgorKwkgICAgX0xUX1RBR1ZBUihvbGRf YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtQnN0YXRpYyAtbyAkb2xkbGliICRvbGRvYmpzJworKwkg ICAgOzsKKysJICBpY3BjKiB8IGVjcGMqICkKKysJICAgICMgSW50ZWwgQysrCisrCSAgICB3aXRo X2dudV9sZD15ZXMKKysJICAgICMgdmVyc2lvbiA4LjAgYW5kIGFib3ZlIG9mIGljcGMgY2hva2Ug b24gbXVsdGlwbHkgZGVmaW5lZCBzeW1ib2xzCisrCSAgICAjIGlmIHdlIGFkZCAkcHJlZGVwX29i amVjdHMgYW5kICRwb3N0ZGVwX29iamVjdHMsIGhvd2V2ZXIgNy4xIGFuZAorKwkgICAgIyBlYXJs aWVyIGRvIG5vdCBhZGQgdGhlIG9iamVjdHMgdGhlbXNlbHZlcy4KKysJICAgIGNhc2UgYCRDQyAt ViAyPiYxYCBpbgorKwkgICAgICAqIlZlcnNpb24gNy4iKikKKysJICAgICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3 bCRzb25hbWUgLW8gJGxpYicKKysJCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp PSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0 YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysJCTs7CisrCSAg ICAgICopICAjIFZlcnNpb24gOC4wIG9yIG5ld2VyCisrCSAgICAgICAgdG1wX2lkeW49CisrCSAg ICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysJCSAgaWE2NCopIHRtcF9pZHluPScgLWlfZHluYW1p Yyc7OworKwkJZXNhYworKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkJyIkdG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJCV9MVF9UQUdWQVIoYXJjaGl2ZV9l eHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCciJHRtcF9pZHluIicgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1z eW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCQk7OworKwkgICAgZXNh YworKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrCSAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxp YmRpcicKKysJICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7 d2x9LS1leHBvcnQtZHluYW1pYycKKysJICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJHt3bH0tLW5vLXdo b2xlLWFyY2hpdmUnCisrCSAgICA7OworKyAgICAgICAgICBwZ0NDKiB8IHBnY3BwKikKKysgICAg ICAgICAgICAjIFBvcnRsYW5kIEdyb3VwIEMrKyBjb21waWxlcgorKwkgICAgY2FzZSBgJENDIC1W YCBpbgorKwkgICAgKnBnQ0NcIFtbMS01XV0uKiB8ICpwZ2NwcFwgW1sxLTVdXS4qKQorKwkgICAg ICBfTFRfVEFHVkFSKHByZWxpbmtfY21kcywgJDEpPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgorKwkJ cm0gLXJmICR0cGxkaXJ+CisrCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9u X2RpciAkdHBsZGlyICRvYmpzICRsaWJvYmpzICRjb21waWxlX2RlcGxpYnN+CisrCQljb21waWxl X2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgc29y dCB8ICROTDJTUGAiJworKwkgICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0n dHBsZGlyPVRlbXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBsZGlyfgorKwkJJENDIC0tcHJlbGlu a19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkb2xkb2JqcyRvbGRfZGVwbGli c34KKysJCSRBUiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzIGBmaW5kICR0 cGxkaXIgLW5hbWUgXCoubyB8IHNvcnQgfCAkTkwyU1BgfgorKwkJJFJBTkxJQiAkb2xkbGliJwor KwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSd0cGxkaXI9VGVtcGxhdGUuZGly fgorKwkJcm0gLXJmICR0cGxkaXJ+CisrCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50 aWF0aW9uX2RpciAkdHBsZGlyICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkY29u dmVuaWVuY2UgJHBvc3RkZXBfb2JqZWN0c34KKysJCSRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwg c29ydCB8ICROTDJTUGAgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR7d2x9JHNvbmFtZSAtbyAkbGliJworKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhw c3ltX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBsZGlyfgor KwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJGNvbnZlbmllbmNlICRwb3N0ZGVwX29iamVj dHN+CisrCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8IHNvcnQgfCAkTkwyU1BgICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgJHt3bH0t cmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwkgICAg ICA7OworKwkgICAgKikgIyBWZXJzaW9uIDYgYW5kIGFib3ZlIHVzZSB3ZWFrIHN5bWJvbHMKKysJ ICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFn ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIC1vICRsaWInCisrCSAgICAgIF9M VF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMt ZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwkgICAgICA7OworKwkgICAgZXNh YworKworKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7 d2x9LS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWlj X2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrCSAgICBfTFRfVEFHVkFS KHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBj b252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29u dmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwg XCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworKyAgICAgICAg ICAgIDs7CisrCSAgY3h4KikKKysJICAgICMgQ29tcGFxIEMrKworKwkgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wk c29uYW1lIC1vICRsaWInCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICAtbyAkbGli ICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzJworKworKwkgICAg cnVucGF0aF92YXI9TERfUlVOX1BBVEgKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYywgJDEpPSctcnBhdGggJGxpYmRpcicKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysKKysJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBj b21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJICAgICMgd2hhdCAi aGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgor KwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgICAjCisrCSAgICAjIFRoZXJl IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9t CisrCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5l ZWQgdG8gc3RyaXAgdGhlbQorKwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRv bid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKwkgICAgIyBkZXBlbmRlbmNpZXMuCisr CSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxB R1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgImxkImA7IHRlbXBsaXN0PWBmdW5j X2VjaG9fYWxsICIkdGVtcGxpc3QiIHwgJFNFRCAicy9cKF4uKmxkLipcKVwoIC4qbGQgLiokXCkv XDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVz dC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3Qg JHoiOztlc2FjOyBkb25lOyBmdW5jX2VjaG9fYWxsICJYJGxpc3QiIHwgJFhzZWQnCisrCSAgICA7 OworKwkgIHhsKiB8IG1waXhsKiB8IGJneGwqKQorKwkgICAgIyBJQk0gWEwgOC4wIG9uIFBQQywg d2l0aCBHTlUgbGQKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywg JDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9k eW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrCSAgICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXFta3Nocm9iaiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJICAg IGlmIHRlc3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KKysJICAg ICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIg PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCQljYXQgJGV4cG9ydF9zeW1ib2xzIHwg c2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Cisr CQllY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJ CSRDQyAtcW1rc2hyb2JqICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1z b25hbWUgJHdsJHNvbmFtZSAke3dsfS12ZXJzaW9uLXNjcmlwdCAke3dsfSRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLnZlciAtbyAkbGliJworKwkgICAgZmkKKysJICAgIDs7CisrCSAgKikKKysJICAg IGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkgICAgKlN1blwgQyopCisrCSAgICAg ICMgU3VuIEMrKyA1LjkKKysJICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEp PScgLXpkZWZzJworKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUck e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAg ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLUcke2FsbG93X3Vu ZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5 bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scycKKysJICAgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKKysJICAgICAgX0xUX1RBR1ZB Uih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdf Y29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwi JGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRv bmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1h cmNoaXZlJworKwkgICAgICBfTFRfVEFHVkFSKGNvbXBpbGVyX25lZWRzX29iamVjdCwgJDEpPXll cworKworKwkgICAgICAjIE5vdCBzdXJlIHdoZXRoZXIgc29tZXRoaW5nIGJhc2VkIG9uCisrCSAg ICAgICMgJENDICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRzaGFy ZWRfZXh0IDI+JjEKKysJICAgICAgIyB3b3VsZCBiZSBiZXR0ZXIuCisrCSAgICAgIG91dHB1dF92 ZXJib3NlX2xpbmtfY21kPSdmdW5jX2VjaG9fYWxsJworKworKwkgICAgICAjIEFyY2hpdmVzIGNv bnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKKysJICAgICAg IyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMgdGhlIFN1biBDKysgY29tcGlsZXIuICBUaGlzIGlz CisrCSAgICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVz IGFyZSBpbmNsdWRlZAorKwkgICAgICAjIGluIHRoZSBhcmNoaXZlLgorKwkgICAgICBfTFRfVEFH VkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC14YXIgLW8gJG9sZGxpYiAkb2xkb2JqcycK KysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysKKysgICAg ICBseW54b3MqKQorKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBz dXBwb3J0CisrCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJOzsKKysKKysgICAgICBt ODhrKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9y dAorKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwk7OworKworKyAgICAg IG12cyopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBjeHgqKQor KwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBf TFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCSAgICA7OworKwkgICopCisrCSAgICAjIEZJ WE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIF9MVF9UQUdWQVIo bGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysKKysgICAgICBuZXRi c2QqKQorKyAgICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9f ID4vZGV2L251bGw7IHRoZW4KKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQg LUJzaGFyZWFibGUgIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGxpbmtlcl9mbGFncycKKysJICB3bGFyYz0KKysJICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworKwkgIF9MVF9UQUdW QVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxp YnBhdGhfdmFyLCAkMSk9bm8KKysJZmkKKysJIyBXb3JrYXJvdW5kIHNvbWUgYnJva2VuIHByZS0x LjUgdG9vbGNoYWlucworKwlvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENG TEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCBjb25mdGVzdC4kb2JqZXh0IHwg JFNFRCAtZSAiczotbGdjYyAtbGMgLWxnY2M6OiInCisrCTs7CisrCisrICAgICAgKm50byogfCAq cW54KikKKysgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9eWVzCisrCTs7CisrCisr ICAgICAgb3BlbmJzZDIqKQorKyAgICAgICAgIyBDKysgc2hhcmVkIGxpYnJhcmllcyBhcmUgZmFp cmx5IGJyb2tlbgorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCTs7CisrCisrICAg ICAgb3BlbmJzZCopCisrCWlmIHRlc3QgLWYgL3Vzci9saWJleGVjL2xkLnNvOyB0aGVuCisrCSAg X0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysJICBfTFRfVEFHVkFSKGhhcmRj b2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0 X2Fic29sdXRlLCAkMSk9eWVzCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEND IC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkbGliJworKwkgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworKwkgIGlm IHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfX2AiIHx8IHRl c3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgorKwkg ICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNf ZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMg LW8gJGxpYicKKysJICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LUUnCisrCSAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9 IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdob2xl LWFyY2hpdmUnCisrCSAgZmkKKysJICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD1mdW5jX2VjaG9f YWxsCisrCWVsc2UKKysJICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCWZpCisrCTs7 CisrCisrICAgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgICAgICAgY2FzZSAkY2NfYmFz ZW5hbWUgaW4KKysgICAgICAgICAgS0NDKikKKysJICAgICMgS3VjayBhbmQgQXNzb2NpYXRlcywg SW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKKysKKysJICAgICMgS0NDIHdpbGwgb25seSBjcmVhdGUg YSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKKysJICAgICMgZW5kcyB3aXRoICIu c28iIChvciAiLnNsIiBmb3IgSFAtVVgpLCBzbyByZW5hbWUgdGhlIGxpYnJhcnkKKysJICAgICMg dG8gaXRzIHByb3BlciBuYW1lICh3aXRoIHZlcnNpb24pIGFmdGVyIGxpbmtpbmcuCisrCSAgICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwg JFNFRCAtZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBs aWI9YGVjaG8gIiRsaWIiIHwgJFNFRCAtZSAicy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0Mg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0ZW1wbGliOyBtdiBcJHRlbXBsaWIgJGxp YicKKysKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSck e3dsfS1ycGF0aCwkbGliZGlyJworKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yLCAkMSk9OgorKworKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3Qg ZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAjIHRoZSBLQUkgQysrIGNvbXBpbGVy LgorKwkgICAgY2FzZSAkaG9zdCBpbgorKwkgICAgICBvc2YzKikgX0xUX1RBR1ZBUihvbGRfYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtQnN0YXRpYyAtbyAkb2xkbGliICRvbGRvYmpzJyA7OworKwkg ICAgICAqKSBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1vICRvbGRsaWIg JG9sZG9ianMnIDs7CisrCSAgICBlc2FjCisrCSAgICA7OworKyAgICAgICAgICBSQ0MqKQorKwkg ICAgIyBSYXRpb25hbCBDKysgMi40LjEKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysr IGxpYnJhcnkgc3VwcG9ydAorKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwkg ICAgOzsKKysgICAgICAgICAgY3h4KikKKysJICAgIGNhc2UgJGhvc3QgaW4KKysJICAgICAgb3Nm MyopCisrCSAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3 bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKysJICAgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAke3dsfS1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hv X2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtv dXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJICAgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGly JworKwkJOzsKKysJICAgICAgKikKKysJICAgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5l ZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCisrCSAgICAgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBm dW5jX2VjaG9fYWxsICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkg JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJICAgICAgICBfTFRfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJv bHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIu ZXhwOyBkb25lfgorKwkgICAgICAgICAgZWNobyAiLWhpZGRlbiI+PiAkbGliLmV4cH4KKysJICAg ICAgICAgICRDQyAtc2hhcmVkJGFsbG93X3VuZGVmaW5lZF9mbGFnICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAt c29uYW1lICRzb25hbWUgJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4cCAgYHRlc3QgLW4gIiR2ZXJz dHJpbmciICYmICRFQ0hPICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0 cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4KKysJICAgICAgICAgICRS TSAkbGliLmV4cCcKKysJICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nLXJwYXRoICRsaWJkaXInCisrCQk7OworKwkgICAgZXNhYworKworKwkgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKworKwkgICAgIyBDb21t YW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwor KwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBh cmUgdXNlZCB3aGVuCisrCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgICMK KysJICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlz IGNvbXBpbGVyIGZyb20KKysJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3Qg ZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisrCSAgICAjIGZyb20gdGhlIG91dHB1dCBz byB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CisrCSAgICAjIGRl cGVuZGVuY2llcy4KKysJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJEND IC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAibGQiIHwg JEdSRVAgLXYgImxkOiJgOyB0ZW1wbGlzdD1gZnVuY19lY2hvX2FsbCAiJHRlbXBsaXN0IiB8ICRT RUQgInMvXCheLipsZC4qXClcKCAuKmxkLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0 ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7 OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBmdW5jX2VjaG9f YWxsICIkbGlzdCInCisrCSAgICA7OworKwkgICopCisrCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHll cyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJICAgICAgX0xUX1RBR1ZBUihh bGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1c KicKKysJICAgICAgY2FzZSAkaG9zdCBpbgorKwkgICAgICAgIG9zZjMqKQorKwkgICAgICAgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICR7YWxs b3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0 ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAk e3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpk aXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkJICA7OworKwkgICAgICAgICopCisrCSAgICAg ICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIg JHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1l ICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3 bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7 d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJCSAgOzsKKysJICAg ICAgZXNhYworKworKwkgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKwkgICAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrCisrCSAgICAgICMgQ29tbWFuZHMgdG8gbWFr ZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJICAgICAgIyB3 aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3 aGVuCisrCSAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgICBvdXRwdXRf dmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0 IDI+JjEgfCAkR1JFUCAtdiAiXkNvbmZpZ3VyZWQgd2l0aDoiIHwgJEdSRVAgIlwtTCInCisrCisr CSAgICBlbHNlCisrCSAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAorKwkgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCSAgICBmaQorKwkg ICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrCisrICAgICAgcHNvcyopCisrICAg ICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICAg IF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICAgIDs7CisrCisrICAgICAgc3Vu b3M0KikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIENDKikKKysJ ICAgICMgU3VuIEMrKyA0LngKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJh cnkgc3VwcG9ydAorKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwkgICAgOzsK KysgICAgICAgICAgbGNjKikKKysJICAgICMgTHVjaWQKKysJICAgICMgRklYTUU6IGluc2VydCBw cm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubworKwkgICAgOzsKKysgICAgICAgICAgKikKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1u bworKwkgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrCisrICAgICAgc29sYXJp cyopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBDQyogfCBzdW5D QyopCisrCSAgICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRlcmxpbmUgQysrCisrICAgICAg ICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywkMSk9eWVzCisrCSAgICBfTFRf VEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtemRlZnMnCisrCSAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAgLWgkc29u YW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9j bWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xz IHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07 IiA+PiAkbGliLmV4cH4KKysJICAgICAgJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHt3 bH0tTSAke3dsfSRsaWIuZXhwIC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5l eHAnCisrCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0n LVIkbGliZGlyJworKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9 bm8KKysJICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysJICAgICAgc29sYXJpczIuW1swLTVdXSB8IHNv bGFyaXMyLltbMC01XV0uKikgOzsKKysJICAgICAgKikKKysJCSMgVGhlIGNvbXBpbGVyIGRyaXZl ciB3aWxsIGNvbWJpbmUgYW5kIHJlb3JkZXIgbGlua2VyIG9wdGlvbnMsCisrCQkjIGJ1dCB1bmRl cnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLgorKwkgICAgICAgICMgU3VwcG9ydGVkIHNpbmNlIFNv bGFyaXMgMi42IChtYXliZSAyLjUuMT8pCisrCQlfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjLCAkMSk9Jy16IGFsbGV4dHJhY3QkY29udmVuaWVuY2UgLXogZGVmYXVsdGV4dHJhY3Qn CisrCSAgICAgICAgOzsKKysJICAgIGVzYWMKKysJICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVw bGlicywgJDEpPXllcworKworKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2Z1bmNfZWNo b19hbGwnCisrCisrCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBt dXN0IGJlIGNyZWF0ZWQgdXNpbmcKKysJICAgICMgIkNDIC14YXIiLCB3aGVyZSAiQ0MiIGlzIHRo ZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcworKwkgICAgIyBuZWNlc3NhcnkgdG8gbWFrZSBz dXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCisrCSAgICAjIGluIHRoZSBh cmNoaXZlLgorKwkgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAteGFy IC1vICRvbGRsaWIgJG9sZG9ianMnCisrCSAgICA7OworKyAgICAgICAgICBnY3gqKQorKwkgICAg IyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxpYicK KysKKysJICAgICMgVGhlIEMrKyBjb21waWxlciBtdXN0IGJlIHVzZWQgdG8gY3JlYXRlIHRoZSBh cmNoaXZlLgorKwkgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAkTERG TEFHUyAtYXJjaGl2ZSAtbyAkb2xkbGliICRvbGRvYmpzJworKwkgICAgOzsKKysgICAgICAgICAg KikKKysJICAgICMgR05VIEMrKyBjb21waWxlciB3aXRoIFNvbGFyaXMgbGlua2VyCisrCSAgICBp ZiB0ZXN0ICIkR1hYIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJ ICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0teiAke3dsfWRl ZnMnCisrCSAgICAgIGlmICRDQyAtLXZlcnNpb24gfCAkR1JFUCAtdiAnXjJcLjcnID4gL2Rldi9u dWxsOyB0aGVuCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgLW5vc3RkbGliICRMREZMQUdTICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8g JGxpYicKKysJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNo byAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJz L1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhw fgorKwkJICAkQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHt3bH0tTSAkd2wkbGliLmV4cCAtbyAkbGli ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21w aWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCisrCisrCSAgICAgICAgIyBDb21tYW5kcyB0byBtYWtl IGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgICAgICMg d2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQg d2hlbgorKwkgICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgICAgIG91 dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRv YmpleHQgMj4mMSB8ICRHUkVQIC12ICJeQ29uZmlndXJlZCB3aXRoOiIgfCAkR1JFUCAiXC1MIicK KysJICAgICAgZWxzZQorKwkgICAgICAgICMgZysrIDIuNyBhcHBlYXJzIHRvIHJlcXVpcmUgYC1H JyBOT1QgYC1zaGFyZWQnIG9uIHRoaXMKKysJICAgICAgICAjIHBsYXRmb3JtLgorKwkgICAgICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAtbm9zdGRsaWIgJExERkxBR1Mg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJworKwkgICAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+ Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhw fmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCQkgICRDQyAtRyAtbm9zdGRsaWIg JHt3bH0tTSAkd2wkbGliLmV4cCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCisrCisr CSAgICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRw dXQgdGhhdCBsaXN0cworKwkgICAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVj dCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkgICAgICAgICMgbGlua2luZyBhIHNo YXJlZCBsaWJyYXJ5LgorKwkgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLUcg JENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAtdiAiXkNvbmZpZ3VyZWQg d2l0aDoiIHwgJEdSRVAgIlwtTCInCisrCSAgICAgIGZpCisrCisrCSAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1SICR3bCRsaWJkaXInCisrCSAg ICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysJCXNvbGFyaXMyLltbMC01XV0gfCBzb2xhcmlzMi5bWzAt NV1dLiopIDs7CisrCQkqKQorKwkJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj LCAkMSk9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1k ZWZhdWx0ZXh0cmFjdCcKKysJCSAgOzsKKysJICAgICAgZXNhYworKwkgICAgZmkKKysJICAgIDs7 CisrICAgICAgICBlc2FjCisrICAgICAgICA7OworKworKyAgICBzeXN2NCp1dzIqIHwgc3lzdjVP cGVuVU5JWCogfCBzeXN2NVVuaXhXYXJlNy5bWzAxXV0uW1sxMF1dKiB8IHVuaXh3YXJlNyogfCBz Y28zLjJ2NS4wLltbMDI0XV0qKQorKyAgICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcs ICQxKT0nJHt3bH0teix0ZXh0JworKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRf bGMsICQxKT1ubworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEp PW5vCisrICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJworKworKyAgICAgIGNhc2UgJGNj X2Jhc2VuYW1lIGluCisrICAgICAgICBDQyopCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncycKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0n JENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwkqKQorKwkg IF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICBfTFRfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDok ZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAg ICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KikKKysJIyBOb3RlOiBXZSBjYW4gTk9UIHVz ZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBub3QKKysJIyBsaW5r IHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2VkIGZyb20gbGli YyB0bworKwkjIGFsd2F5cyBiZSB1bnJlc29sdmVkLCB3aGljaCBtZWFucyBqdXN0IGFib3V0IG5v IGxpYnJhcnkgd291bGQKKysJIyBldmVyIGxpbmsgY29ycmVjdGx5LiAgSWYgd2UncmUgbm90IHVz aW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAorKwkjIHRob3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBz b21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5kZWQKKysJIyBhcyAteiBkZWZz LgorKwlfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKKysJ X0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LG5vZGVmcycKKysJ X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrCV9MVF9UQUdWQVIoaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYywgJDEpPScke3dsfS1SLCRsaWJkaXInCisrCV9MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvciwgJDEpPSc6JworKwlfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMs ICQxKT15ZXMKKysJX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3 bH0tQmV4cG9ydCcKKysJcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJworKworKwljYXNlICRjY19i YXNlbmFtZSBpbgorKyAgICAgICAgICBDQyopCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJworKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAk MSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICBfTFRfVEFH VkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1UcHJlbGlua19vYmplY3RzICRvbGRvYmpz fgorKwkgICAgICAnIiRfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKSIKKysJICAgIF9M VF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKT0nJENDIC1UcHJlbGlua19vYmplY3RzICRyZWxvYWRf b2Jqc34KKysJICAgICAgJyIkX0xUX1RBR1ZBUihyZWxvYWRfY21kcywgJDEpIgorKwkgICAgOzsK KysJICAqKQorKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQg JHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz JworKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk ICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICAgIDs7CisrCWVzYWMKKysgICAg ICA7OworKworKyAgICAgIHRhbmRlbSopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgor KyAgICAgICAgICBOQ0MqKQorKwkgICAgIyBOb25TdG9wLVVYIE5DQyAzLjIwCisrCSAgICAjIEZJ WE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIF9MVF9UQUdWQVIo bGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAgICAgICAgICopCisrCSAgICAjIEZJWE1F OiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIF9MVF9UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICA7OworKwor KyAgICAgIHZ4d29ya3MqKQorKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGli cmFyeSBzdXBwb3J0CisrICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAg ICAgICA7OworKworKyAgICAgICopCisrICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMr KyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8K KysgICAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdW QVIobGRfc2hsaWJzLCAkMSldKQorKyAgICB0ZXN0ICIkX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KSIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisrCisrICAgIF9MVF9UQUdWQVIoR0NDLCAk MSk9IiRHWFgiCisrICAgIF9MVF9UQUdWQVIoTEQsICQxKT0iJExEIgorKworKyAgICAjIyBDQVZF QVQgRU1QVE9SOgorKyAgICAjIyBUaGVyZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUg Zm9sbG93aW5nIG1hY3JvcywgZG8gbm90IGNoYW5nZQorKyAgICAjIyB0aGUgcnVubmluZyBvcmRl ciBvciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQor KyAgICAjIyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4KKysgICAgX0xUX1NZU19ISURERU5fTElCREVQ UygkMSkKKysgICAgX0xUX0NPTVBJTEVSX1BJQygkMSkKKysgICAgX0xUX0NPTVBJTEVSX0NfTygk MSkKKysgICAgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoJDEpCisrICAgIF9MVF9MSU5LRVJfU0hM SUJTKCQxKQorKyAgICBfTFRfU1lTX0RZTkFNSUNfTElOS0VSKCQxKQorKyAgICBfTFRfTElOS0VS X0hBUkRDT0RFX0xJQlBBVEgoJDEpCisrCisrICAgIF9MVF9DT05GSUcoJDEpCisrICBmaSAjIHRl c3QgLW4gIiRjb21waWxlciIKKysKKysgIENDPSRsdF9zYXZlX0NDCisrICBMRENYWD0kTEQKKysg IExEPSRsdF9zYXZlX0xECisrICBHQ0M9JGx0X3NhdmVfR0NDCisrICB3aXRoX2dudV9sZD0kbHRf c2F2ZV93aXRoX2dudV9sZAorKyAgbHRfY3ZfcGF0aF9MRENYWD0kbHRfY3ZfcGF0aF9MRAorKyAg bHRfY3ZfcGF0aF9MRD0kbHRfc2F2ZV9wYXRoX0xECisrICBsdF9jdl9wcm9nX2dudV9sZGN4eD0k bHRfY3ZfcHJvZ19nbnVfbGQKKysgIGx0X2N2X3Byb2dfZ251X2xkPSRsdF9zYXZlX3dpdGhfZ251 X2xkCisrZmkgIyB0ZXN0ICIkX2x0X2NhdWdodF9DWFhfZXJyb3IiICE9IHllcworKworK0FDX0xB TkdfUE9QCisrXSkjIF9MVF9MQU5HX0NYWF9DT05GSUcKKysKKysKKysjIF9MVF9TWVNfSElEREVO X0xJQkRFUFMoW1RBR05BTUVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrIyBGaWd1cmUgb3V0ICJoaWRkZW4iIGxpYnJhcnkgZGVwZW5kZW5jaWVzIGZyb20gdmVyYm9z ZQorKyMgY29tcGlsZXIgb3V0cHV0IHdoZW4gbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKyMg UGFyc2UgdGhlIGNvbXBpbGVyIG91dHB1dCBhbmQgZXh0cmFjdCB0aGUgbmVjZXNzYXJ5CisrIyBv YmplY3RzLCBsaWJyYXJpZXMgYW5kIGxpYnJhcnkgZmxhZ3MuCisrbTRfZGVmdW4oW19MVF9TWVNf SElEREVOX0xJQkRFUFNdLAorK1ttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlk bmwKKysjIERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgYW5kIGFmdGVyIHRoZSBvYmplY3Qg YmVpbmcgbGlua2VkOgorK19MVF9UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKT0KKytfTFRfVEFH VkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpPQorK19MVF9UQUdWQVIocHJlZGVwcywgJDEpPQorK19M VF9UQUdWQVIocG9zdGRlcHMsICQxKT0KKytfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hf cGF0aCwgJDEpPQorKworK2RubCB3ZSBjYW4ndCB1c2UgdGhlIGx0X3NpbXBsZV9jb21waWxlX3Rl c3RfY29kZSBoZXJlLAorK2RubCBiZWNhdXNlIGl0IGNvbnRhaW5zIGNvZGUgaW50ZW5kZWQgZm9y IGFuIGV4ZWN1dGFibGUsCisrZG5sIG5vdCBhIGxpYnJhcnkuICBJdCdzIHBvc3NpYmxlIHdlIHNo b3VsZCBsZXQgZWFjaAorK2RubCB0YWcgZGVmaW5lIGEgbmV3IGx0Xz8/Pz9fbGlua190ZXN0X2Nv ZGUgdmFyaWFibGUsCisrZG5sIGJ1dCBpdCdzIG9ubHkgdXNlZCBoZXJlLi4uCisrbTRfaWYoWyQx XSwgW10sIFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgorK2ludCBhOworK3ZvaWQg Zm9vICh2b2lkKSB7IGEgPSAwOyB9CisrX0xUX0VPRgorK10sIFskMV0sIFtDWFhdLCBbY2F0ID4g Y29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKytjbGFzcyBGb28KKyt7CisrcHVibGljOgorKyAg Rm9vICh2b2lkKSB7IGEgPSAwOyB9CisrcHJpdmF0ZToKKysgIGludCBhOworK307CisrX0xUX0VP RgorK10sIFskMV0sIFtGNzddLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKysg ICAgICBzdWJyb3V0aW5lIGZvbworKyAgICAgIGltcGxpY2l0IG5vbmUKKysgICAgICBpbnRlZ2Vy KjQgYQorKyAgICAgIGE9MAorKyAgICAgIHJldHVybgorKyAgICAgIGVuZAorK19MVF9FT0YKKytd LCBbJDFdLCBbRkNdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKysgICAgICBz dWJyb3V0aW5lIGZvbworKyAgICAgIGltcGxpY2l0IG5vbmUKKysgICAgICBpbnRlZ2VyIGEKKysg ICAgICBhPTAKKysgICAgICByZXR1cm4KKysgICAgICBlbmQKKytfTFRfRU9GCisrXSwgWyQxXSwg W0dDSl0sIFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgorK3B1YmxpYyBjbGFzcyBm b28geworKyAgcHJpdmF0ZSBpbnQgYTsKKysgIHB1YmxpYyB2b2lkIGJhciAodm9pZCkgeworKyAg ICBhID0gMDsKKysgIH0KKyt9OworK19MVF9FT0YKKytdKQorK2RubCBQYXJzZSB0aGUgY29tcGls ZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkKKytkbmwgb2JqZWN0cywgbGlicmFy aWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgorK2lmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVu CisrICAjIFBhcnNlIHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2Fy eQorKyAgIyBvYmplY3RzLCBsaWJyYXJpZXMgYW5kIGxpYnJhcnkgZmxhZ3MuCisrCisrICAjIFNl bnRpbmVsIHVzZWQgdG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIG9yIG5vdCB3ZSBhcmUgYmVmb3Jl CisrICAjIHRoZSBjb25mdGVzdCBvYmplY3QgZmlsZS4KKysgIHByZV90ZXN0X29iamVjdF9kZXBz X2RvbmU9bm8KKysKKysgIGZvciBwIGluIGBldmFsICIkb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQi YDsgZG8KKysgICAgY2FzZSAkcCBpbgorKworKyAgICAtTCogfCAtUiogfCAtbCopCisrICAgICAg ICMgU29tZSBjb21waWxlcnMgcGxhY2Ugc3BhY2UgYmV0d2VlbiAiLXtMLFJ9IiBhbmQgdGhlIHBh dGguCisrICAgICAgICMgUmVtb3ZlIHRoZSBzcGFjZS4KKysgICAgICAgaWYgdGVzdCAkcCA9ICIt TCIgfHwKKysgICAgICAgICAgdGVzdCAkcCA9ICItUiI7IHRoZW4KKysJIHByZXY9JHAKKysJIGNv bnRpbnVlCisrICAgICAgIGVsc2UKKysJIHByZXY9CisrICAgICAgIGZpCisrCisrICAgICAgIGlm IHRlc3QgIiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lIiA9IG5vOyB0aGVuCisrCSBjYXNlICRw IGluCisrCSAtTCogfCAtUiopCisrCSAgICMgSW50ZXJuYWwgY29tcGlsZXIgbGlicmFyeSBwYXRo cyBzaG91bGQgY29tZSBhZnRlciB0aG9zZQorKwkgICAjIHByb3ZpZGVkIHRoZSB1c2VyLiAgVGhl IHBvc3RkZXBzIGFscmVhZHkgY29tZSBhZnRlciB0aGUKKysJICAgIyB1c2VyIHN1cHBsaWVkIGxp YnMgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBwcm9jZXNzIHRoZW0uCisrCSAgIGlmIHRlc3QgLXog IiRfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpIjsgdGhlbgorKwkgICAg IF9MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSk9IiR7cHJldn0ke3B9Igor KwkgICBlbHNlCisrCSAgICAgX0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQx KT0iJHtfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpfSAke3ByZXZ9JHtw fSIKKysJICAgZmkKKysJICAgOzsKKysJICMgVGhlICItbCIgY2FzZSB3b3VsZCBuZXZlciBjb21l IGJlZm9yZSB0aGUgb2JqZWN0IGJlaW5nCisrCSAjIGxpbmtlZCwgc28gZG9uJ3QgYm90aGVyIGhh bmRsaW5nIHRoaXMgY2FzZS4KKysJIGVzYWMKKysgICAgICAgZWxzZQorKwkgaWYgdGVzdCAteiAi JF9MVF9UQUdWQVIocG9zdGRlcHMsICQxKSI7IHRoZW4KKysJICAgX0xUX1RBR1ZBUihwb3N0ZGVw cywgJDEpPSIke3ByZXZ9JHtwfSIKKysJIGVsc2UKKysJICAgX0xUX1RBR1ZBUihwb3N0ZGVwcywg JDEpPSIke19MVF9UQUdWQVIocG9zdGRlcHMsICQxKX0gJHtwcmV2fSR7cH0iCisrCSBmaQorKyAg ICAgICBmaQorKyAgICAgICA7OworKworKyAgICAqLiRvYmpleHQpCisrICAgICAgICMgVGhpcyBh c3N1bWVzIHRoYXQgdGhlIHRlc3Qgb2JqZWN0IGZpbGUgb25seSBzaG93cyB1cAorKyAgICAgICAj IG9uY2UgaW4gdGhlIGNvbXBpbGVyIG91dHB1dC4KKysgICAgICAgaWYgdGVzdCAiJHAiID0gImNv bmZ0ZXN0LiRvYmpleHQiOyB0aGVuCisrCSBwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lPXllcwor KwkgY29udGludWUKKysgICAgICAgZmkKKysKKysgICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29i amVjdF9kZXBzX2RvbmUiID0gbm87IHRoZW4KKysJIGlmIHRlc3QgLXogIiRfTFRfVEFHVkFSKHBy ZWRlcF9vYmplY3RzLCAkMSkiOyB0aGVuCisrCSAgIF9MVF9UQUdWQVIocHJlZGVwX29iamVjdHMs ICQxKT0iJHAiCisrCSBlbHNlCisrCSAgIF9MVF9UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKT0i JF9MVF9UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKSAkcCIKKysJIGZpCisrICAgICAgIGVsc2UK KysJIGlmIHRlc3QgLXogIiRfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpIjsgdGhlbgor KwkgICBfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpPSIkcCIKKysJIGVsc2UKKysJICAg X0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKT0iJF9MVF9UQUdWQVIocG9zdGRlcF9vYmpl Y3RzLCAkMSkgJHAiCisrCSBmaQorKyAgICAgICBmaQorKyAgICAgICA7OworKworKyAgICAqKSA7 OyAjIElnbm9yZSB0aGUgcmVzdC4KKysKKysgICAgZXNhYworKyAgZG9uZQorKworKyAgIyBDbGVh biB1cC4KKysgIHJtIC1mIGEub3V0IGEuZXhlCisrZWxzZQorKyAgZWNobyAibGlidG9vbC5tNDog ZXJyb3I6IHByb2JsZW0gY29tcGlsaW5nICQxIHRlc3QgcHJvZ3JhbSIKKytmaQorKworKyRSTSAt ZiBjb25mZXN0LiRvYmpleHQKKysKKysjIFBPUlRNRTogb3ZlcnJpZGUgYWJvdmUgdGVzdCBvbiBz eXN0ZW1zIHdoZXJlIGl0IGlzIGJyb2tlbgorK200X2lmKFskMV0sIFtDWFhdLAorK1tjYXNlICRo b3N0X29zIGluCisraW50ZXJpeFtbMy05XV0qKQorKyAgIyBJbnRlcml4IDMuNSBpbnN0YWxscyBj b21wbGV0ZWx5IGhvc2VkIC5sYSBmaWxlcyBmb3IgQysrLCBzbyByYXRoZXIgdGhhbgorKyAgIyBo YWNrIGFsbCBhcm91bmQgaXQsIGxldCdzIGp1c3QgdHJ1c3QgImcrKyIgdG8gRFRSVC4KKysgIF9M VF9UQUdWQVIocHJlZGVwX29iamVjdHMsJDEpPQorKyAgX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVj dHMsJDEpPQorKyAgX0xUX1RBR1ZBUihwb3N0ZGVwcywkMSk9CisrICA7OworKworK2xpbnV4KikK KysgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKyAgKlN1blwgQyopCisrICAgICMg U3VuIEMrKyA1LjkKKysKKysgICAgIyBUaGUgbW9yZSBzdGFuZGFyZHMtY29uZm9ybWluZyBzdGxw b3J0NCBsaWJyYXJ5IGlzCisrICAgICMgaW5jb21wYXRpYmxlIHdpdGggdGhlIENzdGQgbGlicmFy eS4gQXZvaWQgc3BlY2lmeWluZworKyAgICAjIGl0IGlmIGl0J3MgaW4gQ1hYRkxBR1MuIElnbm9y ZSBsaWJDcnVuIGFzCisrICAgICMgLWxpYnJhcnk9c3RscG9ydDQgZGVwZW5kcyBvbiBpdC4KKysg ICAgY2FzZSAiICRDWFggJENYWEZMQUdTICIgaW4KKysgICAgKiIgLWxpYnJhcnk9c3RscG9ydDQg IiopCisrICAgICAgc29sYXJpc191c2Vfc3RscG9ydDQ9eWVzCisrICAgICAgOzsKKysgICAgZXNh YworKworKyAgICBpZiB0ZXN0ICIkc29sYXJpc191c2Vfc3RscG9ydDQiICE9IHllczsgdGhlbgor KyAgICAgIF9MVF9UQUdWQVIocG9zdGRlcHMsJDEpPSctbGlicmFyeT1Dc3RkIC1saWJyYXJ5PUNy dW4nCisrICAgIGZpCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK3NvbGFyaXMqKQorKyAg Y2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgIENDKiB8IHN1bkNDKikKKysgICAgIyBUaGUgbW9yZSBz dGFuZGFyZHMtY29uZm9ybWluZyBzdGxwb3J0NCBsaWJyYXJ5IGlzCisrICAgICMgaW5jb21wYXRp YmxlIHdpdGggdGhlIENzdGQgbGlicmFyeS4gQXZvaWQgc3BlY2lmeWluZworKyAgICAjIGl0IGlm IGl0J3MgaW4gQ1hYRkxBR1MuIElnbm9yZSBsaWJDcnVuIGFzCisrICAgICMgLWxpYnJhcnk9c3Rs cG9ydDQgZGVwZW5kcyBvbiBpdC4KKysgICAgY2FzZSAiICRDWFggJENYWEZMQUdTICIgaW4KKysg ICAgKiIgLWxpYnJhcnk9c3RscG9ydDQgIiopCisrICAgICAgc29sYXJpc191c2Vfc3RscG9ydDQ9 eWVzCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICAjIEFkZGluZyB0aGlzIHJlcXVpcmVz IGEga25vd24tZ29vZCBzZXR1cCBvZiBzaGFyZWQgbGlicmFyaWVzIGZvcgorKyAgICAjIFN1biBj b21waWxlciB2ZXJzaW9ucyBiZWZvcmUgNS42LCBlbHNlIFBJQyBvYmplY3RzIGZyb20gYW4gb2xk CisrICAgICMgYXJjaGl2ZSB3aWxsIGJlIGxpbmtlZCBpbnRvIHRoZSBvdXRwdXQsIGxlYWRpbmcg dG8gc3VidGxlIGJ1Z3MuCisrICAgIGlmIHRlc3QgIiRzb2xhcmlzX3VzZV9zdGxwb3J0NCIgIT0g eWVzOyB0aGVuCisrICAgICAgX0xUX1RBR1ZBUihwb3N0ZGVwcywkMSk9Jy1saWJyYXJ5PUNzdGQg LWxpYnJhcnk9Q3J1bicKKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKysgIDs7CisrZXNhYwor K10pCisrCisrY2FzZSAiICRfTFRfVEFHVkFSKHBvc3RkZXBzLCAkMSkgIiBpbgorKyoiIC1sYyAi KikgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vIDs7CisrZXNhYworKyBf TFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlycywgJDEpPQorK2lmIHRlc3QgLW4gIiR7 X0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKX0iOyB0aGVuCisrIF9MVF9U QUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzLCAkMSk9YGVjaG8gIiAke19MVF9UQUdWQVIo Y29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSl9IiB8ICR7U0VEfSAtZSAncyEgLUwhICFnJyAt ZSAncyFeICEhJ2AKKytmaQorK19MVF9UQUdERUNMKFtdLCBbY29tcGlsZXJfbGliX3NlYXJjaF9k aXJzXSwgWzFdLAorKyAgICBbVGhlIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGJ5IHRoaXMgY29tcGls ZXIgd2hlbiBjcmVhdGluZyBhIHNoYXJlZCBsaWJyYXJ5XSkKKytfTFRfVEFHREVDTChbXSwgW3By ZWRlcF9vYmplY3RzXSwgWzFdLAorKyAgICBbRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBh bmQgYWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvCisrICAgIGNyZWF0ZSBhIHNoYXJl ZCBsaWJyYXJ5XSkKKytfTFRfVEFHREVDTChbXSwgW3Bvc3RkZXBfb2JqZWN0c10sIFsxXSkKKytf TFRfVEFHREVDTChbXSwgW3ByZWRlcHNdLCBbMV0pCisrX0xUX1RBR0RFQ0woW10sIFtwb3N0ZGVw c10sIFsxXSkKKytfTFRfVEFHREVDTChbXSwgW2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF0sIFsx XSwKKysgICAgW1RoZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBieSB0aGUg Y29tcGlsZXIgd2hlbiBsaW5raW5nCisrICAgIGEgc2hhcmVkIGxpYnJhcnldKQorK10pIyBfTFRf U1lTX0hJRERFTl9MSUJERVBTCisrCisrCisrIyBfTFRfTEFOR19GNzdfQ09ORklHKFtUQUddKQor KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1 cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBGb3J0cmFuIDc3IGNvbXBpbGVyIGFyZQorKyMgc3VpdGFi bHkgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQgYnkgX0xU X0NPTkZJRworKyMgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRv b2wnLgorK200X2RlZnVuKFtfTFRfTEFOR19GNzdfQ09ORklHXSwKKytbQUNfTEFOR19QVVNIKEZv cnRyYW4gNzcpCisraWYgdGVzdCAteiAiJEY3NyIgfHwgdGVzdCAiWCRGNzciID0gIlhubyI7IHRo ZW4KKysgIF9sdF9kaXNhYmxlX0Y3Nz15ZXMKKytmaQorKworK19MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzX25lZWRfbGMsICQxKT1ubworK19MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQx KT0KKytfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCisrX0xUX1RBR1ZB UihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9CisrX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19m bGFnX3NwZWMsICQxKT0KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCisrX0xU X1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT1ubworK19MVF9UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQorK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19sZCwgJDEpPQorK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv ciwgJDEpPQorK19MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5vCisrX0xUX1RBR1ZB UihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT1ubworK19MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwg JDEpPW5vCisrX0xUX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPQorK19MVF9UQUdWQVIobW9kdWxl X2V4cHN5bV9jbWRzLCAkMSk9CisrX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5r bm93bgorK19MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRz CisrX0xUX1RBR1ZBUihyZWxvYWRfZmxhZywgJDEpPSRyZWxvYWRfZmxhZworK19MVF9UQUdWQVIo cmVsb2FkX2NtZHMsICQxKT0kcmVsb2FkX2NtZHMKKytfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9m bGFnLCAkMSk9CisrX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQorK19M VF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPW5vCisrCisr IyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIGY3NyB0ZXN0IHNvdXJjZXMuCisrYWNfZXh0PWYK KysKKysjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgZjc3IHRlc3Qgc291cmNl cy4KKytvYmpleHQ9bworK19MVF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAorKworKyMgTm8g c2Vuc2UgaW4gcnVubmluZyBhbGwgdGhlc2UgdGVzdHMgaWYgd2UgYWxyZWFkeSBkZXRlcm1pbmVk IHRoYXQKKysjIHRoZSBGNzcgY29tcGlsZXIgaXNuJ3Qgd29ya2luZy4gIFNvbWUgdmFyaWFibGVz IChsaWtlIGVuYWJsZV9zaGFyZWQpCisrIyBhcmUgY3VycmVudGx5IGFzc3VtZWQgdG8gYXBwbHkg dG8gYWxsIGNvbXBpbGVycyBvbiB0aGlzIHBsYXRmb3JtLAorKyMgYW5kIHdpbGwgYmUgY29ycnVw dGVkIGJ5IHNldHRpbmcgdGhlbSBiYXNlZCBvbiBhIG5vbi13b3JraW5nIGNvbXBpbGVyLgorK2lm IHRlc3QgIiRfbHRfZGlzYWJsZV9GNzciICE9IHllczsgdGhlbgorKyAgIyBDb2RlIHRvIGJlIHVz ZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKKysgIGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29k ZT0iXAorKyAgICAgIHN1YnJvdXRpbmUgdAorKyAgICAgIHJldHVybgorKyAgICAgIGVuZAorKyIK KysKKysgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisrICBsdF9zaW1w bGVfbGlua190ZXN0X2NvZGU9IlwKKysgICAgICBwcm9ncmFtIHQKKysgICAgICBlbmQKKysiCisr CisrICAjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28g bWFrZSBzdXJlICRDQyBpcyBzZXQuCisrICBfTFRfVEFHX0NPTVBJTEVSCisrCisrICAjIHNhdmUg d2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorKyAgX0xUX0NPTVBJTEVS X0JPSUxFUlBMQVRFCisrICBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrCisrICAjIEFsbG93IEND IHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorKyAgbHRfc2F2ZV9DQz0iJEND IgorKyAgbHRfc2F2ZV9HQ0M9JEdDQworKyAgQ0M9JHtGNzctImY3NyJ9CisrICBjb21waWxlcj0k Q0MKKysgIF9MVF9UQUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKKysgIF9MVF9DQ19CQVNFTkFNRShb JGNvbXBpbGVyXSkKKysgIEdDQz0kRzc3CisrICBpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVu CisrICAgIEFDX01TR19DSEVDS0lORyhbaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFy aWVzXSkKKysgICAgQUNfTVNHX1JFU1VMVChbJGNhbl9idWlsZF9zaGFyZWRdKQorKworKyAgICBB Q19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCisrICAg IHRlc3QgIiRjYW5fYnVpbGRfc2hhcmVkIiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubworKwor KyAgICAjIE9uIEFJWCwgc2hhcmVkIGxpYnJhcmllcyBhbmQgc3RhdGljIGxpYnJhcmllcyB1c2Ug dGhlIHNhbWUgbmFtZXNwYWNlLCBhbmQKKysgICAgIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgor KyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgYWl4MyopCisrICAgICAgICB0ZXN0ICIkZW5h YmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubworKyAgICAgICAgaWYgdGVzdCAt biAiJFJBTkxJQiI7IHRoZW4KKysgICAgICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRz flwkUkFOTElCIFwkbGliIgorKyAgICAgICAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFOTElCICRs aWInCisrICAgICAgICBmaQorKyAgICAgICAgOzsKKysgICAgICBhaXhbWzQtOV1dKikKKysJaWYg dGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5n IiA9IG5vIDsgdGhlbgorKwkgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVf c3RhdGljPW5vCisrCWZpCisrICAgICAgICA7OworKyAgICBlc2FjCisrICAgIEFDX01TR19SRVNV TFQoWyRlbmFibGVfc2hhcmVkXSkKKysKKysgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRv IGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXNdKQorKyAgICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxl X3NoYXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHllcy4KKysgICAgdGVzdCAiJGVuYWJsZV9zaGFy ZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCisrICAgIEFDX01TR19SRVNVTFQoWyRlbmFi bGVfc3RhdGljXSkKKysKKysgICAgX0xUX1RBR1ZBUihHQ0MsICQxKT0iJEc3NyIKKysgICAgX0xU X1RBR1ZBUihMRCwgJDEpPSIkTEQiCisrCisrICAgICMjIENBVkVBVCBFTVBUT1I6CisrICAgICMj IFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBk byBub3QgY2hhbmdlCisrICAgICMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3Zl IHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5CisrICAgICMjIHdoYXQgeW91IGFy ZSBkb2luZy4uLgorKyAgICBfTFRfQ09NUElMRVJfUElDKCQxKQorKyAgICBfTFRfQ09NUElMRVJf Q19PKCQxKQorKyAgICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygkMSkKKysgICAgX0xUX0xJTktF Ul9TSExJQlMoJDEpCisrICAgIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCisrICAgIF9MVF9M SU5LRVJfSEFSRENPREVfTElCUEFUSCgkMSkKKysKKysgICAgX0xUX0NPTkZJRygkMSkKKysgIGZp ICMgdGVzdCAtbiAiJGNvbXBpbGVyIgorKworKyAgR0NDPSRsdF9zYXZlX0dDQworKyAgQ0M9IiRs dF9zYXZlX0NDIgorK2ZpICMgdGVzdCAiJF9sdF9kaXNhYmxlX0Y3NyIgIT0geWVzCisrCisrQUNf TEFOR19QT1AKKytdKSMgX0xUX0xBTkdfRjc3X0NPTkZJRworKworKworKyMgX0xUX0xBTkdfRkNf Q09ORklHKFtUQUddKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRW5zdXJlIHRo YXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEZvcnRyYW4gY29tcGlsZXIgYXJl CisrIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkg dXNlZCBieSBfTFRfQ09ORklHCisrIyB0byB3cml0ZSB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlv biB0byBgbGlidG9vbCcuCisrbTRfZGVmdW4oW19MVF9MQU5HX0ZDX0NPTkZJR10sCisrW0FDX0xB TkdfUFVTSChGb3J0cmFuKQorKworK2lmIHRlc3QgLXogIiRGQyIgfHwgdGVzdCAiWCRGQyIgPSAi WG5vIjsgdGhlbgorKyAgX2x0X2Rpc2FibGVfRkM9eWVzCisrZmkKKysKKytfTFRfVEFHVkFSKGFy Y2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKytfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9m bGFnLCAkMSk9CisrX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubworK19M VF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPQorK19MVF9UQUdWQVIoZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1u bworK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9bm8KKytfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KKytfTFRfVEFHVkFSKGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3IsICQxKT0KKytfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT1ubworK19M VF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSk9bm8KKytfTFRfVEFHVkFSKGluaGVyaXRf cnBhdGgsICQxKT1ubworK19MVF9UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0KKytfTFRfVEFHVkFS KG1vZHVsZV9leHBzeW1fY21kcywgJDEpPQorK19MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywg JDEpPXVua25vd24KKytfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0kb2xkX2FyY2hp dmVfY21kcworK19MVF9UQUdWQVIocmVsb2FkX2ZsYWcsICQxKT0kcmVsb2FkX2ZsYWcKKytfTFRf VEFHVkFSKHJlbG9hZF9jbWRzLCAkMSk9JHJlbG9hZF9jbWRzCisrX0xUX1RBR1ZBUihub191bmRl ZmluZWRfZmxhZywgJDEpPQorK19MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQx KT0KKytfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1u bworKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBmYyB0ZXN0IHNvdXJjZXMuCisrYWNf ZXh0PSR7YWNfZmNfc3JjZXh0LWZ9CisrCisrIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNv bXBpbGVkIGZjIHRlc3Qgc291cmNlcy4KKytvYmpleHQ9bworK19MVF9UQUdWQVIob2JqZXh0LCAk MSk9JG9iamV4dAorKworKyMgTm8gc2Vuc2UgaW4gcnVubmluZyBhbGwgdGhlc2UgdGVzdHMgaWYg d2UgYWxyZWFkeSBkZXRlcm1pbmVkIHRoYXQKKysjIHRoZSBGQyBjb21waWxlciBpc24ndCB3b3Jr aW5nLiAgU29tZSB2YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJlZCkKKysjIGFyZSBjdXJyZW50 bHkgYXNzdW1lZCB0byBhcHBseSB0byBhbGwgY29tcGlsZXJzIG9uIHRoaXMgcGxhdGZvcm0sCisr IyBhbmQgd2lsbCBiZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2VkIG9uIGEgbm9uLXdv cmtpbmcgY29tcGlsZXIuCisraWYgdGVzdCAiJF9sdF9kaXNhYmxlX0ZDIiAhPSB5ZXM7IHRoZW4K KysgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCisrICBsdF9zaW1w bGVfY29tcGlsZV90ZXN0X2NvZGU9IlwKKysgICAgICBzdWJyb3V0aW5lIHQKKysgICAgICByZXR1 cm4KKysgICAgICBlbmQKKysiCisrCisrICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGlu ayB0ZXN0cworKyAgbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSJcCisrICAgICAgcHJvZ3JhbSB0 CisrICAgICAgZW5kCisrIgorKworKyAgIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2Vk IGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgorKyAgX0xUX1RBR19DT01Q SUxFUgorKworKyAgIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNv ZGUKKysgIF9MVF9DT01QSUxFUl9CT0lMRVJQTEFURQorKyAgX0xUX0xJTktFUl9CT0lMRVJQTEFU RQorKworKyAgIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4K KysgIGx0X3NhdmVfQ0M9IiRDQyIKKysgIGx0X3NhdmVfR0NDPSRHQ0MKKysgIENDPSR7RkMtImY5 NSJ9CisrICBjb21waWxlcj0kQ0MKKysgIEdDQz0kYWNfY3ZfZmNfY29tcGlsZXJfZ251CisrCisr ICBfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCisrICBfTFRfQ0NfQkFTRU5BTUUoWyRjb21w aWxlcl0pCisrCisrICBpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCisrICAgIEFDX01TR19D SEVDS0lORyhbaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKKysgICAgQUNf TVNHX1JFU1VMVChbJGNhbl9idWlsZF9zaGFyZWRdKQorKworKyAgICBBQ19NU0dfQ0hFQ0tJTkco W3doZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCisrICAgIHRlc3QgIiRjYW5fYnVp bGRfc2hhcmVkIiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubworKworKyAgICAjIE9uIEFJWCwg c2hhcmVkIGxpYnJhcmllcyBhbmQgc3RhdGljIGxpYnJhcmllcyB1c2UgdGhlIHNhbWUgbmFtZXNw YWNlLCBhbmQKKysgICAgIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgorKyAgICBjYXNlICRob3N0 X29zIGluCisrICAgICAgYWl4MyopCisrICAgICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5 ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubworKyAgICAgICAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRo ZW4KKysgICAgICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGli IgorKyAgICAgICAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFOTElCICRsaWInCisrICAgICAgICBm aQorKyAgICAgICAgOzsKKysgICAgICBhaXhbWzQtOV1dKikKKysJaWYgdGVzdCAiJGhvc3RfY3B1 IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgor KwkgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisrCWZp CisrICAgICAgICA7OworKyAgICBlc2FjCisrICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc2hh cmVkXSkKKysKKysgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBs aWJyYXJpZXNdKQorKyAgICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3NoYXJlZCBvciBlbmFi bGVfc3RhdGljIGlzIHllcy4KKysgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVu YWJsZV9zdGF0aWM9eWVzCisrICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc3RhdGljXSkKKysK KysgICAgX0xUX1RBR1ZBUihHQ0MsICQxKT0iJGFjX2N2X2ZjX2NvbXBpbGVyX2dudSIKKysgICAg X0xUX1RBR1ZBUihMRCwgJDEpPSIkTEQiCisrCisrICAgICMjIENBVkVBVCBFTVBUT1I6CisrICAg ICMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9z LCBkbyBub3QgY2hhbmdlCisrICAgICMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBt b3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5CisrICAgICMjIHdoYXQgeW91 IGFyZSBkb2luZy4uLgorKyAgICBfTFRfU1lTX0hJRERFTl9MSUJERVBTKCQxKQorKyAgICBfTFRf Q09NUElMRVJfUElDKCQxKQorKyAgICBfTFRfQ09NUElMRVJfQ19PKCQxKQorKyAgICBfTFRfQ09N UElMRVJfRklMRV9MT0NLUygkMSkKKysgICAgX0xUX0xJTktFUl9TSExJQlMoJDEpCisrICAgIF9M VF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCisrICAgIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFU SCgkMSkKKysKKysgICAgX0xUX0NPTkZJRygkMSkKKysgIGZpICMgdGVzdCAtbiAiJGNvbXBpbGVy IgorKworKyAgR0NDPSRsdF9zYXZlX0dDQworKyAgQ0M9IiRsdF9zYXZlX0NDIgorK2ZpICMgdGVz dCAiJF9sdF9kaXNhYmxlX0ZDIiAhPSB5ZXMKKysKKytBQ19MQU5HX1BPUAorK10pIyBfTFRfTEFO R19GQ19DT05GSUcKKysKKysKKysjIF9MVF9MQU5HX0dDSl9DT05GSUcoW1RBR10pCisrIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24g dmFyaWFibGVzIGZvciB0aGUgR05VIEphdmEgQ29tcGlsZXIgY29tcGlsZXIKKysjIGFyZSBzdWl0 YWJseSBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBf TFRfQ09ORklHCisrIyB0byB3cml0ZSB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGli dG9vbCcuCisrbTRfZGVmdW4oW19MVF9MQU5HX0dDSl9DT05GSUddLAorK1tBQ19SRVFVSVJFKFtM VF9QUk9HX0dDSl0pZG5sCisrQUNfTEFOR19TQVZFCisrCisrIyBTb3VyY2UgZmlsZSBleHRlbnNp b24gZm9yIEphdmEgdGVzdCBzb3VyY2VzLgorK2FjX2V4dD1qYXZhCisrCisrIyBPYmplY3QgZmls ZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEphdmEgdGVzdCBzb3VyY2VzLgorK29iamV4dD1vCisr X0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0CisrCisrIyBDb2RlIHRvIGJlIHVzZWQgaW4g c2ltcGxlIGNvbXBpbGUgdGVzdHMKKytsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9ImNsYXNz IGZvbyB7fSIKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworK2x0 X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0ncHVibGljIGNsYXNzIGNvbmZ0ZXN0IHsgcHVibGljIHN0 YXRpYyB2b2lkIG1haW4oU3RyaW5nW1tdXSBhcmd2KSB7fTsgfScKKysKKysjIGx0bWFpbiBvbmx5 IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBz ZXQuCisrX0xUX1RBR19DT01QSUxFUgorKworKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBv ZiBzaW1wbGUgdGVzdCBjb2RlCisrX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCisrX0xUX0xJTktF Ul9CT0lMRVJQTEFURQorKworKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmd1bWVudHMuCisrbHRfc2F2ZV9DQz0iJENDIgorK2x0X3NhdmVfR0NDPSRHQ0MKKytHQ0M9eWVz CisrQ0M9JHtHQ0otImdjaiJ9CisrY29tcGlsZXI9JENDCisrX0xUX1RBR1ZBUihjb21waWxlciwg JDEpPSRDQworK19MVF9UQUdWQVIoTEQsICQxKT0iJExEIgorK19MVF9DQ19CQVNFTkFNRShbJGNv bXBpbGVyXSkKKysKKysjIEdDSiBkaWQgbm90IGV4aXN0IGF0IHRoZSB0aW1lIEdDQyBkaWRuJ3Qg aW1wbGljaXRseSBsaW5rIGxpYmMgaW4uCisrX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9s YywgJDEpPW5vCisrCisrX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNo aXZlX2NtZHMKKytfTFRfVEFHVkFSKHJlbG9hZF9mbGFnLCAkMSk9JHJlbG9hZF9mbGFnCisrX0xU X1RBR1ZBUihyZWxvYWRfY21kcywgJDEpPSRyZWxvYWRfY21kcworKworKyMjIENBVkVBVCBFTVBU T1I6CisrIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBt YWNyb3MsIGRvIG5vdCBjaGFuZ2UKKysjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2Ug bW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQorKyMjIHdoYXQgeW91IGFy ZSBkb2luZy4uLgorK2lmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KKysgIF9MVF9DT01QSUxF Ul9OT19SVFRJKCQxKQorKyAgX0xUX0NPTVBJTEVSX1BJQygkMSkKKysgIF9MVF9DT01QSUxFUl9D X08oJDEpCisrICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygkMSkKKysgIF9MVF9MSU5LRVJfU0hM SUJTKCQxKQorKyAgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKCQxKQorKworKyAgX0xUX0NP TkZJRygkMSkKKytmaQorKworK0FDX0xBTkdfUkVTVE9SRQorKworK0dDQz0kbHRfc2F2ZV9HQ0MK KytDQz0iJGx0X3NhdmVfQ0MiCisrXSkjIF9MVF9MQU5HX0dDSl9DT05GSUcKKysKKysKKysjIF9M VF9MQU5HX1JDX0NPTkZJRyhbVEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysj IEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgdGhlIFdpbmRvd3Mg cmVzb3VyY2UgY29tcGlsZXIKKysjIGFyZSBzdWl0YWJseSBkZWZpbmVkLiAgVGhlc2UgdmFyaWFi bGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHCisrIyB0byB3cml0ZSB0aGUg Y29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCisrbTRfZGVmdW4oW19MVF9MQU5H X1JDX0NPTkZJR10sCisrW0FDX1JFUVVJUkUoW0xUX1BST0dfUkNdKWRubAorK0FDX0xBTkdfU0FW RQorKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBSQyB0ZXN0IHNvdXJjZXMuCisrYWNf ZXh0PXJjCisrCisrIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIFJDIHRlc3Qg c291cmNlcy4KKytvYmpleHQ9bworK19MVF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAorKwor KyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCisrbHRfc2ltcGxlX2Nv bXBpbGVfdGVzdF9jb2RlPSdzYW1wbGUgTUVOVSB7IE1FTlVJVEVNICImU291cCIsIDEwMCwgQ0hF Q0tFRCB9JworKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisrbHRf c2ltcGxlX2xpbmtfdGVzdF9jb2RlPSIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIgorKwor KyMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtl IHN1cmUgJENDIGlzIHNldC4KKytfTFRfVEFHX0NPTVBJTEVSCisrCisrIyBzYXZlIHdhcm5pbmdz L2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKKytfTFRfQ09NUElMRVJfQk9JTEVSUExB VEUKKytfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrCisrIyBBbGxvdyBDQyB0byBiZSBhIHByb2dy YW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytsdF9zYXZlX0NDPSIkQ0MiCisrbHRfc2F2ZV9HQ0M9 JEdDQworK0dDQz0KKytDQz0ke1JDLSJ3aW5kcmVzIn0KKytjb21waWxlcj0kQ0MKKytfTFRfVEFH VkFSKGNvbXBpbGVyLCAkMSk9JENDCisrX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQorK19M VF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKT15ZXMKKysKKytpZiB0ZXN0IC1u ICIkY29tcGlsZXIiOyB0aGVuCisrICA6CisrICBfTFRfQ09ORklHKCQxKQorK2ZpCisrCisrR0ND PSRsdF9zYXZlX0dDQworK0FDX0xBTkdfUkVTVE9SRQorK0NDPSIkbHRfc2F2ZV9DQyIKKytdKSMg X0xUX0xBTkdfUkNfQ09ORklHCisrCisrCisrIyBMVF9QUk9HX0dDSgorKyMgLS0tLS0tLS0tLS0K KytBQ19ERUZVTihbTFRfUFJPR19HQ0pdLAorK1ttNF9pZmRlZihbQUNfUFJPR19HQ0pdLCBbQUNf UFJPR19HQ0pdLAorKyAgW200X2lmZGVmKFtBXVtNX1BST0dfR0NKXSwgW0FdW01fUFJPR19HQ0pd LAorKyAgICBbQUNfQ0hFQ0tfVE9PTChHQ0osIGdjaiwpCisrICAgICAgdGVzdCAieCR7R0NKRkxB R1Mrc2V0fSIgPSB4c2V0IHx8IEdDSkZMQUdTPSItZyAtTzIiCisrICAgICAgQUNfU1VCU1QoR0NK RkxBR1MpXSldKVtdZG5sCisrXSkKKysKKysjIE9sZCBuYW1lOgorK0FVX0FMSUFTKFtMVF9BQ19Q Uk9HX0dDSl0sIFtMVF9QUk9HX0dDSl0pCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21w YXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbTFRfQUNfUFJPR19HQ0pdLCBbXSkKKysKKysKKysj IExUX1BST0dfUkMKKysjIC0tLS0tLS0tLS0KKytBQ19ERUZVTihbTFRfUFJPR19SQ10sCisrW0FD X0NIRUNLX1RPT0woUkMsIHdpbmRyZXMsKQorK10pCisrCisrIyBPbGQgbmFtZToKKytBVV9BTElB UyhbTFRfQUNfUFJPR19SQ10sIFtMVF9QUk9HX1JDXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dh cmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtMVF9BQ19QUk9HX1JDXSwgW10pCisr CisrCisrIyBfTFRfREVDTF9FR1JFUAorKyMgLS0tLS0tLS0tLS0tLS0KKysjIElmIHdlIGRvbid0 IGhhdmUgYSBuZXcgZW5vdWdoIEF1dG9jb25mIHRvIGNob29zZSB0aGUgYmVzdCBncmVwCisrIyBh dmFpbGFibGUsIGNob29zZSB0aGUgb25lIGZpcnN0IGluIHRoZSB1c2VyJ3MgUEFUSC4KKyttNF9k ZWZ1bihbX0xUX0RFQ0xfRUdSRVBdLAorK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0VHUkVQXSlkbmwK KytBQ19SRVFVSVJFKFtBQ19QUk9HX0ZHUkVQXSlkbmwKKyt0ZXN0IC16ICIkR1JFUCIgJiYgR1JF UD1ncmVwCisrX0xUX0RFQ0woW10sIFtHUkVQXSwgWzFdLCBbQSBncmVwIHByb2dyYW0gdGhhdCBo YW5kbGVzIGxvbmcgbGluZXNdKQorK19MVF9ERUNMKFtdLCBbRUdSRVBdLCBbMV0sIFtBbiBFUkUg bWF0Y2hlcl0pCisrX0xUX0RFQ0woW10sIFtGR1JFUF0sIFsxXSwgW0EgbGl0ZXJhbCBzdHJpbmcg bWF0Y2hlcl0pCisrZG5sIE5vbi1ibGVlZGluZy1lZGdlIGF1dG9jb25mIGRvZXNuJ3Qgc3Vic3Qg R1JFUCwgc28gZG8gaXQgaGVyZSB0b28KKytBQ19TVUJTVChbR1JFUF0pCisrXSkKKysKKysKKysj IF9MVF9ERUNMX09CSkRVTVAKKysjIC0tLS0tLS0tLS0tLS0tCisrIyBJZiB3ZSBkb24ndCBoYXZl IGEgbmV3IGVub3VnaCBBdXRvY29uZiB0byBjaG9vc2UgdGhlIGJlc3Qgb2JqZHVtcAorKyMgYXZh aWxhYmxlLCBjaG9vc2UgdGhlIG9uZSBmaXJzdCBpbiB0aGUgdXNlcidzIFBBVEguCisrbTRfZGVm dW4oW19MVF9ERUNMX09CSkRVTVBdLAorK1tBQ19DSEVDS19UT09MKE9CSkRVTVAsIG9iamR1bXAs IGZhbHNlKQorK3Rlc3QgLXogIiRPQkpEVU1QIiAmJiBPQkpEVU1QPW9iamR1bXAKKytfTFRfREVD TChbXSwgW09CSkRVTVBdLCBbMV0sIFtBbiBvYmplY3Qgc3ltYm9sIGR1bXBlcl0pCisrQUNfU1VC U1QoW09CSkRVTVBdKQorK10pCisrCisrCisrIyBfTFRfREVDTF9TRUQKKysjIC0tLS0tLS0tLS0t LQorKyMgQ2hlY2sgZm9yIGEgZnVsbHktZnVuY3Rpb25hbCBzZWQgcHJvZ3JhbSwgdGhhdCB0cnVu Y2F0ZXMKKysjIGFzIGZldyBjaGFyYWN0ZXJzIGFzIHBvc3NpYmxlLiAgUHJlZmVyIEdOVSBzZWQg aWYgZm91bmQuCisrbTRfZGVmdW4oW19MVF9ERUNMX1NFRF0sCisrW0FDX1BST0dfU0VECisrdGVz dCAteiAiJFNFRCIgJiYgU0VEPXNlZAorK1hzZWQ9IiRTRUQgLWUgMXMvXlgvLyIKKytfTFRfREVD TChbXSwgW1NFRF0sIFsxXSwgW0Egc2VkIHByb2dyYW0gdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBv dXRwdXRdKQorK19MVF9ERUNMKFtdLCBbWHNlZF0sIFsiXCRTRUQgLWUgMXMvXlgvLyJdLAorKyAg ICBbU2VkIHRoYXQgaGVscHMgdXMgYXZvaWQgYWNjaWRlbnRhbGx5IHRyaWdnZXJpbmcgZWNobygx KSBvcHRpb25zIGxpa2UgLW5dKQorK10pIyBfTFRfREVDTF9TRUQKKysKKyttNF9pZm5kZWYoW0FD X1BST0dfU0VEXSwgWworKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworKyMgTk9URTogVGhpcyBtYWNybyBoYXMgYmVlbiBzdWJtaXR0 ZWQgZm9yIGluY2x1c2lvbiBpbnRvICAgIworKyMgIEdOVSBBdXRvY29uZiBhcyBBQ19QUk9HX1NF RC4gIFdoZW4gaXQgaXMgYXZhaWxhYmxlIGluICAgIworKyMgIGEgcmVsZWFzZWQgdmVyc2lvbiBv ZiBBdXRvY29uZiB3ZSBzaG91bGQgcmVtb3ZlIHRoaXMgICAgIworKyMgIG1hY3JvIGFuZCB1c2Ug aXQgaW5zdGVhZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKworK200 X2RlZnVuKFtBQ19QUk9HX1NFRF0sCisrW0FDX01TR19DSEVDS0lORyhbZm9yIGEgc2VkIHRoYXQg ZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0XSkKKytBQ19DQUNIRV9WQUwobHRfY3ZfcGF0aF9TRUQs CisrWyMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3Igc2VkIGFuZCBn c2VkLgorKyMgVGhlbiB1c2UgdGhhdCBsaXN0IG9mIHNlZCdzIGFzIG9uZXMgdG8gdGVzdCBmb3Ig dHJ1bmNhdGlvbi4KKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9y IGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIk YXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGx0X2FjX3Byb2cgaW4gc2VkIGdzZWQ7IGRvCisr ICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwor KyAgICAgIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGx0X2FjX3Byb2ckYWNfZXhlY19l eHQiOyB0aGVuCisrICAgICAgICBsdF9hY19zZWRfbGlzdD0iJGx0X2FjX3NlZF9saXN0ICRhc19k aXIvJGx0X2FjX3Byb2ckYWNfZXhlY19leHQiCisrICAgICAgZmkKKysgICAgZG9uZQorKyAgZG9u ZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrbHRfYWNfbWF4PTAKKytsdF9hY19jb3VudD0w CisrIyBBZGQgL3Vzci94cGc0L2Jpbi9zZWQgYXMgaXQgaXMgdHlwaWNhbGx5IGZvdW5kIG9uIFNv bGFyaXMKKysjIGFsb25nIHdpdGggL2Jpbi9zZWQgdGhhdCB0cnVuY2F0ZXMgb3V0cHV0LgorK2Zv ciBsdF9hY19zZWQgaW4gJGx0X2FjX3NlZF9saXN0IC91c3IveHBnNC9iaW4vc2VkOyBkbworKyAg dGVzdCAhIC1mICRsdF9hY19zZWQgJiYgY29udGludWUKKysgIGNhdCAvZGV2L251bGwgPiBjb25m dGVzdC5pbgorKyAgbHRfYWNfY291bnQ9MAorKyAgZWNobyAkRUNIT19OICIwMTIzNDU2Nzg5JEVD SE9fQyIgPmNvbmZ0ZXN0LmluCisrICAjIENoZWNrIGZvciBHTlUgc2VkIGFuZCBzZWxlY3QgaXQg aWYgaXQgaXMgZm91bmQuCisrICBpZiAiJGx0X2FjX3NlZCIgLS12ZXJzaW9uIDI+JjEgPCAvZGV2 L251bGwgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCisrICAgIGx0X2N2X3BhdGhfU0VE PSRsdF9hY19zZWQKKysgICAgYnJlYWsKKysgIGZpCisrICB3aGlsZSB0cnVlOyBkbworKyAgICBj YXQgY29uZnRlc3QuaW4gY29uZnRlc3QuaW4gPmNvbmZ0ZXN0LnRtcAorKyAgICBtdiBjb25mdGVz dC50bXAgY29uZnRlc3QuaW4KKysgICAgY3AgY29uZnRlc3QuaW4gY29uZnRlc3QubmwKKysgICAg ZWNobyA+PmNvbmZ0ZXN0Lm5sCisrICAgICRsdF9hY19zZWQgLWUgJ3MvYSQvLycgPCBjb25mdGVz dC5ubCA+Y29uZnRlc3Qub3V0IHx8IGJyZWFrCisrICAgIGNtcCAtcyBjb25mdGVzdC5vdXQgY29u ZnRlc3QubmwgfHwgYnJlYWsKKysgICAgIyAxMDAwMCBjaGFycyBhcyBpbnB1dCBzZWVtcyBtb3Jl IHRoYW4gZW5vdWdoCisrICAgIHRlc3QgJGx0X2FjX2NvdW50IC1ndCAxMCAmJiBicmVhaworKyAg ICBsdF9hY19jb3VudD1gZXhwciAkbHRfYWNfY291bnQgKyAxYAorKyAgICBpZiB0ZXN0ICRsdF9h Y19jb3VudCAtZ3QgJGx0X2FjX21heDsgdGhlbgorKyAgICAgIGx0X2FjX21heD0kbHRfYWNfY291 bnQKKysgICAgICBsdF9jdl9wYXRoX1NFRD0kbHRfYWNfc2VkCisrICAgIGZpCisrICBkb25lCisr ZG9uZQorK10pCisrU0VEPSRsdF9jdl9wYXRoX1NFRAorK0FDX1NVQlNUKFtTRURdKQorK0FDX01T R19SRVNVTFQoWyRTRURdKQorK10pI0FDX1BST0dfU0VECisrXSkjbTRfaWZuZGVmCisrCisrIyBP bGQgbmFtZToKKytBVV9BTElBUyhbTFRfQUNfUFJPR19TRURdLCBbQUNfUFJPR19TRURdKQorK2Ru bCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW0xU X0FDX1BST0dfU0VEXSwgW10pCisrCisrCisrIyBfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVMKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRmluZCBvdXQgd2hldGhlciB0aGUgc2hlbGwg aXMgQm91cm5lIG9yIFhTSSBjb21wYXRpYmxlLAorKyMgb3IgaGFzIHNvbWUgb3RoZXIgdXNlZnVs IGZlYXR1cmVzLgorK200X2RlZnVuKFtfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVNdLAorK1tBQ19N U0dfQ0hFQ0tJTkcoW3doZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIHNvbWUgWFNJIGNvbnN0 cnVjdHNdKQorKyMgVHJ5IHNvbWUgWFNJIGZlYXR1cmVzCisreHNpX3NoZWxsPW5vCisrKCBfbHRf ZHVtbXk9ImEvYi9jIgorKyAgdGVzdCAiJHtfbHRfZHVtbXkjIyovfSwke19sdF9kdW1teSUvKn0s IiR7X2x0X2R1bW15JSIkX2x0X2R1bW15In0sIFwKKysgICAgICA9IGMsYS9iLCwgXAorKyAgICAm JiBldmFsICd0ZXN0ICQoKCAxICsgMSApKSAtZXEgMiBcCisrICAgICYmIHRlc3QgIiR7I19sdF9k dW1teX0iIC1lcSA1JyApID4vZGV2L251bGwgMj4mMSBcCisrICAmJiB4c2lfc2hlbGw9eWVzCisr QUNfTVNHX1JFU1VMVChbJHhzaV9zaGVsbF0pCisrX0xUX0NPTkZJR19MSUJUT09MX0lOSVQoW3hz aV9zaGVsbD0nJHhzaV9zaGVsbCddKQorKworK0FDX01TR19DSEVDS0lORyhbd2hldGhlciB0aGUg c2hlbGwgdW5kZXJzdGFuZHMgIis9Il0pCisrbHRfc2hlbGxfYXBwZW5kPW5vCisrKCBmb289YmFy OyBzZXQgZm9vIGJhejsgZXZhbCAiJFsxXSs9XCRbMl0iICYmIHRlc3QgIiRmb28iID0gYmFyYmF6 ICkgXAorKyAgICA+L2Rldi9udWxsIDI+JjEgXAorKyAgJiYgbHRfc2hlbGxfYXBwZW5kPXllcwor K0FDX01TR19SRVNVTFQoWyRsdF9zaGVsbF9hcHBlbmRdKQorK19MVF9DT05GSUdfTElCVE9PTF9J TklUKFtsdF9zaGVsbF9hcHBlbmQ9JyRsdF9zaGVsbF9hcHBlbmQnXSkKKysKKytpZiAoIChNQUlM PTYwOyB1bnNldCBNQUlMKSB8fCBleGl0KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGx0X3Vu c2V0PXVuc2V0CisrZWxzZQorKyAgbHRfdW5zZXQ9ZmFsc2UKKytmaQorK19MVF9ERUNMKFtdLCBb bHRfdW5zZXRdLCBbMF0sIFt3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyAidW5zZXQiXSlk bmwKKysKKysjIHRlc3QgRUJDRElDIG9yIEFTQ0lJCisrY2FzZSBgZWNobyBYfHRyIFggJ1wxMDEn YCBpbgorKyBBKSAjIEFTQ0lJIGJhc2VkIHN5c3RlbQorKyAgICAjIFxuIGlzIG5vdCBpbnRlcnBy ZXRlZCBjb3JyZWN0bHkgYnkgU29sYXJpcyA4IC91c3IvdWNiL3RyCisrICBsdF9TUDJOTD0ndHIg XDA0MCBcMDEyJworKyAgbHRfTkwyU1A9J3RyIFwwMTVcMDEyIFwwNDBcMDQwJworKyAgOzsKKysg KikgIyBFQkNESUMgYmFzZWQgc3lzdGVtCisrICBsdF9TUDJOTD0ndHIgXDEwMCBcbicKKysgIGx0 X05MMlNQPSd0ciBcclxuIFwxMDBcMTAwJworKyAgOzsKKytlc2FjCisrX0xUX0RFQ0woW1NQMk5M XSwgW2x0X1NQMk5MXSwgWzFdLCBbdHVybiBzcGFjZXMgaW50byBuZXdsaW5lc10pZG5sCisrX0xU X0RFQ0woW05MMlNQXSwgW2x0X05MMlNQXSwgWzFdLCBbdHVybiBuZXdsaW5lcyBpbnRvIHNwYWNl c10pZG5sCisrXSkjIF9MVF9DSEVDS19TSEVMTF9GRUFUVVJFUworKworKworKyMgX0xUX1BST0df WFNJX1NIRUxMRk5TCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEJvdXJuZSBhbmQgWFNJ IGNvbXBhdGlibGUgdmFyaWFudHMgb2Ygc29tZSB1c2VmdWwgc2hlbGwgZnVuY3Rpb25zLgorK200 X2RlZnVuKFtfTFRfUFJPR19YU0lfU0hFTExGTlNdLAorK1tjYXNlICR4c2lfc2hlbGwgaW4KKysg IHllcykKKysgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysKKysjIGZ1bmNfZGly bmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKKysjIENvbXB1dGUgdGhlIGRpcm5h bWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsCisrIyBv dGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFDRU1FTlQuCisrZnVuY19kaXJuYW1l ICgpCisreworKyAgY2FzZSAkezF9IGluCisrICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0i JHsxJS8qfSR7Mn0iIDs7CisrICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsK KysgIGVzYWMKKyt9CisrCisrIyBmdW5jX2Jhc2VuYW1lIGZpbGUKKytmdW5jX2Jhc2VuYW1lICgp CisreworKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9IiR7MSMjKi99IgorK30KKysKKysjIGZ1bmNf ZGlybmFtZV9hbmRfYmFzZW5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50CisrIyBw ZXJmb3JtIGZ1bmNfYmFzZW5hbWUgYW5kIGZ1bmNfZGlybmFtZSBpbiBhIHNpbmdsZSBmdW5jdGlv bgorKyMgY2FsbDoKKysjICAgZGlybmFtZTogIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4g IElmIG5vbmVtcHR5LAorKyMgICAgICAgICAgICAgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LCBv dGhlcndpc2Ugc2V0IHJlc3VsdAorKyMgICAgICAgICAgICAgdG8gTk9ORElSX1JFUExBQ0VNRU5U LgorKyMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX2Rpcm5hbWVfcmVzdWx0 IgorKyMgICBiYXNlbmFtZTogQ29tcHV0ZSBmaWxlbmFtZSBvZiBGSUxFLgorKyMgICAgICAgICAg ICAgdmFsdWUgcmV0dW5lZCBpbiAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKyMgSW1wbGVtZW50 YXRpb24gbXVzdCBiZSBrZXB0IHN5bmNocm9uaXplZCB3aXRoIGZ1bmNfZGlybmFtZQorKyMgYW5k IGZ1bmNfYmFzZW5hbWUuIEZvciBlZmZpY2llbmN5LCB3ZSBkbyBub3QgZGVsZWdhdGUgdG8KKysj IHRob3NlIGZ1bmN0aW9ucyBidXQgaW5zdGVhZCBkdXBsaWNhdGUgdGhlIGZ1bmN0aW9uYWxpdHkg aGVyZS4KKytmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgpCisreworKyAgY2FzZSAkezF9IGlu CisrICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7CisrICAgICog ICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKKysgIGVzYWMKKysgIGZ1bmNfYmFzZW5h bWVfcmVzdWx0PSIkezEjIyovfSIKKyt9CisrCisrIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXggc3Vm Zml4IG5hbWUKKysjIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgorKyMgUFJF RklYIGFuZCBTVUZGSVggbXVzdCBub3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVjaWFs CisrIyBjaGFyYWN0ZXJzLCBoYXNoZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNv bnRhaW4gYSBsZWFkaW5nCisrIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkg YSBkb3QpLgorK2Z1bmNfc3RyaXBuYW1lICgpCisreworKyAgIyBwZGtzaCA1LjIuMTQgZG9lcyBu b3QgZG8gJHtYJSRZfSBjb3JyZWN0bHkgaWYgYm90aCBYIGFuZCBZIGFyZQorKyAgIyBwb3NpdGlv bmFsIHBhcmFtZXRlcnMsIHNvIGFzc2lnbiBvbmUgdG8gb3JkaW5hcnkgcGFyYW1ldGVyIGZpcnN0 LgorKyAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7M30KKysgIGZ1bmNfc3RyaXBuYW1lX3Jlc3Vs dD0ke2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdCMiJHsxfSJ9CisrICBmdW5jX3N0cmlwbmFtZV9yZXN1 bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQlIiR7Mn0ifQorK30KKysKKysjIGZ1bmNfb3B0X3Nw bGl0CisrZnVuY19vcHRfc3BsaXQgKCkKKyt7CisrICBmdW5jX29wdF9zcGxpdF9vcHQ9JHsxJSU9 Kn0KKysgIGZ1bmNfb3B0X3NwbGl0X2FyZz0kezEjKj19CisrfQorKworKyMgZnVuY19sbzJvIG9i amVjdAorK2Z1bmNfbG8ybyAoKQorK3sKKysgIGNhc2UgJHsxfSBpbgorKyAgICAqLmxvKSBmdW5j X2xvMm9fcmVzdWx0PSR7MSUubG99LiR7b2JqZXh0fSA7OworKyAgICAqKSAgICBmdW5jX2xvMm9f cmVzdWx0PSR7MX0gOzsKKysgIGVzYWMKKyt9CisrCisrIyBmdW5jX3hmb3JtIGxpYm9iai1vci1z b3VyY2UKKytmdW5jX3hmb3JtICgpCisreworKyAgZnVuY194Zm9ybV9yZXN1bHQ9JHsxJS4qfS5s bworK30KKysKKysjIGZ1bmNfYXJpdGggYXJpdGhtZXRpYy10ZXJtLi4uCisrZnVuY19hcml0aCAo KQorK3sKKysgIGZ1bmNfYXJpdGhfcmVzdWx0PSQoKCAkWypdICkpCisrfQorKworKyMgZnVuY19s ZW4gc3RyaW5nCisrIyBTVFJJTkcgbWF5IG5vdCBzdGFydCB3aXRoIGEgaHlwaGVuLgorK2Z1bmNf bGVuICgpCisreworKyAgZnVuY19sZW5fcmVzdWx0PSR7IzF9CisrfQorKworK19MVF9FT0YKKysg ICAgOzsKKysgICopICMgQm91cm5lIGNvbXBhdGlibGUgZnVuY3Rpb25zLgorKyAgICBjYXQgPDwg XF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorKworKyMgZnVuY19kaXJuYW1lIGZpbGUgYXBwZW5kIG5v bmRpcl9yZXBsYWNlbWVudAorKyMgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9u ZW1wdHksIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwKKysjIG90aGVyd2lzZSBzZXQgcmVzdWx0 IHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KKytmdW5jX2Rpcm5hbWUgKCkKKyt7CisrICAjIEV4dHJh Y3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorKyAgZnVuY19kaXJuYW1lX3Jlc3Vs dD1gJEVDSE8gIiR7MX0iIHwgJFNFRCAiJGRpcm5hbWUiYAorKyAgaWYgdGVzdCAiWCRmdW5jX2Rp cm5hbWVfcmVzdWx0IiA9ICJYJHsxfSI7IHRoZW4KKysgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0i JHszfSIKKysgIGVsc2UKKysgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJGZ1bmNfZGlybmFtZV9y ZXN1bHQkezJ9IgorKyAgZmkKKyt9CisrCisrIyBmdW5jX2Jhc2VuYW1lIGZpbGUKKytmdW5jX2Jh c2VuYW1lICgpCisreworKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9YCRFQ0hPICIkezF9IiB8ICRT RUQgIiRiYXNlbmFtZSJgCisrfQorKworK2RubCBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lCisr ZG5sIEEgcG9ydGFibGUgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIGlzIGFscmVhZHkgZGVmaW5l ZCBpbiBnZW5lcmFsLm00c2gKKytkbmwgc28gdGhlcmUgaXMgbm8gbmVlZCBmb3IgaXQgaGVyZS4K KysKKysjIGZ1bmNfc3RyaXBuYW1lIHByZWZpeCBzdWZmaXggbmFtZQorKyMgc3RyaXAgUFJFRklY IGFuZCBTVUZGSVggb2ZmIG9mIE5BTUUuCisrIyBQUkVGSVggYW5kIFNVRkZJWCBtdXN0IG5vdCBj b250YWluIGdsb2JiaW5nIG9yIHJlZ2V4IHNwZWNpYWwKKysjIGNoYXJhY3RlcnMsIGhhc2hlcywg cGVyY2VudCBzaWducywgYnV0IFNVRkZJWCBtYXkgY29udGFpbiBhIGxlYWRpbmcKKysjIGRvdCAo aW4gd2hpY2ggY2FzZSB0aGF0IG1hdGNoZXMgb25seSBhIGRvdCkuCisrIyBmdW5jX3N0cmlwX3N1 ZmZpeCBwcmVmaXggbmFtZQorK2Z1bmNfc3RyaXBuYW1lICgpCisreworKyAgY2FzZSAkezJ9IGlu CisrICAgIC4qKSBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9YCRFQ0hPICIkezN9IiB8ICRTRUQgInMl XiR7MX0lJTsgcyVcXFxcJHsyfVwkJSUiYDs7CisrICAgICopICBmdW5jX3N0cmlwbmFtZV9yZXN1 bHQ9YCRFQ0hPICIkezN9IiB8ICRTRUQgInMlXiR7MX0lJTsgcyUkezJ9XCQlJSJgOzsKKysgIGVz YWMKKyt9CisrCisrIyBzZWQgc2NyaXB0czoKKytteV9zZWRfbG9uZ19vcHQ9JzFzL15cKC1bW149 XV0qXCk9LiovXDEvO3EnCisrbXlfc2VkX2xvbmdfYXJnPScxcy9eLVtbXj1dXSo9Ly8nCisrCisr IyBmdW5jX29wdF9zcGxpdAorK2Z1bmNfb3B0X3NwbGl0ICgpCisreworKyAgZnVuY19vcHRfc3Bs aXRfb3B0PWAkRUNITyAiJHsxfSIgfCAkU0VEICIkbXlfc2VkX2xvbmdfb3B0ImAKKysgIGZ1bmNf b3B0X3NwbGl0X2FyZz1gJEVDSE8gIiR7MX0iIHwgJFNFRCAiJG15X3NlZF9sb25nX2FyZyJgCisr fQorKworKyMgZnVuY19sbzJvIG9iamVjdAorK2Z1bmNfbG8ybyAoKQorK3sKKysgIGZ1bmNfbG8y b19yZXN1bHQ9YCRFQ0hPICIkezF9IiB8ICRTRUQgIiRsbzJvImAKKyt9CisrCisrIyBmdW5jX3hm b3JtIGxpYm9iai1vci1zb3VyY2UKKytmdW5jX3hmb3JtICgpCisreworKyAgZnVuY194Zm9ybV9y ZXN1bHQ9YCRFQ0hPICIkezF9IiB8ICRTRUQgJ3MvXC5bW14uXV0qJC8ubG8vJ2AKKyt9CisrCisr IyBmdW5jX2FyaXRoIGFyaXRobWV0aWMtdGVybS4uLgorK2Z1bmNfYXJpdGggKCkKKyt7CisrICBm dW5jX2FyaXRoX3Jlc3VsdD1gZXhwciAiJFtAXSJgCisrfQorKworKyMgZnVuY19sZW4gc3RyaW5n CisrIyBTVFJJTkcgbWF5IG5vdCBzdGFydCB3aXRoIGEgaHlwaGVuLgorK2Z1bmNfbGVuICgpCisr eworKyAgZnVuY19sZW5fcmVzdWx0PWBleHByICIkWzFdIiA6ICIuKiIgMj4vZGV2L251bGwgfHwg ZWNobyAkbWF4X2NtZF9sZW5gCisrfQorKworK19MVF9FT0YKKytlc2FjCisrCisrY2FzZSAkbHRf c2hlbGxfYXBwZW5kIGluCisrICB5ZXMpCisrICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2Zp bGUiCisrCisrIyBmdW5jX2FwcGVuZCB2YXIgdmFsdWUKKysjIEFwcGVuZCBWQUxVRSB0byB0aGUg ZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KKytmdW5jX2FwcGVuZCAoKQorK3sKKysgIGV2YWwg IiRbMV0rPVwkWzJdIgorK30KKytfTFRfRU9GCisrICAgIDs7CisrICAqKQorKyAgICBjYXQgPDwg XF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorKworKyMgZnVuY19hcHBlbmQgdmFyIHZhbHVlCisrIyBB cHBlbmQgVkFMVUUgdG8gdGhlIGVuZCBvZiBzaGVsbCB2YXJpYWJsZSBWQVIuCisrZnVuY19hcHBl bmQgKCkKKyt7CisrICBldmFsICIkWzFdPVwkJFsxXVwkWzJdIgorK30KKysKKytfTFRfRU9GCisr ICAgIDs7CisrICBlc2FjCisrXSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcv bHRtYWluLnNoIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHRtYWluLnNoCistLS0gc29jaS0z LjAuMF80LXBhY2svY29uZmlnL2x0bWFpbi5zaAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHRtYWluLnNoCTIwMTEtMDIt MDggMjI6Mzk6NDQuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDg3NDUgQEAKKysjIEdlbmVy YXRlZCBmcm9tIGx0bWFpbi5tNHNoLgorKworKyMgbGlidG9vbCAoR05VIGxpYnRvb2wpIDIuMi4x MAorKyMgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCA8Z29yZEBnbnUuYWkubWl0LmVkdT4s IDE5OTYKKysKKysjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwg MjAwMSwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwKKysjIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIGlzIGZyZWUgc29mdHdhcmU7 IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTworKyMg d2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuCisrCisrIyBHTlUgTGlidG9vbCBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGlj ZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMg QXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Us CisrIyBpZiB5b3UgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gb3Ig bGlicmFyeSB0aGF0CisrIyBpcyBidWlsdCB1c2luZyBHTlUgTGlidG9vbCwgeW91IG1heSBpbmNs dWRlIHRoaXMgZmlsZSB1bmRlciB0aGUKKysjIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQg eW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorKyMKKysjIEdOVSBMaWJ0b29s IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAor KyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZSBHTlUKKysjIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCBHTlUgTGlidG9vbDsgc2VlIHRo ZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIGEgY29weQorKyMgY2FuIGJlIGRvd25sb2FkZWQgZnJv bSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWwsCisrIyBvciBvYnRhaW5lZCBi eSB3cml0aW5nIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCisrIyA1MSBG cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K KysKKysjIFVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gW01PREUtQVJHXS4uLgorKyMKKysj IFByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGlicmFyeS1idWlsZGluZyBzdXBwb3J0IHNlcnZpY2VzLgor KyMKKysjICAgICAgIC0tY29uZmlnICAgICAgICAgICAgIHNob3cgYWxsIGNvbmZpZ3VyYXRpb24g dmFyaWFibGVzCisrIyAgICAgICAtLWRlYnVnICAgICAgICAgICAgICBlbmFibGUgdmVyYm9zZSBz aGVsbCB0cmFjaW5nCisrIyAgIC1uLCAtLWRyeS1ydW4gICAgICAgICAgICBkaXNwbGF5IGNvbW1h bmRzIHdpdGhvdXQgbW9kaWZ5aW5nIGFueSBmaWxlcworKyMgICAgICAgLS1mZWF0dXJlcyAgICAg ICAgICAgZGlzcGxheSBiYXNpYyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGFuZCBleGl0Cisr IyAgICAgICAtLW1vZGU9TU9ERSAgICAgICAgICB1c2Ugb3BlcmF0aW9uIG1vZGUgTU9ERQorKyMg ICAgICAgLS1wcmVzZXJ2ZS1kdXAtZGVwcyAgZG9uJ3QgcmVtb3ZlIGR1cGxpY2F0ZSBkZXBlbmRl bmN5IGxpYnJhcmllcworKyMgICAgICAgLS1xdWlldCwgLS1zaWxlbnQgICAgZG9uJ3QgcHJpbnQg aW5mb3JtYXRpb25hbCBtZXNzYWdlcworKyMgICAgICAgLS1uby1xdWlldCwgLS1uby1zaWxlbnQK KysjICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IGluZm9ybWF0aW9uYWwgbWVzc2Fn ZXMgKGRlZmF1bHQpCisrIyAgICAgICAtLXRhZz1UQUcgICAgICAgICAgICB1c2UgY29uZmlndXJh dGlvbiB2YXJpYWJsZXMgZnJvbSB0YWcgVEFHCisrIyAgIC12LCAtLXZlcmJvc2UgICAgICAgICAg ICBwcmludCBtb3JlIGluZm9ybWF0aW9uYWwgbWVzc2FnZXMgdGhhbiBkZWZhdWx0CisrIyAgICAg ICAtLW5vLXZlcmJvc2UgICAgICAgICBkb24ndCBwcmludCB0aGUgZXh0cmEgaW5mb3JtYXRpb25h bCBtZXNzYWdlcworKyMgICAgICAgLS12ZXJzaW9uICAgICAgICAgICAgcHJpbnQgdmVyc2lvbiBp bmZvcm1hdGlvbgorKyMgICAtaCwgLS1oZWxwLCAtLWhlbHAtYWxsICAgcHJpbnQgc2hvcnQsIGxv bmcsIG9yIGRldGFpbGVkIGhlbHAgbWVzc2FnZQorKyMKKysjIE1PREUgbXVzdCBiZSBvbmUgb2Yg dGhlIGZvbGxvd2luZzoKKysjCisrIyAgICAgICAgIGNsZWFuICAgICAgICAgICAgICByZW1vdmUg ZmlsZXMgZnJvbSB0aGUgYnVpbGQgZGlyZWN0b3J5CisrIyAgICAgICAgIGNvbXBpbGUgICAgICAg ICAgICBjb21waWxlIGEgc291cmNlIGZpbGUgaW50byBhIGxpYnRvb2wgb2JqZWN0CisrIyAgICAg ICAgIGV4ZWN1dGUgICAgICAgICAgICBhdXRvbWF0aWNhbGx5IHNldCBsaWJyYXJ5IHBhdGgsIHRo ZW4gcnVuIGEgcHJvZ3JhbQorKyMgICAgICAgICBmaW5pc2ggICAgICAgICAgICAgY29tcGxldGUg dGhlIGluc3RhbGxhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmllcworKyMgICAgICAgICBpbnN0YWxs ICAgICAgICAgICAgaW5zdGFsbCBsaWJyYXJpZXMgb3IgZXhlY3V0YWJsZXMKKysjICAgICAgICAg bGluayAgICAgICAgICAgICAgIGNyZWF0ZSBhIGxpYnJhcnkgb3IgYW4gZXhlY3V0YWJsZQorKyMg ICAgICAgICB1bmluc3RhbGwgICAgICAgICAgcmVtb3ZlIGxpYnJhcmllcyBmcm9tIGFuIGluc3Rh bGxlZCBkaXJlY3RvcnkKKysjCisrIyBNT0RFLUFSR1MgdmFyeSBkZXBlbmRpbmcgb24gdGhlIE1P REUuICBXaGVuIHBhc3NlZCBhcyBmaXJzdCBvcHRpb24sCisrIyBgLS1tb2RlPU1PREUnIG1heSBi ZSBhYmJyZXZpYXRlZCBhcyBgTU9ERScgb3IgYSB1bmlxdWUgYWJicmV2aWF0aW9uIG9mIHRoYXQu CisrIyBUcnkgYCRwcm9nbmFtZSAtLWhlbHAgLS1tb2RlPU1PREUnIGZvciBhIG1vcmUgZGV0YWls ZWQgZGVzY3JpcHRpb24gb2YgTU9ERS4KKysjCisrIyBXaGVuIHJlcG9ydGluZyBhIGJ1ZywgcGxl YXNlIGRlc2NyaWJlIGEgdGVzdCBjYXNlIHRvIHJlcHJvZHVjZSBpdCBhbmQKKysjIGluY2x1ZGUg dGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjoKKysjCisrIyAgICAgICAgIGhvc3QtdHJpcGxldDoJ JGhvc3QKKysjICAgICAgICAgc2hlbGw6CQkkU0hFTEwKKysjICAgICAgICAgY29tcGlsZXI6CQkk TFRDQworKyMgICAgICAgICBjb21waWxlciBmbGFnczoJCSRMVENGTEFHUworKyMgICAgICAgICBs aW5rZXI6CQkkTEQgKGdudT8gJHdpdGhfZ251X2xkKQorKyMgICAgICAgICAkcHJvZ25hbWU6CShH TlUgbGlidG9vbCkgMi4yLjEwCisrIyAgICAgICAgIGF1dG9tYWtlOgkkYXV0b21ha2VfdmVyc2lv bgorKyMgICAgICAgICBhdXRvY29uZjoJJGF1dG9jb25mX3ZlcnNpb24KKysjCisrIyBSZXBvcnQg YnVncyB0byA8YnVnLWxpYnRvb2xAZ251Lm9yZz4uCisrCisrUFJPR1JBTT1saWJ0b29sCisrUEFD S0FHRT1saWJ0b29sCisrVkVSU0lPTj0yLjIuMTAKKytUSU1FU1RBTVA9IiIKKytwYWNrYWdlX3Jl dmlzaW9uPTEuMzE3NQorKworKyMgQmUgQm91cm5lIGNvbXBhdGlibGUKKytpZiB0ZXN0IC1uICIk e1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4K KysgIGVtdWxhdGUgc2gKKysgIE5VTExDTUQ9OgorKyAgIyBac2ggMy54IGFuZCA0LnggcGVyZm9y bXMgd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAorKyAgIyBpcyBjb250cmFyeSB0 byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KKysgIGFsaWFzIC1nICckezErIiRA In0nPSciJEAiJworKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKKytlbHNlCisrICBjYXNlIGAoc2V0 IC1vKSAyPi9kZXYvbnVsbGAgaW4gKnBvc2l4Kikgc2V0IC1vIHBvc2l4OzsgZXNhYworK2ZpCisr QklOX1NIPXhwZzQ7IGV4cG9ydCBCSU5fU0ggIyBmb3IgVHJ1NjQKKytEVUFMQ0FTRT0xOyBleHBv cnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCisrCisrIyBBIGZ1bmN0aW9uIHRoYXQgaXMgdXNlZCB3 aGVuIHRoZXJlIGlzIG5vIHByaW50IGJ1aWx0aW4gb3IgcHJpbnRmLgorK2Z1bmNfZmFsbGJhY2tf ZWNobyAoKQorK3sKKysgIGV2YWwgJ2NhdCA8PF9MVEVDSE9fRU9GCisrJDEKKytfTFRFQ0hPX0VP RicKKyt9CisrCisrIyBOTFMgbnVpc2FuY2VzOiBXZSBzYXZlIHRoZSBvbGQgdmFsdWVzIHRvIHJl c3RvcmUgZHVyaW5nIGV4ZWN1dGUgbW9kZS4KKytsdF91c2VyX2xvY2FsZT0KKytsdF9zYWZlX2xv Y2FsZT0KKytmb3IgbHRfdmFyIGluIExBTkcgTEFOR1VBR0UgTENfQUxMIExDX0NUWVBFIExDX0NP TExBVEUgTENfTUVTU0FHRVMKKytkbworKyAgZXZhbCAiaWYgdGVzdCBcIlwkeyRsdF92YXIrc2V0 fVwiID0gc2V0OyB0aGVuCisrICAgICAgICAgIHNhdmVfJGx0X3Zhcj1cJCRsdF92YXIKKysgICAg ICAgICAgJGx0X3Zhcj1DCisrCSAgZXhwb3J0ICRsdF92YXIKKysJICBsdF91c2VyX2xvY2FsZT1c IiRsdF92YXI9XFxcJHNhdmVfXCRsdF92YXI7IFwkbHRfdXNlcl9sb2NhbGVcIgorKwkgIGx0X3Nh ZmVfbG9jYWxlPVwiJGx0X3Zhcj1DOyBcJGx0X3NhZmVfbG9jYWxlXCIKKysJZmkiCisrZG9uZQor K0xDX0FMTD1DCisrTEFOR1VBR0U9QworK2V4cG9ydCBMQU5HVUFHRSBMQ19BTEwKKysKKyskbHRf dW5zZXQgQ0RQQVRICisrCisrCisrIyBXb3JrIGFyb3VuZCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5 IGlzc3VlIG9uIElSSVggNi41LiBPbiBJUklYIDYuNCssIHNoCisrIyBpcyBrc2ggYnV0IHdoZW4g dGhlIHNoZWxsIGlzIGludm9rZWQgYXMgInNoIiBhbmQgdGhlIGN1cnJlbnQgdmFsdWUgb2YKKysj IHRoZSBfWFBHIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBlcXVhbCB0byAxIChvbmUpLCB0 aGUgc3BlY2lhbAorKyMgcG9zaXRpb25hbCBwYXJhbWV0ZXIgJDAsIHdpdGhpbiBhIGZ1bmN0aW9u IGNhbGwsIGlzIHRoZSBuYW1lIG9mIHRoZQorKyMgZnVuY3Rpb24uCisrcHJvZ3BhdGg9IiQwIgor KworKworKworKzogJHtDUD0iY3AgLWYifQorK3Rlc3QgIiR7RUNITytzZXR9IiA9IHNldCB8fCBF Q0hPPSR7YXNfZWNoby0ncHJpbnRmICVzXG4nfQorKzogJHtFR1JFUD0iL2Jpbi9ncmVwIC1FIn0K Kys6ICR7RkdSRVA9Ii9iaW4vZ3JlcCAtRiJ9CisrOiAke0dSRVA9Ii9iaW4vZ3JlcCJ9CisrOiAk e0xOX1M9ImxuIC1zIn0KKys6ICR7TUFLRT0ibWFrZSJ9CisrOiAke01LRElSPSJta2RpciJ9Cisr OiAke01WPSJtdiAtZiJ9CisrOiAke1JNPSJybSAtZiJ9CisrOiAke1NFRD0iL2Jpbi9zZWQifQor KzogJHtTSEVMTD0iJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0ifQorKzogJHtYc2VkPSIkU0VEIC1l IDFzL15YLy8ifQorKworKyMgR2xvYmFsIHZhcmlhYmxlczoKKytFWElUX1NVQ0NFU1M9MAorK0VY SVRfRkFJTFVSRT0xCisrRVhJVF9NSVNNQVRDSD02MyAgIyAkPyA9IDYzIGlzIHVzZWQgdG8gaW5k aWNhdGUgdmVyc2lvbiBtaXNtYXRjaCB0byBtaXNzaW5nLgorK0VYSVRfU0tJUD03NwkgICMgJD8g PSA3NyBpcyB1c2VkIHRvIGluZGljYXRlIGEgc2tpcHBlZCB0ZXN0IHRvIGF1dG9tYWtlLgorKwor K2V4aXRfc3RhdHVzPSRFWElUX1NVQ0NFU1MKKysKKysjIE1ha2Ugc3VyZSBJRlMgaGFzIGEgc2Vu c2libGUgZGVmYXVsdAorK2x0X25sPScKKysnCisrSUZTPSIgCSRsdF9ubCIKKysKKytkaXJuYW1l PSJzLC9bXi9dKiQsLCIKKytiYXNlbmFtZT0icyxeLiovLCwiCisrCisrIyBmdW5jX2Rpcm5hbWVf YW5kX2Jhc2VuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNlbWVudAorKyMgcGVyZm9ybSBm dW5jX2Jhc2VuYW1lIGFuZCBmdW5jX2Rpcm5hbWUgaW4gYSBzaW5nbGUgZnVuY3Rpb24KKysjIGNh bGw6CisrIyAgIGRpcm5hbWU6ICBDb21wdXRlIHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25l bXB0eSwKKysjICAgICAgICAgICAgIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwgb3RoZXJ3aXNl IHNldCByZXN1bHQKKysjICAgICAgICAgICAgIHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KKysjICAg ICAgICAgICAgIHZhbHVlIHJldHVybmVkIGluICIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysjICAg YmFzZW5hbWU6IENvbXB1dGUgZmlsZW5hbWUgb2YgRklMRS4KKysjICAgICAgICAgICAgIHZhbHVl IHJldHVuZWQgaW4gIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysjIEltcGxlbWVudGF0aW9uIG11 c3QgYmUga2VwdCBzeW5jaHJvbml6ZWQgd2l0aCBmdW5jX2Rpcm5hbWUKKysjIGFuZCBmdW5jX2Jh c2VuYW1lLiBGb3IgZWZmaWNpZW5jeSwgd2UgZG8gbm90IGRlbGVnYXRlIHRvCisrIyB0aG9zZSBm dW5jdGlvbnMgYnV0IGluc3RlYWQgZHVwbGljYXRlIHRoZSBmdW5jdGlvbmFsaXR5IGhlcmUuCisr ZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAoKQorK3sKKysgICMgRXh0cmFjdCBzdWJkaXJlY3Rv cnkgZnJvbSB0aGUgYXJndW1lbnQuCisrICBmdW5jX2Rpcm5hbWVfcmVzdWx0PWAkRUNITyAiJHsx fSIgfCAkU0VEIC1lICIkZGlybmFtZSJgCisrICBpZiB0ZXN0ICJYJGZ1bmNfZGlybmFtZV9yZXN1 bHQiID0gIlgkezF9IjsgdGhlbgorKyAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezN9IgorKyAg ZWxzZQorKyAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdCR7Mn0i CisrICBmaQorKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9YCRFQ0hPICIkezF9IiB8ICRTRUQgLWUg IiRiYXNlbmFtZSJgCisrfQorKworKyMgR2VuZXJhdGVkIHNoZWxsIGZ1bmN0aW9ucyBpbnNlcnRl ZCBoZXJlLgorKworKyMgVGhlc2UgU0VEIHNjcmlwdHMgcHJlc3VwcG9zZSBhbiBhYnNvbHV0ZSBw YXRoIHdpdGggYSB0cmFpbGluZyBzbGFzaC4KKytwYXRoY2FyPSdzLF4vXChbXi9dKlwpLiokLFwx LCcKKytwYXRoY2RyPSdzLF4vW14vXSosLCcKKytyZW1vdmVkb3RwYXJ0cz0nOmRvdHNsCisrCQlz QC9cLi9AL0BnCisrCQl0IGRvdHNsCisrCQlzLC9cLiQsLywnCisrY29sbGFwc2VzbGFzaGVzPSdz QC9cezEsXH1AL0BnJworK2ZpbmFsc2xhc2g9J3MsLyokLC8sJworKworKyMgZnVuY19ub3JtYWxf YWJzcGF0aCBQQVRICisrIyBSZW1vdmUgZG91YmxlZC11cCBhbmQgdHJhaWxpbmcgc2xhc2hlcywg Ii4iIHBhdGggY29tcG9uZW50cywKKysjIGFuZCBjYW5jZWwgb3V0IGFueSAiLi4iIHBhdGggY29t cG9uZW50cyBpbiBQQVRIIGFmdGVyIG1ha2luZworKyMgaXQgYW4gYWJzb2x1dGUgcGF0aC4KKysj ICAgICAgICAgICAgIHZhbHVlIHJldHVybmVkIGluICIkZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1 bHQiCisrZnVuY19ub3JtYWxfYWJzcGF0aCAoKQorK3sKKysgICMgU3RhcnQgZnJvbSByb290IGRp ciBhbmQgcmVhc3NlbWJsZSB0aGUgcGF0aC4KKysgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0 PQorKyAgZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aD0kMQorKyAgZnVuY19ub3JtYWxfYWJzcGF0 aF9hbHRuYW1lc3BhY2U9CisrICBjYXNlICRmdW5jX25vcm1hbF9hYnNwYXRoX3RwYXRoIGluCisr ICAgICIiKQorKyAgICAgICMgRW1wdHkgcGF0aCwgdGhhdCBqdXN0IG1lYW5zICRjd2QuCisrICAg ICAgZnVuY19zdHJpcG5hbWUgJycgJy8nICJgcHdkYCIKKysgICAgICBmdW5jX25vcm1hbF9hYnNw YXRoX3Jlc3VsdD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrICAgICAgcmV0dXJuCisrICAgIDs7 CisrICAgICMgVGhlIG5leHQgdGhyZWUgZW50cmllcyBhcmUgdXNlZCB0byBzcG90IGEgcnVuIG9m IHByZWNpc2VseQorKyAgICAjIHR3byBsZWFkaW5nIHNsYXNoZXMgd2l0aG91dCB1c2luZyBuZWdh dGVkIGNoYXJhY3RlciBjbGFzc2VzOworKyAgICAjIHdlIHRha2UgYWR2YW50YWdlIG9mIGNhc2Un cyBmaXJzdC1tYXRjaCBiZWhhdmlvdXIuCisrICAgIC8vLyopCisrICAgICAgIyBVbnVzdWFsIGZv cm0gb2YgYWJzb2x1dGUgcGF0aCwgZG8gbm90aGluZy4KKysgICAgOzsKKysgICAgLy8qKQorKyAg ICAgICMgTm90IG5lY2Vzc2FyaWx5IGFuIG9yZGluYXJ5IHBhdGg7IFBPU0lYIHJlc2VydmVzIGxl YWRpbmcgJy8vJworKyAgICAgICMgYW5kIGZvciBleGFtcGxlIEN5Z3dpbiB1c2VzIGl0IHRvIGFj Y2VzcyByZW1vdGUgZmlsZSBzaGFyZXMKKysgICAgICAjIG92ZXIgQ0lGUy9TTUIsIHNvIHdlIGNv bnNlcnZlIGEgbGVhZGluZyBkb3VibGUgc2xhc2ggaWYgZm91bmQuCisrICAgICAgZnVuY19ub3Jt YWxfYWJzcGF0aF9hbHRuYW1lc3BhY2U9LworKyAgICA7OworKyAgICAvKikKKysgICAgICAjIEFi c29sdXRlIHBhdGgsIGRvIG5vdGhpbmcuCisrICAgIDs7CisrICAgICopCisrICAgICAgIyBSZWxh dGl2ZSBwYXRoLCBwcmVwZW5kICRjd2QuCisrICAgICAgZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0 aD1gcHdkYC8kZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aAorKyAgICA7OworKyAgZXNhYworKyAg IyBDYW5jZWwgb3V0IGFsbCB0aGUgc2ltcGxlIHN0dWZmIHRvIHNhdmUgaXRlcmF0aW9ucy4gIFdl IGFsc28gd2FudAorKyAgIyB0aGUgcGF0aCB0byBlbmQgd2l0aCBhIHNsYXNoIGZvciBlYXNlIG9m IHBhcnNpbmcsIHNvIG1ha2Ugc3VyZQorKyAgIyB0aGVyZSBpcyBvbmUgKGFuZCBvbmx5IG9uZSkg aGVyZS4KKysgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGg9YCRFQ0hPICIkZnVuY19ub3JtYWxf YWJzcGF0aF90cGF0aCIgfCAkU0VEIFwKKysgICAgICAgIC1lICIkcmVtb3ZlZG90cGFydHMiIC1l ICIkY29sbGFwc2VzbGFzaGVzIiAtZSAiJGZpbmFsc2xhc2giYAorKyAgd2hpbGUgOjsgZG8KKysg ICAgIyBQcm9jZXNzZWQgaXQgYWxsIHlldD8KKysgICAgaWYgdGVzdCAiJGZ1bmNfbm9ybWFsX2Fi c3BhdGhfdHBhdGgiID0gLyA7IHRoZW4KKysgICAgICAjIElmIHdlIGFzY2VuZGVkIHRvIHRoZSBy b290IHVzaW5nICIuLiIgdGhlIHJlc3VsdCBtYXkgYmUgZW1wdHkgbm93LgorKyAgICAgIGlmIHRl c3QgLXogIiRmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdCIgOyB0aGVuCisrICAgICAgICBmdW5j X25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0vCisrICAgICAgZmkKKysgICAgICBicmVhaworKyAgICBm aQorKyAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Rjb21wb25lbnQ9YCRFQ0hPICIkZnVuY19ub3Jt YWxfYWJzcGF0aF90cGF0aCIgfCAkU0VEIFwKKysgICAgICAgIC1lICIkcGF0aGNhciJgCisrICAg IGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGg9YCRFQ0hPICIkZnVuY19ub3JtYWxfYWJzcGF0aF90 cGF0aCIgfCAkU0VEIFwKKysgICAgICAgIC1lICIkcGF0aGNkciJgCisrICAgICMgRmlndXJlIG91 dCB3aGF0IHRvIGRvIHdpdGggaXQKKysgICAgY2FzZSAkZnVuY19ub3JtYWxfYWJzcGF0aF90Y29t cG9uZW50IGluCisrICAgICAgIiIpCisrICAgICAgICAjIFRyYWlsaW5nIGVtcHR5IHBhdGggY29t cG9uZW50LCBpZ25vcmUgaXQuCisrICAgICAgOzsKKysgICAgICAuLikKKysgICAgICAgICMgUGFy ZW50IGRpcjsgc3RyaXAgbGFzdCBhc3NlbWJsZWQgY29tcG9uZW50IGZyb20gcmVzdWx0LgorKyAg ICAgICAgZnVuY19kaXJuYW1lICIkZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQiCisrICAgICAg ICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0kZnVuY19kaXJuYW1lX3Jlc3VsdAorKyAgICAg IDs7CisrICAgICAgKikKKysgICAgICAgICMgQWN0dWFsIHBhdGggY29tcG9uZW50LCBhcHBlbmQg aXQuCisrICAgICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0kZnVuY19ub3JtYWxfYWJz cGF0aF9yZXN1bHQvJGZ1bmNfbm9ybWFsX2Fic3BhdGhfdGNvbXBvbmVudAorKyAgICAgIDs7Cisr ICAgIGVzYWMKKysgIGRvbmUKKysgICMgUmVzdG9yZSBsZWFkaW5nIGRvdWJsZS1zbGFzaCBpZiBv bmUgd2FzIGZvdW5kIG9uIGVudHJ5LgorKyAgZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQ9JGZ1 bmNfbm9ybWFsX2Fic3BhdGhfYWx0bmFtZXNwYWNlJGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0 CisrfQorKworKyMgZnVuY19yZWxhdGl2ZV9wYXRoIFNSQ0RJUiBEU1RESVIKKysjIGdlbmVyYXRl cyBhIHJlbGF0aXZlIHBhdGggZnJvbSBTUkNESVIgdG8gRFNURElSLCB3aXRoIGEgdHJhaWxpbmcK KysjIHNsYXNoIGlmIG5vbi1lbXB0eSwgc3VpdGFibGUgZm9yIGltbWVkaWF0ZWx5IGFwcGVuZGlu ZyBhIGZpbGVuYW1lCisrIyB3aXRob3V0IG5lZWRpbmcgdG8gYXBwZW5kIGEgc2VwYXJhdG9yLgor KyMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX3JlbGF0aXZlX3BhdGhfcmVz dWx0IgorK2Z1bmNfcmVsYXRpdmVfcGF0aCAoKQorK3sKKysgIGZ1bmNfcmVsYXRpdmVfcGF0aF9y ZXN1bHQ9CisrICBmdW5jX25vcm1hbF9hYnNwYXRoICIkMSIKKysgIGZ1bmNfcmVsYXRpdmVfcGF0 aF90bGliZGlyPSRmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdAorKyAgZnVuY19ub3JtYWxfYWJz cGF0aCAiJDIiCisrICBmdW5jX3JlbGF0aXZlX3BhdGhfdGJpbmRpcj0kZnVuY19ub3JtYWxfYWJz cGF0aF9yZXN1bHQKKysKKysgICMgQXNjZW5kIHRoZSB0cmVlIHN0YXJ0aW5nIGZyb20gbGliZGly CisrICB3aGlsZSA6OyBkbworKyAgICAjIGNoZWNrIGlmIHdlIGhhdmUgZm91bmQgYSBwcmVmaXgg b2YgYmluZGlyCisrICAgIGNhc2UgJGZ1bmNfcmVsYXRpdmVfcGF0aF90YmluZGlyIGluCisrICAg ICAgJGZ1bmNfcmVsYXRpdmVfcGF0aF90bGliZGlyKQorKyAgICAgICAgIyBmb3VuZCBhbiBleGFj dCBtYXRjaAorKyAgICAgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3RjYW5jZWxsZWQ9CisrICAgICAg ICBicmVhaworKyAgICAgICAgOzsKKysgICAgICAkZnVuY19yZWxhdGl2ZV9wYXRoX3RsaWJkaXIq KQorKyAgICAgICAgIyBmb3VuZCBhIG1hdGNoaW5nIHByZWZpeAorKyAgICAgICAgZnVuY19zdHJp cG5hbWUgIiRmdW5jX3JlbGF0aXZlX3BhdGhfdGxpYmRpciIgJycgIiRmdW5jX3JlbGF0aXZlX3Bh dGhfdGJpbmRpciIKKysgICAgICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF90Y2FuY2VsbGVkPSRmdW5j X3N0cmlwbmFtZV9yZXN1bHQKKysgICAgICAgIGlmIHRlc3QgLXogIiRmdW5jX3JlbGF0aXZlX3Bh dGhfcmVzdWx0IjsgdGhlbgorKyAgICAgICAgICBmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0PS4K KysgICAgICAgIGZpCisrICAgICAgICBicmVhaworKyAgICAgICAgOzsKKysgICAgICAqKQorKyAg ICAgICAgZnVuY19kaXJuYW1lICRmdW5jX3JlbGF0aXZlX3BhdGhfdGxpYmRpcgorKyAgICAgICAg ZnVuY19yZWxhdGl2ZV9wYXRoX3RsaWJkaXI9JHtmdW5jX2Rpcm5hbWVfcmVzdWx0fQorKyAgICAg ICAgaWYgdGVzdCAieCRmdW5jX3JlbGF0aXZlX3BhdGhfdGxpYmRpciIgPSB4IDsgdGhlbgorKyAg ICAgICAgICAjIEhhdmUgdG8gZGVzY2VuZCBhbGwgdGhlIHdheSB0byB0aGUgcm9vdCEKKysgICAg ICAgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdD0uLi8kZnVuY19yZWxhdGl2ZV9wYXRoX3Jl c3VsdAorKyAgICAgICAgICBmdW5jX3JlbGF0aXZlX3BhdGhfdGNhbmNlbGxlZD0kZnVuY19yZWxh dGl2ZV9wYXRoX3RiaW5kaXIKKysgICAgICAgICAgYnJlYWsKKysgICAgICAgIGZpCisrICAgICAg ICBmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0PS4uLyRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0 CisrICAgICAgICA7OworKyAgICBlc2FjCisrICBkb25lCisrCisrICAjIE5vdyBjYWxjdWxhdGUg cGF0aDsgdGFrZSBjYXJlIHRvIGF2b2lkIGRvdWJsaW5nLXVwIHNsYXNoZXMuCisrICBmdW5jX3N0 cmlwbmFtZSAnJyAnLycgIiRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0IgorKyAgZnVuY19yZWxh dGl2ZV9wYXRoX3Jlc3VsdD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrICBmdW5jX3N0cmlwbmFt ZSAnLycgJy8nICIkZnVuY19yZWxhdGl2ZV9wYXRoX3RjYW5jZWxsZWQiCisrICBpZiB0ZXN0ICJ4 JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIgIT0geCA7IHRoZW4KKysgICAgZnVuY19yZWxhdGl2ZV9w YXRoX3Jlc3VsdD0ke2Z1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHR9LyR7ZnVuY19zdHJpcG5hbWVf cmVzdWx0fQorKyAgZmkKKysKKysgICMgTm9ybWFsaXNhdGlvbi4gSWYgYmluZGlyIGlzIGxpYmRp ciwgcmV0dXJuIGVtcHR5IHN0cmluZywKKysgICMgZWxzZSByZWxhdGl2ZSBwYXRoIGVuZGluZyB3 aXRoIGEgc2xhc2g7IGVpdGhlciB3YXksIHRhcmdldAorKyAgIyBmaWxlIG5hbWUgY2FuIGJlIGRp cmVjdGx5IGFwcGVuZGVkLgorKyAgaWYgdGVzdCAhIC16ICIkZnVuY19yZWxhdGl2ZV9wYXRoX3Jl c3VsdCI7IHRoZW4KKysgICAgZnVuY19zdHJpcG5hbWUgJy4vJyAnJyAiJGZ1bmNfcmVsYXRpdmVf cGF0aF9yZXN1bHQvIgorKyAgICBmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0PSRmdW5jX3N0cmlw bmFtZV9yZXN1bHQKKysgIGZpCisrfQorKworKyMgVGhlIG5hbWUgb2YgdGhpcyBwcm9ncmFtOgor K2Z1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiRwcm9ncGF0aCIKKytwcm9nbmFtZT0kZnVuY19i YXNlbmFtZV9yZXN1bHQKKysKKysjIE1ha2Ugc3VyZSB3ZSBoYXZlIGFuIGFic29sdXRlIHBhdGgg Zm9yIHJlZXhlY3V0aW9uOgorK2Nhc2UgJHByb2dwYXRoIGluCisrICBbXFwvXSp8W0EtWmEtel06 XFwqKSA7OworKyAgKltcXC9dKikKKysgICAgIHByb2dkaXI9JGZ1bmNfZGlybmFtZV9yZXN1bHQK KysgICAgIHByb2dkaXI9YGNkICIkcHJvZ2RpciIgJiYgcHdkYAorKyAgICAgcHJvZ3BhdGg9IiRw cm9nZGlyLyRwcm9nbmFtZSIKKysgICAgIDs7CisrICAqKQorKyAgICAgc2F2ZV9JRlM9IiRJRlMi CisrICAgICBJRlM9OgorKyAgICAgZm9yIHByb2dkaXIgaW4gJFBBVEg7IGRvCisrICAgICAgIElG Uz0iJHNhdmVfSUZTIgorKyAgICAgICB0ZXN0IC14ICIkcHJvZ2Rpci8kcHJvZ25hbWUiICYmIGJy ZWFrCisrICAgICBkb25lCisrICAgICBJRlM9IiRzYXZlX0lGUyIKKysgICAgIHRlc3QgLW4gIiRw cm9nZGlyIiB8fCBwcm9nZGlyPWBwd2RgCisrICAgICBwcm9ncGF0aD0iJHByb2dkaXIvJHByb2du YW1lIgorKyAgICAgOzsKKytlc2FjCisrCisrIyBTZWQgc3Vic3RpdHV0aW9uIHRoYXQgaGVscHMg dXMgZG8gcm9idXN0IHF1b3RpbmcuICBJdCBiYWNrc2xhc2hpZmllcworKyMgbWV0YWNoYXJhY3Rl cnMgdGhhdCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUtcXVvdGVkIHN0cmluZ3MuCisr WHNlZD0iJHtTRUR9IicgLWUgMXMvXlgvLycKKytzZWRfcXVvdGVfc3Vic3Q9J3MvXChbYCIkXFxd XCkvXFxcMS9nJworKworKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGRvIG5vdCBxdW90ZSB2YXJpYWJs ZSByZWZlcmVuY2VzLgorK2RvdWJsZV9xdW90ZV9zdWJzdD0ncy9cKFsiYFxcXVwpL1xcXDEvZycK KysKKysjIFJlLWBcJyBwYXJhbWV0ZXIgZXhwYW5zaW9ucyBpbiBvdXRwdXQgb2YgZG91YmxlX3F1 b3RlX3N1YnN0IHRoYXQgd2VyZQorKyMgYFwnLWVkIGluIGlucHV0IHRvIHRoZSBzYW1lLiAgSWYg YW4gb2RkIG51bWJlciBvZiBgXCcgcHJlY2VkZWQgYSAnJCcKKysjIGluIGlucHV0IHRvIGRvdWJs ZV9xdW90ZV9zdWJzdCwgdGhhdCAnJCcgd2FzIHByb3RlY3RlZCBmcm9tIGV4cGFuc2lvbi4KKysj IFNpbmNlIGVhY2ggaW5wdXQgYFwnIGlzIG5vdyB0d28gYFwncywgbG9vayBmb3IgYW55IG51bWJl ciBvZiBydW5zIG9mCisrIyBmb3VyIGBcJ3MgZm9sbG93ZWQgYnkgdHdvIGBcJ3MgYW5kIHRoZW4g YSAnJCcuICBgXCcgdGhhdCAnJCcuCisrYnM9J1xcJworK2JzMj0nXFxcXCcKKyticzQ9J1xcXFxc XFxcJworK2RvbGxhcj0nXCQnCisrc2VkX2RvdWJsZV9iYWNrc2xhc2g9IlwKKysgIHMvJGJzNC8m XFwKKysvZworKyAgcy9eJGJzMiRkb2xsYXIvJGJzJi8KKysgIHMvXFwoW14kYnNdXFwpJGJzMiRk b2xsYXIvXFwxJGJzMiRicyRkb2xsYXIvZworKyAgcy9cbi8vZyIKKysKKysjIFN0YW5kYXJkIG9w dGlvbnM6Cisrb3B0X2RyeV9ydW49ZmFsc2UKKytvcHRfaGVscD1mYWxzZQorK29wdF9xdWlldD1m YWxzZQorK29wdF92ZXJib3NlPWZhbHNlCisrb3B0X3dhcm5pbmc9OgorKworKyMgZnVuY19lY2hv IGFyZy4uLgorKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSwgYWxvbmcgd2l0 aCB0aGUgY3VycmVudCBtb2RlCisrIyBuYW1lIGlmIGl0IGhhcyBiZWVuIHNldCB5ZXQuCisrZnVu Y19lY2hvICgpCisreworKyAgICAkRUNITyAiJHByb2duYW1lJHttb2RlKzogfSRtb2RlOiAkKiIK Kyt9CisrCisrIyBmdW5jX3ZlcmJvc2UgYXJnLi4uCisrIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVm aXhlZCBtZXNzYWdlIGluIHZlcmJvc2UgbW9kZSBvbmx5LgorK2Z1bmNfdmVyYm9zZSAoKQorK3sK KysgICAgJG9wdF92ZXJib3NlICYmIGZ1bmNfZWNobyAkezErIiRAIn0KKysKKysgICAgIyBBIGJ1 ZyBpbiBiYXNoIGhhbHRzIHRoZSBzY3JpcHQgaWYgdGhlIGxhc3QgbGluZSBvZiBhIGZ1bmN0aW9u CisrICAgICMgZmFpbHMgd2hlbiBzZXQgLWUgaXMgaW4gZm9yY2UsIHNvIHdlIG5lZWQgYW5vdGhl ciBjb21tYW5kIHRvCisrICAgICMgd29yayBhcm91bmQgdGhhdDoKKysgICAgOgorK30KKysKKysj IGZ1bmNfZWNob19hbGwgYXJnLi4uCisrIyBJbnZva2UgJEVDSE8gd2l0aCBhbGwgYXJncywgc3Bh Y2Utc2VwYXJhdGVkLgorK2Z1bmNfZWNob19hbGwgKCkKKyt7CisrICAgICRFQ0hPICIkKiIKKyt9 CisrCisrIyBmdW5jX2Vycm9yIGFyZy4uLgorKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQg bWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvci4KKytmdW5jX2Vycm9yICgpCisreworKyAgICAkRUNI TyAiJHByb2duYW1lJHttb2RlKzogfSRtb2RlOiAiJHsxKyIkQCJ9IDE+JjIKKyt9CisrCisrIyBm dW5jX3dhcm5pbmcgYXJnLi4uCisrIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCB3YXJuaW5n IG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IuCisrZnVuY193YXJuaW5nICgpCisreworKyAgICAk b3B0X3dhcm5pbmcgJiYgJEVDSE8gIiRwcm9nbmFtZSR7bW9kZSs6IH0kbW9kZTogd2FybmluZzog IiR7MSsiJEAifSAxPiYyCisrCisrICAgICMgYmFzaCBidWcgYWdhaW46CisrICAgIDoKKyt9Cisr CisrIyBmdW5jX2ZhdGFsX2Vycm9yIGFyZy4uLgorKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4 ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciwgYW5kIGV4aXQuCisrZnVuY19mYXRhbF9lcnJv ciAoKQorK3sKKysgICAgZnVuY19lcnJvciAkezErIiRAIn0KKysgICAgZXhpdCAkRVhJVF9GQUlM VVJFCisrfQorKworKyMgZnVuY19mYXRhbF9oZWxwIGFyZy4uLgorKyMgRWNobyBwcm9ncmFtIG5h bWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciwgZm9sbG93ZWQgYnkKKysjIGEg aGVscCBoaW50LCBhbmQgZXhpdC4KKytmdW5jX2ZhdGFsX2hlbHAgKCkKKyt7CisrICAgIGZ1bmNf ZXJyb3IgJHsxKyIkQCJ9CisrICAgIGZ1bmNfZmF0YWxfZXJyb3IgIiRoZWxwIgorK30KKytoZWxw PSJUcnkgXGAkcHJvZ25hbWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iICAjIyBkZWZh dWx0CisrCisrCisrIyBmdW5jX2dyZXAgZXhwcmVzc2lvbiBmaWxlbmFtZQorKyMgQ2hlY2sgd2hl dGhlciBFWFBSRVNTSU9OIG1hdGNoZXMgYW55IGxpbmUgb2YgRklMRU5BTUUsIHdpdGhvdXQgb3V0 cHV0LgorK2Z1bmNfZ3JlcCAoKQorK3sKKysgICAgJEdSRVAgIiQxIiAiJDIiID4vZGV2L251bGwg Mj4mMQorK30KKysKKysKKysjIGZ1bmNfbWtkaXJfcCBkaXJlY3RvcnktcGF0aAorKyMgTWFrZSBz dXJlIHRoZSBlbnRpcmUgcGF0aCB0byBESVJFQ1RPUlktUEFUSCBpcyBhdmFpbGFibGUuCisrZnVu Y19ta2Rpcl9wICgpCisreworKyAgICBteV9kaXJlY3RvcnlfcGF0aD0iJDEiCisrICAgIG15X2Rp cl9saXN0PQorKworKyAgICBpZiB0ZXN0IC1uICIkbXlfZGlyZWN0b3J5X3BhdGgiICYmIHRlc3Qg IiRvcHRfZHJ5X3J1biIgIT0gIjoiOyB0aGVuCisrCisrICAgICAgIyBQcm90ZWN0IGRpcmVjdG9y eSBuYW1lcyBzdGFydGluZyB3aXRoIGAtJworKyAgICAgIGNhc2UgJG15X2RpcmVjdG9yeV9wYXRo IGluCisrICAgICAgICAtKikgbXlfZGlyZWN0b3J5X3BhdGg9Ii4vJG15X2RpcmVjdG9yeV9wYXRo IiA7OworKyAgICAgIGVzYWMKKysKKysgICAgICAjIFdoaWxlIHNvbWUgcG9ydGlvbiBvZiBESVIg ZG9lcyBub3QgeWV0IGV4aXN0Li4uCisrICAgICAgd2hpbGUgdGVzdCAhIC1kICIkbXlfZGlyZWN0 b3J5X3BhdGgiOyBkbworKyAgICAgICAgIyAuLi5tYWtlIGEgbGlzdCBpbiB0b3Btb3N0IGZpcnN0 IG9yZGVyLiAgVXNlIGEgY29sb24gZGVsaW1pdGVkCisrCSMgbGlzdCBpbmNhc2Ugc29tZSBwb3J0 aW9uIG9mIHBhdGggY29udGFpbnMgd2hpdGVzcGFjZS4KKysgICAgICAgIG15X2Rpcl9saXN0PSIk bXlfZGlyZWN0b3J5X3BhdGg6JG15X2Rpcl9saXN0IgorKworKyAgICAgICAgIyBJZiB0aGUgbGFz dCBwb3J0aW9uIGFkZGVkIGhhcyBubyBzbGFzaCBpbiBpdCwgdGhlIGxpc3QgaXMgZG9uZQorKyAg ICAgICAgY2FzZSAkbXlfZGlyZWN0b3J5X3BhdGggaW4gKi8qKSA7OyAqKSBicmVhayA7OyBlc2Fj CisrCisrICAgICAgICAjIC4uLm90aGVyd2lzZSB0aHJvdyBhd2F5IHRoZSBjaGlsZCBkaXJlY3Rv cnkgYW5kIGxvb3AKKysgICAgICAgIG15X2RpcmVjdG9yeV9wYXRoPWAkRUNITyAiJG15X2RpcmVj dG9yeV9wYXRoIiB8ICRTRUQgLWUgIiRkaXJuYW1lImAKKysgICAgICBkb25lCisrICAgICAgbXlf ZGlyX2xpc3Q9YCRFQ0hPICIkbXlfZGlyX2xpc3QiIHwgJFNFRCAncyw6KiQsLCdgCisrCisrICAg ICAgc2F2ZV9ta2Rpcl9wX0lGUz0iJElGUyI7IElGUz0nOicKKysgICAgICBmb3IgbXlfZGlyIGlu ICRteV9kaXJfbGlzdDsgZG8KKysJSUZTPSIkc2F2ZV9ta2Rpcl9wX0lGUyIKKysgICAgICAgICMg bWtkaXIgY2FuIGZhaWwgd2l0aCBhIGBGaWxlIGV4aXN0JyBlcnJvciBpZiB0d28gcHJvY2Vzc2Vz CisrICAgICAgICAjIHRyeSB0byBjcmVhdGUgb25lIG9mIHRoZSBkaXJlY3RvcmllcyBjb25jdXJy ZW50bHkuICBEb24ndAorKyAgICAgICAgIyBzdG9wIGluIHRoYXQgY2FzZSEKKysgICAgICAgICRN S0RJUiAiJG15X2RpciIgMj4vZGV2L251bGwgfHwgOgorKyAgICAgIGRvbmUKKysgICAgICBJRlM9 IiRzYXZlX21rZGlyX3BfSUZTIgorKworKyAgICAgICMgQmFpbCBvdXQgaWYgd2UgKG9yIHNvbWUg b3RoZXIgcHJvY2VzcykgZmFpbGVkIHRvIGNyZWF0ZSBhIGRpcmVjdG9yeS4KKysgICAgICB0ZXN0 IC1kICIkbXlfZGlyZWN0b3J5X3BhdGgiIHx8IFwKKysgICAgICAgIGZ1bmNfZmF0YWxfZXJyb3Ig IkZhaWxlZCB0byBjcmVhdGUgXGAkMSciCisrICAgIGZpCisrfQorKworKworKyMgZnVuY19ta3Rl bXBkaXIgW3N0cmluZ10KKysjIE1ha2UgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHRoYXQgd29uJ3Qg Y2xhc2ggd2l0aCBvdGhlciBydW5uaW5nCisrIyBsaWJ0b29sIHByb2Nlc3NlcywgYW5kIGF2b2lk cyByYWNlIGNvbmRpdGlvbnMgaWYgcG9zc2libGUuICBJZgorKyMgZ2l2ZW4sIFNUUklORyBpcyB0 aGUgYmFzZW5hbWUgZm9yIHRoYXQgZGlyZWN0b3J5LgorK2Z1bmNfbWt0ZW1wZGlyICgpCisrewor KyAgICBteV90ZW1wbGF0ZT0iJHtUTVBESVItL3RtcH0vJHsxLSRwcm9nbmFtZX0iCisrCisrICAg IGlmIHRlc3QgIiRvcHRfZHJ5X3J1biIgPSAiOiI7IHRoZW4KKysgICAgICAjIFJldHVybiBhIGRp cmVjdG9yeSBuYW1lLCBidXQgZG9uJ3QgY3JlYXRlIGl0IGluIGRyeS1ydW4gbW9kZQorKyAgICAg IG15X3RtcGRpcj0iJHtteV90ZW1wbGF0ZX0tJCQiCisrICAgIGVsc2UKKysKKysgICAgICAjIElm IG1rdGVtcCB3b3JrcywgdXNlIHRoYXQgZmlyc3QgYW5kIGZvcmVtb3N0CisrICAgICAgbXlfdG1w ZGlyPWBta3RlbXAgLWQgIiR7bXlfdGVtcGxhdGV9LVhYWFhYWFhYIiAyPi9kZXYvbnVsbGAKKysK KysgICAgICBpZiB0ZXN0ICEgLWQgIiRteV90bXBkaXIiOyB0aGVuCisrICAgICAgICAjIEZhaWxp bmcgdGhhdCwgYXQgbGVhc3QgdHJ5IGFuZCB1c2UgJFJBTkRPTSB0byBhdm9pZCBhIHJhY2UKKysg ICAgICAgIG15X3RtcGRpcj0iJHtteV90ZW1wbGF0ZX0tJHtSQU5ET00tMH0kJCIKKysKKysgICAg ICAgIHNhdmVfbWt0ZW1wZGlyX3VtYXNrPWB1bWFza2AKKysgICAgICAgIHVtYXNrIDAwNzcKKysg ICAgICAgICRNS0RJUiAiJG15X3RtcGRpciIKKysgICAgICAgIHVtYXNrICRzYXZlX21rdGVtcGRp cl91bWFzaworKyAgICAgIGZpCisrCisrICAgICAgIyBJZiB3ZSdyZSBub3QgaW4gZHJ5LXJ1biBt b2RlLCBib21iIG91dCBvbiBmYWlsdXJlCisrICAgICAgdGVzdCAtZCAiJG15X3RtcGRpciIgfHwg XAorKyAgICAgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGNyZWF0ZSB0ZW1wb3JhcnkgZGly ZWN0b3J5IFxgJG15X3RtcGRpciciCisrICAgIGZpCisrCisrICAgICRFQ0hPICIkbXlfdG1wZGly IgorK30KKysKKysKKysjIGZ1bmNfcXVvdGVfZm9yX2V2YWwgYXJnCisrIyBBZXN0aGV0aWNhbGx5 IHF1b3RlIEFSRyB0byBiZSBldmFsZWQgbGF0ZXIuCisrIyBUaGlzIGZ1bmN0aW9uIHJldHVybnMg dHdvIHZhbHVlczogRlVOQ19RVU9URV9GT1JfRVZBTF9SRVNVTFQKKysjIGlzIGRvdWJsZS1xdW90 ZWQsIHN1aXRhYmxlIGZvciBhIHN1YnNlcXVlbnQgZXZhbCwgd2hlcmVhcworKyMgRlVOQ19RVU9U RV9GT1JfRVZBTF9VTlFVT1RFRF9SRVNVTFQgaGFzIG1lcmVseSBhbGwgY2hhcmFjdGVycworKyMg d2hpY2ggYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91YmxlIHF1b3RlcyBiYWNrc2xhc2hpZmll ZC4KKytmdW5jX3F1b3RlX2Zvcl9ldmFsICgpCisreworKyAgICBjYXNlICQxIGluCisrICAgICAg KltcXFxgXCJcJF0qKQorKwlmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdD1gJEVD SE8gIiQxIiB8ICRTRUQgIiRzZWRfcXVvdGVfc3Vic3QiYCA7OworKyAgICAgICopCisrICAgICAg ICBmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdD0iJDEiIDs7CisrICAgIGVzYWMK KysKKysgICAgY2FzZSAkZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQgaW4KKysg ICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNvbnRhaW5pbmcgc2hlbGwgbWV0YWNoYXJhY3RlcnMg dG8gZGVsYXkKKysgICAgICAjIHdvcmQgc3BsaXR0aW5nLCBjb21tYW5kIHN1YnN0aXR1dGlvbiBh bmQgYW5kIHZhcmlhYmxlCisrICAgICAgIyBleHBhbnNpb24gZm9yIGEgc3Vic2VxdWVudCBldmFs LgorKyAgICAgICMgTWFueSBCb3VybmUgc2hlbGxzIGNhbm5vdCBoYW5kbGUgY2xvc2UgYnJhY2tl dHMgY29ycmVjdGx5CisrICAgICAgIyBpbiBzY2FuIHNldHMsIHNvIHdlIHNwZWNpZnkgaXQgc2Vw YXJhdGVseS4KKysgICAgICAqW1xbXH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0q fCpdKnwiIikKKysgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0PSJcIiRmdW5jX3F1 b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdFwiIgorKyAgICAgICAgOzsKKysgICAgICAqKQor KyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQ9IiRmdW5jX3F1b3RlX2Zvcl9ldmFs X3VucXVvdGVkX3Jlc3VsdCIKKysgICAgZXNhYworK30KKysKKysKKysjIGZ1bmNfcXVvdGVfZm9y X2V4cGFuZCBhcmcKKysjIEFlc3RoZXRpY2FsbHkgcXVvdGUgQVJHIHRvIGJlIGV2YWxlZCBsYXRl cjsgc2FtZSBhcyBhYm92ZSwKKysjIGJ1dCBkbyBub3QgcXVvdGUgdmFyaWFibGUgcmVmZXJlbmNl cy4KKytmdW5jX3F1b3RlX2Zvcl9leHBhbmQgKCkKKyt7CisrICAgIGNhc2UgJDEgaW4KKysgICAg ICAqW1xcXGBcIl0qKQorKwlteV9hcmc9YCRFQ0hPICIkMSIgfCAkU0VEIFwKKysJICAgIC1lICIk ZG91YmxlX3F1b3RlX3N1YnN0IiAtZSAiJHNlZF9kb3VibGVfYmFja3NsYXNoImAgOzsKKysgICAg ICAqKQorKyAgICAgICAgbXlfYXJnPSIkMSIgOzsKKysgICAgZXNhYworKworKyAgICBjYXNlICRt eV9hcmcgaW4KKysgICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNvbnRhaW5pbmcgc2hlbGwgbWV0 YWNoYXJhY3RlcnMgdG8gZGVsYXkKKysgICAgICAjIHdvcmQgc3BsaXR0aW5nIGFuZCBjb21tYW5k IHN1YnN0aXR1dGlvbiBmb3IgYSBzdWJzZXF1ZW50IGV2YWwuCisrICAgICAgIyBNYW55IEJvdXJu ZSBzaGVsbHMgY2Fubm90IGhhbmRsZSBjbG9zZSBicmFja2V0cyBjb3JyZWN0bHkKKysgICAgICAj IGluIHNjYW4gc2V0cywgc28gd2Ugc3BlY2lmeSBpdCBzZXBhcmF0ZWx5LgorKyAgICAgICpbXFtc flwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQorKyAgICAgICAgbXlf YXJnPSJcIiRteV9hcmdcIiIKKysgICAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgZnVuY19x dW90ZV9mb3JfZXhwYW5kX3Jlc3VsdD0iJG15X2FyZyIKKyt9CisrCisrCisrIyBmdW5jX3Nob3df ZXZhbCBjbWQgW2ZhaWxfZXhwXQorKyMgVW5sZXNzIG9wdF9zaWxlbnQgaXMgdHJ1ZSwgdGhlbiBv dXRwdXQgQ01ELiAgVGhlbiwgaWYgb3B0X2RyeXJ1biBpcworKyMgbm90IHRydWUsIGV2YWx1YXRl IENNRC4gIElmIHRoZSBldmFsdWF0aW9uIG9mIENNRCBmYWlscywgYW5kIEZBSUxfRVhQCisrIyBp cyBnaXZlbiwgdGhlbiBldmFsdWF0ZSBpdC4KKytmdW5jX3Nob3dfZXZhbCAoKQorK3sKKysgICAg bXlfY21kPSIkMSIKKysgICAgbXlfZmFpbF9leHA9IiR7Mi06fSIKKysKKysgICAgJHtvcHRfc2ls ZW50LWZhbHNlfSB8fCB7CisrICAgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kICIkbXlfY21kIgor KyAgICAgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdCIKKysg ICAgfQorKworKyAgICBpZiAke29wdF9kcnlfcnVuLWZhbHNlfTsgdGhlbiA6OyBlbHNlCisrICAg ICAgZXZhbCAiJG15X2NtZCIKKysgICAgICBteV9zdGF0dXM9JD8KKysgICAgICBpZiB0ZXN0ICIk bXlfc3RhdHVzIiAtZXEgMDsgdGhlbiA6OyBlbHNlCisrCWV2YWwgIihleGl0ICRteV9zdGF0dXMp OyAkbXlfZmFpbF9leHAiCisrICAgICAgZmkKKysgICAgZmkKKyt9CisrCisrCisrIyBmdW5jX3No b3dfZXZhbF9sb2NhbGUgY21kIFtmYWlsX2V4cF0KKysjIFVubGVzcyBvcHRfc2lsZW50IGlzIHRy dWUsIHRoZW4gb3V0cHV0IENNRC4gIFRoZW4sIGlmIG9wdF9kcnlydW4gaXMKKysjIG5vdCB0cnVl LCBldmFsdWF0ZSBDTUQuICBJZiB0aGUgZXZhbHVhdGlvbiBvZiBDTUQgZmFpbHMsIGFuZCBGQUlM X0VYUAorKyMgaXMgZ2l2ZW4sIHRoZW4gZXZhbHVhdGUgaXQuICBVc2UgdGhlIHNhdmVkIGxvY2Fs ZSBmb3IgZXZhbHVhdGlvbi4KKytmdW5jX3Nob3dfZXZhbF9sb2NhbGUgKCkKKyt7CisrICAgIG15 X2NtZD0iJDEiCisrICAgIG15X2ZhaWxfZXhwPSIkezItOn0iCisrCisrICAgICR7b3B0X3NpbGVu dC1mYWxzZX0gfHwgeworKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAiJG15X2NtZCIKKysg ICAgICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQiCisrICAg IH0KKysKKysgICAgaWYgJHtvcHRfZHJ5X3J1bi1mYWxzZX07IHRoZW4gOjsgZWxzZQorKyAgICAg IGV2YWwgIiRsdF91c2VyX2xvY2FsZQorKwkgICAgJG15X2NtZCIKKysgICAgICBteV9zdGF0dXM9 JD8KKysgICAgICBldmFsICIkbHRfc2FmZV9sb2NhbGUiCisrICAgICAgaWYgdGVzdCAiJG15X3N0 YXR1cyIgLWVxIDA7IHRoZW4gOjsgZWxzZQorKwlldmFsICIoZXhpdCAkbXlfc3RhdHVzKTsgJG15 X2ZhaWxfZXhwIgorKyAgICAgIGZpCisrICAgIGZpCisrfQorKworKworKyMgZnVuY192ZXJzaW9u CisrIyBFY2hvIHZlcnNpb24gbWVzc2FnZSB0byBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4aXQuCisr ZnVuY192ZXJzaW9uICgpCisreworKyAgICAkU0VEIC1uICcvKEMpLyFiIGdvCisrCTptb3JlCisr CS9cLi8heworKwkgIE4KKysJICBzL1xuIyAvIC8KKysJICBiIG1vcmUKKysJfQorKwk6Z28KKysJ L14jICckUFJPR1JBTScgKEdOVSAvLC8jIHdhcnJhbnR5OyAvIHsKKysgICAgICAgIHMvXiMgLy8K KysJcy9eIyAqJC8vCisrICAgICAgICBzL1woKEMpXClbIDAtOSwtXSpcKCBbMS05XVswLTldKlwp L1wxXDIvCisrICAgICAgICBwCisrICAgICB9JyA8ICIkcHJvZ3BhdGgiCisrICAgICBleGl0ICQ/ CisrfQorKworKyMgZnVuY191c2FnZQorKyMgRWNobyBzaG9ydCBoZWxwIG1lc3NhZ2UgdG8gc3Rh bmRhcmQgb3V0cHV0IGFuZCBleGl0LgorK2Z1bmNfdXNhZ2UgKCkKKyt7CisrICAgICRTRUQgLW4g Jy9eIyBVc2FnZTovLC9eIyAgKi4qLS1oZWxwLyB7CisrICAgICAgICBzL14jIC8vCisrCXMvXiMg KiQvLworKwlzL1wkcHJvZ25hbWUvJyRwcm9nbmFtZScvCisrCXAKKysgICAgfScgPCAiJHByb2dw YXRoIgorKyAgICBlY2hvCisrICAgICRFQ0hPICJydW4gXGAkcHJvZ25hbWUgLS1oZWxwIHwgbW9y ZScgZm9yIGZ1bGwgdXNhZ2UiCisrICAgIGV4aXQgJD8KKyt9CisrCisrIyBmdW5jX2hlbHAgW05P RVhJVF0KKysjIEVjaG8gbG9uZyBoZWxwIG1lc3NhZ2UgdG8gc3RhbmRhcmQgb3V0cHV0IGFuZCBl eGl0LAorKyMgdW5sZXNzICdub2V4aXQnIGlzIHBhc3NlZCBhcyBhcmd1bWVudC4KKytmdW5jX2hl bHAgKCkKKyt7CisrICAgICRTRUQgLW4gJy9eIyBVc2FnZTovLC8jIFJlcG9ydCBidWdzIHRvLyB7 CisrICAgICAgICBzL14jIC8vCisrCXMvXiMgKiQvLworKwlzKlwkcHJvZ25hbWUqJyRwcm9nbmFt ZScqCisrCXMqXCRob3N0KiciJGhvc3QiJyoKKysJcypcJFNIRUxMKiciJFNIRUxMIicqCisrCXMq XCRMVENDKiciJExUQ0MiJyoKKysJcypcJExUQ0ZMQUdTKiciJExUQ0ZMQUdTIicqCisrCXMqXCRM RConIiRMRCInKgorKwlzL1wkd2l0aF9nbnVfbGQvJyIkd2l0aF9nbnVfbGQiJy8KKysJcy9cJGF1 dG9tYWtlX3ZlcnNpb24vJyJgKGF1dG9tYWtlIC0tdmVyc2lvbikgMj4vZGV2L251bGwgfCRTRUQg MXFgIicvCisrCXMvXCRhdXRvY29uZl92ZXJzaW9uLyciYChhdXRvY29uZiAtLXZlcnNpb24pIDI+ L2Rldi9udWxsIHwkU0VEIDFxYCInLworKwlwCisrICAgICB9JyA8ICIkcHJvZ3BhdGgiCisrICAg IHJldD0kPworKyAgICBpZiB0ZXN0IC16ICIkMSI7IHRoZW4KKysgICAgICBleGl0ICRyZXQKKysg ICAgZmkKKyt9CisrCisrIyBmdW5jX21pc3NpbmdfYXJnIGFyZ25hbWUKKysjIEVjaG8gcHJvZ3Jh bSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IgYW5kIHNldCBnbG9iYWwK KysjIGV4aXRfY21kLgorK2Z1bmNfbWlzc2luZ19hcmcgKCkKKyt7CisrICAgIGZ1bmNfZXJyb3Ig Im1pc3NpbmcgYXJndW1lbnQgZm9yICQxLiIKKysgICAgZXhpdF9jbWQ9ZXhpdAorK30KKysKKytl eGl0X2NtZD06CisrCisrCisrCisrCisrCisrCisrbWFnaWM9IiUlJU1BR0lDIHZhcmlhYmxlJSUl IgorK21hZ2ljX2V4ZT0iJSUlTUFHSUMgRVhFIHZhcmlhYmxlJSUlIgorKworKyMgR2xvYmFsIHZh cmlhYmxlcy4KKysjICRtb2RlIGlzIHVuc2V0Cisrbm9ub3B0PQorK2V4ZWN1dGVfZGxmaWxlcz0K KytwcmVzZXJ2ZV9hcmdzPQorK2xvMm89InMvXFwubG9cJC8uJHtvYmpleHR9LyIKKytvMmxvPSJz L1xcLiR7b2JqZXh0fVwkLy5sby8iCisrZXh0cmFjdGVkX2FyY2hpdmVzPQorK2V4dHJhY3RlZF9z ZXJpYWw9MAorKworK29wdF9kcnlfcnVuPWZhbHNlCisrb3B0X2R1cGxpY2F0ZV9kZXBzPWZhbHNl Cisrb3B0X3NpbGVudD1mYWxzZQorK29wdF9kZWJ1Zz06CisrCisrIyBJZiB0aGlzIHZhcmlhYmxl IGlzIHNldCBpbiBhbnkgb2YgdGhlIGFjdGlvbnMsIHRoZSBjb21tYW5kIGluIGl0CisrIyB3aWxs IGJlIGV4ZWNlZCBhdCB0aGUgZW5kLiAgVGhpcyBwcmV2ZW50cyBoZXJlLWRvY3VtZW50cyBmcm9t IGJlaW5nCisrIyBsZWZ0IG92ZXIgYnkgc2hlbGxzLgorK2V4ZWNfY21kPQorKworKyMgZnVuY19m YXRhbF9jb25maWd1cmF0aW9uIGFyZy4uLgorKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQg bWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciwgZm9sbG93ZWQgYnkKKysjIGEgY29uZmlndXJhdGlv biBmYWlsdXJlIGhpbnQsIGFuZCBleGl0LgorK2Z1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAoKQor K3sKKysgICAgZnVuY19lcnJvciAkezErIiRAIn0KKysgICAgZnVuY19lcnJvciAiU2VlIHRoZSAk UEFDS0FHRSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKKysgICAgZnVuY19m YXRhbF9lcnJvciAiRmF0YWwgY29uZmlndXJhdGlvbiBlcnJvci4iCisrfQorKworKworKyMgZnVu Y19jb25maWcKKysjIERpc3BsYXkgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIGFsbCB0aGUgdGFncyBp biB0aGlzIHNjcmlwdC4KKytmdW5jX2NvbmZpZyAoKQorK3sKKysgICAgcmVfYmVnaW5jZj0nXiMg IyMjIEJFR0lOIExJQlRPT0wnCisrICAgIHJlX2VuZGNmPSdeIyAjIyMgRU5EIExJQlRPT0wnCisr CisrICAgICMgRGVmYXVsdCBjb25maWd1cmF0aW9uLgorKyAgICAkU0VEICIxLC8kcmVfYmVnaW5j ZiBDT05GSUcvZDsvJHJlX2VuZGNmIENPTkZJRy8sXCRkIiA8ICIkcHJvZ3BhdGgiCisrCisrICAg ICMgTm93IHByaW50IHRoZSBjb25maWd1cmF0aW9ucyBmb3IgdGhlIHRhZ3MuCisrICAgIGZvciB0 YWduYW1lIGluICR0YWdsaXN0OyBkbworKyAgICAgICRTRUQgLW4gIi8kcmVfYmVnaW5jZiBUQUcg Q09ORklHOiAkdGFnbmFtZVwkLywvJHJlX2VuZGNmIFRBRyBDT05GSUc6ICR0YWduYW1lXCQvcCIg PCAiJHByb2dwYXRoIgorKyAgICBkb25lCisrCisrICAgIGV4aXQgJD8KKyt9CisrCisrIyBmdW5j X2ZlYXR1cmVzCisrIyBEaXNwbGF5IHRoZSBmZWF0dXJlcyBzdXBwb3J0ZWQgYnkgdGhpcyBzY3Jp cHQuCisrZnVuY19mZWF0dXJlcyAoKQorK3sKKysgICAgZWNobyAiaG9zdDogJGhvc3QiCisrICAg IGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrICAgICAgZWNobyAi ZW5hYmxlIHNoYXJlZCBsaWJyYXJpZXMiCisrICAgIGVsc2UKKysgICAgICBlY2hvICJkaXNhYmxl IHNoYXJlZCBsaWJyYXJpZXMiCisrICAgIGZpCisrICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGli cyIgPSB5ZXM7IHRoZW4KKysgICAgICBlY2hvICJlbmFibGUgc3RhdGljIGxpYnJhcmllcyIKKysg ICAgZWxzZQorKyAgICAgIGVjaG8gImRpc2FibGUgc3RhdGljIGxpYnJhcmllcyIKKysgICAgZmkK KysKKysgICAgZXhpdCAkPworK30KKysKKysjIGZ1bmNfZW5hYmxlX3RhZyB0YWduYW1lCisrIyBW ZXJpZnkgdGhhdCBUQUdOQU1FIGlzIHZhbGlkLCBhbmQgZWl0aGVyIGZsYWcgYW4gZXJyb3IgYW5k IGV4aXQsIG9yCisrIyBlbmFibGUgdGhlIFRBR05BTUUgdGFnLiAgV2UgYWxzbyBhZGQgVEFHTkFN RSB0byB0aGUgZ2xvYmFsICR0YWdsaXN0CisrIyB2YXJpYWJsZSBoZXJlLgorK2Z1bmNfZW5hYmxl X3RhZyAoKQorK3sKKysgICMgR2xvYmFsIHZhcmlhYmxlOgorKyAgdGFnbmFtZT0iJDEiCisrCisr ICByZV9iZWdpbmNmPSJeIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZVwk IgorKyAgcmVfZW5kY2Y9Il4jICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZVwk IgorKyAgc2VkX2V4dHJhY3RjZj0iLyRyZV9iZWdpbmNmLywvJHJlX2VuZGNmL3AiCisrCisrICAj IFZhbGlkYXRlIHRhZ25hbWUuCisrICBjYXNlICR0YWduYW1lIGluCisrICAgICpbIS1fQS1aYS16 MC05LC9dKikKKysgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJpbnZhbGlkIHRhZyBuYW1lOiAkdGFn bmFtZSIKKysgICAgICA7OworKyAgZXNhYworKworKyAgIyBEb24ndCB0ZXN0IGZvciB0aGUgImRl ZmF1bHQiIEMgdGFnLCBhcyB3ZSBrbm93IGl0J3MKKysgICMgdGhlcmUgYnV0IG5vdCBzcGVjaWFs bHkgbWFya2VkLgorKyAgY2FzZSAkdGFnbmFtZSBpbgorKyAgICBDQykgOzsKKysgICAgKikKKysg ICAgICBpZiAkR1JFUCAiJHJlX2JlZ2luY2YiICIkcHJvZ3BhdGgiID4vZGV2L251bGwgMj4mMTsg dGhlbgorKwl0YWdsaXN0PSIkdGFnbGlzdCAkdGFnbmFtZSIKKysKKysJIyBFdmFsdWF0ZSB0aGUg Y29uZmlndXJhdGlvbi4gIEJlIGNhcmVmdWwgdG8gcXVvdGUgdGhlIHBhdGgKKysJIyBhbmQgdGhl IHNlZCBzY3JpcHQsIHRvIGF2b2lkIHNwbGl0dGluZyBvbiB3aGl0ZXNwYWNlLCBidXQKKysJIyBh bHNvIGRvbid0IHVzZSBub24tcG9ydGFibGUgcXVvdGVzIHdpdGhpbiBiYWNrcXVvdGVzIHdpdGhp bgorKwkjIHF1b3RlcyB3ZSBoYXZlIHRvIGRvIGl0IGluIDIgc3RlcHM6CisrCWV4dHJhY3RlZGNm PWAkU0VEIC1uIC1lICIkc2VkX2V4dHJhY3RjZiIgPCAiJHByb2dwYXRoImAKKysJZXZhbCAiJGV4 dHJhY3RlZGNmIgorKyAgICAgIGVsc2UKKysJZnVuY19lcnJvciAiaWdub3JpbmcgdW5rbm93biB0 YWcgJHRhZ25hbWUiCisrICAgICAgZmkKKysgICAgICA7OworKyAgZXNhYworK30KKysKKysjIFBh cnNlIG9wdGlvbnMgb25jZSwgdGhvcm91Z2hseS4gIFRoaXMgY29tZXMgYXMgc29vbiBhcyBwb3Nz aWJsZSBpbgorKyMgdGhlIHNjcmlwdCB0byBtYWtlIHRoaW5ncyBsaWtlIGBsaWJ0b29sIC0tdmVy c2lvbicgaGFwcGVuIHF1aWNrbHkuCisreworKworKyAgIyBTaG9ydGhhbmQgZm9yIC0tbW9kZT1m b28sIG9ubHkgdmFsaWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50CisrICBjYXNlICQxIGluCisrICBj bGVhbnxjbGVhfGNsZXxjbCkKKysgICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgY2xlYW4gJHsx KyIkQCJ9OyBzaGlmdAorKyAgICA7OworKyAgY29tcGlsZXxjb21waWx8Y29tcGl8Y29tcHxjb218 Y298YykKKysgICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgY29tcGlsZSAkezErIiRAIn07IHNo aWZ0CisrICAgIDs7CisrICBleGVjdXRlfGV4ZWN1dHxleGVjdXxleGVjfGV4ZXxleHxlKQorKyAg ICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBleGVjdXRlICR7MSsiJEAifTsgc2hpZnQKKysgICAg OzsKKysgIGZpbmlzaHxmaW5pc3xmaW5pfGZpbnxmaXxmKQorKyAgICBzaGlmdDsgc2V0IGR1bW15 IC0tbW9kZSBmaW5pc2ggJHsxKyIkQCJ9OyBzaGlmdAorKyAgICA7OworKyAgaW5zdGFsbHxpbnN0 YWx8aW5zdGF8aW5zdHxpbnN8aW58aSkKKysgICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgaW5z dGFsbCAkezErIiRAIn07IHNoaWZ0CisrICAgIDs7CisrICBsaW5rfGxpbnxsaXxsKQorKyAgICBz aGlmdDsgc2V0IGR1bW15IC0tbW9kZSBsaW5rICR7MSsiJEAifTsgc2hpZnQKKysgICAgOzsKKysg IHVuaW5zdGFsbHx1bmluc3RhbHx1bmluc3RhfHVuaW5zdHx1bmluc3x1bmlufHVuaXx1bnx1KQor KyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSB1bmluc3RhbGwgJHsxKyIkQCJ9OyBzaGlmdAor KyAgICA7OworKyAgZXNhYworKworKyAgIyBQYXJzZSBub24tbW9kZSBzcGVjaWZpYyBhcmd1bWVu dHM6CisrICB3aGlsZSB0ZXN0ICIkIyIgLWd0IDA7IGRvCisrICAgIG9wdD0iJDEiCisrICAgIHNo aWZ0CisrCisrICAgIGNhc2UgJG9wdCBpbgorKyAgICAgIC0tY29uZmlnKQkJZnVuY19jb25maWcJ CQkJCTs7CisrCisrICAgICAgLS1kZWJ1ZykJCXByZXNlcnZlX2FyZ3M9IiRwcmVzZXJ2ZV9hcmdz ICRvcHQiCisrCQkJZnVuY19lY2hvICJlbmFibGluZyBzaGVsbCB0cmFjZSBtb2RlIgorKwkJCW9w dF9kZWJ1Zz0nc2V0IC14JworKwkJCSRvcHRfZGVidWcKKysJCQk7OworKworKyAgICAgIC1kbG9w ZW4pCQl0ZXN0ICIkIyIgLWVxIDAgJiYgZnVuY19taXNzaW5nX2FyZyAiJG9wdCIgJiYgYnJlYWsK KysJCQlleGVjdXRlX2RsZmlsZXM9IiRleGVjdXRlX2RsZmlsZXMgJDEiCisrCQkJc2hpZnQKKysJ CQk7OworKworKyAgICAgIC0tZHJ5LXJ1biB8IC1uKQlvcHRfZHJ5X3J1bj06CQkJCQk7OworKyAg ICAgIC0tZmVhdHVyZXMpICAgICAgIGZ1bmNfZmVhdHVyZXMJCQkJCTs7CisrICAgICAgLS1maW5p c2gpCQltb2RlPSJmaW5pc2giCQkJCQk7OworKworKyAgICAgIC0tbW9kZSkJCXRlc3QgIiQjIiAt ZXEgMCAmJiBmdW5jX21pc3NpbmdfYXJnICIkb3B0IiAmJiBicmVhaworKwkJCWNhc2UgJDEgaW4K KysJCQkgICMgVmFsaWQgbW9kZSBhcmd1bWVudHM6CisrCQkJICBjbGVhbikJOzsKKysJCQkgIGNv bXBpbGUpCTs7CisrCQkJICBleGVjdXRlKQk7OworKwkJCSAgZmluaXNoKQk7OworKwkJCSAgaW5z dGFsbCkJOzsKKysJCQkgIGxpbmspCQk7OworKwkJCSAgcmVsaW5rKQk7OworKwkJCSAgdW5pbnN0 YWxsKQk7OworKworKwkJCSAgIyBDYXRjaCBhbnl0aGluZyBlbHNlIGFzIGFuIGVycm9yCisrCQkJ ICAqKSBmdW5jX2Vycm9yICJpbnZhbGlkIGFyZ3VtZW50IGZvciAkb3B0IgorKwkJCSAgICAgZXhp dF9jbWQ9ZXhpdAorKwkJCSAgICAgYnJlYWsKKysJCQkgICAgIDs7CisrCQkgICAgICAgIGVzYWMK KysKKysJCQltb2RlPSIkMSIKKysJCQlzaGlmdAorKwkJCTs7CisrCisrICAgICAgLS1wcmVzZXJ2 ZS1kdXAtZGVwcykKKysJCQlvcHRfZHVwbGljYXRlX2RlcHM9OgkJCQk7OworKworKyAgICAgIC0t cXVpZXR8LS1zaWxlbnQpCXByZXNlcnZlX2FyZ3M9IiRwcmVzZXJ2ZV9hcmdzICRvcHQiCisrCQkJ b3B0X3NpbGVudD06CisrCQkJb3B0X3ZlcmJvc2U9ZmFsc2UKKysJCQk7OworKworKyAgICAgIC0t bm8tcXVpZXR8LS1uby1zaWxlbnQpCisrCQkJcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3Mg JG9wdCIKKysJCQlvcHRfc2lsZW50PWZhbHNlCisrCQkJOzsKKysKKysgICAgICAtLXZlcmJvc2V8 IC12KQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0IgorKwkJCW9wdF9zaWxlbnQ9 ZmFsc2UKKysJCQlvcHRfdmVyYm9zZT06CisrCQkJOzsKKysKKysgICAgICAtLW5vLXZlcmJvc2Up CXByZXNlcnZlX2FyZ3M9IiRwcmVzZXJ2ZV9hcmdzICRvcHQiCisrCQkJb3B0X3ZlcmJvc2U9ZmFs c2UKKysJCQk7OworKworKyAgICAgIC0tdGFnKQkJdGVzdCAiJCMiIC1lcSAwICYmIGZ1bmNfbWlz c2luZ19hcmcgIiRvcHQiICYmIGJyZWFrCisrCQkJcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2Fy Z3MgJG9wdCAkMSIKKysJCQlmdW5jX2VuYWJsZV90YWcgIiQxIgkjIHRhZ25hbWUgaXMgc2V0IGhl cmUKKysJCQlzaGlmdAorKwkJCTs7CisrCisrICAgICAgIyBTZXBhcmF0ZSBvcHRhcmdzIHRvIGxv bmcgb3B0aW9uczoKKysgICAgICAtZGxvcGVuPSp8LS1tb2RlPSp8LS10YWc9KikKKysJCQlmdW5j X29wdF9zcGxpdCAiJG9wdCIKKysJCQlzZXQgZHVtbXkgIiRmdW5jX29wdF9zcGxpdF9vcHQiICIk ZnVuY19vcHRfc3BsaXRfYXJnIiAkezErIiRAIn0KKysJCQlzaGlmdAorKwkJCTs7CisrCisrICAg ICAgLVw/fC1oKQkJZnVuY191c2FnZQkJCQkJOzsKKysgICAgICAtLWhlbHApCQlvcHRfaGVscD06 CQkJCQk7OworKyAgICAgIC0taGVscC1hbGwpCW9wdF9oZWxwPSc6IGhlbHAtYWxsJwkJCQk7Owor KyAgICAgIC0tdmVyc2lvbikJZnVuY192ZXJzaW9uCQkJCQk7OworKworKyAgICAgIC0qKQkJZnVu Y19mYXRhbF9oZWxwICJ1bnJlY29nbml6ZWQgb3B0aW9uIFxgJG9wdCciCTs7CisrCisrICAgICAg KikJCW5vbm9wdD0iJG9wdCIKKysJCQlicmVhaworKwkJCTs7CisrICAgIGVzYWMKKysgIGRvbmUK KysKKysKKysgIGNhc2UgJGhvc3QgaW4KKysgICAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKnB3MzIq IHwgKmNlZ2NjKikKKysgICAgICAjIGRvbid0IGVsaW1pbmF0ZSBkdXBsaWNhdGlvbnMgaW4gJHBv c3RkZXBzIGFuZCAkcHJlZGVwcworKyAgICAgIG9wdF9kdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJh dGVkX2RlcHM9OgorKyAgICAgIDs7CisrICAgICopCisrICAgICAgb3B0X2R1cGxpY2F0ZV9jb21w aWxlcl9nZW5lcmF0ZWRfZGVwcz0kb3B0X2R1cGxpY2F0ZV9kZXBzCisrICAgICAgOzsKKysgIGVz YWMKKysKKysgICMgSGF2aW5nIHdhcm5lZCBhYm91dCBhbGwgbWlzLXNwZWNpZmllZCBvcHRpb25z LCBiYWlsIG91dCBpZgorKyAgIyBhbnl0aGluZyB3YXMgd3JvbmcuCisrICAkZXhpdF9jbWQgJEVY SVRfRkFJTFVSRQorK30KKysKKysjIGZ1bmNfY2hlY2tfdmVyc2lvbl9tYXRjaAorKyMgRW5zdXJl IHRoYXQgd2UgYXJlIHVzaW5nIG00IG1hY3JvcywgYW5kIGxpYnRvb2wgc2NyaXB0IGZyb20gdGhl IHNhbWUKKysjIHJlbGVhc2Ugb2YgbGlidG9vbC4KKytmdW5jX2NoZWNrX3ZlcnNpb25fbWF0Y2gg KCkKKyt7CisrICBpZiB0ZXN0ICIkcGFja2FnZV9yZXZpc2lvbiIgIT0gIiRtYWNyb19yZXZpc2lv biI7IHRoZW4KKysgICAgaWYgdGVzdCAiJFZFUlNJT04iICE9ICIkbWFjcm9fdmVyc2lvbiI7IHRo ZW4KKysgICAgICBpZiB0ZXN0IC16ICIkbWFjcm9fdmVyc2lvbiI7IHRoZW4KKysgICAgICAgIGNh dCA+JjIgPDxfTFRfRU9GCisrJHByb2duYW1lOiBWZXJzaW9uIG1pc21hdGNoIGVycm9yLiAgVGhp cyBpcyAkUEFDS0FHRSAkVkVSU0lPTiwgYnV0IHRoZQorKyRwcm9nbmFtZTogZGVmaW5pdGlvbiBv ZiB0aGlzIExUX0lOSVQgY29tZXMgZnJvbSBhbiBvbGRlciByZWxlYXNlLgorKyRwcm9nbmFtZTog WW91IHNob3VsZCByZWNyZWF0ZSBhY2xvY2FsLm00IHdpdGggbWFjcm9zIGZyb20gJFBBQ0tBR0Ug JFZFUlNJT04KKyskcHJvZ25hbWU6IGFuZCBydW4gYXV0b2NvbmYgYWdhaW4uCisrX0xUX0VPRgor KyAgICAgIGVsc2UKKysgICAgICAgIGNhdCA+JjIgPDxfTFRfRU9GCisrJHByb2duYW1lOiBWZXJz aW9uIG1pc21hdGNoIGVycm9yLiAgVGhpcyBpcyAkUEFDS0FHRSAkVkVSU0lPTiwgYnV0IHRoZQor KyRwcm9nbmFtZTogZGVmaW5pdGlvbiBvZiB0aGlzIExUX0lOSVQgY29tZXMgZnJvbSAkUEFDS0FH RSAkbWFjcm9fdmVyc2lvbi4KKyskcHJvZ25hbWU6IFlvdSBzaG91bGQgcmVjcmVhdGUgYWNsb2Nh bC5tNCB3aXRoIG1hY3JvcyBmcm9tICRQQUNLQUdFICRWRVJTSU9OCisrJHByb2duYW1lOiBhbmQg cnVuIGF1dG9jb25mIGFnYWluLgorK19MVF9FT0YKKysgICAgICBmaQorKyAgICBlbHNlCisrICAg ICAgY2F0ID4mMiA8PF9MVF9FT0YKKyskcHJvZ25hbWU6IFZlcnNpb24gbWlzbWF0Y2ggZXJyb3Iu ICBUaGlzIGlzICRQQUNLQUdFICRWRVJTSU9OLCByZXZpc2lvbiAkcGFja2FnZV9yZXZpc2lvbiwK KyskcHJvZ25hbWU6IGJ1dCB0aGUgZGVmaW5pdGlvbiBvZiB0aGlzIExUX0lOSVQgY29tZXMgZnJv bSByZXZpc2lvbiAkbWFjcm9fcmV2aXNpb24uCisrJHByb2duYW1lOiBZb3Ugc2hvdWxkIHJlY3Jl YXRlIGFjbG9jYWwubTQgd2l0aCBtYWNyb3MgZnJvbSByZXZpc2lvbiAkcGFja2FnZV9yZXZpc2lv bgorKyRwcm9nbmFtZTogb2YgJFBBQ0tBR0UgJFZFUlNJT04gYW5kIHJ1biBhdXRvY29uZiBhZ2Fp bi4KKytfTFRfRU9GCisrICAgIGZpCisrCisrICAgIGV4aXQgJEVYSVRfTUlTTUFUQ0gKKysgIGZp CisrfQorKworKworKyMjIC0tLS0tLS0tLS0tICMjCisrIyMgICAgTWFpbi4gICAgIyMKKysjIyAt LS0tLS0tLS0tLSAjIworKworKyRvcHRfaGVscCB8fCB7CisrICAjIFNhbml0eSBjaGVja3MgZmly c3Q6CisrICBmdW5jX2NoZWNrX3ZlcnNpb25fbWF0Y2gKKysKKysgIGlmIHRlc3QgIiRidWlsZF9s aWJ0b29sX2xpYnMiICE9IHllcyAmJiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiICE9IHllczsgdGhl bgorKyAgICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gIm5vdCBjb25maWd1cmVkIHRvIGJ1aWxk IGFueSBraW5kIG9mIGxpYnJhcnkiCisrICBmaQorKworKyAgdGVzdCAteiAiJG1vZGUiICYmIGZ1 bmNfZmF0YWxfZXJyb3IgImVycm9yOiB5b3UgbXVzdCBzcGVjaWZ5IGEgTU9ERS4iCisrCisrCisr ICAjIERhcndpbiBzdWNrcworKyAgZXZhbCBzdGRfc2hyZXh0PVwiJHNocmV4dF9jbWRzXCIKKysK KysKKysgICMgT25seSBleGVjdXRlIG1vZGUgaXMgYWxsb3dlZCB0byBoYXZlIC1kbG9wZW4gZmxh Z3MuCisrICBpZiB0ZXN0IC1uICIkZXhlY3V0ZV9kbGZpbGVzIiAmJiB0ZXN0ICIkbW9kZSIgIT0g ZXhlY3V0ZTsgdGhlbgorKyAgICBmdW5jX2Vycm9yICJ1bnJlY29nbml6ZWQgb3B0aW9uIFxgLWRs b3BlbiciCisrICAgICRFQ0hPICIkaGVscCIgMT4mMgorKyAgICBleGl0ICRFWElUX0ZBSUxVUkUK KysgIGZpCisrCisrICAjIENoYW5nZSB0aGUgaGVscCBtZXNzYWdlIHRvIGEgbW9kZS1zcGVjaWZp YyBvbmUuCisrICBnZW5lcmljX2hlbHA9IiRoZWxwIgorKyAgaGVscD0iVHJ5IFxgJHByb2duYW1l IC0taGVscCAtLW1vZGU9JG1vZGUnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKKyt9CisrCisrCisr IyBmdW5jX2xhbGliX3AgZmlsZQorKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgYC5sYScg bGlicmFyeSBvciBgLmxvJyBvYmplY3QgZmlsZS4KKysjIFRoaXMgZnVuY3Rpb24gaXMgb25seSBh IGJhc2ljIHNhbml0eSBjaGVjazsgaXQgd2lsbCBoYXJkbHkgZmx1c2ggb3V0CisrIyBkZXRlcm1p bmVkIGltcG9zdGVycy4KKytmdW5jX2xhbGliX3AgKCkKKyt7CisrICAgIHRlc3QgLWYgIiQxIiAm JgorKyAgICAgICRTRUQgLWUgNHEgIiQxIiAyPi9kZXYvbnVsbCBcCisrICAgICAgICB8ICRHUkVQ ICJeIyBHZW5lcmF0ZWQgYnkgLiokUEFDS0FHRSIgPiAvZGV2L251bGwgMj4mMQorK30KKysKKysj IGZ1bmNfbGFsaWJfdW5zYWZlX3AgZmlsZQorKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wg YC5sYScgbGlicmFyeSBvciBgLmxvJyBvYmplY3QgZmlsZS4KKysjIFRoaXMgZnVuY3Rpb24gaW1w bGVtZW50cyB0aGUgc2FtZSBjaGVjayBhcyBmdW5jX2xhbGliX3Agd2l0aG91dAorKyMgcmVzb3J0 aW5nIHRvIGV4dGVybmFsIHByb2dyYW1zLiAgVG8gdGhpcyBlbmQsIGl0IHJlZGlyZWN0cyBzdGRp biBhbmQKKysjIGNsb3NlcyBpdCBhZnRlcndhcmRzLCB3aXRob3V0IHNhdmluZyB0aGUgb3JpZ2lu YWwgZmlsZSBkZXNjcmlwdG9yLgorKyMgQXMgYSBzYWZldHkgbWVhc3VyZSwgdXNlIGl0IG9ubHkg d2hlcmUgYSBuZWdhdGl2ZSByZXN1bHQgd291bGQgYmUKKysjIGZhdGFsIGFueXdheS4gIFdvcmtz IGlmIGBmaWxlJyBkb2VzIG5vdCBleGlzdC4KKytmdW5jX2xhbGliX3Vuc2FmZV9wICgpCisrewor KyAgICBsYWxpYl9wPW5vCisrICAgIGlmIHRlc3QgLWYgIiQxIiAmJiB0ZXN0IC1yICIkMSIgJiYg ZXhlYyA1PCYwIDwiJDEiOyB0aGVuCisrCWZvciBsYWxpYl9wX2wgaW4gMSAyIDMgNAorKwlkbwor KwkgICAgcmVhZCBsYWxpYl9wX2xpbmUKKysJICAgIGNhc2UgIiRsYWxpYl9wX2xpbmUiIGluCisr CQlcI1wgR2VuZXJhdGVkXCBieVwgKiRQQUNLQUdFKiApIGxhbGliX3A9eWVzOyBicmVhazs7Cisr CSAgICBlc2FjCisrCWRvbmUKKysJZXhlYyAwPCY1IDU8Ji0KKysgICAgZmkKKysgICAgdGVzdCAi JGxhbGliX3AiID0geWVzCisrfQorKworKyMgZnVuY19sdHdyYXBwZXJfc2NyaXB0X3AgZmlsZQor KyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQKKysjIFRoaXMgZnVu Y3Rpb24gaXMgb25seSBhIGJhc2ljIHNhbml0eSBjaGVjazsgaXQgd2lsbCBoYXJkbHkgZmx1c2gg b3V0CisrIyBkZXRlcm1pbmVkIGltcG9zdGVycy4KKytmdW5jX2x0d3JhcHBlcl9zY3JpcHRfcCAo KQorK3sKKysgICAgZnVuY19sYWxpYl9wICIkMSIKKyt9CisrCisrIyBmdW5jX2x0d3JhcHBlcl9l eGVjdXRhYmxlX3AgZmlsZQorKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgd3JhcHBlciBl eGVjdXRhYmxlCisrIyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYSBiYXNpYyBzYW5pdHkgY2hlY2s7 IGl0IHdpbGwgaGFyZGx5IGZsdXNoIG91dAorKyMgZGV0ZXJtaW5lZCBpbXBvc3RlcnMuCisrZnVu Y19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICgpCisreworKyAgICBmdW5jX2x0d3JhcHBlcl9leGVj X3N1ZmZpeD0KKysgICAgY2FzZSAkMSBpbgorKyAgICAqLmV4ZSkgOzsKKysgICAgKikgZnVuY19s dHdyYXBwZXJfZXhlY19zdWZmaXg9LmV4ZSA7OworKyAgICBlc2FjCisrICAgICRHUkVQICIkbWFn aWNfZXhlIiAiJDEkZnVuY19sdHdyYXBwZXJfZXhlY19zdWZmaXgiID4vZGV2L251bGwgMj4mMQor K30KKysKKysjIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgZmlsZQorKyMgQXNzdW1lcyBmaWxl IGlzIGFuIGx0d3JhcHBlcl9leGVjdXRhYmxlCisrIyB1c2VzICRmaWxlIHRvIGRldGVybWluZSB0 aGUgYXBwcm9wcmlhdGUgZmlsZW5hbWUgZm9yIGEKKysjIHRlbXBvcmFyeSBsdHdyYXBwZXJfc2Ny aXB0LgorK2Z1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgKCkKKyt7CisrICAgIGZ1bmNfbHR3cmFw cGVyX3NjcmlwdG5hbWVfcmVzdWx0PSIiCisrICAgIGlmIGZ1bmNfbHR3cmFwcGVyX2V4ZWN1dGFi bGVfcCAiJDEiOyB0aGVuCisrCWZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiQxIiAiIiAiLiIK KysJZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCWZ1 bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdC8kb2Jq ZGlyLyR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0fV9sdHNod3JhcHBlciIKKysgICAgZmkKKyt9Cisr CisrIyBmdW5jX2x0d3JhcHBlcl9wIGZpbGUKKysjIFRydWUgaWZmIEZJTEUgaXMgYSBsaWJ0b29s IHdyYXBwZXIgc2NyaXB0IG9yIHdyYXBwZXIgZXhlY3V0YWJsZQorKyMgVGhpcyBmdW5jdGlvbiBp cyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhhcmRseSBmbHVzaCBvdXQKKysj IGRldGVybWluZWQgaW1wb3N0ZXJzLgorK2Z1bmNfbHR3cmFwcGVyX3AgKCkKKyt7CisrICAgIGZ1 bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkMSIgfHwgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9w ICIkMSIKKyt9CisrCisrCisrIyBmdW5jX2V4ZWN1dGVfY21kcyBjb21tYW5kcyBmYWlsX2NtZAor KyMgRXhlY3V0ZSB0aWxkZS1kZWxpbWl0ZWQgQ09NTUFORFMuCisrIyBJZiBGQUlMX0NNRCBpcyBn aXZlbiwgZXZhbCB0aGF0IHVwb24gZmFpbHVyZS4KKysjIEZBSUxfQ01EIG1heSByZWFkLWFjY2Vz cyB0aGUgY3VycmVudCBjb21tYW5kIGluIHZhcmlhYmxlIENNRCEKKytmdW5jX2V4ZWN1dGVfY21k cyAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBzYXZlX2lmcz0kSUZTOyBJRlM9J34nCisr ICAgIGZvciBjbWQgaW4gJDE7IGRvCisrICAgICAgSUZTPSRzYXZlX2lmcworKyAgICAgIGV2YWwg Y21kPVwiJGNtZFwiCisrICAgICAgZnVuY19zaG93X2V2YWwgIiRjbWQiICIkezItOn0iCisrICAg IGRvbmUKKysgICAgSUZTPSRzYXZlX2lmcworK30KKysKKysKKysjIGZ1bmNfc291cmNlIGZpbGUK KysjIFNvdXJjZSBGSUxFLCBhZGRpbmcgZGlyZWN0b3J5IGNvbXBvbmVudCBpZiBuZWNlc3Nhcnku CisrIyBOb3RlIHRoYXQgaXQgaXMgbm90IG5lY2Vzc2FyeSBvbiBjeWd3aW4vbWluZ3cgdG8gYXBw ZW5kIGEgZG90IHRvCisrIyBGSUxFIGV2ZW4gaWYgYm90aCBGSUxFIGFuZCBGSUxFLmV4ZSBleGlz dDogYXV0b21hdGljLWFwcGVuZC0uZXhlCisrIyBiZWhhdmlvciBoYXBwZW5zIG9ubHkgZm9yIGV4 ZWMoMyksIG5vdCBmb3Igb3BlbigyKSEgIEFsc28sIHNvdXJjaW5nCisrIyBgRklMRS4nIGRvZXMg bm90IHdvcmsgb24gY3lnd2luIG1hbmFnZWQgbW91bnRzLgorK2Z1bmNfc291cmNlICgpCisrewor KyAgICAkb3B0X2RlYnVnCisrICAgIGNhc2UgJDEgaW4KKysgICAgKi8qIHwgKlxcKikJLiAiJDEi IDs7CisrICAgICopCQkuICIuLyQxIiA7OworKyAgICBlc2FjCisrfQorKworKworKyMgZnVuY19p bmZlcl90YWcgYXJnCisrIyBJbmZlciB0YWdnZWQgY29uZmlndXJhdGlvbiB0byB1c2UgaWYgYW55 IGFyZSBhdmFpbGFibGUgYW5kCisrIyBpZiBvbmUgd2Fzbid0IGNob3NlbiB2aWEgdGhlICItLXRh ZyIgY29tbWFuZCBsaW5lIG9wdGlvbi4KKysjIE9ubHkgYXR0ZW1wdCB0aGlzIGlmIHRoZSBjb21w aWxlciBpbiB0aGUgYmFzZSBjb21waWxlCisrIyBjb21tYW5kIGRvZXNuJ3QgbWF0Y2ggdGhlIGRl ZmF1bHQgY29tcGlsZXIuCisrIyBhcmcgaXMgdXN1YWxseSBvZiB0aGUgZm9ybSAnZ2NjIC4uLicK KytmdW5jX2luZmVyX3RhZyAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBpZiB0ZXN0IC1u ICIkYXZhaWxhYmxlX3RhZ3MiICYmIHRlc3QgLXogIiR0YWduYW1lIjsgdGhlbgorKyAgICAgIEND X3F1b3RlZD0KKysgICAgICBmb3IgYXJnIGluICRDQzsgZG8KKysgICAgICAgIGZ1bmNfcXVvdGVf Zm9yX2V2YWwgIiRhcmciCisrCUNDX3F1b3RlZD0iJENDX3F1b3RlZCAkZnVuY19xdW90ZV9mb3Jf ZXZhbF9yZXN1bHQiCisrICAgICAgZG9uZQorKyAgICAgIENDX2V4cGFuZGVkPWBmdW5jX2VjaG9f YWxsICRDQ2AKKysgICAgICBDQ19xdW90ZWRfZXhwYW5kZWQ9YGZ1bmNfZWNob19hbGwgJENDX3F1 b3RlZGAKKysgICAgICBjYXNlICRAIGluCisrICAgICAgIyBCbGFua3MgaW4gdGhlIGNvbW1hbmQg bWF5IGhhdmUgYmVlbiBzdHJpcHBlZCBieSB0aGUgY2FsbGluZyBzaGVsbCwKKysgICAgICAjIGJ1 dCBub3QgZnJvbSB0aGUgQ0MgZW52aXJvbm1lbnQgdmFyaWFibGUgd2hlbiBjb25maWd1cmUgd2Fz IHJ1bi4KKysgICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiICRDQ19leHBhbmRlZCAiKiB8ICIk Q0NfZXhwYW5kZWQgIiogfCBcCisrICAgICAgIiAkQ0NfcXVvdGVkIiogfCAiJENDX3F1b3RlZCAi KiB8ICIgJENDX3F1b3RlZF9leHBhbmRlZCAiKiB8ICIkQ0NfcXVvdGVkX2V4cGFuZGVkICIqKSA7 OworKyAgICAgICMgQmxhbmtzIGF0IHRoZSBzdGFydCBvZiAkYmFzZV9jb21waWxlIHdpbGwgY2F1 c2UgdGhpcyB0byBmYWlsCisrICAgICAgIyBpZiB3ZSBkb24ndCBjaGVjayBmb3IgdGhlbSBhcyB3 ZWxsLgorKyAgICAgICopCisrCWZvciB6IGluICRhdmFpbGFibGVfdGFnczsgZG8KKysJICBpZiAk R1JFUCAiXiMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogJHokIiA8ICIkcHJvZ3BhdGgi ID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICAjIEV2YWx1YXRlIHRoZSBjb25maWd1cmF0aW9uLgor KwkgICAgZXZhbCAiYCR7U0VEfSAtbiAtZSAnL14jICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05G SUc6ICckeickLywvXiMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6ICckeickL3AnIDwgJHBy b2dwYXRoYCIKKysJICAgIENDX3F1b3RlZD0KKysJICAgIGZvciBhcmcgaW4gJENDOyBkbworKwkg ICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNvbnRhaW5pbmcgb3RoZXIgc2hlbGwgbWV0YWNoYXJh Y3RlcnMuCisrCSAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisrCSAgICAgIENDX3F1 b3RlZD0iJENDX3F1b3RlZCAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCSAgICBkb25l CisrCSAgICBDQ19leHBhbmRlZD1gZnVuY19lY2hvX2FsbCAkQ0NgCisrCSAgICBDQ19xdW90ZWRf ZXhwYW5kZWQ9YGZ1bmNfZWNob19hbGwgJENDX3F1b3RlZGAKKysJICAgIGNhc2UgIiRAICIgaW4K KysJICAgICIgJENDICIqIHwgIiRDQyAiKiB8ICIgJENDX2V4cGFuZGVkICIqIHwgIiRDQ19leHBh bmRlZCAiKiB8IFwKKysJICAgICIgJENDX3F1b3RlZCIqIHwgIiRDQ19xdW90ZWQgIiogfCAiICRD Q19xdW90ZWRfZXhwYW5kZWQgIiogfCAiJENDX3F1b3RlZF9leHBhbmRlZCAiKikKKysJICAgICAg IyBUaGUgY29tcGlsZXIgaW4gdGhlIGJhc2UgY29tcGlsZSBjb21tYW5kIG1hdGNoZXMKKysJICAg ICAgIyB0aGUgb25lIGluIHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbi4KKysJICAgICAgIyBBc3N1 bWUgdGhpcyBpcyB0aGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb24gd2Ugd2FudC4KKysJICAgICAgdGFn bmFtZT0kegorKwkgICAgICBicmVhaworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgIGZpCisr CWRvbmUKKysJIyBJZiAkdGFnbmFtZSBzdGlsbCBpc24ndCBzZXQsIHRoZW4gbm8gdGFnZ2VkIGNv bmZpZ3VyYXRpb24KKysJIyB3YXMgZm91bmQgYW5kIGxldCB0aGUgdXNlciBrbm93IHRoYXQgdGhl ICItLXRhZyIgY29tbWFuZAorKwkjIGxpbmUgb3B0aW9uIG11c3QgYmUgdXNlZC4KKysJaWYgdGVz dCAteiAiJHRhZ25hbWUiOyB0aGVuCisrCSAgZnVuY19lY2hvICJ1bmFibGUgdG8gaW5mZXIgdGFn Z2VkIGNvbmZpZ3VyYXRpb24iCisrCSAgZnVuY19mYXRhbF9lcnJvciAic3BlY2lmeSBhIHRhZyB3 aXRoIFxgLS10YWcnIgorKyMJZWxzZQorKyMJICBmdW5jX3ZlcmJvc2UgInVzaW5nICR0YWduYW1l IHRhZ2dlZCBjb25maWd1cmF0aW9uIgorKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAgZmkK Kyt9CisrCisrCisrCisrIyBmdW5jX3dyaXRlX2xpYnRvb2xfb2JqZWN0IG91dHB1dF9uYW1lIHBp Y19uYW1lIG5vbnBpY19uYW1lCisrIyBDcmVhdGUgYSBsaWJ0b29sIG9iamVjdCBmaWxlIChhbmFs b2dvdXMgdG8gYSAiLmxhIiBmaWxlKSwKKysjIGJ1dCBkb24ndCBjcmVhdGUgaXQgaWYgd2UncmUg ZG9pbmcgYSBkcnkgcnVuLgorK2Z1bmNfd3JpdGVfbGlidG9vbF9vYmplY3QgKCkKKyt7CisrICAg IHdyaXRlX2xpYm9iaj0kezF9CisrICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0g eWVzOyB0aGVuCisrICAgICAgd3JpdGVfbG9iaj1cJyR7Mn1cJworKyAgICBlbHNlCisrICAgICAg d3JpdGVfbG9iaj1ub25lCisrICAgIGZpCisrCisrICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGli cyIgPSB5ZXM7IHRoZW4KKysgICAgICB3cml0ZV9vbGRvYmo9XCckezN9XCcKKysgICAgZWxzZQor KyAgICAgIHdyaXRlX29sZG9iaj1ub25lCisrICAgIGZpCisrCisrICAgICRvcHRfZHJ5X3J1biB8 fCB7CisrICAgICAgY2F0ID4ke3dyaXRlX2xpYm9ian1UIDw8RU9GCisrIyAkd3JpdGVfbGlib2Jq IC0gYSBsaWJ0b29sIG9iamVjdCBmaWxlCisrIyBHZW5lcmF0ZWQgYnkgJFBST0dSQU0gKEdOVSAk UEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OCisrIworKyMgUGxlYXNlIERPIE5PVCBkZWxldGUg dGhpcyBmaWxlIQorKyMgSXQgaXMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHRoZSBsaWJyYXJ5Lgor KworKyMgTmFtZSBvZiB0aGUgUElDIG9iamVjdC4KKytwaWNfb2JqZWN0PSR3cml0ZV9sb2JqCisr CisrIyBOYW1lIG9mIHRoZSBub24tUElDIG9iamVjdAorK25vbl9waWNfb2JqZWN0PSR3cml0ZV9v bGRvYmoKKysKKytFT0YKKysgICAgICAkTVYgIiR7d3JpdGVfbGlib2JqfVQiICIke3dyaXRlX2xp Ym9ian0iCisrICAgIH0KKyt9CisrCisrIyBmdW5jX21vZGVfY29tcGlsZSBhcmcuLi4KKytmdW5j X21vZGVfY29tcGlsZSAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICAjIEdldCB0aGUgY29t cGlsYXRpb24gY29tbWFuZCBhbmQgdGhlIHNvdXJjZSBmaWxlLgorKyAgICBiYXNlX2NvbXBpbGU9 CisrICAgIHNyY2ZpbGU9IiRub25vcHQiICAjICBhbHdheXMga2VlcCBhIG5vbi1lbXB0eSB2YWx1 ZSBpbiAic3JjZmlsZSIKKysgICAgc3VwcHJlc3Nfb3B0PXllcworKyAgICBzdXBwcmVzc19vdXRw dXQ9CisrICAgIGFyZ19tb2RlPW5vcm1hbAorKyAgICBsaWJvYmo9CisrICAgIGxhdGVyPQorKyAg ICBwaWVfZmxhZz0KKysKKysgICAgZm9yIGFyZworKyAgICBkbworKyAgICAgIGNhc2UgJGFyZ19t b2RlIGluCisrICAgICAgYXJnICApCisrCSMgZG8gbm90ICJjb250aW51ZSIuICBJbnN0ZWFkLCBh ZGQgdGhpcyB0byBiYXNlX2NvbXBpbGUKKysJbGFzdGFyZz0iJGFyZyIKKysJYXJnX21vZGU9bm9y bWFsCisrCTs7CisrCisrICAgICAgdGFyZ2V0ICkKKysJbGlib2JqPSIkYXJnIgorKwlhcmdfbW9k ZT1ub3JtYWwKKysJY29udGludWUKKysJOzsKKysKKysgICAgICBub3JtYWwgKQorKwkjIEFjY2Vw dCBhbnkgY29tbWFuZC1saW5lIG9wdGlvbnMuCisrCWNhc2UgJGFyZyBpbgorKwktbykKKysJICB0 ZXN0IC1uICIkbGlib2JqIiAmJiBcCisrCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJ5b3UgY2Fubm90 IHNwZWNpZnkgXGAtbycgbW9yZSB0aGFuIG9uY2UiCisrCSAgYXJnX21vZGU9dGFyZ2V0CisrCSAg Y29udGludWUKKysJICA7OworKworKwktcGllIHwgLWZwaWUgfCAtZlBJRSkKKysgICAgICAgICAg cGllX2ZsYWc9IiRwaWVfZmxhZyAkYXJnIgorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysKKysJLXNo YXJlZCB8IC1zdGF0aWMgfCAtcHJlZmVyLXBpYyB8IC1wcmVmZXItbm9uLXBpYykKKysJICBsYXRl cj0iJGxhdGVyICRhcmciCisrCSAgY29udGludWUKKysJICA7OworKworKwktbm8tc3VwcHJlc3Mp CisrCSAgc3VwcHJlc3Nfb3B0PW5vCisrCSAgY29udGludWUKKysJICA7OworKworKwktWGNvbXBp bGVyKQorKwkgIGFyZ19tb2RlPWFyZyAgIyAgdGhlIG5leHQgb25lIGdvZXMgaW50byB0aGUgImJh c2VfY29tcGlsZSIgYXJnIGxpc3QKKysJICBjb250aW51ZSAgICAgICMgIFRoZSBjdXJyZW50ICJz cmNmaWxlIiB3aWxsIGVpdGhlciBiZSByZXRhaW5lZCBvcgorKwkgIDs7ICAgICAgICAgICAgIyAg cmVwbGFjZWQgbGF0ZXIuICBJIHdvdWxkIGd1ZXNzIHRoYXQgd291bGQgYmUgYSBidWcuCisrCisr CS1XYywqKQorKwkgIGZ1bmNfc3RyaXBuYW1lICctV2MsJyAnJyAiJGFyZyIKKysJICBhcmdzPSRm dW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJICBsYXN0YXJnPQorKwkgIHNhdmVfaWZzPSIkSUZTIjsg SUZTPScsJworKwkgIGZvciBhcmcgaW4gJGFyZ3M7IGRvCisrCSAgICBJRlM9IiRzYXZlX2lmcyIK KysJICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisrCSAgICBsYXN0YXJnPSIkbGFzdGFy ZyAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCSAgZG9uZQorKwkgIElGUz0iJHNhdmVf aWZzIgorKwkgIGZ1bmNfc3RyaXBuYW1lICcgJyAnJyAiJGxhc3RhcmciCisrCSAgbGFzdGFyZz0k ZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCisrCSAgIyBBZGQgdGhlIGFyZ3VtZW50cyB0byBiYXNl X2NvbXBpbGUuCisrCSAgYmFzZV9jb21waWxlPSIkYmFzZV9jb21waWxlICRsYXN0YXJnIgorKwkg IGNvbnRpbnVlCisrCSAgOzsKKysKKysJKikKKysJICAjIEFjY2VwdCB0aGUgY3VycmVudCBhcmd1 bWVudCBhcyB0aGUgc291cmNlIGZpbGUuCisrCSAgIyBUaGUgcHJldmlvdXMgInNyY2ZpbGUiIGJl Y29tZXMgdGhlIGN1cnJlbnQgYXJndW1lbnQuCisrCSAgIworKwkgIGxhc3Rhcmc9IiRzcmNmaWxl IgorKwkgIHNyY2ZpbGU9IiRhcmciCisrCSAgOzsKKysJZXNhYyAgIyAgY2FzZSAkYXJnCisrCTs7 CisrICAgICAgZXNhYyAgICAjICBjYXNlICRhcmdfbW9kZQorKworKyAgICAgICMgQWVzdGhldGlj YWxseSBxdW90ZSB0aGUgcHJldmlvdXMgYXJndW1lbnQuCisrICAgICAgZnVuY19xdW90ZV9mb3Jf ZXZhbCAiJGxhc3RhcmciCisrICAgICAgYmFzZV9jb21waWxlPSIkYmFzZV9jb21waWxlICRmdW5j X3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysgICAgZG9uZSAjIGZvciBhcmcKKysKKysgICAgY2Fz ZSAkYXJnX21vZGUgaW4KKysgICAgYXJnKQorKyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgInlvdSBt dXN0IHNwZWNpZnkgYW4gYXJndW1lbnQgZm9yIC1YY29tcGlsZSIKKysgICAgICA7OworKyAgICB0 YXJnZXQpCisrICAgICAgZnVuY19mYXRhbF9lcnJvciAieW91IG11c3Qgc3BlY2lmeSBhIHRhcmdl dCB3aXRoIFxgLW8nIgorKyAgICAgIDs7CisrICAgICopCisrICAgICAgIyBHZXQgdGhlIG5hbWUg b2YgdGhlIGxpYnJhcnkgb2JqZWN0LgorKyAgICAgIHRlc3QgLXogIiRsaWJvYmoiICYmIHsKKysJ ZnVuY19iYXNlbmFtZSAiJHNyY2ZpbGUiCisrCWxpYm9iaj0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0 IgorKyAgICAgIH0KKysgICAgICA7OworKyAgICBlc2FjCisrCisrICAgICMgUmVjb2duaXplIHNl dmVyYWwgZGlmZmVyZW50IGZpbGUgc3VmZml4ZXMuCisrICAgICMgSWYgdGhlIHVzZXIgc3BlY2lm aWVzIC1vIGZpbGUubywgaXQgaXMgcmVwbGFjZWQgd2l0aCBmaWxlLmxvCisrICAgIGNhc2UgJGxp Ym9iaiBpbgorKyAgICAqLltjQ0ZTaWZtc29dIHwgXAorKyAgICAqLmFkYSB8ICouYWRiIHwgKi5h ZHMgfCAqLmFzbSB8IFwKKysgICAgKi5jKysgfCAqLmNjIHwgKi5paSB8ICouY2xhc3MgfCAqLmNw cCB8ICouY3h4IHwgXAorKyAgICAqLltmRl1bMDldPyB8ICouZm9yIHwgKi5qYXZhIHwgKi5vYmog fCAqLnN4IHwgKi5jdSB8ICouY3VwKQorKyAgICAgIGZ1bmNfeGZvcm0gIiRsaWJvYmoiCisrICAg ICAgbGlib2JqPSRmdW5jX3hmb3JtX3Jlc3VsdAorKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysg ICAgY2FzZSAkbGlib2JqIGluCisrICAgICoubG8pIGZ1bmNfbG8ybyAiJGxpYm9iaiI7IG9iaj0k ZnVuY19sbzJvX3Jlc3VsdCA7OworKyAgICAqKQorKyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNh bm5vdCBkZXRlcm1pbmUgbmFtZSBvZiBsaWJyYXJ5IG9iamVjdCBmcm9tIFxgJGxpYm9iaiciCisr ICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBmdW5jX2luZmVyX3RhZyAkYmFzZV9jb21waWxl CisrCisrICAgIGZvciBhcmcgaW4gJGxhdGVyOyBkbworKyAgICAgIGNhc2UgJGFyZyBpbgorKyAg ICAgIC1zaGFyZWQpCisrCXRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllcyAmJiBcCisr CSAgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJjYW4gbm90IGJ1aWxkIGEgc2hhcmVkIGxpYnJh cnkiCisrCWJ1aWxkX29sZF9saWJzPW5vCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXN0 YXRpYykKKysJYnVpbGRfbGlidG9vbF9saWJzPW5vCisrCWJ1aWxkX29sZF9saWJzPXllcworKwlj b250aW51ZQorKwk7OworKworKyAgICAgIC1wcmVmZXItcGljKQorKwlwaWNfbW9kZT15ZXMKKysJ Y29udGludWUKKysJOzsKKysKKysgICAgICAtcHJlZmVyLW5vbi1waWMpCisrCXBpY19tb2RlPW5v CisrCWNvbnRpbnVlCisrCTs7CisrICAgICAgZXNhYworKyAgICBkb25lCisrCisrICAgIGZ1bmNf cXVvdGVfZm9yX2V2YWwgIiRsaWJvYmoiCisrICAgIHRlc3QgIlgkbGlib2JqIiAhPSAiWCRmdW5j X3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIgXAorKyAgICAgICYmICRFQ0hPICJYJGxpYm9iaiIgfCAk R1JFUCAnW11+I14qe307PD4/IiciJyInCSAmKCl8YCRbXScgXAorKyAgICAgICYmIGZ1bmNfd2Fy bmluZyAibGlib2JqIG5hbWUgXGAkbGlib2JqJyBtYXkgbm90IGNvbnRhaW4gc2hlbGwgc3BlY2lh bCBjaGFyYWN0ZXJzLiIKKysgICAgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJG9iaiIgIi8i ICIiCisrICAgIG9iam5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysgICAgeGRpcj0iJGZ1 bmNfZGlybmFtZV9yZXN1bHQiCisrICAgIGxvYmo9JHt4ZGlyfSRvYmpkaXIvJG9iam5hbWUKKysK KysgICAgdGVzdCAteiAiJGJhc2VfY29tcGlsZSIgJiYgXAorKyAgICAgIGZ1bmNfZmF0YWxfaGVs cCAieW91IG11c3Qgc3BlY2lmeSBhIGNvbXBpbGF0aW9uIGNvbW1hbmQiCisrCisrICAgICMgRGVs ZXRlIGFueSBsZWZ0b3ZlciBsaWJyYXJ5IG9iamVjdHMuCisrICAgIGlmIHRlc3QgIiRidWlsZF9v bGRfbGlicyIgPSB5ZXM7IHRoZW4KKysgICAgICByZW1vdmVsaXN0PSIkb2JqICRsb2JqICRsaWJv YmogJHtsaWJvYmp9VCIKKysgICAgZWxzZQorKyAgICAgIHJlbW92ZWxpc3Q9IiRsb2JqICRsaWJv YmogJHtsaWJvYmp9VCIKKysgICAgZmkKKysKKysgICAgIyBPbiBDeWd3aW4gdGhlcmUncyBubyAi cmVhbCIgUElDIGZsYWcgc28gd2UgbXVzdCBidWlsZCBib3RoIG9iamVjdCB0eXBlcworKyAgICBj YXNlICRob3N0X29zIGluCisrICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IG9zMiogfCBj ZWdjYyopCisrICAgICAgcGljX21vZGU9ZGVmYXVsdAorKyAgICAgIDs7CisrICAgIGVzYWMKKysg ICAgaWYgdGVzdCAiJHBpY19tb2RlIiA9IG5vICYmIHRlc3QgIiRkZXBsaWJzX2NoZWNrX21ldGhv ZCIgIT0gcGFzc19hbGw7IHRoZW4KKysgICAgICAjIG5vbi1QSUMgY29kZSBpbiBzaGFyZWQgbGli cmFyaWVzIGlzIG5vdCBzdXBwb3J0ZWQKKysgICAgICBwaWNfbW9kZT1kZWZhdWx0CisrICAgIGZp CisrCisrICAgICMgQ2FsY3VsYXRlIHRoZSBmaWxlbmFtZSBvZiB0aGUgb3V0cHV0IG9iamVjdCBp ZiBjb21waWxlciBkb2VzCisrICAgICMgbm90IHN1cHBvcnQgLW8gd2l0aCAtYworKyAgICBpZiB0 ZXN0ICIkY29tcGlsZXJfY19vIiA9IG5vOyB0aGVuCisrICAgICAgb3V0cHV0X29iaj1gJEVDSE8g IiRzcmNmaWxlIiB8ICRTRUQgJ3MlXi4qLyUlOyBzJVwuW14uXSokJSUnYC4ke29iamV4dH0KKysg ICAgICBsb2NrZmlsZT0iJG91dHB1dF9vYmoubG9jayIKKysgICAgZWxzZQorKyAgICAgIG91dHB1 dF9vYmo9CisrICAgICAgbmVlZF9sb2Nrcz1ubworKyAgICAgIGxvY2tmaWxlPQorKyAgICBmaQor KworKyAgICAjIExvY2sgdGhpcyBjcml0aWNhbCBzZWN0aW9uIGlmIGl0IGlzIG5lZWRlZAorKyAg ICAjIFdlIHVzZSB0aGlzIHNjcmlwdCBmaWxlIHRvIG1ha2UgdGhlIGxpbmssIGl0IGF2b2lkcyBj cmVhdGluZyBhIG5ldyBmaWxlCisrICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHllczsgdGhl bgorKyAgICAgIHVudGlsICRvcHRfZHJ5X3J1biB8fCBsbiAiJHByb2dwYXRoIiAiJGxvY2tmaWxl IiAyPi9kZXYvbnVsbDsgZG8KKysJZnVuY19lY2hvICJXYWl0aW5nIGZvciAkbG9ja2ZpbGUgdG8g YmUgcmVtb3ZlZCIKKysJc2xlZXAgMgorKyAgICAgIGRvbmUKKysgICAgZWxpZiB0ZXN0ICIkbmVl ZF9sb2NrcyIgPSB3YXJuOyB0aGVuCisrICAgICAgaWYgdGVzdCAtZiAiJGxvY2tmaWxlIjsgdGhl bgorKwkkRUNITyAiXAorKyoqKiBFUlJPUiwgJGxvY2tmaWxlIGV4aXN0cyBhbmQgY29udGFpbnM6 CisrYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgCisrCisrVGhpcyBpbmRpY2F0ZXMgdGhhdCBh bm90aGVyIHByb2Nlc3MgaXMgdHJ5aW5nIHRvIHVzZSB0aGUgc2FtZQorK3RlbXBvcmFyeSBvYmpl Y3QgZmlsZSwgYW5kIGxpYnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UKKyt5 b3VyIGNvbXBpbGVyIGRvZXMgbm90IHN1cHBvcnQgXGAtYycgYW5kIFxgLW8nIHRvZ2V0aGVyLiAg SWYgeW91CisrcmVwZWF0IHRoaXMgY29tcGlsYXRpb24sIGl0IG1heSBzdWNjZWVkLCBieSBjaGFu Y2UsIGJ1dCB5b3UgaGFkIGJldHRlcgorK2F2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikg aW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCisrY29tcGlsZXIuIgorKworKwkkb3B0 X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0CisrCWV4aXQgJEVYSVRfRkFJTFVSRQorKyAgICAg IGZpCisrICAgICAgcmVtb3ZlbGlzdD0iJHJlbW92ZWxpc3QgJG91dHB1dF9vYmoiCisrICAgICAg JEVDSE8gIiRzcmNmaWxlIiA+ICIkbG9ja2ZpbGUiCisrICAgIGZpCisrCisrICAgICRvcHRfZHJ5 X3J1biB8fCAkUk0gJHJlbW92ZWxpc3QKKysgICAgcmVtb3ZlbGlzdD0iJHJlbW92ZWxpc3QgJGxv Y2tmaWxlIgorKyAgICB0cmFwICckb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0OyBleGl0 ICRFWElUX0ZBSUxVUkUnIDEgMiAxNQorKworKyAgICBpZiB0ZXN0IC1uICIkZml4X3NyY2ZpbGVf cGF0aCI7IHRoZW4KKysgICAgICBldmFsIHNyY2ZpbGU9XCIkZml4X3NyY2ZpbGVfcGF0aFwiCisr ICAgIGZpCisrICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRzcmNmaWxlIgorKyAgICBxc3JjZmls ZT0kZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQKKysKKysgICAgIyBPbmx5IGJ1aWxkIGEgUElD IG9iamVjdCBpZiB3ZSBhcmUgYnVpbGRpbmcgbGlidG9vbCBsaWJyYXJpZXMuCisrICAgIGlmIHRl c3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrICAgICAgIyBXaXRob3V0IHRo aXMgYXNzaWdubWVudCwgYmFzZV9jb21waWxlIGdldHMgZW1wdGllZC4KKysgICAgICBmYnNkX2hp ZGVvdXNfc2hfYnVnPSRiYXNlX2NvbXBpbGUKKysKKysgICAgICBpZiB0ZXN0ICIkcGljX21vZGUi ICE9IG5vOyB0aGVuCisrCWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlICRwaWNfZmxh ZyIKKysgICAgICBlbHNlCisrCSMgRG9uJ3QgYnVpbGQgUElDIGNvZGUKKysJY29tbWFuZD0iJGJh c2VfY29tcGlsZSAkcXNyY2ZpbGUiCisrICAgICAgZmkKKysKKysgICAgICBmdW5jX21rZGlyX3Ag IiR4ZGlyJG9iamRpciIKKysKKysgICAgICBpZiB0ZXN0IC16ICIkb3V0cHV0X29iaiI7IHRoZW4K KysJIyBQbGFjZSBQSUMgb2JqZWN0cyBpbiAkb2JqZGlyCisrCWNvbW1hbmQ9IiRjb21tYW5kIC1v ICRsb2JqIgorKyAgICAgIGZpCisrCisrICAgICAgZnVuY19zaG93X2V2YWxfbG9jYWxlICIkY29t bWFuZCIJXAorKyAgICAgICAgICAndGVzdCAtbiAiJG91dHB1dF9vYmoiICYmICRSTSAkcmVtb3Zl bGlzdDsgZXhpdCAkRVhJVF9GQUlMVVJFJworKworKyAgICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tz IiA9IHdhcm4gJiYKKysJIHRlc3QgIlhgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAiICE9ICJY JHNyY2ZpbGUiOyB0aGVuCisrCSRFQ0hPICJcCisrKioqIEVSUk9SLCAkbG9ja2ZpbGUgY29udGFp bnM6CisrYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgCisrCisrYnV0IGl0IHNob3VsZCBjb250 YWluOgorKyRzcmNmaWxlCisrCisrVGhpcyBpbmRpY2F0ZXMgdGhhdCBhbm90aGVyIHByb2Nlc3Mg aXMgdHJ5aW5nIHRvIHVzZSB0aGUgc2FtZQorK3RlbXBvcmFyeSBvYmplY3QgZmlsZSwgYW5kIGxp YnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UKKyt5b3VyIGNvbXBpbGVyIGRv ZXMgbm90IHN1cHBvcnQgXGAtYycgYW5kIFxgLW8nIHRvZ2V0aGVyLiAgSWYgeW91CisrcmVwZWF0 IHRoaXMgY29tcGlsYXRpb24sIGl0IG1heSBzdWNjZWVkLCBieSBjaGFuY2UsIGJ1dCB5b3UgaGFk IGJldHRlcgorK2F2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikgaW4gdGhpcyBwbGF0Zm9y bSwgb3IgZ2V0IGEgYmV0dGVyCisrY29tcGlsZXIuIgorKworKwkkb3B0X2RyeV9ydW4gfHwgJFJN ICRyZW1vdmVsaXN0CisrCWV4aXQgJEVYSVRfRkFJTFVSRQorKyAgICAgIGZpCisrCisrICAgICAg IyBKdXN0IG1vdmUgdGhlIG9iamVjdCBpZiBuZWVkZWQsIHRoZW4gZ28gb24gdG8gY29tcGlsZSB0 aGUgbmV4dCBvbmUKKysgICAgICBpZiB0ZXN0IC1uICIkb3V0cHV0X29iaiIgJiYgdGVzdCAiWCRv dXRwdXRfb2JqIiAhPSAiWCRsb2JqIjsgdGhlbgorKwlmdW5jX3Nob3dfZXZhbCAnJE1WICIkb3V0 cHV0X29iaiIgIiRsb2JqIicgXAorKwkgICdlcnJvcj0kPzsgJG9wdF9kcnlfcnVuIHx8ICRSTSAk cmVtb3ZlbGlzdDsgZXhpdCAkZXJyb3InCisrICAgICAgZmkKKysKKysgICAgICAjIEFsbG93IGVy cm9yIG1lc3NhZ2VzIG9ubHkgZnJvbSB0aGUgZmlyc3QgY29tcGlsYXRpb24uCisrICAgICAgaWYg dGVzdCAiJHN1cHByZXNzX29wdCIgPSB5ZXM7IHRoZW4KKysJc3VwcHJlc3Nfb3V0cHV0PScgPi9k ZXYvbnVsbCAyPiYxJworKyAgICAgIGZpCisrICAgIGZpCisrCisrICAgICMgT25seSBidWlsZCBh IHBvc2l0aW9uLWRlcGVuZGVudCBvYmplY3QgaWYgd2UgYnVpbGQgb2xkIGxpYnJhcmllcy4KKysg ICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgorKyAgICAgIGlmIHRlc3Qg IiRwaWNfbW9kZSIgIT0geWVzOyB0aGVuCisrCSMgRG9uJ3QgYnVpbGQgUElDIGNvZGUKKysJY29t bWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUkcGllX2ZsYWciCisrICAgICAgZWxzZQorKwlj b21tYW5kPSIkYmFzZV9jb21waWxlICRxc3JjZmlsZSAkcGljX2ZsYWciCisrICAgICAgZmkKKysg ICAgICBpZiB0ZXN0ICIkY29tcGlsZXJfY19vIiA9IHllczsgdGhlbgorKwljb21tYW5kPSIkY29t bWFuZCAtbyAkb2JqIgorKyAgICAgIGZpCisrCisrICAgICAgIyBTdXBwcmVzcyBjb21waWxlciBv dXRwdXQgaWYgd2UgYWxyZWFkeSBkaWQgYSBQSUMgY29tcGlsYXRpb24uCisrICAgICAgY29tbWFu ZD0iJGNvbW1hbmQkc3VwcHJlc3Nfb3V0cHV0IgorKyAgICAgIGZ1bmNfc2hvd19ldmFsX2xvY2Fs ZSAiJGNvbW1hbmQiIFwKKysgICAgICAgICckb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0 OyBleGl0ICRFWElUX0ZBSUxVUkUnCisrCisrICAgICAgaWYgdGVzdCAiJG5lZWRfbG9ja3MiID0g d2FybiAmJgorKwkgdGVzdCAiWGBjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYCIgIT0gIlgkc3Jj ZmlsZSI7IHRoZW4KKysJJEVDSE8gIlwKKysqKiogRVJST1IsICRsb2NrZmlsZSBjb250YWluczoK KytgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAKKysKKytidXQgaXQgc2hvdWxkIGNvbnRhaW46 CisrJHNyY2ZpbGUKKysKKytUaGlzIGluZGljYXRlcyB0aGF0IGFub3RoZXIgcHJvY2VzcyBpcyB0 cnlpbmcgdG8gdXNlIHRoZSBzYW1lCisrdGVtcG9yYXJ5IG9iamVjdCBmaWxlLCBhbmQgbGlidG9v bCBjb3VsZCBub3Qgd29yayBhcm91bmQgaXQgYmVjYXVzZQorK3lvdXIgY29tcGlsZXIgZG9lcyBu b3Qgc3VwcG9ydCBcYC1jJyBhbmQgXGAtbycgdG9nZXRoZXIuICBJZiB5b3UKKytyZXBlYXQgdGhp cyBjb21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwgYnV0IHlvdSBoYWQgYmV0 dGVyCisrYXZvaWQgcGFyYWxsZWwgYnVpbGRzIChtYWtlIC1qKSBpbiB0aGlzIHBsYXRmb3JtLCBv ciBnZXQgYSBiZXR0ZXIKKytjb21waWxlci4iCisrCisrCSRvcHRfZHJ5X3J1biB8fCAkUk0gJHJl bW92ZWxpc3QKKysJZXhpdCAkRVhJVF9GQUlMVVJFCisrICAgICAgZmkKKysKKysgICAgICAjIEp1 c3QgbW92ZSB0aGUgb2JqZWN0IGlmIG5lZWRlZAorKyAgICAgIGlmIHRlc3QgLW4gIiRvdXRwdXRf b2JqIiAmJiB0ZXN0ICJYJG91dHB1dF9vYmoiICE9ICJYJG9iaiI7IHRoZW4KKysJZnVuY19zaG93 X2V2YWwgJyRNViAiJG91dHB1dF9vYmoiICIkb2JqIicgXAorKwkgICdlcnJvcj0kPzsgJG9wdF9k cnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdDsgZXhpdCAkZXJyb3InCisrICAgICAgZmkKKysgICAg ZmkKKysKKysgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysgICAgICBmdW5jX3dyaXRlX2xpYnRvb2xf b2JqZWN0ICIkbGlib2JqIiAiJG9iamRpci8kb2JqbmFtZSIgIiRvYmpuYW1lIgorKworKyAgICAg ICMgVW5sb2NrIHRoZSBjcml0aWNhbCBzZWN0aW9uIGlmIGl0IHdhcyBsb2NrZWQKKysgICAgICBp ZiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KKysJcmVtb3ZlbGlzdD0kbG9ja2ZpbGUK KysgICAgICAgICRSTSAiJGxvY2tmaWxlIgorKyAgICAgIGZpCisrICAgIH0KKysKKysgICAgZXhp dCAkRVhJVF9TVUNDRVNTCisrfQorKworKyRvcHRfaGVscCB8fCB7CisrICB0ZXN0ICIkbW9kZSIg PSBjb21waWxlICYmIGZ1bmNfbW9kZV9jb21waWxlICR7MSsiJEAifQorK30KKysKKytmdW5jX21v ZGVfaGVscCAoKQorK3sKKysgICAgIyBXZSBuZWVkIHRvIGRpc3BsYXkgaGVscCBmb3IgZWFjaCBv ZiB0aGUgbW9kZXMuCisrICAgIGNhc2UgJG1vZGUgaW4KKysgICAgICAiIikKKysgICAgICAgICMg R2VuZXJpYyBoZWxwIGlzIGV4dHJhY3RlZCBmcm9tIHRoZSB1c2FnZSBjb21tZW50cworKyAgICAg ICAgIyBhdCB0aGUgc3RhcnQgb2YgdGhpcyBmaWxlLgorKyAgICAgICAgZnVuY19oZWxwCisrICAg ICAgICA7OworKworKyAgICAgIGNsZWFuKQorKyAgICAgICAgJEVDSE8gXAorKyJVc2FnZTogJHBy b2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1jbGVhbiBSTSBbUk0tT1BUSU9OXS4uLiBGSUxFLi4u CisrCisrUmVtb3ZlIGZpbGVzIGZyb20gdGhlIGJ1aWxkIGRpcmVjdG9yeS4KKysKKytSTSBpcyB0 aGUgbmFtZSBvZiB0aGUgcHJvZ3JhbSB0byB1c2UgdG8gZGVsZXRlIGZpbGVzIGFzc29jaWF0ZWQg d2l0aCBlYWNoIEZJTEUKKysodHlwaWNhbGx5IFxgL2Jpbi9ybScpLiAgUk0tT1BUSU9OUyBhcmUg b3B0aW9ucyAoc3VjaCBhcyBcYC1mJykgdG8gYmUgcGFzc2VkCisrdG8gUk0uCisrCisrSWYgRklM RSBpcyBhIGxpYnRvb2wgbGlicmFyeSwgb2JqZWN0IG9yIHByb2dyYW0sIGFsbCB0aGUgZmlsZXMg YXNzb2NpYXRlZAorK3dpdGggaXQgYXJlIGRlbGV0ZWQuIE90aGVyd2lzZSwgb25seSBGSUxFIGl0 c2VsZiBpcyBkZWxldGVkIHVzaW5nIFJNLiIKKysgICAgICAgIDs7CisrCisrICAgICAgY29tcGls ZSkKKysgICAgICAkRUNITyBcCisrIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2Rl PWNvbXBpbGUgQ09NUElMRS1DT01NQU5ELi4uIFNPVVJDRUZJTEUKKysKKytDb21waWxlIGEgc291 cmNlIGZpbGUgaW50byBhIGxpYnRvb2wgbGlicmFyeSBvYmplY3QuCisrCisrVGhpcyBtb2RlIGFj Y2VwdHMgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIG9wdGlvbnM6CisrCisrICAtbyBPVVRQVVQt RklMRSAgICBzZXQgdGhlIG91dHB1dCBmaWxlIG5hbWUgdG8gT1VUUFVULUZJTEUKKysgIC1uby1z dXBwcmVzcyAgICAgIGRvIG5vdCBzdXBwcmVzcyBjb21waWxlciBvdXRwdXQgZm9yIG11bHRpcGxl IHBhc3NlcworKyAgLXByZWZlci1waWMgICAgICAgdHJ5IHRvIGJ1aWxkIFBJQyBvYmplY3RzIG9u bHkKKysgIC1wcmVmZXItbm9uLXBpYyAgIHRyeSB0byBidWlsZCBub24tUElDIG9iamVjdHMgb25s eQorKyAgLXNoYXJlZCAgICAgICAgICAgZG8gbm90IGJ1aWxkIGEgXGAubycgZmlsZSBzdWl0YWJs ZSBmb3Igc3RhdGljIGxpbmtpbmcKKysgIC1zdGF0aWMgICAgICAgICAgIG9ubHkgYnVpbGQgYSBc YC5vJyBmaWxlIHN1aXRhYmxlIGZvciBzdGF0aWMgbGlua2luZworKyAgLVdjLEZMQUcgICAgICAg ICAgcGFzcyBGTEFHIGRpcmVjdGx5IHRvIHRoZSBjb21waWxlcgorKworK0NPTVBJTEUtQ09NTUFO RCBpcyBhIGNvbW1hbmQgdG8gYmUgdXNlZCBpbiBjcmVhdGluZyBhIFxgc3RhbmRhcmQnIG9iamVj dCBmaWxlCisrZnJvbSB0aGUgZ2l2ZW4gU09VUkNFRklMRS4KKysKKytUaGUgb3V0cHV0IGZpbGUg bmFtZSBpcyBkZXRlcm1pbmVkIGJ5IHJlbW92aW5nIHRoZSBkaXJlY3RvcnkgY29tcG9uZW50IGZy b20KKytTT1VSQ0VGSUxFLCB0aGVuIHN1YnN0aXR1dGluZyB0aGUgQyBzb3VyY2UgY29kZSBzdWZm aXggXGAuYycgd2l0aCB0aGUKKytsaWJyYXJ5IG9iamVjdCBzdWZmaXgsIFxgLmxvJy4iCisrICAg ICAgICA7OworKworKyAgICAgIGV4ZWN1dGUpCisrICAgICAgICAkRUNITyBcCisrIlVzYWdlOiAk cHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWV4ZWN1dGUgQ09NTUFORCBbQVJHU10uLi4KKysK KytBdXRvbWF0aWNhbGx5IHNldCBsaWJyYXJ5IHBhdGgsIHRoZW4gcnVuIGEgcHJvZ3JhbS4KKysK KytUaGlzIG1vZGUgYWNjZXB0cyB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgb3B0aW9uczoKKysK KysgIC1kbG9wZW4gRklMRSAgICAgIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgRklMRSB0 byB0aGUgbGlicmFyeSBwYXRoCisrCisrVGhpcyBtb2RlIHNldHMgdGhlIGxpYnJhcnkgcGF0aCBl bnZpcm9ubWVudCB2YXJpYWJsZSBhY2NvcmRpbmcgdG8gXGAtZGxvcGVuJworK2ZsYWdzLgorKwor K0lmIGFueSBvZiB0aGUgQVJHUyBhcmUgbGlidG9vbCBleGVjdXRhYmxlIHdyYXBwZXJzLCB0aGVu IHRoZXkgYXJlIHRyYW5zbGF0ZWQKKytpbnRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgdW5pbnN0YWxs ZWQgYmluYXJ5LCBhbmQgYW55IG9mIHRoZWlyIHJlcXVpcmVkIGxpYnJhcnkKKytkaXJlY3Rvcmll cyBhcmUgYWRkZWQgdG8gdGhlIGxpYnJhcnkgcGF0aC4KKysKKytUaGVuLCBDT01NQU5EIGlzIGV4 ZWN1dGVkLCB3aXRoIEFSR1MgYXMgYXJndW1lbnRzLiIKKysgICAgICAgIDs7CisrCisrICAgICAg ZmluaXNoKQorKyAgICAgICAgJEVDSE8gXAorKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4u IC0tbW9kZT1maW5pc2ggW0xJQkRJUl0uLi4KKysKKytDb21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9u IG9mIGxpYnRvb2wgbGlicmFyaWVzLgorKworK0VhY2ggTElCRElSIGlzIGEgZGlyZWN0b3J5IHRo YXQgY29udGFpbnMgbGlidG9vbCBsaWJyYXJpZXMuCisrCisrVGhlIGNvbW1hbmRzIHRoYXQgdGhp cyBtb2RlIGV4ZWN1dGVzIG1heSByZXF1aXJlIHN1cGVydXNlciBwcml2aWxlZ2VzLiAgVXNlCisr dGhlIFxgLS1kcnktcnVuJyBvcHRpb24gaWYgeW91IGp1c3Qgd2FudCB0byBzZWUgd2hhdCB3b3Vs ZCBiZSBleGVjdXRlZC4iCisrICAgICAgICA7OworKworKyAgICAgIGluc3RhbGwpCisrICAgICAg ICAkRUNITyBcCisrIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWluc3RhbGwg SU5TVEFMTC1DT01NQU5ELi4uCisrCisrSW5zdGFsbCBleGVjdXRhYmxlcyBvciBsaWJyYXJpZXMu CisrCisrSU5TVEFMTC1DT01NQU5EIGlzIHRoZSBpbnN0YWxsYXRpb24gY29tbWFuZC4gIFRoZSBm aXJzdCBjb21wb25lbnQgc2hvdWxkIGJlCisrZWl0aGVyIHRoZSBcYGluc3RhbGwnIG9yIFxgY3An IHByb2dyYW0uCisrCisrVGhlIGZvbGxvd2luZyBjb21wb25lbnRzIG9mIElOU1RBTEwtQ09NTUFO RCBhcmUgdHJlYXRlZCBzcGVjaWFsbHk6CisrCisrICAtaW5zdC1wcmVmaXgtZGlyIFBSRUZJWC1E SVIgIFVzZSBQUkVGSVgtRElSIGFzIGEgc3RhZ2luZyBhcmVhIGZvciBpbnN0YWxsYXRpb24KKysK KytUaGUgcmVzdCBvZiB0aGUgY29tcG9uZW50cyBhcmUgaW50ZXJwcmV0ZWQgYXMgYXJndW1lbnRz IHRvIHRoYXQgY29tbWFuZCAob25seQorK0JTRC1jb21wYXRpYmxlIGluc3RhbGwgb3B0aW9ucyBh cmUgcmVjb2duaXplZCkuIgorKyAgICAgICAgOzsKKysKKysgICAgICBsaW5rKQorKyAgICAgICAg JEVDSE8gXAorKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1saW5rIExJTkst Q09NTUFORC4uLgorKworK0xpbmsgb2JqZWN0IGZpbGVzIG9yIGxpYnJhcmllcyB0b2dldGhlciB0 byBmb3JtIGFub3RoZXIgbGlicmFyeSwgb3IgdG8KKytjcmVhdGUgYW4gZXhlY3V0YWJsZSBwcm9n cmFtLgorKworK0xJTkstQ09NTUFORCBpcyBhIGNvbW1hbmQgdXNpbmcgdGhlIEMgY29tcGlsZXIg dGhhdCB5b3Ugd291bGQgdXNlIHRvIGNyZWF0ZQorK2EgcHJvZ3JhbSBmcm9tIHNldmVyYWwgb2Jq ZWN0IGZpbGVzLgorKworK1RoZSBmb2xsb3dpbmcgY29tcG9uZW50cyBvZiBMSU5LLUNPTU1BTkQg YXJlIHRyZWF0ZWQgc3BlY2lhbGx5OgorKworKyAgLWFsbC1zdGF0aWMgICAgICAgZG8gbm90IGRv IGFueSBkeW5hbWljIGxpbmtpbmcgYXQgYWxsCisrICAtYXZvaWQtdmVyc2lvbiAgICBkbyBub3Qg YWRkIGEgdmVyc2lvbiBzdWZmaXggaWYgcG9zc2libGUKKysgIC1iaW5kaXIgQklORElSICAgIHNw ZWNpZnkgcGF0aCB0byBiaW5hcmllcyBkaXJlY3RvcnkgKGZvciBzeXN0ZW1zIHdoZXJlCisrICAg ICAgICAgICAgICAgICAgICBsaWJyYXJpZXMgbXVzdCBiZSBmb3VuZCBpbiB0aGUgUEFUSCBzZXR0 aW5nIGF0IHJ1bnRpbWUpCisrICAtZGxvcGVuIEZJTEUgICAgICBcYC1kbHByZW9wZW4nIEZJTEUg aWYgaXQgY2Fubm90IGJlIGRsb3BlbmVkIGF0IHJ1bnRpbWUKKysgIC1kbHByZW9wZW4gRklMRSAg IGxpbmsgaW4gRklMRSBhbmQgYWRkIGl0cyBzeW1ib2xzIHRvIGx0X3ByZWxvYWRlZF9zeW1ib2xz CisrICAtZXhwb3J0LWR5bmFtaWMgICBhbGxvdyBzeW1ib2xzIGZyb20gT1VUUFVULUZJTEUgdG8g YmUgcmVzb2x2ZWQgd2l0aCBkbHN5bSgzKQorKyAgLWV4cG9ydC1zeW1ib2xzIFNZTUZJTEUKKysg ICAgICAgICAgICAgICAgICAgIHRyeSB0byBleHBvcnQgb25seSB0aGUgc3ltYm9scyBsaXN0ZWQg aW4gU1lNRklMRQorKyAgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4IFJFR0VYCisrICAgICAgICAgICAg ICAgICAgICB0cnkgdG8gZXhwb3J0IG9ubHkgdGhlIHN5bWJvbHMgbWF0Y2hpbmcgUkVHRVgKKysg IC1MTElCRElSICAgICAgICAgIHNlYXJjaCBMSUJESVIgZm9yIHJlcXVpcmVkIGluc3RhbGxlZCBs aWJyYXJpZXMKKysgIC1sTkFNRSAgICAgICAgICAgIE9VVFBVVC1GSUxFIHJlcXVpcmVzIHRoZSBp bnN0YWxsZWQgbGlicmFyeSBsaWJOQU1FCisrICAtbW9kdWxlICAgICAgICAgICBidWlsZCBhIGxp YnJhcnkgdGhhdCBjYW4gZGxvcGVuZWQKKysgIC1uby1mYXN0LWluc3RhbGwgIGRpc2FibGUgdGhl IGZhc3QtaW5zdGFsbCBtb2RlCisrICAtbm8taW5zdGFsbCAgICAgICBsaW5rIGEgbm90LWluc3Rh bGxhYmxlIGV4ZWN1dGFibGUKKysgIC1uby11bmRlZmluZWQgICAgIGRlY2xhcmUgdGhhdCBhIGxp YnJhcnkgZG9lcyBub3QgcmVmZXIgdG8gZXh0ZXJuYWwgc3ltYm9scworKyAgLW8gT1VUUFVULUZJ TEUgICAgY3JlYXRlIE9VVFBVVC1GSUxFIGZyb20gdGhlIHNwZWNpZmllZCBvYmplY3RzCisrICAt b2JqZWN0bGlzdCBGSUxFICBVc2UgYSBsaXN0IG9mIG9iamVjdCBmaWxlcyBmb3VuZCBpbiBGSUxF IHRvIHNwZWNpZnkgb2JqZWN0cworKyAgLXByZWNpb3VzLWZpbGVzLXJlZ2V4IFJFR0VYCisrICAg ICAgICAgICAgICAgICAgICBkb24ndCByZW1vdmUgb3V0cHV0IGZpbGVzIG1hdGNoaW5nIFJFR0VY CisrICAtcmVsZWFzZSBSRUxFQVNFICBzcGVjaWZ5IHBhY2thZ2UgcmVsZWFzZSBpbmZvcm1hdGlv bgorKyAgLXJwYXRoIExJQkRJUiAgICAgdGhlIGNyZWF0ZWQgbGlicmFyeSB3aWxsIGV2ZW50dWFs bHkgYmUgaW5zdGFsbGVkIGluIExJQkRJUgorKyAgLVJbIF1MSUJESVIgICAgICAgYWRkIExJQkRJ UiB0byB0aGUgcnVudGltZSBwYXRoIG9mIHByb2dyYW1zIGFuZCBsaWJyYXJpZXMKKysgIC1zaGFy ZWQgICAgICAgICAgIG9ubHkgZG8gZHluYW1pYyBsaW5raW5nIG9mIGxpYnRvb2wgbGlicmFyaWVz CisrICAtc2hyZXh0IFNVRkZJWCAgICBvdmVycmlkZSB0aGUgc3RhbmRhcmQgc2hhcmVkIGxpYnJh cnkgZmlsZSBleHRlbnNpb24KKysgIC1zdGF0aWMgICAgICAgICAgIGRvIG5vdCBkbyBhbnkgZHlu YW1pYyBsaW5raW5nIG9mIHVuaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzCisrICAtc3RhdGlj LWxpYnRvb2wtbGlicworKyAgICAgICAgICAgICAgICAgICAgZG8gbm90IGRvIGFueSBkeW5hbWlj IGxpbmtpbmcgb2YgbGlidG9vbCBsaWJyYXJpZXMKKysgIC12ZXJzaW9uLWluZm8gQ1VSUkVOVFs6 UkVWSVNJT05bOkFHRV1dCisrICAgICAgICAgICAgICAgICAgICBzcGVjaWZ5IGxpYnJhcnkgdmVy c2lvbiBpbmZvIFtlYWNoIHZhcmlhYmxlIGRlZmF1bHRzIHRvIDBdCisrICAtd2VhayBMSUJOQU1F ICAgICBkZWNsYXJlIHRoYXQgdGhlIHRhcmdldCBwcm92aWRlcyB0aGUgTElCTkFNRSBpbnRlcmZh Y2UKKysgIC1XYyxGTEFHCisrICAtWGNvbXBpbGVyIEZMQUcgICBwYXNzIGxpbmtlci1zcGVjaWZp YyBGTEFHIGRpcmVjdGx5IHRvIHRoZSBjb21waWxlcgorKyAgLVdsLEZMQUcKKysgIC1YbGlua2Vy IEZMQUcgICAgIHBhc3MgbGlua2VyLXNwZWNpZmljIEZMQUcgZGlyZWN0bHkgdG8gdGhlIGxpbmtl cgorKyAgLVhDQ2xpbmtlciBGTEFHICAgcGFzcyBsaW5rLXNwZWNpZmljIEZMQUcgdG8gdGhlIGNv bXBpbGVyIGRyaXZlciAoQ0MpCisrCisrQWxsIG90aGVyIG9wdGlvbnMgKGFyZ3VtZW50cyBiZWdp bm5pbmcgd2l0aCBcYC0nKSBhcmUgaWdub3JlZC4KKysKKytFdmVyeSBvdGhlciBhcmd1bWVudCBp cyB0cmVhdGVkIGFzIGEgZmlsZW5hbWUuICBGaWxlcyBlbmRpbmcgaW4gXGAubGEnIGFyZQorK3Ry ZWF0ZWQgYXMgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMsIG90aGVyIGZpbGVzIGFyZSBz dGFuZGFyZCBvciBsaWJyYXJ5Cisrb2JqZWN0IGZpbGVzLgorKworK0lmIHRoZSBPVVRQVVQtRklM RSBlbmRzIGluIFxgLmxhJywgdGhlbiBhIGxpYnRvb2wgbGlicmFyeSBpcyBjcmVhdGVkLAorK29u bHkgbGlicmFyeSBvYmplY3RzIChcYC5sbycgZmlsZXMpIG1heSBiZSBzcGVjaWZpZWQsIGFuZCBc YC1ycGF0aCcgaXMKKytyZXF1aXJlZCwgZXhjZXB0IHdoZW4gY3JlYXRpbmcgYSBjb252ZW5pZW5j ZSBsaWJyYXJ5LgorKworK0lmIE9VVFBVVC1GSUxFIGVuZHMgaW4gXGAuYScgb3IgXGAubGliJywg dGhlbiBhIHN0YW5kYXJkIGxpYnJhcnkgaXMgY3JlYXRlZAorK3VzaW5nIFxgYXInIGFuZCBcYHJh bmxpYicsIG9yIG9uIFdpbmRvd3MgdXNpbmcgXGBsaWInLgorKworK0lmIE9VVFBVVC1GSUxFIGVu ZHMgaW4gXGAubG8nIG9yIFxgLiR7b2JqZXh0fScsIHRoZW4gYSByZWxvYWRhYmxlIG9iamVjdCBm aWxlCisraXMgY3JlYXRlZCwgb3RoZXJ3aXNlIGFuIGV4ZWN1dGFibGUgcHJvZ3JhbSBpcyBjcmVh dGVkLiIKKysgICAgICAgIDs7CisrCisrICAgICAgdW5pbnN0YWxsKQorKyAgICAgICAgJEVDSE8g XAorKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT11bmluc3RhbGwgUk0gW1JN LU9QVElPTl0uLi4gRklMRS4uLgorKworK1JlbW92ZSBsaWJyYXJpZXMgZnJvbSBhbiBpbnN0YWxs YXRpb24gZGlyZWN0b3J5LgorKworK1JNIGlzIHRoZSBuYW1lIG9mIHRoZSBwcm9ncmFtIHRvIHVz ZSB0byBkZWxldGUgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggRklMRQorKyh0eXBpY2FsbHkg XGAvYmluL3JtJykuICBSTS1PUFRJT05TIGFyZSBvcHRpb25zIChzdWNoIGFzIFxgLWYnKSB0byBi ZSBwYXNzZWQKKyt0byBSTS4KKysKKytJZiBGSUxFIGlzIGEgbGlidG9vbCBsaWJyYXJ5LCBhbGwg dGhlIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBpdCBhcmUgZGVsZXRlZC4KKytPdGhlcndpc2UsIG9u bHkgRklMRSBpdHNlbGYgaXMgZGVsZXRlZCB1c2luZyBSTS4iCisrICAgICAgICA7OworKworKyAg ICAgICopCisrICAgICAgICBmdW5jX2ZhdGFsX2hlbHAgImludmFsaWQgb3BlcmF0aW9uIG1vZGUg XGAkbW9kZSciCisrICAgICAgICA7OworKyAgICBlc2FjCisrCisrICAgIGVjaG8KKysgICAgJEVD SE8gIlRyeSBcYCRwcm9nbmFtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IG90 aGVyIG1vZGVzLiIKKyt9CisrCisrIyBOb3cgdGhhdCB3ZSd2ZSBjb2xsZWN0ZWQgYSBwb3NzaWJs ZSAtLW1vZGUgYXJnLCBzaG93IGhlbHAgaWYgbmVjZXNzYXJ5CisraWYgJG9wdF9oZWxwOyB0aGVu CisrICBpZiB0ZXN0ICIkb3B0X2hlbHAiID0gOjsgdGhlbgorKyAgICBmdW5jX21vZGVfaGVscAor KyAgZWxzZQorKyAgICB7CisrICAgICAgZnVuY19oZWxwIG5vZXhpdAorKyAgICAgIGZvciBtb2Rl IGluIGNvbXBpbGUgbGluayBleGVjdXRlIGluc3RhbGwgZmluaXNoIHVuaW5zdGFsbCBjbGVhbjsg ZG8KKysJZnVuY19tb2RlX2hlbHAKKysgICAgICBkb25lCisrICAgIH0gfCBzZWQgLW4gJzFwOyAy LCRzL15Vc2FnZTovICBvcjogL3AnCisrICAgIHsKKysgICAgICBmdW5jX2hlbHAgbm9leGl0Cisr ICAgICAgZm9yIG1vZGUgaW4gY29tcGlsZSBsaW5rIGV4ZWN1dGUgaW5zdGFsbCBmaW5pc2ggdW5p bnN0YWxsIGNsZWFuOyBkbworKwllY2hvCisrCWZ1bmNfbW9kZV9oZWxwCisrICAgICAgZG9uZQor KyAgICB9IHwKKysgICAgc2VkICcxZAorKyAgICAgIC9eV2hlbiByZXBvcnRpbmcvLC9eUmVwb3J0 L3sKKysJSAorKwlkCisrICAgICAgfQorKyAgICAgICR4CisrICAgICAgL2luZm9ybWF0aW9uIGFi b3V0IG90aGVyIG1vZGVzL2QKKysgICAgICAvbW9yZSBkZXRhaWxlZCAuKk1PREUvZAorKyAgICAg IHMvXlVzYWdlOi4qLS1tb2RlPVwoW14gXSpcKSAuKi9EZXNjcmlwdGlvbiBvZiBcMSBtb2RlOi8n CisrICBmaQorKyAgZXhpdCAkPworK2ZpCisrCisrCisrIyBmdW5jX21vZGVfZXhlY3V0ZSBhcmcu Li4KKytmdW5jX21vZGVfZXhlY3V0ZSAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICAjIFRo ZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgY29tbWFuZCBuYW1lLgorKyAgICBjbWQ9IiRub25vcHQi CisrICAgIHRlc3QgLXogIiRjbWQiICYmIFwKKysgICAgICBmdW5jX2ZhdGFsX2hlbHAgInlvdSBt dXN0IHNwZWNpZnkgYSBDT01NQU5EIgorKworKyAgICAjIEhhbmRsZSAtZGxvcGVuIGZsYWdzIGlt bWVkaWF0ZWx5LgorKyAgICBmb3IgZmlsZSBpbiAkZXhlY3V0ZV9kbGZpbGVzOyBkbworKyAgICAg IHRlc3QgLWYgIiRmaWxlIiBcCisrCXx8IGZ1bmNfZmF0YWxfaGVscCAiXGAkZmlsZScgaXMgbm90 IGEgZmlsZSIKKysKKysgICAgICBkaXI9CisrICAgICAgY2FzZSAkZmlsZSBpbgorKyAgICAgICou bGEpCisrCSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMgYSBsaWJ0b29sIGFyY2hp dmUuCisrCWZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRmaWxlIiBcCisrCSAgfHwgZnVuY19mYXRhbF9o ZWxwICJcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKKysKKysJIyBSZWFk IHRoZSBsaWJ0b29sIGxpYnJhcnkuCisrCWRsbmFtZT0KKysJbGlicmFyeV9uYW1lcz0KKysJZnVu Y19zb3VyY2UgIiRmaWxlIgorKworKwkjIFNraXAgdGhpcyBsaWJyYXJ5IGlmIGl0IGNhbm5vdCBi ZSBkbG9wZW5lZC4KKysJaWYgdGVzdCAteiAiJGRsbmFtZSI7IHRoZW4KKysJICAjIFdhcm4gaWYg aXQgd2FzIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYm IFwKKysJICAgIGZ1bmNfd2FybmluZyAiXGAkZmlsZScgd2FzIG5vdCBsaW5rZWQgd2l0aCBcYC1l eHBvcnQtZHluYW1pYyciCisrCSAgY29udGludWUKKysJZmkKKysKKysJZnVuY19kaXJuYW1lICIk ZmlsZSIgIiIgIi4iCisrCWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisrCisrCWlmIHRlc3Qg LWYgIiRkaXIvJG9iamRpci8kZGxuYW1lIjsgdGhlbgorKwkgIGRpcj0iJGRpci8kb2JqZGlyIgor KwllbHNlCisrCSAgaWYgdGVzdCAhIC1mICIkZGlyLyRkbG5hbWUiOyB0aGVuCisrCSAgICBmdW5j X2ZhdGFsX2Vycm9yICJjYW5ub3QgZmluZCBcYCRkbG5hbWUnIGluIFxgJGRpcicgb3IgXGAkZGly LyRvYmpkaXInIgorKwkgIGZpCisrCWZpCisrCTs7CisrCisrICAgICAgKi5sbykKKysJIyBKdXN0 IGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIC5sbyBmaWxlLgorKwlmdW5jX2Rpcm5h bWUgIiRmaWxlIiAiIiAiLiIKKysJZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysJOzsKKysK KysgICAgICAqKQorKwlmdW5jX3dhcm5pbmcgIlxgLWRsb3BlbicgaXMgaWdub3JlZCBmb3Igbm9u LWxpYnRvb2wgbGlicmFyaWVzIGFuZCBvYmplY3RzIgorKwljb250aW51ZQorKwk7OworKyAgICAg IGVzYWMKKysKKysgICAgICAjIEdldCB0aGUgYWJzb2x1dGUgcGF0aG5hbWUuCisrICAgICAgYWJz ZGlyPWBjZCAiJGRpciIgJiYgcHdkYAorKyAgICAgIHRlc3QgLW4gIiRhYnNkaXIiICYmIGRpcj0i JGFic2RpciIKKysKKysgICAgICAjIE5vdyBhZGQgdGhlIGRpcmVjdG9yeSB0byBzaGxpYnBhdGhf dmFyLgorKyAgICAgIGlmIGV2YWwgInRlc3QgLXogXCJcJCRzaGxpYnBhdGhfdmFyXCIiOyB0aGVu CisrCWV2YWwgIiRzaGxpYnBhdGhfdmFyPVwiXCRkaXJcIiIKKysgICAgICBlbHNlCisrCWV2YWwg IiRzaGxpYnBhdGhfdmFyPVwiXCRkaXI6XCQkc2hsaWJwYXRoX3ZhclwiIgorKyAgICAgIGZpCisr ICAgIGRvbmUKKysKKysgICAgIyBUaGlzIHZhcmlhYmxlIHRlbGxzIHdyYXBwZXIgc2NyaXB0cyBq dXN0IHRvIHNldCBzaGxpYnBhdGhfdmFyCisrICAgICMgcmF0aGVyIHRoYW4gcnVubmluZyB0aGVp ciBwcm9ncmFtcy4KKysgICAgbGlidG9vbF9leGVjdXRlX21hZ2ljPSIkbWFnaWMiCisrCisrICAg ICMgQ2hlY2sgaWYgYW55IG9mIHRoZSBhcmd1bWVudHMgaXMgYSB3cmFwcGVyIHNjcmlwdC4KKysg ICAgYXJncz0KKysgICAgZm9yIGZpbGUKKysgICAgZG8KKysgICAgICBjYXNlICRmaWxlIGluCisr ICAgICAgLSogfCAqLmxhIHwgKi5sbyApIDs7CisrICAgICAgKikKKysJIyBEbyBhIHRlc3QgdG8g c2VlIGlmIHRoaXMgaXMgcmVhbGx5IGEgbGlidG9vbCBwcm9ncmFtLgorKwlpZiBmdW5jX2x0d3Jh cHBlcl9zY3JpcHRfcCAiJGZpbGUiOyB0aGVuCisrCSAgZnVuY19zb3VyY2UgIiRmaWxlIgorKwkg ICMgVHJhbnNmb3JtIGFyZyB0byB3cmFwcGVkIG5hbWUuCisrCSAgZmlsZT0iJHByb2dkaXIvJHBy b2dyYW0iCisrCWVsaWYgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICIkZmlsZSI7IHRoZW4K KysJICBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICIkZmlsZSIKKysJICBmdW5jX3NvdXJjZSAi JGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0IgorKwkgICMgVHJhbnNmb3JtIGFyZyB0 byB3cmFwcGVkIG5hbWUuCisrCSAgZmlsZT0iJHByb2dkaXIvJHByb2dyYW0iCisrCWZpCisrCTs7 CisrICAgICAgZXNhYworKyAgICAgICMgUXVvdGUgYXJndW1lbnRzICh0byBwcmVzZXJ2ZSBzaGVs bCBtZXRhY2hhcmFjdGVycykuCisrICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGZpbGUiCisr ICAgICAgYXJncz0iJGFyZ3MgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorKyAgICBkb25l CisrCisrICAgIGlmIHRlc3QgIlgkb3B0X2RyeV9ydW4iID0gWGZhbHNlOyB0aGVuCisrICAgICAg aWYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiOyB0aGVuCisrCSMgRXhwb3J0IHRoZSBzaGxpYnBh dGhfdmFyLgorKwlldmFsICJleHBvcnQgJHNobGlicGF0aF92YXIiCisrICAgICAgZmkKKysKKysg ICAgICAjIFJlc3RvcmUgc2F2ZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzCisrICAgICAgZm9yIGx0 X3ZhciBpbiBMQU5HIExBTkdVQUdFIExDX0FMTCBMQ19DVFlQRSBMQ19DT0xMQVRFIExDX01FU1NB R0VTCisrICAgICAgZG8KKysJZXZhbCAiaWYgdGVzdCBcIlwke3NhdmVfJGx0X3ZhcitzZXR9XCIg PSBzZXQ7IHRoZW4KKysgICAgICAgICAgICAgICAgJGx0X3Zhcj1cJHNhdmVfJGx0X3ZhcjsgZXhw b3J0ICRsdF92YXIKKysJICAgICAgZWxzZQorKwkJJGx0X3Vuc2V0ICRsdF92YXIKKysJICAgICAg ZmkiCisrICAgICAgZG9uZQorKworKyAgICAgICMgTm93IHByZXBhcmUgdG8gYWN0dWFsbHkgZXhl YyB0aGUgY29tbWFuZC4KKysgICAgICBleGVjX2NtZD0iXCRjbWQkYXJncyIKKysgICAgZWxzZQor KyAgICAgICMgRGlzcGxheSB3aGF0IHdvdWxkIGJlIGRvbmUuCisrICAgICAgaWYgdGVzdCAtbiAi JHNobGlicGF0aF92YXIiOyB0aGVuCisrCWV2YWwgIlwkRUNITyBcIlwkc2hsaWJwYXRoX3Zhcj1c JCRzaGxpYnBhdGhfdmFyXCIiCisrCWVjaG8gImV4cG9ydCAkc2hsaWJwYXRoX3ZhciIKKysgICAg ICBmaQorKyAgICAgICRFQ0hPICIkY21kJGFyZ3MiCisrICAgICAgZXhpdCAkRVhJVF9TVUNDRVNT CisrICAgIGZpCisrfQorKworK3Rlc3QgIiRtb2RlIiA9IGV4ZWN1dGUgJiYgZnVuY19tb2RlX2V4 ZWN1dGUgJHsxKyIkQCJ9CisrCisrCisrIyBmdW5jX21vZGVfZmluaXNoIGFyZy4uLgorK2Z1bmNf bW9kZV9maW5pc2ggKCkKKyt7CisrICAgICRvcHRfZGVidWcKKysgICAgbGliZGlycz0iJG5vbm9w dCIKKysgICAgYWRtaW5jbWRzPQorKworKyAgICBpZiB0ZXN0IC1uICIkZmluaXNoX2NtZHMkZmlu aXNoX2V2YWwiICYmIHRlc3QgLW4gIiRsaWJkaXJzIjsgdGhlbgorKyAgICAgIGZvciBkaXIKKysg ICAgICBkbworKwlsaWJkaXJzPSIkbGliZGlycyAkZGlyIgorKyAgICAgIGRvbmUKKysKKysgICAg ICBmb3IgbGliZGlyIGluICRsaWJkaXJzOyBkbworKwlpZiB0ZXN0IC1uICIkZmluaXNoX2NtZHMi OyB0aGVuCisrCSAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIGZpbmlzaCBjb21tYW5kcy4KKysJ ICBmdW5jX2V4ZWN1dGVfY21kcyAiJGZpbmlzaF9jbWRzIiAnYWRtaW5jbWRzPSIkYWRtaW5jbWRz CisrJyIkY21kIiciJworKwlmaQorKwlpZiB0ZXN0IC1uICIkZmluaXNoX2V2YWwiOyB0aGVuCisr CSAgIyBEbyB0aGUgc2luZ2xlIGZpbmlzaF9ldmFsLgorKwkgIGV2YWwgY21kcz1cIiRmaW5pc2hf ZXZhbFwiCisrCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgIiRjbWRzIiB8fCBhZG1pbmNtZHM9IiRh ZG1pbmNtZHMKKysgICAgICAgJGNtZHMiCisrCWZpCisrICAgICAgZG9uZQorKyAgICBmaQorKwor KyAgICAjIEV4aXQgaGVyZSBpZiB0aGV5IHdhbnRlZCBzaWxlbnQgbW9kZS4KKysgICAgJG9wdF9z aWxlbnQgJiYgZXhpdCAkRVhJVF9TVUNDRVNTCisrCisrICAgIGVjaG8gIi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0i CisrICAgIGVjaG8gIkxpYnJhcmllcyBoYXZlIGJlZW4gaW5zdGFsbGVkIGluOiIKKysgICAgZm9y IGxpYmRpciBpbiAkbGliZGlyczsgZG8KKysgICAgICAkRUNITyAiICAgJGxpYmRpciIKKysgICAg ZG9uZQorKyAgICBlY2hvCisrICAgIGVjaG8gIklmIHlvdSBldmVyIGhhcHBlbiB0byB3YW50IHRv IGxpbmsgYWdhaW5zdCBpbnN0YWxsZWQgbGlicmFyaWVzIgorKyAgICBlY2hvICJpbiBhIGdpdmVu IGRpcmVjdG9yeSwgTElCRElSLCB5b3UgbXVzdCBlaXRoZXIgdXNlIGxpYnRvb2wsIGFuZCIKKysg ICAgZWNobyAic3BlY2lmeSB0aGUgZnVsbCBwYXRobmFtZSBvZiB0aGUgbGlicmFyeSwgb3IgdXNl IHRoZSBcYC1MTElCRElSJyIKKysgICAgZWNobyAiZmxhZyBkdXJpbmcgbGlua2luZyBhbmQgZG8g YXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmc6IgorKyAgICBpZiB0ZXN0IC1uICIkc2hsaWJw YXRoX3ZhciI7IHRoZW4KKysgICAgICBlY2hvICIgICAtIGFkZCBMSUJESVIgdG8gdGhlIFxgJHNo bGlicGF0aF92YXInIGVudmlyb25tZW50IHZhcmlhYmxlIgorKyAgICAgIGVjaG8gIiAgICAgZHVy aW5nIGV4ZWN1dGlvbiIKKysgICAgZmkKKysgICAgaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsg dGhlbgorKyAgICAgIGVjaG8gIiAgIC0gYWRkIExJQkRJUiB0byB0aGUgXGAkcnVucGF0aF92YXIn IGVudmlyb25tZW50IHZhcmlhYmxlIgorKyAgICAgIGVjaG8gIiAgICAgZHVyaW5nIGxpbmtpbmci CisrICAgIGZpCisrICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsg dGhlbgorKyAgICAgIGxpYmRpcj1MSUJESVIKKysgICAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY1wiCisrCisrICAgICAgJEVDSE8gIiAgIC0gdXNlIHRoZSBcYCRmbGFn JyBsaW5rZXIgZmxhZyIKKysgICAgZmkKKysgICAgaWYgdGVzdCAtbiAiJGFkbWluY21kcyI7IHRo ZW4KKysgICAgICAkRUNITyAiICAgLSBoYXZlIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgcnVu IHRoZXNlIGNvbW1hbmRzOiRhZG1pbmNtZHMiCisrICAgIGZpCisrICAgIGlmIHRlc3QgLWYgL2V0 Yy9sZC5zby5jb25mOyB0aGVuCisrICAgICAgZWNobyAiICAgLSBoYXZlIHlvdXIgc3lzdGVtIGFk bWluaXN0cmF0b3IgYWRkIExJQkRJUiB0byBcYC9ldGMvbGQuc28uY29uZiciCisrICAgIGZpCisr ICAgIGVjaG8KKysKKysgICAgZWNobyAiU2VlIGFueSBvcGVyYXRpbmcgc3lzdGVtIGRvY3VtZW50 YXRpb24gYWJvdXQgc2hhcmVkIGxpYnJhcmllcyBmb3IiCisrICAgIGNhc2UgJGhvc3QgaW4KKysg ICAgICBzb2xhcmlzMi5bNjc4OV18c29sYXJpczIuMVswLTldKQorKyAgICAgICAgZWNobyAibW9y ZSBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgbGQoMSksIGNybGUoMSkgYW5kIGxkLnNvKDgpIG1h bnVhbCIKKysJZWNobyAicGFnZXMuIgorKwk7OworKyAgICAgICopCisrICAgICAgICBlY2hvICJt b3JlIGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSBsZCgxKSBhbmQgbGQuc28oOCkgbWFudWFsIHBh Z2VzLiIKKysgICAgICAgIDs7CisrICAgIGVzYWMKKysgICAgZWNobyAiLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIK KysgICAgZXhpdCAkRVhJVF9TVUNDRVNTCisrfQorKworK3Rlc3QgIiRtb2RlIiA9IGZpbmlzaCAm JiBmdW5jX21vZGVfZmluaXNoICR7MSsiJEAifQorKworKworKyMgZnVuY19tb2RlX2luc3RhbGwg YXJnLi4uCisrZnVuY19tb2RlX2luc3RhbGwgKCkKKyt7CisrICAgICRvcHRfZGVidWcKKysgICAg IyBUaGVyZSBtYXkgYmUgYW4gb3B0aW9uYWwgc2goMSkgYXJndW1lbnQgYXQgdGhlIGJlZ2lubmlu ZyBvZgorKyAgICAjIGluc3RhbGxfcHJvZyAoZXNwZWNpYWxseSBvbiBXaW5kb3dzIE5UKS4KKysg ICAgaWYgdGVzdCAiJG5vbm9wdCIgPSAiJFNIRUxMIiB8fCB0ZXN0ICIkbm9ub3B0IiA9IC9iaW4v c2ggfHwKKysgICAgICAgIyBBbGxvdyB0aGUgdXNlIG9mIEdOVSBzaHRvb2wncyBpbnN0YWxsIGNv bW1hbmQuCisrICAgICAgIGNhc2UgJG5vbm9wdCBpbiAqc2h0b29sKikgOjs7ICopIGZhbHNlOzsg ZXNhYzsgdGhlbgorKyAgICAgICMgQWVzdGhldGljYWxseSBxdW90ZSBpdC4KKysgICAgICBmdW5j X3F1b3RlX2Zvcl9ldmFsICIkbm9ub3B0IgorKyAgICAgIGluc3RhbGxfcHJvZz0iJGZ1bmNfcXVv dGVfZm9yX2V2YWxfcmVzdWx0ICIKKysgICAgICBhcmc9JDEKKysgICAgICBzaGlmdAorKyAgICBl bHNlCisrICAgICAgaW5zdGFsbF9wcm9nPQorKyAgICAgIGFyZz0kbm9ub3B0CisrICAgIGZpCisr CisrICAgICMgVGhlIHJlYWwgZmlyc3QgYXJndW1lbnQgc2hvdWxkIGJlIHRoZSBuYW1lIG9mIHRo ZSBpbnN0YWxsYXRpb24gcHJvZ3JhbS4KKysgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIGl0Lgor KyAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgorKyAgICBpbnN0YWxsX3Byb2c9IiRpbnN0 YWxsX3Byb2ckZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrICAgIGluc3RhbGxfc2hhcmVk X3Byb2c9JGluc3RhbGxfcHJvZworKyAgICBjYXNlICIgJGluc3RhbGxfcHJvZyAiIGluCisrICAg ICAgKltcXFwgL11jcFwgKikgaW5zdGFsbF9jcD06IDs7CisrICAgICAgKikgaW5zdGFsbF9jcD1m YWxzZSA7OworKyAgICBlc2FjCisrCisrICAgICMgV2UgbmVlZCB0byBhY2NlcHQgYXQgbGVhc3Qg YWxsIHRoZSBCU0QgaW5zdGFsbCBmbGFncy4KKysgICAgZGVzdD0KKysgICAgZmlsZXM9CisrICAg IG9wdHM9CisrICAgIHByZXY9CisrICAgIGluc3RhbGxfdHlwZT0KKysgICAgaXNkaXI9bm8KKysg ICAgc3RyaXBtZT0KKysgICAgbm9fbW9kZT06CisrICAgIGZvciBhcmcKKysgICAgZG8KKysgICAg ICBhcmcyPQorKyAgICAgIGlmIHRlc3QgLW4gIiRkZXN0IjsgdGhlbgorKwlmaWxlcz0iJGZpbGVz ICRkZXN0IgorKwlkZXN0PSRhcmcKKysJY29udGludWUKKysgICAgICBmaQorKworKyAgICAgIGNh c2UgJGFyZyBpbgorKyAgICAgIC1kKSBpc2Rpcj15ZXMgOzsKKysgICAgICAtZikKKysJaWYgJGlu c3RhbGxfY3A7IHRoZW4gOjsgZWxzZQorKwkgIHByZXY9JGFyZworKwlmaQorKwk7OworKyAgICAg IC1nIHwgLW0gfCAtbykKKysJcHJldj0kYXJnCisrCTs7CisrICAgICAgLXMpCisrCXN0cmlwbWU9 IiAtcyIKKysJY29udGludWUKKysJOzsKKysgICAgICAtKikKKysJOzsKKysgICAgICAqKQorKwkj IElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZGVkIGFuIGFyZ3VtZW50LCB0aGVuIHNraXAgaXQu CisrCWlmIHRlc3QgLW4gIiRwcmV2IjsgdGhlbgorKwkgIGlmIHRlc3QgIngkcHJldiIgPSB4LW0g JiYgdGVzdCAtbiAiJGluc3RhbGxfb3ZlcnJpZGVfbW9kZSI7IHRoZW4KKysJICAgIGFyZzI9JGlu c3RhbGxfb3ZlcnJpZGVfbW9kZQorKwkgICAgbm9fbW9kZT1mYWxzZQorKwkgIGZpCisrCSAgcHJl dj0KKysJZWxzZQorKwkgIGRlc3Q9JGFyZworKwkgIGNvbnRpbnVlCisrCWZpCisrCTs7CisrICAg ICAgZXNhYworKworKyAgICAgICMgQWVzdGhldGljYWxseSBxdW90ZSB0aGUgYXJndW1lbnQuCisr ICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKysgICAgICBpbnN0YWxsX3Byb2c9IiRp bnN0YWxsX3Byb2cgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorKyAgICAgIGlmIHRlc3Qg LW4gIiRhcmcyIjsgdGhlbgorKwlmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnMiIKKysgICAgICBm aQorKyAgICAgIGluc3RhbGxfc2hhcmVkX3Byb2c9IiRpbnN0YWxsX3NoYXJlZF9wcm9nICRmdW5j X3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysgICAgZG9uZQorKworKyAgICB0ZXN0IC16ICIkaW5z dGFsbF9wcm9nIiAmJiBcCisrICAgICAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5 IGFuIGluc3RhbGwgcHJvZ3JhbSIKKysKKysgICAgdGVzdCAtbiAiJHByZXYiICYmIFwKKysgICAg ICBmdW5jX2ZhdGFsX2hlbHAgInRoZSBcYCRwcmV2JyBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1l bnQiCisrCisrICAgIGlmIHRlc3QgLW4gIiRpbnN0YWxsX292ZXJyaWRlX21vZGUiICYmICRub19t b2RlOyB0aGVuCisrICAgICAgaWYgJGluc3RhbGxfY3A7IHRoZW4gOjsgZWxzZQorKwlmdW5jX3F1 b3RlX2Zvcl9ldmFsICIkaW5zdGFsbF9vdmVycmlkZV9tb2RlIgorKwlpbnN0YWxsX3NoYXJlZF9w cm9nPSIkaW5zdGFsbF9zaGFyZWRfcHJvZyAtbSAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQi CisrICAgICAgZmkKKysgICAgZmkKKysKKysgICAgaWYgdGVzdCAteiAiJGZpbGVzIjsgdGhlbgor KyAgICAgIGlmIHRlc3QgLXogIiRkZXN0IjsgdGhlbgorKwlmdW5jX2ZhdGFsX2hlbHAgIm5vIGZp bGUgb3IgZGVzdGluYXRpb24gc3BlY2lmaWVkIgorKyAgICAgIGVsc2UKKysJZnVuY19mYXRhbF9o ZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGEgZGVzdGluYXRpb24iCisrICAgICAgZmkKKysgICAgZmkK KysKKysgICAgIyBTdHJpcCBhbnkgdHJhaWxpbmcgc2xhc2ggZnJvbSB0aGUgZGVzdGluYXRpb24u CisrICAgIGZ1bmNfc3RyaXBuYW1lICcnICcvJyAiJGRlc3QiCisrICAgIGRlc3Q9JGZ1bmNfc3Ry aXBuYW1lX3Jlc3VsdAorKworKyAgICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoZSBkZXN0aW5hdGlv biBpcyBhIGRpcmVjdG9yeS4KKysgICAgdGVzdCAtZCAiJGRlc3QiICYmIGlzZGlyPXllcworKyAg ICBpZiB0ZXN0ICIkaXNkaXIiID0geWVzOyB0aGVuCisrICAgICAgZGVzdGRpcj0iJGRlc3QiCisr ICAgICAgZGVzdG5hbWU9CisrICAgIGVsc2UKKysgICAgICBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2Vu YW1lICIkZGVzdCIgIiIgIi4iCisrICAgICAgZGVzdGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQi CisrICAgICAgZGVzdG5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysKKysgICAgICAjIE5v dCBhIGRpcmVjdG9yeSwgc28gY2hlY2sgdG8gc2VlIHRoYXQgdGhlcmUgaXMgb25seSBvbmUgZmls ZSBzcGVjaWZpZWQuCisrICAgICAgc2V0IGR1bW15ICRmaWxlczsgc2hpZnQKKysgICAgICB0ZXN0 ICIkIyIgLWd0IDEgJiYgXAorKwlmdW5jX2ZhdGFsX2hlbHAgIlxgJGRlc3QnIGlzIG5vdCBhIGRp cmVjdG9yeSIKKysgICAgZmkKKysgICAgY2FzZSAkZGVzdGRpciBpbgorKyAgICBbXFwvXSogfCBb QS1aYS16XTpbXFwvXSopIDs7CisrICAgICopCisrICAgICAgZm9yIGZpbGUgaW4gJGZpbGVzOyBk bworKwljYXNlICRmaWxlIGluCisrCSoubG8pIDs7CisrCSopCisrCSAgZnVuY19mYXRhbF9oZWxw ICJcYCRkZXN0ZGlyJyBtdXN0IGJlIGFuIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIgorKwkgIDs7 CisrCWVzYWMKKysgICAgICBkb25lCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICAjIFRo aXMgdmFyaWFibGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHZhcmlhYmxlcyBy YXRoZXIKKysgICAgIyB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMuCisrICAgIGxpYnRvb2xf aW5zdGFsbF9tYWdpYz0iJG1hZ2ljIgorKworKyAgICBzdGF0aWNsaWJzPQorKyAgICBmdXR1cmVf bGliZGlycz0KKysgICAgY3VycmVudF9saWJkaXJzPQorKyAgICBmb3IgZmlsZSBpbiAkZmlsZXM7 IGRvCisrCisrICAgICAgIyBEbyBlYWNoIGluc3RhbGxhdGlvbi4KKysgICAgICBjYXNlICRmaWxl IGluCisrICAgICAgKi4kbGliZXh0KQorKwkjIERvIHRoZSBzdGF0aWMgbGlicmFyaWVzIGxhdGVy LgorKwlzdGF0aWNsaWJzPSIkc3RhdGljbGlicyAkZmlsZSIKKysJOzsKKysKKysgICAgICAqLmxh KQorKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBhcmNoaXZl LgorKwlmdW5jX2xhbGliX3Vuc2FmZV9wICIkZmlsZSIgXAorKwkgIHx8IGZ1bmNfZmF0YWxfaGVs cCAiXGAkZmlsZScgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorKworKwlsaWJyYXJ5 X25hbWVzPQorKwlvbGRfbGlicmFyeT0KKysJcmVsaW5rX2NvbW1hbmQ9CisrCWZ1bmNfc291cmNl ICIkZmlsZSIKKysKKysJIyBBZGQgdGhlIGxpYmRpciB0byBjdXJyZW50X2xpYmRpcnMgaWYgaXQg aXMgdGhlIGRlc3RpbmF0aW9uLgorKwlpZiB0ZXN0ICJYJGRlc3RkaXIiID0gIlgkbGliZGlyIjsg dGhlbgorKwkgIGNhc2UgIiRjdXJyZW50X2xpYmRpcnMgIiBpbgorKwkgICoiICRsaWJkaXIgIiop IDs7CisrCSAgKikgY3VycmVudF9saWJkaXJzPSIkY3VycmVudF9saWJkaXJzICRsaWJkaXIiIDs7 CisrCSAgZXNhYworKwllbHNlCisrCSAgIyBOb3RlIHRoZSBsaWJkaXIgYXMgYSBmdXR1cmUgbGli ZGlyLgorKwkgIGNhc2UgIiRmdXR1cmVfbGliZGlycyAiIGluCisrCSAgKiIgJGxpYmRpciAiKikg OzsKKysJICAqKSBmdXR1cmVfbGliZGlycz0iJGZ1dHVyZV9saWJkaXJzICRsaWJkaXIiIDs7Cisr CSAgZXNhYworKwlmaQorKworKwlmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiLyIgIiIKKysJZGlyPSIk ZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysJZGlyPSIkZGlyJG9iamRpciIKKysKKysJaWYgdGVzdCAt biAiJHJlbGlua19jb21tYW5kIjsgdGhlbgorKwkgICMgRGV0ZXJtaW5lIHRoZSBwcmVmaXggdGhl IHVzZXIgaGFzIGFwcGxpZWQgdG8gb3VyIGZ1dHVyZSBkaXIuCisrCSAgaW5zdF9wcmVmaXhfZGly PWAkRUNITyAiJGRlc3RkaXIiIHwgJFNFRCAtZSAicyUkbGliZGlyXCQlJSJgCisrCisrCSAgIyBE b24ndCBhbGxvdyB0aGUgdXNlciB0byBwbGFjZSB1cyBvdXRzaWRlIG9mIG91ciBleHBlY3RlZAor KwkgICMgbG9jYXRpb24gYi9jIHRoaXMgcHJldmVudHMgZmluZGluZyBkZXBlbmRlbnQgbGlicmFy aWVzIHRoYXQKKysJICAjIGFyZSBpbnN0YWxsZWQgdG8gdGhlIHNhbWUgcHJlZml4LgorKwkgICMg QXQgcHJlc2VudCwgdGhpcyBjaGVjayBkb2Vzbid0IGFmZmVjdCB3aW5kb3dzIC5kbGwncyB0aGF0 CisrCSAgIyBhcmUgaW5zdGFsbGVkIGludG8gJGxpYmRpci8uLi9iaW4gKGN1cnJlbnRseSwgdGhh dCB3b3JrcyBmaW5lKQorKwkgICMgYnV0IGl0J3Mgc29tZXRoaW5nIHRvIGtlZXAgYW4gZXllIG9u LgorKwkgIHRlc3QgIiRpbnN0X3ByZWZpeF9kaXIiID0gIiRkZXN0ZGlyIiAmJiBcCisrCSAgICBm dW5jX2ZhdGFsX2Vycm9yICJlcnJvcjogY2Fubm90IGluc3RhbGwgXGAkZmlsZScgdG8gYSBkaXJl Y3Rvcnkgbm90IGVuZGluZyBpbiAkbGliZGlyIgorKworKwkgIGlmIHRlc3QgLW4gIiRpbnN0X3By ZWZpeF9kaXIiOyB0aGVuCisrCSAgICAjIFN0aWNrIHRoZSBpbnN0X3ByZWZpeF9kaXIgZGF0YSBp bnRvIHRoZSBsaW5rIGNvbW1hbmQuCisrCSAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIiRyZWxp bmtfY29tbWFuZCIgfCAkU0VEICJzJUBpbnN0X3ByZWZpeF9kaXJAJS1pbnN0LXByZWZpeC1kaXIg JGluc3RfcHJlZml4X2RpciUiYAorKwkgIGVsc2UKKysJICAgIHJlbGlua19jb21tYW5kPWAkRUNI TyAiJHJlbGlua19jb21tYW5kIiB8ICRTRUQgInMlQGluc3RfcHJlZml4X2RpckAlJSJgCisrCSAg ZmkKKysKKysJICBmdW5jX3dhcm5pbmcgInJlbGlua2luZyBcYCRmaWxlJyIKKysJICBmdW5jX3No b3dfZXZhbCAiJHJlbGlua19jb21tYW5kIiBcCisrCSAgICAnZnVuY19mYXRhbF9lcnJvciAiZXJy b3I6IHJlbGluayBcYCRmaWxlJ1wnJyB3aXRoIHRoZSBhYm92ZSBjb21tYW5kIGJlZm9yZSBpbnN0 YWxsaW5nIGl0IicKKysJZmkKKysKKysJIyBTZWUgdGhlIG5hbWVzIG9mIHRoZSBzaGFyZWQgbGli cmFyeS4KKysJc2V0IGR1bW15ICRsaWJyYXJ5X25hbWVzOyBzaGlmdAorKwlpZiB0ZXN0IC1uICIk MSI7IHRoZW4KKysJICByZWFsbmFtZT0iJDEiCisrCSAgc2hpZnQKKysKKysJICBzcmNuYW1lPSIk cmVhbG5hbWUiCisrCSAgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIiAmJiBzcmNuYW1lPSIkcmVh bG5hbWUiVAorKworKwkgICMgSW5zdGFsbCB0aGUgc2hhcmVkIGxpYnJhcnkgYW5kIGJ1aWxkIHRo ZSBzeW1saW5rcy4KKysJICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfc2hhcmVkX3Byb2cgJGRp ci8kc3JjbmFtZSAkZGVzdGRpci8kcmVhbG5hbWUiIFwKKysJICAgICAgJ2V4aXQgJD8nCisrCSAg dHN0cmlwbWU9IiRzdHJpcG1lIgorKwkgIGNhc2UgJGhvc3Rfb3MgaW4KKysJICBjeWd3aW4qIHwg bWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisrCSAgICBjYXNlICRyZWFsbmFtZSBpbgorKwkgICAg Ki5kbGwuYSkKKysJICAgICAgdHN0cmlwbWU9IiIKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJ ICAgIDs7CisrCSAgZXNhYworKwkgIGlmIHRlc3QgLW4gIiR0c3RyaXBtZSIgJiYgdGVzdCAtbiAi JHN0cmlwbGliIjsgdGhlbgorKwkgICAgZnVuY19zaG93X2V2YWwgIiRzdHJpcGxpYiAkZGVzdGRp ci8kcmVhbG5hbWUiICdleGl0ICQ/JworKwkgIGZpCisrCisrCSAgaWYgdGVzdCAiJCMiIC1ndCAw OyB0aGVuCisrCSAgICAjIERlbGV0ZSB0aGUgb2xkIHN5bWxpbmtzLCBhbmQgY3JlYXRlIG5ldyBv bmVzLgorKwkgICAgIyBUcnkgYGxuIC1zZicgZmlyc3QsIGJlY2F1c2UgdGhlIGBsbicgYmluYXJ5 IG1pZ2h0IGRlcGVuZCBvbgorKwkgICAgIyB0aGUgc3ltbGluayB3ZSByZXBsYWNlISAgU29sYXJp cyAvYmluL2xuIGRvZXMgbm90IHVuZGVyc3RhbmQgLWYsCisrCSAgICAjIHNvIHdlIGFsc28gbmVl ZCB0byB0cnkgcm0gJiYgbG4gLXMuCisrCSAgICBmb3IgbGlua25hbWUKKysJICAgIGRvCisrCSAg ICAgIHRlc3QgIiRsaW5rbmFtZSIgIT0gIiRyZWFsbmFtZSIgXAorKwkJJiYgZnVuY19zaG93X2V2 YWwgIihjZCAkZGVzdGRpciAmJiB7ICRMTl9TIC1mICRyZWFsbmFtZSAkbGlua25hbWUgfHwgeyAk Uk0gJGxpbmtuYW1lICYmICRMTl9TICRyZWFsbmFtZSAkbGlua25hbWU7IH07IH0pIgorKwkgICAg ZG9uZQorKwkgIGZpCisrCisrCSAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIHBvc3RpbnN0YWxs IGNvbW1hbmRzLgorKwkgIGxpYj0iJGRlc3RkaXIvJHJlYWxuYW1lIgorKwkgIGZ1bmNfZXhlY3V0 ZV9jbWRzICIkcG9zdGluc3RhbGxfY21kcyIgJ2V4aXQgJD8nCisrCWZpCisrCisrCSMgSW5zdGFs bCB0aGUgcHNldWRvLWxpYnJhcnkgZm9yIGluZm9ybWF0aW9uIHB1cnBvc2VzLgorKwlmdW5jX2Jh c2VuYW1lICIkZmlsZSIKKysJbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKwlpbnN0bmFt ZT0iJGRpci8kbmFtZSJpCisrCWZ1bmNfc2hvd19ldmFsICIkaW5zdGFsbF9wcm9nICRpbnN0bmFt ZSAkZGVzdGRpci8kbmFtZSIgJ2V4aXQgJD8nCisrCisrCSMgTWF5YmUgaW5zdGFsbCB0aGUgc3Rh dGljIGxpYnJhcnksIHRvby4KKysJdGVzdCAtbiAiJG9sZF9saWJyYXJ5IiAmJiBzdGF0aWNsaWJz PSIkc3RhdGljbGlicyAkZGlyLyRvbGRfbGlicmFyeSIKKysJOzsKKysKKysgICAgICAqLmxvKQor KwkjIEluc3RhbGwgKGkuZS4gY29weSkgYSBsaWJ0b29sIG9iamVjdC4KKysKKysJIyBGaWd1cmUg b3V0IGRlc3RpbmF0aW9uIGZpbGUgbmFtZSwgaWYgaXQgd2Fzbid0IGFscmVhZHkgc3BlY2lmaWVk LgorKwlpZiB0ZXN0IC1uICIkZGVzdG5hbWUiOyB0aGVuCisrCSAgZGVzdGZpbGU9IiRkZXN0ZGly LyRkZXN0bmFtZSIKKysJZWxzZQorKwkgIGZ1bmNfYmFzZW5hbWUgIiRmaWxlIgorKwkgIGRlc3Rm aWxlPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCSAgZGVzdGZpbGU9IiRkZXN0ZGlyLyRkZXN0 ZmlsZSIKKysJZmkKKysKKysJIyBEZWR1Y2UgdGhlIG5hbWUgb2YgdGhlIGRlc3RpbmF0aW9uIG9s ZC1zdHlsZSBvYmplY3QgZmlsZS4KKysJY2FzZSAkZGVzdGZpbGUgaW4KKysJKi5sbykKKysJICBm dW5jX2xvMm8gIiRkZXN0ZmlsZSIKKysJICBzdGF0aWNkZXN0PSRmdW5jX2xvMm9fcmVzdWx0Cisr CSAgOzsKKysJKi4kb2JqZXh0KQorKwkgIHN0YXRpY2Rlc3Q9IiRkZXN0ZmlsZSIKKysJICBkZXN0 ZmlsZT0KKysJICA7OworKwkqKQorKwkgIGZ1bmNfZmF0YWxfaGVscCAiY2Fubm90IGNvcHkgYSBs aWJ0b29sIG9iamVjdCB0byBcYCRkZXN0ZmlsZSciCisrCSAgOzsKKysJZXNhYworKworKwkjIElu c3RhbGwgdGhlIGxpYnRvb2wgb2JqZWN0IGlmIHJlcXVlc3RlZC4KKysJdGVzdCAtbiAiJGRlc3Rm aWxlIiAmJiBcCisrCSAgZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgJGZpbGUgJGRlc3Rm aWxlIiAnZXhpdCAkPycKKysKKysJIyBJbnN0YWxsIHRoZSBvbGQgb2JqZWN0IGlmIGVuYWJsZWQu CisrCWlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KKysJICAjIERlZHVjZSB0 aGUgbmFtZSBvZiB0aGUgb2xkLXN0eWxlIG9iamVjdCBmaWxlLgorKwkgIGZ1bmNfbG8ybyAiJGZp bGUiCisrCSAgc3RhdGljb2JqPSRmdW5jX2xvMm9fcmVzdWx0CisrCSAgZnVuY19zaG93X2V2YWwg IiRpbnN0YWxsX3Byb2cgXCRzdGF0aWNvYmogXCRzdGF0aWNkZXN0IiAnZXhpdCAkPycKKysJZmkK KysJZXhpdCAkRVhJVF9TVUNDRVNTCisrCTs7CisrCisrICAgICAgKikKKysJIyBGaWd1cmUgb3V0 IGRlc3RpbmF0aW9uIGZpbGUgbmFtZSwgaWYgaXQgd2Fzbid0IGFscmVhZHkgc3BlY2lmaWVkLgor KwlpZiB0ZXN0IC1uICIkZGVzdG5hbWUiOyB0aGVuCisrCSAgZGVzdGZpbGU9IiRkZXN0ZGlyLyRk ZXN0bmFtZSIKKysJZWxzZQorKwkgIGZ1bmNfYmFzZW5hbWUgIiRmaWxlIgorKwkgIGRlc3RmaWxl PSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCSAgZGVzdGZpbGU9IiRkZXN0ZGlyLyRkZXN0Zmls ZSIKKysJZmkKKysKKysJIyBJZiB0aGUgZmlsZSBpcyBtaXNzaW5nLCBhbmQgdGhlcmUgaXMgYSAu ZXhlIG9uIHRoZSBlbmQsIHN0cmlwIGl0CisrCSMgYmVjYXVzZSBpdCBpcyBtb3N0IGxpa2VseSBh IGxpYnRvb2wgc2NyaXB0IHdlIGFjdHVhbGx5IHdhbnQgdG8KKysJIyBpbnN0YWxsCisrCXN0cmlw cGVkX2V4dD0iIgorKwljYXNlICRmaWxlIGluCisrCSAgKi5leGUpCisrCSAgICBpZiB0ZXN0ICEg LWYgIiRmaWxlIjsgdGhlbgorKwkgICAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRmaWxl IgorKwkgICAgICBmaWxlPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJICAgICAgc3RyaXBwZWRf ZXh0PSIuZXhlIgorKwkgICAgZmkKKysJICAgIDs7CisrCWVzYWMKKysKKysJIyBEbyBhIHRlc3Qg dG8gc2VlIGlmIHRoaXMgaXMgcmVhbGx5IGEgbGlidG9vbCBwcm9ncmFtLgorKwljYXNlICRob3N0 IGluCisrCSpjeWd3aW4qIHwgKm1pbmd3KikKKysJICAgIGlmIGZ1bmNfbHR3cmFwcGVyX2V4ZWN1 dGFibGVfcCAiJGZpbGUiOyB0aGVuCisrCSAgICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUg IiRmaWxlIgorKwkgICAgICB3cmFwcGVyPSRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3Vs dAorKwkgICAgZWxzZQorKwkgICAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRmaWxlIgor KwkgICAgICB3cmFwcGVyPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJICAgIGZpCisrCSAgICA7 OworKwkqKQorKwkgICAgd3JhcHBlcj0kZmlsZQorKwkgICAgOzsKKysJZXNhYworKwlpZiBmdW5j X2x0d3JhcHBlcl9zY3JpcHRfcCAiJHdyYXBwZXIiOyB0aGVuCisrCSAgbm90aW5zdF9kZXBsaWJz PQorKwkgIHJlbGlua19jb21tYW5kPQorKworKwkgIGZ1bmNfc291cmNlICIkd3JhcHBlciIKKysK KysJICAjIENoZWNrIHRoZSB2YXJpYWJsZXMgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIHNldC4KKysJ ICB0ZXN0IC16ICIkZ2VuZXJhdGVkX2J5X2xpYnRvb2xfdmVyc2lvbiIgJiYgXAorKwkgICAgZnVu Y19mYXRhbF9lcnJvciAiaW52YWxpZCBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IFxgJHdyYXBwZXIn IgorKworKwkgIGZpbmFsaXplPXllcworKwkgIGZvciBsaWIgaW4gJG5vdGluc3RfZGVwbGliczsg ZG8KKysJICAgICMgQ2hlY2sgdG8gc2VlIHRoYXQgZWFjaCBsaWJyYXJ5IGlzIGluc3RhbGxlZC4K KysJICAgIGxpYmRpcj0KKysJICAgIGlmIHRlc3QgLWYgIiRsaWIiOyB0aGVuCisrCSAgICAgIGZ1 bmNfc291cmNlICIkbGliIgorKwkgICAgZmkKKysJICAgIGxpYmZpbGU9IiRsaWJkaXIvImAkRUNI TyAiJGxpYiIgfCAkU0VEICdzJV4uKi8lJWcnYCAjIyMgdGVzdHN1aXRlOiBza2lwIG5lc3RlZCBx dW90aW5nIHRlc3QKKysJICAgIGlmIHRlc3QgLW4gIiRsaWJkaXIiICYmIHRlc3QgISAtZiAiJGxp YmZpbGUiOyB0aGVuCisrCSAgICAgIGZ1bmNfd2FybmluZyAiXGAkbGliJyBoYXMgbm90IGJlZW4g aW5zdGFsbGVkIGluIFxgJGxpYmRpciciCisrCSAgICAgIGZpbmFsaXplPW5vCisrCSAgICBmaQor KwkgIGRvbmUKKysKKysJICByZWxpbmtfY29tbWFuZD0KKysJICBmdW5jX3NvdXJjZSAiJHdyYXBw ZXIiCisrCisrCSAgb3V0cHV0bmFtZT0KKysJICBpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IG5v ICYmIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4KKysJICAgICRvcHRfZHJ5X3J1biB8 fCB7CisrCSAgICAgIGlmIHRlc3QgIiRmaW5hbGl6ZSIgPSB5ZXM7IHRoZW4KKysJICAgICAgICB0 bXBkaXI9YGZ1bmNfbWt0ZW1wZGlyYAorKwkJZnVuY19iYXNlbmFtZSAiJGZpbGUkc3RyaXBwZWRf ZXh0IgorKwkJZmlsZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKwkgICAgICAgIG91dHB1dG5h bWU9IiR0bXBkaXIvJGZpbGUiCisrCSAgICAgICAgIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBz cGVjaWZpY2F0aW9uLgorKwkgICAgICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiJHJlbGlua19j b21tYW5kIiB8ICRTRUQgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0bmFtZSInJWcnYAorKworKwkgICAg ICAgICRvcHRfc2lsZW50IHx8IHsKKysJICAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAi JHJlbGlua19jb21tYW5kIgorKwkJICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4 cGFuZF9yZXN1bHQiCisrCSAgICAgICAgfQorKwkgICAgICAgIGlmIGV2YWwgIiRyZWxpbmtfY29t bWFuZCI7IHRoZW4gOgorKwkgICAgICAgICAgZWxzZQorKwkJICBmdW5jX2Vycm9yICJlcnJvcjog cmVsaW5rIFxgJGZpbGUnIHdpdGggdGhlIGFib3ZlIGNvbW1hbmQgYmVmb3JlIGluc3RhbGxpbmcg aXQiCisrCQkgICRvcHRfZHJ5X3J1biB8fCAke1JNfXIgIiR0bXBkaXIiCisrCQkgIGNvbnRpbnVl CisrCSAgICAgICAgZmkKKysJICAgICAgICBmaWxlPSIkb3V0cHV0bmFtZSIKKysJICAgICAgZWxz ZQorKwkgICAgICAgIGZ1bmNfd2FybmluZyAiY2Fubm90IHJlbGluayBcYCRmaWxlJyIKKysJICAg ICAgZmkKKysJICAgIH0KKysJICBlbHNlCisrCSAgICAjIEluc3RhbGwgdGhlIGJpbmFyeSB0aGF0 IHdlIGNvbXBpbGVkIGVhcmxpZXIuCisrCSAgICBmaWxlPWAkRUNITyAiJGZpbGUkc3RyaXBwZWRf ZXh0IiB8ICRTRUQgInMlXChbXi9dKlwpJCUkb2JqZGlyL1wxJSJgCisrCSAgZmkKKysJZmkKKysK KysJIyByZW1vdmUgLmV4ZSBzaW5jZSBjeWd3aW4gL3Vzci9iaW4vaW5zdGFsbCB3aWxsIGFwcGVu ZCBhbm90aGVyCisrCSMgb25lIGFueXdheQorKwljYXNlICRpbnN0YWxsX3Byb2csJGhvc3QgaW4K KysJKi91c3IvYmluL2luc3RhbGwqLCpjeWd3aW4qKQorKwkgIGNhc2UgJGZpbGU6JGRlc3RmaWxl IGluCisrCSAgKi5leGU6Ki5leGUpCisrCSAgICAjIHRoaXMgaXMgb2sKKysJICAgIDs7CisrCSAg Ki5leGU6KikKKysJICAgIGRlc3RmaWxlPSRkZXN0ZmlsZS5leGUKKysJICAgIDs7CisrCSAgKjoq LmV4ZSkKKysJICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGRlc3RmaWxlIgorKwkgICAg ZGVzdGZpbGU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgICAgOzsKKysJICBlc2FjCisrCSAg OzsKKysJZXNhYworKwlmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZ1wkc3RyaXBtZSBcJGZp bGUgXCRkZXN0ZmlsZSIgJ2V4aXQgJD8nCisrCSRvcHRfZHJ5X3J1biB8fCBpZiB0ZXN0IC1uICIk b3V0cHV0bmFtZSI7IHRoZW4KKysJICAke1JNfXIgIiR0bXBkaXIiCisrCWZpCisrCTs7CisrICAg ICAgZXNhYworKyAgICBkb25lCisrCisrICAgIGZvciBmaWxlIGluICRzdGF0aWNsaWJzOyBkbwor KyAgICAgIGZ1bmNfYmFzZW5hbWUgIiRmaWxlIgorKyAgICAgIG5hbWU9IiRmdW5jX2Jhc2VuYW1l X3Jlc3VsdCIKKysKKysgICAgICAjIFNldCB1cCB0aGUgcmFubGliIHBhcmFtZXRlcnMuCisrICAg ICAgb2xkbGliPSIkZGVzdGRpci8kbmFtZSIKKysKKysgICAgICBmdW5jX3Nob3dfZXZhbCAiJGlu c3RhbGxfcHJvZyBcJGZpbGUgXCRvbGRsaWIiICdleGl0ICQ/JworKworKyAgICAgIGlmIHRlc3Qg LW4gIiRzdHJpcG1lIiAmJiB0ZXN0IC1uICIkb2xkX3N0cmlwbGliIjsgdGhlbgorKwlmdW5jX3No b3dfZXZhbCAiJG9sZF9zdHJpcGxpYiAkb2xkbGliIiAnZXhpdCAkPycKKysgICAgICBmaQorKwor KyAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBwb3N0aW5zdGFsbCBjb21tYW5kcy4KKysg ICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJG9sZF9wb3N0aW5zdGFsbF9jbWRzIiAnZXhpdCAkPycK KysgICAgZG9uZQorKworKyAgICB0ZXN0IC1uICIkZnV0dXJlX2xpYmRpcnMiICYmIFwKKysgICAg ICBmdW5jX3dhcm5pbmcgInJlbWVtYmVyIHRvIHJ1biBcYCRwcm9nbmFtZSAtLWZpbmlzaCRmdXR1 cmVfbGliZGlycyciCisrCisrICAgIGlmIHRlc3QgLW4gIiRjdXJyZW50X2xpYmRpcnMiOyB0aGVu CisrICAgICAgIyBNYXliZSBqdXN0IGRvIGEgZHJ5IHJ1bi4KKysgICAgICAkb3B0X2RyeV9ydW4g JiYgY3VycmVudF9saWJkaXJzPSIgLW4kY3VycmVudF9saWJkaXJzIgorKyAgICAgIGV4ZWNfY21k PSckU0hFTEwgJHByb2dwYXRoICRwcmVzZXJ2ZV9hcmdzIC0tZmluaXNoJGN1cnJlbnRfbGliZGly cycKKysgICAgZWxzZQorKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUworKyAgICBmaQorK30KKysK Kyt0ZXN0ICIkbW9kZSIgPSBpbnN0YWxsICYmIGZ1bmNfbW9kZV9pbnN0YWxsICR7MSsiJEAifQor KworKworKyMgZnVuY19nZW5lcmF0ZV9kbHN5bXMgb3V0cHV0bmFtZSBvcmlnaW5hdG9yIHBpY19w CisrIyBFeHRyYWN0IHN5bWJvbHMgZnJvbSBkbHByZWZpbGVzIGFuZCBjcmVhdGUgJHtvdXRwdXRu YW1lfVMubyB3aXRoCisrIyBhIGRscHJlb3BlbiBzeW1ib2wgdGFibGUuCisrZnVuY19nZW5lcmF0 ZV9kbHN5bXMgKCkKKyt7CisrICAgICRvcHRfZGVidWcKKysgICAgbXlfb3V0cHV0bmFtZT0iJDEi CisrICAgIG15X29yaWdpbmF0b3I9IiQyIgorKyAgICBteV9waWNfcD0iJHszLW5vfSIKKysgICAg bXlfcHJlZml4PWAkRUNITyAiJG15X29yaWdpbmF0b3IiIHwgc2VkICdzJVteYS16QS1aMC05XSVf JWcnYAorKyAgICBteV9kbHN5bXM9CisrCisrICAgIGlmIHRlc3QgLW4gIiRkbGZpbGVzJGRscHJl ZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCisrICAgICAgaWYgdGVzdCAtbiAi JE5NIiAmJiB0ZXN0IC1uICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgorKwlteV9kbHN5bXM9 IiR7bXlfb3V0cHV0bmFtZX1TLmMiCisrICAgICAgZWxzZQorKwlmdW5jX2Vycm9yICJub3QgY29u ZmlndXJlZCB0byBleHRyYWN0IGdsb2JhbCBzeW1ib2xzIGZyb20gZGxwcmVvcGVuZWQgZmlsZXMi CisrICAgICAgZmkKKysgICAgZmkKKysKKysgICAgaWYgdGVzdCAtbiAiJG15X2Rsc3ltcyI7IHRo ZW4KKysgICAgICBjYXNlICRteV9kbHN5bXMgaW4KKysgICAgICAiIikgOzsKKysgICAgICAqLmMp CisrCSMgRGlzY292ZXIgdGhlIG5saXN0IG9mIGVhY2ggb2YgdGhlIGRsZmlsZXMuCisrCW5saXN0 PSIkb3V0cHV0X29iamRpci8ke215X291dHB1dG5hbWV9Lm5tIgorKworKwlmdW5jX3Nob3dfZXZh bCAiJFJNICRubGlzdCAke25saXN0fVMgJHtubGlzdH1UIgorKworKwkjIFBhcnNlIHRoZSBuYW1l IGxpc3QgaW50byBhIHNvdXJjZSBmaWxlLgorKwlmdW5jX3ZlcmJvc2UgImNyZWF0aW5nICRvdXRw dXRfb2JqZGlyLyRteV9kbHN5bXMiCisrCisrCSRvcHRfZHJ5X3J1biB8fCAkRUNITyA+ICIkb3V0 cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAorKy8qICRteV9kbHN5bXMgLSBzeW1ib2wgcmVzb2x1 dGlvbiB0YWJsZSBmb3IgXGAkbXlfb3V0cHV0bmFtZScgZGxzeW0gZW11bGF0aW9uLiAqLworKy8q IEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04g Ki8KKysKKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gXCJDXCIgeworKyNlbmRpZgorKwor KyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoKChfX0dOVUNfXyA9PSA0KSAmJiAoX19HTlVDX01J Tk9SX18gPj0gNCkpIHx8IChfX0dOVUNfXyA+IDQpKQorKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMg aWdub3JlZCBcIi1Xc3RyaWN0LXByb3RvdHlwZXNcIgorKyNlbmRpZgorKworKy8qIEV4dGVybmFs IHN5bWJvbCBkZWNsYXJhdGlvbnMgZm9yIHRoZSBjb21waWxlci4gKi9cCisrIgorKworKwlpZiB0 ZXN0ICIkZGxzZWxmIiA9IHllczsgdGhlbgorKwkgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBz eW1ib2wgbGlzdCBmb3IgXGAkb3V0cHV0JyIKKysKKysJICAkb3B0X2RyeV9ydW4gfHwgZWNobyAn OiBAUFJPR1JBTUAgJyA+ICIkbmxpc3QiCisrCisrCSAgIyBBZGQgb3VyIG93biBwcm9ncmFtIG9i amVjdHMgdG8gdGhlIHN5bWJvbCBsaXN0LgorKwkgIHByb2dmaWxlcz1gJEVDSE8gIiRvYmpzJG9s ZF9kZXBsaWJzIiB8ICRTUDJOTCB8ICRTRUQgIiRsbzJvIiB8ICROTDJTUGAKKysJICBmb3IgcHJv Z2ZpbGUgaW4gJHByb2dmaWxlczsgZG8KKysJICAgIGZ1bmNfdmVyYm9zZSAiZXh0cmFjdGluZyBn bG9iYWwgQyBzeW1ib2xzIGZyb20gXGAkcHJvZ2ZpbGUnIgorKwkgICAgJG9wdF9kcnlfcnVuIHx8 IGV2YWwgIiROTSAkcHJvZ2ZpbGUgfCAkZ2xvYmFsX3N5bWJvbF9waXBlID4+ICckbmxpc3QnIgor KwkgIGRvbmUKKysKKysJICBpZiB0ZXN0IC1uICIkZXhjbHVkZV9leHBzeW1zIjsgdGhlbgorKwkg ICAgJG9wdF9kcnlfcnVuIHx8IHsKKysJICAgICAgZXZhbCAnJEVHUkVQIC12ICIgKCRleGNsdWRl X2V4cHN5bXMpJCIgIiRubGlzdCIgPiAiJG5saXN0IlQnCisrCSAgICAgIGV2YWwgJyRNViAiJG5s aXN0IlQgIiRubGlzdCInCisrCSAgICB9CisrCSAgZmkKKysKKysJICBpZiB0ZXN0IC1uICIkZXhw b3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCisrCSAgICAkb3B0X2RyeV9ydW4gfHwgeworKwkgICAg ICBldmFsICckRUdSRVAgLWUgIiRleHBvcnRfc3ltYm9sc19yZWdleCIgIiRubGlzdCIgPiAiJG5s aXN0IlQnCisrCSAgICAgIGV2YWwgJyRNViAiJG5saXN0IlQgIiRubGlzdCInCisrCSAgICB9Cisr CSAgZmkKKysKKysJICAjIFByZXBhcmUgdGhlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scworKwkg IGlmIHRlc3QgLXogIiRleHBvcnRfc3ltYm9scyI7IHRoZW4KKysJICAgIGV4cG9ydF9zeW1ib2xz PSIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5leHAiCisrCSAgICAkb3B0X2RyeV9ydW4gfHwg eworKwkgICAgICAkUk0gJGV4cG9ydF9zeW1ib2xzCisrCSAgICAgIGV2YWwgIiR7U0VEfSAtbiAt ZSAnL146IEBQUk9HUkFNQCAkL2QnIC1lICdzL14uKiBcKC4qXCkkL1wxL3AnICInPCAiJG5saXN0 IiA+ICIkZXhwb3J0X3N5bWJvbHMiJworKwkgICAgICBjYXNlICRob3N0IGluCisrCSAgICAgICpj eWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQorKyAgICAgICAgICAgICAgICBldmFsICJlY2hv IEVYUE9SVFMgIic+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJworKyAgICAgICAg ICAgICAgICBldmFsICdjYXQgIiRleHBvcnRfc3ltYm9scyIgPj4gIiRvdXRwdXRfb2JqZGlyLyRv dXRwdXRuYW1lLmRlZiInCisrCSAgICAgICAgOzsKKysJICAgICAgZXNhYworKwkgICAgfQorKwkg IGVsc2UKKysJICAgICRvcHRfZHJ5X3J1biB8fCB7CisrCSAgICAgIGV2YWwgIiR7U0VEfSAtZSAn cy9cKFtdLlsqXiRdXCkvXFxcXFwxL2cnIC1lICdzL14vIC8nIC1lICdzLyQvJC8nIicgPCAiJGV4 cG9ydF9zeW1ib2xzIiA+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5leHAiJworKwkgICAg ICBldmFsICckR1JFUCAtZiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZXhwIiA8ICIkbmxp c3QiID4gIiRubGlzdCJUJworKwkgICAgICBldmFsICckTVYgIiRubGlzdCJUICIkbmxpc3QiJwor KwkgICAgICBjYXNlICRob3N0IGluCisrCSAgICAgICAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKmNl Z2NjKiApCisrCSAgICAgICAgICBldmFsICJlY2hvIEVYUE9SVFMgIic+ICIkb3V0cHV0X29iamRp ci8kb3V0cHV0bmFtZS5kZWYiJworKwkgICAgICAgICAgZXZhbCAnY2F0ICIkbmxpc3QiID4+ICIk b3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJworKwkgICAgICAgICAgOzsKKysJICAgICAg ZXNhYworKwkgICAgfQorKwkgIGZpCisrCWZpCisrCisrCWZvciBkbHByZWZpbGUgaW4gJGRscHJl ZmlsZXM7IGRvCisrCSAgZnVuY192ZXJib3NlICJleHRyYWN0aW5nIGdsb2JhbCBDIHN5bWJvbHMg ZnJvbSBcYCRkbHByZWZpbGUnIgorKwkgIGZ1bmNfYmFzZW5hbWUgIiRkbHByZWZpbGUiCisrCSAg bmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKwkgICRvcHRfZHJ5X3J1biB8fCB7CisrCSAg ICBldmFsICckRUNITyAiOiAkbmFtZSAiID4+ICIkbmxpc3QiJworKwkgICAgZXZhbCAiJE5NICRk bHByZWZpbGUgMj4vZGV2L251bGwgfCAkZ2xvYmFsX3N5bWJvbF9waXBlID4+ICckbmxpc3QnIgor KwkgIH0KKysJZG9uZQorKworKwkkb3B0X2RyeV9ydW4gfHwgeworKwkgICMgTWFrZSBzdXJlIHdl IGhhdmUgYXQgbGVhc3QgYW4gZW1wdHkgZmlsZS4KKysJICB0ZXN0IC1mICIkbmxpc3QiIHx8IDog PiAiJG5saXN0IgorKworKwkgIGlmIHRlc3QgLW4gIiRleGNsdWRlX2V4cHN5bXMiOyB0aGVuCisr CSAgICAkRUdSRVAgLXYgIiAoJGV4Y2x1ZGVfZXhwc3ltcykkIiAiJG5saXN0IiA+ICIkbmxpc3Qi VAorKwkgICAgJE1WICIkbmxpc3QiVCAiJG5saXN0IgorKwkgIGZpCisrCisrCSAgIyBUcnkgc29y dGluZyBhbmQgdW5pcXVpZnlpbmcgdGhlIG91dHB1dC4KKysJICBpZiAkR1JFUCAtdiAiXjogIiA8 ICIkbmxpc3QiIHwKKysJICAgICAgaWYgc29ydCAtayAzIDwvZGV2L251bGwgPi9kZXYvbnVsbCAy PiYxOyB0aGVuCisrCQlzb3J0IC1rIDMKKysJICAgICAgZWxzZQorKwkJc29ydCArMgorKwkgICAg ICBmaSB8CisrCSAgICAgIHVuaXEgPiAiJG5saXN0IlM7IHRoZW4KKysJICAgIDoKKysJICBlbHNl CisrCSAgICAkR1JFUCAtdiAiXjogIiA8ICIkbmxpc3QiID4gIiRubGlzdCJTCisrCSAgZmkKKysK KysJICBpZiB0ZXN0IC1mICIkbmxpc3QiUzsgdGhlbgorKwkgICAgZXZhbCAiJGdsb2JhbF9zeW1i b2xfdG9fY2RlY2wiJyA8ICIkbmxpc3QiUyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIn CisrCSAgZWxzZQorKwkgICAgZWNobyAnLyogTk9ORSAqLycgPj4gIiRvdXRwdXRfb2JqZGlyLyRt eV9kbHN5bXMiCisrCSAgZmkKKysKKysJICBlY2hvID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxz eW1zIiAiXAorKworKy8qIFRoZSBtYXBwaW5nIGJldHdlZW4gc3ltYm9sIG5hbWVzIGFuZCBzeW1i b2xzLiAgKi8KKyt0eXBlZGVmIHN0cnVjdCB7CisrICBjb25zdCBjaGFyICpuYW1lOworKyAgdm9p ZCAqYWRkcmVzczsKKyt9IGx0X2Rsc3ltbGlzdDsKKysiCisrCSAgY2FzZSAkaG9zdCBpbgorKwkg ICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQorKwkgICAgZWNobyA+PiAiJG91dHB1dF9v YmpkaXIvJG15X2Rsc3ltcyIgIlwKKysvKiBEQVRBIGltcG9ydHMgZnJvbSBETExzIG9uIFdJTjMy IGNvbid0IGJlIGNvbnN0LCBiZWNhdXNlCisrICAgcnVudGltZSByZWxvY2F0aW9ucyBhcmUgcGVy Zm9ybWVkIC0tIHNlZSBsZCdzIGRvY3VtZW50YXRpb24KKysgICBvbiBwc2V1ZG8tcmVsb2NzLiAg Ki8iCisrCSAgICBsdF9kbHN5bV9jb25zdD0gOzsKKysJICAqb3NmNSopCisrCSAgICBlY2hvID4+ ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAorKy8qIFRoaXMgc3lzdGVtIGRvZXMgbm90 IGNvcGUgd2VsbCB3aXRoIHJlbG9jYXRpb25zIGluIGNvbnN0IGRhdGEgKi8iCisrCSAgICBsdF9k bHN5bV9jb25zdD0gOzsKKysJICAqKQorKwkgICAgbHRfZGxzeW1fY29uc3Q9Y29uc3QgOzsKKysJ ICBlc2FjCisrCisrCSAgZWNobyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIlwKKytl eHRlcm4gJGx0X2Rsc3ltX2NvbnN0IGx0X2Rsc3ltbGlzdAorK2x0XyR7bXlfcHJlZml4fV9MVFhf cHJlbG9hZGVkX3N5bWJvbHNbXTsKKyskbHRfZGxzeW1fY29uc3QgbHRfZGxzeW1saXN0CisrbHRf JHtteV9wcmVmaXh9X0xUWF9wcmVsb2FkZWRfc3ltYm9sc1tdID0KKyt7XAorKyAgeyBcIiRteV9v cmlnaW5hdG9yXCIsICh2b2lkICopIDAgfSwiCisrCisrCSAgY2FzZSAkbmVlZF9saWJfcHJlZml4 IGluCisrCSAgbm8pCisrCSAgICBldmFsICIkZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVz cyIgPCAiJG5saXN0IiA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIKKysJICAgIDs7Cisr CSAgKikKKysJICAgIGV2YWwgIiRnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9w cmVmaXgiIDwgIiRubGlzdCIgPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiCisrCSAgICA7 OworKwkgIGVzYWMKKysJICBlY2hvID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAor KyAgezAsICh2b2lkICopIDB9CisrfTsKKysKKysvKiBUaGlzIHdvcmtzIGFyb3VuZCBhIHByb2Js ZW0gaW4gRnJlZUJTRCBsaW5rZXIgKi8KKysjaWZkZWYgRlJFRUJTRF9XT1JLQVJPVU5ECisrc3Rh dGljIGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgpIHsKKysgIHJldHVybiBsdF8ke215 X3ByZWZpeH1fTFRYX3ByZWxvYWRlZF9zeW1ib2xzOworK30KKysjZW5kaWYKKysKKysjaWZkZWYg X19jcGx1c3BsdXMKKyt9CisrI2VuZGlmXAorKyIKKysJfSAjICEkb3B0X2RyeV9ydW4KKysKKysJ cGljX2ZsYWdfZm9yX3N5bXRhYmxlPQorKwljYXNlICIkY29tcGlsZV9jb21tYW5kICIgaW4KKysJ KiIgLXN0YXRpYyAiKikgOzsKKysJKikKKysJICBjYXNlICRob3N0IGluCisrCSAgIyBjb21waWxp bmcgdGhlIHN5bWJvbCB0YWJsZSBmaWxlIHdpdGggcGljX2ZsYWcgd29ya3MgYXJvdW5kCisrCSAg IyBhIEZyZWVCU0QgYnVnIHRoYXQgY2F1c2VzIHByb2dyYW1zIHRvIGNyYXNoIHdoZW4gLWxtIGlz CisrCSAgIyBsaW5rZWQgYmVmb3JlIGFueSBvdGhlciBQSUMgb2JqZWN0LiAgQnV0IHdlIG11c3Qg bm90IHVzZQorKwkgICMgcGljX2ZsYWcgd2hlbiBsaW5raW5nIHdpdGggLXN0YXRpYy4gIFRoZSBw cm9ibGVtIGV4aXN0cyBpbgorKwkgICMgRnJlZUJTRCAyLjIuNiBhbmQgaXMgZml4ZWQgaW4gRnJl ZUJTRCAzLjEuCisrCSAgKi0qLWZyZWVic2QyKnwqLSotZnJlZWJzZDMuMCp8Ki0qLWZyZWVic2Rl bGYzLjAqKQorKwkgICAgcGljX2ZsYWdfZm9yX3N5bXRhYmxlPSIgJHBpY19mbGFnIC1ERlJFRUJT RF9XT1JLQVJPVU5EIiA7OworKwkgICotKi1ocHV4KikKKysJICAgIHBpY19mbGFnX2Zvcl9zeW10 YWJsZT0iICRwaWNfZmxhZyIgIDs7CisrCSAgKikKKysJICAgIGlmIHRlc3QgIlgkbXlfcGljX3Ai ICE9IFhubzsgdGhlbgorKwkgICAgICBwaWNfZmxhZ19mb3Jfc3ltdGFibGU9IiAkcGljX2ZsYWci CisrCSAgICBmaQorKwkgICAgOzsKKysJICBlc2FjCisrCSAgOzsKKysJZXNhYworKwlzeW10YWJf Y2ZsYWdzPQorKwlmb3IgYXJnIGluICRMVENGTEFHUzsgZG8KKysJICBjYXNlICRhcmcgaW4KKysJ ICAtcGllIHwgLWZwaWUgfCAtZlBJRSkgOzsKKysJICAqKSBzeW10YWJfY2ZsYWdzPSIkc3ltdGFi X2NmbGFncyAkYXJnIiA7OworKwkgIGVzYWMKKysJZG9uZQorKworKwkjIE5vdyBjb21waWxlIHRo ZSBkeW5hbWljIHN5bWJvbCBmaWxlLgorKwlmdW5jX3Nob3dfZXZhbCAnKGNkICRvdXRwdXRfb2Jq ZGlyICYmICRMVENDJHN5bXRhYl9jZmxhZ3MgLWMkbm9fYnVpbHRpbl9mbGFnJHBpY19mbGFnX2Zv cl9zeW10YWJsZSAiJG15X2Rsc3ltcyIpJyAnZXhpdCAkPycKKysKKysJIyBDbGVhbiB1cCB0aGUg Z2VuZXJhdGVkIGZpbGVzLgorKwlmdW5jX3Nob3dfZXZhbCAnJFJNICIkb3V0cHV0X29iamRpci8k bXlfZGxzeW1zIiAiJG5saXN0IiAiJHtubGlzdH1TIiAiJHtubGlzdH1UIicKKysKKysJIyBUcmFu c2Zvcm0gdGhlIHN5bWJvbCBmaWxlIGludG8gdGhlIGNvcnJlY3QgbmFtZS4KKysJc3ltZmlsZW9i aj0iJG91dHB1dF9vYmpkaXIvJHtteV9vdXRwdXRuYW1lfVMuJG9iamV4dCIKKysJY2FzZSAkaG9z dCBpbgorKwkqY3lnd2luKiB8ICptaW5ndyogfCAqY2VnY2MqICkKKysJICBpZiB0ZXN0IC1mICIk b3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFtZS5kZWYiOyB0aGVuCisrCSAgICBjb21waWxlX2Nv bW1hbmQ9YCRFQ0hPICIkY29tcGlsZV9jb21tYW5kIiB8ICRTRUQgInMlQFNZTUZJTEVAJSRvdXRw dXRfb2JqZGlyLyRteV9vdXRwdXRuYW1lLmRlZiAkc3ltZmlsZW9iaiUiYAorKwkgICAgZmluYWxp emVfY29tbWFuZD1gJEVDSE8gIiRmaW5hbGl6ZV9jb21tYW5kIiB8ICRTRUQgInMlQFNZTUZJTEVA JSRvdXRwdXRfb2JqZGlyLyRteV9vdXRwdXRuYW1lLmRlZiAkc3ltZmlsZW9iaiUiYAorKwkgIGVs c2UKKysJICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIiRjb21waWxlX2NvbW1hbmQiIHwgJFNF RCAicyVAU1lNRklMRUAlJHN5bWZpbGVvYmolImAKKysJICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRF Q0hPICIkZmluYWxpemVfY29tbWFuZCIgfCAkU0VEICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUi YAorKwkgIGZpCisrCSAgOzsKKysJKikKKysJICBjb21waWxlX2NvbW1hbmQ9YCRFQ0hPICIkY29t cGlsZV9jb21tYW5kIiB8ICRTRUQgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCisrCSAgZmlu YWxpemVfY29tbWFuZD1gJEVDSE8gIiRmaW5hbGl6ZV9jb21tYW5kIiB8ICRTRUQgInMlQFNZTUZJ TEVAJSRzeW1maWxlb2JqJSJgCisrCSAgOzsKKysJZXNhYworKwk7OworKyAgICAgICopCisrCWZ1 bmNfZmF0YWxfZXJyb3IgInVua25vd24gc3VmZml4IGZvciBcYCRteV9kbHN5bXMnIgorKwk7Owor KyAgICAgIGVzYWMKKysgICAgZWxzZQorKyAgICAgICMgV2Uga2VlcCBnb2luZyBqdXN0IGluIGNh c2UgdGhlIHVzZXIgZGlkbid0IHJlZmVyIHRvCisrICAgICAgIyBsdF9wcmVsb2FkZWRfc3ltYm9s cy4gIFRoZSBsaW5rZXIgd2lsbCBmYWlsIGlmIGdsb2JhbF9zeW1ib2xfcGlwZQorKyAgICAgICMg cmVhbGx5IHdhcyByZXF1aXJlZC4KKysKKysgICAgICAjIE51bGxpZnkgdGhlIHN5bWJvbCBmaWxl LgorKyAgICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIiRjb21waWxlX2NvbW1hbmQiIHwgJFNF RCAicyUgQFNZTUZJTEVAJSUiYAorKyAgICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICIkZmlu YWxpemVfY29tbWFuZCIgfCAkU0VEICJzJSBAU1lNRklMRUAlJSJgCisrICAgIGZpCisrfQorKwor KyMgZnVuY193aW4zMl9saWJpZCBhcmcKKysjIHJldHVybiB0aGUgbGlicmFyeSB0eXBlIG9mIGZp bGUgJ2FyZycKKysjCisrIyBOZWVkIGEgbG90IG9mIGdvbyB0byBoYW5kbGUgKmJvdGgqIERMTHMg YW5kIGltcG9ydCBsaWJzCisrIyBIYXMgdG8gYmUgYSBzaGVsbCBmdW5jdGlvbiBpbiBvcmRlciB0 byAnZWF0JyB0aGUgYXJndW1lbnQKKysjIHRoYXQgaXMgc3VwcGxpZWQgd2hlbiAkZmlsZV9tYWdp Y19jb21tYW5kIGlzIGNhbGxlZC4KKysjIERlc3BpdGUgdGhlIG5hbWUsIGFsc28gZGVhbCB3aXRo IDY0IGJpdCBiaW5hcmllcy4KKytmdW5jX3dpbjMyX2xpYmlkICgpCisreworKyAgJG9wdF9kZWJ1 ZworKyAgd2luMzJfbGliaWRfdHlwZT0idW5rbm93biIKKysgIHdpbjMyX2ZpbGVyZXM9YGZpbGUg LUwgJDEgMj4vZGV2L251bGxgCisrICBjYXNlICR3aW4zMl9maWxlcmVzIGluCisrICAqYXJcIGFy Y2hpdmVcIGltcG9ydFwgbGlicmFyeSopICMgZGVmaW5pdGVseSBpbXBvcnQKKysgICAgd2luMzJf bGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgaW1wb3J0IgorKyAgICA7OworKyAgKmFyXCBhcmNoaXZl KikgIyBjb3VsZCBiZSBhbiBpbXBvcnQsIG9yIHN0YXRpYworKyAgICAjIEtlZXAgdGhlIGVncmVw IHBhdHRlcm4gaW4gc3luYyB3aXRoIHRoZSBvbmUgaW4gX0xUX0NIRUNLX01BR0lDX01FVEhPRC4K KysgICAgaWYgZXZhbCAkT0JKRFVNUCAtZiAkMSB8ICRTRUQgLWUgJzEwcScgMj4vZGV2L251bGwg fAorKyAgICAgICAkRUdSRVAgJ2ZpbGUgZm9ybWF0IChwZWkqLWkzODYoLiphcmNoaXRlY3R1cmU6 IGkzODYpP3xwZS1hcm0td2luY2V8cGUteDg2LTY0KScgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAg IHdpbjMyX25tcmVzPWBldmFsICROTSAtZiBwb3NpeCAtQSAkMSB8CisrCSRTRUQgLW4gLWUgJwor KwkgICAgMSwxMDB7CisrCQkvIEkgL3sKKysJCSAgICBzLC4qLGltcG9ydCwKKysJCSAgICBwCisr CQkgICAgcQorKwkJfQorKwkgICAgfSdgCisrICAgICAgY2FzZSAkd2luMzJfbm1yZXMgaW4KKysg ICAgICBpbXBvcnQqKSAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgaW1wb3J0Ijs7Cisr ICAgICAgKikgICAgICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBhcmNoaXZlIHN0YXRpYyI7Owor KyAgICAgIGVzYWMKKysgICAgZmkKKysgICAgOzsKKysgICpETEwqKQorKyAgICB3aW4zMl9saWJp ZF90eXBlPSJ4ODYgRExMIgorKyAgICA7OworKyAgKmV4ZWN1dGFibGUqKSAjIGJ1dCBzaGVsbCBz Y3JpcHRzIGFyZSAiZXhlY3V0YWJsZSIgdG9vLi4uCisrICAgIGNhc2UgJHdpbjMyX2ZpbGVyZXMg aW4KKysgICAgKk1TXCBXaW5kb3dzXCBQRVwgSW50ZWwqKQorKyAgICAgIHdpbjMyX2xpYmlkX3R5 cGU9Ing4NiBETEwiCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICA7OworKyAgZXNhYworKyAg JEVDSE8gIiR3aW4zMl9saWJpZF90eXBlIgorK30KKysKKysKKysKKysjIGZ1bmNfZXh0cmFjdF9h bl9hcmNoaXZlIGRpciBvbGRsaWIKKytmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAoKQorK3sKKysg ICAgJG9wdF9kZWJ1ZworKyAgICBmX2V4X2FuX2FyX2Rpcj0iJDEiOyBzaGlmdAorKyAgICBmX2V4 X2FuX2FyX29sZGxpYj0iJDEiCisrICAgIGlmIHRlc3QgIiRsb2NrX29sZF9hcmNoaXZlX2V4dHJh Y3Rpb24iID0geWVzOyB0aGVuCisrICAgICAgbG9ja2ZpbGU9JGZfZXhfYW5fYXJfb2xkbGliLmxv Y2sKKysgICAgICB1bnRpbCAkb3B0X2RyeV9ydW4gfHwgbG4gIiRwcm9ncGF0aCIgIiRsb2NrZmls ZSIgMj4vZGV2L251bGw7IGRvCisrCWZ1bmNfZWNobyAiV2FpdGluZyBmb3IgJGxvY2tmaWxlIHRv IGJlIHJlbW92ZWQiCisrCXNsZWVwIDIKKysgICAgICBkb25lCisrICAgIGZpCisrICAgIGZ1bmNf c2hvd19ldmFsICIoY2QgXCRmX2V4X2FuX2FyX2RpciAmJiAkQVIgeCBcIlwkZl9leF9hbl9hcl9v bGRsaWJcIikiIFwKKysJCSAgICdzdGF0PSQ/OyBybSAtZiAiJGxvY2tmaWxlIjsgZXhpdCAkc3Rh dCcKKysgICAgaWYgdGVzdCAiJGxvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbiIgPSB5ZXM7IHRo ZW4KKysgICAgICAkb3B0X2RyeV9ydW4gfHwgcm0gLWYgIiRsb2NrZmlsZSIKKysgICAgZmkKKysg ICAgaWYgKCRBUiB0ICIkZl9leF9hbl9hcl9vbGRsaWIiIHwgc29ydCB8IHNvcnQgLXVjID4vZGV2 L251bGwgMj4mMSk7IHRoZW4KKysgICAgIDoKKysgICAgZWxzZQorKyAgICAgIGZ1bmNfZmF0YWxf ZXJyb3IgIm9iamVjdCBuYW1lIGNvbmZsaWN0cyBpbiBhcmNoaXZlOiAkZl9leF9hbl9hcl9kaXIv JGZfZXhfYW5fYXJfb2xkbGliIgorKyAgICBmaQorK30KKysKKysKKysjIGZ1bmNfZXh0cmFjdF9h cmNoaXZlcyBnZW50b3Agb2xkbGliIC4uLgorK2Z1bmNfZXh0cmFjdF9hcmNoaXZlcyAoKQorK3sK KysgICAgJG9wdF9kZWJ1ZworKyAgICBteV9nZW50b3A9IiQxIjsgc2hpZnQKKysgICAgbXlfb2xk bGlicz0kezErIiRAIn0KKysgICAgbXlfb2xkb2Jqcz0iIgorKyAgICBteV94bGliPSIiCisrICAg IG15X3hhYnM9IiIKKysgICAgbXlfeGRpcj0iIgorKworKyAgICBmb3IgbXlfeGxpYiBpbiAkbXlf b2xkbGliczsgZG8KKysgICAgICAjIEV4dHJhY3QgdGhlIG9iamVjdHMuCisrICAgICAgY2FzZSAk bXlfeGxpYiBpbgorKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIG15X3hhYnM9IiRteV94bGli IiA7OworKwkqKSBteV94YWJzPWBwd2RgIi8kbXlfeGxpYiIgOzsKKysgICAgICBlc2FjCisrICAg ICAgZnVuY19iYXNlbmFtZSAiJG15X3hsaWIiCisrICAgICAgbXlfeGxpYj0iJGZ1bmNfYmFzZW5h bWVfcmVzdWx0IgorKyAgICAgIG15X3hsaWJfdT0kbXlfeGxpYgorKyAgICAgIHdoaWxlIDo7IGRv CisrICAgICAgICBjYXNlICIgJGV4dHJhY3RlZF9hcmNoaXZlcyAiIGluCisrCSoiICRteV94bGli X3UgIiopCisrCSAgZnVuY19hcml0aCAkZXh0cmFjdGVkX3NlcmlhbCArIDEKKysJICBleHRyYWN0 ZWRfc2VyaWFsPSRmdW5jX2FyaXRoX3Jlc3VsdAorKwkgIG15X3hsaWJfdT1sdCRleHRyYWN0ZWRf c2VyaWFsLSRteV94bGliIDs7CisrCSopIGJyZWFrIDs7CisrCWVzYWMKKysgICAgICBkb25lCisr ICAgICAgZXh0cmFjdGVkX2FyY2hpdmVzPSIkZXh0cmFjdGVkX2FyY2hpdmVzICRteV94bGliX3Ui CisrICAgICAgbXlfeGRpcj0iJG15X2dlbnRvcC8kbXlfeGxpYl91IgorKworKyAgICAgIGZ1bmNf bWtkaXJfcCAiJG15X3hkaXIiCisrCisrICAgICAgY2FzZSAkaG9zdCBpbgorKyAgICAgICotZGFy d2luKikKKysJZnVuY192ZXJib3NlICJFeHRyYWN0aW5nICRteV94YWJzIgorKwkjIERvIG5vdCBi b3RoZXIgZG9pbmcgYW55dGhpbmcgaWYganVzdCBhIGRyeSBydW4KKysJJG9wdF9kcnlfcnVuIHx8 IHsKKysJICBkYXJ3aW5fb3JpZ19kaXI9YHB3ZGAKKysJICBjZCAkbXlfeGRpciB8fCBleGl0ICQ/ CisrCSAgZGFyd2luX2FyY2hpdmU9JG15X3hhYnMKKysJICBkYXJ3aW5fY3VyZGlyPWBwd2RgCisr CSAgZGFyd2luX2Jhc2VfYXJjaGl2ZT1gYmFzZW5hbWUgIiRkYXJ3aW5fYXJjaGl2ZSJgCisrCSAg ZGFyd2luX2FyY2hlcz1gJExJUE8gLWluZm8gIiRkYXJ3aW5fYXJjaGl2ZSIgMj4vZGV2L251bGwg fCAkR1JFUCBBcmNoaXRlY3R1cmVzIDI+L2Rldi9udWxsIHx8IHRydWVgCisrCSAgaWYgdGVzdCAt biAiJGRhcndpbl9hcmNoZXMiOyB0aGVuCisrCSAgICBkYXJ3aW5fYXJjaGVzPWAkRUNITyAiJGRh cndpbl9hcmNoZXMiIHwgJFNFRCAtZSAncy8uKmFyZTovLydgCisrCSAgICBkYXJ3aW5fYXJjaD0K KysJICAgIGZ1bmNfdmVyYm9zZSAiJGRhcndpbl9iYXNlX2FyY2hpdmUgaGFzIG11bHRpcGxlIGFy Y2hpdGVjdHVyZXMgJGRhcndpbl9hcmNoZXMiCisrCSAgICBmb3IgZGFyd2luX2FyY2ggaW4gICRk YXJ3aW5fYXJjaGVzIDsgZG8KKysJICAgICAgZnVuY19ta2Rpcl9wICJ1bmZhdC0kJC8ke2Rhcndp bl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9IgorKwkgICAgICAkTElQTyAtdGhpbiAkZGFy d2luX2FyY2ggLW91dHB1dCAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndp bl9hcmNofS8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9IiAiJHtkYXJ3aW5fYXJjaGl2ZX0iCisrCSAg ICAgIGNkICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9Igor KwkgICAgICBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAiYHB3ZGAiICIke2Rhcndpbl9iYXNlX2Fy Y2hpdmV9IgorKwkgICAgICBjZCAiJGRhcndpbl9jdXJkaXIiCisrCSAgICAgICRSTSAidW5mYXQt JCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9iYXNlX2Fy Y2hpdmV9IgorKwkgICAgZG9uZSAjICRkYXJ3aW5fYXJjaGVzCisrICAgICAgICAgICAgIyMgT2th eSBub3cgd2UndmUgYSBidW5jaCBvZiB0aGluIG9iamVjdHMsIGdvdHRhIGZhdHRlbiB0aGVtIHVw IDopCisrCSAgICBkYXJ3aW5fZmlsZWxpc3Q9YGZpbmQgdW5mYXQtJCQgLXR5cGUgZiAtbmFtZSBc Ki5vIC1wcmludCAtbyAtbmFtZSBcKi5sbyAtcHJpbnQgfCAkU0VEIC1lICIkYmFzZW5hbWUiIHwg c29ydCAtdWAKKysJICAgIGRhcndpbl9maWxlPQorKwkgICAgZGFyd2luX2ZpbGVzPQorKwkgICAg Zm9yIGRhcndpbl9maWxlIGluICRkYXJ3aW5fZmlsZWxpc3Q7IGRvCisrCSAgICAgIGRhcndpbl9m aWxlcz1gZmluZCB1bmZhdC0kJCAtbmFtZSAkZGFyd2luX2ZpbGUgLXByaW50IHwgc29ydCB8ICRO TDJTUGAKKysJICAgICAgJExJUE8gLWNyZWF0ZSAtb3V0cHV0ICIkZGFyd2luX2ZpbGUiICRkYXJ3 aW5fZmlsZXMKKysJICAgIGRvbmUgIyAkZGFyd2luX2ZpbGVsaXN0CisrCSAgICAkUk0gLXJmIHVu ZmF0LSQkCisrCSAgICBjZCAiJGRhcndpbl9vcmlnX2RpciIKKysJICBlbHNlCisrCSAgICBjZCAk ZGFyd2luX29yaWdfZGlyCisrCSAgICBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAiJG15X3hkaXIi ICIkbXlfeGFicyIKKysJICBmaSAjICRkYXJ3aW5fYXJjaGVzCisrCX0gIyAhJG9wdF9kcnlfcnVu CisrCTs7CisrICAgICAgKikKKysgICAgICAgIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICIkbXlf eGRpciIgIiRteV94YWJzIgorKwk7OworKyAgICAgIGVzYWMKKysgICAgICBteV9vbGRvYmpzPSIk bXlfb2xkb2JqcyAiYGZpbmQgJG15X3hkaXIgLW5hbWUgXCouJG9iamV4dCAtcHJpbnQgLW8gLW5h bWUgXCoubG8gLXByaW50IHwgc29ydCB8ICROTDJTUGAKKysgICAgZG9uZQorKworKyAgICBmdW5j X2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0PSIkbXlfb2xkb2JqcyIKKyt9CisrCisrCisrIyBmdW5j X2VtaXRfd3JhcHBlciBbYXJnPW5vXQorKyMKKysjIEVtaXQgYSBsaWJ0b29sIHdyYXBwZXIgc2Ny aXB0IG9uIHN0ZG91dC4KKysjIERvbid0IGRpcmVjdGx5IG9wZW4gYSBmaWxlIGJlY2F1c2Ugd2Ug bWF5IHdhbnQgdG8KKysjIGluY29ycG9yYXRlIHRoZSBzY3JpcHQgY29udGVudHMgd2l0aGluIGEg Y3lnd2luL21pbmd3CisrIyB3cmFwcGVyIGV4ZWN1dGFibGUuICBNdXN0IE9OTFkgYmUgY2FsbGVk IGZyb20gd2l0aGluCisrIyBmdW5jX21vZGVfbGluayBiZWNhdXNlIGl0IGRlcGVuZHMgb24gYSBu dW1iZXIgb2YgdmFyaWFibGVzCisrIyBzZXQgdGhlcmVpbi4KKysjCisrIyBBUkcgaXMgdGhlIHZh bHVlIHRoYXQgdGhlIFdSQVBQRVJfU0NSSVBUX0JFTE9OR1NfSU5fT0JKRElSCisrIyB2YXJpYWJs ZSB3aWxsIHRha2UuICBJZiAneWVzJywgdGhlbiB0aGUgZW1pdHRlZCBzY3JpcHQKKysjIHdpbGwg YXNzdW1lIHRoYXQgdGhlIGRpcmVjdG9yeSBpbiB3aGljaCBpdCBpcyBzdG9yZWQgaXMKKysjIHRo ZSAkb2JqZGlyIGRpcmVjdG9yeS4gIFRoaXMgaXMgYSBjeWd3aW4vbWluZ3ctc3BlY2lmaWMKKysj IGJlaGF2aW9yLgorK2Z1bmNfZW1pdF93cmFwcGVyICgpCisreworKwlmdW5jX2VtaXRfd3JhcHBl cl9hcmcxPSR7MS1ub30KKysKKysJJEVDSE8gIlwKKysjISAkU0hFTEwKKysKKysjICRvdXRwdXQg LSB0ZW1wb3Jhcnkgd3JhcHBlciBzY3JpcHQgZm9yICRvYmpkaXIvJG91dHB1dG5hbWUKKysjIEdl bmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KKysj CisrIyBUaGUgJG91dHB1dCBwcm9ncmFtIGNhbm5vdCBiZSBkaXJlY3RseSBleGVjdXRlZCB1bnRp bCBhbGwgdGhlIGxpYnRvb2wKKysjIGxpYnJhcmllcyB0aGF0IGl0IGRlcGVuZHMgb24gYXJlIGlu c3RhbGxlZC4KKysjCisrIyBUaGlzIHdyYXBwZXIgc2NyaXB0IHNob3VsZCBuZXZlciBiZSBtb3Zl ZCBvdXQgb2YgdGhlIGJ1aWxkIGRpcmVjdG9yeS4KKysjIElmIGl0IGlzLCBpdCB3aWxsIG5vdCBv cGVyYXRlIGNvcnJlY3RseS4KKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBk byByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCisrIyBtZXRhY2hhcmFjdGVycyB0 aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KKytzZWRf cXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3QnCisrCisrIyBCZSBCb3VybmUgY29tcGF0aWJs ZQorK2lmIHRlc3QgLW4gXCJcJHtaU0hfVkVSU0lPTitzZXR9XCIgJiYgKGVtdWxhdGUgc2gpID4v ZGV2L251bGwgMj4mMTsgdGhlbgorKyAgZW11bGF0ZSBzaAorKyAgTlVMTENNRD06CisrICAjIFpz aCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNwbGl0dGluZyBvbiBcJHsxK1wiXCRAXCJ9LCB3 aGljaAorKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVy ZS4KKysgIGFsaWFzIC1nICdcJHsxK1wiXCRAXCJ9Jz0nXCJcJEBcIicKKysgIHNldG9wdCBOT19H TE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBcYChzZXQgLW8pIDI+L2Rldi9udWxsXGAgaW4gKnBv c2l4Kikgc2V0IC1vIHBvc2l4OzsgZXNhYworK2ZpCisrQklOX1NIPXhwZzQ7IGV4cG9ydCBCSU5f U0ggIyBmb3IgVHJ1NjQKKytEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNo CisrCisrIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRp cmVjdG9yeSB0byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQuCisrKHVuc2V0IENEUEFUSCkg Pi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworK3JlbGlua19jb21tYW5kPVwiJHJl bGlua19jb21tYW5kXCIKKysKKysjIFRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUgZGV0ZXJtaW5l cyBvdXIgb3BlcmF0aW9uIG1vZGUuCisraWYgdGVzdCBcIlwkbGlidG9vbF9pbnN0YWxsX21hZ2lj XCIgPSBcIiRtYWdpY1wiOyB0aGVuCisrICAjIGluc3RhbGwgbW9kZSBuZWVkcyB0aGUgZm9sbG93 aW5nIHZhcmlhYmxlczoKKysgIGdlbmVyYXRlZF9ieV9saWJ0b29sX3ZlcnNpb249JyRtYWNyb192 ZXJzaW9uJworKyAgbm90aW5zdF9kZXBsaWJzPSckbm90aW5zdF9kZXBsaWJzJworK2Vsc2UKKysg ICMgV2hlbiB3ZSBhcmUgc291cmNlZCBpbiBleGVjdXRlIG1vZGUsIFwkZmlsZSBhbmQgXCRFQ0hP IGFyZSBhbHJlYWR5IHNldC4KKysgIGlmIHRlc3QgXCJcJGxpYnRvb2xfZXhlY3V0ZV9tYWdpY1wi ICE9IFwiJG1hZ2ljXCI7IHRoZW4KKysgICAgZmlsZT1cIlwkMFwiIgorKworKyAgICBxRUNITz1g JEVDSE8gIiRFQ0hPIiB8ICRTRUQgIiRzZWRfcXVvdGVfc3Vic3QiYAorKyAgICAkRUNITyAiXAor KworKyMgQSBmdW5jdGlvbiB0aGF0IGlzIHVzZWQgd2hlbiB0aGVyZSBpcyBubyBwcmludCBidWls dGluIG9yIHByaW50Zi4KKytmdW5jX2ZhbGxiYWNrX2VjaG8gKCkKKyt7CisrICBldmFsICdjYXQg PDxfTFRFQ0hPX0VPRgorK1wkMQorK19MVEVDSE9fRU9GJworK30KKysgICAgRUNITz1cIiRxRUNI T1wiCisrICBmaQorKworKyMgVmVyeSBiYXNpYyBvcHRpb24gcGFyc2luZy4gVGhlc2Ugb3B0aW9u cyBhcmUgKGEpIHNwZWNpZmljIHRvCisrIyB0aGUgbGlidG9vbCB3cmFwcGVyLCAoYikgYXJlIGlk ZW50aWNhbCBiZXR3ZWVuIHRoZSB3cmFwcGVyCisrIyAvc2NyaXB0LyBhbmQgdGhlIHdyYXBwZXIg L2V4ZWN1dGFibGUvIHdoaWNoIGlzIHVzZWQgb25seSBvbgorKyMgd2luZG93cyBwbGF0Zm9ybXMs IGFuZCAoYykgYWxsIGJlZ2luIHdpdGggdGhlIHN0cmluZyAiLS1sdC0iCisrIyAoYXBwbGljYXRp b24gcHJvZ3JhbXMgYXJlIHVubGlrZWx5IHRvIGhhdmUgb3B0aW9ucyB3aGljaCBtYXRjaAorKyMg dGhpcyBwYXR0ZXJuKS4KKysjCisrIyBUaGVyZSBhcmUgb25seSB0d28gc3VwcG9ydGVkIG9wdGlv bnM6IC0tbHQtZGVidWcgYW5kCisrIyAtLWx0LWR1bXAtc2NyaXB0LiBUaGVyZSBpcywgZGVsaWJl cmF0ZWx5LCBubyAtLWx0LWhlbHAuCisrIworKyMgVGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoaXMg cGFyc2luZyBmdW5jdGlvbiBzaG91bGQgYmUgdGhlCisrIyBzY3JpcHQncyAkMCB2YWx1ZSwgZm9s bG93ZWQgYnkgIiRAIi4KKytsdF9vcHRpb25fZGVidWc9CisrZnVuY19wYXJzZV9sdF9vcHRpb25z ICgpCisreworKyAgbHRfc2NyaXB0X2FyZzA9XCQwCisrICBzaGlmdAorKyAgZm9yIGx0X29wdAor KyAgZG8KKysgICAgY2FzZSBcIlwkbHRfb3B0XCIgaW4KKysgICAgLS1sdC1kZWJ1ZykgbHRfb3B0 aW9uX2RlYnVnPTEgOzsKKysgICAgLS1sdC1kdW1wLXNjcmlwdCkKKysgICAgICAgIGx0X2R1bXBf RD1cYFwkRUNITyBcIlhcJGx0X3NjcmlwdF9hcmcwXCIgfCAkU0VEIC1lICdzL15YLy8nIC1lICdz JS9bXi9dKiQlJSdcYAorKyAgICAgICAgdGVzdCBcIlhcJGx0X2R1bXBfRFwiID0gXCJYXCRsdF9z Y3JpcHRfYXJnMFwiICYmIGx0X2R1bXBfRD0uCisrICAgICAgICBsdF9kdW1wX0Y9XGBcJEVDSE8g XCJYXCRsdF9zY3JpcHRfYXJnMFwiIHwgJFNFRCAtZSAncy9eWC8vJyAtZSAncyVeLiovJSUnXGAK KysgICAgICAgIGNhdCBcIlwkbHRfZHVtcF9EL1wkbHRfZHVtcF9GXCIKKysgICAgICAgIGV4aXQg MAorKyAgICAgIDs7CisrICAgIC0tbHQtKikKKysgICAgICAgIFwkRUNITyBcIlVucmVjb2duaXpl ZCAtLWx0LSBvcHRpb246ICdcJGx0X29wdCdcIiAxPiYyCisrICAgICAgICBleGl0IDEKKysgICAg ICA7OworKyAgICBlc2FjCisrICBkb25lCisrCisrICAjIFByaW50IHRoZSBkZWJ1ZyBiYW5uZXIg aW1tZWRpYXRlbHk6CisrICBpZiB0ZXN0IC1uIFwiXCRsdF9vcHRpb25fZGVidWdcIjsgdGhlbgor KyAgICBlY2hvIFwiJHtvdXRwdXRuYW1lfToke291dHB1dH06XCR7TElORU5PfTogbGlidG9vbCB3 cmFwcGVyIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTlwiIDE+JjIKKysgIGZpCisr fQorKworKyMgVXNlZCB3aGVuIC0tbHQtZGVidWcuIFByaW50cyBpdHMgYXJndW1lbnRzIHRvIHN0 ZG91dAorKyMgKHJlZGlyZWN0aW9uIGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2FsbGVy KQorK2Z1bmNfbHRfZHVtcF9hcmdzICgpCisreworKyAgbHRfZHVtcF9hcmdzX049MTsKKysgIGZv ciBsdF9hcmcKKysgIGRvCisrICAgIFwkRUNITyBcIiR7b3V0cHV0bmFtZX06JHtvdXRwdXR9Olwk e0xJTkVOT306IG5ld2FyZ3ZbXCRsdF9kdW1wX2FyZ3NfTl06IFwkbHRfYXJnXCIKKysgICAgbHRf ZHVtcF9hcmdzX049XGBleHByIFwkbHRfZHVtcF9hcmdzX04gKyAxXGAKKysgIGRvbmUKKyt9Cisr CisrIyBDb3JlIGZ1bmN0aW9uIGZvciBsYXVuY2hpbmcgdGhlIHRhcmdldCBhcHBsaWNhdGlvbgor K2Z1bmNfZXhlY19wcm9ncmFtX2NvcmUgKCkKKyt7CisrIgorKyAgY2FzZSAkaG9zdCBpbgorKyAg IyBCYWNrc2xhc2hlcyBzZXBhcmF0ZSBkaXJlY3RvcmllcyBvbiBwbGFpbiB3aW5kb3dzCisrICAq LSotbWluZ3cgfCAqLSotb3MyKiB8ICotY2VnY2MqKQorKyAgICAkRUNITyAiXAorKyAgICAgIGlm IHRlc3QgLW4gXCJcJGx0X29wdGlvbl9kZWJ1Z1wiOyB0aGVuCisrICAgICAgICBcJEVDSE8gXCIk e291dHB1dG5hbWV9OiR7b3V0cHV0fTpcJHtMSU5FTk99OiBuZXdhcmd2WzBdOiBcJHByb2dkaXJc XFxcXCRwcm9ncmFtXCIgMT4mMgorKyAgICAgICAgZnVuY19sdF9kdW1wX2FyZ3MgXCR7MStcIlwk QFwifSAxPiYyCisrICAgICAgZmkKKysgICAgICBleGVjIFwiXCRwcm9nZGlyXFxcXFwkcHJvZ3Jh bVwiIFwkezErXCJcJEBcIn0KKysiCisrICAgIDs7CisrCisrICAqKQorKyAgICAkRUNITyAiXAor KyAgICAgIGlmIHRlc3QgLW4gXCJcJGx0X29wdGlvbl9kZWJ1Z1wiOyB0aGVuCisrICAgICAgICBc JEVDSE8gXCIke291dHB1dG5hbWV9OiR7b3V0cHV0fTpcJHtMSU5FTk99OiBuZXdhcmd2WzBdOiBc JHByb2dkaXIvXCRwcm9ncmFtXCIgMT4mMgorKyAgICAgICAgZnVuY19sdF9kdW1wX2FyZ3MgXCR7 MStcIlwkQFwifSAxPiYyCisrICAgICAgZmkKKysgICAgICBleGVjIFwiXCRwcm9nZGlyL1wkcHJv Z3JhbVwiIFwkezErXCJcJEBcIn0KKysiCisrICAgIDs7CisrICBlc2FjCisrICAkRUNITyAiXAor KyAgICAgIFwkRUNITyBcIlwkMDogY2Fubm90IGV4ZWMgXCRwcm9ncmFtIFwkKlwiIDE+JjIKKysg ICAgICBleGl0IDEKKyt9CisrCisrIyBBIGZ1bmN0aW9uIHRvIGVuY2Fwc3VsYXRlIGxhdW5jaGlu ZyB0aGUgdGFyZ2V0IGFwcGxpY2F0aW9uCisrIyBTdHJpcHMgb3B0aW9ucyBpbiB0aGUgLS1sdC0q IG5hbWVzcGFjZSBmcm9tIFwkQCBhbmQKKysjIGxhdW5jaGVzIHRhcmdldCBhcHBsaWNhdGlvbiB3 aXRoIHRoZSByZW1haW5pbmcgYXJndW1lbnRzLgorK2Z1bmNfZXhlY19wcm9ncmFtICgpCisrewor KyAgZm9yIGx0X3dyX2FyZworKyAgZG8KKysgICAgY2FzZSBcJGx0X3dyX2FyZyBpbgorKyAgICAt LWx0LSopIDs7CisrICAgICopIHNldCB4IFwiXCRAXCIgXCJcJGx0X3dyX2FyZ1wiOyBzaGlmdDs7 CisrICAgIGVzYWMKKysgICAgc2hpZnQKKysgIGRvbmUKKysgIGZ1bmNfZXhlY19wcm9ncmFtX2Nv cmUgXCR7MStcIlwkQFwifQorK30KKysKKysgICMgUGFyc2Ugb3B0aW9ucworKyAgZnVuY19wYXJz ZV9sdF9vcHRpb25zIFwiXCQwXCIgXCR7MStcIlwkQFwifQorKworKyAgIyBGaW5kIHRoZSBkaXJl Y3RvcnkgdGhhdCB0aGlzIHNjcmlwdCBsaXZlcyBpbi4KKysgIHRoaXNkaXI9XGBcJEVDSE8gXCJc JGZpbGVcIiB8ICRTRUQgJ3MlL1teL10qJCUlJ1xgCisrICB0ZXN0IFwieFwkdGhpc2RpclwiID0g XCJ4XCRmaWxlXCIgJiYgdGhpc2Rpcj0uCisrCisrICAjIEZvbGxvdyBzeW1ib2xpYyBsaW5rcyB1 bnRpbCB3ZSBnZXQgdG8gdGhlIHJlYWwgdGhpc2Rpci4KKysgIGZpbGU9XGBscyAtbGQgXCJcJGZp bGVcIiB8ICRTRUQgLW4gJ3MvLiotPiAvL3AnXGAKKysgIHdoaWxlIHRlc3QgLW4gXCJcJGZpbGVc IjsgZG8KKysgICAgZGVzdGRpcj1cYFwkRUNITyBcIlwkZmlsZVwiIHwgJFNFRCAncyUvW14vXSpc JCUlJ1xgCisrCisrICAgICMgSWYgdGhlcmUgd2FzIGEgZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhl biBjaGFuZ2UgdGhpc2Rpci4KKysgICAgaWYgdGVzdCBcInhcJGRlc3RkaXJcIiAhPSBcInhcJGZp bGVcIjsgdGhlbgorKyAgICAgIGNhc2UgXCJcJGRlc3RkaXJcIiBpbgorKyAgICAgIFtcXFxcL10q IHwgW0EtWmEtel06W1xcXFwvXSopIHRoaXNkaXI9XCJcJGRlc3RkaXJcIiA7OworKyAgICAgICop IHRoaXNkaXI9XCJcJHRoaXNkaXIvXCRkZXN0ZGlyXCIgOzsKKysgICAgICBlc2FjCisrICAgIGZp CisrCisrICAgIGZpbGU9XGBcJEVDSE8gXCJcJGZpbGVcIiB8ICRTRUQgJ3MlXi4qLyUlJ1xgCisr ICAgIGZpbGU9XGBscyAtbGQgXCJcJHRoaXNkaXIvXCRmaWxlXCIgfCAkU0VEIC1uICdzLy4qLT4g Ly9wJ1xgCisrICBkb25lCisrCisrICAjIFVzdWFsbHkgJ25vJywgZXhjZXB0IG9uIGN5Z3dpbi9t aW5ndyB3aGVuIGVtYmVkZGVkIGludG8KKysgICMgdGhlIGN3cmFwcGVyLgorKyAgV1JBUFBFUl9T Q1JJUFRfQkVMT05HU19JTl9PQkpESVI9JGZ1bmNfZW1pdF93cmFwcGVyX2FyZzEKKysgIGlmIHRl c3QgXCJcJFdSQVBQRVJfU0NSSVBUX0JFTE9OR1NfSU5fT0JKRElSXCIgPSBcInllc1wiOyB0aGVu CisrICAgICMgc3BlY2lhbCBjYXNlIGZvciAnLicKKysgICAgaWYgdGVzdCBcIlwkdGhpc2Rpclwi ID0gXCIuXCI7IHRoZW4KKysgICAgICB0aGlzZGlyPVxgcHdkXGAKKysgICAgZmkKKysgICAgIyBy ZW1vdmUgLmxpYnMgZnJvbSB0aGlzZGlyCisrICAgIGNhc2UgXCJcJHRoaXNkaXJcIiBpbgorKyAg ICAqW1xcXFwvXSRvYmpkaXIgKSB0aGlzZGlyPVxgXCRFQ0hPIFwiXCR0aGlzZGlyXCIgfCAkU0VE ICdzJVtcXFxcL11bXlxcXFwvXSokJSUnXGAgOzsKKysgICAgJG9iamRpciApICAgdGhpc2Rpcj0u IDs7CisrICAgIGVzYWMKKysgIGZpCisrCisrICAjIFRyeSB0byBnZXQgdGhlIGFic29sdXRlIGRp cmVjdG9yeSBuYW1lLgorKyAgYWJzZGlyPVxgY2QgXCJcJHRoaXNkaXJcIiAmJiBwd2RcYAorKyAg dGVzdCAtbiBcIlwkYWJzZGlyXCIgJiYgdGhpc2Rpcj1cIlwkYWJzZGlyXCIKKysiCisrCisrCWlm IHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzOyB0aGVuCisrCSAgJEVDSE8gIlwKKysgIHByb2dy YW09bHQtJyRvdXRwdXRuYW1lJyRleGVleHQKKysgIHByb2dkaXI9XCJcJHRoaXNkaXIvJG9iamRp clwiCisrCisrICBpZiB0ZXN0ICEgLWYgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgfHwKKysgICAg IHsgZmlsZT1cYGxzIC0xZHQgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgXCJcJHByb2dkaXIvLi4v XCRwcm9ncmFtXCIgMj4vZGV2L251bGwgfCAke1NFRH0gMXFcYDsgXFwKKysgICAgICAgdGVzdCBc IlhcJGZpbGVcIiAhPSBcIlhcJHByb2dkaXIvXCRwcm9ncmFtXCI7IH07IHRoZW4KKysKKysgICAg ZmlsZT1cIlwkXCQtXCRwcm9ncmFtXCIKKysKKysgICAgaWYgdGVzdCAhIC1kIFwiXCRwcm9nZGly XCI7IHRoZW4KKysgICAgICAkTUtESVIgXCJcJHByb2dkaXJcIgorKyAgICBlbHNlCisrICAgICAg JFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCisrICAgIGZpIgorKworKwkgICRFQ0hPICJcCisrCisr ICAgICMgcmVsaW5rIGV4ZWN1dGFibGUgaWYgbmVjZXNzYXJ5CisrICAgIGlmIHRlc3QgLW4gXCJc JHJlbGlua19jb21tYW5kXCI7IHRoZW4KKysgICAgICBpZiByZWxpbmtfY29tbWFuZF9vdXRwdXQ9 XGBldmFsIFwkcmVsaW5rX2NvbW1hbmQgMj4mMVxgOyB0aGVuIDoKKysgICAgICBlbHNlCisrCSRF Q0hPIFwiXCRyZWxpbmtfY29tbWFuZF9vdXRwdXRcIiA+JjIKKysJJFJNIFwiXCRwcm9nZGlyL1wk ZmlsZVwiCisrCWV4aXQgMQorKyAgICAgIGZpCisrICAgIGZpCisrCisrICAgICRNViBcIlwkcHJv Z2Rpci9cJGZpbGVcIiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiAyPi9kZXYvbnVsbCB8fAorKyAg ICB7ICRSTSBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIjsKKysgICAgICAkTVYgXCJcJHByb2dkaXIv XCRmaWxlXCIgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCI7IH0KKysgICAgJFJNIFwiXCRwcm9nZGly L1wkZmlsZVwiCisrICBmaSIKKysJZWxzZQorKwkgICRFQ0hPICJcCisrICBwcm9ncmFtPSckb3V0 cHV0bmFtZScKKysgIHByb2dkaXI9XCJcJHRoaXNkaXIvJG9iamRpclwiCisrIgorKwlmaQorKwor KwkkRUNITyAiXAorKworKyAgaWYgdGVzdCAtZiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIjsgdGhl biIKKysKKysJIyBFeHBvcnQgb3VyIHNobGlicGF0aF92YXIgaWYgd2UgaGF2ZSBvbmUuCisrCWlm IHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzICYmIHRlc3QgLW4gIiRz aGxpYnBhdGhfdmFyIiAmJiB0ZXN0IC1uICIkdGVtcF9ycGF0aCI7IHRoZW4KKysJICAkRUNITyAi XAorKyAgICAjIEFkZCBvdXIgb3duIGxpYnJhcnkgcGF0aCB0byAkc2hsaWJwYXRoX3ZhcgorKyAg ICAkc2hsaWJwYXRoX3Zhcj1cIiR0ZW1wX3JwYXRoXCQkc2hsaWJwYXRoX3ZhclwiCisrCisrICAg ICMgU29tZSBzeXN0ZW1zIGNhbm5vdCBjb3BlIHdpdGggY29sb24tdGVybWluYXRlZCAkc2hsaWJw YXRoX3ZhcgorKyAgICAjIFRoZSBzZWNvbmQgY29sb24gaXMgYSB3b3JrYXJvdW5kIGZvciBhIGJ1 ZyBpbiBCZU9TIFI0IHNlZAorKyAgICAkc2hsaWJwYXRoX3Zhcj1cYFwkRUNITyBcIlwkJHNobGli cGF0aF92YXJcIiB8ICRTRUQgJ3MvOjoqXCQvLydcYAorKworKyAgICBleHBvcnQgJHNobGlicGF0 aF92YXIKKysiCisrCWZpCisrCisrCSMgZml4dXAgdGhlIGRsbCBzZWFyY2hwYXRoIGlmIHdlIG5l ZWQgdG8uCisrCWlmIHRlc3QgLW4gIiRkbGxzZWFyY2hwYXRoIjsgdGhlbgorKwkgICRFQ0hPICJc CisrICAgICMgQWRkIHRoZSBkbGwgc2VhcmNoIHBhdGggY29tcG9uZW50cyB0byB0aGUgZXhlY3V0 YWJsZSBQQVRICisrICAgIFBBVEg9JGRsbHNlYXJjaHBhdGg6XCRQQVRICisrIgorKwlmaQorKwor KwkkRUNITyAiXAorKyAgICBpZiB0ZXN0IFwiXCRsaWJ0b29sX2V4ZWN1dGVfbWFnaWNcIiAhPSBc IiRtYWdpY1wiOyB0aGVuCisrICAgICAgIyBSdW4gdGhlIGFjdHVhbCBwcm9ncmFtIHdpdGggb3Vy IGFyZ3VtZW50cy4KKysgICAgICBmdW5jX2V4ZWNfcHJvZ3JhbSBcJHsxK1wiXCRAXCJ9CisrICAg IGZpCisrICBlbHNlCisrICAgICMgVGhlIHByb2dyYW0gZG9lc24ndCBleGlzdC4KKysgICAgXCRF Q0hPIFwiXCQwOiBlcnJvcjogXFxcYFwkcHJvZ2Rpci9cJHByb2dyYW0nIGRvZXMgbm90IGV4aXN0 XCIgMT4mMgorKyAgICBcJEVDSE8gXCJUaGlzIHNjcmlwdCBpcyBqdXN0IGEgd3JhcHBlciBmb3Ig XCRwcm9ncmFtLlwiIDE+JjIKKysgICAgXCRFQ0hPIFwiU2VlIHRoZSAkUEFDS0FHRSBkb2N1bWVu dGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLlwiIDE+JjIKKysgICAgZXhpdCAxCisrICBmaQor K2ZpXAorKyIKKyt9CisrCisrCisrIyBmdW5jX3RvX2hvc3RfcGF0aCBhcmcKKysjCisrIyBDb252 ZXJ0IHBhdGhzIHRvIGhvc3QgZm9ybWF0IHdoZW4gdXNlZCB3aXRoIGJ1aWxkIHRvb2xzLgorKyMg SW50ZW5kZWQgZm9yIHVzZSB3aXRoICJuYXRpdmUiIG1pbmd3ICh3aGVyZSBsaWJ0b29sIGl0c2Vs ZgorKyMgaXMgcnVubmluZyB1bmRlciB0aGUgbXN5cyBzaGVsbCksIG9yIGluIHRoZSBmb2xsb3dp bmcgY3Jvc3MtCisrIyBidWlsZCBlbnZpcm9ubWVudHM6CisrIyAgICAkYnVpbGQgICAgICAgICAg JGhvc3QKKysjICAgIG1pbmd3IChtc3lzKSAgICBtaW5ndyAgW2UuZy4gbmF0aXZlXQorKyMgICAg Y3lnd2luICAgICAgICAgIG1pbmd3CisrIyAgICAqbml4ICsgd2luZSAgICAgbWluZ3cKKysjIHdo ZXJlIHdpbmUgaXMgZXF1aXBwZWQgd2l0aCB0aGUgYHdpbmVwYXRoJyBleGVjdXRhYmxlLgorKyMg SW4gdGhlIG5hdGl2ZSBtaW5ndyBjYXNlLCB0aGUgKG1zeXMpIHNoZWxsIGF1dG9tYXRpY2FsbHkK KysjIGNvbnZlcnRzIHBhdGhzIGZvciBhbnkgbm9uLW1zeXMgYXBwbGljYXRpb25zIGl0IGxhdW5j aGVzLAorKyMgYnV0IHRoYXQgZmFjaWxpdHkgaXNuJ3QgYXZhaWxhYmxlIGZyb20gaW5zaWRlIHRo ZSBjd3JhcHBlci4KKysjIFNpbWlsYXIgYWNjb21tb2RhdGlvbnMgYXJlIG5lY2Vzc2FyeSBmb3Ig JGhvc3QgbWluZ3cgYW5kCisrIyAkYnVpbGQgY3lnd2luLiAgQ2FsbGluZyB0aGlzIGZ1bmN0aW9u IGRvZXMgbm8gaGFybSBmb3Igb3RoZXIKKysjICRob3N0LyRidWlsZCBjb21iaW5hdGlvbnMgbm90 IGxpc3RlZCBhYm92ZS4KKysjCisrIyBBUkcgaXMgdGhlIHBhdGggKG9uICRidWlsZCkgdGhhdCBz aG91bGQgYmUgY29udmVydGVkIHRvCisrIyB0aGUgcHJvcGVyIHJlcHJlc2VudGF0aW9uIGZvciAk aG9zdC4gVGhlIHJlc3VsdCBpcyBzdG9yZWQKKysjIGluICRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1 bHQuCisrZnVuY190b19ob3N0X3BhdGggKCkKKyt7CisrICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1 bHQ9IiQxIgorKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCisrICAgIGNhc2UgJGhvc3QgaW4KKysg ICAgICAqbWluZ3cqICkKKysgICAgICAgIGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnk9J3N8XFxc XCp8XFx8ZztzfC98XFx8ZztzfFxcfFxcXFx8ZycKKysgICAgICAgIGNhc2UgJGJ1aWxkIGluCisr ICAgICAgICAgICptaW5ndyogKSAjIGFjdHVhbGx5LCBtc3lzCisrICAgICAgICAgICAgIyBhd2t3 YXJkOiBjbWQgYXBwZW5kcyBzcGFjZXMgdG8gcmVzdWx0CisrICAgICAgICAgICAgZnVuY190b19o b3N0X3BhdGhfcmVzdWx0PWAoIGNtZCAvL2MgZWNobyAiJDEiICkgMj4vZGV2L251bGwgfAorKyAg ICAgICAgICAgICAgJFNFRCAtZSAncy9bIF0qJC8vJyAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNrc2xh c2hpZnkiYAorKyAgICAgICAgICAgIDs7CisrICAgICAgICAgICpjeWd3aW4qICkKKysgICAgICAg ICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9YGN5Z3BhdGggLXcgIiQxIiB8CisrCSAgICAg ICRTRUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKKysgICAgICAgICAgICA7Owor KyAgICAgICAgICAqICkKKysgICAgICAgICAgICAjIFVuZm9ydHVuYXRlbHksIHdpbmVwYXRoIGRv ZXMgbm90IGV4aXQgd2l0aCBhIG5vbi16ZXJvCisrICAgICAgICAgICAgIyBlcnJvciBjb2RlLCBz byB3ZSBhcmUgZm9yY2VkIHRvIGNoZWNrIHRoZSBjb250ZW50cyBvZgorKyAgICAgICAgICAgICMg c3Rkb3V0LiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgdGhlIGNvbW1hbmQgaXMgbm90CisrICAgICAg ICAgICAgIyBmb3VuZCwgdGhlIHNoZWxsIHdpbGwgc2V0IGFuIGV4aXQgY29kZSBvZiAxMjcgYW5k IHByaW50CisrICAgICAgICAgICAgIyAqYW4gZXJyb3IgbWVzc2FnZSogdG8gc3Rkb3V0LiBTbyB3 ZSBtdXN0IGNoZWNrIGZvciBib3RoCisrICAgICAgICAgICAgIyBlcnJvciBjb2RlIG9mIHplcm8g QU5EIG5vbi1lbXB0eSBzdGRvdXQsIHdoaWNoIGV4cGxhaW5zCisrICAgICAgICAgICAgIyB0aGUg b2RkIGNvbnN0cnVjdGlvbjoKKysgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF90bXAxPWB3 aW5lcGF0aCAtdyAiJDEiIDI+L2Rldi9udWxsYAorKyAgICAgICAgICAgIGlmIHRlc3QgIiQ/IiAt ZXEgMCAmJiB0ZXN0IC1uICIke2Z1bmNfdG9faG9zdF9wYXRoX3RtcDF9IjsgdGhlbgorKyAgICAg ICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PWAkRUNITyAiJGZ1bmNfdG9faG9zdF9w YXRoX3RtcDEiIHwKKysgICAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNr c2xhc2hpZnkiYAorKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICMgQWxsb3cgd2Fy bmluZyBiZWxvdy4KKysgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0KKysg ICAgICAgICAgICBmaQorKyAgICAgICAgICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICBp ZiB0ZXN0IC16ICIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IiA7IHRoZW4KKysgICAgICAgICAg ZnVuY19lcnJvciAiQ291bGQgbm90IGRldGVybWluZSBob3N0IHBhdGggY29ycmVzcG9uZGluZyB0 byIKKysgICAgICAgICAgZnVuY19lcnJvciAiICBcYCQxJyIKKysgICAgICAgICAgZnVuY19lcnJv ciAiQ29udGludWluZywgYnV0IHVuaW5zdGFsbGVkIGV4ZWN1dGFibGVzIG1heSBub3Qgd29yay4i CisrICAgICAgICAgICMgRmFsbGJhY2s6CisrICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jl c3VsdD0iJDEiCisrICAgICAgICBmaQorKyAgICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKyt9 CisrIyBlbmQ6IGZ1bmNfdG9faG9zdF9wYXRoCisrCisrIyBmdW5jX3RvX2hvc3RfcGF0aGxpc3Qg YXJnCisrIworKyMgQ29udmVydCBwYXRobGlzdHMgdG8gaG9zdCBmb3JtYXQgd2hlbiB1c2VkIHdp dGggYnVpbGQgdG9vbHMuCisrIyBTZWUgZnVuY190b19ob3N0X3BhdGgoKSwgYWJvdmUuIFRoaXMg ZnVuY3Rpb24gc3VwcG9ydHMgdGhlCisrIyBmb2xsb3dpbmcgJGJ1aWxkLyRob3N0IGNvbWJpbmF0 aW9ucyAoYnV0IGRvZXMgbm8gaGFybSBmb3IKKysjIGNvbWJpbmF0aW9ucyBub3QgbGlzdGVkIGhl cmUpOgorKyMgICAgJGJ1aWxkICAgICAgICAgICRob3N0CisrIyAgICBtaW5ndyAobXN5cykgICAg bWluZ3cgIFtlLmcuIG5hdGl2ZV0KKysjICAgIGN5Z3dpbiAgICAgICAgICBtaW5ndworKyMgICAg Km5peCArIHdpbmUgICAgIG1pbmd3CisrIworKyMgUGF0aCBzZXBhcmF0b3JzIGFyZSBhbHNvIGNv bnZlcnRlZCBmcm9tICRidWlsZCBmb3JtYXQgdG8KKysjICRob3N0IGZvcm1hdC4gSWYgQVJHIGJl Z2lucyBvciBlbmRzIHdpdGggYSBwYXRoIHNlcGFyYXRvcgorKyMgY2hhcmFjdGVyLCBpdCBpcyBw cmVzZXJ2ZWQgKGJ1dCBjb252ZXJ0ZWQgdG8gJGhvc3QgZm9ybWF0KQorKyMgb24gb3V0cHV0Lgor KyMKKysjIEFSRyBpcyBhIHBhdGhsaXN0IChvbiAkYnVpbGQpIHRoYXQgc2hvdWxkIGJlIGNvbnZl cnRlZCB0bworKyMgdGhlIHByb3BlciByZXByZXNlbnRhdGlvbiBvbiAkaG9zdC4gVGhlIHJlc3Vs dCBpcyBzdG9yZWQKKysjIGluICRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0LgorK2Z1bmNf dG9faG9zdF9wYXRobGlzdCAoKQorK3sKKysgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9 IiQxIgorKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCisrICAgIGNhc2UgJGhvc3QgaW4KKysgICAg ICAqbWluZ3cqICkKKysgICAgICAgIGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnk9J3N8XFxcXCp8 XFx8ZztzfC98XFx8ZztzfFxcfFxcXFx8ZycKKysgICAgICAgICMgUmVtb3ZlIGxlYWRpbmcgYW5k IHRyYWlsaW5nIHBhdGggc2VwYXJhdG9yIGNoYXJhY3RlcnMgZnJvbQorKyAgICAgICAgIyBBUkcu IG1zeXMgYmVoYXZpb3IgaXMgaW5jb25zaXN0ZW50IGhlcmUsIGN5Z3BhdGggdHVybnMgdGhlbQor KyAgICAgICAgIyBpbnRvICcuOycgYW5kICc7LicsIGFuZCB3aW5lcGF0aCBpZ25vcmVzIHRoZW0g Y29tcGxldGVseS4KKysJZnVuY19zdHJpcG5hbWUgOiA6ICIkMSIKKysgICAgICAgIGZ1bmNfdG9f aG9zdF9wYXRobGlzdF90bXAxPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysgICAgICAgIGNhc2Ug JGJ1aWxkIGluCisrICAgICAgICAgICptaW5ndyogKSAjIEFjdHVhbGx5LCBtc3lzLgorKyAgICAg ICAgICAgICMgQXdrd2FyZDogY21kIGFwcGVuZHMgc3BhY2VzIHRvIHJlc3VsdC4KKysgICAgICAg ICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PWAKKysJICAgICAgKCBjbWQgLy9jIGVj aG8gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMSIgKSAyPi9kZXYvbnVsbCB8CisrCSAgICAg ICRTRUQgLWUgJ3MvWyBdKiQvLycgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKKysg ICAgICAgICAgICA7OworKyAgICAgICAgICAqY3lnd2luKiApCisrICAgICAgICAgICAgZnVuY190 b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD1gY3lncGF0aCAtdyAtcCAiJGZ1bmNfdG9faG9zdF9wYXRo bGlzdF90bXAxIiB8CisrICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tz bGFzaGlmeSJgCisrICAgICAgICAgICAgOzsKKysgICAgICAgICAgKiApCisrICAgICAgICAgICAg IyB1bmZvcnR1bmF0ZWx5LCB3aW5lcGF0aCBkb2Vzbid0IGNvbnZlcnQgcGF0aGxpc3RzCisrICAg ICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0iIgorKyAgICAgICAgICAgIGZ1 bmNfdG9faG9zdF9wYXRobGlzdF9vbGRJRlM9JElGUworKyAgICAgICAgICAgIElGUz06CisrICAg ICAgICAgICAgZm9yIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9mIGluICRmdW5jX3RvX2hvc3RfcGF0 aGxpc3RfdG1wMSA7IGRvCisrICAgICAgICAgICAgICBJRlM9JGZ1bmNfdG9faG9zdF9wYXRobGlz dF9vbGRJRlMKKysgICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRmdW5jX3RvX2hvc3RfcGF0aGxp c3RfZiIgOyB0aGVuCisrICAgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoICIkZnVuY190 b19ob3N0X3BhdGhsaXN0X2YiCisrICAgICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRmdW5jX3Rv X2hvc3RfcGF0aF9yZXN1bHQiIDsgdGhlbgorKyAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLXog IiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IiA7IHRoZW4KKysgICAgICAgICAgICAgICAg ICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1 bHQiCisrICAgICAgICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICAgICAgZnVuY19h cHBlbmQgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCAiOyRmdW5jX3RvX2hvc3RfcGF0aF9y ZXN1bHQiCisrICAgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICAgICAgZmkKKysgICAg ICAgICAgICAgIGZpCisrICAgICAgICAgICAgZG9uZQorKyAgICAgICAgICAgIElGUz0kZnVuY190 b19ob3N0X3BhdGhsaXN0X29sZElGUworKyAgICAgICAgICAgIDs7CisrICAgICAgICBlc2FjCisr ICAgICAgICBpZiB0ZXN0IC16ICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCI7IHRoZW4K KysgICAgICAgICAgZnVuY19lcnJvciAiQ291bGQgbm90IGRldGVybWluZSB0aGUgaG9zdCBwYXRo KHMpIGNvcnJlc3BvbmRpbmcgdG8iCisrICAgICAgICAgIGZ1bmNfZXJyb3IgIiAgXGAkMSciCisr ICAgICAgICAgIGZ1bmNfZXJyb3IgIkNvbnRpbnVpbmcsIGJ1dCB1bmluc3RhbGxlZCBleGVjdXRh YmxlcyBtYXkgbm90IHdvcmsuIgorKyAgICAgICAgICAjIEZhbGxiYWNrLiBUaGlzIG1heSBicmVh ayBpZiAkMSBjb250YWlucyBET1Mtc3R5bGUgZHJpdmUKKysgICAgICAgICAgIyBzcGVjaWZpY2F0 aW9ucy4gVGhlIGZpeCBpcyBub3QgdG8gY29tcGxpY2F0ZSB0aGUgZXhwcmVzc2lvbgorKyAgICAg ICAgICAjIGJlbG93LCBidXQgZm9yIHRoZSB1c2VyIHRvIHByb3ZpZGUgYSB3b3JraW5nIHdpbmUg aW5zdGFsbGF0aW9uCisrICAgICAgICAgICMgd2l0aCB3aW5lcGF0aCBzbyB0aGF0IHBhdGggdHJh bnNsYXRpb24gaW4gdGhlIGNyb3NzLXRvLW1pbmd3CisrICAgICAgICAgICMgY2FzZSB3b3JrcyBw cm9wZXJseS4KKysgICAgICAgICAgbHRfcmVwbGFjZV9wYXRoc2VwX25peF90b19kb3M9InN8Onw7 fGciCisrICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9YGVjaG8gIiRmdW5j X3RvX2hvc3RfcGF0aGxpc3RfdG1wMSIgfFwKKysgICAgICAgICAgICAkU0VEIC1lICIkbHRfcmVw bGFjZV9wYXRoc2VwX25peF90b19kb3MiYAorKyAgICAgICAgZmkKKysgICAgICAgICMgTm93LCBh ZGQgdGhlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHBhdGggc2VwYXJhdG9ycyBiYWNrCisrICAgICAg ICBjYXNlICIkMSIgaW4KKysgICAgICAgICAgOiogKSBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVz dWx0PSI7JGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQiCisrICAgICAgICAgICAgOzsKKysg ICAgICAgIGVzYWMKKysgICAgICAgIGNhc2UgIiQxIiBpbgorKyAgICAgICAgICAqOiApIGZ1bmNf YXBwZW5kIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQgIjsiCisrICAgICAgICAgICAgOzsK KysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrfQorKyMgZW5k OiBmdW5jX3RvX2hvc3RfcGF0aGxpc3QKKysKKysjIGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMK KysjIGVtaXQgdGhlIHNvdXJjZSBjb2RlIGZvciBhIHdyYXBwZXIgZXhlY3V0YWJsZSBvbiBzdGRv dXQKKysjIE11c3QgT05MWSBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gZnVuY19tb2RlX2xpbmsgYmVj YXVzZQorKyMgaXQgZGVwZW5kcyBvbiBhIG51bWJlciBvZiB2YXJpYWJsZSBzZXQgdGhlcmVpbi4K KytmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjICgpCisreworKwljYXQgPDxFT0YKKysKKysvKiAk Y3dyYXBwZXJzb3VyY2UgLSB0ZW1wb3Jhcnkgd3JhcHBlciBleGVjdXRhYmxlIGZvciAkb2JqZGly LyRvdXRwdXRuYW1lCisrICAgR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0UkVElN RVNUQU1QKSAkVkVSU0lPTgorKworKyAgIFRoZSAkb3V0cHV0IHByb2dyYW0gY2Fubm90IGJlIGRp cmVjdGx5IGV4ZWN1dGVkIHVudGlsIGFsbCB0aGUgbGlidG9vbAorKyAgIGxpYnJhcmllcyB0aGF0 IGl0IGRlcGVuZHMgb24gYXJlIGluc3RhbGxlZC4KKysKKysgICBUaGlzIHdyYXBwZXIgZXhlY3V0 YWJsZSBzaG91bGQgbmV2ZXIgYmUgbW92ZWQgb3V0IG9mIHRoZSBidWlsZCBkaXJlY3RvcnkuCisr ICAgSWYgaXQgaXMsIGl0IHdpbGwgbm90IG9wZXJhdGUgY29ycmVjdGx5LgorKyovCisrRU9GCisr CSAgICBjYXQgPDwiRU9GIgorKyNpZmRlZiBfTVNDX1ZFUgorKyMgZGVmaW5lIF9DUlRfU0VDVVJF X05PX0RFUFJFQ0FURSAxCisrI2VuZGlmCisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrI2luY2x1ZGUg PHN0ZGxpYi5oPgorKyNpZmRlZiBfTVNDX1ZFUgorKyMgaW5jbHVkZSA8ZGlyZWN0Lmg+CisrIyBp bmNsdWRlIDxwcm9jZXNzLmg+CisrIyBpbmNsdWRlIDxpby5oPgorKyNlbHNlCisrIyBpbmNsdWRl IDx1bmlzdGQuaD4KKysjIGluY2x1ZGUgPHN0ZGludC5oPgorKyMgaWZkZWYgX19DWUdXSU5fXwor KyMgIGluY2x1ZGUgPGlvLmg+CisrIyBlbmRpZgorKyNlbmRpZgorKyNpbmNsdWRlIDxtYWxsb2Mu aD4KKysjaW5jbHVkZSA8c3RkYXJnLmg+CisrI2luY2x1ZGUgPGFzc2VydC5oPgorKyNpbmNsdWRl IDxzdHJpbmcuaD4KKysjaW5jbHVkZSA8Y3R5cGUuaD4KKysjaW5jbHVkZSA8ZXJybm8uaD4KKysj aW5jbHVkZSA8ZmNudGwuaD4KKysjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKysKKysvKiBkZWNsYXJh dGlvbnMgb2Ygbm9uLUFOU0kgZnVuY3Rpb25zICovCisrI2lmIGRlZmluZWQoX19NSU5HVzMyX18p CisrIyBpZmRlZiBfX1NUUklDVF9BTlNJX18KKytpbnQgX3B1dGVudiAoY29uc3QgY2hhciAqKTsK KysjIGVuZGlmCisrI2VsaWYgZGVmaW5lZChfX0NZR1dJTl9fKQorKyMgaWZkZWYgX19TVFJJQ1Rf QU5TSV9fCisrY2hhciAqcmVhbHBhdGggKGNvbnN0IGNoYXIgKiwgY2hhciAqKTsKKytpbnQgcHV0 ZW52IChjaGFyICopOworK2ludCBzZXRlbnYgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBp bnQpOworKyMgZW5kaWYKKysvKiAjZWxpZiBkZWZpbmVkIChvdGhlciBwbGF0Zm9ybXMpIC4uLiAq LworKyNlbmRpZgorKworKy8qIHBvcnRhYmlsaXR5IGRlZmluZXMsIGV4Y2x1ZGluZyBwYXRoIGhh bmRsaW5nIG1hY3JvcyAqLworKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQorKyMgZGVmaW5lIHNldG1v ZGUgX3NldG1vZGUKKysjIGRlZmluZSBzdGF0ICAgIF9zdGF0CisrIyBkZWZpbmUgY2htb2QgICBf Y2htb2QKKysjIGRlZmluZSBnZXRjd2QgIF9nZXRjd2QKKysjIGRlZmluZSBwdXRlbnYgIF9wdXRl bnYKKysjIGRlZmluZSBTX0lYVVNSIF9TX0lFWEVDCisrIyBpZm5kZWYgX0lOVFBUUl9UX0RFRklO RUQKKysjICBkZWZpbmUgX0lOVFBUUl9UX0RFRklORUQKKysjICBkZWZpbmUgaW50cHRyX3QgaW50 CisrIyBlbmRpZgorKyNlbGlmIGRlZmluZWQoX19NSU5HVzMyX18pCisrIyBkZWZpbmUgc2V0bW9k ZSBfc2V0bW9kZQorKyMgZGVmaW5lIHN0YXQgICAgX3N0YXQKKysjIGRlZmluZSBjaG1vZCAgIF9j aG1vZAorKyMgZGVmaW5lIGdldGN3ZCAgX2dldGN3ZAorKyMgZGVmaW5lIHB1dGVudiAgX3B1dGVu dgorKyNlbGlmIGRlZmluZWQoX19DWUdXSU5fXykKKysjIGRlZmluZSBIQVZFX1NFVEVOVgorKyMg ZGVmaW5lIEZPUEVOX1dCICJ3YiIKKysvKiAjZWxpZiBkZWZpbmVkIChvdGhlciBwbGF0Zm9ybXMp IC4uLiAqLworKyNlbmRpZgorKworKyNpZiBkZWZpbmVkKFBBVEhfTUFYKQorKyMgZGVmaW5lIExU X1BBVEhNQVggUEFUSF9NQVgKKysjZWxpZiBkZWZpbmVkKE1BWFBBVEhMRU4pCisrIyBkZWZpbmUg TFRfUEFUSE1BWCBNQVhQQVRITEVOCisrI2Vsc2UKKysjIGRlZmluZSBMVF9QQVRITUFYIDEwMjQK KysjZW5kaWYKKysKKysjaWZuZGVmIFNfSVhPVEgKKysjIGRlZmluZSBTX0lYT1RIIDAKKysjZW5k aWYKKysjaWZuZGVmIFNfSVhHUlAKKysjIGRlZmluZSBTX0lYR1JQIDAKKysjZW5kaWYKKysKKysv KiBwYXRoIGhhbmRsaW5nIHBvcnRhYmlsaXR5IG1hY3JvcyAqLworKyNpZm5kZWYgRElSX1NFUEFS QVRPUgorKyMgZGVmaW5lIERJUl9TRVBBUkFUT1IgJy8nCisrIyBkZWZpbmUgUEFUSF9TRVBBUkFU T1IgJzonCisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQgKF9XSU4zMikgfHwgZGVmaW5lZCAoX19N U0RPU19fKSB8fCBkZWZpbmVkIChfX0RKR1BQX18pIHx8IFwKKysgIGRlZmluZWQgKF9fT1MyX18p CisrIyBkZWZpbmUgSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0KKysjIGRlZmluZSBGT1BFTl9X QiAid2IiCisrIyBpZm5kZWYgRElSX1NFUEFSQVRPUl8yCisrIyAgZGVmaW5lIERJUl9TRVBBUkFU T1JfMiAnXFwnCisrIyBlbmRpZgorKyMgaWZuZGVmIFBBVEhfU0VQQVJBVE9SXzIKKysjICBkZWZp bmUgUEFUSF9TRVBBUkFUT1JfMiAnOycKKysjIGVuZGlmCisrI2VuZGlmCisrCisrI2lmbmRlZiBE SVJfU0VQQVJBVE9SXzIKKysjIGRlZmluZSBJU19ESVJfU0VQQVJBVE9SKGNoKSAoKGNoKSA9PSBE SVJfU0VQQVJBVE9SKQorKyNlbHNlIC8qIERJUl9TRVBBUkFUT1JfMiAqLworKyMgZGVmaW5lIElT X0RJUl9TRVBBUkFUT1IoY2gpIFwKKysJKCgoY2gpID09IERJUl9TRVBBUkFUT1IpIHx8ICgoY2gp ID09IERJUl9TRVBBUkFUT1JfMikpCisrI2VuZGlmIC8qIERJUl9TRVBBUkFUT1JfMiAqLworKwor KyNpZm5kZWYgUEFUSF9TRVBBUkFUT1JfMgorKyMgZGVmaW5lIElTX1BBVEhfU0VQQVJBVE9SKGNo KSAoKGNoKSA9PSBQQVRIX1NFUEFSQVRPUikKKysjZWxzZSAvKiBQQVRIX1NFUEFSQVRPUl8yICov CisrIyBkZWZpbmUgSVNfUEFUSF9TRVBBUkFUT1IoY2gpICgoY2gpID09IFBBVEhfU0VQQVJBVE9S XzIpCisrI2VuZGlmIC8qIFBBVEhfU0VQQVJBVE9SXzIgKi8KKysKKysjaWZuZGVmIEZPUEVOX1dC CisrIyBkZWZpbmUgRk9QRU5fV0IgInciCisrI2VuZGlmCisrI2lmbmRlZiBfT19CSU5BUlkKKysj IGRlZmluZSBfT19CSU5BUlkgMAorKyNlbmRpZgorKworKyNkZWZpbmUgWE1BTExPQyh0eXBlLCBu dW0pICAgICAgKCh0eXBlICopIHhtYWxsb2MgKChudW0pICogc2l6ZW9mKHR5cGUpKSkKKysjZGVm aW5lIFhGUkVFKHN0YWxlKSBkbyB7IFwKKysgIGlmIChzdGFsZSkgeyBmcmVlICgodm9pZCAqKSBz dGFsZSk7IHN0YWxlID0gMDsgfSBcCisrfSB3aGlsZSAoMCkKKysKKysjaWYgZGVmaW5lZChMVF9E RUJVR1dSQVBQRVIpCisrc3RhdGljIGludCBsdF9kZWJ1ZyA9IDE7CisrI2Vsc2UKKytzdGF0aWMg aW50IGx0X2RlYnVnID0gMDsKKysjZW5kaWYKKysKKytjb25zdCBjaGFyICpwcm9ncmFtX25hbWUg PSAibGlidG9vbC13cmFwcGVyIjsgLyogaW4gY2FzZSB4c3RyZHVwIGZhaWxzICovCisrCisrdm9p ZCAqeG1hbGxvYyAoc2l6ZV90IG51bSk7CisrY2hhciAqeHN0cmR1cCAoY29uc3QgY2hhciAqc3Ry aW5nKTsKKytjb25zdCBjaGFyICpiYXNlX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpOworK2NoYXIg KmZpbmRfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqd3JhcHBlcik7CisrY2hhciAqY2hhc2Vfc3lt bGlua3MgKGNvbnN0IGNoYXIgKnBhdGhzcGVjKTsKKytpbnQgbWFrZV9leGVjdXRhYmxlIChjb25z dCBjaGFyICpwYXRoKTsKKytpbnQgY2hlY2tfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqcGF0aCk7 CisrY2hhciAqc3RyZW5kemFwIChjaGFyICpzdHIsIGNvbnN0IGNoYXIgKnBhdCk7Cisrdm9pZCBs dF9kZWJ1Z3ByaW50ZiAoY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIgKmZt dCwgLi4uKTsKKyt2b2lkIGx0X2ZhdGFsIChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwgY29u c3QgY2hhciAqbWVzc2FnZSwgLi4uKTsKKytzdGF0aWMgY29uc3QgY2hhciAqbm9ubnVsbCAoY29u c3QgY2hhciAqcyk7Cisrc3RhdGljIGNvbnN0IGNoYXIgKm5vbmVtcHR5IChjb25zdCBjaGFyICpz KTsKKyt2b2lkIGx0X3NldGVudiAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUp OworK2NoYXIgKmx0X2V4dGVuZF9zdHIgKGNvbnN0IGNoYXIgKm9yaWdfdmFsdWUsIGNvbnN0IGNo YXIgKmFkZCwgaW50IHRvX2VuZCk7Cisrdm9pZCBsdF91cGRhdGVfZXhlX3BhdGggKGNvbnN0IGNo YXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKTsKKyt2b2lkIGx0X3VwZGF0ZV9saWJfcGF0aCAo Y29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpOworK2NoYXIgKipwcmVwYXJlX3Nw YXduIChjaGFyICoqYXJndik7Cisrdm9pZCBsdF9kdW1wX3NjcmlwdCAoRklMRSAqZik7CisrRU9G CisrCisrCSAgICBjYXQgPDxFT0YKKytjb25zdCBjaGFyICogTUFHSUNfRVhFID0gIiRtYWdpY19l eGUiOworK2NvbnN0IGNoYXIgKiBMSUJfUEFUSF9WQVJOQU1FID0gIiRzaGxpYnBhdGhfdmFyIjsK KytFT0YKKysKKysJICAgIGlmIHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0g eWVzICYmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIiAmJiB0ZXN0IC1uICIkdGVtcF9ycGF0aCI7 IHRoZW4KKysgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdCAiJHRlbXBfcnBhdGgi CisrCSAgICAgIGNhdCA8PEVPRgorK2NvbnN0IGNoYXIgKiBMSUJfUEFUSF9WQUxVRSAgID0gIiRm dW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IjsKKytFT0YKKysJICAgIGVsc2UKKysJICAgICAg Y2F0IDw8IkVPRiIKKytjb25zdCBjaGFyICogTElCX1BBVEhfVkFMVUUgICA9ICIiOworK0VPRgor KwkgICAgZmkKKysKKysJICAgIGlmIHRlc3QgLW4gIiRkbGxzZWFyY2hwYXRoIjsgdGhlbgorKyAg ICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0ICIkZGxsc2VhcmNocGF0aDoiCisrCSAg ICAgIGNhdCA8PEVPRgorK2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQVJOQU1FID0gIlBBVEgiOwor K2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQUxVRSAgID0gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3Rf cmVzdWx0IjsKKytFT0YKKysJICAgIGVsc2UKKysJICAgICAgY2F0IDw8IkVPRiIKKytjb25zdCBj aGFyICogRVhFX1BBVEhfVkFSTkFNRSA9ICIiOworK2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQUxV RSAgID0gIiI7CisrRU9GCisrCSAgICBmaQorKworKwkgICAgaWYgdGVzdCAiJGZhc3RfaW5zdGFs bCIgPSB5ZXM7IHRoZW4KKysJICAgICAgY2F0IDw8RU9GCisrY29uc3QgY2hhciAqIFRBUkdFVF9Q Uk9HUkFNX05BTUUgPSAibHQtJG91dHB1dG5hbWUiOyAvKiBob3BlZnVsbHksIG5vIC5leGUgKi8K KytFT0YKKysJICAgIGVsc2UKKysJICAgICAgY2F0IDw8RU9GCisrY29uc3QgY2hhciAqIFRBUkdF VF9QUk9HUkFNX05BTUUgPSAiJG91dHB1dG5hbWUiOyAvKiBob3BlZnVsbHksIG5vIC5leGUgKi8K KytFT0YKKysJICAgIGZpCisrCisrCisrCSAgICBjYXQgPDwiRU9GIgorKworKyNkZWZpbmUgTFRX UkFQUEVSX09QVElPTl9QUkVGSVggICAgICAgICAiLS1sdC0iCisrCisrc3RhdGljIGNvbnN0IGNo YXIgKmx0d3JhcHBlcl9vcHRpb25fcHJlZml4ID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVg7Cisr c3RhdGljIGNvbnN0IGNoYXIgKmR1bXBzY3JpcHRfb3B0ICAgICAgID0gTFRXUkFQUEVSX09QVElP Tl9QUkVGSVggImR1bXAtc2NyaXB0IjsKKytzdGF0aWMgY29uc3QgY2hhciAqZGVidWdfb3B0ICAg ICAgICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAiZGVidWciOworKworK2ludAorK21h aW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCisreworKyAgY2hhciAqKm5ld2FyZ3o7CisrICBp bnQgIG5ld2FyZ2M7CisrICBjaGFyICp0bXBfcGF0aHNwZWM7CisrICBjaGFyICphY3R1YWxfY3dy YXBwZXJfcGF0aDsKKysgIGNoYXIgKmFjdHVhbF9jd3JhcHBlcl9uYW1lOworKyAgY2hhciAqdGFy Z2V0X25hbWU7CisrICBjaGFyICpsdF9hcmd2X3plcm87CisrICBpbnRwdHJfdCBydmFsID0gMTI3 OworKworKyAgaW50IGk7CisrCisrICBwcm9ncmFtX25hbWUgPSAoY2hhciAqKSB4c3RyZHVwIChi YXNlX25hbWUgKGFyZ3ZbMF0pKTsKKysgIG5ld2FyZ3ogPSBYTUFMTE9DIChjaGFyICosIGFyZ2Mg KyAxKTsKKysKKysgIC8qIHZlcnkgc2ltcGxlIGFyZyBwYXJzaW5nOyBkb24ndCB3YW50IHRvIHJl bHkgb24gZ2V0b3B0CisrICAgKiBhbHNvLCBjb3B5IGFsbCBub24gY3dyYXBwZXIgb3B0aW9ucyB0 byBuZXdhcmd6LCBleGNlcHQKKysgICAqIGFyZ3pbMF0sIHdoaWNoIGlzIGhhbmRsZWQgZGlmZmVy ZW50bHkKKysgICAqLworKyAgbmV3YXJnYz0wOworKyAgZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkr KykKKysgICAgeworKyAgICAgIGlmIChzdHJjbXAgKGFyZ3ZbaV0sIGR1bXBzY3JpcHRfb3B0KSA9 PSAwKQorKwl7CisrRU9GCisrCSAgICBjYXNlICIkaG9zdCIgaW4KKysJICAgICAgKm1pbmd3KiB8 ICpjeWd3aW4qICkKKysJCSMgbWFrZSBzdGRvdXQgdXNlICJ1bml4IiBsaW5lIGVuZGluZ3MKKysJ CWVjaG8gIiAgICAgICAgICBzZXRtb2RlKDEsX09fQklOQVJZKTsiCisrCQk7OworKwkgICAgICBl c2FjCisrCisrCSAgICBjYXQgPDwiRU9GIgorKwkgIGx0X2R1bXBfc2NyaXB0IChzdGRvdXQpOwor KwkgIHJldHVybiAwOworKwl9CisrICAgICAgaWYgKHN0cmNtcCAoYXJndltpXSwgZGVidWdfb3B0 KSA9PSAwKQorKwl7CisrICAgICAgICAgIGx0X2RlYnVnID0gMTsKKysgICAgICAgICAgY29udGlu dWU7CisrCX0KKysgICAgICBpZiAoc3RyY21wIChhcmd2W2ldLCBsdHdyYXBwZXJfb3B0aW9uX3By ZWZpeCkgPT0gMCkKKysgICAgICAgIHsKKysgICAgICAgICAgLyogaG93ZXZlciwgaWYgdGhlcmUg aXMgYW4gb3B0aW9uIGluIHRoZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWAorKyAgICAgICAgICAg ICBuYW1lc3BhY2UsIGJ1dCBpdCBpcyBub3Qgb25lIG9mIHRoZSBvbmVzIHdlIGtub3cgYWJvdXQg YW5kCisrICAgICAgICAgICAgIGhhdmUgYWxyZWFkeSBkZWFsdCB3aXRoLCBhYm92ZSAoaW5sdWRp bmcgZHVtcC1zY3JpcHQpLCB0aGVuCisrICAgICAgICAgICAgIHJlcG9ydCBhbiBlcnJvci4gT3Ro ZXJ3aXNlLCB0YXJnZXRzIG1pZ2h0IGJlZ2luIHRvIGJlbGlldmUKKysgICAgICAgICAgICAgdGhl eSBhcmUgYWxsb3dlZCB0byB1c2Ugb3B0aW9ucyBpbiB0aGUgTFRXUkFQUEVSX09QVElPTl9QUkVG SVgKKysgICAgICAgICAgICAgbmFtZXNwYWNlLiBUaGUgZmlyc3QgdGltZSBhbnkgdXNlciBjb21w bGFpbnMgYWJvdXQgdGhpcywgd2UnbGwKKysgICAgICAgICAgICAgbmVlZCB0byBtYWtlIExUV1JB UFBFUl9PUFRJT05fUFJFRklYIGEgY29uZmlndXJlLXRpbWUgb3B0aW9uCisrICAgICAgICAgICAg IG9yIGEgY29uZmlndXJlLmFjLXNldHRhYmxlIHZhbHVlLgorKyAgICAgICAgICAgKi8KKysgICAg ICAgICAgbHRfZmF0YWwgKF9fRklMRV9fLCBfX0xJTkVfXywKKysJCSAgICAidW5yZWNvZ25pemVk ICVzIG9wdGlvbjogJyVzJyIsCisrICAgICAgICAgICAgICAgICAgICBsdHdyYXBwZXJfb3B0aW9u X3ByZWZpeCwgYXJndltpXSk7CisrICAgICAgICB9CisrICAgICAgLyogb3RoZXJ3aXNlIC4uLiAq LworKyAgICAgIG5ld2FyZ3pbKytuZXdhcmdjXSA9IHhzdHJkdXAgKGFyZ3ZbaV0pOworKyAgICB9 CisrICBuZXdhcmd6WysrbmV3YXJnY10gPSBOVUxMOworKworK0VPRgorKwkgICAgY2F0IDw8RU9G CisrICAvKiBUaGUgR05VIGJhbm5lciBtdXN0IGJlIHRoZSBmaXJzdCBub24tZXJyb3IgZGVidWcg bWVzc2FnZSAqLworKyAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywgImxpYnRv b2wgd3JhcHBlciAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT05cbiIpOworK0VPRgor KwkgICAgY2F0IDw8IkVPRiIKKysgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18s ICIobWFpbikgYXJndlswXTogJXNcbiIsIGFyZ3ZbMF0pOworKyAgbHRfZGVidWdwcmludGYgKF9f RklMRV9fLCBfX0xJTkVfXywgIihtYWluKSBwcm9ncmFtX25hbWU6ICVzXG4iLCBwcm9ncmFtX25h bWUpOworKworKyAgdG1wX3BhdGhzcGVjID0gZmluZF9leGVjdXRhYmxlIChhcmd2WzBdKTsKKysg IGlmICh0bXBfcGF0aHNwZWMgPT0gTlVMTCkKKysgICAgbHRfZmF0YWwgKF9fRklMRV9fLCBfX0xJ TkVfXywgImNvdWxkbid0IGZpbmQgJXMiLCBhcmd2WzBdKTsKKysgIGx0X2RlYnVncHJpbnRmIChf X0ZJTEVfXywgX19MSU5FX18sCisrICAgICAgICAgICAgICAgICAgIihtYWluKSBmb3VuZCBleGUg KGJlZm9yZSBzeW1saW5rIGNoYXNlKSBhdDogJXNcbiIsCisrCQkgIHRtcF9wYXRoc3BlYyk7Cisr CisrICBhY3R1YWxfY3dyYXBwZXJfcGF0aCA9IGNoYXNlX3N5bWxpbmtzICh0bXBfcGF0aHNwZWMp OworKyAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywKKysgICAgICAgICAgICAg ICAgICAiKG1haW4pIGZvdW5kIGV4ZSAoYWZ0ZXIgc3ltbGluayBjaGFzZSkgYXQ6ICVzXG4iLAor KwkJICBhY3R1YWxfY3dyYXBwZXJfcGF0aCk7CisrICBYRlJFRSAodG1wX3BhdGhzcGVjKTsKKysK KysgIGFjdHVhbF9jd3JhcHBlcl9uYW1lID0geHN0cmR1cCAoYmFzZV9uYW1lIChhY3R1YWxfY3dy YXBwZXJfcGF0aCkpOworKyAgc3RyZW5kemFwIChhY3R1YWxfY3dyYXBwZXJfcGF0aCwgYWN0dWFs X2N3cmFwcGVyX25hbWUpOworKworKyAgLyogd3JhcHBlciBuYW1lIHRyYW5zZm9ybXMgKi8KKysg IHN0cmVuZHphcCAoYWN0dWFsX2N3cmFwcGVyX25hbWUsICIuZXhlIik7CisrICB0bXBfcGF0aHNw ZWMgPSBsdF9leHRlbmRfc3RyIChhY3R1YWxfY3dyYXBwZXJfbmFtZSwgIi5leGUiLCAxKTsKKysg IFhGUkVFIChhY3R1YWxfY3dyYXBwZXJfbmFtZSk7CisrICBhY3R1YWxfY3dyYXBwZXJfbmFtZSA9 IHRtcF9wYXRoc3BlYzsKKysgIHRtcF9wYXRoc3BlYyA9IDA7CisrCisrICAvKiB0YXJnZXRfbmFt ZSB0cmFuc2Zvcm1zIC0tIHVzZSBhY3R1YWwgdGFyZ2V0IHByb2dyYW0gbmFtZTsgbWlnaHQgaGF2 ZSBsdC0gcHJlZml4ICovCisrICB0YXJnZXRfbmFtZSA9IHhzdHJkdXAgKGJhc2VfbmFtZSAoVEFS R0VUX1BST0dSQU1fTkFNRSkpOworKyAgc3RyZW5kemFwICh0YXJnZXRfbmFtZSwgIi5leGUiKTsK KysgIHRtcF9wYXRoc3BlYyA9IGx0X2V4dGVuZF9zdHIgKHRhcmdldF9uYW1lLCAiLmV4ZSIsIDEp OworKyAgWEZSRUUgKHRhcmdldF9uYW1lKTsKKysgIHRhcmdldF9uYW1lID0gdG1wX3BhdGhzcGVj OworKyAgdG1wX3BhdGhzcGVjID0gMDsKKysKKysgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywg X19MSU5FX18sCisrCQkgICIobWFpbikgbGlidG9vbCB0YXJnZXQgbmFtZTogJXNcbiIsCisrCQkg IHRhcmdldF9uYW1lKTsKKytFT0YKKysKKysJICAgIGNhdCA8PEVPRgorKyAgbmV3YXJnelswXSA9 CisrICAgIFhNQUxMT0MgKGNoYXIsIChzdHJsZW4gKGFjdHVhbF9jd3JhcHBlcl9wYXRoKSArCisr CQkgICAgc3RybGVuICgiJG9iamRpciIpICsgMSArIHN0cmxlbiAoYWN0dWFsX2N3cmFwcGVyX25h bWUpICsgMSkpOworKyAgc3RyY3B5IChuZXdhcmd6WzBdLCBhY3R1YWxfY3dyYXBwZXJfcGF0aCk7 CisrICBzdHJjYXQgKG5ld2FyZ3pbMF0sICIkb2JqZGlyIik7CisrICBzdHJjYXQgKG5ld2FyZ3pb MF0sICIvIik7CisrRU9GCisrCisrCSAgICBjYXQgPDwiRU9GIgorKyAgLyogc3RvcCBoZXJlLCBh bmQgY29weSBzbyB3ZSBkb24ndCBoYXZlIHRvIGRvIHRoaXMgdHdpY2UgKi8KKysgIHRtcF9wYXRo c3BlYyA9IHhzdHJkdXAgKG5ld2FyZ3pbMF0pOworKworKyAgLyogZG8gTk9UIHdhbnQgdGhlIGx0 LSBwcmVmaXggaGVyZSwgc28gdXNlIGFjdHVhbF9jd3JhcHBlcl9uYW1lICovCisrICBzdHJjYXQg KG5ld2FyZ3pbMF0sIGFjdHVhbF9jd3JhcHBlcl9uYW1lKTsKKysKKysgIC8qIERPIHdhbnQgdGhl IGx0LSBwcmVmaXggaGVyZSBpZiBpdCBleGlzdHMsIHNvIHVzZSB0YXJnZXRfbmFtZSAqLworKyAg bHRfYXJndl96ZXJvID0gbHRfZXh0ZW5kX3N0ciAodG1wX3BhdGhzcGVjLCB0YXJnZXRfbmFtZSwg MSk7CisrICBYRlJFRSAodG1wX3BhdGhzcGVjKTsKKysgIHRtcF9wYXRoc3BlYyA9IE5VTEw7Cisr RU9GCisrCisrCSAgICBjYXNlICRob3N0X29zIGluCisrCSAgICAgIG1pbmd3KikKKysJICAgIGNh dCA8PCJFT0YiCisrICB7CisrICAgIGNoYXIqIHA7CisrICAgIHdoaWxlICgocCA9IHN0cmNociAo bmV3YXJnelswXSwgJ1xcJykpICE9IE5VTEwpCisrICAgICAgeworKwkqcCA9ICcvJzsKKysgICAg ICB9CisrICAgIHdoaWxlICgocCA9IHN0cmNociAobHRfYXJndl96ZXJvLCAnXFwnKSkgIT0gTlVM TCkKKysgICAgICB7CisrCSpwID0gJy8nOworKyAgICAgIH0KKysgIH0KKytFT0YKKysJICAgIDs7 CisrCSAgICBlc2FjCisrCisrCSAgICBjYXQgPDwiRU9GIgorKyAgWEZSRUUgKHRhcmdldF9uYW1l KTsKKysgIFhGUkVFIChhY3R1YWxfY3dyYXBwZXJfcGF0aCk7CisrICBYRlJFRSAoYWN0dWFsX2N3 cmFwcGVyX25hbWUpOworKworKyAgbHRfc2V0ZW52ICgiQklOX1NIIiwgInhwZzQiKTsgLyogZm9y IFRydTY0ICovCisrICBsdF9zZXRlbnYgKCJEVUFMQ0FTRSIsICIxIik7ICAvKiBmb3IgTVNLIHNo ICovCisrICBsdF91cGRhdGVfbGliX3BhdGggKExJQl9QQVRIX1ZBUk5BTUUsIExJQl9QQVRIX1ZB TFVFKTsKKysgIGx0X3VwZGF0ZV9leGVfcGF0aCAoRVhFX1BBVEhfVkFSTkFNRSwgRVhFX1BBVEhf VkFMVUUpOworKworKyAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywgIihtYWlu KSBsdF9hcmd2X3plcm86ICVzXG4iLAorKwkJICBub25udWxsIChsdF9hcmd2X3plcm8pKTsKKysg IGZvciAoaSA9IDA7IGkgPCBuZXdhcmdjOyBpKyspCisrICAgIHsKKysgICAgICBsdF9kZWJ1Z3By aW50ZiAoX19GSUxFX18sIF9fTElORV9fLCAiKG1haW4pIG5ld2FyZ3pbJWRdOiAlc1xuIiwKKysJ CSAgICAgIGksIG5vbm51bGwgKG5ld2FyZ3pbaV0pKTsKKysgICAgfQorKworK0VPRgorKworKwkg ICAgY2FzZSAkaG9zdF9vcyBpbgorKwkgICAgICBtaW5ndyopCisrCQljYXQgPDwiRU9GIgorKyAg LyogZXhlY3YgZG9lc24ndCBhY3R1YWxseSB3b3JrIG9uIG1pbmd3IGFzIGV4cGVjdGVkIG9uIHVu aXggKi8KKysgIG5ld2FyZ3ogPSBwcmVwYXJlX3NwYXduIChuZXdhcmd6KTsKKysgIHJ2YWwgPSBf c3Bhd252IChfUF9XQUlULCBsdF9hcmd2X3plcm8sIChjb25zdCBjaGFyICogY29uc3QgKikgbmV3 YXJneik7CisrICBpZiAocnZhbCA9PSAtMSkKKysgICAgeworKyAgICAgIC8qIGZhaWxlZCB0byBz dGFydCBwcm9jZXNzICovCisrICAgICAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVf XywKKysJCSAgICAgICIobWFpbikgZmFpbGVkIHRvIGxhdW5jaCB0YXJnZXQgXCIlc1wiOiAlc1xu IiwKKysJCSAgICAgIGx0X2FyZ3ZfemVybywgbm9ubnVsbCAoc3RyZXJyb3IgKGVycm5vKSkpOwor KyAgICAgIHJldHVybiAxMjc7CisrICAgIH0KKysgIHJldHVybiBydmFsOworK0VPRgorKwkJOzsK KysJICAgICAgKikKKysJCWNhdCA8PCJFT0YiCisrICBleGVjdiAobHRfYXJndl96ZXJvLCBuZXdh cmd6KTsKKysgIHJldHVybiBydmFsOyAvKiA9MTI3LCBidXQgYXZvaWRzIHVudXNlZCB2YXJpYWJs ZSB3YXJuaW5nICovCisrRU9GCisrCQk7OworKwkgICAgZXNhYworKworKwkgICAgY2F0IDw8IkVP RiIKKyt9CisrCisrdm9pZCAqCisreG1hbGxvYyAoc2l6ZV90IG51bSkKKyt7CisrICB2b2lkICpw ID0gKHZvaWQgKikgbWFsbG9jIChudW0pOworKyAgaWYgKCFwKQorKyAgICBsdF9mYXRhbCAoX19G SUxFX18sIF9fTElORV9fLCAibWVtb3J5IGV4aGF1c3RlZCIpOworKworKyAgcmV0dXJuIHA7Cisr fQorKworK2NoYXIgKgorK3hzdHJkdXAgKGNvbnN0IGNoYXIgKnN0cmluZykKKyt7CisrICByZXR1 cm4gc3RyaW5nID8gc3RyY3B5ICgoY2hhciAqKSB4bWFsbG9jIChzdHJsZW4gKHN0cmluZykgKyAx KSwKKysJCQkgIHN0cmluZykgOiBOVUxMOworK30KKysKKytjb25zdCBjaGFyICoKKytiYXNlX25h bWUgKGNvbnN0IGNoYXIgKm5hbWUpCisreworKyAgY29uc3QgY2hhciAqYmFzZTsKKysKKysjaWYg ZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0pCisrICAvKiBTa2lwIG92ZXIgdGhl IGRpc2sgbmFtZSBpbiBNU0RPUyBwYXRobmFtZXMuICovCisrICBpZiAoaXNhbHBoYSAoKHVuc2ln bmVkIGNoYXIpIG5hbWVbMF0pICYmIG5hbWVbMV0gPT0gJzonKQorKyAgICBuYW1lICs9IDI7Cisr I2VuZGlmCisrCisrICBmb3IgKGJhc2UgPSBuYW1lOyAqbmFtZTsgbmFtZSsrKQorKyAgICBpZiAo SVNfRElSX1NFUEFSQVRPUiAoKm5hbWUpKQorKyAgICAgIGJhc2UgPSBuYW1lICsgMTsKKysgIHJl dHVybiBiYXNlOworK30KKysKKytpbnQKKytjaGVja19leGVjdXRhYmxlIChjb25zdCBjaGFyICpw YXRoKQorK3sKKysgIHN0cnVjdCBzdGF0IHN0OworKworKyAgbHRfZGVidWdwcmludGYgKF9fRklM RV9fLCBfX0xJTkVfXywgIihjaGVja19leGVjdXRhYmxlKTogJXNcbiIsCisrICAgICAgICAgICAg ICAgICAgbm9uZW1wdHkgKHBhdGgpKTsKKysgIGlmICgoIXBhdGgpIHx8ICghKnBhdGgpKQorKyAg ICByZXR1cm4gMDsKKysKKysgIGlmICgoc3RhdCAocGF0aCwgJnN0KSA+PSAwKQorKyAgICAgICYm IChzdC5zdF9tb2RlICYgKFNfSVhVU1IgfCBTX0lYR1JQIHwgU19JWE9USCkpKQorKyAgICByZXR1 cm4gMTsKKysgIGVsc2UKKysgICAgcmV0dXJuIDA7CisrfQorKworK2ludAorK21ha2VfZXhlY3V0 YWJsZSAoY29uc3QgY2hhciAqcGF0aCkKKyt7CisrICBpbnQgcnZhbCA9IDA7CisrICBzdHJ1Y3Qg c3RhdCBzdDsKKysKKysgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sICIobWFr ZV9leGVjdXRhYmxlKTogJXNcbiIsCisrICAgICAgICAgICAgICAgICAgbm9uZW1wdHkgKHBhdGgp KTsKKysgIGlmICgoIXBhdGgpIHx8ICghKnBhdGgpKQorKyAgICByZXR1cm4gMDsKKysKKysgIGlm IChzdGF0IChwYXRoLCAmc3QpID49IDApCisrICAgIHsKKysgICAgICBydmFsID0gY2htb2QgKHBh dGgsIHN0LnN0X21vZGUgfCBTX0lYT1RIIHwgU19JWEdSUCB8IFNfSVhVU1IpOworKyAgICB9Cisr ICByZXR1cm4gcnZhbDsKKyt9CisrCisrLyogU2VhcmNoZXMgZm9yIHRoZSBmdWxsIHBhdGggb2Yg dGhlIHdyYXBwZXIuICBSZXR1cm5zCisrICAgbmV3bHkgYWxsb2NhdGVkIGZ1bGwgcGF0aCBuYW1l IGlmIGZvdW5kLCBOVUxMIG90aGVyd2lzZQorKyAgIERvZXMgbm90IGNoYXNlIHN5bWxpbmtzLCBl dmVuIG9uIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQgdGhlbS4KKysqLworK2NoYXIgKgorK2ZpbmRf ZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqd3JhcHBlcikKKyt7CisrICBpbnQgaGFzX3NsYXNoID0g MDsKKysgIGNvbnN0IGNoYXIgKnA7CisrICBjb25zdCBjaGFyICpwX25leHQ7CisrICAvKiBzdGF0 aWMgYnVmZmVyIGZvciBnZXRjd2QgKi8KKysgIGNoYXIgdG1wW0xUX1BBVEhNQVggKyAxXTsKKysg IGludCB0bXBfbGVuOworKyAgY2hhciAqY29uY2F0X25hbWU7CisrCisrICBsdF9kZWJ1Z3ByaW50 ZiAoX19GSUxFX18sIF9fTElORV9fLCAiKGZpbmRfZXhlY3V0YWJsZSk6ICVzXG4iLAorKyAgICAg ICAgICAgICAgICAgIG5vbmVtcHR5ICh3cmFwcGVyKSk7CisrCisrICBpZiAoKHdyYXBwZXIgPT0g TlVMTCkgfHwgKCp3cmFwcGVyID09ICdcMCcpKQorKyAgICByZXR1cm4gTlVMTDsKKysKKysgIC8q IEFic29sdXRlIHBhdGg/ICovCisrI2lmIGRlZmluZWQgKEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lT VEVNKQorKyAgaWYgKGlzYWxwaGEgKCh1bnNpZ25lZCBjaGFyKSB3cmFwcGVyWzBdKSAmJiB3cmFw cGVyWzFdID09ICc6JykKKysgICAgeworKyAgICAgIGNvbmNhdF9uYW1lID0geHN0cmR1cCAod3Jh cHBlcik7CisrICAgICAgaWYgKGNoZWNrX2V4ZWN1dGFibGUgKGNvbmNhdF9uYW1lKSkKKysJcmV0 dXJuIGNvbmNhdF9uYW1lOworKyAgICAgIFhGUkVFIChjb25jYXRfbmFtZSk7CisrICAgIH0KKysg IGVsc2UKKysgICAgeworKyNlbmRpZgorKyAgICAgIGlmIChJU19ESVJfU0VQQVJBVE9SICh3cmFw cGVyWzBdKSkKKysJeworKwkgIGNvbmNhdF9uYW1lID0geHN0cmR1cCAod3JhcHBlcik7CisrCSAg aWYgKGNoZWNrX2V4ZWN1dGFibGUgKGNvbmNhdF9uYW1lKSkKKysJICAgIHJldHVybiBjb25jYXRf bmFtZTsKKysJICBYRlJFRSAoY29uY2F0X25hbWUpOworKwl9CisrI2lmIGRlZmluZWQgKEhBVkVf RE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQorKyAgICB9CisrI2VuZGlmCisrCisrICBmb3IgKHAgPSB3 cmFwcGVyOyAqcDsgcCsrKQorKyAgICBpZiAoKnAgPT0gJy8nKQorKyAgICAgIHsKKysJaGFzX3Ns YXNoID0gMTsKKysJYnJlYWs7CisrICAgICAgfQorKyAgaWYgKCFoYXNfc2xhc2gpCisrICAgIHsK KysgICAgICAvKiBubyBzbGFzaGVzOyBzZWFyY2ggUEFUSCAqLworKyAgICAgIGNvbnN0IGNoYXIg KnBhdGggPSBnZXRlbnYgKCJQQVRIIik7CisrICAgICAgaWYgKHBhdGggIT0gTlVMTCkKKysJewor KwkgIGZvciAocCA9IHBhdGg7ICpwOyBwID0gcF9uZXh0KQorKwkgICAgeworKwkgICAgICBjb25z dCBjaGFyICpxOworKwkgICAgICBzaXplX3QgcF9sZW47CisrCSAgICAgIGZvciAocSA9IHA7ICpx OyBxKyspCisrCQlpZiAoSVNfUEFUSF9TRVBBUkFUT1IgKCpxKSkKKysJCSAgYnJlYWs7CisrCSAg ICAgIHBfbGVuID0gcSAtIHA7CisrCSAgICAgIHBfbmV4dCA9ICgqcSA9PSAnXDAnID8gcSA6IHEg KyAxKTsKKysJICAgICAgaWYgKHBfbGVuID09IDApCisrCQl7CisrCQkgIC8qIGVtcHR5IHBhdGg6 IGN1cnJlbnQgZGlyZWN0b3J5ICovCisrCQkgIGlmIChnZXRjd2QgKHRtcCwgTFRfUEFUSE1BWCkg PT0gTlVMTCkKKysJCSAgICBsdF9mYXRhbCAoX19GSUxFX18sIF9fTElORV9fLCAiZ2V0Y3dkIGZh aWxlZDogJXMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbm51bGwgKHN0cmVy cm9yIChlcnJubykpKTsKKysJCSAgdG1wX2xlbiA9IHN0cmxlbiAodG1wKTsKKysJCSAgY29uY2F0 X25hbWUgPQorKwkJICAgIFhNQUxMT0MgKGNoYXIsIHRtcF9sZW4gKyAxICsgc3RybGVuICh3cmFw cGVyKSArIDEpOworKwkJICBtZW1jcHkgKGNvbmNhdF9uYW1lLCB0bXAsIHRtcF9sZW4pOworKwkJ ICBjb25jYXRfbmFtZVt0bXBfbGVuXSA9ICcvJzsKKysJCSAgc3RyY3B5IChjb25jYXRfbmFtZSAr IHRtcF9sZW4gKyAxLCB3cmFwcGVyKTsKKysJCX0KKysJICAgICAgZWxzZQorKwkJeworKwkJICBj b25jYXRfbmFtZSA9CisrCQkgICAgWE1BTExPQyAoY2hhciwgcF9sZW4gKyAxICsgc3RybGVuICh3 cmFwcGVyKSArIDEpOworKwkJICBtZW1jcHkgKGNvbmNhdF9uYW1lLCBwLCBwX2xlbik7CisrCQkg IGNvbmNhdF9uYW1lW3BfbGVuXSA9ICcvJzsKKysJCSAgc3RyY3B5IChjb25jYXRfbmFtZSArIHBf bGVuICsgMSwgd3JhcHBlcik7CisrCQl9CisrCSAgICAgIGlmIChjaGVja19leGVjdXRhYmxlIChj b25jYXRfbmFtZSkpCisrCQlyZXR1cm4gY29uY2F0X25hbWU7CisrCSAgICAgIFhGUkVFIChjb25j YXRfbmFtZSk7CisrCSAgICB9CisrCX0KKysgICAgICAvKiBub3QgZm91bmQgaW4gUEFUSDsgYXNz dW1lIGN1cmRpciAqLworKyAgICB9CisrICAvKiBSZWxhdGl2ZSBwYXRoIHwgbm90IGZvdW5kIGlu IHBhdGg6IHByZXBlbmQgY3dkICovCisrICBpZiAoZ2V0Y3dkICh0bXAsIExUX1BBVEhNQVgpID09 IE5VTEwpCisrICAgIGx0X2ZhdGFsIChfX0ZJTEVfXywgX19MSU5FX18sICJnZXRjd2QgZmFpbGVk OiAlcyIsCisrICAgICAgICAgICAgICBub25udWxsIChzdHJlcnJvciAoZXJybm8pKSk7CisrICB0 bXBfbGVuID0gc3RybGVuICh0bXApOworKyAgY29uY2F0X25hbWUgPSBYTUFMTE9DIChjaGFyLCB0 bXBfbGVuICsgMSArIHN0cmxlbiAod3JhcHBlcikgKyAxKTsKKysgIG1lbWNweSAoY29uY2F0X25h bWUsIHRtcCwgdG1wX2xlbik7CisrICBjb25jYXRfbmFtZVt0bXBfbGVuXSA9ICcvJzsKKysgIHN0 cmNweSAoY29uY2F0X25hbWUgKyB0bXBfbGVuICsgMSwgd3JhcHBlcik7CisrCisrICBpZiAoY2hl Y2tfZXhlY3V0YWJsZSAoY29uY2F0X25hbWUpKQorKyAgICByZXR1cm4gY29uY2F0X25hbWU7Cisr ICBYRlJFRSAoY29uY2F0X25hbWUpOworKyAgcmV0dXJuIE5VTEw7CisrfQorKworK2NoYXIgKgor K2NoYXNlX3N5bWxpbmtzIChjb25zdCBjaGFyICpwYXRoc3BlYykKKyt7CisrI2lmbmRlZiBTX0lT TE5LCisrICByZXR1cm4geHN0cmR1cCAocGF0aHNwZWMpOworKyNlbHNlCisrICBjaGFyIGJ1ZltM VF9QQVRITUFYXTsKKysgIHN0cnVjdCBzdGF0IHM7CisrICBjaGFyICp0bXBfcGF0aHNwZWMgPSB4 c3RyZHVwIChwYXRoc3BlYyk7CisrICBjaGFyICpwOworKyAgaW50IGhhc19zeW1saW5rcyA9IDA7 CisrICB3aGlsZSAoc3RybGVuICh0bXBfcGF0aHNwZWMpICYmICFoYXNfc3ltbGlua3MpCisrICAg IHsKKysgICAgICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLAorKwkJICAgICAg ImNoZWNraW5nIHBhdGggY29tcG9uZW50IGZvciBzeW1saW5rczogJXNcbiIsCisrCQkgICAgICB0 bXBfcGF0aHNwZWMpOworKyAgICAgIGlmIChsc3RhdCAodG1wX3BhdGhzcGVjLCAmcykgPT0gMCkK KysJeworKwkgIGlmIChTX0lTTE5LIChzLnN0X21vZGUpICE9IDApCisrCSAgICB7CisrCSAgICAg IGhhc19zeW1saW5rcyA9IDE7CisrCSAgICAgIGJyZWFrOworKwkgICAgfQorKworKwkgIC8qIHNl YXJjaCBiYWNrd2FyZHMgZm9yIGxhc3QgRElSX1NFUEFSQVRPUiAqLworKwkgIHAgPSB0bXBfcGF0 aHNwZWMgKyBzdHJsZW4gKHRtcF9wYXRoc3BlYykgLSAxOworKwkgIHdoaWxlICgocCA+IHRtcF9w YXRoc3BlYykgJiYgKCFJU19ESVJfU0VQQVJBVE9SICgqcCkpKQorKwkgICAgcC0tOworKwkgIGlm ICgocCA9PSB0bXBfcGF0aHNwZWMpICYmICghSVNfRElSX1NFUEFSQVRPUiAoKnApKSkKKysJICAg IHsKKysJICAgICAgLyogbm8gbW9yZSBESVJfU0VQQVJBVE9SUyBsZWZ0ICovCisrCSAgICAgIGJy ZWFrOworKwkgICAgfQorKwkgICpwID0gJ1wwJzsKKysJfQorKyAgICAgIGVsc2UKKysJeworKwkg IGx0X2ZhdGFsIChfX0ZJTEVfXywgX19MSU5FX18sCisrCQkgICAgImVycm9yIGFjY2Vzc2luZyBm aWxlIFwiJXNcIjogJXMiLAorKwkJICAgIHRtcF9wYXRoc3BlYywgbm9ubnVsbCAoc3RyZXJyb3Ig KGVycm5vKSkpOworKwl9CisrICAgIH0KKysgIFhGUkVFICh0bXBfcGF0aHNwZWMpOworKworKyAg aWYgKCFoYXNfc3ltbGlua3MpCisrICAgIHsKKysgICAgICByZXR1cm4geHN0cmR1cCAocGF0aHNw ZWMpOworKyAgICB9CisrCisrICB0bXBfcGF0aHNwZWMgPSByZWFscGF0aCAocGF0aHNwZWMsIGJ1 Zik7CisrICBpZiAodG1wX3BhdGhzcGVjID09IDApCisrICAgIHsKKysgICAgICBsdF9mYXRhbCAo X19GSUxFX18sIF9fTElORV9fLAorKwkJImNvdWxkIG5vdCBmb2xsb3cgc3ltbGlua3MgZm9yICVz IiwgcGF0aHNwZWMpOworKyAgICB9CisrICByZXR1cm4geHN0cmR1cCAodG1wX3BhdGhzcGVjKTsK KysjZW5kaWYKKyt9CisrCisrY2hhciAqCisrc3RyZW5kemFwIChjaGFyICpzdHIsIGNvbnN0IGNo YXIgKnBhdCkKKyt7CisrICBzaXplX3QgbGVuLCBwYXRsZW47CisrCisrICBhc3NlcnQgKHN0ciAh PSBOVUxMKTsKKysgIGFzc2VydCAocGF0ICE9IE5VTEwpOworKworKyAgbGVuID0gc3RybGVuIChz dHIpOworKyAgcGF0bGVuID0gc3RybGVuIChwYXQpOworKworKyAgaWYgKHBhdGxlbiA8PSBsZW4p CisrICAgIHsKKysgICAgICBzdHIgKz0gbGVuIC0gcGF0bGVuOworKyAgICAgIGlmIChzdHJjbXAg KHN0ciwgcGF0KSA9PSAwKQorKwkqc3RyID0gJ1wwJzsKKysgICAgfQorKyAgcmV0dXJuIHN0cjsK Kyt9CisrCisrdm9pZAorK2x0X2RlYnVncHJpbnRmIChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGlu ZSwgY29uc3QgY2hhciAqZm10LCAuLi4pCisreworKyAgdmFfbGlzdCBhcmdzOworKyAgaWYgKGx0 X2RlYnVnKQorKyAgICB7CisrICAgICAgKHZvaWQpIGZwcmludGYgKHN0ZGVyciwgIiVzOiVzOiVk OiAiLCBwcm9ncmFtX25hbWUsIGZpbGUsIGxpbmUpOworKyAgICAgIHZhX3N0YXJ0IChhcmdzLCBm bXQpOworKyAgICAgICh2b2lkKSB2ZnByaW50ZiAoc3RkZXJyLCBmbXQsIGFyZ3MpOworKyAgICAg IHZhX2VuZCAoYXJncyk7CisrICAgIH0KKyt9CisrCisrc3RhdGljIHZvaWQKKytsdF9lcnJvcl9j b3JlIChpbnQgZXhpdF9zdGF0dXMsIGNvbnN0IGNoYXIgKmZpbGUsCisrCSAgICAgICBpbnQgbGlu ZSwgY29uc3QgY2hhciAqbW9kZSwKKysJICAgICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIHZhX2xp c3QgYXApCisreworKyAgZnByaW50ZiAoc3RkZXJyLCAiJXM6JXM6JWQ6ICVzOiAiLCBwcm9ncmFt X25hbWUsIGZpbGUsIGxpbmUsIG1vZGUpOworKyAgdmZwcmludGYgKHN0ZGVyciwgbWVzc2FnZSwg YXApOworKyAgZnByaW50ZiAoc3RkZXJyLCAiLlxuIik7CisrCisrICBpZiAoZXhpdF9zdGF0dXMg Pj0gMCkKKysgICAgZXhpdCAoZXhpdF9zdGF0dXMpOworK30KKysKKyt2b2lkCisrbHRfZmF0YWwg KGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyICptZXNzYWdlLCAuLi4pCisr eworKyAgdmFfbGlzdCBhcDsKKysgIHZhX3N0YXJ0IChhcCwgbWVzc2FnZSk7CisrICBsdF9lcnJv cl9jb3JlIChFWElUX0ZBSUxVUkUsIGZpbGUsIGxpbmUsICJGQVRBTCIsIG1lc3NhZ2UsIGFwKTsK KysgIHZhX2VuZCAoYXApOworK30KKysKKytzdGF0aWMgY29uc3QgY2hhciAqCisrbm9ubnVsbCAo Y29uc3QgY2hhciAqcykKKyt7CisrICByZXR1cm4gcyA/IHMgOiAiKG51bGwpIjsKKyt9CisrCisr c3RhdGljIGNvbnN0IGNoYXIgKgorK25vbmVtcHR5IChjb25zdCBjaGFyICpzKQorK3sKKysgIHJl dHVybiAocyAmJiAhKnMpID8gIihlbXB0eSkiIDogbm9ubnVsbCAocyk7CisrfQorKworK3ZvaWQK KytsdF9zZXRlbnYgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQorK3sKKysg IGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sCisrCQkgICIobHRfc2V0ZW52KSBz ZXR0aW5nICclcycgdG8gJyVzJ1xuIiwKKysgICAgICAgICAgICAgICAgICBub25udWxsIChuYW1l KSwgbm9ubnVsbCAodmFsdWUpKTsKKysgIHsKKysjaWZkZWYgSEFWRV9TRVRFTlYKKysgICAgLyog YWx3YXlzIG1ha2UgYSBjb3B5LCBmb3IgY29uc2lzdGVuY3kgd2l0aCAhSEFWRV9TRVRFTlYgKi8K KysgICAgY2hhciAqc3RyID0geHN0cmR1cCAodmFsdWUpOworKyAgICBzZXRlbnYgKG5hbWUsIHN0 ciwgMSk7CisrI2Vsc2UKKysgICAgaW50IGxlbiA9IHN0cmxlbiAobmFtZSkgKyAxICsgc3RybGVu ICh2YWx1ZSkgKyAxOworKyAgICBjaGFyICpzdHIgPSBYTUFMTE9DIChjaGFyLCBsZW4pOworKyAg ICBzcHJpbnRmIChzdHIsICIlcz0lcyIsIG5hbWUsIHZhbHVlKTsKKysgICAgaWYgKHB1dGVudiAo c3RyKSAhPSBFWElUX1NVQ0NFU1MpCisrICAgICAgeworKyAgICAgICAgWEZSRUUgKHN0cik7Cisr ICAgICAgfQorKyNlbmRpZgorKyAgfQorK30KKysKKytjaGFyICoKKytsdF9leHRlbmRfc3RyIChj b25zdCBjaGFyICpvcmlnX3ZhbHVlLCBjb25zdCBjaGFyICphZGQsIGludCB0b19lbmQpCisrewor KyAgY2hhciAqbmV3X3ZhbHVlOworKyAgaWYgKG9yaWdfdmFsdWUgJiYgKm9yaWdfdmFsdWUpCisr ICAgIHsKKysgICAgICBpbnQgb3JpZ192YWx1ZV9sZW4gPSBzdHJsZW4gKG9yaWdfdmFsdWUpOwor KyAgICAgIGludCBhZGRfbGVuID0gc3RybGVuIChhZGQpOworKyAgICAgIG5ld192YWx1ZSA9IFhN QUxMT0MgKGNoYXIsIGFkZF9sZW4gKyBvcmlnX3ZhbHVlX2xlbiArIDEpOworKyAgICAgIGlmICh0 b19lbmQpCisrICAgICAgICB7CisrICAgICAgICAgIHN0cmNweSAobmV3X3ZhbHVlLCBvcmlnX3Zh bHVlKTsKKysgICAgICAgICAgc3RyY3B5IChuZXdfdmFsdWUgKyBvcmlnX3ZhbHVlX2xlbiwgYWRk KTsKKysgICAgICAgIH0KKysgICAgICBlbHNlCisrICAgICAgICB7CisrICAgICAgICAgIHN0cmNw eSAobmV3X3ZhbHVlLCBhZGQpOworKyAgICAgICAgICBzdHJjcHkgKG5ld192YWx1ZSArIGFkZF9s ZW4sIG9yaWdfdmFsdWUpOworKyAgICAgICAgfQorKyAgICB9CisrICBlbHNlCisrICAgIHsKKysg ICAgICBuZXdfdmFsdWUgPSB4c3RyZHVwIChhZGQpOworKyAgICB9CisrICByZXR1cm4gbmV3X3Zh bHVlOworK30KKysKKyt2b2lkCisrbHRfdXBkYXRlX2V4ZV9wYXRoIChjb25zdCBjaGFyICpuYW1l LCBjb25zdCBjaGFyICp2YWx1ZSkKKyt7CisrICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9f TElORV9fLAorKwkJICAiKGx0X3VwZGF0ZV9leGVfcGF0aCkgbW9kaWZ5aW5nICclcycgYnkgcHJl cGVuZGluZyAnJXMnXG4iLAorKyAgICAgICAgICAgICAgICAgIG5vbm51bGwgKG5hbWUpLCBub25u dWxsICh2YWx1ZSkpOworKworKyAgaWYgKG5hbWUgJiYgKm5hbWUgJiYgdmFsdWUgJiYgKnZhbHVl KQorKyAgICB7CisrICAgICAgY2hhciAqbmV3X3ZhbHVlID0gbHRfZXh0ZW5kX3N0ciAoZ2V0ZW52 IChuYW1lKSwgdmFsdWUsIDApOworKyAgICAgIC8qIHNvbWUgc3lzdGVtcyBjYW4ndCBjb3BlIHdp dGggYSAnOictdGVybWluYXRlZCBwYXRoICMnICovCisrICAgICAgaW50IGxlbiA9IHN0cmxlbiAo bmV3X3ZhbHVlKTsKKysgICAgICB3aGlsZSAoKChsZW4gPSBzdHJsZW4gKG5ld192YWx1ZSkpID4g MCkgJiYgSVNfUEFUSF9TRVBBUkFUT1IgKG5ld192YWx1ZVtsZW4tMV0pKQorKyAgICAgICAgewor KyAgICAgICAgICBuZXdfdmFsdWVbbGVuLTFdID0gJ1wwJzsKKysgICAgICAgIH0KKysgICAgICBs dF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7CisrICAgICAgWEZSRUUgKG5ld192YWx1ZSk7Cisr ICAgIH0KKyt9CisrCisrdm9pZAorK2x0X3VwZGF0ZV9saWJfcGF0aCAoY29uc3QgY2hhciAqbmFt ZSwgY29uc3QgY2hhciAqdmFsdWUpCisreworKyAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBf X0xJTkVfXywKKysJCSAgIihsdF91cGRhdGVfbGliX3BhdGgpIG1vZGlmeWluZyAnJXMnIGJ5IHBy ZXBlbmRpbmcgJyVzJ1xuIiwKKysgICAgICAgICAgICAgICAgICBub25udWxsIChuYW1lKSwgbm9u bnVsbCAodmFsdWUpKTsKKysKKysgIGlmIChuYW1lICYmICpuYW1lICYmIHZhbHVlICYmICp2YWx1 ZSkKKysgICAgeworKyAgICAgIGNoYXIgKm5ld192YWx1ZSA9IGx0X2V4dGVuZF9zdHIgKGdldGVu diAobmFtZSksIHZhbHVlLCAwKTsKKysgICAgICBsdF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7 CisrICAgICAgWEZSRUUgKG5ld192YWx1ZSk7CisrICAgIH0KKyt9CisrCisrRU9GCisrCSAgICBj YXNlICRob3N0X29zIGluCisrCSAgICAgIG1pbmd3KikKKysJCWNhdCA8PCJFT0YiCisrCisrLyog UHJlcGFyZXMgYW4gYXJndW1lbnQgdmVjdG9yIGJlZm9yZSBjYWxsaW5nIHNwYXduKCkuCisrICAg Tm90ZSB0aGF0IHNwYXduKCkgZG9lcyBub3QgYnkgaXRzZWxmIGNhbGwgdGhlIGNvbW1hbmQgaW50 ZXJwcmV0ZXIKKysgICAgIChnZXRlbnYgKCJDT01TUEVDIikgIT0gTlVMTCA/IGdldGVudiAoIkNP TVNQRUMiKSA6CisrICAgICAgKHsgT1NWRVJTSU9OSU5GTyB2OyB2LmR3T1NWZXJzaW9uSW5mb1Np emUgPSBzaXplb2YoT1NWRVJTSU9OSU5GTyk7CisrICAgICAgICAgR2V0VmVyc2lvbkV4KCZ2KTsK KysgICAgICAgICB2LmR3UGxhdGZvcm1JZCA9PSBWRVJfUExBVEZPUk1fV0lOMzJfTlQ7CisrICAg ICAgfSkgPyAiY21kLmV4ZSIgOiAiY29tbWFuZC5jb20iKS4KKysgICBJbnN0ZWFkIGl0IHNpbXBs eSBjb25jYXRlbmF0ZXMgdGhlIGFyZ3VtZW50cywgc2VwYXJhdGVkIGJ5ICcgJywgYW5kIGNhbGxz CisrICAgQ3JlYXRlUHJvY2VzcygpLiAgV2UgbXVzdCBxdW90ZSB0aGUgYXJndW1lbnRzIHNpbmNl IFdpbjMyIENyZWF0ZVByb2Nlc3MoKQorKyAgIGludGVycHJldHMgY2hhcmFjdGVycyBsaWtlICcg JywgJ1x0JywgJ1xcJywgJyInIChidXQgbm90ICc8JyBhbmQgJz4nKSBpbiBhCisrICAgc3BlY2lh bCB3YXk6CisrICAgLSBTcGFjZSBhbmQgdGFiIGFyZSBpbnRlcnByZXRlZCBhcyBkZWxpbWl0ZXJz LiBUaGV5IGFyZSBub3QgdHJlYXRlZCBhcworKyAgICAgZGVsaW1pdGVycyBpZiB0aGV5IGFyZSBz dXJyb3VuZGVkIGJ5IGRvdWJsZSBxdW90ZXM6ICIuLi4iLgorKyAgIC0gVW5lc2NhcGVkIGRvdWJs ZSBxdW90ZXMgYXJlIHJlbW92ZWQgZnJvbSB0aGUgaW5wdXQuIFRoZWlyIG9ubHkgZWZmZWN0IGlz CisrICAgICB0aGF0IHdpdGhpbiBkb3VibGUgcXVvdGVzLCBzcGFjZSBhbmQgdGFiIGFyZSB0cmVh dGVkIGxpa2Ugbm9ybWFsCisrICAgICBjaGFyYWN0ZXJzLgorKyAgIC0gQmFja3NsYXNoZXMgbm90 IGZvbGxvd2VkIGJ5IGRvdWJsZSBxdW90ZXMgYXJlIG5vdCBzcGVjaWFsLgorKyAgIC0gQnV0IDIq bisxIGJhY2tzbGFzaGVzIGZvbGxvd2VkIGJ5IGEgZG91YmxlIHF1b3RlIGJlY29tZQorKyAgICAg biBiYWNrc2xhc2hlcyBmb2xsb3dlZCBieSBhIGRvdWJsZSBxdW90ZSAobiA+PSAwKToKKysgICAg ICAgXCIgLT4gIgorKyAgICAgICBcXFwiIC0+IFwiCisrICAgICAgIFxcXFxcIiAtPiBcXCIKKysg Ki8KKysjZGVmaW5lIFNIRUxMX1NQRUNJQUxfQ0hBUlMgIlwiXFwgXDAwMVwwMDJcMDAzXDAwNFww MDVcMDA2XDAwN1wwMTBcMDExXDAxMlwwMTNcMDE0XDAxNVwwMTZcMDE3XDAyMFwwMjFcMDIyXDAy M1wwMjRcMDI1XDAyNlwwMjdcMDMwXDAzMVwwMzJcMDMzXDAzNFwwMzVcMDM2XDAzNyIKKysjZGVm aW5lIFNIRUxMX1NQQUNFX0NIQVJTICIgXDAwMVwwMDJcMDAzXDAwNFwwMDVcMDA2XDAwN1wwMTBc MDExXDAxMlwwMTNcMDE0XDAxNVwwMTZcMDE3XDAyMFwwMjFcMDIyXDAyM1wwMjRcMDI1XDAyNlww MjdcMDMwXDAzMVwwMzJcMDMzXDAzNFwwMzVcMDM2XDAzNyIKKytjaGFyICoqCisrcHJlcGFyZV9z cGF3biAoY2hhciAqKmFyZ3YpCisreworKyAgc2l6ZV90IGFyZ2M7CisrICBjaGFyICoqbmV3X2Fy Z3Y7CisrICBzaXplX3QgaTsKKysKKysgIC8qIENvdW50IG51bWJlciBvZiBhcmd1bWVudHMuICAq LworKyAgZm9yIChhcmdjID0gMDsgYXJndlthcmdjXSAhPSBOVUxMOyBhcmdjKyspCisrICAgIDsK KysKKysgIC8qIEFsbG9jYXRlIG5ldyBhcmd1bWVudCB2ZWN0b3IuICAqLworKyAgbmV3X2FyZ3Yg PSBYTUFMTE9DIChjaGFyICosIGFyZ2MgKyAxKTsKKysKKysgIC8qIFB1dCBxdW90ZWQgYXJndW1l bnRzIGludG8gdGhlIG5ldyBhcmd1bWVudCB2ZWN0b3IuICAqLworKyAgZm9yIChpID0gMDsgaSA8 IGFyZ2M7IGkrKykKKysgICAgeworKyAgICAgIGNvbnN0IGNoYXIgKnN0cmluZyA9IGFyZ3ZbaV07 CisrCisrICAgICAgaWYgKHN0cmluZ1swXSA9PSAnXDAnKQorKwluZXdfYXJndltpXSA9IHhzdHJk dXAgKCJcIlwiIik7CisrICAgICAgZWxzZSBpZiAoc3RycGJyayAoc3RyaW5nLCBTSEVMTF9TUEVD SUFMX0NIQVJTKSAhPSBOVUxMKQorKwl7CisrCSAgaW50IHF1b3RlX2Fyb3VuZCA9IChzdHJwYnJr IChzdHJpbmcsIFNIRUxMX1NQQUNFX0NIQVJTKSAhPSBOVUxMKTsKKysJICBzaXplX3QgbGVuZ3Ro OworKwkgIHVuc2lnbmVkIGludCBiYWNrc2xhc2hlczsKKysJICBjb25zdCBjaGFyICpzOworKwkg IGNoYXIgKnF1b3RlZF9zdHJpbmc7CisrCSAgY2hhciAqcDsKKysKKysJICBsZW5ndGggPSAwOwor KwkgIGJhY2tzbGFzaGVzID0gMDsKKysJICBpZiAocXVvdGVfYXJvdW5kKQorKwkgICAgbGVuZ3Ro Kys7CisrCSAgZm9yIChzID0gc3RyaW5nOyAqcyAhPSAnXDAnOyBzKyspCisrCSAgICB7CisrCSAg ICAgIGNoYXIgYyA9ICpzOworKwkgICAgICBpZiAoYyA9PSAnIicpCisrCQlsZW5ndGggKz0gYmFj a3NsYXNoZXMgKyAxOworKwkgICAgICBsZW5ndGgrKzsKKysJICAgICAgaWYgKGMgPT0gJ1xcJykK KysJCWJhY2tzbGFzaGVzKys7CisrCSAgICAgIGVsc2UKKysJCWJhY2tzbGFzaGVzID0gMDsKKysJ ICAgIH0KKysJICBpZiAocXVvdGVfYXJvdW5kKQorKwkgICAgbGVuZ3RoICs9IGJhY2tzbGFzaGVz ICsgMTsKKysKKysJICBxdW90ZWRfc3RyaW5nID0gWE1BTExPQyAoY2hhciwgbGVuZ3RoICsgMSk7 CisrCisrCSAgcCA9IHF1b3RlZF9zdHJpbmc7CisrCSAgYmFja3NsYXNoZXMgPSAwOworKwkgIGlm IChxdW90ZV9hcm91bmQpCisrCSAgICAqcCsrID0gJyInOworKwkgIGZvciAocyA9IHN0cmluZzsg KnMgIT0gJ1wwJzsgcysrKQorKwkgICAgeworKwkgICAgICBjaGFyIGMgPSAqczsKKysJICAgICAg aWYgKGMgPT0gJyInKQorKwkJeworKwkJICB1bnNpZ25lZCBpbnQgajsKKysJCSAgZm9yIChqID0g YmFja3NsYXNoZXMgKyAxOyBqID4gMDsgai0tKQorKwkJICAgICpwKysgPSAnXFwnOworKwkJfQor KwkgICAgICAqcCsrID0gYzsKKysJICAgICAgaWYgKGMgPT0gJ1xcJykKKysJCWJhY2tzbGFzaGVz Kys7CisrCSAgICAgIGVsc2UKKysJCWJhY2tzbGFzaGVzID0gMDsKKysJICAgIH0KKysJICBpZiAo cXVvdGVfYXJvdW5kKQorKwkgICAgeworKwkgICAgICB1bnNpZ25lZCBpbnQgajsKKysJICAgICAg Zm9yIChqID0gYmFja3NsYXNoZXM7IGogPiAwOyBqLS0pCisrCQkqcCsrID0gJ1xcJzsKKysJICAg ICAgKnArKyA9ICciJzsKKysJICAgIH0KKysJICAqcCA9ICdcMCc7CisrCisrCSAgbmV3X2FyZ3Zb aV0gPSBxdW90ZWRfc3RyaW5nOworKwl9CisrICAgICAgZWxzZQorKwluZXdfYXJndltpXSA9IChj aGFyICopIHN0cmluZzsKKysgICAgfQorKyAgbmV3X2FyZ3ZbYXJnY10gPSBOVUxMOworKworKyAg cmV0dXJuIG5ld19hcmd2OworK30KKytFT0YKKysJCTs7CisrCSAgICBlc2FjCisrCisrICAgICAg ICAgICAgY2F0IDw8IkVPRiIKKyt2b2lkIGx0X2R1bXBfc2NyaXB0IChGSUxFKiBmKQorK3sKKytF T0YKKysJICAgIGZ1bmNfZW1pdF93cmFwcGVyIHllcyB8CisrICAgICAgICAgICAgICAkU0VEIC1l ICdzL1woW1xcIl1cKS9cXFwxL2cnIFwKKysJICAgICAgICAgICAtZSAncy9eLyAgZnB1dHMgKCIv JyAtZSAncy8kL1xcbiIsIGYpOy8nCisrCisrICAgICAgICAgICAgY2F0IDw8IkVPRiIKKyt9Cisr RU9GCisrfQorKyMgZW5kOiBmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjCisrCisrIyBmdW5jX3dp bjMyX2ltcG9ydF9saWJfcCBBUkcKKysjIFRydWUgaWYgQVJHIGlzIGFuIGltcG9ydCBsaWIsIGFz IGluZGljYXRlZCBieSAkZmlsZV9tYWdpY19jbWQKKytmdW5jX3dpbjMyX2ltcG9ydF9saWJfcCAo KQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBjYXNlIGBldmFsICRmaWxlX21hZ2ljX2NtZCBc IlwkMVwiIDI+L2Rldi9udWxsIHwgJFNFRCAtZSAxMHFgIGluCisrICAgICppbXBvcnQqKSA6IDs7 CisrICAgICopIGZhbHNlIDs7CisrICAgIGVzYWMKKyt9CisrCisrIyBmdW5jX21vZGVfbGluayBh cmcuLi4KKytmdW5jX21vZGVfbGluayAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBjYXNl ICRob3N0IGluCisrICAgICotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICot Ki1vczIqIHwgKi1jZWdjYyopCisrICAgICAgIyBJdCBpcyBpbXBvc3NpYmxlIHRvIGxpbmsgYSBk bGwgd2l0aG91dCB0aGlzIHNldHRpbmcsIGFuZAorKyAgICAgICMgd2Ugc2hvdWxkbid0IGZvcmNl IHRoZSBtYWtlZmlsZSBtYWludGFpbmVyIHRvIGZpZ3VyZSBvdXQKKysgICAgICAjIHdoaWNoIHN5 c3RlbSB3ZSBhcmUgY29tcGlsaW5nIGZvciBpbiBvcmRlciB0byBwYXNzIGFuIGV4dHJhCisrICAg ICAgIyBmbGFnIGZvciBldmVyeSBsaWJ0b29sIGludm9jYXRpb24uCisrICAgICAgIyBhbGxvd191 bmRlZmluZWQ9bm8KKysKKysgICAgICAjIEZJWE1FOiBVbmZvcnR1bmF0ZWx5LCB0aGVyZSBhcmUg cHJvYmxlbXMgd2l0aCB0aGUgYWJvdmUgd2hlbiB0cnlpbmcKKysgICAgICAjIHRvIG1ha2UgYSBk bGwgd2hpY2ggaGFzIHVuZGVmaW5lZCBzeW1ib2xzLCBpbiB3aGljaCBjYXNlIG5vdAorKyAgICAg ICMgZXZlbiBhIHN0YXRpYyBsaWJyYXJ5IGlzIGJ1aWx0LiAgRm9yIG5vdywgd2UgbmVlZCB0byBz cGVjaWZ5CisrICAgICAgIyAtbm8tdW5kZWZpbmVkIG9uIHRoZSBsaWJ0b29sIGxpbmsgbGluZSB3 aGVuIHdlIGNhbiBiZSBjZXJ0YWluCisrICAgICAgIyB0aGF0IGFsbCBzeW1ib2xzIGFyZSBzYXRp c2ZpZWQsIG90aGVyd2lzZSB3ZSBnZXQgYSBzdGF0aWMgbGlicmFyeS4KKysgICAgICBhbGxvd191 bmRlZmluZWQ9eWVzCisrICAgICAgOzsKKysgICAgKikKKysgICAgICBhbGxvd191bmRlZmluZWQ9 eWVzCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICBsaWJ0b29sX2FyZ3M9JG5vbm9wdAorKyAg ICBiYXNlX2NvbXBpbGU9IiRub25vcHQgJEAiCisrICAgIGNvbXBpbGVfY29tbWFuZD0kbm9ub3B0 CisrICAgIGZpbmFsaXplX2NvbW1hbmQ9JG5vbm9wdAorKworKyAgICBjb21waWxlX3JwYXRoPQor KyAgICBmaW5hbGl6ZV9ycGF0aD0KKysgICAgY29tcGlsZV9zaGxpYnBhdGg9CisrICAgIGZpbmFs aXplX3NobGlicGF0aD0KKysgICAgY29udmVuaWVuY2U9CisrICAgIG9sZF9jb252ZW5pZW5jZT0K KysgICAgZGVwbGlicz0KKysgICAgb2xkX2RlcGxpYnM9CisrICAgIGNvbXBpbGVyX2ZsYWdzPQor KyAgICBsaW5rZXJfZmxhZ3M9CisrICAgIGRsbHNlYXJjaHBhdGg9CisrICAgIGxpYl9zZWFyY2hf cGF0aD1gcHdkYAorKyAgICBpbnN0X3ByZWZpeF9kaXI9CisrICAgIG5ld19pbmhlcml0ZWRfbGlu a2VyX2ZsYWdzPQorKworKyAgICBhdm9pZF92ZXJzaW9uPW5vCisrICAgIGJpbmRpcj0KKysgICAg ZGxmaWxlcz0KKysgICAgZGxwcmVmaWxlcz0KKysgICAgZGxzZWxmPW5vCisrICAgIGV4cG9ydF9k eW5hbWljPW5vCisrICAgIGV4cG9ydF9zeW1ib2xzPQorKyAgICBleHBvcnRfc3ltYm9sc19yZWdl eD0KKysgICAgZ2VuZXJhdGVkPQorKyAgICBsaWJvYmpzPQorKyAgICBsdGxpYnM9CisrICAgIG1v ZHVsZT1ubworKyAgICBub19pbnN0YWxsPW5vCisrICAgIG9ianM9CisrICAgIG5vbl9waWNfb2Jq ZWN0cz0KKysgICAgcHJlY2lvdXNfZmlsZXNfcmVnZXg9CisrICAgIHByZWZlcl9zdGF0aWNfbGli cz1ubworKyAgICBwcmVsb2FkPW5vCisrICAgIHByZXY9CisrICAgIHByZXZhcmc9CisrICAgIHJl bGVhc2U9CisrICAgIHJwYXRoPQorKyAgICB4cnBhdGg9CisrICAgIHBlcm1fcnBhdGg9CisrICAg IHRlbXBfcnBhdGg9CisrICAgIHRocmVhZF9zYWZlPW5vCisrICAgIHZpbmZvPQorKyAgICB2aW5m b19udW1iZXI9bm8KKysgICAgd2Vha19saWJzPQorKyAgICBzaW5nbGVfbW9kdWxlPSIke3dsfS1z aW5nbGVfbW9kdWxlIgorKyAgICBmdW5jX2luZmVyX3RhZyAkYmFzZV9jb21waWxlCisrCisrICAg ICMgV2UgbmVlZCB0byBrbm93IC1zdGF0aWMsIHRvIGdldCB0aGUgcmlnaHQgb3V0cHV0IGZpbGVu YW1lcy4KKysgICAgZm9yIGFyZworKyAgICBkbworKyAgICAgIGNhc2UgJGFyZyBpbgorKyAgICAg IC1zaGFyZWQpCisrCXRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllcyAmJiBcCisrCSAg ZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJjYW4gbm90IGJ1aWxkIGEgc2hhcmVkIGxpYnJhcnki CisrCWJ1aWxkX29sZF9saWJzPW5vCisrCWJyZWFrCisrCTs7CisrICAgICAgLWFsbC1zdGF0aWMg fCAtc3RhdGljIHwgLXN0YXRpYy1saWJ0b29sLWxpYnMpCisrCWNhc2UgJGFyZyBpbgorKwktYWxs LXN0YXRpYykKKysJICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllcyAmJiB0ZXN0 IC16ICIkbGlua19zdGF0aWNfZmxhZyI7IHRoZW4KKysJICAgIGZ1bmNfd2FybmluZyAiY29tcGxl dGUgc3RhdGljIGxpbmtpbmcgaXMgaW1wb3NzaWJsZSBpbiB0aGlzIGNvbmZpZ3VyYXRpb24iCisr CSAgZmkKKysJICBpZiB0ZXN0IC1uICIkbGlua19zdGF0aWNfZmxhZyI7IHRoZW4KKysJICAgIGRs b3Blbl9zZWxmPSRkbG9wZW5fc2VsZl9zdGF0aWMKKysJICBmaQorKwkgIHByZWZlcl9zdGF0aWNf bGlicz15ZXMKKysJICA7OworKwktc3RhdGljKQorKwkgIGlmIHRlc3QgLXogIiRwaWNfZmxhZyIg JiYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCisrCSAgICBkbG9wZW5fc2VsZj0k ZGxvcGVuX3NlbGZfc3RhdGljCisrCSAgZmkKKysJICBwcmVmZXJfc3RhdGljX2xpYnM9YnVpbHQK KysJICA7OworKwktc3RhdGljLWxpYnRvb2wtbGlicykKKysJICBpZiB0ZXN0IC16ICIkcGljX2Zs YWciICYmIHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgorKwkgICAgZGxvcGVuX3Nl bGY9JGRsb3Blbl9zZWxmX3N0YXRpYworKwkgIGZpCisrCSAgcHJlZmVyX3N0YXRpY19saWJzPXll cworKwkgIDs7CisrCWVzYWMKKysJYnVpbGRfbGlidG9vbF9saWJzPW5vCisrCWJ1aWxkX29sZF9s aWJzPXllcworKwlicmVhaworKwk7OworKyAgICAgIGVzYWMKKysgICAgZG9uZQorKworKyAgICAj IFNlZSBpZiBvdXIgc2hhcmVkIGFyY2hpdmVzIGRlcGVuZCBvbiBzdGF0aWMgYXJjaGl2ZXMuCisr ICAgIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzIiAmJiBidWlsZF9vbGRfbGli cz15ZXMKKysKKysgICAgIyBHbyB0aHJvdWdoIHRoZSBhcmd1bWVudHMsIHRyYW5zZm9ybWluZyB0 aGVtIG9uIHRoZSB3YXkuCisrICAgIHdoaWxlIHRlc3QgIiQjIiAtZ3QgMDsgZG8KKysgICAgICBh cmc9IiQxIgorKyAgICAgIHNoaWZ0CisrICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIK KysgICAgICBxYXJnPSRmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdAorKyAgICAg IGZ1bmNfYXBwZW5kIGxpYnRvb2xfYXJncyAiICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIK KysKKysgICAgICAjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZHMgYW4gYXJndW1lbnQsIGFz c2lnbiBpdC4KKysgICAgICBpZiB0ZXN0IC1uICIkcHJldiI7IHRoZW4KKysJY2FzZSAkcHJldiBp bgorKwlvdXRwdXQpCisrCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgQE9VVFBVVEAi CisrCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiIEBPVVRQVVRAIgorKwkgIDs7Cisr CWVzYWMKKysKKysJY2FzZSAkcHJldiBpbgorKwliaW5kaXIpCisrCSAgYmluZGlyPSIkYXJnIgor KwkgIHByZXY9CisrCSAgY29udGludWUKKysJICA7OworKwlkbGZpbGVzfGRscHJlZmlsZXMpCisr CSAgaWYgdGVzdCAiJHByZWxvYWQiID0gbm87IHRoZW4KKysJICAgICMgQWRkIHRoZSBzeW1ib2wg b2JqZWN0IGludG8gdGhlIGxpbmtpbmcgY29tbWFuZHMuCisrCSAgICBmdW5jX2FwcGVuZCBjb21w aWxlX2NvbW1hbmQgIiBAU1lNRklMRUAiCisrCSAgICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21t YW5kICIgQFNZTUZJTEVAIgorKwkgICAgcHJlbG9hZD15ZXMKKysJICBmaQorKwkgIGNhc2UgJGFy ZyBpbgorKwkgICoubGEgfCAqLmxvKSA7OyAgIyBXZSBoYW5kbGUgdGhlc2UgY2FzZXMgYmVsb3cu CisrCSAgZm9yY2UpCisrCSAgICBpZiB0ZXN0ICIkZGxzZWxmIiA9IG5vOyB0aGVuCisrCSAgICAg IGRsc2VsZj1uZWVkbGVzcworKwkgICAgICBleHBvcnRfZHluYW1pYz15ZXMKKysJICAgIGZpCisr CSAgICBwcmV2PQorKwkgICAgY29udGludWUKKysJICAgIDs7CisrCSAgc2VsZikKKysJICAgIGlm IHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KKysJICAgICAgZGxzZWxmPXllcworKwkg ICAgZWxpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzICYmIHRlc3QgIiRkbG9wZW5fc2VsZiIgIT0g eWVzOyB0aGVuCisrCSAgICAgIGRsc2VsZj15ZXMKKysJICAgIGVsc2UKKysJICAgICAgZGxzZWxm PW5lZWRsZXNzCisrCSAgICAgIGV4cG9ydF9keW5hbWljPXllcworKwkgICAgZmkKKysJICAgIHBy ZXY9CisrCSAgICBjb250aW51ZQorKwkgICAgOzsKKysJICAqKQorKwkgICAgaWYgdGVzdCAiJHBy ZXYiID0gZGxmaWxlczsgdGhlbgorKwkgICAgICBkbGZpbGVzPSIkZGxmaWxlcyAkYXJnIgorKwkg ICAgZWxzZQorKwkgICAgICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkYXJnIgorKwkgICAgZmkK KysJICAgIHByZXY9CisrCSAgICBjb250aW51ZQorKwkgICAgOzsKKysJICBlc2FjCisrCSAgOzsK KysJZXhwc3ltcykKKysJICBleHBvcnRfc3ltYm9scz0iJGFyZyIKKysJICB0ZXN0IC1mICIkYXJn IiBcCisrCSAgICB8fCBmdW5jX2ZhdGFsX2Vycm9yICJzeW1ib2wgZmlsZSBcYCRhcmcnIGRvZXMg bm90IGV4aXN0IgorKwkgIHByZXY9CisrCSAgY29udGludWUKKysJICA7OworKwlleHBzeW1zX3Jl Z2V4KQorKwkgIGV4cG9ydF9zeW1ib2xzX3JlZ2V4PSIkYXJnIgorKwkgIHByZXY9CisrCSAgY29u dGludWUKKysJICA7OworKwlmcmFtZXdvcmspCisrCSAgY2FzZSAkaG9zdCBpbgorKwkgICAgKi0q LWRhcndpbiopCisrCSAgICAgIGNhc2UgIiRkZXBsaWJzICIgaW4KKysJCSoiICRxYXJnLmx0ZnJh bWV3b3JrICIqKSA7OworKwkJKikgZGVwbGlicz0iJGRlcGxpYnMgJHFhcmcubHRmcmFtZXdvcmsi ICMgdGhpcyBpcyBmaXhlZCBsYXRlcgorKwkJICAgOzsKKysJICAgICAgZXNhYworKwkgICAgICA7 OworKwkgIGVzYWMKKysJICBwcmV2PQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJaW5zdF9wcmVm aXgpCisrCSAgaW5zdF9wcmVmaXhfZGlyPSIkYXJnIgorKwkgIHByZXY9CisrCSAgY29udGludWUK KysJICA7OworKwlvYmplY3RsaXN0KQorKwkgIGlmIHRlc3QgLWYgIiRhcmciOyB0aGVuCisrCSAg ICBzYXZlX2FyZz0kYXJnCisrCSAgICBtb3JlYXJncz0KKysJICAgIGZvciBmaWwgaW4gYGNhdCAi JHNhdmVfYXJnImAKKysJICAgIGRvCisrIwkgICAgICBtb3JlYXJncz0iJG1vcmVhcmdzICRmaWwi CisrCSAgICAgIGFyZz0kZmlsCisrCSAgICAgICMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgb2JqZWN0 LgorKworKwkgICAgICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9v bCBvYmplY3QuCisrCSAgICAgIGlmIGZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRhcmciOyB0aGVuCisr CQlwaWNfb2JqZWN0PQorKwkJbm9uX3BpY19vYmplY3Q9CisrCisrCQkjIFJlYWQgdGhlIC5sbyBm aWxlCisrCQlmdW5jX3NvdXJjZSAiJGFyZyIKKysKKysJCWlmIHRlc3QgLXogIiRwaWNfb2JqZWN0 IiB8fAorKwkJICAgdGVzdCAteiAiJG5vbl9waWNfb2JqZWN0IiB8fAorKwkJICAgdGVzdCAiJHBp Y19vYmplY3QiID0gbm9uZSAmJgorKwkJICAgdGVzdCAiJG5vbl9waWNfb2JqZWN0IiA9IG5vbmU7 IHRoZW4KKysJCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgbmFtZSBvZiBvYmplY3Qg Zm9yIFxgJGFyZyciCisrCQlmaQorKworKwkJIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRo ZSBhcmd1bWVudC4KKysJCWZ1bmNfZGlybmFtZSAiJGFyZyIgIi8iICIiCisrCQl4ZGlyPSIkZnVu Y19kaXJuYW1lX3Jlc3VsdCIKKysKKysJCWlmIHRlc3QgIiRwaWNfb2JqZWN0IiAhPSBub25lOyB0 aGVuCisrCQkgICMgUHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91bmQg aW4uCisrCQkgIHBpY19vYmplY3Q9IiR4ZGlyJHBpY19vYmplY3QiCisrCisrCQkgIGlmIHRlc3Qg IiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4KKysJCSAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9s aWJzIiA9IHllcyAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0geWVzOyB0aGVuCisrCQkgICAg ICBkbGZpbGVzPSIkZGxmaWxlcyAkcGljX29iamVjdCIKKysJCSAgICAgIHByZXY9CisrCQkgICAg ICBjb250aW51ZQorKwkJICAgIGVsc2UKKysJCSAgICAgICMgSWYgbGlidG9vbCBvYmplY3RzIGFy ZSB1bnN1cHBvcnRlZCwgdGhlbiB3ZSBuZWVkIHRvIHByZWxvYWQuCisrCQkgICAgICBwcmV2PWRs cHJlZmlsZXMKKysJCSAgICBmaQorKwkJICBmaQorKworKwkJICAjIENIRUNLIE1FOiAgSSB0aGlu ayBJIGJ1c3RlZCB0aGlzLiAgLU9zc2FtYQorKwkJICBpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZp bGVzOyB0aGVuCisrCQkgICAgIyBQcmVsb2FkIHRoZSBvbGQtc3R5bGUgb2JqZWN0LgorKwkJICAg IGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRwaWNfb2JqZWN0IgorKwkJICAgIHByZXY9CisrCQkg IGZpCisrCisrCQkgICMgQSBQSUMgb2JqZWN0LgorKwkJICBmdW5jX2FwcGVuZCBsaWJvYmpzICIg JHBpY19vYmplY3QiCisrCQkgIGFyZz0iJHBpY19vYmplY3QiCisrCQlmaQorKworKwkJIyBOb24t UElDIG9iamVjdC4KKysJCWlmIHRlc3QgIiRub25fcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgor KwkJICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0aGUgb2JqZWN0IGlzIGZvdW5kIGluLgor KwkJICBub25fcGljX29iamVjdD0iJHhkaXIkbm9uX3BpY19vYmplY3QiCisrCisrCQkgICMgQSBz dGFuZGFyZCBub24tUElDIG9iamVjdAorKwkJICBmdW5jX2FwcGVuZCBub25fcGljX29iamVjdHMg IiAkbm9uX3BpY19vYmplY3QiCisrCQkgIGlmIHRlc3QgLXogIiRwaWNfb2JqZWN0IiB8fCB0ZXN0 ICIkcGljX29iamVjdCIgPSBub25lIDsgdGhlbgorKwkJICAgIGFyZz0iJG5vbl9waWNfb2JqZWN0 IgorKwkJICBmaQorKwkJZWxzZQorKwkJICAjIElmIHRoZSBQSUMgb2JqZWN0IGV4aXN0cywgdXNl IGl0IGluc3RlYWQuCisrCQkgICMgJHhkaXIgd2FzIHByZXBlbmRlZCB0byAkcGljX29iamVjdCBh Ym92ZS4KKysJCSAgbm9uX3BpY19vYmplY3Q9IiRwaWNfb2JqZWN0IgorKwkJICBmdW5jX2FwcGVu ZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCisrCQlmaQorKwkgICAgICBlbHNl CisrCQkjIE9ubHkgYW4gZXJyb3IgaWYgbm90IGRvaW5nIGEgZHJ5LXJ1bi4KKysJCWlmICRvcHRf ZHJ5X3J1bjsgdGhlbgorKwkJICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3Vt ZW50LgorKwkJICBmdW5jX2Rpcm5hbWUgIiRhcmciICIvIiAiIgorKwkJICB4ZGlyPSIkZnVuY19k aXJuYW1lX3Jlc3VsdCIKKysKKysJCSAgZnVuY19sbzJvICIkYXJnIgorKwkJICBwaWNfb2JqZWN0 PSR4ZGlyJG9iamRpci8kZnVuY19sbzJvX3Jlc3VsdAorKwkJICBub25fcGljX29iamVjdD0keGRp ciRmdW5jX2xvMm9fcmVzdWx0CisrCQkgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkcGljX29iamVj dCIKKysJCSAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5vbl9waWNfb2JqZWN0Igor KwkgICAgICAgIGVsc2UKKysJCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkYXJnJyBpcyBub3QgYSB2 YWxpZCBsaWJ0b29sIG9iamVjdCIKKysJCWZpCisrCSAgICAgIGZpCisrCSAgICBkb25lCisrCSAg ZWxzZQorKwkgICAgZnVuY19mYXRhbF9lcnJvciAibGluayBpbnB1dCBmaWxlIFxgJGFyZycgZG9l cyBub3QgZXhpc3QiCisrCSAgZmkKKysJICBhcmc9JHNhdmVfYXJnCisrCSAgcHJldj0KKysJICBj b250aW51ZQorKwkgIDs7CisrCXByZWNpb3VzX3JlZ2V4KQorKwkgIHByZWNpb3VzX2ZpbGVzX3Jl Z2V4PSIkYXJnIgorKwkgIHByZXY9CisrCSAgY29udGludWUKKysJICA7OworKwlyZWxlYXNlKQor KwkgIHJlbGVhc2U9Ii0kYXJnIgorKwkgIHByZXY9CisrCSAgY29udGludWUKKysJICA7OworKwly cGF0aCB8IHhycGF0aCkKKysJICAjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KKysJICBjYXNl ICRhcmcgaW4KKysJICBbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7CisrCSAgKikKKysJICAg IGZ1bmNfZmF0YWxfZXJyb3IgIm9ubHkgYWJzb2x1dGUgcnVuLXBhdGhzIGFyZSBhbGxvd2VkIgor KwkgICAgOzsKKysJICBlc2FjCisrCSAgaWYgdGVzdCAiJHByZXYiID0gcnBhdGg7IHRoZW4KKysJ ICAgIGNhc2UgIiRycGF0aCAiIGluCisrCSAgICAqIiAkYXJnICIqKSA7OworKwkgICAgKikgcnBh dGg9IiRycGF0aCAkYXJnIiA7OworKwkgICAgZXNhYworKwkgIGVsc2UKKysJICAgIGNhc2UgIiR4 cnBhdGggIiBpbgorKwkgICAgKiIgJGFyZyAiKikgOzsKKysJICAgICopIHhycGF0aD0iJHhycGF0 aCAkYXJnIiA7OworKwkgICAgZXNhYworKwkgIGZpCisrCSAgcHJldj0KKysJICBjb250aW51ZQor KwkgIDs7CisrCXNocmV4dCkKKysJICBzaHJleHRfY21kcz0iJGFyZyIKKysJICBwcmV2PQorKwkg IGNvbnRpbnVlCisrCSAgOzsKKysJd2VhaykKKysJICB3ZWFrX2xpYnM9IiR3ZWFrX2xpYnMgJGFy ZyIKKysJICBwcmV2PQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJeGNjbGlua2VyKQorKwkgIGxp bmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkcWFyZyIKKysJICBjb21waWxlcl9mbGFncz0iJGNv bXBpbGVyX2ZsYWdzICRxYXJnIgorKwkgIHByZXY9CisrCSAgZnVuY19hcHBlbmQgY29tcGlsZV9j b21tYW5kICIgJHFhcmciCisrCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRxYXJn IgorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJeGNvbXBpbGVyKQorKwkgIGNvbXBpbGVyX2ZsYWdz PSIkY29tcGlsZXJfZmxhZ3MgJHFhcmciCisrCSAgcHJldj0KKysJICBmdW5jX2FwcGVuZCBjb21w aWxlX2NvbW1hbmQgIiAkcWFyZyIKKysJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIg JHFhcmciCisrCSAgY29udGludWUKKysJICA7OworKwl4bGlua2VyKQorKwkgIGxpbmtlcl9mbGFn cz0iJGxpbmtlcl9mbGFncyAkcWFyZyIKKysJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2Zs YWdzICR3bCRxYXJnIgorKwkgIHByZXY9CisrCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5k ICIgJHdsJHFhcmciCisrCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICR3bCRxYXJn IgorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJKikKKysJICBldmFsICIkcHJldj1cIlwkYXJnXCIi CisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCWVzYWMKKysgICAgICBmaSAjIHRl c3QgLW4gIiRwcmV2IgorKworKyAgICAgIHByZXZhcmc9IiRhcmciCisrCisrICAgICAgY2FzZSAk YXJnIGluCisrICAgICAgLWFsbC1zdGF0aWMpCisrCWlmIHRlc3QgLW4gIiRsaW5rX3N0YXRpY19m bGFnIjsgdGhlbgorKwkgICMgU2VlIGNvbW1lbnQgZm9yIC1zdGF0aWMgZmxhZyBiZWxvdywgZm9y IG1vcmUgZGV0YWlscy4KKysJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkbGlua19z dGF0aWNfZmxhZyIKKysJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGxpbmtfc3Rh dGljX2ZsYWciCisrCWZpCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLWFsbG93LXVuZGVm aW5lZCkKKysJIyBGSVhNRTogcmVtb3ZlIHRoaXMgZmxhZyBzb21ldGltZSBpbiB0aGUgZnV0dXJl LgorKwlmdW5jX2ZhdGFsX2Vycm9yICJcYC1hbGxvdy11bmRlZmluZWQnIG11c3Qgbm90IGJlIHVz ZWQgYmVjYXVzZSBpdCBpcyB0aGUgZGVmYXVsdCIKKysJOzsKKysKKysgICAgICAtYXZvaWQtdmVy c2lvbikKKysJYXZvaWRfdmVyc2lvbj15ZXMKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAt YmluZGlyKQorKwlwcmV2PWJpbmRpcgorKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1kbG9w ZW4pCisrCXByZXY9ZGxmaWxlcworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1kbHByZW9w ZW4pCisrCXByZXY9ZGxwcmVmaWxlcworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1leHBv cnQtZHluYW1pYykKKysJZXhwb3J0X2R5bmFtaWM9eWVzCisrCWNvbnRpbnVlCisrCTs7CisrCisr ICAgICAgLWV4cG9ydC1zeW1ib2xzIHwgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4KQorKwlpZiB0ZXN0 IC1uICIkZXhwb3J0X3N5bWJvbHMiIHx8IHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCI7 IHRoZW4KKysJICBmdW5jX2ZhdGFsX2Vycm9yICJtb3JlIHRoYW4gb25lIC1leHBvcnRlZC1zeW1i b2xzIGFyZ3VtZW50IGlzIG5vdCBhbGxvd2VkIgorKwlmaQorKwlpZiB0ZXN0ICJYJGFyZyIgPSAi WC1leHBvcnQtc3ltYm9scyI7IHRoZW4KKysJICBwcmV2PWV4cHN5bXMKKysJZWxzZQorKwkgIHBy ZXY9ZXhwc3ltc19yZWdleAorKwlmaQorKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1mcmFt ZXdvcmspCisrCXByZXY9ZnJhbWV3b3JrCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLWlu c3QtcHJlZml4LWRpcikKKysJcHJldj1pbnN0X3ByZWZpeAorKwljb250aW51ZQorKwk7OworKwor KyAgICAgICMgVGhlIG5hdGl2ZSBJUklYIGxpbmtlciB1bmRlcnN0YW5kcyAtTEFORzoqLCAtTElT VDoqIGFuZCAtTE5POioKKysgICAgICAjIHNvLCBpZiB3ZSBzZWUgdGhlc2UgZmxhZ3MgYmUgY2Fy ZWZ1bCBub3QgdG8gdHJlYXQgdGhlbSBsaWtlIC1MCisrICAgICAgLUxbQS1aXVtBLVpdKjoqKQor KwljYXNlICR3aXRoX2djYy8kaG9zdCBpbgorKwluby8qLSotaXJpeCogfCAvKi0qLWlyaXgqKQor KwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCisrCSAgZnVuY19hcHBlbmQg ZmluYWxpemVfY29tbWFuZCAiICRhcmciCisrCSAgOzsKKysJZXNhYworKwljb250aW51ZQorKwk7 OworKworKyAgICAgIC1MKikKKysJZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGFyZyIKKysJZGly PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJaWYgdGVzdCAteiAiJGRpciI7IHRoZW4KKysJICBp ZiB0ZXN0ICIkIyIgLWd0IDA7IHRoZW4KKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgInJlcXVpcmUg bm8gc3BhY2UgYmV0d2VlbiBcYC1MJyBhbmQgXGAkMSciCisrCSAgZWxzZQorKwkgICAgZnVuY19m YXRhbF9lcnJvciAibmVlZCBwYXRoIGZvciBcYC1MJyBvcHRpb24iCisrCSAgZmkKKysJZmkKKysJ IyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCisrCWNhc2UgJGRpciBpbgorKwlbXFwvXSogfCBb QS1aYS16XTpbXFwvXSopIDs7CisrCSopCisrCSAgYWJzZGlyPWBjZCAiJGRpciIgJiYgcHdkYAor KwkgIHRlc3QgLXogIiRhYnNkaXIiICYmIFwKKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5v dCBkZXRlcm1pbmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUgb2YgXGAkZGlyJyIKKysJICBkaXI9 IiRhYnNkaXIiCisrCSAgOzsKKysJZXNhYworKwljYXNlICIkZGVwbGlicyAiIGluCisrCSoiIC1M JGRpciAiKikgOzsKKysJKikKKysJICBkZXBsaWJzPSIkZGVwbGlicyAtTCRkaXIiCisrCSAgbGli X3NlYXJjaF9wYXRoPSIkbGliX3NlYXJjaF9wYXRoICRkaXIiCisrCSAgOzsKKysJZXNhYworKwlj YXNlICRob3N0IGluCisrCSotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICot Ki1vczIqIHwgKi1jZWdjYyopCisrCSAgdGVzdGJpbmRpcj1gJEVDSE8gIiRkaXIiIHwgJFNFRCAn cyovbGliJCovYmluKidgCisrCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCisrCSAgKiI6JGRp cjoiKikgOzsKKysJICA6OikgZGxsc2VhcmNocGF0aD0kZGlyOzsKKysJICAqKSBkbGxzZWFyY2hw YXRoPSIkZGxsc2VhcmNocGF0aDokZGlyIjs7CisrCSAgZXNhYworKwkgIGNhc2UgOiRkbGxzZWFy Y2hwYXRoOiBpbgorKwkgICoiOiR0ZXN0YmluZGlyOiIqKSA7OworKwkgIDo6KSBkbGxzZWFyY2hw YXRoPSR0ZXN0YmluZGlyOzsKKysJICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxsc2VhcmNocGF0aDok dGVzdGJpbmRpciI7OworKwkgIGVzYWMKKysJICA7OworKwllc2FjCisrCWNvbnRpbnVlCisrCTs7 CisrCisrICAgICAgLWwqKQorKwlpZiB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgfHwgdGVzdCAiWCRh cmciID0gIlgtbG0iOyB0aGVuCisrCSAgY2FzZSAkaG9zdCBpbgorKwkgICotKi1jeWd3aW4qIHwg Ki0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1iZW9zKiB8ICotY2VnY2MqIHwgKi0qLWhhaWt1 KikKKysJICAgICMgVGhlc2Ugc3lzdGVtcyBkb24ndCBhY3R1YWxseSBoYXZlIGEgQyBvciBtYXRo IGxpYnJhcnkgKGFzIHN1Y2gpCisrCSAgICBjb250aW51ZQorKwkgICAgOzsKKysJICAqLSotb3My KikKKysJICAgICMgVGhlc2Ugc3lzdGVtcyBkb24ndCBhY3R1YWxseSBoYXZlIGEgQyBsaWJyYXJ5 IChhcyBzdWNoKQorKwkgICAgdGVzdCAiWCRhcmciID0gIlgtbGMiICYmIGNvbnRpbnVlCisrCSAg ICA7OworKwkgICotKi1vcGVuYnNkKiB8ICotKi1mcmVlYnNkKiB8ICotKi1kcmFnb25mbHkqKQor KwkgICAgIyBEbyBub3QgaW5jbHVkZSBsaWJjIGR1ZSB0byB1cyBoYXZpbmcgbGliYy9saWJjX3Iu CisrCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKKysJICAgIDs7CisrCSAg Ki0qLXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQorKwkgICAgIyBSaGFwc29keSBDIGFu ZCBtYXRoIGxpYnJhcmllcyBhcmUgaW4gdGhlIFN5c3RlbSBmcmFtZXdvcmsKKysJICAgIGRlcGxp YnM9IiRkZXBsaWJzIFN5c3RlbS5sdGZyYW1ld29yayIKKysJICAgIGNvbnRpbnVlCisrCSAgICA7 OworKwkgICotKi1zY28zLjJ2NSogfCAqLSotc2NvNXY2KikKKysJICAgICMgQ2F1c2VzIHByb2Js ZW1zIHdpdGggX19jdHlwZQorKwkgICAgdGVzdCAiWCRhcmciID0gIlgtbGMiICYmIGNvbnRpbnVl CisrCSAgICA7OworKwkgICotKi1zeXN2NC4ydXcyKiB8ICotKi1zeXN2NSogfCAqLSotdW5peHdh cmUqIHwgKi0qLU9wZW5VTklYKikKKysJICAgICMgQ29tcGlsZXIgaW5zZXJ0cyBsaWJjIGluIHRo ZSBjb3JyZWN0IHBsYWNlIGZvciB0aHJlYWRzIHRvIHdvcmsKKysJICAgIHRlc3QgIlgkYXJnIiA9 ICJYLWxjIiAmJiBjb250aW51ZQorKwkgICAgOzsKKysJICBlc2FjCisrCWVsaWYgdGVzdCAiWCRh cmciID0gIlgtbGNfciI7IHRoZW4KKysJIGNhc2UgJGhvc3QgaW4KKysJICotKi1vcGVuYnNkKiB8 ICotKi1mcmVlYnNkKiB8ICotKi1kcmFnb25mbHkqKQorKwkgICAjIERvIG5vdCBpbmNsdWRlIGxp YmNfciBkaXJlY3RseSwgdXNlIC1wdGhyZWFkIGZsYWcuCisrCSAgIGNvbnRpbnVlCisrCSAgIDs7 CisrCSBlc2FjCisrCWZpCisrCWRlcGxpYnM9IiRkZXBsaWJzICRhcmciCisrCWNvbnRpbnVlCisr CTs7CisrCisrICAgICAgLW1vZHVsZSkKKysJbW9kdWxlPXllcworKwljb250aW51ZQorKwk7Owor KworKyAgICAgICMgVHJ1NjQgVU5JWCB1c2VzIC1tb2RlbCBbYXJnXSB0byBkZXRlcm1pbmUgdGhl IGxheW91dCBvZiBDKysKKysgICAgICAjIGNsYXNzZXMsIG5hbWUgbWFuZ2xpbmcsIGFuZCBleGNl cHRpb24gaGFuZGxpbmcuCisrICAgICAgIyBEYXJ3aW4gdXNlcyB0aGUgLWFyY2ggZmxhZyB0byBk ZXRlcm1pbmUgb3V0cHV0IGFyY2hpdGVjdHVyZS4KKysgICAgICAtbW9kZWx8LWFyY2h8LWlzeXNy b290KQorKwljb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCisrCWZ1bmNfYXBw ZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCisrCWZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1h bmQgIiAkYXJnIgorKwlwcmV2PXhjb21waWxlcgorKwljb250aW51ZQorKwk7OworKworKyAgICAg IC1tdHwtbXRocmVhZHN8LWt0aHJlYWR8LUt0aHJlYWR8LXB0aHJlYWR8LXB0aHJlYWRzfC0tdGhy ZWFkLXNhZmV8LXRocmVhZHMpCisrCWNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJGFy ZyIKKysJZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJGFyZyIKKysJZnVuY19hcHBlbmQg ZmluYWxpemVfY29tbWFuZCAiICRhcmciCisrCWNhc2UgIiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9m bGFncyAiIGluCisrCSAgICAqIiAkYXJnICIqKSA7OworKwkgICAgKiApIG5ld19pbmhlcml0ZWRf bGlua2VyX2ZsYWdzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGFyZyIgOzsKKysJZXNh YworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1tdWx0aV9tb2R1bGUpCisrCXNpbmdsZV9t b2R1bGU9IiR7d2x9LW11bHRpX21vZHVsZSIKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAt bm8tZmFzdC1pbnN0YWxsKQorKwlmYXN0X2luc3RhbGw9bm8KKysJY29udGludWUKKysJOzsKKysK KysgICAgICAtbm8taW5zdGFsbCkKKysJY2FzZSAkaG9zdCBpbgorKwkqLSotY3lnd2luKiB8ICot Ki1taW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKiB8ICotKi1kYXJ3aW4qIHwgKi1jZWdjYyop CisrCSAgIyBUaGUgUEFUSCBoYWNrZXJ5IGluIHdyYXBwZXIgc2NyaXB0cyBpcyByZXF1aXJlZCBv biBXaW5kb3dzCisrCSAgIyBhbmQgRGFyd2luIGluIG9yZGVyIGZvciB0aGUgbG9hZGVyIHRvIGZp bmQgYW55IGRsbHMgaXQgbmVlZHMuCisrCSAgZnVuY193YXJuaW5nICJcYC1uby1pbnN0YWxsJyBp cyBpZ25vcmVkIGZvciAkaG9zdCIKKysJICBmdW5jX3dhcm5pbmcgImFzc3VtaW5nIFxgLW5vLWZh c3QtaW5zdGFsbCcgaW5zdGVhZCIKKysJICBmYXN0X2luc3RhbGw9bm8KKysJICA7OworKwkqKSBu b19pbnN0YWxsPXllcyA7OworKwllc2FjCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLW5v LXVuZGVmaW5lZCkKKysJYWxsb3dfdW5kZWZpbmVkPW5vCisrCWNvbnRpbnVlCisrCTs7CisrCisr ICAgICAgLW9iamVjdGxpc3QpCisrCXByZXY9b2JqZWN0bGlzdAorKwljb250aW51ZQorKwk7Owor KworKyAgICAgIC1vKSBwcmV2PW91dHB1dCA7OworKworKyAgICAgIC1wcmVjaW91cy1maWxlcy1y ZWdleCkKKysJcHJldj1wcmVjaW91c19yZWdleAorKwljb250aW51ZQorKwk7OworKworKyAgICAg IC1yZWxlYXNlKQorKwlwcmV2PXJlbGVhc2UKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAt cnBhdGgpCisrCXByZXY9cnBhdGgKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtUikKKysJ cHJldj14cnBhdGgKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtUiopCisrCWZ1bmNfc3Ry aXBuYW1lICctUicgJycgIiRhcmciCisrCWRpcj0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCSMg V2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgorKwljYXNlICRkaXIgaW4KKysJW1xcL10qIHwgW0Et WmEtel06W1xcL10qKSA7OworKwkqKQorKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIm9ubHkgYWJzb2x1 dGUgcnVuLXBhdGhzIGFyZSBhbGxvd2VkIgorKwkgIDs7CisrCWVzYWMKKysJY2FzZSAiJHhycGF0 aCAiIGluCisrCSoiICRkaXIgIiopIDs7CisrCSopIHhycGF0aD0iJHhycGF0aCAkZGlyIiA7Owor Kwllc2FjCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXNoYXJlZCkKKysJIyBUaGUgZWZm ZWN0cyBvZiAtc2hhcmVkIGFyZSBkZWZpbmVkIGluIGEgcHJldmlvdXMgbG9vcC4KKysJY29udGlu dWUKKysJOzsKKysKKysgICAgICAtc2hyZXh0KQorKwlwcmV2PXNocmV4dAorKwljb250aW51ZQor Kwk7OworKworKyAgICAgIC1zdGF0aWMgfCAtc3RhdGljLWxpYnRvb2wtbGlicykKKysJIyBUaGUg ZWZmZWN0cyBvZiAtc3RhdGljIGFyZSBkZWZpbmVkIGluIGEgcHJldmlvdXMgbG9vcC4KKysJIyBX ZSB1c2VkIHRvIGRvIHRoZSBzYW1lIGFzIC1hbGwtc3RhdGljIG9uIHBsYXRmb3JtcyB0aGF0Cisr CSMgZGlkbid0IGhhdmUgYSBQSUMgZmxhZywgYnV0IHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIGVm ZmVjdHMKKysJIyB3b3VsZCBiZSBlcXVpdmFsZW50IHdhcyB3cm9uZy4gIEl0IHdvdWxkIGJyZWFr IG9uIGF0IGxlYXN0CisrCSMgRGlnaXRhbCBVbml4IGFuZCBBSVguCisrCWNvbnRpbnVlCisrCTs7 CisrCisrICAgICAgLXRocmVhZC1zYWZlKQorKwl0aHJlYWRfc2FmZT15ZXMKKysJY29udGludWUK KysJOzsKKysKKysgICAgICAtdmVyc2lvbi1pbmZvKQorKwlwcmV2PXZpbmZvCisrCWNvbnRpbnVl CisrCTs7CisrCisrICAgICAgLXZlcnNpb24tbnVtYmVyKQorKwlwcmV2PXZpbmZvCisrCXZpbmZv X251bWJlcj15ZXMKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtd2VhaykKKysgICAgICAg IHByZXY9d2VhaworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1XYywqKQorKwlmdW5jX3N0 cmlwbmFtZSAnLVdjLCcgJycgIiRhcmciCisrCWFyZ3M9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAor Kwlhcmc9CisrCXNhdmVfaWZzPSIkSUZTIjsgSUZTPScsJworKwlmb3IgZmxhZyBpbiAkYXJnczsg ZG8KKysJICBJRlM9IiRzYXZlX2lmcyIKKysgICAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAi JGZsYWciCisrCSAgYXJnPSIkYXJnICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysJICBj b21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3Vs dCIKKysJZG9uZQorKwlJRlM9IiRzYXZlX2lmcyIKKysJZnVuY19zdHJpcG5hbWUgJyAnICcnICIk YXJnIgorKwlhcmc9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwk7OworKworKyAgICAgIC1XbCwq KQorKwlmdW5jX3N0cmlwbmFtZSAnLVdsLCcgJycgIiRhcmciCisrCWFyZ3M9JGZ1bmNfc3RyaXBu YW1lX3Jlc3VsdAorKwlhcmc9CisrCXNhdmVfaWZzPSIkSUZTIjsgSUZTPScsJworKwlmb3IgZmxh ZyBpbiAkYXJnczsgZG8KKysJICBJRlM9IiRzYXZlX2lmcyIKKysgICAgICAgICAgZnVuY19xdW90 ZV9mb3JfZXZhbCAiJGZsYWciCisrCSAgYXJnPSIkYXJnICR3bCRmdW5jX3F1b3RlX2Zvcl9ldmFs X3Jlc3VsdCIKKysJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICR3bCRmdW5jX3F1 b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysJICBsaW5rZXJfZmxhZ3M9IiRsaW5rZXJfZmxhZ3MgJGZ1 bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorKwlkb25lCisrCUlGUz0iJHNhdmVfaWZzIgorKwlm dW5jX3N0cmlwbmFtZSAnICcgJycgIiRhcmciCisrCWFyZz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0 CisrCTs7CisrCisrICAgICAgLVhjb21waWxlcikKKysJcHJldj14Y29tcGlsZXIKKysJY29udGlu dWUKKysJOzsKKysKKysgICAgICAtWGxpbmtlcikKKysJcHJldj14bGlua2VyCisrCWNvbnRpbnVl CisrCTs7CisrCisrICAgICAgLVhDQ2xpbmtlcikKKysJcHJldj14Y2NsaW5rZXIKKysJY29udGlu dWUKKysJOzsKKysKKysgICAgICAjIC1tc2dfKiBmb3Igb3NmIGNjCisrICAgICAgLW1zZ18qKQor KwlmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgorKwlhcmc9IiRmdW5jX3F1b3RlX2Zvcl9ldmFs X3Jlc3VsdCIKKysJOzsKKysKKysgICAgICAjIEZsYWdzIHRvIGJlIHBhc3NlZCB0aHJvdWdoIHVu Y2hhbmdlZCwgd2l0aCByYXRpb25hbGU6CisrICAgICAgIyAtNjQsIC1taXBzWzAtOV0gICAgICBl bmFibGUgNjQtYml0IG1vZGUgZm9yIHRoZSBTR0kgY29tcGlsZXIKKysgICAgICAjIC1yWzAtOV1b MC05XSogICAgICAgIHNwZWNpZnkgcHJvY2Vzc29yIGZvciB0aGUgU0dJIGNvbXBpbGVyCisrICAg ICAgIyAteGFyY2g9KiwgLXh0YXJnZXQ9KiBlbmFibGUgNjQtYml0IG1vZGUgZm9yIHRoZSBTdW4g Y29tcGlsZXIKKysgICAgICAjICtEQSosICtERCogICAgICAgICAgIGVuYWJsZSA2NC1iaXQgbW9k ZSBmb3IgdGhlIEhQIGNvbXBpbGVyCisrICAgICAgIyAtcSogICAgICAgICAgICAgICAgICBjb21w aWxlciBhcmdzIGZvciB0aGUgSUJNIGNvbXBpbGVyCisrICAgICAgIyAtbSosIC10WzQ1XSosIC10 eHNjYWxlKiBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgZmxhZ3MgZm9yIEdDQworKyAgICAgICMgLUYv cGF0aCAgICAgICAgICAgICAgcGF0aCB0byB1bmluc3RhbGxlZCBmcmFtZXdvcmtzLCBnY2Mgb24g ZGFyd2luCisrICAgICAgIyAtcCwgLXBnLCAtLWNvdmVyYWdlLCAtZnByb2ZpbGUtKiAgcHJvZmls aW5nIGZsYWdzIGZvciBHQ0MKKysgICAgICAjIEBmaWxlICAgICAgICAgICAgICAgIEdDQyByZXNw b25zZSBmaWxlcworKyAgICAgICMgLXRwPSogICAgICAgICAgICAgICAgUG9ydGxhbmQgcGdjYyB0 YXJnZXQgcHJvY2Vzc29yIHNlbGVjdGlvbgorKyAgICAgIC02NHwtbWlwc1swLTldfC1yWzAtOV1b MC05XSp8LXhhcmNoPSp8LXh0YXJnZXQ9KnwrREEqfCtERCp8LXEqfC1tKnwgXAorKyAgICAgIC10 WzQ1XSp8LXR4c2NhbGUqfC1wfC1wZ3wtLWNvdmVyYWdlfC1mcHJvZmlsZS0qfC1GKnxAKnwtdHA9 KikKKysgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisrCWFyZz0iJGZ1bmNfcXVv dGVfZm9yX2V2YWxfcmVzdWx0IgorKyAgICAgICAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5k ICIgJGFyZyIKKysgICAgICAgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgor KyAgICAgICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkYXJnIgorKyAgICAgICAg Y29udGludWUKKysgICAgICAgIDs7CisrCisrICAgICAgIyBTb21lIG90aGVyIGNvbXBpbGVyIGZs YWcuCisrICAgICAgLSogfCArKikKKysgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmci CisrCWFyZz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorKwk7OworKworKyAgICAgICou JG9iamV4dCkKKysJIyBBIHN0YW5kYXJkIG9iamVjdC4KKysJb2Jqcz0iJG9ianMgJGFyZyIKKysJ OzsKKysKKysgICAgICAqLmxvKQorKwkjIEEgbGlidG9vbC1jb250cm9sbGVkIG9iamVjdC4KKysK KysJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wgb2JqZWN0Lgor KwlpZiBmdW5jX2xhbGliX3Vuc2FmZV9wICIkYXJnIjsgdGhlbgorKwkgIHBpY19vYmplY3Q9Cisr CSAgbm9uX3BpY19vYmplY3Q9CisrCisrCSAgIyBSZWFkIHRoZSAubG8gZmlsZQorKwkgIGZ1bmNf c291cmNlICIkYXJnIgorKworKwkgIGlmIHRlc3QgLXogIiRwaWNfb2JqZWN0IiB8fAorKwkgICAg IHRlc3QgLXogIiRub25fcGljX29iamVjdCIgfHwKKysJICAgICB0ZXN0ICIkcGljX29iamVjdCIg PSBub25lICYmCisrCSAgICAgdGVzdCAiJG5vbl9waWNfb2JqZWN0IiA9IG5vbmU7IHRoZW4KKysJ ICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2Ygb2JqZWN0IGZvciBcYCRh cmcnIgorKwkgIGZpCisrCisrCSAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1 bWVudC4KKysJICBmdW5jX2Rpcm5hbWUgIiRhcmciICIvIiAiIgorKwkgIHhkaXI9IiRmdW5jX2Rp cm5hbWVfcmVzdWx0IgorKworKwkgIGlmIHRlc3QgIiRwaWNfb2JqZWN0IiAhPSBub25lOyB0aGVu CisrCSAgICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0aGUgb2JqZWN0IGlzIGZvdW5kIGlu LgorKwkgICAgcGljX29iamVjdD0iJHhkaXIkcGljX29iamVjdCIKKysKKysJICAgIGlmIHRlc3Qg IiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4KKysJICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xf bGlicyIgPSB5ZXMgJiYgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiA9IHllczsgdGhlbgorKwkJZGxm aWxlcz0iJGRsZmlsZXMgJHBpY19vYmplY3QiCisrCQlwcmV2PQorKwkJY29udGludWUKKysJICAg ICAgZWxzZQorKwkJIyBJZiBsaWJ0b29sIG9iamVjdHMgYXJlIHVuc3VwcG9ydGVkLCB0aGVuIHdl IG5lZWQgdG8gcHJlbG9hZC4KKysJCXByZXY9ZGxwcmVmaWxlcworKwkgICAgICBmaQorKwkgICAg ZmkKKysKKysJICAgICMgQ0hFQ0sgTUU6ICBJIHRoaW5rIEkgYnVzdGVkIHRoaXMuICAtT3NzYW1h CisrCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCisrCSAgICAgICMgUHJl bG9hZCB0aGUgb2xkLXN0eWxlIG9iamVjdC4KKysJICAgICAgZGxwcmVmaWxlcz0iJGRscHJlZmls ZXMgJHBpY19vYmplY3QiCisrCSAgICAgIHByZXY9CisrCSAgICBmaQorKworKwkgICAgIyBBIFBJ QyBvYmplY3QuCisrCSAgICBmdW5jX2FwcGVuZCBsaWJvYmpzICIgJHBpY19vYmplY3QiCisrCSAg ICBhcmc9IiRwaWNfb2JqZWN0IgorKwkgIGZpCisrCisrCSAgIyBOb24tUElDIG9iamVjdC4KKysJ ICBpZiB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KKysJICAgICMgUHJlcGVu ZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91bmQgaW4uCisrCSAgICBub25fcGlj X29iamVjdD0iJHhkaXIkbm9uX3BpY19vYmplY3QiCisrCisrCSAgICAjIEEgc3RhbmRhcmQgbm9u LVBJQyBvYmplY3QKKysJICAgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0cyAiICRub25fcGlj X29iamVjdCIKKysJICAgIGlmIHRlc3QgLXogIiRwaWNfb2JqZWN0IiB8fCB0ZXN0ICIkcGljX29i amVjdCIgPSBub25lIDsgdGhlbgorKwkgICAgICBhcmc9IiRub25fcGljX29iamVjdCIKKysJICAg IGZpCisrCSAgZWxzZQorKwkgICAgIyBJZiB0aGUgUElDIG9iamVjdCBleGlzdHMsIHVzZSBpdCBp bnN0ZWFkLgorKwkgICAgIyAkeGRpciB3YXMgcHJlcGVuZGVkIHRvICRwaWNfb2JqZWN0IGFib3Zl LgorKwkgICAgbm9uX3BpY19vYmplY3Q9IiRwaWNfb2JqZWN0IgorKwkgICAgZnVuY19hcHBlbmQg bm9uX3BpY19vYmplY3RzICIgJG5vbl9waWNfb2JqZWN0IgorKwkgIGZpCisrCWVsc2UKKysJICAj IE9ubHkgYW4gZXJyb3IgaWYgbm90IGRvaW5nIGEgZHJ5LXJ1bi4KKysJICBpZiAkb3B0X2RyeV9y dW47IHRoZW4KKysJICAgICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQu CisrCSAgICBmdW5jX2Rpcm5hbWUgIiRhcmciICIvIiAiIgorKwkgICAgeGRpcj0iJGZ1bmNfZGly bmFtZV9yZXN1bHQiCisrCisrCSAgICBmdW5jX2xvMm8gIiRhcmciCisrCSAgICBwaWNfb2JqZWN0 PSR4ZGlyJG9iamRpci8kZnVuY19sbzJvX3Jlc3VsdAorKwkgICAgbm9uX3BpY19vYmplY3Q9JHhk aXIkZnVuY19sbzJvX3Jlc3VsdAorKwkgICAgZnVuY19hcHBlbmQgbGlib2JqcyAiICRwaWNfb2Jq ZWN0IgorKwkgICAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5vbl9waWNfb2JqZWN0 IgorKwkgIGVsc2UKKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGFyZycgaXMgbm90IGEgdmFs aWQgbGlidG9vbCBvYmplY3QiCisrCSAgZmkKKysJZmkKKysJOzsKKysKKysgICAgICAqLiRsaWJl eHQpCisrCSMgQW4gYXJjaGl2ZS4KKysJZGVwbGlicz0iJGRlcGxpYnMgJGFyZyIKKysJb2xkX2Rl cGxpYnM9IiRvbGRfZGVwbGlicyAkYXJnIgorKwljb250aW51ZQorKwk7OworKworKyAgICAgICou bGEpCisrCSMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgbGlicmFyeS4KKysKKysJaWYgdGVzdCAiJHBy ZXYiID0gZGxmaWxlczsgdGhlbgorKwkgICMgVGhpcyBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0 aCAtZGxvcGVuLgorKwkgIGRsZmlsZXM9IiRkbGZpbGVzICRhcmciCisrCSAgcHJldj0KKysJZWxp ZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCisrCSAgIyBUaGUgbGlicmFyeSB3YXMg c3BlY2lmaWVkIHdpdGggLWRscHJlb3Blbi4KKysJICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAk YXJnIgorKwkgIHByZXY9CisrCWVsc2UKKysJICBkZXBsaWJzPSIkZGVwbGlicyAkYXJnIgorKwlm aQorKwljb250aW51ZQorKwk7OworKworKyAgICAgICMgU29tZSBvdGhlciBjb21waWxlciBhcmd1 bWVudC4KKysgICAgICAqKQorKwkjIFVua25vd24gYXJndW1lbnRzIGluIGJvdGggZmluYWxpemVf Y29tbWFuZCBhbmQgY29tcGlsZV9jb21tYW5kIG5lZWQKKysJIyB0byBiZSBhZXN0aGV0aWNhbGx5 IHF1b3RlZCBiZWNhdXNlIHRoZXkgYXJlIGV2YWxlZCBsYXRlci4KKysJZnVuY19xdW90ZV9mb3Jf ZXZhbCAiJGFyZyIKKysJYXJnPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCTs7Cisr ICAgICAgZXNhYyAjIGFyZworKworKyAgICAgICMgTm93IGFjdHVhbGx5IHN1YnN0aXR1dGUgdGhl IGFyZ3VtZW50IGludG8gdGhlIGNvbW1hbmRzLgorKyAgICAgIGlmIHRlc3QgLW4gIiRhcmciOyB0 aGVuCisrCWZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCisrCWZ1bmNfYXBwZW5k IGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgorKyAgICAgIGZpCisrICAgIGRvbmUgIyBhcmd1bWVu dCBwYXJzaW5nIGxvb3AKKysKKysgICAgdGVzdCAtbiAiJHByZXYiICYmIFwKKysgICAgICBmdW5j X2ZhdGFsX2hlbHAgInRoZSBcYCRwcmV2YXJnJyBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQi CisrCisrICAgIGlmIHRlc3QgIiRleHBvcnRfZHluYW1pYyIgPSB5ZXMgJiYgdGVzdCAtbiAiJGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYyI7IHRoZW4KKysgICAgICBldmFsIGFyZz1cIiRleHBvcnRf ZHluYW1pY19mbGFnX3NwZWNcIgorKyAgICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAi ICRhcmciCisrICAgICAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRhcmciCisrICAg IGZpCisrCisrICAgIG9sZGxpYnM9CisrICAgICMgY2FsY3VsYXRlIHRoZSBuYW1lIG9mIHRoZSBm aWxlLCB3aXRob3V0IGl0cyBkaXJlY3RvcnkKKysgICAgZnVuY19iYXNlbmFtZSAiJG91dHB1dCIK KysgICAgb3V0cHV0bmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKyAgICBsaWJvYmpzX3Nh dmU9IiRsaWJvYmpzIgorKworKyAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4K KysgICAgICAjIGdldCB0aGUgZGlyZWN0b3JpZXMgbGlzdGVkIGluICRzaGxpYnBhdGhfdmFyCisr ICAgICAgZXZhbCBzaGxpYl9zZWFyY2hfcGF0aD1cYFwkRUNITyBcIlwkeyRzaGxpYnBhdGhfdmFy fVwiIFx8IFwkU0VEIFwncy86LyAvZ1wnXGAKKysgICAgZWxzZQorKyAgICAgIHNobGliX3NlYXJj aF9wYXRoPQorKyAgICBmaQorKyAgICBldmFsIHN5c19saWJfc2VhcmNoX3BhdGg9XCIkc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjXCIKKysgICAgZXZhbCBzeXNfbGliX2Rsc2VhcmNoX3BhdGg9XCIk c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWNcIgorKworKyAgICBmdW5jX2Rpcm5hbWUgIiRvdXRw dXQiICIvIiAiIgorKyAgICBvdXRwdXRfb2JqZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCRvYmpk aXIiCisrICAgICMgQ3JlYXRlIHRoZSBvYmplY3QgZGlyZWN0b3J5LgorKyAgICBmdW5jX21rZGly X3AgIiRvdXRwdXRfb2JqZGlyIgorKworKyAgICAjIERldGVybWluZSB0aGUgdHlwZSBvZiBvdXRw dXQKKysgICAgY2FzZSAkb3V0cHV0IGluCisrICAgICIiKQorKyAgICAgIGZ1bmNfZmF0YWxfaGVs cCAieW91IG11c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSIKKysgICAgICA7OworKyAgICAqLiRs aWJleHQpIGxpbmttb2RlPW9sZGxpYiA7OworKyAgICAqLmxvIHwgKi4kb2JqZXh0KSBsaW5rbW9k ZT1vYmogOzsKKysgICAgKi5sYSkgbGlua21vZGU9bGliIDs7CisrICAgICopIGxpbmttb2RlPXBy b2cgOzsgIyBBbnl0aGluZyBlbHNlIHNob3VsZCBiZSBhIHByb2dyYW0uCisrICAgIGVzYWMKKysK KysgICAgc3BlY2lhbGRlcGxpYnM9CisrCisrICAgIGxpYnM9CisrICAgICMgRmluZCBhbGwgaW50 ZXJkZXBlbmRlbnQgZGVwbGlicyBieSBzZWFyY2hpbmcgZm9yIGxpYnJhcmllcworKyAgICAjIHRo YXQgYXJlIGxpbmtlZCBtb3JlIHRoYW4gb25jZSAoZS5nLiAtbGEgLWxiIC1sYSkKKysgICAgZm9y IGRlcGxpYiBpbiAkZGVwbGliczsgZG8KKysgICAgICBpZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsg dGhlbgorKwljYXNlICIkbGlicyAiIGluCisrCSoiICRkZXBsaWIgIiopIHNwZWNpYWxkZXBsaWJz PSIkc3BlY2lhbGRlcGxpYnMgJGRlcGxpYiIgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAgICAg bGlicz0iJGxpYnMgJGRlcGxpYiIKKysgICAgZG9uZQorKworKyAgICBpZiB0ZXN0ICIkbGlua21v ZGUiID0gbGliOyB0aGVuCisrICAgICAgbGlicz0iJHByZWRlcHMgJGxpYnMgJGNvbXBpbGVyX2xp Yl9zZWFyY2hfcGF0aCAkcG9zdGRlcHMiCisrCisrICAgICAgIyBDb21wdXRlIGxpYnJhcmllcyB0 aGF0IGFyZSBsaXN0ZWQgbW9yZSB0aGFuIG9uY2UgaW4gJHByZWRlcHMKKysgICAgICAjICRwb3N0 ZGVwcyBhbmQgbWFyayB0aGVtIGFzIHNwZWNpYWwgKGkuZS4sIHdob3NlIGR1cGxpY2F0ZXMgYXJl CisrICAgICAgIyBub3QgdG8gYmUgZWxpbWluYXRlZCkuCisrICAgICAgcHJlX3Bvc3RfZGVwcz0K KysgICAgICBpZiAkb3B0X2R1cGxpY2F0ZV9jb21waWxlcl9nZW5lcmF0ZWRfZGVwczsgdGhlbgor Kwlmb3IgcHJlX3Bvc3RfZGVwIGluICRwcmVkZXBzICRwb3N0ZGVwczsgZG8KKysJICBjYXNlICIk cHJlX3Bvc3RfZGVwcyAiIGluCisrCSAgKiIgJHByZV9wb3N0X2RlcCAiKikgc3BlY2lhbGRlcGxp YnM9IiRzcGVjaWFsZGVwbGlicyAkcHJlX3Bvc3RfZGVwcyIgOzsKKysJICBlc2FjCisrCSAgcHJl X3Bvc3RfZGVwcz0iJHByZV9wb3N0X2RlcHMgJHByZV9wb3N0X2RlcCIKKysJZG9uZQorKyAgICAg IGZpCisrICAgICAgcHJlX3Bvc3RfZGVwcz0KKysgICAgZmkKKysKKysgICAgZGVwbGlicz0KKysg ICAgbmV3ZGVwZW5kZW5jeV9saWJzPQorKyAgICBuZXdsaWJfc2VhcmNoX3BhdGg9CisrICAgIG5l ZWRfcmVsaW5rPW5vICMgd2hldGhlciB3ZSdyZSBsaW5raW5nIGFueSB1bmluc3RhbGxlZCBsaWJ0 b29sIGxpYnJhcmllcworKyAgICBub3RpbnN0X2RlcGxpYnM9ICMgbm90LWluc3RhbGxlZCBsaWJ0 b29sIGxpYnJhcmllcworKyAgICBub3RpbnN0X3BhdGg9ICMgcGF0aHMgdGhhdCBjb250YWluIG5v dC1pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKKysKKysgICAgY2FzZSAkbGlua21vZGUgaW4K KysgICAgbGliKQorKwlwYXNzZXM9ImNvbnYgZGxwcmVvcGVuIGxpbmsiCisrCWZvciBmaWxlIGlu ICRkbGZpbGVzICRkbHByZWZpbGVzOyBkbworKwkgIGNhc2UgJGZpbGUgaW4KKysJICAqLmxhKSA7 OworKwkgICopCisrCSAgICBmdW5jX2ZhdGFsX2hlbHAgImxpYnJhcmllcyBjYW4gXGAtZGxvcGVu JyBvbmx5IGxpYnRvb2wgbGlicmFyaWVzOiAkZmlsZSIKKysJICAgIDs7CisrCSAgZXNhYworKwlk b25lCisrCTs7CisrICAgIHByb2cpCisrCWNvbXBpbGVfZGVwbGlicz0KKysJZmluYWxpemVfZGVw bGlicz0KKysJYWxsZGVwbGlicz1ubworKwluZXdkbGZpbGVzPQorKwluZXdkbHByZWZpbGVzPQor KwlwYXNzZXM9ImNvbnYgc2NhbiBkbG9wZW4gZGxwcmVvcGVuIGxpbmsiCisrCTs7CisrICAgICop ICBwYXNzZXM9ImNvbnYiCisrCTs7CisrICAgIGVzYWMKKysKKysgICAgZm9yIHBhc3MgaW4gJHBh c3NlczsgZG8KKysgICAgICAjIFRoZSBwcmVvcGVuIHBhc3MgaW4gbGliIG1vZGUgcmV2ZXJzZXMg JGRlcGxpYnM7IHB1dCBpdCBiYWNrIGhlcmUKKysgICAgICAjIHNvIHRoYXQgLUwgY29tZXMgYmVm b3JlIGxpYnMgdGhhdCBuZWVkIGl0IGZvciBpbnN0YW5jZS4uLgorKyAgICAgIGlmIHRlc3QgIiRs aW5rbW9kZSwkcGFzcyIgPSAibGliLGxpbmsiOyB0aGVuCisrCSMjIEZJWE1FOiBGaW5kIHRoZSBw bGFjZSB3aGVyZSB0aGUgbGlzdCBpcyByZWJ1aWx0IGluIHRoZSB3cm9uZworKwkjIyAgICAgICAg b3JkZXIsIGFuZCBmaXggaXQgdGhlcmUgcHJvcGVybHkKKysgICAgICAgIHRtcF9kZXBsaWJzPQor Kwlmb3IgZGVwbGliIGluICRkZXBsaWJzOyBkbworKwkgIHRtcF9kZXBsaWJzPSIkZGVwbGliICR0 bXBfZGVwbGlicyIKKysJZG9uZQorKwlkZXBsaWJzPSIkdG1wX2RlcGxpYnMiCisrICAgICAgZmkK KysKKysgICAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gImxpYixsaW5rIiB8fAorKwkg dGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLHNjYW4iOyB0aGVuCisrCWxpYnM9IiRkZXBs aWJzIgorKwlkZXBsaWJzPQorKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9 IHByb2c7IHRoZW4KKysJY2FzZSAkcGFzcyBpbgorKwlkbG9wZW4pIGxpYnM9IiRkbGZpbGVzIiA7 OworKwlkbHByZW9wZW4pIGxpYnM9IiRkbHByZWZpbGVzIiA7OworKwlsaW5rKSBsaWJzPSIkZGVw bGlicyAlREVQTElCUyUgJGRlcGVuZGVuY3lfbGlicyIgOzsKKysJZXNhYworKyAgICAgIGZpCisr ICAgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsZGxwcmVvcGVuIjsgdGhlbgor KwkjIENvbGxlY3QgYW5kIGZvcndhcmQgZGVwbGlicyBvZiBwcmVvcGVuZWQgbGlidG9vbCBsaWJz CisrCWZvciBsaWIgaW4gJGRscHJlZmlsZXM7IGRvCisrCSAgIyBJZ25vcmUgbm9uLWxpYnRvb2wt bGlicworKwkgIGRlcGVuZGVuY3lfbGlicz0KKysJICBjYXNlICRsaWIgaW4KKysJICAqLmxhKQlm dW5jX3NvdXJjZSAiJGxpYiIgOzsKKysJICBlc2FjCisrCisrCSAgIyBDb2xsZWN0IHByZW9wZW5l ZCBsaWJ0b29sIGRlcGxpYnMsIGV4Y2VwdCBhbnkgdGhpcyBsaWJyYXJ5CisrCSAgIyBoYXMgZGVj bGFyZWQgYXMgd2VhayBsaWJzCisrCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBk bworKwkgICAgZnVuY19iYXNlbmFtZSAiJGRlcGxpYiIKKysgICAgICAgICAgICBkZXBsaWJfYmFz ZT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKKysJICAgIGNhc2UgIiAkd2Vha19saWJzICIgaW4KKysJ ICAgICoiICRkZXBsaWJfYmFzZSAiKikgOzsKKysJICAgICopIGRlcGxpYnM9IiRkZXBsaWJzICRk ZXBsaWIiIDs7CisrCSAgICBlc2FjCisrCSAgZG9uZQorKwlkb25lCisrCWxpYnM9IiRkbHByZWZp bGVzIgorKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxvcGVuOyB0aGVuCisr CSMgQ29sbGVjdCBkbHByZW9wZW5lZCBsaWJyYXJpZXMKKysJc2F2ZV9kZXBsaWJzPSIkZGVwbGli cyIKKysJZGVwbGlicz0KKysgICAgICBmaQorKworKyAgICAgIGZvciBkZXBsaWIgaW4gJGxpYnM7 IGRvCisrCWxpYj0KKysJZm91bmQ9bm8KKysJY2FzZSAkZGVwbGliIGluCisrCS1tdHwtbXRocmVh ZHN8LWt0aHJlYWR8LUt0aHJlYWR8LXB0aHJlYWR8LXB0aHJlYWRzfC0tdGhyZWFkLXNhZmV8LXRo cmVhZHMpCisrCSAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVu CisrCSAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKKysJICAg IGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCisrCSAgZWxzZQor KwkgICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkZGVwbGliIgorKwkgICAgaWYg dGVzdCAiJGxpbmttb2RlIiA9IGxpYiA7IHRoZW4KKysJCWNhc2UgIiRuZXdfaW5oZXJpdGVkX2xp bmtlcl9mbGFncyAiIGluCisrCQkgICAgKiIgJGRlcGxpYiAiKikgOzsKKysJCSAgICAqICkgbmV3 X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkZGVw bGliIiA7OworKwkJZXNhYworKwkgICAgZmkKKysJICBmaQorKwkgIGNvbnRpbnVlCisrCSAgOzsK KysJLWwqKQorKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgIT0gbGliICYmIHRlc3QgIiRsaW5rbW9k ZSIgIT0gcHJvZzsgdGhlbgorKwkgICAgZnVuY193YXJuaW5nICJcYC1sJyBpcyBpZ25vcmVkIGZv ciBhcmNoaXZlcy9vYmplY3RzIgorKwkgICAgY29udGludWUKKysJICBmaQorKwkgIGZ1bmNfc3Ry aXBuYW1lICctbCcgJycgIiRkZXBsaWIiCisrCSAgbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0 CisrCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgorKwkgICAgc2VhcmNoZGlycz0i JG5ld2xpYl9zZWFyY2hfcGF0aCAkbGliX3NlYXJjaF9wYXRoICRjb21waWxlcl9saWJfc2VhcmNo X2RpcnMgJHN5c19saWJfc2VhcmNoX3BhdGggJHNobGliX3NlYXJjaF9wYXRoIgorKwkgIGVsc2UK KysJICAgIHNlYXJjaGRpcnM9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGxpYl9zZWFyY2hfcGF0aCAk c3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGgiCisrCSAgZmkKKysJICBmb3Ig c2VhcmNoZGlyIGluICRzZWFyY2hkaXJzOyBkbworKwkgICAgZm9yIHNlYXJjaF9leHQgaW4gLmxh ICRzdGRfc2hyZXh0IC5zbyAuYTsgZG8KKysJICAgICAgIyBTZWFyY2ggdGhlIGxpYnRvb2wgbGli cmFyeQorKwkgICAgICBsaWI9IiRzZWFyY2hkaXIvbGliJHtuYW1lfSR7c2VhcmNoX2V4dH0iCisr CSAgICAgIGlmIHRlc3QgLWYgIiRsaWIiOyB0aGVuCisrCQlpZiB0ZXN0ICIkc2VhcmNoX2V4dCIg PSAiLmxhIjsgdGhlbgorKwkJICBmb3VuZD15ZXMKKysJCWVsc2UKKysJCSAgZm91bmQ9bm8KKysJ CWZpCisrCQlicmVhayAyCisrCSAgICAgIGZpCisrCSAgICBkb25lCisrCSAgZG9uZQorKwkgIGlm IHRlc3QgIiRmb3VuZCIgIT0geWVzOyB0aGVuCisrCSAgICAjIGRlcGxpYiBkb2Vzbid0IHNlZW0g dG8gYmUgYSBsaWJ0b29sIGxpYnJhcnkKKysJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIg PSAicHJvZyxsaW5rIjsgdGhlbgorKwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNv bXBpbGVfZGVwbGlicyIKKysJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxp emVfZGVwbGlicyIKKysJICAgIGVsc2UKKysJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGli cyIKKysJICAgICAgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiAmJiBuZXdkZXBlbmRlbmN5X2xpYnM9 IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKKysJICAgIGZpCisrCSAgICBjb250aW51ZQor KwkgIGVsc2UgIyBkZXBsaWIgaXMgYSBsaWJ0b29sIGxpYnJhcnkKKysJICAgICMgSWYgJGFsbG93 X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyAmJiAkZGVwbGliIGlzIGEgc3RkbGli LAorKwkgICAgIyBXZSBuZWVkIHRvIGRvIHNvbWUgc3BlY2lhbCB0aGluZ3MgaGVyZSwgYW5kIG5v dCBsYXRlci4KKysJICAgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGlj X3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KKysJICAgICAgY2FzZSAiICRwcmVkZXBzICRwb3N0 ZGVwcyAiIGluCisrCSAgICAgICoiICRkZXBsaWIgIiopCisrCQlpZiBmdW5jX2xhbGliX3AgIiRs aWIiOyB0aGVuCisrCQkgIGxpYnJhcnlfbmFtZXM9CisrCQkgIG9sZF9saWJyYXJ5PQorKwkJICBm dW5jX3NvdXJjZSAiJGxpYiIKKysJCSAgZm9yIGwgaW4gJG9sZF9saWJyYXJ5ICRsaWJyYXJ5X25h bWVzOyBkbworKwkJICAgIGxsPSIkbCIKKysJCSAgZG9uZQorKwkJICBpZiB0ZXN0ICJYJGxsIiA9 ICJYJG9sZF9saWJyYXJ5IiA7IHRoZW4gIyBvbmx5IHN0YXRpYyB2ZXJzaW9uIGF2YWlsYWJsZQor KwkJICAgIGZvdW5kPW5vCisrCQkgICAgZnVuY19kaXJuYW1lICIkbGliIiAiIiAiLiIKKysJCSAg ICBsYWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisrCQkgICAgbGliPSRsYWRpci8kb2xkX2xp YnJhcnkKKysJCSAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRo ZW4KKysJCSAgICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgor KwkJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKysJ CSAgICBlbHNlCisrCQkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKwkJICAgICAg dGVzdCAiJGxpbmttb2RlIiA9IGxpYiAmJiBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5l d2RlcGVuZGVuY3lfbGlicyIKKysJCSAgICBmaQorKwkJICAgIGNvbnRpbnVlCisrCQkgIGZpCisr CQlmaQorKwkJOzsKKysJICAgICAgKikgOzsKKysJICAgICAgZXNhYworKwkgICAgZmkKKysJICBm aQorKwkgIDs7ICMgLWwKKysJKi5sdGZyYW1ld29yaykKKysJICBpZiB0ZXN0ICIkbGlua21vZGUs JHBhc3MiID0gInByb2csbGluayI7IHRoZW4KKysJICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxp YiAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmlu YWxpemVfZGVwbGlicyIKKysJICBlbHNlCisrCSAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJz IgorKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiA7IHRoZW4KKysJCWNhc2UgIiRuZXdf aW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCisrCQkgICAgKiIgJGRlcGxpYiAiKikgOzsKKysJ CSAgICAqICkgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9IiRuZXdfaW5oZXJpdGVkX2xpbmtl cl9mbGFncyAkZGVwbGliIiA7OworKwkJZXNhYworKwkgICAgZmkKKysJICBmaQorKwkgIGNvbnRp bnVlCisrCSAgOzsKKysJLUwqKQorKwkgIGNhc2UgJGxpbmttb2RlIGluCisrCSAgbGliKQorKwkg ICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICAgIHRlc3QgIiRwYXNzIiA9IGNvbnYg JiYgY29udGludWUKKysJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5k ZW5jeV9saWJzIgorKwkgICAgZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGRlcGxpYiIKKysJICAg IG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkZnVuY19zdHJpcG5hbWVf cmVzdWx0IgorKwkgICAgOzsKKysJICBwcm9nKQorKwkgICAgaWYgdGVzdCAiJHBhc3MiID0gY29u djsgdGhlbgorKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKwkgICAgICBjb250 aW51ZQorKwkgICAgZmkKKysJICAgIGlmIHRlc3QgIiRwYXNzIiA9IHNjYW47IHRoZW4KKysJICAg ICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICAgIGVsc2UKKysJICAgICAgY29tcGls ZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCisrCSAgICAgIGZpbmFsaXplX2Rl cGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCisrCSAgICBmaQorKwkgICAgZnVuY19z dHJpcG5hbWUgJy1MJyAnJyAiJGRlcGxpYiIKKysJICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5l d2xpYl9zZWFyY2hfcGF0aCAkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorKwkgICAgOzsKKysJICAq KQorKwkgICAgZnVuY193YXJuaW5nICJcYC1MJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcy9vYmpl Y3RzIgorKwkgICAgOzsKKysJICBlc2FjICMgbGlua21vZGUKKysJICBjb250aW51ZQorKwkgIDs7 ICMgLUwKKysJLVIqKQorKwkgIGlmIHRlc3QgIiRwYXNzIiA9IGxpbms7IHRoZW4KKysJICAgIGZ1 bmNfc3RyaXBuYW1lICctUicgJycgIiRkZXBsaWIiCisrCSAgICBkaXI9JGZ1bmNfc3RyaXBuYW1l X3Jlc3VsdAorKwkgICAgIyBNYWtlIHN1cmUgdGhlIHhycGF0aCBjb250YWlucyBvbmx5IHVuaXF1 ZSBkaXJlY3Rvcmllcy4KKysJICAgIGNhc2UgIiR4cnBhdGggIiBpbgorKwkgICAgKiIgJGRpciAi KikgOzsKKysJICAgICopIHhycGF0aD0iJHhycGF0aCAkZGlyIiA7OworKwkgICAgZXNhYworKwkg IGZpCisrCSAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICBjb250aW51ZQorKwkgIDs7 CisrCSoubGEpIGxpYj0iJGRlcGxpYiIgOzsKKysJKi4kbGliZXh0KQorKwkgIGlmIHRlc3QgIiRw YXNzIiA9IGNvbnY7IHRoZW4KKysJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAg ICBjb250aW51ZQorKwkgIGZpCisrCSAgY2FzZSAkbGlua21vZGUgaW4KKysJICBsaWIpCisrCSAg ICAjIExpbmtpbmcgY29udmVuaWVuY2UgbW9kdWxlcyBpbnRvIHNoYXJlZCBsaWJyYXJpZXMgaXMg YWxsb3dlZCwKKysJICAgICMgYnV0IGxpbmtpbmcgb3RoZXIgc3RhdGljIGxpYnJhcmllcyBpcyBu b24tcG9ydGFibGUuCisrCSAgICBjYXNlICIgJGRscHJlY29udmVuaWVuY2VsaWJzICIgaW4KKysJ ICAgICoiICRkZXBsaWIgIiopIDs7CisrCSAgICAqKQorKwkgICAgICB2YWxpZF9hX2xpYj1ubwor KwkgICAgICBjYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgorKwkJbWF0Y2hfcGF0dGVybiop CisrCQkgIHNldCBkdW1teSAkZGVwbGlic19jaGVja19tZXRob2Q7IHNoaWZ0CisrCQkgIG1hdGNo X3BhdHRlcm5fcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiJDEgXCguKlwp ImAKKysJCSAgaWYgZXZhbCAiXCRFQ0hPIFwiJGRlcGxpYlwiIiAyPi9kZXYvbnVsbCB8ICRTRUQg MTBxIFwKKysJCSAgICB8ICRFR1JFUCAiJG1hdGNoX3BhdHRlcm5fcmVnZXgiID4gL2Rldi9udWxs OyB0aGVuCisrCQkgICAgdmFsaWRfYV9saWI9eWVzCisrCQkgIGZpCisrCQk7OworKwkJcGFzc19h bGwpCisrCQkgIHZhbGlkX2FfbGliPXllcworKwkJOzsKKysJICAgICAgZXNhYworKwkgICAgICBp ZiB0ZXN0ICIkdmFsaWRfYV9saWIiICE9IHllczsgdGhlbgorKwkJZWNobworKwkJJEVDSE8gIioq KiBXYXJuaW5nOiBUcnlpbmcgdG8gbGluayB3aXRoIHN0YXRpYyBsaWIgYXJjaGl2ZSAkZGVwbGli LiIKKysJCWVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJh cnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCisrCQllY2hvICIqKiogeW91IGxpbmsgdG8g dGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgorKwkJ ZWNobyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90 IGFwcGVhciB0byBoYXZlIgorKwkJZWNobyAiKioqIGJlY2F1c2UgdGhlIGZpbGUgZXh0ZW5zaW9u cyAuJGxpYmV4dCBvZiB0aGlzIGFyZ3VtZW50IG1ha2VzIG1lIGJlbGlldmUiCisrCQllY2hvICIq KiogdGhhdCBpdCBpcyBqdXN0IGEgc3RhdGljIGFyY2hpdmUgdGhhdCBJIHNob3VsZCBub3QgdXNl IGhlcmUuIgorKwkgICAgICBlbHNlCisrCQllY2hvCisrCQkkRUNITyAiKioqIFdhcm5pbmc6IExp bmtpbmcgdGhlIHNoYXJlZCBsaWJyYXJ5ICRvdXRwdXQgYWdhaW5zdCB0aGUiCisrCQkkRUNITyAi KioqIHN0YXRpYyBsaWJyYXJ5ICRkZXBsaWIgaXMgbm90IHBvcnRhYmxlISIKKysJCWRlcGxpYnM9 IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgICAgIGZpCisrCSAgICAgIDs7CisrCSAgICBlc2FjCisr CSAgICBjb250aW51ZQorKwkgICAgOzsKKysJICBwcm9nKQorKwkgICAgaWYgdGVzdCAiJHBhc3Mi ICE9IGxpbms7IHRoZW4KKysJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICAg IGVsc2UKKysJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMi CisrCSAgICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCisr CSAgICBmaQorKwkgICAgY29udGludWUKKysJICAgIDs7CisrCSAgZXNhYyAjIGxpbmttb2RlCisr CSAgOzsgIyAqLiRsaWJleHQKKysJKi5sbyB8ICouJG9iamV4dCkKKysJICBpZiB0ZXN0ICIkcGFz cyIgPSBjb252OyB0aGVuCisrCSAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKwkgIGVs aWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KKysJICAgIGlmIHRlc3QgIiRwYXNzIiA9 IGRscHJlb3BlbiB8fCB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiICE9IHllcyB8fCB0ZXN0ICIkYnVp bGRfbGlidG9vbF9saWJzIiA9IG5vOyB0aGVuCisrCSAgICAgICMgSWYgdGhlcmUgaXMgbm8gZGxv cGVuIHN1cHBvcnQgb3Igd2UncmUgbGlua2luZyBzdGF0aWNhbGx5LAorKwkgICAgICAjIHdlIG5l ZWQgdG8gcHJlbG9hZC4KKysJICAgICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGRl cGxpYiIKKysJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMi CisrCSAgICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCisr CSAgICBlbHNlCisrCSAgICAgIG5ld2RsZmlsZXM9IiRuZXdkbGZpbGVzICRkZXBsaWIiCisrCSAg ICBmaQorKwkgIGZpCisrCSAgY29udGludWUKKysJICA7OworKwklREVQTElCUyUpCisrCSAgYWxs ZGVwbGlicz15ZXMKKysJICBjb250aW51ZQorKwkgIDs7CisrCWVzYWMgIyBjYXNlICRkZXBsaWIK KysKKysJaWYgdGVzdCAiJGZvdW5kIiA9IHllcyB8fCB0ZXN0IC1mICIkbGliIjsgdGhlbiA6Cisr CWVsc2UKKysJICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmluZCB0aGUgbGlicmFyeSBcYCRs aWInIG9yIHVuaGFuZGxlZCBhcmd1bWVudCBcYCRkZXBsaWInIgorKwlmaQorKworKwkjIENoZWNr IHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBhcmNoaXZlLgorKwlmdW5jX2xh bGliX3Vuc2FmZV9wICIkbGliIiBcCisrCSAgfHwgZnVuY19mYXRhbF9lcnJvciAiXGAkbGliJyBp cyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCisrCisrCWZ1bmNfZGlybmFtZSAiJGxpYiIg IiIgIi4iCisrCWxhZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysKKysJZGxuYW1lPQorKwlk bG9wZW49CisrCWRscHJlb3Blbj0KKysJbGliZGlyPQorKwlsaWJyYXJ5X25hbWVzPQorKwlvbGRf bGlicmFyeT0KKysJaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0KKysJIyBJZiB0aGUgbGlicmFyeSB3 YXMgaW5zdGFsbGVkIHdpdGggYW4gb2xkIHJlbGVhc2Ugb2YgbGlidG9vbCwKKysJIyBpdCB3aWxs IG5vdCByZWRlZmluZSB2YXJpYWJsZXMgaW5zdGFsbGVkLCBvciBzaG91bGRub3RsaW5rCisrCWlu c3RhbGxlZD15ZXMKKysJc2hvdWxkbm90bGluaz1ubworKwlhdm9pZHRlbXBycGF0aD0KKysKKysK KysJIyBSZWFkIHRoZSAubGEgZmlsZQorKwlmdW5jX3NvdXJjZSAiJGxpYiIKKysKKysJIyBDb252 ZXJ0ICItZnJhbWV3b3JrIGZvbyIgdG8gImZvby5sdGZyYW1ld29yayIKKysJaWYgdGVzdCAtbiAi JGluaGVyaXRlZF9saW5rZXJfZmxhZ3MiOyB0aGVuCisrCSAgdG1wX2luaGVyaXRlZF9saW5rZXJf ZmxhZ3M9YCRFQ0hPICIkaW5oZXJpdGVkX2xpbmtlcl9mbGFncyIgfCAkU0VEICdzLy1mcmFtZXdv cmsgXChbXiAkXSpcKS9cMS5sdGZyYW1ld29yay9nJ2AKKysJICBmb3IgdG1wX2luaGVyaXRlZF9s aW5rZXJfZmxhZyBpbiAkdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZ3M7IGRvCisrCSAgICBjYXNl ICIgJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgaW4KKysJICAgICAgKiIgJHRtcF9pbmhl cml0ZWRfbGlua2VyX2ZsYWcgIiopIDs7CisrCSAgICAgICopIG5ld19pbmhlcml0ZWRfbGlua2Vy X2ZsYWdzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJHRtcF9pbmhlcml0ZWRfbGlua2Vy X2ZsYWciOzsKKysJICAgIGVzYWMKKysJICBkb25lCisrCWZpCisrCWRlcGVuZGVuY3lfbGlicz1g JEVDSE8gIiAkZGVwZW5kZW5jeV9saWJzIiB8ICRTRUQgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdv cmslIC1mcmFtZXdvcmsgXDElZydgCisrCWlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAibGli LGxpbmsiIHx8CisrCSAgIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxzY2FuIiB8fAor KwkgICB7IHRlc3QgIiRsaW5rbW9kZSIgIT0gcHJvZyAmJiB0ZXN0ICIkbGlua21vZGUiICE9IGxp YjsgfTsgdGhlbgorKwkgIHRlc3QgLW4gIiRkbG9wZW4iICYmIGRsZmlsZXM9IiRkbGZpbGVzICRk bG9wZW4iCisrCSAgdGVzdCAtbiAiJGRscHJlb3BlbiIgJiYgZGxwcmVmaWxlcz0iJGRscHJlZmls ZXMgJGRscHJlb3BlbiIKKysJZmkKKysKKysJaWYgdGVzdCAiJHBhc3MiID0gY29udjsgdGhlbgor KwkgICMgT25seSBjaGVjayBmb3IgY29udmVuaWVuY2UgbGlicmFyaWVzCisrCSAgZGVwbGlicz0i JGxpYiAkZGVwbGlicyIKKysJICBpZiB0ZXN0IC16ICIkbGliZGlyIjsgdGhlbgorKwkgICAgaWYg dGVzdCAteiAiJG9sZF9saWJyYXJ5IjsgdGhlbgorKwkgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJj YW5ub3QgZmluZCBuYW1lIG9mIGxpbmsgbGlicmFyeSBmb3IgXGAkbGliJyIKKysJICAgIGZpCisr CSAgICAjIEl0IGlzIGEgbGlidG9vbCBjb252ZW5pZW5jZSBsaWJyYXJ5LCBzbyBhZGQgaW4gaXRz IG9iamVjdHMuCisrCSAgICBjb252ZW5pZW5jZT0iJGNvbnZlbmllbmNlICRsYWRpci8kb2JqZGly LyRvbGRfbGlicmFyeSIKKysJICAgIG9sZF9jb252ZW5pZW5jZT0iJG9sZF9jb252ZW5pZW5jZSAk bGFkaXIvJG9iamRpci8kb2xkX2xpYnJhcnkiCisrCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUiICE9 IHByb2cgJiYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWI7IHRoZW4KKysJICAgIGZ1bmNfZmF0YWxf ZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgY29udmVuaWVuY2UgbGlicmFyeSIKKysJICBmaQorKwkg IHRtcF9saWJzPQorKwkgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKysJICAg IGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgICBpZiAkb3B0X2R1cGxpY2F0ZV9kZXBz IDsgdGhlbgorKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgorKwkgICAgICAqIiAkZGVwbGli ICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7CisrCSAgICAg IGVzYWMKKysJICAgIGZpCisrCSAgICB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiCisrCSAg ZG9uZQorKwkgIGNvbnRpbnVlCisrCWZpICMgJHBhc3MgPSBjb252CisrCisrCisrCSMgR2V0IHRo ZSBuYW1lIG9mIHRoZSBsaWJyYXJ5IHdlIGxpbmsgYWdhaW5zdC4KKysJbGlua2xpYj0KKysJZm9y IGwgaW4gJG9sZF9saWJyYXJ5ICRsaWJyYXJ5X25hbWVzOyBkbworKwkgIGxpbmtsaWI9IiRsIgor Kwlkb25lCisrCWlmIHRlc3QgLXogIiRsaW5rbGliIjsgdGhlbgorKwkgIGZ1bmNfZmF0YWxfZXJy b3IgImNhbm5vdCBmaW5kIG5hbWUgb2YgbGluayBsaWJyYXJ5IGZvciBcYCRsaWInIgorKwlmaQor KworKwkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRsb3Blbi4KKysJaWYgdGVz dCAiJHBhc3MiID0gZGxvcGVuOyB0aGVuCisrCSAgaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4K KysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCAtZGxvcGVuIGEgY29udmVuaWVuY2UgbGli cmFyeTogXGAkbGliJyIKKysJICBmaQorKwkgIGlmIHRlc3QgLXogIiRkbG5hbWUiIHx8CisrCSAg ICAgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiAhPSB5ZXMgfHwKKysJICAgICB0ZXN0ICIkYnVpbGRf bGlidG9vbF9saWJzIiA9IG5vOyB0aGVuCisrCSAgICAjIElmIHRoZXJlIGlzIG5vIGRsbmFtZSwg bm8gZGxvcGVuIHN1cHBvcnQgb3Igd2UncmUgbGlua2luZworKwkgICAgIyBzdGF0aWNhbGx5LCB3 ZSBuZWVkIHRvIHByZWxvYWQuICBXZSBhbHNvIG5lZWQgdG8gcHJlbG9hZCBhbnkKKysJICAgICMg ZGVwZW5kZW50IGxpYnJhcmllcyBzbyBsaWJsdGRsJ3MgZGVwbGliIHByZWxvYWRlciBkb2Vzbid0 CisrCSAgICAjIGJvbWIgb3V0IGluIHRoZSBsb2FkIGRlcGxpYnMgcGhhc2UuCisrCSAgICBkbHBy ZWZpbGVzPSIkZGxwcmVmaWxlcyAkbGliICRkZXBlbmRlbmN5X2xpYnMiCisrCSAgZWxzZQorKwkg ICAgbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGxpYiIKKysJICBmaQorKwkgIGNvbnRpbnVlCisr CWZpICMgJHBhc3MgPSBkbG9wZW4KKysKKysJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCisr CWNhc2UgJGxhZGlyIGluCisrCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgYWJzX2xhZGlyPSIk bGFkaXIiIDs7CisrCSopCisrCSAgYWJzX2xhZGlyPWBjZCAiJGxhZGlyIiAmJiBwd2RgCisrCSAg aWYgdGVzdCAteiAiJGFic19sYWRpciI7IHRoZW4KKysJICAgIGZ1bmNfd2FybmluZyAiY2Fubm90 IGRldGVybWluZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBvZiBcYCRsYWRpciciCisrCSAgICBm dW5jX3dhcm5pbmcgInBhc3NpbmcgaXQgbGl0ZXJhbGx5IHRvIHRoZSBsaW5rZXIsIGFsdGhvdWdo IGl0IG1pZ2h0IGZhaWwiCisrCSAgICBhYnNfbGFkaXI9IiRsYWRpciIKKysJICBmaQorKwkgIDs7 CisrCWVzYWMKKysJZnVuY19iYXNlbmFtZSAiJGxpYiIKKysJbGFuYW1lPSIkZnVuY19iYXNlbmFt ZV9yZXN1bHQiCisrCisrCSMgRmluZCB0aGUgcmVsZXZhbnQgb2JqZWN0IGRpcmVjdG9yeSBhbmQg bGlicmFyeSBuYW1lLgorKwlpZiB0ZXN0ICJYJGluc3RhbGxlZCIgPSBYeWVzOyB0aGVuCisrCSAg aWYgdGVzdCAhIC1mICIkbGliZGlyLyRsaW5rbGliIiAmJiB0ZXN0IC1mICIkYWJzX2xhZGlyLyRs aW5rbGliIjsgdGhlbgorKwkgICAgZnVuY193YXJuaW5nICJsaWJyYXJ5IFxgJGxpYicgd2FzIG1v dmVkLiIKKysJICAgIGRpcj0iJGxhZGlyIgorKwkgICAgYWJzZGlyPSIkYWJzX2xhZGlyIgorKwkg ICAgbGliZGlyPSIkYWJzX2xhZGlyIgorKwkgIGVsc2UKKysJICAgIGRpcj0iJGxpYmRpciIKKysJ ICAgIGFic2Rpcj0iJGxpYmRpciIKKysJICBmaQorKwkgIHRlc3QgIlgkaGFyZGNvZGVfYXV0b21h dGljIiA9IFh5ZXMgJiYgYXZvaWR0ZW1wcnBhdGg9eWVzCisrCWVsc2UKKysJICBpZiB0ZXN0ICEg LWYgIiRsYWRpci8kb2JqZGlyLyRsaW5rbGliIiAmJiB0ZXN0IC1mICIkYWJzX2xhZGlyLyRsaW5r bGliIjsgdGhlbgorKwkgICAgZGlyPSIkbGFkaXIiCisrCSAgICBhYnNkaXI9IiRhYnNfbGFkaXIi CisrCSAgICAjIFJlbW92ZSB0aGlzIHNlYXJjaCBwYXRoIGxhdGVyCisrCSAgICBub3RpbnN0X3Bh dGg9IiRub3RpbnN0X3BhdGggJGFic19sYWRpciIKKysJICBlbHNlCisrCSAgICBkaXI9IiRsYWRp ci8kb2JqZGlyIgorKwkgICAgYWJzZGlyPSIkYWJzX2xhZGlyLyRvYmpkaXIiCisrCSAgICAjIFJl bW92ZSB0aGlzIHNlYXJjaCBwYXRoIGxhdGVyCisrCSAgICBub3RpbnN0X3BhdGg9IiRub3RpbnN0 X3BhdGggJGFic19sYWRpciIKKysJICBmaQorKwlmaSAjICRpbnN0YWxsZWQgPSB5ZXMKKysJZnVu Y19zdHJpcG5hbWUgJ2xpYicgJy5sYScgIiRsYW5hbWUiCisrCW5hbWU9JGZ1bmNfc3RyaXBuYW1l X3Jlc3VsdAorKworKwkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRscHJlb3Bl bi4KKysJaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0aGVuCisrCSAgaWYgdGVzdCAteiAi JGxpYmRpciIgJiYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KKysJICAgIGZ1bmNfZmF0 YWxfZXJyb3IgIm9ubHkgbGlicmFyaWVzIG1heSAtZGxwcmVvcGVuIGEgY29udmVuaWVuY2UgbGli cmFyeTogXGAkbGliJyIKKysJICBmaQorKwkgICMgUHJlZmVyIHVzaW5nIGEgc3RhdGljIGxpYnJh cnkgKHNvIHRoYXQgbm8gc2lsbHkgX0RZTkFNSUMgc3ltYm9scworKwkgICMgYXJlIHJlcXVpcmVk IHRvIGxpbmspLgorKwkgIGlmIHRlc3QgLW4gIiRvbGRfbGlicmFyeSI7IHRoZW4KKysJICAgIG5l d2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRkaXIvJG9sZF9saWJyYXJ5IgorKwkgICAgIyBL ZWVwIGEgbGlzdCBvZiBwcmVvcGVuZWQgY29udmVuaWVuY2UgbGlicmFyaWVzIHRvIGNoZWNrCisr CSAgICAjIHRoYXQgdGhleSBhcmUgYmVpbmcgdXNlZCBjb3JyZWN0bHkgaW4gdGhlIGxpbmsgcGFz cy4KKysJICAgIHRlc3QgLXogIiRsaWJkaXIiICYmIFwKKysJCWRscHJlY29udmVuaWVuY2VsaWJz PSIkZGxwcmVjb252ZW5pZW5jZWxpYnMgJGRpci8kb2xkX2xpYnJhcnkiCisrCSAgIyBPdGhlcndp c2UsIHVzZSB0aGUgZGxuYW1lLCBzbyB0aGF0IGx0X2Rsb3BlbiBmaW5kcyBpdC4KKysJICBlbGlm IHRlc3QgLW4gIiRkbG5hbWUiOyB0aGVuCisrCSAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVm aWxlcyAkZGlyLyRkbG5hbWUiCisrCSAgZWxzZQorKwkgICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2Rs cHJlZmlsZXMgJGRpci8kbGlua2xpYiIKKysJICBmaQorKwlmaSAjICRwYXNzID0gZGxwcmVvcGVu CisrCisrCWlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCisrCSAgIyBMaW5rIHRoZSBjb252ZW5p ZW5jZSBsaWJyYXJ5CisrCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgorKwkgICAg ZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGRlcGxpYnMiCisrCSAgZWxpZiB0ZXN0ICIkbGlu a21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KKysJICAgIGNvbXBpbGVfZGVwbGlicz0i JGRpci8kb2xkX2xpYnJhcnkgJGNvbXBpbGVfZGVwbGlicyIKKysJICAgIGZpbmFsaXplX2RlcGxp YnM9IiRkaXIvJG9sZF9saWJyYXJ5ICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgIGVsc2UKKysJICAg IGRlcGxpYnM9IiRsaWIgJGRlcGxpYnMiICMgdXNlZCBmb3IgcHJvZyxzY2FuIHBhc3MKKysJICBm aQorKwkgIGNvbnRpbnVlCisrCWZpCisrCisrCisrCWlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9n ICYmIHRlc3QgIiRwYXNzIiAhPSBsaW5rOyB0aGVuCisrCSAgbmV3bGliX3NlYXJjaF9wYXRoPSIk bmV3bGliX3NlYXJjaF9wYXRoICRsYWRpciIKKysJICBkZXBsaWJzPSIkbGliICRkZXBsaWJzIgor KworKwkgIGxpbmthbGxkZXBsaWJzPW5vCisrCSAgaWYgdGVzdCAiJGxpbmtfYWxsX2RlcGxpYnMi ICE9IG5vIHx8IHRlc3QgLXogIiRsaWJyYXJ5X25hbWVzIiB8fAorKwkgICAgIHRlc3QgIiRidWls ZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KKysJICAgIGxpbmthbGxkZXBsaWJzPXllcworKwkg IGZpCisrCisrCSAgdG1wX2xpYnM9CisrCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJz OyBkbworKwkgICAgY2FzZSAkZGVwbGliIGluCisrCSAgICAtTCopIGZ1bmNfc3RyaXBuYW1lICct TCcgJycgIiRkZXBsaWIiCisrCSAgICAgICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9z ZWFyY2hfcGF0aCAkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorKwkJIDs7CisrCSAgICBlc2FjCisr CSAgICAjIE5lZWQgdG8gbGluayBhZ2FpbnN0IGFsbCBkZXBlbmRlbmN5X2xpYnM/CisrCSAgICBp ZiB0ZXN0ICIkbGlua2FsbGRlcGxpYnMiID0geWVzOyB0aGVuCisrCSAgICAgIGRlcGxpYnM9IiRk ZXBsaWIgJGRlcGxpYnMiCisrCSAgICBlbHNlCisrCSAgICAgICMgTmVlZCB0byBoYXJkY29kZSBz aGFyZWQgbGlicmFyeSBwYXRocworKwkgICAgICAjIG9yL2FuZCBsaW5rIGFnYWluc3Qgc3RhdGlj IGxpYnJhcmllcworKwkgICAgICBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVu ZGVuY3lfbGlicyIKKysJICAgIGZpCisrCSAgICBpZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhl bgorKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgorKwkgICAgICAqIiAkZGVwbGliICIqKSBz cGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7CisrCSAgICAgIGVzYWMK KysJICAgIGZpCisrCSAgICB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiCisrCSAgZG9uZSAj IGZvciBkZXBsaWIKKysJICBjb250aW51ZQorKwlmaSAjICRsaW5rbW9kZSA9IHByb2cuLi4KKysK KysJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCisrCSAgaWYg dGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYmCisrCSAgICAgeyB7IHRlc3QgIiRwcmVmZXJfc3Rh dGljX2xpYnMiID0gbm8gfHwKKysJICAgICAgICAgdGVzdCAiJHByZWZlcl9zdGF0aWNfbGlicywk aW5zdGFsbGVkIiA9ICJidWlsdCx5ZXMiOyB9IHx8CisrCSAgICAgICB0ZXN0IC16ICIkb2xkX2xp YnJhcnkiOyB9OyB0aGVuCisrCSAgICAjIFdlIG5lZWQgdG8gaGFyZGNvZGUgdGhlIGxpYnJhcnkg cGF0aAorKwkgICAgaWYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiICYmIHRlc3QgLXogIiRhdm9p ZHRlbXBycGF0aCIgOyB0aGVuCisrCSAgICAgICMgTWFrZSBzdXJlIHRoZSBycGF0aCBjb250YWlu cyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KKysJICAgICAgY2FzZSAiJHRlbXBfcnBhdGg6IiBp bgorKwkgICAgICAqIiRhYnNkaXI6IiopIDs7CisrCSAgICAgICopIHRlbXBfcnBhdGg9IiR0ZW1w X3JwYXRoJGFic2RpcjoiIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCisrCSAgICAjIEhh cmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGguCisrCSAgICAjIFNraXAgZGlyZWN0b3JpZXMgdGhhdCBh cmUgaW4gdGhlIHN5c3RlbSBkZWZhdWx0IHJ1bi10aW1lCisrCSAgICAjIHNlYXJjaCBwYXRoLgor KwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgorKwkgICAgKiIgJGFic2Rp ciAiKikgOzsKKysJICAgICopCisrCSAgICAgIGNhc2UgIiRjb21waWxlX3JwYXRoICIgaW4KKysJ ICAgICAgKiIgJGFic2RpciAiKikgOzsKKysJICAgICAgKikgY29tcGlsZV9ycGF0aD0iJGNvbXBp bGVfcnBhdGggJGFic2RpciIKKysJICAgICAgZXNhYworKwkgICAgICA7OworKwkgICAgZXNhYwor KwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgorKwkgICAgKiIgJGxpYmRp ciAiKikgOzsKKysJICAgICopCisrCSAgICAgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCisr CSAgICAgICoiICRsaWJkaXIgIiopIDs7CisrCSAgICAgICopIGZpbmFsaXplX3JwYXRoPSIkZmlu YWxpemVfcnBhdGggJGxpYmRpciIKKysJICAgICAgZXNhYworKwkgICAgICA7OworKwkgICAgZXNh YworKwkgIGZpICMgJGxpbmttb2RlLCRwYXNzID0gcHJvZyxsaW5rLi4uCisrCisrCSAgaWYgdGVz dCAiJGFsbGRlcGxpYnMiID0geWVzICYmCisrCSAgICAgeyB0ZXN0ICIkZGVwbGlic19jaGVja19t ZXRob2QiID0gcGFzc19hbGwgfHwKKysJICAgICAgIHsgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGli cyIgPSB5ZXMgJiYKKysJCSB0ZXN0IC1uICIkbGlicmFyeV9uYW1lcyI7IH07IH07IHRoZW4KKysJ ICAgICMgV2Ugb25seSBuZWVkIHRvIHNlYXJjaCBmb3Igc3RhdGljIGxpYnJhcmllcworKwkgICAg Y29udGludWUKKysJICBmaQorKwlmaQorKworKwlsaW5rX3N0YXRpYz1ubyAjIFdoZXRoZXIgdGhl IGRlcGxpYiB3aWxsIGJlIGxpbmtlZCBzdGF0aWNhbGx5CisrCXVzZV9zdGF0aWNfbGlicz0kcHJl ZmVyX3N0YXRpY19saWJzCisrCWlmIHRlc3QgIiR1c2Vfc3RhdGljX2xpYnMiID0gYnVpbHQgJiYg dGVzdCAiJGluc3RhbGxlZCIgPSB5ZXM7IHRoZW4KKysJICB1c2Vfc3RhdGljX2xpYnM9bm8KKysJ ZmkKKysJaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYmCisrCSAgIHsgdGVzdCAiJHVzZV9z dGF0aWNfbGlicyIgPSBubyB8fCB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiOyB9OyB0aGVuCisrCSAg Y2FzZSAkaG9zdCBpbgorKwkgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyopCisrCSAgICAg ICMgTm8gcG9pbnQgaW4gcmVsaW5raW5nIERMTHMgYmVjYXVzZSBwYXRocyBhcmUgbm90IGVuY29k ZWQKKysJICAgICAgbm90aW5zdF9kZXBsaWJzPSIkbm90aW5zdF9kZXBsaWJzICRsaWIiCisrCSAg ICAgIG5lZWRfcmVsaW5rPW5vCisrCSAgICA7OworKwkgICopCisrCSAgICBpZiB0ZXN0ICIkaW5z dGFsbGVkIiA9IG5vOyB0aGVuCisrCSAgICAgIG5vdGluc3RfZGVwbGlicz0iJG5vdGluc3RfZGVw bGlicyAkbGliIgorKwkgICAgICBuZWVkX3JlbGluaz15ZXMKKysJICAgIGZpCisrCSAgICA7Owor KwkgIGVzYWMKKysJICAjIFRoaXMgaXMgYSBzaGFyZWQgbGlicmFyeQorKworKwkgICMgV2FybiBh Ym91dCBwb3J0YWJpbGl0eSwgY2FuJ3QgbGluayBhZ2FpbnN0IC1tb2R1bGUncyBvbiBzb21lCisr CSAgIyBzeXN0ZW1zIChkYXJ3aW4pLiAgRG9uJ3QgYmxlYXQgYWJvdXQgZGxvcGVuZWQgbW9kdWxl cyB0aG91Z2ghCisrCSAgZGxvcGVubW9kdWxlPSIiCisrCSAgZm9yIGRscHJlbW9kdWxldGVzdCBp biAkZGxwcmVmaWxlczsgZG8KKysJICAgIGlmIHRlc3QgIlgkZGxwcmVtb2R1bGV0ZXN0IiA9ICJY JGxpYiI7IHRoZW4KKysJICAgICAgZGxvcGVubW9kdWxlPSIkZGxwcmVtb2R1bGV0ZXN0IgorKwkg ICAgICBicmVhaworKwkgICAgZmkKKysJICBkb25lCisrCSAgaWYgdGVzdCAteiAiJGRsb3Blbm1v ZHVsZSIgJiYgdGVzdCAiJHNob3VsZG5vdGxpbmsiID0geWVzICYmIHRlc3QgIiRwYXNzIiA9IGxp bms7IHRoZW4KKysJICAgIGVjaG8KKysJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0 aGVuCisrCSAgICAgICRFQ0hPICIqKiogV2FybmluZzogTGlua2luZyB0aGUgZXhlY3V0YWJsZSAk b3V0cHV0IGFnYWluc3QgdGhlIGxvYWRhYmxlIG1vZHVsZSIKKysJICAgIGVsc2UKKysJICAgICAg JEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBzaGFyZWQgbGlicmFyeSAkb3V0cHV0IGFn YWluc3QgdGhlIGxvYWRhYmxlIG1vZHVsZSIKKysJICAgIGZpCisrCSAgICAkRUNITyAiKioqICRs aW5rbGliIGlzIG5vdCBwb3J0YWJsZSEiCisrCSAgZmkKKysJICBpZiB0ZXN0ICIkbGlua21vZGUi ID0gbGliICYmCisrCSAgICAgdGVzdCAiJGhhcmRjb2RlX2ludG9fbGlicyIgPSB5ZXM7IHRoZW4K KysJICAgICMgSGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0aC4KKysJICAgICMgU2tpcCBkaXJlY3Rv cmllcyB0aGF0IGFyZSBpbiB0aGUgc3lzdGVtIGRlZmF1bHQgcnVuLXRpbWUKKysJICAgICMgc2Vh cmNoIHBhdGguCisrCSAgICBjYXNlICIgJHN5c19saWJfZGxzZWFyY2hfcGF0aCAiIGluCisrCSAg ICAqIiAkYWJzZGlyICIqKSA7OworKwkgICAgKikKKysJICAgICAgY2FzZSAiJGNvbXBpbGVfcnBh dGggIiBpbgorKwkgICAgICAqIiAkYWJzZGlyICIqKSA7OworKwkgICAgICAqKSBjb21waWxlX3Jw YXRoPSIkY29tcGlsZV9ycGF0aCAkYWJzZGlyIgorKwkgICAgICBlc2FjCisrCSAgICAgIDs7Cisr CSAgICBlc2FjCisrCSAgICBjYXNlICIgJHN5c19saWJfZGxzZWFyY2hfcGF0aCAiIGluCisrCSAg ICAqIiAkbGliZGlyICIqKSA7OworKwkgICAgKikKKysJICAgICAgY2FzZSAiJGZpbmFsaXplX3Jw YXRoICIgaW4KKysJICAgICAgKiIgJGxpYmRpciAiKikgOzsKKysJICAgICAgKikgZmluYWxpemVf cnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCAkbGliZGlyIgorKwkgICAgICBlc2FjCisrCSAgICAgIDs7 CisrCSAgICBlc2FjCisrCSAgZmkKKysKKysJICBpZiB0ZXN0IC1uICIkb2xkX2FyY2hpdmVfZnJv bV9leHBzeW1zX2NtZHMiOyB0aGVuCisrCSAgICAjIGZpZ3VyZSBvdXQgdGhlIHNvbmFtZQorKwkg ICAgc2V0IGR1bW15ICRsaWJyYXJ5X25hbWVzCisrCSAgICBzaGlmdAorKwkgICAgcmVhbG5hbWU9 IiQxIgorKwkgICAgc2hpZnQKKysJICAgIGxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGlibmFt ZV9zcGVjXCIiYAorKwkgICAgIyB1c2UgZGxuYW1lIGlmIHdlIGdvdCBpdC4gaXQncyBwZXJmZWN0 bHkgZ29vZCwgbm8/CisrCSAgICBpZiB0ZXN0IC1uICIkZGxuYW1lIjsgdGhlbgorKwkgICAgICBz b25hbWU9IiRkbG5hbWUiCisrCSAgICBlbGlmIHRlc3QgLW4gIiRzb25hbWVfc3BlYyI7IHRoZW4K KysJICAgICAgIyBibGVoIHdpbmRvd3MKKysJICAgICAgY2FzZSAkaG9zdCBpbgorKwkgICAgICAq Y3lnd2luKiB8IG1pbmd3KiB8ICpjZWdjYyopCisrCSAgICAgICAgZnVuY19hcml0aCAkY3VycmVu dCAtICRhZ2UKKysJCW1ham9yPSRmdW5jX2FyaXRoX3Jlc3VsdAorKwkJdmVyc3VmZml4PSItJG1h am9yIgorKwkJOzsKKysJICAgICAgZXNhYworKwkgICAgICBldmFsIHNvbmFtZT1cIiRzb25hbWVf c3BlY1wiCisrCSAgICBlbHNlCisrCSAgICAgIHNvbmFtZT0iJHJlYWxuYW1lIgorKwkgICAgZmkK KysKKysJICAgICMgTWFrZSBhIG5ldyBuYW1lIGZvciB0aGUgZXh0cmFjdF9leHBzeW1zX2NtZHMg dG8gdXNlCisrCSAgICBzb3Jvb3Q9IiRzb25hbWUiCisrCSAgICBmdW5jX2Jhc2VuYW1lICIkc29y b290IgorKwkgICAgc29uYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCSAgICBmdW5jX3N0 cmlwbmFtZSAnbGliJyAnLmRsbCcgIiRzb25hbWUiCisrCSAgICBuZXdsaWI9bGliaW1wLSRmdW5j X3N0cmlwbmFtZV9yZXN1bHQuYQorKworKwkgICAgIyBJZiB0aGUgbGlicmFyeSBoYXMgbm8gZXhw b3J0IGxpc3QsIHRoZW4gY3JlYXRlIG9uZSBub3cKKysJICAgIGlmIHRlc3QgLWYgIiRvdXRwdXRf b2JqZGlyLyRzb25hbWUtZGVmIjsgdGhlbiA6CisrCSAgICBlbHNlCisrCSAgICAgIGZ1bmNfdmVy Ym9zZSAiZXh0cmFjdGluZyBleHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9tIFxgJHNvbmFtZSciCisr CSAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkZXh0cmFjdF9leHBzeW1zX2NtZHMiICdleGl0ICQ/ JworKwkgICAgZmkKKysKKysJICAgICMgQ3JlYXRlICRuZXdsaWIKKysJICAgIGlmIHRlc3QgLWYg IiRvdXRwdXRfb2JqZGlyLyRuZXdsaWIiOyB0aGVuIDo7IGVsc2UKKysJICAgICAgZnVuY192ZXJi b3NlICJnZW5lcmF0aW5nIGltcG9ydCBsaWJyYXJ5IGZvciBcYCRzb25hbWUnIgorKwkgICAgICBm dW5jX2V4ZWN1dGVfY21kcyAiJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIiAnZXhpdCAk PycKKysJICAgIGZpCisrCSAgICAjIG1ha2Ugc3VyZSB0aGUgbGlicmFyeSB2YXJpYWJsZXMgYXJl IHBvaW50aW5nIHRvIHRoZSBuZXcgbGlicmFyeQorKwkgICAgZGlyPSRvdXRwdXRfb2JqZGlyCisr CSAgICBsaW5rbGliPSRuZXdsaWIKKysJICBmaSAjIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9t X2V4cHN5bXNfY21kcyIKKysKKysJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyB8fCB0ZXN0 ICIkbW9kZSIgIT0gcmVsaW5rOyB0aGVuCisrCSAgICBhZGRfc2hsaWJwYXRoPQorKwkgICAgYWRk X2Rpcj0KKysJICAgIGFkZD0KKysJICAgIGxpYl9saW5rZWQ9eWVzCisrCSAgICBjYXNlICRoYXJk Y29kZV9hY3Rpb24gaW4KKysJICAgIGltbWVkaWF0ZSB8IHVuc3VwcG9ydGVkKQorKwkgICAgICBp ZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9IG5vOyB0aGVuCisrCQlhZGQ9IiRkaXIvJGxpbmts aWIiCisrCQljYXNlICRob3N0IGluCisrCQkgICotKi1zY28zLjJ2NS4wLlswMjRdKikgYWRkX2Rp cj0iLUwkZGlyIiA7OworKwkJICAqLSotc3lzdjQqdXcyKikgYWRkX2Rpcj0iLUwkZGlyIiA7Owor KwkJICAqLSotc3lzdjVPcGVuVU5JWCogfCAqLSotc3lzdjVVbml4V2FyZTcuWzAxXS5bMTBdKiB8 IFwKKysJCSAgICAqLSotdW5peHdhcmU3KikgYWRkX2Rpcj0iLUwkZGlyIiA7OworKwkJICAqLSot ZGFyd2luKiApCisrCQkgICAgIyBpZiB0aGUgbGliIGlzIGEgKG5vbi1kbG9wZW5lZCkgbW9kdWxl IHRoZW4gd2UgY2FuIG5vdAorKwkJICAgICMgbGluayBhZ2FpbnN0IGl0LCBzb21lb25lIGlzIGln bm9yaW5nIHRoZSBlYXJsaWVyIHdhcm5pbmdzCisrCQkgICAgaWYgL3Vzci9iaW4vZmlsZSAtTCAk YWRkIDI+IC9kZXYvbnVsbCB8CisrCQkJICRHUkVQICI6IFteOl0qIGJ1bmRsZSIgPi9kZXYvbnVs bCA7IHRoZW4KKysJCSAgICAgIGlmIHRlc3QgIlgkZGxvcGVubW9kdWxlIiAhPSAiWCRsaWIiOyB0 aGVuCisrCQkJJEVDSE8gIioqKiBXYXJuaW5nOiBsaWIgJGxpbmtsaWIgaXMgYSBtb2R1bGUsIG5v dCBhIHNoYXJlZCBsaWJyYXJ5IgorKwkJCWlmIHRlc3QgLXogIiRvbGRfbGlicmFyeSIgOyB0aGVu CisrCQkJICBlY2hvCisrCQkJICBlY2hvICIqKiogQW5kIHRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBi ZSBhIHN0YXRpYyBhcmNoaXZlIGF2YWlsYWJsZSIKKysJCQkgIGVjaG8gIioqKiBUaGUgbGluayB3 aWxsIHByb2JhYmx5IGZhaWwsIHNvcnJ5IgorKwkJCWVsc2UKKysJCQkgIGFkZD0iJGRpci8kb2xk X2xpYnJhcnkiCisrCQkJZmkKKysJCSAgICAgIGVsaWYgdGVzdCAtbiAiJG9sZF9saWJyYXJ5Ijsg dGhlbgorKwkJCWFkZD0iJGRpci8kb2xkX2xpYnJhcnkiCisrCQkgICAgICBmaQorKwkJICAgIGZp CisrCQllc2FjCisrCSAgICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiID0gbm87IHRo ZW4KKysJCWNhc2UgJGhvc3QgaW4KKysJCSotKi1zdW5vcyopIGFkZF9zaGxpYnBhdGg9IiRkaXIi IDs7CisrCQllc2FjCisrCQlhZGRfZGlyPSItTCRkaXIiCisrCQlhZGQ9Ii1sJG5hbWUiCisrCSAg ICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0gbm87IHRoZW4KKysJCWFk ZF9zaGxpYnBhdGg9IiRkaXIiCisrCQlhZGQ9Ii1sJG5hbWUiCisrCSAgICAgIGVsc2UKKysJCWxp Yl9saW5rZWQ9bm8KKysJICAgICAgZmkKKysJICAgICAgOzsKKysJICAgIHJlbGluaykKKysJICAg ICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSB5ZXMgJiYKKysJICAgICAgICAgdGVzdCAi JGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSIgPSBubzsgdGhlbgorKwkJYWRkPSIkZGlyLyRsaW5r bGliIgorKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiA9IHllczsgdGhlbgor KwkJYWRkX2Rpcj0iLUwkZGlyIgorKwkJIyBUcnkgbG9va2luZyBmaXJzdCBpbiB0aGUgbG9jYXRp b24gd2UncmUgYmVpbmcgaW5zdGFsbGVkIHRvLgorKwkJaWYgdGVzdCAtbiAiJGluc3RfcHJlZml4 X2RpciI7IHRoZW4KKysJCSAgY2FzZSAkbGliZGlyIGluCisrCQkgICAgW1xcL10qKQorKwkJICAg ICAgYWRkX2Rpcj0iJGFkZF9kaXIgLUwkaW5zdF9wcmVmaXhfZGlyJGxpYmRpciIKKysJCSAgICAg IDs7CisrCQkgIGVzYWMKKysJCWZpCisrCQlhZGQ9Ii1sJG5hbWUiCisrCSAgICAgIGVsaWYgdGVz dCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0geWVzOyB0aGVuCisrCQlhZGRfc2hsaWJwYXRo PSIkZGlyIgorKwkJYWRkPSItbCRuYW1lIgorKwkgICAgICBlbHNlCisrCQlsaWJfbGlua2VkPW5v CisrCSAgICAgIGZpCisrCSAgICAgIDs7CisrCSAgICAqKSBsaWJfbGlua2VkPW5vIDs7CisrCSAg ICBlc2FjCisrCisrCSAgICBpZiB0ZXN0ICIkbGliX2xpbmtlZCIgIT0geWVzOyB0aGVuCisrCSAg ICAgIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAidW5zdXBwb3J0ZWQgaGFyZGNvZGUgcHJvcGVy dGllcyIKKysJICAgIGZpCisrCisrCSAgICBpZiB0ZXN0IC1uICIkYWRkX3NobGlicGF0aCI7IHRo ZW4KKysJICAgICAgY2FzZSA6JGNvbXBpbGVfc2hsaWJwYXRoOiBpbgorKwkgICAgICAqIjokYWRk X3NobGlicGF0aDoiKikgOzsKKysJICAgICAgKikgY29tcGlsZV9zaGxpYnBhdGg9IiRjb21waWxl X3NobGlicGF0aCRhZGRfc2hsaWJwYXRoOiIgOzsKKysJICAgICAgZXNhYworKwkgICAgZmkKKysJ ICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCisrCSAgICAgIHRlc3QgLW4gIiRh ZGRfZGlyIiAmJiBjb21waWxlX2RlcGxpYnM9IiRhZGRfZGlyICRjb21waWxlX2RlcGxpYnMiCisr CSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGNvbXBpbGVfZGVwbGlicz0iJGFkZCAkY29tcGlsZV9k ZXBsaWJzIgorKwkgICAgZWxzZQorKwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgZGVwbGli cz0iJGFkZF9kaXIgJGRlcGxpYnMiCisrCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGRlcGxpYnM9 IiRhZGQgJGRlcGxpYnMiCisrCSAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiICE9IHll cyAmJgorKwkJIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiAhPSB5ZXMgJiYKKysJCSB0ZXN0ICIk aGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgPSB5ZXM7IHRoZW4KKysJCWNhc2UgOiRmaW5hbGl6ZV9z aGxpYnBhdGg6IGluCisrCQkqIjokbGliZGlyOiIqKSA7OworKwkJKikgZmluYWxpemVfc2hsaWJw YXRoPSIkZmluYWxpemVfc2hsaWJwYXRoJGxpYmRpcjoiIDs7CisrCQllc2FjCisrCSAgICAgIGZp CisrCSAgICBmaQorKwkgIGZpCisrCisrCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgfHwg dGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCisrCSAgICBhZGRfc2hsaWJwYXRoPQorKwkgICAg YWRkX2Rpcj0KKysJICAgIGFkZD0KKysJICAgICMgRmluYWxpemUgY29tbWFuZCBmb3IgYm90aCBp cyBzaW1wbGU6IGp1c3QgaGFyZGNvZGUgaXQuCisrCSAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGly ZWN0IiA9IHllcyAmJgorKwkgICAgICAgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSIg PSBubzsgdGhlbgorKwkgICAgICBhZGQ9IiRsaWJkaXIvJGxpbmtsaWIiCisrCSAgICBlbGlmIHRl c3QgIiRoYXJkY29kZV9taW51c19MIiA9IHllczsgdGhlbgorKwkgICAgICBhZGRfZGlyPSItTCRs aWJkaXIiCisrCSAgICAgIGFkZD0iLWwkbmFtZSIKKysJICAgIGVsaWYgdGVzdCAiJGhhcmRjb2Rl X3NobGlicGF0aF92YXIiID0geWVzOyB0aGVuCisrCSAgICAgIGNhc2UgOiRmaW5hbGl6ZV9zaGxp YnBhdGg6IGluCisrCSAgICAgICoiOiRsaWJkaXI6IiopIDs7CisrCSAgICAgICopIGZpbmFsaXpl X3NobGlicGF0aD0iJGZpbmFsaXplX3NobGlicGF0aCRsaWJkaXI6IiA7OworKwkgICAgICBlc2Fj CisrCSAgICAgIGFkZD0iLWwkbmFtZSIKKysJICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX2F1dG9t YXRpYyIgPSB5ZXM7IHRoZW4KKysJICAgICAgaWYgdGVzdCAtbiAiJGluc3RfcHJlZml4X2RpciIg JiYKKysJCSB0ZXN0IC1mICIkaW5zdF9wcmVmaXhfZGlyJGxpYmRpci8kbGlua2xpYiIgOyB0aGVu CisrCQlhZGQ9IiRpbnN0X3ByZWZpeF9kaXIkbGliZGlyLyRsaW5rbGliIgorKwkgICAgICBlbHNl CisrCQlhZGQ9IiRsaWJkaXIvJGxpbmtsaWIiCisrCSAgICAgIGZpCisrCSAgICBlbHNlCisrCSAg ICAgICMgV2UgY2Fubm90IHNlZW0gdG8gaGFyZGNvZGUgaXQsIGd1ZXNzIHdlJ2xsIGZha2UgaXQu CisrCSAgICAgIGFkZF9kaXI9Ii1MJGxpYmRpciIKKysJICAgICAgIyBUcnkgbG9va2luZyBmaXJz dCBpbiB0aGUgbG9jYXRpb24gd2UncmUgYmVpbmcgaW5zdGFsbGVkIHRvLgorKwkgICAgICBpZiB0 ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsgdGhlbgorKwkJY2FzZSAkbGliZGlyIGluCisrCQkg IFtcXC9dKikKKysJCSAgICBhZGRfZGlyPSIkYWRkX2RpciAtTCRpbnN0X3ByZWZpeF9kaXIkbGli ZGlyIgorKwkJICAgIDs7CisrCQllc2FjCisrCSAgICAgIGZpCisrCSAgICAgIGFkZD0iLWwkbmFt ZSIKKysJICAgIGZpCisrCisrCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgor KwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgZmluYWxpemVfZGVwbGlicz0iJGFkZF9kaXIg JGZpbmFsaXplX2RlcGxpYnMiCisrCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGZpbmFsaXplX2Rl cGxpYnM9IiRhZGQgJGZpbmFsaXplX2RlcGxpYnMiCisrCSAgICBlbHNlCisrCSAgICAgIHRlc3Qg LW4gIiRhZGRfZGlyIiAmJiBkZXBsaWJzPSIkYWRkX2RpciAkZGVwbGlicyIKKysJICAgICAgdGVz dCAtbiAiJGFkZCIgJiYgZGVwbGlicz0iJGFkZCAkZGVwbGlicyIKKysJICAgIGZpCisrCSAgZmkK KysJZWxpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgorKwkgICMgSGVyZSB3ZSBhc3N1 bWUgdGhhdCBvbmUgb2YgaGFyZGNvZGVfZGlyZWN0IG9yIGhhcmRjb2RlX21pbnVzX0wKKysJICAj IGlzIG5vdCB1bnN1cHBvcnRlZC4gIFRoaXMgaXMgdmFsaWQgb24gYWxsIGtub3duIHN0YXRpYyBh bmQKKysJICAjIHNoYXJlZCBwbGF0Zm9ybXMuCisrCSAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVj dCIgIT0gdW5zdXBwb3J0ZWQ7IHRoZW4KKysJICAgIHRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYg bGlua2xpYj0iJG9sZF9saWJyYXJ5IgorKwkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGlyLyRsaW5r bGliICRjb21waWxlX2RlcGxpYnMiCisrCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGlyLyRsaW5r bGliICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgIGVsc2UKKysJICAgIGNvbXBpbGVfZGVwbGlicz0i LWwkbmFtZSAtTCRkaXIgJGNvbXBpbGVfZGVwbGlicyIKKysJICAgIGZpbmFsaXplX2RlcGxpYnM9 Ii1sJG5hbWUgLUwkZGlyICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgIGZpCisrCWVsaWYgdGVzdCAi JGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KKysJICAjIE5vdCBhIHNoYXJlZCBsaWJy YXJ5CisrCSAgaWYgdGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBwYXNzX2FsbDsgdGhl bgorKwkgICAgIyBXZSdyZSB0cnlpbmcgbGluayBhIHNoYXJlZCBsaWJyYXJ5IGFnYWluc3QgYSBz dGF0aWMgb25lCisrCSAgICAjIGJ1dCB0aGUgc3lzdGVtIGRvZXNuJ3Qgc3VwcG9ydCBpdC4KKysK KysJICAgICMgSnVzdCBwcmludCBhIHdhcm5pbmcgYW5kIGFkZCB0aGUgbGlicmFyeSB0byBkZXBl bmRlbmN5X2xpYnMgc28KKysJICAgICMgdGhhdCB0aGUgcHJvZ3JhbSBjYW4gYmUgbGlua2VkIGFn YWluc3QgdGhlIHN0YXRpYyBsaWJyYXJ5LgorKwkgICAgZWNobworKwkgICAgJEVDSE8gIioqKiBX YXJuaW5nOiBUaGlzIHN5c3RlbSBjYW4gbm90IGxpbmsgdG8gc3RhdGljIGxpYiBhcmNoaXZlICRs aWIuIgorKwkgICAgZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQg bGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKysJICAgIGVjaG8gIioqKiB5b3Ug bGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZl IGEiCisrCSAgICBlY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNo IHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUuIgorKwkgICAgaWYgdGVzdCAiJG1vZHVsZSIgPSB5 ZXM7IHRoZW4KKysJICAgICAgZWNobyAiKioqIEJ1dCBhcyB5b3UgdHJ5IHRvIGJ1aWxkIGEgbW9k dWxlIGxpYnJhcnksIGxpYnRvb2wgd2lsbCBzdGlsbCBjcmVhdGUgIgorKwkgICAgICBlY2hvICIq KiogYSBzdGF0aWMgbW9kdWxlLCB0aGF0IHNob3VsZCB3b3JrIGFzIGxvbmcgYXMgdGhlIGRsb3Bl bmluZyBhcHBsaWNhdGlvbiIKKysJICAgICAgZWNobyAiKioqIGlzIGxpbmtlZCB3aXRoIHRoZSAt ZGxvcGVuIGZsYWcgdG8gcmVzb2x2ZSBzeW1ib2xzIGF0IHJ1bnRpbWUuIgorKwkgICAgICBpZiB0 ZXN0IC16ICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgorKwkJZWNobworKwkJZWNobyAiKioq IEhvd2V2ZXIsIHRoaXMgd291bGQgb25seSB3b3JrIGlmIGxpYnRvb2wgd2FzIGFibGUgdG8gZXh0 cmFjdCBzeW1ib2wiCisrCQllY2hvICIqKiogbGlzdHMgZnJvbSBhIHByb2dyYW0sIHVzaW5nIFxg bm0nIG9yIGVxdWl2YWxlbnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgorKwkJZWNobyAiKioqIG5vdCBm aW5kIHN1Y2ggYSBwcm9ncmFtLiAgU28sIHRoaXMgbW9kdWxlIGlzIHByb2JhYmx5IHVzZWxlc3Mu IgorKwkJZWNobyAiKioqIFxgbm0nIGZyb20gR05VIGJpbnV0aWxzIGFuZCBhIGZ1bGwgcmVidWls ZCBtYXkgaGVscC4iCisrCSAgICAgIGZpCisrCSAgICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGli cyIgPSBubzsgdGhlbgorKwkJYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQorKwkJYnVpbGRfb2xk X2xpYnM9eWVzCisrCSAgICAgIGVsc2UKKysJCWJ1aWxkX2xpYnRvb2xfbGlicz1ubworKwkgICAg ICBmaQorKwkgICAgZmkKKysJICBlbHNlCisrCSAgICBkZXBsaWJzPSIkZGlyLyRvbGRfbGlicmFy eSAkZGVwbGlicyIKKysJICAgIGxpbmtfc3RhdGljPXllcworKwkgIGZpCisrCWZpICMgbGluayBz aGFyZWQvc3RhdGljIGxpYnJhcnk/CisrCisrCWlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRo ZW4KKysJICBpZiB0ZXN0IC1uICIkZGVwZW5kZW5jeV9saWJzIiAmJgorKwkgICAgIHsgdGVzdCAi JGhhcmRjb2RlX2ludG9fbGlicyIgIT0geWVzIHx8CisrCSAgICAgICB0ZXN0ICIkYnVpbGRfb2xk X2xpYnMiID0geWVzIHx8CisrCSAgICAgICB0ZXN0ICIkbGlua19zdGF0aWMiID0geWVzOyB9OyB0 aGVuCisrCSAgICAjIEV4dHJhY3QgLVIgZnJvbSBkZXBlbmRlbmN5X2xpYnMKKysJICAgIHRlbXBf ZGVwbGlicz0KKysJICAgIGZvciBsaWJkaXIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKysJICAg ICAgY2FzZSAkbGliZGlyIGluCisrCSAgICAgIC1SKikgZnVuY19zdHJpcG5hbWUgJy1SJyAnJyAi JGxpYmRpciIKKysJICAgICAgICAgICB0ZW1wX3hycGF0aD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0 CisrCQkgICBjYXNlICIgJHhycGF0aCAiIGluCisrCQkgICAqIiAkdGVtcF94cnBhdGggIiopIDs7 CisrCQkgICAqKSB4cnBhdGg9IiR4cnBhdGggJHRlbXBfeHJwYXRoIjs7CisrCQkgICBlc2FjOzsK KysJICAgICAgKikgdGVtcF9kZXBsaWJzPSIkdGVtcF9kZXBsaWJzICRsaWJkaXIiOzsKKysJICAg ICAgZXNhYworKwkgICAgZG9uZQorKwkgICAgZGVwZW5kZW5jeV9saWJzPSIkdGVtcF9kZXBsaWJz IgorKwkgIGZpCisrCisrCSAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRo ICRhYnNkaXIiCisrCSAgIyBMaW5rIGFnYWluc3QgdGhpcyBsaWJyYXJ5CisrCSAgdGVzdCAiJGxp bmtfc3RhdGljIiA9IG5vICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGFic19sYWRpci8kbGFuYW1l ICRuZXdkZXBlbmRlbmN5X2xpYnMiCisrCSAgIyAuLi4gYW5kIGl0cyBkZXBlbmRlbmN5X2xpYnMK KysJICB0bXBfbGlicz0KKysJICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCisr CSAgICBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKKysJ ICAgIGlmICRvcHRfZHVwbGljYXRlX2RlcHMgOyB0aGVuCisrCSAgICAgIGNhc2UgIiR0bXBfbGli cyAiIGluCisrCSAgICAgICoiICRkZXBsaWIgIiopIHNwZWNpYWxkZXBsaWJzPSIkc3BlY2lhbGRl cGxpYnMgJGRlcGxpYiIgOzsKKysJICAgICAgZXNhYworKwkgICAgZmkKKysJICAgIHRtcF9saWJz PSIkdG1wX2xpYnMgJGRlcGxpYiIKKysJICBkb25lCisrCisrCSAgaWYgdGVzdCAiJGxpbmtfYWxs X2RlcGxpYnMiICE9IG5vOyB0aGVuCisrCSAgICAjIEFkZCB0aGUgc2VhcmNoIHBhdGhzIG9mIGFs bCBkZXBlbmRlbmN5IGxpYnJhcmllcworKwkgICAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9s aWJzOyBkbworKwkgICAgICBwYXRoPQorKwkgICAgICBjYXNlICRkZXBsaWIgaW4KKysJICAgICAg LUwqKSBwYXRoPSIkZGVwbGliIiA7OworKwkgICAgICAqLmxhKQorKwkgICAgICAgIGZ1bmNfZGly bmFtZSAiJGRlcGxpYiIgIiIgIi4iCisrCQlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKwkJ IyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCisrCQljYXNlICRkaXIgaW4KKysJCVtcXC9dKiB8 IFtBLVphLXpdOltcXC9dKikgYWJzZGlyPSIkZGlyIiA7OworKwkJKikKKysJCSAgYWJzZGlyPWBj ZCAiJGRpciIgJiYgcHdkYAorKwkJICBpZiB0ZXN0IC16ICIkYWJzZGlyIjsgdGhlbgorKwkJICAg IGZ1bmNfd2FybmluZyAiY2Fubm90IGRldGVybWluZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBv ZiBcYCRkaXInIgorKwkJICAgIGFic2Rpcj0iJGRpciIKKysJCSAgZmkKKysJCSAgOzsKKysJCWVz YWMKKysJCWlmICRHUkVQICJeaW5zdGFsbGVkPW5vIiAkZGVwbGliID4gL2Rldi9udWxsOyB0aGVu CisrCQljYXNlICRob3N0IGluCisrCQkqLSotZGFyd2luKikKKysJCSAgZGVwZGVwbD0KKysJCSAg ZXZhbCBkZXBsaWJyYXJ5X25hbWVzPWAke1NFRH0gLW4gLWUgJ3MvXmxpYnJhcnlfbmFtZXM9XCgu KlwpJC9cMS9wJyAkZGVwbGliYAorKwkJICBpZiB0ZXN0IC1uICIkZGVwbGlicmFyeV9uYW1lcyIg OyB0aGVuCisrCQkgICAgZm9yIHRtcCBpbiAkZGVwbGlicmFyeV9uYW1lcyA7IGRvCisrCQkgICAg ICBkZXBkZXBsPSR0bXAKKysJCSAgICBkb25lCisrCQkgICAgaWYgdGVzdCAtZiAiJGFic2Rpci8k b2JqZGlyLyRkZXBkZXBsIiA7IHRoZW4KKysJCSAgICAgIGRlcGRlcGw9IiRhYnNkaXIvJG9iamRp ci8kZGVwZGVwbCIKKysJCSAgICAgIGRhcndpbl9pbnN0YWxsX25hbWU9YCR7T1RPT0x9IC1MICRk ZXBkZXBsIHwgYXdrICd7aWYgKE5SID09IDIpIHtwcmludCAkMTtleGl0fX0nYAorKyAgICAgICAg ICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkZGFyd2luX2luc3RhbGxfbmFtZSI7IHRoZW4KKysg ICAgICAgICAgICAgICAgICAgICAgICAgIGRhcndpbl9pbnN0YWxsX25hbWU9YCR7T1RPT0w2NH0g LUwgJGRlcGRlcGwgIHwgYXdrICd7aWYgKE5SID09IDIpIHtwcmludCAkMTtleGl0fX0nYAorKyAg ICAgICAgICAgICAgICAgICAgICBmaQorKwkJICAgICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxl cl9mbGFncyAke3dsfS1keWxpYl9maWxlICR7d2x9JHtkYXJ3aW5faW5zdGFsbF9uYW1lfToke2Rl cGRlcGx9IgorKwkJICAgICAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzIC1keWxpYl9maWxl ICR7ZGFyd2luX2luc3RhbGxfbmFtZX06JHtkZXBkZXBsfSIKKysJCSAgICAgIHBhdGg9CisrCQkg ICAgZmkKKysJCSAgZmkKKysJCSAgOzsKKysJCSopCisrCQkgIHBhdGg9Ii1MJGFic2Rpci8kb2Jq ZGlyIgorKwkJICA7OworKwkJZXNhYworKwkJZWxzZQorKwkJICBldmFsIGxpYmRpcj1gJHtTRUR9 IC1uIC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAkZGVwbGliYAorKwkJICB0ZXN0IC16ICIk bGliZGlyIiAmJiBcCisrCQkgICAgZnVuY19mYXRhbF9lcnJvciAiXGAkZGVwbGliJyBpcyBub3Qg YSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCisrCQkgIHRlc3QgIiRhYnNkaXIiICE9ICIkbGliZGly IiAmJiBcCisrCQkgICAgZnVuY193YXJuaW5nICJcYCRkZXBsaWInIHNlZW1zIHRvIGJlIG1vdmVk IgorKworKwkJICBwYXRoPSItTCRhYnNkaXIiCisrCQlmaQorKwkJOzsKKysJICAgICAgZXNhYwor KwkgICAgICBjYXNlICIgJGRlcGxpYnMgIiBpbgorKwkgICAgICAqIiAkcGF0aCAiKikgOzsKKysJ ICAgICAgKikgZGVwbGlicz0iJHBhdGggJGRlcGxpYnMiIDs7CisrCSAgICAgIGVzYWMKKysJICAg IGRvbmUKKysJICBmaSAjIGxpbmtfYWxsX2RlcGxpYnMgIT0gbm8KKysJZmkgIyBsaW5rbW9kZSA9 IGxpYgorKyAgICAgIGRvbmUgIyBmb3IgZGVwbGliIGluICRsaWJzCisrICAgICAgaWYgdGVzdCAi JHBhc3MiID0gbGluazsgdGhlbgorKwlpZiB0ZXN0ICIkbGlua21vZGUiID0gInByb2ciOyB0aGVu CisrCSAgY29tcGlsZV9kZXBsaWJzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGNvbXBp bGVfZGVwbGlicyIKKysJICBmaW5hbGl6ZV9kZXBsaWJzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJf ZmxhZ3MgJGZpbmFsaXplX2RlcGxpYnMiCisrCWVsc2UKKysJICBjb21waWxlcl9mbGFncz0iJGNv bXBpbGVyX2ZsYWdzICJgJEVDSE8gIiAkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFNF RCAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKysJZmkKKysg ICAgICBmaQorKyAgICAgIGRlcGVuZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVuY3lfbGlicyIKKysg ICAgICBpZiB0ZXN0ICIkcGFzcyIgPSBkbHByZW9wZW47IHRoZW4KKysJIyBMaW5rIHRoZSBkbHBy ZW9wZW5lZCBsaWJyYXJpZXMgYmVmb3JlIG90aGVyIGxpYnJhcmllcworKwlmb3IgZGVwbGliIGlu ICRzYXZlX2RlcGxpYnM7IGRvCisrCSAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJZG9u ZQorKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAiJHBhc3MiICE9IGRsb3BlbjsgdGhlbgorKwlp ZiB0ZXN0ICIkcGFzcyIgIT0gY29udjsgdGhlbgorKwkgICMgTWFrZSBzdXJlIGxpYl9zZWFyY2hf cGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KKysJICBsaWJfc2VhcmNoX3Bh dGg9CisrCSAgZm9yIGRpciBpbiAkbmV3bGliX3NlYXJjaF9wYXRoOyBkbworKwkgICAgY2FzZSAi JGxpYl9zZWFyY2hfcGF0aCAiIGluCisrCSAgICAqIiAkZGlyICIqKSA7OworKwkgICAgKikgbGli X3NlYXJjaF9wYXRoPSIkbGliX3NlYXJjaF9wYXRoICRkaXIiIDs7CisrCSAgICBlc2FjCisrCSAg ZG9uZQorKwkgIG5ld2xpYl9zZWFyY2hfcGF0aD0KKysJZmkKKysKKysJaWYgdGVzdCAiJGxpbmtt b2RlLCRwYXNzIiAhPSAicHJvZyxsaW5rIjsgdGhlbgorKwkgIHZhcnM9ImRlcGxpYnMiCisrCWVs c2UKKysJICB2YXJzPSJjb21waWxlX2RlcGxpYnMgZmluYWxpemVfZGVwbGlicyIKKysJZmkKKysJ Zm9yIHZhciBpbiAkdmFycyBkZXBlbmRlbmN5X2xpYnM7IGRvCisrCSAgIyBBZGQgbGlicmFyaWVz IHRvICR2YXIgaW4gcmV2ZXJzZSBvcmRlcgorKwkgIGV2YWwgdG1wX2xpYnM9XCJcJCR2YXJcIgor KwkgIG5ld19saWJzPQorKwkgIGZvciBkZXBsaWIgaW4gJHRtcF9saWJzOyBkbworKwkgICAgIyBG SVhNRTogUGVkYW50aWNhbGx5LCB0aGlzIGlzIHRoZSByaWdodCB0aGluZyB0byBkbywgc28KKysJ ICAgICMgICAgICAgIHRoYXQgc29tZSBuYXN0eSBkZXBlbmRlbmN5IGxvb3AgaXNuJ3QgYWNjaWRl bnRhbGx5CisrCSAgICAjICAgICAgICBicm9rZW46CisrCSAgICAjbmV3X2xpYnM9IiRkZXBsaWIg JG5ld19saWJzIgorKwkgICAgIyBQcmFnbWF0aWNhbGx5LCB0aGlzIHNlZW1zIHRvIGNhdXNlIHZl cnkgZmV3IHByb2JsZW1zIGluCisrCSAgICAjIHByYWN0aWNlOgorKwkgICAgY2FzZSAkZGVwbGli IGluCisrCSAgICAtTCopIG5ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIgOzsKKysJICAgIC1S KikgOzsKKysJICAgICopCisrCSAgICAgICMgQW5kIGhlcmUgaXMgdGhlIHJlYXNvbjogd2hlbiBh IGxpYnJhcnkgYXBwZWFycyBtb3JlCisrCSAgICAgICMgdGhhbiBvbmNlIGFzIGFuIGV4cGxpY2l0 IGRlcGVuZGVuY2Ugb2YgYSBsaWJyYXJ5LCBvcgorKwkgICAgICAjIGlzIGltcGxpY2l0bHkgbGlu a2VkIGluIG1vcmUgdGhhbiBvbmNlIGJ5IHRoZQorKwkgICAgICAjIGNvbXBpbGVyLCBpdCBpcyBj b25zaWRlcmVkIHNwZWNpYWwsIGFuZCBtdWx0aXBsZQorKwkgICAgICAjIG9jY3VycmVuY2VzIHRo ZXJlb2YgYXJlIG5vdCByZW1vdmVkLiAgQ29tcGFyZSB0aGlzCisrCSAgICAgICMgd2l0aCBoYXZp bmcgdGhlIHNhbWUgbGlicmFyeSBiZWluZyBsaXN0ZWQgYXMgYQorKwkgICAgICAjIGRlcGVuZGVu Y3kgb2YgbXVsdGlwbGUgb3RoZXIgbGlicmFyaWVzOiBpbiB0aGlzIGNhc2UsCisrCSAgICAgICMg d2Uga25vdyAocGVkYW50aWNhbGx5LCB3ZSBhc3N1bWUpIHRoZSBsaWJyYXJ5IGRvZXMgbm90Cisr CSAgICAgICMgbmVlZCB0byBiZSBsaXN0ZWQgbW9yZSB0aGFuIG9uY2UsIHNvIHdlIGtlZXAgb25s eSB0aGUKKysJICAgICAgIyBsYXN0IGNvcHkuICBUaGlzIGlzIG5vdCBhbHdheXMgcmlnaHQsIGJ1 dCBpdCBpcyByYXJlCisrCSAgICAgICMgZW5vdWdoIHRoYXQgd2UgcmVxdWlyZSB1c2VycyB0aGF0 IHJlYWxseSBtZWFuIHRvIHBsYXkKKysJICAgICAgIyBzdWNoIHVucG9ydGFibGUgbGlua2luZyB0 cmlja3MgdG8gbGluayB0aGUgbGlicmFyeQorKwkgICAgICAjIHVzaW5nIC1XbCwtbG5hbWUsIHNv IHRoYXQgbGlidG9vbCBkb2VzIG5vdCBjb25zaWRlciBpdAorKwkgICAgICAjIGZvciBkdXBsaWNh dGUgcmVtb3ZhbC4KKysJICAgICAgY2FzZSAiICRzcGVjaWFsZGVwbGlicyAiIGluCisrCSAgICAg ICoiICRkZXBsaWIgIiopIG5ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIgOzsKKysJICAgICAg KikKKysJCWNhc2UgIiAkbmV3X2xpYnMgIiBpbgorKwkJKiIgJGRlcGxpYiAiKikgOzsKKysJCSop IG5ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIgOzsKKysJCWVzYWMKKysJCTs7CisrCSAgICAg IGVzYWMKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICBkb25lCisrCSAgdG1wX2xpYnM9Cisr CSAgZm9yIGRlcGxpYiBpbiAkbmV3X2xpYnM7IGRvCisrCSAgICBjYXNlICRkZXBsaWIgaW4KKysJ ICAgIC1MKikKKysJICAgICAgY2FzZSAiICR0bXBfbGlicyAiIGluCisrCSAgICAgICoiICRkZXBs aWIgIiopIDs7CisrCSAgICAgICopIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIgOzsKKysJ ICAgICAgZXNhYworKwkgICAgICA7OworKwkgICAgKikgdG1wX2xpYnM9IiR0bXBfbGlicyAkZGVw bGliIiA7OworKwkgICAgZXNhYworKwkgIGRvbmUKKysJICBldmFsICR2YXI9XCIkdG1wX2xpYnNc IgorKwlkb25lICMgZm9yIHZhcgorKyAgICAgIGZpCisrICAgICAgIyBMYXN0IHN0ZXA6IHJlbW92 ZSBydW50aW1lIGxpYnMgZnJvbSBkZXBlbmRlbmN5X2xpYnMKKysgICAgICAjICh0aGV5IHN0YXkg aW4gZGVwbGlicykKKysgICAgICB0bXBfbGlicz0KKysgICAgICBmb3IgaSBpbiAkZGVwZW5kZW5j eV9saWJzIDsgZG8KKysJY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAkY29tcGlsZXJfbGliX3Nl YXJjaF9wYXRoICIgaW4KKysJKiIgJGkgIiopCisrCSAgaT0iIgorKwkgIDs7CisrCWVzYWMKKysJ aWYgdGVzdCAtbiAiJGkiIDsgdGhlbgorKwkgIHRtcF9saWJzPSIkdG1wX2xpYnMgJGkiCisrCWZp CisrICAgICAgZG9uZQorKyAgICAgIGRlcGVuZGVuY3lfbGlicz0kdG1wX2xpYnMKKysgICAgZG9u ZSAjIGZvciBwYXNzCisrICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCisrICAg ICAgZGxmaWxlcz0iJG5ld2RsZmlsZXMiCisrICAgIGZpCisrICAgIGlmIHRlc3QgIiRsaW5rbW9k ZSIgPSBwcm9nIHx8IHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRoZW4KKysgICAgICBkbHByZWZp bGVzPSIkbmV3ZGxwcmVmaWxlcyIKKysgICAgZmkKKysKKysgICAgY2FzZSAkbGlua21vZGUgaW4K KysgICAgb2xkbGliKQorKyAgICAgIGlmIHRlc3QgLW4gIiRkbGZpbGVzJGRscHJlZmlsZXMiIHx8 IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCisrCWZ1bmNfd2FybmluZyAiXGAtZGxvcGVuJyBp cyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKysgICAgICBmaQorKworKyAgICAgIGNhc2UgIiAkZGVw bGlicyIgaW4KKysgICAgICAqXCAtbCogfCAqXCAtTCopCisrCWZ1bmNfd2FybmluZyAiXGAtbCcg YW5kIFxgLUwnIGFyZSBpZ25vcmVkIGZvciBhcmNoaXZlcyIgOzsKKysgICAgICBlc2FjCisrCisr ICAgICAgdGVzdCAtbiAiJHJwYXRoIiAmJiBcCisrCWZ1bmNfd2FybmluZyAiXGAtcnBhdGgnIGlz IGlnbm9yZWQgZm9yIGFyY2hpdmVzIgorKworKyAgICAgIHRlc3QgLW4gIiR4cnBhdGgiICYmIFwK KysJZnVuY193YXJuaW5nICJcYC1SJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKysKKysgICAg ICB0ZXN0IC1uICIkdmluZm8iICYmIFwKKysJZnVuY193YXJuaW5nICJcYC12ZXJzaW9uLWluZm8v LXZlcnNpb24tbnVtYmVyJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKysKKysgICAgICB0ZXN0 IC1uICIkcmVsZWFzZSIgJiYgXAorKwlmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9y ZWQgZm9yIGFyY2hpdmVzIgorKworKyAgICAgIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyRleHBv cnRfc3ltYm9sc19yZWdleCIgJiYgXAorKwlmdW5jX3dhcm5pbmcgIlxgLWV4cG9ydC1zeW1ib2xz JyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKysKKysgICAgICAjIE5vdyBzZXQgdGhlIHZhcmlh YmxlcyBmb3IgYnVpbGRpbmcgb2xkIGxpYnJhcmllcy4KKysgICAgICBidWlsZF9saWJ0b29sX2xp YnM9bm8KKysgICAgICBvbGRsaWJzPSIkb3V0cHV0IgorKyAgICAgIG9ianM9IiRvYmpzJG9sZF9k ZXBsaWJzIgorKyAgICAgIDs7CisrCisrICAgIGxpYikKKysgICAgICAjIE1ha2Ugc3VyZSB3ZSBv bmx5IGdlbmVyYXRlIGxpYnJhcmllcyBvZiB0aGUgZm9ybSBgbGliTkFNRS5sYScuCisrICAgICAg Y2FzZSAkb3V0cHV0bmFtZSBpbgorKyAgICAgIGxpYiopCisrCWZ1bmNfc3RyaXBuYW1lICdsaWIn ICcubGEnICIkb3V0cHV0bmFtZSIKKysJbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCWV2 YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wiCisrCWV2YWwgbGlibmFtZT1cIiRsaWJuYW1l X3NwZWNcIgorKwk7OworKyAgICAgICopCisrCXRlc3QgIiRtb2R1bGUiID0gbm8gJiYgXAorKwkg IGZ1bmNfZmF0YWxfaGVscCAibGlidG9vbCBsaWJyYXJ5IFxgJG91dHB1dCcgbXVzdCBiZWdpbiB3 aXRoIFxgbGliJyIKKysKKysJaWYgdGVzdCAiJG5lZWRfbGliX3ByZWZpeCIgIT0gbm87IHRoZW4K KysJICAjIEFkZCB0aGUgImxpYiIgcHJlZml4IGZvciBtb2R1bGVzIGlmIHJlcXVpcmVkCisrCSAg ZnVuY19zdHJpcG5hbWUgJycgJy5sYScgIiRvdXRwdXRuYW1lIgorKwkgIG5hbWU9JGZ1bmNfc3Ry aXBuYW1lX3Jlc3VsdAorKwkgIGV2YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wiCisrCSAg ZXZhbCBsaWJuYW1lPVwiJGxpYm5hbWVfc3BlY1wiCisrCWVsc2UKKysJICBmdW5jX3N0cmlwbmFt ZSAnJyAnLmxhJyAiJG91dHB1dG5hbWUiCisrCSAgbGlibmFtZT0kZnVuY19zdHJpcG5hbWVfcmVz dWx0CisrCWZpCisrCTs7CisrICAgICAgZXNhYworKworKyAgICAgIGlmIHRlc3QgLW4gIiRvYmpz IjsgdGhlbgorKwlpZiB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiICE9IHBhc3NfYWxsOyB0 aGVuCisrCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGJ1aWxkIGxpYnRvb2wgbGlicmFyeSBc YCRvdXRwdXQnIGZyb20gbm9uLWxpYnRvb2wgb2JqZWN0cyBvbiB0aGlzIGhvc3Q6JG9ianMiCisr CWVsc2UKKysJICBlY2hvCisrCSAgJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBzaGFy ZWQgbGlicmFyeSAkb3V0cHV0IGFnYWluc3QgdGhlIG5vbi1saWJ0b29sIgorKwkgICRFQ0hPICIq Kiogb2JqZWN0cyAkb2JqcyBpcyBub3QgcG9ydGFibGUhIgorKwkgIGxpYm9ianM9IiRsaWJvYmpz ICRvYmpzIgorKwlmaQorKyAgICAgIGZpCisrCisrICAgICAgdGVzdCAiJGRsc2VsZiIgIT0gbm8g JiYgXAorKwlmdW5jX3dhcm5pbmcgIlxgLWRsb3BlbiBzZWxmJyBpcyBpZ25vcmVkIGZvciBsaWJ0 b29sIGxpYnJhcmllcyIKKysKKysgICAgICBzZXQgZHVtbXkgJHJwYXRoCisrICAgICAgc2hpZnQK KysgICAgICB0ZXN0ICIkIyIgLWd0IDEgJiYgXAorKwlmdW5jX3dhcm5pbmcgImlnbm9yaW5nIG11 bHRpcGxlIFxgLXJwYXRoJ3MgZm9yIGEgbGlidG9vbCBsaWJyYXJ5IgorKworKyAgICAgIGluc3Rh bGxfbGliZGlyPSIkMSIKKysKKysgICAgICBvbGRsaWJzPQorKyAgICAgIGlmIHRlc3QgLXogIiRy cGF0aCI7IHRoZW4KKysJaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4K KysJICAjIEJ1aWxkaW5nIGEgbGlidG9vbCBjb252ZW5pZW5jZSBsaWJyYXJ5LgorKwkgICMgU29t ZSBjb21waWxlcnMgaGF2ZSBwcm9ibGVtcyB3aXRoIGEgYC5hbCcgZXh0ZW5zaW9uIHNvCisrCSAg IyBjb252ZW5pZW5jZSBsaWJyYXJpZXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgZXh0ZW5zaW9uIGFu CisrCSAgIyBhcmNoaXZlIG5vcm1hbGx5IHdvdWxkLgorKwkgIG9sZGxpYnM9IiRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLiRsaWJleHQgJG9sZGxpYnMiCisrCSAgYnVpbGRfbGlidG9vbF9saWJzPWNv bnZlbmllbmNlCisrCSAgYnVpbGRfb2xkX2xpYnM9eWVzCisrCWZpCisrCisrCXRlc3QgLW4gIiR2 aW5mbyIgJiYgXAorKwkgIGZ1bmNfd2FybmluZyAiXGAtdmVyc2lvbi1pbmZvLy12ZXJzaW9uLW51 bWJlcicgaXMgaWdub3JlZCBmb3IgY29udmVuaWVuY2UgbGlicmFyaWVzIgorKworKwl0ZXN0IC1u ICIkcmVsZWFzZSIgJiYgXAorKwkgIGZ1bmNfd2FybmluZyAiXGAtcmVsZWFzZScgaXMgaWdub3Jl ZCBmb3IgY29udmVuaWVuY2UgbGlicmFyaWVzIgorKyAgICAgIGVsc2UKKysKKysJIyBQYXJzZSB0 aGUgdmVyc2lvbiBpbmZvcm1hdGlvbiBhcmd1bWVudC4KKysJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9 JzonCisrCXNldCBkdW1teSAkdmluZm8gMCAwIDAKKysJc2hpZnQKKysJSUZTPSIkc2F2ZV9pZnMi CisrCisrCXRlc3QgLW4gIiQ3IiAmJiBcCisrCSAgZnVuY19mYXRhbF9oZWxwICJ0b28gbWFueSBw YXJhbWV0ZXJzIHRvIFxgLXZlcnNpb24taW5mbyciCisrCisrCSMgY29udmVydCBhYnNvbHV0ZSB2 ZXJzaW9uIG51bWJlcnMgdG8gbGlidG9vbCBhZ2VzCisrCSMgdGhpcyByZXRhaW5zIGNvbXBhdGli aWxpdHkgd2l0aCAubGEgZmlsZXMgYW5kIGF0dGVtcHRzCisrCSMgdG8gbWFrZSB0aGUgY29kZSBi ZWxvdyBhIGJpdCBtb3JlIGNvbXByZWhlbnNpYmxlCisrCisrCWNhc2UgJHZpbmZvX251bWJlciBp bgorKwl5ZXMpCisrCSAgbnVtYmVyX21ham9yPSIkMSIKKysJICBudW1iZXJfbWlub3I9IiQyIgor KwkgIG51bWJlcl9yZXZpc2lvbj0iJDMiCisrCSAgIworKwkgICMgVGhlcmUgYXJlIHJlYWxseSBv bmx5IHR3byBraW5kcyAtLSB0aG9zZSB0aGF0CisrCSAgIyB1c2UgdGhlIGN1cnJlbnQgcmV2aXNp b24gYXMgdGhlIG1ham9yIHZlcnNpb24KKysJICAjIGFuZCB0aG9zZSB0aGF0IHN1YnRyYWN0IGFn ZSBhbmQgdXNlIGFnZSBhcworKwkgICMgYSBtaW5vciB2ZXJzaW9uLiAgQnV0LCB0aGVuIHRoZXJl IGlzIGlyaXgKKysJICAjIHdoaWNoIGhhcyBhbiBleHRyYSAxIGFkZGVkIGp1c3QgZm9yIGZ1bgor KwkgICMKKysJICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KKysJICBkYXJ3aW58bGludXh8b3NmfHdp bmRvd3N8bm9uZSkKKysJICAgIGZ1bmNfYXJpdGggJG51bWJlcl9tYWpvciArICRudW1iZXJfbWlu b3IKKysJICAgIGN1cnJlbnQ9JGZ1bmNfYXJpdGhfcmVzdWx0CisrCSAgICBhZ2U9IiRudW1iZXJf bWlub3IiCisrCSAgICByZXZpc2lvbj0iJG51bWJlcl9yZXZpc2lvbiIKKysJICAgIDs7CisrCSAg ZnJlZWJzZC1hb3V0fGZyZWVic2QtZWxmfHFueHxzdW5vcykKKysJICAgIGN1cnJlbnQ9IiRudW1i ZXJfbWFqb3IiCisrCSAgICByZXZpc2lvbj0iJG51bWJlcl9taW5vciIKKysJICAgIGFnZT0iMCIK KysJICAgIDs7CisrCSAgaXJpeHxub25zdG9wdXgpCisrCSAgICBmdW5jX2FyaXRoICRudW1iZXJf bWFqb3IgKyAkbnVtYmVyX21pbm9yCisrCSAgICBjdXJyZW50PSRmdW5jX2FyaXRoX3Jlc3VsdAor KwkgICAgYWdlPSIkbnVtYmVyX21pbm9yIgorKwkgICAgcmV2aXNpb249IiRudW1iZXJfbWlub3Ii CisrCSAgICBsdF9pcml4X2luY3JlbWVudD1ubworKwkgICAgOzsKKysJICBlc2FjCisrCSAgOzsK KysJbm8pCisrCSAgY3VycmVudD0iJDEiCisrCSAgcmV2aXNpb249IiQyIgorKwkgIGFnZT0iJDMi CisrCSAgOzsKKysJZXNhYworKworKwkjIENoZWNrIHRoYXQgZWFjaCBvZiB0aGUgdGhpbmdzIGFy ZSB2YWxpZCBudW1iZXJzLgorKwljYXNlICRjdXJyZW50IGluCisrCTB8WzEtOV18WzEtOV1bMC05 XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAt OV1bMC05XSkgOzsKKysJKikKKysJICBmdW5jX2Vycm9yICJDVVJSRU5UIFxgJGN1cnJlbnQnIG11 c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIgorKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJHZp bmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlvbiIKKysJICA7OworKwllc2FjCisr CisrCWNhc2UgJHJldmlzaW9uIGluCisrCTB8WzEtOV18WzEtOV1bMC05XXxbMS05XVswLTldWzAt OV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV1bMC05XSkgOzsKKysJ KikKKysJICBmdW5jX2Vycm9yICJSRVZJU0lPTiBcYCRyZXZpc2lvbicgbXVzdCBiZSBhIG5vbm5l Z2F0aXZlIGludGVnZXIiCisrCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkdmluZm8nIGlzIG5vdCB2 YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIgorKwkgIDs7CisrCWVzYWMKKysKKysJY2FzZSAkYWdl IGluCisrCTB8WzEtOV18WzEtOV1bMC05XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTld WzAtOV18WzEtOV1bMC05XVswLTldWzAtOV1bMC05XSkgOzsKKysJKikKKysJICBmdW5jX2Vycm9y ICJBR0UgXGAkYWdlJyBtdXN0IGJlIGEgbm9ubmVnYXRpdmUgaW50ZWdlciIKKysJICBmdW5jX2Zh dGFsX2Vycm9yICJcYCR2aW5mbycgaXMgbm90IHZhbGlkIHZlcnNpb24gaW5mb3JtYXRpb24iCisr CSAgOzsKKysJZXNhYworKworKwlpZiB0ZXN0ICIkYWdlIiAtZ3QgIiRjdXJyZW50IjsgdGhlbgor KwkgIGZ1bmNfZXJyb3IgIkFHRSBcYCRhZ2UnIGlzIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudCBp bnRlcmZhY2UgbnVtYmVyIFxgJGN1cnJlbnQnIgorKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJHZp bmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlvbiIKKysJZmkKKysKKysJIyBDYWxj dWxhdGUgdGhlIHZlcnNpb24gdmFyaWFibGVzLgorKwltYWpvcj0KKysJdmVyc3VmZml4PQorKwl2 ZXJzdHJpbmc9CisrCWNhc2UgJHZlcnNpb25fdHlwZSBpbgorKwlub25lKSA7OworKworKwlkYXJ3 aW4pCisrCSAgIyBMaWtlIExpbnV4LCBidXQgd2l0aCB0aGUgY3VycmVudCB2ZXJzaW9uIGF2YWls YWJsZSBpbgorKwkgICMgdmVyc3RyaW5nIGZvciBjb2RpbmcgaXQgaW50byB0aGUgbGlicmFyeSBo ZWFkZXIKKysJICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQorKwkgIG1ham9yPS4kZnVuY19h cml0aF9yZXN1bHQKKysJICB2ZXJzdWZmaXg9IiRtYWpvci4kYWdlLiRyZXZpc2lvbiIKKysJICAj IERhcndpbiBsZCBkb2Vzbid0IGxpa2UgMCBmb3IgdGhlc2Ugb3B0aW9ucy4uLgorKwkgIGZ1bmNf YXJpdGggJGN1cnJlbnQgKyAxCisrCSAgbWlub3JfY3VycmVudD0kZnVuY19hcml0aF9yZXN1bHQK KysJICB4bGN2ZXJzdHJpbmc9IiR7d2x9LWNvbXBhdGliaWxpdHlfdmVyc2lvbiAke3dsfSRtaW5v cl9jdXJyZW50ICR7d2x9LWN1cnJlbnRfdmVyc2lvbiAke3dsfSRtaW5vcl9jdXJyZW50LiRyZXZp c2lvbiIKKysJICB2ZXJzdHJpbmc9Ii1jb21wYXRpYmlsaXR5X3ZlcnNpb24gJG1pbm9yX2N1cnJl bnQgLWN1cnJlbnRfdmVyc2lvbiAkbWlub3JfY3VycmVudC4kcmV2aXNpb24iCisrCSAgOzsKKysK KysJZnJlZWJzZC1hb3V0KQorKwkgIG1ham9yPSIuJGN1cnJlbnQiCisrCSAgdmVyc3VmZml4PSIu JGN1cnJlbnQuJHJldmlzaW9uIjsKKysJICA7OworKworKwlmcmVlYnNkLWVsZikKKysJICBtYWpv cj0iLiRjdXJyZW50IgorKwkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50IgorKwkgIDs7CisrCisrCWly aXggfCBub25zdG9wdXgpCisrCSAgaWYgdGVzdCAiWCRsdF9pcml4X2luY3JlbWVudCIgPSAiWG5v IjsgdGhlbgorKwkgICAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKKysJICBlbHNlCisrCSAg ICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZSArIDEKKysJICBmaQorKwkgIG1ham9yPSRmdW5j X2FyaXRoX3Jlc3VsdAorKworKwkgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgorKwkgICAgbm9uc3Rv cHV4KSB2ZXJzdHJpbmdfcHJlZml4PW5vbnN0b3B1eCA7OworKwkgICAgKikgICAgICAgICB2ZXJz dHJpbmdfcHJlZml4PXNnaSA7OworKwkgIGVzYWMKKysJICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmdf cHJlZml4JG1ham9yLiRyZXZpc2lvbiIKKysKKysJICAjIEFkZCBpbiBhbGwgdGhlIGludGVyZmFj ZXMgdGhhdCB3ZSBhcmUgY29tcGF0aWJsZSB3aXRoLgorKwkgIGxvb3A9JHJldmlzaW9uCisrCSAg d2hpbGUgdGVzdCAiJGxvb3AiIC1uZSAwOyBkbworKwkgICAgZnVuY19hcml0aCAkcmV2aXNpb24g LSAkbG9vcAorKwkgICAgaWZhY2U9JGZ1bmNfYXJpdGhfcmVzdWx0CisrCSAgICBmdW5jX2FyaXRo ICRsb29wIC0gMQorKwkgICAgbG9vcD0kZnVuY19hcml0aF9yZXN1bHQKKysJICAgIHZlcnN0cmlu Zz0iJHZlcnN0cmluZ19wcmVmaXgkbWFqb3IuJGlmYWNlOiR2ZXJzdHJpbmciCisrCSAgZG9uZQor KworKwkgICMgQmVmb3JlIHRoaXMgcG9pbnQsICRtYWpvciBtdXN0IG5vdCBjb250YWluIGAuJy4K KysJICBtYWpvcj0uJG1ham9yCisrCSAgdmVyc3VmZml4PSIkbWFqb3IuJHJldmlzaW9uIgorKwkg IDs7CisrCisrCWxpbnV4KQorKwkgIGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlCisrCSAgbWFq b3I9LiRmdW5jX2FyaXRoX3Jlc3VsdAorKwkgIHZlcnN1ZmZpeD0iJG1ham9yLiRhZ2UuJHJldmlz aW9uIgorKwkgIDs7CisrCisrCW9zZikKKysJICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQor KwkgIG1ham9yPS4kZnVuY19hcml0aF9yZXN1bHQKKysJICB2ZXJzdWZmaXg9Ii4kY3VycmVudC4k YWdlLiRyZXZpc2lvbiIKKysJICB2ZXJzdHJpbmc9IiRjdXJyZW50LiRhZ2UuJHJldmlzaW9uIgor KworKwkgICMgQWRkIGluIGFsbCB0aGUgaW50ZXJmYWNlcyB0aGF0IHdlIGFyZSBjb21wYXRpYmxl IHdpdGguCisrCSAgbG9vcD0kYWdlCisrCSAgd2hpbGUgdGVzdCAiJGxvb3AiIC1uZSAwOyBkbwor KwkgICAgZnVuY19hcml0aCAkY3VycmVudCAtICRsb29wCisrCSAgICBpZmFjZT0kZnVuY19hcml0 aF9yZXN1bHQKKysJICAgIGZ1bmNfYXJpdGggJGxvb3AgLSAxCisrCSAgICBsb29wPSRmdW5jX2Fy aXRoX3Jlc3VsdAorKwkgICAgdmVyc3RyaW5nPSIkdmVyc3RyaW5nOiR7aWZhY2V9LjAiCisrCSAg ZG9uZQorKworKwkgICMgTWFrZSBleGVjdXRhYmxlcyBkZXBlbmQgb24gb3VyIGN1cnJlbnQgdmVy c2lvbi4KKysJICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmc6JHtjdXJyZW50fS4wIgorKwkgIDs7Cisr CisrCXFueCkKKysJICBtYWpvcj0iLiRjdXJyZW50IgorKwkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50 IgorKwkgIDs7CisrCisrCXN1bm9zKQorKwkgIG1ham9yPSIuJGN1cnJlbnQiCisrCSAgdmVyc3Vm Zml4PSIuJGN1cnJlbnQuJHJldmlzaW9uIgorKwkgIDs7CisrCisrCXdpbmRvd3MpCisrCSAgIyBV c2UgJy0nIHJhdGhlciB0aGFuICcuJywgc2luY2Ugd2Ugb25seSB3YW50IG9uZQorKwkgICMgZXh0 ZW5zaW9uIG9uIERPUyA4LjMgZmlsZXN5c3RlbXMuCisrCSAgZnVuY19hcml0aCAkY3VycmVudCAt ICRhZ2UKKysJICBtYWpvcj0kZnVuY19hcml0aF9yZXN1bHQKKysJICB2ZXJzdWZmaXg9Ii0kbWFq b3IiCisrCSAgOzsKKysKKysJKikKKysJICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gInVua25v d24gbGlicmFyeSB2ZXJzaW9uIHR5cGUgXGAkdmVyc2lvbl90eXBlJyIKKysJICA7OworKwllc2Fj CisrCisrCSMgQ2xlYXIgdGhlIHZlcnNpb24gaW5mbyBpZiB3ZSBkZWZhdWx0ZWQsIGFuZCB0aGV5 IHNwZWNpZmllZCBhIHJlbGVhc2UuCisrCWlmIHRlc3QgLXogIiR2aW5mbyIgJiYgdGVzdCAtbiAi JHJlbGVhc2UiOyB0aGVuCisrCSAgbWFqb3I9CisrCSAgY2FzZSAkdmVyc2lvbl90eXBlIGluCisr CSAgZGFyd2luKQorKwkgICAgIyB3ZSBjYW4ndCBjaGVjayBmb3IgIjAuMCIgaW4gYXJjaGl2ZV9j bWRzIGR1ZSB0byBxdW90aW5nCisrCSAgICAjIHByb2JsZW1zLCBzbyB3ZSByZXNldCBpdCBjb21w bGV0ZWx5CisrCSAgICB2ZXJzdHJpbmc9CisrCSAgICA7OworKwkgICopCisrCSAgICB2ZXJzdHJp bmc9IjAuMCIKKysJICAgIDs7CisrCSAgZXNhYworKwkgIGlmIHRlc3QgIiRuZWVkX3ZlcnNpb24i ID0gbm87IHRoZW4KKysJICAgIHZlcnN1ZmZpeD0KKysJICBlbHNlCisrCSAgICB2ZXJzdWZmaXg9 Ii4wLjAiCisrCSAgZmkKKysJZmkKKysKKysJIyBSZW1vdmUgdmVyc2lvbiBpbmZvIGZyb20gbmFt ZSBpZiB2ZXJzaW9uaW5nIHNob3VsZCBiZSBhdm9pZGVkCisrCWlmIHRlc3QgIiRhdm9pZF92ZXJz aW9uIiA9IHllcyAmJiB0ZXN0ICIkbmVlZF92ZXJzaW9uIiA9IG5vOyB0aGVuCisrCSAgbWFqb3I9 CisrCSAgdmVyc3VmZml4PQorKwkgIHZlcnN0cmluZz0iIgorKwlmaQorKworKwkjIENoZWNrIHRv IHNlZSBpZiB0aGUgYXJjaGl2ZSB3aWxsIGhhdmUgdW5kZWZpbmVkIHN5bWJvbHMuCisrCWlmIHRl c3QgIiRhbGxvd191bmRlZmluZWQiID0geWVzOyB0aGVuCisrCSAgaWYgdGVzdCAiJGFsbG93X3Vu ZGVmaW5lZF9mbGFnIiA9IHVuc3VwcG9ydGVkOyB0aGVuCisrCSAgICBmdW5jX3dhcm5pbmcgInVu ZGVmaW5lZCBzeW1ib2xzIG5vdCBhbGxvd2VkIGluICRob3N0IHNoYXJlZCBsaWJyYXJpZXMiCisr CSAgICBidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJICAgIGJ1aWxkX29sZF9saWJzPXllcworKwkg IGZpCisrCWVsc2UKKysJICAjIERvbid0IGFsbG93IHVuZGVmaW5lZCBzeW1ib2xzLgorKwkgIGFs bG93X3VuZGVmaW5lZF9mbGFnPSIkbm9fdW5kZWZpbmVkX2ZsYWciCisrCWZpCisrCisrICAgICAg ZmkKKysKKysgICAgICBmdW5jX2dlbmVyYXRlX2Rsc3ltcyAiJGxpYm5hbWUiICIkbGlibmFtZSIg InllcyIKKysgICAgICBsaWJvYmpzPSIkbGlib2JqcyAkc3ltZmlsZW9iaiIKKysgICAgICB0ZXN0 ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQorKworKyAgICAgIGlmIHRlc3QgIiRtb2Rl IiAhPSByZWxpbms7IHRoZW4KKysJIyBSZW1vdmUgb3VyIG91dHB1dHMsIGJ1dCBkb24ndCByZW1v dmUgb2JqZWN0IGZpbGVzIHNpbmNlIHRoZXkKKysJIyBtYXkgaGF2ZSBiZWVuIGNyZWF0ZWQgd2hl biBjb21waWxpbmcgUElDIG9iamVjdHMuCisrCXJlbW92ZWxpc3Q9CisrCXRlbXByZW1vdmVsaXN0 PWAkRUNITyAiJG91dHB1dF9vYmpkaXIvKiJgCisrCWZvciBwIGluICR0ZW1wcmVtb3ZlbGlzdDsg ZG8KKysJICBjYXNlICRwIGluCisrCSAgICAqLiRvYmpleHQgfCAqLmdjbm8pCisrCSAgICAgICA7 OworKwkgICAgJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUgfCAkb3V0cHV0X29iamRpci8kbGli bmFtZS4qIHwgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfSR7cmVsZWFzZX0uKikKKysJICAgICAg IGlmIHRlc3QgIlgkcHJlY2lvdXNfZmlsZXNfcmVnZXgiICE9ICJYIjsgdGhlbgorKwkJIGlmICRF Q0hPICIkcCIgfCAkRUdSRVAgLWUgIiRwcmVjaW91c19maWxlc19yZWdleCIgPi9kZXYvbnVsbCAy PiYxCisrCQkgdGhlbgorKwkJICAgY29udGludWUKKysJCSBmaQorKwkgICAgICAgZmkKKysJICAg ICAgIHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRwIgorKwkgICAgICAgOzsKKysJICAgICopIDs7 CisrCSAgZXNhYworKwlkb25lCisrCXRlc3QgLW4gIiRyZW1vdmVsaXN0IiAmJiBcCisrCSAgZnVu Y19zaG93X2V2YWwgIiR7Uk19ciBcJHJlbW92ZWxpc3QiCisrICAgICAgZmkKKysKKysgICAgICAj IE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcgb2xkIGxpYnJhcmllcy4KKysgICAg ICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzICYmIHRlc3QgIiRidWlsZF9saWJ0b29s X2xpYnMiICE9IGNvbnZlbmllbmNlIDsgdGhlbgorKwlvbGRsaWJzPSIkb2xkbGlicyAkb3V0cHV0 X29iamRpci8kbGlibmFtZS4kbGliZXh0IgorKworKwkjIFRyYW5zZm9ybSAubG8gZmlsZXMgdG8g Lm8gZmlsZXMuCisrCW9sZG9ianM9IiRvYmpzICJgJEVDSE8gIiRsaWJvYmpzIiB8ICRTUDJOTCB8 ICRTRUQgIi9cLiR7bGliZXh0fSQvZDsgJGxvMm8iIHwgJE5MMlNQYAorKyAgICAgIGZpCisrCisr ICAgICAgIyBFbGltaW5hdGUgYWxsIHRlbXBvcmFyeSBkaXJlY3Rvcmllcy4KKysgICAgICAjZm9y IHBhdGggaW4gJG5vdGluc3RfcGF0aDsgZG8KKysgICAgICAjCWxpYl9zZWFyY2hfcGF0aD1gJEVD SE8gIiRsaWJfc2VhcmNoX3BhdGggIiB8ICRTRUQgInMlICRwYXRoICUgJWciYAorKyAgICAgICMJ ZGVwbGlicz1gJEVDSE8gIiRkZXBsaWJzICIgfCAkU0VEICJzJSAtTCRwYXRoICUgJWciYAorKyAg ICAgICMJZGVwZW5kZW5jeV9saWJzPWAkRUNITyAiJGRlcGVuZGVuY3lfbGlicyAiIHwgJFNFRCAi cyUgLUwkcGF0aCAlICVnImAKKysgICAgICAjZG9uZQorKworKyAgICAgIGlmIHRlc3QgLW4gIiR4 cnBhdGgiOyB0aGVuCisrCSMgSWYgdGhlIHVzZXIgc3BlY2lmaWVkIGFueSBycGF0aCBmbGFncywg dGhlbiBhZGQgdGhlbS4KKysJdGVtcF94cnBhdGg9CisrCWZvciBsaWJkaXIgaW4gJHhycGF0aDsg ZG8KKysJICB0ZW1wX3hycGF0aD0iJHRlbXBfeHJwYXRoIC1SJGxpYmRpciIKKysJICBjYXNlICIk ZmluYWxpemVfcnBhdGggIiBpbgorKwkgICoiICRsaWJkaXIgIiopIDs7CisrCSAgKikgZmluYWxp emVfcnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCAkbGliZGlyIiA7OworKwkgIGVzYWMKKysJZG9uZQor KwlpZiB0ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiAhPSB5ZXMgfHwgdGVzdCAiJGJ1aWxkX29s ZF9saWJzIiA9IHllczsgdGhlbgorKwkgIGRlcGVuZGVuY3lfbGlicz0iJHRlbXBfeHJwYXRoICRk ZXBlbmRlbmN5X2xpYnMiCisrCWZpCisrICAgICAgZmkKKysKKysgICAgICAjIE1ha2Ugc3VyZSBk bGZpbGVzIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGZpbGVzIHRoYXQgd29uJ3QgYmUgZGxwcmVvcGVu ZWQKKysgICAgICBvbGRfZGxmaWxlcz0iJGRsZmlsZXMiCisrICAgICAgZGxmaWxlcz0KKysgICAg ICBmb3IgbGliIGluICRvbGRfZGxmaWxlczsgZG8KKysJY2FzZSAiICRkbHByZWZpbGVzICRkbGZp bGVzICIgaW4KKysJKiIgJGxpYiAiKikgOzsKKysJKikgZGxmaWxlcz0iJGRsZmlsZXMgJGxpYiIg OzsKKysJZXNhYworKyAgICAgIGRvbmUKKysKKysgICAgICAjIE1ha2Ugc3VyZSBkbHByZWZpbGVz IGNvbnRhaW5zIG9ubHkgdW5pcXVlIGZpbGVzCisrICAgICAgb2xkX2RscHJlZmlsZXM9IiRkbHBy ZWZpbGVzIgorKyAgICAgIGRscHJlZmlsZXM9CisrICAgICAgZm9yIGxpYiBpbiAkb2xkX2RscHJl ZmlsZXM7IGRvCisrCWNhc2UgIiRkbHByZWZpbGVzICIgaW4KKysJKiIgJGxpYiAiKikgOzsKKysJ KikgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJGxpYiIgOzsKKysJZXNhYworKyAgICAgIGRvbmUK KysKKysgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgorKwlp ZiB0ZXN0IC1uICIkcnBhdGgiOyB0aGVuCisrCSAgY2FzZSAkaG9zdCBpbgorKwkgICotKi1jeWd3 aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi0qLWJlb3MqIHwgKi1j ZWdjYyogfCAqLSotaGFpa3UqKQorKwkgICAgIyB0aGVzZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5 IGhhdmUgYSBjIGxpYnJhcnkgKGFzIHN1Y2gpIQorKwkgICAgOzsKKysJICAqLSotcmhhcHNvZHkq IHwgKi0qLWRhcndpbjEuWzAxMl0pCisrCSAgICAjIFJoYXBzb2R5IEMgbGlicmFyeSBpcyBpbiB0 aGUgU3lzdGVtIGZyYW1ld29yaworKwkgICAgZGVwbGlicz0iJGRlcGxpYnMgU3lzdGVtLmx0ZnJh bWV3b3JrIgorKwkgICAgOzsKKysJICAqLSotbmV0YnNkKikKKysJICAgICMgRG9uJ3QgbGluayB3 aXRoIGxpYmMgdW50aWwgdGhlIGEub3V0IGxkLnNvIGlzIGZpeGVkLgorKwkgICAgOzsKKysJICAq LSotb3BlbmJzZCogfCAqLSotZnJlZWJzZCogfCAqLSotZHJhZ29uZmx5KikKKysJICAgICMgRG8g bm90IGluY2x1ZGUgbGliYyBkdWUgdG8gdXMgaGF2aW5nIGxpYmMvbGliY19yLgorKwkgICAgOzsK KysJICAqLSotc2NvMy4ydjUqIHwgKi0qLXNjbzV2NiopCisrCSAgICAjIENhdXNlcyBwcm9ibGVt cyB3aXRoIF9fY3R5cGUKKysJICAgIDs7CisrCSAgKi0qLXN5c3Y0LjJ1dzIqIHwgKi0qLXN5c3Y1 KiB8ICotKi11bml4d2FyZSogfCAqLSotT3BlblVOSVgqKQorKwkgICAgIyBDb21waWxlciBpbnNl cnRzIGxpYmMgaW4gdGhlIGNvcnJlY3QgcGxhY2UgZm9yIHRocmVhZHMgdG8gd29yaworKwkgICAg OzsKKysJICAqKQorKwkgICAgIyBBZGQgbGliYyB0byBkZXBsaWJzIG9uIGFsbCBvdGhlciBzeXN0 ZW1zIGlmIG5lY2Vzc2FyeS4KKysJICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX25lZWRfbGMi ID0gInllcyI7IHRoZW4KKysJICAgICAgZGVwbGlicz0iJGRlcGxpYnMgLWxjIgorKwkgICAgZmkK KysJICAgIDs7CisrCSAgZXNhYworKwlmaQorKworKwkjIFRyYW5zZm9ybSBkZXBsaWJzIGludG8g b25seSBkZXBsaWJzIHRoYXQgY2FuIGJlIGxpbmtlZCBpbiBzaGFyZWQuCisrCW5hbWVfc2F2ZT0k bmFtZQorKwlsaWJuYW1lX3NhdmU9JGxpYm5hbWUKKysJcmVsZWFzZV9zYXZlPSRyZWxlYXNlCisr CXZlcnN1ZmZpeF9zYXZlPSR2ZXJzdWZmaXgKKysJbWFqb3Jfc2F2ZT0kbWFqb3IKKysJIyBJJ20g bm90IHN1cmUgaWYgSSdtIHRyZWF0aW5nIHRoZSByZWxlYXNlIGNvcnJlY3RseS4gIEkgdGhpbmsK KysJIyByZWxlYXNlIHNob3VsZCBzaG93IHVwIGluIHRoZSAtbCAoaWUgLWxnbXA1KSBzbyB3ZSBk b24ndCB3YW50IHRvCisrCSMgYWRkIGl0IGluIHR3aWNlLiAgSXMgdGhhdCBjb3JyZWN0PworKwly ZWxlYXNlPSIiCisrCXZlcnN1ZmZpeD0iIgorKwltYWpvcj0iIgorKwluZXdkZXBsaWJzPQorKwlk cm9wcGVkZGVwcz1ubworKwljYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgorKwlwYXNzX2Fs bCkKKysJICAjIERvbid0IGNoZWNrIGZvciBzaGFyZWQvc3RhdGljLiAgRXZlcnl0aGluZyB3b3Jr cy4KKysJICAjIFRoaXMgbWlnaHQgYmUgYSBsaXR0bGUgbmFpdmUuICBXZSBtaWdodCB3YW50IHRv IGNoZWNrCisrCSAgIyB3aGV0aGVyIHRoZSBsaWJyYXJ5IGV4aXN0cyBvciBub3QuICBCdXQgdGhp cyBpcyBvbgorKwkgICMgb3NmMyAmIG9zZjQgYW5kIEknbSBub3QgcmVhbGx5IHN1cmUuLi4gSnVz dAorKwkgICMgaW1wbGVtZW50aW5nIHdoYXQgd2FzIGFscmVhZHkgdGhlIGJlaGF2aW9yLgorKwkg IG5ld2RlcGxpYnM9JGRlcGxpYnMKKysJICA7OworKwl0ZXN0X2NvbXBpbGUpCisrCSAgIyBUaGlz IGNvZGUgc3RyZXNzZXMgdGhlICJsaWJyYXJpZXMgYXJlIHByb2dyYW1zIiBwYXJhZGlnbSB0byBp dHMKKysJICAjIGxpbWl0cy4gTWF5YmUgZXZlbiBicmVha3MgaXQuICBXZSBjb21waWxlIGEgcHJv Z3JhbSwgbGlua2luZyBpdAorKwkgICMgYWdhaW5zdCB0aGUgZGVwbGlicyBhcyBhIHByb3h5IGZv ciB0aGUgbGlicmFyeS4gIFRoZW4gd2UgY2FuIGNoZWNrCisrCSAgIyB3aGV0aGVyIHRoZXkgbGlu a2VkIGluIHN0YXRpY2FsbHkgb3IgZHluYW1pY2FsbHkgd2l0aCBsZGQuCisrCSAgJG9wdF9kcnlf cnVuIHx8ICRSTSBjb25mdGVzdC5jCisrCSAgY2F0ID4gY29uZnRlc3QuYyA8PEVPRgorKwkgIGlu dCBtYWluKCkgeyByZXR1cm4gMDsgfQorK0VPRgorKwkgICRvcHRfZHJ5X3J1biB8fCAkUk0gY29u ZnRlc3QKKysJICBpZiAkTFRDQyAkTFRDRkxBR1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAkZGVw bGliczsgdGhlbgorKwkgICAgbGRkX291dHB1dD1gbGRkIGNvbmZ0ZXN0YAorKwkgICAgZm9yIGkg aW4gJGRlcGxpYnM7IGRvCisrCSAgICAgIGNhc2UgJGkgaW4KKysJICAgICAgLWwqKQorKwkJZnVu Y19zdHJpcG5hbWUgLWwgJycgIiRpIgorKwkJbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Cisr CQlpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAi WHllcyIgOyB0aGVuCisrCQkgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgorKwkJICAq IiAkaSAiKikKKysJCSAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKKysJCSAgICBpPSIi CisrCQkgICAgOzsKKysJCSAgZXNhYworKwkJZmkKKysJCWlmIHRlc3QgLW4gIiRpIiA7IHRoZW4K KysJCSAgbGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCisrCQkgIGRl cGxpYl9tYXRjaGVzPWBldmFsICJcXCRFQ0hPIFwiJGxpYnJhcnlfbmFtZXNfc3BlY1wiImAKKysJ CSAgc2V0IGR1bW15ICRkZXBsaWJfbWF0Y2hlczsgc2hpZnQKKysJCSAgZGVwbGliX21hdGNoPSQx CisrCQkgIGlmIHRlc3QgYGV4cHIgIiRsZGRfb3V0cHV0IiA6ICIuKiRkZXBsaWJfbWF0Y2giYCAt bmUgMCA7IHRoZW4KKysJCSAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKKysJCSAgZWxz ZQorKwkJICAgIGRyb3BwZWRkZXBzPXllcworKwkJICAgIGVjaG8KKysJCSAgICAkRUNITyAiKioq IFdhcm5pbmc6IGR5bmFtaWMgbGlua2VyIGRvZXMgbm90IGFjY2VwdCBuZWVkZWQgbGlicmFyeSAk aS4iCisrCQkgICAgZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQg bGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKysJCSAgICBlY2hvICIqKiogeW91 IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2 ZSBhIgorKwkJICAgIGVjaG8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hp Y2ggSSBiZWxpZXZlIHlvdSBkbyBub3QgaGF2ZSIKKysJCSAgICBlY2hvICIqKiogYmVjYXVzZSBh IHRlc3RfY29tcGlsZSBkaWQgcmV2ZWFsIHRoYXQgdGhlIGxpbmtlciBkaWQgbm90IHVzZSBpdCBm b3IiCisrCQkgICAgZWNobyAiKioqIGl0cyBkeW5hbWljIGRlcGVuZGVuY3kgbGlzdCB0aGF0IHBy b2dyYW1zIGdldCByZXNvbHZlZCB3aXRoIGF0IHJ1bnRpbWUuIgorKwkJICBmaQorKwkJZmkKKysJ CTs7CisrCSAgICAgICopCisrCQluZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKKysJCTs7Cisr CSAgICAgIGVzYWMKKysJICAgIGRvbmUKKysJICBlbHNlCisrCSAgICAjIEVycm9yIG9jY3VycmVk IGluIHRoZSBmaXJzdCBjb21waWxlLiAgTGV0J3MgdHJ5IHRvIHNhbHZhZ2UKKysJICAgICMgdGhl IHNpdHVhdGlvbjogQ29tcGlsZSBhIHNlcGFyYXRlIHByb2dyYW0gZm9yIGVhY2ggbGlicmFyeS4K KysJICAgIGZvciBpIGluICRkZXBsaWJzOyBkbworKwkgICAgICBjYXNlICRpIGluCisrCSAgICAg IC1sKikKKysJCWZ1bmNfc3RyaXBuYW1lIC1sICcnICIkaSIKKysJCW5hbWU9JGZ1bmNfc3RyaXBu YW1lX3Jlc3VsdAorKwkJJG9wdF9kcnlfcnVuIHx8ICRSTSBjb25mdGVzdAorKwkJaWYgJExUQ0Mg JExUQ0ZMQUdTIC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMgJGk7IHRoZW4KKysJCSAgbGRkX291dHB1 dD1gbGRkIGNvbmZ0ZXN0YAorKwkJICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRo X3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisrCQkgICAgY2FzZSAiICRwcmVkZXBz ICRwb3N0ZGVwcyAiIGluCisrCQkgICAgKiIgJGkgIiopCisrCQkgICAgICBuZXdkZXBsaWJzPSIk bmV3ZGVwbGlicyAkaSIKKysJCSAgICAgIGk9IiIKKysJCSAgICAgIDs7CisrCQkgICAgZXNhYwor KwkJICBmaQorKwkJICBpZiB0ZXN0IC1uICIkaSIgOyB0aGVuCisrCQkgICAgbGlibmFtZT1gZXZh bCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCisrCQkgICAgZGVwbGliX21hdGNoZXM9YGV2 YWwgIlxcJEVDSE8gXCIkbGlicmFyeV9uYW1lc19zcGVjXCIiYAorKwkJICAgIHNldCBkdW1teSAk ZGVwbGliX21hdGNoZXM7IHNoaWZ0CisrCQkgICAgZGVwbGliX21hdGNoPSQxCisrCQkgICAgaWYg dGVzdCBgZXhwciAiJGxkZF9vdXRwdXQiIDogIi4qJGRlcGxpYl9tYXRjaCJgIC1uZSAwIDsgdGhl bgorKwkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisrCQkgICAgZWxzZQorKwkJ ICAgICAgZHJvcHBlZGRlcHM9eWVzCisrCQkgICAgICBlY2hvCisrCQkgICAgICAkRUNITyAiKioq IFdhcm5pbmc6IGR5bmFtaWMgbGlua2VyIGRvZXMgbm90IGFjY2VwdCBuZWVkZWQgbGlicmFyeSAk aS4iCisrCQkgICAgICBlY2hvICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhh dCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorKwkJICAgICAgZWNobyAiKioq IHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91 IGhhdmUgYSIKKysJCSAgICAgIGVjaG8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFy eSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIKKysJCSAgICAgIGVjaG8gIioqKiBi ZWNhdXNlIGEgdGVzdF9jb21waWxlIGRpZCByZXZlYWwgdGhhdCB0aGUgbGlua2VyIGRpZCBub3Qg dXNlIHRoaXMgb25lIgorKwkJICAgICAgZWNobyAiKioqIGFzIGEgZHluYW1pYyBkZXBlbmRlbmN5 IHRoYXQgcHJvZ3JhbXMgY2FuIGdldCByZXNvbHZlZCB3aXRoIGF0IHJ1bnRpbWUuIgorKwkJICAg IGZpCisrCQkgIGZpCisrCQllbHNlCisrCQkgIGRyb3BwZWRkZXBzPXllcworKwkJICBlY2hvCisr CQkgICRFQ0hPICIqKiogV2FybmluZyEgIExpYnJhcnkgJGkgaXMgbmVlZGVkIGJ5IHRoaXMgbGli cmFyeSBidXQgSSB3YXMgbm90IGFibGUgdG8iCisrCQkgIGVjaG8gIioqKiBtYWtlIGl0IGxpbmsg aW4hICBZb3Ugd2lsbCBwcm9iYWJseSBuZWVkIHRvIGluc3RhbGwgaXQgb3Igc29tZSIKKysJCSAg ZWNobyAiKioqIGxpYnJhcnkgdGhhdCBpdCBkZXBlbmRzIG9uIGJlZm9yZSB0aGlzIGxpYnJhcnkg d2lsbCBiZSBmdWxseSIKKysJCSAgZWNobyAiKioqIGZ1bmN0aW9uYWwuICBJbnN0YWxsaW5nIGl0 IGJlZm9yZSBjb250aW51aW5nIHdvdWxkIGJlIGV2ZW4gYmV0dGVyLiIKKysJCWZpCisrCQk7Owor KwkgICAgICAqKQorKwkJbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisrCQk7OworKwkgICAg ICBlc2FjCisrCSAgICBkb25lCisrCSAgZmkKKysJICA7OworKwlmaWxlX21hZ2ljKikKKysJICBz ZXQgZHVtbXkgJGRlcGxpYnNfY2hlY2tfbWV0aG9kOyBzaGlmdAorKwkgIGZpbGVfbWFnaWNfcmVn ZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiJDEgXCguKlwpImAKKysJICBmb3Ig YV9kZXBsaWIgaW4gJGRlcGxpYnM7IGRvCisrCSAgICBjYXNlICRhX2RlcGxpYiBpbgorKwkgICAg LWwqKQorKwkgICAgICBmdW5jX3N0cmlwbmFtZSAtbCAnJyAiJGFfZGVwbGliIgorKwkgICAgICBu YW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJICAgICAgaWYgdGVzdCAiWCRhbGxvd19saWJ0 b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgorKwkJY2FzZSAi ICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCisrCQkqIiAkYV9kZXBsaWIgIiopCisrCQkgIG5ld2Rl cGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKKysJCSAgYV9kZXBsaWI9IiIKKysJCSAgOzsK KysJCWVzYWMKKysJICAgICAgZmkKKysJICAgICAgaWYgdGVzdCAtbiAiJGFfZGVwbGliIiA7IHRo ZW4KKysJCWxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGlibmFtZV9zcGVjXCIiYAorKwkJZm9y IGkgaW4gJGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNo X3BhdGg7IGRvCisrCQkgIHBvdGVudGlhbF9saWJzPWBscyAkaS8kbGlibmFtZVsuLV0qIDI+L2Rl di9udWxsYAorKwkJICBmb3IgcG90ZW50X2xpYiBpbiAkcG90ZW50aWFsX2xpYnM7IGRvCisrCQkg ICAgICAjIEZvbGxvdyBzb2Z0IGxpbmtzLgorKwkJICAgICAgaWYgbHMgLWxMZCAiJHBvdGVudF9s aWIiIDI+L2Rldi9udWxsIHwKKysJCQkgJEdSRVAgIiAtPiAiID4vZGV2L251bGw7IHRoZW4KKysJ CQljb250aW51ZQorKwkJICAgICAgZmkKKysJCSAgICAgICMgVGhlIHN0YXRlbWVudCBhYm92ZSB0 cmllcyB0byBhdm9pZCBlbnRlcmluZyBhbgorKwkJICAgICAgIyBlbmRsZXNzIGxvb3AgYmVsb3cs IGluIGNhc2Ugb2YgY3ljbGljIGxpbmtzLgorKwkJICAgICAgIyBXZSBtaWdodCBzdGlsbCBlbnRl ciBhbiBlbmRsZXNzIGxvb3AsIHNpbmNlIGEgbGluaworKwkJICAgICAgIyBsb29wIGNhbiBiZSBj bG9zZWQgd2hpbGUgd2UgZm9sbG93IGxpbmtzLAorKwkJICAgICAgIyBidXQgc28gd2hhdD8KKysJ CSAgICAgIHBvdGxpYj0iJHBvdGVudF9saWIiCisrCQkgICAgICB3aGlsZSB0ZXN0IC1oICIkcG90 bGliIiAyPi9kZXYvbnVsbDsgZG8KKysJCQlwb3RsaWJsaW5rPWBscyAtbGQgJHBvdGxpYiB8ICR7 U0VEfSAncy8uKiAtPiAvLydgCisrCQkJY2FzZSAkcG90bGlibGluayBpbgorKwkJCVtcXC9dKiB8 IFtBLVphLXpdOltcXC9dKikgcG90bGliPSIkcG90bGlibGluayI7OworKwkJCSopIHBvdGxpYj1g JEVDSE8gIiRwb3RsaWIiIHwgJFNFRCAncyxbXi9dKiQsLCdgIiRwb3RsaWJsaW5rIjs7CisrCQkJ ZXNhYworKwkJICAgICAgZG9uZQorKwkJICAgICAgaWYgZXZhbCAkZmlsZV9tYWdpY19jbWQgXCJc JHBvdGxpYlwiIDI+L2Rldi9udWxsIHwKKysJCQkgJFNFRCAtZSAxMHEgfAorKwkJCSAkRUdSRVAg IiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgorKwkJCW5ld2RlcGxpYnM9IiRu ZXdkZXBsaWJzICRhX2RlcGxpYiIKKysJCQlhX2RlcGxpYj0iIgorKwkJCWJyZWFrIDIKKysJCSAg ICAgIGZpCisrCQkgIGRvbmUKKysJCWRvbmUKKysJICAgICAgZmkKKysJICAgICAgaWYgdGVzdCAt biAiJGFfZGVwbGliIiA7IHRoZW4KKysJCWRyb3BwZWRkZXBzPXllcworKwkJZWNobworKwkJJEVD SE8gIioqKiBXYXJuaW5nOiBsaW5rZXIgcGF0aCBkb2VzIG5vdCBoYXZlIHJlYWwgZmlsZSBmb3Ig bGlicmFyeSAkYV9kZXBsaWIuIgorKwkJZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0 byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKysJCWVjaG8g IioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlm IHlvdSBoYXZlIGEiCisrCQllY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnks IHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCisrCQllY2hvICIqKiogYmVjYXVzZSBJ IGRpZCBjaGVjayB0aGUgbGlua2VyIHBhdGggbG9va2luZyBmb3IgYSBmaWxlIHN0YXJ0aW5nIgor KwkJaWYgdGVzdCAteiAiJHBvdGxpYiIgOyB0aGVuCisrCQkgICRFQ0hPICIqKiogd2l0aCAkbGli bmFtZSBidXQgbm8gY2FuZGlkYXRlcyB3ZXJlIGZvdW5kLiAoLi4uZm9yIGZpbGUgbWFnaWMgdGVz dCkiCisrCQllbHNlCisrCQkgICRFQ0hPICIqKiogd2l0aCAkbGlibmFtZSBhbmQgbm9uZSBvZiB0 aGUgY2FuZGlkYXRlcyBwYXNzZWQgYSBmaWxlIGZvcm1hdCB0ZXN0IgorKwkJICAkRUNITyAiKioq IHVzaW5nIGEgZmlsZSBtYWdpYy4gTGFzdCBmaWxlIGNoZWNrZWQ6ICRwb3RsaWIiCisrCQlmaQor KwkgICAgICBmaQorKwkgICAgICA7OworKwkgICAgKikKKysJICAgICAgIyBBZGQgYSAtTCBhcmd1 bWVudC4KKysJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorKwkgICAg ICA7OworKwkgICAgZXNhYworKwkgIGRvbmUgIyBHb25lIHRocm91Z2ggYWxsIGRlcGxpYnMuCisr CSAgOzsKKysJbWF0Y2hfcGF0dGVybiopCisrCSAgc2V0IGR1bW15ICRkZXBsaWJzX2NoZWNrX21l dGhvZDsgc2hpZnQKKysJICBtYXRjaF9wYXR0ZXJuX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVj a19tZXRob2QiIDogIiQxIFwoLipcKSJgCisrCSAgZm9yIGFfZGVwbGliIGluICRkZXBsaWJzOyBk bworKwkgICAgY2FzZSAkYV9kZXBsaWIgaW4KKysJICAgIC1sKikKKysJICAgICAgZnVuY19zdHJp cG5hbWUgLWwgJycgIiRhX2RlcGxpYiIKKysJICAgICAgbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVz dWx0CisrCSAgICAgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1 bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KKysJCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBp bgorKwkJKiIgJGFfZGVwbGliICIqKQorKwkJICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9k ZXBsaWIiCisrCQkgIGFfZGVwbGliPSIiCisrCQkgIDs7CisrCQllc2FjCisrCSAgICAgIGZpCisr CSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCisrCQlsaWJuYW1lPWBldmFsICJc XCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKKysJCWZvciBpIGluICRsaWJfc2VhcmNoX3BhdGgg JHN5c19saWJfc2VhcmNoX3BhdGggJHNobGliX3NlYXJjaF9wYXRoOyBkbworKwkJICBwb3RlbnRp YWxfbGlicz1gbHMgJGkvJGxpYm5hbWVbLi1dKiAyPi9kZXYvbnVsbGAKKysJCSAgZm9yIHBvdGVu dF9saWIgaW4gJHBvdGVudGlhbF9saWJzOyBkbworKwkJICAgIHBvdGxpYj0iJHBvdGVudF9saWIi ICMgc2VlIHN5bWxpbmstY2hlY2sgYWJvdmUgaW4gZmlsZV9tYWdpYyB0ZXN0CisrCQkgICAgaWYg ZXZhbCAiXCRFQ0hPIFwiJHBvdGVudF9saWJcIiIgMj4vZGV2L251bGwgfCAkU0VEIDEwcSB8IFwK KysJCSAgICAgICAkRUdSRVAgIiRtYXRjaF9wYXR0ZXJuX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhl bgorKwkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorKwkJICAgICAg YV9kZXBsaWI9IiIKKysJCSAgICAgIGJyZWFrIDIKKysJCSAgICBmaQorKwkJICBkb25lCisrCQlk b25lCisrCSAgICAgIGZpCisrCSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCisr CQlkcm9wcGVkZGVwcz15ZXMKKysJCWVjaG8KKysJCSRFQ0hPICIqKiogV2FybmluZzogbGlua2Vy IHBhdGggZG9lcyBub3QgaGF2ZSByZWFsIGZpbGUgZm9yIGxpYnJhcnkgJGFfZGVwbGliLiIKKysJ CWVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0 b21hdGljYWxseSBsaW5rIGluIHdoZW4iCisrCQllY2hvICIqKiogeW91IGxpbmsgdG8gdGhpcyBs aWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgorKwkJZWNobyAi KioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVh ciB0byBoYXZlIgorKwkJZWNobyAiKioqIGJlY2F1c2UgSSBkaWQgY2hlY2sgdGhlIGxpbmtlciBw YXRoIGxvb2tpbmcgZm9yIGEgZmlsZSBzdGFydGluZyIKKysJCWlmIHRlc3QgLXogIiRwb3RsaWIi IDsgdGhlbgorKwkJICAkRUNITyAiKioqIHdpdGggJGxpYm5hbWUgYnV0IG5vIGNhbmRpZGF0ZXMg d2VyZSBmb3VuZC4gKC4uLmZvciByZWdleCBwYXR0ZXJuIHRlc3QpIgorKwkJZWxzZQorKwkJICAk RUNITyAiKioqIHdpdGggJGxpYm5hbWUgYW5kIG5vbmUgb2YgdGhlIGNhbmRpZGF0ZXMgcGFzc2Vk IGEgZmlsZSBmb3JtYXQgdGVzdCIKKysJCSAgJEVDSE8gIioqKiB1c2luZyBhIHJlZ2V4IHBhdHRl cm4uIExhc3QgZmlsZSBjaGVja2VkOiAkcG90bGliIgorKwkJZmkKKysJICAgICAgZmkKKysJICAg ICAgOzsKKysJICAgICopCisrCSAgICAgICMgQWRkIGEgLUwgYXJndW1lbnQuCisrCSAgICAgIG5l d2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKKysJICAgICAgOzsKKysJICAgIGVzYWMK KysJICBkb25lICMgR29uZSB0aHJvdWdoIGFsbCBkZXBsaWJzLgorKwkgIDs7CisrCW5vbmUgfCB1 bmtub3duIHwgKikKKysJICBuZXdkZXBsaWJzPSIiCisrCSAgdG1wX2RlcGxpYnM9YCRFQ0hPICIg JGRlcGxpYnMiIHwgJFNFRCAncy8gLWxjJC8vOyBzLyAtW0xSXVteIF0qLy9nJ2AKKysJICBpZiB0 ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIg OyB0aGVuCisrCSAgICBmb3IgaSBpbiAkcHJlZGVwcyAkcG9zdGRlcHMgOyBkbworKwkgICAgICAj IGNhbid0IHVzZSBYc2VkIGJlbG93LCBiZWNhdXNlICRpIG1pZ2h0IGNvbnRhaW4gJy8nCisrCSAg ICAgIHRtcF9kZXBsaWJzPWAkRUNITyAiICR0bXBfZGVwbGlicyIgfCAkU0VEICJzLCRpLCwiYAor KwkgICAgZG9uZQorKwkgIGZpCisrCSAgY2FzZSAkdG1wX2RlcGxpYnMgaW4KKysJICAqWyFcCVwg XSopCisrCSAgICBlY2hvCisrCSAgICBpZiB0ZXN0ICJYJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA9 ICJYbm9uZSI7IHRoZW4KKysJICAgICAgZWNobyAiKioqIFdhcm5pbmc6IGludGVyLWxpYnJhcnkg ZGVwZW5kZW5jaWVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoaXMgcGxhdGZvcm0uIgorKwkgICAg ZWxzZQorKwkgICAgICBlY2hvICIqKiogV2FybmluZzogaW50ZXItbGlicmFyeSBkZXBlbmRlbmNp ZXMgYXJlIG5vdCBrbm93biB0byBiZSBzdXBwb3J0ZWQuIgorKwkgICAgZmkKKysJICAgIGVjaG8g IioqKiBBbGwgZGVjbGFyZWQgaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIGJlaW5nIGRy b3BwZWQuIgorKwkgICAgZHJvcHBlZGRlcHM9eWVzCisrCSAgICA7OworKwkgIGVzYWMKKysJICA7 OworKwllc2FjCisrCXZlcnN1ZmZpeD0kdmVyc3VmZml4X3NhdmUKKysJbWFqb3I9JG1ham9yX3Nh dmUKKysJcmVsZWFzZT0kcmVsZWFzZV9zYXZlCisrCWxpYm5hbWU9JGxpYm5hbWVfc2F2ZQorKwlu YW1lPSRuYW1lX3NhdmUKKysKKysJY2FzZSAkaG9zdCBpbgorKwkqLSotcmhhcHNvZHkqIHwgKi0q LWRhcndpbjEuWzAxMl0pCisrCSAgIyBPbiBSaGFwc29keSByZXBsYWNlIHRoZSBDIGxpYnJhcnkg d2l0aCB0aGUgU3lzdGVtIGZyYW1ld29yaworKwkgIG5ld2RlcGxpYnM9YCRFQ0hPICIgJG5ld2Rl cGxpYnMiIHwgJFNFRCAncy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3b3JrIC8nYAorKwkgIDs7Cisr CWVzYWMKKysKKysJaWYgdGVzdCAiJGRyb3BwZWRkZXBzIiA9IHllczsgdGhlbgorKwkgIGlmIHRl c3QgIiRtb2R1bGUiID0geWVzOyB0aGVuCisrCSAgICBlY2hvCisrCSAgICBlY2hvICIqKiogV2Fy bmluZzogbGlidG9vbCBjb3VsZCBub3Qgc2F0aXNmeSBhbGwgZGVjbGFyZWQgaW50ZXItbGlicmFy eSIKKysJICAgICRFQ0hPICIqKiogZGVwZW5kZW5jaWVzIG9mIG1vZHVsZSAkbGlibmFtZS4gIFRo ZXJlZm9yZSwgbGlidG9vbCB3aWxsIGNyZWF0ZSIKKysJICAgIGVjaG8gIioqKiBhIHN0YXRpYyBt b2R1bGUsIHRoYXQgc2hvdWxkIHdvcmsgYXMgbG9uZyBhcyB0aGUgZGxvcGVuaW5nIgorKwkgICAg ZWNobyAiKioqIGFwcGxpY2F0aW9uIGlzIGxpbmtlZCB3aXRoIHRoZSAtZGxvcGVuIGZsYWcuIgor KwkgICAgaWYgdGVzdCAteiAiJGdsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KKysJICAgICAgZWNo bworKwkgICAgICBlY2hvICIqKiogSG93ZXZlciwgdGhpcyB3b3VsZCBvbmx5IHdvcmsgaWYgbGli dG9vbCB3YXMgYWJsZSB0byBleHRyYWN0IHN5bWJvbCIKKysJICAgICAgZWNobyAiKioqIGxpc3Rz IGZyb20gYSBwcm9ncmFtLCB1c2luZyBcYG5tJyBvciBlcXVpdmFsZW50LCBidXQgbGlidG9vbCBj b3VsZCIKKysJICAgICAgZWNobyAiKioqIG5vdCBmaW5kIHN1Y2ggYSBwcm9ncmFtLiAgU28sIHRo aXMgbW9kdWxlIGlzIHByb2JhYmx5IHVzZWxlc3MuIgorKwkgICAgICBlY2hvICIqKiogXGBubScg ZnJvbSBHTlUgYmludXRpbHMgYW5kIGEgZnVsbCByZWJ1aWxkIG1heSBoZWxwLiIKKysJICAgIGZp CisrCSAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0gbm87IHRoZW4KKysJICAgICAgb2xk bGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKKysJICAgICAgYnVpbGRfbGli dG9vbF9saWJzPW1vZHVsZQorKwkgICAgICBidWlsZF9vbGRfbGlicz15ZXMKKysJICAgIGVsc2UK KysJICAgICAgYnVpbGRfbGlidG9vbF9saWJzPW5vCisrCSAgICBmaQorKwkgIGVsc2UKKysJICAg IGVjaG8gIioqKiBUaGUgaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgdGhhdCBoYXZlIGJlZW4g ZHJvcHBlZCBoZXJlIHdpbGwgYmUiCisrCSAgICBlY2hvICIqKiogYXV0b21hdGljYWxseSBhZGRl ZCB3aGVuZXZlciBhIHByb2dyYW0gaXMgbGlua2VkIHdpdGggdGhpcyBsaWJyYXJ5IgorKwkgICAg ZWNobyAiKioqIG9yIGlzIGRlY2xhcmVkIHRvIC1kbG9wZW4gaXQuIgorKworKwkgICAgaWYgdGVz dCAiJGFsbG93X3VuZGVmaW5lZCIgPSBubzsgdGhlbgorKwkgICAgICBlY2hvCisrCSAgICAgIGVj aG8gIioqKiBTaW5jZSB0aGlzIGxpYnJhcnkgbXVzdCBub3QgY29udGFpbiB1bmRlZmluZWQgc3lt Ym9scywiCisrCSAgICAgIGVjaG8gIioqKiBiZWNhdXNlIGVpdGhlciB0aGUgcGxhdGZvcm0gZG9l cyBub3Qgc3VwcG9ydCB0aGVtIG9yIgorKwkgICAgICBlY2hvICIqKiogaXQgd2FzIGV4cGxpY2l0 bHkgcmVxdWVzdGVkIHdpdGggLW5vLXVuZGVmaW5lZCwiCisrCSAgICAgIGVjaG8gIioqKiBsaWJ0 b29sIHdpbGwgb25seSBjcmVhdGUgYSBzdGF0aWMgdmVyc2lvbiBvZiBpdC4iCisrCSAgICAgIGlm IHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSBubzsgdGhlbgorKwkJb2xkbGlicz0iJG91dHB1dF9v YmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKKysJCWJ1aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUKKysJ CWJ1aWxkX29sZF9saWJzPXllcworKwkgICAgICBlbHNlCisrCQlidWlsZF9saWJ0b29sX2xpYnM9 bm8KKysJICAgICAgZmkKKysJICAgIGZpCisrCSAgZmkKKysJZmkKKysJIyBEb25lIGNoZWNraW5n IGRlcGxpYnMhCisrCWRlcGxpYnM9JG5ld2RlcGxpYnMKKysgICAgICBmaQorKyAgICAgICMgVGlt ZSB0byBjaGFuZ2UgYWxsIG91ciAiZm9vLmx0ZnJhbWV3b3JrIiBzdHVmZiBiYWNrIHRvICItZnJh bWV3b3JrIGZvbyIKKysgICAgICBjYXNlICRob3N0IGluCisrCSotKi1kYXJ3aW4qKQorKwkgIG5l d2RlcGxpYnM9YCRFQ0hPICIgJG5ld2RlcGxpYnMiIHwgJFNFRCAncyUgXChbXiAkXSpcKS5sdGZy YW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKysJICBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFn cz1gJEVDSE8gIiAkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFNFRCAncyUgXChbXiAk XSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKysJICBkZXBsaWJzPWAkRUNITyAi ICRkZXBsaWJzIiB8ICRTRUQgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsg XDElZydgCisrCSAgOzsKKysgICAgICBlc2FjCisrCisrICAgICAgIyBtb3ZlIGxpYnJhcnkgc2Vh cmNoIHBhdGhzIHRoYXQgY29pbmNpZGUgd2l0aCBwYXRocyB0byBub3QgeWV0CisrICAgICAgIyBp bnN0YWxsZWQgbGlicmFyaWVzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpYnJhcnkgc2VhcmNo IGxpc3QKKysgICAgICBuZXdfbGlicz0KKysgICAgICBmb3IgcGF0aCBpbiAkbm90aW5zdF9wYXRo OyBkbworKwljYXNlICIgJG5ld19saWJzICIgaW4KKysJKiIgLUwkcGF0aC8kb2JqZGlyICIqKSA7 OworKwkqKQorKwkgIGNhc2UgIiAkZGVwbGlicyAiIGluCisrCSAgKiIgLUwkcGF0aC8kb2JqZGly ICIqKQorKwkgICAgbmV3X2xpYnM9IiRuZXdfbGlicyAtTCRwYXRoLyRvYmpkaXIiIDs7CisrCSAg ZXNhYworKwkgIDs7CisrCWVzYWMKKysgICAgICBkb25lCisrICAgICAgZm9yIGRlcGxpYiBpbiAk ZGVwbGliczsgZG8KKysJY2FzZSAkZGVwbGliIGluCisrCS1MKikKKysJICBjYXNlICIgJG5ld19s aWJzICIgaW4KKysJICAqIiAkZGVwbGliICIqKSA7OworKwkgICopIG5ld19saWJzPSIkbmV3X2xp YnMgJGRlcGxpYiIgOzsKKysJICBlc2FjCisrCSAgOzsKKysJKikgbmV3X2xpYnM9IiRuZXdfbGli cyAkZGVwbGliIiA7OworKwllc2FjCisrICAgICAgZG9uZQorKyAgICAgIGRlcGxpYnM9IiRuZXdf bGlicyIKKysKKysgICAgICAjIEFsbCB0aGUgbGlicmFyeS1zcGVjaWZpYyB2YXJpYWJsZXMgKGlu c3RhbGxfbGliZGlyIGlzIHNldCBhYm92ZSkuCisrICAgICAgbGlicmFyeV9uYW1lcz0KKysgICAg ICBvbGRfbGlicmFyeT0KKysgICAgICBkbG5hbWU9CisrCisrICAgICAgIyBUZXN0IGFnYWluLCB3 ZSBtYXkgaGF2ZSBkZWNpZGVkIG5vdCB0byBidWlsZCBpdCBhbnkgbW9yZQorKyAgICAgIGlmIHRl c3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrCWlmIHRlc3QgIiRoYXJkY29k ZV9pbnRvX2xpYnMiID0geWVzOyB0aGVuCisrCSAgIyBIYXJkY29kZSB0aGUgbGlicmFyeSBwYXRo cworKwkgIGhhcmRjb2RlX2xpYmRpcnM9CisrCSAgZGVwX3JwYXRoPQorKwkgIHJwYXRoPSIkZmlu YWxpemVfcnBhdGgiCisrCSAgdGVzdCAiJG1vZGUiICE9IHJlbGluayAmJiBycGF0aD0iJGNvbXBp bGVfcnBhdGgkcnBhdGgiCisrCSAgZm9yIGxpYmRpciBpbiAkcnBhdGg7IGRvCisrCSAgICBpZiB0 ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KKysJICAgICAgaWYgdGVz dCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisrCQlpZiB0ZXN0IC16ICIk aGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJCSAgaGFyZGNvZGVfbGliZGlycz0iJGxpYmRpciIK KysJCWVsc2UKKysJCSAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1ZSBsaWJkaXJzLgorKwkJ ICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciBpbgorKwkJICAqIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y JGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCisrCQkgICAgOzsKKysJCSAgKikK KysJCSAgICBoYXJkY29kZV9saWJkaXJzPSIkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yJGxpYmRpciIKKysJCSAgICA7OworKwkJICBlc2FjCisrCQlmaQorKwkgICAg ICBlbHNlCisrCQlldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrCQlk ZXBfcnBhdGg9IiRkZXBfcnBhdGggJGZsYWciCisrCSAgICAgIGZpCisrCSAgICBlbGlmIHRlc3Qg LW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KKysJICAgICAgY2FzZSAiJHBlcm1fcnBhdGggIiBpbgor KwkgICAgICAqIiAkbGliZGlyICIqKSA7OworKwkgICAgICAqKSBwZXJtX3JwYXRoPSIkcGVybV9y cGF0aCAkbGliZGlyIiA7OworKwkgICAgICBlc2FjCisrCSAgICBmaQorKwkgIGRvbmUKKysJICAj IFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhlIHJwYXRoLgorKwkgIGlm IHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgorKwkgICAgIHRlc3QgLW4g IiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgorKwkgICAgbGliZGlyPSIkaGFyZGNvZGVfbGliZGly cyIKKysJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkIjsgdGhl bgorKwkgICAgICBldmFsIGRlcF9ycGF0aD1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xk XCIKKysJICAgIGVsc2UKKysJICAgICAgZXZhbCBkZXBfcnBhdGg9XCIkaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY1wiCisrCSAgICBmaQorKwkgIGZpCisrCSAgaWYgdGVzdCAtbiAiJHJ1bnBhdGhf dmFyIiAmJiB0ZXN0IC1uICIkcGVybV9ycGF0aCI7IHRoZW4KKysJICAgICMgV2Ugc2hvdWxkIHNl dCB0aGUgcnVucGF0aF92YXIuCisrCSAgICBycGF0aD0KKysJICAgIGZvciBkaXIgaW4gJHBlcm1f cnBhdGg7IGRvCisrCSAgICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIKKysJICAgIGRvbmUKKysJICAg IGV2YWwgIiRydW5wYXRoX3Zhcj0nJHJwYXRoXCQkcnVucGF0aF92YXInOyBleHBvcnQgJHJ1bnBh dGhfdmFyIgorKwkgIGZpCisrCSAgdGVzdCAtbiAiJGRlcF9ycGF0aCIgJiYgZGVwbGlicz0iJGRl cF9ycGF0aCAkZGVwbGlicyIKKysJZmkKKysKKysJc2hsaWJwYXRoPSIkZmluYWxpemVfc2hsaWJw YXRoIgorKwl0ZXN0ICIkbW9kZSIgIT0gcmVsaW5rICYmIHNobGlicGF0aD0iJGNvbXBpbGVfc2hs aWJwYXRoJHNobGlicGF0aCIKKysJaWYgdGVzdCAtbiAiJHNobGlicGF0aCI7IHRoZW4KKysJICBl dmFsICIkc2hsaWJwYXRoX3Zhcj0nJHNobGlicGF0aFwkJHNobGlicGF0aF92YXInOyBleHBvcnQg JHNobGlicGF0aF92YXIiCisrCWZpCisrCisrCSMgR2V0IHRoZSByZWFsIGFuZCBsaW5rIG5hbWVz IG9mIHRoZSBsaWJyYXJ5LgorKwlldmFsIHNoYXJlZF9leHQ9XCIkc2hyZXh0X2NtZHNcIgorKwll dmFsIGxpYnJhcnlfbmFtZXM9XCIkbGlicmFyeV9uYW1lc19zcGVjXCIKKysJc2V0IGR1bW15ICRs aWJyYXJ5X25hbWVzCisrCXNoaWZ0CisrCXJlYWxuYW1lPSIkMSIKKysJc2hpZnQKKysKKysJaWYg dGVzdCAtbiAiJHNvbmFtZV9zcGVjIjsgdGhlbgorKwkgIGV2YWwgc29uYW1lPVwiJHNvbmFtZV9z cGVjXCIKKysJZWxzZQorKwkgIHNvbmFtZT0iJHJlYWxuYW1lIgorKwlmaQorKwlpZiB0ZXN0IC16 ICIkZGxuYW1lIjsgdGhlbgorKwkgIGRsbmFtZT0kc29uYW1lCisrCWZpCisrCisrCWxpYj0iJG91 dHB1dF9vYmpkaXIvJHJlYWxuYW1lIgorKwlsaW5rbmFtZXM9CisrCWZvciBsaW5rCisrCWRvCisr CSAgbGlua25hbWVzPSIkbGlua25hbWVzICRsaW5rIgorKwlkb25lCisrCisrCSMgVXNlIHN0YW5k YXJkIG9iamVjdHMgaWYgdGhleSBhcmUgcGljCisrCXRlc3QgLXogIiRwaWNfZmxhZyIgJiYgbGli b2Jqcz1gJEVDSE8gIiRsaWJvYmpzIiB8ICRTUDJOTCB8ICRTRUQgIiRsbzJvIiB8ICROTDJTUGAK KysJdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KKysKKysJZGVsZmlsZXM9Cisr CWlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGluY2x1ZGVfZXhwc3lt cyI7IHRoZW4KKysJICAkb3B0X2RyeV9ydW4gfHwgY3AgIiRleHBvcnRfc3ltYm9scyIgIiRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lLnVleHAiCisrCSAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLnVleHAiCisrCSAgZGVsZmlsZXM9IiRkZWxmaWxlcyAkZXhwb3J0X3N5bWJv bHMiCisrCWZpCisrCisrCW9yaWdfZXhwb3J0X3N5bWJvbHM9CisrCWNhc2UgJGhvc3Rfb3MgaW4K KysJY3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKKysJICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5 bWJvbHMiICYmIHRlc3QgLXogIiRleHBvcnRfc3ltYm9sc19yZWdleCI7IHRoZW4KKysJICAgICMg ZXhwb3J0aW5nIHVzaW5nIHVzZXIgc3VwcGxpZWQgc3ltZmlsZQorKwkgICAgaWYgdGVzdCAieGAk U0VEIDFxICRleHBvcnRfc3ltYm9sc2AiICE9IHhFWFBPUlRTOyB0aGVuCisrCSAgICAgICMgYW5k IGl0J3MgTk9UIGFscmVhZHkgYSAuZGVmIGZpbGUuIE11c3QgZmlndXJlIG91dAorKwkgICAgICAj IHdoaWNoIG9mIHRoZSBnaXZlbiBzeW1ib2xzIGFyZSBkYXRhIHN5bWJvbHMgYW5kIHRhZworKwkg ICAgICAjIHRoZW0gYXMgc3VjaC4gU28sIHRyaWdnZXIgdXNlIG9mIGV4cG9ydF9zeW1ib2xzX2Nt ZHMuCisrCSAgICAgICMgZXhwb3J0X3N5bWJvbHMgZ2V0cyByZWFzc2lnbmVkIGluc2lkZSB0aGUg InByZXBhcmUKKysJICAgICAgIyB0aGUgbGlzdCBvZiBleHBvcnRlZCBzeW1ib2xzIiBpZiBzdGF0 ZW1lbnQsIHNvIHRoZQorKwkgICAgICAjIGluY2x1ZGVfZXhwc3ltcyBsb2dpYyBzdGlsbCB3b3Jr cy4KKysJICAgICAgb3JpZ19leHBvcnRfc3ltYm9scz0iJGV4cG9ydF9zeW1ib2xzIgorKwkgICAg ICBleHBvcnRfc3ltYm9scz0KKysJICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzPXllcworKwkg ICAgZmkKKysJICBmaQorKwkgIDs7CisrCWVzYWMKKysKKysJIyBQcmVwYXJlIHRoZSBsaXN0IG9m IGV4cG9ydGVkIHN5bWJvbHMKKysJaWYgdGVzdCAteiAiJGV4cG9ydF9zeW1ib2xzIjsgdGhlbgor KwkgIGlmIHRlc3QgIiRhbHdheXNfZXhwb3J0X3N5bWJvbHMiID0geWVzIHx8IHRlc3QgLW4gIiRl eHBvcnRfc3ltYm9sc19yZWdleCI7IHRoZW4KKysJICAgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGlu ZyBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYSciCisrCSAgICBleHBvcnRfc3ltYm9scz0i JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZXhwIgorKwkgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAk ZXhwb3J0X3N5bWJvbHMKKysJICAgIGNtZHM9JGV4cG9ydF9zeW1ib2xzX2NtZHMKKysJICAgIHNh dmVfaWZzPSIkSUZTIjsgSUZTPSd+JworKwkgICAgZm9yIGNtZCBpbiAkY21kczsgZG8KKysJICAg ICAgSUZTPSIkc2F2ZV9pZnMiCisrCSAgICAgIGV2YWwgY21kPVwiJGNtZFwiCisrCSAgICAgIGZ1 bmNfbGVuICIgJGNtZCIKKysJICAgICAgbGVuPSRmdW5jX2xlbl9yZXN1bHQKKysJICAgICAgaWYg dGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iIHx8IHRlc3QgIiRtYXhfY21kX2xlbiIgLWxl IC0xOyB0aGVuCisrCQlmdW5jX3Nob3dfZXZhbCAiJGNtZCIgJ2V4aXQgJD8nCisrCQlza2lwcGVk X2V4cG9ydD1mYWxzZQorKwkgICAgICBlbHNlCisrCQkjIFRoZSBjb21tYW5kIGxpbmUgaXMgdG9v IGxvbmcgdG8gZXhlY3V0ZSBpbiBvbmUgc3RlcC4KKysJCWZ1bmNfdmVyYm9zZSAidXNpbmcgcmVs b2FkYWJsZSBvYmplY3QgZmlsZSBmb3IgZXhwb3J0IGxpc3QuLi4iCisrCQlza2lwcGVkX2V4cG9y dD06CisrCQkjIEJyZWFrIG91dCBlYXJseSwgb3RoZXJ3aXNlIHNraXBwZWRfZXhwb3J0IG1heSBi ZQorKwkJIyBzZXQgdG8gZmFsc2UgYnkgYSBsYXRlciBidXQgc2hvcnRlciBjbWQuCisrCQlicmVh aworKwkgICAgICBmaQorKwkgICAgZG9uZQorKwkgICAgSUZTPSIkc2F2ZV9pZnMiCisrCSAgICBp ZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICYmIHRlc3QgIlgkc2tpcHBlZF9leHBv cnQiICE9ICJYOiI7IHRoZW4KKysJICAgICAgZnVuY19zaG93X2V2YWwgJyRFR1JFUCAtZSAiJGV4 cG9ydF9zeW1ib2xzX3JlZ2V4IiAiJGV4cG9ydF9zeW1ib2xzIiA+ICIke2V4cG9ydF9zeW1ib2xz fVQiJworKwkgICAgICBmdW5jX3Nob3dfZXZhbCAnJE1WICIke2V4cG9ydF9zeW1ib2xzfVQiICIk ZXhwb3J0X3N5bWJvbHMiJworKwkgICAgZmkKKysJICBmaQorKwlmaQorKworKwlpZiB0ZXN0IC1u ICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRpbmNsdWRlX2V4cHN5bXMiOyB0aGVuCisr CSAgdG1wX2V4cG9ydF9zeW1ib2xzPSIkZXhwb3J0X3N5bWJvbHMiCisrCSAgdGVzdCAtbiAiJG9y aWdfZXhwb3J0X3N5bWJvbHMiICYmIHRtcF9leHBvcnRfc3ltYm9scz0iJG9yaWdfZXhwb3J0X3N5 bWJvbHMiCisrCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgJyRFQ0hPICIkaW5jbHVkZV9leHBzeW1z IiB8ICRTUDJOTCA+PiAiJHRtcF9leHBvcnRfc3ltYm9scyInCisrCWZpCisrCisrCWlmIHRlc3Qg Ilgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiIgJiYgdGVzdCAtbiAiJG9yaWdfZXhwb3J0X3N5bWJv bHMiOyB0aGVuCisrCSAgIyBUaGUgZ2l2ZW4gZXhwb3J0c19zeW1ib2xzIGZpbGUgaGFzIHRvIGJl IGZpbHRlcmVkLCBzbyBmaWx0ZXIgaXQuCisrCSAgZnVuY192ZXJib3NlICJmaWx0ZXIgc3ltYm9s IGxpc3QgZm9yIFxgJGxpYm5hbWUubGEnIHRvIHRhZyBEQVRBIGV4cG9ydHMiCisrCSAgIyBGSVhN RTogJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIHBvdGVudGlhbGx5IGNvbnRhaW5zIGxv dHMgb2YKKysJICAjICdzJyBjb21tYW5kcyB3aGljaCBub3QgYWxsIHNlZHMgY2FuIGhhbmRsZS4g R05VIHNlZCBzaG91bGQgYmUgZmluZQorKwkgICMgdGhvdWdoLiBBbHNvLCB0aGUgZmlsdGVyIHNj YWxlcyBzdXBlcmxpbmVhcmx5IHdpdGggdGhlIG51bWJlciBvZgorKwkgICMgZ2xvYmFsIHZhcmlh Ymxlcy4gam9pbigxKSB3b3VsZCBiZSBuaWNlIGhlcmUsIGJ1dCB1bmZvcnR1bmF0ZWx5CisrCSAg IyBpc24ndCBhIGJsZXNzZWQgdG9vbC4KKysJICAkb3B0X2RyeV9ydW4gfHwgJFNFRCAtZSAnL1sg LF1EQVRBLyFkO3MsXCguKlwpXChbIFwsXS4qXCksc3xeXDEkfFwxXDJ8LCcgPCAkZXhwb3J0X3N5 bWJvbHMgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIKKysJICBkZWxmaWxlcz0iJGRl bGZpbGVzICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIiCisr CSAgZXhwb3J0X3N5bWJvbHM9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmCisrCSAgJG9wdF9k cnlfcnVuIHx8ICRTRUQgLWYgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIDwgJG9yaWdf ZXhwb3J0X3N5bWJvbHMgPiAkZXhwb3J0X3N5bWJvbHMKKysJZmkKKysKKysJdG1wX2RlcGxpYnM9 CisrCWZvciB0ZXN0X2RlcGxpYiBpbiAkZGVwbGliczsgZG8KKysJICBjYXNlICIgJGNvbnZlbmll bmNlICIgaW4KKysJICAqIiAkdGVzdF9kZXBsaWIgIiopIDs7CisrCSAgKikKKysJICAgIHRtcF9k ZXBsaWJzPSIkdG1wX2RlcGxpYnMgJHRlc3RfZGVwbGliIgorKwkgICAgOzsKKysJICBlc2FjCisr CWRvbmUKKysJZGVwbGlicz0iJHRtcF9kZXBsaWJzIgorKworKwlpZiB0ZXN0IC1uICIkY29udmVu aWVuY2UiOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIiAm JgorKwkgICAgdGVzdCAiJGNvbXBpbGVyX25lZWRzX29iamVjdCIgPSB5ZXMgJiYKKysJICAgIHRl c3QgLXogIiRsaWJvYmpzIjsgdGhlbgorKwkgICAgIyBleHRyYWN0IHRoZSBhcmNoaXZlcywgc28g d2UgaGF2ZSBvYmplY3RzIHRvIGxpc3QuCisrCSAgICAjIFRPRE86IGNvdWxkIG9wdGltaXplIHRo aXMgdG8ganVzdCBleHRyYWN0IG9uZSBhcmNoaXZlLgorKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWM9CisrCSAgZmkKKysJICBpZiB0ZXN0IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMi OyB0aGVuCisrCSAgICBzYXZlX2xpYm9ianM9JGxpYm9ianMKKysJICAgIGV2YWwgbGlib2Jqcz1c IlwkbGlib2JqcyAkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNcIgorKwkgICAgdGVzdCAiWCRsaWJv YmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KKysJICBlbHNlCisrCSAgICBnZW50b3A9IiRvdXRwdXRf b2JqZGlyLyR7b3V0cHV0bmFtZX14IgorKwkgICAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50 b3AiCisrCisrCSAgICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkY29udmVuaWVuY2UK KysJICAgIGxpYm9ianM9IiRsaWJvYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0Igor KwkgICAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KKysJICBmaQorKwlmaQor KworKwlpZiB0ZXN0ICIkdGhyZWFkX3NhZmUiID0geWVzICYmIHRlc3QgLW4gIiR0aHJlYWRfc2Fm ZV9mbGFnX3NwZWMiOyB0aGVuCisrCSAgZXZhbCBmbGFnPVwiJHRocmVhZF9zYWZlX2ZsYWdfc3Bl Y1wiCisrCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRmbGFnIgorKwlmaQorKworKwkj IE1ha2UgYSBiYWNrdXAgb2YgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgd2hlbiByZWxpbmtpbmcK KysJaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCisrCSAgJG9wdF9kcnlfcnVuIHx8IGV2 YWwgJyhjZCAkb3V0cHV0X29iamRpciAmJiAkUk0gJHtyZWFsbmFtZX1VICYmICRNViAkcmVhbG5h bWUgJHtyZWFsbmFtZX1VKScgfHwgZXhpdCAkPworKwlmaQorKworKwkjIERvIGVhY2ggb2YgdGhl IGFyY2hpdmUgY29tbWFuZHMuCisrCWlmIHRlc3QgIiRtb2R1bGUiID0geWVzICYmIHRlc3QgLW4g IiRtb2R1bGVfY21kcyIgOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAm JiB0ZXN0IC1uICIkbW9kdWxlX2V4cHN5bV9jbWRzIjsgdGhlbgorKwkgICAgZXZhbCB0ZXN0X2Nt ZHM9XCIkbW9kdWxlX2V4cHN5bV9jbWRzXCIKKysJICAgIGNtZHM9JG1vZHVsZV9leHBzeW1fY21k cworKwkgIGVsc2UKKysJICAgIGV2YWwgdGVzdF9jbWRzPVwiJG1vZHVsZV9jbWRzXCIKKysJICAg IGNtZHM9JG1vZHVsZV9jbWRzCisrCSAgZmkKKysJZWxzZQorKwkgIGlmIHRlc3QgLW4gIiRleHBv cnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGFyY2hpdmVfZXhwc3ltX2NtZHMiOyB0aGVuCisrCSAg ICBldmFsIHRlc3RfY21kcz1cIiRhcmNoaXZlX2V4cHN5bV9jbWRzXCIKKysJICAgIGNtZHM9JGFy Y2hpdmVfZXhwc3ltX2NtZHMKKysJICBlbHNlCisrCSAgICBldmFsIHRlc3RfY21kcz1cIiRhcmNo aXZlX2NtZHNcIgorKwkgICAgY21kcz0kYXJjaGl2ZV9jbWRzCisrCSAgZmkKKysJZmkKKysKKysJ aWYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6IiAmJgorKwkgICBmdW5jX2xlbiAiICR0 ZXN0X2NtZHMiICYmCisrCSAgIGxlbj0kZnVuY19sZW5fcmVzdWx0ICYmCisrCSAgIHRlc3QgIiRs ZW4iIC1sdCAiJG1heF9jbWRfbGVuIiB8fCB0ZXN0ICIkbWF4X2NtZF9sZW4iIC1sZSAtMTsgdGhl bgorKwkgIDoKKysJZWxzZQorKwkgICMgVGhlIGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZyB0byBs aW5rIGluIG9uZSBzdGVwLCBsaW5rIHBpZWNld2lzZQorKwkgICMgb3IsIGlmIHVzaW5nIEdOVSBs ZCBhbmQgc2tpcHBlZF9leHBvcnQgaXMgbm90IDosIHVzZSBhIGxpbmtlcgorKwkgICMgc2NyaXB0 LgorKworKwkgICMgU2F2ZSB0aGUgdmFsdWUgb2YgJG91dHB1dCBhbmQgJGxpYm9ianMgYmVjYXVz ZSB3ZSB3YW50IHRvCisrCSAgIyB1c2UgdGhlbSBsYXRlci4gIElmIHdlIGhhdmUgd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMsIHdlCisrCSAgIyB3YW50IHRvIHVzZSBzYXZlX2xpYm9ianMgYXMgaXQg d2FzIGJlZm9yZQorKwkgICMgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMgd2FzIGV4cGFuZGVkLCBi ZWNhdXNlIHdlIGNhbid0CisrCSAgIyBhc3N1bWUgdGhlIGxpbmtlciB1bmRlcnN0YW5kcyB3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlYy4KKysJICAjIFRoaXMgbWF5IGhhdmUgdG8gYmUgcmV2aXNpdGVk LCBpbiBjYXNlIHRvbyBtYW55CisrCSAgIyBjb252ZW5pZW5jZSBsaWJyYXJpZXMgZ2V0IGxpbmtl ZCBpbiBhbmQgZW5kIHVwIGV4Y2VlZGluZworKwkgICMgdGhlIHNwZWMuCisrCSAgaWYgdGVzdCAt eiAiJGNvbnZlbmllbmNlIiB8fCB0ZXN0IC16ICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0 aGVuCisrCSAgICBzYXZlX2xpYm9ianM9JGxpYm9ianMKKysJICBmaQorKwkgIHNhdmVfb3V0cHV0 PSRvdXRwdXQKKysJICBmdW5jX2Jhc2VuYW1lICIkb3V0cHV0IgorKwkgIG91dHB1dF9sYT0kZnVu Y19iYXNlbmFtZV9yZXN1bHQKKysKKysJICAjIENsZWFyIHRoZSByZWxvYWRhYmxlIG9iamVjdCBj cmVhdGlvbiBjb21tYW5kIHF1ZXVlIGFuZAorKwkgICMgaW5pdGlhbGl6ZSBrIHRvIG9uZS4KKysJ ICB0ZXN0X2NtZHM9CisrCSAgY29uY2F0X2NtZHM9CisrCSAgb2JqbGlzdD0KKysJICBsYXN0X3Jv Ymo9CisrCSAgaz0xCisrCisrCSAgaWYgdGVzdCAtbiAiJHNhdmVfbGlib2JqcyIgJiYgdGVzdCAi WCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6IiAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0 aGVuCisrCSAgICBvdXRwdXQ9JHtvdXRwdXRfb2JqZGlyfS8ke291dHB1dF9sYX0ubG5rc2NyaXB0 CisrCSAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nIEdOVSBsZCBzY3JpcHQ6ICRvdXRwdXQiCisr CSAgICBlY2hvICdJTlBVVCAoJyA+ICRvdXRwdXQKKysJICAgIGZvciBvYmogaW4gJHNhdmVfbGli b2JqcworKwkgICAgZG8KKysJICAgICAgJEVDSE8gIiRvYmoiID4+ICRvdXRwdXQKKysJICAgIGRv bmUKKysJICAgIGVjaG8gJyknID4+ICRvdXRwdXQKKysJICAgIGRlbGZpbGVzPSIkZGVsZmlsZXMg JG91dHB1dCIKKysJICBlbGlmIHRlc3QgLW4gIiRzYXZlX2xpYm9ianMiICYmIHRlc3QgIlgkc2tp cHBlZF9leHBvcnQiICE9ICJYOiIgJiYgdGVzdCAiWCRmaWxlX2xpc3Rfc3BlYyIgIT0gWDsgdGhl bgorKwkgICAgb3V0cHV0PSR7b3V0cHV0X29iamRpcn0vJHtvdXRwdXRfbGF9LmxuaworKwkgICAg ZnVuY192ZXJib3NlICJjcmVhdGluZyBsaW5rZXIgaW5wdXQgZmlsZSBsaXN0OiAkb3V0cHV0Igor KwkgICAgOiA+ICRvdXRwdXQKKysJICAgIHNldCB4ICRzYXZlX2xpYm9ianMKKysJICAgIHNoaWZ0 CisrCSAgICBmaXJzdG9iaj0KKysJICAgIGlmIHRlc3QgIiRjb21waWxlcl9uZWVkc19vYmplY3Qi ID0geWVzOyB0aGVuCisrCSAgICAgIGZpcnN0b2JqPSIkMSAiCisrCSAgICAgIHNoaWZ0CisrCSAg ICBmaQorKwkgICAgZm9yIG9iagorKwkgICAgZG8KKysJICAgICAgJEVDSE8gIiRvYmoiID4+ICRv dXRwdXQKKysJICAgIGRvbmUKKysJICAgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJG91dHB1dCIKKysJ ICAgIG91dHB1dD0kZmlyc3RvYmpcIiRmaWxlX2xpc3Rfc3BlYyRvdXRwdXRcIgorKwkgIGVsc2UK KysJICAgIGlmIHRlc3QgLW4gIiRzYXZlX2xpYm9ianMiOyB0aGVuCisrCSAgICAgIGZ1bmNfdmVy Ym9zZSAiY3JlYXRpbmcgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMuLi4iCisrCSAgICAgIG91dHB1 dD0kb3V0cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30uJG9iamV4dAorKwkgICAgICBldmFsIHRl c3RfY21kcz1cIiRyZWxvYWRfY21kc1wiCisrCSAgICAgIGZ1bmNfbGVuICIgJHRlc3RfY21kcyIK KysJICAgICAgbGVuMD0kZnVuY19sZW5fcmVzdWx0CisrCSAgICAgIGxlbj0kbGVuMAorKworKwkg ICAgICAjIExvb3Agb3ZlciB0aGUgbGlzdCBvZiBvYmplY3RzIHRvIGJlIGxpbmtlZC4KKysJICAg ICAgZm9yIG9iaiBpbiAkc2F2ZV9saWJvYmpzCisrCSAgICAgIGRvCisrCQlmdW5jX2xlbiAiICRv YmoiCisrCQlmdW5jX2FyaXRoICRsZW4gKyAkZnVuY19sZW5fcmVzdWx0CisrCQlsZW49JGZ1bmNf YXJpdGhfcmVzdWx0CisrCQlpZiB0ZXN0ICJYJG9iamxpc3QiID0gWCB8fAorKwkJICAgdGVzdCAi JGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iOyB0aGVuCisrCQkgIGZ1bmNfYXBwZW5kIG9iamxpc3Qg IiAkb2JqIgorKwkJZWxzZQorKwkJICAjIFRoZSBjb21tYW5kICR0ZXN0X2NtZHMgaXMgYWxtb3N0 IHRvbyBsb25nLCBhZGQgYQorKwkJICAjIGNvbW1hbmQgdG8gdGhlIHF1ZXVlLgorKwkJICBpZiB0 ZXN0ICIkayIgLWVxIDEgOyB0aGVuCisrCQkgICAgIyBUaGUgZmlyc3QgZmlsZSBkb2Vzbid0IGhh dmUgYSBwcmV2aW91cyBjb21tYW5kIHRvIGFkZC4KKysJCSAgICByZWxvYWRfb2Jqcz0kb2JqbGlz dAorKwkJICAgIGV2YWwgY29uY2F0X2NtZHM9XCIkcmVsb2FkX2NtZHNcIgorKwkJICBlbHNlCisr CQkgICAgIyBBbGwgc3Vic2VxdWVudCByZWxvYWRhYmxlIG9iamVjdCBmaWxlcyB3aWxsIGxpbmsg aW4KKysJCSAgICAjIHRoZSBsYXN0IG9uZSBjcmVhdGVkLgorKwkJICAgIHJlbG9hZF9vYmpzPSIk b2JqbGlzdCAkbGFzdF9yb2JqIgorKwkJICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJGNvbmNhdF9j bWRzfiRyZWxvYWRfY21kc35cJFJNICRsYXN0X3JvYmpcIgorKwkJICBmaQorKwkJICBsYXN0X3Jv Ymo9JG91dHB1dF9vYmpkaXIvJG91dHB1dF9sYS0ke2t9LiRvYmpleHQKKysJCSAgZnVuY19hcml0 aCAkayArIDEKKysJCSAgaz0kZnVuY19hcml0aF9yZXN1bHQKKysJCSAgb3V0cHV0PSRvdXRwdXRf b2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0CisrCQkgIG9iamxpc3Q9IiAkb2JqIgorKwkJ ICBmdW5jX2xlbiAiICRsYXN0X3JvYmoiCisrCQkgIGZ1bmNfYXJpdGggJGxlbjAgKyAkZnVuY19s ZW5fcmVzdWx0CisrCQkgIGxlbj0kZnVuY19hcml0aF9yZXN1bHQKKysJCWZpCisrCSAgICAgIGRv bmUKKysJICAgICAgIyBIYW5kbGUgdGhlIHJlbWFpbmluZyBvYmplY3RzIGJ5IGNyZWF0aW5nIG9u ZSBsYXN0CisrCSAgICAgICMgcmVsb2FkYWJsZSBvYmplY3QgZmlsZS4gIEFsbCBzdWJzZXF1ZW50 IHJlbG9hZGFibGUgb2JqZWN0CisrCSAgICAgICMgZmlsZXMgd2lsbCBsaW5rIGluIHRoZSBsYXN0 IG9uZSBjcmVhdGVkLgorKwkgICAgICB0ZXN0IC16ICIkY29uY2F0X2NtZHMiIHx8IGNvbmNhdF9j bWRzPSRjb25jYXRfY21kc34KKysJICAgICAgcmVsb2FkX29ianM9IiRvYmpsaXN0ICRsYXN0X3Jv YmoiCisrCSAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJHtjb25jYXRfY21kc30kcmVsb2FkX2Nt ZHNcIgorKwkgICAgICBpZiB0ZXN0IC1uICIkbGFzdF9yb2JqIjsgdGhlbgorKwkgICAgICAgIGV2 YWwgY29uY2F0X2NtZHM9XCJcJHtjb25jYXRfY21kc31+XCRSTSAkbGFzdF9yb2JqXCIKKysJICAg ICAgZmkKKysJICAgICAgZGVsZmlsZXM9IiRkZWxmaWxlcyAkb3V0cHV0IgorKworKwkgICAgZWxz ZQorKwkgICAgICBvdXRwdXQ9CisrCSAgICBmaQorKworKwkgICAgaWYgJHtza2lwcGVkX2V4cG9y dC1mYWxzZX07IHRoZW4KKysJICAgICAgZnVuY192ZXJib3NlICJnZW5lcmF0aW5nIHN5bWJvbCBs aXN0IGZvciBcYCRsaWJuYW1lLmxhJyIKKysJICAgICAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRf b2JqZGlyLyRsaWJuYW1lLmV4cCIKKysJICAgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkZXhwb3J0 X3N5bWJvbHMKKysJICAgICAgbGlib2Jqcz0kb3V0cHV0CisrCSAgICAgICMgQXBwZW5kIHRoZSBj b21tYW5kIHRvIGNyZWF0ZSB0aGUgZXhwb3J0IGZpbGUuCisrCSAgICAgIHRlc3QgLXogIiRjb25j YXRfY21kcyIgfHwgY29uY2F0X2NtZHM9JGNvbmNhdF9jbWRzfgorKwkgICAgICBldmFsIGNvbmNh dF9jbWRzPVwiXCRjb25jYXRfY21kcyRleHBvcnRfc3ltYm9sc19jbWRzXCIKKysJICAgICAgaWYg dGVzdCAtbiAiJGxhc3Rfcm9iaiI7IHRoZW4KKysJCWV2YWwgY29uY2F0X2NtZHM9XCJcJGNvbmNh dF9jbWRzflwkUk0gJGxhc3Rfcm9ialwiCisrCSAgICAgIGZpCisrCSAgICBmaQorKworKwkgICAg dGVzdCAtbiAiJHNhdmVfbGlib2JqcyIgJiYKKysJICAgICAgZnVuY192ZXJib3NlICJjcmVhdGlu ZyBhIHRlbXBvcmFyeSByZWxvYWRhYmxlIG9iamVjdCBmaWxlOiAkb3V0cHV0IgorKworKwkgICAg IyBMb29wIHRocm91Z2ggdGhlIGNvbW1hbmRzIGdlbmVyYXRlZCBhYm92ZSBhbmQgZXhlY3V0ZSB0 aGVtLgorKwkgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCisrCSAgICBmb3IgY21kIGluICRj b25jYXRfY21kczsgZG8KKysJICAgICAgSUZTPSIkc2F2ZV9pZnMiCisrCSAgICAgICRvcHRfc2ls ZW50IHx8IHsKKysJCSAgZnVuY19xdW90ZV9mb3JfZXhwYW5kICIkY21kIgorKwkJICBldmFsICJm dW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQiCisrCSAgICAgIH0KKysJICAg ICAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgIiRjbWQiIHx8IHsKKysJCWx0X2V4aXQ9JD8KKysKKysJ CSMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBhbmQgZXhpdAorKwkJaWYgdGVzdCAi JG1vZGUiID0gcmVsaW5rOyB0aGVuCisrCQkgICggY2QgIiRvdXRwdXRfb2JqZGlyIiAmJiBcCisr CQkgICAgJFJNICIke3JlYWxuYW1lfVQiICYmIFwKKysJCSAgICAkTVYgIiR7cmVhbG5hbWV9VSIg IiRyZWFsbmFtZSIgKQorKwkJZmkKKysKKysJCWV4aXQgJGx0X2V4aXQKKysJICAgICAgfQorKwkg ICAgZG9uZQorKwkgICAgSUZTPSIkc2F2ZV9pZnMiCisrCisrCSAgICBpZiB0ZXN0IC1uICIkZXhw b3J0X3N5bWJvbHNfcmVnZXgiICYmICR7c2tpcHBlZF9leHBvcnQtZmFsc2V9OyB0aGVuCisrCSAg ICAgIGZ1bmNfc2hvd19ldmFsICckRUdSRVAgLWUgIiRleHBvcnRfc3ltYm9sc19yZWdleCIgIiRl eHBvcnRfc3ltYm9scyIgPiAiJHtleHBvcnRfc3ltYm9sc31UIicKKysJICAgICAgZnVuY19zaG93 X2V2YWwgJyRNViAiJHtleHBvcnRfc3ltYm9sc31UIiAiJGV4cG9ydF9zeW1ib2xzIicKKysJICAg IGZpCisrCSAgZmkKKysKKysgICAgICAgICAgaWYgJHtza2lwcGVkX2V4cG9ydC1mYWxzZX07IHRo ZW4KKysJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGluY2x1 ZGVfZXhwc3ltcyI7IHRoZW4KKysJICAgICAgdG1wX2V4cG9ydF9zeW1ib2xzPSIkZXhwb3J0X3N5 bWJvbHMiCisrCSAgICAgIHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9zeW1ib2xzIiAmJiB0bXBfZXhw b3J0X3N5bWJvbHM9IiRvcmlnX2V4cG9ydF9zeW1ib2xzIgorKwkgICAgICAkb3B0X2RyeV9ydW4g fHwgZXZhbCAnJEVDSE8gIiRpbmNsdWRlX2V4cHN5bXMiIHwgJFNQMk5MID4+ICIkdG1wX2V4cG9y dF9zeW1ib2xzIicKKysJICAgIGZpCisrCisrCSAgICBpZiB0ZXN0IC1uICIkb3JpZ19leHBvcnRf c3ltYm9scyI7IHRoZW4KKysJICAgICAgIyBUaGUgZ2l2ZW4gZXhwb3J0c19zeW1ib2xzIGZpbGUg aGFzIHRvIGJlIGZpbHRlcmVkLCBzbyBmaWx0ZXIgaXQuCisrCSAgICAgIGZ1bmNfdmVyYm9zZSAi ZmlsdGVyIHN5bWJvbCBsaXN0IGZvciBcYCRsaWJuYW1lLmxhJyB0byB0YWcgREFUQSBleHBvcnRz IgorKwkgICAgICAjIEZJWE1FOiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIgcG90ZW50 aWFsbHkgY29udGFpbnMgbG90cyBvZgorKwkgICAgICAjICdzJyBjb21tYW5kcyB3aGljaCBub3Qg YWxsIHNlZHMgY2FuIGhhbmRsZS4gR05VIHNlZCBzaG91bGQgYmUgZmluZQorKwkgICAgICAjIHRo b3VnaC4gQWxzbywgdGhlIGZpbHRlciBzY2FsZXMgc3VwZXJsaW5lYXJseSB3aXRoIHRoZSBudW1i ZXIgb2YKKysJICAgICAgIyBnbG9iYWwgdmFyaWFibGVzLiBqb2luKDEpIHdvdWxkIGJlIG5pY2Ug aGVyZSwgYnV0IHVuZm9ydHVuYXRlbHkKKysJICAgICAgIyBpc24ndCBhIGJsZXNzZWQgdG9vbC4K KysJICAgICAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWUgJy9bICxdREFUQS8hZDtzLFwoLipcKVwo WyBcLF0uKlwpLHN8XlwxJHxcMVwyfCwnIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpk aXIvJGxpYm5hbWUuZmlsdGVyCisrCSAgICAgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJGV4cG9ydF9z eW1ib2xzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciIKKysJICAgICAgZXhwb3J0X3N5 bWJvbHM9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmCisrCSAgICAgICRvcHRfZHJ5X3J1biB8 fCAkU0VEIC1mICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciA8ICRvcmlnX2V4cG9ydF9z eW1ib2xzID4gJGV4cG9ydF9zeW1ib2xzCisrCSAgICBmaQorKwkgIGZpCisrCisrCSAgbGlib2Jq cz0kb3V0cHV0CisrCSAgIyBSZXN0b3JlIHRoZSB2YWx1ZSBvZiBvdXRwdXQuCisrCSAgb3V0cHV0 PSRzYXZlX291dHB1dAorKworKwkgIGlmIHRlc3QgLW4gIiRjb252ZW5pZW5jZSIgJiYgdGVzdCAt biAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgorKwkgICAgZXZhbCBsaWJvYmpzPVwi XCRsaWJvYmpzICR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY1wiCisrCSAgICB0ZXN0ICJYJGxpYm9i anMiID0gIlggIiAmJiBsaWJvYmpzPQorKwkgIGZpCisrCSAgIyBFeHBhbmQgdGhlIGxpYnJhcnkg bGlua2luZyBjb21tYW5kcyBhZ2FpbiB0byByZXNldCB0aGUKKysJICAjIHZhbHVlIG9mICRsaWJv YmpzIGZvciBwaWVjZXdpc2UgbGlua2luZy4KKysKKysJICAjIERvIGVhY2ggb2YgdGhlIGFyY2hp dmUgY29tbWFuZHMuCisrCSAgaWYgdGVzdCAiJG1vZHVsZSIgPSB5ZXMgJiYgdGVzdCAtbiAiJG1v ZHVsZV9jbWRzIiA7IHRoZW4KKysJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYg dGVzdCAtbiAiJG1vZHVsZV9leHBzeW1fY21kcyI7IHRoZW4KKysJICAgICAgY21kcz0kbW9kdWxl X2V4cHN5bV9jbWRzCisrCSAgICBlbHNlCisrCSAgICAgIGNtZHM9JG1vZHVsZV9jbWRzCisrCSAg ICBmaQorKwkgIGVsc2UKKysJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVz dCAtbiAiJGFyY2hpdmVfZXhwc3ltX2NtZHMiOyB0aGVuCisrCSAgICAgIGNtZHM9JGFyY2hpdmVf ZXhwc3ltX2NtZHMKKysJICAgIGVsc2UKKysJICAgICAgY21kcz0kYXJjaGl2ZV9jbWRzCisrCSAg ICBmaQorKwkgIGZpCisrCWZpCisrCisrCWlmIHRlc3QgLW4gIiRkZWxmaWxlcyI7IHRoZW4KKysJ ICAjIEFwcGVuZCB0aGUgY29tbWFuZCB0byByZW1vdmUgdGVtcG9yYXJ5IGZpbGVzIHRvICRjbWRz LgorKwkgIGV2YWwgY21kcz1cIlwkY21kc35cJFJNICRkZWxmaWxlc1wiCisrCWZpCisrCisrCSMg QWRkIGFueSBvYmplY3RzIGZyb20gcHJlbG9hZGVkIGNvbnZlbmllbmNlIGxpYnJhcmllcworKwlp ZiB0ZXN0IC1uICIkZGxwcmVmaWxlcyI7IHRoZW4KKysJICBnZW50b3A9IiRvdXRwdXRfb2JqZGly LyR7b3V0cHV0bmFtZX14IgorKwkgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgorKwor KwkgIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRkbHByZWZpbGVzCisrCSAgbGlib2Jq cz0iJGxpYm9ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisrCSAgdGVzdCAiWCRs aWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KKysJZmkKKysKKysJc2F2ZV9pZnM9IiRJRlMiOyBJ RlM9J34nCisrCWZvciBjbWQgaW4gJGNtZHM7IGRvCisrCSAgSUZTPSIkc2F2ZV9pZnMiCisrCSAg ZXZhbCBjbWQ9XCIkY21kXCIKKysJICAkb3B0X3NpbGVudCB8fCB7CisrCSAgICBmdW5jX3F1b3Rl X2Zvcl9leHBhbmQgIiRjbWQiCisrCSAgICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9y X2V4cGFuZF9yZXN1bHQiCisrCSAgfQorKwkgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkY21kIiB8 fCB7CisrCSAgICBsdF9leGl0PSQ/CisrCisrCSAgICAjIFJlc3RvcmUgdGhlIHVuaW5zdGFsbGVk IGxpYnJhcnkgYW5kIGV4aXQKKysJICAgIGlmIHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgor KwkgICAgICAoIGNkICIkb3V0cHV0X29iamRpciIgJiYgXAorKwkgICAgICAgICRSTSAiJHtyZWFs bmFtZX1UIiAmJiBcCisrCQkkTVYgIiR7cmVhbG5hbWV9VSIgIiRyZWFsbmFtZSIgKQorKwkgICAg ZmkKKysKKysJICAgIGV4aXQgJGx0X2V4aXQKKysJICB9CisrCWRvbmUKKysJSUZTPSIkc2F2ZV9p ZnMiCisrCisrCSMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBhbmQgZXhpdAorKwlp ZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KKysJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAn KGNkICRvdXRwdXRfb2JqZGlyICYmICRSTSAke3JlYWxuYW1lfVQgJiYgJE1WICRyZWFsbmFtZSAk e3JlYWxuYW1lfVQgJiYgJE1WICR7cmVhbG5hbWV9VSAkcmVhbG5hbWUpJyB8fCBleGl0ICQ/Cisr CisrCSAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgorKwkgICAgaWYgdGVzdCAteiAi JHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgorKwkgICAgICBmdW5jX3Nob3dfZXZhbCAn JHtSTX1yICIkZ2VudG9wIicKKysJICAgIGZpCisrCSAgZmkKKysKKysJICBleGl0ICRFWElUX1NV Q0NFU1MKKysJZmkKKysKKysJIyBDcmVhdGUgbGlua3MgdG8gdGhlIHJlYWwgbGlicmFyeS4KKysJ Zm9yIGxpbmtuYW1lIGluICRsaW5rbmFtZXM7IGRvCisrCSAgaWYgdGVzdCAiJHJlYWxuYW1lIiAh PSAiJGxpbmtuYW1lIjsgdGhlbgorKwkgICAgZnVuY19zaG93X2V2YWwgJyhjZCAiJG91dHB1dF9v YmpkaXIiICYmICRSTSAiJGxpbmtuYW1lIiAmJiAkTE5fUyAiJHJlYWxuYW1lIiAiJGxpbmtuYW1l IiknICdleGl0ICQ/JworKwkgIGZpCisrCWRvbmUKKysKKysJIyBJZiAtbW9kdWxlIG9yIC1leHBv cnQtZHluYW1pYyB3YXMgc3BlY2lmaWVkLCBzZXQgdGhlIGRsbmFtZS4KKysJaWYgdGVzdCAiJG1v ZHVsZSIgPSB5ZXMgfHwgdGVzdCAiJGV4cG9ydF9keW5hbWljIiA9IHllczsgdGhlbgorKwkgICMg T24gYWxsIGtub3duIG9wZXJhdGluZyBzeXN0ZW1zLCB0aGVzZSBhcmUgaWRlbnRpY2FsLgorKwkg IGRsbmFtZT0iJHNvbmFtZSIKKysJZmkKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIG9i aikKKysgICAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0ZXN0ICIkZGxz ZWxmIiAhPSBubzsgdGhlbgorKwlmdW5jX3dhcm5pbmcgIlxgLWRsb3BlbicgaXMgaWdub3JlZCBm b3Igb2JqZWN0cyIKKysgICAgICBmaQorKworKyAgICAgIGNhc2UgIiAkZGVwbGlicyIgaW4KKysg ICAgICAqXCAtbCogfCAqXCAtTCopCisrCWZ1bmNfd2FybmluZyAiXGAtbCcgYW5kIFxgLUwnIGFy ZSBpZ25vcmVkIGZvciBvYmplY3RzIiA7OworKyAgICAgIGVzYWMKKysKKysgICAgICB0ZXN0IC1u ICIkcnBhdGgiICYmIFwKKysJZnVuY193YXJuaW5nICJcYC1ycGF0aCcgaXMgaWdub3JlZCBmb3Ig b2JqZWN0cyIKKysKKysgICAgICB0ZXN0IC1uICIkeHJwYXRoIiAmJiBcCisrCWZ1bmNfd2Fybmlu ZyAiXGAtUicgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIKKysKKysgICAgICB0ZXN0IC1uICIkdmlu Zm8iICYmIFwKKysJZnVuY193YXJuaW5nICJcYC12ZXJzaW9uLWluZm8nIGlzIGlnbm9yZWQgZm9y IG9iamVjdHMiCisrCisrICAgICAgdGVzdCAtbiAiJHJlbGVhc2UiICYmIFwKKysJZnVuY193YXJu aW5nICJcYC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIgorKworKyAgICAgIGNhc2Ug JG91dHB1dCBpbgorKyAgICAgICoubG8pCisrCXRlc3QgLW4gIiRvYmpzJG9sZF9kZXBsaWJzIiAm JiBcCisrCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGJ1aWxkIGxpYnJhcnkgb2JqZWN0IFxg JG91dHB1dCcgZnJvbSBub24tbGlidG9vbCBvYmplY3RzIgorKworKwlsaWJvYmo9JG91dHB1dAor KwlmdW5jX2xvMm8gIiRsaWJvYmoiCisrCW9iaj0kZnVuY19sbzJvX3Jlc3VsdAorKwk7OworKyAg ICAgICopCisrCWxpYm9iaj0KKysJb2JqPSIkb3V0cHV0IgorKwk7OworKyAgICAgIGVzYWMKKysK KysgICAgICAjIERlbGV0ZSB0aGUgb2xkIG9iamVjdHMuCisrICAgICAgJG9wdF9kcnlfcnVuIHx8 ICRSTSAkb2JqICRsaWJvYmoKKysKKysgICAgICAjIE9iamVjdHMgZnJvbSBjb252ZW5pZW5jZSBs aWJyYXJpZXMuICBUaGlzIGFzc3VtZXMKKysgICAgICAjIHNpbmdsZS12ZXJzaW9uIGNvbnZlbmll bmNlIGxpYnJhcmllcy4gIFdoZW5ldmVyIHdlIGNyZWF0ZQorKyAgICAgICMgZGlmZmVyZW50IG9u ZXMgZm9yIFBJQy9ub24tUElDLCB0aGlzIHdlJ2xsIGhhdmUgdG8gZHVwbGljYXRlCisrICAgICAg IyB0aGUgZXh0cmFjdGlvbi4KKysgICAgICByZWxvYWRfY29udl9vYmpzPQorKyAgICAgIGdlbnRv cD0KKysgICAgICAjIHJlbG9hZF9jbWRzIHJ1bnMgJExEIGRpcmVjdGx5LCBzbyBsZXQgdXMgZ2V0 IHJpZCBvZgorKyAgICAgICMgLVdsIGZyb20gd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMgYW5kIGhv cGUgd2UgY2FuIGdldCBieSB3aXRoCisrICAgICAgIyB0dXJuaW5nIGNvbW1hIGludG8gc3BhY2Uu LgorKyAgICAgIHdsPQorKworKyAgICAgIGlmIHRlc3QgLW4gIiRjb252ZW5pZW5jZSI7IHRoZW4K KysJaWYgdGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgorKwkgIGV2YWwg dG1wX3dob2xlX2FyY2hpdmVfZmxhZ3M9XCIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNcIgorKwkg IHJlbG9hZF9jb252X29ianM9JHJlbG9hZF9vYmpzXCBgJEVDSE8gIiR0bXBfd2hvbGVfYXJjaGl2 ZV9mbGFncyIgfCAkU0VEICdzfCx8IHxnJ2AKKysJZWxzZQorKwkgIGdlbnRvcD0iJG91dHB1dF9v YmpkaXIvJHtvYmp9eCIKKysJICBnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKKysKKysJ ICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkY29udmVuaWVuY2UKKysJICByZWxvYWRf Y29udl9vYmpzPSIkcmVsb2FkX29ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisr CWZpCisrICAgICAgZmkKKysKKysgICAgICAjIENyZWF0ZSB0aGUgb2xkLXN0eWxlIG9iamVjdC4K KysgICAgICByZWxvYWRfb2Jqcz0iJG9ianMkb2xkX2RlcGxpYnMgImAkRUNITyAiJGxpYm9ianMi IHwgJFNQMk5MIHwgJFNFRCAiL1wuJHtsaWJleHR9JC9kOyAvXC5saWIkL2Q7ICRsbzJvIiB8ICRO TDJTUGAiICRyZWxvYWRfY29udl9vYmpzIiAjIyMgdGVzdHN1aXRlOiBza2lwIG5lc3RlZCBxdW90 aW5nIHRlc3QKKysKKysgICAgICBvdXRwdXQ9IiRvYmoiCisrICAgICAgZnVuY19leGVjdXRlX2Nt ZHMgIiRyZWxvYWRfY21kcyIgJ2V4aXQgJD8nCisrCisrICAgICAgIyBFeGl0IGlmIHdlIGFyZW4n dCBkb2luZyBhIGxpYnJhcnkgb2JqZWN0IGZpbGUuCisrICAgICAgaWYgdGVzdCAteiAiJGxpYm9i aiI7IHRoZW4KKysJaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KKysJICBmdW5jX3Nob3dfZXZh bCAnJHtSTX1yICIkZ2VudG9wIicKKysJZmkKKysKKysJZXhpdCAkRVhJVF9TVUNDRVNTCisrICAg ICAgZmkKKysKKysgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXM7IHRo ZW4KKysJaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KKysJICBmdW5jX3Nob3dfZXZhbCAnJHtS TX1yICIkZ2VudG9wIicKKysJZmkKKysKKysJIyBDcmVhdGUgYW4gaW52YWxpZCBsaWJ0b29sIG9i amVjdCBpZiBubyBQSUMsIHNvIHRoYXQgd2UgZG9uJ3QKKysJIyBhY2NpZGVudGFsbHkgbGluayBp dCBpbnRvIGEgcHJvZ3JhbS4KKysJIyAkc2hvdyAiZWNobyB0aW1lc3RhbXAgPiAkbGlib2JqIgor KwkjICRvcHRfZHJ5X3J1biB8fCBldmFsICJlY2hvIHRpbWVzdGFtcCA+ICRsaWJvYmoiIHx8IGV4 aXQgJD8KKysJZXhpdCAkRVhJVF9TVUNDRVNTCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0 IC1uICIkcGljX2ZsYWciIHx8IHRlc3QgIiRwaWNfbW9kZSIgIT0gZGVmYXVsdDsgdGhlbgorKwkj IE9ubHkgZG8gY29tbWFuZHMgaWYgd2UgcmVhbGx5IGhhdmUgZGlmZmVyZW50IFBJQyBvYmplY3Rz LgorKwlyZWxvYWRfb2Jqcz0iJGxpYm9ianMgJHJlbG9hZF9jb252X29ianMiCisrCW91dHB1dD0i JGxpYm9iaiIKKysJZnVuY19leGVjdXRlX2NtZHMgIiRyZWxvYWRfY21kcyIgJ2V4aXQgJD8nCisr ICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkZ2VudG9wIjsgdGhlbgorKwlmdW5jX3No b3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKKysgICAgICBmaQorKworKyAgICAgIGV4aXQgJEVY SVRfU1VDQ0VTUworKyAgICAgIDs7CisrCisrICAgIHByb2cpCisrICAgICAgY2FzZSAkaG9zdCBp bgorKwkqY3lnd2luKikgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkb3V0cHV0IgorKwkgICAg ICAgICAgb3V0cHV0PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQuZXhlOzsKKysgICAgICBlc2FjCisr ICAgICAgdGVzdCAtbiAiJHZpbmZvIiAmJiBcCisrCWZ1bmNfd2FybmluZyAiXGAtdmVyc2lvbi1p bmZvJyBpcyBpZ25vcmVkIGZvciBwcm9ncmFtcyIKKysKKysgICAgICB0ZXN0IC1uICIkcmVsZWFz ZSIgJiYgXAorKwlmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIHByb2dy YW1zIgorKworKyAgICAgIHRlc3QgIiRwcmVsb2FkIiA9IHllcyBcCisrICAgICAgICAmJiB0ZXN0 ICIkZGxvcGVuX3N1cHBvcnQiID0gdW5rbm93biBcCisrCSYmIHRlc3QgIiRkbG9wZW5fc2VsZiIg PSB1bmtub3duIFwKKysJJiYgdGVzdCAiJGRsb3Blbl9zZWxmX3N0YXRpYyIgPSB1bmtub3duICYm IFwKKysJICBmdW5jX3dhcm5pbmcgIlxgTFRfSU5JVChbZGxvcGVuXSknIG5vdCB1c2VkLiBBc3N1 bWluZyBubyBkbG9wZW4gc3VwcG9ydC4iCisrCisrICAgICAgY2FzZSAkaG9zdCBpbgorKyAgICAg ICotKi1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKKysJIyBPbiBSaGFwc29keSByZXBs YWNlIHRoZSBDIGxpYnJhcnkgaXMgdGhlIFN5c3RlbSBmcmFtZXdvcmsKKysJY29tcGlsZV9kZXBs aWJzPWAkRUNITyAiICRjb21waWxlX2RlcGxpYnMiIHwgJFNFRCAncy8gLWxjIC8gU3lzdGVtLmx0 ZnJhbWV3b3JrIC8nYAorKwlmaW5hbGl6ZV9kZXBsaWJzPWAkRUNITyAiICRmaW5hbGl6ZV9kZXBs aWJzIiB8ICRTRUQgJ3MvIC1sYyAvIFN5c3RlbS5sdGZyYW1ld29yayAvJ2AKKysJOzsKKysgICAg ICBlc2FjCisrCisrICAgICAgY2FzZSAkaG9zdCBpbgorKyAgICAgICotKi1kYXJ3aW4qKQorKwkj IERvbid0IGFsbG93IGxhenkgbGlua2luZywgaXQgYnJlYWtzIEMrKyBnbG9iYWwgY29uc3RydWN0 b3JzCisrCSMgQnV0IGlzIHN1cHBvc2VkbHkgZml4ZWQgb24gMTAuNCBvciBsYXRlciAoeWF5ISku CisrCWlmIHRlc3QgIiR0YWduYW1lIiA9IENYWCA7IHRoZW4KKysJICBjYXNlICR7TUFDT1NYX0RF UExPWU1FTlRfVEFSR0VULTEwLjB9IGluCisrCSAgICAxMC5bMDEyM10pCisrCSAgICAgIGNvbXBp bGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAke3dsfS1iaW5kX2F0X2xvYWQiCisrCSAgICAg IGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICR7d2x9LWJpbmRfYXRfbG9hZCIK KysJICAgIDs7CisrCSAgZXNhYworKwlmaQorKwkjIFRpbWUgdG8gY2hhbmdlIGFsbCBvdXIgImZv by5sdGZyYW1ld29yayIgc3R1ZmYgYmFjayB0byAiLWZyYW1ld29yayBmb28iCisrCWNvbXBpbGVf ZGVwbGlicz1gJEVDSE8gIiAkY29tcGlsZV9kZXBsaWJzIiB8ICRTRUQgJ3MlIFwoW14gJF0qXCku bHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisrCWZpbmFsaXplX2RlcGxpYnM9YCRFQ0hP ICIgJGZpbmFsaXplX2RlcGxpYnMiIHwgJFNFRCAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUg LWZyYW1ld29yayBcMSVnJ2AKKysJOzsKKysgICAgICBlc2FjCisrCisrCisrICAgICAgIyBtb3Zl IGxpYnJhcnkgc2VhcmNoIHBhdGhzIHRoYXQgY29pbmNpZGUgd2l0aCBwYXRocyB0byBub3QgeWV0 CisrICAgICAgIyBpbnN0YWxsZWQgbGlicmFyaWVzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxp YnJhcnkgc2VhcmNoIGxpc3QKKysgICAgICBuZXdfbGlicz0KKysgICAgICBmb3IgcGF0aCBpbiAk bm90aW5zdF9wYXRoOyBkbworKwljYXNlICIgJG5ld19saWJzICIgaW4KKysJKiIgLUwkcGF0aC8k b2JqZGlyICIqKSA7OworKwkqKQorKwkgIGNhc2UgIiAkY29tcGlsZV9kZXBsaWJzICIgaW4KKysJ ICAqIiAtTCRwYXRoLyRvYmpkaXIgIiopCisrCSAgICBuZXdfbGlicz0iJG5ld19saWJzIC1MJHBh dGgvJG9iamRpciIgOzsKKysJICBlc2FjCisrCSAgOzsKKysJZXNhYworKyAgICAgIGRvbmUKKysg ICAgICBmb3IgZGVwbGliIGluICRjb21waWxlX2RlcGxpYnM7IGRvCisrCWNhc2UgJGRlcGxpYiBp bgorKwktTCopCisrCSAgY2FzZSAiICRuZXdfbGlicyAiIGluCisrCSAgKiIgJGRlcGxpYiAiKikg OzsKKysJICAqKSBuZXdfbGlicz0iJG5ld19saWJzICRkZXBsaWIiIDs7CisrCSAgZXNhYworKwkg IDs7CisrCSopIG5ld19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKKysJZXNhYworKyAgICAg IGRvbmUKKysgICAgICBjb21waWxlX2RlcGxpYnM9IiRuZXdfbGlicyIKKysKKysKKysgICAgICBj b21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGNvbXBpbGVfZGVwbGlicyIKKysgICAg ICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAkZmluYWxpemVfZGVwbGlicyIK KysKKysgICAgICBpZiB0ZXN0IC1uICIkcnBhdGgkeHJwYXRoIjsgdGhlbgorKwkjIElmIHRoZSB1 c2VyIHNwZWNpZmllZCBhbnkgcnBhdGggZmxhZ3MsIHRoZW4gYWRkIHRoZW0uCisrCWZvciBsaWJk aXIgaW4gJHJwYXRoICR4cnBhdGg7IGRvCisrCSAgIyBUaGlzIGlzIHRoZSBtYWdpYyB0byB1c2Ug LXJwYXRoLgorKwkgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCisrCSAgKiIgJGxpYmRpciAi KikgOzsKKysJICAqKSBmaW5hbGl6ZV9ycGF0aD0iJGZpbmFsaXplX3JwYXRoICRsaWJkaXIiIDs7 CisrCSAgZXNhYworKwlkb25lCisrICAgICAgZmkKKysKKysgICAgICAjIE5vdyBoYXJkY29kZSB0 aGUgbGlicmFyeSBwYXRocworKyAgICAgIHJwYXRoPQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcnM9 CisrICAgICAgZm9yIGxpYmRpciBpbiAkY29tcGlsZV9ycGF0aCAkZmluYWxpemVfcnBhdGg7IGRv CisrCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgorKwkgIGlm IHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhlbgorKwkgICAgaWYgdGVz dCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCisrCSAgICAgIGhhcmRjb2RlX2xpYmRpcnM9 IiRsaWJkaXIiCisrCSAgICBlbHNlCisrCSAgICAgICMgSnVzdCBhY2N1bXVsYXRlIHRoZSB1bmlx dWUgbGliZGlycy4KKysJICAgICAgY2FzZSAkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRoYXJk Y29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IgaW4KKysJICAgICAgKiIkaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIq KQorKwkJOzsKKysJICAgICAgKikKKysJCWhhcmRjb2RlX2xpYmRpcnM9IiRoYXJkY29kZV9saWJk aXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgorKwkJOzsKKysJICAgICAgZXNh YworKwkgICAgZmkKKysJICBlbHNlCisrCSAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY1wiCisrCSAgICBycGF0aD0iJHJwYXRoICRmbGFnIgorKwkgIGZpCisrCWVsaWYg dGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgorKwkgIGNhc2UgIiRwZXJtX3JwYXRoICIgaW4K KysJICAqIiAkbGliZGlyICIqKSA7OworKwkgICopIHBlcm1fcnBhdGg9IiRwZXJtX3JwYXRoICRs aWJkaXIiIDs7CisrCSAgZXNhYworKwlmaQorKwljYXNlICRob3N0IGluCisrCSotKi1jeWd3aW4q IHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi1jZWdjYyopCisrCSAgdGVz dGJpbmRpcj1gJHtFQ0hPfSAiJGxpYmRpciIgfCAke1NFRH0gLWUgJ3MqL2xpYiQqL2JpbionYAor KwkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgorKwkgICoiOiRsaWJkaXI6IiopIDs7CisrCSAg OjopIGRsbHNlYXJjaHBhdGg9JGxpYmRpcjs7CisrCSAgKikgZGxsc2VhcmNocGF0aD0iJGRsbHNl YXJjaHBhdGg6JGxpYmRpciI7OworKwkgIGVzYWMKKysJICBjYXNlIDokZGxsc2VhcmNocGF0aDog aW4KKysJICAqIjokdGVzdGJpbmRpcjoiKikgOzsKKysJICA6OikgZGxsc2VhcmNocGF0aD0kdGVz dGJpbmRpcjs7CisrCSAgKikgZGxsc2VhcmNocGF0aD0iJGRsbHNlYXJjaHBhdGg6JHRlc3RiaW5k aXIiOzsKKysJICBlc2FjCisrCSAgOzsKKysJZXNhYworKyAgICAgIGRvbmUKKysgICAgICAjIFN1 YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhlIHJwYXRoLgorKyAgICAgIGlm IHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgorKwkgdGVzdCAtbiAiJGhh cmRjb2RlX2xpYmRpcnMiOyB0aGVuCisrCWxpYmRpcj0iJGhhcmRjb2RlX2xpYmRpcnMiCisrCWV2 YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgorKyAgICAgIGZpCisrICAg ICAgY29tcGlsZV9ycGF0aD0iJHJwYXRoIgorKworKyAgICAgIHJwYXRoPQorKyAgICAgIGhhcmRj b2RlX2xpYmRpcnM9CisrICAgICAgZm9yIGxpYmRpciBpbiAkZmluYWxpemVfcnBhdGg7IGRvCisr CWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgorKwkgIGlmIHRl c3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhlbgorKwkgICAgaWYgdGVzdCAt eiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCisrCSAgICAgIGhhcmRjb2RlX2xpYmRpcnM9IiRs aWJkaXIiCisrCSAgICBlbHNlCisrCSAgICAgICMgSnVzdCBhY2N1bXVsYXRlIHRoZSB1bmlxdWUg bGliZGlycy4KKysJICAgICAgY2FzZSAkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRoYXJkY29k ZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IgaW4KKysJICAgICAgKiIkaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIqKQor KwkJOzsKKysJICAgICAgKikKKysJCWhhcmRjb2RlX2xpYmRpcnM9IiRoYXJkY29kZV9saWJkaXJz JGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgorKwkJOzsKKysJICAgICAgZXNhYwor KwkgICAgZmkKKysJICBlbHNlCisrCSAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY1wiCisrCSAgICBycGF0aD0iJHJwYXRoICRmbGFnIgorKwkgIGZpCisrCWVsaWYgdGVz dCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgorKwkgIGNhc2UgIiRmaW5hbGl6ZV9wZXJtX3JwYXRo ICIgaW4KKysJICAqIiAkbGliZGlyICIqKSA7OworKwkgICopIGZpbmFsaXplX3Blcm1fcnBhdGg9 IiRmaW5hbGl6ZV9wZXJtX3JwYXRoICRsaWJkaXIiIDs7CisrCSAgZXNhYworKwlmaQorKyAgICAg IGRvbmUKKysgICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhl IHJwYXRoLgorKyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAm JgorKwkgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCisrCWxpYmRpcj0iJGhhcmRj b2RlX2xpYmRpcnMiCisrCWV2YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNc IgorKyAgICAgIGZpCisrICAgICAgZmluYWxpemVfcnBhdGg9IiRycGF0aCIKKysKKysgICAgICBp ZiB0ZXN0IC1uICIkbGlib2JqcyIgJiYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhl bgorKwkjIFRyYW5zZm9ybSBhbGwgdGhlIGxpYnJhcnkgb2JqZWN0cyBpbnRvIHN0YW5kYXJkIG9i amVjdHMuCisrCWNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIiRjb21waWxlX2NvbW1hbmQiIHwgJFNQ Mk5MIHwgJFNFRCAiJGxvMm8iIHwgJE5MMlNQYAorKwlmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAi JGZpbmFsaXplX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFNFRCAiJGxvMm8iIHwgJE5MMlNQYAorKyAg ICAgIGZpCisrCisrICAgICAgZnVuY19nZW5lcmF0ZV9kbHN5bXMgIiRvdXRwdXRuYW1lIiAiQFBS T0dSQU1AIiAibm8iCisrCisrICAgICAgIyB0ZW1wbGF0ZSBwcmVsaW5raW5nIHN0ZXAKKysgICAg ICBpZiB0ZXN0IC1uICIkcHJlbGlua19jbWRzIjsgdGhlbgorKwlmdW5jX2V4ZWN1dGVfY21kcyAi JHByZWxpbmtfY21kcyIgJ2V4aXQgJD8nCisrICAgICAgZmkKKysKKysgICAgICB3cmFwcGVyc19y ZXF1aXJlZD15ZXMKKysgICAgICBjYXNlICRob3N0IGluCisrICAgICAgKmNlZ2NjKiB8ICptaW5n dzMyY2UqKQorKyAgICAgICAgIyBEaXNhYmxlIHdyYXBwZXJzIGZvciBjZWdjYyBhbmQgbWluZ3cz MmNlIGhvc3RzLCB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nIGFueXdheS4KKysgICAgICAgIHdyYXBw ZXJzX3JlcXVpcmVkPW5vCisrICAgICAgICA7OworKyAgICAgICpjeWd3aW4qIHwgKm1pbmd3KiAp CisrICAgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXM7IHRoZW4KKysg ICAgICAgICAgd3JhcHBlcnNfcmVxdWlyZWQ9bm8KKysgICAgICAgIGZpCisrICAgICAgICA7Owor KyAgICAgICopCisrICAgICAgICBpZiB0ZXN0ICIkbmVlZF9yZWxpbmsiID0gbm8gfHwgdGVzdCAi JGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzOyB0aGVuCisrICAgICAgICAgIHdyYXBwZXJzX3Jl cXVpcmVkPW5vCisrICAgICAgICBmaQorKyAgICAgICAgOzsKKysgICAgICBlc2FjCisrICAgICAg aWYgdGVzdCAiJHdyYXBwZXJzX3JlcXVpcmVkIiA9IG5vOyB0aGVuCisrCSMgUmVwbGFjZSB0aGUg b3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KKysJY29tcGlsZV9jb21tYW5kPWAkRUNITyAiJGNv bXBpbGVfY29tbWFuZCIgfCAkU0VEICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcnYAorKwlsaW5r X2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIKKysKKysJIyBXZSBoYXZl IG5vIHVuaW5zdGFsbGVkIGxpYnJhcnkgZGVwZW5kZW5jaWVzLCBzbyBmaW5hbGl6ZSByaWdodCBu b3cuCisrCWV4aXRfc3RhdHVzPTAKKysJZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdl eGl0X3N0YXR1cz0kPycKKysKKysJIyBEZWxldGUgdGhlIGdlbmVyYXRlZCBmaWxlcy4KKysJaWYg dGVzdCAtZiAiJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfVMuJHtvYmpleHR9IjsgdGhlbgor KwkgIGZ1bmNfc2hvd19ldmFsICckUk0gIiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7 b2JqZXh0fSInCisrCWZpCisrCisrCWV4aXQgJGV4aXRfc3RhdHVzCisrICAgICAgZmkKKysKKysg ICAgICBpZiB0ZXN0IC1uICIkY29tcGlsZV9zaGxpYnBhdGgkZmluYWxpemVfc2hsaWJwYXRoIjsg dGhlbgorKwljb21waWxlX2NvbW1hbmQ9IiRzaGxpYnBhdGhfdmFyPVwiJGNvbXBpbGVfc2hsaWJw YXRoJGZpbmFsaXplX3NobGlicGF0aFwkJHNobGlicGF0aF92YXJcIiAkY29tcGlsZV9jb21tYW5k IgorKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAtbiAiJGZpbmFsaXplX3NobGlicGF0aCI7IHRo ZW4KKysJZmluYWxpemVfY29tbWFuZD0iJHNobGlicGF0aF92YXI9XCIkZmluYWxpemVfc2hsaWJw YXRoXCQkc2hsaWJwYXRoX3ZhclwiICRmaW5hbGl6ZV9jb21tYW5kIgorKyAgICAgIGZpCisrCisr ICAgICAgY29tcGlsZV92YXI9CisrICAgICAgZmluYWxpemVfdmFyPQorKyAgICAgIGlmIHRlc3Qg LW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KKysJaWYgdGVzdCAtbiAiJHBlcm1fcnBhdGgiOyB0aGVu CisrCSAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KKysJICBycGF0aD0KKysJICBm b3IgZGlyIGluICRwZXJtX3JwYXRoOyBkbworKwkgICAgcnBhdGg9IiRycGF0aCRkaXI6IgorKwkg IGRvbmUKKysJICBjb21waWxlX3Zhcj0iJHJ1bnBhdGhfdmFyPVwiJHJwYXRoXCQkcnVucGF0aF92 YXJcIiAiCisrCWZpCisrCWlmIHRlc3QgLW4gIiRmaW5hbGl6ZV9wZXJtX3JwYXRoIjsgdGhlbgor KwkgICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIuCisrCSAgcnBhdGg9CisrCSAgZm9y IGRpciBpbiAkZmluYWxpemVfcGVybV9ycGF0aDsgZG8KKysJICAgIHJwYXRoPSIkcnBhdGgkZGly OiIKKysJICBkb25lCisrCSAgZmluYWxpemVfdmFyPSIkcnVucGF0aF92YXI9XCIkcnBhdGhcJCRy dW5wYXRoX3ZhclwiICIKKysJZmkKKysgICAgICBmaQorKworKyAgICAgIGlmIHRlc3QgIiRub19p bnN0YWxsIiA9IHllczsgdGhlbgorKwkjIFdlIGRvbid0IG5lZWQgdG8gY3JlYXRlIGEgd3JhcHBl ciBzY3JpcHQuCisrCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRj b21waWxlX3JwYXRoIgorKwkjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24u CisrCWxpbmtfY29tbWFuZD1gJEVDSE8gIiRsaW5rX2NvbW1hbmQiIHwgJFNFRCAncyVAT1VUUFVU QCUnIiRvdXRwdXQiJyVnJ2AKKysJIyBEZWxldGUgdGhlIG9sZCBvdXRwdXQgZmlsZS4KKysJJG9w dF9kcnlfcnVuIHx8ICRSTSAkb3V0cHV0CisrCSMgTGluayB0aGUgZXhlY3V0YWJsZSBhbmQgZXhp dAorKwlmdW5jX3Nob3dfZXZhbCAiJGxpbmtfY29tbWFuZCIgJ2V4aXQgJD8nCisrCWV4aXQgJEVY SVRfU1VDQ0VTUworKyAgICAgIGZpCisrCisrICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2FjdGlv biIgPSByZWxpbms7IHRoZW4KKysJIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVk CisrCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3Jw YXRoIgorKwlyZWxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRmaW5hbGl6ZV9jb21tYW5kJGZp bmFsaXplX3JwYXRoIgorKworKwlmdW5jX3dhcm5pbmcgInRoaXMgcGxhdGZvcm0gZG9lcyBub3Qg bGlrZSB1bmluc3RhbGxlZCBzaGFyZWQgbGlicmFyaWVzIgorKwlmdW5jX3dhcm5pbmcgIlxgJG91 dHB1dCcgd2lsbCBiZSByZWxpbmtlZCBkdXJpbmcgaW5zdGFsbGF0aW9uIgorKyAgICAgIGVsc2UK KysJaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgIT0gbm87IHRoZW4KKysJICBsaW5rX2NvbW1hbmQ9 IiRmaW5hbGl6ZV92YXIkY29tcGlsZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgorKwkgIGlmIHRl c3QgIiRmYXN0X2luc3RhbGwiID0geWVzOyB0aGVuCisrCSAgICByZWxpbmtfY29tbWFuZD1gJEVD SE8gIiRjb21waWxlX3ZhciRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIgfCAkU0VEICdz JUBPVVRQVVRAJVwkcHJvZ2Rpci9cJGZpbGUlZydgCisrCSAgZWxzZQorKwkgICAgIyBmYXN0X2lu c3RhbGwgaXMgc2V0IHRvIG5lZWRsZXNzCisrCSAgICByZWxpbmtfY29tbWFuZD0KKysJICBmaQor KwllbHNlCisrCSAgbGlua19jb21tYW5kPSIkY29tcGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNv bXBpbGVfcnBhdGgiCisrCSAgcmVsaW5rX2NvbW1hbmQ9IiRmaW5hbGl6ZV92YXIkZmluYWxpemVf Y29tbWFuZCRmaW5hbGl6ZV9ycGF0aCIKKysJZmkKKysgICAgICBmaQorKworKyAgICAgICMgUmVw bGFjZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KKysgICAgICBsaW5rX2NvbW1hbmQ9 YCRFQ0hPICIkbGlua19jb21tYW5kIiB8ICRTRUQgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0X29iamRp ci8kb3V0cHV0bmFtZSInJWcnYAorKworKyAgICAgICMgRGVsZXRlIHRoZSBvbGQgb3V0cHV0IGZp bGVzLgorKyAgICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJG91dHB1dCAkb3V0cHV0X29iamRpci8k b3V0cHV0bmFtZSAkb3V0cHV0X29iamRpci9sdC0kb3V0cHV0bmFtZQorKworKyAgICAgIGZ1bmNf c2hvd19ldmFsICIkbGlua19jb21tYW5kIiAnZXhpdCAkPycKKysKKysgICAgICAjIE5vdyBjcmVh dGUgdGhlIHdyYXBwZXIgc2NyaXB0LgorKyAgICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgJG91 dHB1dCIKKysKKysgICAgICAjIFF1b3RlIHRoZSByZWxpbmsgY29tbWFuZCBmb3Igc2hpcHBpbmcu CisrICAgICAgaWYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgorKwkjIFByZXNlcnZl IGFueSB2YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2aW9yCisrCWZvciB2 YXIgaW4gJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rOyBkbworKwkgIGlmIGV2YWwgdGVzdCAt eiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVuCisrCSAgICByZWxpbmtfY29tbWFuZD0ieyB0ZXN0IC16 IFwiXCR7JHZhcitzZXR9XCIgfHwgJGx0X3Vuc2V0ICR2YXIgfHwgeyAkdmFyPTsgZXhwb3J0ICR2 YXI7IH07IH07ICRyZWxpbmtfY29tbWFuZCIKKysJICBlbGlmIGV2YWwgdmFyX3ZhbHVlPVwkJHZh cjsgdGVzdCAteiAiJHZhcl92YWx1ZSI7IHRoZW4KKysJICAgIHJlbGlua19jb21tYW5kPSIkdmFy PTsgZXhwb3J0ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIKKysJICBlbHNlCisrCSAgICBmdW5jX3F1 b3RlX2Zvcl9ldmFsICIkdmFyX3ZhbHVlIgorKwkgICAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9JGZ1 bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgor KwkgIGZpCisrCWRvbmUKKysJcmVsaW5rX2NvbW1hbmQ9IihjZCBgcHdkYDsgJHJlbGlua19jb21t YW5kKSIKKysJcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkcmVsaW5rX2NvbW1hbmQiIHwgJFNFRCAi JHNlZF9xdW90ZV9zdWJzdCJgCisrICAgICAgZmkKKysKKysgICAgICAjIE9ubHkgYWN0dWFsbHkg ZG8gdGhpbmdzIGlmIG5vdCBpbiBkcnkgcnVuIG1vZGUuCisrICAgICAgJG9wdF9kcnlfcnVuIHx8 IHsKKysJIyB3aW4zMiB3aWxsIHRoaW5rIHRoZSBzY3JpcHQgaXMgYSBiaW5hcnkgaWYgaXQgaGFz CisrCSMgYSAuZXhlIHN1ZmZpeCwgc28gd2Ugc3RyaXAgaXQgb2ZmIGhlcmUuCisrCWNhc2UgJG91 dHB1dCBpbgorKwkgICouZXhlKSBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRvdXRwdXQiCisr CSAgICAgICAgIG91dHB1dD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0IDs7CisrCWVzYWMKKysJIyB0 ZXN0IGZvciBjeWd3aW4gYmVjYXVzZSBtdiBmYWlscyB3L28gLmV4ZSBleHRlbnNpb25zCisrCWNh c2UgJGhvc3QgaW4KKysJICAqY3lnd2luKikKKysJICAgIGV4ZWV4dD0uZXhlCisrCSAgICBmdW5j X3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRvdXRwdXRuYW1lIgorKwkgICAgb3V0cHV0bmFtZT0kZnVu Y19zdHJpcG5hbWVfcmVzdWx0IDs7CisrCSAgKikgZXhlZXh0PSA7OworKwllc2FjCisrCWNhc2Ug JGhvc3QgaW4KKysJICAqY3lnd2luKiB8ICptaW5ndyogKQorKwkgICAgZnVuY19kaXJuYW1lX2Fu ZF9iYXNlbmFtZSAiJG91dHB1dCIgIiIgIi4iCisrCSAgICBvdXRwdXRfbmFtZT0kZnVuY19iYXNl bmFtZV9yZXN1bHQKKysJICAgIG91dHB1dF9wYXRoPSRmdW5jX2Rpcm5hbWVfcmVzdWx0CisrCSAg ICBjd3JhcHBlcnNvdXJjZT0iJG91dHB1dF9wYXRoLyRvYmpkaXIvbHQtJG91dHB1dF9uYW1lLmMi CisrCSAgICBjd3JhcHBlcj0iJG91dHB1dF9wYXRoLyRvdXRwdXRfbmFtZS5leGUiCisrCSAgICAk Uk0gJGN3cmFwcGVyc291cmNlICRjd3JhcHBlcgorKwkgICAgdHJhcCAiJFJNICRjd3JhcHBlcnNv dXJjZSAkY3dyYXBwZXI7IGV4aXQgJEVYSVRfRkFJTFVSRSIgMSAyIDE1CisrCisrCSAgICBmdW5j X2VtaXRfY3dyYXBwZXJleGVfc3JjID4gJGN3cmFwcGVyc291cmNlCisrCisrCSAgICAjIFRoZSB3 cmFwcGVyIGV4ZWN1dGFibGUgaXMgYnVpbHQgdXNpbmcgdGhlICRob3N0IGNvbXBpbGVyLAorKwkg ICAgIyBiZWNhdXNlIGl0IGNvbnRhaW5zICRob3N0IHBhdGhzIGFuZCBmaWxlcy4gSWYgY3Jvc3Mt CisrCSAgICAjIGNvbXBpbGluZywgaXQsIGxpa2UgdGhlIHRhcmdldCBleGVjdXRhYmxlLCBtdXN0 IGJlCisrCSAgICAjIGV4ZWN1dGVkIG9uIHRoZSAkaG9zdCBvciB1bmRlciBhbiBlbXVsYXRpb24g ZW52aXJvbm1lbnQuCisrCSAgICAkb3B0X2RyeV9ydW4gfHwgeworKwkgICAgICAkTFRDQyAkTFRD RkxBR1MgLW8gJGN3cmFwcGVyICRjd3JhcHBlcnNvdXJjZQorKwkgICAgICAkU1RSSVAgJGN3cmFw cGVyCisrCSAgICB9CisrCisrCSAgICAjIE5vdywgY3JlYXRlIHRoZSB3cmFwcGVyIHNjcmlwdCBm b3IgZnVuY19zb3VyY2UgdXNlOgorKwkgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSAkY3dy YXBwZXIKKysJICAgICRSTSAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQKKysJICAg IHRyYXAgIiRSTSAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQ7IGV4aXQgJEVYSVRf RkFJTFVSRSIgMSAyIDE1CisrCSAgICAkb3B0X2RyeV9ydW4gfHwgeworKwkgICAgICAjIG5vdGU6 IHRoaXMgc2NyaXB0IHdpbGwgbm90IGJlIGV4ZWN1dGVkLCBzbyBkbyBub3QgY2htb2QuCisrCSAg ICAgIGlmIHRlc3QgIngkYnVpbGQiID0gIngkaG9zdCIgOyB0aGVuCisrCQkkY3dyYXBwZXIgLS1s dC1kdW1wLXNjcmlwdCA+ICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdAorKwkgICAg ICBlbHNlCisrCQlmdW5jX2VtaXRfd3JhcHBlciBubyA+ICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRu YW1lX3Jlc3VsdAorKwkgICAgICBmaQorKwkgICAgfQorKwkgIDs7CisrCSAgKiApCisrCSAgICAk Uk0gJG91dHB1dAorKwkgICAgdHJhcCAiJFJNICRvdXRwdXQ7IGV4aXQgJEVYSVRfRkFJTFVSRSIg MSAyIDE1CisrCisrCSAgICBmdW5jX2VtaXRfd3JhcHBlciBubyA+ICRvdXRwdXQKKysJICAgIGNo bW9kICt4ICRvdXRwdXQKKysJICA7OworKwllc2FjCisrICAgICAgfQorKyAgICAgIGV4aXQgJEVY SVRfU1VDQ0VTUworKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgIyBTZWUgaWYgd2UgbmVl ZCB0byBidWlsZCBhbiBvbGQtZmFzaGlvbmVkIGFyY2hpdmUuCisrICAgIGZvciBvbGRsaWIgaW4g JG9sZGxpYnM7IGRvCisrCisrICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBj b252ZW5pZW5jZTsgdGhlbgorKwlvbGRvYmpzPSIkbGlib2Jqc19zYXZlICRzeW1maWxlb2JqIgor KwlhZGRsaWJzPSIkY29udmVuaWVuY2UiCisrCWJ1aWxkX2xpYnRvb2xfbGlicz1ubworKyAgICAg IGVsc2UKKysJaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBtb2R1bGU7IHRoZW4KKysJ ICBvbGRvYmpzPSIkbGlib2Jqc19zYXZlIgorKwkgIGJ1aWxkX2xpYnRvb2xfbGlicz1ubworKwll bHNlCisrCSAgb2xkb2Jqcz0iJG9sZF9kZXBsaWJzICRub25fcGljX29iamVjdHMiCisrCSAgaWYg dGVzdCAiJHByZWxvYWQiID0geWVzICYmIHRlc3QgLWYgIiRzeW1maWxlb2JqIjsgdGhlbgorKwkg ICAgb2xkb2Jqcz0iJG9sZG9ianMgJHN5bWZpbGVvYmoiCisrCSAgZmkKKysJZmkKKysJYWRkbGli cz0iJG9sZF9jb252ZW5pZW5jZSIKKysgICAgICBmaQorKworKyAgICAgIGlmIHRlc3QgLW4gIiRh ZGRsaWJzIjsgdGhlbgorKwlnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14Igor KwlnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKKysKKysJZnVuY19leHRyYWN0X2FyY2hp dmVzICRnZW50b3AgJGFkZGxpYnMKKysJb2xkb2Jqcz0iJG9sZG9ianMgJGZ1bmNfZXh0cmFjdF9h cmNoaXZlc19yZXN1bHQiCisrICAgICAgZmkKKysKKysgICAgICAjIERvIGVhY2ggY29tbWFuZCBp biB0aGUgYXJjaGl2ZSBjb21tYW5kcy4KKysgICAgICBpZiB0ZXN0IC1uICIkb2xkX2FyY2hpdmVf ZnJvbV9uZXdfY21kcyIgJiYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4K KysJY21kcz0kb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcworKyAgICAgIGVsc2UKKysKKysJIyBB ZGQgYW55IG9iamVjdHMgZnJvbSBwcmVsb2FkZWQgY29udmVuaWVuY2UgbGlicmFyaWVzCisrCWlm IHRlc3QgLW4gIiRkbHByZWZpbGVzIjsgdGhlbgorKwkgIGdlbnRvcD0iJG91dHB1dF9vYmpkaXIv JHtvdXRwdXRuYW1lfXgiCisrCSAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCisrCisr CSAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGRscHJlZmlsZXMKKysJICBvbGRvYmpz PSIkb2xkb2JqcyAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKKysJZmkKKysKKysJIyBQ T1NJWCBkZW1hbmRzIG5vIHBhdGhzIHRvIGJlIGVuY29kZWQgaW4gYXJjaGl2ZXMuICBXZSBoYXZl CisrCSMgdG8gYXZvaWQgY3JlYXRpbmcgYXJjaGl2ZXMgd2l0aCBkdXBsaWNhdGUgYmFzZW5hbWVz IGlmIHdlCisrCSMgbWlnaHQgaGF2ZSB0byBleHRyYWN0IHRoZW0gYWZ0ZXJ3YXJkcywgZS5nLiwg d2hlbiBjcmVhdGluZyBhCisrCSMgc3RhdGljIGFyY2hpdmUgb3V0IG9mIGEgY29udmVuaWVuY2Ug bGlicmFyeSwgb3Igd2hlbiBsaW5raW5nCisrCSMgdGhlIGVudGlyZXR5IG9mIGEgbGlidG9vbCBh cmNoaXZlIGludG8gYW5vdGhlciAoY3VycmVudGx5CisrCSMgbm90IHN1cHBvcnRlZCBieSBsaWJ0 b29sKS4KKysJaWYgKGZvciBvYmogaW4gJG9sZG9ianMKKysJICAgIGRvCisrCSAgICAgIGZ1bmNf YmFzZW5hbWUgIiRvYmoiCisrCSAgICAgICRFQ0hPICIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisr CSAgICBkb25lIHwgc29ydCB8IHNvcnQgLXVjID4vZGV2L251bGwgMj4mMSk7IHRoZW4KKysJICA6 CisrCWVsc2UKKysJICBlY2hvICJjb3B5aW5nIHNlbGVjdGVkIG9iamVjdCBmaWxlcyB0byBhdm9p ZCBiYXNlbmFtZSBjb25mbGljdHMuLi4iCisrCSAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291 dHB1dG5hbWV9eCIKKysJICBnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKKysJICBmdW5j X21rZGlyX3AgIiRnZW50b3AiCisrCSAgc2F2ZV9vbGRvYmpzPSRvbGRvYmpzCisrCSAgb2xkb2Jq cz0KKysJICBjb3VudGVyPTEKKysJICBmb3Igb2JqIGluICRzYXZlX29sZG9ianMKKysJICBkbwor KwkgICAgZnVuY19iYXNlbmFtZSAiJG9iaiIKKysJICAgIG9iamJhc2U9IiRmdW5jX2Jhc2VuYW1l X3Jlc3VsdCIKKysJICAgIGNhc2UgIiAkb2xkb2JqcyAiIGluCisrCSAgICAiICIpIG9sZG9ianM9 JG9iaiA7OworKwkgICAgKltcIC9dIiRvYmpiYXNlICIqKQorKwkgICAgICB3aGlsZSA6OyBkbwor KwkJIyBNYWtlIHN1cmUgd2UgZG9uJ3QgcGljayBhbiBhbHRlcm5hdGUgbmFtZSB0aGF0IGFsc28K KysJCSMgb3ZlcmxhcHMuCisrCQluZXdvYmo9bHQkY291bnRlci0kb2JqYmFzZQorKwkJZnVuY19h cml0aCAkY291bnRlciArIDEKKysJCWNvdW50ZXI9JGZ1bmNfYXJpdGhfcmVzdWx0CisrCQljYXNl ICIgJG9sZG9ianMgIiBpbgorKwkJKltcIC9dIiRuZXdvYmogIiopIDs7CisrCQkqKSBpZiB0ZXN0 ICEgLWYgIiRnZW50b3AvJG5ld29iaiI7IHRoZW4gYnJlYWs7IGZpIDs7CisrCQllc2FjCisrCSAg ICAgIGRvbmUKKysJICAgICAgZnVuY19zaG93X2V2YWwgImxuICRvYmogJGdlbnRvcC8kbmV3b2Jq IHx8IGNwICRvYmogJGdlbnRvcC8kbmV3b2JqIgorKwkgICAgICBvbGRvYmpzPSIkb2xkb2JqcyAk Z2VudG9wLyRuZXdvYmoiCisrCSAgICAgIDs7CisrCSAgICAqKSBvbGRvYmpzPSIkb2xkb2JqcyAk b2JqIiA7OworKwkgICAgZXNhYworKwkgIGRvbmUKKysJZmkKKysJZXZhbCBjbWRzPVwiJG9sZF9h cmNoaXZlX2NtZHNcIgorKworKwlmdW5jX2xlbiAiICRjbWRzIgorKwlsZW49JGZ1bmNfbGVuX3Jl c3VsdAorKwlpZiB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiIgfHwgdGVzdCAiJG1heF9j bWRfbGVuIiAtbGUgLTE7IHRoZW4KKysJICBjbWRzPSRvbGRfYXJjaGl2ZV9jbWRzCisrCWVsc2UK KysJICAjIHRoZSBjb21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8gbGluayBpbiBvbmUgc3RlcCwg bGluayBpbiBwYXJ0cworKwkgIGZ1bmNfdmVyYm9zZSAidXNpbmcgcGllY2V3aXNlIGFyY2hpdmUg bGlua2luZy4uLiIKKysJICBzYXZlX1JBTkxJQj0kUkFOTElCCisrCSAgUkFOTElCPToKKysJICBv YmpsaXN0PQorKwkgIGNvbmNhdF9jbWRzPQorKwkgIHNhdmVfb2xkb2Jqcz0kb2xkb2JqcworKwkg IG9sZG9ianM9CisrCSAgIyBJcyB0aGVyZSBhIGJldHRlciB3YXkgb2YgZmluZGluZyB0aGUgbGFz dCBvYmplY3QgaW4gdGhlIGxpc3Q/CisrCSAgZm9yIG9iaiBpbiAkc2F2ZV9vbGRvYmpzCisrCSAg ZG8KKysJICAgIGxhc3Rfb2xkb2JqPSRvYmoKKysJICBkb25lCisrCSAgZXZhbCB0ZXN0X2NtZHM9 XCIkb2xkX2FyY2hpdmVfY21kc1wiCisrCSAgZnVuY19sZW4gIiAkdGVzdF9jbWRzIgorKwkgIGxl bjA9JGZ1bmNfbGVuX3Jlc3VsdAorKwkgIGxlbj0kbGVuMAorKwkgIGZvciBvYmogaW4gJHNhdmVf b2xkb2JqcworKwkgIGRvCisrCSAgICBmdW5jX2xlbiAiICRvYmoiCisrCSAgICBmdW5jX2FyaXRo ICRsZW4gKyAkZnVuY19sZW5fcmVzdWx0CisrCSAgICBsZW49JGZ1bmNfYXJpdGhfcmVzdWx0Cisr CSAgICBmdW5jX2FwcGVuZCBvYmpsaXN0ICIgJG9iaiIKKysJICAgIGlmIHRlc3QgIiRsZW4iIC1s dCAiJG1heF9jbWRfbGVuIjsgdGhlbgorKwkgICAgICA6CisrCSAgICBlbHNlCisrCSAgICAgICMg dGhlIGFib3ZlIGNvbW1hbmQgc2hvdWxkIGJlIHVzZWQgYmVmb3JlIGl0IGdldHMgdG9vIGxvbmcK KysJICAgICAgb2xkb2Jqcz0kb2JqbGlzdAorKwkgICAgICBpZiB0ZXN0ICIkb2JqIiA9ICIkbGFz dF9vbGRvYmoiIDsgdGhlbgorKwkJUkFOTElCPSRzYXZlX1JBTkxJQgorKwkgICAgICBmaQorKwkg ICAgICB0ZXN0IC16ICIkY29uY2F0X2NtZHMiIHx8IGNvbmNhdF9jbWRzPSRjb25jYXRfY21kc34K KysJICAgICAgZXZhbCBjb25jYXRfY21kcz1cIlwke2NvbmNhdF9jbWRzfSRvbGRfYXJjaGl2ZV9j bWRzXCIKKysJICAgICAgb2JqbGlzdD0KKysJICAgICAgbGVuPSRsZW4wCisrCSAgICBmaQorKwkg IGRvbmUKKysJICBSQU5MSUI9JHNhdmVfUkFOTElCCisrCSAgb2xkb2Jqcz0kb2JqbGlzdAorKwkg IGlmIHRlc3QgIlgkb2xkb2JqcyIgPSAiWCIgOyB0aGVuCisrCSAgICBldmFsIGNtZHM9XCJcJGNv bmNhdF9jbWRzXCIKKysJICBlbHNlCisrCSAgICBldmFsIGNtZHM9XCJcJGNvbmNhdF9jbWRzflwk b2xkX2FyY2hpdmVfY21kc1wiCisrCSAgZmkKKysJZmkKKysgICAgICBmaQorKyAgICAgIGZ1bmNf ZXhlY3V0ZV9jbWRzICIkY21kcyIgJ2V4aXQgJD8nCisrICAgIGRvbmUKKysKKysgICAgdGVzdCAt biAiJGdlbmVyYXRlZCIgJiYgXAorKyAgICAgIGZ1bmNfc2hvd19ldmFsICIke1JNfXIkZ2VuZXJh dGVkIgorKworKyAgICAjIE5vdyBjcmVhdGUgdGhlIGxpYnRvb2wgYXJjaGl2ZS4KKysgICAgY2Fz ZSAkb3V0cHV0IGluCisrICAgICoubGEpCisrICAgICAgb2xkX2xpYnJhcnk9CisrICAgICAgdGVz dCAiJGJ1aWxkX29sZF9saWJzIiA9IHllcyAmJiBvbGRfbGlicmFyeT0iJGxpYm5hbWUuJGxpYmV4 dCIKKysgICAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nICRvdXRwdXQiCisrCisrICAgICAgIyBQ cmVzZXJ2ZSBhbnkgdmFyaWFibGVzIHRoYXQgbWF5IGFmZmVjdCBjb21waWxlciBiZWhhdmlvcgor KyAgICAgIGZvciB2YXIgaW4gJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rOyBkbworKwlpZiBl dmFsIHRlc3QgLXogXCJcJHskdmFyK3NldH1cIjsgdGhlbgorKwkgIHJlbGlua19jb21tYW5kPSJ7 IHRlc3QgLXogXCJcJHskdmFyK3NldH1cIiB8fCAkbHRfdW5zZXQgJHZhciB8fCB7ICR2YXI9OyBl eHBvcnQgJHZhcjsgfTsgfTsgJHJlbGlua19jb21tYW5kIgorKwllbGlmIGV2YWwgdmFyX3ZhbHVl PVwkJHZhcjsgdGVzdCAteiAiJHZhcl92YWx1ZSI7IHRoZW4KKysJICByZWxpbmtfY29tbWFuZD0i JHZhcj07IGV4cG9ydCAkdmFyOyAkcmVsaW5rX2NvbW1hbmQiCisrCWVsc2UKKysJICBmdW5jX3F1 b3RlX2Zvcl9ldmFsICIkdmFyX3ZhbHVlIgorKwkgIHJlbGlua19jb21tYW5kPSIkdmFyPSRmdW5j X3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdDsgZXhwb3J0ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIKKysJ ZmkKKysgICAgICBkb25lCisrICAgICAgIyBRdW90ZSB0aGUgbGluayBjb21tYW5kIGZvciBzaGlw cGluZy4KKysgICAgICByZWxpbmtfY29tbWFuZD0iKGNkIGBwd2RgOyAkU0hFTEwgJHByb2dwYXRo ICRwcmVzZXJ2ZV9hcmdzIC0tbW9kZT1yZWxpbmsgJGxpYnRvb2xfYXJncyBAaW5zdF9wcmVmaXhf ZGlyQCkiCisrICAgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkcmVsaW5rX2NvbW1hbmQiIHwg JFNFRCAiJHNlZF9xdW90ZV9zdWJzdCJgCisrICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2F1dG9t YXRpYyIgPSB5ZXMgOyB0aGVuCisrCXJlbGlua19jb21tYW5kPQorKyAgICAgIGZpCisrCisrICAg ICAgIyBPbmx5IGNyZWF0ZSB0aGUgb3V0cHV0IGlmIG5vdCBhIGRyeSBydW4uCisrICAgICAgJG9w dF9kcnlfcnVuIHx8IHsKKysJZm9yIGluc3RhbGxlZCBpbiBubyB5ZXM7IGRvCisrCSAgaWYgdGVz dCAiJGluc3RhbGxlZCIgPSB5ZXM7IHRoZW4KKysJICAgIGlmIHRlc3QgLXogIiRpbnN0YWxsX2xp YmRpciI7IHRoZW4KKysJICAgICAgYnJlYWsKKysJICAgIGZpCisrCSAgICBvdXRwdXQ9IiRvdXRw dXRfb2JqZGlyLyRvdXRwdXRuYW1lImkKKysJICAgICMgUmVwbGFjZSBhbGwgdW5pbnN0YWxsZWQg bGlidG9vbCBsaWJyYXJpZXMgd2l0aCB0aGUgaW5zdGFsbGVkIG9uZXMKKysJICAgIG5ld2RlcGVu ZGVuY3lfbGlicz0KKysJICAgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKysJ ICAgICAgY2FzZSAkZGVwbGliIGluCisrCSAgICAgICoubGEpCisrCQlmdW5jX2Jhc2VuYW1lICIk ZGVwbGliIgorKwkJbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKwkJZXZhbCBsaWJkaXI9 YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAKKysJCXRlc3Qg LXogIiRsaWJkaXIiICYmIFwKKysJCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkZGVwbGliJyBpcyBu b3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCisrCQluZXdkZXBlbmRlbmN5X2xpYnM9IiRuZXdk ZXBlbmRlbmN5X2xpYnMgJGxpYmRpci8kbmFtZSIKKysJCTs7CisrCSAgICAgICopIG5ld2RlcGVu ZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVuY3lfbGlicyAkZGVwbGliIiA7OworKwkgICAgICBlc2Fj CisrCSAgICBkb25lCisrCSAgICBkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMi CisrCSAgICBuZXdkbGZpbGVzPQorKworKwkgICAgZm9yIGxpYiBpbiAkZGxmaWxlczsgZG8KKysJ ICAgICAgY2FzZSAkbGliIGluCisrCSAgICAgICoubGEpCisrCSAgICAgICAgZnVuY19iYXNlbmFt ZSAiJGxpYiIKKysJCW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysJCWV2YWwgbGliZGly PWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRsaWJgCisrCQl0ZXN0IC16 ICIkbGliZGlyIiAmJiBcCisrCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEg dmFsaWQgbGlidG9vbCBhcmNoaXZlIgorKwkJbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGxpYmRp ci8kbmFtZSIKKysJCTs7CisrCSAgICAgICopIG5ld2RsZmlsZXM9IiRuZXdkbGZpbGVzICRsaWIi IDs7CisrCSAgICAgIGVzYWMKKysJICAgIGRvbmUKKysJICAgIGRsZmlsZXM9IiRuZXdkbGZpbGVz IgorKwkgICAgbmV3ZGxwcmVmaWxlcz0KKysJICAgIGZvciBsaWIgaW4gJGRscHJlZmlsZXM7IGRv CisrCSAgICAgIGNhc2UgJGxpYiBpbgorKwkgICAgICAqLmxhKQorKwkJIyBPbmx5IHBhc3MgcHJl b3BlbmVkIGZpbGVzIHRvIHRoZSBwc2V1ZG8tYXJjaGl2ZSAoZm9yCisrCQkjIGV2ZW50dWFsIGxp bmtpbmcgd2l0aCB0aGUgYXBwLiB0aGF0IGxpbmtzIGl0KSBpZiB3ZQorKwkJIyBkaWRuJ3QgYWxy ZWFkeSBsaW5rIHRoZSBwcmVvcGVuZWQgb2JqZWN0cyBkaXJlY3RseSBpbnRvCisrCQkjIHRoZSBs aWJyYXJ5OgorKwkJZnVuY19iYXNlbmFtZSAiJGxpYiIKKysJCW5hbWU9IiRmdW5jX2Jhc2VuYW1l X3Jlc3VsdCIKKysJCWV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkk L1wxL3AnICRsaWJgCisrCQl0ZXN0IC16ICIkbGliZGlyIiAmJiBcCisrCQkgIGZ1bmNfZmF0YWxf ZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorKwkJbmV3ZGxw cmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGxpYmRpci8kbmFtZSIKKysJCTs7CisrCSAgICAgIGVz YWMKKysJICAgIGRvbmUKKysJICAgIGRscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzIgorKwkgIGVs c2UKKysJICAgIG5ld2RsZmlsZXM9CisrCSAgICBmb3IgbGliIGluICRkbGZpbGVzOyBkbworKwkg ICAgICBjYXNlICRsaWIgaW4KKysJCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgYWJzPSIkbGli IiA7OworKwkJKikgYWJzPWBwd2RgIi8kbGliIiA7OworKwkgICAgICBlc2FjCisrCSAgICAgIG5l d2RsZmlsZXM9IiRuZXdkbGZpbGVzICRhYnMiCisrCSAgICBkb25lCisrCSAgICBkbGZpbGVzPSIk bmV3ZGxmaWxlcyIKKysJICAgIG5ld2RscHJlZmlsZXM9CisrCSAgICBmb3IgbGliIGluICRkbHBy ZWZpbGVzOyBkbworKwkgICAgICBjYXNlICRsaWIgaW4KKysJCVtcXC9dKiB8IFtBLVphLXpdOltc XC9dKikgYWJzPSIkbGliIiA7OworKwkJKikgYWJzPWBwd2RgIi8kbGliIiA7OworKwkgICAgICBl c2FjCisrCSAgICAgIG5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRhYnMiCisrCSAgICBk b25lCisrCSAgICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyIKKysJICBmaQorKwkgICRSTSAk b3V0cHV0CisrCSAgIyBwbGFjZSBkbG5hbWUgaW4gY29ycmVjdCBwb3NpdGlvbiBmb3IgY3lnd2lu CisrCSAgIyBJbiBmYWN0LCBpdCB3b3VsZCBiZSBuaWNlIGlmIHdlIGNvdWxkIHVzZSB0aGlzIGNv ZGUgZm9yIGFsbCB0YXJnZXQKKysJICAjIHN5c3RlbXMgdGhhdCBjYW4ndCBoYXJkLWNvZGUgbGli cmFyeSBwYXRocyBpbnRvIHRoZWlyIGV4ZWN1dGFibGVzCisrCSAgIyBhbmQgdGhhdCBoYXZlIG5v IHNoYXJlZCBsaWJyYXJ5IHBhdGggdmFyaWFibGUgaW5kZXBlbmRlbnQgb2YgUEFUSCwKKysJICAj IGJ1dCBpdCB0dXJucyBvdXQgd2UgY2FuJ3QgZWFzaWx5IGRldGVybWluZSB0aGF0IGZyb20gaW5z cGVjdGluZworKwkgICMgbGlidG9vbCB2YXJpYWJsZXMsIHNvIHdlIGhhdmUgdG8gaGFyZC1jb2Rl IHRoZSBPU3MgdG8gd2hpY2ggaXQKKysJICAjIGFwcGxpZXMgaGVyZTsgYXQgdGhlIG1vbWVudCwg dGhhdCBtZWFucyBwbGF0Zm9ybXMgdGhhdCB1c2UgdGhlIFBFCisrCSAgIyBvYmplY3QgZm9ybWF0 IHdpdGggRExMIGZpbGVzLiAgU2VlIHRoZSBsb25nIGNvbW1lbnQgYXQgdGhlIHRvcCBvZgorKwkg ICMgdGVzdHMvYmluZGlyLmF0IGZvciBmdWxsIGRldGFpbHMuCisrCSAgdGRsbmFtZT0kZGxuYW1l CisrCSAgY2FzZSAkaG9zdCwkb3V0cHV0LCRpbnN0YWxsZWQsJG1vZHVsZSwkZGxuYW1lIGluCisr CSAgICAqY3lnd2luKiwqbGFpLHllcyxubywqLmRsbCB8ICptaW5ndyosKmxhaSx5ZXMsbm8sKi5k bGwgfCAqY2VnY2MqLCpsYWkseWVzLG5vLCouZGxsKQorKwkgICAgICAjIElmIGEgLWJpbmRpciBh cmd1bWVudCB3YXMgc3VwcGxpZWQsIHBsYWNlIHRoZSBkbGwgdGhlcmUuCisrCSAgICAgIGlmIHRl c3QgIngkYmluZGlyIiAhPSB4IDsKKysJICAgICAgdGhlbgorKwkJZnVuY19yZWxhdGl2ZV9wYXRo ICIkaW5zdGFsbF9saWJkaXIiICIkYmluZGlyIgorKwkJdGRsbmFtZT0kZnVuY19yZWxhdGl2ZV9w YXRoX3Jlc3VsdCRkbG5hbWUKKysJICAgICAgZWxzZQorKwkJIyBPdGhlcndpc2UgZmFsbCBiYWNr IG9uIGhldXJpc3RpYy4KKysJCXRkbG5hbWU9Li4vYmluLyRkbG5hbWUKKysJICAgICAgZmkKKysJ ICAgICAgOzsKKysJICBlc2FjCisrCSAgJEVDSE8gPiAkb3V0cHV0ICJcCisrIyAkb3V0cHV0bmFt ZSAtIGEgbGlidG9vbCBsaWJyYXJ5IGZpbGUKKysjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05V ICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KKysjCisrIyBQbGVhc2UgRE8gTk9UIGRlbGV0 ZSB0aGlzIGZpbGUhCisrIyBJdCBpcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgdGhlIGxpYnJhcnku CisrCisrIyBUaGUgbmFtZSB0aGF0IHdlIGNhbiBkbG9wZW4oMykuCisrZGxuYW1lPSckdGRsbmFt ZScKKysKKysjIE5hbWVzIG9mIHRoaXMgbGlicmFyeS4KKytsaWJyYXJ5X25hbWVzPSckbGlicmFy eV9uYW1lcycKKysKKysjIFRoZSBuYW1lIG9mIHRoZSBzdGF0aWMgYXJjaGl2ZS4KKytvbGRfbGli cmFyeT0nJG9sZF9saWJyYXJ5JworKworKyMgTGlua2VyIGZsYWdzIHRoYXQgY2FuIG5vdCBnbyBp biBkZXBlbmRlbmN5X2xpYnMuCisraW5oZXJpdGVkX2xpbmtlcl9mbGFncz0nJG5ld19pbmhlcml0 ZWRfbGlua2VyX2ZsYWdzJworKworKyMgTGlicmFyaWVzIHRoYXQgdGhpcyBvbmUgZGVwZW5kcyB1 cG9uLgorK2RlcGVuZGVuY3lfbGlicz0nJGRlcGVuZGVuY3lfbGlicycKKysKKysjIE5hbWVzIG9m IGFkZGl0aW9uYWwgd2VhayBsaWJyYXJpZXMgcHJvdmlkZWQgYnkgdGhpcyBsaWJyYXJ5Cisrd2Vh a19saWJyYXJ5X25hbWVzPSckd2Vha19saWJzJworKworKyMgVmVyc2lvbiBpbmZvcm1hdGlvbiBm b3IgJGxpYm5hbWUuCisrY3VycmVudD0kY3VycmVudAorK2FnZT0kYWdlCisrcmV2aXNpb249JHJl dmlzaW9uCisrCisrIyBJcyB0aGlzIGFuIGFscmVhZHkgaW5zdGFsbGVkIGxpYnJhcnk/CisraW5z dGFsbGVkPSRpbnN0YWxsZWQKKysKKysjIFNob3VsZCB3ZSB3YXJuIGFib3V0IHBvcnRhYmlsaXR5 IHdoZW4gbGlua2luZyBhZ2FpbnN0IC1tb2R1bGVzPworK3Nob3VsZG5vdGxpbms9JG1vZHVsZQor KworKyMgRmlsZXMgdG8gZGxvcGVuL2RscHJlb3BlbgorK2Rsb3Blbj0nJGRsZmlsZXMnCisrZGxw cmVvcGVuPSckZGxwcmVmaWxlcycKKysKKysjIERpcmVjdG9yeSB0aGF0IHRoaXMgbGlicmFyeSBu ZWVkcyB0byBiZSBpbnN0YWxsZWQgaW46CisrbGliZGlyPSckaW5zdGFsbF9saWJkaXInIgorKwkg IGlmIHRlc3QgIiRpbnN0YWxsZWQiID0gbm8gJiYgdGVzdCAiJG5lZWRfcmVsaW5rIiA9IHllczsg dGhlbgorKwkgICAgJEVDSE8gPj4gJG91dHB1dCAiXAorK3JlbGlua19jb21tYW5kPVwiJHJlbGlu a19jb21tYW5kXCIiCisrCSAgZmkKKysJZG9uZQorKyAgICAgIH0KKysKKysgICAgICAjIERvIGEg c3ltYm9saWMgbGluayBzbyB0aGF0IHRoZSBsaWJ0b29sIGFyY2hpdmUgY2FuIGJlIGZvdW5kIGlu CisrICAgICAgIyBMRF9MSUJSQVJZX1BBVEggYmVmb3JlIHRoZSBwcm9ncmFtIGlzIGluc3RhbGxl ZC4KKysgICAgICBmdW5jX3Nob3dfZXZhbCAnKCBjZCAiJG91dHB1dF9vYmpkaXIiICYmICRSTSAi JG91dHB1dG5hbWUiICYmICRMTl9TICIuLi8kb3V0cHV0bmFtZSIgIiRvdXRwdXRuYW1lIiApJyAn ZXhpdCAkPycKKysgICAgICA7OworKyAgICBlc2FjCisrICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwor K30KKysKKyt7IHRlc3QgIiRtb2RlIiA9IGxpbmsgfHwgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB9 ICYmCisrICAgIGZ1bmNfbW9kZV9saW5rICR7MSsiJEAifQorKworKworKyMgZnVuY19tb2RlX3Vu aW5zdGFsbCBhcmcuLi4KKytmdW5jX21vZGVfdW5pbnN0YWxsICgpCisreworKyAgICAkb3B0X2Rl YnVnCisrICAgIFJNPSIkbm9ub3B0IgorKyAgICBmaWxlcz0KKysgICAgcm1mb3JjZT0KKysgICAg ZXhpdF9zdGF0dXM9MAorKworKyAgICAjIFRoaXMgdmFyaWFibGUgdGVsbHMgd3JhcHBlciBzY3Jp cHRzIGp1c3QgdG8gc2V0IHZhcmlhYmxlcyByYXRoZXIKKysgICAgIyB0aGFuIHJ1bm5pbmcgdGhl aXIgcHJvZ3JhbXMuCisrICAgIGxpYnRvb2xfaW5zdGFsbF9tYWdpYz0iJG1hZ2ljIgorKworKyAg ICBmb3IgYXJnCisrICAgIGRvCisrICAgICAgY2FzZSAkYXJnIGluCisrICAgICAgLWYpIFJNPSIk Uk0gJGFyZyI7IHJtZm9yY2U9eWVzIDs7CisrICAgICAgLSopIFJNPSIkUk0gJGFyZyIgOzsKKysg ICAgICAqKSBmaWxlcz0iJGZpbGVzICRhcmciIDs7CisrICAgICAgZXNhYworKyAgICBkb25lCisr CisrICAgIHRlc3QgLXogIiRSTSIgJiYgXAorKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11 c3Qgc3BlY2lmeSBhbiBSTSBwcm9ncmFtIgorKworKyAgICBybWRpcnM9CisrCisrICAgIG9yaWdv YmpkaXI9IiRvYmpkaXIiCisrICAgIGZvciBmaWxlIGluICRmaWxlczsgZG8KKysgICAgICBmdW5j X2Rpcm5hbWUgIiRmaWxlIiAiIiAiLiIKKysgICAgICBkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0 IgorKyAgICAgIGlmIHRlc3QgIlgkZGlyIiA9IFguOyB0aGVuCisrCW9iamRpcj0iJG9yaWdvYmpk aXIiCisrICAgICAgZWxzZQorKwlvYmpkaXI9IiRkaXIvJG9yaWdvYmpkaXIiCisrICAgICAgZmkK KysgICAgICBmdW5jX2Jhc2VuYW1lICIkZmlsZSIKKysgICAgICBuYW1lPSIkZnVuY19iYXNlbmFt ZV9yZXN1bHQiCisrICAgICAgdGVzdCAiJG1vZGUiID0gdW5pbnN0YWxsICYmIG9iamRpcj0iJGRp ciIKKysKKysgICAgICAjIFJlbWVtYmVyIG9iamRpciBmb3IgcmVtb3ZhbCBsYXRlciwgYmVpbmcg Y2FyZWZ1bCB0byBhdm9pZCBkdXBsaWNhdGVzCisrICAgICAgaWYgdGVzdCAiJG1vZGUiID0gY2xl YW47IHRoZW4KKysJY2FzZSAiICRybWRpcnMgIiBpbgorKwkgICoiICRvYmpkaXIgIiopIDs7Cisr CSAgKikgcm1kaXJzPSIkcm1kaXJzICRvYmpkaXIiIDs7CisrCWVzYWMKKysgICAgICBmaQorKwor KyAgICAgICMgRG9uJ3QgZXJyb3IgaWYgdGhlIGZpbGUgZG9lc24ndCBleGlzdCBhbmQgcm0gLWYg d2FzIHVzZWQuCisrICAgICAgaWYgeyB0ZXN0IC1MICIkZmlsZSI7IH0gPi9kZXYvbnVsbCAyPiYx IHx8CisrCSB7IHRlc3QgLWggIiRmaWxlIjsgfSA+L2Rldi9udWxsIDI+JjEgfHwKKysJIHRlc3Qg LWYgIiRmaWxlIjsgdGhlbgorKwk6CisrICAgICAgZWxpZiB0ZXN0IC1kICIkZmlsZSI7IHRoZW4K KysJZXhpdF9zdGF0dXM9MQorKwljb250aW51ZQorKyAgICAgIGVsaWYgdGVzdCAiJHJtZm9yY2Ui ID0geWVzOyB0aGVuCisrCWNvbnRpbnVlCisrICAgICAgZmkKKysKKysgICAgICBybWZpbGVzPSIk ZmlsZSIKKysKKysgICAgICBjYXNlICRuYW1lIGluCisrICAgICAgKi5sYSkKKysJIyBQb3NzaWJs eSBhIGxpYnRvb2wgYXJjaGl2ZSwgc28gdmVyaWZ5IGl0LgorKwlpZiBmdW5jX2xhbGliX3AgIiRm aWxlIjsgdGhlbgorKwkgIGZ1bmNfc291cmNlICRkaXIvJG5hbWUKKysKKysJICAjIERlbGV0ZSB0 aGUgbGlidG9vbCBsaWJyYXJpZXMgYW5kIHN5bWxpbmtzLgorKwkgIGZvciBuIGluICRsaWJyYXJ5 X25hbWVzOyBkbworKwkgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kbiIKKysJICBkb25l CisrCSAgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IiAmJiBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGly LyRvbGRfbGlicmFyeSIKKysKKysJICBjYXNlICIkbW9kZSIgaW4KKysJICBjbGVhbikKKysJICAg IGNhc2UgIiAgJGxpYnJhcnlfbmFtZXMgIiBpbgorKwkgICAgIyAiICAiIGluIHRoZSBiZWdpbm5p bmcgY2F0Y2hlcyBlbXB0eSAkZGxuYW1lCisrCSAgICAqIiAkZGxuYW1lICIqKSA7OworKwkgICAg Kikgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kZGxuYW1lIiA7OworKwkgICAgZXNhYworKwkg ICAgdGVzdCAtbiAiJGxpYmRpciIgJiYgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kbmFtZSAk b2JqZGlyLyR7bmFtZX1pIgorKwkgICAgOzsKKysJICB1bmluc3RhbGwpCisrCSAgICBpZiB0ZXN0 IC1uICIkbGlicmFyeV9uYW1lcyI7IHRoZW4KKysJICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4g dGhlIHBvc3R1bmluc3RhbGwgY29tbWFuZHMuCisrCSAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIk cG9zdHVuaW5zdGFsbF9jbWRzIiAndGVzdCAiJHJtZm9yY2UiID0geWVzIHx8IGV4aXRfc3RhdHVz PTEnCisrCSAgICBmaQorKworKwkgICAgaWYgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IjsgdGhlbgor KwkgICAgICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgb2xkX3Bvc3R1bmluc3RhbGwgY29tbWFu ZHMuCisrCSAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkb2xkX3Bvc3R1bmluc3RhbGxfY21kcyIg J3Rlc3QgIiRybWZvcmNlIiA9IHllcyB8fCBleGl0X3N0YXR1cz0xJworKwkgICAgZmkKKysJICAg ICMgRklYTUU6IHNob3VsZCByZWluc3RhbGwgdGhlIGJlc3QgcmVtYWluaW5nIHNoYXJlZCBsaWJy YXJ5LgorKwkgICAgOzsKKysJICBlc2FjCisrCWZpCisrCTs7CisrCisrICAgICAgKi5sbykKKysJ IyBQb3NzaWJseSBhIGxpYnRvb2wgb2JqZWN0LCBzbyB2ZXJpZnkgaXQuCisrCWlmIGZ1bmNfbGFs aWJfcCAiJGZpbGUiOyB0aGVuCisrCisrCSAgIyBSZWFkIHRoZSAubG8gZmlsZQorKwkgIGZ1bmNf c291cmNlICRkaXIvJG5hbWUKKysKKysJICAjIEFkZCBQSUMgb2JqZWN0IHRvIHRoZSBsaXN0IG9m IGZpbGVzIHRvIHJlbW92ZS4KKysJICBpZiB0ZXN0IC1uICIkcGljX29iamVjdCIgJiYKKysJICAg ICB0ZXN0ICIkcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgorKwkgICAgcm1maWxlcz0iJHJtZmls ZXMgJGRpci8kcGljX29iamVjdCIKKysJICBmaQorKworKwkgICMgQWRkIG5vbi1QSUMgb2JqZWN0 IHRvIHRoZSBsaXN0IG9mIGZpbGVzIHRvIHJlbW92ZS4KKysJICBpZiB0ZXN0IC1uICIkbm9uX3Bp Y19vYmplY3QiICYmCisrCSAgICAgdGVzdCAiJG5vbl9waWNfb2JqZWN0IiAhPSBub25lOyB0aGVu CisrCSAgICBybWZpbGVzPSIkcm1maWxlcyAkZGlyLyRub25fcGljX29iamVjdCIKKysJICBmaQor KwlmaQorKwk7OworKworKyAgICAgICopCisrCWlmIHRlc3QgIiRtb2RlIiA9IGNsZWFuIDsgdGhl bgorKwkgIG5vZXhlbmFtZT0kbmFtZQorKwkgIGNhc2UgJGZpbGUgaW4KKysJICAqLmV4ZSkKKysJ ICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGZpbGUiCisrCSAgICBmaWxlPSRmdW5jX3N0 cmlwbmFtZV9yZXN1bHQKKysJICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJG5hbWUiCisr CSAgICBub2V4ZW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgICAgIyAkZmlsZSB3aXRo IC5leGUgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCB0byBybWZpbGVzLAorKwkgICAgIyBhZGQgJGZp bGUgd2l0aG91dCAuZXhlCisrCSAgICBybWZpbGVzPSIkcm1maWxlcyAkZmlsZSIKKysJICAgIDs7 CisrCSAgZXNhYworKwkgICMgRG8gYSB0ZXN0IHRvIHNlZSBpZiB0aGlzIGlzIGEgbGlidG9vbCBw cm9ncmFtLgorKwkgIGlmIGZ1bmNfbHR3cmFwcGVyX3AgIiRmaWxlIjsgdGhlbgorKwkgICAgaWYg ZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICIkZmlsZSI7IHRoZW4KKysJICAgICAgZnVuY19s dHdyYXBwZXJfc2NyaXB0bmFtZSAiJGZpbGUiCisrCSAgICAgIHJlbGlua19jb21tYW5kPQorKwkg ICAgICBmdW5jX3NvdXJjZSAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQKKysJICAg ICAgcm1maWxlcz0iJHJtZmlsZXMgJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0Igor KwkgICAgZWxzZQorKwkgICAgICByZWxpbmtfY29tbWFuZD0KKysJICAgICAgZnVuY19zb3VyY2Ug JGRpci8kbm9leGVuYW1lCisrCSAgICBmaQorKworKwkgICAgIyBub3RlICRuYW1lIHN0aWxsIGNv bnRhaW5zIC5leGUgaWYgaXQgd2FzIGluICRmaWxlIG9yaWdpbmFsbHkKKysJICAgICMgYXMgZG9l cyB0aGUgdmVyc2lvbiBvZiAkZmlsZSB0aGF0IHdhcyBhZGRlZCBpbnRvICRybWZpbGVzCisrCSAg ICBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRuYW1lICRvYmpkaXIvJHtuYW1lfVMuJHtvYmpl eHR9IgorKwkgICAgaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgPSB5ZXMgJiYgdGVzdCAtbiAiJHJl bGlua19jb21tYW5kIjsgdGhlbgorKwkgICAgICBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyL2x0 LSRuYW1lIgorKwkgICAgZmkKKysJICAgIGlmIHRlc3QgIlgkbm9leGVuYW1lIiAhPSAiWCRuYW1l IiA7IHRoZW4KKysJICAgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci9sdC0ke25vZXhlbmFt ZX0uYyIKKysJICAgIGZpCisrCSAgZmkKKysJZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAg ZnVuY19zaG93X2V2YWwgIiRSTSAkcm1maWxlcyIgJ2V4aXRfc3RhdHVzPTEnCisrICAgIGRvbmUK KysgICAgb2JqZGlyPSIkb3JpZ29iamRpciIKKysKKysgICAgIyBUcnkgdG8gcmVtb3ZlIHRoZSAk e29iamRpcn1zIGluIHRoZSBkaXJlY3RvcmllcyB3aGVyZSB3ZSBkZWxldGVkIGZpbGVzCisrICAg IGZvciBkaXIgaW4gJHJtZGlyczsgZG8KKysgICAgICBpZiB0ZXN0IC1kICIkZGlyIjsgdGhlbgor KwlmdW5jX3Nob3dfZXZhbCAicm1kaXIgJGRpciA+L2Rldi9udWxsIDI+JjEiCisrICAgICAgZmkK KysgICAgZG9uZQorKworKyAgICBleGl0ICRleGl0X3N0YXR1cworK30KKysKKyt7IHRlc3QgIiRt b2RlIiA9IHVuaW5zdGFsbCB8fCB0ZXN0ICIkbW9kZSIgPSBjbGVhbjsgfSAmJgorKyAgICBmdW5j X21vZGVfdW5pbnN0YWxsICR7MSsiJEAifQorKworK3Rlc3QgLXogIiRtb2RlIiAmJiB7CisrICBo ZWxwPSIkZ2VuZXJpY19oZWxwIgorKyAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5 IGEgTU9ERSIKKyt9CisrCisrdGVzdCAteiAiJGV4ZWNfY21kIiAmJiBcCisrICBmdW5jX2ZhdGFs X2hlbHAgImludmFsaWQgb3BlcmF0aW9uIG1vZGUgXGAkbW9kZSciCisrCisraWYgdGVzdCAtbiAi JGV4ZWNfY21kIjsgdGhlbgorKyAgZXZhbCBleGVjICIkZXhlY19jbWQiCisrICBleGl0ICRFWElU X0ZBSUxVUkUKKytmaQorKworK2V4aXQgJGV4aXRfc3RhdHVzCisrCisrCisrIyBUaGUgVEFHcyBi ZWxvdyBhcmUgZGVmaW5lZCBzdWNoIHRoYXQgd2UgbmV2ZXIgZ2V0IGludG8gYSBzaXR1YXRpb24K KysjIGluIHdoaWNoIHdlIGRpc2FibGUgYm90aCBraW5kcyBvZiBsaWJyYXJpZXMuICBHaXZlbiBj b25mbGljdGluZworKyMgY2hvaWNlcywgd2UgZ28gZm9yIGEgc3RhdGljIGxpYnJhcnksIHRoYXQg aXMgdGhlIG1vc3QgcG9ydGFibGUsCisrIyBzaW5jZSB3ZSBjYW4ndCB0ZWxsIHdoZXRoZXIgc2hh cmVkIGxpYnJhcmllcyB3ZXJlIGRpc2FibGVkIGJlY2F1c2UKKysjIHRoZSB1c2VyIGFza2VkIGZv ciB0aGF0IG9yIGJlY2F1c2UgdGhlIHBsYXRmb3JtIGRvZXNuJ3Qgc3VwcG9ydAorKyMgdGhlbS4g IFRoaXMgaXMgcGFydGljdWxhcmx5IGltcG9ydGFudCBvbiBBSVgsIGJlY2F1c2Ugd2UgZG9uJ3QK KysjIHN1cHBvcnQgaGF2aW5nIGJvdGggc3RhdGljIGFuZCBzaGFyZWQgbGlicmFyaWVzIGVuYWJs ZWQgYXQgdGhlIHNhbWUKKysjIHRpbWUgb24gdGhhdCBwbGF0Zm9ybSwgc28gd2UgZGVmYXVsdCB0 byBhIHNoYXJlZC1vbmx5IGNvbmZpZ3VyYXRpb24uCisrIyBJZiBhIGRpc2FibGUtc2hhcmVkIHRh ZyBpcyBnaXZlbiwgd2UnbGwgZmFsbGJhY2sgdG8gYSBzdGF0aWMtb25seQorKyMgY29uZmlndXJh dGlvbi4gIEJ1dCB3ZSdsbCBuZXZlciBnbyBmcm9tIHN0YXRpYy1vbmx5IHRvIHNoYXJlZC1vbmx5 LgorKworKyMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zaGFyZWQKKyti dWlsZF9saWJ0b29sX2xpYnM9bm8KKytidWlsZF9vbGRfbGlicz15ZXMKKysjICMjIyBFTkQgTElC VE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXNoYXJlZAorKworKyMgIyMjIEJFR0lOIExJQlRPT0wg VEFHIENPTkZJRzogZGlzYWJsZS1zdGF0aWMKKytidWlsZF9vbGRfbGlicz1gY2FzZSAkYnVpbGRf bGlidG9vbF9saWJzIGluIHllcykgZWNobyBubzs7ICopIGVjaG8geWVzOzsgZXNhY2AKKysjICMj IyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXN0YXRpYworKworKyMgTG9jYWwgVmFy aWFibGVzOgorKyMgbW9kZTpzaGVsbC1zY3JpcHQKKysjIHNoLWluZGVudGF0aW9uOjIKKysjIEVu ZDoKKysjIHZpOnN3PTIKKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHR+ b2Jzb2xldGUubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNAorLS0t IHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNAkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHR+b2Jz b2xldGUubTQJMjAxMS0wMi0wOCAyMjozOTo0NC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEs OTggQEAKKysjIGx0fm9ic29sZXRlLm00IC0tIGFjbG9jYWwgc2F0aXNmeWluZyBvYnNvbGV0ZSBk ZWZpbml0aW9ucy4gICAgLSotQXV0b2NvbmYtKi0KKysjCisrIyAgIENvcHlyaWdodCAoQykgMjAw NCwgMjAwNSwgMjAwNywgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjICAg V3JpdHRlbiBieSBTY290dCBKYW1lcyBSZW1uYW50LCAyMDA0LgorKyMKKysjIFRoaXMgZmlsZSBp cyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCisrIyB1 bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9y IHdpdGhvdXQKKysjIG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJl c2VydmVkLgorKworKyMgc2VyaWFsIDUgbHR+b2Jzb2xldGUubTQKKysKKysjIFRoZXNlIGV4aXN0 IGVudGlyZWx5IHRvIGZvb2wgYWNsb2NhbCB3aGVuIGJvb3RzdHJhcHBpbmcgbGlidG9vbC4KKysj CisrIyBJbiB0aGUgcGFzdCBsaWJ0b29sLm00IGhhcyBwcm92aWRlZCBtYWNyb3MgdmlhIEFDX0RF RlVOIChvciBBVV9ERUZVTikKKysjIHdoaWNoIGhhdmUgbGF0ZXIgYmVlbiBjaGFuZ2VkIHRvIG00 X2RlZmluZSBhcyB0aGV5IGFyZW4ndCBwYXJ0IG9mIHRoZQorKyMgZXhwb3J0ZWQgQVBJLCBvciBt b3ZlZCB0byBBdXRvY29uZiBvciBBdXRvbWFrZSB3aGVyZSB0aGV5IGJlbG9uZy4KKysjCisrIyBU aGUgdHJvdWJsZSBpcywgYWNsb2NhbCBpcyBhIGJpdCB0aGljay4gIEl0J2xsIHNlZSB0aGUgb2xk IEFDX0RFRlVOCisrIyBpbiAvdXNyL3NoYXJlL2FjbG9jYWwvbGlidG9vbC5tNCBhbmQgcmVtZW1i ZXIgaXQsIHRoZW4gd2hlbiBpdCBzZWVzIHVzCisrIyB1c2luZyBhIG1hY3JvIHdpdGggdGhlIHNh bWUgbmFtZSBpbiBvdXIgbG9jYWwgbTQvbGlidG9vbC5tNCBpdCdsbAorKyMgcHVsbCB0aGUgb2xk IGxpYnRvb2wubTQgaW4gKGl0IGRvZXNuJ3Qgc2VlIG91ciBzaGlueSBuZXcgbTRfZGVmaW5lCisr IyBhbmQgZG9lc24ndCBrbm93IGFib3V0IEF1dG9jb25mIG1hY3JvcyBhdCBhbGwuKQorKyMKKysj IFNvIHdlIHByb3ZpZGUgdGhpcyBmaWxlLCB3aGljaCBoYXMgYSBzaWxseSBmaWxlbmFtZSBzbyBp dCdzIGFsd2F5cworKyMgaW5jbHVkZWQgYWZ0ZXIgZXZlcnl0aGluZyBlbHNlLiAgVGhpcyBwcm92 aWRlcyBhY2xvY2FsIHdpdGggdGhlCisrIyBBQ19ERUZVTnMgaXQgd2FudHMsIGJ1dCB3aGVuIG00 IHByb2Nlc3NlcyBpdCwgaXQgZG9lc24ndCBkbyBhbnl0aGluZworKyMgYmVjYXVzZSB0aG9zZSBt YWNyb3MgYWxyZWFkeSBleGlzdCwgb3Igd2lsbCBiZSBvdmVyd3JpdHRlbiBsYXRlci4KKysjIFdl IHVzZSBBQ19ERUZVTiBvdmVyIEFVX0RFRlVOIGZvciBjb21wYXRpYmlsaXR5IHdpdGggYWNsb2Nh bC0xLjYuIAorKyMKKysjIEFueXRpbWUgd2Ugd2l0aGRyYXcgYW4gQUNfREVGVU4gb3IgQVVfREVG VU4sIHJlbWVtYmVyIHRvIGFkZCBpdCBoZXJlLgorKyMgWWVzLCB0aGF0IG1lYW5zIGV2ZXJ5IG5h bWUgb25jZSB0YWtlbiB3aWxsIG5lZWQgdG8gcmVtYWluIGhlcmUgdW50aWwKKysjIHdlIGdpdmUg dXAgY29tcGF0aWJpbGl0eSB3aXRoIHZlcnNpb25zIGJlZm9yZSAxLjcsIGF0IHdoaWNoIHBvaW50 CisrIyB3ZSBuZWVkIHRvIGtlZXAgb25seSB0aG9zZSBuYW1lcyB3aGljaCB3ZSBzdGlsbCByZWZl ciB0by4KKysKKysjIFRoaXMgaXMgdG8gaGVscCBhY2xvY2FsIGZpbmQgdGhlc2UgbWFjcm9zLCBh cyBpdCBjYW4ndCBzZWUgbTRfZGVmaW5lLgorK0FDX0RFRlVOKFtMVE9CU09MRVRFX1ZFUlNJT05d LCBbbTRfaWYoWzFdKV0pCisrCisrbTRfaWZuZGVmKFtBQ19MSUJUT09MX0xJTktFUl9PUFRJT05d LAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0pXSkKKyttNF9pZm5kZWYoW0FD X1BST0dfRUdSRVBdLAkJW0FDX0RFRlVOKFtBQ19QUk9HX0VHUkVQXSldKQorK200X2lmbmRlZihb X0xUX0FDX1BST0dfRUNIT19CQUNLU0xBU0hdLAlbQUNfREVGVU4oW19MVF9BQ19QUk9HX0VDSE9f QkFDS1NMQVNIXSldKQorK200X2lmbmRlZihbX0xUX0FDX1NIRUxMX0lOSVRdLAkJW0FDX0RFRlVO KFtfTFRfQUNfU0hFTExfSU5JVF0pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19TWVNfTElCUEFUSF9B SVhdLAlbQUNfREVGVU4oW19MVF9BQ19TWVNfTElCUEFUSF9BSVhdKV0pCisrbTRfaWZuZGVmKFtf TFRfUFJPR19MVE1BSU5dLAkJW0FDX0RFRlVOKFtfTFRfUFJPR19MVE1BSU5dKV0pCisrbTRfaWZu ZGVmKFtfTFRfQUNfVEFHVkFSXSwJCVtBQ19ERUZVTihbX0xUX0FDX1RBR1ZBUl0pXSkKKyttNF9p Zm5kZWYoW0FDX0xURExfRU5BQkxFX0lOU1RBTExdLAlbQUNfREVGVU4oW0FDX0xURExfRU5BQkxF X0lOU1RBTExdKV0pCisrbTRfaWZuZGVmKFtBQ19MVERMX1BSRU9QRU5dLAkJW0FDX0RFRlVOKFtB Q19MVERMX1BSRU9QRU5dKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfU1lTX0NPTVBJTEVSXSwJW0FD X0RFRlVOKFtfTFRfQUNfU1lTX0NPTVBJTEVSXSldKQorK200X2lmbmRlZihbX0xUX0FDX0xPQ0td LAkJW0FDX0RFRlVOKFtfTFRfQUNfTE9DS10pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfU1lT X09MRF9BUkNISVZFXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19PTERfQVJDSElWRV0pXSkK KyttNF9pZm5kZWYoW19MVF9BQ19UUllfRExPUEVOX1NFTEZdLAlbQUNfREVGVU4oW19MVF9BQ19U UllfRExPUEVOX1NFTEZdKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09MX1BST0dfQ0NfQ19PXSwJ W0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfQ0NfQ19PXSldKQorK200X2lmbmRlZihbQUNfTElC VE9PTF9TWVNfSEFSRF9MSU5LX0xPQ0tTXSwgW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19IQVJE X0xJTktfTE9DS1NdKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09MX09CSkRJUl0sCQlbQUNfREVG VU4oW0FDX0xJQlRPT0xfT0JKRElSXSldKQorK200X2lmbmRlZihbQUNfTFRETF9PQkpESVJdLAkJ W0FDX0RFRlVOKFtBQ19MVERMX09CSkRJUl0pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfUFJP R19MRF9IQVJEQ09ERV9MSUJQQVRIXSwgW0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfTERfSEFS RENPREVfTElCUEFUSF0pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfU1lTX0xJQl9TVFJJUF0s CVtBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfTElCX1NUUklQXSldKQorK200X2lmbmRlZihbQUNf UEFUSF9NQUdJQ10sCQlbQUNfREVGVU4oW0FDX1BBVEhfTUFHSUNdKV0pCisrbTRfaWZuZGVmKFtB Q19QUk9HX0xEX0dOVV0sCQlbQUNfREVGVU4oW0FDX1BST0dfTERfR05VXSldKQorK200X2lmbmRl ZihbQUNfUFJPR19MRF9SRUxPQURfRkxBR10sCVtBQ19ERUZVTihbQUNfUFJPR19MRF9SRUxPQURf RkxBR10pXSkKKyttNF9pZm5kZWYoW0FDX0RFUExJQlNfQ0hFQ0tfTUVUSE9EXSwJW0FDX0RFRlVO KFtBQ19ERVBMSUJTX0NIRUNLX01FVEhPRF0pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfUFJP R19DT01QSUxFUl9OT19SVFRJXSwgW0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfQ09NUElMRVJf Tk9fUlRUSV0pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfU1lTX0dMT0JBTF9TWU1CT0xfUElQ RV0sIFtBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfR0xPQkFMX1NZTUJPTF9QSVBFXSldKQorK200 X2lmbmRlZihbQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX1BJQ10sIFtBQ19ERUZVTihbQUNfTElC VE9PTF9QUk9HX0NPTVBJTEVSX1BJQ10pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfUFJPR19M RF9TSExJQlNdLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJPR19MRF9TSExJQlNdKV0pCisrbTRf aWZuZGVmKFtBQ19MSUJUT09MX1BPU1RERVBfUFJFREVQXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09M X1BPU1RERVBfUFJFREVQXSldKQorK200X2lmbmRlZihbTFRfQUNfUFJPR19FR1JFUF0sCQlbQUNf REVGVU4oW0xUX0FDX1BST0dfRUdSRVBdKV0pCisrbTRfaWZuZGVmKFtMVF9BQ19QUk9HX1NFRF0s CQlbQUNfREVGVU4oW0xUX0FDX1BST0dfU0VEXSldKQorK200X2lmbmRlZihbX0xUX0NDX0JBU0VO QU1FXSwJCVtBQ19ERUZVTihbX0xUX0NDX0JBU0VOQU1FXSldKQorK200X2lmbmRlZihbX0xUX0NP TVBJTEVSX0JPSUxFUlBMQVRFXSwJW0FDX0RFRlVOKFtfTFRfQ09NUElMRVJfQk9JTEVSUExBVEVd KV0pCisrbTRfaWZuZGVmKFtfTFRfTElOS0VSX0JPSUxFUlBMQVRFXSwJW0FDX0RFRlVOKFtfTFRf TElOS0VSX0JPSUxFUlBMQVRFXSldKQorK200X2lmbmRlZihbX0FDX1BST0dfTElCVE9PTF0sCQlb QUNfREVGVU4oW19BQ19QUk9HX0xJQlRPT0xdKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NF VFVQXSwJCVtBQ19ERUZVTihbQUNfTElCVE9PTF9TRVRVUF0pXSkKKyttNF9pZm5kZWYoW19MVF9B Q19DSEVDS19ETEZDTl0sCQlbQUNfREVGVU4oW19MVF9BQ19DSEVDS19ETEZDTl0pXSkKKyttNF9p Zm5kZWYoW0FDX0xJQlRPT0xfU1lTX0RZTkFNSUNfTElOS0VSXSwJW0FDX0RFRlVOKFtBQ19MSUJU T09MX1NZU19EWU5BTUlDX0xJTktFUl0pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19UQUdDT05GSUdd LAkJW0FDX0RFRlVOKFtfTFRfQUNfVEFHQ09ORklHXSldKQorK200X2lmbmRlZihbQUNfRElTQUJM RV9GQVNUX0lOU1RBTExdLAlbQUNfREVGVU4oW0FDX0RJU0FCTEVfRkFTVF9JTlNUQUxMXSldKQor K200X2lmbmRlZihbX0xUX0FDX0xBTkdfQ1hYXSwJCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfQ1hY XSldKQorK200X2lmbmRlZihbX0xUX0FDX0xBTkdfRjc3XSwJCVtBQ19ERUZVTihbX0xUX0FDX0xB TkdfRjc3XSldKQorK200X2lmbmRlZihbX0xUX0FDX0xBTkdfR0NKXSwJCVtBQ19ERUZVTihbX0xU X0FDX0xBTkdfR0NKXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX0NfQ09ORklHXSwJ W0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfQ19DT05GSUddKV0pCisrbTRfaWZuZGVmKFtfTFRf QUNfTEFOR19DX0NPTkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfQ19DT05GSUddKV0pCisr bTRfaWZuZGVmKFtBQ19MSUJUT09MX0xBTkdfQ1hYX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElC VE9PTF9MQU5HX0NYWF9DT05GSUddKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19DWFhfQ09O RklHXSwJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19DWFhfQ09ORklHXSldKQorK200X2lmbmRlZihb QUNfTElCVE9PTF9MQU5HX0Y3N19DT05GSUddLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfTEFOR19G NzdfQ09ORklHXSldKQorK200X2lmbmRlZihbX0xUX0FDX0xBTkdfRjc3X0NPTkZJR10sCVtBQ19E RUZVTihbX0xUX0FDX0xBTkdfRjc3X0NPTkZJR10pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xf TEFOR19HQ0pfQ09ORklHXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfR0NKX0NPTkZJR10p XSkKKyttNF9pZm5kZWYoW19MVF9BQ19MQU5HX0dDSl9DT05GSUddLAlbQUNfREVGVU4oW19MVF9B Q19MQU5HX0dDSl9DT05GSUddKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09MX0xBTkdfUkNfQ09O RklHXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfUkNfQ09ORklHXSldKQorK200X2lmbmRl ZihbX0xUX0FDX0xBTkdfUkNfQ09ORklHXSwJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19SQ19DT05G SUddKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09MX0NPTkZJR10sCQlbQUNfREVGVU4oW0FDX0xJ QlRPT0xfQ09ORklHXSldKQorK200X2lmbmRlZihbX0xUX0FDX0ZJTEVfTFRETExfQ10sCVtBQ19E RUZVTihbX0xUX0FDX0ZJTEVfTFRETExfQ10pXSkKKyttNF9pZm5kZWYoW19MVF9SRVFVSVJFRF9E QVJXSU5fQ0hFQ0tTXSwJW0FDX0RFRlVOKFtfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLU10pXSkK KyttNF9pZm5kZWYoW19MVF9BQ19QUk9HX0NYWENQUF0sCQlbQUNfREVGVU4oW19MVF9BQ19QUk9H X0NYWENQUF0pXSkKKyttNF9pZm5kZWYoW19MVF9QUkVQQVJFX1NFRF9RVU9URV9WQVJTXSwJW0FD X0RFRlVOKFtfTFRfUFJFUEFSRV9TRURfUVVPVEVfVkFSU10pXSkKKyttNF9pZm5kZWYoW19MVF9Q Uk9HX0VDSE9fQkFDS1NMQVNIXSwJW0FDX0RFRlVOKFtfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSF0p XSkKKyttNF9pZm5kZWYoW19MVF9QUk9HX0Y3N10sCQlbQUNfREVGVU4oW19MVF9QUk9HX0Y3N10p XSkKKyttNF9pZm5kZWYoW19MVF9QUk9HX0ZDXSwJCVtBQ19ERUZVTihbX0xUX1BST0dfRkNdKV0p CisrbTRfaWZuZGVmKFtfTFRfUFJPR19DWFhdLAkJW0FDX0RFRlVOKFtfTFRfUFJPR19DWFhdKV0p CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0b3B0aW9ucy5tNCBzb2NpLTMu MC4wX3RyZXAzMDAvY29uZmlnL2x0b3B0aW9ucy5tNAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2Nv bmZpZy9sdG9wdGlvbnMubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysr KyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0b3B0aW9ucy5tNAkyMDExLTAyLTA4IDIyOjM5 OjQ0LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSwzNjkgQEAKKysjIEhlbHBlciBmdW5jdGlv bnMgZm9yIG9wdGlvbiBoYW5kbGluZy4gICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAt Ki0KKysjCisrIyAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNywgMjAwOCwgMjAwOSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyAgIEluYy4KKysjICAgV3JpdHRlbiBieSBHYXJ5 IFYuIFZhdWdoYW4sIDIwMDQKKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcworKyMgdW5saW1pdGVkIHBlcm1pc3Npb24g dG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0CisrIyBtb2RpZmlj YXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIHNlcmlh bCA3IGx0b3B0aW9ucy5tNAorKworKyMgVGhpcyBpcyB0byBoZWxwIGFjbG9jYWwgZmluZCB0aGVz ZSBtYWNyb3MsIGFzIGl0IGNhbid0IHNlZSBtNF9kZWZpbmUuCisrQUNfREVGVU4oW0xUT1BUSU9O U19WRVJTSU9OXSwgW200X2lmKFsxXSldKQorKworKworKyMgX0xUX01BTkdMRV9PUFRJT04oTUFD Uk8tTkFNRSwgT1BUSU9OLU5BTUUpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW19MVF9NQU5HTEVfT1BUSU9OXSwKKytbW19MVF9PUFRJ T05fXW00X2JwYXRzdWJzdCgkMV9fJDIsIFtbXmEtekEtWjAtOV9dXSwgW19dKV0pCisrCisrCisr IyBfTFRfU0VUX09QVElPTihNQUNSTy1OQU1FLCBPUFRJT04tTkFNRSkKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU2V0IG9wdGlvbiBPUFRJT04tTkFNRSBm b3IgbWFjcm8gTUFDUk8tTkFNRSwgYW5kIGlmIHRoZXJlIGlzIGEKKysjIG1hdGNoaW5nIGhhbmRs ZXIgZGVmaW5lZCwgZGlzcGF0Y2ggdG8gaXQuICBPdGhlciBPUFRJT04tTkFNRXMgYXJlCisrIyBz YXZlZCBhcyBhIGZsYWcuCisrbTRfZGVmaW5lKFtfTFRfU0VUX09QVElPTl0sCisrW200X2RlZmlu ZShfTFRfTUFOR0xFX09QVElPTihbJDFdLCBbJDJdKSlkbmwKKyttNF9pZmRlZihfTFRfTUFOR0xF X0RFRlVOKFskMV0sIFskMl0pLAorKyAgICAgICAgX0xUX01BTkdMRV9ERUZVTihbJDFdLCBbJDJd KSwKKysgICAgW200X3dhcm5pbmcoW1Vua25vd24gJDEgb3B0aW9uIGAkMiddKV0pW11kbmwKKytd KQorKworKworKyMgX0xUX0lGX09QVElPTihNQUNSTy1OQU1FLCBPUFRJT04tTkFNRSwgSUYtU0VU LCBbSUYtTk9ULVNFVF0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEV4ZWN1dGUgSUYtU0VUIGlmIE9QVElPTiBpcyBz ZXQsIElGLU5PVC1TRVQgb3RoZXJ3aXNlLgorK200X2RlZmluZShbX0xUX0lGX09QVElPTl0sCisr W200X2lmZGVmKF9MVF9NQU5HTEVfT1BUSU9OKFskMV0sIFskMl0pLCBbJDNdLCBbJDRdKV0pCisr CisrCisrIyBfTFRfVU5MRVNTX09QVElPTlMoTUFDUk8tTkFNRSwgT1BUSU9OLUxJU1QsIElGLU5P VC1TRVQpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrIyBFeGVjdXRlIElGLU5PVC1TRVQgdW5sZXNzIGFsbCBvcHRpb25zIGluIE9Q VElPTi1MSVNUIGZvciBNQUNSTy1OQU1FCisrIyBhcmUgc2V0LgorK200X2RlZmluZShbX0xUX1VO TEVTU19PUFRJT05TXSwKKytbbTRfZm9yZWFjaChbX0xUX09wdGlvbl0sIG00X3NwbGl0KG00X25v cm1hbGl6ZShbJDJdKSksCisrCSAgICBbbTRfaWZkZWYoX0xUX01BTkdMRV9PUFRJT04oWyQxXSwg X0xUX09wdGlvbiksCisrCQkgICAgICBbbTRfZGVmaW5lKFskMF9mb3VuZF0pXSldKVtdZG5sCisr bTRfaWZkZWYoWyQwX2ZvdW5kXSwgW200X3VuZGVmaW5lKFskMF9mb3VuZF0pXSwgWyQzCisrXSlb XWRubAorK10pCisrCisrCisrIyBfTFRfU0VUX09QVElPTlMoTUFDUk8tTkFNRSwgT1BUSU9OLUxJ U1QpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBPUFRJ T04tTElTVCBpcyBhIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIExpYnRvb2wgb3B0aW9ucyBhc3Nv Y2lhdGVkCisrIyB3aXRoIE1BQ1JPLU5BTUUuICBJZiBhbnkgT1BUSU9OIGhhcyBhIG1hdGNoaW5n IGhhbmRsZXIgZGVjbGFyZWQgd2l0aAorKyMgTFRfT1BUSU9OX0RFRklORSwgZGlzcGF0Y2ggdG8g dGhhdCBtYWNybzsgb3RoZXJ3aXNlIGNvbXBsYWluIGFib3V0CisrIyB0aGUgdW5rbm93biBvcHRp b24gYW5kIGV4aXQuCisrbTRfZGVmdW4oW19MVF9TRVRfT1BUSU9OU10sCisrWyMgU2V0IG9wdGlv bnMKKyttNF9mb3JlYWNoKFtfTFRfT3B0aW9uXSwgbTRfc3BsaXQobTRfbm9ybWFsaXplKFskMl0p KSwKKysgICAgW19MVF9TRVRfT1BUSU9OKFskMV0sIF9MVF9PcHRpb24pXSkKKysKKyttNF9pZihb JDFdLFtMVF9JTklUXSxbCisrICBkbmwKKysgIGRubCBTaW1wbHkgc2V0IHNvbWUgZGVmYXVsdCB2 YWx1ZXMgKGkuZSBvZmYpIGlmIGJvb2xlYW4gb3B0aW9ucyB3ZXJlIG5vdAorKyAgZG5sIHNwZWNp ZmllZDoKKysgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFtkbG9wZW5dLCBbZW5hYmxl X2Rsb3Blbj1ubworKyAgXSkKKysgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFt3aW4z Mi1kbGxdLCBbZW5hYmxlX3dpbjMyX2RsbD1ubworKyAgXSkKKysgIGRubAorKyAgZG5sIElmIG5v IHJlZmVyZW5jZSB3YXMgbWFkZSB0byB2YXJpb3VzIHBhaXJzIG9mIG9wcG9zaW5nIG9wdGlvbnMs IHRoZW4KKysgIGRubCB3ZSBydW4gdGhlIGRlZmF1bHQgbW9kZSBoYW5kbGVyIGZvciB0aGUgcGFp ci4gIEZvciBleGFtcGxlLCBpZiBuZWl0aGVyCisrICBkbmwgYHNoYXJlZCcgbm9yIGBkaXNhYmxl LXNoYXJlZCcgd2FzIHBhc3NlZCwgd2UgZW5hYmxlIGJ1aWxkaW5nIG9mIHNoYXJlZAorKyAgZG5s IGFyY2hpdmVzIGJ5IGRlZmF1bHQ6CisrICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBb c2hhcmVkIGRpc2FibGUtc2hhcmVkXSwgW19MVF9FTkFCTEVfU0hBUkVEXSkKKysgIF9MVF9VTkxF U1NfT1BUSU9OUyhbTFRfSU5JVF0sIFtzdGF0aWMgZGlzYWJsZS1zdGF0aWNdLCBbX0xUX0VOQUJM RV9TVEFUSUNdKQorKyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9JTklUXSwgW3BpYy1vbmx5IG5v LXBpY10sIFtfTFRfV0lUSF9QSUNdKQorKyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9JTklUXSwg W2Zhc3QtaW5zdGFsbCBkaXNhYmxlLWZhc3QtaW5zdGFsbF0sCisrICAJCSAgIFtfTFRfRU5BQkxF X0ZBU1RfSU5TVEFMTF0pCisrICBdKQorK10pIyBfTFRfU0VUX09QVElPTlMKKysKKysKKysjIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBNYWNyb3MgdG8gaGFuZGxl IExUX0lOSVQgb3B0aW9ucy4gIyMKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gIyMKKysKKysjIF9MVF9NQU5HTEVfREVGVU4oTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUpCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZmluZShb X0xUX01BTkdMRV9ERUZVTl0sCisrW1tfTFRfT1BUSU9OX0RFRlVOX11tNF9icGF0c3Vic3QobTRf dG91cHBlcihbJDFfXyQyXSksIFtbXkEtWjAtOV9dXSwgW19dKV0pCisrCisrCisrIyBMVF9PUFRJ T05fREVGSU5FKE1BQ1JPLU5BTUUsIE9QVElPTi1OQU1FLCBDT0RFKQorKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW0xUX09QVElP Tl9ERUZJTkVdLAorK1ttNF9kZWZpbmUoX0xUX01BTkdMRV9ERUZVTihbJDFdLCBbJDJdKSwgWyQz XSlbXWRubAorK10pIyBMVF9PUFRJT05fREVGSU5FCisrCisrCisrIyBkbG9wZW4KKysjIC0tLS0t LQorK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGxvcGVuXSwgW2VuYWJsZV9kbG9wZW49 eWVzCisrXSkKKysKKytBVV9ERUZVTihbQUNfTElCVE9PTF9ETE9QRU5dLAorK1tfTFRfU0VUX09Q VElPTihbTFRfSU5JVF0sIFtkbG9wZW5dKQorK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCisrWyQw OiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVu IHlvdQorK3B1dCB0aGUgYGRsb3Blbicgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0IHBhcmFt ZXRlci5dKQorK10pCisrCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5 OgorK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9ETE9QRU5dLCBbXSkKKysKKysKKysjIHdpbjMy LWRsbAorKyMgLS0tLS0tLS0tCisrIyBEZWNsYXJlIHBhY2thZ2Ugc3VwcG9ydCBmb3IgYnVpbGRp bmcgd2luMzIgZGxsJ3MuCisrTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFt3aW4zMi1kbGxd LAorK1tlbmFibGVfd2luMzJfZGxsPXllcworKworK2Nhc2UgJGhvc3QgaW4KKysqLSotY3lnd2lu KiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotY2VnY2MqKQorKyAgQUNfQ0hFQ0tfVE9P TChBUywgYXMsIGZhbHNlKQorKyAgQUNfQ0hFQ0tfVE9PTChETExUT09MLCBkbGx0b29sLCBmYWxz ZSkKKysgIEFDX0NIRUNLX1RPT0woT0JKRFVNUCwgb2JqZHVtcCwgZmFsc2UpCisrICA7OworK2Vz YWMKKysKKyt0ZXN0IC16ICIkQVMiICYmIEFTPWFzCisrX0xUX0RFQ0woW10sIFtBU10sICAgICAg WzFdLCBbQXNzZW1ibGVyIHByb2dyYW1dKWRubAorKworK3Rlc3QgLXogIiRETExUT09MIiAmJiBE TExUT09MPWRsbHRvb2wKKytfTFRfREVDTChbXSwgW0RMTFRPT0xdLCBbMV0sIFtETEwgY3JlYXRp b24gcHJvZ3JhbV0pZG5sCisrCisrdGVzdCAteiAiJE9CSkRVTVAiICYmIE9CSkRVTVA9b2JqZHVt cAorK19MVF9ERUNMKFtdLCBbT0JKRFVNUF0sIFsxXSwgW09iamVjdCBkdW1wZXIgcHJvZ3JhbV0p ZG5sCisrXSkjIHdpbjMyLWRsbAorKworK0FVX0RFRlVOKFtBQ19MSUJUT09MX1dJTjMyX0RMTF0s CisrW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKKytfTFRfU0VUX09QVElPTihb TFRfSU5JVF0sIFt3aW4zMi1kbGxdKQorK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCisrWyQwOiBS ZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlv dQorK3B1dCB0aGUgYHdpbjMyLWRsbCcgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0IHBhcmFt ZXRlci5dKQorK10pCisrCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5 OgorK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9XSU4zMl9ETExdLCBbXSkKKysKKysKKysjIF9M VF9FTkFCTEVfU0hBUkVEKFtERUZBVUxUXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysjIGltcGxlbWVudCB0aGUgLS1lbmFibGUtc2hhcmVkIGZsYWcsIGFuZCBzdXBwb3J0cyB0 aGUgYHNoYXJlZCcgYW5kCisrIyBgZGlzYWJsZS1zaGFyZWQnIExUX0lOSVQgb3B0aW9ucy4KKysj IERFRkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0 cyB0byBgeWVzJy4KKyttNF9kZWZpbmUoW19MVF9FTkFCTEVfU0hBUkVEXSwKKytbbTRfZGVmaW5l KFtfTFRfRU5BQkxFX1NIQVJFRF9ERUZBVUxUXSwgW200X2lmKCQxLCBubywgbm8sIHllcyldKWRu bAorK0FDX0FSR19FTkFCTEUoW3NoYXJlZF0sCisrICAgIFtBU19IRUxQX1NUUklORyhbLS1lbmFi bGUtc2hhcmVkQDw6QD1QS0dTQDo+QF0sCisrCVtidWlsZCBzaGFyZWQgbGlicmFyaWVzIEA8OkBk ZWZhdWx0PV1fTFRfRU5BQkxFX1NIQVJFRF9ERUZBVUxUW0A6PkBdKV0sCisrICAgIFtwPSR7UEFD S0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2YWwgaW4KKysgICAgeWVzKSBlbmFibGVf c2hhcmVkPXllcyA7OworKyAgICBubykgZW5hYmxlX3NoYXJlZD1ubyA7OworKyAgICAqKQorKyAg ICAgIGVuYWJsZV9zaGFyZWQ9bm8KKysgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdv dC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCisrICAgICAgbHRfc2F2 ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCisrICAgICAgZm9yIHBr ZyBpbiAkZW5hYmxldmFsOyBkbworKwlJRlM9IiRsdF9zYXZlX2lmcyIKKysJaWYgdGVzdCAiWCRw a2ciID0gIlgkcCI7IHRoZW4KKysJICBlbmFibGVfc2hhcmVkPXllcworKwlmaQorKyAgICAgIGRv bmUKKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgICA7OworKyAgICBlc2FjXSwKKysg ICAgW2VuYWJsZV9zaGFyZWQ9XV9MVF9FTkFCTEVfU0hBUkVEX0RFRkFVTFQpCisrCisrICAgIF9M VF9ERUNMKFtidWlsZF9saWJ0b29sX2xpYnNdLCBbZW5hYmxlX3NoYXJlZF0sIFswXSwKKysJW1do ZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQorK10pIyBfTFRfRU5BQkxF X1NIQVJFRAorKworK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbc2hhcmVkXSwgW19MVF9F TkFCTEVfU0hBUkVEKFt5ZXNdKV0pCisrTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtkaXNh YmxlLXNoYXJlZF0sIFtfTFRfRU5BQkxFX1NIQVJFRChbbm9dKV0pCisrCisrIyBPbGQgbmFtZXM6 CisrQUNfREVGVU4oW0FDX0VOQUJMRV9TSEFSRURdLAorK1tfTFRfU0VUX09QVElPTihbTFRfSU5J VF0sIG00X2lmKFskMV0sIFtub10sIFtkaXNhYmxlLV0pW3NoYXJlZF0pCisrXSkKKysKKytBQ19E RUZVTihbQUNfRElTQUJMRV9TSEFSRURdLAorK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFtk aXNhYmxlLXNoYXJlZF0pCisrXSkKKysKKytBVV9ERUZVTihbQU1fRU5BQkxFX1NIQVJFRF0sIFtB Q19FTkFCTEVfU0hBUkVEKCRAKV0pCisrQVVfREVGVU4oW0FNX0RJU0FCTEVfU0hBUkVEXSwgW0FD X0RJU0FCTEVfU0hBUkVEKCRAKV0pCisrCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21w YXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQU1fRU5BQkxFX1NIQVJFRF0sIFtdKQorK2RubCBB Q19ERUZVTihbQU1fRElTQUJMRV9TSEFSRURdLCBbXSkKKysKKysKKysKKysjIF9MVF9FTkFCTEVf U1RBVElDKFtERUZBVUxUXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIGlt cGxlbWVudCB0aGUgLS1lbmFibGUtc3RhdGljIGZsYWcsIGFuZCBzdXBwb3J0IHRoZSBgc3RhdGlj JyBhbmQKKysjIGBkaXNhYmxlLXN0YXRpYycgTFRfSU5JVCBvcHRpb25zLgorKyMgREVGQVVMVCBp cyBlaXRoZXIgYHllcycgb3IgYG5vJy4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIGB5ZXMn LgorK200X2RlZmluZShbX0xUX0VOQUJMRV9TVEFUSUNdLAorK1ttNF9kZWZpbmUoW19MVF9FTkFC TEVfU1RBVElDX0RFRkFVTFRdLCBbbTRfaWYoJDEsIG5vLCBubywgeWVzKV0pZG5sCisrQUNfQVJH X0VOQUJMRShbc3RhdGljXSwKKysgICAgW0FTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1zdGF0aWNA PDpAPVBLR1NAOj5AXSwKKysJW2J1aWxkIHN0YXRpYyBsaWJyYXJpZXMgQDw6QGRlZmF1bHQ9XV9M VF9FTkFCTEVfU1RBVElDX0RFRkFVTFRbQDo+QF0pXSwKKysgICAgW3A9JHtQQUNLQUdFLWRlZmF1 bHR9CisrICAgIGNhc2UgJGVuYWJsZXZhbCBpbgorKyAgICB5ZXMpIGVuYWJsZV9zdGF0aWM9eWVz IDs7CisrICAgIG5vKSBlbmFibGVfc3RhdGljPW5vIDs7CisrICAgICopCisrICAgICBlbmFibGVf c3RhdGljPW5vCisrICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2Ug YWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgorKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZT IjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgorKyAgICAgIGZvciBwa2cgaW4gJGVuYWJs ZXZhbDsgZG8KKysJSUZTPSIkbHRfc2F2ZV9pZnMiCisrCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAi OyB0aGVuCisrCSAgZW5hYmxlX3N0YXRpYz15ZXMKKysJZmkKKysgICAgICBkb25lCisrICAgICAg SUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgICAgOzsKKysgICAgZXNhY10sCisrICAgIFtlbmFibGVf c3RhdGljPV1fTFRfRU5BQkxFX1NUQVRJQ19ERUZBVUxUKQorKworKyAgICBfTFRfREVDTChbYnVp bGRfb2xkX2xpYnNdLCBbZW5hYmxlX3N0YXRpY10sIFswXSwKKysJW1doZXRoZXIgb3Igbm90IHRv IGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXNdKQorK10pIyBfTFRfRU5BQkxFX1NUQVRJQworKworK0xU X09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbc3RhdGljXSwgW19MVF9FTkFCTEVfU1RBVElDKFt5 ZXNdKV0pCisrTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtkaXNhYmxlLXN0YXRpY10sIFtf TFRfRU5BQkxFX1NUQVRJQyhbbm9dKV0pCisrCisrIyBPbGQgbmFtZXM6CisrQUNfREVGVU4oW0FD X0VOQUJMRV9TVEFUSUNdLAorK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIG00X2lmKFskMV0s IFtub10sIFtkaXNhYmxlLV0pW3N0YXRpY10pCisrXSkKKysKKytBQ19ERUZVTihbQUNfRElTQUJM RV9TVEFUSUNdLAorK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFtkaXNhYmxlLXN0YXRpY10p CisrXSkKKysKKytBVV9ERUZVTihbQU1fRU5BQkxFX1NUQVRJQ10sIFtBQ19FTkFCTEVfU1RBVElD KCRAKV0pCisrQVVfREVGVU4oW0FNX0RJU0FCTEVfU1RBVElDXSwgW0FDX0RJU0FCTEVfU1RBVElD KCRAKV0pCisrCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2Ru bCBBQ19ERUZVTihbQU1fRU5BQkxFX1NUQVRJQ10sIFtdKQorK2RubCBBQ19ERUZVTihbQU1fRElT QUJMRV9TVEFUSUNdLCBbXSkKKysKKysKKysKKysjIF9MVF9FTkFCTEVfRkFTVF9JTlNUQUxMKFtE RUZBVUxUXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIGltcGxl bWVudCB0aGUgLS1lbmFibGUtZmFzdC1pbnN0YWxsIGZsYWcsIGFuZCBzdXBwb3J0IHRoZSBgZmFz dC1pbnN0YWxsJworKyMgYW5kIGBkaXNhYmxlLWZhc3QtaW5zdGFsbCcgTFRfSU5JVCBvcHRpb25z LgorKyMgREVGQVVMVCBpcyBlaXRoZXIgYHllcycgb3IgYG5vJy4gIElmIG9taXR0ZWQsIGl0IGRl ZmF1bHRzIHRvIGB5ZXMnLgorK200X2RlZmluZShbX0xUX0VOQUJMRV9GQVNUX0lOU1RBTExdLAor K1ttNF9kZWZpbmUoW19MVF9FTkFCTEVfRkFTVF9JTlNUQUxMX0RFRkFVTFRdLCBbbTRfaWYoJDEs IG5vLCBubywgeWVzKV0pZG5sCisrQUNfQVJHX0VOQUJMRShbZmFzdC1pbnN0YWxsXSwKKysgICAg W0FTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1mYXN0LWluc3RhbGxAPDpAPVBLR1NAOj5AXSwKKysg ICAgW29wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbiBAPDpAZGVmYXVsdD1dX0xUX0VOQUJM RV9GQVNUX0lOU1RBTExfREVGQVVMVFtAOj5AXSldLAorKyAgICBbcD0ke1BBQ0tBR0UtZGVmYXVs dH0KKysgICAgY2FzZSAkZW5hYmxldmFsIGluCisrICAgIHllcykgZW5hYmxlX2Zhc3RfaW5zdGFs bD15ZXMgOzsKKysgICAgbm8pIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8gOzsKKysgICAgKikKKysg ICAgICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCisrICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVu dCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgorKyAgICAg IGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgorKyAgICAg IGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KKysJSUZTPSIkbHRfc2F2ZV9pZnMiCisrCWlmIHRl c3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCisrCSAgZW5hYmxlX2Zhc3RfaW5zdGFsbD15ZXMKKysJ ZmkKKysgICAgICBkb25lCisrICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgICAgOzsKKysg ICAgZXNhY10sCisrICAgIFtlbmFibGVfZmFzdF9pbnN0YWxsPV1fTFRfRU5BQkxFX0ZBU1RfSU5T VEFMTF9ERUZBVUxUKQorKworK19MVF9ERUNMKFtmYXN0X2luc3RhbGxdLCBbZW5hYmxlX2Zhc3Rf aW5zdGFsbF0sIFswXSwKKysJIFtXaGV0aGVyIG9yIG5vdCB0byBvcHRpbWl6ZSBmb3IgZmFzdCBp bnN0YWxsYXRpb25dKWRubAorK10pIyBfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTAorKworK0xUX09Q VElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZmFzdC1pbnN0YWxsXSwgW19MVF9FTkFCTEVfRkFTVF9J TlNUQUxMKFt5ZXNdKV0pCisrTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtkaXNhYmxlLWZh c3QtaW5zdGFsbF0sIFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTChbbm9dKV0pCisrCisrIyBPbGQg bmFtZXM6CisrQVVfREVGVU4oW0FDX0VOQUJMRV9GQVNUX0lOU1RBTExdLAorK1tfTFRfU0VUX09Q VElPTihbTFRfSU5JVF0sIG00X2lmKFskMV0sIFtub10sIFtkaXNhYmxlLV0pW2Zhc3QtaW5zdGFs bF0pCisrQUNfRElBR05PU0UoW29ic29sZXRlXSwKKytbJDA6IFJlbW92ZSB0aGlzIHdhcm5pbmcg YW5kIHRoZSBjYWxsIHRvIF9MVF9TRVRfT1BUSU9OIHdoZW4geW91IHB1dAorK3RoZSBgZmFzdC1p bnN0YWxsJyBvcHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3QgcGFyYW1ldGVyLl0pCisrXSkKKysK KytBVV9ERUZVTihbQUNfRElTQUJMRV9GQVNUX0lOU1RBTExdLAorK1tfTFRfU0VUX09QVElPTihb TFRfSU5JVF0sIFtkaXNhYmxlLWZhc3QtaW5zdGFsbF0pCisrQUNfRElBR05PU0UoW29ic29sZXRl XSwKKytbJDA6IFJlbW92ZSB0aGlzIHdhcm5pbmcgYW5kIHRoZSBjYWxsIHRvIF9MVF9TRVRfT1BU SU9OIHdoZW4geW91IHB1dAorK3RoZSBgZGlzYWJsZS1mYXN0LWluc3RhbGwnIG9wdGlvbiBpbnRv IExUX0lOSVQncyBmaXJzdCBwYXJhbWV0ZXIuXSkKKytdKQorKworK2RubCBhY2xvY2FsLTEuNCBi YWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW0FDX0VOQUJMRV9GQVNUX0lO U1RBTExdLCBbXSkKKytkbmwgQUNfREVGVU4oW0FNX0RJU0FCTEVfRkFTVF9JTlNUQUxMXSwgW10p CisrCisrCisrIyBfTFRfV0lUSF9QSUMoW01PREVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysjIGltcGxlbWVudCB0aGUgLS13aXRoLXBpYyBmbGFnLCBhbmQgc3VwcG9ydCB0aGUgYHBpYy1v bmx5JyBhbmQgYG5vLXBpYycKKysjIExUX0lOSVQgb3B0aW9ucy4KKysjIE1PREUgaXMgZWl0aGVy IGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgYm90aCcuCisrbTRf ZGVmaW5lKFtfTFRfV0lUSF9QSUNdLAorK1tBQ19BUkdfV0lUSChbcGljXSwKKysgICAgW0FTX0hF TFBfU1RSSU5HKFstLXdpdGgtcGljXSwKKysJW3RyeSB0byB1c2Ugb25seSBQSUMvbm9uLVBJQyBv YmplY3RzIEA8OkBkZWZhdWx0PXVzZSBib3RoQDo+QF0pXSwKKysgICAgW3BpY19tb2RlPSIkd2l0 aHZhbCJdLAorKyAgICBbcGljX21vZGU9ZGVmYXVsdF0pCisrCisrdGVzdCAteiAiJHBpY19tb2Rl IiAmJiBwaWNfbW9kZT1tNF9kZWZhdWx0KFskMV0sIFtkZWZhdWx0XSkKKysKKytfTFRfREVDTChb XSwgW3BpY19tb2RlXSwgWzBdLCBbV2hhdCB0eXBlIG9mIG9iamVjdHMgdG8gYnVpbGRdKWRubAor K10pIyBfTFRfV0lUSF9QSUMKKysKKytMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW3BpYy1v bmx5XSwgW19MVF9XSVRIX1BJQyhbeWVzXSldKQorK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRd LCBbbm8tcGljXSwgW19MVF9XSVRIX1BJQyhbbm9dKV0pCisrCisrIyBPbGQgbmFtZToKKytBVV9E RUZVTihbQUNfTElCVE9PTF9QSUNNT0RFXSwKKytbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBb cGljLW9ubHldKQorK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCisrWyQwOiBSZW1vdmUgdGhpcyB3 YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdQorK3B1dCB0aGUg YHBpYy1vbmx5JyBvcHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3QgcGFyYW1ldGVyLl0pCisrXSkK KysKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RF RlVOKFtBQ19MSUJUT09MX1BJQ01PREVdLCBbXSkKKysKKysjIyAtLS0tLS0tLS0tLS0tLS0tLSAj IworKyMjIExURExfSU5JVCBPcHRpb25zICMjCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysK KyttNF9kZWZpbmUoW19MVERMX01PREVdLCBbXSkKKytMVF9PUFRJT05fREVGSU5FKFtMVERMX0lO SVRdLCBbbm9ucmVjdXJzaXZlXSwKKysJCSBbbTRfZGVmaW5lKFtfTFRETF9NT0RFXSwgW25vbnJl Y3Vyc2l2ZV0pXSkKKytMVF9PUFRJT05fREVGSU5FKFtMVERMX0lOSVRdLCBbcmVjdXJzaXZlXSwK KysJCSBbbTRfZGVmaW5lKFtfTFRETF9NT0RFXSwgW3JlY3Vyc2l2ZV0pXSkKKytMVF9PUFRJT05f REVGSU5FKFtMVERMX0lOSVRdLCBbc3VicHJvamVjdF0sCisrCQkgW200X2RlZmluZShbX0xURExf TU9ERV0sIFtzdWJwcm9qZWN0XSldKQorKworK200X2RlZmluZShbX0xURExfVFlQRV0sIFtdKQor K0xUX09QVElPTl9ERUZJTkUoW0xURExfSU5JVF0sIFtpbnN0YWxsYWJsZV0sCisrCQkgW200X2Rl ZmluZShbX0xURExfVFlQRV0sIFtpbnN0YWxsYWJsZV0pXSkKKytMVF9PUFRJT05fREVGSU5FKFtM VERMX0lOSVRdLCBbY29udmVuaWVuY2VdLAorKwkJIFttNF9kZWZpbmUoW19MVERMX1RZUEVdLCBb Y29udmVuaWVuY2VdKV0pCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0c3Vn YXIubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdHN1Z2FyLm00CistLS0gc29jaS0zLjAu MF80LXBhY2svY29uZmlnL2x0c3VnYXIubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0c3VnYXIubTQJMjAxMS0wMi0w OCAyMjozOTo0NC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsMTIzIEBACisrIyBsdHN1Z2Fy Lm00IC0tIGxpYnRvb2wgbTQgYmFzZSBsYXllci4gICAgICAgICAgICAgICAgICAgICAgICAgLSot QXV0b2NvbmYtKi0KKysjCisrIyBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcsIDIwMDgg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBXcml0dGVuIGJ5IEdhcnkgVi4gVmF1 Z2hhbiwgMjAwNAorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCisrIyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5 IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKKysjIG1vZGlmaWNhdGlvbnMs IGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDYgbHRz dWdhci5tNAorKworKyMgVGhpcyBpcyB0byBoZWxwIGFjbG9jYWwgZmluZCB0aGVzZSBtYWNyb3Ms IGFzIGl0IGNhbid0IHNlZSBtNF9kZWZpbmUuCisrQUNfREVGVU4oW0xUU1VHQVJfVkVSU0lPTl0s IFttNF9pZihbMC4xXSldKQorKworKworKyMgbHRfam9pbihTRVAsIEFSRzEsIFtBUkcyLi4uXSkK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBQcm9kdWNlIEFSRzFTRVBBUkcy Li4uU0VQQVJHbiwgb21pdHRpbmcgW10gYXJndW1lbnRzIGFuZCB0aGVpcgorKyMgYXNzb2NpYXRl ZCBzZXBhcmF0b3IuCisrIyBOZWVkZWQgdW50aWwgd2UgY2FuIHJlbHkgb24gbTRfam9pbiBmcm9t IEF1dG9jb25mIDIuNjIsIHNpbmNlIGFsbCBlYXJsaWVyCisrIyB2ZXJzaW9ucyBpbiBtNHN1Z2Fy IGhhZCBidWdzLgorK200X2RlZmluZShbbHRfam9pbl0sCisrW200X2lmKFskI10sIFsxXSwgW10s CisrICAgICAgIFskI10sIFsyXSwgW1skMl1dLAorKyAgICAgICBbbTRfaWYoWyQyXSwgW10sIFtd LCBbWyQyXV9dKSQwKFskMV0sIG00X3NoaWZ0KG00X3NoaWZ0KCRAKSkpXSldKQorK200X2RlZmlu ZShbX2x0X2pvaW5dLAorK1ttNF9pZihbJCMkMl0sIFsyXSwgW10sCisrICAgICAgIFttNF9pZihb JDJdLCBbXSwgW10sIFtbJDEkMl1dKSQwKFskMV0sIG00X3NoaWZ0KG00X3NoaWZ0KCRAKSkpXSld KQorKworKworKyMgbHRfY2FyKExJU1QpCisrIyBsdF9jZHIoTElTVCkKKysjIC0tLS0tLS0tLS0t LQorKyMgTWFuaXB1bGF0ZSBtNCBsaXN0cy4KKysjIFRoZXNlIG1hY3JvcyBhcmUgbmVjZXNzYXJ5 IGFzIGxvbmcgYXMgd2lsbCBzdGlsbCBuZWVkIHRvIHN1cHBvcnQKKysjIEF1dG9jb25mLTIuNTkg d2hpY2ggcXVvdGVzIGRpZmZlcmVudGx5LgorK200X2RlZmluZShbbHRfY2FyXSwgW1skMV1dKQor K200X2RlZmluZShbbHRfY2RyXSwKKytbbTRfaWYoWyQjXSwgMCwgW200X2ZhdGFsKFskMDogY2Fu bm90IGJlIGNhbGxlZCB3aXRob3V0IGFyZ3VtZW50c10pXSwKKysgICAgICAgWyQjXSwgMSwgW10s CisrICAgICAgIFttNF9kcXVvdGUobTRfc2hpZnQoJEApKV0pXSkKKyttNF9kZWZpbmUoW2x0X3Vu cXVvdGVdLCAkMSkKKysKKysKKysjIGx0X2FwcGVuZChNQUNSTy1OQU1FLCBTVFJJTkcsIFtTRVBB UkFUT1JdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr IyBSZWRlZmluZSBNQUNSTy1OQU1FIHRvIGhvbGQgaXRzIGZvcm1lciBjb250ZW50IHBsdXMgYFNF UEFSQVRPUidgU1RSSU5HJy4KKysjIE5vdGUgdGhhdCBuZWl0aGVyIFNFUEFSQVRPUiBub3IgU1RS SU5HIGFyZSBleHBhbmRlZDsgdGhleSBhcmUgYXBwZW5kZWQKKysjIHRvIE1BQ1JPLU5BTUUgYXMg aXMgKGxlYXZpbmcgdGhlIGV4cGFuc2lvbiBmb3Igd2hlbiBNQUNSTy1OQU1FIGlzIGludm9rZWQp LgorKyMgTm8gU0VQQVJBVE9SIGlzIG91dHB1dCBpZiBNQUNSTy1OQU1FIHdhcyBwcmV2aW91c2x5 IHVuZGVmaW5lZCAoZGlmZmVyZW50CisrIyB0aGFuIGRlZmluZWQgYW5kIGVtcHR5KS4KKysjCisr IyBUaGlzIG1hY3JvIGlzIG5lZWRlZCB1bnRpbCB3ZSBjYW4gcmVseSBvbiBBdXRvY29uZiAyLjYy LCBzaW5jZSBlYXJsaWVyCisrIyB2ZXJzaW9ucyBvZiBtNHN1Z2FyIG1pc3Rha2VubHkgZXhwYW5k ZWQgU0VQQVJBVE9SIGJ1dCBub3QgU1RSSU5HLgorK200X2RlZmluZShbbHRfYXBwZW5kXSwKKytb bTRfZGVmaW5lKFskMV0sCisrCSAgIG00X2lmZGVmKFskMV0sIFttNF9kZWZuKFskMV0pWyQzXV0p WyQyXSldKQorKworKworKworKyMgbHRfY29tYmluZShTRVAsIFBSRUZJWC1MSVNULCBJTkZJWCwg U1VGRklYMSwgW1NVRkZJWDIuLi5dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgUHJvZHVjZSBhIFNFUCBkZWxpbWl0ZWQg bGlzdCBvZiBhbGwgcGFpcmVkIGNvbWJpbmF0aW9ucyBvZiBlbGVtZW50cyBvZgorKyMgUFJFRklY LUxJU1Qgd2l0aCBTVUZGSVgxIHRocm91Z2ggU1VGRklYbi4gIEVhY2ggZWxlbWVudCBvZiB0aGUg bGlzdAorKyMgaGFzIHRoZSBmb3JtIFBSRUZJWG1JTkZJWFNVRkZJWG4uCisrIyBOZWVkZWQgdW50 aWwgd2UgY2FuIHJlbHkgb24gbTRfY29tYmluZSBhZGRlZCBpbiBBdXRvY29uZiAyLjYyLgorK200 X2RlZmluZShbbHRfY29tYmluZV0sCisrW200X2lmKG00X2V2YWwoWyQjID4gM10pLCBbMV0sCisr ICAgICAgIFttNF9wdXNoZGVmKFtfTHRfc2VwXSwgW200X2RlZmluZShbX0x0X3NlcF0sIG00X2Rl Zm4oW2x0X2Nhcl0pKV0pXV1kbmwKKytbW200X2ZvcmVhY2goW19MdF9wcmVmaXhdLCBbJDJdLAor KwkgICAgIFttNF9mb3JlYWNoKFtfTHRfc3VmZml4XSwKKysJCV1tNF9kcXVvdGUobTRfZHF1b3Rl KG00X3NoaWZ0KG00X3NoaWZ0KG00X3NoaWZ0KCRAKSkpKSlbLAorKwlbX0x0X3NlcChbJDFdKVtd bTRfZGVmbihbX0x0X3ByZWZpeF0pWyQzXW00X2RlZm4oW19MdF9zdWZmaXhdKV0pXSldKV0pCisr CisrCisrIyBsdF9pZl9hcHBlbmRfdW5pcShNQUNSTy1OQU1FLCBWQVJOQU1FLCBbU0VQQVJBVE9S XSwgW1VOSVFdLCBbTk9ULVVOSVFdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIElmZiBNQUNSTy1O QU1FIGRvZXMgbm90IHlldCBjb250YWluIFZBUk5BTUUsIHRoZW4gYXBwZW5kIGl0IChkZWxpbWl0 ZWQKKysjIGJ5IFNFUEFSQVRPUiBpZiBzdXBwbGllZCkgYW5kIGV4cGFuZCBVTklRLCBlbHNlIE5P VC1VTklRLgorK200X2RlZmluZShbbHRfaWZfYXBwZW5kX3VuaXFdLAorK1ttNF9pZmRlZihbJDFd LAorKwkgIFttNF9pZihtNF9pbmRleChbJDNdbTRfZGVmbihbJDFdKVskM10sIFskMyQyJDNdKSwg Wy0xXSwKKysJCSBbbHRfYXBwZW5kKFskMV0sIFskMl0sIFskM10pJDRdLAorKwkJIFskNV0pXSwK KysJICBbbHRfYXBwZW5kKFskMV0sIFskMl0sIFskM10pJDRdKV0pCisrCisrCisrIyBsdF9kaWN0 X2FkZChESUNULCBLRVksIFZBTFVFKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyttNF9kZWZpbmUoW2x0X2RpY3RfYWRkXSwKKytbbTRfZGVmaW5lKFskMSgkMildLCBbJDNdKV0p CisrCisrCisrIyBsdF9kaWN0X2FkZF9zdWJrZXkoRElDVCwgS0VZLCBTVUJLRVksIFZBTFVFKQor KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZp bmUoW2x0X2RpY3RfYWRkX3N1YmtleV0sCisrW200X2RlZmluZShbJDEoJDI6JDMpXSwgWyQ0XSld KQorKworKworKyMgbHRfZGljdF9mZXRjaChESUNULCBLRVksIFtTVUJLRVldKQorKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZmluZShbbHRfZGljdF9mZXRjaF0s CisrW200X2lmdmFsKFskM10sCisrCW00X2lmZGVmKFskMSgkMjokMyldLCBbbTRfZGVmbihbJDEo JDI6JDMpXSldKSwKKysgICAgbTRfaWZkZWYoWyQxKCQyKV0sIFttNF9kZWZuKFskMSgkMildKV0p KV0pCisrCisrCisrIyBsdF9pZl9kaWN0X2ZldGNoKERJQ1QsIEtFWSwgW1NVQktFWV0sIFZBTFVF LCBJRi1UUlVFLCBbSUYtRkFMU0VdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW2x0X2lmX2Rp Y3RfZmV0Y2hdLAorK1ttNF9pZihsdF9kaWN0X2ZldGNoKFskMV0sIFskMl0sIFskM10pLCBbJDRd LAorKwlbJDVdLAorKyAgICBbJDZdKV0pCisrCisrCisrIyBsdF9kaWN0X2ZpbHRlcihESUNULCBb U1VCS0VZXSwgVkFMVUUsIFtTRVBBUkFUT1JdLCBLRVksIFsuLi5dKQorKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9k ZWZpbmUoW2x0X2RpY3RfZmlsdGVyXSwKKytbbTRfaWYoWyQ1XSwgW10sIFtdLAorKyAgW2x0X2pv aW4obTRfcXVvdGUobTRfZGVmYXVsdChbJDRdLCBbWywgXV0pKSwKKysgICAgICAgICAgIGx0X3Vu cXVvdGUobTRfc3BsaXQobTRfbm9ybWFsaXplKG00X2ZvcmVhY2goX0x0X2tleSwgbHRfY2FyKFtt NF9zaGlmdG4oNCwgJEApXSksCisrCQkgICAgICBbbHRfaWZfZGljdF9mZXRjaChbJDFdLCBfTHRf a2V5LCBbJDJdLCBbJDNdLCBbX0x0X2tleSBdKV0pKSkpKV0pW11kbmwKKytdKQorZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdHZlcnNpb24ubTQgc29jaS0zLjAuMF90cmVwMzAw L2NvbmZpZy9sdHZlcnNpb24ubTQKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHR2ZXJz aW9uLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAu MF90cmVwMzAwL2NvbmZpZy9sdHZlcnNpb24ubTQJMjAxMS0wMi0wOCAyMjozOTo0NC4wMDAwMDAw MDAgKzAxMDAKK0BAIC0wLDAgKzEsMjMgQEAKKysjIGx0dmVyc2lvbi5tNCAtLSB2ZXJzaW9uIG51 bWJlcnMJCQktKi0gQXV0b2NvbmYgLSotCisrIworKyMgICBDb3B5cmlnaHQgKEMpIDIwMDQgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyAgIFdyaXR0ZW4gYnkgU2NvdHQgSmFtZXMg UmVtbmFudCwgMjAwNAorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCisrIyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBj b3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKKysjIG1vZGlmaWNhdGlv bnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgR2VuZXJhdGVk IGZyb20gbHR2ZXJzaW9uLmluLgorKworKyMgc2VyaWFsIDMxNzUgbHR2ZXJzaW9uLm00CisrIyBU aGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgTGlidG9vbAorKworK200X2RlZmluZShbTFRfUEFDS0FH RV9WRVJTSU9OXSwgWzIuMi4xMF0pCisrbTRfZGVmaW5lKFtMVF9QQUNLQUdFX1JFVklTSU9OXSwg WzEuMzE3NV0pCisrCisrQUNfREVGVU4oW0xUVkVSU0lPTl9WRVJTSU9OXSwKKytbbWFjcm9fdmVy c2lvbj0nMi4yLjEwJworK21hY3JvX3JldmlzaW9uPScxLjMxNzUnCisrX0xUX0RFQ0woLCBtYWNy b192ZXJzaW9uLCAwLCBbV2hpY2ggcmVsZWFzZSBvZiBsaWJ0b29sLm00IHdhcyB1c2VkP10pCisr X0xUX0RFQ0woLCBtYWNyb19yZXZpc2lvbiwgMCkKKytdKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL2NvbmZpZy9taXNzaW5nIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbWlzc2luZwor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9taXNzaW5nCTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9taXNzaW5nCTIw MTEtMDItMDggMjI6Mzk6NTUuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDM3NiBAQAorKyMh IC9iaW4vc2gKKysjIENvbW1vbiBzdHViIGZvciBhIGZldyBtaXNzaW5nIEdOVSBwcm9ncmFtcyB3 aGlsZSBpbnN0YWxsaW5nLgorKworK3NjcmlwdHZlcnNpb249MjAwOS0wNC0yOC4yMTsgIyBVVEMK KysKKysjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OSwgMjAwMCwgMjAwMiwgMjAwMywg MjAwNCwgMjAwNSwgMjAwNiwKKysjIDIwMDgsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrIyBPcmlnaW5hbGx5IGJ5IEZyYW4sY29pcyBQaW5hcmQgPHBpbmFyZEBpcm8udW1v bnRyZWFsLmNhPiwgMTk5Ni4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlv dXIgb3B0aW9uKQorKyMgYW55IGxhdGVyIHZlcnNpb24uCisrCisrIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorKworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworKyMgQXMgYSBzcGVjaWFsIGV4 Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGlmIHlvdQorKyMgZGlz dHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCisr IyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5j bHVkZSBpdCB1bmRlcgorKyMgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVz ZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorKworK2lmIHRlc3QgJCMgLWVxIDA7IHRo ZW4KKysgIGVjaG8gMT4mMiAiVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiIK KysgIGV4aXQgMQorK2ZpCisrCisrcnVuPToKKytzZWRfb3V0cHV0PSdzLy4qIC0tb3V0cHV0WyA9 XVwoW14gXSpcKS4qL1wxL3AnCisrc2VkX21pbnVzbz0ncy8uKiAtbyBcKFteIF0qXCkuKi9cMS9w JworKworKyMgSW4gdGhlIGNhc2VzIHdoZXJlIHRoaXMgbWF0dGVycywgYG1pc3NpbmcnIGlzIGJl aW5nIHJ1biBpbiB0aGUKKysjIHNyY2RpciBhbHJlYWR5LgorK2lmIHRlc3QgLWYgY29uZmlndXJl LmFjOyB0aGVuCisrICBjb25maWd1cmVfYWM9Y29uZmlndXJlLmFjCisrZWxzZQorKyAgY29uZmln dXJlX2FjPWNvbmZpZ3VyZS5pbgorK2ZpCisrCisrbXNnPSJtaXNzaW5nIG9uIHlvdXIgc3lzdGVt IgorKworK2Nhc2UgJDEgaW4KKystLXJ1bikKKysgICMgVHJ5IHRvIHJ1biByZXF1ZXN0ZWQgcHJv Z3JhbSwgYW5kIGp1c3QgZXhpdCBpZiBpdCBzdWNjZWVkcy4KKysgIHJ1bj0KKysgIHNoaWZ0Cisr ICAiJEAiICYmIGV4aXQgMAorKyAgIyBFeGl0IGNvZGUgNjMgbWVhbnMgdmVyc2lvbiBtaXNtYXRj aC4gIFRoaXMgb2Z0ZW4gaGFwcGVucworKyAgIyB3aGVuIHRoZSB1c2VyIHRyeSB0byB1c2UgYW4g YW5jaWVudCB2ZXJzaW9uIG9mIGEgdG9vbCBvbgorKyAgIyBhIGZpbGUgdGhhdCByZXF1aXJlcyBh IG1pbmltdW0gdmVyc2lvbi4gIEluIHRoaXMgY2FzZSB3ZQorKyAgIyB3ZSBzaG91bGQgcHJvY2Vl ZCBoYXMgaWYgdGhlIHByb2dyYW0gaGFkIGJlZW4gYWJzZW50LCBvcgorKyAgIyBpZiAtLXJ1biBo YWRuJ3QgYmVlbiBwYXNzZWQuCisrICBpZiB0ZXN0ICQ/ID0gNjM7IHRoZW4KKysgICAgcnVuPToK KysgICAgbXNnPSJwcm9iYWJseSB0b28gb2xkIgorKyAgZmkKKysgIDs7CisrCisrICAtaHwtLWh8 LS1oZXwtLWhlbHwtLWhlbHApCisrICAgIGVjaG8gIlwKKyskMCBbT1BUSU9OXS4uLiBQUk9HUkFN IFtBUkdVTUVOVF0uLi4KKysKKytIYW5kbGUgXGBQUk9HUkFNIFtBUkdVTUVOVF0uLi4nIGZvciB3 aGVuIFBST0dSQU0gaXMgbWlzc2luZywgb3IgcmV0dXJuIGFuCisrZXJyb3Igc3RhdHVzIGlmIHRo ZXJlIGlzIG5vIGtub3duIGhhbmRsaW5nIGZvciBQUk9HUkFNLgorKworK09wdGlvbnM6CisrICAt aCwgLS1oZWxwICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQKKysgIC12LCAtLXZlcnNp b24gICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAorKyAgLS1ydW4gICAgICAg ICAgIHRyeSB0byBydW4gdGhlIGdpdmVuIGNvbW1hbmQsIGFuZCBlbXVsYXRlIGl0IGlmIGl0IGZh aWxzCisrCisrU3VwcG9ydGVkIFBST0dSQU0gdmFsdWVzOgorKyAgYWNsb2NhbCAgICAgIHRvdWNo IGZpbGUgXGBhY2xvY2FsLm00JworKyAgYXV0b2NvbmYgICAgIHRvdWNoIGZpbGUgXGBjb25maWd1 cmUnCisrICBhdXRvaGVhZGVyICAgdG91Y2ggZmlsZSBcYGNvbmZpZy5oLmluJworKyAgYXV0b200 dGUgICAgIHRvdWNoIHRoZSBvdXRwdXQgZmlsZSwgb3IgY3JlYXRlIGEgc3R1YiBvbmUKKysgIGF1 dG9tYWtlICAgICB0b3VjaCBhbGwgXGBNYWtlZmlsZS5pbicgZmlsZXMKKysgIGJpc29uICAgICAg ICBjcmVhdGUgXGB5LnRhYi5bY2hdJywgaWYgcG9zc2libGUsIGZyb20gZXhpc3RpbmcgLltjaF0K KysgIGZsZXggICAgICAgICBjcmVhdGUgXGBsZXgueXkuYycsIGlmIHBvc3NpYmxlLCBmcm9tIGV4 aXN0aW5nIC5jCisrICBoZWxwMm1hbiAgICAgdG91Y2ggdGhlIG91dHB1dCBmaWxlCisrICBsZXgg ICAgICAgICAgY3JlYXRlIFxgbGV4Lnl5LmMnLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAu YworKyAgbWFrZWluZm8gICAgIHRvdWNoIHRoZSBvdXRwdXQgZmlsZQorKyAgdGFyICAgICAgICAg IHRyeSB0YXIsIGdudXRhciwgZ3RhciwgdGhlbiB0YXIgd2l0aG91dCBub24tcG9ydGFibGUgZmxh Z3MKKysgIHlhY2MgICAgICAgICBjcmVhdGUgXGB5LnRhYi5bY2hdJywgaWYgcG9zc2libGUsIGZy b20gZXhpc3RpbmcgLltjaF0KKysKKytWZXJzaW9uIHN1ZmZpeGVzIHRvIFBST0dSQU0gYXMgd2Vs bCBhcyB0aGUgcHJlZml4ZXMgXGBnbnUtJywgXGBnbnUnLCBhbmQKKytcYGcnIGFyZSBpZ25vcmVk IHdoZW4gY2hlY2tpbmcgdGhlIG5hbWUuCisrCisrU2VuZCBidWcgcmVwb3J0cyB0byA8YnVnLWF1 dG9tYWtlQGdudS5vcmc+LiIKKysgICAgZXhpdCAkPworKyAgICA7OworKworKyAgLXZ8LS12fC0t dmV8LS12ZXJ8LS12ZXJzfC0tdmVyc2l8LS12ZXJzaW98LS12ZXJzaW9uKQorKyAgICBlY2hvICJt aXNzaW5nICRzY3JpcHR2ZXJzaW9uIChHTlUgQXV0b21ha2UpIgorKyAgICBleGl0ICQ/CisrICAg IDs7CisrCisrICAtKikKKysgICAgZWNobyAxPiYyICIkMDogVW5rbm93biBcYCQxJyBvcHRpb24i CisrICAgIGVjaG8gMT4mMiAiVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiIK KysgICAgZXhpdCAxCisrICAgIDs7CisrCisrZXNhYworKworKyMgbm9ybWFsaXplIHByb2dyYW0g bmFtZSB0byBjaGVjayBmb3IuCisrcHJvZ3JhbT1gZWNobyAiJDEiIHwgc2VkICcKKysgIHMvXmdu dS0vLzsgdAorKyAgcy9eZ251Ly87IHQKKysgIHMvXmcvLzsgdCdgCisrCisrIyBOb3cgZXhpdCBp ZiB3ZSBoYXZlIGl0LCBidXQgaXQgZmFpbGVkLiAgQWxzbyBleGl0IG5vdyBpZiB3ZQorKyMgZG9u J3QgaGF2ZSBpdCBhbmQgLS12ZXJzaW9uIHdhcyBwYXNzZWQgKG1vc3QgbGlrZWx5IHRvIGRldGVj dAorKyMgdGhlIHByb2dyYW0pLiAgVGhpcyBpcyBhYm91dCBub24tR05VIHByb2dyYW1zLCBzbyB1 c2UgJDEgbm90CisrIyAkcHJvZ3JhbS4KKytjYXNlICQxIGluCisrICBsZXgqfHlhY2MqKQorKyAg ICAjIE5vdCBHTlUgcHJvZ3JhbXMsIHRoZXkgZG9uJ3QgaGF2ZSAtLXZlcnNpb24uCisrICAgIDs7 CisrCisrICB0YXIqKQorKyAgICBpZiB0ZXN0IC1uICIkcnVuIjsgdGhlbgorKyAgICAgICBlY2hv IDE+JjIgIkVSUk9SOiBcYHRhcicgcmVxdWlyZXMgLS1ydW4iCisrICAgICAgIGV4aXQgMQorKyAg ICBlbGlmIHRlc3QgIngkMiIgPSAieC0tdmVyc2lvbiIgfHwgdGVzdCAieCQyIiA9ICJ4LS1oZWxw IjsgdGhlbgorKyAgICAgICBleGl0IDEKKysgICAgZmkKKysgICAgOzsKKysKKysgICopCisrICAg IGlmIHRlc3QgLXogIiRydW4iICYmICgkMSAtLXZlcnNpb24pID4gL2Rldi9udWxsIDI+JjE7IHRo ZW4KKysgICAgICAgIyBXZSBoYXZlIGl0LCBidXQgaXQgZmFpbGVkLgorKyAgICAgICBleGl0IDEK KysgICAgZWxpZiB0ZXN0ICJ4JDIiID0gIngtLXZlcnNpb24iIHx8IHRlc3QgIngkMiIgPSAieC0t aGVscCI7IHRoZW4KKysgICAgICAgIyBDb3VsZCBub3QgcnVuIC0tdmVyc2lvbiBvciAtLWhlbHAu ICBUaGlzIGlzIHByb2JhYmx5IHNvbWVvbmUKKysgICAgICAgIyBydW5uaW5nIGAkVE9PTCAtLXZl cnNpb24nIG9yIGAkVE9PTCAtLWhlbHAnIHRvIGNoZWNrIHdoZXRoZXIKKysgICAgICAgIyAkVE9P TCBleGlzdHMgYW5kIG5vdCBrbm93aW5nICRUT09MIHVzZXMgbWlzc2luZy4KKysgICAgICAgZXhp dCAxCisrICAgIGZpCisrICAgIDs7CisrZXNhYworKworKyMgSWYgaXQgZG9lcyBub3QgZXhpc3Qs IG9yIGZhaWxzIHRvIHJ1biAocG9zc2libHkgYW4gb3V0ZGF0ZWQgdmVyc2lvbiksCisrIyB0cnkg dG8gZW11bGF0ZSBpdC4KKytjYXNlICRwcm9ncmFtIGluCisrICBhY2xvY2FsKikKKysgICAgZWNo byAxPiYyICJcCisrV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVk IGl0IGlmCisrICAgICAgICAgeW91IG1vZGlmaWVkIFxgYWNpbmNsdWRlLm00JyBvciBcYCR7Y29u ZmlndXJlX2FjfScuICBZb3UgbWlnaHQgd2FudAorKyAgICAgICAgIHRvIGluc3RhbGwgdGhlIFxg QXV0b21ha2UnIGFuZCBcYFBlcmwnIHBhY2thZ2VzLiAgR3JhYiB0aGVtIGZyb20KKysgICAgICAg ICBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisrICAgIHRvdWNoIGFjbG9jYWwubTQKKysgICAgOzsK KysKKysgIGF1dG9jb25mKikKKysgICAgZWNobyAxPiYyICJcCisrV0FSTklORzogXGAkMScgaXMg JG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisrICAgICAgICAgeW91IG1vZGlmaWVk IFxgJHtjb25maWd1cmVfYWN9Jy4gIFlvdSBtaWdodCB3YW50IHRvIGluc3RhbGwgdGhlCisrICAg ICAgICAgXGBBdXRvY29uZicgYW5kIFxgR05VIG00JyBwYWNrYWdlcy4gIEdyYWIgdGhlbSBmcm9t IGFueSBHTlUKKysgICAgICAgICBhcmNoaXZlIHNpdGUuIgorKyAgICB0b3VjaCBjb25maWd1cmUK KysgICAgOzsKKysKKysgIGF1dG9oZWFkZXIqKQorKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5H OiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKysgICAgICAgICB5 b3UgbW9kaWZpZWQgXGBhY2NvbmZpZy5oJyBvciBcYCR7Y29uZmlndXJlX2FjfScuICBZb3UgbWln aHQgd2FudAorKyAgICAgICAgIHRvIGluc3RhbGwgdGhlIFxgQXV0b2NvbmYnIGFuZCBcYEdOVSBt NCcgcGFja2FnZXMuICBHcmFiIHRoZW0KKysgICAgICAgICBmcm9tIGFueSBHTlUgYXJjaGl2ZSBz aXRlLiIKKysgICAgZmlsZXM9YHNlZCAtbiAncy9eWyBdKkFbQ01dX0NPTkZJR19IRUFERVIoXChb XildKlwpKS4qL1wxL3AnICR7Y29uZmlndXJlX2FjfWAKKysgICAgdGVzdCAteiAiJGZpbGVzIiAm JiBmaWxlcz0iY29uZmlnLmgiCisrICAgIHRvdWNoX2ZpbGVzPQorKyAgICBmb3IgZiBpbiAkZmls ZXM7IGRvCisrICAgICAgY2FzZSAkZiBpbgorKyAgICAgICo6KikgdG91Y2hfZmlsZXM9IiR0b3Vj aF9maWxlcyAiYGVjaG8gIiRmIiB8CisrCQkJCSAgICAgICBzZWQgLWUgJ3MvXlteOl0qOi8vJyAt ZSAncy86LiovLydgOzsKKysgICAgICAqKSB0b3VjaF9maWxlcz0iJHRvdWNoX2ZpbGVzICRmLmlu Ijs7CisrICAgICAgZXNhYworKyAgICBkb25lCisrICAgIHRvdWNoICR0b3VjaF9maWxlcworKyAg ICA7OworKworKyAgYXV0b21ha2UqKQorKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBcYCQx JyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKysgICAgICAgICB5b3UgbW9k aWZpZWQgXGBNYWtlZmlsZS5hbScsIFxgYWNpbmNsdWRlLm00JyBvciBcYCR7Y29uZmlndXJlX2Fj fScuCisrICAgICAgICAgWW91IG1pZ2h0IHdhbnQgdG8gaW5zdGFsbCB0aGUgXGBBdXRvbWFrZScg YW5kIFxgUGVybCcgcGFja2FnZXMuCisrICAgICAgICAgR3JhYiB0aGVtIGZyb20gYW55IEdOVSBh cmNoaXZlIHNpdGUuIgorKyAgICBmaW5kIC4gLXR5cGUgZiAtbmFtZSBNYWtlZmlsZS5hbSAtcHJp bnQgfAorKwkgICBzZWQgJ3MvXC5hbSQvLmluLycgfAorKwkgICB3aGlsZSByZWFkIGY7IGRvIHRv dWNoICIkZiI7IGRvbmUKKysgICAgOzsKKysKKysgIGF1dG9tNHRlKikKKysgICAgZWNobyAxPiYy ICJcCisrV0FSTklORzogXGAkMScgaXMgbmVlZGVkLCBidXQgaXMgJG1zZy4KKysgICAgICAgICBZ b3UgbWlnaHQgaGF2ZSBtb2RpZmllZCBzb21lIGZpbGVzIHdpdGhvdXQgaGF2aW5nIHRoZQorKyAg ICAgICAgIHByb3BlciB0b29scyBmb3IgZnVydGhlciBoYW5kbGluZyB0aGVtLgorKyAgICAgICAg IFlvdSBjYW4gZ2V0IFxgJDEnIGFzIHBhcnQgb2YgXGBBdXRvY29uZicgZnJvbSBhbnkgR05VCisr ICAgICAgICAgYXJjaGl2ZSBzaXRlLiIKKysKKysgICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1u ICIkc2VkX291dHB1dCJgCisrICAgIHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkKiIg fCBzZWQgLW4gIiRzZWRfbWludXNvImAKKysgICAgaWYgdGVzdCAtZiAiJGZpbGUiOyB0aGVuCisr CXRvdWNoICRmaWxlCisrICAgIGVsc2UKKysJdGVzdCAteiAiJGZpbGUiIHx8IGV4ZWMgPiRmaWxl CisrCWVjaG8gIiMhIC9iaW4vc2giCisrCWVjaG8gIiMgQ3JlYXRlZCBieSBHTlUgQXV0b21ha2Ug bWlzc2luZyBhcyBhIHJlcGxhY2VtZW50IG9mIgorKwllY2hvICIjICAkICRAIgorKwllY2hvICJl eGl0IDAiCisrCWNobW9kICt4ICRmaWxlCisrCWV4aXQgMQorKyAgICBmaQorKyAgICA7OworKwor KyAgYmlzb24qfHlhY2MqKQorKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBcYCQxJyAkbXNn LiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKysgICAgICAgICB5b3UgbW9kaWZpZWQgYSBc YC55JyBmaWxlLiAgWW91IG1heSBuZWVkIHRoZSBcYEJpc29uJyBwYWNrYWdlCisrICAgICAgICAg aW4gb3JkZXIgZm9yIHRob3NlIG1vZGlmaWNhdGlvbnMgdG8gdGFrZSBlZmZlY3QuICBZb3UgY2Fu IGdldAorKyAgICAgICAgIFxgQmlzb24nIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgorKyAg ICBybSAtZiB5LnRhYi5jIHkudGFiLmgKKysgICAgaWYgdGVzdCAkIyAtbmUgMTsgdGhlbgorKyAg ICAgICAgZXZhbCBMQVNUQVJHPSJcJHskI30iCisrCWNhc2UgJExBU1RBUkcgaW4KKysJKi55KQor KwkgICAgU1JDRklMRT1gZWNobyAiJExBU1RBUkciIHwgc2VkICdzL3kkL2MvJ2AKKysJICAgIGlm IHRlc3QgLWYgIiRTUkNGSUxFIjsgdGhlbgorKwkgICAgICAgICBjcCAiJFNSQ0ZJTEUiIHkudGFi LmMKKysJICAgIGZpCisrCSAgICBTUkNGSUxFPWBlY2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MveSQv aC8nYAorKwkgICAgaWYgdGVzdCAtZiAiJFNSQ0ZJTEUiOyB0aGVuCisrCSAgICAgICAgIGNwICIk U1JDRklMRSIgeS50YWIuaAorKwkgICAgZmkKKysJICA7OworKwllc2FjCisrICAgIGZpCisrICAg IGlmIHRlc3QgISAtZiB5LnRhYi5oOyB0aGVuCisrCWVjaG8gPnkudGFiLmgKKysgICAgZmkKKysg ICAgaWYgdGVzdCAhIC1mIHkudGFiLmM7IHRoZW4KKysJZWNobyAnbWFpbigpIHsgcmV0dXJuIDA7 IH0nID55LnRhYi5jCisrICAgIGZpCisrICAgIDs7CisrCisrICBsZXgqfGZsZXgqKQorKyAgICBl Y2hvIDE+JjIgIlwKKytXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5l ZWQgaXQgaWYKKysgICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC5sJyBmaWxlLiAgWW91IG1heSBu ZWVkIHRoZSBcYEZsZXgnIHBhY2thZ2UKKysgICAgICAgICBpbiBvcmRlciBmb3IgdGhvc2UgbW9k aWZpY2F0aW9ucyB0byB0YWtlIGVmZmVjdC4gIFlvdSBjYW4gZ2V0CisrICAgICAgICAgXGBGbGV4 JyBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKKysgICAgcm0gLWYgbGV4Lnl5LmMKKysgICAg aWYgdGVzdCAkIyAtbmUgMTsgdGhlbgorKyAgICAgICAgZXZhbCBMQVNUQVJHPSJcJHskI30iCisr CWNhc2UgJExBU1RBUkcgaW4KKysJKi5sKQorKwkgICAgU1JDRklMRT1gZWNobyAiJExBU1RBUkci IHwgc2VkICdzL2wkL2MvJ2AKKysJICAgIGlmIHRlc3QgLWYgIiRTUkNGSUxFIjsgdGhlbgorKwkg ICAgICAgICBjcCAiJFNSQ0ZJTEUiIGxleC55eS5jCisrCSAgICBmaQorKwkgIDs7CisrCWVzYWMK KysgICAgZmkKKysgICAgaWYgdGVzdCAhIC1mIGxleC55eS5jOyB0aGVuCisrCWVjaG8gJ21haW4o KSB7IHJldHVybiAwOyB9JyA+bGV4Lnl5LmMKKysgICAgZmkKKysgICAgOzsKKysKKysgIGhlbHAy bWFuKikKKysgICAgZWNobyAxPiYyICJcCisrV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBz aG91bGQgb25seSBuZWVkIGl0IGlmCisrCSB5b3UgbW9kaWZpZWQgYSBkZXBlbmRlbmN5IG9mIGEg bWFudWFsIHBhZ2UuICBZb3UgbWF5IG5lZWQgdGhlCisrCSBcYEhlbHAybWFuJyBwYWNrYWdlIGlu IG9yZGVyIGZvciB0aG9zZSBtb2RpZmljYXRpb25zIHRvIHRha2UKKysJIGVmZmVjdC4gIFlvdSBj YW4gZ2V0IFxgSGVscDJtYW4nIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgorKworKyAgICBm aWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfb3V0cHV0ImAKKysgICAgdGVzdCAteiAiJGZp bGUiICYmIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9taW51c28iYAorKyAgICBpZiB0 ZXN0IC1mICIkZmlsZSI7IHRoZW4KKysJdG91Y2ggJGZpbGUKKysgICAgZWxzZQorKwl0ZXN0IC16 ICIkZmlsZSIgfHwgZXhlYyA+JGZpbGUKKysJZWNobyAiLmFiIGhlbHAybWFuIGlzIHJlcXVpcmVk IHRvIGdlbmVyYXRlIHRoaXMgcGFnZSIKKysJZXhpdCAkPworKyAgICBmaQorKyAgICA7OworKwor KyAgbWFrZWluZm8qKQorKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBcYCQxJyBpcyAkbXNn LiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKysgICAgICAgICB5b3UgbW9kaWZpZWQgYSBc YC50ZXhpJyBvciBcYC50ZXhpbmZvJyBmaWxlLCBvciBhbnkgb3RoZXIgZmlsZQorKyAgICAgICAg IGluZGlyZWN0bHkgYWZmZWN0aW5nIHRoZSBhc3BlY3Qgb2YgdGhlIG1hbnVhbC4gIFRoZSBzcHVy aW91cworKyAgICAgICAgIGNhbGwgbWlnaHQgYWxzbyBiZSB0aGUgY29uc2VxdWVuY2Ugb2YgdXNp bmcgYSBidWdneSBcYG1ha2UnIChBSVgsCisrICAgICAgICAgRFUsIElSSVgpLiAgWW91IG1pZ2h0 IHdhbnQgdG8gaW5zdGFsbCB0aGUgXGBUZXhpbmZvJyBwYWNrYWdlIG9yCisrICAgICAgICAgdGhl IFxgR05VIG1ha2UnIHBhY2thZ2UuICBHcmFiIGVpdGhlciBmcm9tIGFueSBHTlUgYXJjaGl2ZSBz aXRlLiIKKysgICAgIyBUaGUgZmlsZSB0byB0b3VjaCBpcyB0aGF0IHNwZWNpZmllZCB3aXRoIC1v IC4uLgorKyAgICBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfb3V0cHV0ImAKKysgICAg dGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9taW51c28i YAorKyAgICBpZiB0ZXN0IC16ICIkZmlsZSI7IHRoZW4KKysgICAgICAjIC4uLiBvciBpdCBpcyB0 aGUgb25lIHNwZWNpZmllZCB3aXRoIEBzZXRmaWxlbmFtZSAuLi4KKysgICAgICBpbmZpbGU9YGVj aG8gIiQqIiB8IHNlZCAncy8uKiBcKFteIF0qXCkgKiQvXDEvJ2AKKysgICAgICBmaWxlPWBzZWQg LW4gJworKwkvXkBzZXRmaWxlbmFtZS97CisrCSAgcy8uKiBcKFteIF0qXCkgKiQvXDEvCisrCSAg cAorKwkgIHEKKysJfScgJGluZmlsZWAKKysgICAgICAjIC4uLiBvciBpdCBpcyBkZXJpdmVkIGZy b20gdGhlIHNvdXJjZSBuYW1lIChkaXIvZi50ZXhpIGJlY29tZXMgZi5pbmZvKQorKyAgICAgIHRl c3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkaW5maWxlIiB8IHNlZCAncywuKi8sLDtzLC5b Xi5dKiQsLCdgLmluZm8KKysgICAgZmkKKysgICAgIyBJZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlz dCwgdGhlIHVzZXIgcmVhbGx5IG5lZWRzIG1ha2VpbmZvOworKyAgICAjIGxldCdzIGZhaWwgd2l0 aG91dCB0b3VjaGluZyBhbnl0aGluZy4KKysgICAgdGVzdCAtZiAkZmlsZSB8fCBleGl0IDEKKysg ICAgdG91Y2ggJGZpbGUKKysgICAgOzsKKysKKysgIHRhciopCisrICAgIHNoaWZ0CisrCisrICAg ICMgV2UgaGF2ZSBhbHJlYWR5IHRyaWVkIHRhciBpbiB0aGUgZ2VuZXJpYyBwYXJ0LgorKyAgICAj IExvb2sgZm9yIGdudXRhci9ndGFyIGJlZm9yZSBpbnZvY2F0aW9uIHRvIGF2b2lkIHVnbHkgZXJy b3IKKysgICAgIyBtZXNzYWdlcy4KKysgICAgaWYgKGdudXRhciAtLXZlcnNpb24gPiAvZGV2L251 bGwgMj4mMSk7IHRoZW4KKysgICAgICAgZ251dGFyICIkQCIgJiYgZXhpdCAwCisrICAgIGZpCisr ICAgIGlmIChndGFyIC0tdmVyc2lvbiA+IC9kZXYvbnVsbCAyPiYxKTsgdGhlbgorKyAgICAgICBn dGFyICIkQCIgJiYgZXhpdCAwCisrICAgIGZpCisrICAgIGZpcnN0YXJnPSIkMSIKKysgICAgaWYg c2hpZnQ7IHRoZW4KKysJY2FzZSAkZmlyc3RhcmcgaW4KKysJKm8qKQorKwkgICAgZmlyc3Rhcmc9 YGVjaG8gIiRmaXJzdGFyZyIgfCBzZWQgcy9vLy9gCisrCSAgICB0YXIgIiRmaXJzdGFyZyIgIiRA IiAmJiBleGl0IDAKKysJICAgIDs7CisrCWVzYWMKKysJY2FzZSAkZmlyc3RhcmcgaW4KKysJKmgq KQorKwkgICAgZmlyc3Rhcmc9YGVjaG8gIiRmaXJzdGFyZyIgfCBzZWQgcy9oLy9gCisrCSAgICB0 YXIgIiRmaXJzdGFyZyIgIiRAIiAmJiBleGl0IDAKKysJICAgIDs7CisrCWVzYWMKKysgICAgZmkK KysKKysgICAgZWNobyAxPiYyICJcCisrV0FSTklORzogSSBjYW4ndCBzZWVtIHRvIGJlIGFibGUg dG8gcnVuIFxgdGFyJyB3aXRoIHRoZSBnaXZlbiBhcmd1bWVudHMuCisrICAgICAgICAgWW91IG1h eSB3YW50IHRvIGluc3RhbGwgR05VIHRhciBvciBGcmVlIHBheHV0aWxzLCBvciBjaGVjayB0aGUK KysgICAgICAgICBjb21tYW5kIGxpbmUgYXJndW1lbnRzLiIKKysgICAgZXhpdCAxCisrICAgIDs7 CisrCisrICAqKQorKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBcYCQxJyBpcyBuZWVkZWQs IGFuZCBpcyAkbXNnLgorKyAgICAgICAgIFlvdSBtaWdodCBoYXZlIG1vZGlmaWVkIHNvbWUgZmls ZXMgd2l0aG91dCBoYXZpbmcgdGhlCisrICAgICAgICAgcHJvcGVyIHRvb2xzIGZvciBmdXJ0aGVy IGhhbmRsaW5nIHRoZW0uICBDaGVjayB0aGUgXGBSRUFETUUnIGZpbGUsCisrICAgICAgICAgaXQg b2Z0ZW4gdGVsbHMgeW91IGFib3V0IHRoZSBuZWVkZWQgcHJlcmVxdWlzaXRlcyBmb3IgaW5zdGFs bGluZworKyAgICAgICAgIHRoaXMgcGFja2FnZS4gIFlvdSBtYXkgYWxzbyBwZWVrIGF0IGFueSBH TlUgYXJjaGl2ZSBzaXRlLCBpbiBjYXNlCisrICAgICAgICAgc29tZSBvdGhlciBwYWNrYWdlIHdv dWxkIGNvbnRhaW4gdGhpcyBtaXNzaW5nIFxgJDEnIHByb2dyYW0uIgorKyAgICBleGl0IDEKKysg ICAgOzsKKytlc2FjCisrCisrZXhpdCAwCisrCisrIyBMb2NhbCB2YXJpYWJsZXM6CisrIyBldmFs OiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCisrIyB0aW1lLXN0YW1w LXN0YXJ0OiAic2NyaXB0dmVyc2lvbj0iCisrIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJt LSUwMmQuJTAySCIKKysjIHRpbWUtc3RhbXAtdGltZS16b25lOiAiVVRDIgorKyMgdGltZS1zdGFt cC1lbmQ6ICI7ICMgVVRDIgorKyMgRW5kOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2Nv bmZpZ3VyZSBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlndXJlCistLS0gc29jaS0zLjAuMF80LXBh Y2svY29uZmlndXJlCTIwMTEtMDItMDkgMDA6MzA6MzIuNjAwOTE2MzkyICswMTAwCisrKysgc29j aS0zLjAuMF90cmVwMzAwL2NvbmZpZ3VyZQkyMDExLTAyLTA4IDIyOjM5OjUyLjAwMDAwMDAwMCAr MDEwMAorQEAgLTEsNzIgKzEsMjA0NzIgQEAKKy0jIS9iaW4vc2gKKysjISAvYmluL3NoCisrIyBH dWVzcyB2YWx1ZXMgZm9yIHN5c3RlbS1kZXBlbmRlbnQgdmFyaWFibGVzIGFuZCBjcmVhdGUgTWFr ZWZpbGVzLgorKyMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY2IGZvciBTT0NJIDMuMC4w LgorKyMKKysjIFJlcG9ydCBidWdzIHRvIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+ LgorKyMKKysjIENvcHlyaWdodCAoQykgMjAwNC0yMDExIE1hY2llaiBTb2JjemFrIDxtc29iY3ph a0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisrIworKyMKKysjIENvcHlyaWdodCAoQykgMTk5Miwg MTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwKKysjIDIwMDIs IDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgRnJlZSBTb2Z0 d2FyZQorKyMgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjCisrIyBUaGlzIGNvbmZpZ3VyZSBzY3Jp cHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2 ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0 LgorKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrIyMgTTRzaCBJbml0aWFsaXphdGlvbi4g IyMKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworIAorLWlmIFsgJCMgLWd0IDAgXQorKyMg QmUgbW9yZSBCb3VybmUgY29tcGF0aWJsZQorK0RVQUxDQVNFPTE7IGV4cG9ydCBEVUFMQ0FTRSAj IGZvciBNS1Mgc2gKKytpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRl IHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOgorKyAgZW11bGF0ZSBzaAorKyAgTlVMTENNRD06 CisrICAjIFByZS00LjIgdmVyc2lvbnMgb2YgWnNoIGRvIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsi JEAifSwgd2hpY2gKKysgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlz IGZlYXR1cmUuCisrICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKKysgIHNldG9wdCBOT19H TE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGluICMoCisr ICAqcG9zaXgqKSA6CisrICAgIHNldCAtbyBwb3NpeCA7OyAjKAorKyAgKikgOgorKyAgICAgOzsK Kytlc2FjCisrZmkKKysKKysKKythc19ubD0nCisrJworK2V4cG9ydCBhc19ubAorKyMgUHJpbnRp bmcgYSBsb25nIHN0cmluZyBjcmFzaGVzIFNvbGFyaXMgNyAvdXNyL2Jpbi9wcmludGYuCisrYXNf ZWNobz0nXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCcKKyth c19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8KKythc19lY2hv PSRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobworKyMgUHJl ZmVyIGEga3NoIHNoZWxsIGJ1aWx0aW4gb3ZlciBhbiBleHRlcm5hbCBwcmludGYgcHJvZ3JhbSBv biBTb2xhcmlzLAorKyMgYnV0IHdpdGhvdXQgd2FzdGluZyBmb3JrcyBmb3IgYmFzaCBvciB6c2gu CisraWYgdGVzdCAteiAiJEJBU0hfVkVSU0lPTiRaU0hfVkVSU0lPTiIgXAorKyAgICAmJiAodGVz dCAiWGBwcmludCAtciAtLSAkYXNfZWNob2AiID0gIlgkYXNfZWNobyIpIDI+L2Rldi9udWxsOyB0 aGVuCisrICBhc19lY2hvPSdwcmludCAtciAtLScKKysgIGFzX2VjaG9fbj0ncHJpbnQgLXJuIC0t JworK2VsaWYgKHRlc3QgIlhgcHJpbnRmICVzICRhc19lY2hvYCIgPSAiWCRhc19lY2hvIikgMj4v ZGV2L251bGw7IHRoZW4KKysgIGFzX2VjaG89J3ByaW50ZiAlc1xuJworKyAgYXNfZWNob19uPSdw cmludGYgJXMnCisrZWxzZQorKyAgaWYgdGVzdCAiWGAoL3Vzci91Y2IvZWNobyAtbiAtbiAkYXNf ZWNobykgMj4vZGV2L251bGxgIiA9ICJYLW4gJGFzX2VjaG8iOyB0aGVuCisrICAgIGFzX2VjaG9f Ym9keT0nZXZhbCAvdXNyL3VjYi9lY2hvIC1uICIkMSRhc19ubCInCisrICAgIGFzX2VjaG9fbj0n L3Vzci91Y2IvZWNobyAtbicKKysgIGVsc2UKKysgICAgYXNfZWNob19ib2R5PSdldmFsIGV4cHIg IlgkMSIgOiAiWFxcKC4qXFwpIicKKysgICAgYXNfZWNob19uX2JvZHk9J2V2YWwKKysgICAgICBh cmc9JDE7CisrICAgICAgY2FzZSAkYXJnIGluICMoCisrICAgICAgKiIkYXNfbmwiKikKKysJZXhw ciAiWCRhcmciIDogIlhcXCguKlxcKSRhc19ubCI7CisrCWFyZz1gZXhwciAiWCRhcmciIDogIi4q JGFzX25sXFwoLipcXCkiYDs7CisrICAgICAgZXNhYzsKKysgICAgICBleHByICJYJGFyZyIgOiAi WFxcKC4qXFwpIiB8IHRyIC1kICIkYXNfbmwiCisrICAgICcKKysgICAgZXhwb3J0IGFzX2VjaG9f bl9ib2R5CisrICAgIGFzX2VjaG9fbj0nc2ggLWMgJGFzX2VjaG9fbl9ib2R5IGFzX2VjaG8nCisr ICBmaQorKyAgZXhwb3J0IGFzX2VjaG9fYm9keQorKyAgYXNfZWNobz0nc2ggLWMgJGFzX2VjaG9f Ym9keSBhc19lY2hvJworK2ZpCisrCisrIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCisraWYg dGVzdCAiJHtQQVRIX1NFUEFSQVRPUitzZXR9IiAhPSBzZXQ7IHRoZW4KKysgIFBBVEhfU0VQQVJB VE9SPToKKysgIChQQVRIPScvYmluOy9iaW4nOyBGUEFUSD0kUEFUSDsgc2ggLWMgOikgPi9kZXYv bnVsbCAyPiYxICYmIHsKKysgICAgKFBBVEg9Jy9iaW46L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAt YyA6KSA+L2Rldi9udWxsIDI+JjEgfHwKKysgICAgICBQQVRIX1NFUEFSQVRPUj0nOycKKysgIH0K KytmaQorKworKworKyMgSUZTCisrIyBXZSBuZWVkIHNwYWNlLCB0YWIgYW5kIG5ldyBsaW5lLCBp biBwcmVjaXNlbHkgdGhhdCBvcmRlci4gIFF1b3RpbmcgaXMKKysjIHRoZXJlIHRvIHByZXZlbnQg ZWRpdG9ycyBmcm9tIGNvbXBsYWluaW5nIGFib3V0IHNwYWNlLXRhYi4KKysjIChJZiBfQVNfUEFU SF9XQUxLIHdlcmUgY2FsbGVkIHdpdGggSUZTIHVuc2V0LCBpdCB3b3VsZCBkaXNhYmxlIHdvcmQK KysjIHNwbGl0dGluZyBieSBzZXR0aW5nIElGUyB0byBlbXB0eSB2YWx1ZS4pCisrSUZTPSIgIiIJ JGFzX25sIgorKworKyMgRmluZCB3aG8gd2UgYXJlLiAgTG9vayBpbiB0aGUgcGF0aCBpZiB3ZSBj b250YWluIG5vIGRpcmVjdG9yeSBzZXBhcmF0b3IuCisrY2FzZSAkMCBpbiAjKCgKKysgICpbXFwv XSogKSBhc19teXNlbGY9JDAgOzsKKysgICopIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T RVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMK KysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIHRlc3QgLXIgIiRhc19kaXIv JDAiICYmIGFzX215c2VsZj0kYXNfZGlyLyQwICYmIGJyZWFrCisrICBkb25lCisrSUZTPSRhc19z YXZlX0lGUworKworKyAgICAgOzsKKytlc2FjCisrIyBXZSBkaWQgbm90IGZpbmQgb3Vyc2VsdmVz LCBtb3N0IHByb2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBzaCBDT01NQU5EJworKyMgaW4gd2hpY2gg Y2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRoLgorK2lmIHRlc3QgIngkYXNf bXlzZWxmIiA9IHg7IHRoZW4KKysgIGFzX215c2VsZj0kMAorK2ZpCisraWYgdGVzdCAhIC1mICIk YXNfbXlzZWxmIjsgdGhlbgorKyAgJGFzX2VjaG8gIiRhc19teXNlbGY6IGVycm9yOiBjYW5ub3Qg ZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgZmlsZSBuYW1lIiA+JjIKKysgIGV4 aXQgMQorK2ZpCisrCisrIyBVbnNldCB2YXJpYWJsZXMgdGhhdCB3ZSBkbyBub3QgbmVlZCBhbmQg d2hpY2ggY2F1c2UgYnVncyAoZS5nLiBpbgorKyMgcHJlLTMuMCBVV0lOIGtzaCkuICBCdXQgZG8g bm90IGNhdXNlIGJ1Z3MgaW4gYmFzaCAyLjAxOyB0aGUgInx8IGV4aXQgMSIKKysjIHN1cHByZXNz ZXMgYW55ICJTZWdtZW50YXRpb24gZmF1bHQiIG1lc3NhZ2UgdGhlcmUuICAnKCgnIGNvdWxkCisr IyB0cmlnZ2VyIGEgYnVnIGluIHBka3NoIDUuMi4xNC4KKytmb3IgYXNfdmFyIGluIEJBU0hfRU5W IEVOViBNQUlMIE1BSUxQQVRICisrZG8gZXZhbCB0ZXN0IHhcJHskYXNfdmFyK3NldH0gPSB4c2V0 IFwKKysgICYmICggKHVuc2V0ICRhc192YXIpIHx8IGV4aXQgMSkgPi9kZXYvbnVsbCAyPiYxICYm IHVuc2V0ICRhc192YXIgfHwgOgorK2RvbmUKKytQUzE9JyQgJworK1BTMj0nPiAnCisrUFM0PScr ICcKKysKKysjIE5MUyBudWlzYW5jZXMuCisrTENfQUxMPUMKKytleHBvcnQgTENfQUxMCisrTEFO R1VBR0U9QworK2V4cG9ydCBMQU5HVUFHRQorKworKyMgQ0RQQVRILgorKyh1bnNldCBDRFBBVEgp ID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgKKysKKytpZiB0ZXN0ICJ4JENPTkZJR19T SEVMTCIgPSB4OyB0aGVuCisrICBhc19ib3VybmVfY29tcGF0aWJsZT0iaWYgdGVzdCAtbiBcIlwk e1pTSF9WRVJTSU9OK3NldH1cIiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVu IDoKKysgIGVtdWxhdGUgc2gKKysgIE5VTExDTUQ9OgorKyAgIyBQcmUtNC4yIHZlcnNpb25zIG9m IFpzaCBkbyB3b3JkIHNwbGl0dGluZyBvbiBcJHsxK1wiXCRAXCJ9LCB3aGljaAorKyAgIyBpcyBj b250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KKysgIGFsaWFzIC1n ICdcJHsxK1wiXCRAXCJ9Jz0nXCJcJEBcIicKKysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxz ZQorKyAgY2FzZSBcYChzZXQgLW8pIDI+L2Rldi9udWxsXGAgaW4gIygKKysgICpwb3NpeCopIDoK KysgICAgc2V0IC1vIHBvc2l4IDs7ICMoCisrICAqKSA6CisrICAgICA7OworK2VzYWMKKytmaQor KyIKKysgIGFzX3JlcXVpcmVkPSJhc19mbl9yZXR1cm4gKCkgeyAoZXhpdCBcJDEpOyB9CisrYXNf Zm5fc3VjY2VzcyAoKSB7IGFzX2ZuX3JldHVybiAwOyB9CisrYXNfZm5fZmFpbHVyZSAoKSB7IGFz X2ZuX3JldHVybiAxOyB9CisrYXNfZm5fcmV0X3N1Y2Nlc3MgKCkgeyByZXR1cm4gMDsgfQorK2Fz X2ZuX3JldF9mYWlsdXJlICgpIHsgcmV0dXJuIDE7IH0KKysKKytleGl0Y29kZT0wCisrYXNfZm5f c3VjY2VzcyB8fCB7IGV4aXRjb2RlPTE7IGVjaG8gYXNfZm5fc3VjY2VzcyBmYWlsZWQuOyB9Cisr YXNfZm5fZmFpbHVyZSAmJiB7IGV4aXRjb2RlPTE7IGVjaG8gYXNfZm5fZmFpbHVyZSBzdWNjZWVk ZWQuOyB9CisrYXNfZm5fcmV0X3N1Y2Nlc3MgfHwgeyBleGl0Y29kZT0xOyBlY2hvIGFzX2ZuX3Jl dF9zdWNjZXNzIGZhaWxlZC47IH0KKythc19mbl9yZXRfZmFpbHVyZSAmJiB7IGV4aXRjb2RlPTE7 IGVjaG8gYXNfZm5fcmV0X2ZhaWx1cmUgc3VjY2VlZGVkLjsgfQorK2lmICggc2V0IHg7IGFzX2Zu X3JldF9zdWNjZXNzIHkgJiYgdGVzdCB4ID0gXCJcJDFcIiApOyB0aGVuIDoKKysKKytlbHNlCisr ICBleGl0Y29kZT0xOyBlY2hvIHBvc2l0aW9uYWwgcGFyYW1ldGVycyB3ZXJlIG5vdCBzYXZlZC4K KytmaQorK3Rlc3QgeFwkZXhpdGNvZGUgPSB4MCB8fCBleGl0IDEiCisrICBhc19zdWdnZXN0ZWQ9 IiAgYXNfbGluZW5vXzE9Ijthc19zdWdnZXN0ZWQ9JGFzX3N1Z2dlc3RlZCRMSU5FTk87YXNfc3Vn Z2VzdGVkPSRhc19zdWdnZXN0ZWQiIGFzX2xpbmVub18xYT1cJExJTkVOTworKyAgYXNfbGluZW5v XzI9Ijthc19zdWdnZXN0ZWQ9JGFzX3N1Z2dlc3RlZCRMSU5FTk87YXNfc3VnZ2VzdGVkPSRhc19z dWdnZXN0ZWQiIGFzX2xpbmVub18yYT1cJExJTkVOTworKyAgZXZhbCAndGVzdCBcInhcJGFzX2xp bmVub18xJ1wkYXNfcnVuJ1wiICE9IFwieFwkYXNfbGluZW5vXzInXCRhc19ydW4nXCIgJiYKKysg IHRlc3QgXCJ4XGBleHByIFwkYXNfbGluZW5vXzEnXCRhc19ydW4nICsgMVxgXCIgPSBcInhcJGFz X2xpbmVub18yJ1wkYXNfcnVuJ1wiJyB8fCBleGl0IDEKKysKKysgIHRlc3QgLW4gXCJcJHtaU0hf VkVSU0lPTitzZXR9XCR7QkFTSF9WRVJTSU9OK3NldH1cIiB8fCAoCisrICAgIEVDSE89J1xcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcJworKyAgICBFQ0hPPVwkRUNIT1wkRUNIT1wk RUNIT1wkRUNIT1wkRUNITworKyAgICBFQ0hPPVwkRUNIT1wkRUNIT1wkRUNIT1wkRUNIT1wkRUNI T1wkRUNITworKyAgICBQQVRIPS9lbXB0eSBGUEFUSD0vZW1wdHk7IGV4cG9ydCBQQVRIIEZQQVRI CisrICAgIHRlc3QgXCJYXGBwcmludGYgJXMgXCRFQ0hPXGBcIiA9IFwiWFwkRUNIT1wiIFxcCisr ICAgICAgfHwgdGVzdCBcIlhcYHByaW50IC1yIC0tIFwkRUNIT1xgXCIgPSBcIlhcJEVDSE9cIiAp IHx8IGV4aXQgMQorK3Rlc3QgXCQoKCAxICsgMSApKSA9IDIgfHwgZXhpdCAxIgorKyAgaWYgKGV2 YWwgIiRhc19yZXF1aXJlZCIpIDI+L2Rldi9udWxsOyB0aGVuIDoKKysgIGFzX2hhdmVfcmVxdWly ZWQ9eWVzCisrZWxzZQorKyAgYXNfaGF2ZV9yZXF1aXJlZD1ubworK2ZpCisrICBpZiB0ZXN0IHgk YXNfaGF2ZV9yZXF1aXJlZCA9IHh5ZXMgJiYgKGV2YWwgIiRhc19zdWdnZXN0ZWQiKSAyPi9kZXYv bnVsbDsgdGhlbiA6CisrCisrZWxzZQorKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgorK2FzX2ZvdW5kPWZhbHNlCisrZm9yIGFzX2RpciBpbiAvYmluJFBBVEhfU0VQQVJB VE9SL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZT CisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgYXNfZm91bmQ9OgorKyAgY2Fz ZSAkYXNfZGlyIGluICMoCisrCSAvKikKKysJICAgZm9yIGFzX2Jhc2UgaW4gc2ggYmFzaCBrc2gg c2g1OyBkbworKwkgICAgICMgVHJ5IG9ubHkgc2hlbGxzIHRoYXQgZXhpc3QsIHRvIHNhdmUgc2V2 ZXJhbCBmb3Jrcy4KKysJICAgICBhc19zaGVsbD0kYXNfZGlyLyRhc19iYXNlCisrCSAgICAgaWYg eyB0ZXN0IC1mICIkYXNfc2hlbGwiIHx8IHRlc3QgLWYgIiRhc19zaGVsbC5leGUiOyB9ICYmCisr CQkgICAgeyAkYXNfZWNobyAiJGFzX2JvdXJuZV9jb21wYXRpYmxlIiIkYXNfcmVxdWlyZWQiIHwg YXNfcnVuPWEgIiRhc19zaGVsbCI7IH0gMj4vZGV2L251bGw7IHRoZW4gOgorKyAgQ09ORklHX1NI RUxMPSRhc19zaGVsbCBhc19oYXZlX3JlcXVpcmVkPXllcworKwkJICAgaWYgeyAkYXNfZWNobyAi JGFzX2JvdXJuZV9jb21wYXRpYmxlIiIkYXNfc3VnZ2VzdGVkIiB8IGFzX3J1bj1hICIkYXNfc2hl bGwiOyB9IDI+L2Rldi9udWxsOyB0aGVuIDoKKysgIGJyZWFrIDIKKytmaQorK2ZpCisrCSAgIGRv bmU7OworKyAgICAgICBlc2FjCisrICBhc19mb3VuZD1mYWxzZQorK2RvbmUKKyskYXNfZm91bmQg fHwgeyBpZiB7IHRlc3QgLWYgIiRTSEVMTCIgfHwgdGVzdCAtZiAiJFNIRUxMLmV4ZSI7IH0gJiYK KysJICAgICAgeyAkYXNfZWNobyAiJGFzX2JvdXJuZV9jb21wYXRpYmxlIiIkYXNfcmVxdWlyZWQi IHwgYXNfcnVuPWEgIiRTSEVMTCI7IH0gMj4vZGV2L251bGw7IHRoZW4gOgorKyAgQ09ORklHX1NI RUxMPSRTSEVMTCBhc19oYXZlX3JlcXVpcmVkPXllcworK2ZpOyB9CisrSUZTPSRhc19zYXZlX0lG UworKworKworKyAgICAgIGlmIHRlc3QgIngkQ09ORklHX1NIRUxMIiAhPSB4OyB0aGVuIDoKKysg ICMgV2UgY2Fubm90IHlldCBhc3N1bWUgYSBkZWNlbnQgc2hlbGwsIHNvIHdlIGhhdmUgdG8gcHJv dmlkZSBhCisrCSMgbmV1dHJhbGl6YXRpb24gdmFsdWUgZm9yIHNoZWxscyB3aXRob3V0IHVuc2V0 OyBhbmQgdGhpcyBhbHNvCisrCSMgd29ya3MgYXJvdW5kIHNoZWxscyB0aGF0IGNhbm5vdCB1bnNl dCBub25leGlzdGVudCB2YXJpYWJsZXMuCisrCUJBU0hfRU5WPS9kZXYvbnVsbAorKwlFTlY9L2Rl di9udWxsCisrCSh1bnNldCBCQVNIX0VOVikgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IEJBU0hf RU5WIEVOVgorKwlleHBvcnQgQ09ORklHX1NIRUxMCisrCWV4ZWMgIiRDT05GSUdfU0hFTEwiICIk YXNfbXlzZWxmIiAkezErIiRAIn0KKytmaQorKworKyAgICBpZiB0ZXN0IHgkYXNfaGF2ZV9yZXF1 aXJlZCA9IHhubzsgdGhlbiA6CisrICAkYXNfZWNobyAiJDA6IFRoaXMgc2NyaXB0IHJlcXVpcmVz IGEgc2hlbGwgbW9yZSBtb2Rlcm4gdGhhbiBhbGwiCisrICAkYXNfZWNobyAiJDA6IHRoZSBzaGVs bHMgdGhhdCBJIGZvdW5kIG9uIHlvdXIgc3lzdGVtLiIKKysgIGlmIHRlc3QgeCR7WlNIX1ZFUlNJ T04rc2V0fSA9IHhzZXQgOyB0aGVuCisrICAgICRhc19lY2hvICIkMDogSW4gcGFydGljdWxhciwg enNoICRaU0hfVkVSU0lPTiBoYXMgYnVncyBhbmQgc2hvdWxkIgorKyAgICAkYXNfZWNobyAiJDA6 IGJlIHVwZ3JhZGVkIHRvIHpzaCA0LjMuNCBvciBsYXRlci4iCisrICBlbHNlCisrICAgICRhc19l Y2hvICIkMDogUGxlYXNlIHRlbGwgYnVnLWF1dG9jb25mQGdudS5vcmcgYW5kCisrJDA6IG1zb2Jj emFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldCBhYm91dCB5b3VyIHN5c3RlbSwKKyskMDogaW5jbHVk aW5nIGFueSBlcnJvciBwb3NzaWJseSBvdXRwdXQgYmVmb3JlIHRoaXMKKyskMDogbWVzc2FnZS4g VGhlbiBpbnN0YWxsIGEgbW9kZXJuIHNoZWxsLCBvciBtYW51YWxseSBydW4KKyskMDogdGhlIHNj cmlwdCB1bmRlciBzdWNoIGEgc2hlbGwgaWYgeW91IGRvIGhhdmUgb25lLiIKKysgIGZpCisrICBl eGl0IDEKKytmaQorK2ZpCisrZmkKKytTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQorK2V4 cG9ydCBTSEVMTAorKyMgVW5zZXQgbW9yZSB2YXJpYWJsZXMga25vd24gdG8gaW50ZXJmZXJlIHdp dGggYmVoYXZpb3Igb2YgY29tbW9uIHRvb2xzLgorK0NMSUNPTE9SX0ZPUkNFPSBHUkVQX09QVElP TlM9CisrdW5zZXQgQ0xJQ09MT1JfRk9SQ0UgR1JFUF9PUFRJT05TCisrCisrIyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tICMjCisrIyMgTTRzaCBTaGVsbCBGdW5jdGlvbnMuICMjCisrIyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tICMjCisrIyBhc19mbl91bnNldCBWQVIKKysjIC0tLS0tLS0tLS0tLS0t LQorKyMgUG9ydGFibHkgdW5zZXQgVkFSLgorK2FzX2ZuX3Vuc2V0ICgpCisreworKyAgeyBldmFs ICQxPTsgdW5zZXQgJDE7fQorK30KKythc191bnNldD1hc19mbl91bnNldAorKworKyMgYXNfZm5f c2V0X3N0YXR1cyBTVEFUVVMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBTZXQgJD8g dG8gU1RBVFVTLCB3aXRob3V0IGZvcmtpbmcuCisrYXNfZm5fc2V0X3N0YXR1cyAoKQorK3sKKysg IHJldHVybiAkMQorK30gIyBhc19mbl9zZXRfc3RhdHVzCisrCisrIyBhc19mbl9leGl0IFNUQVRV UworKyMgLS0tLS0tLS0tLS0tLS0tLS0KKysjIEV4aXQgdGhlIHNoZWxsIHdpdGggU1RBVFVTLCBl dmVuIGluIGEgInRyYXAgMCIgb3IgInNldCAtZSIgY29udGV4dC4KKythc19mbl9leGl0ICgpCisr eworKyAgc2V0ICtlCisrICBhc19mbl9zZXRfc3RhdHVzICQxCisrICBleGl0ICQxCisrfSAjIGFz X2ZuX2V4aXQKKysKKysjIGFzX2ZuX21rZGlyX3AKKysjIC0tLS0tLS0tLS0tLS0KKysjIENyZWF0 ZSAiJGFzX2RpciIgYXMgYSBkaXJlY3RvcnksIGluY2x1ZGluZyBwYXJlbnRzIGlmIG5lY2Vzc2Fy eS4KKythc19mbl9ta2Rpcl9wICgpCisreworKworKyAgY2FzZSAkYXNfZGlyIGluICMoCisrICAt KikgYXNfZGlyPS4vJGFzX2Rpcjs7CisrICBlc2FjCisrICB0ZXN0IC1kICIkYXNfZGlyIiB8fCBl dmFsICRhc19ta2Rpcl9wIHx8IHsKKysgICAgYXNfZGlycz0KKysgICAgd2hpbGUgOjsgZG8KKysg ICAgICBjYXNlICRhc19kaXIgaW4gIygKKysgICAgICAqXCcqKSBhc19xZGlyPWAkYXNfZWNobyAi JGFzX2RpciIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OyAjJygKKysgICAgICAqKSBhc19x ZGlyPSRhc19kaXI7OworKyAgICAgIGVzYWMKKysgICAgICBhc19kaXJzPSInJGFzX3FkaXInICRh c19kaXJzIgorKyAgICAgIGFzX2Rpcj1gJGFzX2Rpcm5hbWUgLS0gIiRhc19kaXIiIHx8CisrJGFz X2V4cHIgWCIkYXNfZGlyIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAorKwkg WCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAorKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wp JCcgXHwgXAorKwkgWCIkYXNfZGlyIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKKysk YXNfZWNobyBYIiRhc19kaXIiIHwKKysgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14v XSpcLyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKVte L10uKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wvXCkkL3sK KysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXCkuKi97CisrCSAgICBz Ly9cMS8KKysJICAgIHEKKysJICB9CisrCSAgcy8uKi8uLzsgcSdgCisrICAgICAgdGVzdCAtZCAi JGFzX2RpciIgJiYgYnJlYWsKKysgICAgZG9uZQorKyAgICB0ZXN0IC16ICIkYXNfZGlycyIgfHwg ZXZhbCAibWtkaXIgJGFzX2RpcnMiCisrICB9IHx8IHRlc3QgLWQgIiRhc19kaXIiIHx8IGFzX2Zu X2Vycm9yICQ/ICJjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNfZGlyIgorKworKworK30gIyBh c19mbl9ta2Rpcl9wCisrIyBhc19mbl9hcHBlbmQgVkFSIFZBTFVFCisrIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrIyBBcHBlbmQgdGhlIHRleHQgaW4gVkFMVUUgdG8gdGhlIGVuZCBvZiB0aGUg ZGVmaW5pdGlvbiBjb250YWluZWQgaW4gVkFSLiBUYWtlCisrIyBhZHZhbnRhZ2Ugb2YgYW55IHNo ZWxsIG9wdGltaXphdGlvbnMgdGhhdCBhbGxvdyBhbW9ydGl6ZWQgbGluZWFyIGdyb3d0aCBvdmVy CisrIyByZXBlYXRlZCBhcHBlbmRzLCBpbnN0ZWFkIG9mIHRoZSB0eXBpY2FsIHF1YWRyYXRpYyBn cm93dGggcHJlc2VudCBpbiBuYWl2ZQorKyMgaW1wbGVtZW50YXRpb25zLgorK2lmIChldmFsICJh c192YXI9MTsgYXNfdmFyKz0yOyB0ZXN0IHhcJGFzX3ZhciA9IHgxMiIpIDI+L2Rldi9udWxsOyB0 aGVuIDoKKysgIGV2YWwgJ2FzX2ZuX2FwcGVuZCAoKQorKyAgeworKyAgICBldmFsICQxKz1cJDIK KysgIH0nCisrZWxzZQorKyAgYXNfZm5fYXBwZW5kICgpCisrICB7CisrICAgIGV2YWwgJDE9XCQk MVwkMgorKyAgfQorK2ZpICMgYXNfZm5fYXBwZW5kCisrCisrIyBhc19mbl9hcml0aCBBUkcuLi4K KysjIC0tLS0tLS0tLS0tLS0tLS0tLQorKyMgUGVyZm9ybSBhcml0aG1ldGljIGV2YWx1YXRpb24g b24gdGhlIEFSR3MsIGFuZCBzdG9yZSB0aGUgcmVzdWx0IGluIHRoZQorKyMgZ2xvYmFsICRhc192 YWwuIFRha2UgYWR2YW50YWdlIG9mIHNoZWxscyB0aGF0IGNhbiBhdm9pZCBmb3Jrcy4gVGhlIGFy Z3VtZW50cworKyMgbXVzdCBiZSBwb3J0YWJsZSBhY3Jvc3MgJCgoKSkgYW5kIGV4cHIuCisraWYg KGV2YWwgInRlc3QgXCQoKCAxICsgMSApKSA9IDIiKSAyPi9kZXYvbnVsbDsgdGhlbiA6CisrICBl dmFsICdhc19mbl9hcml0aCAoKQorKyAgeworKyAgICBhc192YWw9JCgoICQqICkpCisrICB9Jwor K2Vsc2UKKysgIGFzX2ZuX2FyaXRoICgpCisrICB7CisrICAgIGFzX3ZhbD1gZXhwciAiJEAiIHx8 IHRlc3QgJD8gLWVxIDFgCisrICB9CisrZmkgIyBhc19mbl9hcml0aAorKworKworKyMgYXNfZm5f ZXJyb3IgU1RBVFVTIEVSUk9SIFtMSU5FTk8gTE9HX0ZEXQorKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgT3V0cHV0ICJgYmFzZW5hbWUgJDBgOiBlcnJvcjog RVJST1IiIHRvIHN0ZGVyci4gSWYgTElORU5PIGFuZCBMT0dfRkQgYXJlCisrIyBwcm92aWRlZCwg YWxzbyBvdXRwdXQgdGhlIGVycm9yIHRvIExPR19GRCwgcmVmZXJlbmNpbmcgTElORU5PLiBUaGVu IGV4aXQgdGhlCisrIyBzY3JpcHQgd2l0aCBTVEFUVVMsIHVzaW5nIDEgaWYgdGhhdCB3YXMgMC4K Kythc19mbl9lcnJvciAoKQorK3sKKysgIGFzX3N0YXR1cz0kMTsgdGVzdCAkYXNfc3RhdHVzIC1l cSAwICYmIGFzX3N0YXR1cz0xCisrICBpZiB0ZXN0ICIkNCI7IHRoZW4KKysgICAgYXNfbGluZW5v PSR7YXNfbGluZW5vLSIkMyJ9IGFzX2xpbmVub19zdGFjaz1hc19saW5lbm9fc3RhY2s9JGFzX2xp bmVub19zdGFjaworKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBl cnJvcjogJDIiID4mJDQKKysgIGZpCisrICAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJDIiID4m MgorKyAgYXNfZm5fZXhpdCAkYXNfc3RhdHVzCisrfSAjIGFzX2ZuX2Vycm9yCisrCisraWYgZXhw ciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjEgJiYKKysgICB0ZXN0ICJYYGV4cHIgMDAwMDEg OiAnLipcKC4uLlwpJ2AiID0gWDAwMTsgdGhlbgorKyAgYXNfZXhwcj1leHByCisrZWxzZQorKyAg YXNfZXhwcj1mYWxzZQorK2ZpCisrCisraWYgKGJhc2VuYW1lIC0tIC8pID4vZGV2L251bGwgMj4m MSAmJiB0ZXN0ICJYYGJhc2VuYW1lIC0tIC8gMj4mMWAiID0gIlgvIjsgdGhlbgorKyAgYXNfYmFz ZW5hbWU9YmFzZW5hbWUKKytlbHNlCisrICBhc19iYXNlbmFtZT1mYWxzZQorK2ZpCisrCisraWYg KGFzX2Rpcj1gZGlybmFtZSAtLSAvYCAmJiB0ZXN0ICJYJGFzX2RpciIgPSBYLykgPi9kZXYvbnVs bCAyPiYxOyB0aGVuCisrICBhc19kaXJuYW1lPWRpcm5hbWUKKytlbHNlCisrICBhc19kaXJuYW1l PWZhbHNlCisrZmkKKysKKythc19tZT1gJGFzX2Jhc2VuYW1lIC0tICIkMCIgfHwKKyskYXNfZXhw ciBYLyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwgXAorKwkgWCIkMCIgOiAnWFwoLy9c KSQnIFx8IFwKKysJIFgiJDAiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRhc19l Y2hvIFgvIiQwIiB8CisrICAgIHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwvKiQveworKwkgICAg cy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwvXChcL1wvXCkkL3sKKysJICAgIHMvL1wx LworKwkgICAgcQorKwkgIH0KKysJICAvXlhcL1woXC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkg ICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBxJ2AKKysKKysjIEF2b2lkIGRlcGVuZGluZyB1cG9u IENoYXJhY3RlciBSYW5nZXMuCisrYXNfY3JfbGV0dGVycz0nYWJjZGVmZ2hpamtsbW5vcHFyc3R1 dnd4eXonCisrYXNfY3JfTEVUVEVSUz0nQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonCisrYXNf Y3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRURVJTCisrYXNfY3JfZGlnaXRzPScw MTIzNDU2Nzg5JworK2FzX2NyX2FsbnVtPSRhc19jcl9MZXR0ZXJzJGFzX2NyX2RpZ2l0cworKwor KworKyAgYXNfbGluZW5vXzE9JExJTkVOTyBhc19saW5lbm9fMWE9JExJTkVOTworKyAgYXNfbGlu ZW5vXzI9JExJTkVOTyBhc19saW5lbm9fMmE9JExJTkVOTworKyAgZXZhbCAndGVzdCAieCRhc19s aW5lbm9fMSckYXNfcnVuJyIgIT0gIngkYXNfbGluZW5vXzInJGFzX3J1biciICYmCisrICB0ZXN0 ICJ4YGV4cHIgJGFzX2xpbmVub18xJyRhc19ydW4nICsgMWAiID0gIngkYXNfbGluZW5vXzInJGFz X3J1biciJyB8fCB7CisrICAjIEJsYW1lIExlZSBFLiBNY01haG9uICgxOTMxLTE5ODkpIGZvciBz ZWQncyBzeW50YXguICA6LSkKKysgIHNlZCAtbiAnCisrICAgIHAKKysgICAgL1skXUxJTkVOTy89 CisrICAnIDwkYXNfbXlzZWxmIHwKKysgICAgc2VkICcKKysgICAgICBzL1skXUxJTkVOTy4qLyYt LworKyAgICAgIHQgbGluZW5vCisrICAgICAgYgorKyAgICAgIDpsaW5lbm8KKysgICAgICBOCisr ICAgICAgOmxvb3AKKysgICAgICBzL1skXUxJTkVOT1woW14nJGFzX2NyX2FsbnVtJ19dLipcblwp XCguKlwpL1wyXDFcMi8KKysgICAgICB0IGxvb3AKKysgICAgICBzLy1cbi4qLy8KKysgICAgJyA+ JGFzX21lLmxpbmVubyAmJgorKyAgY2htb2QgK3ggIiRhc19tZS5saW5lbm8iIHx8CisrICAgIHsg JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgJGFzX21lLmxpbmVubzsgcmVy dW4gd2l0aCBhIFBPU0lYIHNoZWxsIiA+JjI7IGFzX2ZuX2V4aXQgMTsgfQorKworKyAgIyBEb24n dCB0cnkgdG8gZXhlYyBhcyBpdCBjaGFuZ2VzICRbMF0sIGNhdXNpbmcgYWxsIHNvcnQgb2YgcHJv YmxlbXMKKysgICMgKHRoZSBkaXJuYW1lIG9mICRbMF0gaXMgbm90IHRoZSBwbGFjZSB3aGVyZSB3 ZSBtaWdodCBmaW5kIHRoZQorKyAgIyBvcmlnaW5hbCBhbmQgc28gb24uICBBdXRvY29uZiBpcyBl c3BlY2lhbGx5IHNlbnNpdGl2ZSB0byB0aGlzKS4KKysgIC4gIi4vJGFzX21lLmxpbmVubyIKKysg ICMgRXhpdCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUgbGFzdCBjb21tYW5kLgorKyAgZXhpdAorK30K KysKKytFQ0hPX0M9IEVDSE9fTj0gRUNIT19UPQorK2Nhc2UgYGVjaG8gLW4geGAgaW4gIygoKCgo CisrLW4qKQorKyAgY2FzZSBgZWNobyAneHlcYydgIGluCisrICAqYyopIEVDSE9fVD0nCSc7Owkj IEVDSE9fVCBpcyBzaW5nbGUgdGFiIGNoYXJhY3Rlci4KKysgIHh5KSAgRUNIT19DPSdcYyc7Owor KyAgKikgICBlY2hvIGBlY2hvIGtzaDg4IGJ1ZyBvbiBBSVggNi4xYCA+IC9kZXYvbnVsbAorKyAg ICAgICBFQ0hPX1Q9JwknOzsKKysgIGVzYWM7OworKyopCisrICBFQ0hPX049Jy1uJzs7CisrZXNh YworKworK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCisraWYgdGVzdCAtZCBj b25mJCQuZGlyOyB0aGVuCisrICBybSAtZiBjb25mJCQuZGlyL2NvbmYkJC5maWxlCisrZWxzZQor KyAgcm0gLWYgY29uZiQkLmRpcgorKyAgbWtkaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAorK2Zp CisraWYgKGVjaG8gPmNvbmYkJC5maWxlKSAyPi9kZXYvbnVsbDsgdGhlbgorKyAgaWYgbG4gLXMg Y29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCisrICAgIGFzX2xuX3M9J2xuIC1z JworKyAgICAjIC4uLiBidXQgdGhlcmUgYXJlIHR3byBnb3RjaGFzOgorKyAgICAjIDEpIE9uIE1T WVMsIGJvdGggYGxuIC1zIGZpbGUgZGlyJyBhbmQgYGxuIGZpbGUgZGlyJyBmYWlsLgorKyAgICAj IDIpIERKR1BQIDwgMi4wNCBoYXMgbm8gc3ltbGlua3M7IGBsbiAtcycgY3JlYXRlcyBhIHdyYXBw ZXIgZXhlY3V0YWJsZS4KKysgICAgIyBJbiBib3RoIGNhc2VzLCB3ZSBoYXZlIHRvIGRlZmF1bHQg dG8gYGNwIC1wJy4KKysgICAgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkLmRpciAyPi9kZXYvbnVs bCAmJiB0ZXN0ICEgLWYgY29uZiQkLmV4ZSB8fAorKyAgICAgIGFzX2xuX3M9J2NwIC1wJworKyAg ZWxpZiBsbiBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KKysgICAgYXNfbG5f cz1sbgorKyAgZWxzZQorKyAgICBhc19sbl9zPSdjcCAtcCcKKysgIGZpCisrZWxzZQorKyAgYXNf bG5fcz0nY3AgLXAnCisrZmkKKytybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZGlyL2Nv bmYkJC5maWxlIGNvbmYkJC5maWxlCisrcm1kaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAorKwor K2lmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4KKysgIGFzX21rZGlyX3A9J21rZGlyIC1w ICIkYXNfZGlyIicKKytlbHNlCisrICB0ZXN0IC1kIC4vLXAgJiYgcm1kaXIgLi8tcAorKyAgYXNf bWtkaXJfcD1mYWxzZQorK2ZpCisrCisraWYgdGVzdCAteCAvID4vZGV2L251bGwgMj4mMTsgdGhl bgorKyAgYXNfdGVzdF94PSd0ZXN0IC14JworK2Vsc2UKKysgIGlmIGxzIC1kTCAvID4vZGV2L251 bGwgMj4mMTsgdGhlbgorKyAgICBhc19sc19MX29wdGlvbj1MCisrICBlbHNlCisrICAgIGFzX2xz X0xfb3B0aW9uPQorKyAgZmkKKysgIGFzX3Rlc3RfeD0nCisrICAgIGV2YWwgc2ggLWMgJ1wnJwor KyAgICAgIGlmIHRlc3QgLWQgIiQxIjsgdGhlbgorKwl0ZXN0IC1kICIkMS8uIjsKKysgICAgICBl bHNlCisrCWNhc2UgJDEgaW4gIygKKysJLSopc2V0ICIuLyQxIjs7CisrCWVzYWM7CisrCWNhc2Ug YGxzIC1sZCckYXNfbHNfTF9vcHRpb24nICIkMSIgMj4vZGV2L251bGxgIGluICMoKAorKwk/Pz9b c3hdKik6OzsqKWZhbHNlOztlc2FjO2ZpCisrICAgICdcJycgc2gKKysgICcKKytmaQorK2FzX2V4 ZWN1dGFibGVfcD0kYXNfdGVzdF94CisrCisrIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJp bmcgb250byBhIHZhbGlkIENQUCBuYW1lLgorK2FzX3RyX2NwcD0iZXZhbCBzZWQgJ3klKiRhc19j cl9sZXR0ZXJzJVAkYXNfY3JfTEVUVEVSUyU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCisrCisr IyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZhcmlhYmxlIG5h bWUuCisrYXNfdHJfc2g9ImV2YWwgc2VkICd5JSorJXBwJTtzJVteXyRhc19jcl9hbG51bV0lXyVn JyIKKysKKytTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQorKworKworK3Rlc3QgLW4gIiRE SkRJUiIgfHwgZXhlYyA3PCYwIDwvZGV2L251bGwKKytleGVjIDY+JjEKKysKKysjIE5hbWUgb2Yg dGhlIGhvc3QuCisrIyBob3N0bmFtZSBvbiBzb21lIHN5c3RlbXMgKFNWUjMuMiwgb2xkIEdOVS9M aW51eCkgcmV0dXJucyBhIGJvZ3VzIGV4aXQgc3RhdHVzLAorKyMgc28gdW5hbWUgZ2V0cyBydW4g dG9vLgorK2FjX2hvc3RuYW1lPWAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwg c2VkIDFxYAorKworKyMKKysjIEluaXRpYWxpemF0aW9ucy4KKysjCisrYWNfZGVmYXVsdF9wcmVm aXg9L3Vzci9sb2NhbAorK2FjX2NsZWFuX2ZpbGVzPQorK2FjX2NvbmZpZ19saWJvYmpfZGlyPS4K KytMSUJPQkpTPQorK2Nyb3NzX2NvbXBpbGluZz1ubworK3N1YmRpcnM9CisrTUZMQUdTPQorK01B S0VGTEFHUz0KKysKKysjIElkZW50aXR5IG9mIHRoaXMgcGFja2FnZS4KKytQQUNLQUdFX05BTUU9 J1NPQ0knCisrUEFDS0FHRV9UQVJOQU1FPSdzb2NpJworK1BBQ0tBR0VfVkVSU0lPTj0nMy4wLjAn CisrUEFDS0FHRV9TVFJJTkc9J1NPQ0kgMy4wLjAnCisrUEFDS0FHRV9CVUdSRVBPUlQ9J21zb2Jj emFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldCcKKytQQUNLQUdFX1VSTD0nJworKworK2FjX3VuaXF1 ZV9maWxlPSJzb2NpL2NvcmUvZXJyb3IuY3BwIgorKyMgRmFjdG9yaW5nIGRlZmF1bHQgaGVhZGVy cyBmb3IgbW9zdCB0ZXN0cy4KKythY19pbmNsdWRlc19kZWZhdWx0PSJcCisrI2luY2x1ZGUgPHN0 ZGlvLmg+CisrI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKKysjIGluY2x1ZGUgPHN5cy90eXBlcy5o PgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX1NZU19TVEFUX0gKKysjIGluY2x1ZGUgPHN5cy9zdGF0 Lmg+CisrI2VuZGlmCisrI2lmZGVmIFNURENfSEVBREVSUworKyMgaW5jbHVkZSA8c3RkbGliLmg+ CisrIyBpbmNsdWRlIDxzdGRkZWYuaD4KKysjZWxzZQorKyMgaWZkZWYgSEFWRV9TVERMSUJfSAor KyMgIGluY2x1ZGUgPHN0ZGxpYi5oPgorKyMgZW5kaWYKKysjZW5kaWYKKysjaWZkZWYgSEFWRV9T VFJJTkdfSAorKyMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1P UllfSAorKyMgIGluY2x1ZGUgPG1lbW9yeS5oPgorKyMgZW5kaWYKKysjIGluY2x1ZGUgPHN0cmlu Zy5oPgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX1NUUklOR1NfSAorKyMgaW5jbHVkZSA8c3RyaW5n cy5oPgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKKysjIGluY2x1ZGUgPGludHR5 cGVzLmg+CisrI2VuZGlmCisrI2lmZGVmIEhBVkVfU1RESU5UX0gKKysjIGluY2x1ZGUgPHN0ZGlu dC5oPgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX1VOSVNURF9ICisrIyBpbmNsdWRlIDx1bmlzdGQu aD4KKysjZW5kaWYiCisrCisrYWNfc3Vic3RfdmFycz0nYW1fX0VYRUVYVF9GQUxTRQorK2FtX19F WEVFWFRfVFJVRQorK0xUTElCT0JKUworK0xJQk9CSlMKKytSVU5fVEVTVFNfRkFMU0UKKytSVU5f VEVTVFNfVFJVRQorK3NlZF9vaworK2RpZmZfb2sKKytIVE1MX0RPQ19GQUxTRQorK0hUTUxfRE9D X1RSVUUKKytQRVJMCisrZ3Nfb2sKKytkdmlwc19vaworK2xhdGV4X29rCisrZG94eWdlbl9vawor K0lORk9fRE9DX0ZBTFNFCisrSU5GT19ET0NfVFJVRQorK1BPU1RHUkVTUUxfRElSUworK0hBVkVf UE9TVEdSRVNRTF9GQUxTRQorK0hBVkVfUE9TVEdSRVNRTF9UUlVFCisrUE9TVEdSRVNRTF9MREZM QUdTCisrUE9TVEdSRVNRTF9DRkxBR1MKKytQT1NUR1JFU1FMX1ZFUlNJT04KKytQR19DT05GSUcK KytPUkFDTEVfRElSUworK0hBVkVfT1JBQ0xFX0ZBTFNFCisrSEFWRV9PUkFDTEVfVFJVRQorK09S QUNMRV9PQ0lfTERGTEFHUworK09SQUNMRV9PQ0lfQ0ZMQUdTCisrT1JBQ0xFX09DSV9WRVJTSU9O CisrTVlTUUxfRElSUworK0hBVkVfTVlTUUxfRkFMU0UKKytIQVZFX01ZU1FMX1RSVUUKKytNWVNR TF9DX0xJQgorK01ZU1FMX0xJQlMKKytNWVNRTF9DRkxBR1MKKytNWVNRTF9WRVJTSU9OCisrQk9P U1RfVkVSU0lPTgorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCCisrQk9PU1RfTVBJX1BZ VEhPTl9MSUIKKytCT09TVF9NUElfTElCCisrQk9PU1RfUFlUSE9OX0xJQgorK0JPT1NUX1JFR0VY X0xJQgorK0JPT1NUX0RBVEVfVElNRV9MSUIKKytCT09TVF9TSUdOQUxTX0xJQgorK0JPT1NUX1dT RVJJQUxJWkFUSU9OX0xJQgorK0JPT1NUX1NFUklBTElaQVRJT05fTElCCisrQk9PU1RfSU9TVFJF QU1TX0xJQgorK0JPT1NUX1RIUkVBRF9MSUIKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCCisr Qk9PU1RfU1lTVEVNX0xJQgorK0JPT1NUX0ZJTEVTWVNURU1fTElCCisrQk9PU1RfTElCUworK0JP T1NUX0NGTEFHUworK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRAorK1NPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRQorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF RF9UUlVFCisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRAorK1NPQ0lfTVlTUUxfSEVBREVSU19C VVJJRURfRkFMU0UKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX1RSVUUKKytTT0NJX0hFQURF UlNfQlVSSUVECisrU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRQorK1NPQ0lfSEVBREVSU19CVVJJ RURfVFJVRQorK0NQUAorK09UT09MNjQKKytPVE9PTAorK0xJUE8KKytOTUVESVQKKytEU1lNVVRJ TAorK1JBTkxJQgorK0FSCisrT0JKRFVNUAorK0xOX1MKKytOTQorK2FjX2N0X0RVTVBCSU4KKytE VU1QQklOCisrTEQKKytGR1JFUAorK0VHUkVQCisrR1JFUAorK1NFRAorK2FtX19mYXN0ZGVwQ0Nf RkFMU0UKKythbV9fZmFzdGRlcENDX1RSVUUKKytDQ0RFUE1PREUKKythY19jdF9DQworK0NGTEFH UworK0NDCisrTElCVE9PTAorK0NYWENQUAorK2FtX19mYXN0ZGVwQ1hYX0ZBTFNFCisrYW1fX2Zh c3RkZXBDWFhfVFJVRQorK0NYWERFUE1PREUKKytBTURFUEJBQ0tTTEFTSAorK0FNREVQX0ZBTFNF CisrQU1ERVBfVFJVRQorK2FtX19xdW90ZQorK2FtX19pbmNsdWRlCisrREVQRElSCisrT0JKRVhU CisrRVhFRVhUCisrYWNfY3RfQ1hYCisrQ1BQRkxBR1MKKytMREZMQUdTCisrQ1hYRkxBR1MKKytD WFgKKytob3N0X29zCisraG9zdF92ZW5kb3IKKytob3N0X2NwdQorK2hvc3QKKytidWlsZF9vcwor K2J1aWxkX3ZlbmRvcgorK2J1aWxkX2NwdQorK2J1aWxkCisrVVBMT0FEX0NPTU1BTkQKKytHRU5F UklDX0xJQlJBUllfVkVSU0lPTgorK0hBVkVfQ1BQVU5JVF9GQUxTRQorK0hBVkVfQ1BQVU5JVF9U UlVFCisrQ1BQVU5JVF9WRVJTSU9OCisrQ1BQVU5JVF9MSUJTCisrQ1BQVU5JVF9DRkxBR1MKKytD UFBVTklUX0NPTkZJRworK2FtX191bnRhcgorK2FtX190YXIKKytBTVRBUgorK2FtX19sZWFkaW5n X2RvdAorK1NFVF9NQUtFCisrQVdLCisrbWtkaXJfcAorK01LRElSX1AKKytJTlNUQUxMX1NUUklQ X1BST0dSQU0KKytTVFJJUAorK2luc3RhbGxfc2gKKytNQUtFSU5GTworK0FVVE9IRUFERVIKKytB VVRPTUFLRQorK0FVVE9DT05GCisrQUNMT0NBTAorK1ZFUlNJT04KKytQQUNLQUdFCisrQ1lHUEFU SF9XCisrYW1fX2lzcmMKKytJTlNUQUxMX0RBVEEKKytJTlNUQUxMX1NDUklQVAorK0lOU1RBTExf UFJPR1JBTQorK3RhcmdldF9hbGlhcworK2hvc3RfYWxpYXMKKytidWlsZF9hbGlhcworK0xJQlMK KytFQ0hPX1QKKytFQ0hPX04KKytFQ0hPX0MKKytERUZTCisrbWFuZGlyCisrbG9jYWxlZGlyCisr bGliZGlyCisrcHNkaXIKKytwZGZkaXIKKytkdmlkaXIKKytodG1sZGlyCisraW5mb2RpcgorK2Rv Y2RpcgorK29sZGluY2x1ZGVkaXIKKytpbmNsdWRlZGlyCisrbG9jYWxzdGF0ZWRpcgorK3NoYXJl ZHN0YXRlZGlyCisrc3lzY29uZmRpcgorK2RhdGFkaXIKKytkYXRhcm9vdGRpcgorK2xpYmV4ZWNk aXIKKytzYmluZGlyCisrYmluZGlyCisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZQorK3ByZWZpeAor K2V4ZWNfcHJlZml4CisrUEFDS0FHRV9VUkwKKytQQUNLQUdFX0JVR1JFUE9SVAorK1BBQ0tBR0Vf U1RSSU5HCisrUEFDS0FHRV9WRVJTSU9OCisrUEFDS0FHRV9UQVJOQU1FCisrUEFDS0FHRV9OQU1F CisrUEFUSF9TRVBBUkFUT1IKKytTSEVMTCcKKythY19zdWJzdF9maWxlcz0nJworK2FjX3VzZXJf b3B0cz0nCisrZW5hYmxlX29wdGlvbl9jaGVja2luZworK3dpdGhfY3BwdW5pdF9wcmVmaXgKKyt3 aXRoX2NwcHVuaXRfZXhlY19wcmVmaXgKKytlbmFibGVfc2hhcmVkCisrZW5hYmxlX3N0YXRpYwor K2VuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nCisrd2l0aF9waWMKKytlbmFibGVfZmFzdF9pbnN0 YWxsCisrd2l0aF9nbnVfbGQKKytlbmFibGVfbGlidG9vbF9sb2NrCisrZW5hYmxlX2V4Y2VwdGlv bnMKKytlbmFibGVfaW5mb19kb2MKKytlbmFibGVfaHRtbF9kb2MKKyt3aXRoX2RvY2RpcgorK2Vu YWJsZV9idXJyaWVkX2hlYWRlcnMKKytlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzCisrZW5h YmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzCisrd2l0aF9ib29zdAorK2VuYWJsZV9iYWNr ZW5kX215c3FsCisrd2l0aF9teXNxbAorK3dpdGhfbXlzcWxfbGliCisrd2l0aF9teXNxbF9pbmNs dWRlCisrZW5hYmxlX2JhY2tlbmRfb3JhY2xlCisrd2l0aF9vcmFjbGUKKyt3aXRoX29yYWNsZV9p bmNsdWRlCisrd2l0aF9vcmFjbGVfbGliCisrZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbAorK3dp dGhfcG9zdGdyZXNxbAorKycKKysgICAgICBhY19wcmVjaW91c192YXJzPSdidWlsZF9hbGlhcwor K2hvc3RfYWxpYXMKKyt0YXJnZXRfYWxpYXMKKytDWFgKKytDWFhGTEFHUworK0xERkxBR1MKKytM SUJTCisrQ1BQRkxBR1MKKytDQ0MKKytDWFhDUFAKKytDQworK0NGTEFHUworK0NQUCcKKysKKysK KysjIEluaXRpYWxpemUgc29tZSB2YXJpYWJsZXMgc2V0IGJ5IG9wdGlvbnMuCisrYWNfaW5pdF9o ZWxwPQorK2FjX2luaXRfdmVyc2lvbj1mYWxzZQorK2FjX3VucmVjb2duaXplZF9vcHRzPQorK2Fj X3VucmVjb2duaXplZF9zZXA9CisrIyBUaGUgdmFyaWFibGVzIGhhdmUgdGhlIHNhbWUgbmFtZXMg YXMgdGhlIG9wdGlvbnMsIHdpdGgKKysjIGRhc2hlcyBjaGFuZ2VkIHRvIHVuZGVybGluZXMuCisr Y2FjaGVfZmlsZT0vZGV2L251bGwKKytleGVjX3ByZWZpeD1OT05FCisrbm9fY3JlYXRlPQorK25v X3JlY3Vyc2lvbj0KKytwcmVmaXg9Tk9ORQorK3Byb2dyYW1fcHJlZml4PU5PTkUKKytwcm9ncmFt X3N1ZmZpeD1OT05FCisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1zLHgseCwKKytzaWxlbnQ9Cisr c2l0ZT0KKytzcmNkaXI9CisrdmVyYm9zZT0KKyt4X2luY2x1ZGVzPU5PTkUKKyt4X2xpYnJhcmll cz1OT05FCisrCisrIyBJbnN0YWxsYXRpb24gZGlyZWN0b3J5IG9wdGlvbnMuCisrIyBUaGVzZSBh cmUgbGVmdCB1bmV4cGFuZGVkIHNvIHVzZXJzIGNhbiAibWFrZSBpbnN0YWxsIGV4ZWNfcHJlZml4 PS9mb28iCisrIyBhbmQgYWxsIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgc3VwcG9zZWQgdG8gYmUg YmFzZWQgb24gZXhlY19wcmVmaXgKKysjIGJ5IGRlZmF1bHQgd2lsbCBhY3R1YWxseSBjaGFuZ2Uu CisrIyBVc2UgYnJhY2VzIGluc3RlYWQgb2YgcGFyZW5zIGJlY2F1c2Ugc2gsIHBlcmwsIGV0Yy4g YWxzbyBhY2NlcHQgdGhlbS4KKysjIChUaGUgbGlzdCBmb2xsb3dzIHRoZSBzYW1lIG9yZGVyIGFz IHRoZSBHTlUgQ29kaW5nIFN0YW5kYXJkcy4pCisrYmluZGlyPScke2V4ZWNfcHJlZml4fS9iaW4n Cisrc2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vc2JpbicKKytsaWJleGVjZGlyPScke2V4ZWNfcHJl Zml4fS9saWJleGVjJworK2RhdGFyb290ZGlyPScke3ByZWZpeH0vc2hhcmUnCisrZGF0YWRpcj0n JHtkYXRhcm9vdGRpcn0nCisrc3lzY29uZmRpcj0nJHtwcmVmaXh9L2V0YycKKytzaGFyZWRzdGF0 ZWRpcj0nJHtwcmVmaXh9L2NvbScKKytsb2NhbHN0YXRlZGlyPScke3ByZWZpeH0vdmFyJworK2lu Y2x1ZGVkaXI9JyR7cHJlZml4fS9pbmNsdWRlJworK29sZGluY2x1ZGVkaXI9Jy91c3IvaW5jbHVk ZScKKytkb2NkaXI9JyR7ZGF0YXJvb3RkaXJ9L2RvYy8ke1BBQ0tBR0VfVEFSTkFNRX0nCisraW5m b2Rpcj0nJHtkYXRhcm9vdGRpcn0vaW5mbycKKytodG1sZGlyPScke2RvY2Rpcn0nCisrZHZpZGly PScke2RvY2Rpcn0nCisrcGRmZGlyPScke2RvY2Rpcn0nCisrcHNkaXI9JyR7ZG9jZGlyfScKKyts aWJkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYicKKytsb2NhbGVkaXI9JyR7ZGF0YXJvb3RkaXJ9L2xv Y2FsZScKKyttYW5kaXI9JyR7ZGF0YXJvb3RkaXJ9L21hbicKKysKKythY19wcmV2PQorK2FjX2Rh c2hkYXNoPQorK2ZvciBhY19vcHRpb24KKytkbworKyAgIyBJZiB0aGUgcHJldmlvdXMgb3B0aW9u IG5lZWRzIGFuIGFyZ3VtZW50LCBhc3NpZ24gaXQuCisrICBpZiB0ZXN0IC1uICIkYWNfcHJldiI7 IHRoZW4KKysgICAgZXZhbCAkYWNfcHJldj1cJGFjX29wdGlvbgorKyAgICBhY19wcmV2PQorKyAg ICBjb250aW51ZQorKyAgZmkKKysKKysgIGNhc2UgJGFjX29wdGlvbiBpbgorKyAgKj0qKQlhY19v cHRhcmc9YGV4cHIgIlgkYWNfb3B0aW9uIiA6ICdbXj1dKj1cKC4qXCknYCA7OworKyAgKikJYWNf b3B0YXJnPXllcyA7OworKyAgZXNhYworKworKyAgIyBBY2NlcHQgdGhlIGltcG9ydGFudCBDeWdu dXMgY29uZmlndXJlIG9wdGlvbnMsIHNvIHdlIGNhbiBkaWFnbm9zZSB0eXBvcy4KKysKKysgIGNh c2UgJGFjX2Rhc2hkYXNoJGFjX29wdGlvbiBpbgorKyAgLS0pCisrICAgIGFjX2Rhc2hkYXNoPXll cyA7OworKworKyAgLWJpbmRpciB8IC0tYmluZGlyIHwgLS1iaW5kaSB8IC0tYmluZCB8IC0tYmlu IHwgLS1iaSkKKysgICAgYWNfcHJldj1iaW5kaXIgOzsKKysgIC1iaW5kaXI9KiB8IC0tYmluZGly PSogfCAtLWJpbmRpPSogfCAtLWJpbmQ9KiB8IC0tYmluPSogfCAtLWJpPSopCisrICAgIGJpbmRp cj0kYWNfb3B0YXJnIDs7CisrCisrICAtYnVpbGQgfCAtLWJ1aWxkIHwgLS1idWlsIHwgLS1idWkg fCAtLWJ1KQorKyAgICBhY19wcmV2PWJ1aWxkX2FsaWFzIDs7CisrICAtYnVpbGQ9KiB8IC0tYnVp bGQ9KiB8IC0tYnVpbD0qIHwgLS1idWk9KiB8IC0tYnU9KikKKysgICAgYnVpbGRfYWxpYXM9JGFj X29wdGFyZyA7OworKworKyAgLWNhY2hlLWZpbGUgfCAtLWNhY2hlLWZpbGUgfCAtLWNhY2hlLWZp bCB8IC0tY2FjaGUtZmkgXAorKyAgfCAtLWNhY2hlLWYgfCAtLWNhY2hlLSB8IC0tY2FjaGUgfCAt LWNhY2ggfCAtLWNhYyB8IC0tY2EgfCAtLWMpCisrICAgIGFjX3ByZXY9Y2FjaGVfZmlsZSA7Owor KyAgLWNhY2hlLWZpbGU9KiB8IC0tY2FjaGUtZmlsZT0qIHwgLS1jYWNoZS1maWw9KiB8IC0tY2Fj aGUtZmk9KiBcCisrICB8IC0tY2FjaGUtZj0qIHwgLS1jYWNoZS09KiB8IC0tY2FjaGU9KiB8IC0t Y2FjaD0qIHwgLS1jYWM9KiB8IC0tY2E9KiB8IC0tYz0qKQorKyAgICBjYWNoZV9maWxlPSRhY19v cHRhcmcgOzsKKysKKysgIC0tY29uZmlnLWNhY2hlIHwgLUMpCisrICAgIGNhY2hlX2ZpbGU9Y29u ZmlnLmNhY2hlIDs7CisrCisrICAtZGF0YWRpciB8IC0tZGF0YWRpciB8IC0tZGF0YWRpIHwgLS1k YXRhZCkKKysgICAgYWNfcHJldj1kYXRhZGlyIDs7CisrICAtZGF0YWRpcj0qIHwgLS1kYXRhZGly PSogfCAtLWRhdGFkaT0qIHwgLS1kYXRhZD0qKQorKyAgICBkYXRhZGlyPSRhY19vcHRhcmcgOzsK KysKKysgIC1kYXRhcm9vdGRpciB8IC0tZGF0YXJvb3RkaXIgfCAtLWRhdGFyb290ZGkgfCAtLWRh dGFyb290ZCB8IC0tZGF0YXJvb3QgXAorKyAgfCAtLWRhdGFyb28gfCAtLWRhdGFybyB8IC0tZGF0 YXIpCisrICAgIGFjX3ByZXY9ZGF0YXJvb3RkaXIgOzsKKysgIC1kYXRhcm9vdGRpcj0qIHwgLS1k YXRhcm9vdGRpcj0qIHwgLS1kYXRhcm9vdGRpPSogfCAtLWRhdGFyb290ZD0qIFwKKysgIHwgLS1k YXRhcm9vdD0qIHwgLS1kYXRhcm9vPSogfCAtLWRhdGFybz0qIHwgLS1kYXRhcj0qKQorKyAgICBk YXRhcm9vdGRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtZGlzYWJsZS0qIHwgLS1kaXNhYmxlLSop CisrICAgIGFjX3VzZXJvcHQ9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSpkaXNhYmxlLVwoLipc KSdgCisrICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJs ZSBuYW1lcy4KKysgICAgZXhwciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19jcl9hbG51 bV0iID4vZGV2L251bGwgJiYKKysgICAgICBhc19mbl9lcnJvciAkPyAiaW52YWxpZCBmZWF0dXJl IG5hbWU6ICRhY191c2Vyb3B0IgorKyAgICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKKysg ICAgYWNfdXNlcm9wdD1gJGFzX2VjaG8gIiRhY191c2Vyb3B0IiB8IHNlZCAncy9bLSsuXS9fL2cn YAorKyAgICBjYXNlICRhY191c2VyX29wdHMgaW4KKysgICAgICAqIgorKyJlbmFibGVfJGFjX3Vz ZXJvcHQiCisrIiopIDs7CisrICAgICAgKikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJl Y29nbml6ZWRfb3B0cyRhY191bnJlY29nbml6ZWRfc2VwLS1kaXNhYmxlLSRhY191c2Vyb3B0X29y aWciCisrCSBhY191bnJlY29nbml6ZWRfc2VwPScsICc7OworKyAgICBlc2FjCisrICAgIGV2YWwg ZW5hYmxlXyRhY191c2Vyb3B0PW5vIDs7CisrCisrICAtZG9jZGlyIHwgLS1kb2NkaXIgfCAtLWRv Y2RpIHwgLS1kb2MgfCAtLWRvKQorKyAgICBhY19wcmV2PWRvY2RpciA7OworKyAgLWRvY2Rpcj0q IHwgLS1kb2NkaXI9KiB8IC0tZG9jZGk9KiB8IC0tZG9jPSogfCAtLWRvPSopCisrICAgIGRvY2Rp cj0kYWNfb3B0YXJnIDs7CisrCisrICAtZHZpZGlyIHwgLS1kdmlkaXIgfCAtLWR2aWRpIHwgLS1k dmlkIHwgLS1kdmkgfCAtLWR2KQorKyAgICBhY19wcmV2PWR2aWRpciA7OworKyAgLWR2aWRpcj0q IHwgLS1kdmlkaXI9KiB8IC0tZHZpZGk9KiB8IC0tZHZpZD0qIHwgLS1kdmk9KiB8IC0tZHY9KikK KysgICAgZHZpZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1lbmFibGUtKiB8IC0tZW5hYmxlLSop CisrICAgIGFjX3VzZXJvcHQ9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSplbmFibGUtXChbXj1d KlwpJ2AKKysgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlh YmxlIG5hbWVzLgorKyAgICBleHByICJ4JGFjX3VzZXJvcHQiIDogIi4qW14tKy5fJGFzX2NyX2Fs bnVtXSIgPi9kZXYvbnVsbCAmJgorKyAgICAgIGFzX2ZuX2Vycm9yICQ/ICJpbnZhbGlkIGZlYXR1 cmUgbmFtZTogJGFjX3VzZXJvcHQiCisrICAgIGFjX3VzZXJvcHRfb3JpZz0kYWNfdXNlcm9wdAor KyAgICBhY191c2Vyb3B0PWAkYXNfZWNobyAiJGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18v ZydgCisrICAgIGNhc2UgJGFjX3VzZXJfb3B0cyBpbgorKyAgICAgICoiCisrImVuYWJsZV8kYWNf dXNlcm9wdCIKKysiKikgOzsKKysgICAgICAqKSBhY191bnJlY29nbml6ZWRfb3B0cz0iJGFjX3Vu cmVjb2duaXplZF9vcHRzJGFjX3VucmVjb2duaXplZF9zZXAtLWVuYWJsZS0kYWNfdXNlcm9wdF9v cmlnIgorKwkgYWNfdW5yZWNvZ25pemVkX3NlcD0nLCAnOzsKKysgICAgZXNhYworKyAgICBldmFs IGVuYWJsZV8kYWNfdXNlcm9wdD1cJGFjX29wdGFyZyA7OworKworKyAgLWV4ZWMtcHJlZml4IHwg LS1leGVjX3ByZWZpeCB8IC0tZXhlYy1wcmVmaXggfCAtLWV4ZWMtcHJlZmkgXAorKyAgfCAtLWV4 ZWMtcHJlZiB8IC0tZXhlYy1wcmUgfCAtLWV4ZWMtcHIgfCAtLWV4ZWMtcCB8IC0tZXhlYy0gXAor KyAgfCAtLWV4ZWMgfCAtLWV4ZSB8IC0tZXgpCisrICAgIGFjX3ByZXY9ZXhlY19wcmVmaXggOzsK KysgIC1leGVjLXByZWZpeD0qIHwgLS1leGVjX3ByZWZpeD0qIHwgLS1leGVjLXByZWZpeD0qIHwg LS1leGVjLXByZWZpPSogXAorKyAgfCAtLWV4ZWMtcHJlZj0qIHwgLS1leGVjLXByZT0qIHwgLS1l eGVjLXByPSogfCAtLWV4ZWMtcD0qIHwgLS1leGVjLT0qIFwKKysgIHwgLS1leGVjPSogfCAtLWV4 ZT0qIHwgLS1leD0qKQorKyAgICBleGVjX3ByZWZpeD0kYWNfb3B0YXJnIDs7CisrCisrICAtZ2Fz IHwgLS1nYXMgfCAtLWdhIHwgLS1nKQorKyAgICAjIE9ic29sZXRlOyB1c2UgLS13aXRoLWdhcy4K KysgICAgd2l0aF9nYXM9eWVzIDs7CisrCisrICAtaGVscCB8IC0taGVscCB8IC0taGVsIHwgLS1o ZSB8IC1oKQorKyAgICBhY19pbml0X2hlbHA9bG9uZyA7OworKyAgLWhlbHA9ciogfCAtLWhlbHA9 ciogfCAtLWhlbD1yKiB8IC0taGU9ciogfCAtaHIqKQorKyAgICBhY19pbml0X2hlbHA9cmVjdXJz aXZlIDs7CisrICAtaGVscD1zKiB8IC0taGVscD1zKiB8IC0taGVsPXMqIHwgLS1oZT1zKiB8IC1o cyopCisrICAgIGFjX2luaXRfaGVscD1zaG9ydCA7OworKworKyAgLWhvc3QgfCAtLWhvc3QgfCAt LWhvcyB8IC0taG8pCisrICAgIGFjX3ByZXY9aG9zdF9hbGlhcyA7OworKyAgLWhvc3Q9KiB8IC0t aG9zdD0qIHwgLS1ob3M9KiB8IC0taG89KikKKysgICAgaG9zdF9hbGlhcz0kYWNfb3B0YXJnIDs7 CisrCisrICAtaHRtbGRpciB8IC0taHRtbGRpciB8IC0taHRtbGRpIHwgLS1odG1sZCB8IC0taHRt bCB8IC0taHRtIHwgLS1odCkKKysgICAgYWNfcHJldj1odG1sZGlyIDs7CisrICAtaHRtbGRpcj0q IHwgLS1odG1sZGlyPSogfCAtLWh0bWxkaT0qIHwgLS1odG1sZD0qIHwgLS1odG1sPSogfCAtLWh0 bT0qIFwKKysgIHwgLS1odD0qKQorKyAgICBodG1sZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1p bmNsdWRlZGlyIHwgLS1pbmNsdWRlZGlyIHwgLS1pbmNsdWRlZGkgfCAtLWluY2x1ZGVkIHwgLS1p bmNsdWRlIFwKKysgIHwgLS1pbmNsdWQgfCAtLWluY2x1IHwgLS1pbmNsIHwgLS1pbmMpCisrICAg IGFjX3ByZXY9aW5jbHVkZWRpciA7OworKyAgLWluY2x1ZGVkaXI9KiB8IC0taW5jbHVkZWRpcj0q IHwgLS1pbmNsdWRlZGk9KiB8IC0taW5jbHVkZWQ9KiB8IC0taW5jbHVkZT0qIFwKKysgIHwgLS1p bmNsdWQ9KiB8IC0taW5jbHU9KiB8IC0taW5jbD0qIHwgLS1pbmM9KikKKysgICAgaW5jbHVkZWRp cj0kYWNfb3B0YXJnIDs7CisrCisrICAtaW5mb2RpciB8IC0taW5mb2RpciB8IC0taW5mb2RpIHwg LS1pbmZvZCB8IC0taW5mbyB8IC0taW5mKQorKyAgICBhY19wcmV2PWluZm9kaXIgOzsKKysgIC1p bmZvZGlyPSogfCAtLWluZm9kaXI9KiB8IC0taW5mb2RpPSogfCAtLWluZm9kPSogfCAtLWluZm89 KiB8IC0taW5mPSopCisrICAgIGluZm9kaXI9JGFjX29wdGFyZyA7OworKworKyAgLWxpYmRpciB8 IC0tbGliZGlyIHwgLS1saWJkaSB8IC0tbGliZCkKKysgICAgYWNfcHJldj1saWJkaXIgOzsKKysg IC1saWJkaXI9KiB8IC0tbGliZGlyPSogfCAtLWxpYmRpPSogfCAtLWxpYmQ9KikKKysgICAgbGli ZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1saWJleGVjZGlyIHwgLS1saWJleGVjZGlyIHwgLS1s aWJleGVjZGkgfCAtLWxpYmV4ZWNkIHwgLS1saWJleGVjIFwKKysgIHwgLS1saWJleGUgfCAtLWxp YmV4IHwgLS1saWJlKQorKyAgICBhY19wcmV2PWxpYmV4ZWNkaXIgOzsKKysgIC1saWJleGVjZGly PSogfCAtLWxpYmV4ZWNkaXI9KiB8IC0tbGliZXhlY2RpPSogfCAtLWxpYmV4ZWNkPSogfCAtLWxp YmV4ZWM9KiBcCisrICB8IC0tbGliZXhlPSogfCAtLWxpYmV4PSogfCAtLWxpYmU9KikKKysgICAg bGliZXhlY2Rpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtbG9jYWxlZGlyIHwgLS1sb2NhbGVkaXIg fCAtLWxvY2FsZWRpIHwgLS1sb2NhbGVkIHwgLS1sb2NhbGUpCisrICAgIGFjX3ByZXY9bG9jYWxl ZGlyIDs7CisrICAtbG9jYWxlZGlyPSogfCAtLWxvY2FsZWRpcj0qIHwgLS1sb2NhbGVkaT0qIHwg LS1sb2NhbGVkPSogfCAtLWxvY2FsZT0qKQorKyAgICBsb2NhbGVkaXI9JGFjX29wdGFyZyA7Owor KworKyAgLWxvY2Fsc3RhdGVkaXIgfCAtLWxvY2Fsc3RhdGVkaXIgfCAtLWxvY2Fsc3RhdGVkaSB8 IC0tbG9jYWxzdGF0ZWQgXAorKyAgfCAtLWxvY2Fsc3RhdGUgfCAtLWxvY2Fsc3RhdCB8IC0tbG9j YWxzdGEgfCAtLWxvY2Fsc3QgfCAtLWxvY2FscykKKysgICAgYWNfcHJldj1sb2NhbHN0YXRlZGly IDs7CisrICAtbG9jYWxzdGF0ZWRpcj0qIHwgLS1sb2NhbHN0YXRlZGlyPSogfCAtLWxvY2Fsc3Rh dGVkaT0qIHwgLS1sb2NhbHN0YXRlZD0qIFwKKysgIHwgLS1sb2NhbHN0YXRlPSogfCAtLWxvY2Fs c3RhdD0qIHwgLS1sb2NhbHN0YT0qIHwgLS1sb2NhbHN0PSogfCAtLWxvY2Fscz0qKQorKyAgICBs b2NhbHN0YXRlZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1tYW5kaXIgfCAtLW1hbmRpciB8IC0t bWFuZGkgfCAtLW1hbmQgfCAtLW1hbiB8IC0tbWEgfCAtLW0pCisrICAgIGFjX3ByZXY9bWFuZGly IDs7CisrICAtbWFuZGlyPSogfCAtLW1hbmRpcj0qIHwgLS1tYW5kaT0qIHwgLS1tYW5kPSogfCAt LW1hbj0qIHwgLS1tYT0qIHwgLS1tPSopCisrICAgIG1hbmRpcj0kYWNfb3B0YXJnIDs7CisrCisr ICAtbmZwIHwgLS1uZnAgfCAtLW5mKQorKyAgICAjIE9ic29sZXRlOyB1c2UgLS13aXRob3V0LWZw LgorKyAgICB3aXRoX2ZwPW5vIDs7CisrCisrICAtbm8tY3JlYXRlIHwgLS1uby1jcmVhdGUgfCAt LW5vLWNyZWF0IHwgLS1uby1jcmVhIHwgLS1uby1jcmUgXAorKyAgfCAtLW5vLWNyIHwgLS1uby1j IHwgLW4pCisrICAgIG5vX2NyZWF0ZT15ZXMgOzsKKysKKysgIC1uby1yZWN1cnNpb24gfCAtLW5v LXJlY3Vyc2lvbiB8IC0tbm8tcmVjdXJzaW8gfCAtLW5vLXJlY3Vyc2kgXAorKyAgfCAtLW5vLXJl Y3VycyB8IC0tbm8tcmVjdXIgfCAtLW5vLXJlY3UgfCAtLW5vLXJlYyB8IC0tbm8tcmUgfCAtLW5v LXIpCisrICAgIG5vX3JlY3Vyc2lvbj15ZXMgOzsKKysKKysgIC1vbGRpbmNsdWRlZGlyIHwgLS1v bGRpbmNsdWRlZGlyIHwgLS1vbGRpbmNsdWRlZGkgfCAtLW9sZGluY2x1ZGVkIFwKKysgIHwgLS1v bGRpbmNsdWRlIHwgLS1vbGRpbmNsdWQgfCAtLW9sZGluY2x1IHwgLS1vbGRpbmNsIHwgLS1vbGRp bmMgXAorKyAgfCAtLW9sZGluIHwgLS1vbGRpIHwgLS1vbGQgfCAtLW9sIHwgLS1vKQorKyAgICBh Y19wcmV2PW9sZGluY2x1ZGVkaXIgOzsKKysgIC1vbGRpbmNsdWRlZGlyPSogfCAtLW9sZGluY2x1 ZGVkaXI9KiB8IC0tb2xkaW5jbHVkZWRpPSogfCAtLW9sZGluY2x1ZGVkPSogXAorKyAgfCAtLW9s ZGluY2x1ZGU9KiB8IC0tb2xkaW5jbHVkPSogfCAtLW9sZGluY2x1PSogfCAtLW9sZGluY2w9KiB8 IC0tb2xkaW5jPSogXAorKyAgfCAtLW9sZGluPSogfCAtLW9sZGk9KiB8IC0tb2xkPSogfCAtLW9s PSogfCAtLW89KikKKysgICAgb2xkaW5jbHVkZWRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtcHJl Zml4IHwgLS1wcmVmaXggfCAtLXByZWZpIHwgLS1wcmVmIHwgLS1wcmUgfCAtLXByIHwgLS1wKQor KyAgICBhY19wcmV2PXByZWZpeCA7OworKyAgLXByZWZpeD0qIHwgLS1wcmVmaXg9KiB8IC0tcHJl Zmk9KiB8IC0tcHJlZj0qIHwgLS1wcmU9KiB8IC0tcHI9KiB8IC0tcD0qKQorKyAgICBwcmVmaXg9 JGFjX29wdGFyZyA7OworKworKyAgLXByb2dyYW0tcHJlZml4IHwgLS1wcm9ncmFtLXByZWZpeCB8 IC0tcHJvZ3JhbS1wcmVmaSB8IC0tcHJvZ3JhbS1wcmVmIFwKKysgIHwgLS1wcm9ncmFtLXByZSB8 IC0tcHJvZ3JhbS1wciB8IC0tcHJvZ3JhbS1wKQorKyAgICBhY19wcmV2PXByb2dyYW1fcHJlZml4 IDs7CisrICAtcHJvZ3JhbS1wcmVmaXg9KiB8IC0tcHJvZ3JhbS1wcmVmaXg9KiB8IC0tcHJvZ3Jh bS1wcmVmaT0qIFwKKysgIHwgLS1wcm9ncmFtLXByZWY9KiB8IC0tcHJvZ3JhbS1wcmU9KiB8IC0t cHJvZ3JhbS1wcj0qIHwgLS1wcm9ncmFtLXA9KikKKysgICAgcHJvZ3JhbV9wcmVmaXg9JGFjX29w dGFyZyA7OworKworKyAgLXByb2dyYW0tc3VmZml4IHwgLS1wcm9ncmFtLXN1ZmZpeCB8IC0tcHJv Z3JhbS1zdWZmaSB8IC0tcHJvZ3JhbS1zdWZmIFwKKysgIHwgLS1wcm9ncmFtLXN1ZiB8IC0tcHJv Z3JhbS1zdSB8IC0tcHJvZ3JhbS1zKQorKyAgICBhY19wcmV2PXByb2dyYW1fc3VmZml4IDs7Cisr ICAtcHJvZ3JhbS1zdWZmaXg9KiB8IC0tcHJvZ3JhbS1zdWZmaXg9KiB8IC0tcHJvZ3JhbS1zdWZm aT0qIFwKKysgIHwgLS1wcm9ncmFtLXN1ZmY9KiB8IC0tcHJvZ3JhbS1zdWY9KiB8IC0tcHJvZ3Jh bS1zdT0qIHwgLS1wcm9ncmFtLXM9KikKKysgICAgcHJvZ3JhbV9zdWZmaXg9JGFjX29wdGFyZyA7 OworKworKyAgLXByb2dyYW0tdHJhbnNmb3JtLW5hbWUgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5h bWUgXAorKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbSB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0t bmEgXAorKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW4gfCAtLXByb2dyYW0tdHJhbnNmb3JtLSBc CisrICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0gfCAtLXByb2dyYW0tdHJhbnNmb3IgXAorKyAgfCAt LXByb2dyYW0tdHJhbnNmbyB8IC0tcHJvZ3JhbS10cmFuc2YgXAorKyAgfCAtLXByb2dyYW0tdHJh bnMgfCAtLXByb2dyYW0tdHJhbiBcCisrICB8IC0tcHJvZ3ItdHJhIHwgLS1wcm9ncmFtLXRyIHwg LS1wcm9ncmFtLXQpCisrICAgIGFjX3ByZXY9cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA7OworKyAg LXByb2dyYW0tdHJhbnNmb3JtLW5hbWU9KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZT0qIFwK KysgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW09KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmE9 KiBcCisrICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbj0qIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS09 KiBcCisrICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm09KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcj0qIFwK KysgIHwgLS1wcm9ncmFtLXRyYW5zZm89KiB8IC0tcHJvZ3JhbS10cmFuc2Y9KiBcCisrICB8IC0t cHJvZ3JhbS10cmFucz0qIHwgLS1wcm9ncmFtLXRyYW49KiBcCisrICB8IC0tcHJvZ3ItdHJhPSog fCAtLXByb2dyYW0tdHI9KiB8IC0tcHJvZ3JhbS10PSopCisrICAgIHByb2dyYW1fdHJhbnNmb3Jt X25hbWU9JGFjX29wdGFyZyA7OworKworKyAgLXBkZmRpciB8IC0tcGRmZGlyIHwgLS1wZGZkaSB8 IC0tcGRmZCB8IC0tcGRmIHwgLS1wZCkKKysgICAgYWNfcHJldj1wZGZkaXIgOzsKKysgIC1wZGZk aXI9KiB8IC0tcGRmZGlyPSogfCAtLXBkZmRpPSogfCAtLXBkZmQ9KiB8IC0tcGRmPSogfCAtLXBk PSopCisrICAgIHBkZmRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtcHNkaXIgfCAtLXBzZGlyIHwg LS1wc2RpIHwgLS1wc2QgfCAtLXBzKQorKyAgICBhY19wcmV2PXBzZGlyIDs7CisrICAtcHNkaXI9 KiB8IC0tcHNkaXI9KiB8IC0tcHNkaT0qIHwgLS1wc2Q9KiB8IC0tcHM9KikKKysgICAgcHNkaXI9 JGFjX29wdGFyZyA7OworKworKyAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwgLS1x dWkgfCAtLXF1IHwgLS1xIFwKKysgIHwgLXNpbGVudCB8IC0tc2lsZW50IHwgLS1zaWxlbiB8IC0t c2lsZSB8IC0tc2lsKQorKyAgICBzaWxlbnQ9eWVzIDs7CisrCisrICAtc2JpbmRpciB8IC0tc2Jp bmRpciB8IC0tc2JpbmRpIHwgLS1zYmluZCB8IC0tc2JpbiB8IC0tc2JpIHwgLS1zYikKKysgICAg YWNfcHJldj1zYmluZGlyIDs7CisrICAtc2JpbmRpcj0qIHwgLS1zYmluZGlyPSogfCAtLXNiaW5k aT0qIHwgLS1zYmluZD0qIHwgLS1zYmluPSogXAorKyAgfCAtLXNiaT0qIHwgLS1zYj0qKQorKyAg ICBzYmluZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1zaGFyZWRzdGF0ZWRpciB8IC0tc2hhcmVk c3RhdGVkaXIgfCAtLXNoYXJlZHN0YXRlZGkgXAorKyAgfCAtLXNoYXJlZHN0YXRlZCB8IC0tc2hh cmVkc3RhdGUgfCAtLXNoYXJlZHN0YXQgfCAtLXNoYXJlZHN0YSBcCisrICB8IC0tc2hhcmVkc3Qg fCAtLXNoYXJlZHMgfCAtLXNoYXJlZCB8IC0tc2hhcmUgfCAtLXNoYXIgXAorKyAgfCAtLXNoYSB8 IC0tc2gpCisrICAgIGFjX3ByZXY9c2hhcmVkc3RhdGVkaXIgOzsKKysgIC1zaGFyZWRzdGF0ZWRp cj0qIHwgLS1zaGFyZWRzdGF0ZWRpcj0qIHwgLS1zaGFyZWRzdGF0ZWRpPSogXAorKyAgfCAtLXNo YXJlZHN0YXRlZD0qIHwgLS1zaGFyZWRzdGF0ZT0qIHwgLS1zaGFyZWRzdGF0PSogfCAtLXNoYXJl ZHN0YT0qIFwKKysgIHwgLS1zaGFyZWRzdD0qIHwgLS1zaGFyZWRzPSogfCAtLXNoYXJlZD0qIHwg LS1zaGFyZT0qIHwgLS1zaGFyPSogXAorKyAgfCAtLXNoYT0qIHwgLS1zaD0qKQorKyAgICBzaGFy ZWRzdGF0ZWRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtc2l0ZSB8IC0tc2l0ZSB8IC0tc2l0KQor KyAgICBhY19wcmV2PXNpdGUgOzsKKysgIC1zaXRlPSogfCAtLXNpdGU9KiB8IC0tc2l0PSopCisr ICAgIHNpdGU9JGFjX29wdGFyZyA7OworKworKyAgLXNyY2RpciB8IC0tc3JjZGlyIHwgLS1zcmNk aSB8IC0tc3JjZCB8IC0tc3JjIHwgLS1zcikKKysgICAgYWNfcHJldj1zcmNkaXIgOzsKKysgIC1z cmNkaXI9KiB8IC0tc3JjZGlyPSogfCAtLXNyY2RpPSogfCAtLXNyY2Q9KiB8IC0tc3JjPSogfCAt LXNyPSopCisrICAgIHNyY2Rpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtc3lzY29uZmRpciB8IC0t c3lzY29uZmRpciB8IC0tc3lzY29uZmRpIHwgLS1zeXNjb25mZCB8IC0tc3lzY29uZiBcCisrICB8 IC0tc3lzY29uIHwgLS1zeXNjbyB8IC0tc3lzYyB8IC0tc3lzIHwgLS1zeSkKKysgICAgYWNfcHJl dj1zeXNjb25mZGlyIDs7CisrICAtc3lzY29uZmRpcj0qIHwgLS1zeXNjb25mZGlyPSogfCAtLXN5 c2NvbmZkaT0qIHwgLS1zeXNjb25mZD0qIHwgLS1zeXNjb25mPSogXAorKyAgfCAtLXN5c2Nvbj0q IHwgLS1zeXNjbz0qIHwgLS1zeXNjPSogfCAtLXN5cz0qIHwgLS1zeT0qKQorKyAgICBzeXNjb25m ZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC10YXJnZXQgfCAtLXRhcmdldCB8IC0tdGFyZ2UgfCAt LXRhcmcgfCAtLXRhciB8IC0tdGEgfCAtLXQpCisrICAgIGFjX3ByZXY9dGFyZ2V0X2FsaWFzIDs7 CisrICAtdGFyZ2V0PSogfCAtLXRhcmdldD0qIHwgLS10YXJnZT0qIHwgLS10YXJnPSogfCAtLXRh cj0qIHwgLS10YT0qIHwgLS10PSopCisrICAgIHRhcmdldF9hbGlhcz0kYWNfb3B0YXJnIDs7Cisr CisrICAtdiB8IC12ZXJib3NlIHwgLS12ZXJib3NlIHwgLS12ZXJib3MgfCAtLXZlcmJvIHwgLS12 ZXJiKQorKyAgICB2ZXJib3NlPXllcyA7OworKworKyAgLXZlcnNpb24gfCAtLXZlcnNpb24gfCAt LXZlcnNpbyB8IC0tdmVyc2kgfCAtLXZlcnMgfCAtVikKKysgICAgYWNfaW5pdF92ZXJzaW9uPTog OzsKKysKKysgIC13aXRoLSogfCAtLXdpdGgtKikKKysgICAgYWNfdXNlcm9wdD1gZXhwciAieCRh Y19vcHRpb24iIDogJ3gtKndpdGgtXChbXj1dKlwpJ2AKKysgICAgIyBSZWplY3QgbmFtZXMgdGhh dCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgorKyAgICBleHByICJ4JGFjX3Vz ZXJvcHQiIDogIi4qW14tKy5fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgorKyAgICAgIGFz X2ZuX2Vycm9yICQ/ICJpbnZhbGlkIHBhY2thZ2UgbmFtZTogJGFjX3VzZXJvcHQiCisrICAgIGFj X3VzZXJvcHRfb3JpZz0kYWNfdXNlcm9wdAorKyAgICBhY191c2Vyb3B0PWAkYXNfZWNobyAiJGFj X3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydgCisrICAgIGNhc2UgJGFjX3VzZXJfb3B0cyBp bgorKyAgICAgICoiCisrIndpdGhfJGFjX3VzZXJvcHQiCisrIiopIDs7CisrICAgICAgKikgYWNf dW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJlY29nbml6ZWRfb3B0cyRhY191bnJlY29nbml6ZWRf c2VwLS13aXRoLSRhY191c2Vyb3B0X29yaWciCisrCSBhY191bnJlY29nbml6ZWRfc2VwPScsICc7 OworKyAgICBlc2FjCisrICAgIGV2YWwgd2l0aF8kYWNfdXNlcm9wdD1cJGFjX29wdGFyZyA7Owor KworKyAgLXdpdGhvdXQtKiB8IC0td2l0aG91dC0qKQorKyAgICBhY191c2Vyb3B0PWBleHByICJ4 JGFjX29wdGlvbiIgOiAneC0qd2l0aG91dC1cKC4qXCknYAorKyAgICAjIFJlamVjdCBuYW1lcyB0 aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCisrICAgIGV4cHIgIngkYWNf dXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCisrICAgICAg YXNfZm5fZXJyb3IgJD8gImludmFsaWQgcGFja2FnZSBuYW1lOiAkYWNfdXNlcm9wdCIKKysgICAg YWNfdXNlcm9wdF9vcmlnPSRhY191c2Vyb3B0CisrICAgIGFjX3VzZXJvcHQ9YCRhc19lY2hvICIk YWNfdXNlcm9wdCIgfCBzZWQgJ3MvWy0rLl0vXy9nJ2AKKysgICAgY2FzZSAkYWNfdXNlcl9vcHRz IGluCisrICAgICAgKiIKKysid2l0aF8kYWNfdXNlcm9wdCIKKysiKikgOzsKKysgICAgICAqKSBh Y191bnJlY29nbml6ZWRfb3B0cz0iJGFjX3VucmVjb2duaXplZF9vcHRzJGFjX3VucmVjb2duaXpl ZF9zZXAtLXdpdGhvdXQtJGFjX3VzZXJvcHRfb3JpZyIKKysJIGFjX3VucmVjb2duaXplZF9zZXA9 JywgJzs7CisrICAgIGVzYWMKKysgICAgZXZhbCB3aXRoXyRhY191c2Vyb3B0PW5vIDs7CisrCisr ICAtLXgpCisrICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGgteC4KKysgICAgd2l0aF94PXllcyA7 OworKworKyAgLXgtaW5jbHVkZXMgfCAtLXgtaW5jbHVkZXMgfCAtLXgtaW5jbHVkZSB8IC0teC1p bmNsdWQgfCAtLXgtaW5jbHUgXAorKyAgfCAtLXgtaW5jbCB8IC0teC1pbmMgfCAtLXgtaW4gfCAt LXgtaSkKKysgICAgYWNfcHJldj14X2luY2x1ZGVzIDs7CisrICAteC1pbmNsdWRlcz0qIHwgLS14 LWluY2x1ZGVzPSogfCAtLXgtaW5jbHVkZT0qIHwgLS14LWluY2x1ZD0qIHwgLS14LWluY2x1PSog XAorKyAgfCAtLXgtaW5jbD0qIHwgLS14LWluYz0qIHwgLS14LWluPSogfCAtLXgtaT0qKQorKyAg ICB4X2luY2x1ZGVzPSRhY19vcHRhcmcgOzsKKysKKysgIC14LWxpYnJhcmllcyB8IC0teC1saWJy YXJpZXMgfCAtLXgtbGlicmFyaWUgfCAtLXgtbGlicmFyaSBcCisrICB8IC0teC1saWJyYXIgfCAt LXgtbGlicmEgfCAtLXgtbGliciB8IC0teC1saWIgfCAtLXgtbGkgfCAtLXgtbCkKKysgICAgYWNf cHJldj14X2xpYnJhcmllcyA7OworKyAgLXgtbGlicmFyaWVzPSogfCAtLXgtbGlicmFyaWVzPSog fCAtLXgtbGlicmFyaWU9KiB8IC0teC1saWJyYXJpPSogXAorKyAgfCAtLXgtbGlicmFyPSogfCAt LXgtbGlicmE9KiB8IC0teC1saWJyPSogfCAtLXgtbGliPSogfCAtLXgtbGk9KiB8IC0teC1sPSop CisrICAgIHhfbGlicmFyaWVzPSRhY19vcHRhcmcgOzsKKysKKysgIC0qKSBhc19mbl9lcnJvciAk PyAidW5yZWNvZ25pemVkIG9wdGlvbjogXGAkYWNfb3B0aW9uJworK1RyeSBcYCQwIC0taGVscCcg Zm9yIG1vcmUgaW5mb3JtYXRpb24iCisrICAgIDs7CisrCisrICAqPSopCisrICAgIGFjX2VudnZh cj1gZXhwciAieCRhY19vcHRpb24iIDogJ3hcKFtePV0qXCk9J2AKKysgICAgIyBSZWplY3QgbmFt ZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgorKyAgICBjYXNlICRh Y19lbnZ2YXIgaW4gIygKKysgICAgICAnJyB8IFswLTldKiB8ICpbIV8kYXNfY3JfYWxudW1dKiAp CisrICAgICAgYXNfZm5fZXJyb3IgJD8gImludmFsaWQgdmFyaWFibGUgbmFtZTogXGAkYWNfZW52 dmFyJyIgOzsKKysgICAgZXNhYworKyAgICBldmFsICRhY19lbnZ2YXI9XCRhY19vcHRhcmcKKysg ICAgZXhwb3J0ICRhY19lbnZ2YXIgOzsKKysKKysgICopCisrICAgICMgRklYTUU6IHNob3VsZCBi ZSByZW1vdmVkIGluIGF1dG9jb25mIDMuMC4KKysgICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklO RzogeW91IHNob3VsZCB1c2UgLS1idWlsZCwgLS1ob3N0LCAtLXRhcmdldCIgPiYyCisrICAgIGV4 cHIgIngkYWNfb3B0aW9uIiA6ICIuKlteLS5fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgor KyAgICAgICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGludmFsaWQgaG9zdCB0eXBlOiAkYWNf b3B0aW9uIiA+JjIKKysgICAgOiAke2J1aWxkX2FsaWFzPSRhY19vcHRpb259ICR7aG9zdF9hbGlh cz0kYWNfb3B0aW9ufSAke3RhcmdldF9hbGlhcz0kYWNfb3B0aW9ufQorKyAgICA7OworKworKyAg ZXNhYworK2RvbmUKKysKKytpZiB0ZXN0IC1uICIkYWNfcHJldiI7IHRoZW4KKysgIGFjX29wdGlv bj0tLWBlY2hvICRhY19wcmV2IHwgc2VkICdzL18vLS9nJ2AKKysgIGFzX2ZuX2Vycm9yICQ/ICJt aXNzaW5nIGFyZ3VtZW50IHRvICRhY19vcHRpb24iCisrZmkKKysKKytpZiB0ZXN0IC1uICIkYWNf dW5yZWNvZ25pemVkX29wdHMiOyB0aGVuCisrICBjYXNlICRlbmFibGVfb3B0aW9uX2NoZWNraW5n IGluCisrICAgIG5vKSA7OworKyAgICBmYXRhbCkgYXNfZm5fZXJyb3IgJD8gInVucmVjb2duaXpl ZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiIDs7CisrICAgICopICAgICAkYXNfZWNo byAiJGFzX21lOiBXQVJOSU5HOiB1bnJlY29nbml6ZWQgb3B0aW9uczogJGFjX3VucmVjb2duaXpl ZF9vcHRzIiA+JjIgOzsKKysgIGVzYWMKKytmaQorKworKyMgQ2hlY2sgYWxsIGRpcmVjdG9yeSBh cmd1bWVudHMgZm9yIGNvbnNpc3RlbmN5LgorK2ZvciBhY192YXIgaW4JZXhlY19wcmVmaXggcHJl Zml4IGJpbmRpciBzYmluZGlyIGxpYmV4ZWNkaXIgZGF0YXJvb3RkaXIgXAorKwkJZGF0YWRpciBz eXNjb25mZGlyIHNoYXJlZHN0YXRlZGlyIGxvY2Fsc3RhdGVkaXIgaW5jbHVkZWRpciBcCisrCQlv bGRpbmNsdWRlZGlyIGRvY2RpciBpbmZvZGlyIGh0bWxkaXIgZHZpZGlyIHBkZmRpciBwc2RpciBc CisrCQlsaWJkaXIgbG9jYWxlZGlyIG1hbmRpcgorK2RvCisrICBldmFsIGFjX3ZhbD1cJCRhY192 YXIKKysgICMgUmVtb3ZlIHRyYWlsaW5nIHNsYXNoZXMuCisrICBjYXNlICRhY192YWwgaW4KKysg ICAgKi8gKQorKyAgICAgIGFjX3ZhbD1gZXhwciAiWCRhY192YWwiIDogJ1hcKC4qW14vXVwpJyBc fCAiWCRhY192YWwiIDogJ1hcKC4qXCknYAorKyAgICAgIGV2YWwgJGFjX3Zhcj1cJGFjX3ZhbDs7 CisrICBlc2FjCisrICAjIEJlIHN1cmUgdG8gaGF2ZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZXMu CisrICBjYXNlICRhY192YWwgaW4KKysgICAgW1xcLyRdKiB8ID86W1xcL10qICkgIGNvbnRpbnVl OzsKKysgICAgTk9ORSB8ICcnICkgY2FzZSAkYWNfdmFyIGluICpwcmVmaXggKSBjb250aW51ZTs7 IGVzYWM7OworKyAgZXNhYworKyAgYXNfZm5fZXJyb3IgJD8gImV4cGVjdGVkIGFuIGFic29sdXRl IGRpcmVjdG9yeSBuYW1lIGZvciAtLSRhY192YXI6ICRhY192YWwiCisrZG9uZQorKworKyMgVGhl cmUgbWlnaHQgYmUgcGVvcGxlIHdobyBkZXBlbmQgb24gdGhlIG9sZCBicm9rZW4gYmVoYXZpb3I6 IGAkaG9zdCcKKysjIHVzZWQgdG8gaG9sZCB0aGUgYXJndW1lbnQgb2YgLS1ob3N0IGV0Yy4KKysj IEZJWE1FOiBUbyByZW1vdmUgc29tZSBkYXkuCisrYnVpbGQ9JGJ1aWxkX2FsaWFzCisraG9zdD0k aG9zdF9hbGlhcworK3RhcmdldD0kdGFyZ2V0X2FsaWFzCisrCisrIyBGSVhNRTogVG8gcmVtb3Zl IHNvbWUgZGF5LgorK2lmIHRlc3QgIngkaG9zdF9hbGlhcyIgIT0geDsgdGhlbgorKyAgaWYgdGVz dCAieCRidWlsZF9hbGlhcyIgPSB4OyB0aGVuCisrICAgIGNyb3NzX2NvbXBpbGluZz1tYXliZQor KyAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBpZiB5b3Ugd2FudGVkIHRvIHNldCB0aGUg LS1idWlsZCB0eXBlLCBkb24ndCB1c2UgLS1ob3N0LgorKyAgICBJZiBhIGNyb3NzIGNvbXBpbGVy IGlzIGRldGVjdGVkIHRoZW4gY3Jvc3MgY29tcGlsZSBtb2RlIHdpbGwgYmUgdXNlZCIgPiYyCisr ICBlbGlmIHRlc3QgIngkYnVpbGRfYWxpYXMiICE9ICJ4JGhvc3RfYWxpYXMiOyB0aGVuCisrICAg IGNyb3NzX2NvbXBpbGluZz15ZXMKKysgIGZpCisrZmkKKysKKythY190b29sX3ByZWZpeD0KKyt0 ZXN0IC1uICIkaG9zdF9hbGlhcyIgJiYgYWNfdG9vbF9wcmVmaXg9JGhvc3RfYWxpYXMtCisrCisr dGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYgZXhlYyA2Pi9kZXYvbnVsbAorKworKworK2FjX3B3ZD1g cHdkYCAmJiB0ZXN0IC1uICIkYWNfcHdkIiAmJgorK2FjX2xzX2RpPWBscyAtZGkgLmAgJiYKKyth Y19wd2RfbHNfZGk9YGNkICIkYWNfcHdkIiAmJiBscyAtZGkgLmAgfHwKKysgIGFzX2ZuX2Vycm9y ICQ/ICJ3b3JraW5nIGRpcmVjdG9yeSBjYW5ub3QgYmUgZGV0ZXJtaW5lZCIKKyt0ZXN0ICJYJGFj X2xzX2RpIiA9ICJYJGFjX3B3ZF9sc19kaSIgfHwKKysgIGFzX2ZuX2Vycm9yICQ/ICJwd2QgZG9l cyBub3QgcmVwb3J0IG5hbWUgb2Ygd29ya2luZyBkaXJlY3RvcnkiCisrCisrCisrIyBGaW5kIHRo ZSBzb3VyY2UgZmlsZXMsIGlmIGxvY2F0aW9uIHdhcyBub3Qgc3BlY2lmaWVkLgorK2lmIHRlc3Qg LXogIiRzcmNkaXIiOyB0aGVuCisrICBhY19zcmNkaXJfZGVmYXVsdGVkPXllcworKyAgIyBUcnkg dGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoaXMgc2NyaXB0LCB0aGVuIHRoZSBwYXJlbnQgZGly ZWN0b3J5LgorKyAgYWNfY29uZmRpcj1gJGFzX2Rpcm5hbWUgLS0gIiRhc19teXNlbGYiIHx8Cisr JGFzX2V4cHIgWCIkYXNfbXlzZWxmIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwg XAorKwkgWCIkYXNfbXlzZWxmIiA6ICdYXCgvL1wpW14vXScgXHwgXAorKwkgWCIkYXNfbXlzZWxm IiA6ICdYXCgvL1wpJCcgXHwgXAorKwkgWCIkYXNfbXlzZWxmIiA6ICdYXCgvXCknIFx8IC4gMj4v ZGV2L251bGwgfHwKKyskYXNfZWNobyBYIiRhc19teXNlbGYiIHwKKysgICAgc2VkICcvXlhcKC4q W14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0K KysJICAvXlhcKFwvXC9cKVteL10uKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9Cisr CSAgL15YXChcL1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhc KFwvXCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgcy8uKi8uLzsgcSdg CisrICBzcmNkaXI9JGFjX2NvbmZkaXIKKysgIGlmIHRlc3QgISAtciAiJHNyY2Rpci8kYWNfdW5p cXVlX2ZpbGUiOyB0aGVuCisrICAgIHNyY2Rpcj0uLgorKyAgZmkKKytlbHNlCisrICBhY19zcmNk aXJfZGVmYXVsdGVkPW5vCisrZmkKKytpZiB0ZXN0ICEgLXIgIiRzcmNkaXIvJGFjX3VuaXF1ZV9m aWxlIjsgdGhlbgorKyAgdGVzdCAiJGFjX3NyY2Rpcl9kZWZhdWx0ZWQiID0geWVzICYmIHNyY2Rp cj0iJGFjX2NvbmZkaXIgb3IgLi4iCisrICBhc19mbl9lcnJvciAkPyAiY2Fubm90IGZpbmQgc291 cmNlcyAoJGFjX3VuaXF1ZV9maWxlKSBpbiAkc3JjZGlyIgorK2ZpCisrYWNfbXNnPSJzb3VyY2Vz IGFyZSBpbiAkc3JjZGlyLCBidXQgXGBjZCAkc3JjZGlyJyBkb2VzIG5vdCB3b3JrIgorK2FjX2Fi c19jb25mZGlyPWAoCisrCWNkICIkc3JjZGlyIiAmJiB0ZXN0IC1yICIuLyRhY191bmlxdWVfZmls ZSIgfHwgYXNfZm5fZXJyb3IgJD8gIiRhY19tc2ciCisrCXB3ZClgCisrIyBXaGVuIGJ1aWxkaW5n IGluIHBsYWNlLCBzZXQgc3JjZGlyPS4KKytpZiB0ZXN0ICIkYWNfYWJzX2NvbmZkaXIiID0gIiRh Y19wd2QiOyB0aGVuCisrICBzcmNkaXI9LgorK2ZpCisrIyBSZW1vdmUgdW5uZWNlc3NhcnkgdHJh aWxpbmcgc2xhc2hlcyBmcm9tIHNyY2Rpci4KKysjIERvdWJsZSBzbGFzaGVzIGluIGZpbGUgbmFt ZXMgaW4gb2JqZWN0IGZpbGUgZGVidWdnaW5nIGluZm8KKysjIG1lc3MgdXAgTS14IGdkYiBpbiBF bWFjcy4KKytjYXNlICRzcmNkaXIgaW4KKysqLykgc3JjZGlyPWBleHByICJYJHNyY2RpciIgOiAn WFwoLipbXi9dXCknIFx8ICJYJHNyY2RpciIgOiAnWFwoLipcKSdgOzsKKytlc2FjCisrZm9yIGFj X3ZhciBpbiAkYWNfcHJlY2lvdXNfdmFyczsgZG8KKysgIGV2YWwgYWNfZW52XyR7YWNfdmFyfV9z ZXQ9XCR7JHthY192YXJ9K3NldH0KKysgIGV2YWwgYWNfZW52XyR7YWNfdmFyfV92YWx1ZT1cJCR7 YWNfdmFyfQorKyAgZXZhbCBhY19jdl9lbnZfJHthY192YXJ9X3NldD1cJHske2FjX3Zhcn0rc2V0 fQorKyAgZXZhbCBhY19jdl9lbnZfJHthY192YXJ9X3ZhbHVlPVwkJHthY192YXJ9CisrZG9uZQor KworKyMKKysjIFJlcG9ydCB0aGUgLS1oZWxwIG1lc3NhZ2UuCisrIworK2lmIHRlc3QgIiRhY19p bml0X2hlbHAiID0gImxvbmciOyB0aGVuCisrICAjIE9taXQgc29tZSBpbnRlcm5hbCBvciBvYnNv bGV0ZSBvcHRpb25zIHRvIG1ha2UgdGhlIGxpc3QgbGVzcyBpbXBvc2luZy4KKysgICMgVGhpcyBt ZXNzYWdlIGlzIHRvbyBsb25nIHRvIGJlIGEgc3RyaW5nIGluIHRoZSBBL1VYIDMuMSBzaC4KKysg IGNhdCA8PF9BQ0VPRgorK1xgY29uZmlndXJlJyBjb25maWd1cmVzIFNPQ0kgMy4wLjAgdG8gYWRh cHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgorKworK1VzYWdlOiAkMCBbT1BUSU9OXS4uLiBb VkFSPVZBTFVFXS4uLgorKworK1RvIGFzc2lnbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKGUuZy4s IENDLCBDRkxBR1MuLi4pLCBzcGVjaWZ5IHRoZW0gYXMKKytWQVI9VkFMVUUuICBTZWUgYmVsb3cg Zm9yIGRlc2NyaXB0aW9ucyBvZiBzb21lIG9mIHRoZSB1c2VmdWwgdmFyaWFibGVzLgorKworK0Rl ZmF1bHRzIGZvciB0aGUgb3B0aW9ucyBhcmUgc3BlY2lmaWVkIGluIGJyYWNrZXRzLgorKworK0Nv bmZpZ3VyYXRpb246CisrICAtaCwgLS1oZWxwICAgICAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVs cCBhbmQgZXhpdAorKyAgICAgIC0taGVscD1zaG9ydCAgICAgICAgZGlzcGxheSBvcHRpb25zIHNw ZWNpZmljIHRvIHRoaXMgcGFja2FnZQorKyAgICAgIC0taGVscD1yZWN1cnNpdmUgICAgZGlzcGxh eSB0aGUgc2hvcnQgaGVscCBvZiBhbGwgdGhlIGluY2x1ZGVkIHBhY2thZ2VzCisrICAtViwgLS12 ZXJzaW9uICAgICAgICAgICBkaXNwbGF5IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKKysg IC1xLCAtLXF1aWV0LCAtLXNpbGVudCAgIGRvIG5vdCBwcmludCBcYGNoZWNraW5nIC4uLicgbWVz c2FnZXMKKysgICAgICAtLWNhY2hlLWZpbGU9RklMRSAgIGNhY2hlIHRlc3QgcmVzdWx0cyBpbiBG SUxFIFtkaXNhYmxlZF0KKysgIC1DLCAtLWNvbmZpZy1jYWNoZSAgICAgIGFsaWFzIGZvciBcYC0t Y2FjaGUtZmlsZT1jb25maWcuY2FjaGUnCisrICAtbiwgLS1uby1jcmVhdGUgICAgICAgICBkbyBu b3QgY3JlYXRlIG91dHB1dCBmaWxlcworKyAgICAgIC0tc3JjZGlyPURJUiAgICAgICAgZmluZCB0 aGUgc291cmNlcyBpbiBESVIgW2NvbmZpZ3VyZSBkaXIgb3IgXGAuLiddCisrCisrSW5zdGFsbGF0 aW9uIGRpcmVjdG9yaWVzOgorKyAgLS1wcmVmaXg9UFJFRklYICAgICAgICAgaW5zdGFsbCBhcmNo aXRlY3R1cmUtaW5kZXBlbmRlbnQgZmlsZXMgaW4gUFJFRklYCisrICAgICAgICAgICAgICAgICAg ICAgICAgICBbJGFjX2RlZmF1bHRfcHJlZml4XQorKyAgLS1leGVjLXByZWZpeD1FUFJFRklYICAg aW5zdGFsbCBhcmNoaXRlY3R1cmUtZGVwZW5kZW50IGZpbGVzIGluIEVQUkVGSVgKKysgICAgICAg ICAgICAgICAgICAgICAgICAgIFtQUkVGSVhdCisrCisrQnkgZGVmYXVsdCwgXGBtYWtlIGluc3Rh bGwnIHdpbGwgaW5zdGFsbCBhbGwgdGhlIGZpbGVzIGluCisrXGAkYWNfZGVmYXVsdF9wcmVmaXgv YmluJywgXGAkYWNfZGVmYXVsdF9wcmVmaXgvbGliJyBldGMuICBZb3UgY2FuIHNwZWNpZnkKKyth biBpbnN0YWxsYXRpb24gcHJlZml4IG90aGVyIHRoYW4gXGAkYWNfZGVmYXVsdF9wcmVmaXgnIHVz aW5nIFxgLS1wcmVmaXgnLAorK2ZvciBpbnN0YW5jZSBcYC0tcHJlZml4PVwkSE9NRScuCisrCisr Rm9yIGJldHRlciBjb250cm9sLCB1c2UgdGhlIG9wdGlvbnMgYmVsb3cuCisrCisrRmluZSB0dW5p bmcgb2YgdGhlIGluc3RhbGxhdGlvbiBkaXJlY3RvcmllczoKKysgIC0tYmluZGlyPURJUiAgICAg ICAgICAgIHVzZXIgZXhlY3V0YWJsZXMgW0VQUkVGSVgvYmluXQorKyAgLS1zYmluZGlyPURJUiAg ICAgICAgICAgc3lzdGVtIGFkbWluIGV4ZWN1dGFibGVzIFtFUFJFRklYL3NiaW5dCisrICAtLWxp YmV4ZWNkaXI9RElSICAgICAgICBwcm9ncmFtIGV4ZWN1dGFibGVzIFtFUFJFRklYL2xpYmV4ZWNd CisrICAtLXN5c2NvbmZkaXI9RElSICAgICAgICByZWFkLW9ubHkgc2luZ2xlLW1hY2hpbmUgZGF0 YSBbUFJFRklYL2V0Y10KKysgIC0tc2hhcmVkc3RhdGVkaXI9RElSICAgIG1vZGlmaWFibGUgYXJj aGl0ZWN0dXJlLWluZGVwZW5kZW50IGRhdGEgW1BSRUZJWC9jb21dCisrICAtLWxvY2Fsc3RhdGVk aXI9RElSICAgICBtb2RpZmlhYmxlIHNpbmdsZS1tYWNoaW5lIGRhdGEgW1BSRUZJWC92YXJdCisr ICAtLWxpYmRpcj1ESVIgICAgICAgICAgICBvYmplY3QgY29kZSBsaWJyYXJpZXMgW0VQUkVGSVgv bGliXQorKyAgLS1pbmNsdWRlZGlyPURJUiAgICAgICAgQyBoZWFkZXIgZmlsZXMgW1BSRUZJWC9p bmNsdWRlXQorKyAgLS1vbGRpbmNsdWRlZGlyPURJUiAgICAgQyBoZWFkZXIgZmlsZXMgZm9yIG5v bi1nY2MgWy91c3IvaW5jbHVkZV0KKysgIC0tZGF0YXJvb3RkaXI9RElSICAgICAgIHJlYWQtb25s eSBhcmNoLi1pbmRlcGVuZGVudCBkYXRhIHJvb3QgW1BSRUZJWC9zaGFyZV0KKysgIC0tZGF0YWRp cj1ESVIgICAgICAgICAgIHJlYWQtb25seSBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZGF0YSBb REFUQVJPT1RESVJdCisrICAtLWluZm9kaXI9RElSICAgICAgICAgICBpbmZvIGRvY3VtZW50YXRp b24gW0RBVEFST09URElSL2luZm9dCisrICAtLWxvY2FsZWRpcj1ESVIgICAgICAgICBsb2NhbGUt ZGVwZW5kZW50IGRhdGEgW0RBVEFST09URElSL2xvY2FsZV0KKysgIC0tbWFuZGlyPURJUiAgICAg ICAgICAgIG1hbiBkb2N1bWVudGF0aW9uIFtEQVRBUk9PVERJUi9tYW5dCisrICAtLWRvY2Rpcj1E SVIgICAgICAgICAgICBkb2N1bWVudGF0aW9uIHJvb3QgW0RBVEFST09URElSL2RvYy9zb2NpXQor KyAgLS1odG1sZGlyPURJUiAgICAgICAgICAgaHRtbCBkb2N1bWVudGF0aW9uIFtET0NESVJdCisr ICAtLWR2aWRpcj1ESVIgICAgICAgICAgICBkdmkgZG9jdW1lbnRhdGlvbiBbRE9DRElSXQorKyAg LS1wZGZkaXI9RElSICAgICAgICAgICAgcGRmIGRvY3VtZW50YXRpb24gW0RPQ0RJUl0KKysgIC0t cHNkaXI9RElSICAgICAgICAgICAgIHBzIGRvY3VtZW50YXRpb24gW0RPQ0RJUl0KKytfQUNFT0YK KysKKysgIGNhdCA8PFxfQUNFT0YKKysKKytQcm9ncmFtIG5hbWVzOgorKyAgLS1wcm9ncmFtLXBy ZWZpeD1QUkVGSVggICAgICAgICAgICBwcmVwZW5kIFBSRUZJWCB0byBpbnN0YWxsZWQgcHJvZ3Jh bSBuYW1lcworKyAgLS1wcm9ncmFtLXN1ZmZpeD1TVUZGSVggICAgICAgICAgICBhcHBlbmQgU1VG RklYIHRvIGluc3RhbGxlZCBwcm9ncmFtIG5hbWVzCisrICAtLXByb2dyYW0tdHJhbnNmb3JtLW5h bWU9UFJPR1JBTSAgIHJ1biBzZWQgUFJPR1JBTSBvbiBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1lcwor KworK1N5c3RlbSB0eXBlczoKKysgIC0tYnVpbGQ9QlVJTEQgICAgIGNvbmZpZ3VyZSBmb3IgYnVp bGRpbmcgb24gQlVJTEQgW2d1ZXNzZWRdCisrICAtLWhvc3Q9SE9TVCAgICAgICBjcm9zcy1jb21w aWxlIHRvIGJ1aWxkIHByb2dyYW1zIHRvIHJ1biBvbiBIT1NUIFtCVUlMRF0KKytfQUNFT0YKKytm aQorKworK2lmIHRlc3QgLW4gIiRhY19pbml0X2hlbHAiOyB0aGVuCisrICBjYXNlICRhY19pbml0 X2hlbHAgaW4KKysgICAgIHNob3J0IHwgcmVjdXJzaXZlICkgZWNobyAiQ29uZmlndXJhdGlvbiBv ZiBTT0NJIDMuMC4wOiI7OworKyAgIGVzYWMKKysgIGNhdCA8PFxfQUNFT0YKKysKKytPcHRpb25h bCBGZWF0dXJlczoKKysgIC0tZGlzYWJsZS1vcHRpb24tY2hlY2tpbmcgIGlnbm9yZSB1bnJlY29n bml6ZWQgLS1lbmFibGUvLS13aXRoIG9wdGlvbnMKKysgIC0tZGlzYWJsZS1GRUFUVVJFICAgICAg IGRvIG5vdCBpbmNsdWRlIEZFQVRVUkUgKHNhbWUgYXMgLS1lbmFibGUtRkVBVFVSRT1ubykKKysg IC0tZW5hYmxlLUZFQVRVUkVbPUFSR10gIGluY2x1ZGUgRkVBVFVSRSBbQVJHPXllc10KKysgIC0t ZW5hYmxlLXNoYXJlZFs9UEtHU10gIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMgW2RlZmF1bHQ9bm9d CisrICAtLWVuYWJsZS1zdGF0aWNbPVBLR1NdICBidWlsZCBzdGF0aWMgbGlicmFyaWVzIFtkZWZh dWx0PXllc10KKysgIC0tZGlzYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICBzcGVlZHMgdXAgb25l LXRpbWUgYnVpbGQKKysgIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgICBkbyBub3QgcmVq ZWN0IHNsb3cgZGVwZW5kZW5jeSBleHRyYWN0b3JzCisrICAtLWVuYWJsZS1mYXN0LWluc3RhbGxb PVBLR1NdCisrICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0 YWxsYXRpb24gW2RlZmF1bHQ9eWVzXQorKyAgLS1kaXNhYmxlLWxpYnRvb2wtbG9jayAgYXZvaWQg bG9ja2luZyAobWlnaHQgYnJlYWsgcGFyYWxsZWwgYnVpbGRzKQorKyAgLS1lbmFibGUtZXhjZXB0 aW9ucyAgICAgZW5hYmxlIGV4Y2VwdGlvbnMgaGFuZGxpbmcgbWVjaGFuaXNtCisrICAtLWRpc2Fi bGUtaW5mby1kb2MgICAgICBkbyBub3QgZ2VuZXJhdGUgSW5mbyBkb2N1bWVudGF0aW9uCisrICAt LWRpc2FibGUtaHRtbC1kb2MgICAgICBkbyBub3QgZ2VuZXJhdGUgSFRNTCBkb2N1bWVudGF0aW9u CisrICAtLWVuYWJsZS1idXJyaWVkLWhlYWRlcnMKKysgICAgICAgICAgICAgICAgICAgICAgICAg IGluY2x1ZGUgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3Rvcnkgc3RydWN0dXJlCisrICAtLWVu YWJsZS1teXNxbC1idXJyaWVkLWhlYWRlcnMKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGlu Y2x1ZGUgTXlTUUwgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3RvcnkKKysgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdHVyZQorKyAgLS1lbmFibGUtcG9zdGdyZXNxbC1idXJyaWVkLWhl YWRlcnMKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGUgUG9zdEdyZVNRTCBoZWFk ZXIgZmlsZXMgZnJvbSBhIGRpcmVjdG9yeQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0dXJlCisrICAtLWVuYWJsZS1iYWNrZW5kLW15c3FsICBidWlsZC1pbiBNeVNRTCBiYWNrZW5k IHN1cHBvcnQgW2RlZmF1bHQ9bm9dCisrICAtLWVuYWJsZS1iYWNrZW5kLW9yYWNsZSBidWlsZC1p biBPUkFDTEUgYmFja2VuZCBzdXBwb3J0IFtkZWZhdWx0PW5vXQorKyAgLS1lbmFibGUtYmFja2Vu ZC1wb3N0Z3Jlc3FsCisrICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZC1pbiBQb3N0Z3Jl U1FMIGJhY2tlbmQgc3VwcG9ydCBbZGVmYXVsdD1ub10KKysKKytPcHRpb25hbCBQYWNrYWdlczoK KysgIC0td2l0aC1QQUNLQUdFWz1BUkddICAgIHVzZSBQQUNLQUdFIFtBUkc9eWVzXQorKyAgLS13 aXRob3V0LVBBQ0tBR0UgICAgICAgZG8gbm90IHVzZSBQQUNLQUdFIChzYW1lIGFzIC0td2l0aC1Q QUNLQUdFPW5vKQorKyAgLS13aXRoLWNwcHVuaXQtcHJlZml4PVBGWCAgIFByZWZpeCB3aGVyZSBD cHBVbml0IGlzIGluc3RhbGxlZCAob3B0aW9uYWwpCisrICAtLXdpdGgtY3BwdW5pdC1leGVjLXBy ZWZpeD1QRlggIEV4ZWMgcHJlZml4IHdoZXJlIENwcFVuaXQgaXMgaW5zdGFsbGVkIChvcHRpb25h bCkKKysgIC0td2l0aC1waWMgICAgICAgICAgICAgIHRyeSB0byB1c2Ugb25seSBQSUMvbm9uLVBJ QyBvYmplY3RzIFtkZWZhdWx0PXVzZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgYm90aF0K KysgIC0td2l0aC1nbnUtbGQgICAgICAgICAgIGFzc3VtZSB0aGUgQyBjb21waWxlciB1c2VzIEdO VSBsZCBbZGVmYXVsdD1ub10KKysgIC0td2l0aC1kb2NkaXI9RElSICAgICAgIHNldCBkb2N1bWVu dGF0aW9uIGRpcmVjdG9yeSB0byBESVIKKysgIC0td2l0aC1ib29zdD1ESVIgICAgICAgIHVzZSBi b29zdCAoZGVmYXVsdCBpcyBOTykgLCBzcGVjaWZ5IHRoZSByb290CisrICAgICAgICAgICAgICAg ICAgICAgICAgICBkaXJlY3RvcnkgZm9yIGJvb3N0IGxpYnJhcnkgKG9wdGlvbmFsKQorKyAgLS13 aXRoLW15c3FsPTxwYXRoPiAgICAgcm9vdCBkaXJlY3RvcnkgcGF0aCBvZiBNeVNRTCBpbnN0YWxs YXRpb24KKysgIC0td2l0aC1teXNxbC1saWI9PHBhdGg+IGRpcmVjdG9yeSBwYXRoIG9mIE15U1FM IGxpYnJhcnkgaW5zdGFsbGF0aW9uCisrICAtLXdpdGgtbXlzcWwtaW5jbHVkZT08cGF0aD4gZGly ZWN0b3J5IHBhdGggb2YgTXlTUUwgaGVhZGVyIGluc3RhbGxhdGlvbgorKyAgLS13aXRoLW9yYWNs ZT1bRElSXSAgICAgdXNlIE9yYWNsZSBPQ0kgQVBJIGZyb20gZ2l2ZW4gcGF0aCB0byBPcmFjbGUg aG9tZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5CisrICAtLXdpdGgtb3Jh Y2xlLWluY2x1ZGU9W0RJUl0KKysgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBPcmFjbGUg T0NJIEFQSSBoZWFkZXJzIGZyb20gZ2l2ZW4gcGF0aAorKyAgLS13aXRoLW9yYWNsZS1saWI9W0RJ Ul0gdXNlIE9yYWNsZSBPQ0kgQVBJIGxpYnJhcmllcyBmcm9tIGdpdmVuIHBhdGgKKysgIC0td2l0 aC1wb3N0Z3Jlc3FsPVtBUkddIHVzZSBQb3N0Z3JlU1FMIGxpYnJhcnkgW2RlZmF1bHQ9eWVzXSwg b3B0aW9uYWxseQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY2lmeSBwYXRoIHRvIHBn X2NvbmZpZworKworK1NvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzOgorKyAg Q1hYICAgICAgICAgQysrIGNvbXBpbGVyIGNvbW1hbmQKKysgIENYWEZMQUdTICAgIEMrKyBjb21w aWxlciBmbGFncworKyAgTERGTEFHUyAgICAgbGlua2VyIGZsYWdzLCBlLmcuIC1MPGxpYiBkaXI+ IGlmIHlvdSBoYXZlIGxpYnJhcmllcyBpbiBhCisrICAgICAgICAgICAgICBub25zdGFuZGFyZCBk aXJlY3RvcnkgPGxpYiBkaXI+CisrICBMSUJTICAgICAgICBsaWJyYXJpZXMgdG8gcGFzcyB0byB0 aGUgbGlua2VyLCBlLmcuIC1sPGxpYnJhcnk+CisrICBDUFBGTEFHUyAgICAoT2JqZWN0aXZlKSBD L0MrKyBwcmVwcm9jZXNzb3IgZmxhZ3MsIGUuZy4gLUk8aW5jbHVkZSBkaXI+IGlmCisrICAgICAg ICAgICAgICB5b3UgaGF2ZSBoZWFkZXJzIGluIGEgbm9uc3RhbmRhcmQgZGlyZWN0b3J5IDxpbmNs dWRlIGRpcj4KKysgIENYWENQUCAgICAgIEMrKyBwcmVwcm9jZXNzb3IKKysgIENDICAgICAgICAg IEMgY29tcGlsZXIgY29tbWFuZAorKyAgQ0ZMQUdTICAgICAgQyBjb21waWxlciBmbGFncworKyAg Q1BQICAgICAgICAgQyBwcmVwcm9jZXNzb3IKKysKKytVc2UgdGhlc2UgdmFyaWFibGVzIHRvIG92 ZXJyaWRlIHRoZSBjaG9pY2VzIG1hZGUgYnkgYGNvbmZpZ3VyZScgb3IgdG8gaGVscAorK2l0IHRv IGZpbmQgbGlicmFyaWVzIGFuZCBwcm9ncmFtcyB3aXRoIG5vbnN0YW5kYXJkIG5hbWVzL2xvY2F0 aW9ucy4KKysKKytSZXBvcnQgYnVncyB0byA8bXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0 Pi4KKytfQUNFT0YKKythY19zdGF0dXM9JD8KKytmaQorKworK2lmIHRlc3QgIiRhY19pbml0X2hl bHAiID0gInJlY3Vyc2l2ZSI7IHRoZW4KKysgICMgSWYgdGhlcmUgYXJlIHN1YmRpcnMsIHJlcG9y dCB0aGVpciBzcGVjaWZpYyAtLWhlbHAuCisrICBmb3IgYWNfZGlyIGluIDogJGFjX3N1YmRpcnNf YWxsOyBkbyB0ZXN0ICJ4JGFjX2RpciIgPSB4OiAmJiBjb250aW51ZQorKyAgICB0ZXN0IC1kICIk YWNfZGlyIiB8fAorKyAgICAgIHsgY2QgIiRzcmNkaXIiICYmIGFjX3B3ZD1gcHdkYCAmJiBzcmNk aXI9LiAmJiB0ZXN0IC1kICIkYWNfZGlyIjsgfSB8fAorKyAgICAgIGNvbnRpbnVlCisrICAgIGFj X2J1aWxkZGlyPS4KKysKKytjYXNlICIkYWNfZGlyIiBpbgorKy4pIGFjX2Rpcl9zdWZmaXg9IGFj X3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4PSA7OworKyopCisrICBhY19k aXJfc3VmZml4PS9gJGFzX2VjaG8gIiRhY19kaXIiIHwgc2VkICdzfF5cLltcXC9dfHwnYAorKyAg IyBBICIuLiIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgorKyAgYWNfdG9w X2J1aWxkZGlyX3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAnc3wvW15cXC9d KnwvLi58ZztzfC98fCdgCisrICBjYXNlICRhY190b3BfYnVpbGRkaXJfc3ViIGluCisrICAiIikg YWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7CisrICAqKSAgYWNf dG9wX2J1aWxkX3ByZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1Yi8gOzsKKysgIGVzYWMgOzsKKytl c2FjCisrYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfcHdkCisrYWNfYWJzX2J1aWxkZGlyPSRhY19w d2QkYWNfZGlyX3N1ZmZpeAorKyMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk6CisrYWNfdG9w X2J1aWxkZGlyPSRhY190b3BfYnVpbGRfcHJlZml4CisrCisrY2FzZSAkc3JjZGlyIGluCisrICAu KSAgIyBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCisrICAgIGFjX3NyY2Rpcj0uCisrICAgIGFj X3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpcl9zdWIKKysgICAgYWNfYWJzX3RvcF9zcmNkaXI9 JGFjX3B3ZCA7OworKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBuYW1lLgorKyAg ICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OworKyAgICBhY190b3Bfc3JjZGlyPSRz cmNkaXIKKysgICAgYWNfYWJzX3RvcF9zcmNkaXI9JHNyY2RpciA7OworKyAgKikgIyBSZWxhdGl2 ZSBuYW1lLgorKyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgkc3JjZGlyJGFjX2Rp cl9zdWZmaXgKKysgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIK KysgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZC8kc3JjZGlyIDs7CisrZXNhYworK2FjX2Fi c19zcmNkaXI9JGFjX2Fic190b3Bfc3JjZGlyJGFjX2Rpcl9zdWZmaXgKKysKKysgICAgY2QgIiRh Y19kaXIiIHx8IHsgYWNfc3RhdHVzPSQ/OyBjb250aW51ZTsgfQorKyAgICAjIENoZWNrIGZvciBn dWVzdGVkIGNvbmZpZ3VyZS4KKysgICAgaWYgdGVzdCAtZiAiJGFjX3NyY2Rpci9jb25maWd1cmUu Z251IjsgdGhlbgorKyAgICAgIGVjaG8gJiYKKysgICAgICAkU0hFTEwgIiRhY19zcmNkaXIvY29u ZmlndXJlLmdudSIgLS1oZWxwPXJlY3Vyc2l2ZQorKyAgICBlbGlmIHRlc3QgLWYgIiRhY19zcmNk aXIvY29uZmlndXJlIjsgdGhlbgorKyAgICAgIGVjaG8gJiYKKysgICAgICAkU0hFTEwgIiRhY19z cmNkaXIvY29uZmlndXJlIiAtLWhlbHA9cmVjdXJzaXZlCisrICAgIGVsc2UKKysgICAgICAkYXNf ZWNobyAiJGFzX21lOiBXQVJOSU5HOiBubyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGlzIGlu ICRhY19kaXIiID4mMgorKyAgICBmaSB8fCBhY19zdGF0dXM9JD8KKysgICAgY2QgIiRhY19wd2Qi IHx8IHsgYWNfc3RhdHVzPSQ/OyBicmVhazsgfQorKyAgZG9uZQorK2ZpCisrCisrdGVzdCAtbiAi JGFjX2luaXRfaGVscCIgJiYgZXhpdCAkYWNfc3RhdHVzCisraWYgJGFjX2luaXRfdmVyc2lvbjsg dGhlbgorKyAgY2F0IDw8XF9BQ0VPRgorK1NPQ0kgY29uZmlndXJlIDMuMC4wCisrZ2VuZXJhdGVk IGJ5IEdOVSBBdXRvY29uZiAyLjY2CisrCisrQ29weXJpZ2h0IChDKSAyMDEwIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorK1RoaXMgY29uZmlndXJlIHNjcmlwdCBpcyBmcmVlIHNvZnR3 YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrZ2l2ZXMgdW5saW1pdGVkIHBlcm1p c3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LgorKworK0NvcHlyaWdodCAo QykgMjAwNC0yMDExIE1hY2llaiBTb2JjemFrIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5u ZXQ+CisrX0FDRU9GCisrICBleGl0CisrZmkKKysKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gIyMKKysjIyBBdXRvY29uZiBpbml0aWFsaXphdGlvbi4gIyMKKysjIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gIyMKKysKKysjIGFjX2ZuX2N4eF90cnlfY29tcGlsZSBMSU5FTk8KKysjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFRyeSB0byBjb21waWxlIGNvbmZ0ZXN0LiRh Y19leHQsIGFuZCByZXR1cm4gd2hldGhlciB0aGlzIHN1Y2NlZWRlZC4KKythY19mbl9jeHhfdHJ5 X2NvbXBpbGUgKCkKKyt7CisrICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNfbGluZW5v X3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCisrICBybSAtZiBjb25mdGVz dC4kYWNfb2JqZXh0CisrICBpZiB7IHsgYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRh Y190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK KysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iOyB9ID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVz dC5lcnIKKysgIGFjX3N0YXR1cz0kPworKyAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4K KysgICAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjEKKysgICAgY2F0 IGNvbmZ0ZXN0LmVyMSA+JjUKKysgICAgbXYgLWYgY29uZnRlc3QuZXIxIGNvbmZ0ZXN0LmVycgor KyAgZmkKKysgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRh Y19zdGF0dXMiID4mNQorKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAmJiB7CisrCSB0ZXN0IC16 ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAg ICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbiA6CisrICBhY19yZXR2 YWw9MAorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4m NQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfcmV0dmFsPTEK KytmaQorKyAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyB0ZXN0ICJ4JGFzX2xpbmVub19zdGFjayIg PSB4ICYmIHsgYXNfbGluZW5vPTsgdW5zZXQgYXNfbGluZW5vO30KKysgIGFzX2ZuX3NldF9zdGF0 dXMgJGFjX3JldHZhbAorKworK30gIyBhY19mbl9jeHhfdHJ5X2NvbXBpbGUKKysKKysjIGFjX2Zu X2N4eF90cnlfY3BwIExJTkVOTworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBUcnkg dG8gcHJlcHJvY2VzcyBjb25mdGVzdC4kYWNfZXh0LCBhbmQgcmV0dXJuIHdoZXRoZXIgdGhpcyBz dWNjZWVkZWQuCisrYWNfZm5fY3h4X3RyeV9jcHAgKCkKKyt7CisrICBhc19saW5lbm89JHthc19s aW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0 YWNrCisrICBpZiB7IHsgYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCisrY2FzZSAi KCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKKysgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRh Y19leHQiKSAyPmNvbmZ0ZXN0LmVycgorKyAgYWNfc3RhdHVzPSQ/CisrICBpZiB0ZXN0IC1zIGNv bmZ0ZXN0LmVycjsgdGhlbgorKyAgICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcnIgPmNvbmZ0 ZXN0LmVyMQorKyAgICBjYXQgY29uZnRlc3QuZXIxID4mNQorKyAgICBtdiAtZiBjb25mdGVzdC5l cjEgY29uZnRlc3QuZXJyCisrICBmaQorKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9 ID4vZGV2L251bGwgJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRh Y19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAg IH07IHRoZW4gOgorKyAgYWNfcmV0dmFsPTAKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBm YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg PiY1CisrCisrICAgIGFjX3JldHZhbD0xCisrZmkKKysgIGV2YWwgJGFzX2xpbmVub19zdGFjazsg dGVzdCAieCRhc19saW5lbm9fc3RhY2siID0geCAmJiB7IGFzX2xpbmVubz07IHVuc2V0IGFzX2xp bmVubzt9CisrICBhc19mbl9zZXRfc3RhdHVzICRhY19yZXR2YWwKKysKKyt9ICMgYWNfZm5fY3h4 X3RyeV9jcHAKKysKKysjIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgTElORU5PCisrIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKyMgVHJ5IHRvIGNvbXBpbGUgY29uZnRlc3QuJGFjX2V4dCwgYW5k IHJldHVybiB3aGV0aGVyIHRoaXMgc3VjY2VlZGVkLgorK2FjX2ZuX2NfdHJ5X2NvbXBpbGUgKCkK Kyt7CisrICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xp bmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCisrICBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0 CisrICBpZiB7IHsgYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisr ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2Vj aG8iOyB9ID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcnIKKysgIGFj X3N0YXR1cz0kPworKyAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKysgICAgZ3JlcCAt diAnXiAqKycgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjEKKysgICAgY2F0IGNvbmZ0ZXN0LmVy MSA+JjUKKysgICAgbXYgLWYgY29uZnRlc3QuZXIxIGNvbmZ0ZXN0LmVycgorKyAgZmkKKysgICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4m NQorKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJy b3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0 IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4gOgorKyAgYWNfcmV0dmFsPTAKKytlbHNlCisr ICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX3JldHZhbD0xCisrZmkKKysgIGV2YWwg JGFzX2xpbmVub19zdGFjazsgdGVzdCAieCRhc19saW5lbm9fc3RhY2siID0geCAmJiB7IGFzX2xp bmVubz07IHVuc2V0IGFzX2xpbmVubzt9CisrICBhc19mbl9zZXRfc3RhdHVzICRhY19yZXR2YWwK KysKKyt9ICMgYWNfZm5fY190cnlfY29tcGlsZQorKworKyMgYWNfZm5fY190cnlfbGluayBMSU5F Tk8KKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBUcnkgdG8gbGluayBjb25mdGVzdC4k YWNfZXh0LCBhbmQgcmV0dXJuIHdoZXRoZXIgdGhpcyBzdWNjZWVkZWQuCisrYWNfZm5fY190cnlf bGluayAoKQorK3sKKysgIGFzX2xpbmVubz0ke2FzX2xpbmVuby0iJDEifSBhc19saW5lbm9fc3Rh Y2s9YXNfbGluZW5vX3N0YWNrPSRhc19saW5lbm9fc3RhY2sKKysgIHJtIC1mIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisrICBpZiB7IHsgYWNfdHJ5PSIkYWNfbGluayIK KytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wi IgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iOyB9ID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikg Mj5jb25mdGVzdC5lcnIKKysgIGFjX3N0YXR1cz0kPworKyAgaWYgdGVzdCAtcyBjb25mdGVzdC5l cnI7IHRoZW4KKysgICAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjEK KysgICAgY2F0IGNvbmZ0ZXN0LmVyMSA+JjUKKysgICAgbXYgLWYgY29uZnRlc3QuZXIxIGNvbmZ0 ZXN0LmVycgorKyAgZmkKKysgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAmJiB7Cisr CSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5l cnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0 ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19l eGVleHQKKysgICAgICAgfTsgdGhlbiA6CisrICBhY19yZXR2YWw9MAorK2Vsc2UKKysgICRhc19l Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29u ZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfcmV0dmFsPTEKKytmaQorKyAgIyBEZWxldGUgdGhl IElQQS9JUE8gKEludGVyIFByb2NlZHVyYWwgQW5hbHlzaXMvT3B0aW1pemF0aW9uKSBpbmZvcm1h dGlvbgorKyAgIyBjcmVhdGVkIGJ5IHRoZSBQR0kgY29tcGlsZXIgKGNvbmZ0ZXN0X2lwYThfY29u ZnRlc3Qub28pLCBhcyBpdCB3b3VsZAorKyAgIyBpbnRlcmZlcmUgd2l0aCB0aGUgbmV4dCBsaW5r IGNvbW1hbmQ7IGFsc28gZGVsZXRlIGEgZGlyZWN0b3J5IHRoYXQgaXMKKysgICMgbGVmdCBiZWhp bmQgYnkgQXBwbGUncyBjb21waWxlci4gIFdlIGRvIHRoaXMgYmVmb3JlIGV4ZWN1dGluZyB0aGUg YWN0aW9ucy4KKysgIHJtIC1yZiBjb25mdGVzdC5kU1lNIGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qu b28KKysgIGV2YWwgJGFzX2xpbmVub19zdGFjazsgdGVzdCAieCRhc19saW5lbm9fc3RhY2siID0g eCAmJiB7IGFzX2xpbmVubz07IHVuc2V0IGFzX2xpbmVubzt9CisrICBhc19mbl9zZXRfc3RhdHVz ICRhY19yZXR2YWwKKysKKyt9ICMgYWNfZm5fY190cnlfbGluaworKworKyMgYWNfZm5fY19jaGVj a19oZWFkZXJfY29tcGlsZSBMSU5FTk8gSEVBREVSIFZBUiBJTkNMVURFUworKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgVGVzdHMg d2hldGhlciBIRUFERVIgZXhpc3RzIGFuZCBjYW4gYmUgY29tcGlsZWQgdXNpbmcgdGhlIGluY2x1 ZGUgZmlsZXMgaW4KKysjIElOQ0xVREVTLCBzZXR0aW5nIHRoZSBjYWNoZSB2YXJpYWJsZSBWQVIg YWNjb3JkaW5nbHkuCisrYWNfZm5fY19jaGVja19oZWFkZXJfY29tcGlsZSAoKQorK3sKKysgIGFz X2xpbmVubz0ke2FzX2xpbmVuby0iJDEifSBhc19saW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0YWNr PSRhc19saW5lbm9fc3RhY2sKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogY2hlY2tpbmcgZm9yICQyIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJDIu Li4gIiA+JjY7IH0KKytpZiBldmFsICJ0ZXN0IFwiXCR7JDMrc2V0fVwiIiA9IHNldDsgdGhlbiA6 CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCBjb25mZGVmcy5o IC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisr JDQKKysjaW5jbHVkZSA8JDI+CisrX0FDRU9GCisraWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJ TkVOTyI7IHRoZW4gOgorKyAgZXZhbCAiJDM9eWVzIgorK2Vsc2UKKysgIGV2YWwgIiQzPW5vIgor K2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dC4kYWNfZXh0CisrZmkKKytldmFsIGFjX3Jlcz1cJCQzCisrCSAgICAgICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2Vj aG8gIiRhY19yZXMiID4mNjsgfQorKyAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyB0ZXN0ICJ4JGFz X2xpbmVub19zdGFjayIgPSB4ICYmIHsgYXNfbGluZW5vPTsgdW5zZXQgYXNfbGluZW5vO30KKysK Kyt9ICMgYWNfZm5fY19jaGVja19oZWFkZXJfY29tcGlsZQorKworKyMgYWNfZm5fY190cnlfY3Bw IExJTkVOTworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgVHJ5IHRvIHByZXByb2Nlc3Mg Y29uZnRlc3QuJGFjX2V4dCwgYW5kIHJldHVybiB3aGV0aGVyIHRoaXMgc3VjY2VlZGVkLgorK2Fj X2ZuX2NfdHJ5X2NwcCAoKQorK3sKKysgIGFzX2xpbmVubz0ke2FzX2xpbmVuby0iJDEifSBhc19s aW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0YWNrPSRhc19saW5lbm9fc3RhY2sKKysgIGlmIHsgeyBh Y190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytjYXNlICIoKCRhY190cnkiIGluCisr ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2Vj aG8iOyB9ID4mNQorKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRl c3QuZXJyCisrICBhY19zdGF0dXM9JD8KKysgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVu CisrICAgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIxCisrICAgIGNh dCBjb25mdGVzdC5lcjEgPiY1CisrICAgIG12IC1mIGNvbmZ0ZXN0LmVyMSBjb25mdGVzdC5lcnIK KysgIGZpCisrICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0gPi9kZXYvbnVsbCAmJiB7 CisrCSB0ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8 fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0aGVuIDoKKysgIGFjX3Jl dHZhbD0wCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgICBhY19yZXR2 YWw9MQorK2ZpCisrICBldmFsICRhc19saW5lbm9fc3RhY2s7IHRlc3QgIngkYXNfbGluZW5vX3N0 YWNrIiA9IHggJiYgeyBhc19saW5lbm89OyB1bnNldCBhc19saW5lbm87fQorKyAgYXNfZm5fc2V0 X3N0YXR1cyAkYWNfcmV0dmFsCisrCisrfSAjIGFjX2ZuX2NfdHJ5X2NwcAorKworKyMgYWNfZm5f Y190cnlfcnVuIExJTkVOTworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgVHJ5IHRvIGxp bmsgY29uZnRlc3QuJGFjX2V4dCwgYW5kIHJldHVybiB3aGV0aGVyIHRoaXMgc3VjY2VlZGVkLiBB c3N1bWVzCisrIyB0aGF0IGV4ZWN1dGFibGVzICpjYW4qIGJlIHJ1bi4KKythY19mbl9jX3RyeV9y dW4gKCkKKyt7CisrICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNr PWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCisrICBpZiB7IHsgYWNfdHJ5PSIkYWNf bGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY190cnlf ZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iOyB9ID4mNQorKyAgKGV2YWwgIiRhY19s aW5rIikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIHRlc3QgJGFjX3N0YXR1cyA9 IDA7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNfZXhlZXh0JworKyAgeyB7IGNhc2UgIigo JGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7 OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89 IlwiXCRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2Vj aG8gIiRhY190cnlfZWNobyI7IH0gPiY1CisrICAoZXZhbCAiJGFjX3RyeSIpIDI+JjUKKysgIGFj X3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB9OyB0aGVuIDoK KysgIGFjX3JldHZhbD0wCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0 ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1CisrICAgICAgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKKysKKysgICAgICAgYWNfcmV0dmFsPSRhY19zdGF0dXMKKytmaQorKyAgcm0gLXJmIGNv bmZ0ZXN0LmRTWU0gY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbworKyAgZXZhbCAkYXNfbGluZW5v X3N0YWNrOyB0ZXN0ICJ4JGFzX2xpbmVub19zdGFjayIgPSB4ICYmIHsgYXNfbGluZW5vPTsgdW5z ZXQgYXNfbGluZW5vO30KKysgIGFzX2ZuX3NldF9zdGF0dXMgJGFjX3JldHZhbAorKworK30gIyBh Y19mbl9jX3RyeV9ydW4KKysKKysjIGFjX2ZuX2NfY2hlY2tfZnVuYyBMSU5FTk8gRlVOQyBWQVIK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFRlc3RzIHdoZXRoZXIg RlVOQyBleGlzdHMsIHNldHRpbmcgdGhlIGNhY2hlIHZhcmlhYmxlIFZBUiBhY2NvcmRpbmdseQor K2FjX2ZuX2NfY2hlY2tfZnVuYyAoKQorK3sKKysgIGFzX2xpbmVubz0ke2FzX2xpbmVuby0iJDEi fSBhc19saW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0YWNrPSRhc19saW5lbm9fc3RhY2sKKysgIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICQyIiA+ JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJDIuLi4gIiA+JjY7IH0KKytpZiBldmFsICJ0 ZXN0IFwiXCR7JDMrc2V0fVwiIiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRh Y19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrLyogRGVmaW5lICQyIHRvIGFuIGlubm9j dW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgJDIuCisrICAgRm9yIGV4 YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCisr I2RlZmluZSAkMiBpbm5vY3VvdXNfJDIKKysKKysvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBf X3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCisrICAgIHdoaWNoIGNh biBjb25mbGljdCB3aXRoIGNoYXIgJDIgKCk7IGJlbG93LgorKyAgICBQcmVmZXIgPGxpbWl0cy5o PiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisrICAgIDxsaW1p dHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCisrCisrI2lm ZGVmIF9fU1REQ19fCisrIyBpbmNsdWRlIDxsaW1pdHMuaD4KKysjZWxzZQorKyMgaW5jbHVkZSA8 YXNzZXJ0Lmg+CisrI2VuZGlmCisrCisrI3VuZGVmICQyCisrCisrLyogT3ZlcnJpZGUgYW55IEdD QyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisrICAgVXNlIGNoYXIgYmVj YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisrICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8K KysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiCisrI2VuZGlmCisrY2hhciAkMiAoKTsK KysvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBp dCBpbXBsZW1lbnRzCisrICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5j dGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCisrICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9f IGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLworKyNpZiBkZWZpbmVkIF9fc3R1 Yl8kMiB8fCBkZWZpbmVkIF9fc3R1Yl9fXyQyCisrY2hva2UgbWUKKysjZW5kaWYKKysKKytpbnQK KyttYWluICgpCisreworK3JldHVybiAkMiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytf QUNFT0YKKytpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CisrICBldmFsICIk Mz15ZXMiCisrZWxzZQorKyAgZXZhbCAiJDM9bm8iCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKysgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0 ZXN0LiRhY19leHQKKytmaQorK2V2YWwgYWNfcmVzPVwkJDMKKysJICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNf ZWNobyAiJGFjX3JlcyIgPiY2OyB9CisrICBldmFsICRhc19saW5lbm9fc3RhY2s7IHRlc3QgIngk YXNfbGluZW5vX3N0YWNrIiA9IHggJiYgeyBhc19saW5lbm89OyB1bnNldCBhc19saW5lbm87fQor KworK30gIyBhY19mbl9jX2NoZWNrX2Z1bmMKKysKKysjIGFjX2ZuX2N4eF90cnlfbGluayBMSU5F Tk8KKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFRyeSB0byBsaW5rIGNvbmZ0ZXN0 LiRhY19leHQsIGFuZCByZXR1cm4gd2hldGhlciB0aGlzIHN1Y2NlZWRlZC4KKythY19mbl9jeHhf dHJ5X2xpbmsgKCkKKyt7CisrICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNfbGluZW5v X3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCisrICBybSAtZiBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgaWYgeyB7IGFjX3RyeT0iJGFjX2xp bmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2Vj aG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKKysgIChldmFsICIkYWNfbGlu ayIpIDI+Y29uZnRlc3QuZXJyCisrICBhY19zdGF0dXM9JD8KKysgIGlmIHRlc3QgLXMgY29uZnRl c3QuZXJyOyB0aGVuCisrICAgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3Qu ZXIxCisrICAgIGNhdCBjb25mdGVzdC5lcjEgPiY1CisrICAgIG12IC1mIGNvbmZ0ZXN0LmVyMSBj b25mdGVzdC5lcnIKKysgIGZpCisrICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0gJiYg eworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25m dGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Cisr CSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVz dCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbiA6CisrICBhY19yZXR2YWw9MAorK2Vsc2UKKysg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfcmV0dmFsPTEKKytmaQorKyAgIyBEZWxl dGUgdGhlIElQQS9JUE8gKEludGVyIFByb2NlZHVyYWwgQW5hbHlzaXMvT3B0aW1pemF0aW9uKSBp bmZvcm1hdGlvbgorKyAgIyBjcmVhdGVkIGJ5IHRoZSBQR0kgY29tcGlsZXIgKGNvbmZ0ZXN0X2lw YThfY29uZnRlc3Qub28pLCBhcyBpdCB3b3VsZAorKyAgIyBpbnRlcmZlcmUgd2l0aCB0aGUgbmV4 dCBsaW5rIGNvbW1hbmQ7IGFsc28gZGVsZXRlIGEgZGlyZWN0b3J5IHRoYXQgaXMKKysgICMgbGVm dCBiZWhpbmQgYnkgQXBwbGUncyBjb21waWxlci4gIFdlIGRvIHRoaXMgYmVmb3JlIGV4ZWN1dGlu ZyB0aGUgYWN0aW9ucy4KKysgIHJtIC1yZiBjb25mdGVzdC5kU1lNIGNvbmZ0ZXN0X2lwYThfY29u ZnRlc3Qub28KKysgIGV2YWwgJGFzX2xpbmVub19zdGFjazsgdGVzdCAieCRhc19saW5lbm9fc3Rh Y2siID0geCAmJiB7IGFzX2xpbmVubz07IHVuc2V0IGFzX2xpbmVubzt9CisrICBhc19mbl9zZXRf c3RhdHVzICRhY19yZXR2YWwKKysKKyt9ICMgYWNfZm5fY3h4X3RyeV9saW5rCisrCisrIyBhY19m bl9jeHhfdHJ5X3J1biBMSU5FTk8KKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgVHJ5 IHRvIGxpbmsgY29uZnRlc3QuJGFjX2V4dCwgYW5kIHJldHVybiB3aGV0aGVyIHRoaXMgc3VjY2Vl ZGVkLiBBc3N1bWVzCisrIyB0aGF0IGV4ZWN1dGFibGVzICpjYW4qIGJlIHJ1bi4KKythY19mbl9j eHhfdHJ5X3J1biAoKQorK3sKKysgIGFzX2xpbmVubz0ke2FzX2xpbmVuby0iJDEifSBhc19saW5l bm9fc3RhY2s9YXNfbGluZW5vX3N0YWNrPSRhc19saW5lbm9fc3RhY2sKKysgIGlmIHsgeyBhY190 cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Cisr ZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog JGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyI7IH0gPiY1CisrICAoZXZh bCAiJGFjX2xpbmsiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgdGVzdCAkYWNf c3RhdHVzID0gMDsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCisrICB7IHsg Y2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c JGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190 cnlfZWNobz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIK KyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKKysgIChldmFsICIkYWNfdHJ5IikgMj4m NQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IH07 IHRoZW4gOgorKyAgYWNfcmV0dmFsPTAKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBwcm9n cmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUKKysgICAgICAgJGFzX2VjaG8g IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVz dC4kYWNfZXh0ID4mNQorKworKyAgICAgICBhY19yZXR2YWw9JGFjX3N0YXR1cworK2ZpCisrICBy bSAtcmYgY29uZnRlc3QuZFNZTSBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vCisrICBldmFsICRh c19saW5lbm9fc3RhY2s7IHRlc3QgIngkYXNfbGluZW5vX3N0YWNrIiA9IHggJiYgeyBhc19saW5l bm89OyB1bnNldCBhc19saW5lbm87fQorKyAgYXNfZm5fc2V0X3N0YXR1cyAkYWNfcmV0dmFsCisr CisrfSAjIGFjX2ZuX2N4eF90cnlfcnVuCisrCisrIyBhY19mbl9jeHhfY2hlY2tfaGVhZGVyX21v bmdyZWwgTElORU5PIEhFQURFUiBWQVIgSU5DTFVERVMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgVGVzdHMgd2hldGhlciBI RUFERVIgZXhpc3RzLCBnaXZpbmcgYSB3YXJuaW5nIGlmIGl0IGNhbm5vdCBiZSBjb21waWxlZCB1 c2luZworKyMgdGhlIGluY2x1ZGUgZmlsZXMgaW4gSU5DTFVERVMgYW5kIHNldHRpbmcgdGhlIGNh Y2hlIHZhcmlhYmxlIFZBUgorKyMgYWNjb3JkaW5nbHkuCisrYWNfZm5fY3h4X2NoZWNrX2hlYWRl cl9tb25ncmVsICgpCisreworKyAgYXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMSJ9IGFzX2xpbmVu b19zdGFjaz1hc19saW5lbm9fc3RhY2s9JGFzX2xpbmVub19zdGFjaworKyAgaWYgZXZhbCAidGVz dCBcIlwkeyQzK3NldH1cIiIgPSBzZXQ7IHRoZW4gOgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJDIiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciAkMi4uLiAiID4mNjsgfQorK2lmIGV2YWwgInRlc3QgXCJcJHskMytzZXR9XCIi ID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZmkKKytldmFs IGFjX3Jlcz1cJCQzCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQor K2Vsc2UKKysgICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPworK3sgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgJDIgdXNhYmlsaXR5IiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyAkMiB1c2FiaWxpdHkuLi4gIiA+JjY7IH0KKytjYXQgY29uZmRlZnMu aCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLwor KyQ0CisrI2luY2x1ZGUgPCQyPgorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfY29tcGlsZSAi JExJTkVOTyI7IHRoZW4gOgorKyAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcworK2Vsc2UKKysgIGFj X2hlYWRlcl9jb21waWxlcj1ubworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQorKyRhc19l Y2hvICIkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjY7IH0KKysKKysjIElzIHRoZSBoZWFkZXIgcHJl c2VudD8KKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5n ICQyIHByZXNlbmNlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyAkMiBwcmVzZW5jZS4uLiAi ID4mNjsgfQorK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysv KiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPCQyPgorK19BQ0VPRgorK2lmIGFjX2Zu X2N4eF90cnlfY3BwICIkTElORU5PIjsgdGhlbiA6CisrICBhY19oZWFkZXJfcHJlcHJvYz15ZXMK KytlbHNlCisrICBhY19oZWFkZXJfcHJlcHJvYz1ubworK2ZpCisrcm0gLWYgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19leHQKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjUKKyskYXNfZWNobyAiJGFjX2hlYWRl cl9wcmVwcm9jIiA+JjY7IH0KKysKKysjIFNvPyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8KKytj YXNlICRhY19oZWFkZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jOiRhY19jeHhfcHJlcHJv Y193YXJuX2ZsYWcgaW4gIygoCisrICB5ZXM6bm86ICkKKysgICAgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiAkMjogYWNjZXB0ZWQgYnkgdGhlIGNvbXBp bGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogV0FSTklORzogJDI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhl IHByZXByb2Nlc3NvciEiID4mMjt9CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogV0FSTklORzogJDI6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyBy ZXN1bHQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICQyOiBwcm9jZWVkaW5nIHdp dGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQorKyAgICA7OworKyAgbm86eWVzOiogKQor KyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6ICQy OiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6 IFdBUk5JTkc6ICQyOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mMjt9CisrICAg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogJDI6ICAg ICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQorKyRhc19lY2hv ICIkYXNfbWU6IFdBUk5JTkc6ICQyOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRl IGhlYWRlcnM/IiA+JjI7fQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IFdBUk5JTkc6ICQyOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQor KyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICQyOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50 YXRpb24iID4mMjt9CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogV0FSTklORzogJDI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBp bGVkXCIiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICQyOiAgICAgc2VjdGlvbiBc IlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjI7fQorKyAgICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6ICQyOiBwcm9jZWVkaW5nIHdp dGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5H OiAkMjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiYyO30KKysoICRh c19lY2hvICIjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g IyMKKysjIyBSZXBvcnQgdGhpcyB0byBtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQgIyMK KysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMiCisr ICAgICApIHwgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCisrICAgIDs7Cisr ZXNhYworKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyBmb3IgJDIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkMi4uLiAiID4mNjsgfQor K2lmIGV2YWwgInRlc3QgXCJcJHskMytzZXR9XCIiID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgZXZhbCAiJDM9XCRhY19oZWFkZXJfY29tcGls ZXIiCisrZmkKKytldmFsIGFjX3Jlcz1cJCQzCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8gIiRh Y19yZXMiID4mNjsgfQorK2ZpCisrICBldmFsICRhc19saW5lbm9fc3RhY2s7IHRlc3QgIngkYXNf bGluZW5vX3N0YWNrIiA9IHggJiYgeyBhc19saW5lbm89OyB1bnNldCBhc19saW5lbm87fQorKwor K30gIyBhY19mbl9jeHhfY2hlY2tfaGVhZGVyX21vbmdyZWwKKytjYXQgPmNvbmZpZy5sb2cgPDxf QUNFT0YKKytUaGlzIGZpbGUgY29udGFpbnMgYW55IG1lc3NhZ2VzIHByb2R1Y2VkIGJ5IGNvbXBp bGVycyB3aGlsZQorK3J1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZp Z3VyZSBtYWtlcyBhIG1pc3Rha2UuCisrCisrSXQgd2FzIGNyZWF0ZWQgYnkgU09DSSAkYXNfbWUg My4wLjAsIHdoaWNoIHdhcworK2dlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42Ni4gIEludm9j YXRpb24gY29tbWFuZCBsaW5lIHdhcworKworKyAgJCAkMCAkQAorKworK19BQ0VPRgorK2V4ZWMg NT4+Y29uZmlnLmxvZworK3sKKytjYXQgPDxfQVNVTkFNRQorKyMjIC0tLS0tLS0tLSAjIworKyMj IFBsYXRmb3JtLiAjIworKyMjIC0tLS0tLS0tLSAjIworKworK2hvc3RuYW1lID0gYChob3N0bmFt ZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgCisrdW5hbWUgLW0gPSBgKHVuYW1l IC1tKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisrdW5hbWUgLXIgPSBgKHVuYW1lIC1y KSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisrdW5hbWUgLXMgPSBgKHVuYW1lIC1zKSAy Pi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisrdW5hbWUgLXYgPSBgKHVuYW1lIC12KSAyPi9k ZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisrCisrL3Vzci9iaW4vdW5hbWUgLXAgPSBgKC91c3Iv YmluL3VuYW1lIC1wKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisrL2Jpbi91bmFtZSAt WCAgICAgPSBgKC9iaW4vdW5hbWUgLVgpIDI+L2Rldi9udWxsICAgICB8fCBlY2hvIHVua25vd25g CisrCisrL2Jpbi9hcmNoICAgICAgICAgICAgICA9IGAoL2Jpbi9hcmNoKSAyPi9kZXYvbnVsbCAg ICAgICAgICAgICAgfHwgZWNobyB1bmtub3duYAorKy91c3IvYmluL2FyY2ggLWsgICAgICAgPSBg KC91c3IvYmluL2FyY2ggLWspIDI+L2Rldi9udWxsICAgICAgIHx8IGVjaG8gdW5rbm93bmAKKysv dXNyL2NvbnZleC9nZXRzeXNpbmZvID0gYCgvdXNyL2NvbnZleC9nZXRzeXNpbmZvKSAyPi9kZXYv bnVsbCB8fCBlY2hvIHVua25vd25gCisrL3Vzci9iaW4vaG9zdGluZm8gICAgICA9IGAoL3Vzci9i aW4vaG9zdGluZm8pIDI+L2Rldi9udWxsICAgICAgfHwgZWNobyB1bmtub3duYAorKy9iaW4vbWFj aGluZSAgICAgICAgICAgPSBgKC9iaW4vbWFjaGluZSkgMj4vZGV2L251bGwgICAgICAgICAgIHx8 IGVjaG8gdW5rbm93bmAKKysvdXNyL2Jpbi9vc2xldmVsICAgICAgID0gYCgvdXNyL2Jpbi9vc2xl dmVsKSAyPi9kZXYvbnVsbCAgICAgICB8fCBlY2hvIHVua25vd25gCisrL2Jpbi91bml2ZXJzZSAg ICAgICAgICA9IGAoL2Jpbi91bml2ZXJzZSkgMj4vZGV2L251bGwgICAgICAgICAgfHwgZWNobyB1 bmtub3duYAorKworK19BU1VOQU1FCisrCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUwor KyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAgJGFzX2VjaG8gIlBBVEg6ICRh c19kaXIiCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK30gPiY1CisrCisrY2F0ID4m NSA8PF9BQ0VPRgorKworKworKyMjIC0tLS0tLS0tLS0tICMjCisrIyMgQ29yZSB0ZXN0cy4gIyMK KysjIyAtLS0tLS0tLS0tLSAjIworKworK19BQ0VPRgorKworKworKyMgS2VlcCBhIHRyYWNlIG9m IHRoZSBjb21tYW5kIGxpbmUuCisrIyBTdHJpcCBvdXQgLS1uby1jcmVhdGUgYW5kIC0tbm8tcmVj dXJzaW9uIHNvIHRoZXkgZG8gbm90IHBpbGUgdXAuCisrIyBTdHJpcCBvdXQgLS1zaWxlbnQgYmVj YXVzZSB3ZSBkb24ndCB3YW50IHRvIHJlY29yZCBpdCBmb3IgZnV0dXJlIHJ1bnMuCisrIyBBbHNv IHF1b3RlIGFueSBhcmdzIGNvbnRhaW5pbmcgc2hlbGwgbWV0YS1jaGFyYWN0ZXJzLgorKyMgTWFr ZSB0d28gcGFzc2VzIHRvIGFsbG93IGZvciBwcm9wZXIgZHVwbGljYXRlLWFyZ3VtZW50IHN1cHBy ZXNzaW9uLgorK2FjX2NvbmZpZ3VyZV9hcmdzPQorK2FjX2NvbmZpZ3VyZV9hcmdzMD0KKythY19j b25maWd1cmVfYXJnczE9CisrYWNfbXVzdF9rZWVwX25leHQ9ZmFsc2UKKytmb3IgYWNfcGFzcyBp biAxIDIKKytkbworKyAgZm9yIGFjX2FyZworKyAgZG8KKysgICAgY2FzZSAkYWNfYXJnIGluCisr ICAgIC1uby1jcmVhdGUgfCAtLW5vLWMqIHwgLW4gfCAtbm8tcmVjdXJzaW9uIHwgLS1uby1yKikg Y29udGludWUgOzsKKysgICAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwgLS1xdWkg fCAtLXF1IHwgLS1xIFwKKysgICAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1z aWxlIHwgLS1zaWwpCisrICAgICAgY29udGludWUgOzsKKysgICAgKlwnKikKKysgICAgICBhY19h cmc9YCRhc19lY2hvICIkYWNfYXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OworKyAg ICBlc2FjCisrICAgIGNhc2UgJGFjX3Bhc3MgaW4KKysgICAgMSkgYXNfZm5fYXBwZW5kIGFjX2Nv bmZpZ3VyZV9hcmdzMCAiICckYWNfYXJnJyIgOzsKKysgICAgMikKKysgICAgICBhc19mbl9hcHBl bmQgYWNfY29uZmlndXJlX2FyZ3MxICIgJyRhY19hcmcnIgorKyAgICAgIGlmIHRlc3QgJGFjX211 c3Rfa2VlcF9uZXh0ID0gdHJ1ZTsgdGhlbgorKwlhY19tdXN0X2tlZXBfbmV4dD1mYWxzZSAjIEdv dCB2YWx1ZSwgYmFjayB0byBub3JtYWwuCisrICAgICAgZWxzZQorKwljYXNlICRhY19hcmcgaW4K KysJICAqPSogfCAtLWNvbmZpZy1jYWNoZSB8IC1DIHwgLWRpc2FibGUtKiB8IC0tZGlzYWJsZS0q IFwKKysJICB8IC1lbmFibGUtKiB8IC0tZW5hYmxlLSogfCAtZ2FzIHwgLS1nKiB8IC1uZnAgfCAt LW5mKiBcCisrCSAgfCAtcSB8IC1xdWlldCB8IC0tcSogfCAtc2lsZW50IHwgLS1zaWwqIHwgLXYg fCAtdmVyYiogXAorKwkgIHwgLXdpdGgtKiB8IC0td2l0aC0qIHwgLXdpdGhvdXQtKiB8IC0td2l0 aG91dC0qIHwgLS14KQorKwkgICAgY2FzZSAiJGFjX2NvbmZpZ3VyZV9hcmdzMCAiIGluCisrCSAg ICAgICIkYWNfY29uZmlndXJlX2FyZ3MxIioiICckYWNfYXJnJyAiKiApIGNvbnRpbnVlIDs7Cisr CSAgICBlc2FjCisrCSAgICA7OworKwkgIC0qICkgYWNfbXVzdF9rZWVwX25leHQ9dHJ1ZSA7Owor Kwllc2FjCisrICAgICAgZmkKKysgICAgICBhc19mbl9hcHBlbmQgYWNfY29uZmlndXJlX2FyZ3Mg IiAnJGFjX2FyZyciCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZG9uZQorK2RvbmUKKyt7IGFj X2NvbmZpZ3VyZV9hcmdzMD07IHVuc2V0IGFjX2NvbmZpZ3VyZV9hcmdzMDt9CisreyBhY19jb25m aWd1cmVfYXJnczE9OyB1bnNldCBhY19jb25maWd1cmVfYXJnczE7fQorKworKyMgV2hlbiBpbnRl cnJ1cHRlZCBvciBleGl0J2QsIGNsZWFudXAgdGVtcG9yYXJ5IGZpbGVzLCBhbmQgY29tcGxldGUK KysjIGNvbmZpZy5sb2cuICBXZSByZW1vdmUgY29tbWVudHMgYmVjYXVzZSBhbnl3YXkgdGhlIHF1 b3RlcyBpbiB0aGVyZQorKyMgd291bGQgY2F1c2UgcHJvYmxlbXMgb3IgbG9vayB1Z2x5LgorKyMg V0FSTklORzogVXNlICdcJycgdG8gcmVwcmVzZW50IGFuIGFwb3N0cm9waGUgd2l0aGluIHRoZSB0 cmFwLgorKyMgV0FSTklORzogRG8gbm90IHN0YXJ0IHRoZSB0cmFwIGNvZGUgd2l0aCBhIG5ld2xp bmUsIGR1ZSB0byBhIEZyZWVCU0QgNC4wIGJ1Zy4KKyt0cmFwICdleGl0X3N0YXR1cz0kPworKyAg IyBTYXZlIGludG8gY29uZmlnLmxvZyBzb21lIGluZm9ybWF0aW9uIHRoYXQgbWlnaHQgaGVscCBp biBkZWJ1Z2dpbmcuCisrICB7CisrICAgIGVjaG8KKysKKysgICAgJGFzX2VjaG8gIiMjIC0tLS0t LS0tLS0tLS0tLS0gIyMKKysjIyBDYWNoZSB2YXJpYWJsZXMuICMjCisrIyMgLS0tLS0tLS0tLS0t LS0tLSAjIyIKKysgICAgZWNobworKyAgICAjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcg dGhlIGNhY2hlIG1pc2hhbmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAorKygKKysgIGZvciBhY192 YXIgaW4gYChzZXQpIDI+JjEgfCBzZWQgLW4gJ1wnJ3MvXlwoW2EtekEtWl9dW2EtekEtWjAtOV9d KlwpPS4qL1wxL3AnXCcnYDsgZG8KKysgICAgZXZhbCBhY192YWw9XCQkYWNfdmFyCisrICAgIGNh c2UgJGFjX3ZhbCBpbiAjKAorKyAgICAqJHthc19ubH0qKQorKyAgICAgIGNhc2UgJGFjX3ZhciBp biAjKAorKyAgICAgICpfY3ZfKikgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBXQVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGluZSIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogY2FjaGUgdmFyaWFibGUgJGFjX3ZhciBj b250YWlucyBhIG5ld2xpbmUiID4mMjt9IDs7CisrICAgICAgZXNhYworKyAgICAgIGNhc2UgJGFj X3ZhciBpbiAjKAorKyAgICAgIF8gfCBJRlMgfCBhc19ubCkgOzsgIygKKysgICAgICBCQVNIX0FS R1YgfCBCQVNIX1NPVVJDRSkgZXZhbCAkYWNfdmFyPSA7OyAjKAorKyAgICAgICopIHsgZXZhbCAk YWNfdmFyPTsgdW5zZXQgJGFjX3Zhcjt9IDs7CisrICAgICAgZXNhYyA7OworKyAgICBlc2FjCisr ICBkb25lCisrICAoc2V0KSAyPiYxIHwKKysgICAgY2FzZSAkYXNfbmxgKGFjX3NwYWNlPSdcJycg J1wnJzsgc2V0KSAyPiYxYCBpbiAjKAorKyAgICAqJHthc19ubH1hY19zcGFjZT1cICopCisrICAg ICAgc2VkIC1uIFwKKysJInMvJ1wnJy8nXCcnXFxcXCdcJycnXCcnL2c7CisrCSAgcy9eXFwoW18k YXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT0nXCcnXFwy J1wnJy9wIgorKyAgICAgIDs7ICMoCisrICAgICopCisrICAgICAgc2VkIC1uICIvXltfJGFzX2Ny X2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKj0vcCIKKysgICAgICA7OworKyAgICBlc2FjIHwK KysgICAgc29ydAorKykKKysgICAgZWNobworKworKyAgICAkYXNfZWNobyAiIyMgLS0tLS0tLS0t LS0tLS0tLS0gIyMKKysjIyBPdXRwdXQgdmFyaWFibGVzLiAjIworKyMjIC0tLS0tLS0tLS0tLS0t LS0tICMjIgorKyAgICBlY2hvCisrICAgIGZvciBhY192YXIgaW4gJGFjX3N1YnN0X3ZhcnMKKysg ICAgZG8KKysgICAgICBldmFsIGFjX3ZhbD1cJCRhY192YXIKKysgICAgICBjYXNlICRhY192YWwg aW4KKysgICAgICAqXCdcJycqKSBhY192YWw9YCRhc19lY2hvICIkYWNfdmFsIiB8IHNlZCAicy8n XCcnLydcJydcXFxcXFxcXCdcJycnXCcnL2ciYDs7CisrICAgICAgZXNhYworKyAgICAgICRhc19l Y2hvICIkYWNfdmFyPSdcJyckYWNfdmFsJ1wnJyIKKysgICAgZG9uZSB8IHNvcnQKKysgICAgZWNo bworKworKyAgICBpZiB0ZXN0IC1uICIkYWNfc3Vic3RfZmlsZXMiOyB0aGVuCisrICAgICAgJGFz X2VjaG8gIiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBGaWxlIHN1YnN0aXR1dGlvbnMu ICMjCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLSAjIyIKKysgICAgICBlY2hvCisrICAgICAgZm9y IGFjX3ZhciBpbiAkYWNfc3Vic3RfZmlsZXMKKysgICAgICBkbworKwlldmFsIGFjX3ZhbD1cJCRh Y192YXIKKysJY2FzZSAkYWNfdmFsIGluCisrCSpcJ1wnJyopIGFjX3ZhbD1gJGFzX2VjaG8gIiRh Y192YWwiIHwgc2VkICJzLydcJycvJ1wnJ1xcXFxcXFxcJ1wnJydcJycvZyJgOzsKKysJZXNhYwor KwkkYXNfZWNobyAiJGFjX3Zhcj0nXCcnJGFjX3ZhbCdcJyciCisrICAgICAgZG9uZSB8IHNvcnQK KysgICAgICBlY2hvCisrICAgIGZpCisrCisrICAgIGlmIHRlc3QgLXMgY29uZmRlZnMuaDsgdGhl bgorKyAgICAgICRhc19lY2hvICIjIyAtLS0tLS0tLS0tLSAjIworKyMjIGNvbmZkZWZzLmguICMj CisrIyMgLS0tLS0tLS0tLS0gIyMiCisrICAgICAgZWNobworKyAgICAgIGNhdCBjb25mZGVmcy5o CisrICAgICAgZWNobworKyAgICBmaQorKyAgICB0ZXN0ICIkYWNfc2lnbmFsIiAhPSAwICYmCisr ICAgICAgJGFzX2VjaG8gIiRhc19tZTogY2F1Z2h0IHNpZ25hbCAkYWNfc2lnbmFsIgorKyAgICAk YXNfZWNobyAiJGFzX21lOiBleGl0ICRleGl0X3N0YXR1cyIKKysgIH0gPiY1CisrICBybSAtZiBj b3JlICouY29yZSBjb3JlLmNvbmZ0ZXN0LiogJiYKKysgICAgcm0gLWYgLXIgY29uZnRlc3QqIGNv bmZkZWZzKiBjb25mJCQqICRhY19jbGVhbl9maWxlcyAmJgorKyAgICBleGl0ICRleGl0X3N0YXR1 cworKycgMAorK2ZvciBhY19zaWduYWwgaW4gMSAyIDEzIDE1OyBkbworKyAgdHJhcCAnYWNfc2ln bmFsPSckYWNfc2lnbmFsJzsgYXNfZm5fZXhpdCAxJyAkYWNfc2lnbmFsCisrZG9uZQorK2FjX3Np Z25hbD0wCisrCisrIyBjb25mZGVmcy5oIGF2b2lkcyBPUyBjb21tYW5kIGxpbmUgbGVuZ3RoIGxp bWl0cyB0aGF0IERFRlMgY2FuIGV4Y2VlZC4KKytybSAtZiAtciBjb25mdGVzdCogY29uZmRlZnMu aAorKworKyRhc19lY2hvICIvKiBjb25mZGVmcy5oICovIiA+IGNvbmZkZWZzLmgKKysKKysjIFBy ZWRlZmluZWQgcHJlcHJvY2Vzc29yIHZhcmlhYmxlcy4KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8 X0FDRU9GCisrI2RlZmluZSBQQUNLQUdFX05BTUUgIiRQQUNLQUdFX05BTUUiCisrX0FDRU9GCisr CisrY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICIk UEFDS0FHRV9UQVJOQU1FIgorK19BQ0VPRgorKworK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YK KysjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiJFBBQ0tBR0VfVkVSU0lPTiIKKytfQUNFT0YKKysK KytjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBQQUNLQUdFX1NUUklORyAiJFBB Q0tBR0VfU1RSSU5HIgorK19BQ0VPRgorKworK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKysj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIkUEFDS0FHRV9CVUdSRVBPUlQiCisrX0FDRU9GCisr CisrY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgUEFDS0FHRV9VUkwgIiRQQUNL QUdFX1VSTCIKKytfQUNFT0YKKysKKysKKysjIExldCB0aGUgc2l0ZSBmaWxlIHNlbGVjdCBhbiBh bHRlcm5hdGUgY2FjaGUgZmlsZSBpZiBpdCB3YW50cyB0by4KKysjIFByZWZlciBhbiBleHBsaWNp dGx5IHNlbGVjdGVkIGZpbGUgdG8gYXV0b21hdGljYWxseSBzZWxlY3RlZCBvbmVzLgorK2FjX3Np dGVfZmlsZTE9Tk9ORQorK2FjX3NpdGVfZmlsZTI9Tk9ORQorK2lmIHRlc3QgLW4gIiRDT05GSUdf U0lURSI7IHRoZW4KKysgICMgV2UgZG8gbm90IHdhbnQgYSBQQVRIIHNlYXJjaCBmb3IgY29uZmln LnNpdGUuCisrICBjYXNlICRDT05GSUdfU0lURSBpbiAjKCgKKysgICAgLSopICBhY19zaXRlX2Zp bGUxPS4vJENPTkZJR19TSVRFOzsKKysgICAgKi8qKSBhY19zaXRlX2ZpbGUxPSRDT05GSUdfU0lU RTs7CisrICAgICopICAgYWNfc2l0ZV9maWxlMT0uLyRDT05GSUdfU0lURTs7CisrICBlc2FjCisr ZWxpZiB0ZXN0ICJ4JHByZWZpeCIgIT0geE5PTkU7IHRoZW4KKysgIGFjX3NpdGVfZmlsZTE9JHBy ZWZpeC9zaGFyZS9jb25maWcuc2l0ZQorKyAgYWNfc2l0ZV9maWxlMj0kcHJlZml4L2V0Yy9jb25m aWcuc2l0ZQorK2Vsc2UKKysgIGFjX3NpdGVfZmlsZTE9JGFjX2RlZmF1bHRfcHJlZml4L3NoYXJl L2NvbmZpZy5zaXRlCisrICBhY19zaXRlX2ZpbGUyPSRhY19kZWZhdWx0X3ByZWZpeC9ldGMvY29u ZmlnLnNpdGUKKytmaQorK2ZvciBhY19zaXRlX2ZpbGUgaW4gIiRhY19zaXRlX2ZpbGUxIiAiJGFj X3NpdGVfZmlsZTIiCisrZG8KKysgIHRlc3QgIngkYWNfc2l0ZV9maWxlIiA9IHhOT05FICYmIGNv bnRpbnVlCisrICBpZiB0ZXN0IC9kZXYvbnVsbCAhPSAiJGFjX3NpdGVfZmlsZSIgJiYgdGVzdCAt ciAiJGFjX3NpdGVfZmlsZSI7IHRoZW4KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBsb2FkaW5nIHNpdGUgc2NyaXB0ICRhY19zaXRlX2ZpbGUiID4mNQorKyRh c19lY2hvICIkYXNfbWU6IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZSIgPiY2O30K KysgICAgc2VkICdzL14vfCAvJyAiJGFjX3NpdGVfZmlsZSIgPiY1CisrICAgIC4gIiRhY19zaXRl X2ZpbGUiIFwKKysgICAgICB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CisrYXNfZm5fZXJyb3IgJD8gImZhaWxlZCB0byBsb2Fk IHNpdGUgc2NyaXB0ICRhY19zaXRlX2ZpbGUKKytTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBk ZXRhaWxzIiAiJExJTkVOTyIgNTsgfQorKyAgZmkKKytkb25lCisrCisraWYgdGVzdCAtciAiJGNh Y2hlX2ZpbGUiOyB0aGVuCisrICAjIFNvbWUgdmVyc2lvbnMgb2YgYmFzaCB3aWxsIGZhaWwgdG8g c291cmNlIC9kZXYvbnVsbCAoc3BlY2lhbCBmaWxlcworKyAgIyBhY3R1YWxseSksIHNvIHdlIGF2 b2lkIGRvaW5nIHRoYXQuICBESkdQUCBlbXVsYXRlcyBpdCBhcyBhIHJlZ3VsYXIgZmlsZS4KKysg IGlmIHRlc3QgL2Rldi9udWxsICE9ICIkY2FjaGVfZmlsZSIgJiYgdGVzdCAtZiAiJGNhY2hlX2Zp bGUiOyB0aGVuCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog bG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogbG9hZGlu ZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KKysgICAgY2FzZSAkY2FjaGVfZmlsZSBpbgorKyAg ICAgIFtcXC9dKiB8ID86W1xcL10qICkgLiAiJGNhY2hlX2ZpbGUiOzsKKysgICAgICAqKSAgICAg ICAgICAgICAgICAgICAgICAuICIuLyRjYWNoZV9maWxlIjs7CisrICAgIGVzYWMKKysgIGZpCisr ZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjcmVhdGlu ZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogY3JlYXRpbmcgY2Fj aGUgJGNhY2hlX2ZpbGUiID4mNjt9CisrICA+JGNhY2hlX2ZpbGUKKytmaQorKworKyMgQ2hlY2sg dGhhdCB0aGUgcHJlY2lvdXMgdmFyaWFibGVzIHNhdmVkIGluIHRoZSBjYWNoZSBoYXZlIGtlcHQg dGhlIHNhbWUKKysjIHZhbHVlLgorK2FjX2NhY2hlX2NvcnJ1cHRlZD1mYWxzZQorK2ZvciBhY192 YXIgaW4gJGFjX3ByZWNpb3VzX3ZhcnM7IGRvCisrICBldmFsIGFjX29sZF9zZXQ9XCRhY19jdl9l bnZfJHthY192YXJ9X3NldAorKyAgZXZhbCBhY19uZXdfc2V0PVwkYWNfZW52XyR7YWNfdmFyfV9z ZXQKKysgIGV2YWwgYWNfb2xkX3ZhbD1cJGFjX2N2X2Vudl8ke2FjX3Zhcn1fdmFsdWUKKysgIGV2 YWwgYWNfbmV3X3ZhbD1cJGFjX2Vudl8ke2FjX3Zhcn1fdmFsdWUKKysgIGNhc2UgJGFjX29sZF9z ZXQsJGFjX25ld19zZXQgaW4KKysgICAgc2V0LCkKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBcYCRhY192YXInIHdhcyBzZXQgdG8gXGAkYWNf b2xkX3ZhbCcgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IFxgJGFjX3Zhcicgd2FzIHNldCB0byBcYCRhY19vbGRfdmFsJyBpbiB0aGUgcHJldmlvdXMg cnVuIiA+JjI7fQorKyAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06IDs7CisrICAgICxzZXQpCisr ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogXGAk YWNfdmFyJyB3YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVu IiA+JjI7fQorKyAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06IDs7CisrICAgICwpOzsKKysgICAg KikKKysgICAgICBpZiB0ZXN0ICJ4JGFjX29sZF92YWwiICE9ICJ4JGFjX25ld192YWwiOyB0aGVu CisrCSMgZGlmZmVyZW5jZXMgaW4gd2hpdGVzcGFjZSBkbyBub3QgbGVhZCB0byBmYWlsdXJlLgor KwlhY19vbGRfdmFsX3c9YGVjaG8geCAkYWNfb2xkX3ZhbGAKKysJYWNfbmV3X3ZhbF93PWBlY2hv IHggJGFjX25ld192YWxgCisrCWlmIHRlc3QgIiRhY19vbGRfdmFsX3ciICE9ICIkYWNfbmV3X3Zh bF93IjsgdGhlbgorKwkgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog ZXJyb3I6IFxgJGFjX3ZhcicgaGFzIGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4m NQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBcYCRhY192YXInIGhhcyBjaGFuZ2VkIHNpbmNl IHRoZSBwcmV2aW91cyBydW46IiA+JjI7fQorKwkgIGFjX2NhY2hlX2NvcnJ1cHRlZD06CisrCWVs c2UKKysJICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHdhcm5pbmc6 IGlnbm9yaW5nIHdoaXRlc3BhY2UgY2hhbmdlcyBpbiBcYCRhY192YXInIHNpbmNlIHRoZSBwcmV2 aW91cyBydW46IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiB3YXJuaW5nOiBpZ25vcmluZyB3aGl0 ZXNwYWNlIGNoYW5nZXMgaW4gXGAkYWNfdmFyJyBzaW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiYy O30KKysJICBldmFsICRhY192YXI9XCRhY19vbGRfdmFsCisrCWZpCisrCXsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogICBmb3JtZXIgdmFsdWU6ICBcYCRhY19vbGRfdmFs JyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogICBmb3JtZXIgdmFsdWU6ICBcYCRhY19vbGRfdmFs JyIgPiYyO30KKysJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAgIGN1 cnJlbnQgdmFsdWU6IFxgJGFjX25ld192YWwnIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiAgIGN1 cnJlbnQgdmFsdWU6IFxgJGFjX25ld192YWwnIiA+JjI7fQorKyAgICAgIGZpOzsKKysgIGVzYWMK KysgICMgUGFzcyBwcmVjaW91cyB2YXJpYWJsZXMgdG8gY29uZmlnLnN0YXR1cy4KKysgIGlmIHRl c3QgIiRhY19uZXdfc2V0IiA9IHNldDsgdGhlbgorKyAgICBjYXNlICRhY19uZXdfdmFsIGluCisr ICAgICpcJyopIGFjX2FyZz0kYWNfdmFyPWAkYXNfZWNobyAiJGFjX25ld192YWwiIHwgc2VkICJz LycvJ1xcXFxcXFxcJycvZyJgIDs7CisrICAgICopIGFjX2FyZz0kYWNfdmFyPSRhY19uZXdfdmFs IDs7CisrICAgIGVzYWMKKysgICAgY2FzZSAiICRhY19jb25maWd1cmVfYXJncyAiIGluCisrICAg ICAgKiIgJyRhY19hcmcnICIqKSA7OyAjIEF2b2lkIGR1cHMuICBVc2Ugb2YgcXVvdGVzIGVuc3Vy ZXMgYWNjdXJhY3kuCisrICAgICAgKikgYXNfZm5fYXBwZW5kIGFjX2NvbmZpZ3VyZV9hcmdzICIg JyRhY19hcmcnIiA7OworKyAgICBlc2FjCisrICBmaQorK2RvbmUKKytpZiAkYWNfY2FjaGVfY29y cnVwdGVkOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGlu IFxgJGFjX3B3ZCc6IiA+JjI7fQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBlcnJvcjogY2hhbmdlcyBpbiB0aGUgZW52aXJvbm1lbnQgY2FuIGNvbXByb21pc2Ug dGhlIGJ1aWxkIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2hhbmdlcyBpbiB0aGUg ZW52aXJvbm1lbnQgY2FuIGNvbXByb21pc2UgdGhlIGJ1aWxkIiA+JjI7fQorKyAgYXNfZm5fZXJy b3IgJD8gInJ1biBcYG1ha2UgZGlzdGNsZWFuJyBhbmQvb3IgXGBybSAkY2FjaGVfZmlsZScgYW5k IHN0YXJ0IG92ZXIiICIkTElORU5PIiA1CisrZmkKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLSAj IworKyMjIE1haW4gYm9keSBvZiBzY3JpcHQuICMjCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0g IyMKKysKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0n JENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9 JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29u ZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBp bGVyX2dudQorKworKworK2FjX2NvbmZpZ19oZWFkZXJzPSIkYWNfY29uZmlnX2hlYWRlcnMgc29j aS9jb25maWcuaCIKKysKKysKKythY19hdXhfZGlyPQorK2ZvciBhY19kaXIgaW4gY29uZmlnICIk c3JjZGlyIi9jb25maWc7IGRvCisrICBpZiB0ZXN0IC1mICIkYWNfZGlyL2luc3RhbGwtc2giOyB0 aGVuCisrICAgIGFjX2F1eF9kaXI9JGFjX2RpcgorKyAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4 X2Rpci9pbnN0YWxsLXNoIC1jIgorKyAgICBicmVhaworKyAgZWxpZiB0ZXN0IC1mICIkYWNfZGly L2luc3RhbGwuc2giOyB0aGVuCisrICAgIGFjX2F1eF9kaXI9JGFjX2RpcgorKyAgICBhY19pbnN0 YWxsX3NoPSIkYWNfYXV4X2Rpci9pbnN0YWxsLnNoIC1jIgorKyAgICBicmVhaworKyAgZWxpZiB0 ZXN0IC1mICIkYWNfZGlyL3NodG9vbCI7IHRoZW4KKysgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCisr ICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGlyL3NodG9vbCBpbnN0YWxsIC1jIgorKyAgICBi cmVhaworKyAgZmkKKytkb25lCisraWYgdGVzdCAteiAiJGFjX2F1eF9kaXIiOyB0aGVuCisrICBh c19mbl9lcnJvciAkPyAiY2Fubm90IGZpbmQgaW5zdGFsbC1zaCwgaW5zdGFsbC5zaCwgb3Igc2h0 b29sIGluIGNvbmZpZyBcIiRzcmNkaXJcIi9jb25maWciICIkTElORU5PIiA1CisrZmkKKysKKysj IFRoZXNlIHRocmVlIHZhcmlhYmxlcyBhcmUgdW5kb2N1bWVudGVkIGFuZCB1bnN1cHBvcnRlZCwK KysjIGFuZCBhcmUgaW50ZW5kZWQgdG8gYmUgd2l0aGRyYXduIGluIGEgZnV0dXJlIEF1dG9jb25m IHJlbGVhc2UuCisrIyBUaGV5IGNhbiBjYXVzZSBzZXJpb3VzIHByb2JsZW1zIGlmIGEgYnVpbGRl cidzIHNvdXJjZSB0cmVlIGlzIGluIGEgZGlyZWN0b3J5CisrIyB3aG9zZSBmdWxsIG5hbWUgY29u dGFpbnMgdW51c3VhbCBjaGFyYWN0ZXJzLgorK2FjX2NvbmZpZ19ndWVzcz0iJFNIRUxMICRhY19h dXhfZGlyL2NvbmZpZy5ndWVzcyIgICMgUGxlYXNlIGRvbid0IHVzZSB0aGlzIHZhci4KKythY19j b25maWdfc3ViPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgICMgUGxlYXNlIGRvbid0 IHVzZSB0aGlzIHZhci4KKythY19jb25maWd1cmU9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWd1 cmUiICAjIFBsZWFzZSBkb24ndCB1c2UgdGhpcyB2YXIuCisrCisrCisrYW1fX2FwaV92ZXJzaW9u PScxLjExJworKworKyMgRmluZCBhIGdvb2QgaW5zdGFsbCBwcm9ncmFtLiAgV2UgcHJlZmVyIGEg QyBwcm9ncmFtIChmYXN0ZXIpLAorKyMgc28gb25lIHNjcmlwdCBpcyBhcyBnb29kIGFzIGFub3Ro ZXIuICBCdXQgYXZvaWQgdGhlIGJyb2tlbiBvcgorKyMgaW5jb21wYXRpYmxlIHZlcnNpb25zOgor KyMgU3lzViAvZXRjL2luc3RhbGwsIC91c3Ivc2Jpbi9pbnN0YWxsCisrIyBTdW5PUyAvdXNyL2V0 Yy9pbnN0YWxsCisrIyBJUklYIC9zYmluL2luc3RhbGwKKysjIEFJWCAvYmluL2luc3RhbGwKKysj IEFtaWdhT1MgL0MvaW5zdGFsbCwgd2hpY2ggaW5zdGFsbHMgYm9vdGJsb2NrcyBvbiBmbG9wcHkg ZGlzY3MKKysjIEFJWCA0IC91c3IvYmluL2luc3RhbGxic2QsIHdoaWNoIGRvZXNuJ3Qgd29yayB3 aXRob3V0IGEgLWcgZmxhZworKyMgQUZTIC91c3IvYWZzd3MvYmluL2luc3RhbGwsIHdoaWNoIG1p c2hhbmRsZXMgbm9uZXhpc3RlbnQgYXJncworKyMgU1ZSNCAvdXNyL3VjYi9pbnN0YWxsLCB3aGlj aCB0cmllcyB0byB1c2UgdGhlIG5vbmV4aXN0ZW50IGdyb3VwICJzdGFmZiIKKysjIE9TLzIncyBz eXN0ZW0gaW5zdGFsbCwgd2hpY2ggaGFzIGEgY29tcGxldGVseSBkaWZmZXJlbnQgc2VtYW50aWMK KysjIC4vaW5zdGFsbCwgd2hpY2ggY2FuIGJlIGVycm9uZW91c2x5IGNyZWF0ZWQgYnkgbWFrZSBm cm9tIC4vaW5zdGFsbC5zaC4KKysjIFJlamVjdCBpbnN0YWxsIHByb2dyYW1zIHRoYXQgY2Fubm90 IGluc3RhbGwgbXVsdGlwbGUgZmlsZXMuCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uICIgPiY2 OyB9CisraWYgdGVzdCAteiAiJElOU1RBTEwiOyB0aGVuCisraWYgdGVzdCAiJHthY19jdl9wYXRo X2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9y IGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIk YXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICAjIEFjY291bnQgZm9yIHBlb3BsZSB3aG8gcHV0IHRy YWlsaW5nIHNsYXNoZXMgaW4gUEFUSCBlbGVtZW50cy4KKytjYXNlICRhc19kaXIvIGluICMoKAor KyAgLi8gfCAuLy8gfCAvW2NDXS8qIHwgXAorKyAgL2V0Yy8qIHwgL3Vzci9zYmluLyogfCAvdXNy L2V0Yy8qIHwgL3NiaW4vKiB8IC91c3IvYWZzd3MvYmluLyogfCBcCisrICA/OltcXC9db3MyW1xc L11pbnN0YWxsW1xcL10qIHwgPzpbXFwvXU9TMltcXC9dSU5TVEFMTFtcXC9dKiB8IFwKKysgIC91 c3IvdWNiLyogKSA7OworKyAgKikKKysgICAgIyBPU0YxIGFuZCBTQ08gT0RUIDMuMCBoYXZlIHRo ZWlyIG93biBuYW1lcyBmb3IgaW5zdGFsbC4KKysgICAgIyBEb24ndCB1c2UgaW5zdGFsbGJzZCBm cm9tIE9TRiBzaW5jZSBpdCBpbnN0YWxscyBzdHVmZiBhcyByb290CisrICAgICMgYnkgZGVmYXVs dC4KKysgICAgZm9yIGFjX3Byb2cgaW4gZ2luc3RhbGwgc2NvaW5zdCBpbnN0YWxsOyBkbworKyAg ICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwor KwlpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiOyB9OyB0aGVuCisrCSAgaWYgdGVzdCAk YWNfcHJvZyA9IGluc3RhbGwgJiYKKysJICAgIGdyZXAgZHNwbXNnICIkYXNfZGlyLyRhY19wcm9n JGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJICAgICMgQUlYIGluc3RhbGwu ICBJdCBoYXMgYW4gaW5jb21wYXRpYmxlIGNhbGxpbmcgY29udmVudGlvbi4KKysJICAgIDoKKysJ ICBlbGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCisrCSAgICBncmVwIHB3cGx1cyAiJGFz X2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCSAgICAj IHByb2dyYW0tc3BlY2lmaWMgaW5zdGFsbCBzY3JpcHQgdXNlZCBieSBIUCBwd3BsdXMtLWRvbid0 IHVzZS4KKysJICAgIDoKKysJICBlbHNlCisrCSAgICBybSAtcmYgY29uZnRlc3Qub25lIGNvbmZ0 ZXN0LnR3byBjb25mdGVzdC5kaXIKKysJICAgIGVjaG8gb25lID4gY29uZnRlc3Qub25lCisrCSAg ICBlY2hvIHR3byA+IGNvbmZ0ZXN0LnR3bworKwkgICAgbWtkaXIgY29uZnRlc3QuZGlyCisrCSAg ICBpZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgLWMgY29uZnRlc3Qub25lIGNvbmZ0 ZXN0LnR3byAiYHB3ZGAvY29uZnRlc3QuZGlyIiAmJgorKwkgICAgICB0ZXN0IC1zIGNvbmZ0ZXN0 Lm9uZSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LnR3byAmJgorKwkgICAgICB0ZXN0IC1zIGNvbmZ0ZXN0 LmRpci9jb25mdGVzdC5vbmUgJiYKKysJICAgICAgdGVzdCAtcyBjb25mdGVzdC5kaXIvY29uZnRl c3QudHdvCisrCSAgICB0aGVuCisrCSAgICAgIGFjX2N2X3BhdGhfaW5zdGFsbD0iJGFzX2Rpci8k YWNfcHJvZyRhY19leGVjX2V4dCAtYyIKKysJICAgICAgYnJlYWsgMworKwkgICAgZmkKKysJICBm aQorKwlmaQorKyAgICAgIGRvbmUKKysgICAgZG9uZQorKyAgICA7OworK2VzYWMKKysKKysgIGRv bmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrcm0gLXJmIGNvbmZ0ZXN0Lm9uZSBjb25mdGVzdC50 d28gY29uZnRlc3QuZGlyCisrCisrZmkKKysgIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxs K3NldH0iID0gc2V0OyB0aGVuCisrICAgIElOU1RBTEw9JGFjX2N2X3BhdGhfaW5zdGFsbAorKyAg ZWxzZQorKyAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQu ICBEb24ndCBjYWNoZSBhCisrICAgICMgdmFsdWUgZm9yIElOU1RBTEwgd2l0aGluIGEgc291cmNl IGRpcmVjdG9yeSwgYmVjYXVzZSB0aGF0IHdpbGwKKysgICAgIyBicmVhayBvdGhlciBwYWNrYWdl cyB1c2luZyB0aGUgY2FjaGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMKKysgICAgIyByZW1vdmVkLCBv ciBpZiB0aGUgdmFsdWUgaXMgYSByZWxhdGl2ZSBuYW1lLgorKyAgICBJTlNUQUxMPSRhY19pbnN0 YWxsX3NoCisrICBmaQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6ICRJTlNUQUxMIiA+JjUKKyskYXNfZWNobyAiJElOU1RBTEwiID4mNjsgfQor KworKyMgVXNlIHRlc3QgLXogYmVjYXVzZSBTdW5PUzQgc2ggbWlzaGFuZGxlcyBicmFjZXMgaW4g JHt2YXItdmFsfS4KKysjIEl0IHRoaW5rcyB0aGUgZmlyc3QgY2xvc2UgYnJhY2UgZW5kcyB0aGUg dmFyaWFibGUgc3Vic3RpdHV0aW9uLgorK3Rlc3QgLXogIiRJTlNUQUxMX1BST0dSQU0iICYmIElO U1RBTExfUFJPR1JBTT0nJHtJTlNUQUxMfScKKysKKyt0ZXN0IC16ICIkSU5TVEFMTF9TQ1JJUFQi ICYmIElOU1RBTExfU0NSSVBUPScke0lOU1RBTEx9JworKworK3Rlc3QgLXogIiRJTlNUQUxMX0RB VEEiICYmIElOU1RBTExfREFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCisrCisreyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmly b25tZW50IGlzIHNhbmUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgYnVpbGQg ZW52aXJvbm1lbnQgaXMgc2FuZS4uLiAiID4mNjsgfQorKyMgSnVzdCBpbiBjYXNlCisrc2xlZXAg MQorK2VjaG8gdGltZXN0YW1wID4gY29uZnRlc3QuZmlsZQorKyMgUmVqZWN0IHVuc2FmZSBjaGFy YWN0ZXJzIGluICRzcmNkaXIgb3IgdGhlIGFic29sdXRlIHdvcmtpbmcgZGlyZWN0b3J5CisrIyBu YW1lLiAgQWNjZXB0IHNwYWNlIGFuZCB0YWIgb25seSBpbiB0aGUgbGF0dGVyLgorK2FtX2xmPScK KysnCisrY2FzZSBgcHdkYCBpbgorKyAgKltcXFwiXCNcJFwmXCdcYCRhbV9sZl0qKQorKyAgICBh c19mbl9lcnJvciAkPyAidW5zYWZlIGFic29sdXRlIHdvcmtpbmcgZGlyZWN0b3J5IG5hbWUiICIk TElORU5PIiA1OzsKKytlc2FjCisrY2FzZSAkc3JjZGlyIGluCisrICAqW1xcXCJcI1wkXCZcJ1xg JGFtX2xmXCBcCV0qKQorKyAgICBhc19mbl9lcnJvciAkPyAidW5zYWZlIHNyY2RpciB2YWx1ZTog XGAkc3JjZGlyJyIgIiRMSU5FTk8iIDU7OworK2VzYWMKKysKKysjIERvIGBzZXQnIGluIGEgc3Vi c2hlbGwgc28gd2UgZG9uJ3QgY2xvYmJlciB0aGUgY3VycmVudCBzaGVsbCdzCisrIyBhcmd1bWVu dHMuICBNdXN0IHRyeSAtTCBmaXJzdCBpbiBjYXNlIGNvbmZpZ3VyZSBpcyBhY3R1YWxseSBhCisr IyBzeW1saW5rOyBzb21lIHN5c3RlbXMgcGxheSB3ZWlyZCBnYW1lcyB3aXRoIHRoZSBtb2QgdGlt ZSBvZiBzeW1saW5rcworKyMgKGVnIEZyZWVCU0QgcmV0dXJucyB0aGUgbW9kIHRpbWUgb2YgdGhl IHN5bWxpbmsncyBjb250YWluaW5nCisrIyBkaXJlY3RvcnkpLgorK2lmICgKKysgICBzZXQgWCBg bHMgLUx0ICIkc3JjZGlyL2NvbmZpZ3VyZSIgY29uZnRlc3QuZmlsZSAyPiAvZGV2L251bGxgCisr ICAgaWYgdGVzdCAiJCoiID0gIlgiOyB0aGVuCisrICAgICAgIyAtTCBkaWRuJ3Qgd29yay4KKysg ICAgICBzZXQgWCBgbHMgLXQgIiRzcmNkaXIvY29uZmlndXJlIiBjb25mdGVzdC5maWxlYAorKyAg IGZpCisrICAgcm0gLWYgY29uZnRlc3QuZmlsZQorKyAgIGlmIHRlc3QgIiQqIiAhPSAiWCAkc3Jj ZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIiBcCisrICAgICAgJiYgdGVzdCAiJCoiICE9ICJY IGNvbmZ0ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUiOyB0aGVuCisrCisrICAgICAgIyBJZiBu ZWl0aGVyIG1hdGNoZWQsIHRoZW4gd2UgaGF2ZSBhIGJyb2tlbiBscy4gIFRoaXMgY2FuIGhhcHBl bgorKyAgICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0 IGluaGVyaXRzIGEKKysgICAgICAjIGJyb2tlbiBscyBhbGlhcyBmcm9tIHRoZSBlbnZpcm9ubWVu dC4gIFRoaXMgaGFzIGFjdHVhbGx5CisrICAgICAgIyBoYXBwZW5lZC4gIFN1Y2ggYSBzeXN0ZW0g Y291bGQgbm90IGJlIGNvbnNpZGVyZWQgInNhbmUiLgorKyAgICAgIGFzX2ZuX2Vycm9yICQ/ICJs cyAtdCBhcHBlYXJzIHRvIGZhaWwuICBNYWtlIHN1cmUgdGhlcmUgaXMgbm90IGEgYnJva2VuCisr YWxpYXMgaW4geW91ciBlbnZpcm9ubWVudCIgIiRMSU5FTk8iIDUKKysgICBmaQorKworKyAgIHRl c3QgIiQyIiA9IGNvbmZ0ZXN0LmZpbGUKKysgICApCisgdGhlbgorLSAgICBpZiBbICQxID0gIi1o ZWxwIiAtbyAkMSA9ICItLWhlbHAiIF0KKy0gICAgdGhlbgorLSAgICAgICAgZWNobyAnUmVjb2du aXplZCBjb25maWd1cmUgb3B0aW9uczonCistICAgICAgICBlY2hvICcnCistICAgICAgICBlY2hv ICdJbnN0YWxsYXRpb24gb3B0aW9uczonCistICAgICAgICBlY2hvICctLWluY2x1ZGUtcHJlZml4 PS9zb21lL3BhdGggICAgICAtIHBhdGggdG8gaW5zdGFsbCBTT0NJIGhlYWRlciBmaWxlcycKKy0g ICAgICAgIGVjaG8gJy0tbGliLXByZWZpeD0vc29tZS9wYXRoICAgICAgICAgIC0gcGF0aCB0byBp bnN0YWxsIFNPQ0kgbGlicmFyaWVzJworLSAgICAgICAgZWNobyAnJworLSAgICAgICAgZWNobyAn TXlTUUwgb3B0aW9uczonCistICAgICAgICBlY2hvICctLW15c3FsLWluY2x1ZGU9L3NvbWUvcGF0 aCAgICAgICAtIGRpcmVjdG9yeSBjb250YWluaW5nIG15c3FsLmgnCistICAgICAgICBlY2hvICct LW15c3FsLWxpYj0vc29tZS9wYXRoICAgICAgICAgICAtIGRpcmVjdG9yeSBjb250YWluaW5nIGxp Ym15c3FsY2xpZW50LlthfHNvXScKKy0gICAgICAgIGVjaG8gJycKKy0gICAgICAgIGVjaG8gJ09y YWNsZSBvcHRpb25zIChpZiBPUkFDTEVfSE9NRSB2YXJpYWJsZSBpcyBub3Qgc2V0KTonCistICAg ICAgICBlY2hvICctLW9yYWNsZS1pbmNsdWRlPS9zb21lL3BhdGggICAgICAtIGRpcmVjdG9yeSBj b250YWluaW5nIG9jaS5oJworLSAgICAgICAgZWNobyAnLS1vcmFjbGUtbGliPS9zb21lL3BhdGgg ICAgICAgICAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJjbG50c2guW2F8c29dJworLSAgICAg ICAgZWNobyAnJworLSAgICAgICAgZWNobyAnUG9zdGdyZVNRTCBvcHRpb25zOicKKy0gICAgICAg IGVjaG8gJy0tcG9zdGdyZXNxbC1pbmNsdWRlPS9zb21lL3BhdGggIC0gZGlyZWN0b3J5IGNvbnRh aW5pbmcgbGlicHEvbGlicHEtZnMuaCcKKy0gICAgICAgIGVjaG8gJy0tcG9zdGdyZXNxbC1saWI9 L3NvbWUvcGF0aCAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGlicHEuW2F8c29dJworLSAg ICAgICAgZWNobyAnJworLSAgICAgICAgZWNobyAnVGVzdCBwcm9ncmFtcyBjb21waWxhdGlvbiBv cHRpb25zIChub3QgbmVlZGVkIGZvciBsaWJyYXJ5IGJ1aWxkKTonCistICAgICAgICBlY2hvICct LWJvb3N0LWluY2x1ZGU9L3NvbWUvcGF0aCAgICAgICAtIHJvb3QgaW5jbHVkZSBkaXJlY3Rvcnkg b2YgQm9vc3QnCistICAgICAgICBlY2hvICctLWJvb3N0LWxpYj0vc29tZS9wYXRoICAgICAgICAg ICAtIHJvb3QgbGliIGRpcmVjdG9yeSBvZiBCb29zdCcKKy0gICAgICAgIGVjaG8gJycKKy0gICAg ICAgIGV4aXQKKysgICAjIE9rLgorKyAgIDoKKytlbHNlCisrICAgYXNfZm5fZXJyb3IgJD8gIm5l d2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFuIGRpc3RyaWJ1dGVkIGZpbGVzIQorK0NoZWNr IHlvdXIgc3lzdGVtIGNsb2NrIiAiJExJTkVOTyIgNQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIg PiY2OyB9CisrdGVzdCAiJHByb2dyYW1fcHJlZml4IiAhPSBOT05FICYmCisrICBwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lPSJzJl4mJHByb2dyYW1fcHJlZml4JjskcHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZSIKKysjIFVzZSBhIGRvdWJsZSAkIHNvIG1ha2UgaWdub3JlcyBpdC4KKyt0ZXN0ICIkcHJvZ3Jh bV9zdWZmaXgiICE9IE5PTkUgJiYKKysgIHByb2dyYW1fdHJhbnNmb3JtX25hbWU9InMmXCQmJHBy b2dyYW1fc3VmZml4JjskcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSIKKysjIERvdWJsZSBhbnkgXCBv ciAkLgorKyMgQnkgZGVmYXVsdCB3YXMgYHMseCx4JywgcmVtb3ZlIGl0IGlmIHVzZWxlc3MuCisr YWNfc2NyaXB0PSdzL1tcXCRdLyYmL2c7cy87cyx4LHgsJC8vJworK3Byb2dyYW1fdHJhbnNmb3Jt X25hbWU9YCRhc19lY2hvICIkcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSIgfCBzZWQgIiRhY19zY3Jp cHQiYAorKworKyMgZXhwYW5kICRhY19hdXhfZGlyIHRvIGFuIGFic29sdXRlIHBhdGgKKythbV9h dXhfZGlyPWBjZCAkYWNfYXV4X2RpciAmJiBwd2RgCisrCisraWYgdGVzdCB4IiR7TUlTU0lORytz ZXR9IiAhPSB4c2V0OyB0aGVuCisrICBjYXNlICRhbV9hdXhfZGlyIGluCisrICAqXCAqIHwgKlwJ KikKKysgICAgTUlTU0lORz0iXCR7U0hFTEx9IFwiJGFtX2F1eF9kaXIvbWlzc2luZ1wiIiA7Owor KyAgKikKKysgICAgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL21pc3NpbmciIDs7Cisr ICBlc2FjCisrZmkKKysjIFVzZSBldmFsIHRvIGV4cGFuZCAkU0hFTEwKKytpZiBldmFsICIkTUlT U0lORyAtLXJ1biB0cnVlIjsgdGhlbgorKyAgYW1fbWlzc2luZ19ydW49IiRNSVNTSU5HIC0tcnVu ICIKKytlbHNlCisrICBhbV9taXNzaW5nX3J1bj0KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogV0FSTklORzogXGBtaXNzaW5nJyBzY3JpcHQgaXMgdG9vIG9sZCBv ciBtaXNzaW5nIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBcYG1pc3NpbmcnIHNj cmlwdCBpcyB0b28gb2xkIG9yIG1pc3NpbmciID4mMjt9CisrZmkKKysKKytpZiB0ZXN0IHgiJHtp bnN0YWxsX3NofSIgIT0geHNldDsgdGhlbgorKyAgY2FzZSAkYW1fYXV4X2RpciBpbgorKyAgKlwg KiB8ICpcCSopCisrICAgIGluc3RhbGxfc2g9Ilwke1NIRUxMfSAnJGFtX2F1eF9kaXIvaW5zdGFs bC1zaCciIDs7CisrICAqKQorKyAgICBpbnN0YWxsX3NoPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIv aW5zdGFsbC1zaCIKKysgIGVzYWMKKytmaQorKworKyMgSW5zdGFsbGVkIGJpbmFyaWVzIGFyZSB1 c3VhbGx5IHN0cmlwcGVkIHVzaW5nIGBzdHJpcCcgd2hlbiB0aGUgdXNlcgorKyMgcnVuIGBtYWtl IGluc3RhbGwtc3RyaXAnLiAgSG93ZXZlciBgc3RyaXAnIG1pZ2h0IG5vdCBiZSB0aGUgcmlnaHQK KysjIHRvb2wgdG8gdXNlIGluIGNyb3NzLWNvbXBpbGF0aW9uIGVudmlyb25tZW50cywgdGhlcmVm b3JlIEF1dG9tYWtlCisrIyB3aWxsIGhvbm9yIHRoZSBgU1RSSVAnIGVudmlyb25tZW50IHZhcmlh YmxlIHRvIG92ZXJydWxlIHRoaXMgcHJvZ3JhbS4KKytpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5n IiAhPSBubzsgdGhlbgorKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAg IyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fXN0cmlwIiwgc28g aXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJHthY190b29s X3ByZWZpeH1zdHJpcDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfU1RS SVArc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBpZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCisrICBhY19jdl9wcm9nX1NUUklQPSIk U1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2Rv CisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgor KyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8K KysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rl c3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3Zf cHJvZ19TVFJJUD0iJHthY190b29sX3ByZWZpeH1zdHJpcCIKKysgICAgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2 ZV9JRlMKKysKKytmaQorK2ZpCisrU1RSSVA9JGFjX2N2X3Byb2dfU1RSSVAKKytpZiB0ZXN0IC1u ICIkU1RSSVAiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogJFNUUklQIiA+JjUKKyskYXNfZWNobyAiJFNUUklQIiA+JjY7IH0KKytlbHNl CisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8i ID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytmaQorK2lmIHRlc3QgLXog IiRhY19jdl9wcm9nX1NUUklQIjsgdGhlbgorKyAgYWNfY3RfU1RSSVA9JFNUUklQCisrICAjIEV4 dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInN0cmlwIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBu YW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgc3RyaXA7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVz dCAiJHthY19jdl9wcm9nX2FjX2N0X1NUUklQK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGFjX2N0X1NUUklQ IjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0iJGFjX2N0X1NUUklQIiAjIExldCB0 aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19z YXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAgZm9yIGFjX2V4 ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3Qg LWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfU1RS SVA9InN0cmlwIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAg ZmkKKytkb25lCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKythY19j dF9TVFJJUD0kYWNfY3ZfcHJvZ19hY19jdF9TVFJJUAorK2lmIHRlc3QgLW4gIiRhY19jdF9TVFJJ UCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiAkYWNfY3RfU1RSSVAiID4mNQorKyRhc19lY2hvICIkYWNfY3RfU1RSSVAiID4mNjsgfQor K2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRh Y19jdF9TVFJJUCIgPSB4OyB0aGVuCisrICAgIFNUUklQPSI6IgorKyAgZWxzZQorKyAgICBjYXNl ICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xz IG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog V0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0 IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgU1RSSVA9JGFjX2N0 X1NUUklQCisrICBmaQorK2Vsc2UKKysgIFNUUklQPSIkYWNfY3ZfcHJvZ19TVFJJUCIKKytmaQor KworK2ZpCisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNPSJcJChpbnN0YWxsX3NoKSAtYyAtcyIKKysK Kyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBh IHRocmVhZC1zYWZlIG1rZGlyIC1wIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSB0 aHJlYWQtc2FmZSBta2RpciAtcC4uLiAiID4mNjsgfQorK2lmIHRlc3QgLXogIiRNS0RJUl9QIjsg dGhlbgorKyAgaWYgdGVzdCAiJHthY19jdl9wYXRoX21rZGlyK3NldH0iID0gc2V0OyB0aGVuIDoK KysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYXNfc2F2ZV9JRlM9JElG UzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgkUEFUSF9TRVBBUkFU T1Ivb3B0L3Nmdy9iaW4KKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFz X2RpciIgJiYgYXNfZGlyPS4KKysgICAgZm9yIGFjX3Byb2cgaW4gbWtkaXIgZ21rZGlyOyBkbwor KwkgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisr CSAgIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3Rf eCAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCI7IH0gfHwgY29udGludWUKKysJICAgY2Fz ZSBgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiIC0tdmVyc2lvbiAyPiYxYCBpbiAjKAor KwkgICAgICdta2RpciAoR05VIGNvcmV1dGlscykgJyogfCBcCisrCSAgICAgJ21rZGlyIChjb3Jl dXRpbHMpICcqIHwgXAorKwkgICAgICdta2RpciAoZmlsZXV0aWxzKSAnNC4xKikKKysJICAgICAg IGFjX2N2X3BhdGhfbWtkaXI9JGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dAorKwkgICAgICAg YnJlYWsgMzs7CisrCSAgIGVzYWMKKysJIGRvbmUKKysgICAgICAgZG9uZQorKyAgZG9uZQorK0lG Uz0kYXNfc2F2ZV9JRlMKKysKKytmaQorKworKyAgdGVzdCAtZCAuLy0tdmVyc2lvbiAmJiBybWRp ciAuLy0tdmVyc2lvbgorKyAgaWYgdGVzdCAiJHthY19jdl9wYXRoX21rZGlyK3NldH0iID0gc2V0 OyB0aGVuCisrICAgIE1LRElSX1A9IiRhY19jdl9wYXRoX21rZGlyIC1wIgorKyAgZWxzZQorKyAg ICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQuICBEb24ndCBj YWNoZSBhCisrICAgICMgdmFsdWUgZm9yIE1LRElSX1Agd2l0aGluIGEgc291cmNlIGRpcmVjdG9y eSwgYmVjYXVzZSB0aGF0IHdpbGwKKysgICAgIyBicmVhayBvdGhlciBwYWNrYWdlcyB1c2luZyB0 aGUgY2FjaGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMKKysgICAgIyByZW1vdmVkLCBvciBpZiB0aGUg dmFsdWUgaXMgYSByZWxhdGl2ZSBuYW1lLgorKyAgICBNS0RJUl9QPSIkYWNfaW5zdGFsbF9zaCAt ZCIKKysgIGZpCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogJE1LRElSX1AiID4mNQorKyRhc19lY2hvICIkTUtESVJfUCIgPiY2OyB9CisrCisr bWtkaXJfcD0iJE1LRElSX1AiCisrY2FzZSAkbWtkaXJfcCBpbgorKyAgW1xcLyRdKiB8ID86W1xc L10qKSA7OworKyAgKi8qKSBta2Rpcl9wPSJcJCh0b3BfYnVpbGRkaXIpLyRta2Rpcl9wIiA7Owor K2VzYWMKKysKKytmb3IgYWNfcHJvZyBpbiBnYXdrIG1hd2sgbmF3ayBhd2sKKytkbworKyAgIyBF eHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dy YW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQyCisreyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dv cmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQor K2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19BV0src2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkQVdLIjsgdGhlbgor KyAgYWNfY3ZfcHJvZ19BV0s9IiRBV0siICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFz X2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19BV0s9IiRhY19wcm9nIgorKyAgICAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrICBkb25lCisrSUZTPSRhc19z YXZlX0lGUworKworK2ZpCisrZmkKKytBV0s9JGFjX2N2X3Byb2dfQVdLCisraWYgdGVzdCAtbiAi JEFXSyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog cmVzdWx0OiAkQVdLIiA+JjUKKyskYXNfZWNobyAiJEFXSyIgPiY2OyB9CisrZWxzZQorKyAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKysk YXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICB0ZXN0IC1uICIkQVdLIiAmJiBicmVh aworK2RvbmUKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkuLi4gIiA+JjY7 IH0KKytzZXQgeCAke01BS0UtbWFrZX0KKythY19tYWtlPWAkYXNfZWNobyAiJDIiIHwgc2VkICdz LysvcC9nOyBzL1teYS16QS1aMC05X10vXy9nJ2AKKytpZiBldmFsICJ0ZXN0IFwiXCR7YWNfY3Zf cHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0K3NldH1cIiIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXQgPmNvbmZ0ZXN0Lm1ha2UgPDxcX0FD RU9GCisrU0hFTEwgPSAvYmluL3NoCisrYWxsOgorKwlAZWNobyAnQEBAJSUlPSQoTUFLRSk9QEBA JSUlJworK19BQ0VPRgorKyMgR05VIG1ha2Ugc29tZXRpbWVzIHByaW50cyAibWFrZVsxXTogRW50 ZXJpbmcgLi4uIiwgd2hpY2ggd291bGQgY29uZnVzZSB1cy4KKytjYXNlIGAke01BS0UtbWFrZX0g LWYgY29uZnRlc3QubWFrZSAyPi9kZXYvbnVsbGAgaW4KKysgICpAQEAlJSU9Pyo9QEBAJSUlKikK KysgICAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9eWVzOzsKKysgICopCisr ICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0PW5vOzsKKytlc2FjCisrcm0g LWYgY29uZnRlc3QubWFrZQorK2ZpCisraWYgZXZhbCB0ZXN0IFwkYWNfY3ZfcHJvZ19tYWtlXyR7 YWNfbWFrZX1fc2V0ID0geWVzOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKysg IFNFVF9NQUtFPQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysgIFNFVF9NQUtF PSJNQUtFPSR7TUFLRS1tYWtlfSIKKytmaQorKworK3JtIC1yZiAudHN0IDI+L2Rldi9udWxsCisr bWtkaXIgLnRzdCAyPi9kZXYvbnVsbAorK2lmIHRlc3QgLWQgLnRzdDsgdGhlbgorKyAgYW1fX2xl YWRpbmdfZG90PS4KKytlbHNlCisrICBhbV9fbGVhZGluZ19kb3Q9XworK2ZpCisrcm1kaXIgLnRz dCAyPi9kZXYvbnVsbAorKworK2lmIHRlc3QgImBjZCAkc3JjZGlyICYmIHB3ZGAiICE9ICJgcHdk YCI7IHRoZW4KKysgICMgVXNlIC1JJChzcmNkaXIpIG9ubHkgd2hlbiAkKHNyY2RpcikgIT0gLiwg c28gdGhhdCBtYWtlJ3Mgb3V0cHV0CisrICAjIGlzIG5vdCBwb2xsdXRlZCB3aXRoIHJlcGVhdGVk ICItSS4iCisrICBhbV9faXNyYz0nIC1JJChzcmNkaXIpJworKyAgIyB0ZXN0IHRvIHNlZSBpZiBz cmNkaXIgYWxyZWFkeSBjb25maWd1cmVkCisrICBpZiB0ZXN0IC1mICRzcmNkaXIvY29uZmlnLnN0 YXR1czsgdGhlbgorKyAgICBhc19mbl9lcnJvciAkPyAic291cmNlIGRpcmVjdG9yeSBhbHJlYWR5 IGNvbmZpZ3VyZWQ7IHJ1biBcIm1ha2UgZGlzdGNsZWFuXCIgdGhlcmUgZmlyc3QiICIkTElORU5P IiA1CisrICBmaQorK2ZpCisrCisrIyB0ZXN0IHdoZXRoZXIgd2UgaGF2ZSBjeWdwYXRoCisraWYg dGVzdCAteiAiJENZR1BBVEhfVyI7IHRoZW4KKysgIGlmIChjeWdwYXRoIC0tdmVyc2lvbikgPi9k ZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgorKyAgICBDWUdQQVRIX1c9J2N5Z3BhdGggLXcnCisr ICBlbHNlCisrICAgIENZR1BBVEhfVz1lY2hvCisrICBmaQorK2ZpCisrCisrCisrIyBEZWZpbmUg dGhlIGlkZW50aXR5IG9mIHRoZSBwYWNrYWdlLgorKyBQQUNLQUdFPSdzb2NpJworKyBWRVJTSU9O PSczLjAuMCcKKysKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBQQUNL QUdFICIkUEFDS0FHRSIKKytfQUNFT0YKKysKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9G CisrI2RlZmluZSBWRVJTSU9OICIkVkVSU0lPTiIKKytfQUNFT0YKKysKKysjIFNvbWUgdG9vbHMg QXV0b21ha2UgbmVlZHMuCisrCisrQUNMT0NBTD0ke0FDTE9DQUwtIiR7YW1fbWlzc2luZ19ydW59 YWNsb2NhbC0ke2FtX19hcGlfdmVyc2lvbn0ifQorKworKworK0FVVE9DT05GPSR7QVVUT0NPTkYt IiR7YW1fbWlzc2luZ19ydW59YXV0b2NvbmYifQorKworKworK0FVVE9NQUtFPSR7QVVUT01BS0Ut IiR7YW1fbWlzc2luZ19ydW59YXV0b21ha2UtJHthbV9fYXBpX3ZlcnNpb259In0KKysKKysKKytB VVRPSEVBREVSPSR7QVVUT0hFQURFUi0iJHthbV9taXNzaW5nX3J1bn1hdXRvaGVhZGVyIn0KKysK KysKKytNQUtFSU5GTz0ke01BS0VJTkZPLSIke2FtX21pc3NpbmdfcnVufW1ha2VpbmZvIn0KKysK KysjIFdlIG5lZWQgYXdrIGZvciB0aGUgImNoZWNrIiB0YXJnZXQuICBUaGUgc3lzdGVtICJhd2si IGlzIGJhZCBvbgorKyMgc29tZSBwbGF0Zm9ybXMuCisrIyBBbHdheXMgZGVmaW5lIEFNVEFSIGZv ciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorKworK0FNVEFSPSR7QU1UQVItIiR7YW1fbWlzc2lu Z19ydW59dGFyIn0KKysKKythbV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIic7IGFt X191bnRhcj0nJHtBTVRBUn0geGYgLScKKysKKysKKysKKysKKysKKysKKysKKysKKysjIENoZWNr IHdoZXRoZXIgLS13aXRoLWNwcHVuaXQtcHJlZml4IHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dp dGhfY3BwdW5pdF9wcmVmaXgrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgd2l0aHZhbD0kd2l0aF9j cHB1bml0X3ByZWZpeDsgY3BwdW5pdF9jb25maWdfcHJlZml4PSIkd2l0aHZhbCIKKytlbHNlCisr ICBjcHB1bml0X2NvbmZpZ19wcmVmaXg9IiIKKytmaQorKworKworKyMgQ2hlY2sgd2hldGhlciAt LXdpdGgtY3BwdW5pdC1leGVjLXByZWZpeCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX2Nw cHVuaXRfZXhlY19wcmVmaXgrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgd2l0aHZhbD0kd2l0aF9j cHB1bml0X2V4ZWNfcHJlZml4OyBjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeD0iJHdpdGh2YWwi CisrZWxzZQorKyAgY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXg9IiIKKytmaQorKworKworKyAg aWYgdGVzdCB4JGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4ICE9IHggOyB0aGVuCisrICAgICBj cHB1bml0X2NvbmZpZ19hcmdzPSIkY3BwdW5pdF9jb25maWdfYXJncyAtLWV4ZWMtcHJlZml4PSRj cHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeCIKKysgICAgIGlmIHRlc3QgeCR7Q1BQVU5JVF9DT05G SUcrc2V0fSAhPSB4c2V0IDsgdGhlbgorKyAgICAgICAgQ1BQVU5JVF9DT05GSUc9JGNwcHVuaXRf Y29uZmlnX2V4ZWNfcHJlZml4L2Jpbi9jcHB1bml0LWNvbmZpZworKyAgICAgZmkKKysgIGZpCisr ICBpZiB0ZXN0IHgkY3BwdW5pdF9jb25maWdfcHJlZml4ICE9IHggOyB0aGVuCisrICAgICBjcHB1 bml0X2NvbmZpZ19hcmdzPSIkY3BwdW5pdF9jb25maWdfYXJncyAtLXByZWZpeD0kY3BwdW5pdF9j b25maWdfcHJlZml4IgorKyAgICAgaWYgdGVzdCB4JHtDUFBVTklUX0NPTkZJRytzZXR9ICE9IHhz ZXQgOyB0aGVuCisrICAgICAgICBDUFBVTklUX0NPTkZJRz0kY3BwdW5pdF9jb25maWdfcHJlZml4 L2Jpbi9jcHB1bml0LWNvbmZpZworKyAgICAgZmkKKysgIGZpCisrCisrICAjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgImNwcHVuaXQtY29uZmlnIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBu YW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgY3BwdW5pdC1jb25maWc7IGFjX3dvcmQ9JDIKKyt7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNf d29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9 CisraWYgdGVzdCAiJHthY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHK3NldH0iID0gc2V0OyB0aGVu IDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2FzZSAkQ1BQVU5J VF9DT05GSUcgaW4KKysgIFtcXC9dKiB8ID86W1xcL10qKQorKyAgYWNfY3ZfcGF0aF9DUFBVTklU X0NPTkZJRz0iJENQUFVOSVRfQ09ORklHIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dCB3aXRoIGEgcGF0aC4KKysgIDs7CisrICAqKQorKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQ QVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZl X0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAgZm9yIGFjX2V4ZWNf ZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3BhdGhfQ1BQVU5JVF9DT05G SUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCisrICAgICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKysgIGRvbmUKKytJRlM9JGFzX3NhdmVf SUZTCisrCisrICB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRyIgJiYgYWNfY3Zf cGF0aF9DUFBVTklUX0NPTkZJRz0ibm8iCisrICA7OworK2VzYWMKKytmaQorK0NQUFVOSVRfQ09O RklHPSRhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHCisraWYgdGVzdCAtbiAiJENQUFVOSVRfQ09O RklHIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6ICRDUFBVTklUX0NPTkZJRyIgPiY1CisrJGFzX2VjaG8gIiRDUFBVTklUX0NPTkZJRyIg PiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICBj cHB1bml0X3ZlcnNpb25fbWluPTEuMTAKKysKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIENwcHVuaXQgLSB2ZXJzaW9uID49ICRjcHB1bml0 X3ZlcnNpb25fbWluIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgQ3BwdW5pdCAtIHZl cnNpb24gPj0gJGNwcHVuaXRfdmVyc2lvbl9taW4uLi4gIiA+JjY7IH0KKysgIG5vX2NwcHVuaXQ9 IiIKKysgIGlmIHRlc3QgIiRDUFBVTklUX0NPTkZJRyIgPSAibm8iIDsgdGhlbgorKyAgICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorKyRh c19lY2hvICJubyIgPiY2OyB9CisrICAgIG5vX2NwcHVuaXQ9eWVzCisrICBlbHNlCisrICAgIENQ UFVOSVRfQ0ZMQUdTPWAkQ1BQVU5JVF9DT05GSUcgLS1jZmxhZ3NgCisrICAgIENQUFVOSVRfTElC Uz1gJENQUFVOSVRfQ09ORklHIC0tbGlic2AKKysgICAgQ1BQVU5JVF9WRVJTSU9OPWAkQ1BQVU5J VF9DT05GSUcgLS12ZXJzaW9uYAorKworKyAgICBjcHB1bml0X21ham9yX3ZlcnNpb249YGVjaG8g JENQUFVOSVRfVkVSU0lPTiB8IFwKKysgICAgICAgICAgIHNlZCAncy9cKFswLTldKlwpLlwoWzAt OV0qXCkuXChbMC05XSpcKS9cMS8nYAorKyAgICBjcHB1bml0X21pbm9yX3ZlcnNpb249YGVjaG8g JENQUFVOSVRfVkVSU0lPTiB8IFwKKysgICAgICAgICAgIHNlZCAncy9cKFswLTldKlwpLlwoWzAt OV0qXCkuXChbMC05XSpcKS9cMi8nYAorKyAgICBjcHB1bml0X21pY3JvX3ZlcnNpb249YGVjaG8g JENQUFVOSVRfVkVSU0lPTiB8IFwKKysgICAgICAgICAgIHNlZCAncy9cKFswLTldKlwpLlwoWzAt OV0qXCkuXChbMC05XSpcKS9cMy8nYAorKworKyAgICBjcHB1bml0X21ham9yX21pbj1gZWNobyAk Y3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKKysgICAgICAgICAgIHNlZCAncy9cKFswLTldKlwpLlwo WzAtOV0qXCkuXChbMC05XSpcKS9cMS8nYAorKyAgICBpZiB0ZXN0ICJ4JHtjcHB1bml0X21ham9y X21pbn0iID0gIngiIDsgdGhlbgorKyAgICAgICBjcHB1bml0X21ham9yX21pbj0wCisrICAgIGZp CisrCisrICAgIGNwcHVuaXRfbWlub3JfbWluPWBlY2hvICRjcHB1bml0X3ZlcnNpb25fbWluIHwg XAorKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wy LydgCisrICAgIGlmIHRlc3QgIngke2NwcHVuaXRfbWlub3JfbWlufSIgPSAieCIgOyB0aGVuCisr ICAgICAgIGNwcHVuaXRfbWlub3JfbWluPTAKKysgICAgZmkKKysKKysgICAgY3BwdW5pdF9taWNy b19taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCisrICAgICAgICAgICBzZWQgJ3Mv XChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDMvJ2AKKysgICAgaWYgdGVzdCAieCR7 Y3BwdW5pdF9taWNyb19taW59IiA9ICJ4IiA7IHRoZW4KKysgICAgICAgY3BwdW5pdF9taWNyb19t aW49MAorKyAgICBmaQorKworKyAgICBjcHB1bml0X3ZlcnNpb25fcHJvcGVyPWBleHByIFwKKysg ICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD4gJGNwcHVuaXRfbWFqb3JfbWluIFx8IFwK KysgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWFqb3JfbWluIFwm IFwKKysgICAgICAgICRjcHB1bml0X21pbm9yX3ZlcnNpb24gXD4gJGNwcHVuaXRfbWlub3JfbWlu IFx8IFwKKysgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWFqb3Jf bWluIFwmIFwKKysgICAgICAgICRjcHB1bml0X21pbm9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWlu b3JfbWluIFwmIFwKKysgICAgICAgICRjcHB1bml0X21pY3JvX3ZlcnNpb24gXD49ICRjcHB1bml0 X21pY3JvX21pbiBgCisrCisrICAgIGlmIHRlc3QgIiRjcHB1bml0X3ZlcnNpb25fcHJvcGVyIiA9 ICIxIiA7IHRoZW4KKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogJGNwcHVuaXRfbWFqb3JfdmVyc2lvbi4kY3BwdW5pdF9taW5vcl92ZXJzaW9u LiRjcHB1bml0X21pY3JvX3ZlcnNpb24iID4mNQorKyRhc19lY2hvICIkY3BwdW5pdF9tYWpvcl92 ZXJzaW9uLiRjcHB1bml0X21pbm9yX3ZlcnNpb24uJGNwcHVuaXRfbWljcm9fdmVyc2lvbiIgPiY2 OyB9CisrICAgIGVsc2UKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICAgICAgbm9f Y3BwdW5pdD15ZXMKKysgICAgZmkKKysgIGZpCisrCisrICBpZiB0ZXN0ICJ4JG5vX2NwcHVuaXQi ID0geCA7IHRoZW4KKysgICAgIDoKKysgIGVsc2UKKysgICAgIENQUFVOSVRfQ0ZMQUdTPSIiCisr ICAgICBDUFBVTklUX0xJQlM9IiIKKysgICAgIDoKKysgIGZpCisrCisrCisrCisrCisrCisrIGlm IHRlc3QgIngkQ1BQVU5JVF9MSUJTIiAhPSB4OyB0aGVuCisrICBIQVZFX0NQUFVOSVRfVFJVRT0K KysgIEhBVkVfQ1BQVU5JVF9GQUxTRT0nIycKKytlbHNlCisrICBIQVZFX0NQUFVOSVRfVFJVRT0n IycKKysgIEhBVkVfQ1BQVU5JVF9GQUxTRT0KKytmaQorKworKworKyMgU2hhcmVkIGxpYnJhcnkg dmVyc2lvbmluZworK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OPSIzOjA6MCIKKysjICAgICAgICAg ICAgICAgICAgICAgICAgfCB8IHwKKysjICAgICAgICAgICAgICAgICArLS0tLS0tKyB8ICstLS0r CisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAorKyMgICAgICAgICAgICAgIGN1 cnJlbnQ6cmV2aXNpb246YWdlCisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAor KyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICstIGluY3JlbWVudCBpZiBpbnRlcmZh Y2VzIGhhdmUgYmVlbiBhZGRlZDsKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICAg ICBzZXQgdG8gemVybyBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbgorKyMgICAgICAgICAgICAgICAg IHwgICAgICAgIHwgICAgICAgIHJlbW92ZWQgb3IgY2hhbmdlZAorKyMgICAgICAgICAgICAgICAg IHwgICAgICAgICstIGluY3JlbWVudCBpZiBzb3VyY2UgY29kZSBoYXMgY2hhbmdlZDsKKysjICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICBzZXQgdG8gemVybyBpZiBjdXJyZW50IGlzIGluY3Jl bWVudGVkCisrIyAgICAgICAgICAgICAgICAgKy0gaW5jcmVtZW50IGlmIGludGVyZmFjZXMgaGF2 ZSBiZWVuIGFkZGVkLCByZW1vdmVkCisrIyAgICAgICAgICAgICAgICAgICAgb3IgY2hhbmdlZAor KworKworKyMgVXBsb2FkIGNvbW1hbmQgZm9yIFNvdXJjZUZvcmdlCisrVVBMT0FEX0NPTU1BTkQ9 Im5jZnRwcHV0IC12IHVwbG9hZC5zb3VyY2Vmb3JnZS5uZXQgL2luY29taW5nIgorKworKworKyMg Q2hlY2sgZm9yIGhvc3QgYW5kIGRpc2FibGUgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBpbiBX aW5kb3dzCisrIyBNYWtlIHN1cmUgd2UgY2FuIHJ1biBjb25maWcuc3ViLgorKyRTSEVMTCAiJGFj X2F1eF9kaXIvY29uZmlnLnN1YiIgc3VuNCA+L2Rldi9udWxsIDI+JjEgfHwKKysgIGFzX2ZuX2Vy cm9yICQ/ICJjYW5ub3QgcnVuICRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViIiAiJExJTkVO TyIgNQorKworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgYnVpbGQgc3lzdGVtIHR5cGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGJ1aWxkIHN5 c3RlbSB0eXBlLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9idWlsZCtzZXR9IiA9IHNl dDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2J1 aWxkX2FsaWFzPSRidWlsZF9hbGlhcworK3Rlc3QgIngkYWNfYnVpbGRfYWxpYXMiID0geCAmJgor KyAgYWNfYnVpbGRfYWxpYXM9YCRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLmd1ZXNzImAKKyt0 ZXN0ICJ4JGFjX2J1aWxkX2FsaWFzIiA9IHggJiYKKysgIGFzX2ZuX2Vycm9yICQ/ICJjYW5ub3Qg Z3Vlc3MgYnVpbGQgdHlwZTsgeW91IG11c3Qgc3BlY2lmeSBvbmUiICIkTElORU5PIiA1CisrYWNf Y3ZfYnVpbGQ9YCRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgJGFjX2J1aWxkX2FsaWFz YCB8fAorKyAgYXNfZm5fZXJyb3IgJD8gIiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViICRh Y19idWlsZF9hbGlhcyBmYWlsZWQiICIkTElORU5PIiA1CisrCisrZmkKKyt7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2X2J1aWxkIiA+JjUKKysk YXNfZWNobyAiJGFjX2N2X2J1aWxkIiA+JjY7IH0KKytjYXNlICRhY19jdl9idWlsZCBpbgorKyot Ki0qKSA7OworKyopIGFzX2ZuX2Vycm9yICQ/ICJpbnZhbGlkIHZhbHVlIG9mIGNhbm9uaWNhbCBi dWlsZCIgIiRMSU5FTk8iIDU7OworK2VzYWMKKytidWlsZD0kYWNfY3ZfYnVpbGQKKythY19zYXZl X0lGUz0kSUZTOyBJRlM9Jy0nCisrc2V0IHggJGFjX2N2X2J1aWxkCisrc2hpZnQKKytidWlsZF9j cHU9JDEKKytidWlsZF92ZW5kb3I9JDIKKytzaGlmdDsgc2hpZnQKKysjIFJlbWVtYmVyLCB0aGUg Zmlyc3QgY2hhcmFjdGVyIG9mIElGUyBpcyB1c2VkIHRvIGNyZWF0ZSAkKiwKKysjIGV4Y2VwdCB3 aXRoIG9sZCBzaGVsbHM6CisrYnVpbGRfb3M9JCoKKytJRlM9JGFjX3NhdmVfSUZTCisrY2FzZSAk YnVpbGRfb3MgaW4gKlwgKikgYnVpbGRfb3M9YGVjaG8gIiRidWlsZF9vcyIgfCBzZWQgJ3MvIC8t L2cnYDs7IGVzYWMKKysKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IGhvc3Qgc3lzdGVtIHR5cGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2hvc3Qrc2V0 fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBpZiB0ZXN0ICJ4JGhvc3RfYWxpYXMiID0geDsgdGhlbgorKyAgYWNfY3ZfaG9zdD0kYWNfY3Zf YnVpbGQKKytlbHNlCisrICBhY19jdl9ob3N0PWAkU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5z dWIiICRob3N0X2FsaWFzYCB8fAorKyAgICBhc19mbl9lcnJvciAkPyAiJFNIRUxMICRhY19hdXhf ZGlyL2NvbmZpZy5zdWIgJGhvc3RfYWxpYXMgZmFpbGVkIiAiJExJTkVOTyIgNQorK2ZpCisrCisr ZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFj X2N2X2hvc3QiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfaG9zdCIgPiY2OyB9CisrY2FzZSAkYWNf Y3ZfaG9zdCBpbgorKyotKi0qKSA7OworKyopIGFzX2ZuX2Vycm9yICQ/ICJpbnZhbGlkIHZhbHVl IG9mIGNhbm9uaWNhbCBob3N0IiAiJExJTkVOTyIgNTs7CisrZXNhYworK2hvc3Q9JGFjX2N2X2hv c3QKKythY19zYXZlX0lGUz0kSUZTOyBJRlM9Jy0nCisrc2V0IHggJGFjX2N2X2hvc3QKKytzaGlm dAorK2hvc3RfY3B1PSQxCisraG9zdF92ZW5kb3I9JDIKKytzaGlmdDsgc2hpZnQKKysjIFJlbWVt YmVyLCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIElGUyBpcyB1c2VkIHRvIGNyZWF0ZSAkKiwKKysj IGV4Y2VwdCB3aXRoIG9sZCBzaGVsbHM6CisraG9zdF9vcz0kKgorK0lGUz0kYWNfc2F2ZV9JRlMK KytjYXNlICRob3N0X29zIGluICpcICopIGhvc3Rfb3M9YGVjaG8gIiRob3N0X29zIiB8IHNlZCAn cy8gLy0vZydgOzsgZXNhYworKworKworK2Nhc2UgJGhvc3QgaW4KKysgICotKi1tc2RvcyogfCAq LSotZ28zMiogfCAqLSotbWluZ3czMiogfCAqLSotY3lnd2luKiB8ICotKi13aW5kb3dzKikKKysg ICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXNoYXJlZCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAi JHtlbmFibGVfc2hhcmVkK3NldH0iID0gc2V0OyB0aGVuIDoKKysgIGVuYWJsZXZhbD0kZW5hYmxl X3NoYXJlZDsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KKysgICAgY2FzZSAkZW5hYmxldmFsIGluCisr ICAgIHllcykgZW5hYmxlX3NoYXJlZD15ZXMgOzsKKysgICAgbm8pIGVuYWJsZV9zaGFyZWQ9bm8g OzsKKysgICAgKikKKysgICAgICBlbmFibGVfc2hhcmVkPW5vCisrICAgICAgIyBMb29rIGF0IHRo ZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3Jz LgorKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1Is IgorKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KKysJSUZTPSIkbHRfc2F2ZV9pZnMi CisrCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCisrCSAgZW5hYmxlX3NoYXJlZD15ZXMK KysJZmkKKysgICAgICBkb25lCisrICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgICAgOzsK KysgICAgZXNhYworK2Vsc2UKKysgIGVuYWJsZV9zaGFyZWQ9bm8KKytmaQorKworKworKworKwor KworKworKworKworKworKyAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc3RhdGljIHdhcyBn aXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAg ZW5hYmxldmFsPSRlbmFibGVfc3RhdGljOyBwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNl ICRlbmFibGV2YWwgaW4KKysgICAgeWVzKSBlbmFibGVfc3RhdGljPXllcyA7OworKyAgICBubykg ZW5hYmxlX3N0YXRpYz1ubyA7OworKyAgICAqKQorKyAgICAgZW5hYmxlX3N0YXRpYz1ubworKyAg ICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9u IGxpc3Qgc2VwYXJhdG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9 JFBBVEhfU0VQQVJBVE9SLCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCisrCUlG Uz0iJGx0X3NhdmVfaWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgorKwkgIGVu YWJsZV9zdGF0aWM9eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJGx0X3NhdmVf aWZzIgorKyAgICAgIDs7CisrICAgIGVzYWMKKytlbHNlCisrICBlbmFibGVfc3RhdGljPXllcwor K2ZpCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrICAgIDs7CisrICAqKQorKyAgICAjIENo ZWNrIHdoZXRoZXIgLS1lbmFibGUtc2hhcmVkIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJs ZV9zaGFyZWQrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgZW5hYmxldmFsPSRlbmFibGVfc2hhcmVk OyBwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2YWwgaW4KKysgICAgeWVz KSBlbmFibGVfc2hhcmVkPXllcyA7OworKyAgICBubykgZW5hYmxlX3NoYXJlZD1ubyA7OworKyAg ICAqKQorKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KKysgICAgICAjIExvb2sgYXQgdGhlIGFyZ3Vt ZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCisrICAg ICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCisrICAg ICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworKwlJRlM9IiRsdF9zYXZlX2lmcyIKKysJaWYg dGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KKysJICBlbmFibGVfc2hhcmVkPXllcworKwlmaQor KyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgICA7OworKyAgICBl c2FjCisrZWxzZQorKyAgZW5hYmxlX3NoYXJlZD15ZXMKKytmaQorKworKworKworKworKworKwor KyAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc3RhdGljIHdhcyBnaXZlbi4KKytpZiB0ZXN0 ICIke2VuYWJsZV9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgZW5hYmxldmFsPSRlbmFi bGVfc3RhdGljOyBwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2YWwgaW4K KysgICAgeWVzKSBlbmFibGVfc3RhdGljPXllcyA7OworKyAgICBubykgZW5hYmxlX3N0YXRpYz1u byA7OworKyAgICAqKQorKyAgICAgZW5hYmxlX3N0YXRpYz1ubworKyAgICAgICMgTG9vayBhdCB0 aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9y cy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9S LCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCisrCUlGUz0iJGx0X3NhdmVfaWZz IgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgorKwkgIGVuYWJsZV9zdGF0aWM9eWVz CisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICAgIDs7 CisrICAgIGVzYWMKKytlbHNlCisrICBlbmFibGVfc3RhdGljPW5vCisrZmkKKysKKysKKysKKysK KysKKysKKysgICAgOzsKKytlc2FjCisrCisrIyBDaGVja3MgZm9yIHByb2dyYW1zCisrc2F2ZV9D WFhGTEFHUz0iJENYWEZMQUdTIgorK2FjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZM QUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4k YWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorK2lmIHRlc3QgLXogIiRDWFgiOyB0 aGVuCisrICBpZiB0ZXN0IC1uICIkQ0NDIjsgdGhlbgorKyAgICBDWFg9JENDQworKyAgZWxzZQor KyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICBmb3IgYWNfcHJvZyBp biBnKysgYysrIGdwcCBhQ0MgQ0MgY3h4IGNjKysgY2wuZXhlIEZDQyBLQ0MgUkNDIHhsQ19yIHhs QworKyAgZG8KKysgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVm aXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0 IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3Qg IiR7YWNfY3ZfcHJvZ19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkQ1hYIjsgdGhlbgorKyAgYWNfY3Zf cHJvZ19DWFg9IiRDWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UK Kythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAk UEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBh c19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5z aW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIg JiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysg ICAgYWNfY3ZfcHJvZ19DWFg9IiRhY190b29sX3ByZWZpeCRhY19wcm9nIgorKyAgICAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrICBkb25lCisrSUZT PSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKytDWFg9JGFjX2N2X3Byb2dfQ1hYCisraWYgdGVz dCAtbiAiJENYWCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiAkQ1hYIiA+JjUKKyskYXNfZWNobyAiJENYWCIgPiY2OyB9CisrZWxzZQor KyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+ JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICAgIHRlc3QgLW4gIiRDWFgi ICYmIGJyZWFrCisrICBkb25lCisrZmkKKytpZiB0ZXN0IC16ICIkQ1hYIjsgdGhlbgorKyAgYWNf Y3RfQ1hYPSRDWFgKKysgIGZvciBhY19wcm9nIGluIGcrKyBjKysgZ3BwIGFDQyBDQyBjeHggY2Mr KyBjbC5leGUgRkNDIEtDQyBSQ0MgeGxDX3IgeGxDCisrZG8KKysgICMgRXh0cmFjdCB0aGUgZmly c3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmdzLgorK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2Fj X2N2X3Byb2dfYWNfY3RfQ1hYK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0NYWCI7IHRoZW4KKysg IGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfY3RfQ1hYIiAjIExldCB0aGUgdXNlciBvdmVycmlk ZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRP UgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVz dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRh Y19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfcHJvZyIKKysg ICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAg ZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3RfQ1hYPSRhY19jdl9w cm9nX2FjX2N0X0NYWAorK2lmIHRlc3QgLW4gIiRhY19jdF9DWFgiOyB0aGVuCisrICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X0NYWCIgPiY1 CisrJGFzX2VjaG8gIiRhY19jdF9DWFgiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5v IiA+JjY7IH0KKytmaQorKworKworKyAgdGVzdCAtbiAiJGFjX2N0X0NYWCIgJiYgYnJlYWsKKytk b25lCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X0NYWCIgPSB4OyB0aGVuCisrICAgIENYWD0iZysr IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGlu CisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5J Tkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZp eGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2Vz YWMKKysgICAgQ1hYPSRhY19jdF9DWFgKKysgIGZpCisrZmkKKysKKysgIGZpCisrZmkKKysjIFBy b3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCisrJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIEMrKyBjb21waWxlciB2ZXJz aW9uIiA+JjUKKytzZXQgWCAkYWNfY29tcGlsZQorK2FjX2NvbXBpbGVyPSQyCisrZm9yIGFjX29w dGlvbiBpbiAtLXZlcnNpb24gLXYgLVYgLXF2ZXJzaW9uOyBkbworKyAgeyB7IGFjX3RyeT0iJGFj X2NvbXBpbGVyICRhY19vcHRpb24gPiY1IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyI7IH0g PiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGVyICRhY19vcHRpb24gPiY1IikgMj5jb25mdGVzdC5l cnIKKysgIGFjX3N0YXR1cz0kPworKyAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKysg ICAgc2VkICcxMGFcCisrLi4uIHJlc3Qgb2Ygc3RkZXJyIG91dHB1dCBkZWxldGVkIC4uLgorKyAg ICAgICAgIDEwcScgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjEKKysgICAgY2F0IGNvbmZ0ZXN0 LmVyMSA+JjUKKysgIGZpCisrICBybSAtZiBjb25mdGVzdC5lcjEgY29uZnRlc3QuZXJyCisrICAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKKysgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0KKytkb25lCisrCisrY2F0IGNvbmZkZWZzLmgg LSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysK KytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgor K2FjX2NsZWFuX2ZpbGVzX3NhdmU9JGFjX2NsZWFuX2ZpbGVzCisrYWNfY2xlYW5fZmlsZXM9IiRh Y19jbGVhbl9maWxlcyBhLm91dCBhLm91dC5kU1lNIGEuZXhlIGIub3V0IgorKyMgVHJ5IHRvIGNy ZWF0ZSBhbiBleGVjdXRhYmxlIHdpdGhvdXQgLW8gZmlyc3QsIGRpc3JlZ2FyZCBhLm91dC4KKysj IEl0IHdpbGwgaGVscCB1cyBkaWFnbm9zZSBicm9rZW4gY29tcGlsZXJzLCBhbmQgZmluZGluZyBv dXQgYW4gaW50dWl0aW9uCisrIyBvZiBleGVleHQuCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHRoZSBDKysgY29tcGlsZXIgd29ya3Mi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEMrKyBjb21waWxlciB3b3Jr cy4uLiAiID4mNjsgfQorK2FjX2xpbmtfZGVmYXVsdD1gJGFzX2VjaG8gIiRhY19saW5rIiB8IHNl ZCAncy8gLW8gKmNvbmZ0ZXN0W14gXSovLydgCisrCisrIyBUaGUgcG9zc2libGUgb3V0cHV0IGZp bGVzOgorK2FjX2ZpbGVzPSJhLm91dCBjb25mdGVzdC5leGUgY29uZnRlc3QgYS5leGUgYV9vdXQu ZXhlIGIub3V0IGNvbmZ0ZXN0LioiCisrCisrYWNfcm1maWxlcz0KKytmb3IgYWNfZmlsZSBpbiAk YWNfZmlsZXMKKytkbworKyAgY2FzZSAkYWNfZmlsZSBpbgorKyAgICAqLiRhY19leHQgfCAqLnhj b2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubWFw IHwgKi5pbmYgfCAqLmRTWU0gfCAqLm8gfCAqLm9iaiApIDs7CisrICAgICogKSBhY19ybWZpbGVz PSIkYWNfcm1maWxlcyAkYWNfZmlsZSI7OworKyAgZXNhYworK2RvbmUKKytybSAtZiAkYWNfcm1m aWxlcworKworK2lmIHsgeyBhY190cnk9IiRhY19saW5rX2RlZmF1bHQiCisrY2FzZSAiKCgkYWNf dHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Cisr ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAi JGFjX3RyeV9lY2hvIjsgfSA+JjUKKysgIChldmFsICIkYWNfbGlua19kZWZhdWx0IikgMj4mNQor KyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IHRoZW4g OgorKyAgIyBBdXRvY29uZi0yLjEzIGNvdWxkIHNldCB0aGUgYWNfY3ZfZXhlZXh0IHZhcmlhYmxl IHRvIGBubycuCisrIyBTbyBpZ25vcmUgYSB2YWx1ZSBvZiBgbm8nLCBvdGhlcndpc2UgdGhpcyB3 b3VsZCBsZWFkIHRvIGBFWEVFWFQgPSBubycKKysjIGluIGEgTWFrZWZpbGUuICBXZSBzaG91bGQg bm90IG92ZXJyaWRlIGFjX2N2X2V4ZWV4dCBpZiBpdCB3YXMgY2FjaGVkLAorKyMgc28gdGhhdCB0 aGUgdXNlciBjYW4gc2hvcnQtY2lyY3VpdCB0aGlzIHRlc3QgZm9yIGNvbXBpbGVycyB1bmtub3du IHRvCisrIyBBdXRvY29uZi4KKytmb3IgYWNfZmlsZSBpbiAkYWNfZmlsZXMgJycKKytkbworKyAg dGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlCisrICBjYXNlICRhY19maWxlIGluCisrICAg ICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwgKi5i YiB8ICouYmJnIHwgKi5tYXAgfCAqLmluZiB8ICouZFNZTSB8ICoubyB8ICoub2JqICkKKysJOzsK KysgICAgW2FiXS5vdXQgKQorKwkjIFdlIGZvdW5kIHRoZSBkZWZhdWx0IGV4ZWN1dGFibGUsIGJ1 dCBleGVleHQ9JycgaXMgbW9zdAorKwkjIGNlcnRhaW5seSByaWdodC4KKysJYnJlYWs7OworKyAg ICAqLiogKQorKwlpZiB0ZXN0ICIke2FjX2N2X2V4ZWV4dCtzZXR9IiA9IHNldCAmJiB0ZXN0ICIk YWNfY3ZfZXhlZXh0IiAhPSBubzsKKysJdGhlbiA6OyBlbHNlCisrCSAgIGFjX2N2X2V4ZWV4dD1g ZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCknYAorKwlmaQorKwkjIFdlIHNldCBhY19j dl9leGVleHQgaGVyZSBiZWNhdXNlIHRoZSBsYXRlciB0ZXN0IGZvciBpdCBpcyBub3QKKysJIyBz YWZlOiBjcm9zcyBjb21waWxlcnMgbWF5IG5vdCBhZGQgdGhlIHN1ZmZpeCBpZiBnaXZlbiBhbiBg LW8nCisrCSMgYXJndW1lbnQsIHNvIHdlIG1heSBuZWVkIHRvIGtub3cgaXQgYXQgdGhhdCBwb2lu dCBhbHJlYWR5LgorKwkjIEV2ZW4gaWYgdGhpcyBzZWN0aW9uIGxvb2tzIGNydWZ0eTogaXQgaGFz IHRoZSBhZHZhbnRhZ2Ugb2YKKysJIyBhY3R1YWxseSB3b3JraW5nLgorKwlicmVhazs7CisrICAg ICogKQorKwlicmVhazs7CisrICBlc2FjCisrZG9uZQorK3Rlc3QgIiRhY19jdl9leGVleHQiID0g bm8gJiYgYWNfY3ZfZXhlZXh0PQorKworK2Vsc2UKKysgIGFjX2ZpbGU9JycKKytmaQorK2lmIHRl c3QgLXogIiRhY19maWxlIjsgdGhlbiA6CisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrJGFz X2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBj b25mdGVzdC4kYWNfZXh0ID4mNQorKworK3sgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQorKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KKythc19mbl9lcnJvciA3NyAiQysrIGNvbXBp bGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMKKytTZWUgXGBjb25maWcubG9nJyBmb3IgbW9y ZSBkZXRhaWxzIiAiJExJTkVOTyIgNTsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4m NjsgfQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyBmb3IgQysrIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZSIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yIEMrKyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5h bWUuLi4gIiA+JjY7IH0KKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogJGFjX2ZpbGUiID4mNQorKyRhc19lY2hvICIkYWNfZmlsZSIgPiY2OyB9CisrYWNf ZXhlZXh0PSRhY19jdl9leGVleHQKKysKKytybSAtZiAtciBhLm91dCBhLm91dC5kU1lNIGEuZXhl IGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dCBiLm91dAorK2FjX2NsZWFuX2ZpbGVzPSRhY19jbGVhbl9m aWxlc19zYXZlCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uICIgPiY2OyB9CisraWYgeyB7IGFjX3RyeT0i JGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2Fj CisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNf dHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKKysgIChldmFsICIk YWNfbGluayIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0ZXN0ICRhY19zdGF0 dXMgPSAwOyB9OyB0aGVuIDoKKysgICMgSWYgYm90aCBgY29uZnRlc3QuZXhlJyBhbmQgYGNvbmZ0 ZXN0JyBhcmUgYHByZXNlbnQnICh3ZWxsLCBvYnNlcnZhYmxlKQorKyMgY2F0Y2ggYGNvbmZ0ZXN0 LmV4ZScuICBGb3IgaW5zdGFuY2Ugd2l0aCBDeWd3aW4sIGBscyBjb25mdGVzdCcgd2lsbAorKyMg d29yayBwcm9wZXJseSAoaS5lLiwgcmVmZXIgdG8gYGNvbmZ0ZXN0LmV4ZScpLCB3aGlsZSBpdCB3 b24ndCB3aXRoCisrIyBgcm0nLgorK2ZvciBhY19maWxlIGluIGNvbmZ0ZXN0LmV4ZSBjb25mdGVz dCBjb25mdGVzdC4qOyBkbworKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlCisrICBj YXNlICRhY19maWxlIGluCisrICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8 ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5tYXAgfCAqLmluZiB8ICouZFNZTSB8 ICoubyB8ICoub2JqICkgOzsKKysgICAgKi4qICkgYWNfY3ZfZXhlZXh0PWBleHByICIkYWNfZmls ZSIgOiAnW14uXSpcKFwuLipcKSdgCisrCSAgYnJlYWs7OworKyAgICAqICkgYnJlYWs7OworKyAg ZXNhYworK2RvbmUKKytlbHNlCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CisrYXNfZm5fZXJyb3IgJD8gImNhbm5vdCBjb21w dXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKKytTZWUg XGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzIiAiJExJTkVOTyIgNTsgfQorK2ZpCisrcm0g LWYgY29uZnRlc3QgY29uZnRlc3QkYWNfY3ZfZXhlZXh0CisreyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9leGVleHQiID4mNQorKyRhc19lY2hv ICIkYWNfY3ZfZXhlZXh0IiA+JjY7IH0KKysKKytybSAtZiBjb25mdGVzdC4kYWNfZXh0CisrRVhF RVhUPSRhY19jdl9leGVleHQKKythY19leGVleHQ9JEVYRUVYVAorK2NhdCBjb25mZGVmcy5oIC0g PDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2lu Y2x1ZGUgPHN0ZGlvLmg+CisraW50CisrbWFpbiAoKQorK3sKKytGSUxFICpmID0gZm9wZW4gKCJj b25mdGVzdC5vdXQiLCAidyIpOworKyByZXR1cm4gZmVycm9yIChmKSB8fCBmY2xvc2UgKGYpICE9 IDA7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrYWNfY2xlYW5fZmlsZXM9 IiRhY19jbGVhbl9maWxlcyBjb25mdGVzdC5vdXQiCisrIyBDaGVjayB0aGF0IHRoZSBjb21waWxl ciBwcm9kdWNlcyBleGVjdXRhYmxlcyB3ZSBjYW4gcnVuLiAgSWYgbm90LCBlaXRoZXIKKysjIHRo ZSBjb21waWxlciBpcyBicm9rZW4sIG9yIHdlIGNyb3NzIGNvbXBpbGUuCisreyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9z cyBjb21waWxpbmciID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNy b3NzIGNvbXBpbGluZy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciICE9 IHllczsgdGhlbgorKyAgeyB7IGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBp bgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBh Y190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIjsgfSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+JjUKKysgIGFjX3N0YXR1cz0k PworKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9CisrICBpZiB7IGFjX3RyeT0nLi9j b25mdGVzdCRhY19jdl9leGVleHQnCisrICB7IHsgY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwi KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNo bz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsg fSA+JjUKKysgIChldmFsICIkYWNfdHJ5IikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK KysgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IH07IHRoZW4KKysgICAgY3Jvc3NfY29tcGlsaW5n PW5vCisrICBlbHNlCisrICAgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0gbWF5YmU7IHRo ZW4KKysJY3Jvc3NfY29tcGlsaW5nPXllcworKyAgICBlbHNlCisrCXsgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQorKyRh c19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KKythc19mbl9lcnJv ciAkPyAiY2Fubm90IHJ1biBDKysgY29tcGlsZWQgcHJvZ3JhbXMuCisrSWYgeW91IG1lYW50IHRv IGNyb3NzIGNvbXBpbGUsIHVzZSBcYC0taG9zdCcuCisrU2VlIFxgY29uZmlnLmxvZycgZm9yIG1v cmUgZGV0YWlscyIgIiRMSU5FTk8iIDU7IH0KKysgICAgZmkKKysgIGZpCisrZmkKKyt7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGNyb3NzX2NvbXBpbGlu ZyIgPiY1CisrJGFzX2VjaG8gIiRjcm9zc19jb21waWxpbmciID4mNjsgfQorKworK3JtIC1mIGNv bmZ0ZXN0LiRhY19leHQgY29uZnRlc3QkYWNfY3ZfZXhlZXh0IGNvbmZ0ZXN0Lm91dAorK2FjX2Ns ZWFuX2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcyIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4gIiA+ JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X29iamV4dCtzZXR9IiA9IHNldDsgdGhlbiA6CisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCBjb25mZGVmcy5oIC0gPDxf QUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50 CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAt ZiBjb25mdGVzdC5vIGNvbmZ0ZXN0Lm9iagorK2lmIHsgeyBhY190cnk9IiRhY19jb21waWxlIgor K2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIi CisrJGFzX2VjaG8gIiRhY190cnlfZWNobyI7IH0gPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUi KSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsg fTsgdGhlbiA6CisrICBmb3IgYWNfZmlsZSBpbiBjb25mdGVzdC5vIGNvbmZ0ZXN0Lm9iaiBjb25m dGVzdC4qOyBkbworKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlOworKyAgY2FzZSAk YWNfZmlsZSBpbgorKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBk YiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0gKSA7Owor KyAgICAqKSBhY19jdl9vYmpleHQ9YGV4cHIgIiRhY19maWxlIiA6ICcuKlwuXCguKlwpJ2AKKysg ICAgICAgYnJlYWs7OworKyAgZXNhYworK2RvbmUKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21l OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l eHQgPiY1CisrCisreyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVy cm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxg JGFjX3B3ZCc6IiA+JjI7fQorK2FzX2ZuX2Vycm9yICQ/ICJjYW5ub3QgY29tcHV0ZSBzdWZmaXgg b2Ygb2JqZWN0IGZpbGVzOiBjYW5ub3QgY29tcGlsZQorK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBt b3JlIGRldGFpbHMiICIkTElORU5PIiA1OyB9CisrZmkKKytybSAtZiBjb25mdGVzdC4kYWNfY3Zf b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3Zfb2JqZXh0IiA+JjUKKyskYXNfZWNobyAiJGFj X2N2X29iamV4dCIgPiY2OyB9CisrT0JKRVhUPSRhY19jdl9vYmpleHQKKythY19vYmpleHQ9JE9C SkVYVAorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg d2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGlsZXIiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQysrIGNvbXBpbGVyLi4u ICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9jeHhfY29tcGlsZXJfZ251K3NldH0iID0gc2V0 OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0IGNv bmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKyNpZm5kZWYgX19HTlVDX18KKysgICAgICAg Y2hva2UgbWUKKysjZW5kaWYKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytp ZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKysgIGFjX2NvbXBpbGVy X2dudT15ZXMKKytlbHNlCisrICBhY19jb21waWxlcl9nbnU9bm8KKytmaQorK3JtIC1mIGNvcmUg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2FjX2N2 X2N4eF9jb21waWxlcl9nbnU9JGFjX2NvbXBpbGVyX2dudQorKworK2ZpCisreyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9jeHhfY29tcGlsZXJf Z251IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2N4eF9jb21waWxlcl9nbnUiID4mNjsgfQorK2lm IHRlc3QgJGFjX2NvbXBpbGVyX2dudSA9IHllczsgdGhlbgorKyAgR1hYPXllcworK2Vsc2UKKysg IEdYWD0KKytmaQorK2FjX3Rlc3RfQ1hYRkxBR1M9JHtDWFhGTEFHUytzZXR9CisrYWNfc2F2ZV9D WFhGTEFHUz0kQ1hYRkxBR1MKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGNoZWNraW5nIHdoZXRoZXIgJENYWCBhY2NlcHRzIC1nIiA+JjUKKyskYXNfZWNob19uICJj aGVja2luZyB3aGV0aGVyICRDWFggYWNjZXB0cyAtZy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 YWNfY3ZfcHJvZ19jeHhfZytzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFnPSRhY19jeHhfd2Vy cm9yX2ZsYWcKKysgICBhY19jeHhfd2Vycm9yX2ZsYWc9eWVzCisrICAgYWNfY3ZfcHJvZ19jeHhf Zz1ubworKyAgIENYWEZMQUdTPSItZyIKKysgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5j b25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4g KCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisraWYgYWNfZm5fY3h4 X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CisrICBhY19jdl9wcm9nX2N4eF9nPXllcwor K2Vsc2UKKysgIENYWEZMQUdTPSIiCisrICAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+ Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWlu ICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4 eF90cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorKworK2Vsc2UKKysgIGFjX2N4eF93ZXJy b3JfZmxhZz0kYWNfc2F2ZV9jeHhfd2Vycm9yX2ZsYWcKKysJIENYWEZMQUdTPSItZyIKKysJIGNh dCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOwor K30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoK KysgIGFjX2N2X3Byb2dfY3h4X2c9eWVzCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytmaQorK3JtIC1mIGNvcmUgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisrcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0 CisrICAgYWNfY3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4eF93ZXJyb3JfZmxhZworK2ZpCisr eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9w cm9nX2N4eF9nIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X3Byb2dfY3h4X2ciID4mNjsgfQorK2lm IHRlc3QgIiRhY190ZXN0X0NYWEZMQUdTIiA9IHNldDsgdGhlbgorKyAgQ1hYRkxBR1M9JGFjX3Nh dmVfQ1hYRkxBR1MKKytlbGlmIHRlc3QgJGFjX2N2X3Byb2dfY3h4X2cgPSB5ZXM7IHRoZW4KKysg IGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgIENYWEZMQUdTPSItZyAtTzIiCisrICBl bHNlCisrICAgIENYWEZMQUdTPSItZyIKKysgIGZpCisrZWxzZQorKyAgaWYgdGVzdCAiJEdYWCIg PSB5ZXM7IHRoZW4KKysgICAgQ1hYRkxBR1M9Ii1PMiIKKysgIGVsc2UKKysgICAgQ1hYRkxBR1M9 CisrICBmaQorK2ZpCisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQUEZMQUdTJworK2FjX2Nv bXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKyth Y19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3Zf Y19jb21waWxlcl9nbnUKKytERVBESVI9IiR7YW1fX2xlYWRpbmdfZG90fWRlcHMiCisrCisrYWNf Y29uZmlnX2NvbW1hbmRzPSIkYWNfY29uZmlnX2NvbW1hbmRzIGRlcGZpbGVzIgorKworKworK2Ft X21ha2U9JHtNQUtFLW1ha2V9CisrY2F0ID4gY29uZmluYyA8PCAnRU5EJworK2FtX19kb2l0Ogor KwlAZWNobyB0aGlzIGlzIHRoZSBhbV9fZG9pdCB0YXJnZXQKKysuUEhPTlk6IGFtX19kb2l0Cisr RU5ECisrIyBJZiB3ZSBkb24ndCBmaW5kIGFuIGluY2x1ZGUgZGlyZWN0aXZlLCBqdXN0IGNvbW1l bnQgb3V0IHRoZSBjb2RlLgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogY2hlY2tpbmcgZm9yIHN0eWxlIG9mIGluY2x1ZGUgdXNlZCBieSAkYW1fbWFrZSIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHN0eWxlIG9mIGluY2x1ZGUgdXNlZCBieSAkYW1fbWFr ZS4uLiAiID4mNjsgfQorK2FtX19pbmNsdWRlPSIjIgorK2FtX19xdW90ZT0KKytfYW1fcmVzdWx0 PW5vbmUKKysjIEZpcnN0IHRyeSBHTlUgbWFrZSBzdHlsZSBpbmNsdWRlLgorK2VjaG8gImluY2x1 ZGUgY29uZmluYyIgPiBjb25mbWYKKysjIElnbm9yZSBhbGwga2luZHMgb2YgYWRkaXRpb25hbCBv dXRwdXQgZnJvbSBgbWFrZScuCisrY2FzZSBgJGFtX21ha2UgLXMgLWYgY29uZm1mIDI+IC9kZXYv bnVsbGAgaW4gIygKKysqdGhlXCBhbV9fZG9pdFwgdGFyZ2V0KikKKysgIGFtX19pbmNsdWRlPWlu Y2x1ZGUKKysgIGFtX19xdW90ZT0KKysgIF9hbV9yZXN1bHQ9R05VCisrICA7OworK2VzYWMKKysj IE5vdyB0cnkgQlNEIG1ha2Ugc3R5bGUgaW5jbHVkZS4KKytpZiB0ZXN0ICIkYW1fX2luY2x1ZGUi ID0gIiMiOyB0aGVuCisrICAgZWNobyAnLmluY2x1ZGUgImNvbmZpbmMiJyA+IGNvbmZtZgorKyAg IGNhc2UgYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGxgIGluICMoCisrICAgKnRo ZVwgYW1fX2RvaXRcIHRhcmdldCopCisrICAgICBhbV9faW5jbHVkZT0uaW5jbHVkZQorKyAgICAg YW1fX3F1b3RlPSJcIiIKKysgICAgIF9hbV9yZXN1bHQ9QlNECisrICAgICA7OworKyAgIGVzYWMK KytmaQorKworKworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiAkX2FtX3Jlc3VsdCIgPiY1CisrJGFzX2VjaG8gIiRfYW1fcmVzdWx0IiA+JjY7IH0KKyty bSAtZiBjb25maW5jIGNvbmZtZgorKworKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1kZXBlbmRl bmN5LXRyYWNraW5nIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9kZXBlbmRlbmN5X3Ry YWNraW5nK3NldH0iID0gc2V0OyB0aGVuIDoKKysgIGVuYWJsZXZhbD0kZW5hYmxlX2RlcGVuZGVu Y3lfdHJhY2tpbmc7CisrZmkKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNr aW5nIiAhPSB4bm87IHRoZW4KKysgIGFtX2RlcGNvbXA9IiRhY19hdXhfZGlyL2RlcGNvbXAiCisr ICBBTURFUEJBQ0tTTEFTSD0nXCcKKytmaQorKyBpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5 X3RyYWNraW5nIiAhPSB4bm87IHRoZW4KKysgIEFNREVQX1RSVUU9CisrICBBTURFUF9GQUxTRT0n IycKKytlbHNlCisrICBBTURFUF9UUlVFPScjJworKyAgQU1ERVBfRkFMU0U9CisrZmkKKysKKysK KysKKytkZXBjYz0iJENYWCIgIGFtX2NvbXBpbGVyX2xpc3Q9CisrCisreyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRk ZXBjYyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVw Y2MuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGls ZXJfdHlwZStzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysgIGlmIHRlc3QgLXogIiRBTURFUF9UUlVFIiAmJiB0ZXN0IC1mICIkYW1fZGVw Y29tcCI7IHRoZW4KKysgICMgV2UgbWFrZSBhIHN1YmRpciBhbmQgZG8gdGhlIHRlc3RzIHRoZXJl LiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKKysgICMgbWFraW5nIGJvZ3VzIGZpbGVzIHRoYXQg d2UgZG9uJ3Qga25vdyBhYm91dCBhbmQgbmV2ZXIgcmVtb3ZlLiAgRm9yCisrICAjIGluc3RhbmNl IGl0IHdhcyByZXBvcnRlZCB0aGF0IG9uIEhQLVVYIHRoZSBnY2MgdGVzdCB3aWxsIGVuZCB1cAor KyAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5z IGBwdXQgdGhlIG91dHB1dAorKyAgIyBpbiBEJy4KKysgIG1rZGlyIGNvbmZ0ZXN0LmRpcgorKyAg IyBDb3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZpbmQg aXQgaWYgd2UncmUKKysgICMgdXNpbmcgYSByZWxhdGl2ZSBkaXJlY3RvcnkuCisrICBjcCAiJGFt X2RlcGNvbXAiIGNvbmZ0ZXN0LmRpcgorKyAgY2QgY29uZnRlc3QuZGlyCisrICAjIFdlIHdpbGwg YnVpbGQgb2JqZWN0cyBhbmQgZGVwZW5kZW5jaWVzIGluIGEgc3ViZGlyZWN0b3J5IGJlY2F1c2UK KysgICMgaXQgaGVscHMgdG8gZGV0ZWN0IGluYXBwbGljYWJsZSBkZXBlbmRlbmN5IG1vZGVzLiAg Rm9yIGluc3RhbmNlCisrICAjIGJvdGggVHJ1NjQncyBjYyBhbmQgSUNDIHN1cHBvcnQgLU1EIHRv IG91dHB1dCBkZXBlbmRlbmNpZXMgYXMgYQorKyAgIyBzaWRlIGVmZmVjdCBvZiBjb21waWxhdGlv biwgYnV0IElDQyB3aWxsIHB1dCB0aGUgZGVwZW5kZW5jaWVzIGluCisrICAjIHRoZSBjdXJyZW50 IGRpcmVjdG9yeSB3aGlsZSBUcnU2NCB3aWxsIHB1dCB0aGVtIGluIHRoZSBvYmplY3QKKysgICMg ZGlyZWN0b3J5LgorKyAgbWtkaXIgc3ViCisrCisrICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2Nv bXBpbGVyX3R5cGU9bm9uZQorKyAgaWYgdGVzdCAiJGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7IHRo ZW4KKysgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiAncy9eIypcKFthLXpBLVowLTldKlwp KSQvXDEvcCcgPCAuL2RlcGNvbXBgCisrICBmaQorKyAgYW1fX3VuaXZlcnNhbD1mYWxzZQorKyAg Y2FzZSAiICRkZXBjYyAiIGluICMoCisrICAgICAqXCAtYXJjaFwgKlwgLWFyY2hcICopIGFtX191 bml2ZXJzYWw9dHJ1ZSA7OworKyAgICAgZXNhYworKworKyAgZm9yIGRlcG1vZGUgaW4gJGFtX2Nv bXBpbGVyX2xpc3Q7IGRvCisrICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVu Y2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycworKyAgICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBk ZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAod2l0aCBcKSwgYW5kCisrICAgICMgd2Ugc2hv dWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUgd2hpY2ggaXMgY29uZnVzZWQgYnkgdGhpcy4K KysgICAgIworKyAgICAjIFdlIG5lZWQgdG8gcmVjcmVhdGUgdGhlc2UgZmlsZXMgZm9yIGVhY2gg dGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQorKyAgICAjIG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0g d2hlbiB0ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21tYW5kIGxpbmVzLgorKyAgICAjIFRoaXMgaGFw cGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBjb21waWxlci4KKysgICAgOiA+IHN1Yi9jb25m dGVzdC5jCisrICAgIGZvciBpIGluIDEgMiAzIDQgNSA2OyBkbworKyAgICAgIGVjaG8gJyNpbmNs dWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2NvbmZ0ZXN0LmMKKysgICAgICAjIFVzaW5nIGA6 ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9ubHkgc3ViL2NvbmZ0c3QxLmggd2l0aAorKyAg ICAgICMgU29sYXJpcyA4J3Mgey91c3IsfS9iaW4vc2guCisrICAgICAgdG91Y2ggc3ViL2NvbmZ0 c3QkaS5oCisrICAgIGRvbmUKKysgICAgZWNobyAiJHthbV9faW5jbHVkZX0gJHthbV9fcXVvdGV9 c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9IiA+IGNvbmZtZgorKworKyAgICAjIFdlIGNoZWNr IHdpdGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ugb2YgdGhlICJkYXNobXN0ZG91dCIKKysg ICAgIyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQgdGhlIFN1blBybyBDKysgY29tcGlsZXIgZG9l cyBub3QgcHJvcGVybHkKKysgICAgIyBoYW5kbGUgYC1NIC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0 ZWN0IHRoaXMuICBBbHNvLCBzb21lIEludGVsCisrICAgICMgdmVyc2lvbnMgaGFkIHRyb3VibGUg d2l0aCBvdXRwdXQgaW4gc3ViZGlycworKyAgICBhbV9fb2JqPXN1Yi9jb25mdGVzdC4ke09CSkVY VC1vfQorKyAgICBhbV9fbWludXNfb2JqPSItbyAkYW1fX29iaiIKKysgICAgY2FzZSAkZGVwbW9k ZSBpbgorKyAgICBnY2MpCisrICAgICAgIyBUaGlzIGRlcG1vZGUgY2F1c2VzIGEgY29tcGlsZXIg cmFjZSBpbiB1bml2ZXJzYWwgbW9kZS4KKysgICAgICB0ZXN0ICIkYW1fX3VuaXZlcnNhbCIgPSBm YWxzZSB8fCBjb250aW51ZQorKyAgICAgIDs7CisrICAgIG5vc2lkZWVmZmVjdCkKKysgICAgICAj IGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFyZSBub3QgYnkgc2lkZS1lZmZlY3QsIHNvIHRo ZXknbGwKKysgICAgICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVxdWVzdGVkCisr ICAgICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4eWVzOyB0aGVu CisrCWNvbnRpbnVlCisrICAgICAgZWxzZQorKwlicmVhaworKyAgICAgIGZpCisrICAgICAgOzsK KysgICAgbXN2aXN1YWxjcHAgfCBtc3ZjbXN5cykKKysgICAgICAjIFRoaXMgY29tcGlsZXIgd29u J3QgZ3JvayBgLWMgLW8nLCBidXQgYWxzbywgdGhlIG1pbnVzbyB0ZXN0IGhhcworKyAgICAgICMg bm90IHJ1biB5ZXQuICBUaGVzZSBkZXBtb2RlcyBhcmUgbGF0ZSBlbm91Z2ggaW4gdGhlIGdhbWUs IGFuZAorKyAgICAgICMgc28gd2VhayB0aGF0IHRoZWlyIGZ1bmN0aW9uaW5nIHNob3VsZCBub3Qg YmUgaW1wYWN0ZWQuCisrICAgICAgYW1fX29iaj1jb25mdGVzdC4ke09CSkVYVC1vfQorKyAgICAg IGFtX19taW51c19vYmo9CisrICAgICAgOzsKKysgICAgbm9uZSkgYnJlYWsgOzsKKysgICAgZXNh YworKyAgICBpZiBkZXBtb2RlPSRkZXBtb2RlIFwKKysgICAgICAgc291cmNlPXN1Yi9jb25mdGVz dC5jIG9iamVjdD0kYW1fX29iaiBcCisrICAgICAgIGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlBvIHRt cGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCisrICAgICAgICRTSEVMTCAuL2RlcGNvbXAgJGRl cGNjIC1jICRhbV9fbWludXNfb2JqIHN1Yi9jb25mdGVzdC5jIFwKKysgICAgICAgICA+L2Rldi9u dWxsIDI+Y29uZnRlc3QuZXJyICYmCisrICAgICAgIGdyZXAgc3ViL2NvbmZ0c3QxLmggc3ViL2Nv bmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysgICAgICAgZ3JlcCBzdWIvY29uZnRzdDYu aCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorKyAgICAgICBncmVwICRhbV9f b2JqIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisrICAgICAgICR7TUFLRS1t YWtlfSAtcyAtZiBjb25mbWYgPiAvZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICAgICMgaWNjIGRv ZXNuJ3QgY2hva2Ugb24gdW5rbm93biBvcHRpb25zLCBpdCB3aWxsIGp1c3QgaXNzdWUgd2Fybmlu Z3MKKysgICAgICAjIG9yIHJlbWFya3MgKGV2ZW4gd2l0aCAtV2Vycm9yKS4gIFNvIHdlIGdyZXAg c3RkZXJyIGZvciBhbnkgbWVzc2FnZQorKyAgICAgICMgdGhhdCBzYXlzIGFuIG9wdGlvbiB3YXMg aWdub3JlZCBvciBub3Qgc3VwcG9ydGVkLgorKyAgICAgICMgV2hlbiBnaXZlbiAtTVAsIGljYyA3 LjAgYW5kIDcuMSBjb21wbGFpbiB0aHVzbHk6CisrICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5l IHdhcm5pbmc6IGlnbm9yaW5nIG9wdGlvbiAnLU0nOyBubyBhcmd1bWVudCByZXF1aXJlZAorKyAg ICAgICMgVGhlIGRpYWdub3NpcyBjaGFuZ2VkIGluIGljYyA4LjA6CisrICAgICAgIyAgIGljYzog Q29tbWFuZCBsaW5lIHJlbWFyazogb3B0aW9uICctTVAnIG5vdCBzdXBwb3J0ZWQKKysgICAgICBp ZiAoZ3JlcCAnaWdub3Jpbmcgb3B0aW9uJyBjb25mdGVzdC5lcnIgfHwKKysgICAgICAgICAgZ3Jl cCAnbm90IHN1cHBvcnRlZCcgY29uZnRlc3QuZXJyKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsg ZWxzZQorKyAgICAgICAgYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPSRkZXBt b2RlCisrICAgICAgICBicmVhaworKyAgICAgIGZpCisrICAgIGZpCisrICBkb25lCisrCisrICBj ZCAuLgorKyAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgorK2Vsc2UKKysgIGFtX2N2X0NYWF9kZXBlbmRl bmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCisrZmkKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19j b21waWxlcl90eXBlIiA+JjUKKyskYXNfZWNobyAiJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29t cGlsZXJfdHlwZSIgPiY2OyB9CisrQ1hYREVQTU9ERT1kZXBtb2RlPSRhbV9jdl9DWFhfZGVwZW5k ZW5jaWVzX2NvbXBpbGVyX3R5cGUKKysKKysgaWYKKysgIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVu Y3lfdHJhY2tpbmciICE9IHhubyBcCisrICAmJiB0ZXN0ICIkYW1fY3ZfQ1hYX2RlcGVuZGVuY2ll c19jb21waWxlcl90eXBlIiA9IGdjYzM7IHRoZW4KKysgIGFtX19mYXN0ZGVwQ1hYX1RSVUU9Cisr ICBhbV9fZmFzdGRlcENYWF9GQUxTRT0nIycKKytlbHNlCisrICBhbV9fZmFzdGRlcENYWF9UUlVF PScjJworKyAgYW1fX2Zhc3RkZXBDWFhfRkFMU0U9CisrZmkKKysKKysKKythY19leHQ9Y3BwCisr YWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25m dGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUK Kyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGhvdyB0 byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGhv dyB0byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IuLi4gIiA+JjY7IH0KKytpZiB0ZXN0IC16ICIk Q1hYQ1BQIjsgdGhlbgorKyAgaWYgdGVzdCAiJHthY19jdl9wcm9nX0NYWENQUCtzZXR9IiA9IHNl dDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgICAgICAj IERvdWJsZSBxdW90ZXMgYmVjYXVzZSBDWFhDUFAgbmVlZHMgdG8gYmUgZXhwYW5kZWQKKysgICAg Zm9yIENYWENQUCBpbiAiJENYWCAtRSIgIi9saWIvY3BwIgorKyAgICBkbworKyAgICAgIGFjX3By ZXByb2Nfb2s9ZmFsc2UKKytmb3IgYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcwor K2RvCisrICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZp Z3VyaW5nIGdsaWJjCisrICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KKysg ICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVk LCBzaW5jZQorKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21w aWxlcnMuCisrICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhl IGNvbXBpbGVyJ3MgcGFyc2VyLAorKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBl cnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCisrICBjYXQgY29uZmRlZnMuaCAtIDw8 X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpZmRl ZiBfX1NURENfXworKyMgaW5jbHVkZSA8bGltaXRzLmg+CisrI2Vsc2UKKysjIGluY2x1ZGUgPGFz c2VydC5oPgorKyNlbmRpZgorKwkJICAgICBTeW50YXggZXJyb3IKKytfQUNFT0YKKytpZiBhY19m bl9jeHhfdHJ5X2NwcCAiJExJTkVOTyI7IHRoZW4gOgorKworK2Vsc2UKKysgICMgQnJva2VuOiBm YWlscyBvbiB2YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2ZpCisrcm0gLWYgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cg Y2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCisrICAjIGNhbiBiZSBkZXRlY3RlZCBh bmQgaG93LgorKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KKytf QUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2NwcCAiJExJTkVOTyI7IHRoZW4gOgorKyAgIyBCcm9r ZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2Vsc2UKKysgICMgUGFz c2VzIGJvdGggdGVzdHMuCisrYWNfcHJlcHJvY19vaz06CisrYnJlYWsKKytmaQorK3JtIC1mIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisrCisrZG9uZQorKyMgQmVjYXVzZSBvZiBgYnJl YWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgorK3Jt IC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisraWYgJGFjX3ByZXByb2Nfb2s7IHRo ZW4gOgorKyAgYnJlYWsKKytmaQorKworKyAgICBkb25lCisrICAgIGFjX2N2X3Byb2dfQ1hYQ1BQ PSRDWFhDUFAKKysKKytmaQorKyAgQ1hYQ1BQPSRhY19jdl9wcm9nX0NYWENQUAorK2Vsc2UKKysg IGFjX2N2X3Byb2dfQ1hYQ1BQPSRDWFhDUFAKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkQ1hYQ1BQIiA+JjUKKyskYXNfZWNobyAiJENYWENQ UCIgPiY2OyB9CisrYWNfcHJlcHJvY19vaz1mYWxzZQorK2ZvciBhY19jeHhfcHJlcHJvY193YXJu X2ZsYWcgaW4gJycgeWVzCisrZG8KKysgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3 aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKKysgICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNv bXBpbGVyIHdvcmtzLgorKyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9f U1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisrICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24g ZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KKysgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhl IGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCisrICAjIG5vdCBqdXN0IHRocm91 Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KKysgIGNh dCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrI2lmZGVmIF9fU1REQ19fCisrIyBpbmNsdWRlIDxsaW1pdHMuaD4KKysjZWxz ZQorKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisrI2VuZGlmCisrCQkgICAgIFN5bnRheCBlcnJvcgor K19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfY3BwICIkTElORU5PIjsgdGhlbiA6CisrCisrZWxz ZQorKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgorK2NvbnRpbnVlCisrZmkKKyty bSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKworKyAgIyBPSywgd29ya3Mgb24g c2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKKysgICMg Y2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCisrICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5j b25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxhY19u b25leGlzdGVudC5oPgorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfY3BwICIkTElORU5PIjsg dGhlbiA6CisrICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgorK2NvbnRpbnVl CisrZWxzZQorKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KKythY19wcmVwcm9jX29rPToKKyticmVh aworK2ZpCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKytkb25lCisr IyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUg d2FzIHNraXBwZWQuCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKytpZiAk YWNfcHJlcHJvY19vazsgdGhlbiA6CisrCisrZWxzZQorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2Vj aG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorK2FzX2ZuX2Vycm9yICQ/ ICJDKysgcHJlcHJvY2Vzc29yIFwiJENYWENQUFwiIGZhaWxzIHNhbml0eSBjaGVjaworK1NlZSBc YGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMiICIkTElORU5PIiA1OyB9CisrZmkKKysKKyth Y19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRD RkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBj b25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFj X2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQor KworK0NYWEZMQUdTPSIkc2F2ZV9DWFhGTEFHUyIKKysKKytjYXNlIGBwd2RgIGluCisrICAqXCAq IHwgKlwJKikKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBX QVJOSU5HOiBMaWJ0b29sIGRvZXMgbm90IGNvcGUgd2VsbCB3aXRoIHdoaXRlc3BhY2UgaW4gXGBw d2RcYCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogTGlidG9vbCBkb2VzIG5vdCBj b3BlIHdlbGwgd2l0aCB3aGl0ZXNwYWNlIGluIFxgcHdkXGAiID4mMjt9IDs7CisrZXNhYworKwor KworKworK21hY3JvX3ZlcnNpb249JzIuMi4xMCcKKyttYWNyb19yZXZpc2lvbj0nMS4zMTc1Jwor KworKworKworKworKworKworKworKworKworKworKworKworKworK2x0bWFpbj0iJGFjX2F1eF9k aXIvbHRtYWluLnNoIgorKworKyMgQmFja3NsYXNoaWZ5IG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJl IHN0aWxsIGFjdGl2ZSB3aXRoaW4KKysjIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KKytzZWRfcXVv dGVfc3Vic3Q9J3MvXChbImAkXFxdXCkvXFxcMS9nJworKworKyMgU2FtZSBhcyBhYm92ZSwgYnV0 IGRvIG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVuY2VzLgorK2RvdWJsZV9xdW90ZV9zdWJzdD0n cy9cKFsiYFxcXVwpL1xcXDEvZycKKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdG8gZGVsYXkgZXhw YW5zaW9uIG9mIGFuIGVzY2FwZWQgc2hlbGwgdmFyaWFibGUgaW4gYQorKyMgZG91YmxlX3F1b3Rl X3N1YnN0J2VkIHN0cmluZy4KKytkZWxheV92YXJpYWJsZV9zdWJzdD0ncy9cXFxcXFxcXFxcXCQv XFxcXFxcJC9nJworKworKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24gb2Yg YW4gZXNjYXBlZCBzaW5nbGUgcXVvdGUuCisrZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0PSdzLydc JycvJ1wnXFxcXFxcXCdcJycvZycKKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdG8gYXZvaWQgYWNj aWRlbnRhbCBnbG9iYmluZyBpbiBldmFsZWQgZXhwcmVzc2lvbnMKKytub19nbG9iX3N1YnN0PSdz L1wqL1xcXCovZycKKysKKytFQ0hPPSdcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcJworK0VDSE89JEVDSE8kRUNITyRFQ0hPJEVDSE8kRUNITworK0VDSE89JEVD SE8kRUNITyRFQ0hPJEVDSE8kRUNITyRFQ0hPCisrCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBob3cgdG8gcHJpbnQgc3RyaW5ncyIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIHByaW50IHN0cmluZ3MuLi4gIiA+JjY7IH0KKysjIFRl c3QgcHJpbnQgZmlyc3QsIGJlY2F1c2UgaXQgd2lsbCBiZSBhIGJ1aWx0aW4gaWYgcHJlc2VudC4K KytpZiB0ZXN0ICJYYHByaW50IC1yIC0tIC1uIDI+L2Rldi9udWxsYCIgPSBYLW4gJiYgXAorKyAg IHRlc3QgIlhgcHJpbnQgLXIgLS0gJEVDSE8gMj4vZGV2L251bGxgIiA9ICJYJEVDSE8iOyB0aGVu CisrICBFQ0hPPSdwcmludCAtciAtLScKKytlbGlmIHRlc3QgIlhgcHJpbnRmICVzICRFQ0hPIDI+ L2Rldi9udWxsYCIgPSAiWCRFQ0hPIjsgdGhlbgorKyAgRUNITz0ncHJpbnRmICVzXG4nCisrZWxz ZQorKyAgIyBVc2UgdGhpcyBmdW5jdGlvbiBhcyBhIGZhbGxiYWNrIHRoYXQgYWx3YXlzIHdvcmtz LgorKyAgZnVuY19mYWxsYmFja19lY2hvICgpCisrICB7CisrICAgIGV2YWwgJ2NhdCA8PF9MVEVD SE9fRU9GCisrJDEKKytfTFRFQ0hPX0VPRicKKysgIH0KKysgIEVDSE89J2Z1bmNfZmFsbGJhY2tf ZWNobycKKytmaQorKworKyMgZnVuY19lY2hvX2FsbCBhcmcuLi4KKysjIEludm9rZSAkRUNITyB3 aXRoIGFsbCBhcmdzLCBzcGFjZS1zZXBhcmF0ZWQuCisrZnVuY19lY2hvX2FsbCAoKQorK3sKKysg ICAgJEVDSE8gIiIKKyt9CisrCisrY2FzZSAiJEVDSE8iIGluCisrICBwcmludGYqKSB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogcHJpbnRmIiA+JjUKKysk YXNfZWNobyAicHJpbnRmIiA+JjY7IH0gOzsKKysgIHByaW50KikgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHByaW50IC1yIiA+JjUKKyskYXNfZWNobyAi cHJpbnQgLXIiID4mNjsgfSA7OworKyAgKikgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6IGNhdCIgPiY1CisrJGFzX2VjaG8gImNhdCIgPiY2OyB9IDs7Cisr ZXNhYworKworKworKworKworKworKworKworKworKworKworKworKworKworKworK2FjX2V4dD1j CisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAk Q1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRM SUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisraWYgdGVz dCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk IG9mICIke2FjX3Rvb2xfcHJlZml4fWdjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3 aXRoIGFyZ3MuCisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9Z2NjOyBhY193b3JkPSQyCisr eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFj X3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsg fQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4K KysgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu CisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNf ZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs ZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsg dGhlbgorKyAgICBhY19jdl9wcm9nX0NDPSIke2FjX3Rvb2xfcHJlZml4fWdjYyIKKysgICAgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQor K0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrQ0M9JGFjX2N2X3Byb2dfQ0MKKytpZiB0 ZXN0IC1uICIkQ0MiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IHJlc3VsdDogJENDIiA+JjUKKyskYXNfZWNobyAiJENDIiA+JjY7IH0KKytlbHNlCisr ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4m NQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytmaQorK2lmIHRlc3QgLXogIiRh Y19jdl9wcm9nX0NDIjsgdGhlbgorKyAgYWNfY3RfQ0M9JENDCisrICAjIEV4dHJhY3QgdGhlIGZp cnN0IHdvcmQgb2YgImdjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3Mu Cisrc2V0IGR1bW15IGdjYzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJj aGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2df YWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCisrICBhY19jdl9wcm9n X2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0Lgor K2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2Rp ciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRo ZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iZ2NjIgorKyAgICAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrICBkb25lCisrSUZTPSRhc19zYXZl X0lGUworKworK2ZpCisrZmkKKythY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQworK2lmIHRl c3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiAkYWNfY3RfQ0MiID4mNQorKyRhc19lY2hvICIkYWNfY3RfQ0Mi ID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYg dGVzdCAieCRhY19jdF9DQyIgPSB4OyB0aGVuCisrICAgIENDPSIiCisrICBlbHNlCisrICAgIGNh c2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9v bHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21l OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBs ZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBDQz0kYWNfY3Rf Q0MKKysgIGZpCisrZWxzZQorKyAgQ0M9IiRhY19jdl9wcm9nX0NDIgorK2ZpCisrCisraWYgdGVz dCAteiAiJENDIjsgdGhlbgorKyAgICAgICAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgi OyB0aGVuCisrICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZp eH1jYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15 ICR7YWNfdG9vbF9wcmVmaXh9Y2M7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9w cm9nX0NDK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19DQz0iJEND IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAg SUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAg Zm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBp ZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3gg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2df Q0M9IiR7YWNfdG9vbF9wcmVmaXh9Y2MiCisrICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAg ICBicmVhayAyCisrICBmaQorK2RvbmUKKysgIGRvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisr ZmkKKytmaQorK0NDPSRhY19jdl9wcm9nX0NDCisraWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRDQyIgPiY1 CisrJGFzX2VjaG8gIiRDQyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsg fQorK2ZpCisrCisrCisrICBmaQorK2ZpCisraWYgdGVzdCAteiAiJENDIjsgdGhlbgorKyAgIyBF eHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFt ZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IGNjOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKysgIGFjX2N2X3Byb2df Q0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorKyAgYWNf cHJvZ19yZWplY3RlZD1ubworK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK Kytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3Qg LXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNf ZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IjsgfTsgdGhlbgorKyAgICBpZiB0ZXN0ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiA9ICIvdXNyL3VjYi9jYyI7IHRoZW4KKysgICAgICAgYWNfcHJvZ19yZWplY3RlZD15ZXMKKysg ICAgICAgY29udGludWUKKysgICAgIGZpCisrICAgIGFjX2N2X3Byb2dfQ0M9ImNjIgorKyAgICAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrICBkb25l CisrSUZTPSRhc19zYXZlX0lGUworKworK2lmIHRlc3QgJGFjX3Byb2dfcmVqZWN0ZWQgPSB5ZXM7 IHRoZW4KKysgICMgV2UgZm91bmQgYSBib2dvbiBpbiB0aGUgcGF0aCwgc28gbWFrZSBzdXJlIHdl IG5ldmVyIHVzZSBpdC4KKysgIHNldCBkdW1teSAkYWNfY3ZfcHJvZ19DQworKyAgc2hpZnQKKysg IGlmIHRlc3QgJCMgIT0gMDsgdGhlbgorKyAgICAjIFdlIGNob3NlIGEgZGlmZmVyZW50IGNvbXBp bGVyIGZyb20gdGhlIGJvZ3VzIG9uZS4KKysgICAgIyBIb3dldmVyLCBpdCBoYXMgdGhlIHNhbWUg YmFzZW5hbWUsIHNvIHRoZSBib2dvbiB3aWxsIGJlIGNob3NlbgorKyAgICAjIGZpcnN0IGlmIHdl IHNldCBDQyB0byBqdXN0IHRoZSBiYXNlbmFtZTsgdXNlIHRoZSBmdWxsIGZpbGUgbmFtZS4KKysg ICAgc2hpZnQKKysgICAgYWNfY3ZfcHJvZ19DQz0iJGFzX2Rpci8kYWNfd29yZCR7MSsnICd9JEAi CisrICBmaQorK2ZpCisrZmkKKytmaQorK0NDPSRhY19jdl9wcm9nX0NDCisraWYgdGVzdCAtbiAi JENDIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6ICRDQyIgPiY1CisrJGFzX2VjaG8gIiRDQyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNf ZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkQ0MiOyB0aGVu CisrICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICBmb3IgYWNfcHJvZyBp biBjbC5leGUKKysgIGRvCisrICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Rv b2xfcHJlZml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdz LgorK3NldCBkdW1teSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZzsgYWNfd29yZD0kMgorK3sgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCisrICBh Y19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vs c2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBp biAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0 ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4K KysgICAgYWNfY3ZfcHJvZ19DQz0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCisrICAgICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKysgIGRvbmUKKytJ RlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK0NDPSRhY19jdl9wcm9nX0NDCisraWYgdGVz dCAtbiAiJENDIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6ICRDQyIgPiY1CisrJGFzX2VjaG8gIiRDQyIgPiY2OyB9CisrZWxzZQorKyAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUK KyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICAgIHRlc3QgLW4gIiRDQyIgJiYg YnJlYWsKKysgIGRvbmUKKytmaQorK2lmIHRlc3QgLXogIiRDQyI7IHRoZW4KKysgIGFjX2N0X0ND PSRDQworKyAgZm9yIGFjX3Byb2cgaW4gY2wuZXhlCisrZG8KKysgICMgRXh0cmFjdCB0aGUgZmly c3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmdzLgorK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2Fj X2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCisrICBh Y19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRo ZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisr Zm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16 ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4 ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iJGFjX3Byb2ciCisrICAgICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKysgIGRvbmUK KytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X0NDPSRhY19jdl9wcm9nX2Fj X2N0X0NDCisraWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdF9DQyIgPiY1CisrJGFzX2Vj aG8gIiRhY19jdF9DQyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQor K2ZpCisrCisrCisrICB0ZXN0IC1uICIkYWNfY3RfQ0MiICYmIGJyZWFrCisrZG9uZQorKworKyAg aWYgdGVzdCAieCRhY19jdF9DQyIgPSB4OyB0aGVuCisrICAgIENDPSIiCisrICBlbHNlCisrICAg IGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3Mg dG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRy aXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBDQz0kYWNf Y3RfQ0MKKysgIGZpCisrZmkKKysKKytmaQorKworKworK3Rlc3QgLXogIiRDQyIgJiYgeyB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBpbiBcYCRhY19wd2Qn OiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQor K2FzX2ZuX2Vycm9yICQ/ICJubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQQVRI CisrU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscyIgIiRMSU5FTk8iIDU7IH0KKysK KysjIFByb3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCisrJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIg dmVyc2lvbiIgPiY1Cisrc2V0IFggJGFjX2NvbXBpbGUKKythY19jb21waWxlcj0kMgorK2ZvciBh Y19vcHRpb24gaW4gLS12ZXJzaW9uIC12IC1WIC1xdmVyc2lvbjsgZG8KKysgIHsgeyBhY190cnk9 IiRhY19jb21waWxlciAkYWNfb3B0aW9uID4mNSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAq XCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9l Y2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i OyB9ID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAkYWNfb3B0aW9uID4mNSIpIDI+Y29uZnRl c3QuZXJyCisrICBhY19zdGF0dXM9JD8KKysgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVu CisrICAgIHNlZCAnMTBhXAorKy4uLiByZXN0IG9mIHN0ZGVyciBvdXRwdXQgZGVsZXRlZCAuLi4K KysgICAgICAgICAxMHEnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIxCisrICAgIGNhdCBjb25m dGVzdC5lcjEgPiY1CisrICBmaQorKyAgcm0gLWYgY29uZnRlc3QuZXIxIGNvbmZ0ZXN0LmVycgor KyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9CisrZG9uZQorKworK3sgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNp bmcgdGhlIEdOVSBDIGNvbXBpbGVyIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVy IHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2FjX2N2X2NfY29tcGlsZXJfZ251K3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29u ZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgp CisreworKyNpZm5kZWYgX19HTlVDX18KKysgICAgICAgY2hva2UgbWUKKysjZW5kaWYKKysKKysg IDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jX3RyeV9jb21waWxlICIk TElORU5PIjsgdGhlbiA6CisrICBhY19jb21waWxlcl9nbnU9eWVzCisrZWxzZQorKyAgYWNfY29t cGlsZXJfZ251PW5vCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKythY19jdl9jX2NvbXBpbGVyX2dudT0kYWNfY29tcGls ZXJfZ251CisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogJGFjX2N2X2NfY29tcGlsZXJfZ251IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2Nf Y29tcGlsZXJfZ251IiA+JjY7IH0KKytpZiB0ZXN0ICRhY19jb21waWxlcl9nbnUgPSB5ZXM7IHRo ZW4KKysgIEdDQz15ZXMKKytlbHNlCisrICBHQ0M9CisrZmkKKythY190ZXN0X0NGTEFHUz0ke0NG TEFHUytzZXR9CisrYWNfc2F2ZV9DRkxBR1M9JENGTEFHUworK3sgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciAkQ0MgYWNjZXB0cyAtZyIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAkQ0MgYWNjZXB0cyAtZy4uLiAiID4mNjsg fQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19jY19nK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfc2F2ZV9jX3dlcnJvcl9mbGFn PSRhY19jX3dlcnJvcl9mbGFnCisrICAgYWNfY193ZXJyb3JfZmxhZz15ZXMKKysgICBhY19jdl9w cm9nX2NjX2c9bm8KKysgICBDRkxBR1M9Ii1nIgorKyAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNF T0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50Cisr bWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19m bl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CisrICBhY19jdl9wcm9nX2NjX2c9eWVz CisrZWxzZQorKyAgQ0ZMQUdTPSIiCisrICAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+ Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWlu ICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2Nf dHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKysKKytlbHNlCisrICBhY19jX3dlcnJvcl9m bGFnPSRhY19zYXZlX2Nfd2Vycm9yX2ZsYWcKKysJIENGTEFHUz0iLWciCisrCSBjYXQgY29uZmRl ZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAq LworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FD RU9GCisraWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorKyAgYWNfY3Zf cHJvZ19jY19nPXllcworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytmaQorK3JtIC1mIGNvcmUgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKyAgIGFjX2Nf d2Vycm9yX2ZsYWc9JGFjX3NhdmVfY193ZXJyb3JfZmxhZworK2ZpCisreyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9wcm9nX2NjX2ciID4mNQor KyRhc19lY2hvICIkYWNfY3ZfcHJvZ19jY19nIiA+JjY7IH0KKytpZiB0ZXN0ICIkYWNfdGVzdF9D RkxBR1MiID0gc2V0OyB0aGVuCisrICBDRkxBR1M9JGFjX3NhdmVfQ0ZMQUdTCisrZWxpZiB0ZXN0 ICRhY19jdl9wcm9nX2NjX2cgPSB5ZXM7IHRoZW4KKysgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0 aGVuCisrICAgIENGTEFHUz0iLWcgLU8yIgorKyAgZWxzZQorKyAgICBDRkxBR1M9Ii1nIgorKyAg ZmkKKytlbHNlCisrICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgICBDRkxBR1M9Ii1P MiIKKysgIGVsc2UKKysgICAgQ0ZMQUdTPQorKyAgZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRDQyBvcHRpb24gdG8gYWNjZXB0 IElTTyBDODkiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkQ0Mgb3B0aW9uIHRvIGFj Y2VwdCBJU08gQzg5Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2NjX2M4OStz ZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgIGFjX2N2X3Byb2dfY2NfYzg5PW5vCisrYWNfc2F2ZV9DQz0kQ0MKKytjYXQgY29uZmRlZnMu aCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLwor KyNpbmNsdWRlIDxzdGRhcmcuaD4KKysjaW5jbHVkZSA8c3RkaW8uaD4KKysjaW5jbHVkZSA8c3lz L3R5cGVzLmg+CisrI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisrLyogTW9zdCBvZiB0aGUgZm9sbG93 aW5nIHRlc3RzIGFyZSBzdG9sZW4gZnJvbSBSQ1MgNS43J3Mgc3JjL2NvbmYuc2guICAqLworK3N0 cnVjdCBidWYgeyBpbnQgeDsgfTsKKytGSUxFICogKCpyY3NvcGVuKSAoc3RydWN0IGJ1ZiAqLCBz dHJ1Y3Qgc3RhdCAqLCBpbnQpOworK3N0YXRpYyBjaGFyICplIChwLCBpKQorKyAgICAgY2hhciAq KnA7CisrICAgICBpbnQgaTsKKyt7CisrICByZXR1cm4gcFtpXTsKKyt9Cisrc3RhdGljIGNoYXIg KmYgKGNoYXIgKiAoKmcpIChjaGFyICoqLCBpbnQpLCBjaGFyICoqcCwgLi4uKQorK3sKKysgIGNo YXIgKnM7CisrICB2YV9saXN0IHY7CisrICB2YV9zdGFydCAodixwKTsKKysgIHMgPSBnIChwLCB2 YV9hcmcgKHYsaW50KSk7CisrICB2YV9lbmQgKHYpOworKyAgcmV0dXJuIHM7CisrfQorKworKy8q IE9TRiA0LjAgQ29tcGFxIGNjIGlzIHNvbWUgc29ydCBvZiBhbG1vc3QtQU5TSSBieSBkZWZhdWx0 LiAgSXQgaGFzCisrICAgZnVuY3Rpb24gcHJvdG90eXBlcyBhbmQgc3R1ZmYsIGJ1dCBub3QgJ1x4 SEgnIGhleCBjaGFyYWN0ZXIgY29uc3RhbnRzLgorKyAgIFRoZXNlIGRvbid0IHByb3Zva2UgYW4g ZXJyb3IgdW5mb3J0dW5hdGVseSwgaW5zdGVhZCBhcmUgc2lsZW50bHkgdHJlYXRlZAorKyAgIGFz ICd4Jy4gIFRoZSBmb2xsb3dpbmcgaW5kdWNlcyBhbiBlcnJvciwgdW50aWwgLXN0ZCBpcyBhZGRl ZCB0byBnZXQKKysgICBwcm9wZXIgQU5TSSBtb2RlLiAgQ3VyaW91c2x5ICdceDAwJyE9J3gnIGFs d2F5cyBjb21lcyBvdXQgdHJ1ZSwgZm9yIGFuCisrICAgYXJyYXkgc2l6ZSBhdCBsZWFzdC4gIEl0 J3MgbmVjZXNzYXJ5IHRvIHdyaXRlICdceDAwJz09MCB0byBnZXQgc29tZXRoaW5nCisrICAgdGhh dCdzIHRydWUgb25seSB3aXRoIC1zdGQuICAqLworK2ludCBvc2Y0X2NjX2FycmF5IFsnXHgwMCcg PT0gMCA/IDEgOiAtMV07CisrCisrLyogSUJNIEMgNiBmb3IgQUlYIGlzIGFsbW9zdC1BTlNJIGJ5 IGRlZmF1bHQsIGJ1dCBpdCByZXBsYWNlcyBtYWNybyBwYXJhbWV0ZXJzCisrICAgaW5zaWRlIHN0 cmluZ3MgYW5kIGNoYXJhY3RlciBjb25zdGFudHMuICAqLworKyNkZWZpbmUgRk9PKHgpICd4Jwor K2ludCB4bGM2X2NjX2FycmF5W0ZPTyhhKSA9PSAneCcgPyAxIDogLTFdOworKworK2ludCB0ZXN0 IChpbnQgaSwgZG91YmxlIHgpOworK3N0cnVjdCBzMSB7aW50ICgqZikgKGludCBhKTt9OworK3N0 cnVjdCBzMiB7aW50ICgqZikgKGRvdWJsZSBhKTt9OworK2ludCBwYWlybmFtZXMgKGludCwgY2hh ciAqKiwgRklMRSAqKCopKHN0cnVjdCBidWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KSwgaW50LCBp bnQpOworK2ludCBhcmdjOworK2NoYXIgKiphcmd2OworK2ludAorK21haW4gKCkKKyt7CisrcmV0 dXJuIGYgKGUsIGFyZ3YsIDApICE9IGFyZ3ZbMF0gIHx8ICBmIChlLCBhcmd2LCAxKSAhPSBhcmd2 WzFdOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2ZvciBhY19hcmcgaW4gJycg LXFsYW5nbHZsPWV4dGM4OSAtcWxhbmdsdmw9YW5zaSAtc3RkIFwKKysJLUFlICItQWEgLURfSFBV WF9TT1VSQ0UiICItWGMgLURfX0VYVEVOU0lPTlNfXyIKKytkbworKyAgQ0M9IiRhY19zYXZlX0ND ICRhY19hcmciCisrICBpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Cisr ICBhY19jdl9wcm9nX2NjX2M4OT0kYWNfYXJnCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0CisrICB0ZXN0ICJ4JGFjX2N2X3Byb2dfY2NfYzg5IiAhPSAi eG5vIiAmJiBicmVhaworK2RvbmUKKytybSAtZiBjb25mdGVzdC4kYWNfZXh0CisrQ0M9JGFjX3Nh dmVfQ0MKKysKKytmaQorKyMgQUNfQ0FDSEVfVkFMCisrY2FzZSAieCRhY19jdl9wcm9nX2NjX2M4 OSIgaW4KKysgIHgpCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiBub25lIG5lZWRlZCIgPiY1CisrJGFzX2VjaG8gIm5vbmUgbmVlZGVkIiA+JjY7 IH0gOzsKKysgIHhubykKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6IHVuc3VwcG9ydGVkIiA+JjUKKyskYXNfZWNobyAidW5zdXBwb3J0ZWQiID4m NjsgfSA7OworKyAgKikKKysgICAgQ0M9IiRDQyAkYWNfY3ZfcHJvZ19jY19jODkiCisrICAgIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfcHJv Z19jY19jODkiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfcHJvZ19jY19jODkiID4mNjsgfSA7Owor K2VzYWMKKytpZiB0ZXN0ICJ4JGFjX2N2X3Byb2dfY2NfYzg5IiAhPSB4bm87IHRoZW4gOgorKwor K2ZpCisrCisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9 JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5r PSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21w aWxlcl9nbnUKKysKKytkZXBjYz0iJENDIiAgIGFtX2NvbXBpbGVyX2xpc3Q9CisrCisreyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBkZXBlbmRlbmN5IHN0 eWxlIG9mICRkZXBjYyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHls ZSBvZiAkZGVwY2MuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FtX2N2X0NDX2RlcGVuZGVuY2ll c19jb21waWxlcl90eXBlK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAteiAiJEFNREVQX1RSVUUiICYmIHRlc3QgLWYg IiRhbV9kZXBjb21wIjsgdGhlbgorKyAgIyBXZSBtYWtlIGEgc3ViZGlyIGFuZCBkbyB0aGUgdGVz dHMgdGhlcmUuICBPdGhlcndpc2Ugd2UgY2FuIGVuZCB1cAorKyAgIyBtYWtpbmcgYm9ndXMgZmls ZXMgdGhhdCB3ZSBkb24ndCBrbm93IGFib3V0IGFuZCBuZXZlciByZW1vdmUuICBGb3IKKysgICMg aW5zdGFuY2UgaXQgd2FzIHJlcG9ydGVkIHRoYXQgb24gSFAtVVggdGhlIGdjYyB0ZXN0IHdpbGwg ZW5kIHVwCisrICAjIG1ha2luZyBhIGR1bW15IGZpbGUgbmFtZWQgYEQnIC0tIGJlY2F1c2UgYC1N RCcgbWVhbnMgYHB1dCB0aGUgb3V0cHV0CisrICAjIGluIEQnLgorKyAgbWtkaXIgY29uZnRlc3Qu ZGlyCisrICAjIENvcHkgZGVwY29tcCB0byBzdWJkaXIgYmVjYXVzZSBvdGhlcndpc2Ugd2Ugd29u J3QgZmluZCBpdCBpZiB3ZSdyZQorKyAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVjdG9yeS4KKysg IGNwICIkYW1fZGVwY29tcCIgY29uZnRlc3QuZGlyCisrICBjZCBjb25mdGVzdC5kaXIKKysgICMg V2Ugd2lsbCBidWlsZCBvYmplY3RzIGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJkaXJlY3Rvcnkg YmVjYXVzZQorKyAgIyBpdCBoZWxwcyB0byBkZXRlY3QgaW5hcHBsaWNhYmxlIGRlcGVuZGVuY3kg bW9kZXMuICBGb3IgaW5zdGFuY2UKKysgICMgYm90aCBUcnU2NCdzIGNjIGFuZCBJQ0Mgc3VwcG9y dCAtTUQgdG8gb3V0cHV0IGRlcGVuZGVuY2llcyBhcyBhCisrICAjIHNpZGUgZWZmZWN0IG9mIGNv bXBpbGF0aW9uLCBidXQgSUNDIHdpbGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4KKysgICMgdGhl IGN1cnJlbnQgZGlyZWN0b3J5IHdoaWxlIFRydTY0IHdpbGwgcHV0IHRoZW0gaW4gdGhlIG9iamVj dAorKyAgIyBkaXJlY3RvcnkuCisrICBta2RpciBzdWIKKysKKysgIGFtX2N2X0NDX2RlcGVuZGVu Y2llc19jb21waWxlcl90eXBlPW5vbmUKKysgIGlmIHRlc3QgIiRhbV9jb21waWxlcl9saXN0IiA9 ICIiOyB0aGVuCisrICAgICBhbV9jb21waWxlcl9saXN0PWBzZWQgLW4gJ3MvXiMqXChbYS16QS1a MC05XSpcKSkkL1wxL3AnIDwgLi9kZXBjb21wYAorKyAgZmkKKysgIGFtX191bml2ZXJzYWw9ZmFs c2UKKysgIGNhc2UgIiAkZGVwY2MgIiBpbiAjKAorKyAgICAgKlwgLWFyY2hcICpcIC1hcmNoXCAq KSBhbV9fdW5pdmVyc2FsPXRydWUgOzsKKysgICAgIGVzYWMKKysKKysgIGZvciBkZXBtb2RlIGlu ICRhbV9jb21waWxlcl9saXN0OyBkbworKyAgICAjIFNldHVwIGEgc291cmNlIHdpdGggbWFueSBk ZXBlbmRlbmNpZXMsIGJlY2F1c2Ugc29tZSBjb21waWxlcnMKKysgICAgIyBsaWtlIHRvIHdyYXAg bGFyZ2UgZGVwZW5kZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAgKHdpdGggXCksIGFuZAorKyAgICAj IHdlIHNob3VsZCBub3QgY2hvb3NlIGEgZGVwY29tcCBtb2RlIHdoaWNoIGlzIGNvbmZ1c2VkIGJ5 IHRoaXMuCisrICAgICMKKysgICAgIyBXZSBuZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZpbGVzIGZv ciBlYWNoIHRlc3QsIGFzIHRoZSBjb21waWxlciBtYXkKKysgICAgIyBvdmVyd3JpdGUgc29tZSBv ZiB0aGVtIHdoZW4gdGVzdGluZyB3aXRoIG9ic2N1cmUgY29tbWFuZCBsaW5lcy4KKysgICAgIyBU aGlzIGhhcHBlbnMgYXQgbGVhc3Qgd2l0aCB0aGUgQUlYIEMgY29tcGlsZXIuCisrICAgIDogPiBz dWIvY29uZnRlc3QuYworKyAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNjsgZG8KKysgICAgICBlY2hv ICcjaW5jbHVkZSAiY29uZnRzdCckaScuaCInID4+IHN1Yi9jb25mdGVzdC5jCisrICAgICAgIyBV c2luZyBgOiA+IHN1Yi9jb25mdHN0JGkuaCcgY3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0MS5oIHdp dGgKKysgICAgICAjIFNvbGFyaXMgOCdzIHsvdXNyLH0vYmluL3NoLgorKyAgICAgIHRvdWNoIHN1 Yi9jb25mdHN0JGkuaAorKyAgICBkb25lCisrICAgIGVjaG8gIiR7YW1fX2luY2x1ZGV9ICR7YW1f X3F1b3RlfXN1Yi9jb25mdGVzdC5QbyR7YW1fX3F1b3RlfSIgPiBjb25mbWYKKysKKysgICAgIyBX ZSBjaGVjayB3aXRoIGAtYycgYW5kIGAtbycgZm9yIHRoZSBzYWtlIG9mIHRoZSAiZGFzaG1zdGRv dXQiCisrICAgICMgbW9kZS4gIEl0IHR1cm5zIG91dCB0aGF0IHRoZSBTdW5Qcm8gQysrIGNvbXBp bGVyIGRvZXMgbm90IHByb3Blcmx5CisrICAgICMgaGFuZGxlIGAtTSAtbycsIGFuZCB3ZSBuZWVk IHRvIGRldGVjdCB0aGlzLiAgQWxzbywgc29tZSBJbnRlbAorKyAgICAjIHZlcnNpb25zIGhhZCB0 cm91YmxlIHdpdGggb3V0cHV0IGluIHN1YmRpcnMKKysgICAgYW1fX29iaj1zdWIvY29uZnRlc3Qu JHtPQkpFWFQtb30KKysgICAgYW1fX21pbnVzX29iaj0iLW8gJGFtX19vYmoiCisrICAgIGNhc2Ug JGRlcG1vZGUgaW4KKysgICAgZ2NjKQorKyAgICAgICMgVGhpcyBkZXBtb2RlIGNhdXNlcyBhIGNv bXBpbGVyIHJhY2UgaW4gdW5pdmVyc2FsIG1vZGUuCisrICAgICAgdGVzdCAiJGFtX191bml2ZXJz YWwiID0gZmFsc2UgfHwgY29udGludWUKKysgICAgICA7OworKyAgICBub3NpZGVlZmZlY3QpCisr ICAgICAgIyBhZnRlciB0aGlzIHRhZywgbWVjaGFuaXNtcyBhcmUgbm90IGJ5IHNpZGUtZWZmZWN0 LCBzbyB0aGV5J2xsCisrICAgICAgIyBvbmx5IGJlIHVzZWQgd2hlbiBleHBsaWNpdGx5IHJlcXVl c3RlZAorKyAgICAgIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciID0geHll czsgdGhlbgorKwljb250aW51ZQorKyAgICAgIGVsc2UKKysJYnJlYWsKKysgICAgICBmaQorKyAg ICAgIDs7CisrICAgIG1zdmlzdWFsY3BwIHwgbXN2Y21zeXMpCisrICAgICAgIyBUaGlzIGNvbXBp bGVyIHdvbid0IGdyb2sgYC1jIC1vJywgYnV0IGFsc28sIHRoZSBtaW51c28gdGVzdCBoYXMKKysg ICAgICAjIG5vdCBydW4geWV0LiAgVGhlc2UgZGVwbW9kZXMgYXJlIGxhdGUgZW5vdWdoIGluIHRo ZSBnYW1lLCBhbmQKKysgICAgICAjIHNvIHdlYWsgdGhhdCB0aGVpciBmdW5jdGlvbmluZyBzaG91 bGQgbm90IGJlIGltcGFjdGVkLgorKyAgICAgIGFtX19vYmo9Y29uZnRlc3QuJHtPQkpFWFQtb30K KysgICAgICBhbV9fbWludXNfb2JqPQorKyAgICAgIDs7CisrICAgIG5vbmUpIGJyZWFrIDs7Cisr ICAgIGVzYWMKKysgICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBcCisrICAgICAgIHNvdXJjZT1zdWIv Y29uZnRlc3QuYyBvYmplY3Q9JGFtX19vYmogXAorKyAgICAgICBkZXBmaWxlPXN1Yi9jb25mdGVz dC5QbyB0bXBkZXBmaWxlPXN1Yi9jb25mdGVzdC5UUG8gXAorKyAgICAgICAkU0hFTEwgLi9kZXBj b21wICRkZXBjYyAtYyAkYW1fX21pbnVzX29iaiBzdWIvY29uZnRlc3QuYyBcCisrICAgICAgICAg Pi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgorKyAgICAgICBncmVwIHN1Yi9jb25mdHN0MS5o IHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisrICAgICAgIGdyZXAgc3ViL2Nv bmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysgICAgICAgZ3Jl cCAkYW1fX29iaiBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorKyAgICAgICAk e01BS0UtbWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAgICAj IGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlzc3Vl IHdhcm5pbmdzCisrICAgICAgIyBvciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBTbyB3 ZSBncmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKKysgICAgICAjIHRoYXQgc2F5cyBhbiBvcHRp b24gd2FzIGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KKysgICAgICAjIFdoZW4gZ2l2ZW4gLU1Q LCBpY2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5OgorKyAgICAgICMgICBpY2M6IENvbW1h bmQgbGluZSB3YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVxdWly ZWQKKysgICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4wOgorKyAgICAgICMg ICBpY2M6IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVkCisr ICAgICAgaWYgKGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8CisrICAgICAg ICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYxOyB0 aGVuIDo7IGVsc2UKKysgICAgICAgIGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBl PSRkZXBtb2RlCisrICAgICAgICBicmVhaworKyAgICAgIGZpCisrICAgIGZpCisrICBkb25lCisr CisrICBjZCAuLgorKyAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgorK2Vsc2UKKysgIGFtX2N2X0NDX2Rl cGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKKytmaQorKworK2ZpCisreyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhbV9jdl9DQ19kZXBlbmRlbmNp ZXNfY29tcGlsZXJfdHlwZSIgPiY1CisrJGFzX2VjaG8gIiRhbV9jdl9DQ19kZXBlbmRlbmNpZXNf Y29tcGlsZXJfdHlwZSIgPiY2OyB9CisrQ0NERVBNT0RFPWRlcG1vZGU9JGFtX2N2X0NDX2RlcGVu ZGVuY2llc19jb21waWxlcl90eXBlCisrCisrIGlmCisrICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRl bmN5X3RyYWNraW5nIiAhPSB4bm8gXAorKyAgJiYgdGVzdCAiJGFtX2N2X0NDX2RlcGVuZGVuY2ll c19jb21waWxlcl90eXBlIiA9IGdjYzM7IHRoZW4KKysgIGFtX19mYXN0ZGVwQ0NfVFJVRT0KKysg IGFtX19mYXN0ZGVwQ0NfRkFMU0U9JyMnCisrZWxzZQorKyAgYW1fX2Zhc3RkZXBDQ19UUlVFPScj JworKyAgYW1fX2Zhc3RkZXBDQ19GQUxTRT0KKytmaQorKworKworK3sgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGEgc2VkIHRoYXQgZG9lcyBub3Qg dHJ1bmNhdGUgb3V0cHV0IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSBzZWQgdGhh dCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2 X3BhdGhfU0VEK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2CisrZWxzZQorKyAgICAgICAgICAgIGFjX3NjcmlwdD1zL2FhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhL2JiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYi8KKysgICAg IGZvciBhY19pIGluIDEgMiAzIDQgNSA2IDc7IGRvCisrICAgICAgIGFjX3NjcmlwdD0iJGFjX3Nj cmlwdCRhc19ubCRhY19zY3JpcHQiCisrICAgICBkb25lCisrICAgICBlY2hvICIkYWNfc2NyaXB0 IiAyPi9kZXYvbnVsbCB8IHNlZCA5OXEgPmNvbmZ0ZXN0LnNlZAorKyAgICAgeyBhY19zY3JpcHQ9 OyB1bnNldCBhY19zY3JpcHQ7fQorKyAgICAgaWYgdGVzdCAteiAiJFNFRCI7IHRoZW4KKysgIGFj X3BhdGhfU0VEX2ZvdW5kPWZhbHNlCisrICAjIExvb3AgdGhyb3VnaCB0aGUgdXNlcidzIHBhdGgg YW5kIHRlc3QgZm9yIGVhY2ggb2YgUFJPR05BTUUtTElTVAorKyAgYXNfc2F2ZV9JRlM9JElGUzsg SUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRh c19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAgZm9yIGFj X3Byb2cgaW4gc2VkIGdzZWQ7IGRvCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl Y3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgICAgIGFjX3BhdGhfU0VEPSIkYXNfZGlyLyRhY19w cm9nJGFjX2V4ZWNfZXh0IgorKyAgICAgIHsgdGVzdCAtZiAiJGFjX3BhdGhfU0VEIiAmJiAkYXNf dGVzdF94ICIkYWNfcGF0aF9TRUQiOyB9IHx8IGNvbnRpbnVlCisrIyBDaGVjayBmb3IgR05VIGFj X3BhdGhfU0VEIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCisrICAjIENoZWNrIGZvciBH TlUgJGFjX3BhdGhfU0VECisrY2FzZSBgIiRhY19wYXRoX1NFRCIgLS12ZXJzaW9uIDI+JjFgIGlu CisrKkdOVSopCisrICBhY19jdl9wYXRoX1NFRD0iJGFjX3BhdGhfU0VEIiBhY19wYXRoX1NFRF9m b3VuZD06OzsKKysqKQorKyAgYWNfY291bnQ9MAorKyAgJGFzX2VjaG9fbiAwMTIzNDU2Nzg5ID4i Y29uZnRlc3QuaW4iCisrICB3aGlsZSA6CisrICBkbworKyAgICBjYXQgImNvbmZ0ZXN0LmluIiAi Y29uZnRlc3QuaW4iID4iY29uZnRlc3QudG1wIgorKyAgICBtdiAiY29uZnRlc3QudG1wIiAiY29u ZnRlc3QuaW4iCisrICAgIGNwICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0Lm5sIgorKyAgICAkYXNf ZWNobyAnJyA+PiAiY29uZnRlc3QubmwiCisrICAgICIkYWNfcGF0aF9TRUQiIC1mIGNvbmZ0ZXN0 LnNlZCA8ICJjb25mdGVzdC5ubCIgPiJjb25mdGVzdC5vdXQiIDI+L2Rldi9udWxsIHx8IGJyZWFr CisrICAgIGRpZmYgImNvbmZ0ZXN0Lm91dCIgImNvbmZ0ZXN0Lm5sIiA+L2Rldi9udWxsIDI+JjEg fHwgYnJlYWsKKysgICAgYXNfZm5fYXJpdGggJGFjX2NvdW50ICsgMSAmJiBhY19jb3VudD0kYXNf dmFsCisrICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3BhdGhfU0VEX21heC0wfTsgdGhl bgorKyAgICAgICMgQmVzdCBvbmUgc28gZmFyLCBzYXZlIGl0IGJ1dCBrZWVwIGxvb2tpbmcgZm9y IGEgYmV0dGVyIG9uZQorKyAgICAgIGFjX2N2X3BhdGhfU0VEPSIkYWNfcGF0aF9TRUQiCisrICAg ICAgYWNfcGF0aF9TRURfbWF4PSRhY19jb3VudAorKyAgICBmaQorKyAgICAjIDEwKigyXjEwKSBj aGFycyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCisrICAgIHRlc3QgJGFjX2NvdW50 IC1ndCAxMCAmJiBicmVhaworKyAgZG9uZQorKyAgcm0gLWYgY29uZnRlc3QuaW4gY29uZnRlc3Qu dG1wIGNvbmZ0ZXN0Lm5sIGNvbmZ0ZXN0Lm91dDs7CisrZXNhYworKworKyAgICAgICRhY19wYXRo X1NFRF9mb3VuZCAmJiBicmVhayAzCisrICAgIGRvbmUKKysgIGRvbmUKKysgIGRvbmUKKytJRlM9 JGFzX3NhdmVfSUZTCisrICBpZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9TRUQiOyB0aGVuCisrICAg IGFzX2ZuX2Vycm9yICQ/ICJubyBhY2NlcHRhYmxlIHNlZCBjb3VsZCBiZSBmb3VuZCBpbiBcJFBB VEgiICIkTElORU5PIiA1CisrICBmaQorK2Vsc2UKKysgIGFjX2N2X3BhdGhfU0VEPSRTRUQKKytm aQorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6ICRhY19jdl9wYXRoX1NFRCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9wYXRoX1NFRCIgPiY2 OyB9CisrIFNFRD0iJGFjX2N2X3BhdGhfU0VEIgorKyAgcm0gLWYgY29uZnRlc3Quc2VkCisrCisr dGVzdCAteiAiJFNFRCIgJiYgU0VEPXNlZAorK1hzZWQ9IiRTRUQgLWUgMXMvXlgvLyIKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIGZvciBncmVwIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzIGFu ZCAtZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVzIGxv bmcgbGluZXMgYW5kIC1lLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wYXRoX0dSRVAr c2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrICBpZiB0ZXN0IC16ICIkR1JFUCI7IHRoZW4KKysgIGFjX3BhdGhfR1JFUF9mb3VuZD1mYWxz ZQorKyAgIyBMb29wIHRocm91Z2ggdGhlIHVzZXIncyBwYXRoIGFuZCB0ZXN0IGZvciBlYWNoIG9m IFBST0dOQU1FLUxJU1QKKysgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK Kytmb3IgYXNfZGlyIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbgorK2RvCisr ICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAg ICBmb3IgYWNfcHJvZyBpbiBncmVwIGdncmVwOyBkbworKyAgICBmb3IgYWNfZXhlY19leHQgaW4g JycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgICAgICBhY19wYXRoX0dSRVA9IiRh c19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiCisrICAgICAgeyB0ZXN0IC1mICIkYWNfcGF0aF9H UkVQIiAmJiAkYXNfdGVzdF94ICIkYWNfcGF0aF9HUkVQIjsgfSB8fCBjb250aW51ZQorKyMgQ2hl Y2sgZm9yIEdOVSBhY19wYXRoX0dSRVAgYW5kIHNlbGVjdCBpdCBpZiBpdCBpcyBmb3VuZC4KKysg ICMgQ2hlY2sgZm9yIEdOVSAkYWNfcGF0aF9HUkVQCisrY2FzZSBgIiRhY19wYXRoX0dSRVAiIC0t dmVyc2lvbiAyPiYxYCBpbgorKypHTlUqKQorKyAgYWNfY3ZfcGF0aF9HUkVQPSIkYWNfcGF0aF9H UkVQIiBhY19wYXRoX0dSRVBfZm91bmQ9Ojs7CisrKikKKysgIGFjX2NvdW50PTAKKysgICRhc19l Y2hvX24gMDEyMzQ1Njc4OSA+ImNvbmZ0ZXN0LmluIgorKyAgd2hpbGUgOgorKyAgZG8KKysgICAg Y2F0ICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0LmluIiA+ImNvbmZ0ZXN0LnRtcCIKKysgICAgbXYg ImNvbmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgorKyAgICBjcCAiY29uZnRlc3QuaW4iICJjb25m dGVzdC5ubCIKKysgICAgJGFzX2VjaG8gJ0dSRVAnID4+ICJjb25mdGVzdC5ubCIKKysgICAgIiRh Y19wYXRoX0dSRVAiIC1lICdHUkVQJCcgLWUgJy0oY2Fubm90IG1hdGNoKS0nIDwgImNvbmZ0ZXN0 Lm5sIiA+ImNvbmZ0ZXN0Lm91dCIgMj4vZGV2L251bGwgfHwgYnJlYWsKKysgICAgZGlmZiAiY29u ZnRlc3Qub3V0IiAiY29uZnRlc3QubmwiID4vZGV2L251bGwgMj4mMSB8fCBicmVhaworKyAgICBh c19mbl9hcml0aCAkYWNfY291bnQgKyAxICYmIGFjX2NvdW50PSRhc192YWwKKysgICAgaWYgdGVz dCAkYWNfY291bnQgLWd0ICR7YWNfcGF0aF9HUkVQX21heC0wfTsgdGhlbgorKyAgICAgICMgQmVz dCBvbmUgc28gZmFyLCBzYXZlIGl0IGJ1dCBrZWVwIGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQor KyAgICAgIGFjX2N2X3BhdGhfR1JFUD0iJGFjX3BhdGhfR1JFUCIKKysgICAgICBhY19wYXRoX0dS RVBfbWF4PSRhY19jb3VudAorKyAgICBmaQorKyAgICAjIDEwKigyXjEwKSBjaGFycyBhcyBpbnB1 dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCisrICAgIHRlc3QgJGFjX2NvdW50IC1ndCAxMCAmJiBi cmVhaworKyAgZG9uZQorKyAgcm0gLWYgY29uZnRlc3QuaW4gY29uZnRlc3QudG1wIGNvbmZ0ZXN0 Lm5sIGNvbmZ0ZXN0Lm91dDs7CisrZXNhYworKworKyAgICAgICRhY19wYXRoX0dSRVBfZm91bmQg JiYgYnJlYWsgMworKyAgICBkb25lCisrICBkb25lCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lG UworKyAgaWYgdGVzdCAteiAiJGFjX2N2X3BhdGhfR1JFUCI7IHRoZW4KKysgICAgYXNfZm5fZXJy b3IgJD8gIm5vIGFjY2VwdGFibGUgZ3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAkUEFUSCRQQVRIX1NF UEFSQVRPUi91c3IveHBnNC9iaW4iICIkTElORU5PIiA1CisrICBmaQorK2Vsc2UKKysgIGFjX2N2 X3BhdGhfR1JFUD0kR1JFUAorK2ZpCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2X3BhdGhfR1JFUCIgPiY1CisrJGFzX2VjaG8g IiRhY19jdl9wYXRoX0dSRVAiID4mNjsgfQorKyBHUkVQPSIkYWNfY3ZfcGF0aF9HUkVQIgorKwor KworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9y IGVncmVwIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZWdyZXAuLi4gIiA+JjY7IH0K KytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfRUdSRVArc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiBlY2hvIGEgfCAkR1JFUCAtRSAn KGF8YiknID4vZGV2L251bGwgMj4mMQorKyAgIHRoZW4gYWNfY3ZfcGF0aF9FR1JFUD0iJEdSRVAg LUUiCisrICAgZWxzZQorKyAgICAgaWYgdGVzdCAteiAiJEVHUkVQIjsgdGhlbgorKyAgYWNfcGF0 aF9FR1JFUF9mb3VuZD1mYWxzZQorKyAgIyBMb29wIHRocm91Z2ggdGhlIHVzZXIncyBwYXRoIGFu ZCB0ZXN0IGZvciBlYWNoIG9mIFBST0dOQU1FLUxJU1QKKysgIGFzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vz ci94cGc0L2JpbgorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfcHJvZyBpbiBlZ3JlcDsgZG8KKysgICAgZm9yIGFj X2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICAgICAgYWNf cGF0aF9FR1JFUD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIKKysgICAgICB7IHRlc3Qg LWYgIiRhY19wYXRoX0VHUkVQIiAmJiAkYXNfdGVzdF94ICIkYWNfcGF0aF9FR1JFUCI7IH0gfHwg Y29udGludWUKKysjIENoZWNrIGZvciBHTlUgYWNfcGF0aF9FR1JFUCBhbmQgc2VsZWN0IGl0IGlm IGl0IGlzIGZvdW5kLgorKyAgIyBDaGVjayBmb3IgR05VICRhY19wYXRoX0VHUkVQCisrY2FzZSBg IiRhY19wYXRoX0VHUkVQIiAtLXZlcnNpb24gMj4mMWAgaW4KKysqR05VKikKKysgIGFjX2N2X3Bh dGhfRUdSRVA9IiRhY19wYXRoX0VHUkVQIiBhY19wYXRoX0VHUkVQX2ZvdW5kPTo7OworKyopCisr ICBhY19jb3VudD0wCisrICAkYXNfZWNob19uIDAxMjM0NTY3ODkgPiJjb25mdGVzdC5pbiIKKysg IHdoaWxlIDoKKysgIGRvCisrICAgIGNhdCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5pbiIgPiJj b25mdGVzdC50bXAiCisrICAgIG12ICJjb25mdGVzdC50bXAiICJjb25mdGVzdC5pbiIKKysgICAg Y3AgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QubmwiCisrICAgICRhc19lY2hvICdFR1JFUCcgPj4g ImNvbmZ0ZXN0Lm5sIgorKyAgICAiJGFjX3BhdGhfRUdSRVAiICdFR1JFUCQnIDwgImNvbmZ0ZXN0 Lm5sIiA+ImNvbmZ0ZXN0Lm91dCIgMj4vZGV2L251bGwgfHwgYnJlYWsKKysgICAgZGlmZiAiY29u ZnRlc3Qub3V0IiAiY29uZnRlc3QubmwiID4vZGV2L251bGwgMj4mMSB8fCBicmVhaworKyAgICBh c19mbl9hcml0aCAkYWNfY291bnQgKyAxICYmIGFjX2NvdW50PSRhc192YWwKKysgICAgaWYgdGVz dCAkYWNfY291bnQgLWd0ICR7YWNfcGF0aF9FR1JFUF9tYXgtMH07IHRoZW4KKysgICAgICAjIEJl c3Qgb25lIHNvIGZhciwgc2F2ZSBpdCBidXQga2VlcCBsb29raW5nIGZvciBhIGJldHRlciBvbmUK KysgICAgICBhY19jdl9wYXRoX0VHUkVQPSIkYWNfcGF0aF9FR1JFUCIKKysgICAgICBhY19wYXRo X0VHUkVQX21heD0kYWNfY291bnQKKysgICAgZmkKKysgICAgIyAxMCooMl4xMCkgY2hhcnMgYXMg aW5wdXQgc2VlbXMgbW9yZSB0aGFuIGVub3VnaAorKyAgICB0ZXN0ICRhY19jb3VudCAtZ3QgMTAg JiYgYnJlYWsKKysgIGRvbmUKKysgIHJtIC1mIGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0LnRtcCBjb25m dGVzdC5ubCBjb25mdGVzdC5vdXQ7OworK2VzYWMKKysKKysgICAgICAkYWNfcGF0aF9FR1JFUF9m b3VuZCAmJiBicmVhayAzCisrICAgIGRvbmUKKysgIGRvbmUKKysgIGRvbmUKKytJRlM9JGFzX3Nh dmVfSUZTCisrICBpZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9FR1JFUCI7IHRoZW4KKysgICAgYXNf Zm5fZXJyb3IgJD8gIm5vIGFjY2VwdGFibGUgZWdyZXAgY291bGQgYmUgZm91bmQgaW4gJFBBVEgk UEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiAiJExJTkVOTyIgNQorKyAgZmkKKytlbHNlCisr ICBhY19jdl9wYXRoX0VHUkVQPSRFR1JFUAorK2ZpCisrCisrICAgZmkKKytmaQorK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfcGF0aF9FR1JF UCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9wYXRoX0VHUkVQIiA+JjY7IH0KKysgRUdSRVA9IiRh Y19jdl9wYXRoX0VHUkVQIgorKworKworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgZm9yIGZncmVwIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBm b3IgZmdyZXAuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfRkdSRVArc2V0fSIg PSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBp ZiBlY2hvICdhYipjJyB8ICRHUkVQIC1GICdhYipjJyA+L2Rldi9udWxsIDI+JjEKKysgICB0aGVu IGFjX2N2X3BhdGhfRkdSRVA9IiRHUkVQIC1GIgorKyAgIGVsc2UKKysgICAgIGlmIHRlc3QgLXog IiRGR1JFUCI7IHRoZW4KKysgIGFjX3BhdGhfRkdSRVBfZm91bmQ9ZmFsc2UKKysgICMgTG9vcCB0 aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3IgZWFjaCBvZiBQUk9HTkFNRS1MSVNU CisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBp biAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4KKytkbworKyAgSUZTPSRhc19zYXZl X0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAgZm9yIGFjX3Byb2cg aW4gZmdyZXA7IGRvCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9l eHRlbnNpb25zOyBkbworKyAgICAgIGFjX3BhdGhfRkdSRVA9IiRhc19kaXIvJGFjX3Byb2ckYWNf ZXhlY19leHQiCisrICAgICAgeyB0ZXN0IC1mICIkYWNfcGF0aF9GR1JFUCIgJiYgJGFzX3Rlc3Rf eCAiJGFjX3BhdGhfRkdSRVAiOyB9IHx8IGNvbnRpbnVlCisrIyBDaGVjayBmb3IgR05VIGFjX3Bh dGhfRkdSRVAgYW5kIHNlbGVjdCBpdCBpZiBpdCBpcyBmb3VuZC4KKysgICMgQ2hlY2sgZm9yIEdO VSAkYWNfcGF0aF9GR1JFUAorK2Nhc2UgYCIkYWNfcGF0aF9GR1JFUCIgLS12ZXJzaW9uIDI+JjFg IGluCisrKkdOVSopCisrICBhY19jdl9wYXRoX0ZHUkVQPSIkYWNfcGF0aF9GR1JFUCIgYWNfcGF0 aF9GR1JFUF9mb3VuZD06OzsKKysqKQorKyAgYWNfY291bnQ9MAorKyAgJGFzX2VjaG9fbiAwMTIz NDU2Nzg5ID4iY29uZnRlc3QuaW4iCisrICB3aGlsZSA6CisrICBkbworKyAgICBjYXQgImNvbmZ0 ZXN0LmluIiAiY29uZnRlc3QuaW4iID4iY29uZnRlc3QudG1wIgorKyAgICBtdiAiY29uZnRlc3Qu dG1wIiAiY29uZnRlc3QuaW4iCisrICAgIGNwICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0Lm5sIgor KyAgICAkYXNfZWNobyAnRkdSRVAnID4+ICJjb25mdGVzdC5ubCIKKysgICAgIiRhY19wYXRoX0ZH UkVQIiBGR1JFUCA8ICJjb25mdGVzdC5ubCIgPiJjb25mdGVzdC5vdXQiIDI+L2Rldi9udWxsIHx8 IGJyZWFrCisrICAgIGRpZmYgImNvbmZ0ZXN0Lm91dCIgImNvbmZ0ZXN0Lm5sIiA+L2Rldi9udWxs IDI+JjEgfHwgYnJlYWsKKysgICAgYXNfZm5fYXJpdGggJGFjX2NvdW50ICsgMSAmJiBhY19jb3Vu dD0kYXNfdmFsCisrICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3BhdGhfRkdSRVBfbWF4 LTB9OyB0aGVuCisrICAgICAgIyBCZXN0IG9uZSBzbyBmYXIsIHNhdmUgaXQgYnV0IGtlZXAgbG9v a2luZyBmb3IgYSBiZXR0ZXIgb25lCisrICAgICAgYWNfY3ZfcGF0aF9GR1JFUD0iJGFjX3BhdGhf RkdSRVAiCisrICAgICAgYWNfcGF0aF9GR1JFUF9tYXg9JGFjX2NvdW50CisrICAgIGZpCisrICAg ICMgMTAqKDJeMTApIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1vcmUgdGhhbiBlbm91Z2gKKysgICAg dGVzdCAkYWNfY291bnQgLWd0IDEwICYmIGJyZWFrCisrICBkb25lCisrICBybSAtZiBjb25mdGVz dC5pbiBjb25mdGVzdC50bXAgY29uZnRlc3QubmwgY29uZnRlc3Qub3V0OzsKKytlc2FjCisrCisr ICAgICAgJGFjX3BhdGhfRkdSRVBfZm91bmQgJiYgYnJlYWsgMworKyAgICBkb25lCisrICBkb25l CisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKyAgaWYgdGVzdCAteiAiJGFjX2N2X3BhdGhf RkdSRVAiOyB0aGVuCisrICAgIGFzX2ZuX2Vycm9yICQ/ICJubyBhY2NlcHRhYmxlIGZncmVwIGNv dWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgIiRMSU5F Tk8iIDUKKysgIGZpCisrZWxzZQorKyAgYWNfY3ZfcGF0aF9GR1JFUD0kRkdSRVAKKytmaQorKwor KyAgIGZpCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogJGFjX2N2X3BhdGhfRkdSRVAiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfcGF0aF9GR1JF UCIgPiY2OyB9CisrIEZHUkVQPSIkYWNfY3ZfcGF0aF9GR1JFUCIKKysKKysKKyt0ZXN0IC16ICIk R1JFUCIgJiYgR1JFUD1ncmVwCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1nbnUtbGQgd2FzIGdp dmVuLgorK2lmIHRlc3QgIiR7d2l0aF9nbnVfbGQrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgd2l0 aHZhbD0kd2l0aF9nbnVfbGQ7IHRlc3QgIiR3aXRodmFsIiA9IG5vIHx8IHdpdGhfZ251X2xkPXll cworK2Vsc2UKKysgIHdpdGhfZ251X2xkPW5vCisrZmkKKysKKythY19wcm9nPWxkCisraWYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICMgQ2hlY2sgaWYgZ2NjIC1wcmludC1wcm9nLW5hbWU9 bGQgZ2l2ZXMgYSBwYXRoLgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyBmb3IgbGQgdXNlZCBieSAkQ0MiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciBsZCB1c2VkIGJ5ICRDQy4uLiAiID4mNjsgfQorKyAgY2FzZSAkaG9zdCBpbgorKyAg Ki0qLW1pbmd3KikKKysgICAgIyBnY2MgbGVhdmVzIGEgdHJhaWxpbmcgY2FycmlhZ2UgcmV0dXJu IHdoaWNoIHVwc2V0cyBtaW5ndworKyAgICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9 bGQpIDI+JjUgfCB0ciAtZCAnXDAxNSdgIDs7CisrICAqKQorKyAgICBhY19wcm9nPWAoJENDIC1w cmludC1wcm9nLW5hbWU9bGQpIDI+JjVgIDs7CisrICBlc2FjCisrICBjYXNlICRhY19wcm9nIGlu CisrICAgICMgQWNjZXB0IGFic29sdXRlIHBhdGhzLgorKyAgICBbXFwvXSogfCA/OltcXC9dKikK KysgICAgICByZV9kaXJlbHQ9Jy9bXi9dW14vXSovXC5cLi8nCisrICAgICAgIyBDYW5vbmljYWxp emUgdGhlIHBhdGhuYW1lIG9mIGxkCisrICAgICAgYWNfcHJvZz1gJEVDSE8gIiRhY19wcm9nInwg JFNFRCAncyVcXFxcJS8lZydgCisrICAgICAgd2hpbGUgJEVDSE8gIiRhY19wcm9nIiB8ICRHUkVQ ICIkcmVfZGlyZWx0IiA+IC9kZXYvbnVsbCAyPiYxOyBkbworKwlhY19wcm9nPWAkRUNITyAkYWNf cHJvZ3wgJFNFRCAicyUkcmVfZGlyZWx0JS8lImAKKysgICAgICBkb25lCisrICAgICAgdGVzdCAt eiAiJExEIiAmJiBMRD0iJGFjX3Byb2ciCisrICAgICAgOzsKKysgICIiKQorKyAgICAjIElmIGl0 IGZhaWxzLCB0aGVuIHByZXRlbmQgd2UgYXJlbid0IHVzaW5nIEdDQy4KKysgICAgYWNfcHJvZz1s ZAorKyAgICA7OworKyAgKikKKysgICAgIyBJZiBpdCBpcyByZWxhdGl2ZSwgdGhlbiBzZWFyY2gg Zm9yIHRoZSBmaXJzdCBsZCBpbiBQQVRILgorKyAgICB3aXRoX2dudV9sZD11bmtub3duCisrICAg IDs7CisrICBlc2FjCisrZWxpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBHTlUg bGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBHTlUgbGQuLi4gIiA+JjY7IH0KKytl bHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5n IGZvciBub24tR05VIGxkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Igbm9uLUdOVSBs ZC4uLiAiID4mNjsgfQorK2ZpCisraWYgdGVzdCAiJHtsdF9jdl9wYXRoX0xEK3NldH0iID0gc2V0 OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVz dCAteiAiJExEIjsgdGhlbgorKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrICBmb3IgYWNfZGlyIGluICRQQVRIOyBkbworKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIK KysgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KKysgICAgaWYgdGVzdCAtZiAiJGFj X2Rpci8kYWNfcHJvZyIgfHwgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyRhY19leGVleHQiOyB0 aGVuCisrICAgICAgbHRfY3ZfcGF0aF9MRD0iJGFjX2Rpci8kYWNfcHJvZyIKKysgICAgICAjIENo ZWNrIHRvIHNlZSBpZiB0aGUgcHJvZ3JhbSBpcyBHTlUgbGQuICBJJ2QgcmF0aGVyIHVzZSAtLXZl cnNpb24sCisrICAgICAgIyBidXQgYXBwYXJlbnRseSBzb21lIHZhcmlhbnRzIG9mIEdOVSBsZCBv bmx5IGFjY2VwdCAtdi4KKysgICAgICAjIEJyZWFrIG9ubHkgaWYgaXQgd2FzIHRoZSBHTlUvbm9u LUdOVSBsZCB0aGF0IHdlIHByZWZlci4KKysgICAgICBjYXNlIGAiJGx0X2N2X3BhdGhfTEQiIC12 IDI+JjEgPC9kZXYvbnVsbGAgaW4KKysgICAgICAqR05VKiB8ICond2l0aCBCRkQnKikKKysJdGVz dCAiJHdpdGhfZ251X2xkIiAhPSBubyAmJiBicmVhaworKwk7OworKyAgICAgICopCisrCXRlc3Qg IiR3aXRoX2dudV9sZCIgIT0geWVzICYmIGJyZWFrCisrCTs7CisrICAgICAgZXNhYworKyAgICBm aQorKyAgZG9uZQorKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrZWxzZQorKyAgbHRfY3ZfcGF0aF9M RD0iJExEIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KKytm aQorK2ZpCisrCisrTEQ9IiRsdF9jdl9wYXRoX0xEIgorK2lmIHRlc3QgLW4gIiRMRCI7IHRoZW4K KysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkTEQi ID4mNQorKyRhc19lY2hvICIkTEQiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+ JjY7IH0KKytmaQorK3Rlc3QgLXogIiRMRCIgJiYgYXNfZm5fZXJyb3IgJD8gIm5vIGFjY2VwdGFi bGUgbGQgZm91bmQgaW4gXCRQQVRIIiAiJExJTkVOTyIgNQorK3sgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUg bGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmIHRoZSBsaW5rZXIgKCRMRCkgaXMgR05V IGxkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wcm9nX2dudV9sZCtzZXR9IiA9IHNl dDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgICMgSSdk IHJhdGhlciB1c2UgLS12ZXJzaW9uIGhlcmUsIGJ1dCBhcHBhcmVudGx5IHNvbWUgR05VIGxkcyBv bmx5IGFjY2VwdCAtdi4KKytjYXNlIGAkTEQgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgorKypHTlUq IHwgKid3aXRoIEJGRCcqKQorKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9eWVzCisrICA7OworKyopCisr ICBsdF9jdl9wcm9nX2dudV9sZD1ubworKyAgOzsKKytlc2FjCisrZmkKKyt7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X3Byb2dfZ251X2xkIiA+ JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfZ251X2xkIiA+JjY7IH0KKyt3aXRoX2dudV9sZD0k bHRfY3ZfcHJvZ19nbnVfbGQKKysKKysKKysKKysKKysKKysKKysKKysKKysKKyt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBCU0QtIG9yIE1TLWNv bXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlciAobm0pLi4uICIgPiY2OyB9CisraWYg dGVzdCAiJHtsdF9jdl9wYXRoX05NK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJE5NIjsgdGhlbgorKyAgIyBM ZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrICBsdF9jdl9wYXRoX05NPSIkTk0iCisr ZWxzZQorKyAgbHRfbm1fdG9fY2hlY2s9IiR7YWNfdG9vbF9wcmVmaXh9bm0iCisrICBpZiB0ZXN0 IC1uICIkYWNfdG9vbF9wcmVmaXgiICYmIHRlc3QgIiRidWlsZCIgPSAiJGhvc3QiOyB0aGVuCisr ICAgIGx0X25tX3RvX2NoZWNrPSIkbHRfbm1fdG9fY2hlY2sgbm0iCisrICBmaQorKyAgZm9yIGx0 X3RtcF9ubSBpbiAkbHRfbm1fdG9fY2hlY2s7IGRvCisrICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsg SUZTPSRQQVRIX1NFUEFSQVRPUgorKyAgICBmb3IgYWNfZGlyIGluICRQQVRIIC91c3IvY2NzL2Jp bi9lbGYgL3Vzci9jY3MvYmluIC91c3IvdWNiIC9iaW47IGRvCisrICAgICAgSUZTPSIkbHRfc2F2 ZV9pZnMiCisrICAgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KKysgICAgICB0bXBf bm09IiRhY19kaXIvJGx0X3RtcF9ubSIKKysgICAgICBpZiB0ZXN0IC1mICIkdG1wX25tIiB8fCB0 ZXN0IC1mICIkdG1wX25tJGFjX2V4ZWV4dCIgOyB0aGVuCisrCSMgQ2hlY2sgdG8gc2VlIGlmIHRo ZSBubSBhY2NlcHRzIGEgQlNELWNvbXBhdCBmbGFnLgorKwkjIEFkZGluZyB0aGUgYHNlZCAxcScg cHJldmVudHMgZmFsc2UgcG9zaXRpdmVzIG9uIEhQLVVYLCB3aGljaCBzYXlzOgorKwkjICAgbm06 IHVua25vd24gb3B0aW9uICJCIiBpZ25vcmVkCisrCSMgVHJ1NjQncyBubSBjb21wbGFpbnMgdGhh dCAvZGV2L251bGwgaXMgYW4gaW52YWxpZCBvYmplY3QgZmlsZQorKwljYXNlIGAiJHRtcF9ubSIg LUIgL2Rldi9udWxsIDI+JjEgfCBzZWQgJzFxJ2AgaW4KKysJKi9kZXYvbnVsbCogfCAqJ0ludmFs aWQgZmlsZSBvciBvYmplY3QgdHlwZScqKQorKwkgIGx0X2N2X3BhdGhfTk09IiR0bXBfbm0gLUIi CisrCSAgYnJlYWsKKysJICA7OworKwkqKQorKwkgIGNhc2UgYCIkdG1wX25tIiAtcCAvZGV2L251 bGwgMj4mMSB8IHNlZCAnMXEnYCBpbgorKwkgICovZGV2L251bGwqKQorKwkgICAgbHRfY3ZfcGF0 aF9OTT0iJHRtcF9ubSAtcCIKKysJICAgIGJyZWFrCisrCSAgICA7OworKwkgICopCisrCSAgICBs dF9jdl9wYXRoX05NPSR7bHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSJ9ICMga2VlcCB0aGUgZmlyc3Qg bWF0Y2gsIGJ1dAorKwkgICAgY29udGludWUgIyBzbyB0aGF0IHdlIGNhbiB0cnkgdG8gZmluZCBv bmUgdGhhdCBzdXBwb3J0cyBCU0QgZmxhZ3MKKysJICAgIDs7CisrCSAgZXNhYworKwkgIDs7Cisr CWVzYWMKKysgICAgICBmaQorKyAgICBkb25lCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAg ZG9uZQorKyAgOiAke2x0X2N2X3BhdGhfTk09bm99CisrZmkKKytmaQorK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRfY3ZfcGF0aF9OTSIgPiY1Cisr JGFzX2VjaG8gIiRsdF9jdl9wYXRoX05NIiA+JjY7IH0KKytpZiB0ZXN0ICIkbHRfY3ZfcGF0aF9O TSIgIT0gIm5vIjsgdGhlbgorKyAgTk09IiRsdF9jdl9wYXRoX05NIgorK2Vsc2UKKysgICMgRGlk bid0IGZpbmQgYW55IEJTRCBjb21wYXRpYmxlIG5hbWUgbGlzdGVyLCBsb29rIGZvciBkdW1wYmlu LgorKyAgaWYgdGVzdCAtbiAiJERVTVBCSU4iOyB0aGVuIDoKKysgICAgIyBMZXQgdGhlIHVzZXIg b3ZlcnJpZGUgdGhlIHRlc3QuCisrICBlbHNlCisrICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3By ZWZpeCI7IHRoZW4KKysgIGZvciBhY19wcm9nIGluIGR1bXBiaW4gImxpbmsgLWR1bXAiCisrICBk bworKyAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY190b29sX3ByZWZpeCRhY19w cm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkg JGFjX3Rvb2xfcHJlZml4JGFjX3Byb2c7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19j dl9wcm9nX0RVTVBCSU4rc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkRFVNUEJJTiI7IHRoZW4KKysgIGFjX2N2 X3Byb2dfRFVNUEJJTj0iJERVTVBCSU4iICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFz X2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19EVU1QQklOPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIK KysgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQor KyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrRFVNUEJJTj0kYWNfY3Zf cHJvZ19EVU1QQklOCisraWYgdGVzdCAtbiAiJERVTVBCSU4iOyB0aGVuCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJERVTVBCSU4iID4mNQorKyRh c19lY2hvICIkRFVNUEJJTiIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsg fQorK2ZpCisrCisrCisrICAgIHRlc3QgLW4gIiREVU1QQklOIiAmJiBicmVhaworKyAgZG9uZQor K2ZpCisraWYgdGVzdCAteiAiJERVTVBCSU4iOyB0aGVuCisrICBhY19jdF9EVU1QQklOPSREVU1Q QklOCisrICBmb3IgYWNfcHJvZyBpbiBkdW1wYmluICJsaW5rIC1kdW1wIgorK2RvCisrICAjIEV4 dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKKyt7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0RVTVBCSU4rc2V0fSIgPSBzZXQ7IHRoZW4gOgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNf Y3RfRFVNUEJJTiI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfRFVNUEJJTj0iJGFjX2N0X0RV TVBCSU4iICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2Rv CisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgor KyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8K KysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rl c3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3Zf cHJvZ19hY19jdF9EVU1QQklOPSIkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1 CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMK KysKKytmaQorK2ZpCisrYWNfY3RfRFVNUEJJTj0kYWNfY3ZfcHJvZ19hY19jdF9EVU1QQklOCisr aWYgdGVzdCAtbiAiJGFjX2N0X0RVTVBCSU4iOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X0RVTVBCSU4iID4mNQorKyRhc19l Y2hvICIkYWNfY3RfRFVNUEJJTiIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4m NjsgfQorK2ZpCisrCisrCisrICB0ZXN0IC1uICIkYWNfY3RfRFVNUEJJTiIgJiYgYnJlYWsKKytk b25lCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X0RVTVBCSU4iID0geDsgdGhlbgorKyAgICBEVU1Q QklOPSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2Fy bmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxl dCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90 IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7 OworK2VzYWMKKysgICAgRFVNUEJJTj0kYWNfY3RfRFVNUEJJTgorKyAgZmkKKytmaQorKworKyAg ICBjYXNlIGAkRFVNUEJJTiAtc3ltYm9scyAvZGV2L251bGwgMj4mMSB8IHNlZCAnMXEnYCBpbgor KyAgICAqQ09GRiopCisrICAgICAgRFVNUEJJTj0iJERVTVBCSU4gLXN5bWJvbHMiCisrICAgICAg OzsKKysgICAgKikKKysgICAgICBEVU1QQklOPToKKysgICAgICA7OworKyAgICBlc2FjCisrICBm aQorKworKyAgaWYgdGVzdCAiJERVTVBCSU4iICE9ICI6IjsgdGhlbgorKyAgICBOTT0iJERVTVBC SU4iCisrICBmaQorK2ZpCisrdGVzdCAteiAiJE5NIiAmJiBOTT1ubQorKworKworKworKworKwor KworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgdGhl IG5hbWUgbGlzdGVyICgkTk0pIGludGVyZmFjZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg dGhlIG5hbWUgbGlzdGVyICgkTk0pIGludGVyZmFjZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 bHRfY3Zfbm1faW50ZXJmYWNlK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3Zfbm1faW50ZXJmYWNlPSJCU0Qgbm0iCisrICBl Y2hvICJpbnQgc29tZV92YXJpYWJsZSA9IDA7IiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgIChldmFs IGVjaG8gIlwiXCRhc19tZTokTElORU5POiAkYWNfY29tcGlsZVwiIiA+JjUpCisrICAoZXZhbCAi JGFjX2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysg IChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiAkTk0gXFxcImNvbmZ0ZXN0LiRhY19vYmpl eHRcXFwiXCIiID4mNSkKKysgIChldmFsICIkTk0gXCJjb25mdGVzdC4kYWNfb2JqZXh0XCIiIDI+ Y29uZnRlc3QuZXJyID4gY29uZnRlc3Qub3V0KQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysg IChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiBvdXRwdXRcIiIgPiY1KQorKyAgY2F0IGNv bmZ0ZXN0Lm91dCA+JjUKKysgIGlmICRHUkVQICdFeHRlcm5hbC4qc29tZV92YXJpYWJsZScgY29u ZnRlc3Qub3V0ID4gL2Rldi9udWxsOyB0aGVuCisrICAgIGx0X2N2X25tX2ludGVyZmFjZT0iTVMg ZHVtcGJpbiIKKysgIGZpCisrICBybSAtZiBjb25mdGVzdCoKKytmaQorK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRfY3Zfbm1faW50ZXJmYWNlIiA+ JjUKKyskYXNfZWNobyAiJGx0X2N2X25tX2ludGVyZmFjZSIgPiY2OyB9CisrCisreyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdv cmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzLi4uICIg PiY2OyB9CisrTE5fUz0kYXNfbG5fcworK2lmIHRlc3QgIiRMTl9TIiA9ICJsbiAtcyI7IHRoZW4K KysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMi ID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubywgdXNpbmcgJExOX1MiID4mNQorKyRh c19lY2hvICJubywgdXNpbmcgJExOX1MiID4mNjsgfQorK2ZpCisrCisrIyBmaW5kIHRoZSBtYXhp bXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzCisreyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29t bWFuZCBsaW5lIGFyZ3VtZW50cyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgdGhlIG1heGlt dW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0 ICIke2x0X2N2X3N5c19tYXhfY21kX2xlbitzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgICAgaT0wCisrICB0ZXN0c3RyaW5nPSJBQkNE IgorKworKyAgY2FzZSAkYnVpbGRfb3MgaW4KKysgIG1zZG9zZGpncHAqKQorKyAgICAjIE9uIERK R1BQLCB0aGlzIHRlc3QgY2FuIGJsb3cgdXAgcHJldHR5IGJhZGx5IGR1ZSB0byBwcm9ibGVtcyBp biBsaWJjCisrICAgICMgKGFueSBzaW5nbGUgYXJndW1lbnQgZXhjZWVkaW5nIDIwMDAgYnl0ZXMg Y2F1c2VzIGEgYnVmZmVyIG92ZXJydW4KKysgICAgIyBkdXJpbmcgZ2xvYiBleHBhbnNpb24pLiAg RXZlbiBpZiBpdCB3ZXJlIGZpeGVkLCB0aGUgcmVzdWx0IG9mIHRoaXMKKysgICAgIyBjaGVjayB3 b3VsZCBiZSBsYXJnZXIgdGhhbiBpdCBzaG91bGQgYmUuCisrICAgIGx0X2N2X3N5c19tYXhfY21k X2xlbj0xMjI4ODsgICAgIyAxMksgaXMgYWJvdXQgcmlnaHQKKysgICAgOzsKKysKKysgIGdudSop CisrICAgICMgVW5kZXIgR05VIEh1cmQsIHRoaXMgdGVzdCBpcyBub3QgcmVxdWlyZWQgYmVjYXVz ZSB0aGVyZSBpcworKyAgICAjIG5vIGxpbWl0IHRvIHRoZSBsZW5ndGggb2YgY29tbWFuZCBsaW5l IGFyZ3VtZW50cy4KKysgICAgIyBMaWJ0b29sIHdpbGwgaW50ZXJwcmV0IC0xIGFzIG5vIGxpbWl0 IHdoYXRzb2V2ZXIKKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPS0xOworKyAgICA7OworKwor KyAgY3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKKysgICAgIyBPbiBXaW45eC9NRSwgdGhpcyB0 ZXN0IGJsb3dzIHVwIC0tIGl0IHN1Y2NlZWRzLCBidXQgdGFrZXMKKysgICAgIyBhYm91dCA1IG1p bnV0ZXMgYXMgdGhlIHRlc3RzdHJpbmcgZ3Jvd3MgZXhwb25lbnRpYWxseS4KKysgICAgIyBXb3Jz ZSwgc2luY2UgOXgvTUUgYXJlIG5vdCBwcmUtZW1wdGl2ZWx5IG11bHRpdGFza2luZywKKysgICAg IyB5b3UgZW5kIHVwIHdpdGggYSAiZnJvemVuIiBjb21wdXRlciwgZXZlbiB0aG91Z2ggd2l0aCBw YXRpZW5jZQorKyAgICAjIHRoZSB0ZXN0IGV2ZW50dWFsbHkgc3VjY2VlZHMgKHdpdGggYSBtYXgg bGluZSBsZW5ndGggb2YgMjU2aykuCisrICAgICMgSW5zdGVhZCwgbGV0J3MganVzdCBwdW50OiB1 c2UgdGhlIG1pbmltdW0gbGluZWxlbmd0aCByZXBvcnRlZCBieQorKyAgICAjIGFsbCBvZiB0aGUg c3VwcG9ydGVkIHBsYXRmb3JtczogODE5MiAob24gTlQvMksvWFApLgorKyAgICBsdF9jdl9zeXNf bWF4X2NtZF9sZW49ODE5MjsKKysgICAgOzsKKysKKysgIG1pbnQqKQorKyAgICAjIE9uIE1pTlQg dGhpcyBjYW4gdGFrZSBhIGxvbmcgdGltZSBhbmQgcnVuIG91dCBvZiBtZW1vcnkuCisrICAgIGx0 X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOworKyAgICA7OworKworKyAgYW1pZ2FvcyopCisrICAg ICMgT24gQW1pZ2FPUyB3aXRoIHBka3NoLCB0aGlzIHRlc3QgdGFrZXMgaG91cnMsIGxpdGVyYWxs eS4KKysgICAgIyBTbyB3ZSBqdXN0IHB1bnQgYW5kIHVzZSBhIG1pbmltdW0gbGluZSBsZW5ndGgg b2YgODE5Mi4KKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTI7CisrICAgIDs7CisrCisr ICBuZXRic2QqIHwgZnJlZWJzZCogfCBvcGVuYnNkKiB8IGRhcndpbiogfCBkcmFnb25mbHkqKQor KyAgICAjIFRoaXMgaGFzIGJlZW4gYXJvdW5kIHNpbmNlIDM4NkJTRCwgYXQgbGVhc3QuICBMaWtl bHkgZnVydGhlci4KKysgICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjdGw7IHRoZW4KKysgICAgICBs dF9jdl9zeXNfbWF4X2NtZF9sZW49YC9zYmluL3N5c2N0bCAtbiBrZXJuLmFyZ21heGAKKysgICAg ZWxpZiB0ZXN0IC14IC91c3Ivc2Jpbi9zeXNjdGw7IHRoZW4KKysgICAgICBsdF9jdl9zeXNfbWF4 X2NtZF9sZW49YC91c3Ivc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhgCisrICAgIGVsc2UKKysg ICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49NjU1MzYJIyB1c2FibGUgZGVmYXVsdCBmb3IgYWxs IEJTRHMKKysgICAgZmkKKysgICAgIyBBbmQgYWRkIGEgc2FmZXR5IHpvbmUKKysgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gNGAKKysgICAg bHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXCogM2AK KysgICAgOzsKKysKKysgIGludGVyaXgqKQorKyAgICAjIFdlIGtub3cgdGhlIHZhbHVlIDI2MjE0 NCBhbmQgaGFyZGNvZGUgaXQgd2l0aCBhIHNhZmV0eSB6b25lIChsaWtlIEJTRCkKKysgICAgbHRf Y3Zfc3lzX21heF9jbWRfbGVuPTE5NjYwOAorKyAgICA7OworKworKyAgb3NmKikKKysgICAgIyBE ci4gSGFucyBFa2tlaGFyZCBQbGVzc2VyIHJlcG9ydHMgc2VlaW5nIGEga2VybmVsIHBhbmljIHJ1 bm5pbmcgY29uZmlndXJlCisrICAgICMgZHVlIHRvIHRoaXMgdGVzdCB3aGVuIGV4ZWNfZGlzYWJs ZV9hcmdfbGltaXQgaXMgMSBvbiBUcnU2NC4gSXQgaXMgbm90CisrICAgICMgbmljZSB0byBjYXVz ZSBrZXJuZWwgcGFuaWNzIHNvIGxldHMgYXZvaWQgdGhlIGxvb3AgYmVsb3cuCisrICAgICMgRmly c3Qgc2V0IGEgcmVhc29uYWJsZSBkZWZhdWx0LgorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49 MTYzODQKKysgICAgIworKyAgICBpZiB0ZXN0IC14IC9zYmluL3N5c2NvbmZpZzsgdGhlbgorKyAg ICAgIGNhc2UgYC9zYmluL3N5c2NvbmZpZyAtcSBwcm9jIGV4ZWNfZGlzYWJsZV9hcmdfbGltaXRg IGluCisrICAgICAgICAqMSopIGx0X2N2X3N5c19tYXhfY21kX2xlbj0tMSA7OworKyAgICAgIGVz YWMKKysgICAgZmkKKysgICAgOzsKKysgIHNjbzMuMnY1KikKKysgICAgbHRfY3Zfc3lzX21heF9j bWRfbGVuPTEwMjQwMAorKyAgICA7OworKyAgc3lzdjUqIHwgc2NvNXY2KiB8IHN5c3Y0LjJ1dzIq KQorKyAgICBrYXJnbWF4PWBncmVwIEFSR19NQVggL2V0Yy9jb25mL2NmLmQvc3R1bmUgMj4vZGV2 L251bGxgCisrICAgIGlmIHRlc3QgLW4gIiRrYXJnbWF4IjsgdGhlbgorKyAgICAgIGx0X2N2X3N5 c19tYXhfY21kX2xlbj1gZWNobyAka2FyZ21heCB8IHNlZCAncy8uKlsJIF0vLydgCisrICAgIGVs c2UKKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MzI3NjgKKysgICAgZmkKKysgICAgOzsK KysgICopCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gKGdldGNvbmYgQVJHX01BWCkgMj4g L2Rldi9udWxsYAorKyAgICBpZiB0ZXN0IC1uICIkbHRfY3Zfc3lzX21heF9jbWRfbGVuIjsgdGhl bgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRf bGVuIFwvIDRgCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNf bWF4X2NtZF9sZW4gXCogM2AKKysgICAgZWxzZQorKyAgICAgICMgTWFrZSB0ZXN0c3RyaW5nIGEg bGl0dGxlIGJpZ2dlciBiZWZvcmUgd2UgZG8gYW55dGhpbmcgd2l0aCBpdC4KKysgICAgICAjIGEg MUsgc3RyaW5nIHNob3VsZCBiZSBhIHJlYXNvbmFibGUgc3RhcnQuCisrICAgICAgZm9yIGkgaW4g MSAyIDMgNCA1IDYgNyA4IDsgZG8KKysgICAgICAgIHRlc3RzdHJpbmc9JHRlc3RzdHJpbmckdGVz dHN0cmluZworKyAgICAgIGRvbmUKKysgICAgICBTSEVMTD0ke1NIRUxMLSR7Q09ORklHX1NIRUxM LS9iaW4vc2h9fQorKyAgICAgICMgSWYgdGVzdCBpcyBub3QgYSBzaGVsbCBidWlsdC1pbiwgd2Un bGwgcHJvYmFibHkgZW5kIHVwIGNvbXB1dGluZyBhCisrICAgICAgIyBtYXhpbXVtIGxlbmd0aCB0 aGF0IGlzIG9ubHkgaGFsZiBvZiB0aGUgYWN0dWFsIG1heGltdW0gbGVuZ3RoLCBidXQKKysgICAg ICAjIHdlIGNhbid0IHRlbGwuCisrICAgICAgd2hpbGUgeyB0ZXN0ICJYImBmdW5jX2ZhbGxiYWNr X2VjaG8gIiR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciIDI+L2Rldi9udWxsYCBcCisrCSAgICAgICAg ID0gIlgkdGVzdHN0cmluZyR0ZXN0c3RyaW5nIjsgfSA+L2Rldi9udWxsIDI+JjEgJiYKKysJICAg ICAgdGVzdCAkaSAhPSAxNyAjIDEvMiBNQiBzaG91bGQgYmUgZW5vdWdoCisrICAgICAgZG8KKysg ICAgICAgIGk9YGV4cHIgJGkgKyAxYAorKyAgICAgICAgdGVzdHN0cmluZz0kdGVzdHN0cmluZyR0 ZXN0c3RyaW5nCisrICAgICAgZG9uZQorKyAgICAgICMgT25seSBjaGVjayB0aGUgc3RyaW5nIGxl bmd0aCBvdXRzaWRlIHRoZSBsb29wLgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhw ciAiWCR0ZXN0c3RyaW5nIiA6ICIuKiIgMj4mMWAKKysgICAgICB0ZXN0c3RyaW5nPQorKyAgICAg ICMgQWRkIGEgc2lnbmlmaWNhbnQgc2FmZXR5IGZhY3RvciBiZWNhdXNlIEMrKyBjb21waWxlcnMg Y2FuIHRhY2sgb24KKysgICAgICAjIG1hc3NpdmUgYW1vdW50cyBvZiBhZGRpdGlvbmFsIGFyZ3Vt ZW50cyBiZWZvcmUgcGFzc2luZyB0aGVtIHRvIHRoZQorKyAgICAgICMgbGlua2VyLiAgSXQgYXBw ZWFycyBhcyB0aG91Z2ggMS8yIGlzIGEgdXNhYmxlIHZhbHVlLgorKyAgICAgIGx0X2N2X3N5c19t YXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDJgCisrICAgIGZpCisr ICAgIDs7CisrICBlc2FjCisrCisrZmkKKysKKytpZiB0ZXN0IC1uICRsdF9jdl9zeXNfbWF4X2Nt ZF9sZW4gOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogJGx0X2N2X3N5c19tYXhfY21kX2xlbiIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9z eXNfbWF4X2NtZF9sZW4iID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBub25lIiA+JjUKKyskYXNfZWNobyAibm9uZSIgPiY2 OyB9CisrZmkKKyttYXhfY21kX2xlbj0kbHRfY3Zfc3lzX21heF9jbWRfbGVuCisrCisrCisrCisr CisrCisrCisrOiAke0NQPSJjcCAtZiJ9CisrOiAke01WPSJtdiAtZiJ9CisrOiAke1JNPSJybSAt ZiJ9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyBzb21lIFhTSSBjb25zdHJ1Y3RzIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyBzb21l IFhTSSBjb25zdHJ1Y3RzLi4uICIgPiY2OyB9CisrIyBUcnkgc29tZSBYU0kgZmVhdHVyZXMKKyt4 c2lfc2hlbGw9bm8KKysoIF9sdF9kdW1teT0iYS9iL2MiCisrICB0ZXN0ICIke19sdF9kdW1teSMj Ki99LCR7X2x0X2R1bW15JS8qfSwiJHtfbHRfZHVtbXklIiRfbHRfZHVtbXkifSwgXAorKyAgICAg ID0gYyxhL2IsLCBcCisrICAgICYmIGV2YWwgJ3Rlc3QgJCgoIDEgKyAxICkpIC1lcSAyIFwKKysg ICAgJiYgdGVzdCAiJHsjX2x0X2R1bW15fSIgLWVxIDUnICkgPi9kZXYvbnVsbCAyPiYxIFwKKysg ICYmIHhzaV9zaGVsbD15ZXMKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogJHhzaV9zaGVsbCIgPiY1CisrJGFzX2VjaG8gIiR4c2lfc2hlbGwiID4mNjsg fQorKworKworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgXCIrPVwiIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyBcIis9XCIuLi4gIiA+JjY7 IH0KKytsdF9zaGVsbF9hcHBlbmQ9bm8KKysoIGZvbz1iYXI7IHNldCBmb28gYmF6OyBldmFsICIk MSs9XCQyIiAmJiB0ZXN0ICIkZm9vIiA9IGJhcmJheiApIFwKKysgICAgPi9kZXYvbnVsbCAyPiYx IFwKKysgICYmIGx0X3NoZWxsX2FwcGVuZD15ZXMKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X3NoZWxsX2FwcGVuZCIgPiY1CisrJGFzX2VjaG8g IiRsdF9zaGVsbF9hcHBlbmQiID4mNjsgfQorKworKworK2lmICggKE1BSUw9NjA7IHVuc2V0IE1B SUwpIHx8IGV4aXQpID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgbHRfdW5zZXQ9dW5zZXQKKytl bHNlCisrICBsdF91bnNldD1mYWxzZQorK2ZpCisrCisrCisrCisrCisrCisrIyB0ZXN0IEVCQ0RJ QyBvciBBU0NJSQorK2Nhc2UgYGVjaG8gWHx0ciBYICdcMTAxJ2AgaW4KKysgQSkgIyBBU0NJSSBi YXNlZCBzeXN0ZW0KKysgICAgIyBcbiBpcyBub3QgaW50ZXJwcmV0ZWQgY29ycmVjdGx5IGJ5IFNv bGFyaXMgOCAvdXNyL3VjYi90cgorKyAgbHRfU1AyTkw9J3RyIFwwNDAgXDAxMicKKysgIGx0X05M MlNQPSd0ciBcMDE1XDAxMiBcMDQwXDA0MCcKKysgIDs7CisrICopICMgRUJDRElDIGJhc2VkIHN5 c3RlbQorKyAgbHRfU1AyTkw9J3RyIFwxMDAgXG4nCisrICBsdF9OTDJTUD0ndHIgXHJcbiBcMTAw XDEwMCcKKysgIDs7CisrZXNhYworKworKworKworKworKworKworKworKworKworK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRMRCBvcHRpb24g dG8gcmVsb2FkIG9iamVjdCBmaWxlcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRM RCBvcHRpb24gdG8gcmVsb2FkIG9iamVjdCBmaWxlcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 bHRfY3ZfbGRfcmVsb2FkX2ZsYWcrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9sZF9yZWxvYWRfZmxhZz0nLXInCisrZmkK Kyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2 X2xkX3JlbG9hZF9mbGFnIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X2xkX3JlbG9hZF9mbGFnIiA+ JjY7IH0KKytyZWxvYWRfZmxhZz0kbHRfY3ZfbGRfcmVsb2FkX2ZsYWcKKytjYXNlICRyZWxvYWRf ZmxhZyBpbgorKyIiIHwgIiAiKikgOzsKKysqKSByZWxvYWRfZmxhZz0iICRyZWxvYWRfZmxhZyIg OzsKKytlc2FjCisrcmVsb2FkX2NtZHM9JyRMRCRyZWxvYWRfZmxhZyAtbyAkb3V0cHV0JHJlbG9h ZF9vYmpzJworK2Nhc2UgJGhvc3Rfb3MgaW4KKysgIGRhcndpbiopCisrICAgIGlmIHRlc3QgIiRH Q0MiID0geWVzOyB0aGVuCisrICAgICAgcmVsb2FkX2NtZHM9JyRMVENDICRMVENGTEFHUyAtbm9z dGRsaWIgJHt3bH0tciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJworKyAgICBlbHNlCisrICAgICAg cmVsb2FkX2NtZHM9JyRMRCRyZWxvYWRfZmxhZyAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJworKyAg ICBmaQorKyAgICA7OworK2VzYWMKKysKKysKKysKKysKKysKKysKKysKKysKKysKKytpZiB0ZXN0 IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQg b2YgIiR7YWNfdG9vbF9wcmVmaXh9b2JqZHVtcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFt ZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9b2JqZHVtcDsgYWNfd29y ZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfT0JKRFVNUCtzZXR9IiA9IHNldDsgdGhl biA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4g IiRPQkpEVU1QIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19PQkpEVU1QPSIkT0JKRFVNUCIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNf c2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIGZvciBhY19l eGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0 IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX09CSkRVTVA9 IiR7YWNfdG9vbF9wcmVmaXh9b2JqZHVtcCIKKysgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Cisr ICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysK KytmaQorK2ZpCisrT0JKRFVNUD0kYWNfY3ZfcHJvZ19PQkpEVU1QCisraWYgdGVzdCAtbiAiJE9C SkRVTVAiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogJE9CSkRVTVAiID4mNQorKyRhc19lY2hvICIkT0JKRFVNUCIgPiY2OyB9CisrZWxz ZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5v IiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrZmkKKytpZiB0ZXN0IC16 ICIkYWNfY3ZfcHJvZ19PQkpEVU1QIjsgdGhlbgorKyAgYWNfY3RfT0JKRFVNUD0kT0JKRFVNUAor KyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJvYmpkdW1wIiwgc28gaXQgY2FuIGJlIGEg cHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgb2JqZHVtcDsgYWNfd29yZD0kMgor K3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRh Y193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfT0JKRFVNUCtzZXR9IiA9IHNldDsgdGhl biA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4g IiRhY19jdF9PQkpEVU1QIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19jdF9PQkpEVU1QPSIkYWNf Y3RfT0JKRFVNUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2Fz X3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRI CisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rp cj0uCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25z OyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAk YXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBh Y19jdl9wcm9nX2FjX2N0X09CSkRVTVA9Im9iamR1bXAiCisrICAgICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKysgIGRvbmUKKytJRlM9JGFzX3NhdmVf SUZTCisrCisrZmkKKytmaQorK2FjX2N0X09CSkRVTVA9JGFjX2N2X3Byb2dfYWNfY3RfT0JKRFVN UAorK2lmIHRlc3QgLW4gIiRhY19jdF9PQkpEVU1QIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdF9PQkpEVU1QIiA+JjUKKysk YXNfZWNobyAiJGFjX2N0X09CSkRVTVAiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5v IiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9PQkpEVU1QIiA9IHg7IHRoZW4K KysgICAgT0JKRFVNUD0iZmFsc2UiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGlu ZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdp dGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBj cm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9v bF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBPQkpEVU1QPSRhY19jdF9PQkpEVU1QCisrICBm aQorK2Vsc2UKKysgIE9CSkRVTVA9IiRhY19jdl9wcm9nX09CSkRVTVAiCisrZmkKKysKKyt0ZXN0 IC16ICIkT0JKRFVNUCIgJiYgT0JKRFVNUD1vYmpkdW1wCisrCisrCisrCisrCisrCisrCisrCisr CisrCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBo b3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJpZXMiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGhvdyB0byByZWNvZ25pemUgZGVwZW5kZW50IGxpYnJhcmllcy4uLiAiID4mNjsgfQor K2lmIHRlc3QgIiR7bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Qrc2V0fSIgPSBzZXQ7IHRoZW4g OgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9maWxlX21h Z2ljX2NtZD0nJE1BR0lDX0NNRCcKKytsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0KKytsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD0ndW5rbm93bicKKysjIE5lZWQgdG8gc2V0IHRoZSBwcmVj ZWRpbmcgdmFyaWFibGUgb24gYWxsIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQKKysjIGludGVybGli cmFyeSBkZXBlbmRlbmNpZXMuCisrIyAnbm9uZScgLS0gZGVwZW5kZW5jaWVzIG5vdCBzdXBwb3J0 ZWQuCisrIyBgdW5rbm93bicgLS0gc2FtZSBhcyBub25lLCBidXQgZG9jdW1lbnRzIHRoYXQgd2Ug cmVhbGx5IGRvbid0IGtub3cuCisrIyAncGFzc19hbGwnIC0tIGFsbCBkZXBlbmRlbmNpZXMgcGFz c2VkIHdpdGggbm8gY2hlY2tzLgorKyMgJ3Rlc3RfY29tcGlsZScgLS0gY2hlY2sgYnkgbWFraW5n IHRlc3QgcHJvZ3JhbS4KKysjICdmaWxlX21hZ2ljIFtbcmVnZXhdXScgLS0gY2hlY2sgYnkgbG9v a2luZyBmb3IgZmlsZXMgaW4gbGlicmFyeSBwYXRoCisrIyB3aGljaCByZXNwb25kcyB0byB0aGUg JGZpbGVfbWFnaWNfY21kIHdpdGggYSBnaXZlbiBleHRlbmRlZCByZWdleC4KKysjIElmIHlvdSBo YXZlIGBmaWxlJyBvciBlcXVpdmFsZW50IG9uIHlvdXIgc3lzdGVtIGFuZCB5b3UncmUgbm90IHN1 cmUKKysjIHdoZXRoZXIgYHBhc3NfYWxsJyB3aWxsICphbHdheXMqIHdvcmssIHlvdSBwcm9iYWJs eSB3YW50IHRoaXMgb25lLgorKworK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXhbNC05XSopCisrICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytiZW9zKikKKysg IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK2JzZGlbNDVd KikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbMC05XVsw LTldKi1iaXQgW01MXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliKScKKysgIGx0X2N2X2Zp bGVfbWFnaWNfY21kPScvdXNyL2Jpbi9maWxlIC1MJworKyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0 X2ZpbGU9L3NobGliL2xpYmMuc28KKysgIDs7CisrCisrY3lnd2luKikKKysgICMgZnVuY193aW4z Ml9saWJpZCBpcyBhIHNoZWxsIGZ1bmN0aW9uIGRlZmluZWQgaW4gbHRtYWluLnNoCisrICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBeeDg2IGFyY2hpdmUgaW1wb3J0fF54 ODYgRExMJworKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJfbGliaWQnCisrICA7 OworKworK21pbmd3KiB8IHB3MzIqKQorKyAgIyBCYXNlIE1TWVMvTWluR1cgZG8gbm90IHByb3Zp ZGUgdGhlICdmaWxlJyBjb21tYW5kIG5lZWRlZCBieQorKyAgIyBmdW5jX3dpbjMyX2xpYmlkIHNo ZWxsIGZ1bmN0aW9uLCBzbyB1c2UgYSB3ZWFrZXIgdGVzdCBiYXNlZCBvbiAnb2JqZHVtcCcsCisr ICAjIHVubGVzcyB3ZSBmaW5kICdmaWxlJywgZm9yIGV4YW1wbGUgYmVjYXVzZSB3ZSBhcmUgY3Jv c3MtY29tcGlsaW5nLgorKyAgIyBmdW5jX3dpbjMyX2xpYmlkIGFzc3VtZXMgQlNEIG5tLCBzbyBk aXNhbGxvdyBpdCBpZiB1c2luZyBNUyBkdW1wYmluLgorKyAgaWYgKCB0ZXN0ICIkbHRfY3Zfbm1f aW50ZXJmYWNlIiA9ICJCU0Qgbm0iICYmIGZpbGUgLyApID4vZGV2L251bGwgMj4mMTsgdGhlbgor KyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBeeDg2IGFyY2hpdmUg aW1wb3J0fF54ODYgRExMJworKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nZnVuY193aW4zMl9s aWJpZCcKKysgIGVsc2UKKysgICAgIyBLZWVwIHRoaXMgcGF0dGVybiBpbiBzeW5jIHdpdGggdGhl IG9uZSBpbiBmdW5jX3dpbjMyX2xpYmlkLgorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD0nZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCAocGVpKi1pMzg2KC4qYXJjaGl0ZWN0dXJlOiBpMzg2 KT98cGUtYXJtLXdpbmNlfHBlLXg4Ni02NCknCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSck T0JKRFVNUCAtZicKKysgIGZpCisrICA7OworKworK2NlZ2NjKikKKysgICMgdXNlIHRoZSB3ZWFr ZXIgdGVzdCBiYXNlZCBvbiAnb2JqZHVtcCcuIFNlZSBtaW5ndyouCisrICBsdF9jdl9kZXBsaWJz X2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCBwZS1hcm0tLipsaXR0bGUoLiph cmNoaXRlY3R1cmU6IGFybSk/JworKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRPQkpEVU1QIC1m JworKyAgOzsKKysKKytkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrZnJlZWJzZCogfCBkcmFnb25mbHkqKQorKyAg aWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4gL2Rldi9udWxsOyB0 aGVuCisrICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgIGkqODYgKQorKyAgICAgICMgTm90IHN1 cmUgd2hldGhlciB0aGUgcHJlc2VuY2Ugb2YgT3BlbkJTRCBoZXJlIHdhcyBhIG1pc3Rha2UuCisr ICAgICAgIyBMZXQncyBhY2NlcHQgYm90aCBvZiB0aGVtIHVudGlsIHRoaXMgaXMgY2xlYXJlZCB1 cC4KKysgICAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoRnJlZUJT RHxPcGVuQlNEfERyYWdvbkZseSkvaVszLTldODYgKGNvbXBhY3QgKT9kZW1hbmQgcGFnZWQgc2hh cmVkIGxpYnJhcnknCisrICAgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQor KyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPWBlY2hvIC91c3IvbGliL2xpYmMuc28u KmAKKysgICAgICA7OworKyAgICBlc2FjCisrICBlbHNlCisrICAgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPXBhc3NfYWxsCisrICBmaQorKyAgOzsKKysKKytnbnUqKQorKyAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisraGFpa3UqKQorKyAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisraHB1eDEwLjIwKiB8IGhw dXgxMSopCisrICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxlCisrICBjYXNlICRo b3N0X2NwdSBpbgorKyAgaWE2NCopCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdm aWxlX21hZ2ljIChzWzAtOV1bMC05XVswLTldfEVMRi1bMC05XVswLTldKSBzaGFyZWQgb2JqZWN0 IGZpbGUgLSBJQTY0JworKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9o cHV4MzIvbGliYy5zbworKyAgICA7OworKyAgaHBwYSo2NCopCisrICAgIGx0X2N2X2RlcGxpYnNf Y2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzWzAtOV1bMC05XVswLTldfEVMRlsgLV1bMC05XVsw LTldKSgtYml0KT8oIFtMTV1TQik/IHNoYXJlZCBvYmplY3QoIGZpbGUpP1ssIC1dKiBQQS1SSVND IFswLTldXC5bMC05XScKKysgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIv cGEyMF82NC9saWJjLnNsCisrICAgIDs7CisrICAqKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxQQS1SSVNDWzAtOV1cLlswLTld KSBzaGFyZWQgbGlicmFyeScKKysgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9s aWIvbGliYy5zbAorKyAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytpbnRlcml4WzMtOV0qKQor KyAgIyBQSUMgY29kZSBpcyBicm9rZW4gb24gSW50ZXJpeCAzLngsIHRoYXQncyB3aHkgfFwuYSBu b3QgfF9waWNcLmEgaGVyZQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3Bh dHRlcm4gL2xpYlteL10rKFwuc298XC5hKSQnCisrICA7OworKworK2lyaXg1KiB8IGlyaXg2KiB8 IG5vbnN0b3B1eCopCisrICBjYXNlICRMRCBpbgorKyAgKi0zMnwqIi0zMiAiKSBsaWJtYWdpYz0z Mi1iaXQ7OworKyAgKi1uMzJ8KiItbjMyICIpIGxpYm1hZ2ljPU4zMjs7CisrICAqLTY0fCoiLTY0 ICIpIGxpYm1hZ2ljPTY0LWJpdDs7CisrICAqKSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7CisrICBl c2FjCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKysj IFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCisrbGludXgqIHwgaypic2QqLWdudSB8IGtvcGVuc29s YXJpcyotZ251KQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7 CisrCisrbmV0YnNkKikKKysgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19F TEZfXyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0n bWF0Y2hfcGF0dGVybiAvbGliW14vXSsoXC5zb1wuWzAtOV0rXC5bMC05XSt8X3BpY1wuYSkkJwor KyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAv bGliW14vXSsoXC5zb3xfcGljXC5hKSQnCisrICBmaQorKyAgOzsKKysKKytuZXdvczYqKQorKyAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJp dCBbTUxdU0IgKGV4ZWN1dGFibGV8ZHluYW1pYyBsaWIpJworKyAgbHRfY3ZfZmlsZV9tYWdpY19j bWQ9L3Vzci9iaW4vZmlsZQorKyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIv bGlibmxzLnNvCisrICA7OworKworKypudG8qIHwgKnFueCopCisrICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytvcGVuYnNkKikKKysgIGlmIHRlc3QgLXog ImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9z dF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysgICAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYlteL10rKFwuc29cLlswLTld K1wuWzAtOV0rfFwuc298X3BpY1wuYSkkJworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSsoXC5zb1wuWzAtOV0rXC5bMC05XSt8 X3BpY1wuYSkkJworKyAgZmkKKysgIDs7CisrCisrb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrcmRvcyopCisr ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytzb2xhcmlz KikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK3N5 c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2 NCp1dzIqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7Cisr Cisrc3lzdjQgfCBzeXN2NC4zKikKKysgIGNhc2UgJGhvc3RfdmVuZG9yIGluCisrICBtb3Rvcm9s YSkKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFswLTld WzAtOV0qLWJpdCBbTUxdU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIpIE1bMC05XVswLTld KiBWZXJzaW9uIFswLTldJworKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAv dXNyL2xpYi9saWJjLnNvKmAKKysgICAgOzsKKysgIG5jcikKKysgICAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9cGFzc19hbGwKKysgICAgOzsKKysgIHNlcXVlbnQpCisrICAgIGx0X2N2X2Zp bGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9k PSdmaWxlX21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQgW0xNXVNCIChzaGFyZWQgb2JqZWN0fGR5 bmFtaWMgbGliICknCisrICAgIDs7CisrICBzbmkpCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21k PScvYmluL2ZpbGUnCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSJmaWxlX21hZ2lj IEVMRiBbMC05XVswLTldKi1iaXQgW0xNXVNCIGR5bmFtaWMgbGliIgorKyAgICBsdF9jdl9maWxl X21hZ2ljX3Rlc3RfZmlsZT0vbGliL2xpYmMuc28KKysgICAgOzsKKysgIHNpZW1lbnMpCisrICAg IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICAgIDs7CisrICBwYykKKysg ICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgICAgOzsKKysgIGVzYWMK KysgIDs7CisrCisrdHBmKikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxs CisrICA7OworK2VzYWMKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogcmVzdWx0OiAkbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QiID4mNQorKyRhc19l Y2hvICIkbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QiID4mNjsgfQorK2ZpbGVfbWFnaWNfY21k PSRsdF9jdl9maWxlX21hZ2ljX2NtZAorK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZAorK3Rlc3QgLXogIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgJiYgZGVw bGlic19jaGVja19tZXRob2Q9dW5rbm93bgorKworKworKworKworKworKworKworKworKworKwor KworKworK2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKysgICMgRXh0cmFjdCB0 aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1hciIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9YXI7IGFj X3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNr aW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3Jk Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX0FSK3NldH0iID0gc2V0OyB0aGVu IDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAi JEFSIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19BUj0iJEFSIiAjIExldCB0aGUgdXNlciBvdmVycmlk ZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRP UgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVz dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRh Y19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfQVI9IiR7YWNfdG9vbF9wcmVmaXh9YXIi CisrICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUK KysgIGRvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK0FSPSRhY19jdl9wcm9n X0FSCisraWYgdGVzdCAtbiAiJEFSIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRBUiIgPiY1CisrJGFzX2VjaG8gIiRBUiIgPiY2OyB9 CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrZmkKKytpZiB0 ZXN0IC16ICIkYWNfY3ZfcHJvZ19BUiI7IHRoZW4KKysgIGFjX2N0X0FSPSRBUgorKyAgIyBFeHRy YWN0IHRoZSBmaXJzdCB3b3JkIG9mICJhciIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3 aXRoIGFyZ3MuCisrc2V0IGR1bW15IGFyOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNf Y3ZfcHJvZ19hY19jdF9BUitzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9BUiI7IHRoZW4KKysgIGFj X2N2X3Byb2dfYWNfY3RfQVI9IiRhY19jdF9BUiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhl IHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytm b3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXog IiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl Y3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2FjX2N0X0FSPSJhciIKKysgICAgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lGUz0k YXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3RfQVI9JGFjX2N2X3Byb2dfYWNfY3RfQVIK KytpZiB0ZXN0IC1uICIkYWNfY3RfQVIiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X0FSIiA+JjUKKyskYXNfZWNobyAiJGFj X2N0X0FSIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysK KysgIGlmIHRlc3QgIngkYWNfY3RfQVIiID0geDsgdGhlbgorKyAgICBBUj0iZmFsc2UiCisrICBl bHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6 KQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNp bmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNf ZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0 aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAg ICBBUj0kYWNfY3RfQVIKKysgIGZpCisrZWxzZQorKyAgQVI9IiRhY19jdl9wcm9nX0FSIgorK2Zp CisrCisrdGVzdCAteiAiJEFSIiAmJiBBUj1hcgorK3Rlc3QgLXogIiRBUl9GTEFHUyIgJiYgQVJf RkxBR1M9Y3J1CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisraWYgdGVzdCAtbiAi JGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIk e2FjX3Rvb2xfcHJlZml4fXN0cmlwIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGgg YXJncy4KKytzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1zdHJpcDsgYWNfd29yZD0kMgorK3sg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193 b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0K KytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfU1RSSVArc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkU1RSSVAiOyB0 aGVuCisrICBhY19jdl9wcm9nX1NUUklQPSIkU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRl IHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9S CisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0 IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19TVFJJUD0iJHthY190b29sX3ByZWZpeH1z dHJpcCIKKysgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQg JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisr ZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrU1RSSVA9JGFj X2N2X3Byb2dfU1RSSVAKKytpZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJFNUUklQIiA+JjUKKyskYXNf ZWNobyAiJFNUUklQIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9Cisr ZmkKKysKKysKKytmaQorK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX1NUUklQIjsgdGhlbgorKyAg YWNfY3RfU1RSSVA9JFNUUklQCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInN0cmlw Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgc3Ry aXA7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRh Y193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X1NUUklQK3Nl dH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQor KyAgaWYgdGVzdCAtbiAiJGFjX2N0X1NUUklQIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19jdF9T VFJJUD0iJGFjX2N0X1NUUklQIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytl bHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIg aW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIg JiYgYXNfZGlyPS4KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu CisrICAgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9InN0cmlwIgorKyAgICAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrICBkb25lCisrSUZTPSRhc19z YXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9TVFJJUD0kYWNfY3ZfcHJvZ19hY19jdF9TVFJJ UAorK2lmIHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3RfU1RSSVAiID4mNQorKyRhc19l Y2hvICIkYWNfY3RfU1RSSVAiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7 IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9TVFJJUCIgPSB4OyB0aGVuCisrICAgIFNU UklQPSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2Fy bmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxl dCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90 IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7 OworK2VzYWMKKysgICAgU1RSSVA9JGFjX2N0X1NUUklQCisrICBmaQorK2Vsc2UKKysgIFNUUklQ PSIkYWNfY3ZfcHJvZ19TVFJJUCIKKytmaQorKworK3Rlc3QgLXogIiRTVFJJUCIgJiYgU1RSSVA9 OgorKworKworKworKworKworKworK2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4K KysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1yYW5saWIi LCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAke2Fj X3Rvb2xfcHJlZml4fXJhbmxpYjsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3By b2dfUkFOTElCK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KKysgIGFjX2N2X3Byb2df UkFOTElCPSIkUkFOTElCIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNl CisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4g JFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVu c2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisr ICAgIGFjX2N2X3Byb2dfUkFOTElCPSIke2FjX3Rvb2xfcHJlZml4fXJhbmxpYiIKKysgICAgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQor K0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrUkFOTElCPSRhY19jdl9wcm9nX1JBTkxJ QgorK2lmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJFJBTkxJQiIgPiY1CisrJGFzX2VjaG8gIiRSQU5M SUIiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKwor K2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfUkFOTElCIjsgdGhlbgorKyAgYWNfY3RfUkFO TElCPSRSQU5MSUIKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicmFubGliIiwgc28g aXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgcmFubGliOyBh Y193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29y ZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9SQU5MSUIrc2V0fSIg PSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBp ZiB0ZXN0IC1uICIkYWNfY3RfUkFOTElCIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19jdF9SQU5M SUI9IiRhY19jdF9SQU5MSUIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vs c2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBp biAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0 ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4K KysgICAgYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUI9InJhbmxpYiIKKysgICAgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lGUz0kYXNf c2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3RfUkFOTElCPSRhY19jdl9wcm9nX2FjX2N0X1JB TkxJQgorK2lmIHRlc3QgLW4gIiRhY19jdF9SQU5MSUIiOyB0aGVuCisrICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X1JBTkxJQiIgPiY1Cisr JGFzX2VjaG8gIiRhY19jdF9SQU5MSUIiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5v IiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9SQU5MSUIiID0geDsgdGhlbgor KyAgICBSQU5MSUI9IjoiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNf dG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9z dCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0 b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJu ZWQ9eWVzIDs7CisrZXNhYworKyAgICBSQU5MSUI9JGFjX2N0X1JBTkxJQgorKyAgZmkKKytlbHNl CisrICBSQU5MSUI9IiRhY19jdl9wcm9nX1JBTkxJQiIKKytmaQorKworK3Rlc3QgLXogIiRSQU5M SUIiICYmIFJBTkxJQj06CisrCisrCisrCisrCisrCisrCisrIyBEZXRlcm1pbmUgY29tbWFuZHMg dG8gY3JlYXRlIG9sZC1zdHlsZSBzdGF0aWMgYXJjaGl2ZXMuCisrb2xkX2FyY2hpdmVfY21kcz0n JEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9ianMnCisrb2xkX3Bvc3RpbnN0YWxsX2NtZHM9J2No bW9kIDY0NCAkb2xkbGliJworK29sZF9wb3N0dW5pbnN0YWxsX2NtZHM9CisrCisraWYgdGVzdCAt biAiJFJBTkxJQiI7IHRoZW4KKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIG9wZW5ic2QqKQorKyAg ICBvbGRfcG9zdGluc3RhbGxfY21kcz0iJG9sZF9wb3N0aW5zdGFsbF9jbWRzflwkUkFOTElCIC10 IFwkb2xkbGliIgorKyAgICA7OworKyAgKikKKysgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRv bGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJQiBcJG9sZGxpYiIKKysgICAgOzsKKysgIGVzYWMK KysgIG9sZF9hcmNoaXZlX2NtZHM9IiRvbGRfYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkb2xkbGli IgorK2ZpCisrCisrY2FzZSAkaG9zdF9vcyBpbgorKyAgZGFyd2luKikKKysgICAgbG9ja19vbGRf YXJjaGl2ZV9leHRyYWN0aW9uPXllcyA7OworKyAgKikKKysgICAgbG9ja19vbGRfYXJjaGl2ZV9l eHRyYWN0aW9uPW5vIDs7CisrZXNhYworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKyMgSWYgbm8gQyBjb21waWxlciB3YXMgc3BlY2lm aWVkLCB1c2UgQ0MuCisrTFRDQz0ke0xUQ0MtIiRDQyJ9CisrCisrIyBJZiBubyBDIGNvbXBpbGVy IGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgorK0xUQ0ZMQUdTPSR7TFRDRkxBR1Mt IiRDRkxBR1MifQorKworKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1 bWVudHMuCisrY29tcGlsZXI9JENDCisrCisrCisrIyBDaGVjayBmb3IgY29tbWFuZCB0byBncmFi IHRoZSByYXcgc3ltYm9sIG5hbWUgZm9sbG93ZWQgYnkgQyBzeW1ib2wgZnJvbSBubS4KKyt7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGNvbW1hbmQgdG8g cGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxlciBvYmplY3QiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGNvbW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxlciBvYmpl Y3QuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUr c2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrCisrIyBUaGVzZSBhcmUgc2FuZSBkZWZhdWx0cyB0aGF0IHdvcmsgb24gYXQgbGVhc3QgYSBm ZXcgb2xkIHN5c3RlbXMuCisrIyBbVGhleSBjb21lIGZyb20gVWx0cml4LiAgV2hhdCBjb3VsZCBi ZSBvbGRlciB0aGFuIFVsdHJpeD8hISA7KV0KKysKKysjIENoYXJhY3RlciBjbGFzcyBkZXNjcmli aW5nIE5NIGdsb2JhbCBzeW1ib2wgY29kZXMuCisrc3ltY29kZT0nW0JDREVHUlNUXScKKysKKysj IFJlZ2V4cCB0byBtYXRjaCBzeW1ib2xzIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIGRpcmVjdGx5IGZy b20gQy4KKytzeW1wYXQ9J1woW19BLVphLXpdW19BLVphLXowLTldKlwpJworKworKyMgRGVmaW5l IHN5c3RlbS1zcGVjaWZpYyB2YXJpYWJsZXMuCisrY2FzZSAkaG9zdF9vcyBpbgorK2FpeCopCisr ICBzeW1jb2RlPSdbQkNEVF0nCisrICA7OworK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNl Z2NjKikKKysgIHN5bWNvZGU9J1tBQkNER0lTVFddJworKyAgOzsKKytocHV4KikKKysgIGlmIHRl c3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAgIHN5bWNvZGU9J1tBQkNERUdSU1RdJwor KyAgZmkKKysgIDs7CisraXJpeCogfCBub25zdG9wdXgqKQorKyAgc3ltY29kZT0nW0JDREVHUlNU XScKKysgIDs7Cisrb3NmKikKKysgIHN5bWNvZGU9J1tCQ0RFR1FSU1RdJworKyAgOzsKKytzb2xh cmlzKikKKysgIHN5bWNvZGU9J1tCRFJUXScKKysgIDs7Cisrc2NvMy4ydjUqKQorKyAgc3ltY29k ZT0nW0RUXScKKysgIDs7Cisrc3lzdjQuMnV3MiopCisrICBzeW1jb2RlPSdbRFRdJworKyAgOzsK KytzeXN2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqKQorKyAgc3ltY29kZT0n W0FCRFRdJworKyAgOzsKKytzeXN2NCkKKysgIHN5bWNvZGU9J1tERk5TVFVdJworKyAgOzsKKytl c2FjCisrCisrIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gdXNlIGl0cyBzdGFuZGFyZCBz eW1ib2wgY29kZXMuCisrY2FzZSBgJE5NIC1WIDI+JjFgIGluCisrKkdOVSogfCAqJ3dpdGggQkZE JyopCisrICBzeW1jb2RlPSdbQUJDREdJUlNUV10nIDs7CisrZXNhYworKworKyMgVHJhbnNmb3Jt IGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRvIGEgcHJvcGVyIEMgZGVjbGFyYXRpb24uCisr IyBTb21lIHN5c3RlbXMgKGVzcC4gb24gaWE2NCkgbGluayBkYXRhIGFuZCBjb2RlIHN5bWJvbHMg ZGlmZmVyZW50bHksCisrIyBzbyB1c2UgdGhpcyBnZW5lcmFsIGFwcHJvYWNoLgorK2x0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUgJ3MvXlQgLiogXCguKlwpJC9leHRl cm4gaW50IFwxKCk7L3AnIC1lICdzL14kc3ltY29kZSogLiogXCguKlwpJC9leHRlcm4gY2hhciBc MTsvcCciCisrCisrIyBUcmFuc2Zvcm0gYW4gZXh0cmFjdGVkIHN5bWJvbCBsaW5lIGludG8gc3lt Ym9sIG5hbWUgYW5kIHN5bWJvbCBhZGRyZXNzCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9f Y19uYW1lX2FkZHJlc3M9InNlZCAtbiAtZSAncy9eOiBcKFteIF0qXCkgJC8gIHtcXFwiXDFcXFwi LCAodm9pZCAqKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFteIF0qXCkgXChbXiBdKlwpJC8g IHtcIlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyIKKytsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90 b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSJzZWQgLW4gLWUgJ3MvXjogXChbXiBdKlwpICQv ICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbXiBdKlwp IFwobGliW14gXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCcgLWUgJ3MvXiRzeW1j b2RlKiBcKFteIF0qXCkgXChbXiBdKlwpJC8gIHtcImxpYlwyXCIsICh2b2lkICopIFwmXDJ9LC9w JyIKKysKKysjIEhhbmRsZSBDUkxGIGluIG1pbmd3IHRvb2wgY2hhaW4KKytvcHRfY3I9CisrY2Fz ZSAkYnVpbGRfb3MgaW4KKyttaW5ndyopCisrICBvcHRfY3I9YCRFQ0hPICd4XHswLDFcfScgfCB0 ciB4ICdcMDE1J2AgIyBvcHRpb24gY3IgaW4gcmVnZXhwCisrICA7OworK2VzYWMKKysKKysjIFRy eSB3aXRob3V0IGEgcHJlZml4IHVuZGVyc2NvcmUsIHRoZW4gd2l0aCBpdC4KKytmb3IgYWNfc3lt cHJmeCBpbiAiIiAiXyI7IGRvCisrCisrICAjIFRyYW5zZm9ybSBzeW1jb2RlLCBzeW1wYXQsIGFu ZCBzeW1wcmZ4IGludG8gYSByYXcgc3ltYm9sIGFuZCBhIEMgc3ltYm9sLgorKyAgc3lteGZybT0i XFwxICRhY19zeW1wcmZ4XFwyIFxcMiIKKysKKysgICMgV3JpdGUgdGhlIHJhdyBhbmQgQyBpZGVu dGlmaWVycy4KKysgIGlmIHRlc3QgIiRsdF9jdl9ubV9pbnRlcmZhY2UiID0gIk1TIGR1bXBiaW4i OyB0aGVuCisrICAgICMgRmFrZSBpdCBmb3IgZHVtcGJpbiBhbmQgc2F5IFQgZm9yIGFueSBub24t c3RhdGljIGZ1bmN0aW9uCisrICAgICMgYW5kIEQgZm9yIGFueSBnbG9iYWwgdmFyaWFibGUuCisr ICAgICMgQWxzbyBmaW5kIEMrKyBhbmQgX19mYXN0Y2FsbCBzeW1ib2xzIGZyb20gTVNWQysrLAor KyAgICAjIHdoaWNoIHN0YXJ0IHdpdGggQCBvciA/LgorKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5 bWJvbF9waXBlPSIkQVdLICciXAorKyIgICAgIHtsYXN0X3NlY3Rpb249c2VjdGlvbjsgc2VjdGlv bj1cJCAzfTsiXAorKyIgICAgIC9TZWN0aW9uIGxlbmd0aCAuKiNyZWxvY3MuKihwaWNrIGFueSkv e2hpZGVbbGFzdF9zZWN0aW9uXT0xfTsiXAorKyIgICAgIFwkIDAhfi9FeHRlcm5hbCAqXHwve25l eHR9OyJcCisrIiAgICAgLyAwKyBVTkRFRiAve25leHR9OyAvIFVOREVGIFwoW158XVwpKigpL3tu ZXh0fTsiXAorKyIgICAgIHtpZihoaWRlW3NlY3Rpb25dKSBuZXh0fTsiXAorKyIgICAgIHtmPTB9 OyBcJCAwfi9cKFwpLipcfC97Zj0xfTsge3ByaW50ZiBmID8gXCJUIFwiIDogXCJEIFwifTsiXAor KyIgICAgIHtzcGxpdChcJCAwLCBhLCAvXHx8XHIvKTsgc3BsaXQoYVsyXSwgcyl9OyJcCisrIiAg ICAgc1sxXX4vXltAP10ve3ByaW50IHNbMV0sIHNbMV07IG5leHR9OyJcCisrIiAgICAgc1sxXX5w cmZ4IHtzcGxpdChzWzFdLHQsXCJAXCIpOyBwcmludCB0WzFdLCBzdWJzdHIodFsxXSxsZW5ndGgo cHJmeCkpfSJcCisrIiAgICAgJyBwcmZ4PV4kYWNfc3ltcHJmeCIKKysgIGVsc2UKKysgICAgbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0ic2VkIC1uIC1lICdzL14uKlsJIF1cKCRzeW1jb2Rl JHN5bWNvZGUqXClbCSBdWwkgXSokYWNfc3ltcHJmeCRzeW1wYXQkb3B0X2NyJC8kc3lteGZybS9w JyIKKysgIGZpCisrCisrICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoZSBwaXBlIHdvcmtzIGNvcnJl Y3RseS4KKysgIHBpcGVfd29ya3M9bm8KKysKKysgIHJtIC1mIGNvbmZ0ZXN0KgorKyAgY2F0ID4g Y29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4g IkMiIHsKKysjZW5kaWYKKytjaGFyIG5tX3Rlc3RfdmFyOworK3ZvaWQgbm1fdGVzdF9mdW5jKHZv aWQpOworK3ZvaWQgbm1fdGVzdF9mdW5jKHZvaWQpe30KKysjaWZkZWYgX19jcGx1c3BsdXMKKyt9 CisrI2VuZGlmCisraW50IG1haW4oKXtubV90ZXN0X3Zhcj0nYSc7bm1fdGVzdF9mdW5jKCk7cmV0 dXJuKDApO30KKytfTFRfRU9GCisrCisrICBpZiB7IHsgZXZhbCBlY2hvICJcIlwkYXNfbWVcIjok e2FzX2xpbmVuby0kTElORU5PfTogXCIkYWNfY29tcGlsZVwiIjsgfSA+JjUKKysgIChldmFsICRh Y19jb21waWxlKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgdGVzdCAkYWNfc3Rh dHVzID0gMDsgfTsgdGhlbgorKyAgICAjIE5vdyB0cnkgdG8gZ3JhYiB0aGUgc3ltYm9scy4KKysg ICAgbmxpc3Q9Y29uZnRlc3Qubm0KKysgICAgaWYgeyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6 JHthc19saW5lbm8tJExJTkVOT306IFwiJE5NIGNvbmZ0ZXN0LiRhY19vYmpleHQgXHwgIiRsdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIiBcPiAkbmxpc3RcIiI7IH0gPiY1CisrICAoZXZhbCAk Tk0gY29uZnRlc3QuJGFjX29iamV4dCBcfCAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUi IFw+ICRubGlzdCkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIHRlc3QgJGFjX3N0 YXR1cyA9IDA7IH0gJiYgdGVzdCAtcyAiJG5saXN0IjsgdGhlbgorKyAgICAgICMgVHJ5IHNvcnRp bmcgYW5kIHVuaXF1aWZ5aW5nIHRoZSBvdXRwdXQuCisrICAgICAgaWYgc29ydCAiJG5saXN0IiB8 IHVuaXEgPiAiJG5saXN0IlQ7IHRoZW4KKysJbXYgLWYgIiRubGlzdCJUICIkbmxpc3QiCisrICAg ICAgZWxzZQorKwlybSAtZiAiJG5saXN0IlQKKysgICAgICBmaQorKworKyAgICAgICMgTWFrZSBz dXJlIHRoYXQgd2Ugc25hZ2dlZCBhbGwgdGhlIHN5bWJvbHMgd2UgbmVlZC4KKysgICAgICBpZiAk R1JFUCAnIG5tX3Rlc3RfdmFyJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgorKwlpZiAkR1JF UCAnIG5tX3Rlc3RfZnVuYyQnICIkbmxpc3QiID4vZGV2L251bGw7IHRoZW4KKysJICBjYXQgPDxf TFRfRU9GID4gY29uZnRlc3QuJGFjX2V4dAorKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAi QyIgeworKyNlbmRpZgorKworK19MVF9FT0YKKysJICAjIE5vdyBnZW5lcmF0ZSB0aGUgc3ltYm9s IGZpbGUuCisrCSAgZXZhbCAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIicgPCAi JG5saXN0IiB8ICRHUkVQIC12IG1haW4gPj4gY29uZnRlc3QuJGFjX2V4dCcKKysKKysJICBjYXQg PDxfTFRfRU9GID4+IGNvbmZ0ZXN0LiRhY19leHQKKysKKysvKiBUaGUgbWFwcGluZyBiZXR3ZWVu IHN5bWJvbCBuYW1lcyBhbmQgc3ltYm9scy4gICovCisrY29uc3Qgc3RydWN0IHsKKysgIGNvbnN0 IGNoYXIgKm5hbWU7CisrICB2b2lkICAgICAgICphZGRyZXNzOworK30KKytsdF9fUFJPR1JBTV9f TFRYX3ByZWxvYWRlZF9zeW1ib2xzW10gPQorK3sKKysgIHsgIkBQUk9HUkFNQCIsICh2b2lkICop IDAgfSwKKytfTFRfRU9GCisrCSAgJFNFRCAicy9eJHN5bWNvZGUkc3ltY29kZSogXCguKlwpIFwo LipcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvIiA8ICIkbmxpc3QiIHwgJEdSRVAgLXYg bWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0CisrCSAgY2F0IDw8XF9MVF9FT0YgPj4gY29uZnRlc3Qu JGFjX2V4dAorKyAgezAsICh2b2lkICopIDB9CisrfTsKKysKKysvKiBUaGlzIHdvcmtzIGFyb3Vu ZCBhIHByb2JsZW0gaW4gRnJlZUJTRCBsaW5rZXIgKi8KKysjaWZkZWYgRlJFRUJTRF9XT1JLQVJP VU5ECisrc3RhdGljIGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgpIHsKKysgIHJldHVy biBsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRlZF9zeW1ib2xzOworK30KKysjZW5kaWYKKysKKysj aWZkZWYgX19jcGx1c3BsdXMKKyt9CisrI2VuZGlmCisrX0xUX0VPRgorKwkgICMgTm93IHRyeSBs aW5raW5nIHRoZSB0d28gZmlsZXMuCisrCSAgbXYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdHN0 bS4kYWNfb2JqZXh0CisrCSAgbHRfc2F2ZV9MSUJTPSIkTElCUyIKKysJICBsdF9zYXZlX0NGTEFH Uz0iJENGTEFHUyIKKysJICBMSUJTPSJjb25mdHN0bS4kYWNfb2JqZXh0IgorKwkgIENGTEFHUz0i JENGTEFHUyRsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZyIKKysJICBpZiB7IHsgZXZh bCBlY2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTogXCIkYWNfbGlua1wiIjsg fSA+JjUKKysgIChldmFsICRhY19saW5rKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQor KyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9 OyB0aGVuCisrCSAgICBwaXBlX3dvcmtzPXllcworKwkgIGZpCisrCSAgTElCUz0iJGx0X3NhdmVf TElCUyIKKysJICBDRkxBR1M9IiRsdF9zYXZlX0NGTEFHUyIKKysJZWxzZQorKwkgIGVjaG8gImNh bm5vdCBmaW5kIG5tX3Rlc3RfZnVuYyBpbiAkbmxpc3QiID4mNQorKwlmaQorKyAgICAgIGVsc2UK KysJZWNobyAiY2Fubm90IGZpbmQgbm1fdGVzdF92YXIgaW4gJG5saXN0IiA+JjUKKysgICAgICBm aQorKyAgICBlbHNlCisrICAgICAgZWNobyAiY2Fubm90IHJ1biAkbHRfY3Zfc3lzX2dsb2JhbF9z eW1ib2xfcGlwZSIgPiY1CisrICAgIGZpCisrICBlbHNlCisrICAgIGVjaG8gIiRwcm9nbmFtZTog ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CisrICAgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQor KyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCogY29uZnRzdCoKKysKKysgICMgRG8gbm90IHVzZSB0 aGUgZ2xvYmFsX3N5bWJvbF9waXBlIHVubGVzcyBpdCB3b3Jrcy4KKysgIGlmIHRlc3QgIiRwaXBl X3dvcmtzIiA9IHllczsgdGhlbgorKyAgICBicmVhaworKyAgZWxzZQorKyAgICBsdF9jdl9zeXNf Z2xvYmFsX3N5bWJvbF9waXBlPQorKyAgZmkKKytkb25lCisrCisrZmkKKysKKytpZiB0ZXN0IC16 ICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KKysgIGx0X2N2X3N5c19nbG9i YWxfc3ltYm9sX3RvX2NkZWNsPQorK2ZpCisraWYgdGVzdCAteiAiJGx0X2N2X3N5c19nbG9iYWxf c3ltYm9sX3BpcGUkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wiOyB0aGVuCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogZmFpbGVkIiA+ JjUKKyskYXNfZWNobyAiZmFpbGVkIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogb2siID4mNQorKyRhc19lY2hvICJvayIg PiY2OyB9CisrZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbGlidG9v bC1sb2NrIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9saWJ0b29sX2xvY2src2V0fSIg PSBzZXQ7IHRoZW4gOgorKyAgZW5hYmxldmFsPSRlbmFibGVfbGlidG9vbF9sb2NrOworK2ZpCisr CisrdGVzdCAieCRlbmFibGVfbGlidG9vbF9sb2NrIiAhPSB4bm8gJiYgZW5hYmxlX2xpYnRvb2xf bG9jaz15ZXMKKysKKysjIFNvbWUgZmxhZ3MgbmVlZCB0byBiZSBwcm9wYWdhdGVkIHRvIHRoZSBj b21waWxlciBvciBsaW5rZXIgZm9yIGdvb2QKKysjIGxpYnRvb2wgc3VwcG9ydC4KKytjYXNlICRo b3N0IGluCisraWE2NC0qLWhwdXgqKQorKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVz aW5nLgorKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKKysgIGlmIHsgeyBldmFs IGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRhY19jb21waWxlXCIi OyB9ID4mNQorKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1CisrICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB0aGVuCisrICAgIGNhc2UgYC91c3IvYmlu L2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysgICAgICAqRUxGLTMyKikKKysJSFBVWF9J QTY0X01PREU9IjMyIgorKwk7OworKyAgICAgICpFTEYtNjQqKQorKwlIUFVYX0lBNjRfTU9ERT0i NjQiCisrCTs7CisrICAgIGVzYWMKKysgIGZpCisrICBybSAtcmYgY29uZnRlc3QqCisrICA7Owor KyotKi1pcml4NiopCisrICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCisrICBl Y2hvICcjbGluZSAnJExJTkVOTycgImNvbmZpZ3VyZSInID4gY29uZnRlc3QuJGFjX2V4dAorKyAg aWYgeyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGFj X2NvbXBpbGVcIiI7IH0gPiY1CisrICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQorKyAgYWNfc3Rh dHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IHRoZW4KKysgICAgaWYg dGVzdCAiJGx0X2N2X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICAgIGNhc2UgYC91c3Iv YmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysJKjMyLWJpdCopCisrCSAgTEQ9IiR7 TEQtbGR9IC1tZWxmMzJic21pcCIKKysJICA7OworKwkqTjMyKikKKysJICBMRD0iJHtMRC1sZH0g LW1lbGYzMmJtaXBuMzIiCisrCSAgOzsKKysJKjY0LWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC1t ZWxmNjRibWlwIgorKwk7OworKyAgICAgIGVzYWMKKysgICAgZWxzZQorKyAgICAgIGNhc2UgYC91 c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysJKjMyLWJpdCopCisrCSAgTEQ9 IiR7TEQtbGR9IC0zMiIKKysJICA7OworKwkqTjMyKikKKysJICBMRD0iJHtMRC1sZH0gLW4zMiIK KysJICA7OworKwkqNjQtYml0KikKKysJICBMRD0iJHtMRC1sZH0gLTY0IgorKwkgIDs7CisrICAg ICAgZXNhYworKyAgICBmaQorKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7CisrCisr eDg2XzY0LSprZnJlZWJzZCotZ251fHg4Nl82NC0qbGludXgqfHBwYyotKmxpbnV4Knxwb3dlcnBj Ki0qbGludXgqfCBcCisrczM5MCotKmxpbnV4KnxzMzkwKi0qdHBmKnxzcGFyYyotKmxpbnV4KikK KysgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJ2ludCBpOycg PiBjb25mdGVzdC4kYWNfZXh0CisrICBpZiB7IHsgZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2Fz X2xpbmVuby0kTElORU5PfTogXCIkYWNfY29tcGlsZVwiIjsgfSA+JjUKKysgIChldmFsICRhY19j b21waWxlKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgdGVzdCAkYWNfc3RhdHVz ID0gMDsgfTsgdGhlbgorKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCisr ICAgICAgKjMyLWJpdCopCisrCWNhc2UgJGhvc3QgaW4KKysJICB4ODZfNjQtKmtmcmVlYnNkKi1n bnUpCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODZfZmJzZCIKKysJICAgIDs7CisrCSAg eDg2XzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODYiCisrCSAgICA7 OworKwkgIHBwYzY0LSpsaW51eCp8cG93ZXJwYzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1s ZH0gLW0gZWxmMzJwcGNsaW51eCIKKysJICAgIDs7CisrCSAgczM5MHgtKmxpbnV4KikKKysJICAg IExEPSIke0xELWxkfSAtbSBlbGZfczM5MCIKKysJICAgIDs7CisrCSAgc3BhcmM2NC0qbGludXgq KQorKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjMyX3NwYXJjIgorKwkgICAgOzsKKysJZXNhYwor Kwk7OworKyAgICAgICo2NC1iaXQqKQorKwljYXNlICRob3N0IGluCisrCSAgeDg2XzY0LSprZnJl ZWJzZCotZ251KQorKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94ODZfNjRfZmJzZCIKKysJICAg IDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3g4Nl82 NCIKKysJICAgIDs7CisrCSAgcHBjKi0qbGludXgqfHBvd2VycGMqLSpsaW51eCopCisrCSAgICBM RD0iJHtMRC1sZH0gLW0gZWxmNjRwcGMiCisrCSAgICA7OworKwkgIHMzOTAqLSpsaW51eCp8czM5 MCotKnRwZiopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfczM5MCIKKysJICAgIDs7Cisr CSAgc3BhcmMqLSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfc3BhcmMiCisr CSAgICA7OworKwllc2FjCisrCTs7CisrICAgIGVzYWMKKysgIGZpCisrICBybSAtcmYgY29uZnRl c3QqCisrICA7OworKworKyotKi1zY28zLjJ2NSopCisrICAjIE9uIFNDTyBPcGVuU2VydmVyIDUs IHdlIG5lZWQgLWJlbGYgdG8gZ2V0IGZ1bGwtZmVhdHVyZWQgYmluYXJpZXMuCisrICBTQVZFX0NG TEFHUz0iJENGTEFHUyIKKysgIENGTEFHUz0iJENGTEFHUyAtYmVsZiIKKysgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21w aWxlciBuZWVkcyAtYmVsZiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUg QyBjb21waWxlciBuZWVkcyAtYmVsZi4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfY2Nf bmVlZHNfYmVsZitzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgorK2Vsc2UKKysgIGFjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19j b21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisr YWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2 X2NfY29tcGlsZXJfZ251CisrCisrICAgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25m dGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkK Kyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisraWYgYWNfZm5fY190cnlf bGluayAiJExJTkVOTyI7IHRoZW4gOgorKyAgbHRfY3ZfY2NfbmVlZHNfYmVsZj15ZXMKKytlbHNl CisrICBsdF9jdl9jY19uZWVkc19iZWxmPW5vCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKysgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0 LiRhY19leHQKKysgICAgIGFjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19j b21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisr YWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2 X2NfY29tcGlsZXJfZ251CisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogJGx0X2N2X2NjX25lZWRzX2JlbGYiID4mNQorKyRhc19lY2hvICIk bHRfY3ZfY2NfbmVlZHNfYmVsZiIgPiY2OyB9CisrICBpZiB0ZXN0IHgiJGx0X2N2X2NjX25lZWRz X2JlbGYiICE9IHgieWVzIjsgdGhlbgorKyAgICAjIHRoaXMgaXMgcHJvYmFibHkgZ2NjIDIuOC4w LCBlZ2NzIDEuMCBvciBuZXdlcjsgbm8gbmVlZCBmb3IgLWJlbGYKKysgICAgQ0ZMQUdTPSIkU0FW RV9DRkxBR1MiCisrICBmaQorKyAgOzsKKytzcGFyYyotKnNvbGFyaXMqKQorKyAgIyBGaW5kIG91 dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgorKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRh Y19leHQKKysgIGlmIHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBcIiRhY19jb21waWxlXCIiOyB9ID4mNQorKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUK KysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB0aGVu CisrICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qub2AgaW4KKysgICAgKjY0LWJpdCop CisrICAgICAgY2FzZSAkbHRfY3ZfcHJvZ19nbnVfbGQgaW4KKysgICAgICB5ZXMqKSBMRD0iJHtM RC1sZH0gLW0gZWxmNjRfc3BhcmMiIDs7CisrICAgICAgKikKKysJaWYgJHtMRC1sZH0gLTY0IC1y IC1vIGNvbmZ0ZXN0Mi5vIGNvbmZ0ZXN0Lm8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCSAgTEQ9 IiR7TEQtbGR9IC02NCIKKysJZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysgICAg ZXNhYworKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7CisrZXNhYworKworK25lZWRf bG9ja3M9IiRlbmFibGVfbGlidG9vbF9sb2NrIgorKworKworKyAgY2FzZSAkaG9zdF9vcyBpbgor KyAgICByaGFwc29keSogfCBkYXJ3aW4qKQorKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVm aXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVm aXh9ZHN5bXV0aWwiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3Nl dCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWRzeW11dGlsOyBhY193b3JkPSQyCisreyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRl c3QgIiR7YWNfY3ZfcHJvZ19EU1lNVVRJTCtzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiREU1lNVVRJTCI7IHRo ZW4KKysgIGFjX2N2X3Byb2dfRFNZTVVUSUw9IiREU1lNVVRJTCIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB UkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX0RTWU1VVElMPSIke2FjX3Rvb2xf cHJlZml4fWRzeW11dGlsIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsg MgorKyAgZmkKKytkb25lCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkK KytEU1lNVVRJTD0kYWNfY3ZfcHJvZ19EU1lNVVRJTAorK2lmIHRlc3QgLW4gIiREU1lNVVRJTCI7 IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiAkRFNZTVVUSUwiID4mNQorKyRhc19lY2hvICIkRFNZTVVUSUwiID4mNjsgfQorK2Vsc2UKKysg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1 CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAteiAiJGFj X2N2X3Byb2dfRFNZTVVUSUwiOyB0aGVuCisrICBhY19jdF9EU1lNVVRJTD0kRFNZTVVUSUwKKysg ICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZHN5bXV0aWwiLCBzbyBpdCBjYW4gYmUgYSBw cm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBkc3ltdXRpbDsgYWNfd29yZD0kMgor K3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRh Y193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfRFNZTVVUSUwrc2V0fSIgPSBzZXQ7IHRo ZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1u ICIkYWNfY3RfRFNZTVVUSUwiOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X0RTWU1VVElMPSIk YWNfY3RfRFNZTVVUSUwiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UK Kythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAk UEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBh c19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5z aW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIg JiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysg ICAgYWNfY3ZfcHJvZ19hY19jdF9EU1lNVVRJTD0iZHN5bXV0aWwiCisrICAgICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKysgIGRvbmUKKytJRlM9JGFz X3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X0RTWU1VVElMPSRhY19jdl9wcm9nX2FjX2N0 X0RTWU1VVElMCisraWYgdGVzdCAtbiAiJGFjX2N0X0RTWU1VVElMIjsgdGhlbgorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdF9EU1lNVVRJ TCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9EU1lNVVRJTCIgPiY2OyB9CisrZWxzZQorKyAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKysk YXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X0RTWU1VVElM IiA9IHg7IHRoZW4KKysgICAgRFNZTVVUSUw9IjoiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3Nz X2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHBy ZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5H OiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9 CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBEU1lNVVRJTD0kYWNfY3RfRFNZ TVVUSUwKKysgIGZpCisrZWxzZQorKyAgRFNZTVVUSUw9IiRhY19jdl9wcm9nX0RTWU1VVElMIgor K2ZpCisrCisrICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKysgICMgRXh0 cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1ubWVkaXQiLCBzbyBpdCBj YW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJl Zml4fW5tZWRpdDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfTk1FRElU K3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgaWYgdGVzdCAtbiAiJE5NRURJVCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfTk1FRElUPSIk Tk1FRElUIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2 ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytk bworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K KysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRv CisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190 ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2 X3Byb2dfTk1FRElUPSIke2FjX3Rvb2xfcHJlZml4fW5tZWRpdCIKKysgICAgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lGUz0kYXNf c2F2ZV9JRlMKKysKKytmaQorK2ZpCisrTk1FRElUPSRhY19jdl9wcm9nX05NRURJVAorK2lmIHRl c3QgLW4gIiROTUVESVQiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogJE5NRURJVCIgPiY1CisrJGFzX2VjaG8gIiROTUVESVQiID4mNjsg fQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2ZpCisraWYg dGVzdCAteiAiJGFjX2N2X3Byb2dfTk1FRElUIjsgdGhlbgorKyAgYWNfY3RfTk1FRElUPSROTUVE SVQKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAibm1lZGl0Iiwgc28gaXQgY2FuIGJl IGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgbm1lZGl0OyBhY193b3JkPSQy CisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Ig JGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4m NjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9OTUVESVQrc2V0fSIgPSBzZXQ7IHRo ZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1u ICIkYWNfY3RfTk1FRElUIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19jdF9OTUVESVQ9IiRhY19j dF9OTUVESVQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAor K2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9 LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsg ZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFz X3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNf Y3ZfcHJvZ19hY19jdF9OTUVESVQ9Im5tZWRpdCIKKysgICAgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1 CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMK KysKKytmaQorK2ZpCisrYWNfY3RfTk1FRElUPSRhY19jdl9wcm9nX2FjX2N0X05NRURJVAorK2lm IHRlc3QgLW4gIiRhY19jdF9OTUVESVQiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X05NRURJVCIgPiY1CisrJGFzX2VjaG8g IiRhY19jdF9OTUVESVQiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0K KytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9OTUVESVQiID0geDsgdGhlbgorKyAgICBOTUVE SVQ9IjoiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJu ZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog V0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0 IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3Qg cHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7 CisrZXNhYworKyAgICBOTUVESVQ9JGFjX2N0X05NRURJVAorKyAgZmkKKytlbHNlCisrICBOTUVE SVQ9IiRhY19jdl9wcm9nX05NRURJVCIKKytmaQorKworKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9v bF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9v bF9wcmVmaXh9bGlwbyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisr c2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9bGlwbzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0 ICIke2FjX2N2X3Byb2dfTElQTytzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRMSVBPIjsgdGhlbgorKyAgYWNf Y3ZfcHJvZ19MSVBPPSIkTElQTyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisr ZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGly IGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIi ICYmIGFzX2Rpcj0uCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9l eHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhl bgorKyAgICBhY19jdl9wcm9nX0xJUE89IiR7YWNfdG9vbF9wcmVmaXh9bGlwbyIKKysgICAgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQor K0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrTElQTz0kYWNfY3ZfcHJvZ19MSVBPCisr aWYgdGVzdCAtbiAiJExJUE8iOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogJExJUE8iID4mNQorKyRhc19lY2hvICIkTElQTyIgPiY2OyB9 CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrZmkKKytpZiB0 ZXN0IC16ICIkYWNfY3ZfcHJvZ19MSVBPIjsgdGhlbgorKyAgYWNfY3RfTElQTz0kTElQTworKyAg IyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJsaXBvIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgbGlwbzsgYWNfd29yZD0kMgorK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+ JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0 ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfTElQTytzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9MSVBP IjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19jdF9MSVBPPSIkYWNfY3RfTElQTyIgIyBMZXQgdGhl IHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0k UEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2 ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2FjX2N0X0xJUE89 ImxpcG8iCisrICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5k ICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQor K2RvbmUKKysgIGRvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X0xJ UE89JGFjX2N2X3Byb2dfYWNfY3RfTElQTworK2lmIHRlc3QgLW4gIiRhY19jdF9MSVBPIjsgdGhl bgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRh Y19jdF9MSVBPIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X0xJUE8iID4mNjsgfQorK2Vsc2UKKysg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1 CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9MSVBP IiA9IHg7IHRoZW4KKysgICAgTElQTz0iOiIKKysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29t cGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3llczopCisreyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4 ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVz aW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KKyth Y190b29sX3dhcm5lZD15ZXMgOzsKKytlc2FjCisrICAgIExJUE89JGFjX2N0X0xJUE8KKysgIGZp CisrZWxzZQorKyAgTElQTz0iJGFjX2N2X3Byb2dfTElQTyIKKytmaQorKworKyAgICBpZiB0ZXN0 IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQg b2YgIiR7YWNfdG9vbF9wcmVmaXh9b3Rvb2wiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fW90b29sOyBhY193b3JkPSQy CisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Ig JGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4m NjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19PVE9PTCtzZXR9IiA9IHNldDsgdGhlbiA6Cisr ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRPVE9P TCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfT1RPT0w9IiRPVE9PTCIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB UkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX09UT09MPSIke2FjX3Rvb2xfcHJl Zml4fW90b29sIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAg ZmkKKytkb25lCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKytPVE9P TD0kYWNfY3ZfcHJvZ19PVE9PTAorK2lmIHRlc3QgLW4gIiRPVE9PTCI7IHRoZW4KKysgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkT1RPT0wiID4mNQor KyRhc19lY2hvICIkT1RPT0wiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7 IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfT1RPT0wiOyB0aGVu CisrICBhY19jdF9PVE9PTD0kT1RPT0wKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAi b3Rvb2wiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1t eSBvdG9vbDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBm b3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfT1RP T0wrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfT1RPT0wiOyB0aGVuCisrICBhY19jdl9wcm9nX2Fj X2N0X09UT09MPSIkYWNfY3RfT1RPT0wiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFz X2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9PVE9PTD0ib3Rvb2wiCisrICAgICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKysgIGRvbmUKKytJRlM9 JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X09UT09MPSRhY19jdl9wcm9nX2FjX2N0 X09UT09MCisraWYgdGVzdCAtbiAiJGFjX2N0X09UT09MIjsgdGhlbgorKyAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdF9PVE9PTCIgPiY1Cisr JGFzX2VjaG8gIiRhY19jdF9PVE9PTCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8i ID4mNjsgfQorK2ZpCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X09UT09MIiA9IHg7IHRoZW4KKysg ICAgT1RPT0w9IjoiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9v bF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0 cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29s cyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9 eWVzIDs7CisrZXNhYworKyAgICBPVE9PTD0kYWNfY3RfT1RPT0wKKysgIGZpCisrZWxzZQorKyAg T1RPT0w9IiRhY19jdl9wcm9nX09UT09MIgorK2ZpCisrCisrICAgIGlmIHRlc3QgLW4gIiRhY190 b29sX3ByZWZpeCI7IHRoZW4KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190 b29sX3ByZWZpeH1vdG9vbDY0Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn cy4KKytzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1vdG9vbDY0OyBhY193b3JkPSQyCisreyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dv cmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQor K2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19PVE9PTDY0K3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJE9UT09MNjQi OyB0aGVuCisrICBhY19jdl9wcm9nX09UT09MNjQ9IiRPVE9PTDY0IiAjIExldCB0aGUgdXNlciBv dmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUwor KyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGlu ICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfT1RPT0w2ND0iJHthY190b29s X3ByZWZpeH1vdG9vbDY0IgorKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsg MgorKyAgZmkKKytkb25lCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkK KytPVE9PTDY0PSRhY19jdl9wcm9nX09UT09MNjQKKytpZiB0ZXN0IC1uICIkT1RPT0w2NCI7IHRo ZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk T1RPT0w2NCIgPiY1CisrJGFzX2VjaG8gIiRPVE9PTDY0IiA+JjY7IH0KKytlbHNlCisrICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorKyRh c19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytmaQorK2lmIHRlc3QgLXogIiRhY19jdl9w cm9nX09UT09MNjQiOyB0aGVuCisrICBhY19jdF9PVE9PTDY0PSRPVE9PTDY0CisrICAjIEV4dHJh Y3QgdGhlIGZpcnN0IHdvcmQgb2YgIm90b29sNjQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5h bWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBvdG9vbDY0OyBhY193b3JkPSQyCisreyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRl c3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9PVE9PTDY0K3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGFjX2N0X09U T09MNjQiOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X09UT09MNjQ9IiRhY19jdF9PVE9PTDY0 IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAg SUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAg Zm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBp ZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3gg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2df YWNfY3RfT1RPT0w2ND0ib3Rvb2w2NCIKKysgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAg IGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytm aQorK2ZpCisrYWNfY3RfT1RPT0w2ND0kYWNfY3ZfcHJvZ19hY19jdF9PVE9PTDY0CisraWYgdGVz dCAtbiAiJGFjX2N0X09UT09MNjQiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X09UT09MNjQiID4mNQorKyRhc19lY2hvICIk YWNfY3RfT1RPT0w2NCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQor K2ZpCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X09UT09MNjQiID0geDsgdGhlbgorKyAgICBPVE9P TDY0PSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2Fy bmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxl dCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90 IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7 OworK2VzYWMKKysgICAgT1RPT0w2ND0kYWNfY3RfT1RPT0w2NAorKyAgZmkKKytlbHNlCisrICBP VE9PTDY0PSIkYWNfY3ZfcHJvZ19PVE9PTDY0IgorK2ZpCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yIC1zaW5nbGVfbW9kdWxlIGxpbmtlciBmbGFnIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgLXNpbmdsZV9tb2R1bGUgbGlua2VyIGZsYWcuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2x0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Qrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9k PW5vCisrICAgICAgaWYgdGVzdCAteiAiJHtMVF9NVUxUSV9NT0RVTEV9IjsgdGhlbgorKwkjIEJ5 IGRlZmF1bHQgd2Ugd2lsbCBhZGQgdGhlIC1zaW5nbGVfbW9kdWxlIGZsYWcuIFlvdSBjYW4gb3Zl cnJpZGUKKysJIyBieSBlaXRoZXIgc2V0dGluZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgTFRf TVVMVElfTU9EVUxFCisrCSMgbm9uLWVtcHR5IGF0IGNvbmZpZ3VyZSB0aW1lLCBvciBieSBhZGRp bmcgLW11bHRpX21vZHVsZSB0byB0aGUKKysJIyBsaW5rIGZsYWdzLgorKwlybSAtcmYgbGliY29u ZnRlc3QuZHlsaWIqCisrCWVjaG8gImludCBmb28odm9pZCl7cmV0dXJuIDE7fSIgPiBjb25mdGVz dC5jCisrCWVjaG8gIiRMVENDICRMVENGTEFHUyAkTERGTEFHUyAtbyBsaWJjb25mdGVzdC5keWxp YiBcCisrLWR5bmFtaWNsaWIgLVdsLC1zaW5nbGVfbW9kdWxlIGNvbmZ0ZXN0LmMiID4mNQorKwkk TFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29uZnRlc3QuZHlsaWIgXAorKwkgIC1keW5h bWljbGliIC1XbCwtc2luZ2xlX21vZHVsZSBjb25mdGVzdC5jIDI+Y29uZnRlc3QuZXJyCisrICAg ICAgICBfbHRfcmVzdWx0PSQ/CisrCWlmIHRlc3QgLWYgbGliY29uZnRlc3QuZHlsaWIgJiYgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVyciAmJiB0ZXN0ICRfbHRfcmVzdWx0ID0gMDsgdGhlbgorKwkgIGx0 X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Q9eWVzCisrCWVsc2UKKysJICBjYXQgY29uZnRlc3QuZXJy ID4mNQorKwlmaQorKwlybSAtcmYgbGliY29uZnRlc3QuZHlsaWIqCisrCXJtIC1mIGNvbmZ0ZXN0 LioKKysgICAgICBmaQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6ICRsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kIiA+JjUKKyskYXNfZWNobyAi JGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiID4mNjsgfQorKyAgICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAtZXhwb3J0ZWRfc3ltYm9sc19s aXN0IGxpbmtlciBmbGFnIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgLWV4cG9ydGVk X3N5bWJvbHNfbGlzdCBsaW5rZXIgZmxhZy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3Zf bGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0K3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19s aXN0PW5vCisrICAgICAgc2F2ZV9MREZMQUdTPSRMREZMQUdTCisrICAgICAgZWNobyAiX21haW4i ID4gY29uZnRlc3Quc3ltCisrICAgICAgTERGTEFHUz0iJExERkxBR1MgLVdsLC1leHBvcnRlZF9z eW1ib2xzX2xpc3QsY29uZnRlc3Quc3ltIgorKyAgICAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNF T0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50Cisr bWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19m bl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CisrICBsdF9jdl9sZF9leHBvcnRlZF9zeW1i b2xzX2xpc3Q9eWVzCisrZWxzZQorKyAgbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PW5v CisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKysg ICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJTERGTEFHUz0iJHNhdmVf TERGTEFHUyIKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiAkbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0IiA+JjUKKyskYXNfZWNo byAiJGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdCIgPiY2OyB9CisrICAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIC1mb3JjZV9sb2Fk IGxpbmtlciBmbGFnIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgLWZvcmNlX2xvYWQg bGlua2VyIGZsYWcuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X2xkX2ZvcmNlX2xvYWQr c2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrICBsdF9jdl9sZF9mb3JjZV9sb2FkPW5vCisrICAgICAgY2F0ID4gY29uZnRlc3QuYyA8PCBf TFRfRU9GCisraW50IGZvcmNlZF9sb2FkZWQoKSB7IHJldHVybiAyO30KKytfTFRfRU9GCisrICAg ICAgZWNobyAiJExUQ0MgJExUQ0ZMQUdTIC1jIC1vIGNvbmZ0ZXN0Lm8gY29uZnRlc3QuYyIgPiY1 CisrICAgICAgJExUQ0MgJExUQ0ZMQUdTIC1jIC1vIGNvbmZ0ZXN0Lm8gY29uZnRlc3QuYyAyPiY1 CisrICAgICAgZWNobyAiJEFSIGNydSBsaWJjb25mdGVzdC5hIGNvbmZ0ZXN0Lm8iID4mNQorKyAg ICAgICRBUiBjcnUgbGliY29uZnRlc3QuYSBjb25mdGVzdC5vIDI+JjUKKysgICAgICBlY2hvICIk UkFOTElCIGxpYmNvbmZ0ZXN0LmEiID4mNQorKyAgICAgICRSQU5MSUIgbGliY29uZnRlc3QuYSAy PiY1CisrICAgICAgY2F0ID4gY29uZnRlc3QuYyA8PCBfTFRfRU9GCisraW50IG1haW4oKSB7IHJl dHVybiAwO30KKytfTFRfRU9GCisrICAgICAgZWNobyAiJExUQ0MgJExUQ0ZMQUdTICRMREZMQUdT IC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMgLVdsLC1mb3JjZV9sb2FkLC4vbGliY29uZnRlc3QuYSIg PiY1CisrICAgICAgJExUQ0MgJExUQ0ZMQUdTICRMREZMQUdTIC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0 LmMgLVdsLC1mb3JjZV9sb2FkLC4vbGliY29uZnRlc3QuYSAyPmNvbmZ0ZXN0LmVycgorKyAgICAg IF9sdF9yZXN1bHQ9JD8KKysgICAgICBpZiB0ZXN0IC1mIGNvbmZ0ZXN0ICYmIHRlc3QgISAtcyBj b25mdGVzdC5lcnIgJiYgdGVzdCAkX2x0X3Jlc3VsdCA9IDAgJiYgJEdSRVAgZm9yY2VkX2xvYWQg Y29uZnRlc3QgMj4mMSA+L2Rldi9udWxsOyB0aGVuCisrCWx0X2N2X2xkX2ZvcmNlX2xvYWQ9eWVz CisrICAgICAgZWxzZQorKwljYXQgY29uZnRlc3QuZXJyID4mNQorKyAgICAgIGZpCisrICAgICAg ICBybSAtZiBjb25mdGVzdC5lcnIgbGliY29uZnRlc3QuYSBjb25mdGVzdCBjb25mdGVzdC5jCisr ICAgICAgICBybSAtcmYgY29uZnRlc3QuZFNZTQorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9sZF9mb3JjZV9sb2FkIiA+JjUK KyskYXNfZWNobyAiJGx0X2N2X2xkX2ZvcmNlX2xvYWQiID4mNjsgfQorKyAgICBjYXNlICRob3N0 X29zIGluCisrICAgIHJoYXBzb2R5KiB8IGRhcndpbjEuWzAxMl0pCisrICAgICAgX2x0X2Rhcl9h bGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OworKyAgICBk YXJ3aW4xLiopCisrICAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFt ZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OworKyAgICBkYXJ3aW4qKSAj IGRhcndpbiA1Lnggb24KKysgICAgICAjIGlmIHJ1bm5pbmcgb24gMTAuNSBvciBsYXRlciwgdGhl IGRlcGxveW1lbnQgdGFyZ2V0IGRlZmF1bHRzCisrICAgICAgIyB0byB0aGUgT1MgdmVyc2lvbiwg aWYgb24geDg2LCBhbmQgMTAuNCwgdGhlIGRlcGxveW1lbnQKKysgICAgICAjIHRhcmdldCBkZWZh dWx0cyB0byAxMC40LiBEb24ndCB5b3UgbG92ZSBpdD8KKysgICAgICBjYXNlICR7TUFDT1NYX0RF UExPWU1FTlRfVEFSR0VULTEwLjB9LCRob3N0IGluCisrCTEwLjAsKjg2Ki1kYXJ3aW44KnwxMC4w LCotZGFyd2luWzkxXSopCisrCSAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVm aW5lZCAke3dsfWR5bmFtaWNfbG9va3VwJyA7OworKwkxMC5bMDEyXSopCisrCSAgX2x0X2Rhcl9h bGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3ds fXN1cHByZXNzJyA7OworKwkxMC4qKQorKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3ds fS11bmRlZmluZWQgJHt3bH1keW5hbWljX2xvb2t1cCcgOzsKKysgICAgICBlc2FjCisrICAgIDs7 CisrICBlc2FjCisrICAgIGlmIHRlc3QgIiRsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kIiA9ICJ5 ZXMiOyB0aGVuCisrICAgICAgX2x0X2Rhcl9zaW5nbGVfbW9kPSckc2luZ2xlX21vZHVsZScKKysg ICAgZmkKKysgICAgaWYgdGVzdCAiJGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdCIgPSAi eWVzIjsgdGhlbgorKyAgICAgIF9sdF9kYXJfZXhwb3J0X3N5bXM9JyAke3dsfS1leHBvcnRlZF9z eW1ib2xzX2xpc3QsJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bScKKysg ICAgZWxzZQorKyAgICAgIF9sdF9kYXJfZXhwb3J0X3N5bXM9J34kTk1FRElUIC1zICRvdXRwdXRf b2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9JworKyAgICBmaQorKyAgICBp ZiB0ZXN0ICIkRFNZTVVUSUwiICE9ICI6IiAmJiB0ZXN0ICIkbHRfY3ZfbGRfZm9yY2VfbG9hZCIg PSAibm8iOyB0aGVuCisrICAgICAgX2x0X2RzeW11dGlsPSd+JERTWU1VVElMICRsaWIgfHwgOicK KysgICAgZWxzZQorKyAgICAgIF9sdF9kc3ltdXRpbD0KKysgICAgZmkKKysgICAgOzsKKysgIGVz YWMKKysKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0n JENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9 JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29u ZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBp bGVyX2dudQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yLi4uICIgPiY2OyB9CisrIyBPbiBTdW5z LCBzb21ldGltZXMgJENQUCBuYW1lcyBhIGRpcmVjdG9yeS4KKytpZiB0ZXN0IC1uICIkQ1BQIiAm JiB0ZXN0IC1kICIkQ1BQIjsgdGhlbgorKyAgQ1BQPQorK2ZpCisraWYgdGVzdCAteiAiJENQUCI7 IHRoZW4KKysgIGlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DUFArc2V0fSIgPSBzZXQ7IHRoZW4gOgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICAgICAgIyBEb3VibGUgcXVv dGVzIGJlY2F1c2UgQ1BQIG5lZWRzIHRvIGJlIGV4cGFuZGVkCisrICAgIGZvciBDUFAgaW4gIiRD QyAtRSIgIiRDQyAtRSAtdHJhZGl0aW9uYWwtY3BwIiAiL2xpYi9jcHAiCisrICAgIGRvCisrICAg ICAgYWNfcHJlcHJvY19vaz1mYWxzZQorK2ZvciBhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluICcn IHllcworK2RvCisrICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNv IGNvbmZpZ3VyaW5nIGdsaWJjCisrICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jr cy4KKysgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBk ZWZpbmVkLCBzaW5jZQorKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGlu ZyBjb21waWxlcnMuCisrICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91 Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAorKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5 bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCisrICBjYXQgY29uZmRlZnMu aCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLwor KyNpZmRlZiBfX1NURENfXworKyMgaW5jbHVkZSA8bGltaXRzLmg+CisrI2Vsc2UKKysjIGluY2x1 ZGUgPGFzc2VydC5oPgorKyNlbmRpZgorKwkJICAgICBTeW50YXggZXJyb3IKKytfQUNFT0YKKytp ZiBhY19mbl9jX3RyeV9jcHAgIiRMSU5FTk8iOyB0aGVuIDoKKysKKytlbHNlCisrICAjIEJyb2tl bjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCisrY29udGludWUKKytmaQorK3JtIC1mIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfZXh0CisrCisrICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAg Tm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycworKyAgIyBjYW4gYmUgZGV0ZWN0 ZWQgYW5kIGhvdy4KKysgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19l eHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+ CisrX0FDRU9GCisraWYgYWNfZm5fY190cnlfY3BwICIkTElORU5PIjsgdGhlbiA6CisrICAjIEJy b2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgorK2NvbnRpbnVlCisrZWxzZQorKyAgIyBQ YXNzZXMgYm90aCB0ZXN0cy4KKythY19wcmVwcm9jX29rPToKKyticmVhaworK2ZpCisrcm0gLWYg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKytkb25lCisrIyBCZWNhdXNlIG9mIGBi cmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCisr cm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKytpZiAkYWNfcHJlcHJvY19vazsg dGhlbiA6CisrICBicmVhaworK2ZpCisrCisrICAgIGRvbmUKKysgICAgYWNfY3ZfcHJvZ19DUFA9 JENQUAorKworK2ZpCisrICBDUFA9JGFjX2N2X3Byb2dfQ1BQCisrZWxzZQorKyAgYWNfY3ZfcHJv Z19DUFA9JENQUAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6ICRDUFAiID4mNQorKyRhc19lY2hvICIkQ1BQIiA+JjY7IH0KKythY19wcmVwcm9j X29rPWZhbHNlCisrZm9yIGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCisrZG8KKysg ICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcg Z2xpYmMKKysgICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgorKyAgIyBQcmVm ZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNl CisrICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4K KysgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGls ZXIncyBwYXJzZXIsCisrICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBp cyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KKysgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0Yg PmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2lmZGVmIF9fU1RE Q19fCisrIyBpbmNsdWRlIDxsaW1pdHMuaD4KKysjZWxzZQorKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+ CisrI2VuZGlmCisrCQkgICAgIFN5bnRheCBlcnJvcgorK19BQ0VPRgorK2lmIGFjX2ZuX2NfdHJ5 X2NwcCAiJExJTkVOTyI7IHRoZW4gOgorKworK2Vsc2UKKysgICMgQnJva2VuOiBmYWlscyBvbiB2 YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2ZpCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0 LiRhY19leHQKKysKKysgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hl dGhlciBub25leGlzdGVudCBoZWFkZXJzCisrICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93Lgor KyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KKytfQUNFT0YKKytp ZiBhY19mbl9jX3RyeV9jcHAgIiRMSU5FTk8iOyB0aGVuIDoKKysgICMgQnJva2VuOiBzdWNjZXNz IG9uIGludmFsaWQgaW5wdXQuCisrY29udGludWUKKytlbHNlCisrICAjIFBhc3NlcyBib3RoIHRl c3RzLgorK2FjX3ByZXByb2Nfb2s9OgorK2JyZWFrCisrZmkKKytybSAtZiBjb25mdGVzdC5lcnIg Y29uZnRlc3QuJGFjX2V4dAorKworK2RvbmUKKysjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BS RVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KKytybSAtZiBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX2V4dAorK2lmICRhY19wcmVwcm9jX29rOyB0aGVuIDoKKysKKytl bHNlCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6 IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNf cHdkJzoiID4mMjt9CisrYXNfZm5fZXJyb3IgJD8gIkMgcHJlcHJvY2Vzc29yIFwiJENQUFwiIGZh aWxzIHNhbml0eSBjaGVjaworK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMiICIk TElORU5PIiA1OyB9CisrZmkKKysKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1Mn CisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg PiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworKworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3RkYytzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNF T0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUg PHN0ZGxpYi5oPgorKyNpbmNsdWRlIDxzdGRhcmcuaD4KKysjaW5jbHVkZSA8c3RyaW5nLmg+Cisr I2luY2x1ZGUgPGZsb2F0Lmg+CisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJl dHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsg dGhlbiA6CisrICBhY19jdl9oZWFkZXJfc3RkYz15ZXMKKytlbHNlCisrICBhY19jdl9oZWFkZXJf c3RkYz1ubworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdC4kYWNfZXh0CisrCisraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7 IHRoZW4KKysgICMgU3VuT1MgNC54IHN0cmluZy5oIGRvZXMgbm90IGRlY2xhcmUgbWVtKiwgY29u dHJhcnkgdG8gQU5TSS4KKysgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRh Y19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPHN0cmluZy5oPgorKwor K19BQ0VPRgorK2lmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKKysg ICRFR1JFUCAibWVtY2hyIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOgorKworK2Vsc2UKKysgIGFj X2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBjb25mdGVzdCoKKysKKytmaQorKworK2lm IHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisrICAjIElTQyAyLjAuMiBzdGRs aWIuaCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRvIEFOU0kuCisrICBjYXQgY29u ZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmgu ICAqLworKyNpbmNsdWRlIDxzdGRsaWIuaD4KKysKKytfQUNFT0YKKytpZiAoZXZhbCAiJGFjX2Nw cCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8CisrICAkRUdSRVAgImZyZWUiID4vZGV2L251bGwg Mj4mMTsgdGhlbiA6CisrCisrZWxzZQorKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KKytmaQorK3Jt IC1mIGNvbmZ0ZXN0KgorKworK2ZpCisrCisraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5 ZXM7IHRoZW4KKysgICMgL2Jpbi9jYyBpbiBJcml4LTQuMC41IGdldHMgbm9uLUFOU0kgY3R5cGUg bWFjcm9zIHVubGVzcyB1c2luZyAtYW5zaS4KKysgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmci ID0geWVzOyB0aGVuIDoKKysgIDoKKytlbHNlCisrICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9G ID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxj dHlwZS5oPgorKyNpbmNsdWRlIDxzdGRsaWIuaD4KKysjaWYgKCgnICcgJiAweDBGRikgPT0gMHgw MjApCisrIyBkZWZpbmUgSVNMT1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ3onKQorKyMg ZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAnQScgKyAoKGMpIC0gJ2EnKSA6IChjKSkK KysjZWxzZQorKyMgZGVmaW5lIElTTE9XRVIoYykgXAorKwkJICAgKCgnYScgPD0gKGMpICYmIChj KSA8PSAnaScpIFwKKysJCSAgICAgfHwgKCdqJyA8PSAoYykgJiYgKGMpIDw9ICdyJykgXAorKwkJ ICAgICB8fCAoJ3MnIDw9IChjKSAmJiAoYykgPD0gJ3onKSkKKysjIGRlZmluZSBUT1VQUEVSKGMp IChJU0xPV0VSKGMpID8gKChjKSB8IDB4NDApIDogKGMpKQorKyNlbmRpZgorKworKyNkZWZpbmUg WE9SKGUsIGYpICgoKGUpICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCisraW50CisrbWFpbiAo KQorK3sKKysgIGludCBpOworKyAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQorKyAgICBpZiAo WE9SIChpc2xvd2VyIChpKSwgSVNMT1dFUiAoaSkpCisrCXx8IHRvdXBwZXIgKGkpICE9IFRPVVBQ RVIgKGkpKQorKyAgICAgIHJldHVybiAyOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lm IGFjX2ZuX2NfdHJ5X3J1biAiJExJTkVOTyI7IHRoZW4gOgorKworK2Vsc2UKKysgIGFjX2N2X2hl YWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBjb3JlICouY29yZSBjb3JlLmNvbmZ0ZXN0LiogZ21v bi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBcCisrICBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0LmJlYW0gY29uZnRlc3QuJGFjX2V4dAorK2ZpCisrCisrZmkKKytmaQorK3sgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfaGVhZGVy X3N0ZGMiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNjsgfQorK2lmIHRl c3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisrCisrJGFzX2VjaG8gIiNkZWZpbmUg U1REQ19IRUFERVJTIDEiID4+Y29uZmRlZnMuaAorKworK2ZpCisrCisrIyBPbiBJUklYIDUuMywg c3lzL3R5cGVzIGFuZCBpbnR0eXBlcy5oIGFyZSBjb25mbGljdGluZy4KKytmb3IgYWNfaGVhZGVy IGluIHN5cy90eXBlcy5oIHN5cy9zdGF0Lmggc3RkbGliLmggc3RyaW5nLmggbWVtb3J5Lmggc3Ry aW5ncy5oIFwKKysJCSAgaW50dHlwZXMuaCBzdGRpbnQuaCB1bmlzdGQuaAorK2RvIDoKKysgIGFz X2FjX0hlYWRlcj1gJGFzX2VjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9z aGAKKythY19mbl9jX2NoZWNrX2hlYWRlcl9jb21waWxlICIkTElORU5PIiAiJGFjX2hlYWRlciIg IiRhc19hY19IZWFkZXIiICIkYWNfaW5jbHVkZXNfZGVmYXVsdAorKyIKKytpZiBldmFsIHRlc3Qg XCJ4XCQiJGFzX2FjX0hlYWRlciJcIiA9IHgieWVzIjsgdGhlbiA6CisrICBjYXQgPj5jb25mZGVm cy5oIDw8X0FDRU9GCisrI2RlZmluZSBgJGFzX2VjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNf dHJfY3BwYCAxCisrX0FDRU9GCisrCisrZmkKKysKKytkb25lCisrCisrCisrZm9yIGFjX2hlYWRl ciBpbiBkbGZjbi5oCisrZG8gOgorKyAgYWNfZm5fY19jaGVja19oZWFkZXJfY29tcGlsZSAiJExJ TkVOTyIgImRsZmNuLmgiICJhY19jdl9oZWFkZXJfZGxmY25faCIgIiRhY19pbmNsdWRlc19kZWZh dWx0CisrIgorK2lmIHRlc3QgIngkYWNfY3ZfaGVhZGVyX2RsZmNuX2giID0geCIieWVzOyB0aGVu IDoKKysgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKysjZGVmaW5lIEhBVkVfRExGQ05fSCAx CisrX0FDRU9GCisrCisrZmkKKysKKytkb25lCisrCisrCisrCisrCisrCisrCisrIyBTZXQgb3B0 aW9ucworKworKworKworKyAgICAgICAgZW5hYmxlX2Rsb3Blbj1ubworKworKworKyAgZW5hYmxl X3dpbjMyX2RsbD1ubworKworKworKworKworKworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtcGlj IHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfcGljK3NldH0iID0gc2V0OyB0aGVuIDoKKysg IHdpdGh2YWw9JHdpdGhfcGljOyBwaWNfbW9kZT0iJHdpdGh2YWwiCisrZWxzZQorKyAgcGljX21v ZGU9ZGVmYXVsdAorK2ZpCisrCisrCisrdGVzdCAteiAiJHBpY19tb2RlIiAmJiBwaWNfbW9kZT1k ZWZhdWx0CisrCisrCisrCisrCisrCisrCisrCisrICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUt ZmFzdC1pbnN0YWxsIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9mYXN0X2luc3RhbGwr c2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgZW5hYmxldmFsPSRlbmFibGVfZmFzdF9pbnN0YWxsOyBw PSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2YWwgaW4KKysgICAgeWVzKSBl bmFibGVfZmFzdF9pbnN0YWxsPXllcyA7OworKyAgICBubykgZW5hYmxlX2Zhc3RfaW5zdGFsbD1u byA7OworKyAgICAqKQorKyAgICAgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KKysgICAgICAjIExv b2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNl cGFyYXRvcnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NF UEFSQVRPUiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworKwlJRlM9IiRsdF9z YXZlX2lmcyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KKysJICBlbmFibGVfZmFz dF9pbnN0YWxsPXllcworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRsdF9zYXZlX2lm cyIKKysgICAgICA7OworKyAgICBlc2FjCisrZWxzZQorKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD15 ZXMKKytmaQorKworKworKworKworKworKworKworKworKworKworKworKyMgVGhpcyBjYW4gYmUg dXNlZCB0byByZWJ1aWxkIGxpYnRvb2wgd2hlbiBuZWVkZWQKKytMSUJUT09MX0RFUFM9IiRsdG1h aW4iCisrCisrIyBBbHdheXMgdXNlIG91ciBvd24gbGlidG9vbC4KKytMSUJUT09MPSckKFNIRUxM KSAkKHRvcF9idWlsZGRpcikvbGlidG9vbCcKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKyt0ZXN0IC16 ICIkTE5fUyIgJiYgTE5fUz0ibG4gLXMiCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisraWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4KKysgICBz ZXRvcHQgTk9fR0xPQl9TVUJTVAorK2ZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Igb2JqZGlyIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyBmb3Igb2JqZGlyLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9vYmpkaXIrc2V0 fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBybSAtZiAubGlicyAyPi9kZXYvbnVsbAorK21rZGlyIC5saWJzIDI+L2Rldi9udWxsCisraWYg dGVzdCAtZCAubGliczsgdGhlbgorKyAgbHRfY3Zfb2JqZGlyPS5saWJzCisrZWxzZQorKyAgIyBN Uy1ET1MgZG9lcyBub3QgYWxsb3cgZmlsZW5hbWVzIHRoYXQgYmVnaW4gd2l0aCBhIGRvdC4KKysg IGx0X2N2X29iamRpcj1fbGlicworK2ZpCisrcm1kaXIgLmxpYnMgMj4vZGV2L251bGwKKytmaQor K3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRfY3Zf b2JqZGlyIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X29iamRpciIgPiY2OyB9Cisrb2JqZGlyPSRs dF9jdl9vYmpkaXIKKysKKysKKysKKysKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisr I2RlZmluZSBMVF9PQkpESVIgIiRsdF9jdl9vYmpkaXIvIgorK19BQ0VPRgorKworKworKworKwor K2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgzKikKKysgICMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxl bXMgd2l0aCB0aGUgR0NDIGNvbGxlY3QyIHByb2dyYW0uICBGb3Igc29tZQorKyAgIyByZWFzb24s IGlmIHdlIHNldCB0aGUgQ09MTEVDVF9OQU1FUyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHBy b2JsZW1zCisrICAjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCisrICBpZiB0ZXN0ICJYJHtD T0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7IHRoZW4KKysgICAgQ09MTEVDVF9OQU1FUz0KKysg ICAgZXhwb3J0IENPTExFQ1RfTkFNRVMKKysgIGZpCisrICA7OworK2VzYWMKKysKKysjIEdsb2Jh bCB2YXJpYWJsZXM6Cisrb2ZpbGU9bGlidG9vbAorK2Nhbl9idWlsZF9zaGFyZWQ9eWVzCisrCisr IyBBbGwga25vd24gbGlua2VycyByZXF1aXJlIGEgYC5hJyBhcmNoaXZlIGZvciBzdGF0aWMgbGlu a2luZyAoZXhjZXB0IE1TVkMsCisrIyB3aGljaCBuZWVkcyAnLmxpYicpLgorK2xpYmV4dD1hCisr Cisrd2l0aF9nbnVfbGQ9IiRsdF9jdl9wcm9nX2dudV9sZCIKKysKKytvbGRfQ0M9IiRDQyIKKytv bGRfQ0ZMQUdTPSIkQ0ZMQUdTIgorKworKyMgU2V0IHNhbmUgZGVmYXVsdHMgZm9yIHZhcmlvdXMg dmFyaWFibGVzCisrdGVzdCAteiAiJENDIiAmJiBDQz1jYworK3Rlc3QgLXogIiRMVENDIiAmJiBM VENDPSRDQworK3Rlc3QgLXogIiRMVENGTEFHUyIgJiYgTFRDRkxBR1M9JENGTEFHUworK3Rlc3Qg LXogIiRMRCIgJiYgTEQ9bGQKKyt0ZXN0IC16ICIkYWNfb2JqZXh0IiAmJiBhY19vYmpleHQ9bwor KworK2ZvciBjY190ZW1wIGluICRjb21waWxlciIiOyBkbworKyAgY2FzZSAkY2NfdGVtcCBpbgor KyAgICBjb21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7 CisrICAgIGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlmeSB8ICpbXFwvXXB1cmlmeSApIDs7 CisrICAgIFwtKikgOzsKKysgICAgKikgYnJlYWs7OworKyAgZXNhYworK2RvbmUKKytjY19iYXNl bmFtZT1gJEVDSE8gIiRjY190ZW1wIiB8ICRTRUQgInMlLiovJSU7IHMlXiRob3N0X2FsaWFzLSUl ImAKKysKKysKKysjIE9ubHkgcGVyZm9ybSB0aGUgY2hlY2sgZm9yIGZpbGUsIGlmIHRoZSBjaGVj ayBtZXRob2QgcmVxdWlyZXMgaXQKKyt0ZXN0IC16ICIkTUFHSUNfQ01EIiAmJiBNQUdJQ19DTUQ9 ZmlsZQorK2Nhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrZmlsZV9tYWdpYyopCisrICBp ZiB0ZXN0ICIkZmlsZV9tYWdpY19jbWQiID0gJyRNQUdJQ19DTUQnOyB0aGVuCisrICAgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICR7YWNfdG9v bF9wcmVmaXh9ZmlsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICR7YWNfdG9vbF9w cmVmaXh9ZmlsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcGF0aF9NQUdJQ19DTUQr c2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrICBjYXNlICRNQUdJQ19DTUQgaW4KKytbXFwvKl0gfCAgPzpbXFwvXSopCisrICBsdF9jdl9w YXRoX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRl c3Qgd2l0aCBhIHBhdGguCisrICA7OworKyopCisrICBsdF9zYXZlX01BR0lDX0NNRD0iJE1BR0lD X0NNRCIKKysgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorKyAgYWNf ZHVtbXk9Ii91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgiCisrICBmb3IgYWNfZGlyIGluICRh Y19kdW1teTsgZG8KKysgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgIHRlc3QgLXogIiRhY19k aXIiICYmIGFjX2Rpcj0uCisrICAgIGlmIHRlc3QgLWYgJGFjX2Rpci8ke2FjX3Rvb2xfcHJlZml4 fWZpbGU7IHRoZW4KKysgICAgICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJGFjX2Rpci8ke2FjX3Rv b2xfcHJlZml4fWZpbGUiCisrICAgICAgaWYgdGVzdCAtbiAiJGZpbGVfbWFnaWNfdGVzdF9maWxl IjsgdGhlbgorKwljYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgorKwkiZmlsZV9tYWdpYyAi KikKKysJICBmaWxlX21hZ2ljX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDog ImZpbGVfbWFnaWMgXCguKlwpImAKKysJICBNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NN RCIKKysJICBpZiBldmFsICRmaWxlX21hZ2ljX2NtZCBcJGZpbGVfbWFnaWNfdGVzdF9maWxlIDI+ IC9kZXYvbnVsbCB8CisrCSAgICAkRUdSRVAgIiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVs bDsgdGhlbgorKwkgICAgOgorKwkgIGVsc2UKKysJICAgIGNhdCA8PF9MVF9FT0YgMT4mMgorKwor KyoqKiBXYXJuaW5nOiB0aGUgY29tbWFuZCBsaWJ0b29sIHVzZXMgdG8gZGV0ZWN0IHNoYXJlZCBs aWJyYXJpZXMsCisrKioqICRmaWxlX21hZ2ljX2NtZCwgcHJvZHVjZXMgb3V0cHV0IHRoYXQgbGli dG9vbCBjYW5ub3QgcmVjb2duaXplLgorKyoqKiBUaGUgcmVzdWx0IGlzIHRoYXQgbGlidG9vbCBt YXkgZmFpbCB0byByZWNvZ25pemUgc2hhcmVkIGxpYnJhcmllcworKyoqKiBhcyBzdWNoLiAgVGhp cyB3aWxsIGFmZmVjdCB0aGUgY3JlYXRpb24gb2YgbGlidG9vbCBsaWJyYXJpZXMgdGhhdAorKyoq KiBkZXBlbmQgb24gc2hhcmVkIGxpYnJhcmllcywgYnV0IHByb2dyYW1zIGxpbmtlZCB3aXRoIHN1 Y2ggbGlidG9vbAorKyoqKiBsaWJyYXJpZXMgd2lsbCB3b3JrIHJlZ2FyZGxlc3Mgb2YgdGhpcyBw cm9ibGVtLiAgTmV2ZXJ0aGVsZXNzLCB5b3UKKysqKiogbWF5IHdhbnQgdG8gcmVwb3J0IHRoZSBw cm9ibGVtIHRvIHlvdXIgc3lzdGVtIG1hbmFnZXIgYW5kL29yIHRvCisrKioqIGJ1Zy1saWJ0b29s QGdudS5vcmcKKysKKytfTFRfRU9GCisrCSAgZmkgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAg ICAgYnJlYWsKKysgICAgZmkKKysgIGRvbmUKKysgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgTUFH SUNfQ01EPSIkbHRfc2F2ZV9NQUdJQ19DTUQiCisrICA7OworK2VzYWMKKytmaQorKworK01BR0lD X0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgorK2lmIHRlc3QgLW4gIiRNQUdJQ19DTUQiOyB0 aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog JE1BR0lDX0NNRCIgPiY1CisrJGFzX2VjaG8gIiRNQUdJQ19DTUQiID4mNjsgfQorK2Vsc2UKKysg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1 CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKworKworKworK2lmIHRlc3QgLXog IiRsdF9jdl9wYXRoX01BR0lDX0NNRCI7IHRoZW4KKysgIGlmIHRlc3QgLW4gIiRhY190b29sX3By ZWZpeCI7IHRoZW4KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBjaGVja2luZyBmb3IgZmlsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGZpbGUu Li4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3BhdGhfTUFHSUNfQ01EK3NldH0iID0gc2V0 OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2FzZSAk TUFHSUNfQ01EIGluCisrW1xcLypdIHwgID86W1xcL10qKQorKyAgbHRfY3ZfcGF0aF9NQUdJQ19D TUQ9IiRNQUdJQ19DTUQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBw YXRoLgorKyAgOzsKKysqKQorKyAgbHRfc2F2ZV9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiCisrICBs dF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKysgIGFjX2R1bW15PSIvdXNy L2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRIIgorKyAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRv CisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19k aXI9LgorKyAgICBpZiB0ZXN0IC1mICRhY19kaXIvZmlsZTsgdGhlbgorKyAgICAgIGx0X2N2X3Bh dGhfTUFHSUNfQ01EPSIkYWNfZGlyL2ZpbGUiCisrICAgICAgaWYgdGVzdCAtbiAiJGZpbGVfbWFn aWNfdGVzdF9maWxlIjsgdGhlbgorKwljYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgorKwki ZmlsZV9tYWdpYyAiKikKKysJICBmaWxlX21hZ2ljX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVj a19tZXRob2QiIDogImZpbGVfbWFnaWMgXCguKlwpImAKKysJICBNQUdJQ19DTUQ9IiRsdF9jdl9w YXRoX01BR0lDX0NNRCIKKysJICBpZiBldmFsICRmaWxlX21hZ2ljX2NtZCBcJGZpbGVfbWFnaWNf dGVzdF9maWxlIDI+IC9kZXYvbnVsbCB8CisrCSAgICAkRUdSRVAgIiRmaWxlX21hZ2ljX3JlZ2V4 IiA+IC9kZXYvbnVsbDsgdGhlbgorKwkgICAgOgorKwkgIGVsc2UKKysJICAgIGNhdCA8PF9MVF9F T0YgMT4mMgorKworKyoqKiBXYXJuaW5nOiB0aGUgY29tbWFuZCBsaWJ0b29sIHVzZXMgdG8gZGV0 ZWN0IHNoYXJlZCBsaWJyYXJpZXMsCisrKioqICRmaWxlX21hZ2ljX2NtZCwgcHJvZHVjZXMgb3V0 cHV0IHRoYXQgbGlidG9vbCBjYW5ub3QgcmVjb2duaXplLgorKyoqKiBUaGUgcmVzdWx0IGlzIHRo YXQgbGlidG9vbCBtYXkgZmFpbCB0byByZWNvZ25pemUgc2hhcmVkIGxpYnJhcmllcworKyoqKiBh cyBzdWNoLiAgVGhpcyB3aWxsIGFmZmVjdCB0aGUgY3JlYXRpb24gb2YgbGlidG9vbCBsaWJyYXJp ZXMgdGhhdAorKyoqKiBkZXBlbmQgb24gc2hhcmVkIGxpYnJhcmllcywgYnV0IHByb2dyYW1zIGxp bmtlZCB3aXRoIHN1Y2ggbGlidG9vbAorKyoqKiBsaWJyYXJpZXMgd2lsbCB3b3JrIHJlZ2FyZGxl c3Mgb2YgdGhpcyBwcm9ibGVtLiAgTmV2ZXJ0aGVsZXNzLCB5b3UKKysqKiogbWF5IHdhbnQgdG8g cmVwb3J0IHRoZSBwcm9ibGVtIHRvIHlvdXIgc3lzdGVtIG1hbmFnZXIgYW5kL29yIHRvCisrKioq IGJ1Zy1saWJ0b29sQGdudS5vcmcKKysKKytfTFRfRU9GCisrCSAgZmkgOzsKKysJZXNhYworKyAg ICAgIGZpCisrICAgICAgYnJlYWsKKysgICAgZmkKKysgIGRvbmUKKysgIElGUz0iJGx0X3NhdmVf aWZzIgorKyAgTUFHSUNfQ01EPSIkbHRfc2F2ZV9NQUdJQ19DTUQiCisrICA7OworK2VzYWMKKytm aQorKworK01BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgorK2lmIHRlc3QgLW4gIiRN QUdJQ19DTUQiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogJE1BR0lDX0NNRCIgPiY1CisrJGFzX2VjaG8gIiRNQUdJQ19DTUQiID4mNjsg fQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyAgZWxzZQor KyAgICBNQUdJQ19DTUQ9OgorKyAgZmkKKytmaQorKworKyAgZmkKKysgIDs7CisrZXNhYworKwor KyMgVXNlIEMgZm9yIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gaW4gdGhlIGxpYnRvb2wgc2Ny aXB0CisrCisrbHRfc2F2ZV9DQz0iJENDIgorK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBG TEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj X2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRD UFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxl cl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisrCisrIyBTb3VyY2UgZmlsZSBleHRlbnNp b24gZm9yIEMgdGVzdCBzb3VyY2VzLgorK2FjX2V4dD1jCisrCisrIyBPYmplY3QgZmlsZSBleHRl bnNpb24gZm9yIGNvbXBpbGVkIEMgdGVzdCBzb3VyY2VzLgorK29iamV4dD1vCisrb2JqZXh0PSRv YmpleHQKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworK2x0 X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iaW50IHNvbWVfdmFyaWFibGUgPSAwOyIKKysKKysj IENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworK2x0X3NpbXBsZV9saW5rX3Rl c3RfY29kZT0naW50IG1haW4oKXtyZXR1cm4oMCk7fScKKysKKysKKysKKysKKysKKysKKysKKysj IElmIG5vIEMgY29tcGlsZXIgd2FzIHNwZWNpZmllZCwgdXNlIENDLgorK0xUQ0M9JHtMVENDLSIk Q0MifQorKworKyMgSWYgbm8gQyBjb21waWxlciBmbGFncyB3ZXJlIHNwZWNpZmllZCwgdXNlIENG TEFHUy4KKytMVENGTEFHUz0ke0xUQ0ZMQUdTLSIkQ0ZMQUdTIn0KKysKKysjIEFsbG93IENDIHRv IGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorK2NvbXBpbGVyPSRDQworKworKyMg U2F2ZSB0aGUgZGVmYXVsdCBjb21waWxlciwgc2luY2UgaXQgZ2V0cyBvdmVyd3JpdHRlbiB3aGVu IHRoZSBvdGhlcgorKyMgdGFncyBhcmUgYmVpbmcgdGVzdGVkLCBhbmQgX0xUX1RBR1ZBUihjb21w aWxlciwgW10pIGlzIGEgTk9QLgorK2NvbXBpbGVyX0RFRkFVTFQ9JENDCisrCisrIyBzYXZlIHdh cm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKKythY19vdXRmaWxlPWNvbmZ0 ZXN0LiRhY19vYmpleHQKKytlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+Y29u ZnRlc3QuJGFjX2V4dAorK2V2YWwgIiRhY19jb21waWxlIiAyPiYxID4vZGV2L251bGwgfCAkU0VE ICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgorK19sdF9jb21waWxlcl9ib2lsZXJwbGF0 ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKyskUk0gY29uZnRlc3QqCisrCisrYWNfb3V0ZmlsZT1jb25m dGVzdC4kYWNfb2JqZXh0CisrZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPmNvbmZ0 ZXN0LiRhY19leHQKKytldmFsICIkYWNfbGluayIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14k L2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIKKytfbHRfbGlua2VyX2JvaWxlcnBsYXRlPWBjYXQg Y29uZnRlc3QuZXJyYAorKyRSTSAtciBjb25mdGVzdCoKKysKKysKKysjIyBDQVZFQVQgRU1QVE9S OgorKyMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFj cm9zLCBkbyBub3QgY2hhbmdlCisrIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1v dmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKKysjIyB3aGF0IHlvdSBhcmUg ZG9pbmcuLi4KKytpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCisrCisrbHRfcHJvZ19jb21w aWxlcl9ub19idWlsdGluX2ZsYWc9CisrCisraWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysg IGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICBudmNjKikKKysgICAgbHRfcHJvZ19jb21waWxlcl9u b19idWlsdGluX2ZsYWc9JyAtWGNvbXBpbGVyIC1mbm8tYnVpbHRpbicgOzsKKysgICopCisrICAg IGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnPScgLWZuby1idWlsdGluJyA7OworKyAg ZXNhYworKworKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1mbm8tcnR0aSAt Zm5vLWV4Y2VwdGlvbnMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGls ZXJfcnR0aV9leGNlcHRpb25zK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlv bnM9bm8KKysgICBhY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKysgICBlY2hvICIkbHRf c2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgICBsdF9jb21w aWxlcl9mbGFnPSItZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIgorKyAgICMgSW5zZXJ0IHRoZSBv cHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAg IyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhl IGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFp biBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBh IGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKysgICAjIFRoZSBv cHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2Vk LgorKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAorKyAgIC1lICdz Oi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKKysgICAtZSAnczog W14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCisrICAgLWUgJ3M6JDog JGx0X2NvbXBpbGVyX2ZsYWc6J2AKKysgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzog JGx0X2NvbXBpbGVcIiIgPiY1KQorKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5l cnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICBlY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAgaWYgKGV4aXQgJGFj X3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCisrICAgICAjIFRoZSBjb21w aWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXpl ZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVyIHRoYW4gdGhl IHVzdWFsIG91dHB1dC4KKysgICAgICRFQ0hPICIkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8 ICRTRUQgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcg Y29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKKysgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5l cjIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysg ICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnM9eWVzCisrICAgICBmaQor KyAgIGZpCisrICAgJFJNIGNvbmZ0ZXN0KgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhj ZXB0aW9ucyIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0 aW9ucyIgPiY2OyB9CisrCisraWYgdGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhj ZXB0aW9ucyIgPSB4eWVzOyB0aGVuCisrICAgIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9m bGFnPSIkbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcgLWZuby1ydHRpIC1mbm8tZXhj ZXB0aW9ucyIKKytlbHNlCisrICAgIDoKKytmaQorKworK2ZpCisrCisrCisrCisrCisrCisrCisr ICBsdF9wcm9nX2NvbXBpbGVyX3dsPQorK2x0X3Byb2dfY29tcGlsZXJfcGljPQorK2x0X3Byb2df Y29tcGlsZXJfc3RhdGljPQorKworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogY2hlY2tpbmcgZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUMiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElD Li4uICIgPiY2OyB9CisrCisrICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgICBsdF9w cm9nX2NvbXBpbGVyX3dsPSctV2wsJworKyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLXN0 YXRpYycKKysKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeCopCisrICAgICAgIyBB bGwgQUlYIGNvZGUgaXMgUElDLgorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0 aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisrCWx0X3Byb2dfY29t cGlsZXJfc3RhdGljPSctQnN0YXRpYycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFt aWdhb3MqKQorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgcG93ZXJwYykKKysgICAg ICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisrICAgICAg ICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mUElDJworKyAgICAgICAgOzsKKysgICAgICBt NjhrKQorKyAgICAgICAgICAgICMgRklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0 byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLCBidXQKKysgICAgICAgICAgICAjIGFkZGluZyB0aGUg YC1tNjgwMjAnIGZsYWcgdG8gR0NDIHByZXZlbnRzIGJ1aWxkaW5nIGFueXRoaW5nIGJldHRlciwK KysgICAgICAgICAgICAjIGxpa2UgYC1tNjgwNDAnLgorKyAgICAgICAgICAgIGx0X3Byb2dfY29t cGlsZXJfcGljPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCisrICAg ICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBiZW9zKiB8IGlyaXg1KiB8 IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICAgICAgIyBQ SUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMuCisrICAgICAgOzsKKysKKysgICAgbWlu Z3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKiB8IGNlZ2NjKikKKysgICAgICAjIFRoaXMgaGFj ayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5n CisrICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9y dCBzeW1ib2xzIGZvciBleGFtcGxlKS4KKysgICAgICAjIEFsdGhvdWdoIHRoZSBjeWd3aW4gZ2Nj IGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBmb3Igb2xkLXN0eWxlCisrICAgICAgIyAo LS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMKKysgICAgICBsdF9wcm9nX2NvbXBpbGVy X3BpYz0nLURETExfRVhQT1JUJworKyAgICAgIDs7CisrCisrICAgIGRhcndpbiogfCByaGFwc29k eSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQorKyAgICAg ICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKKysgICAgICBs dF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZuby1jb21tb24nCisrICAgICAgOzsKKysKKysgICAgaGFp a3UqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciBIYWlrdS4KKysgICAgICAjIFRo ZSAiLXN0YXRpYyIgZmxhZyBleGlzdHMsIGJ1dCBpcyBicm9rZW4uCisrICAgICAgbHRfcHJvZ19j b21waWxlcl9zdGF0aWM9CisrICAgICAgOzsKKysKKysgICAgaHB1eCopCisrICAgICAgIyBQSUMg aXMgdGhlIGRlZmF1bHQgZm9yIDY0LWJpdCBQQSBIUC1VWCwgYnV0IG5vdCBmb3IgMzItYml0Cisr ICAgICAgIyBQQSBIUC1VWC4gIE9uIElBNjQgSFAtVVgsIFBJQyBpcyB0aGUgZGVmYXVsdCBidXQg dGhlIHBpYyBmbGFnCisrICAgICAgIyBzZXRzIHRoZSBkZWZhdWx0IFRMUyBtb2RlbCBhbmQgYWZm ZWN0cyBpbmxpbmluZy4KKysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgIGhwcGEqNjQq KQorKwkjICtaIHRoZSBkZWZhdWx0CisrCTs7CisrICAgICAgKikKKysJbHRfcHJvZ19jb21waWxl cl9waWM9Jy1mUElDJworKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBpbnRl cml4WzMtOV0qKQorKyAgICAgICMgSW50ZXJpeCAzLnggZ2NjIC1mcGljLy1mUElDIG9wdGlvbnMg Z2VuZXJhdGUgYnJva2VuIGNvZGUuCisrICAgICAgIyBJbnN0ZWFkLCB3ZSByZWxvY2F0ZSBzaGFy ZWQgbGlicmFyaWVzIGF0IHJ1bnRpbWUuCisrICAgICAgOzsKKysKKysgICAgbXNkb3NkamdwcCop CisrICAgICAgIyBKdXN0IGJlY2F1c2Ugd2UgdXNlIEdDQyBkb2Vzbid0IG1lYW4gd2Ugc3VkZGVu bHkgZ2V0IHNoYXJlZCBsaWJyYXJpZXMKKysgICAgICAjIG9uIHN5c3RlbXMgdGhhdCBkb24ndCBz dXBwb3J0IHRoZW0uCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkPW5v CisrICAgICAgZW5hYmxlX3NoYXJlZD1ubworKyAgICAgIDs7CisrCisrICAgICpudG8qIHwgKnFu eCopCisrICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJl ZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKysgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCisrICAg ICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mUElDIC1zaGFyZWQnCisrICAgICAgOzsKKysKKysg ICAgc3lzdjQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKysJbHRfcHJv Z19jb21waWxlcl9waWM9LUtjb25mb3JtX3BpYworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysg ICAgKikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZQSUMnCisrICAgICAgOzsKKysg ICAgZXNhYworKworKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICBudmNjKikgIyBDdWRh IENvbXBpbGVyIERyaXZlciAyLjIKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctWGxpbmtl ciAnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1YY29tcGlsZXIgLWZQSUMnCisrICAg ICAgOzsKKysgICAgZXNhYworKyAgZWxzZQorKyAgICAjIFBPUlRNRSBDaGVjayBmb3IgZmxhZyB0 byBwYXNzIGxpbmtlciBmbGFncyB0aHJvdWdoIHRoZSBzeXN0ZW0gY29tcGlsZXIuCisrICAgIGNh c2UgJGhvc3Rfb3MgaW4KKysgICAgYWl4KikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSct V2wsJworKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUg bm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSct QnN0YXRpYycKKysgICAgICBlbHNlCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctYm5zbyAt Ykk6L2xpYi9zeXNjYWxscy5leHAnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBtaW5n dyogfCBjeWd3aW4qIHwgcHczMiogfCBvczIqIHwgY2VnY2MqKQorKyAgICAgICMgVGhpcyBoYWNr IGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcK KysgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0 IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctRERM TF9FWFBPUlQnCisrICAgICAgOzsKKysKKysgICAgaHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSop CisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAgICAjIFBJQyBpcyB0aGUg ZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKKysgICAgICAjIG5v dCBmb3IgUEEgSFAtVVguCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0 KnxpYTY0KikKKysJIyArWiB0aGUgZGVmYXVsdAorKwk7OworKyAgICAgICopCisrCWx0X3Byb2df Y29tcGlsZXJfcGljPScrWicKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgIyBJcyB0aGVyZSBh IGJldHRlciBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyB0aGF0IHdvcmtzIHdpdGggdGhlIGJ1bmRs ZWQgQ0M/CisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9JyR7d2x9LWEgJHt3bH1hcmNo aXZlJworKyAgICAgIDs7CisrCisrICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisr ICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAgICAjIFBJQyAod2l0aCAtS1BJ QykgaXMgdGhlIGRlZmF1bHQuCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1ub25f c2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNv bGFyaXMqLWdudSkKKysgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICMgb2xkIElu dGVsIGZvciB4ODZfNjQgd2hpY2ggc3RpbGwgc3VwcG9ydGVkIC1LUElDLgorKyAgICAgIGVjYyop CisrCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPSct S1BJQycKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1zdGF0aWMnCisrICAgICAgICA7Owor KyAgICAgICMgaWNjIHVzZWQgdG8gYmUgaW5jb21wYXRpYmxlIHdpdGggR0NDLgorKyAgICAgICMg SUNDIDEwIGRvZXNuJ3QgYWNjZXB0IC1LUElDIGFueSBtb3JlLgorKyAgICAgIGljYyogfCBpZm9y dCopCisrCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrCWx0X3Byb2dfY29tcGlsZXJfcGlj PSctZlBJQycKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1zdGF0aWMnCisrICAgICAgICA7 OworKyAgICAgICMgTGFoZXkgRm9ydHJhbiA4LjEuCisrICAgICAgbGY5NSopCisrCWx0X3Byb2df Y29tcGlsZXJfd2w9Jy1XbCwnCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPSctLXNoYXJlZCcKKysJ bHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy0tc3RhdGljJworKwk7OworKyAgICAgIHBnY2MqIHwg cGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqIHwgcGdmb3J0cmFuKikKKysgICAgICAgICMgUG9ydGxh bmQgR3JvdXAgY29tcGlsZXJzICgqbm90KiB0aGUgUGVudGl1bSBnY2MgY29tcGlsZXIsCisrCSMg d2hpY2ggbG9va3MgdG8gYmUgYSBkZWFkIHByb2plY3QpCisrCWx0X3Byb2dfY29tcGlsZXJfd2w9 Jy1XbCwnCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPSctZnBpYycKKysJbHRfcHJvZ19jb21waWxl cl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgICAgOzsKKysgICAgICBjY2MqKQorKyAgICAgICAg bHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAgICAgICMgQWxsIEFscGhhIGNvZGUgaXMg UElDLgorKyAgICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1ub25fc2hhcmVkJworKyAg ICAgICAgOzsKKysgICAgICB4bCogfCBiZ3hsKiB8IGJnZiogfCBtcGl4bCopCisrCSMgSUJNIFhM IEMgOC4wL0ZvcnRyYW4gMTAuMSwgMTEuMSBvbiBQUEMgYW5kIEJsdWVHZW5lCisrCWx0X3Byb2df Y29tcGlsZXJfd2w9Jy1XbCwnCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPSctcXBpYycKKysJbHRf cHJvZ19jb21waWxlcl9zdGF0aWM9Jy1xc3RhdGljbGluaycKKysJOzsKKysgICAgICAqKQorKwlj YXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysJKlN1blwgRiogfCAqU3VuKkZvcnRyYW4q KQorKwkgICMgU3VuIEZvcnRyYW4gOC4zIHBhc3NlcyBhbGwgdW5yZWNvZ25pemVkIGZsYWdzIHRv IHRoZSBsaW5rZXIKKysJICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCisrCSAgbHRfcHJv Z19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKwkgIGx0X3Byb2dfY29tcGlsZXJfd2w9JycK KysJICA7OworKwkqU3VuXCBDKikKKysJICAjIFN1biBDIDUuOQorKwkgIGx0X3Byb2dfY29tcGls ZXJfcGljPSctS1BJQycKKysJICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisr CSAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysJICA7OworKwllc2FjCisrCTs7CisrICAg ICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIG5ld3NvczYpCisrICAgICAgbHRfcHJvZ19jb21w aWxlcl9waWM9Jy1LUElDJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRp YycKKysgICAgICA7OworKworKyAgICAqbnRvKiB8ICpxbngqKQorKyAgICAgICMgUU5YIHVzZXMg R05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNl CisrICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGlj PSctZlBJQyAtc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1 KikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJworKyAgICAgICMgQWxsIE9TRi8x IGNvZGUgaXMgUElDLgorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctbm9uX3NoYXJl ZCcKKysgICAgICA7OworKworKyAgICByZG9zKikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYz0nLW5vbl9zaGFyZWQnCisrICAgICAgOzsKKysKKysgICAgc29sYXJpcyopCisrICAgICAg bHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljPSctQnN0YXRpYycKKysgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgIGY3Nyog fCBmOTAqIHwgZjk1KiB8IHN1bmY3NyogfCBzdW5mOTAqIHwgc3VuZjk1KikKKysJbHRfcHJvZ19j b21waWxlcl93bD0nLVFvcHRpb24gbGQgJzs7CisrICAgICAgKikKKysJbHRfcHJvZ19jb21waWxl cl93bD0nLVdsLCc7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBzdW5vczQqKQor KyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1Rb3B0aW9uIGxkICcKKysgICAgICBsdF9wcm9n X2NvbXBpbGVyX3BpYz0nLVBJQycKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJz dGF0aWMnCisrICAgICAgOzsKKysKKysgICAgc3lzdjQgfCBzeXN2NC4ydXcyKiB8IHN5c3Y0LjMq KQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrICAgICAgbHRfcHJvZ19jb21w aWxlcl9waWM9Jy1LUElDJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRp YycKKysgICAgICA7OworKworKyAgICBzeXN2NCpNUCopCisrICAgICAgaWYgdGVzdCAtZCAvdXNy L25lYyA7dGhlbgorKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtjb25mb3JtX3BpYycKKysJbHRf cHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgIGZpCisrICAgICAgOzsKKysK KysgICAgc3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklY KikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJworKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfcGljPSctS1BJQycKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0 aWMnCisrICAgICAgOzsKKysKKysgICAgdW5pY29zKikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVy X3dsPSctV2wsJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZD1ubwor KyAgICAgIDs7CisrCisrICAgIHV0czQqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSct cGljJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKKysgICAgICA7 OworKworKyAgICAqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZD1u bworKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrCisrY2FzZSAkaG9zdF9vcyBpbgorKyAg IyBGb3IgcGxhdGZvcm1zIHdoaWNoIGRvIG5vdCBzdXBwb3J0IFBJQywgLURQSUMgaXMgbWVhbmlu Z2xlc3M6CisrICAqZGpncHAqKQorKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0KKysgICAgOzsK KysgICopCisrICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSIkbHRfcHJvZ19jb21waWxlcl9waWMg LURQSUMiCisrICAgIDs7CisrZXNhYworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogcmVzdWx0OiAkbHRfcHJvZ19jb21waWxlcl9waWMiID4mNQorKyRhc19lY2hvICIk bHRfcHJvZ19jb21waWxlcl9waWMiID4mNjsgfQorKworKworKworKworKworKworKyMKKysjIENo ZWNrIHRvIG1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgYWN0dWFsbHkgd29ya3MuCisrIworK2lmIHRl c3QgLW4gIiRsdF9wcm9nX2NvbXBpbGVyX3BpYyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRs dF9wcm9nX2NvbXBpbGVyX3BpYyB3b3JrcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYg JGNvbXBpbGVyIFBJQyBmbGFnICRsdF9wcm9nX2NvbXBpbGVyX3BpYyB3b3Jrcy4uLiAiID4mNjsg fQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3Mrc2V0fSIgPSBzZXQ7 IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9w cm9nX2NvbXBpbGVyX3BpY193b3Jrcz1ubworKyAgIGFjX291dGZpbGU9Y29uZnRlc3QuJGFjX29i amV4dAorKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3Qu JGFjX2V4dAorKyAgIGx0X2NvbXBpbGVyX2ZsYWc9IiRsdF9wcm9nX2NvbXBpbGVyX3BpYyAtRFBJ QyIKKysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZM QUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29u ZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUg aXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0 aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBj b3JyZWN0bHkuCisrICAgIyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUg dG8gYXZvaWQgY29uZnVzaW5nIHNlZC4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGls ZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxh ZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcm OjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNo byAiXCJcJGFzX21lOiRMSU5FTk86ICRsdF9jb21waWxlXCIiID4mNSkKKysgICAoZXZhbCAiJGx0 X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgIGFjX3N0YXR1cz0kPworKyAgIGNhdCBjb25m dGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19vdXRmaWxlIjsg dGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBv cHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3 YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCisrICAgICAkRUNITyAiJF9sdF9j b21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkU0VEICcvXiQvZCcgPmNvbmZ0ZXN0LmV4cAorKyAgICAg JFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCisrICAgICBp ZiB0ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVy MiA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtz PXllcworKyAgICAgZmkKKysgICBmaQorKyAgICRSTSBjb25mdGVzdCoKKysKKytmaQorK3sgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRfY3ZfcHJvZ19j b21waWxlcl9waWNfd29ya3MiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9w aWNfd29ya3MiID4mNjsgfQorKworK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNf d29ya3MiID0geHllczsgdGhlbgorKyAgICBjYXNlICRsdF9wcm9nX2NvbXBpbGVyX3BpYyBpbgor KyAgICAgIiIgfCAiICIqKSA7OworKyAgICAgKikgbHRfcHJvZ19jb21waWxlcl9waWM9IiAkbHRf cHJvZ19jb21waWxlcl9waWMiIDs7CisrICAgICBlc2FjCisrZWxzZQorKyAgICBsdF9wcm9nX2Nv bXBpbGVyX3BpYz0KKysgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZD1ubwor K2ZpCisrCisrZmkKKysKKysKKysKKysKKysKKysKKysjCisrIyBDaGVjayB0byBtYWtlIHN1cmUg dGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5IHdvcmtzLgorKyMKKyt3bD0kbHRfcHJvZ19jb21waWxl cl93bCBldmFsIGx0X3RtcF9zdGF0aWNfZmxhZz1cIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY1wi CisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBpZiAk Y29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxhZyB3b3JrcyIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF90bXBfc3RhdGlj X2ZsYWcgd29ya3MuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJf c3RhdGljX3dvcmtzK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9bm8KKysg ICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgorKyAgIExERkxBR1M9IiRMREZMQUdTICRsdF90bXBf c3RhdGljX2ZsYWciCisrICAgZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPiBjb25m dGVzdC4kYWNfZXh0CisrICAgaWYgKGV2YWwgJGFjX2xpbmsgMj5jb25mdGVzdC5lcnIpICYmIHRl c3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCisrICAgICAjIFRoZSBsaW5rZXIgY2FuIG9u bHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMg U28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncworKyAgICAgaWYgdGVzdCAtcyBjb25mdGVz dC5lcnI7IHRoZW4KKysgICAgICAgIyBBcHBlbmQgYW55IGVycm9ycyB0byB0aGUgY29uZmlnLmxv Zy4KKysgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1CisrICAgICAgICRFQ0hPICIkX2x0X2xp bmtlcl9ib2lsZXJwbGF0ZSIgfCAkU0VEICcvXiQvZCcgPiBjb25mdGVzdC5leHAKKysgICAgICAg JFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCisrICAgICAg IGlmIGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAg ICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9eWVzCisrICAgICAgIGZpCisr ICAgICBlbHNlCisrICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzPXllcwor KyAgICAgZmkKKysgICBmaQorKyAgICRSTSAtciBjb25mdGVzdCoKKysgICBMREZMQUdTPSIkc2F2 ZV9MREZMQUdTIgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcyIgPiY1CisrJGFz X2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcyIgPiY2OyB9CisrCisraWYg dGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcyIgPSB4eWVzOyB0aGVuCisr ICAgIDoKKytlbHNlCisrICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPQorK2ZpCisrCisrCisr CisrCisrCisrCisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxl LiRhY19vYmpleHQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJf Y19vK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Cisr ZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX289bm8KKysgICAkUk0gLXIgY29uZnRlc3Qg Mj4vZGV2L251bGwKKysgICBta2RpciBjb25mdGVzdAorKyAgIGNkIGNvbmZ0ZXN0CisrICAgbWtk aXIgb3V0CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVz dC4kYWNfZXh0CisrCisrICAgbHRfY29tcGlsZXJfZmxhZz0iLW8gb3V0L2NvbmZ0ZXN0Mi4kYWNf b2JqZXh0IgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFz dCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5n ICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29t cGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAg IyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3 b3JrIGNvcnJlY3RseS4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VE IFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBc CisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAor KyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFz X21lOiRMSU5FTk86ICRsdF9jb21waWxlXCIiID4mNSkKKysgICAoZXZhbCAiJGx0X2NvbXBpbGUi IDI+b3V0L2NvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0dXM9JD8KKysgICBjYXQgb3V0L2NvbmZ0 ZXN0LmVyciA+JjUKKysgICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1CisrICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRh Y19vYmpleHQKKysgICB0aGVuCisrICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFu ZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8g aWYgdGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICAkRUNITyAiJF9sdF9jb21waWxlcl9ib2lsZXJw bGF0ZSIgfCAkU0VEICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCisrICAgICAkU0VEICcvXiQv ZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgorKyAgICAgaWYg dGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9j b25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVy X2Nfbz15ZXMKKysgICAgIGZpCisrICAgZmkKKysgICBjaG1vZCB1K3cgLiAyPiY1CisrICAgJFJN IGNvbmZ0ZXN0KgorKyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkg b3V0L2lpX2ZpbGVzLyBmb3IKKysgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KKysgICB0ZXN0 IC1kIG91dC9paV9maWxlcyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2Zp bGVzCisrICAgJFJNIG91dC8qICYmIHJtZGlyIG91dAorKyAgIGNkIC4uCisrICAgJFJNIC1yIGNv bmZ0ZXN0CisrICAgJFJNIGNvbmZ0ZXN0KgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgPiY1 CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgPiY2OyB9CisrCisrCisrCisr CisrCisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNr aW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19v YmpleHQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfY19vK3Nl dH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQor KyAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX289bm8KKysgICAkUk0gLXIgY29uZnRlc3QgMj4vZGV2 L251bGwKKysgICBta2RpciBjb25mdGVzdAorKyAgIGNkIGNvbmZ0ZXN0CisrICAgbWtkaXIgb3V0 CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNf ZXh0CisrCisrICAgbHRfY29tcGlsZXJfZmxhZz0iLW8gb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0 IgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxB R1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25m dGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBp dHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRo IGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNv cnJlY3RseS4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysg ICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAg LWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1l ICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOiRM SU5FTk86ICRsdF9jb21waWxlXCIiID4mNSkKKysgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0 L2NvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0dXM9JD8KKysgICBjYXQgb3V0L2NvbmZ0ZXN0LmVy ciA+JjUKKysgICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Cisr ICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpl eHQKKysgICB0aGVuCisrICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25v cmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhl cmUgYXJlIHdhcm5pbmdzCisrICAgICAkRUNITyAiJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIg fCAkU0VEICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14g KisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAh IC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVz dC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz15 ZXMKKysgICAgIGZpCisrICAgZmkKKysgICBjaG1vZCB1K3cgLiAyPiY1CisrICAgJFJNIGNvbmZ0 ZXN0KgorKyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lp X2ZpbGVzLyBmb3IKKysgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KKysgICB0ZXN0IC1kIG91 dC9paV9maWxlcyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCisr ICAgJFJNIG91dC8qICYmIHJtZGlyIG91dAorKyAgIGNkIC4uCisrICAgJFJNIC1yIGNvbmZ0ZXN0 CisrICAgJFJNIGNvbmZ0ZXN0KgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgPiY1CisrJGFz X2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgPiY2OyB9CisrCisrCisrCisrCisraGFy ZF9saW5rcz0ibm90dGVzdGVkIgorK2lmIHRlc3QgIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIg PSBubyAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KKysgICMgZG8gbm90IG92ZXJ3 cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBwcm92aWRlZCBieSB0aGUgdXNlcgorKyAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBpZiB3ZSBjYW4g bG9jayB3aXRoIGhhcmQgbGlua3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmIHdlIGNh biBsb2NrIHdpdGggaGFyZCBsaW5rcy4uLiAiID4mNjsgfQorKyAgaGFyZF9saW5rcz15ZXMKKysg ICRSTSBjb25mdGVzdCoKKysgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAm JiBoYXJkX2xpbmtzPW5vCisrICB0b3VjaCBjb25mdGVzdC5hCisrICBsbiBjb25mdGVzdC5hIGNv bmZ0ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtzPW5vCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0 LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubworKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRoYXJkX2xpbmtzIiA+JjUKKyskYXNfZWNobyAi JGhhcmRfbGlua3MiID4mNjsgfQorKyAgaWYgdGVzdCAiJGhhcmRfbGlua3MiID0gbm87IHRoZW4K KysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBc YCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5z YWZlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3Vw cG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+JjI7fQorKyAgICBu ZWVkX2xvY2tzPXdhcm4KKysgIGZpCisrZWxzZQorKyAgbmVlZF9sb2Nrcz1ubworK2ZpCisrCisr CisrCisrCisrCisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hh cmVkIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgJGNv bXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9 CisrCisrICBydW5wYXRoX3Zhcj0KKysgIGFsbG93X3VuZGVmaW5lZF9mbGFnPQorKyAgYWx3YXlz X2V4cG9ydF9zeW1ib2xzPW5vCisrICBhcmNoaXZlX2NtZHM9CisrICBhcmNoaXZlX2V4cHN5bV9j bWRzPQorKyAgY29tcGlsZXJfbmVlZHNfb2JqZWN0PW5vCisrICBlbmFibGVfc2hhcmVkX3dpdGhf c3RhdGljX3J1bnRpbWVzPW5vCisrICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9CisrICBleHBv cnRfc3ltYm9sc19jbWRzPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1i b2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5 bWJvbHMnCisrICBoYXJkY29kZV9hdXRvbWF0aWM9bm8KKysgIGhhcmRjb2RlX2RpcmVjdD1ubwor KyAgaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPW5vCisrICBoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjPQorKyAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0KKysgIGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3I9CisrICBoYXJkY29kZV9taW51c19MPW5vCisrICBoYXJkY29kZV9zaGxpYnBh dGhfdmFyPXVuc3VwcG9ydGVkCisrICBpbmhlcml0X3JwYXRoPW5vCisrICBsaW5rX2FsbF9kZXBs aWJzPXVua25vd24KKysgIG1vZHVsZV9jbWRzPQorKyAgbW9kdWxlX2V4cHN5bV9jbWRzPQorKyAg b2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0KKysgIG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19j bWRzPQorKyAgdGhyZWFkX3NhZmVfZmxhZ19zcGVjPQorKyAgd2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWM9CisrICAjIGluY2x1ZGVfZXhwc3ltcyBzaG91bGQgYmUgYSBsaXN0IG9mIHNwYWNlLXNlcGFy YXRlZCBzeW1ib2xzIHRvIGJlICphbHdheXMqCisrICAjIGluY2x1ZGVkIGluIHRoZSBzeW1ib2wg bGlzdAorKyAgaW5jbHVkZV9leHBzeW1zPQorKyAgIyBleGNsdWRlX2V4cHN5bXMgY2FuIGJlIGFu IGV4dGVuZGVkIHJlZ2V4cCBvZiBzeW1ib2xzIHRvIGV4Y2x1ZGUKKysgICMgaXQgd2lsbCBiZSB3 cmFwcGVkIGJ5IGAgKCcgYW5kIGApJCcsIHNvIG9uZSBtdXN0IG5vdCBtYXRjaCBiZWdpbm5pbmcg b3IKKysgICMgZW5kIG9mIGxpbmUuICBFeGFtcGxlOiBgYXxiY3wuKmQuKicgd2lsbCBleGNsdWRl IHRoZSBzeW1ib2xzIGBhJyBhbmQgYGJjJywKKysgICMgYXMgd2VsbCBhcyBhbnkgc3ltYm9sIHRo YXQgY29udGFpbnMgYGQnLgorKyAgZXhjbHVkZV9leHBzeW1zPSdfR0xPQkFMX09GRlNFVF9UQUJM RV98X0dMT0JBTF9fRltJRF1fLionCisrICAjIEFsdGhvdWdoIF9HTE9CQUxfT0ZGU0VUX1RBQkxF XyBpcyBhIHZhbGlkIHN5bWJvbCBDIG5hbWUsIG1vc3QgYS5vdXQKKysgICMgcGxhdGZvcm1zIChh Yil1c2UgaXQgaW4gUElDIGNvZGUsIGJ1dCB0aGVpciBsaW5rZXJzIGdldCBjb25mdXNlZCBpZgor KyAgIyB0aGUgc3ltYm9sIGlzIGV4cGxpY2l0bHkgcmVmZXJlbmNlZC4gIFNpbmNlIHBvcnRhYmxl IGNvZGUgY2Fubm90CisrICAjIHJlbHkgb24gdGhpcyBzeW1ib2wgbmFtZSwgaXQncyBwcm9iYWJs eSBmaW5lIHRvIG5ldmVyIGluY2x1ZGUgaXQgaW4KKysgICMgcHJlbG9hZGVkIHN5bWJvbCB0YWJs ZXMuCisrICAjIEV4Y2x1ZGUgc2hhcmVkIGxpYnJhcnkgaW5pdGlhbGl6YXRpb24vZmluYWxpemF0 aW9uIHN5bWJvbHMuCisrICBleHRyYWN0X2V4cHN5bXNfY21kcz0KKysKKysgIGNhc2UgJGhvc3Rf b3MgaW4KKysgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAgIyBGSVhN RTogdGhlIE1TVkMrKyBwb3J0IGhhc24ndCBiZWVuIHRlc3RlZCBpbiBhIGxvb29vbmcgdGltZQor KyAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFy ZSB1c2luZworKyAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysrLgorKyAgICBpZiB0ZXN0ICIkR0ND IiAhPSB5ZXM7IHRoZW4KKysgICAgICB3aXRoX2dudV9sZD1ubworKyAgICBmaQorKyAgICA7Owor KyAgaW50ZXJpeCopCisrICAgICMgd2UganVzdCBob3BlL2Fzc3VtZSB0aGlzIGlzIGdjYyBhbmQg bm90IGM4OSAoPSBNU1ZDKyspCisrICAgIHdpdGhfZ251X2xkPXllcworKyAgICA7OworKyAgb3Bl bmJzZCopCisrICAgIHdpdGhfZ251X2xkPW5vCisrICAgIDs7CisrICBlc2FjCisrCisrICBsZF9z aGxpYnM9eWVzCisrCisrICAjIE9uIHNvbWUgdGFyZ2V0cywgR05VIGxkIGlzIGNvbXBhdGlibGUg ZW5vdWdoIHdpdGggdGhlIG5hdGl2ZSBsaW5rZXIKKysgICMgdGhhdCB3ZSdyZSBiZXR0ZXIgb2Zm IHVzaW5nIHRoZSBuYXRpdmUgaW50ZXJmYWNlIGZvciBib3RoLgorKyAgbHRfdXNlX2dudV9sZF9p bnRlcmZhY2U9bm8KKysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeCopCisrCSMgVGhlIEFJWCBwb3J0IG9mIEdOVSBs ZCBoYXMgYWx3YXlzIGFzcGlyZWQgdG8gY29tcGF0aWJpbGl0eQorKwkjIHdpdGggdGhlIG5hdGl2 ZSBsaW5rZXIuICBIb3dldmVyLCBhcyB0aGUgd2FybmluZyBpbiB0aGUgR05VIGxkCisrCSMgYmxv Y2sgc2F5cywgdmVyc2lvbnMgYmVmb3JlIDIuMTkuNSogY291bGRuJ3QgcmVhbGx5IGNyZWF0ZSB3 b3JraW5nCisrCSMgc2hhcmVkIGxpYnJhcmllcywgcmVnYXJkbGVzcyBvZiB0aGUgaW50ZXJmYWNl IHVzZWQuCisrCWNhc2UgYCRMRCAtdiAyPiYxYCBpbgorKwkgICpcIFwoR05VXCBCaW51dGlsc1wp XCAyLjE5LjUqKSA7OworKwkgICpcIFwoR05VXCBCaW51dGlsc1wpXCAyLlsyLTldKikgOzsKKysJ ICAqXCBcKEdOVVwgQmludXRpbHNcKVwgWzMtOV0qKSA7OworKwkgICopCisrCSAgICBsdF91c2Vf Z251X2xkX2ludGVyZmFjZT15ZXMKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICAqKQor KwlsdF91c2VfZ251X2xkX2ludGVyZmFjZT15ZXMKKysJOzsKKysgICAgZXNhYworKyAgZmkKKysK KysgIGlmIHRlc3QgIiRsdF91c2VfZ251X2xkX2ludGVyZmFjZSIgPSB5ZXM7IHRoZW4KKysgICAg IyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkK KysgICAgd2xhcmM9JyR7d2x9JworKworKyAgICAjIFNldCBzb21lIGRlZmF1bHRzIGZvciBHTlUg bGQgd2l0aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQorKyAgICAjIGFyZSByZXNldCBs YXRlciBpZiBzaGFyZWQgbGlicmFyaWVzIGFyZSBub3Qgc3VwcG9ydGVkLiBQdXR0aW5nIHRoZW0K KysgICAgIyBoZXJlIGFsbG93cyB0aGVtIHRvIGJlIG92ZXJyaWRkZW4gaWYgbmVjZXNzYXJ5Lgor KyAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgIGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlYz0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKyAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4n dCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCisrICAgIGlmICRMRCAtLWhlbHAgMj4m MSB8ICRHUkVQICduby13aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICAgIHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5j ZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJworKyAgICBlbHNlCisrICAgICAgd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWM9CisrICAgIGZpCisrICAgIHN1cHBvcnRzX2Fub25fdmVyc2lvbmlu Zz1ubworKyAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4KKysgICAgICAqR05VXCBnb2xkKikgc3Vw cG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OworKyAgICAgICpcIFswMV0uKiB8ICpcIDIuWzAt OV0uKiB8ICpcIDIuMTAuKikgOzsgIyBjYXRjaCB2ZXJzaW9ucyA8IDIuMTEKKysgICAgICAqXCAy LjExLjkzLjAuMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIFJINy4zIC4u LgorKyAgICAgICpcIDIuMTEuOTIuMC4xMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXll cyA7OyAjIE1hbmRyYWtlIDguMiAuLi4KKysgICAgICAqXCAyLjExLiopIDs7ICMgb3RoZXIgMi4x MSB2ZXJzaW9ucworKyAgICAgICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsKKysg ICAgZXNhYworKworKyAgICAjIFNlZSBpZiBHTlUgbGQgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmll cy4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXhbMy05XSopCisrICAgICAgIyBPbiBB SVgvUFBDLCB0aGUgR05VIGxpbmtlciBpcyB2ZXJ5IGJyb2tlbgorKyAgICAgIGlmIHRlc3QgIiRo b3N0X2NwdSIgIT0gaWE2NDsgdGhlbgorKwlsZF9zaGxpYnM9bm8KKysJY2F0IDw8X0xUX0VPRiAx PiYyCisrCisrKioqIFdhcm5pbmc6IHRoZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxl YXNlIDIuMTksIGlzIHJlcG9ydGVkCisrKioqIHRvIGJlIHVuYWJsZSB0byByZWxpYWJseSBjcmVh dGUgc2hhcmVkIGxpYnJhcmllcyBvbiBBSVguCisrKioqIFRoZXJlZm9yZSwgbGlidG9vbCBpcyBk aXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgSWYgeW91CisrKioqIHJlYWxseSBj YXJlIGZvciBzaGFyZWQgbGlicmFyaWVzLCB5b3UgbWF5IHdhbnQgdG8gaW5zdGFsbCBiaW51dGls cworKyoqKiAyLjIwIG9yIGFib3ZlLCBvciBtb2RpZnkgeW91ciBQQVRIIHNvIHRoYXQgYSBub24t R05VIGxpbmtlciBpcyBmb3VuZC4KKysqKiogWW91IHdpbGwgdGhlbiBuZWVkIHRvIHJlc3RhcnQg dGhlIGNvbmZpZ3VyYXRpb24gcHJvY2Vzcy4KKysKKytfTFRfRU9GCisrICAgICAgZmkKKysgICAg ICA7OworKworKyAgICBhbWlnYW9zKikKKysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAg IHBvd2VycGMpCisrICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9TNCAuc28g c3VwcG9ydAorKyAgICAgICAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWIn CisrICAgICAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJworKyAgICAgICAgOzsKKysgICAg ICBtNjhrKQorKyAgICAgICAgICAgIGFyY2hpdmVfY21kcz0nJFJNICRvdXRwdXRfb2JqZGlyL2Ey aXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTkFNRSAkbGlibmFtZSIgPiAkb3V0cHV0X29i amRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIExJQlJBUllfSUQgMSIgPj4gJG91 dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBWRVJTSU9OICRtYWpv ciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBSRVZJ U0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEFSICRB Ul9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5MSUIgJGxpYn4oY2QgJG91dHB1dF9vYmpkaXIgJiYg YTJpeGxpYnJhcnkgLTMyKScKKysgICAgICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj PSctTCRsaWJkaXInCisrICAgICAgICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKysgICAgICAg IDs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIGJlb3MqKQorKyAgICAgIGlmICRM RCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2 L251bGw7IHRoZW4KKysJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKKysJIyBKb3Nl cGggQmVja2VuYmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYwor KwkjIHN1cHBvcnQgLS11bmRlZmluZWQuICBUaGlzIGRlc2VydmVzIHNvbWUgaW52ZXN0aWdhdGlv bi4gIEZJWE1FCisrCWFyY2hpdmVfY21kcz0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKyAgICAg IGVsc2UKKysJbGRfc2hsaWJzPW5vCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBjeWd3 aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisrICAgICAgIyBfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMsICkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCisrICAgICAg IyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKysgICAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisrICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjPScke3dsfS0tZXhwb3J0LWFsbC1zeW1ib2xzJworKyAgICAgIGFsbG93X3VuZGVmaW5lZF9m bGFnPXVuc3VwcG9ydGVkCisrICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzPW5vCisrICAgICAg ZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcz15ZXMKKysgICAgICBleHBvcnRfc3lt Ym9sc19jbWRzPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlw ZSB8ICRTRUQgLWUgJ1wnJy9eW0JDREdSU11bIF0vcy8uKlsgXVwoW14gXSpcKS9cMSBEQVRBLydc JycgfCAkU0VEIC1lICdcJycvXltBSVRXXVsgXS9zLy4qWyBdLy8nXCcnIHwgc29ydCB8IHVuaXEg PiAkZXhwb3J0X3N5bWJvbHMnCisrCisrICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAg J2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICAgICAgYXJjaGl2ZV9jbWRzPSck Q0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91 dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKysJIyBJZiB0aGUgZXhwb3J0LXN5bWJvbHMgZmlsZSBh bHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGluZQorKwkjIGlzIEVYUE9SVFMpLCB1c2UgaXQg YXMgaXM7IG90aGVyd2lzZSwgcHJlcGVuZC4uLgorKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSdpZiB0 ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgorKwkgIGNw ICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysJZWxzZQorKwkg IGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworKwkgIGNhdCAkZXhw b3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrCWZpfgorKwkkQ0Mg LXNoYXJlZCAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8t aW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKysgICAgICBl bHNlCisrCWxkX3NobGlicz1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgaGFpa3Uq KQorKyAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAgICAgbGlu a19hbGxfZGVwbGlicz15ZXMKKysgICAgICA7OworKworKyAgICBpbnRlcml4WzMtOV0qKQorKyAg ICAgIGhhcmRjb2RlX2RpcmVjdD1ubworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8K KysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCwkbGliZGlyJwor KyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tRScKKysgICAgICAjIEhhY2s6 IE9uIEludGVyaXggMy54LCB3ZSBjYW5ub3QgY29tcGlsZSBQSUMgYmVjYXVzZSBvZiBhIGJyb2tl biBnY2MuCisrICAgICAgIyBJbnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFyZSBsb2FkZWQgYXQg YW4gaW1hZ2UgYmFzZSAoMHgxMDAwMDAwMCBieQorKyAgICAgICMgZGVmYXVsdCkgYW5kIHJlbG9j YXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkKKysgICAg ICAjIGNvbnN1bWluZyBhbmQgZnJhZ21lbnRpbmcgcHJvY2Vzcy4gIFRvIGF2b2lkIHRoaXMsIHdl IHBpY2sgYSByYW5kb20sCisrICAgICAgIyAyNTYgS2lCLWFsaWduZWQgaW1hZ2UgYmFzZSBiZXR3 ZWVuIDB4NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQgbGluaworKyAgICAgICMgdGltZS4gIE1v dmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgor KyAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4 cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxp YicKKysgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSdzZWQgInMsXixfLCIgJGV4cG9ydF9zeW1i b2xzID4kb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bX4kQ0MgLXNoYXJlZCAkcGljX2ZsYWcg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0t cmV0YWluLXN5bWJvbHMtZmlsZSwkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bSAke3dsfS0t aW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQy MTc3MjgwYCAtbyAkbGliJworKyAgICAgIDs7CisrCisrICAgIGdudSogfCBsaW51eCogfCB0cGYq IHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQorKyAgICAgIHRtcF9kaWV0PW5vCisr ICAgICAgaWYgdGVzdCAiJGhvc3Rfb3MiID0gbGludXgtZGlldGxpYmM7IHRoZW4KKysJY2FzZSAk Y2NfYmFzZW5hbWUgaW4KKysJICBkaWV0XCAqKSB0bXBfZGlldD15ZXM7OwkjIGxpbnV4LWRpZXRs aWJjIHdpdGggc3RhdGljIGxpbmtpbmcgKCFkaWV0LWR5bikKKysJZXNhYworKyAgICAgIGZpCisr ICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEVHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4q IGVsZicgPiAvZGV2L251bGwgXAorKwkgJiYgdGVzdCAiJHRtcF9kaWV0IiA9IG5vCisrICAgICAg dGhlbgorKwl0bXBfYWRkZmxhZz0KKysJdG1wX3NoYXJlZGZsYWc9Jy1zaGFyZWQnCisrCWNhc2Ug JGNjX2Jhc2VuYW1lLCRob3N0X2NwdSBpbgorKyAgICAgICAgcGdjYyopCQkJCSMgUG9ydGxhbmQg R3JvdXAgQyBjb21waWxlcgorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScke3dsfS0td2hv bGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRj b252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25l OyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJj aGl2ZScKKysJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZycKKysJICA7OworKwlwZ2Y3NyogfCBw Z2Y5MCogfCBwZ2Y5NSogfCBwZ2ZvcnRyYW4qKQorKwkJCQkJIyBQb3J0bGFuZCBHcm91cCBmNzcg YW5kIGY5MCBjb21waWxlcnMKKysJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0tLXdo b2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIk Y29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9u ZTsgZnVuY19lY2hvX2FsbCBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFy Y2hpdmUnCisrCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcgLU1ub21haW4nIDs7CisrCWVjYyos aWE2NCogfCBpY2MqLGlhNjQqKQkjIEludGVsIEMgY29tcGlsZXIgb24gaWE2NAorKwkgIHRtcF9h ZGRmbGFnPScgLWlfZHluYW1pYycgOzsKKysJZWZjKixpYTY0KiB8IGlmb3J0KixpYTY0KikJIyBJ bnRlbCBGb3J0cmFuIGNvbXBpbGVyIG9uIGlhNjQKKysJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFt aWMgLW5vZm9yX21haW4nIDs7CisrCWlmYyogfCBpZm9ydCopCQkJIyBJbnRlbCBGb3J0cmFuIGNv bXBpbGVyCisrCSAgdG1wX2FkZGZsYWc9JyAtbm9mb3JfbWFpbicgOzsKKysJbGY5NSopCQkJCSMg TGFoZXkgRm9ydHJhbiA4LjEKKysJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KKysJICB0bXBf c2hhcmVkZmxhZz0nLS1zaGFyZWQnIDs7CisrCXhsW2NDXSogfCBiZ3hsW2NDXSogfCBtcGl4bFtj Q10qKSAjIElCTSBYTCBDIDguMCBvbiBQUEMgKGRlYWwgd2l0aCB4bGYgYmVsb3cpCisrCSAgdG1w X3NoYXJlZGZsYWc9Jy1xbWtzaHJvYmonCisrCSAgdG1wX2FkZGZsYWc9IDs7CisrCW52Y2MqKQkj IEN1ZGEgQ29tcGlsZXIgRHJpdmVyIDIuMgorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSck e3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0 ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29u dlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8t d2hvbGUtYXJjaGl2ZScKKysJICBjb21waWxlcl9uZWVkc19vYmplY3Q9eWVzCisrCSAgOzsKKysJ ZXNhYworKwljYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysJKlN1blwgQyopCQkJIyBT dW4gQyA1LjkKKysJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0tLXdob2xlLWFyY2hp dmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVz dCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29u dlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8t d2hvbGUtYXJjaGl2ZScKKysJICBjb21waWxlcl9uZWVkc19vYmplY3Q9eWVzCisrCSAgdG1wX3No YXJlZGZsYWc9Jy1HJyA7OworKwkqU3VuXCBGKikJCQkjIFN1biBGb3J0cmFuIDguMworKwkgIHRt cF9zaGFyZWRmbGFnPSctRycgOzsKKysJZXNhYworKwlhcmNoaXZlX2NtZHM9JyRDQyAnIiR0bXBf c2hhcmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCisrICAgICAgICBpZiB0ZXN0 ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0aGVuCisrICAgICAgICAgIGFy Y2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGli bmFtZS52ZXJ+CisrCSAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9c MTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAgICBlY2hvICJsb2NhbDog KjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICRDQyAnIiR0bXBf c2hhcmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXZlcnNpb24tc2NyaXB0ICR7d2x9JG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisrICAgICAgICBmaQorKworKwljYXNl ICRjY19iYXNlbmFtZSBpbgorKwl4bGYqIHwgYmdmKiB8IGJneGxmKiB8IG1waXhsZiopCisrCSAg IyBJQk0gWEwgRm9ydHJhbiAxMC4xIG9uIFBQQyBjYW5ub3QgY3JlYXRlIHNoYXJlZCBsaWJzIGl0 c2VsZgorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSctLXdob2xlLWFyY2hpdmUkY29udmVu aWVuY2UgLS1uby13aG9sZS1hcmNoaXZlJworKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9 CisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0nLXJwYXRoICRsaWJkaXInCisrCSAg YXJjaGl2ZV9jbWRzPSckTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdz IC1zb25hbWUgJHNvbmFtZSAtbyAkbGliJworKwkgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5vbl92 ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KKysJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8g InsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAgICAgIGNhdCAk ZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLnZlcn4KKysJICAgICAgZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29i amRpci8kbGlibmFtZS52ZXJ+CisrCSAgICAgICRMRCAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIC12ZXJzaW9uLXNjcmlwdCAkb3V0cHV0X29i amRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKKysJICBmaQorKwkgIDs7CisrCWVzYWMKKysgICAg ICBlbHNlCisrICAgICAgICBsZF9zaGxpYnM9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisr ICAgIG5ldGJzZCopCisrICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBf X0VMRl9fID4vZGV2L251bGw7IHRoZW4KKysJYXJjaGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbyAkbGliJworKwl3bGFyYz0KKysgICAg ICBlbHNlCisrCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCWFyY2hpdmVf ZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRl eHBvcnRfc3ltYm9scyAtbyAkbGliJworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgc29s YXJpcyopCisrICAgICAgaWYgJExEIC12IDI+JjEgfCAkR1JFUCAnQkZEIDJcLjgnID4gL2Rldi9u dWxsOyB0aGVuCisrCWxkX3NobGlicz1ubworKwljYXQgPDxfTFRfRU9GIDE+JjIKKysKKysqKiog V2FybmluZzogVGhlIHJlbGVhc2VzIDIuOC4qIG9mIHRoZSBHTlUgbGlua2VyIGNhbm5vdCByZWxp YWJseQorKyoqKiBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBTb2xhcmlzIHN5c3RlbXMuICBU aGVyZWZvcmUsIGxpYnRvb2wKKysqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3Vw cG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCisrKioqIGJpbnV0aWxzIHRvIHJlbGVh c2UgMi45LjEgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKKysqKiogeW91 ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZlIGxpbmtl ciBpcworKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgorKworK19MVF9FT0YKKysgICAgICBl bGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicg PiAvZGV2L251bGw7IHRoZW4KKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicK KysJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xz LWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAgICAgZWxzZQorKwlsZF9zaGxp YnM9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8 IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCopCisrICAgICAgY2FzZSBgJExEIC12IDI+ JjFgIGluCisrICAgICAgICAqXCBbMDFdLiogfCAqXCAyLlswLTldLiogfCAqXCAyLjFbMC01XS4q KQorKwlsZF9zaGxpYnM9bm8KKysJY2F0IDw8X0xUX0VPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6 IFJlbGVhc2VzIG9mIHRoZSBHTlUgbGlua2VyIHByaW9yIHRvIDIuMTYuOTEuMC4zIGNhbiBub3QK KysqKiogcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU0NPIHN5c3RlbXMuICBU aGVyZWZvcmUsIGxpYnRvb2wKKysqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3Vw cG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCisrKioqIGJpbnV0aWxzIHRvIHJlbGVh c2UgMi4xNi45MS4wLjMgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKKysq KiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZl IGxpbmtlciBpcworKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgorKworK19MVF9FT0YKKysJ OzsKKysJKikKKysJICAjIEZvciBzZWN1cml0eSByZWFzb25zLCBpdCBpcyBoaWdobHkgcmVjb21t ZW5kZWQgdGhhdCB5b3UgYWx3YXlzCisrCSAgIyB1c2UgYWJzb2x1dGUgcGF0aHMgZm9yIG5hbWlu ZyBzaGFyZWQgbGlicmFyaWVzLCBhbmQgZXhjbHVkZSB0aGUKKysJICAjIERUX1JVTlBBVEggdGFn IGZyb20gZXhlY3V0YWJsZXMgYW5kIGxpYnJhcmllcy4gIEJ1dCBkb2luZyBzbworKwkgICMgcmVx dWlyZXMgdGhhdCB5b3UgY29tcGlsZSBldmVyeXRoaW5nIHR3aWNlLCB3aGljaCBpcyBhIHBhaW4u CisrCSAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6Liog ZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0n JHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKwkgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJl ZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25h bWUgLW8gJGxpYicKKysJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3ds fS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwkgIGVs c2UKKysJICAgIGxkX3NobGlicz1ubworKwkgIGZpCisrCTs7CisrICAgICAgZXNhYworKyAgICAg IDs7CisrCisrICAgIHN1bm9zNCopCisrICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLWFzc2VydCBw dXJlLXRleHQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2Zs YWdzJworKyAgICAgIHdsYXJjPQorKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKysgICAgICBo YXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgOzsKKysKKysgICAgKikKKysgICAgICBp ZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4g L2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisr CWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1m aWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKyAgICAgIGVsc2UKKysJbGRfc2hsaWJz PW5vCisrICAgICAgZmkKKysgICAgICA7OworKyAgICBlc2FjCisrCisrICAgIGlmIHRlc3QgIiRs ZF9zaGxpYnMiID0gbm87IHRoZW4KKysgICAgICBydW5wYXRoX3Zhcj0KKysgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPQorKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0KKysg ICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KKysgICAgZmkKKysgIGVsc2UKKysgICAgIyBQ T1JUTUUgZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lzdGVtJ3MgbGlua2VyIChub3Qg R05VIGxkKQorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFpeDMqKQorKyAgICAgIGFsbG93 X3VuZGVmaW5lZF9mbGFnPXVuc3VwcG9ydGVkCisrICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xz PXllcworKyAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRMRCAtbyAkb3V0cHV0X29iamRpci8k c29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLWJFOiRleHBvcnRfc3ltYm9s cyAtVDUxMiAtSDUxMiAtYk06U1JFfiRBUiAkQVJfRkxBR1MgJGxpYiAkb3V0cHV0X29iamRpci8k c29uYW1lJworKyAgICAgICMgTm90ZTogdGhpcyBsaW5rZXIgaGFyZGNvZGVzIHRoZSBkaXJlY3Rv cmllcyBpbiBMSUJQQVRIIGlmIHRoZXJlCisrICAgICAgIyBhcmUgbm8gZGlyZWN0b3JpZXMgc3Bl Y2lmaWVkIGJ5IC1MLgorKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisrICAgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAteiAiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIjsgdGhl bgorKwkjIE5laXRoZXIgZGlyZWN0IGhhcmRjb2Rpbmcgbm9yIHN0YXRpYyBsaW5raW5nIGlzIHN1 cHBvcnRlZCB3aXRoIGEKKysJIyBicm9rZW4gY29sbGVjdDIuCisrCWhhcmRjb2RlX2RpcmVjdD11 bnN1cHBvcnRlZAorKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgYWl4WzQtOV0qKQorKyAg ICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgT24gSUE2NCwgdGhlIGxp bmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwgc28gd2UgZG9uJ3QKKysJIyBo YXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCisrCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8K KysJZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcKKysJbm9fZW50cnlfZmxhZz0iIgorKyAgICAgIGVs c2UKKysJIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1D IiBvcHRpb24uCisrCSMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9u J3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KKysJIyBBbHNvLCBBSVggbm0gdHJlYXRzIHdlYWsgZGVm aW5lZCBzeW1ib2xzIGxpa2Ugb3RoZXIgZ2xvYmFsCisrCSMgZGVmaW5lZCBzeW1ib2xzLCB3aGVy ZWFzIEdOVSBubSBtYXJrcyB0aGVtIGFzICJXIi4KKysJaWYgJE5NIC1WIDI+JjEgfCAkR1JFUCAn R05VJyA+IC9kZXYvbnVsbDsgdGhlbgorKwkgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAtQnBn ICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwg KFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpIHx8IChcJCAyID09ICJXIikpICYmIChzdWJz dHIoXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRl eHBvcnRfc3ltYm9scycKKysJZWxzZQorKwkgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAtQkNw ZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8 IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKHN1YnN0cihcJCAzLDEsMSkgIT0g Ii4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwor KwlmaQorKwlhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCisrCisrCSMgVGVzdCBpZiB3ZSBhcmUg dHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1hbAorKwkjIEFJWCBzdHlsZSBs aW5raW5nLiBJZiAtYnJ0bCBpcyBzb21ld2hlcmUgaW4gTERGTEFHUywgd2UKKysJIyBuZWVkIHRv IGRvIHJ1bnRpbWUgbGlua2luZy4KKysJY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlsyM118YWl4NC5b MjNdLip8YWl4WzUtOV0qKQorKwkgIGZvciBsZF9mbGFnIGluICRMREZMQUdTOyBkbworKwkgIGlm ICh0ZXN0ICRsZF9mbGFnID0gIi1icnRsIiB8fCB0ZXN0ICRsZF9mbGFnID0gIi1XbCwtYnJ0bCIp OyB0aGVuCisrCSAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPXllcworKwkgICAgYnJlYWsKKysJ ICBmaQorKwkgIGRvbmUKKysJICA7OworKwllc2FjCisrCisrCWV4cF9zeW1fZmxhZz0nLWJleHBv cnQnCisrCW5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRyeScKKysgICAgICBmaQorKworKyAgICAgICMg V2hlbiBsYXJnZSBleGVjdXRhYmxlcyBvciBzaGFyZWQgb2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBs ZCBjYW4KKysgICAgICAjIGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcgdGhlIHRhYmxlIG9mIGNvbnRl bnRzLiAgSWYgbGlua2luZyBhIGxpYnJhcnkKKysgICAgICAjIG9yIHByb2dyYW0gcmVzdWx0cyBp biAiZXJyb3IgVE9DIG92ZXJmbG93IiBhZGQgLW1taW5pbWFsLXRvYyB0bworKyAgICAgICMgQ1hY RkxBR1MvQ0ZMQUdTIGZvciBnKysvZ2NjLiAgSW4gdGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMgbm90 CisrICAgICAgIyBlbm91Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQgLVdsLC1iYmlndG9jIHRv IExERkxBR1MuCisrCisrICAgICAgYXJjaGl2ZV9jbWRzPScnCisrICAgICAgaGFyZGNvZGVfZGly ZWN0PXllcworKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT15ZXMKKysgICAgICBoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yPSc6JworKyAgICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCisr ICAgICAgZmlsZV9saXN0X3NwZWM9JyR7d2x9LWYsJworKworKyAgICAgIGlmIHRlc3QgIiRHQ0Mi ID0geWVzOyB0aGVuCisrCWNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMDEyXXxhaXg0LlswMTJdLiop CisrCSMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBj aGVjaworKwkjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQu MysKKysJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCisr CSAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYKKysJICAgc3RyaW5ncyAiJGNvbGxlY3Qy bmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJICB0aGVuCisrCSAg IyBXZSBoYXZlIHJld29ya2VkIGNvbGxlY3QyCisrCSAgOgorKwkgIGVsc2UKKysJICAjIFdlIGhh dmUgb2xkIGNvbGxlY3QyCisrCSAgaGFyZGNvZGVfZGlyZWN0PXVuc3VwcG9ydGVkCisrCSAgIyBJ dCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRoZSB1bmluc3RhbGxl ZAorKwkgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJk Y29kZV9taW51c19MCisrCSAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCisrCSAg aGFyZGNvZGVfbWludXNfTD15ZXMKKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRs aWJkaXInCisrCSAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0KKysJICBmaQorKwkgIDs7Cisr CWVzYWMKKysJc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCisrCWlmIHRlc3QgIiRhaXhfdXNlX3J1bnRp bWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgIHNoYXJlZF9mbGFnPSIkc2hhcmVkX2ZsYWcgIick e3dsfS1HJworKwlmaQorKyAgICAgIGVsc2UKKysJIyBub3QgdXNpbmcgZ2NjCisrCWlmIHRlc3Qg IiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgVmlzdWFsQWdlIEMrKywgVmVyc2lvbiA1LjUg Zm9yIEFJWCA1TCBmb3IgSUEtNjQsIEJldGEgMyBSZWxlYXNlCisrCSMgY2hva2VzIG9uIC1XbCwt Ry4gVGhlIGZvbGxvd2luZyBsaW5lIGlzIGNvcnJlY3Q6CisrCSAgc2hhcmVkX2ZsYWc9Jy1HJwor KwllbHNlCisrCSAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVu CisrCSAgICBzaGFyZWRfZmxhZz0nJHt3bH0tRycKKysJICBlbHNlCisrCSAgICBzaGFyZWRfZmxh Zz0nJHt3bH0tYk06U1JFJworKwkgIGZpCisrCWZpCisrICAgICAgZmkKKysKKysgICAgICBleHBv cnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LWJleHBhbGwnCisrICAgICAgIyBJdCBzZWVtcyB0 aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCisrICAg ICAgIyB1bmRlcnNjb3JlIChfKSwgc28gaXQgaXMgYmV0dGVyIHRvIGdlbmVyYXRlIGEgbGlzdCBv ZiBzeW1ib2xzIHRvIGV4cG9ydC4KKysgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHM9eWVzCisr ICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSMg V2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAo LWJydGwpLAorKwkjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9k dWNlIGEgYnJva2VuIGxpYnJhcnkuCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnPSctYmVyb2snCisr ICAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVu Y29kZWQgaW4gYW4KKysgICAgICAgICMgZW1wdHkgZXhlY3V0YWJsZS4KKysgICAgICAgIGNhdCBj b25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMu aC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30K KytfQUNFT0YKKytpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CisrCisrbHRf YWl4X2xpYnBhdGhfc2VkPScKKysgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8geworKwkv XjAvIHsKKysJICAgIHMvXjAgICpcKC4qXCkkL1wxLworKwkgICAgcAorKwl9CisrICAgIH0nCisr YWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNF RCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrIyBDaGVjayBmb3IgYSA2NC1iaXQgb2Jq ZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgorK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0 aCI7IHRoZW4KKysgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAy Pi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorK2ZpCisrZmkK KytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKysgICAgY29u ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBh dGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKysKKysgICAgICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xp YnBhdGgiCisrICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLW8gJG91dHB1dF9vYmpk aXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNv bXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4Ijsg dGhlbiBmdW5jX2VjaG9fYWxsICIke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IjsgZWxzZSA6 OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFn IgorKyAgICAgIGVsc2UKKysJaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysJICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1SICRsaWJkaXI6L3Vzci9saWI6L2xpYicK KysJICBhbGxvd191bmRlZmluZWRfZmxhZz0iLXogbm9kZWZzIgorKwkgIGFyY2hpdmVfZXhwc3lt X2NtZHM9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGli b2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30gJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0 X3N5bWJvbHMiCisrCWVsc2UKKysJICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJv bSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgorKwkgIyBlbXB0eSBleGVjdXRhYmxlLgorKwkgY2F0 IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7Cisr fQorK19BQ0VPRgorK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKKysKKyts dF9haXhfbGlicGF0aF9zZWQ9JworKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7Cisr CS9eMC8geworKwkgICAgcy9eMCAgKlwoLipcKSQvXDEvCisrCSAgICBwCisrCX0KKysgICAgfScK KythaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAk U0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKysjIENoZWNrIGZvciBhIDY0LWJpdCBv YmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCisraWYgdGVzdCAteiAiJGFpeF9saWJw YXRoIjsgdGhlbgorKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0 IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrZmkKKytm aQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorKyAgICBj b25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK2lmIHRlc3QgLXogIiRhaXhfbGli cGF0aCI7IHRoZW4gYWl4X2xpYnBhdGg9Ii91c3IvbGliOi9saWIiOyBmaQorKworKwkgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0 aCIKKysJICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW4gdGltZSBsb2Fk aW5nIGZsYWdzLAorKwkgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5 IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKysJICBub191bmRlZmluZWRfZmxhZz0nICR7d2x9 LWJlcm5vdG9rJworKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnPScgJHt3bH0tYmVyb2snCisrCSAg aWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKwkgICAgIyBXZSBvbmx5IHVzZSB0 aGlzIGNvZGUgZm9yIEdOVSBsZHMgdGhhdCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZS4KKysJICAg IHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScke3dsfS0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5j ZSAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICBlbHNlCisrCSAgICAjIEV4cG9ydGVkIHN5 bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKKysJ ICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSckY29udmVuaWVuY2UnCisrCSAgZmkKKysJICBh cmNoaXZlX2NtZHNfbmVlZF9sYz15ZXMKKysJICAjIFRoaXMgaXMgc2ltaWxhciB0byBob3cgQUlY IHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQgbGlicmFyaWVzLgorKwkgIGFyY2hpdmVf ZXhwc3ltX2NtZHM9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t YkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxhZ31+JEFSICRBUl9GTEFHUyAk b3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScK KysJZmkKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFtaWdhb3MqKQorKyAgICAgIGNh c2UgJGhvc3RfY3B1IGluCisrICAgICAgcG93ZXJwYykKKysgICAgICAgICAgICAjIHNlZSBjb21t ZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisrICAgICAgICAgICAgYXJjaGl2ZV9jbWRz PSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysgICAgICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRz PScnCisrICAgICAgICA7OworKyAgICAgIG02OGspCisrICAgICAgICAgICAgYXJjaGl2ZV9jbWRz PSckUk0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBOQU1F ICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZp bmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hP ICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5k YXRhfiRFQ0hPICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIv YTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGli fihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJworKyAgICAgICAgICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKysgICAgICAgICAgICBoYXJkY29k ZV9taW51c19MPXllcworKyAgICAgICAgOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysg ICAgYnNkaVs0NV0qKQorKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0tcmR5bmFtaWMK KysgICAgICA7OworKworKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisr ICAgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBh cmUgdXNpbmcKKysgICAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysrLgorKyAgICAgICMgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYyBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywgYXMgdGhlcmUgaXMK KysgICAgICAjIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgorKyAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9JyAnCisrICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQK KysgICAgICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90IC5hIGZpbGVzLgor KyAgICAgIGxpYmV4dD1saWIKKysgICAgICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmRsbCBmaWxl cywgbm90IC5zbyBmaWxlcy4KKysgICAgICBzaHJleHRfY21kcz0iLmRsbCIKKysgICAgICAjIEZJ WE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCisrICAgICAgYXJjaGl2 ZV9jbWRzPSckQ0MgLW8gJGxpYiAkbGlib2JqcyAkY29tcGlsZXJfZmxhZ3MgYGZ1bmNfZWNob19h bGwgIiRkZXBsaWJzIiB8ICRTRUQgJ1wnJ3MvIC1sYyQvLydcJydgIC1saW5rIC1kbGx+bGlua25h bWVzPScKKysgICAgICAjIFRoZSBsaW5rZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGJ1aWxkIGEgLmxp YiBmaWxlIGlmIHdlIGJ1aWxkIGEgRExMLgorKyAgICAgIG9sZF9hcmNoaXZlX2Zyb21fbmV3X2Nt ZHM9J3RydWUnCisrICAgICAgIyBGSVhNRTogU2hvdWxkIGxldCB0aGUgdXNlciBzcGVjaWZ5IHRo ZSBsaWIgcHJvZ3JhbS4KKysgICAgICBvbGRfYXJjaGl2ZV9jbWRzPSdsaWIgLU9VVDokb2xkbGli JG9sZG9ianMkb2xkX2RlcGxpYnMnCisrICAgICAgZml4X3NyY2ZpbGVfcGF0aD0nYGN5Z3BhdGgg LXcgIiRzcmNmaWxlImAnCisrICAgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1l cz15ZXMKKysgICAgICA7OworKworKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKworKworKyAg YXJjaGl2ZV9jbWRzX25lZWRfbGM9bm8KKysgIGhhcmRjb2RlX2RpcmVjdD1ubworKyAgaGFyZGNv ZGVfYXV0b21hdGljPXllcworKyAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj11bnN1cHBvcnRlZAor KyAgaWYgdGVzdCAiJGx0X2N2X2xkX2ZvcmNlX2xvYWQiID0gInllcyI7IHRoZW4KKysgICAgd2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWM9J2Bmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0 ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSAk e3dsfS1mb3JjZV9sb2FkLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZl bmllbmNlXCJgJworKyAgZWxzZQorKyAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJworKyAg ZmkKKysgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCisrICBhbGxvd191bmRlZmluZWRfZmxhZz0iJF9s dF9kYXJfYWxsb3dfdW5kZWZpbmVkIgorKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgIGlm b3J0KikgX2x0X2Rhcl9jYW5fc2hhcmVkPXllcyA7OworKyAgICAgKikgX2x0X2Rhcl9jYW5fc2hh cmVkPSRHQ0MgOzsKKysgIGVzYWMKKysgIGlmIHRlc3QgIiRfbHRfZGFyX2Nhbl9zaGFyZWQiID0g InllcyI7IHRoZW4KKysgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZnVuY19lY2hvX2FsbAor KyAgICBhcmNoaXZlX2NtZHM9IlwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxh ZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxf bmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICRfbHRfZGFyX3NpbmdsZV9tb2Qke19s dF9kc3ltdXRpbH0iCisrICAgIG1vZHVsZV9jbWRzPSJcJENDIFwkYWxsb3dfdW5kZWZpbmVkX2Zs YWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mk e19sdF9kc3ltdXRpbH0iCisrICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9InNlZCAncyxeLF8sJyA8 IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5l eHBzeW1+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwk bGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgv XCRzb25hbWUgXCR2ZXJzdHJpbmcgJHtfbHRfZGFyX3NpbmdsZV9tb2R9JHtfbHRfZGFyX2V4cG9y dF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKysgICAgbW9kdWxlX2V4cHN5bV9jbWRzPSJzZWQgLWUg J3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9 LXN5bWJvbHMuZXhwc3ltflwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVu ZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2Rhcl9leHBvcnRf c3ltc30ke19sdF9kc3ltdXRpbH0iCisrCisrICBlbHNlCisrICBsZF9zaGxpYnM9bm8KKysgIGZp CisrCisrICAgICAgOzsKKysKKysgICAgZGd1eCopCisrICAgICAgYXJjaGl2ZV9jbWRzPSckTEQg LUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisr ICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworKyAgICAgIGhhcmRj b2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICA7OworKworKyAgICBmcmVlYnNkMSopCisrICAg ICAgbGRfc2hsaWJzPW5vCisrICAgICAgOzsKKysKKysgICAgIyBGcmVlQlNEIDIuMi5bMDEyXSBh bGxvd3MgdXMgdG8gaW5jbHVkZSBjKytydDAubyB0byBnZXQgQysrIGNvbnN0cnVjdG9yCisrICAg ICMgc3VwcG9ydC4gIEZ1dHVyZSB2ZXJzaW9ucyBkbyB0aGlzIGF1dG9tYXRpY2FsbHksIGJ1dCBh biBleHBsaWNpdCBjKytydDAubworKyAgICAjIGRvZXMgbm90IGJyZWFrIGFueXRoaW5nLCBhbmQg aGVscHMgc2lnbmlmaWNhbnRseSAoYXQgdGhlIGNvc3Qgb2YgYSBsaXR0bGUKKysgICAgIyBleHRy YSBzcGFjZSkuCisrICAgIGZyZWVic2QyLjIqKQorKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1C c2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAvdXNyL2xp Yi9jKytydDAubycKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXIn CisrICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92 YXI9bm8KKysgICAgICA7OworKworKyAgICAjIFVuZm9ydHVuYXRlbHksIG9sZGVyIHZlcnNpb25z IG9mIEZyZWVCU0QgMiBkbyBub3QgaGF2ZSB0aGlzIGZlYXR1cmUuCisrICAgIGZyZWVic2QyKikK KysgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworKyAgICAg IGhhcmRjb2RlX21pbnVzX0w9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwor KyAgICAgIDs7CisrCisrICAgICMgRnJlZUJTRCAzIGFuZCBncmVhdGVyIHVzZXMgZ2NjIC1zaGFy ZWQgdG8gZG8gc2hhcmVkIGxpYnJhcmllcy4KKysgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQor KyAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIk bGliZGlyJworKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKysgICAgICBoYXJkY29kZV9zaGxp YnBhdGhfdmFyPW5vCisrICAgICAgOzsKKysKKysgICAgaHB1eDkqKQorKyAgICAgIGlmIHRlc3Qg IiRHQ0MiID0geWVzOyB0aGVuCisrCWFyY2hpdmVfY21kcz0nJFJNICRvdXRwdXRfb2JqZGlyLyRz b25hbWV+JENDIC1zaGFyZWQgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAk b3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc350 ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRz b25hbWUgJGxpYicKKysgICAgICBlbHNlCisrCWFyY2hpdmVfY21kcz0nJFJNICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWV+JExEIC1iICtiICRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8k c29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRp ci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCisrICAg ICAgZmkKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfStiICR7d2x9JGxp YmRpcicKKysgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKKysgICAgICBoYXJkY29k ZV9kaXJlY3Q9eWVzCisrCisrICAgICAgIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGlu IHRoZSBzZWFyY2ggUEFUSCwKKysgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBv ZiB0aGUgbGlicmFyeS4KKysgICAgICBoYXJkY29kZV9taW51c19MPXllcworKyAgICAgIGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tRScKKysgICAgICA7OworKworKyAgICBocHV4MTAq KQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBu bzsgdGhlbgorKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0k c29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxzZQorKwlhcmNoaXZlX2NtZHM9JyRMRCAt YiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQi ID0gbm87IHRoZW4KKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3dsfSRs aWJkaXInCisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9JytiICRsaWJkaXInCisrCWhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorKwloYXJkY29kZV9kaXJlY3Q9eWVzCisrCWhhcmRj b2RlX2RpcmVjdF9hYnNvbHV0ZT15ZXMKKysJZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3ds fS1FJworKwkjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRI LAorKwkjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysJaGFy ZGNvZGVfbWludXNfTD15ZXMKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGhwdXgxMSop CisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5v OyB0aGVuCisrCWNhc2UgJGhvc3RfY3B1IGluCisrCWhwcGEqNjQqKQorKwkgIGFyY2hpdmVfY21k cz0nJENDIC1zaGFyZWQgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJaWE2NCopCisrCSAgYXJjaGl2ZV9jbWRz PSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRy cGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7Owor KwkqKQorKwkgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRz b25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwllc2FjCisrICAgICAgZWxzZQorKwljYXNl ICRob3N0X2NwdSBpbgorKwlocHBhKjY0KikKKysJICBhcmNoaXZlX2NtZHM9JyRDQyAtYiAke3ds fStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKKysJICA7OworKwlpYTY0KikKKysJICBhcmNoaXZlX2NtZHM9JyRDQyAtYiAke3dsfStoICR7 d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKKysJICA7OworKwkqKQorKworKwkgICMgT2xkZXIgdmVyc2lvbnMg b2YgdGhlIDExLjAwIGNvbXBpbGVyIGRvIG5vdCB1bmRlcnN0YW5kIC1iIHlldAorKwkgICMgKEhQ OTI0NTMtMDEgQS4xMS4wMS4yMCBkb2Vzbid0LCBIUDkyNDUzLTAxIEIuMTEuWC4zNTE3NS0zNTE3 Ni5HUCBkb2VzKQorKwkgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgaWYgJENDIHVuZGVyc3RhbmRzIC1iIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBpZiAkQ0MgdW5kZXJzdGFuZHMgLWIuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3By b2dfY29tcGlsZXJfX2Irc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9wcm9nX2NvbXBpbGVyX19iPW5vCisrICAgc2F2ZV9M REZMQUdTPSIkTERGTEFHUyIKKysgICBMREZMQUdTPSIkTERGTEFHUyAtYiIKKysgICBlY2hvICIk bHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgICBpZiAoZXZh bCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7 IHRoZW4KKysgICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9w dGlvbiBpZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdh cm5pbmdzCisrICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgorKyAgICAgICAjIEFw cGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgorKyAgICAgICBjYXQgY29uZnRlc3Qu ZXJyIDE+JjUKKysgICAgICAgJEVDSE8gIiRfbHRfbGlua2VyX2JvaWxlcnBsYXRlIiB8ICRTRUQg Jy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAorKyAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29u ZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKKysgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAgY29u ZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVy X19iPXllcworKyAgICAgICBmaQorKyAgICAgZWxzZQorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBp bGVyX19iPXllcworKyAgICAgZmkKKysgICBmaQorKyAgICRSTSAtciBjb25mdGVzdCoKKysgICBM REZMQUdTPSIkc2F2ZV9MREZMQUdTIgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX19iIiA+JjUKKysk YXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfX2IiID4mNjsgfQorKworK2lmIHRlc3QgeCIk bHRfY3ZfcHJvZ19jb21waWxlcl9fYiIgPSB4eWVzOyB0aGVuCisrICAgIGFyY2hpdmVfY21kcz0n JENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrZWxzZQorKyAgICBh cmNoaXZlX2NtZHM9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRpciAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrZmkKKysKKysJICA7OworKwllc2Fj CisrICAgICAgZmkKKysgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJ aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisrCWhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorKworKwljYXNlICRob3N0X2NwdSBpbgorKwlocHBhKjY0 KnxpYTY0KikKKysJICBoYXJkY29kZV9kaXJlY3Q9bm8KKysJICBoYXJkY29kZV9zaGxpYnBhdGhf dmFyPW5vCisrCSAgOzsKKysJKikKKysJICBoYXJkY29kZV9kaXJlY3Q9eWVzCisrCSAgaGFyZGNv ZGVfZGlyZWN0X2Fic29sdXRlPXllcworKwkgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3 bH0tRScKKysKKysJICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJj aCBQQVRILAorKwkgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5 LgorKwkgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisrCSAgOzsKKysJZXNhYworKyAgICAgIGZpCisr ICAgICAgOzsKKysKKysgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysgICAgICBp ZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1l IGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lv biAke3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9v YmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkjIFRyeSB0byB1c2UgdGhlIC1leHBvcnRl ZF9zeW1ib2wgbGQgb3B0aW9uLCBpZiBpdCBkb2VzIG5vdAorKwkjIHdvcmssIGFzc3VtZSB0aGF0 IC1leHBvcnRzX2ZpbGUgZG9lcyBub3Qgd29yayBlaXRoZXIgYW5kCisrCSMgaW1wbGljaXRseSBl eHBvcnQgYWxsIHN5bWJvbHMuCisrICAgICAgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgorKyAg ICAgICAgTERGTEFHUz0iJExERkxBR1MgLXNoYXJlZCAke3dsfS1leHBvcnRlZF9zeW1ib2wgJHt3 bH1mb28gJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9L2Rldi9udWxsIgorKyAgICAgICAgY2F0 IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KKytpbnQgZm9vKHZvaWQpIHt9CisrX0FDRU9GCisraWYgYWNfZm5fY190cnlfbGlu ayAiJExJTkVOTyI7IHRoZW4gOgorKyAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25h bWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJz aW9uICR7d2x9JHZlcnN0cmluZyJgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0 X29iamRpcn0vc29fbG9jYXRpb25zICR7d2x9LWV4cG9ydHNfZmlsZSAke3dsfSRleHBvcnRfc3lt Ym9scyAtbyAkbGliJworKworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBcCisrICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Cisr ICAgICAgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgorKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9j bWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFt ZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICItc2V0X3Zl cnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19s b2NhdGlvbnMgLW8gJGxpYicKKysJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAi JHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAt dXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1leHBvcnRzX2Zp bGUgJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAgICAgZmkKKysgICAgICBhcmNoaXZlX2Nt ZHNfbmVlZF9sYz0nbm8nCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0t cnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9Ogor KyAgICAgIGluaGVyaXRfcnBhdGg9eWVzCisrICAgICAgbGlua19hbGxfZGVwbGlicz15ZXMKKysg ICAgICA7OworKworKyAgICBuZXRic2QqKQorKyAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAt RSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVfY21kcz0nJExE IC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICMg YS5vdXQKKysgICAgICBlbHNlCisrCWFyY2hpdmVfY21kcz0nJExEIC1zaGFyZWQgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgICAgICMgRUxGCisrICAgICAgZmkKKysg ICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCisrICAgICAgaGFyZGNv ZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICA7 OworKworKyAgICBuZXdzb3M2KQorKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25h bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGhhcmRj b2RlX2RpcmVjdD15ZXMKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1y cGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06Cisr ICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisrICAgICpudG8q IHwgKnFueCopCisrICAgICAgOzsKKysKKysgICAgb3BlbmJzZCopCisrICAgICAgaWYgdGVzdCAt ZiAvdXNyL2xpYmV4ZWMvbGQuc287IHRoZW4KKysJaGFyZGNvZGVfZGlyZWN0PXllcworKwloYXJk Y29kZV9zaGxpYnBhdGhfdmFyPW5vCisrCWhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT15ZXMKKysJ aWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8 IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgor KwkgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAt c2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9scycKKysJICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCwkbGliZGlyJworKwkgIGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlYz0nJHt3bH0tRScKKysJZWxzZQorKwkgIGNhc2UgJGhvc3Rfb3MgaW4KKysJ ICAgb3BlbmJzZFswMV0uKiB8IG9wZW5ic2QyLlswLTddIHwgb3BlbmJzZDIuWzAtN10uKikKKysJ ICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MnCisrCSAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIk bGliZGlyJworKwkgICAgIDs7CisrCSAgICopCisrCSAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNo YXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn CisrCSAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGgsJGxpYmRpcicK KysJICAgICA7OworKwkgIGVzYWMKKysJZmkKKysgICAgICBlbHNlCisrCWxkX3NobGlicz1ubwor KyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgb3MyKikKKysgICAgICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKysg ICAgICBhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAorKyAgICAgIGFyY2hpdmVfY21k cz0nJEVDSE8gIkxJQlJBUlkgJGxpYm5hbWUgSU5JVElOU1RBTkNFIiA+ICRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLmRlZn4kRUNITyAiREVTQ1JJUFRJT04gXCIkbGlibmFtZVwiIiA+PiAkb3V0cHV0 X29iamRpci8kbGlibmFtZS5kZWZ+ZWNobyBEQVRBID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l LmRlZn5lY2hvICIgU0lOR0xFIE5PTlNIQVJFRCIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu ZGVmfmVjaG8gRVhQT1JUUyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZW14ZXhwICRs aWJvYmpzID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kQ0MgLVpkbGwgLVpjcnRkbGwg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJG91dHB1dF9vYmpkaXIv JGxpYm5hbWUuZGVmJworKyAgICAgIG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9J2VteGltcCAt byAkb3V0cHV0X29iamRpci8kbGlibmFtZS5hICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicK KysgICAgICA7OworKworKyAgICBvc2YzKikKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsg dGhlbgorKwlhbGxvd191bmRlZmluZWRfZmxhZz0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7 d2x9XConCisrCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFn fSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNv bmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3Zl cnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRw dXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysgICAgICBlbHNlCisrCWFsbG93X3Vu ZGVmaW5lZF9mbGFnPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJworKwlhcmNoaXZlX2NtZHM9JyRD QyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19l Y2hvX2FsbCAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0 cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrICAgICAgZmkKKysgICAgICBhcmNo aXZlX2NtZHNfbmVlZF9sYz0nbm8nCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0n JHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3I9OgorKyAgICAgIDs7CisrCisrICAgIG9zZjQqIHwgb3NmNSopCSMgYXMgb3NmMyogd2l0aCB0 aGUgYWRkaXRpb24gb2YgLW1zeW0gZmxhZworKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0 aGVuCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3 bH1cKicKKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9 ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNvbmFt ZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7 d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyJgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAk e3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCWhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgICBlbHNlCisr CWFsbG93X3VuZGVmaW5lZF9mbGFnPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJworKwlhcmNoaXZl X2NtZHM9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0 cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRl X3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCWFyY2hp dmVfZXhwc3ltX2NtZHM9J2ZvciBpIGluIGBjYXQgJGV4cG9ydF9zeW1ib2xzYDsgZG8gcHJpbnRm ICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAiXCRpIiA+PiAkbGliLmV4cDsgZG9uZTsgcHJp bnRmICIlc1xcbiIgIi1oaWRkZW4iPj4gJGxpYi5leHB+CisrCSRDQyAtc2hhcmVkJHthbGxvd191 bmRlZmluZWRfZmxhZ30gJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4cCAkY29tcGlsZXJfZmxhZ3Mg JGxpYm9ianMgJGRlcGxpYnMgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAm JiAkRUNITyAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0 cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+JFJNICRsaWIuZXhwJworKworKwkjIEJv dGggYyBhbmQgY3h4IGNvbXBpbGVyIHN1cHBvcnQgLXJwYXRoIGRpcmVjdGx5CisrCWhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWM9Jy1ycGF0aCAkbGliZGlyJworKyAgICAgIGZpCisrICAgICAgYXJj aGl2ZV9jbWRzX25lZWRfbGM9J25vJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9 OgorKyAgICAgIDs7CisrCisrICAgIHNvbGFyaXMqKQorKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFn PScgLXogZGVmcycKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwl3bGFyYz0n JHt3bH0nCisrCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHt3bH0teiAke3dsfXRleHQgJHt3 bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCisrCWFyY2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5j YXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJICAkQ0MgLXNoYXJlZCAke3dsfS16 ICR7d2x9dGV4dCAke3dsfS1NICR7d2x9JGxpYi5leHAgJHt3bH0taCAke3dsfSRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKyAg ICAgIGVsc2UKKysJY2FzZSBgJENDIC1WIDI+JjFgIGluCisrCSoiQ29tcGlsZXJzIDUuMCIqKQor KwkgIHdsYXJjPScnCisrCSAgYXJjaGl2ZV9jbWRzPSckTEQgLUcke2FsbG93X3VuZGVmaW5lZF9m bGFnfSAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycK KysJICBhcmNoaXZlX2V4cHN5bV9jbWRzPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0 ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVj aG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCSAgJExEIC1HJHthbGxvd191bmRlZmlu ZWRfZmxhZ30gLU0gJGxpYi5leHAgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKwkgIDs7CisrCSopCisrCSAgd2xhcmM9JyR7 d2x9JworKwkgIGFyY2hpdmVfY21kcz0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgg JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICBh cmNoaXZlX2V4cHN5bV9jbWRzPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBv cnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxv Y2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCSAgJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxh Z30gLU0gJGxpYi5leHAgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCisrCSAgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJworKyAgICAgIGhhcmRjb2Rl X3NobGlicGF0aF92YXI9bm8KKysgICAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgc29sYXJp czIuWzAtNV0gfCBzb2xhcmlzMi5bMC01XS4qKSA7OworKyAgICAgICopCisrCSMgVGhlIGNvbXBp bGVyIGRyaXZlciB3aWxsIGNvbWJpbmUgYW5kIHJlb3JkZXIgbGlua2VyIG9wdGlvbnMsCisrCSMg YnV0IHVuZGVyc3RhbmRzIGAteiBsaW5rZXJfZmxhZycuICBHQ0MgZGlzY2FyZHMgaXQgd2l0aG91 dCBgJHdsJywKKysJIyBidXQgaXMgY2FyZWZ1bCBlbm91Z2ggbm90IHRvIHJlb3JkZXIuCisrCSMg U3VwcG9ydGVkIHNpbmNlIFNvbGFyaXMgMi42IChtYXliZSAyLjUuMT8pCisrCWlmIHRlc3QgIiRH Q0MiID0geWVzOyB0aGVuCisrCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7d2x9LXogJHt3 bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcKKysJ ZWxzZQorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScteiBhbGxleHRyYWN0JGNvbnZlbmll bmNlIC16IGRlZmF1bHRleHRyYWN0JworKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICBs aW5rX2FsbF9kZXBsaWJzPXllcworKyAgICAgIDs7CisrCisrICAgIHN1bm9zNCopCisrICAgICAg aWYgdGVzdCAieCRob3N0X3ZlbmRvciIgPSB4c2VxdWVudDsgdGhlbgorKwkjIFVzZSAkQ0MgdG8g bGluayB1bmRlciBzZXF1ZW50LCBiZWNhdXNlIGl0IHRocm93cyBpbiBzb21lIGV4dHJhIC5vCisr CSMgZmlsZXMgdGhhdCBtYWtlIC5pbml0IGFuZCAuZmluaSBzZWN0aW9ucyB3b3JrLgorKwlhcmNo aXZlX2NtZHM9JyRDQyAtRyAke3dsfS1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxzZQorKwlhcmNoaXZlX2NtZHM9JyRMRCAtYXNz ZXJ0IHB1cmUtdGV4dCAtQnN0YXRpYyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf ZmxhZ3MnCisrICAgICAgZmkKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRs aWJkaXInCisrICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2RlX21pbnVz X0w9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisr ICAgIHN5c3Y0KQorKyAgICAgIGNhc2UgJGhvc3RfdmVuZG9yIGluCisrCXNuaSkKKysJICBhcmNo aXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFncycKKysJICBoYXJkY29kZV9kaXJlY3Q9eWVzICMgaXMgdGhpcyByZWFsbHkgdHJ1 ZT8/PworKwk7OworKwlzaWVtZW5zKQorKwkgICMjIExEIGlzIGxkIGl0IG1ha2VzIGEgUExBTUxJ QgorKwkgICMjIENDIGp1c3QgbWFrZXMgYSBHcm9zc01vZHVsZS4KKysJICBhcmNoaXZlX2NtZHM9 JyRMRCAtRyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCSAgcmVs b2FkX2NtZHM9JyRDQyAtciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJworKwkgIGhhcmRjb2RlX2Rp cmVjdD1ubworKyAgICAgICAgOzsKKysJbW90b3JvbGEpCisrCSAgYXJjaGl2ZV9jbWRzPSckTEQg LUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisr CSAgaGFyZGNvZGVfZGlyZWN0PW5vICNNb3Rvcm9sYSBtYW51YWwgc2F5cyB5ZXMsIGJ1dCBteSB0 ZXN0cyBzYXkgdGhleSBsaWUKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgcnVucGF0aF92YXI9 J0xEX1JVTl9QQVRIJworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICA7 OworKworKyAgICBzeXN2NC4zKikKKysgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBoYXJk Y29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPSct QmV4cG9ydCcKKysgICAgICA7OworKworKyAgICBzeXN2NCpNUCopCisrICAgICAgaWYgdGVzdCAt ZCAvdXNyL25lYzsgdGhlbgorKwlhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJaGFyZGNvZGVfc2hsaWJwYXRo X3Zhcj1ubworKwlydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorKwloYXJkY29kZV9ydW5wYXRoX3Zh cj15ZXMKKysJbGRfc2hsaWJzPXllcworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgc3lz djQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcuWzAxXS5bMTBdKiB8IHVu aXh3YXJlNyogfCBzY28zLjJ2NS4wLlswMjRdKikKKysgICAgICBub191bmRlZmluZWRfZmxhZz0n JHt3bH0teix0ZXh0JworKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjPW5vCisrICAgICAgaGFy ZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcK KysKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlhcmNoaXZlX2NtZHM9JyRD QyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJHt3bH0tQmV4 cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzPSckQ0Mg LUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0 X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzJworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgc3lzdjUqIHwgc2NvMy4y djUqIHwgc2NvNXY2KikKKysgICAgICAjIE5vdGU6IFdlIGNhbiBOT1QgdXNlIC16IGRlZnMgYXMg d2UgbWlnaHQgZGVzaXJlLCBiZWNhdXNlIHdlIGRvIG5vdAorKyAgICAgICMgbGluayB3aXRoIC1s YywgYW5kIHRoYXQgd291bGQgY2F1c2UgYW55IHN5bWJvbHMgdXNlZCBmcm9tIGxpYmMgdG8KKysg ICAgICAjIGFsd2F5cyBiZSB1bnJlc29sdmVkLCB3aGljaCBtZWFucyBqdXN0IGFib3V0IG5vIGxp YnJhcnkgd291bGQKKysgICAgICAjIGV2ZXIgbGluayBjb3JyZWN0bHkuICBJZiB3ZSdyZSBub3Qg dXNpbmcgR05VIGxkIHdlIHVzZSAteiB0ZXh0CisrICAgICAgIyB0aG91Z2gsIHdoaWNoIGRvZXMg Y2F0Y2ggc29tZSBiYWQgc3ltYm9scyBidXQgaXNuJ3QgYXMgaGVhdnktaGFuZGVkCisrICAgICAg IyBhcyAteiBkZWZzLgorKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFnPScke3dsfS16LHRleHQnCisr ICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyR7d2x9LXosbm9kZWZzJworKyAgICAgIGFyY2hp dmVfY21kc19uZWVkX2xjPW5vCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LVIsJGxpYmRpcicKKysgICAgICBo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSc6JworKyAgICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVz CisrICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1CZXhwb3J0JworKyAgICAg IHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHll czsgdGhlbgorKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1f Y21kcz0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwk c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAg IGVsc2UKKysJYXJjaGl2ZV9jbWRzPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSck Q0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGZpCisrICAgICAg OzsKKysKKysgICAgdXRzNCopCisrICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0 aF92YXI9bm8KKysgICAgICA7OworKworKyAgICAqKQorKyAgICAgIGxkX3NobGlicz1ubworKyAg ICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgaWYgdGVzdCB4JGhvc3RfdmVuZG9yID0geHNuaTsg dGhlbgorKyAgICAgIGNhc2UgJGhvc3QgaW4KKysgICAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwg c3lzdjQuMyogfCBzeXN2NSopCisrCWV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tQmxh cmdlZHluc3ltJworKwk7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysgIGZpCisrCisreyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsZF9zaGxpYnMiID4m NQorKyRhc19lY2hvICIkbGRfc2hsaWJzIiA+JjY7IH0KKyt0ZXN0ICIkbGRfc2hsaWJzIiA9IG5v ICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KKysKKyt3aXRoX2dudV9sZD0kd2l0aF9nbnVfbGQKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysjCisrIyBEbyB3ZSBu ZWVkIHRvIGV4cGxpY2l0bHkgbGluayBsaWJjPworKyMKKytjYXNlICJ4JGFyY2hpdmVfY21kc19u ZWVkX2xjIiBpbgorK3h8eHllcykKKysgICMgQXNzdW1lIC1sYyBzaG91bGQgYmUgYWRkZWQKKysg IGFyY2hpdmVfY21kc19uZWVkX2xjPXllcworKworKyAgaWYgdGVzdCAiJGVuYWJsZV9zaGFyZWQi ID0geWVzICYmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgIGNhc2UgJGFyY2hpdmVfY21k cyBpbgorKyAgICAqJ34nKikKKysgICAgICAjIEZJWE1FOiB3ZSBtYXkgaGF2ZSB0byBkZWFsIHdp dGggbXVsdGktY29tbWFuZCBzZXF1ZW5jZXMuCisrICAgICAgOzsKKysgICAgJyRDQyAnKikKKysg ICAgICAjIFRlc3Qgd2hldGhlciB0aGUgY29tcGlsZXIgaW1wbGljaXRseSBsaW5rcyB3aXRoIC1s YyBzaW5jZSBvbiBzb21lCisrICAgICAgIyBzeXN0ZW1zLCAtbGdjYyBoYXMgdG8gY29tZSBiZWZv cmUgLWxjLiBJZiBnY2MgYWxyZWFkeSBwYXNzZXMgLWxjCisrICAgICAgIyB0byBsZCwgZG9uJ3Qg YWRkIC1sYyBiZWZvcmUgLWxnY2MuCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBs aW5rZWQgaW4iID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgLWxjIHNob3VsZCBi ZSBleHBsaWNpdGx5IGxpbmtlZCBpbi4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfYXJj aGl2ZV9jbWRzX25lZWRfbGMrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICAkUk0gY29uZnRlc3QqCisrCWVjaG8gIiRsdF9zaW1wbGVf Y29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKworKwlpZiB7IHsgZXZhbCBl Y2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTogXCIkYWNfY29tcGlsZVwiIjsg fSA+JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4m NQorKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgorKwkgIHNv bmFtZT1jb25mdGVzdAorKwkgIGxpYj1jb25mdGVzdAorKwkgIGxpYm9ianM9Y29uZnRlc3QuJGFj X29iamV4dAorKwkgIGRlcGxpYnM9CisrCSAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2wKKysJICBw aWNfZmxhZz0kbHRfcHJvZ19jb21waWxlcl9waWMKKysJICBjb21waWxlcl9mbGFncz0tdgorKwkg IGxpbmtlcl9mbGFncz0tdgorKwkgIHZlcnN0cmluZz0KKysJICBvdXRwdXRfb2JqZGlyPS4KKysJ ICBsaWJuYW1lPWNvbmZ0ZXN0CisrCSAgbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZz0kYWxs b3dfdW5kZWZpbmVkX2ZsYWcKKysJICBhbGxvd191bmRlZmluZWRfZmxhZz0KKysJICBpZiB7IHsg ZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTogXCIkYXJjaGl2ZV9j bWRzIDJcPlwmMSBcfCAkR1JFUCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxXCIiOyB9ID4m NQorKyAgKGV2YWwgJGFyY2hpdmVfY21kcyAyXD5cJjEgXHwgJEdSRVAgXCIgLWxjIFwiIFw+L2Rl di9udWxsIDJcPlwmMSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIHRlc3QgJGFj X3N0YXR1cyA9IDA7IH0KKysJICB0aGVuCisrCSAgICBsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9s Yz1ubworKwkgIGVsc2UKKysJICAgIGx0X2N2X2FyY2hpdmVfY21kc19uZWVkX2xjPXllcworKwkg IGZpCisrCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2Zs YWcKKysJZWxzZQorKwkgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKwlmaQorKwkkUk0gY29uZnRl c3QqCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogJGx0X2N2X2FyY2hpdmVfY21kc19uZWVkX2xjIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2 X2FyY2hpdmVfY21kc19uZWVkX2xjIiA+JjY7IH0KKysgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9s Yz0kbHRfY3ZfYXJjaGl2ZV9jbWRzX25lZWRfbGMKKysgICAgICA7OworKyAgICBlc2FjCisrICBm aQorKyAgOzsKKytlc2FjCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGlj cyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0 aWNzLi4uICIgPiY2OyB9CisrCisraWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgIGNhc2Ug JGhvc3Rfb3MgaW4KKysgICAgZGFyd2luKikgbHRfYXdrX2FyZz0iL15saWJyYXJpZXM6LywvTFIv IiA7OworKyAgICAqKSBsdF9hd2tfYXJnPSIvXmxpYnJhcmllczovIiA7OworKyAgZXNhYworKyAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgICBtaW5ndyogfCBjZWdjYyopIGx0X3NlZF9zdHJpcF9lcT0i cyw9XChbQS1aYS16XTpcKSxcMSxnIiA7OworKyAgICAqKSBsdF9zZWRfc3RyaXBfZXE9InMsPS8s LyxnIiA7OworKyAgZXNhYworKyAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFy Y2gtZGlycyB8IGF3ayAkbHRfYXdrX2FyZyB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUg JGx0X3NlZF9zdHJpcF9lcWAKKysgIGNhc2UgJGx0X3NlYXJjaF9wYXRoX3NwZWMgaW4KKysgICpc OyopCisrICAgICMgaWYgdGhlIHBhdGggY29udGFpbnMgIjsiIHRoZW4gd2UgYXNzdW1lIGl0IHRv IGJlIHRoZSBzZXBhcmF0b3IKKysgICAgIyBvdGhlcndpc2UgZGVmYXVsdCB0byB0aGUgc3RhbmRh cmQgcGF0aCBzZXBhcmF0b3IgKGkuZS4gIjoiKSAtIGl0IGlzCisrICAgICMgYXNzdW1lZCB0aGF0 IG5vIHBhcnQgb2YgYSBub3JtYWwgcGF0aG5hbWUgY29udGFpbnMgIjsiIGJ1dCB0aGF0IHNob3Vs ZAorKyAgICAjIG9rYXkgaW4gdGhlIHJlYWwgd29ybGQgd2hlcmUgIjsiIGluIGRpcnBhdGhzIGlz IGl0c2VsZiBwcm9ibGVtYXRpYy4KKysgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRs dF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgJ3MvOy8gL2cnYAorKyAgICA7OworKyAgKikKKysg ICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRT RUQgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCisrICAgIDs7CisrICBlc2FjCisrICAjIE9rLCBu b3cgd2UgaGF2ZSB0aGUgcGF0aCwgc2VwYXJhdGVkIGJ5IHNwYWNlcywgd2UgY2FuIHN0ZXAgdGhy b3VnaCBpdAorKyAgIyBhbmQgYWRkIG11bHRpbGliIGRpciBpZiBuZWNlc3NhcnkuCisrICBsdF90 bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0KKysgIGx0X211bHRpX29zX2Rpcj1gJENDICRDUFBGTEFH UyAkQ0ZMQUdTICRMREZMQUdTIC1wcmludC1tdWx0aS1vcy1kaXJlY3RvcnkgMj4vZGV2L251bGxg CisrICBmb3IgbHRfc3lzX3BhdGggaW4gJGx0X3NlYXJjaF9wYXRoX3NwZWM7IGRvCisrICAgIGlm IHRlc3QgLWQgIiRsdF9zeXNfcGF0aC8kbHRfbXVsdGlfb3NfZGlyIjsgdGhlbgorKyAgICAgIGx0 X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMgJGx0 X3N5c19wYXRoLyRsdF9tdWx0aV9vc19kaXIiCisrICAgIGVsc2UKKysgICAgICB0ZXN0IC1kICIk bHRfc3lzX3BhdGgiICYmIFwKKysJbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9IiRsdF90bXBf bHRfc2VhcmNoX3BhdGhfc3BlYyAkbHRfc3lzX3BhdGgiCisrICAgIGZpCisrICBkb25lCisrICBs dF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjIiB8 IGF3ayAnCisrQkVHSU4ge1JTPSIgIjsgRlM9Ii98XG4iO30geworKyAgbHRfZm9vPSIiOworKyAg bHRfY291bnQ9MDsKKysgIGZvciAobHRfaSA9IE5GOyBsdF9pID4gMDsgbHRfaS0tKSB7CisrICAg IGlmICgkbHRfaSAhPSAiIiAmJiAkbHRfaSAhPSAiLiIpIHsKKysgICAgICBpZiAoJGx0X2kgPT0g Ii4uIikgeworKyAgICAgICAgbHRfY291bnQrKzsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAg aWYgKGx0X2NvdW50ID09IDApIHsKKysgICAgICAgICAgbHRfZm9vPSIvIiAkbHRfaSBsdF9mb287 CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICBsdF9jb3VudC0tOworKyAgICAgICAgfQor KyAgICAgIH0KKysgICAgfQorKyAgfQorKyAgaWYgKGx0X2ZvbyAhPSAiIikgeyBsdF9mcmVxW2x0 X2Zvb10rKzsgfQorKyAgaWYgKGx0X2ZyZXFbbHRfZm9vXSA9PSAxKSB7IHByaW50IGx0X2Zvbzsg fQorK30nYAorKyAgIyBBV0sgcHJvZ3JhbSBhYm92ZSBlcnJvbmVvdXNseSBwcmVwZW5kcyAnLycg dG8gQzovZG9zL3BhdGhzCisrICAjIGZvciB0aGVzZSBob3N0cy4KKysgIGNhc2UgJGhvc3Rfb3Mg aW4KKysgICAgbWluZ3cqIHwgY2VnY2MqKSBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0 X3NlYXJjaF9wYXRoX3NwZWMiIHxcCisrICAgICAgJFNFRCAncywvXChbQS1aYS16XTpcKSxcMSxn J2AgOzsKKysgIGVzYWMKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9z ZWFyY2hfcGF0aF9zcGVjIiB8ICRsdF9OTDJTUGAKKytlbHNlCisrICBzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9Ii9saWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCisrZmkKKytsaWJyYXJ5X25h bWVzX3NwZWM9CisrbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKKytzb25hbWVfc3BlYz0KKytzaHJl eHRfY21kcz0iLnNvIgorK3Bvc3RpbnN0YWxsX2NtZHM9CisrcG9zdHVuaW5zdGFsbF9jbWRzPQor K2ZpbmlzaF9jbWRzPQorK2ZpbmlzaF9ldmFsPQorK3NobGlicGF0aF92YXI9Cisrc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXVua25vd24KKyt2ZXJzaW9uX3R5cGU9bm9uZQorK2R5bmFtaWNf bGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKKytzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xp YiAvdXNyL2xpYiIKKytuZWVkX2xpYl9wcmVmaXg9dW5rbm93bgorK2hhcmRjb2RlX2ludG9fbGli cz1ubworKworKyMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lvbiB0byBubywgbWFrZSBzdXJlIGl0 IGRvZXMgbm90IGNhdXNlIC1zZXRfdmVyc2lvbgorKyMgZmxhZ3MgdG8gYmUgbGVmdCB3aXRob3V0 IGFyZ3VtZW50cworK25lZWRfdmVyc2lvbj11bmtub3duCisrCisrY2FzZSAkaG9zdF9vcyBpbgor K2FpeDMqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUuYScKKysg IHNobGlicGF0aF92YXI9TElCUEFUSAorKworKyAgIyBBSVggMyBoYXMgbm8gdmVyc2lvbmluZyBz dXBwb3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRvIHRoZSBuYW1lLgorKyAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIDs7 CisrCisrYWl4WzQtOV0qKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVm aXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAg aWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysgICAgIyBBSVggNSBzdXBwb3J0cyBJ QTY0CisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU SAorKyAgZWxzZQorKyAgICAjIFdpdGggR0NDIHVwIHRvIDIuOTUueCwgY29sbGVjdDIgd291bGQg Y3JlYXRlIGFuIGltcG9ydCBmaWxlCisrICAgICMgZm9yIGRlcGVuZGVuY2UgbGlicmFyaWVzLiAg VGhlIGltcG9ydCBmaWxlIHdvdWxkIHN0YXJ0IHdpdGgKKysgICAgIyB0aGUgbGluZSBgIyEgLicu ICBUaGlzIHdvdWxkIGNhdXNlIHRoZSBnZW5lcmF0ZWQgbGlicmFyeSB0bworKyAgICAjIGRlcGVu ZCBvbiBgLicsIGFsd2F5cyBhbiBpbnZhbGlkIGxpYnJhcnkuICBUaGlzIHdhcyBmaXhlZCBpbgor KyAgICAjIGRldmVsb3BtZW50IHNuYXBzaG90cyBvZiBHQ0MgcHJpb3IgdG8gMy4wLgorKyAgICBj YXNlICRob3N0X29zIGluCisrICAgICAgYWl4NCB8IGFpeDQuWzAxXSB8IGFpeDQuWzAxXS4qKQor KyAgICAgIGlmIHsgZWNobyAnI2lmIF9fR05VQ19fID4gMiB8fCAoX19HTlVDX18gPT0gMiAmJiBf X0dOVUNfTUlOT1JfXyA+PSA5NyknCisrCSAgIGVjaG8gJyB5ZXMgJworKwkgICBlY2hvICcjZW5k aWYnOyB9IHwgJHtDQ30gLUUgLSB8ICRHUkVQIHllcyA+IC9kZXYvbnVsbDsgdGhlbgorKwk6Cisr ICAgICAgZWxzZQorKwljYW5fYnVpbGRfc2hhcmVkPW5vCisrICAgICAgZmkKKysgICAgICA7Owor KyAgICBlc2FjCisrICAgICMgQUlYIChvbiBQb3dlciopIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBv cnQsIHNvIGN1cnJlbnRseSB3ZSBjYW4gbm90IGhhcmRjb2RlIGNvcnJlY3QKKysgICAgIyBzb25h bWUgaW50byBleGVjdXRhYmxlLiBQcm9iYWJseSB3ZSBjYW4gYWRkIHZlcnNpb25pbmcgc3VwcG9y dCB0bworKyAgICAjIGNvbGxlY3QyLCBzbyBhZGRpdGlvbmFsIGxpbmtzIGNhbiBiZSB1c2VmdWwg aW4gZnV0dXJlLgorKyAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7 IHRoZW4KKysgICAgICAjIElmIHVzaW5nIHJ1biB0aW1lIGxpbmtpbmcgKG9uIEFJWCA0LjIgb3Ig bGF0ZXIpIHVzZSBsaWI8bmFtZT4uc28KKysgICAgICAjIGluc3RlYWQgb2YgbGliPG5hbWU+LmEg dG8gbGV0IHBlb3BsZSBrbm93IHRoYXQgdGhlc2UgYXJlIG5vdAorKyAgICAgICMgdHlwaWNhbCBB SVggc2hhcmVkIGxpYnJhcmllcy4KKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgZWxzZQorKyAg ICAgICMgV2UgcHJlc2VydmUgLmEgYXMgZXh0ZW5zaW9uIGZvciBzaGFyZWQgbGlicmFyaWVzIHRo cm91Z2ggQUlYNC4yCisrICAgICAgIyBhbmQgbGF0ZXIgd2hlbiB3ZSBhcmUgbm90IGRvaW5nIHJ1 biB0aW1lIGxpbmtpbmcuCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfS5hICRsaWJuYW1lLmEnCisrICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgZmkKKysgICAgc2hsaWJwYXRoX3Zhcj1M SUJQQVRICisrICBmaQorKyAgOzsKKysKKythbWlnYW9zKikKKysgIGNhc2UgJGhvc3RfY3B1IGlu CisrICBwb3dlcnBjKQorKyAgICAjIFNpbmNlIEp1bHkgMjAwNyBBbWlnYU9TNCBvZmZpY2lhbGx5 IHN1cHBvcnRzIC5zbyBsaWJyYXJpZXMuCisrICAgICMgV2hlbiBjb21waWxpbmcgdGhlIGV4ZWN1 dGFibGUsIGFkZCAtdXNlLWR5bmxkIC1Mc29ianM6IHRvIHRoZSBjb21waWxlbGluZS4KKysgICAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCisrICAgIDs7CisrICBtNjhrKQorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyRsaWJuYW1lLml4bGlicmFyeSAkbGlibmFtZS5hJworKyAgICAjIENyZWF0ZSAke2xpYm5hbWV9 X2l4bGlicmFyeS5hIGVudHJpZXMgaW4gL3N5cy9saWJzLgorKyAgICBmaW5pc2hfZXZhbD0nZm9y IGxpYiBpbiBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYvbnVsbGA7IGRvIGxpYm5hbWU9 YGZ1bmNfZWNob19hbGwgIiRsaWIiIHwgJFNFRCAnXCcncyVeLiovXChbXi9dKlwpXC5peGxpYnJh cnkkJVwxJSdcJydgOyB0ZXN0ICRSTSAvc3lzL2xpYnMvJHtsaWJuYW1lfV9peGxpYnJhcnkuYTsg JHNob3cgImNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEi OyBjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIHx8IGV4 aXQgMTsgZG9uZScKKysgICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrYmVvcyopCisrICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworKyAgZHluYW1pY19saW5r ZXI9IiRob3N0X29zIGxkLnNvIgorKyAgc2hsaWJwYXRoX3Zhcj1MSUJSQVJZX1BBVEgKKysgIDs7 CisrCisrYnNkaVs0NV0qKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX3ZlcnNpb249 bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxp Ym5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4i IGxkY29uZmlnICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9YMTEvbGliIC91 c3IvY29udHJpYi9saWIgL2xpYiAvdXNyL2xvY2FsL2xpYiIKKysgIHN5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCisrICAjIHRoZSBkZWZh dWx0IGxkLnNvLmNvbmYgYWxzbyBjb250YWlucyAvdXNyL2NvbnRyaWIvbGliIGFuZAorKyAgIyAv dXNyL1gxMVI2L2xpYiAoL3Vzci9YMTEgaXMgYSBsaW5rIHRvIC91c3IvWDExUjYpLCBidXQgbGV0 IHVzIGFsbG93CisrICAjIGxpYnRvb2wgdG8gaGFyZC1jb2RlIHRoZXNlIGludG8gcHJvZ3JhbXMK KysgIDs7CisrCisrY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorKyAgdmVyc2lv bl90eXBlPXdpbmRvd3MKKysgIHNocmV4dF9jbWRzPSIuZGxsIgorKyAgbmVlZF92ZXJzaW9uPW5v CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysKKysgIGNhc2UgJEdDQywkaG9zdF9vcyBpbgorKyAg eWVzLGN5Z3dpbiogfCB5ZXMsbWluZ3cqIHwgeWVzLHB3MzIqIHwgeWVzLGNlZ2NjKikKKysgICAg bGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwuYScKKysgICAgIyBETEwgaXMgaW5zdGFs bGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21kcworKyAgICBwb3N0aW5z dGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwke2ZpbGV9YH4KKysgICAgICBkbHBhdGg9 YCRTSEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcnaTsgZWNobyBc JGRsbmFtZSdcJydgfgorKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4K KysgICAgICB0ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4KKysgICAgICAkaW5z dGFsbF9wcm9nICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+CisrICAgICAgY2htb2QgYSt4 IFwkZGxkaXIvJGRsbmFtZX4KKysgICAgICBpZiB0ZXN0IC1uICdcJyckc3RyaXBtZSdcJycgJiYg dGVzdCAtbiAnXCcnJHN0cmlwbGliJ1wnJzsgdGhlbgorKyAgICAgICAgZXZhbCAnXCcnJHN0cmlw bGliIFwkZGxkaXIvJGRsbmFtZSdcJycgfHwgZXhpdCBcJD87CisrICAgICAgZmknCisrICAgIHBv c3R1bmluc3RhbGxfY21kcz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1jICdcJycuICRmaWxlOyBlY2hv IFwkZGxuYW1lJ1wnJ2B+CisrICAgICAgZGxwYXRoPSRkaXIvXCRkbGRsbH4KKysgICAgICAgJFJN IFwkZGxwYXRoJworKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrCisrICAg IGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgY3lnd2luKikKKysgICAgICAjIEN5Z3dpbiBETExzIHVz ZSAnY3lnJyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKKysgICAgICBzb25hbWVfc3BlYz0nYGVj aG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL2N5Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCAk U0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisrCisrICAgICAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC91c3Iv bGliL3czMmFwaSIKKysgICAgICA7OworKyAgICBtaW5ndyogfCBjZWdjYyopCisrICAgICAgIyBN aW5HVyBETExzIHVzZSB0cmFkaXRpb25hbCAnbGliJyBwcmVmaXgKKysgICAgICBzb25hbWVfc3Bl Yz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVy c3VmZml4fSR7c2hhcmVkX2V4dH0nCisrICAgICAgOzsKKysgICAgcHczMiopCisrICAgICAgIyBw dzMyIERMTHMgdXNlICdwdycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCisrICAgICAgbGlicmFy eV9uYW1lc19zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvcHcvJ2BgZWNo byAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9l eHR9JworKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgOzsKKysKKysgICopCisrICAgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1su XS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUubGliJworKyAgICA7Owor KyAgZXNhYworKyAgZHluYW1pY19saW5rZXI9J1dpbjMyIGxkLmV4ZScKKysgICMgRklYTUU6IGZp cnN0IHdlIHNob3VsZCBzZWFyY2ggLiBhbmQgdGhlIGRpcmVjdG9yeSB0aGUgZXhlY3V0YWJsZSBp cyBpbgorKyAgc2hsaWJwYXRoX3Zhcj1QQVRICisrICA7OworKworK2RhcndpbiogfCByaGFwc29k eSopCisrICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZHlsZCIKKysgIHZlcnNpb25fdHlwZT1k YXJ3aW4KKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCAk e2xpYm5hbWV9JHNoYXJlZF9leHQnCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke21ham9yfSRzaGFyZWRfZXh0JworKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXll cworKyAgc2hsaWJwYXRoX3Zhcj1EWUxEX0xJQlJBUllfUEFUSAorKyAgc2hyZXh0X2NtZHM9J2B0 ZXN0IC4kbW9kdWxlID0gLnllcyAmJiBlY2hvIC5zbyB8fCBlY2hvIC5keWxpYmAnCisrCisrICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL3Vzci9s b2NhbC9saWIiCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIg L2xpYiAvdXNyL2xpYicKKysgIDs7CisrCisrZGd1eCopCisrICB2ZXJzaW9uX3R5cGU9bGludXgK KysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHNoYXJlZF9leHQn CisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIDs7CisrCisrZnJlZWJzZDEq KQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrZnJlZWJzZCogfCBkcmFnb25mbHkq KQorKyAgIyBEcmFnb25GbHkgZG9lcyBub3QgaGF2ZSBhb3V0LiAgV2hlbi9pZiB0aGV5IGltcGxl bWVudCBhIG5ldworKyAgIyB2ZXJzaW9uaW5nIG1lY2hhbmlzbSwgYWRqdXN0IHRoaXMuCisrICBp ZiB0ZXN0IC14IC91c3IvYmluL29iamZvcm1hdDsgdGhlbgorKyAgICBvYmpmb3JtYXQ9YC91c3Iv YmluL29iamZvcm1hdGAKKysgIGVsc2UKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBmcmVl YnNkWzEyM10qKSBvYmpmb3JtYXQ9YW91dCA7OworKyAgICAqKSBvYmpmb3JtYXQ9ZWxmIDs7Cisr ICAgIGVzYWMKKysgIGZpCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9ybWF0CisrICBj YXNlICR2ZXJzaW9uX3R5cGUgaW4KKysgICAgZnJlZWJzZC1lbGYqKQorKyAgICAgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9Jwor KyAgICAgIG5lZWRfdmVyc2lvbj1ubworKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAg IDs7CisrICAgIGZyZWVic2QtKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCcKKysgICAgICBuZWVkX3ZlcnNpb249eWVzCisrICAgICAgOzsKKysgIGVzYWMK KysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBjYXNlICRob3N0X29zIGluCisr ICBmcmVlYnNkMiopCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAg OzsKKysgIGZyZWVic2QzLlswMV0qIHwgZnJlZWJzZGVsZjMuWzAxXSopCisrICAgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAg ICA7OworKyAgZnJlZWJzZDMuWzItOV0qIHwgZnJlZWJzZGVsZjMuWzItOV0qIHwgXAorKyAgZnJl ZWJzZDQuWzAtNV0gfCBmcmVlYnNkZWxmNC5bMC01XSB8IGZyZWVic2Q0LjEuMSB8IGZyZWVic2Rl bGY0LjEuMSkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgICopICMgZnJvbSA0LjYgb24sIGFuZCBEcmFn b25GbHkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgICBoYXJkY29k ZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2dudSopCisrICB2 ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9u PW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHttYWpvcn0g JHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB VEgKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisraGFpa3UqKQorKyAgdmVy c2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1u bworKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIHJ1bnRpbWVfbG9hZGVyIgorKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0ke3No YXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL2Jv b3QvaG9tZS9jb25maWcvbGliIC9ib290L2NvbW1vbi9saWIgL2Jvb3Qvc3lzdGVtL2xpYicKKysg IGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisraHB1eDkqIHwgaHB1eDEwKiB8IGhw dXgxMSopCisrICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgbWFqb3IgdmVy c2lvbiBzbyB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCisrICAjIGxpbmsgYWdhaW5zdCBvdGhlciB2 ZXJzaW9ucy4KKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbmVlZF9saWJfcHJlZml4PW5vCisr ICBuZWVkX3ZlcnNpb249bm8KKysgIGNhc2UgJGhvc3RfY3B1IGluCisrICBpYTY0KikKKysgICAg c2hyZXh0X2NtZHM9Jy5zbycKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICBkeW5h bWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNvIgorKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtu b2VudnZhciBpcyBzcGVjaWZpZWQuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICBpZiB0ZXN0 ICJYJEhQVVhfSUE2NF9NT0RFIiA9IFgzMjsgdGhlbgorKyAgICAgIHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz0iL3Vzci9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliL2hwdXgzMiAvdXNyL2xvY2Fs L2xpYiIKKysgICAgZWxzZQorKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9s aWIvaHB1eDY0IC91c3IvbG9jYWwvbGliL2hwdXg2NCIKKysgICAgZmkKKysgICAgc3lzX2xpYl9k bHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKyAgICA7OworKyAg aHBwYSo2NCopCisrICAgIHNocmV4dF9jbWRzPScuc2wnCisrICAgIGhhcmRjb2RlX2ludG9fbGli cz15ZXMKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRsZSBTSExJQl9QQVRI CisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFy IGlzIHNwZWNpZmllZC4KKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz0iL3Vzci9saWIvcGEyMF82NCAvdXNyL2Njcy9saWIvcGEyMF82NCIKKysgICAg c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKyAg ICA7OworKyAgKikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAgZHluYW1pY19saW5rZXI9 IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zhcj1TSExJQl9QQVRICisrICAgIHNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubyAjICtzIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBT SExJQl9QQVRICisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICA7OworKyAgZXNhYworKyAgIyBI UC1VWCBydW5zICpyZWFsbHkqIHNsb3dseSB1bmxlc3Mgc2hhcmVkIGxpYnJhcmllcyBhcmUgbW9k ZSA1NTUsIC4uLgorKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNTU1ICRsaWInCisrICAjIG9y IGZhaWxzIG91dHJpZ2h0LCBzbyBvdmVycmlkZSBhdG9taWNhbGx5OgorKyAgaW5zdGFsbF9vdmVy cmlkZV9tb2RlPTU1NQorKyAgOzsKKysKKytpbnRlcml4WzMtOV0qKQorKyAgdmVyc2lvbl90eXBl PWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtz aGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCisrICBkeW5hbWljX2xpbmtlcj0nSW50ZXJpeCAzLnggbGQuc28uMSAoUEUs IGxpa2UgRUxGKScKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7 CisrCisraXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysgIGNhc2UgJGhvc3Rfb3MgaW4K KysgICAgbm9uc3RvcHV4KikgdmVyc2lvbl90eXBlPW5vbnN0b3B1eCA7OworKyAgICAqKQorKwlp ZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCisrCQl2ZXJzaW9uX3R5cGU9 bGludXgKKysJZWxzZQorKwkJdmVyc2lvbl90eXBlPWlyaXgKKysJZmkgOzsKKysgIGVzYWMKKysg IG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBzb25hbWVfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgY2FzZSAkaG9zdF9vcyBpbgor KyAgaXJpeDUqIHwgbm9uc3RvcHV4KikKKysgICAgbGlic3VmZj0gc2hsaWJzdWZmPQorKyAgICA7 OworKyAgKikKKysgICAgY2FzZSAkTEQgaW4gIyBsaWJ0b29sLm00IHdpbGwgYWRkIG9uZSBvZiB0 aGVzZSBzd2l0Y2hlcyB0byBMRAorKyAgICAqLTMyfCoiLTMyICJ8Ki1tZWxmMzJic21pcHwqIi1t ZWxmMzJic21pcCAiKQorKyAgICAgIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9MzItYml0 OzsKKysgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJibWlwbjMyfCoiLW1lbGYzMmJtaXBuMzIg IikKKysgICAgICBsaWJzdWZmPTMyIHNobGlic3VmZj1OMzIgbGlibWFnaWM9TjMyOzsKKysgICAg Ki02NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxmNjRibWlwICIpCisrICAgICAgbGlic3Vm Zj02NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0OzsKKysgICAgKikgbGlic3VmZj0gc2hs aWJzdWZmPSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIGVz YWMKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7c2hsaWJzdWZmfV9QQVRICisrICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0i L3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHtsaWJzdWZm fSIKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xp YiR7bGlic3VmZn0iCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworKyMgTm8g c2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRsZCwgYW91dCwgb3IgY29mZi4KKytsaW51 eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYqKQorKyAgZHluYW1pY19saW5rZXI9 bm8KKysgIDs7CisrCisrIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgorK2xpbnV4KiB8IGsqYnNk Ki1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVl ZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAg c29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysg IGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1uICRsaWJkaXInCisr ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPW5vCisrCisrICAjIFNvbWUgYmludXRpbHMgbGQgYXJlIHBhdGNoZWQgdG8gc2V0IERU X1JVTlBBVEgKKysgIGlmIHRlc3QgIiR7bHRfY3Zfc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo K3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgbHRfY3Zfc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAgIHNhdmVfTERG TEFHUz0kTERGTEFHUworKyAgICBzYXZlX2xpYmRpcj0kbGliZGlyCisrICAgIGV2YWwgImxpYmRp cj0vZm9vOyB3bD1cIiRsdF9wcm9nX2NvbXBpbGVyX3dsXCI7IFwKKysJIExERkxBR1M9XCJcJExE RkxBR1MgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIiIKKysgICAgY2F0IGNvbmZkZWZzLmgg LSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysK KytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgor K2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKKysgIGlmICAoJE9CSkRVTVAg LXAgY29uZnRlc3QkYWNfZXhlZXh0KSAyPi9kZXYvbnVsbCB8IGdyZXAgIlJVTlBBVEguKiRsaWJk aXIiID4vZGV2L251bGw7IHRoZW4gOgorKyAgbHRfY3Zfc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPXllcworK2ZpCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IFwKKysgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgICAg TERGTEFHUz0kc2F2ZV9MREZMQUdTCisrICAgIGxpYmRpcj0kc2F2ZV9saWJkaXIKKysKKytmaQor KworKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSRsdF9jdl9zaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGgKKysKKysgICMgVGhpcyBpbXBsaWVzIG5vIGZhc3RfaW5zdGFsbCwgd2hpY2gg aXMgdW5hY2NlcHRhYmxlLgorKyAgIyBTb21lIHJld29yayB3aWxsIGJlIG5lZWRlZCB0byBhbGxv dyBmb3IgZmFzdF9pbnN0YWxsCisrICAjIGJlZm9yZSB0aGlzIGNhbiBiZSBlbmFibGVkLgorKyAg aGFyZGNvZGVfaW50b19saWJzPXllcworKworKyAgIyBBZGQgQUJJLXNwZWNpZmljIGRpcmVjdG9y aWVzIHRvIHRoZSBzeXN0ZW0gbGlicmFyeSBwYXRoLgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRo X3NwZWM9Ii9saWI2NCAvdXNyL2xpYjY0IC9saWIgL3Vzci9saWIiCisrCisrICAjIEFwcGVuZCBs ZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBzZWFyY2ggcGF0aAorKyAgaWYgdGVzdCAtZiAvZXRj L2xkLnNvLmNvbmY7IHRoZW4KKysgICAgbHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8geyBz eXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+L2Rldi9udWxsIiwgXCQyKSk7IHNraXAg PSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcJDA7IHNraXAgPSAwOyB9JyA8IC9ldGMvbGQuc28u Y29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15bCSBdKmh3Y2FwWwkgXS9kO3MvWzosCV0vIC9nO3Mv PVtePV0qJC8vO3MvPVtePSBdKiAvIC9nO3MvIi8vZzsvXiQvZCcgfCB0ciAnXG4nICcgJ2AKKysg ICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl YyAkbHRfbGRfZXh0cmEiCisrCisrICBmaQorKworKyAgIyBXZSB1c2VkIHRvIHRlc3QgZm9yIC9s aWIvbGQuc28uMSBhbmQgZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVzIG9uCisrICAjIHBvd2VycGMs IGJlY2F1c2UgTWtMaW51eCBvbmx5IHN1cHBvcnRlZCBzaGFyZWQgbGlicmFyaWVzIHdpdGggdGhl CisrICAjIEdOVSBkeW5hbWljIGxpbmtlci4gIFNpbmNlIHRoaXMgd2FzIGJyb2tlbiB3aXRoIGNy b3NzIGNvbXBpbGVycywKKysgICMgbW9zdCBwb3dlcnBjLWxpbnV4IGJveGVzIHN1cHBvcnQgZHlu YW1pYyBsaW5raW5nIHRoZXNlIGRheXMgYW5kCisrICAjIHBlb3BsZSBjYW4gYWx3YXlzIC0tZGlz YWJsZS1zaGFyZWQsIHRoZSB0ZXN0IHdhcyByZW1vdmVkLCBhbmQgd2UKKysgICMgYXNzdW1lIHRo ZSBHTlUvTGludXggZHluYW1pYyBsaW5rZXIgaXMgaW4gdXNlLgorKyAgZHluYW1pY19saW5rZXI9 J0dOVS9MaW51eCBsZC5zbycKKysgIDs7CisrCisrbmV0YnNkKikKKysgIHZlcnNpb25fdHlwZT1z dW5vcworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGlmIGVj aG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisr ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICAgIGZpbmlz aF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCisrICAgIGR5 bmFtaWNfbGlua2VyPSdOZXRCU0QgKGEub3V0KSBsZC5zbycKKysgIGVsc2UKKysgICAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFy ZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKKysgICAgZHluYW1pY19saW5rZXI9J05ldEJTRCBsZC5lbGZfc28nCisrICBm aQorKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisrbmV3 c29zNikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXll cworKyAgOzsKKysKKysqbnRvKiB8ICpxbngqKQorKyAgdmVyc2lvbl90eXBlPXFueAorKyAgbmVl ZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAg c29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIGR5bmFtaWNfbGlua2VyPSds ZHFueC5zbycKKysgIDs7CisrCisrb3BlbmJzZCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysg IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiIKKysgIG5lZWRfbGliX3ByZWZp eD1ubworKyAgIyBTb21lIG9sZGVyIHZlcnNpb25zIG9mIE9wZW5CU0QgKDMuMyBhdCBsZWFzdCkg KmRvKiBuZWVkIHZlcnNpb25lZCBsaWJzLgorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBvcGVu YnNkMy4zIHwgb3BlbmJzZDMuMy4qKQluZWVkX3ZlcnNpb249eWVzIDs7CisrICAgICopCQkJCW5l ZWRfdmVyc2lvbj1ubyAgOzsKKysgIGVzYWMKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXgnCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNv bmZpZyAtbSAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGlm IHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0 ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysg ICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIG9wZW5ic2QyLls4OV0gfCBvcGVuYnNkMi5bODld LiopCisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKwk7OworKyAgICAgICopCisr CXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysJOzsKKysgICAgICBlc2FjCisrICBl bHNlCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGZpCisrICA7Owor KworK29zMiopCisrICBsaWJuYW1lX3NwZWM9JyRuYW1lJworKyAgc2hyZXh0X2NtZHM9Ii5kbGwi CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUk e3NoYXJlZF9leHR9ICRsaWJuYW1lLmEnCisrICBkeW5hbWljX2xpbmtlcj0nT1MvMiBsZC5leGUn CisrICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysgIDs7CisrCisrb3NmMyogfCBvc2Y0KiB8IG9z ZjUqKQorKyAgdmVyc2lvbl90eXBlPW9zZgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVk X3ZlcnNpb249bm8KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Ivc2hsaWIgL3Vzci9jY3Mv bGliIC91c3IvbGliL2NtcGxycy9jYyAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiAvdmFyL3NobGli IgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWMiCisrICA7OworKworK3Jkb3MqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisr c29sYXJpcyopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubwor KyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgaGFy ZGNvZGVfaW50b19saWJzPXllcworKyAgIyBsZGQgY29tcGxhaW5zIHVubGVzcyBsaWJyYXJpZXMg YXJlIGV4ZWN1dGFibGUKKysgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kICt4ICRsaWInCisrICA7 OworKworK3N1bm9zNCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRI Oi91c3IvZXRjIiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ X1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGlmIHRlc3QgIiR3 aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgbmVlZF9saWJfcHJlZml4PW5vCisrICBmaQor KyAgbmVlZF92ZXJzaW9uPXllcworKyAgOzsKKysKKytzeXN2NCB8IHN5c3Y0LjMqKQorKyAgdmVy c2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJ QlJBUllfUEFUSAorKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KKysgICAgc25pKQorKyAgICAgIHNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwor KyAgICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrICAgICAgOzsKKysgICAgc2llbWVucykK KysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICA7OworKyAgICBtb3Rvcm9sYSkKKysg ICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICBuZWVkX3ZlcnNpb249bm8KKysgICAgICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9Jy9saWIgL3Vzci9saWIgL3Vzci9jY3MvbGliJworKyAgICAgIDs7CisrICBlc2FjCisr ICA7OworKworK3N5c3Y0Kk1QKikKKysgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KKysgICAg dmVyc2lvbl90eXBlPWxpbnV4CisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3No YXJlZF9leHR9LiR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvciAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0u JG1ham9yJworKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgZmkKKysgIDs7 CisrCisrc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklY KiB8IHN5c3Y0KnV3MiopCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC1lbGYKKysgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwor KyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHll czsgdGhlbgorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC91 c3IvZ251L2xpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIgL2xpYicKKysgIGVsc2UKKysgICAgc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2Njcy9saWIgL3Vzci9saWInCisrICAgIGNhc2Ug JGhvc3Rfb3MgaW4KKysgICAgICBzY28zLjJ2NSopCisrICAgICAgICBzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL2xpYiIKKysJOzsKKysgICAgZXNh YworKyAgZmkKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xpYicKKysgIDs7 CisrCisrdHBmKikKKysgICMgVFBGIGlzIGEgY3Jvc3MtdGFyZ2V0IG9ubHkuICBQcmVmZXJyZWQg Y3Jvc3MtaG9zdCA9IEdOVS9MaW51eC4KKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9s aWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc2hs aWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD1ubworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKyt1dHM0KikKKysgIHZl cnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKKysgIDs7CisrCisrKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7Owor K2VzYWMKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog JGR5bmFtaWNfbGlua2VyIiA+JjUKKyskYXNfZWNobyAiJGR5bmFtaWNfbGlua2VyIiA+JjY7IH0K Kyt0ZXN0ICIkZHluYW1pY19saW5rZXIiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubworKwor K3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSJQQVRIICRzaGxpYnBhdGhfdmFyICRydW5wYXRo X3ZhciIKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgdmFyaWFibGVzX3NhdmVkX2Zv cl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayBHQ0NfRVhFQ19QUkVGSVggQ09N UElMRVJfUEFUSCBMSUJSQVJZX1BBVEgiCisrZmkKKysKKytpZiB0ZXN0ICIke2x0X2N2X3N5c19s aWJfc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgorKyAgc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgorK2ZpCisraWYgdGVz dCAiJHtsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgor KyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYyIKKytmaQorKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dy YW1zLi4uICIgPiY2OyB9CisraGFyZGNvZGVfYWN0aW9uPQorK2lmIHRlc3QgLW4gIiRoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjIiB8fAorKyAgIHRlc3QgLW4gIiRydW5wYXRoX3ZhciIgfHwKKysg ICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSAiWHllcyIgOyB0aGVuCisrCisrICAjIFdl IGNhbiBoYXJkY29kZSBub24tZXhpc3RlbnQgZGlyZWN0b3JpZXMuCisrICBpZiB0ZXN0ICIkaGFy ZGNvZGVfZGlyZWN0IiAhPSBubyAmJgorKyAgICAgIyBJZiB0aGUgb25seSBtZWNoYW5pc20gdG8g YXZvaWQgaGFyZGNvZGluZyBpcyBzaGxpYnBhdGhfdmFyLCB3ZQorKyAgICAgIyBoYXZlIHRvIHJl bGluaywgb3RoZXJ3aXNlIHdlIG1pZ2h0IGxpbmsgd2l0aCBhbiBpbnN0YWxsZWQgbGlicmFyeQor KyAgICAgIyB3aGVuIHdlIHNob3VsZCBiZSBsaW5raW5nIHdpdGggYSB5ZXQtdG8tYmUtaW5zdGFs bGVkIG9uZQorKyAgICAgIyMgdGVzdCAiJF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3Zh ciwgKSIgIT0gbm8gJiYKKysgICAgIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiAhPSBubzsgdGhl bgorKyAgICAjIExpbmtpbmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUgdGVtcG9yYXJ5IGxpYnJhcnkg ZGlyZWN0b3J5LgorKyAgICBoYXJkY29kZV9hY3Rpb249cmVsaW5rCisrICBlbHNlCisrICAgICMg V2UgY2FuIGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQgd2UgY2FuIGhhcmRjb2RlIG5vbmV4 aXN0aW5nIGRpcnMuCisrICAgIGhhcmRjb2RlX2FjdGlvbj1pbW1lZGlhdGUKKysgIGZpCisrZWxz ZQorKyAgIyBXZSBjYW5ub3QgaGFyZGNvZGUgYW55dGhpbmcsIG9yIGVsc2Ugd2UgY2FuIG9ubHkg aGFyZGNvZGUgZXhpc3RpbmcKKysgICMgZGlyZWN0b3JpZXMuCisrICBoYXJkY29kZV9hY3Rpb249 dW5zdXBwb3J0ZWQKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiAkaGFyZGNvZGVfYWN0aW9uIiA+JjUKKyskYXNfZWNobyAiJGhhcmRjb2RlX2Fj dGlvbiIgPiY2OyB9CisrCisraWYgdGVzdCAiJGhhcmRjb2RlX2FjdGlvbiIgPSByZWxpbmsgfHwK KysgICB0ZXN0ICIkaW5oZXJpdF9ycGF0aCIgPSB5ZXM7IHRoZW4KKysgICMgRmFzdCBpbnN0YWxs YXRpb24gaXMgbm90IHN1cHBvcnRlZAorKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubworK2VsaWYg dGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKKysgICAgIHRlc3Qg IiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVuCisrICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5v dCBuZWNlc3NhcnkKKysgIGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MKKytmaQorKworKwor KworKworKworKworKyAgaWYgdGVzdCAieCRlbmFibGVfZGxvcGVuIiAhPSB4eWVzOyB0aGVuCisr ICBlbmFibGVfZGxvcGVuPXVua25vd24KKysgIGVuYWJsZV9kbG9wZW5fc2VsZj11bmtub3duCisr ICBlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPXVua25vd24KKytlbHNlCisrICBsdF9jdl9kbG9w ZW49bm8KKysgIGx0X2N2X2Rsb3Blbl9saWJzPQorKworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAg YmVvcyopCisrICAgIGx0X2N2X2Rsb3Blbj0ibG9hZF9hZGRfb24iCisrICAgIGx0X2N2X2Rsb3Bl bl9saWJzPQorKyAgICBsdF9jdl9kbG9wZW5fc2VsZj15ZXMKKysgICAgOzsKKysKKysgIG1pbmd3 KiB8IHB3MzIqIHwgY2VnY2MqKQorKyAgICBsdF9jdl9kbG9wZW49IkxvYWRMaWJyYXJ5IgorKyAg ICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAgOzsKKysKKysgIGN5Z3dpbiopCisrICAgIGx0X2N2 X2Rsb3Blbj0iZGxvcGVuIgorKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAgOzsKKysKKysg IGRhcndpbiopCisrICAjIGlmIGxpYmRsIGlzIGluc3RhbGxlZCB3ZSBuZWVkIHRvIGxpbmsgYWdh aW5zdCBpdAorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IGRsb3BlbiBpbiAtbGRsLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9saWJfZGxfZGxv cGVuK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Cisr ZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sZGwgICRMSUJT IgorK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQg Y29uZmRlZnMuaC4gICovCisrCisrLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5 cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisrICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0 Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisrICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJn dW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KKysjaWZkZWYgX19jcGx1c3Bs dXMKKytleHRlcm4gIkMiCisrI2VuZGlmCisrY2hhciBkbG9wZW4gKCk7CisraW50CisrbWFpbiAo KQorK3sKKytyZXR1cm4gZGxvcGVuICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VP RgorK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKKysgIGFjX2N2X2xpYl9k bF9kbG9wZW49eWVzCisrZWxzZQorKyAgYWNfY3ZfbGliX2RsX2Rsb3Blbj1ubworK2ZpCisrcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisrICAgIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElC UworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 ICRhY19jdl9saWJfZGxfZGxvcGVuIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2xpYl9kbF9kbG9w ZW4iID4mNjsgfQorK2lmIHRlc3QgIngkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPSB4IiJ5ZXM7IHRo ZW4gOgorKyAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIgor K2Vsc2UKKysKKysgICAgbHRfY3ZfZGxvcGVuPSJkeWxkIgorKyAgICBsdF9jdl9kbG9wZW5fbGli cz0KKysgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzCisrCisrZmkKKysKKysgICAgOzsKKysKKysg ICopCisrICAgIGFjX2ZuX2NfY2hlY2tfZnVuYyAiJExJTkVOTyIgInNobF9sb2FkIiAiYWNfY3Zf ZnVuY19zaGxfbG9hZCIKKytpZiB0ZXN0ICJ4JGFjX2N2X2Z1bmNfc2hsX2xvYWQiID0geCIieWVz OyB0aGVuIDoKKysgIGx0X2N2X2Rsb3Blbj0ic2hsX2xvYWQiCisrZWxzZQorKyAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Igc2hsX2xvYWQgaW4g LWxkbGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBzaGxfbG9hZCBpbiAtbGRsZC4u LiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfbGliX2RsZF9zaGxfbG9hZCtzZXR9IiA9IHNl dDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2No ZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbGRsZCAgJExJQlMiCisrY2F0IGNvbmZk ZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KKysKKysvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh biBlcnJvci4KKysgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJu IHR5cGUgb2YgYSBHQ0MKKysgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5 cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAi QyIKKysjZW5kaWYKKytjaGFyIHNobF9sb2FkICgpOworK2ludAorK21haW4gKCkKKyt7CisrcmV0 dXJuIHNobF9sb2FkICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFj X2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKKysgIGFjX2N2X2xpYl9kbGRfc2hsX2xv YWQ9eWVzCisrZWxzZQorKyAgYWNfY3ZfbGliX2RsZF9zaGxfbG9hZD1ubworK2ZpCisrcm0gLWYg Y29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisrICAgIGNvbmZ0ZXN0JGFj X2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwor K2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRh Y19jdl9saWJfZGxkX3NobF9sb2FkIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2xpYl9kbGRfc2hs X2xvYWQiID4mNjsgfQorK2lmIHRlc3QgIngkYWNfY3ZfbGliX2RsZF9zaGxfbG9hZCIgPSB4IiJ5 ZXM7IHRoZW4gOgorKyAgbHRfY3ZfZGxvcGVuPSJzaGxfbG9hZCIgbHRfY3ZfZGxvcGVuX2xpYnM9 Ii1sZGxkIgorK2Vsc2UKKysgIGFjX2ZuX2NfY2hlY2tfZnVuYyAiJExJTkVOTyIgImRsb3BlbiIg ImFjX2N2X2Z1bmNfZGxvcGVuIgorK2lmIHRlc3QgIngkYWNfY3ZfZnVuY19kbG9wZW4iID0geCIi eWVzOyB0aGVuIDoKKysgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIgorK2Vsc2UKKysgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAt bGRsIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sZGwuLi4gIiA+ JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2xpYl9kbF9kbG9wZW4rc2V0fSIgPSBzZXQ7IHRoZW4g OgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJf c2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWxkbCAgJExJQlMiCisrY2F0IGNvbmZkZWZzLmggLSA8 PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysv KiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4K KysgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2Yg YSBHQ0MKKysgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQg c3RpbGwgYXBwbHkuICAqLworKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIKKysjZW5k aWYKKytjaGFyIGRsb3BlbiAoKTsKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBkbG9wZW4g KCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisraWYgYWNfZm5fY190cnlfbGlu ayAiJExJTkVOTyI7IHRoZW4gOgorKyAgYWNfY3ZfbGliX2RsX2Rsb3Blbj15ZXMKKytlbHNlCisr ICBhY19jdl9saWJfZGxfZGxvcGVuPW5vCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IFwKKysgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRh Y19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKyt7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2X2xpYl9kbF9kbG9wZW4i ID4mNQorKyRhc19lY2hvICIkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY2OyB9CisraWYgdGVzdCAi eCRhY19jdl9saWJfZGxfZGxvcGVuIiA9IHgiInllczsgdGhlbiA6CisrICBsdF9jdl9kbG9wZW49 ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGwiCisrZWxzZQorKyAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sc3Zs ZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbHN2bGQuLi4gIiA+ JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2xpYl9zdmxkX2Rsb3BlbitzZXR9IiA9IHNldDsgdGhl biA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xp Yl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbHN2bGQgICRMSUJTIgorK2NhdCBjb25mZGVmcy5o IC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisr CisrLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJy b3IuCisrICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBl IG9mIGEgR0NDCisrICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdv dWxkIHN0aWxsIGFwcGx5LiAgKi8KKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiCisr I2VuZGlmCisrY2hhciBkbG9wZW4gKCk7CisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gZGxv cGVuICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2NfdHJ5 X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKKysgIGFjX2N2X2xpYl9zdmxkX2Rsb3Blbj15ZXMKKytl bHNlCisrICBhY19jdl9saWJfc3ZsZF9kbG9wZW49bm8KKytmaQorK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorKyAgICBjb25mdGVzdCRhY19leGVleHQgY29u ZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK3sgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfbGliX3N2 bGRfZGxvcGVuIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2xpYl9zdmxkX2Rsb3BlbiIgPiY2OyB9 CisraWYgdGVzdCAieCRhY19jdl9saWJfc3ZsZF9kbG9wZW4iID0geCIieWVzOyB0aGVuIDoKKysg IGx0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxzdmxkIgorK2Vsc2UK KysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9y IGRsZF9saW5rIGluIC1sZGxkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZGxkX2xp bmsgaW4gLWxkbGQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2xpYl9kbGRfZGxkX2xp bmsrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWxkbGQgICRMSUJT IgorK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQg Y29uZmRlZnMuaC4gICovCisrCisrLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5 cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisrICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0 Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisrICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJn dW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KKysjaWZkZWYgX19jcGx1c3Bs dXMKKytleHRlcm4gIkMiCisrI2VuZGlmCisrY2hhciBkbGRfbGluayAoKTsKKytpbnQKKyttYWlu ICgpCisreworK3JldHVybiBkbGRfbGluayAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytf QUNFT0YKKytpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CisrICBhY19jdl9s aWJfZGxkX2RsZF9saW5rPXllcworK2Vsc2UKKysgIGFjX2N2X2xpYl9kbGRfZGxkX2xpbms9bm8K KytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorKyAg ICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xp Yl9zYXZlX0xJQlMKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiAkYWNfY3ZfbGliX2RsZF9kbGRfbGluayIgPiY1CisrJGFzX2VjaG8gIiRhY19j dl9saWJfZGxkX2RsZF9saW5rIiA+JjY7IH0KKytpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kbGRfZGxk X2xpbmsiID0geCIieWVzOyB0aGVuIDoKKysgIGx0X2N2X2Rsb3Blbj0iZGxkX2xpbmsiIGx0X2N2 X2Rsb3Blbl9saWJzPSItbGRsZCIKKytmaQorKworKworK2ZpCisrCisrCisrZmkKKysKKysKKytm aQorKworKworK2ZpCisrCisrCisrZmkKKysKKysgICAgOzsKKysgIGVzYWMKKysKKysgIGlmIHRl c3QgIngkbHRfY3ZfZGxvcGVuIiAhPSB4bm87IHRoZW4KKysgICAgZW5hYmxlX2Rsb3Blbj15ZXMK KysgIGVsc2UKKysgICAgZW5hYmxlX2Rsb3Blbj1ubworKyAgZmkKKysKKysgIGNhc2UgJGx0X2N2 X2Rsb3BlbiBpbgorKyAgZGxvcGVuKQorKyAgICBzYXZlX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCisr ICAgIHRlc3QgIngkYWNfY3ZfaGVhZGVyX2RsZmNuX2giID0geHllcyAmJiBDUFBGTEFHUz0iJENQ UEZMQUdTIC1ESEFWRV9ETEZDTl9IIgorKworKyAgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgor KyAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlY1wiCisrCisrICAgIHNhdmVfTElCUz0iJExJQlMiCisrICAg IExJQlM9IiRsdF9jdl9kbG9wZW5fbGlicyAkTElCUyIKKysKKysgICAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIGEgcHJvZ3JhbSBjYW4g ZGxvcGVuIGl0c2VsZiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBhIHByb2dy YW0gY2FuIGRsb3BlbiBpdHNlbGYuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X2Rsb3Bl bl9zZWxmK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgCSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4gOgor KyAgbHRfY3ZfZGxvcGVuX3NlbGY9Y3Jvc3MKKytlbHNlCisrICBsdF9kbHVua25vd249MDsgbHRf ZGxub191c2NvcmU9MTsgbHRfZGxuZWVkX3VzY29yZT0yCisrICBsdF9zdGF0dXM9JGx0X2RsdW5r bm93bgorKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKysjbGluZSAkTElORU5P ICJjb25maWd1cmUiCisrI2luY2x1ZGUgImNvbmZkZWZzLmgiCisrCisrI2lmIEhBVkVfRExGQ05f SAorKyNpbmNsdWRlIDxkbGZjbi5oPgorKyNlbmRpZgorKworKyNpbmNsdWRlIDxzdGRpby5oPgor KworKyNpZmRlZiBSVExEX0dMT0JBTAorKyMgIGRlZmluZSBMVF9ETEdMT0JBTAkJUlRMRF9HTE9C QUwKKysjZWxzZQorKyMgIGlmZGVmIERMX0dMT0JBTAorKyMgICAgZGVmaW5lIExUX0RMR0xPQkFM CQlETF9HTE9CQUwKKysjICBlbHNlCisrIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCTAKKysjICBl bmRpZgorKyNlbmRpZgorKworKy8qIFdlIG1heSBoYXZlIHRvIGRlZmluZSBMVF9ETExBWllfT1Jf Tk9XIGluIHRoZSBjb21tYW5kIGxpbmUgaWYgd2UKKysgICBmaW5kIG91dCBpdCBkb2VzIG5vdCB3 b3JrIGluIHNvbWUgcGxhdGZvcm0uICovCisrI2lmbmRlZiBMVF9ETExBWllfT1JfTk9XCisrIyAg aWZkZWYgUlRMRF9MQVpZCisrIyAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkJUlRMRF9MQVpZ CisrIyAgZWxzZQorKyMgICAgaWZkZWYgRExfTEFaWQorKyMgICAgICBkZWZpbmUgTFRfRExMQVpZ X09SX05PVwkJRExfTEFaWQorKyMgICAgZWxzZQorKyMgICAgICBpZmRlZiBSVExEX05PVworKyMg ICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCVJUTERfTk9XCisrIyAgICAgIGVsc2UKKysj ICAgICAgICBpZmRlZiBETF9OT1cKKysjICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9X CURMX05PVworKyMgICAgICAgIGVsc2UKKysjICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1Jf Tk9XCTAKKysjICAgICAgICBlbmRpZgorKyMgICAgICBlbmRpZgorKyMgICAgZW5kaWYKKysjICBl bmRpZgorKyNlbmRpZgorKworKy8qIFdoZW4gLWZ2aXNiaWxpdHk9aGlkZGVuIGlzIHVzZWQsIGFz c3VtZSB0aGUgY29kZSBoYXMgYmVlbiBhbm5vdGF0ZWQKKysgICBjb3JyZXNwb25kaW5nbHkgZm9y IHRoZSBzeW1ib2xzIG5lZWRlZC4gICovCisrI2lmIGRlZmluZWQoX19HTlVDX18pICYmICgoKF9f R05VQ19fID09IDMpICYmIChfX0dOVUNfTUlOT1JfXyA+PSAzKSkgfHwgKF9fR05VQ19fID4gMykp Cisrdm9pZCBmbm9yZCAoKSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKTsK KysjZW5kaWYKKysKKyt2b2lkIGZub3JkICgpIHsgaW50IGk9NDI7IH0KKytpbnQgbWFpbiAoKQor K3sKKysgIHZvaWQgKnNlbGYgPSBkbG9wZW4gKDAsIExUX0RMR0xPQkFMfExUX0RMTEFaWV9PUl9O T1cpOworKyAgaW50IHN0YXR1cyA9ICRsdF9kbHVua25vd247CisrCisrICBpZiAoc2VsZikKKysg ICAgeworKyAgICAgIGlmIChkbHN5bSAoc2VsZiwiZm5vcmQiKSkgICAgICAgc3RhdHVzID0gJGx0 X2Rsbm9fdXNjb3JlOworKyAgICAgIGVsc2UKKysgICAgICAgIHsKKysJICBpZiAoZGxzeW0oIHNl bGYsIl9mbm9yZCIpKSAgc3RhdHVzID0gJGx0X2RsbmVlZF91c2NvcmU7CisrICAgICAgICAgIGVs c2UgcHV0cyAoZGxlcnJvciAoKSk7CisrCX0KKysgICAgICAvKiBkbGNsb3NlIChzZWxmKTsgKi8K KysgICAgfQorKyAgZWxzZQorKyAgICBwdXRzIChkbGVycm9yICgpKTsKKysKKysgIHJldHVybiBz dGF0dXM7CisrfQorK19MVF9FT0YKKysgIGlmIHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBcIiRhY19saW5rXCIiOyB9ID4mNQorKyAgKGV2YWwgJGFjX2xp bmspIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0ZXN0ICRhY19zdGF0dXMgPSAw OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gMj4vZGV2L251bGw7IHRoZW4KKysg ICAgKC4vY29uZnRlc3Q7IGV4aXQ7ICkgPiY1IDI+L2Rldi9udWxsCisrICAgIGx0X3N0YXR1cz0k PworKyAgICBjYXNlIHgkbHRfc3RhdHVzIGluCisrICAgICAgeCRsdF9kbG5vX3VzY29yZSkgbHRf Y3ZfZGxvcGVuX3NlbGY9eWVzIDs7CisrICAgICAgeCRsdF9kbG5lZWRfdXNjb3JlKSBsdF9jdl9k bG9wZW5fc2VsZj15ZXMgOzsKKysgICAgICB4JGx0X2RsdW5rbm93bnx4KikgbHRfY3ZfZGxvcGVu X3NlbGY9bm8gOzsKKysgICAgZXNhYworKyAgZWxzZSA6CisrICAgICMgY29tcGlsYXRpb24gZmFp bGVkCisrICAgIGx0X2N2X2Rsb3Blbl9zZWxmPW5vCisrICBmaQorK2ZpCisrcm0gLWZyIGNvbmZ0 ZXN0KgorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6ICRsdF9jdl9kbG9wZW5fc2VsZiIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9kbG9w ZW5fc2VsZiIgPiY2OyB9CisrCisrICAgIGlmIHRlc3QgIngkbHRfY3ZfZGxvcGVuX3NlbGYiID0g eHllczsgdGhlbgorKyAgICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgTERGTEFHUz1c IlwkTERGTEFHUyAkbHRfcHJvZ19jb21waWxlcl9zdGF0aWNcIgorKyAgICAgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciBhIHN0YXRpY2Fs bHkgbGlua2VkIHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGYiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIHdoZXRoZXIgYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtIGNhbiBkbG9wZW4gaXRz ZWxmLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMrc2V0 fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICAJICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6CisrICBsdF9jdl9k bG9wZW5fc2VsZl9zdGF0aWM9Y3Jvc3MKKytlbHNlCisrICBsdF9kbHVua25vd249MDsgbHRfZGxu b191c2NvcmU9MTsgbHRfZGxuZWVkX3VzY29yZT0yCisrICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93 bgorKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKysjbGluZSAkTElORU5PICJj b25maWd1cmUiCisrI2luY2x1ZGUgImNvbmZkZWZzLmgiCisrCisrI2lmIEhBVkVfRExGQ05fSAor KyNpbmNsdWRlIDxkbGZjbi5oPgorKyNlbmRpZgorKworKyNpbmNsdWRlIDxzdGRpby5oPgorKwor KyNpZmRlZiBSVExEX0dMT0JBTAorKyMgIGRlZmluZSBMVF9ETEdMT0JBTAkJUlRMRF9HTE9CQUwK KysjZWxzZQorKyMgIGlmZGVmIERMX0dMT0JBTAorKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQlE TF9HTE9CQUwKKysjICBlbHNlCisrIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCTAKKysjICBlbmRp ZgorKyNlbmRpZgorKworKy8qIFdlIG1heSBoYXZlIHRvIGRlZmluZSBMVF9ETExBWllfT1JfTk9X IGluIHRoZSBjb21tYW5kIGxpbmUgaWYgd2UKKysgICBmaW5kIG91dCBpdCBkb2VzIG5vdCB3b3Jr IGluIHNvbWUgcGxhdGZvcm0uICovCisrI2lmbmRlZiBMVF9ETExBWllfT1JfTk9XCisrIyAgaWZk ZWYgUlRMRF9MQVpZCisrIyAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkJUlRMRF9MQVpZCisr IyAgZWxzZQorKyMgICAgaWZkZWYgRExfTEFaWQorKyMgICAgICBkZWZpbmUgTFRfRExMQVpZX09S X05PVwkJRExfTEFaWQorKyMgICAgZWxzZQorKyMgICAgICBpZmRlZiBSVExEX05PVworKyMgICAg ICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCVJUTERfTk9XCisrIyAgICAgIGVsc2UKKysjICAg ICAgICBpZmRlZiBETF9OT1cKKysjICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCURM X05PVworKyMgICAgICAgIGVsc2UKKysjICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9X CTAKKysjICAgICAgICBlbmRpZgorKyMgICAgICBlbmRpZgorKyMgICAgZW5kaWYKKysjICBlbmRp ZgorKyNlbmRpZgorKworKy8qIFdoZW4gLWZ2aXNiaWxpdHk9aGlkZGVuIGlzIHVzZWQsIGFzc3Vt ZSB0aGUgY29kZSBoYXMgYmVlbiBhbm5vdGF0ZWQKKysgICBjb3JyZXNwb25kaW5nbHkgZm9yIHRo ZSBzeW1ib2xzIG5lZWRlZC4gICovCisrI2lmIGRlZmluZWQoX19HTlVDX18pICYmICgoKF9fR05V Q19fID09IDMpICYmIChfX0dOVUNfTUlOT1JfXyA+PSAzKSkgfHwgKF9fR05VQ19fID4gMykpCisr dm9pZCBmbm9yZCAoKSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKTsKKysj ZW5kaWYKKysKKyt2b2lkIGZub3JkICgpIHsgaW50IGk9NDI7IH0KKytpbnQgbWFpbiAoKQorK3sK KysgIHZvaWQgKnNlbGYgPSBkbG9wZW4gKDAsIExUX0RMR0xPQkFMfExUX0RMTEFaWV9PUl9OT1cp OworKyAgaW50IHN0YXR1cyA9ICRsdF9kbHVua25vd247CisrCisrICBpZiAoc2VsZikKKysgICAg eworKyAgICAgIGlmIChkbHN5bSAoc2VsZiwiZm5vcmQiKSkgICAgICAgc3RhdHVzID0gJGx0X2Rs bm9fdXNjb3JlOworKyAgICAgIGVsc2UKKysgICAgICAgIHsKKysJICBpZiAoZGxzeW0oIHNlbGYs Il9mbm9yZCIpKSAgc3RhdHVzID0gJGx0X2RsbmVlZF91c2NvcmU7CisrICAgICAgICAgIGVsc2Ug cHV0cyAoZGxlcnJvciAoKSk7CisrCX0KKysgICAgICAvKiBkbGNsb3NlIChzZWxmKTsgKi8KKysg ICAgfQorKyAgZWxzZQorKyAgICBwdXRzIChkbGVycm9yICgpKTsKKysKKysgIHJldHVybiBzdGF0 dXM7CisrfQorK19MVF9FT0YKKysgIGlmIHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNf bGluZW5vLSRMSU5FTk99OiBcIiRhY19saW5rXCIiOyB9ID4mNQorKyAgKGV2YWwgJGFjX2xpbmsp IDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9 ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gMj4vZGV2L251bGw7IHRoZW4KKysgICAg KC4vY29uZnRlc3Q7IGV4aXQ7ICkgPiY1IDI+L2Rldi9udWxsCisrICAgIGx0X3N0YXR1cz0kPwor KyAgICBjYXNlIHgkbHRfc3RhdHVzIGluCisrICAgICAgeCRsdF9kbG5vX3VzY29yZSkgbHRfY3Zf ZGxvcGVuX3NlbGZfc3RhdGljPXllcyA7OworKyAgICAgIHgkbHRfZGxuZWVkX3VzY29yZSkgbHRf Y3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcyA7OworKyAgICAgIHgkbHRfZGx1bmtub3dufHgqKSBs dF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9bm8gOzsKKysgICAgZXNhYworKyAgZWxzZSA6CisrICAg ICMgY29tcGlsYXRpb24gZmFpbGVkCisrICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1ubwor KyAgZmkKKytmaQorK3JtIC1mciBjb25mdGVzdCoKKysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRfY3ZfZGxvcGVuX3NlbGZfc3Rh dGljIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyIgPiY2OyB9Cisr ICAgIGZpCisrCisrICAgIENQUEZMQUdTPSIkc2F2ZV9DUFBGTEFHUyIKKysgICAgTERGTEFHUz0i JHNhdmVfTERGTEFHUyIKKysgICAgTElCUz0iJHNhdmVfTElCUyIKKysgICAgOzsKKysgIGVzYWMK KysKKysgIGNhc2UgJGx0X2N2X2Rsb3Blbl9zZWxmIGluCisrICB5ZXN8bm8pIGVuYWJsZV9kbG9w ZW5fc2VsZj0kbHRfY3ZfZGxvcGVuX3NlbGYgOzsKKysgICopIGVuYWJsZV9kbG9wZW5fc2VsZj11 bmtub3duIDs7CisrICBlc2FjCisrCisrICBjYXNlICRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMg aW4KKysgIHllc3xubykgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz0kbHRfY3ZfZGxvcGVuX3Nl bGZfc3RhdGljIDs7CisrICAqKSBlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPXVua25vd24gOzsK KysgIGVzYWMKKytmaQorKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworK3N0cmlwbGliPQorK29sZF9zdHJpcGxpYj0KKyt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgc3RyaXBwaW5nIGxpYnJhcmll cyBpcyBwb3NzaWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBzdHJpcHBp bmcgbGlicmFyaWVzIGlzIHBvc3NpYmxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAtbiAiJFNUUklQ IiAmJiAkU1RSSVAgLVYgMj4mMSB8ICRHUkVQICJHTlUgc3RyaXAiID4vZGV2L251bGw7IHRoZW4K KysgIHRlc3QgLXogIiRvbGRfc3RyaXBsaWIiICYmIG9sZF9zdHJpcGxpYj0iJFNUUklQIC0tc3Ry aXAtZGVidWciCisrICB0ZXN0IC16ICIkc3RyaXBsaWIiICYmIHN0cmlwbGliPSIkU1RSSVAgLS1z dHJpcC11bm5lZWRlZCIKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorK2Vsc2UKKysjIEZJ WE1FIC0gaW5zZXJ0IHNvbWUgcmVhbCB0ZXN0cywgaG9zdF9vcyBpc24ndCByZWFsbHkgZ29vZCBl bm91Z2gKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGRhcndpbiopCisrICAgIGlmIHRlc3QgLW4g IiRTVFJJUCIgOyB0aGVuCisrICAgICAgc3RyaXBsaWI9IiRTVFJJUCAteCIKKysgICAgICBvbGRf c3RyaXBsaWI9IiRTVFJJUCAtUyIKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKysg ICAgZWxzZQorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog cmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysgICAgZmkKKysgICAgOzsK KysgICopCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysgICAgOzsKKysgIGVzYWMKKytm aQorKworKworKworKworKworKworKworKworKworKworKworKworKyAgIyBSZXBvcnQgd2hpY2gg bGlicmFyeSB0eXBlcyB3aWxsIGFjdHVhbGx5IGJlIGJ1aWx0CisrICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmIGxpYnRvb2wgc3VwcG9ydHMgc2hh cmVkIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgbGlidG9vbCBzdXBw b3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGNhbl9idWlsZF9zaGFyZWQiID4mNQorKyRh c19lY2hvICIkY2FuX2J1aWxkX3NoYXJlZCIgPiY2OyB9CisrCisrICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc2hhcmVk IGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBz aGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrICB0ZXN0ICIkY2FuX2J1aWxkX3NoYXJlZCIg PSAibm8iICYmIGVuYWJsZV9zaGFyZWQ9bm8KKysKKysgICMgT24gQUlYLCBzaGFyZWQgbGlicmFy aWVzIGFuZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAorKyAg IyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4Myop CisrICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisr ICAgIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCisrICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJj aGl2ZV9jbWRzflwkUkFOTElCIFwkbGliIgorKyAgICAgIHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5M SUIgJGxpYicKKysgICAgZmkKKysgICAgOzsKKysKKysgIGFpeFs0LTldKikKKysgICAgaWYgdGVz dCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9 IG5vIDsgdGhlbgorKyAgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVf c3RhdGljPW5vCisrICAgIGZpCisrICAgIDs7CisrICBlc2FjCisrICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGVuYWJsZV9zaGFyZWQiID4mNQorKyRh c19lY2hvICIkZW5hYmxlX3NoYXJlZCIgPiY2OyB9CisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxp YnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzdGF0 aWMgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3No YXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHllcy4KKysgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9 IHllcyB8fCBlbmFibGVfc3RhdGljPXllcworKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRlbmFibGVfc3RhdGljIiA+JjUKKyskYXNfZWNobyAiJGVu YWJsZV9zdGF0aWMiID4mNjsgfQorKworKworKworKworK2ZpCisrYWNfZXh0PWMKKythY19jcHA9 JyRDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBj b25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0 ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1Jwor K2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKKysKKytDQz0iJGx0X3NhdmVf Q0MiCisrCisrICAgICAgaWYgdGVzdCAtbiAiJENYWCIgJiYgKCB0ZXN0ICJYJENYWCIgIT0gIlhu byIgJiYKKysgICAgKCAodGVzdCAiWCRDWFgiID0gIlhnKysiICYmIGBnKysgLXYgPi9kZXYvbnVs bCAyPiYxYCApIHx8CisrICAgICh0ZXN0ICJYJENYWCIgIT0gIlhnKysiKSkpIDsgdGhlbgorKyAg YWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENY WCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9 JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhf Y29tcGlsZXJfZ251CisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBob3cgdG8gcnVuIHRoZSBDKysgcHJlcHJvY2Vzc29yIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDKysgcHJlcHJvY2Vzc29yLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAteiAiJENYWENQUCI7IHRoZW4KKysgIGlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DWFhD UFArc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICAgICAgIyBEb3VibGUgcXVvdGVzIGJlY2F1c2UgQ1hYQ1BQIG5lZWRzIHRvIGJlIGV4 cGFuZGVkCisrICAgIGZvciBDWFhDUFAgaW4gIiRDWFggLUUiICIvbGliL2NwcCIKKysgICAgZG8K KysgICAgICBhY19wcmVwcm9jX29rPWZhbHNlCisrZm9yIGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxh ZyBpbiAnJyB5ZXMKKytkbworKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGgg Z2NjLCBzbyBjb25maWd1cmluZyBnbGliYworKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGls ZXIgd29ya3MuCisrICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERD X18gaXMgZGVmaW5lZCwgc2luY2UKKysgICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVl c3RhbmRpbmcgY29tcGlsZXJzLgorKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29k ZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKKysgICMgbm90IGp1c3QgdGhyb3VnaCBj cHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgorKyAgY2F0IGNv bmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KKysjaWZkZWYgX19TVERDX18KKysjIGluY2x1ZGUgPGxpbWl0cy5oPgorKyNlbHNlCisr IyBpbmNsdWRlIDxhc3NlcnQuaD4KKysjZW5kaWYKKysJCSAgICAgU3ludGF4IGVycm9yCisrX0FD RU9GCisraWYgYWNfZm5fY3h4X3RyeV9jcHAgIiRMSU5FTk8iOyB0aGVuIDoKKysKKytlbHNlCisr ICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCisrY29udGludWUKKytmaQorK3JtIC1m IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisrCisrICAjIE9LLCB3b3JrcyBvbiBzYW5l IGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycworKyAgIyBjYW4g YmUgZGV0ZWN0ZWQgYW5kIGhvdy4KKysgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0 ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGFjX25vbmV4 aXN0ZW50Lmg+CisrX0FDRU9GCisraWYgYWNfZm5fY3h4X3RyeV9jcHAgIiRMSU5FTk8iOyB0aGVu IDoKKysgICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCisrY29udGludWUKKytl bHNlCisrICAjIFBhc3NlcyBib3RoIHRlc3RzLgorK2FjX3ByZXByb2Nfb2s9OgorK2JyZWFrCisr ZmkKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKworK2RvbmUKKysjIEJl Y2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMg c2tpcHBlZC4KKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorK2lmICRhY19w cmVwcm9jX29rOyB0aGVuIDoKKysgIGJyZWFrCisrZmkKKysKKysgICAgZG9uZQorKyAgICBhY19j dl9wcm9nX0NYWENQUD0kQ1hYQ1BQCisrCisrZmkKKysgIENYWENQUD0kYWNfY3ZfcHJvZ19DWFhD UFAKKytlbHNlCisrICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQCisrZmkKKyt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJENYWENQUCIgPiY1CisrJGFz X2VjaG8gIiRDWFhDUFAiID4mNjsgfQorK2FjX3ByZXByb2Nfb2s9ZmFsc2UKKytmb3IgYWNfY3h4 X3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcworK2RvCisrICAjIFVzZSBhIGhlYWRlciBmaWxl IHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCisrICAjIHdpdGggYSBm cmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KKysgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFz c2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorKyAgIyA8bGltaXRzLmg+IGV4 aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCisrICAjIE9uIHRoZSBOZVhULCBj YyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAorKyAgIyBu b3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlz IGNhc2UuCisrICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Cisr LyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpZmRlZiBfX1NURENfXworKyMgaW5jbHVkZSA8bGlt aXRzLmg+CisrI2Vsc2UKKysjIGluY2x1ZGUgPGFzc2VydC5oPgorKyNlbmRpZgorKwkJICAgICBT eW50YXggZXJyb3IKKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2NwcCAiJExJTkVOTyI7IHRo ZW4gOgorKworK2Vsc2UKKysgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KKytjb250 aW51ZQorK2ZpCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICMg T0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBo ZWFkZXJzCisrICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgorKyAgY2F0IGNvbmZkZWZzLmgg LSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysj aW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2Nw cCAiJExJTkVOTyI7IHRoZW4gOgorKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1 dC4KKytjb250aW51ZQorK2Vsc2UKKysgICMgUGFzc2VzIGJvdGggdGVzdHMuCisrYWNfcHJlcHJv Y19vaz06CisrYnJlYWsKKytmaQorK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0 CisrCisrZG9uZQorKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBj bGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgorK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfZXh0CisraWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4gOgorKworK2Vsc2UKKysgIHsgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoi ID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KKyth c19mbl9lcnJvciAkPyAiQysrIHByZXByb2Nlc3NvciBcIiRDWFhDUFBcIiBmYWlscyBzYW5pdHkg Y2hlY2sKKytTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzIiAiJExJTkVOTyIgNTsg fQorK2ZpCisrCisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQUEZMQUdTJworK2FjX2NvbXBp bGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19s aW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19j b21waWxlcl9nbnUKKysKKytlbHNlCisrICBfbHRfY2F1Z2h0X0NYWF9lcnJvcj15ZXMKKytmaQor KworK2FjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9 JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19s aW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3Zf Y3h4X2NvbXBpbGVyX2dudQorKworK2FyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubworK2FsbG93 X3VuZGVmaW5lZF9mbGFnX0NYWD0KKythbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYPW5vCisrYXJj aGl2ZV9leHBzeW1fY21kc19DWFg9CisrY29tcGlsZXJfbmVlZHNfb2JqZWN0X0NYWD1ubworK2V4 cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9CisraGFyZGNvZGVfZGlyZWN0X0NYWD1ubworK2hh cmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFg9bm8KKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0NYWD0KKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0NYWD0KKytoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yX0NYWD0KKytoYXJkY29kZV9taW51c19MX0NYWD1ubworK2hhcmRjb2RlX3No bGlicGF0aF92YXJfQ1hYPXVuc3VwcG9ydGVkCisraGFyZGNvZGVfYXV0b21hdGljX0NYWD1ubwor K2luaGVyaXRfcnBhdGhfQ1hYPW5vCisrbW9kdWxlX2NtZHNfQ1hYPQorK21vZHVsZV9leHBzeW1f Y21kc19DWFg9CisrbGlua19hbGxfZGVwbGlic19DWFg9dW5rbm93bgorK29sZF9hcmNoaXZlX2Nt ZHNfQ1hYPSRvbGRfYXJjaGl2ZV9jbWRzCisrcmVsb2FkX2ZsYWdfQ1hYPSRyZWxvYWRfZmxhZwor K3JlbG9hZF9jbWRzX0NYWD0kcmVsb2FkX2NtZHMKKytub191bmRlZmluZWRfZmxhZ19DWFg9Cisr d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPQorK2VuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNf cnVudGltZXNfQ1hYPW5vCisrCisrIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEMrKyB0ZXN0 IHNvdXJjZXMuCisrYWNfZXh0PWNwcAorKworKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBj b21waWxlZCBDKysgdGVzdCBzb3VyY2VzLgorK29iamV4dD1vCisrb2JqZXh0X0NYWD0kb2JqZXh0 CisrCisrIyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0ZXN0cyBpZiB3ZSBhbHJlYWR5 IGRldGVybWluZWQgdGhhdAorKyMgdGhlIENYWCBjb21waWxlciBpc24ndCB3b3JraW5nLiAgU29t ZSB2YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJlZCkKKysjIGFyZSBjdXJyZW50bHkgYXNzdW1l ZCB0byBhcHBseSB0byBhbGwgY29tcGlsZXJzIG9uIHRoaXMgcGxhdGZvcm0sCisrIyBhbmQgd2ls bCBiZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2VkIG9uIGEgbm9uLXdvcmtpbmcgY29t cGlsZXIuCisraWYgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAhPSB5ZXM7IHRoZW4KKysg ICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCisrICBsdF9zaW1wbGVf Y29tcGlsZV90ZXN0X2NvZGU9ImludCBzb21lX3ZhcmlhYmxlID0gMDsiCisrCisrICAjIENvZGUg dG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworKyAgbHRfc2ltcGxlX2xpbmtfdGVzdF9j b2RlPSdpbnQgbWFpbihpbnQsIGNoYXIgKltdKSB7IHJldHVybigwKTsgfScKKysKKysgICMgbHRt YWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUg JENDIGlzIHNldC4KKysKKysKKysKKysKKysKKysKKysjIElmIG5vIEMgY29tcGlsZXIgd2FzIHNw ZWNpZmllZCwgdXNlIENDLgorK0xUQ0M9JHtMVENDLSIkQ0MifQorKworKyMgSWYgbm8gQyBjb21w aWxlciBmbGFncyB3ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4KKytMVENGTEFHUz0ke0xUQ0ZM QUdTLSIkQ0ZMQUdTIn0KKysKKysjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGgg YXJndW1lbnRzLgorK2NvbXBpbGVyPSRDQworKworKworKyAgIyBzYXZlIHdhcm5pbmdzL2JvaWxl cnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKKysgIGFjX291dGZpbGU9Y29uZnRlc3QuJGFjX29i amV4dAorK2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNf ZXh0CisrZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAv XiAqKy9kJyA+Y29uZnRlc3QuZXJyCisrX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29u ZnRlc3QuZXJyYAorKyRSTSBjb25mdGVzdCoKKysKKysgIGFjX291dGZpbGU9Y29uZnRlc3QuJGFj X29iamV4dAorK2VjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNf ZXh0CisrZXZhbCAiJGFjX2xpbmsiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAq Ky9kJyA+Y29uZnRlc3QuZXJyCisrX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0 LmVycmAKKyskUk0gLXIgY29uZnRlc3QqCisrCisrCisrICAjIEFsbG93IENDIHRvIGJlIGEgcHJv Z3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorKyAgbHRfc2F2ZV9DQz0kQ0MKKysgIGx0X3NhdmVf TEQ9JExECisrICBsdF9zYXZlX0dDQz0kR0NDCisrICBHQ0M9JEdYWAorKyAgbHRfc2F2ZV93aXRo X2dudV9sZD0kd2l0aF9nbnVfbGQKKysgIGx0X3NhdmVfcGF0aF9MRD0kbHRfY3ZfcGF0aF9MRAor KyAgaWYgdGVzdCAtbiAiJHtsdF9jdl9wcm9nX2dudV9sZGN4eCtzZXR9IjsgdGhlbgorKyAgICBs dF9jdl9wcm9nX2dudV9sZD0kbHRfY3ZfcHJvZ19nbnVfbGRjeHgKKysgIGVsc2UKKysgICAgJGFz X3Vuc2V0IGx0X2N2X3Byb2dfZ251X2xkCisrICBmaQorKyAgaWYgdGVzdCAtbiAiJHtsdF9jdl9w YXRoX0xEQ1hYK3NldH0iOyB0aGVuCisrICAgIGx0X2N2X3BhdGhfTEQ9JGx0X2N2X3BhdGhfTERD WFgKKysgIGVsc2UKKysgICAgJGFzX3Vuc2V0IGx0X2N2X3BhdGhfTEQKKysgIGZpCisrICB0ZXN0 IC16ICIke0xEQ1hYK3NldH0iIHx8IExEPSRMRENYWAorKyAgQ0M9JHtDWFgtImMrKyJ9CisrICBj b21waWxlcj0kQ0MKKysgIGNvbXBpbGVyX0NYWD0kQ0MKKysgIGZvciBjY190ZW1wIGluICRjb21w aWxlciIiOyBkbworKyAgY2FzZSAkY2NfdGVtcCBpbgorKyAgICBjb21waWxlIHwgKltcXC9dY29t cGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7CisrICAgIGRpc3RjYyB8ICpbXFwvXWRp c3RjYyB8IHB1cmlmeSB8ICpbXFwvXXB1cmlmeSApIDs7CisrICAgIFwtKikgOzsKKysgICAgKikg YnJlYWs7OworKyAgZXNhYworK2RvbmUKKytjY19iYXNlbmFtZT1gJEVDSE8gIiRjY190ZW1wIiB8 ICRTRUQgInMlLiovJSU7IHMlXiRob3N0X2FsaWFzLSUlImAKKysKKysKKysgIGlmIHRlc3QgLW4g IiRjb21waWxlciI7IHRoZW4KKysgICAgIyBXZSBkb24ndCB3YW50IC1mbm8tZXhjZXB0aW9uIHdo ZW4gY29tcGlsaW5nIEMrKyBjb2RlLCBzbyBzZXQgdGhlCisrICAgICMgbm9fYnVpbHRpbl9mbGFn IHNlcGFyYXRlbHkKKysgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgICBsdF9w cm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFg9JyAtZm5vLWJ1aWx0aW4nCisrICAgIGVs c2UKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFg9CisrICAgIGZp CisrCisrICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgICAgIyBTZXQgdXAgZGVm YXVsdCBHTlUgQysrIGNvbmZpZ3VyYXRpb24KKysKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13 aXRoLWdudS1sZCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX2dudV9sZCtzZXR9IiA9IHNl dDsgdGhlbiA6CisrICB3aXRodmFsPSR3aXRoX2dudV9sZDsgdGVzdCAiJHdpdGh2YWwiID0gbm8g fHwgd2l0aF9nbnVfbGQ9eWVzCisrZWxzZQorKyAgd2l0aF9nbnVfbGQ9bm8KKytmaQorKworK2Fj X3Byb2c9bGQKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgIyBDaGVjayBpZiBnY2Mg LXByaW50LXByb2ctbmFtZT1sZCBnaXZlcyBhIHBhdGguCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBsZCB1c2VkIGJ5ICRDQyIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgJENDLi4uICIgPiY2OyB9CisrICBj YXNlICRob3N0IGluCisrICAqLSotbWluZ3cqKQorKyAgICAjIGdjYyBsZWF2ZXMgYSB0cmFpbGlu ZyBjYXJyaWFnZSByZXR1cm4gd2hpY2ggdXBzZXRzIG1pbmd3CisrICAgIGFjX3Byb2c9YCgkQ0Mg LXByaW50LXByb2ctbmFtZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1J2AgOzsKKysgICopCisrICAg IGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNWAgOzsKKysgIGVzYWMKKysg IGNhc2UgJGFjX3Byb2cgaW4KKysgICAgIyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMuCisrICAgIFtc XC9dKiB8ID86W1xcL10qKQorKyAgICAgIHJlX2RpcmVsdD0nL1teL11bXi9dKi9cLlwuLycKKysg ICAgICAjIENhbm9uaWNhbGl6ZSB0aGUgcGF0aG5hbWUgb2YgbGQKKysgICAgICBhY19wcm9nPWAk RUNITyAiJGFjX3Byb2cifCAkU0VEICdzJVxcXFwlLyVnJ2AKKysgICAgICB3aGlsZSAkRUNITyAi JGFjX3Byb2ciIHwgJEdSRVAgIiRyZV9kaXJlbHQiID4gL2Rldi9udWxsIDI+JjE7IGRvCisrCWFj X3Byb2c9YCRFQ0hPICRhY19wcm9nfCAkU0VEICJzJSRyZV9kaXJlbHQlLyUiYAorKyAgICAgIGRv bmUKKysgICAgICB0ZXN0IC16ICIkTEQiICYmIExEPSIkYWNfcHJvZyIKKysgICAgICA7OworKyAg IiIpCisrICAgICMgSWYgaXQgZmFpbHMsIHRoZW4gcHJldGVuZCB3ZSBhcmVuJ3QgdXNpbmcgR0ND LgorKyAgICBhY19wcm9nPWxkCisrICAgIDs7CisrICAqKQorKyAgICAjIElmIGl0IGlzIHJlbGF0 aXZlLCB0aGVuIHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBBVEguCisrICAgIHdpdGhfZ251 X2xkPXVua25vd24KKysgICAgOzsKKysgIGVzYWMKKytlbGlmIHRlc3QgIiR3aXRoX2dudV9sZCIg PSB5ZXM7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgZm9yIEdOVSBsZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEdOVSBs ZC4uLiAiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgZm9yIG5vbi1HTlUgbGQiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciBub24tR05VIGxkLi4uICIgPiY2OyB9CisrZmkKKytpZiB0ZXN0ICIke2x0X2N2X3Bh dGhfTEQrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICBpZiB0ZXN0IC16ICIkTEQiOyB0aGVuCisrICBsdF9zYXZlX2lmcz0iJElGUyI7 IElGUz0kUEFUSF9TRVBBUkFUT1IKKysgIGZvciBhY19kaXIgaW4gJFBBVEg7IGRvCisrICAgIElG Uz0iJGx0X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorKyAg ICBpZiB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nIiB8fCB0ZXN0IC1mICIkYWNfZGlyLyRhY19w cm9nJGFjX2V4ZWV4dCI7IHRoZW4KKysgICAgICBsdF9jdl9wYXRoX0xEPSIkYWNfZGlyLyRhY19w cm9nIgorKyAgICAgICMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9ncmFtIGlzIEdOVSBsZC4gIEkn ZCByYXRoZXIgdXNlIC0tdmVyc2lvbiwKKysgICAgICAjIGJ1dCBhcHBhcmVudGx5IHNvbWUgdmFy aWFudHMgb2YgR05VIGxkIG9ubHkgYWNjZXB0IC12LgorKyAgICAgICMgQnJlYWsgb25seSBpZiBp dCB3YXMgdGhlIEdOVS9ub24tR05VIGxkIHRoYXQgd2UgcHJlZmVyLgorKyAgICAgIGNhc2UgYCIk bHRfY3ZfcGF0aF9MRCIgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgorKyAgICAgICpHTlUqIHwgKid3 aXRoIEJGRCcqKQorKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IG5vICYmIGJyZWFrCisrCTs7Cisr ICAgICAgKikKKysJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSB5ZXMgJiYgYnJlYWsKKysJOzsKKysg ICAgICBlc2FjCisrICAgIGZpCisrICBkb25lCisrICBJRlM9IiRsdF9zYXZlX2lmcyIKKytlbHNl CisrICBsdF9jdl9wYXRoX0xEPSIkTEQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 IHdpdGggYSBwYXRoLgorK2ZpCisrZmkKKysKKytMRD0iJGx0X2N2X3BhdGhfTEQiCisraWYgdGVz dCAtbiAiJExEIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6ICRMRCIgPiY1CisrJGFzX2VjaG8gIiRMRCIgPiY2OyB9CisrZWxzZQorKyAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUK KyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrdGVzdCAteiAiJExEIiAmJiBhc19mbl9lcnJv ciAkPyAibm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEgiICIkTElORU5PIiA1CisreyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBpZiB0aGUgbGlu a2VyICgkTEQpIGlzIEdOVSBsZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgdGhlIGxp bmtlciAoJExEKSBpcyBHTlUgbGQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2df Z251X2xkK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgIyBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24gaGVyZSwgYnV0IGFwcGFyZW50 bHkgc29tZSBHTlUgbGRzIG9ubHkgYWNjZXB0IC12LgorK2Nhc2UgYCRMRCAtdiAyPiYxIDwvZGV2 L251bGxgIGluCisrKkdOVSogfCAqJ3dpdGggQkZEJyopCisrICBsdF9jdl9wcm9nX2dudV9sZD15 ZXMKKysgIDs7CisrKikKKysgIGx0X2N2X3Byb2dfZ251X2xkPW5vCisrICA7OworK2VzYWMKKytm aQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRf Y3ZfcHJvZ19nbnVfbGQiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19nbnVfbGQiID4mNjsg fQorK3dpdGhfZ251X2xkPSRsdF9jdl9wcm9nX2dudV9sZAorKworKworKworKworKworKworKwor KyAgICAgICMgQ2hlY2sgaWYgR05VIEMrKyB1c2VzIEdOVSBsZCBhcyB0aGUgdW5kZXJseWluZyBs aW5rZXIsIHNpbmNlIHRoZQorKyAgICAgICMgYXJjaGl2aW5nIGNvbW1hbmRzIGJlbG93IGFzc3Vt ZSB0aGF0IEdOVSBsZCBpcyBiZWluZyB1c2VkLgorKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9s ZCIgPSB5ZXM7IHRoZW4KKysgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1u b3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0 cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysgICAg ICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHds JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCisrICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgICAgZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKworKyAgICAgICAg IyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkK KysgICAgICAgICMgWFhYIEkgdGhpbmsgd2xhcmMgY2FuIGJlIGVsaW1pbmF0ZWQgaW4gbHRjZi1j eHgsIGJ1dCBJIG5lZWQgdG8KKysgICAgICAgICMgICAgIGludmVzdGlnYXRlIGl0IGEgbGl0dGxl IGJpdCBtb3JlLiAoTU0pCisrICAgICAgICB3bGFyYz0nJHt3bH0nCisrCisrICAgICAgICAjIGFu Y2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCisrICAg ICAgICBpZiBldmFsICJgJENDIC1wcmludC1wcm9nLW5hbWU9bGRgIC0taGVscCAyPiYxIiB8Cisr CSAgJEdSRVAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgICAg IHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29u dmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKKysgICAgICAgIGVsc2UKKysg ICAgICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPQorKyAgICAgICAgZmkKKysgICAg ICBlbHNlCisrICAgICAgICB3aXRoX2dudV9sZD1ubworKyAgICAgICAgd2xhcmM9CisrCisrICAg ICAgICAjIEEgZ2VuZXJpYyBhbmQgdmVyeSBzaW1wbGUgZGVmYXVsdCBzaGFyZWQgbGlicmFyeSBj cmVhdGlvbgorKyAgICAgICAgIyBjb21tYW5kIGZvciBHTlUgQysrIGZvciB0aGUgY2FzZSB3aGVy ZSBpdCB1c2VzIHRoZSBuYXRpdmUKKysgICAgICAgICMgbGlua2VyLCBpbnN0ZWFkIG9mIEdOVSBs ZC4gIElmIHBvc3NpYmxlLCB0aGlzIHNldHRpbmcgc2hvdWxkCisrICAgICAgICAjIG92ZXJyaWRk ZW4gdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIG5hdGl2ZSBsaW5rZXIgZmVhdHVyZXMgb24KKysg ICAgICAgICMgdGhlIHBsYXRmb3JtIGl0IGlzIGJlaW5nIHVzZWQgb24uCisrICAgICAgICBhcmNo aXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRsaWInCisr ICAgICAgZmkKKysKKysgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2 ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmll cywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrICAgICAgIyBsaW5raW5n IGEgc2hhcmVkIGxpYnJhcnkuCisrICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAt c2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgLXYgIl5Db25m aWd1cmVkIHdpdGg6IiB8ICRHUkVQICJcLUwiJworKworKyAgICBlbHNlCisrICAgICAgR1hYPW5v CisrICAgICAgd2l0aF9nbnVfbGQ9bm8KKysgICAgICB3bGFyYz0KKysgICAgZmkKKysKKysgICAg IyBQT1JUTUU6IGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3RlbSdzIEMrKyBsaW5r IGNoYXJhY3RlcmlzdGljcworKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9y dHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0 aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIg PiY2OyB9CisrICAgIGxkX3NobGlic19DWFg9eWVzCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysg ICAgICBhaXgzKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkg c3VwcG9ydAorKyAgICAgICAgbGRfc2hsaWJzX0NYWD1ubworKyAgICAgICAgOzsKKysgICAgICBh aXhbNC05XSopCisrICAgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKyAg ICAgICAgICAjIE9uIElBNjQsIHRoZSBsaW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRl ZmF1bHQsIHNvIHdlIGRvbid0CisrICAgICAgICAgICMgaGF2ZSB0byBkbyBhbnl0aGluZyBzcGVj aWFsLgorKyAgICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCisrICAgICAgICAgIGV4 cF9zeW1fZmxhZz0nLUJleHBvcnQnCisrICAgICAgICAgIG5vX2VudHJ5X2ZsYWc9IiIKKysgICAg ICAgIGVsc2UKKysgICAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworKworKyAgICAg ICAgICAjIFRlc3QgaWYgd2UgYXJlIHRyeWluZyB0byB1c2UgcnVuIHRpbWUgbGlua2luZyBvciBu b3JtYWwKKysgICAgICAgICAgIyBBSVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwgaXMgc29tZXdo ZXJlIGluIExERkxBR1MsIHdlCisrICAgICAgICAgICMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtp bmcuCisrICAgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMjNdfGFpeDQuWzIzXS4qfGFp eFs1LTldKikKKysJICAgIGZvciBsZF9mbGFnIGluICRMREZMQUdTOyBkbworKwkgICAgICBjYXNl ICRsZF9mbGFnIGluCisrCSAgICAgICotYnJ0bCopCisrCSAgICAgICAgYWl4X3VzZV9ydW50aW1l bGlua2luZz15ZXMKKysJICAgICAgICBicmVhaworKwkgICAgICAgIDs7CisrCSAgICAgIGVzYWMK KysJICAgIGRvbmUKKysJICAgIDs7CisrICAgICAgICAgIGVzYWMKKysKKysgICAgICAgICAgZXhw X3N5bV9mbGFnPSctYmV4cG9ydCcKKysgICAgICAgICAgbm9fZW50cnlfZmxhZz0nLWJub2VudHJ5 JworKyAgICAgICAgZmkKKysKKysgICAgICAgICMgV2hlbiBsYXJnZSBleGVjdXRhYmxlcyBvciBz aGFyZWQgb2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBsZCBjYW4KKysgICAgICAgICMgaGF2ZSBwcm9i bGVtcyBjcmVhdGluZyB0aGUgdGFibGUgb2YgY29udGVudHMuICBJZiBsaW5raW5nIGEgbGlicmFy eQorKyAgICAgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMgaW4gImVycm9yIFRPQyBvdmVyZmxvdyIg YWRkIC1tbWluaW1hbC10b2MgdG8KKysgICAgICAgICMgQ1hYRkxBR1MvQ0ZMQUdTIGZvciBnKysv Z2NjLiAgSW4gdGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMgbm90CisrICAgICAgICAjIGVub3VnaCB0 byBmaXggdGhlIHByb2JsZW0sIGFkZCAtV2wsLWJiaWd0b2MgdG8gTERGTEFHUy4KKysKKysgICAg ICAgIGFyY2hpdmVfY21kc19DWFg9JycKKysgICAgICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVz CisrICAgICAgICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hYPXllcworKyAgICAgICAgaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9JzonCisrICAgICAgICBsaW5rX2FsbF9kZXBsaWJz X0NYWD15ZXMKKysgICAgICAgIGZpbGVfbGlzdF9zcGVjX0NYWD0nJHt3bH0tZiwnCisrCisrICAg ICAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAgICAgICAgICBjYXNlICRob3N0X29z IGluIGFpeDQuWzAxMl18YWl4NC5bMDEyXS4qKQorKyAgICAgICAgICAjIFdlIG9ubHkgd2FudCB0 byBkbyB0aGlzIG9uIEFJWCA0LjIgYW5kIGxvd2VyLCB0aGUgY2hlY2sKKysgICAgICAgICAgIyBi ZWxvdyBmb3IgYnJva2VuIGNvbGxlY3QyIGRvZXNuJ3Qgd29yayB1bmRlciA0LjMrCisrCSAgY29s bGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxlY3QyYAorKwkgIGlmIHRlc3Qg LWYgIiRjb2xsZWN0Mm5hbWUiICYmCisrCSAgICAgc3RyaW5ncyAiJGNvbGxlY3QybmFtZSIgfCAk R1JFUCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJICB0aGVuCisrCSAgICAjIFdlIGhh dmUgcmV3b3JrZWQgY29sbGVjdDIKKysJICAgIDoKKysJICBlbHNlCisrCSAgICAjIFdlIGhhdmUg b2xkIGNvbGxlY3QyCisrCSAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPXVuc3VwcG9ydGVkCisrCSAg ICAjIEl0IGZhaWxzIHRvIGZpbmQgdW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVuaW5z dGFsbGVkCisrCSAgICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRp bmcgaGFyZGNvZGVfbWludXNfTAorKwkgICAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5r aW5nCisrCSAgICBoYXJkY29kZV9taW51c19MX0NYWD15ZXMKKysJICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfQ1hYPSctTCRsaWJkaXInCisrCSAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yX0NYWD0KKysJICBmaQorKyAgICAgICAgICBlc2FjCisrICAgICAgICAgIHNoYXJlZF9mbGFn PSctc2hhcmVkJworKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsg dGhlbgorKwkgICAgc2hhcmVkX2ZsYWc9IiRzaGFyZWRfZmxhZyAiJyR7d2x9LUcnCisrCSAgZmkK KysgICAgICAgIGVsc2UKKysgICAgICAgICAgIyBub3QgdXNpbmcgZ2NjCisrICAgICAgICAgIGlm IHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgIyBWaXN1YWxBZ2UgQysrLCBWZXJz aW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVhc2UKKysJICAjIGNob2tl cyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgorKwkgIHNoYXJlZF9m bGFnPSctRycKKysgICAgICAgICAgZWxzZQorKwkgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGlt ZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSAgICAgIHNoYXJlZF9mbGFnPScke3dsfS1HJworKwkg ICAgZWxzZQorKwkgICAgICBzaGFyZWRfZmxhZz0nJHt3bH0tYk06U1JFJworKwkgICAgZmkKKysg ICAgICAgICAgZmkKKysgICAgICAgIGZpCisrCisrICAgICAgICBleHBvcnRfZHluYW1pY19mbGFn X3NwZWNfQ1hYPScke3dsfS1iZXhwYWxsJworKyAgICAgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhw YWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCisrICAgICAgICAjIHVu ZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5bWJv bHMgdG8KKysJIyBleHBvcnQuCisrICAgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYPXll cworKyAgICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVu CisrICAgICAgICAgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUg bG9hZGluZyBmbGFncyAoLWJydGwpLAorKyAgICAgICAgICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0 aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrICAgICAgICAg IGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nLWJlcm9rJworKyAgICAgICAgICAjIERldGVybWlu ZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkK KysgICAgICAgICAgIyBleGVjdXRhYmxlLgorKyAgICAgICAgICBjYXQgY29uZmRlZnMuaCAtIDw8 X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2lu dAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisraWYg YWNfZm5fY3h4X3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CisrCisrbHRfYWl4X2xpYnBhdGhf c2VkPScKKysgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8geworKwkvXjAvIHsKKysJICAg IHMvXjAgICpcKC4qXCkkL1wxLworKwkgICAgcAorKwl9CisrICAgIH0nCisrYWl4X2xpYnBhdGg9 YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0 X2FpeF9saWJwYXRoX3NlZCJgCisrIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRp ZG4ndCBmaW5kIGFueXRoaW5nLgorK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KKysg IGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8 ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorK2ZpCisrZmkKKytybSAtZiBjb3Jl IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKysgICAgY29uZnRlc3QkYWNfZXhl ZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFp eF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKysKKysgICAgICAgICAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgi CisrCisrICAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLW8gJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicg JGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4 IjsgdGhlbiBmdW5jX2VjaG9fYWxsICIke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IjsgZWxz ZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9m bGFnIgorKyAgICAgICAgZWxzZQorKyAgICAgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2 NDsgdGhlbgorKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LVIgJGxp YmRpcjovdXNyL2xpYjovbGliJworKwkgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPSIteiBu b2RlZnMiCisrCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0iXCRDQyAkc2hhcmVkX2ZsYWci JyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5v X2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFn fSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyIKKysgICAgICAgICAgZWxz ZQorKwkgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBl bmNvZGVkIGluIGFuCisrCSAgICAjIGVtcHR5IGV4ZWN1dGFibGUuCisrCSAgICBjYXQgY29uZmRl ZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAq LworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FD RU9GCisraWYgYWNfZm5fY3h4X3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CisrCisrbHRfYWl4 X2xpYnBhdGhfc2VkPScKKysgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8geworKwkvXjAv IHsKKysJICAgIHMvXjAgICpcKC4qXCkkL1wxLworKwkgICAgcAorKwl9CisrICAgIH0nCisrYWl4 X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAt biAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0 IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgorK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7 IHRoZW4KKysgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9k ZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorK2ZpCisrZmkKKyty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKysgICAgY29uZnRl c3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgi OyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKysKKysJICAgIGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJw YXRoIgorKwkgICAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUg bG9hZGluZyBmbGFncywKKysJICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBi dXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKysJICAgIG5vX3VuZGVmaW5lZF9mbGFn X0NYWD0nICR7d2x9LWJlcm5vdG9rJworKwkgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPScg JHt3bH0tYmVyb2snCisrCSAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisr CSAgICAgICMgV2Ugb25seSB1c2UgdGhpcyBjb2RlIGZvciBHTlUgbGRzIHRoYXQgc3VwcG9ydCAt LXdob2xlLWFyY2hpdmUuCisrCSAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJHt3 bH0tLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisr CSAgICBlbHNlCisrCSAgICAgICMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8g c2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcworKwkgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlY19DWFg9JyRjb252ZW5pZW5jZScKKysJICAgIGZpCisrCSAgICBhcmNoaXZlX2NtZHNfbmVl ZF9sY19DWFg9eWVzCisrCSAgICAjIFRoaXMgaXMgc2ltaWxhciB0byBob3cgQUlYIHRyYWRpdGlv bmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQKKysJICAgICMgbGlicmFyaWVzLgorKwkgICAgYXJjaGl2 ZV9leHBzeW1fY21kc19DWFg9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIv JHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxhZ31+JEFSICRBUl9G TEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1dF9vYmpkaXIvJHNv bmFtZScKKysgICAgICAgICAgZmkKKysgICAgICAgIGZpCisrICAgICAgICA7OworKworKyAgICAg IGJlb3MqKQorKwlpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0 czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hY PXVuc3VwcG9ydGVkCisrCSAgIyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5 cyBzb21lIHJlbGVhc2VzIG9mIGdjYworKwkgICMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMg ZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKKysJICBhcmNoaXZlX2NtZHNfQ1hY PSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCWVsc2UKKysJICBsZF9zaGxpYnNfQ1hYPW5vCisr CWZpCisrCTs7CisrCisrICAgICAgY2hvcnVzKikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1l IGluCisrICAgICAgICAgICopCisrCSAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFy eSBzdXBwb3J0CisrCSAgbGRfc2hsaWJzX0NYWD1ubworKwkgIDs7CisrICAgICAgICBlc2FjCisr ICAgICAgICA7OworKworKyAgICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikK KysgICAgICAgICMgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCBDWFgpIGlz IGFjdHVhbGx5IG1lYW5pbmdsZXNzLAorKyAgICAgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2gg cGF0aCBmb3IgRExMcy4KKysgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSct TCRsaWJkaXInCisrICAgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS0t ZXhwb3J0LWFsbC1zeW1ib2xzJworKyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPXVu c3VwcG9ydGVkCisrICAgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYPW5vCisrICAgICAg ICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0NYWD15ZXMKKysKKysgICAgICAg IGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRo ZW4KKysgICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFn ZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJworKyAgICAgICAgICAj IElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBs aW5lCisrICAgICAgICAgICMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBw cmVwZW5kLi4uCisrICAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdpZiB0ZXN0ICJ4 YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgorKwkgICAgY3AgJGV4 cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworKyAgICAgICAgICBlbHNl CisrCSAgICBlY2hvIEVYUE9SVFMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysJICAg IGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrICAg ICAgICAgIGZpfgorKyAgICAgICAgICAkQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJG91dHB1dF9vYmpk aXIvJHNvbmFtZS5kZWYgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0t LWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRs aWInCisrICAgICAgICBlbHNlCisrICAgICAgICAgIGxkX3NobGlic19DWFg9bm8KKysgICAgICAg IGZpCisrICAgICAgICA7OworKyAgICAgIGRhcndpbiogfCByaGFwc29keSopCisrCisrCisrICBh cmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KKysgIGhhcmRjb2RlX2RpcmVjdF9DWFg9bm8KKysg IGhhcmRjb2RlX2F1dG9tYXRpY19DWFg9eWVzCisrICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NY WD11bnN1cHBvcnRlZAorKyAgaWYgdGVzdCAiJGx0X2N2X2xkX2ZvcmNlX2xvYWQiID0gInllcyI7 IHRoZW4KKysgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPSdgZm9yIGNvbnYgaW4gJGNv bnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1c IiRuZXdfY29udmVuaWVuY2UgJHt3bH0tZm9yY2VfbG9hZCwkY29udlwiOyBkb25lOyBmdW5jX2Vj aG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCcKKysgIGVsc2UKKysgICAgd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWNfQ1hYPScnCisrICBmaQorKyAgbGlua19hbGxfZGVwbGlic19DWFg9eWVzCisr ICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9IiRfbHRfZGFyX2FsbG93X3VuZGVmaW5lZCIKKysg IGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICBpZm9ydCopIF9sdF9kYXJfY2FuX3NoYXJlZD15 ZXMgOzsKKysgICAgICopIF9sdF9kYXJfY2FuX3NoYXJlZD0kR0NDIDs7CisrICBlc2FjCisrICBp ZiB0ZXN0ICIkX2x0X2Rhcl9jYW5fc2hhcmVkIiA9ICJ5ZXMiOyB0aGVuCisrICAgIG91dHB1dF92 ZXJib3NlX2xpbmtfY21kPWZ1bmNfZWNob19hbGwKKysgICAgYXJjaGl2ZV9jbWRzX0NYWD0iXCRD QyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBc JGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUg XCR2ZXJzdHJpbmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7X2x0X2RzeW11dGlsfSIKKysgICAgbW9k dWxlX2NtZHNfQ1hYPSJcJENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRs ZSBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kc3ltdXRpbH0iCisr ICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1i b2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLWR5 bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBs aWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVy c3RyaW5nICR7X2x0X2Rhcl9zaW5nbGVfbW9kfSR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9k c3ltdXRpbH0iCisrICAgIG1vZHVsZV9leHBzeW1fY21kc19DWFg9InNlZCAtZSAncyxeLF8sJyA8 IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5l eHBzeW1+XCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJv YmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0 X2RzeW11dGlsfSIKKysgICAgICAgaWYgdGVzdCAiJGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Qi ICE9ICJ5ZXMiOyB0aGVuCisrICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0iXCRDQyAtciAta2VlcF9w cml2YXRlX2V4dGVybnMgLW5vc3RkbGliIC1vIFwke2xpYn0tbWFzdGVyLm8gXCRsaWJvYmpzflwk Q0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJHtsaWJ9LW1h c3Rlci5vIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9c JHNvbmFtZSBcJHZlcnN0cmluZyR7X2x0X2RzeW11dGlsfSIKKysgICAgICBhcmNoaXZlX2V4cHN5 bV9jbWRzX0NYWD0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29i amRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1yIC1rZWVwX3ByaXZhdGVfZXh0 ZXJucyAtbm9zdGRsaWIgLW8gXCR7bGlifS1tYXN0ZXIubyBcJGxpYm9ianN+XCRDQyAtZHluYW1p Y2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwke2xpYn0tbWFzdGVyLm8gXCRk ZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwk dmVyc3RyaW5nJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKysgICAgZmkK KysKKysgIGVsc2UKKysgIGxkX3NobGlic19DWFg9bm8KKysgIGZpCisrCisrCTs7CisrCisrICAg ICAgZGd1eCopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBlYysr KikKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkg ICAgbGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysgICAgICAgICAgZ2hjeCopCisrCSAgICAj IEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAg ICAgICAgICAqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBw b3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAgICAgZXNhYworKyAg ICAgICAgOzsKKysKKysgICAgICBmcmVlYnNkWzEyXSopCisrICAgICAgICAjIEMrKyBzaGFyZWQg bGlicmFyaWVzIHJlcG9ydGVkIHRvIGJlIGZhaXJseSBicm9rZW4gYmVmb3JlCisrCSMgc3dpdGNo IHRvIEVMRgorKyAgICAgICAgbGRfc2hsaWJzX0NYWD1ubworKyAgICAgICAgOzsKKysKKysgICAg ICBmcmVlYnNkLWVsZiopCisrICAgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KKysg ICAgICAgIDs7CisrCisrICAgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQorKyAgICAgICAgIyBG cmVlQlNEIDMgYW5kIGxhdGVyIHVzZSBHTlUgQysrIGFuZCBHTlUgbGQgd2l0aCBzdGFuZGFyZCBF TEYKKysgICAgICAgICMgY29udmVudGlvbnMKKysgICAgICAgIGxkX3NobGlic19DWFg9eWVzCisr ICAgICAgICA7OworKworKyAgICAgIGdudSopCisrICAgICAgICA7OworKworKyAgICAgIGhhaWt1 KikKKysgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKyAg ICAgICAgbGlua19hbGxfZGVwbGlic19DWFg9eWVzCisrICAgICAgICA7OworKworKyAgICAgIGhw dXg5KikKKysgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfStiICR7 d2x9JGxpYmRpcicKKysgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKKysg ICAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUUnCisrICAgICAgICBo YXJkY29kZV9kaXJlY3RfQ1hYPXllcworKyAgICAgICAgaGFyZGNvZGVfbWludXNfTF9DWFg9eWVz ICMgTm90IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJCQkJICAgICAgICAgICAgICMgYnV0IGFzIHRo ZSBkZWZhdWx0CisrCQkJCSAgICAgICAgICAgICAjIGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5Lgor KworKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgQ0MqKQorKyAgICAg ICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAg ICAgICAgIGxkX3NobGlic19DWFg9bm8KKysgICAgICAgICAgICA7OworKyAgICAgICAgICBhQ0Mq KQorKyAgICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRSTSAkb3V0cHV0X29iamRpci8kc29u YW1lfiRDQyAtYiAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVj dHMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwg bXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAgICAgICAgICMgQ29tbWFuZHMg dG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysgICAg ICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdz IGFyZSB1c2VkIHdoZW4KKysgICAgICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4K KysgICAgICAgICAgICAjCisrICAgICAgICAgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBi ZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKyAgICAgICAgICAgICMgZXhw bGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0 aGVtCisrICAgICAgICAgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdl dCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKyAgICAgICAgICAgICMgZGVwZW5kZW5jaWVzLgor KyAgICAgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gKCRDQyAtYiAk Q0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSkgfCAkRUdSRVAgIlwtTCJgOyBsaXN0PSIi OyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlz dD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9u ZTsgZnVuY19lY2hvX2FsbCAiJGxpc3QiJworKyAgICAgICAgICAgIDs7CisrICAgICAgICAgICop CisrICAgICAgICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgICAgICAgICAg IGFyY2hpdmVfY21kc19DWFg9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVk IC1ub3N0ZGxpYiAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRs aWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAgICAgICAgIGVsc2UK KysgICAgICAgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9y dAorKyAgICAgICAgICAgICAgbGRfc2hsaWJzX0NYWD1ubworKyAgICAgICAgICAgIGZpCisrICAg ICAgICAgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrCisrICAgICAgaHB1eDEw KnxocHV4MTEqKQorKyAgICAgICAgaWYgdGVzdCAkd2l0aF9nbnVfbGQgPSBubzsgdGhlbgorKwkg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfStiICR7d2x9JGxpYmRpcicKKysJ ICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06CisrCisrICAgICAgICAgIGNhc2UgJGhv c3RfY3B1IGluCisrICAgICAgICAgICAgaHBwYSo2NCp8aWE2NCopCisrICAgICAgICAgICAgICA7 OworKyAgICAgICAgICAgICopCisrCSAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9 JyR7d2x9LUUnCisrICAgICAgICAgICAgICA7OworKyAgICAgICAgICBlc2FjCisrICAgICAgICBm aQorKyAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICAgICAgaHBwYSo2NCp8aWE2NCop CisrICAgICAgICAgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD1ubworKyAgICAgICAgICAgIGhhcmRj b2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCisrICAgICAgICAgICAgOzsKKysgICAgICAgICAgKikK KysgICAgICAgICAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcworKyAgICAgICAgICAgIGhhcmRj b2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFg9eWVzCisrICAgICAgICAgICAgaGFyZGNvZGVfbWludXNf TF9DWFg9eWVzICMgTm90IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJCQkJCSAgICAgICAgICMgYnV0 IGFzIHRoZSBkZWZhdWx0CisrCQkJCQkgICAgICAgICAjIGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5 LgorKyAgICAgICAgICAgIDs7CisrICAgICAgICBlc2FjCisrCisrICAgICAgICBjYXNlICRjY19i YXNlbmFtZSBpbgorKyAgICAgICAgICBDQyopCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVy IEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIGxkX3NobGlic19DWFg9bm8KKysJICAgIDs7Cisr ICAgICAgICAgIGFDQyopCisrCSAgICBjYXNlICRob3N0X2NwdSBpbgorKwkgICAgICBocHBhKjY0 KikKKysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25h bWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgOzsKKysJICAgICAgaWE2NCopCisrCSAg ICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9 K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICAgIDs7CisrCSAgICAg ICopCisrCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29u YW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAg ICAgICAgOzsKKysJICAgIGVzYWMKKysJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBw cm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJICAgICMgd2hhdCAiaGlkZGVuIiBs aWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkgICAgIyBs aW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgICAjCisrCSAgICAjIFRoZXJlIGRvZXNuJ3Qg YXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCisrCSAgICAj IGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3Ry aXAgdGhlbQorKwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBp bmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKwkgICAgIyBkZXBlbmRlbmNpZXMuCisrCSAgICBvdXRw dXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVz dC4kb2JqZXh0IDI+JjEpIHwgJEdSRVAgIlwtTCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxp c3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4k b2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZnVuY19lY2hvX2FsbCAi JGxpc3QiJworKwkgICAgOzsKKysgICAgICAgICAgKikKKysJICAgIGlmIHRlc3QgIiRHWFgiID0g eWVzOyB0aGVuCisrCSAgICAgIGlmIHRlc3QgJHdpdGhfZ251X2xkID0gbm87IHRoZW4KKysJICAg ICAgICBjYXNlICRob3N0X2NwdSBpbgorKwkgICAgICAgICAgaHBwYSo2NCopCisrCSAgICAgICAg ICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfSto ICR7d2x9JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKysJICAgICAgICAgICAgOzsKKysJICAg ICAgICAgIGlhNjQqKQorKwkgICAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJl ZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBh dGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgICAgIDs7CisrCSAgICAgICAgICAqKQor KwkgICAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQ SUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAk bGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncycKKysJICAgICAgICAgICAgOzsKKysJICAgICAgICBlc2FjCisrCSAgICAg IGZpCisrCSAgICBlbHNlCisrCSAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJh cnkgc3VwcG9ydAorKwkgICAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICBmaQorKwkgICAgOzsK KysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrCisrICAgICAgaW50ZXJpeFszLTldKikKKysJ aGFyZGNvZGVfZGlyZWN0X0NYWD1ubworKwloYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwor KwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJ ZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tRScKKysJIyBIYWNrOiBPbiBJbnRl cml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElDIGJlY2F1c2Ugb2YgYSBicm9rZW4gZ2NjLgor KwkjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNl ICgweDEwMDAwMDAwIGJ5CisrCSMgZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZs aWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkKKysJIyBjb25zdW1pbmcgYW5kIGZyYWdt ZW50aW5nIHByb2Nlc3MuICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAorKwkjIDI1 NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAw MCBhdCBsaW5rCisrCSMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxv d3MgbW9yZSBzYnJrKDIpIHNwYWNlLgorKwlhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAk cGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFt ZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIx NDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nc2Vk ICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+ JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIv JHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5 NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKKysJOzsKKysgICAgICBpcml4 NSogfCBpcml4NiopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBD QyopCisrCSAgICAjIFNHSSBDKysKKysJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVk IC1hbGwgLW11bHRpZ290ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJz dHJpbmciICYmIGZ1bmNfZWNob19hbGwgIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0 ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKworKwkg ICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVk IHVzaW5nCisrCSAgICAjICJDQyAtYXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBJUklYIEMrKyBjb21w aWxlci4gIFRoaXMgaXMKKysJICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50aWF0 ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAorKwkgICAgIyBpbiB0aGUgYXJjaGl2ZS4KKysJICAg IG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWFyIC1XUiwtdSAtbyAkb2xkbGliICRvbGRvYmpz JworKwkgICAgOzsKKysgICAgICAgICAgKikKKysJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0 aGVuCisrCSAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwkgICAgICAg IGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2Fs bCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lz dHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJICAgICAg ZWxzZQorKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIg JiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgLW8g JGxpYicKKysJICAgICAgZmkKKysJICAgIGZpCisrCSAgICBsaW5rX2FsbF9kZXBsaWJzX0NYWD15 ZXMKKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgICAgaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvcl9DWFg9OgorKyAgICAgICAgaW5oZXJpdF9ycGF0aF9DWFg9eWVzCisr ICAgICAgICA7OworKworKyAgICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMq LWdudSkKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIEtDQyopCisr CSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCisrCisr CSAgICAjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1 dCBmaWxlCisrCSAgICAjIGVuZHMgd2l0aCAiLnNvIiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28g cmVuYW1lIHRoZSBsaWJyYXJ5CisrCSAgICAjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJz aW9uKSBhZnRlciBsaW5raW5nLgorKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0ndGVtcGV4dD1gZWNo byAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChbXigpMC05QS1aYS16e31dXCkvXFxcXFwx L2cnXCcnYDsgdGVtcGxpYj1gZWNobyAkbGliIHwgJFNFRCAtZSAicy9cJHt0ZW1wZXh0fVwuLiov LnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0ZW1wbGliOyBtdiBc JHRlbXBsaWIgJGxpYicKKysJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSd0ZW1wZXh0PWBl Y2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFteKCkwLTlBLVphLXp7fV1cKS9cXFxc XDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4u Ki8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWIgJHt3 bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHM7IG12IFwkdGVtcGxpYiAkbGli JworKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRw dXQgdGhhdCBsaXN0cworKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZp bGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGli cmFyeS4KKysJICAgICMKKysJICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkg dG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KKysJICAgICMgZXhwbGljaXRseSBsaW5raW5n IHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisrCSAgICAjIGZy b20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJy YXJ5CisrCSAgICAjIGRlcGVuZGVuY2llcy4KKysJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21k PSd0ZW1wbGlzdD1gJENDICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVz dCRzaGFyZWRfZXh0IDI+JjEgfCAkR1JFUCAibGQiYDsgcm0gLWYgbGliY29uZnRlc3Qkc2hhcmVk X2V4dDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0 LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAk eiI7O2VzYWM7IGRvbmU7IGZ1bmNfZWNob19hbGwgIiRsaXN0IicKKysKKysJICAgIGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGlyJworKwkgICAgZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKworKwkgICAg IyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVz aW5nCisrCSAgICAjICJDQyAtQnN0YXRpYyIsIHdoZXJlICJDQyIgaXMgdGhlIEtBSSBDKysgY29t cGlsZXIuCisrCSAgICBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1Cc3RhdGljIC1vICRvbGRs aWIgJG9sZG9ianMnCisrCSAgICA7OworKwkgIGljcGMqIHwgZWNwYyogKQorKwkgICAgIyBJbnRl bCBDKysKKysJICAgIHdpdGhfZ251X2xkPXllcworKwkgICAgIyB2ZXJzaW9uIDguMCBhbmQgYWJv dmUgb2YgaWNwYyBjaG9rZSBvbiBtdWx0aXBseSBkZWZpbmVkIHN5bWJvbHMKKysJICAgICMgaWYg d2UgYWRkICRwcmVkZXBfb2JqZWN0cyBhbmQgJHBvc3RkZXBfb2JqZWN0cywgaG93ZXZlciA3LjEg YW5kCisrCSAgICAjIGVhcmxpZXIgZG8gbm90IGFkZCB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzLgor KwkgICAgY2FzZSBgJENDIC1WIDI+JjFgIGluCisrCSAgICAgICoiVmVyc2lvbiA3LiIqKQorKwkg ICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwkJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAt c2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3lt Ym9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwkJOzsKKysJICAgICAgKikg ICMgVmVyc2lvbiA4LjAgb3IgbmV3ZXIKKysJICAgICAgICB0bXBfaWR5bj0KKysJICAgICAgICBj YXNlICRob3N0X2NwdSBpbgorKwkJICBpYTY0KikgdG1wX2lkeW49JyAtaV9keW5hbWljJzs7Cisr CQllc2FjCisrCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQnIiR0bXBfaWR5 biInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNv bmFtZSAtbyAkbGliJworKwkJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkJyIk dG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMg LW8gJGxpYicKKysJCTs7CisrCSAgICBlc2FjCisrCSAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19D WFg9bm8KKysJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwk bGliZGlyJworKwkgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9y dC1keW5hbWljJworKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3dsfS0td2hv bGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICAgIDs7 CisrICAgICAgICAgIHBnQ0MqIHwgcGdjcHAqKQorKyAgICAgICAgICAgICMgUG9ydGxhbmQgR3Jv dXAgQysrIGNvbXBpbGVyCisrCSAgICBjYXNlIGAkQ0MgLVZgIGluCisrCSAgICAqcGdDQ1wgWzEt NV0uKiB8ICpwZ2NwcFwgWzEtNV0uKikKKysJICAgICAgcHJlbGlua19jbWRzX0NYWD0ndHBsZGly PVRlbXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBsZGlyfgorKwkJJENDIC0tcHJlbGlua19vYmpl Y3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkb2JqcyAkbGlib2JqcyAkY29tcGlsZV9k ZXBsaWJzfgorKwkJY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kIGBmaW5kICR0cGxk aXIgLW5hbWUgXCoubyB8IHNvcnQgfCAkTkwyU1BgIicKKysJICAgICAgb2xkX2FyY2hpdmVfY21k c19DWFg9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+CisrCQlybSAtcmYgJHRwbGRpcn4KKysJCSRDQyAt LXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJG9sZG9ianMkb2xk X2RlcGxpYnN+CisrCQkkQVIgJEFSX0ZMQUdTICRvbGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicyBg ZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCBzb3J0IHwgJE5MMlNQYH4KKysJCSRSQU5MSUIgJG9s ZGxpYicKKysJICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KKysJ CXJtIC1yZiAkdHBsZGlyfgorKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlv bl9kaXIgJHRwbGRpciAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJGNvbnZlbmll bmNlICRwb3N0ZGVwX29iamVjdHN+CisrCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8IHNvcnQg fCAkTkwyU1BgICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk e3dsfSRzb25hbWUgLW8gJGxpYicKKysJICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J3Rw bGRpcj1UZW1wbGF0ZS5kaXJ+CisrCQlybSAtcmYgJHRwbGRpcn4KKysJCSRDQyAtLXByZWxpbmtf b2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRjb252ZW5pZW5jZSAkcG9zdGRlcF9vYmplY3RzfgorKwkJJENDIC1zaGFy ZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyBgZmluZCAkdHBs ZGlyIC1uYW1lIFwqLm8gfCBzb3J0IHwgJE5MMlNQYCAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZp bGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysJICAgICAgOzsKKysJICAgICopICMg VmVyc2lvbiA2IGFuZCBhYm92ZSB1c2Ugd2VhayBzeW1ib2xzCisrCSAgICAgIGFyY2hpdmVfY21k c19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9 JHNvbmFtZSAtbyAkbGliJworKwkgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1z aGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9 LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysJICAg ICAgOzsKKysJICAgIGVzYWMKKysKKysJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hY PScke3dsfS0tcnBhdGggJHt3bH0kbGliZGlyJworKwkgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWNfQ1hYPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2Vc IlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252 ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwi YCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysgICAgICAgICAgICA7OworKwkgIGN4eCopCisr CSAgICAjIENvbXBhcSBDKysKKysJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwkgICAgYXJjaGl2ZV9l eHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNv bmFtZSAgLW8gJGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9s cycKKysKKysJICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrCSAgICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX0NYWD0nLXJwYXRoICRsaWJkaXInCisrCSAgICBoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yX0NYWD06CisrCisrCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJv ZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAjIHdoYXQgImhpZGRlbiIgbGli cmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICMgbGlu a2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgIworKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFw cGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKwkgICAgIyBl eHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlw IHRoZW0KKysJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5j bHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJICAgICMgZGVwZW5kZW5jaWVzLgorKwkgICAgb3V0cHV0 X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0 ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJsZCJgOyB0ZW1wbGlzdD1gZnVuY19lY2hvX2FsbCAi JHRlbXBsaXN0IiB8ICRTRUQgInMvXCheLipsZC4qXClcKCAuKmxkIC4qJFwpL1wxLyJgOyBsaXN0 PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkg bGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsg ZG9uZTsgZnVuY19lY2hvX2FsbCAiWCRsaXN0IiB8ICRYc2VkJworKwkgICAgOzsKKysJICB4bCog fCBtcGl4bCogfCBiZ3hsKikKKysJICAgICMgSUJNIFhMIDguMCBvbiBQUEMsIHdpdGggR05VIGxk CisrCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0k bGliZGlyJworKwkgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9y dC1keW5hbWljJworKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1xbWtzaHJvYmogJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRs aWInCisrCSAgICBpZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0 aGVuCisrCSAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdlY2hvICJ7IGdsb2JhbDoiID4g JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorKwkJY2F0ICRleHBvcnRfc3ltYm9scyB8IHNl ZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorKwkJ ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCQkk Q0MgLXFta3Nocm9iaiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8k bGlibmFtZS52ZXIgLW8gJGxpYicKKysJICAgIGZpCisrCSAgICA7OworKwkgICopCisrCSAgICBj YXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysJICAgICpTdW5cIEMqKQorKwkgICAgICAj IFN1biBDKysgNS45CisrCSAgICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nIC16ZGVmcycKKysJ ICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgk c29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NY WD0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgkc29uYW1lIC1vICRsaWIgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMnCisrCSAg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctUiRsaWJkaXInCisrCSAgICAgIHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZl bmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252 XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBm dW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2 ZScKKysJICAgICAgY29tcGlsZXJfbmVlZHNfb2JqZWN0X0NYWD15ZXMKKysKKysJICAgICAgIyBO b3Qgc3VyZSB3aGV0aGVyIHNvbWV0aGluZyBiYXNlZCBvbgorKwkgICAgICAjICRDQyAkQ0ZMQUdT IC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8gbGliY29uZnRlc3Qkc2hhcmVkX2V4dCAyPiYxCisrCSAg ICAgICMgd291bGQgYmUgYmV0dGVyLgorKwkgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0n ZnVuY19lY2hvX2FsbCcKKysKKysJICAgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmpl Y3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAgICMgIkNDIC14YXIiLCB3aGVy ZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcworKwkgICAgICAjIG5lY2Vz c2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKKysJ ICAgICAgIyBpbiB0aGUgYXJjaGl2ZS4KKysJICAgICAgb2xkX2FyY2hpdmVfY21kc19DWFg9JyRD QyAteGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCisrCSAgICAgIDs7CisrCSAgICBlc2FjCisrCSAg ICA7OworKwllc2FjCisrCTs7CisrCisrICAgICAgbHlueG9zKikKKysgICAgICAgICMgRklYTUU6 IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwlsZF9zaGxpYnNfQ1hYPW5vCisr CTs7CisrCisrICAgICAgbTg4ayopCisrICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMr KyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICAgIGxkX3NobGlic19DWFg9bm8KKysJOzsKKysKKysg ICAgICBtdnMqKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgY3h4 KikKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkg ICAgbGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysJICAqKQorKwkgICAgIyBGSVhNRTogaW5z ZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisr CSAgICA7OworKwllc2FjCisrCTs7CisrCisrICAgICAgbmV0YnNkKikKKysgICAgICAgIGlmIGVj aG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisr CSAgYXJjaGl2ZV9jbWRzX0NYWD0nJExEIC1Cc2hhcmVhYmxlICAtbyAkbGliICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRsaW5rZXJfZmxhZ3MnCisr CSAgd2xhcmM9CisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9Jy1SJGxpYmRpcicK KysJICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcworKwkgIGhhcmRjb2RlX3NobGlicGF0aF92YXJf Q1hYPW5vCisrCWZpCisrCSMgV29ya2Fyb3VuZCBzb21lIGJyb2tlbiBwcmUtMS41IHRvb2xjaGFp bnMKKysJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29u ZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgY29uZnRlc3QuJG9iamV4dCB8ICRTRUQgLWUgInM6 LWxnY2MgLWxjIC1sZ2NjOjoiJworKwk7OworKworKyAgICAgICpudG8qIHwgKnFueCopCisrICAg ICAgICBsZF9zaGxpYnNfQ1hYPXllcworKwk7OworKworKyAgICAgIG9wZW5ic2QyKikKKysgICAg ICAgICMgQysrIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGZhaXJseSBicm9rZW4KKysJbGRfc2hsaWJz X0NYWD1ubworKwk7OworKworKyAgICAgIG9wZW5ic2QqKQorKwlpZiB0ZXN0IC1mIC91c3IvbGli ZXhlYy9sZC5zbzsgdGhlbgorKwkgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVzCisrCSAgaGFyZGNv ZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KKysJICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hY PXllcworKwkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MgLW8gJGxpYicKKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBh dGgsJGxpYmRpcicKKysJICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBn cmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgt cG93ZXJwYyI7IHRoZW4KKysJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJl ZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9z eW1ib2xzIC1vICRsaWInCisrCSAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3ds fS1FJworKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPSIkd2xhcmMiJy0td2hvbGUt YXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJworKwkgIGZp CisrCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZnVuY19lY2hvX2FsbAorKwllbHNlCisrCSAg bGRfc2hsaWJzX0NYWD1ubworKwlmaQorKwk7OworKworKyAgICAgIG9zZjMqIHwgb3NmNCogfCBv c2Y1KikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIEtDQyopCisr CSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCisrCisr CSAgICAjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1 dCBmaWxlCisrCSAgICAjIGVuZHMgd2l0aCAiLnNvIiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28g cmVuYW1lIHRoZSBsaWJyYXJ5CisrCSAgICAjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJz aW9uKSBhZnRlciBsaW5raW5nLgorKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0ndGVtcGV4dD1gZWNo byAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChbXigpMC05QS1aYS16e31dXCkvXFxcXFwx L2cnXCcnYDsgdGVtcGxpYj1gZWNobyAiJGxpYiIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4u Ki8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12 IFwkdGVtcGxpYiAkbGliJworKworKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9 JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrCSAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NY WD06CisrCisrCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0 IGJlIGNyZWF0ZWQgdXNpbmcKKysJICAgICMgdGhlIEtBSSBDKysgY29tcGlsZXIuCisrCSAgICBj YXNlICRob3N0IGluCisrCSAgICAgIG9zZjMqKSBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1C c3RhdGljIC1vICRvbGRsaWIgJG9sZG9ianMnIDs7CisrCSAgICAgICopIG9sZF9hcmNoaXZlX2Nt ZHNfQ1hYPSckQ0MgLW8gJG9sZGxpYiAkb2xkb2JqcycgOzsKKysJICAgIGVzYWMKKysJICAgIDs7 CisrICAgICAgICAgIFJDQyopCisrCSAgICAjIFJhdGlvbmFsIEMrKyAyLjQuMQorKwkgICAgIyBG SVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNf Q1hYPW5vCisrCSAgICA7OworKyAgICAgICAgICBjeHgqKQorKwkgICAgY2FzZSAkaG9zdCBpbgor KwkgICAgICBvc2YzKikKKysJICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JyAke3ds fS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJworKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9 JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1z ZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9 L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfQ1hYPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCQk7OworKwkgICAgICAqKQorKwkg ICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicK KysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJp bmciICYmIGZ1bmNfZWNob19hbGwgIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9y ZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkgICAgICAg IGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdmb3IgaSBpbiBgY2F0ICRleHBvcnRfc3ltYm9sc2A7 IGRvIHByaW50ZiAiJXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIgPj4gJGxpYi5leHA7 IGRvbmV+CisrCSAgICAgICAgICBlY2hvICItaGlkZGVuIj4+ICRsaWIuZXhwfgorKwkgICAgICAg ICAgJENDIC1zaGFyZWQkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25h bWUgJHNvbmFtZSAke3dsfS1pbnB1dCAke3dsfSRsaWIuZXhwICBgdGVzdCAtbiAiJHZlcnN0cmlu ZyIgJiYgJEVDSE8gIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAk e291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGlifgorKwkgICAgICAgICAgJFJNICRs aWIuZXhwJworKwkgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctcnBhdGgg JGxpYmRpcicKKysJCTs7CisrCSAgICBlc2FjCisrCisrCSAgICBoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yX0NYWD06CisrCisrCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVj ZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFy aWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICMgbGlua2lu ZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgIworKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVh ciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKwkgICAgIyBleHBs aWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRo ZW0KKysJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVk ZWQgaW4gdGhlIGxpYnJhcnkKKysJICAgICMgZGVwZW5kZW5jaWVzLgorKwkgICAgb3V0cHV0X3Zl cmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0 LiRvYmpleHQgMj4mMSB8ICRHUkVQICJsZCIgfCAkR1JFUCAtdiAibGQ6ImA7IHRlbXBsaXN0PWBm dW5jX2VjaG9fYWxsICIkdGVtcGxpc3QiIHwgJFNFRCAicy9cKF4uKmxkLipcKVwoIC4qbGQuKiRc KS9cMS8iYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0 ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlz dCAkeiI7O2VzYWM7IGRvbmU7IGZ1bmNfZWNob19hbGwgIiRsaXN0IicKKysJICAgIDs7CisrCSAg KikKKysJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBu bzsgdGhlbgorKwkgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JyAke3dsfS1leHBlY3Rf dW5yZXNvbHZlZCAke3dsfVwqJworKwkgICAgICBjYXNlICRob3N0IGluCisrCSAgICAgICAgb3Nm MyopCisrCSAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIg JHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25h bWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJz aW9uICR7d2x9JHZlcnN0cmluZyJgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0 X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCQkgIDs7CisrCSAgICAgICAgKikKKysJ ICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93 X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25hbWUgJHt3bH0k c29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRf dmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291 dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkJICA7OworKwkgICAgICBlc2Fj CisrCisrCSAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCAk e3dsfSRsaWJkaXInCisrCSAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKKysK KysJICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRw dXQgdGhhdCBsaXN0cworKwkgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3Qg ZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICAgIyBsaW5raW5nIGEgc2hhcmVk IGxpYnJhcnkuCisrCSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAk Q0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQIC12ICJeQ29uZmlndXJlZCB3 aXRoOiIgfCAkR1JFUCAiXC1MIicKKysKKysJICAgIGVsc2UKKysJICAgICAgIyBGSVhNRTogaW5z ZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICAgIGxkX3NobGlic19DWFg9bm8K KysJICAgIGZpCisrCSAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgOzsKKysKKysgICAg ICBwc29zKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAorKyAgICAgICAgbGRfc2hsaWJzX0NYWD1ubworKyAgICAgICAgOzsKKysKKysgICAgICBz dW5vczQqKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgQ0MqKQor KwkgICAgIyBTdW4gQysrIDQueAorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGli cmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAgICAg ICBsY2MqKQorKwkgICAgIyBMdWNpZAorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAg ICAgICAqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0 CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAgICAgZXNhYworKyAgICAg ICAgOzsKKysKKysgICAgICBzb2xhcmlzKikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGlu CisrICAgICAgICAgIENDKiB8IHN1bkNDKikKKysJICAgICMgU3VuIEMrKyA0LjIsIDUueCBhbmQg Q2VudGVybGluZSBDKysKKysgICAgICAgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9eWVz CisrCSAgICBub191bmRlZmluZWRfZmxhZ19DWFg9JyAtemRlZnMnCisrCSAgICBhcmNoaXZlX2Nt ZHNfQ1hYPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAgLWgkc29uYW1lIC1vICRsaWIg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzJworKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2VjaG8gInsgZ2xvYmFs OiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7 LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJICAgICAg JENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHt3bH0tTSAke3dsfSRsaWIuZXhwIC1oJHNv bmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCisrCisrCSAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX0NYWD0nLVIkbGliZGlyJworKwkgICAgaGFyZGNvZGVfc2hsaWJwYXRo X3Zhcl9DWFg9bm8KKysJICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysJICAgICAgc29sYXJpczIuWzAt NV0gfCBzb2xhcmlzMi5bMC01XS4qKSA7OworKwkgICAgICAqKQorKwkJIyBUaGUgY29tcGlsZXIg ZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKKysJCSMgYnV0 IHVuZGVyc3RhbmRzIGAteiBsaW5rZXJfZmxhZycuCisrCSAgICAgICAgIyBTdXBwb3J0ZWQgc2lu Y2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKKysJCXdob2xlX2FyY2hpdmVfZmxhZ19zcGVj X0NYWD0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKKysJICAg ICAgICA7OworKwkgICAgZXNhYworKwkgICAgbGlua19hbGxfZGVwbGlic19DWFg9eWVzCisrCisr CSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZnVuY19lY2hvX2FsbCcKKysKKysJICAgICMg QXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2lu ZworKwkgICAgIyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMgdGhlIFN1biBDKysgY29tcGlsZXIu ICBUaGlzIGlzCisrCSAgICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRl bXBsYXRlcyBhcmUgaW5jbHVkZWQKKysJICAgICMgaW4gdGhlIGFyY2hpdmUuCisrCSAgICBvbGRf YXJjaGl2ZV9jbWRzX0NYWD0nJENDIC14YXIgLW8gJG9sZGxpYiAkb2xkb2JqcycKKysJICAgIDs7 CisrICAgICAgICAgIGdjeCopCisrCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkg ICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNv bmFtZSAtbyAkbGliJworKworKwkgICAgIyBUaGUgQysrIGNvbXBpbGVyIG11c3QgYmUgdXNlZCB0 byBjcmVhdGUgdGhlIGFyY2hpdmUuCisrCSAgICBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDICRM REZMQUdTIC1hcmNoaXZlIC1vICRvbGRsaWIgJG9sZG9ianMnCisrCSAgICA7OworKyAgICAgICAg ICAqKQorKwkgICAgIyBHTlUgQysrIGNvbXBpbGVyIHdpdGggU29sYXJpcyBsaW5rZXIKKysJICAg IGlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgor KwkgICAgICBub191bmRlZmluZWRfZmxhZ19DWFg9JyAke3dsfS16ICR7d2x9ZGVmcycKKysJICAg ICAgaWYgJENDIC0tdmVyc2lvbiB8ICRHUkVQIC12ICdeMlwuNycgPiAvZGV2L251bGw7IHRoZW4K KysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJExERkxB R1MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJworKwkgICAgICAgIGFyY2hp dmVfZXhwc3ltX2NtZHNfQ1hYPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBv cnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxv Y2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCQkgICRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke3ds fS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKKysKKysJICAg ICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0 aGF0IGxpc3RzCisrCSAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZp bGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAgICAgIyBsaW5raW5nIGEgc2hhcmVk IGxpYnJhcnkuCisrCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVk ICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgLXYgIl5Db25maWd1cmVk IHdpdGg6IiB8ICRHUkVQICJcLUwiJworKwkgICAgICBlbHNlCisrCSAgICAgICAgIyBnKysgMi43 IGFwcGVhcnMgdG8gcmVxdWlyZSBgLUcnIE5PVCBgLXNoYXJlZCcgb24gdGhpcworKwkgICAgICAg ICMgcGxhdGZvcm0uCisrCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HIC1ub3N0ZGxp YiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCisrCSAgICAg ICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5j YXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJCSAgJENDIC1HIC1ub3N0ZGxpYiAk e3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs aWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKKysKKysJ ICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1 dCB0aGF0IGxpc3RzCisrCSAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0 IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAgICAgIyBsaW5raW5nIGEgc2hh cmVkIGxpYnJhcnkuCisrCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtRyAk Q0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQIC12ICJeQ29uZmlndXJlZCB3 aXRoOiIgfCAkR1JFUCAiXC1MIicKKysJICAgICAgZmkKKysKKysJICAgICAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LVIgJHdsJGxpYmRpcicKKysJICAgICAgY2FzZSAkaG9z dF9vcyBpbgorKwkJc29sYXJpczIuWzAtNV0gfCBzb2xhcmlzMi5bMC01XS4qKSA7OworKwkJKikK KysJCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3dsfS16ICR7d2x9YWxsZXh0cmFj dCRjb252ZW5pZW5jZSAke3dsfS16ICR7d2x9ZGVmYXVsdGV4dHJhY3QnCisrCQkgIDs7CisrCSAg ICAgIGVzYWMKKysJICAgIGZpCisrCSAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgOzsK KysKKysgICAgc3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcuWzAx XS5bMTBdKiB8IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4wLlswMjRdKikKKysgICAgICBub191bmRl ZmluZWRfZmxhZ19DWFg9JyR7d2x9LXosdGV4dCcKKysgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9s Y19DWFg9bm8KKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubworKyAgICAgIHJ1 bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgor KyAgICAgICAgQ0MqKQorKwkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtRyAke3dsfS1oLCRzb25h bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgYXJjaGl2 ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAk e3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn CisrCSAgOzsKKysJKikKKysJICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAke3dsfS1o LCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAg YXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9y dF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKKysJICA7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICAgIHN5 c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiopCisrCSMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXog ZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90CisrCSMgbGluayB3aXRo IC1sYywgYW5kIHRoYXQgd291bGQgY2F1c2UgYW55IHN5bWJvbHMgdXNlZCBmcm9tIGxpYmMgdG8K KysJIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMganVzdCBhYm91dCBubyBsaWJy YXJ5IHdvdWxkCisrCSMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1c2luZyBH TlUgbGQgd2UgdXNlIC16IHRleHQKKysJIyB0aG91Z2gsIHdoaWNoIGRvZXMgY2F0Y2ggc29tZSBi YWQgc3ltYm9scyBidXQgaXNuJ3QgYXMgaGVhdnktaGFuZGVkCisrCSMgYXMgLXogZGVmcy4KKysJ bm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScke3dsfS16LHRleHQnCisrCWFsbG93X3VuZGVmaW5lZF9m bGFnX0NYWD0nJHt3bH0teixub2RlZnMnCisrCWFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubwor KwloYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubworKwloYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX0NYWD0nJHt3bH0tUiwkbGliZGlyJworKwloYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NY WD0nOicKKysJbGlua19hbGxfZGVwbGlic19DWFg9eWVzCisrCWV4cG9ydF9keW5hbWljX2ZsYWdf c3BlY19DWFg9JyR7d2x9LUJleHBvcnQnCisrCXJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysK KysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgQ0MqKQorKwkgICAgYXJjaGl2ZV9j bWRzX0NYWD0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKKysJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLUcg JHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgb2xkX2FyY2hpdmVfY21kc19D WFg9JyRDQyAtVHByZWxpbmtfb2JqZWN0cyAkb2xkb2Jqc34KKysJICAgICAgJyIkb2xkX2FyY2hp dmVfY21kc19DWFgiCisrCSAgICByZWxvYWRfY21kc19DWFg9JyRDQyAtVHByZWxpbmtfb2JqZWN0 cyAkcmVsb2FkX29ianN+CisrCSAgICAgICciJHJlbG9hZF9jbWRzX0NYWCIKKysJICAgIDs7Cisr CSAgKikKKysJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICAgIGFyY2hp dmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3lt Ym9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCisrCSAgICA7OworKwllc2FjCisrICAgICAgOzsKKysKKysgICAgICB0YW5kZW0qKQor KyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgTkNDKikKKysJICAgICMg Tm9uU3RvcC1VWCBOQ0MgMy4yMAorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGli cmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAgICAg ICAqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Cisr CSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAg OzsKKysKKysgICAgICB2eHdvcmtzKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIg QysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgbGRfc2hsaWJzX0NYWD1ubworKyAgICAgICAg OzsKKysKKysgICAgICAqKQorKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGli cmFyeSBzdXBwb3J0CisrICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCisrICAgICAgICA7OworKyAg ICBlc2FjCisrCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog cmVzdWx0OiAkbGRfc2hsaWJzX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsZF9zaGxpYnNfQ1hYIiA+ JjY7IH0KKysgICAgdGVzdCAiJGxkX3NobGlic19DWFgiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJl ZD1ubworKworKyAgICBHQ0NfQ1hYPSIkR1hYIgorKyAgICBMRF9DWFg9IiRMRCIKKysKKysgICAg IyMgQ0FWRUFUIEVNUFRPUjoKKysgICAgIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRo aW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKysgICAgIyMgdGhlIHJ1bm5p bmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4 YWN0bHkKKysgICAgIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCisrICAgICMgRGVwZW5kZW5jaWVz IHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdCBiZWluZyBsaW5rZWQ6CisrcHJl ZGVwX29iamVjdHNfQ1hYPQorK3Bvc3RkZXBfb2JqZWN0c19DWFg9CisrcHJlZGVwc19DWFg9Cisr cG9zdGRlcHNfQ1hYPQorK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg9CisrCisrY2F0ID4g Y29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKytjbGFzcyBGb28KKyt7CisrcHVibGljOgorKyAg Rm9vICh2b2lkKSB7IGEgPSAwOyB9CisrcHJpdmF0ZToKKysgIGludCBhOworK307CisrX0xUX0VP RgorKworK2lmIHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBcIiRhY19jb21waWxlXCIiOyB9ID4mNQorKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKKysg IGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB0aGVuCisr ICAjIFBhcnNlIHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2FyeQor KyAgIyBvYmplY3RzLCBsaWJyYXJpZXMgYW5kIGxpYnJhcnkgZmxhZ3MuCisrCisrICAjIFNlbnRp bmVsIHVzZWQgdG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIG9yIG5vdCB3ZSBhcmUgYmVmb3JlCisr ICAjIHRoZSBjb25mdGVzdCBvYmplY3QgZmlsZS4KKysgIHByZV90ZXN0X29iamVjdF9kZXBzX2Rv bmU9bm8KKysKKysgIGZvciBwIGluIGBldmFsICIkb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQiYDsg ZG8KKysgICAgY2FzZSAkcCBpbgorKworKyAgICAtTCogfCAtUiogfCAtbCopCisrICAgICAgICMg U29tZSBjb21waWxlcnMgcGxhY2Ugc3BhY2UgYmV0d2VlbiAiLXtMLFJ9IiBhbmQgdGhlIHBhdGgu CisrICAgICAgICMgUmVtb3ZlIHRoZSBzcGFjZS4KKysgICAgICAgaWYgdGVzdCAkcCA9ICItTCIg fHwKKysgICAgICAgICAgdGVzdCAkcCA9ICItUiI7IHRoZW4KKysJIHByZXY9JHAKKysJIGNvbnRp bnVlCisrICAgICAgIGVsc2UKKysJIHByZXY9CisrICAgICAgIGZpCisrCisrICAgICAgIGlmIHRl c3QgIiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lIiA9IG5vOyB0aGVuCisrCSBjYXNlICRwIGlu CisrCSAtTCogfCAtUiopCisrCSAgICMgSW50ZXJuYWwgY29tcGlsZXIgbGlicmFyeSBwYXRocyBz aG91bGQgY29tZSBhZnRlciB0aG9zZQorKwkgICAjIHByb3ZpZGVkIHRoZSB1c2VyLiAgVGhlIHBv c3RkZXBzIGFscmVhZHkgY29tZSBhZnRlciB0aGUKKysJICAgIyB1c2VyIHN1cHBsaWVkIGxpYnMg c28gdGhlcmUgaXMgbm8gbmVlZCB0byBwcm9jZXNzIHRoZW0uCisrCSAgIGlmIHRlc3QgLXogIiRj b21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYIjsgdGhlbgorKwkgICAgIGNvbXBpbGVyX2xpYl9z ZWFyY2hfcGF0aF9DWFg9IiR7cHJldn0ke3B9IgorKwkgICBlbHNlCisrCSAgICAgY29tcGlsZXJf bGliX3NlYXJjaF9wYXRoX0NYWD0iJHtjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYfSAke3By ZXZ9JHtwfSIKKysJICAgZmkKKysJICAgOzsKKysJICMgVGhlICItbCIgY2FzZSB3b3VsZCBuZXZl ciBjb21lIGJlZm9yZSB0aGUgb2JqZWN0IGJlaW5nCisrCSAjIGxpbmtlZCwgc28gZG9uJ3QgYm90 aGVyIGhhbmRsaW5nIHRoaXMgY2FzZS4KKysJIGVzYWMKKysgICAgICAgZWxzZQorKwkgaWYgdGVz dCAteiAiJHBvc3RkZXBzX0NYWCI7IHRoZW4KKysJICAgcG9zdGRlcHNfQ1hYPSIke3ByZXZ9JHtw fSIKKysJIGVsc2UKKysJICAgcG9zdGRlcHNfQ1hYPSIke3Bvc3RkZXBzX0NYWH0gJHtwcmV2fSR7 cH0iCisrCSBmaQorKyAgICAgICBmaQorKyAgICAgICA7OworKworKyAgICAqLiRvYmpleHQpCisr ICAgICAgICMgVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHRlc3Qgb2JqZWN0IGZpbGUgb25seSBzaG93 cyB1cAorKyAgICAgICAjIG9uY2UgaW4gdGhlIGNvbXBpbGVyIG91dHB1dC4KKysgICAgICAgaWYg dGVzdCAiJHAiID0gImNvbmZ0ZXN0LiRvYmpleHQiOyB0aGVuCisrCSBwcmVfdGVzdF9vYmplY3Rf ZGVwc19kb25lPXllcworKwkgY29udGludWUKKysgICAgICAgZmkKKysKKysgICAgICAgaWYgdGVz dCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRoZW4KKysJIGlmIHRlc3QgLXog IiRwcmVkZXBfb2JqZWN0c19DWFgiOyB0aGVuCisrCSAgIHByZWRlcF9vYmplY3RzX0NYWD0iJHAi CisrCSBlbHNlCisrCSAgIHByZWRlcF9vYmplY3RzX0NYWD0iJHByZWRlcF9vYmplY3RzX0NYWCAk cCIKKysJIGZpCisrICAgICAgIGVsc2UKKysJIGlmIHRlc3QgLXogIiRwb3N0ZGVwX29iamVjdHNf Q1hYIjsgdGhlbgorKwkgICBwb3N0ZGVwX29iamVjdHNfQ1hYPSIkcCIKKysJIGVsc2UKKysJICAg cG9zdGRlcF9vYmplY3RzX0NYWD0iJHBvc3RkZXBfb2JqZWN0c19DWFggJHAiCisrCSBmaQorKyAg ICAgICBmaQorKyAgICAgICA7OworKworKyAgICAqKSA7OyAjIElnbm9yZSB0aGUgcmVzdC4KKysK KysgICAgZXNhYworKyAgZG9uZQorKworKyAgIyBDbGVhbiB1cC4KKysgIHJtIC1mIGEub3V0IGEu ZXhlCisrZWxzZQorKyAgZWNobyAibGlidG9vbC5tNDogZXJyb3I6IHByb2JsZW0gY29tcGlsaW5n IENYWCB0ZXN0IHByb2dyYW0iCisrZmkKKysKKyskUk0gLWYgY29uZmVzdC4kb2JqZXh0CisrCisr IyBQT1JUTUU6IG92ZXJyaWRlIGFib3ZlIHRlc3Qgb24gc3lzdGVtcyB3aGVyZSBpdCBpcyBicm9r ZW4KKytjYXNlICRob3N0X29zIGluCisraW50ZXJpeFszLTldKikKKysgICMgSW50ZXJpeCAzLjUg aW5zdGFsbHMgY29tcGxldGVseSBob3NlZCAubGEgZmlsZXMgZm9yIEMrKywgc28gcmF0aGVyIHRo YW4KKysgICMgaGFjayBhbGwgYXJvdW5kIGl0LCBsZXQncyBqdXN0IHRydXN0ICJnKysiIHRvIERU UlQuCisrICBwcmVkZXBfb2JqZWN0c19DWFg9CisrICBwb3N0ZGVwX29iamVjdHNfQ1hYPQorKyAg cG9zdGRlcHNfQ1hYPQorKyAgOzsKKysKKytsaW51eCopCisrICBjYXNlIGAkQ0MgLVYgMj4mMSB8 IHNlZCA1cWAgaW4KKysgICpTdW5cIEMqKQorKyAgICAjIFN1biBDKysgNS45CisrCisrICAgICMg VGhlIG1vcmUgc3RhbmRhcmRzLWNvbmZvcm1pbmcgc3RscG9ydDQgbGlicmFyeSBpcworKyAgICAj IGluY29tcGF0aWJsZSB3aXRoIHRoZSBDc3RkIGxpYnJhcnkuIEF2b2lkIHNwZWNpZnlpbmcKKysg ICAgIyBpdCBpZiBpdCdzIGluIENYWEZMQUdTLiBJZ25vcmUgbGliQ3J1biBhcworKyAgICAjIC1s aWJyYXJ5PXN0bHBvcnQ0IGRlcGVuZHMgb24gaXQuCisrICAgIGNhc2UgIiAkQ1hYICRDWFhGTEFH UyAiIGluCisrICAgICoiIC1saWJyYXJ5PXN0bHBvcnQ0ICIqKQorKyAgICAgIHNvbGFyaXNfdXNl X3N0bHBvcnQ0PXllcworKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgaWYgdGVzdCAiJHNv bGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KKysgICAgICBwb3N0ZGVwc19DWFg9Jy1s aWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKysg IDs7CisrCisrc29sYXJpcyopCisrICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgQ0MqIHwgc3Vu Q0MqKQorKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJh cnkgaXMKKysgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBz cGVjaWZ5aW5nCisrICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4g YXMKKysgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0LgorKyAgICBjYXNlICIg JENYWCAkQ1hYRkxBR1MgIiBpbgorKyAgICAqIiAtbGlicmFyeT1zdGxwb3J0NCAiKikKKysgICAg ICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKKysgICAgICA7OworKyAgICBlc2FjCisrCisrICAg ICMgQWRkaW5nIHRoaXMgcmVxdWlyZXMgYSBrbm93bi1nb29kIHNldHVwIG9mIHNoYXJlZCBsaWJy YXJpZXMgZm9yCisrICAgICMgU3VuIGNvbXBpbGVyIHZlcnNpb25zIGJlZm9yZSA1LjYsIGVsc2Ug UElDIG9iamVjdHMgZnJvbSBhbiBvbGQKKysgICAgIyBhcmNoaXZlIHdpbGwgYmUgbGlua2VkIGlu dG8gdGhlIG91dHB1dCwgbGVhZGluZyB0byBzdWJ0bGUgYnVncy4KKysgICAgaWYgdGVzdCAiJHNv bGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KKysgICAgICBwb3N0ZGVwc19DWFg9Jy1s aWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKysg IDs7CisrZXNhYworKworKworK2Nhc2UgIiAkcG9zdGRlcHNfQ1hYICIgaW4KKysqIiAtbGMgIiop IGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubyA7OworK2VzYWMKKysgY29tcGlsZXJfbGliX3Nl YXJjaF9kaXJzX0NYWD0KKytpZiB0ZXN0IC1uICIke2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9D WFh9IjsgdGhlbgorKyBjb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYPWBlY2hvICIgJHtjb21w aWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYfSIgfCAke1NFRH0gLWUgJ3MhIC1MISAhZycgLWUgJ3Mh XiAhISdgCisrZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysgICAgbHRf cHJvZ19jb21waWxlcl93bF9DWFg9CisrbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPQorK2x0X3By b2dfY29tcGlsZXJfc3RhdGljX0NYWD0KKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElD IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9k dWNlIFBJQy4uLiAiID4mNjsgfQorKworKyAgIyBDKysgc3BlY2lmaWMgY2FzZXMgZm9yIHBpYywg c3RhdGljLCB3bCwgZXRjLgorKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgbHRf cHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCisrICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj X0NYWD0nLXN0YXRpYycKKysKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXgqKQorKyAg ICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0g aWE2NDsgdGhlbgorKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgorKwlsdF9w cm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJworKyAgICAgIGZpCisrICAgICAgOzsK KysKKysgICAgYW1pZ2FvcyopCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBwb3dl cnBjKQorKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBv cnQKKysgICAgICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDJworKyAgICAg ICAgOzsKKysgICAgICBtNjhrKQorKyAgICAgICAgICAgICMgRklYTUU6IHdlIG5lZWQgYXQgbGVh c3QgNjgwMjAgY29kZSB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLCBidXQKKysgICAgICAgICAg ICAjIGFkZGluZyB0aGUgYC1tNjgwMjAnIGZsYWcgdG8gR0NDIHByZXZlbnRzIGJ1aWxkaW5nIGFu eXRoaW5nIGJldHRlciwKKysgICAgICAgICAgICAjIGxpa2UgYC1tNjgwNDAnLgorKyAgICAgICAg ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLW02ODAyMCAtcmVzaWRlbnQzMiAtbWFsd2F5 cy1yZXN0b3JlLWE0JworKyAgICAgICAgOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysg ICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8 IG9zZjUqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgorKyAg ICAgIDs7CisrICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBvczIqIHwgcHczMiogfCBjZWdjYyopCisr ICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hl dGhlciBpdCBpcyBiZWluZworKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAo YW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCisrICAgICAgIyBBbHRob3Vn aCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1z dHlsZQorKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCisrICAgICAg bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctRERMTF9FWFBPUlQnCisrICAgICAgOzsKKysgICAg ZGFyd2luKiB8IHJoYXBzb2R5KikKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlz IHBsYXRmb3JtCisrICAgICAgIyBDb21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJ QiBmaWxlcworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZuby1jb21tb24nCisr ICAgICAgOzsKKysgICAgKmRqZ3BwKikKKysgICAgICAjIERKR1BQIGRvZXMgbm90IHN1cHBvcnQg c2hhcmVkIGxpYnJhcmllcyBhdCBhbGwKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9 CisrICAgICAgOzsKKysgICAgaGFpa3UqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZv ciBIYWlrdS4KKysgICAgICAjIFRoZSAiLXN0YXRpYyIgZmxhZyBleGlzdHMsIGJ1dCBpcyBicm9r ZW4uCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPQorKyAgICAgIDs7CisrICAg IGludGVyaXhbMy05XSopCisrICAgICAgIyBJbnRlcml4IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0 aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KKysgICAgICAjIEluc3RlYWQsIHdlIHJlbG9jYXRl IHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KKysgICAgICA7OworKyAgICBzeXN2NCpNUCop CisrICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgorKwlsdF9wcm9nX2NvbXBpbGVyX3Bp Y19DWFg9LUtjb25mb3JtX3BpYworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgaHB1eCopCisr ICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIDY0LWJpdCBQQSBIUC1VWCwgYnV0IG5vdCBm b3IgMzItYml0CisrICAgICAgIyBQQSBIUC1VWC4gIE9uIElBNjQgSFAtVVgsIFBJQyBpcyB0aGUg ZGVmYXVsdCBidXQgdGhlIHBpYyBmbGFnCisrICAgICAgIyBzZXRzIHRoZSBkZWZhdWx0IFRMUyBt b2RlbCBhbmQgYWZmZWN0cyBpbmxpbmluZy4KKysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAg ICAgIGhwcGEqNjQqKQorKwk7OworKyAgICAgICopCisrCWx0X3Byb2dfY29tcGlsZXJfcGljX0NY WD0nLWZQSUMnCisrCTs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrICAgICpxbngqIHwgKm50 byopCisrICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJl ZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKysgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCisrICAg ICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZlBJQyAtc2hhcmVkJworKyAgICAgIDs7Cisr ICAgICopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZlBJQycKKysgICAgICA7 OworKyAgICBlc2FjCisrICBlbHNlCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXhb NC05XSopCisrCSMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KKysJaWYgdGVzdCAiJGhvc3RfY3B1IiA9 IGlhNjQ7IHRoZW4KKysJICAjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgorKwkg IGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCisrCWVsc2UKKysJICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxzLmV4cCcKKysJ ZmkKKysJOzsKKysgICAgICBjaG9ydXMqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwljeGNo NjgqKQorKwkgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCSAgIyBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljLCBDWFgpPSItLW5vX2F1dG9faW5zdGFudGlhdGlvbiAtdSBf X21haW4gLXUgX19wcmVtYWluIC11IF9hYm9ydCAtciAkQ09PTF9ESVIvbGliL2xpYk9yYi5hICRN Vk1FX0RJUi9saWIvQ0MvbGliQy5hICRNVk1FX0RJUi9saWIvY2xhc3NpeC9saWJjeC5zLmEiCisr CSAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGRndXgqKQorKwljYXNlICRjY19iYXNlbmFtZSBp bgorKwkgIGVjKysqKQorKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJQycKKysJ ICAgIDs7CisrCSAgZ2hjeCopCisrCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkg ICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctcGljJworKwkgICAgOzsKKysJICAqKQorKwkg ICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysJIyBG cmVlQlNEIHVzZXMgR05VIEMrKworKwk7OworKyAgICAgIGhwdXg5KiB8IGhwdXgxMCogfCBocHV4 MTEqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgIGx0X3Byb2dfY29t cGlsZXJfd2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSck e3dsfS1hICR7d2x9YXJjaGl2ZScKKysJICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsg dGhlbgorKwkgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9JytaJworKwkgICAgZmkKKysJ ICAgIDs7CisrCSAgYUNDKikKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJwor KwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPScke3dsfS1hICR7d2x9YXJjaGl2ZScK KysJICAgIGNhc2UgJGhvc3RfY3B1IGluCisrCSAgICBocHBhKjY0KnxpYTY0KikKKysJICAgICAg IyArWiB0aGUgZGVmYXVsdAorKwkgICAgICA7OworKwkgICAgKikKKysJICAgICAgbHRfcHJvZ19j b21waWxlcl9waWNfQ1hYPScrWicKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICAgIDs7Cisr CSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBpbnRlcml4KikKKysJIyBUaGlz IGlzIGM4OSwgd2hpY2ggaXMgTVMgVmlzdWFsIEMrKyAobm8gc2hhcmVkIGxpYnMpCisrCSMgQW55 b25lIHdhbnRzIHRvIGRvIGEgcG9ydD8KKysJOzsKKysgICAgICBpcml4NSogfCBpcml4NiogfCBu b25zdG9wdXgqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgIGx0X3By b2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNf Q1hYPSctbm9uX3NoYXJlZCcKKysJICAgICMgQ0MgcGljIGZsYWcgLUtQSUMgaXMgdGhlIGRlZmF1 bHQuCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgbGlu dXgqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQorKwljYXNlICRjY19iYXNlbmFt ZSBpbgorKwkgIEtDQyopCisrCSAgICAjIEtBSSBDKysgQ29tcGlsZXIKKysJICAgIGx0X3Byb2df Y29tcGlsZXJfd2xfQ1hYPSctLWJhY2tlbmQgLVdsLCcKKysJICAgIGx0X3Byb2dfY29tcGlsZXJf cGljX0NYWD0nLWZQSUMnCisrCSAgICA7OworKwkgIGVjcGMqICkKKysJICAgICMgb2xkIEludGVs IEMrKyBmb3IgeDg2XzY0IHdoaWNoIHN0aWxsIHN1cHBvcnRlZCAtS1BJQy4KKysJICAgIGx0X3By b2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hY PSctS1BJQycKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLXN0YXRpYycKKysJ ICAgIDs7CisrCSAgaWNwYyogKQorKwkgICAgIyBJbnRlbCBDKyssIHVzZWQgdG8gYmUgaW5jb21w YXRpYmxlIHdpdGggR0NDLgorKwkgICAgIyBJQ0MgMTAgZG9lc24ndCBhY2NlcHQgLUtQSUMgYW55 IG1vcmUuCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJICAgIGx0X3By b2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Y19DWFg9Jy1zdGF0aWMnCisrCSAgICA7OworKwkgIHBnQ0MqIHwgcGdjcHAqKQorKwkgICAgIyBQ b3J0bGFuZCBHcm91cCBDKysgY29tcGlsZXIKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hY PSctV2wsJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZnBpYycKKysJICAgIGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCisrCSAgICA7OworKwkgIGN4eCop CisrCSAgICAjIENvbXBhcSBDKysKKysJICAgICMgTWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBpcyBl bXB0eS4gIEl0IGFwcGVhcnMgdGhhdCBhbGwgQWxwaGEKKysJICAgICMgTGludXggYW5kIENvbXBh cSBUcnU2NCBVbml4IG9iamVjdHMgYXJlIFBJQy4KKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGlj X0NYWD0KKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLW5vbl9zaGFyZWQnCisr CSAgICA7OworKwkgIHhsYyogfCB4bEMqIHwgYmd4bFtjQ10qIHwgbXBpeGxbY0NdKikKKysJICAg ICMgSUJNIFhMIDguMCwgOS4wIG9uIFBQQyBhbmQgQmx1ZUdlbmUKKysJICAgIGx0X3Byb2dfY29t cGlsZXJfd2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctcXBp YycKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLXFzdGF0aWNsaW5rJworKwkg ICAgOzsKKysJICAqKQorKwkgICAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCisrCSAg ICAqU3VuXCBDKikKKysJICAgICAgIyBTdW4gQysrIDUuOQorKwkgICAgICBsdF9wcm9nX2NvbXBp bGVyX3BpY19DWFg9Jy1LUElDJworKwkgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9 Jy1Cc3RhdGljJworKwkgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVFvcHRpb24gbGQg JworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAg IGx5bnhvcyopCisrCTs7CisrICAgICAgbTg4ayopCisrCTs7CisrICAgICAgbXZzKikKKysJY2Fz ZSAkY2NfYmFzZW5hbWUgaW4KKysJICBjeHgqKQorKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNf Q1hYPSctVyBjLGV4cG9ydGFsbCcKKysJICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMK KysJOzsKKysgICAgICBuZXRic2QqKQorKwk7OworKyAgICAgICpxbngqIHwgKm50byopCisrICAg ICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlv biB0b28sIG90aGVyd2lzZQorKyAgICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgorKyAgICAgICAg bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZlBJQyAtc2hhcmVkJworKyAgICAgICAgOzsKKysg ICAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAg S0NDKikKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctLWJhY2tlbmQgLVdsLCcKKysJ ICAgIDs7CisrCSAgUkNDKikKKysJICAgICMgUmF0aW9uYWwgQysrIDIuNC4xCisrCSAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMnCisrCSAgICA7OworKwkgIGN4eCopCisrCSAgICAj IERpZ2l0YWwvQ29tcGFxIEMrKworKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwn CisrCSAgICAjIE1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgaXMgZW1wdHkuICBJdCBhcHBlYXJzIHRo YXQgYWxsIEFscGhhCisrCSAgICAjIExpbnV4IGFuZCBDb21wYXEgVHJ1NjQgVW5peCBvYmplY3Rz IGFyZSBQSUMuCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9CisrCSAgICBsdF9wcm9n X2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1ub25fc2hhcmVkJworKwkgICAgOzsKKysJICAqKQorKwkg ICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIHBzb3MqKQorKwk7OworKyAgICAgIHNvbGFyaXMq KQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKiB8IHN1bkNDKikKKysJICAgICMgU3Vu IEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGluZSBDKysKKysJICAgIGx0X3Byb2dfY29tcGlsZXJf cGljX0NYWD0nLUtQSUMnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3Rh dGljJworKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1Rb3B0aW9uIGxkICcKKysJICAg IDs7CisrCSAgZ2N4KikKKysJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCSAgICBs dF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1QSUMnCisrCSAgICA7OworKwkgICopCisrCSAgICA7 OworKwllc2FjCisrCTs7CisrICAgICAgc3Vub3M0KikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4K KysJICBDQyopCisrCSAgICAjIFN1biBDKysgNC54CisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp Y19DWFg9Jy1waWMnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGlj JworKwkgICAgOzsKKysJICBsY2MqKQorKwkgICAgIyBMdWNpZAorKwkgICAgbHRfcHJvZ19jb21w aWxlcl9waWNfQ1hYPSctcGljJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNhYwor Kwk7OworKyAgICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBP cGVuVU5JWCopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgQ0MqKQorKwkgICAgbHRfcHJv Z19jb21waWxlcl93bF9DWFg9Jy1XbCwnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9 Jy1LUElDJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKKysJ ICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICB0YW5kZW0qKQorKwljYXNlICRjY19iYXNlbmFt ZSBpbgorKwkgIE5DQyopCisrCSAgICAjIE5vblN0b3AtVVggTkNDIDMuMjAKKysJICAgIGx0X3By b2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCisrCSAgICA7OworKwkgICopCisrCSAgICA7Owor Kwllc2FjCisrCTs7CisrICAgICAgdnh3b3JrcyopCisrCTs7CisrICAgICAgKikKKysJbHRfcHJv Z19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkX0NYWD1ubworKwk7OworKyAgICBlc2FjCisrICBm aQorKworK2Nhc2UgJGhvc3Rfb3MgaW4KKysgICMgRm9yIHBsYXRmb3JtcyB3aGljaCBkbyBub3Qg c3VwcG9ydCBQSUMsIC1EUElDIGlzIG1lYW5pbmdsZXNzOgorKyAgKmRqZ3BwKikKKysgICAgbHRf cHJvZ19jb21waWxlcl9waWNfQ1hYPQorKyAgICA7OworKyAgKikKKysgICAgbHRfcHJvZ19jb21w aWxlcl9waWNfQ1hYPSIkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIC1EUElDIgorKyAgICA7Owor K2VzYWMKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog JGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsdF9wcm9nX2NvbXBp bGVyX3BpY19DWFgiID4mNjsgfQorKworKworKworKyMKKysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0 aGUgUElDIGZsYWcgYWN0dWFsbHkgd29ya3MuCisrIworK2lmIHRlc3QgLW4gIiRsdF9wcm9nX2Nv bXBpbGVyX3BpY19DWFgiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxl cl9waWNfQ1hYIHdvcmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIg UElDIGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCB3b3Jrcy4uLiAiID4mNjsgfQorK2lm IHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYK3NldH0iID0gc2V0OyB0 aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJv Z19jb21waWxlcl9waWNfd29ya3NfQ1hYPW5vCisrICAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNf b2JqZXh0CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVz dC4kYWNfZXh0CisrICAgbHRfY29tcGlsZXJfZmxhZz0iJGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WCAtRFBJQyIKKysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxh c3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmlu ZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2Nv bXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAg ICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQg d29yayBjb3JyZWN0bHkuCisrICAgIyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFy aWFibGUgdG8gYXZvaWQgY29uZnVzaW5nIHNlZC4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNf Y29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGls ZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVy X2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2 YWwgZWNobyAiXCJcJGFzX21lOiRMSU5FTk86ICRsdF9jb21waWxlXCIiID4mNSkKKysgICAoZXZh bCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgIGFjX3N0YXR1cz0kPworKyAgIGNh dCBjb25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19vdXRm aWxlIjsgdGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3Jl IHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlmIHRoZXJl IGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCisrICAgICAkRUNITyAi JF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkU0VEICcvXiQvZCcgPmNvbmZ0ZXN0LmV4cAor KyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCisr ICAgICBpZiB0ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0 ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGlj X3dvcmtzX0NYWD15ZXMKKysgICAgIGZpCisrICAgZmkKKysgICAkUk0gY29uZnRlc3QqCisrCisr ZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0 X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9w cm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFgiID4mNjsgfQorKworK2lmIHRlc3QgeCIkbHRfY3Zf cHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYIiA9IHh5ZXM7IHRoZW4KKysgICAgY2FzZSAkbHRf cHJvZ19jb21waWxlcl9waWNfQ1hYIGluCisrICAgICAiIiB8ICIgIiopIDs7CisrICAgICAqKSBs dF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9IiAkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIiA7Owor KyAgICAgZXNhYworK2Vsc2UKKysgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPQorKyAgICAg bHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkX0NYWD1ubworK2ZpCisrCisrZmkKKysK KysKKysKKysjCisrIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5 IHdvcmtzLgorKyMKKyt3bD0kbHRfcHJvZ19jb21waWxlcl93bF9DWFggZXZhbCBsdF90bXBfc3Rh dGljX2ZsYWc9XCIkbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYXCIKKyt7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMg ZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxhZyB3b3Jrcy4uLiAi ID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hY K3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYPW5vCisrICAgc2F2ZV9M REZMQUdTPSIkTERGTEFHUyIKKysgICBMREZMQUdTPSIkTERGTEFHUyAkbHRfdG1wX3N0YXRpY19m bGFnIgorKyAgIGVjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFj X2V4dAorKyAgIGlmIChldmFsICRhY19saW5rIDI+Y29uZnRlc3QuZXJyKSAmJiB0ZXN0IC1zIGNv bmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgorKyAgICAgIyBUaGUgbGlua2VyIGNhbiBvbmx5IHdhcm4g YW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBu byBpZiB0aGVyZSBhcmUgd2FybmluZ3MKKysgICAgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0 aGVuCisrICAgICAgICMgQXBwZW5kIGFueSBlcnJvcnMgdG8gdGhlIGNvbmZpZy5sb2cuCisrICAg ICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKyAgICAgICAkRUNITyAiJF9sdF9saW5rZXJfYm9p bGVycGxhdGUiIHwgJFNFRCAnL14kL2QnID4gY29uZnRlc3QuZXhwCisrICAgICAgICRTRUQgJy9e JC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgorKyAgICAgICBpZiBkaWZm IGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICAgIGx0 X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWD15ZXMKKysgICAgICAgZmkKKysgICAg IGVsc2UKKysgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYPXllcwor KyAgICAgZmkKKysgICBmaQorKyAgICRSTSAtciBjb25mdGVzdCoKKysgICBMREZMQUdTPSIkc2F2 ZV9MREZMQUdTIgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFgiID4mNQor KyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYIiA+JjY7IH0K KysKKytpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWCIgPSB4 eWVzOyB0aGVuCisrICAgIDoKKytlbHNlCisrICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NY WD0KKytmaQorKworKworKworKworKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19v YmpleHQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAt YyAtbyBmaWxlLiRhY19vYmpleHQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2df Y29tcGlsZXJfY19vX0NYWCtzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWD1ubworKyAg ICRSTSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAorKyAgIG1rZGlyIGNvbmZ0ZXN0CisrICAgY2Qg Y29uZnRlc3QKKysgICBta2RpciBvdXQKKysgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVz dF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICBsdF9jb21waWxlcl9mbGFnPSItbyBv dXQvY29uZnRlc3QyLiRhY19vYmpleHQiCisrICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIg KDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKKysgICAjICgyKSBiZWZvcmUg YSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgorKyAgICMg Tm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVz IGFuZCBiZWdpbnMKKysgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28g dGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgorKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRh Y19jb21waWxlIiB8ICRTRUQgXAorKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21w aWxlcl9mbGFnIDo7IHQnIFwKKysgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGls ZXJfZmxhZyY6OyB0JyBcCisrICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKKysgICAo ZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJGx0X2NvbXBpbGVcIiIgPiY1KQorKyAgIChl dmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQorKyAgIGFjX3N0YXR1cz0kPwor KyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQorKyAgIGVjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1z IG91dC9jb25mdGVzdDIuJGFjX29iamV4dAorKyAgIHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVy IGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisr ICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKKysgICAgICRFQ0hPICIkX2x0 X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+IG91dC9jb25mdGVzdC5leHAK KysgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRlc3QuZXJyID5vdXQvY29uZnRl c3QuZXIyCisrICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0LmVyMiB8fCBkaWZmIG91dC9j b25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgIGx0 X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWD15ZXMKKysgICAgIGZpCisrICAgZmkKKysgICBjaG1v ZCB1K3cgLiAyPiY1CisrICAgJFJNIGNvbmZ0ZXN0KgorKyAgICMgU0dJIEMrKyBjb21waWxlciB3 aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBmb3IKKysgICAjIHRlbXBsYXRlIGlu c3RhbnRpYXRpb24KKysgICB0ZXN0IC1kIG91dC9paV9maWxlcyAmJiAkUk0gb3V0L2lpX2ZpbGVz LyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCisrICAgJFJNIG91dC8qICYmIHJtZGlyIG91dAorKyAg IGNkIC4uCisrICAgJFJNIC1yIGNvbmZ0ZXN0CisrICAgJFJNIGNvbmZ0ZXN0KgorKworK2ZpCisr eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9w cm9nX2NvbXBpbGVyX2Nfb19DWFgiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxl cl9jX29fQ1hYIiA+JjY7IH0KKysKKysKKysKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmls ZS4kYWNfb2JqZXh0IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3Vw cG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9j dl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFg9 bm8KKysgICAkUk0gLXIgY29uZnRlc3QgMj4vZGV2L251bGwKKysgICBta2RpciBjb25mdGVzdAor KyAgIGNkIGNvbmZ0ZXN0CisrICAgbWtkaXIgb3V0CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21w aWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrCisrICAgbHRfY29tcGlsZXJfZmxh Zz0iLW8gb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0IgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24g ZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikg YmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4K KysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNr c2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhl biksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKysgICBsdF9jb21waWxlPWBl Y2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYk bHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0 X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidg CisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOiRMSU5FTk86ICRsdF9jb21waWxlXCIiID4mNSkK KysgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0 dXM9JD8KKysgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JjUKKysgICBlY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYg dGVzdCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKKysgICB0aGVuCisrICAgICAjIFRoZSBj b21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2du aXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICAkRUNI TyAiJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkU0VEICcvXiQvZCcgPiBvdXQvY29uZnRl c3QuZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0 L2NvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlm ZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAg ICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFg9eWVzCisrICAgICBmaQorKyAgIGZpCisr ICAgY2htb2QgdSt3IC4gMj4mNQorKyAgICRSTSBjb25mdGVzdCoKKysgICAjIFNHSSBDKysgY29t cGlsZXIgd2lsbCBjcmVhdGUgZGlyZWN0b3J5IG91dC9paV9maWxlcy8gZm9yCisrICAgIyB0ZW1w bGF0ZSBpbnN0YW50aWF0aW9uCisrICAgdGVzdCAtZCBvdXQvaWlfZmlsZXMgJiYgJFJNIG91dC9p aV9maWxlcy8qICYmIHJtZGlyIG91dC9paV9maWxlcworKyAgICRSTSBvdXQvKiAmJiBybWRpciBv dXQKKysgICBjZCAuLgorKyAgICRSTSAtciBjb25mdGVzdAorKyAgICRSTSBjb25mdGVzdCoKKysK KytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk bHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2df Y29tcGlsZXJfY19vX0NYWCIgPiY2OyB9CisrCisrCisrCisrCisraGFyZF9saW5rcz0ibm90dGVz dGVkIgorK2lmIHRlc3QgIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiID0gbm8gJiYgdGVz dCAiJG5lZWRfbG9ja3MiICE9IG5vOyB0aGVuCisrICAjIGRvIG5vdCBvdmVyd3JpdGUgdGhlIHZh bHVlIG9mIG5lZWRfbG9ja3MgcHJvdmlkZWQgYnkgdGhlIHVzZXIKKysgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBo YXJkIGxpbmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiB3ZSBjYW4gbG9jayB3aXRo IGhhcmQgbGlua3MuLi4gIiA+JjY7IH0KKysgIGhhcmRfbGlua3M9eWVzCisrICAkUk0gY29uZnRl c3QqCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5r cz1ubworKyAgdG91Y2ggY29uZnRlc3QuYQorKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+ JjUgfHwgaGFyZF9saW5rcz1ubworKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9u dWxsICYmIGhhcmRfbGlua3M9bm8KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogcmVzdWx0OiAkaGFyZF9saW5rcyIgPiY1CisrJGFzX2VjaG8gIiRoYXJkX2xpbmtz IiA+JjY7IH0KKysgIGlmIHRlc3QgIiRoYXJkX2xpbmtzIiA9IG5vOyB0aGVuCisrICAgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogXGAkQ0MnIGRvZXMg bm90IHN1cHBvcnQgXGAtYyAtbycsIHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2FmZSIgPiY1Cisr JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogXGAkQ0MnIGRvZXMgbm90IHN1cHBvcnQgXGAtYyAt bycsIHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2FmZSIgPiYyO30KKysgICAgbmVlZF9sb2Nrcz13 YXJuCisrICBmaQorK2Vsc2UKKysgIG5lZWRfbG9ja3M9bm8KKytmaQorKworKworKworKyAgICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIg dGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExE KSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrCisrICBleHBvcnRfc3lt Ym9sc19jbWRzX0NYWD0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9s X3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1i b2xzJworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4WzQtOV0qKQorKyAgICAjIElmIHdlJ3Jl IHVzaW5nIEdOVSBubSwgdGhlbiB3ZSBkb24ndCB3YW50IHRoZSAiLUMiIG9wdGlvbi4KKysgICAg IyAtQyBtZWFucyBkZW1hbmdsZSB0byBBSVggbm0sIGJ1dCBtZWFucyBkb24ndCBkZW1hbmdsZSB3 aXRoIEdOVSBubQorKyAgICAjIEFsc28sIEFJWCBubSB0cmVhdHMgd2VhayBkZWZpbmVkIHN5bWJv bHMgbGlrZSBvdGhlciBnbG9iYWwgZGVmaW5lZAorKyAgICAjIHN5bWJvbHMsIHdoZXJlYXMgR05V IG5tIG1hcmtzIHRoZW0gYXMgIlciLgorKyAgICBpZiAkTk0gLVYgMj4mMSB8ICRHUkVQICdHTlUn ID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAt QnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikg fHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpIHx8IChcJCAyID09ICJXIikpICYmIChz dWJzdHIoXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ ICRleHBvcnRfc3ltYm9scycKKysgICAgZWxzZQorKyAgICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNf Q1hYPSckTk0gLUJDcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwk IDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYmIChzdWJzdHIo XCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBv cnRfc3ltYm9scycKKysgICAgZmkKKysgICAgOzsKKysgIHB3MzIqKQorKyAgICBleHBvcnRfc3lt Ym9sc19jbWRzX0NYWD0iJGx0ZGxsX2NtZHMiCisrICA7OworKyAgY3lnd2luKiB8IG1pbmd3KiB8 IGNlZ2NjKikKKysgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAkbGlib2JqcyAkY29u dmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1JTXVsg XS9zLy4qWyBdXChbXiBdKlwpL1wxIERBVEEvOy9eLipbIF1fX25tX18vcy9eLipbIF1fX25tX19c KFteIF0qXClbIF1bXiBdKi9cMSBEQVRBLzsvXklbIF0vZDsvXltBSVRXXVsgXS9zLy4qIC8vJ1wn JyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKyAgOzsKKysgICopCisrICAgIGV4 cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2Jh bF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhw b3J0X3N5bWJvbHMnCisrICA7OworKyAgZXNhYworKyAgZXhjbHVkZV9leHBzeW1zX0NYWD0nX0dM T0JBTF9PRkZTRVRfVEFCTEVffF9HTE9CQUxfX0ZbSURdXy4qJworKworK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbGRfc2hsaWJzX0NYWCIgPiY1Cisr JGFzX2VjaG8gIiRsZF9zaGxpYnNfQ1hYIiA+JjY7IH0KKyt0ZXN0ICIkbGRfc2hsaWJzX0NYWCIg PSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisrCisrd2l0aF9nbnVfbGRfQ1hYPSR3aXRoX2du dV9sZAorKworKworKworKworKworKworKyMKKysjIERvIHdlIG5lZWQgdG8gZXhwbGljaXRseSBs aW5rIGxpYmM/CisrIworK2Nhc2UgIngkYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYIiBpbgorK3h8 eHllcykKKysgICMgQXNzdW1lIC1sYyBzaG91bGQgYmUgYWRkZWQKKysgIGFyY2hpdmVfY21kc19u ZWVkX2xjX0NYWD15ZXMKKysKKysgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgICBjYXNlICRhcmNoaXZlX2NtZHNfQ1hYIGluCisr ICAgIConficqKQorKyAgICAgICMgRklYTUU6IHdlIG1heSBoYXZlIHRvIGRlYWwgd2l0aCBtdWx0 aS1jb21tYW5kIHNlcXVlbmNlcy4KKysgICAgICA7OworKyAgICAnJENDICcqKQorKyAgICAgICMg VGVzdCB3aGV0aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5IGxpbmtzIHdpdGggLWxjIHNpbmNl IG9uIHNvbWUKKysgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBjb21lIGJlZm9yZSAtbGMu IElmIGdjYyBhbHJlYWR5IHBhc3NlcyAtbGMKKysgICAgICAjIHRvIGxkLCBkb24ndCBhZGQgLWxj IGJlZm9yZSAtbGdjYy4KKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGNoZWNraW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBp biIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxp Y2l0bHkgbGlua2VkIGluLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9hcmNoaXZlX2Nt ZHNfbmVlZF9sY19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICAkUk0gY29uZnRlc3QqCisrCWVjaG8gIiRsdF9zaW1wbGVfY29t cGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKworKwlpZiB7IHsgZXZhbCBlY2hv ICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTogXCIkYWNfY29tcGlsZVwiIjsgfSA+ JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQor KyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgorKwkgIHNvbmFt ZT1jb25mdGVzdAorKwkgIGxpYj1jb25mdGVzdAorKwkgIGxpYm9ianM9Y29uZnRlc3QuJGFjX29i amV4dAorKwkgIGRlcGxpYnM9CisrCSAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYCisrCSAg cGljX2ZsYWc9JGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWAorKwkgIGNvbXBpbGVyX2ZsYWdzPS12 CisrCSAgbGlua2VyX2ZsYWdzPS12CisrCSAgdmVyc3RyaW5nPQorKwkgIG91dHB1dF9vYmpkaXI9 LgorKwkgIGxpYm5hbWU9Y29uZnRlc3QKKysJICBsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFn PSRhbGxvd191bmRlZmluZWRfZmxhZ19DWFgKKysJICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9 CisrCSAgaWYgeyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306 IFwiJGFyY2hpdmVfY21kc19DWFggMlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYvbnVs bCAyXD5cJjFcIiI7IH0gPiY1CisrICAoZXZhbCAkYXJjaGl2ZV9jbWRzX0NYWCAyXD5cJjEgXHwg JEdSRVAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/ CisrICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKKysgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0KKysJICB0aGVuCisrCSAgICBsdF9j dl9hcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KKysJICBlbHNlCisrCSAgICBsdF9jdl9hcmNo aXZlX2NtZHNfbmVlZF9sY19DWFg9eWVzCisrCSAgZmkKKysJICBhbGxvd191bmRlZmluZWRfZmxh Z19DWFg9JGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKKysJZWxzZQorKwkgIGNhdCBjb25m dGVzdC5lcnIgMT4mNQorKwlmaQorKwkkUk0gY29uZnRlc3QqCisrCisrZmkKKyt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X2FyY2hpdmVfY21k c19uZWVkX2xjX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9s Y19DWFgiID4mNjsgfQorKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD0kbHRfY3ZfYXJj aGl2ZV9jbWRzX25lZWRfbGNfQ1hYCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysgIDs7 CisrZXNhYworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGlj cyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0 aWNzLi4uICIgPiY2OyB9CisrCisrbGlicmFyeV9uYW1lc19zcGVjPQorK2xpYm5hbWVfc3BlYz0n bGliJG5hbWUnCisrc29uYW1lX3NwZWM9Cisrc2hyZXh0X2NtZHM9Ii5zbyIKKytwb3N0aW5zdGFs bF9jbWRzPQorK3Bvc3R1bmluc3RhbGxfY21kcz0KKytmaW5pc2hfY21kcz0KKytmaW5pc2hfZXZh bD0KKytzaGxpYnBhdGhfdmFyPQorK3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD11bmtub3du CisrdmVyc2lvbl90eXBlPW5vbmUKKytkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCisr c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIiCisrbmVlZF9saWJfcHJl Zml4PXVua25vd24KKytoYXJkY29kZV9pbnRvX2xpYnM9bm8KKysKKysjIHdoZW4geW91IHNldCBu ZWVkX3ZlcnNpb24gdG8gbm8sIG1ha2Ugc3VyZSBpdCBkb2VzIG5vdCBjYXVzZSAtc2V0X3ZlcnNp b24KKysjIGZsYWdzIHRvIGJlIGxlZnQgd2l0aG91dCBhcmd1bWVudHMKKytuZWVkX3ZlcnNpb249 dW5rbm93bgorKworK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgzKikKKysgIHZlcnNpb25fdHlwZT1s aW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lLmEnCisrICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysK KysgICMgQUlYIDMgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28gd2UgYXBwZW5kIGEgbWFq b3IgdmVyc2lvbiB0byB0aGUgbmFtZS4KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICA7OworKworK2FpeFs0LTldKikKKysgIHZlcnNp b25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8K KysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0 OyB0aGVuCisrICAgICMgQUlYIDUgc3VwcG9ydHMgSUE2NAorKyAgICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysg ICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGVsc2UKKysgICAgIyBXaXRoIEdD QyB1cCB0byAyLjk1LngsIGNvbGxlY3QyIHdvdWxkIGNyZWF0ZSBhbiBpbXBvcnQgZmlsZQorKyAg ICAjIGZvciBkZXBlbmRlbmNlIGxpYnJhcmllcy4gIFRoZSBpbXBvcnQgZmlsZSB3b3VsZCBzdGFy dCB3aXRoCisrICAgICMgdGhlIGxpbmUgYCMhIC4nLiAgVGhpcyB3b3VsZCBjYXVzZSB0aGUgZ2Vu ZXJhdGVkIGxpYnJhcnkgdG8KKysgICAgIyBkZXBlbmQgb24gYC4nLCBhbHdheXMgYW4gaW52YWxp ZCBsaWJyYXJ5LiAgVGhpcyB3YXMgZml4ZWQgaW4KKysgICAgIyBkZXZlbG9wbWVudCBzbmFwc2hv dHMgb2YgR0NDIHByaW9yIHRvIDMuMC4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFp eDQgfCBhaXg0LlswMV0gfCBhaXg0LlswMV0uKikKKysgICAgICBpZiB7IGVjaG8gJyNpZiBfX0dO VUNfXyA+IDIgfHwgKF9fR05VQ19fID09IDIgJiYgX19HTlVDX01JTk9SX18gPj0gOTcpJworKwkg ICBlY2hvICcgeWVzICcKKysJICAgZWNobyAnI2VuZGlmJzsgfSB8ICR7Q0N9IC1FIC0gfCAkR1JF UCB5ZXMgPiAvZGV2L251bGw7IHRoZW4KKysJOgorKyAgICAgIGVsc2UKKysJY2FuX2J1aWxkX3No YXJlZD1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICAjIEFJWCAob24g UG93ZXIqKSBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyBjdXJyZW50bHkgd2UgY2FuIG5v dCBoYXJkY29kZSBjb3JyZWN0CisrICAgICMgc29uYW1lIGludG8gZXhlY3V0YWJsZS4gUHJvYmFi bHkgd2UgY2FuIGFkZCB2ZXJzaW9uaW5nIHN1cHBvcnQgdG8KKysgICAgIyBjb2xsZWN0Miwgc28g YWRkaXRpb25hbCBsaW5rcyBjYW4gYmUgdXNlZnVsIGluIGZ1dHVyZS4KKysgICAgaWYgdGVzdCAi JGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrICAgICAgIyBJZiB1c2luZyBy dW4gdGltZSBsaW5raW5nIChvbiBBSVggNC4yIG9yIGxhdGVyKSB1c2UgbGliPG5hbWU+LnNvCisr ICAgICAgIyBpbnN0ZWFkIG9mIGxpYjxuYW1lPi5hIHRvIGxldCBwZW9wbGUga25vdyB0aGF0IHRo ZXNlIGFyZSBub3QKKysgICAgICAjIHR5cGljYWwgQUlYIHNoYXJlZCBsaWJyYXJpZXMuCisrICAg ICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCisrICAgIGVsc2UKKysgICAgICAjIFdlIHByZXNlcnZlIC5hIGFzIGV4 dGVuc2lvbiBmb3Igc2hhcmVkIGxpYnJhcmllcyB0aHJvdWdoIEFJWDQuMgorKyAgICAgICMgYW5k IGxhdGVyIHdoZW4gd2UgYXJlIG5vdCBkb2luZyBydW4gdGltZSBsaW5raW5nLgorKyAgICAgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uYSAkbGlibmFtZS5hJworKyAg ICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In CisrICAgIGZpCisrICAgIHNobGlicGF0aF92YXI9TElCUEFUSAorKyAgZmkKKysgIDs7CisrCisr YW1pZ2FvcyopCisrICBjYXNlICRob3N0X2NwdSBpbgorKyAgcG93ZXJwYykKKysgICAgIyBTaW5j ZSBKdWx5IDIwMDcgQW1pZ2FPUzQgb2ZmaWNpYWxseSBzdXBwb3J0cyAuc28gbGlicmFyaWVzLgor KyAgICAjIFdoZW4gY29tcGlsaW5nIHRoZSBleGVjdXRhYmxlLCBhZGQgLXVzZS1keW5sZCAtTHNv YmpzOiB0byB0aGUgY29tcGlsZWxpbmUuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICA7OworKyAg bTY4aykKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5peGxpYnJhcnkgJGxpYm5h bWUuYScKKysgICAgIyBDcmVhdGUgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSBlbnRyaWVzIGluIC9z eXMvbGlicy4KKysgICAgZmluaXNoX2V2YWw9J2ZvciBsaWIgaW4gYGxzICRsaWJkaXIvKi5peGxp YnJhcnkgMj4vZGV2L251bGxgOyBkbyBsaWJuYW1lPWBmdW5jX2VjaG9fYWxsICIkbGliIiB8ICRT RUQgJ1wnJ3MlXi4qL1woW14vXSpcKVwuaXhsaWJyYXJ5JCVcMSUnXCcnYDsgdGVzdCAkUk0gL3N5 cy9saWJzLyR7bGlibmFtZX1faXhsaWJyYXJ5LmE7ICRzaG93ICJjZCAvc3lzL2xpYnMgJiYgJExO X1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIjsgY2QgL3N5cy9saWJzICYmICRMTl9TICRs aWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSB8fCBleGl0IDE7IGRvbmUnCisrICAgIDs7CisrICBl c2FjCisrICA7OworKworK2Jlb3MqKQorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtzaGFyZWRfZXh0fScKKysgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKKysgIHNo bGlicGF0aF92YXI9TElCUkFSWV9QQVRICisrICA7OworKworK2JzZGlbNDVdKikKKysgIHZlcnNp b25fdHlwZT1saW51eAorKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBm aW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hs aWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0i L3NobGliIC91c3IvbGliIC91c3IvWDExL2xpYiAvdXNyL2NvbnRyaWIvbGliIC9saWIgL3Vzci9s b2NhbC9saWIiCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGli IC91c3IvbG9jYWwvbGliIgorKyAgIyB0aGUgZGVmYXVsdCBsZC5zby5jb25mIGFsc28gY29udGFp bnMgL3Vzci9jb250cmliL2xpYiBhbmQKKysgICMgL3Vzci9YMTFSNi9saWIgKC91c3IvWDExIGlz IGEgbGluayB0byAvdXNyL1gxMVI2KSwgYnV0IGxldCB1cyBhbGxvdworKyAgIyBsaWJ0b29sIHRv IGhhcmQtY29kZSB0aGVzZSBpbnRvIHByb2dyYW1zCisrICA7OworKworK2N5Z3dpbiogfCBtaW5n dyogfCBwdzMyKiB8IGNlZ2NjKikKKysgIHZlcnNpb25fdHlwZT13aW5kb3dzCisrICBzaHJleHRf Y21kcz0iLmRsbCIKKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbmVlZF9saWJfcHJlZml4PW5vCisr CisrICBjYXNlICRHQ0MsJGhvc3Rfb3MgaW4KKysgIHllcyxjeWd3aW4qIHwgeWVzLG1pbmd3KiB8 IHllcyxwdzMyKiB8IHllcyxjZWdjYyopCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5h bWUuZGxsLmEnCisrICAgICMgRExMIGlzIGluc3RhbGxlZCB0byAkKGxpYmRpcikvLi4vYmluIGJ5 IHBvc3RpbnN0YWxsX2NtZHMKKysgICAgcG9zdGluc3RhbGxfY21kcz0nYmFzZV9maWxlPWBiYXNl bmFtZSBcJHtmaWxlfWB+CisrICAgICAgZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZGly LydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7IGVjaG8gXCRkbG5hbWUnXCcnYH4KKysgICAgICBkbGRp cj0kZGVzdGRpci9gZGlybmFtZSBcJGRscGF0aGB+CisrICAgICAgdGVzdCAtZCBcJGRsZGlyIHx8 IG1rZGlyIC1wIFwkZGxkaXJ+CisrICAgICAgJGluc3RhbGxfcHJvZyAkZGlyLyRkbG5hbWUgXCRk bGRpci8kZGxuYW1lfgorKyAgICAgIGNobW9kIGEreCBcJGRsZGlyLyRkbG5hbWV+CisrICAgICAg aWYgdGVzdCAtbiAnXCcnJHN0cmlwbWUnXCcnICYmIHRlc3QgLW4gJ1wnJyRzdHJpcGxpYidcJyc7 IHRoZW4KKysgICAgICAgIGV2YWwgJ1wnJyRzdHJpcGxpYiBcJGRsZGlyLyRkbG5hbWUnXCcnIHx8 IGV4aXQgXCQ/OworKyAgICAgIGZpJworKyAgICBwb3N0dW5pbnN0YWxsX2NtZHM9J2RsZGxsPWAk U0hFTEwgMj4mMSAtYyAnXCcnLiAkZmlsZTsgZWNobyBcJGRsbmFtZSdcJydgfgorKyAgICAgIGRs cGF0aD0kZGlyL1wkZGxkbGx+CisrICAgICAgICRSTSBcJGRscGF0aCcKKysgICAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXllcworKworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGN5 Z3dpbiopCisrICAgICAgIyBDeWd3aW4gRExMcyB1c2UgJ2N5ZycgcHJlZml4IHJhdGhlciB0aGFu ICdsaWInCisrICAgICAgc29uYW1lX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3Mv XmxpYi9jeWcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1 ZmZpeH0ke3NoYXJlZF9leHR9JworKworKyAgICAgIDs7CisrICAgIG1pbmd3KiB8IGNlZ2NjKikK KysgICAgICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlvbmFsICdsaWInIHByZWZpeAorKyAgICAg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5d Ly0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKysgICAgICA7OworKyAgICBwdzMyKikK KysgICAgICAjIHB3MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKKysg ICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxp Yi9wdy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4 fSR7c2hhcmVkX2V4dH0nCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICA7OworKworKyAgKikK KysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRT RUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWIn CisrICAgIDs7CisrICBlc2FjCisrICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJworKyAg IyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBl eGVjdXRhYmxlIGlzIGluCisrICBzaGxpYnBhdGhfdmFyPVBBVEgKKysgIDs7CisrCisrZGFyd2lu KiB8IHJoYXBzb2R5KikKKysgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgorKyAgdmVy c2lvbl90eXBlPWRhcndpbgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249 bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRz aGFyZWRfZXh0ICR7bGlibmFtZX0kc2hhcmVkX2V4dCcKKysgIHNvbmFtZV9zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQnCisrICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9eWVzCisrICBzaGxpYnBhdGhfdmFyPURZTERfTElCUkFSWV9QQVRICisrICBzaHJl eHRfY21kcz0nYHRlc3QgLiRtb2R1bGUgPSAueWVzICYmIGVjaG8gLnNvIHx8IGVjaG8gLmR5bGli YCcKKysKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvbGli IC91c3IvbGliJworKyAgOzsKKysKKytkZ3V4KikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAg bmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUkc2hhcmVkX2V4dCcKKysg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisr ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgOzsKKysKKytmcmVlYnNkMSopCisr ICBkeW5hbWljX2xpbmtlcj1ubworKyAgOzsKKysKKytmcmVlYnNkKiB8IGRyYWdvbmZseSopCisr ICAjIERyYWdvbkZseSBkb2VzIG5vdCBoYXZlIGFvdXQuICBXaGVuL2lmIHRoZXkgaW1wbGVtZW50 IGEgbmV3CisrICAjIHZlcnNpb25pbmcgbWVjaGFuaXNtLCBhZGp1c3QgdGhpcy4KKysgIGlmIHRl c3QgLXggL3Vzci9iaW4vb2JqZm9ybWF0OyB0aGVuCisrICAgIG9iamZvcm1hdD1gL3Vzci9iaW4v b2JqZm9ybWF0YAorKyAgZWxzZQorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGZyZWVic2Rb MTIzXSopIG9iamZvcm1hdD1hb3V0IDs7CisrICAgICopIG9iamZvcm1hdD1lbGYgOzsKKysgICAg ZXNhYworKyAgZmkKKysgIHZlcnNpb25fdHlwZT1mcmVlYnNkLSRvYmpmb3JtYXQKKysgIGNhc2Ug JHZlcnNpb25fdHlwZSBpbgorKyAgICBmcmVlYnNkLWVsZiopCisrICAgICAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAg ICAgbmVlZF92ZXJzaW9uPW5vCisrICAgICAgbmVlZF9saWJfcHJlZml4PW5vCisrICAgICAgOzsK KysgICAgZnJlZWJzZC0qKQorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4JworKyAgICAgIG5lZWRfdmVyc2lvbj15ZXMKKysgICAgICA7OworKyAgZXNhYworKyAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGZy ZWVic2QyKikKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgICA7Owor KyAgZnJlZWJzZDMuWzAxXSogfCBmcmVlYnNkZWxmMy5bMDFdKikKKysgICAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7 CisrICBmcmVlYnNkMy5bMi05XSogfCBmcmVlYnNkZWxmMy5bMi05XSogfCBcCisrICBmcmVlYnNk NC5bMC01XSB8IGZyZWVic2RlbGY0LlswLTVdIHwgZnJlZWJzZDQuMS4xIHwgZnJlZWJzZGVsZjQu MS4xKQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICAgaGFyZGNvZGVf aW50b19saWJzPXllcworKyAgICA7OworKyAgKikgIyBmcm9tIDQuNiBvbiwgYW5kIERyYWdvbkZs eQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICAgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKKysgICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrZ251KikKKysgIHZlcnNp b25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8K KysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0ke21ham9yfSAke2xp Ym5hbWV9JHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAor KyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKytoYWlrdSopCisrICB2ZXJzaW9u X3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisr ICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgcnVudGltZV9sb2FkZXIiCisrICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHttYWpvcn0gJHtsaWJuYW1lfSR7c2hhcmVk X2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD15ZXMKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvYm9vdC9o b21lL2NvbmZpZy9saWIgL2Jvb3QvY29tbW9uL2xpYiAvYm9vdC9zeXN0ZW0vbGliJworKyAgaGFy ZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKytocHV4OSogfCBocHV4MTAqIHwgaHB1eDEx KikKKysgICMgR2l2ZSBhIHNvbmFtZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBtYWpvciB2ZXJzaW9u IHNvIHRoYXQgZGxkLnNsIHJlZnVzZXMgdG8KKysgICMgbGluayBhZ2FpbnN0IG90aGVyIHZlcnNp b25zLgorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5l ZWRfdmVyc2lvbj1ubworKyAgY2FzZSAkaG9zdF9jcHUgaW4KKysgIGlhNjQqKQorKyAgICBzaHJl eHRfY21kcz0nLnNvJworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIGR5bmFtaWNf bGlua2VyPSIkaG9zdF9vcyBkbGQuc28iCisrICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52 dmFyIGlzIHNwZWNpZmllZC4KKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIGlmIHRlc3QgIlgk SFBVWF9JQTY0X01PREUiID0gWDMyOyB0aGVuCisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjPSIvdXNyL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGli IgorKyAgICBlbHNlCisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9o cHV4NjQgL3Vzci9sb2NhbC9saWIvaHB1eDY0IgorKyAgICBmaQorKyAgICBzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCisrICAgIDs7CisrICBocHBh KjY0KikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXll cworKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgorKyAgICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSCAjIEhvdyBzaG91bGQgd2UgaGFuZGxlIFNITElCX1BBVEgKKysg ICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMg c3BlY2lmaWVkLgorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjPSIvdXNyL2xpYi9wYTIwXzY0IC91c3IvY2NzL2xpYi9wYTIwXzY0IgorKyAgICBzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCisrICAgIDs7 CisrICAqKQorKyAgICBzaHJleHRfY21kcz0nLnNsJworKyAgICBkeW5hbWljX2xpbmtlcj0iJGhv c3Rfb3MgZGxkLnNsIgorKyAgICBzaGxpYnBhdGhfdmFyPVNITElCX1BBVEgKKysgICAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPW5vICMgK3MgaXMgcmVxdWlyZWQgdG8gZW5hYmxlIFNITElC X1BBVEgKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv ciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIDs7CisrICBlc2FjCisrICAjIEhQLVVY IHJ1bnMgKnJlYWxseSogc2xvd2x5IHVubGVzcyBzaGFyZWQgbGlicmFyaWVzIGFyZSBtb2RlIDU1 NSwgLi4uCisrICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA1NTUgJGxpYicKKysgICMgb3IgZmFp bHMgb3V0cmlnaHQsIHNvIG92ZXJyaWRlIGF0b21pY2FsbHk6CisrICBpbnN0YWxsX292ZXJyaWRl X21vZGU9NTU1CisrICA7OworKworK2ludGVyaXhbMy05XSopCisrICB2ZXJzaW9uX3R5cGU9bGlu dXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJl ZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvcicKKysgIGR5bmFtaWNfbGlua2VyPSdJbnRlcml4IDMueCBsZC5zby4xIChQRSwgbGlr ZSBFTEYpJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD1ubworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysK Kytpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAg ICBub25zdG9wdXgqKSB2ZXJzaW9uX3R5cGU9bm9uc3RvcHV4IDs7CisrICAgICopCisrCWlmIHRl c3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysJCXZlcnNpb25fdHlwZT1saW51 eAorKwllbHNlCisrCQl2ZXJzaW9uX3R5cGU9aXJpeAorKwlmaSA7OworKyAgZXNhYworKyAgbmVl ZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBjYXNlICRob3N0X29zIGluCisrICBp cml4NSogfCBub25zdG9wdXgqKQorKyAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9CisrICAgIDs7Cisr ICAqKQorKyAgICBjYXNlICRMRCBpbiAjIGxpYnRvb2wubTQgd2lsbCBhZGQgb25lIG9mIHRoZXNl IHN3aXRjaGVzIHRvIExECisrICAgICotMzJ8KiItMzIgInwqLW1lbGYzMmJzbWlwfCoiLW1lbGYz MmJzbWlwICIpCisrICAgICAgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz0zMi1iaXQ7Owor KyAgICAqLW4zMnwqIi1uMzIgInwqLW1lbGYzMmJtaXBuMzJ8KiItbWVsZjMyYm1pcG4zMiAiKQor KyAgICAgIGxpYnN1ZmY9MzIgc2hsaWJzdWZmPU4zMiBsaWJtYWdpYz1OMzI7OworKyAgICAqLTY0 fCoiLTY0ICJ8Ki1tZWxmNjRibWlwfCoiLW1lbGY2NGJtaXAgIikKKysgICAgICBsaWJzdWZmPTY0 IHNobGlic3VmZj02NCBsaWJtYWdpYz02NC1iaXQ7OworKyAgICAqKSBsaWJzdWZmPSBzaGxpYnN1 ZmY9IGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKKysgICAgZXNhYworKyAgICA7OworKyAgZXNhYwor KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZJHtzaGxpYnN1ZmZ9X1BBVEgKKysgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNy L2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vzci9sb2NhbC9saWIke2xpYnN1ZmZ9Igor KyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHts aWJzdWZmfSIKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisrIyBObyBzaGFy ZWQgbGliIHN1cHBvcnQgZm9yIExpbnV4IG9sZGxkLCBhb3V0LCBvciBjb2ZmLgorK2xpbnV4Km9s ZGxkKiB8IGxpbnV4KmFvdXQqIHwgbGludXgqY29mZiopCisrICBkeW5hbWljX2xpbmtlcj1ubwor KyAgOzsKKysKKysjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCisrbGludXgqIHwgaypic2QqLWdu dSB8IGtvcGVuc29sYXJpcyotZ251KQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xp Yl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgZmlu aXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW4gJGxpYmRpcicKKysgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9bm8KKysKKysgICMgU29tZSBiaW51dGlscyBsZCBhcmUgcGF0Y2hlZCB0byBzZXQgRFRfUlVO UEFUSAorKyAgaWYgdGVzdCAiJHtsdF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgrc2V0 fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBsdF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICAgc2F2ZV9MREZMQUdT PSRMREZMQUdTCisrICAgIHNhdmVfbGliZGlyPSRsaWJkaXIKKysgICAgZXZhbCAibGliZGlyPS9m b287IHdsPVwiJGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYXCI7IFwKKysJIExERkxBR1M9XCJcJExE RkxBR1MgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYXCIiCisrICAgIGNhdCBjb25mZGVm cy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICov CisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNF T0YKKytpZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKKysgIGlmICAoJE9C SkRVTVAgLXAgY29uZnRlc3QkYWNfZXhlZXh0KSAyPi9kZXYvbnVsbCB8IGdyZXAgIlJVTlBBVEgu KiRsaWJkaXIiID4vZGV2L251bGw7IHRoZW4gOgorKyAgbHRfY3Zfc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPXllcworK2ZpCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IFwKKysgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQK KysgICAgTERGTEFHUz0kc2F2ZV9MREZMQUdTCisrICAgIGxpYmRpcj0kc2F2ZV9saWJkaXIKKysK KytmaQorKworKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSRsdF9jdl9zaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGgKKysKKysgICMgVGhpcyBpbXBsaWVzIG5vIGZhc3RfaW5zdGFsbCwg d2hpY2ggaXMgdW5hY2NlcHRhYmxlLgorKyAgIyBTb21lIHJld29yayB3aWxsIGJlIG5lZWRlZCB0 byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxsCisrICAjIGJlZm9yZSB0aGlzIGNhbiBiZSBlbmFibGVk LgorKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKworKyAgIyBBZGQgQUJJLXNwZWNpZmljIGRp cmVjdG9yaWVzIHRvIHRoZSBzeXN0ZW0gbGlicmFyeSBwYXRoLgorKyAgc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWM9Ii9saWI2NCAvdXNyL2xpYjY0IC9saWIgL3Vzci9saWIiCisrCisrICAjIEFw cGVuZCBsZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBzZWFyY2ggcGF0aAorKyAgaWYgdGVzdCAt ZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KKysgICAgbHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRl IC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+L2Rldi9udWxsIiwgXCQyKSk7 IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcJDA7IHNraXAgPSAwOyB9JyA8IC9ldGMv bGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15bCSBdKmh3Y2FwWwkgXS9kO3MvWzosCV0v IC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAvIC9nO3MvIi8vZzsvXiQvZCcgfCB0ciAnXG4nICcg J2AKKysgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYyAkbHRfbGRfZXh0cmEiCisrCisrICBmaQorKworKyAgIyBXZSB1c2VkIHRvIHRlc3Qg Zm9yIC9saWIvbGQuc28uMSBhbmQgZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVzIG9uCisrICAjIHBv d2VycGMsIGJlY2F1c2UgTWtMaW51eCBvbmx5IHN1cHBvcnRlZCBzaGFyZWQgbGlicmFyaWVzIHdp dGggdGhlCisrICAjIEdOVSBkeW5hbWljIGxpbmtlci4gIFNpbmNlIHRoaXMgd2FzIGJyb2tlbiB3 aXRoIGNyb3NzIGNvbXBpbGVycywKKysgICMgbW9zdCBwb3dlcnBjLWxpbnV4IGJveGVzIHN1cHBv cnQgZHluYW1pYyBsaW5raW5nIHRoZXNlIGRheXMgYW5kCisrICAjIHBlb3BsZSBjYW4gYWx3YXlz IC0tZGlzYWJsZS1zaGFyZWQsIHRoZSB0ZXN0IHdhcyByZW1vdmVkLCBhbmQgd2UKKysgICMgYXNz dW1lIHRoZSBHTlUvTGludXggZHluYW1pYyBsaW5rZXIgaXMgaW4gdXNlLgorKyAgZHluYW1pY19s aW5rZXI9J0dOVS9MaW51eCBsZC5zbycKKysgIDs7CisrCisrbmV0YnNkKikKKysgIHZlcnNpb25f dHlwZT1zdW5vcworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysg IGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0 aGVuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICAg IGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCisr ICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgKGEub3V0KSBsZC5zbycKKysgIGVsc2UKKysgICAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9 JHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvcicKKysgICAgZHluYW1pY19saW5rZXI9J05ldEJTRCBsZC5lbGZfc28n CisrICBmaQorKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7Cisr CisrbmV3c29zNikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPXllcworKyAgOzsKKysKKysqbnRvKiB8ICpxbngqKQorKyAgdmVyc2lvbl90eXBlPXFueAor KyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9 JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv cicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIGR5bmFtaWNfbGlu a2VyPSdsZHFueC5zbycKKysgIDs7CisrCisrb3BlbmJzZCopCisrICB2ZXJzaW9uX3R5cGU9c3Vu b3MKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiIKKysgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgIyBTb21lIG9sZGVyIHZlcnNpb25zIG9mIE9wZW5CU0QgKDMuMyBhdCBs ZWFzdCkgKmRvKiBuZWVkIHZlcnNpb25lZCBsaWJzLgorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAg ICBvcGVuYnNkMy4zIHwgb3BlbmJzZDMuMy4qKQluZWVkX3ZlcnNpb249eWVzIDs7CisrICAgICop CQkJCW5lZWRfdmVyc2lvbj1ubyAgOzsKKysgIGVzYWMKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmlu IiBsZGNvbmZpZyAtbSAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK KysgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19g IiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRo ZW4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIG9wZW5ic2QyLls4OV0gfCBvcGVuYnNk Mi5bODldLiopCisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKwk7OworKyAgICAg ICopCisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysJOzsKKysgICAgICBlc2Fj CisrICBlbHNlCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGZpCisr ICA7OworKworK29zMiopCisrICBsaWJuYW1lX3NwZWM9JyRuYW1lJworKyAgc2hyZXh0X2NtZHM9 Ii5kbGwiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxp Ym5hbWUke3NoYXJlZF9leHR9ICRsaWJuYW1lLmEnCisrICBkeW5hbWljX2xpbmtlcj0nT1MvMiBs ZC5leGUnCisrICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysgIDs7CisrCisrb3NmMyogfCBvc2Y0 KiB8IG9zZjUqKQorKyAgdmVyc2lvbl90eXBlPW9zZgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisr ICBuZWVkX3ZlcnNpb249bm8KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Ivc2hsaWIgL3Vz ci9jY3MvbGliIC91c3IvbGliL2NtcGxycy9jYyAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiAvdmFy L3NobGliIgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWMiCisrICA7OworKworK3Jkb3MqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7 CisrCisrc29sYXJpcyopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZp eD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwor KyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgIyBsZGQgY29tcGxhaW5zIHVubGVzcyBsaWJy YXJpZXMgYXJlIGV4ZWN1dGFibGUKKysgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kICt4ICRsaWIn CisrICA7OworKworK3N1bm9zNCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICBmaW5pc2hfY21kcz0nUEFUSD0i XCRQQVRIOi91c3IvZXRjIiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGlmIHRl c3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgbmVlZF9saWJfcHJlZml4PW5vCisr ICBmaQorKyAgbmVlZF92ZXJzaW9uPXllcworKyAgOzsKKysKKytzeXN2NCB8IHN5c3Y0LjMqKQor KyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAorKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KKysgICAgc25pKQorKyAg ICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgICAgIG5lZWRfbGliX3ByZWZp eD1ubworKyAgICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrICAgICAgOzsKKysgICAgc2ll bWVucykKKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICA7OworKyAgICBtb3Rvcm9s YSkKKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICBuZWVkX3ZlcnNpb249bm8KKysg ICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICAgICBzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWM9Jy9saWIgL3Vzci9saWIgL3Vzci9jY3MvbGliJworKyAgICAgIDs7CisrICBl c2FjCisrICA7OworKworK3N5c3Y0Kk1QKikKKysgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4K KysgICAgdmVyc2lvbl90eXBlPWxpbnV4CisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5h bWUke3NoYXJlZF9leHR9LiR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPSckbGlibmFtZSR7c2hhcmVk X2V4dH0uJG1ham9yJworKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgZmkK KysgIDs7CisrCisrc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9w ZW5VTklYKiB8IHN5c3Y0KnV3MiopCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC1lbGYKKysgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xk IiA9IHllczsgdGhlbgorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwv bGliIC91c3IvZ251L2xpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIgL2xpYicKKysgIGVsc2UKKysg ICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2Njcy9saWIgL3Vzci9saWInCisrICAg IGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBzY28zLjJ2NSopCisrICAgICAgICBzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL2xpYiIKKysJOzsKKysg ICAgZXNhYworKyAgZmkKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xpYicK KysgIDs7CisrCisrdHBmKikKKysgICMgVFBGIGlzIGEgY3Jvc3MtdGFyZ2V0IG9ubHkuICBQcmVm ZXJyZWQgY3Jvc3MtaG9zdCA9IEdOVS9MaW51eC4KKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAg bmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9Jwor KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD1ubworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKyt1dHM0KikK KysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKKysgIDs7CisrCisrKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisr ICA7OworK2VzYWMKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogJGR5bmFtaWNfbGlua2VyIiA+JjUKKyskYXNfZWNobyAiJGR5bmFtaWNfbGlua2VyIiA+ JjY7IH0KKyt0ZXN0ICIkZHluYW1pY19saW5rZXIiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1u bworKworK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSJQQVRIICRzaGxpYnBhdGhfdmFyICRy dW5wYXRoX3ZhciIKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgdmFyaWFibGVzX3Nh dmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayBHQ0NfRVhFQ19QUkVG SVggQ09NUElMRVJfUEFUSCBMSUJSQVJZX1BBVEgiCisrZmkKKysKKytpZiB0ZXN0ICIke2x0X2N2 X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgorKyAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgorK2ZpCisr aWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsg dGhlbgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYyIKKytmaQorKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJv Z3JhbXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5 IHBhdGhzIGludG8gcHJvZ3JhbXMuLi4gIiA+JjY7IH0KKytoYXJkY29kZV9hY3Rpb25fQ1hYPQor K2lmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWCIgfHwKKysgICB0ZXN0 IC1uICIkcnVucGF0aF92YXJfQ1hYIiB8fAorKyAgIHRlc3QgIlgkaGFyZGNvZGVfYXV0b21hdGlj X0NYWCIgPSAiWHllcyIgOyB0aGVuCisrCisrICAjIFdlIGNhbiBoYXJkY29kZSBub24tZXhpc3Rl bnQgZGlyZWN0b3JpZXMuCisrICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0X0NYWCIgIT0gbm8g JiYKKysgICAgICMgSWYgdGhlIG9ubHkgbWVjaGFuaXNtIHRvIGF2b2lkIGhhcmRjb2RpbmcgaXMg c2hsaWJwYXRoX3Zhciwgd2UKKysgICAgICMgaGF2ZSB0byByZWxpbmssIG90aGVyd2lzZSB3ZSBt aWdodCBsaW5rIHdpdGggYW4gaW5zdGFsbGVkIGxpYnJhcnkKKysgICAgICMgd2hlbiB3ZSBzaG91 bGQgYmUgbGlua2luZyB3aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxlZCBvbmUKKysgICAgICMjIHRl c3QgIiRfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsIENYWCkiICE9IG5vICYmCisr ICAgICB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTF9DWFgiICE9IG5vOyB0aGVuCisrICAgICMgTGlu a2luZyBhbHdheXMgaGFyZGNvZGVzIHRoZSB0ZW1wb3JhcnkgbGlicmFyeSBkaXJlY3RvcnkuCisr ICAgIGhhcmRjb2RlX2FjdGlvbl9DWFg9cmVsaW5rCisrICBlbHNlCisrICAgICMgV2UgY2FuIGxp bmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQgd2UgY2FuIGhhcmRjb2RlIG5vbmV4aXN0aW5nIGRp cnMuCisrICAgIGhhcmRjb2RlX2FjdGlvbl9DWFg9aW1tZWRpYXRlCisrICBmaQorK2Vsc2UKKysg ICMgV2UgY2Fubm90IGhhcmRjb2RlIGFueXRoaW5nLCBvciBlbHNlIHdlIGNhbiBvbmx5IGhhcmRj b2RlIGV4aXN0aW5nCisrICAjIGRpcmVjdG9yaWVzLgorKyAgaGFyZGNvZGVfYWN0aW9uX0NYWD11 bnN1cHBvcnRlZAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6ICRoYXJkY29kZV9hY3Rpb25fQ1hYIiA+JjUKKyskYXNfZWNobyAiJGhhcmRjb2Rl X2FjdGlvbl9DWFgiID4mNjsgfQorKworK2lmIHRlc3QgIiRoYXJkY29kZV9hY3Rpb25fQ1hYIiA9 IHJlbGluayB8fAorKyAgIHRlc3QgIiRpbmhlcml0X3JwYXRoX0NYWCIgPSB5ZXM7IHRoZW4KKysg ICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAorKyAgZW5hYmxlX2Zhc3RfaW5z dGFsbD1ubworK2VsaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMg fHwKKysgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVuCisrICAjIEZhc3QgaW5z dGFsbGF0aW9uIGlzIG5vdCBuZWNlc3NhcnkKKysgIGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxl c3MKKytmaQorKworKworKworKworKworKworKworKyAgZmkgIyB0ZXN0IC1uICIkY29tcGlsZXIi CisrCisrICBDQz0kbHRfc2F2ZV9DQworKyAgTERDWFg9JExECisrICBMRD0kbHRfc2F2ZV9MRAor KyAgR0NDPSRsdF9zYXZlX0dDQworKyAgd2l0aF9nbnVfbGQ9JGx0X3NhdmVfd2l0aF9nbnVfbGQK KysgIGx0X2N2X3BhdGhfTERDWFg9JGx0X2N2X3BhdGhfTEQKKysgIGx0X2N2X3BhdGhfTEQ9JGx0 X3NhdmVfcGF0aF9MRAorKyAgbHRfY3ZfcHJvZ19nbnVfbGRjeHg9JGx0X2N2X3Byb2dfZ251X2xk CisrICBsdF9jdl9wcm9nX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAorK2ZpICMgdGVzdCAi JF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAhPSB5ZXMKKysKKythY19leHQ9YworK2FjX2NwcD0nJENQ UCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENG TEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNf Y29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworKworKworKworKworKworKwor KworKworKworKworKworKworKyAgICAgICAgYWNfY29uZmlnX2NvbW1hbmRzPSIkYWNfY29uZmln X2NvbW1hbmRzIGxpYnRvb2wiCisrCisrCisrCisrCisrIyBPbmx5IGV4cGFuZCBvbmNlOgorKwor KworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hl dGhlciBsbiAtcyB3b3JrcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBsbiAt cyB3b3Jrcy4uLiAiID4mNjsgfQorK0xOX1M9JGFzX2xuX3MKKytpZiB0ZXN0ICIkTE5fUyIgPSAi bG4gLXMiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKytlbHNlCisrICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8sIHVzaW5nICRM Tl9TIiA+JjUKKyskYXNfZWNobyAibm8sIHVzaW5nICRMTl9TIiA+JjY7IH0KKytmaQorKworK3sg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciAk e01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hl dGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKS4uLiAiID4mNjsgfQorK3NldCB4ICR7TUFL RS1tYWtlfQorK2FjX21ha2U9YCRhc19lY2hvICIkMiIgfCBzZWQgJ3MvKy9wL2c7IHMvW15hLXpB LVowLTlfXS9fL2cnYAorK2lmIGV2YWwgInRlc3QgXCJcJHthY19jdl9wcm9nX21ha2VfJHthY19t YWtlfV9zZXQrc2V0fVwiIiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QubWFrZSA8PFxfQUNFT0YKKytTSEVMTCA9IC9i aW4vc2gKKythbGw6CisrCUBlY2hvICdAQEAlJSU9JChNQUtFKT1AQEAlJSUnCisrX0FDRU9GCisr IyBHTlUgbWFrZSBzb21ldGltZXMgcHJpbnRzICJtYWtlWzFdOiBFbnRlcmluZyAuLi4iLCB3aGlj aCB3b3VsZCBjb25mdXNlIHVzLgorK2Nhc2UgYCR7TUFLRS1tYWtlfSAtZiBjb25mdGVzdC5tYWtl IDI+L2Rldi9udWxsYCBpbgorKyAgKkBAQCUlJT0/Kj1AQEAlJSUqKQorKyAgICBldmFsIGFjX2N2 X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldD15ZXM7OworKyAgKikKKysgICAgZXZhbCBhY19jdl9w cm9nX21ha2VfJHthY19tYWtlfV9zZXQ9bm87OworK2VzYWMKKytybSAtZiBjb25mdGVzdC5tYWtl CisrZmkKKytpZiBldmFsIHRlc3QgXCRhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQgPSB5 ZXM7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorKyAgU0VUX01BS0U9CisrZWxz ZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5v IiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorKyAgU0VUX01BS0U9Ik1BS0U9JHtNQUtFLW1h a2V9IgorK2ZpCisrCisrCisrIyBTZXQgZGVmYXVsdCBsYW5ndWFnZSB0byBDKysKKythY19leHQ9 Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRD WFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAt byBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVz dC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxl cl9nbnUKKysKKysKKysjIENoZWNrIGZvciBleGNlcHRpb25zIHN3aXRjaAorKyMgQ2hlY2sgd2hl dGhlciAtLWVuYWJsZS1leGNlcHRpb25zIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9l eGNlcHRpb25zK3NldH0iID0gc2V0OyB0aGVuIDoKKysgIGVuYWJsZXZhbD0kZW5hYmxlX2V4Y2Vw dGlvbnM7CisrJGFzX2VjaG8gIiNkZWZpbmUgU09DSV9FWENFUFRJT05TIDEiID4+Y29uZmRlZnMu aAorKworK2ZpCisrCisrdGVzdCAieCRlbmFibGVfZXhjZXB0aW9ucyIgIT0geG5vICYmIGVuYWJs ZV9leGNlcHRpb25zPXllcworK3Rlc3QgIngkYXhfY3ZfYm9vc3RfZGF0ZV90aW1lIiAhPSB4bm8g JiYgZW5hYmxlX2V4Y2VwdGlvbnM9eWVzCisrCisrIyBDaGVjayBmb3IgaW5mbyBwYWdlcworKyMg Q2hlY2sgd2hldGhlciAtLWVuYWJsZS1pbmZvLWRvYyB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtl bmFibGVfaW5mb19kb2Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgZW5hYmxldmFsPSRlbmFibGVf aW5mb19kb2M7CisrZmkKKysKKyt0ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIgIT0geG5vICYmIGVu YWJsZV9pbmZvX2RvYz15ZXMKKysKKysKKysjIENoZWNrIGZvciBodG1sLWRvYyBzd2l0Y2gKKysj IENoZWNrIHdoZXRoZXIgLS1lbmFibGUtaHRtbC1kb2Mgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7 ZW5hYmxlX2h0bWxfZG9jK3NldH0iID0gc2V0OyB0aGVuIDoKKysgIGVuYWJsZXZhbD0kZW5hYmxl X2h0bWxfZG9jOworK2ZpCisrCisrdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiICE9IHhubyAmJiBl bmFibGVfaHRtbF9kb2M9eWVzCisrCisrCisrIyBQcm92aWRlIC0td2l0aC1kb2NkaXIKKysKKysj IENoZWNrIHdoZXRoZXIgLS13aXRoLWRvY2RpciB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRo X2RvY2RpcitzZXR9IiA9IHNldDsgdGhlbiA6CisrICB3aXRodmFsPSR3aXRoX2RvY2RpcjsgRE9D X0RJUj0iJHdpdGh2YWwiCisrZWxzZQorKyAgRE9DX0RJUj0iIgorK2ZpCisrCisraWYgdGVzdCAi eCRET0NfRElSIiAhPSB4OyB0aGVuCisrICBkb2NkaXI9IiRET0NfRElSIgorK2Vsc2UKKysgIGRv Y2Rpcj0iJHtkYXRhZGlyfS9kb2MvJFBBQ0tBR0UtJFZFUlNJT04iCisrZmkKKysKKysKKysKKysj IENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIFNPQ0kgaXRzZWxmKQorKyMgQ2hl Y2sgd2hldGhlciAtLWVuYWJsZS1idXJyaWVkLWhlYWRlcnMgd2FzIGdpdmVuLgorK2lmIHRlc3Qg IiR7ZW5hYmxlX2J1cnJpZWRfaGVhZGVycytzZXR9IiA9IHNldDsgdGhlbiA6CisrICBlbmFibGV2 YWw9JGVuYWJsZV9idXJyaWVkX2hlYWRlcnM7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0 aGVuCisrICAgICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz1ubworKyAgIGVsc2UKKysgICAgICBl bmFibGVfYnVycmllZF9oZWFkZXJzPXllcworKyAgIGZpCisrZWxzZQorKyAgIGVuYWJsZV9idXJy aWVkX2hlYWRlcnM9bm8KKytmaQorKworKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdl cyBnZW5lcmF0aW9uCisrZW5hYmxlX2J1cnJpZWRfaGVhZGVycz15ZXMKKysgaWYgdGVzdCAieCRl bmFibGVfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysgIFNPQ0lfSEVBREVSU19CVVJJ RURfVFJVRT0KKysgIFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0U9JyMnCisrZWxzZQorKyAgU09D SV9IRUFERVJTX0JVUklFRF9UUlVFPScjJworKyAgU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRT0K KytmaQorKworKworK2lmIHRlc3QgIngkZW5hYmxlX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0 aGVuCisrICAgQ1BQRkxBR1M9Ii1EU09DSV9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCisrZmkK KysKKysjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIE15U1FMIGNsaWVudCkK KysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbXlzcWwtYnVycmllZC1oZWFkZXJzIHdhcyBnaXZl bi4KKytpZiB0ZXN0ICIke2VuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnMrc2V0fSIgPSBzZXQ7 IHRoZW4gOgorKyAgZW5hYmxldmFsPSRlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzOyAgaWYg dGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKwllbmFibGVfbXlzcWxfYnVycmllZF9oZWFk ZXJzPW5vCisrICAgZWxzZQorKwllbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPXllcworKyAg IGZpCisrZWxzZQorKyAgIGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KKytmaQorKwor KyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCisrZW5hYmxlX215 c3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKKysgaWYgdGVzdCAieCRlbmFibGVfbXlzcWxfYnVycmll ZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysgIFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfVFJV RT0KKysgIFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfRkFMU0U9JyMnCisrZWxzZQorKyAgU09D SV9NWVNRTF9IRUFERVJTX0JVUklFRF9UUlVFPScjJworKyAgU09DSV9NWVNRTF9IRUFERVJTX0JV UklFRF9GQUxTRT0KKytmaQorKworKworK2lmIHRlc3QgIngkZW5hYmxlX215c3FsX2J1cnJpZWRf aGVhZGVycyIgPSB4eWVzOyB0aGVuCisrICAgQ1BQRkxBR1M9Ii1EU09DSV9NWVNRTF9IRUFERVJT X0JVUklFRCAkQ1BQRkxBR1MiCisrZmkKKysKKysjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBm aWxlcyAoZm9yIFBvc3RHcmVTUUwgY2xpZW50KQorKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1w b3N0Z3Jlc3FsLWJ1cnJpZWQtaGVhZGVycyB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVf cG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgZW5hYmxl dmFsPSRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM7ICBpZiB0ZXN0ICIkZW5hYmxl dmFsIiA9IG5vOyB0aGVuCisrCWVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz1ubwor KyAgIGVsc2UKKysJZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPXllcworKyAgIGZp CisrZWxzZQorKyAgIGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz1ubworK2ZpCisr CisrIyBUZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KKytlbmFibGVf cG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCisrIGlmIHRlc3QgIngkZW5hYmxlX3Bvc3Rn cmVzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysgIFNPQ0lfUE9TVEdSRVNRTF9I RUFERVJTX0JVUklFRF9UUlVFPQorKyAgU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX0ZB TFNFPScjJworK2Vsc2UKKysgIFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9UUlVFPScj JworKyAgU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFPQorK2ZpCisrCisrCisr aWYgdGVzdCAieCRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhl bgorKyAgIENQUEZMQUdTPSItRFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCAkQ1BQRkxB R1MiCisrZmkKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrIyBCb29zdCAoU1RMIEV4dGVuc2lvbnM6IGh0dHA6Ly93d3cu Ym9vc3Qub3JnKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLWJvb3N0IHdhcyBn aXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfYm9vc3Qrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgd2l0 aHZhbD0kd2l0aF9ib29zdDsKKysgICAgICAgICAgICAgICAgaWYgdGVzdCAiJHdpdGh2YWwiID0g Im5vIjsgdGhlbgorKwkJICAgICAgICAgICAgd2FudF9ib29zdD0ibm8iCisrICAgICAgICAgICAg ICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KKysgICAgICAgICAgICAgICAg ICAgIHdhbnRfYm9vc3Q9InllcyIKKysgICAgICAgICAgICAgICAgICAgIGFjX2Jvb3N0X3BhdGg9 IiIKKysgICAgICAgICAgICAgICAgZWxzZQorKwkJCSAgICAgICAgd2FudF9ib29zdD0ieWVzIgor KyAgICAgICAgICAgIAkJYWNfYm9vc3RfcGF0aD0iJHdpdGh2YWwiCisrCQkgICAgICAgIGZpCisr CisrZWxzZQorKyAgd2FudF9ib29zdD0ieWVzIgorK2ZpCisrCisrCisrIyAgICBBQ19DQU5PTklD QUxfQlVJTEQKKytCT09TVF9NRFdfVkVSU0lPTj0iMS0zMy0xIgorK0JPT1NUTElCX01EV19WRVJT SU9OPSIxXzMzXzEiCisrQk9PU1RfdmVyc2lvbl9oZWFkZXI9ImJvb3N0L3ZlcnNpb24uaHBwIgor KworKwlpZiB0ZXN0ICJ4JHdhbnRfYm9vc3QiID0gInh5ZXMiOyB0aGVuCisrCQlib29zdF9saWJf dmVyc2lvbl9yZXE9MS4zMworKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3Nob3J0ZW49YGV4cHIg JGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwuWzAtOV0qXCknYAorKwkJYm9vc3Rf bGliX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnXChb MC05XSpcKSdgCisrCQlib29zdF9saWJfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJGJvb3N0X2xp Yl92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAorKwkJYm9vc3RfbGliX3ZlcnNp b25fcmVxX3N1Yl9taW5vcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1swLTldKlwu WzAtOV0qXC5cKFswLTldKlwpJ2AKKysJCWlmIHRlc3QgIngkYm9vc3RfbGliX3ZlcnNpb25fcmVx X3N1Yl9taW5vciIgPSAieCIgOyB0aGVuCisrCQkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9t aW5vcj0iMCIKKysgICAgCWZpCisrCQlXQU5UX0JPT1NUX1ZFUlNJT049YGV4cHIgJGJvb3N0X2xp Yl92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAgXCsgICRib29zdF9saWJfdmVyc2lvbl9yZXFf bWlub3IgXCogMTAwIFwrICRib29zdF9saWJfdmVyc2lvbl9yZXFfc3ViX21pbm9yYAorKwkJeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgYm9vc3Rs aWIgPj0gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yIGJvb3N0bGliID49ICRib29zdF9saWJfdmVyc2lvbl9yZXEuLi4gIiA+JjY7IH0KKysJCXN1 Y2NlZWRlZD1ubworKworKwkJCQkJCQkJCQlpZiB0ZXN0IC1kIC9saWI2NAorKwkJdGhlbgorKwkJ CUJPT1NUX0xJQkRJUlRZUEU9ImxpYjY0IgorKwkJZWxzZQorKwkJCUJPT1NUX0xJQkRJUlRZUEU9 ImxpYiIKKysJCWZpCisrCQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiIKKysJCXRoZW4K KysJCQlpZiB0ZXN0ICIkQk9PU1RfTElCRElSVFlQRSIgPT0gImxpYjY0IgorKwkJCXRoZW4KKysJ CQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiICYmIHRlc3Qg LXIgIiRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQl0aGVuCisrCSAgICAg ICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBF IgorKwkJCQllbHNlCisrICAgICAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29z dF9wYXRoL2xpYiIKKysJCQkJZmkKKysJCQllbHNlCisrCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jv b3N0X3BhdGgvbGliIgorKwkJCWZpCisrCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRo L2luY2x1ZGUiCisrCQkJQk9PU1RfVkVSU0lPTj1gZ3JlcCAiZGVmaW5lIEJPT1NUX0xJQl9WRVJT SU9OIiAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlLyR7Qk9PU1RfdmVyc2lvbl9oZWFkZXJ9IHwgY3V0 IC1kJyAnIC1mMyB8IGN1dCAtZFwiIC1mMmAKKysJCWVsc2UKKysJCQlmb3IgYWNfYm9vc3RfcGF0 aF90bXAgaW4gL3VzciAvdXNyL2xvY2FsIC9vcHQgL25hc3Rvb2xzL2Jvb3N0CisrCQkJZG8KKysJ CQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QiICYmIHRlc3Qg LXIgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0IgorKwkJCQl0aGVuCisrCQkJCQlC T09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoX3RtcC8kQk9PU1RfTElCRElSVFlQRSIKKysJCQkJ CUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZSIKKysJCQkJCUJPT1NU X1ZFUlNJT049YGdyZXAgImRlZmluZSBCT09TVF9MSUJfVkVSU0lPTiIgJGFjX2Jvb3N0X3BhdGhf dG1wL2luY2x1ZGUvJHtCT09TVF92ZXJzaW9uX2hlYWRlcn0gfCBjdXQgLWQnICcgLWYzIHwgY3V0 IC1kXCIgLWYyYAorKwkJCQkJYnJlYWs7CisrCQkJCWZpCisrCQkJCWlmIHRlc3QgLWQgIiRhY19i b29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi9ib29zdCIgJiYg dGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJT SU9OL2Jvb3N0IgorKwkJCQl0aGVuCisrCQkJCQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRo X3RtcC8kQk9PU1RfTElCRElSVFlQRSIKKysJCQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3Rf cGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJT04iCisrCQkJCQlCT09TVF9W RVJTSU9OPWBncmVwICJkZWZpbmUgQk9PU1RfTElCX1ZFUlNJT04iICRhY19ib29zdF9wYXRoX3Rt cC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi8ke0JPT1NUX3ZlcnNpb25faGVhZGVy fSB8IGN1dCAtZCcgJyAtZjMgfCBjdXQgLWRcIiAtZjJgCisrCisrCQkJCQkJCQkJCWlmIHRlc3Qg LWQgIiRhY19ib29zdF9wYXRoX3RtcC9saWIiIFwKKysJCQkJCSYmIHRlc3QgLXIgIiRhY19ib29z dF9wYXRoX3RtcC9saWIiIFwKKysJCQkJCSYmIHRlc3QgISAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1w L2xpYjY0IgorKwkJCQkJdGhlbgorKwkJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhf dG1wL2xpYiIKKysJCQkJCQllY2hvICJIYWNrOiAkQk9PU1RfTElCUyIKKysJCQkJCWZpCisrCQkJ CQlicmVhazsKKysJCQkJZmkKKysJCQlkb25lCisrCQlmaQorKworKwkJQ1BQRkxBR1NfU0FWRUQ9 IiRDUFBGTEFHUyIKKysJCUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFHUyIKKysJCWV4 cG9ydCBDUFBGTEFHUworKworKwkJTERGTEFHU19TQVZFRD0iJExERkxBR1MiCisrCQlMREZMQUdT PSIkTERGTEFHUyAkQk9PU1RfTElCUyIKKysJCWV4cG9ydCBMREZMQUdTCisrCisrICAgICAJY2F0 IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KKysKKysjaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+CisrCisraW50CisrbWFp biAoKQorK3sKKysKKysjaWYgQk9PU1RfVkVSU0lPTiA+PSAkV0FOVF9CT09TVF9WRVJTSU9OCisr Ly8gRXZlcnl0aGluZyBpcyBva2F5CisrI2Vsc2UKKysjICBlcnJvciBCb29zdCB2ZXJzaW9uIGlz IHRvbyBvbGQKKysjZW5kaWYKKysKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YK KytpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKysKKysgICAgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+ JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKysJCSBzdWNjZWVkZWQ9eWVzCisrCQkgZm91bmRf c3lzdGVtPXllcworKyAgICAgICAgIDoKKysKKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKworKwkJCQkJCWlmIHRlc3Qg Ingkc3VjY2VlZGVkIiAhPSAieHllcyI7IHRoZW4KKysJCQlfdmVyc2lvbj0wCisrCQkJaWYgdGVz dCAiJGFjX2Jvb3N0X3BhdGgiICE9ICIiOyB0aGVuCisrICAgICAgICAgICAgICAgIEJPT1NUX0xJ QlM9Ii1MJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCisrCQkJCWlmIHRlc3QgLWQg IiRhY19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7IHRoZW4KKysJCQkJ CWZvciBpIGluIGBscyAtZCAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251 bGxgOyBkbworKwkJCQkJCV92ZXJzaW9uX3RtcD1gZWNobyAkaSB8IHNlZCAicyMkYWNfYm9vc3Rf cGF0aCMjIiB8IHNlZCAncy9cL2luY2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAncy9fLy4vJ2AKKysJ CQkJCQlWX0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAgXD4gJF92ZXJzaW9uYAorKwkJCQkJCWlm IHRlc3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KKysJCQkJCQkJX3ZlcnNpb249JF92ZXJzaW9u X3RtcAorKwkJCQkJCWZpCisrCQkJCQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBlY2hvICRfdmVyc2lv biB8IHNlZCAncy9cLi9fLydgCisrCQkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRo L2luY2x1ZGUvYm9vc3QtJFZFUlNJT05fVU5ERVJTQ09SRSIKKysJCQkJCWRvbmUKKysJCQkJZmkK KysJCQllbHNlCisrCQkJCWZvciBhY19ib29zdF9wYXRoIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0 IDsgZG8KKysJCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNf Ym9vc3RfcGF0aCI7IHRoZW4KKysJCQkJCQlmb3IgaSBpbiBgbHMgLWQgJGFjX2Jvb3N0X3BhdGgv aW5jbHVkZS9ib29zdC0qIDI+L2Rldi9udWxsYDsgZG8KKysJCQkJCQkJX3ZlcnNpb25fdG1wPWBl Y2hvICRpIHwgc2VkICJzIyRhY19ib29zdF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwvYm9v c3QtLy8nIHwgc2VkICdzL18vLi8nYAorKwkJCQkJCQlWX0NIRUNLPWBleHByICRfdmVyc2lvbl90 bXAgXD4gJF92ZXJzaW9uYAorKwkJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVu CisrCQkJCQkJCQlfdmVyc2lvbj0kX3ZlcnNpb25fdG1wCisrCQkJCQkJCQliZXN0X3BhdGg9JGFj X2Jvb3N0X3BhdGgKKysJCQkJCQkJZmkKKysJCQkJCQlkb25lCisrCQkJCQlmaQorKwkJCQlkb25l CisrCisrCQkJCVZFUlNJT05fVU5ERVJTQ09SRT1gZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3MvXC4v Xy8nYAorKwkJCQlCT09TVF9DRkxBR1M9Ii1JJGJlc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSRWRVJT SU9OX1VOREVSU0NPUkUiCisrCQkJCUJPT1NUX0xJQlM9Ii1MJGJlc3RfcGF0aC8kQk9PU1RfTElC RElSVFlQRSIKKysKKysJICAgIAkJaWYgdGVzdCAieCRCT09TVF9ST09UIiAhPSAieCI7IHRoZW4K KysJCQkJCWlmIHRlc3QgLWQgIiRCT09TVF9ST09UIiAmJiB0ZXN0IC1yICIkQk9PU1RfUk9PVCI7 IHRoZW4KKysJCQkJCQl2ZXJzaW9uX2Rpcj1gZXhwciAvLyRCT09TVF9ST09UIDogJy4qL1woLipc KSdgCisrCQkJCQkJc3RhZ2VfdmVyc2lvbj1gZWNobyAkdmVyc2lvbl9kaXIgfCBzZWQgJ3MvYm9v c3RfLy8nIHwgc2VkICdzL18vLi9nJ2AKKysJCQkJCQlzdGFnZV92ZXJzaW9uX3Nob3J0ZW49YGV4 cHIgJHN0YWdlX3ZlcnNpb24gOiAnXChbMC05XSpcLlswLTldKlwpJ2AKKysJCQkJCQlWX0NIRUNL PWBleHByICRzdGFnZV92ZXJzaW9uX3Nob3J0ZW4gXD5cPSAkX3ZlcnNpb25gCisrCQkJCQkJaWYg dGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgorKwkJCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IFdlIHdpbGwgdXNlIGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkg ZnJvbSAkQk9PU1RfUk9PVCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV2Ugd2lsbCB1c2UgYSBz dGFnZWQgYm9vc3QgbGlicmFyeSBmcm9tICRCT09TVF9ST09UIiA+JjY7fQorKwkJCQkJCQlCT09T VF9DRkxBR1M9Ii1JJEJPT1NUX1JPT1QiCisrCQkJCQkJCUJPT1NUX0xJQlM9Ii1MJEJPT1NUX1JP T1Qvc3RhZ2UvJEJPT1NUX0xJQkRJUlRZUEUiCisrCQkJCQkJZmkKKysJCQkJCWZpCisrCSAgICAJ CWZpCisrCQkJZmkKKysKKysJCQlDUFBGTEFHUz0iJENQUEZMQUdTICRCT09TVF9DRkxBR1MiCisr CQkJZXhwb3J0IENQUEZMQUdTCisrCQkJTERGTEFHUz0iJExERkxBR1MgJEJPT1NUX0xJQlMiCisr CQkJZXhwb3J0IExERkxBR1MKKysKKysgICAgIAkJY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+ Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysjaW5jbHVkZSA8 Ym9vc3QvdmVyc2lvbi5ocHA+CisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysjaWYgQk9PU1Rf VkVSU0lPTiA+PSAkV0FOVF9CT09TVF9WRVJTSU9OCisrLy8gRXZlcnl0aGluZyBpcyBva2F5Cisr I2Vsc2UKKysjICBlcnJvciBCb29zdCB2ZXJzaW9uIGlzIHRvbyBvbGQKKysjZW5kaWYKKysKKysK KysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2NvbXBp bGUgIiRMSU5FTk8iOyB0aGVuIDoKKysKKysgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzICgkX3ZlcnNpb24pIiA+JjUKKyskYXNfZWNo byAieWVzICgkX3ZlcnNpb24pIiA+JjY7IH0KKysJCSBzdWNjZWVkZWQ9eWVzCisrICAgICAgICAg OgorKworK2Vsc2UKKysKKysgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogbm8gKCRfdmVyc2lvbikiID4mNQorKyRhc19lY2hvICJubyAoJF92 ZXJzaW9uKSIgPiY2OyB9CisrICAgICAgICAgOgorKworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCQlmaQorKworKwkJ aWYgdGVzdCAiJHN1Y2NlZWRlZCIgIT0gInllcyIgOyB0aGVuCisrCQkJaWYgdGVzdCAiJF92ZXJz aW9uIiA9ICIwIiA7IHRoZW4KKysJCQkJYXNfZm5fZXJyb3IgJD8gIldlIGNvdWxkIG5vdCBkZXRl Y3QgdGhlIGJvb3N0IGxpYnJhcmllcyAodmVyc2lvbiAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3No b3J0ZW4gb3IgaGlnaGVyKS4gSWYgeW91IGhhdmUgYSBzdGFnZWQgYm9vc3QgbGlicmFyeSAoc3Rp bGwgbm90IGluc3RhbGxlZCkgcGxlYXNlIHNwZWNpZnkgXCRCT09TVF9ST09UIGluIHlvdXIgZW52 aXJvbm1lbnQgYW5kIGRvIG5vdCBnaXZlIGEgUEFUSCB0byAtLXdpdGgtYm9vc3Qgb3B0aW9uLiAg SWYgeW91IGFyZSBzdXJlIHlvdSBoYXZlIGJvb3N0IGluc3RhbGxlZCwgdGhlbiBjaGVjayB5b3Vy IHZlcnNpb24gbnVtYmVyIGxvb2tpbmcgaW4gPGJvb3N0L3ZlcnNpb24uaHBwPi4iICIkTElORU5P IiA1CisrCQkJZWxzZQorKwkJCQlhc19mbl9lcnJvciAkPyAiJ1lvdXIgYm9vc3QgbGlicmFyaWVz IHNlZW1zIHRvIG9sZCAodmVyc2lvbiAkX3ZlcnNpb24pLiAgV2UgbmVlZCBhdCBsZWFzdCAkYm9v c3RfbGliX3ZlcnNpb25fc2hvcnRlbiciICIkTElORU5PIiA1CisrCQkJZmkKKysJCWVsc2UKKysK KysKKysKKyskYXNfZWNobyAiI2RlZmluZSBIQVZFX0JPT1NUIC8qKi8iID4+Y29uZmRlZnMuaAor KworKworKyMKKysjIEJvb3N0OjpGaWxlc3lzdGVtCisrIworKwkJCXsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkZpbGVz eXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdo ZXRoZXIgdGhlIEJvb3N0OjpGaWxlc3lzdGVtIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2 OyB9CisraWYgdGVzdCAiJHtheF9jdl9ib29zdF9maWxlc3lzdGVtK3NldH0iID0gc2V0OyB0aGVu IDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKwkJCSBhY19leHQ9 Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRD WFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAt byBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVz dC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxl cl9nbnUKKysKKysJCQkgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4 dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvZmlsZXN5c3RlbS9w YXRoLmhwcD4KKytpbnQKKyttYWluICgpCisreworK3VzaW5nIG5hbWVzcGFjZSBib29zdDo6Zmls ZXN5c3RlbTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggbXlfcGF0 aCggImZvby9iYXIvZGF0YS50eHQiICk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gMDsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19m bl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKysgIGF4X2N2X2Jvb3N0X2ZpbGVz eXN0ZW09eWVzCisrZWxzZQorKyAgYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbT1ubworK2ZpCisrcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0 CisrCQkgCQkgICAgICAgIAkJCWFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdT JworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1Mg JENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBp bGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRheF9jdl9ib29zdF9maWxlc3lz dGVtIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0iID4mNjsgfQorKwkJ CWlmIHRlc3QgIiRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA9ICJ5ZXMiOyB0aGVuCisrCisrJGFz X2VjaG8gIiNkZWZpbmUgSEFWRV9CT09TVF9GSUxFU1lTVEVNIC8qKi8iID4+Y29uZmRlZnMuaAor KworKwkJCQlCTj1ib29zdF9maWxlc3lzdGVtCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0k Q0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0Mt bXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1t Z3cgJEJOLW1ndy1tdCAkQk4tbWd3LW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRCTi1tZ3ctcyAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJ CSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFz X3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Ig bWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2Fj X0xpYitzZXR9XCIiID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xp YiAgJExJQlMiCisrY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVy biBtYWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4 eF90cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisr ZWxzZQorKyAgZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRl c3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK2V2YWwgYWNf cmVzPVwkJGFzX2FjX0xpYgorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7 IH0KKytpZiBldmFsIHRlc3QgXCJ4XCQiJGFzX2FjX0xpYiJcIiA9IHgieWVzIjsgdGhlbiA6Cisr ICBCT09TVF9GSUxFU1lTVEVNX0xJQj0iLWwkYXhfbGliIiAgbGlua19maWxlc3lzdGVtPSJ5ZXMi IGJyZWFrCisrZWxzZQorKyAgbGlua19maWxlc3lzdGVtPSJubyIKKytmaQorKworKyAgCQkJCWRv bmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX2ZpbGVzeXN0ZW0iID0gInhubyI7IHRoZW4KKysJCQkJ CXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogQ291bGQgbm90IGxpbmsg YWdhaW5zdCAkYXhfbGliICEiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5r IGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJCQlmaQorKwkJCWZpCisrCisrIworKyMgQm9v c3Q6OlN5c3RlbQorKyMKKysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpTeXN0ZW0gbGlicmFyeSBp cyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0 OjpTeXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4 X2N2X2Jvb3N0X3N5c3RlbStzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysKKysgICAgICAgICAgICBhY19leHQ9Y3BwCisrYWNfY3BwPSck Q1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxB R1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19l eGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJT ID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysgICAg ICAgICAgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyog ZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC9zeXN0ZW0vZXJyb3JfY29kZS5o cHA+CisraW50CisrbWFpbiAoKQorK3sKKyt1c2luZyBuYW1lc3BhY2UgYm9vc3Q6OnN5c3RlbTsK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGUgbXlFcnJvckNv ZGUoKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworKyAg OworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfY29tcGlsZSAi JExJTkVOTyI7IHRoZW4gOgorKyAgYXhfY3ZfYm9vc3Rfc3lzdGVtPXllcworK2Vsc2UKKysgIGF4 X2N2X2Jvb3N0X3N5c3RlbT1ubworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNf Y29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1 JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3N5c3RlbSIgPiY1Cisr JGFzX2VjaG8gIiRheF9jdl9ib29zdF9zeXN0ZW0iID4mNjsgfQorKyAgICAgICAgICAgIGlmIHRl c3QgIiRheF9jdl9ib29zdF9zeXN0ZW0iID0gInllcyI7IHRoZW4KKysKKyskYXNfZWNobyAiI2Rl ZmluZSBIQVZFX0JPT1NUX1NZU1RFTSAvKiovIiA+PmNvbmZkZWZzLmgKKysKKysgICAgICAgICAg ICAgICAgIEJOPWJvb3N0X3N5c3RlbQorKyAgICAgICAgICAgICAgICAgZm9yIGF4X2xpYiBpbiAk Qk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGli JEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJEJOLW1ndyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyA7IGRv CisrICAgICAgICAgICAgICAgICAgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRh eF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9CisraWYgZXZh bCAidGVzdCBcIlwkeyRhc19hY19MaWIrc2V0fVwiIiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJ QlMKKytMSUJTPSItbCRheF9saWIgICRMSUJTIgorK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0Yg PmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrCisraW50Cisr bWFpbiAoKQorK3sKKytyZXR1cm4gbWFpbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytf QUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKKysgIGV2YWwg IiRhc19hY19MaWI9eWVzIgorK2Vsc2UKKysgIGV2YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKyty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKysgICAgY29uZnRl c3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9M SUJTCisrZmkKKytldmFsIGFjX3Jlcz1cJCRhc19hY19MaWIKKysJICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNf ZWNobyAiJGFjX3JlcyIgPiY2OyB9CisraWYgZXZhbCB0ZXN0IFwieFwkIiRhc19hY19MaWIiXCIg PSB4InllcyI7IHRoZW4gOgorKyAgQk9PU1RfU1lTVEVNX0xJQj0iLWwkYXhfbGliIiAgbGlua19z eXN0ZW09InllcyIgYnJlYWsKKytlbHNlCisrICBsaW5rX3N5c3RlbT0ibm8iCisrZmkKKysKKysg ICAgICAgICAgICAgICAgIGRvbmUKKysgICAgICAgICAgICAgICAgIGlmIHRlc3QgIngkbGlua19z eXN0ZW0iID0gInhubyI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xp YiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9s aWIgISIgPiY2O30KKysgICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgZmkKKysKKysj CisrIyBCb29zdDo6UHJvZ3JhbV9PcHRpb25zCisrIworKwkJCXsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlByb2dyYW1f T3B0aW9ucyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg d2hldGhlciB0aGUgQm9vc3Q6OlByb2dyYW1fT3B0aW9ucyBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4u LiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zK3NldH0i ID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKwor KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAg JENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25m dGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAk Q1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1Jwor K2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwkJCSAgICAgICAg ICAgICAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBl bmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGJvb3N0L3Byb2dyYW1fb3B0aW9ucy5ocHA+ CisraW50CisrbWFpbiAoKQorK3sKKytib29zdDo6cHJvZ3JhbV9vcHRpb25zOjpvcHRpb25zX2Rl c2NyaXB0aW9uIGdlbmVyaWMoIkdlbmVyaWMgb3B0aW9ucyIpOworKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FD RU9GCisraWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CisrICBheF9j dl9ib29zdF9wcm9ncmFtX29wdGlvbnM9eWVzCisrZWxzZQorKyAgYXhfY3ZfYm9vc3RfcHJvZ3Jh bV9vcHRpb25zPW5vCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCQkgICAgICAgICAgICAgICBhY19leHQ9Y3BwCisr YWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25m dGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUK KysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiAkYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2 X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPiY2OyB9CisrCQkJaWYgdGVzdCAiJGF4X2N2X2Jvb3N0 X3Byb2dyYW1fb3B0aW9ucyIgPSB5ZXM7IHRoZW4KKysKKyskYXNfZWNobyAiI2RlZmluZSBIQVZF X0JPT1NUX1BST0dSQU1fT1BUSU9OUyAvKiovIiA+PmNvbmZkZWZzLmgKKysKKysJCQkJQk49Ym9v c3RfcHJvZ3JhbV9vcHRpb25zCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRD Qy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1n dy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1t Z3ctcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RM SUJfTURXX1ZFUlNJT047IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9s aWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytp ZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0xpYitzZXR9XCIiID0gc2V0OyB0aGVuIDoKKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElC Uz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0IGNvbmZkZWZzLmggLSA8PF9B Q0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytp bnQKKyttYWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAgcmV0dXJuIDA7Cisr fQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgorKyAg ZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytm aQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorKyAgICBj b25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9z YXZlX0xJQlMKKytmaQorK2V2YWwgYWNfcmVzPVwkJGFzX2FjX0xpYgorKwkgICAgICAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQor KyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKytpZiBldmFsIHRlc3QgXCJ4XCQiJGFzX2FjX0xp YiJcIiA9IHgieWVzIjsgdGhlbiA6CisrICBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCPSItbCRh eF9saWIiICBsaW5rX3Byb2dyYW1fb3B0aW9ucz0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxpbmtf cHJvZ3JhbV9vcHRpb25zPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAi eCRsaW5rX3Byb2dyYW1fb3B0aW9ucz0ibm8iIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQl7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IENvdWxkIG5vdCBsaW5rIGFnYWluc3Qg JGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0 ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkKKysJCQlmaQorKworKyMKKysjIEJvb3N0OjpUaHJl YWRzCisrIworKwkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hl Y2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlRocmVhZCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlRocmVhZCBsaWJyYXJ5 IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfdGhyZWFk K3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19j b21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn CisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFH UyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9 JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJCQkgQ1hYRkxBR1NfU0FWRT0kQ1hYRkxBR1MK KysKKysJCQkgaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFyaXMiIDsgdGhlbgorKyAgCQkJ CSBDWFhGTEFHUz0iLXB0aHJlYWRzICRDWFhGTEFHUyIKKysJCQkgZWxpZiB0ZXN0ICJ4JGJ1aWxk X29zIiA9ICJ4bWluZzMyIiA7IHRoZW4KKysJCQkJIENYWEZMQUdTPSItbXRocmVhZHMgJENYWEZM QUdTIgorKwkJCSBlbHNlCisrCQkJCUNYWEZMQUdTPSItcHRocmVhZCAkQ1hYRkxBR1MiCisrCQkJ IGZpCisrCQkJIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysv KiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGJvb3N0L3RocmVhZC90aHJlYWQuaHBw PgorK2ludAorK21haW4gKCkKKyt7CisrYm9vc3Q6OnRocmVhZF9ncm91cCB0aHJkczsKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworKyAgOworKyAgcmV0dXJu IDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfY29tcGlsZSAiJExJTkVOTyI7IHRo ZW4gOgorKyAgYXhfY3ZfYm9vc3RfdGhyZWFkPXllcworK2Vsc2UKKysgIGF4X2N2X2Jvb3N0X3Ro cmVhZD1ubworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdC4kYWNfZXh0CisrCQkJIENYWEZMQUdTPSRDWFhGTEFHU19TQVZFCisrCQkJIGFj X2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFgg LWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSck Q1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2Nv bXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6ICRheF9jdl9ib29zdF90aHJlYWQiID4mNQorKyRhc19lY2hvICIkYXhf Y3ZfYm9vc3RfdGhyZWFkIiA+JjY7IH0KKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3RocmVh ZCIgPSAieHllcyI7IHRoZW4KKysgICAgICAgICAgICAgICBpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9 ICJ4c29sYXJpcyIgOyB0aGVuCisrIAkJCQkgIEJPT1NUX0NGTEFHUz0iLXB0aHJlYWRzICRCT09T VF9DRkxBR1MiCisrCQkJICAgZWxpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4bWluZzMyIiA7IHRo ZW4KKysgCQkJCSAgQk9PU1RfQ0ZMQUdTPSItbXRocmVhZHMgJEJPT1NUX0NGTEFHUyIKKysJCQkg ICBlbHNlCisrCQkJCSAgQk9PU1RfQ0ZMQUdTPSItcHRocmVhZCAkQk9PU1RfQ0ZMQUdTIgorKwkJ CSAgIGZpCisrCisrCisrCisrJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9CT09TVF9USFJFQUQgLyoq LyIgPj5jb25mZGVmcy5oCisrCisrCQkJCUJOPWJvb3N0X3RocmVhZAorKwkJCQlmb3IgYXhfbGli IGluICRCTiAkQk4tbXQgJEJOLSRDQyAkQk4tJENDLW10IFwKKysJCQkJCQkgICAJICAkQk4tJEND LW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4g bGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJT SU9OIDsgZG8KKysJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGli JydfbWFpbiIgfCAkYXNfdHJfc2hgCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQorK2lmIGV2YWwgInRl c3QgXCJcJHskYXNfYWNfTGliK3NldH1cIiIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisr TElCUz0iLWwkYXhfbGliICAkTElCUyIKKytjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25m dGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKworK2ludAorK21haW4g KCkKKyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9G CisraWYgYWNfZm5fY3h4X3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CisrICBldmFsICIkYXNf YWNfTGliPXllcyIKKytlbHNlCisrICBldmFsICIkYXNfYWNfTGliPW5vIgorK2ZpCisrcm0gLWYg Y29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisrICAgIGNvbmZ0ZXN0JGFj X2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwor K2ZpCisrZXZhbCBhY19yZXM9XCQkYXNfYWNfTGliCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8g IiRhY19yZXMiID4mNjsgfQorK2lmIGV2YWwgdGVzdCBcInhcJCIkYXNfYWNfTGliIlwiID0geCJ5 ZXMiOyB0aGVuIDoKKysgIEJPT1NUX1RIUkVBRF9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfdGhyZWFk PSJ5ZXMiIGJyZWFrCisrZWxzZQorKyAgbGlua190aHJlYWQ9Im5vIgorK2ZpCisrCisrICAJCQkJ ZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQl7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IENvdWxkIG5vdCBsaW5rIGFn YWluc3QgJGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBh Z2FpbnN0ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkKKysJCQlmaQorKworKyMKKysjIEJvb3N0 OjpJT1N0cmVhbXMKKysjCisrCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZh aWxhYmxlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6SU9T dHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtheF9j dl9ib29zdF9pb3N0cmVhbXMrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrCisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAg JENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25m dGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAk Q1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1Jwor K2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwkJCSBjYXQgY29u ZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmgu ICAqLworKyNpbmNsdWRlIDxib29zdC9pb3N0cmVhbXMvZmlsdGVyaW5nX3N0cmVhbS5ocHA+Cisr CQkJCQkJCQkJCQkJICNpbmNsdWRlIDxib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5nZS5ocHA+Cisr CisraW50CisrbWFpbiAoKQorK3sKKytzdGQ6OnN0cmluZyAgaW5wdXQgPSAiSGVsbG8gV29ybGQh IjsKKysJCQkJCQkJCQkgbmFtZXNwYWNlIGlvID0gYm9vc3Q6Omlvc3RyZWFtczsKKysJCQkJCQkJ CQkgaW86OmZpbHRlcmluZ19pc3RyZWFtICBpbihib29zdDo6bWFrZV9pdGVyYXRvcl9yYW5nZShp bnB1dCkpOworKwkJCQkJCQkJCSByZXR1cm4gMDsKKysKKysgIDsKKysgIHJldHVybiAwOworK30K KytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKysg IGF4X2N2X2Jvb3N0X2lvc3RyZWFtcz15ZXMKKytlbHNlCisrICBheF9jdl9ib29zdF9pb3N0cmVh bXM9bm8KKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3QuJGFjX2V4dAorKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBG TEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu JGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZM QUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19j b21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytmaQorK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfaW9z dHJlYW1zIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2lvc3RyZWFtcyIgPiY2OyB9Cisr CQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9pb3N0cmVhbXMiID0gInh5ZXMiOyB0aGVuCisrCisr JGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9CT09TVF9JT1NUUkVBTVMgLyoqLyIgPj5jb25mZGVmcy5o CisrCisrCQkJCUJOPWJvb3N0X2lvc3RyZWFtcworKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4t JENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJEND LW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4t bWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ct bXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJEND LW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRhc19l Y2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhf bGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4g IiA+JjY7IH0KKytpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0xpYitzZXR9XCIiID0gc2V0OyB0 aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tf bGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0IGNvbmZk ZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAg cmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7 IHRoZW4gOgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgZXZhbCAiJGFzX2Fj X0xpYj1ubyIKKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgXAorKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFj X2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK2V2YWwgYWNfcmVzPVwkJGFzX2FjX0xpYgorKwkg ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRh Y19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKytpZiBldmFsIHRlc3QgXCJ4 XCQiJGFzX2FjX0xpYiJcIiA9IHgieWVzIjsgdGhlbiA6CisrICBCT09TVF9JT1NUUkVBTVNfTElC PSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxpbmtfdGhy ZWFkPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVh ZCIgPSAieG5vIjsgdGhlbgorKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9CisrCQkJCWZp CisrCQkJZmkKKysKKysjCisrIyBCb29zdDo6U2VyaWFsaXphdGlvbgorKyMKKysJCQl7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJv b3N0OjpTZXJpYWxpemF0aW9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6U2VyaWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2 YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlv bitzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNf Y29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1 JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCQkJIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNF T0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUg PGZzdHJlYW0+CisrCQkJCQkJCQkJCQkJICNpbmNsdWRlIDxib29zdC9hcmNoaXZlL3RleHRfb2Fy Y2hpdmUuaHBwPgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjaW5jbHVkZSA8Ym9vc3QvYXJjaGl2ZS90ZXh0X2lhcmNoaXZlLmhwcD4KKysKKytpbnQK KyttYWluICgpCisreworK3N0ZDo6b2ZzdHJlYW0gb2ZzKCJmaWxlbmFtZSIpOworKwkJCQkJCQkJ CWJvb3N0OjphcmNoaXZlOjp0ZXh0X29hcmNoaXZlIG9hKG9mcyk7CisrCQkJCQkJCQkJIHJldHVy biAwOworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90 cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorKyAgYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlv bj15ZXMKKytlbHNlCisrICBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uPW5vCisrZmkKKytybSAt ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQK KysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGls ZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2Fj X2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExE RkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19j dl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb24iID4mNQor KyRhc19lY2hvICIkYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiIgPiY2OyB9CisrCQkJaWYgdGVz dCAieCRheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uIiA9ICJ4eWVzIjsgdGhlbgorKworKyRhc19l Y2hvICIjZGVmaW5lIEhBVkVfQk9PU1RfU0VSSUFMSVpBVElPTiAvKiovIiA+PmNvbmZkZWZzLmgK KysKKysJCQkJQk49Ym9vc3Rfc2VyaWFsaXphdGlvbgorKwkJCQlmb3IgYXhfbGliIGluICRCTiAk Qk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4t JENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAk Qk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1t Z3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4t JENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRh c19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwk YXhfbGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIu Li4gIiA+JjY7IH0KKytpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0xpYitzZXR9XCIiID0gc2V0 OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hl Y2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0IGNv bmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOwor KyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVO TyI7IHRoZW4gOgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgZXZhbCAiJGFz X2FjX0xpYj1ubyIKKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgXAorKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9 JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK2V2YWwgYWNfcmVzPVwkJGFzX2FjX0xpYgor KwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKytpZiBldmFsIHRlc3Qg XCJ4XCQiJGFzX2FjX0xpYiJcIiA9IHgieWVzIjsgdGhlbiA6CisrICBCT09TVF9TRVJJQUxJWkFU SU9OX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKKytlbHNlCisrICBs aW5rX3RocmVhZD0ibm8iCisrZmkKKysKKysgIAkJCQlkb25lCisrCQkJCUJOPWJvb3N0X3dzZXJp YWxpemF0aW9uCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4t JENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIk Qk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19W RVJTSU9OIDsgZG8KKysJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhf bGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQorK2lmIGV2YWwg InRlc3QgXCJcJHskYXNfYWNfTGliK3NldH1cIiIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJT CisrTElCUz0iLWwkYXhfbGliICAkTElCUyIKKytjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5j b25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKworK2ludAorK21h aW4gKCkKKyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FD RU9GCisraWYgYWNfZm5fY3h4X3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CisrICBldmFsICIk YXNfYWNfTGliPXllcyIKKytlbHNlCisrICBldmFsICIkYXNfYWNfTGliPW5vIgorK2ZpCisrcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisrICAgIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElC UworK2ZpCisrZXZhbCBhY19yZXM9XCQkYXNfYWNfTGliCisrCSAgICAgICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2Vj aG8gIiRhY19yZXMiID4mNjsgfQorK2lmIGV2YWwgdGVzdCBcInhcJCIkYXNfYWNfTGliIlwiID0g eCJ5ZXMiOyB0aGVuIDoKKysgIEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQj0iLWwkYXhfbGliIiAg bGlua190aHJlYWQ9InllcyIgYnJlYWsKKytlbHNlCisrICBsaW5rX3RocmVhZD0ibm8iCisrZmkK KysKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRo ZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogQ291bGQg bm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IENvdWxk IG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJCQlmaQorKwkJCWZpCisrCisr IworKyMgQm9vc3Q6OlNpZ25hbHMKKysjCisrCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5 IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9v c3Q6OlNpZ25hbHMgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2F4X2N2X2Jvb3N0X3NpZ25hbHMrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrCisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhD UFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBj b25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1 JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwkJCSBjYXQg Y29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZz LmguICAqLworKyNpbmNsdWRlIDxib29zdC9zaWduYWwuaHBwPgorKworK2ludAorK21haW4gKCkK Kyt7CisrYm9vc3Q6OnNpZ25hbDx2b2lkICgpPiBzaWc7CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiAwOworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19B Q0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorKyAgYXhf Y3ZfYm9vc3Rfc2lnbmFscz15ZXMKKytlbHNlCisrICBheF9jdl9ib29zdF9zaWduYWxzPW5vCisr ZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 LiRhY19leHQKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisr YWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg PiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQ RkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJf Z251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3NpZ25hbHMiID4m NQorKyRhc19lY2hvICIkYXhfY3ZfYm9vc3Rfc2lnbmFscyIgPiY2OyB9CisrCQkJaWYgdGVzdCAi eCRheF9jdl9ib29zdF9zaWduYWxzIiA9ICJ4eWVzIjsgdGhlbgorKworKyRhc19lY2hvICIjZGVm aW5lIEhBVkVfQk9PU1RfU0lHTkFMUyAvKiovIiA+PmNvbmZkZWZzLmgKKysKKysJCQkJQk49Ym9v c3Rfc2lnbmFscworKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJO LSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli JEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdf VkVSU0lPTiA7IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4 X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNfZWNo b19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiBldmFs ICJ0ZXN0IFwiXCR7JGFzX2FjX0xpYitzZXR9XCIiID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElC UworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+ Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKytt YWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19B Q0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgorKyAgZXZhbCAi JGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQorK3Jt IC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorKyAgICBjb25mdGVz dCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJ QlMKKytmaQorK2V2YWwgYWNfcmVzPVwkJGFzX2FjX0xpYgorKwkgICAgICAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19l Y2hvICIkYWNfcmVzIiA+JjY7IH0KKytpZiBldmFsIHRlc3QgXCJ4XCQiJGFzX2FjX0xpYiJcIiA9 IHgieWVzIjsgdGhlbiA6CisrICBCT09TVF9TSUdOQUxTX0xJQj0iLWwkYXhfbGliIiAgbGlua19z aWduYWxzPSJ5ZXMiIGJyZWFrCisrZWxzZQorKyAgbGlua19zaWduYWxzPSJubyIKKytmaQorKwor KyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3NpZ25hbHMiID0gInhubyI7IHRoZW4K KysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogQ291bGQgbm90 IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5v dCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJCQlmaQorKwkJCWZpCisrCisrIwor KyMgQm9vc3Q6OkRhdGVfVGltZQorKyMKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpEYXRlX1RpbWUgbGlicmFy eSBpcyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJv b3N0OjpEYXRlX1RpbWUgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0 ICIke2F4X2N2X2Jvb3N0X2RhdGVfdGltZStzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0n JENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNf ZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCQkJ IGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29u ZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGJvb3N0L2RhdGVfdGltZS9ncmVnb3JpYW4vZ3JlZ29y aWFuX3R5cGVzLmhwcD4KKysKKytpbnQKKyttYWluICgpCisreworK3VzaW5nIG5hbWVzcGFjZSBi b29zdDo6Z3JlZ29yaWFuOyBkYXRlIGQoMjAwMixKYW4sMTApOworKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKysKKysgIDsKKysgIHJldHVybiAwOworK30K KytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKysg IGF4X2N2X2Jvb3N0X2RhdGVfdGltZT15ZXMKKytlbHNlCisrICBheF9jdl9ib29zdF9kYXRlX3Rp bWU9bm8KKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3QuJGFjX2V4dAorKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBG TEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu JGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZM QUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19j b21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytmaQorK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfZGF0 ZV90aW1lIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgPiY2OyB9Cisr CQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9kYXRlX3RpbWUiID0gInh5ZXMiOyB0aGVuCisrCisr JGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9CT09TVF9EQVRFX1RJTUUgLyoqLyIgPj5jb25mZGVmcy5o CisrCisrCQkJCUJOPWJvb3N0X2RhdGVfdGltZQorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4t JENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJEND LW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4t bWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ct bXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJEND LW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRhc19l Y2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhf bGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4g IiA+JjY7IH0KKytpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0xpYitzZXR9XCIiID0gc2V0OyB0 aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tf bGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0IGNvbmZk ZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAg cmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7 IHRoZW4gOgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgZXZhbCAiJGFzX2Fj X0xpYj1ubyIKKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgXAorKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFj X2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK2V2YWwgYWNfcmVzPVwkJGFzX2FjX0xpYgorKwkg ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRh Y19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKytpZiBldmFsIHRlc3QgXCJ4 XCQiJGFzX2FjX0xpYiJcIiA9IHgieWVzIjsgdGhlbiA6CisrICBCT09TVF9EQVRFX1RJTUVfTElC PSItbCRheF9saWIiICBsaW5rX2RhdGVfdGltZT0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxpbmtf ZGF0ZV90aW1lPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5r X2RhdGVfdGltZSI9Im5vIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIg PiY2O30KKysJCQkJZmkKKysJCQlmaQorKworKyMKKysjIEJvb3N0OjpSZWdleAorKyMKKysJCQl7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIg dGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4u ICIgPiY2OyB9CisraWYgdGVzdCAiJHtheF9jdl9ib29zdF9yZWdleCtzZXR9IiA9IHNldDsgdGhl biA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkgYWNfZXh0 PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAk Q1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFgg LW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRl c3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGls ZXJfZ251CisrCisrCQkJIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19l eHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGJvb3N0L3JlZ2V4LmhwcD4K KysKKytpbnQKKyttYWluICgpCisreworK2Jvb3N0OjpyZWdleCByKCk7IHJldHVybiAwOworKyAg OworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfY29tcGlsZSAi JExJTkVOTyI7IHRoZW4gOgorKyAgYXhfY3ZfYm9vc3RfcmVnZXg9eWVzCisrZWxzZQorKyAgYXhf Y3ZfYm9vc3RfcmVnZXg9bm8KKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSck Q1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxB R1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19l eGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJT ID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytm aQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhf Y3ZfYm9vc3RfcmVnZXgiID4mNQorKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfcmVnZXgiID4mNjsg fQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfcmVnZXgiID0gInh5ZXMiOyB0aGVuCisrCisr JGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9CT09TVF9SRUdFWCAvKiovIiA+PmNvbmZkZWZzLmgKKysK KysJCQkJQk49Ym9vc3RfcmVnZXgKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4t JENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4t bWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJO LW1ndy1zICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9P U1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNf Y3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9 CisraWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19MaWIrc2V0fVwiIiA9IHNldDsgdGhlbiA6Cisr ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZl X0xJQlM9JExJQlMKKytMSUJTPSItbCRheF9saWIgICRMSUJTIgorK2NhdCBjb25mZGVmcy5oIC0g PDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisr CisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gbWFpbiAoKTsKKysgIDsKKysgIHJldHVybiAw OworK30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoK KysgIGV2YWwgIiRhc19hY19MaWI9eWVzIgorK2Vsc2UKKysgIGV2YWwgIiRhc19hY19MaWI9bm8i CisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKysg ICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19s aWJfc2F2ZV9MSUJTCisrZmkKKytldmFsIGFjX3Jlcz1cJCRhc19hY19MaWIKKysJICAgICAgIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfcmVzIiA+ JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisraWYgZXZhbCB0ZXN0IFwieFwkIiRhc19h Y19MaWIiXCIgPSB4InllcyI7IHRoZW4gOgorKyAgQk9PU1RfUkVHRVhfTElCPSItbCRheF9saWIi ICBsaW5rX3RocmVhZD0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxpbmtfdGhyZWFkPSJubyIKKytm aQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsg dGhlbgorKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBDb3Vs ZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291 bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9CisrCQkJCWZpCisrCQkJZmkKKysK KysjCisrIyBCb29zdDo6QVNJTzogaXQgbmVlZHMgQm9vc3QuU3lzdGVtLCBCb29zdC5SZWdleCwg Qm9vc3QuVGhyZWFkIGFuZAorKyMgQm9vc3QuRGF0ZVRpbWUsIGJ1dCBkb2VzIG5vdCBwcm9kdWNl IGFueSAob3RoZXIpIGxpYnJhcnkuCisrIworKwkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkFzaW8gbGlicmFyeSBp cyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0 OjpBc2lvIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtheF9j dl9ib29zdF9hc2lvK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZWxzZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBG TEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu JGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZM QUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19j b21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJCQkgY2F0IGNvbmZkZWZz LmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K KysjaW5jbHVkZSA8Ym9vc3QvYXNpby5ocHA+CisraW50CisrbWFpbiAoKQorK3sKKytib29zdDo6 YXNpbzo6aW9fc2VydmljZSBpbzsKKysJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ym9vc3Q6OnN5c3RlbTo6ZXJyb3JfY29kZSB0aW1lcl9yZXN1bHQ7CisrCSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb3N0Ojphc2lvOjpkZWFkbGluZV90aW1lciB0KGlvKTsKKysJ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5jYW5jZWwoKTsKKysJICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW8ucnVuX29uZSgpOworKwkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytf QUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKysgIGF4 X2N2X2Jvb3N0X2FzaW89eWVzCisrZWxzZQorKyAgYXhfY3ZfYm9vc3RfYXNpbz1ubworK2ZpCisr cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNf ZXh0CisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2Nv bXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScK KythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdT ICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0k YWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRheF9jdl9ib29zdF9hc2lvIiA+JjUKKyskYXNf ZWNobyAiJGF4X2N2X2Jvb3N0X2FzaW8iID4mNjsgfQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9v c3RfYXNpbyIgPSAieHllcyI7IHRoZW4KKysKKyskYXNfZWNobyAiI2RlZmluZSBIQVZFX0JPT1NU X0FTSU8gLyoqLyIgPj5jb25mZGVmcy5oCisrCisrCQkJICAgQk9PU1RfQVNJT19MSUI9IiR7Qk9P U1RfU1lTVEVNX0xJQn0gJHtCT09TVF9USFJFQURfTElCfSIKKysJCQkgICBCT09TVF9BU0lPX0xJ Qj0iJHtCT09TVF9BU0lPX0xJQn0gJHtCT09TVF9EQVRFX1RJTUVfTElCfSIKKysJCQkgICBCT09T VF9BU0lPX0xJQj0iJHtCT09TVF9BU0lPX0xJQn0gJHtCT09TVF9SRUdFWF9MSUJ9IgorKwkJCSAg IEJPT1NUX0FTSU9fTElCPSIke0JPT1NUX0FTSU9fTElCfSAke0JPT1NUX1NFUklBTElaQVRJT05f TElCfSIKKysJCQlmaQorKworKyMKKysjIFN1cHBvcnQgZm9yIFB5dGhvbiBhbmQgTVBJIChNUElD SDIsIEJvb3N0OjpNUEksIEJvb3N0OjpQeXRob24sCisrIyBCb29zdDo6U2VyaWFsaXphdGlvbiwg Qm9vc3Q6Ok1QSV9QeXRob24pCisrIyBOb3RlOiBvbiBzb21lIGRpc3RyaWJ1dGlvbnMgKGUuZy4s IERlYmlhbiksIEJvb3N0Lk1QSSB1c2VzIE9wZW5NUEkgcmF0aGVyCisrIyAgICAgICB0aGFuIE1Q SUNIMgorKyMKKysJCQlDUFBGTEFHU19PUklHPSIke0NQUEZMQUdTfSIKKysJCQlDUFBGTEFHUz0i JHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdTfSAke01QSUdFTl9DRkxBR1N9IgorKyMJCQlDUFBG TEFHUz0iJHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdTfSAke01QSUNIMl9DRkxBR1N9IgorKyMJ CQlDUFBGTEFHUz0iJHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdTfSAke09QRU5NUElfQ0ZMQUdT fSIKKysJCQlMREZMQUdTX09SSUc9IiR7TERGTEFHU30iCisrCQkJTERGTEFHUz0iJHtMREZMQUdT fSAke1BZVEhPTl9MSUJTfSAke1BZVEhPTl9BRERfTElCU30gJHtNUElHRU5fTElCU30iCisrIwkJ CUxERkxBR1M9IiR7TERGTEFHU30gJHtQWVRIT05fTElCU30gJHtQWVRIT05fQUREX0xJQlN9ICR7 TVBJQ0gyX0xJQlN9IgorKyMJCQlMREZMQUdTPSIke0xERkxBR1N9ICR7UFlUSE9OX0xJQlN9ICR7 UFlUSE9OX0FERF9MSUJTfSAke09QRU5NUElfTElCU30iCisrCisrIworKyMgQm9vc3Q6OlB5dGhv bgorKyMKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNr aW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpQeXRob24gbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpQeXRob24gbGlicmFyeSBp cyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3B5dGhvbitz ZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysKKysJCQlhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21w aWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisr YWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAk TERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFj X2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKysJCSAgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FD RU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRl IDxib29zdC9weXRob24uaHBwPgorKwkJCWNoYXIgY29uc3QqIGdyZWV0KCkgeyByZXR1cm4gImhl bGxvIjsgfQorKwkJCUJPT1NUX1BZVEhPTl9NT0RVTEUoaGVsbG9fZXh0KSB7IGJvb3N0OjpweXRo b246OmRlZigiZ3JlZXQiLCBncmVldCk7fQorKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7 CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisraWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIk TElORU5PIjsgdGhlbiA6CisrICBheF9jdl9ib29zdF9weXRob249eWVzCisrZWxzZQorKyAgYXhf Y3ZfYm9vc3RfcHl0aG9uPW5vCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0n JENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNf ZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisr ZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4 X2N2X2Jvb3N0X3B5dGhvbiIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF9weXRob24iID4m NjsgfQorKworKwkJCUJPT1NUX1BZVEhPTl9MSUI9Ii1sYm9vc3RfcHl0aG9uICR7UFlUSE9OX0xJ QlN9ICR7UFlUSE9OX0FERF9MSUJTfSIKKysKKysKKysjCisrIyBCb29zdDo6TVBJCisrIworKwkJ CXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhl ciB0aGUgQm9vc3Q6Ok1waSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6Ok1waSBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAi ID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfbXBpK3NldH0iID0gc2V0OyB0aGVuIDoK KysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKwkJCSBhY19leHQ9Y3Bw CisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhG TEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBj b25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4k YWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9n bnUKKysKKysJCQkgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvbXBpLmhwcD4KKytpbnQK KyttYWluICgpCisreworKworKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gMDsKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhf dHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKysgIGF4X2N2X2Jvb3N0X21waT15ZXMKKytl bHNlCisrICBheF9jdl9ib29zdF9tcGk9bm8KKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKwkJCSBhY19leHQ9Y3BwCisr YWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25m dGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUK KysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiAkYXhfY3ZfYm9vc3RfbXBpIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X21waSIg PiY2OyB9CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9tcGkiID0gInh5ZXMiOyB0aGVuCisr CisrJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9CT09TVF9NUEkgLyoqLyIgPj5jb25mZGVmcy5oCisr CisrCQkJCUJOPWJvb3N0X21waQorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0k Q0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1t Z3ctbXQgJEJOLW1ndy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4t bWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKworKwkJCQkgICAg YXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9z aGAKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZv ciBtYWluIGluIC1sJGF4X2xpYiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4g aW4gLWwkYXhfbGliLi4uICIgPiY2OyB9CisraWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19MaWIr c2V0fVwiIiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbCRheF9saWIgICRM SUJTIgorK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBl bmQgY29uZmRlZnMuaC4gICovCisrCisrCisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gbWFp biAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5 X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKKysgIGV2YWwgIiRhc19hY19MaWI9eWVzIgorK2Vsc2UK KysgIGV2YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IFwKKysgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRh Y19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKytldmFsIGFjX3Jlcz1c JCRhc19hY19MaWIKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Cisr aWYgZXZhbCB0ZXN0IFwieFwkIiRhc19hY19MaWIiXCIgPSB4InllcyI7IHRoZW4gOgorKyAgQk9P U1RfTVBJX0xJQj0iLWwkYXhfbGliIiAgbGlua19tcGk9InllcyIgYnJlYWsKKytlbHNlCisrICBs aW5rX21waT0ibm8iCisrZmkKKysKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua19t cGkiID0gInhubyI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQorKyRhc19lY2hv ICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJCQll bHNlCisrCQkJCQlCT09TVF9NUElfTElCPSIke0JPT1NUX01QSV9MSUJ9ICR7Qk9PU1RfU0VSSUFM SVpBVElPTl9MSUJ9ICR7TVBJR0VOX0xJQlN9IgorKwkJCQlmaQorKwkJCWZpCisrCisrIworKyMg Qm9vc3Q6Ok1QSV9QeXRob24KKysjCisrCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6TXBpX1B5dGhvbiBsaWJyYXJ5 IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9v c3Q6Ok1waV9QeXRob24gbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0 ICIke2F4X2N2X2Jvb3N0X21waV9weXRob24rc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrCisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9 JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBG TEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ QlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwkJ CSBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNv bmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC9tcGkvcHl0aG9uL3NlcmlhbGl6ZS5ocHA+ CisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysJICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIDA7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisraWYg YWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CisrICBheF9jdl9ib29zdF9t cGlfcHl0aG9uPXllcworK2Vsc2UKKysgIGF4X2N2X2Jvb3N0X21waV9weXRob249bm8KKytmaQor K3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFj X2V4dAorKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19j b21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn CisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFH UyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9 JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfbXBpX3B5dGhvbiIgPiY1 CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF9tcGlfcHl0aG9uIiA+JjY7IH0KKysJCQlpZiB0ZXN0 ICJ4JGF4X2N2X2Jvb3N0X21waV9weXRob24iID0gInh5ZXMiOyB0aGVuCisrCisrJGFzX2VjaG8g IiNkZWZpbmUgSEFWRV9CT09TVF9NUElfUFlUSE9OIC8qKi8iID4+Y29uZmRlZnMuaAorKworKwkJ CQlCTj1ib29zdF9tcGlfcHl0aG9uCisrIwkJCQlCTj1ib29zdF9tcGlfcHl0aG9uLXB5MjUKKysJ CQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4t JENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJEND IGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1zICRCTi0kQ0MtbXQtJEJPT1NU TElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2 X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCisreyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQor K2lmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfTGliK3NldH1cIiIgPSBzZXQ7IHRoZW4gOgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJfc2F2ZV9M SUJTPSRMSUJTCisrTElCUz0iLWwkYXhfbGliICAkTElCUyIKKytjYXQgY29uZmRlZnMuaCAtIDw8 X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKwor K2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7CisrICByZXR1cm4gMDsK Kyt9CisrX0FDRU9GCisraWYgYWNfZm5fY3h4X3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6Cisr ICBldmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICBldmFsICIkYXNfYWNfTGliPW5vIgor K2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisrICAg IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGli X3NhdmVfTElCUworK2ZpCisrZXZhbCBhY19yZXM9XCQkYXNfYWNfTGliCisrCSAgICAgICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1 CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2lmIGV2YWwgdGVzdCBcInhcJCIkYXNfYWNf TGliIlwiID0geCJ5ZXMiOyB0aGVuIDoKKysgIEJPT1NUX01QSV9QWVRIT05fTElCPSItbCRheF9s aWIiICBsaW5rX21waV9weXRob249InllcyIgYnJlYWsKKytlbHNlCisrICBsaW5rX21waV9weXRo b249Im5vIgorK2ZpCisrCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfbXBpX3B5 dGhvbiIgPSAieG5vIjsgdGhlbgorKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFzX2Vj aG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9CisrCQkJ CWVsc2UKKysJCQkJCUJPT1NUX01QSV9QWVRIT05fTElCPSIke0JPT1NUX01QSV9QWVRIT05fTElC fSAke0JPT1NUX1NFUklBTElaQVRJT05fTElCfSIKKysJCQkJCUJPT1NUX01QSV9QWVRIT05fTElC PSIke0JPT1NUX01QSV9QWVRIT05fTElCfSAke0JPT1NUX1BZVEhPTl9MSUJ9IgorKwkJCQkJQk9P U1RfTVBJX1BZVEhPTl9MSUI9IiR7Qk9PU1RfTVBJX1BZVEhPTl9MSUJ9ICR7Qk9PU1RfTVBJX0xJ Qn0iCisrCQkJCQlCT09TVF9NUElfUFlUSE9OX0xJQj0iJHtCT09TVF9NUElfUFlUSE9OX0xJQn0g JHtNUElHRU5fTElCU30iCisrCQkJCWZpCisrCQkJZmkKKysKKysjCisrIyBFbmQgb2Ygc2VjdGlv biBvbiBzdXBwb3J0IGZvciBNUEkKKysjCisrCQkJQ1BQRkxBR1M9IiR7Q1BQRkxBR1NfT1JJR30i CisrCQkJTERGTEFHUz0iJHtMREZMQUdTX09SSUd9IgorKworKyMKKysjIEJvb3N0OjpVbml0VGVz dEZyYW1ld29yaworKyMKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yayBsaWJyYXJ5 IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9v c3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHtheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrK3NldH0iID0gc2V0OyB0 aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKwkJCSBhY19l eHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1j ICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENY WCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21w aWxlcl9nbnUKKysKKysJCQkgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFj X2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvdGVzdC91bml0 X3Rlc3QuaHBwPgorK2ludAorK21haW4gKCkKKyt7CisrdXNpbmcgYm9vc3Q6OnVuaXRfdGVzdDo6 dGVzdF9zdWl0ZTsKKysJCQkJCSAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZSogdGVzdD0gQk9P U1RfVEVTVF9TVUlURSggIlVuaXQgdGVzdCBleGFtcGxlIDEiICk7IHJldHVybiAwOworKyAgOwor KyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfY29tcGlsZSAiJExJ TkVOTyI7IHRoZW4gOgorKyAgYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaz15ZXMKKytl bHNlCisrICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrPW5vCisrZmkKKytybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJ CQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0n JENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xp bms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxB R1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9j eHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID4m NQorKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPiY2OyB9Cisr CQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrIiA9ICJ4eWVzIjsg dGhlbgorKworKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S SyAvKiovIiA+PmNvbmZkZWZzLmgKKysKKysJCQlCTj1ib29zdF91bml0X3Rlc3RfZnJhbWV3b3Jr CisrICAgIAkJc2F2ZWRfbGRmbGFncz0iJHtMREZMQUdTfSIKKysJCQlmb3IgYXhfbGliIGluICRC TiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0k Q0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1n dyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAk Qk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKyAgICAgICAg ICAgICAgICBMREZMQUdTPSIke0xERkxBR1N9IC1sJGF4X2xpYiIKKysgICAgCQkJeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB0aGUgbmFtZSBvZiB0aGUg Qm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIHRoZSBuYW1lIG9mIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFyeS4uLiAi ID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaytzZXR9 IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysK KysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGls ZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2Fj X2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExE RkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19j dl9jeHhfY29tcGlsZXJfZ251CisrCisrICAgICAgICAgICAgICAgY2F0IGNvbmZkZWZzLmggLSA8 PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5j bHVkZSA8Ym9vc3QvdGVzdC91bml0X3Rlc3QuaHBwPgorK2ludAorK21haW4gKCkKKyt7CisrdXNp bmcgYm9vc3Q6OnVuaXRfdGVzdDo6dGVzdF9zdWl0ZTsKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGVzdF9zdWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9TVUlURSggIlVuaXQgdGVzdCBl eGFtcGxlIDEiICk7IHJldHVybiAwOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgor K2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgorKyAgbGlua190aHJlYWQ9 InllcyIKKytlbHNlCisrICBsaW5rX3RocmVhZD0ibm8iCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKysgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNv bmZ0ZXN0LiRhY19leHQKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQ RkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhG TEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNf Y29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3Vu aXRfdGVzdF9mcmFtZXdvcmsiID4mNQorKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0 X2ZyYW1ld29yayIgPiY2OyB9CisrICAgICAgICAgICAgICAgIExERkxBR1M9IiR7c2F2ZWRfbGRm bGFnc30iCisrCQkJICAgIGlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInh5ZXMiOyB0aGVuCisr ICAgICAgICAgICAgICAgICAgICBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQj0iLWwkYXhf bGliIgorKworKwkJCQkJYnJlYWsKKysJCQkJZmkKKysgICAgICAgICAgICAgIGRvbmUKKysJCQkg ICAgaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgorKwkJCQkgICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IENvdWxkIG5vdCBsaW5rIGFnYWluc3Qg JGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0 ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkKKysJCQlmaQorKworKworKwkJZmkKKysgICAgICAg IENQUEZMQUdTPSIkQ1BQRkxBR1NfU0FWRUQiCisrICAgICAgICBMREZMQUdTPSIkTERGTEFHU19T QVZFRCIKKysKKysJZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrIyBTdXBwb3J0IGZvciBNeVNRTCBiYWNrZW5kIChDIGNsaWVudCBBUEkpOiBodHRwOi8vd3d3 Lm15c3FsLm9yZworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtYmFj a2VuZC1teXNxbCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfYmFja2VuZF9teXNxbCtz ZXR9IiA9IHNldDsgdGhlbiA6CisrICBlbmFibGV2YWw9JGVuYWJsZV9iYWNrZW5kX215c3FsOyAg aWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKyAgICAgIAkgZW5hYmxlX2JhY2tlbmRf bXlzcWw9bm8KKysgICAgICBlbHNlCisrCSBlbmFibGVfYmFja2VuZF9teXNxbD15ZXMKKysgICAg ICBmaQorK2Vsc2UKKysgICBlbmFibGVfYmFja2VuZF9teXNxbD1ubworKworK2ZpCisrCisrCisr aWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9teXNxbCIgPSAieHllcyI7IHRoZW4KKysgICBNWVNR TF9ESVJTPSJteXNxbCIKKysjICAgTVlTUUxfUkVRX1ZFUlNJT049IjMuMC4wIgorKworKwkjCisr CSMgU2V0IHVwIGNvbmZpZ3VyZSBzY3JpcHQgbWFjcm9zCisrCSMKKysKKysjIENoZWNrIHdoZXRo ZXIgLS13aXRoLW15c3FsIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfbXlzcWwrc2V0fSIg PSBzZXQ7IHRoZW4gOgorKyAgd2l0aHZhbD0kd2l0aF9teXNxbDsgTVlTUUxfbGliX2NoZWNrPSIk d2l0aF9teXNxbC9saWI2NC9teXNxbCAkd2l0aF9teXNxbC9saWIvbXlzcWwgJHdpdGhfbXlzcWwv bGliNjQgJHdpdGhfbXlzcWwvbGliIgorKwkJTVlTUUxfaW5jX2NoZWNrPSIkd2l0aF9teXNxbC9p bmNsdWRlICR3aXRoX215c3FsL2luY2x1ZGUvbXlzcWwiCisrCQlNWVNRTF9iaW5fY2hlY2s9IiR3 aXRoX215c3FsL2JpbiIKKytlbHNlCisrICBNWVNRTF9saWJfY2hlY2s9Ii91c3IvbGliNjQgL3Vz ci9saWIgL3Vzci9saWI2NC9teXNxbCAvdXNyL2xpYi9teXNxbCAvdXNyL2xvY2FsL2xpYjY0IC91 c3IvbG9jYWwvbGliIC91c3IvbG9jYWwvbGliL215c3FsIC91c3IvbG9jYWwvbXlzcWwvbGliIC91 c3IvbG9jYWwvbXlzcWwvbGliL215c3FsIC9vcHQvbXlzcWwvbGliIC9vcHQvbXlzcWwvbGliL215 c3FsIgorKwkJTVlTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUvbXlzcWwgL3Vzci9sb2NhbC9p bmNsdWRlL215c3FsIC91c3IvbG9jYWwvbXlzcWwvaW5jbHVkZSAvdXNyL2xvY2FsL215c3FsL2lu Y2x1ZGUvbXlzcWwgL29wdC9teXNxbC9pbmNsdWRlL215c3FsIgorKwkJTVlTUUxfYmluX2NoZWNr PSIvdXNyL2JpbiAvdXNyL2xvY2FsL2JpbiAvdXNyL2xvY2FsL215c3FsL2JpbiIKKytmaQorKwor KworKworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtbXlzcWwtbGliIHdhcyBnaXZlbi4KKytpZiB0 ZXN0ICIke3dpdGhfbXlzcWxfbGliK3NldH0iID0gc2V0OyB0aGVuIDoKKysgIHdpdGh2YWw9JHdp dGhfbXlzcWxfbGliOyBNWVNRTF9saWJfY2hlY2s9IiR3aXRoX215c3FsX2xpYiAkd2l0aF9teXNx bF9saWIvbGliNjQgJHdpdGhfbXlzcWxfbGliL2xpYiAkd2l0aF9teXNxbF9saWIvbGliNjQvbXlz cWwgJHdpdGhfbXlzcWxfbGliL2xpYi9teXNxbCIKKytmaQorKworKworKworKyMgQ2hlY2sgd2hl dGhlciAtLXdpdGgtbXlzcWwtaW5jbHVkZSB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX215 c3FsX2luY2x1ZGUrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgd2l0aHZhbD0kd2l0aF9teXNxbF9p bmNsdWRlOyBNWVNRTF9pbmNfY2hlY2s9IiR3aXRoX215c3FsX2luY2x1ZGUgJHdpdGhfbXlzcWxf aW5jbHVkZS9pbmNsdWRlICR3aXRoX215c3FsX2luY2x1ZGUvaW5jbHVkZS9teXNxbCIKKytmaQor KworKworKworKyAgICAjCisrCSMgTG9vayBmb3IgTXlTUUwgQ29uZmlndXJhdGlvbiBTY3JpcHQK KysJIworKwl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5n IGZvciBNeVNRTCBjb25maWd1cmF0aW9uIHNjcmlwdCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yIE15U1FMIGNvbmZpZ3VyYXRpb24gc2NyaXB0Li4uICIgPiY2OyB9CisrCU1ZU1FMX0NP TkZJRz0KKysJTVlTUUxfYmluZGlyPQorKwlmb3IgbSBpbiAkTVlTUUxfYmluX2NoZWNrCisrCQlk bworKwkJCWlmIHRlc3QgLWQgIiRtIiAmJiB0ZXN0IC1mICIkbS9teXNxbF9jb25maWciCisrCQkJ dGhlbgorKwkJCQlNWVNRTF9DT05GSUc9JG0vbXlzcWxfY29uZmlnCisrCQkJCU1ZU1FMX2JpbmRp cj0kbQorKwkJCWJyZWFrCisrCQlmaQorKwlkb25lCisrCisrCWlmIHRlc3QgLXogIiRNWVNRTF9i aW5kaXIiCisrCXRoZW4KKysJCWFzX2ZuX2Vycm9yICQ/ICJEaWRuJ3QgZmluZCAkTVlTUUxfQ09O RklHIGJpbmFyeSBpbiAnJE1ZU1FMX2Jpbl9jaGVjayciICIkTElORU5PIiA1CisrCWZpCisrCisr CWNhc2UgIiRNWVNRTF9iaW5kaXIiIGluCisrCQkvKiApIDs7CisrCQkqICkgIGFzX2ZuX2Vycm9y ICQ/ICJUaGUgTXlTUUwgYmluYXJ5IGRpcmVjdG9yeSAoJE1ZU1FMX2JpbmRpcikgbXVzdCBiZSBh biBhYnNvbHV0ZSBwYXRoLiIgIiRMSU5FTk8iIDUgOzsKKysJZXNhYworKworKwl7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJE1ZU1FMX0NPTkZJRyIgPiY1 CisrJGFzX2VjaG8gIiRNWVNRTF9DT05GSUciID4mNjsgfQorKworKyMJQUNfUEFUSF9QUk9HKE1Z U1FMX0NPTkZJRywgbXlzcWxfY29uZmlnLCAkTVlTUUxfYmluZGlyKQorKworKwkjCisrCSMgRGVj aWRlIHdoaWNoIEMgQVBJIGxpYnJhcnkgdG8gdXNlLCBiYXNlZCBvbiB0aHJlYWQgc3VwcG9ydAor KwkjCisrCWlmIHRlc3QgIngkYWN4X3B0aHJlYWRfb2siID0geHllcworKwl0aGVuCisrCQlNWVNR TF9DX0xJQj1teXNxbGNsaWVudF9yCisrCQlNWVNRTF9MSUJfT1BUSU9OPWxpYnNfcgorKwllbHNl CisrCQlNWVNRTF9DX0xJQj1teXNxbGNsaWVudAorKwkJTVlTUUxfTElCX09QVElPTj1saWJzCisr CWZpCisrCisrCWlmIHRlc3QgIngke01ZU1FMX0NPTkZJR30xIiA9ICJ4MSIKKysJdGhlbgorKwkJ TVlTUUxfVkVSU0lPTj1gJHtNWVNRTF9DT05GSUd9IC0tdmVyc2lvbmAKKysJCU1ZU1FMX0NGTEFH Uz1gJHtNWVNRTF9DT05GSUd9IC0tY2ZsYWdzYAorKwkJTVlTUUxfTElCUz1gJHtNWVNRTF9DT05G SUd9IC0tJHtNWVNRTF9MSUJfT1BUSU9OfWAKKysJZWxzZQorKwkJIworKwkJIyBMb29rIGZvciBN eVNRTCBDIEFQSSBsaWJyYXJ5CisrCQkjCisrCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIGZvciBNeVNRTCBsaWJyYXJ5IGRpcmVjdG9yeSIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIE15U1FMIGxpYnJhcnkgZGlyZWN0b3J5Li4uICIgPiY2 OyB9CisrCQlNWVNRTF9saWJkaXI9CisrCQlmb3IgbSBpbiAkTVlTUUxfbGliX2NoZWNrCisrCQlk bworKwkJCWlmIHRlc3QgLWQgIiRtIiAmJiBcCisrCQkJCSh0ZXN0IC1mICIkbS9saWIkTVlTUUxf Q19MSUIuc28iIFwKKysJCQkJfHwgdGVzdCAtZiAiJG0vbGliJE1ZU1FMX0NfTElCLmEiKQorKwkJ CXRoZW4KKysJCQkJTVlTUUxfbGliZGlyPSRtCisrCQkJCWJyZWFrCisrCQkJZmkKKysJCWRvbmUK KysKKysJCWlmIHRlc3QgLXogIiRNWVNRTF9saWJkaXIiCisrCQl0aGVuCisrCQkJYXNfZm5fZXJy b3IgJD8gIkRpZG4ndCBmaW5kICRNWVNRTF9DX0xJQiBsaWJyYXJ5IGluICckTVlTUUxfbGliX2No ZWNrJyIgIiRMSU5FTk8iIDUKKysJCWZpCisrCisrCQljYXNlICIkTVlTUUxfbGliZGlyIiBpbgor KwkJCS8qICkgOzsKKysJCQkqICkgIGFzX2ZuX2Vycm9yICQ/ICJUaGUgTXlTUUwgbGlicmFyeSBk aXJlY3RvcnkgKCRNWVNRTF9saWJkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC4iICIkTElO RU5PIiA1IDs7CisrCQllc2FjCisrCisrCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogJE1ZU1FMX2xpYmRpciIgPiY1CisrJGFzX2VjaG8gIiRNWVNRTF9s aWJkaXIiID4mNjsgfQorKworKyMJCWNhc2UgIiRNWVNRTF9saWJkaXIiIGluCisrIwkJICAvdXNy L2xpYikgOzsKKysjCQkgICopIExERkxBR1M9IiRMREZMQUdTIC1MJHtNWVNRTF9saWJkaXJ9IiA7 OworKyMJCWVzYWMKKysKKysJCSMKKysJCSMgTG9vayBmb3IgTXlTUUwgQyBBUEkgaGVhZGVycwor KwkJIworKwkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyBmb3IgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IGZvciBNeVNRTCBpbmNsdWRlIGRpcmVjdG9yeS4uLiAiID4mNjsgfQorKwkJTVlTUUxfaW5jZGly PQorKwkJZm9yIG0gaW4gJE1ZU1FMX2luY19jaGVjaworKwkJZG8KKysJCQlpZiB0ZXN0IC1kICIk bSIgJiYgdGVzdCAtZiAiJG0vbXlzcWwuaCIKKysJCQl0aGVuCisrCQkJCU1ZU1FMX2luY2Rpcj0k bQorKwkJCQlicmVhaworKwkJCWZpCisrCQlkb25lCisrCisrCQlpZiB0ZXN0IC16ICIkTVlTUUxf aW5jZGlyIgorKwkJdGhlbgorKwkJCWFzX2ZuX2Vycm9yICQ/ICJEaWRuJ3QgZmluZCB0aGUgTXlT UUwgaW5jbHVkZSBkaXIgaW4gJyRNWVNRTF9pbmNfY2hlY2snIiAiJExJTkVOTyIgNQorKwkJZmkK KysKKysJCWNhc2UgIiRNWVNRTF9pbmNkaXIiIGluCisrCQkJIC8qICkgOzsKKysJCQkgKiApICBh c19mbl9lcnJvciAkPyAiVGhlIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5ICgkTVlTUUxfaW5jZGly KSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiAiJExJTkVOTyIgNSA7OworKwkJZXNhYworKwor KwkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRNWVNR TF9pbmNkaXIiID4mNQorKyRhc19lY2hvICIkTVlTUUxfaW5jZGlyIiA+JjY7IH0KKysKKysJCU1Z U1FMX1ZFUlNJT049YGdyZXAgImRlZmluZSBNWVNRTF9TRVJWRVJfVkVSU0lPTiIgJE1ZU1FMX2lu Y2Rpci9teXNxbF92ZXJzaW9uLmggfCBjdXQgLWRcIiAtZjJgCisrCQlNWVNRTF9DRkxBR1M9Ii1J JHtNWVNRTF9pbmNkaXJ9IgorKwkJTVlTUUxfTElCUz0iLUwke01ZU1FMX2xpYmRpcn0gLWwke01Z U1FMX0NfTElCfSIKKysJZmkKKysKKysKKysKKysKKysKKysJc2F2ZV9MSUJTPSIkTElCUyIKKysJ TElCUz0iJExJQlMgJE1ZU1FMX0xJQlMiCisrCWFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xp Yl8kTVlTUUxfQ19MSUInJ19teXNxbF9zdG9yZV9yZXN1bHQiIHwgJGFzX3RyX3NoYAorK3sgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIG15c3FsX3N0 b3JlX3Jlc3VsdCBpbiAtbCRNWVNRTF9DX0xJQiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yIG15c3FsX3N0b3JlX3Jlc3VsdCBpbiAtbCRNWVNRTF9DX0xJQi4uLiAiID4mNjsgfQorK2lm IGV2YWwgInRlc3QgXCJcJHskYXNfYWNfTGliK3NldH1cIiIgPSBzZXQ7IHRoZW4gOgorKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJfc2F2ZV9MSUJT PSRMSUJTCisrTElCUz0iLWwkTVlTUUxfQ19MSUIgICRMSUJTIgorK2NhdCBjb25mZGVmcy5oIC0g PDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisr LyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3Iu CisrICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9m IGEgR0NDCisrICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxk IHN0aWxsIGFwcGx5LiAgKi8KKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiCisrI2Vu ZGlmCisrY2hhciBteXNxbF9zdG9yZV9yZXN1bHQgKCk7CisraW50CisrbWFpbiAoKQorK3sKKyty ZXR1cm4gbXlzcWxfc3RvcmVfcmVzdWx0ICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19B Q0VPRgorK2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgorKyAgZXZhbCAi JGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQorK3Jt IC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorKyAgICBjb25mdGVz dCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJ QlMKKytmaQorK2V2YWwgYWNfcmVzPVwkJGFzX2FjX0xpYgorKwkgICAgICAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19l Y2hvICIkYWNfcmVzIiA+JjY7IH0KKytpZiBldmFsIHRlc3QgXCJ4XCQiJGFzX2FjX0xpYiJcIiA9 IHgieWVzIjsgdGhlbiA6CisrICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBg JGFzX2VjaG8gIkhBVkVfTElCJE1ZU1FMX0NfTElCIiB8ICRhc190cl9jcHBgIDEKKytfQUNFT0YK KysKKysgIExJQlM9Ii1sJE1ZU1FMX0NfTElCICRMSUJTIgorKworK2Vsc2UKKysgIGFzX2ZuX2Vy cm9yICQ/ICJDb3VsZCBub3QgZmluZCB3b3JraW5nIE15U1FMIGNsaWVudCBsaWJyYXJ5ISIgIiRM SU5FTk8iIDUKKysKKytmaQorKworKworKwlMSUJTPSIkc2F2ZV9MSUJTIgorKworK2ZpCisrIGlm IHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfbXlzcWwiID0geHllczsgdGhlbgorKyAgSEFWRV9NWVNR TF9UUlVFPQorKyAgSEFWRV9NWVNRTF9GQUxTRT0nIycKKytlbHNlCisrICBIQVZFX01ZU1FMX1RS VUU9JyMnCisrICBIQVZFX01ZU1FMX0ZBTFNFPQorK2ZpCisrCisrI01ZU1FMX0RJUlM9Im15c3Fs IgorKworKworKworKworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU3VwcG9ydCBmb3IgT3JhY2xlIGJhY2tl bmQKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtYmFja2VuZC1vcmFj bGUgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfb3JhY2xlK3NldH0iID0g c2V0OyB0aGVuIDoKKysgIGVuYWJsZXZhbD0kZW5hYmxlX2JhY2tlbmRfb3JhY2xlOyAgaWYgdGVz dCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKyAgICAgIAkgZW5hYmxlX2JhY2tlbmRfb3JhY2xl PW5vCisrICAgICAgZWxzZQorKwkgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPXllcworKyAgICAgIGZp CisrZWxzZQorKyAgIGVuYWJsZV9iYWNrZW5kX29yYWNsZT1ubworKworK2ZpCisrCisrCisraWYg dGVzdCAieCRlbmFibGVfYmFja2VuZF9vcmFjbGUiID0gInh5ZXMiOyB0aGVuCisrICAgT1JBQ0xF X0RJUlM9Im9yYWNsZSIKKysgICBPUkFDTEVfT0NJX1JFUV9WRVJTSU9OPSI5LjAiCisrCisrCisr CisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1vcmFjbGUgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7 d2l0aF9vcmFjbGUrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgd2l0aHZhbD0kd2l0aF9vcmFjbGU7 CisrICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAg IGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9NRSI7IHRoZW4KKysgICAgICAgICAgICAgICAgb3JhY2xl X2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUiCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAg ICAgICBvcmFjbGVfaG9tZV9kaXI9IiIKKysgICAgICAgICAgICBmaQorKyAgICAgICAgZmkKKysK KytlbHNlCisrCisrICAgICAgICBpZiB0ZXN0IC1uICIkT1JBQ0xFX0hPTUUiOyB0aGVuCisrICAg ICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUiCisrICAgICAgICBlbHNlCisr ICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIiCisrICAgICAgICBmaQorKworKworK2ZpCisr CisrCisrCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1vcmFjbGUtaW5jbHVkZSB3YXMgZ2l2ZW4u CisraWYgdGVzdCAiJHt3aXRoX29yYWNsZV9pbmNsdWRlK3NldH0iID0gc2V0OyB0aGVuIDoKKysg IHdpdGh2YWw9JHdpdGhfb3JhY2xlX2luY2x1ZGU7IG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyPSIk d2l0aHZhbCIKKytlbHNlCisrICBvcmFjbGVfaG9tZV9pbmNsdWRlX2Rpcj0iIgorKworK2ZpCisr CisrCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1vcmFjbGUtbGliIHdhcyBnaXZlbi4KKytpZiB0 ZXN0ICIke3dpdGhfb3JhY2xlX2xpYitzZXR9IiA9IHNldDsgdGhlbiA6CisrICB3aXRodmFsPSR3 aXRoX29yYWNsZV9saWI7IG9yYWNsZV9ob21lX2xpYl9kaXI9IiR3aXRodmFsIgorK2Vsc2UKKysg IG9yYWNsZV9ob21lX2xpYl9kaXI9IiIKKysKKytmaQorKworKworKyAgICBPUkFDTEVfT0NJX0NG TEFHUz0iIgorKyAgICBPUkFDTEVfT0NJX0xERkxBR1M9IiIKKysgICAgT1JBQ0xFX09DSV9WRVJT SU9OPSIiCisrCisrICAgICAgICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJubyIK KysKKysgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9ob21lX2RpciI7IHRoZW4KKysKKysgICAgICAg IGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9kaXIiICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9kaXIi ICE9ICJ5ZXMiOyB0aGVuCisrCisrICAgICAgICAgICAgICAgICAgICAgICAgb3JhY2xlX2luY2x1 ZGVfZGlyPSIkb3JhY2xlX2hvbWVfZGlyL3JkYm1zL3B1YmxpYyIKKysKKysgICAgICAgICAgICAg ICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXIyPSIkb3JhY2xlX2hvbWVfZGlyL3JkYm1zL2Rl bW8iCisrCisrICAgICAgICAgICAgICAgICAgICAgICAgb3JhY2xlX2xpYl9kaXI9IiRvcmFjbGVf aG9tZV9kaXIvbGliIgorKyAgICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfZGlyIiA9ICJ5 ZXMiOyB0aGVuCisrICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKKysg ICAgICAgIGZpCisrCisrICAgIGVsaWYgdGVzdCAtbiAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGly IiAtbyAtbiAiJG9yYWNsZV9ob21lX2xpYl9kaXIiOyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0 ICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9pbmNs dWRlX2RpciIgIT0gInllcyI7IHRoZW4KKysgICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXI9 IiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIKKysgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9o b21lX2luY2x1ZGVfZGlyIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgd2FudF9vcmFjbGVf YnV0X25vX3BhdGg9InllcyIKKysgICAgICAgIGZpCisrCisrICAgICAgICBpZiB0ZXN0ICIkb3Jh Y2xlX2hvbWVfbGliX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2xpYl9kaXIiICE9ICJ5 ZXMiOyB0aGVuCisrICAgICAgICAgICAgb3JhY2xlX2xpYl9kaXI9IiRvcmFjbGVfaG9tZV9saWJf ZGlyIgorKyAgICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfbGliX2RpciIgPSAieWVzIjsg dGhlbgorKyAgICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJ5ZXMiCisrICAgICAg ICBmaQorKyAgICBmaQorKworKyAgICBpZiB0ZXN0ICIkd2FudF9vcmFjbGVfYnV0X25vX3BhdGgi ID0gInllcyI7IHRoZW4KKysgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogV0FSTklORzogT3JhY2xlIHN1cHBvcnQgaXMgcmVxdWVzdGVkIGJ1dCBubyBPcmFj bGUgcGF0aHMgaGF2ZSBiZWVuIHByb3ZpZGVkLiBcCisrUGxlYXNlLCBsb2NhdGUgT3JhY2xlIGRp cmVjdG9yaWVzIHVzaW5nIC0td2l0aC1vcmFjbGUgb3IgXAorKy0td2l0aC1vcmFjbGUtaW5jbHVk ZSBhbmQgLS13aXRoLW9yYWNsZS1saWIgb3B0aW9ucy4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6 IFdBUk5JTkc6IE9yYWNsZSBzdXBwb3J0IGlzIHJlcXVlc3RlZCBidXQgbm8gT3JhY2xlIHBhdGhz IGhhdmUgYmVlbiBwcm92aWRlZC4gXAorK1BsZWFzZSwgbG9jYXRlIE9yYWNsZSBkaXJlY3Rvcmll cyB1c2luZyAtLXdpdGgtb3JhY2xlIG9yIFwKKystLXdpdGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0t d2l0aC1vcmFjbGUtbGliIG9wdGlvbnMuIiA+JjI7fQorKyAgICBmaQorKworKyAgICAgICAgICAg ICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyIiAtYSAtbiAiJG9yYWNsZV9saWJf ZGlyIjsgdGhlbgorKworKyAgICAgICAgc2F2ZWRfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKKysgICAg ICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkkb3JhY2xlX2luY2x1ZGVfZGlyIgorKworKyAgICAg ICAgICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyMiI7IHRoZW4KKysgICAg ICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIiCisrICAg ICAgICBmaQorKworKyAgICAgICAgIyBGaWd1cmUgb3V0IGlmIHdlIGFyZSBidWlsZGluZyBvbiB3 aW4zMi4KKysgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICAgICAgICAqbWluZ3czMiog KSBXSU4zMj15ZXMgOzsKKysgICAgICAgICAgICAqY3lnd2luKiApICBXSU4zMj15ZXMgOzsKKysg ICAgICAgICAgICAqKSBXSU4zMj1ubyA7OworKyAgICAgICAgZXNhYworKworKyAgICAgICAgaWYg dGVzdCAiJFdJTjMyIiA9ICJubyIKKysgICAgICAgIHRoZW4KKysgICAgICAgICAgICBvY2lfbGli cz0iLWxjbG50c2ggLWxubnoxMSIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBvY2lfbGli cz0iLWxvY2kiCisrICAgICAgICBmaQorKworKyAgICAgICAgc2F2ZWRfTERGTEFHUz0iJExERkxB R1MiCisrICAgICAgICBzYXZlZF9MSUJTPSIkTElCUyIKKysgICAgICAgIG9jaV9sZGZsYWdzPSIt TCRvcmFjbGVfbGliX2RpciIKKysgICAgICAgIExERkxBR1M9IiRMREZMQUdTICRvY2lfbGRmbGFn cyIKKysgICAgICAgIExJQlM9IiRMSUJTICRvY2lfbGlicyIKKysKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgZm9yIE9yYWNsZSBPQ0kgaGVhZGVycyBpbiAkb3JhY2xlX2luY2x1ZGVfZGlyIiA+ JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgT3JhY2xlIE9DSSBoZWFkZXJzIGluICRvcmFj bGVfaW5jbHVkZV9kaXIuLi4gIiA+JjY7IH0KKysKKysgICAgICAgIGFjX2V4dD1jcHAKKythY19j cHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg JExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKwor KyAgICAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysgICAgICAgICAgICAjaW5jbHVkZSA8b2NpLmg+Cisr aW50CisrbWFpbiAoKQorK3sKKysKKysjaWYgZGVmaW5lZChPQ0lfTUFKT1JfVkVSU0lPTikKKysj aWYgT0NJX01BSk9SX1ZFUlNJT04gPT0gMTAgJiYgT0NJX01JTk9SX1ZFUlNJT04gPT0gMgorKy8v IE9yYWNsZSAxMC4yIGRldGVjdGVkCisrI2VuZGlmCisrI2VsaWYgZGVmaW5lZChPQ0lfVjdfU1lO VEFYKQorKy8vIE9LLCBvbGRlciBPcmFjbGUgZGV0ZWN0ZWQKKysvLyBUT0RPIC0gbWxvc2tvdDog ZmluZCBiZXR0ZXIgbWFjcm8gdG8gY2hlY2sgZm9yIG9sZGVyIHZlcnNpb25zOworKyNlbHNlCisr IyAgZXJyb3IgT3JhY2xlIG9jaS5oIGhlYWRlciBub3QgZm91bmQKKysjZW5kaWYKKysKKysKKysg IDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUg IiRMSU5FTk8iOyB0aGVuIDoKKysKKysgICAgICAgICAgICBPUkFDTEVfT0NJX0NGTEFHUz0iLUkk b3JhY2xlX2luY2x1ZGVfZGlyIgorKworKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVf aW5jbHVkZV9kaXIyIjsgdGhlbgorKyAgICAgICAgICAgICAgICBPUkFDTEVfT0NJX0NGTEFHUz0i JE9SQUNMRV9PQ0lfQ0ZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIiCisrICAgICAgICAgICAg ZmkKKysKKysgICAgICAgICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJ5ZXMiCisrICAgICAgICAgICAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1 CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrCisrZWxzZQorKworKyAgICAgICAgICAgIG9jaV9o ZWFkZXJfZm91bmQ9Im5vIgorKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiBub3QgZm91bmQiID4mNQorKyRhc19lY2hvICJub3QgZm91 bmQiID4mNjsgfQorKworKworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrICAgICAgICBhY19leHQ9Y3BwCisrYWNfY3Bw PSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQ RkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRh Y19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRM SUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2Zv dW5kIiA9ICJ5ZXMiOyB0aGVuCisrCisrICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgT3JhY2xlIE9DSSBsaWJyYXJpZXMgaW4g JG9yYWNsZV9saWJfZGlyIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgT3JhY2xlIE9D SSBsaWJyYXJpZXMgaW4gJG9yYWNsZV9saWJfZGlyLi4uICIgPiY2OyB9CisrCisrICAgICAgICAg ICAgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0n JENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xp bms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxB R1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9j eHhfY29tcGlsZXJfZ251CisrCisrICAgICAgICAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VP RiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysgICAgICAg ICAgICAgICAgI2luY2x1ZGUgPG9jaS5oPgorK2ludAorK21haW4gKCkKKyt7CisrCisrT0NJRW52 KiBlbnZoID0gMDsKKytPQ0lFbnZDcmVhdGUoJmVudmgsIE9DSV9ERUZBVUxULCAwLCAwLCAwLCAw LCAwLCAwKTsKKytpZiAoZW52aCkgT0NJSGFuZGxlRnJlZShlbnZoLCBPQ0lfSFRZUEVfRU5WKTsK KysKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5 X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKKysKKysgICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9M REZMQUdTPSIkb2NpX2xkZmxhZ3MgJG9jaV9saWJzIgorKyAgICAgICAgICAgICAgICBvY2lfbGli X2ZvdW5kPSJ5ZXMiCisrICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQor KworK2Vsc2UKKysKKysgICAgICAgICAgICAgICAgb2NpX2xpYl9mb3VuZD0ibm8iCisrICAgICAg ICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiBub3QgZm91bmQiID4mNQorKyRhc19lY2hvICJub3QgZm91bmQiID4mNjsgfQorKworKworK2Zp Cisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisrICAgIGNv bmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrICAgICAgICAgICAgYWNfZXh0PWNw cAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hY RkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8g Y29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3Qu JGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJf Z251CisrCisrICAgICAgICBmaQorKworKyAgICAgICAgQ1BQRkxBR1M9IiRzYXZlZF9DUFBGTEFH UyIKKysgICAgICAgIExERkxBR1M9IiRzYXZlZF9MREZMQUdTIgorKyAgICAgICAgTElCUz0iJHNh dmVkX0xJQlMiCisrICAgIGZpCisrCisrICAgICAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX3Jl cT0kT1JBQ0xFX09DSV9SRVFfVkVSU0lPTgorKworKyAgICBpZiB0ZXN0ICIkb2NpX2hlYWRlcl9m b3VuZCIgPSAieWVzIiAtYSAiJG9jaV9saWJfZm91bmQiID0gInllcyIgLWEgXAorKyAgICAgICAg LW4gIiRvcmFjbGVfdmVyc2lvbl9yZXEiOyB0aGVuCisrCisrICAgICAgICBvcmFjbGVfdmVyc2lv bl9tYWpvcj1gY2F0ICRvcmFjbGVfaW5jbHVkZV9kaXIvb2NpLmggXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCBncmVwICcjZGVmaW5lLipPQ0lfTUFKT1JfVkVSU0lPTi4qJyBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8jZGVmaW5lIE9DSV9NQUpP Ul9WRVJTSU9OICAqLy8nIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1l ICdzLyAgKlwvXCouKlwqXC8vLydgCisrCisrICAgICAgICBvcmFjbGVfdmVyc2lvbl9taW5vcj1g Y2F0ICRvcmFjbGVfaW5jbHVkZV9kaXIvb2NpLmggXAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCBncmVwICcjZGVmaW5lLipPQ0lfTUlOT1JfVkVSU0lPTi4qJyBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8jZGVmaW5lIE9DSV9NSU5PUl9WRVJTSU9O ICAqLy8nIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1lICdzLyAgKlwv XCouKlwqXC8vLydgCisrCisrICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nIGlmIE9yYWNsZSBPQ0kgdmVyc2lvbiBpcyA+PSAkb3JhY2xlX3Zl cnNpb25fcmVxIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiBPcmFjbGUgT0NJIHZlcnNp b24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3JlcS4uLiAiID4mNjsgfQorKworKyAgICAgICAgaWYg dGVzdCAtbiAiJG9yYWNsZV92ZXJzaW9uX21ham9yIiAtYSAtbiAkIm9yYWNsZV92ZXJzaW9uX21p bm9yIjsgdGhlbgorKworKyAgICAgICAgICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iJG9yYWNsZV92 ZXJzaW9uX21ham9yLiRvcmFjbGVfdmVyc2lvbl9taW5vciIKKysKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbWFqb3I9YGV4cHIgJG9yYWNs ZV92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwpJ2AKKysgICAgICAgICAgICBvcmFjbGVfdmVyc2lv bl9yZXFfbWlub3I9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAtOV0q XCknYAorKworKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9udW1iZXI9YGV4cHIgJG9y YWNsZV92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcKyAkb3JhY2xlX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEwMDBg CisrCisrICAgICAgICAgICAgICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fbnVtYmVyPWBleHBy ICRvcmFjbGVfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX21pbm9yIFwqIDEwMDBgCisrCisrICAg ICAgICAgICAgb3JhY2xlX3ZlcnNpb25fY2hlY2s9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX251bWJl ciBcPlw9ICRvcmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyYAorKyAgICAgICAgICAgIGlmIHRlc3Qg IiRvcmFjbGVfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KKysgICAgICAgICAgICAgICAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1Cisr JGFzX2VjaG8gInllcyIgPiY2OyB9CisrCisrJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9PUkFDTEUg MSIgPj5jb25mZGVmcy5oCisrCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQor KyRhc19lY2hvICJubyIgPiY2OyB9CisrICAgICAgICAgICAgICAgIGFzX2ZuX2Vycm9yICQ/ICJP cmFjbGUgJE9SQUNMRV9PQ0lfVkVSU0lPTiBmb3VuZCwgYnV0IHJlcXVpcmVkIHZlcnNpb24gaXMg JG9yYWNsZV92ZXJzaW9uX3JlcSIgIiRMSU5FTk8iIDUKKysgICAgICAgICAgICBmaQorKyAgICAg ICAgZWxzZQorKyAgICAgICAgICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iVU5LTk9XTiIKKysgICAg ICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog bm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICAgICAgICAgICAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBPcmFjbGUgdmVyc2lvbiB1bmtu b3duLCBwcm9iYWJseSBPQ0kgb2xkZXIgdGhhbiAxMC4yIGlzIGF2YWlsYWJsZSIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogV0FSTklORzogT3JhY2xlIHZlcnNpb24gdW5rbm93biwgcHJvYmFibHkg T0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBhdmFpbGFibGUiID4mMjt9CisrICAgICAgICBmaQorKyAg ICBmaQorKworKworKworKworKworK2ZpCisrIGlmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfb3Jh Y2xlIiA9IHh5ZXM7IHRoZW4KKysgIEhBVkVfT1JBQ0xFX1RSVUU9CisrICBIQVZFX09SQUNMRV9G QUxTRT0nIycKKytlbHNlCisrICBIQVZFX09SQUNMRV9UUlVFPScjJworKyAgSEFWRV9PUkFDTEVf RkFMU0U9CisrZmkKKysKKysjT1JBQ0xFX0RJUlM9Im9yYWNsZSIKKysKKysKKysKKysjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysjIFN1cHBvcnQgZm9yIFBvc3RncmVTUUwgYmFja2VuZAorKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1iYWNrZW5kLXBvc3RncmVzcWwgd2FzIGdpdmVuLgor K2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCtzZXR9IiA9IHNldDsgdGhlbiA6 CisrICBlbmFibGV2YWw9JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw7ICBpZiB0ZXN0ICIkZW5h YmxldmFsIiA9IG5vOyB0aGVuCisrICAgICAgCSBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPW5v CisrICAgICAgZWxzZQorKwkgZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbD15ZXMKKysgICAgICBm aQorK2Vsc2UKKysgICBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPW5vCisrCisrZmkKKysKKysK KytpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwiID0gInh5ZXMiOyB0aGVuCisr ICAgUE9TVEdSRVNRTF9ESVJTPSJwb3N0Z3Jlc3FsIgorKyAgIFBPU1RHUkVTUUxfUkVRX1ZFUlNJ T049IjcuMS40IgorKworKworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtcG9zdGdyZXNxbCB3YXMg Z2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX3Bvc3RncmVzcWwrc2V0fSIgPSBzZXQ7IHRoZW4gOgor KyAgd2l0aHZhbD0kd2l0aF9wb3N0Z3Jlc3FsOworKwlQT1NUR1JFU1FMX2luY19jaGVjaz0iJHdp dGhfcG9zdGdyZXNxbC9pbmNsdWRlIgorKyAgICAgICAgaWYgdGVzdCAiJHdpdGh2YWwiID0gIm5v IjsgdGhlbgorKyAgICAgICAgICAgIHdhbnRfcG9zdGdyZXNxbD0ibm8iCisrICAgICAgICBlbGlm IHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgd2FudF9wb3N0Z3Jl c3FsPSJ5ZXMiCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJ5 ZXMiCisrICAgICAgICAgICAgUEdfQ09ORklHPSIkd2l0aHZhbCIKKysgICAgICAgIGZpCisrCisr ZWxzZQorKyAgd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCisrCVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIv dXNyL2luY2x1ZGUgL3Vzci9sb2NhbCAvb3B0IgorKworK2ZpCisrCisrCisrICAgIFBPU1RHUkVT UUxfQ0ZMQUdTPSIiCisrICAgIFBPU1RHUkVTUUxfTERGTEFHUz0iIgorKyAgICBQT1NUR1JFU1FM X1BPU1RHUkVTUUw9IiIKKysKKysKKysgICAgaWYgdGVzdCAiJHdhbnRfcG9zdGdyZXNxbCIgPSAi eWVzIjsgdGhlbgorKworKyAgICAgICAgaWYgdGVzdCAteiAiJFBHX0NPTkZJRyIgLW8gdGVzdDsg dGhlbgorKyAgICAgICAgICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicGdfY29uZmln Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgcGdf Y29uZmlnOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9QR19DT05GSUcr c2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrICBjYXNlICRQR19DT05GSUcgaW4KKysgIFtcXC9dKiB8ID86W1xcL10qKQorKyAgYWNfY3Zf cGF0aF9QR19DT05GSUc9IiRQR19DT05GSUciICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0IHdpdGggYSBwYXRoLgorKyAgOzsKKysgICopCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9 JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3Nh dmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhl Y19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAt ZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcGF0aF9QR19DT05GSUc9 IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCisrICAgICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4m NQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKysgIGRvbmUKKytJRlM9JGFzX3NhdmVfSUZT CisrCisrICA7OworK2VzYWMKKytmaQorK1BHX0NPTkZJRz0kYWNfY3ZfcGF0aF9QR19DT05GSUcK KytpZiB0ZXN0IC1uICIkUEdfQ09ORklHIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRQR19DT05GSUciID4mNQorKyRhc19lY2hvICIk UEdfQ09ORklHIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkK KysKKysKKysgICAgICAgIGZpCisrCisrICAgICAgICBpZiB0ZXN0ICEgLXggIiRQR19DT05GSUci OyB0aGVuCisrICAgICAgICAgICAgYXNfZm5fZXJyb3IgJD8gIiRQR19DT05GSUcgZG9lcyBub3Qg ZXhpc3Qgb3IgaXQgaXMgbm90IGFuIGV4ZWN0dWFibGUgZmlsZSIgIiRMSU5FTk8iIDUKKysgICAg ICAgICAgICBQR19DT05GSUc9Im5vIgorKyAgICAgICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9Im5v IgorKyAgICAgICAgZmkKKysKKysgICAgICAgIGlmIHRlc3QgIiRQR19DT05GSUciICE9ICJubyI7 IHRoZW4KKysgICAgICAgICAgICAjCisrICAgICAgICAgICAgIyBMb29rIGZvciBQb3N0Z3Jlc3Fs IEMgQVBJIGhlYWRlcnMKKysgICAgICAgICAgICAjCisrICAgICAgICAgICAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgUG9zdGdyZXNxbCBpbmNs dWRlIGRpcmVjdG9yeSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIFBvc3RncmVzcWwg aW5jbHVkZSBkaXJlY3RvcnkuLi4gIiA+JjY7IH0KKysgICAgICAgICAgICBQT1NUR1JFU1FMX2lu Y2Rpcj0KKysgICAgICAgICAgICBmb3IgcG9zdGdyZXNxbF9pbmNfZGlyIGluICRQT1NUR1JFU1FM X2luY19jaGVjaworKyAgICAgICAgICAgIGRvCisrICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQg IiRwb3N0Z3Jlc3FsX2luY19kaXIiIFwKKysgICAgICAgICAgICAgICAgJiYgdGVzdCAtZiAiJHBv c3RncmVzcWxfaW5jX2Rpci9wb3N0Z3Jlc19leHQuaCIKKysgICAgICAgICAgICAgICAgdGhlbgor KyAgICAgICAgICAgICAgICAgICAgUE9TVEdSRVNRTF9pbmNkaXI9JHBvc3RncmVzcWxfaW5jX2Rp cgorKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKysgICAgICAgICAgICAgICAgZmkKKysgICAg ICAgICAgICBkb25lCisrCisrICAgICAgICAgICAgaWYgdGVzdCAteiAiJFBPU1RHUkVTUUxfaW5j ZGlyIgorKyAgICAgICAgICAgIHRoZW4KKysgICAgICAgICAgICAgICAgYXNfZm5fZXJyb3IgJD8g IkRpZG4ndCBmaW5kIHRoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyIGluICckUE9TVEdSRVNRTF9p bmNfY2hlY2snIiAiJExJTkVOTyIgNQorKyAgICAgICAgICAgIGZpCisrCisrICAgICAgICAgICAg Y2FzZSAiJFBPU1RHUkVTUUxfaW5jZGlyIiBpbgorKyAgICAgICAgICAgICAgICAvKiApIDs7Cisr ICAgICAgICAgICAgICAgICogKSAgYXNfZm5fZXJyb3IgJD8gIlRoZSBQb3N0Z3Jlc3FsIGluY2x1 ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0 aC4iICIkTElORU5PIiA1IDs7CisrICAgICAgICAgICAgZXNhYworKworKyAgICAgICAgICAgIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkUE9TVEdSRVNR TF9pbmNkaXIiID4mNQorKyRhc19lY2hvICIkUE9TVEdSRVNRTF9pbmNkaXIiID4mNjsgfQorKwor KyAgICAgICAgICAgIGlmIHRlc3QgIiRQT1NUR1JFU1FMX2luY2RpciIgPSAiL3Vzci9pbmNsdWRl IjsgdGhlbgorKyAgICAgICAgICAgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKKysgICAgICAgICAg ICBlbHNlCisrICAgICAgICAgICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iLUkke1BPU1RHUkVTUUxf aW5jZGlyfSIKKysgICAgICAgICAgICBmaQorKworKyAgICAgICAgICAgIFBPU1RHUkVTUUxfTERG TEFHUz0iLUxgJFBHX0NPTkZJRyAtLWxpYmRpcmAgLWxwcSIKKysKKysgICAgICAgICAgICBQT1NU R1JFU1FMX1ZFUlNJT049YCRQR19DT05GSUcgLS12ZXJzaW9uIHwgc2VkIC1lICdzI1Bvc3RncmVT UUwgIyMnYAorKworKworKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfUE9TVEdSRVNRTCAxIiA+PmNv bmZkZWZzLmgKKysKKysKKysgICAgICAgICAgICBmb3VuZF9wb3N0Z3Jlc3FsPSJ5ZXMiCisrICAg ICAgICBlbHNlCisrICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ibm8iCisrICAgICAgICBm aQorKyAgICBmaQorKworKworKworKyAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxPSRQT1NUR1JF U1FMX1JFUV9WRVJTSU9OCisrCisrICAgIGlmIHRlc3QgIiRmb3VuZF9wb3N0Z3Jlc3FsIiA9ICJ5 ZXMiIC1hIC1uICIkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSI7IHRoZW4KKysKKysgICAgICAgIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgUG9zdGdy ZVNRTCB2ZXJzaW9uIGlzID49ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIiA+JjUKKyskYXNfZWNo b19uICJjaGVja2luZyBpZiBQb3N0Z3JlU1FMIHZlcnNpb24gaXMgPj0gJHBvc3RncmVzcWxfdmVy c2lvbl9yZXEuLi4gIiA+JjY7IH0KKysKKysgICAgICAgICAgICAgICAgICAgICAgICBwb3N0Z3Jl c3FsX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIDogJ1wo WzAtOV0qXCknYAorKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taW5vcj1gZXhwciAk cG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAorKyAgICAgICAg cG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybz1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3Jl cSA6ICdbMC05XSpcLlswLTldKlwuXChbMC05XSpcKSdgCisrICAgICAgICBpZiB0ZXN0ICJ4JHBv c3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm8iID0gIngiOyB0aGVuCisrICAgICAgICAgICAgcG9z dGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybz0iMCIKKysgICAgICAgIGZpCisrCisrICAgICAgICBw b3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJlcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3Jl cV9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEwMDAgXAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm9g CisrCisrICAgICAgICAgICAgICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21ham9yPWBl eHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnXChbMC05XSpcKSdgCisrICAgICAgICBwb3N0Z3Jl c3FsX3ZlcnNpb25fbWlub3I9YGV4cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6ICdbMC05XSpcLlwo WzAtOV0qXCknYAorKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvPWBleHByICRQT1NU R1JFU1FMX1ZFUlNJT04gOiAnWzAtOV0qXC5bMC05XSpcLlwoWzAtOV0qXCknYAorKyAgICAgICAg aWYgdGVzdCAieCRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWljcm8iID0gIngiOyB0aGVuCisrICAgICAg ICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvPSIwIgorKyAgICAgICAgZmkKKysKKysgICAg ICAgIHBvc3RncmVzcWxfdmVyc2lvbl9udW1iZXI9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9t YWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwr ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3IgXCogMTAwMCBcCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvYAorKworKyAgICAg ICAgcG9zdGdyZXNxbF92ZXJzaW9uX2NoZWNrPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbnVt YmVyIFw+XD0gJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbnVtYmVyYAorKyAgICAgICAgaWYgdGVz dCAiJHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KKysgICAgICAgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUK KyskYXNfZWNobyAieWVzIiA+JjY7IH0KKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorKyRh c19lY2hvICJubyIgPiY2OyB9CisrICAgICAgICBmaQorICAgICBmaQorKworKworKworKworKwor K2ZpCisrIGlmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCIgPSB4eWVzOyB0aGVu CisrICBIQVZFX1BPU1RHUkVTUUxfVFJVRT0KKysgIEhBVkVfUE9TVEdSRVNRTF9GQUxTRT0nIycK KytlbHNlCisrICBIQVZFX1BPU1RHUkVTUUxfVFJVRT0nIycKKysgIEhBVkVfUE9TVEdSRVNRTF9G QUxTRT0KKytmaQorKworKyNQT1NUR1JFU1FMX0RJUlM9InBvc3RncmVzcWwiCisrCisrCisrCisr CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBTdXBwb3J0IGZvciBkb2N1bWVudGF0aW9uCisrIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisrIyBDaGVja3MgZm9yIGRvY3VtZW50YXRpb24gYnVpbGQgdG9vbHMKKysjQUNfQ0hFQ0tf UFJPRyhbdGV4aW5mb19va10sIFt0ZXhpbmZvXSwgW3llc10sIFtub10pCisrI2lmIHRlc3QgIngk ZW5hYmxlX2luZm9fZG9jIiAhPSB4bm87IHRoZW4KKysjICB0ZXN0ICJ4JHRleGluZm9fb2siICE9 IHh5ZXMgJiYgZW5hYmxlX2luZm9fZG9jPW5vCisrIyAgQUNfUEFUSF9QUk9HKFtQRVJMXSwgW3Bl cmxdLCBbXSkKKysjZmkKKysgaWYgdGVzdCAieCRlbmFibGVfaW5mb19kb2MiID0geHllczsgdGhl bgorKyAgSU5GT19ET0NfVFJVRT0KKysgIElORk9fRE9DX0ZBTFNFPScjJworK2Vsc2UKKysgIElO Rk9fRE9DX1RSVUU9JyMnCisrICBJTkZPX0RPQ19GQUxTRT0KKytmaQorKworKworKyMgQ2hlY2tz IGZvciBkb2N1bWVudGF0aW9uIGJ1aWxkIHRvb2xzCisrIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk IG9mICJkb3h5Z2VuIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytz ZXQgZHVtbXkgZG94eWdlbjsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJj aGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2df ZG94eWdlbl9vaytzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRkb3h5Z2VuX29rIjsgdGhlbgorKyAgYWNfY3Zf cHJvZ19kb3h5Z2VuX29rPSIkZG94eWdlbl9vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhl IHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytm b3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXog IiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl Y3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2RveHlnZW5fb2s9InllcyIKKysgICAgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lG Uz0kYXNfc2F2ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wcm9nX2RveHlnZW5fb2siICYm IGFjX2N2X3Byb2dfZG94eWdlbl9vaz0ibm8iCisrZmkKKytmaQorK2RveHlnZW5fb2s9JGFjX2N2 X3Byb2dfZG94eWdlbl9vaworK2lmIHRlc3QgLW4gIiRkb3h5Z2VuX29rIjsgdGhlbgorKyAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRkb3h5Z2VuX29r IiA+JjUKKyskYXNfZWNobyAiJGRveHlnZW5fb2siID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2Vj aG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAi bGF0ZXgiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1t eSBsYXRleDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBm b3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfbGF0ZXhfb2sr c2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrICBpZiB0ZXN0IC1uICIkbGF0ZXhfb2siOyB0aGVuCisrICBhY19jdl9wcm9nX2xhdGV4X29r PSIkbGF0ZXhfb2siICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKyth c19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFU SAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19k aXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9u czsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYg JGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAg YWNfY3ZfcHJvZ19sYXRleF9vaz0ieWVzIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysg ICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKwor KyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfbGF0ZXhfb2siICYmIGFjX2N2X3Byb2dfbGF0ZXhfb2s9 Im5vIgorK2ZpCisrZmkKKytsYXRleF9vaz0kYWNfY3ZfcHJvZ19sYXRleF9vaworK2lmIHRlc3Qg LW4gIiRsYXRleF9vayI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogcmVzdWx0OiAkbGF0ZXhfb2siID4mNQorKyRhc19lY2hvICIkbGF0ZXhfb2siID4m NjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog cmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyMgRXh0 cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZHZpcHMiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5h bWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBkdmlwczsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0 ICIke2FjX2N2X3Byb2dfZHZpcHNfb2src2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkZHZpcHNfb2siOyB0aGVu CisrICBhY19jdl9wcm9nX2R2aXBzX29rPSIkZHZpcHNfb2siICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19kdmlwc19vaz0ieWVzIgorKyAgICAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrICBkb25l CisrSUZTPSRhc19zYXZlX0lGUworKworKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfZHZpcHNfb2si ICYmIGFjX2N2X3Byb2dfZHZpcHNfb2s9Im5vIgorK2ZpCisrZmkKKytkdmlwc19vaz0kYWNfY3Zf cHJvZ19kdmlwc19vaworK2lmIHRlc3QgLW4gIiRkdmlwc19vayI7IHRoZW4KKysgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkZHZpcHNfb2siID4mNQor KyRhc19lY2hvICIkZHZpcHNfb2siID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+ JjY7IH0KKytmaQorKworKworKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZ3MiLCBzbyBp dCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBnczsgYWNfd29y ZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfZ3Nfb2src2V0fSIgPSBzZXQ7IHRoZW4g OgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIk Z3Nfb2siOyB0aGVuCisrICBhY19jdl9wcm9nX2dzX29rPSIkZ3Nfb2siICMgTGV0IHRoZSB1c2Vy IG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhf U0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZT CisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQg aW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19nc19vaz0ieWVzIgorKyAg ICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrICBk b25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfZ3Nfb2si ICYmIGFjX2N2X3Byb2dfZ3Nfb2s9Im5vIgorK2ZpCisrZmkKKytnc19vaz0kYWNfY3ZfcHJvZ19n c19vaworK2lmIHRlc3QgLW4gIiRnc19vayI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkZ3Nfb2siID4mNQorKyRhc19lY2hvICIkZ3Nf b2siID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKwor K2lmIHRlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiAhPSB4bm87IHRoZW4KKysgIHRlc3QgIngkZG94 eWdlbl9vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KKysgIHRlc3QgIngkbGF0ZXhf b2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCisrICB0ZXN0ICJ4JGR2aXBzX29rIiAh PSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubworKyAgdGVzdCAieCRnc19vayIgIT0geHllcyAm JiBlbmFibGVfaHRtbF9kb2M9bm8KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicGVy bCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IHBl cmw7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRh Y193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wYXRoX1BFUkwrc2V0fSIgPSBz ZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXNl ICRQRVJMIGluCisrICBbXFwvXSogfCA/OltcXC9dKikKKysgIGFjX2N2X3BhdGhfUEVSTD0iJFBF UkwiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorKyAgOzsK KysgICopCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFz X2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KKysgICAgYWNfY3ZfcGF0aF9QRVJMPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IgorKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25l CisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgOzsKKytlc2FjCisrZmkKKytQRVJM PSRhY19jdl9wYXRoX1BFUkwKKytpZiB0ZXN0IC1uICIkUEVSTCI7IHRoZW4KKysgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkUEVSTCIgPiY1CisrJGFz X2VjaG8gIiRQRVJMIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9Cisr ZmkKKysKKysKKytmaQorKyBpZiB0ZXN0ICJ4JGVuYWJsZV9odG1sX2RvYyIgPSB4eWVzOyB0aGVu CisrICBIVE1MX0RPQ19UUlVFPQorKyAgSFRNTF9ET0NfRkFMU0U9JyMnCisrZWxzZQorKyAgSFRN TF9ET0NfVFJVRT0nIycKKysgIEhUTUxfRE9DX0ZBTFNFPQorK2ZpCisrCisrCisrCisrIyBDaGVj ayBmb3IgZGlmZiBwcm9ncmFtIHVzZWQgZm9yIHRlc3RzCisrIyBFeHRyYWN0IHRoZSBmaXJzdCB3 b3JkIG9mICJkaWZmIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytz ZXQgZHVtbXkgZGlmZjsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfZGlm Zl9vaytzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor K2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRkaWZmX29rIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19kaWZm X29rPSIkZGlmZl9vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQor K2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQ QVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFz X2Rpcj0uCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNp b25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAm JiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAg ICBhY19jdl9wcm9nX2RpZmZfb2s9InllcyIKKysgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Cisr ICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysK KysgIHRlc3QgLXogIiRhY19jdl9wcm9nX2RpZmZfb2siICYmIGFjX2N2X3Byb2dfZGlmZl9vaz0i bm8iCisrZmkKKytmaQorK2RpZmZfb2s9JGFjX2N2X3Byb2dfZGlmZl9vaworK2lmIHRlc3QgLW4g IiRkaWZmX29rIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6ICRkaWZmX29rIiA+JjUKKyskYXNfZWNobyAiJGRpZmZfb2siID4mNjsgfQor K2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyMgRXh0cmFjdCB0 aGUgZmlyc3Qgd29yZCBvZiAic2VkIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGgg YXJncy4KKytzZXQgZHVtbXkgc2VkOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3Zf cHJvZ19zZWRfb2src2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkc2VkX29rIjsgdGhlbgorKyAgYWNfY3ZfcHJv Z19zZWRfb2s9IiRzZWRfb2siICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vs c2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBp biAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0 ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4K KysgICAgYWNfY3ZfcHJvZ19zZWRfb2s9InllcyIKKysgICAgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1 CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMK KysKKysgIHRlc3QgLXogIiRhY19jdl9wcm9nX3NlZF9vayIgJiYgYWNfY3ZfcHJvZ19zZWRfb2s9 Im5vIgorK2ZpCisrZmkKKytzZWRfb2s9JGFjX2N2X3Byb2dfc2VkX29rCisraWYgdGVzdCAtbiAi JHNlZF9vayI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiAkc2VkX29rIiA+JjUKKyskYXNfZWNobyAiJHNlZF9vayIgPiY2OyB9CisrZWxz ZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5v IiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrZW5hYmxlX3Rlc3RzPXll cworK3Rlc3QgIngkZGlmZl9vayIgIT0geHllcyAmJiBlbmFibGVfdGVzdHM9bm8KKyt0ZXN0ICJ4 JHNlZF9vayIgIT0geHllcyAmJiBlbmFibGVfdGVzdHM9bm8KKysgaWYgdGVzdCAieCRlbmFibGVf dGVzdHMiID0geHllczsgdGhlbgorKyAgUlVOX1RFU1RTX1RSVUU9CisrICBSVU5fVEVTVFNfRkFM U0U9JyMnCisrZWxzZQorKyAgUlVOX1RFU1RTX1RSVUU9JyMnCisrICBSVU5fVEVTVFNfRkFMU0U9 CisrZmkKKysKKysKKysKKysjIENoZWNrcyBmb3IgaGVhZGVyIGZpbGVzCisrCisreyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRl ciBmaWxlcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmls ZXMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zdGRjK3NldH0iID0gc2V0 OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0IGNv bmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KKysjaW5jbHVkZSA8c3RkbGliLmg+CisrI2luY2x1ZGUgPHN0ZGFyZy5oPgorKyNpbmNs dWRlIDxzdHJpbmcuaD4KKysjaW5jbHVkZSA8ZmxvYXQuaD4KKysKKytpbnQKKyttYWluICgpCisr eworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2N4eF90cnlf Y29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCisrZWxz ZQorKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKworK2lmIHRlc3QgJGFjX2N2 X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisrICAjIFN1bk9TIDQueCBzdHJpbmcuaCBkb2VzIG5v dCBkZWNsYXJlIG1lbSosIGNvbnRyYXJ5IHRvIEFOU0kuCisrICBjYXQgY29uZmRlZnMuaCAtIDw8 X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNs dWRlIDxzdHJpbmcuaD4KKysKKytfQUNFT0YKKytpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4k YWNfZXh0IikgMj4mNSB8CisrICAkRUdSRVAgIm1lbWNociIgPi9kZXYvbnVsbCAyPiYxOyB0aGVu IDoKKysKKytlbHNlCisrICBhY19jdl9oZWFkZXJfc3RkYz1ubworK2ZpCisrcm0gLWYgY29uZnRl c3QqCisrCisrZmkKKysKKytpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgor KyAgIyBJU0MgMi4wLjIgc3RkbGliLmggZG9lcyBub3QgZGVjbGFyZSBmcmVlLCBjb250cmFyeSB0 byBBTlNJLgorKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8c3RkbGliLmg+CisrCisrX0FDRU9G CisraWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAorKyAgJEVHUkVQ ICJmcmVlIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOgorKworK2Vsc2UKKysgIGFjX2N2X2hlYWRl cl9zdGRjPW5vCisrZmkKKytybSAtZiBjb25mdGVzdCoKKysKKytmaQorKworK2lmIHRlc3QgJGFj X2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisrICAjIC9iaW4vY2MgaW4gSXJpeC00LjAuNSBn ZXRzIG5vbi1BTlNJIGN0eXBlIG1hY3JvcyB1bmxlc3MgdXNpbmcgLWFuc2kuCisrICBpZiB0ZXN0 ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6CisrICA6CisrZWxzZQorKyAgY2F0IGNv bmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KKysjaW5jbHVkZSA8Y3R5cGUuaD4KKysjaW5jbHVkZSA8c3RkbGliLmg+CisrI2lmICgo JyAnICYgMHgwRkYpID09IDB4MDIwKQorKyMgZGVmaW5lIElTTE9XRVIoYykgKCdhJyA8PSAoYykg JiYgKGMpIDw9ICd6JykKKysjIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VSKGMpID8gJ0EnICsg KChjKSAtICdhJykgOiAoYykpCisrI2Vsc2UKKysjIGRlZmluZSBJU0xPV0VSKGMpIFwKKysJCSAg ICgoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ2knKSBcCisrCQkgICAgIHx8ICgnaicgPD0gKGMpICYm IChjKSA8PSAncicpIFwKKysJCSAgICAgfHwgKCdzJyA8PSAoYykgJiYgKGMpIDw9ICd6JykpCisr IyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICgoYykgfCAweDQwKSA6IChjKSkKKysj ZW5kaWYKKysKKysjZGVmaW5lIFhPUihlLCBmKSAoKChlKSAmJiAhKGYpKSB8fCAoIShlKSAmJiAo ZikpKQorK2ludAorK21haW4gKCkKKyt7CisrICBpbnQgaTsKKysgIGZvciAoaSA9IDA7IGkgPCAy NTY7IGkrKykKKysgICAgaWYgKFhPUiAoaXNsb3dlciAoaSksIElTTE9XRVIgKGkpKQorKwl8fCB0 b3VwcGVyIChpKSAhPSBUT1VQUEVSIChpKSkKKysgICAgICByZXR1cm4gMjsKKysgIHJldHVybiAw OworK30KKytfQUNFT0YKKytpZiBhY19mbl9jeHhfdHJ5X3J1biAiJExJTkVOTyI7IHRoZW4gOgor KworK2Vsc2UKKysgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBjb3JlICouY29y ZSBjb3JlLmNvbmZ0ZXN0LiogZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBcCisr ICBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LmJlYW0gY29uZnRlc3QuJGFjX2V4dAorK2Zp CisrCisrZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog cmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfaGVhZGVy X3N0ZGMiID4mNjsgfQorK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisr CisrJGFzX2VjaG8gIiNkZWZpbmUgU1REQ19IRUFERVJTIDEiID4+Y29uZmRlZnMuaAorKworK2Zp CisrCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3 aGV0aGVyIHRpbWUuaCBhbmQgc3lzL3RpbWUuaCBtYXkgYm90aCBiZSBpbmNsdWRlZCIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aW1lLmggYW5kIHN5cy90aW1lLmggbWF5IGJv dGggYmUgaW5jbHVkZWQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl90aW1l K3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisrI2luY2x1ZGUgPHN5 cy90aW1lLmg+CisrI2luY2x1ZGUgPHRpbWUuaD4KKysKKytpbnQKKyttYWluICgpCisreworK2lm ICgoc3RydWN0IHRtICopIDApCisrcmV0dXJuIDA7CisrICA7CisrICByZXR1cm4gMDsKKyt9Cisr X0FDRU9GCisraWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CisrICBh Y19jdl9oZWFkZXJfdGltZT15ZXMKKytlbHNlCisrICBhY19jdl9oZWFkZXJfdGltZT1ubworK2Zp Cisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4k YWNfZXh0CisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogJGFjX2N2X2hlYWRlcl90aW1lIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2hlYWRlcl90 aW1lIiA+JjY7IH0KKytpZiB0ZXN0ICRhY19jdl9oZWFkZXJfdGltZSA9IHllczsgdGhlbgorKwor KyRhc19lY2hvICIjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxIiA+PmNvbmZkZWZzLmgKKysK KytmaQorKworK2ZvciBhY19oZWFkZXIgaW4gY21hdGggXAorKyAgZGVxdWUgXAorKyAgZnN0cmVh bSBcCisrICBpb21hbmlwIFwKKysgIGlvc3RyZWFtIFwKKysgIHNzdHJlYW0gXAorKyAgbGltaXRz IFwKKysgIGxpc3QgXAorKyAgc2V0IFwKKysgIHZlY3RvciBcCisrICBtYXAgXAorKyAgcXVldWUg XAorKyAgc3RkZXhjZXB0IFwKKysgIHN0cmluZworK2RvIDoKKysgIGFzX2FjX0hlYWRlcj1gJGFz X2VjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKKythY19mbl9jeHhf Y2hlY2tfaGVhZGVyX21vbmdyZWwgIiRMSU5FTk8iICIkYWNfaGVhZGVyIiAiJGFzX2FjX0hlYWRl ciIgIiRhY19pbmNsdWRlc19kZWZhdWx0IgorK2lmIGV2YWwgdGVzdCBcInhcJCIkYXNfYWNfSGVh ZGVyIlwiID0geCJ5ZXMiOyB0aGVuIDoKKysgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKysj ZGVmaW5lIGAkYXNfZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9jcHBgIDEKKytfQUNF T0YKKysKKytmaQorKworK2RvbmUKKysKKysKKysKKysjIERlZmluZSBjb25maWd1cmVkIGZpbGVz CisrYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxlIHNvY2ktY29uZmln IHNvY2kucGMgc29jaS9NYWtlZmlsZSBzb2NpL2NvcmUvTWFrZWZpbGUgc29jaS9jb3JlL3Rlc3Qv TWFrZWZpbGUgc29jaS9iYWNrZW5kcy9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL215c3FsL01ha2Vm aWxlIHNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUgc29j aS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtl ZmlsZSBtYW4vTWFrZWZpbGUgZG9jL01ha2VmaWxlIGRvYy9iYWNrZW5kcy9NYWtlZmlsZSBidWls ZC9NYWtlZmlsZSBidWlsZC91bml4L01ha2VmaWxlIGJ1aWxkL21zdmM4MC9NYWtlZmlsZSBidWls ZC9tc3ZjODAvZGxsL01ha2VmaWxlIGJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUiCisrCisrCisr Y2F0ID5jb25mY2FjaGUgPDxcX0FDRU9GCisrIyBUaGlzIGZpbGUgaXMgYSBzaGVsbCBzY3JpcHQg dGhhdCBjYWNoZXMgdGhlIHJlc3VsdHMgb2YgY29uZmlndXJlCisrIyB0ZXN0cyBydW4gb24gdGhp cyBzeXN0ZW0gc28gdGhleSBjYW4gYmUgc2hhcmVkIGJldHdlZW4gY29uZmlndXJlCisrIyBzY3Jp cHRzIGFuZCBjb25maWd1cmUgcnVucywgc2VlIGNvbmZpZ3VyZSdzIG9wdGlvbiAtLWNvbmZpZy1j YWNoZS4KKysjIEl0IGlzIG5vdCB1c2VmdWwgb24gb3RoZXIgc3lzdGVtcy4gIElmIGl0IGNvbnRh aW5zIHJlc3VsdHMgeW91IGRvbid0CisrIyB3YW50IHRvIGtlZXAsIHlvdSBtYXkgcmVtb3ZlIG9y IGVkaXQgaXQuCisrIworKyMgY29uZmlnLnN0YXR1cyBvbmx5IHBheXMgYXR0ZW50aW9uIHRvIHRo ZSBjYWNoZSBmaWxlIGlmIHlvdSBnaXZlIGl0CisrIyB0aGUgLS1yZWNoZWNrIG9wdGlvbiB0byBy ZXJ1biBjb25maWd1cmUuCisrIworKyMgYGFjX2N2X2Vudl9mb28nIHZhcmlhYmxlcyAoc2V0IG9y IHVuc2V0KSB3aWxsIGJlIG92ZXJyaWRkZW4gd2hlbgorKyMgbG9hZGluZyB0aGlzIGZpbGUsIG90 aGVyICp1bnNldCogYGFjX2N2X2Zvbycgd2lsbCBiZSBhc3NpZ25lZCB0aGUKKysjIGZvbGxvd2lu ZyB2YWx1ZXMuCisrCisrX0FDRU9GCisrCisrIyBUaGUgZm9sbG93aW5nIHdheSBvZiB3cml0aW5n IHRoZSBjYWNoZSBtaXNoYW5kbGVzIG5ld2xpbmVzIGluIHZhbHVlcywKKysjIGJ1dCB3ZSBrbm93 IG9mIG5vIHdvcmthcm91bmQgdGhhdCBpcyBzaW1wbGUsIHBvcnRhYmxlLCBhbmQgZWZmaWNpZW50 LgorKyMgU28sIHdlIGtpbGwgdmFyaWFibGVzIGNvbnRhaW5pbmcgbmV3bGluZXMuCisrIyBVbHRy aXggc2ggc2V0IHdyaXRlcyB0byBzdGRlcnIgYW5kIGNhbid0IGJlIHJlZGlyZWN0ZWQgZGlyZWN0 bHksCisrIyBhbmQgc2V0cyB0aGUgaGlnaCBiaXQgaW4gdGhlIGNhY2hlIGZpbGUgdW5sZXNzIHdl IGFzc2lnbiB0byB0aGUgdmFycy4KKysoCisrICBmb3IgYWNfdmFyIGluIGAoc2V0KSAyPiYxIHwg c2VkIC1uICdzL15cKFthLXpBLVpfXVthLXpBLVowLTlfXSpcKT0uKi9cMS9wJ2A7IGRvCisrICAg IGV2YWwgYWNfdmFsPVwkJGFjX3ZhcgorKyAgICBjYXNlICRhY192YWwgaW4gIygKKysgICAgKiR7 YXNfbmx9KikKKysgICAgICBjYXNlICRhY192YXIgaW4gIygKKysgICAgICAqX2N2XyopIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogY2FjaGUgdmFyaWFi bGUgJGFjX3ZhciBjb250YWlucyBhIG5ld2xpbmUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdB Uk5JTkc6IGNhY2hlIHZhcmlhYmxlICRhY192YXIgY29udGFpbnMgYSBuZXdsaW5lIiA+JjI7fSA7 OworKyAgICAgIGVzYWMKKysgICAgICBjYXNlICRhY192YXIgaW4gIygKKysgICAgICBfIHwgSUZT IHwgYXNfbmwpIDs7ICMoCisrICAgICAgQkFTSF9BUkdWIHwgQkFTSF9TT1VSQ0UpIGV2YWwgJGFj X3Zhcj0gOzsgIygKKysgICAgICAqKSB7IGV2YWwgJGFjX3Zhcj07IHVuc2V0ICRhY192YXI7fSA7 OworKyAgICAgIGVzYWMgOzsKKysgICAgZXNhYworKyAgZG9uZQorKworKyAgKHNldCkgMj4mMSB8 CisrICAgIGNhc2UgJGFzX25sYChhY19zcGFjZT0nICc7IHNldCkgMj4mMWAgaW4gIygKKysgICAg KiR7YXNfbmx9YWNfc3BhY2U9XCAqKQorKyAgICAgICMgYHNldCcgZG9lcyBub3QgcXVvdGUgY29y cmVjdGx5LCBzbyBhZGQgcXVvdGVzOiBkb3VibGUtcXVvdGUKKysgICAgICAjIHN1YnN0aXR1dGlv biB0dXJucyBcXFxcIGludG8gXFwsIGFuZCBzZWQgdHVybnMgXFwgaW50byBcLgorKyAgICAgIHNl ZCAtbiBcCisrCSJzLycvJ1xcXFwnJy9nOworKwkgIHMvXlxcKFtfJGFzX2NyX2FsbnVtXSpfY3Zf W18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9J1xcMicvcCIKKysgICAgICA7OyAjKAor KyAgICAqKQorKyAgICAgICMgYHNldCcgcXVvdGVzIGNvcnJlY3RseSBhcyByZXF1aXJlZCBieSBQ T1NJWCwgc28gZG8gbm90IGFkZCBxdW90ZXMuCisrICAgICAgc2VkIC1uICIvXltfJGFzX2NyX2Fs bnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKj0vcCIKKysgICAgICA7OworKyAgICBlc2FjIHwKKysg ICAgc29ydAorKykgfAorKyAgc2VkICcKKysgICAgIC9eYWNfY3ZfZW52Xy9iIGVuZAorKyAgICAg dCBjbGVhcgorKyAgICAgOmNsZWFyCisrICAgICBzL15cKFtePV0qXCk9XCguKlt7fV0uKlwpJC90 ZXN0ICIke1wxK3NldH0iID0gc2V0IHx8ICYvCisrICAgICB0IGVuZAorKyAgICAgcy9eXChbXj1d KlwpPVwoLipcKSQvXDE9JHtcMT1cMn0vCisrICAgICA6ZW5kJyA+PmNvbmZjYWNoZQorK2lmIGRp ZmYgIiRjYWNoZV9maWxlIiBjb25mY2FjaGUgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UK KysgIGlmIHRlc3QgLXcgIiRjYWNoZV9maWxlIjsgdGhlbgorKyAgICB0ZXN0ICJ4JGNhY2hlX2Zp bGUiICE9ICJ4L2Rldi9udWxsIiAmJgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogdXBkYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNQorKyRhc19lY2hv ICIkYXNfbWU6IHVwZGF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjY7fQorKyAgICBjYXQgY29u ZmNhY2hlID4kY2FjaGVfZmlsZQorKyAgZWxzZQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IG5vdCB1cGRhdGluZyB1bndyaXRhYmxlIGNhY2hlICRjYWNoZV9m aWxlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBub3QgdXBkYXRpbmcgdW53cml0YWJsZSBjYWNo ZSAkY2FjaGVfZmlsZSIgPiY2O30KKysgIGZpCisrZmkKKytybSAtZiBjb25mY2FjaGUKKysKKyt0 ZXN0ICJ4JHByZWZpeCIgPSB4Tk9ORSAmJiBwcmVmaXg9JGFjX2RlZmF1bHRfcHJlZml4CisrIyBM ZXQgbWFrZSBleHBhbmQgZXhlY19wcmVmaXguCisrdGVzdCAieCRleGVjX3ByZWZpeCIgPSB4Tk9O RSAmJiBleGVjX3ByZWZpeD0nJHtwcmVmaXh9JworKworK0RFRlM9LURIQVZFX0NPTkZJR19ICisr CisrYWNfbGlib2Jqcz0KKythY19sdGxpYm9ianM9CisrVT0KKytmb3IgYWNfaSBpbiA6ICRMSUJP QkpTOyBkbyB0ZXN0ICJ4JGFjX2kiID0geDogJiYgY29udGludWUKKysgICMgMS4gUmVtb3ZlIHRo ZSBleHRlbnNpb24sIGFuZCAkVSBpZiBhbHJlYWR5IGluc3RhbGxlZC4KKysgIGFjX3NjcmlwdD0n cy9cJFVcLi8uLztzL1wubyQvLztzL1wub2JqJC8vJworKyAgYWNfaT1gJGFzX2VjaG8gIiRhY19p IiB8IHNlZCAiJGFjX3NjcmlwdCJgCisrICAjIDIuIFByZXBlbmQgTElCT0JKRElSLiAgV2hlbiB1 c2VkIHdpdGggYXV0b21ha2U+PTEuMTAgTElCT0JKRElSCisrICAjICAgIHdpbGwgYmUgc2V0IHRv IHRoZSBkaXJlY3Rvcnkgd2hlcmUgTElCT0JKUyBvYmplY3RzIGFyZSBidWlsdC4KKysgIGFzX2Zu X2FwcGVuZCBhY19saWJvYmpzICIgXCR7TElCT0JKRElSfSRhY19pXCRVLiRhY19vYmpleHQiCisr ICBhc19mbl9hcHBlbmQgYWNfbHRsaWJvYmpzICIgXCR7TElCT0JKRElSfSRhY19pIickVS5sbycK Kytkb25lCisrTElCT0JKUz0kYWNfbGlib2JqcworKworK0xUTElCT0JKUz0kYWNfbHRsaWJvYmpz CisrCisrCisrIGlmIHRlc3QgLW4gIiRFWEVFWFQiOyB0aGVuCisrICBhbV9fRVhFRVhUX1RSVUU9 CisrICBhbV9fRVhFRVhUX0ZBTFNFPScjJworK2Vsc2UKKysgIGFtX19FWEVFWFRfVFJVRT0nIycK KysgIGFtX19FWEVFWFRfRkFMU0U9CisrZmkKKysKKytpZiB0ZXN0IC16ICIke0hBVkVfQ1BQVU5J VF9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX0NQUFVOSVRfRkFMU0V9IjsgdGhlbgorKyAgYXNf Zm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiSEFWRV9DUFBVTklUXCIgd2FzIG5ldmVyIGRlZmlu ZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRp dGlvbmFsbHkuIiAiJExJTkVOTyIgNQorK2ZpCisraWYgdGVzdCAteiAiJHtBTURFUF9UUlVFfSIg JiYgdGVzdCAteiAiJHtBTURFUF9GQUxTRX0iOyB0aGVuCisrICBhc19mbl9lcnJvciAkPyAiY29u ZGl0aW9uYWwgXCJBTURFUFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFu cyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUK KytmaQorK2lmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDWFhfVFJVRX0iICYmIHRlc3QgLXogIiR7 YW1fX2Zhc3RkZXBDWFhfRkFMU0V9IjsgdGhlbgorKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlv bmFsIFwiYW1fX2Zhc3RkZXBDWFhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMg bWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5P IiA1CisrZmkKKytpZiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ0NfVFJVRX0iICYmIHRlc3QgLXog IiR7YW1fX2Zhc3RkZXBDQ19GQUxTRX0iOyB0aGVuCisrICBhc19mbl9lcnJvciAkPyAiY29uZGl0 aW9uYWwgXCJhbV9fZmFzdGRlcENDXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlz IG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVO TyIgNQorK2ZpCisraWYgdGVzdCAteiAiJHtTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUV9IiAmJiB0 ZXN0IC16ICIke1NPQ0lfSEVBREVSU19CVVJJRURfRkFMU0V9IjsgdGhlbgorKyAgYXNfZm5fZXJy b3IgJD8gImNvbmRpdGlvbmFsIFwiU09DSV9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZp bmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25k aXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKKytmaQorK2lmIHRlc3QgLXogIiR7U09DSV9NWVNRTF9I RUFERVJTX0JVUklFRF9UUlVFfSIgJiYgdGVzdCAteiAiJHtTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEX0ZBTFNFfSI7IHRoZW4KKysgIGFzX2ZuX2Vycm9yICQ/ICJjb25kaXRpb25hbCBcIlNPQ0lf TVlTUUxfSEVBREVSU19CVVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMg bWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5P IiA1CisrZmkKKytpZiB0ZXN0IC16ICIke1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9U UlVFfSIgJiYgdGVzdCAteiAiJHtTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfRkFMU0V9 IjsgdGhlbgorKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5z IHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQor K2ZpCisraWYgdGVzdCAteiAiJHtIQVZFX01ZU1FMX1RSVUV9IiAmJiB0ZXN0IC16ICIke0hBVkVf TVlTUUxfRkFMU0V9IjsgdGhlbgorKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiSEFW RV9NWVNRTFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFj cm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKKytmaQorK2lm IHRlc3QgLXogIiR7SEFWRV9PUkFDTEVfVFJVRX0iICYmIHRlc3QgLXogIiR7SEFWRV9PUkFDTEVf RkFMU0V9IjsgdGhlbgorKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiSEFWRV9PUkFD TEVcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdh cyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CisrZmkKKytpZiB0ZXN0 IC16ICIke0hBVkVfUE9TVEdSRVNRTF9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX1BPU1RHUkVT UUxfRkFMU0V9IjsgdGhlbgorKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiSEFWRV9Q T1NUR1JFU1FMXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBt YWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQorK2ZpCisr aWYgdGVzdCAteiAiJHtJTkZPX0RPQ19UUlVFfSIgJiYgdGVzdCAteiAiJHtJTkZPX0RPQ19GQUxT RX0iOyB0aGVuCisrICBhc19mbl9lcnJvciAkPyAiY29uZGl0aW9uYWwgXCJJTkZPX0RPQ1wiIHdh cyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkg aW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKKytmaQorK2lmIHRlc3QgLXogIiR7 SFRNTF9ET0NfVFJVRX0iICYmIHRlc3QgLXogIiR7SFRNTF9ET0NfRkFMU0V9IjsgdGhlbgorKyAg YXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiSFRNTF9ET0NcIiB3YXMgbmV2ZXIgZGVmaW5l ZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0 aW9uYWxseS4iICIkTElORU5PIiA1CisrZmkKKytpZiB0ZXN0IC16ICIke1JVTl9URVNUU19UUlVF fSIgJiYgdGVzdCAteiAiJHtSVU5fVEVTVFNfRkFMU0V9IjsgdGhlbgorKyAgYXNfZm5fZXJyb3Ig JD8gImNvbmRpdGlvbmFsIFwiUlVOX1RFU1RTXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxs eSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAi JExJTkVOTyIgNQorK2ZpCisrCisrOiAke0NPTkZJR19TVEFUVVM9Li9jb25maWcuc3RhdHVzfQor K2FjX3dyaXRlX2ZhaWw9MAorK2FjX2NsZWFuX2ZpbGVzX3NhdmU9JGFjX2NsZWFuX2ZpbGVzCisr YWNfY2xlYW5fZmlsZXM9IiRhY19jbGVhbl9maWxlcyAkQ09ORklHX1NUQVRVUyIKKyt7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNyZWF0aW5nICRDT05GSUdfU1RBVFVT IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgPiY2O30K Kythc193cml0ZV9mYWlsPTAKKytjYXQgPiRDT05GSUdfU1RBVFVTIDw8X0FTRU9GIHx8IGFzX3dy aXRlX2ZhaWw9MQorKyMhICRTSEVMTAorKyMgR2VuZXJhdGVkIGJ5ICRhc19tZS4KKysjIFJ1biB0 aGlzIGZpbGUgdG8gcmVjcmVhdGUgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4KKysjIENvbXBp bGVyIG91dHB1dCBwcm9kdWNlZCBieSBjb25maWd1cmUsIHVzZWZ1bCBmb3IgZGVidWdnaW5nCisr IyBjb25maWd1cmUsIGlzIGluIGNvbmZpZy5sb2cgaWYgaXQgZXhpc3RzLgorKworK2RlYnVnPWZh bHNlCisrYWNfY3NfcmVjaGVjaz1mYWxzZQorK2FjX2NzX3NpbGVudD1mYWxzZQorKworK1NIRUxM PVwke0NPTkZJR19TSEVMTC0kU0hFTEx9CisrZXhwb3J0IFNIRUxMCisrX0FTRU9GCisrY2F0ID4+ JENPTkZJR19TVEFUVVMgPDxcX0FTRU9GIHx8IGFzX3dyaXRlX2ZhaWw9MQorKyMjIC0tLS0tLS0t LS0tLS0tLS0tLS0tICMjCisrIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gIyMKKysjIyAtLS0tLS0t LS0tLS0tLS0tLS0tLSAjIworKworKyMgQmUgbW9yZSBCb3VybmUgY29tcGF0aWJsZQorK0RVQUxD QVNFPTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKKytpZiB0ZXN0IC1uICIke1pTSF9W RVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOgorKyAg ZW11bGF0ZSBzaAorKyAgTlVMTENNRD06CisrICAjIFByZS00LjIgdmVyc2lvbnMgb2YgWnNoIGRv IHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKKysgICMgaXMgY29udHJhcnkgdG8g b3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCisrICBhbGlhcyAtZyAnJHsxKyIkQCJ9 Jz0nIiRAIicKKysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBgKHNldCAt bykgMj4vZGV2L251bGxgIGluICMoCisrICAqcG9zaXgqKSA6CisrICAgIHNldCAtbyBwb3NpeCA7 OyAjKAorKyAgKikgOgorKyAgICAgOzsKKytlc2FjCisrZmkKKysKKysKKythc19ubD0nCisrJwor K2V4cG9ydCBhc19ubAorKyMgUHJpbnRpbmcgYSBsb25nIHN0cmluZyBjcmFzaGVzIFNvbGFyaXMg NyAvdXNyL2Jpbi9wcmludGYuCisrYXNfZWNobz0nXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXCcKKythc19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRh c19lY2hvJGFzX2VjaG8KKythc19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hv JGFzX2VjaG8kYXNfZWNobworKyMgUHJlZmVyIGEga3NoIHNoZWxsIGJ1aWx0aW4gb3ZlciBhbiBl eHRlcm5hbCBwcmludGYgcHJvZ3JhbSBvbiBTb2xhcmlzLAorKyMgYnV0IHdpdGhvdXQgd2FzdGlu ZyBmb3JrcyBmb3IgYmFzaCBvciB6c2guCisraWYgdGVzdCAteiAiJEJBU0hfVkVSU0lPTiRaU0hf VkVSU0lPTiIgXAorKyAgICAmJiAodGVzdCAiWGBwcmludCAtciAtLSAkYXNfZWNob2AiID0gIlgk YXNfZWNobyIpIDI+L2Rldi9udWxsOyB0aGVuCisrICBhc19lY2hvPSdwcmludCAtciAtLScKKysg IGFzX2VjaG9fbj0ncHJpbnQgLXJuIC0tJworK2VsaWYgKHRlc3QgIlhgcHJpbnRmICVzICRhc19l Y2hvYCIgPSAiWCRhc19lY2hvIikgMj4vZGV2L251bGw7IHRoZW4KKysgIGFzX2VjaG89J3ByaW50 ZiAlc1xuJworKyAgYXNfZWNob19uPSdwcmludGYgJXMnCisrZWxzZQorKyAgaWYgdGVzdCAiWGAo L3Vzci91Y2IvZWNobyAtbiAtbiAkYXNfZWNobykgMj4vZGV2L251bGxgIiA9ICJYLW4gJGFzX2Vj aG8iOyB0aGVuCisrICAgIGFzX2VjaG9fYm9keT0nZXZhbCAvdXNyL3VjYi9lY2hvIC1uICIkMSRh c19ubCInCisrICAgIGFzX2VjaG9fbj0nL3Vzci91Y2IvZWNobyAtbicKKysgIGVsc2UKKysgICAg YXNfZWNob19ib2R5PSdldmFsIGV4cHIgIlgkMSIgOiAiWFxcKC4qXFwpIicKKysgICAgYXNfZWNo b19uX2JvZHk9J2V2YWwKKysgICAgICBhcmc9JDE7CisrICAgICAgY2FzZSAkYXJnIGluICMoCisr ICAgICAgKiIkYXNfbmwiKikKKysJZXhwciAiWCRhcmciIDogIlhcXCguKlxcKSRhc19ubCI7Cisr CWFyZz1gZXhwciAiWCRhcmciIDogIi4qJGFzX25sXFwoLipcXCkiYDs7CisrICAgICAgZXNhYzsK KysgICAgICBleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpIiB8IHRyIC1kICIkYXNfbmwiCisrICAg ICcKKysgICAgZXhwb3J0IGFzX2VjaG9fbl9ib2R5CisrICAgIGFzX2VjaG9fbj0nc2ggLWMgJGFz X2VjaG9fbl9ib2R5IGFzX2VjaG8nCisrICBmaQorKyAgZXhwb3J0IGFzX2VjaG9fYm9keQorKyAg YXNfZWNobz0nc2ggLWMgJGFzX2VjaG9fYm9keSBhc19lY2hvJworK2ZpCisrCisrIyBUaGUgdXNl ciBpcyBhbHdheXMgcmlnaHQuCisraWYgdGVzdCAiJHtQQVRIX1NFUEFSQVRPUitzZXR9IiAhPSBz ZXQ7IHRoZW4KKysgIFBBVEhfU0VQQVJBVE9SPToKKysgIChQQVRIPScvYmluOy9iaW4nOyBGUEFU SD0kUEFUSDsgc2ggLWMgOikgPi9kZXYvbnVsbCAyPiYxICYmIHsKKysgICAgKFBBVEg9Jy9iaW46 L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+JjEgfHwKKysgICAgICBQ QVRIX1NFUEFSQVRPUj0nOycKKysgIH0KKytmaQorKworKworKyMgSUZTCisrIyBXZSBuZWVkIHNw YWNlLCB0YWIgYW5kIG5ldyBsaW5lLCBpbiBwcmVjaXNlbHkgdGhhdCBvcmRlci4gIFF1b3Rpbmcg aXMKKysjIHRoZXJlIHRvIHByZXZlbnQgZWRpdG9ycyBmcm9tIGNvbXBsYWluaW5nIGFib3V0IHNw YWNlLXRhYi4KKysjIChJZiBfQVNfUEFUSF9XQUxLIHdlcmUgY2FsbGVkIHdpdGggSUZTIHVuc2V0 LCBpdCB3b3VsZCBkaXNhYmxlIHdvcmQKKysjIHNwbGl0dGluZyBieSBzZXR0aW5nIElGUyB0byBl bXB0eSB2YWx1ZS4pCisrSUZTPSIgIiIJJGFzX25sIgorKworKyMgRmluZCB3aG8gd2UgYXJlLiAg TG9vayBpbiB0aGUgcGF0aCBpZiB3ZSBjb250YWluIG5vIGRpcmVjdG9yeSBzZXBhcmF0b3IuCisr Y2FzZSAkMCBpbiAjKCgKKysgICpbXFwvXSogKSBhc19teXNlbGY9JDAgOzsKKysgICopIGFzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisr ZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u CisrICAgIHRlc3QgLXIgIiRhc19kaXIvJDAiICYmIGFzX215c2VsZj0kYXNfZGlyLyQwICYmIGJy ZWFrCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgICAgOzsKKytlc2FjCisrIyBX ZSBkaWQgbm90IGZpbmQgb3Vyc2VsdmVzLCBtb3N0IHByb2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBz aCBDT01NQU5EJworKyMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRo ZSBwYXRoLgorK2lmIHRlc3QgIngkYXNfbXlzZWxmIiA9IHg7IHRoZW4KKysgIGFzX215c2VsZj0k MAorK2ZpCisraWYgdGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhlbgorKyAgJGFzX2VjaG8gIiRh c19teXNlbGY6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1 dGUgZmlsZSBuYW1lIiA+JjIKKysgIGV4aXQgMQorK2ZpCisrCisrIyBVbnNldCB2YXJpYWJsZXMg dGhhdCB3ZSBkbyBub3QgbmVlZCBhbmQgd2hpY2ggY2F1c2UgYnVncyAoZS5nLiBpbgorKyMgcHJl LTMuMCBVV0lOIGtzaCkuICBCdXQgZG8gbm90IGNhdXNlIGJ1Z3MgaW4gYmFzaCAyLjAxOyB0aGUg Inx8IGV4aXQgMSIKKysjIHN1cHByZXNzZXMgYW55ICJTZWdtZW50YXRpb24gZmF1bHQiIG1lc3Nh Z2UgdGhlcmUuICAnKCgnIGNvdWxkCisrIyB0cmlnZ2VyIGEgYnVnIGluIHBka3NoIDUuMi4xNC4K Kytmb3IgYXNfdmFyIGluIEJBU0hfRU5WIEVOViBNQUlMIE1BSUxQQVRICisrZG8gZXZhbCB0ZXN0 IHhcJHskYXNfdmFyK3NldH0gPSB4c2V0IFwKKysgICYmICggKHVuc2V0ICRhc192YXIpIHx8IGV4 aXQgMSkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0ICRhc192YXIgfHwgOgorK2RvbmUKKytQUzE9 JyQgJworK1BTMj0nPiAnCisrUFM0PScrICcKKysKKysjIE5MUyBudWlzYW5jZXMuCisrTENfQUxM PUMKKytleHBvcnQgTENfQUxMCisrTEFOR1VBR0U9QworK2V4cG9ydCBMQU5HVUFHRQorKworKyMg Q0RQQVRILgorKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgK KysKKysKKysjIGFzX2ZuX2Vycm9yIFNUQVRVUyBFUlJPUiBbTElORU5PIExPR19GRF0KKysjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIE91dHB1dCAiYGJhc2Vu YW1lICQwYDogZXJyb3I6IEVSUk9SIiB0byBzdGRlcnIuIElmIExJTkVOTyBhbmQgTE9HX0ZEIGFy ZQorKyMgcHJvdmlkZWQsIGFsc28gb3V0cHV0IHRoZSBlcnJvciB0byBMT0dfRkQsIHJlZmVyZW5j aW5nIExJTkVOTy4gVGhlbiBleGl0IHRoZQorKyMgc2NyaXB0IHdpdGggU1RBVFVTLCB1c2luZyAx IGlmIHRoYXQgd2FzIDAuCisrYXNfZm5fZXJyb3IgKCkKKyt7CisrICBhc19zdGF0dXM9JDE7IHRl c3QgJGFzX3N0YXR1cyAtZXEgMCAmJiBhc19zdGF0dXM9MQorKyAgaWYgdGVzdCAiJDQiOyB0aGVu CisrICAgIGFzX2xpbmVubz0ke2FzX2xpbmVuby0iJDMifSBhc19saW5lbm9fc3RhY2s9YXNfbGlu ZW5vX3N0YWNrPSRhc19saW5lbm9fc3RhY2sKKysgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogZXJyb3I6ICQyIiA+JiQ0CisrICBmaQorKyAgJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6ICQyIiA+JjIKKysgIGFzX2ZuX2V4aXQgJGFzX3N0YXR1cworK30gIyBhc19mbl9l cnJvcgorKworKworKyMgYXNfZm5fc2V0X3N0YXR1cyBTVEFUVVMKKysjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrIyBTZXQgJD8gdG8gU1RBVFVTLCB3aXRob3V0IGZvcmtpbmcuCisrYXNfZm5f c2V0X3N0YXR1cyAoKQorK3sKKysgIHJldHVybiAkMQorK30gIyBhc19mbl9zZXRfc3RhdHVzCisr CisrIyBhc19mbl9leGl0IFNUQVRVUworKyMgLS0tLS0tLS0tLS0tLS0tLS0KKysjIEV4aXQgdGhl IHNoZWxsIHdpdGggU1RBVFVTLCBldmVuIGluIGEgInRyYXAgMCIgb3IgInNldCAtZSIgY29udGV4 dC4KKythc19mbl9leGl0ICgpCisreworKyAgc2V0ICtlCisrICBhc19mbl9zZXRfc3RhdHVzICQx CisrICBleGl0ICQxCisrfSAjIGFzX2ZuX2V4aXQKKysKKysjIGFzX2ZuX3Vuc2V0IFZBUgorKyMg LS0tLS0tLS0tLS0tLS0tCisrIyBQb3J0YWJseSB1bnNldCBWQVIuCisrYXNfZm5fdW5zZXQgKCkK Kyt7CisrICB7IGV2YWwgJDE9OyB1bnNldCAkMTt9CisrfQorK2FzX3Vuc2V0PWFzX2ZuX3Vuc2V0 CisrIyBhc19mbl9hcHBlbmQgVkFSIFZBTFVFCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr IyBBcHBlbmQgdGhlIHRleHQgaW4gVkFMVUUgdG8gdGhlIGVuZCBvZiB0aGUgZGVmaW5pdGlvbiBj b250YWluZWQgaW4gVkFSLiBUYWtlCisrIyBhZHZhbnRhZ2Ugb2YgYW55IHNoZWxsIG9wdGltaXph dGlvbnMgdGhhdCBhbGxvdyBhbW9ydGl6ZWQgbGluZWFyIGdyb3d0aCBvdmVyCisrIyByZXBlYXRl ZCBhcHBlbmRzLCBpbnN0ZWFkIG9mIHRoZSB0eXBpY2FsIHF1YWRyYXRpYyBncm93dGggcHJlc2Vu dCBpbiBuYWl2ZQorKyMgaW1wbGVtZW50YXRpb25zLgorK2lmIChldmFsICJhc192YXI9MTsgYXNf dmFyKz0yOyB0ZXN0IHhcJGFzX3ZhciA9IHgxMiIpIDI+L2Rldi9udWxsOyB0aGVuIDoKKysgIGV2 YWwgJ2FzX2ZuX2FwcGVuZCAoKQorKyAgeworKyAgICBldmFsICQxKz1cJDIKKysgIH0nCisrZWxz ZQorKyAgYXNfZm5fYXBwZW5kICgpCisrICB7CisrICAgIGV2YWwgJDE9XCQkMVwkMgorKyAgfQor K2ZpICMgYXNfZm5fYXBwZW5kCisrCisrIyBhc19mbl9hcml0aCBBUkcuLi4KKysjIC0tLS0tLS0t LS0tLS0tLS0tLQorKyMgUGVyZm9ybSBhcml0aG1ldGljIGV2YWx1YXRpb24gb24gdGhlIEFSR3Ms IGFuZCBzdG9yZSB0aGUgcmVzdWx0IGluIHRoZQorKyMgZ2xvYmFsICRhc192YWwuIFRha2UgYWR2 YW50YWdlIG9mIHNoZWxscyB0aGF0IGNhbiBhdm9pZCBmb3Jrcy4gVGhlIGFyZ3VtZW50cworKyMg bXVzdCBiZSBwb3J0YWJsZSBhY3Jvc3MgJCgoKSkgYW5kIGV4cHIuCisraWYgKGV2YWwgInRlc3Qg XCQoKCAxICsgMSApKSA9IDIiKSAyPi9kZXYvbnVsbDsgdGhlbiA6CisrICBldmFsICdhc19mbl9h cml0aCAoKQorKyAgeworKyAgICBhc192YWw9JCgoICQqICkpCisrICB9JworK2Vsc2UKKysgIGFz X2ZuX2FyaXRoICgpCisrICB7CisrICAgIGFzX3ZhbD1gZXhwciAiJEAiIHx8IHRlc3QgJD8gLWVx IDFgCisrICB9CisrZmkgIyBhc19mbl9hcml0aAorKworKworK2lmIGV4cHIgYSA6ICdcKGFcKScg Pi9kZXYvbnVsbCAyPiYxICYmCisrICAgdGVzdCAiWGBleHByIDAwMDAxIDogJy4qXCguLi5cKSdg IiA9IFgwMDE7IHRoZW4KKysgIGFzX2V4cHI9ZXhwcgorK2Vsc2UKKysgIGFzX2V4cHI9ZmFsc2UK KytmaQorKworK2lmIChiYXNlbmFtZSAtLSAvKSA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAiWGBi YXNlbmFtZSAtLSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KKysgIGFzX2Jhc2VuYW1lPWJhc2VuYW1l CisrZWxzZQorKyAgYXNfYmFzZW5hbWU9ZmFsc2UKKytmaQorKworK2lmIChhc19kaXI9YGRpcm5h bWUgLS0gL2AgJiYgdGVzdCAiWCRhc19kaXIiID0gWC8pID4vZGV2L251bGwgMj4mMTsgdGhlbgor KyAgYXNfZGlybmFtZT1kaXJuYW1lCisrZWxzZQorKyAgYXNfZGlybmFtZT1mYWxzZQorK2ZpCisr CisrYXNfbWU9YCRhc19iYXNlbmFtZSAtLSAiJDAiIHx8CisrJGFzX2V4cHIgWC8iJDAiIDogJy4q L1woW14vXVteL10qXCkvKiQnIFx8IFwKKysJIFgiJDAiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBY IiQwIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKKyskYXNfZWNobyBYLyIkMCIgfAor KyAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sKKysJICAgIHMvL1wxLworKwkgICAg cQorKwkgIH0KKysJICAvXlhcL1woXC9cL1wpJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJ ICB9CisrCSAgL15YXC9cKFwvXCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9Cisr CSAgcy8uKi8uLzsgcSdgCisrCisrIyBBdm9pZCBkZXBlbmRpbmcgdXBvbiBDaGFyYWN0ZXIgUmFu Z2VzLgorK2FzX2NyX2xldHRlcnM9J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JworK2FzX2Ny X0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJworK2FzX2NyX0xldHRlcnM9JGFz X2NyX2xldHRlcnMkYXNfY3JfTEVUVEVSUworK2FzX2NyX2RpZ2l0cz0nMDEyMzQ1Njc4OScKKyth c19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKKysKKytFQ0hPX0M9IEVDSE9f Tj0gRUNIT19UPQorK2Nhc2UgYGVjaG8gLW4geGAgaW4gIygoKCgoCisrLW4qKQorKyAgY2FzZSBg ZWNobyAneHlcYydgIGluCisrICAqYyopIEVDSE9fVD0nCSc7OwkjIEVDSE9fVCBpcyBzaW5nbGUg dGFiIGNoYXJhY3Rlci4KKysgIHh5KSAgRUNIT19DPSdcYyc7OworKyAgKikgICBlY2hvIGBlY2hv IGtzaDg4IGJ1ZyBvbiBBSVggNi4xYCA+IC9kZXYvbnVsbAorKyAgICAgICBFQ0hPX1Q9JwknOzsK KysgIGVzYWM7OworKyopCisrICBFQ0hPX049Jy1uJzs7CisrZXNhYworKworK3JtIC1mIGNvbmYk JCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCisraWYgdGVzdCAtZCBjb25mJCQuZGlyOyB0aGVuCisr ICBybSAtZiBjb25mJCQuZGlyL2NvbmYkJC5maWxlCisrZWxzZQorKyAgcm0gLWYgY29uZiQkLmRp cgorKyAgbWtkaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAorK2ZpCisraWYgKGVjaG8gPmNvbmYk JC5maWxlKSAyPi9kZXYvbnVsbDsgdGhlbgorKyAgaWYgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQk IDI+L2Rldi9udWxsOyB0aGVuCisrICAgIGFzX2xuX3M9J2xuIC1zJworKyAgICAjIC4uLiBidXQg dGhlcmUgYXJlIHR3byBnb3RjaGFzOgorKyAgICAjIDEpIE9uIE1TWVMsIGJvdGggYGxuIC1zIGZp bGUgZGlyJyBhbmQgYGxuIGZpbGUgZGlyJyBmYWlsLgorKyAgICAjIDIpIERKR1BQIDwgMi4wNCBo YXMgbm8gc3ltbGlua3M7IGBsbiAtcycgY3JlYXRlcyBhIHdyYXBwZXIgZXhlY3V0YWJsZS4KKysg ICAgIyBJbiBib3RoIGNhc2VzLCB3ZSBoYXZlIHRvIGRlZmF1bHQgdG8gYGNwIC1wJy4KKysgICAg bG4gLXMgY29uZiQkLmZpbGUgY29uZiQkLmRpciAyPi9kZXYvbnVsbCAmJiB0ZXN0ICEgLWYgY29u ZiQkLmV4ZSB8fAorKyAgICAgIGFzX2xuX3M9J2NwIC1wJworKyAgZWxpZiBsbiBjb25mJCQuZmls ZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KKysgICAgYXNfbG5fcz1sbgorKyAgZWxzZQorKyAg ICBhc19sbl9zPSdjcCAtcCcKKysgIGZpCisrZWxzZQorKyAgYXNfbG5fcz0nY3AgLXAnCisrZmkK KytybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZGlyL2NvbmYkJC5maWxlIGNvbmYkJC5m aWxlCisrcm1kaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAorKworKworKyMgYXNfZm5fbWtkaXJf cAorKyMgLS0tLS0tLS0tLS0tLQorKyMgQ3JlYXRlICIkYXNfZGlyIiBhcyBhIGRpcmVjdG9yeSwg aW5jbHVkaW5nIHBhcmVudHMgaWYgbmVjZXNzYXJ5LgorK2FzX2ZuX21rZGlyX3AgKCkKKyt7Cisr CisrICBjYXNlICRhc19kaXIgaW4gIygKKysgIC0qKSBhc19kaXI9Li8kYXNfZGlyOzsKKysgIGVz YWMKKysgIHRlc3QgLWQgIiRhc19kaXIiIHx8IGV2YWwgJGFzX21rZGlyX3AgfHwgeworKyAgICBh c19kaXJzPQorKyAgICB3aGlsZSA6OyBkbworKyAgICAgIGNhc2UgJGFzX2RpciBpbiAjKAorKyAg ICAgICpcJyopIGFzX3FkaXI9YCRhc19lY2hvICIkYXNfZGlyIiB8IHNlZCAicy8nLydcXFxcXFxc XCcnL2ciYDs7ICMnKAorKyAgICAgICopIGFzX3FkaXI9JGFzX2Rpcjs7CisrICAgICAgZXNhYwor KyAgICAgIGFzX2RpcnM9IickYXNfcWRpcicgJGFzX2RpcnMiCisrICAgICAgYXNfZGlyPWAkYXNf ZGlybmFtZSAtLSAiJGFzX2RpciIgfHwKKyskYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14v XVwpLy8qW14vXVteL10qLyokJyBcfCBcCisrCSBYIiRhc19kaXIiIDogJ1hcKC8vXClbXi9dJyBc fCBcCisrCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiRhc19kaXIiIDogJ1hc KC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRhc19lY2hvIFgiJGFzX2RpciIgfAorKyAgICBz ZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveworKwkgICAgcy8vXDEvCisrCSAg ICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKKysJICAgIHMvL1wxLworKwkgICAg cQorKwkgIH0KKysJICAvXlhcKFwvXC9cKSQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAg fQorKwkgIC9eWFwoXC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICBz Ly4qLy4vOyBxJ2AKKysgICAgICB0ZXN0IC1kICIkYXNfZGlyIiAmJiBicmVhaworKyAgICBkb25l CisrICAgIHRlc3QgLXogIiRhc19kaXJzIiB8fCBldmFsICJta2RpciAkYXNfZGlycyIKKysgIH0g fHwgdGVzdCAtZCAiJGFzX2RpciIgfHwgYXNfZm5fZXJyb3IgJD8gImNhbm5vdCBjcmVhdGUgZGly ZWN0b3J5ICRhc19kaXIiCisrCisrCisrfSAjIGFzX2ZuX21rZGlyX3AKKytpZiBta2RpciAtcCAu IDI+L2Rldi9udWxsOyB0aGVuCisrICBhc19ta2Rpcl9wPSdta2RpciAtcCAiJGFzX2RpciInCisr ZWxzZQorKyAgdGVzdCAtZCAuLy1wICYmIHJtZGlyIC4vLXAKKysgIGFzX21rZGlyX3A9ZmFsc2UK KytmaQorKworK2lmIHRlc3QgLXggLyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGFzX3Rlc3Rf eD0ndGVzdCAteCcKKytlbHNlCisrICBpZiBscyAtZEwgLyA+L2Rldi9udWxsIDI+JjE7IHRoZW4K KysgICAgYXNfbHNfTF9vcHRpb249TAorKyAgZWxzZQorKyAgICBhc19sc19MX29wdGlvbj0KKysg IGZpCisrICBhc190ZXN0X3g9JworKyAgICBldmFsIHNoIC1jICdcJycKKysgICAgICBpZiB0ZXN0 IC1kICIkMSI7IHRoZW4KKysJdGVzdCAtZCAiJDEvLiI7CisrICAgICAgZWxzZQorKwljYXNlICQx IGluICMoCisrCS0qKXNldCAiLi8kMSI7OworKwllc2FjOworKwljYXNlIGBscyAtbGQnJGFzX2xz X0xfb3B0aW9uJyAiJDEiIDI+L2Rldi9udWxsYCBpbiAjKCgKKysJPz8/W3N4XSopOjs7KilmYWxz ZTs7ZXNhYztmaQorKyAgICAnXCcnIHNoCisrICAnCisrZmkKKythc19leGVjdXRhYmxlX3A9JGFz X3Rlc3RfeAorKworKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxp ZCBDUFAgbmFtZS4KKythc190cl9jcHA9ImV2YWwgc2VkICd5JSokYXNfY3JfbGV0dGVycyVQJGFz X2NyX0xFVFRFUlMlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgorKworKyMgU2VkIGV4cHJlc3Np b24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCB2YXJpYWJsZSBuYW1lLgorK2FzX3RyX3No PSJldmFsIHNlZCAneSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCisrCisrCisrZXhl YyA2PiYxCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBN YWluIGJvZHkgb2YgJENPTkZJR19TVEFUVVMgc2NyaXB0LiAjIworKyMjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrX0FTRU9GCisrdGVzdCAkYXNfd3JpdGVfZmFpbCA9 IDAgJiYgY2htb2QgK3ggJENPTkZJR19TVEFUVVMgfHwgYWNfd3JpdGVfZmFpbD0xCisrCisrY2F0 ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKyMgU2F2ZSB0 aGUgbG9nIG1lc3NhZ2UsIHRvIGtlZXAgJDAgYW5kIHNvIG9uIG1lYW5pbmdmdWwsIGFuZCB0bwor KyMgcmVwb3J0IGFjdHVhbCBpbnB1dCB2YWx1ZXMgb2YgQ09ORklHX0ZJTEVTIGV0Yy4gaW5zdGVh ZCBvZiB0aGVpcgorKyMgdmFsdWVzIGFmdGVyIG9wdGlvbnMgaGFuZGxpbmcuCisrYWNfbG9nPSIK KytUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFNPQ0kgJGFzX21lIDMuMC4wLCB3aGljaCB3YXMK KytnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjYuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGlu ZSB3YXMKKysKKysgIENPTkZJR19GSUxFUyAgICA9ICRDT05GSUdfRklMRVMKKysgIENPTkZJR19I RUFERVJTICA9ICRDT05GSUdfSEVBREVSUworKyAgQ09ORklHX0xJTktTICAgID0gJENPTkZJR19M SU5LUworKyAgQ09ORklHX0NPTU1BTkRTID0gJENPTkZJR19DT01NQU5EUworKyAgJCAkMCAkQAor KworK29uIGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYAorKyIK KysKKytfQUNFT0YKKysKKytjYXNlICRhY19jb25maWdfZmlsZXMgaW4gKiIKKysiKikgc2V0IHgg JGFjX2NvbmZpZ19maWxlczsgc2hpZnQ7IGFjX2NvbmZpZ19maWxlcz0kKjs7CisrZXNhYworKwor K2Nhc2UgJGFjX2NvbmZpZ19oZWFkZXJzIGluICoiCisrIiopIHNldCB4ICRhY19jb25maWdfaGVh ZGVyczsgc2hpZnQ7IGFjX2NvbmZpZ19oZWFkZXJzPSQqOzsKKytlc2FjCisrCisrCisrY2F0ID4+ JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrIyBGaWxlcyB0aGF0 IGNvbmZpZy5zdGF0dXMgd2FzIG1hZGUgZm9yLgorK2NvbmZpZ19maWxlcz0iJGFjX2NvbmZpZ19m aWxlcyIKKytjb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFkZXJzIgorK2NvbmZpZ19jb21t YW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyIKKysKKytfQUNFT0YKKysKKytjYXQgPj4kQ09ORklH X1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrYWNfY3NfdXNhZ2U9IlwKKytc YCRhc19tZScgaW5zdGFudGlhdGVzIGZpbGVzIGFuZCBvdGhlciBjb25maWd1cmF0aW9uIGFjdGlv bnMKKytmcm9tIHRlbXBsYXRlcyBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlv bi4gIFVubGVzcyB0aGUgZmlsZXMKKythbmQgYWN0aW9ucyBhcmUgc3BlY2lmaWVkIGFzIFRBR3Ms IGFsbCBhcmUgaW5zdGFudGlhdGVkIGJ5IGRlZmF1bHQuCisrCisrVXNhZ2U6ICQwIFtPUFRJT05d Li4uIFtUQUddLi4uCisrCisrICAtaCwgLS1oZWxwICAgICAgIHByaW50IHRoaXMgaGVscCwgdGhl biBleGl0CisrICAtViwgLS12ZXJzaW9uICAgIHByaW50IHZlcnNpb24gbnVtYmVyIGFuZCBjb25m aWd1cmF0aW9uIHNldHRpbmdzLCB0aGVuIGV4aXQKKysgICAgICAtLWNvbmZpZyAgICAgcHJpbnQg Y29uZmlndXJhdGlvbiwgdGhlbiBleGl0CisrICAtcSwgLS1xdWlldCwgLS1zaWxlbnQKKysgICAg ICAgICAgICAgICAgICAgZG8gbm90IHByaW50IHByb2dyZXNzIG1lc3NhZ2VzCisrICAtZCwgLS1k ZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMKKysgICAgICAtLXJlY2hlY2sg ICAgdXBkYXRlICRhc19tZSBieSByZWNvbmZpZ3VyaW5nIGluIHRoZSBzYW1lIGNvbmRpdGlvbnMK KysgICAgICAtLWZpbGU9RklMRVs6VEVNUExBVEVdCisrICAgICAgICAgICAgICAgICAgIGluc3Rh bnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQorKyAgICAgIC0taGVhZGVyPUZJTEVb OlRFTVBMQVRFXQorKyAgICAgICAgICAgICAgICAgICBpbnN0YW50aWF0ZSB0aGUgY29uZmlndXJh dGlvbiBoZWFkZXIgRklMRQorKworK0NvbmZpZ3VyYXRpb24gZmlsZXM6CisrJGNvbmZpZ19maWxl cworKworK0NvbmZpZ3VyYXRpb24gaGVhZGVyczoKKyskY29uZmlnX2hlYWRlcnMKKysKKytDb25m aWd1cmF0aW9uIGNvbW1hbmRzOgorKyRjb25maWdfY29tbWFuZHMKKysKKytSZXBvcnQgYnVncyB0 byA8bXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0Pi4iCisrCisrX0FDRU9GCisrY2F0ID4+ JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrYWNfY3NfY29uZmln PSJgJGFzX2VjaG8gIiRhY19jb25maWd1cmVfYXJncyIgfCBzZWQgJ3MvXiAvLzsgcy9bXFwiIlxg XCRdL1xcXFwmL2cnYCIKKythY19jc192ZXJzaW9uPSJcXAorK1NPQ0kgY29uZmlnLnN0YXR1cyAz LjAuMAorK2NvbmZpZ3VyZWQgYnkgJDAsIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42NiwK KysgIHdpdGggb3B0aW9ucyBcXCJcJGFjX2NzX2NvbmZpZ1xcIgorKworK0NvcHlyaWdodCAoQykg MjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKytUaGlzIGNvbmZpZy5zdGF0dXMg c2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKytn aXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkg aXQuIgorKworK2FjX3B3ZD0nJGFjX3B3ZCcKKytzcmNkaXI9JyRzcmNkaXInCisrSU5TVEFMTD0n JElOU1RBTEwnCisrTUtESVJfUD0nJE1LRElSX1AnCisrQVdLPSckQVdLJworK3Rlc3QgLW4gIlwk QVdLIiB8fCBBV0s9YXdrCisrX0FDRU9GCisrCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FD RU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKyMgVGhlIGRlZmF1bHQgbGlzdHMgYXBwbHkgaWYgdGhl IHVzZXIgZG9lcyBub3Qgc3BlY2lmeSBhbnkgZmlsZS4KKythY19uZWVkX2RlZmF1bHRzPToKKyt3 aGlsZSB0ZXN0ICQjICE9IDAKKytkbworKyAgY2FzZSAkMSBpbgorKyAgLS0qPSopCisrICAgIGFj X29wdGlvbj1gZXhwciAiWCQxIiA6ICdYXChbXj1dKlwpPSdgCisrICAgIGFjX29wdGFyZz1gZXhw ciAiWCQxIiA6ICdYW149XSo9XCguKlwpJ2AKKysgICAgYWNfc2hpZnQ9OgorKyAgICA7OworKyAg KikKKysgICAgYWNfb3B0aW9uPSQxCisrICAgIGFjX29wdGFyZz0kMgorKyAgICBhY19zaGlmdD1z aGlmdAorKyAgICA7OworKyAgZXNhYworKworKyAgY2FzZSAkYWNfb3B0aW9uIGluCisrICAjIEhh bmRsaW5nIG9mIHRoZSBvcHRpb25zLgorKyAgLXJlY2hlY2sgfCAtLXJlY2hlY2sgfCAtLXJlY2hl YyB8IC0tcmVjaGUgfCAtLXJlY2ggfCAtLXJlYyB8IC0tcmUgfCAtLXIpCisrICAgIGFjX2NzX3Jl Y2hlY2s9OiA7OworKyAgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12ZXJzIHwg LS12ZXIgfCAtLXZlIHwgLS12IHwgLVYgKQorKyAgICAkYXNfZWNobyAiJGFjX2NzX3ZlcnNpb24i OyBleGl0IDs7CisrICAtLWNvbmZpZyB8IC0tY29uZmkgfCAtLWNvbmYgfCAtLWNvbiB8IC0tY28g fCAtLWMgKQorKyAgICAkYXNfZWNobyAiJGFjX2NzX2NvbmZpZyI7IGV4aXQgOzsKKysgIC0tZGVi dWcgfCAtLWRlYnUgfCAtLWRlYiB8IC0tZGUgfCAtLWQgfCAtZCApCisrICAgIGRlYnVnPTogOzsK KysgIC0tZmlsZSB8IC0tZmlsIHwgLS1maSB8IC0tZiApCisrICAgICRhY19zaGlmdAorKyAgICBj YXNlICRhY19vcHRhcmcgaW4KKysgICAgKlwnKikgYWNfb3B0YXJnPWAkYXNfZWNobyAiJGFjX29w dGFyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKKysgICAgZXNhYworKyAgICBhc19m bl9hcHBlbmQgQ09ORklHX0ZJTEVTICIgJyRhY19vcHRhcmcnIgorKyAgICBhY19uZWVkX2RlZmF1 bHRzPWZhbHNlOzsKKysgIC0taGVhZGVyIHwgLS1oZWFkZSB8IC0taGVhZCB8IC0taGVhICkKKysg ICAgJGFjX3NoaWZ0CisrICAgIGNhc2UgJGFjX29wdGFyZyBpbgorKyAgICAqXCcqKSBhY19vcHRh cmc9YCRhc19lY2hvICIkYWNfb3B0YXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7Owor KyAgICBlc2FjCisrICAgIGFzX2ZuX2FwcGVuZCBDT05GSUdfSEVBREVSUyAiICckYWNfb3B0YXJn JyIKKysgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7CisrICAtLWhlIHwgLS1oKQorKyAgICAj IENvbmZsaWN0IGJldHdlZW4gLS1oZWxwIGFuZCAtLWhlYWRlcgorKyAgICBhc19mbl9lcnJvciAk PyAiYW1iaWd1b3VzIG9wdGlvbjogXGAkMScKKytUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGlu Zm9ybWF0aW9uLiI7OworKyAgLS1oZWxwIHwgLS1oZWwgfCAtaCApCisrICAgICRhc19lY2hvICIk YWNfY3NfdXNhZ2UiOyBleGl0IDs7CisrICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUg fCAtLXF1aSB8IC0tcXUgfCAtLXEgXAorKyAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVu IHwgLS1zaWxlIHwgLS1zaWwgfCAtLXNpIHwgLS1zKQorKyAgICBhY19jc19zaWxlbnQ9OiA7Owor KworKyAgIyBUaGlzIGlzIGFuIGVycm9yLgorKyAgLSopIGFzX2ZuX2Vycm9yICQ/ICJ1bnJlY29n bml6ZWQgb3B0aW9uOiBcYCQxJworK1RyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRp b24uIiA7OworKworKyAgKikgYXNfZm5fYXBwZW5kIGFjX2NvbmZpZ190YXJnZXRzICIgJDEiCisr ICAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlIDs7CisrCisrICBlc2FjCisrICBzaGlmdAorK2Rv bmUKKysKKythY19jb25maWd1cmVfZXh0cmFfYXJncz0KKysKKytpZiAkYWNfY3Nfc2lsZW50OyB0 aGVuCisrICBleGVjIDY+L2Rldi9udWxsCisrICBhY19jb25maWd1cmVfZXh0cmFfYXJncz0iJGFj X2NvbmZpZ3VyZV9leHRyYV9hcmdzIC0tc2lsZW50IgorK2ZpCisrCisrX0FDRU9GCisrY2F0ID4+ JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisraWYgXCRhY19jc19y ZWNoZWNrOyB0aGVuCisrICBzZXQgWCAnJFNIRUxMJyAnJDAnICRhY19jb25maWd1cmVfYXJncyBc JGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzIC0tbm8tY3JlYXRlIC0tbm8tcmVjdXJzaW9uCisrICBz aGlmdAorKyAgXCRhc19lY2hvICJydW5uaW5nIENPTkZJR19TSEVMTD0kU0hFTEwgXCQqIiA+JjYK KysgIENPTkZJR19TSEVMTD0nJFNIRUxMJworKyAgZXhwb3J0IENPTkZJR19TSEVMTAorKyAgZXhl YyAiXCRAIgorK2ZpCisrCisrX0FDRU9GCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9G IHx8IGFjX3dyaXRlX2ZhaWw9MQorK2V4ZWMgNT4+Y29uZmlnLmxvZworK3sKKysgIGVjaG8KKysg IHNlZCAnaDtzLy4vLS9nO3MvXi4uLi8jIyAvO3MvLi4uJC8gIyMvO3A7eDtwO3gnIDw8X0FTQk9Y CisrIyMgUnVubmluZyAkYXNfbWUuICMjCisrX0FTQk9YCisrICAkYXNfZWNobyAiJGFjX2xvZyIK Kyt9ID4mNQorKworK19BQ0VPRgorK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFj X3dyaXRlX2ZhaWw9MQorKyMKKysjIElOSVQtQ09NTUFORFMKKysjCisrQU1ERVBfVFJVRT0iJEFN REVQX1RSVUUiIGFjX2F1eF9kaXI9IiRhY19hdXhfZGlyIgorKworKworKyMgVGhlIEhQLVVYIGtz aCBhbmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gc3Rkb3V0Cisr IyBpZiBDRFBBVEggaXMgc2V0LgorKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1 bnNldCBDRFBBVEgKKysKKytzZWRfcXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3QnCisrZG91 YmxlX3F1b3RlX3N1YnN0PSckZG91YmxlX3F1b3RlX3N1YnN0JworK2RlbGF5X3ZhcmlhYmxlX3N1 YnN0PSckZGVsYXlfdmFyaWFibGVfc3Vic3QnCisrZW5hYmxlX3NoYXJlZD0nYCRFQ0hPICIkZW5h YmxlX3NoYXJlZCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZW5hYmxl X3N0YXRpYz0nYCRFQ0hPICIkZW5hYmxlX3N0YXRpYyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisrbWFjcm9fdmVyc2lvbj0nYCRFQ0hPICIkbWFjcm9fdmVyc2lvbiIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbWFjcm9fcmV2aXNpb249J2AkRUNI TyAiJG1hY3JvX3JldmlzaW9uIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK KytwaWNfbW9kZT0nYCRFQ0hPICIkcGljX21vZGUiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK2VuYWJsZV9mYXN0X2luc3RhbGw9J2AkRUNITyAiJGVuYWJsZV9mYXN0X2lu c3RhbGwiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK1NIRUxMPSdgJEVD SE8gIiRTSEVMTCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrRUNITz0n YCRFQ0hPICIkRUNITyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraG9z dF9hbGlhcz0nYCRFQ0hPICIkaG9zdF9hbGlhcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisraG9zdD0nYCRFQ0hPICIkaG9zdCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisraG9zdF9vcz0nYCRFQ0hPICIkaG9zdF9vcyIgfCAkU0VEICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrYnVpbGRfYWxpYXM9J2AkRUNITyAiJGJ1aWxkX2FsaWFz IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytidWlsZD0nYCRFQ0hPICIk YnVpbGQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2J1aWxkX29zPSdg JEVDSE8gIiRidWlsZF9vcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr U0VEPSdgJEVDSE8gIiRTRUQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwor K1hzZWQ9J2AkRUNITyAiJFhzZWQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JworK0dSRVA9J2AkRUNITyAiJEdSRVAiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK0VHUkVQPSdgJEVDSE8gIiRFR1JFUCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrRkdSRVA9J2AkRUNITyAiJEZHUkVQIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytMRD0nYCRFQ0hPICIkTEQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJworK05NPSdgJEVDSE8gIiROTSIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisrTE5fUz0nYCRFQ0hPICIkTE5fUyIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrbWF4X2NtZF9sZW49J2AkRUNITyAiJG1heF9jbWRfbGVuIiB8ICRT RUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKythY19vYmpleHQ9J2AkRUNITyAiJGFj X29iamV4dCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZXhlZXh0PSdg JEVDSE8gIiRleGVleHQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0 X3Vuc2V0PSdgJEVDSE8gIiRsdF91bnNldCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisrbHRfU1AyTkw9J2AkRUNITyAiJGx0X1NQMk5MIiB8ICRTRUQgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKKytsdF9OTDJTUD0nYCRFQ0hPICIkbHRfTkwyU1AiIHwgJFNFRCAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3JlbG9hZF9mbGFnPSdgJEVDSE8gIiRyZWxv YWRfZmxhZyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcmVsb2FkX2Nt ZHM9J2AkRUNITyAiJHJlbG9hZF9jbWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytPQkpEVU1QPSdgJEVDSE8gIiRPQkpEVU1QIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytkZXBsaWJzX2NoZWNrX21ldGhvZD0nYCRFQ0hPICIkZGVwbGlic19j aGVja19tZXRob2QiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2ZpbGVf bWFnaWNfY21kPSdgJEVDSE8gIiRmaWxlX21hZ2ljX2NtZCIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrQVI9J2AkRUNITyAiJEFSIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytBUl9GTEFHUz0nYCRFQ0hPICIkQVJfRkxBR1MiIHwgJFNFRCAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK1NUUklQPSdgJEVDSE8gIiRTVFJJUCIgfCAkU0VE ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrUkFOTElCPSdgJEVDSE8gIiRSQU5MSUIi IHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK29sZF9wb3N0aW5zdGFsbF9j bWRzPSdgJEVDSE8gIiRvbGRfcG9zdGluc3RhbGxfY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0nYCRFQ0hPICIkb2xkX3Bv c3R1bmluc3RhbGxfY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr b2xkX2FyY2hpdmVfY21kcz0nYCRFQ0hPICIkb2xkX2FyY2hpdmVfY21kcyIgfCAkU0VEICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbG9ja19vbGRfYXJjaGl2ZV9leHRyYWN0aW9uPSdg JEVDSE8gIiRsb2NrX29sZF9hcmNoaXZlX2V4dHJhY3Rpb24iIHwgJFNFRCAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK0NDPSdgJEVDSE8gIiRDQyIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrQ0ZMQUdTPSdgJEVDSE8gIiRDRkxBR1MiIHwgJFNFRCAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2NvbXBpbGVyPSdgJEVDSE8gIiRjb21waWxlciIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrR0NDPSdgJEVDSE8gIiRHQ0MiIHwg JFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3BpcGU9J2AkRUNITyAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiIHwgJFNFRCAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3Rv X2NkZWNsPSdgJEVDSE8gIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCIgfCAkU0VE ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xf dG9fY19uYW1lX2FkZHJlc3M9J2AkRUNITyAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2Nf bmFtZV9hZGRyZXNzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSdgJEVDSE8g IiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4IiB8 ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytvYmpkaXI9J2AkRUNITyAiJG9i amRpciIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrTUFHSUNfQ01EPSdg JEVDSE8gIiRNQUdJQ19DTUQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwor K2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnPSdgJEVDSE8gIiRsdF9wcm9nX2NvbXBp bGVyX25vX2J1aWx0aW5fZmxhZyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn CisrbHRfcHJvZ19jb21waWxlcl93bD0nYCRFQ0hPICIkbHRfcHJvZ19jb21waWxlcl93bCIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfcHJvZ19jb21waWxlcl9waWM9 J2AkRUNITyAiJGx0X3Byb2dfY29tcGlsZXJfcGljIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nYCRFQ0hPICIkbHRfcHJvZ19j b21waWxlcl9zdGF0aWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0 X2N2X3Byb2dfY29tcGlsZXJfY19vPSdgJEVDSE8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIg fCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbmVlZF9sb2Nrcz0nYCRFQ0hP ICIkbmVlZF9sb2NrcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrRFNZ TVVUSUw9J2AkRUNITyAiJERTWU1VVElMIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytOTUVESVQ9J2AkRUNITyAiJE5NRURJVCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisrTElQTz0nYCRFQ0hPICIkTElQTyIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrT1RPT0w9J2AkRUNITyAiJE9UT09MIiB8ICRTRUQgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKKytPVE9PTDY0PSdgJEVDSE8gIiRPVE9PTDY0IiB8ICRTRUQg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsaWJleHQ9J2AkRUNITyAiJGxpYmV4dCIg fCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrc2hyZXh0X2NtZHM9J2AkRUNI TyAiJHNocmV4dF9jbWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytl eHRyYWN0X2V4cHN5bXNfY21kcz0nYCRFQ0hPICIkZXh0cmFjdF9leHBzeW1zX2NtZHMiIHwgJFNF RCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2FyY2hpdmVfY21kc19uZWVkX2xjPSdg JEVDSE8gIiRhcmNoaXZlX2NtZHNfbmVlZF9sYyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcz0nYCRFQ0hPICIk ZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPSdgJEVDSE8gIiRleHBv cnRfZHluYW1pY19mbGFnX3NwZWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JworK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSdgJEVDSE8gIiR3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrY29tcGlsZXJfbmVl ZHNfb2JqZWN0PSdgJEVDSE8gIiRjb21waWxlcl9uZWVkc19vYmplY3QiIHwgJFNFRCAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9J2AkRUNI TyAiJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPSdgJEVDSE8gIiRvbGRf YXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisrYXJjaGl2ZV9jbWRzPSdgJEVDSE8gIiRhcmNoaXZlX2NtZHMiIHwgJFNFRCAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2FyY2hpdmVfZXhwc3ltX2NtZHM9J2AkRUNITyAi JGFyY2hpdmVfZXhwc3ltX2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JworK21vZHVsZV9jbWRzPSdgJEVDSE8gIiRtb2R1bGVfY21kcyIgfCAkU0VEICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCisrbW9kdWxlX2V4cHN5bV9jbWRzPSdgJEVDSE8gIiRtb2R1bGVf ZXhwc3ltX2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3dpdGhf Z251X2xkPSdgJEVDSE8gIiR3aXRoX2dudV9sZCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrYWxsb3dfdW5kZWZpbmVkX2ZsYWc9J2AkRUNITyAiJGFsbG93X3VuZGVmaW5l ZF9mbGFnIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytub191bmRlZmlu ZWRfZmxhZz0nYCRFQ0hPICIkbm9fdW5kZWZpbmVkX2ZsYWciIHwgJFNFRCAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9J2AkRUNITyAiJGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9J2AkRUNITyAiJGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfbGQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwor K2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9J2AkRUNITyAiJGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3IiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2Rp cmVjdD0nYCRFQ0hPICIkaGFyZGNvZGVfZGlyZWN0IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9J2AkRUNITyAiJGhhcmRjb2Rl X2RpcmVjdF9hYnNvbHV0ZSIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr aGFyZGNvZGVfbWludXNfTD0nYCRFQ0hPICIkaGFyZGNvZGVfbWludXNfTCIgfCAkU0VEICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0nYCRFQ0hP ICIkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisraGFyZGNvZGVfYXV0b21hdGljPSdgJEVDSE8gIiRoYXJkY29kZV9hdXRvbWF0aWMi IHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2luaGVyaXRfcnBhdGg9J2Ak RUNITyAiJGluaGVyaXRfcnBhdGgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JworK2xpbmtfYWxsX2RlcGxpYnM9J2AkRUNITyAiJGxpbmtfYWxsX2RlcGxpYnMiIHwgJFNFRCAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2ZpeF9zcmNmaWxlX3BhdGg9J2AkRUNITyAi JGZpeF9zcmNmaWxlX3BhdGgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwor K2Fsd2F5c19leHBvcnRfc3ltYm9scz0nYCRFQ0hPICIkYWx3YXlzX2V4cG9ydF9zeW1ib2xzIiB8 ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytleHBvcnRfc3ltYm9sc19jbWRz PSdgJEVDSE8gIiRleHBvcnRfc3ltYm9sc19jbWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytleGNsdWRlX2V4cHN5bXM9J2AkRUNITyAiJGV4Y2x1ZGVfZXhwc3ltcyIg fCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraW5jbHVkZV9leHBzeW1zPSdg JEVDSE8gIiRpbmNsdWRlX2V4cHN5bXMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK3ByZWxpbmtfY21kcz0nYCRFQ0hPICIkcHJlbGlua19jbWRzIiB8ICRTRUQgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytmaWxlX2xpc3Rfc3BlYz0nYCRFQ0hPICIkZmlsZV9s aXN0X3NwZWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3ZhcmlhYmxl c19zYXZlZF9mb3JfcmVsaW5rPSdgJEVDSE8gIiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayIg fCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbmVlZF9saWJfcHJlZml4PSdg JEVDSE8gIiRuZWVkX2xpYl9wcmVmaXgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK25lZWRfdmVyc2lvbj0nYCRFQ0hPICIkbmVlZF92ZXJzaW9uIiB8ICRTRUQgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKyt2ZXJzaW9uX3R5cGU9J2AkRUNITyAiJHZlcnNpb25f dHlwZSIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcnVucGF0aF92YXI9 J2AkRUNITyAiJHJ1bnBhdGhfdmFyIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKKytzaGxpYnBhdGhfdmFyPSdgJEVDSE8gIiRzaGxpYnBhdGhfdmFyIiB8ICRTRUQgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9J2Ak RUNITyAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrbGlibmFtZV9zcGVjPSdgJEVDSE8gIiRsaWJuYW1lX3NwZWMiIHwg JFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2xpYnJhcnlfbmFtZXNfc3BlYz0n YCRFQ0hPICIkbGlicmFyeV9uYW1lc19zcGVjIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytzb25hbWVfc3BlYz0nYCRFQ0hPICIkc29uYW1lX3NwZWMiIHwgJFNFRCAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2luc3RhbGxfb3ZlcnJpZGVfbW9kZT0nYCRFQ0hP ICIkaW5zdGFsbF9vdmVycmlkZV9tb2RlIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytwb3N0aW5zdGFsbF9jbWRzPSdgJEVDSE8gIiRwb3N0aW5zdGFsbF9jbWRzIiB8ICRT RUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytwb3N0dW5pbnN0YWxsX2NtZHM9J2Ak RUNITyAiJHBvc3R1bmluc3RhbGxfY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisrZmluaXNoX2NtZHM9J2AkRUNITyAiJGZpbmlzaF9jbWRzIiB8ICRTRUQgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytmaW5pc2hfZXZhbD0nYCRFQ0hPICIkZmluaXNoX2V2 YWwiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2ludG9f bGlicz0nYCRFQ0hPICIkaGFyZGNvZGVfaW50b19saWJzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9J2AkRUNITyAiJHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Cisrc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9J2AkRUNITyAiJHN5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29k ZV9hY3Rpb249J2AkRUNITyAiJGhhcmRjb2RlX2FjdGlvbiIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrZW5hYmxlX2Rsb3Blbj0nYCRFQ0hPICIkZW5hYmxlX2Rsb3BlbiIg fCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZW5hYmxlX2Rsb3Blbl9zZWxm PSdgJEVDSE8gIiRlbmFibGVfZGxvcGVuX3NlbGYiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK2VuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9J2AkRUNITyAiJGVuYWJsZV9k bG9wZW5fc2VsZl9zdGF0aWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwor K29sZF9zdHJpcGxpYj0nYCRFQ0hPICIkb2xkX3N0cmlwbGliIiB8ICRTRUQgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKKytzdHJpcGxpYj0nYCRFQ0hPICIkc3RyaXBsaWIiIHwgJFNFRCAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycz0n YCRFQ0hPICIkY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytwcmVkZXBfb2JqZWN0cz0nYCRFQ0hPICIkcHJlZGVwX29iamVjdHMi IHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3Bvc3RkZXBfb2JqZWN0cz0n YCRFQ0hPICIkcG9zdGRlcF9vYmplY3RzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytwcmVkZXBzPSdgJEVDSE8gIiRwcmVkZXBzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytwb3N0ZGVwcz0nYCRFQ0hPICIkcG9zdGRlcHMiIHwgJFNFRCAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aD0nYCRF Q0hPICIkY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytMRF9DWFg9J2AkRUNITyAiJExEX0NYWCIgfCAkU0VEICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCisrcmVsb2FkX2ZsYWdfQ1hYPSdgJEVDSE8gIiRyZWxvYWRfZmxh Z19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3JlbG9hZF9jbWRz X0NYWD0nYCRFQ0hPICIkcmVsb2FkX2NtZHNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nYCRFQ0hPICIkb2xkX2FyY2hpdmVf Y21kc19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2NvbXBpbGVy X0NYWD0nYCRFQ0hPICIkY29tcGlsZXJfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytHQ0NfQ1hYPSdgJEVDSE8gIiRHQ0NfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKKytsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFg9 J2AkRUNITyAiJGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0NYWCIgfCAkU0VEICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfcHJvZ19jb21waWxlcl93bF9DWFg9J2Ak RUNITyAiJGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9J2AkRUNITyAiJGx0X3Byb2df Y29tcGlsZXJfcGljX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr bHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSdgJEVDSE8gIiRsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpY19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X2N2X3By b2dfY29tcGlsZXJfY19vX0NYWD0nYCRFQ0hPICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hY IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKythcmNoaXZlX2NtZHNfbmVl ZF9sY19DWFg9J2AkRUNITyAiJGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWCIgfCAkU0VEICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50 aW1lc19DWFg9J2AkRUNITyAiJGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfQ1hY IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytleHBvcnRfZHluYW1pY19m bGFnX3NwZWNfQ1hYPSdgJEVDSE8gIiRleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYIiB8ICRT RUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKyt3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl Y19DWFg9J2AkRUNITyAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWCIgfCAkU0VEICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrY29tcGlsZXJfbmVlZHNfb2JqZWN0X0NYWD0nYCRF Q0hPICIkY29tcGlsZXJfbmVlZHNfb2JqZWN0X0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisrb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19DWFg9J2AkRUNITyAiJG9s ZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19DWFg9J2AkRUNITyAiJG9s ZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisrYXJjaGl2ZV9jbWRzX0NYWD0nYCRFQ0hPICIkYXJjaGl2ZV9jbWRzX0NY WCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrYXJjaGl2ZV9leHBzeW1f Y21kc19DWFg9J2AkRUNITyAiJGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYIiB8ICRTRUQgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKyttb2R1bGVfY21kc19DWFg9J2AkRUNITyAiJG1vZHVs ZV9jbWRzX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbW9kdWxl X2V4cHN5bV9jbWRzX0NYWD0nYCRFQ0hPICIkbW9kdWxlX2V4cHN5bV9jbWRzX0NYWCIgfCAkU0VE ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrd2l0aF9nbnVfbGRfQ1hYPSdgJEVDSE8g IiR3aXRoX2dudV9sZF9DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwor K2FsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nYCRFQ0hPICIkYWxsb3dfdW5kZWZpbmVkX2ZsYWdf Q1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytub191bmRlZmluZWRf ZmxhZ19DWFg9J2AkRUNITyAiJG5vX3VuZGVmaW5lZF9mbGFnX0NYWCIgfCAkU0VEICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9J2Ak RUNITyAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0NYWD0nYCRF Q0hPICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9DWFgiIHwgJFNFRCAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPSdgJEVD SE8gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfZGlyZWN0X0NYWD0nYCRFQ0hPICIkaGFyZGNvZGVf ZGlyZWN0X0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNv ZGVfZGlyZWN0X2Fic29sdXRlX0NYWD0nYCRFQ0hPICIkaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRl X0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfbWlu dXNfTF9DWFg9J2AkRUNITyAiJGhhcmRjb2RlX21pbnVzX0xfQ1hYIiB8ICRTRUQgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD0nYCRFQ0hP ICIkaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK2hhcmRjb2RlX2F1dG9tYXRpY19DWFg9J2AkRUNITyAiJGhhcmRjb2RlX2F1 dG9tYXRpY19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2luaGVy aXRfcnBhdGhfQ1hYPSdgJEVDSE8gIiRpbmhlcml0X3JwYXRoX0NYWCIgfCAkU0VEICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbGlua19hbGxfZGVwbGlic19DWFg9J2AkRUNITyAiJGxp bmtfYWxsX2RlcGxpYnNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK KytmaXhfc3JjZmlsZV9wYXRoX0NYWD0nYCRFQ0hPICIkZml4X3NyY2ZpbGVfcGF0aF9DWFgiIHwg JFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2Fsd2F5c19leHBvcnRfc3ltYm9s c19DWFg9J2AkRUNITyAiJGFsd2F5c19leHBvcnRfc3ltYm9sc19DWFgiIHwgJFNFRCAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2V4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSdgJEVDSE8g IiRleHBvcnRfc3ltYm9sc19jbWRzX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisrZXhjbHVkZV9leHBzeW1zX0NYWD0nYCRFQ0hPICIkZXhjbHVkZV9leHBzeW1zX0NY WCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraW5jbHVkZV9leHBzeW1z X0NYWD0nYCRFQ0hPICIkaW5jbHVkZV9leHBzeW1zX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrcHJlbGlua19jbWRzX0NYWD0nYCRFQ0hPICIkcHJlbGlua19jbWRz X0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZmlsZV9saXN0X3Nw ZWNfQ1hYPSdgJEVDSE8gIiRmaWxlX2xpc3Rfc3BlY19DWFgiIHwgJFNFRCAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2FjdGlvbl9DWFg9J2AkRUNITyAiJGhhcmRjb2Rl X2FjdGlvbl9DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2NvbXBp bGVyX2xpYl9zZWFyY2hfZGlyc19DWFg9J2AkRUNITyAiJGNvbXBpbGVyX2xpYl9zZWFyY2hfZGly c19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3ByZWRlcF9vYmpl Y3RzX0NYWD0nYCRFQ0hPICIkcHJlZGVwX29iamVjdHNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKKytwb3N0ZGVwX29iamVjdHNfQ1hYPSdgJEVDSE8gIiRwb3N0ZGVw X29iamVjdHNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytwcmVk ZXBzX0NYWD0nYCRFQ0hPICIkcHJlZGVwc19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK3Bvc3RkZXBzX0NYWD0nYCRFQ0hPICIkcG9zdGRlcHNfQ1hYIiB8ICRTRUQg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytjb21waWxlcl9saWJfc2VhcmNoX3BhdGhf Q1hYPSdgJEVDSE8gIiRjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYIiB8ICRTRUQgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKysKKytMVENDPSckTFRDQycKKytMVENGTEFHUz0nJExU Q0ZMQUdTJworK2NvbXBpbGVyPSckY29tcGlsZXJfREVGQVVMVCcKKysKKysjIEEgZnVuY3Rpb24g dGhhdCBpcyB1c2VkIHdoZW4gdGhlcmUgaXMgbm8gcHJpbnQgYnVpbHRpbiBvciBwcmludGYuCisr ZnVuY19mYWxsYmFja19lY2hvICgpCisreworKyAgZXZhbCAnY2F0IDw8X0xURUNIT19FT0YKKytc JDEKKytfTFRFQ0hPX0VPRicKKyt9CisrCisrIyBRdW90ZSBldmFsZWQgc3RyaW5ncy4KKytmb3Ig dmFyIGluIFNIRUxMIFwKKytFQ0hPIFwKKytTRUQgXAorK0dSRVAgXAorK0VHUkVQIFwKKytGR1JF UCBcCisrTEQgXAorK05NIFwKKytMTl9TIFwKKytsdF9TUDJOTCBcCisrbHRfTkwyU1AgXAorK3Jl bG9hZF9mbGFnIFwKKytPQkpEVU1QIFwKKytkZXBsaWJzX2NoZWNrX21ldGhvZCBcCisrZmlsZV9t YWdpY19jbWQgXAorK0FSIFwKKytBUl9GTEFHUyBcCisrU1RSSVAgXAorK1JBTkxJQiBcCisrQ0Mg XAorK0NGTEFHUyBcCisrY29tcGlsZXIgXAorK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUg XAorK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIFwKKytsdF9jdl9zeXNfZ2xvYmFs X3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyBcCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9f Y19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeCBcCisrbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGlu X2ZsYWcgXAorK2x0X3Byb2dfY29tcGlsZXJfd2wgXAorK2x0X3Byb2dfY29tcGlsZXJfcGljIFwK KytsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyBcCisrbHRfY3ZfcHJvZ19jb21waWxlcl9jX28gXAor K25lZWRfbG9ja3MgXAorK0RTWU1VVElMIFwKKytOTUVESVQgXAorK0xJUE8gXAorK09UT09MIFwK KytPVE9PTDY0IFwKKytzaHJleHRfY21kcyBcCisrZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjIFwK Kyt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyBcCisrY29tcGlsZXJfbmVlZHNfb2JqZWN0IFwKKyt3 aXRoX2dudV9sZCBcCisrYWxsb3dfdW5kZWZpbmVkX2ZsYWcgXAorK25vX3VuZGVmaW5lZF9mbGFn IFwKKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIFwKKytoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX2xkIFwKKytoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIFwKKytmaXhfc3JjZmlsZV9wYXRo IFwKKytleGNsdWRlX2V4cHN5bXMgXAorK2luY2x1ZGVfZXhwc3ltcyBcCisrZmlsZV9saXN0X3Nw ZWMgXAorK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIFwKKytsaWJuYW1lX3NwZWMgXAorK2xp YnJhcnlfbmFtZXNfc3BlYyBcCisrc29uYW1lX3NwZWMgXAorK2luc3RhbGxfb3ZlcnJpZGVfbW9k ZSBcCisrZmluaXNoX2V2YWwgXAorK29sZF9zdHJpcGxpYiBcCisrc3RyaXBsaWIgXAorK2NvbXBp bGVyX2xpYl9zZWFyY2hfZGlycyBcCisrcHJlZGVwX29iamVjdHMgXAorK3Bvc3RkZXBfb2JqZWN0 cyBcCisrcHJlZGVwcyBcCisrcG9zdGRlcHMgXAorK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCBc CisrTERfQ1hYIFwKKytyZWxvYWRfZmxhZ19DWFggXAorK2NvbXBpbGVyX0NYWCBcCisrbHRfcHJv Z19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYIFwKKytsdF9wcm9nX2NvbXBpbGVyX3dsX0NY WCBcCisrbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIFwKKytsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Y19DWFggXAorK2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCBcCisrZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjX0NYWCBcCisrd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYIFwKKytjb21waWxl cl9uZWVkc19vYmplY3RfQ1hYIFwKKyt3aXRoX2dudV9sZF9DWFggXAorK2FsbG93X3VuZGVmaW5l ZF9mbGFnX0NYWCBcCisrbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYIFwKKytoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX0NYWCBcCisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9DWFggXAorK2hh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYIFwKKytmaXhfc3JjZmlsZV9wYXRoX0NYWCBcCisr ZXhjbHVkZV9leHBzeW1zX0NYWCBcCisraW5jbHVkZV9leHBzeW1zX0NYWCBcCisrZmlsZV9saXN0 X3NwZWNfQ1hYIFwKKytjb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYIFwKKytwcmVkZXBfb2Jq ZWN0c19DWFggXAorK3Bvc3RkZXBfb2JqZWN0c19DWFggXAorK3ByZWRlcHNfQ1hYIFwKKytwb3N0 ZGVwc19DWFggXAorK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg7IGRvCisrICAgIGNhc2Ug XGBldmFsIFxcXFxcJEVDSE8gXFxcXCIiXFxcXFwkXCR2YXIiXFxcXCJcYCBpbgorKyAgICAqW1xc XFxcXFxgXFwiXFxcJF0qKQorKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVD SE8gXFwiXFxcJFwkdmFyXFwiIHwgXFxcJFNFRCBcXCJcXFwkc2VkX3F1b3RlX3N1YnN0XFwiXFxc YFxcXFxcXCIiCisrICAgICAgOzsKKysgICAgKikKKysgICAgICBldmFsICJsdF9cJHZhcj1cXFxc XFwiXFxcJFwkdmFyXFxcXFxcIiIKKysgICAgICA7OworKyAgICBlc2FjCisrZG9uZQorKworKyMg RG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQgc3RyaW5ncy4KKytmb3IgdmFyIGluIHJlbG9hZF9j bWRzIFwKKytvbGRfcG9zdGluc3RhbGxfY21kcyBcCisrb2xkX3Bvc3R1bmluc3RhbGxfY21kcyBc Cisrb2xkX2FyY2hpdmVfY21kcyBcCisrZXh0cmFjdF9leHBzeW1zX2NtZHMgXAorK29sZF9hcmNo aXZlX2Zyb21fbmV3X2NtZHMgXAorK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIFwKKyth cmNoaXZlX2NtZHMgXAorK2FyY2hpdmVfZXhwc3ltX2NtZHMgXAorK21vZHVsZV9jbWRzIFwKKytt b2R1bGVfZXhwc3ltX2NtZHMgXAorK2V4cG9ydF9zeW1ib2xzX2NtZHMgXAorK3ByZWxpbmtfY21k cyBcCisrcG9zdGluc3RhbGxfY21kcyBcCisrcG9zdHVuaW5zdGFsbF9jbWRzIFwKKytmaW5pc2hf Y21kcyBcCisrc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIFwKKytzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYyBcCisrcmVsb2FkX2NtZHNfQ1hYIFwKKytvbGRfYXJjaGl2ZV9jbWRzX0NYWCBcCisr b2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19DWFggXAorK29sZF9hcmNoaXZlX2Zyb21fZXhwc3lt c19jbWRzX0NYWCBcCisrYXJjaGl2ZV9jbWRzX0NYWCBcCisrYXJjaGl2ZV9leHBzeW1fY21kc19D WFggXAorK21vZHVsZV9jbWRzX0NYWCBcCisrbW9kdWxlX2V4cHN5bV9jbWRzX0NYWCBcCisrZXhw b3J0X3N5bWJvbHNfY21kc19DWFggXAorK3ByZWxpbmtfY21kc19DWFg7IGRvCisrICAgIGNhc2Ug XGBldmFsIFxcXFxcJEVDSE8gXFxcXCIiXFxcXFwkXCR2YXIiXFxcXCJcYCBpbgorKyAgICAqW1xc XFxcXFxgXFwiXFxcJF0qKQorKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVD SE8gXFwiXFxcJFwkdmFyXFwiIHwgXFxcJFNFRCAtZSBcXCJcXFwkZG91YmxlX3F1b3RlX3N1YnN0 XFwiIC1lIFxcIlxcXCRzZWRfcXVvdGVfc3Vic3RcXCIgLWUgXFwiXFxcJGRlbGF5X3ZhcmlhYmxl X3N1YnN0XFwiXFxcYFxcXFxcXCIiCisrICAgICAgOzsKKysgICAgKikKKysgICAgICBldmFsICJs dF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKKysgICAgICA7OworKyAgICBlc2FjCisr ZG9uZQorKworK2FjX2F1eF9kaXI9JyRhY19hdXhfZGlyJworK3hzaV9zaGVsbD0nJHhzaV9zaGVs bCcKKytsdF9zaGVsbF9hcHBlbmQ9JyRsdF9zaGVsbF9hcHBlbmQnCisrCisrIyBTZWUgaWYgd2Ug YXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFsbG93IG91cgor KyMgY29tbWFuZHMgdGhyb3VnaCB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2NhcGVzIElOSVQuCisr aWYgdGVzdCAtbiAiXCR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCisrICAgc2V0b3B0IE5PX0dM T0JfU1VCU1QKKytmaQorKworKworKyAgICBQQUNLQUdFPSckUEFDS0FHRScKKysgICAgVkVSU0lP Tj0nJFZFUlNJT04nCisrICAgIFRJTUVTVEFNUD0nJFRJTUVTVEFNUCcKKysgICAgUk09JyRSTScK KysgICAgb2ZpbGU9JyRvZmlsZScKKysKKysKKysKKysKKysKKysKKytfQUNFT0YKKysKKytjYXQg Pj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrCisrIyBIYW5k bGluZyBvZiBhcmd1bWVudHMuCisrZm9yIGFjX2NvbmZpZ190YXJnZXQgaW4gJGFjX2NvbmZpZ190 YXJnZXRzCisrZG8KKysgIGNhc2UgJGFjX2NvbmZpZ190YXJnZXQgaW4KKysgICAgInNvY2kvY29u ZmlnLmgiKSBDT05GSUdfSEVBREVSUz0iJENPTkZJR19IRUFERVJTIHNvY2kvY29uZmlnLmgiIDs7 CisrICAgICJkZXBmaWxlcyIpIENPTkZJR19DT01NQU5EUz0iJENPTkZJR19DT01NQU5EUyBkZXBm aWxlcyIgOzsKKysgICAgImxpYnRvb2wiKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdfQ09NTUFO RFMgbGlidG9vbCIgOzsKKysgICAgIk1ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJ TEVTIE1ha2VmaWxlIiA7OworKyAgICAic29jaS1jb25maWciKSBDT05GSUdfRklMRVM9IiRDT05G SUdfRklMRVMgc29jaS1jb25maWciIDs7CisrICAgICJzb2NpLnBjIikgQ09ORklHX0ZJTEVTPSIk Q09ORklHX0ZJTEVTIHNvY2kucGMiIDs7CisrICAgICJzb2NpL01ha2VmaWxlIikgQ09ORklHX0ZJ TEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvTWFrZWZpbGUiIDs7CisrICAgICJzb2NpL2NvcmUvTWFr ZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9jb3JlL01ha2VmaWxlIiA7 OworKyAgICAic29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdf RklMRVMgc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUiIDs7CisrICAgICJzb2NpL2JhY2tlbmRzL01h a2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvTWFrZWZp bGUiIDs7CisrICAgICJzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlIikgQ09ORklHX0ZJTEVT PSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUiIDs7CisrICAgICJz b2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdf RklMRVMgc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlIiA7OworKyAgICAic29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVT IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZSIgOzsKKysgICAgInNvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVT IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlIiA7OworKyAgICAic29jaS9i YWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29j aS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUiIDs7CisrICAgICJzb2NpL2JhY2tlbmRzL29yYWNs ZS90ZXN0L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2Vu ZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUiIDs7CisrICAgICJtYW4vTWFrZWZpbGUiKSBDT05GSUdf RklMRVM9IiRDT05GSUdfRklMRVMgbWFuL01ha2VmaWxlIiA7OworKyAgICAiZG9jL01ha2VmaWxl IikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGRvYy9NYWtlZmlsZSIgOzsKKysgICAgImRv Yy9iYWNrZW5kcy9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBkb2MvYmFj a2VuZHMvTWFrZWZpbGUiIDs7CisrICAgICJidWlsZC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0i JENPTkZJR19GSUxFUyBidWlsZC9NYWtlZmlsZSIgOzsKKysgICAgImJ1aWxkL3VuaXgvTWFrZWZp bGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgYnVpbGQvdW5peC9NYWtlZmlsZSIgOzsK KysgICAgImJ1aWxkL21zdmM4MC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxF UyBidWlsZC9tc3ZjODAvTWFrZWZpbGUiIDs7CisrICAgICJidWlsZC9tc3ZjODAvZGxsL01ha2Vm aWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGJ1aWxkL21zdmM4MC9kbGwvTWFrZWZp bGUiIDs7CisrICAgICJidWlsZC9tc3ZjODAvbGliL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIk Q09ORklHX0ZJTEVTIGJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUiIDs7CisrCisrICAqKSBhc19m bl9lcnJvciAkPyAiaW52YWxpZCBhcmd1bWVudDogXGAkYWNfY29uZmlnX3RhcmdldCciICIkTElO RU5PIiA1OzsKKysgIGVzYWMKKytkb25lCisrCisrCisrIyBJZiB0aGUgdXNlciBkaWQgbm90IHVz ZSB0aGUgYXJndW1lbnRzIHRvIHNwZWNpZnkgdGhlIGl0ZW1zIHRvIGluc3RhbnRpYXRlLAorKyMg dGhlbiB0aGUgZW52dmFyIGludGVyZmFjZSBpcyB1c2VkLiAgU2V0IG9ubHkgdGhvc2UgdGhhdCBh cmUgbm90LgorKyMgV2UgdXNlIHRoZSBsb25nIGZvcm0gZm9yIHRoZSBkZWZhdWx0IGFzc2lnbm1l bnQgYmVjYXVzZSBvZiBhbiBleHRyZW1lbHkKKysjIGJpemFycmUgYnVnIG9uIFN1bk9TIDQuMS4z LgorK2lmICRhY19uZWVkX2RlZmF1bHRzOyB0aGVuCisrICB0ZXN0ICIke0NPTkZJR19GSUxFUytz ZXR9IiA9IHNldCB8fCBDT05GSUdfRklMRVM9JGNvbmZpZ19maWxlcworKyAgdGVzdCAiJHtDT05G SUdfSEVBREVSUytzZXR9IiA9IHNldCB8fCBDT05GSUdfSEVBREVSUz0kY29uZmlnX2hlYWRlcnMK KysgIHRlc3QgIiR7Q09ORklHX0NPTU1BTkRTK3NldH0iID0gc2V0IHx8IENPTkZJR19DT01NQU5E Uz0kY29uZmlnX2NvbW1hbmRzCisrZmkKKysKKysjIEhhdmUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5 IGZvciBjb252ZW5pZW5jZS4gIE1ha2UgaXQgaW4gdGhlIGJ1aWxkIHRyZWUKKysjIHNpbXBseSBi ZWNhdXNlIHRoZXJlIGlzIG5vIHJlYXNvbiBhZ2FpbnN0IGhhdmluZyBpdCBoZXJlLCBhbmQgaW4g YWRkaXRpb24sCisrIyBjcmVhdGluZyBhbmQgbW92aW5nIGZpbGVzIGZyb20gL3RtcCBjYW4gc29t ZXRpbWVzIGNhdXNlIHByb2JsZW1zLgorKyMgSG9vayBmb3IgaXRzIHJlbW92YWwgdW5sZXNzIGRl YnVnZ2luZy4KKysjIE5vdGUgdGhhdCB0aGVyZSBpcyBhIHNtYWxsIHdpbmRvdyBpbiB3aGljaCB0 aGUgZGlyZWN0b3J5IHdpbGwgbm90IGJlIGNsZWFuZWQ6CisrIyBhZnRlciBpdHMgY3JlYXRpb24g YnV0IGJlZm9yZSBpdHMgbmFtZSBoYXMgYmVlbiBhc3NpZ25lZCB0byBgJHRtcCcuCisrJGRlYnVn IHx8CisreworKyAgdG1wPQorKyAgdHJhcCAnZXhpdF9zdGF0dXM9JD8KKysgIHsgdGVzdCAteiAi JHRtcCIgfHwgdGVzdCAhIC1kICIkdG1wIiB8fCBybSAtZnIgIiR0bXAiOyB9ICYmIGV4aXQgJGV4 aXRfc3RhdHVzCisrJyAwCisrICB0cmFwICdhc19mbl9leGl0IDEnIDEgMiAxMyAxNQorK30KKysj IENyZWF0ZSBhIChzZWN1cmUpIHRtcCBkaXJlY3RvcnkgZm9yIHRtcCBmaWxlcy4KKysKKyt7Cisr ICB0bXA9YCh1bWFzayAwNzcgJiYgbWt0ZW1wIC1kICIuL2NvbmZYWFhYWFgiKSAyPi9kZXYvbnVs bGAgJiYKKysgIHRlc3QgLW4gIiR0bXAiICYmIHRlc3QgLWQgIiR0bXAiCisrfSAgfHwKKyt7Cisr ICB0bXA9Li9jb25mJCQtJFJBTkRPTQorKyAgKHVtYXNrIDA3NyAmJiBta2RpciAiJHRtcCIpCisr fSB8fCBhc19mbl9lcnJvciAkPyAiY2Fubm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3Rvcnkg aW4gLiIgIiRMSU5FTk8iIDUKKysKKysjIFNldCB1cCB0aGUgc2NyaXB0cyBmb3IgQ09ORklHX0ZJ TEVTIHNlY3Rpb24uCisrIyBObyBuZWVkIHRvIGdlbmVyYXRlIHRoZW0gaWYgdGhlcmUgYXJlIG5v IENPTkZJR19GSUxFUy4KKysjIFRoaXMgaGFwcGVucyBmb3IgaW5zdGFuY2Ugd2l0aCBgLi9jb25m aWcuc3RhdHVzIGNvbmZpZy5oJy4KKytpZiB0ZXN0IC1uICIkQ09ORklHX0ZJTEVTIjsgdGhlbgor KworKworK2FjX2NyPWBlY2hvIFggfCB0ciBYICdcMDE1J2AKKysjIE9uIGN5Z3dpbiwgYmFzaCBj YW4gZWF0IFxyIGluc2lkZSBgYCBpZiB0aGUgdXNlciByZXF1ZXN0ZWQgaWduY3IuCisrIyBCdXQg d2Uga25vdyBvZiBubyBvdGhlciBzaGVsbCB3aGVyZSBhY19jciB3b3VsZCBiZSBlbXB0eSBhdCB0 aGlzCisrIyBwb2ludCwgc28gd2UgY2FuIHVzZSBhIGJhc2hpc20gYXMgYSBmYWxsYmFjay4KKytp ZiB0ZXN0ICJ4JGFjX2NyIiA9IHg7IHRoZW4KKysgIGV2YWwgYWNfY3I9XCRcJ1xcclwnCisrZmkK KythY19jc19hd2tfY3I9YCRBV0sgJ0JFR0lOIHsgcHJpbnQgImFccmIiIH0nIDwvZGV2L251bGwg Mj4vZGV2L251bGxgCisraWYgdGVzdCAiJGFjX2NzX2F3a19jciIgPSAiYSR7YWNfY3J9YiI7IHRo ZW4KKysgIGFjX2NzX2F3a19jcj0nXFxyJworK2Vsc2UKKysgIGFjX2NzX2F3a19jcj0kYWNfY3IK KytmaQorKworK2VjaG8gJ0JFR0lOIHsnID4iJHRtcC9zdWJzMS5hd2siICYmCisrX0FDRU9GCisr CisrCisreworKyAgZWNobyAiY2F0ID5jb25mJCRzdWJzLmF3ayA8PF9BQ0VPRiIgJiYKKysgIGVj aG8gIiRhY19zdWJzdF92YXJzIiB8IHNlZCAncy8uKi8mISQmJGFjX2RlbGltLycgJiYKKysgIGVj aG8gIl9BQ0VPRiIKKyt9ID5jb25mJCRzdWJzLnNoIHx8CisrICBhc19mbl9lcnJvciAkPyAiY291 bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiICIkTElORU5PIiA1CisrYWNfZGVsaW1fbnVtPWBl Y2hvICIkYWNfc3Vic3RfdmFycyIgfCBncmVwIC1jICdeJ2AKKythY19kZWxpbT0nJSFfISMgJwor K2ZvciBhY19sYXN0X3RyeSBpbiBmYWxzZSBmYWxzZSBmYWxzZSBmYWxzZSBmYWxzZSA6OyBkbwor KyAgLiAuL2NvbmYkJHN1YnMuc2ggfHwKKysgICAgYXNfZm5fZXJyb3IgJD8gImNvdWxkIG5vdCBt YWtlICRDT05GSUdfU1RBVFVTIiAiJExJTkVOTyIgNQorKworKyAgYWNfZGVsaW1fbj1gc2VkIC1u ICJzLy4qJGFjX2RlbGltXCQvWC9wIiBjb25mJCRzdWJzLmF3ayB8IGdyZXAgLWMgWGAKKysgIGlm IHRlc3QgJGFjX2RlbGltX24gPSAkYWNfZGVsaW1fbnVtOyB0aGVuCisrICAgIGJyZWFrCisrICBl bGlmICRhY19sYXN0X3RyeTsgdGhlbgorKyAgICBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IG1h a2UgJENPTkZJR19TVEFUVVMiICIkTElORU5PIiA1CisrICBlbHNlCisrICAgIGFjX2RlbGltPSIk YWNfZGVsaW0hJGFjX2RlbGltIF8kYWNfZGVsaW0hISAiCisrICBmaQorK2RvbmUKKytybSAtZiBj b25mJCRzdWJzLnNoCisrCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3Jp dGVfZmFpbD0xCisrY2F0ID4+IlwkdG1wL3N1YnMxLmF3ayIgPDxcXF9BQ0FXSyAmJgorK19BQ0VP RgorK3NlZCAtbiAnCisraAorK3MvXi9TWyIvOyBzLyEuKi8iXT0vCisrcAorK2cKKytzL15bXiFd KiEvLworKzpyZXBsCisrdCByZXBsCisrcy8nIiRhY19kZWxpbSInJC8vCisrdCBkZWxpbQorKzpu bAorK2gKKytzL1woLlx7MTQ4XH1cKS4uKi9cMS8KKyt0IG1vcmUxCisrcy9bIlxcXS9cXCYvZzsg cy9eLyIvOyBzLyQvXFxuIlxcLworK3AKKytuCisrYiByZXBsCisrOm1vcmUxCisrcy9bIlxcXS9c XCYvZzsgcy9eLyIvOyBzLyQvIlxcLworK3AKKytnCisrcy8uXHsxNDhcfS8vCisrdCBubAorKzpk ZWxpbQorK2gKKytzL1woLlx7MTQ4XH1cKS4uKi9cMS8KKyt0IG1vcmUyCisrcy9bIlxcXS9cXCYv Zzsgcy9eLyIvOyBzLyQvIi8KKytwCisrYgorKzptb3JlMgorK3MvWyJcXF0vXFwmL2c7IHMvXi8i Lzsgcy8kLyJcXC8KKytwCisrZworK3MvLlx7MTQ4XH0vLworK3QgZGVsaW0KKysnIDxjb25mJCRz dWJzLmF3ayB8IHNlZCAnCisrL15bXiIiXS97CisrICBOCisrICBzL1xuLy8KKyt9CisrJyA+PiRD T05GSUdfU1RBVFVTIHx8IGFjX3dyaXRlX2ZhaWw9MQorK3JtIC1mIGNvbmYkJHN1YnMuYXdrCisr Y2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrX0FDQVdL CisrY2F0ID4+IlwkdG1wL3N1YnMxLmF3ayIgPDxfQUNBV0sgJiYKKysgIGZvciAoa2V5IGluIFMp IFNfaXNfc2V0W2tleV0gPSAxCisrICBGUyA9ICIHIgorKworK30KKyt7CisrICBsaW5lID0gJCAw CisrICBuZmllbGRzID0gc3BsaXQobGluZSwgZmllbGQsICJAIikKKysgIHN1YnN0ZWQgPSAwCisr ICBsZW4gPSBsZW5ndGgoZmllbGRbMV0pCisrICBmb3IgKGkgPSAyOyBpIDwgbmZpZWxkczsgaSsr KSB7CisrICAgIGtleSA9IGZpZWxkW2ldCisrICAgIGtleWxlbiA9IGxlbmd0aChrZXkpCisrICAg IGlmIChTX2lzX3NldFtrZXldKSB7CisrICAgICAgdmFsdWUgPSBTW2tleV0KKysgICAgICBsaW5l ID0gc3Vic3RyKGxpbmUsIDEsIGxlbikgIiIgdmFsdWUgIiIgc3Vic3RyKGxpbmUsIGxlbiArIGtl eWxlbiArIDMpCisrICAgICAgbGVuICs9IGxlbmd0aCh2YWx1ZSkgKyBsZW5ndGgoZmllbGRbKytp XSkKKysgICAgICBzdWJzdGVkID0gMQorKyAgICB9IGVsc2UKKysgICAgICBsZW4gKz0gMSArIGtl eWxlbgorKyAgfQorKworKyAgcHJpbnQgbGluZQorK30KKysKKytfQUNBV0sKKytfQUNFT0YKKytj YXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisraWYgc2Vk ICJzLyRhY19jci8vIiA8IC9kZXYvbnVsbCA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICBzZWQg InMvJGFjX2NyXCQvLzsgcy8kYWNfY3IvJGFjX2NzX2F3a19jci9nIgorK2Vsc2UKKysgIGNhdAor K2ZpIDwgIiR0bXAvc3ViczEuYXdrIiA+ICIkdG1wL3N1YnMuYXdrIiBcCisrICB8fCBhc19mbl9l cnJvciAkPyAiY291bGQgbm90IHNldHVwIGNvbmZpZyBmaWxlcyBtYWNoaW5lcnkiICIkTElORU5P IiA1CisrX0FDRU9GCisrCisrIyBWUEFUSCBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIHNvbWUgbWFr ZXMsIHNvIHdlIHJlbW92ZSBzb2xlICQoc3JjZGlyKSwKKysjICR7c3JjZGlyfSBhbmQgQHNyY2Rp ckAgZW50cmllcyBmcm9tIFZQQVRIIGlmIHNyY2RpciBpcyAiLiIsIHN0cmlwIGxlYWRpbmcgYW5k CisrIyB0cmFpbGluZyBjb2xvbnMgYW5kIHRoZW4gcmVtb3ZlIHRoZSB3aG9sZSBsaW5lIGlmIFZQ QVRIIGJlY29tZXMgZW1wdHkKKysjIChhY3R1YWxseSB3ZSBsZWF2ZSBhbiBlbXB0eSBsaW5lIHRv IHByZXNlcnZlIGxpbmUgbnVtYmVycykuCisraWYgdGVzdCAieCRzcmNkaXIiID0geC47IHRoZW4K KysgIGFjX3Zwc3ViPScvXlsJIF0qVlBBVEhbCSBdKj1bCSBdKi97CisraAorK3MvLy8KKytzL14v Oi8KKytzL1sJIF0qJC86LworK3MvOlwkKHNyY2Rpcik6LzovZworK3MvOlwke3NyY2Rpcn06Lzov ZworK3MvOkBzcmNkaXJAOi86L2cKKytzL146Ki8vCisrcy86KiQvLworK3gKKytzL1woPVsJIF0q XCkuKi9cMS8KKytHCisrcy9cbi8vCisrcy9eW149XSo9WwkgXSokLy8KKyt9JworIGZpCisgCist bWtkaXIgLXAgYnVpbGQvdW5peC9sb2NhbAorLXBhdGg9ImJ1aWxkL3VuaXgvbG9jYWwvcGFyYW1l dGVycyIKKy1ybSAtZiAkcGF0aAorLXRvdWNoICRwYXRoCistZm9yIHBhcmFtIGluICQqCistZG8K Ky0gICAgICAgIGVjaG8gJHBhcmFtID4+ICRwYXRoCistZG9uZQorLQorLXByaW50ZiAnVHJ5aW5n IHRvIGZpbmQgdGhlIFRjbCBpbnRlcnByZXRlci4uLiAnCistdGNsX2ZvdW5kPTAKKy0KKy1mb3Ig cGF0aCBpbiAiL3Vzci9iaW4vdGNsc2giIFwKKy0gICAgICAgICAgICAiL3Vzci9sb2NhbC9iaW4v dGNsc2g4LjUiIFwKKy0gICAgICAgICAgICAiL3Vzci9sb2NhbC9iaW4vdGNsc2g4LjQiIFwKKy0g ICAgICAgICAgICAiL3Vzci9sb2NhbC9iaW4vdGNsc2g4LjMiOyBkbworLSAgICBpZiBbIC14ICRw YXRoIF0KKy0gICAgdGhlbgorLSAgICAgICAgZWNobyAkcGF0aCA+IGJ1aWxkL3VuaXgvbG9jYWwv dGNsCistICAgICAgICBlY2hvICRwYXRoCistICAgICAgICB0Y2xfZm91bmQ9MQorLSAgICAgICAg YnJlYWsKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0x CisrZmkgIyB0ZXN0IC1uICIkQ09ORklHX0ZJTEVTIgorKworKyMgU2V0IHVwIHRoZSBzY3JpcHRz IGZvciBDT05GSUdfSEVBREVSUyBzZWN0aW9uLgorKyMgTm8gbmVlZCB0byBnZW5lcmF0ZSB0aGVt IGlmIHRoZXJlIGFyZSBubyBDT05GSUdfSEVBREVSUy4KKysjIFRoaXMgaGFwcGVucyBmb3IgaW5z dGFuY2Ugd2l0aCBgLi9jb25maWcuc3RhdHVzIE1ha2VmaWxlJy4KKytpZiB0ZXN0IC1uICIkQ09O RklHX0hFQURFUlMiOyB0aGVuCisrY2F0ID4iJHRtcC9kZWZpbmVzLmF3ayIgPDxcX0FDQVdLIHx8 CisrQkVHSU4geworK19BQ0VPRgorKworKyMgVHJhbnNmb3JtIGNvbmZkZWZzLmggaW50byBhbiBh d2sgc2NyaXB0IGBkZWZpbmVzLmF3aycsIGVtYmVkZGVkIGFzCisrIyBoZXJlLWRvY3VtZW50IGlu IGNvbmZpZy5zdGF0dXMsIHRoYXQgc3Vic3RpdHV0ZXMgdGhlIHByb3BlciB2YWx1ZXMgaW50bwor KyMgY29uZmlnLmguaW4gdG8gcHJvZHVjZSBjb25maWcuaC4KKysKKysjIENyZWF0ZSBhIGRlbGlt aXRlciBzdHJpbmcgdGhhdCBkb2VzIG5vdCBleGlzdCBpbiBjb25mZGVmcy5oLCB0byBlYXNlCisr IyBoYW5kbGluZyBvZiBsb25nIGxpbmVzLgorK2FjX2RlbGltPSclIV8hIyAnCisrZm9yIGFjX2xh c3RfdHJ5IGluIGZhbHNlIGZhbHNlIDo7IGRvCisrICBhY190PWBzZWQgLW4gIi8kYWNfZGVsaW0v cCIgY29uZmRlZnMuaGAKKysgIGlmIHRlc3QgLXogIiRhY190IjsgdGhlbgorKyAgICBicmVhawor KyAgZWxpZiAkYWNfbGFzdF90cnk7IHRoZW4KKysgICAgYXNfZm5fZXJyb3IgJD8gImNvdWxkIG5v dCBtYWtlICRDT05GSUdfSEVBREVSUyIgIiRMSU5FTk8iIDUKKysgIGVsc2UKKysgICAgYWNfZGVs aW09IiRhY19kZWxpbSEkYWNfZGVsaW0gXyRhY19kZWxpbSEhICIKKysgIGZpCisrZG9uZQorKwor KyMgRm9yIHRoZSBhd2sgc2NyaXB0LCBEIGlzIGFuIGFycmF5IG9mIG1hY3JvIHZhbHVlcyBrZXll ZCBieSBuYW1lLAorKyMgbGlrZXdpc2UgUCBjb250YWlucyBtYWNybyBwYXJhbWV0ZXJzIGlmIGFu eS4gIFByZXNlcnZlIGJhY2tzbGFzaAorKyMgbmV3bGluZSBzZXF1ZW5jZXMuCisrCisrYWNfd29y ZF9yZT1bXyRhc19jcl9MZXR0ZXJzXVtfJGFzX2NyX2FsbnVtXSoKKytzZWQgLW4gJworK3MvLlx7 MTQ4XH0vJiciJGFjX2RlbGltIicvZworK3QgcnNldAorKzpyc2V0Cisrcy9eWwkgXSojWwkgXSpk ZWZpbmVbCSBdWwkgXSovIC8KKyt0IGRlZgorK2QKKys6ZGVmCisrcy9cXCQvLworK3QgYnNubAor K3MvWyJcXF0vXFwmL2cKKytzL14gXCgnIiRhY193b3JkX3JlIidcKVwoKFteKCldKilcKVsJIF0q XCguKlwpL1BbIlwxIl09IlwyIlwKKytEWyJcMSJdPSIgXDMiL3AKKytzL14gXCgnIiRhY193b3Jk X3JlIidcKVsJIF0qXCguKlwpL0RbIlwxIl09IiBcMiIvcAorK2QKKys6YnNubAorK3MvWyJcXF0v XFwmL2cKKytzL14gXCgnIiRhY193b3JkX3JlIidcKVwoKFteKCldKilcKVsJIF0qXCguKlwpL1Bb IlwxIl09IlwyIlwKKytEWyJcMSJdPSIgXDNcXFxcXFxuIlxcL3AKKyt0IGNvbnQKKytzL14gXCgn IiRhY193b3JkX3JlIidcKVsJIF0qXCguKlwpL0RbIlwxIl09IiBcMlxcXFxcXG4iXFwvcAorK3Qg Y29udAorK2QKKys6Y29udAorK24KKytzLy5cezE0OFx9LyYnIiRhY19kZWxpbSInL2cKKyt0IGNs ZWFyCisrOmNsZWFyCisrcy9cXCQvLworK3QgYnNubGMKKytzL1siXFxdL1xcJi9nOyBzL14vIi87 IHMvJC8iL3AKKytkCisrOmJzbmxjCisrcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvXFxcXFxc biJcXC9wCisrYiBjb250CisrJyA8Y29uZmRlZnMuaCB8IHNlZCAnCisrcy8nIiRhY19kZWxpbSIn LyJcXFwKKysiL2cnID4+JENPTkZJR19TVEFUVVMgfHwgYWNfd3JpdGVfZmFpbD0xCisrCisrY2F0 ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrICBmb3IgKGtl eSBpbiBEKSBEX2lzX3NldFtrZXldID0gMQorKyAgRlMgPSAiByIKKyt9CisrL15bXHQgXSojW1x0 IF0qKGRlZmluZXx1bmRlZilbXHQgXSskYWNfd29yZF9yZShbXHQgKF18XCQpLyB7CisrICBsaW5l ID0gXCQgMAorKyAgc3BsaXQobGluZSwgYXJnLCAiICIpCisrICBpZiAoYXJnWzFdID09ICIjIikg eworKyAgICBkZWZ1bmRlZiA9IGFyZ1syXQorKyAgICBtYWMxID0gYXJnWzNdCisrICB9IGVsc2Ug eworKyAgICBkZWZ1bmRlZiA9IHN1YnN0cihhcmdbMV0sIDIpCisrICAgIG1hYzEgPSBhcmdbMl0K KysgIH0KKysgIHNwbGl0KG1hYzEsIG1hYzIsICIoIikgIykKKysgIG1hY3JvID0gbWFjMlsxXQor KyAgcHJlZml4ID0gc3Vic3RyKGxpbmUsIDEsIGluZGV4KGxpbmUsIGRlZnVuZGVmKSAtIDEpCisr ICBpZiAoRF9pc19zZXRbbWFjcm9dKSB7CisrICAgICMgUHJlc2VydmUgdGhlIHdoaXRlIHNwYWNl IHN1cnJvdW5kaW5nIHRoZSAiIyIuCisrICAgIHByaW50IHByZWZpeCAiZGVmaW5lIiwgbWFjcm8g UFttYWNyb10gRFttYWNyb10KKysgICAgbmV4dAorKyAgfSBlbHNlIHsKKysgICAgIyBSZXBsYWNl ICN1bmRlZiB3aXRoIGNvbW1lbnRzLiAgVGhpcyBpcyBuZWNlc3NhcnksIGZvciBleGFtcGxlLAor KyAgICAjIGluIHRoZSBjYXNlIG9mIF9QT1NJWF9TT1VSQ0UsIHdoaWNoIGlzIHByZWRlZmluZWQg YW5kIHJlcXVpcmVkCisrICAgICMgb24gc29tZSBzeXN0ZW1zIHdoZXJlIGNvbmZpZ3VyZSB3aWxs IG5vdCBkZWNpZGUgdG8gZGVmaW5lIGl0LgorKyAgICBpZiAoZGVmdW5kZWYgPT0gInVuZGVmIikg eworKyAgICAgIHByaW50ICIvKiIsIHByZWZpeCBkZWZ1bmRlZiwgbWFjcm8sICIqLyIKKysgICAg ICBuZXh0CisrICAgIH0KKysgIH0KKyt9CisreyBwcmludCB9CisrX0FDQVdLCisrX0FDRU9GCisr Y2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKyAgYXNf Zm5fZXJyb3IgJD8gImNvdWxkIG5vdCBzZXR1cCBjb25maWcgaGVhZGVycyBtYWNoaW5lcnkiICIk TElORU5PIiA1CisrZmkgIyB0ZXN0IC1uICIkQ09ORklHX0hFQURFUlMiCisrCisrCisrZXZhbCBz ZXQgWCAiICA6RiAkQ09ORklHX0ZJTEVTICA6SCAkQ09ORklHX0hFQURFUlMgICAgOkMgJENPTkZJ R19DT01NQU5EUyIKKytzaGlmdAorK2ZvciBhY190YWcKKytkbworKyAgY2FzZSAkYWNfdGFnIGlu CisrICA6W0ZITENdKSBhY19tb2RlPSRhY190YWc7IGNvbnRpbnVlOzsKKysgIGVzYWMKKysgIGNh c2UgJGFjX21vZGUkYWNfdGFnIGluCisrICA6W0ZITF0qOiopOzsKKysgIDpMKiB8IDpDKjoqKSBh c19mbl9lcnJvciAkPyAiaW52YWxpZCB0YWcgXGAkYWNfdGFnJyIgIiRMSU5FTk8iIDU7OworKyAg OltGSF0tKSBhY190YWc9LTotOzsKKysgIDpbRkhdKikgYWNfdGFnPSRhY190YWc6JGFjX3RhZy5p bjs7CisrICBlc2FjCisrICBhY19zYXZlX0lGUz0kSUZTCisrICBJRlM9OgorKyAgc2V0IHggJGFj X3RhZworKyAgSUZTPSRhY19zYXZlX0lGUworKyAgc2hpZnQKKysgIGFjX2ZpbGU9JDEKKysgIHNo aWZ0CisrCisrICBjYXNlICRhY19tb2RlIGluCisrICA6TCkgYWNfc291cmNlPSQxOzsKKysgIDpb RkhdKQorKyAgICBhY19maWxlX2lucHV0cz0KKysgICAgZm9yIGFjX2YKKysgICAgZG8KKysgICAg ICBjYXNlICRhY19mIGluCisrICAgICAgLSkgYWNfZj0iJHRtcC9zdGRpbiI7OworKyAgICAgICop ICMgTG9vayBmb3IgdGhlIGZpbGUgZmlyc3QgaW4gdGhlIGJ1aWxkIHRyZWUsIHRoZW4gaW4gdGhl IHNvdXJjZSB0cmVlCisrCSAjIChpZiB0aGUgcGF0aCBpcyBub3QgYWJzb2x1dGUpLiAgVGhlIGFi c29sdXRlIHBhdGggY2Fubm90IGJlIERPUy1zdHlsZSwKKysJICMgYmVjYXVzZSAkYWNfZiBjYW5u b3QgY29udGFpbiBgOicuCisrCSB0ZXN0IC1mICIkYWNfZiIgfHwKKysJICAgY2FzZSAkYWNfZiBp bgorKwkgICBbXFwvJF0qKSBmYWxzZTs7CisrCSAgICopIHRlc3QgLWYgIiRzcmNkaXIvJGFjX2Yi ICYmIGFjX2Y9IiRzcmNkaXIvJGFjX2YiOzsKKysJICAgZXNhYyB8fAorKwkgICBhc19mbl9lcnJv ciAxICJjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiBcYCRhY19mJyIgIiRMSU5FTk8iIDU7OworKyAg ICAgIGVzYWMKKysgICAgICBjYXNlICRhY19mIGluICpcJyopIGFjX2Y9YCRhc19lY2hvICIkYWNf ZiIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OyBlc2FjCisrICAgICAgYXNfZm5fYXBwZW5k IGFjX2ZpbGVfaW5wdXRzICIgJyRhY19mJyIKKysgICAgZG9uZQorKworKyAgICAjIExldCdzIHN0 aWxsIHByZXRlbmQgaXQgaXMgYGNvbmZpZ3VyZScgd2hpY2ggaW5zdGFudGlhdGVzIChpLmUuLCBk b24ndAorKyAgICAjIHVzZSAkYXNfbWUpLCBwZW9wbGUgd291bGQgYmUgc3VycHJpc2VkIHRvIHJl YWQ6CisrICAgICMgICAgLyogY29uZmlnLmguICBHZW5lcmF0ZWQgYnkgY29uZmlnLnN0YXR1cy4g ICovCisrICAgIGNvbmZpZ3VyZV9pbnB1dD0nR2VuZXJhdGVkIGZyb20gJ2AKKysJICAkYXNfZWNo byAiJCoiIHwgc2VkICdzfF5bXjpdKi98fDtzfDpbXjpdKi98LCB8ZycKKysJYCcgYnkgY29uZmln dXJlLicKKysgICAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsgdGhlbgorKyAgICAgIGNvbmZp Z3VyZV9pbnB1dD0iJGFjX2ZpbGUuICAkY29uZmlndXJlX2lucHV0IgorKyAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNQor KyRhc19lY2hvICIkYXNfbWU6IGNyZWF0aW5nICRhY19maWxlIiA+JjY7fQorKyAgICBmaQorKyAg ICAjIE5ldXRyYWxpemUgc3BlY2lhbCBjaGFyYWN0ZXJzIGludGVycHJldGVkIGJ5IHNlZCBpbiBy ZXBsYWNlbWVudCBzdHJpbmdzLgorKyAgICBjYXNlICRjb25maWd1cmVfaW5wdXQgaW4gIygKKysg ICAgKlwmKiB8ICpcfCogfCAqXFwqICkKKysgICAgICAgYWNfc2VkX2NvbmZfaW5wdXQ9YCRhc19l Y2hvICIkY29uZmlndXJlX2lucHV0IiB8CisrICAgICAgIHNlZCAncy9bXFxcXCZ8XS9cXFxcJi9n J2A7OyAjKAorKyAgICAqKSBhY19zZWRfY29uZl9pbnB1dD0kY29uZmlndXJlX2lucHV0OzsKKysg ICAgZXNhYworKworKyAgICBjYXNlICRhY190YWcgaW4KKysgICAgKjotOiogfCAqOi0pIGNhdCA+ IiR0bXAvc3RkaW4iIFwKKysgICAgICB8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IGNyZWF0 ZSAkYWNfZmlsZSIgIiRMSU5FTk8iIDUgOzsKKysgICAgZXNhYworKyAgICA7OworKyAgZXNhYwor KworKyAgYWNfZGlyPWAkYXNfZGlybmFtZSAtLSAiJGFjX2ZpbGUiIHx8CisrJGFzX2V4cHIgWCIk YWNfZmlsZSIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKysJIFgiJGFjX2Zp bGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisrCSBYIiRhY19maWxlIiA6ICdYXCgvL1wpJCcgXHwg XAorKwkgWCIkYWNfZmlsZSIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrJGFzX2Vj aG8gWCIkYWNfZmlsZSIgfAorKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwv KiQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpW14vXS4q L3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKSQveworKwkg ICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cKS4qL3sKKysJICAgIHMvL1wx LworKwkgICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBxJ2AKKysgIGFzX2Rpcj0iJGFjX2RpciI7 IGFzX2ZuX21rZGlyX3AKKysgIGFjX2J1aWxkZGlyPS4KKysKKytjYXNlICIkYWNfZGlyIiBpbgor Ky4pIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJl Zml4PSA7OworKyopCisrICBhY19kaXJfc3VmZml4PS9gJGFzX2VjaG8gIiRhY19kaXIiIHwgc2Vk ICdzfF5cLltcXC9dfHwnYAorKyAgIyBBICIuLiIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19k aXJfc3VmZml4LgorKyAgYWNfdG9wX2J1aWxkZGlyX3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3Vm Zml4IiB8IHNlZCAnc3wvW15cXC9dKnwvLi58ZztzfC98fCdgCisrICBjYXNlICRhY190b3BfYnVp bGRkaXJfc3ViIGluCisrICAiIikgYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9w cmVmaXg9IDs7CisrICAqKSAgYWNfdG9wX2J1aWxkX3ByZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1 Yi8gOzsKKysgIGVzYWMgOzsKKytlc2FjCisrYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfcHdkCisr YWNfYWJzX2J1aWxkZGlyPSRhY19wd2QkYWNfZGlyX3N1ZmZpeAorKyMgZm9yIGJhY2t3YXJkIGNv bXBhdGliaWxpdHk6CisrYWNfdG9wX2J1aWxkZGlyPSRhY190b3BfYnVpbGRfcHJlZml4CisrCisr Y2FzZSAkc3JjZGlyIGluCisrICAuKSAgIyBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCisrICAg IGFjX3NyY2Rpcj0uCisrICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpcl9zdWIKKysg ICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZCA7OworKyAgW1xcL10qIHwgPzpbXFwvXSogKSAg IyBBYnNvbHV0ZSBuYW1lLgorKyAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4Owor KyAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIKKysgICAgYWNfYWJzX3RvcF9zcmNkaXI9JHNyY2Rp ciA7OworKyAgKikgIyBSZWxhdGl2ZSBuYW1lLgorKyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWls ZF9wcmVmaXgkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKKysgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9w X2J1aWxkX3ByZWZpeCRzcmNkaXIKKysgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZC8kc3Jj ZGlyIDs7CisrZXNhYworK2FjX2Fic19zcmNkaXI9JGFjX2Fic190b3Bfc3JjZGlyJGFjX2Rpcl9z dWZmaXgKKysKKysKKysgIGNhc2UgJGFjX21vZGUgaW4KKysgIDpGKQorKyAgIworKyAgIyBDT05G SUdfRklMRQorKyAgIworKworKyAgY2FzZSAkSU5TVEFMTCBpbgorKyAgW1xcLyRdKiB8ID86W1xc L10qICkgYWNfSU5TVEFMTD0kSU5TVEFMTCA7OworKyAgKikgYWNfSU5TVEFMTD0kYWNfdG9wX2J1 aWxkX3ByZWZpeCRJTlNUQUxMIDs7CisrICBlc2FjCisrICBhY19NS0RJUl9QPSRNS0RJUl9QCisr ICBjYXNlICRNS0RJUl9QIGluCisrICBbXFwvJF0qIHwgPzpbXFwvXSogKSA7OworKyAgKi8qKSBh Y19NS0RJUl9QPSRhY190b3BfYnVpbGRfcHJlZml4JE1LRElSX1AgOzsKKysgIGVzYWMKKytfQUNF T0YKKysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0x CisrIyBJZiB0aGUgdGVtcGxhdGUgZG9lcyBub3Qga25vdyBhYm91dCBkYXRhcm9vdGRpciwgZXhw YW5kIGl0LgorKyMgRklYTUU6IFRoaXMgaGFjayBzaG91bGQgYmUgcmVtb3ZlZCBhIGZldyB5ZWFy cyBhZnRlciAyLjYwLgorK2FjX2RhdGFyb290ZGlyX2hhY2s9OyBhY19kYXRhcm9vdGRpcl9zZWVu PQorK2FjX3NlZF9kYXRhcm9vdD0nCisrL2RhdGFyb290ZGlyLyB7CisrICBwCisrICBxCisrfQor Ky9AZGF0YWRpckAvcAorKy9AZG9jZGlyQC9wCisrL0BpbmZvZGlyQC9wCisrL0Bsb2NhbGVkaXJA L3AKKysvQG1hbmRpckAvcCcKKytjYXNlIGBldmFsICJzZWQgLW4gXCJcJGFjX3NlZF9kYXRhcm9v dFwiICRhY19maWxlX2lucHV0cyJgIGluCisrKmRhdGFyb290ZGlyKikgYWNfZGF0YXJvb3RkaXJf c2Vlbj15ZXM7OworKypAZGF0YWRpckAqfCpAZG9jZGlyQCp8KkBpbmZvZGlyQCp8KkBsb2NhbGVk aXJAKnwqQG1hbmRpckAqKQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBXQVJOSU5HOiAkYWNfZmlsZV9pbnB1dHMgc2VlbXMgdG8gaWdub3JlIHRoZSAtLWRhdGFy b290ZGlyIHNldHRpbmciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19maWxl X2lucHV0cyBzZWVtcyB0byBpZ25vcmUgdGhlIC0tZGF0YXJvb3RkaXIgc2V0dGluZyIgPiYyO30K KytfQUNFT0YKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWls PTEKKysgIGFjX2RhdGFyb290ZGlyX2hhY2s9JworKyAgcyZAZGF0YWRpckAmJGRhdGFkaXImZwor KyAgcyZAZG9jZGlyQCYkZG9jZGlyJmcKKysgIHMmQGluZm9kaXJAJiRpbmZvZGlyJmcKKysgIHMm QGxvY2FsZWRpckAmJGxvY2FsZWRpciZnCisrICBzJkBtYW5kaXJAJiRtYW5kaXImZworKyAgcyZc XFwke2RhdGFyb290ZGlyfSYkZGF0YXJvb3RkaXImZycgOzsKKytlc2FjCisrX0FDRU9GCisrCisr IyBOZXV0cmFsaXplIFZQQVRIIHdoZW4gYCRzcmNkaXInID0gYC4nLgorKyMgU2hlbGwgY29kZSBp biBjb25maWd1cmUuYWMgbWlnaHQgc2V0IGV4dHJhc3ViLgorKyMgRklYTUU6IGRvIHdlIHJlYWxs eSB3YW50IHRvIG1haW50YWluIHRoaXMgZmVhdHVyZT8KKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8 PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKythY19zZWRfZXh0cmE9IiRhY192cHN1YgorKyRl eHRyYXN1YgorK19BQ0VPRgorK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193 cml0ZV9mYWlsPTEKKys6dAorKy9AW2EtekEtWl9dW2EtekEtWl8wLTldKkAvIWIKKytzfEBjb25m aWd1cmVfaW5wdXRAfCRhY19zZWRfY29uZl9pbnB1dHw7dCB0CisrcyZAdG9wX2J1aWxkZGlyQCYk YWNfdG9wX2J1aWxkZGlyX3N1YiY7dCB0CisrcyZAdG9wX2J1aWxkX3ByZWZpeEAmJGFjX3RvcF9i dWlsZF9wcmVmaXgmO3QgdAorK3MmQHNyY2RpckAmJGFjX3NyY2RpciY7dCB0CisrcyZAYWJzX3Ny Y2RpckAmJGFjX2Fic19zcmNkaXImO3QgdAorK3MmQHRvcF9zcmNkaXJAJiRhY190b3Bfc3JjZGly Jjt0IHQKKytzJkBhYnNfdG9wX3NyY2RpckAmJGFjX2Fic190b3Bfc3JjZGlyJjt0IHQKKytzJkBi dWlsZGRpckAmJGFjX2J1aWxkZGlyJjt0IHQKKytzJkBhYnNfYnVpbGRkaXJAJiRhY19hYnNfYnVp bGRkaXImO3QgdAorK3MmQGFic190b3BfYnVpbGRkaXJAJiRhY19hYnNfdG9wX2J1aWxkZGlyJjt0 IHQKKytzJkBJTlNUQUxMQCYkYWNfSU5TVEFMTCY7dCB0CisrcyZATUtESVJfUEAmJGFjX01LRElS X1AmO3QgdAorKyRhY19kYXRhcm9vdGRpcl9oYWNrCisrIgorK2V2YWwgc2VkIFwiXCRhY19zZWRf ZXh0cmFcIiAiJGFjX2ZpbGVfaW5wdXRzIiB8ICRBV0sgLWYgIiR0bXAvc3Vicy5hd2siID4kdG1w L291dCBcCisrICB8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIg IiRMSU5FTk8iIDUKKysKKyt0ZXN0IC16ICIkYWNfZGF0YXJvb3RkaXJfaGFjayRhY19kYXRhcm9v dGRpcl9zZWVuIiAmJgorKyAgeyBhY19vdXQ9YHNlZCAtbiAnL1wke2RhdGFyb290ZGlyfS9wJyAi JHRtcC9vdXQiYDsgdGVzdCAtbiAiJGFjX291dCI7IH0gJiYKKysgIHsgYWNfb3V0PWBzZWQgLW4g Jy9eWwkgXSpkYXRhcm9vdGRpclsJIF0qOio9L3AnICIkdG1wL291dCJgOyB0ZXN0IC16ICIkYWNf b3V0IjsgfSAmJgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBX QVJOSU5HOiAkYWNfZmlsZSBjb250YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgdmFyaWFibGUgXGBk YXRhcm9vdGRpcicKKyt3aGljaCBzZWVtcyB0byBiZSB1bmRlZmluZWQuICBQbGVhc2UgbWFrZSBz dXJlIGl0IGlzIGRlZmluZWQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19m aWxlIGNvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSB2YXJpYWJsZSBcYGRhdGFyb290ZGlyJwor K3doaWNoIHNlZW1zIHRvIGJlIHVuZGVmaW5lZC4gIFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgZGVm aW5lZCIgPiYyO30KKysKKysgIHJtIC1mICIkdG1wL3N0ZGluIgorKyAgY2FzZSAkYWNfZmlsZSBp bgorKyAgLSkgY2F0ICIkdG1wL291dCIgJiYgcm0gLWYgIiR0bXAvb3V0Ijs7CisrICAqKSBybSAt ZiAiJGFjX2ZpbGUiICYmIG12ICIkdG1wL291dCIgIiRhY19maWxlIjs7CisrICBlc2FjIFwKKysg IHx8IGFzX2ZuX2Vycm9yICQ/ICJjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiAiJExJTkVOTyIg NQorKyA7OworKyAgOkgpCisrICAjCisrICAjIENPTkZJR19IRUFERVIKKysgICMKKysgIGlmIHRl c3QgeCIkYWNfZmlsZSIgIT0geC07IHRoZW4KKysgICAgeworKyAgICAgICRhc19lY2hvICIvKiAk Y29uZmlndXJlX2lucHV0ICAqLyIgXAorKyAgICAgICYmIGV2YWwgJyRBV0sgLWYgIiR0bXAvZGVm aW5lcy5hd2siJyAiJGFjX2ZpbGVfaW5wdXRzIgorKyAgICB9ID4iJHRtcC9jb25maWcuaCIgXAor KyAgICAgIHx8IGFzX2ZuX2Vycm9yICQ/ICJjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiAiJExJ TkVOTyIgNQorKyAgICBpZiBkaWZmICIkYWNfZmlsZSIgIiR0bXAvY29uZmlnLmgiID4vZGV2L251 bGwgMj4mMTsgdGhlbgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiAkYWNf ZmlsZSBpcyB1bmNoYW5nZWQiID4mNjt9CisrICAgIGVsc2UKKysgICAgICBybSAtZiAiJGFjX2Zp bGUiCisrICAgICAgbXYgIiR0bXAvY29uZmlnLmgiICIkYWNfZmlsZSIgXAorKwl8fCBhc19mbl9l cnJvciAkPyAiY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgIiRMSU5FTk8iIDUKKyAgICAgZmkK KysgIGVsc2UKKysgICAgJGFzX2VjaG8gIi8qICRjb25maWd1cmVfaW5wdXQgICovIiBcCisrICAg ICAgJiYgZXZhbCAnJEFXSyAtZiAiJHRtcC9kZWZpbmVzLmF3ayInICIkYWNfZmlsZV9pbnB1dHMi IFwKKysgICAgICB8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IGNyZWF0ZSAtIiAiJExJTkVO TyIgNQorKyAgZmkKKysjIENvbXB1dGUgIiRhY19maWxlIidzIGluZGV4IGluICRjb25maWdfaGVh ZGVycy4KKytfYW1fYXJnPSIkYWNfZmlsZSIKKytfYW1fc3RhbXBfY291bnQ9MQorK2ZvciBfYW1f aGVhZGVyIGluICRjb25maWdfaGVhZGVycyA6OyBkbworKyAgY2FzZSAkX2FtX2hlYWRlciBpbgor KyAgICAkX2FtX2FyZyB8ICRfYW1fYXJnOiogKQorKyAgICAgIGJyZWFrIDs7CisrICAgICogKQor KyAgICAgIF9hbV9zdGFtcF9jb3VudD1gZXhwciAkX2FtX3N0YW1wX2NvdW50ICsgMWAgOzsKKysg IGVzYWMKKyBkb25lCisrZWNobyAidGltZXN0YW1wIGZvciAkX2FtX2FyZyIgPmAkYXNfZGlybmFt ZSAtLSAiJF9hbV9hcmciIHx8CisrJGFzX2V4cHIgWCIkX2FtX2FyZyIgOiAnWFwoLipbXi9dXCkv LypbXi9dW14vXSovKiQnIFx8IFwKKysJIFgiJF9hbV9hcmciIDogJ1hcKC8vXClbXi9dJyBcfCBc CisrCSBYIiRfYW1fYXJnIiA6ICdYXCgvL1wpJCcgXHwgXAorKwkgWCIkX2FtX2FyZyIgOiAnWFwo L1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrJGFzX2VjaG8gWCIkX2FtX2FyZyIgfAorKyAgICBz ZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveworKwkgICAgcy8vXDEvCisrCSAg ICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKKysJICAgIHMvL1wxLworKwkgICAg cQorKwkgIH0KKysJICAvXlhcKFwvXC9cKSQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAg fQorKwkgIC9eWFwoXC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICBz Ly4qLy4vOyBxJ2Avc3RhbXAtaCRfYW1fc3RhbXBfY291bnQKKysgOzsKKyAKKy1pZiBbICR0Y2xf Zm91bmQgLWVxIDAgXQorLXRoZW4KKy0gICAgICAgIGVjaG8gJ05PVCBmb3VuZC4nCistICAgICAg ICBlY2hvICdJcyB0aGUgVGNsIGluc3RhbGxlZD8nCistICAgICAgICBleGl0CisrICA6QykgIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZXhlY3V0aW5nICRhY19maWxl IGNvbW1hbmRzIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBleGVjdXRpbmcgJGFjX2ZpbGUgY29t bWFuZHMiID4mNjt9CisrIDs7CisrICBlc2FjCisrCisrCisrICBjYXNlICRhY19maWxlJGFjX21v ZGUgaW4KKysgICAgImRlcGZpbGVzIjpDKSB0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgiIiB8fCB7 CisrICAjIEF1dG9jb25mIDIuNjIgcXVvdGVzIC0tZmlsZSBhcmd1bWVudHMgZm9yIGV2YWwsIGJ1 dCBub3Qgd2hlbiBmaWxlcworKyAgIyBhcmUgbGlzdGVkIHdpdGhvdXQgLS1maWxlLiAgTGV0J3Mg cGxheSBzYWZlIGFuZCBvbmx5IGVuYWJsZSB0aGUgZXZhbAorKyAgIyBpZiB3ZSBkZXRlY3QgdGhl IHF1b3RpbmcuCisrICBjYXNlICRDT05GSUdfRklMRVMgaW4KKysgICpcJyopIGV2YWwgc2V0IHgg IiRDT05GSUdfRklMRVMiIDs7CisrICAqKSAgIHNldCB4ICRDT05GSUdfRklMRVMgOzsKKysgIGVz YWMKKysgIHNoaWZ0CisrICBmb3IgbWYKKysgIGRvCisrICAgICMgU3RyaXAgTUYgc28gd2UgZW5k IHVwIHdpdGggdGhlIG5hbWUgb2YgdGhlIGZpbGUuCisrICAgIG1mPWBlY2hvICIkbWYiIHwgc2Vk IC1lICdzLzouKiQvLydgCisrICAgICMgQ2hlY2sgd2hldGhlciB0aGlzIGlzIGFuIEF1dG9tYWtl IGdlbmVyYXRlZCBNYWtlZmlsZSBvciBub3QuCisrICAgICMgV2UgdXNlZCB0byBtYXRjaCBvbmx5 IHRoZSBmaWxlcyBuYW1lZCBgTWFrZWZpbGUuaW4nLCBidXQKKysgICAgIyBzb21lIHBlb3BsZSBy ZW5hbWUgdGhlbTsgc28gaW5zdGVhZCB3ZSBsb29rIGF0IHRoZSBmaWxlIGNvbnRlbnQuCisrICAg ICMgR3JlcCdpbmcgdGhlIGZpcnN0IGxpbmUgaXMgbm90IGVub3VnaDogc29tZSBwZW9wbGUgcG9z dC1wcm9jZXNzCisrICAgICMgZWFjaCBNYWtlZmlsZS5pbiBhbmQgYWRkIGEgbmV3IGxpbmUgb24g dG9wIG9mIGVhY2ggZmlsZSB0byBzYXkgc28uCisrICAgICMgR3JlcCdpbmcgdGhlIHdob2xlIGZp bGUgaXMgbm90IGdvb2QgZWl0aGVyOiBBSVggZ3JlcCBoYXMgYSBsaW5lCisrICAgICMgbGltaXQg b2YgMjA0OCwgYnV0IGFsbCBzZWQncyB3ZSBrbm93IGhhdmUgdW5kZXJzdGFuZCBhdCBsZWFzdCA0 MDAwLgorKyAgICBpZiBzZWQgLW4gJ3MsXiMuKmdlbmVyYXRlZCBieSBhdXRvbWFrZS4qLFgscCcg IiRtZiIgfCBncmVwIFggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgICAgZGlycGFydD1gJGFz X2Rpcm5hbWUgLS0gIiRtZiIgfHwKKyskYXNfZXhwciBYIiRtZiIgOiAnWFwoLipbXi9dXCkvLypb Xi9dW14vXSovKiQnIFx8IFwKKysJIFgiJG1mIiA6ICdYXCgvL1wpW14vXScgXHwgXAorKwkgWCIk bWYiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiRtZiIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9u dWxsIHx8CisrJGFzX2VjaG8gWCIkbWYiIHwKKysgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypb Xi9dW14vXSpcLyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwv XC9cKVteL10uKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wv XCkkL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXCkuKi97Cisr CSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgcy8uKi8uLzsgcSdgCisrICAgIGVsc2UK KysgICAgICBjb250aW51ZQorKyAgICBmaQorKyAgICAjIEV4dHJhY3QgdGhlIGRlZmluaXRpb24g b2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQorKyAgICAjIGZyb20gdGhlIE1h a2VmaWxlIHdpdGhvdXQgcnVubmluZyBgbWFrZScuCisrICAgIERFUERJUj1gc2VkIC1uICdzL15E RVBESVIgPSAvL3AnIDwgIiRtZiJgCisrICAgIHRlc3QgLXogIiRERVBESVIiICYmIGNvbnRpbnVl CisrICAgIGFtX19pbmNsdWRlPWBzZWQgLW4gJ3MvXmFtX19pbmNsdWRlID0gLy9wJyA8ICIkbWYi YAorKyAgICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29udGludWUKKysgICAgYW1fX3F1b3Rl PWBzZWQgLW4gJ3MvXmFtX19xdW90ZSA9IC8vcCcgPCAiJG1mImAKKysgICAgIyBXaGVuIHVzaW5n IGFuc2kya25yLCBVIG1heSBiZSBlbXB0eSBvciBhbiB1bmRlcnNjb3JlOyBleHBhbmQgaXQKKysg ICAgVT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAorKyAgICAjIEZpbmQgYWxsIGRlcGVu ZGVuY3kgb3V0cHV0IGZpbGVzLCB0aGV5IGFyZSBpbmNsdWRlZCBmaWxlcyB3aXRoCisrICAgICMg JChERVBESVIpIGluIHRoZWlyIG5hbWVzLiAgV2UgaW52b2tlIHNlZCB0d2ljZSBiZWNhdXNlIGl0 IGlzIHRoZQorKyAgICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0 byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQorKyAgICAjIGV4cGFuc2lvbi4KKysgICAgZm9yIGZp bGUgaW4gYHNlZCAtbiAiCisrICAgICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4qKERF UERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCisrCSBzZWQgLWUgJ3MvXCQo REVQRElSKS8nIiRERVBESVIiJy9nJyAtZSAncy9cJFUvJyIkVSInL2cnYDsgZG8KKysgICAgICAj IE1ha2Ugc3VyZSB0aGUgZGlyZWN0b3J5IGV4aXN0cy4KKysgICAgICB0ZXN0IC1mICIkZGlycGFy dC8kZmlsZSIgJiYgY29udGludWUKKysgICAgICBmZGlyPWAkYXNfZGlybmFtZSAtLSAiJGZpbGUi IHx8CisrJGFzX2V4cHIgWCIkZmlsZSIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8 IFwKKysJIFgiJGZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisrCSBYIiRmaWxlIiA6ICdYXCgv L1wpJCcgXHwgXAorKwkgWCIkZmlsZSIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8Cisr JGFzX2VjaG8gWCIkZmlsZSIgfAorKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9d KlwvKiQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpW14v XS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKSQvewor KwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cKS4qL3sKKysJICAgIHMv L1wxLworKwkgICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBxJ2AKKysgICAgICBhc19kaXI9JGRp cnBhcnQvJGZkaXI7IGFzX2ZuX21rZGlyX3AKKysgICAgICAjIGVjaG8gImNyZWF0aW5nICRkaXJw YXJ0LyRmaWxlIgorKyAgICAgIGVjaG8gJyMgZHVtbXknID4gIiRkaXJwYXJ0LyRmaWxlIgorKyAg ICBkb25lCisrICBkb25lCisrfQorKyA7OworKyAgICAibGlidG9vbCI6QykKKysKKysgICAgIyBT ZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFs bG93IG91cgorKyAgICAjIGNvbW1hbmRzIHRocm91Z2ggd2l0aG91dCByZW1vdmFsIG9mIFwgZXNj YXBlcy4KKysgICAgaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4KKysgICAg ICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorKyAgICBmaQorKworKyAgICBjZmdmaWxlPSIke29maWxl fVQiCisrICAgIHRyYXAgIiRSTSBcIiRjZmdmaWxlXCI7IGV4aXQgMSIgMSAyIDE1CisrICAgICRS TSAiJGNmZ2ZpbGUiCisrCisrICAgIGNhdCA8PF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorKyMhICRT SEVMTAorKworKyMgYCRFQ0hPICIkb2ZpbGUiIHwgc2VkICdzJV4uKi8lJSdgIC0gUHJvdmlkZSBn ZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCisrIyBHZW5lcmF0 ZWQgYXV0b21hdGljYWxseSBieSAkYXNfbWUgKCRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04K KysjIExpYnRvb2wgd2FzIGNvbmZpZ3VyZWQgb24gaG9zdCBgKGhvc3RuYW1lIHx8IHVuYW1lIC1u KSAyPi9kZXYvbnVsbCB8IHNlZCAxcWA6CisrIyBOT1RFOiBDaGFuZ2VzIG1hZGUgdG8gdGhpcyBm aWxlIHdpbGwgYmUgbG9zdDogbG9vayBhdCBsdG1haW4uc2guCisrIworKyMgICBDb3B5cmlnaHQg KEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUs CisrIyAgICAgICAgICAgICAgICAgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sCisrIyAgICAgICAgICAgICAgICAgSW5jLgorKyMgICBXcml0dGVu IGJ5IEdvcmRvbiBNYXR6aWdrZWl0LCAxOTk2CisrIworKyMgICBUaGlzIGZpbGUgaXMgcGFydCBv ZiBHTlUgTGlidG9vbC4KKysjCisrIyBHTlUgTGlidG9vbCBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisrIyBwdWJsaXNoZWQgYnkgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorKyMgdGhlIExp Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgQXMg YSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCisr IyBpZiB5b3UgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gb3IgbGli cmFyeSB0aGF0CisrIyBpcyBidWlsdCB1c2luZyBHTlUgTGlidG9vbCwgeW91IG1heSBpbmNsdWRl IHRoaXMgZmlsZSB1bmRlciB0aGUKKysjIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91 IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorKyMKKysjIEdOVSBMaWJ0b29sIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCBHTlUgTGlidG9vbDsgc2VlIHRoZSBm aWxlIENPUFlJTkcuICBJZiBub3QsIGEgY29weQorKyMgY2FuIGJlIGRvd25sb2FkZWQgZnJvbSBo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWwsIG9yCisrIyBvYnRhaW5lZCBieSB3 cml0aW5nIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCisrIyA1MSBGcmFu a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKysK KysKKysjIFRoZSBuYW1lcyBvZiB0aGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHN1cHBvcnRlZCBi eSB0aGlzIHNjcmlwdC4KKythdmFpbGFibGVfdGFncz0iQ1hYICIKKysKKysjICMjIyBCRUdJTiBM SUJUT09MIENPTkZJRworKworKyMgV2hldGhlciBvciBub3QgdG8gYnVpbGQgc2hhcmVkIGxpYnJh cmllcy4KKytidWlsZF9saWJ0b29sX2xpYnM9JGVuYWJsZV9zaGFyZWQKKysKKysjIFdoZXRoZXIg b3Igbm90IHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMuCisrYnVpbGRfb2xkX2xpYnM9JGVuYWJs ZV9zdGF0aWMKKysKKysjIFdoaWNoIHJlbGVhc2Ugb2YgbGlidG9vbC5tNCB3YXMgdXNlZD8KKytt YWNyb192ZXJzaW9uPSRtYWNyb192ZXJzaW9uCisrbWFjcm9fcmV2aXNpb249JG1hY3JvX3Jldmlz aW9uCisrCisrIyBXaGF0IHR5cGUgb2Ygb2JqZWN0cyB0byBidWlsZC4KKytwaWNfbW9kZT0kcGlj X21vZGUKKysKKysjIFdoZXRoZXIgb3Igbm90IHRvIG9wdGltaXplIGZvciBmYXN0IGluc3RhbGxh dGlvbi4KKytmYXN0X2luc3RhbGw9JGVuYWJsZV9mYXN0X2luc3RhbGwKKysKKysjIFNoZWxsIHRv IHVzZSB3aGVuIGludm9raW5nIHNoZWxsIHNjcmlwdHMuCisrU0hFTEw9JGx0X1NIRUxMCisrCisr IyBBbiBlY2hvIHByb2dyYW0gdGhhdCBwcm90ZWN0cyBiYWNrc2xhc2hlcy4KKytFQ0hPPSRsdF9F Q0hPCisrCisrIyBUaGUgaG9zdCBzeXN0ZW0uCisraG9zdF9hbGlhcz0kaG9zdF9hbGlhcworK2hv c3Q9JGhvc3QKKytob3N0X29zPSRob3N0X29zCisrCisrIyBUaGUgYnVpbGQgc3lzdGVtLgorK2J1 aWxkX2FsaWFzPSRidWlsZF9hbGlhcworK2J1aWxkPSRidWlsZAorK2J1aWxkX29zPSRidWlsZF9v cworKworKyMgQSBzZWQgcHJvZ3JhbSB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dC4KKytT RUQ9JGx0X1NFRAorKworKyMgU2VkIHRoYXQgaGVscHMgdXMgYXZvaWQgYWNjaWRlbnRhbGx5IHRy aWdnZXJpbmcgZWNobygxKSBvcHRpb25zIGxpa2UgLW4uCisrWHNlZD0iXCRTRUQgLWUgMXMvXlgv LyIKKysKKysjIEEgZ3JlcCBwcm9ncmFtIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzLgorK0dSRVA9 JGx0X0dSRVAKKysKKysjIEFuIEVSRSBtYXRjaGVyLgorK0VHUkVQPSRsdF9FR1JFUAorKworKyMg QSBsaXRlcmFsIHN0cmluZyBtYXRjaGVyLgorK0ZHUkVQPSRsdF9GR1JFUAorKworKyMgQSBCU0Qt IG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIuCisrTk09JGx0X05NCisrCisrIyBXaGV0aGVy IHdlIG5lZWQgc29mdCBvciBoYXJkIGxpbmtzLgorK0xOX1M9JGx0X0xOX1MKKysKKysjIFdoYXQg aXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgY29tbWFuZD8KKyttYXhfY21kX2xlbj0kbWF4X2Nt ZF9sZW4KKysKKysjIE9iamVjdCBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIm8iKS4KKytvYmpleHQ9 JGFjX29iamV4dAorKworKyMgRXhlY3V0YWJsZSBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIiIpLgor K2V4ZWV4dD0kZXhlZXh0CisrCisrIyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyAidW5z ZXQiLgorK2x0X3Vuc2V0PSRsdF91bnNldAorKworKyMgdHVybiBzcGFjZXMgaW50byBuZXdsaW5l cy4KKytTUDJOTD0kbHRfbHRfU1AyTkwKKysKKysjIHR1cm4gbmV3bGluZXMgaW50byBzcGFjZXMu CisrTkwyU1A9JGx0X2x0X05MMlNQCisrCisrIyBBbiBvYmplY3Qgc3ltYm9sIGR1bXBlci4KKytP QkpEVU1QPSRsdF9PQkpEVU1QCisrCisrIyBNZXRob2QgdG8gY2hlY2sgd2hldGhlciBkZXBlbmRl bnQgbGlicmFyaWVzIGFyZSBzaGFyZWQgb2JqZWN0cy4KKytkZXBsaWJzX2NoZWNrX21ldGhvZD0k bHRfZGVwbGlic19jaGVja19tZXRob2QKKysKKysjIENvbW1hbmQgdG8gdXNlIHdoZW4gZGVwbGli c19jaGVja19tZXRob2QgPT0gImZpbGVfbWFnaWMiLgorK2ZpbGVfbWFnaWNfY21kPSRsdF9maWxl X21hZ2ljX2NtZAorKworKyMgVGhlIGFyY2hpdmVyLgorK0FSPSRsdF9BUgorK0FSX0ZMQUdTPSRs dF9BUl9GTEFHUworKworKyMgQSBzeW1ib2wgc3RyaXBwaW5nIHByb2dyYW0uCisrU1RSSVA9JGx0 X1NUUklQCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGluc3RhbGwgYW4gb2xkLXN0eWxlIGFyY2hp dmUuCisrUkFOTElCPSRsdF9SQU5MSUIKKytvbGRfcG9zdGluc3RhbGxfY21kcz0kbHRfb2xkX3Bv c3RpbnN0YWxsX2NtZHMKKytvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPSRsdF9vbGRfcG9zdHVuaW5z dGFsbF9jbWRzCisrCisrIyBXaGV0aGVyIHRvIHVzZSBhIGxvY2sgZm9yIG9sZCBhcmNoaXZlIGV4 dHJhY3Rpb24uCisrbG9ja19vbGRfYXJjaGl2ZV9leHRyYWN0aW9uPSRsb2NrX29sZF9hcmNoaXZl X2V4dHJhY3Rpb24KKysKKysjIEEgQyBjb21waWxlci4KKytMVENDPSRsdF9DQworKworKyMgTFRD QyBjb21waWxlciBmbGFncy4KKytMVENGTEFHUz0kbHRfQ0ZMQUdTCisrCisrIyBUYWtlIHRoZSBv dXRwdXQgb2Ygbm0gYW5kIHByb2R1Y2UgYSBsaXN0aW5nIG9mIHJhdyBzeW1ib2xzIGFuZCBDIG5h bWVzLgorK2dsb2JhbF9zeW1ib2xfcGlwZT0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlw ZQorKworKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBwcm9wZXIgQyBkZWNsYXJh dGlvbi4KKytnbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF90b19jZGVjbAorKworKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBDIG5hbWUg YWRkcmVzcyBwYWlyLgorK2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9JGx0X2x0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzCisrCisrIyBUcmFuc2Zvcm0gdGhl IG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXIgd2hlbiBsaWIgcHJlZml4IGlz IG5lZWRlZC4KKytnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXg9JGx0 X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXgKKysK KysjIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0ZW1wb3JhcnkgbGli dG9vbCBmaWxlcy4KKytvYmpkaXI9JG9iamRpcgorKworKyMgVXNlZCB0byBleGFtaW5lIGxpYnJh cmllcyB3aGVuIGZpbGVfbWFnaWNfY21kIGJlZ2lucyB3aXRoICJmaWxlIi4KKytNQUdJQ19DTUQ9 JE1BR0lDX0NNRAorKworKyMgTXVzdCB3ZSBsb2NrIGZpbGVzIHdoZW4gZG9pbmcgY29tcGlsYXRp b24/CisrbmVlZF9sb2Nrcz0kbHRfbmVlZF9sb2NrcworKworKyMgVG9vbCB0byBtYW5pcHVsYXRl IGFyY2hpdmVkIERXQVJGIGRlYnVnIHN5bWJvbCBmaWxlcyBvbiBNYWMgT1MgWC4KKytEU1lNVVRJ TD0kbHRfRFNZTVVUSUwKKysKKysjIFRvb2wgdG8gY2hhbmdlIGdsb2JhbCB0byBsb2NhbCBzeW1i b2xzIG9uIE1hYyBPUyBYLgorK05NRURJVD0kbHRfTk1FRElUCisrCisrIyBUb29sIHRvIG1hbmlw dWxhdGUgZmF0IG9iamVjdHMgYW5kIGFyY2hpdmVzIG9uIE1hYyBPUyBYLgorK0xJUE89JGx0X0xJ UE8KKysKKysjIGxkZC9yZWFkZWxmIGxpa2UgdG9vbCBmb3IgTWFjaC1PIGJpbmFyaWVzIG9uIE1h YyBPUyBYLgorK09UT09MPSRsdF9PVE9PTAorKworKyMgbGRkL3JlYWRlbGYgbGlrZSB0b29sIGZv ciA2NCBiaXQgTWFjaC1PIGJpbmFyaWVzIG9uIE1hYyBPUyBYIDEwLjQuCisrT1RPT0w2ND0kbHRf T1RPT0w2NAorKworKyMgT2xkIGFyY2hpdmUgc3VmZml4IChub3JtYWxseSAiYSIpLgorK2xpYmV4 dD0kbGliZXh0CisrCisrIyBTaGFyZWQgbGlicmFyeSBzdWZmaXggKG5vcm1hbGx5ICIuc28iKS4K KytzaHJleHRfY21kcz0kbHRfc2hyZXh0X2NtZHMKKysKKysjIFRoZSBjb21tYW5kcyB0byBleHRy YWN0IHRoZSBleHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCisrZXh0 cmFjdF9leHBzeW1zX2NtZHM9JGx0X2V4dHJhY3RfZXhwc3ltc19jbWRzCisrCisrIyBWYXJpYWJs ZXMgd2hvc2UgdmFsdWVzIHNob3VsZCBiZSBzYXZlZCBpbiBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0 cyBhbmQKKysjIHJlc3RvcmVkIGF0IGxpbmsgdGltZS4KKyt2YXJpYWJsZXNfc2F2ZWRfZm9yX3Jl bGluaz0kbHRfdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsKKysKKysjIERvIHdlIG5lZWQgdGhl ICJsaWIiIHByZWZpeCBmb3IgbW9kdWxlcz8KKytuZWVkX2xpYl9wcmVmaXg9JG5lZWRfbGliX3By ZWZpeAorKworKyMgRG8gd2UgbmVlZCBhIHZlcnNpb24gZm9yIGxpYnJhcmllcz8KKytuZWVkX3Zl cnNpb249JG5lZWRfdmVyc2lvbgorKworKyMgTGlicmFyeSB2ZXJzaW9uaW5nIHR5cGUuCisrdmVy c2lvbl90eXBlPSR2ZXJzaW9uX3R5cGUKKysKKysjIFNoYXJlZCBsaWJyYXJ5IHJ1bnRpbWUgcGF0 aCB2YXJpYWJsZS4KKytydW5wYXRoX3Zhcj0kcnVucGF0aF92YXIKKysKKysjIFNoYXJlZCBsaWJy YXJ5IHBhdGggdmFyaWFibGUuCisrc2hsaWJwYXRoX3Zhcj0kc2hsaWJwYXRoX3ZhcgorKworKyMg SXMgc2hsaWJwYXRoIHNlYXJjaGVkIGJlZm9yZSB0aGUgaGFyZC1jb2RlZCBsaWJyYXJ5IHNlYXJj aCBwYXRoPworK3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD0kc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoCisrCisrIyBGb3JtYXQgb2YgbGlicmFyeSBuYW1lIHByZWZpeC4KKytsaWJuYW1l X3NwZWM9JGx0X2xpYm5hbWVfc3BlYworKworKyMgTGlzdCBvZiBhcmNoaXZlIG5hbWVzLiAgRmly c3QgbmFtZSBpcyB0aGUgcmVhbCBvbmUsIHRoZSByZXN0IGFyZSBsaW5rcy4KKysjIFRoZSBsYXN0 IG5hbWUgaXMgdGhlIG9uZSB0aGF0IHRoZSBsaW5rZXIgZmluZHMgd2l0aCAtbE5BTUUKKytsaWJy YXJ5X25hbWVzX3NwZWM9JGx0X2xpYnJhcnlfbmFtZXNfc3BlYworKworKyMgVGhlIGNvZGVkIG5h bWUgb2YgdGhlIGxpYnJhcnksIGlmIGRpZmZlcmVudCBmcm9tIHRoZSByZWFsIG5hbWUuCisrc29u YW1lX3NwZWM9JGx0X3NvbmFtZV9zcGVjCisrCisrIyBQZXJtaXNzaW9uIG1vZGUgb3ZlcnJpZGUg Zm9yIGluc3RhbGxhdGlvbiBvZiBzaGFyZWQgbGlicmFyaWVzLgorK2luc3RhbGxfb3ZlcnJpZGVf bW9kZT0kbHRfaW5zdGFsbF9vdmVycmlkZV9tb2RlCisrCisrIyBDb21tYW5kIHRvIHVzZSBhZnRl ciBpbnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2ZS4KKytwb3N0aW5zdGFsbF9jbWRzPSRs dF9wb3N0aW5zdGFsbF9jbWRzCisrCisrIyBDb21tYW5kIHRvIHVzZSBhZnRlciB1bmluc3RhbGxh dGlvbiBvZiBhIHNoYXJlZCBhcmNoaXZlLgorK3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfcG9zdHVu aW5zdGFsbF9jbWRzCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGZpbmlzaCBhIGxpYnRvb2wgbGli cmFyeSBpbnN0YWxsYXRpb24gaW4gYSBkaXJlY3RvcnkuCisrZmluaXNoX2NtZHM9JGx0X2Zpbmlz aF9jbWRzCisrCisrIyBBcyAiZmluaXNoX2NtZHMiLCBleGNlcHQgYSBzaW5nbGUgc2NyaXB0IGZy YWdtZW50IHRvIGJlIGV2YWxlZCBidXQKKysjIG5vdCBzaG93bi4KKytmaW5pc2hfZXZhbD0kbHRf ZmluaXNoX2V2YWwKKysKKysjIFdoZXRoZXIgd2Ugc2hvdWxkIGhhcmRjb2RlIGxpYnJhcnkgcGF0 aHMgaW50byBsaWJyYXJpZXMuCisraGFyZGNvZGVfaW50b19saWJzPSRoYXJkY29kZV9pbnRvX2xp YnMKKysKKysjIENvbXBpbGUtdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcy4K KytzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9JGx0X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYwor KworKyMgUnVuLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXMuCisrc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWM9JGx0X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjCisrCisr IyBXaGV0aGVyIGRsb3BlbiBpcyBzdXBwb3J0ZWQuCisrZGxvcGVuX3N1cHBvcnQ9JGVuYWJsZV9k bG9wZW4KKysKKysjIFdoZXRoZXIgZGxvcGVuIG9mIHByb2dyYW1zIGlzIHN1cHBvcnRlZC4KKytk bG9wZW5fc2VsZj0kZW5hYmxlX2Rsb3Blbl9zZWxmCisrCisrIyBXaGV0aGVyIGRsb3BlbiBvZiBz dGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtcyBpcyBzdXBwb3J0ZWQuCisrZGxvcGVuX3NlbGZfc3Rh dGljPSRlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljCisrCisrIyBDb21tYW5kcyB0byBzdHJpcCBs aWJyYXJpZXMuCisrb2xkX3N0cmlwbGliPSRsdF9vbGRfc3RyaXBsaWIKKytzdHJpcGxpYj0kbHRf c3RyaXBsaWIKKysKKysKKysjIFRoZSBsaW5rZXIgdXNlZCB0byBidWlsZCBsaWJyYXJpZXMuCisr TEQ9JGx0X0xECisrCisrIyBIb3cgdG8gY3JlYXRlIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzLgor K3JlbG9hZF9mbGFnPSRsdF9yZWxvYWRfZmxhZworK3JlbG9hZF9jbWRzPSRsdF9yZWxvYWRfY21k cworKworKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbiBvbGQtc3R5bGUgYXJjaGl2ZS4KKytv bGRfYXJjaGl2ZV9jbWRzPSRsdF9vbGRfYXJjaGl2ZV9jbWRzCisrCisrIyBBIGxhbmd1YWdlIHNw ZWNpZmljIGNvbXBpbGVyLgorK0NDPSRsdF9jb21waWxlcgorKworKyMgSXMgdGhlIGNvbXBpbGVy IHRoZSBHTlUgY29tcGlsZXI/Cisrd2l0aF9nY2M9JEdDQworKworKyMgQ29tcGlsZXIgZmxhZyB0 byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9ucy4KKytub19idWlsdGluX2ZsYWc9JGx0X2x0X3By b2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnCisrCisrIyBIb3cgdG8gcGFzcyBhIGxpbmtlciBm bGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgorK3dsPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3dsCisr CisrIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVj dHMuCisrcGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfcGljCisrCisrIyBDb21waWxlciBm bGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nLgorK2xpbmtfc3RhdGljX2ZsYWc9JGx0X2x0 X3Byb2dfY29tcGlsZXJfc3RhdGljCisrCisrIyBEb2VzIGNvbXBpbGVyIHNpbXVsdGFuZW91c2x5 IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/CisrY29tcGlsZXJfY19vPSRsdF9sdF9jdl9wcm9n X2NvbXBpbGVyX2NfbworKworKyMgV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRp bmcgc2hhcmVkIGxpYnJhcmllcy4KKytidWlsZF9saWJ0b29sX25lZWRfbGM9JGFyY2hpdmVfY21k c19uZWVkX2xjCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3 aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljLgorK2FsbG93X2xpYnRvb2xfbGlic193aXRoX3N0 YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcworKworKyMg Q29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVucy4KKytleHBvcnRfZHluYW1p Y19mbGFnX3NwZWM9JGx0X2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYworKworKyMgQ29tcGlsZXIg ZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgor K3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYworKwor KyMgV2hldGhlciB0aGUgY29tcGlsZXIgY29wZXMgd2l0aCBwYXNzaW5nIG5vIG9iamVjdHMgZGly ZWN0bHkuCisrY29tcGlsZXJfbmVlZHNfb2JqZWN0PSRsdF9jb21waWxlcl9uZWVkc19vYmplY3QK KysKKysjIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUu Cisrb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21k cworKworKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5z dGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgorK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRz PSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcworKworKyMgQ29tbWFuZHMgdXNlZCB0 byBidWlsZCBhIHNoYXJlZCBhcmNoaXZlLgorK2FyY2hpdmVfY21kcz0kbHRfYXJjaGl2ZV9jbWRz CisrYXJjaGl2ZV9leHBzeW1fY21kcz0kbHRfYXJjaGl2ZV9leHBzeW1fY21kcworKworKyMgQ29t bWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBi dWlsZGluZworKyMgYSBzaGFyZWQgYXJjaGl2ZS4KKyttb2R1bGVfY21kcz0kbHRfbW9kdWxlX2Nt ZHMKKyttb2R1bGVfZXhwc3ltX2NtZHM9JGx0X21vZHVsZV9leHBzeW1fY21kcworKworKyMgV2hl dGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQgb3Igbm90LgorK3dpdGhfZ251X2xkPSRs dF93aXRoX2dudV9sZAorKworKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdp dGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCisrYWxsb3dfdW5kZWZpbmVkX2ZsYWc9 JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnCisrCisrIyBGbGFnIHRoYXQgZW5mb3JjZXMgbm8gdW5k ZWZpbmVkIHN5bWJvbHMuCisrbm9fdW5kZWZpbmVkX2ZsYWc9JGx0X25vX3VuZGVmaW5lZF9mbGFn CisrCisrIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkgZHVyaW5nIGxp bmtpbmcuCisrIyBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0 CisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0kbHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl YworKworKyMgSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcgdG8gaGFyZGNvZGUgXCRs aWJkaXIgaW50byBhIGJpbmFyeQorKyMgZHVyaW5nIGxpbmtpbmcuICBUaGlzIG11c3Qgd29yayBl dmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0LgorK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfbGQ9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQKKysKKysjIFdoZXRoZXIgd2Ug bmVlZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJndW1lbnQuCisr aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0kbHRfaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcgor KworKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVy aW5nIGxpbmtpbmcgaGFyZGNvZGVzCisrIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4K KytoYXJkY29kZV9kaXJlY3Q9JGhhcmRjb2RlX2RpcmVjdAorKworKyMgU2V0IHRvICJ5ZXMiIGlm IHVzaW5nIERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVz CisrIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeSBhbmQgdGhlIHJlc3VsdGluZyBsaWJy YXJ5IGRlcGVuZGVuY3kgaXMKKysjICJhYnNvbHV0ZSIsaS5lIGltcG9zc2libGUgdG8gY2hhbmdl IGJ5IHNldHRpbmcgXCR7c2hsaWJwYXRoX3Zhcn0gaWYgdGhlCisrIyBsaWJyYXJ5IGlzIHJlbG9j YXRlZC4KKytoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9JGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0 ZQorKworKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5r aW5nIGhhcmRjb2RlcyBESVIKKysjIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCisraGFyZGNv ZGVfbWludXNfTD0kaGFyZGNvZGVfbWludXNfTAorKworKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5n IFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKKysjIGludG8g dGhlIHJlc3VsdGluZyBiaW5hcnkuCisraGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0kaGFyZGNvZGVf c2hsaWJwYXRoX3ZhcgorKworKyMgU2V0IHRvICJ5ZXMiIGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxp YnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElSCisrIyBpbnRvIHRoZSBsaWJyYXJ5IGFu ZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMgYW5kIGV4ZWN1dGFibGVzIGxpbmtlZAorKyMgYWdh aW5zdCBpdC4KKytoYXJkY29kZV9hdXRvbWF0aWM9JGhhcmRjb2RlX2F1dG9tYXRpYworKworKyMg U2V0IHRvIHllcyBpZiBsaW5rZXIgYWRkcyBydW50aW1lIHBhdGhzIG9mIGRlcGVuZGVudCBsaWJy YXJpZXMKKysjIHRvIHJ1bnRpbWUgcGF0aCBsaXN0LgorK2luaGVyaXRfcnBhdGg9JGluaGVyaXRf cnBhdGgKKysKKysjIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFnYWluc3Qg YWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KKytsaW5rX2FsbF9kZXBsaWJzPSRsaW5rX2Fs bF9kZXBsaWJzCisrCisrIyBGaXggdGhlIHNoZWxsIHZhcmlhYmxlIFwkc3JjZmlsZSBmb3IgdGhl IGNvbXBpbGVyLgorK2ZpeF9zcmNmaWxlX3BhdGg9JGx0X2ZpeF9zcmNmaWxlX3BhdGgKKysKKysj IFNldCB0byAieWVzIiBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1aXJlZC4KKythbHdheXNf ZXhwb3J0X3N5bWJvbHM9JGFsd2F5c19leHBvcnRfc3ltYm9scworKworKyMgVGhlIGNvbW1hbmRz IHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KKytleHBvcnRfc3ltYm9sc19jbWRzPSRsdF9leHBv cnRfc3ltYm9sc19jbWRzCisrCisrIyBTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQg aW4gdGhlIHByZWxvYWRlZCBzeW1ib2xzLgorK2V4Y2x1ZGVfZXhwc3ltcz0kbHRfZXhjbHVkZV9l eHBzeW1zCisrCisrIyBTeW1ib2xzIHRoYXQgbXVzdCBhbHdheXMgYmUgZXhwb3J0ZWQuCisraW5j bHVkZV9leHBzeW1zPSRsdF9pbmNsdWRlX2V4cHN5bXMKKysKKysjIENvbW1hbmRzIG5lY2Vzc2Fy eSBmb3IgbGlua2luZyBwcm9ncmFtcyAoYWdhaW5zdCBsaWJyYXJpZXMpIHdpdGggdGVtcGxhdGVz LgorK3ByZWxpbmtfY21kcz0kbHRfcHJlbGlua19jbWRzCisrCisrIyBTcGVjaWZ5IGZpbGVuYW1l IGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMuCisrZmlsZV9saXN0X3NwZWM9JGx0X2ZpbGVfbGlzdF9z cGVjCisrCisrIyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGlicmFyeSBwYXRoIGludG8gYW4g ZXhlY3V0YWJsZS4KKytoYXJkY29kZV9hY3Rpb249JGhhcmRjb2RlX2FjdGlvbgorKworKyMgVGhl IGRpcmVjdG9yaWVzIHNlYXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVhdGluZyBhIHNo YXJlZCBsaWJyYXJ5LgorK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycz0kbHRfY29tcGlsZXJfbGli X3NlYXJjaF9kaXJzCisrCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRl ciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8KKysjIGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5 LgorK3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2JqZWN0cworK3Bvc3RkZXBfb2JqZWN0cz0k bHRfcG9zdGRlcF9vYmplY3RzCisrcHJlZGVwcz0kbHRfcHJlZGVwcworK3Bvc3RkZXBzPSRsdF9w b3N0ZGVwcworKworKyMgVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5 IHRoZSBjb21waWxlciB3aGVuIGxpbmtpbmcKKysjIGEgc2hhcmVkIGxpYnJhcnkuCisrY29tcGls ZXJfbGliX3NlYXJjaF9wYXRoPSRsdF9jb21waWxlcl9saWJfc2VhcmNoX3BhdGgKKysKKysjICMj IyBFTkQgTElCVE9PTCBDT05GSUcKKysKKytfTFRfRU9GCisrCisrICBjYXNlICRob3N0X29zIGlu CisrICBhaXgzKikKKysgICAgY2F0IDw8XF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorKyMgQUlYIHNv bWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3QyIHByb2dyYW0uICBGb3Ig c29tZQorKyMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENPTExFQ1RfTkFNRVMgZW52aXJvbm1lbnQg dmFyaWFibGUsIHRoZSBwcm9ibGVtcworKyMgdmFuaXNoIGluIGEgcHVmZiBvZiBzbW9rZS4KKytp ZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7IHRoZW4KKysgIENPTExFQ1Rf TkFNRVM9CisrICBleHBvcnQgQ09MTEVDVF9OQU1FUworK2ZpCisrX0xUX0VPRgorKyAgICA7Owor KyAgZXNhYworKworKworK2x0bWFpbj0iJGFjX2F1eF9kaXIvbHRtYWluLnNoIgorKworKworKyAg IyBXZSB1c2Ugc2VkIGluc3RlYWQgb2YgY2F0IGJlY2F1c2UgYmFzaCBvbiBESkdQUCBnZXRzIGNv bmZ1c2VkIGlmCisrICAjIGlmIGZpbmRzIG1peGVkIENSL0xGIGFuZCBMRi1vbmx5IGxpbmVzLiAg U2luY2Ugc2VkIG9wZXJhdGVzIGluCisrICAjIHRleHQgbW9kZSwgaXQgcHJvcGVybHkgY29udmVy dHMgbGluZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2ggcHJvYmxlbQorKyAgIyBpcyByZXBvcnRlZGx5 IGZpeGVkLCBidXQgd2h5IG5vdCBydW4gb24gb2xkIHZlcnNpb25zIHRvbz8KKysgIHNlZCAnL14j IEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5zZXJ0ZWQgaGVyZS9xJyAiJGx0bWFpbiIgPj4g IiRjZmdmaWxlIiBcCisrICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiOyBleGl0IDEpCisrCisrICBj YXNlICR4c2lfc2hlbGwgaW4KKysgIHllcykKKysgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2Zn ZmlsZSIKKysKKysjIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQK KysjIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5E IHRvIHRoZSByZXN1bHQsCisrIyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFD RU1FTlQuCisrZnVuY19kaXJuYW1lICgpCisreworKyAgY2FzZSAkezF9IGluCisrICAgICovKikg ZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7CisrICAgICogICkgZnVuY19kaXJu YW1lX3Jlc3VsdD0iJHszfSIgOzsKKysgIGVzYWMKKyt9CisrCisrIyBmdW5jX2Jhc2VuYW1lIGZp bGUKKytmdW5jX2Jhc2VuYW1lICgpCisreworKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9IiR7MSMj Ki99IgorK30KKysKKysjIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgZmlsZSBhcHBlbmQgbm9u ZGlyX3JlcGxhY2VtZW50CisrIyBwZXJmb3JtIGZ1bmNfYmFzZW5hbWUgYW5kIGZ1bmNfZGlybmFt ZSBpbiBhIHNpbmdsZSBmdW5jdGlvbgorKyMgY2FsbDoKKysjICAgZGlybmFtZTogIENvbXB1dGUg dGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LAorKyMgICAgICAgICAgICAgYWRkIEFQ UEVORCB0byB0aGUgcmVzdWx0LCBvdGhlcndpc2Ugc2V0IHJlc3VsdAorKyMgICAgICAgICAgICAg dG8gTk9ORElSX1JFUExBQ0VNRU5ULgorKyMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4g IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKyMgICBiYXNlbmFtZTogQ29tcHV0ZSBmaWxlbmFtZSBv ZiBGSUxFLgorKyMgICAgICAgICAgICAgdmFsdWUgcmV0dW5lZCBpbiAiJGZ1bmNfYmFzZW5hbWVf cmVzdWx0IgorKyMgSW1wbGVtZW50YXRpb24gbXVzdCBiZSBrZXB0IHN5bmNocm9uaXplZCB3aXRo IGZ1bmNfZGlybmFtZQorKyMgYW5kIGZ1bmNfYmFzZW5hbWUuIEZvciBlZmZpY2llbmN5LCB3ZSBk byBub3QgZGVsZWdhdGUgdG8KKysjIHRob3NlIGZ1bmN0aW9ucyBidXQgaW5zdGVhZCBkdXBsaWNh dGUgdGhlIGZ1bmN0aW9uYWxpdHkgaGVyZS4KKytmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgp CisreworKyAgY2FzZSAkezF9IGluCisrICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsx JS8qfSR7Mn0iIDs7CisrICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKKysg IGVzYWMKKysgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyovfSIKKyt9CisrCisrIyBmdW5j X3N0cmlwbmFtZSBwcmVmaXggc3VmZml4IG5hbWUKKysjIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklY IG9mZiBvZiBOQU1FLgorKyMgUFJFRklYIGFuZCBTVUZGSVggbXVzdCBub3QgY29udGFpbiBnbG9i YmluZyBvciByZWdleCBzcGVjaWFsCisrIyBjaGFyYWN0ZXJzLCBoYXNoZXMsIHBlcmNlbnQgc2ln bnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBsZWFkaW5nCisrIyBkb3QgKGluIHdoaWNoIGNh c2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgorK2Z1bmNfc3RyaXBuYW1lICgpCisreworKyAg IyBwZGtzaCA1LjIuMTQgZG9lcyBub3QgZG8gJHtYJSRZfSBjb3JyZWN0bHkgaWYgYm90aCBYIGFu ZCBZIGFyZQorKyAgIyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsIHNvIGFzc2lnbiBvbmUgdG8gb3Jk aW5hcnkgcGFyYW1ldGVyIGZpcnN0LgorKyAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7M30KKysg IGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0ke2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdCMiJHsxfSJ9Cisr ICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQlIiR7Mn0ifQor K30KKysKKysjIGZ1bmNfb3B0X3NwbGl0CisrZnVuY19vcHRfc3BsaXQgKCkKKyt7CisrICBmdW5j X29wdF9zcGxpdF9vcHQ9JHsxJSU9Kn0KKysgIGZ1bmNfb3B0X3NwbGl0X2FyZz0kezEjKj19Cisr fQorKworKyMgZnVuY19sbzJvIG9iamVjdAorK2Z1bmNfbG8ybyAoKQorK3sKKysgIGNhc2UgJHsx fSBpbgorKyAgICAqLmxvKSBmdW5jX2xvMm9fcmVzdWx0PSR7MSUubG99LiR7b2JqZXh0fSA7Owor KyAgICAqKSAgICBmdW5jX2xvMm9fcmVzdWx0PSR7MX0gOzsKKysgIGVzYWMKKyt9CisrCisrIyBm dW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UKKytmdW5jX3hmb3JtICgpCisreworKyAgZnVuY194 Zm9ybV9yZXN1bHQ9JHsxJS4qfS5sbworK30KKysKKysjIGZ1bmNfYXJpdGggYXJpdGhtZXRpYy10 ZXJtLi4uCisrZnVuY19hcml0aCAoKQorK3sKKysgIGZ1bmNfYXJpdGhfcmVzdWx0PSQoKCAkKiAp KQorK30KKysKKysjIGZ1bmNfbGVuIHN0cmluZworKyMgU1RSSU5HIG1heSBub3Qgc3RhcnQgd2l0 aCBhIGh5cGhlbi4KKytmdW5jX2xlbiAoKQorK3sKKysgIGZ1bmNfbGVuX3Jlc3VsdD0keyMxfQor K30KKysKKytfTFRfRU9GCisrICAgIDs7CisrICAqKSAjIEJvdXJuZSBjb21wYXRpYmxlIGZ1bmN0 aW9ucy4KKysgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysKKysjIGZ1bmNfZGly bmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKKysjIENvbXB1dGUgdGhlIGRpcm5h bWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsCisrIyBv dGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFDRU1FTlQuCisrZnVuY19kaXJuYW1l ICgpCisreworKyAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KKysg IGZ1bmNfZGlybmFtZV9yZXN1bHQ9YCRFQ0hPICIkezF9IiB8ICRTRUQgIiRkaXJuYW1lImAKKysg IGlmIHRlc3QgIlgkZnVuY19kaXJuYW1lX3Jlc3VsdCIgPSAiWCR7MX0iOyB0aGVuCisrICAgIGZ1 bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iCisrICBlbHNlCisrICAgIGZ1bmNfZGlybmFtZV9yZXN1 bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0JHsyfSIKKysgIGZpCisrfQorKworKyMgZnVuY19iYXNl bmFtZSBmaWxlCisrZnVuY19iYXNlbmFtZSAoKQorK3sKKysgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0 PWAkRUNITyAiJHsxfSIgfCAkU0VEICIkYmFzZW5hbWUiYAorK30KKysKKysKKysjIGZ1bmNfc3Ry aXBuYW1lIHByZWZpeCBzdWZmaXggbmFtZQorKyMgc3RyaXAgUFJFRklYIGFuZCBTVUZGSVggb2Zm IG9mIE5BTUUuCisrIyBQUkVGSVggYW5kIFNVRkZJWCBtdXN0IG5vdCBjb250YWluIGdsb2JiaW5n IG9yIHJlZ2V4IHNwZWNpYWwKKysjIGNoYXJhY3RlcnMsIGhhc2hlcywgcGVyY2VudCBzaWducywg YnV0IFNVRkZJWCBtYXkgY29udGFpbiBhIGxlYWRpbmcKKysjIGRvdCAoaW4gd2hpY2ggY2FzZSB0 aGF0IG1hdGNoZXMgb25seSBhIGRvdCkuCisrIyBmdW5jX3N0cmlwX3N1ZmZpeCBwcmVmaXggbmFt ZQorK2Z1bmNfc3RyaXBuYW1lICgpCisreworKyAgY2FzZSAkezJ9IGluCisrICAgIC4qKSBmdW5j X3N0cmlwbmFtZV9yZXN1bHQ9YCRFQ0hPICIkezN9IiB8ICRTRUQgInMlXiR7MX0lJTsgcyVcXFxc JHsyfVwkJSUiYDs7CisrICAgICopICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9YCRFQ0hPICIkezN9 IiB8ICRTRUQgInMlXiR7MX0lJTsgcyUkezJ9XCQlJSJgOzsKKysgIGVzYWMKKyt9CisrCisrIyBz ZWQgc2NyaXB0czoKKytteV9zZWRfbG9uZ19vcHQ9JzFzL15cKC1bXj1dKlwpPS4qL1wxLztxJwor K215X3NlZF9sb25nX2FyZz0nMXMvXi1bXj1dKj0vLycKKysKKysjIGZ1bmNfb3B0X3NwbGl0Cisr ZnVuY19vcHRfc3BsaXQgKCkKKyt7CisrICBmdW5jX29wdF9zcGxpdF9vcHQ9YCRFQ0hPICIkezF9 IiB8ICRTRUQgIiRteV9zZWRfbG9uZ19vcHQiYAorKyAgZnVuY19vcHRfc3BsaXRfYXJnPWAkRUNI TyAiJHsxfSIgfCAkU0VEICIkbXlfc2VkX2xvbmdfYXJnImAKKyt9CisrCisrIyBmdW5jX2xvMm8g b2JqZWN0CisrZnVuY19sbzJvICgpCisreworKyAgZnVuY19sbzJvX3Jlc3VsdD1gJEVDSE8gIiR7 MX0iIHwgJFNFRCAiJGxvMm8iYAorK30KKysKKysjIGZ1bmNfeGZvcm0gbGlib2JqLW9yLXNvdXJj ZQorK2Z1bmNfeGZvcm0gKCkKKyt7CisrICBmdW5jX3hmb3JtX3Jlc3VsdD1gJEVDSE8gIiR7MX0i IHwgJFNFRCAncy9cLlteLl0qJC8ubG8vJ2AKKyt9CisrCisrIyBmdW5jX2FyaXRoIGFyaXRobWV0 aWMtdGVybS4uLgorK2Z1bmNfYXJpdGggKCkKKyt7CisrICBmdW5jX2FyaXRoX3Jlc3VsdD1gZXhw ciAiJEAiYAorK30KKysKKysjIGZ1bmNfbGVuIHN0cmluZworKyMgU1RSSU5HIG1heSBub3Qgc3Rh cnQgd2l0aCBhIGh5cGhlbi4KKytmdW5jX2xlbiAoKQorK3sKKysgIGZ1bmNfbGVuX3Jlc3VsdD1g ZXhwciAiJDEiIDogIi4qIiAyPi9kZXYvbnVsbCB8fCBlY2hvICRtYXhfY21kX2xlbmAKKyt9Cisr CisrX0xUX0VPRgorK2VzYWMKKysKKytjYXNlICRsdF9zaGVsbF9hcHBlbmQgaW4KKysgIHllcykK KysgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysKKysjIGZ1bmNfYXBwZW5kIHZh ciB2YWx1ZQorKyMgQXBwZW5kIFZBTFVFIHRvIHRoZSBlbmQgb2Ygc2hlbGwgdmFyaWFibGUgVkFS LgorK2Z1bmNfYXBwZW5kICgpCisreworKyAgZXZhbCAiJDErPVwkMiIKKyt9CisrX0xUX0VPRgor KyAgICA7OworKyAgKikKKysgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysKKysj IGZ1bmNfYXBwZW5kIHZhciB2YWx1ZQorKyMgQXBwZW5kIFZBTFVFIHRvIHRoZSBlbmQgb2Ygc2hl bGwgdmFyaWFibGUgVkFSLgorK2Z1bmNfYXBwZW5kICgpCisreworKyAgZXZhbCAiJDE9XCQkMVwk MiIKKyt9CisrCisrX0xUX0VPRgorKyAgICA7OworKyAgZXNhYworKworKworKyAgc2VkIC1uICcv XiMgR2VuZXJhdGVkIHNoZWxsIGZ1bmN0aW9ucyBpbnNlcnRlZCBoZXJlLywkcCcgIiRsdG1haW4i ID4+ICIkY2ZnZmlsZSIgXAorKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAxKQorKwor KyAgbXYgLWYgIiRjZmdmaWxlIiAiJG9maWxlIiB8fAorKyAgICAocm0gLWYgIiRvZmlsZSIgJiYg Y3AgIiRjZmdmaWxlIiAiJG9maWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUiKQorKyAgY2htb2QgK3gg IiRvZmlsZSIKKysKKysKKysgICAgY2F0IDw8X0xUX0VPRiA+PiAiJG9maWxlIgorKworKyMgIyMj IEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogQ1hYCisrCisrIyBUaGUgbGlua2VyIHVzZWQgdG8g YnVpbGQgbGlicmFyaWVzLgorK0xEPSRsdF9MRF9DWFgKKysKKysjIEhvdyB0byBjcmVhdGUgcmVs b2FkYWJsZSBvYmplY3QgZmlsZXMuCisrcmVsb2FkX2ZsYWc9JGx0X3JlbG9hZF9mbGFnX0NYWAor K3JlbG9hZF9jbWRzPSRsdF9yZWxvYWRfY21kc19DWFgKKysKKysjIENvbW1hbmRzIHVzZWQgdG8g YnVpbGQgYW4gb2xkLXN0eWxlIGFyY2hpdmUuCisrb2xkX2FyY2hpdmVfY21kcz0kbHRfb2xkX2Fy Y2hpdmVfY21kc19DWFgKKysKKysjIEEgbGFuZ3VhZ2Ugc3BlY2lmaWMgY29tcGlsZXIuCisrQ0M9 JGx0X2NvbXBpbGVyX0NYWAorKworKyMgSXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/ Cisrd2l0aF9nY2M9JEdDQ19DWFgKKysKKysjIENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVp bHRpbiBmdW5jdGlvbnMuCisrbm9fYnVpbHRpbl9mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX25v X2J1aWx0aW5fZmxhZ19DWFgKKysKKysjIEhvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3Vn aCB0aGUgY29tcGlsZXIuCisrd2w9JGx0X2x0X3Byb2dfY29tcGlsZXJfd2xfQ1hYCisrCisrIyBB ZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCisr cGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfcGljX0NYWAorKworKyMgQ29tcGlsZXIgZmxh ZyB0byBwcmV2ZW50IGR5bmFtaWMgbGlua2luZy4KKytsaW5rX3N0YXRpY19mbGFnPSRsdF9sdF9w cm9nX2NvbXBpbGVyX3N0YXRpY19DWFgKKysKKysjIERvZXMgY29tcGlsZXIgc2ltdWx0YW5lb3Vz bHkgc3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9ucz8KKytjb21waWxlcl9jX289JGx0X2x0X2N2X3By b2dfY29tcGlsZXJfY19vX0NYWAorKworKyMgV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3Ig YnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KKytidWlsZF9saWJ0b29sX25lZWRfbGM9JGFyY2hp dmVfY21kc19uZWVkX2xjX0NYWAorKworKyMgV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hh cmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpYy4KKythbGxvd19saWJ0b29sX2xp YnNfd2l0aF9zdGF0aWNfcnVudGltZXM9JGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGlt ZXNfQ1hYCisrCisrIyBDb21waWxlciBmbGFnIHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zLgor K2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0kbHRfZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NY WAorKworKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3Rs eSBmcm9tIGFyY2hpdmVzLgorK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9hcmNo aXZlX2ZsYWdfc3BlY19DWFgKKysKKysjIFdoZXRoZXIgdGhlIGNvbXBpbGVyIGNvcGVzIHdpdGgg cGFzc2luZyBubyBvYmplY3RzIGRpcmVjdGx5LgorK2NvbXBpbGVyX25lZWRzX29iamVjdD0kbHRf Y29tcGlsZXJfbmVlZHNfb2JqZWN0X0NYWAorKworKyMgQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNo aXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4KKytvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSRs dF9vbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0NYWAorKworKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5 IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgor K29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5 bXNfY21kc19DWFgKKysKKysjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBzaGFyZWQgYXJjaGl2 ZS4KKythcmNoaXZlX2NtZHM9JGx0X2FyY2hpdmVfY21kc19DWFgKKythcmNoaXZlX2V4cHN5bV9j bWRzPSRsdF9hcmNoaXZlX2V4cHN5bV9jbWRzX0NYWAorKworKyMgQ29tbWFuZHMgdXNlZCB0byBi dWlsZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBidWlsZGluZworKyMgYSBz aGFyZWQgYXJjaGl2ZS4KKyttb2R1bGVfY21kcz0kbHRfbW9kdWxlX2NtZHNfQ1hYCisrbW9kdWxl X2V4cHN5bV9jbWRzPSRsdF9tb2R1bGVfZXhwc3ltX2NtZHNfQ1hYCisrCisrIyBXaGV0aGVyIHdl IGFyZSBidWlsZGluZyB3aXRoIEdOVSBsZCBvciBub3QuCisrd2l0aF9nbnVfbGQ9JGx0X3dpdGhf Z251X2xkX0NYWAorKworKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGgg dW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCisrYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0 X2FsbG93X3VuZGVmaW5lZF9mbGFnX0NYWAorKworKyMgRmxhZyB0aGF0IGVuZm9yY2VzIG5vIHVu ZGVmaW5lZCBzeW1ib2xzLgorK25vX3VuZGVmaW5lZF9mbGFnPSRsdF9ub191bmRlZmluZWRfZmxh Z19DWFgKKysKKysjIEZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJp bmcgbGlua2luZy4KKysjIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcyBub3Qg ZXhpc3QKKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSRsdF9oYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX0NYWAorKworKyMgSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcgdG8gaGFy ZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeQorKyMgZHVyaW5nIGxpbmtpbmcuICBUaGlzIG11 c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0LgorK2hhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfbGQ9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hYCisrCisr IyBXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgIi1ycGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVk IGFyZ3VtZW50LgorK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9JGx0X2hhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3JfQ1hYCisrCisrIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUVc JHtzaGFyZWRfZXh0fSBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMKKysjIERJUiBpbnRvIHRoZSBy ZXN1bHRpbmcgYmluYXJ5LgorK2hhcmRjb2RlX2RpcmVjdD0kaGFyZGNvZGVfZGlyZWN0X0NYWAor KworKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVy aW5nIGxpbmtpbmcgaGFyZGNvZGVzCisrIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeSBh bmQgdGhlIHJlc3VsdGluZyBsaWJyYXJ5IGRlcGVuZGVuY3kgaXMKKysjICJhYnNvbHV0ZSIsaS5l IGltcG9zc2libGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgXCR7c2hsaWJwYXRoX3Zhcn0gaWYgdGhl CisrIyBsaWJyYXJ5IGlzIHJlbG9jYXRlZC4KKytoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9JGhh cmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFgKKysKKysjIFNldCB0byAieWVzIiBpZiB1c2luZyB0 aGUgLUxESVIgZmxhZyBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCisrIyBpbnRvIHRoZSBy ZXN1bHRpbmcgYmluYXJ5LgorK2hhcmRjb2RlX21pbnVzX0w9JGhhcmRjb2RlX21pbnVzX0xfQ1hY CisrCisrIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5nIGxp bmtpbmcgaGFyZGNvZGVzIERJUgorKyMgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KKytoYXJk Y29kZV9zaGxpYnBhdGhfdmFyPSRoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWAorKworKyMgU2V0 IHRvICJ5ZXMiIGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJk Y29kZXMgRElSCisrIyBpbnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJp ZXMgYW5kIGV4ZWN1dGFibGVzIGxpbmtlZAorKyMgYWdhaW5zdCBpdC4KKytoYXJkY29kZV9hdXRv bWF0aWM9JGhhcmRjb2RlX2F1dG9tYXRpY19DWFgKKysKKysjIFNldCB0byB5ZXMgaWYgbGlua2Vy IGFkZHMgcnVudGltZSBwYXRocyBvZiBkZXBlbmRlbnQgbGlicmFyaWVzCisrIyB0byBydW50aW1l IHBhdGggbGlzdC4KKytpbmhlcml0X3JwYXRoPSRpbmhlcml0X3JwYXRoX0NYWAorKworKyMgV2hl dGhlciBsaWJ0b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVu Y3kgbGlicmFyaWVzLgorK2xpbmtfYWxsX2RlcGxpYnM9JGxpbmtfYWxsX2RlcGxpYnNfQ1hYCisr CisrIyBGaXggdGhlIHNoZWxsIHZhcmlhYmxlIFwkc3JjZmlsZSBmb3IgdGhlIGNvbXBpbGVyLgor K2ZpeF9zcmNmaWxlX3BhdGg9JGx0X2ZpeF9zcmNmaWxlX3BhdGhfQ1hYCisrCisrIyBTZXQgdG8g InllcyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQuCisrYWx3YXlzX2V4cG9ydF9z eW1ib2xzPSRhbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYCisrCisrIyBUaGUgY29tbWFuZHMgdG8g bGlzdCBleHBvcnRlZCBzeW1ib2xzLgorK2V4cG9ydF9zeW1ib2xzX2NtZHM9JGx0X2V4cG9ydF9z eW1ib2xzX2NtZHNfQ1hYCisrCisrIyBTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQg aW4gdGhlIHByZWxvYWRlZCBzeW1ib2xzLgorK2V4Y2x1ZGVfZXhwc3ltcz0kbHRfZXhjbHVkZV9l eHBzeW1zX0NYWAorKworKyMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgor K2luY2x1ZGVfZXhwc3ltcz0kbHRfaW5jbHVkZV9leHBzeW1zX0NYWAorKworKyMgQ29tbWFuZHMg bmVjZXNzYXJ5IGZvciBsaW5raW5nIHByb2dyYW1zIChhZ2FpbnN0IGxpYnJhcmllcykgd2l0aCB0 ZW1wbGF0ZXMuCisrcHJlbGlua19jbWRzPSRsdF9wcmVsaW5rX2NtZHNfQ1hYCisrCisrIyBTcGVj aWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMuCisrZmlsZV9saXN0X3NwZWM9JGx0 X2ZpbGVfbGlzdF9zcGVjX0NYWAorKworKyMgSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJh cnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGUuCisraGFyZGNvZGVfYWN0aW9uPSRoYXJkY29kZV9h Y3Rpb25fQ1hYCisrCisrIyBUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxl ciB3aGVuIGNyZWF0aW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrY29tcGlsZXJfbGliX3NlYXJjaF9k aXJzPSRsdF9jb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYCisrCisrIyBEZXBlbmRlbmNpZXMg dG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8KKysj IGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5LgorK3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2Jq ZWN0c19DWFgKKytwb3N0ZGVwX29iamVjdHM9JGx0X3Bvc3RkZXBfb2JqZWN0c19DWFgKKytwcmVk ZXBzPSRsdF9wcmVkZXBzX0NYWAorK3Bvc3RkZXBzPSRsdF9wb3N0ZGVwc19DWFgKKysKKysjIFRo ZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hl biBsaW5raW5nCisrIyBhIHNoYXJlZCBsaWJyYXJ5LgorK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0 aD0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWAorKworKyMgIyMjIEVORCBMSUJUT09M IFRBRyBDT05GSUc6IENYWAorK19MVF9FT0YKKysKKysgOzsKKysKKysgIGVzYWMKKytkb25lICMg Zm9yIGFjX3RhZworKworKworK2FzX2ZuX2V4aXQgMAorK19BQ0VPRgorK2FjX2NsZWFuX2ZpbGVz PSRhY19jbGVhbl9maWxlc19zYXZlCisrCisrdGVzdCAkYWNfd3JpdGVfZmFpbCA9IDAgfHwKKysg IGFzX2ZuX2Vycm9yICQ/ICJ3cml0ZSBmYWlsdXJlIGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiAi JExJTkVOTyIgNQorKworKworKyMgY29uZmlndXJlIGlzIHdyaXRpbmcgdG8gY29uZmlnLmxvZywg YW5kIHRoZW4gY2FsbHMgY29uZmlnLnN0YXR1cy4KKysjIGNvbmZpZy5zdGF0dXMgZG9lcyBpdHMg b3duIHJlZGlyZWN0aW9uLCBhcHBlbmRpbmcgdG8gY29uZmlnLmxvZy4KKysjIFVuZm9ydHVuYXRl bHksIG9uIERPUyB0aGlzIGZhaWxzLCBhcyBjb25maWcubG9nIGlzIHN0aWxsIGtlcHQgb3Blbgor KyMgYnkgY29uZmlndXJlLCBzbyBjb25maWcuc3RhdHVzIHdvbid0IGJlIGFibGUgdG8gd3JpdGUg dG8gaXQ7IGl0cworKyMgb3V0cHV0IGlzIHNpbXBseSBkaXNjYXJkZWQuICBTbyB3ZSBleGVjIHRo ZSBGRCB0byAvZGV2L251bGwsCisrIyBlZmZlY3RpdmVseSBjbG9zaW5nIGNvbmZpZy5sb2csIHNv IGl0IGNhbiBiZSBwcm9wZXJseSAocmUpb3BlbmVkIGFuZAorKyMgYXBwZW5kZWQgdG8gYnkgY29u ZmlnLnN0YXR1cy4gIFdoZW4gY29taW5nIGJhY2sgdG8gY29uZmlndXJlLCB3ZQorKyMgbmVlZCB0 byBtYWtlIHRoZSBGRCBhdmFpbGFibGUgYWdhaW4uCisraWYgdGVzdCAiJG5vX2NyZWF0ZSIgIT0g eWVzOyB0aGVuCisrICBhY19jc19zdWNjZXNzPToKKysgIGFjX2NvbmZpZ19zdGF0dXNfYXJncz0K KysgIHRlc3QgIiRzaWxlbnQiID0geWVzICYmCisrICAgIGFjX2NvbmZpZ19zdGF0dXNfYXJncz0i JGFjX2NvbmZpZ19zdGF0dXNfYXJncyAtLXF1aWV0IgorKyAgZXhlYyA1Pi9kZXYvbnVsbAorKyAg JFNIRUxMICRDT05GSUdfU1RBVFVTICRhY19jb25maWdfc3RhdHVzX2FyZ3MgfHwgYWNfY3Nfc3Vj Y2Vzcz1mYWxzZQorKyAgZXhlYyA1Pj5jb25maWcubG9nCisrICAjIFVzZSB8fCwgbm90ICYmLCB0 byBhdm9pZCBleGl0aW5nIGZyb20gdGhlIGlmIHdpdGggJD8gPSAxLCB3aGljaAorKyAgIyB3b3Vs ZCBtYWtlIGNvbmZpZ3VyZSBmYWlsIGlmIHRoaXMgaXMgdGhlIGxhc3QgaW5zdHJ1Y3Rpb24uCisr ICAkYWNfY3Nfc3VjY2VzcyB8fCBhc19mbl9leGl0IDEKKyBmaQorK2lmIHRlc3QgLW4gIiRhY191 bnJlY29nbml6ZWRfb3B0cyIgJiYgdGVzdCAiJGVuYWJsZV9vcHRpb25fY2hlY2tpbmciICE9IG5v OyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5J Tkc6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4mNQorKyRh c19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNv Z25pemVkX29wdHMiID4mMjt9CisrZmkKKysKKysKKytlY2hvICIKKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyskUEFDS0FHRS0kVkVSU0lPTiBsaWJyYXJ5IGNvbmZpZ3VyYXRpb246CisrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrCisrRGlyZWN0b3JpZXM6CisrICAtIHByZWZpeCAuLi4uLi4uLi4u Li4uLi4gOiAke3ByZWZpeH0KKysgIC0gZXhlY19wcmVmaXggLi4uLi4uLi4uLiA6ICR7ZXhlY19w cmVmaXh9CisrICAtIGluY2x1ZGVkaXIgLi4uLi4uLi4uLi4gOiAke2luY2x1ZGVkaXJ9CisrICAt IGxpYmRpciAuLi4uLi4uLi4uLi4uLi4gOiAke2xpYmRpcn0KKysgIC0gZG9jZGlyIC4uLi4uLi4u Li4uLi4uLiA6ICR7ZG9jZGlyfQorKyAgLSBtYW5kaXIgLi4uLi4uLi4uLi4uLi4uIDogJHttYW5k aXJ9CisrICAtIGluZm9kaXIgLi4uLi4uLi4uLi4uLi4gOiAke2luZm9kaXJ9CisrCisrU3dpdGNo ZXM6CisrICAtIGV4Y2VwdGlvbnMgLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9leGNlcHRpb25zfQor KyAgLSBpbmZvLWRvYyAuLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfaW5mb19kb2N9CisrICAtIGh0 bWwtZG9jIC4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9odG1sX2RvY30KKysgIC0gc2hhcmVkIC4u Li4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX3NoYXJlZH0KKysgIC0gc3RhdGljIC4uLi4uLi4uLi4u Li4uLiA6ICR7ZW5hYmxlX3N0YXRpY30KKysKKytEb2N1bWVudGF0aW9uIHRvb2xzOgorKyAgLSB0 ZXhpbmZvIC4uLi4uLi4uLi4uLi4uIDogJHt0ZXhpbmZvX29rfQorKyAgLSBkb3h5Z2VuIC4uLi4u Li4uLi4uLi4uIDogJHtkb3h5Z2VuX29rfQorKyAgLSBsYXRleCAuLi4uLi4uLi4uLi4uLi4uIDog JHtsYXRleF9va30KKysgIC0gZHZpcHMgLi4uLi4uLi4uLi4uLi4uLiA6ICR7ZHZpcHNfb2t9Cisr ICAtIGdob3N0c2NyaXB0IC4uLi4uLi4uLi4gOiAke2dzX29rfQorKworK1Rlc3RpbmcgdG9vbHM6 CisrICAtIGRpZmYgLi4uLi4uLi4uLi4uLi4uLi4gOiAke2RpZmZfb2t9CisrICAtIHNlZCAuLi4u Li4uLi4uLi4uLi4uLi4gOiAke3NlZF9va30KKysKKytDb21waWxlci9saW5rZXIgZmxhZ3MvbGli cy9kZWZzOgorKyAgLSBDWFggLi4uLi4uLi4uLi4uLi4uLi4uIDogJHtDWFh9CisrICAtIENYWEZM QUdTIC4uLi4uLi4uLi4uLi4gOiAke0NYWEZMQUdTfQorKyAgLSBDUFBGTEFHUyAuLi4uLi4uLi4u Li4uIDogJHtDUFBGTEFHU30KKysgIC0gTERGTEFHUyAuLi4uLi4uLi4uLi4uLiA6ICR7TERGTEFH U30KKysgIC0gTElCUyAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7TElCU30KKysKKytCdXJyaWVkIGhl YWRlciBmaWxlczoKKysgIC0gU09DSV9IRUFERVJTX0JVUklFRCAuLi4uLi4uIDogJHtlbmFibGVf YnVycmllZF9oZWFkZXJzfQorKyAgLSBNWVNRTF9IRUFERVJTX0JVUklFRCAuLi4uLi4gOiAke2Vu YWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnN9CisrICAtIFBPU1RHUkVTUUxfSEVBREVSU19CVVJJ RUQgLiA6ICR7ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzfQorKworK0V4dGVybmFs IGxpYnJhcmllczoKKysgIC0gQm9vc3QgLi4uLi4uLi4uLi4uLi4uLiA6CisrICAgIG8gQk9PU1Rf VkVSU0lPTiAuLi4uLi4gOiAke0JPT1NUX1ZFUlNJT059CisrICAgIG8gQk9PU1RfQ0ZMQUdTIC4u Li4uLi4gOiAke0JPT1NUX0NGTEFHU30KKysgICAgbyBCT09TVF9MSUJTIC4uLi4uLi4uLiA6ICR7 Qk9PU1RfTElCU30KKysgICAgbyBCT09TVF9EVF9MSUIgLi4uLi4uLiA6ICR7Qk9PU1RfREFURV9U SU1FX0xJQn0KKysgICAgbyBCT09TVF9QT19MSUIgLi4uLi4uLiA6ICR7Qk9PU1RfUFJPR1JBTV9P UFRJT05TX0xJQn0KKysKKysgIC0gTXlTUUwgc3VwcG9ydCAuLi4uLi4uLiA6ICR7ZW5hYmxlX2Jh Y2tlbmRfbXlzcWx9CisrICAgIG8gTVlTUUxfVkVSU0lPTiAuLi4uLi4gOiAke01ZU1FMX1ZFUlNJ T059CisrICAgIG8gTVlTUUxfQ0ZMQUdTIC4uLi4uLi4gOiAke01ZU1FMX0NGTEFHU30KKysgICAg byBNWVNRTF9MSUJTIC4uLi4uLi4uLiA6ICR7TVlTUUxfTElCU30KKysKKysgIC0gUG9zdEdyZVNR TCBzdXBwb3J0IC4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbH0KKysgICAgbyBQT1NU R1JFU1FMX1ZFUlNJT04gLiA6ICR7UE9TVEdSRVNRTF9WRVJTSU9OfQorKyAgICBvIFBPU1RHUkVT UUxfQ0ZMQUdTIC4uIDogJHtQT1NUR1JFU1FMX0NGTEFHU30KKysgICAgbyBQT1NUR1JFU1FMX0xE RkxBR1MgLiA6ICR7UE9TVEdSRVNRTF9MREZMQUdTfQorKworKyAgLSBPcmFjbGUgc3VwcG9ydCAu Li4uLi4uIDogJHtlbmFibGVfYmFja2VuZF9vcmFjbGV9CisrICAgIG8gT1JBQ0xFX1ZFUlNJT04g Li4uLi4gOiAke09SQUNMRV9PQ0lfVkVSU0lPTn0KKysgICAgbyBPUkFDTEVfQ0ZMQUdTIC4uLi4u LiA6ICR7T1JBQ0xFX09DSV9DRkxBR1N9CisrICAgIG8gT1JBQ0xFX0xERkxBR1MgLi4uLi4gOiAk e09SQUNMRV9PQ0lfTERGTEFHU30KKysKKysgIC0gQ1BQVW5pdCAuLi4uLi4uLi4uLi4uLiA6Cisr ICAgIG8gQ1BQVU5JVF9WRVJTSU9OIC4uLi4gOiAke0NQUFVOSVRfVkVSU0lPTn0KKysgICAgbyBD UFBVTklUX0NGTEFHUyAuLi4uLiA6ICR7Q1BQVU5JVF9DRkxBR1N9CisrICAgIG8gQ1BQVU5JVF9M SUJTIC4uLi4uLi4gOiAke0NQUFVOSVRfTElCU30KKyAKKy1lY2hvICcnCistY2QgYnVpbGQvdW5p eDsgYGNhdCBsb2NhbC90Y2xgIHBhcnNlLXBhcmFtZXRlcnMudGNsCistCistZWNobyAnJworLWVj aG8gJ0NvbmZpZ3VyZSBkb25lLicKKy1lY2hvICdZZXMsIGl0IHdhcyBzaG9ydC4nCistZWNobyAn JworLWVjaG8gJ1lvdSBjYW4gbm93IHJ1biBtYWtlLicKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KytOb3cgdHlwZSAnbWFrZSAmJiBtYWtlIGluc3RhbGwnIHRvIGJ1aWxkIGFuZCBpbnN0YWxsICRQ QUNLQUdFLSRWRVJTSU9OIGxpYnJhcnkKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysiCitkaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlndXJlLmFjIHNvY2ktMy4wLjBfdHJlcDMwMC9j b25maWd1cmUuYWMKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWd1cmUuYWMJMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmln dXJlLmFjCTIwMTEtMDItMDggMjI6Mzk6MzQuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDM5 NyBAQAorKyMgUHJvY2VzcyB0aGlzIGZpbGUgd2l0aCBhdXRvY29uZiB0byBwcm9kdWNlIGEgY29u ZmlndXJlIHNjcmlwdAorKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfUFJFUkVRKDIuNTkpCisrQUNfQ09QWVJJ R0hUKFtDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMSBNYWNpZWogU29iY3phayA8bXNvYmN6YWtAdXNl cnMuc291cmNlZm9yZ2UubmV0Pl0pCisrQUNfSU5JVChbU09DSV0sWzMuMC4wXSxbbXNvYmN6YWtA dXNlcnMuc291cmNlZm9yZ2UubmV0XSxbc29jaV0pCisrQUNfQ09ORklHX0hFQURFUihbc29jaS9j b25maWcuaF0pCisrQUNfQ09ORklHX1NSQ0RJUihbc29jaS9jb3JlL2Vycm9yLmNwcF0pCisrQUNf Q09ORklHX0FVWF9ESVIoW2NvbmZpZ10pCisrQU1fSU5JVF9BVVRPTUFLRQorK0FNX1BBVEhfQ1BQ VU5JVCgxLjEwKQorK0FNX0NPTkRJVElPTkFMKFtIQVZFX0NQUFVOSVRdLCBbdGVzdCAieCRDUFBV TklUX0xJQlMiICE9IHhdKQorKworKyMgU2hhcmVkIGxpYnJhcnkgdmVyc2lvbmluZworK0dFTkVS SUNfTElCUkFSWV9WRVJTSU9OPSIzOjA6MCIKKysjICAgICAgICAgICAgICAgICAgICAgICAgfCB8 IHwKKysjICAgICAgICAgICAgICAgICArLS0tLS0tKyB8ICstLS0rCisrIyAgICAgICAgICAgICAg ICAgfCAgICAgICAgfCAgICAgfAorKyMgICAgICAgICAgICAgIGN1cnJlbnQ6cmV2aXNpb246YWdl CisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAorKyMgICAgICAgICAgICAgICAg IHwgICAgICAgIHwgICAgICstIGluY3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiBhZGRl ZDsKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICAgICBzZXQgdG8gemVybyBpZiBp bnRlcmZhY2VzIGhhdmUgYmVlbiAKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICAg ICByZW1vdmVkIG9yIGNoYW5nZWQKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICArLSBpbmNy ZW1lbnQgaWYgc291cmNlIGNvZGUgaGFzIGNoYW5nZWQ7CisrIyAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgc2V0IHRvIHplcm8gaWYgY3VycmVudCBpcyBpbmNyZW1lbnRlZAorKyMgICAgICAg ICAgICAgICAgICstIGluY3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiBhZGRlZCwgcmVt b3ZlZAorKyMgICAgICAgICAgICAgICAgICAgIG9yIGNoYW5nZWQKKytBQ19TVUJTVChHRU5FUklD X0xJQlJBUllfVkVSU0lPTikKKysKKysjIFVwbG9hZCBjb21tYW5kIGZvciBTb3VyY2VGb3JnZQor K1VQTE9BRF9DT01NQU5EPSJuY2Z0cHB1dCAtdiB1cGxvYWQuc291cmNlZm9yZ2UubmV0IC9pbmNv bWluZyIKKytBQ19TVUJTVChVUExPQURfQ09NTUFORCkKKysKKysjIENoZWNrIGZvciBob3N0IGFu ZCBkaXNhYmxlIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgaW4gV2luZG93cworK0FDX0NBTk9O SUNBTF9IT1NUCisrY2FzZSAkaG9zdCBpbgorKyAgKi0qLW1zZG9zKiB8ICotKi1nbzMyKiB8ICot Ki1taW5ndzMyKiB8ICotKi1jeWd3aW4qIHwgKi0qLXdpbmRvd3MqKSAKKysgICAgQUNfRElTQUJM RV9TSEFSRUQKKysgICAgQUNfRU5BQkxFX1NUQVRJQworKyAgICA7OworKyAgKikgIAorKyAgICBB Q19FTkFCTEVfU0hBUkVECisrICAgIEFDX0RJU0FCTEVfU1RBVElDCisrICAgIDs7CisrZXNhYwor KworKyMgQ2hlY2tzIGZvciBwcm9ncmFtcworK3NhdmVfQ1hYRkxBR1M9IiRDWFhGTEFHUyIKKytB Q19QUk9HX0NYWAorK0FDX1BST0dfQ1hYQ1BQCisrQ1hYRkxBR1M9IiRzYXZlX0NYWEZMQUdTIgor K0FDX1BST0dfSU5TVEFMTAorK0FDX1BST0dfTElCVE9PTAorK0FDX1BST0dfTE5fUworK0FDX1BS T0dfTUFLRV9TRVQKKysKKysjIFNldCBkZWZhdWx0IGxhbmd1YWdlIHRvIEMrKworK0FDX0xBTkco W0MrK10pCisrCisrIyBDaGVjayBmb3IgZXhjZXB0aW9ucyBzd2l0Y2gKKytBQ19BUkdfRU5BQkxF KGV4Y2VwdGlvbnMsCisrICAgICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWV4 Y2VwdGlvbnNdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbmFibGUgZXhjZXB0 aW9ucyBoYW5kbGluZyBtZWNoYW5pc21dKV0sCisrICAgICAgICAgICAgICBbQUNfREVGSU5FKFtT T0NJX0VYQ0VQVElPTlNdLCBbMV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgIFtEZWZpbmUg aWYgeW91IHdhbnQgZXhjZXB0aW9ucyBoYW5kbGluZ10pXSkKKyt0ZXN0ICJ4JGVuYWJsZV9leGNl cHRpb25zIiAhPSB4bm8gJiYgZW5hYmxlX2V4Y2VwdGlvbnM9eWVzCisrdGVzdCAieCRheF9jdl9i b29zdF9kYXRlX3RpbWUiICE9IHhubyAmJiBlbmFibGVfZXhjZXB0aW9ucz15ZXMKKysKKysjIENo ZWNrIGZvciBpbmZvIHBhZ2VzCisrQUNfQVJHX0VOQUJMRShpbmZvLWRvYywgCisrICAgICAgICAg ICAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1pbmZvLWRvY10sCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgW2RvIG5vdCBnZW5lcmF0ZSBJbmZvIGRvY3VtZW50YXRpb25dKV0p CisrdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubyAmJiBlbmFibGVfaW5mb19kb2M9eWVz CisrCisrCisrIyBDaGVjayBmb3IgaHRtbC1kb2Mgc3dpdGNoCisrQUNfQVJHX0VOQUJMRShodG1s LWRvYywgCisrICAgICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1odG1sLWRv Y10sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RvIG5vdCBnZW5lcmF0ZSBIVE1M IGRvY3VtZW50YXRpb25dKV0pCisrdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiICE9IHhubyAmJiBl bmFibGVfaHRtbF9kb2M9eWVzCisrCisrCisrIyBQcm92aWRlIC0td2l0aC1kb2NkaXIKKytBQ19B UkdfV0lUSChkb2NkaXIsCisrICAgICAgICAgICAgW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtZG9j ZGlyPURJUl0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZXQgZG9jdW1lbnRhdGlv biBkaXJlY3RvcnkgdG8gRElSXSldLAorKyAgICAgICAgICAgIFtET0NfRElSPSIkd2l0aHZhbCJd LAorKyAgICAgICAgICAgIFtET0NfRElSPSIiXSkKKytpZiB0ZXN0ICJ4JERPQ19ESVIiICE9IHg7 IHRoZW4KKysgIGRvY2Rpcj0iJERPQ19ESVIiCisrZWxzZQorKyAgZG9jZGlyPSIke2RhdGFkaXJ9 L2RvYy8kUEFDS0FHRS0kVkVSU0lPTiIKKytmaQorK0FDX1NVQlNUKGRvY2RpcikKKysKKysKKysj IENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIFNPQ0kgaXRzZWxmKQorK0FDX0FS R19FTkFCTEUoYnVycmllZC1oZWFkZXJzLCAKKysgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWJ1 cnJpZWQtaGVhZGVyc10sCisrCQlbaW5jbHVkZSBoZWFkZXIgZmlsZXMgZnJvbSBhIGRpcmVjdG9y eSBzdHJ1Y3R1cmVdKSwKKysgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCisrICAg ICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz1ubworKyAgIGVsc2UKKysgICAgICBlbmFibGVfYnVy cmllZF9oZWFkZXJzPXllcworKyAgIGZpIF0sCisrIFsgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz1u byBdKQorKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCisrZW5h YmxlX2J1cnJpZWRfaGVhZGVycz15ZXMKKytBTV9DT05ESVRJT05BTChbU09DSV9IRUFERVJTX0JV UklFRF0sIFt0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hlYWRlcnMiID0geHllc10pCisrQUNfU1VC U1QoU09DSV9IRUFERVJTX0JVUklFRCkKKytpZiB0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hlYWRl cnMiID0geHllczsgdGhlbgorKyAgIENQUEZMQUdTPSItRFNPQ0lfSEVBREVSU19CVVJJRUQgJENQ UEZMQUdTIgorK2ZpCisrCisrIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBN eVNRTCBjbGllbnQpCisrQUNfQVJHX0VOQUJMRShteXNxbC1idXJyaWVkLWhlYWRlcnMsIAorKyBB U19IRUxQX1NUUklORyhbLS1lbmFibGUtbXlzcWwtYnVycmllZC1oZWFkZXJzXSwKKysJCVtpbmNs dWRlIE15U1FMIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5IHN0cnVjdHVyZV0pLAorKyBb IGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KKysJZW5hYmxlX215c3FsX2J1cnJpZWRf aGVhZGVycz1ubworKyAgIGVsc2UKKysJZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz15ZXMK KysgICBmaSBdLAorKyBbIGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9bm8gXSkKKysjIFRl bXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlvbgorK2VuYWJsZV9teXNxbF9i dXJyaWVkX2hlYWRlcnM9eWVzCisrQU1fQ09ORElUSU9OQUwoW1NPQ0lfTVlTUUxfSEVBREVSU19C VVJJRURdLAorKyAgICAgICAgICAgICAgIFt0ZXN0ICJ4JGVuYWJsZV9teXNxbF9idXJyaWVkX2hl YWRlcnMiID0geHllc10pCisrQUNfU1VCU1QoU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCkKKytp ZiB0ZXN0ICJ4JGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgorKyAg IENQUEZMQUdTPSItRFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgorK2ZpCisr CisrIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBQb3N0R3JlU1FMIGNsaWVu dCkKKytBQ19BUkdfRU5BQkxFKHBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzLCAKKysgQVNfSEVM UF9TVFJJTkcoWy0tZW5hYmxlLXBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzXSwKKysJCVtpbmNs dWRlIFBvc3RHcmVTUUwgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3Rvcnkgc3RydWN0dXJlXSks CisrIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKwllbmFibGVfcG9zdGdyZXNx bF9idXJyaWVkX2hlYWRlcnM9bm8KKysgICBlbHNlCisrCWVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJp ZWRfaGVhZGVycz15ZXMKKysgICBmaSBdLAorKyBbIGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRf aGVhZGVycz1ubyBdKQorKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0 aW9uCisrZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPXllcworK0FNX0NPTkRJVElP TkFMKFtTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURdLAorKyAgICAgICAgICAgICAgIFt0 ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzXSkKKytBQ19T VUJTVChTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQpCisraWYgdGVzdCAieCRlbmFibGVf cG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgorKyAgIENQUEZMQUdTPSIt RFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCisrZmkKKysKKysKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrIyBCb29zdCAoU1RMIEV4dGVuc2lvbnM6IGh0dHA6Ly93d3cuYm9vc3Qub3JnKQorKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytB WF9CT09TVChbMS4zM10pCisrQUNfU1VCU1QoQk9PU1RfVkVSU0lPTikKKytBQ19TVUJTVChCT09T VF9DRkxBR1MpCisrQUNfU1VCU1QoQk9PU1RfTElCUykKKytBQ19TVUJTVChCT09TVF9EQVRFX1RJ TUVfTElCKQorK0FDX1NVQlNUKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpCisrQUNfU1VCU1Qo Qk9PU1RfRklMRVNZU1RFTV9MSUIpCisrQUNfU1VCU1QoQk9PU1RfVEhSRUFEX0xJQikKKytBQ19T VUJTVChCT09TVF9QWVRIT05fTElCKQorKworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9y IE15U1FMIGJhY2tlbmQgKEMgY2xpZW50IEFQSSk6IGh0dHA6Ly93d3cubXlzcWwub3JnCisrIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorK0FDX0FSR19FTkFCTEUoW2JhY2tlbmQtbXlzcWxdLAorKyAgICBBQ19IRUxQ X1NUUklORyhbLS1lbmFibGUtYmFja2VuZC1teXNxbF0sCisrICAgICAgICBbYnVpbGQtaW4gTXlT UUwgYmFja2VuZCBzdXBwb3J0IEA8OkBkZWZhdWx0PW5vQDo+QF0KKysgICAgKSwKKysgICAgWyBp ZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCisrICAgICAgCSBlbmFibGVfYmFja2VuZF9t eXNxbD1ubworKyAgICAgIGVsc2UKKysJIGVuYWJsZV9iYWNrZW5kX215c3FsPXllcworKyAgICAg IGZpIF0sCisrICAgIFsgZW5hYmxlX2JhY2tlbmRfbXlzcWw9bm8gXQorKykKKysKKytpZiB0ZXN0 ICJ4JGVuYWJsZV9iYWNrZW5kX215c3FsIiA9ICJ4eWVzIjsgdGhlbgorKyAgIE1ZU1FMX0RJUlM9 Im15c3FsIgorKyMgICBNWVNRTF9SRVFfVkVSU0lPTj0iMy4wLjAiCisrICAgQVhfTVlTUUwKKytm aQorK0FNX0NPTkRJVElPTkFMKFtIQVZFX01ZU1FMXSwgW3Rlc3QgIngkZW5hYmxlX2JhY2tlbmRf bXlzcWwiID0geHllc10pCisrI01ZU1FMX0RJUlM9Im15c3FsIgorKworK0FDX1NVQlNUKFtNWVNR TF9ESVJTXSkKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9yIE9yYWNsZSBiYWNr ZW5kCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfQVJHX0VOQUJMRShbYmFja2VuZC1vcmFjbGVdLAorKyAg ICBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUtYmFja2VuZC1vcmFjbGVdLAorKwkJICAgW2J1aWxk LWluIE9SQUNMRSBiYWNrZW5kIHN1cHBvcnQgQDw6QGRlZmF1bHQ9bm9AOj5AXSksCisrICAgIFsg aWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKyAgICAgIAkgZW5hYmxlX2JhY2tlbmRf b3JhY2xlPW5vCisrICAgICAgZWxzZQorKwkgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPXllcworKyAg ICAgIGZpIF0sCisrICAgIFsgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPW5vIF0KKyspCisrCisraWYg dGVzdCAieCRlbmFibGVfYmFja2VuZF9vcmFjbGUiID0gInh5ZXMiOyB0aGVuCisrICAgT1JBQ0xF X0RJUlM9Im9yYWNsZSIKKysgICBPUkFDTEVfT0NJX1JFUV9WRVJTSU9OPSI5LjAiCisrICAgQVhf TElCX09SQUNMRV9PQ0koJE9SQUNMRV9PQ0lfUkVRX1ZFUlNJT04pCisrZmkKKytBTV9DT05ESVRJ T05BTChbSEFWRV9PUkFDTEVdLCBbdGVzdCAieCRlbmFibGVfYmFja2VuZF9vcmFjbGUiID0geHll c10pCisrI09SQUNMRV9ESVJTPSJvcmFjbGUiCisrCisrQUNfU1VCU1QoW09SQUNMRV9ESVJTXSkK KysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9yIFBvc3RncmVTUUwgYmFja2VuZAorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorK0FDX0FSR19FTkFCTEUoW2JhY2tlbmQtcG9zdGdyZXNxbF0sCisrICAgIEFD X0hFTFBfU1RSSU5HKFstLWVuYWJsZS1iYWNrZW5kLXBvc3RncmVzcWxdLAorKyAgICAgICAgW2J1 aWxkLWluIFBvc3RncmVTUUwgYmFja2VuZCBzdXBwb3J0IEA8OkBkZWZhdWx0PW5vQDo+QF0KKysg ICAgKSwKKysgICAgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCisrICAgICAgCSBl bmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPW5vCisrICAgICAgZWxzZQorKwkgZW5hYmxlX2JhY2tl bmRfcG9zdGdyZXNxbD15ZXMKKysgICAgICBmaSBdLAorKyAgICBbIGVuYWJsZV9iYWNrZW5kX3Bv c3RncmVzcWw9bm8gXQorKykKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVz cWwiID0gInh5ZXMiOyB0aGVuCisrICAgUE9TVEdSRVNRTF9ESVJTPSJwb3N0Z3Jlc3FsIgorKyAg IFBPU1RHUkVTUUxfUkVRX1ZFUlNJT049IjcuMS40IgorKyAgIEFYX0xJQl9QT1NUR1JFU1FMKCRQ T1NUR1JFU1FMX1JFUV9WRVJTSU9OKQorK2ZpCisrQU1fQ09ORElUSU9OQUwoW0hBVkVfUE9TVEdS RVNRTF0sIFt0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwiID0geHllc10pCisrI1BP U1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIKKysKKytBQ19TVUJTVChbUE9TVEdSRVNRTF9ESVJT XSkKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9yIGRvY3VtZW50YXRpb24KKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKysjIENoZWNrcyBmb3IgZG9jdW1lbnRhdGlvbiBidWlsZCB0b29scworKyNB Q19DSEVDS19QUk9HKFt0ZXhpbmZvX29rXSwgW3RleGluZm9dLCBbeWVzXSwgW25vXSkKKysjaWYg dGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubzsgdGhlbgorKyMgIHRlc3QgIngkdGV4aW5m b19vayIgIT0geHllcyAmJiBlbmFibGVfaW5mb19kb2M9bm8KKysjICBBQ19QQVRIX1BST0coW1BF UkxdLCBbcGVybF0sIFtdKQorKyNmaQorK0FNX0NPTkRJVElPTkFMKFtJTkZPX0RPQ10sIFt0ZXN0 ICJ4JGVuYWJsZV9pbmZvX2RvYyIgPSB4eWVzXSkKKysKKysjIENoZWNrcyBmb3IgZG9jdW1lbnRh dGlvbiBidWlsZCB0b29scworK0FDX0NIRUNLX1BST0coW2RveHlnZW5fb2tdLCBbZG94eWdlbl0s IFt5ZXNdLCBbbm9dKQorK0FDX0NIRUNLX1BST0coW2xhdGV4X29rXSwgW2xhdGV4XSwgW3llc10s IFtub10pCisrQUNfQ0hFQ0tfUFJPRyhbZHZpcHNfb2tdLCBbZHZpcHNdLCBbeWVzXSwgW25vXSkK KytBQ19DSEVDS19QUk9HKFtnc19va10sIFtnc10sIFt5ZXNdLCBbbm9dKQorK2lmIHRlc3QgIngk ZW5hYmxlX2h0bWxfZG9jIiAhPSB4bm87IHRoZW4KKysgIHRlc3QgIngkZG94eWdlbl9vayIgIT0g eHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KKysgIHRlc3QgIngkbGF0ZXhfb2siICE9IHh5ZXMg JiYgZW5hYmxlX2h0bWxfZG9jPW5vCisrICB0ZXN0ICJ4JGR2aXBzX29rIiAhPSB4eWVzICYmIGVu YWJsZV9odG1sX2RvYz1ubworKyAgdGVzdCAieCRnc19vayIgIT0geHllcyAmJiBlbmFibGVfaHRt bF9kb2M9bm8KKysgIEFDX1BBVEhfUFJPRyhbUEVSTF0sIFtwZXJsXSwgW10pCisrZmkKKytBTV9D T05ESVRJT05BTChbSFRNTF9ET0NdLCBbdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiID0geHllc10p CisrCisrCisrIyBDaGVjayBmb3IgZGlmZiBwcm9ncmFtIHVzZWQgZm9yIHRlc3RzCisrQUNfQ0hF Q0tfUFJPRyhbZGlmZl9va10sIFtkaWZmXSwgW3llc10sIFtub10pCisrQUNfQ0hFQ0tfUFJPRyhb c2VkX29rXSwgW3NlZF0sIFt5ZXNdLCBbbm9dKQorK2VuYWJsZV90ZXN0cz15ZXMKKyt0ZXN0ICJ4 JGRpZmZfb2siICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCisrdGVzdCAieCRzZWRfb2siICE9 IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCisrQU1fQ09ORElUSU9OQUwoW1JVTl9URVNUU10sIFt0 ZXN0ICJ4JGVuYWJsZV90ZXN0cyIgPSB4eWVzXSkKKysKKysKKysjIENoZWNrcyBmb3IgaGVhZGVy IGZpbGVzCisrQUNfSEVBREVSX1NUREMKKytBQ19IRUFERVJfVElNRQorK0FDX0NIRUNLX0hFQURF UlMoW2NtYXRoIFwKKysgIGRlcXVlIFwKKysgIGZzdHJlYW0gXAorKyAgaW9tYW5pcCBcCisrICBp b3N0cmVhbSBcCisrICBzc3RyZWFtIFwKKysgIGxpbWl0cyBcCisrICBsaXN0IFwKKysgIHNldCBc CisrICB2ZWN0b3IgXAorKyAgbWFwIFwKKysgIHF1ZXVlIFwKKysgIHN0ZGV4Y2VwdCBcCisrICBz dHJpbmddKQorKworKworKyMgRGVmaW5lIGNvbmZpZ3VyZWQgZmlsZXMKKytBQ19DT05GSUdfRklM RVMoCisrCU1ha2VmaWxlCisrCXNvY2ktY29uZmlnCisrCXNvY2kucGMKKysJc29jaS9NYWtlZmls ZQorKwlzb2NpL2NvcmUvTWFrZWZpbGUKKysJc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUKKysJc29j aS9iYWNrZW5kcy9NYWtlZmlsZQorKwlzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlCisrCXNv Y2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZQorKwlzb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvTWFrZWZpbGUKKysJc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUKKysJ c29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUKKysJc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVz dC9NYWtlZmlsZQorKwltYW4vTWFrZWZpbGUKKysgICAgICAgIGRvYy9NYWtlZmlsZQorKyAgICAg ICAgZG9jL2JhY2tlbmRzL01ha2VmaWxlCisrCWJ1aWxkL01ha2VmaWxlCisrCWJ1aWxkL3VuaXgv TWFrZWZpbGUKKysJYnVpbGQvbXN2YzgwL01ha2VmaWxlCisrCWJ1aWxkL21zdmM4MC9kbGwvTWFr ZWZpbGUKKysJYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSkKKysKKytBQ19PVVRQVVQKKysKKytl Y2hvICIKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyskUEFDS0FHRS0kVkVSU0lPTiBsaWJyYXJ5 IGNvbmZpZ3VyYXRpb246CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrRGlyZWN0b3JpZXM6 CisrICAtIHByZWZpeCAuLi4uLi4uLi4uLi4uLi4gOiAke3ByZWZpeH0KKysgIC0gZXhlY19wcmVm aXggLi4uLi4uLi4uLiA6ICR7ZXhlY19wcmVmaXh9CisrICAtIGluY2x1ZGVkaXIgLi4uLi4uLi4u Li4gOiAke2luY2x1ZGVkaXJ9CisrICAtIGxpYmRpciAuLi4uLi4uLi4uLi4uLi4gOiAke2xpYmRp cn0KKysgIC0gZG9jZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZG9jZGlyfQorKyAgLSBtYW5kaXIg Li4uLi4uLi4uLi4uLi4uIDogJHttYW5kaXJ9CisrICAtIGluZm9kaXIgLi4uLi4uLi4uLi4uLi4g OiAke2luZm9kaXJ9CisrCisrU3dpdGNoZXM6CisrICAtIGV4Y2VwdGlvbnMgLi4uLi4uLi4uLi4g OiAke2VuYWJsZV9leGNlcHRpb25zfQorKyAgLSBpbmZvLWRvYyAuLi4uLi4uLi4uLi4uIDogJHtl bmFibGVfaW5mb19kb2N9CisrICAtIGh0bWwtZG9jIC4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9o dG1sX2RvY30KKysgIC0gc2hhcmVkIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX3NoYXJlZH0K KysgIC0gc3RhdGljIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX3N0YXRpY30KKysKKytEb2N1 bWVudGF0aW9uIHRvb2xzOgorKyAgLSB0ZXhpbmZvIC4uLi4uLi4uLi4uLi4uIDogJHt0ZXhpbmZv X29rfQorKyAgLSBkb3h5Z2VuIC4uLi4uLi4uLi4uLi4uIDogJHtkb3h5Z2VuX29rfQorKyAgLSBs YXRleCAuLi4uLi4uLi4uLi4uLi4uIDogJHtsYXRleF9va30KKysgIC0gZHZpcHMgLi4uLi4uLi4u Li4uLi4uLiA6ICR7ZHZpcHNfb2t9CisrICAtIGdob3N0c2NyaXB0IC4uLi4uLi4uLi4gOiAke2dz X29rfQorKworK1Rlc3RpbmcgdG9vbHM6CisrICAtIGRpZmYgLi4uLi4uLi4uLi4uLi4uLi4gOiAk e2RpZmZfb2t9CisrICAtIHNlZCAuLi4uLi4uLi4uLi4uLi4uLi4gOiAke3NlZF9va30KKysKKytD b21waWxlci9saW5rZXIgZmxhZ3MvbGlicy9kZWZzOgorKyAgLSBDWFggLi4uLi4uLi4uLi4uLi4u Li4uIDogJHtDWFh9CisrICAtIENYWEZMQUdTIC4uLi4uLi4uLi4uLi4gOiAke0NYWEZMQUdTfQor KyAgLSBDUFBGTEFHUyAuLi4uLi4uLi4uLi4uIDogJHtDUFBGTEFHU30KKysgIC0gTERGTEFHUyAu Li4uLi4uLi4uLi4uLiA6ICR7TERGTEFHU30KKysgIC0gTElCUyAuLi4uLi4uLi4uLi4uLi4uLiA6 ICR7TElCU30KKysKKytCdXJyaWVkIGhlYWRlciBmaWxlczoKKysgIC0gU09DSV9IRUFERVJTX0JV UklFRCAuLi4uLi4uIDogJHtlbmFibGVfYnVycmllZF9oZWFkZXJzfQorKyAgLSBNWVNRTF9IRUFE RVJTX0JVUklFRCAuLi4uLi4gOiAke2VuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnN9CisrICAt IFBPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgLiA6ICR7ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmll ZF9oZWFkZXJzfQorKworK0V4dGVybmFsIGxpYnJhcmllczoKKysgIC0gQm9vc3QgLi4uLi4uLi4u Li4uLi4uLiA6CisrICAgIG8gQk9PU1RfVkVSU0lPTiAuLi4uLi4gOiAke0JPT1NUX1ZFUlNJT059 CisrICAgIG8gQk9PU1RfQ0ZMQUdTIC4uLi4uLi4gOiAke0JPT1NUX0NGTEFHU30KKysgICAgbyBC T09TVF9MSUJTIC4uLi4uLi4uLiA6ICR7Qk9PU1RfTElCU30KKysgICAgbyBCT09TVF9EVF9MSUIg Li4uLi4uLiA6ICR7Qk9PU1RfREFURV9USU1FX0xJQn0KKysgICAgbyBCT09TVF9QT19MSUIgLi4u Li4uLiA6ICR7Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQn0KKysKKysgIC0gTXlTUUwgc3VwcG9y dCAuLi4uLi4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfbXlzcWx9CisrICAgIG8gTVlTUUxfVkVSU0lP TiAuLi4uLi4gOiAke01ZU1FMX1ZFUlNJT059CisrICAgIG8gTVlTUUxfQ0ZMQUdTIC4uLi4uLi4g OiAke01ZU1FMX0NGTEFHU30KKysgICAgbyBNWVNRTF9MSUJTIC4uLi4uLi4uLiA6ICR7TVlTUUxf TElCU30KKysKKysgIC0gUG9zdEdyZVNRTCBzdXBwb3J0IC4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRf cG9zdGdyZXNxbH0KKysgICAgbyBQT1NUR1JFU1FMX1ZFUlNJT04gLiA6ICR7UE9TVEdSRVNRTF9W RVJTSU9OfQorKyAgICBvIFBPU1RHUkVTUUxfQ0ZMQUdTIC4uIDogJHtQT1NUR1JFU1FMX0NGTEFH U30KKysgICAgbyBQT1NUR1JFU1FMX0xERkxBR1MgLiA6ICR7UE9TVEdSRVNRTF9MREZMQUdTfSAK KysKKysgIC0gT3JhY2xlIHN1cHBvcnQgLi4uLi4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfb3JhY2xl fQorKyAgICBvIE9SQUNMRV9WRVJTSU9OIC4uLi4uIDogJHtPUkFDTEVfT0NJX1ZFUlNJT059Cisr ICAgIG8gT1JBQ0xFX0NGTEFHUyAuLi4uLi4gOiAke09SQUNMRV9PQ0lfQ0ZMQUdTfQorKyAgICBv IE9SQUNMRV9MREZMQUdTIC4uLi4uIDogJHtPUkFDTEVfT0NJX0xERkxBR1N9IAorKworKyAgLSBD UFBVbml0IC4uLi4uLi4uLi4uLi4uIDoKKysgICAgbyBDUFBVTklUX1ZFUlNJT04gLi4uLiA6ICR7 Q1BQVU5JVF9WRVJTSU9OfQorKyAgICBvIENQUFVOSVRfQ0ZMQUdTIC4uLi4uIDogJHtDUFBVTklU X0NGTEFHU30KKysgICAgbyBDUFBVTklUX0xJQlMgLi4uLi4uLiA6ICR7Q1BQVU5JVF9MSUJTfQor KworKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK05vdyB0eXBlICdtYWtlICYmIG1ha2UgaW5zdGFs bCcgdG8gYnVpbGQgYW5kIGluc3RhbGwgJFBBQ0tBR0UtJFZFUlNJT04gbGlicmFyeQorKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKyIKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFj a2VuZHMvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9NYWtlZmls ZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5hbQkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9k b2MvYmFja2VuZHMvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTo1MDozOC4wMDAwMDAwMDAgKzAy MDAKK0BAIC0wLDAgKzEsMTYgQEAKKysjIyBkb2MvYmFja2VuZHMgc3ViLWRpcmVjdG9yeQorK2lu Y2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytpbmNsdWRlICQoc3JjZGlyKS9z b3VyY2VzLm1rCisrCisrIyMgU291cmNlIGRpcmVjdG9yeQorKworK01BSU5UQUlORVJDTEVBTkZJ TEVTID0gTWFrZWZpbGUuaW4KKysKKytTVUJESVJTID0KKysKKytFWFRSQV9ESVNUX0ZPUl9TT0NJ X0NPTVBBVElCSUxJVFkgPSAkKGh0bWxfYmNrX3NvdXJjZXMpCisrI2ZpcmViaXJkLmh0bWwgaW5k ZXguaHRtbCBteXNxbC5odG1sIG9kYmMuaHRtbCBvcmFjbGUuaHRtbCBwb3N0Z3Jlc3FsLmh0bWwg c3FsaXRlMy5odG1sCisrCisrRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01Q QVRJQklMSVRZKQorKworKyNwa2dkYXRhZGlyID0gJChodG1sX2Jja19zb3VyY2VzKQorZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbiBzb2NpLTMuMC4w X3RyZXAzMDAvZG9jL2JhY2tlbmRzL01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2sv ZG9jL2JhY2tlbmRzL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbgkyMDEx LTAyLTA4IDIyOjM5OjU1LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw2MjggQEAKKysjIE1h a2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4K KysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5 OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAy MDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisr IyBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkg YW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywg YXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3 aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAor K1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytw a2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxp YmRpcikvQFBBQ0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VA CisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAm JiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFs bF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChp bnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNm b3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BS RV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgor K1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9 IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGly KS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHNyY2Rpcikvc291cmNl cy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IGRvYy9iYWNrZW5k cworK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9t NF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNs ZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xv Y2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQp CisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0 b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK0NPTkZJ R19DTEVBTl9WUEFUSF9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytSRUNV UlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNp dmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJz aXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAor KwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0 YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUg XAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVj dXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKKytSRUNVUlNJVkVf Q0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAor KyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0FNX1JF Q1VSU0lWRV9UQVJHRVRTID0gJChSRUNVUlNJVkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAorKwkk KFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RB R1MgXAorKwlkaXN0ZGlyCisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNUX1NV QkRJUlMgPSAkKFNVQkRJUlMpCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NP VVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKythbV9fcmVsYXRpdml6ZSA9IFwKKysg IGRpcjA9YHB3ZGA7IFwKKysgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAor KyAgc2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7IFwKKysgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10q XCkkJCxcMSwnOyBcCisrICBzZWRfYnV0bGFzdD0ncywvKlteL10qJCQsLCc7IFwKKysgIHdoaWxl IHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwKKysgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQg LWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysgICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVu IFwKKysgICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRoZW4gXAorKyAgICAgICAgZGly Mj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCisrICAg ICAgICBkaXIwPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKKysg ICAgICBlbHNlIFwKKysgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRz ZWRfZmlyc3QiYDsgXAorKyAgICAgICAgaWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0 aGVuIFwKKysgICAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVz dCJgOyBcCisrICAgICAgICBlbHNlIFwKKysgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAor KyAgICAgICAgZmk7IFwKKysgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCisrICAg ICAgZmk7IFwKKysgICAgZmk7IFwKKysgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAi JCRzZWRfcmVzdCJgOyBcCisrICBkb25lOyBcCisrICByZWxkaXI9IiQkZGlyMiIKKytBQ0xPQ0FM ID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBA QVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9N QUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09T VF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RF TV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBC T09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9N UElfTElCID0gQEJPT1NUX01QSV9MSUJACisrQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1Rf TVBJX1BZVEhPTl9MSUJACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9H UkFNX09QVElPTlNfTElCQAorK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAK KytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJ T05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0g QEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJ QkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9U RVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9P U1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9 IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQEND REVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBA Q1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9D T05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AK KytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hY Q1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBA Q1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQ RElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBC SU5ACisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBF Q0hPX1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBG R1JFUEAKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lP TkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9 IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJ TlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0g PSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFH U0AKKytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElC VE9PTEAKKytMSVBPID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJ Qk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01Z U1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJA CisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AK KytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0g QE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFD TEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJ X0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09S QUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xA CisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JV R1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9O QU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFN RSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9VUkwgPSBAUEFDS0FHRV9VUkxACisrUEFD S0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRI X1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQ T1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMg PSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xE RkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5M SUIgPSBAUkFOTElCQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hF TEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVE QAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklF REAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9B RF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1 aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0g QGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisr YWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9E VU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisr YW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1 b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2Jp bmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRf YWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AK KytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAor K2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZm X29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHln ZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVj X3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RA CisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hv c3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGly ID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5m b2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tA CisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxl ZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbWFu ZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBv bGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytw cm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIg PSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hh cmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNj b25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0 b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRv cF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAt SSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytodG1sX2Jja19zb3VyY2VzID0gJCh0 b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvaW5kZXguaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9j L2JhY2tlbmRzL2ZpcmViaXJkLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9t eXNxbC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb2RiYy5odG1sIFwKKysJ JCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb3JhY2xlLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIp L2RvYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNr ZW5kcy9zcWxpdGUzLmh0bWwKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmlu CisrU1VCRElSUyA9IAorK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICQoaHRt bF9iY2tfc291cmNlcykKKysjZmlyZWJpcmQuaHRtbCBpbmRleC5odG1sIG15c3FsLmh0bWwgb2Ri Yy5odG1sIG9yYWNsZS5odG1sIHBvc3RncmVzcWwuaHRtbCBzcWxpdGUzLmh0bWwKKytFWFRSQV9E SVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCisrYWxsOiBhbGwtcmVj dXJzaXZlCisrCisrLlNVRkZJWEVTOgorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGly KS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291 cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJ ICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJ ICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsg ZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJ ZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBk b2MvYmFja2VuZHMvTWFrZWZpbGUnOyBcCisrCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwK KysJICAkKEFVVE9NQUtFKSAtLWdudSBkb2MvYmFja2VuZHMvTWFrZWZpbGUKKysuUFJFQ0lPVVM6 IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRp cikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyop IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNf bWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmln LnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOwor KworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3Vy ZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChh bV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKGFtX19hY2xvY2FsX200X2RlcHMpOgorKworK21v c3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJ LXJtIC1yZiAubGlicyBfbGlicworKworKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3Rvcmll cyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCisrIyBpbnRvIHRoZW0gYW5kIHJ1 biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCisrIyBUbyBjaGFu Z2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFr ZWZpbGVzLAorKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMn LCBlZGl0IGBjb25maWcuc3RhdHVzJworKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtl ZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7CisrIyAoMikgb3Ro ZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGlu ZS4KKyskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKysJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwK KysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAg ICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisr CSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCXRhcmdldD1gZWNobyAk QCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJk aXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGly IjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBkb3Rfc2Vl bj15ZXM7IFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBc CisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKCQoYW1f X2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkg XAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7IFwKKysJaWYgdGVzdCAiJCRkb3Rf c2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJn ZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAiJCRmYWlsIgorKworKyQoUkVDVVJT SVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3Ig ZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwg LS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2Fj OyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2FzZSAiJEAiIGluIFwKKysJICBk aXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7 OyBcCisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwllc2FjOyBcCisrCXJldj0nJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7 IHRoZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAorKwkgIGZpOyBc CisrCWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQg cy8tcmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKysJICBlY2hv ICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gIi4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAg ZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAg KCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3Rh cmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmUgJiYgdGVzdCAteiAiJCRm YWlsIgorK3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBp biAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRz dWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKKysJZG9uZQorK2N0YWdz LXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBk byBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVS UykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAk KEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAk JGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2Ug ZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZp bGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1w dHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQk dW5pcXVlCisrdGFnczogVEFHUworKworK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykg JChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJ U1ApCisrCXNldCB4OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRhZ3Mt aW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisrCSAgaW5jbHVkZV9v cHRpb249LS1ldGFncy1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PS47IFwKKysJZWxzZSBcCisr CSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PTsgXAorKwlmaTsg XAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBp ZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAhIC1mICQk c3ViZGlyL1RBR1MgfHwgXAorKwkgICAgICBzZXQgIiQkQCIgIiQkaW5jbHVkZV9vcHRpb249JCRo ZXJlLyQkc3ViZGlyL1RBR1MiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlsaXN0PSckKFNP VVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBm b3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAk JGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChB V0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBp ZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJc2hp ZnQ7IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBl bHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisr CSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdT KSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgICAiJCRAIiAkJHVuaXF1 ZTsgXAorKwkgIGVsc2UgXAorKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdT RkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgICAkJHVuaXF1ZTsgXAorKwkgIGZpOyBcCisr CWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQo U09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQ KQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7 IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQk aSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRv bmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAor KwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9 OyB9J2A7IFwKKysJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisrCSAgfHwgJChD VEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorKwkg ICAgICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRp cikgJiYgcHdkYCBcCisrCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAorKwkgICYmIGd0 YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKysKKytkaXN0Y2xlYW4tdGFnczoKKysJLXJt IC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAk KERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1td LlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3Jj ZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJ TEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRm aWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAg ICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJ Y2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0 X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10q JCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGlu ICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRm aWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQk ZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywv W14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhl biBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcw MCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGlmIHRlc3Qg LWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkg ICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAx OyBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcw MCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1mcFIg JCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJ ICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRm aWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwK KysJZG9uZQorKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7 IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAg dGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgJChNS0RJUl9QKSAiJChk aXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9u ZQorKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK KysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgZGlyMT0k JHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwKKysJICAgICQoYW1fX3JlbGF0 aXZpemUpOyBcCisrCSAgICBuZXdfZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZGlyMT0kJHN1 YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCisrCSAgICAkKGFtX19yZWxhdGl2aXplKTsg XAorKwkgICAgbmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGlyOyBcCisrCSAgICBlY2hvICIgKGNkICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIkJG5ld190b3Bf ZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBcCisrCSAgICBlY2hvICIgICAg IGFtX19yZW1vdmVfZGlzdGRpcj06IGFtX19za2lwX2xlbmd0aF9jaGVjaz06IGFtX19za2lwX21v ZGVfZml4PTogZGlzdGRpcikiOyBcCisrCSAgICAoJChhbV9fY2QpICQkc3ViZGlyICYmIFwKKysJ ICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIk JG5ld190b3BfZGlzdGRpciIgXAorKwkgICAgICAgIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFwK KysJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKKysJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwK KysJCWFtX19za2lwX21vZGVfZml4PTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwKKysJICAgICAg fHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVj azogY2hlY2stcmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZQorK2luc3RhbGxkaXJzOiBpbnN0 YWxsZGlycy1yZWN1cnNpdmUKKytpbnN0YWxsZGlycy1hbToKKytpbnN0YWxsOiBpbnN0YWxsLXJl Y3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwt ZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vy c2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykg aW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFs bGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5z dGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBf RkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNU QUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNs ZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoK KysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xF QU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19D TEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQor KworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBp bnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxl cyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16 ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxF UykKKytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMg Y2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJl Y3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3Rj bGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisr ZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraHRtbC1hbToKKysKKytpbmZv OiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKwor K2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWR2aS1hbToK KysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVj dXJzaXZlCisrCisraW5zdGFsbC1odG1sLWFtOgorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1p bmZvLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5mby1hbToKKysKKytpbnN0YWxsLW1hbjoKKysK KytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wZGYtYW06 CisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBzLWFt OgorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVy LWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFt OiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46 IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1n ZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytw ZGYtYW06CisrCisrcHM6IHBzLXJlY3Vyc2l2ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1h bToKKysKKysuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFS R0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3Mt cmVjdXJzaXZlCisrCisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VS U0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisrCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0g Y2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKKysJY3RhZ3MgY3RhZ3MtcmVjdXJz aXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi1saWJ0b29sIGRp c3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKysJaHRtbC1hbSBpbmZvIGlu Zm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCisrCWluc3RhbGwtZGF0YS1h bSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAorKwlpbnN0YWxsLWV4 ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAorKwlpbnN0 YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAorKwlp bnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAorKwlp bnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVh biBcCisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1n ZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3Mg dGFncy1yZWN1cnNpdmUgXAorKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtF QAorKworKyNwa2dkYXRhZGlyID0gJChodG1sX2Jja19zb3VyY2VzKQorKworKyMgVGVsbCB2ZXJz aW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMu CisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUg ZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9i YWNrZW5kcy9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvc291cmNl cy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9zb3VyY2VzLm1rCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2Rv Yy9iYWNrZW5kcy9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6NDc6NTMuMDAwMDAwMDAwICswMjAw CitAQCAtMCwwICsxLDcgQEAKKytodG1sX2Jja19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2Mv YmFja2VuZHMvaW5kZXguaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL2ZpcmVi aXJkLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9teXNxbC5odG1sIFwKKysJ JCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb2RiYy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9k b2MvYmFja2VuZHMvb3JhY2xlLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9w b3N0Z3Jlc3FsLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9zcWxpdGUzLmh0 bWwKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvTWFrZWZpbGUuYW0gc29jaS0zLjAu MF90cmVwMzAwL2RvYy9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9NYWtl ZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9kb2MvTWFrZWZpbGUuYW0JMjAxMC0wMS0yMyAxMzoyNTo1Ny4wMDAwMDAwMDAg KzAxMDAKK0BAIC0wLDAgKzEsOCBAQAorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9kb2Mvc291cmNl cy5taworKworK1NVQkRJUlMgPSBiYWNrZW5kcworKworK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09N UEFUSUJJTElUWSA9ICQoaHRtbF9sb2NhbF9zb3VyY2VzKSBcCisrCSQoY3NzX2xvY2FsX3NvdXJj ZXMpICQoaW1nX2xvY2FsX3NvdXJjZXMpCisrCisrRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9G T1JfU09DSV9DT01QQVRJQklMSVRZKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9N YWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL01ha2VmaWxlLmluCistLS0gc29jaS0z LjAuMF80LXBhY2svZG9jL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9NYWtlZmlsZS5pbgkyMDExLTAyLTA4 IDIyOjM5OjU1LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw2MzEgQEAKKysjIE1ha2VmaWxl LmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBj b25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5 OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAy MDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyBJbmMu CisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29y IGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9u ZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0 CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorK1ZQQVRI ID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNs dWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikv QFBBQ0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACisrYW1f X2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAor K2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9Q Uk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxs X3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0g JChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNU QUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9V TklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWls ZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtl ZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9zb3Vy Y2VzLm1rCisrc3ViZGlyID0gZG9jCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2Nh bC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29z dC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4 X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1 cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVT KSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAor K0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19D TEVBTl9GSUxFUyA9CisrQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KKytTT1VSQ0VTID0KKytE SVNUX1NPVVJDRVMgPQorK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1y ZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZl IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFs bC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZv LXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2 ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRp cnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJl Y3Vyc2l2ZQorK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZl IGNsZWFuLXJlY3Vyc2l2ZQlcCisrICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xl YW4tcmVjdXJzaXZlCisrQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRT Oi1yZWN1cnNpdmU9KSBcCisrCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0p IHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCisrCWRpc3RkaXIKKytFVEFHUyA9IGV0YWdzCisrQ1RB R1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklMRVMgPSAkKERJ U1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK2Ft X19yZWxhdGl2aXplID0gXAorKyAgZGlyMD1gcHdkYDsgXAorKyAgc2VkX2ZpcnN0PSdzLF5cKFte L10qXCkvLiokJCxcMSwnOyBcCisrICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAorKyAgc2Vk X2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKKysgIHNlZF9idXRsYXN0PSdzLC8qW14v XSokJCwsJzsgXAorKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAorKyAgICBmaXJzdD1g ZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorKyAgICBpZiB0ZXN0ICIk JGZpcnN0IiAhPSAiLiI7IHRoZW4gXAorKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsg dGhlbiBcCisrICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0 ImAvIiQkZGlyMiI7IFwKKysgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQk c2VkX2J1dGxhc3QiYDsgXAorKyAgICAgIGVsc2UgXAorKyAgICAgICAgZmlyc3QyPWBlY2hvICIk JGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisrICAgICAgICBpZiB0ZXN0ICIkJGZp cnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAorKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIi IHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKysgICAgICAgIGVsc2UgXAorKyAgICAgICAgICBk aXIyPSIuLi8kJGRpcjIiOyBcCisrICAgICAgICBmaTsgXAorKyAgICAgICAgZGlyMD0iJCRkaXIw Ii8iJCRmaXJzdCI7IFwKKysgICAgICBmaTsgXAorKyAgICBmaTsgXAorKyAgICBkaXIxPWBlY2hv ICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKysgIGRvbmU7IFwKKysgIHJlbGRp cj0iJCRkaXIyIgorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9 IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJA CisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBA Qk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJ QkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09T VF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBC T09TVF9MSUJTQAorK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9NUElf UFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09QVElP TlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJQiA9 IEBCT09TVF9QWVRIT05fTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJA CisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisr Qk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVNX0xJ QiA9IEBCT09TVF9TWVNURU1fTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFE X0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1Rf RlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1Rf V1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBD Q0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0g QENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklU X0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJ QlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05A CisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQ TU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAor K0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElM QAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBF Q0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBA RVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdF TkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RB TExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBA SU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lO U1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERA CisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJ QlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NA CisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJ Ul9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9D X0xJQiA9IEBNWVNRTF9DX0xJQkAKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxf TElCUyA9IEBNWVNRTF9MSUJTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytO TSA9IEBOTUAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpF WFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lf Q0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFD TEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lP TkAKKytPVE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQ QUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tB R0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJ TkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1VSTCA9 IEBQQUNLQUdFX1VSTEAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BB VEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05G SUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdT QAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZM QUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdS RVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrU0VEID0gQFNFREAKKytTRVRfTUFL RSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBM T0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fi c19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAor K2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9 IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBA YWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVk ZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAor K2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRh ciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKyti dWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1 aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVp bGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0g QGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAor K2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29r ID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdz X29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9j cHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhv c3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVk aXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKyts YXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBA bGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBA bG9jYWxzdGF0ZWRpckAKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAK KytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytw cmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFu c2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2Vk X29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNk aXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMg PSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAK Kyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2Rp ckAKKytodG1sX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy5odG1s IFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFzaWNzLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2Rv Yy9iZXlvbmQuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2Jvb3N0Lmh0bWwgXAorKwkkKHRv cF9zcmNkaXIpL2RvYy9lcnJvcnMuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2V4Y2hhbmdl Lmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9pbmRleC5odG1sIFwKKysJJCh0b3Bfc3JjZGly KS9kb2MvaW50ZXJmYWNlcy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvbXVsdGl0aHJlYWRp bmcuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL3JhdGlvbmFsZS5odG1sIFwKKysJJCh0b3Bf c3JjZGlyKS9kb2MvcmVmZXJlbmNlLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9zdGF0ZW1l bnRzLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUuaHRtbAorKworK2Nzc19s b2NhbF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2Mvc3R5bGUuY3NzCisraW1nX2xvY2FsX3Nv dXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUucG5nCisrU1VCRElSUyA9IGJhY2tl bmRzCisrRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gJChodG1sX2xvY2FsX3Nv dXJjZXMpIFwKKysJJChjc3NfbG9jYWxfc291cmNlcykgJChpbWdfbG9jYWxfc291cmNlcykKKysK KytFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCisrYWxs OiBhbGwtcmVjdXJzaXZlCisrCisrLlNVRkZJWEVTOgorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjog ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL2RvYy9zb3VyY2VzLm1rICQoYW1f X2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1f X2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwK KysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBm aTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVj aG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IGRvYy9NYWtlZmlsZSc7 IFwKKysJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251 IGRvYy9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIp L01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycg aW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAg IGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQo c3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBm aWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0 dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMp CisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMp CisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1f X2FjbG9jYWxfbTRfZGVwcyk6CisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICou bG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrCisrIyBUaGlz IGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBj YW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2gg dGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJs ZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxl IGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAg KHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlv dSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVz IG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlA ZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBc CisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayop IGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3Nl ZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJN YWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0g Ii4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIk JHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQi OyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJ ZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0 IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsPSBm YWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBj YXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNv bT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsg XAorKwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0q KSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7 OyBcCisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkg IGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRz dWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBc CisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRp ciBpbiAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7 IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFy Z2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0 YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207 IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9 JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3Vi ZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMp JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8 ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBc CisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJ TEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMp JzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAi JCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAg ZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBc CisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7 IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzog dGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVT KSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJc2V0IHg7IFwKKysJaGVyZT1gcHdkYDsg XAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAy PiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJICBl bXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwK KysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHNldCAi JCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJICBmaTsg XAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAorKwlzaGlmdDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FS R1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8 fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisr CSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdT KSBcCisrCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisrCSAgZWxzZSBcCisrCSAgICAkKEVUQUdT KSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAg ICQkdW5pcXVlOyBcCisrCSAgZmk7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3Rh Z3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykg XAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FS R1MpJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NG TEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVy ZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiAkKGFtX19jZCkg JCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgor KworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMg R1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVj aG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNy Y2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxc Ji9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBm aWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4k JHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQo dG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8q KSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFk O3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBc CisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVz dCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIp OyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVj aG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAt ZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8k JGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisr CSAgICBmaTsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRk ICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAi JChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8k JGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisr CSAgICBmaTsgXAorKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8 IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUi IFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAg ICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBc CisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCBl eGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRo ZW4gOjsgZWxzZSBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3Vi ZGlyIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld19kaXN0ZGlyPSQk cmVsZGlyOyBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwK KysJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisrCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxk aXI7IFwKKysJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGly IiBcXCI7IFwKKysJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBf bGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKKysJICAgICgk KGFtX19jZCkgJCRzdWJkaXIgJiYgXAorKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBc CisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCisrCSAgICAgICAg ZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorKwkJ YW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCisrCSAg ICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25l CisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwtYW06IE1h a2VmaWxlCisraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQorK2luc3RhbGxkaXJz LWFtOgorK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCisraW5zdGFsbC1leGVjOiBpbnN0YWxs LWV4ZWMtcmVjdXJzaXZlCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCisr dW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1hbTogYWxsLWFtCisr CUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFt CisrCisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCisraW5zdGFsbC1zdHJp cDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExf U1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJ UF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJ UCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNU UklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmlj OgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklM RVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysJLXRlc3QgLiA9ICIkKHNyY2Rp cikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChD T05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgor KwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2Ui CisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29s cyB0byByZWJ1aWxkLiIKKytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNs ZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjog ZGlzdGNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNs ZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVj dXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraHRtbC1h bToKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1k YXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0 YWxsLWR2aS1hbToKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0 YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1odG1sLWFtOgorKworK2luc3RhbGwtaW5m bzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5mby1hbToKKysKKytpbnN0 YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisrCisraW5z dGFsbC1wZGYtYW06CisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKysKKytp bnN0YWxsLXBzLWFtOgorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFu OiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFp bmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisr bW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFtOiBt b3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1yZWN1 cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vyc2l2ZQorKworK3BzLWFtOgorKwor K3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChS RUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1hbSBpbnN0YWxs LXN0cmlwIHRhZ3MtcmVjdXJzaXZlCisrCisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJH RVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisrCWFsbCBhbGwtYW0gY2hl Y2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKKysJY3RhZ3Mg Y3RhZ3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVh bi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKysJaHRt bC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCisrCWlu c3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAor KwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWlu Zm8gXAorKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1w ZGYtYW0gXAorKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxs Y2hlY2sgXAorKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFp bnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBt b3N0bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBz IHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAorKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisr CisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBv cnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1Yg YXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svZG9jL3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9zb3VyY2Vz Lm1rCistLS0gc29jaS0zLjAuMF80LXBhY2svZG9jL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL3NvdXJjZXMu bWsJMjAxMC0wMS0yMyAxMzoyNTo1Ny4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsMTggQEAK KytodG1sX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy5odG1sIFwK KysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFzaWNzLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9i ZXlvbmQuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2Jvb3N0Lmh0bWwgXAorKwkkKHRvcF9z cmNkaXIpL2RvYy9lcnJvcnMuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2V4Y2hhbmdlLmh0 bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9pbmRleC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9k b2MvaW50ZXJmYWNlcy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvbXVsdGl0aHJlYWRpbmcu aHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL3JhdGlvbmFsZS5odG1sIFwKKysJJCh0b3Bfc3Jj ZGlyKS9kb2MvcmVmZXJlbmNlLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9zdGF0ZW1lbnRz Lmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUuaHRtbAorKworK2Nzc19sb2Nh bF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2Mvc3R5bGUuY3NzCisrCisraW1nX2xvY2FsX3Nv dXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUucG5nCisrCitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svTWFrZWZpbGUgc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlCistLS0g c29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUJMjAxMS0wMi0wOSAwMDozMDozMi42MDA5MTYzOTIg KzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDIwICswLDAgQEAKKy1idWlsZF9saWJzIDoKKy0JY2Qg YnVpbGQvdW5peDsgYGNhdCBsb2NhbC90Y2xgIGJ1aWxkLnRjbCBjb3JlIGNvcmUtc28gbXlzcWwg bXlzcWwtc28gcG9zdGdyZXNxbCBwb3N0Z3Jlc3FsLXNvIG9yYWNsZSBvcmFjbGUtc28KKy0KKy10 ZXN0cyA6CistCWNkIGJ1aWxkL3VuaXg7IGBjYXQgbG9jYWwvdGNsYCBidWlsZC50Y2wgbXlzcWwt dGVzdCBvcmFjbGUtdGVzdCBwb3N0Z3Jlc3FsLXRlc3QKKy0KKy1pbnN0YWxsIDoKKy0JY2QgYnVp bGQvdW5peDsgYGNhdCBsb2NhbC90Y2xgIGluc3RhbGwudGNsCistCistdW5pbnN0YWxsIDoKKy0J Y2QgYnVpbGQvdW5peC9sb2NhbDsgL2Jpbi9zaCB1bmluc3RhbGwuc2gKKy0KKy1jbGVhbiA6Cist CWZpbmQgLiAtbmFtZSAnKi5vJyB8IHhhcmdzIHJtCistCWZpbmQgLiAtbmFtZSAnKi5hJyB8IHhh cmdzIHJtCistCWZpbmQgLiAtbmFtZSAnKi5zbycgfCB4YXJncyBybQorLQlybSAtZiBzcmMvYmFj a2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsCistCXJtIC1mIHNyYy9iYWNrZW5kcy9vcmFjbGUv dGVzdC90ZXN0LW9yYWNsZQorLQlybSAtZiBzcmMvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rl c3QtcG9zdGdyZXNxbAorLQlybSAtcmYgYnVpbGQvdW5peC9pbmNsdWRlIGJ1aWxkL3VuaXgvbGli IGJ1aWxkL3VuaXgvdGVzdHMKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5h bSBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9N YWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2kt My4wLjBfdHJlcDMwMC9NYWtlZmlsZS5hbQkyMDExLTAyLTA4IDIyOjI5OjU0LjAwMDAwMDAwMCAr MDEwMAorQEAgLTAsMCArMSw2MiBAQAorKyMjIHRvcCBkaXJlY3RvcnkKKytpbmNsdWRlICQodG9w X3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrCisrQUNMT0NBTF9BTUZMQUdTID0gLUkgY29uZmln CisrCisrQVVUT01BS0VfT1BUSU9OUyA9IGRpc3QtYnppcDIKKysKKytpZiBSVU5fVEVTVFMKKysj ICBURVNUX0RJUiA9IHRlc3QKKytlbmRpZgorKworK01BTl9ET0NfRElSID0gbWFuCisrCisrIyBN YWludGFpbmFuY2UgZmlsZXMKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluIGFj bG9jYWwubTQgY29uZmlndXJlIFwKKysJCQljb25maWctaC5pbiBzaWMvc3RhbXAtaC5pbiBhdXRv Z2VuLnNoIGJvb3RzdHJhcAorKworKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkg PSAuX2NvbmZpZ3VyZSAuX01ha2VmaWxlIGNvbnRyaWIKKytFWFRSQV9ESVNUX0ZPUl9TT0NJX0NP TVBBVElCSUxJVFkgPSBjb250cmliCisrCisrRVhUUkFfRElTVCA9IE1ha2VmaWxlLmNvbW1vbiAk KEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkgQFBBQ0tBR0VALm00CisrCisrIyBC dWlsZCBpbiB0aGVzZSBkaXJlY3RvcmllczoKKytTVUJESVJTID0gYnVpbGQgQFBBQ0tBR0VAICQo TUFOX0RPQ19ESVIpIGRvYyAkKFRFU1RfRElSKQorKworKworKyMgQ29uZmlndXJhdGlvbiBoZWxw ZXJzCisrYmluX1NDUklQVFMgPSBAUEFDS0FHRUAtY29uZmlnCisrCisrcGtnY29uZmlnZGlyID0g JChsaWJkaXIpL3BrZ2NvbmZpZworK3BrZ2NvbmZpZ19EQVRBID0gQFBBQ0tBR0VALnBjCisrCisr bTRkYXRhZGlyID0gJChkYXRhZGlyKS9hY2xvY2FsCisrbTRkYXRhX0RBVEEgPSBAUEFDS0FHRUAu bTQKKysKKysjIFRhcmdldHMKKyt1bmluc3RhbGwtbG9jYWw6CisrCXJtIC1yZiAkKERFU1RESVIp JChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKysKKytkaXN0LWh0bWw6CisrCSQoTUFLRSkgLUMgZG9j IGRpc3QtaHRtbAorKworKworK3NuYXBzaG90OiBzbmFwc2hvdC1zcmMgc25hcHNob3QtaHRtbAor KworKworK3NuYXBzaG90LXNyYzoKKysJJChNQUtFKSBkaXN0IGRpc3RkaXI9QFBBQ0tBR0VfVEFS TkFNRUAtYGRhdGUgKyIlWSVtJWQiYAorKworK3NuYXBzaG90LWh0bWw6CisrCSQoTUFLRSkgLUMg ZG9jIGRpc3QtaHRtbCBodG1sX3Rhcm5hbWU9QFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtYGRh dGUgKyIlWSVtJWQiYAorKworK3VwbG9hZDogdXBsb2FkLXNyYyB1cGxvYWQtaHRtbAorKworK3Vw bG9hZC1zcmM6IGRpc3QKKysJQFVQTE9BRF9DT01NQU5EQCBAUEFDS0FHRV9UQVJOQU1FQC1AVkVS U0lPTkAudGFyLmd6IFwKKysJQFBBQ0tBR0VfVEFSTkFNRUAtQFZFUlNJT05ALnRhci5iejIKKysK Kyt1cGxvYWQtaHRtbDogZGlzdC1odG1sCisrCUBVUExPQURfQ09NTUFOREAgQFBBQ0tBR0VfVEFS TkFNRUAtaHRtbC1kb2MtQFZFUlNJT05ALnRhci5neiBcCisrCUBQQUNLQUdFX1RBUk5BTUVALWh0 bWwtZG9jLUBWRVJTSU9OQC50YXIuYnoyCisrCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv TWFrZWZpbGUuY29tbW9uIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5jb21tb24KKy0tLSBz b2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5jb21tb24JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUuY29tbW9uCTIwMDkt MDQtMTggMTc6MjA6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIgQEAKKytAU0VUX01B S0VACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKK2Rp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAv TWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5pbgkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmls ZS5pbgkyMDExLTAyLTA4IDIyOjM5OjU3LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw5MjAg QEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtl ZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQs IDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAz LCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sCisrIyBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9u IHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZp Y2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQg YnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNF VF9NQUtFQAorKworKworK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGly KS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKytw a2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhl Y2RpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFU SF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMg LW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxf c2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxM X0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9J TlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxf VU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6Cisr YnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NP TU1PTiA9IFJFQURNRSAkKGFtX19jb25maWd1cmVfZGVwcykgJChzcmNkaXIpL01ha2VmaWxlLmFt IFwKKysJJChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS9zb2NpLWNvbmZpZy5pbiBcCisr CSQoc3JjZGlyKS9zb2NpLnBjLmluICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uIFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgQVVUSE9SUyBDT1BZSU5HIENoYW5nZUxvZyBJTlNUQUxM IE5FV1MgXAorKwljb25maWcvY29uZmlnLmd1ZXNzIGNvbmZpZy9jb25maWcuc3ViIGNvbmZpZy9k ZXBjb21wIFwKKysJY29uZmlnL2luc3RhbGwtc2ggY29uZmlnL2x0bWFpbi5zaCBjb25maWcvbWlz c2luZworK3N1YmRpciA9IC4KKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00 CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9z dGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRv cHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0 fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9k ZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwK KysJJChBQ0xPQ0FMX000KQorK2FtX19DT05GSUdfRElTVENMRUFOX0ZJTEVTID0gY29uZmlnLnN0 YXR1cyBjb25maWcuY2FjaGUgY29uZmlnLmxvZyBcCisrIGNvbmZpZ3VyZS5saW5lbm8gY29uZmln LnN0YXR1cy5saW5lbm8KKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJ R19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9G SUxFUyA9IHNvY2ktY29uZmlnIHNvY2kucGMKKytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQor K2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNl ZCAnc3wufC58ZydgOworK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisrICAgICQoc3Jj ZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCisr ICAgICopIGY9JCRwOzsgXAorKyAgZXNhYzsKKythbV9fc3RyaXBfZGlyID0gZj1gZWNobyAkJHAg fCBzZWQgLWUgJ3N8Xi4qL3x8J2A7CisrYW1fX2luc3RhbGxfbWF4ID0gNDAKKythbV9fbm9iYXNl X3N0cmlwX3NldHVwID0gXAorKyAgc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQg J3MvW10uW14kJFxcKnxdL1xcXFwmL2cnYAorK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisrICBmb3Ig cCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJp cC98fCIKKythbV9fbm9iYXNlX2xpc3QgPSAkKGFtX19ub2Jhc2Vfc3RyaXBfc2V0dXApOyBcCisr ICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorKyAgc2VkICJz fCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10q JCQsXDEsJyB8IFwKKysgICQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiIgfSB7IGZpbGVz WyQkMl0gPSBmaWxlc1skJDJdICIgIiAkJDE7IFwKKysgICAgaWYgKCsrblskJDJdID09ICQoYW1f X2luc3RhbGxfbWF4KSkgXAorKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0g PSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKysgICAgRU5EIHsgZm9yIChkaXIgaW4gZmlsZXMp IHByaW50IGRpciwgZmlsZXNbZGlyXSB9JworK2FtX19iYXNlX2xpc3QgPSBcCisrICBzZWQgJyQk IU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorKyAgc2VkICck JCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJworK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RE SVIpJChiaW5kaXIpIiAiJChERVNURElSKSQobTRkYXRhZGlyKSIgXAorKwkiJChERVNURElSKSQo cGtnY29uZmlnZGlyKSIKKytTQ1JJUFRTID0gJChiaW5fU0NSSVBUUykKKytTT1VSQ0VTID0KKytE SVNUX1NPVVJDRVMgPQorK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1y ZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZl IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFs bC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZv LXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2 ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRp cnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJl Y3Vyc2l2ZQorK0RBVEEgPSAkKG00ZGF0YV9EQVRBKSAkKHBrZ2NvbmZpZ19EQVRBKQorK1JFQ1VS U0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2 ZQlcCisrICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisr QU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBc CisrCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFn cyBDVEFHUyBcCisrCWRpc3RkaXIgZGlzdCBkaXN0LWFsbCBkaXN0Y2hlY2sKKytFVEFHUyA9IGV0 YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklM RVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9E SVNUKQorK2Rpc3RkaXIgPSAkKFBBQ0tBR0UpLSQoVkVSU0lPTikKKyt0b3BfZGlzdGRpciA9ICQo ZGlzdGRpcikKKythbV9fcmVtb3ZlX2Rpc3RkaXIgPSBcCisrICB7IHRlc3QgISAtZCAiJChkaXN0 ZGlyKSIgXAorKyAgICB8fCB7IGZpbmQgIiQoZGlzdGRpcikiIC10eXBlIGQgISAtcGVybSAtMjAw IC1leGVjIGNobW9kIHUrdyB7fSAnOycgXAorKyAgICAgICAgICYmIHJtIC1mciAiJChkaXN0ZGly KSI7IH07IH0KKythbV9fcmVsYXRpdml6ZSA9IFwKKysgIGRpcjA9YHB3ZGA7IFwKKysgIHNlZF9m aXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAorKyAgc2VkX3Jlc3Q9J3MsXlteL10qLyos LCc7IFwKKysgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCisrICBzZWRfYnV0 bGFzdD0ncywvKlteL10qJCQsLCc7IFwKKysgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwK KysgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysg ICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKKysgICAgICBpZiB0ZXN0ICIkJGZp cnN0IiA9ICIuLiI7IHRoZW4gXAorKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAt ZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCisrICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAi IHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKKysgICAgICBlbHNlIFwKKysgICAgICAgIGZp cnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorKyAgICAgICAg aWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKKysgICAgICAgICAgZGlyMj1g ZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICAgICAgICBlbHNlIFwK KysgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAorKyAgICAgICAgZmk7IFwKKysgICAgICAg IGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCisrICAgICAgZmk7IFwKKysgICAgZmk7IFwKKysg ICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICBkb25l OyBcCisrICByZWxkaXI9IiQkZGlyMiIKKytESVNUX0FSQ0hJVkVTID0gJChkaXN0ZGlyKS50YXIu Z3ogJChkaXN0ZGlyKS50YXIuYnoyCisrR1pJUF9FTlYgPSAtLWJlc3QKKytkaXN0dW5pbnN0YWxs Y2hlY2tfbGlzdGZpbGVzID0gZmluZCAuIC10eXBlIGYgLXByaW50CisrZGlzdGNsZWFuY2hlY2tf bGlzdGZpbGVzID0gZmluZCAuIC10eXBlIGYgLXByaW50CisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAor K0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FV VE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBA QVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJ QiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NU X0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1T X0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfTVBJX0xJQiA9IEBCT09T VF9NUElfTElCQAorK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElC QAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJ QkAKKytCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJACisrQk9PU1RfUkVHRVhf TElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09T VF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxT X0xJQkAKKytCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9MSUJACisrQk9PU1RfVEhS RUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktf TElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBA Qk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklB TElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZM QUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQ UFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVO SVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJT SU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBA CisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZ R1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJA CisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9 IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQ ID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBH UkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRB QAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQg PSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RS SVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9 IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9 IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJ TkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBA TVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAorK01ZU1FMX0RJUlMg PSBATVlTUUxfRElSU0AKKytNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACisrTVlTUUxfVkVSU0lP TiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JK RFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JB Q0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JB Q0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJ T04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBA T1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFD S0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdF X1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9U QVJOQU1FQAorK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAorK1BBQ0tBR0VfVkVSU0lPTiA9 IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisr UEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxB R1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxf RElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RH UkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAK KytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAor K1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FM X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NU R1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAK KytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytW RVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNf c3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxk ZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFj X2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19j dF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2Rv dCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFy ID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGly QAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxk X2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9y ID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRh dGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29r QAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRp ciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhl Y19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMg PSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rf b3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAor K2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFs bF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBs aWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVk aXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJA CisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAK KytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zv cm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3Ni aW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0g QHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNj b25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZp eCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisr dG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRp cikgLUkkKHRvcF9zcmNkaXIpCisrQUNMT0NBTF9BTUZMQUdTID0gLUkgY29uZmlnCisrQVVUT01B S0VfT1BUSU9OUyA9IGRpc3QtYnppcDIKKysKKysjICBURVNUX0RJUiA9IHRlc3QKKytNQU5fRE9D X0RJUiA9IG1hbgorKworKyMgTWFpbnRhaW5hbmNlIGZpbGVzCisrTUFJTlRBSU5FUkNMRUFORklM RVMgPSBNYWtlZmlsZS5pbiBhY2xvY2FsLm00IGNvbmZpZ3VyZSBcCisrCQkJY29uZmlnLWguaW4g c2ljL3N0YW1wLWguaW4gYXV0b2dlbi5zaCBib290c3RyYXAKKysKKysKKysjRVhUUkFfRElTVF9G T1JfU09DSV9DT01QQVRJQklMSVRZID0gLl9jb25maWd1cmUgLl9NYWtlZmlsZSBjb250cmliCisr RVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gY29udHJpYgorK0VYVFJBX0RJU1Qg PSBNYWtlZmlsZS5jb21tb24gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpIEBQ QUNLQUdFQC5tNAorKworKyMgQnVpbGQgaW4gdGhlc2UgZGlyZWN0b3JpZXM6CisrU1VCRElSUyA9 IGJ1aWxkIEBQQUNLQUdFQCAkKE1BTl9ET0NfRElSKSBkb2MgJChURVNUX0RJUikKKysKKysjIENv bmZpZ3VyYXRpb24gaGVscGVycworK2Jpbl9TQ1JJUFRTID0gQFBBQ0tBR0VALWNvbmZpZworK3Br Z2NvbmZpZ2RpciA9ICQobGliZGlyKS9wa2djb25maWcKKytwa2djb25maWdfREFUQSA9IEBQQUNL QUdFQC5wYworK200ZGF0YWRpciA9ICQoZGF0YWRpcikvYWNsb2NhbAorK200ZGF0YV9EQVRBID0g QFBBQ0tBR0VALm00CisrYWxsOiBhbGwtcmVjdXJzaXZlCisrCisrLlNVRkZJWEVTOgorK2FtLS1y ZWZyZXNoOgorKwlAOgorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmls ZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykK KysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcykn IGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgZWNobyAnIGNkICQoc3JjZGlyKSAmJiAk KEFVVE9NQUtFKSAtLWdudSc7IFwKKysJICAgICAgJChhbV9fY2QpICQoc3JjZGlyKSAmJiAkKEFV VE9NQUtFKSAtLWdudSBcCisrCQkmJiBleGl0IDA7IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkg IGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9N QUtFKSAtLWdudSBNYWtlZmlsZSc7IFwKKysJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAor KwkgICQoQVVUT01BS0UpIC0tZ251IE1ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01h a2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0 dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBlY2hv ICcgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzJzsgXAorKwkgICAgJChTSEVMTCkgLi9jb25maWcu c3RhdHVzOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJ ICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAgJChh bV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25m aWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5E RU5DSUVTKQorKwkkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgLS1yZWNoZWNrCisrCisrJCh0b3Bf c3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJJChhbV9fY2QpICQo c3JjZGlyKSAmJiAkKEFVVE9DT05GKQorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200 X2RlcHMpCisrCSQoYW1fX2NkKSAkKHNyY2RpcikgJiYgJChBQ0xPQ0FMKSAkKEFDTE9DQUxfQU1G TEFHUykKKyskKGFtX19hY2xvY2FsX200X2RlcHMpOgorK3NvY2ktY29uZmlnOiAkKHRvcF9idWls ZGRpcikvY29uZmlnLnN0YXR1cyAkKHNyY2Rpcikvc29jaS1jb25maWcuaW4KKysJY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQAorK3NvY2kucGM6ICQodG9w X2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS9zb2NpLnBjLmluCisrCWNkICQodG9w X2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAKKytpbnN0YWxsLWJpblND UklQVFM6ICQoYmluX1NDUklQVFMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIk KGJpbmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGJpbmRpcikiCisrCUBsaXN0PSck KGJpbl9TQ1JJUFRTKSc7IHRlc3QgLW4gIiQoYmluZGlyKSIgfHwgbGlzdD07IFwKKysJZm9yIHAg aW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIk KHNyY2RpcikvIjsgZmk7IFwKKysJICBpZiB0ZXN0IC1mICIkJGQkJHAiOyB0aGVuIGVjaG8gIiQk ZCQkcCI7IGVjaG8gIiQkcCI7IGVsc2UgOjsgZmk7IFwKKysJZG9uZSB8IFwKKysJc2VkIC1lICdw O3MsLiovLCw7bicgXAorKwkgICAgLWUgJ2g7c3wuKnwufCcgXAorKwkgICAgLWUgJ3A7eDtzLC4q LywsOyQodHJhbnNmb3JtKScgfCBzZWQgJ047TjtOO3MsXG4sICxnJyB8IFwKKysJJChBV0spICdC RUdJTiB7IGZpbGVzWyIuIl0gPSAiIjsgZGlyc1siLiJdID0gMTsgfSBcCisrCSAgeyBkPSQkMzsg aWYgKGRpcnNbZF0gIT0gMSkgeyBwcmludCAiZCIsIGQ7IGRpcnNbZF0gPSAxIH0gXAorKwkgICAg aWYgKCQkMiA9PSAkJDQpIHsgZmlsZXNbZF0gPSBmaWxlc1tkXSAiICIgJCQxOyBcCisrCSAgICAg IGlmICgrK25bZF0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSB7IFwKKysJCXByaW50ICJmIiwgZCwg ZmlsZXNbZF07IG5bZF0gPSAwOyBmaWxlc1tkXSA9ICIiIH0gfSBcCisrCSAgICBlbHNlIHsgcHJp bnQgImYiLCBkICIvIiAkJDQsICQkMSB9IH0gXAorKwkgIEVORCB7IGZvciAoZCBpbiBmaWxlcykg cHJpbnQgImYiLCBkLCBmaWxlc1tkXSB9JyB8IFwKKysJd2hpbGUgcmVhZCB0eXBlIGRpciBmaWxl czsgZG8gXAorKwkgICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRoZW4gZGlyPTsgZWxzZSBkaXI9 LyQkZGlyOyBmaTsgXAorKwkgICAgIHRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorKwkgICAgICAg ZWNobyAiICQoSU5TVEFMTF9TQ1JJUFQpICQkZmlsZXMgJyQoREVTVERJUikkKGJpbmRpcikkJGRp ciciOyBcCisrCSAgICAgICAkKElOU1RBTExfU0NSSVBUKSAkJGZpbGVzICIkKERFU1RESVIpJChi aW5kaXIpJCRkaXIiIHx8IGV4aXQgJCQ/OyBcCisrCSAgICAgfSBcCisrCTsgZG9uZQorKworK3Vu aW5zdGFsbC1iaW5TQ1JJUFRTOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChi aW5fU0NSSVBUUyknOyB0ZXN0IC1uICIkKGJpbmRpcikiIHx8IGV4aXQgMDsgXAorKwlmaWxlcz1g Zm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgXAorKwkgICAgICAgc2VkIC1l ICdzLC4qLywsOyQodHJhbnNmb3JtKSdgOyBcCisrCXRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAw OyBcCisrCWVjaG8gIiAoIGNkICckKERFU1RESVIpJChiaW5kaXIpJyAmJiBybSAtZiIgJCRmaWxl cyAiKSI7IFwKKysJY2QgIiQoREVTVERJUikkKGJpbmRpcikiICYmIHJtIC1mICQkZmlsZXMKKysK Kyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6 CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKytkaXN0Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1m IGxpYnRvb2wgY29uZmlnLmx0CisraW5zdGFsbC1tNGRhdGFEQVRBOiAkKG00ZGF0YV9EQVRBKQor KwlAJChOT1JNQUxfSU5TVEFMTCkKKysJdGVzdCAteiAiJChtNGRhdGFkaXIpIiB8fCAkKE1LRElS X1ApICIkKERFU1RESVIpJChtNGRhdGFkaXIpIgorKwlAbGlzdD0nJChtNGRhdGFfREFUQSknOyB0 ZXN0IC1uICIkKG00ZGF0YWRpcikiIHx8IGxpc3Q9OyBcCisrCWZvciBwIGluICQkbGlzdDsgZG8g XAorKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZp OyBcCisrCSAgZWNobyAiJCRkJCRwIjsgXAorKwlkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwK KysJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorKwkgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRm aWxlcyAnJChERVNURElSKSQobTRkYXRhZGlyKSciOyBcCisrCSAgJChJTlNUQUxMX0RBVEEpICQk ZmlsZXMgIiQoREVTVERJUikkKG00ZGF0YWRpcikiIHx8IGV4aXQgJCQ/OyBcCisrCWRvbmUKKysK Kyt1bmluc3RhbGwtbTRkYXRhREFUQToKKysJQCQoTk9STUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9 JyQobTRkYXRhX0RBVEEpJzsgdGVzdCAtbiAiJChtNGRhdGFkaXIpIiB8fCBsaXN0PTsgXAorKwlm aWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICQkcDsgZG9uZSB8IHNlZCAtZSAnc3xeLiov fHwnYDsgXAorKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKKysJZWNobyAiICggY2Qg JyQoREVTVERJUikkKG00ZGF0YWRpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorKwljZCAi JChERVNURElSKSQobTRkYXRhZGlyKSIgJiYgcm0gLWYgJCRmaWxlcworK2luc3RhbGwtcGtnY29u ZmlnREFUQTogJChwa2djb25maWdfREFUQSkKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3Qg LXogIiQocGtnY29uZmlnZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnY29uZmln ZGlyKSIKKysJQGxpc3Q9JyQocGtnY29uZmlnX0RBVEEpJzsgdGVzdCAtbiAiJChwa2djb25maWdk aXIpIiB8fCBsaXN0PTsgXAorKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0IC1m ICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorKwkgIGVjaG8gIiQk ZCQkcCI7IFwKKysJZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisrCXdoaWxlIHJlYWQgZmls ZXM7IGRvIFwKKysJICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgJyQoREVTVERJUikk KHBrZ2NvbmZpZ2RpciknIjsgXAorKwkgICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICIkKERFU1RE SVIpJChwa2djb25maWdkaXIpIiB8fCBleGl0ICQkPzsgXAorKwlkb25lCisrCisrdW5pbnN0YWxs LXBrZ2NvbmZpZ0RBVEE6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBsaXN0PSckKHBrZ2Nv bmZpZ19EQVRBKSc7IHRlc3QgLW4gIiQocGtnY29uZmlnZGlyKSIgfHwgbGlzdD07IFwKKysJZmls ZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8 J2A7IFwKKysJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhpdCAwOyBcCisrCWVjaG8gIiAoIGNkICck KERFU1RESVIpJChwa2djb25maWdkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKysJY2Qg IiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiICYmIHJtIC1mICQkZmlsZXMKKysKKysjIFRoaXMg ZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNh biBjZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0 aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxl czogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUg aXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAo d2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91 IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMg b24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBm YWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwK KysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikg ZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vl bj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1h a2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAi LiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQk dGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7 IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlk b25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCisrCSAgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7IHRlc3Qg LXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKysJQGZhaWw9IGZh aWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNh c2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29t PSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBc CisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSop IGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7 IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAg aWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1 YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7IFwK KysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3ViZGly IGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsg XAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90YXJn ZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRh cmdldCI7IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsg XAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKKyt0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0n JChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJk aXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwg KCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwK KysJZG9uZQorKworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklM RVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUykn OyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIk JGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBk b25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwK KysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsg fTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0 YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMp IFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwlzZXQgeDsgXAorKwloZXJlPWBwd2RgOyBc CisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+ JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVt cHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAor KwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJk aXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBl bHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgc2V0ICIk JEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZpOyBc CisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkg PSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCisrCXNoaWZ0OyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJH UykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8 IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKysJ ICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1Mp IFwKKysJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKysJICBlbHNlIFwKKysJICAgICQoRVRBR1Mp ICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAg JCR1bmlxdWU7IFwKKysJICBmaTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiBjdGFn cy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBc CisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBk byBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChz cmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBd ID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZv ciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJH UykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZM QUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJl PWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmICQoYW1fX2NkKSAk KHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisr CisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBH UEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCSQoYW1fX3JlbW92ZV9kaXN0 ZGlyKQorKwl0ZXN0IC1kICIkKGRpc3RkaXIpIiB8fCBta2RpciAiJChkaXN0ZGlyKSIKKysJQHNy Y2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cn YDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10u W14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0 X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkg IHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNy Y2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMg aW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkg ICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAg c29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8g XAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxz ZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAor KwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJ ICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisrCSAgICAgIGZpbmQg IiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3 eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmls ZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtZnBSICQoc3Jj ZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgICAgIGZpbmQg IiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3 eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0 ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYgIiQoZGlz dGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQk ZmlsZSIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwlAbGlzdD0n JChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0 ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGly KS8kJHN1YmRpciIgXAorKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIg XAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwlAbGlzdD0nJChESVNU X1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChk aXN0ZGlyKS8kJHN1YmRpciI7IFwKKysJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisrCSAgICBu ZXdfZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0b3Bf ZGlzdGRpcikiOyBcCisrCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorKwkgICAgbmV3X3RvcF9k aXN0ZGlyPSQkcmVsZGlyOyBcCisrCSAgICBlY2hvICIgKGNkICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgZGlzdGRpcj0i JCRuZXdfZGlzdGRpciIgXFwiOyBcCisrCSAgICBlY2hvICIgICAgIGFtX19yZW1vdmVfZGlzdGRp cj06IGFtX19za2lwX2xlbmd0aF9jaGVjaz06IGFtX19za2lwX21vZGVfZml4PTogZGlzdGRpciki OyBcCisrCSAgICAoJChhbV9fY2QpICQkc3ViZGlyICYmIFwKKysJICAgICAgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgXAorKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIg XAorKwkgICAgICAgIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFwKKysJCWFtX19yZW1vdmVfZGlz dGRpcj06IFwKKysJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKKysJCWFtX19za2lwX21vZGVf Zml4PTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwKKysJICAgICAgfHwgZXhpdCAxOyBcCisrCSAg Zmk7IFwKKysJZG9uZQorKwktdGVzdCAtbiAiJChhbV9fc2tpcF9tb2RlX2ZpeCkiIFwKKysJfHwg ZmluZCAiJChkaXN0ZGlyKSIgLXR5cGUgZCAhIC1wZXJtIC03NTUgXAorKwkJLWV4ZWMgY2htb2Qg dStyd3gsZ28rcngge30gXDsgLW8gXAorKwkgICEgLXR5cGUgZCAhIC1wZXJtIC00NDQgLWxpbmtz IDEgLWV4ZWMgY2htb2QgYStyIHt9IFw7IC1vIFwKKysJICAhIC10eXBlIGQgISAtcGVybSAtNDAw IC1leGVjIGNobW9kIGErciB7fSBcOyAtbyBcCisrCSAgISAtdHlwZSBkICEgLXBlcm0gLTQ0NCAt ZXhlYyAkKGluc3RhbGxfc2gpIC1jIC1tIGErciB7fSB7fSBcOyBcCisrCXx8IGNobW9kIC1SIGEr ciAiJChkaXN0ZGlyKSIKKytkaXN0LWd6aXA6IGRpc3RkaXIKKysJdGFyZGlyPSQoZGlzdGRpcikg JiYgJChhbV9fdGFyKSB8IEdaSVA9JChHWklQX0VOVikgZ3ppcCAtYyA+JChkaXN0ZGlyKS50YXIu Z3oKKysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisrZGlzdC1iemlwMjogZGlzdGRpcgorKwl0YXJk aXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgYnppcDIgLTkgLWMgPiQoZGlzdGRpcikudGFy LmJ6MgorKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKKysKKytkaXN0LWx6bWE6IGRpc3RkaXIKKysJ dGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGx6bWEgLTkgLWMgPiQoZGlzdGRpciku dGFyLmx6bWEKKysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisrCisrZGlzdC14ejogZGlzdGRpcgor Kwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgeHogLWMgPiQoZGlzdGRpcikudGFy Lnh6CisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorKworK2Rpc3QtdGFyWjogZGlzdGRpcgorKwl0 YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgY29tcHJlc3MgLWMgPiQoZGlzdGRpciku dGFyLloKKysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisrCisrZGlzdC1zaGFyOiBkaXN0ZGlyCisr CXNoYXIgJChkaXN0ZGlyKSB8IEdaSVA9JChHWklQX0VOVikgZ3ppcCAtYyA+JChkaXN0ZGlyKS5z aGFyLmd6CisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorKworK2Rpc3QtemlwOiBkaXN0ZGlyCisr CS1ybSAtZiAkKGRpc3RkaXIpLnppcAorKwl6aXAgLXJxICQoZGlzdGRpcikuemlwICQoZGlzdGRp cikKKysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisrCisrZGlzdCBkaXN0LWFsbDogZGlzdGRpcgor Kwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgR1pJUD0kKEdaSVBfRU5WKSBnemlw IC1jID4kKGRpc3RkaXIpLnRhci5negorKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIp IHwgYnppcDIgLTkgLWMgPiQoZGlzdGRpcikudGFyLmJ6MgorKwkkKGFtX19yZW1vdmVfZGlzdGRp cikKKysKKysjIFRoaXMgdGFyZ2V0IHVudGFycyB0aGUgZGlzdCBmaWxlIGFuZCB0cmllcyBhIFZQ QVRIIGNvbmZpZ3VyYXRpb24uICBUaGVuCisrIyBpdCBndWFyYW50ZWVzIHRoYXQgdGhlIGRpc3Ry aWJ1dGlvbiBpcyBzZWxmLWNvbnRhaW5lZCBieSBtYWtpbmcgYW5vdGhlcgorKyMgdGFyZmlsZS4K KytkaXN0Y2hlY2s6IGRpc3QKKysJY2FzZSAnJChESVNUX0FSQ0hJVkVTKScgaW4gXAorKwkqLnRh ci5neiopIFwKKysJICBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWRjICQoZGlzdGRpcikudGFyLmd6 IHwgJChhbV9fdW50YXIpIDs7XAorKwkqLnRhci5iejIqKSBcCisrCSAgYnppcDIgLWRjICQoZGlz dGRpcikudGFyLmJ6MiB8ICQoYW1fX3VudGFyKSA7O1wKKysJKi50YXIubHptYSopIFwKKysJICBs em1hIC1kYyAkKGRpc3RkaXIpLnRhci5sem1hIHwgJChhbV9fdW50YXIpIDs7XAorKwkqLnRhci54 eiopIFwKKysJICB4eiAtZGMgJChkaXN0ZGlyKS50YXIueHogfCAkKGFtX191bnRhcikgOztcCisr CSoudGFyLloqKSBcCisrCSAgdW5jb21wcmVzcyAtYyAkKGRpc3RkaXIpLnRhci5aIHwgJChhbV9f dW50YXIpIDs7XAorKwkqLnNoYXIuZ3oqKSBcCisrCSAgR1pJUD0kKEdaSVBfRU5WKSBnemlwIC1k YyAkKGRpc3RkaXIpLnNoYXIuZ3ogfCB1bnNoYXIgOztcCisrCSouemlwKikgXAorKwkgIHVuemlw ICQoZGlzdGRpcikuemlwIDs7XAorKwllc2FjCisrCWNobW9kIC1SIGEtdyAkKGRpc3RkaXIpOyBj aG1vZCBhK3cgJChkaXN0ZGlyKQorKwlta2RpciAkKGRpc3RkaXIpL19idWlsZAorKwlta2RpciAk KGRpc3RkaXIpL19pbnN0CisrCWNobW9kIGEtdyAkKGRpc3RkaXIpCisrCXRlc3QgLWQgJChkaXN0 ZGlyKS9fYnVpbGQgfHwgZXhpdCAwOyBcCisrCWRjX2luc3RhbGxfYmFzZT1gJChhbV9fY2QpICQo ZGlzdGRpcikvX2luc3QgJiYgcHdkIHwgc2VkIC1lICdzLF5bXjpcXC9dOltcXC9dLC8sJ2AgXAor KwkgICYmIGRjX2Rlc3RkaXI9IiQke1RNUERJUi0vdG1wfS9hbS1kYy0kJCQkLyIgXAorKwkgICYm IGFtX19jd2Q9YHB3ZGAgXAorKwkgICYmICQoYW1fX2NkKSAkKGRpc3RkaXIpL19idWlsZCBcCisr CSAgJiYgLi4vY29uZmlndXJlIC0tc3JjZGlyPS4uIC0tcHJlZml4PSIkJGRjX2luc3RhbGxfYmFz ZSIgXAorKwkgICAgJChESVNUQ0hFQ0tfQ09ORklHVVJFX0ZMQUdTKSBcCisrCSAgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgXAorKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGR2aSBc CisrCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY2hlY2sgXAorKwkgICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGluc3RhbGwgXAorKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGluc3RhbGxjaGVjayBcCisrCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdW5pbnN0YWxs IFwKKysJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkaXN0dW5pbnN0YWxsY2hlY2tfZGly PSIkJGRjX2luc3RhbGxfYmFzZSIgXAorKwkgICAgICAgIGRpc3R1bmluc3RhbGxjaGVjayBcCisr CSAgJiYgY2htb2QgLVIgYS13ICIkJGRjX2luc3RhbGxfYmFzZSIgXAorKwkgICYmICh7IFwKKysJ ICAgICAgIChjZCAuLi8uLiAmJiB1bWFzayAwNzcgJiYgbWtkaXIgIiQkZGNfZGVzdGRpciIpIFwK KysJICAgICAgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIERFU1RESVI9IiQkZGNfZGVzdGRp ciIgaW5zdGFsbCBcCisrCSAgICAgICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElS PSIkJGRjX2Rlc3RkaXIiIHVuaW5zdGFsbCBcCisrCSAgICAgICAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIFwKKysJICAgICAgICAgICAgZGlzdHVuaW5z dGFsbGNoZWNrX2Rpcj0iJCRkY19kZXN0ZGlyIiBkaXN0dW5pbnN0YWxsY2hlY2s7IFwKKysJICAg ICAgfSB8fCB7IHJtIC1yZiAiJCRkY19kZXN0ZGlyIjsgZXhpdCAxOyB9KSBcCisrCSAgJiYgcm0g LXJmICIkJGRjX2Rlc3RkaXIiIFwKKysJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkaXN0 IFwKKysJICAmJiBybSAtcmYgJChESVNUX0FSQ0hJVkVTKSBcCisrCSAgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgZGlzdGNsZWFuY2hlY2sgXAorKwkgICYmIGNkICIkJGFtX19jd2QiIFwKKysJ ICB8fCBleGl0IDEKKysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisrCUAoZWNobyAiJChkaXN0ZGly KSBhcmNoaXZlcyByZWFkeSBmb3IgZGlzdHJpYnV0aW9uOiAiOyBcCisrCSAgbGlzdD0nJChESVNU X0FSQ0hJVkVTKSc7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAkJGk7IGRvbmUpIHwgXAorKwkg IHNlZCAtZSAxaCAtZSAxcy8uLz0vZyAtZSAxcCAtZSAxeCAtZSAnJCRwJyAtZSAnJCR4JworK2Rp c3R1bmluc3RhbGxjaGVjazoKKysJQCQoYW1fX2NkKSAnJChkaXN0dW5pbnN0YWxsY2hlY2tfZGly KScgXAorKwkmJiB0ZXN0IGAkKGRpc3R1bmluc3RhbGxjaGVja19saXN0ZmlsZXMpIHwgd2MgLWxg IC1sZSAxIFwKKysJICAgfHwgeyBlY2hvICJFUlJPUjogZmlsZXMgbGVmdCBhZnRlciB1bmluc3Rh bGw6IiA7IFwKKysJICAgICAgICBpZiB0ZXN0IC1uICIkKERFU1RESVIpIjsgdGhlbiBcCisrCSAg ICAgICAgICBlY2hvICIgIChjaGVjayBERVNURElSIHN1cHBvcnQpIjsgXAorKwkgICAgICAgIGZp IDsgXAorKwkgICAgICAgICQoZGlzdHVuaW5zdGFsbGNoZWNrX2xpc3RmaWxlcykgOyBcCisrCSAg ICAgICAgZXhpdCAxOyB9ID4mMgorK2Rpc3RjbGVhbmNoZWNrOiBkaXN0Y2xlYW4KKysJQGlmIHRl c3QgJyQoc3JjZGlyKScgPSAuIDsgdGhlbiBcCisrCSAgZWNobyAiRVJST1I6IGRpc3RjbGVhbmNo ZWNrIGNhbiBvbmx5IHJ1biBmcm9tIGEgVlBBVEggYnVpbGQiIDsgXAorKwkgIGV4aXQgMSA7IFwK KysJZmkKKysJQHRlc3QgYCQoZGlzdGNsZWFuY2hlY2tfbGlzdGZpbGVzKSB8IHdjIC1sYCAtZXEg MCBcCisrCSAgfHwgeyBlY2hvICJFUlJPUjogZmlsZXMgbGVmdCBpbiBidWlsZCBkaXJlY3Rvcnkg YWZ0ZXIgZGlzdGNsZWFuOiIgOyBcCisrCSAgICAgICAkKGRpc3RjbGVhbmNoZWNrX2xpc3RmaWxl cykgOyBcCisrCSAgICAgICBleGl0IDE7IH0gPiYyCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNr OiBjaGVjay1yZWN1cnNpdmUKKythbGwtYW06IE1ha2VmaWxlICQoU0NSSVBUUykgJChEQVRBKQor K2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKKytpbnN0YWxsZGlycy1hbToKKysJ Zm9yIGRpciBpbiAiJChERVNURElSKSQoYmluZGlyKSIgIiQoREVTVERJUikkKG00ZGF0YWRpciki ICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIjsgZG8gXAorKwkgIHRlc3QgLXogIiQkZGlyIiB8 fCAkKE1LRElSX1ApICIkJGRpciI7IFwKKysJZG9uZQorK2luc3RhbGw6IGluc3RhbGwtcmVjdXJz aXZlCisraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCisraW5zdGFsbC1kYXRh OiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZl CisrCisraW5zdGFsbC1hbTogYWxsLWFtCisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0 YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hl Y2stcmVjdXJzaXZlCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykg SU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxs X3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFH PS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExf UFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4t Z2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwkt dGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9G SUxFUykKKysJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFO X1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisrCisr bWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVu ZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRo YXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQo TUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQor K2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVh bi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJz aXZlCisrCS1ybSAtZiAkKGFtX19DT05GSUdfRElTVENMRUFOX0ZJTEVTKQorKwktcm0gLWYgTWFr ZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVh bi1saWJ0b29sIFwKKysJZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysK KytkdmktYW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytodG1sLWFtOgorKworK2lu Zm86IGluZm8tcmVjdXJzaXZlCisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06IGlu c3RhbGwtbTRkYXRhREFUQSBpbnN0YWxsLXBrZ2NvbmZpZ0RBVEEKKysKKytpbnN0YWxsLWR2aTog aW5zdGFsbC1kdmktcmVjdXJzaXZlCisrCisraW5zdGFsbC1kdmktYW06CisrCisraW5zdGFsbC1l eGVjLWFtOiBpbnN0YWxsLWJpblNDUklQVFMKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRt bC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWh0bWwtYW06CisrCisraW5zdGFsbC1pbmZvOiBpbnN0 YWxsLWluZm8tcmVjdXJzaXZlCisrCisraW5zdGFsbC1pbmZvLWFtOgorKworK2luc3RhbGwtbWFu OgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBk Zi1hbToKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGwt cHMtYW06CisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50 YWluZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiAkKGFtX19DT05GSUdfRElTVENMRUFOX0ZJ TEVTKQorKwktcm0gLXJmICQodG9wX3NyY2RpcikvYXV0b200dGUuY2FjaGUKKysJLXJtIC1mIE1h a2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xl YW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKKysKKytt b3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCisr CisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1cnNpdmUK KysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1iaW5TQ1JJUFRTIHVuaW5z dGFsbC1sb2NhbCBcCisrCXVuaW5zdGFsbC1tNGRhdGFEQVRBIHVuaW5zdGFsbC1wa2djb25maWdE QVRBCisrCisrLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RB UkdFVFMpIGN0YWdzLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdz LXJlY3Vyc2l2ZQorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNV UlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxsLWFtIGFtLS1yZWZyZXNoIGNo ZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVhbi1saWJ0b29sIGN0YWdz IGN0YWdzLXJlY3Vyc2l2ZSBkaXN0IGRpc3QtYWxsIGRpc3QtYnppcDIgXAorKwlkaXN0LWd6aXAg ZGlzdC1sem1hIGRpc3Qtc2hhciBkaXN0LXRhclogZGlzdC14eiBkaXN0LXppcCBcCisrCWRpc3Rj aGVjayBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAorKwlk aXN0Y2xlYW4tdGFncyBkaXN0Y2xlYW5jaGVjayBkaXN0ZGlyIGRpc3R1bmluc3RhbGxjaGVjayBk dmkgXAorKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwt YW0gXAorKwlpbnN0YWxsLWJpblNDUklQVFMgaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBp bnN0YWxsLWR2aSBcCisrCWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMt YW0gaW5zdGFsbC1odG1sIFwKKysJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxs LWluZm8tYW0gXAorKwlpbnN0YWxsLW00ZGF0YURBVEEgaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYg aW5zdGFsbC1wZGYtYW0gXAorKwlpbnN0YWxsLXBrZ2NvbmZpZ0RBVEEgaW5zdGFsbC1wcyBpbnN0 YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgXAorKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFt IGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIFwKKysJbWFpbnRhaW5lci1jbGVhbiBtYWludGFp bmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorKwltb3N0bHljbGVhbi1nZW5lcmljIG1v c3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCisrCXRhZ3MgdGFncy1yZWN1 cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSBcCisrCXVuaW5zdGFsbC1iaW5TQ1JJUFRTIHVu aW5zdGFsbC1sb2NhbCB1bmluc3RhbGwtbTRkYXRhREFUQSBcCisrCXVuaW5zdGFsbC1wa2djb25m aWdEQVRBCisrCisrQFNFVF9NQUtFQAorKworKyMgVGFyZ2V0cworK3VuaW5zdGFsbC1sb2NhbDoK KysJcm0gLXJmICQoREVTVERJUikkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorKworK2Rpc3QtaHRt bDoKKysJJChNQUtFKSAtQyBkb2MgZGlzdC1odG1sCisrCisrc25hcHNob3Q6IHNuYXBzaG90LXNy YyBzbmFwc2hvdC1odG1sCisrCisrc25hcHNob3Qtc3JjOgorKwkkKE1BS0UpIGRpc3QgZGlzdGRp cj1AUEFDS0FHRV9UQVJOQU1FQC1gZGF0ZSArIiVZJW0lZCJgCisrCisrc25hcHNob3QtaHRtbDoK KysJJChNQUtFKSAtQyBkb2MgZGlzdC1odG1sIGh0bWxfdGFybmFtZT1AUEFDS0FHRV9UQVJOQU1F QC1odG1sLWRvYy1gZGF0ZSArIiVZJW0lZCJgCisrCisrdXBsb2FkOiB1cGxvYWQtc3JjIHVwbG9h ZC1odG1sCisrCisrdXBsb2FkLXNyYzogZGlzdAorKwlAVVBMT0FEX0NPTU1BTkRAIEBQQUNLQUdF X1RBUk5BTUVALUBWRVJTSU9OQC50YXIuZ3ogXAorKwlAUEFDS0FHRV9UQVJOQU1FQC1AVkVSU0lP TkAudGFyLmJ6MgorKworK3VwbG9hZC1odG1sOiBkaXN0LWh0bWwKKysJQFVQTE9BRF9DT01NQU5E QCBAUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1AVkVSU0lPTkAudGFyLmd6IFwKKysJQFBBQ0tB R0VfVEFSTkFNRUAtaHRtbC1kb2MtQFZFUlNJT05ALnRhci5iejIKKysKKysjIFRlbGwgdmVyc2lv bnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgor KyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4 Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9tYW4vTWFr ZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL21hbi9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL21hbi9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4vTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAx OTozNzowOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNCBAQAorKyMgTWFuIHBhZ2VzCisr bWFuX01BTlMgPSBzb2NpLWNvbmZpZy4xCisrCisrRVhUUkFfRElTVCA9ICQobWFuX01BTlMpCitk aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svbWFuL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJl cDMwMC9tYW4vTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9tYW4vTWFrZWZpbGUu aW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvbWFuL01ha2VmaWxlLmluCTIwMTEtMDItMDggMjI6Mzk6NTYuMDAwMDAwMDAwICswMTAw CitAQCAtMCwwICsxLDQ5MyBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtl IDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENv cHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAw MSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMg ZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5s aW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGgg b3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNl cnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUg ZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIg UFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIg PSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQ QUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJleGVjZGly ID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJT SU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0 YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1j CisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIg PSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUp CisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0g OgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5T VEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0 QAorK3N1YmRpciA9IG1hbgorK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQo c3JjZGlyKS9NYWtlZmlsZS5pbgorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwu bTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3Qu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9w b3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s dG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJl X2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykg XAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytD T05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xF QU5fRklMRVMgPQorK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CisrU09VUkNFUyA9CisrRElT VF9TT1VSQ0VTID0KKythbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQo c3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKKythbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4g XAorKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJp cC98fCJgOzsgXAorKyAgICAqKSBmPSQkcDs7IFwKKysgIGVzYWM7CisrYW1fX3N0cmlwX2RpciA9 IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworK2FtX19pbnN0YWxsX21heCA9IDQw CisrYW1fX25vYmFzZV9zdHJpcF9zZXR1cCA9IFwKKysgIHNyY2RpcnN0cmlwPWBlY2hvICIkKHNy Y2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKKythbV9fbm9iYXNlX3N0cmlw ID0gXAorKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkIC1lICJz fCQkc3JjZGlyc3RyaXAvfHwiCisrYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNlX3N0cmlw X3NldHVwKTsgXAorKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8 IFwKKysgIHNlZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAuKlwvLyFzLyAuKi8gLi87IHMs XCggLipcKS9bXi9dKiQkLFwxLCcgfCBcCisrICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9 ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCisrICAgIGlmICgrK25b JCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKysgICAgICB7IHByaW50ICQkMiwgZmlsZXNb JCQyXTsgblskJDJdID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBcCisrICAgIEVORCB7IGZvciAo ZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKKythbV9fYmFzZV9saXN0ID0g XAorKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJyB8 IFwKKysgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKKyttYW4xZGlyID0gJCht YW5kaXIpL21hbjEKKythbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQobWFuMWRpcikiCisr TlJPRkYgPSBucm9mZgorK01BTlMgPSAkKG1hbl9NQU5TKQorK0RJU1RGSUxFUyA9ICQoRElTVF9D T01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NB TCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0g QEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRP TUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9P U1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNU RU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBA Qk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1Rf TVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAorK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NU X01QSV9QWVRIT05fTElCQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJP R1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJA CisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFU SU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9 IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9M SUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRf VEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JP T1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIg PSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBD Q0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0g QENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRf Q09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNA CisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NY WENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0g QENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RF UERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1Q QklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBA RUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBA RkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJ T05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEg PSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisr SU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFN ID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxB R1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJ QlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRM SUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytN WVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElC QAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNA CisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJVCA9 IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JB Q0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09D SV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytP UkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9UT09M QAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9C VUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0Vf TkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5B TUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAorK1BB Q0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFU SF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisr UE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJT ID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9M REZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFO TElCID0gQFJBTkxJQkAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NI RUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklF REAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJ RURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9I RUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExP QURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19i dWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9 IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAor K2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3Rf RFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAor K2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19x dW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKyti aW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxk X2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NA CisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAK KytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlm Zl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5 Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhl Y19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0 QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKyto b3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRp ciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGlu Zm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29r QAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2Fs ZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK21h bmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBA b2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisr cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGly ID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3No YXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lz Y29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisr dG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0 b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorKworKyMgTWFuIHBhZ2Vz CisrbWFuX01BTlMgPSBzb2NpLWNvbmZpZy4xCisrRVhUUkFfRElTVCA9ICQobWFuX01BTlMpCisr YWxsOiBhbGwtYW0KKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChz cmNkaXIpL01ha2VmaWxlLmFtICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4g JD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICok JGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0 aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkg IGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9N QUtFKSAtLWdudSBtYW4vTWFrZWZpbGUnOyBcCisrCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYm IFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSBtYW4vTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2Vm aWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29u ZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJ ICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo U0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUp JzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1 cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQo dG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENP TkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3Vy ZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNs b2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgYW0tLXJlZnJlc2gKKyskKGFtX19hY2xvY2FsX200X2RlcHMpOgorKworK21vc3RseWNs ZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1y ZiAubGlicyBfbGlicworK2luc3RhbGwtbWFuMTogJChtYW5fTUFOUykKKysJQCQoTk9STUFMX0lO U1RBTEwpCisrCXRlc3QgLXogIiQobWFuMWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikk KG1hbjFkaXIpIgorKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW4xZGlyKSIgfHwgZXhpdCAwOyBc CisrCXsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCisrCWwyPSckKG1h bl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisrCSAgc2Vk IC1uICcvXC4xW2Etel0qJCQvcCc7IFwKKysJfSB8IHdoaWxlIHJlYWQgcDsgZG8gXAorKwkgIGlm IHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorKwkgIGVj aG8gIiQkZCQkcCI7IGVjaG8gIiQkcCI7IFwKKysJZG9uZSB8IFwKKysJc2VkIC1lICduO3MsLiov LCw7cDtoO3MsLipcLiwsO3MsXlteMV1bMC05YS16XSokJCwxLDt4JyBcCisrCSAgICAgIC1lICdz LFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJyB8IFwKKysJc2VkICdOO047 cyxcbiwgLGcnIHwgeyBcCisrCWxpc3Q9OyB3aGlsZSByZWFkIGZpbGUgYmFzZSBpbnN0OyBkbyBc CisrCSAgaWYgdGVzdCAiJCRiYXNlIiA9ICIkJGluc3QiOyB0aGVuIGxpc3Q9IiQkbGlzdCAkJGZp bGUiOyBlbHNlIFwKKysJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJyQkZmlsZScgJyQoREVT VERJUikkKG1hbjFkaXIpLyQkaW5zdCciOyBcCisrCSAgICAkKElOU1RBTExfREFUQSkgIiQkZmls ZSIgIiQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCIgfHwgZXhpdCAkJD87IFwKKysJICBmaTsg XAorKwlkb25lOyBcCisrCWZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZSB8ICQo YW1fX2Jhc2VfbGlzdCkgfCBcCisrCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKysJICB0ZXN0IC16 ICIkJGZpbGVzIiB8fCB7IFwKKysJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAn JChERVNURElSKSQobWFuMWRpciknIjsgXAorKwkgICAgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMg IiQoREVTVERJUikkKG1hbjFkaXIpIiB8fCBleGl0ICQkPzsgfTsgXAorKwlkb25lOyB9CisrCisr dW5pbnN0YWxsLW1hbjE6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBsaXN0PScnOyB0ZXN0 IC1uICIkKG1hbjFkaXIpIiB8fCBleGl0IDA7IFwKKysJZmlsZXM9YHsgZm9yIGkgaW4gJCRsaXN0 OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCisrCWwyPSckKG1hbl9NQU5TKSc7IGZvciBpIGluICQk bDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisrCSAgc2VkIC1uICcvXC4xW2Etel0qJCQvcCc7 IFwKKysJfSB8IHNlZCAtZSAncywuKi8sLDtoO3MsLipcLiwsO3MsXlteMV1bMC05YS16XSokJCwx LDt4JyBcCisrCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxu LC4sJ2A7IFwKKysJdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisrCSAgZWNobyAiICggY2QgJyQo REVTVERJUikkKG1hbjFkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKysJICBjZCAiJChE RVNURElSKSQobWFuMWRpcikiICYmIHJtIC1mICQkZmlsZXM7IH0KKyt0YWdzOiBUQUdTCisrVEFH UzoKKysKKytjdGFnczogQ1RBR1MKKytDVEFHUzoKKysKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxF UykKKysJQGxpc3Q9JyQoTUFOUyknOyBpZiB0ZXN0IC1uICIkJGxpc3QiOyB0aGVuIFwKKysJICBs aXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9 OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorKwkgICAgaWYgdGVzdCAtZiAiJCRkJCRwIjsg dGhlbiBlY2hvICIkJGQkJHAiOyBlbHNlIDo7IGZpOyBkb25lYDsgXAorKwkgIGlmIHRlc3QgLW4g IiQkbGlzdCIgJiYgXAorKwkgICAgZ3JlcCAnYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2Vu ZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgPi9kZXYvbnVsbDsgdGhlbiBcCisrCSAgICBlY2hvICJl cnJvcjogZm91bmQgbWFuIHBhZ2VzIGNvbnRhaW5pbmcgdGhlIFxgbWlzc2luZyBoZWxwMm1hbicg cmVwbGFjZW1lbnQgdGV4dDoiID4mMjsgXAorKwkgICAgZ3JlcCAtbCAnYWIgaGVscDJtYW4gaXMg cmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgfCBzZWQgJ3MvXi8gICAgICAg ICAvJyA+JjI7IFwKKysJICAgIGVjaG8gIiAgICAgICB0byBmaXggdGhlbSwgaW5zdGFsbCBoZWxw Mm1hbiwgcmVtb3ZlIGFuZCByZWdlbmVyYXRlIHRoZSBtYW4gcGFnZXM7IiA+JjI7IFwKKysJICAg IGVjaG8gIiAgICAgICB0eXBpY2FsbHkgXGBtYWtlIG1haW50YWluZXItY2xlYW4nIHdpbGwgcmVt b3ZlIHRoZW0iID4mMjsgXAorKwkgICAgZXhpdCAxOyBcCisrCSAgZWxzZSA6OyBmaTsgXAorKwll bHNlIDo7IGZpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2Rp cikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxF UyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmls ZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAg ICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNh c2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9m aWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQk LCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAk JGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmls ZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQv JCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1te L10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4g XAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAg LWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1k ICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAg ICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsg XAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAg LWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQk ZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAg ICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmls ZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisr CWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtl ZmlsZSAkKE1BTlMpCisraW5zdGFsbGRpcnM6CisrCWZvciBkaXIgaW4gIiQoREVTVERJUikkKG1h bjFkaXIpIjsgZG8gXAorKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7 IFwKKysJZG9uZQorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwt ZXhlYy1hbQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisrdW5pbnN0YWxsOiB1bmlu c3RhbGwtYW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGlu c3RhbGxjaGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFs bF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxB Rz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxM X1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFu LWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJ LXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5f RklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVB Tl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorKwor K21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRl bmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0 aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrY2xlYW46IGNsZWFu LWFtCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVh bi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rp c3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMKKysKKytkdmk6IGR2aS1hbQor KworK2R2aS1hbToKKysKKytodG1sOiBodG1sLWFtCisrCisraHRtbC1hbToKKysKKytpbmZvOiBp bmZvLWFtCisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtbWFuCisr CisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisrCisraW5zdGFsbC1kdmktYW06CisrCisr aW5zdGFsbC1leGVjLWFtOgorKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCisrCisr aW5zdGFsbC1odG1sLWFtOgorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisrCisr aW5zdGFsbC1pbmZvLWFtOgorKworK2luc3RhbGwtbWFuOiBpbnN0YWxsLW1hbjEKKysKKytpbnN0 YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKysKKytpbnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxs LXBzOiBpbnN0YWxsLXBzLWFtCisrCisraW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2st YW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLWYg TWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5 Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3Bk ZjogcGRmLWFtCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1hbQorKworK3BzLWFtOgorKworK3Vu aW5zdGFsbC1hbTogdW5pbnN0YWxsLW1hbgorKworK3VuaW5zdGFsbC1tYW46IHVuaW5zdGFsbC1t YW4xCisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogYWxs IGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wg XAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGRp ciBkdmkgXAorKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3Rh bGwtYW0gXAorKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3Rh bGwtZHZpLWFtIFwKKysJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwg aW5zdGFsbC1odG1sLWFtIFwKKysJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxs LW1hbiBpbnN0YWxsLW1hbjEgXAorKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxs LXBzIGluc3RhbGwtcHMtYW0gXAorKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxs Y2hlY2stYW0gaW5zdGFsbGRpcnMgXAorKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xl YW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisrCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xl YW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKysJdW5pbnN0YWxsIHVuaW5zdGFsbC1h bSB1bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1tYW4xCisrCisrCisrIyBUZWxsIHZlcnNpb25zIFsz LjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90 aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRl ZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svbWFuL3NvY2ktY29u ZmlnLjEgc29jaS0zLjAuMF90cmVwMzAwL21hbi9zb2NpLWNvbmZpZy4xCistLS0gc29jaS0zLjAu MF80LXBhY2svbWFuL3NvY2ktY29uZmlnLjEJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL3NvY2ktY29uZmlnLjEJMjAwOS0wNC0x NiAxOTozNzowOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMzkgQEAKKysuVEggU09DSSAx ICIyOCBNYXJjaCAyMDA5IgorKy5TSCBOQU1FCisrc29jaS1jb25maWcgLSBzY3JpcHQgdG8gZ2V0 IHZlcnNpb24gbnVtYmVyIGFuZCBjb21waWxlciBmbGFncyBvZiB0aGUgaW5zdGFsbGVkIFNPQ0kg bGlicmFyeQorKy5TSCBTWU5PUFNJUworKy5CIHNvY2ktY29uZmlnCisrW1wtXC1wcmVmaXhdICBb XC1cLXZlcnNpb25dIFtcLVwtbGlic10gW1wtXC1jZmxhZ3NdCisrLlNIIERFU0NSSVBUSU9OCisr LlBQCisrXGZJc29jaS1jb25maWdcZlAgaXMgYSB0b29sIHRoYXQgaXMgdXNlZCB0byBjb25maWd1 cmUgdG8gZGV0ZXJtaW5lCisrdGhlIGNvbXBpbGVyIGFuZCBsaW5rZXIgZmxhZ3MgdGhhdCBzaG91 bGQgYmUgdXNlZCB0byBjb21waWxlCisrYW5kIGxpbmsgcHJvZ3JhbXMgdGhhdCB1c2UgXGZJU09D SVxmUC4gSXQgaXMgYWxzbyB1c2VkIGludGVybmFsbHkKKyt0byB0aGUgLm00IG1hY3JvcyBmb3Ig R05VIGF1dG9jb25mIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggXGZJU09DSVxmUC4KKysuCisrLlNI IE9QVElPTlMKKysuUFAKKytcZklzb2NpLWNvbmZpZ1xmUCBhY2NlcHRzIHRoZSBmb2xsb3dpbmcg b3B0aW9uczoKKysuVFAgOAorKy5CICBcLVwtdmVyc2lvbgorK1ByaW50IHRoZSBjdXJyZW50bHkg aW5zdGFsbGVkIHZlcnNpb24gb2YgXGZJU09DSVxmUCBvbiB0aGUgc3RhbmRhcmQgb3V0cHV0Lgor Ky5UUCA4CisrLkIgIFwtXC1saWJzCisrUHJpbnQgdGhlIGxpbmtlciBmbGFncyB0aGF0IGFyZSBu ZWNlc3NhcnkgdG8gbGluayBhIFxmSVNPQ0lcZlAgcHJvZ3JhbSwgd2l0aCBjYmxhcworKy5UUCA4 CisrLkIgIFwtXC1jZmxhZ3MKKytQcmludCB0aGUgY29tcGlsZXIgZmxhZ3MgdGhhdCBhcmUgbmVj ZXNzYXJ5IHRvIGNvbXBpbGUgYSBcZklTT0NJXGZQIHByb2dyYW0uCisrLlRQIDgKKysuQiAgXC1c LXByZWZpeAorK1Nob3cgdGhlIFNPQ0kgaW5zdGFsbGF0aW9uIHByZWZpeC4KKysuU0ggU0VFIEFM U08KKysuQlIgZ3RrLWNvbmZpZyAoMSksCisrLkJSIGdub21lLWNvbmZpZyAoMSkKKysuU0ggQ09Q WVJJR0hUCisrQ29weXJpZ2h0IFwoY28gIDIwMDkgRGVuaXMgQXJuYXVkCisrCisrUGVybWlzc2lv biB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBhbmQg aXRzCisrZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2UgYW5kIHdpdGhvdXQgZmVlIGlzIGhl cmVieSBncmFudGVkLAorK3Byb3ZpZGVkIHRoYXQgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug YXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQKKytib3RoIHRoYXQgY29weXJpZ2h0IG5vdGlj ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4KKytzdXBwb3J0aW5nIGRvY3Vt ZW50YXRpb24uCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9NYWtl ZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5hbQorLS0t IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9NYWtlZmlsZS5hbQkyMDA5LTA0LTI4IDIzOjE1OjE0LjAwMDAwMDAwMCArMDIwMAorQEAg LTAsMCArMSw5IEBACisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorKwor KyMjIFNvdXJjZSBkaXJlY3RvcnkKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxl LmluCisrCisrU1VCRElSUyA9IEBNWVNRTF9ESVJTQCBAUE9TVEdSRVNRTF9ESVJTQCBAT1JBQ0xF X0RJUlNACisrCisrRVhUUkFfRElTVCA9CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9N YWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUu aW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5pbgkyMDExLTAyLTA4IDIyOjM5OjU2LjAwMDAw MDAwMCArMDEwMAorQEAgLTAsMCArMSw2MTYgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBi eSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRA CisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTks IDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4 LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyBJbmMuCisrIyBUaGlzIE1ha2Vm aWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysj IGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQs CisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGlj ZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQ QVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAKKytw a2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNs dWRlZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtn bGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIk JHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFU QSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0 YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RB TExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1Rf SU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6Cisr UE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBs ZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2Rp cikvTWFrZWZpbGUuaW4gXAorKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRp ciA9IHNvY2kvYmFja2VuZHMKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00 CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9z dGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRv cHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0 fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9k ZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwK KysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09O RklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFO X0ZJTEVTID0KKytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorK1NPVVJDRVMgPQorK0RJU1Rf U09VUkNFUyA9CisrUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vy c2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5z dGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4 ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVj dXJzaXZlIFwKKysJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGlu c3RhbGwtcmVjdXJzaXZlIFwKKysJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1y ZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisrCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJz aXZlCisrUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xl YW4tcmVjdXJzaXZlCVwKKysgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1y ZWN1cnNpdmUKKytBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJl Y3Vyc2l2ZT0pIFwKKysJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFn cyBUQUdTIGN0YWdzIENUQUdTIFwKKysJZGlzdGRpcgorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9 IGN0YWdzCisrRElTVF9TVUJESVJTID0gJChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9D T01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrYW1fX3Jl bGF0aXZpemUgPSBcCisrICBkaXIwPWBwd2RgOyBcCisrICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpc KS8uKiQkLFwxLCc7IFwKKysgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCisrICBzZWRfbGFz dD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAorKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQk LCwnOyBcCisrICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCisrICAgIGZpcnN0PWBlY2hv ICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisrICAgIGlmIHRlc3QgIiQkZmly c3QiICE9ICIuIjsgdGhlbiBcCisrICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVu IFwKKysgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8i JCRkaXIyIjsgXAorKyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRf YnV0bGFzdCJgOyBcCisrICAgICAgZWxzZSBcCisrICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGly MiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysgICAgICAgIGlmIHRlc3QgIiQkZmlyc3Qy IiA9ICIkJGZpcnN0IjsgdGhlbiBcCisrICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBz ZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAgICAgICAgZWxzZSBcCisrICAgICAgICAgIGRpcjI9 Ii4uLyQkZGlyMiI7IFwKKysgICAgICAgIGZpOyBcCisrICAgICAgICBkaXIwPSIkJGRpcjAiLyIk JGZpcnN0IjsgXAorKyAgICAgIGZpOyBcCisrICAgIGZpOyBcCisrICAgIGRpcjE9YGVjaG8gIiQk ZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAgZG9uZTsgXAorKyAgcmVsZGlyPSIk JGRpcjIiCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFS QAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytB VVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09T VF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAor K0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lP U1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NU X0xJQlNACisrQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAorK0JPT1NUX01QSV9QWVRI T05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19M SUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9QWVRIT05fTElCID0gQEJP T1NUX1BZVEhPTl9MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytC T09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09T VF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9TWVNURU1fTElCID0g QEJPT1NUX1NZU1RFTV9MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElC QAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFN RVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VS SUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAor K0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQ QAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZM QUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9 IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytD WFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RF QAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVG UyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisr RFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9f TkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVF WFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAK KytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNU QUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFM TF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytM REZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AK KytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytM VExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1Ag PSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NfTElC ID0gQE1ZU1FMX0NfTElCQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MSUJT ID0gQE1ZU1FMX0xJQlNACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0g QE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9 IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxB R1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9P Q0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAor K09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tB R0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9O QU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AK KytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVVJMID0gQFBB Q0tBR0VfVVJMQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9T RVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9 IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisr UE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1Mg PSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FM X1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0g QFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09D SV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlT UUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURf Q09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1 aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJz X3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFi c190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19j dF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0g QGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1f X3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0g QGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxk X2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRf b3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRp ciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0 YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94 eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBA ZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tA CisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9 IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92 ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAK KytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4 X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJl eGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2Nh bHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29s ZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZp eCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9y bV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sg PSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9 IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0 YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3Rv cF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAor K0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrTUFJTlRB SU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorK1NVQkRJUlMgPSBATVlTUUxfRElSU0AgQFBP U1RHUkVTUUxfRElSU0AgQE9SQUNMRV9ESVJTQAorK0VYVFJBX0RJU1QgPSAKKythbGw6IGFsbC1y ZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNk aXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZp Z3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZp Z3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAg ICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsg XAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBj ZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvTWFrZWZp bGUnOyBcCisrCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAt LWdudSBzb2NpL2JhY2tlbmRzL01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2Vm aWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMK KysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisr CSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2Nv bmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAg IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIp LyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRp cikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVT X0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19j b25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVw cykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoCisrJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKKysKKyttb3N0bHljbGVhbi1saWJ0b29s OgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xp YnMKKysKKysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRl cGVuZGVudDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQg Z29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2Yg YG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBp ZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0 YXR1cycKKysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2Vu ZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUg ZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVf VEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRN QUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7 IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9u ZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJz aXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0 ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBs b2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFy Z2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQk ZmFpbGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhl biBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7 IFwKKysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRT KToKKysJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFH UzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkg ICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisr CWRvdF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWlu dGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9 JyQoU1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAor KwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCXJl dj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsg XAorKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0 IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisr CSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9j YWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJk aXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBl dmFsICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKKyt0YWdzLXJlY3Vy c2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisr CSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQk c3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBjdGFncyk7IFwKKysJZG9uZQorKworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChM SVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1Ap ICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAg ICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQk aTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9u ZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBm aWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRB R1MKKysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFH U19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwlzZXQgeDsgXAor KwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9u KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5j bHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9u PS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJE SVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwK KysJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdT IjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBk byBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChz cmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBd ID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZv ciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXNoaWZ0OyBcCisrCWlmIHRlc3Qg LXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAt biAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgIGlmIHRlc3QgJCQjIC1n dCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdT KSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKysJICBlbHNlIFwK KysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FS R1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBmaTsgXAorKwlmaQorK2N0YWdzOiBDVEFH UworK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1Nf REVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlzdD0nJChTT1VS Q0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9y IGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRp OyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdL KSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYg KG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3Qg LXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFH UykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1ZQorKwor K0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkg ICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FS R1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdT IEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBz cmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1td LlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlz dF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJ ICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3Bz cmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVz IGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJ ICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAg IHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRv IFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVs c2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwK KysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisr CSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5k ICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdSty d3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZp bGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNy Y2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5k ICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdSty d3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlz dGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRp c3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8k JGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9 JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRp cikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIi IFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElT VF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQo ZGlzdGRpcikvJCRzdWJkaXIiOyBcCisrCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorKwkgICAg bmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9w X2Rpc3RkaXIpIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld190b3Bf ZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9 IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAorKwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3Rk aXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIp IjsgXAorKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIi IFwKKysJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rp c3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisrCQlhbV9fc2tpcF9tb2Rl X2ZpeD06IFwKKysJICAgICAgICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkg IGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2 ZQorK2FsbC1hbTogTWFrZWZpbGUKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZl CisraW5zdGFsbGRpcnMtYW06CisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxs LWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0 YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxs LWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBp bnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUK KytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dS QU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0i JChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0 ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1T VFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKwor K2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENP TkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKwktdGVz dCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMp IiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKysKKyttYWludGFpbmVyLWNs ZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50 YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWly ZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xF QU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFu LXJlY3Vyc2l2ZQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9z dGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1m IE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0 Y2xlYW4tdGFncworKworK2R2aTogZHZpLXJlY3Vyc2l2ZQorKworK2R2aS1hbToKKysKKytodG1s OiBodG1sLXJlY3Vyc2l2ZQorKworK2h0bWwtYW06CisrCisraW5mbzogaW5mby1yZWN1cnNpdmUK KysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5z dGFsbC1kdmktcmVjdXJzaXZlCisrCisraW5zdGFsbC1kdmktYW06CisrCisraW5zdGFsbC1leGVj LWFtOgorKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3Rh bGwtaHRtbC1hbToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKysK KytpbnN0YWxsLWluZm8tYW06CisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGlu c3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcGRmLWFtOgorKworK2luc3RhbGwtcHM6 IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hl Y2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUK KysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1h aW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1 cnNpdmUKKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVh bi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBw cy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6ICQo UkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGN0YWdzLXJlY3Vy c2l2ZSBcCisrCWluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQorKworKy5Q SE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RB R1MgR1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVy aWMgY2xlYW4tbGlidG9vbCBcCisrCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlz dGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0 ZGlyIGR2aSBkdmktYW0gaHRtbCBcCisrCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5z dGFsbC1hbSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5z dGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKysJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRt bCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKysJaW5zdGFsbC1pbmZvLWFtIGluc3Rh bGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKKysJaW5zdGFsbC1wcyBpbnN0YWxs LXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKKysJaW5zdGFsbGNoZWNrLWFtIGlu c3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVy LWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3Rs eWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwK KysJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKworK0BTRVRfTUFLRUAKKysKKysjIFRlbGwgdmVy c2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVz LgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJl IGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL215c3FsL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9teXNxbC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAor KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmFtCTIw MDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDI2IEBACisrIyMg YmFja2VuZHMvbXlzcWwgc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtl ZmlsZS5jb21tb24KKytpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCisrCisrTUFJTlRBSU5F UkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK1NVQkRJUlMgPSAuIHRlc3QKKysKKytpZiBI QVZFX01ZU1FMCisrbGliX0xUTElCUkFSSUVTPSBsaWJzb2NpX215c3FsLmxhCisrCisrbGlic29j aV9teXNxbF9sYV9TT1VSQ0VTPSAkKGJja19teXNxbF9oX3NvdXJjZXMpICQoYmNrX215c3FsX2Nj X3NvdXJjZXMpIAorK2xpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MgPSAkKE1ZU1FMX0NGTEFHUykK KytsaWJzb2NpX215c3FsX2xhX0xJQkFERCA9CisrbGlic29jaV9teXNxbF9sYV9MREZMQUdTID0g XAorKwkkKEJPT1NUX0xJQlMpICQoQk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFN X09QVElPTlNfTElCKSBcCisrCS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lP TikKKysKKytwa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvc29jaS1teXNxbC5oCisrZW5kaWYKKytpZiBTT0NJX0hFQURFUlNfQlVSSUVECisrc29j aV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9teXNxbAorK2Vsc2UK Kytzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQorK2VuZGlmCisrcGtnaW5jbHVkZWRp ciA9ICQoc29jaV9pbmNsdWRlX2RpcikKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL215c3FsL01ha2VmaWxlLmJhc2ljCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9teXNxbC9NYWtlZmlsZS5iYXNpYwkyMDExLTAyLTA5IDAwOjMwOjMyLjU5OTkxNjM3 MyArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2Vm aWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCitAQCAtMSw5NyAr MCwwIEBACistIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhcmUgc3BlY2lmaWMgdG8gdGhpcyBi YWNrZW5kIGFuZCB0aGVpciBjb3JyZWN0CistIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIg ZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgorLQorLU1ZU1FM TElCRElSID0gLUwvdXNyL2xpYi9teXNxbAorLU1ZU1FMTElCUyA9IC1sbXlzcWxjbGllbnQgLWx6 CistTVlTUUxJTkNMVURFRElSID0gLUkvdXNyL2luY2x1ZGUvbXlzcWwKKy0KKy0jIFRoZSByZXN0 IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVuZGVudCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50 LgorLQorLUNPTVBJTEVSID0gZysrCistQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1s b25nLWxvbmcKKy1DWFhGTEFHU1NPID0gJHtDWFhGTEFHU30gLWZQSUMKKy1JTkNMVURFRElSUyA9 IC1JLi4vLi4vY29yZSAke01ZU1FMSU5DTFVERURJUn0KKy0KKy0KKy1PQkpFQ1RTID0gYmxvYi5v IGZhY3RvcnkubyByb3ctaWQubyBzZXNzaW9uLm8gc3RhbmRhcmQtaW50by10eXBlLm8gXAorLQlz dGFuZGFyZC11c2UtdHlwZS5vIHN0YXRlbWVudC5vIHZlY3Rvci1pbnRvLXR5cGUubyB2ZWN0b3It dXNlLXR5cGUubyBcCistCWNvbW1vbi5vCistCistCistT0JKRUNUU1NPID0gYmxvYi1zLm8gZmFj dG9yeS1zLm8gcm93LWlkLXMubyBzZXNzaW9uLXMubyBcCistCXN0YW5kYXJkLWludG8tdHlwZS1z Lm8gc3RhbmRhcmQtdXNlLXR5cGUtcy5vIHN0YXRlbWVudC1zLm8gXAorLQl2ZWN0b3ItaW50by10 eXBlLXMubyB2ZWN0b3ItdXNlLXR5cGUtcy5vIGNvbW1vbi1zLm8KKy0KKy0KKy1saWJzb2NpX215 c3FsLmEgOiAke09CSkVDVFN9CistCWFyIHJ2ICRAICQ/CistCXJtICoubworLQorLQorLWJsb2Iu byA6IGJsb2IuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJ UlN9CistCistY29tbW9uLm8gOiBjb21tb24uY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9CistCistZmFjdG9yeS5vIDogZmFjdG9yeS5jcHAKKy0JJHtD T01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1yb3ctaWQubyA6 IHJvdy1pZC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElS U30KKy0KKy1zZXNzaW9uLm8gOiBzZXNzaW9uLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NY WEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLWludG8tdHlwZS5vIDogc3RhbmRh cmQtaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xV REVESVJTfQorLQorLXN0YW5kYXJkLXVzZS10eXBlLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAK Ky0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zdGF0 ZW1lbnQubyA6IHN0YXRlbWVudC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30g JHtJTkNMVURFRElSU30KKy0KKy12ZWN0b3ItaW50by10eXBlLm8gOiB2ZWN0b3ItaW50by10eXBl LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQor LXZlY3Rvci11c2UtdHlwZS5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAt YyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXNoYXJlZCA6ICR7T0JKRUNUU1NP fQorLQkke0NPTVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfbXlzcWwuc28gJHtPQkpFQ1RTU099 CistCXJtICoubworLQorLWJsb2Itcy5vIDogYmxvYi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8g JEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLWNvbW1vbi1zLm8gOiBjb21t b24uY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURF RElSU30KKy0KKy1mYWN0b3J5LXMubyA6IGZhY3RvcnkuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1v ICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1yb3ctaWQtcy5vIDogcm93 LWlkLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVE RURJUlN9CistCistc2Vzc2lvbi1zLm8gOiBzZXNzaW9uLmNwcAorLQkke0NPTVBJTEVSfSAtYyAt byAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQtaW50by10 eXBlLXMubyA6IHN0YW5kYXJkLWludG8tdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAg JD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLXVzZS10eXBlLXMu byA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NY WEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistc3RhdGVtZW50LXMubyA6IHN0YXRlbWVudC5j cHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJT fQorLQorLXZlY3Rvci1pbnRvLXR5cGUtcy5vIDogdmVjdG9yLWludG8tdHlwZS5jcHAKKy0JJHtD T01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXZl Y3Rvci11c2UtdHlwZS1zLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1j IC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy0KKy1jbGVhbiA6Cist CXJtIC1mIGxpYnNvY2lfbXlzcWwuYSBsaWJzb2NpX215c3FsLnNvCitkaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNx bC9NYWtlZmlsZS5pbgkyMDExLTAyLTA4IDIyOjM5OjU2LjAwMDAwMDAwMCArMDEwMAorQEAgLTAs MCArMSw4OTcgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEg ZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQg KEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIs CisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sCisrIyBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29m dHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBw ZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhv dXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisr CisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBw ZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0Uu CisrCisrQFNFVF9NQUtFQAorKworKworK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0g JChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisr cGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRI PSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hf REFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChp bnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lO U1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BP U1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6 CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3Ry aXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoYW1fX3BrZ2luY2x1ZGVfSEVBREVSU19E SVNUKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAorKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChz cmNkaXIpL3NvdXJjZXMubWsgXAorKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK3N1 YmRpciA9IHNvY2kvYmFja2VuZHMvbXlzcWwKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9h Y2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4 X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2Nv bmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRF TkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gp IC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09O RklHX0NMRUFOX0ZJTEVTID0KKytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorK2FtX192cGF0 aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58 ZydgOworK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisrICAgICQoc3JjZGlyKS8qKSBm PWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCisrICAgICopIGY9 JCRwOzsgXAorKyAgZXNhYzsKKythbV9fc3RyaXBfZGlyID0gZj1gZWNobyAkJHAgfCBzZWQgLWUg J3N8Xi4qL3x8J2A7CisrYW1fX2luc3RhbGxfbWF4ID0gNDAKKythbV9fbm9iYXNlX3N0cmlwX3Nl dHVwID0gXAorKyAgc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14k JFxcKnxdL1xcXFwmL2cnYAorK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisrICBmb3IgcCBpbiAkJGxp c3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIKKyth bV9fbm9iYXNlX2xpc3QgPSAkKGFtX19ub2Jhc2Vfc3RyaXBfc2V0dXApOyBcCisrICBmb3IgcCBp biAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorKyAgc2VkICJzfCAkJHNyY2Rp cnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8 IFwKKysgICQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiIgfSB7IGZpbGVzWyQkMl0gPSBm aWxlc1skJDJdICIgIiAkJDE7IFwKKysgICAgaWYgKCsrblskJDJdID09ICQoYW1fX2luc3RhbGxf bWF4KSkgXAorKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxl c1skJDJdID0gIiIgfSB9IFwKKysgICAgRU5EIHsgZm9yIChkaXIgaW4gZmlsZXMpIHByaW50IGRp ciwgZmlsZXNbZGlyXSB9JworK2FtX19iYXNlX2xpc3QgPSBcCisrICBzZWQgJyQkIU47JCQhTjsk JCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorKyAgc2VkICckJCFOOyQkIU47 JCQhTjskJCFOO3MvXG4vIC9nJworK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChsaWJk aXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrTFRMSUJSQVJJRVMgPSAkKGxpYl9M VExJQlJBUklFUykKKytsaWJzb2NpX215c3FsX2xhX0RFUEVOREVOQ0lFUyA9CisrYW1fX2xpYnNv Y2lfbXlzcWxfbGFfU09VUkNFU19ESVNUID0gIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL2NvbW1vbi5oIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3NvY2ktbXlzcWwuaCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9i LmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwIFwK KysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwIFwKKysJJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAgXAorKwkkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCisrCSQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAorKwkkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCBcCisrCSQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCisrCSQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCisrYW1fX29iamVj dHNfMSA9CisrYW1fX29iamVjdHNfMiA9IGxpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbyBsaWJzb2Np X215c3FsX2xhLWNvbW1vbi5sbyBcCisrCWxpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbyBsaWJz b2NpX215c3FsX2xhLXJvdy1pZC5sbyBcCisrCWxpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5sbyBc CisrCWxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIFwKKysJbGlic29jaV9t eXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBcCisrCWxpYnNvY2lfbXlzcWxfbGEtc3RhdGVt ZW50LmxvIFwKKysJbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIFwKKysJbGli c29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8KKytASEFWRV9NWVNRTF9UUlVFQGFtX2xp YnNvY2lfbXlzcWxfbGFfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkgXAorK0BIQVZFX01ZU1FM X1RSVUVACSQoYW1fX29iamVjdHNfMikKKytsaWJzb2NpX215c3FsX2xhX09CSkVDVFMgPSAkKGFt X2xpYnNvY2lfbXlzcWxfbGFfT0JKRUNUUykKKytsaWJzb2NpX215c3FsX2xhX0xJTksgPSAkKExJ QlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAorKwkkKExJQlRPT0xGTEFHUykg LS1tb2RlPWxpbmsgJChDWFhMRCkgXAorKwkkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIFwKKysJJChsaWJzb2NpX215c3FsX2xhX0xERkxBR1MpICQoTERGTEFHUykgLW8g JEAKKytASEFWRV9NWVNRTF9UUlVFQGFtX2xpYnNvY2lfbXlzcWxfbGFfcnBhdGggPSAtcnBhdGgg JChsaWJkaXIpCisrREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWls ZGRpcikvc29jaQorK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBj b21wCisrYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKKythbV9fbXYgPSBtdiAtZgorK0NY WENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp IFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFH UykKKytMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrQ1hYTEQgPSAkKENYWCkKKytDWFhMSU5L ID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSBcCisrCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQo QU1fTERGTEFHUykgXAorKwkkKExERkxBR1MpIC1vICRACisrQ09NUElMRSA9ICQoQ0MpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCisrCSQo Q1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKKytMVENPTVBJTEUgPSAkKExJQlRPT0wp IC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9 Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAor KwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCisrQ0NM RCA9ICQoQ0MpCisrTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQo Q0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAkQAorK1NPVVJDRVMgPSAk KGxpYnNvY2lfbXlzcWxfbGFfU09VUkNFUykKKytESVNUX1NPVVJDRVMgPSAkKGFtX19saWJzb2Np X215c3FsX2xhX1NPVVJDRVNfRElTVCkKKytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNp dmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZv LXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJz aXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGlu c3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1w cy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZl IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVu aW5zdGFsbC1yZWN1cnNpdmUKKythbV9fcGtnaW5jbHVkZV9IRUFERVJTX0RJU1QgPSAgXAorKwkk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCisrSEVBREVSUyA9 ICQocGtnaW5jbHVkZV9IRUFERVJTKQorK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5 Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCisrICBkaXN0Y2xlYW4tcmVjdXJzaXZl IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJF Q1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCisrCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdF VFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCisrCWRpc3RkaXIKKytFVEFH UyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytE SVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChF WFRSQV9ESVNUKQorK2FtX19yZWxhdGl2aXplID0gXAorKyAgZGlyMD1gcHdkYDsgXAorKyAgc2Vk X2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCisrICBzZWRfcmVzdD0ncyxeW14vXSov KiwsJzsgXAorKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKKysgIHNlZF9i dXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAorKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8g XAorKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAor KyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAorKyAgICAgIGlmIHRlc3QgIiQk Zmlyc3QiID0gIi4uIjsgdGhlbiBcCisrICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2Vk IC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKKysgICAgICAgIGRpcjA9YGVjaG8gIiQkZGly MCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAorKyAgICAgIGVsc2UgXAorKyAgICAgICAg Zmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisrICAgICAg ICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAorKyAgICAgICAgICBkaXIy PWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKysgICAgICAgIGVsc2Ug XAorKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCisrICAgICAgICBmaTsgXAorKyAgICAg ICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKKysgICAgICBmaTsgXAorKyAgICBmaTsgXAor KyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKysgIGRv bmU7IFwKKysgIHJlbGRpcj0iJCRkaXIyIgorK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVk ZV9kaXIpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFS QAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytB VVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09T VF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAor K0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lP U1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NU X0xJQlNACisrQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAorK0JPT1NUX01QSV9QWVRI T05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19M SUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9QWVRIT05fTElCID0gQEJP T1NUX1BZVEhPTl9MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytC T09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09T VF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9TWVNURU1fTElCID0g QEJPT1NUX1NZU1RFTV9MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElC QAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFN RVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VS SUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAor K0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQ QAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZM QUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9 IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytD WFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RF QAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVG UyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisr RFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9f TkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVF WFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAK KytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNU QUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFM TF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytM REZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AK KytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytM VExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1Ag PSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NfTElC ID0gQE1ZU1FMX0NfTElCQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MSUJT ID0gQE1ZU1FMX0xJQlNACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0g QE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9 IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxB R1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9P Q0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAor K09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tB R0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9O QU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AK KytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVVJMID0gQFBB Q0tBR0VfVVJMQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9T RVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9 IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisr UE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1Mg PSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FM X1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0g QFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09D SV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlT UUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURf Q09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1 aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJz X3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFi c190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19j dF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0g QGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1f X3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0g QGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxk X2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRf b3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRp ciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0 YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94 eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBA ZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tA CisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9 IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92 ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAK KytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4 X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJl eGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2Nh bHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29s ZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZp eCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9y bV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sg PSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9 IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0 YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3Rv cF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAor K0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrYmNrX215 c3FsX2hfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9jb21tb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvc29jaS1teXNxbC5oCisrCisrYmNrX215c3FsX2NjX3NvdXJjZXMgPSBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAgXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwIFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwIFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNl LXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9z dGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC92ZWN0b3ItaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorKworK01BSU5UQUlORVJDTEVBTkZJTEVT ID0gTWFrZWZpbGUuaW4KKytTVUJESVJTID0gLiB0ZXN0CisrQEhBVkVfTVlTUUxfVFJVRUBsaWJf TFRMSUJSQVJJRVMgPSBsaWJzb2NpX215c3FsLmxhCisrQEhBVkVfTVlTUUxfVFJVRUBsaWJzb2Np X215c3FsX2xhX1NPVVJDRVMgPSAkKGJja19teXNxbF9oX3NvdXJjZXMpICQoYmNrX215c3FsX2Nj X3NvdXJjZXMpIAorK0BIQVZFX01ZU1FMX1RSVUVAbGlic29jaV9teXNxbF9sYV9DWFhGTEFHUyA9 ICQoTVlTUUxfQ0ZMQUdTKQorK0BIQVZFX01ZU1FMX1RSVUVAbGlic29jaV9teXNxbF9sYV9MSUJB REQgPSAKKytASEFWRV9NWVNRTF9UUlVFQGxpYnNvY2lfbXlzcWxfbGFfTERGTEFHUyA9IFwKKytA SEFWRV9NWVNRTF9UUlVFQAkkKEJPT1NUX0xJQlMpICQoQk9PU1RfREFURV9USU1FX0xJQikgJChC T09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCisrQEhBVkVfTVlTUUxfVFJVRUAJLXZlcnNpb24t aW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorKworK0BIQVZFX01ZU1FMX1RSVUVAcGtn aW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2kt bXlzcWwuaAorK0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAk KGluY2x1ZGVkaXIpCisrQFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1ZGVfZGly ID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsCisrYWxsOiBhbGwtcmVjdXJzaXZl CisrCisrLlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagorKyQoc3JjZGly KS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJ QGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGlu IFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0 ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhp dCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGly KSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlJzsgXAor KwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgc29j aS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmls ZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisr CUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkg ICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8k QCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIp L2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19E RVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29u ZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMp CisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaAorKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisraW5zdGFsbC1saWJMVExJQlJBUklFUzog JChsaWJfTFRMSUJSQVJJRVMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKGxp YmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGxpYmRpcikiCisrCUBsaXN0PSckKGxp Yl9MVExJQlJBUklFUyknOyB0ZXN0IC1uICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBcCisrCWxpc3Qy PTsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gXAorKwkg ICAgbGlzdDI9IiQkbGlzdDIgJCRwIjsgXAorKwkgIGVsc2UgOjsgZmk7IFwKKysJZG9uZTsgXAor Kwl0ZXN0IC16ICIkJGxpc3QyIiB8fCB7IFwKKysJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJ TlNUQUxMX1NUUklQX0ZMQUcpICQkbGlzdDIgJyQoREVTVERJUikkKGxpYmRpciknIjsgXAorKwkg ICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5z dGFsbCAkKElOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICIkKERFU1RESVIp JChsaWJkaXIpIjsgXAorKwl9CisrCisrdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTOgorKwlAJChO T1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAi JChsaWJkaXIpIiB8fCBsaXN0PTsgXAorKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICAkKGFt X19zdHJpcF9kaXIpIFwKKysJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgJyQoREVTVERJUikkKGxpYmRp cikvJCRmJyI7IFwKKysJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBc CisrCWRvbmUKKysKKytjbGVhbi1saWJMVExJQlJBUklFUzoKKysJLXRlc3QgLXogIiQobGliX0xU TElCUkFSSUVTKSIgfHwgcm0gLWYgJChsaWJfTFRMSUJSQVJJRVMpCisrCUBsaXN0PSckKGxpYl9M VExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBkaXI9ImBlY2hvICQkcCB8 IHNlZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCisrCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8 IGRpcj0uOyBcCisrCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAor KwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKKysJZG9uZQorK2xpYnNvY2lfbXlz cWwubGE6ICQobGlic29jaV9teXNxbF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfbXlzcWxfbGFfREVQ RU5ERU5DSUVTKSAKKysJJChsaWJzb2NpX215c3FsX2xhX0xJTkspICQoYW1fbGlic29jaV9teXNx bF9sYV9ycGF0aCkgJChsaWJzb2NpX215c3FsX2xhX09CSkVDVFMpICQobGlic29jaV9teXNxbF9s YV9MSUJBREQpICQoTElCUykKKysKKyttb3N0bHljbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi4k KE9CSkVYVCkKKysKKytkaXN0Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICoudGFiLmMKKysKKytA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9t eXNxbF9sYS1ibG9iLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtY29tbW9uLlBsb0BhbV9fcXVv dGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xp YnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9f aW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXJvdy1pZC5Q bG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQo REVQRElSKS9saWJzb2NpX215c3FsX2xhLXNlc3Npb24uUGxvQGFtX19xdW90ZUAKKytAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9s YS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11 c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5QbG9AYW1fX3F1b3Rl QAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJz b2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJV RUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS12 ZWN0b3ItdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKKysKKysuY3BwLm86CisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5U cG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElS KS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAK KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKysuY3BwLm9iajoKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIp LyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9v bD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZ R1BBVEhfVykgJyQ8J2AKKysKKysuY3BwLmxvOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExU Q1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAg JDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChE RVBESVIpLyQqLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChM VENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrbGlic29jaV9teXNxbF9sYS1ibG9iLmxvOiAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLWJsb2IubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5UcG8gLWMgLW8gbGlic29j aV9teXNxbF9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9ibG9iLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikg JChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlz cWxfbGEtYmxvYi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwJyBvYmplY3Q9J2xp YnNvY2lfbXlzcWxfbGEtYmxvYi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAKKysK KytsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL2NvbW1vbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1NVCBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGli c29jaV9teXNxbF9sYS1jb21tb24uVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtY29tbW9uLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Nv bW1vbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJz b2NpX215c3FsX2xhLWNvbW1vbi5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtY29tbW9u LlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215 c3FsX2xhLWNvbW1vbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChM SUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtY29tbW9uLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAKKysK KytsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9mYWN0b3J5LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikv bGlic29jaV9teXNxbF9sYS1mYWN0b3J5LlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWZhY3Rv cnkubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5 LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL2ZhY3RvcnkuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJ UikvbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9s YS1mYWN0b3J5LlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAnIG9iamVjdD0n bGlic29jaV9teXNxbF9sYS1mYWN0b3J5LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1mYWN0b3J5Lmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9m YWN0b3J5LmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvOiAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1G ICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXJvdy1pZC5UcG8gLWMgLW8gbGlic29jaV9teXNx bF9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvcm93LWlkLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikg JChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLlRwbyAkKERFUERJUikvbGlic29jaV9t eXNxbF9sYS1yb3ctaWQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNx bF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1yb3ctaWQu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv cm93LWlkLmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5sbzogJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXNlc3Npb24uVHBvIC1jIC1vIGxpYnNvY2lf bXlzcWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChh bV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXNlc3Npb24uVHBvICQoREVQRElSKS9s aWJzb2NpX215c3FsX2xhLXNlc3Npb24uUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9u LmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG8nIGxpYnRvb2w9eWVzIEBB TURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJ Uj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3Fs X2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCisrCisrbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1p bnRvLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1p bnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQg bGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBE SVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2Np X215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5 cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29j aV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX215c3Fs X2xhLXN0YW5kYXJkLWludG8tdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJk LWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5 cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXAp IEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9z dGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrCisrbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2Ut dHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10 eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xp YnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxf bGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xh LXN0YW5kYXJkLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFy ZC11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNw cCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvJyBsaWJ0b29s PXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29j aV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBl LmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5UcG8gLWMgLW8gbGlic29j aV9teXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LlRwbyAk KERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQuUGxvCisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50Lmxv JyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMg LW8gbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcAorKworK2xpYnNv Y2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo TElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIC1N RCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBv IC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9y LWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElS KS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2Np X215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0 b3ItaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5 cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXAp IEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rv ci1pbnRvLXR5cGUuY3BwCisrCisrbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG86 ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9s YS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxf bGEtdmVjdG9yLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2Ut dHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rv ci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuVHBv ICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5QbG8KKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9s YS12ZWN0b3ItdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2Ut dHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJ LXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisr aW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzogJChwa2dpbmNsdWRlX0hFQURFUlMpCisrCUAkKE5P Uk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCAkKE1LRElSX1Ap ICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKKysJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFE RVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBcCisrCWZvciBwIGlu ICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChz cmNkaXIpLyI7IGZpOyBcCisrCSAgZWNobyAiJCRkJCRwIjsgXAorKwlkb25lIHwgJChhbV9fYmFz ZV9saXN0KSB8IFwKKysJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorKwkgIGVjaG8gIiAkKElOU1RB TExfSEVBREVSKSAkJGZpbGVzICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSciOyBcCisrCSAg JChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiIHx8 IGV4aXQgJCQ/OyBcCisrCWRvbmUKKysKKyt1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6Cisr CUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyB0 ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAorKwlmaWxlcz1gZm9yIHAgaW4g JCRsaXN0OyBkbyBlY2hvICQkcDsgZG9uZSB8IHNlZCAtZSAnc3xeLiovfHwnYDsgXAorKwl0ZXN0 IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKKysJZWNobyAiICggY2QgJyQoREVTVERJUikkKHBr Z2luY2x1ZGVkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKysJY2QgIiQoREVTVERJUikk KHBrZ2luY2x1ZGVkaXIpIiAmJiBybSAtZiAkJGZpbGVzCisrCisrIyBUaGlzIGRpcmVjdG9yeSdz IHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGlu dG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmls ZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQg b2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBg Y29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwg Y2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2Un KTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFr ZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlAZmFpbD0gZmFpbGNv bT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAk JGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2Zh aWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJ dGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJn ZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwK KysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7 IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7 IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQk bG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlp ZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwi CisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0 IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBc CisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMn OzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIk QCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJ U1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7 IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQk c3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYi OyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1g ZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsg ZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0 ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdl dC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisr CSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAm JiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwg KCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAor Kwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkg JCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisrCWRvbmUKKysK KytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0 PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlx dWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBl Y2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJ ICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVO RCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAor Kwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogdGFncy1yZWN1cnNp dmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRB R1NfRklMRVMpICQoTElTUCkKKysJc2V0IHg7IFwKKysJaGVyZT1gcHdkYDsgXAorKwlpZiAoJChF VEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwK KysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9Ljsg XAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKKysJICBlbXB0eV9m aXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAg ICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHNldCAiJCRAIiAiJCRpbmNs dWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBc CisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9u ZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisr CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAorKwlzaGlmdDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlx dWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRl bXB0eV9maXg7IFwKKysJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisrCSAgICAkKEVUQUdT KSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAg ICIkJEAiICQkdW5pcXVlOyBcCisrCSAgZWxzZSBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxB R1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAgICQkdW5pcXVlOyBc CisrCSAgZmk7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZl ICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdT X0ZJTEVTKSAkKExJU1ApCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAk KFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAg aWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7 IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVt cHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmls ZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUi IFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFH U19BUkdTKSBcCisrCSAgICAgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2Qp ICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGly KSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorKworK2Rpc3RjbGVh bi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwor KworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGly KSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBl Y2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJ bGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlz dDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlw L3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGly KS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1Ap IGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3Rk aXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwK KysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUg fHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkg IGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUi IHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGly KS8kJGZpbGUiOyB0aGVuIFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBl IGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAor KwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGly KTsgdGhlbiBcCisrCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQk ZGlyIiB8fCBleGl0IDE7IFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBl IGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAor KwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAor KwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8 IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBleGl0IDE7 IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCAk KE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJ ICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBc CisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAorKwkg ICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCisr CSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKKysJICAgICQoYW1f X3JlbGF0aXZpemUpOyBcCisrCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAg IGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3Rk aXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKKysJ ICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNr PTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKKysJICAgICgkKGFtX19jZCkgJCRz dWJkaXIgJiYgXAorKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisrCSAgICAgICAg dG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRu ZXdfZGlzdGRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorKwkJYW1fX3NraXBfbGVu Z3RoX2NoZWNrPTogXAorKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCisrCSAgICAgICAgZGlzdGRp cikgXAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06 IGFsbC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwtYW06IE1ha2VmaWxlICQoTFRM SUJSQVJJRVMpICQoSEVBREVSUykKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZl CisraW5zdGFsbGRpcnMtYW06CisrCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGxpYmRpcikiICIk KERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKKysJICB0ZXN0IC16ICIkJGRpciIgfHwg JChNS0RJUl9QKSAiJCRkaXIiOyBcCisrCWRvbmUKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2 ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0YTog aW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQor KworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFs bC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNr LXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElO U1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9z aF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0t cyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BS T0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdl bmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRl c3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklM RVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9W UEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorKworK21h aW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRl ZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0 IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1B SU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytj bGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4t bGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCisrCW1vc3RseWNsZWFuLWFtCisrCisrZGlz dGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJt IC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBk aXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJz aXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraHRtbC1hbToK KysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRh LWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwt ZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZHZpLWFtOgorKworK2luc3RhbGwtZXhlYy1hbTog aW5zdGFsbC1saWJMVExJQlJBUklFUworKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJl Y3Vyc2l2ZQorKworK2luc3RhbGwtaHRtbC1hbToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwt aW5mby1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm8tYW06CisrCisraW5zdGFsbC1tYW46Cisr CisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcGRmLWFt OgorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wcy1h bToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5l ci1jbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZp bGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1n ZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3Rs eWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwlt b3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgor KworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5z dGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKysuTUFL RTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3Mt cmVjdXJzaXZlIFwKKysJaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3MtcmVjdXJzaXZlCisr CisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRT KSBDVEFHUyBHVEFHUyBcCisrCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4t Z2VuZXJpYyBcCisrCWNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgY3RhZ3MgY3Rh Z3MtcmVjdXJzaXZlIFwKKysJZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1n ZW5lcmljIFwKKysJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkg ZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0g aW5zdGFsbC1kYXRhIFwKKysJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZp LWFtIGluc3RhbGwtZXhlYyBcCisrCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFs bC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisrCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLWxpYkxU TElCUkFSSUVTIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKKysJaW5zdGFsbC1wZGYtYW0gaW5z dGFsbC1wa2dpbmNsdWRlSEVBREVSUyBpbnN0YWxsLXBzIFwKKysJaW5zdGFsbC1wcy1hbSBpbnN0 YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gXAorKwlpbnN0YWxsZGlycyBp bnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5lci1jbGVhbi1nZW5l cmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUgXAorKwltb3N0bHljbGVhbi1nZW5l cmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCisrCXRhZ3MgdGFn cy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSBcCisrCXVuaW5zdGFsbC1saWJMVExJ QlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKytAU0VUX01BS0VACisrCisr IyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxs IHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVh c3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL215c3FsL3NvdXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL215c3FsL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zb3VyY2Vz Lm1rCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE0IEBA CisrYmNrX215c3FsX2hfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9jb21tb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCisrYmNrX215c3FsX2NjX3NvdXJjZXMgPSBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAgXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAgXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBl LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRh cmQtdXNlLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmFtCistLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmFtCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5hbQkyMDEwLTAxLTIzIDE0OjQzOjE4LjAwMDAw MDAwMCArMDEwMAorQEAgLTAsMCArMSwxOCBAQAorKyMjIGJhY2tlbmQvbXlzcWwvdGVzdCBzdWIt ZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1 ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2Vm aWxlLmluCisrCisraWYgUlVOX1RFU1RTCisrICBub2luc3RfUFJPR1JBTVMgPSB0ZXN0X215c3Fs CisrZW5kaWYKKysKKyt0ZXN0X215c3FsX1NPVVJDRVMgPSAkKG15c3FsX3Rlc3RfY2Nfc291cmNl cykKKyt0ZXN0X215c3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpCisrdGVzdF9teXNxbF9M REFERCA9CisrdGVzdF9teXNxbF9MREZMQUdTID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29yZS9s aWJzb2NpX2NvcmUubGEgLWxkbCBcCisrCQkkKHRvcF9idWlsZGRpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9saWJzb2NpX215c3FsLmxhIFwKKysJCSQoTVlTUUxfTElCUykKKysKKysjbm9kaXN0X3Br Z2luY2x1ZGVfSEVBREVSUyA9ICQobXlzcWxfdGVzdF9oX3NvdXJjZXMpCitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMK Ky0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUu YmFzaWMJMjAxMS0wMi0wOSAwMDozMDozMi41OTk5MTYzNzMgKzAxMDAKKysrKyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCitAQCAtMSwyMiArMCwwIEBACistIyBUaGUgZm9s bG93aW5nIHZhcmlhYmxlcyBhcmUgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCB0aGVpciBj b3JyZWN0CistIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVs IGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgorLQorLU1ZU1FMTElCRElSID0gLUwvdXNyL2xp Yi9teXNxbAorLU1ZU1FMTElCUyA9IC1sbXlzcWxjbGllbnQgLWx6CistTVlTUUxJTkNMVURFRElS ID0gLUkvdXNyL2luY2x1ZGUvbXlzcWwKKy0KKy0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBp cyBpbmRlcGVuZGVudCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgorLQorLUNPTVBJTEVSID0g ZysrCistQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKKy1JTkNMVURF RElSUyA9IC1JLi4gLUkuLi8uLi8uLi9jb3JlICR7TVlTUUxJTkNMVURFRElSfQorLUxJQkRJUlMg PSAtTC4uIC1MLi4vLi4vLi4vY29yZSAke01ZU1FMTElCRElSfQorLUxJQlMgPSAtbHNvY2lfY29y ZSAtbHNvY2lfbXlzcWwgLWxkbCAke01ZU1FMTElCU30KKy0KKy0KKy10ZXN0LW15c3FsIDogdGVz dC1teXNxbC5jcHAKKy0JJHtDT01QSUxFUn0gLW8gJEAgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURF RElSU30gJHtMSUJESVJTfSAke0xJQlN9CistCistCistY2xlYW4gOgorLQlybSAtZiB0ZXN0LW15 c3FsCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0 L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qv TWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rl c3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmluCTIw MTEtMDItMDggMjI6Mzk6NTYuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDU1NyBAQAorKyMg TWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFt LgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwg MTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQs IDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwK KysjIEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29w eSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25z LCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7 IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VA CisrCisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdF QAorK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9 ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFD S0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRP UikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytp bnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQg PSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0 cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6 CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwg PSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlw bGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChz cmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQoc3JjZGlyKS9z b3VyY2VzLm1rICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrQFJVTl9URVNUU19UUlVF QG5vaW5zdF9QUk9HUkFNUyA9IHRlc3RfbXlzcWwkKEVYRUVYVCkKKytzdWJkaXIgPSBzb2NpL2Jh Y2tlbmRzL215c3FsL3Rlc3QKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00 CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9z dGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRv cHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0 fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9k ZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwK KysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09O RklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFO X0ZJTEVTID0KKytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorK1BST0dSQU1TID0gJChub2lu c3RfUFJPR1JBTVMpCisrYW1fX29iamVjdHNfMSA9IHRlc3RfbXlzcWwtdGVzdC1teXNxbC4kKE9C SkVYVCkKKythbV90ZXN0X215c3FsX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpCisrdGVzdF9t eXNxbF9PQkpFQ1RTID0gJChhbV90ZXN0X215c3FsX09CSkVDVFMpCisrdGVzdF9teXNxbF9ERVBF TkRFTkNJRVMgPQorK3Rlc3RfbXlzcWxfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSBcCisrCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSAk KHRlc3RfbXlzcWxfQ1hYRkxBR1MpIFwKKysJJChDWFhGTEFHUykgJCh0ZXN0X215c3FsX0xERkxB R1MpICQoTERGTEFHUykgLW8gJEAKKytERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAt SSQodG9wX2J1aWxkZGlyKS9zb2NpCisrZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2Rpcikv Y29uZmlnL2RlcGNvbXAKKythbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworK2FtX19tdiA9 IG12IC1mCisrQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdT KSAkKENYWEZMQUdTKQorK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytDWFhMRCA9ICQoQ1hY KQorK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChD WFhGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytTT1VSQ0VTID0g JCh0ZXN0X215c3FsX1NPVVJDRVMpCisrRElTVF9TT1VSQ0VTID0gJCh0ZXN0X215c3FsX1NPVVJD RVMpCisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNURklMRVMgPSAkKERJU1Rf Q09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK0FDTE9D QUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9 IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVU T01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JP T1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lT VEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0g QEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NU X01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09T VF9NUElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BS T0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElC QAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpB VElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIg PSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1f TElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklU X1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytC T09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElC ID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBA Q0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9 IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklU X0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJT QAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytD WFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9 IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytE RVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVN UEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0g QEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0g QEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJT SU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRB ID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAor K0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JB TSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBMREZM QUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBM SUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExU TElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisr TVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJ QkAKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJT QAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQg PSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09S QUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9P Q0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisr T1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9P TEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0Vf QlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdF X05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJO QU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1VSTCA9IEBQQUNLQUdFX1VSTEAKKytQ QUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBB VEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAor K1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElS UyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxf TERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JB TkxJQiA9IEBSQU5MSUJACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytT SEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJ RURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxf SEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBM T0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNf YnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIg PSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAK KythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0 X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAK 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 L2xpYnNvY2lfbXlzcWwubGEgXAorKwkJJChNWVNRTF9MSUJTKQorKworK2FsbDogYWxsLWFtCisr CisrLlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagorKyQoc3JjZGlyKS9N YWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxl LmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZv ciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwK KysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0 IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhpdCAx OzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAm JiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUnOyBc CisrCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSBz b2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisr TWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0 YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7 IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwp IC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAor KwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1 YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1 aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19T VEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQo YW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9t NF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2gKKyskKGFtX19hY2xvY2FsX200X2RlcHMpOgorKworK2NsZWFuLW5vaW5zdFBS T0dSQU1TOgorKwlAbGlzdD0nJChub2luc3RfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8 fCBleGl0IDA7IFwKKysJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKysJcm0gLWYgJCRsaXN0IHx8 IGV4aXQgJCQ/OyBcCisrCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwgZXhpdCAwOyBcCisrCWxpc3Q9 YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkk JC8vJ2A7IFwKKysJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKysJcm0gLWYgJCRsaXN0CisrdGVz dF9teXNxbCQoRVhFRVhUKTogJCh0ZXN0X215c3FsX09CSkVDVFMpICQodGVzdF9teXNxbF9ERVBF TkRFTkNJRVMpIAorKwlAcm0gLWYgdGVzdF9teXNxbCQoRVhFRVhUKQorKwkkKHRlc3RfbXlzcWxf TElOSykgJCh0ZXN0X215c3FsX09CSkVDVFMpICQodGVzdF9teXNxbF9MREFERCkgJChMSUJTKQor KworK21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3Rj bGVhbi1jb21waWxlOgorKwktcm0gLWYgKi50YWIuYworKworK0BBTURFUF9UUlVFQEBhbV9faW5j bHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuUG9AYW1f X3F1b3RlQAorKworKy5jcHAubzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxF KSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCou UG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVj dD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAt YyAtbyAkQCAkPAorKworKy5jcHAub2JqOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENP TVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZ R1BBVEhfVykgJyQ8J2AKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElS KS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAK KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorKworKy5j cHAubG86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1E IC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0 b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAg JDwKKysKKyt0ZXN0X215c3FsLXRlc3QtbXlzcWwubzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCB0ZXN0 X215c3FsLXRlc3QtbXlzcWwubyAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVzdF9teXNxbC10ZXN0 LW15c3FsLlRwbyAtYyAtbyB0ZXN0X215c3FsLXRlc3QtbXlzcWwubyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3Qt bXlzcWwuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvdGVz dF9teXNxbC10ZXN0LW15c3FsLlRwbyAkKERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlBv CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJyBvYmplY3Q9J3Rlc3Rf bXlzcWwtdGVzdC1teXNxbC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0 ZXN0X215c3FsLXRlc3QtbXlzcWwubyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCisrCisrdGVz dF9teXNxbC10ZXN0LW15c3FsLm9iajogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3Rlc3QvdGVzdC1teXNxbC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCB0ZXN0X215c3FsLXRl c3QtbXlzcWwub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwu VHBvIC1jIC1vIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vYmogYGlmIHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJzsgdGhlbiAkKENZ R1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlz cWwuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IGZpYAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5UcG8gJChE RVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVz dC90ZXN0LW15c3FsLmNwcCcgb2JqZWN0PSd0ZXN0X215c3FsLXRlc3QtbXlzcWwub2JqJyBsaWJ0 b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tT TEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X215 c3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X215c3FsLXRlc3QtbXlzcWwub2Jq IGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0 LW15c3FsLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2Rp cikvJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAn OyBmaWAKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFu LWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKytJRDogJChIRUFERVJTKSAkKFNP VVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVS UykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUK Kyt0YWdzOiBUQUdTCisrCisrVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RF UEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXNldCB4OyBcCisrCWhl cmU9YHB3ZGA7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkg PSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCisrCXNoaWZ0OyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJH UykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8 IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKysJ ICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1Mp IFwKKysJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKysJICBlbHNlIFwKKysJICAgICQoRVRBR1Mp ICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAg JCR1bmlxdWU7IFwKKysJICBmaTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiAgJChI RUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklM RVMpICQoTElTUCkKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkg PSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAor KwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FS R1MpIFwKKysJICAgICAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0 b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwK KysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRh Z3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisr ZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8 IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8g IiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0 PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBk byBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7 dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7 dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVj aG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikv fDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlm b3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0 ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYg dGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBz ZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQk ZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAh IC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAg ICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0 aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIi IHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAh IC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAg ICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAg ZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3Ag LXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAor KwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLWFtCisr YWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKQorK2luc3RhbGxkaXJzOgorK2luc3RhbGw6IGlu c3RhbGwtYW0KKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQorK2luc3RhbGwtZGF0YTog aW5zdGFsbC1kYXRhLWFtCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKysKKytpbnN0YWxsLWFt OiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0 YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQorK2luc3RhbGwt c3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNU QUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExf U1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQo U1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0n JChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2Vu ZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFO X0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChz cmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1m ICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJp YzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8g dXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwg dG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIg fHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tYW0KKysKKytj bGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1T IFwKKysJbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorKwktcm0g LXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4t YW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tdGFn cworKworK2R2aTogZHZpLWFtCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtYW0KKysKKyto dG1sLWFtOgorKworK2luZm86IGluZm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0 YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWR2aS1h bToKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwt YW0KKysKKytpbnN0YWxsLWh0bWwtYW06CisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8t YW0KKysKKytpbnN0YWxsLWluZm8tYW06CisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1w ZGY6IGluc3RhbGwtcGRmLWFtCisrCisraW5zdGFsbC1wZGYtYW06CisrCisraW5zdGFsbC1wczog aW5zdGFsbC1wcy1hbQorKworK2luc3RhbGwtcHMtYW06CisrCisraW5zdGFsbGNoZWNrLWFtOgor KworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKysJLXJtIC1yZiAuLyQo REVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xl YW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNs ZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xl YW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1hbQorKwor K3BkZi1hbToKKysKKytwczogcHMtYW0KKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06Cisr CisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogQ1RBR1MgR1RB R1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKysJY2xl YW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBjdGFncyBkaXN0Y2xlYW4gXAorKwlkaXN0 Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCisrCWRp c3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFt IFwKKysJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5z dGFsbC1kdmkgXAorKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFt IGluc3RhbGwtaHRtbCBcCisrCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1p bmZvLWFtIGluc3RhbGwtbWFuIFwKKysJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFs bC1wcyBpbnN0YWxsLXBzLWFtIFwKKysJaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFs bGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKKysJbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNs ZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorKwltb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNs ZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBcCisrCXBkZiBwZGYtYW0gcHMgcHMtYW0g dGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAorKworKyNub2Rpc3Rf cGtnaW5jbHVkZV9IRUFERVJTID0gJChteXNxbF90ZXN0X2hfc291cmNlcykKKysKKysjIFRlbGwg dmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFi bGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5 IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9teXNxbC90ZXN0L3NvdXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3Fs L3Rlc3Qvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAg LTAsMCArMSwyIEBACisrbXlzcWxfdGVzdF9oX3NvdXJjZXMgPQorK215c3FsX3Rlc3RfY2Nfc291 cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwu Y3BwCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFr ZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxl LmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUu YW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTozNzow Ni4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMjcgQEAKKysjIyBiYWNrZW5kcy9vcmFjbGUg c3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytp bmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBN YWtlZmlsZS5pbgorKworK1NVQkRJUlMgPSAuIHRlc3QKKysKKytpZiBIQVZFX09SQUNMRQorK2xp Yl9MVExJQlJBUklFUz0gbGlic29jaV9vcmFjbGUubGEKKysKKytsaWJzb2NpX29yYWNsZV9sYV9T T1VSQ0VTPSAkKGJja19vcmFjbGVfaF9zb3VyY2VzKSAkKGJja19vcmFjbGVfY2Nfc291cmNlcykg CisrbGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MgPSAkKE9SQUNMRV9PQ0lfQ0ZMQUdTKQorK2xp YnNvY2lfb3JhY2xlX2xhX0xJQkFERCA9CisrbGlic29jaV9vcmFjbGVfbGFfTERGTEFHUyA9IFwK KysJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9P UFRJT05TX0xJQikgXAorKwkkKE9SQUNMRV9PQ0lfTERGTEFHUykgXAorKwktdmVyc2lvbi1pbmZv ICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCisrCisrbm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVS UyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAorK2Vu ZGlmCisraWYgU09DSV9IRUFERVJTX0JVUklFRAorK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1 ZGVkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlCisrZWxzZQorK3NvY2lfaW5jbHVkZV9kaXIgPSAk KGluY2x1ZGVkaXIpCisrZW5kaWYKKytwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGly KQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2Vm aWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmls ZS5iYXNpYworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2Vm aWxlLmJhc2ljCTIwMTEtMDItMDkgMDA6MzA6MzIuNTk4OTE2MzU1ICswMTAwCisrKysgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmJhc2ljCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCitAQCAtMSw5NSArMCwwIEBACistIyBUaGUgZm9s bG93aW5nIHZhcmlhYmxlIGlzIHNwZWNpZmljIHRvIHRoaXMgYmFja2VuZCBhbmQgaXRzIGNvcnJl Y3QKKy0jIHZhbHVlcyBtaWdodCBkZXBlbmQgb24geW91ciBlbnZpcm9ubWVudCAtIGZlZWwgZnJl ZSB0byBzZXQgaXQgYWNjb3JkaW5nbHkuCistCistT1JBQ0xFSU5DTFVERURJUiA9IC1JL3Vzci9s aWIvb3JhY2xlL3hlL2FwcC9vcmFjbGUvcHJvZHVjdC8xMC4yLjAvc2VydmVyL3JkYm1zL3B1Ymxp YworLQorLSMgVGhlIHJlc3Qgb2YgdGhlIE1ha2VmaWxlIGlzIGluZGVwZW50ZW50IG9mIHRoZSB0 YXJnZXQgZW52aXJvbm1lbnQuCistCistQ09NUElMRVIgPSBnKysKKy1DWFhGTEFHUyA9IC1XYWxs IC1wZWRhbnRpYyAtV25vLWxvbmctbG9uZworLUNYWEZMQUdTU08gPSAke0NYWEZMQUdTfSAtZlBJ QworLUlOQ0xVREVESVJTID0gLUkuLi8uLi9jb3JlICR7T1JBQ0xFSU5DTFVERURJUn0KKy0KKy1P QkpFQ1RTID0gYmxvYi5vIGZhY3RvcnkubyByb3ctaWQubyBzZXNzaW9uLm8gc3RhbmRhcmQtaW50 by10eXBlLm8gXAorLQlzdGFuZGFyZC11c2UtdHlwZS5vIHN0YXRlbWVudC5vIHZlY3Rvci1pbnRv LXR5cGUubyB2ZWN0b3ItdXNlLXR5cGUubyBcCistCWVycm9yLm8KKy0KKy1PQkpFQ1RTU08gPSBi bG9iLXMubyBmYWN0b3J5LXMubyByb3ctaWQtcy5vIHNlc3Npb24tcy5vIFwKKy0Jc3RhbmRhcmQt aW50by10eXBlLXMubyBzdGFuZGFyZC11c2UtdHlwZS1zLm8gc3RhdGVtZW50LXMubyBcCistCXZl Y3Rvci1pbnRvLXR5cGUtcy5vIHZlY3Rvci11c2UtdHlwZS1zLm8gZXJyb3Itcy5vCistCistbGli c29jaV9vcmFjbGUuYSA6ICR7T0JKRUNUU30KKy0JYXIgcnYgJEAgJD8KKy0Jcm0gKi5vCistCist c29jaS1vcmFjbGUubyA6IHNvY2ktb3JhY2xlLmNwcCAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtD WFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0JCistYmxvYi5vIDogYmxvYi5jcHAKKy0JJHtDT01Q SUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1lcnJvci5vIDogZXJy b3IuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Cist CistZmFjdG9yeS5vIDogZmFjdG9yeS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFH U30gJHtJTkNMVURFRElSU30KKy0KKy1yb3ctaWQubyA6IHJvdy1pZC5jcHAKKy0JJHtDT01QSUxF Un0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zZXNzaW9uLm8gOiBzZXNz aW9uLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQor LQorLXN0YW5kYXJkLWludG8tdHlwZS5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAorLQkke0NP TVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLXVz ZS10eXBlLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtD WFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zdGF0ZW1lbnQubyA6IHN0YXRlbWVudC5jcHAK Ky0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0 b3ItaW50by10eXBlLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAk PyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXZlY3Rvci11c2UtdHlwZS5vIDogdmVj dG9yLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xV REVESVJTfQorLQorLQorLXNoYXJlZCA6ICR7T0JKRUNUU1NPfQorLQkke0NPTVBJTEVSfSAtc2hh cmVkIC1vIGxpYnNvY2lfb3JhY2xlLnNvICR7T0JKRUNUU1NPfQorLQlybSAqLm8KKy0KKy1ibG9i LXMubyA6IGJsb2IuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30g JHtJTkNMVURFRElSU30KKy0KKy1lcnJvci1zLm8gOiBlcnJvci5jcHAKKy0JJHtDT01QSUxFUn0g LWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLWZhY3Rvcnktcy5v IDogZmFjdG9yeS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAk e0lOQ0xVREVESVJTfQorLQorLXJvdy1pZC1zLm8gOiByb3ctaWQuY3BwCistCSR7Q09NUElMRVJ9 IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zZXNzaW9uLXMu byA6IHNlc3Npb24uY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30g JHtJTkNMVURFRElSU30KKy0KKy1zdGFuZGFyZC1pbnRvLXR5cGUtcy5vIDogc3RhbmRhcmQtaW50 by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5D TFVERURJUlN9CistCistc3RhbmRhcmQtdXNlLXR5cGUtcy5vIDogc3RhbmRhcmQtdXNlLXR5cGUu Y3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElS U30KKy0KKy1zdGF0ZW1lbnQtcy5vIDogc3RhdGVtZW50LmNwcAorLQkke0NPTVBJTEVSfSAtYyAt byAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLWludG8tdHlw ZS1zLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAk e0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLXVzZS10eXBlLXMubyA6IHZl Y3Rvci11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NP fSAke0lOQ0xVREVESVJTfQorLQorLQorLWNsZWFuIDoKKy0Jcm0gLWYgKi5vIGxpYnNvY2lfb3Jh Y2xlLmEgbGlic29jaV9vcmFjbGUuc28KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9vcmFjbGUvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL29yYWNsZS9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5p bgkyMDExLTAyLTA4IDIyOjM5OjU2LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw5MDIgQEAK KysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmls ZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5 OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAy MDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sCisrIyBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRv IGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0 aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkg bGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9N QUtFQAorKworKworK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9A UEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnbGliZXhlY2Rp ciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVS U0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5z dGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAt YworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVS ID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1l KQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9 IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklO U1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9z dEAKKytESVNUX0NPTU1PTiA9ICQoYW1fX25vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlNfRElTVCkg XAorKwkkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKysJJChz cmNkaXIpL3NvdXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIg PSBzb2NpL2JhY2tlbmRzL29yYWNsZQorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9j YWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9v c3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmln dXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lF UykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQK KytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdf Q0xFQU5fRklMRVMgPQorK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CisrYW1fX3ZwYXRoX2Fk al9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7 CisrYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKKysgICAgJChzcmNkaXIpLyopIGY9YGVj aG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKKysgICAgKikgZj0kJHA7 OyBcCisrICBlc2FjOworK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xe LiovfHwnYDsKKythbV9faW5zdGFsbF9tYXggPSA0MAorK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAg PSBcCisrICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwq fF0vXFxcXCYvZydgCisrYW1fX25vYmFzZV9zdHJpcCA9IFwKKysgIGZvciBwIGluICQkbGlzdDsg ZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8IgorK2FtX19u b2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKKysgIGZvciBwIGluICQk bGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCisrICBzZWQgInN8ICQkc3JjZGlyc3Ry aXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAor KyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVz WyQkMl0gIiAiICQkMTsgXAorKyAgICBpZiAoKytuWyQkMl0gPT0gJChhbV9faW5zdGFsbF9tYXgp KSBcCisrICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQk Ml0gPSAiIiB9IH0gXAorKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBm aWxlc1tkaXJdIH0nCisrYW1fX2Jhc2VfbGlzdCA9IFwKKysgIHNlZCAnJCQhTjskJCFOOyQkIU47 JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCisrICBzZWQgJyQkIU47JCQhTjskJCFO OyQkIU47cy9cbi8gL2cnCisrYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKGxpYmRpciki ICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKKytMVExJQlJBUklFUyA9ICQobGliX0xUTElC UkFSSUVTKQorK2xpYnNvY2lfb3JhY2xlX2xhX0RFUEVOREVOQ0lFUyA9CisrYW1fX2xpYnNvY2lf b3JhY2xlX2xhX1NPVVJDRVNfRElTVCA9ICBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvZXJyb3IuaCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv c29jaS1vcmFjbGUuaCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxv Yi5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcCBc CisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAgXAorKwkk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAgXAorKwkkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwIFwKKysJJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKKysJJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAorKwkk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgXAorKwkkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKKysJ JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCisr YW1fX29iamVjdHNfMSA9CisrYW1fX29iamVjdHNfMiA9IGxpYnNvY2lfb3JhY2xlX2xhLWJsb2Iu bG8gbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS1mYWN0 b3J5LmxvIGxpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbyBcCisrCWxpYnNvY2lfb3JhY2xlX2xh LXNlc3Npb24ubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8g XAorKwlsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBcCisrCWxpYnNvY2lf b3JhY2xlX2xhLXN0YXRlbWVudC5sbyBcCisrCWxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRv LXR5cGUubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8KKytASEFW RV9PUkFDTEVfVFJVRUBhbV9saWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0 c18xKSBcCisrQEhBVkVfT1JBQ0xFX1RSVUVACSQoYW1fX29iamVjdHNfMikKKytsaWJzb2NpX29y YWNsZV9sYV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTKQorK2xpYnNv Y2lfb3JhY2xlX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgXAorKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAorKwkkKGxpYnNv Y2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSBcCisrCSQobGlic29jaV9vcmFjbGVf bGFfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorK0BIQVZFX09SQUNMRV9UUlVFQGFtX2xpYnNv Y2lfb3JhY2xlX2xhX3JwYXRoID0gLXJwYXRoICQobGliZGlyKQorK0RFRkFVTFRfSU5DTFVERVMg PSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKKytkZXBjb21wID0gJChTSEVM TCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAorK2FtX19kZXBmaWxlc19tYXliZSA9IGRl cGZpbGVzCisrYW1fX212ID0gbXYgLWYKKytDWFhDT01QSUxFID0gJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrTFRDWFhDT01QSUxFID0gJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg XAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdT KQorK0NYWExEID0gJChDWFgpCisrQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGluayAkKENYWExEKSAk KEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAt byAkQAorK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgXAorKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxB R1MpCisrTFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorK0NDTEQgPSAkKENDKQorK0xJTksgPSAkKExJQlRPT0wp IC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9 bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQo TERGTEFHUykgLW8gJEAKKytTT1VSQ0VTID0gJChsaWJzb2NpX29yYWNsZV9sYV9TT1VSQ0VTKQor K0RJU1RfU09VUkNFUyA9ICQoYW1fX2xpYnNvY2lfb3JhY2xlX2xhX1NPVVJDRVNfRElTVCkKKytS RUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1 cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVj dXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUg XAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlp bnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNp dmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYt cmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKKythbV9fbm9i YXNlX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUID0gIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCisrSEVBREVSUyA9ICQobm9iYXNlX3BrZ2luY2x1 ZGVfSEVBREVSUykKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vy c2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVy LWNsZWFuLXJlY3Vyc2l2ZQorK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChSRUNVUlNJVkVfVEFS R0VUUzotcmVjdXJzaXZlPSkgXAorKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1cnNp dmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAorKwlkaXN0ZGlyCisrRVRBR1MgPSBldGFncwor K0NUQUdTID0gY3RhZ3MKKytESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCisrRElTVEZJTEVTID0g JChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkK KythbV9fcmVsYXRpdml6ZSA9IFwKKysgIGRpcjA9YHB3ZGA7IFwKKysgIHNlZF9maXJzdD0ncyxe XChbXi9dKlwpLy4qJCQsXDEsJzsgXAorKyAgc2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7IFwKKysg IHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCisrICBzZWRfYnV0bGFzdD0ncywv KlteL10qJCQsLCc7IFwKKysgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwKKysgICAgZmly c3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysgICAgaWYgdGVz dCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKKysgICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9ICIu LiI7IHRoZW4gXAorKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRf bGFzdCJgLyIkJGRpcjIiOyBcCisrICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1l ICIkJHNlZF9idXRsYXN0ImA7IFwKKysgICAgICBlbHNlIFwKKysgICAgICAgIGZpcnN0Mj1gZWNo byAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorKyAgICAgICAgaWYgdGVzdCAi JCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKKysgICAgICAgICAgZGlyMj1gZWNobyAiJCRk aXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICAgICAgICBlbHNlIFwKKysgICAgICAg ICAgZGlyMj0iLi4vJCRkaXIyIjsgXAorKyAgICAgICAgZmk7IFwKKysgICAgICAgIGRpcjA9IiQk ZGlyMCIvIiQkZmlyc3QiOyBcCisrICAgICAgZmk7IFwKKysgICAgZmk7IFwKKysgICAgZGlyMT1g ZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICBkb25lOyBcCisrICBy ZWxkaXI9IiQkZGlyMiIKKytwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQorK0FD TE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09O RiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBA QVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAor K0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxF U1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElC ID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JP T1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBC T09TVF9NUElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NU X1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05f TElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFM SVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19M SUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNU RU1fTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9V TklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAK KytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05f TElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUg PSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFH UyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBV TklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9M SUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAK KytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFH UyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AK KytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBA RFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19U ID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQ ID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9W RVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9E QVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFN QAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJP R1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBM REZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9 IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0g QExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BA CisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DX0xJQiA9IEBNWVNRTF9D X0xJQkAKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTElCUyA9IEBNWVNRTF9M SUJTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVE SVQgPSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAor K09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNM RV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NA CisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBP VE9PTEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tB R0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNL QUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9U QVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1VSTCA9IEBQQUNLQUdFX1VSTEAK KytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0g QFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklH QAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxf RElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVT UUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAor K1JBTkxJQiA9IEBSQU5MSUJACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAK KytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19C VVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNf QlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVT UUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBA VVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBh YnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRk aXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2Rp ckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2Fj X2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVk ZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBh bV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJA CisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBi dWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxk X29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRk aXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAor K2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBA ZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAor K2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBA aG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVA CisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0 bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9 IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRl eF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKyts b2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAK KyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGly ID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4 QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytw c2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AK KytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAor K3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFz QAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIg PSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFH UyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK2Jja19vcmFjbGVfaF9zb3Vy Y2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJv ci5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1v cmFjbGUuaAorKworK2Jja19vcmFjbGVfY2Nfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAgXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2Ut dHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9z dGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvdmVjdG9yLWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCisrCisrTUFJTlRBSU5FUkNMRUFORklM RVMgPSBNYWtlZmlsZS5pbgorK1NVQkRJUlMgPSAuIHRlc3QKKytASEFWRV9PUkFDTEVfVFJVRUBs aWJfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX29yYWNsZS5sYQorK0BIQVZFX09SQUNMRV9UUlVFQGxp YnNvY2lfb3JhY2xlX2xhX1NPVVJDRVMgPSAkKGJja19vcmFjbGVfaF9zb3VyY2VzKSAkKGJja19v cmFjbGVfY2Nfc291cmNlcykgCisrQEhBVkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFf Q1hYRkxBR1MgPSAkKE9SQUNMRV9PQ0lfQ0ZMQUdTKQorK0BIQVZFX09SQUNMRV9UUlVFQGxpYnNv Y2lfb3JhY2xlX2xhX0xJQkFERCA9IAorK0BIQVZFX09SQUNMRV9UUlVFQGxpYnNvY2lfb3JhY2xl X2xhX0xERkxBR1MgPSBcCisrQEhBVkVfT1JBQ0xFX1RSVUVACSQoQk9PU1RfTElCUykgJChCT09T VF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKKytASEFWRV9P UkFDTEVfVFJVRUAJJChPUkFDTEVfT0NJX0xERkxBR1MpIFwKKytASEFWRV9PUkFDTEVfVFJVRUAJ LXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorKworK0BIQVZFX09SQUNM RV9UUlVFQG5vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmgKKytAU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBz b2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQorK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RS VUVAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUK KythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrLlNVRkZJWEVTOiAuY3BwIC5s byAubyAub2JqCisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFt ICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1f X2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1f X2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwK KysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBm aTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVj aG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMv b3JhY2xlL01ha2VmaWxlJzsgXAorKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAg JChBVVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUKKysuUFJFQ0lP VVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWls ZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1 cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmls ZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29u ZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2Fj OworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAg JChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKGFtX19hY2xvY2FsX200X2RlcHMpOgorK2lu c3RhbGwtbGliTFRMSUJSQVJJRVM6ICQobGliX0xUTElCUkFSSUVTKQorKwlAJChOT1JNQUxfSU5T VEFMTCkKKysJdGVzdCAteiAiJChsaWJkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChs aWJkaXIpIgorKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIp IiB8fCBsaXN0PTsgXAorKwlsaXN0Mj07IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRl c3QgLWYgJCRwOyB0aGVuIFwKKysJICAgIGxpc3QyPSIkJGxpc3QyICQkcCI7IFwKKysJICBlbHNl IDo7IGZpOyBcCisrCWRvbmU7IFwKKysJdGVzdCAteiAiJCRsaXN0MiIgfHwgeyBcCisrCSAgZWNo byAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 aW5zdGFsbCAkKElOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICckKERFU1RE SVIpJChsaWJkaXIpJyI7IFwKKysJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxB RykgJCRsaXN0MiAiJChERVNURElSKSQobGliZGlyKSI7IFwKKysJfQorKworK3VuaW5zdGFsbC1s aWJMVExJQlJBUklFUzoKKysJQCQoTk9STUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9JyQobGliX0xU TElCUkFSSUVTKSc7IHRlc3QgLW4gIiQobGliZGlyKSIgfHwgbGlzdD07IFwKKysJZm9yIHAgaW4g JCRsaXN0OyBkbyBcCisrCSAgJChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNobyAiICQoTElCVE9P TCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJt IC1mICckKERFU1RESVIpJChsaWJkaXIpLyQkZiciOyBcCisrCSAgJChMSUJUT09MKSAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVT VERJUikkKGxpYmRpcikvJCRmIjsgXAorKwlkb25lCisrCisrY2xlYW4tbGliTFRMSUJSQVJJRVM6 CisrCS10ZXN0IC16ICIkKGxpYl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElCUkFS SUVTKQorKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBc CisrCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAorKwkgIHRl c3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAorKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGly fS9zb19sb2NhdGlvbnNcIiI7IFwKKysJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBc CisrCWRvbmUKKytsaWJzb2NpX29yYWNsZS5sYTogJChsaWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RT KSAkKGxpYnNvY2lfb3JhY2xlX2xhX0RFUEVOREVOQ0lFUykgCisrCSQobGlic29jaV9vcmFjbGVf bGFfTElOSykgJChhbV9saWJzb2NpX29yYWNsZV9sYV9ycGF0aCkgJChsaWJzb2NpX29yYWNsZV9s YV9PQkpFQ1RTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0xJQkFERCkgJChMSUJTKQorKworK21vc3Rs eWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21w aWxlOgorKwktcm0gLWYgKi50YWIuYworKworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFt X19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1ibG9iLlBsb0BhbV9fcXVvdGVA CisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNv Y2lfb3JhY2xlX2xhLWVycm9yLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNs dWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuUGxv QGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xh LXNlc3Npb24uUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9f cXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLlBs b0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChE RVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVA CisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNv Y2lfb3JhY2xlX2xhLXN0YXRlbWVudC5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9f aW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3It aW50by10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1f X3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5QbG9A YW1fX3F1b3RlQAorKworKy5jcHAubzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01Q SUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikv JCouUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9i amVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxF KSAtYyAtbyAkQCAkPAorKworKy5jcHAub2JqOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENY WENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAk KENZR1BBVEhfVykgJyQ8J2AKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQ RElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorKwor Ky5jcHAubG86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAg LU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8g JEAgJDwKKysKKytsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9P TCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChERVBE SVIpL2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLWJs b2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvYmxvYi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9s aWJzb2NpX29yYWNsZV9sYS1ibG9iLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtYmxv Yi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29y YWNsZV9sYS1ibG9iLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAKKysKKyts aWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9lcnJvci5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt TVQgbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNv Y2lfb3JhY2xlX2xhLWVycm9yLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJy b3IuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29j aV9vcmFjbGVfbGEtZXJyb3IuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1lcnJvci5Q bG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFj bGVfbGEtZXJyb3IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAk KGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElC VE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcAorKwor K2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvZmFjdG9yeS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbyAtTUQgLU1QIC1NRiAkKERFUERJ UikvbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEt ZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9m YWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9mYWN0b3J5LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikg JChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuVHBvICQoREVQRElSKS9saWJzb2Np X29yYWNsZV9sYS1mYWN0b3J5LlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3Bw JyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG8nIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVf bGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9mYWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcAorKworK2xpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwCisrQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXJv dy1pZC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLlRw byAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwCisrQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlk LlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLlBsbworK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Jvdy1pZC5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxv JyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1j IC1vIGxpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAKKysKKytsaWJzb2NpX29y YWNsZV9sYS1zZXNzaW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nl c3Npb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxp YnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf b3JhY2xlX2xhLXNlc3Npb24uVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv c2Vzc2lvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9s aWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEt c2Vzc2lvbi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0n JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCcgb2JqZWN0PSds aWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24u bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvc2Vzc2lvbi5jcHAKKysKKytsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUu bG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBl LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2Np X29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xp YnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gLWMgLW8gbGlic29jaV9vcmFj bGVfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBl LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lf b3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xl X2xhLXN0YW5kYXJkLWludG8tdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFy ZC1pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8t dHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBl LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrCisrbGlic29jaV9vcmFjbGVfbGEtc3RhbmRh cmQtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRh cmQtdXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LU1UIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gLWMgLW8gbGli c29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVz ZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xp YnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9v cmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3Rh bmRhcmQtdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVz ZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp ICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBl LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKysKKytsaWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1l bnQubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo bGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNs ZV9sYS1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xh LXN0YXRlbWVudC5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3Rh dGVtZW50LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xp YnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xh LXN0YXRlbWVudC5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFD S1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf b3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1z dGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv c3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCisrCisrbGlic29jaV9vcmFjbGVfbGEtdmVjdG9y LWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3It aW50by10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1N VCBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQ RElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2Np X29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2Rp cikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUu Y3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9v cmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xh LXZlY3Rvci1pbnRvLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8t dHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5sbycg bGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAt byBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1p bnRvLXR5cGUuY3BwCisrCisrbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvOiAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVf bGEtdmVjdG9yLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNs ZV9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11 c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92 ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5 cGUuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUuUGxvCisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2Np X29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNs ZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtdmVjdG9y LXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAorKworK21vc3RseWNsZWFu LWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAu bGlicyBfbGlicworK2luc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTOiAkKG5vYmFzZV9w a2dpbmNsdWRlX0hFQURFUlMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKHBr Z2luY2x1ZGVkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIK KysJQGxpc3Q9JyQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUyknOyB0ZXN0IC1uICIkKHBrZ2lu Y2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAorKwkkKGFtX19ub2Jhc2VfbGlzdCkgfCB3aGlsZSByZWFk IGRpciBmaWxlczsgZG8gXAorKwkgIHhmaWxlcz07IGZvciBmaWxlIGluICQkZmlsZXM7IGRvIFwK KysJICAgIGlmIHRlc3QgLWYgIiQkZmlsZSI7IHRoZW4geGZpbGVzPSIkJHhmaWxlcyAkJGZpbGUi OyBcCisrCSAgICBlbHNlIHhmaWxlcz0iJCR4ZmlsZXMgJChzcmNkaXIpLyQkZmlsZSI7IGZpOyBk b25lOyBcCisrCSAgdGVzdCAteiAiJCR4ZmlsZXMiIHx8IHsgXAorKwkgICAgdGVzdCAieCQkZGly IiA9IHguIHx8IHsgXAorKwkgICAgICBlY2hvICIkKE1LRElSX1ApICckKERFU1RESVIpJChwa2dp bmNsdWRlZGlyKS8kJGRpciciOyBcCisrCSAgICAgICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBr Z2luY2x1ZGVkaXIpLyQkZGlyIjsgfTsgXAorKwkgICAgZWNobyAiICQoSU5TVEFMTF9IRUFERVIp ICQkeGZpbGVzICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGRpciciOyBcCisrCSAgICAk KElOU1RBTExfSEVBREVSKSAkJHhmaWxlcyAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRk aXIiIHx8IGV4aXQgJCQ/OyB9OyBcCisrCWRvbmUKKysKKyt1bmluc3RhbGwtbm9iYXNlX3BrZ2lu Y2x1ZGVIRUFERVJTOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChub2Jhc2Vf cGtnaW5jbHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9 OyBcCisrCSQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IGZpbGVzPWAkKGFtX19ub2Jhc2Vfc3Ry aXApYDsgXAorKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKKysJZWNobyAiICggY2Qg JyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKysJ Y2QgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIiAmJiBybSAtZiAkJGZpbGVzCisrCisrIyBU aGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlv dSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91 Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJp YWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlh YmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAg ICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVu IHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFs dWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgor KwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBk byBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAq ayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90 X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAor KwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hv ICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0 PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJn ZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwK KysJZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0 ZXN0IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWls PSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJ ICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFp bGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1u bzsgXAorKwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVh bi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMp JyA7OyBcCisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAor KwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0i JCRzdWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4i OyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1 YmRpciBpbiAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRp ciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxf dGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0i JCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxj b207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQk c3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAu IHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3Mp OyBcCisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdT X0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklM RVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAt ZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisr CSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsg fSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50 IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFH UzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5D SUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJc2V0IHg7IFwKKysJaGVyZT1gcHdk YDsgXAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVs bCAyPiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJ ICBlbXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7 IFwKKysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4g OjsgZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHNl dCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJICBm aTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAk KFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAg aWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7 IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVt cHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmls ZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlzaGlmdDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdT X0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVl IiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBc CisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19B UkdTKSBcCisrCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisrCSAgZWxzZSBcCisrCSAgICAkKEVU QUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAg ICAgICQkdW5pcXVlOyBcCisrCSAgZmk7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzog Y3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lF UykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFE RVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlz dDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hv ICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNb JCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkg eyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdT X0FSR1MpJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RB R1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJ aGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiAkKGFtX19j ZCkgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJl IgorKworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZ TVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9 YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRv cHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9c XFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZv ciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJz fF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAv fCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAg Ki8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wv LyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7 OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYg dGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNk aXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9 YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVz dCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKysJICAgICAgZmluZCAiJChkaXN0ZGly KS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBc CisrCSAgICBmaTsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3Qg JCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmls ZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICAgICAgZmluZCAiJChkaXN0ZGly KS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBc CisrCSAgICBmaTsgXAorKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIi IHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZp bGUiIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisr CSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VC RElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGly IiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGly IiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8 fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47 IHRoZW4gOjsgZWxzZSBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQk c3ViZGlyIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld19kaXN0ZGly PSQkcmVsZGlyOyBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7 IFwKKysJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisrCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRy ZWxkaXI7IFwKKysJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0 ZGlyIiBcXCI7IFwKKysJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3Nr aXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKKysJICAg ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAorKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCisrCSAgICAg ICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAor KwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCisr CSAgICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlk b25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwtYW06 IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKKytpbnN0YWxsZGlyczogaW5zdGFs bGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisrCWZvciBkaXIgaW4gIiQoREVTVERJ UikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKKysJICB0ZXN0 IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisrCWRvbmUKKytpbnN0YWxsOiBp bnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQor K2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0 YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01B S0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVj azogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBc CisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RB TExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBl Y2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAor K21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4t Z2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChD T05GSUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIk KENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRI X0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29t bWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVs ZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisr CS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVS Q0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFu LWdlbmVyaWMgY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCisrCW1vc3RseWNs ZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtcmYgLi8k KERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0 Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisr ZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZl CisrCisraHRtbC1hbToKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06Cisr CisraW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVBREVSUworKwor K2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWR2aS1hbToK KysKKytpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtbGliTFRMSUJSQVJJRVMKKysKKytpbnN0YWxs LWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWh0bWwtYW06CisrCisr aW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisrCisraW5zdGFsbC1pbmZvLWFt OgorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNp dmUKKysKKytpbnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vy c2l2ZQorKworK2luc3RhbGwtcHMtYW06CisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50 YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtcmYgLi8kKERF UERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFu LWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVh bi1yZWN1cnNpdmUKKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0 bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLXJl Y3Vyc2l2ZQorKworK3BkZi1hbToKKysKKytwczogcHMtcmVjdXJzaXZlCisrCisrcHMtYW06Cisr CisrdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgXAorKwl1bmluc3RhbGwt bm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTCisrCisrLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RB UkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGN0YWdzLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwt YW0gaW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQorKworKy5QSE9OWTogJChSRUNVUlNJVkVf Q0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwg YWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVhbi1saWJM VExJQlJBUklFUyBjbGVhbi1saWJ0b29sIGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCisrCWRpc3Rj bGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi1s aWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKysJaHRtbC1h bSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCisrCWluc3Rh bGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAorKwlp bnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8g XAorKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW1hbiBc CisrCWluc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTIGluc3RhbGwtcGRmIGluc3RhbGwt cGRmLWFtIFwKKysJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFs bGNoZWNrIFwKKysJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1h aW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4g bW9zdGx5Y2xlYW4tY29tcGlsZSBcCisrCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4t bGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKysJdGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmlu c3RhbGwgdW5pbnN0YWxsLWFtIFwKKysJdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFs bC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMKKysKKytAU0VUX01BS0VACisrCisrIyBUZWxsIHZl cnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxl cy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBi ZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9vcmFjbGUvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc291cmNlcy5tawky MDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxNCBAQAorK2Jj a19vcmFjbGVfaF9zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9lcnJvci5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvc29jaS1vcmFjbGUuaAorK2Jja19vcmFjbGVfY2Nfc291cmNlcyA9IFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAgXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAgXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAgXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8t dHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9z dGFuZGFyZC11c2UtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCitkaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5hbSBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5hbQor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUu YW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5 OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyMiBAQAorKyMjIGNvcmUgc3ViLWRp cmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytpbmNsdWRl ICQoc3JjZGlyKS9zb3VyY2VzLm1rCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmls ZS5pbgorKworK2lmIEhBVkVfT1JBQ0xFCisrICBURVNUX09SQUNMRSA9IHRlc3Rfb3JhY2xlCisr CisraWYgUlVOX1RFU1RTCisrICBub2luc3RfUFJPR1JBTVMgPSAkKFRFU1RfT1JBQ0xFKQorK2Vu ZGlmCisrCisrdGVzdF9vcmFjbGVfU09VUkNFUyA9ICQob3JhY2xlX3Rlc3RfY2Nfc291cmNlcykK Kyt0ZXN0X29yYWNsZV9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKSAkKE9SQUNMRV9PQ0lfQ0ZM QUdTKQorK3Rlc3Rfb3JhY2xlX0xEQUREID0KKyt0ZXN0X29yYWNsZV9MREZMQUdTID0gJCh0b3Bf YnVpbGRkaXIpL3NvY2kvY29yZS9saWJzb2NpX2NvcmUubGEgLWxkbCBcCisrCQkkKHRvcF9idWls ZGRpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvbGlic29jaV9vcmFjbGUubGEgXAorKwkJJChPUkFD TEVfT0NJX0xERkxBR1MpCisrZW5kaWYKKysKKysjbm9kaXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9 ICQob3JhY2xlX3Rlc3RfaF9zb3VyY2VzKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYmFzaWMKKy0tLSBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmJhc2ljCTIwMTEtMDIt MDkgMDA6MzA6MzIuNTk3OTE2MzM2ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKK0BAIC0xLDIzICswLDAgQEAKKy0jIFRoZSBmb2xsb3dpbmcgdmFyaWFi bGUgaXMgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCBpdHMgY29ycmVjdAorLSMgdmFsdWVz IG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBh Y2NvcmRpbmdseS4KKy0KKy1PUkFDTEVJTkNMVURFRElSID0gLUkvdXNyL2xpYi9vcmFjbGUveGUv YXBwL29yYWNsZS9wcm9kdWN0LzEwLjIuMC9zZXJ2ZXIvcmRibXMvcHVibGljIAorLU9SQUNMRUxJ QkRJUiA9IC1ML3Vzci9saWIvb3JhY2xlL3hlL2FwcC9vcmFjbGUvcHJvZHVjdC8xMC4yLjAvc2Vy dmVyL2xpYiAKKy1PUkFDTEVMSUJTID0gLWxjbG50c2ggLWxubnoxMAorLQorLSMgVGhlIHJlc3Qg b2YgdGhlIE1ha2VmaWxlIGlzIGluZGVwZW50ZW50IG9mIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQu CistCistQ09NUElMRVIgPSBnKysKKy1DWFhGTEFHUyA9IC1XYWxsIC1wZWRhbnRpYyAtV25vLWxv bmctbG9uZworLUlOQ0xVREVESVJTID0gLUkuLiAtSS4uLy4uLy4uL2NvcmUgLUkuLi8uLi8uLi9j b3JlL3Rlc3QgJHtPUkFDTEVJTkNMVURFRElSfQorLUxJQkRJUlMgPSAtTC4uIC1MLi4vLi4vLi4v Y29yZSAke09SQUNMRUxJQkRJUn0KKy1MSUJTID0gLWxzb2NpX2NvcmUgLWxzb2NpX29yYWNsZSAt bGRsIC1sYm9vc3RfZGF0ZV90aW1lICR7T1JBQ0xFTElCU30KKy0KKy0KKy10ZXN0LW9yYWNsZSA6 IHRlc3Qtb3JhY2xlLmNwcCAKKy0jLi4vLi4vLi4vY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oCist CSR7Q09NUElMRVJ9IC1vICRAICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9ICR7TElCRElS U30gJHtMSUJTfQorLQorLQorLWNsZWFuIDoKKy0Jcm0gLWYgKi5vIHRlc3Qtb3JhY2xlCitkaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmls ZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmls ZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFr ZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5pbgkyMDExLTAy LTA4IDIyOjM5OjU2LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw1NjEgQEAKKysjIE1ha2Vm aWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKysj IEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYs IDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1 LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyBJ bmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRo b3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorKwor K1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytw a2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxp YmRpcikvQFBBQ0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VA CisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAm JiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFs bF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChp bnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNm b3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BS RV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgor K1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9 IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGly KS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHNyY2Rpcikvc291cmNl cy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK0BIQVZFX09SQUNMRV9UUlVFQEBS VU5fVEVTVFNfVFJVRUBub2luc3RfUFJPR1JBTVMgPSAkKGFtX19FWEVFWFRfMSkKKytzdWJkaXIg PSBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0CisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2Rpcikv YWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29u ZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19j b25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5E RU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3No KSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NP TkZJR19DTEVBTl9GSUxFUyA9CisrQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KKytASEFWRV9P UkFDTEVfVFJVRUBhbV9fRVhFRVhUXzEgPSB0ZXN0X29yYWNsZSQoRVhFRVhUKQorK1BST0dSQU1T ID0gJChub2luc3RfUFJPR1JBTVMpCisrYW1fX3Rlc3Rfb3JhY2xlX1NPVVJDRVNfRElTVCA9ICBc CisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5j cHAKKythbV9fb2JqZWN0c18xID0gdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuJChPQkpFWFQpCisr QEhBVkVfT1JBQ0xFX1RSVUVAYW1fdGVzdF9vcmFjbGVfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNf MSkKKyt0ZXN0X29yYWNsZV9PQkpFQ1RTID0gJChhbV90ZXN0X29yYWNsZV9PQkpFQ1RTKQorK3Rl c3Rfb3JhY2xlX0RFUEVOREVOQ0lFUyA9CisrdGVzdF9vcmFjbGVfTElOSyA9ICQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 bGluayAkKENYWExEKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSBcCisrCSQoQ1hYRkxBR1MpICQo dGVzdF9vcmFjbGVfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorK0RFRkFVTFRfSU5DTFVERVMg PSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKKytkZXBjb21wID0gJChTSEVM TCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAorK2FtX19kZXBmaWxlc19tYXliZSA9IGRl cGZpbGVzCisrYW1fX212ID0gbXYgLWYKKytDWFhDT01QSUxFID0gJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrTFRDWFhDT01QSUxFID0gJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg XAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdT KQorK0NYWExEID0gJChDWFgpCisrQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGluayAkKENYWExEKSAk KEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAt byAkQAorK1NPVVJDRVMgPSAkKHRlc3Rfb3JhY2xlX1NPVVJDRVMpCisrRElTVF9TT1VSQ0VTID0g JChhbV9fdGVzdF9vcmFjbGVfU09VUkNFU19ESVNUKQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9 IGN0YWdzCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVY SU5GT1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1U QVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBB VVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1Rf Q0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RB VEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9M SUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NU X0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACisr Qk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACisrQk9PU1RfUFJP R1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1BZ VEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1Rf UkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJ T05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NU X1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKKytCT09TVF9USFJFQURfTElCID0gQEJP T1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1Rf VU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9O QAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJA CisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdT QAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1Mg PSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisr Q1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5J VF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBNT0RF ID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZ R1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9 IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5ACisrRUNIT19DID0gQEVDSE9fQ0AKKytF Q0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBACisr RVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytHRU5FUklDX0xJQlJBUllfVkVS U0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFM TCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9Q Uk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1ND UklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAor K0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisr TElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMSVBPID0gQExJUE9ACisrTE5f UyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlO Rk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NA CisrTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJT QAorK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZF UlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRV TVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytP UkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxB R1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVf T0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BB Q0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9S VEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBB Q0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFD S0FHRV9VUkwgPSBAUEFDS0FHRV9VUkxACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVS U0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxA CisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JF U1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RH UkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9O ID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1NFRCA9IEBTRURA CisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJT X0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJ RUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVS U19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNU UklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVS U0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJz X3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3Rv cF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNf Y3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisr YW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFk aW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAK KythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBA YnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxk X2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVu ZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRh cm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0g QGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAK Kytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytn c19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFz QAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3Zl bmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9 IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3Rh bGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJl eGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0 YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0g QG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBw ZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHBy b2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmlu ZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVk aXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFy Z2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWls ZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0g QHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3Ny Y2RpcikKKytvcmFjbGVfdGVzdF9oX3NvdXJjZXMgPSAKKytvcmFjbGVfdGVzdF9jY19zb3VyY2Vz ID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNw cAorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytASEFWRV9PUkFDTEVfVFJV RUBURVNUX09SQUNMRSA9IHRlc3Rfb3JhY2xlCisrQEhBVkVfT1JBQ0xFX1RSVUVAdGVzdF9vcmFj bGVfU09VUkNFUyA9ICQob3JhY2xlX3Rlc3RfY2Nfc291cmNlcykKKytASEFWRV9PUkFDTEVfVFJV RUB0ZXN0X29yYWNsZV9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKSAkKE9SQUNMRV9PQ0lfQ0ZM QUdTKQorK0BIQVZFX09SQUNMRV9UUlVFQHRlc3Rfb3JhY2xlX0xEQUREID0gCisrQEhBVkVfT1JB Q0xFX1RSVUVAdGVzdF9vcmFjbGVfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUv bGlic29jaV9jb3JlLmxhIC1sZGwgXAorK0BIQVZFX09SQUNMRV9UUlVFQAkJJCh0b3BfYnVpbGRk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2xpYnNvY2lfb3JhY2xlLmxhIFwKKytASEFWRV9PUkFD TEVfVFJVRUAJCSQoT1JBQ0xFX09DSV9MREZMQUdTKQorKworK2FsbDogYWxsLWFtCisrCisrLlNV RkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagorKyQoc3JjZGlyKS9NYWtlZmls ZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1v biAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAg aW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAg ICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRA OyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAor KwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFV VE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlJzsgXAorKwkk KGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9i YWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtl ZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVz CisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAor KwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9j b25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAg ICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGly KS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRk aXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRV U19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9f Y29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2Rl cHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaAorKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisrCisrY2xlYW4tbm9pbnN0UFJPR1JB TVM6CisrCUBsaXN0PSckKG5vaW5zdF9QUk9HUkFNUyknOyB0ZXN0IC1uICIkJGxpc3QiIHx8IGV4 aXQgMDsgXAorKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorKwlybSAtZiAkJGxpc3QgfHwgZXhp dCAkJD87IFwKKysJdGVzdCAtbiAiJChFWEVFWFQpIiB8fCBleGl0IDA7IFwKKysJbGlzdD1gZm9y IHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkICdzLyQoRVhFRVhUKSQkLy8n YDsgXAorKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorKwlybSAtZiAkJGxpc3QKKyt0ZXN0X29y YWNsZSQoRVhFRVhUKTogJCh0ZXN0X29yYWNsZV9PQkpFQ1RTKSAkKHRlc3Rfb3JhY2xlX0RFUEVO REVOQ0lFUykgCisrCUBybSAtZiB0ZXN0X29yYWNsZSQoRVhFRVhUKQorKwkkKHRlc3Rfb3JhY2xl X0xJTkspICQodGVzdF9vcmFjbGVfT0JKRUNUUykgJCh0ZXN0X29yYWNsZV9MREFERCkgJChMSUJT KQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rp c3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi50YWIuYworKworK0BBTURFUF9UUlVFQEBhbV9f aW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5Q b0BhbV9fcXVvdGVACisrCisrLmNwcC5vOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENP TVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Cisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElS KS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcg b2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJ TEUpIC1jIC1vICRAICQ8CisrCisrLmNwcC5vYmo6CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo Q1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAg YCQoQ1lHUEFUSF9XKSAnJDwnYAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChE RVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NM QVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCisr CisrLmNwcC5sbzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAk QCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KKytA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAn IGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAt byAkQCAkPAorKworK3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm86ICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtTVQgdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUubyAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVz dF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvIC1jIC1vIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9y YWNsZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChh bV9fbXYpICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5UcG8gJChERVBESVIpL3Rl c3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0 LW9yYWNsZS5jcHAnIG9iamVjdD0ndGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUubycgbGlidG9vbD1u byBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA CisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9vcmFjbGVf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNs ZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKKysKKyt0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5v Ymo6ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5j cHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rfb3JhY2xl X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqIC1N RCAtTVAgLU1GICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5UcG8gLWMgLW8gdGVz dF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAn OyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBmaWAKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChhbV9fbXYpICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5UcG8gJChERVBE SVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVz dC90ZXN0LW9yYWNsZS5jcHAnIG9iamVjdD0ndGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqJyBs aWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJB Q0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0 X29yYWNsZV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9vcmFjbGUtdGVzdC1vcmFj bGUub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rl c3QvdGVzdC1vcmFjbGUuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBlbHNlICQoQ1lHUEFUSF9X KSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0 LW9yYWNsZS5jcHAnOyBmaWAKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5s bworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKytJRDogJChI RUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJD RVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1m SUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VT KSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXNl dCB4OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAk KExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBc CisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNk aXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0g MTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAo aSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXNoaWZ0OyBcCisrCWlmIHRlc3QgLXog IiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAi JCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgIGlmIHRlc3QgJCQjIC1ndCAw OyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAk KEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKysJICBlbHNlIFwKKysJ ICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1Mp IFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBmaTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUwor K0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisr CQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAk KExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBc CisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNk aXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0g MTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAo aSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykk JHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdT KSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAk KGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmICQoYW1fX2NkKSAkKHRv cF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisrCisr ZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFU SCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAi JChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGly c3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cn YDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUg aW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3Jj ZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3Bf YnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQo TUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xe fCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJ ZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1m ICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZp OyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAi LyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIk KGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmls ZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAg IGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0g JChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRp c3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmls ZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAg IGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhp dCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAor KwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8 IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6 IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKQorK2luc3RhbGxkaXJzOgor K2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQorK2lu c3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKysK KytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwt ZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1h bQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJP R1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFN PSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAg YHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5W PVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6Cisr CisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQo Q09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCS10 ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxF UykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorKworK21haW50YWluZXIt Y2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFp bnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1 aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJD TEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xl YW4tYW0KKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLW5v aW5zdFBST0dSQU1TIFwKKysJbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVh bi1hbQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVh bi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlk aXN0Y2xlYW4tdGFncworKworK2R2aTogZHZpLWFtCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0 bWwtYW0KKysKKytodG1sLWFtOgorKworK2luZm86IGluZm8tYW0KKysKKytpbmZvLWFtOgorKwor K2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKysKKytp bnN0YWxsLWR2aS1hbToKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBp bnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWh0bWwtYW06CisrCisraW5zdGFsbC1pbmZvOiBp bnN0YWxsLWluZm8tYW0KKysKKytpbnN0YWxsLWluZm8tYW06CisrCisraW5zdGFsbC1tYW46Cisr CisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisrCisraW5zdGFsbC1wZGYtYW06CisrCisr aW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorKworK2luc3RhbGwtcHMtYW06CisrCisraW5zdGFs bGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKysJ LXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFu LWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xl YW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBp bGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6 IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczogcHMtYW0KKysKKytwcy1hbToKKysKKyt1bmlu c3RhbGwtYW06CisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorKworKy5QSE9O WTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5l cmljIFwKKysJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBjdGFncyBkaXN0Y2xl YW4gXAorKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGli dG9vbCBcCisrCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0g aW5mbyBpbmZvLWFtIFwKKysJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBpbnN0YWxs LWRhdGEtYW0gaW5zdGFsbC1kdmkgXAorKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5z dGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCisrCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWlu Zm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKKysJaW5zdGFsbC1wZGYgaW5zdGFsbC1w ZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKKysJaW5zdGFsbC1zdHJpcCBpbnN0YWxs Y2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKKysJbWFpbnRhaW5lci1jbGVhbiBt YWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorKwltb3N0bHljbGVhbi1jb21w aWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBcCisrCXBkZiBwZGYt YW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAor KworKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChvcmFjbGVfdGVzdF9oX3NvdXJjZXMp CisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBv cnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1Yg YXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3NvdXJjZXMubWsKKy0tLSBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3NvdXJjZXMubWsJMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAw MDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIgQEAKKytvcmFjbGVfdGVzdF9oX3NvdXJjZXMgPQor K29yYWNsZV90ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCitA QCAtMCwwICsxLDMwIEBACisrIyMgYmFja2VuZHMvcG9zdGdyZXNxbCBzdWItZGlyZWN0b3J5Cisr aW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChzcmNkaXIp L3NvdXJjZXMubWsKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisr U1VCRElSUyA9IC4gdGVzdAorKworKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkg PSAuX2NvbW1vbi5oCisrCisrRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01Q QVRJQklMSVRZKQorKworK2lmIEhBVkVfUE9TVEdSRVNRTAorK2xpYl9MVExJQlJBUklFUz0gbGli c29jaV9wb3N0Z3Jlc3FsLmxhCisrCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJDRVM9ICQo YmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzKSAkKGJja19wb3N0Z3Jlc3FsX2NjX3NvdXJjZXMpIAor K2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUyA9ICQoUE9TVEdSRVNRTF9DRkxBR1MpCisr bGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJQkFERCA9CisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xE RkxBR1MgPSBcCisrCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NU X1BST0dSQU1fT1BUSU9OU19MSUIpIFwKKysJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFS WV9WRVJTSU9OKQorKworK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCisrZW5kaWYKKytpZiBTT0NJX0hF QURFUlNfQlVSSUVECisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsCisrZWxzZQorK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIp CisrZW5kaWYKKytwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQorZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5iYXNp YyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJh c2ljCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2Vm aWxlLmJhc2ljCTIwMTEtMDItMDkgMDA6MzA6MzIuNTk2OTE2MzE3ICswMTAwCisrKysgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5iYXNpYwkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorQEAgLTEsOTUgKzAsMCBAQAorLSMgVGhl IGZvbGxvd2luZyB2YXJpYWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIGl0cyBj b3JyZWN0CistIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVs IGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgorLQorLVBHU1FMSU5DTFVERURJUiA9IC1JL3Vz ci9pbmNsdWRlCistCistIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQg b2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KKy0KKy1DT01QSUxFUiA9IGcrKworLUNYWEZMQUdT ID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCistQ1hYRkxBR1NTTyA9ICR7Q1hYRkxB R1N9IC1mUElDCistSU5DTFVERURJUlMgPSAtSS4uLy4uL2NvcmUgJHtQR1NRTElOQ0xVREVESVJ9 CistCistCistT0JKRUNUUyA9IGJsb2IubyBmYWN0b3J5Lm8gcm93LWlkLm8gc2Vzc2lvbi5vIHN0 YW5kYXJkLWludG8tdHlwZS5vIFwKKy0Jc3RhbmRhcmQtdXNlLXR5cGUubyBzdGF0ZW1lbnQubyB2 ZWN0b3ItaW50by10eXBlLm8gdmVjdG9yLXVzZS10eXBlLm8gXAorLQljb21tb24ubworLQorLU9C SkVDVFNTTyA9IGJsb2Itcy5vIGZhY3Rvcnktcy5vIHJvdy1pZC1zLm8gc2Vzc2lvbi1zLm8gXAor LQlzdGFuZGFyZC1pbnRvLXR5cGUtcy5vIHN0YW5kYXJkLXVzZS10eXBlLXMubyBzdGF0ZW1lbnQt cy5vIFwKKy0JdmVjdG9yLWludG8tdHlwZS1zLm8gdmVjdG9yLXVzZS10eXBlLXMubyBjb21tb24t cy5vCistCistCistbGlic29jaV9wb3N0Z3Jlc3FsLmEgOiAke09CSkVDVFN9CistCWFyIHJ2ICRA ICQ/CistCXJtICoubworLQorLQorLWJsb2IubyA6IGJsb2IuY3BwCistCSR7Q09NUElMRVJ9IC1j ICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistY29tbW9uLm8gOiBjb21tb24uY3Bw CistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistZmFj dG9yeS5vIDogZmFjdG9yeS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJ TkNMVURFRElSU30KKy0KKy1yb3ctaWQubyA6IHJvdy1pZC5jcHAKKy0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zZXNzaW9uLm8gOiBzZXNzaW9uLmNw cAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0 YW5kYXJkLWludG8tdHlwZS5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVS fSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLXVzZS10eXBl Lm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFH U30gJHtJTkNMVURFRElSU30KKy0KKy1zdGF0ZW1lbnQubyA6IHN0YXRlbWVudC5jcHAKKy0JJHtD T01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0b3ItaW50 by10eXBlLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NY WEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXZlY3Rvci11c2UtdHlwZS5vIDogdmVjdG9yLXVz ZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fQorLQorLQorLXNoYXJlZCA6ICR7T0JKRUNUU1NPfQorLQkke0NPTVBJTEVSfSAtc2hhcmVkIC1v IGxpYnNvY2lfcG9zdGdyZXNxbC5zbyAke09CSkVDVFNTT30KKy0Jcm0gKi5vCistCistYmxvYi1z Lm8gOiBibG9iLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7 SU5DTFVERURJUlN9CistCistY29tbW9uLXMubyA6IGNvbW1vbi5jcHAKKy0JJHtDT01QSUxFUn0g LWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLWZhY3Rvcnktcy5v IDogZmFjdG9yeS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAk e0lOQ0xVREVESVJTfQorLQorLXJvdy1pZC1zLm8gOiByb3ctaWQuY3BwCistCSR7Q09NUElMRVJ9 IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zZXNzaW9uLXMu byA6IHNlc3Npb24uY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30g JHtJTkNMVURFRElSU30KKy0KKy1zdGFuZGFyZC1pbnRvLXR5cGUtcy5vIDogc3RhbmRhcmQtaW50 by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5D TFVERURJUlN9CistCistc3RhbmRhcmQtdXNlLXR5cGUtcy5vIDogc3RhbmRhcmQtdXNlLXR5cGUu Y3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElS U30KKy0KKy1zdGF0ZW1lbnQtcy5vIDogc3RhdGVtZW50LmNwcAorLQkke0NPTVBJTEVSfSAtYyAt byAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLWludG8tdHlw ZS1zLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAk e0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLXVzZS10eXBlLXMubyA6IHZl Y3Rvci11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NP fSAke0lOQ0xVREVESVJTfQorLQorLQorLWNsZWFuIDoKKy0Jcm0gLWYgbGlic29jaV9wb3N0Z3Jl c3FsLmEgbGlic29jaV9wb3N0Z3Jlc3FsLnNvCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL01ha2VmaWxlLmluCTIwMTEtMDItMDggMjI6Mzk6NTcuMDAwMDAwMDAwICswMTAw CitAQCAtMCwwICsxLDkwMyBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtl IDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENv cHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAw MSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMg ZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5s aW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGgg b3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNl cnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUg ZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIg UFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrCisrCisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2Rh dGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFD S0FHRUAKKytwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKKythbV9fY2Qg PSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5z dGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dS QU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gp IC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHBy b2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwg PSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5T VEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAor K2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChhbV9fcGtnaW5jbHVkZV9I RUFERVJTX0RJU1QpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCisrCSQoc3JjZGlyKS9NYWtlZmls ZS5pbiAkKHNyY2Rpcikvc291cmNlcy5tayBcCisrCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29t bW9uCisrc3ViZGlyID0gc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsCisrQUNMT0NBTF9NNCA9ICQo dG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3Fs Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3Vy ZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05G SUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0g JChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9j b25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVT ID0KKythbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIg fCBzZWQgJ3N8LnwufGcnYDsKKythbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAorKyAgICAk KHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsg XAorKyAgICAqKSBmPSQkcDs7IFwKKysgIGVzYWM7CisrYW1fX3N0cmlwX2RpciA9IGY9YGVjaG8g JCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworK2FtX19pbnN0YWxsX21heCA9IDQwCisrYW1fX25v YmFzZV9zdHJpcF9zZXR1cCA9IFwKKysgIHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwg c2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKKythbV9fbm9iYXNlX3N0cmlwID0gXAorKyAg Zm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkIC1lICJzfCQkc3JjZGly c3RyaXAvfHwiCisrYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsg XAorKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKysgIHNl ZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAuKlwvLyFzLyAuKi8gLi87IHMsXCggLipcKS9b Xi9dKiQkLFwxLCcgfCBcCisrICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0geyBm aWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCisrICAgIGlmICgrK25bJCQyXSA9PSAk KGFtX19pbnN0YWxsX21heCkpIFwKKysgICAgICB7IHByaW50ICQkMiwgZmlsZXNbJCQyXTsgblsk JDJdID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBcCisrICAgIEVORCB7IGZvciAoZGlyIGluIGZp bGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKKythbV9fYmFzZV9saXN0ID0gXAorKyAgc2Vk ICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJyB8IFwKKysgIHNl ZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKKythbV9faW5zdGFsbGRpcnMgPSAiJChE RVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgorK0xUTElCUkFS SUVTID0gJChsaWJfTFRMSUJSQVJJRVMpCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0RFUEVOREVO Q0lFUyA9CisrYW1fX2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9TT1VSQ0VTX0RJU1QgPSAgXAorKwkk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uaCBcCisrCSQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oIFwKKysJ JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAgXAorKwkkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwIFwKKysJJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAgXAorKwkkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwIFwKKysJJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAgXAorKwkkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKKysJ JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUu Y3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50 LmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1p bnRvLXR5cGUuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv dmVjdG9yLXVzZS10eXBlLmNwcAorK2FtX19vYmplY3RzXzEgPQorK2FtX19vYmplY3RzXzIgPSBs aWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbyBcCisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1j b21tb24ubG8gXAorKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbyBcCisrCWxpYnNv Y2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQubG8gXAorKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vz c2lvbi5sbyBcCisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8g XAorKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gXAorKwlsaWJz b2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LmxvIFwKKysJbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXZlY3Rvci1pbnRvLXR5cGUubG8gXAorKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVz ZS10eXBlLmxvCisrQEhBVkVfUE9TVEdSRVNRTF9UUlVFQGFtX2xpYnNvY2lfcG9zdGdyZXNxbF9s YV9PQkpFQ1RTID0gIFwKKytASEFWRV9QT1NUR1JFU1FMX1RSVUVACSQoYW1fX29iamVjdHNfMSkg JChhbV9fb2JqZWN0c18yKQorK2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9PQkpFQ1RTID0gJChhbV9s aWJzb2NpX3Bvc3RncmVzcWxfbGFfT0JKRUNUUykKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTElO SyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElCVE9P TEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSBcCisrCSQobGlic29jaV9wb3N0Z3Jlc3FsX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSBcCisrCSQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xERkxB R1MpICQoTERGTEFHUykgLW8gJEAKKytASEFWRV9QT1NUR1JFU1FMX1RSVUVAYW1fbGlic29jaV9w b3N0Z3Jlc3FsX2xhX3JwYXRoID0gLXJwYXRoIFwKKytASEFWRV9QT1NUR1JFU1FMX1RSVUVACSQo bGliZGlyKQorK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRk aXIpL3NvY2kKKytkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29t cAorK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCisrYW1fX212ID0gbXYgLWYKKytDWFhD T01QSUxFID0gJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBc CisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp CisrTFRDWFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQorK0NYWExEID0gJChDWFgpCisrQ1hYTElOSyA9 ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg XAorKwktLW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFN X0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAkQAorK0NPTVBJTEUgPSAkKENDKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorKwkkKENQ UEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCisrTFRDT01QSUxFID0gJChMSUJUT09MKSAt LXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNv bXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJ JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorK0NDTEQg PSAkKENDKQorK0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENG TEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytTT1VSQ0VTID0gJChs aWJzb2NpX3Bvc3RncmVzcWxfbGFfU09VUkNFUykKKytESVNUX1NPVVJDRVMgPSAkKGFtX19saWJz b2NpX3Bvc3RncmVzcWxfbGFfU09VUkNFU19ESVNUKQorK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxs LXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVjdXJz aXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWR2 aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtaHRtbC1yZWN1 cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBp bnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVjay1y ZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorKwlwcy1yZWN1 cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK2FtX19wa2dpbmNsdWRlX0hFQURFUlNfRElTVCA9 ICBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdy ZXNxbC5oCisrSEVBREVSUyA9ICQocGtnaW5jbHVkZV9IRUFERVJTKQorK1JFQ1VSU0lWRV9DTEVB Tl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCisrICBk aXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrQU1fUkVDVVJT SVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCisrCSQoUkVD VVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBc CisrCWRpc3RkaXIKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElS UyA9ICQoU1VCRElSUykKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNF UykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK2FtX19yZWxhdGl2aXplID0gXAorKyAgZGly MD1gcHdkYDsgXAorKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCisrICBz ZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAorKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14vXSpcKSQk LFwxLCc7IFwKKysgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAorKyAgd2hpbGUgdGVz dCAtbiAiJCRkaXIxIjsgZG8gXAorKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAi JCRzZWRfZmlyc3QiYDsgXAorKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAor KyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCisrICAgICAgICBkaXIyPWBl Y2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKKysgICAgICAg IGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAorKyAgICAg IGVsc2UgXAorKyAgICAgICAgZmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9m aXJzdCJgOyBcCisrICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4g XAorKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7 IFwKKysgICAgICAgIGVsc2UgXAorKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCisrICAg ICAgICBmaTsgXAorKyAgICAgICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKKysgICAgICBm aTsgXAorKyAgICBmaTsgXAorKyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNl ZF9yZXN0ImA7IFwKKysgIGRvbmU7IFwKKysgIHJlbGRpcj0iJCRkaXIyIgorK3BrZ2luY2x1ZGVk aXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0g QEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIg PSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JP T1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09T VF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNU RU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytC T09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElC QAorK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAorK0JPT1NU X1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09T VF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJP T1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJ WkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytC T09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9 IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJP T1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVS U0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05f TElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENG TEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZM QUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklH QAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQ UFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQ TU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9 IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVU SUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NA CisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQ QAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZ X1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lO U1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RB TExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFM TF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JB TUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpT QAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAor K0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1B S0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZM QUdTQAorK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAorK01ZU1FMX0RJUlMgPSBATVlTUUxf RElSU0AKKytNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNR TF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBP QkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNA CisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9M REZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JB Q0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAK KytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdS RVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9 IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAor K1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdF X1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQ RVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9T VEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQ T1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVS U0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytTRUQgPSBA U0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVB REVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9 IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0g QFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0g QGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fi c190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAor K2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklO QAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9f bGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190 YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxk ID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBi dWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxk X3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisr ZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2Rp ciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlk aXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhA CisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9h bGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9z dF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVk aXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBp bnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisr bGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9j YWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJf cCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIg PSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9 IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBA c2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0 YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAor K3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3Bf YnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2Rp ciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRv cF9zcmNkaXIpCisrYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmggXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKKysK KytiY2tfcG9zdGdyZXNxbF9jY19zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJk LWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAgXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVz ZS10eXBlLmNwcAorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytTVUJE SVJTID0gLiB0ZXN0CisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5f Y29tbW9uLmgKKytFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJ VFkpCisrQEhBVkVfUE9TVEdSRVNRTF9UUlVFQGxpYl9MVExJQlJBUklFUyA9IGxpYnNvY2lfcG9z dGdyZXNxbC5sYQorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxfbGFf U09VUkNFUyA9ICQoYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzKSAkKGJja19wb3N0Z3Jlc3FsX2Nj X3NvdXJjZXMpIAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxfbGFf Q1hYRkxBR1MgPSAkKFBPU1RHUkVTUUxfQ0ZMQUdTKQorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBs aWJzb2NpX3Bvc3RncmVzcWxfbGFfTElCQUREID0gCisrQEhBVkVfUE9TVEdSRVNRTF9UUlVFQGxp YnNvY2lfcG9zdGdyZXNxbF9sYV9MREZMQUdTID0gXAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUAJ JChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQikgXAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUAJLXZlcnNpb24taW5mbyAkKEdFTkVS SUNfTElCUkFSWV9WRVJTSU9OKQorKworK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBwa2dpbmNsdWRl X0hFQURFUlMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBv c3RncmVzcWwuaAorK0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIg PSAkKGluY2x1ZGVkaXIpCisrQFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1ZGVf ZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwKKythbGw6IGFsbC1y ZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrLlNVRkZJWEVTOiAuY3BwIC5sbyAubyAub2JqCisr JChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2Rp cikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9k ZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9k ZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAgICAm JiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkg ICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRv cF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9N YWtlZmlsZSc7IFwKKysJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01B S0UpIC0tZ251IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZQorKy5QUkVDSU9VUzog TWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGly KS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikg XAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19t YXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcu c3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7Cisr CisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJl ICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29u ZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFt X19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisraW5zdGFs bC1saWJMVExJQlJBUklFUzogJChsaWJfTFRMSUJSQVJJRVMpCisrCUAkKE5PUk1BTF9JTlNUQUxM KQorKwl0ZXN0IC16ICIkKGxpYmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGxpYmRp cikiCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyB0ZXN0IC1uICIkKGxpYmRpcikiIHx8 IGxpc3Q9OyBcCisrCWxpc3QyPTsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAt ZiAkJHA7IHRoZW4gXAorKwkgICAgbGlzdDI9IiQkbGlzdDIgJCRwIjsgXAorKwkgIGVsc2UgOjsg Zmk7IFwKKysJZG9uZTsgXAorKwl0ZXN0IC16ICIkJGxpc3QyIiB8fCB7IFwKKysJICBlY2hvICIg JChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0 YWxsICQoSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICQkbGlzdDIgJyQoREVTVERJUikk KGxpYmRpciknIjsgXAorKwkgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAk JGxpc3QyICIkKERFU1RESVIpJChsaWJkaXIpIjsgXAorKwl9CisrCisrdW5pbnN0YWxsLWxpYkxU TElCUkFSSUVTOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChsaWJfTFRMSUJS QVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIpIiB8fCBsaXN0PTsgXAorKwlmb3IgcCBpbiAkJGxp c3Q7IGRvIFwKKysJICAkKGFtX19zdHJpcF9kaXIpIFwKKysJICBlY2hvICIgJChMSUJUT09MKSAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYg JyQoREVTVERJUikkKGxpYmRpcikvJCRmJyI7IFwKKysJICAkKExJQlRPT0wpICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAiJChERVNURElS KSQobGliZGlyKS8kJGYiOyBcCisrCWRvbmUKKysKKytjbGVhbi1saWJMVExJQlJBUklFUzoKKysJ LXRlc3QgLXogIiQobGliX0xUTElCUkFSSUVTKSIgfHwgcm0gLWYgJChsaWJfTFRMSUJSQVJJRVMp CisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJ ICBkaXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCisrCSAgdGVzdCAi JCRkaXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCisrCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3Nv X2xvY2F0aW9uc1wiIjsgXAorKwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKKysJ ZG9uZQorK2xpYnNvY2lfcG9zdGdyZXNxbC5sYTogJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfT0JK RUNUUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfREVQRU5ERU5DSUVTKSAKKysJJChsaWJzb2Np X3Bvc3RncmVzcWxfbGFfTElOSykgJChhbV9saWJzb2NpX3Bvc3RncmVzcWxfbGFfcnBhdGgpICQo bGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJ QkFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQoT0JK RVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi50YWIuYworKworK0BBTURF UF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3Rn cmVzcWxfbGEtYmxvYi5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAg QGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLlBsb0Bh bV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBE SVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LlBsb0BhbV9fcXVvdGVACisrQEFNREVQ X1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdy ZXNxbF9sYS1yb3ctaWQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24uUGxv QGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5QbG9AYW1fX3F1 b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9s aWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKKytA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9w b3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9f aW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVj dG9yLWludG8tdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAg QGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10 eXBlLlBsb0BhbV9fcXVvdGVACisrCisrLmNwcC5vOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRA ICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQo REVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENY WENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrLmNwcC5vYmo6CisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMg LW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19t dikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQ QkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICck PCdgCisrCisrLmNwcC5sbzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUp IC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5Q bG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVj dD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXAp IEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxF KSAtYyAtbyAkQCAkPAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLmxvOiAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNwcAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jl c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJs b2IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLlRw byAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLWJsb2IuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5QbG8KKytA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jl c3FsX2xhLWJsb2IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAk KGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElC VE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv YmxvYi5jcHAKKysKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvOiAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVz cWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29t bW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9u LlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24u Y3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9w b3N0Z3Jlc3FsX2xhLWNvbW1vbi5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1j b21tb24uUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAnIG9iamVjdD0n bGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NM QVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9z dGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLWNvbW1vbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvY29tbW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9s YS1mYWN0b3J5LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0 b3J5LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQg bGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xp YnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxf bGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkuVHBvICQo REVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5QbG8KKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZh Y3RvcnkubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkg IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv ZmFjdG9yeS5jcHAKKysKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvOiAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwCisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3Rn cmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEt cm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93 LWlkLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ct aWQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29j aV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9s YS1yb3ctaWQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAnIG9iamVj dD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFD S1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf cG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXJvdy1pZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcAorKworK2xpYnNvY2lfcG9zdGdyZXNx bF9sYS1zZXNzaW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z ZXNzaW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt TVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8gLU1EIC1NUCAtTUYgJChERVBESVIp L2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVz cWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24uVHBv ICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5QbG8KKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXNlc3Npb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9P TCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc2Vzc2lvbi5jcHAKKysKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10 eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1p bnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlRw byAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRv LXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWlu dG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRv LXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5j cHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbycg bGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10 eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAorKworK2xpYnNvY2lfcG9zdGdyZXNx bF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo TElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNl LXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFu ZGFyZC11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVz ZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9s YS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1z dGFuZGFyZC11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQt dXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2Ut dHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFy ZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorKworK2xpYnNvY2lfcG9z dGdyZXNxbF9sYS1zdGF0ZW1lbnQubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3N0YXRlbWVudC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gLU1EIC1NUCAt TUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxp YnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX3Bvc3Rn cmVzcWxfbGEtc3RhdGVtZW50LlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0 YXRlbWVudC5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0n JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1E RVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bv c3RncmVzcWxfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwCisrCisrbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3Rn cmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEt dmVjdG9yLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12 ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX3Bvc3Rn cmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNx bF9sYS12ZWN0b3ItaW50by10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0 b3ItaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWlu dG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09M KSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rv ci1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAorKworK2xpYnNvY2lfcG9z dGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNl LXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0 b3ItdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5 cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Zl Y3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9y LXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2Ut dHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCcg b2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvJyBsaWJ0b29s PXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBs aWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92 ZWN0b3ItdXNlLXR5cGUuY3BwCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICou bG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisraW5zdGFsbC1w a2dpbmNsdWRlSEVBREVSUzogJChwa2dpbmNsdWRlX0hFQURFUlMpCisrCUAkKE5PUk1BTF9JTlNU QUxMKQorKwl0ZXN0IC16ICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RE SVIpJChwa2dpbmNsdWRlZGlyKSIKKysJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IHRl c3QgLW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBcCisrCWZvciBwIGluICQkbGlzdDsg ZG8gXAorKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7 IGZpOyBcCisrCSAgZWNobyAiJCRkJCRwIjsgXAorKwlkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8 IFwKKysJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorKwkgIGVjaG8gIiAkKElOU1RBTExfSEVBREVS KSAkJGZpbGVzICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSciOyBcCisrCSAgJChJTlNUQUxM X0hFQURFUikgJCRmaWxlcyAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiIHx8IGV4aXQgJCQ/ OyBcCisrCWRvbmUKKysKKyt1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6CisrCUAkKE5PUk1B TF9VTklOU1RBTEwpCisrCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyB0ZXN0IC1uICIk KHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAorKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBk byBlY2hvICQkcDsgZG9uZSB8IHNlZCAtZSAnc3xeLiovfHwnYDsgXAorKwl0ZXN0IC1uICIkJGZp bGVzIiB8fCBleGl0IDA7IFwKKysJZWNobyAiICggY2QgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVk aXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKysJY2QgIiQoREVTVERJUikkKHBrZ2luY2x1 ZGVkaXIpIiAmJiBybSAtZiAkJGZpbGVzCisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVj dG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBh bmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRv IGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGlu ZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0 YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhl IE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgy KSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFu ZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAx JzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAor KwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7 IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBl Y2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRz dWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRv dF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBl bHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAo JChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFy Z2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0ICIk JGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIk JHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisrCisrJChS RUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisr CWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAq PSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkg IGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAor KwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElS UyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2 PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAg Zmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8 IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkg IGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwK KysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwK KysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9j YWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16 ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2Nk KSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisr Y3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxp c3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDogJChI RUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJD RVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1m SUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFE RVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMp ICQoTElTUCkKKysJc2V0IHg7IFwKKysJaGVyZT1gcHdkYDsgXAorKwlpZiAoJChFVEFHUykgLS1l dGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKysJICBpbmNs dWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9LjsgXAorKwllbHNl IFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9OyBcCisr CWZpOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAor KwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0ICEg LWYgJCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlv bj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9 JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlx dWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBl Y2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJ ICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVO RCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAor KwlzaGlmdDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVu IDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7 IFwKKysJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdT RkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAgICIkJEAiICQk dW5pcXVlOyBcCisrCSAgZWxzZSBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1f RVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAgICQkdW5pcXVlOyBcCisrCSAgZmk7 IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVS UykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAk KExJU1ApCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklM RVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAt ZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisr CSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsg fSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50 IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKKysJICB8 fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBc CisrCSAgICAgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1 aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCisrCSAg JiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorKworK2Rpc3RjbGVhbi10YWdzOgor Kwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3Rk aXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQg J3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRv cF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChE SVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNo byAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwK KysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsg XAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIk JGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywv W14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZp bGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAt ZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3Qg LWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1l ICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUi OyB0aGVuIFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVy bSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAgaWYg dGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBc CisrCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBl eGl0IDE7IFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVy bSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAgY3Ag LWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgIGVsc2Ug XAorKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGNwIC1wICQk ZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBm aTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisr CSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1Ap ICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAor Kwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICBk aXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAorKwkgICAgJChhbV9f cmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCisrCSAgICBkaXIx PSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKKysJICAgICQoYW1fX3JlbGF0aXZp emUpOyBcCisrCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGVjaG8gIiAo Y2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3 X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKKysJICAgIGVjaG8g IiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3Nr aXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKKysJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYg XAorKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3Rk aXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRp ciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNr PTogXAorKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCisrCSAgICAgICAgZGlzdGRpcikgXAorKwkg ICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQor K2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMp ICQoSEVBREVSUykKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFs bGRpcnMtYW06CisrCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIp JChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKKysJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9Q KSAiJCRkaXIiOyBcCisrCWRvbmUKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3Rh bGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1k YXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3Rh bGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFt IGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2 ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJP R1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFN PSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAg YHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5W PVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6Cisr CisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQo Q09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCS10 ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxF UykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorKworK21haW50YWluZXIt Y2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFp bnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1 aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJD TEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xl YW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGliTFRMSUJS QVJJRVMgY2xlYW4tbGlidG9vbCBcCisrCW1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBk aXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2Vm aWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4t Z2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisr ZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraHRtbC1hbToKKysKKytpbmZv OiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOiBpbnN0 YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vy c2l2ZQorKworK2luc3RhbGwtZHZpLWFtOgorKworK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1s aWJMVExJQlJBUklFUworKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQor KworK2luc3RhbGwtaHRtbC1hbToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1 cnNpdmUKKysKKytpbnN0YWxsLWluZm8tYW06CisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFs bC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcGRmLWFtOgorKworK2lu c3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wcy1hbToKKysKKytp bnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1y ZWN1cnNpdmUKKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWlu dGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisr CisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFt OiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVh bi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBw cy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1saWJM VExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKysuTUFLRTogJChSRUNV UlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZl IFwKKysJaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3MtcmVjdXJzaXZlCisrCisrLlBIT05Z OiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBH VEFHUyBcCisrCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBc CisrCWNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgY3RhZ3MgY3RhZ3MtcmVjdXJz aXZlIFwKKysJZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwK KysJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0 bWwgXAorKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1k YXRhIFwKKysJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3Rh bGwtZXhlYyBcCisrCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFt IGluc3RhbGwtaW5mbyBcCisrCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLWxpYkxUTElCUkFSSUVT IGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKKysJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wa2dp bmNsdWRlSEVBREVSUyBpbnN0YWxsLXBzIFwKKysJaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlw IGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gXAorKwlpbnN0YWxsZGlycyBpbnN0YWxsZGly cy1hbSBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3Rs eWNsZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUgXAorKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3Rs eWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCisrCXRhZ3MgdGFncy1yZWN1cnNp dmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSBcCisrCXVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1 bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKytAU0VUX01BS0VACisrCisrIyBUZWxsIHZl cnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxl cy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBi ZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9zb3VyY2VzLm1rCistLS0gc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0w LDAgKzEsMTQgQEAKKytiY2tfcG9zdGdyZXNxbF9oX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uaCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAor K2Jja19wb3N0Z3Jlc3FsX2NjX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwIFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAgXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAgXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQt aW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNl LXR5cGUuY3BwCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAy MDAKK0BAIC0wLDAgKzEsMTggQEAKKysjIyBjb3JlIHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQo dG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisraW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5t aworKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytpZiBSVU5fVEVT VFMKKysgIG5vaW5zdF9QUk9HUkFNUyA9IHRlc3RfcG9zdGdyZXNxbAorK2VuZGlmCisrCisrdGVz dF9wb3N0Z3Jlc3FsX1NPVVJDRVMgPSAkKHBvc3RncmVzcWxfdGVzdF9jY19zb3VyY2VzKQorK3Rl c3RfcG9zdGdyZXNxbF9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKQorK3Rlc3RfcG9zdGdyZXNx bF9MREFERCA9CisrdGVzdF9wb3N0Z3Jlc3FsX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29j aS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKKysJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvbGlic29jaV9wb3N0Z3Jlc3FsLmxhIFwKKysJCSQoUE9TVEdSRVNR TF9MREZMQUdTKQorKworKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChwb3N0Z3Jlc3Fs X3Rlc3RfaF9zb3VyY2VzKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5iYXNpYworLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCTIwMTEt MDItMDkgMDA6MzA6MzIuNTk1OTE2Mjk4ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCitAQCAtMSwyMiArMCwwIEBACistIyBUaGUgZm9sbG93aW5n IHZhcmlhYmxlIGlzIHNwZWNpZmljIHRvIHRoaXMgYmFja2VuZCBhbmQgaXRzIGNvcnJlY3QKKy0j IHZhbHVlcyBtaWdodCBkZXBlbmQgb24geW91ciBlbnZpcm9ubWVudCAtIGZlZWwgZnJlZSB0byBz ZXQgaXQgYWNjb3JkaW5nbHkuCistCistUEdTUUxJTkNMVURFRElSID0gLUkvdXNyL2luY2x1ZGUK Ky1QR1NRTExJQkRJUiA9IC1ML3Vzci9saWIKKy1QR1NRTExJQlMgPSAtbHBxCistCistIyBUaGUg cmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9u bWVudC4KKy0KKy1DT01QSUxFUiA9IGcrKworLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1X bm8tbG9uZy1sb25nCistSU5DTFVERURJUlMgPSAtSS4uIC1JLi4vLi4vLi4vY29yZS90ZXN0IC1J Li4vLi4vLi4vY29yZSAke1BHU1FMSU5DTFVERURJUn0KKy1MSUJESVJTID0gLUwuLiAtTC4uLy4u Ly4uL2NvcmUgJHtQR1NRTExJQkRJUn0KKy1MSUJTID0gLWxzb2NpX2NvcmUgLWxzb2NpX3Bvc3Rn cmVzcWwgLWxkbCAke1BHU1FMTElCU30KKy0KKy0KKy10ZXN0LXBvc3RncmVzcWwgOiB0ZXN0LXBv c3RncmVzcWwuY3BwCistCSR7Q09NUElMRVJ9IC1vICRAICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVE RURJUlN9ICR7TElCRElSU30gJHtMSUJTfQorLQorLQorLWNsZWFuIDoKKy0Jcm0gLWYgdGVzdC1w b3N0Z3Jlc3FsCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuaW4JMjAxMS0wMi0wOCAyMjozOTo1Ny4wMDAwMDAwMDAgKzAx MDAKK0BAIC0wLDAgKzEsNTU4IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21h a2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMg Q29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAy MDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBp cyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1 bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0 aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJl c2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRo ZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxB UiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKysKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0 YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRp cikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmV4 ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNI X1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAk KGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9z aCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hF QURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1f bmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RB TEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1Rf VU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0g QGhvc3RACisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01h a2VmaWxlLmluIFwKKysJJChzcmNkaXIpL3NvdXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmls ZS5jb21tb24KKytAUlVOX1RFU1RTX1RSVUVAbm9pbnN0X1BST0dSQU1TID0gdGVzdF9wb3N0Z3Jl c3FsJChFWEVFWFQpCisrc3ViZGlyID0gc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QKKytB Q0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVw cyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2Np Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0 b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVy c2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3Ny Y2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9t NF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21r aW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1 aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytDT05GSUdfQ0xF QU5fVlBBVEhfRklMRVMgPQorK1BST0dSQU1TID0gJChub2luc3RfUFJPR1JBTVMpCisrYW1fX29i amVjdHNfMSA9IHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuJChPQkpFWFQpCisrYW1f dGVzdF9wb3N0Z3Jlc3FsX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpCisrdGVzdF9wb3N0Z3Jl c3FsX09CSkVDVFMgPSAkKGFtX3Rlc3RfcG9zdGdyZXNxbF9PQkpFQ1RTKQorK3Rlc3RfcG9zdGdy ZXNxbF9ERVBFTkRFTkNJRVMgPQorK3Rlc3RfcG9zdGdyZXNxbF9MSU5LID0gJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwKKysJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1s aW5rICQoQ1hYTEQpIFwKKysJJCh0ZXN0X3Bvc3RncmVzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IFwKKysJJCh0ZXN0X3Bvc3RncmVzcWxfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorK0RFRkFV TFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKKytkZXBj b21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAorK2FtX19kZXBmaWxl c19tYXliZSA9IGRlcGZpbGVzCisrYW1fX212ID0gbXYgLWYKKytDWFhDT01QSUxFID0gJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrTFRDWFhDT01QSUxF ID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSBcCisrCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdT KSAkKENYWEZMQUdTKQorK0NYWExEID0gJChDWFgpCisrQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGlu ayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJ JChMREZMQUdTKSAtbyAkQAorK1NPVVJDRVMgPSAkKHRlc3RfcG9zdGdyZXNxbF9TT1VSQ0VTKQor K0RJU1RfU09VUkNFUyA9ICQodGVzdF9wb3N0Z3Jlc3FsX1NPVVJDRVMpCisrRVRBR1MgPSBldGFn cworK0NUQUdTID0gY3RhZ3MKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09V UkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytB TVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRP SEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFX S0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIg PSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9G SUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19M SUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX01QSV9MSUIgPSBAQk9PU1Rf TVBJX0xJQkAKKytCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAK KytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJA CisrQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAorK0JPT1NUX1JFR0VYX0xJ QiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1Rf U0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19M SUJACisrQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAorK0JPT1NUX1RIUkVB RF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJ QiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJP T1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJ WkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFH UyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBV TklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklU X0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lP TiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAor K0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQ QVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAor K0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBA RUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9 IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNf TElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JF UEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAK KytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0g QElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQ X1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBA TElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBA TElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5G TyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1Z U1FMX0NGTEFHU0AKKytNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKKytNWVNRTF9ESVJTID0g QE1ZU1FMX0RJUlNACisrTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAorK01ZU1FMX1ZFUlNJT04g PSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkRV TVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNM RV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNM RV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9O ID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0ID0gQE9U T09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tB R0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9T VFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFS TkFNRUAKKytQQUNLQUdFX1VSTCA9IEBQQUNLQUdFX1VSTEAKKytQQUNLQUdFX1ZFUlNJT04gPSBA UEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BF UkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdT ID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJ UlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JF U1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisr U0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytT T0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9I RUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisr U1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVS U0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3Ny Y2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRp ckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19j dF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3Rf RFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3Qg PSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9 IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAK KytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9j cHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9 IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRh ZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AK Kytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIg PSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNf cHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0g QGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29z QAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytp bmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxf c2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGli ZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGly QAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKyttYW5kaXIgPSBAbWFuZGlyQAor K21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisr cGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3Jt X25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmlu ZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBz aGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29u ZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXgg PSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3Rv cF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIp IC1JJCh0b3Bfc3JjZGlyKQorK3Bvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMgPSAKKytwb3N0Z3Jl c3FsX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFr ZWZpbGUuaW4KKyt0ZXN0X3Bvc3RncmVzcWxfU09VUkNFUyA9ICQocG9zdGdyZXNxbF90ZXN0X2Nj X3NvdXJjZXMpCisrdGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpCisr dGVzdF9wb3N0Z3Jlc3FsX0xEQUREID0gCisrdGVzdF9wb3N0Z3Jlc3FsX0xERkxBR1MgPSAkKHRv cF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKKysJCSQodG9wX2J1 aWxkZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvbGlic29jaV9wb3N0Z3Jlc3FsLmxhIFwK KysJCSQoUE9TVEdSRVNRTF9MREZMQUdTKQorKworK2FsbDogYWxsLWFtCisrCisrLlNVRkZJWEVT OgorKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjog ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNy Y2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87 IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRl cCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVu IGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVz YWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtF KSAtLWdudSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSc7IFwKKysJJChh bV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01h a2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0 dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBc CisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAu L2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJ ICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJk aXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWls ZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RB VFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFt X19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRf ZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoCisrJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKKysKKytjbGVhbi1ub2luc3RQUk9H UkFNUzoKKysJQGxpc3Q9JyQobm9pbnN0X1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwg ZXhpdCAwOyBcCisrCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisrCXJtIC1mICQkbGlzdCB8fCBl eGl0ICQkPzsgXAorKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAorKwlsaXN0PWBm b3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgJ3MvJChFWEVFWFQpJCQv LydgOyBcCisrCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisrCXJtIC1mICQkbGlzdAorK3Rlc3Rf cG9zdGdyZXNxbCQoRVhFRVhUKTogJCh0ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUykgJCh0ZXN0X3Bv c3RncmVzcWxfREVQRU5ERU5DSUVTKSAKKysJQHJtIC1mIHRlc3RfcG9zdGdyZXNxbCQoRVhFRVhU KQorKwkkKHRlc3RfcG9zdGdyZXNxbF9MSU5LKSAkKHRlc3RfcG9zdGdyZXNxbF9PQkpFQ1RTKSAk KHRlc3RfcG9zdGdyZXNxbF9MREFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6 CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYg Ki50YWIuYworKworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQ RElSKS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlBvQGFtX19xdW90ZUAKKysKKysu Y3BwLm86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAt TVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29s PW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysK KysuY3BwLm9iajoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAg LU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdg CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQ RElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck PCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENP TVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKysKKysuY3BwLmxvOgorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQ RElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYp ICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrdGVzdF9w b3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFH UykgLU1UIHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwubyAtTUQgLU1QIC1NRiAkKERF UERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5UcG8gLWMgLW8gdGVzdF9wb3N0 Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1w b3N0Z3Jlc3FsLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIp L3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuVHBvICQoREVQRElSKS90ZXN0X3Bvc3Rn cmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qv dGVzdC1wb3N0Z3Jlc3FsLmNwcCcgb2JqZWN0PSd0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jl c3FsLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9wb3N0 Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1w b3N0Z3Jlc3FsLmNwcAorKworK3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqOiAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNx bC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfcG9z dGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBv c3RncmVzcWwub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1w b3N0Z3Jlc3FsLlRwbyAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm9iaiBg aWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90 ZXN0LXBvc3RncmVzcWwuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCc7IGVsc2UgJChD WUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgZmlgCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoYW1fX212KSAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5UcG8g JChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuUG8KKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJyBvYmplY3Q9J3Rlc3RfcG9z dGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAK KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X3Bvc3RncmVzcWxfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqIGBpZiB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9z dGdyZXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgZWxzZSAkKENZR1BBVEhf VykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0 L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyBmaWAKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwkt cm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysK KytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0 PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlx dWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBl Y2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJ ICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVO RCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAor Kwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogICQoSEVBREVSUykg JChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJ U1ApCisrCXNldCB4OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhF QURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRs aXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVj aG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxl c1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5 KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXNoaWZ0OyBcCisrCWlm IHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAg dGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgIGlmIHRlc3Qg JCQjIC1ndCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFH U0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKysJICBl bHNlIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVU QUdTX0FSR1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBmaTsgXAorKwlmaQorK2N0YWdz OiBDVEFHUworK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5D SUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhF QURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRs aXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVj aG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxl c1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5 KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RB R1NfQVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9D VEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1ZQorKworK0dUQUdTOgor KwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmICQoYW1f X2NkKSAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhl cmUiCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBH U1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJp cD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJ dG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpd L1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1g Zm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUg InN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJp cC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJ ICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcv XC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVg IDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBp ZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNy Y2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRp cj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0 ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3Rk aXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7 IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVz dCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRm aWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3Rk aXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7 IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRp ciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQk ZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwK KysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFt CisrY2hlY2s6IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKQorK2luc3Rh bGxkaXJzOgorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhl Yy1hbQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisrdW5pbnN0YWxsOiB1bmluc3Rh bGwtYW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3Rh bGxjaGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElO U1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9z aF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0t cyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BS T0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdl bmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRl c3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklM RVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9W UEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorKworK21h aW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRl ZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0 IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1B SU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytj bGVhbjogY2xlYW4tYW0KKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29s IGNsZWFuLW5vaW5zdFBST0dSQU1TIFwKKysJbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46 IGRpc3RjbGVhbi1hbQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQor K2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVy aWMgXAorKwlkaXN0Y2xlYW4tdGFncworKworK2R2aTogZHZpLWFtCisrCisrZHZpLWFtOgorKwor K2h0bWw6IGh0bWwtYW0KKysKKytodG1sLWFtOgorKworK2luZm86IGluZm8tYW0KKysKKytpbmZv LWFtOgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmkt YW0KKysKKytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFs bC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWh0bWwtYW06CisrCisraW5zdGFs bC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KKysKKytpbnN0YWxsLWluZm8tYW06CisrCisraW5zdGFs bC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisrCisraW5zdGFsbC1wZGYt YW06CisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorKworK2luc3RhbGwtcHMtYW06Cisr CisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xl YW4tYW0KKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFp bmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisr bW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNs ZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wK KysKKytwZGY6IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczogcHMtYW0KKysKKytwcy1hbToK KysKKyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAor KworKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBj bGVhbi1nZW5lcmljIFwKKysJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBjdGFn cyBkaXN0Y2xlYW4gXAorKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0 Y2xlYW4tbGlidG9vbCBcCisrCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1s IGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKKysJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0 YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAorKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxs LWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCisrCWluc3RhbGwtaHRtbC1hbSBp bnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKKysJaW5zdGFsbC1wZGYg aW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKKysJaW5zdGFsbC1zdHJp cCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKKysJbWFpbnRhaW5l ci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorKwltb3N0bHlj bGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBcCisr CXBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNF VF9NQUtFQAorKworKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChwb3N0Z3Jlc3FsX3Rl c3RfaF9zb3VyY2VzKQorKworKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFr ZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGlt aXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Nv dXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0 L3NvdXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvdGVzdC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisr Kysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3NvdXJj ZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMiBA QAorK3Bvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMgPQorK3Bvc3RncmVzcWxfdGVzdF9jY19zb3Vy Y2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBv c3RncmVzcWwuY3BwCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb25maWcuaC5p biBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb25maWcuaC5pbgorLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvY29uZmlnLmguaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb25maWcuaC5pbgkyMDExLTAyLTA4IDIyOjM5 OjU0LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSwxNTggQEAKKysvKiBzb2NpL2NvbmZpZy5o LmluLiAgR2VuZXJhdGVkIGZyb20gY29uZmlndXJlLmFjIGJ5IGF1dG9oZWFkZXIuICAqLworKwor Ky8qIGRlZmluZSBpZiB0aGUgQm9vc3QgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYg SEFWRV9CT09TVAorKworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OkFzaW8gbGlicmFyeSBpcyBh dmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9BU0lPCisrCisrLyogZGVmaW5lIGlmIHRo ZSBCb29zdDo6RGF0ZV9UaW1lIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVf Qk9PU1RfREFURV9USU1FCisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6RklMRVNZU1RFTSBs aWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRlZiBIQVZFX0JPT1NUX0ZJTEVTWVNURU0KKysK KysvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpJT1N0cmVhbXMgbGlicmFyeSBpcyBhdmFpbGFibGUg Ki8KKysjdW5kZWYgSEFWRV9CT09TVF9JT1NUUkVBTVMKKysKKysvKiBkZWZpbmUgaWYgdGhlIEJv b3N0OjpNcGkgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9NUEkK KysKKysvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpNcGlfUHl0aG9uIGxpYnJhcnkgaXMgYXZhaWxh YmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfTVBJX1BZVEhPTgorKworKy8qIGRlZmluZSBpZiB0 aGUgQm9vc3Q6OlBST0dSQU1fT1BUSU9OUyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRl ZiBIQVZFX0JPT1NUX1BST0dSQU1fT1BUSU9OUworKworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6 OlJlZ2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfUkVHRVgK KysKKysvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpTZXJpYWxpemF0aW9uIGxpYnJhcnkgaXMgYXZh aWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfU0VSSUFMSVpBVElPTgorKworKy8qIGRlZmlu ZSBpZiB0aGUgQm9vc3Q6OlNpZ25hbHMgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYg SEFWRV9CT09TVF9TSUdOQUxTCisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6U1lTVEVNIGxp YnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfU1lTVEVNCisrCisrLyog ZGVmaW5lIGlmIHRoZSBCb29zdDo6VEhSRUFEIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3Vu ZGVmIEhBVkVfQk9PU1RfVEhSRUFECisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6VW5pdF90 ZXN0X2ZyYW1ld29yayBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRlZiBIQVZFX0JPT1NU X1VOSVRfVEVTVF9GUkFNRVdPUksKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg PGNtYXRoPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9DTUFUSAorKworKy8qIERlZmlu ZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZGVxdWU+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBI QVZFX0RFUVVFCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkbGZjbi5oPiBo ZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9ETEZDTl9ICisrCisrLyogRGVmaW5lIHRvIDEg aWYgeW91IGhhdmUgdGhlIDxmc3RyZWFtPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9G U1RSRUFNCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBo ZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9JTlRUWVBFU19ICisrCisrLyogRGVmaW5lIHRv IDEgaWYgeW91IGhhdmUgdGhlIDxpb21hbmlwPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFW RV9JT01BTklQCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb3N0cmVhbT4g aGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfSU9TVFJFQU0KKysKKysvKiBEZWZpbmUgdG8g MSBpZiB5b3UgaGF2ZSB0aGUgPGxpbWl0cz4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVf TElNSVRTCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaXN0PiBoZWFkZXIg ZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9MSVNUCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIDxtYXA+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX01BUAorKworKy8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWVtb3J5Lmg+IGhlYWRlciBmaWxlLiAqLworKyN1 bmRlZiBIQVZFX01FTU9SWV9ICisrCisrLyogRGVmaW5lIHRvIDEgaWYgdGhlIE9yYWNsZSBPQ0kg bGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9PUkFDTEUKKysKKysvKiBEZWZp bmUgdG8gMSBpZiBQb3N0Z3JlU1FMIGxpYnJhcmllcyBhcmUgYXZhaWxhYmxlICovCisrI3VuZGVm IEhBVkVfUE9TVEdSRVNRTAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cXVl dWU+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1FVRVVFCisrCisrLyogRGVmaW5lIHRv IDEgaWYgeW91IGhhdmUgdGhlIDxzZXQ+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NF VAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3N0cmVhbT4gaGVhZGVyIGZp bGUuICovCisrI3VuZGVmIEhBVkVfU1NUUkVBTQorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBo YXZlIHRoZSA8c3RkZXhjZXB0PiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9TVERFWENF UFQKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGludC5oPiBoZWFkZXIg ZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9TVERJTlRfSAorKworKy8qIERlZmluZSB0byAxIGlmIHlv dSBoYXZlIHRoZSA8c3RkbGliLmg+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NURExJ Ql9ICisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmc+IGhlYWRlciBm aWxlLiAqLworKyN1bmRlZiBIQVZFX1NUUklORworKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBo YXZlIHRoZSA8c3RyaW5ncy5oPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9TVFJJTkdT X0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZy5oPiBoZWFkZXIg ZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9TVFJJTkdfSAorKworKy8qIERlZmluZSB0byAxIGlmIHlv dSBoYXZlIHRoZSA8c3lzL3N0YXQuaD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfU1lT X1NUQVRfSAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3R5cGVzLmg+ IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NZU19UWVBFU19ICisrCisrLyogRGVmaW5l IHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1bmlzdGQuaD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVm IEhBVkVfVU5JU1REX0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHZlY3Rv cj4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfVkVDVE9SCisrCisrLyogRGVmaW5lIHRv IHRoZSBzdWItZGlyZWN0b3J5IGluIHdoaWNoIGxpYnRvb2wgc3RvcmVzIHVuaW5zdGFsbGVkIGxp YnJhcmllcy4KKysgICAqLworKyN1bmRlZiBMVF9PQkpESVIKKysKKysvKiBOYW1lIG9mIHBhY2th Z2UgKi8KKysjdW5kZWYgUEFDS0FHRQorKworKy8qIERlZmluZSB0byB0aGUgYWRkcmVzcyB3aGVy ZSBidWcgcmVwb3J0cyBmb3IgdGhpcyBwYWNrYWdlIHNob3VsZCBiZSBzZW50LiAqLworKyN1bmRl ZiBQQUNLQUdFX0JVR1JFUE9SVAorKworKy8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIG9mIHRo aXMgcGFja2FnZS4gKi8KKysjdW5kZWYgUEFDS0FHRV9OQU1FCisrCisrLyogRGVmaW5lIHRvIHRo ZSBmdWxsIG5hbWUgYW5kIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLworKyN1bmRlZiBQQUNL QUdFX1NUUklORworKworKy8qIERlZmluZSB0byB0aGUgb25lIHN5bWJvbCBzaG9ydCBuYW1lIG9m IHRoaXMgcGFja2FnZS4gKi8KKysjdW5kZWYgUEFDS0FHRV9UQVJOQU1FCisrCisrLyogRGVmaW5l IHRvIHRoZSBob21lIHBhZ2UgZm9yIHRoaXMgcGFja2FnZS4gKi8KKysjdW5kZWYgUEFDS0FHRV9V UkwKKysKKysvKiBEZWZpbmUgdG8gdGhlIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLworKyN1 bmRlZiBQQUNLQUdFX1ZFUlNJT04KKysKKysvKiBEZWZpbmUgaWYgeW91IHdhbnQgZXhjZXB0aW9u cyBoYW5kbGluZyAqLworKyN1bmRlZiBTT0NJX0VYQ0VQVElPTlMKKysKKysvKiBEZWZpbmUgdG8g MSBpZiB5b3UgaGF2ZSB0aGUgQU5TSSBDIGhlYWRlciBmaWxlcy4gKi8KKysjdW5kZWYgU1REQ19I RUFERVJTCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGNhbiBzYWZlbHkgaW5jbHVkZSBib3Ro IDxzeXMvdGltZS5oPiBhbmQgPHRpbWUuaD4uICovCisrI3VuZGVmIFRJTUVfV0lUSF9TWVNfVElN RQorKworKy8qIFZlcnNpb24gbnVtYmVyIG9mIHBhY2thZ2UgKi8KKysjdW5kZWYgVkVSU0lPTgor ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9NYWtlZmlsZS5hbSBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9jb3JlL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw CisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5hbQkyMDA5LTA1LTA2 IDAwOjI4OjEwLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyOSBAQAorKyMjIGNvcmUgc3Vi LWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytpbmNs dWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtl ZmlsZS5pbgorKworK1NVQkRJUlMgPSAuIHRlc3QKKysKKysjRVhUUkFfRElTVF9GT1JfU09DSV9D T01QQVRJQklMSVRZID0gLl9yb3cuY3BwIC5fc29jaS1zaW1wbGUuY3BwIC5fc29jaS1zaW1wbGUu aCAuX3ZhbHVlcy1leGNoYW5nZS5oCisrCisrRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1Jf U09DSV9DT01QQVRJQklMSVRZKQorKworK2xpYl9MVExJQlJBUklFUz0gbGlic29jaV9jb3JlLmxh CisrCisrbGlic29jaV9jb3JlX2xhX1NPVVJDRVM9ICQoY29yZV9oX3NvdXJjZXMpICQoY29yZV9j Y19zb3VyY2VzKSAKKytsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MgPQorK2xpYnNvY2lfY29yZV9s YV9MSUJBREQgPQorK2xpYnNvY2lfY29yZV9sYV9MREZMQUdTID0gXAorKwkkKEJPT1NUX0xJQlMp ICQoQk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCisr CS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKKysKKytwa2dpbmNsdWRl X0hFQURFUlMgPSAkKGNvcmVfaF9zb3VyY2VzKQorK2lmIFNPQ0lfSEVBREVSU19CVVJJRUQKKytz b2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2NvcmUKKytlbHNlCisrc29jaV9p bmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKKytlbmRpZgorK3BrZ2luY2x1ZGVkaXIgPSAkKHNv Y2lfaW5jbHVkZV9kaXIpCisrCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3Jl L01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuYmFz aWMKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuYmFzaWMJMjAxMS0w Mi0wOSAwMDozMDozMi41OTI5MTYyNDIgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9jb3JlL01ha2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw CitAQCAtMSw3NiArMCwwIEBACistQ09NUElMRVIgPSBnKysKKy1DWFhGTEFHUyA9IC1XYWxsIC1w ZWRhbnRpYyAtV25vLWxvbmctbG9uZworLUlOQ0xVREVESVJTID0gCistT0JKUyA9ICBzZXNzaW9u Lm8gc3RhdGVtZW50Lm8gcm93Lm8gdmFsdWVzLm8gXAorLQlpbnRvLXR5cGUubyB1c2UtdHlwZS5v IFwKKy0JYmxvYi5vIHJvd2lkLm8gcHJvY2VkdXJlLm8gcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZv Lm8gcmVmLWNvdW50ZWQtc3RhdGVtZW50Lm8gXAorLQlvbmNlLXRlbXAtdHlwZS5vIHByZXBhcmUt dGVtcC10eXBlLm8gZXJyb3IubyB0cmFuc2FjdGlvbi5vIGJhY2tlbmQtbG9hZGVyLm8gXAorLQlj b25uZWN0aW9uLXBvb2wubyBzb2NpLXNpbXBsZS5vCistCistCistbGlic29jaV9jb3JlLmEgOiAk e09CSlN9IAorLQlhciBydiAkQCAkPworLQlybSAqLm8KKy0KKy1zaGFyZWQgOiAke09CSlN9IAor LQkke0NPTVBJTEVSfSAtZlBJQyAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQkk e0NPTVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfY29yZS5zbyAke09CSlN9IAorLQlybSAqLm8K Ky0KKy1zZXNzaW9uLm8gOiBzZXNzaW9uLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZM QUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YXRlbWVudC5vIDogc3RhdGVtZW50LmNwcAorLQkk e0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXJvdy5vIDog cm93LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQor LQorLXZhbHVlcy5vIDogdmFsdWVzLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdT fSAke0lOQ0xVREVESVJTfQorLQorLWludG8tdHlwZS5vIDogaW50by10eXBlLmNwcAorLQkke0NP TVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXVzZS10eXBlLm8g OiB1c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURF RElSU30KKy0JCistYmxvYi5vIDogYmxvYi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhG TEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1lcnJvci5vIDogZXJyb3IuY3BwCistCSR7Q09NUElM RVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistcm93aWQubyA6IHJvd2lk LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQor LXByb2NlZHVyZS5vIDogcHJvY2VkdXJlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZM QUdTfSAke0lOQ0xVREVESVJTfQorLQorLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5vIDogcmVm LWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdT fSAke0lOQ0xVREVESVJTfQorLQorLXJlZi1jb3VudGVkLXN0YXRlbWVudC5vIDogcmVmLWNvdW50 ZWQtc3RhdGVtZW50LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xV REVESVJTfQorLQorLW9uY2UtdGVtcC10eXBlLm8gOiBvbmNlLXRlbXAtdHlwZS5jcHAKKy0JJHtD T01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1wcmVwYXJlLXRl bXAtdHlwZS5vIDogcHJlcGFyZS10ZW1wLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7 Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistdHJhbnNhY3Rpb24ubyA6IHRyYW5zYWN0aW9u LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQor LWJhY2tlbmQtbG9hZGVyLm8gOiBiYWNrZW5kLWxvYWRlci5jcHAKKy0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1jb25uZWN0aW9uLXBvb2wubyA6IGNv bm5lY3Rpb24tcG9vbC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KKy0KKy1zb2NpLXNpbXBsZS5vIDogc29jaS1zaW1wbGUuY3BwCistCSR7Q09NUElM RVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistCistY2xlYW4gOgorLQly bSAtZiBsaWJzb2NpX2NvcmUuYSBsaWJzb2NpX2NvcmUuc28KK2RpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29y ZS9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9NYWtlZmlsZS5p bgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuaW4JMjAxMS0wMi0wOCAyMjozOTo1Ny4wMDAwMDAwMDAg KzAxMDAKK0BAIC0wLDAgKzEsOTk1IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0 b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKwor KyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAw LCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAw OSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5p biBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZl cyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMg d2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMg cHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRv IHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElD VUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKysKKysKKytWUEFUSCA9IEBzcmNkaXJACisr cGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIp L0BQQUNLQUdFQAorK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorK2Ft X19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QK KytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hf UFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFs bF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9 ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5T VEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVf VU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVp bGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHBrZ2luY2x1ZGVf SEVBREVSUykgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKKysJJChzcmNkaXIpL01ha2VmaWxlLmlu ICQoc3JjZGlyKS9zb3VyY2VzLm1rIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24K KytzdWJkaXIgPSBzb2NpL2NvcmUKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2Fs Lm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0 Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf cG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3Vy ZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMp IFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisr Q09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NM RUFOX0ZJTEVTID0KKytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorK2FtX192cGF0aF9hZGpf c2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOwor K2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisrICAgICQoc3JjZGlyKS8qKSBmPWBlY2hv ICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCisrICAgICopIGY9JCRwOzsg XAorKyAgZXNhYzsKKythbV9fc3RyaXBfZGlyID0gZj1gZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4q L3x8J2A7CisrYW1fX2luc3RhbGxfbWF4ID0gNDAKKythbV9fbm9iYXNlX3N0cmlwX3NldHVwID0g XAorKyAgc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKnxd L1xcXFwmL2cnYAorK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisrICBmb3IgcCBpbiAkJGxpc3Q7IGRv IGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIKKythbV9fbm9i YXNlX2xpc3QgPSAkKGFtX19ub2Jhc2Vfc3RyaXBfc2V0dXApOyBcCisrICBmb3IgcCBpbiAkJGxp c3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlw L3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKKysg ICQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiIgfSB7IGZpbGVzWyQkMl0gPSBmaWxlc1sk JDJdICIgIiAkJDE7IFwKKysgICAgaWYgKCsrblskJDJdID09ICQoYW1fX2luc3RhbGxfbWF4KSkg XAorKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJd ID0gIiIgfSB9IFwKKysgICAgRU5EIHsgZm9yIChkaXIgaW4gZmlsZXMpIHByaW50IGRpciwgZmls ZXNbZGlyXSB9JworK2FtX19iYXNlX2xpc3QgPSBcCisrICBzZWQgJyQkIU47JCQhTjskJCFOOyQk IU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorKyAgc2VkICckJCFOOyQkIU47JCQhTjsk JCFOO3MvXG4vIC9nJworK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChsaWJkaXIpIiAi JChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrTFRMSUJSQVJJRVMgPSAkKGxpYl9MVExJQlJB UklFUykKKytsaWJzb2NpX2NvcmVfbGFfREVQRU5ERU5DSUVTID0KKythbV9fb2JqZWN0c18xID0K KythbV9fb2JqZWN0c18yID0gbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvIFwKKysJ bGlic29jaV9jb3JlX2xhLWJsb2IubG8gbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5s byBcCisrCWxpYnNvY2lfY29yZV9sYS1lcnJvci5sbyBsaWJzb2NpX2NvcmVfbGEtaW50by10eXBl LmxvIFwKKysJbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLmxvIFwKKysJbGlic29jaV9j b3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvIFwKKysJbGlic29jaV9jb3JlX2xhLXByb2NlZHVy ZS5sbyBcCisrCWxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubG8gXAor KwlsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvIFwKKysJbGlic29jaV9j b3JlX2xhLXJvdy5sbyBsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8gXAorKwlsaWJzb2NpX2NvcmVf bGEtc2Vzc2lvbi5sbyBsaWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUubG8gXAorKwlsaWJzb2Np X2NvcmVfbGEtc3RhdGVtZW50LmxvIGxpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbyBcCisr CWxpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbyBsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvCisr YW1fbGlic29jaV9jb3JlX2xhX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpICQoYW1fX29iamVj dHNfMikKKytsaWJzb2NpX2NvcmVfbGFfT0JKRUNUUyA9ICQoYW1fbGlic29jaV9jb3JlX2xhX09C SkVDVFMpCisrbGlic29jaV9jb3JlX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgXAorKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkg XAorKwkkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgXAorKwkkKGxpYnNv Y2lfY29yZV9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACisrREVGQVVMVF9JTkNMVURFUyA9 IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQorK2RlcGNvbXAgPSAkKFNIRUxM KSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCisrYW1fX2RlcGZpbGVzX21heWJlID0gZGVw ZmlsZXMKKythbV9fbXYgPSBtdiAtZgorK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytMVENYWENPTVBJTEUgPSAkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBc CisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp CisrQ1hYTEQgPSAkKENYWCkKKytDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ1hYTEQpICQo QU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAorKwkkKExERkxBR1MpIC1v ICRACisrQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSBcCisrCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFH UykKKytMVENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KEFNX0NGTEFHUykgJChDRkxBR1MpCisrQ0NMRCA9ICQoQ0MpCisrTElOSyA9ICQoTElCVE9PTCkg LS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1s aW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChM REZMQUdTKSAtbyAkQAorK1NPVVJDRVMgPSAkKGxpYnNvY2lfY29yZV9sYV9TT1VSQ0VTKQorK0RJ U1RfU09VUkNFUyA9ICQobGlic29jaV9jb3JlX2xhX1NPVVJDRVMpCisrUkVDVVJTSVZFX1RBUkdF VFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJaHRt bC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisrCWlu c3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1o dG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1wZGYtcmVj dXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKKysJaW5zdGFs bGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisr CXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrSEVBREVSUyA9ICQocGtnaW5jbHVk ZV9IRUFERVJTKQorK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJz aXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCisrICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXIt Y2xlYW4tcmVjdXJzaXZlCisrQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJH RVRTOi1yZWN1cnNpdmU9KSBcCisrCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2 ZT0pIHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCisrCWRpc3RkaXIKKytFVEFHUyA9IGV0YWdzCisr Q1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklMRVMgPSAk KERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQor K2FtX19yZWxhdGl2aXplID0gXAorKyAgZGlyMD1gcHdkYDsgXAorKyAgc2VkX2ZpcnN0PSdzLF5c KFteL10qXCkvLiokJCxcMSwnOyBcCisrICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAorKyAg c2VkX2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKKysgIHNlZF9idXRsYXN0PSdzLC8q W14vXSokJCwsJzsgXAorKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAorKyAgICBmaXJz dD1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorKyAgICBpZiB0ZXN0 ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAorKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4u IjsgdGhlbiBcCisrICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9s YXN0ImAvIiQkZGlyMiI7IFwKKysgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUg IiQkc2VkX2J1dGxhc3QiYDsgXAorKyAgICAgIGVsc2UgXAorKyAgICAgICAgZmlyc3QyPWBlY2hv ICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisrICAgICAgICBpZiB0ZXN0ICIk JGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAorKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRp cjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKysgICAgICAgIGVsc2UgXAorKyAgICAgICAg ICBkaXIyPSIuLi8kJGRpcjIiOyBcCisrICAgICAgICBmaTsgXAorKyAgICAgICAgZGlyMD0iJCRk aXIwIi8iJCRmaXJzdCI7IFwKKysgICAgICBmaTsgXAorKyAgICBmaTsgXAorKyAgICBkaXIxPWBl Y2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKysgIGRvbmU7IFwKKysgIHJl bGRpcj0iJCRkaXIyIgorK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCisrQUNM T0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05G ID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBB VVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisr Qk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVT WVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIg PSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9P U1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAorK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJP T1NUX01QSV9QWVRIT05fTElCQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1Rf UFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9M SUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJ WkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJ QiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RF TV9MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VO SVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAor K0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9M SUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9 IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdT ID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVO SVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJ QlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAor K0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdT ID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAor K0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBE VU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1Qg PSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAg PSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZF UlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RB VEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1A CisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9H UkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExE RkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0g QExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBA TFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAK KytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NfTElCID0gQE1ZU1FMX0Nf TElCQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MSUJTID0gQE1ZU1FMX0xJ QlNACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJ VCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisr T1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xF X09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AK KytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9U T09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FH RV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tB R0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RB Uk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAor K1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBA UEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdA CisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9E SVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNR TF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisr UkFOTElCID0gQFJBTkxJQkAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAor K1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JV UklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19C VVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBV UExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFi c19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRp ciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGly QAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNf Y3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRl QAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFt X19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAK KytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1 aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRf b3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRp ckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisr ZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBk b3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisr ZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBo b3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAK Kytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRt bGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0g QGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4 X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xv Y2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAor K21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIg PSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhA CisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3Bz ZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAor K3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisr c3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNA CisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9 IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdT ID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrY29yZV9oX3NvdXJjZXMgPSBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5oIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuaCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9ibG9iLWV4Y2hhbmdlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvYm9vc3QtZ3JlZ29yaWFuLWRhdGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9ib29zdC1mdXNpb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9ib29zdC1vcHRpb25hbC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL2Jvb3N0LXR1cGxlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29u bmVjdGlvbi1wb29sLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3Iu aCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9leGNoYW5nZS10cmFpdHMuaCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLmggXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3Byb2NlZHVyZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jl Zi1jb3VudGVkLXByZXBhcmUtaW5mby5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3Jvdy5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy1leGNo YW5nZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmggXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQtZXhjaGFuZ2UuaCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dzZXQuaCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9zZXNzaW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvc29jaS1iYWNrZW5kLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29j aS1jb25maWcuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXBsYXRm b3JtLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuaCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLmggXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS90eXBlLWNvbnZlcnNpb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS90eXBlLWNvbnZlcnNpb24tdHJhaXRzLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvdHlwZS1ob2xkZXIuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90 eXBlLXB0ci5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS5oIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmggXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvdmFsdWVzLWV4Y2hhbmdlLmgKKysKKytjb3JlX2NjX3NvdXJjZXMgPSBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAgXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9lcnJvci5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNl LXRlbXAtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFy ZS10ZW1wLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2Nl ZHVyZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQt cHJlcGFyZS1pbmZvLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYt Y291bnRlZC1zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3Jvdy5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS91c2UtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv dmFsdWVzLmNwcAorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytTVUJE SVJTID0gLiB0ZXN0CisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5f cm93LmNwcCAuX3NvY2ktc2ltcGxlLmNwcCAuX3NvY2ktc2ltcGxlLmggLl92YWx1ZXMtZXhjaGFu Z2UuaAorK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkK KytsaWJfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX2NvcmUubGEKKytsaWJzb2NpX2NvcmVfbGFfU09V UkNFUyA9ICQoY29yZV9oX3NvdXJjZXMpICQoY29yZV9jY19zb3VyY2VzKSAKKytsaWJzb2NpX2Nv cmVfbGFfQ1hYRkxBR1MgPSAKKytsaWJzb2NpX2NvcmVfbGFfTElCQUREID0gCisrbGlic29jaV9j b3JlX2xhX0xERkxBR1MgPSBcCisrCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElC KSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKKysJLXZlcnNpb24taW5mbyAkKEdFTkVS SUNfTElCUkFSWV9WRVJTSU9OKQorKworK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV9oX3Nv dXJjZXMpCisrQFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0VAc29jaV9pbmNsdWRlX2RpciA9ICQo aW5jbHVkZWRpcikKKytAU09DSV9IRUFERVJTX0JVUklFRF9UUlVFQHNvY2lfaW5jbHVkZV9kaXIg PSAkKGluY2x1ZGVkaXIpL3NvY2kvY29yZQorK2FsbDogYWxsLXJlY3Vyc2l2ZQorKworKy5TVUZG SVhFUzoKKysuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKKyskKHNyY2RpcikvTWFrZWZpbGUu aW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24g JChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGlu ICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAq JCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsg dGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJ ICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRP TUFLRSkgLS1nbnUgc29jaS9jb3JlL01ha2VmaWxlJzsgXAorKwkkKGFtX19jZCkgJCh0b3Bfc3Jj ZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9jb3JlL01ha2VmaWxlCisrLlBS RUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3Bf YnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5z dGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2Rl cGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAu L2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJ ZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9j b25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3Jj ZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000 KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChhbV9fYWNsb2NhbF9tNF9kZXBzKToK KytpbnN0YWxsLWxpYkxUTElCUkFSSUVTOiAkKGxpYl9MVExJQlJBUklFUykKKysJQCQoTk9STUFM X0lOU1RBTEwpCisrCXRlc3QgLXogIiQobGliZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElS KSQobGliZGlyKSIKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IHRlc3QgLW4gIiQobGli ZGlyKSIgfHwgbGlzdD07IFwKKysJbGlzdDI9OyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBp ZiB0ZXN0IC1mICQkcDsgdGhlbiBcCisrCSAgICBsaXN0Mj0iJCRsaXN0MiAkJHAiOyBcCisrCSAg ZWxzZSA6OyBmaTsgXAorKwlkb25lOyBcCisrCXRlc3QgLXogIiQkbGlzdDIiIHx8IHsgXAorKwkg IGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWluc3RhbGwgJChJTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJCRsaXN0MiAnJChE RVNURElSKSQobGliZGlyKSciOyBcCisrCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQ X0ZMQUcpICQkbGlzdDIgIiQoREVTVERJUikkKGxpYmRpcikiOyBcCisrCX0KKysKKyt1bmluc3Rh bGwtbGliTFRMSUJSQVJJRVM6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBsaXN0PSckKGxp Yl9MVExJQlJBUklFUyknOyB0ZXN0IC1uICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBcCisrCWZvciBw IGluICQkbGlzdDsgZG8gXAorKwkgICQoYW1fX3N0cmlwX2RpcikgXAorKwkgIGVjaG8gIiAkKExJ QlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFs bCBybSAtZiAnJChERVNURElSKSQobGliZGlyKS8kJGYnIjsgXAorKwkgICQoTElCVE9PTCkgJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICIk KERFU1RESVIpJChsaWJkaXIpLyQkZiI7IFwKKysJZG9uZQorKworK2NsZWFuLWxpYkxUTElCUkFS SUVTOgorKwktdGVzdCAteiAiJChsaWJfTFRMSUJSQVJJRVMpIiB8fCBybSAtZiAkKGxpYl9MVExJ QlJBUklFUykKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsg ZG8gXAorKwkgIGRpcj0iYGVjaG8gJCRwIHwgc2VkIC1lICdzfC9bXi9dKiQkfHwnYCI7IFwKKysJ ICB0ZXN0ICIkJGRpciIgIT0gIiQkcCIgfHwgZGlyPS47IFwKKysJICBlY2hvICJybSAtZiBcIiQk e2Rpcn0vc29fbG9jYXRpb25zXCIiOyBcCisrCSAgcm0gLWYgIiQke2Rpcn0vc29fbG9jYXRpb25z IjsgXAorKwlkb25lCisrbGlic29jaV9jb3JlLmxhOiAkKGxpYnNvY2lfY29yZV9sYV9PQkpFQ1RT KSAkKGxpYnNvY2lfY29yZV9sYV9ERVBFTkRFTkNJRVMpIAorKwkkKGxpYnNvY2lfY29yZV9sYV9M SU5LKSAtcnBhdGggJChsaWJkaXIpICQobGlic29jaV9jb3JlX2xhX09CSkVDVFMpICQobGlic29j aV9jb3JlX2xhX0xJQkFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1y bSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi50YWIu YworKworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJV RUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJs b2IuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5QbG9AYW1fX3F1b3Rl QAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtZXJyb3IuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5QbG9A YW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3Jl X2xhLXByZXBhcmUtdGVtcC10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19p bmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUu UGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5QbG9AYW1f X3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACisr QEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lf Y29yZV9sYS1yb3cuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBh bV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lkLlBsb0BhbV9fcXVvdGVA CisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1zZXNzaW9uLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNs dWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5Q bG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACisrQEFNREVQ X1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS10cmFuc2FjdGlvbi5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAg QGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUuUGxvQGFtX19x dW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikv bGlic29jaV9jb3JlX2xhLXZhbHVlcy5QbG9AYW1fX3F1b3RlQAorKworKy5jcHAubzoKKytAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBE SVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikg JChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFD S1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworKy5jcHAub2JqOgor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAk KERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKytAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRA JyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8g JEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorKworKy5jcHAubG86CisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAt YyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQq LlRwbyAkKERFUERJUikvJCouUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hY REVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKytsaWJzb2NpX2NvcmVfbGEtYmFj a2VuZC1sb2FkZXIubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNw cAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3Jl X2xhLWJhY2tlbmQtbG9hZGVyLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtYmFja2VuZC1sb2FkZXIuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRl ci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxv YWRlci5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt YmFja2VuZC1sb2FkZXIuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcCcgb2JqZWN0 PSdsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJB Q0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1iYWNr ZW5kLWxvYWRlci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1s b2FkZXIuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9i YWNrZW5kLWxvYWRlci5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbzogJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09M KSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1ibG9iLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtYmxvYi5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLWJsb2IubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2Rp cikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1ibG9iLlRwbyAkKERFUERJ UikvbGlic29jaV9jb3JlX2xhLWJsb2IuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwJyBvYmplY3Q9 J2xpYnNvY2lfY29yZV9sYS1ibG9iLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hY REVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLWNv bm5lY3Rpb24tcG9vbC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29s LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9j b3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9j b3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rp b24tcG9vbC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1w b29sLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29u bmVjdGlvbi1wb29sLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wuVHBvICQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wu Y3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG8nIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lf Y29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9j b3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtZXJy b3IubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLWVycm9yLmxvIC1NRCAt TVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtZXJyb3IuVHBvIC1jIC1vIGxpYnNvY2lf Y29yZV9sYS1lcnJvci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3Iu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5j cHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2Nv cmVfbGEtZXJyb3IuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtZXJyb3IuUGxvCisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2Vycm9yLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG8nIGxpYnRv b2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tT TEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNv Y2lfY29yZV9sYS1lcnJvci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJy b3IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJv ci5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtaW50 by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUu Y3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9j b3JlX2xhLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUu UGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLWlu dG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09M KSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcAorKworK2xpYnNvY2lfY29yZV9sYS1v bmNlLXRlbXAtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUu Y3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2Nv cmVfbGEtb25jZS10ZW1wLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS1vbmNlLXRlbXAtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10 eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVt cC10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1vbmNlLXRlbXAtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLW9u Y2UtdGVtcC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRl bXAtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L29uY2UtdGVtcC10eXBlLmNwcAorKworK2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlw ZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcHJl cGFyZS10ZW1wLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1w cmVwYXJlLXRlbXAtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10 eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlw ZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBh cmUtdGVtcC10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5UcG8gJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1w LXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5sbycg bGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g bGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcAorKworK2xpYnNv Y2lfY29yZV9sYS1wcm9jZWR1cmUubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVy ZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lf Y29yZV9sYS1wcm9jZWR1cmUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1wcm9jZWR1cmUuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAKKytAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJl LlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5QbG8KKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv cHJvY2VkdXJlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvJyBsaWJ0 b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJz b2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9wcm9jZWR1cmUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9wcm9jZWR1cmUuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBh cmUtaW5mby5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1p bmZvLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29j aV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbyAtTUQgLU1QIC1NRiAkKERFUERJ UikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5UcG8gLWMgLW8gbGli c29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1p bmZvLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uVHBvICQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLlBsbworK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291 bnRlZC1wcmVwYXJlLWluZm8uY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRl ZC1wcmVwYXJlLWluZm8ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo TElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWlu Zm8ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBh cmUtaW5mby5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtcmVmLWNv dW50ZWQtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1z dGF0ZW1lbnQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBs aWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvIC1NRCAtTVAgLU1GICQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LlRwbyAtYyAtbyBsaWJz b2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2Rp cikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwCisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LXJlZi1jb3VudGVkLXN0YXRlbWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYt Y291bnRlZC1zdGF0ZW1lbnQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5j cHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5sbycgbGli dG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGli c29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcAor KworK2xpYnNvY2lfY29yZV9sYS1yb3cubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5j cHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29y ZV9sYS1yb3cubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3cuVHBv IC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yb3cubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3Jvdy5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3Jvdy5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtcm93LlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvdy5QbG8K KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvcm93LmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcm93LmxvJyBsaWJ0 b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJz b2NpX2NvcmVfbGEtcm93LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3Bw CisrCisrbGlic29jaV9jb3JlX2xhLXJvd2lkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9y b3dpZC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfY29yZV9sYS1yb3dpZC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LXJvd2lkLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1f X212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lkLlRwbyAkKERFUERJUikvbGlic29j aV9jb3JlX2xhLXJvd2lkLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAnIG9iamVjdD0nbGlic29j aV9jb3JlX2xhLXJvd2lkLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXNlc3Np b24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwCisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNlc3Npb24uVHBvIC1jIC1vIGxp YnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvc2Vzc2lvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1z ZXNzaW9uLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVf bGEtc2Vzc2lvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQo ZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJU T09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcAorKworK2xpYnNvY2lfY29yZV9sYS1zb2Np LXNpbXBsZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtc29j aS1zaW1wbGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNp bXBsZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBs ZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5QbG8KKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvc29jaS1zaW1wbGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5s bycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMg LW8gbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcAorKworK2xpYnNvY2lfY29yZV9sYS1zdGF0 ZW1lbnQubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf Y29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1zdGF0ZW1l bnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQuVHBv IC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChh bV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LlRwbyAkKERFUERJUikv bGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcCcg b2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBC QUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtc3Rh dGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQu Y3BwCisrCisrbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS90cmFuc2FjdGlvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09M KSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVf bGEtdHJhbnNhY3Rpb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5z YWN0aW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv dHJhbnNhY3Rpb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJ UikvbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLlRwbyAkKERFUERJUikvbGlic29jaV9jb3Jl X2xhLXRyYW5zYWN0aW9uLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAnIG9iamVjdD0n bGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3Jl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rp b24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24u Y3BwCisrCisrbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS91c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LU1UIGxpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGli c29jaV9jb3JlX2xhLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXVz ZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLlBsbworK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS91c2UtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBs aWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3VzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvdXNlLXR5cGUuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbzogJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9jb3JlX2xhLXZhbHVlcy5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXZh bHVlcy5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS12 YWx1ZXMuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdmFsdWVzLlBsbworK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS92YWx1ZXMuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS12YWx1ZXMubG8nIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lf Y29yZV9sYS12YWx1ZXMubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVl cy5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVl cy5jcHAKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFu LWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKytpbnN0YWxsLXBrZ2luY2x1ZGVIRUFE RVJTOiAkKHBrZ2luY2x1ZGVfSEVBREVSUykKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3Qg LXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2luY2x1 ZGVkaXIpIgorKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgdGVzdCAtbiAiJChwa2dp bmNsdWRlZGlyKSIgfHwgbGlzdD07IFwKKysJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYg dGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKysJICBl Y2hvICIkJGQkJHAiOyBcCisrCWRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAorKwl3aGlsZSBy ZWFkIGZpbGVzOyBkbyBcCisrCSAgZWNobyAiICQoSU5TVEFMTF9IRUFERVIpICQkZmlsZXMgJyQo REVTVERJUikkKHBrZ2luY2x1ZGVkaXIpJyI7IFwKKysJICAkKElOU1RBTExfSEVBREVSKSAkJGZp bGVzICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIgfHwgZXhpdCAkJD87IFwKKysJZG9uZQor KworK3VuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzoKKysJQCQoTk9STUFMX1VOSU5TVEFMTCkK KysJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRp cikiIHx8IGxpc3Q9OyBcCisrCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRwOyBk b25lIHwgc2VkIC1lICdzfF4uKi98fCdgOyBcCisrCXRlc3QgLW4gIiQkZmlsZXMiIHx8IGV4aXQg MDsgXAorKwllY2hvICIgKCBjZCAnJChERVNURElSKSQocGtnaW5jbHVkZWRpciknICYmIHJtIC1m IiAkJGZpbGVzICIpIjsgXAorKwljZCAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiICYmIHJt IC1mICQkZmlsZXMKKysKKysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1v c3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2Un IHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2 YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywK KysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBg Y29uZmlnLnN0YXR1cycKKysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRv IGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwg cGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChS RUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBm IGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAt LVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7 IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQg cy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJ ICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBc CisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAg bG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRz dWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8 fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0g Im5vIjsgdGhlbiBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8 fCBleGl0IDE7IFwKKysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVB Tl9UQVJHRVRTKToKKysJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAk JE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSop OzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlk b25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFu LSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkg ICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJk aXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7 IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAorKwlkb25l OyBcCisrCXJldj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vy c2l2ZS8vYDsgXAorKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5n ICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsg dGhlbiBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAor KwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19j ZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwK KysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKKyt0 YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0 OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNp dmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkg IHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKysJZG9uZQorKworK0lEOiAkKEhFQURFUlMpICQoU09V UkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBk byBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChz cmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBd ID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZv ciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQor K3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNF UykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwlz ZXQgeDsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUg LS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0t ZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1 ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlz dD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9U QUdTIHx8IFwKKysJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1 YmRpci9UQUdTIjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAk KEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4g JCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNl IGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBm aWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVt cHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXNoaWZ0OyBcCisr CWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisr CSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgIGlmIHRl c3QgJCQjIC1ndCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9F VEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKysJ ICBlbHNlIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAk KEVUQUdTX0FSR1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBmaTsgXAorKwlmaQorK2N0 YWdzOiBDVEFHUworK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMp ICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlz dD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVu aXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVu IGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAor KwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAg RU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBc CisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQo Q1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVu aXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3 ZGAgXAorKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAk KEdUQUdTX0FSR1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdT IElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklM RVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwq XS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwg c2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBc CisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9u ZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAi c3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRk aXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIg fCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwg XAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3Rf ZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhl biBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxl OyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQs LCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkg ICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMg Y2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3Jj ZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3Ag LWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkg ICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMg Y2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZp bGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0 IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChk aXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUK KysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisr CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQg IiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikv JCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxp c3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYg dGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIGRpcjE9JCRzdWJkaXI7 IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCisrCSAgICAkKGFtX19yZWxhdGl2aXplKTsg XAorKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRp cjI9IiQodG9wX2Rpc3RkaXIpIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAg IG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIi IGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAorKwkgICAgZWNobyAiICAgICBhbV9fcmVt b3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06 IGRpc3RkaXIpIjsgXAorKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCisrCSAgICAgICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9w X2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCisrCQlhbV9f cmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisrCQlhbV9f c2tpcF9tb2RlX2ZpeD06IFwKKysJICAgICAgICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQg MTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNr LXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJBUklFUykgJChIRUFERVJTKQor K2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKKytpbnN0YWxsZGlycy1hbToKKysJ Zm9yIGRpciBpbiAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVk aXIpIjsgZG8gXAorKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwK KysJZG9uZQorK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCisraW5zdGFsbC1leGVjOiBpbnN0 YWxsLWV4ZWMtcmVjdXJzaXZlCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZl CisrdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1hbTogYWxsLWFt CisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRh LWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCisraW5zdGFsbC1z dHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RB TExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9T VFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChT VFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSck KFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5l cmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5f RklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysJLXRlc3QgLiA9ICIkKHNy Y2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYg JChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj OgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1 c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0 b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8 fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUK KysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1s aWJ0b29sIFwKKysJbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1 cnNpdmUKKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xl YW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJ ZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytkdmktYW06CisrCisr aHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytodG1sLWFtOgorKworK2luZm86IGluZm8tcmVjdXJz aXZlCisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtcGtnaW5jbHVk ZUhFQURFUlMKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCisrCisraW5z dGFsbC1kdmktYW06CisrCisraW5zdGFsbC1leGVjLWFtOiBpbnN0YWxsLWxpYkxUTElCUkFSSUVT CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1o dG1sLWFtOgorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2lu c3RhbGwtaW5mby1hbToKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFs bC1wZGYtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wZGYtYW06CisrCisraW5zdGFsbC1wczogaW5z dGFsbC1wcy1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBzLWFtOgorKworK2luc3RhbGxjaGVjay1h bToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwkt cm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4t YW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVh bjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFu LWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wKKysK KytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vyc2l2ZQor KworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVu aW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9U QVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAorKwlpbnN0YWxs LWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKKysKKysuUEhPTlk6ICQoUkVDVVJTSVZF X0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKKysJYWxs IGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKysJY2xlYW4tbGli TFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBjdGFncyBjdGFncy1yZWN1cnNpdmUgXAorKwlkaXN0 Y2xlYW4gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4t bGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCisrCWh0bWwt YW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0 YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKysJ aW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZv IFwKKysJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbGliTFRMSUJSQVJJRVMgaW5zdGFsbC1tYW4g aW5zdGFsbC1wZGYgXAorKwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJT IGluc3RhbGwtcHMgXAorKwlpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNr IGluc3RhbGxjaGVjay1hbSBcCisrCWluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWlu ZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5 Y2xlYW4tY29tcGlsZSBcCisrCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9v bCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKysJdGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmluc3RhbGwg dW5pbnN0YWxsLWFtIFwKKysJdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1wa2dp bmNsdWRlSEVBREVSUworKworK0BTRVRfTUFLRUAKKysKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTks My42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3 aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgor Ky5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvc291cmNl cy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3NvdXJjZXMubWsKKy0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2NvcmUvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvc291cmNlcy5tawky MDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw1OCBAQAorK2Nv cmVfaF9zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2Vu ZC1sb2FkZXIuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmggXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi1leGNoYW5nZS5oIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LWdyZWdvcmlhbi1kYXRlLmggXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3QtZnVzaW9uLmggXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3Qtb3B0aW9uYWwuaCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC10dXBsZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Vycm9yLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXhj aGFuZ2UtdHJhaXRzLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by5o IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5oIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmggXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuaCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuaCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uaCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuaCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9yb3ctZXhjaGFuZ2UuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9yb3dpZC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLWV4Y2hh bmdlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93c2V0LmggXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5oIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktYmFja2VuZC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3NvY2ktY29uZmlnLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvc29jaS1wbGF0Zm9ybS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3NvY2ktc2ltcGxlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS5o IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5oIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmggXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1jb252ZXJzaW9uLmggXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1jb252ZXJzaW9uLXRyYWl0cy5oIFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtaG9sZGVyLmggXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvdHlwZS1wdHIuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS91c2UuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5o IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5oIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy1leGNoYW5nZS5oCisrY29yZV9jY19zb3Vy Y2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIu Y3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAgXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9wcm9jZWR1cmUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9yb3cuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3Jvd2lkLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNw cCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAgXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAgXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2NvcmUvdGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3Qv TWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9NYWtlZmls ZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5hbQkyMDA5LTA1LTA2IDAwOjI5OjA2LjAw MDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyNiBAQAorKyMjIGNvcmUgc3ViLWRpcmVjdG9yeQor K2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytpbmNsdWRlICQoc3JjZGly KS9zb3VyY2VzLm1rCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKwor K0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9CisrCisrRVhUUkFfRElTVCA9ICQo RVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQorKworK25vaW5zdF9MVExJQlJBUklF Uz0gbGlic29jaV9jb3JlX3Rlc3QubGEKKysKKytsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VT PSAkKGNvcmVfdGVzdF9oX3NvdXJjZXMpCisrbGlic29jaV9jb3JlX3Rlc3RfbGFfQ1hYRkxBR1Mg PQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0xJQkFERCA9CisrI2xpYnNvY2lfY29yZV90ZXN0X2xh X0xERkxBR1MgPSAtdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCisrbGli c29jaV9jb3JlX3Rlc3RfbGFfTERGTEFHUyA9CisrCisrcGtnaW5jbHVkZV9IRUFERVJTID0gJChj b3JlX3Rlc3RfaF9zb3VyY2VzKQorK2lmIFNPQ0lfSEVBREVSU19CVVJJRUQKKytzb2NpX2luY2x1 ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2NvcmUvdGVzdAorK2Vsc2UKKytzb2NpX2luY2x1 ZGVfZGlyID0gJChpbmNsdWRlZGlyKQorK2VuZGlmCisrcGtnaW5jbHVkZWRpciA9ICQoc29jaV9p bmNsdWRlX2RpcikKKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVz dC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUu aW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5pbgkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5pbgkyMDExLTAyLTA4IDIyOjM5OjU3LjAwMDAwMDAwMCAr MDEwMAorQEAgLTAsMCArMSw1NjMgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRv bWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisr IyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAs IDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5 ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmlu IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVz IHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3 aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBw cmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8g dGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNV TEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorKworKworK1ZQQVRIID0gQHNyY2RpckAKKytw a2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikv QFBBQ0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACisrYW1f X2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAor K2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9Q Uk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxs X3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0g JChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNU QUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9V TklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWls ZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQocGtnaW5jbHVkZV9I RUFERVJTKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAorKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4g JChzcmNkaXIpL3NvdXJjZXMubWsgXAorKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgor K3N1YmRpciA9IHNvY2kvY29yZS90ZXN0CisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNs b2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9i b29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29u ZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25m aWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5D SUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAt ZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJ R19DTEVBTl9GSUxFUyA9CisrQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KKytMVExJQlJBUklF UyA9ICQobm9pbnN0X0xUTElCUkFSSUVTKQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0RFUEVOREVO Q0lFUyA9CisrYW1fX29iamVjdHNfMSA9CisrYW1fbGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNU UyA9ICQoYW1fX29iamVjdHNfMSkKKytsaWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RTID0gJChh bV9saWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RTKQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0xJ TksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElCVE9P TEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgXAorKwkk KGxpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKKytERUZBVUxU X0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCisrQ09NUElM RSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSBcCisrCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKKytMVENPTVBJ TEUgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgXAorKwktLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykg JChDRkxBR1MpCisrQ0NMRCA9ICQoQ0MpCisrTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ0NMRCkg JChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAk QAorK1NPVVJDRVMgPSAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX1NPVVJDRVMpCisrRElTVF9TT1VS Q0VTID0gJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTKQorK2FtX192cGF0aF9hZGpfc2V0 dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOworK2Ft X192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisrICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIk JHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCisrICAgICopIGY9JCRwOzsgXAor KyAgZXNhYzsKKythbV9fc3RyaXBfZGlyID0gZj1gZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8 J2A7CisrYW1fX2luc3RhbGxfbWF4ID0gNDAKKythbV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAor KyAgc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKnxdL1xc XFwmL2cnYAorK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisrICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVj aG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIKKythbV9fbm9iYXNl X2xpc3QgPSAkKGFtX19ub2Jhc2Vfc3RyaXBfc2V0dXApOyBcCisrICBmb3IgcCBpbiAkJGxpc3Q7 IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wg fDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKKysgICQo QVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiIgfSB7IGZpbGVzWyQkMl0gPSBmaWxlc1skJDJd ICIgIiAkJDE7IFwKKysgICAgaWYgKCsrblskJDJdID09ICQoYW1fX2luc3RhbGxfbWF4KSkgXAor KyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0g IiIgfSB9IFwKKysgICAgRU5EIHsgZm9yIChkaXIgaW4gZmlsZXMpIHByaW50IGRpciwgZmlsZXNb ZGlyXSB9JworK2FtX19iYXNlX2xpc3QgPSBcCisrICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47 JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFO O3MvXG4vIC9nJworK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGly KSIKKytIRUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCisrRVRBR1MgPSBldGFncworK0NU QUdTID0gY3RhZ3MKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykg JChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVk ZV9kaXIpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFS QAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytB VVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09T VF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAor K0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lP U1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NU X0xJQlNACisrQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAorK0JPT1NUX01QSV9QWVRI T05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19M SUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9QWVRIT05fTElCID0gQEJP T1NUX1BZVEhPTl9MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytC T09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09T VF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9TWVNURU1fTElCID0g QEJPT1NUX1NZU1RFTV9MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElC QAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFN RVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VS SUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAor K0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQ QAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZM QUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9 IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytD WFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RF QAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVG UyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisr RFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9f TkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVF WFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAK KytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNU QUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFM TF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytM REZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AK KytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytM VExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1Ag PSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NfTElC ID0gQE1ZU1FMX0NfTElCQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MSUJT ID0gQE1ZU1FMX0xJQlNACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0g QE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9 IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxB R1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9P Q0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAor K09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tB R0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9O QU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AK KytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVVJMID0gQFBB Q0tBR0VfVVJMQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9T RVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9 IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisr UE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1Mg PSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FM X1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0g QFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09D SV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlT UUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURf Q09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1 aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJz X3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFi c190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19j dF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0g QGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1f X3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0g QGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxk X2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRf b3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRp ciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0 YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94 eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBA ZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tA CisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9 IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92 ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAK KytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4 X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJl eGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2Nh bHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29s ZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZp eCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9y bV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sg PSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9 IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0 YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3Rv cF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAor K0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrY29yZV90 ZXN0X2hfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3Rz LmgKKytjb3JlX3Rlc3RfY2Nfc291cmNlcyA9IAorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFr ZWZpbGUuaW4KKytFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAKKytFWFRSQV9E SVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCisrbm9pbnN0X0xUTElC UkFSSUVTID0gbGlic29jaV9jb3JlX3Rlc3QubGEKKytsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VS Q0VTID0gJChjb3JlX3Rlc3RfaF9zb3VyY2VzKQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0NYWEZM QUdTID0gCisrbGlic29jaV9jb3JlX3Rlc3RfbGFfTElCQUREID0gCisrI2xpYnNvY2lfY29yZV90 ZXN0X2xhX0xERkxBR1MgPSAtdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04p CisrbGlic29jaV9jb3JlX3Rlc3RfbGFfTERGTEFHUyA9IAorK3BrZ2luY2x1ZGVfSEVBREVSUyA9 ICQoY29yZV90ZXN0X2hfc291cmNlcykKKytAU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBzb2Np X2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQorK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUVA c29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9jb3JlL3Rlc3QKKythbGw6IGFs bC1hbQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2Rpcikv TWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJj ZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAg Y2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAg ICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVs c2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRv bmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgc29j aS9jb3JlL3Rlc3QvTWFrZWZpbGUnOyBcCisrCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwK KysJICAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZQorKy5QUkVDSU9V UzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxk ZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVz KikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxl c19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7 CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmln dXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2Rpcikv Y29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAk KGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisrCisr Y2xlYW4tbm9pbnN0TFRMSUJSQVJJRVM6CisrCS10ZXN0IC16ICIkKG5vaW5zdF9MVExJQlJBUklF UykiIHx8IHJtIC1mICQobm9pbnN0X0xUTElCUkFSSUVTKQorKwlAbGlzdD0nJChub2luc3RfTFRM SUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgZGlyPSJgZWNobyAkJHAgfCBz ZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAorKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBk aXI9LjsgXAorKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKKysJ ICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCisrCWRvbmUKKytsaWJzb2NpX2NvcmVf dGVzdC5sYTogJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29yZV90 ZXN0X2xhX0RFUEVOREVOQ0lFUykgCisrCSQobGlic29jaV9jb3JlX3Rlc3RfbGFfTElOSykgICQo bGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNUUykgJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJB REQpICQoTElCUykKKysKKyttb3N0bHljbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi4kKE9CSkVY VCkKKysKKytkaXN0Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICoudGFiLmMKKysKKyttb3N0bHlj bGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAt cmYgLmxpYnMgX2xpYnMKKytpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOiAkKHBrZ2luY2x1ZGVf SEVBREVSUykKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQocGtnaW5jbHVkZWRp cikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgorKwlAbGlzdD0n JChwa2dpbmNsdWRlX0hFQURFUlMpJzsgdGVzdCAtbiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgbGlz dD07IFwKKysJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhl biBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKysJICBlY2hvICIkJGQkJHAiOyBcCisr CWRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAorKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCisr CSAgZWNobyAiICQoSU5TVEFMTF9IRUFERVIpICQkZmlsZXMgJyQoREVTVERJUikkKHBrZ2luY2x1 ZGVkaXIpJyI7IFwKKysJICAkKElOU1RBTExfSEVBREVSKSAkJGZpbGVzICIkKERFU1RESVIpJChw a2dpbmNsdWRlZGlyKSIgfHwgZXhpdCAkJD87IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1wa2dp bmNsdWRlSEVBREVSUzoKKysJQCQoTk9STUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9JyQocGtnaW5j bHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBcCisr CWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRwOyBkb25lIHwgc2VkIC1lICdzfF4u Ki98fCdgOyBcCisrCXRlc3QgLW4gIiQkZmlsZXMiIHx8IGV4aXQgMDsgXAorKwllY2hvICIgKCBj ZCAnJChERVNURElSKSQocGtnaW5jbHVkZWRpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAor KwljZCAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiICYmIHJtIC1mICQkZmlsZXMKKysKKytJ RDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSck KFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9 YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hv ICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAk KEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7 IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlt a2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogICQoSEVBREVSUykgJChT T1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1Ap CisrCXNldCB4OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0 OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8g JChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1sk JDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7 IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXNoaWZ0OyBcCisrCWlmIHRl c3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVz dCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgIGlmIHRlc3QgJCQj IC1ndCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZM QUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKysJICBlbHNl IFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdT X0FSR1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBmaTsgXAorKwlmaQorK2N0YWdzOiBD VEFHUworK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVT KSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0 OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8g JChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1sk JDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7 IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1Nf QVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFH U0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1ZQorKworK0dUQUdTOgorKwlo ZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmICQoYW1fX2Nk KSAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUi CisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lN UyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1g ZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9w c3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xc XFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9y IGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8 XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98 JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAq LyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8v IWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7 IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0 ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rp cik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1g ZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0 IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIp LyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwK KysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAk JGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxl ICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIp LyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwK KysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIg fHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmls ZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJ ICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisr Y2hlY2s6IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFSSUVTKSAkKEhFQURF UlMpCisraW5zdGFsbGRpcnM6CisrCWZvciBkaXIgaW4gIiQoREVTVERJUikkKHBrZ2luY2x1ZGVk aXIpIjsgZG8gXAorKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwK KysJZG9uZQorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhl Yy1hbQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisrdW5pbnN0YWxsOiB1bmluc3Rh bGwtYW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3Rh bGxjaGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElO U1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9z aF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0t cyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BS T0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdl bmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRl c3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklM RVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9W UEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorKworK21h aW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRl ZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0 IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1B SU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytj bGVhbjogY2xlYW4tYW0KKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29s IGNsZWFuLW5vaW5zdExUTElCUkFSSUVTIFwKKysJbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xl YW46IGRpc3RjbGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFu LWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLXRh Z3MKKysKKytkdmk6IGR2aS1hbQorKworK2R2aS1hbToKKysKKytodG1sOiBodG1sLWFtCisrCisr aHRtbC1hbToKKysKKytpbmZvOiBpbmZvLWFtCisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRh dGEtYW06IGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKytpbnN0YWxsLWR2aTogaW5zdGFs bC1kdmktYW0KKysKKytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisr aW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWh0bWwtYW06CisrCisr aW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KKysKKytpbnN0YWxsLWluZm8tYW06CisrCisr aW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisrCisraW5zdGFs bC1wZGYtYW06CisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorKworK2luc3RhbGwtcHMt YW06CisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWlu ZXItY2xlYW4tYW0KKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlz dGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0 bHljbGVhbi1hbQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3Rs eWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtYW0K KysKKytwZGYtYW06CisrCisrcHM6IHBzLWFtCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFt OiB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKysuTUFLRTogaW5zdGFsbC1hbSBpbnN0 YWxsLXN0cmlwCisrCisrLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNr LWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdExU TElCUkFSSUVTIGN0YWdzIGRpc3RjbGVhbiBcCisrCWRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVh bi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBk dmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAorKwlpbnN0YWxsIGluc3RhbGwt YW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCisrCWluc3RhbGwt ZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwKKysJaW5z dGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gXAor KwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTIFwK KysJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwK KysJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXItY2xlYW4gXAorKwltYWlu dGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCisr CW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBz LWFtIFwKKysJdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIHVuaW5zdGFsbC1wa2dpbmNsdWRl SEVBREVSUworKworK0BTRVRfTUFLRUAKKysKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykg b2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEg c3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VY UE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9zb3VyY2Vz Lm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rCistLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3Qvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVz dC9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCitAQCAtMCww ICsxLDIgQEAKKytjb3JlX3Rlc3RfaF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv dGVzdC9jb21tb24tdGVzdHMuaAorK2NvcmVfdGVzdF9jY19zb3VyY2VzID0KK2RpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9NYWtlZmlsZS5hbQkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDcuMDAwMDAwMDAwICswMjAwCitAQCAt MCwwICsxLDkgQEAKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrCisr IyMgU291cmNlIGRpcmVjdG9yeQorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUu aW4KKysKKytTVUJESVJTID0gY29yZSBiYWNrZW5kcworKworK0VYVFJBX0RJU1QgPQorZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL01ha2VmaWxlLmlu CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvTWFrZWZpbGUuaW4JMjAxMS0wMi0wOCAyMjozOTo1Ni4wMDAwMDAwMDAgKzAxMDAK K0BAIC0wLDAgKzEsNjM0IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2Ug MS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29w eXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAx LCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBm cmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxp bWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBv ciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2Vy dmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBl eHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQ VVJQT1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9 ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBB Q0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmV4ZWNkaXIg PSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJ T04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3Rh bGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMK KytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9 ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkK KytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6 CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNU QUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RA CisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxl LmluIFwKKysJJChzcmNkaXIpL2NvbmZpZy5oLmluICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29t bW9uCisrc3ViZGlyID0gc29jaQorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwu bTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3Qu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9w b3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s dG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJl X2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykg XAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytD T05GSUdfSEVBREVSID0gY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK0NPTkZJR19D TEVBTl9WUEFUSF9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytSRUNVUlNJ VkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUg XAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZl IFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlp bnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxs LXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAor KwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJz aXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKKytSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAg ZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0FNX1JFQ1VS U0lWRV9UQVJHRVRTID0gJChSRUNVUlNJVkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAorKwkkKFJF Q1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1Mg XAorKwlkaXN0ZGlyCisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNUX1NVQkRJ UlMgPSAkKFNVQkRJUlMpCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJD RVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKythbV9fcmVsYXRpdml6ZSA9IFwKKysgIGRp cjA9YHB3ZGA7IFwKKysgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAorKyAg c2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7IFwKKysgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkk JCxcMSwnOyBcCisrICBzZWRfYnV0bGFzdD0ncywvKlteL10qJCQsLCc7IFwKKysgIHdoaWxlIHRl c3QgLW4gIiQkZGlyMSI7IGRvIFwKKysgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUg IiQkc2VkX2ZpcnN0ImA7IFwKKysgICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwK KysgICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRoZW4gXAorKyAgICAgICAgZGlyMj1g ZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCisrICAgICAg ICBkaXIwPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKKysgICAg ICBlbHNlIFwKKysgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRf Zmlyc3QiYDsgXAorKyAgICAgICAgaWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVu IFwKKysgICAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJg OyBcCisrICAgICAgICBlbHNlIFwKKysgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAorKyAg ICAgICAgZmk7IFwKKysgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCisrICAgICAg Zmk7IFwKKysgICAgZmk7IFwKKysgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRz ZWRfcmVzdCJgOyBcCisrICBkb25lOyBcCisrICByZWxkaXI9IiQkZGlyMiIKKytBQ0xPQ0FMID0g QEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVU T0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtF QAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9E QVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9M SUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09T VF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9NUElf TElCID0gQEJPT1NUX01QSV9MSUJACisrQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJ X1BZVEhPTl9MSUJACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFN X09QVElPTlNfTElCQAorK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKKytC T09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05f TElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJP T1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAK KytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNU X0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1Rf VkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBC T09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQ TU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQ RkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05G SUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytD UFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQ ID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hY RkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElS ID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5A CisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hP X1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JF UEAKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAK KytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJ TlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNU QUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBA SU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AK KytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9P TEAKKytMSVBPID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9C SlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FM X0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACisr TVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKKytN WVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5N RURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVf RElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NG TEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNM RV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisr T1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JF UE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1F QAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9 IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9VUkwgPSBAUEFDS0FHRV9VUkxACisrUEFDS0FH RV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NF UEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NU R1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBA UE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxB R1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIg PSBAUkFOTElCQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwg PSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAor K1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAK KytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURF UlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9D T01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxk ZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFi c190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNf Y3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1Q QklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1f X2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3Rl QAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRp ciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxp YXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKyti dWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2Rh dGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29r ID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5f b2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3By ZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisr aG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rf b3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0g QGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2Rp ckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisr bGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGly ID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbWFuZGly ID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRp bmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9n cmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBA cHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVk c3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25m ZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3Bf YnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9i dWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQo dG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1h a2VmaWxlLmluCisrU1VCRElSUyA9IGNvcmUgYmFja2VuZHMKKytFWFRSQV9ESVNUID0gCisrYWxs OiBjb25maWcuaAorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbGwtcmVjdXJzaXZlCisrCisr LlNVRkZJWEVTOgorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5h bSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKKysJ QGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGlu IFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0 ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhp dCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGly KSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL01ha2VmaWxlJzsgXAorKwkkKGFtX19jZCkgJCh0 b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9NYWtlZmlsZQorKy5Q UkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9w X2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcu c3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9i dWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19k ZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkg Li9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisr CWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2Rpcikv Y29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3Ny Y2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9N NCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6 CisrCisrY29uZmlnLmg6IHN0YW1wLWgxCisrCUBpZiB0ZXN0ICEgLWYgJEA7IHRoZW4gXAorKwkg IHJtIC1mIHN0YW1wLWgxOyBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgc3RhbXAtaDE7 IFwKKysJZWxzZSA6OyBmaQorKworK3N0YW1wLWgxOiAkKHNyY2RpcikvY29uZmlnLmguaW4gJCh0 b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQHJtIC1mIHN0YW1wLWgxCisrCWNkICQodG9w X2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgc29jaS9jb25maWcuaAorKyQo c3JjZGlyKS9jb25maWcuaC5pbjogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKSAKKysJKCQoYW1fX2Nk KSAkKHRvcF9zcmNkaXIpICYmICQoQVVUT0hFQURFUikpCisrCXJtIC1mIHN0YW1wLWgxCisrCXRv dWNoICRACisrCisrZGlzdGNsZWFuLWhkcjoKKysJLXJtIC1mIGNvbmZpZy5oIHN0YW1wLWgxCisr CisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29s OgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVj dG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBh bmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRv IGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGlu ZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0 YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhl IE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgy KSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFu ZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAx JzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAor KwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7 IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBl Y2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRz dWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRv dF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBl bHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAo JChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFy Z2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0ICIk JGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIk JHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisrCisrJChS RUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisr CWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAq PSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkg IGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAor KwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElS UyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2 PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAg Zmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8 IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkg IGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwK KysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwK KysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9j YWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16 ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2Nk KSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisr Y3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxp c3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDogJChI RUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJD RVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1m SUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFE RVJTKSAkKFNPVVJDRVMpIGNvbmZpZy5oLmluICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQo VEFHU19GSUxFUykgJChMSVNQKQorKwlzZXQgeDsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgk KEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4g XAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0u OyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5 X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJ ICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgc2V0ICIkJEAiICIkJGlu Y2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZpOyBcCisrCWRvbmU7 IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpIGNvbmZpZy5oLmluICQoTElTUCkgJChU QUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlm IHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBm aTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0 eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVz KSBwcmludCBpOyB9OyB9J2A7IFwKKysJc2hpZnQ7IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19B UkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIg fHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAor KwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJH UykgXAorKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorKwkgIGVsc2UgXAorKwkgICAgJChFVEFH UykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAg ICAkJHVuaXF1ZTsgXAorKwkgIGZpOyBcCisrCWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0 YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgY29uZmlnLmguaW4gJChUQUdTX0RF UEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCWxpc3Q9JyQoU09VUkNF UykgJChIRUFERVJTKSBjb25maWcuaC5pbiAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVu aXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVu IGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAor KwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAg RU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBc CisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQo Q1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVu aXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3 ZGAgXAorKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAk KEdUQUdTX0FSR1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdT IElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklM RVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwq XS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwg c2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBc CisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9u ZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAi c3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRk aXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIg fCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwg XAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3Rf ZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhl biBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxl OyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQs LCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkg ICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMg Y2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3Jj ZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3Ag LWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkg ICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMg Y2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZp bGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0 IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChk aXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUK KysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisr CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQg IiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikv JCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxp c3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYg dGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIGRpcjE9JCRzdWJkaXI7 IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCisrCSAgICAkKGFtX19yZWxhdGl2aXplKTsg XAorKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRp cjI9IiQodG9wX2Rpc3RkaXIpIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAg IG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIi IGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAorKwkgICAgZWNobyAiICAgICBhbV9fcmVt b3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06 IGRpc3RkaXIpIjsgXAorKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCisrCSAgICAgICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9w X2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCisrCQlhbV9f cmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisrCQlhbV9f c2tpcF9tb2RlX2ZpeD06IFwKKysJICAgICAgICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQg MTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNr LXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFrZWZpbGUgY29uZmlnLmgKKytpbnN0YWxsZGlyczogaW5z dGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisraW5zdGFsbDogaW5zdGFsbC1y ZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxs LWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1 cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3Rh bGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGlu c3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQ X0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5T VEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHlj bGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6 CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NM RUFOX0ZJTEVTKQorKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdf Q0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykK KysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMg aW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmls ZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAt eiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklM RVMpCisrY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmlj IGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1y ZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0 Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4taGRyIGRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmkt cmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraHRt bC1hbToKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFs bC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytp bnN0YWxsLWR2aS1hbToKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBp bnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1odG1sLWFtOgorKworK2luc3RhbGwt aW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5mby1hbToKKysKKytp bnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisrCisr aW5zdGFsbC1wZGYtYW06CisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKysK KytpbnN0YWxsLXBzLWFtOgorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNs ZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWlu dGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisr CisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFt OiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1y ZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vyc2l2ZQorKworK3BzLWFtOgor KworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykg JChSRUNVUlNJVkVfVEFSR0VUUykgYWxsIFwKKysJY3RhZ3MtcmVjdXJzaXZlIGluc3RhbGwtYW0g aW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxs LWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisr CWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlk aXN0Y2xlYW4taGRyIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZp IFwKKysJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFt IFwKKysJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2 aS1hbSBcCisrCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3Rh bGwtaHRtbC1hbSBcCisrCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4g aW5zdGFsbC1wZGYgXAorKwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0g aW5zdGFsbC1zdHJpcCBcCisrCWluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRp cnMgaW5zdGFsbGRpcnMtYW0gXAorKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4t Z2VuZXJpYyBtb3N0bHljbGVhbiBcCisrCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4t bGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKysJdGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmlu c3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAorKworKyMgVGVsbCB2ZXJzaW9ucyBb My41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBP dGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVk ZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2ktY29uZmln LmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLWNvbmZpZy5pbgorLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2ktY29uZmlnLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisr Kysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2ktY29uZmlnLmluCTIwMDktMDQtMTYgMTk6Mzc6MTAu MDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDc2IEBACisrIyEvYmluL3NoCisrCisrcHJlZml4 PUBwcmVmaXhACisrZXhlY19wcmVmaXg9JHtwcmVmaXh9CisrbGliZGlyPUBsaWJkaXJACisraW5j bHVkZWRpcj1AaW5jbHVkZWRpckAKKysKKyt1c2FnZSgpCisreworKyAgY2F0IDw8RU9GCisrVXNh Z2U6IEBQQUNLQUdFQC1jb25maWcgW09QVElPTl0KKysKKytLbm93biB2YWx1ZXMgZm9yIE9QVElP TiBhcmU6CisrCisrICAtLXByZWZpeCAgICAgICAgcHJpbnQgQFBBQ0tBR0VfTkFNRUAgaW5zdGFs bGF0aW9uIHByZWZpeAorKyAgLS1saWJzICAgICAgICAgIHByaW50IGxpYnJhcnkgbGlua2luZyBp bmZvcm1hdGlvbgorKyAgLS1jZmxhZ3MgICAgICAgIHByaW50IHByZS1wcm9jZXNzb3IgYW5kIGNv bXBpbGVyIGZsYWdzCisrICAtLWhlbHAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4 aXQKKysgIC0tdmVyc2lvbiAgICAgICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvbgorK0VPRgor KyAgZXhpdCAkMQorK30KKysKKytpZiB0ZXN0ICQjIC1lcSAwOyB0aGVuCisrICB1c2FnZSAxCisr ZmkKKysKKytjZmxhZ3M9ZmFsc2UKKytsaWJzPWZhbHNlCisrCisrd2hpbGUgdGVzdCAkIyAtZ3Qg MDsgZG8KKysgIGNhc2UgIiQxIiBpbgorKyAgLSo9Kikgb3B0YXJnPWBlY2hvICIkMSIgfCBzZWQg J3MvWy1fYS16QS1aMC05XSo9Ly8nYCA7OworKyAgKikgb3B0YXJnPSA7OworKyAgZXNhYworKwor KyAgY2FzZSAkMSBpbgorKyAgICAtLXByZWZpeD0qKQorKyAgICAgIHByZWZpeD0kb3B0YXJnCisr ICAgICAgOzsKKysKKysgICAgLS1wcmVmaXgpCisrICAgICAgZWNobyAkcHJlZml4CisrICAgICAg OzsKKysKKysgICAgLS12ZXJzaW9uKQorKyAgICAgIGVjaG8gQFZFUlNJT05ACisrICAgICAgOzsK KysKKysgICAgLS1oZWxwKQorKyAgICAgIHVzYWdlIDAKKysgICAgICA7OworKworKyAgICAtLWNm bGFncykKKysgICAgICBpZiBbICIke3ByZWZpeH0iICE9ICIvdXNyIiBdOyB0aGVuCisrICAgICAg ICBlY2hvIC1JJHtpbmNsdWRlZGlyfQorKyAgICAgIGVsc2UKKysgICAgICAgIGVjaG8KKysgICAg ICBmaQorKyAgICAgIDs7CisrCisrICAgIC0tbGlicykKKysgICAgICBpZiBbICIke3ByZWZpeH0i ICE9ICIvdXNyIiBdOyB0aGVuCisrICAgICAgICBlY2hvIC1MJHtsaWJkaXJ9IC1sQFBBQ0tBR0VA CisrICAgICAgZWxzZQorKyAgICAgICAgZWNobyAtbEBQQUNLQUdFQAorKyAgICAgIGZpCisrICAg ICAgOzsKKysKKysgICAgKikKKysgICAgICB1c2FnZQorKyAgICAgIGV4aXQgMQorKyAgICAgIDs7 CisrICBlc2FjCisrICBzaGlmdAorK2RvbmUKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9z b2NpLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLm00CistLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpLm00CTIwMDktMDUtMDIgMjM6NTk6MTMuMDAwMDAwMDAwICswMjAwCitA QCAtMCwwICsxLDExOCBAQAorK2RubCBAc3lub3BzaXMgQVhfU09DSQorK2RubCAKKytkbmwgVGhp cyBtYWNybyB0cmllcyB0byBmaW5kIFNvY2kgQyBBUEkgaGVhZGVyIGFuZCBsaWJyYXJ5IGxvY2F0 aW9ucy4KKytkbmwKKytkbmwgV2UgZGVmaW5lIHRoZSBmb2xsb3dpbmcgY29uZmlndXJlIHNjcmlw dCBmbGFnczoKKytkbmwKKytkbmwJLS13aXRoLXNvY2k6IEdpdmUgcHJlZml4IGZvciBib3RoIGxp YnJhcnkgYW5kIGhlYWRlcnMsIGFuZCB0cnkKKytkbmwJCSAgICAgdG8gZ3Vlc3Mgc3ViZGlyZWN0 b3J5IG5hbWVzIGZvciBlYWNoLiAgKGUuZy4gYWRkIC9saWIgYW5kCisrZG5sCQkgICAgIC9pbmNs dWRlIG9udG8gZ2l2ZW4gZGlyIG5hbWVzLCBhbmQgb3RoZXIgY29tbW9uIHNjaGVtZXMuKQorK2Ru bAorK2RubCBAdmVyc2lvbiAxLjMsIDIwMDkvMDUvMDIKKytkbmwgQGF1dGhvciBEZW5pcyBBcm5h dWQgPGRlbmlzX2FybmF1ZEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisrZG5sCisrZG5sIEB2ZXJz aW9uIDEuMiwgMjAwNy8wMi8yMAorK2RubCBAYXV0aG9yIFdhcnJlbiBZb3VuZyA8c29jaXBwQGV0 ci11c2EuY29tPgorKworK0FDX0RFRlVOKFtBWF9TT0NJXSwKKytbCisrIworKyMgU2V0IHVwIGNv bmZpZ3VyZSBzY3JpcHQgbWFjcm9zCisrIworK0FDX0FSR19XSVRIKHNvY2ksCisrCVstLXdpdGgt c29jaT08cGF0aD4gICAgIHJvb3QgZGlyZWN0b3J5IHBhdGggb2YgU29jaSBpbnN0YWxsYXRpb25d LAorKwlbU09DSV9saWJfY2hlY2s9IiR3aXRoX3NvY2kvbGliNjQvc29jaSAkd2l0aF9zb2NpL2xp Yi9zb2NpICR3aXRoX3NvY2kvbGliNjQgJHdpdGhfc29jaS9saWIiCisrCVNPQ0lfaW5jX2NoZWNr PSIkd2l0aF9zb2NpL2luY2x1ZGUgJHdpdGhfc29jaS9pbmNsdWRlL3NvY2kiXSwKKysJW1NPQ0lf bGliX2NoZWNrPSIvdXNyL2xpYjY0IC91c3IvbGliIC91c3IvbGliNjQvc29jaSAvdXNyL2xpYi9z b2NpIC91c3IvbG9jYWwvbGliNjQgL3Vzci9sb2NhbC9saWIgL29wdC9zb2NpL2xpYjY0IC9vcHQv c29jaS9saWIgL3Vzci9sb2NhbC9saWI2NC9zb2NpIC91c3IvbG9jYWwvbGliL3NvY2kgL3Vzci9s b2NhbC9zb2NpL2xpYjY0IC91c3IvbG9jYWwvc29jaS9saWIgL29wdC9zb2NpL2xpYjY0L3NvY2kg L29wdC9zb2NpL2xpYi9zb2NpIgorKwlTT0NJX2luY19jaGVjaz0iL3Vzci9pbmNsdWRlIC91c3Iv aW5jbHVkZS9zb2NpIC91c3IvbG9jYWwvaW5jbHVkZSAvb3B0L3NvY2kvaW5jbHVkZSAvdXNyL2xv Y2FsL2luY2x1ZGUvc29jaSAvdXNyL2xvY2FsL3NvY2kvaW5jbHVkZSAvdXNyL2xvY2FsL3NvY2kv aW5jbHVkZS9zb2NpIC9vcHQvc29jaS9pbmNsdWRlL3NvY2kiXSkKKysKKysjIFNPQ0kgbGlicmFy eQorK1NPQ0lfQ09SRV9MSUI9c29jaV9jb3JlCisrU09DSV9NWVNRTF9MSUI9c29jaV9teXNxbAor KworKyMKKysjIExvb2sgZm9yIFNvY2kgQ29yZSBBUEkgbGlicmFyeQorKyMKKytBQ19NU0dfQ0hF Q0tJTkcoW2ZvciBTb2NpIGxpYnJhcnkgZGlyZWN0b3J5XSkKKytTT0NJX2xpYmRpcj0KKytmb3Ig bSBpbiAkU09DSV9saWJfY2hlY2sKKytkbworKwlpZiB0ZXN0IC1kICIkbSIgJiYgXAorKwkJKHRl c3QgLWYgIiRtL2xpYiRTT0NJX0NPUkVfTElCLnNvIiB8fCB0ZXN0IC1mICIkbS9saWIkU09DSV9D T1JFX0xJQi5hIikKKysJdGhlbgorKwkJU09DSV9saWJkaXI9JG0KKysJCWJyZWFrCisrCWZpCisr ZG9uZQorKworK2lmIHRlc3QgLXogIiRTT0NJX2xpYmRpciIKKyt0aGVuCisrCUFDX01TR19FUlJP UihbRGlkbid0IGZpbmQgJFNPQ0lfQ09SRV9MSUIgbGlicmFyeSBpbiAnJFNPQ0lfbGliX2NoZWNr J10pCisrZmkKKysKKytjYXNlICIkU09DSV9saWJkaXIiIGluCisrCS8qICkgOzsKKysJKiApICBB Q19NU0dfRVJST1IoW1RoZSBTb2NpIGxpYnJhcnkgZGlyZWN0b3J5ICgkU09DSV9saWJkaXIpIG11 c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7OworK2VzYWMKKysKKytBQ19NU0dfUkVTVUxUKFsk U09DSV9saWJkaXJdKQorKworK2Nhc2UgIiRTT0NJX2xpYmRpciIgaW4KKysgIC91c3IvbGliNjQp IDs7CisrICAvdXNyL2xpYikgOzsKKysgICopIFNPQ0lfTElCUz0iLUwke1NPQ0lfbGliZGlyfSIg OzsKKytlc2FjCisrTERGTEFHUz0iJExERkxBR1MgJHtTT0NJX0xJQlN9IgorKworKworKyMKKysj IExvb2sgZm9yIFNvY2kgQ29yZSBBUEkgaGVhZGVycworKyMKKytBQ19NU0dfQ0hFQ0tJTkcoW2Zv ciBTb2NpIGluY2x1ZGUgZGlyZWN0b3J5XSkKKytTT0NJX2luY2Rpcj0KKytmb3IgbSBpbiAkU09D SV9pbmNfY2hlY2sKKytkbworKwlpZiB0ZXN0IC1kICIkbSIgJiYgdGVzdCAtZiAiJG0vc29jaS9j b3JlL3NvY2kuaCIKKysJdGhlbgorKwkJU09DSV9pbmNkaXI9JG0KKysJCWJyZWFrCisrCWZpCisr ZG9uZQorKworK2lmIHRlc3QgLXogIiRTT0NJX2luY2RpciIKKyt0aGVuCisrCUFDX01TR19FUlJP UihbRGlkbid0IGZpbmQgdGhlIFNvY2kgaW5jbHVkZSBkaXIgaW4gJyRTT0NJX2luY19jaGVjaydd KQorK2ZpCisrCisrY2FzZSAiJFNPQ0lfaW5jZGlyIiBpbgorKwkvKiApIDs7CisrCSogKSAgQUNf TVNHX0VSUk9SKFtUaGUgU29jaSBpbmNsdWRlIGRpcmVjdG9yeSAoJFNPQ0lfaW5jZGlyKSBtdXN0 IGJlIGFuIGFic29sdXRlIHBhdGguXSkgOzsKKytlc2FjCisrCisrQUNfTVNHX1JFU1VMVChbJFNP Q0lfaW5jZGlyXSkKKysKKytjYXNlICIkU09DSV9pbmNkaXIiIGluCisrICAvdXNyL2luY2x1ZGUp IDs7CisrICAqKSBTT0NJX0NGTEFHUz0iLUkke1NPQ0lfaW5jZGlyfSIgOzsKKytlc2FjCisrCisr U09DSV9MSUJTPSIke1NPQ0lfTElCU30gLWwke1NPQ0lfQ09SRV9MSUJ9IC1sJHtTT0NJX01ZU1FM X0xJQn0gLWxkbCIKKysKKytBQ19TVUJTVChTT0NJX0NGTEFHUykKKytBQ19TVUJTVChTT0NJX0xJ QlMpCisrCisrIyBUZXN0IGxpbmtpbmcgd2l0aCBzb2NpIChub3RlIHRoYXQgaXQgbmVlZHMgTXlT UUwgY2xpZW50IHRvIGhhdmUgYmVlbiBkZWZpbmVkCisrIyBiZWZvcmUpCisrc2F2ZV9MSUJTPSIk TElCUyIKKytpZiB0ZXN0IC16ICIkTVlTUUxfTElCUyIKKyt0aGVuCisrCU1ZU1FMX0xJQlM9Ii1M L3Vzci9saWI2NC9teXNxbCAtTC91c3IvbGliL215c3FsIC1sbXlzcWxjbGllbnQiCisrZmkKKytM SUJTPSIkTElCUyAkTVlTUUxfTElCUyAkU09DSV9MSUJTIgorK0FDX0NIRUNLX0xJQigkU09DSV9D T1JFX0xJQiwgc29jaV9iZWdpbiwKKysJICAgICBbXSwgCisrICAgICAgICAgICAgIFtBQ19NU0df RVJST1IoW0NvdWxkIG5vdCBmaW5kIHdvcmtpbmcgU29jaSBjbGllbnQgbGlicmFyeSFdKV0KKysJ ICAgICApCisrTElCUz0iJHNhdmVfTElCUyIKKytBQ19TVUJTVChTT0NJX0NPUkVfTElCKQorK10p IGRubCBBWF9TT0NJCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS5wYy5pbiBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS5wYy5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kucGMu aW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS5wYy5pbgkyMDA5LTA0LTE2IDE5OjM3OjEwLjAwMDAwMDAwMCArMDIwMAorQEAg LTAsMCArMSwxMSBAQAorK3ByZWZpeD1AcHJlZml4QAorK2V4ZWNfcHJlZml4PUBleGVjX3ByZWZp eEAKKytsaWJkaXI9QGxpYmRpckAKKytpbmNsdWRlZGlyPUBpbmNsdWRlZGlyQAorKworK05hbWU6 IEBQQUNLQUdFX05BTUVACisrRGVzY3JpcHRpb246IFRoZSBkYXRhYmFzZSBhY2Nlc3MgbGlicmFy eSBmb3IgQysrIHByb2dyYW1tZXJzCisrVmVyc2lvbjogQFBBQ0tBR0VfVkVSU0lPTkAKKytVUkw6 IGh0dHA6Ly9AUEFDS0FHRUAuc291cmNlZm9yZ2UubmV0CisrTGliczogLUwke2xpYmRpcn0gLWxA UEFDS0FHRUBfY29yZSBATERGTEFHU0AgQExJQlNACisrQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0K CmRpZmYgLS1naXQgYS9zb2NpLnNwZWMgYi9zb2NpLnNwZWMKaW5kZXggN2MxNjgyNS4uMWViMTdl MiAxMDA2NDQKLS0tIGEvc29jaS5zcGVjCisrKyBiL3NvY2kuc3BlYwpAQCAtMjUsMjAgKzI1LDI2 IEBAIFN1bW1hcnk6ICAgICAgICBUaGUgZGF0YWJhc2UgYWNjZXNzIGxpYnJhcnkgZm9yIEMrKyBw cm9ncmFtbWVycwogR3JvdXA6ICAgICAgICAgIFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMK IExpY2Vuc2U6ICAgICAgICBCb29zdAogVVJMOiAgICAgICAgICAgIGh0dHA6Ly8le25hbWV9LnNv dXJjZWZvcmdlLm5ldAotU291cmNlMDogICAgICAgIGh0dHA6Ly9kb3dubG9hZHMuc291cmNlZm9y Z2UubmV0L3NvY2kvJXtuYW1lfS0le3ZlcnNpb259LnRhci5negotIyBUaGF0IHBhdGNoIHdpbGwg YmUgc3VibWl0dGVkIHVwc3RyZWFtCi1QYXRjaDA6ICAgICAgICAgJXtuYW1lfS0le3ZlcnNpb259 LTE2LWZpeC1nY2M0NC1jb21wYXRpYmlsaXR5LnBhdGNoCi0jIFRoYXQgcGF0Y2ggd2lsbCBiZSBz dWJtaXR0ZWQgdXBzdHJlYW0KLVBhdGNoMTogICAgICAgICAle25hbWV9LSV7dmVyc2lvbn0tMTYt Zml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaAotIyBQYXRjaCBmaXhpbmcgY29t cGlsYXRpb24gYnVnIChodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lk PTYzMTE3NSk6Ci1QYXRjaDI6ICAgICAgICAgJXtuYW1lfS0le3ZlcnNpb259LTE2LWZpeC1tYWtl LXRhYi5wYXRjaAorU291cmNlMDogICAgICAgIGh0dHA6Ly9kb3dubG9hZHMuc291cmNlZm9yZ2Uu bmV0LyV7bmFtZX0vJXtuYW1lfS0le3ZlcnNpb259LnRhci5negorIyBUaGlzIGlzc3VlIGhhcyBi ZWVuIGZpeGVkIHVwc3RyZWFtLCBlLmcuLCBzZWU6CisjICBodHRwOi8vc29jaS5naXQuc291cmNl Zm9yZ2UubmV0L2dpdC9naXR3ZWIuY2dpP3A9c29jaS9zb2NpO2E9Y29tbWl0ZGlmZjtoPTllNDY3 YjVhNGFiNGNkZGE2Y2Q4MDFmYjc2YjJkODUzMzQwZGM1ZDcpOgorUGF0Y2gwOiAgICAgICAgICV7 bmFtZX0tJXt2ZXJzaW9ufS1nY2M0Ni1jb21wYXRpYmlsaXR5LnBhdGNoCisjIFRoaXMgcGF0Y2gg aXMgYmVpbmcgc3VibWl0dGVkIHVwc3RyZWFtLiBBIGRlY2lzaW9uIGFib3V0IHdoZXRoZXIgYW5k IGhvdworIyBidXJ5aW5nIGhlYWRlcnMpIHNob3VsZCBiZSB0YWtlbiBhZnRlciB0aGUgcmVsZWFz ZSBvZiB2ZXJzaW9uIDMuMS4wKToKK1BhdGNoMTogICAgICAgICAle25hbWV9LSV7dmVyc2lvbn0t YnVyaWVkLWhlYWRlcnMucGF0Y2gKKyMgSnVzdCBhZGQgc3RhbmRhcmQgZG9jdW1lbnRhdGlvbiwg ZnJvbSB1cHN0cmVhbSBkb2N1bWVudHM6CitQYXRjaDI6ICAgICAgICAgJXtuYW1lfS0le3ZlcnNp b259LWFkZC1kb2MucGF0Y2gKKyMgVGhpcyBwYXRjaCBpcyB0ZW1wb3JhcnksIGZvciB0aGUgMy4w LjAgdmVyc2lvbiwgYXM6CisjICAqIGl0IGFsbG93cyB0byBidWlsZCBjbGVhbmx5IHdpdGggdGhl IEdOVSBBdXRvdG9vbHM7CisjICAqIHdoZXJlYXMgdXBzdHJlYW0gbm93IHVzZXMgQ01ha2UuCitQ YXRjaDM6ICAgICAgICAgJXtuYW1lfS0le3ZlcnNpb259LWdudS1hdXRvdG9vbHMtY29tcGF0aWJp bGl0eS5wYXRjaAogQnVpbGRSb290OiAgICAgICV7X3RtcHBhdGh9LyV7bmFtZX0tJXt2ZXJzaW9u fS0le3JlbGVhc2V9LXJvb3QtJSgle19faWRfdX0gLW4pCiAKIEJ1aWxkUmVxdWlyZXM6ICBib29z dC1kZXZlbAogQnVpbGRSZXF1aXJlczogIGxpYnRvb2wKIAogJWRlc2NyaXB0aW9uCi1TT0NJIGlz IGEgQysrIGRhdGFiYXNlIGFjY2VzcyBsaWJyYXJ5IHRoYXQgcHJvdmlkZXMgdGhlCisle25hbWV9 IGlzIGEgQysrIGRhdGFiYXNlIGFjY2VzcyBsaWJyYXJ5IHRoYXQgcHJvdmlkZXMgdGhlCiBpbGx1 c2lvbiBvZiBlbWJlZGRpbmcgU1FMIGluIHJlZ3VsYXIgQysrIGNvZGUsIHN0YXlpbmcgZW50aXJl bHkgd2l0aGluCiB0aGUgQysrIHN0YW5kYXJkLgogCkBAIC0xNDcsNyArMTUzLDcgQEAgbGlicmFy eS4gVGhlIGRvY3VtZW50YXRpb24gaXMgdGhlIHNhbWUgYXMgYXQgdGhlIFNPQ0kgd2ViIHBhZ2Uu CiAlcHJlcAogJXNldHVwIC1xCiAKLSMgQXBwbHkgdGhlIGcrKyA0LjQgY29tcGF0aWJpbGl0eSBw YXRjaAorIyBBcHBseSB0aGUgZysrIDQuNiBjb21wYXRpYmlsaXR5IHBhdGNoCiAlcGF0Y2gwIC1w MQogCiAjIFJlbmFtZSBjaGFuZ2UtbG9nIGFuZCBsaWNlbnNlIGZpbGUsIHNvIHRoYXQgdGhleSBj b21wbHkgd2l0aApAQCAtMTY3LDEyICsxNzMsMTUgQEAgcm0gLWYgZG9jLy5fKi5odG1sCiAjIGZp bGVzKSBjYW4gYmUgZXhwb3J0ZWQgY29ycmVjdGx5IGludG8ge19zdGFuZGFyZF9kaXJ9LyV7bmFt ZX0KIG12IHNyYyAle25hbWV9CiAKLSMgQXBwbHkgdGhlIEdOVSBBdXRvdG9vbHMgY29tcGF0aWJp bGl0eSBwYXRjaAorIyBBcHBseSB0aGUgYnVyaWVkIGhlYWRlcnMgcGF0Y2gKICVwYXRjaDEgLXAx CiAKLSMgQXBwbHkgdGhlIHBhdGNoIGZvciB0aGUgTWFrZSBidWcKKyMgQWRkIHN0YW5kYXJkIGRv Y3VtZW50YXRpb24KICVwYXRjaDIgLXAxCiAKKyMgQXBwbHkgdGhlIEdOVSBBdXRvdG9vbHMgY29t cGF0aWJpbGl0eSBwYXRjaAorJXBhdGNoMyAtcDEKKwogIyBGaXggc29tZSBwZXJtaXNzaW9ucyBh bmQgZm9ybWF0cwogZmluZCAuL2RvYyAtdHlwZSBmIC1wZXJtIDc1NSAtZXhlYyBjaG1vZCA2NDQg e30gXDsKIGNobW9kIC14IEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKQEAg LTI5MCw4ICsyOTksOSBAQCBybSAtcmYgJFJQTV9CVUlMRF9ST09UCiAKIAogJWNoYW5nZWxvZwot KiBNb24gRmViIDA3IDIwMTEgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5v cmc+IDMuMC4wLTE5Ci0tIFJlYnVpbGQgZm9yIEJvb3N0IHNvbmFtZSBidW1wCisqIFR1ZSBGZWIg MDggMjAxMSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAt MTkKKy0gRml4ZWQgYSBjb21waWxhdGlvbiBlcnJvciB3aXRoIGcrKyA0LjYgb24gZGVmYXVsdCBj b25zdHJ1Y3RvciBkZWZpbml0aW9uCistIFNwbGl0IHRoZSBiaWcgcGF0Y2ggaW50byBzbWFsbGVy IHBpZWNlcwogCiAqIFR1ZSBTZXAgMDcgMjAxMCBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9m ZWRvcmFAbTR4Lm9yZz4gMy4wLjAtMTgKIC0gRml4ZWQgYnVnICM2MzExNzUgKGh0dHBzOi8vYnVn emlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NjMxMTc1KQoKZGlmZiAtLWdpdCBhL3Nv dXJjZXMgYi9zb3VyY2VzCmluZGV4IDM3MDRjM2UuLjI5MWM1ODYgMTAwNjQ0Ci0tLSBhL3NvdXJj ZXMKKysrIGIvc291cmNlcwpAQCAtMSw0ICsxIEBACiAxYmY3ZGQyNDQ3NjRlNTM1NTdjMWVjYzAx ZmRmYWM5NiAgc29jaS0zLjAuMC50YXIuZ3oKLTY1YzFjYTkwNjk1YTExYTY4NzYxMWNmZGY5Zjcz NjFjICBzb2NpLTMuMC4wLTE2LWZpeC1nY2M0NC1jb21wYXRpYmlsaXR5LnBhdGNoCi1lNWU2MjAw ODYzZTYyYTM2MGYxZmM3N2MyZDU2ZGQ5YiAgc29jaS0zLjAuMC0xNi1maXgtZ251LWF1dG90b29s cy1jb21wYXRpYmlsaXR5LnBhdGNoCi1lMmY5ZTFmZGQ4OGQ2MjM4MTQ1NzljMjUyYWY5ZmY3NyAg c29jaS0zLjAuMC0xNi1maXgtbWFrZS10YWIucGF0Y2gK