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: Tomas Mraz To: git-commits@fedoraproject.org Subject: [rpms/openssl] rebase_40beta: drop the separate engine for Intel acceleration improvements Date: Tue, 09 Jun 2026 12:42:27 GMT Message-ID: <178100894774.1.6253655064281866611.rpms-openssl-4c970c62c545@fedoraproject.org> List-ID: X-Git-Repo: rpms/openssl X-Git-Branch: rebase_40beta X-Git-Rev: 4c970c62c5450e85ce9ff902d539da4fb1acd535 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvb3BlbnNzbAogICAgICAgICAgICBCcmFuY2ggOiByZWJhc2VfNDBiZXRhCiAg ICAgICAgICAgIENvbW1pdCA6IDRjOTcwYzYyYzU0NTBlODVjZTlmZjkwMmQ1MzlkYTRmYjFhY2Q1 MzUKICAgICAgICAgICAgQXV0aG9yIDogVG9tYXMgTXJheiA8dG1yYXpAZmVkb3JhcHJvamVjdC5v cmc+CiAgICAgICAgICAgIERhdGUgICA6IDIwMTEtMDgtMjRUMTM6MTI6MzMrMDI6MDAKICAgICAg ICAgICAgU3RhdHMgIDogKzYyNDAvLTI0IGluIDQgZmlsZShzKQogICAgICAgICAgICBVUkwgICAg OiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL29wZW5zc2wvYy80Yzk3MGM2MmM1 NDUwZTg1Y2U5ZmY5MDJkNTM5ZGE0ZmIxYWNkNTM1P2JyYW5jaD1yZWJhc2VfNDBiZXRhCgogICAg ICAgICAgICBMb2c6CiAgICAgICAgICAgIGRyb3AgdGhlIHNlcGFyYXRlIGVuZ2luZSBmb3IgSW50 ZWwgYWNjZWxlcmF0aW9uIGltcHJvdmVtZW50cwphbmQgbWVyZ2UgaW4gdGhlIEFFUy1OSSwgU0hB MSwgYW5kIFJDNCBvcHRpbWl6YXRpb25zCmFkZCBzdXBwb3J0IGZvciBPUEVOU1NMX0RJU0FCTEVf QUVTX05JIGVudmlyb25tZW50IHZhcmlhYmxlCnRoYXQgZGlzYWJsZXMgdGhlIEFFUy1OSSBzdXBw b3J0CgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IGM3MmQw ZTUuLmQ4YzRkNmQgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAt Miw0ICsyLDMgQEAgb3BlbnNzbC0xLjAuMGEtdXNhLnRhci5iejIKIC9vcGVuc3NsLTEuMC4wYi11 c2EudGFyLmJ6MgogL29wZW5zc2wtMS4wLjBjLXVzYS50YXIuYnoyCiAvb3BlbnNzbC0xLjAuMGQt dXNhLnRhci5iejIKLS9pbnRlbC1hY2NlbC0xLjMudGFyLmd6CgpkaWZmIC0tZ2l0IGEvb3BlbnNz bC0xLjAuMGQtaW50ZWxvcHRzLnBhdGNoIGIvb3BlbnNzbC0xLjAuMGQtaW50ZWxvcHRzLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5OTU3YjMKLS0tIC9kZXYvbnVs bAorKysgYi9vcGVuc3NsLTEuMC4wZC1pbnRlbG9wdHMucGF0Y2gKQEAgLTAsMCArMSw2MjI4IEBA CitkaWZmIC11cCBvcGVuc3NsLTEuMC4wZC9jcnlwdG8vYWVzL2FzbS9hZXNuaS14ODYucGwuaW50 ZWxvcHRzIG9wZW5zc2wtMS4wLjBkL2NyeXB0by9hZXMvYXNtL2Flc25pLXg4Ni5wbAorLS0tIG9w ZW5zc2wtMS4wLjBkL2NyeXB0by9hZXMvYXNtL2Flc25pLXg4Ni5wbC5pbnRlbG9wdHMJMjAxMS0w OC0yNCAxMjozNjozMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4wZC9jcnlwdG8v YWVzL2FzbS9hZXNuaS14ODYucGwJMjAxMS0wOC0yNCAxMjozNjozNC4wMDAwMDAwMDAgKzAyMDAK K0BAIC0xLDQgKzEsNCBAQAorLSMhL3Vzci9iaW4vZW52IHBlcmwKKysjIS91c3IvYmluL3BlcmwK KyAKKyAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CisgIyBXcml0dGVuIGJ5IEFuZHkgUG9seWFrb3YgPGFwcHJvQGZ5 LmNoYWxtZXJzLnNlPiBmb3IgdGhlIE9wZW5TU0wKK0BAIC0xMSwxMCArMTEsMzcgQEAKKyAjIE9w ZW5TU0wgY29udGV4dCBpdCdzIHVzZWQgd2l0aCBJbnRlbCBlbmdpbmUsIGJ1dCBjYW4gYWxzbyBi ZSB1c2VkIGFzCisgIyBkcm9wLWluIHJlcGxhY2VtZW50IGZvciBjcnlwdG8vYWVzL2FzbS9hZXMt NTg2LnBsIFtzZWUgYmVsb3cgZm9yCisgIyBkZXRhaWxzXS4KKysjCisrIyBQZXJmb3JtYW5jZS4K KysjCisrIyBUbyBzdGFydCB3aXRoIHNlZSBjb3JyZXNwb25kaW5nIHBhcmFncmFwaCBpbiBhZXNu aS14ODZfNjQucGwuLi4KKysjIEluc3RlYWQgb2YgZmlsbGluZyB0YWJsZSBzaW1pbGFyIHRvIG9u ZSBmb3VuZCB0aGVyZSBJJ3ZlIGNob3NlbiB0bworKyMgc3VtbWFyaXplICpjb21wYXJpc29uKiBy ZXN1bHRzIGZvciByYXcgRUNCLCBDVFIgYW5kIENCQyBiZW5jaG1hcmtzLgorKyMgVGhlIHNpbXBs aWZpZWQgdGFibGUgYmVsb3cgcmVwcmVzZW50cyAzMi1iaXQgcGVyZm9ybWFuY2UgcmVsYXRpdmUK KysjIHRvIDY0LWJpdCBvbmUgaW4gZXZlcnkgZ2l2ZW4gcG9pbnQuIFJhdGlvcyB2YXJ5IGZvciBk aWZmZXJlbnQKKysjIGVuY3J5cHRpb24gbW9kZXMsIHRoZXJlZm9yZSBpbnRlcnZhbCB2YWx1ZXMu CisrIworKyMJMTYtYnl0ZSAgICAgNjQtYnl0ZSAgICAgMjU2LWJ5dGUgICAgMS1LQiAgICAgICAg OC1LQgorKyMJNTMtNjclICAgICAgNjctODQlICAgICAgOTEtOTQlICAgICAgOTUtOTglICAgICAg OTctOTkuNSUKKysjCisrIyBMb3dlciByYXRpb3MgZm9yIHNtYWxsZXIgYmxvY2sgc2l6ZXMgYXJl IHBlcmZlY3RseSB1bmRlcnN0YW5kYWJsZSwKKysjIGJlY2F1c2UgZnVuY3Rpb24gY2FsbCBvdmVy aGVhZCBpcyBoaWdoZXIgaW4gMzItYml0IG1vZGUuIExhcmdlc3QKKysjIDgtS0IgYmxvY2sgcGVy Zm9ybWFuY2UgaXMgdmlydHVhbGx5IHNhbWU6IDMyLWJpdCBjb2RlIGlzIGxlc3MgdGhhbgorKyMg MSUgc2xvd2VyIGZvciBFQ0IsIENCQyBhbmQgQ0NNLCBhbmQgfjMlIHNsb3dlciBvdGhlcndpc2Uu CisrCisrIyBKYW51YXJ5IDIwMTEKKysjCisrIyBTZWUgYWVzbmkteDg2XzY0LnBsIGZvciBkZXRh aWxzLiBVbmxpa2UgeDg2XzY0IHZlcnNpb24gdGhpcyBtb2R1bGUKKysjIGludGVybGVhdmVzIGF0 IG1vc3QgNiBhZXNbZW5jfGRlY10gaW5zdHJ1Y3Rpb25zLCBiZWNhdXNlIHRoZXJlIGFyZQorKyMg bm90IGVub3VnaCByZWdpc3RlcnMgZm9yIDh4IGludGVybGVhdmUgW3doaWNoIHNob3VsZCBiZSBv cHRpbWFsIGZvcgorKyMgU2FuZHkgQnJpZGdlXS4gQWN0dWFsbHksIHBlcmZvcm1hbmNlIHJlc3Vs dHMgZm9yIDZ4IGludGVybGVhdmUKKysjIGZhY3RvciBwcmVzZW50ZWQgaW4gYWVzbmkteDg2XzY0 LnBsIChleGNlcHQgZm9yIENUUikgYXJlIGZvciB0aGlzCisrIyBtb2R1bGUuCisgCisgJFBSRUZJ WD0iYWVzbmkiOwkjIGlmICRQUkVGSVggaXMgc2V0IHRvICJBRVMiLCB0aGUgc2NyaXB0CisgCQkJ IyBnZW5lcmF0ZXMgZHJvcC1pbiByZXBsYWNlbWVudCBmb3IKKyAJCQkjIGNyeXB0by9hZXMvYXNt L2Flcy01ODYucGw6LSkKKyskaW5saW5lPTE7CQkjIGlubGluZSBfYWVzbmlfW2VufGRlXWNyeXB0 CisgCisgJDAgPX4gbS8oLipbXC9cXF0pW15cL1xcXSskLzsgJGRpcj0kMTsKKyBwdXNoKEBJTkMs IiR7ZGlyfSIsIiR7ZGlyfS4uLy4uL3Blcmxhc20iKTsKK0BAIC0yMiw3ICs0OSw4IEBAIHJlcXVp cmUgIng4NmFzbS5wbCI7CisgCisgJmFzbV9pbml0KCRBUkdWWzBdLCQwKTsKKyAKKy0kbW92ZWtl eSA9IGV2YWwoJFJSRUZJWCBlcSAiYXNlbmkiID8gIiptb3ZhcHMiIDogIiptb3Z1cHMiKTsKKytp ZiAoJFBSRUZJWCBlcSAiYWVzbmkiKQl7ICRtb3Zla2V5PSptb3Z1cHM7IH0KKytlbHNlCQkJeyAk bW92ZWtleT0qbW92dXBzOyB9CisgCisgJGxlbj0iZWF4IjsKKyAkcm91bmRzPSJlY3giOworQEAg LTMyLDExNCArNjAsMTQ0IEBAICRvdXQ9ImVkaSI7CisgJHJvdW5kc189ImVieCI7CSMgYmFja3Vw IGNvcHkgZm9yICRyb3VuZHMKKyAka2V5Xz0iZWJwIjsJIyBiYWNrdXAgY29weSBmb3IgJGtleQor IAorLSRpbm91dDA9InhtbTAiOworLSRpbm91dDE9InhtbTEiOworLSRpbm91dDI9InhtbTIiOwor LSRybmRrZXkwPSJ4bW0zIjsKKy0kcm5ka2V5MT0ieG1tNCI7CistJGl2ZWM9InhtbTUiOworLSRp bjA9InhtbTYiOworLSRpbjE9InhtbTciOwkkaW5vdXQzPSJ4bW03IjsKKy0KKyskcm5ka2V5MD0i eG1tMCI7CisrJHJuZGtleTE9InhtbTEiOworKyRpbm91dDA9InhtbTIiOworKyRpbm91dDE9Inht bTMiOworKyRpbm91dDI9InhtbTQiOworKyRpbm91dDM9InhtbTUiOwkkaW4xPSJ4bW01IjsKKysk aW5vdXQ0PSJ4bW02IjsJJGluMD0ieG1tNiI7CisrJGlub3V0NT0ieG1tNyI7CSRpdmVjPSJ4bW03 IjsKKysKKysjIEFFU05JIGV4dGVuc3Rpb24KKytzdWIgYWVza2V5Z2VuYXNzaXN0CisreyBteSgk ZHN0LCRzcmMsJGltbSk9QF87CisrICAgIGlmICgiJGRzdDokc3JjIiA9fiAveG1tKFswLTddKTp4 bW0oWzAtN10pLykKKysgICAgewkmZGF0YV9ieXRlKDB4NjYsMHgwZiwweDNhLDB4ZGYsMHhjMHwo JDE8PDMpfCQyLCRpbW0pOwl9CisrfQorK3N1YiBhZXNjb21tb24KKyt7IG15KCRvcGNvZGVsZXQs JGRzdCwkc3JjKT1AXzsKKysgICAgaWYgKCIkZHN0OiRzcmMiID1+IC94bW0oWzAtN10pOnhtbShb MC03XSkvKQorKyAgICB7CSZkYXRhX2J5dGUoMHg2NiwweDBmLDB4MzgsJG9wY29kZWxldCwweGMw fCgkMTw8Myl8JDIpO30KKyt9Cisrc3ViIGFlc2ltYwl7IGFlc2NvbW1vbigweGRiLEBfKTsgfQor K3N1YiBhZXNlbmMJeyBhZXNjb21tb24oMHhkYyxAXyk7IH0KKytzdWIgYWVzZW5jbGFzdAl7IGFl c2NvbW1vbigweGRkLEBfKTsgfQorK3N1YiBhZXNkZWMJeyBhZXNjb21tb24oMHhkZSxAXyk7IH0K KytzdWIgYWVzZGVjbGFzdAl7IGFlc2NvbW1vbigweGRmLEBfKTsgfQorKwwKKyAjIElubGluZSB2 ZXJzaW9uIG9mIGludGVybmFsIGFlc25pX1tlbnxkZV1jcnlwdDEKKyt7IG15ICRzbjsKKyBzdWIg YWVzbmlfaW5saW5lX2dlbmVyYXRlMQorLXsgbXkgJHA9c2hpZnQ7CisreyBteSAoJHAsJGlub3V0 LCRpdmVjKT1AXzsgJGlub3V0PSRpbm91dDAgaWYgKCFkZWZpbmVkKCRpbm91dCkpOworKyAgJHNu Kys7CisgCisgICAgICYkbW92ZWtleQkJKCRybmRrZXkwLCZRV1AoMCwka2V5KSk7CisgICAgICYk bW92ZWtleQkJKCRybmRrZXkxLCZRV1AoMTYsJGtleSkpOworKyAgICAmeG9ycHMJCSgkaXZlYywk cm5ka2V5MCkJaWYgKGRlZmluZWQoJGl2ZWMpKTsKKyAgICAgJmxlYQkJKCRrZXksJkRXUCgzMiwk a2V5KSk7CistICAgICZweG9yCQkoJGlub3V0MCwkcm5ka2V5MCk7CistICAgICZzZXRfbGFiZWwo IiR7cH0xX2xvb3AiKTsKKy0JZXZhbCImYWVzJHtwfQkoJGlub3V0MCwkcm5ka2V5MSkiOworKyAg ICAmeG9ycHMJCSgkaW5vdXQsJGl2ZWMpCQlpZiAoZGVmaW5lZCgkaXZlYykpOworKyAgICAmeG9y cHMJCSgkaW5vdXQsJHJuZGtleTApCWlmICghZGVmaW5lZCgkaXZlYykpOworKyAgICAmc2V0X2xh YmVsKCIke3B9MV9sb29wXyRzbiIpOworKwlldmFsIiZhZXMke3B9CSgkaW5vdXQsJHJuZGtleTEp IjsKKyAJJmRlYwkJKCRyb3VuZHMpOworIAkmJG1vdmVrZXkJKCRybmRrZXkxLCZRV1AoMCwka2V5 KSk7CisgCSZsZWEJCSgka2V5LCZEV1AoMTYsJGtleSkpOworLSAgICAmam56CQkoJmxhYmVsKCIk e3B9MV9sb29wIikpOworLSAgICBldmFsIiZhZXMke3B9bGFzdAkoJGlub3V0MCwkcm5ka2V5MSki OworLX0KKysgICAgJmpuegkJKCZsYWJlbCgiJHtwfTFfbG9vcF8kc24iKSk7CisrICAgIGV2YWwi JmFlcyR7cH1sYXN0CSgkaW5vdXQsJHJuZGtleTEpIjsKKyt9fQorIAorIHN1YiBhZXNuaV9nZW5l cmF0ZTEJIyBmdWxseSB1bnJvbGxlZCBsb29wCisteyBteSAkcD1zaGlmdDsKKyt7IG15ICgkcCwk aW5vdXQpPUBfOyAkaW5vdXQ9JGlub3V0MCBpZiAoIWRlZmluZWQoJGlub3V0KSk7CisgCisgICAg ICZmdW5jdGlvbl9iZWdpbl9CKCJfYWVzbmlfJHtwfXJ5cHQxIik7CistCSYkbW92ZWtleQkoJHJu ZGtleTAsJlFXUCgwLCRrZXkpKTsKKysJJm1vdnVwcwkJKCRybmRrZXkwLCZRV1AoMCwka2V5KSk7 CisgCSYkbW92ZWtleQkoJHJuZGtleTEsJlFXUCgweDEwLCRrZXkpKTsKKy0JJmNtcAkJKCRyb3Vu ZHMsMTEpOworLQkmcHhvcgkJKCRpbm91dDAsJHJuZGtleTApOworKwkmeG9ycHMJCSgkaW5vdXQs JHJuZGtleTApOworIAkmJG1vdmVrZXkJKCRybmRrZXkwLCZRV1AoMHgyMCwka2V5KSk7CisgCSZs ZWEJCSgka2V5LCZEV1AoMHgzMCwka2V5KSk7CisrCSZjbXAJCSgkcm91bmRzLDExKTsKKyAJJmpi CQkoJmxhYmVsKCIke3B9MTI4IikpOworIAkmbGVhCQkoJGtleSwmRFdQKDB4MjAsJGtleSkpOwor IAkmamUJCSgmbGFiZWwoIiR7cH0xOTIiKSk7CisgCSZsZWEJCSgka2V5LCZEV1AoMHgyMCwka2V5 KSk7CistCWV2YWwiJmFlcyR7cH0JKCRpbm91dDAsJHJuZGtleTEpIjsKKysJZXZhbCImYWVzJHtw fQkoJGlub3V0LCRybmRrZXkxKSI7CisgCSYkbW92ZWtleQkoJHJuZGtleTEsJlFXUCgtMHg0MCwk a2V5KSk7CistCWV2YWwiJmFlcyR7cH0JKCRpbm91dDAsJHJuZGtleTApIjsKKysJZXZhbCImYWVz JHtwfQkoJGlub3V0LCRybmRrZXkwKSI7CisgCSYkbW92ZWtleQkoJHJuZGtleTAsJlFXUCgtMHgz MCwka2V5KSk7CisgICAgICZzZXRfbGFiZWwoIiR7cH0xOTIiKTsKKy0JZXZhbCImYWVzJHtwfQko JGlub3V0MCwkcm5ka2V5MSkiOworKwlldmFsIiZhZXMke3B9CSgkaW5vdXQsJHJuZGtleTEpIjsK KyAJJiRtb3Zla2V5CSgkcm5ka2V5MSwmUVdQKC0weDIwLCRrZXkpKTsKKy0JZXZhbCImYWVzJHtw fQkoJGlub3V0MCwkcm5ka2V5MCkiOworKwlldmFsIiZhZXMke3B9CSgkaW5vdXQsJHJuZGtleTAp IjsKKyAJJiRtb3Zla2V5CSgkcm5ka2V5MCwmUVdQKC0weDEwLCRrZXkpKTsKKyAgICAgJnNldF9s YWJlbCgiJHtwfTEyOCIpOworLQlldmFsIiZhZXMke3B9CSgkaW5vdXQwLCRybmRrZXkxKSI7Cisr CWV2YWwiJmFlcyR7cH0JKCRpbm91dCwkcm5ka2V5MSkiOworIAkmJG1vdmVrZXkJKCRybmRrZXkx LCZRV1AoMCwka2V5KSk7CistCWV2YWwiJmFlcyR7cH0JKCRpbm91dDAsJHJuZGtleTApIjsKKysJ ZXZhbCImYWVzJHtwfQkoJGlub3V0LCRybmRrZXkwKSI7CisgCSYkbW92ZWtleQkoJHJuZGtleTAs JlFXUCgweDEwLCRrZXkpKTsKKy0JZXZhbCImYWVzJHtwfQkoJGlub3V0MCwkcm5ka2V5MSkiOwor KwlldmFsIiZhZXMke3B9CSgkaW5vdXQsJHJuZGtleTEpIjsKKyAJJiRtb3Zla2V5CSgkcm5ka2V5 MSwmUVdQKDB4MjAsJGtleSkpOworLQlldmFsIiZhZXMke3B9CSgkaW5vdXQwLCRybmRrZXkwKSI7 CisrCWV2YWwiJmFlcyR7cH0JKCRpbm91dCwkcm5ka2V5MCkiOworIAkmJG1vdmVrZXkJKCRybmRr ZXkwLCZRV1AoMHgzMCwka2V5KSk7CistCWV2YWwiJmFlcyR7cH0JKCRpbm91dDAsJHJuZGtleTEp IjsKKysJZXZhbCImYWVzJHtwfQkoJGlub3V0LCRybmRrZXkxKSI7CisgCSYkbW92ZWtleQkoJHJu ZGtleTEsJlFXUCgweDQwLCRrZXkpKTsKKy0JZXZhbCImYWVzJHtwfQkoJGlub3V0MCwkcm5ka2V5 MCkiOworKwlldmFsIiZhZXMke3B9CSgkaW5vdXQsJHJuZGtleTApIjsKKyAJJiRtb3Zla2V5CSgk cm5ka2V5MCwmUVdQKDB4NTAsJGtleSkpOworLQlldmFsIiZhZXMke3B9CSgkaW5vdXQwLCRybmRr ZXkxKSI7CisrCWV2YWwiJmFlcyR7cH0JKCRpbm91dCwkcm5ka2V5MSkiOworIAkmJG1vdmVrZXkJ KCRybmRrZXkxLCZRV1AoMHg2MCwka2V5KSk7CistCWV2YWwiJmFlcyR7cH0JKCRpbm91dDAsJHJu ZGtleTApIjsKKysJZXZhbCImYWVzJHtwfQkoJGlub3V0LCRybmRrZXkwKSI7CisgCSYkbW92ZWtl eQkoJHJuZGtleTAsJlFXUCgweDcwLCRrZXkpKTsKKy0JZXZhbCImYWVzJHtwfQkoJGlub3V0MCwk cm5ka2V5MSkiOworLSAgICBldmFsIiZhZXMke3B9bGFzdAkoJGlub3V0MCwkcm5ka2V5MCkiOwor KwlldmFsIiZhZXMke3B9CSgkaW5vdXQsJHJuZGtleTEpIjsKKysgICAgZXZhbCImYWVzJHtwfWxh c3QJKCRpbm91dCwkcm5ka2V5MCkiOworICAgICAmcmV0KCk7CisgICAgICZmdW5jdGlvbl9lbmRf QigiX2Flc25pXyR7cH1yeXB0MSIpOworIH0KKy0KKysMCisgIyB2b2lkICRQUkVGSVhfZW5jcnlw dCAoY29uc3Qgdm9pZCAqaW5wLHZvaWQgKm91dCxjb25zdCBBRVNfS0VZICprZXkpOworLSMgJmFl c25pX2dlbmVyYXRlMSgiZGVjIik7CisrJmFlc25pX2dlbmVyYXRlMSgiZW5jIikgaWYgKCEkaW5s aW5lKTsKKyAmZnVuY3Rpb25fYmVnaW5fQigiJHtQUkVGSVh9X2VuY3J5cHQiKTsKKyAJJm1vdgko ImVheCIsJndwYXJhbSgwKSk7CisgCSZtb3YJKCRrZXksJndwYXJhbSgyKSk7CisgCSZtb3Z1cHMJ KCRpbm91dDAsJlFXUCgwLCJlYXgiKSk7CisgCSZtb3YJKCRyb3VuZHMsJkRXUCgyNDAsJGtleSkp OworIAkmbW92CSgiZWF4Iiwmd3BhcmFtKDEpKTsKKy0JJmFlc25pX2lubGluZV9nZW5lcmF0ZTEo ImVuYyIpOwkjICZjYWxsCSgiX2Flc25pX2VuY3J5cHQxIik7CisrCWlmICgkaW5saW5lKQorKwl7 ICAgJmFlc25pX2lubGluZV9nZW5lcmF0ZTEoImVuYyIpOwl9CisrCWVsc2UKKysJeyAgICZjYWxs CSgiX2Flc25pX2VuY3J5cHQxIik7CX0KKyAJJm1vdnVwcwkoJlFXUCgwLCJlYXgiKSwkaW5vdXQw KTsKKyAJJnJldAkoKTsKKyAmZnVuY3Rpb25fZW5kX0IoIiR7UFJFRklYfV9lbmNyeXB0Iik7Cisg CisgIyB2b2lkICRQUkVGSVhfZGVjcnlwdCAoY29uc3Qgdm9pZCAqaW5wLHZvaWQgKm91dCxjb25z dCBBRVNfS0VZICprZXkpOworLSMgJmFlc25pX2dlbmVyYXRlMSgiZGVjIik7CisrJmFlc25pX2dl bmVyYXRlMSgiZGVjIikgaWYoISRpbmxpbmUpOworICZmdW5jdGlvbl9iZWdpbl9CKCIke1BSRUZJ WH1fZGVjcnlwdCIpOworIAkmbW92CSgiZWF4Iiwmd3BhcmFtKDApKTsKKyAJJm1vdgkoJGtleSwm d3BhcmFtKDIpKTsKKyAJJm1vdnVwcwkoJGlub3V0MCwmUVdQKDAsImVheCIpKTsKKyAJJm1vdgko JHJvdW5kcywmRFdQKDI0MCwka2V5KSk7CisgCSZtb3YJKCJlYXgiLCZ3cGFyYW0oMSkpOworLQkm YWVzbmlfaW5saW5lX2dlbmVyYXRlMSgiZGVjIik7CSMgJmNhbGwJKCJfYWVzbmlfZGVjcnlwdDEi KTsKKysJaWYgKCRpbmxpbmUpCisrCXsgICAmYWVzbmlfaW5saW5lX2dlbmVyYXRlMSgiZGVjIik7 CX0KKysJZWxzZQorKwl7ICAgJmNhbGwJKCJfYWVzbmlfZGVjcnlwdDEiKTsJfQorIAkmbW92dXBz CSgmUVdQKDAsImVheCIpLCRpbm91dDApOworIAkmcmV0CSgpOworICZmdW5jdGlvbl9lbmRfQigi JHtQUkVGSVh9X2RlY3J5cHQiKTsKKy0MCistIyBfYWVzbmlfW2VufGRlXWNyeXB0WzM0XSBhcmUg cHJpdmF0ZSBpbnRlcmZhY2VzLCBOIGRlbm90ZXMgaW50ZXJsZWF2ZQorLSMgZmFjdG9yLiBXaHkg M3ggc3Vicm91dGluZSBpcyB1c2VkIGluIGxvb3BzPyBFdmVuIHRob3VnaCBhZXNbZW5jfGRlY10K Ky0jIGxhdGVuY3kgaXMgNiwgaXQgdHVybmVkIG91dCB0aGF0IGl0IGNhbiBiZSBzY2hlZHVsZWQg b25seSBldmVyeQorLSMgKnNlY29uZCogY3ljbGUuIFRodXMgM3ggaW50ZXJsZWF2ZSBpcyB0aGUg b25lIHByb3ZpZGluZyBvcHRpbWFsCisrCisrIyBfYWVzbmlfW2VufGRlXWNyeXB0TiBhcmUgcHJp dmF0ZSBpbnRlcmZhY2VzLCBOIGRlbm90ZXMgaW50ZXJsZWF2ZQorKyMgZmFjdG9yLiBXaHkgM3gg c3Vicm91dGluZSB3ZXJlIG9yaWdpbmFsbHkgdXNlZCBpbiBsb29wcz8gRXZlbiB0aG91Z2gKKysj IGFlc1tlbmN8ZGVjXSBsYXRlbmN5IHdhcyBvcmlnaW5hbGx5IDYsIGl0IGNvdWxkIGJlIHNjaGVk dWxlZCBvbmx5CisrIyBldmVyeSAqMm5kKiBjeWNsZS4gVGh1cyAzeCBpbnRlcmxlYXZlIHdhcyB0 aGUgb25lIHByb3ZpZGluZyBvcHRpbWFsCisgIyB1dGlsaXphdGlvbiwgaS5lLiB3aGVuIHN1YnJv dXRpbmUncyB0aHJvdWdocHV0IGlzIHZpcnR1YWxseSBzYW1lIGFzCisgIyBvZiBub24taW50ZXJs ZWF2ZWQgc3Vicm91dGluZSBbZm9yIG51bWJlciBvZiBpbnB1dCBibG9ja3MgdXAgdG8gM10uCist IyBUaGlzIGlzIHdoeSBpdCBtYWtlcyBubyBzZW5zZSB0byBpbXBsZW1lbnQgMnggc3Vicm91dGlu ZS4gQXMgc29vbgorLSMgYXMvaWYgSW50ZWwgaW1wcm92ZXMgdGhyb3VnaHB1dCBieSBtYWtpbmcg aXQgcG9zc2libGUgdG8gc2NoZWR1bGUKKy0jIHRoZSBpbnN0cnVjdGlvbnMgaW4gcXVlc3Rpb24g KmV2ZXJ5KiBjeWNsZXMgSSB3b3VsZCBoYXZlIHRvCistIyBpbXBsZW1lbnQgNnggaW50ZXJsZWF2 ZSBhbmQgdXNlIGl0IGluIGxvb3AuLi4KKysjIFRoaXMgaXMgd2h5IGl0IG1ha2VzIG5vIHNlbnNl IHRvIGltcGxlbWVudCAyeCBzdWJyb3V0aW5lLgorKyMgYWVzW2VuY3xkZWNdIGxhdGVuY3kgaW4g bmV4dCBwcm9jZXNzb3IgZ2VuZXJhdGlvbiBpcyA4LCBidXQgdGhlCisrIyBpbnN0cnVjdGlvbnMg Y2FuIGJlIHNjaGVkdWxlZCBldmVyeSBjeWNsZS4gT3B0aW1hbCBpbnRlcmxlYXZlIGZvcgorKyMg bmV3IHByb2Nlc3NvciBpcyB0aGVyZWZvcmUgOHgsIGJ1dCBpdCdzIHVuZmVhc2libGUgdG8gYWNj b21tb2RhdGUgaXQKKysjIGluIFhNTSByZWdpc3RlcnMgYWRkcmVhc3NhYmxlIGluIDMyLWJpdCBt b2RlIGFuZCB0aGVyZWZvcmUgNnggaXMKKysjIHVzZWQgaW5zdGVhZC4uLgorKworIHN1YiBhZXNu aV9nZW5lcmF0ZTMKKyB7IG15ICRwPXNoaWZ0OworIAorQEAgLTE0OCwyNCArMjA2LDI0IEBAIHN1 YiBhZXNuaV9nZW5lcmF0ZTMKKyAJJnNocgkJKCRyb3VuZHMsMSk7CisgCSYkbW92ZWtleQkoJHJu ZGtleTEsJlFXUCgxNiwka2V5KSk7CisgCSZsZWEJCSgka2V5LCZEV1AoMzIsJGtleSkpOworLQkm cHhvcgkJKCRpbm91dDAsJHJuZGtleTApOworKwkmeG9ycHMJCSgkaW5vdXQwLCRybmRrZXkwKTsK KyAJJnB4b3IJCSgkaW5vdXQxLCRybmRrZXkwKTsKKyAJJnB4b3IJCSgkaW5vdXQyLCRybmRrZXkw KTsKKy0JJmptcAkJKCZsYWJlbCgiJHtwfTNfbG9vcCIpKTsKKy0gICAgJnNldF9sYWJlbCgiJHtw fTNfbG9vcCIsMTYpOworLQlldmFsIiZhZXMke3B9CSgkaW5vdXQwLCRybmRrZXkxKSI7CisgCSYk bW92ZWtleQkoJHJuZGtleTAsJlFXUCgwLCRrZXkpKTsKKysKKysgICAgJnNldF9sYWJlbCgiJHtw fTNfbG9vcCIpOworKwlldmFsIiZhZXMke3B9CSgkaW5vdXQwLCRybmRrZXkxKSI7CisgCWV2YWwi JmFlcyR7cH0JKCRpbm91dDEsJHJuZGtleTEpIjsKKyAJJmRlYwkJKCRyb3VuZHMpOworIAlldmFs IiZhZXMke3B9CSgkaW5vdXQyLCRybmRrZXkxKSI7CisgCSYkbW92ZWtleQkoJHJuZGtleTEsJlFX UCgxNiwka2V5KSk7CisgCWV2YWwiJmFlcyR7cH0JKCRpbm91dDAsJHJuZGtleTApIjsKKy0JJmxl YQkJKCRrZXksJkRXUCgzMiwka2V5KSk7CisgCWV2YWwiJmFlcyR7cH0JKCRpbm91dDEsJHJuZGtl eTApIjsKKysJJmxlYQkJKCRrZXksJkRXUCgzMiwka2V5KSk7CisgCWV2YWwiJmFlcyR7cH0JKCRp bm91dDIsJHJuZGtleTApIjsKKysJJiRtb3Zla2V5CSgkcm5ka2V5MCwmUVdQKDAsJGtleSkpOwor IAkmam56CQkoJmxhYmVsKCIke3B9M19sb29wIikpOworICAgICBldmFsIiZhZXMke3B9CSgkaW5v dXQwLCRybmRrZXkxKSI7CistICAgICYkbW92ZWtleQkJKCRybmRrZXkwLCZRV1AoMCwka2V5KSk7 CisgICAgIGV2YWwiJmFlcyR7cH0JKCRpbm91dDEsJHJuZGtleTEpIjsKKyAgICAgZXZhbCImYWVz JHtwfQkoJGlub3V0Miwkcm5ka2V5MSkiOworICAgICBldmFsIiZhZXMke3B9bGFzdAkoJGlub3V0 MCwkcm5ka2V5MCkiOworQEAgLTE4NywyNyArMjQ1LDI4IEBAIHN1YiBhZXNuaV9nZW5lcmF0ZTQK KyAJJiRtb3Zla2V5CSgkcm5ka2V5MSwmUVdQKDE2LCRrZXkpKTsKKyAJJnNocgkJKCRyb3VuZHMs MSk7CisgCSZsZWEJCSgka2V5LCZEV1AoMzIsJGtleSkpOworLQkmcHhvcgkJKCRpbm91dDAsJHJu ZGtleTApOworKwkmeG9ycHMJCSgkaW5vdXQwLCRybmRrZXkwKTsKKyAJJnB4b3IJCSgkaW5vdXQx LCRybmRrZXkwKTsKKyAJJnB4b3IJCSgkaW5vdXQyLCRybmRrZXkwKTsKKyAJJnB4b3IJCSgkaW5v dXQzLCRybmRrZXkwKTsKKy0JJmptcAkJKCZsYWJlbCgiJHtwfTNfbG9vcCIpKTsKKy0gICAgJnNl dF9sYWJlbCgiJHtwfTNfbG9vcCIsMTYpOworLQlldmFsIiZhZXMke3B9CSgkaW5vdXQwLCRybmRr ZXkxKSI7CisgCSYkbW92ZWtleQkoJHJuZGtleTAsJlFXUCgwLCRrZXkpKTsKKysKKysgICAgJnNl dF9sYWJlbCgiJHtwfTRfbG9vcCIpOworKwlldmFsIiZhZXMke3B9CSgkaW5vdXQwLCRybmRrZXkx KSI7CisgCWV2YWwiJmFlcyR7cH0JKCRpbm91dDEsJHJuZGtleTEpIjsKKyAJJmRlYwkJKCRyb3Vu ZHMpOworIAlldmFsIiZhZXMke3B9CSgkaW5vdXQyLCRybmRrZXkxKSI7CisgCWV2YWwiJmFlcyR7 cH0JKCRpbm91dDMsJHJuZGtleTEpIjsKKyAJJiRtb3Zla2V5CSgkcm5ka2V5MSwmUVdQKDE2LCRr ZXkpKTsKKyAJZXZhbCImYWVzJHtwfQkoJGlub3V0MCwkcm5ka2V5MCkiOworLQkmbGVhCQkoJGtl eSwmRFdQKDMyLCRrZXkpKTsKKyAJZXZhbCImYWVzJHtwfQkoJGlub3V0MSwkcm5ka2V5MCkiOwor KwkmbGVhCQkoJGtleSwmRFdQKDMyLCRrZXkpKTsKKyAJZXZhbCImYWVzJHtwfQkoJGlub3V0Miwk cm5ka2V5MCkiOworIAlldmFsIiZhZXMke3B9CSgkaW5vdXQzLCRybmRrZXkwKSI7CistCSZqbnoJ CSgmbGFiZWwoIiR7cH0zX2xvb3AiKSk7CisrCSYkbW92ZWtleQkoJHJuZGtleTAsJlFXUCgwLCRr ZXkpKTsKKysgICAgJmpuegkJKCZsYWJlbCgiJHtwfTRfbG9vcCIpKTsKKysKKyAgICAgZXZhbCIm YWVzJHtwfQkoJGlub3V0MCwkcm5ka2V5MSkiOworLSAgICAmJG1vdmVrZXkJCSgkcm5ka2V5MCwm UVdQKDAsJGtleSkpOworICAgICBldmFsIiZhZXMke3B9CSgkaW5vdXQxLCRybmRrZXkxKSI7Cisg ICAgIGV2YWwiJmFlcyR7cH0JKCRpbm91dDIsJHJuZGtleTEpIjsKKyAgICAgZXZhbCImYWVzJHtw fQkoJGlub3V0Mywkcm5ka2V5MSkiOworQEAgLTIxOCwxMiArMjc3LDc2IEBAIHN1YiBhZXNuaV9n ZW5lcmF0ZTQKKyAgICAgJnJldCgpOworICAgICAmZnVuY3Rpb25fZW5kX0IoIl9hZXNuaV8ke3B9 cnlwdDQiKTsKKyB9CisrCisrc3ViIGFlc25pX2dlbmVyYXRlNgorK3sgbXkgJHA9c2hpZnQ7Cisr CisrICAgICZmdW5jdGlvbl9iZWdpbl9CKCJfYWVzbmlfJHtwfXJ5cHQ2Iik7CisrICAgICZzdGF0 aWNfbGFiZWwoIl9hZXNuaV8ke3B9cnlwdDZfZW50ZXIiKTsKKysJJiRtb3Zla2V5CSgkcm5ka2V5 MCwmUVdQKDAsJGtleSkpOworKwkmc2hyCQkoJHJvdW5kcywxKTsKKysJJiRtb3Zla2V5CSgkcm5k a2V5MSwmUVdQKDE2LCRrZXkpKTsKKysJJmxlYQkJKCRrZXksJkRXUCgzMiwka2V5KSk7CisrCSZ4 b3JwcwkJKCRpbm91dDAsJHJuZGtleTApOworKwkmcHhvcgkJKCRpbm91dDEsJHJuZGtleTApOwkj IHB4b3IgZG9lcyBiZXR0ZXIgaGVyZQorKwlldmFsIiZhZXMke3B9CSgkaW5vdXQwLCRybmRrZXkx KSI7CisrCSZweG9yCQkoJGlub3V0Miwkcm5ka2V5MCk7CisrCWV2YWwiJmFlcyR7cH0JKCRpbm91 dDEsJHJuZGtleTEpIjsKKysJJnB4b3IJCSgkaW5vdXQzLCRybmRrZXkwKTsKKysJJmRlYwkJKCRy b3VuZHMpOworKwlldmFsIiZhZXMke3B9CSgkaW5vdXQyLCRybmRrZXkxKSI7CisrCSZweG9yCQko JGlub3V0NCwkcm5ka2V5MCk7CisrCWV2YWwiJmFlcyR7cH0JKCRpbm91dDMsJHJuZGtleTEpIjsK KysJJnB4b3IJCSgkaW5vdXQ1LCRybmRrZXkwKTsKKysJZXZhbCImYWVzJHtwfQkoJGlub3V0NCwk cm5ka2V5MSkiOworKwkmJG1vdmVrZXkJKCRybmRrZXkwLCZRV1AoMCwka2V5KSk7CisrCWV2YWwi JmFlcyR7cH0JKCRpbm91dDUsJHJuZGtleTEpIjsKKysJJmptcAkJKCZsYWJlbCgiX2Flc25pXyR7 cH1yeXB0Nl9lbnRlciIpKTsKKysKKysgICAgJnNldF9sYWJlbCgiJHtwfTZfbG9vcCIsMTYpOwor KwlldmFsIiZhZXMke3B9CSgkaW5vdXQwLCRybmRrZXkxKSI7CisrCWV2YWwiJmFlcyR7cH0JKCRp bm91dDEsJHJuZGtleTEpIjsKKysJJmRlYwkJKCRyb3VuZHMpOworKwlldmFsIiZhZXMke3B9CSgk aW5vdXQyLCRybmRrZXkxKSI7CisrCWV2YWwiJmFlcyR7cH0JKCRpbm91dDMsJHJuZGtleTEpIjsK KysJZXZhbCImYWVzJHtwfQkoJGlub3V0NCwkcm5ka2V5MSkiOworKwlldmFsIiZhZXMke3B9CSgk aW5vdXQ1LCRybmRrZXkxKSI7CisrICAgICZzZXRfbGFiZWwoIl9hZXNuaV8ke3B9cnlwdDZfZW50 ZXIiLDE2KTsKKysJJiRtb3Zla2V5CSgkcm5ka2V5MSwmUVdQKDE2LCRrZXkpKTsKKysJZXZhbCIm YWVzJHtwfQkoJGlub3V0MCwkcm5ka2V5MCkiOworKwlldmFsIiZhZXMke3B9CSgkaW5vdXQxLCRy bmRrZXkwKSI7CisrCSZsZWEJCSgka2V5LCZEV1AoMzIsJGtleSkpOworKwlldmFsIiZhZXMke3B9 CSgkaW5vdXQyLCRybmRrZXkwKSI7CisrCWV2YWwiJmFlcyR7cH0JKCRpbm91dDMsJHJuZGtleTAp IjsKKysJZXZhbCImYWVzJHtwfQkoJGlub3V0NCwkcm5ka2V5MCkiOworKwlldmFsIiZhZXMke3B9 CSgkaW5vdXQ1LCRybmRrZXkwKSI7CisrCSYkbW92ZWtleQkoJHJuZGtleTAsJlFXUCgwLCRrZXkp KTsKKysgICAgJmpuegkJKCZsYWJlbCgiJHtwfTZfbG9vcCIpKTsKKysKKysgICAgZXZhbCImYWVz JHtwfQkoJGlub3V0MCwkcm5ka2V5MSkiOworKyAgICBldmFsIiZhZXMke3B9CSgkaW5vdXQxLCRy bmRrZXkxKSI7CisrICAgIGV2YWwiJmFlcyR7cH0JKCRpbm91dDIsJHJuZGtleTEpIjsKKysgICAg ZXZhbCImYWVzJHtwfQkoJGlub3V0Mywkcm5ka2V5MSkiOworKyAgICBldmFsIiZhZXMke3B9CSgk aW5vdXQ0LCRybmRrZXkxKSI7CisrICAgIGV2YWwiJmFlcyR7cH0JKCRpbm91dDUsJHJuZGtleTEp IjsKKysgICAgZXZhbCImYWVzJHtwfWxhc3QJKCRpbm91dDAsJHJuZGtleTApIjsKKysgICAgZXZh bCImYWVzJHtwfWxhc3QJKCRpbm91dDEsJHJuZGtleTApIjsKKysgICAgZXZhbCImYWVzJHtwfWxh c3QJKCRpbm91dDIsJHJuZGtleTApIjsKKysgICAgZXZhbCImYWVzJHtwfWxhc3QJKCRpbm91dDMs JHJuZGtleTApIjsKKysgICAgZXZhbCImYWVzJHtwfWxhc3QJKCRpbm91dDQsJHJuZGtleTApIjsK KysgICAgZXZhbCImYWVzJHtwfWxhc3QJKCRpbm91dDUsJHJuZGtleTApIjsKKysgICAgJnJldCgp OworKyAgICAmZnVuY3Rpb25fZW5kX0IoIl9hZXNuaV8ke3B9cnlwdDYiKTsKKyt9CisgJmFlc25p X2dlbmVyYXRlMygiZW5jIikgaWYgKCRQUkVGSVggZXEgImFlc25pIik7CisgJmFlc25pX2dlbmVy YXRlMygiZGVjIik7CisgJmFlc25pX2dlbmVyYXRlNCgiZW5jIikgaWYgKCRQUkVGSVggZXEgImFl c25pIik7CisgJmFlc25pX2dlbmVyYXRlNCgiZGVjIik7CistCisrJmFlc25pX2dlbmVyYXRlNigi ZW5jIikgaWYgKCRQUkVGSVggZXEgImFlc25pIik7CisrJmFlc25pX2dlbmVyYXRlNigiZGVjIik7 CisrDAorIGlmICgkUFJFRklYIGVxICJhZXNuaSIpIHsKKysjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgIyB2b2lk IGFlc25pX2VjYl9lbmNyeXB0IChjb25zdCB2b2lkICppbiwgdm9pZCAqb3V0LAorICMgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwgY29uc3QgQUVTX0tFWSAqa2V5LAorICMg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuYyk7CitAQCAtMjMyLDYyICszNTUsOTMgQEAg aWYgKCRQUkVGSVggZXEgImFlc25pIikgeworIAkmbW92CSgkb3V0LCZ3cGFyYW0oMSkpOworIAkm bW92CSgkbGVuLCZ3cGFyYW0oMikpOworIAkmbW92CSgka2V5LCZ3cGFyYW0oMykpOworLQkmbW92 CSgkcm91bmRzLCZ3cGFyYW0oNCkpOworLQkmY21wCSgkbGVuLDE2KTsKKy0JJmpiCSgmbGFiZWwo ImVjYl9yZXQiKSk7CisrCSZtb3YJKCRyb3VuZHNfLCZ3cGFyYW0oNCkpOworIAkmYW5kCSgkbGVu LC0xNik7CistCSZ0ZXN0CSgkcm91bmRzLCRyb3VuZHMpCisrCSZqegkoJmxhYmVsKCJlY2JfcmV0 IikpOworIAkmbW92CSgkcm91bmRzLCZEV1AoMjQwLCRrZXkpKTsKKysJJnRlc3QJKCRyb3VuZHNf LCRyb3VuZHNfKTsKKysJJmp6CSgmbGFiZWwoImVjYl9kZWNyeXB0IikpOworKworIAkmbW92CSgk a2V5Xywka2V5KTsJCSMgYmFja3VwICRrZXkKKyAJJm1vdgkoJHJvdW5kc18sJHJvdW5kcyk7CSMg YmFja3VwICRyb3VuZHMKKy0JJmp6CSgmbGFiZWwoImVjYl9kZWNyeXB0IikpOworKwkmY21wCSgk bGVuLDB4NjApOworKwkmamIJKCZsYWJlbCgiZWNiX2VuY190YWlsIikpOworIAorLQkmc3ViCSgk bGVuLDB4NDApOworLQkmamJlCSgmbGFiZWwoImVjYl9lbmNfdGFpbCIpKTsKKy0JJmptcAkoJmxh YmVsKCJlY2JfZW5jX2xvb3AzIikpOworKwkmbW92ZHF1CSgkaW5vdXQwLCZRV1AoMCwkaW5wKSk7 CisrCSZtb3ZkcXUJKCRpbm91dDEsJlFXUCgweDEwLCRpbnApKTsKKysJJm1vdmRxdQkoJGlub3V0 MiwmUVdQKDB4MjAsJGlucCkpOworKwkmbW92ZHF1CSgkaW5vdXQzLCZRV1AoMHgzMCwkaW5wKSk7 CisrCSZtb3ZkcXUJKCRpbm91dDQsJlFXUCgweDQwLCRpbnApKTsKKysJJm1vdmRxdQkoJGlub3V0 NSwmUVdQKDB4NTAsJGlucCkpOworKwkmbGVhCSgkaW5wLCZEV1AoMHg2MCwkaW5wKSk7CisrCSZz dWIJKCRsZW4sMHg2MCk7CisrCSZqbXAJKCZsYWJlbCgiZWNiX2VuY19sb29wNl9lbnRlciIpKTsK KysKKysmc2V0X2xhYmVsKCJlY2JfZW5jX2xvb3A2IiwxNik7CisrCSZtb3Z1cHMJKCZRV1AoMCwk b3V0KSwkaW5vdXQwKTsKKysJJm1vdmRxdQkoJGlub3V0MCwmUVdQKDAsJGlucCkpOworKwkmbW92 dXBzCSgmUVdQKDB4MTAsJG91dCksJGlub3V0MSk7CisrCSZtb3ZkcXUJKCRpbm91dDEsJlFXUCgw eDEwLCRpbnApKTsKKysJJm1vdnVwcwkoJlFXUCgweDIwLCRvdXQpLCRpbm91dDIpOworKwkmbW92 ZHF1CSgkaW5vdXQyLCZRV1AoMHgyMCwkaW5wKSk7CisrCSZtb3Z1cHMJKCZRV1AoMHgzMCwkb3V0 KSwkaW5vdXQzKTsKKysJJm1vdmRxdQkoJGlub3V0MywmUVdQKDB4MzAsJGlucCkpOworKwkmbW92 dXBzCSgmUVdQKDB4NDAsJG91dCksJGlub3V0NCk7CisrCSZtb3ZkcXUJKCRpbm91dDQsJlFXUCgw eDQwLCRpbnApKTsKKysJJm1vdnVwcwkoJlFXUCgweDUwLCRvdXQpLCRpbm91dDUpOworKwkmbGVh CSgkb3V0LCZEV1AoMHg2MCwkb3V0KSk7CisrCSZtb3ZkcXUJKCRpbm91dDUsJlFXUCgweDUwLCRp bnApKTsKKysJJmxlYQkoJGlucCwmRFdQKDB4NjAsJGlucCkpOworKyZzZXRfbGFiZWwoImVjYl9l bmNfbG9vcDZfZW50ZXIiKTsKKysKKysJJmNhbGwJKCJfYWVzbmlfZW5jcnlwdDYiKTsKKyAKKy0m c2V0X2xhYmVsKCJlY2JfZW5jX2xvb3AzIiwxNik7CistCSZtb3Z1cHMJKCRpbm91dDAsJlFXUCgw LCRpbnApKTsKKy0JJm1vdnVwcwkoJGlub3V0MSwmUVdQKDB4MTAsJGlucCkpOworLQkmbW92dXBz CSgkaW5vdXQyLCZRV1AoMHgyMCwkaW5wKSk7CistCSZjYWxsCSgiX2Flc25pX2VuY3J5cHQzIik7 CistCSZzdWIJKCRsZW4sMHgzMCk7CistCSZsZWEJKCRpbnAsJkRXUCgweDMwLCRpbnApKTsKKy0J JmxlYQkoJG91dCwmRFdQKDB4MzAsJG91dCkpOworLQkmbW92dXBzCSgmUVdQKC0weDMwLCRvdXQp LCRpbm91dDApOworIAkmbW92CSgka2V5LCRrZXlfKTsJCSMgcmVzdG9yZSAka2V5CistCSZtb3Z1 cHMJKCZRV1AoLTB4MjAsJG91dCksJGlub3V0MSk7CisgCSZtb3YJKCRyb3VuZHMsJHJvdW5kc18p OwkjIHJlc3RvcmUgJHJvdW5kcworLQkmbW92dXBzCSgmUVdQKC0weDEwLCRvdXQpLCRpbm91dDIp OworLQkmamEJKCZsYWJlbCgiZWNiX2VuY19sb29wMyIpKTsKKysJJnN1YgkoJGxlbiwweDYwKTsK KysJJmpuYwkoJmxhYmVsKCJlY2JfZW5jX2xvb3A2IikpOworIAorLSZzZXRfbGFiZWwoImVjYl9l bmNfdGFpbCIpOworLQkmYWRkCSgkbGVuLDB4NDApOworKwkmbW92dXBzCSgmUVdQKDAsJG91dCks JGlub3V0MCk7CisrCSZtb3Z1cHMJKCZRV1AoMHgxMCwkb3V0KSwkaW5vdXQxKTsKKysJJm1vdnVw cwkoJlFXUCgweDIwLCRvdXQpLCRpbm91dDIpOworKwkmbW92dXBzCSgmUVdQKDB4MzAsJG91dCks JGlub3V0Myk7CisrCSZtb3Z1cHMJKCZRV1AoMHg0MCwkb3V0KSwkaW5vdXQ0KTsKKysJJm1vdnVw cwkoJlFXUCgweDUwLCRvdXQpLCRpbm91dDUpOworKwkmbGVhCSgkb3V0LCZEV1AoMHg2MCwkb3V0 KSk7CisrCSZhZGQJKCRsZW4sMHg2MCk7CisgCSZqegkoJmxhYmVsKCJlY2JfcmV0IikpOworIAor LQkmY21wCSgkbGVuLDB4MTApOworKyZzZXRfbGFiZWwoImVjYl9lbmNfdGFpbCIpOworIAkmbW92 dXBzCSgkaW5vdXQwLCZRV1AoMCwkaW5wKSk7CistCSZqZQkoJmxhYmVsKCJlY2JfZW5jX29uZSIp KTsKKyAJJmNtcAkoJGxlbiwweDIwKTsKKysJJmpiCSgmbGFiZWwoImVjYl9lbmNfb25lIikpOwor IAkmbW92dXBzCSgkaW5vdXQxLCZRV1AoMHgxMCwkaW5wKSk7CisgCSZqZQkoJmxhYmVsKCJlY2Jf ZW5jX3R3byIpKTsKKy0JJmNtcAkoJGxlbiwweDMwKTsKKyAJJm1vdnVwcwkoJGlub3V0MiwmUVdQ KDB4MjAsJGlucCkpOworLQkmamUJKCZsYWJlbCgiZWNiX2VuY190aHJlZSIpKTsKKysJJmNtcAko JGxlbiwweDQwKTsKKysJJmpiCSgmbGFiZWwoImVjYl9lbmNfdGhyZWUiKSk7CisgCSZtb3Z1cHMJ KCRpbm91dDMsJlFXUCgweDMwLCRpbnApKTsKKy0JJmNhbGwJKCJfYWVzbmlfZW5jcnlwdDQiKTsK KysJJmplCSgmbGFiZWwoImVjYl9lbmNfZm91ciIpKTsKKysJJm1vdnVwcwkoJGlub3V0NCwmUVdQ KDB4NDAsJGlucCkpOworKwkmeG9ycHMJKCRpbm91dDUsJGlub3V0NSk7CisrCSZjYWxsCSgiX2Fl c25pX2VuY3J5cHQ2Iik7CisgCSZtb3Z1cHMJKCZRV1AoMCwkb3V0KSwkaW5vdXQwKTsKKyAJJm1v dnVwcwkoJlFXUCgweDEwLCRvdXQpLCRpbm91dDEpOworIAkmbW92dXBzCSgmUVdQKDB4MjAsJG91 dCksJGlub3V0Mik7CisgCSZtb3Z1cHMJKCZRV1AoMHgzMCwkb3V0KSwkaW5vdXQzKTsKKysJJm1v dnVwcwkoJlFXUCgweDQwLCRvdXQpLCRpbm91dDQpOworIAlqbXAJKCZsYWJlbCgiZWNiX3JldCIp KTsKKyAKKyAmc2V0X2xhYmVsKCJlY2JfZW5jX29uZSIsMTYpOworLQkmYWVzbmlfaW5saW5lX2dl bmVyYXRlMSgiZW5jIik7CSMgJmNhbGwJKCJfYWVzbmlfZW5jcnlwdDEiKTsKKysJaWYgKCRpbmxp bmUpCisrCXsgICAmYWVzbmlfaW5saW5lX2dlbmVyYXRlMSgiZW5jIik7CX0KKysJZWxzZQorKwl7 ICAgJmNhbGwJKCJfYWVzbmlfZW5jcnlwdDEiKTsJfQorIAkmbW92dXBzCSgmUVdQKDAsJG91dCks JGlub3V0MCk7CisgCSZqbXAJKCZsYWJlbCgiZWNiX3JldCIpKTsKKyAKKyAmc2V0X2xhYmVsKCJl Y2JfZW5jX3R3byIsMTYpOworKwkmeG9ycHMJKCRpbm91dDIsJGlub3V0Mik7CisgCSZjYWxsCSgi X2Flc25pX2VuY3J5cHQzIik7CisgCSZtb3Z1cHMJKCZRV1AoMCwkb3V0KSwkaW5vdXQwKTsKKyAJ Jm1vdnVwcwkoJlFXUCgweDEwLCRvdXQpLCRpbm91dDEpOworQEAgLTMwMCw1MyArNDU0LDk1IEBA IGlmICgkUFJFRklYIGVxICJhZXNuaSIpIHsKKyAJJm1vdnVwcwkoJlFXUCgweDIwLCRvdXQpLCRp bm91dDIpOworIAkmam1wCSgmbGFiZWwoImVjYl9yZXQiKSk7CisgCisrJnNldF9sYWJlbCgiZWNi X2VuY19mb3VyIiwxNik7CisrCSZjYWxsCSgiX2Flc25pX2VuY3J5cHQ0Iik7CisrCSZtb3Z1cHMJ KCZRV1AoMCwkb3V0KSwkaW5vdXQwKTsKKysJJm1vdnVwcwkoJlFXUCgweDEwLCRvdXQpLCRpbm91 dDEpOworKwkmbW92dXBzCSgmUVdQKDB4MjAsJG91dCksJGlub3V0Mik7CisrCSZtb3Z1cHMJKCZR V1AoMHgzMCwkb3V0KSwkaW5vdXQzKTsKKysJJmptcAkoJmxhYmVsKCJlY2JfcmV0IikpOworKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKyAmc2V0X2xhYmVsKCJlY2JfZGVjcnlwdCIsMTYpOworLQkmc3ViCSgkbGVu LDB4NDApOworLQkmamJlCSgmbGFiZWwoImVjYl9kZWNfdGFpbCIpKTsKKy0JJmptcAkoJmxhYmVs KCJlY2JfZGVjX2xvb3AzIikpOworKwkmbW92CSgka2V5Xywka2V5KTsJCSMgYmFja3VwICRrZXkK KysJJm1vdgkoJHJvdW5kc18sJHJvdW5kcyk7CSMgYmFja3VwICRyb3VuZHMKKysJJmNtcAkoJGxl biwweDYwKTsKKysJJmpiCSgmbGFiZWwoImVjYl9kZWNfdGFpbCIpKTsKKysKKysJJm1vdmRxdQko JGlub3V0MCwmUVdQKDAsJGlucCkpOworKwkmbW92ZHF1CSgkaW5vdXQxLCZRV1AoMHgxMCwkaW5w KSk7CisrCSZtb3ZkcXUJKCRpbm91dDIsJlFXUCgweDIwLCRpbnApKTsKKysJJm1vdmRxdQkoJGlu b3V0MywmUVdQKDB4MzAsJGlucCkpOworKwkmbW92ZHF1CSgkaW5vdXQ0LCZRV1AoMHg0MCwkaW5w KSk7CisrCSZtb3ZkcXUJKCRpbm91dDUsJlFXUCgweDUwLCRpbnApKTsKKysJJmxlYQkoJGlucCwm RFdQKDB4NjAsJGlucCkpOworKwkmc3ViCSgkbGVuLDB4NjApOworKwkmam1wCSgmbGFiZWwoImVj Yl9kZWNfbG9vcDZfZW50ZXIiKSk7CisrCisrJnNldF9sYWJlbCgiZWNiX2RlY19sb29wNiIsMTYp OworKwkmbW92dXBzCSgmUVdQKDAsJG91dCksJGlub3V0MCk7CisrCSZtb3ZkcXUJKCRpbm91dDAs JlFXUCgwLCRpbnApKTsKKysJJm1vdnVwcwkoJlFXUCgweDEwLCRvdXQpLCRpbm91dDEpOworKwkm bW92ZHF1CSgkaW5vdXQxLCZRV1AoMHgxMCwkaW5wKSk7CisrCSZtb3Z1cHMJKCZRV1AoMHgyMCwk b3V0KSwkaW5vdXQyKTsKKysJJm1vdmRxdQkoJGlub3V0MiwmUVdQKDB4MjAsJGlucCkpOworKwkm bW92dXBzCSgmUVdQKDB4MzAsJG91dCksJGlub3V0Myk7CisrCSZtb3ZkcXUJKCRpbm91dDMsJlFX UCgweDMwLCRpbnApKTsKKysJJm1vdnVwcwkoJlFXUCgweDQwLCRvdXQpLCRpbm91dDQpOworKwkm bW92ZHF1CSgkaW5vdXQ0LCZRV1AoMHg0MCwkaW5wKSk7CisrCSZtb3Z1cHMJKCZRV1AoMHg1MCwk b3V0KSwkaW5vdXQ1KTsKKysJJmxlYQkoJG91dCwmRFdQKDB4NjAsJG91dCkpOworKwkmbW92ZHF1 CSgkaW5vdXQ1LCZRV1AoMHg1MCwkaW5wKSk7CisrCSZsZWEJKCRpbnAsJkRXUCgweDYwLCRpbnAp KTsKKysmc2V0X2xhYmVsKCJlY2JfZGVjX2xvb3A2X2VudGVyIik7CisrCisrCSZjYWxsCSgiX2Fl c25pX2RlY3J5cHQ2Iik7CisgCistJnNldF9sYWJlbCgiZWNiX2RlY19sb29wMyIsMTYpOworLQkm bW92dXBzCSgkaW5vdXQwLCZRV1AoMCwkaW5wKSk7CistCSZtb3Z1cHMJKCRpbm91dDEsJlFXUCgw eDEwLCRpbnApKTsKKy0JJm1vdnVwcwkoJGlub3V0MiwmUVdQKDB4MjAsJGlucCkpOworLQkmY2Fs bAkoIl9hZXNuaV9kZWNyeXB0MyIpOworLQkmc3ViCSgkbGVuLDB4MzApOworLQkmbGVhCSgkaW5w LCZEV1AoMHgzMCwkaW5wKSk7CistCSZsZWEJKCRvdXQsJkRXUCgweDMwLCRvdXQpKTsKKy0JJm1v dnVwcwkoJlFXUCgtMHgzMCwkb3V0KSwkaW5vdXQwKTsKKyAJJm1vdgkoJGtleSwka2V5Xyk7CQkj IHJlc3RvcmUgJGtleQorLQkmbW92dXBzCSgmUVdQKC0weDIwLCRvdXQpLCRpbm91dDEpOworIAkm bW92CSgkcm91bmRzLCRyb3VuZHNfKTsJIyByZXN0b3JlICRyb3VuZHMKKy0JJm1vdnVwcwkoJlFX UCgtMHgxMCwkb3V0KSwkaW5vdXQyKTsKKy0JJmphCSgmbGFiZWwoImVjYl9kZWNfbG9vcDMiKSk7 CisrCSZzdWIJKCRsZW4sMHg2MCk7CisrCSZqbmMJKCZsYWJlbCgiZWNiX2RlY19sb29wNiIpKTsK KyAKKy0mc2V0X2xhYmVsKCJlY2JfZGVjX3RhaWwiKTsKKy0JJmFkZAkoJGxlbiwweDQwKTsKKysJ Jm1vdnVwcwkoJlFXUCgwLCRvdXQpLCRpbm91dDApOworKwkmbW92dXBzCSgmUVdQKDB4MTAsJG91 dCksJGlub3V0MSk7CisrCSZtb3Z1cHMJKCZRV1AoMHgyMCwkb3V0KSwkaW5vdXQyKTsKKysJJm1v dnVwcwkoJlFXUCgweDMwLCRvdXQpLCRpbm91dDMpOworKwkmbW92dXBzCSgmUVdQKDB4NDAsJG91 dCksJGlub3V0NCk7CisrCSZtb3Z1cHMJKCZRV1AoMHg1MCwkb3V0KSwkaW5vdXQ1KTsKKysJJmxl YQkoJG91dCwmRFdQKDB4NjAsJG91dCkpOworKwkmYWRkCSgkbGVuLDB4NjApOworIAkmanoJKCZs YWJlbCgiZWNiX3JldCIpKTsKKyAKKy0JJmNtcAkoJGxlbiwweDEwKTsKKysmc2V0X2xhYmVsKCJl Y2JfZGVjX3RhaWwiKTsKKyAJJm1vdnVwcwkoJGlub3V0MCwmUVdQKDAsJGlucCkpOworLQkmamUJ KCZsYWJlbCgiZWNiX2RlY19vbmUiKSk7CisgCSZjbXAJKCRsZW4sMHgyMCk7CisrCSZqYgkoJmxh YmVsKCJlY2JfZGVjX29uZSIpKTsKKyAJJm1vdnVwcwkoJGlub3V0MSwmUVdQKDB4MTAsJGlucCkp OworIAkmamUJKCZsYWJlbCgiZWNiX2RlY190d28iKSk7CistCSZjbXAJKCRsZW4sMHgzMCk7Cisg CSZtb3Z1cHMJKCRpbm91dDIsJlFXUCgweDIwLCRpbnApKTsKKy0JJmplCSgmbGFiZWwoImVjYl9k ZWNfdGhyZWUiKSk7CisrCSZjbXAJKCRsZW4sMHg0MCk7CisrCSZqYgkoJmxhYmVsKCJlY2JfZGVj X3RocmVlIikpOworIAkmbW92dXBzCSgkaW5vdXQzLCZRV1AoMHgzMCwkaW5wKSk7CistCSZjYWxs CSgiX2Flc25pX2RlY3J5cHQ0Iik7CisrCSZqZQkoJmxhYmVsKCJlY2JfZGVjX2ZvdXIiKSk7Cisr CSZtb3Z1cHMJKCRpbm91dDQsJlFXUCgweDQwLCRpbnApKTsKKysJJnhvcnBzCSgkaW5vdXQ1LCRp bm91dDUpOworKwkmY2FsbAkoIl9hZXNuaV9kZWNyeXB0NiIpOworIAkmbW92dXBzCSgmUVdQKDAs JG91dCksJGlub3V0MCk7CisgCSZtb3Z1cHMJKCZRV1AoMHgxMCwkb3V0KSwkaW5vdXQxKTsKKyAJ Jm1vdnVwcwkoJlFXUCgweDIwLCRvdXQpLCRpbm91dDIpOworIAkmbW92dXBzCSgmUVdQKDB4MzAs JG91dCksJGlub3V0Myk7CisrCSZtb3Z1cHMJKCZRV1AoMHg0MCwkb3V0KSwkaW5vdXQ0KTsKKyAJ JmptcAkoJmxhYmVsKCJlY2JfcmV0IikpOworIAorICZzZXRfbGFiZWwoImVjYl9kZWNfb25lIiwx Nik7CistCSZhZXNuaV9pbmxpbmVfZ2VuZXJhdGUxKCJkZWMiKTsJIyAmY2FsbAkoIl9hZXNuaV9k ZWNyeXB0MyIpOworKwlpZiAoJGlubGluZSkKKysJeyAgICZhZXNuaV9pbmxpbmVfZ2VuZXJhdGUx KCJkZWMiKTsJfQorKwllbHNlCisrCXsgICAmY2FsbAkoIl9hZXNuaV9kZWNyeXB0MSIpOwl9Cisg CSZtb3Z1cHMJKCZRV1AoMCwkb3V0KSwkaW5vdXQwKTsKKyAJJmptcAkoJmxhYmVsKCJlY2JfcmV0 IikpOworIAorICZzZXRfbGFiZWwoImVjYl9kZWNfdHdvIiwxNik7CisrCSZ4b3JwcwkoJGlub3V0 MiwkaW5vdXQyKTsKKyAJJmNhbGwJKCJfYWVzbmlfZGVjcnlwdDMiKTsKKyAJJm1vdnVwcwkoJlFX UCgwLCRvdXQpLCRpbm91dDApOworIAkmbW92dXBzCSgmUVdQKDB4MTAsJG91dCksJGlub3V0MSk7 CitAQCAtMzU3LDI4ICs1NTMsNDIgQEAgaWYgKCRQUkVGSVggZXEgImFlc25pIikgeworIAkmbW92 dXBzCSgmUVdQKDAsJG91dCksJGlub3V0MCk7CisgCSZtb3Z1cHMJKCZRV1AoMHgxMCwkb3V0KSwk aW5vdXQxKTsKKyAJJm1vdnVwcwkoJlFXUCgweDIwLCRvdXQpLCRpbm91dDIpOworKwkmam1wCSgm bGFiZWwoImVjYl9yZXQiKSk7CisrCisrJnNldF9sYWJlbCgiZWNiX2RlY19mb3VyIiwxNik7Cisr CSZjYWxsCSgiX2Flc25pX2RlY3J5cHQ0Iik7CisrCSZtb3Z1cHMJKCZRV1AoMCwkb3V0KSwkaW5v dXQwKTsKKysJJm1vdnVwcwkoJlFXUCgweDEwLCRvdXQpLCRpbm91dDEpOworKwkmbW92dXBzCSgm UVdQKDB4MjAsJG91dCksJGlub3V0Mik7CisrCSZtb3Z1cHMJKCZRV1AoMHgzMCwkb3V0KSwkaW5v dXQzKTsKKyAKKyAmc2V0X2xhYmVsKCJlY2JfcmV0Iik7CisgJmZ1bmN0aW9uX2VuZCgiYWVzbmlf ZWNiX2VuY3J5cHQiKTsKKyB9CisgCisrIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICMgdm9pZCAkUFJFRklYX2Ni Y19lbmNyeXB0IChjb25zdCB2b2lkICppbnAsIHZvaWQgKm91dCwKKyAjICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwgY29uc3QgQUVTX0tFWSAqa2V5LAorICMgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICppdnAsY29uc3QgaW50IGVuYyk7Cisg JmZ1bmN0aW9uX2JlZ2luKCIke1BSRUZJWH1fY2JjX2VuY3J5cHQiKTsKKyAJJm1vdgkoJGlucCwm d3BhcmFtKDApKTsKKysJJm1vdgkoJHJvdW5kc18sImVzcCIpOworIAkmbW92CSgkb3V0LCZ3cGFy YW0oMSkpOworKwkmc3ViCSgkcm91bmRzXywyNCk7CisgCSZtb3YJKCRsZW4sJndwYXJhbSgyKSk7 CisrCSZhbmQJKCRyb3VuZHNfLC0xNik7CisgCSZtb3YJKCRrZXksJndwYXJhbSgzKSk7CistCSZ0 ZXN0CSgkbGVuLCRsZW4pOworIAkmbW92CSgka2V5Xywmd3BhcmFtKDQpKTsKKy0JJmp6CSgmbGFi ZWwoImNiY19yZXQiKSk7CisrCSZ0ZXN0CSgkbGVuLCRsZW4pOworKwkmanoJKCZsYWJlbCgiY2Jj X2Fib3J0IikpOworIAorIAkmY21wCSgmd3BhcmFtKDUpLDApOworLQkmbW92dXBzCSgkaXZlYywm UVdQKDAsJGtleV8pKTsJIyBsb2FkIElWCisrCSZ4Y2hnCSgkcm91bmRzXywiZXNwIik7CQkjIGFs bG9jYQorKwkmbW92dXBzCSgkaXZlYywmUVdQKDAsJGtleV8pKTsJCSMgbG9hZCBJVgorIAkmbW92 CSgkcm91bmRzLCZEV1AoMjQwLCRrZXkpKTsKKy0JJm1vdgkoJGtleV8sJGtleSk7CQkjIGJhY2t1 cCAka2V5CistCSZtb3YJKCRyb3VuZHNfLCRyb3VuZHMpOwkjIGJhY2t1cCAkcm91bmRzCisrCSZt b3YJKCRrZXlfLCRrZXkpOwkJCSMgYmFja3VwICRrZXkKKysJJm1vdgkoJkRXUCgxNiwiZXNwIiks JHJvdW5kc18pOwkjIHNhdmUgb3JpZ2luYWwgJWVzcAorKwkmbW92CSgkcm91bmRzXywkcm91bmRz KTsJCSMgYmFja3VwICRyb3VuZHMKKyAJJmplCSgmbGFiZWwoImNiY19kZWNyeXB0IikpOworIAor IAkmbW92YXBzCSgkaW5vdXQwLCRpdmVjKTsKK0BAIC0zODgsMTUgKzU5OCwxNyBAQCBpZiAoJFBS RUZJWCBlcSAiYWVzbmkiKSB7CisgCSZqbXAJKCZsYWJlbCgiY2JjX2VuY19sb29wIikpOworIAor ICZzZXRfbGFiZWwoImNiY19lbmNfbG9vcCIsMTYpOworLQkmbW92dXBzCSgkaXZlYywmUVdQKDAs JGlucCkpOworKwkmbW92dXBzCSgkaXZlYywmUVdQKDAsJGlucCkpOwkJIyBpbnB1dCBhY3R1YWxs eQorIAkmbGVhCSgkaW5wLCZEV1AoMTYsJGlucCkpOworLQkmcHhvcgkoJGlub3V0MCwkaXZlYyk7 CistCSZhZXNuaV9pbmxpbmVfZ2VuZXJhdGUxKCJlbmMiKTsJIyAmY2FsbAkoIl9hZXNuaV9lbmNy eXB0MyIpOworLQkmc3ViCSgkbGVuLDE2KTsKKy0JJmxlYQkoJG91dCwmRFdQKDE2LCRvdXQpKTsK KysJaWYgKCRpbmxpbmUpCisrCXsgICAmYWVzbmlfaW5saW5lX2dlbmVyYXRlMSgiZW5jIiwkaW5v dXQwLCRpdmVjKTsJfQorKwllbHNlCisrCXsgICAmeG9ycHMoJGlub3V0MCwkaXZlYyk7ICZjYWxs KCJfYWVzbmlfZW5jcnlwdDEiKTsJfQorIAkmbW92CSgkcm91bmRzLCRyb3VuZHNfKTsJIyByZXN0 b3JlICRyb3VuZHMKKyAJJm1vdgkoJGtleSwka2V5Xyk7CQkjIHJlc3RvcmUgJGtleQorLQkmbW92 dXBzCSgmUVdQKC0xNiwkb3V0KSwkaW5vdXQwKTsKKysJJm1vdnVwcwkoJlFXUCgwLCRvdXQpLCRp bm91dDApOwkjIHN0b3JlIG91dHB1dAorKwkmbGVhCSgkb3V0LCZEV1AoMTYsJG91dCkpOworKwkm c3ViCSgkbGVuLDE2KTsKKyAJJmpuYwkoJmxhYmVsKCJjYmNfZW5jX2xvb3AiKSk7CisgCSZhZGQJ KCRsZW4sMTYpOworIAkmam56CSgmbGFiZWwoImNiY19lbmNfdGFpbCIpKTsKK0BAIC00MTUsOTAg KzYyNywxNTEgQEAgaWYgKCRQUkVGSVggZXEgImFlc25pIikgeworIAkmbW92CSgkaW5wLCRvdXQp OwkJIyAkaW5wIGFuZCAkb3V0IGFyZSB0aGUgc2FtZQorIAkmbW92CSgka2V5LCRrZXlfKTsJCSMg cmVzdG9yZSAka2V5CisgCSZqbXAJKCZsYWJlbCgiY2JjX2VuY19sb29wIikpOworLQorKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyAmc2V0X2xhYmVsKCJjYmNfZGVjcnlwdCIsMTYpOworLQkmc3ViCSgkbGVuLDB4 NDApOworKwkmY21wCSgkbGVuLDB4NTApOworIAkmamJlCSgmbGFiZWwoImNiY19kZWNfdGFpbCIp KTsKKy0JJmptcAkoJmxhYmVsKCJjYmNfZGVjX2xvb3AzIikpOworKwkmbW92YXBzCSgmUVdQKDAs ImVzcCIpLCRpdmVjKTsJCSMgc2F2ZSBJVgorKwkmc3ViCSgkbGVuLDB4NTApOworKwkmam1wCSgm bGFiZWwoImNiY19kZWNfbG9vcDZfZW50ZXIiKSk7CisrCisrJnNldF9sYWJlbCgiY2JjX2RlY19s b29wNiIsMTYpOworKwkmbW92YXBzCSgmUVdQKDAsImVzcCIpLCRybmRrZXkwKTsJIyBzYXZlIElW CisrCSZtb3Z1cHMJKCZRV1AoMCwkb3V0KSwkaW5vdXQ1KTsKKysJJmxlYQkoJG91dCwmRFdQKDB4 MTAsJG91dCkpOworKyZzZXRfbGFiZWwoImNiY19kZWNfbG9vcDZfZW50ZXIiKTsKKysJJm1vdmRx dQkoJGlub3V0MCwmUVdQKDAsJGlucCkpOworKwkmbW92ZHF1CSgkaW5vdXQxLCZRV1AoMHgxMCwk aW5wKSk7CisrCSZtb3ZkcXUJKCRpbm91dDIsJlFXUCgweDIwLCRpbnApKTsKKysJJm1vdmRxdQko JGlub3V0MywmUVdQKDB4MzAsJGlucCkpOworKwkmbW92ZHF1CSgkaW5vdXQ0LCZRV1AoMHg0MCwk aW5wKSk7CisrCSZtb3ZkcXUJKCRpbm91dDUsJlFXUCgweDUwLCRpbnApKTsKKyAKKy0mc2V0X2xh YmVsKCJjYmNfZGVjX2xvb3AzIiwxNik7CistCSZtb3Z1cHMJKCRpbm91dDAsJlFXUCgwLCRpbnAp KTsKKy0JJm1vdnVwcwkoJGlub3V0MSwmUVdQKDB4MTAsJGlucCkpOworLQkmbW92dXBzCSgkaW5v dXQyLCZRV1AoMHgyMCwkaW5wKSk7CistCSZtb3ZhcHMJKCRpbjAsJGlub3V0MCk7CistCSZtb3Zh cHMJKCRpbjEsJGlub3V0MSk7CistCSZjYWxsCSgiX2Flc25pX2RlY3J5cHQzIik7CistCSZzdWIJ KCRsZW4sMHgzMCk7CistCSZsZWEJKCRpbnAsJkRXUCgweDMwLCRpbnApKTsKKy0JJmxlYQkoJG91 dCwmRFdQKDB4MzAsJG91dCkpOworLQkmcHhvcgkoJGlub3V0MCwkaXZlYyk7CistCSZweG9yCSgk aW5vdXQxLCRpbjApOworLQkmbW92dXBzCSgkaXZlYywmUVdQKC0weDEwLCRpbnApKTsKKy0JJnB4 b3IJKCRpbm91dDIsJGluMSk7CistCSZtb3Z1cHMJKCZRV1AoLTB4MzAsJG91dCksJGlub3V0MCk7 CistCSZtb3YJKCRyb3VuZHMsJHJvdW5kc18pCSMgcmVzdG9yZSAkcm91bmRzCistCSZtb3Z1cHMJ KCZRV1AoLTB4MjAsJG91dCksJGlub3V0MSk7CistCSZtb3YJKCRrZXksJGtleV8pOwkJIyByZXN0 b3JlICRrZXkKKy0JJm1vdnVwcwkoJlFXUCgtMHgxMCwkb3V0KSwkaW5vdXQyKTsKKy0JJmphCSgm bGFiZWwoImNiY19kZWNfbG9vcDMiKSk7CisrCSZjYWxsCSgiX2Flc25pX2RlY3J5cHQ2Iik7Cisg CisrCSZtb3Z1cHMJKCRybmRrZXkxLCZRV1AoMCwkaW5wKSk7CisrCSZtb3Z1cHMJKCRybmRrZXkw LCZRV1AoMHgxMCwkaW5wKSk7CisrCSZ4b3JwcwkoJGlub3V0MCwmUVdQKDAsImVzcCIpKTsJIyBe PUlWCisrCSZ4b3JwcwkoJGlub3V0MSwkcm5ka2V5MSk7CisrCSZtb3Z1cHMJKCRybmRrZXkxLCZR V1AoMHgyMCwkaW5wKSk7CisrCSZ4b3JwcwkoJGlub3V0Miwkcm5ka2V5MCk7CisrCSZtb3Z1cHMJ KCRybmRrZXkwLCZRV1AoMHgzMCwkaW5wKSk7CisrCSZ4b3JwcwkoJGlub3V0Mywkcm5ka2V5MSk7 CisrCSZtb3Z1cHMJKCRybmRrZXkxLCZRV1AoMHg0MCwkaW5wKSk7CisrCSZ4b3JwcwkoJGlub3V0 NCwkcm5ka2V5MCk7CisrCSZtb3Z1cHMJKCRybmRrZXkwLCZRV1AoMHg1MCwkaW5wKSk7CSMgSVYK KysJJnhvcnBzCSgkaW5vdXQ1LCRybmRrZXkxKTsKKysJJm1vdnVwcwkoJlFXUCgwLCRvdXQpLCRp bm91dDApOworKwkmbW92dXBzCSgmUVdQKDB4MTAsJG91dCksJGlub3V0MSk7CisrCSZsZWEJKCRp bnAsJkRXUCgweDYwLCRpbnApKTsKKysJJm1vdnVwcwkoJlFXUCgweDIwLCRvdXQpLCRpbm91dDIp OworKwkmbW92CSgkcm91bmRzLCRyb3VuZHNfKQkJIyByZXN0b3JlICRyb3VuZHMKKysJJm1vdnVw cwkoJlFXUCgweDMwLCRvdXQpLCRpbm91dDMpOworKwkmbW92CSgka2V5LCRrZXlfKTsJCQkjIHJl c3RvcmUgJGtleQorKwkmbW92dXBzCSgmUVdQKDB4NDAsJG91dCksJGlub3V0NCk7CisrCSZsZWEJ KCRvdXQsJkRXUCgweDUwLCRvdXQpKTsKKysJJnN1YgkoJGxlbiwweDYwKTsKKysJJmphCSgmbGFi ZWwoImNiY19kZWNfbG9vcDYiKSk7CisrCisrCSZtb3ZhcHMJKCRpbm91dDAsJGlub3V0NSk7Cisr CSZtb3ZhcHMJKCRpdmVjLCRybmRrZXkwKTsKKysJJmFkZAkoJGxlbiwweDUwKTsKKysJJmpsZQko JmxhYmVsKCJjYmNfZGVjX3RhaWxfY29sbGVjdGVkIikpOworKwkmbW92dXBzCSgmUVdQKDAsJG91 dCksJGlub3V0MCk7CisrCSZsZWEJKCRvdXQsJkRXUCgweDEwLCRvdXQpKTsKKyAmc2V0X2xhYmVs KCJjYmNfZGVjX3RhaWwiKTsKKy0JJmFkZAkoJGxlbiwweDQwKTsKKy0JJmp6CSgmbGFiZWwoImNi Y19yZXQiKSk7CistCisgCSZtb3Z1cHMJKCRpbm91dDAsJlFXUCgwLCRpbnApKTsKKy0JJmNtcAko JGxlbiwweDEwKTsKKyAJJm1vdmFwcwkoJGluMCwkaW5vdXQwKTsKKysJJmNtcAkoJGxlbiwweDEw KTsKKyAJJmpiZQkoJmxhYmVsKCJjYmNfZGVjX29uZSIpKTsKKysKKyAJJm1vdnVwcwkoJGlub3V0 MSwmUVdQKDB4MTAsJGlucCkpOworLQkmY21wCSgkbGVuLDB4MjApOworIAkmbW92YXBzCSgkaW4x LCRpbm91dDEpOworKwkmY21wCSgkbGVuLDB4MjApOworIAkmamJlCSgmbGFiZWwoImNiY19kZWNf dHdvIikpOworKworIAkmbW92dXBzCSgkaW5vdXQyLCZRV1AoMHgyMCwkaW5wKSk7CisgCSZjbXAJ KCRsZW4sMHgzMCk7CisgCSZqYmUJKCZsYWJlbCgiY2JjX2RlY190aHJlZSIpKTsKKysKKyAJJm1v dnVwcwkoJGlub3V0MywmUVdQKDB4MzAsJGlucCkpOworLQkmY2FsbAkoIl9hZXNuaV9kZWNyeXB0 NCIpOworKwkmY21wCSgkbGVuLDB4NDApOworKwkmamJlCSgmbGFiZWwoImNiY19kZWNfZm91ciIp KTsKKysKKysJJm1vdnVwcwkoJGlub3V0NCwmUVdQKDB4NDAsJGlucCkpOworKwkmbW92YXBzCSgm UVdQKDAsImVzcCIpLCRpdmVjKTsJCSMgc2F2ZSBJVgorKwkmbW92dXBzCSgkaW5vdXQwLCZRV1Ao MCwkaW5wKSk7CisrCSZ4b3JwcwkoJGlub3V0NSwkaW5vdXQ1KTsKKysJJmNhbGwJKCJfYWVzbmlf ZGVjcnlwdDYiKTsKKysJJm1vdnVwcwkoJHJuZGtleTEsJlFXUCgwLCRpbnApKTsKKyAJJm1vdnVw cwkoJHJuZGtleTAsJlFXUCgweDEwLCRpbnApKTsKKysJJnhvcnBzCSgkaW5vdXQwLCZRV1AoMCwi ZXNwIikpOwkjIF49IElWCisrCSZ4b3JwcwkoJGlub3V0MSwkcm5ka2V5MSk7CisgCSZtb3Z1cHMJ KCRybmRrZXkxLCZRV1AoMHgyMCwkaW5wKSk7CistCSZweG9yCSgkaW5vdXQwLCRpdmVjKTsKKy0J JnB4b3IJKCRpbm91dDEsJGluMCk7CistCSZtb3Z1cHMJKCRpdmVjLCZRV1AoMHgzMCwkaW5wKSk7 CisrCSZ4b3JwcwkoJGlub3V0Miwkcm5ka2V5MCk7CisrCSZtb3Z1cHMJKCRybmRrZXkwLCZRV1Ao MHgzMCwkaW5wKSk7CisrCSZ4b3JwcwkoJGlub3V0Mywkcm5ka2V5MSk7CisrCSZtb3Z1cHMJKCRp dmVjLCZRV1AoMHg0MCwkaW5wKSk7CSMgSVYKKysJJnhvcnBzCSgkaW5vdXQ0LCRybmRrZXkwKTsK KyAJJm1vdnVwcwkoJlFXUCgwLCRvdXQpLCRpbm91dDApOworLQkmcHhvcgkoJGlub3V0Miwkcm5k a2V5MCk7CistCSZweG9yCSgkaW5vdXQzLCRybmRrZXkxKTsKKyAJJm1vdnVwcwkoJlFXUCgweDEw LCRvdXQpLCRpbm91dDEpOworIAkmbW92dXBzCSgmUVdQKDB4MjAsJG91dCksJGlub3V0Mik7Cist CSZtb3ZhcHMJKCRpbm91dDAsJGlub3V0Myk7CistCSZsZWEJKCRvdXQsJkRXUCgweDMwLCRvdXQp KTsKKysJJm1vdnVwcwkoJlFXUCgweDMwLCRvdXQpLCRpbm91dDMpOworKwkmbGVhCSgkb3V0LCZE V1AoMHg0MCwkb3V0KSk7CisrCSZtb3ZhcHMJKCRpbm91dDAsJGlub3V0NCk7CisrCSZzdWIJKCRs ZW4sMHg1MCk7CisgCSZqbXAJKCZsYWJlbCgiY2JjX2RlY190YWlsX2NvbGxlY3RlZCIpKTsKKyAK Ky0mc2V0X2xhYmVsKCJjYmNfZGVjX29uZSIpOworLQkmYWVzbmlfaW5saW5lX2dlbmVyYXRlMSgi ZGVjIik7CSMgJmNhbGwJKCJfYWVzbmlfZGVjcnlwdDMiKTsKKy0JJnB4b3IJKCRpbm91dDAsJGl2 ZWMpOworKyZzZXRfbGFiZWwoImNiY19kZWNfb25lIiwxNik7CisrCWlmICgkaW5saW5lKQorKwl7 ICAgJmFlc25pX2lubGluZV9nZW5lcmF0ZTEoImRlYyIpOwl9CisrCWVsc2UKKysJeyAgICZjYWxs CSgiX2Flc25pX2RlY3J5cHQxIik7CX0KKysJJnhvcnBzCSgkaW5vdXQwLCRpdmVjKTsKKyAJJm1v dmFwcwkoJGl2ZWMsJGluMCk7CisrCSZzdWIJKCRsZW4sMHgxMCk7CisgCSZqbXAJKCZsYWJlbCgi Y2JjX2RlY190YWlsX2NvbGxlY3RlZCIpKTsKKyAKKy0mc2V0X2xhYmVsKCJjYmNfZGVjX3R3byIp OworKyZzZXRfbGFiZWwoImNiY19kZWNfdHdvIiwxNik7CisrCSZ4b3JwcwkoJGlub3V0MiwkaW5v dXQyKTsKKyAJJmNhbGwJKCJfYWVzbmlfZGVjcnlwdDMiKTsKKy0JJnB4b3IJKCRpbm91dDAsJGl2 ZWMpOworLQkmcHhvcgkoJGlub3V0MSwkaW4wKTsKKysJJnhvcnBzCSgkaW5vdXQwLCRpdmVjKTsK KysJJnhvcnBzCSgkaW5vdXQxLCRpbjApOworIAkmbW92dXBzCSgmUVdQKDAsJG91dCksJGlub3V0 MCk7CisgCSZtb3ZhcHMJKCRpbm91dDAsJGlub3V0MSk7CistCSZtb3ZhcHMJKCRpdmVjLCRpbjEp OworIAkmbGVhCSgkb3V0LCZEV1AoMHgxMCwkb3V0KSk7CisrCSZtb3ZhcHMJKCRpdmVjLCRpbjEp OworKwkmc3ViCSgkbGVuLDB4MjApOworIAkmam1wCSgmbGFiZWwoImNiY19kZWNfdGFpbF9jb2xs ZWN0ZWQiKSk7CisgCistJnNldF9sYWJlbCgiY2JjX2RlY190aHJlZSIpOworKyZzZXRfbGFiZWwo ImNiY19kZWNfdGhyZWUiLDE2KTsKKyAJJmNhbGwJKCJfYWVzbmlfZGVjcnlwdDMiKTsKKy0JJnB4 b3IJKCRpbm91dDAsJGl2ZWMpOworLQkmcHhvcgkoJGlub3V0MSwkaW4wKTsKKy0JJnB4b3IJKCRp bm91dDIsJGluMSk7CisrCSZ4b3JwcwkoJGlub3V0MCwkaXZlYyk7CisrCSZ4b3JwcwkoJGlub3V0 MSwkaW4wKTsKKysJJnhvcnBzCSgkaW5vdXQyLCRpbjEpOworIAkmbW92dXBzCSgmUVdQKDAsJG91 dCksJGlub3V0MCk7CistCSZtb3Z1cHMJKCZRV1AoMHgxMCwkb3V0KSwkaW5vdXQxKTsKKyAJJm1v dmFwcwkoJGlub3V0MCwkaW5vdXQyKTsKKy0JJm1vdnVwcwkoJGl2ZWMsJlFXUCgweDIwLCRpbnAp KTsKKysJJm1vdnVwcwkoJlFXUCgweDEwLCRvdXQpLCRpbm91dDEpOworIAkmbGVhCSgkb3V0LCZE V1AoMHgyMCwkb3V0KSk7CisrCSZtb3Z1cHMJKCRpdmVjLCZRV1AoMHgyMCwkaW5wKSk7CisrCSZz dWIJKCRsZW4sMHgzMCk7CisrCSZqbXAJKCZsYWJlbCgiY2JjX2RlY190YWlsX2NvbGxlY3RlZCIp KTsKKysKKysmc2V0X2xhYmVsKCJjYmNfZGVjX2ZvdXIiLDE2KTsKKysJJmNhbGwJKCJfYWVzbmlf ZGVjcnlwdDQiKTsKKysJJm1vdnVwcwkoJHJuZGtleTEsJlFXUCgweDEwLCRpbnApKTsKKysJJm1v dnVwcwkoJHJuZGtleTAsJlFXUCgweDIwLCRpbnApKTsKKysJJnhvcnBzCSgkaW5vdXQwLCRpdmVj KTsKKysJJm1vdnVwcwkoJGl2ZWMsJlFXUCgweDMwLCRpbnApKTsKKysJJnhvcnBzCSgkaW5vdXQx LCRpbjApOworKwkmbW92dXBzCSgmUVdQKDAsJG91dCksJGlub3V0MCk7CisrCSZ4b3JwcwkoJGlu b3V0Miwkcm5ka2V5MSk7CisrCSZtb3Z1cHMJKCZRV1AoMHgxMCwkb3V0KSwkaW5vdXQxKTsKKysJ JnhvcnBzCSgkaW5vdXQzLCRybmRrZXkwKTsKKysJJm1vdnVwcwkoJlFXUCgweDIwLCRvdXQpLCRp bm91dDIpOworKwkmbGVhCSgkb3V0LCZEV1AoMHgzMCwkb3V0KSk7CisrCSZtb3ZhcHMJKCRpbm91 dDAsJGlub3V0Myk7CisrCSZzdWIJKCRsZW4sMHg0MCk7CisgCisgJnNldF9sYWJlbCgiY2JjX2Rl Y190YWlsX2NvbGxlY3RlZCIpOworIAkmYW5kCSgkbGVuLDE1KTsKK0BAIC01MDYsMjEgKzc3OSwy MSBAQCBpZiAoJFBSRUZJWCBlcSAiYWVzbmkiKSB7CisgCSZtb3Z1cHMJKCZRV1AoMCwkb3V0KSwk aW5vdXQwKTsKKyAJJmptcAkoJmxhYmVsKCJjYmNfcmV0IikpOworIAorLSZzZXRfbGFiZWwoImNi Y19kZWNfdGFpbF9wYXJ0aWFsIik7CistCSZtb3YJKCRrZXlfLCJlc3AiKTsKKy0JJnN1YgkoImVz cCIsMTYpOworLQkmYW5kCSgiZXNwIiwtMTYpOworKyZzZXRfbGFiZWwoImNiY19kZWNfdGFpbF9w YXJ0aWFsIiwxNik7CisgCSZtb3ZhcHMJKCZRV1AoMCwiZXNwIiksJGlub3V0MCk7CisrCSZtb3YJ KCJlY3giLDE2KTsKKyAJJm1vdgkoJGlucCwiZXNwIik7CistCSZtb3YJKCJlY3giLCRsZW4pOwor Kwkmc3ViCSgiZWN4IiwkbGVuKTsKKyAJJmRhdGFfd29yZCgweEE0RjNGNjg5KTsJCSMgcmVwIG1v dnNiCistCSZtb3YJKCJlc3AiLCRrZXlfKTsKKyAKKyAmc2V0X2xhYmVsKCJjYmNfcmV0Iik7Cisr CSZtb3YJKCJlc3AiLCZEV1AoMTYsImVzcCIpKTsJIyBwdWxsIG9yaWdpbmFsICVlc3AKKyAJJm1v dgkoJGtleV8sJndwYXJhbSg0KSk7CisgCSZtb3Z1cHMJKCZRV1AoMCwka2V5XyksJGl2ZWMpOwkj IG91dHB1dCBJVgorKyZzZXRfbGFiZWwoImNiY19hYm9ydCIpOworICZmdW5jdGlvbl9lbmQoIiR7 UFJFRklYfV9jYmNfZW5jcnlwdCIpOworLQorKwwKKysjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgIyBNZWNoYW5p Y2FsIHBvcnQgZnJvbSBhZXNuaS14ODZfNjQucGwuCisgIworICMgX2Flc25pX3NldF9lbmNyeXB0 X2tleSBpcyBwcml2YXRlIGludGVyZmFjZSwKK0BAIC01MzksNyArODEyLDcgQEAgaWYgKCRQUkVG SVggZXEgImFlc25pIikgeworIAkmanoJKCZsYWJlbCgiYmFkX3BvaW50ZXIiKSk7CisgCisgCSZt b3Z1cHMJKCJ4bW0wIiwmUVdQKDAsImVheCIpKTsJIyBwdWxsIGZpcnN0IDEyOCBiaXRzIG9mICp1 c2VyS2V5CistCSZweG9yCSgieG1tNCIsInhtbTQiKTsJIyBsb3cgZHdvcmQgb2YgeG1tNCBpcyBh c3N1bWVkIDAKKysJJnhvcnBzCSgieG1tNCIsInhtbTQiKTsJIyBsb3cgZHdvcmQgb2YgeG1tNCBp cyBhc3N1bWVkIDAKKyAJJmxlYQkoJGtleSwmRFdQKDE2LCRrZXkpKTsKKyAJJmNtcAkoJHJvdW5k cywyNTYpOworIAkmamUJKCZsYWJlbCgiMTRyb3VuZHMiKSk7CitAQCAtNTgxLDExICs4NTQsMTEg QEAgaWYgKCRQUkVGSVggZXEgImFlc25pIikgeworIAkmbGVhCQkoJGtleSwmRFdQKDE2LCRrZXkp KTsKKyAmc2V0X2xhYmVsKCJrZXlfMTI4X2NvbGQiKTsKKyAJJnNodWZwcwkJKCJ4bW00IiwieG1t MCIsMGIwMDAxMDAwMCk7CistCSZweG9yCQkoInhtbTAiLCJ4bW00Iik7CistCSZzaHVmcHMJCSgi eG1tNCIsInhtbTAiLDBiMTAwMDExMDAsKTsKKy0JJnB4b3IJCSgieG1tMCIsInhtbTQiKTsKKy0J JnBzaHVmZAkJKCJ4bW0xIiwieG1tMSIsMGIxMTExMTExMSk7CSMgY3JpdGljYWwgcGF0aAorLQkm cHhvcgkJKCJ4bW0wIiwieG1tMSIpOworKwkmeG9ycHMJCSgieG1tMCIsInhtbTQiKTsKKysJJnNo dWZwcwkJKCJ4bW00IiwieG1tMCIsMGIxMDAwMTEwMCk7CisrCSZ4b3JwcwkJKCJ4bW0wIiwieG1t NCIpOworKwkmc2h1ZnBzCQkoInhtbTEiLCJ4bW0xIiwwYjExMTExMTExKTsJIyBjcml0aWNhbCBw YXRoCisrCSZ4b3JwcwkJKCJ4bW0wIiwieG1tMSIpOworIAkmcmV0KCk7CisgCisgJnNldF9sYWJl bCgiMTJyb3VuZHMiLDE2KTsKK0BAIC02MjAsMTEgKzg5MywxMSBAQCBpZiAoJFBSRUZJWCBlcSAi YWVzbmkiKSB7CisgCSZtb3ZhcHMJCSgieG1tNSIsInhtbTIiKTsKKyAmc2V0X2xhYmVsKCJrZXlf MTkyYl93YXJtIik7CisgCSZzaHVmcHMJCSgieG1tNCIsInhtbTAiLDBiMDAwMTAwMDApOworLQkm bW92YXBzCQkoInhtbTMiLCJ4bW0yIik7CistCSZweG9yCQkoInhtbTAiLCJ4bW00Iik7CisrCSZt b3ZkcWEJCSgieG1tMyIsInhtbTIiKTsKKysJJnhvcnBzCQkoInhtbTAiLCJ4bW00Iik7CisgCSZz aHVmcHMJCSgieG1tNCIsInhtbTAiLDBiMTAwMDExMDApOworIAkmcHNsbGRxCQkoInhtbTMiLDQp OworLQkmcHhvcgkJKCJ4bW0wIiwieG1tNCIpOworKwkmeG9ycHMJCSgieG1tMCIsInhtbTQiKTsK KyAJJnBzaHVmZAkJKCJ4bW0xIiwieG1tMSIsMGIwMTAxMDEwMSk7CSMgY3JpdGljYWwgcGF0aAor IAkmcHhvcgkJKCJ4bW0yIiwieG1tMyIpOworIAkmcHhvcgkJKCJ4bW0wIiwieG1tMSIpOworQEAg LTY4MywxMSArOTU2LDExIEBAIGlmICgkUFJFRklYIGVxICJhZXNuaSIpIHsKKyAJJmxlYQkJKCRr ZXksJkRXUCgxNiwka2V5KSk7CisgJnNldF9sYWJlbCgia2V5XzI1NmFfY29sZCIpOworIAkmc2h1 ZnBzCQkoInhtbTQiLCJ4bW0wIiwwYjAwMDEwMDAwKTsKKy0JJnB4b3IJCSgieG1tMCIsInhtbTQi KTsKKysJJnhvcnBzCQkoInhtbTAiLCJ4bW00Iik7CisgCSZzaHVmcHMJCSgieG1tNCIsInhtbTAi LDBiMTAwMDExMDApOworLQkmcHhvcgkJKCJ4bW0wIiwieG1tNCIpOworLQkmcHNodWZkCQkoInht bTEiLCJ4bW0xIiwwYjExMTExMTExKTsJIyBjcml0aWNhbCBwYXRoCistCSZweG9yCQkoInhtbTAi LCJ4bW0xIik7CisrCSZ4b3JwcwkJKCJ4bW0wIiwieG1tNCIpOworKwkmc2h1ZnBzCQkoInhtbTEi LCJ4bW0xIiwwYjExMTExMTExKTsJIyBjcml0aWNhbCBwYXRoCisrCSZ4b3JwcwkJKCJ4bW0wIiwi eG1tMSIpOworIAkmcmV0KCk7CisgCisgJnNldF9sYWJlbCgia2V5XzI1NmIiLDE2KTsKK0BAIC02 OTUsMTEgKzk2OCwxMSBAQCBpZiAoJFBSRUZJWCBlcSAiYWVzbmkiKSB7CisgCSZsZWEJCSgka2V5 LCZEV1AoMTYsJGtleSkpOworIAorIAkmc2h1ZnBzCQkoInhtbTQiLCJ4bW0yIiwwYjAwMDEwMDAw KTsKKy0JJnB4b3IJCSgieG1tMiIsInhtbTQiKTsKKysJJnhvcnBzCQkoInhtbTIiLCJ4bW00Iik7 CisgCSZzaHVmcHMJCSgieG1tNCIsInhtbTIiLDBiMTAwMDExMDApOworLQkmcHhvcgkJKCJ4bW0y IiwieG1tNCIpOworLQkmcHNodWZkCQkoInhtbTEiLCJ4bW0xIiwwYjEwMTAxMDEwKTsJIyBjcml0 aWNhbCBwYXRoCistCSZweG9yCQkoInhtbTIiLCJ4bW0xIik7CisrCSZ4b3JwcwkJKCJ4bW0yIiwi eG1tNCIpOworKwkmc2h1ZnBzCQkoInhtbTEiLCJ4bW0xIiwwYjEwMTAxMDEwKTsJIyBjcml0aWNh bCBwYXRoCisrCSZ4b3JwcwkJKCJ4bW0yIiwieG1tMSIpOworIAkmcmV0KCk7CisgCisgJnNldF9s YWJlbCgiYmFkX3BvaW50ZXIiLDQpOworQEAgLTc0Nyw5ICsxMDIwLDkgQEAgaWYgKCRQUkVGSVgg ZXEgImFlc25pIikgeworIAkmYWVzaW1jCQkoInhtbTEiLCJ4bW0xIik7CisgCSZsZWEJCSgka2V5 LCZEV1AoMTYsJGtleSkpOworIAkmbGVhCQkoImVheCIsJkRXUCgtMTYsImVheCIpKTsKKy0JJmNt cAkJKCJlYXgiLCRrZXkpOworIAkmJG1vdmVrZXkJKCZRV1AoMTYsImVheCIpLCJ4bW0wIik7Cisg CSYkbW92ZWtleQkoJlFXUCgtMTYsJGtleSksInhtbTEiKTsKKysJJmNtcAkJKCJlYXgiLCRrZXkp OworIAkmamEJCSgmbGFiZWwoImRlY19rZXlfaW52ZXJzZSIpKTsKKyAKKyAJJiRtb3Zla2V5CSgi eG1tMCIsJlFXUCgwLCRrZXkpKTsJIyBpbnZlcnNlIG1pZGRsZQorZGlmZiAtdXAgb3BlbnNzbC0x LjAuMGQvY3J5cHRvL2Flcy9hc20vYWVzbmkteDg2XzY0LnBsLmludGVsb3B0cyBvcGVuc3NsLTEu MC4wZC9jcnlwdG8vYWVzL2FzbS9hZXNuaS14ODZfNjQucGwKKy0tLSBvcGVuc3NsLTEuMC4wZC9j cnlwdG8vYWVzL2FzbS9hZXNuaS14ODZfNjQucGwuaW50ZWxvcHRzCTIwMTEtMDgtMjQgMTI6MzY6 MzMuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjAuMGQvY3J5cHRvL2Flcy9hc20vYWVz bmkteDg2XzY0LnBsCTIwMTEtMDgtMjQgMTI6MzY6MzQuMDAwMDAwMDAwICswMjAwCitAQCAtMSw0 ICsxLDQgQEAKKy0jIS91c3IvYmluL2VudiBwZXJsCisrIyEvdXNyL2Jpbi9wZXJsCisgIworICMg PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKyAjIFdyaXR0ZW4gYnkgQW5keSBQb2x5YWtvdiA8YXBwcm9AZnkuY2hhbG1l cnMuc2U+IGZvciB0aGUgT3BlblNTTAorQEAgLTExLDYgKzExLDE0NSBAQAorICMgT3BlblNTTCBj b250ZXh0IGl0J3MgdXNlZCB3aXRoIEludGVsIGVuZ2luZSwgYnV0IGNhbiBhbHNvIGJlIHVzZWQg YXMKKyAjIGRyb3AtaW4gcmVwbGFjZW1lbnQgZm9yIGNyeXB0by9hZXMvYXNtL2Flcy14ODZfNjQu cGwgW3NlZSBiZWxvdyBmb3IKKyAjIGRldGFpbHNdLgorKyMKKysjIFBlcmZvcm1hbmNlLgorKyMK KysjIEdpdmVuIGFlcyhlbmN8ZGVjKSBpbnN0cnVjdGlvbnMnIGxhdGVuY3kgYXN5bXB0b3RpYyBw ZXJmb3JtYW5jZSBmb3IKKysjIG5vbi1wYXJhbGxlbGl6YWJsZSBtb2RlcyBzdWNoIGFzIENCQyBl bmNyeXB0IGlzIDMuNzUgY3ljbGVzIHBlciBieXRlCisrIyBwcm9jZXNzZWQgd2l0aCAxMjgtYml0 IGtleS4gQW5kIGdpdmVuIHRoZWlyIHRocm91Z2hwdXQgYXN5bXB0b3RpYworKyMgcGVyZm9ybWFu Y2UgZm9yIHBhcmFsbGVsaXphYmxlIG1vZGVzIGlzIDEuMjUgY3ljbGVzIHBlciBieXRlLiBCZWlu ZworKyMgYXN5bXB0b3RpYyBsaW1pdCBpdCdzIG5vdCBzb21ldGhpbmcgeW91IGNvbW1vbmx5IGFj aGlldmUgaW4gcmVhbGl0eSwKKysjIGJ1dCBob3cgY2xvc2UgZG9lcyBvbmUgZ2V0PyBCZWxvdyBh cmUgcmVzdWx0cyBjb2xsZWN0ZWQgZm9yCisrIyBkaWZmZXJlbnQgbW9kZXMgYW5kIGJsb2NrIHNp emVkLiBQYWlycyBvZiBudW1iZXJzIGFyZSBmb3IgZW4tLworKyMgZGVjcnlwdGlvbi4KKysjCisr IwkxNi1ieXRlICAgICA2NC1ieXRlICAgICAyNTYtYnl0ZSAgICAxLUtCICAgICAgICA4LUtCCisr IyBFQ0IJNC4yNS80LjI1ICAgMS4zOC8xLjM4ICAgMS4yOC8xLjI4ICAgMS4yNi8xLjI2CTEuMjYv MS4yNgorKyMgQ1RSCTUuNDIvNS40MiAgIDEuOTIvMS45MiAgIDEuNDQvMS40NCAgIDEuMjgvMS4y OCAgIDEuMjYvMS4yNgorKyMgQ0JDCTQuMzgvNC40MyAgIDQuMTUvMS40MyAgIDQuMDcvMS4zMiAg IDQuMDcvMS4yOSAgIDQuMDYvMS4yOAorKyMgQ0NNCTUuNjYvOS40MiAgIDQuNDIvNS40MSAgIDQu MTYvNC40MCAgIDQuMDkvNC4xNSAgIDQuMDYvNC4wNyAgIAorKyMgT0ZCCTUuNDIvNS40MiAgIDQu NjQvNC42NCAgIDQuNDQvNC40NCAgIDQuMzkvNC4zOSAgIDQuMzgvNC4zOAorKyMgQ0ZCCTUuNzMv NS44NSAgIDUuNTYvNS42MiAgIDUuNDgvNS41NiAgIDUuNDcvNS41NSAgIDUuNDcvNS41NQorKyMK KysjIEVDQiwgQ1RSLCBDQkMgYW5kIENDTSByZXN1bHRzIGFyZSBmcmVlIGZyb20gRVZQIG92ZXJo ZWFkLiBUaGlzIG1lYW5zCisrIyB0aGF0IG90aGVyd2lzZSB1c2VkICdvcGVuc3NsIHNwZWVkIC1l dnAgYWVzLTEyOC0/Pz8gLWVuZ2luZSBhZXNuaQorKyMgWy1kZWNyeXB0XScgd2lsbCBleGhpYml0 IDEwLTE1JSB3b3JzZSByZXN1bHRzIGZvciBzbWFsbGVyIGJsb2Nrcy4KKysjIFRoZSByZXN1bHRz IHdlcmUgY29sbGVjdGVkIHdpdGggc3BlY2lhbGx5IGNyYWZ0ZWQgc3BlZWQuYyBiZW5jaG1hcmsK KysjIGluIG9yZGVyIHRvIGNvbXBhcmUgdGhlbSB3aXRoIHJlc3VsdHMgcmVwb3J0ZWQgaW4gIklu dGVsIEFkdmFuY2VkCisrIyBFbmNyeXB0aW9uIFN0YW5kYXJkIChBRVMpIE5ldyBJbnN0cnVjdGlv biBTZXQiIFdoaXRlIFBhcGVyIFJldmlzaW9uCisrIyAzLjAgZGF0ZWQgTWF5IDIwMTAuIEFsbCBh Ym92ZSByZXN1bHRzIGFyZSBjb25zaXN0ZW50bHkgYmV0dGVyLiBUaGlzCisrIyBtb2R1bGUgYWxz byBwcm92aWRlcyBiZXR0ZXIgcGVyZm9ybWFuY2UgZm9yIGJsb2NrIHNpemVzIHNtYWxsZXIgdGhh bgorKyMgMTI4IGJ5dGVzIGluIHBvaW50cyAqbm90KiByZXByZXNlbnRlZCBpbiB0aGUgYWJvdmUg dGFibGUuCisrIworKyMgTG9va2luZyBhdCB0aGUgcmVzdWx0cyBmb3IgOC1LQiBidWZmZXIuCisr IworKyMgQ0ZCIGFuZCBPRkIgcmVzdWx0cyBhcmUgZmFyIGZyb20gdGhlIGxpbWl0LCBiZWNhdXNl IGltcGxlbWVudGF0aW9uCisrIyB1c2VzICJnZW5lcmljIiBDUllQVE9fW2N8b11mYjEyOF9lbmNy eXB0IGludGVyZmFjZXMgcmVseWluZyBvbgorKyMgc2luZ2xlLWJsb2NrIGFlc25pX2VuY3J5cHQs IHdoaWNoIGlzIG5vdCB0aGUgbW9zdCBvcHRpbWFsIHdheSB0byBnby4KKysjIENCQyBlbmNyeXB0 IHJlc3VsdCBpcyB1bmV4cGVjdGVkbHkgaGlnaCBhbmQgdGhlcmUgaXMgbm8gZG9jdW1lbnRlZAor KyMgZXhwbGFuYXRpb24gZm9yIGl0LiBTZWVtaW5nbHkgdGhlcmUgaXMgYSBzbWFsbCBwZW5hbHR5 IGZvciBmZWVkaW5nCisrIyB0aGUgcmVzdWx0IGJhY2sgdG8gQUVTIHVuaXQgdGhlIHdheSBpdCdz IGRvbmUgaW4gQ0JDIG1vZGUuIFRoZXJlIGlzCisrIyBub3RoaW5nIG9uZSBjYW4gZG8gYW5kIHRo ZSByZXN1bHQgYXBwZWFycyBvcHRpbWFsLiBDQ00gcmVzdWx0IGlzCisrIyBpZGVudGljYWwgdG8g Q0JDLCBiZWNhdXNlIENCQy1NQUMgaXMgZXNzZW50aWFsbHkgQ0JDIGVuY3J5cHQgd2l0aG91dAor KyMgc2F2aW5nIG91dHB1dC4gQ0NNIENUUiAic3RheXMgaW52aXNpYmxlLCIgYmVjYXVzZSBpdCdz IG5lYXRseQorKyMgaW50ZXJsZWF2ZWQgd2loIENCQy1NQUMuIFRoaXMgcHJvdmlkZXMgfjMwJSBp bXByb3ZlbWVudCBvdmVyCisrIyAic3RyYWdodGZvcndhcmQiIENDTSBpbXBsZW1lbnRhdGlvbiB3 aXRoIENUUiBhbmQgQ0JDLU1BQyBwZXJmb3JtZWQKKysjIGRpc2pvaW50bHkuIFBhcmFsbGVsaXph YmxlIG1vZGVzIHByYWN0aWNhbGx5IGFjaGlldmUgdGhlIHRoZW9yZXRpY2FsCisrIyBsaW1pdC4K KysjCisrIyBMb29raW5nIGF0IGhvdyByZXN1bHRzIHZhcnkgd2l0aCBidWZmZXIgc2l6ZS4KKysj CisrIyBDdXJ2ZXMgYXJlIHByYWN0aWNhbGx5IHNhdHVyYXRlZCBhdCAxLUtCIGJ1ZmZlciBzaXpl LiBJbiBtb3N0IGNhc2VzCisrIyAiMjU2LWJ5dGUiIHBlcmZvcm1hbmNlIGlzID45NSUsIGFuZCAi NjQtYnl0ZSIgaXMgfjkwJSBvZiAiOC1LQiIgb25lLgorKyMgQ1RSIGN1cnZlIGRvZXNuJ3QgZm9s bG93IHRoaXMgcGF0dGVybiBhbmQgaXMgInNsb3dlc3QiIGNoYW5naW5nIG9uZQorKyMgd2l0aCAi MjU2LWJ5dGUiIHJlc3VsdCBiZWluZyA4NyUgb2YgIjgtS0IuIiBUaGlzIGlzIGJlY2F1c2Ugb3Zl cmhlYWQKKysjIGluIENUUiBtb2RlIGlzIG1vc3QgY29tcHV0YXRpb25hbGx5IGludGVuc2l2ZS4g U21hbGwtYmxvY2sgQ0NNCisrIyBkZWNyeXB0IGlzIHNsb3dlciB0aGFuIGVuY3J5cHQsIGJlY2F1 c2UgZmlyc3QgQ1RSIGFuZCBsYXN0IENCQy1NQUMKKysjIGl0ZXJhdGlvbnMgY2FuJ3QgYmUgaW50 ZXJsZWF2ZWQuCisrIworKyMgUmVzdWx0cyBmb3IgMTkyLSBhbmQgMjU2LWJpdCBrZXlzLgorKyMK KysjIEVWUC1mcmVlIHJlc3VsdHMgd2VyZSBvYnNlcnZlZCB0byBzY2FsZSBwZXJmZWN0bHkgd2l0 aCBudW1iZXIgb2YKKysjIHJvdW5kcyBmb3IgbGFyZ2VyIGJsb2NrIHNpemVzLCBpLmUuIDE5Mi1i aXQgcmVzdWx0IGJlaW5nIDEwLzEyIHRpbWVzCisrIyBsb3dlciBhbmQgMjU2LWJpdCBvbmUgLSAx MC8xNC4gV2VsbCwgaW4gQ0JDIGVuY3J5cHQgY2FzZSBkaWZmZXJlbmNlcworKyMgYXJlIGEgdGFk IHNtYWxsZXIsIGJlY2F1c2UgdGhlIGFib3ZlIG1lbnRpb25lZCBwZW5hbHR5IGJpYXNlcyBhbGwK KysjIHJlc3VsdHMgYnkgc2FtZSBjb25zdGFudCB2YWx1ZS4gSW4gc2ltaWxhciB3YXkgZnVuY3Rp b24gY2FsbAorKyMgb3ZlcmhlYWQgYWZmZWN0cyBzbWFsbC1ibG9jayBwZXJmb3JtYW5jZSwgYXMg d2VsbCBhcyBPRkIgYW5kIENGQgorKyMgcmVzdWx0cy4gRGlmZmVyZW5jZXMgYXJlIG5vdCBsYXJn ZSwgbW9zdCBjb21tb24gY29lZmZpY2llbnRzIGFyZQorKyMgMTAvMTEuNyBhbmQgMTAvMTMuNCAo YXMgb3Bwb3NpdGUgdG8gMTAvMTIuMCBhbmQgMTAvMTQuMCksIGJ1dCBvbmUKKysjIG9ic2VydmUg ZXZlbiAxMC8xMS4yIGFuZCAxMC8xMi40IChDVFIsIE9GQiwgQ0ZCKS4uLgorKworKyMgSmFudWFy eSAyMDExCisrIworKyMgV2hpbGUgV2VzdG1lcmUgcHJvY2Vzc29yIGZlYXR1cmVzIDYgY3ljbGVz IGxhdGVuY3kgZm9yIGFlc1tlbmN8ZGVjXQorKyMgaW5zdHJ1Y3Rpb25zLCB3aGljaCBjYW4gYmUg c2NoZWR1bGVkIGV2ZXJ5IHNlY29uZCBjeWNsZSwgU2FuZHkKKysjIEJyaWRnZSBzcGVuZHMgOCBj eWNsZXMgcGVyIGluc3RydWN0aW9uLCBidXQgaXQgY2FuIHNjaGVkdWxlIHRoZW0KKysjIGV2ZXJ5 IGN5Y2xlLiBUaGlzIG1lYW5zIHRoYXQgY29kZSB0YXJnZXRpbmcgV2VzdG1lcmUgd291bGQgcGVy Zm9ybQorKyMgc3Vib3B0aW1hbGx5IG9uIFNhbmR5IEJyaWRnZS4gVGhlcmVmb3JlIHRoaXMgdXBk YXRlLgorKyMKKysjIEluIGFkZGl0aW9uLCBub24tcGFyYWxsZWxpemFibGUgQ0JDIGVuY3J5cHQg KGFzIHdlbGwgYXMgQ0NNKSBpcworKyMgb3B0aW1pemVkLiBSZWxhdGl2ZSBpbXByb3ZlbWVudCBt aWdodCBhcHBlYXIgbW9kZXN0LCA4JSBvbiBXZXN0bWVyZSwKKysjIGJ1dCBpbiBhYnNvbHV0ZSB0 ZXJtcyBpdCdzIDMuNzcgY3ljbGVzIHBlciBieXRlIGVuY3J5cHRlZCB3aXRoCisrIyAxMjgtYml0 IGtleSBvbiBXZXN0bWVyZSwgYW5kIDUuMDcgLSBvbiBTYW5keSBCcmlkZ2UuIFRoZXNlIG51bWJl cnMKKysjIHNob3VsZCBiZSBjb21wYXJlZCB0byBhc3ltcHRvdGljIGxpbWl0cyBvZiAzLjc1IGZv ciBXZXN0bWVyZSBhbmQKKysjIDUuMDAgZm9yIFNhbmR5IEJyaWRnZS4gQWN0dWFsbHksIHRoZSBm YWN0IHRoYXQgdGhleSBnZXQgdGhpcyBjbG9zZQorKyMgdG8gYXN5bXB0b3RpYyBsaW1pdHMgaXMg cXVpdGUgYW1hemluZy4gSW5kZWVkLCB0aGUgbGltaXQgaXMKKysjIGNhbGN1bGF0ZWQgYXMgbGF0 ZW5jeSB0aW1lcyBudW1iZXIgb2Ygcm91bmRzLCAxMCBmb3IgMTI4LWJpdCBrZXksCisrIyBhbmQg ZGl2aWRlZCBieSAxNiwgdGhlIG51bWJlciBvZiBieXRlcyBpbiBibG9jaywgb3IgaW4gb3RoZXIg d29yZHMKKysjIGl0IGFjY291bnRzICpzb2xlbHkqIGZvciBhZXNlbmMgaW5zdHJ1Y3Rpb25zLiBC dXQgdGhlcmUgYXJlIGV4dHJhCisrIyBpbnN0cnVjdGlvbnMsIGFuZCBudW1iZXJzIHNvIGNsb3Nl IHRvIHRoZSBhc3ltcHRvdGljIGxpbWl0cyBtZWFuCisrIyB0aGF0IGl0J3MgYXMgaWYgaXQgdGFr ZXMgYXMgbGl0dGxlIGFzICpvbmUqIGFkZGl0aW9uYWwgY3ljbGUgdG8KKysjIGV4ZWN1dGUgYWxs IG9mIHRoZW0uIEhvdyBpcyBpdCBwb3NzaWJsZT8gSXQgaXMgcG9zc2libGUgdGhhbmtzIHRvCisr IyBvdXQtb2Ytb3JkZXIgZXhlY3V0aW9uIGxvZ2ljLCB3aGljaCBtYW5hZ2VzIHRvIG92ZXJsYXAg cG9zdC0KKysjIHByb2Nlc3Npbmcgb2YgcHJldmlvdXMgYmxvY2ssIHRoaW5ncyBsaWtlIHNhdmlu ZyB0aGUgb3V0cHV0LCB3aXRoCisrIyBhY3R1YWwgZW5jcnlwdGlvbiBvZiBjdXJyZW50IGJsb2Nr LCBhcyB3ZWxsIGFzIHByZS1wcm9jZXNzaW5nIG9mCisrIyBjdXJyZW50IGJsb2NrLCB0aGluZ3Mg bGlrZSBmZXRjaGluZyBpbnB1dCBhbmQgeG9yLWluZyBpdCB3aXRoCisrIyAwLXJvdW5kIGVsZW1l bnQgb2YgdGhlIGtleSBzY2hlZHVsZSwgd2l0aCBhY3R1YWwgZW5jcnlwdGlvbiBvZgorKyMgcHJl dmlvdXMgYmxvY2suIEtlZXAgdGhpcyBpbiBtaW5kLi4uCisrIworKyMgRm9yIHBhcmFsbGVsaXph YmxlIG1vZGVzLCBzdWNoIGFzIEVDQiwgQ0JDIGRlY3J5cHQsIENUUiwgaGlnaGVyCisrIyBwZXJm b3JtYW5jZSBpcyBhY2hpZXZlZCBieSBpbnRlcmxlYXZpbmcgaW5zdHJ1Y3Rpb25zIHdvcmtpbmcg b24KKysjIGluZGVwZW5kZW50IGJsb2Nrcy4gSW4gd2hpY2ggY2FzZSBhc3ltcHRvdGljIGxpbWl0 IGZvciBzdWNoIG1vZGVzCisrIyBjYW4gYmUgb2J0YWluZWQgYnkgZGl2aWRpbmcgYWJvdmUgbWVu dGlvbmVkIG51bWJlcnMgYnkgQUVTCisrIyBpbnN0cnVjdGlvbnMnIGludGVybGVhdmUgZmFjdG9y LiBXZXN0bWVyZSBjYW4gZXhlY3V0ZSBhdCBtb3N0IDMgCisrIyBpbnN0cnVjdGlvbnMgYXQgYSB0 aW1lLCBtZWFuaW5nIHRoYXQgb3B0aW1hbCBpbnRlcmxlYXZlIGZhY3RvciBpcyAzLAorKyMgYW5k IHRoYXQncyB3aGVyZSB0aGUgIm1hZ2ljIiBudW1iZXIgb2YgMS4yNSBjb21lIGZyb20uICJPcHRp bWFsCisrIyBpbnRlcmxlYXZlIGZhY3RvciIgbWVhbnMgdGhhdCBpbmNyZWFzZSBvZiBpbnRlcmxl YXZlIGZhY3RvciBkb2VzCisrIyBub3QgaW1wcm92ZSBwZXJmb3JtYW5jZS4gVGhlIGZvcm11bGEg aGFzIHByb3ZlbiB0byByZWZsZWN0IHJlYWxpdHkKKysjIHByZXR0eSB3ZWxsIG9uIFdlc3RtZXJl Li4uIFNhbmR5IEJyaWRnZSBvbiB0aGUgb3RoZXIgaGFuZCBjYW4KKysjIGV4ZWN1dGUgdXAgdG8g OCBBRVMgaW5zdHJ1Y3Rpb25zIGF0IGEgdGltZSwgc28gaG93IGRvZXMgdmFyeWluZworKyMgaW50 ZXJsZWF2ZSBmYWN0b3IgYWZmZWN0IHRoZSBwZXJmb3JtYW5jZT8gSGVyZSBpcyB0YWJsZSBmb3Ig RUNCCisrIyAobnVtYmVycyBhcmUgY3ljbGVzIHBlciBieXRlIHByb2Nlc3NlZCB3aXRoIDEyOC1i aXQga2V5KToKKysjCisrIyBpbnN0cnVjdGlvbiBpbnRlcmxlYXZlIGZhY3RvcgkJM3gJNngJOHgK KysjIHRoZW9yZXRpY2FsIGFzeW1wdG90aWMgbGltaXQJCTEuNjcJMC44MwkwLjYyNQorKyMgbWVh c3VyZWQgcGVyZm9ybWFuY2UgZm9yIDhLQiBibG9jawkxLjA1CTAuODYJMC44NAorKyMKKysjICJh cyBpZiIgaW50ZXJsZWF2ZSBmYWN0b3IJCTQuN3gJNS44eAk2LjB4CisrIworKyMgRnVydGhlciBk YXRhIGZvciBvdGhlciBwYXJhbGxlbGl6YWJsZSBtb2RlczoKKysjCisrIyBDQkMgZGVjcnlwdAkJ CQkxLjE2CTAuOTMJMC45MworKyMgQ1RSCQkJCQkxLjE0CTAuOTEJbi9hCisrIworKyMgV2VsbCwg Z2l2ZW4gM3ggY29sdW1uIGl0J3MgcHJvYmFibHkgaW5hcHByb3ByaWF0ZSB0byBjYWxsIHRoZSBs aW1pdAorKyMgYXN5bXB0b3RpYywgaWYgaXQgY2FuIGJlIHN1cnBhc3NlZCwgaXNuJ3QgaXQ/IFdo YXQgaGFwcGVucyB0aGVyZT8KKysjIFJld2luZCB0byBDQkMgcGFyYWdyYXBoIGZvciB0aGUgYW5z d2VyLiBZZXMsIG91dC1vZi1vcmRlciBleGVjdXRpb24KKysjIG1hZ2ljIGlzIHJlc3BvbnNpYmxl IGZvciB0aGlzLiBQcm9jZXNzb3Igb3ZlcmxhcHMgbm90IG9ubHkgdGhlCisrIyBhZGRpdGlvbmFs IGluc3RydWN0aW9ucyB3aXRoIEFFUyBvbmVzLCBidXQgZXZlbiBBRVMgaW5zdHVjdGlvbnMKKysj IHByb2Nlc3NpbmcgYWRqYWNlbnQgdHJpcGxldHMgb2YgaW5kZXBlbmRlbnQgYmxvY2tzLiBJbiB0 aGUgNnggY2FzZQorKyMgYWRkaXRpb25hbCBpbnN0cnVjdGlvbnMgIHN0aWxsIGNsYWltIGRpc3By b3BvcnRpb25hbGx5IHNtYWxsIGFtb3VudAorKyMgb2YgYWRkaXRpb25hbCBjeWNsZXMsIGJ1dCBp biA4eCBjYXNlIG51bWJlciBvZiBpbnN0cnVjdGlvbnMgbXVzdCBiZQorKyMgYSB0YWQgdG9vIGhp Z2ggZm9yIG91dC1vZi1vcmRlciBsb2dpYyB0byBjb3BlIHdpdGgsIGFuZCBBRVMgdW5pdAorKyMg cmVtYWlucyB1bmRlcnV0aWxpemVkLi4uIEFzIHlvdSBjYW4gc2VlIDh4IGludGVybGVhdmUgaXMg aGFyZGx5CisrIyBqdXN0aWZpYWJsZSwgc28gdGhlcmUgbm8gbmVlZCB0byBmZWVsIGJhZCB0aGF0 IDMyLWJpdCBhZXNuaS14ODYucGwKKysjIHV0aWxpemllcyA2eCBpbnRlcmxlYXZlIGJlY2F1c2Ug b2YgbGltaXRlZCByZWdpc3RlciBiYW5rIGNhcGFjaXR5LgorKyMKKysjIEhpZ2hlciBpbnRlcmxl YXZlIGZhY3RvcnMgZG8gaGF2ZSBuZWdhdGl2ZSBpbXBhY3Qgb24gV2VzdG1lcmUKKysjIHBlcmZv cm1hbmNlLiBXaGlsZSBmb3IgRUNCIG1vZGUgaXQncyBuZWdsaWdpYmxlIH4xLjUlLCBvdGhlcgor KyMgcGFyYWxsZWxpemFibGVzIHBlcmZvcm0gfjUlIHdvcnNlLCB3aGljaCBpcyBvdXR3ZWlnaGVk IGJ5IH4yNSUKKysjIGltcHJvdmVtZW50IG9uIFNhbmR5IEJyaWRnZS4gVG8gYmFsYW5jZSByZWdy ZXNzaW9uIG9uIFdlc3RtZXJlCisrIyBDVFIgbW9kZSB3YXMgaW1wbGVtZW50ZWQgd2l0aCA2eCBh ZXNlbmMgaW50ZXJsZWF2ZSBmYWN0b3IuCisgCisgJFBSRUZJWD0iYWVzbmkiOwkjIGlmICRQUkVG SVggaXMgc2V0IHRvICJBRVMiLCB0aGUgc2NyaXB0CisgCQkJIyBnZW5lcmF0ZXMgZHJvcC1pbiBy ZXBsYWNlbWVudCBmb3IKK0BAIC0yOSw3ICsxNjgsNyBAQCBkaWUgImNhbid0IGxvY2F0ZSB4ODZf NjQteGxhdGUucGwiOworIAorIG9wZW4gU1RET1VULCJ8ICReWCAkeGxhdGUgJGZsYXZvdXIgJG91 dHB1dCI7CisgCistJG1vdmtleSA9ICRQUkVGSVggZXEgImFlc25pIiA/ICJtb3ZhcHMiIDogIm1v dnVwcyI7CisrJG1vdmtleSA9ICRQUkVGSVggZXEgImFlc25pIiA/ICJtb3Z1cHMiIDogIm1vdnVw cyI7CisgQF80YXJncz0kd2luNjQ/CSgiJXJjeCIsIiVyZHgiLCIlcjgiLCAiJXI5IikgOgkjIFdp bjY0IG9yZGVyCisgCQkoIiVyZGkiLCIlcnNpIiwiJXJkeCIsIiVyY3giKTsJIyBVbml4IG9yZGVy CisgCitAQCAtNDEsMTggKzE4MCwyMCBAQCAkaW5wPSIlcmRpIjsKKyAkb3V0PSIlcnNpIjsKKyAk bGVuPSIlcmR4IjsKKyAka2V5PSIlcmN4IjsJIyBpbnB1dCB0byBhbmQgY2hhbmdlZCBieSBhZXNu aV9bZW58ZGVdY3J5cHROICEhIQorLSRpdnA9IiVyOCI7CSMgY2JjCisrJGl2cD0iJXI4IjsJIyBj YmMsIGN0ciwgLi4uCisgCisgJHJuZHNfPSIlcjEwZCI7CSMgYmFja3VwIGNvcHkgZm9yICRyb3Vu ZHMKKyAka2V5Xz0iJXIxMSI7CSMgYmFja3VwIGNvcHkgZm9yICRrZXkKKyAKKyAjICV4bW0gcmVn aXN0ZXIgbGF5b3V0CistJGlub3V0MD0iJXhtbTAiOwkkaW5vdXQxPSIleG1tMSI7CistJGlub3V0 Mj0iJXhtbTIiOwkkaW5vdXQzPSIleG1tMyI7CistJHJuZGtleTA9IiV4bW00IjsJJHJuZGtleTE9 IiV4bW01IjsKKyskcm5ka2V5MD0iJXhtbTAiOwkkcm5ka2V5MT0iJXhtbTEiOworKyRpbm91dDA9 IiV4bW0yIjsJJGlub3V0MT0iJXhtbTMiOworKyRpbm91dDI9IiV4bW00IjsJJGlub3V0Mz0iJXht bTUiOworKyRpbm91dDQ9IiV4bW02IjsJJGlub3V0NT0iJXhtbTciOworKyRpbm91dDY9IiV4bW04 IjsJJGlub3V0Nz0iJXhtbTkiOworIAorLSRpdj0iJXhtbTYiOwkJJGluMD0iJXhtbTciOwkjIHVz ZWQgaW4gQ0JDIGRlY3J5cHQKKy0kaW4xPSIleG1tOCI7CQkkaW4yPSIleG1tOSI7CisrJGluMj0i JXhtbTYiOwkJJGluMT0iJXhtbTciOwkjIHVzZWQgaW4gQ0JDIGRlY3J5cHQsIENUUiwgLi4uCisr JGluMD0iJXhtbTgiOwkJJGl2PSIleG1tOSI7CisgDAorICMgSW5saW5lIHZlcnNpb24gb2YgaW50 ZXJuYWwgYWVzbmlfW2VufGRlXWNyeXB0MS4KKyAjCitAQCAtNjAsMjAgKzIwMSwyOSBAQCAkaW4x PSIleG1tOCI7CQkkaW4yPSIleG1tOSI7CisgIyBjeWNsZXMgd2hpY2ggdGFrZSBjYXJlIG9mIGxv b3AgdmFyaWFibGVzLi4uCisgeyBteSAkc247Cisgc3ViIGFlc25pX2dlbmVyYXRlMSB7CistbXkg KCRwLCRrZXksJHJvdW5kcyk9QF87CisrbXkgKCRwLCRrZXksJHJvdW5kcywkaW5vdXQsJGl2ZWMp PUBfOwkkaW5vdXQ9JGlub3V0MCBpZiAoIWRlZmluZWQoJGlub3V0KSk7CisgKyskc247CisgJGNv ZGUuPTw8X19fOworIAkkbW92a2V5CSgka2V5KSwkcm5ka2V5MAorIAkkbW92a2V5CTE2KCRrZXkp LCRybmRrZXkxCisrX19fCisrJGNvZGUuPTw8X19fIGlmIChkZWZpbmVkKCRpdmVjKSk7CisrCXhv cnBzCSRybmRrZXkwLCRpdmVjCisgCWxlYQkzMigka2V5KSwka2V5CistCXB4b3IJJHJuZGtleTAs JGlub3V0MAorKwl4b3JwcwkkaXZlYywkaW5vdXQKKytfX18KKyskY29kZS49PDxfX18gaWYgKCFk ZWZpbmVkKCRpdmVjKSk7CisrCWxlYQkzMigka2V5KSwka2V5CisrCXhvcnBzCSRybmRrZXkwLCRp bm91dAorK19fXworKyRjb2RlLj08PF9fXzsKKyAuTG9vcF8ke3B9MV8kc246CistCWFlcyR7cH0J JHJuZGtleTEsJGlub3V0MAorKwlhZXMke3B9CSRybmRrZXkxLCRpbm91dAorIAlkZWMJJHJvdW5k cworIAkkbW92a2V5CSgka2V5KSwkcm5ka2V5MQorIAlsZWEJMTYoJGtleSksJGtleQorIAlqbnoJ Lkxvb3BfJHtwfTFfJHNuCSMgbG9vcCBib2R5IGlzIDE2IGJ5dGVzCistCWFlcyR7cH1sYXN0CSRy bmRrZXkxLCRpbm91dDAKKysJYWVzJHtwfWxhc3QJJHJuZGtleTEsJGlub3V0CisgX19fCisgfX0K KyAjIHZvaWQgJFBSRUZJWF9bZW58ZGVdY3J5cHQgKGNvbnN0IHZvaWQgKmlucCx2b2lkICpvdXQs Y29uc3QgQUVTX0tFWSAqa2V5KTsKK0BAIC04Niw3ICsyMzYsNyBAQCAkY29kZS49PDxfX187Cisg LmFsaWduCTE2CisgJHtQUkVGSVh9X2VuY3J5cHQ6CisgCW1vdnVwcwkoJGlucCksJGlub3V0MAkJ IyBsb2FkIGlucHV0CistCW1vdgkyNDAoJGtleSksJHJvdW5kcwkjIHB1bGwgJHJvdW5kcworKwlt b3YJMjQwKCRrZXkpLCRyb3VuZHMJIyBrZXktPnJvdW5kcworIF9fXworIAkmYWVzbmlfZ2VuZXJh dGUxKCJlbmMiLCRrZXksJHJvdW5kcyk7CisgJGNvZGUuPTw8X19fOworQEAgLTk5LDcgKzI0OSw3 IEBAICRjb2RlLj08PF9fXzsKKyAuYWxpZ24JMTYKKyAke1BSRUZJWH1fZGVjcnlwdDoKKyAJbW92 dXBzCSgkaW5wKSwkaW5vdXQwCQkjIGxvYWQgaW5wdXQKKy0JbW92CTI0MCgka2V5KSwkcm91bmRz CSMgcHVsbCAkcm91bmRzCisrCW1vdgkyNDAoJGtleSksJHJvdW5kcwkjIGtleS0+cm91bmRzCisg X19fCisgCSZhZXNuaV9nZW5lcmF0ZTEoImRlYyIsJGtleSwkcm91bmRzKTsKKyAkY29kZS49PDxf X187CitAQCAtMTA5LDE2ICsyNTksMTYgQEAgJGNvZGUuPTw8X19fOworIF9fXworIH0KKyAMCist IyBfYWVzbmlfW2VufGRlXWNyeXB0WzM0XSBhcmUgcHJpdmF0ZSBpbnRlcmZhY2VzLCBOIGRlbm90 ZXMgaW50ZXJsZWF2ZQorLSMgZmFjdG9yLiBXaHkgM3ggc3Vicm91dGluZSBpcyB1c2VkIGluIGxv b3BzPyBFdmVuIHRob3VnaCBhZXNbZW5jfGRlY10KKy0jIGxhdGVuY3kgaXMgNiwgaXQgdHVybmVk IG91dCB0aGF0IGl0IGNhbiBiZSBzY2hlZHVsZWQgb25seSBldmVyeQorLSMgKnNlY29uZCogY3lj bGUuIFRodXMgM3ggaW50ZXJsZWF2ZSBpcyB0aGUgb25lIHByb3ZpZGluZyBvcHRpbWFsCisrIyBf YWVzbmlfW2VufGRlXWNyeXB0TiBhcmUgcHJpdmF0ZSBpbnRlcmZhY2VzLCBOIGRlbm90ZXMgaW50 ZXJsZWF2ZQorKyMgZmFjdG9yLiBXaHkgM3ggc3Vicm91dGluZSB3ZXJlIG9yaWdpbmFsbHkgdXNl ZCBpbiBsb29wcz8gRXZlbiB0aG91Z2gKKysjIGFlc1tlbmN8ZGVjXSBsYXRlbmN5IHdhcyBvcmln aW5hbGx5IDYsIGl0IGNvdWxkIGJlIHNjaGVkdWxlZCBvbmx5CisrIyBldmVyeSAqMm5kKiBjeWNs ZS4gVGh1cyAzeCBpbnRlcmxlYXZlIHdhcyB0aGUgb25lIHByb3ZpZGluZyBvcHRpbWFsCisgIyB1 dGlsaXphdGlvbiwgaS5lLiB3aGVuIHN1YnJvdXRpbmUncyB0aHJvdWdocHV0IGlzIHZpcnR1YWxs eSBzYW1lIGFzCisgIyBvZiBub24taW50ZXJsZWF2ZWQgc3Vicm91dGluZSBbZm9yIG51bWJlciBv ZiBpbnB1dCBibG9ja3MgdXAgdG8gM10uCistIyBUaGlzIGlzIHdoeSBpdCBtYWtlcyBubyBzZW5z ZSB0byBpbXBsZW1lbnQgMnggc3Vicm91dGluZS4gQXMgc29vbgorLSMgYXMvaWYgSW50ZWwgaW1w cm92ZXMgdGhyb3VnaHB1dCBieSBtYWtpbmcgaXQgcG9zc2libGUgdG8gc2NoZWR1bGUKKy0jIHRo ZSBpbnN0cnVjdGlvbnMgaW4gcXVlc3Rpb24gKmV2ZXJ5KiBjeWNsZXMgSSB3b3VsZCBoYXZlIHRv CistIyBpbXBsZW1lbnQgNnggaW50ZXJsZWF2ZSBhbmQgdXNlIGl0IGluIGxvb3AuLi4KKysjIFRo aXMgaXMgd2h5IGl0IG1ha2VzIG5vIHNlbnNlIHRvIGltcGxlbWVudCAyeCBzdWJyb3V0aW5lLgor KyMgYWVzW2VuY3xkZWNdIGxhdGVuY3kgaW4gbmV4dCBwcm9jZXNzb3IgZ2VuZXJhdGlvbiBpcyA4 LCBidXQgdGhlCisrIyBpbnN0cnVjdGlvbnMgY2FuIGJlIHNjaGVkdWxlZCBldmVyeSBjeWNsZS4g T3B0aW1hbCBpbnRlcmxlYXZlIGZvcgorKyMgbmV3IHByb2Nlc3NvciBpcyB0aGVyZWZvcmUgOHgu Li4KKyBzdWIgYWVzbmlfZ2VuZXJhdGUzIHsKKyBteSAkZGlyPXNoaWZ0OworICMgQXMgYWxyZWFk eSBtZW50aW9uZWQgaXQgdGFrZXMgaW4gJGtleSBhbmQgJHJvdW5kcywgd2hpY2ggYXJlICpub3Qq CitAQCAtMTMxLDI1ICsyODEsMjUgQEAgX2Flc25pXyR7ZGlyfXJ5cHQzOgorIAlzaHIJXCQxLCRy b3VuZHMKKyAJJG1vdmtleQkxNigka2V5KSwkcm5ka2V5MQorIAlsZWEJMzIoJGtleSksJGtleQor LQlweG9yCSRybmRrZXkwLCRpbm91dDAKKy0JcHhvcgkkcm5ka2V5MCwkaW5vdXQxCistCXB4b3IJ JHJuZGtleTAsJGlub3V0MgorKwl4b3Jwcwkkcm5ka2V5MCwkaW5vdXQwCisrCXhvcnBzCSRybmRr ZXkwLCRpbm91dDEKKysJeG9ycHMJJHJuZGtleTAsJGlub3V0MgorKwkkbW92a2V5CQkoJGtleSks JHJuZGtleTAKKyAKKyAuTCR7ZGlyfV9sb29wMzoKKyAJYWVzJHtkaXJ9CSRybmRrZXkxLCRpbm91 dDAKKy0JJG1vdmtleQkJKCRrZXkpLCRybmRrZXkwCisgCWFlcyR7ZGlyfQkkcm5ka2V5MSwkaW5v dXQxCisgCWRlYwkJJHJvdW5kcworIAlhZXMke2Rpcn0JJHJuZGtleTEsJGlub3V0MgorLQlhZXMk e2Rpcn0JJHJuZGtleTAsJGlub3V0MAorIAkkbW92a2V5CQkxNigka2V5KSwkcm5ka2V5MQorKwlh ZXMke2Rpcn0JJHJuZGtleTAsJGlub3V0MAorIAlhZXMke2Rpcn0JJHJuZGtleTAsJGlub3V0MQor IAlsZWEJCTMyKCRrZXkpLCRrZXkKKyAJYWVzJHtkaXJ9CSRybmRrZXkwLCRpbm91dDIKKysJJG1v dmtleQkJKCRrZXkpLCRybmRrZXkwCisgCWpuegkJLkwke2Rpcn1fbG9vcDMKKyAKKyAJYWVzJHtk aXJ9CSRybmRrZXkxLCRpbm91dDAKKy0JJG1vdmtleQkJKCRrZXkpLCRybmRrZXkwCisgCWFlcyR7 ZGlyfQkkcm5ka2V5MSwkaW5vdXQxCisgCWFlcyR7ZGlyfQkkcm5ka2V5MSwkaW5vdXQyCisgCWFl cyR7ZGlyfWxhc3QJJHJuZGtleTAsJGlub3V0MAorQEAgLTE3NSwyOCArMzI1LDI4IEBAIF9hZXNu aV8ke2Rpcn1yeXB0NDoKKyAJc2hyCVwkMSwkcm91bmRzCisgCSRtb3ZrZXkJMTYoJGtleSksJHJu ZGtleTEKKyAJbGVhCTMyKCRrZXkpLCRrZXkKKy0JcHhvcgkkcm5ka2V5MCwkaW5vdXQwCistCXB4 b3IJJHJuZGtleTAsJGlub3V0MQorLQlweG9yCSRybmRrZXkwLCRpbm91dDIKKy0JcHhvcgkkcm5k a2V5MCwkaW5vdXQzCisrCXhvcnBzCSRybmRrZXkwLCRpbm91dDAKKysJeG9ycHMJJHJuZGtleTAs JGlub3V0MQorKwl4b3Jwcwkkcm5ka2V5MCwkaW5vdXQyCisrCXhvcnBzCSRybmRrZXkwLCRpbm91 dDMKKysJJG1vdmtleQkoJGtleSksJHJuZGtleTAKKyAKKyAuTCR7ZGlyfV9sb29wNDoKKyAJYWVz JHtkaXJ9CSRybmRrZXkxLCRpbm91dDAKKy0JJG1vdmtleQkJKCRrZXkpLCRybmRrZXkwCisgCWFl cyR7ZGlyfQkkcm5ka2V5MSwkaW5vdXQxCisgCWRlYwkJJHJvdW5kcworIAlhZXMke2Rpcn0JJHJu ZGtleTEsJGlub3V0MgorIAlhZXMke2Rpcn0JJHJuZGtleTEsJGlub3V0MworLQlhZXMke2Rpcn0J JHJuZGtleTAsJGlub3V0MAorIAkkbW92a2V5CQkxNigka2V5KSwkcm5ka2V5MQorKwlhZXMke2Rp cn0JJHJuZGtleTAsJGlub3V0MAorIAlhZXMke2Rpcn0JJHJuZGtleTAsJGlub3V0MQorIAlsZWEJ CTMyKCRrZXkpLCRrZXkKKyAJYWVzJHtkaXJ9CSRybmRrZXkwLCRpbm91dDIKKyAJYWVzJHtkaXJ9 CSRybmRrZXkwLCRpbm91dDMKKysJJG1vdmtleQkJKCRrZXkpLCRybmRrZXkwCisgCWpuegkJLkwk e2Rpcn1fbG9vcDQKKyAKKyAJYWVzJHtkaXJ9CSRybmRrZXkxLCRpbm91dDAKKy0JJG1vdmtleQkJ KCRrZXkpLCRybmRrZXkwCisgCWFlcyR7ZGlyfQkkcm5ka2V5MSwkaW5vdXQxCisgCWFlcyR7ZGly fQkkcm5ka2V5MSwkaW5vdXQyCisgCWFlcyR7ZGlyfQkkcm5ka2V5MSwkaW5vdXQzCitAQCAtMjA4 LDEyICszNTgsMTU4IEBAIF9hZXNuaV8ke2Rpcn1yeXB0NDoKKyAuc2l6ZQlfYWVzbmlfJHtkaXJ9 cnlwdDQsLi1fYWVzbmlfJHtkaXJ9cnlwdDQKKyBfX18KKyB9Cisrc3ViIGFlc25pX2dlbmVyYXRl NiB7CisrbXkgJGRpcj1zaGlmdDsKKysjIEFzIGFscmVhZHkgbWVudGlvbmVkIGl0IHRha2VzIGlu ICRrZXkgYW5kICRyb3VuZHMsIHdoaWNoIGFyZSAqbm90KgorKyMgcHJlc2VydmVkLiAkaW5vdXRb MC01XSBpcyBjaXBoZXIvY2xlYXIgdGV4dC4uLgorKyRjb2RlLj08PF9fXzsKKysudHlwZQlfYWVz bmlfJHtkaXJ9cnlwdDYsXEBhYmktb21uaXBvdGVudAorKy5hbGlnbgkxNgorK19hZXNuaV8ke2Rp cn1yeXB0NjoKKysJJG1vdmtleQkJKCRrZXkpLCRybmRrZXkwCisrCXNocgkJXCQxLCRyb3VuZHMK KysJJG1vdmtleQkJMTYoJGtleSksJHJuZGtleTEKKysJbGVhCQkzMigka2V5KSwka2V5CisrCXhv cnBzCQkkcm5ka2V5MCwkaW5vdXQwCisrCXB4b3IJCSRybmRrZXkwLCRpbm91dDEKKysJYWVzJHtk aXJ9CSRybmRrZXkxLCRpbm91dDAKKysJcHhvcgkJJHJuZGtleTAsJGlub3V0MgorKwlhZXMke2Rp cn0JJHJuZGtleTEsJGlub3V0MQorKwlweG9yCQkkcm5ka2V5MCwkaW5vdXQzCisrCWFlcyR7ZGly fQkkcm5ka2V5MSwkaW5vdXQyCisrCXB4b3IJCSRybmRrZXkwLCRpbm91dDQKKysJYWVzJHtkaXJ9 CSRybmRrZXkxLCRpbm91dDMKKysJcHhvcgkJJHJuZGtleTAsJGlub3V0NQorKwlkZWMJCSRyb3Vu ZHMKKysJYWVzJHtkaXJ9CSRybmRrZXkxLCRpbm91dDQKKysJJG1vdmtleQkJKCRrZXkpLCRybmRr ZXkwCisrCWFlcyR7ZGlyfQkkcm5ka2V5MSwkaW5vdXQ1CisrCWptcAkJLkwke2Rpcn1fbG9vcDZf ZW50ZXIKKysuYWxpZ24JMTYKKysuTCR7ZGlyfV9sb29wNjoKKysJYWVzJHtkaXJ9CSRybmRrZXkx LCRpbm91dDAKKysJYWVzJHtkaXJ9CSRybmRrZXkxLCRpbm91dDEKKysJZGVjCQkkcm91bmRzCisr CWFlcyR7ZGlyfQkkcm5ka2V5MSwkaW5vdXQyCisrCWFlcyR7ZGlyfQkkcm5ka2V5MSwkaW5vdXQz CisrCWFlcyR7ZGlyfQkkcm5ka2V5MSwkaW5vdXQ0CisrCWFlcyR7ZGlyfQkkcm5ka2V5MSwkaW5v dXQ1CisrLkwke2Rpcn1fbG9vcDZfZW50ZXI6CQkJCSMgaGFwcGVucyB0byBiZSAxNi1ieXRlIGFs aWduZWQKKysJJG1vdmtleQkJMTYoJGtleSksJHJuZGtleTEKKysJYWVzJHtkaXJ9CSRybmRrZXkw LCRpbm91dDAKKysJYWVzJHtkaXJ9CSRybmRrZXkwLCRpbm91dDEKKysJbGVhCQkzMigka2V5KSwk a2V5CisrCWFlcyR7ZGlyfQkkcm5ka2V5MCwkaW5vdXQyCisrCWFlcyR7ZGlyfQkkcm5ka2V5MCwk aW5vdXQzCisrCWFlcyR7ZGlyfQkkcm5ka2V5MCwkaW5vdXQ0CisrCWFlcyR7ZGlyfQkkcm5ka2V5 MCwkaW5vdXQ1CisrCSRtb3ZrZXkJCSgka2V5KSwkcm5ka2V5MAorKwlqbnoJCS5MJHtkaXJ9X2xv b3A2CisrCisrCWFlcyR7ZGlyfQkkcm5ka2V5MSwkaW5vdXQwCisrCWFlcyR7ZGlyfQkkcm5ka2V5 MSwkaW5vdXQxCisrCWFlcyR7ZGlyfQkkcm5ka2V5MSwkaW5vdXQyCisrCWFlcyR7ZGlyfQkkcm5k a2V5MSwkaW5vdXQzCisrCWFlcyR7ZGlyfQkkcm5ka2V5MSwkaW5vdXQ0CisrCWFlcyR7ZGlyfQkk cm5ka2V5MSwkaW5vdXQ1CisrCWFlcyR7ZGlyfWxhc3QJJHJuZGtleTAsJGlub3V0MAorKwlhZXMk e2Rpcn1sYXN0CSRybmRrZXkwLCRpbm91dDEKKysJYWVzJHtkaXJ9bGFzdAkkcm5ka2V5MCwkaW5v dXQyCisrCWFlcyR7ZGlyfWxhc3QJJHJuZGtleTAsJGlub3V0MworKwlhZXMke2Rpcn1sYXN0CSRy bmRrZXkwLCRpbm91dDQKKysJYWVzJHtkaXJ9bGFzdAkkcm5ka2V5MCwkaW5vdXQ1CisrCXJldAor Ky5zaXplCV9hZXNuaV8ke2Rpcn1yeXB0NiwuLV9hZXNuaV8ke2Rpcn1yeXB0NgorK19fXworK30K KytzdWIgYWVzbmlfZ2VuZXJhdGU4IHsKKytteSAkZGlyPXNoaWZ0OworKyMgQXMgYWxyZWFkeSBt ZW50aW9uZWQgaXQgdGFrZXMgaW4gJGtleSBhbmQgJHJvdW5kcywgd2hpY2ggYXJlICpub3QqCisr IyBwcmVzZXJ2ZWQuICRpbm91dFswLTddIGlzIGNpcGhlci9jbGVhciB0ZXh0Li4uCisrJGNvZGUu PTw8X19fOworKy50eXBlCV9hZXNuaV8ke2Rpcn1yeXB0OCxcQGFiaS1vbW5pcG90ZW50CisrLmFs aWduCTE2CisrX2Flc25pXyR7ZGlyfXJ5cHQ4OgorKwkkbW92a2V5CQkoJGtleSksJHJuZGtleTAK KysJc2hyCQlcJDEsJHJvdW5kcworKwkkbW92a2V5CQkxNigka2V5KSwkcm5ka2V5MQorKwlsZWEJ CTMyKCRrZXkpLCRrZXkKKysJeG9ycHMJCSRybmRrZXkwLCRpbm91dDAKKysJeG9ycHMJCSRybmRr ZXkwLCRpbm91dDEKKysJYWVzJHtkaXJ9CSRybmRrZXkxLCRpbm91dDAKKysJcHhvcgkJJHJuZGtl eTAsJGlub3V0MgorKwlhZXMke2Rpcn0JJHJuZGtleTEsJGlub3V0MQorKwlweG9yCQkkcm5ka2V5 MCwkaW5vdXQzCisrCWFlcyR7ZGlyfQkkcm5ka2V5MSwkaW5vdXQyCisrCXB4b3IJCSRybmRrZXkw LCRpbm91dDQKKysJYWVzJHtkaXJ9CSRybmRrZXkxLCRpbm91dDMKKysJcHhvcgkJJHJuZGtleTAs JGlub3V0NQorKwlkZWMJCSRyb3VuZHMKKysJYWVzJHtkaXJ9CSRybmRrZXkxLCRpbm91dDQKKysJ cHhvcgkJJHJuZGtleTAsJGlub3V0NgorKwlhZXMke2Rpcn0JJHJuZGtleTEsJGlub3V0NQorKwlw eG9yCQkkcm5ka2V5MCwkaW5vdXQ3CisrCSRtb3ZrZXkJCSgka2V5KSwkcm5ka2V5MAorKwlhZXMk e2Rpcn0JJHJuZGtleTEsJGlub3V0NgorKwlhZXMke2Rpcn0JJHJuZGtleTEsJGlub3V0NworKwkk bW92a2V5CQkxNigka2V5KSwkcm5ka2V5MQorKwlqbXAJCS5MJHtkaXJ9X2xvb3A4X2VudGVyCisr LmFsaWduCTE2CisrLkwke2Rpcn1fbG9vcDg6CisrCWFlcyR7ZGlyfQkkcm5ka2V5MSwkaW5vdXQw CisrCWFlcyR7ZGlyfQkkcm5ka2V5MSwkaW5vdXQxCisrCWRlYwkJJHJvdW5kcworKwlhZXMke2Rp cn0JJHJuZGtleTEsJGlub3V0MgorKwlhZXMke2Rpcn0JJHJuZGtleTEsJGlub3V0MworKwlhZXMk e2Rpcn0JJHJuZGtleTEsJGlub3V0NAorKwlhZXMke2Rpcn0JJHJuZGtleTEsJGlub3V0NQorKwlh ZXMke2Rpcn0JJHJuZGtleTEsJGlub3V0NgorKwlhZXMke2Rpcn0JJHJuZGtleTEsJGlub3V0Nwor KwkkbW92a2V5CQkxNigka2V5KSwkcm5ka2V5MQorKy5MJHtkaXJ9X2xvb3A4X2VudGVyOgkJCQkj IGhhcHBlbnMgdG8gYmUgMTYtYnl0ZSBhbGlnbmVkCisrCWFlcyR7ZGlyfQkkcm5ka2V5MCwkaW5v dXQwCisrCWFlcyR7ZGlyfQkkcm5ka2V5MCwkaW5vdXQxCisrCWxlYQkJMzIoJGtleSksJGtleQor KwlhZXMke2Rpcn0JJHJuZGtleTAsJGlub3V0MgorKwlhZXMke2Rpcn0JJHJuZGtleTAsJGlub3V0 MworKwlhZXMke2Rpcn0JJHJuZGtleTAsJGlub3V0NAorKwlhZXMke2Rpcn0JJHJuZGtleTAsJGlu b3V0NQorKwlhZXMke2Rpcn0JJHJuZGtleTAsJGlub3V0NgorKwlhZXMke2Rpcn0JJHJuZGtleTAs JGlub3V0NworKwkkbW92a2V5CQkoJGtleSksJHJuZGtleTAKKysJam56CQkuTCR7ZGlyfV9sb29w OAorKworKwlhZXMke2Rpcn0JJHJuZGtleTEsJGlub3V0MAorKwlhZXMke2Rpcn0JJHJuZGtleTEs JGlub3V0MQorKwlhZXMke2Rpcn0JJHJuZGtleTEsJGlub3V0MgorKwlhZXMke2Rpcn0JJHJuZGtl eTEsJGlub3V0MworKwlhZXMke2Rpcn0JJHJuZGtleTEsJGlub3V0NAorKwlhZXMke2Rpcn0JJHJu ZGtleTEsJGlub3V0NQorKwlhZXMke2Rpcn0JJHJuZGtleTEsJGlub3V0NgorKwlhZXMke2Rpcn0J JHJuZGtleTEsJGlub3V0NworKwlhZXMke2Rpcn1sYXN0CSRybmRrZXkwLCRpbm91dDAKKysJYWVz JHtkaXJ9bGFzdAkkcm5ka2V5MCwkaW5vdXQxCisrCWFlcyR7ZGlyfWxhc3QJJHJuZGtleTAsJGlu b3V0MgorKwlhZXMke2Rpcn1sYXN0CSRybmRrZXkwLCRpbm91dDMKKysJYWVzJHtkaXJ9bGFzdAkk cm5ka2V5MCwkaW5vdXQ0CisrCWFlcyR7ZGlyfWxhc3QJJHJuZGtleTAsJGlub3V0NQorKwlhZXMk e2Rpcn1sYXN0CSRybmRrZXkwLCRpbm91dDYKKysJYWVzJHtkaXJ9bGFzdAkkcm5ka2V5MCwkaW5v dXQ3CisrCXJldAorKy5zaXplCV9hZXNuaV8ke2Rpcn1yeXB0OCwuLV9hZXNuaV8ke2Rpcn1yeXB0 OAorK19fXworK30KKyAmYWVzbmlfZ2VuZXJhdGUzKCJlbmMiKSBpZiAoJFBSRUZJWCBlcSAiYWVz bmkiKTsKKyAmYWVzbmlfZ2VuZXJhdGUzKCJkZWMiKTsKKyAmYWVzbmlfZ2VuZXJhdGU0KCJlbmMi KSBpZiAoJFBSRUZJWCBlcSAiYWVzbmkiKTsKKyAmYWVzbmlfZ2VuZXJhdGU0KCJkZWMiKTsKKysm YWVzbmlfZ2VuZXJhdGU2KCJlbmMiKSBpZiAoJFBSRUZJWCBlcSAiYWVzbmkiKTsKKysmYWVzbmlf Z2VuZXJhdGU2KCJkZWMiKTsKKysmYWVzbmlfZ2VuZXJhdGU4KCJlbmMiKSBpZiAoJFBSRUZJWCBl cSAiYWVzbmkiKTsKKysmYWVzbmlfZ2VuZXJhdGU4KCJkZWMiKTsKKyAMCisgaWYgKCRQUkVGSVgg ZXEgImFlc25pIikgeworKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICMgdm9pZCBhZXNuaV9lY2JfZW5jcnlw dCAoY29uc3Qgdm9pZCAqaW4sIHZvaWQgKm91dCwKKyAjCQkJICBzaXplX3QgbGVuZ3RoLCBjb25z dCBBRVNfS0VZICprZXksCisgIwkJCSAgaW50IGVuYyk7CitAQCAtMjIyLDU0ICs1MTgsOTggQEAg JGNvZGUuPTw8X19fOworIC50eXBlCWFlc25pX2VjYl9lbmNyeXB0LFxAZnVuY3Rpb24sNQorIC5h bGlnbgkxNgorIGFlc25pX2VjYl9lbmNyeXB0OgorLQljbXAJXCQxNiwkbGVuCQkjIGNoZWNrIGxl bmd0aAorLQlqYgkuTGVjYl9yZXQKKy0KKy0JbW92CTI0MCgka2V5KSwkcm91bmRzCSMgcHVsbCAk cm91bmRzCisgCWFuZAlcJC0xNiwkbGVuCisrCWp6CS5MZWNiX3JldAorKworKwltb3YJMjQwKCRr ZXkpLCRyb3VuZHMJIyBrZXktPnJvdW5kcworKwkkbW92a2V5CSgka2V5KSwkcm5ka2V5MAorIAlt b3YJJGtleSwka2V5XwkJIyBiYWNrdXAgJGtleQorLQl0ZXN0CSVyOGQsJXI4ZAkJIyA1dGggYXJn dW1lbnQKKyAJbW92CSRyb3VuZHMsJHJuZHNfCQkjIGJhY2t1cCAkcm91bmRzCisrCXRlc3QJJXI4 ZCwlcjhkCQkjIDV0aCBhcmd1bWVudAorIAlqegkuTGVjYl9kZWNyeXB0CisgIy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSBFQ0IgRU5DUllQVCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0jCistCXN1YglcJDB4NDAsJGxlbgorLQlqYmUJLkxlY2JfZW5jX3RhaWwKKy0Jam1wCS5MZWNi X2VuY19sb29wMworKwljbXAJXCQweDgwLCRsZW4KKysJamIJLkxlY2JfZW5jX3RhaWwKKysKKysJ bW92ZHF1CSgkaW5wKSwkaW5vdXQwCisrCW1vdmRxdQkweDEwKCRpbnApLCRpbm91dDEKKysJbW92 ZHF1CTB4MjAoJGlucCksJGlub3V0MgorKwltb3ZkcXUJMHgzMCgkaW5wKSwkaW5vdXQzCisrCW1v dmRxdQkweDQwKCRpbnApLCRpbm91dDQKKysJbW92ZHF1CTB4NTAoJGlucCksJGlub3V0NQorKwlt b3ZkcXUJMHg2MCgkaW5wKSwkaW5vdXQ2CisrCW1vdmRxdQkweDcwKCRpbnApLCRpbm91dDcKKysJ bGVhCTB4ODAoJGlucCksJGlucAorKwlzdWIJXCQweDgwLCRsZW4KKysJam1wCS5MZWNiX2VuY19s b29wOF9lbnRlcgorIC5hbGlnbiAxNgorLS5MZWNiX2VuY19sb29wMzoKKy0JbW92dXBzCSgkaW5w KSwkaW5vdXQwCistCW1vdnVwcwkweDEwKCRpbnApLCRpbm91dDEKKy0JbW92dXBzCTB4MjAoJGlu cCksJGlub3V0MgorLQljYWxsCV9hZXNuaV9lbmNyeXB0MworLQlzdWIJXCQweDMwLCRsZW4KKy0J bGVhCTB4MzAoJGlucCksJGlucAorLQlsZWEJMHgzMCgkb3V0KSwkb3V0CistCW1vdnVwcwkkaW5v dXQwLC0weDMwKCRvdXQpCistCW1vdgkkcm5kc18sJHJvdW5kcwkJIyByZXN0b3JlICRyb3VuZHMK Ky0JbW92dXBzCSRpbm91dDEsLTB4MjAoJG91dCkKKysuTGVjYl9lbmNfbG9vcDg6CisrCW1vdnVw cwkkaW5vdXQwLCgkb3V0KQorIAltb3YJJGtleV8sJGtleQkJIyByZXN0b3JlICRrZXkKKy0JbW92 dXBzCSRpbm91dDIsLTB4MTAoJG91dCkKKy0JamEJLkxlY2JfZW5jX2xvb3AzCisrCW1vdmRxdQko JGlucCksJGlub3V0MAorKwltb3YJJHJuZHNfLCRyb3VuZHMJCSMgcmVzdG9yZSAkcm91bmRzCisr CW1vdnVwcwkkaW5vdXQxLDB4MTAoJG91dCkKKysJbW92ZHF1CTB4MTAoJGlucCksJGlub3V0MQor Kwltb3Z1cHMJJGlub3V0MiwweDIwKCRvdXQpCisrCW1vdmRxdQkweDIwKCRpbnApLCRpbm91dDIK KysJbW92dXBzCSRpbm91dDMsMHgzMCgkb3V0KQorKwltb3ZkcXUJMHgzMCgkaW5wKSwkaW5vdXQz CisrCW1vdnVwcwkkaW5vdXQ0LDB4NDAoJG91dCkKKysJbW92ZHF1CTB4NDAoJGlucCksJGlub3V0 NAorKwltb3Z1cHMJJGlub3V0NSwweDUwKCRvdXQpCisrCW1vdmRxdQkweDUwKCRpbnApLCRpbm91 dDUKKysJbW92dXBzCSRpbm91dDYsMHg2MCgkb3V0KQorKwltb3ZkcXUJMHg2MCgkaW5wKSwkaW5v dXQ2CisrCW1vdnVwcwkkaW5vdXQ3LDB4NzAoJG91dCkKKysJbGVhCTB4ODAoJG91dCksJG91dAor Kwltb3ZkcXUJMHg3MCgkaW5wKSwkaW5vdXQ3CisrCWxlYQkweDgwKCRpbnApLCRpbnAKKysuTGVj Yl9lbmNfbG9vcDhfZW50ZXI6CisgCistLkxlY2JfZW5jX3RhaWw6CistCWFkZAlcJDB4NDAsJGxl bgorKwljYWxsCV9hZXNuaV9lbmNyeXB0OAorKworKwlzdWIJXCQweDgwLCRsZW4KKysJam5jCS5M ZWNiX2VuY19sb29wOAorKworKwltb3Z1cHMJJGlub3V0MCwoJG91dCkKKysJbW92CSRrZXlfLCRr ZXkJCSMgcmVzdG9yZSAka2V5CisrCW1vdnVwcwkkaW5vdXQxLDB4MTAoJG91dCkKKysJbW92CSRy bmRzXywkcm91bmRzCQkjIHJlc3RvcmUgJHJvdW5kcworKwltb3Z1cHMJJGlub3V0MiwweDIwKCRv dXQpCisrCW1vdnVwcwkkaW5vdXQzLDB4MzAoJG91dCkKKysJbW92dXBzCSRpbm91dDQsMHg0MCgk b3V0KQorKwltb3Z1cHMJJGlub3V0NSwweDUwKCRvdXQpCisrCW1vdnVwcwkkaW5vdXQ2LDB4NjAo JG91dCkKKysJbW92dXBzCSRpbm91dDcsMHg3MCgkb3V0KQorKwlsZWEJMHg4MCgkb3V0KSwkb3V0 CisrCWFkZAlcJDB4ODAsJGxlbgorIAlqegkuTGVjYl9yZXQKKyAKKy0JY21wCVwkMHgxMCwkbGVu CisrLkxlY2JfZW5jX3RhaWw6CisgCW1vdnVwcwkoJGlucCksJGlub3V0MAorLQlqZQkuTGVjYl9l bmNfb25lCisgCWNtcAlcJDB4MjAsJGxlbgorKwlqYgkuTGVjYl9lbmNfb25lCisgCW1vdnVwcwkw eDEwKCRpbnApLCRpbm91dDEKKyAJamUJLkxlY2JfZW5jX3R3bworLQljbXAJXCQweDMwLCRsZW4K KyAJbW92dXBzCTB4MjAoJGlucCksJGlub3V0MgorLQlqZQkuTGVjYl9lbmNfdGhyZWUKKysJY21w CVwkMHg0MCwkbGVuCisrCWpiCS5MZWNiX2VuY190aHJlZQorIAltb3Z1cHMJMHgzMCgkaW5wKSwk aW5vdXQzCistCWNhbGwJX2Flc25pX2VuY3J5cHQ0CisrCWplCS5MZWNiX2VuY19mb3VyCisrCW1v dnVwcwkweDQwKCRpbnApLCRpbm91dDQKKysJY21wCVwkMHg2MCwkbGVuCisrCWpiCS5MZWNiX2Vu Y19maXZlCisrCW1vdnVwcwkweDUwKCRpbnApLCRpbm91dDUKKysJamUJLkxlY2JfZW5jX3NpeAor Kwltb3ZkcXUJMHg2MCgkaW5wKSwkaW5vdXQ2CisrCWNhbGwJX2Flc25pX2VuY3J5cHQ4CisgCW1v dnVwcwkkaW5vdXQwLCgkb3V0KQorIAltb3Z1cHMJJGlub3V0MSwweDEwKCRvdXQpCisgCW1vdnVw cwkkaW5vdXQyLDB4MjAoJG91dCkKKyAJbW92dXBzCSRpbm91dDMsMHgzMCgkb3V0KQorKwltb3Z1 cHMJJGlub3V0NCwweDQwKCRvdXQpCisrCW1vdnVwcwkkaW5vdXQ1LDB4NTAoJG91dCkKKysJbW92 dXBzCSRpbm91dDYsMHg2MCgkb3V0KQorIAlqbXAJLkxlY2JfcmV0CisgLmFsaWduCTE2CisgLkxl Y2JfZW5jX29uZToKK0BAIC0yODAsNiArNjIwLDcgQEAgJGNvZGUuPTw8X19fOworIAlqbXAJLkxl Y2JfcmV0CisgLmFsaWduCTE2CisgLkxlY2JfZW5jX3R3bzoKKysJeG9ycHMJJGlub3V0MiwkaW5v dXQyCisgCWNhbGwJX2Flc25pX2VuY3J5cHQzCisgCW1vdnVwcwkkaW5vdXQwLCgkb3V0KQorIAlt b3Z1cHMJJGlub3V0MSwweDEwKCRvdXQpCitAQCAtMjkxLDQ3ICs2MzIsMTIxIEBAICRjb2RlLj08 PF9fXzsKKyAJbW92dXBzCSRpbm91dDEsMHgxMCgkb3V0KQorIAltb3Z1cHMJJGlub3V0MiwweDIw KCRvdXQpCisgCWptcAkuTGVjYl9yZXQKKysuYWxpZ24JMTYKKysuTGVjYl9lbmNfZm91cjoKKysJ Y2FsbAlfYWVzbmlfZW5jcnlwdDQKKysJbW92dXBzCSRpbm91dDAsKCRvdXQpCisrCW1vdnVwcwkk aW5vdXQxLDB4MTAoJG91dCkKKysJbW92dXBzCSRpbm91dDIsMHgyMCgkb3V0KQorKwltb3Z1cHMJ JGlub3V0MywweDMwKCRvdXQpCisrCWptcAkuTGVjYl9yZXQKKysuYWxpZ24JMTYKKysuTGVjYl9l bmNfZml2ZToKKysJeG9ycHMJJGlub3V0NSwkaW5vdXQ1CisrCWNhbGwJX2Flc25pX2VuY3J5cHQ2 CisrCW1vdnVwcwkkaW5vdXQwLCgkb3V0KQorKwltb3Z1cHMJJGlub3V0MSwweDEwKCRvdXQpCisr CW1vdnVwcwkkaW5vdXQyLDB4MjAoJG91dCkKKysJbW92dXBzCSRpbm91dDMsMHgzMCgkb3V0KQor Kwltb3Z1cHMJJGlub3V0NCwweDQwKCRvdXQpCisrCWptcAkuTGVjYl9yZXQKKysuYWxpZ24JMTYK KysuTGVjYl9lbmNfc2l4OgorKwljYWxsCV9hZXNuaV9lbmNyeXB0NgorKwltb3Z1cHMJJGlub3V0 MCwoJG91dCkKKysJbW92dXBzCSRpbm91dDEsMHgxMCgkb3V0KQorKwltb3Z1cHMJJGlub3V0Miww eDIwKCRvdXQpCisrCW1vdnVwcwkkaW5vdXQzLDB4MzAoJG91dCkKKysJbW92dXBzCSRpbm91dDQs MHg0MCgkb3V0KQorKwltb3Z1cHMJJGlub3V0NSwweDUwKCRvdXQpCisrCWptcAkuTGVjYl9yZXQK KyAMIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBFQ0IgREVDUllQVCAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0jCisgLmFsaWduCTE2CisgLkxlY2JfZGVjcnlwdDoKKy0Jc3ViCVwk MHg0MCwkbGVuCistCWpiZQkuTGVjYl9kZWNfdGFpbAorLQlqbXAJLkxlY2JfZGVjX2xvb3AzCisr CWNtcAlcJDB4ODAsJGxlbgorKwlqYgkuTGVjYl9kZWNfdGFpbAorKworKwltb3ZkcXUJKCRpbnAp LCRpbm91dDAKKysJbW92ZHF1CTB4MTAoJGlucCksJGlub3V0MQorKwltb3ZkcXUJMHgyMCgkaW5w KSwkaW5vdXQyCisrCW1vdmRxdQkweDMwKCRpbnApLCRpbm91dDMKKysJbW92ZHF1CTB4NDAoJGlu cCksJGlub3V0NAorKwltb3ZkcXUJMHg1MCgkaW5wKSwkaW5vdXQ1CisrCW1vdmRxdQkweDYwKCRp bnApLCRpbm91dDYKKysJbW92ZHF1CTB4NzAoJGlucCksJGlub3V0NworKwlsZWEJMHg4MCgkaW5w KSwkaW5wCisrCXN1YglcJDB4ODAsJGxlbgorKwlqbXAJLkxlY2JfZGVjX2xvb3A4X2VudGVyCisg LmFsaWduIDE2CistLkxlY2JfZGVjX2xvb3AzOgorLQltb3Z1cHMJKCRpbnApLCRpbm91dDAKKy0J bW92dXBzCTB4MTAoJGlucCksJGlub3V0MQorLQltb3Z1cHMJMHgyMCgkaW5wKSwkaW5vdXQyCist CWNhbGwJX2Flc25pX2RlY3J5cHQzCistCXN1YglcJDB4MzAsJGxlbgorLQlsZWEJMHgzMCgkaW5w KSwkaW5wCistCWxlYQkweDMwKCRvdXQpLCRvdXQKKy0JbW92dXBzCSRpbm91dDAsLTB4MzAoJG91 dCkKKy0JbW92CSRybmRzXywkcm91bmRzCQkjIHJlc3RvcmUgJHJvdW5kcworLQltb3Z1cHMJJGlu b3V0MSwtMHgyMCgkb3V0KQorKy5MZWNiX2RlY19sb29wODoKKysJbW92dXBzCSRpbm91dDAsKCRv dXQpCisgCW1vdgkka2V5Xywka2V5CQkjIHJlc3RvcmUgJGtleQorLQltb3Z1cHMJJGlub3V0Miwt MHgxMCgkb3V0KQorLQlqYQkuTGVjYl9kZWNfbG9vcDMKKysJbW92ZHF1CSgkaW5wKSwkaW5vdXQw CisrCW1vdgkkcm5kc18sJHJvdW5kcwkJIyByZXN0b3JlICRyb3VuZHMKKysJbW92dXBzCSRpbm91 dDEsMHgxMCgkb3V0KQorKwltb3ZkcXUJMHgxMCgkaW5wKSwkaW5vdXQxCisrCW1vdnVwcwkkaW5v dXQyLDB4MjAoJG91dCkKKysJbW92ZHF1CTB4MjAoJGlucCksJGlub3V0MgorKwltb3Z1cHMJJGlu b3V0MywweDMwKCRvdXQpCisrCW1vdmRxdQkweDMwKCRpbnApLCRpbm91dDMKKysJbW92dXBzCSRp bm91dDQsMHg0MCgkb3V0KQorKwltb3ZkcXUJMHg0MCgkaW5wKSwkaW5vdXQ0CisrCW1vdnVwcwkk aW5vdXQ1LDB4NTAoJG91dCkKKysJbW92ZHF1CTB4NTAoJGlucCksJGlub3V0NQorKwltb3Z1cHMJ JGlub3V0NiwweDYwKCRvdXQpCisrCW1vdmRxdQkweDYwKCRpbnApLCRpbm91dDYKKysJbW92dXBz CSRpbm91dDcsMHg3MCgkb3V0KQorKwlsZWEJMHg4MCgkb3V0KSwkb3V0CisrCW1vdmRxdQkweDcw KCRpbnApLCRpbm91dDcKKysJbGVhCTB4ODAoJGlucCksJGlucAorKy5MZWNiX2RlY19sb29wOF9l bnRlcjoKKysKKysJY2FsbAlfYWVzbmlfZGVjcnlwdDgKKysKKysJJG1vdmtleQkoJGtleV8pLCRy bmRrZXkwCisrCXN1YglcJDB4ODAsJGxlbgorKwlqbmMJLkxlY2JfZGVjX2xvb3A4CisgCistLkxl Y2JfZGVjX3RhaWw6CistCWFkZAlcJDB4NDAsJGxlbgorKwltb3Z1cHMJJGlub3V0MCwoJG91dCkK KysJbW92CSRrZXlfLCRrZXkJCSMgcmVzdG9yZSAka2V5CisrCW1vdnVwcwkkaW5vdXQxLDB4MTAo JG91dCkKKysJbW92CSRybmRzXywkcm91bmRzCQkjIHJlc3RvcmUgJHJvdW5kcworKwltb3Z1cHMJ JGlub3V0MiwweDIwKCRvdXQpCisrCW1vdnVwcwkkaW5vdXQzLDB4MzAoJG91dCkKKysJbW92dXBz CSRpbm91dDQsMHg0MCgkb3V0KQorKwltb3Z1cHMJJGlub3V0NSwweDUwKCRvdXQpCisrCW1vdnVw cwkkaW5vdXQ2LDB4NjAoJG91dCkKKysJbW92dXBzCSRpbm91dDcsMHg3MCgkb3V0KQorKwlsZWEJ MHg4MCgkb3V0KSwkb3V0CisrCWFkZAlcJDB4ODAsJGxlbgorIAlqegkuTGVjYl9yZXQKKyAKKy0J Y21wCVwkMHgxMCwkbGVuCisrLkxlY2JfZGVjX3RhaWw6CisgCW1vdnVwcwkoJGlucCksJGlub3V0 MAorLQlqZQkuTGVjYl9kZWNfb25lCisgCWNtcAlcJDB4MjAsJGxlbgorKwlqYgkuTGVjYl9kZWNf b25lCisgCW1vdnVwcwkweDEwKCRpbnApLCRpbm91dDEKKyAJamUJLkxlY2JfZGVjX3R3bworLQlj bXAJXCQweDMwLCRsZW4KKyAJbW92dXBzCTB4MjAoJGlucCksJGlub3V0MgorLQlqZQkuTGVjYl9k ZWNfdGhyZWUKKysJY21wCVwkMHg0MCwkbGVuCisrCWpiCS5MZWNiX2RlY190aHJlZQorIAltb3Z1 cHMJMHgzMCgkaW5wKSwkaW5vdXQzCistCWNhbGwJX2Flc25pX2RlY3J5cHQ0CisrCWplCS5MZWNi X2RlY19mb3VyCisrCW1vdnVwcwkweDQwKCRpbnApLCRpbm91dDQKKysJY21wCVwkMHg2MCwkbGVu CisrCWpiCS5MZWNiX2RlY19maXZlCisrCW1vdnVwcwkweDUwKCRpbnApLCRpbm91dDUKKysJamUJ LkxlY2JfZGVjX3NpeAorKwltb3Z1cHMJMHg2MCgkaW5wKSwkaW5vdXQ2CisrCSRtb3ZrZXkJKCRr ZXkpLCRybmRrZXkwCisrCWNhbGwJX2Flc25pX2RlY3J5cHQ4CisgCW1vdnVwcwkkaW5vdXQwLCgk b3V0KQorIAltb3Z1cHMJJGlub3V0MSwweDEwKCRvdXQpCisgCW1vdnVwcwkkaW5vdXQyLDB4MjAo JG91dCkKKyAJbW92dXBzCSRpbm91dDMsMHgzMCgkb3V0KQorKwltb3Z1cHMJJGlub3V0NCwweDQw KCRvdXQpCisrCW1vdnVwcwkkaW5vdXQ1LDB4NTAoJG91dCkKKysJbW92dXBzCSRpbm91dDYsMHg2 MCgkb3V0KQorIAlqbXAJLkxlY2JfcmV0CisgLmFsaWduCTE2CisgLkxlY2JfZGVjX29uZToKK0BA IC0zNDIsNiArNzU3LDcgQEAgJGNvZGUuPTw8X19fOworIAlqbXAJLkxlY2JfcmV0CisgLmFsaWdu CTE2CisgLkxlY2JfZGVjX3R3bzoKKysJeG9ycHMJJGlub3V0MiwkaW5vdXQyCisgCWNhbGwJX2Fl c25pX2RlY3J5cHQzCisgCW1vdnVwcwkkaW5vdXQwLCgkb3V0KQorIAltb3Z1cHMJJGlub3V0MSww eDEwKCRvdXQpCitAQCAtMzUyLDYgKzc2OCwzNCBAQCAkY29kZS49PDxfX187CisgCW1vdnVwcwkk aW5vdXQwLCgkb3V0KQorIAltb3Z1cHMJJGlub3V0MSwweDEwKCRvdXQpCisgCW1vdnVwcwkkaW5v dXQyLDB4MjAoJG91dCkKKysJam1wCS5MZWNiX3JldAorKy5hbGlnbgkxNgorKy5MZWNiX2RlY19m b3VyOgorKwljYWxsCV9hZXNuaV9kZWNyeXB0NAorKwltb3Z1cHMJJGlub3V0MCwoJG91dCkKKysJ bW92dXBzCSRpbm91dDEsMHgxMCgkb3V0KQorKwltb3Z1cHMJJGlub3V0MiwweDIwKCRvdXQpCisr CW1vdnVwcwkkaW5vdXQzLDB4MzAoJG91dCkKKysJam1wCS5MZWNiX3JldAorKy5hbGlnbgkxNgor Ky5MZWNiX2RlY19maXZlOgorKwl4b3JwcwkkaW5vdXQ1LCRpbm91dDUKKysJY2FsbAlfYWVzbmlf ZGVjcnlwdDYKKysJbW92dXBzCSRpbm91dDAsKCRvdXQpCisrCW1vdnVwcwkkaW5vdXQxLDB4MTAo JG91dCkKKysJbW92dXBzCSRpbm91dDIsMHgyMCgkb3V0KQorKwltb3Z1cHMJJGlub3V0MywweDMw KCRvdXQpCisrCW1vdnVwcwkkaW5vdXQ0LDB4NDAoJG91dCkKKysJam1wCS5MZWNiX3JldAorKy5h bGlnbgkxNgorKy5MZWNiX2RlY19zaXg6CisrCWNhbGwJX2Flc25pX2RlY3J5cHQ2CisrCW1vdnVw cwkkaW5vdXQwLCgkb3V0KQorKwltb3Z1cHMJJGlub3V0MSwweDEwKCRvdXQpCisrCW1vdnVwcwkk aW5vdXQyLDB4MjAoJG91dCkKKysJbW92dXBzCSRpbm91dDMsMHgzMCgkb3V0KQorKwltb3Z1cHMJ JGlub3V0NCwweDQwKCRvdXQpCisrCW1vdnVwcwkkaW5vdXQ1LDB4NTAoJG91dCkKKyAKKyAuTGVj Yl9yZXQ6CisgCXJldAorQEAgLTM2Miw3ICs4MDYsOCBAQCBfX18KKyAjIHZvaWQgJFBSRUZJWF9j YmNfZW5jcnlwdCAoY29uc3Qgdm9pZCAqaW5wLCB2b2lkICpvdXQsCisgIwkJCSAgICBzaXplX3Qg bGVuZ3RoLCBjb25zdCBBRVNfS0VZICprZXksCisgIwkJCSAgICB1bnNpZ25lZCBjaGFyICppdnAs Y29uc3QgaW50IGVuYyk7CistJHJlc2VydmVkID0gJHdpbjY0PzB4NDA6LTB4MTg7CSMgdXNlZCBp biBkZWNyeXB0CisreworK215ICRyZXNlcnZlZCA9ICR3aW42ND8weDQwOi0weDE4OwkjIHVzZWQg aW4gZGVjcnlwdAorICRjb2RlLj08PF9fXzsKKyAuZ2xvYmwJJHtQUkVGSVh9X2NiY19lbmNyeXB0 CisgLnR5cGUJJHtQUkVGSVh9X2NiY19lbmNyeXB0LFxAZnVuY3Rpb24sNgorQEAgLTM3MSwzMCAr ODE2LDMwIEBAICR7UFJFRklYfV9jYmNfZW5jcnlwdDoKKyAJdGVzdAkkbGVuLCRsZW4JCSMgY2hl Y2sgbGVuZ3RoCisgCWp6CS5MY2JjX3JldAorIAorLQltb3YJMjQwKCRrZXkpLCRybmRzXwkjIHB1 bGwgJHJvdW5kcworKwltb3YJMjQwKCRrZXkpLCRybmRzXwkjIGtleS0+cm91bmRzCisgCW1vdgkk a2V5LCRrZXlfCQkjIGJhY2t1cCAka2V5CisgCXRlc3QJJXI5ZCwlcjlkCQkjIDZ0aCBhcmd1bWVu dAorIAlqegkuTGNiY19kZWNyeXB0CisgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDQkMg RU5DUllQVCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jCisgCW1vdnVwcwkoJGl2cCks JGlub3V0MAkJIyBsb2FkIGl2IGFzIGluaXRpYWwgc3RhdGUKKy0JY21wCVwkMTYsJGxlbgorIAlt b3YJJHJuZHNfLCRyb3VuZHMKKysJY21wCVwkMTYsJGxlbgorIAlqYgkuTGNiY19lbmNfdGFpbAor IAlzdWIJXCQxNiwkbGVuCisgCWptcAkuTGNiY19lbmNfbG9vcAorLS5hbGlnbiAxNgorKy5hbGln bgkxNgorIC5MY2JjX2VuY19sb29wOgorIAltb3Z1cHMJKCRpbnApLCRpbm91dDEJCSMgbG9hZCBp bnB1dAorIAlsZWEJMTYoJGlucCksJGlucAorLQlweG9yCSRpbm91dDEsJGlub3V0MAorKwkjeG9y cHMJJGlub3V0MSwkaW5vdXQwCisgX19fCistCSZhZXNuaV9nZW5lcmF0ZTEoImVuYyIsJGtleSwk cm91bmRzKTsKKysJJmFlc25pX2dlbmVyYXRlMSgiZW5jIiwka2V5LCRyb3VuZHMsJGlub3V0MCwk aW5vdXQxKTsKKyAkY29kZS49PDxfX187CistCXN1YglcJDE2LCRsZW4KKy0JbGVhCTE2KCRvdXQp LCRvdXQKKyAJbW92CSRybmRzXywkcm91bmRzCQkjIHJlc3RvcmUgJHJvdW5kcworIAltb3YJJGtl eV8sJGtleQkJIyByZXN0b3JlICRrZXkKKy0JbW92dXBzCSRpbm91dDAsLTE2KCRvdXQpCSMgc3Rv cmUgb3V0cHV0CisrCW1vdnVwcwkkaW5vdXQwLDAoJG91dCkJCSMgc3RvcmUgb3V0cHV0CisrCWxl YQkxNigkb3V0KSwkb3V0CisrCXN1YglcJDE2LCRsZW4KKyAJam5jCS5MY2JjX2VuY19sb29wCisg CWFkZAlcJDE2LCRsZW4KKyAJam56CS5MY2JjX2VuY190YWlsCitAQCAtNDI5LDkyICs4NzQsMjM4 IEBAICRjb2RlLj08PF9fXyBpZiAoJHdpbjY0KTsKKyBfX18KKyAkY29kZS49PDxfX187CisgCW1v dnVwcwkoJGl2cCksJGl2CistCXN1YglcJDB4NDAsJGxlbgorIAltb3YJJHJuZHNfLCRyb3VuZHMK KysJY21wCVwkMHg3MCwkbGVuCisgCWpiZQkuTGNiY19kZWNfdGFpbAorLQlqbXAJLkxjYmNfZGVj X2xvb3AzCistLmFsaWduIDE2CistLkxjYmNfZGVjX2xvb3AzOgorLQltb3Z1cHMJKCRpbnApLCRp bm91dDAKKysJc2hyCVwkMSwkcm5kc18KKysJc3ViCVwkMHg3MCwkbGVuCisrCW1vdgkkcm5kc18s JHJvdW5kcworKwltb3ZhcHMJJGl2LCRyZXNlcnZlZCglcnNwKQorKwlqbXAJLkxjYmNfZGVjX2xv b3A4X2VudGVyCisrLmFsaWduCTE2CisrLkxjYmNfZGVjX2xvb3A4OgorKwltb3ZhcHMJJHJuZGtl eTAsJHJlc2VydmVkKCVyc3ApCSMgc2F2ZSBJVgorKwltb3Z1cHMJJGlub3V0NywoJG91dCkKKysJ bGVhCTB4MTAoJG91dCksJG91dAorKy5MY2JjX2RlY19sb29wOF9lbnRlcjoKKysJJG1vdmtleQkJ KCRrZXkpLCRybmRrZXkwCisrCW1vdnVwcwkoJGlucCksJGlub3V0MAkJCSMgbG9hZCBpbnB1dAor IAltb3Z1cHMJMHgxMCgkaW5wKSwkaW5vdXQxCistCW1vdnVwcwkweDIwKCRpbnApLCRpbm91dDIK Ky0JbW92YXBzCSRpbm91dDAsJGluMAorLQltb3ZhcHMJJGlub3V0MSwkaW4xCistCW1vdmFwcwkk aW5vdXQyLCRpbjIKKy0JY2FsbAlfYWVzbmlfZGVjcnlwdDMKKy0Jc3ViCVwkMHgzMCwkbGVuCist CWxlYQkweDMwKCRpbnApLCRpbnAKKy0JbGVhCTB4MzAoJG91dCksJG91dAorLQlweG9yCSRpdiwk aW5vdXQwCistCXB4b3IJJGluMCwkaW5vdXQxCistCW1vdmFwcwkkaW4yLCRpdgorLQlweG9yCSRp bjEsJGlub3V0MgorLQltb3Z1cHMJJGlub3V0MCwtMHgzMCgkb3V0KQorLQltb3YJJHJuZHNfLCRy b3VuZHMJIyByZXN0b3JlICRyb3VuZHMKKy0JbW92dXBzCSRpbm91dDEsLTB4MjAoJG91dCkKKy0J bW92CSRrZXlfLCRrZXkJIyByZXN0b3JlICRrZXkKKy0JbW92dXBzCSRpbm91dDIsLTB4MTAoJG91 dCkKKy0JamEJLkxjYmNfZGVjX2xvb3AzCisrCSRtb3ZrZXkJCTE2KCRrZXkpLCRybmRrZXkxCisg CistLkxjYmNfZGVjX3RhaWw6CistCWFkZAlcJDB4NDAsJGxlbgorLQltb3Z1cHMJJGl2LCgkaXZw KQorLQlqegkuTGNiY19kZWNfcmV0CisrCWxlYQkJMzIoJGtleSksJGtleQorKwltb3ZkcXUJMHgy MCgkaW5wKSwkaW5vdXQyCisrCXhvcnBzCQkkcm5ka2V5MCwkaW5vdXQwCisrCW1vdmRxdQkweDMw KCRpbnApLCRpbm91dDMKKysJeG9ycHMJCSRybmRrZXkwLCRpbm91dDEKKysJbW92ZHF1CTB4NDAo JGlucCksJGlub3V0NAorKwlhZXNkZWMJCSRybmRrZXkxLCRpbm91dDAKKysJcHhvcgkJJHJuZGtl eTAsJGlub3V0MgorKwltb3ZkcXUJMHg1MCgkaW5wKSwkaW5vdXQ1CisrCWFlc2RlYwkJJHJuZGtl eTEsJGlub3V0MQorKwlweG9yCQkkcm5ka2V5MCwkaW5vdXQzCisrCW1vdmRxdQkweDYwKCRpbnAp LCRpbm91dDYKKysJYWVzZGVjCQkkcm5ka2V5MSwkaW5vdXQyCisrCXB4b3IJCSRybmRrZXkwLCRp bm91dDQKKysJbW92ZHF1CTB4NzAoJGlucCksJGlub3V0NworKwlhZXNkZWMJCSRybmRrZXkxLCRp bm91dDMKKysJcHhvcgkJJHJuZGtleTAsJGlub3V0NQorKwlkZWMJCSRyb3VuZHMKKysJYWVzZGVj CQkkcm5ka2V5MSwkaW5vdXQ0CisrCXB4b3IJCSRybmRrZXkwLCRpbm91dDYKKysJYWVzZGVjCQkk cm5ka2V5MSwkaW5vdXQ1CisrCXB4b3IJCSRybmRrZXkwLCRpbm91dDcKKysJJG1vdmtleQkJKCRr ZXkpLCRybmRrZXkwCisrCWFlc2RlYwkJJHJuZGtleTEsJGlub3V0NgorKwlhZXNkZWMJCSRybmRr ZXkxLCRpbm91dDcKKysJJG1vdmtleQkJMTYoJGtleSksJHJuZGtleTEKKysKKysJY2FsbAkJLkxk ZWNfbG9vcDhfZW50ZXIKKyAKKysJbW92dXBzCSgkaW5wKSwkcm5ka2V5MQkJIyByZS1sb2FkIGlu cHV0CisrCW1vdnVwcwkweDEwKCRpbnApLCRybmRrZXkwCisrCXhvcnBzCSRyZXNlcnZlZCglcnNw KSwkaW5vdXQwCSMgXj0gSVYKKysJeG9ycHMJJHJuZGtleTEsJGlub3V0MQorKwltb3Z1cHMJMHgy MCgkaW5wKSwkcm5ka2V5MQorKwl4b3Jwcwkkcm5ka2V5MCwkaW5vdXQyCisrCW1vdnVwcwkweDMw KCRpbnApLCRybmRrZXkwCisrCXhvcnBzCSRybmRrZXkxLCRpbm91dDMKKysJbW92dXBzCTB4NDAo JGlucCksJHJuZGtleTEKKysJeG9ycHMJJHJuZGtleTAsJGlub3V0NAorKwltb3Z1cHMJMHg1MCgk aW5wKSwkcm5ka2V5MAorKwl4b3Jwcwkkcm5ka2V5MSwkaW5vdXQ1CisrCW1vdnVwcwkweDYwKCRp bnApLCRybmRrZXkxCisrCXhvcnBzCSRybmRrZXkwLCRpbm91dDYKKysJbW92dXBzCTB4NzAoJGlu cCksJHJuZGtleTAJIyBJVgorKwl4b3Jwcwkkcm5ka2V5MSwkaW5vdXQ3CisrCW1vdnVwcwkkaW5v dXQwLCgkb3V0KQorKwltb3Z1cHMJJGlub3V0MSwweDEwKCRvdXQpCisrCW1vdnVwcwkkaW5vdXQy LDB4MjAoJG91dCkKKysJbW92dXBzCSRpbm91dDMsMHgzMCgkb3V0KQorKwltb3YJJHJuZHNfLCRy b3VuZHMJCSMgcmVzdG9yZSAkcm91bmRzCisrCW1vdnVwcwkkaW5vdXQ0LDB4NDAoJG91dCkKKysJ bW92CSRrZXlfLCRrZXkJCSMgcmVzdG9yZSAka2V5CisrCW1vdnVwcwkkaW5vdXQ1LDB4NTAoJG91 dCkKKysJbGVhCTB4ODAoJGlucCksJGlucAorKwltb3Z1cHMJJGlub3V0NiwweDYwKCRvdXQpCisr CWxlYQkweDcwKCRvdXQpLCRvdXQKKysJc3ViCVwkMHg4MCwkbGVuCisrCWphCS5MY2JjX2RlY19s b29wOAorKworKwltb3ZhcHMJJGlub3V0NywkaW5vdXQwCisrCW1vdmFwcwkkcm5ka2V5MCwkaXYK KysJYWRkCVwkMHg3MCwkbGVuCisrCWpsZQkuTGNiY19kZWNfdGFpbF9jb2xsZWN0ZWQKKysJbW92 dXBzCSRpbm91dDAsKCRvdXQpCisrCWxlYQkxKCRybmRzXywkcm5kc18pLCRyb3VuZHMKKysJbGVh CTB4MTAoJG91dCksJG91dAorKy5MY2JjX2RlY190YWlsOgorIAltb3Z1cHMJKCRpbnApLCRpbm91 dDAKKy0JY21wCVwkMHgxMCwkbGVuCisgCW1vdmFwcwkkaW5vdXQwLCRpbjAKKysJY21wCVwkMHgx MCwkbGVuCisgCWpiZQkuTGNiY19kZWNfb25lCisrCisgCW1vdnVwcwkweDEwKCRpbnApLCRpbm91 dDEKKy0JY21wCVwkMHgyMCwkbGVuCisgCW1vdmFwcwkkaW5vdXQxLCRpbjEKKysJY21wCVwkMHgy MCwkbGVuCisgCWpiZQkuTGNiY19kZWNfdHdvCisrCisgCW1vdnVwcwkweDIwKCRpbnApLCRpbm91 dDIKKy0JY21wCVwkMHgzMCwkbGVuCisgCW1vdmFwcwkkaW5vdXQyLCRpbjIKKysJY21wCVwkMHgz MCwkbGVuCisgCWpiZQkuTGNiY19kZWNfdGhyZWUKKysKKyAJbW92dXBzCTB4MzAoJGlucCksJGlu b3V0MworLQljYWxsCV9hZXNuaV9kZWNyeXB0NAorLQlweG9yCSRpdiwkaW5vdXQwCistCW1vdnVw cwkweDMwKCRpbnApLCRpdgorLQlweG9yCSRpbjAsJGlub3V0MQorKwljbXAJXCQweDQwLCRsZW4K KysJamJlCS5MY2JjX2RlY19mb3VyCisrCisrCW1vdnVwcwkweDQwKCRpbnApLCRpbm91dDQKKysJ Y21wCVwkMHg1MCwkbGVuCisrCWpiZQkuTGNiY19kZWNfZml2ZQorKworKwltb3Z1cHMJMHg1MCgk aW5wKSwkaW5vdXQ1CisrCWNtcAlcJDB4NjAsJGxlbgorKwlqYmUJLkxjYmNfZGVjX3NpeAorKwor Kwltb3Z1cHMJMHg2MCgkaW5wKSwkaW5vdXQ2CisrCW1vdmFwcwkkaXYsJHJlc2VydmVkKCVyc3Ap CSMgc2F2ZSBJVgorKwljYWxsCV9hZXNuaV9kZWNyeXB0OAorKwltb3Z1cHMJKCRpbnApLCRybmRr ZXkxCisrCW1vdnVwcwkweDEwKCRpbnApLCRybmRrZXkwCisrCXhvcnBzCSRyZXNlcnZlZCglcnNw KSwkaW5vdXQwCSMgXj0gSVYKKysJeG9ycHMJJHJuZGtleTEsJGlub3V0MQorKwltb3Z1cHMJMHgy MCgkaW5wKSwkcm5ka2V5MQorKwl4b3Jwcwkkcm5ka2V5MCwkaW5vdXQyCisrCW1vdnVwcwkweDMw KCRpbnApLCRybmRrZXkwCisrCXhvcnBzCSRybmRrZXkxLCRpbm91dDMKKysJbW92dXBzCTB4NDAo JGlucCksJHJuZGtleTEKKysJeG9ycHMJJHJuZGtleTAsJGlub3V0NAorKwltb3Z1cHMJMHg1MCgk aW5wKSwkcm5ka2V5MAorKwl4b3Jwcwkkcm5ka2V5MSwkaW5vdXQ1CisrCW1vdnVwcwkweDYwKCRp bnApLCRpdgkJIyBJVgorKwl4b3Jwcwkkcm5ka2V5MCwkaW5vdXQ2CisgCW1vdnVwcwkkaW5vdXQw LCgkb3V0KQorLQlweG9yCSRpbjEsJGlub3V0MgorIAltb3Z1cHMJJGlub3V0MSwweDEwKCRvdXQp CistCXB4b3IJJGluMiwkaW5vdXQzCisgCW1vdnVwcwkkaW5vdXQyLDB4MjAoJG91dCkKKy0JbW92 YXBzCSRpbm91dDMsJGlub3V0MAorLQlsZWEJMHgzMCgkb3V0KSwkb3V0CisrCW1vdnVwcwkkaW5v dXQzLDB4MzAoJG91dCkKKysJbW92dXBzCSRpbm91dDQsMHg0MCgkb3V0KQorKwltb3Z1cHMJJGlu b3V0NSwweDUwKCRvdXQpCisrCWxlYQkweDYwKCRvdXQpLCRvdXQKKysJbW92YXBzCSRpbm91dDYs JGlub3V0MAorKwlzdWIJXCQweDcwLCRsZW4KKyAJam1wCS5MY2JjX2RlY190YWlsX2NvbGxlY3Rl ZAorIC5hbGlnbgkxNgorIC5MY2JjX2RlY19vbmU6CisgX19fCisgCSZhZXNuaV9nZW5lcmF0ZTEo ImRlYyIsJGtleSwkcm91bmRzKTsKKyAkY29kZS49PDxfX187CistCXB4b3IJJGl2LCRpbm91dDAK KysJeG9ycHMJJGl2LCRpbm91dDAKKyAJbW92YXBzCSRpbjAsJGl2CisrCXN1YglcJDB4MTAsJGxl bgorIAlqbXAJLkxjYmNfZGVjX3RhaWxfY29sbGVjdGVkCisgLmFsaWduCTE2CisgLkxjYmNfZGVj X3R3bzoKKysJeG9ycHMJJGlub3V0MiwkaW5vdXQyCisgCWNhbGwJX2Flc25pX2RlY3J5cHQzCist CXB4b3IJJGl2LCRpbm91dDAKKy0JcHhvcgkkaW4wLCRpbm91dDEKKysJeG9ycHMJJGl2LCRpbm91 dDAKKysJeG9ycHMJJGluMCwkaW5vdXQxCisgCW1vdnVwcwkkaW5vdXQwLCgkb3V0KQorIAltb3Zh cHMJJGluMSwkaXYKKyAJbW92YXBzCSRpbm91dDEsJGlub3V0MAorIAlsZWEJMHgxMCgkb3V0KSwk b3V0CisrCXN1YglcJDB4MjAsJGxlbgorIAlqbXAJLkxjYmNfZGVjX3RhaWxfY29sbGVjdGVkCisg LmFsaWduCTE2CisgLkxjYmNfZGVjX3RocmVlOgorIAljYWxsCV9hZXNuaV9kZWNyeXB0MworLQlw eG9yCSRpdiwkaW5vdXQwCistCXB4b3IJJGluMCwkaW5vdXQxCisrCXhvcnBzCSRpdiwkaW5vdXQw CisrCXhvcnBzCSRpbjAsJGlub3V0MQorIAltb3Z1cHMJJGlub3V0MCwoJG91dCkKKy0JcHhvcgkk aW4xLCRpbm91dDIKKysJeG9ycHMJJGluMSwkaW5vdXQyCisgCW1vdnVwcwkkaW5vdXQxLDB4MTAo JG91dCkKKyAJbW92YXBzCSRpbjIsJGl2CisgCW1vdmFwcwkkaW5vdXQyLCRpbm91dDAKKyAJbGVh CTB4MjAoJG91dCksJG91dAorKwlzdWIJXCQweDMwLCRsZW4KKysJam1wCS5MY2JjX2RlY190YWls X2NvbGxlY3RlZAorKy5hbGlnbgkxNgorKy5MY2JjX2RlY19mb3VyOgorKwljYWxsCV9hZXNuaV9k ZWNyeXB0NAorKwl4b3JwcwkkaXYsJGlub3V0MAorKwltb3Z1cHMJMHgzMCgkaW5wKSwkaXYKKysJ eG9ycHMJJGluMCwkaW5vdXQxCisrCW1vdnVwcwkkaW5vdXQwLCgkb3V0KQorKwl4b3JwcwkkaW4x LCRpbm91dDIKKysJbW92dXBzCSRpbm91dDEsMHgxMCgkb3V0KQorKwl4b3JwcwkkaW4yLCRpbm91 dDMKKysJbW92dXBzCSRpbm91dDIsMHgyMCgkb3V0KQorKwltb3ZhcHMJJGlub3V0MywkaW5vdXQw CisrCWxlYQkweDMwKCRvdXQpLCRvdXQKKysJc3ViCVwkMHg0MCwkbGVuCisrCWptcAkuTGNiY19k ZWNfdGFpbF9jb2xsZWN0ZWQKKysuYWxpZ24JMTYKKysuTGNiY19kZWNfZml2ZToKKysJeG9ycHMJ JGlub3V0NSwkaW5vdXQ1CisrCWNhbGwJX2Flc25pX2RlY3J5cHQ2CisrCW1vdnVwcwkweDEwKCRp bnApLCRybmRrZXkxCisrCW1vdnVwcwkweDIwKCRpbnApLCRybmRrZXkwCisrCXhvcnBzCSRpdiwk aW5vdXQwCisrCXhvcnBzCSRpbjAsJGlub3V0MQorKwl4b3Jwcwkkcm5ka2V5MSwkaW5vdXQyCisr CW1vdnVwcwkweDMwKCRpbnApLCRybmRrZXkxCisrCXhvcnBzCSRybmRrZXkwLCRpbm91dDMKKysJ bW92dXBzCTB4NDAoJGlucCksJGl2CisrCXhvcnBzCSRybmRrZXkxLCRpbm91dDQKKysJbW92dXBz CSRpbm91dDAsKCRvdXQpCisrCW1vdnVwcwkkaW5vdXQxLDB4MTAoJG91dCkKKysJbW92dXBzCSRp bm91dDIsMHgyMCgkb3V0KQorKwltb3Z1cHMJJGlub3V0MywweDMwKCRvdXQpCisrCWxlYQkweDQw KCRvdXQpLCRvdXQKKysJbW92YXBzCSRpbm91dDQsJGlub3V0MAorKwlzdWIJXCQweDUwLCRsZW4K KysJam1wCS5MY2JjX2RlY190YWlsX2NvbGxlY3RlZAorKy5hbGlnbgkxNgorKy5MY2JjX2RlY19z aXg6CisrCWNhbGwJX2Flc25pX2RlY3J5cHQ2CisrCW1vdnVwcwkweDEwKCRpbnApLCRybmRrZXkx CisrCW1vdnVwcwkweDIwKCRpbnApLCRybmRrZXkwCisrCXhvcnBzCSRpdiwkaW5vdXQwCisrCXhv cnBzCSRpbjAsJGlub3V0MQorKwl4b3Jwcwkkcm5ka2V5MSwkaW5vdXQyCisrCW1vdnVwcwkweDMw KCRpbnApLCRybmRrZXkxCisrCXhvcnBzCSRybmRrZXkwLCRpbm91dDMKKysJbW92dXBzCTB4NDAo JGlucCksJHJuZGtleTAKKysJeG9ycHMJJHJuZGtleTEsJGlub3V0NAorKwltb3Z1cHMJMHg1MCgk aW5wKSwkaXYKKysJeG9ycHMJJHJuZGtleTAsJGlub3V0NQorKwltb3Z1cHMJJGlub3V0MCwoJG91 dCkKKysJbW92dXBzCSRpbm91dDEsMHgxMCgkb3V0KQorKwltb3Z1cHMJJGlub3V0MiwweDIwKCRv dXQpCisrCW1vdnVwcwkkaW5vdXQzLDB4MzAoJG91dCkKKysJbW92dXBzCSRpbm91dDQsMHg0MCgk b3V0KQorKwlsZWEJMHg1MCgkb3V0KSwkb3V0CisrCW1vdmFwcwkkaW5vdXQ1LCRpbm91dDAKKysJ c3ViCVwkMHg2MCwkbGVuCisgCWptcAkuTGNiY19kZWNfdGFpbF9jb2xsZWN0ZWQKKyAuYWxpZ24J MTYKKyAuTGNiY19kZWNfdGFpbF9jb2xsZWN0ZWQ6CitAQCAtNTIzLDEwICsxMTE0LDEyIEBAICRj b2RlLj08PF9fXzsKKyAJam56CS5MY2JjX2RlY190YWlsX3BhcnRpYWwKKyAJbW92dXBzCSRpbm91 dDAsKCRvdXQpCisgCWptcAkuTGNiY19kZWNfcmV0CisrLmFsaWduCTE2CisgLkxjYmNfZGVjX3Rh aWxfcGFydGlhbDoKKyAJbW92YXBzCSRpbm91dDAsJHJlc2VydmVkKCVyc3ApCisrCW1vdglcJDE2 LCVyY3gKKyAJbW92CSRvdXQsJXJkaQorLQltb3YJJGxlbiwlcmN4CisrCXN1YgkkbGVuLCVyY3gK KyAJbGVhCSRyZXNlcnZlZCglcnNwKSwlcnNpCisgCS5sb25nCTB4OTA2NkE0RjMJIyByZXAgbW92 c2IKKyAKK0BAIC01NDQsNyArMTEzNyw3IEBAICRjb2RlLj08PF9fXzsKKyAJcmV0CisgLnNpemUJ JHtQUkVGSVh9X2NiY19lbmNyeXB0LC4tJHtQUkVGSVh9X2NiY19lbmNyeXB0CisgX19fCistDAor K30gDAorICMgaW50ICRQUkVGSVhfc2V0X1tlbnxkZV1jcnlwdF9rZXkgKGNvbnN0IHVuc2lnbmVk IGNoYXIgKnVzZXJLZXksCisgIwkJCQlpbnQgYml0cywgQUVTX0tFWSAqa2V5KQorIHsgbXkgKCRp bnAsJGJpdHMsJGtleSkgPSBAXzRhcmdzOworQEAgLTU1Niw3ICsxMTQ5LDcgQEAgJGNvZGUuPTw8 X19fOworIC5hbGlnbgkxNgorICR7UFJFRklYfV9zZXRfZGVjcnlwdF9rZXk6CisgCS5ieXRlCTB4 NDgsMHg4MywweEVDLDB4MDgJIyBzdWIgcnNwLDgKKy0JY2FsbAlfYWVzbmlfc2V0X2VuY3J5cHRf a2V5CisrCWNhbGwJX19hZXNuaV9zZXRfZW5jcnlwdF9rZXkKKyAJc2hsCVwkNCwkYml0cwkJIyBy b3VuZHMtMSBhZnRlciBfYWVzbmlfc2V0X2VuY3J5cHRfa2V5CisgCXRlc3QJJWVheCwlZWF4Cisg CWpuegkuTGRlY19rZXlfcmV0CitAQCAtNTc2LDkgKzExNjksOSBAQCAke1BSRUZJWH1fc2V0X2Rl Y3J5cHRfa2V5OgorIAlhZXNpbWMJJXhtbTEsJXhtbTEKKyAJbGVhCTE2KCRrZXkpLCRrZXkKKyAJ bGVhCS0xNigkaW5wKSwkaW5wCistCWNtcAkka2V5LCRpbnAKKyAJJG1vdmtleQkleG1tMCwxNigk aW5wKQorIAkkbW92a2V5CSV4bW0xLC0xNigka2V5KQorKwljbXAJJGtleSwkaW5wCisgCWphCS5M ZGVjX2tleV9pbnZlcnNlCisgCisgCSRtb3ZrZXkJKCRrZXkpLCV4bW0wCQkjIGludmVyc2UgbWlk ZGxlCitAQCAtNjA1LDE2ICsxMTk4LDE2IEBAICRjb2RlLj08PF9fXzsKKyAudHlwZQkke1BSRUZJ WH1fc2V0X2VuY3J5cHRfa2V5LFxAYWJpLW9tbmlwb3RlbnQKKyAuYWxpZ24JMTYKKyAke1BSRUZJ WH1fc2V0X2VuY3J5cHRfa2V5OgorLV9hZXNuaV9zZXRfZW5jcnlwdF9rZXk6CisrX19hZXNuaV9z ZXRfZW5jcnlwdF9rZXk6CisgCS5ieXRlCTB4NDgsMHg4MywweEVDLDB4MDgJIyBzdWIgcnNwLDgK Ky0JdGVzdAkkaW5wLCRpbnAKKyAJbW92CVwkLTEsJXJheAorKwl0ZXN0CSRpbnAsJGlucAorIAlq egkuTGVuY19rZXlfcmV0CisgCXRlc3QJJGtleSwka2V5CisgCWp6CS5MZW5jX2tleV9yZXQKKyAK KyAJbW92dXBzCSgkaW5wKSwleG1tMAkJIyBwdWxsIGZpcnN0IDEyOCBiaXRzIG9mICp1c2VyS2V5 CistCXB4b3IJJXhtbTQsJXhtbTQJCSMgbG93IGR3b3JkIG9mIHhtbTQgaXMgYXNzdW1lZCAwCisr CXhvcnBzCSV4bW00LCV4bW00CQkjIGxvdyBkd29yZCBvZiB4bW00IGlzIGFzc3VtZWQgMAorIAls ZWEJMTYoJGtleSksJXJheAorIAljbXAJXCQyNTYsJGJpdHMKKyAJamUJLkwxNHJvdW5kcworQEAg LTcyOSwxMSArMTMyMiwxMSBAQCBfYWVzbmlfc2V0X2VuY3J5cHRfa2V5OgorIAlsZWEJMTYoJXJh eCksJXJheAorIC5Ma2V5X2V4cGFuc2lvbl8xMjhfY29sZDoKKyAJc2h1ZnBzCVwkMGIwMDAxMDAw MCwleG1tMCwleG1tNAorLQlweG9yCSV4bW00LCAleG1tMAorKwl4b3JwcwkleG1tNCwgJXhtbTAK KyAJc2h1ZnBzCVwkMGIxMDAwMTEwMCwleG1tMCwleG1tNAorLQlweG9yCSV4bW00LCAleG1tMAor LQlwc2h1ZmQJXCQwYjExMTExMTExLCV4bW0xLCV4bW0xCSMgY3JpdGljYWwgcGF0aAorLQlweG9y CSV4bW0xLCV4bW0wCisrCXhvcnBzCSV4bW00LCAleG1tMAorKwlzaHVmcHMJXCQwYjExMTExMTEx LCV4bW0xLCV4bW0xCSMgY3JpdGljYWwgcGF0aAorKwl4b3JwcwkleG1tMSwleG1tMAorIAlyZXQK KyAKKyAuYWxpZ24gMTYKK0BAIC03NDQsMTEgKzEzMzcsMTEgQEAgX2Flc25pX3NldF9lbmNyeXB0 X2tleToKKyAJbW92YXBzCSV4bW0yLCAleG1tNQorIC5Ma2V5X2V4cGFuc2lvbl8xOTJiX3dhcm06 CisgCXNodWZwcwlcJDBiMDAwMTAwMDAsJXhtbTAsJXhtbTQKKy0JbW92YXBzCSV4bW0yLCV4bW0z CistCXB4b3IJJXhtbTQsJXhtbTAKKysJbW92ZHFhCSV4bW0yLCV4bW0zCisrCXhvcnBzCSV4bW00 LCV4bW0wCisgCXNodWZwcwlcJDBiMTAwMDExMDAsJXhtbTAsJXhtbTQKKyAJcHNsbGRxCVwkNCwl eG1tMworLQlweG9yCSV4bW00LCV4bW0wCisrCXhvcnBzCSV4bW00LCV4bW0wCisgCXBzaHVmZAlc JDBiMDEwMTAxMDEsJXhtbTEsJXhtbTEJIyBjcml0aWNhbCBwYXRoCisgCXB4b3IJJXhtbTMsJXht bTIKKyAJcHhvcgkleG1tMSwleG1tMAorQEAgLTc3MiwxMSArMTM2NSwxMSBAQCBfYWVzbmlfc2V0 X2VuY3J5cHRfa2V5OgorIAlsZWEJMTYoJXJheCksJXJheAorIC5Ma2V5X2V4cGFuc2lvbl8yNTZh X2NvbGQ6CisgCXNodWZwcwlcJDBiMDAwMTAwMDAsJXhtbTAsJXhtbTQKKy0JcHhvcgkleG1tNCwl eG1tMAorKwl4b3JwcwkleG1tNCwleG1tMAorIAlzaHVmcHMJXCQwYjEwMDAxMTAwLCV4bW0wLCV4 bW00CistCXB4b3IJJXhtbTQsJXhtbTAKKy0JcHNodWZkCVwkMGIxMTExMTExMSwleG1tMSwleG1t MQkjIGNyaXRpY2FsIHBhdGgKKy0JcHhvcgkleG1tMSwleG1tMAorKwl4b3JwcwkleG1tNCwleG1t MAorKwlzaHVmcHMJXCQwYjExMTExMTExLCV4bW0xLCV4bW0xCSMgY3JpdGljYWwgcGF0aAorKwl4 b3JwcwkleG1tMSwleG1tMAorIAlyZXQKKyAKKyAuYWxpZ24gMTYKK0BAIC03ODUsMTcgKzEzNzgs MjggQEAgX2Flc25pX3NldF9lbmNyeXB0X2tleToKKyAJbGVhCTE2KCVyYXgpLCVyYXgKKyAKKyAJ c2h1ZnBzCVwkMGIwMDAxMDAwMCwleG1tMiwleG1tNAorLQlweG9yCSV4bW00LCV4bW0yCisrCXhv cnBzCSV4bW00LCV4bW0yCisgCXNodWZwcwlcJDBiMTAwMDExMDAsJXhtbTIsJXhtbTQKKy0JcHhv cgkleG1tNCwleG1tMgorLQlwc2h1ZmQJXCQwYjEwMTAxMDEwLCV4bW0xLCV4bW0xCSMgY3JpdGlj YWwgcGF0aAorLQlweG9yCSV4bW0xLCV4bW0yCisrCXhvcnBzCSV4bW00LCV4bW0yCisrCXNodWZw cwlcJDBiMTAxMDEwMTAsJXhtbTEsJXhtbTEJIyBjcml0aWNhbCBwYXRoCisrCXhvcnBzCSV4bW0x LCV4bW0yCisgCXJldAorIC5zaXplCSR7UFJFRklYfV9zZXRfZW5jcnlwdF9rZXksLi0ke1BSRUZJ WH1fc2V0X2VuY3J5cHRfa2V5CisrLnNpemUJX19hZXNuaV9zZXRfZW5jcnlwdF9rZXksLi1fX2Fl c25pX3NldF9lbmNyeXB0X2tleQorIF9fXworIH0KKyAMCisgJGNvZGUuPTw8X19fOworKy5hbGln bgk2NAorKy5MYnN3YXBfbWFzazoKKysJLmJ5dGUJMTUsMTQsMTMsMTIsMTEsMTAsOSw4LDcsNiw1 LDQsMywyLDEsMAorKy5MaW5jcmVtZW50MzI6CisrCS5sb25nCTYsNiw2LDAKKysuTGluY3JlbWVu dDY0OgorKwkubG9uZwkxLDAsMCwwCisrLkx4dHNfbWFnaWM6CisrCS5sb25nCTB4ODcsMCwxLDAK KysKKyAuYXNjaXogICJBRVMgZm9yIEludGVsIEFFUy1OSSwgQ1JZUFRPR0FNUyBieSA8YXBwcm9c QG9wZW5zc2wub3JnPiIKKyAuYWxpZ24JNjQKKyBfX18KK2RpZmYgLXVwIG9wZW5zc2wtMS4wLjBk L2NyeXB0by9jcnlwdGxpYi5jLmludGVsb3B0cyBvcGVuc3NsLTEuMC4wZC9jcnlwdG8vY3J5cHRs aWIuYworLS0tIG9wZW5zc2wtMS4wLjBkL2NyeXB0by9jcnlwdGxpYi5jLmludGVsb3B0cwkyMDEw LTExLTE5IDAxOjExOjI3LjAwMDAwMDAwMCArMDEwMAorKysrIG9wZW5zc2wtMS4wLjBkL2NyeXB0 by9jcnlwdGxpYi5jCTIwMTEtMDgtMjQgMTI6MzY6MzMuMDAwMDAwMDAwICswMjAwCitAQCAtNjYy LDIyICs2NjIsMjMgQEAgY29uc3QgY2hhciAqQ1JZUFRPX2dldF9sb2NrX25hbWUoaW50IHR5cAor IAlkZWZpbmVkKF9feDg2XzY0KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX01f QU1ENjQpIHx8IGRlZmluZWQoX01fWDY0KQorIAorIHVuc2lnbmVkIGxvbmcgIE9QRU5TU0xfaWEz MmNhcF9QPTA7CisrdW5zaWduZWQgbG9uZyBsb25nICBPUEVOU1NMX2lhMzJjYXBfWD0wOworIHVu c2lnbmVkIGxvbmcgKk9QRU5TU0xfaWEzMmNhcF9sb2Modm9pZCkgeyByZXR1cm4gJk9QRU5TU0xf aWEzMmNhcF9QOyB9CisgCisgI2lmIGRlZmluZWQoT1BFTlNTTF9DUFVJRF9PQkopICYmICFkZWZp bmVkKE9QRU5TU0xfTk9fQVNNKSAmJiAhZGVmaW5lZChJMzg2X09OTFkpCisgI2RlZmluZSBPUEVO U1NMX0NQVUlEX1NFVFVQCisgdm9pZCBPUEVOU1NMX2NwdWlkX3NldHVwKHZvaWQpCisgeyBzdGF0 aWMgaW50IHRyaWdnZXI9MDsKKy0gIHVuc2lnbmVkIGxvbmcgT1BFTlNTTF9pYTMyX2NwdWlkKHZv aWQpOworKyAgdW5zaWduZWQgbG9uZyBsb25nIE9QRU5TU0xfaWEzMl9jcHVpZCh2b2lkKTsKKyAg IGNoYXIgKmVudjsKKyAKKyAgICAgaWYgKHRyaWdnZXIpCXJldHVybjsKKyAKKyAgICAgdHJpZ2dl cj0xOworICAgICBpZiAoKGVudj1nZXRlbnYoIk9QRU5TU0xfaWEzMmNhcCIpKSkKKy0JT1BFTlNT TF9pYTMyY2FwX1AgPSBzdHJ0b3VsKGVudixOVUxMLDApfCgxPDwxMCk7CisrCU9QRU5TU0xfaWEz MmNhcF9YID0gT1BFTlNTTF9pYTMyY2FwX1AgPSBzdHJ0b3VsKGVudixOVUxMLDApfCgxPDwxMCk7 CisgICAgIGVsc2UKKy0JT1BFTlNTTF9pYTMyY2FwX1AgPSBPUEVOU1NMX2lhMzJfY3B1aWQoKXwo MTw8MTApOworKwlPUEVOU1NMX2lhMzJjYXBfUCA9IE9QRU5TU0xfaWEzMmNhcF9YID0gT1BFTlNT TF9pYTMyX2NwdWlkKCl8KDE8PDEwKTsKKyAgICAgLyoKKyAgICAgICogfCgxPDwxMCkgc2V0cyBh IHJlc2VydmVkIGJpdCB0byBzaWduYWwgdGhhdCB2YXJpYWJsZQorICAgICAgKiB3YXMgaW5pdGlh bGl6ZWQgYWxyZWFkeS4uLiBUaGlzIGlzIHRvIGF2b2lkIGludGVyZmVyZW5jZQorZGlmZiAtdXAg b3BlbnNzbC0xLjAuMGQvY3J5cHRvL2VuZ2luZS9lbmdfYWVzbmkuYy5pbnRlbG9wdHMgb3BlbnNz bC0xLjAuMGQvY3J5cHRvL2VuZ2luZS9lbmdfYWVzbmkuYworLS0tIG9wZW5zc2wtMS4wLjBkL2Ny eXB0by9lbmdpbmUvZW5nX2Flc25pLmMuaW50ZWxvcHRzCTIwMTEtMDgtMjQgMTI6MzY6MzMuMDAw MDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjAuMGQvY3J5cHRvL2VuZ2luZS9lbmdfYWVzbmku YwkyMDExLTA4LTI0IDEyOjM2OjMzLjAwMDAwMDAwMCArMDIwMAorQEAgLTE1NywxNiArMTU3LDIw IEBAIHR5cGVkZWYgdW5zaWduZWQgX19pbnQ2NCBJQTMyQ0FQOworIHR5cGVkZWYgdW5zaWduZWQg bG9uZyBsb25nIElBMzJDQVA7CisgI2VuZGlmCisgCisrZXh0ZXJuIElBMzJDQVAgT1BFTlNTTF9p YTMyY2FwX1g7CisrCisgLyogUHJlcGFyZSB0aGUgRU5HSU5FIHN0cnVjdHVyZSBmb3IgcmVnaXN0 cmF0aW9uICovCisgc3RhdGljIGludAorIGFlc25pX2JpbmRfaGVscGVyKEVOR0lORSAqZSkKKyB7 CisgCWludCBlbmdhZ2U7CistCWlmIChzaXplb2YoT1BFTlNTTF9pYTMyY2FwX1ApID4gNCkgewor LQkJZW5nYWdlID0gKE9QRU5TU0xfaWEzMmNhcF9QID4+IDU3KSAmIDE7CistCX0gZWxzZSB7Cist CQlJQTMyQ0FQIE9QRU5TU0xfaWEzMl9jcHVpZCh2b2lkKTsKKy0JCWVuZ2FnZSA9IChPUEVOU1NM X2lhMzJfY3B1aWQoKSA+PiA1NykgJiAxOworKwllbmdhZ2UgPSAoT1BFTlNTTF9pYTMyY2FwX1gg Pj4gNTcpICYgMTsKKysKKysJLyogRGlzYWJsZSB0aGUgQUVTLU5JIHN1cHBvcnQgaWYgdGhlIGVu dmlyb25tZW50IHZhcmlhYmxlCisrCSAqIE9QRU5TU0xfRElTQUJMRV9BRVNfTkkgaXMgc2V0IHRv IGFueSB2YWx1ZQorKwkgKi8KKysJaWYgKGdldGVudigiT1BFTlNTTF9ESVNBQkxFX0FFU19OSSIp ICE9IE5VTEwpIHsKKysJCWVuZ2FnZSA9IDA7CisgCX0KKyAKKyAJLyogUmVnaXN0ZXIgZXZlcnl0 aGluZyBvciByZXR1cm4gd2l0aCBhbiBlcnJvciAqLworZGlmZiAtdXAgb3BlbnNzbC0xLjAuMGQv Y3J5cHRvL2ZpcHMvZmlwc19zdGFuZGFsb25lX3NoYTEuYy5pbnRlbG9wdHMgb3BlbnNzbC0xLjAu MGQvY3J5cHRvL2ZpcHMvZmlwc19zdGFuZGFsb25lX3NoYTEuYworLS0tIG9wZW5zc2wtMS4wLjBk L2NyeXB0by9maXBzL2ZpcHNfc3RhbmRhbG9uZV9zaGExLmMuaW50ZWxvcHRzCTIwMTEtMDgtMjQg MTI6MzY6MzMuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjAuMGQvY3J5cHRvL2ZpcHMv Zmlwc19zdGFuZGFsb25lX3NoYTEuYwkyMDExLTA4LTI0IDEyOjM2OjMzLjAwMDAwMDAwMCArMDIw MAorQEAgLTYyLDYgKzYyLDggQEAgdm9pZCBPUEVOU1NMX2NsZWFuc2Uodm9pZCAqcCxzaXplX3Qg bGVuKQorIAorICNpZmRlZiBPUEVOU1NMX0ZJUFMKKyAKKyt1bnNpZ25lZCBsb25nIGxvbmcgT1BF TlNTTF9pYTMyY2FwX1ggPSAwOworKworIHN0YXRpYyB2b2lkIGhtYWNfaW5pdChTSEEyNTZfQ1RY ICptZF9jdHgsU0hBMjU2X0NUWCAqb19jdHgsCisgCQkgICAgICBjb25zdCBjaGFyICprZXkpCisg ICAgIHsKK2RpZmYgLXVwIG9wZW5zc2wtMS4wLjBkL2NyeXB0by9wZXJsYXNtL3g4NmFzbS5wbC5p bnRlbG9wdHMgb3BlbnNzbC0xLjAuMGQvY3J5cHRvL3Blcmxhc20veDg2YXNtLnBsCistLS0gb3Bl bnNzbC0xLjAuMGQvY3J5cHRvL3Blcmxhc20veDg2YXNtLnBsLmludGVsb3B0cwkyMDA4LTEyLTE3 IDIwOjU2OjQ3LjAwMDAwMDAwMCArMDEwMAorKysrIG9wZW5zc2wtMS4wLjBkL2NyeXB0by9wZXJs YXNtL3g4NmFzbS5wbAkyMDExLTA4LTI0IDEyOjM2OjM0LjAwMDAwMDAwMCArMDIwMAorQEAgLTEs NCArMSw0IEBACistIyEvdXNyL2Jpbi9lbnYgcGVybAorKyMhL3Vzci9iaW4vcGVybAorIAorICMg cmVxdWlyZSAneDg2YXNtLnBsJzsKKyAjICZhc21faW5pdCg8Zmxhdm9yPiwiZGVzLTU4Ni5wbCJb LCRpMzg2b25seV0pOworQEAgLTgwLDYgKzgwLDU3IEBAIHN1YiA6Om1vdnEKKyAgICAgewkmOjpn ZW5lcmljKCJtb3ZxIixAXyk7CQkJfQorIH0KKyAKKysjIFNTRT4yIGluc3RydWN0aW9ucworK215 ICVyZWdybSA9ICgJImVheCI9PjAsICJlY3giPT4xLCAiZWR4Ij0+MiwgImVieCI9PjMsCisrCQki ZXNwIj0+NCwgImVicCI9PjUsICJlc2kiPT42LCAiZWRpIj0+NwkpOworK3N1YiA6OnBleHRyZAor K3sgbXkoJGRzdCwkc3JjLCRpbW0pPUBfOworKyAgICBpZiAoIiRkc3Q6JHNyYyIgPX4gLyhlW2Et ZHNkXVtpeHBdKTp4bW0oWzAtN10pLykKKysgICAgewkmOjpkYXRhX2J5dGUoMHg2NiwweDBmLDB4 M2EsMHgxNiwweGMwfCgkMjw8Myl8JHJlZ3JteyQxfSwkaW1tKTsJfQorKyAgICBlbHNlCisrICAg IHsJJjo6Z2VuZXJpYygicGV4dHJkIixAXyk7CQl9CisrfQorKworK3N1YiA6OnBpbnNyZAorK3sg bXkoJGRzdCwkc3JjLCRpbW0pPUBfOworKyAgICBpZiAoIiRkc3Q6JHNyYyIgPX4gL3htbShbMC03 XSk6KGVbYS1kc2RdW2l4cF0pLykKKysgICAgewkmOjpkYXRhX2J5dGUoMHg2NiwweDBmLDB4M2Es MHgyMiwweGMwfCgkMTw8Myl8JHJlZ3JteyQyfSwkaW1tKTsJfQorKyAgICBlbHNlCisrICAgIHsJ Jjo6Z2VuZXJpYygicGluc3JkIixAXyk7CQl9CisrfQorKworK3N1YiA6OnBzaHVmYgorK3sgbXko JGRzdCwkc3JjKT1AXzsKKysgICAgaWYgKCIkZHN0OiRzcmMiID1+IC94bW0oWzAtN10pOnhtbShb MC03XSkvKQorKyAgICB7CSZkYXRhX2J5dGUoMHg2NiwweDBmLDB4MzgsMHgwMCwweGMwfCgkMTw8 Myl8JDIpOwl9CisrICAgIGVsc2UKKysgICAgewkmOjpnZW5lcmljKCJwc2h1ZmIiLEBfKTsJCX0K Kyt9CisrCisrc3ViIDo6cGFsaWducgorK3sgbXkoJGRzdCwkc3JjLCRpbW0pPUBfOworKyAgICBp ZiAoIiRkc3Q6JHNyYyIgPX4gL3htbShbMC03XSk6eG1tKFswLTddKS8pCisrICAgIHsJJjo6ZGF0 YV9ieXRlKDB4NjYsMHgwZiwweDNhLDB4MGYsMHhjMHwoJDE8PDMpfCQyLCRpbW0pOwl9CisrICAg IGVsc2UKKysgICAgewkmOjpnZW5lcmljKCJwYWxpZ25yIixAXyk7CQl9CisrfQorKworK3N1YiA6 OnBjbG11bHFkcQorK3sgbXkoJGRzdCwkc3JjLCRpbW0pPUBfOworKyAgICBpZiAoIiRkc3Q6JHNy YyIgPX4gL3htbShbMC03XSk6eG1tKFswLTddKS8pCisrICAgIHsJJjo6ZGF0YV9ieXRlKDB4NjYs MHgwZiwweDNhLDB4NDQsMHhjMHwoJDE8PDMpfCQyLCRpbW0pOwl9CisrICAgIGVsc2UKKysgICAg ewkmOjpnZW5lcmljKCJwY2xtdWxxZHEiLEBfKTsJCX0KKyt9CisrCisrc3ViIDo6cmRyYW5kCisr eyBteSAoJGRzdCk9QF87CisrICAgIGlmICgkZHN0ID1+IC8oZVthLWRzZF1baXhwXSkvKQorKyAg ICB7CSY6OmRhdGFfYnl0ZSgweDBmLDB4YzcsMHhmMHwkcmVncm17JGRzdH0pOwl9CisrICAgIGVs c2UKKysgICAgewkmOjpnZW5lcmljKCJyZHJhbmQiLEBfKTsJfQorK30KKysKKyAjIGxhYmVsIG1h bmFnZW1lbnQKKyAkbGJkZWNvcj0iTCI7CQkjIGxvY2FsIGxhYmVsIGRlY29yYXRpb24sIHNldCBi eSBwYWNrYWdlCisgJGxhYmVsPSIwMDAiOworZGlmZiAtdXAgb3BlbnNzbC0xLjAuMGQvY3J5cHRv L3Blcmxhc20veDg2Z2FzLnBsLmludGVsb3B0cyBvcGVuc3NsLTEuMC4wZC9jcnlwdG8vcGVybGFz bS94ODZnYXMucGwKKy0tLSBvcGVuc3NsLTEuMC4wZC9jcnlwdG8vcGVybGFzbS94ODZnYXMucGwu aW50ZWxvcHRzCTIwMDgtMTItMTcgMjA6NTY6NDcuMDAwMDAwMDAwICswMTAwCisrKysgb3BlbnNz bC0xLjAuMGQvY3J5cHRvL3Blcmxhc20veDg2Z2FzLnBsCTIwMTEtMDgtMjQgMTI6MzY6MzQuMDAw MDAwMDAwICswMjAwCitAQCAtMSw0ICsxLDQgQEAKKy0jIS91c3IvYmluL2VudiBwZXJsCisrIyEv dXNyL2Jpbi9wZXJsCisgCisgcGFja2FnZSB4ODZnYXM7CisgCitAQCAtOTEsNiArOTEsNyBAQCBz dWIgOjpEV1AKKyB9Cisgc3ViIDo6UVdQCXsgJjo6RFdQKEBfKTsJfQorIHN1YiA6OkJQCXsgJjo6 RFdQKEBfKTsJfQorK3N1YiA6OldQCXsgJjo6RFdQKEBfKTsJfQorIHN1YiA6OkJDCXsgQF87CQl9 Cisgc3ViIDo6RFdDCXsgQF87CQl9CisgCitAQCAtMTYxLDEwICsxNjIsMTYgQEAgc3ViIDo6Zmls ZV9lbmQKKyAJICAgIHsJcHVzaChAb3V0LCIkbm9uX2xhenlfcHRyeyRpfTpcbi5pbmRpcmVjdF9z eW1ib2xcdCRpXG4ubG9uZ1x0MFxuIik7ICAgfQorIAl9CisgICAgIH0KKysgICAgaWYgKGdyZXAg ey9cYiR7bm1kZWNvcn1PUEVOU1NMX2lhMzJjYXBfWFxiL2l9IEBvdXQpIHsKKysJbXkgJHRtcD0i LmNvbW1cdCR7bm1kZWNvcn1PUEVOU1NMX2lhMzJjYXBfWCw4IjsKKysJaWYgKCQ6OmVsZikJeyBw dXNoIChAb3V0LCIkdG1wLDRcbiIpOyB9CisrCWVsc2UJCXsgcHVzaCAoQG91dCwiJHRtcFxuIik7 IH0KKysgICAgfQorICAgICBwdXNoKEBvdXQsJGluaXRzZWcpIGlmICgkaW5pdHNlZyk7CisgfQor IAorIHN1YiA6OmRhdGFfYnl0ZQl7ICAgcHVzaChAb3V0LCIuYnl0ZVx0Ii5qb2luKCcsJyxAXyku IlxuIik7ICAgfQorK3N1YiA6OmRhdGFfc2hvcnR7ICAgcHVzaChAb3V0LCIudmFsdWVcdCIuam9p bignLCcsQF8pLiJcbiIpOyAgfQorIHN1YiA6OmRhdGFfd29yZCB7ICAgcHVzaChAb3V0LCIubG9u Z1x0Ii5qb2luKCcsJyxAXykuIlxuIik7ICAgfQorIAorIHN1YiA6OmFsaWduCitkaWZmIC11cCBv cGVuc3NsLTEuMC4wZC9jcnlwdG8vcGVybGFzbS94ODZfNjQteGxhdGUucGwuaW50ZWxvcHRzIG9w ZW5zc2wtMS4wLjBkL2NyeXB0by9wZXJsYXNtL3g4Nl82NC14bGF0ZS5wbAorLS0tIG9wZW5zc2wt MS4wLjBkL2NyeXB0by9wZXJsYXNtL3g4Nl82NC14bGF0ZS5wbC5pbnRlbG9wdHMJMjAxMC0xMC0x MCAyMzoxNDoxNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4wZC9jcnlwdG8vcGVy bGFzbS94ODZfNjQteGxhdGUucGwJMjAxMS0wOC0yNCAxMjozNjozNC4wMDAwMDAwMDAgKzAyMDAK K0BAIC0xLDQgKzEsNCBAQAorLSMhL3Vzci9iaW4vZW52IHBlcmwKKysjIS91c3IvYmluL3BlcmwK KyAKKyAjIEFzY2V0aWMgeDg2XzY0IEFUJlQgdG8gTUFTTS9OQVNNIGFzc2VtYmxlciB0cmFuc2xh dG9yIGJ5IDxhcHBybz4uCisgIworQEAgLTEyMSw3ICsxMjEsMTEgQEAgbXkgJWdsb2JhbHM7Cisg CQkkc2VsZi0+e3N6fSA9ICJiIjsKKyAJICAgIH0gZWxzaWYgKCRzZWxmLT57b3B9ID1+IC9jYWxs fGptcC8pIHsKKyAJCSRzZWxmLT57c3p9ID0gIiI7CistCSAgICB9IGVsc2lmICgkc2VsZi0+e29w fSA9fiAvXnAvICYmICQnICF+IC9eKHVzaHxvcCkvKSB7ICMgU1NFbgorKwkgICAgfSBlbHNpZiAo JHNlbGYtPntvcH0gPX4gL15wLyAmJiAkJyAhfiAvXih1c2h8b3B8aW5zcncpLykgeyAjIFNTRW4K KysJCSRzZWxmLT57c3p9ID0gIiI7CisrCSAgICB9IGVsc2lmICgkc2VsZi0+e29wfSA9fiAvXnYv KSB7ICMgVkVYCisrCQkkc2VsZi0+e3N6fSA9ICIiOworKwkgICAgfSBlbHNpZiAoJHNlbGYtPntv cH0gPX4gL21vdnEvICYmICRsaW5lID1+IC8leG1tLykgeworIAkJJHNlbGYtPntzen0gPSAiIjsK KyAJICAgIH0gZWxzaWYgKCRzZWxmLT57b3B9ID1+IC8oW2Etel17Myx9KShbcWx3Yl0pJC8pIHsK KyAJCSRzZWxmLT57b3B9ID0gJDE7CitAQCAtMjQ2LDM1ICsyNTAsMzggQEAgbXkgJWdsb2JhbHM7 CisgCSRzZWxmLT57aW5kZXh9ID1+IHMvXltlcl0oLj9bMC05eHBpXSlbZF0/JC9yXDEvOworIAkk c2VsZi0+e2Jhc2V9ICA9fiBzL15bZXJdKC4/WzAtOXhwaV0pW2RdPyQvclwxLzsKKyAKKysJIyBT b2xhcmlzIC91c3IvY2NzL2Jpbi9hcyBjYW4ndCBoYW5kbGUgbXVsdGlwbGljYXRpb25zCisrCSMg aW4gJHNlbGYtPntsYWJlbH0sIG5ldyBnYXMgcmVxdWlyZXMgc2lnbiBleHRlbnNpb24uLi4KKysJ dXNlIGludGVnZXI7CisrCSRzZWxmLT57bGFiZWx9ID1+IHMvKD88IVtcd1wkXC5dKSgweD9bMC05 YS1mXSspL29jdCgkMSkvZWdpOworKwkkc2VsZi0+e2xhYmVsfSA9fiBzLyhbMC05XStccypbXCpc L1wlXVxzKlswLTldKykvZXZhbCgkMSkvZWc7CisrCSRzZWxmLT57bGFiZWx9ID1+IHMvKFswLTld KykvJDE8PDMyPj4zMi9lZzsKKysKKyAJaWYgKCRnYXMpIHsKKy0JICAgICMgU29sYXJpcyAvdXNy L2Njcy9iaW4vYXMgY2FuJ3QgaGFuZGxlIG11bHRpcGxpY2F0aW9ucworLQkgICAgIyBpbiAkc2Vs Zi0+e2xhYmVsfSwgbmV3IGdhcyByZXF1aXJlcyBzaWduIGV4dGVuc2lvbi4uLgorLQkgICAgdXNl IGludGVnZXI7CistCSAgICAkc2VsZi0+e2xhYmVsfSA9fiBzLyg/PCFbXHdcJFwuXSkoMHg/WzAt OWEtZl0rKS9vY3QoJDEpL2VnaTsKKy0JICAgICRzZWxmLT57bGFiZWx9ID1+IHMvKFswLTldK1xz KltcKlwvXCVdXHMqWzAtOV0rKS9ldmFsKCQxKS9lZzsKKy0JICAgICRzZWxmLT57bGFiZWx9ID1+ IHMvKFswLTldKykvJDE8PDMyPj4zMi9lZzsKKyAJICAgICRzZWxmLT57bGFiZWx9ID1+IHMvXl9f X2ltcF8vX19pbXBfXy8gICBpZiAoJGZsYXZvdXIgZXEgIm1pbmd3NjQiKTsKKyAKKyAJICAgIGlm IChkZWZpbmVkKCRzZWxmLT57aW5kZXh9KSkgeworLQkJc3ByaW50ZiAiJXMlcyglJSVzLCUlJXMs JWQpIiwkc2VsZi0+e2FzdGVyaXNrfSwKKy0JCQkJCSRzZWxmLT57bGFiZWx9LCRzZWxmLT57YmFz ZX0sCisrCQlzcHJpbnRmICIlcyVzKCVzLCUlJXMsJWQpIiwkc2VsZi0+e2FzdGVyaXNrfSwKKysJ CQkJCSRzZWxmLT57bGFiZWx9LAorKwkJCQkJJHNlbGYtPntiYXNlfT8iJSRzZWxmLT57YmFzZX0i OiIiLAorIAkJCQkJJHNlbGYtPntpbmRleH0sJHNlbGYtPntzY2FsZX07CisgCSAgICB9IGVsc2Ug eworIAkJc3ByaW50ZiAiJXMlcyglJSVzKSIsCSRzZWxmLT57YXN0ZXJpc2t9LCRzZWxmLT57bGFi ZWx9LCRzZWxmLT57YmFzZX07CisgCSAgICB9CisgCX0gZWxzZSB7CistCSAgICAlc3ptYXAgPSAo IGI9PiJCWVRFJFBUUiIsIHc9PiJXT1JEJFBUUiIsIGw9PiJEV09SRCRQVFIiLCBxPT4iUVdPUkQk UFRSIiApOworKwkgICAgJXN6bWFwID0gKAliPT4iQllURSRQVFIiLCB3PT4iV09SRCRQVFIiLCBs PT4iRFdPUkQkUFRSIiwKKysJICAgIAkJcT0+IlFXT1JEJFBUUiIsbz0+Ik9XT1JEJFBUUiIseD0+ IlhNTVdPUkQkUFRSIiApOworIAorIAkgICAgJHNlbGYtPntsYWJlbH0gPX4gcy9cLi9cJC9nOwor IAkgICAgJHNlbGYtPntsYWJlbH0gPX4gcy8oPzwhW1x3XCRcLl0pMHgoWzAtOWEtZl0rKS8wJDFo L2lnOworIAkgICAgJHNlbGYtPntsYWJlbH0gPSAiKCRzZWxmLT57bGFiZWx9KSIgaWYgKCRzZWxm LT57bGFiZWx9ID1+IC9bXCpcK1wtXC9dLyk7CistCSAgICAkc3o9InEiIGlmICgkc2VsZi0+e2Fz dGVyaXNrfSk7CisrCSAgICAkc3o9InEiIGlmICgkc2VsZi0+e2FzdGVyaXNrfSB8fCBvcGNvZGUt Pm1uZW1vbmljKCkgZXEgIm1vdnEiKTsKKyAKKyAJICAgIGlmIChkZWZpbmVkKCRzZWxmLT57aW5k ZXh9KSkgeworLQkJc3ByaW50ZiAiJXNbJXMlcyolZCslc10iLCRzem1hcHskc3p9LAorKwkJc3By aW50ZiAiJXNbJXMlcyolZCVzXSIsJHN6bWFweyRzen0sCisgCQkJCQkkc2VsZi0+e2xhYmVsfT8i JHNlbGYtPntsYWJlbH0rIjoiIiwKKyAJCQkJCSRzZWxmLT57aW5kZXh9LCRzZWxmLT57c2NhbGV9 LAorLQkJCQkJJHNlbGYtPntiYXNlfTsKKysJCQkJCSRzZWxmLT57YmFzZX0/Iiskc2VsZi0+e2Jh c2V9IjoiIjsKKyAJICAgIH0gZWxzaWYgKCRzZWxmLT57YmFzZX0gZXEgInJpcCIpIHsKKyAJCXNw cmludGYgIiVzWyVzXSIsJHN6bWFweyRzen0sJHNlbGYtPntsYWJlbH07CisgCSAgICB9IGVsc2Ug eworQEAgLTUwNiw2ICs1MTMsMTEgQEAgbXkgJWdsb2JhbHM7CisgCQkgICAgfQorIAkJfSBlbHNp ZiAoJGRpciA9fiAvXC4odGV4dHxkYXRhKS8pIHsKKyAJCSAgICAkY3VycmVudF9zZWdtZW50PSIu JDEiOworKwkJfSBlbHNpZiAoJGRpciA9fiAvXC5oaWRkZW4vKSB7CisrCQkgICAgaWYgICAgKCRm bGF2b3VyIGVxICJtYWNvc3giKSAgeyAkc2VsZi0+e3ZhbHVlfSA9ICIucHJpdmF0ZV9leHRlcm5c dCRwcmVmaXgkbGluZSI7IH0KKysJCSAgICBlbHNpZiAoJGZsYXZvdXIgZXEgIm1pbmd3NjQiKSB7 ICRzZWxmLT57dmFsdWV9ID0gIiI7IH0KKysJCX0gZWxzaWYgKCRkaXIgPX4gL1wuY29tbS8pIHsK KysJCSAgICAkc2VsZi0+e3ZhbHVlfSA9ICIkZGlyXHQkcHJlZml4JGxpbmUiOworIAkJfQorIAkJ JGxpbmUgPSAiIjsKKyAJCXJldHVybiAkc2VsZjsKK0BAIC02MTMsNiArNjI1LDE5IEBAIG15ICVn bG9iYWxzOworIAkJCQkJCS5qb2luKCIsIixAc3RyKSBpZiAoQHN0cik7CisgCQkJCSAgICBsYXN0 OworIAkJCQkgIH07CisrCQkvXC5jb21tLyAgICAmJiBkbyB7IG15IEBzdHI9c3BsaXQoLyxccyov LCRsaW5lKTsKKysJCQkJICAgIG15ICR2PXVuZGVmOworKwkJCQkgICAgaWYgKCRuYXNtKSB7Cisr CQkJCQkkdi49ImNvbW1vbgkkcHJlZml4QHN0clswXSBAc3RyWzFdIjsKKysJCQkJICAgIH0gZWxz ZSB7CisrCQkJCQkkdj0iJGN1cnJlbnRfc2VnbWVudFx0RU5EU1xuIiBpZiAoJGN1cnJlbnRfc2Vn bWVudCk7CisrCQkJCQkkY3VycmVudF9zZWdtZW50ID0gIl9EQVRBIjsKKysJCQkJCSR2Lj0iJGN1 cnJlbnRfc2VnbWVudFx0U0VHTUVOVFxuIjsKKysJCQkJCSR2Lj0iQ09NTQlAc3RyWzBdOkRXT1JE OiIuQHN0clsxXS80OworKwkJCQkgICAgfQorKwkJCQkgICAgJHNlbGYtPnt2YWx1ZX0gPSAkdjsK KysJCQkJICAgIGxhc3Q7CisrCQkJCSAgfTsKKyAJICAgIH0KKyAJICAgICRsaW5lID0gIiI7Cisg CX0KK0BAIC02MjUsOSArNjUwLDEzMyBAQCBteSAlZ2xvYmFsczsKKyAgICAgfQorIH0KKyAKKytz dWIgcmV4IHsKKysgbG9jYWwgKm9wY29kZT1zaGlmdDsKKysgbXkgKCRkc3QsJHNyYywkcmV4KT1A XzsKKysKKysgICAkcmV4fD0weDA0IGlmKCRkc3Q+PTgpOworKyAgICRyZXh8PTB4MDEgaWYoJHNy Yz49OCk7CisrICAgcHVzaCBAb3Bjb2RlLCgkcmV4fDB4NDApIGlmICgkcmV4KTsKKyt9CisrCisr IyBvbGRlciBnYXMgYW5kIG1sNjQgZG9uJ3QgaGFuZGxlIFNTRT4yIGluc3RydWN0aW9ucworK215 ICVyZWdybSA9ICgJIiVlYXgiPT4wLCAiJWVjeCI9PjEsICIlZWR4Ij0+MiwgIiVlYngiPT4zLAor KwkJIiVlc3AiPT40LCAiJWVicCI9PjUsICIlZXNpIj0+NiwgIiVlZGkiPT43CSk7CisrCisrbXkg JG1vdnEgPSBzdWIgewkjIGVsZGVybHkgZ2FzIGNhbid0IGhhbmRsZSBpbnRlci1yZWdpc3RlciBt b3ZxCisrICBteSAkYXJnID0gc2hpZnQ7CisrICBteSBAb3Bjb2RlPSgweDY2KTsKKysgICAgaWYg KCRhcmcgPX4gLyV4bW0oWzAtOV0rKSwlcihcdyspLykgeworKwlteSAoJHNyYywkZHN0KT0oJDEs JDIpOworKwlpZiAoJGRzdCAhfiAvWzAtOV0rLykJeyAkZHN0ID0gJHJlZ3JteyIlZSRkc3QifTsg fQorKwlyZXgoXEBvcGNvZGUsJHNyYywkZHN0LDB4OCk7CisrCXB1c2ggQG9wY29kZSwweDBmLDB4 N2U7CisrCXB1c2ggQG9wY29kZSwweGMwfCgoJHNyYyY3KTw8Myl8KCRkc3QmNyk7CSMgTW9kUi9N CisrCUBvcGNvZGU7CisrICAgIH0gZWxzaWYgKCRhcmcgPX4gLyVyKFx3KyksJXhtbShbMC05XSsp LykgeworKwlteSAoJHNyYywkZHN0KT0oJDIsJDEpOworKwlpZiAoJGRzdCAhfiAvWzAtOV0rLykJ eyAkZHN0ID0gJHJlZ3JteyIlZSRkc3QifTsgfQorKwlyZXgoXEBvcGNvZGUsJHNyYywkZHN0LDB4 OCk7CisrCXB1c2ggQG9wY29kZSwweDBmLDB4NmU7CisrCXB1c2ggQG9wY29kZSwweGMwfCgoJHNy YyY3KTw8Myl8KCRkc3QmNyk7CSMgTW9kUi9NCisrCUBvcGNvZGU7CisrICAgIH0gZWxzZSB7Cisr CSgpOworKyAgICB9CisrfTsKKysKKytteSAkcGV4dHJkID0gc3ViIHsKKysgICAgaWYgKHNoaWZ0 ID1+IC9cJChbMC05XSspLCV4bW0oWzAtOV0rKSwoJVx3KykvKSB7CisrICAgICAgbXkgQG9wY29k ZT0oMHg2Nik7CisrCSRpbW09JDE7CisrCSRzcmM9JDI7CisrCSRkc3Q9JDM7CisrCWlmICgkZHN0 ID1+IC8lcihbMC05XSspZC8pCXsgJGRzdCA9ICQxOyB9CisrCWVsc2lmICgkZHN0ID1+IC8lZS8p CQl7ICRkc3QgPSAkcmVncm17JGRzdH07IH0KKysJcmV4KFxAb3Bjb2RlLCRzcmMsJGRzdCk7Cisr CXB1c2ggQG9wY29kZSwweDBmLDB4M2EsMHgxNjsKKysJcHVzaCBAb3Bjb2RlLDB4YzB8KCgkc3Jj JjcpPDwzKXwoJGRzdCY3KTsJIyBNb2RSL00KKysJcHVzaCBAb3Bjb2RlLCRpbW07CisrCUBvcGNv ZGU7CisrICAgIH0gZWxzZSB7CisrCSgpOworKyAgICB9CisrfTsKKysKKytteSAkcGluc3JkID0g c3ViIHsKKysgICAgaWYgKHNoaWZ0ID1+IC9cJChbMC05XSspLCglXHcrKSwleG1tKFswLTldKykv KSB7CisrICAgICAgbXkgQG9wY29kZT0oMHg2Nik7CisrCSRpbW09JDE7CisrCSRzcmM9JDI7Cisr CSRkc3Q9JDM7CisrCWlmICgkc3JjID1+IC8lcihbMC05XSspLykJeyAkc3JjID0gJDE7IH0KKysJ ZWxzaWYgKCRzcmMgPX4gLyVlLykJCXsgJHNyYyA9ICRyZWdybXskc3JjfTsgfQorKwlyZXgoXEBv cGNvZGUsJGRzdCwkc3JjKTsKKysJcHVzaCBAb3Bjb2RlLDB4MGYsMHgzYSwweDIyOworKwlwdXNo IEBvcGNvZGUsMHhjMHwoKCRkc3QmNyk8PDMpfCgkc3JjJjcpOwkjIE1vZFIvTQorKwlwdXNoIEBv cGNvZGUsJGltbTsKKysJQG9wY29kZTsKKysgICAgfSBlbHNlIHsKKysJKCk7CisrICAgIH0KKyt9 OworKworK215ICRwc2h1ZmIgPSBzdWIgeworKyAgICBpZiAoc2hpZnQgPX4gLyV4bW0oWzAtOV0r KSwleG1tKFswLTldKykvKSB7CisrICAgICAgbXkgQG9wY29kZT0oMHg2Nik7CisrCXJleChcQG9w Y29kZSwkMiwkMSk7CisrCXB1c2ggQG9wY29kZSwweDBmLDB4MzgsMHgwMDsKKysJcHVzaCBAb3Bj b2RlLDB4YzB8KCQxJjcpfCgoJDImNyk8PDMpOwkJIyBNb2RSL00KKysJQG9wY29kZTsKKysgICAg fSBlbHNlIHsKKysJKCk7CisrICAgIH0KKyt9OworKworK215ICRwYWxpZ25yID0gc3ViIHsKKysg ICAgaWYgKHNoaWZ0ID1+IC9cJChbMC05XSspLCV4bW0oWzAtOV0rKSwleG1tKFswLTldKykvKSB7 CisrICAgICAgbXkgQG9wY29kZT0oMHg2Nik7CisrCXJleChcQG9wY29kZSwkMywkMik7CisrCXB1 c2ggQG9wY29kZSwweDBmLDB4M2EsMHgwZjsKKysJcHVzaCBAb3Bjb2RlLDB4YzB8KCQyJjcpfCgo JDMmNyk8PDMpOwkJIyBNb2RSL00KKysJcHVzaCBAb3Bjb2RlLCQxOworKwlAb3Bjb2RlOworKyAg ICB9IGVsc2UgeworKwkoKTsKKysgICAgfQorK307CisrCisrbXkgJHBjbG11bHFkcSA9IHN1YiB7 CisrICAgIGlmIChzaGlmdCA9fiAvXCQoW3gwLTlhLWZdKyksXHMqJXhtbShbMC05XSspLFxzKiV4 bW0oWzAtOV0rKS8pIHsKKysgICAgICBteSBAb3Bjb2RlPSgweDY2KTsKKysJcmV4KFxAb3Bjb2Rl LCQzLCQyKTsKKysJcHVzaCBAb3Bjb2RlLDB4MGYsMHgzYSwweDQ0OworKwlwdXNoIEBvcGNvZGUs MHhjMHwoJDImNyl8KCgkMyY3KTw8Myk7CQkjIE1vZFIvTQorKwlteSAkYz0kMTsKKysJcHVzaCBA b3Bjb2RlLCRjPX4vXjAvP29jdCgkYyk6JGM7CisrCUBvcGNvZGU7CisrICAgIH0gZWxzZSB7Cisr CSgpOworKyAgICB9CisrfTsKKysKKytteSAkcmRyYW5kID0gc3ViIHsKKysgICAgaWYgKHNoaWZ0 ID1+IC8lW2VyXShcdyspLykgeworKyAgICAgIG15IEBvcGNvZGU9KCk7CisrICAgICAgbXkgJGRz dD0kMTsKKysJaWYgKCRkc3QgIX4gL1swLTldKy8pIHsgJGRzdCA9ICRyZWdybXsiJWUkZHN0In07 IH0KKysJcmV4KFxAb3Bjb2RlLDAsJDEsOCk7CisrCXB1c2ggQG9wY29kZSwweDBmLDB4YzcsMHhm MHwoJGRzdCY3KTsKKysJQG9wY29kZTsKKysgICAgfSBlbHNlIHsKKysJKCk7CisrICAgIH0KKyt9 OworKworIGlmICgkbmFzbSkgeworICAgICBwcmludCA8PF9fXzsKKyBkZWZhdWx0CXJlbAorKyVk ZWZpbmUgWE1NV09SRAorIF9fXworIH0gZWxzaWYgKCRtYXNtKSB7CisgICAgIHByaW50IDw8X19f OworQEAgLTY0NCwxNCArNzkzLDIyIEBAIHdoaWxlKCRsaW5lPTw+KSB7CisgCisgICAgIHVuZGVm ICRsYWJlbDsKKyAgICAgdW5kZWYgJG9wY29kZTsKKy0gICAgdW5kZWYgJHN6OworICAgICB1bmRl ZiBAYXJnczsKKyAKKyAgICAgaWYgKCRsYWJlbD1sYWJlbC0+cmUoXCRsaW5lKSkJeyBwcmludCAk bGFiZWwtPm91dCgpOyB9CisgCisgICAgIGlmIChkaXJlY3RpdmUtPnJlKFwkbGluZSkpIHsKKyAJ cHJpbnRmICIlcyIsZGlyZWN0aXZlLT5vdXQoKTsKKy0gICAgfSBlbHNpZiAoJG9wY29kZT1vcGNv ZGUtPnJlKFwkbGluZSkpIHsgQVJHVU1FTlQ6IHdoaWxlICgxKSB7CisrICAgIH0gZWxzaWYgKCRv cGNvZGU9b3Bjb2RlLT5yZShcJGxpbmUpKSB7CisrCW15ICRhc20gPSBldmFsKCJcJCIuJG9wY29k ZS0+bW5lbW9uaWMoKSk7CisrCXVuZGVmIEBieXRlczsKKysJCisrCWlmICgocmVmKCRhc20pIGVx ICdDT0RFJykgJiYgc2NhbGFyKEBieXRlcz0mJGFzbSgkbGluZSkpKSB7CisrCSAgICBwcmludCAk Z2FzPyIuYnl0ZVx0IjoiREJcdCIsam9pbignLCcsQGJ5dGVzKSwiXG4iOworKwkgICAgbmV4dDsK KysJfQorKworKwlBUkdVTUVOVDogd2hpbGUgKDEpIHsKKyAJbXkgJGFyZzsKKyAKKyAJaWYgKCRh cmc9cmVnaXN0ZXItPnJlKFwkbGluZSkpCXsgb3Bjb2RlLT5zaXplKCRhcmctPnNpemUoKSk7IH0K K0BAIC02NjcsMTkgKzgyNCwyNiBAQCB3aGlsZSgkbGluZT08PikgeworIAkkbGluZSA9fiBzL14s XHMqLy87CisgCX0gIyBBUkdVTUVOVDoKKyAKKy0JJHN6PW9wY29kZS0+c2l6ZSgpOworLQorIAlp ZiAoJCNhcmdzPj0wKSB7CisgCSAgICBteSAkaW5zbjsKKysJICAgIG15ICRzej1vcGNvZGUtPnNp emUoKTsKKysKKyAJICAgIGlmICgkZ2FzKSB7CisgCQkkaW5zbiA9ICRvcGNvZGUtPm91dCgkI2Fy Z3M+PTE/JGFyZ3NbJCNhcmdzXS0+c2l6ZSgpOiRzeik7CisrCQlAYXJncyA9IG1hcCgkXy0+b3V0 KCRzeiksQGFyZ3MpOworKwkJcHJpbnRmICJcdCVzXHQlcyIsJGluc24sam9pbigiLCIsQGFyZ3Mp OworIAkgICAgfSBlbHNlIHsKKyAJCSRpbnNuID0gJG9wY29kZS0+b3V0KCk7CistCQkkaW5zbiAu PSAkc3ogaWYgKG1hcCgkXy0+b3V0KCkgPX4gL3g/bW0vLEBhcmdzKSk7CisrCQlmb3JlYWNoIChA YXJncykgeworKwkJICAgIG15ICRhcmcgPSAkXy0+b3V0KCk7CisrCQkgICAgIyAkaW5zbi49JHN6 IGNvbXBlbnNhdGVzIGZvciBtb3ZxLCBwaW5zcncsIC4uLgorKwkJICAgIGlmICgkYXJnID1+IC9e eG1tWzAtOV0rJC8pIHsgJGluc24uPSRzejsgJHN6PSJ4IiBpZighJHN6KTsgbGFzdDsgfQorKwkJ ICAgIGlmICgkYXJnID1+IC9ebW1bMC05XSskLykgIHsgJGluc24uPSRzejsgJHN6PSJxIiBpZigh JHN6KTsgbGFzdDsgfQorKwkJfQorIAkJQGFyZ3MgPSByZXZlcnNlKEBhcmdzKTsKKyAJCXVuZGVm ICRzeiBpZiAoJG5hc20gJiYgJG9wY29kZS0+bW5lbW9uaWMoKSBlcSAibGVhIik7CisrCQlwcmlu dGYgIlx0JXNcdCVzIiwkaW5zbixqb2luKCIsIixtYXAoJF8tPm91dCgkc3opLEBhcmdzKSk7Cisg CSAgICB9CistCSAgICBwcmludGYgIlx0JXNcdCVzIiwkaW5zbixqb2luKCIsIixtYXAoJF8tPm91 dCgkc3opLEBhcmdzKSk7CisgCX0gZWxzZSB7CisgCSAgICBwcmludGYgIlx0JXMiLCRvcGNvZGUt Pm91dCgpOworIAl9CitkaWZmIC11cCBvcGVuc3NsLTEuMC4wZC9jcnlwdG8vcmM0L2FzbS9yYzQt eDg2XzY0LnBsLmludGVsb3B0cyBvcGVuc3NsLTEuMC4wZC9jcnlwdG8vcmM0L2FzbS9yYzQteDg2 XzY0LnBsCistLS0gb3BlbnNzbC0xLjAuMGQvY3J5cHRvL3JjNC9hc20vcmM0LXg4Nl82NC5wbC5p bnRlbG9wdHMJMjAxMS0wOC0yNCAxMjozNjozMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3Ns LTEuMC4wZC9jcnlwdG8vcmM0L2FzbS9yYzQteDg2XzY0LnBsCTIwMTEtMDgtMjQgMTI6NDk6MDku MDAwMDAwMDAwICswMjAwCitAQCAtMSw0ICsxLDQgQEAKKy0jIS91c3IvYmluL2VudiBwZXJsCisr IyEvdXNyL2Jpbi9wZXJsCisgIworICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAjIFdyaXR0ZW4gYnkgQW5keSBQ b2x5YWtvdiA8YXBwcm9AZnkuY2hhbG1lcnMuc2U+IGZvciB0aGUgT3BlblNTTAorQEAgLTcsNiAr Nyw4IEBACisgIyBkZXRhaWxzIHNlZSBodHRwOi8vd3d3Lm9wZW5zc2wub3JnL35hcHByby9jcnlw dG9nYW1zLy4KKyAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CisgIworKyMgSnVseSAyMDA0CisrIworICMgMi4yMngg UkM0IHR1bmUtdXA6LSkgSXQgc2hvdWxkIGJlIG5vdGVkIHRob3VnaCB0aGF0IG15IGhhbmQgW2Fz IGluCisgIyAiaGFuZC1jb2RlZCBhc3NlbWJsZXIiXSBkb2Vzbid0IHN0YW5kIGZvciB0aGUgd2hv bGUgaW1wcm92ZW1lbnQKKyAjIGNvZWZmaWNpZW50LiBJdCB0dXJuZWQgb3V0IHRoYXQgZWxpbWlu YXRpbmcgUkM0X0NIQVIgZnJvbSBjb25maWcKK0BAIC0xOSw2ICsyMSw4IEBACisgIyB0byBvcGVy YXRlIG9uIHBhcnRpYWwgcmVnaXN0ZXJzLCBpdCB0dXJuZWQgb3V0IHRvIGJlIHRoZSBiZXN0IGJl dC4KKyAjIEF0IGxlYXN0IGZvciBBTUQuLi4gSG93IElBMzJFIHdvdWxkIHBlcmZvcm0gcmVtYWlu cyB0byBiZSBzZWVuLi4uCisgCisrIyBOb3ZlbWJlciAyMDA0CisrIworICMgQXMgd2FzIHNob3du IGJ5IE1hcmMgQmV2YW5kIHJlb3JkZXJpbmcgb2YgY291cGxlIG9mIGxvYWQgb3BlcmF0aW9ucwor ICMgcmVzdWx0cyBpbiBldmVuIGhpZ2hlciBwZXJmb3JtYW5jZSBnYWluIG9mIDMuM3g6LSkgQXQg bGVhc3Qgb24KKyAjIE9wdGVyb24uLi4gRm9yIHJlZmVyZW5jZSwgMXggaW4gdGhpcyBjYXNlIGlz IFJDNF9DSEFSIEMtY29kZQorQEAgLTI2LDYgKzMwLDggQEAKKyAjIExhdHRlciBtZWFucyB0aGF0 IGlmIHlvdSB3YW50IHRvICplc3RpbWF0ZSogd2hhdCB0byBleHBlY3QgZnJvbQorICMgKnlvdXIq IE9wdGVyb24sIHRoZW4gbXVsdGlwbHkgNTQgYnkgMy4zIGFuZCBjbG9jayBmcmVxdWVuY3kgaW4g R0h6LgorIAorKyMgTm92ZW1iZXIgMjAwNAorKyMKKyAjIEludGVsIFA0IEVNNjRUIGNvcmUgd2Fz IGZvdW5kIHRvIHJ1biB0aGUgQU1ENjQgY29kZSByZWFsbHkgc2xvdy4uLgorICMgVGhlIG9ubHkg d2F5IHRvIGFjaGlldmUgY29tcGFyYWJsZSBwZXJmb3JtYW5jZSBvbiBQNCB3YXMgdG8ga2VlcAor ICMgUkM0X0NIQVIuIEtpbmQgb2YgaXJvbmljLCBodWg/IEFzIGl0J3MgYXBwYXJlbnRseSBpbXBv c3NpYmxlIHRvCitAQCAtMzMsMTAgKzM5LDE0IEBACisgIyBvbiBlaXRoZXIgQU1EIGFuZCBJbnRl bCBwbGF0Zm9ybXMsIEkgaW1wbGVtZW50IGJvdGggY2FzZXMuIFNlZQorICMgcmM0X3NrZXkuYyBm b3IgZnVydGhlciBkZXRhaWxzLi4uCisgCisrIyBBcHJpbCAyMDA1CisrIworICMgUDQgRU02NFQg Y29yZSBhcHBlYXJzIHRvIGJlICJhbGxlcmdpYyIgdG8gNjQtYml0IGluYy9kZWMuIFJlcGxhY2lu ZyAKKyAjIHRob3NlIHdpdGggYWRkL3N1YiByZXN1bHRzIGluIDUwJSBwZXJmb3JtYW5jZSBpbXBy b3ZlbWVudCBvZiBmb2xkZWQKKyAjIGxvb3AuLi4KKyAKKysjIE1heSAyMDA1CisrIworICMgQXMg d2FzIHNob3duIGJ5IFpvdSBOYW5oYWkgbG9vcCB1bnJvbGxpbmcgY2FuIGltcHJvdmUgSW50ZWwg RU02NFQKKyAjIHBlcmZvcm1hbmNlIGJ5ID4zMCUgW3VubGlrZSBQNCAzMi1iaXQgY2FzZSB0aGF0 IGlzXS4gQnV0IHRoaXMgaXMKKyAjIHByb3ZpZGVkIHRoYXQgbG9hZHMgYXJlIHJlb3JkZXJlZCBl dmVuIG1vcmUgYWdncmVzc2l2ZWx5ISBCb3RoIGNvZGUKK0BAIC01MCw2ICs2MCw4IEBACisgIyBp cyBub3QgaW1wbGVtZW50ZWQsIHRoZW4gdGhpcyBmaW5hbCBSQzRfQ0hBUiBjb2RlLXBhdGggc2hv dWxkIGJlCisgIyBwcmVmZXJyZWQsIGFzIGl0IHByb3ZpZGVzIGJldHRlciAqYWxsLXJvdW5kKiBw ZXJmb3JtYW5jZV0uCisgCisrIyBNYXJjaCAyMDA3CisrIworICMgSW50ZWwgQ29yZTIgd2FzIG9i c2VydmVkIHRvIHBlcmZvcm0gcG9vcmx5IG9uIGJvdGggY29kZSBwYXRoczotKCBJdAorICMgYXBw YXJlbnRseSBzdWZmZXJzIGZyb20gc29tZSBraW5kIG9mIHBhcnRpYWwgcmVnaXN0ZXIgc3RhbGws IHdoaWNoCisgIyBvY2N1cnMgaW4gNjQtYml0IG1vZGUgb25seSBbYXMgdmlydHVhbGx5IGlkZW50 aWNhbCAzMi1iaXQgbG9vcCB3YXMKK0BAIC01OCw2ICs3MCwzNCBAQAorICMgZml0IGZvciBDb3Jl MiBhbmQgdGhlcmVmb3JlIHRoZSBjb2RlIHdhcyBtb2RpZmllZCB0byBza2lwIGNsb29wOCBvbgor ICMgdGhpcyBDUFUuCisgCisrIyBNYXkgMjAxMAorKyMKKysjIEludGVsIFdlc3RtZXJlIHdhcyBv YnNlcnZlZCB0byBwZXJmb3JtIHN1Ym9wdGltYWxseS4gQWRkaW5nIHlldAorKyMgYW5vdGhlciBt b3Z6YiB0byBjbG9vcDEgaW1wcm92ZWQgcGVyZm9ybWFuY2UgYnkgYWxtb3N0IDUwJSEgQ29yZTIK KysjIHBlcmZvcm1hbmNlIGlzIGltcHJvdmVkIHRvbywgYnV0IG5vbWluYWxseS4uLgorKworKyMg TWF5IDIwMTEKKysjCisrIyBUaGUgb25seSBjb2RlIHBhdGggdGhhdCB3YXMgbm90IG1vZGlmaWVk IGlzIFA0LXNwZWNpZmljIG9uZS4gTm9uLVA0CisrIyBJbnRlbCBjb2RlIHBhdGggb3B0aW1pemF0 aW9uIGlzIGhlYXZpbHkgYmFzZWQgb24gc3VibWlzc2lvbiBieSBNYXhpbQorKyMgUGVybWlub3Ys IE1heGltIExvY2t0eXVraGluIGFuZCBKaW0gR3VpbGZvcmQgb2YgSW50ZWwuIEkndmUgdXNlZAor KyMgc29tZSBvZiB0aGUgaWRlYXMgZXZlbiBpbiBhdHRlbXB0IHRvIG9wdG1pemUgdGhlIG9yaWdp bmFsIFJDNF9JTlQKKysjIGNvZGUgcGF0aC4uLiBDdXJyZW50IHBlcmZvcm1hbmNlIGluIGN5Y2xl cyBwZXIgcHJvY2Vzc2VkIGJ5dGUgKGxlc3MKKysjIGlzIGJldHRlcikgYW5kIGltcHJvdmVtZW50 IGNvZWZmaWNpZW50cyByZWxhdGl2ZSB0byBwcmV2aW91cworKyMgdmVyc2lvbiBvZiB0aGlzIG1v ZHVsZSBhcmU6CisrIworKyMgT3B0ZXJvbgk1LjMvKzAlCisrIyBQNAkJNi41CisrIyBDb3JlMgkJ Ni4yLysxNSUoKikKKysjIFdlc3RtZXJlCTQuMi8rNjAlCisrIyBTYW5keSBCcmlkZ2UJNC4yLysx MjAlCisrIyBBdG9tCQk5LjMvKzgwJQorKyMKKysjICgqKQlOb3RlIHRoYXQgQ29yZTIgcmVzdWx0 IGlzIH4xNSUgbG93ZXIgdGhhbiBjb3JyZXNwb25kaW5nIHJlc3VsdAorKyMJZm9yIDMyLWJpdCBj b2RlLCBtZWFuaW5nIHRoYXQgaXQncyBwb3NzaWJsZSB0byBpbXByb3ZlIGl0LAorKyMJYnV0IG1v cmUgdGhhbiBsaWtlbHkgYXQgdGhlIGNvc3Qgb2YgdGhlIG90aGVycyAoc2VlIHJjNC01ODYucGwK KysjCXRvIGdldCB0aGUgaWRlYSkuLi4KKysKKyAkZmxhdm91ciA9IHNoaWZ0OworICRvdXRwdXQg ID0gc2hpZnQ7CisgaWYgKCRmbGF2b3VyID1+IC9cLi8pIHsgJG91dHB1dCA9ICRmbGF2b3VyOyB1 bmRlZiAkZmxhdm91cjsgfQorQEAgLTc2LDEzICsxMTYsMTAgQEAgJGxlbj0iJXJzaSI7CSAgICAj IGFyZzIKKyAkaW5wPSIlcmR4IjsJICAgICMgYXJnMworICRvdXQ9IiVyY3giOwkgICAgIyBhcmc0 CisgCistQFhYPSgiJXI4IiwiJXIxMCIpOworLUBUWD0oIiVyOSIsIiVyMTEiKTsKKy0kWVk9IiVy MTIiOworLSRUWT0iJXIxMyI7CistCisreworICRjb2RlPTw8X19fOworIC50ZXh0CisrLmV4dGVy bglPUEVOU1NMX2lhMzJjYXBfUAorIAorIC5nbG9ibAlSQzQKKyAudHlwZQlSQzQsXEBmdW5jdGlv biw0CitAQCAtOTUsNDggKzEzMiwxNzMgQEAgUkM0OglvcgkkbGVuLCRsZW4KKyAJcHVzaAklcjEy CisgCXB1c2gJJXIxMworIC5McHJvbG9ndWU6CisrCW1vdgkkbGVuLCVyMTEKKysJbW92CSRpbnAs JXIxMgorKwltb3YJJG91dCwlcjEzCisrX19fCisrbXkgJGxlbj0iJXIxMSI7CQkjIHJlYXNzaWdu IGlucHV0IGFyZ3VtZW50cworK215ICRpbnA9IiVyMTIiOworK215ICRvdXQ9IiVyMTMiOworKwor K215IEBYWD0oIiVyMTAiLCIlcnNpIik7CisrbXkgQFRYPSgiJXJheCIsIiVyYngiKTsKKytteSAk WVk9IiVyY3giOworK215ICRUWT0iJXJkeCI7CisgCistCWFkZAlcJDgsJGRhdAorLQltb3ZsCS04 KCRkYXQpLCRYWFswXSNkCistCW1vdmwJLTQoJGRhdCksJFlZI2QKKyskY29kZS49PDxfX187Cisr CXhvcgkkWFhbMF0sJFhYWzBdCisrCXhvcgkkWVksJFlZCisrCisrCWxlYQk4KCRkYXQpLCRkYXQK KysJbW92CS04KCRkYXQpLCRYWFswXSNiCisrCW1vdgktNCgkZGF0KSwkWVkjYgorIAljbXBsCVwk LTEsMjU2KCRkYXQpCisgCWplCS5MUkM0X0NIQVIKKysJbW92CU9QRU5TU0xfaWEzMmNhcF9QKCVy aXApLCVyOGQKKysJeG9yCSRUWFsxXSwkVFhbMV0KKyAJaW5jCSRYWFswXSNiCisrCXN1YgkkWFhb MF0sJFRYWzFdCisrCXN1YgkkaW5wLCRvdXQKKyAJbW92bAkoJGRhdCwkWFhbMF0sNCksJFRYWzBd I2QKKy0JdGVzdAlcJC04LCRsZW4KKysJdGVzdAlcJC0xNiwkbGVuCisgCWp6CS5MbG9vcDEKKy0J am1wCS5MbG9vcDgKKysJYnQJXCQzMCwlcjhkCSMgSW50ZWwgQ1BVPworKwlqYwkuTGludGVsCisr CWFuZAlcJDcsJFRYWzFdCisrCWxlYQkxKCRYWFswXSksJFhYWzFdCisrCWp6CS5Mb29wOAorKwlz dWIJJFRYWzFdLCRsZW4KKysuTG9vcDhfd2FybXVwOgorKwlhZGQJJFRYWzBdI2IsJFlZI2IKKysJ bW92bAkoJGRhdCwkWVksNCksJFRZI2QKKysJbW92bAkkVFhbMF0jZCwoJGRhdCwkWVksNCkKKysJ bW92bAkkVFkjZCwoJGRhdCwkWFhbMF0sNCkKKysJYWRkCSRUWSNiLCRUWFswXSNiCisrCWluYwkk WFhbMF0jYgorKwltb3ZsCSgkZGF0LCRUWFswXSw0KSwkVFkjZAorKwltb3ZsCSgkZGF0LCRYWFsw XSw0KSwkVFhbMF0jZAorKwl4b3JiCSgkaW5wKSwkVFkjYgorKwltb3ZiCSRUWSNiLCgkb3V0LCRp bnApCisrCWxlYQkxKCRpbnApLCRpbnAKKysJZGVjCSRUWFsxXQorKwlqbnoJLkxvb3A4X3dhcm11 cAorKworKwlsZWEJMSgkWFhbMF0pLCRYWFsxXQorKwlqbXAJLkxvb3A4CisgLmFsaWduCTE2Cist Lkxsb29wODoKKysuTG9vcDg6CisgX19fCisgZm9yICgkaT0wOyRpPDg7JGkrKykgeworKyRjb2Rl Lj08PF9fXyBpZiAoJGk9PTcpOworKwlhZGQJXCQ4LCRYWFsxXSNiCisrX19fCisgJGNvZGUuPTw8 X19fOworIAlhZGQJJFRYWzBdI2IsJFlZI2IKKy0JbW92CSRYWFswXSwkWFhbMV0KKyAJbW92bAko JGRhdCwkWVksNCksJFRZI2QKKy0Jcm9yCVwkOCwlcmF4CQkJIyByb3IgaXMgcmVkdW5kYW50IHdo ZW4gJGk9MAorLQlpbmMJJFhYWzFdI2IKKy0JbW92bAkoJGRhdCwkWFhbMV0sNCksJFRYWzFdI2QK Ky0JY21wCSRYWFsxXSwkWVkKKyAJbW92bAkkVFhbMF0jZCwoJGRhdCwkWVksNCkKKy0JY21vdmUJ JFRYWzBdLCRUWFsxXQorLQltb3ZsCSRUWSNkLCgkZGF0LCRYWFswXSw0KQorKwltb3ZsCWA0Kigk aT09Nz8tMTokaSlgKCRkYXQsJFhYWzFdLDQpLCRUWFsxXSNkCisrCXJvcglcJDgsJXI4CQkJCSMg cm9yIGlzIHJlZHVuZGFudCB3aGVuICRpPTAKKysJbW92bAkkVFkjZCw0KiRpKCRkYXQsJFhYWzBd LDQpCisgCWFkZAkkVFhbMF0jYiwkVFkjYgorLQltb3ZiCSgkZGF0LCRUWSw0KSwlYWwKKysJbW92 YgkoJGRhdCwkVFksNCksJXI4YgorIF9fXworLXB1c2goQFRYLHNoaWZ0KEBUWCkpOyBwdXNoKEBY WCxzaGlmdChAWFgpKTsJIyAicm90YXRlIiByZWdpc3RlcnMKKytwdXNoKEBUWCxzaGlmdChAVFgp KTsgI3B1c2goQFhYLHNoaWZ0KEBYWCkpOwkjICJyb3RhdGUiIHJlZ2lzdGVycworIH0KKyAkY29k ZS49PDxfX187CistCXJvcglcJDgsJXJheAorKwlhZGQJXCQ4LCRYWFswXSNiCisrCXJvcglcJDgs JXI4CisgCXN1YglcJDgsJGxlbgorIAorLQl4b3IJKCRpbnApLCVyYXgKKy0JYWRkCVwkOCwkaW5w CistCW1vdgklcmF4LCgkb3V0KQorLQlhZGQJXCQ4LCRvdXQKKysJeG9yCSgkaW5wKSwlcjgKKysJ bW92CSVyOCwoJG91dCwkaW5wKQorKwlsZWEJOCgkaW5wKSwkaW5wCisgCisgCXRlc3QJXCQtOCwk bGVuCistCWpuegkuTGxvb3A4CisrCWpuegkuTG9vcDgKKysJY21wCVwkMCwkbGVuCisrCWpuZQku TGxvb3AxCisrCWptcAkuTGV4aXQKKysKKysuYWxpZ24JMTYKKysuTGludGVsOgorKwl0ZXN0CVwk LTMyLCRsZW4KKysJanoJLkxsb29wMQorKwlhbmQJXCQxNSwkVFhbMV0KKysJanoJLkxvb3AxNl9p c19ob3QKKysJc3ViCSRUWFsxXSwkbGVuCisrLkxvb3AxNl93YXJtdXA6CisrCWFkZAkkVFhbMF0j YiwkWVkjYgorKwltb3ZsCSgkZGF0LCRZWSw0KSwkVFkjZAorKwltb3ZsCSRUWFswXSNkLCgkZGF0 LCRZWSw0KQorKwltb3ZsCSRUWSNkLCgkZGF0LCRYWFswXSw0KQorKwlhZGQJJFRZI2IsJFRYWzBd I2IKKysJaW5jCSRYWFswXSNiCisrCW1vdmwJKCRkYXQsJFRYWzBdLDQpLCRUWSNkCisrCW1vdmwJ KCRkYXQsJFhYWzBdLDQpLCRUWFswXSNkCisrCXhvcmIJKCRpbnApLCRUWSNiCisrCW1vdmIJJFRZ I2IsKCRvdXQsJGlucCkKKysJbGVhCTEoJGlucCksJGlucAorKwlkZWMJJFRYWzFdCisrCWpuegku TG9vcDE2X3dhcm11cAorKworKwltb3YJJFlZLCRUWFsxXQorKwl4b3IJJFlZLCRZWQorKwltb3YJ JFRYWzFdI2IsJFlZI2IKKysKKysuTG9vcDE2X2lzX2hvdDoKKysJbGVhCSgkZGF0LCRYWFswXSw0 KSwkWFhbMV0KKytfX18KKytzdWIgUkM0X2xvb3AgeworKyAgbXkgJGk9c2hpZnQ7CisrICBteSAk aj0kaTwwPzA6JGk7CisrICBteSAkeG1tPSIleG1tIi4oJGomMSk7CisrCisrICAgICRjb2RlLj0i CWFkZAlcJDE2LCRYWFswXSNiXG4iCQlpZiAoJGk9PTE1KTsKKysgICAgJGNvZGUuPSIJbW92ZHF1 CSgkaW5wKSwleG1tMlxuIgkJCWlmICgkaT09MTUpOworKyAgICAkY29kZS49IglhZGQJJFRYWzBd I2IsJFlZI2JcbiIJCWlmICgkaTw9MCk7CisrICAgICRjb2RlLj0iCW1vdmwJKCRkYXQsJFlZLDQp LCRUWSNkXG4iOworKyAgICAkY29kZS49IglweG9yCSV4bW0wLCV4bW0yXG4iCQkJaWYgKCRpPT0w KTsKKysgICAgJGNvZGUuPSIJcHNsbHEJXCQ4LCV4bW0xXG4iCQkJaWYgKCRpPT0wKTsKKysgICAg JGNvZGUuPSIJcHhvcgkkeG1tLCR4bW1cbiIJCQlpZiAoJGk8PTEpOworKyAgICAkY29kZS49Iglt b3ZsCSRUWFswXSNkLCgkZGF0LCRZWSw0KVxuIjsKKysgICAgJGNvZGUuPSIJYWRkCSRUWSNiLCRU WFswXSNiXG4iOworKyAgICAkY29kZS49Igltb3ZsCWA0KigkaisxKWAoJFhYWzFdKSwkVFhbMV0j ZFxuIglpZiAoJGk8MTUpOworKyAgICAkY29kZS49Igltb3Z6CSRUWFswXSNiLCRUWFswXSNkXG4i OworKyAgICAkY29kZS49Igltb3ZsCSRUWSNkLGA0KiRqYCgkWFhbMV0pXG4iOworKyAgICAkY29k ZS49IglweG9yCSV4bW0xLCV4bW0yXG4iCQkJaWYgKCRpPT0wKTsKKysgICAgJGNvZGUuPSIJbGVh CSgkZGF0LCRYWFswXSw0KSwkWFhbMV1cbiIJaWYgKCRpPT0xNSk7CisrICAgICRjb2RlLj0iCWFk ZAkkVFhbMV0jYiwkWVkjYlxuIgkJaWYgKCRpPDE1KTsKKysgICAgJGNvZGUuPSIJcGluc3J3CVwk YCRqPj4xYCwoJGRhdCwkVFhbMF0sNCksJHhtbVxuIjsKKysgICAgJGNvZGUuPSIJbW92ZHF1CSV4 bW0yLCgkb3V0LCRpbnApXG4iCQlpZiAoJGk9PTApOworKyAgICAkY29kZS49IglsZWEJMTYoJGlu cCksJGlucFxuIgkJaWYgKCRpPT0wKTsKKysgICAgJGNvZGUuPSIJbW92bAkoJFhYWzFdKSwkVFhb MV0jZFxuIgkJaWYgKCRpPT0xNSk7CisrfQorKwlSQzRfbG9vcCgtMSk7CisrJGNvZGUuPTw8X19f OworKwlqbXAJLkxvb3AxNl9lbnRlcgorKy5hbGlnbgkxNgorKy5Mb29wMTY6CisrX19fCisrCisr Zm9yICgkaT0wOyRpPDE2OyRpKyspIHsKKysgICAgJGNvZGUuPSIuTG9vcDE2X2VudGVyOlxuIgkJ aWYgKCRpPT0xKTsKKysJUkM0X2xvb3AoJGkpOworKwlwdXNoKEBUWCxzaGlmdChAVFgpKTsgCQkj ICJyb3RhdGUiIHJlZ2lzdGVycworK30KKyskY29kZS49PDxfX187CisrCW1vdgkkWVksJFRYWzFd CisrCXhvcgkkWVksJFlZCQkJIyBrZXl3b3JkIHRvIHBhcnRpYWwgcmVnaXN0ZXIKKysJc3ViCVwk MTYsJGxlbgorKwltb3YJJFRYWzFdI2IsJFlZI2IKKysJdGVzdAlcJC0xNiwkbGVuCisrCWpuegku TG9vcDE2CisrCisrCXBzbGxxCVwkOCwleG1tMQorKwlweG9yCSV4bW0wLCV4bW0yCisrCXB4b3IJ JXhtbTEsJXhtbTIKKysJbW92ZHF1CSV4bW0yLCgkb3V0LCRpbnApCisrCWxlYQkxNigkaW5wKSwk aW5wCisrCisgCWNtcAlcJDAsJGxlbgorIAlqbmUJLkxsb29wMQorIAlqbXAJLkxleGl0CitAQCAt MTUyLDkgKzMxNCw4IEBAICRjb2RlLj08PF9fXzsKKyAJbW92bAkoJGRhdCwkVFhbMF0sNCksJFRZ I2QKKyAJbW92bAkoJGRhdCwkWFhbMF0sNCksJFRYWzBdI2QKKyAJeG9yYgkoJGlucCksJFRZI2IK Ky0JaW5jCSRpbnAKKy0JbW92YgkkVFkjYiwoJG91dCkKKy0JaW5jCSRvdXQKKysJbW92YgkkVFkj YiwoJG91dCwkaW5wKQorKwlsZWEJMSgkaW5wKSwkaW5wCisgCWRlYwkkbGVuCisgCWpuegkuTGxv b3AxCisgCWptcAkuTGV4aXQKK0BAIC0xNjUsMTMgKzMyNiwxMSBAQCAkY29kZS49PDxfX187Cisg CW1vdnpiCSgkZGF0LCRYWFswXSksJFRYWzBdI2QKKyAJdGVzdAlcJC04LCRsZW4KKyAJanoJLkxj bG9vcDEKKy0JY21wbAlcJDAsMjYwKCRkYXQpCistCWpuegkuTGNsb29wMQorIAlqbXAJLkxjbG9v cDgKKyAuYWxpZ24JMTYKKyAuTGNsb29wODoKKy0JbW92CSgkaW5wKSwlZWF4CistCW1vdgk0KCRp bnApLCVlYngKKysJbW92CSgkaW5wKSwlcjhkCisrCW1vdgk0KCRpbnApLCVyOWQKKyBfX18KKyAj IHVucm9sbCAyeDQtd2lzZSwgYmVjYXVzZSA2NC1iaXQgcm90YXRlcyBraWxsIEludGVsIFA0Li4u CisgZm9yICgkaT0wOyRpPDQ7JGkrKykgeworQEAgLTE4OCw4ICszNDcsOCBAQCAkY29kZS49PDxf X187CisgCW1vdgkkVFhbMF0sJFRYWzFdCisgLkxjbW92JGk6CisgCWFkZAkkVFhbMF0jYiwkVFkj YgorLQl4b3IJKCRkYXQsJFRZKSwlYWwKKy0Jcm9yCVwkOCwlZWF4CisrCXhvcgkoJGRhdCwkVFkp LCVyOGIKKysJcm9yCVwkOCwlcjhkCisgX19fCisgcHVzaChAVFgsc2hpZnQoQFRYKSk7IHB1c2go QFhYLHNoaWZ0KEBYWCkpOwkjICJyb3RhdGUiIHJlZ2lzdGVycworIH0KK0BAIC0yMDcsMTYgKzM2 NiwxNiBAQCAkY29kZS49PDxfX187CisgCW1vdgkkVFhbMF0sJFRYWzFdCisgLkxjbW92JGk6Cisg CWFkZAkkVFhbMF0jYiwkVFkjYgorLQl4b3IJKCRkYXQsJFRZKSwlYmwKKy0Jcm9yCVwkOCwlZWJ4 CisrCXhvcgkoJGRhdCwkVFkpLCVyOWIKKysJcm9yCVwkOCwlcjlkCisgX19fCisgcHVzaChAVFgs c2hpZnQoQFRYKSk7IHB1c2goQFhYLHNoaWZ0KEBYWCkpOwkjICJyb3RhdGUiIHJlZ2lzdGVycwor IH0KKyAkY29kZS49PDxfX187CisgCWxlYQktOCgkbGVuKSwkbGVuCistCW1vdgklZWF4LCgkb3V0 KQorKwltb3YJJXI4ZCwoJG91dCkKKyAJbGVhCTgoJGlucCksJGlucAorLQltb3YJJWVieCw0KCRv dXQpCisrCW1vdgklcjlkLDQoJG91dCkKKyAJbGVhCTgoJG91dCksJG91dAorIAorIAl0ZXN0CVwk LTgsJGxlbgorQEAgLTIyOSw2ICszODgsNyBAQCAkY29kZS49PDxfX187CisgLmFsaWduCTE2Cisg LkxjbG9vcDE6CisgCWFkZAkkVFhbMF0jYiwkWVkjYgorKwltb3Z6YgkkWVkjYiwkWVkjZAorIAlt b3Z6YgkoJGRhdCwkWVkpLCRUWSNkCisgCW1vdmIJJFRYWzBdI2IsKCRkYXQsJFlZKQorIAltb3Zi CSRUWSNiLCgkZGF0LCRYWFswXSkKK0BAIC0yNjAsMTIgKzQyMCwxMiBAQCAkY29kZS49PDxfX187 CisgCXJldAorIC5zaXplCVJDNCwuLVJDNAorIF9fXworK30KKyAKKyAkaWR4PSIlcjgiOworICRp ZG89IiVyOSI7CisgCisgJGNvZGUuPTw8X19fOworLS5leHRlcm4JT1BFTlNTTF9pYTMyY2FwX1AK KyAuZ2xvYmwJUkM0X3NldF9rZXkKKyAudHlwZQlSQzRfc2V0X2tleSxcQGZ1bmN0aW9uLDMKKyAu YWxpZ24JMTYKK0BAIC0yODAsMTIgKzQ0MCw5IEBAIFJDNF9zZXRfa2V5OgorIAl4b3IJJXIxMSwl cjExCisgCisgCW1vdglPUEVOU1NMX2lhMzJjYXBfUCglcmlwKSwkaWR4I2QKKy0JYnQJXCQyMCwk aWR4I2QKKy0Jam5jCS5MdzFzdGxvb3AKKy0JYnQJXCQzMCwkaWR4I2QKKy0Jc2V0YwkkaWRvI2IK Ky0JbW92CSRpZG8jZCwyNjAoJGRhdCkKKy0Jam1wCS5MYzFzdGxvb3AKKysJYnQJXCQyMCwkaWR4 I2QJIyBSQzRfQ0hBUj8KKysJamMJLkxjMXN0bG9vcAorKwlqbXAJLkx3MXN0bG9vcAorIAorIC5h bGlnbgkxNgorIC5MdzFzdGxvb3A6CitAQCAtMzQ4LDE4ICs1MDUsMjAgQEAgUkM0X29wdGlvbnM6 CisgCWxlYQkuTG9wdHMoJXJpcCksJXJheAorIAltb3YJT1BFTlNTTF9pYTMyY2FwX1AoJXJpcCks JWVkeAorIAlidAlcJDIwLCVlZHgKKy0Jam5jCS5MZG9uZQorLQlhZGQJXCQxMiwlcmF4CisrCWpj CS5MOHhjaGFyCisgCWJ0CVwkMzAsJWVkeAorIAlqbmMJLkxkb25lCistCWFkZAlcJDEzLCVyYXgK KysJYWRkCVwkMjUsJXJheAorKwlyZXQKKysuTDh4Y2hhcjoKKysJYWRkCVwkMTIsJXJheAorIC5M ZG9uZToKKyAJcmV0CisgLmFsaWduCTY0CisgLkxvcHRzOgorIC5hc2NpegkicmM0KDh4LGludCki CisgLmFzY2l6CSJyYzQoOHgsY2hhcikiCistLmFzY2l6CSJyYzQoMXgsY2hhcikiCisrLmFzY2l6 CSJyYzQoMTZ4LGludCkiCisgLmFzY2l6CSJSQzQgZm9yIHg4Nl82NCwgQ1JZUFRPR0FNUyBieSA8 YXBwcm9cQG9wZW5zc2wub3JnPiIKKyAuYWxpZ24JNjQKKyAuc2l6ZQlSQzRfb3B0aW9ucywuLVJD NF9vcHRpb25zCitAQCAtNDk3LDggKzY1NiwxNyBAQCBrZXlfc2VfaGFuZGxlcjoKKyBfX18KKyB9 CisgCistJGNvZGUgPX4gcy8jKFtid2RdKS8kMS9nbTsKKytzdWIgcmVnX3BhcnQgeworK215ICgk cmVnLCRjb252KT1AXzsKKysgICAgaWYgKCRyZWcgPX4gLyVyWzAtOV0rLykJeyAkcmVnIC49ICRj b252OyB9CisrICAgIGVsc2lmICgkY29udiBlcSAiYiIpCXsgJHJlZyA9fiBzLyVbZXJdKFteeF0r KXg/LyUkMWwvOwl9CisrICAgIGVsc2lmICgkY29udiBlcSAidyIpCXsgJHJlZyA9fiBzLyVbZXJd KC4rKS8lJDEvOwkJfQorKyAgICBlbHNpZiAoJGNvbnYgZXEgImQiKQl7ICRyZWcgPX4gcy8lW2Vy XSguKykvJWUkMS87CQl9CisrICAgIHJldHVybiAkcmVnOworK30KKyAKKyskY29kZSA9fiBzLygl W2EtejAtOV0rKSMoW2J3ZF0pL3JlZ19wYXJ0KCQxLCQyKS9nZW07CisrJGNvZGUgPX4gcy9cYChb XlxgXSopXGAvZXZhbCAkMS9nZW07CisgJGNvZGUgPX4gcy9SQzRfc2V0X2tleS9wcml2YXRlX1JD NF9zZXRfa2V5L2cgaWYgKCRFTlZ7RklQU30gbmUgIiIpOworIAorIHByaW50ICRjb2RlOworZGlm ZiAtdXAgb3BlbnNzbC0xLjAuMGQvY3J5cHRvL3JjNC9hc20vcmM0LTU4Ni5wbC5pbnRlbG9wdHMg b3BlbnNzbC0xLjAuMGQvY3J5cHRvL3JjNC9hc20vcmM0LTU4Ni5wbAorLS0tIG9wZW5zc2wtMS4w LjBkL2NyeXB0by9yYzQvYXNtL3JjNC01ODYucGwuaW50ZWxvcHRzCTIwMTEtMDgtMjQgMTI6MzY6 MzMuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjAuMGQvY3J5cHRvL3JjNC9hc20vcmM0 LTU4Ni5wbAkyMDExLTA4LTI0IDEyOjUwOjQwLjAwMDAwMDAwMCArMDIwMAorQEAgLTEsNCArMSw0 IEBACistIyEvdXNyL2Jpbi9lbnYgcGVybAorKyMhL3Vzci9iaW4vcGVybAorIAorICMgPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKyAjIFtSZV13cml0dGVuIGJ5IEFuZHkgUG9seWFrb3YgPGFwcHJvQGZ5LmNoYWxtZXJz LnNlPiBmb3IgdGhlIE9wZW5TU0wKK0BAIC0yOCw2ICsyOCwzMyBAQAorICMKKyAjCQkJCQk8YXBw cm9AZnkuY2hhbG1lcnMuc2U+CisgCisrIyBNYXkgMjAxMQorKyMKKysjIE9wdGltaXplIGZvciBD b3JlMiBhbmQgV2VzdG1lcmUgW2FuZCBpbmNpZGVudGFsbHkgT3B0ZXJvbl0uIEN1cnJlbnQKKysj IHBlcmZvcm1hbmNlIGluIGN5Y2xlcyBwZXIgcHJvY2Vzc2VkIGJ5dGUgKGxlc3MgaXMgYmV0dGVy KSBpczoKKysjCisrIyBQZW50aXVtCTEwLjIJCQkjIG9yaWdpbmFsIG51bWJlcnMKKysjIFBlbnRp dW0gSUlJCTcuOCgqKQorKyMgSW50ZWwgUDQJNy41CisrIworKyMgT3B0ZXJvbgk2LjEvKzIwJQkJ IyBuZXcgTU1YIG51bWJlcnMKKysjIENvcmUyCQk1LjMvKzY3JSgqKikKKysjIFdlc3RtZXJlCTUu MS8rOTQlKCoqKQorKyMgU2FuZHkgQnJpZGdlCTUuMC8rOCUKKysjIEF0b20JCTEyLjYvKzYlCisr IworKyMgKCopCVBJSUkgY2FuIGFjdHVhbGx5IGRlbGl2ZXIgNi42IGN5Y2xlcyBwZXIgYnl0ZSB3 aXRoIE1NWCBjb2RlLAorKyMJYnV0IHRoaXMgc3BlY2lmaWMgY29kZSBwZXJmb3JtcyBwb29ybHkg b24gQ29yZTIuIEFuZCB2aWNlCisrIwl2ZXJzYSwgYmVsb3cgTU1YL1NTRSBjb2RlIGRlbGl2ZXJp bmcgNS44LzcuMSBvbiBDb3JlMiBwZXJmb3JtcworKyMJcG9vcmx5IG9uIFBJSUksIGF0IDguMC8x NC41Oi0oIEFzIFBJSUkgaXMgbm90IGEgImhvdCIgQ1BVCisrIwlbYW55bW9yZV0sIEkgY2hvc2Ug dG8gZGlzY2FyZCBQSUlJLXNwZWNpZmljIGNvZGUgcGF0aCBhbmQgb3B0CisrIwlmb3Igb3JpZ2lu YWwgSUFMVS1vbmx5IGNvZGUsIHdoaWNoIGlzIHdoeSBNTVgvU1NFIGNvZGUgcGF0aAorKyMJaXMg Z3VhcmRlZCBieSBTU0UyIGJpdCAoc2VlIGJlbG93KSwgbm90IE1NWC9TU0UuCisrIyAoKiopCVBl cmZvcm1hbmNlIHZzLiBibG9jayBzaXplIG9uIENvcmUyIGFuZCBXZXN0bWVyZSBoYWQgYSBtYXhp bXVtCisrIwlhdCAuLi4gNjQgYnl0ZXMgYmxvY2sgc2l6ZS4gQW5kIGl0IHdhcyBxdWl0ZSBhIG1h eGltdW0sIDQwLTYwJQorKyMJaW4gY29tcGFyaXNvbiB0byBsYXJnZXN0IDhLQiBibG9jayBzaXpl LiBBYm92ZSBpbXByb3ZlbWVudAorKyMJY29lZmZpY2llbnRzIGFyZSBmb3IgdGhlIGxhcmdlc3Qg YmxvY2sgc2l6ZS4KKysKKyAkMCA9fiBtLyguKltcL1xcXSlbXlwvXFxdKyQvOyAkZGlyPSQxOwor IHB1c2goQElOQywiJHtkaXJ9IiwiJHtkaXJ9Li4vLi4vcGVybGFzbSIpOworIHJlcXVpcmUgIng4 NmFzbS5wbCI7CitAQCAtNjIsNiArODksNjggQEAgc3ViIFJDNF9sb29wIHsKKyAJJiRmdW5jCSgk b3V0LCZEV1AoMCwkZGF0LCR0eSw0KSk7CisgfQorIAorK2lmICgkYWx0PTApIHsKKysgICMgPjIw JSBmYXN0ZXIgb24gQXRvbSBhbmQgU2FuZHkgQnJpZGdlWyFdLCA4JSBmYXN0ZXIgb24gT3B0ZXJv biwKKysgICMgYnV0IH40MCUgc2xvd2VyIG9uIENvcmUyIGFuZCBXZXN0bWVyZS4uLiBBdHRlbXB0 IHRvIGFkZCBtb3Z6CisrICAjIGJyaW5ncyBkb3duIE9wdGVyb24gYnkgMjUlLCBBdG9tIGFuZCBT YW5keSBCcmlkZ2UgYnkgMTUlLCB5ZXQKKysgICMgb24gQ29yZTIgd2l0aCBtb3Z6IGl0J3MgYWxt b3N0IDIwJSBzbG93ZXIgdGhhbiBiZWxvdyBhbHRlcm5hdGl2ZQorKyAgIyBjb2RlLi4uIFllcywg aXQncyBhIHRvdGFsIG1lc3MuLi4KKysgIG15IEBYWD0oJHh4LCRvdXQpOworKyAgJFJDNF9sb29w X21teCA9IHN1YiB7CQkjIFNTRSBhY3R1YWxseS4uLgorKyAgICBteSAkaT1zaGlmdDsKKysgICAg bXkgJGo9JGk8PTA/MDokaT4+MTsKKysgICAgbXkgJG1tPSRpPD0wPyJtbTAiOiJtbSIuKCRpJjEp OworKworKwkmYWRkCSgmTEIoJHl5KSwmTEIoJHR4KSk7CisrCSZsZWEJKEBYWFsxXSwmRFdQKDEs QFhYWzBdKSk7CisrCSZweG9yCSgibW0yIiwibW0wIikJCQkJaWYgKCRpPT0wKTsKKysJJnBzbGxx CSgibW0xIiw4KQkJCQlpZiAoJGk9PTApOworKwkmYW5kCShAWFhbMV0sMHhmZik7CisrCSZweG9y CSgibW0wIiwibW0wIikJCQkJaWYgKCRpPD0wKTsKKysJJm1vdgkoJHR5LCZEV1AoMCwkZGF0LCR5 eSw0KSk7CisrCSZtb3YJKCZEV1AoMCwkZGF0LCR5eSw0KSwkdHgpOworKwkmcHhvcgkoIm1tMSIs Im1tMiIpCQkJCWlmICgkaT09MCk7CisrCSZtb3YJKCZEV1AoMCwkZGF0LCRYWFswXSw0KSwkdHkp OworKwkmYWRkCSgmTEIoJHR5KSwmTEIoJHR4KSk7CisrCSZtb3ZkCShAWFhbMF0sIm1tNyIpCQkJ CWlmICgkaT09MCk7CisrCSZtb3YJKCR0eCwmRFdQKDAsJGRhdCxAWFhbMV0sNCkpOworKwkmcHhv cgkoIm1tMSIsIm1tMSIpCQkJCWlmICgkaT09MSk7CisrCSZtb3ZxCSgibW0yIiwmUVdQKDAsJGlu cCkpCQkJaWYgKCRpPT0xKTsKKysJJm1vdnEJKCZRV1AoLTgsKEBYWFswXSwkaW5wKSksIm1tMSIp CQlpZiAoJGk9PTApOworKwkmcGluc3J3CSgkbW0sJkRXUCgwLCRkYXQsJHR5LDQpLCRqKTsKKysK KysJcHVzaAkoQFhYLHNoaWZ0KEBYWCkpCQkJaWYgKCRpPj0wKTsKKysgIH0KKyt9IGVsc2Ugewor KyAgIyBVc2luZyBwaW5zcncgaGVyZSBpbXByb3ZlcyBwZXJmb3JtYW5lIG9uIEludGVsIENQVXMg YnkgMi0zJSwgYnV0CisrICAjIGJyaW5ncyBkb3duIEFNRCBieSA3JS4uLgorKyAgJFJDNF9sb29w X21teCA9IHN1YiB7CisrICAgIG15ICRpPXNoaWZ0OworKworKwkmYWRkCSgmTEIoJHl5KSwmTEIo JHR4KSk7CisrCSZwc2xscQkoIm1tMSIsOCooKCRpLTEpJjcpKQkJCWlmIChhYnMoJGkpIT0xKTsK KysJJm1vdgkoJHR5LCZEV1AoMCwkZGF0LCR5eSw0KSk7CisrCSZtb3YJKCZEV1AoMCwkZGF0LCR5 eSw0KSwkdHgpOworKwkmbW92CSgmRFdQKDAsJGRhdCwkeHgsNCksJHR5KTsKKysJJmluYwkoJHh4 KTsKKysJJmFkZAkoJHR5LCR0eCk7CisrCSZtb3Z6CSgkeHgsJkxCKCR4eCkpOwkJCQkjICgqKQor KwkmbW92egkoJHR5LCZMQigkdHkpKTsJCQkJIyAoKikKKysJJnB4b3IJKCJtbTIiLCRpPT0xPyJt bTAiOiJtbTEiKQkJaWYgKCRpPj0wKTsKKysJJm1vdnEJKCJtbTAiLCZRV1AoMCwkaW5wKSkJCQlp ZiAoJGk8PTApOworKwkmbW92cQkoJlFXUCgtOCwoJG91dCwkaW5wKSksIm1tMiIpCQlpZiAoJGk9 PTApOworKwkmbW92CSgkdHgsJkRXUCgwLCRkYXQsJHh4LDQpKTsKKysJJm1vdmQJKCRpPjA/Im1t MSI6Im1tMiIsJkRXUCgwLCRkYXQsJHR5LDQpKTsKKysKKysJIyAoKikJVGhpcyBpcyB0aGUga2V5 IHRvIENvcmUyIGFuZCBXZXN0bWVyZSBwZXJmb3JtYW5jZS4KKysJIwlXaGl0aG91dCBtb3Z6IG91 dC1vZi1vcmRlciBleGVjdXRpb24gbG9naWMgY29uZnVzZXMKKysJIwlpdHNlbGYgYW5kIGZhaWxz IHRvIHJlb3JkZXIgbG9hZHMgYW5kIHN0b3Jlcy4gUHJvYmxlbQorKwkjCWFwcGVhcnMgdG8gYmUg Zml4ZWQgaW4gU2FuZHkgQnJpZGdlLi4uCisrICB9CisrfQorKworKyZleHRlcm5hbF9sYWJlbCgi T1BFTlNTTF9pYTMyY2FwX1AiKTsKKysKKyAjIHZvaWQgUkM0KFJDNF9LRVkgKmtleSxzaXplX3Qg bGVuLGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucCx1bnNpZ25lZCBjaGFyICpvdXQpOworICZmdW5j dGlvbl9iZWdpbigiUkM0Iik7CisgCSZtb3YJKCRkYXQsJndwYXJhbSgwKSk7CSMgbG9hZCBrZXkg c2NoZWR1bGUgcG9pbnRlcgorQEAgLTk0LDExICsxODMsNTYgQEAgc3ViIFJDNF9sb29wIHsKKyAJ JmFuZAkoJHR5LC00KTsJCSMgaG93IG1hbnkgNC1ieXRlIGNodW5rcz8KKyAJJmp6CSgmbGFiZWwo Imxvb3AxIikpOworIAorKwkmdGVzdAkoJHR5LC04KTsKKysJJm1vdgkoJndwYXJhbSgzKSwkb3V0 KTsJIyAkb3V0IGFzIGFjY3VtdWxhdG9yIGluIHRoZXNlIGxvb3BzCisrCSZqegkoJmxhYmVsKCJn bzRsb29wNCIpKTsKKysKKysJJnBpY21ldXAoJG91dCwiT1BFTlNTTF9pYTMyY2FwX1AiKTsKKysJ JmJ0CSgmRFdQKDAsJG91dCksMjYpOwkjIGNoZWNrIFNTRTIgYml0IFtjb3VsZCBoYXZlIGJlZW4g TU1YXQorKwkmam5jCSgmbGFiZWwoImdvNGxvb3A0IikpOworKworKwkmbW92CSgkb3V0LCZ3cGFy YW0oMykpCWlmICghJGFsdCk7CisrCSZtb3ZkCSgibW03Iiwmd3BhcmFtKDMpKQlpZiAoJGFsdCk7 CisrCSZhbmQJKCR0eSwtOCk7CisrCSZsZWEJKCR0eSwmRFdQKC04LCRpbnAsJHR5KSk7CisrCSZt b3YJKCZEV1AoLTQsJGRhdCksJHR5KTsJIyBzYXZlIGlucHV0KyhsZW4vOCkqOC04CisrCisrCSYk UkM0X2xvb3BfbW14KC0xKTsKKysJJmptcCgmbGFiZWwoImxvb3BfbW14X2VudGVyIikpOworKwor Kwkmc2V0X2xhYmVsKCJsb29wX21teCIsMTYpOworKwkJJiRSQzRfbG9vcF9tbXgoMCk7CisrCSZz ZXRfbGFiZWwoImxvb3BfbW14X2VudGVyIik7CisrCQlmb3IgCSgkaT0xOyRpPDg7JGkrKykgeyAm JFJDNF9sb29wX21teCgkaSk7IH0KKysJCSZtb3YJKCR0eSwkeXkpOworKwkJJnhvcgkoJHl5LCR5 eSk7CQkjIHRoaXMgaXMgc2Vjb25kIGtleSB0byBDb3JlMgorKwkJJm1vdgkoJkxCKCR5eSksJkxC KCR0eSkpOwkjIGFuZCBXZXN0bWVyZSBwZXJmb3JtYW5jZS4uLgorKwkJJmNtcAkoJGlucCwmRFdQ KC00LCRkYXQpKTsKKysJCSZsZWEJKCRpbnAsJkRXUCg4LCRpbnApKTsKKysJJmpiCSgmbGFiZWwo Imxvb3BfbW14IikpOworKworKyAgICBpZiAoJGFsdCkgeworKwkmbW92ZAkoJG91dCwibW03Iik7 CisrCSZweG9yCSgibW0yIiwibW0wIik7CisrCSZwc2xscQkoIm1tMSIsOCk7CisrCSZweG9yCSgi bW0xIiwibW0yIik7CisrCSZtb3ZxCSgmUVdQKC04LCRvdXQsJGlucCksIm1tMSIpOworKyAgICB9 IGVsc2UgeworKwkmcHNsbHEJKCJtbTEiLDU2KTsKKysJJnB4b3IJKCJtbTIiLCJtbTEiKTsKKysJ Jm1vdnEJKCZRV1AoLTgsJG91dCwkaW5wKSwibW0yIik7CisrICAgIH0KKysJJmVtbXMJKCk7Cisr CisrCSZjbXAJKCRpbnAsJndwYXJhbSgxKSk7CSMgY29tcGFyZSB0byBpbnB1dCtsZW4KKysJJmpl CSgmbGFiZWwoImRvbmUiKSk7CisrCSZqbXAJKCZsYWJlbCgibG9vcDEiKSk7CisrCisrJnNldF9s YWJlbCgiZ280bG9vcDQiLDE2KTsKKyAJJmxlYQkoJHR5LCZEV1AoLTQsJGlucCwkdHkpKTsKKyAJ Jm1vdgkoJndwYXJhbSgyKSwkdHkpOwkjIHNhdmUgaW5wdXQrKGxlbi80KSo0LTQKKy0JJm1vdgko JndwYXJhbSgzKSwkb3V0KTsJIyAkb3V0IGFzIGFjY3VtdWxhdG9yIGluIHRoaXMgbG9vcAorIAor LQkmc2V0X2xhYmVsKCJsb29wNCIsMTYpOworKwkmc2V0X2xhYmVsKCJsb29wNCIpOworIAkJZm9y ICgkaT0wOyRpPDQ7JGkrKykgeyBSQzRfbG9vcCgkaSk7IH0KKyAJCSZyb3IJKCRvdXQsOCk7Cisg CQkmeG9yCSgkb3V0LCZEV1AoMCwkaW5wKSk7CitAQCAtMTUxLDcgKzI4NSw3IEBAIHN1YiBSQzRf bG9vcCB7CisgCisgJnNldF9sYWJlbCgiZG9uZSIpOworIAkmZGVjCSgmTEIoJHh4KSk7CistCSZt b3YJKCZCUCgtNCwkZGF0KSwmTEIoJHl5KSk7CSMgc2F2ZSBrZXktPnkKKysJJm1vdgkoJkRXUCgt NCwkZGF0KSwkeXkpOwkJIyBzYXZlIGtleS0+eQorIAkmbW92CSgmQlAoLTgsJGRhdCksJkxCKCR4 eCkpOwkjIHNhdmUga2V5LT54CisgJnNldF9sYWJlbCgiYWJvcnQiKTsKKyAmZnVuY3Rpb25fZW5k KCJSQzQiKTsKK0BAIC0xNjQsMTIgKzI5OCw5IEBAICRpZGk9ImVicCI7CisgJGlkbz0iZWN4IjsK KyAkaWR4PSJlZHgiOworIAorLSZleHRlcm5hbF9sYWJlbCgiT1BFTlNTTF9pYTMyY2FwX1AiKTsK Ky0KKyAkc2V0a2V5ZnVuYyA9ICJSQzRfc2V0X2tleSI7CisgJHNldGtleWZ1bmMgPSAicHJpdmF0 ZV9SQzRfc2V0X2tleSIgaWYgKCRFTlZ7RklQU30gbmUgIiIpOworIAorLQorICMgdm9pZCBSQzRf c2V0X2tleShSQzRfS0VZICprZXksaW50IGxlbixjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhKTsK KyAmZnVuY3Rpb25fYmVnaW4oJHNldGtleWZ1bmMpOworIAkmbW92CSgkb3V0LCZ3cGFyYW0oMCkp OwkJIyBsb2FkIGtleQorQEAgLTI1OCwxNCArMzg5LDIxIEBAICRzZXRrZXlmdW5jID0gInByaXZh dGVfUkM0X3NldF9rZXkiIGlmICgKKyAJJmJsaW5kcG9wKCJlYXgiKTsKKyAJJmxlYQkoImVheCIs JkRXUCgmbGFiZWwoIm9wdHMiKS4iLSIuJmxhYmVsKCJwaWNfcG9pbnQiKSwiZWF4IikpOworIAkm cGljbWV1cCgiZWR4IiwiT1BFTlNTTF9pYTMyY2FwX1AiKTsKKy0JJmJ0CSgmRFdQKDAsImVkeCIp LDIwKTsKKy0JJmpuYwkoJmxhYmVsKCJza2lwIikpOworLQkgICZhZGQJKCJlYXgiLDEyKTsKKy0J JnNldF9sYWJlbCgic2tpcCIpOworKwkmbW92CSgiZWR4IiwmRFdQKDAsImVkeCIpKTsKKysJJmJ0 CSgiZWR4IiwyMCk7CisrCSZqYwkoJmxhYmVsKCIxeGNoYXIiKSk7CisrCSZidAkoImVkeCIsMjYp OworKwkmam5jCSgmbGFiZWwoInJldCIpKTsKKysJJmFkZAkoImVheCIsMjUpOworKwkmcmV0CSgp OworKyZzZXRfbGFiZWwoIjF4Y2hhciIpOworKwkmYWRkCSgiZWF4IiwxMik7CisrJnNldF9sYWJl bCgicmV0Iik7CisgCSZyZXQJKCk7CisgJnNldF9sYWJlbCgib3B0cyIsNjQpOworICZhc2Npegko InJjNCg0eCxpbnQpIik7CisgJmFzY2l6CSgicmM0KDF4LGNoYXIpIik7CisrJmFzY2l6CSgicmM0 KDh4LG1teCkiKTsKKyAmYXNjaXoJKCJSQzQgZm9yIHg4NiwgQ1JZUFRPR0FNUyBieSA8YXBwcm9c QG9wZW5zc2wub3JnPiIpOworICZhbGlnbgkoNjQpOworICZmdW5jdGlvbl9lbmRfQigiUkM0X29w dGlvbnMiKTsKK2RpZmYgLXVwIG9wZW5zc2wtMS4wLjBkL2NyeXB0by9zaGEvYXNtL3NoYTEteDg2 XzY0LnBsLmludGVsb3B0cyBvcGVuc3NsLTEuMC4wZC9jcnlwdG8vc2hhL2FzbS9zaGExLXg4Nl82 NC5wbAorLS0tIG9wZW5zc2wtMS4wLjBkL2NyeXB0by9zaGEvYXNtL3NoYTEteDg2XzY0LnBsLmlu dGVsb3B0cwkyMDEwLTAxLTE3IDE3OjU4OjU2LjAwMDAwMDAwMCArMDEwMAorKysrIG9wZW5zc2wt MS4wLjBkL2NyeXB0by9zaGEvYXNtL3NoYTEteDg2XzY0LnBsCTIwMTEtMDgtMjQgMTI6MzY6MzQu MDAwMDAwMDAwICswMjAwCitAQCAtMSw0ICsxLDQgQEAKKy0jIS91c3IvYmluL2VudiBwZXJsCisr IyEvdXNyL2Jpbi9wZXJsCisgIworICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAjIFdyaXR0ZW4gYnkgQW5keSBQ b2x5YWtvdiA8YXBwcm9AZnkuY2hhbG1lcnMuc2U+IGZvciB0aGUgT3BlblNTTAorQEAgLTE2LDcg KzE2LDcgQEAKKyAjIFRoZXJlIHdhcyBzdWdnZXN0aW9uIHRvIG1lY2hhbmljYWxseSB0cmFuc2xh dGUgMzItYml0IGNvZGUsIGJ1dCBJCisgIyBkaXNtaXNzZWQgaXQsIHJlYXNvbmluZyB0aGF0IHg4 Nl82NCBvZmZlcnMgZW5vdWdoIHJlZ2lzdGVyIGJhbmsKKyAjIGNhcGFjaXR5IHRvIGZ1bGx5IHV0 aWxpemUgU0hBLTEgcGFyYWxsZWxpc20uIFRoZXJlZm9yZSB0aGlzIGZyZXNoCistIyBpbXBsZW1l bnRhdGlvbjotKSBIb3dldmVyISBXaGlsZSA2NC1iaXQgY29kZSBkb2VzIHBlcmZvcm1zIGJldHRl cgorKyMgaW1wbGVtZW50YXRpb246LSkgSG93ZXZlciEgV2hpbGUgNjQtYml0IGNvZGUgZG9lcyBw ZXJmb3JtIGJldHRlcgorICMgb24gT3B0ZXJvbiwgSSBmYWlsZWQgdG8gYmVhdCAzMi1iaXQgYXNz ZW1ibGVyIG9uIEVNNjRUIGNvcmUuIFdlbGwsCisgIyB4ODZfNjQgZG9lcyBvZmZlciBsYXJnZXIg KmFkZHJlc3NhYmxlKiBiYW5rLCBidXQgb3V0LW9mLW9yZGVyIGNvcmUKKyAjIHJlYWNoZXMgZm9y IGV2ZW4gbW9yZSByZWdpc3RlcnMgdGhyb3VnaCBkeW5hbWljIGFsaWFzaW5nLCBhbmQgRU02NFQK K0BAIC0yOSw2ICsyOSwzOCBAQAorICMgWGVvbiBQNAkrNjUlCQkrMCUJCTkuOQorICMgQ29yZTIJ CSs2MCUJCSsxMCUJCTcuMAorIAorKyMgQXVndXN0IDIwMDkuCisrIworKyMgVGhlIGNvZGUgd2Fz IHJldmlzZWQgdG8gbWluaW1pemUgY29kZSBzaXplIGFuZCB0byBtYXhpbWl6ZQorKyMgImRpc3Rh bmNlIiBiZXR3ZWVuIGluc3RydWN0aW9ucyBwcm9kdWNpbmcgaW5wdXQgdG8gJ2xlYScKKysjIGlu c3RydWN0aW9uIGFuZCB0aGUgJ2xlYScgaW5zdHJ1Y3Rpb24gaXRzZWxmLCB3aGljaCBpcyBlc3Nl bnRpYWwKKysjIGZvciBJbnRlbCBBdG9tIGNvcmUuCisrCisrIyBPY3RvYmVyIDIwMTAuCisrIwor KyMgQWRkIFNTU0UzLCBTdXBwbGVtZW50YWxbIV0gU1NFMywgaW1wbGVtZW50YXRpb24uIFRoZSBp ZGVhIGJlaGluZCBpdAorKyMgaXMgdG8gb2ZmbG9hZCBtZXNzYWdlIHNjaGVkdWxlIGRlbm90ZWQg YnkgV3QgaW4gTklTVCBzcGVjaWZpY2F0aW9uLAorKyMgb3IgWHVwZGF0ZSBpbiBPcGVuU1NMIHNv dXJjZSwgdG8gU0lNRCB1bml0LiBTZWUgc2hhMS01ODYucGwgbW9kdWxlCisrIyBmb3IgYmFja2dy b3VuZCBhbmQgaW1wbGVtZW50YXRpb24gZGV0YWlscy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBmcm9t CisrIyAzMi1iaXQgY29kZSBpcyB0aGF0IDY0LWJpdCBjb2RlIGRvZXNuJ3QgaGF2ZSB0byBzcGls bCBAWFtdIGVsZW1lbnRzCisrIyB0byBmcmVlIHRlbXBvcmFyeSByZWdpc3RlcnMuCisrCisrIyBB cHJpbCAyMDExLgorKyMKKysjIEFkZCBBVlggY29kZSBwYXRoLiBTZWUgc2hhMS01ODYucGwgZm9y IGZ1cnRoZXIgaW5mb3JtYXRpb24uCisrCisrIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKyMgQ3VycmVudCBwZXJm b3JtYW5jZSBpcyBzdW1tYXJpemVkIGluIGZvbGxvd2luZyB0YWJsZS4gTnVtYmVycyBhcmUKKysj IENQVSBjbG9jayBjeWNsZXMgc3BlbnQgdG8gcHJvY2VzcyBzaW5nbGUgYnl0ZSAobGVzcyBpcyBi ZXR0ZXIpLgorKyMKKysjCQl4ODZfNjQJCVNTU0UzCQlBVlgKKysjIFA0CQk5LjgJCS0KKysjIE9w dGVyb24JNi42CQktCisrIyBDb3JlMgkJNi43CQk2LjEvKzEwJQktCisrIyBBdG9tCQkxMS4wCQk5 LjcvKzEzJQktCisrIyBXZXN0bWVyZQk3LjEJCTUuNi8rMjclCS0KKysjIFNhbmR5IEJyaWRnZQk3 LjkJCTYuMy8rMjUlCTUuMi8rNTElCisrCisgJGZsYXZvdXIgPSBzaGlmdDsKKyAkb3V0cHV0ICA9 IHNoaWZ0OworIGlmICgkZmxhdm91ciA9fiAvXC4vKSB7ICRvdXRwdXQgPSAkZmxhdm91cjsgdW5k ZWYgJGZsYXZvdXI7IH0KK0BAIC00MCw2ICs3MiwxMyBAQCAkMCA9fiBtLyguKltcL1xcXSlbXlwv XFxdKyQvOyAkZGlyPSQxOworICggJHhsYXRlPSIke2Rpcn0uLi8uLi9wZXJsYXNtL3g4Nl82NC14 bGF0ZS5wbCIgYW5kIC1mICR4bGF0ZSkgb3IKKyBkaWUgImNhbid0IGxvY2F0ZSB4ODZfNjQteGxh dGUucGwiOworIAorKyRhdng9MSBpZiAoYCRFTlZ7Q0N9IC1XYSwtdiAtYyAtbyAvZGV2L251bGwg LXggYXNzZW1ibGVyIC9kZXYvbnVsbCAyPiYxYAorKwkJPX4gL0dOVSBhc3NlbWJsZXIgdmVyc2lv biAoWzItOV1cLlswLTldKykvICYmCisrCSAgICQxPj0yLjE5KTsKKyskYXZ4PTEgaWYgKCEkYXZ4 ICYmICRmbGF2b3VyID1+IC9uYXNtLyAmJgorKwkgICBgbmFzbSAtdiAyPiYxYCA9fiAvTkFTTSB2 ZXJzaW9uIChbMi05XVwuWzAtOV0rKS8gJiYKKysJICAgJDE+PTIuMDMpOworKworIG9wZW4gU1RE T1VULCJ8ICReWCAkeGxhdGUgJGZsYXZvdXIgJG91dHB1dCI7CisgCisgJGN0eD0iJXJkaSI7CSMg MXN0IGFyZworQEAgLTUxLDE5NiArOTAsOTk0IEBAICRjdHg9IiVyOCI7CisgJGlucD0iJXI5IjsK KyAkbnVtPSIlcjEwIjsKKyAKKy0keGk9IiVlYXgiOworLSR0MD0iJWVieCI7CistJHQxPSIlZWN4 IjsKKy0kQT0iJWVkeCI7CistJEI9IiVlc2kiOworLSRDPSIlZWRpIjsKKy0kRD0iJWVicCI7Cist JEU9IiVyMTFkIjsKKy0kVD0iJXIxMmQiOworLQorLUBWPSgkQSwkQiwkQywkRCwkRSwkVCk7Cisr JHQwPSIlZWF4IjsKKyskdDE9IiVlYngiOworKyR0Mj0iJWVjeCI7CisrQHhpPSgiJWVkeCIsIiVl YnAiKTsKKyskQT0iJWVzaSI7CisrJEI9IiVlZGkiOworKyRDPSIlcjExZCI7CisrJEQ9IiVyMTJk IjsKKyskRT0iJXIxM2QiOworIAorLXN1YiBQUk9MT0dVRSB7CistbXkgJGZ1bmM9c2hpZnQ7Cist JGNvZGUuPTw8X19fOworLS5nbG9ibAkkZnVuYworLS50eXBlCSRmdW5jLFxAZnVuY3Rpb24sMwor LS5hbGlnbgkxNgorLSRmdW5jOgorLQlwdXNoCSVyYngKKy0JcHVzaAklcmJwCistCXB1c2gJJXIx MgorLQltb3YJJXJzcCwlcjExCistCW1vdgklcmRpLCRjdHgJIyByZWFzc2lnbmVkIGFyZ3VtZW50 CistCXN1YglcJGA4KzE2KjRgLCVyc3AKKy0JbW92CSVyc2ksJGlucAkjIHJlYXNzaWduZWQgYXJn dW1lbnQKKy0JYW5kCVwkLTY0LCVyc3AKKy0JbW92CSVyZHgsJG51bQkjIHJlYXNzaWduZWQgYXJn dW1lbnQKKy0JbW92CSVyMTEsYDE2KjRgKCVyc3ApCistLkxwcm9sb2d1ZToKKy0KKy0JbW92CTAo JGN0eCksJEEKKy0JbW92CTQoJGN0eCksJEIKKy0JbW92CTgoJGN0eCksJEMKKy0JbW92CTEyKCRj dHgpLCRECistCW1vdgkxNigkY3R4KSwkRQorLV9fXworLX0KKy0KKy1zdWIgRVBJTE9HVUUgewor LW15ICRmdW5jPXNoaWZ0OworLSRjb2RlLj08PF9fXzsKKy0JbW92CWAxNio0YCglcnNwKSwlcnNp CistCW1vdgkoJXJzaSksJXIxMgorLQltb3YJOCglcnNpKSwlcmJwCistCW1vdgkxNiglcnNpKSwl cmJ4CistCWxlYQkyNCglcnNpKSwlcnNwCistLkxlcGlsb2d1ZToKKy0JcmV0CistLnNpemUJJGZ1 bmMsLi0kZnVuYworLV9fXworLX0KKytAVj0oJEEsJEIsJEMsJEQsJEUpOworIAorIHN1YiBCT0RZ XzAwXzE5IHsKKy1teSAoJGksJGEsJGIsJGMsJGQsJGUsJGYsJGhvc3QpPUBfOworK215ICgkaSwk YSwkYiwkYywkZCwkZSk9QF87CisgbXkgJGo9JGkrMTsKKyAkY29kZS49PDxfX18gaWYgKCRpPT0w KTsKKy0JbW92CWA0KiRpYCgkaW5wKSwkeGkJCistCWAiYnN3YXAJJHhpIglpZighZGVmaW5lZCgk aG9zdCkpYAorLQltb3YJJHhpLGA0KiRpYCglcnNwKQorKwltb3YJYDQqJGlgKCRpbnApLCR4aVsw XQorKwlic3dhcAkkeGlbMF0KKysJbW92CSR4aVswXSxgNCokaWAoJXJzcCkKKyBfX18KKyAkY29k ZS49PDxfX18gaWYgKCRpPDE1KTsKKy0JbGVhCTB4NWE4Mjc5OTkoJHhpLCRlKSwkZgorIAltb3YJ JGMsJHQwCistCW1vdglgNCokamAoJGlucCksJHhpCistCW1vdgkkYSwkZQorKwltb3YJYDQqJGpg KCRpbnApLCR4aVsxXQorKwltb3YJJGEsJHQyCisgCXhvcgkkZCwkdDAKKy0JYCJic3dhcAkkeGki CWlmKCFkZWZpbmVkKCRob3N0KSlgCQorLQlyb2wJXCQ1LCRlCisrCWJzd2FwCSR4aVsxXQorKwly b2wJXCQ1LCR0MgorKwlsZWEJMHg1YTgyNzk5OSgkeGlbMF0sJGUpLCRlCisgCWFuZAkkYiwkdDAK Ky0JbW92CSR4aSxgNCokamAoJXJzcCkKKy0JYWRkCSRlLCRmCisrCW1vdgkkeGlbMV0sYDQqJGpg KCVyc3ApCisrCWFkZAkkdDIsJGUKKyAJeG9yCSRkLCR0MAorIAlyb2wJXCQzMCwkYgorLQlhZGQJ JHQwLCRmCisrCWFkZAkkdDAsJGUKKyBfX18KKyAkY29kZS49PDxfX18gaWYgKCRpPj0xNSk7Cist CWxlYQkweDVhODI3OTk5KCR4aSwkZSksJGYKKy0JbW92CWA0KigkaiUxNilgKCVyc3ApLCR4aQor Kwltb3YJYDQqKCRqJTE2KWAoJXJzcCksJHhpWzFdCisgCW1vdgkkYywkdDAKKy0JbW92CSRhLCRl CistCXhvcglgNCooKCRqKzIpJTE2KWAoJXJzcCksJHhpCisrCW1vdgkkYSwkdDIKKysJeG9yCWA0 KigoJGorMiklMTYpYCglcnNwKSwkeGlbMV0KKyAJeG9yCSRkLCR0MAorLQlyb2wJXCQ1LCRlCist CXhvcglgNCooKCRqKzgpJTE2KWAoJXJzcCksJHhpCisrCXJvbAlcJDUsJHQyCisrCXhvcglgNCoo KCRqKzgpJTE2KWAoJXJzcCksJHhpWzFdCisgCWFuZAkkYiwkdDAKKy0JYWRkCSRlLCRmCistCXhv cglgNCooKCRqKzEzKSUxNilgKCVyc3ApLCR4aQorKwlsZWEJMHg1YTgyNzk5OSgkeGlbMF0sJGUp LCRlCisrCXhvcglgNCooKCRqKzEzKSUxNilgKCVyc3ApLCR4aVsxXQorIAl4b3IJJGQsJHQwCisr CXJvbAlcJDEsJHhpWzFdCisrCWFkZAkkdDIsJGUKKyAJcm9sCVwkMzAsJGIKKy0JYWRkCSR0MCwk ZgorLQlyb2wJXCQxLCR4aQorLQltb3YJJHhpLGA0KigkaiUxNilgKCVyc3ApCisrCW1vdgkkeGlb MV0sYDQqKCRqJTE2KWAoJXJzcCkKKysJYWRkCSR0MCwkZQorIF9fXworK3Vuc2hpZnQoQHhpLHBv cChAeGkpKTsKKyB9CisgCisgc3ViIEJPRFlfMjBfMzkgeworLW15ICgkaSwkYSwkYiwkYywkZCwk ZSwkZik9QF87CisrbXkgKCRpLCRhLCRiLCRjLCRkLCRlKT1AXzsKKyBteSAkaj0kaSsxOworIG15 ICRLPSgkaTw0MCk/MHg2ZWQ5ZWJhMToweGNhNjJjMWQ2OworICRjb2RlLj08PF9fXyBpZiAoJGk8 NzkpOworLQlsZWEJJEsoJHhpLCRlKSwkZgorLQltb3YJYDQqKCRqJTE2KWAoJXJzcCksJHhpCisr CW1vdglgNCooJGolMTYpYCglcnNwKSwkeGlbMV0KKyAJbW92CSRjLCR0MAorLQltb3YJJGEsJGUK Ky0JeG9yCWA0KigoJGorMiklMTYpYCglcnNwKSwkeGkKKysJbW92CSRhLCR0MgorKwl4b3IJYDQq KCgkaisyKSUxNilgKCVyc3ApLCR4aVsxXQorIAl4b3IJJGIsJHQwCistCXJvbAlcJDUsJGUKKy0J eG9yCWA0KigoJGorOCklMTYpYCglcnNwKSwkeGkKKysJcm9sCVwkNSwkdDIKKysJbGVhCSRLKCR4 aVswXSwkZSksJGUKKysJeG9yCWA0KigoJGorOCklMTYpYCglcnNwKSwkeGlbMV0KKyAJeG9yCSRk LCR0MAorLQlhZGQJJGUsJGYKKy0JeG9yCWA0KigoJGorMTMpJTE2KWAoJXJzcCksJHhpCisrCWFk ZAkkdDIsJGUKKysJeG9yCWA0KigoJGorMTMpJTE2KWAoJXJzcCksJHhpWzFdCisgCXJvbAlcJDMw LCRiCistCWFkZAkkdDAsJGYKKy0Jcm9sCVwkMSwkeGkKKysJYWRkCSR0MCwkZQorKwlyb2wJXCQx LCR4aVsxXQorIF9fXworICRjb2RlLj08PF9fXyBpZiAoJGk8NzYpOworLQltb3YJJHhpLGA0Kigk aiUxNilgKCVyc3ApCisrCW1vdgkkeGlbMV0sYDQqKCRqJTE2KWAoJXJzcCkKKyBfX18KKyAkY29k ZS49PDxfX18gaWYgKCRpPT03OSk7CistCWxlYQkkSygkeGksJGUpLCRmCisgCW1vdgkkYywkdDAK Ky0JbW92CSRhLCRlCisrCW1vdgkkYSwkdDIKKyAJeG9yCSRiLCR0MAorLQlyb2wJXCQ1LCRlCisr CWxlYQkkSygkeGlbMF0sJGUpLCRlCisrCXJvbAlcJDUsJHQyCisgCXhvcgkkZCwkdDAKKy0JYWRk CSRlLCRmCisrCWFkZAkkdDIsJGUKKyAJcm9sCVwkMzAsJGIKKy0JYWRkCSR0MCwkZgorKwlhZGQJ JHQwLCRlCisgX19fCisrdW5zaGlmdChAeGkscG9wKEB4aSkpOworIH0KKyAKKyBzdWIgQk9EWV80 MF81OSB7CistbXkgKCRpLCRhLCRiLCRjLCRkLCRlLCRmKT1AXzsKKytteSAoJGksJGEsJGIsJGMs JGQsJGUpPUBfOworIG15ICRqPSRpKzE7CisgJGNvZGUuPTw8X19fOworLQlsZWEJMHg4ZjFiYmNk YygkeGksJGUpLCRmCistCW1vdglgNCooJGolMTYpYCglcnNwKSwkeGkKKy0JbW92CSRiLCR0MAor LQltb3YJJGIsJHQxCistCXhvcglgNCooKCRqKzIpJTE2KWAoJXJzcCksJHhpCistCW1vdgkkYSwk ZQorLQlhbmQJJGMsJHQwCistCXhvcglgNCooKCRqKzgpJTE2KWAoJXJzcCksJHhpCistCW9yCSRj LCR0MQorLQlyb2wJXCQ1LCRlCistCXhvcglgNCooKCRqKzEzKSUxNilgKCVyc3ApLCR4aQorLQlh bmQJJGQsJHQxCistCWFkZAkkZSwkZgorLQlyb2wJXCQxLCR4aQorLQlvcgkkdDEsJHQwCisrCW1v dglgNCooJGolMTYpYCglcnNwKSwkeGlbMV0KKysJbW92CSRjLCR0MAorKwltb3YJJGMsJHQxCisr CXhvcglgNCooKCRqKzIpJTE2KWAoJXJzcCksJHhpWzFdCisrCWFuZAkkZCwkdDAKKysJbW92CSRh LCR0MgorKwl4b3IJYDQqKCgkais4KSUxNilgKCVyc3ApLCR4aVsxXQorKwl4b3IJJGQsJHQxCisr CWxlYQkweDhmMWJiY2RjKCR4aVswXSwkZSksJGUKKysJcm9sCVwkNSwkdDIKKysJeG9yCWA0Kigo JGorMTMpJTE2KWAoJXJzcCksJHhpWzFdCisrCWFkZAkkdDAsJGUKKysJYW5kCSRiLCR0MQorKwly b2wJXCQxLCR4aVsxXQorKwlhZGQJJHQxLCRlCisgCXJvbAlcJDMwLCRiCistCW1vdgkkeGksYDQq KCRqJTE2KWAoJXJzcCkKKy0JYWRkCSR0MCwkZgorKwltb3YJJHhpWzFdLGA0KigkaiUxNilgKCVy c3ApCisrCWFkZAkkdDIsJGUKKyBfX18KKyt1bnNoaWZ0KEB4aSxwb3AoQHhpKSk7CisgfQorIAor LSRjb2RlPSIudGV4dFxuIjsKKyskY29kZS49PDxfX187CisrLnRleHQKKysuZXh0ZXJuCU9QRU5T U0xfaWEzMmNhcF9YCisrCisrLmdsb2JsCXNoYTFfYmxvY2tfZGF0YV9vcmRlcgorKy50eXBlCXNo YTFfYmxvY2tfZGF0YV9vcmRlcixcQGZ1bmN0aW9uLDMKKysuYWxpZ24JMTYKKytzaGExX2Jsb2Nr X2RhdGFfb3JkZXI6CisrCW1vdglPUEVOU1NMX2lhMzJjYXBfWCswKCVyaXApLCVyOWQKKysJbW92 CU9QRU5TU0xfaWEzMmNhcF9YKzQoJXJpcCksJXI4ZAorKwl0ZXN0CVwkYDE8PDlgLCVyOGQJCSMg Y2hlY2sgU1NTRTMgYml0CisrCWp6CS5MaWFsdQorK19fXworKyRjb2RlLj08PF9fXyBpZiAoJGF2 eCk7CisrCWFuZAlcJGAxPDwyOGAsJXI4ZAkJIyBtYXNrIEFWWCBiaXQKKysJYW5kCVwkYDE8PDMw YCwlcjlkCQkjIG1hc2sgIkludGVsIENQVSIgYml0CisrCW9yCSVyOWQsJXI4ZAorKwljbXAJXCRg MTw8Mjh8MTw8MzBgLCVyOGQKKysJamUJX2F2eF9zaG9ydGN1dAorK19fXworKyRjb2RlLj08PF9f XzsKKysJam1wCV9zc3NlM19zaG9ydGN1dAorKworKy5hbGlnbgkxNgorKy5MaWFsdToKKysJcHVz aAklcmJ4CisrCXB1c2gJJXJicAorKwlwdXNoCSVyMTIKKysJcHVzaAklcjEzCisrCW1vdgklcnNw LCVyMTEKKysJbW92CSVyZGksJGN0eAkjIHJlYXNzaWduZWQgYXJndW1lbnQKKysJc3ViCVwkYDgr MTYqNGAsJXJzcAorKwltb3YJJXJzaSwkaW5wCSMgcmVhc3NpZ25lZCBhcmd1bWVudAorKwlhbmQJ XCQtNjQsJXJzcAorKwltb3YJJXJkeCwkbnVtCSMgcmVhc3NpZ25lZCBhcmd1bWVudAorKwltb3YJ JXIxMSxgMTYqNGAoJXJzcCkKKysuTHByb2xvZ3VlOgorKworKwltb3YJMCgkY3R4KSwkQQorKwlt b3YJNCgkY3R4KSwkQgorKwltb3YJOCgkY3R4KSwkQworKwltb3YJMTIoJGN0eCksJEQKKysJbW92 CTE2KCRjdHgpLCRFCisrCWptcAkuTGxvb3AKKyAKKy0mUFJPTE9HVUUoInNoYTFfYmxvY2tfZGF0 YV9vcmRlciIpOworLSRjb2RlLj0iLmFsaWduCTRcbi5MbG9vcDpcbiI7CisrLmFsaWduCTE2Cisr Lkxsb29wOgorK19fXworIGZvcigkaT0wOyRpPDIwOyRpKyspCXsgJkJPRFlfMDBfMTkoJGksQFYp OyB1bnNoaWZ0KEBWLHBvcChAVikpOyB9CisgZm9yKDskaTw0MDskaSsrKQl7ICZCT0RZXzIwXzM5 KCRpLEBWKTsgdW5zaGlmdChAVixwb3AoQFYpKTsgfQorIGZvcig7JGk8NjA7JGkrKykJeyAmQk9E WV80MF81OSgkaSxAVik7IHVuc2hpZnQoQFYscG9wKEBWKSk7IH0KKyBmb3IoOyRpPDgwOyRpKysp CXsgJkJPRFlfMjBfMzkoJGksQFYpOyB1bnNoaWZ0KEBWLHBvcChAVikpOyB9CisgJGNvZGUuPTw8 X19fOworLQlhZGQJMCgkY3R4KSwkRQorLQlhZGQJNCgkY3R4KSwkVAorLQlhZGQJOCgkY3R4KSwk QQorLQlhZGQJMTIoJGN0eCksJEIKKy0JYWRkCTE2KCRjdHgpLCRDCistCW1vdgkkRSwwKCRjdHgp CistCW1vdgkkVCw0KCRjdHgpCistCW1vdgkkQSw4KCRjdHgpCistCW1vdgkkQiwxMigkY3R4KQor LQltb3YJJEMsMTYoJGN0eCkKKy0KKy0JeGNoZwkkRSwkQQkjIG1vdgkkRSwkQQorLQl4Y2hnCSRU LCRCCSMgbW92CSRULCRCCistCXhjaGcJJEUsJEMJIyBtb3YJJEEsJEMKKy0JeGNoZwkkVCwkRAkj IG1vdgkkQiwkRAorLQkJCSMgbW92CSRDLCRFCistCWxlYQlgMTYqNGAoJGlucCksJGlucAorKwlh ZGQJMCgkY3R4KSwkQQorKwlhZGQJNCgkY3R4KSwkQgorKwlhZGQJOCgkY3R4KSwkQworKwlhZGQJ MTIoJGN0eCksJEQKKysJYWRkCTE2KCRjdHgpLCRFCisrCW1vdgkkQSwwKCRjdHgpCisrCW1vdgkk Qiw0KCRjdHgpCisrCW1vdgkkQyw4KCRjdHgpCisrCW1vdgkkRCwxMigkY3R4KQorKwltb3YJJEUs MTYoJGN0eCkKKysKKyAJc3ViCVwkMSwkbnVtCisrCWxlYQlgMTYqNGAoJGlucCksJGlucAorIAlq bnoJLkxsb29wCisrCisrCW1vdglgMTYqNGAoJXJzcCksJXJzaQorKwltb3YJKCVyc2kpLCVyMTMK KysJbW92CTgoJXJzaSksJXIxMgorKwltb3YJMTYoJXJzaSksJXJicAorKwltb3YJMjQoJXJzaSks JXJieAorKwlsZWEJMzIoJXJzaSksJXJzcAorKy5MZXBpbG9ndWU6CisrCXJldAorKy5zaXplCXNo YTFfYmxvY2tfZGF0YV9vcmRlciwuLXNoYTFfYmxvY2tfZGF0YV9vcmRlcgorIF9fXworLSZFUElM T0dVRSgic2hhMV9ibG9ja19kYXRhX29yZGVyIik7Cisre3t7CisrbXkgJFhpPTQ7CisrbXkgQFg9 bWFwKCIleG1tJF8iLCg0Li43LDAuLjMpKTsKKytteSBAVHg9bWFwKCIleG1tJF8iLCg4Li4xMCkp OworK215IEBWPSgkQSwkQiwkQywkRCwkRSk9KCIlZWF4IiwiJWVieCIsIiVlY3giLCIlZWR4Iiwi JWVicCIpOwkjIHNpemUgb3B0aW1pemF0aW9uCisrbXkgQFQ9KCIlZXNpIiwiJWVkaSIpOworK215 ICRqPTA7CisrbXkgJEtfWFhfWFg9IiVyMTEiOworKworK215ICRfcm9sPXN1YiB7ICZyb2woQF8p IH07CisrbXkgJF9yb3I9c3ViIHsgJnJvcihAXykgfTsKKysKKyAkY29kZS49PDxfX187CistLmFz Y2l6CSJTSEExIGJsb2NrIHRyYW5zZm9ybSBmb3IgeDg2XzY0LCBDUllQVE9HQU1TIGJ5IDxhcHBy b1xAb3BlbnNzbC5vcmc+IgorKy50eXBlCXNoYTFfYmxvY2tfZGF0YV9vcmRlcl9zc3NlMyxcQGZ1 bmN0aW9uLDMKKyAuYWxpZ24JMTYKKytzaGExX2Jsb2NrX2RhdGFfb3JkZXJfc3NzZTM6CisrX3Nz c2UzX3Nob3J0Y3V0OgorKwlwdXNoCSVyYngKKysJcHVzaAklcmJwCisrCXB1c2gJJXIxMgorKwls ZWEJYC02NC0oJHdpbjY0PzUqMTY6MClgKCVyc3ApLCVyc3AKKytfX18KKyskY29kZS49PDxfX18g aWYgKCR3aW42NCk7CisrCW1vdmFwcwkleG1tNiw2NCswKCVyc3ApCisrCW1vdmFwcwkleG1tNyw2 NCsxNiglcnNwKQorKwltb3ZhcHMJJXhtbTgsNjQrMzIoJXJzcCkKKysJbW92YXBzCSV4bW05LDY0 KzQ4KCVyc3ApCisrCW1vdmFwcwkleG1tMTAsNjQrNjQoJXJzcCkKKysuTHByb2xvZ3VlX3Nzc2Uz OgorK19fXworKyRjb2RlLj08PF9fXzsKKysJbW92CSVyZGksJGN0eAkjIHJlYXNzaWduZWQgYXJn dW1lbnQKKysJbW92CSVyc2ksJGlucAkjIHJlYXNzaWduZWQgYXJndW1lbnQKKysJbW92CSVyZHgs JG51bQkjIHJlYXNzaWduZWQgYXJndW1lbnQKKysKKysJc2hsCVwkNiwkbnVtCisrCWFkZAkkaW5w LCRudW0KKysJbGVhCUtfWFhfWFgoJXJpcCksJEtfWFhfWFgKKysKKysJbW92CTAoJGN0eCksJEEJ CSMgbG9hZCBjb250ZXh0CisrCW1vdgk0KCRjdHgpLCRCCisrCW1vdgk4KCRjdHgpLCRDCisrCW1v dgkxMigkY3R4KSwkRAorKwltb3YJJEIsQFRbMF0JCSMgbWFnaWMgc2VlZAorKwltb3YJMTYoJGN0 eCksJEUKKysKKysJbW92ZHFhCTY0KCRLX1hYX1hYKSxAWFsyXQkjIHBic3dhcCBtYXNrCisrCW1v dmRxYQkwKCRLX1hYX1hYKSxAVHhbMV0JIyBLXzAwXzE5CisrCW1vdmRxdQkwKCRpbnApLEBYWy00 JjddCSMgbG9hZCBpbnB1dCB0byAleG1tWzAtM10KKysJbW92ZHF1CTE2KCRpbnApLEBYWy0zJjdd CisrCW1vdmRxdQkzMigkaW5wKSxAWFstMiY3XQorKwltb3ZkcXUJNDgoJGlucCksQFhbLTEmN10K KysJcHNodWZiCUBYWzJdLEBYWy00JjddCQkjIGJ5dGUgc3dhcAorKwlhZGQJXCQ2NCwkaW5wCisr CXBzaHVmYglAWFsyXSxAWFstMyY3XQorKwlwc2h1ZmIJQFhbMl0sQFhbLTImN10KKysJcHNodWZi CUBYWzJdLEBYWy0xJjddCisrCXBhZGRkCUBUeFsxXSxAWFstNCY3XQkJIyBhZGQgS18wMF8xOQor KwlwYWRkZAlAVHhbMV0sQFhbLTMmN10KKysJcGFkZGQJQFR4WzFdLEBYWy0yJjddCisrCW1vdmRx YQlAWFstNCY3XSwwKCVyc3ApCSMgWFtdK0sgeGZlciB0byBJQUxVCisrCXBzdWJkCUBUeFsxXSxA WFstNCY3XQkJIyByZXN0b3JlIFhbXQorKwltb3ZkcWEJQFhbLTMmN10sMTYoJXJzcCkKKysJcHN1 YmQJQFR4WzFdLEBYWy0zJjddCisrCW1vdmRxYQlAWFstMiY3XSwzMiglcnNwKQorKwlwc3ViZAlA VHhbMV0sQFhbLTImN10KKysJam1wCS5Mb29wX3Nzc2UzCisrX19fCisrCisrc3ViIEFVVE9MT0FE KCkJCSMgdGh1bmsgW3NpbXBsaWZpZWRdIDMyLWJpdCBzdHlsZSBwZXJsYXNtCisreyBteSAkb3Bj b2RlID0gJEFVVE9MT0FEOyAkb3Bjb2RlID1+IHMvLio6Oi8vOworKyAgbXkgJGFyZyA9IHBvcDsK KysgICAgJGFyZyA9ICJcJCRhcmciIGlmICgkYXJnKjEgZXEgJGFyZyk7CisrICAgICRjb2RlIC49 ICJcdCRvcGNvZGVcdCIuam9pbignLCcsJGFyZyxyZXZlcnNlIEBfKS4iXG4iOworK30KKysKKytz dWIgWHVwZGF0ZV9zc3NlM18xNl8zMSgpCQkjIHJlY2FsbCB0aGF0ICRYaSBzdGFydHMgd3RpaCA0 CisreyB1c2UgaW50ZWdlcjsKKysgIG15ICRib2R5ID0gc2hpZnQ7CisrICBteSBAaW5zbnMgPSAo JiRib2R5LCYkYm9keSwmJGJvZHksJiRib2R5KTsJIyA0MCBpbnN0cnVjdGlvbnMKKysgIG15ICgk YSwkYiwkYywkZCwkZSk7CisrCisrCSZtb3ZkcWEJKEBYWzBdLEBYWy0zJjddKTsKKysJIGV2YWwo c2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkmbW92ZHFhCShAVHhb MF0sQFhbLTEmN10pOworKwkmcGFsaWducihAWFswXSxAWFstNCY3XSw4KTsJIyBjb21wb3NlICJY Wy0xNF0iIGluICJYWzBdIgorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQo QGluc25zKSk7CisrCisrCSAgJnBhZGRkCShAVHhbMV0sQFhbLTEmN10pOworKwkgZXZhbChzaGlm dChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSZwc3JsZHEJKEBUeFswXSw0 KTsJCSMgIlhbLTNdIiwgMyBkd29yZHMKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFs KHNoaWZ0KEBpbnNucykpOworKwkmcHhvcgkoQFhbMF0sQFhbLTQmN10pOwkjICJYWzBdIl49Ilhb LTE2XSIKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOwor KworKwkmcHhvcgkoQFR4WzBdLEBYWy0yJjddKTsJIyAiWFstM10iXiJYWy04XSIKKysJIGV2YWwo c2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChA aW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCisrCSZweG9yCShAWFswXSxAVHhb MF0pOwkJIyAiWFswXSJePSJYWy0zXSJeIlhbLThdIgorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsK KysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSAgJm1vdmRxYQkoZXZhbCgxNiooKCRYaS0xKSYz KSkuIiglcnNwKSIsQFR4WzFdKTsJIyBYW10rSyB4ZmVyIHRvIElBTFUKKysJIGV2YWwoc2hpZnQo QGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKworKwkmbW92ZHFhCShAVHhbMl0s QFhbMF0pOworKwkmbW92ZHFhCShAVHhbMF0sQFhbMF0pOworKwkgZXZhbChzaGlmdChAaW5zbnMp KTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkg ZXZhbChzaGlmdChAaW5zbnMpKTsKKysKKysJJnBzbGxkcQkoQFR4WzJdLDEyKTsJCSMgIlhbMF0i PDw5NiwgZXh0cmFjdCBvbmUgZHdvcmQKKysJJnBhZGRkCShAWFswXSxAWFswXSk7CisrCSBldmFs KHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQo QGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKworKwkmcHNybGQJKEBUeFswXSwz MSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJ Jm1vdmRxYQkoQFR4WzFdLEBUeFsyXSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZh bChzaGlmdChAaW5zbnMpKTsKKysKKysJJnBzcmxkCShAVHhbMl0sMzApOworKwkmcG9yCShAWFsw XSxAVHhbMF0pOwkJIyAiWFswXSI8PDw9MQorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2 YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlm dChAaW5zbnMpKTsKKysKKysJJnBzbGxkCShAVHhbMV0sMik7CisrCSZweG9yCShAWFswXSxAVHhb Ml0pOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7Cisr CSAgJm1vdmRxYQkoQFR4WzJdLGV2YWwoMTYqKCgkWGkpLzUpKS4iKCRLX1hYX1hYKSIpOwkjIEtf WFhfWFgKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOwor KworKwkmcHhvcgkoQFhbMF0sQFR4WzFdKTsJCSMgIlhbMF0iXj0oIlhbMF0iPj45Nik8PDwyCisr CisrCSBmb3JlYWNoIChAaW5zbnMpIHsgZXZhbDsgfQkjIHJlbWFpbmluZyBpbnN0cnVjdGlvbnMg W2lmIGFueV0KKysKKysgICRYaSsrOwlwdXNoKEBYLHNoaWZ0KEBYKSk7CSMgInJvdGF0ZSIgWFtd CisrCQlwdXNoKEBUeCxzaGlmdChAVHgpKTsKKyt9CisrCisrc3ViIFh1cGRhdGVfc3NzZTNfMzJf NzkoKQorK3sgdXNlIGludGVnZXI7CisrICBteSAkYm9keSA9IHNoaWZ0OworKyAgbXkgQGluc25z ID0gKCYkYm9keSwmJGJvZHksJiRib2R5LCYkYm9keSk7CSMgMzIgdG8gNDggaW5zdHJ1Y3Rpb25z CisrICBteSAoJGEsJGIsJGMsJGQsJGUpOworKworKwkmbW92ZHFhCShAVHhbMF0sQFhbLTEmN10p CWlmICgkWGk9PTgpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsJCSMgYm9keV8yMF8zOQorKwkm cHhvcgkoQFhbMF0sQFhbLTQmN10pOwkjICJYWzBdIj0iWFstMzJdIl4iWFstMTZdIgorKwkmcGFs aWducihAVHhbMF0sQFhbLTImN10sOCk7CSMgY29tcG9zZSAiWFstNl0iCisrCSBldmFsKHNoaWZ0 KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25z KSk7CQkjIHJvbAorKworKwkmcHhvcgkoQFhbMF0sQFhbLTcmN10pOwkjICJYWzBdIl49IlhbLTI4 XSIKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpCWlmIChA aW5zbnNbMF0gIX4gLyZyb1tybF0vKTsKKysJaWYgKCRYaSU1KSB7CisrCSAgJm1vdmRxYQkoQFR4 WzJdLEBUeFsxXSk7IyAicGVycGV0dWF0ZSIgS19YWF9YWC4uLgorKwl9IGVsc2UgewkJCSMgLi4u IG9yIGxvYWQgbmV4dCBvbmUKKysJICAmbW92ZHFhCShAVHhbMl0sZXZhbCgxNiooJFhpLzUpKS4i KCRLX1hYX1hYKSIpOworKwl9CisrCSAgJnBhZGRkCShAVHhbMV0sQFhbLTEmN10pOworKwkgZXZh bChzaGlmdChAaW5zbnMpKTsJCSMgcm9yCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKworKwkm cHhvcgkoQFhbMF0sQFR4WzBdKTsJCSMgIlhbMF0iXj0iWFstNl0iCisrCSBldmFsKHNoaWZ0KEBp bnNucykpOwkJIyBib2R5XzIwXzM5CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChz aGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CQkjIHJvbAorKworKwkmbW92 ZHFhCShAVHhbMF0sQFhbMF0pOworKwkgICZtb3ZkcWEJKGV2YWwoMTYqKCgkWGktMSkmMykpLiIo JXJzcCkiLEBUeFsxXSk7CSMgWFtdK0sgeGZlciB0byBJQUxVCisrCSBldmFsKHNoaWZ0KEBpbnNu cykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CQkj IHJvcgorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysKKysJJnBzbGxkCShAWFswXSwyKTsKKysJ IGV2YWwoc2hpZnQoQGluc25zKSk7CQkjIGJvZHlfMjBfMzkKKysJIGV2YWwoc2hpZnQoQGluc25z KSk7CisrCSZwc3JsZAkoQFR4WzBdLDMwKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBl dmFsKHNoaWZ0KEBpbnNucykpOwkJIyByb2wKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBl dmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsJCSMgcm9yCisrCSBl dmFsKHNoaWZ0KEBpbnNucykpOworKworKwkmcG9yCShAWFswXSxAVHhbMF0pOwkJIyAiWFswXSI8 PDw9MgorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsJCSMgYm9keV8yMF8zOQorKwkgZXZhbChzaGlm dChAaW5zbnMpKTsKKysJICAmbW92ZHFhCShAVHhbMV0sQFhbMF0pCWlmICgkWGk8MTkpOworKwkg ZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CQkjIHJvbAorKwkg ZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNo aWZ0KEBpbnNucykpOwkJIyByb2wKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCisrCSBmb3Jl YWNoIChAaW5zbnMpIHsgZXZhbDsgfQkjIHJlbWFpbmluZyBpbnN0cnVjdGlvbnMKKysKKysgICRY aSsrOwlwdXNoKEBYLHNoaWZ0KEBYKSk7CSMgInJvdGF0ZSIgWFtdCisrCQlwdXNoKEBUeCxzaGlm dChAVHgpKTsKKyt9CisrCisrc3ViIFh1cGxhc3Rfc3NzZTNfODAoKQorK3sgdXNlIGludGVnZXI7 CisrICBteSAkYm9keSA9IHNoaWZ0OworKyAgbXkgQGluc25zID0gKCYkYm9keSwmJGJvZHksJiRi b2R5LCYkYm9keSk7CSMgMzIgaW5zdHJ1Y3Rpb25zCisrICBteSAoJGEsJGIsJGMsJGQsJGUpOwor KworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJICAmcGFkZGQJKEBUeFsxXSxAWFstMSY3XSk7 CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2 YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKworKwkgICZtb3Zk cWEJKGV2YWwoMTYqKCgkWGktMSkmMykpLiIoJXJzcCkiLEBUeFsxXSk7CSMgWFtdK0sgeGZlciBJ QUxVCisrCisrCSBmb3JlYWNoIChAaW5zbnMpIHsgZXZhbDsgfQkJIyByZW1haW5pbmcgaW5zdHJ1 Y3Rpb25zCisrCisrCSZjbXAJKCRpbnAsJG51bSk7CisrCSZqZQkoIi5MZG9uZV9zc3NlMyIpOwor KworKwl1bnNoaWZ0KEBUeCxwb3AoQFR4KSk7CisrCisrCSZtb3ZkcWEJKEBYWzJdLCI2NCgkS19Y WF9YWCkiKTsJCSMgcGJzd2FwIG1hc2sKKysJJm1vdmRxYQkoQFR4WzFdLCIwKCRLX1hYX1hYKSIp OwkJIyBLXzAwXzE5CisrCSZtb3ZkcXUJKEBYWy00JjddLCIwKCRpbnApIik7CQkjIGxvYWQgaW5w dXQKKysJJm1vdmRxdQkoQFhbLTMmN10sIjE2KCRpbnApIik7CisrCSZtb3ZkcXUJKEBYWy0yJjdd LCIzMigkaW5wKSIpOworKwkmbW92ZHF1CShAWFstMSY3XSwiNDgoJGlucCkiKTsKKysJJnBzaHVm YgkoQFhbLTQmN10sQFhbMl0pOwkJIyBieXRlIHN3YXAKKysJJmFkZAkoJGlucCw2NCk7CisrCisr ICAkWGk9MDsKKyt9CisrCisrc3ViIFhsb29wX3Nzc2UzKCkKKyt7IHVzZSBpbnRlZ2VyOworKyAg bXkgJGJvZHkgPSBzaGlmdDsKKysgIG15IEBpbnNucyA9ICgmJGJvZHksJiRib2R5LCYkYm9keSwm JGJvZHkpOwkjIDMyIGluc3RydWN0aW9ucworKyAgbXkgKCRhLCRiLCRjLCRkLCRlKTsKKysKKysJ IGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkmcHNodWZi CShAWFsoJFhpLTMpJjddLEBYWzJdKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFs KHNoaWZ0KEBpbnNucykpOworKwkmcGFkZGQJKEBYWygkWGktNCkmN10sQFR4WzFdKTsKKysJIGV2 YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlm dChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSZtb3ZkcWEJKGV2YWwoMTYq JFhpKS4iKCVyc3ApIixAWFsoJFhpLTQpJjddKTsJIyBYW10rSyB4ZmVyIHRvIElBTFUKKysJIGV2 YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkmcHN1YmQJKEBY WygkWGktNCkmN10sQFR4WzFdKTsKKysKKysJZm9yZWFjaCAoQGluc25zKSB7IGV2YWw7IH0KKysg ICRYaSsrOworK30KKysKKytzdWIgWHRhaWxfc3NzZTMoKQorK3sgdXNlIGludGVnZXI7CisrICBt eSAkYm9keSA9IHNoaWZ0OworKyAgbXkgQGluc25zID0gKCYkYm9keSwmJGJvZHksJiRib2R5LCYk Ym9keSk7CSMgMzIgaW5zdHJ1Y3Rpb25zCisrICBteSAoJGEsJGIsJGMsJGQsJGUpOworKworKwlm b3JlYWNoIChAaW5zbnMpIHsgZXZhbDsgfQorK30KKysKKytzdWIgYm9keV8wMF8xOSAoKSB7Cisr CSgKKysJJygkYSwkYiwkYywkZCwkZSk9QFY7Jy4KKysJJyZhZGQJKCRlLGV2YWwoNCooJGomMTUp KS4iKCVyc3ApIik7JywJIyBYW10rSyB4ZmVyCisrCScmeG9yCSgkYywkZCk7JywKKysJJyZtb3YJ KEBUWzFdLCRhKTsnLAkjICRiIGluIG5leHQgcm91bmQKKysJJyYkX3JvbAkoJGEsNSk7JywKKysJ JyZhbmQJKEBUWzBdLCRjKTsnLAkjICgkYiYoJGNeJGQpKQorKwknJnhvcgkoJGMsJGQpOycsCSMg cmVzdG9yZSAkYworKwknJnhvcgkoQFRbMF0sJGQpOycsCisrCScmYWRkCSgkZSwkYSk7JywKKysJ JyYkX3JvcgkoJGIsJGo/NzoyKTsnLAkjICRiPj4+MgorKwknJmFkZAkoJGUsQFRbMF0pOycJLick aisrOyB1bnNoaWZ0KEBWLHBvcChAVikpOyB1bnNoaWZ0KEBULHBvcChAVCkpOycKKysJKTsKKyt9 CisrCisrc3ViIGJvZHlfMjBfMzkgKCkgeworKwkoCisrCScoJGEsJGIsJGMsJGQsJGUpPUBWOycu CisrCScmYWRkCSgkZSxldmFsKDQqKCRqKysmMTUpKS4iKCVyc3ApIik7JywJIyBYW10rSyB4ZmVy CisrCScmeG9yCShAVFswXSwkZCk7JywJIyAoJGJeJGQpCisrCScmbW92CShAVFsxXSwkYSk7JywJ IyAkYiBpbiBuZXh0IHJvdW5kCisrCScmJF9yb2wJKCRhLDUpOycsCisrCScmeG9yCShAVFswXSwk Yyk7JywJIyAoJGJeJGReJGMpCisrCScmYWRkCSgkZSwkYSk7JywKKysJJyYkX3JvcgkoJGIsNyk7 JywJIyAkYj4+PjIKKysJJyZhZGQJKCRlLEBUWzBdKTsnCS4ndW5zaGlmdChAVixwb3AoQFYpKTsg dW5zaGlmdChAVCxwb3AoQFQpKTsnCisrCSk7CisrfQorKworK3N1YiBib2R5XzQwXzU5ICgpIHsK KysJKAorKwknKCRhLCRiLCRjLCRkLCRlKT1AVjsnLgorKwknJm1vdgkoQFRbMV0sJGMpOycsCisr CScmeG9yCSgkYywkZCk7JywKKysJJyZhZGQJKCRlLGV2YWwoNCooJGorKyYxNSkpLiIoJXJzcCki KTsnLAkjIFhbXStLIHhmZXIKKysJJyZhbmQJKEBUWzFdLCRkKTsnLAorKwknJmFuZAkoQFRbMF0s JGMpOycsCSMgKCRiJigkY14kZCkpCisrCScmJF9yb3IJKCRiLDcpOycsCSMgJGI+Pj4yCisrCScm YWRkCSgkZSxAVFsxXSk7JywKKysJJyZtb3YJKEBUWzFdLCRhKTsnLAkjICRiIGluIG5leHQgcm91 bmQKKysJJyYkX3JvbAkoJGEsNSk7JywKKysJJyZhZGQJKCRlLEBUWzBdKTsnLAorKwknJnhvcgko JGMsJGQpOycsCSMgcmVzdG9yZSAkYworKwknJmFkZAkoJGUsJGEpOycJLid1bnNoaWZ0KEBWLHBv cChAVikpOyB1bnNoaWZ0KEBULHBvcChAVCkpOycKKysJKTsKKyt9CisrJGNvZGUuPTw8X19fOwor Ky5hbGlnbgkxNgorKy5Mb29wX3Nzc2UzOgorK19fXworKwkmWHVwZGF0ZV9zc3NlM18xNl8zMShc JmJvZHlfMDBfMTkpOworKwkmWHVwZGF0ZV9zc3NlM18xNl8zMShcJmJvZHlfMDBfMTkpOworKwkm WHVwZGF0ZV9zc3NlM18xNl8zMShcJmJvZHlfMDBfMTkpOworKwkmWHVwZGF0ZV9zc3NlM18xNl8z MShcJmJvZHlfMDBfMTkpOworKwkmWHVwZGF0ZV9zc3NlM18zMl83OShcJmJvZHlfMDBfMTkpOwor KwkmWHVwZGF0ZV9zc3NlM18zMl83OShcJmJvZHlfMjBfMzkpOworKwkmWHVwZGF0ZV9zc3NlM18z Ml83OShcJmJvZHlfMjBfMzkpOworKwkmWHVwZGF0ZV9zc3NlM18zMl83OShcJmJvZHlfMjBfMzkp OworKwkmWHVwZGF0ZV9zc3NlM18zMl83OShcJmJvZHlfMjBfMzkpOworKwkmWHVwZGF0ZV9zc3Nl M18zMl83OShcJmJvZHlfMjBfMzkpOworKwkmWHVwZGF0ZV9zc3NlM18zMl83OShcJmJvZHlfNDBf NTkpOworKwkmWHVwZGF0ZV9zc3NlM18zMl83OShcJmJvZHlfNDBfNTkpOworKwkmWHVwZGF0ZV9z c3NlM18zMl83OShcJmJvZHlfNDBfNTkpOworKwkmWHVwZGF0ZV9zc3NlM18zMl83OShcJmJvZHlf NDBfNTkpOworKwkmWHVwZGF0ZV9zc3NlM18zMl83OShcJmJvZHlfNDBfNTkpOworKwkmWHVwZGF0 ZV9zc3NlM18zMl83OShcJmJvZHlfMjBfMzkpOworKwkmWHVwbGFzdF9zc3NlM184MChcJmJvZHlf MjBfMzkpOwkjIGNhbiBqdW1wIHRvICJkb25lIgorKworKwkJCQkkc2F2ZWRfaj0kajsgQHNhdmVk X1Y9QFY7CisrCisrCSZYbG9vcF9zc3NlMyhcJmJvZHlfMjBfMzkpOworKwkmWGxvb3Bfc3NzZTMo XCZib2R5XzIwXzM5KTsKKysJJlhsb29wX3Nzc2UzKFwmYm9keV8yMF8zOSk7CisrCisrJGNvZGUu PTw8X19fOworKwlhZGQJMCgkY3R4KSwkQQkJCSMgdXBkYXRlIGNvbnRleHQKKysJYWRkCTQoJGN0 eCksQFRbMF0KKysJYWRkCTgoJGN0eCksJEMKKysJYWRkCTEyKCRjdHgpLCRECisrCW1vdgkkQSww KCRjdHgpCisrCWFkZAkxNigkY3R4KSwkRQorKwltb3YJQFRbMF0sNCgkY3R4KQorKwltb3YJQFRb MF0sJEIJCQkjIG1hZ2ljIHNlZWQKKysJbW92CSRDLDgoJGN0eCkKKysJbW92CSRELDEyKCRjdHgp CisrCW1vdgkkRSwxNigkY3R4KQorKwlqbXAJLkxvb3Bfc3NzZTMKKysKKysuYWxpZ24JMTYKKysu TGRvbmVfc3NzZTM6CisrX19fCisrCQkJCSRqPSRzYXZlZF9qOyBAVj1Ac2F2ZWRfVjsKKysKKysJ Jlh0YWlsX3Nzc2UzKFwmYm9keV8yMF8zOSk7CisrCSZYdGFpbF9zc3NlMyhcJmJvZHlfMjBfMzkp OworKwkmWHRhaWxfc3NzZTMoXCZib2R5XzIwXzM5KTsKKysKKyskY29kZS49PDxfX187CisrCWFk ZAkwKCRjdHgpLCRBCQkJIyB1cGRhdGUgY29udGV4dAorKwlhZGQJNCgkY3R4KSxAVFswXQorKwlh ZGQJOCgkY3R4KSwkQworKwltb3YJJEEsMCgkY3R4KQorKwlhZGQJMTIoJGN0eCksJEQKKysJbW92 CUBUWzBdLDQoJGN0eCkKKysJYWRkCTE2KCRjdHgpLCRFCisrCW1vdgkkQyw4KCRjdHgpCisrCW1v dgkkRCwxMigkY3R4KQorKwltb3YJJEUsMTYoJGN0eCkKKytfX18KKyskY29kZS49PDxfX18gaWYg KCR3aW42NCk7CisrCW1vdmFwcwk2NCswKCVyc3ApLCV4bW02CisrCW1vdmFwcwk2NCsxNiglcnNw KSwleG1tNworKwltb3ZhcHMJNjQrMzIoJXJzcCksJXhtbTgKKysJbW92YXBzCTY0KzQ4KCVyc3Ap LCV4bW05CisrCW1vdmFwcwk2NCs2NCglcnNwKSwleG1tMTAKKytfX18KKyskY29kZS49PDxfX187 CisrCWxlYQlgNjQrKCR3aW42ND82KjE2OjApYCglcnNwKSwlcnNpCisrCW1vdgkwKCVyc2kpLCVy MTIKKysJbW92CTgoJXJzaSksJXJicAorKwltb3YJMTYoJXJzaSksJXJieAorKwlsZWEJMjQoJXJz aSksJXJzcAorKy5MZXBpbG9ndWVfc3NzZTM6CisrCXJldAorKy5zaXplCXNoYTFfYmxvY2tfZGF0 YV9vcmRlcl9zc3NlMywuLXNoYTFfYmxvY2tfZGF0YV9vcmRlcl9zc3NlMworK19fXworKworK2lm ICgkYXZ4KSB7CisrbXkgJFhpPTQ7CisrbXkgQFg9bWFwKCIleG1tJF8iLCg0Li43LDAuLjMpKTsK KytteSBAVHg9bWFwKCIleG1tJF8iLCg4Li4xMCkpOworK215IEBWPSgkQSwkQiwkQywkRCwkRSk9 KCIlZWF4IiwiJWVieCIsIiVlY3giLCIlZWR4IiwiJWVicCIpOwkjIHNpemUgb3B0aW1pemF0aW9u CisrbXkgQFQ9KCIlZXNpIiwiJWVkaSIpOworK215ICRqPTA7CisrbXkgJEtfWFhfWFg9IiVyMTEi OworKworK215ICRfcm9sPXN1YiB7ICZzaGxkKEBfWzBdLEBfKSB9OworK215ICRfcm9yPXN1YiB7 ICZzaHJkKEBfWzBdLEBfKSB9OworKworKyRjb2RlLj08PF9fXzsKKysudHlwZQlzaGExX2Jsb2Nr X2RhdGFfb3JkZXJfYXZ4LFxAZnVuY3Rpb24sMworKy5hbGlnbgkxNgorK3NoYTFfYmxvY2tfZGF0 YV9vcmRlcl9hdng6CisrX2F2eF9zaG9ydGN1dDoKKysJcHVzaAklcmJ4CisrCXB1c2gJJXJicAor KwlwdXNoCSVyMTIKKysJbGVhCWAtNjQtKCR3aW42ND81KjE2OjApYCglcnNwKSwlcnNwCisrX19f CisrJGNvZGUuPTw8X19fIGlmICgkd2luNjQpOworKwltb3ZhcHMJJXhtbTYsNjQrMCglcnNwKQor Kwltb3ZhcHMJJXhtbTcsNjQrMTYoJXJzcCkKKysJbW92YXBzCSV4bW04LDY0KzMyKCVyc3ApCisr CW1vdmFwcwkleG1tOSw2NCs0OCglcnNwKQorKwltb3ZhcHMJJXhtbTEwLDY0KzY0KCVyc3ApCisr Lkxwcm9sb2d1ZV9hdng6CisrX19fCisrJGNvZGUuPTw8X19fOworKwltb3YJJXJkaSwkY3R4CSMg cmVhc3NpZ25lZCBhcmd1bWVudAorKwltb3YJJXJzaSwkaW5wCSMgcmVhc3NpZ25lZCBhcmd1bWVu dAorKwltb3YJJXJkeCwkbnVtCSMgcmVhc3NpZ25lZCBhcmd1bWVudAorKwl2emVyb2FsbAorKwor KwlzaGwJXCQ2LCRudW0KKysJYWRkCSRpbnAsJG51bQorKwlsZWEJS19YWF9YWCglcmlwKSwkS19Y WF9YWAorKworKwltb3YJMCgkY3R4KSwkQQkJIyBsb2FkIGNvbnRleHQKKysJbW92CTQoJGN0eCks JEIKKysJbW92CTgoJGN0eCksJEMKKysJbW92CTEyKCRjdHgpLCRECisrCW1vdgkkQixAVFswXQkJ IyBtYWdpYyBzZWVkCisrCW1vdgkxNigkY3R4KSwkRQorKworKwl2bW92ZHFhCTY0KCRLX1hYX1hY KSxAWFsyXQkjIHBic3dhcCBtYXNrCisrCXZtb3ZkcWEJMCgkS19YWF9YWCksQFR4WzFdCSMgS18w MF8xOQorKwl2bW92ZHF1CTAoJGlucCksQFhbLTQmN10JIyBsb2FkIGlucHV0IHRvICV4bW1bMC0z XQorKwl2bW92ZHF1CTE2KCRpbnApLEBYWy0zJjddCisrCXZtb3ZkcXUJMzIoJGlucCksQFhbLTIm N10KKysJdm1vdmRxdQk0OCgkaW5wKSxAWFstMSY3XQorKwl2cHNodWZiCUBYWzJdLEBYWy00Jjdd LEBYWy00JjddCSMgYnl0ZSBzd2FwCisrCWFkZAlcJDY0LCRpbnAKKysJdnBzaHVmYglAWFsyXSxA WFstMyY3XSxAWFstMyY3XQorKwl2cHNodWZiCUBYWzJdLEBYWy0yJjddLEBYWy0yJjddCisrCXZw c2h1ZmIJQFhbMl0sQFhbLTEmN10sQFhbLTEmN10KKysJdnBhZGRkCUBUeFsxXSxAWFstNCY3XSxA WFswXQkjIGFkZCBLXzAwXzE5CisrCXZwYWRkZAlAVHhbMV0sQFhbLTMmN10sQFhbMV0KKysJdnBh ZGRkCUBUeFsxXSxAWFstMiY3XSxAWFsyXQorKwl2bW92ZHFhCUBYWzBdLDAoJXJzcCkJCSMgWFtd K0sgeGZlciB0byBJQUxVCisrCXZtb3ZkcWEJQFhbMV0sMTYoJXJzcCkKKysJdm1vdmRxYQlAWFsy XSwzMiglcnNwKQorKwlqbXAJLkxvb3BfYXZ4CisrX19fCisrCisrc3ViIFh1cGRhdGVfYXZ4XzE2 XzMxKCkJCSMgcmVjYWxsIHRoYXQgJFhpIHN0YXJ0cyB3dGloIDQKKyt7IHVzZSBpbnRlZ2VyOwor KyAgbXkgJGJvZHkgPSBzaGlmdDsKKysgIG15IEBpbnNucyA9ICgmJGJvZHksJiRib2R5LCYkYm9k eSwmJGJvZHkpOwkjIDQwIGluc3RydWN0aW9ucworKyAgbXkgKCRhLCRiLCRjLCRkLCRlKTsKKysK KysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkmdnBh bGlnbnIoQFhbMF0sQFhbLTMmN10sQFhbLTQmN10sOCk7CSMgY29tcG9zZSAiWFstMTRdIiBpbiAi WFswXSIKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOwor KworKwkgICZ2cGFkZGQJKEBUeFsxXSxAVHhbMV0sQFhbLTEmN10pOworKwkgZXZhbChzaGlmdChA aW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSZ2cHNybGRxKEBUeFswXSxAWFst MSY3XSw0KTsJIyAiWFstM10iLCAzIGR3b3JkcworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJ IGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSZ2cHhvcgkoQFhbMF0sQFhbMF0sQFhbLTQmN10pOwkJ IyAiWFswXSJePSJYWy0xNl0iCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlm dChAaW5zbnMpKTsKKysKKysJJnZweG9yCShAVHhbMF0sQFR4WzBdLEBYWy0yJjddKTsJIyAiWFst M10iXiJYWy04XSIKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNu cykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7Cisr CisrCSZ2cHhvcgkoQFhbMF0sQFhbMF0sQFR4WzBdKTsJCSMgIlhbMF0iXj0iWFstM10iXiJYWy04 XSIKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkg ICZ2bW92ZHFhCShldmFsKDE2KigoJFhpLTEpJjMpKS4iKCVyc3ApIixAVHhbMV0pOwkjIFhbXStL IHhmZXIgdG8gSUFMVQorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGlu c25zKSk7CisrCisrCSZ2cHNybGQJKEBUeFswXSxAWFswXSwzMSk7CisrCSBldmFsKHNoaWZ0KEBp bnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7 CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKworKwkmdnBzbGxkcShAVHhbMl0sQFhbMF0sMTIp OwkJIyAiWFswXSI8PDk2LCBleHRyYWN0IG9uZSBkd29yZAorKwkmdnBhZGRkCShAWFswXSxAWFsw XSxAWFswXSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMp KTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwor KwkmdnBzcmxkCShAVHhbMV0sQFR4WzJdLDMwKTsKKysJJnZwb3IJKEBYWzBdLEBYWzBdLEBUeFsw XSk7CQkjICJYWzBdIjw8PD0xCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlm dChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNu cykpOworKworKwkmdnBzbGxkCShAVHhbMl0sQFR4WzJdLDIpOworKwkmdnB4b3IJKEBYWzBdLEBY WzBdLEBUeFsxXSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5z bnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOwor KworKwkmdnB4b3IJKEBYWzBdLEBYWzBdLEBUeFsyXSk7CQkjICJYWzBdIl49KCJYWzBdIj4+OTYp PDw8MgorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7Cisr CSAgJnZtb3ZkcWEJKEBUeFsyXSxldmFsKDE2KigoJFhpKS81KSkuIigkS19YWF9YWCkiKTsJIyBL X1hYX1hYCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsK KysKKysKKysJIGZvcmVhY2ggKEBpbnNucykgeyBldmFsOyB9CSMgcmVtYWluaW5nIGluc3RydWN0 aW9ucyBbaWYgYW55XQorKworKyAgJFhpKys7CXB1c2goQFgsc2hpZnQoQFgpKTsJIyAicm90YXRl IiBYW10KKysJCXB1c2goQFR4LHNoaWZ0KEBUeCkpOworK30KKysKKytzdWIgWHVwZGF0ZV9hdnhf MzJfNzkoKQorK3sgdXNlIGludGVnZXI7CisrICBteSAkYm9keSA9IHNoaWZ0OworKyAgbXkgQGlu c25zID0gKCYkYm9keSwmJGJvZHksJiRib2R5LCYkYm9keSk7CSMgMzIgdG8gNDggaW5zdHJ1Y3Rp b25zCisrICBteSAoJGEsJGIsJGMsJGQsJGUpOworKworKwkmdnBhbGlnbnIoQFR4WzBdLEBYWy0x JjddLEBYWy0yJjddLDgpOwkjIGNvbXBvc2UgIlhbLTZdIgorKwkmdnB4b3IJKEBYWzBdLEBYWzBd LEBYWy00JjddKTsJCSMgIlhbMF0iPSJYWy0zMl0iXiJYWy0xNl0iCisrCSBldmFsKHNoaWZ0KEBp bnNucykpOwkJIyBib2R5XzIwXzM5CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChz aGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CQkjIHJvbAorKworKwkmdnB4 b3IJKEBYWzBdLEBYWzBdLEBYWy03JjddKTsJCSMgIlhbMF0iXj0iWFstMjhdIgorKwkgZXZhbChz aGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSkJaWYgKEBpbnNuc1swXSAhfiAv JnJvW3JsXS8pOworKwlpZiAoJFhpJTUpIHsKKysJICAmdm1vdmRxYQkoQFR4WzJdLEBUeFsxXSk7 IyAicGVycGV0dWF0ZSIgS19YWF9YWC4uLgorKwl9IGVsc2UgewkJCSMgLi4uIG9yIGxvYWQgbmV4 dCBvbmUKKysJICAmdm1vdmRxYQkoQFR4WzJdLGV2YWwoMTYqKCRYaS81KSkuIigkS19YWF9YWCki KTsKKysJfQorKwkgICZ2cGFkZGQJKEBUeFsxXSxAVHhbMV0sQFhbLTEmN10pOworKwkgZXZhbChz aGlmdChAaW5zbnMpKTsJCSMgcm9yCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKworKwkmdnB4 b3IJKEBYWzBdLEBYWzBdLEBUeFswXSk7CQkjICJYWzBdIl49IlhbLTZdIgorKwkgZXZhbChzaGlm dChAaW5zbnMpKTsJCSMgYm9keV8yMF8zOQorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2 YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOwkJIyByb2wKKysKKysJ JnZwc3JsZAkoQFR4WzBdLEBYWzBdLDMwKTsKKysJICAmdm1vdmRxYQkoZXZhbCgxNiooKCRYaS0x KSYzKSkuIiglcnNwKSIsQFR4WzFdKTsJIyBYW10rSyB4ZmVyIHRvIElBTFUKKysJIGV2YWwoc2hp ZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5z bnMpKTsJCSMgcm9yCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKworKwkmdnBzbGxkCShAWFsw XSxAWFswXSwyKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CQkjIGJvZHlfMjBfMzkKKysJIGV2 YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlm dChAaW5zbnMpKTsJCSMgcm9sCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlm dChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CQkjIHJvcgorKwkgZXZhbChzaGlm dChAaW5zbnMpKTsKKysKKysJJnZwb3IJKEBYWzBdLEBYWzBdLEBUeFswXSk7CQkjICJYWzBdIjw8 PD0yCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOwkJIyBib2R5XzIwXzM5CisrCSBldmFsKHNoaWZ0 KEBpbnNucykpOworKwkgICZ2bW92ZHFhCShAVHhbMV0sQFhbMF0pCWlmICgkWGk8MTkpOworKwkg ZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CQkjIHJvbAorKwkg ZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNo aWZ0KEBpbnNucykpOwkJIyByb2wKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCisrCSBmb3Jl YWNoIChAaW5zbnMpIHsgZXZhbDsgfQkjIHJlbWFpbmluZyBpbnN0cnVjdGlvbnMKKysKKysgICRY aSsrOwlwdXNoKEBYLHNoaWZ0KEBYKSk7CSMgInJvdGF0ZSIgWFtdCisrCQlwdXNoKEBUeCxzaGlm dChAVHgpKTsKKyt9CisrCisrc3ViIFh1cGxhc3RfYXZ4XzgwKCkKKyt7IHVzZSBpbnRlZ2VyOwor KyAgbXkgJGJvZHkgPSBzaGlmdDsKKysgIG15IEBpbnNucyA9ICgmJGJvZHksJiRib2R5LCYkYm9k eSwmJGJvZHkpOwkjIDMyIGluc3RydWN0aW9ucworKyAgbXkgKCRhLCRiLCRjLCRkLCRlKTsKKysK KysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSAgJnZwYWRkZAkoQFR4WzFdLEBUeFsxXSxAWFst MSY3XSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsK KysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKworKwkg ICZtb3ZkcWEJKGV2YWwoMTYqKCgkWGktMSkmMykpLiIoJXJzcCkiLEBUeFsxXSk7CSMgWFtdK0sg eGZlciBJQUxVCisrCisrCSBmb3JlYWNoIChAaW5zbnMpIHsgZXZhbDsgfQkJIyByZW1haW5pbmcg aW5zdHJ1Y3Rpb25zCisrCisrCSZjbXAJKCRpbnAsJG51bSk7CisrCSZqZQkoIi5MZG9uZV9hdngi KTsKKysKKysJdW5zaGlmdChAVHgscG9wKEBUeCkpOworKworKwkmdm1vdmRxYShAWFsyXSwiNjQo JEtfWFhfWFgpIik7CQkjIHBic3dhcCBtYXNrCisrCSZ2bW92ZHFhKEBUeFsxXSwiMCgkS19YWF9Y WCkiKTsJCSMgS18wMF8xOQorKwkmdm1vdmRxdShAWFstNCY3XSwiMCgkaW5wKSIpOwkJIyBsb2Fk IGlucHV0CisrCSZ2bW92ZHF1KEBYWy0zJjddLCIxNigkaW5wKSIpOworKwkmdm1vdmRxdShAWFst MiY3XSwiMzIoJGlucCkiKTsKKysJJnZtb3ZkcXUoQFhbLTEmN10sIjQ4KCRpbnApIik7CisrCSZ2 cHNodWZiKEBYWy00JjddLEBYWy00JjddLEBYWzJdKTsJIyBieXRlIHN3YXAKKysJJmFkZAkoJGlu cCw2NCk7CisrCisrICAkWGk9MDsKKyt9CisrCisrc3ViIFhsb29wX2F2eCgpCisreyB1c2UgaW50 ZWdlcjsKKysgIG15ICRib2R5ID0gc2hpZnQ7CisrICBteSBAaW5zbnMgPSAoJiRib2R5LCYkYm9k eSwmJGJvZHksJiRib2R5KTsJIyAzMiBpbnN0cnVjdGlvbnMKKysgIG15ICgkYSwkYiwkYywkZCwk ZSk7CisrCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsK KysJJnZwc2h1ZmIoQFhbKCRYaS0zKSY3XSxAWFsoJFhpLTMpJjddLEBYWzJdKTsKKysJIGV2YWwo c2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkmdnBhZGRkCShAWFsk WGkmN10sQFhbKCRYaS00KSY3XSxAVHhbMV0pOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJ IGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChz aGlmdChAaW5zbnMpKTsKKysJJnZtb3ZkcWEoZXZhbCgxNiokWGkpLiIoJXJzcCkiLEBYWyRYaSY3 XSk7CSMgWFtdK0sgeGZlciB0byBJQUxVCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZh bChzaGlmdChAaW5zbnMpKTsKKysKKysJZm9yZWFjaCAoQGluc25zKSB7IGV2YWw7IH0KKysgICRY aSsrOworK30KKysKKytzdWIgWHRhaWxfYXZ4KCkKKyt7IHVzZSBpbnRlZ2VyOworKyAgbXkgJGJv ZHkgPSBzaGlmdDsKKysgIG15IEBpbnNucyA9ICgmJGJvZHksJiRib2R5LCYkYm9keSwmJGJvZHkp OwkjIDMyIGluc3RydWN0aW9ucworKyAgbXkgKCRhLCRiLCRjLCRkLCRlKTsKKysKKysJZm9yZWFj aCAoQGluc25zKSB7IGV2YWw7IH0KKyt9CisrCisrJGNvZGUuPTw8X19fOworKy5hbGlnbgkxNgor Ky5Mb29wX2F2eDoKKytfX18KKysJJlh1cGRhdGVfYXZ4XzE2XzMxKFwmYm9keV8wMF8xOSk7Cisr CSZYdXBkYXRlX2F2eF8xNl8zMShcJmJvZHlfMDBfMTkpOworKwkmWHVwZGF0ZV9hdnhfMTZfMzEo XCZib2R5XzAwXzE5KTsKKysJJlh1cGRhdGVfYXZ4XzE2XzMxKFwmYm9keV8wMF8xOSk7CisrCSZY dXBkYXRlX2F2eF8zMl83OShcJmJvZHlfMDBfMTkpOworKwkmWHVwZGF0ZV9hdnhfMzJfNzkoXCZi b2R5XzIwXzM5KTsKKysJJlh1cGRhdGVfYXZ4XzMyXzc5KFwmYm9keV8yMF8zOSk7CisrCSZYdXBk YXRlX2F2eF8zMl83OShcJmJvZHlfMjBfMzkpOworKwkmWHVwZGF0ZV9hdnhfMzJfNzkoXCZib2R5 XzIwXzM5KTsKKysJJlh1cGRhdGVfYXZ4XzMyXzc5KFwmYm9keV8yMF8zOSk7CisrCSZYdXBkYXRl X2F2eF8zMl83OShcJmJvZHlfNDBfNTkpOworKwkmWHVwZGF0ZV9hdnhfMzJfNzkoXCZib2R5XzQw XzU5KTsKKysJJlh1cGRhdGVfYXZ4XzMyXzc5KFwmYm9keV80MF81OSk7CisrCSZYdXBkYXRlX2F2 eF8zMl83OShcJmJvZHlfNDBfNTkpOworKwkmWHVwZGF0ZV9hdnhfMzJfNzkoXCZib2R5XzQwXzU5 KTsKKysJJlh1cGRhdGVfYXZ4XzMyXzc5KFwmYm9keV8yMF8zOSk7CisrCSZYdXBsYXN0X2F2eF84 MChcJmJvZHlfMjBfMzkpOwkjIGNhbiBqdW1wIHRvICJkb25lIgorKworKwkJCQkkc2F2ZWRfaj0k ajsgQHNhdmVkX1Y9QFY7CisrCisrCSZYbG9vcF9hdngoXCZib2R5XzIwXzM5KTsKKysJJlhsb29w X2F2eChcJmJvZHlfMjBfMzkpOworKwkmWGxvb3BfYXZ4KFwmYm9keV8yMF8zOSk7CisrCisrJGNv ZGUuPTw8X19fOworKwlhZGQJMCgkY3R4KSwkQQkJCSMgdXBkYXRlIGNvbnRleHQKKysJYWRkCTQo JGN0eCksQFRbMF0KKysJYWRkCTgoJGN0eCksJEMKKysJYWRkCTEyKCRjdHgpLCRECisrCW1vdgkk QSwwKCRjdHgpCisrCWFkZAkxNigkY3R4KSwkRQorKwltb3YJQFRbMF0sNCgkY3R4KQorKwltb3YJ QFRbMF0sJEIJCQkjIG1hZ2ljIHNlZWQKKysJbW92CSRDLDgoJGN0eCkKKysJbW92CSRELDEyKCRj dHgpCisrCW1vdgkkRSwxNigkY3R4KQorKwlqbXAJLkxvb3BfYXZ4CisrCisrLmFsaWduCTE2Cisr Lkxkb25lX2F2eDoKKytfX18KKysJCQkJJGo9JHNhdmVkX2o7IEBWPUBzYXZlZF9WOworKworKwkm WHRhaWxfYXZ4KFwmYm9keV8yMF8zOSk7CisrCSZYdGFpbF9hdngoXCZib2R5XzIwXzM5KTsKKysJ Jlh0YWlsX2F2eChcJmJvZHlfMjBfMzkpOworKworKyRjb2RlLj08PF9fXzsKKysJdnplcm9hbGwK KysKKysJYWRkCTAoJGN0eCksJEEJCQkjIHVwZGF0ZSBjb250ZXh0CisrCWFkZAk0KCRjdHgpLEBU WzBdCisrCWFkZAk4KCRjdHgpLCRDCisrCW1vdgkkQSwwKCRjdHgpCisrCWFkZAkxMigkY3R4KSwk RAorKwltb3YJQFRbMF0sNCgkY3R4KQorKwlhZGQJMTYoJGN0eCksJEUKKysJbW92CSRDLDgoJGN0 eCkKKysJbW92CSRELDEyKCRjdHgpCisrCW1vdgkkRSwxNigkY3R4KQorK19fXworKyRjb2RlLj08 PF9fXyBpZiAoJHdpbjY0KTsKKysJbW92YXBzCTY0KzAoJXJzcCksJXhtbTYKKysJbW92YXBzCTY0 KzE2KCVyc3ApLCV4bW03CisrCW1vdmFwcwk2NCszMiglcnNwKSwleG1tOAorKwltb3ZhcHMJNjQr NDgoJXJzcCksJXhtbTkKKysJbW92YXBzCTY0KzY0KCVyc3ApLCV4bW0xMAorK19fXworKyRjb2Rl Lj08PF9fXzsKKysJbGVhCWA2NCsoJHdpbjY0PzYqMTY6MClgKCVyc3ApLCVyc2kKKysJbW92CTAo JXJzaSksJXIxMgorKwltb3YJOCglcnNpKSwlcmJwCisrCW1vdgkxNiglcnNpKSwlcmJ4CisrCWxl YQkyNCglcnNpKSwlcnNwCisrLkxlcGlsb2d1ZV9hdng6CisrCXJldAorKy5zaXplCXNoYTFfYmxv Y2tfZGF0YV9vcmRlcl9hdngsLi1zaGExX2Jsb2NrX2RhdGFfb3JkZXJfYXZ4CisrX19fCisrfQor KyRjb2RlLj08PF9fXzsKKysuYWxpZ24JNjQKKytLX1hYX1hYOgorKy5sb25nCTB4NWE4Mjc5OTks MHg1YTgyNzk5OSwweDVhODI3OTk5LDB4NWE4Mjc5OTkJIyBLXzAwXzE5CisrLmxvbmcJMHg2ZWQ5 ZWJhMSwweDZlZDllYmExLDB4NmVkOWViYTEsMHg2ZWQ5ZWJhMQkjIEtfMjBfMzkKKysubG9uZwkw eDhmMWJiY2RjLDB4OGYxYmJjZGMsMHg4ZjFiYmNkYywweDhmMWJiY2RjCSMgS180MF81OQorKy5s b25nCTB4Y2E2MmMxZDYsMHhjYTYyYzFkNiwweGNhNjJjMWQ2LDB4Y2E2MmMxZDYJIyBLXzYwXzc5 CisrLmxvbmcJMHgwMDAxMDIwMywweDA0MDUwNjA3LDB4MDgwOTBhMGIsMHgwYzBkMGUwZgkjIHBi c3dhcCBtYXNrCisrX19fCisrfX19CisrJGNvZGUuPTw8X19fOworKy5hc2NpegkiU0hBMSBibG9j ayB0cmFuc2Zvcm0gZm9yIHg4Nl82NCwgQ1JZUFRPR0FNUyBieSA8YXBwcm9cQG9wZW5zc2wub3Jn PiIKKysuYWxpZ24JNjQKKyBfX18KKyAKKyAjIEVYQ0VQVElPTl9ESVNQT1NJVElPTiBoYW5kbGVy IChFWENFUFRJT05fUkVDT1JEICpyZWMsVUxPTkc2NCBmcmFtZSwKK0BAIC0yNzIsMjUgKzExMDks NzMgQEAgc2VfaGFuZGxlcjoKKyAKKyAJbGVhCS5McHJvbG9ndWUoJXJpcCksJXIxMAorIAljbXAJ JXIxMCwlcmJ4CQkjIGNvbnRleHQtPlJpcDwuTHByb2xvZ3VlCistCWpiCS5MaW5fcHJvbG9ndWUK KysJamIJLkxjb21tb25fc2VoX3RhaWwKKyAKKyAJbW92CTE1MigkY29udGV4dCksJXJheAkjIHB1 bGwgY29udGV4dC0+UnNwCisgCisgCWxlYQkuTGVwaWxvZ3VlKCVyaXApLCVyMTAKKyAJY21wCSVy MTAsJXJieAkJIyBjb250ZXh0LT5SaXA+PS5MZXBpbG9ndWUKKy0JamFlCS5MaW5fcHJvbG9ndWUK KysJamFlCS5MY29tbW9uX3NlaF90YWlsCisgCisgCW1vdglgMTYqNGAoJXJheCksJXJheAkjIHB1 bGwgc2F2ZWQgc3RhY2sgcG9pbnRlcgorLQlsZWEJMjQoJXJheCksJXJheAorKwlsZWEJMzIoJXJh eCksJXJheAorIAorIAltb3YJLTgoJXJheCksJXJieAorIAltb3YJLTE2KCVyYXgpLCVyYnAKKyAJ bW92CS0yNCglcmF4KSwlcjEyCisrCW1vdgktMzIoJXJheCksJXIxMworIAltb3YJJXJieCwxNDQo JGNvbnRleHQpCSMgcmVzdG9yZSBjb250ZXh0LT5SYngKKyAJbW92CSVyYnAsMTYwKCRjb250ZXh0 KQkjIHJlc3RvcmUgY29udGV4dC0+UmJwCisgCW1vdgklcjEyLDIxNigkY29udGV4dCkJIyByZXN0 b3JlIGNvbnRleHQtPlIxMgorKwltb3YJJXIxMywyMjQoJGNvbnRleHQpCSMgcmVzdG9yZSBjb250 ZXh0LT5SMTMKKysKKysJam1wCS5MY29tbW9uX3NlaF90YWlsCisrLnNpemUJc2VfaGFuZGxlciwu LXNlX2hhbmRsZXIKKysKKysudHlwZQlzc3NlM19oYW5kbGVyLFxAYWJpLW9tbmlwb3RlbnQKKysu YWxpZ24JMTYKKytzc3NlM19oYW5kbGVyOgorKwlwdXNoCSVyc2kKKysJcHVzaAklcmRpCisrCXB1 c2gJJXJieAorKwlwdXNoCSVyYnAKKysJcHVzaAklcjEyCisrCXB1c2gJJXIxMworKwlwdXNoCSVy MTQKKysJcHVzaAklcjE1CisrCXB1c2hmcQorKwlzdWIJXCQ2NCwlcnNwCisrCisrCW1vdgkxMjAo JGNvbnRleHQpLCVyYXgJIyBwdWxsIGNvbnRleHQtPlJheAorKwltb3YJMjQ4KCRjb250ZXh0KSwl cmJ4CSMgcHVsbCBjb250ZXh0LT5SaXAKKysKKysJbW92CTgoJGRpc3ApLCVyc2kJCSMgZGlzcC0+ SW1hZ2VCYXNlCisrCW1vdgk1NigkZGlzcCksJXIxMQkJIyBkaXNwLT5IYW5kbGVyRGF0YQorKwor Kwltb3YJMCglcjExKSwlcjEwZAkJIyBIYW5kbGVyRGF0YVswXQorKwlsZWEJKCVyc2ksJXIxMCks JXIxMAkjIHByb2xvZ3VlIGxhYmVsCisrCWNtcAklcjEwLCVyYngJCSMgY29udGV4dC0+UmlwPHBy b2xvZ3VlIGxhYmVsCisrCWpiCS5MY29tbW9uX3NlaF90YWlsCisrCisrCW1vdgkxNTIoJGNvbnRl eHQpLCVyYXgJIyBwdWxsIGNvbnRleHQtPlJzcAorIAorLS5MaW5fcHJvbG9ndWU6CisrCW1vdgk0 KCVyMTEpLCVyMTBkCQkjIEhhbmRsZXJEYXRhWzFdCisrCWxlYQkoJXJzaSwlcjEwKSwlcjEwCSMg ZXBpbG9ndWUgbGFiZWwKKysJY21wCSVyMTAsJXJieAkJIyBjb250ZXh0LT5SaXA+PWVwaWxvZ3Vl IGxhYmVsCisrCWphZQkuTGNvbW1vbl9zZWhfdGFpbAorKworKwlsZWEJNjQoJXJheCksJXJzaQor KwlsZWEJNTEyKCRjb250ZXh0KSwlcmRpCSMgJmNvbnRleHQuWG1tNgorKwltb3YJXCQxMCwlZWN4 CisrCS5sb25nCTB4YTU0OGYzZmMJCSMgY2xkOyByZXAgbW92c3EKKysJbGVhCTI0KzUqMTYoJXJh eCksJXJheAkjIGFkanVzdCBzdGFjayBwb2ludGVyCisrCisrCW1vdgktOCglcmF4KSwlcmJ4Cisr CW1vdgktMTYoJXJheCksJXJicAorKwltb3YJJXJieCwxNDQoJGNvbnRleHQpCSMgcmVzdG9yZSBj b250ZXh0LT5SYngKKysJbW92CSVyYnAsMTYwKCRjb250ZXh0KQkjIHJlc3RvcmUgY29udGV4dC0+ UmJwCisrCisrLkxjb21tb25fc2VoX3RhaWw6CisgCW1vdgk4KCVyYXgpLCVyZGkKKyAJbW92CTE2 KCVyYXgpLCVyc2kKKyAJbW92CSVyYXgsMTUyKCRjb250ZXh0KQkjIHJlc3RvcmUgY29udGV4dC0+ UnNwCitAQCAtMzI4LDE5ICsxMjEzLDM4IEBAIHNlX2hhbmRsZXI6CisgCXBvcAklcmRpCisgCXBv cAklcnNpCisgCXJldAorLS5zaXplCXNlX2hhbmRsZXIsLi1zZV9oYW5kbGVyCisrLnNpemUJc3Nz ZTNfaGFuZGxlciwuLXNzc2UzX2hhbmRsZXIKKyAKKyAuc2VjdGlvbgkucGRhdGEKKyAuYWxpZ24J NAorIAkucnZhCS5MU0VIX2JlZ2luX3NoYTFfYmxvY2tfZGF0YV9vcmRlcgorIAkucnZhCS5MU0VI X2VuZF9zaGExX2Jsb2NrX2RhdGFfb3JkZXIKKyAJLnJ2YQkuTFNFSF9pbmZvX3NoYTFfYmxvY2tf ZGF0YV9vcmRlcgorLQorKwkucnZhCS5MU0VIX2JlZ2luX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9z c3NlMworKwkucnZhCS5MU0VIX2VuZF9zaGExX2Jsb2NrX2RhdGFfb3JkZXJfc3NzZTMKKysJLnJ2 YQkuTFNFSF9pbmZvX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9zc3NlMworK19fXworKyRjb2RlLj08 PF9fXyBpZiAoJGF2eCk7CisrCS5ydmEJLkxTRUhfYmVnaW5fc2hhMV9ibG9ja19kYXRhX29yZGVy X2F2eAorKwkucnZhCS5MU0VIX2VuZF9zaGExX2Jsb2NrX2RhdGFfb3JkZXJfYXZ4CisrCS5ydmEJ LkxTRUhfaW5mb19zaGExX2Jsb2NrX2RhdGFfb3JkZXJfYXZ4CisrX19fCisrJGNvZGUuPTw8X19f OworIC5zZWN0aW9uCS54ZGF0YQorIC5hbGlnbgk4CisgLkxTRUhfaW5mb19zaGExX2Jsb2NrX2Rh dGFfb3JkZXI6CisgCS5ieXRlCTksMCwwLDAKKyAJLnJ2YQlzZV9oYW5kbGVyCisrLkxTRUhfaW5m b19zaGExX2Jsb2NrX2RhdGFfb3JkZXJfc3NzZTM6CisrCS5ieXRlCTksMCwwLDAKKysJLnJ2YQlz c3NlM19oYW5kbGVyCisrCS5ydmEJLkxwcm9sb2d1ZV9zc3NlMywuTGVwaWxvZ3VlX3Nzc2UzCSMg SGFuZGxlckRhdGFbXQorK19fXworKyRjb2RlLj08PF9fXyBpZiAoJGF2eCk7CisrLkxTRUhfaW5m b19zaGExX2Jsb2NrX2RhdGFfb3JkZXJfYXZ4OgorKwkuYnl0ZQk5LDAsMCwwCisrCS5ydmEJc3Nz ZTNfaGFuZGxlcgorKwkucnZhCS5McHJvbG9ndWVfYXZ4LC5MZXBpbG9ndWVfYXZ4CQkjIEhhbmRs ZXJEYXRhW10KKyBfX18KKyB9CisgCitkaWZmIC11cCBvcGVuc3NsLTEuMC4wZC9jcnlwdG8vc2hh L2FzbS9zaGExLTU4Ni5wbC5pbnRlbG9wdHMgb3BlbnNzbC0xLjAuMGQvY3J5cHRvL3NoYS9hc20v c2hhMS01ODYucGwKKy0tLSBvcGVuc3NsLTEuMC4wZC9jcnlwdG8vc2hhL2FzbS9zaGExLTU4Ni5w bC5pbnRlbG9wdHMJMjAwOC0wNy0xNyAxMTo1MDo1Ni4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVu c3NsLTEuMC4wZC9jcnlwdG8vc2hhL2FzbS9zaGExLTU4Ni5wbAkyMDExLTA4LTI0IDEyOjM2OjM0 LjAwMDAwMDAwMCArMDIwMAorQEAgLTEsNCArMSw0IEBACistIyEvdXNyL2Jpbi9lbnYgcGVybAor KyMhL3Vzci9iaW4vcGVybAorIAorICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAjIFtSZV13cml0dGVuIGJ5IEFu ZHkgUG9seWFrb3YgPGFwcHJvQGZ5LmNoYWxtZXJzLnNlPiBmb3IgdGhlIE9wZW5TU0wKK0BAIC0x Miw2ICsxMiw4IEBACisgIyBjb21tZW50YXJ5IGJlbG93XSwgYW5kIGluIDIwMDYgdGhlIHJlc3Qg d2FzIHJld3JpdHRlbiBpbiBvcmRlciB0bworICMgZ2FpbiBmcmVlZG9tIHRvIGxpYmVyYXRlIGxp Y2Vuc2luZyB0ZXJtcy4KKyAKKysjIEphbnVhcnksIFNlcHRlbWJlciAyMDA0LgorKyMKKyAjIEl0 IHdhcyBub3RlZCB0aGF0IEludGVsIElBLTMyIEMgY29tcGlsZXIgZ2VuZXJhdGVzIGNvZGUgd2hp Y2gKKyAjIHBlcmZvcm1zIH4zMCUgKmZhc3Rlciogb24gUDQgQ1BVIHRoYW4gb3JpZ2luYWwgKmhh bmQtY29kZWQqCisgIyBTSEExIGFzc2VtYmxlciBpbXBsZW1lbnRhdGlvbi4gVG8gYWRkcmVzcyB0 aGlzIHByb2JsZW0gKGFuZAorQEAgLTMxLDEyICszMyw5MiBAQAorICMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICMJCQkJ CTxhcHByb0BmeS5jaGFsbWVycy5zZT4KKyAKKysjIEF1Z3VzdCAyMDA5LgorKyMKKysjIEdlb3Jn ZSBTcGVsdmluIGhhcyB0aXBwZWQgdGhhdCBGXzQwXzU5KGIsYyxkKSBjYW4gYmUgcmV3cml0dGVu IGFzCisrIyAnKGMmZCkgKyAoYiYoY15kKSknLCB3aGljaCBhbGxvd3MgdG8gYWNjdW11bGF0ZSBw YXJ0aWFsIHJlc3VsdHMKKysjIGFuZCBsaWdodGVuICJwcmVzc3VyZSIgb24gc2NyYXRjaCByZWdp c3RlcnMuIFRoaXMgcmVzdWx0ZWQgaW4KKysjID4xMiUgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQg b24gY29udGVtcG9yYXJ5IEFNRCBjb3JlcyAod2l0aCBubworKyMgZGVncmFkYXRpb24gb24gb3Ro ZXIgQ1BVczotKS4gQWxzbywgdGhlIGNvZGUgd2FzIHJldmlzZWQgdG8gbWF4aW1pemUKKysjICJk aXN0YW5jZSIgYmV0d2VlbiBpbnN0cnVjdGlvbnMgcHJvZHVjaW5nIGlucHV0IHRvICdsZWEnIGlu c3RydWN0aW9uCisrIyBhbmQgdGhlICdsZWEnIGluc3RydWN0aW9uIGl0c2VsZiwgd2hpY2ggaXMg ZXNzZW50aWFsIGZvciBJbnRlbCBBdG9tCisrIyBjb3JlIGFuZCByZXN1bHRlZCBpbiB+MTUlIGlt cHJvdmVtZW50LgorKworKyMgT2N0b2JlciAyMDEwLgorKyMKKysjIEFkZCBTU1NFMywgU3VwcGxl bWVudGFsWyFdIFNTRTMsIGltcGxlbWVudGF0aW9uLiBUaGUgaWRlYSBiZWhpbmQgaXQKKysjIGlz IHRvIG9mZmxvYWQgbWVzc2FnZSBzY2hlZHVsZSBkZW5vdGVkIGJ5IFd0IGluIE5JU1Qgc3BlY2lm aWNhdGlvbiwKKysjIG9yIFh1cGRhdGUgaW4gT3BlblNTTCBzb3VyY2UsIHRvIFNJTUQgdW5pdC4g VGhlIGlkZWEgaXMgbm90IG5vdmVsLAorKyMgYW5kIGluIFNTRTIgY29udGV4dCB3YXMgZmlyc3Qg ZXhwbG9yZWQgYnkgRGVhbiBHYXVkZXQgaW4gMjAwNCwgc2VlCisrIyBodHRwOi8vYXJjdGljLm9y Zy9+ZGVhbi9jcnlwdG8vc2hhMS5odG1sLiBTaW5jZSB0aGVuIHNldmVyYWwgdGhpbmdzCisrIyBo YXZlIGNoYW5nZWQgdGhhdCBtYWRlIGl0IGludGVyZXN0aW5nIGFnYWluOgorKyMKKysjIGEpIFhN TSB1bml0cyBiZWNhbWUgZmFzdGVyIGFuZCB3aWRlcjsKKysjIGIpIGluc3RydWN0aW9uIHNldCBi ZWNhbWUgbW9yZSB2ZXJzYXRpbGU7CisrIyBjKSBhbiBpbXBvcnRhbnQgb2JzZXJ2YXRpb24gd2Fz IG1hZGUgYnkgTWF4IExvY2t0eWtoaW4sIHdoaWNoIG1hZGUKKysjICAgIGl0IHBvc3NpYmxlIHRv IHJlZHVjZSBhbW91bnQgb2YgaW5zdHJ1Y3Rpb25zIHJlcXVpcmVkIHRvIHBlcmZvcm0KKysjICAg IHRoZSBvcGVyYXRpb24gaW4gcXVlc3Rpb24sIGZvciBmdXJ0aGVyIGRldGFpbHMgc2VlCisrIyAg ICBodHRwOi8vc29mdHdhcmUuaW50ZWwuY29tL2VuLXVzL2FydGljbGVzL2ltcHJvdmluZy10aGUt cGVyZm9ybWFuY2Utb2YtdGhlLXNlY3VyZS1oYXNoLWFsZ29yaXRobS0xLy4KKysKKysjIEFwcmls IDIwMTEuCisrIworKyMgQWRkIEFWWCBjb2RlIHBhdGgsIHByb2JhYmx5IG1vc3QgY29udHJvdmVy c2lhbC4uLiBUaGUgdGhpbmcgaXMgdGhhdAorKyMgc3dpdGNoIHRvIEFWWCBhbG9uZSBpbXByb3Zl cyBwZXJmb3JtYW5jZSBieSBhcyBsaXR0bGUgYXMgNCUgaW4KKysjIGNvbXBhcmlzb24gdG8gU1NT RTMgY29kZSBwYXRoLiBCdXQgYmVsb3cgcmVzdWx0IGRvZXNuJ3QgbG9vayBsaWtlCisrIyA0JSBp bXByb3ZlbWVudC4uLiBUcm91YmxlIGlzIHRoYXQgU2FuZHkgQnJpZGdlIGRlY29kZXMgJ3JvW3Js XScgYXMKKysjIHBhaXIgb2YgwrUtb3BzLCBhbmQgaXQncyB0aGUgYWRkaXRpb25hbCDCtS1vcHMs IHR3byBwZXIgcm91bmQsIHRoYXQKKysjIG1ha2UgaXQgcnVuIHNsb3dlciB0aGFuIENvcmUyIGFu ZCBXZXN0bWVyZS4gQnV0ICdzaFtybF1kJyBpcyBkZWNvZGVkCisrIyBhcyBzaW5nbGUgwrUtb3Ag YnkgU2FuZHkgQnJpZGdlIGFuZCBpdCdzIHJlcGxhY2luZyAncm9bcmxdJyB3aXRoCisrIyBlcXVp dmFsZW50ICdzaFtybF1kJyB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgaW1wcmVzc2l2ZSA1 LjEKKysjIGN5Y2xlcyBwZXIgcHJvY2Vzc2VkIGJ5dGUuIEJ1dCAnc2hbcmxdZCcgaXMgbm90IHNv bWV0aGluZyB0aGF0IHVzZWQKKysjIHRvIGJlIGZhc3QsIG5vciBkb2VzIGl0IGFwcGVhciB0byBi ZSBmYXN0IGluIHVwY29taW5nIEJ1bGxkb3plcgorKyMgW2FjY29yZGluZyB0byBpdHMgb3B0aW1p emF0aW9uIG1hbnVhbF0uIFdoaWNoIGlzIHdoeSBBVlggY29kZSBwYXRoCisrIyBpcyBndWFyZGVk IGJ5ICpib3RoKiBBVlggYW5kIHN5bnRoZXRpYyBiaXQgZGVub3RpbmcgSW50ZWwgQ1BVcy4KKysj IE9uZSBjYW4gYXJndWUgdGhhdCBpdCdzIHVuZmFpciB0byBBTUQsIGJ1dCB3aXRob3V0ICdzaFty bF1kJyBpdAorKyMgbWFrZXMgbm8gc2Vuc2UgdG8ga2VlcCB0aGUgQVZYIGNvZGUgcGF0aC4gSWYg c29tZWJvZHkgZmVlbHMgdGhhdAorKyMgc3Ryb25nbHksIGl0J3MgcHJvYmFibHkgbW9yZSBhcHBy b3ByaWF0ZSB0byBkaXNjdXNzIHBvc3NpYmlsaXR5IG9mCisrIyB1c2luZyB2ZWN0b3Igcm90YXRl IFhPUCBvbiBBTUQuLi4KKysKKysjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisrIyBDdXJyZW50IHBlcmZvcm1hbmNl IGlzIHN1bW1hcml6ZWQgaW4gZm9sbG93aW5nIHRhYmxlLiBOdW1iZXJzIGFyZQorKyMgQ1BVIGNs b2NrIGN5Y2xlcyBzcGVudCB0byBwcm9jZXNzIHNpbmdsZSBieXRlIChsZXNzIGlzIGJldHRlciku CisrIworKyMJCXg4NgkJU1NTRTMJCUFWWAorKyMgUGVudGl1bQkxNS43CQktCisrIyBQSUlJCQkx MS41CQktCisrIyBQNAkJMTAuNgkJLQorKyMgQU1EIEs4CTcuMQkJLQorKyMgQ29yZTIJCTcuMwkJ Ni4xLysyMCUJLQorKyMgQXRvbQkJMTIuNQkJOS41KCopLyszMiUJLQorKyMgV2VzdG1lcmUJNy4z CQk1LjYvKzMwJQktCisrIyBTYW5keSBCcmlkZ2UJOC44CQk2LjIvKzQwJQk1LjEoKiopLys3MCUK KysjCisrIyAoKikJTG9vcCBpcyAxMDU2IGluc3RydWN0aW9ucyBsb25nIGFuZCBleHBlY3RlZCBy ZXN1bHQgaXMgfjguMjUuCisrIwlJdCByZW1haW5zIG15c3RlcnkgW3RvIG1lXSB3aHkgSUxQIGlz IGxpbWl0ZWQgdG8gMS43LgorKyMKKysjICgqKikJQXMgcGVyIGFib3ZlIGNvbW1lbnQsIHRoZSBy ZXN1bHQgaXMgZm9yIEFWWCAqcGx1cyogc2hbcmxdZC4KKysKKyAkMCA9fiBtLyguKltcL1xcXSlb XlwvXFxdKyQvOyAkZGlyPSQxOworIHB1c2goQElOQywiJHtkaXJ9IiwiJHtkaXJ9Li4vLi4vcGVy bGFzbSIpOworIHJlcXVpcmUgIng4NmFzbS5wbCI7CisgCisgJmFzbV9pbml0KCRBUkdWWzBdLCJz aGExLTU4Ni5wbCIsJEFSR1ZbJCNBUkdWXSBlcSAiMzg2Iik7CisgCisrJHhtbT0xOyAkeW1tPTA7 CisrZm9yIChAQVJHVikgeyAkeG1tPTEgaWYgKC8tRE9QRU5TU0xfSUEzMl9TU0UyLyk7IH0KKysK KyskeW1tPTEgaWYgKCR4bW0gJiYKKysJCWAkRU5We0NDfSAtV2EsLXYgLWMgLW8gL2Rldi9udWxs IC14IGFzc2VtYmxlciAvZGV2L251bGwgMj4mMWAKKysJCQk9fiAvR05VIGFzc2VtYmxlciB2ZXJz aW9uIChbMi05XVwuWzAtOV0rKS8gJiYKKysJCSQxPj0yLjE5KTsJIyBmaXJzdCB2ZXJzaW9uIHN1 cHBvcnRpbmcgQVZYCisrCisrJHltbT0xIGlmICgkeG1tICYmICEkeW1tICYmICRBUkdWWzBdIGVx ICJ3aW4zMm4iICYmIAorKwkJYG5hc20gLXYgMj4mMWAgPX4gL05BU00gdmVyc2lvbiAoWzItOV1c LlswLTldKykvICYmCisrCQkkMT49Mi4wMyk7CSMgZmlyc3QgdmVyc2lvbiBzdXBwb3J0aW5nIEFW WAorKworKyZleHRlcm5hbF9sYWJlbCgiT1BFTlNTTF9pYTMyY2FwX1giKSBpZiAoJHhtbSk7Cisr CisrCisgJEE9ImVheCI7CisgJEI9ImVieCI7CisgJEM9ImVjeCI7CitAQCAtNDcsNiArMTI5LDEw IEBAICR0bXAxPSJlYnAiOworIAorIEBWPSgkQSwkQiwkQywkRCwkRSwkVCk7CisgCisrJGFsdD0w OwkjIDEgZGVub3RlcyBhbHRlcm5hdGl2ZSBJQUxVIGltcGxlbWVudGF0aW9uLCB3aGljaCBwZXJm b3JtcworKwkjIDglICp3b3JzZSogb24gUDQsIHNhbWUgb24gV2VzdG1lcmUgYW5kIEF0b20sIDIl IGJldHRlciBvbgorKwkjIFNhbmR5IEJyaWRnZS4uLgorKworIHN1YiBCT0RZXzAwXzE1CisgCXsK KyAJbG9jYWwoJG4sJGEsJGIsJGMsJGQsJGUsJGYpPUBfOworQEAgLTU5LDE2ICsxNDUsMTggQEAg c3ViIEJPRFlfMDBfMTUKKyAJJnJvdGwoJHRtcDEsNSk7CQkJIyB0bXAxPVJPVEFURShhLDUpCisg CSAmeG9yKCRmLCRkKTsKKyAJJmFkZCgkdG1wMSwkZSk7CQkJIyB0bXAxKz1lOworLQkgJmFuZCgk ZiwkYik7CistCSZtb3YoJGUsJnN3dG1wKCRuJTE2KSk7CQkjIGUgYmVjb21lcyB2b2xhdGlsZSBh bmQgaXMgbG9hZGVkCisrCSAmbW92KCRlLCZzd3RtcCgkbiUxNikpOwkjIGUgYmVjb21lcyB2b2xh dGlsZSBhbmQgaXMgbG9hZGVkCisgCSAJCQkJIyB3aXRoIHhpLCBhbHNvIG5vdGUgdGhhdCBlIGJl Y29tZXMKKyAJCQkJCSMgZiBpbiBuZXh0IHJvdW5kLi4uCistCSAmeG9yKCRmLCRkKTsJCQkjIGYg aG9sZHMgRl8wMF8xOShiLGMsZCkKKysJJmFuZCgkZiwkYik7CisgCSZyb3RyKCRiLDIpOwkJCSMg Yj1ST1RBVEUoYiwzMCkKKy0JICZsZWEoJHRtcDEsJkRXUCgweDVhODI3OTk5LCR0bXAxLCRlKSk7 CSMgdG1wMSs9S18wMF8xOSt4aQorKwkgJnhvcigkZiwkZCk7CQkJIyBmIGhvbGRzIEZfMDBfMTko YixjLGQpCisrCSZsZWEoJHRtcDEsJkRXUCgweDVhODI3OTk5LCR0bXAxLCRlKSk7CSMgdG1wMSs9 S18wMF8xOSt4aQorIAorLQlpZiAoJG49PTE1KSB7ICZhZGQoJGYsJHRtcDEpOyB9CSMgZis9dG1w MQorKwlpZiAoJG49PTE1KSB7ICZtb3YoJGUsJnN3dG1wKCgkbisxKSUxNikpOyMgcHJlLWZldGNo IGYgZm9yIG5leHQgcm91bmQKKysJCSAgICAgICZhZGQoJGYsJHRtcDEpOyB9CSMgZis9dG1wMQor IAllbHNlICAgICAgICB7ICZhZGQoJHRtcDEsJGYpOyB9CSMgZiBiZWNvbWVzIGEgaW4gbmV4dCBy b3VuZAorKwkmbW92KCR0bXAxLCRhKQkJCWlmICgkYWx0ICYmICRuPT0xNSk7CisgCX0KKyAKKyBz dWIgQk9EWV8xNl8xOQorQEAgLTc3LDIyICsxNjUsNDEgQEAgc3ViIEJPRFlfMTZfMTkKKyAKKyAJ JmNvbW1lbnQoIjE2XzE5ICRuIik7CisgCistCSZtb3YoJGYsJnN3dG1wKCRuJTE2KSk7CQkjIGYg dG8gaG9sZCBYdXBkYXRlKHhpLHhhLHhiLHhjLHhkKQorLQkgJm1vdigkdG1wMSwkYyk7CQkjIHRt cDEgdG8gaG9sZCBGXzAwXzE5KGIsYyxkKQorLQkmeG9yKCRmLCZzd3RtcCgoJG4rMiklMTYpKTsK Ky0JICZ4b3IoJHRtcDEsJGQpOworLQkmeG9yKCRmLCZzd3RtcCgoJG4rOCklMTYpKTsKKy0JICZh bmQoJHRtcDEsJGIpOwkJIyB0bXAxIGhvbGRzIEZfMDBfMTkoYixjLGQpCistCSZyb3RyKCRiLDIp OwkJCSMgYj1ST1RBVEUoYiwzMCkKKytpZiAoJGFsdCkgeworKwkmeG9yKCRjLCRkKTsKKysJICZ4 b3IoJGYsJnN3dG1wKCgkbisyKSUxNikpOwkjIGYgdG8gaG9sZCBYdXBkYXRlKHhpLHhhLHhiLHhj LHhkKQorKwkmYW5kKCR0bXAxLCRjKTsJCQkjIHRtcDEgdG8gaG9sZCBGXzAwXzE5KGIsYyxkKSwg YiY9Y15kCisrCSAmeG9yKCRmLCZzd3RtcCgoJG4rOCklMTYpKTsKKysJJnhvcigkdG1wMSwkZCk7 CQkJIyB0bXAxPUZfMDBfMTkoYixjLGQpCisrCSAmeG9yKCRmLCZzd3RtcCgoJG4rMTMpJTE2KSk7 CSMgZiBob2xkcyB4YV54Yl54Y154ZAorKwkmcm90bCgkZiwxKTsJCQkjIGY9Uk9UQVRFKGYsMSkK KysJICZhZGQoJGUsJHRtcDEpOwkJIyBlKz1GXzAwXzE5KGIsYyxkKQorKwkmeG9yKCRjLCRkKTsJ CQkjIHJlc3RvcmUgJGMKKysJICZtb3YoJHRtcDEsJGEpOwkJIyBiIGluIG5leHQgcm91bmQKKysJ JnJvdHIoJGIsJG49PTE2PzI6Nyk7CQkjIGI9Uk9UQVRFKGIsMzApCisrCSAmbW92KCZzd3RtcCgk biUxNiksJGYpOwkjIHhpPWYKKysJJnJvdGwoJGEsNSk7CQkJIyBST1RBVEUoYSw1KQorKwkgJmxl YSgkZiwmRFdQKDB4NWE4Mjc5OTksJGYsJGUpKTsjIGYrPUZfMDBfMTkoYixjLGQpK2UKKysJJm1v digkZSwmc3d0bXAoKCRuKzEpJTE2KSk7CSMgcHJlLWZldGNoIGYgZm9yIG5leHQgcm91bmQKKysJ ICZhZGQoJGYsJGEpOwkJCSMgZis9Uk9UQVRFKGEsNSkKKyt9IGVsc2UgeworKwkmbW92KCR0bXAx LCRjKTsJCQkjIHRtcDEgdG8gaG9sZCBGXzAwXzE5KGIsYyxkKQorKwkgJnhvcigkZiwmc3d0bXAo KCRuKzIpJTE2KSk7CSMgZiB0byBob2xkIFh1cGRhdGUoeGkseGEseGIseGMseGQpCisrCSZ4b3Io JHRtcDEsJGQpOworKwkgJnhvcigkZiwmc3d0bXAoKCRuKzgpJTE2KSk7CisrCSZhbmQoJHRtcDEs JGIpOworIAkgJnhvcigkZiwmc3d0bXAoKCRuKzEzKSUxNikpOwkjIGYgaG9sZHMgeGFeeGJeeGNe eGQKKyAJJnJvdGwoJGYsMSk7CQkJIyBmPVJPVEFURShmLDEpCisgCSAmeG9yKCR0bXAxLCRkKTsJ CSMgdG1wMT1GXzAwXzE5KGIsYyxkKQorLQkmbW92KCZzd3RtcCgkbiUxNiksJGYpOwkJIyB4aT1m CistCSZsZWEoJGYsJkRXUCgweDVhODI3OTk5LCRmLCRlKSk7IyBmKz1LXzAwXzE5K2UKKy0JICZt b3YoJGUsJGEpOwkJCSMgZSBiZWNvbWVzIHZvbGF0aWxlCistCSZyb3RsKCRlLDUpOwkJCSMgZT1S T1RBVEUoYSw1KQorLQkgJmFkZCgkZiwkdG1wMSk7CQkjIGYrPUZfMDBfMTkoYixjLGQpCistCSZh ZGQoJGYsJGUpOwkJCSMgZis9Uk9UQVRFKGEsNSkKKysJJmFkZCgkZSwkdG1wMSk7CQkJIyBlKz1G XzAwXzE5KGIsYyxkKQorKwkgJm1vdigkdG1wMSwkYSk7CisrCSZyb3RyKCRiLDIpOwkJCSMgYj1S T1RBVEUoYiwzMCkKKysJICZtb3YoJnN3dG1wKCRuJTE2KSwkZik7CSMgeGk9ZgorKwkmcm90bCgk dG1wMSw1KTsJCQkjIFJPVEFURShhLDUpCisrCSAmbGVhKCRmLCZEV1AoMHg1YTgyNzk5OSwkZiwk ZSkpOyMgZis9Rl8wMF8xOShiLGMsZCkrZQorKwkmbW92KCRlLCZzd3RtcCgoJG4rMSklMTYpKTsJ IyBwcmUtZmV0Y2ggZiBmb3IgbmV4dCByb3VuZAorKwkgJmFkZCgkZiwkdG1wMSk7CQkjIGYrPVJP VEFURShhLDUpCisrfQorIAl9CisgCisgc3ViIEJPRFlfMjBfMzkKK0BAIC0xMDIsMjEgKzIwOSw0 MSBAQCBzdWIgQk9EWV8yMF8zOQorIAorIAkmY29tbWVudCgiMjBfMzkgJG4iKTsKKyAKKytpZiAo JGFsdCkgeworKwkmeG9yKCR0bXAxLCRjKTsJCQkjIHRtcDEgdG8gaG9sZCBGXzIwXzM5KGIsYyxk KSwgYl49YworKwkgJnhvcigkZiwmc3d0bXAoKCRuKzIpJTE2KSk7CSMgZiB0byBob2xkIFh1cGRh dGUoeGkseGEseGIseGMseGQpCisrCSZ4b3IoJHRtcDEsJGQpOwkJCSMgdG1wMSBob2xkcyBGXzIw XzM5KGIsYyxkKQorKwkgJnhvcigkZiwmc3d0bXAoKCRuKzgpJTE2KSk7CisrCSZhZGQoJGUsJHRt cDEpOwkJCSMgZSs9Rl8yMF8zOShiLGMsZCkKKysJICZ4b3IoJGYsJnN3dG1wKCgkbisxMyklMTYp KTsJIyBmIGhvbGRzIHhhXnhiXnhjXnhkCisrCSZyb3RsKCRmLDEpOwkJCSMgZj1ST1RBVEUoZiwx KQorKwkgJm1vdigkdG1wMSwkYSk7CQkjIGIgaW4gbmV4dCByb3VuZAorKwkmcm90cigkYiw3KTsJ CQkjIGI9Uk9UQVRFKGIsMzApCisrCSAmbW92KCZzd3RtcCgkbiUxNiksJGYpCQlpZigkbjw3Nyk7 IyB4aT1mCisrCSZyb3RsKCRhLDUpOwkJCSMgUk9UQVRFKGEsNSkKKysJICZ4b3IoJGIsJGMpCQkJ aWYoJG49PTM5KTsjIHdhcm0gdXAgZm9yIEJPRFlfNDBfNTkKKysJJmFuZCgkdG1wMSwkYikJCQlp Zigkbj09MzkpOworKwkgJmxlYSgkZiwmRFdQKCRLLCRmLCRlKSk7CSMgZis9ZStLX1hYX1lZCisr CSZtb3YoJGUsJnN3dG1wKCgkbisxKSUxNikpCWlmKCRuPDc5KTsjIHByZS1mZXRjaCBmIGZvciBu ZXh0IHJvdW5kCisrCSAmYWRkKCRmLCRhKTsJCQkjIGYrPVJPVEFURShhLDUpCisrCSZyb3RyKCRh LDUpCQkJaWYgKCRuPT03OSk7CisrfSBlbHNlIHsKKyAJJm1vdigkdG1wMSwkYik7CQkJIyB0bXAx IHRvIGhvbGQgRl8yMF8zOShiLGMsZCkKKy0JICZtb3YoJGYsJnN3dG1wKCRuJTE2KSk7CSMgZiB0 byBob2xkIFh1cGRhdGUoeGkseGEseGIseGMseGQpCistCSZyb3RyKCRiLDIpOwkJCSMgYj1ST1RB VEUoYiwzMCkKKy0JICZ4b3IoJGYsJnN3dG1wKCgkbisyKSUxNikpOworKwkgJnhvcigkZiwmc3d0 bXAoKCRuKzIpJTE2KSk7CSMgZiB0byBob2xkIFh1cGRhdGUoeGkseGEseGIseGMseGQpCisgCSZ4 b3IoJHRtcDEsJGMpOworIAkgJnhvcigkZiwmc3d0bXAoKCRuKzgpJTE2KSk7CisgCSZ4b3IoJHRt cDEsJGQpOwkJCSMgdG1wMSBob2xkcyBGXzIwXzM5KGIsYyxkKQorIAkgJnhvcigkZiwmc3d0bXAo KCRuKzEzKSUxNikpOwkjIGYgaG9sZHMgeGFeeGJeeGNeeGQKKyAJJnJvdGwoJGYsMSk7CQkJIyBm PVJPVEFURShmLDEpCistCSAmYWRkKCR0bXAxLCRlKTsKKy0JJm1vdigmc3d0bXAoJG4lMTYpLCRm KTsJCSMgeGk9ZgorLQkgJm1vdigkZSwkYSk7CQkJIyBlIGJlY29tZXMgdm9sYXRpbGUKKy0JJnJv dGwoJGUsNSk7CQkJIyBlPVJPVEFURShhLDUpCistCSAmbGVhKCRmLCZEV1AoJEssJGYsJHRtcDEp KTsJIyBmKz1LXzIwXzM5K2UKKy0JJmFkZCgkZiwkZSk7CQkJIyBmKz1ST1RBVEUoYSw1KQorKwkg JmFkZCgkZSwkdG1wMSk7CQkjIGUrPUZfMjBfMzkoYixjLGQpCisrCSZyb3RyKCRiLDIpOwkJCSMg Yj1ST1RBVEUoYiwzMCkKKysJICZtb3YoJHRtcDEsJGEpOworKwkmcm90bCgkdG1wMSw1KTsJCQkj IFJPVEFURShhLDUpCisrCSAmbW92KCZzd3RtcCgkbiUxNiksJGYpIGlmKCRuPDc3KTsjIHhpPWYK KysJJmxlYSgkZiwmRFdQKCRLLCRmLCRlKSk7CSMgZis9ZStLX1hYX1lZCisrCSAmbW92KCRlLCZz d3RtcCgoJG4rMSklMTYpKSBpZigkbjw3OSk7IyBwcmUtZmV0Y2ggZiBmb3IgbmV4dCByb3VuZAor KwkmYWRkKCRmLCR0bXAxKTsJCQkjIGYrPVJPVEFURShhLDUpCisrfQorIAl9CisgCisgc3ViIEJP RFlfNDBfNTkKK0BAIC0xMjUsNDEgKzI1Miw4NiBAQCBzdWIgQk9EWV80MF81OQorIAorIAkmY29t bWVudCgiNDBfNTkgJG4iKTsKKyAKKy0JJm1vdigkZiwmc3d0bXAoJG4lMTYpKTsJCSMgZiB0byBo b2xkIFh1cGRhdGUoeGkseGEseGIseGMseGQpCistCSAmbW92KCR0bXAxLCZzd3RtcCgoJG4rMikl MTYpKTsKKy0JJnhvcigkZiwkdG1wMSk7CistCSAmbW92KCR0bXAxLCZzd3RtcCgoJG4rOCklMTYp KTsKKy0JJnhvcigkZiwkdG1wMSk7CistCSAmbW92KCR0bXAxLCZzd3RtcCgoJG4rMTMpJTE2KSk7 CistCSZ4b3IoJGYsJHRtcDEpOwkJCSMgZiBob2xkcyB4YV54Yl54Y154ZAorLQkgJm1vdigkdG1w MSwkYik7CQkjIHRtcDEgdG8gaG9sZCBGXzQwXzU5KGIsYyxkKQorK2lmICgkYWx0KSB7CisrCSZh ZGQoJGUsJHRtcDEpOwkJCSMgZSs9YiYoY15kKQorKwkgJnhvcigkZiwmc3d0bXAoKCRuKzIpJTE2 KSk7CSMgZiB0byBob2xkIFh1cGRhdGUoeGkseGEseGIseGMseGQpCisrCSZtb3YoJHRtcDEsJGQp OworKwkgJnhvcigkZiwmc3d0bXAoKCRuKzgpJTE2KSk7CisrCSZ4b3IoJGMsJGQpOwkJCSMgcmVz dG9yZSAkYworKwkgJnhvcigkZiwmc3d0bXAoKCRuKzEzKSUxNikpOwkjIGYgaG9sZHMgeGFeeGJe eGNeeGQKKyAJJnJvdGwoJGYsMSk7CQkJIyBmPVJPVEFURShmLDEpCistCSAmb3IoJHRtcDEsJGMp OworLQkmbW92KCZzd3RtcCgkbiUxNiksJGYpOwkJIyB4aT1mCistCSAmYW5kKCR0bXAxLCRkKTsK Ky0JJmxlYSgkZiwmRFdQKDB4OGYxYmJjZGMsJGYsJGUpKTsjIGYrPUtfNDBfNTkrZQorLQkgJm1v digkZSwkYik7CQkJIyBlIGJlY29tZXMgdm9sYXRpbGUgYW5kIGlzIHVzZWQKKy0JCQkJCSMgdG8g Y2FsY3VsYXRlIEZfNDBfNTkoYixjLGQpCisrCSAmYW5kKCR0bXAxLCRjKTsKKysJJnJvdHIoJGIs Nyk7CQkJIyBiPVJPVEFURShiLDMwKQorKwkgJmFkZCgkZSwkdG1wMSk7CQkjIGUrPWMmZAorKwkm bW92KCR0bXAxLCRhKTsJCQkjIGIgaW4gbmV4dCByb3VuZAorKwkgJm1vdigmc3d0bXAoJG4lMTYp LCRmKTsJIyB4aT1mCisrCSZyb3RsKCRhLDUpOwkJCSMgUk9UQVRFKGEsNSkKKysJICZ4b3IoJGIs JGMpCQkJaWYgKCRuPDU5KTsKKysJJmFuZCgkdG1wMSwkYikJCQlpZiAoJG48NTkpOyMgdG1wMSB0 byBob2xkIEZfNDBfNTkoYixjLGQpCisrCSAmbGVhKCRmLCZEV1AoMHg4ZjFiYmNkYywkZiwkZSkp OyMgZis9S180MF81OStlKyhiJihjXmQpKQorKwkmbW92KCRlLCZzd3RtcCgoJG4rMSklMTYpKTsJ IyBwcmUtZmV0Y2ggZiBmb3IgbmV4dCByb3VuZAorKwkgJmFkZCgkZiwkYSk7CQkJIyBmKz1ST1RB VEUoYSw1KQorK30gZWxzZSB7CisrCSZtb3YoJHRtcDEsJGMpOwkJCSMgdG1wMSB0byBob2xkIEZf NDBfNTkoYixjLGQpCisrCSAmeG9yKCRmLCZzd3RtcCgoJG4rMiklMTYpKTsJIyBmIHRvIGhvbGQg WHVwZGF0ZSh4aSx4YSx4Yix4Yyx4ZCkKKysJJnhvcigkdG1wMSwkZCk7CisrCSAmeG9yKCRmLCZz d3RtcCgoJG4rOCklMTYpKTsKKysJJmFuZCgkdG1wMSwkYik7CisrCSAmeG9yKCRmLCZzd3RtcCgo JG4rMTMpJTE2KSk7CSMgZiBob2xkcyB4YV54Yl54Y154ZAorKwkmcm90bCgkZiwxKTsJCQkjIGY9 Uk9UQVRFKGYsMSkKKysJICZhZGQoJHRtcDEsJGUpOwkJIyBiJihjXmQpKz1lCisgCSZyb3RyKCRi LDIpOwkJCSMgYj1ST1RBVEUoYiwzMCkKKy0JICZhbmQoJGUsJGMpOworLQkmb3IoJHRtcDEsJGUp OwkJCSMgdG1wMSBob2xkcyBGXzQwXzU5KGIsYyxkKQkJCistCSAmbW92KCRlLCRhKTsKKy0JJnJv dGwoJGUsNSk7CQkJIyBlPVJPVEFURShhLDUpCistCSAmYWRkKCRmLCR0bXAxKTsJCSMgZis9dG1w MTsKKysJICZtb3YoJGUsJGEpOwkJCSMgZSBiZWNvbWVzIHZvbGF0aWxlCisrCSZyb3RsKCRlLDUp OwkJCSMgUk9UQVRFKGEsNSkKKysJICZtb3YoJnN3dG1wKCRuJTE2KSwkZik7CSMgeGk9ZgorKwkm bGVhKCRmLCZEV1AoMHg4ZjFiYmNkYywkZiwkdG1wMSkpOyMgZis9S180MF81OStlKyhiJihjXmQp KQorKwkgJm1vdigkdG1wMSwkYyk7CisgCSZhZGQoJGYsJGUpOwkJCSMgZis9Uk9UQVRFKGEsNSkK KysJICZhbmQoJHRtcDEsJGQpOworKwkmbW92KCRlLCZzd3RtcCgoJG4rMSklMTYpKTsJIyBwcmUt ZmV0Y2ggZiBmb3IgbmV4dCByb3VuZAorKwkgJmFkZCgkZiwkdG1wMSk7CQkjIGYrPWMmZAorK30K KyAJfQorIAorICZmdW5jdGlvbl9iZWdpbigic2hhMV9ibG9ja19kYXRhX29yZGVyIik7CisraWYg KCR4bW0pIHsKKysgICZzdGF0aWNfbGFiZWwoInNzc2UzX3Nob3J0Y3V0Iik7CisrICAmc3RhdGlj X2xhYmVsKCJhdnhfc2hvcnRjdXQiKQkJaWYgKCR5bW0pOworKyAgJnN0YXRpY19sYWJlbCgiS19Y WF9YWCIpOworKworKwkmY2FsbAkoJmxhYmVsKCJwaWNfcG9pbnQiKSk7CSMgbWFrZSBpdCBQSUMh CisrICAmc2V0X2xhYmVsKCJwaWNfcG9pbnQiKTsKKysJJmJsaW5kcG9wKCR0bXAxKTsKKysJJnBp Y21ldXAoJFQsIk9QRU5TU0xfaWEzMmNhcF9YIiwkdG1wMSwmbGFiZWwoInBpY19wb2ludCIpKTsK KysJJmxlYQkoJHRtcDEsJkRXUCgmbGFiZWwoIktfWFhfWFgiKS4iLSIuJmxhYmVsKCJwaWNfcG9p bnQiKSwkdG1wMSkpOworKworKwkmbW92CSgkQSwmRFdQKDAsJFQpKTsKKysJJm1vdgkoJEQsJkRX UCg0LCRUKSk7CisrCSZ0ZXN0CSgkRCwxPDw5KTsJCSMgY2hlY2sgU1NTRTMgYml0CisrCSZqegko JmxhYmVsKCJ4ODYiKSk7CisrCSZ0ZXN0CSgkQSwxPDwyNCk7CQkjIGNoZWNrIEZYU1IgYml0Cisr CSZqegkoJmxhYmVsKCJ4ODYiKSk7CisrCWlmICgkeW1tKSB7CisrCQkmYW5kCSgkRCwxPDwyOCk7 CQkjIG1hc2sgQVZYIGJpdAorKwkJJmFuZAkoJEEsMTw8MzApOwkJIyBtYXNrICJJbnRlbCBDUFUi IGJpdAorKwkJJm9yCSgkQSwkRCk7CisrCQkmY21wCSgkQSwxPDwyOHwxPDwzMCk7CisrCQkmamUJ KCZsYWJlbCgiYXZ4X3Nob3J0Y3V0IikpOworKwl9CisrCSZqbXAJKCZsYWJlbCgic3NzZTNfc2hv cnRjdXQiKSk7CisrICAmc2V0X2xhYmVsKCJ4ODYiLDE2KTsKKyt9CisgCSZtb3YoJHRtcDEsJndw YXJhbSgwKSk7CSMgU0hBX0NUWCAqYworIAkmbW92KCRULCZ3cGFyYW0oMSkpOwkjIGNvbnN0IHZv aWQgKmlucHV0CisgCSZtb3YoJEEsJndwYXJhbSgyKSk7CSMgc2l6ZV90IG51bQorLQkmc3RhY2tf cHVzaCgxNik7CSMgYWxsb2NhdGUgWFsxNl0KKysJJnN0YWNrX3B1c2goMTYrMyk7CSMgYWxsb2Nh dGUgWFsxNl0KKyAJJnNobCgkQSw2KTsKKyAJJmFkZCgkQSwkVCk7CisgCSZtb3YoJndwYXJhbSgy KSwkQSk7CSMgcG9pbnRlciBiZXlvbmQgdGhlIGVuZCBvZiBpbnB1dAorIAkmbW92KCRFLCZEV1Ao MTYsJHRtcDEpKTsjIHByZS1sb2FkIEUKKysJJmptcCgmbGFiZWwoImxvb3AiKSk7CisgCistCSZz ZXRfbGFiZWwoImxvb3AiLDE2KTsKKysmc2V0X2xhYmVsKCJsb29wIiwxNik7CisgCisgCSMgY29w eSBpbnB1dCBjaHVuayB0byBYLCBidXQgcmV2ZXJzaW5nIGJ5dGUgb3JkZXIhCisgCWZvciAoJGk9 MDsgJGk8MTY7ICRpKz00KQorQEAgLTIxMyw4ICszODUsODQ1IEBAIHN1YiBCT0RZXzQwXzU5Cisg CSZtb3YoJkRXUCgxNiwkdG1wMSksJEMpOworIAkmamIoJmxhYmVsKCJsb29wIikpOworIAorLQkm c3RhY2tfcG9wKDE2KTsKKysJJnN0YWNrX3BvcCgxNiszKTsKKyAmZnVuY3Rpb25fZW5kKCJzaGEx X2Jsb2NrX2RhdGFfb3JkZXIiKTsKKysKKytpZiAoJHhtbSkgeworKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKysj IFRoZSBTU1NFMyBpbXBsZW1lbnRhdGlvbi4KKysjCisrIyAleG1tWzAtN10gYXJlIHVzZWQgYXMg cmluZyBAWFtdIGJ1ZmZlciBjb250YWluaW5nIHF1YWRydXBsZXMgb2YgbGFzdAorKyMgMzIgZWxl bWVudHMgb2YgdGhlIG1lc3NhZ2Ugc2NoZWR1bGUgb3IgWHVwZGF0ZSBvdXRwdXRzLiBGaXJzdCA0 CisrIyBxdWFkcnVwbGVzIGFyZSBzaW1wbHkgYnl0ZS1zd2FwcGVkIGlucHV0LCBuZXh0IDQgYXJl IGNhbGN1bGF0ZWQKKysjIGFjY29yZGluZyB0byBtZXRob2Qgb3JpZ2luYWxseSBzdWdnZXN0ZWQg YnkgRGVhbiBHYXVkZXQgKG1vZHVsbworKyMgYmVpbmcgaW1wbGVtZW50ZWQgaW4gU1NTRTMpLiBP bmNlIDggcXVhZHJ1cGxlcyBvciAzMiBlbGVtZW50cyBhcmUKKysjIGNvbGxlY3RlZCwgaXQgc3dp dGNoZXMgdG8gcm91dGluZSBwcm9wb3NlZCBieSBNYXggTG9ja3R5dWtoaW4uCisrIworKyMgQ2Fs Y3VsYXRpb25zIGluZXZpdGFibHkgcmVxdWlyZSB0ZW1wb3JhcnkgcmVxaXN0ZXJzLCBhbmQgdGhl cmUgYXJlCisrIyBubyAleG1tIHJlZ2lzdGVycyBsZWZ0IHRvIHNwYXJlLiBGb3IgdGhpcyByZWFz b24gcGFydCBvZiB0aGUgcmluZworKyMgYnVmZmVyLCBYWzIuLjRdIHRvIGJlIHNwZWNpZmljLCBp cyBvZmZsb2FkZWQgdG8gMyBxdWFkcmlwbGVzIHJpbmcKKysjIGJ1ZmZlciBvbiB0aGUgc3RhY2su IEtlZXAgaW4gbWluZCB0aGF0IFhbMl0gaXMgYWxpYXMgWFstNl0sIFhbM10gLQorKyMgWFstNV0s IGFuZCBYWzRdIC0gWFstNF0uLi4KKysjCisrIyBBbm90aGVyIG5vdGFibGUgb3B0aW1pemF0aW9u IGlzIGFnZ3Jlc3NpdmUgc3RhY2sgZnJhbWUgY29tcHJlc3Npb24KKysjIGFpbWluZyB0byBtaW5p bWl6ZSBhbW91bnQgb2YgOS1ieXRlIGluc3RydWN0aW9ucy4uLgorKyMKKysjIFlldCBhbm90aGVy IG5vdGFibGUgb3B0aW1pemF0aW9uIGlzICJqdW1waW5nIiAkQiB2YXJpYWJsZS4gSXQgbWVhbnMK KysjIHRoYXQgdGhlcmUgaXMgbm8gcmVnaXN0ZXIgcGVybWFuZW50bHkgYWxsb2NhdGVkIGZvciAk QiB2YWx1ZS4gVGhpcworKyMgYWxsb3dlZCB0byBlbGltaW5hdGUgb25lIGluc3RydWN0aW9uIGZy b20gYm9keV8yMF8zOS4uLgorKyMKKytteSAkWGk9NDsJCQkjIDR4U0lNRCBYdXBkYXRlIHJvdW5k LCBzdGFydCBwcmUtc2VlZGVkCisrbXkgQFg9bWFwKCJ4bW0kXyIsKDQuLjcsMC4uMykpOwkjIHBy ZS1zZWVkZWQgZm9yICRYaT00CisrbXkgQFY9KCRBLCRCLCRDLCRELCRFKTsKKytteSAkaj0wOwkJ CSMgaGFzaCByb3VuZAorK215IEBUPSgkVCwkdG1wMSk7CisrbXkgJGlucDsKKysKKytteSAkX3Jv bD1zdWIgeyAmcm9sKEBfKSB9OworK215ICRfcm9yPXN1YiB7ICZyb3IoQF8pIH07CisrCisrJmZ1 bmN0aW9uX2JlZ2luKCJfc2hhMV9ibG9ja19kYXRhX29yZGVyX3Nzc2UzIik7CisrCSZjYWxsCSgm bGFiZWwoInBpY19wb2ludCIpKTsJIyBtYWtlIGl0IFBJQyEKKysJJnNldF9sYWJlbCgicGljX3Bv aW50Iik7CisrCSZibGluZHBvcCgkdG1wMSk7CisrCSZsZWEJKCR0bXAxLCZEV1AoJmxhYmVsKCJL X1hYX1hYIikuIi0iLiZsYWJlbCgicGljX3BvaW50IiksJHRtcDEpKTsKKysmc2V0X2xhYmVsKCJz c3NlM19zaG9ydGN1dCIpOworKworKwkmbW92ZHFhCShAWFszXSwmUVdQKDAsJHRtcDEpKTsJCSMg S18wMF8xOQorKwkmbW92ZHFhCShAWFs0XSwmUVdQKDE2LCR0bXAxKSk7CQkjIEtfMjBfMzkKKysJ Jm1vdmRxYQkoQFhbNV0sJlFXUCgzMiwkdG1wMSkpOwkJIyBLXzQwXzU5CisrCSZtb3ZkcWEJKEBY WzZdLCZRV1AoNDgsJHRtcDEpKTsJCSMgS182MF83OQorKwkmbW92ZHFhCShAWFsyXSwmUVdQKDY0 LCR0bXAxKSk7CQkjIHBic3dhcCBtYXNrCisrCisrCSZtb3YJKCRFLCZ3cGFyYW0oMCkpOwkJIyBs b2FkIGFyZ3VtZW50IGJsb2NrCisrCSZtb3YJKCRpbnA9QFRbMV0sJndwYXJhbSgxKSk7CisrCSZt b3YJKCRELCZ3cGFyYW0oMikpOworKwkmbW92CShAVFswXSwiZXNwIik7CisrCisrCSMgc3RhY2sg ZnJhbWUgbGF5b3V0CisrCSMKKysJIyArMAlYWzBdK0sJWFsxXStLCVhbMl0rSwlYWzNdK0sJIyBY TU0tPklBTFUgeGZlciBhcmVhCisrCSMJWFs0XStLCVhbNV0rSwlYWzZdK0sJWFs3XStLCisrCSMJ WFs4XStLCVhbOV0rSwlYWzEwXStLCVhbMTFdK0sKKysJIwlYWzEyXStLCVhbMTNdK0sJWFsxNF0r SwlYWzE1XStLCisrCSMKKysJIyArNjQJWFswXQlYWzFdCVhbMl0JWFszXQkjIFhNTS0+WE1NIGJh Y2t0cmFjZSBhcmVhCisrCSMJWFs0XQlYWzVdCVhbNl0JWFs3XQorKwkjCVhbOF0JWFs5XQlYWzEw XQlYWzExXQkjIGV2ZW4gYm9ycm93ZWQgZm9yIEtfMDBfMTkKKysJIworKwkjICsxMTIJS18yMF8z OQlLXzIwXzM5CUtfMjBfMzkJS18yMF8zOQkjIGNvbnN0YW50cworKwkjCUtfNDBfNTkJS180MF81 OQlLXzQwXzU5CUtfNDBfNTkKKysJIwlLXzYwXzc5CUtfNjBfNzkJS182MF83OQlLXzYwXzc5Cisr CSMJS18wMF8xOQlLXzAwXzE5CUtfMDBfMTkJS18wMF8xOQorKwkjCXBic3dhcCBtYXNrCisrCSMK KysJIyArMTkyCWN0eAkJCQkjIGFyZ3VtZW50IGJsb2NrCisrCSMgKzE5NglpbnAKKysJIyArMjAw CWVuZAorKwkjICsyMDQJZXNwCisrCSZzdWIJKCJlc3AiLDIwOCk7CisrCSZhbmQJKCJlc3AiLC02 NCk7CisrCisrCSZtb3ZkcWEJKCZRV1AoMTEyKzAsImVzcCIpLEBYWzRdKTsJIyBjb3B5IGNvbnN0 YW50cworKwkmbW92ZHFhCSgmUVdQKDExMisxNiwiZXNwIiksQFhbNV0pOworKwkmbW92ZHFhCSgm UVdQKDExMiszMiwiZXNwIiksQFhbNl0pOworKwkmc2hsCSgkRCw2KTsJCQkJIyBsZW4qNjQKKysJ Jm1vdmRxYQkoJlFXUCgxMTIrNDgsImVzcCIpLEBYWzNdKTsKKysJJmFkZAkoJEQsJGlucCk7CQkJ IyBlbmQgb2YgaW5wdXQKKysJJm1vdmRxYQkoJlFXUCgxMTIrNjQsImVzcCIpLEBYWzJdKTsKKysJ JmFkZAkoJGlucCw2NCk7CisrCSZtb3YJKCZEV1AoMTkyKzAsImVzcCIpLCRFKTsJCSMgc2F2ZSBh cmd1bWVudCBibG9jaworKwkmbW92CSgmRFdQKDE5Mis0LCJlc3AiKSwkaW5wKTsKKysJJm1vdgko JkRXUCgxOTIrOCwiZXNwIiksJEQpOworKwkmbW92CSgmRFdQKDE5MisxMiwiZXNwIiksQFRbMF0p OwkjIHNhdmUgb3JpZ2luYWwgJWVzcAorKworKwkmbW92CSgkQSwmRFdQKDAsJEUpKTsJCSMgbG9h ZCBjb250ZXh0CisrCSZtb3YJKCRCLCZEV1AoNCwkRSkpOworKwkmbW92CSgkQywmRFdQKDgsJEUp KTsKKysJJm1vdgkoJEQsJkRXUCgxMiwkRSkpOworKwkmbW92CSgkRSwmRFdQKDE2LCRFKSk7Cisr CSZtb3YJKEBUWzBdLCRCKTsJCQkjIG1hZ2ljIHNlZWQKKysKKysJJm1vdmRxdQkoQFhbLTQmN10s JlFXUCgtNjQsJGlucCkpOwkjIGxvYWQgaW5wdXQgdG8gJXhtbVswLTNdCisrCSZtb3ZkcXUJKEBY Wy0zJjddLCZRV1AoLTQ4LCRpbnApKTsKKysJJm1vdmRxdQkoQFhbLTImN10sJlFXUCgtMzIsJGlu cCkpOworKwkmbW92ZHF1CShAWFstMSY3XSwmUVdQKC0xNiwkaW5wKSk7CisrCSZwc2h1ZmIJKEBY Wy00JjddLEBYWzJdKTsJCSMgYnl0ZSBzd2FwCisrCSZwc2h1ZmIJKEBYWy0zJjddLEBYWzJdKTsK KysJJnBzaHVmYgkoQFhbLTImN10sQFhbMl0pOworKwkmbW92ZHFhCSgmUVdQKDExMi0xNiwiZXNw IiksQFhbM10pOwkjIGJvcnJvdyBsYXN0IGJhY2t0cmFjZSBzbG90CisrCSZwc2h1ZmIJKEBYWy0x JjddLEBYWzJdKTsKKysJJnBhZGRkCShAWFstNCY3XSxAWFszXSk7CQkjIGFkZCBLXzAwXzE5Cisr CSZwYWRkZAkoQFhbLTMmN10sQFhbM10pOworKwkmcGFkZGQJKEBYWy0yJjddLEBYWzNdKTsKKysJ Jm1vdmRxYQkoJlFXUCgwLCJlc3AiKSxAWFstNCY3XSk7CSMgWFtdK0sgeGZlciB0byBJQUxVCisr CSZwc3ViZAkoQFhbLTQmN10sQFhbM10pOwkJIyByZXN0b3JlIFhbXQorKwkmbW92ZHFhCSgmUVdQ KDArMTYsImVzcCIpLEBYWy0zJjddKTsKKysJJnBzdWJkCShAWFstMyY3XSxAWFszXSk7CisrCSZt b3ZkcWEJKCZRV1AoMCszMiwiZXNwIiksQFhbLTImN10pOworKwkmcHN1YmQJKEBYWy0yJjddLEBY WzNdKTsKKysJJm1vdmRxYQkoQFhbMF0sQFhbLTMmN10pOworKwkmam1wCSgmbGFiZWwoImxvb3Ai KSk7CisrCisrIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKyMgU1NFIGluc3RydWN0aW9uIHNlcXVlbmNlIGlzIGZp cnN0IGJyb2tlbiB0byBncm91cHMgb2YgaW5kZXBlbnRlbnQKKysjIGluc3RydWN0aW9ucywgaW5k ZXBlbmRlbnQgaW4gcmVzcGVjdCB0byB0aGVpciBpbnB1dHMgYW5kIHNoaWZ0ZXIKKysjIChub3Qg YWxsIGFyY2hpdGVjdHVyZXMgaGF2ZSBtb3JlIHRoYW4gb25lKS4gVGhlbiBJQUxVIGluc3RydWN0 aW9ucworKyMgYXJlICJrbml0dGVkIGluIiBiZXR3ZWVuIHRoZSBTU0UgZ3JvdXBzLiBEaXN0YW5j ZSBpcyBtYWludGFpbmVkIGZvcgorKyMgU1NFIGxhdGVuY3kgb2YgMiBpbiBob3BlIHRoYXQgaXQg Zml0cyBiZXR0ZXIgdXBjb21pbmcgQU1EIEJ1bGxkb3plcgorKyMgW3doaWNoIGFsbGVnZWRseSBh bHNvIGltcGxlbWVudHMgU1NTRTNdLi4uCisrIworKyMgVGVtcG9yYXJ5IHJlZ2lzdGVycyB1c2Fn ZS4gWFsyXSBpcyB2b2xhdGlsZSBhdCB0aGUgZW50cnkgYW5kIGF0IHRoZQorKyMgZW5kIGlzIHJl c3RvcmVkIGZyb20gYmFja3RyYWNlIHJpbmcgYnVmZmVyLiBYWzNdIGlzIGV4cGVjdGVkIHRvCisr IyBjb250YWluIGN1cnJlbnQgS19YWF9YWCBjb25zdGFudCBhbmQgaXMgdXNlZCB0byBjYWNsdWxh dGUgWFstMV0rSworKyMgZnJvbSBwcmV2aW91cyByb3VuZCwgaXQgYmVjb21lcyB2b2xhdGlsZSB0 aGUgbW9tZW50IHRoZSB2YWx1ZSBpcworKyMgc2F2ZWQgdG8gc3RhY2sgZm9yIHRyYW5zZmVyIHRv IElBTFUuIFhbNF0gYmVjb21lcyB2b2xhdGlsZSB3aGVuZXZlcgorKyMgWFstNF0gaXMgYWNjdW11 bGF0ZWQgYW5kIG9mZmxvYWRlZCB0byBiYWNrdHJhY2UgcmluZyBidWZmZXIsIGF0IHRoZQorKyMg ZW5kIGl0IGlzIGxvYWRlZCB3aXRoIG5leHQgS19YWF9YWCBbd2hpY2ggYmVjb21lcyBYWzNdIGlu IG5leHQKKysjIHJvdW5kXS4uLgorKyMKKytzdWIgWHVwZGF0ZV9zc3NlM18xNl8zMSgpCQkjIHJl Y2FsbCB0aGF0ICRYaSBzdGFydHMgd3RpaCA0CisreyB1c2UgaW50ZWdlcjsKKysgIG15ICRib2R5 ID0gc2hpZnQ7CisrICBteSBAaW5zbnMgPSAoJiRib2R5LCYkYm9keSwmJGJvZHksJiRib2R5KTsJ IyA0MCBpbnN0cnVjdGlvbnMKKysgIG15ICgkYSwkYiwkYywkZCwkZSk7CisrCisrCSBldmFsKHNo aWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJJnBhbGlnbnIoQFhbMF0s QFhbLTQmN10sOCk7CSMgY29tcG9zZSAiWFstMTRdIiBpbiAiWFswXSIKKysJJm1vdmRxYQkoQFhb Ml0sQFhbLTEmN10pOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGlu c25zKSk7CisrCisrCSAgJnBhZGRkCShAWFszXSxAWFstMSY3XSk7CisrCSAgJm1vdmRxYQkoJlFX UCg2NCsxNiooKCRYaS00KSUzKSwiZXNwIiksQFhbLTQmN10pOyMgc2F2ZSBYW10gdG8gYmFja3Ry YWNlIGJ1ZmZlcgorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25z KSk7CisrCSZwc3JsZHEJKEBYWzJdLDQpOwkJIyAiWFstM10iLCAzIGR3b3JkcworKwkgZXZhbChz aGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSZweG9yCShAWFswXSxA WFstNCY3XSk7CSMgIlhbMF0iXj0iWFstMTZdIgorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJ IGV2YWwoc2hpZnQoQGluc25zKSk7CisrCisrCSZweG9yCShAWFsyXSxAWFstMiY3XSk7CSMgIlhb LTNdIl4iWFstOF0iCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5z bnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOwor KworKwkmcHhvcgkoQFhbMF0sQFhbMl0pOwkJIyAiWFswXSJePSJYWy0zXSJeIlhbLThdIgorKwkg ZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSAgJm1vdmRx YQkoJlFXUCgwKzE2KigoJFhpLTEpJjMpLCJlc3AiKSxAWFszXSk7CSMgWFtdK0sgeGZlciB0byBJ QUxVCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysK KysJJm1vdmRxYQkoQFhbNF0sQFhbMF0pOworKwkmbW92ZHFhCShAWFsyXSxAWFswXSk7CisrCSBl dmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hp ZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKworKwkmcHNsbGRxCShAWFs0 XSwxMik7CQkjICJYWzBdIjw8OTYsIGV4dHJhY3Qgb25lIGR3b3JkCisrCSZwYWRkZAkoQFhbMF0s QFhbMF0pOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7 CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysKKysJ JnBzcmxkCShAWFsyXSwzMSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlm dChAaW5zbnMpKTsKKysJJm1vdmRxYQkoQFhbM10sQFhbNF0pOworKwkgZXZhbChzaGlmdChAaW5z bnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCisrCSZwc3JsZAkoQFhbNF0sMzApOwor KwkmcG9yCShAWFswXSxAWFsyXSk7CQkjICJYWzBdIjw8PD0xCisrCSBldmFsKHNoaWZ0KEBpbnNu cykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJICAmbW92ZHFhCShAWFsyXSwmUVdQKDY0 KzE2KigoJFhpLTYpJTMpLCJlc3AiKSkgaWYgKCRYaT41KTsJIyByZXN0b3JlIFhbXSBmcm9tIGJh Y2t0cmFjZSBidWZmZXIKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBp bnNucykpOworKworKwkmcHNsbGQJKEBYWzNdLDIpOworKwkmcHhvcgkoQFhbMF0sQFhbNF0pOwor KwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSAgJm1v dmRxYQkoQFhbNF0sJlFXUCgxMTItMTYrMTYqKCgkWGkpLzUpLCJlc3AiKSk7CSMgS19YWF9YWAor KwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCisrCSZw eG9yCShAWFswXSxAWFszXSk7CQkjICJYWzBdIl49KCJYWzBdIjw8OTYpPDw8MgorKwkgICZtb3Zk cWEJKEBYWzFdLEBYWy0yJjddKQlpZiAoJFhpPDcpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsK KysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCisrCSBmb3JlYWNoIChAaW5zbnMpIHsgZXZhbDsg fQkjIHJlbWFpbmluZyBpbnN0cnVjdGlvbnMgW2lmIGFueV0KKysKKysgICRYaSsrOwlwdXNoKEBY LHNoaWZ0KEBYKSk7CSMgInJvdGF0ZSIgWFtdCisrfQorKworK3N1YiBYdXBkYXRlX3Nzc2UzXzMy Xzc5KCkKKyt7IHVzZSBpbnRlZ2VyOworKyAgbXkgJGJvZHkgPSBzaGlmdDsKKysgIG15IEBpbnNu cyA9ICgmJGJvZHksJiRib2R5LCYkYm9keSwmJGJvZHkpOwkjIDMyIHRvIDQ4IGluc3RydWN0aW9u cworKyAgbXkgKCRhLCRiLCRjLCRkLCRlKTsKKysKKysJJm1vdmRxYQkoQFhbMl0sQFhbLTEmN10p CWlmICgkWGk9PTgpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsJCSMgYm9keV8yMF8zOQorKwkm cHhvcgkoQFhbMF0sQFhbLTQmN10pOwkjICJYWzBdIj0iWFstMzJdIl4iWFstMTZdIgorKwkmcGFs aWducihAWFsyXSxAWFstMiY3XSw4KTsJIyBjb21wb3NlICJYWy02XSIKKysJIGV2YWwoc2hpZnQo QGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMp KTsJCSMgcm9sCisrCisrCSZweG9yCShAWFswXSxAWFstNyY3XSk7CSMgIlhbMF0iXj0iWFstMjhd IgorKwkgICZtb3ZkcWEJKCZRV1AoNjQrMTYqKCgkWGktNCklMyksImVzcCIpLEBYWy00JjddKTsJ IyBzYXZlIFhbXSB0byBiYWNrdHJhY2UgYnVmZmVyCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOwor KwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGlmICgkWGklNSkgeworKwkgICZtb3ZkcWEJKEBY WzRdLEBYWzNdKTsJIyAicGVycGV0dWF0ZSIgS19YWF9YWC4uLgorKwkgfSBlbHNlIHsJCQkjIC4u LiBvciBsb2FkIG5leHQgb25lCisrCSAgJm1vdmRxYQkoQFhbNF0sJlFXUCgxMTItMTYrMTYqKCRY aS81KSwiZXNwIikpOworKwkgfQorKwkgICZwYWRkZAkoQFhbM10sQFhbLTEmN10pOworKwkgZXZh bChzaGlmdChAaW5zbnMpKTsJCSMgcm9yCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKworKwkm cHhvcgkoQFhbMF0sQFhbMl0pOwkJIyAiWFswXSJePSJYWy02XSIKKysJIGV2YWwoc2hpZnQoQGlu c25zKSk7CQkjIGJvZHlfMjBfMzkKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNo aWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsJCSMgcm9sCisrCisrCSZtb3Zk cWEJKEBYWzJdLEBYWzBdKTsKKysJICAmbW92ZHFhCSgmUVdQKDArMTYqKCgkWGktMSkmMyksImVz cCIpLEBYWzNdKTsJIyBYW10rSyB4ZmVyIHRvIElBTFUKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7 CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsJCSMgcm9y CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKworKwkmcHNsbGQJKEBYWzBdLDIpOworKwkgZXZh bChzaGlmdChAaW5zbnMpKTsJCSMgYm9keV8yMF8zOQorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsK KysJJnBzcmxkCShAWFsyXSwzMCk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChz aGlmdChAaW5zbnMpKTsJCSMgcm9sCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChz aGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CQkjIHJvcgorKwkgZXZhbChz aGlmdChAaW5zbnMpKTsKKysKKysJJnBvcgkoQFhbMF0sQFhbMl0pOwkJIyAiWFswXSI8PDw9Mgor KwkgZXZhbChzaGlmdChAaW5zbnMpKTsJCSMgYm9keV8yMF8zOQorKwkgZXZhbChzaGlmdChAaW5z bnMpKTsKKysJICAmbW92ZHFhCShAWFsyXSwmUVdQKDY0KzE2KigoJFhpLTYpJTMpLCJlc3AiKSkg aWYoJFhpPDE5KTsJIyByZXN0b3JlIFhbXSBmcm9tIGJhY2t0cmFjZSBidWZmZXIKKysJIGV2YWwo c2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOwkJIyByb2wKKysJIGV2YWwo c2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChA aW5zbnMpKTsJCSMgcm9yCisrCSAgJm1vdmRxYQkoQFhbM10sQFhbMF0pCWlmICgkWGk8MTkpOwor KwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysKKysJIGZvcmVhY2ggKEBpbnNucykgeyBldmFsOyB9 CSMgcmVtYWluaW5nIGluc3RydWN0aW9ucworKworKyAgJFhpKys7CXB1c2goQFgsc2hpZnQoQFgp KTsJIyAicm90YXRlIiBYW10KKyt9CisrCisrc3ViIFh1cGxhc3Rfc3NzZTNfODAoKQorK3sgdXNl IGludGVnZXI7CisrICBteSAkYm9keSA9IHNoaWZ0OworKyAgbXkgQGluc25zID0gKCYkYm9keSwm JGJvZHksJiRib2R5LCYkYm9keSk7CSMgMzIgaW5zdHJ1Y3Rpb25zCisrICBteSAoJGEsJGIsJGMs JGQsJGUpOworKworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJICAmcGFkZGQJKEBYWzNdLEBY Wy0xJjddKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykp OworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCisr CSAgJm1vdmRxYQkoJlFXUCgwKzE2KigoJFhpLTEpJjMpLCJlc3AiKSxAWFszXSk7CSMgWFtdK0sg eGZlciBJQUxVCisrCisrCSBmb3JlYWNoIChAaW5zbnMpIHsgZXZhbDsgfQkJIyByZW1haW5pbmcg aW5zdHJ1Y3Rpb25zCisrCisrCSZtb3YJKCRpbnA9QFRbMV0sJkRXUCgxOTIrNCwiZXNwIikpOwor KwkmY21wCSgkaW5wLCZEV1AoMTkyKzgsImVzcCIpKTsKKysJJmplCSgmbGFiZWwoImRvbmUiKSk7 CisrCisrCSZtb3ZkcWEJKEBYWzNdLCZRV1AoMTEyKzQ4LCJlc3AiKSk7CSMgS18wMF8xOQorKwkm bW92ZHFhCShAWFsyXSwmUVdQKDExMis2NCwiZXNwIikpOwkjIHBic3dhcCBtYXNrCisrCSZtb3Zk cXUJKEBYWy00JjddLCZRV1AoMCwkaW5wKSk7CSMgbG9hZCBpbnB1dAorKwkmbW92ZHF1CShAWFst MyY3XSwmUVdQKDE2LCRpbnApKTsKKysJJm1vdmRxdQkoQFhbLTImN10sJlFXUCgzMiwkaW5wKSk7 CisrCSZtb3ZkcXUJKEBYWy0xJjddLCZRV1AoNDgsJGlucCkpOworKwkmYWRkCSgkaW5wLDY0KTsK KysJJnBzaHVmYgkoQFhbLTQmN10sQFhbMl0pOwkJIyBieXRlIHN3YXAKKysJJm1vdgkoJkRXUCgx OTIrNCwiZXNwIiksJGlucCk7CisrCSZtb3ZkcWEJKCZRV1AoMTEyLTE2LCJlc3AiKSxAWFszXSk7 CSMgYm9ycm93IGxhc3QgYmFja3RyYWNlIHNsb3QKKysKKysgICRYaT0wOworK30KKysKKytzdWIg WGxvb3Bfc3NzZTMoKQorK3sgdXNlIGludGVnZXI7CisrICBteSAkYm9keSA9IHNoaWZ0OworKyAg bXkgQGluc25zID0gKCYkYm9keSwmJGJvZHksJiRib2R5LCYkYm9keSk7CSMgMzIgaW5zdHJ1Y3Rp b25zCisrICBteSAoJGEsJGIsJGMsJGQsJGUpOworKworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsK KysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSZwc2h1ZmIJKEBYWygkWGktMykmN10sQFhbMl0p OworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSZw YWRkZAkoQFhbKCRYaS00KSY3XSxAWFszXSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkg ZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNo aWZ0KEBpbnNucykpOworKwkmbW92ZHFhCSgmUVdQKDArMTYqJFhpLCJlc3AiKSxAWFsoJFhpLTQp JjddKTsJIyBYW10rSyB4ZmVyIHRvIElBTFUKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBl dmFsKHNoaWZ0KEBpbnNucykpOworKwkmcHN1YmQJKEBYWygkWGktNCkmN10sQFhbM10pOworKwor Kwlmb3JlYWNoIChAaW5zbnMpIHsgZXZhbDsgfQorKyAgJFhpKys7CisrfQorKworK3N1YiBYdGFp bF9zc3NlMygpCisreyB1c2UgaW50ZWdlcjsKKysgIG15ICRib2R5ID0gc2hpZnQ7CisrICBteSBA aW5zbnMgPSAoJiRib2R5LCYkYm9keSwmJGJvZHksJiRib2R5KTsJIyAzMiBpbnN0cnVjdGlvbnMK KysgIG15ICgkYSwkYiwkYywkZCwkZSk7CisrCisrCWZvcmVhY2ggKEBpbnNucykgeyBldmFsOyB9 CisrfQorKworK3N1YiBib2R5XzAwXzE5ICgpIHsKKysJKAorKwknKCRhLCRiLCRjLCRkLCRlKT1A VjsnLgorKwknJmFkZAkoJGUsJkRXUCg0KigkaiYxNSksImVzcCIpKTsnLAkjIFhbXStLIHhmZXIK KysJJyZ4b3IJKCRjLCRkKTsnLAorKwknJm1vdgkoQFRbMV0sJGEpOycsCSMgJGIgaW4gbmV4dCBy b3VuZAorKwknJiRfcm9sCSgkYSw1KTsnLAorKwknJmFuZAkoQFRbMF0sJGMpOycsCSMgKCRiJigk Y14kZCkpCisrCScmeG9yCSgkYywkZCk7JywJIyByZXN0b3JlICRjCisrCScmeG9yCShAVFswXSwk ZCk7JywKKysJJyZhZGQJKCRlLCRhKTsnLAorKwknJiRfcm9yCSgkYiwkaj83OjIpOycsCSMgJGI+ Pj4yCisrCScmYWRkCSgkZSxAVFswXSk7JwkuJyRqKys7IHVuc2hpZnQoQFYscG9wKEBWKSk7IHVu c2hpZnQoQFQscG9wKEBUKSk7JworKwkpOworK30KKysKKytzdWIgYm9keV8yMF8zOSAoKSB7Cisr CSgKKysJJygkYSwkYiwkYywkZCwkZSk9QFY7Jy4KKysJJyZhZGQJKCRlLCZEV1AoNCooJGorKyYx NSksImVzcCIpKTsnLAkjIFhbXStLIHhmZXIKKysJJyZ4b3IJKEBUWzBdLCRkKTsnLAkjICgkYl4k ZCkKKysJJyZtb3YJKEBUWzFdLCRhKTsnLAkjICRiIGluIG5leHQgcm91bmQKKysJJyYkX3JvbAko JGEsNSk7JywKKysJJyZ4b3IJKEBUWzBdLCRjKTsnLAkjICgkYl4kZF4kYykKKysJJyZhZGQJKCRl LCRhKTsnLAorKwknJiRfcm9yCSgkYiw3KTsnLAkjICRiPj4+MgorKwknJmFkZAkoJGUsQFRbMF0p OycJLid1bnNoaWZ0KEBWLHBvcChAVikpOyB1bnNoaWZ0KEBULHBvcChAVCkpOycKKysJKTsKKyt9 CisrCisrc3ViIGJvZHlfNDBfNTkgKCkgeworKwkoCisrCScoJGEsJGIsJGMsJGQsJGUpPUBWOycu CisrCScmbW92CShAVFsxXSwkYyk7JywKKysJJyZ4b3IJKCRjLCRkKTsnLAorKwknJmFkZAkoJGUs JkRXUCg0KigkaisrJjE1KSwiZXNwIikpOycsCSMgWFtdK0sgeGZlcgorKwknJmFuZAkoQFRbMV0s JGQpOycsCisrCScmYW5kCShAVFswXSwkYyk7JywJIyAoJGImKCRjXiRkKSkKKysJJyYkX3Jvcgko JGIsNyk7JywJIyAkYj4+PjIKKysJJyZhZGQJKCRlLEBUWzFdKTsnLAorKwknJm1vdgkoQFRbMV0s JGEpOycsCSMgJGIgaW4gbmV4dCByb3VuZAorKwknJiRfcm9sCSgkYSw1KTsnLAorKwknJmFkZAko JGUsQFRbMF0pOycsCisrCScmeG9yCSgkYywkZCk7JywJIyByZXN0b3JlICRjCisrCScmYWRkCSgk ZSwkYSk7JwkuJ3Vuc2hpZnQoQFYscG9wKEBWKSk7IHVuc2hpZnQoQFQscG9wKEBUKSk7JworKwkp OworK30KKysKKysmc2V0X2xhYmVsKCJsb29wIiwxNik7CisrCSZYdXBkYXRlX3Nzc2UzXzE2XzMx KFwmYm9keV8wMF8xOSk7CisrCSZYdXBkYXRlX3Nzc2UzXzE2XzMxKFwmYm9keV8wMF8xOSk7Cisr CSZYdXBkYXRlX3Nzc2UzXzE2XzMxKFwmYm9keV8wMF8xOSk7CisrCSZYdXBkYXRlX3Nzc2UzXzE2 XzMxKFwmYm9keV8wMF8xOSk7CisrCSZYdXBkYXRlX3Nzc2UzXzMyXzc5KFwmYm9keV8wMF8xOSk7 CisrCSZYdXBkYXRlX3Nzc2UzXzMyXzc5KFwmYm9keV8yMF8zOSk7CisrCSZYdXBkYXRlX3Nzc2Uz XzMyXzc5KFwmYm9keV8yMF8zOSk7CisrCSZYdXBkYXRlX3Nzc2UzXzMyXzc5KFwmYm9keV8yMF8z OSk7CisrCSZYdXBkYXRlX3Nzc2UzXzMyXzc5KFwmYm9keV8yMF8zOSk7CisrCSZYdXBkYXRlX3Nz c2UzXzMyXzc5KFwmYm9keV8yMF8zOSk7CisrCSZYdXBkYXRlX3Nzc2UzXzMyXzc5KFwmYm9keV80 MF81OSk7CisrCSZYdXBkYXRlX3Nzc2UzXzMyXzc5KFwmYm9keV80MF81OSk7CisrCSZYdXBkYXRl X3Nzc2UzXzMyXzc5KFwmYm9keV80MF81OSk7CisrCSZYdXBkYXRlX3Nzc2UzXzMyXzc5KFwmYm9k eV80MF81OSk7CisrCSZYdXBkYXRlX3Nzc2UzXzMyXzc5KFwmYm9keV80MF81OSk7CisrCSZYdXBk YXRlX3Nzc2UzXzMyXzc5KFwmYm9keV8yMF8zOSk7CisrCSZYdXBsYXN0X3Nzc2UzXzgwKFwmYm9k eV8yMF8zOSk7CSMgY2FuIGp1bXAgdG8gImRvbmUiCisrCisrCQkJCSRzYXZlZF9qPSRqOyBAc2F2 ZWRfVj1AVjsKKysKKysJJlhsb29wX3Nzc2UzKFwmYm9keV8yMF8zOSk7CisrCSZYbG9vcF9zc3Nl MyhcJmJvZHlfMjBfMzkpOworKwkmWGxvb3Bfc3NzZTMoXCZib2R5XzIwXzM5KTsKKysKKysJJm1v dgkoQFRbMV0sJkRXUCgxOTIsImVzcCIpKTsJIyB1cGRhdGUgY29udGV4dAorKwkmYWRkCSgkQSwm RFdQKDAsQFRbMV0pKTsKKysJJmFkZAkoQFRbMF0sJkRXUCg0LEBUWzFdKSk7CQkjICRiCisrCSZh ZGQJKCRDLCZEV1AoOCxAVFsxXSkpOworKwkmbW92CSgmRFdQKDAsQFRbMV0pLCRBKTsKKysJJmFk ZAkoJEQsJkRXUCgxMixAVFsxXSkpOworKwkmbW92CSgmRFdQKDQsQFRbMV0pLEBUWzBdKTsKKysJ JmFkZAkoJEUsJkRXUCgxNixAVFsxXSkpOworKwkmbW92CSgmRFdQKDgsQFRbMV0pLCRDKTsKKysJ Jm1vdgkoJEIsQFRbMF0pOworKwkmbW92CSgmRFdQKDEyLEBUWzFdKSwkRCk7CisrCSZtb3YJKCZE V1AoMTYsQFRbMV0pLCRFKTsKKysJJm1vdmRxYQkoQFhbMF0sQFhbLTMmN10pOworKworKwkmam1w CSgmbGFiZWwoImxvb3AiKSk7CisrCisrJnNldF9sYWJlbCgiZG9uZSIsMTYpOwkJJGo9JHNhdmVk X2o7IEBWPUBzYXZlZF9WOworKworKwkmWHRhaWxfc3NzZTMoXCZib2R5XzIwXzM5KTsKKysJJlh0 YWlsX3Nzc2UzKFwmYm9keV8yMF8zOSk7CisrCSZYdGFpbF9zc3NlMyhcJmJvZHlfMjBfMzkpOwor KworKwkmbW92CShAVFsxXSwmRFdQKDE5MiwiZXNwIikpOwkjIHVwZGF0ZSBjb250ZXh0CisrCSZh ZGQJKCRBLCZEV1AoMCxAVFsxXSkpOworKwkmbW92CSgiZXNwIiwmRFdQKDE5MisxMiwiZXNwIikp OwkjIHJlc3RvcmUgJWVzcAorKwkmYWRkCShAVFswXSwmRFdQKDQsQFRbMV0pKTsJCSMgJGIKKysJ JmFkZAkoJEMsJkRXUCg4LEBUWzFdKSk7CisrCSZtb3YJKCZEV1AoMCxAVFsxXSksJEEpOworKwkm YWRkCSgkRCwmRFdQKDEyLEBUWzFdKSk7CisrCSZtb3YJKCZEV1AoNCxAVFsxXSksQFRbMF0pOwor KwkmYWRkCSgkRSwmRFdQKDE2LEBUWzFdKSk7CisrCSZtb3YJKCZEV1AoOCxAVFsxXSksJEMpOwor KwkmbW92CSgmRFdQKDEyLEBUWzFdKSwkRCk7CisrCSZtb3YJKCZEV1AoMTYsQFRbMV0pLCRFKTsK KysKKysmZnVuY3Rpb25fZW5kKCJfc2hhMV9ibG9ja19kYXRhX29yZGVyX3Nzc2UzIik7CisrCisr aWYgKCR5bW0pIHsKKytteSAkWGk9NDsJCQkjIDR4U0lNRCBYdXBkYXRlIHJvdW5kLCBzdGFydCBw cmUtc2VlZGVkCisrbXkgQFg9bWFwKCJ4bW0kXyIsKDQuLjcsMC4uMykpOwkjIHByZS1zZWVkZWQg Zm9yICRYaT00CisrbXkgQFY9KCRBLCRCLCRDLCRELCRFKTsKKytteSAkaj0wOwkJCSMgaGFzaCBy b3VuZAorK215IEBUPSgkVCwkdG1wMSk7CisrbXkgJGlucDsKKysKKytteSAkX3JvbD1zdWIgeyAm c2hsZChAX1swXSxAXykgfTsKKytteSAkX3Jvcj1zdWIgeyAmc2hyZChAX1swXSxAXykgfTsKKysK KysmZnVuY3Rpb25fYmVnaW4oIl9zaGExX2Jsb2NrX2RhdGFfb3JkZXJfYXZ4Iik7CisrCSZjYWxs CSgmbGFiZWwoInBpY19wb2ludCIpKTsJIyBtYWtlIGl0IFBJQyEKKysJJnNldF9sYWJlbCgicGlj X3BvaW50Iik7CisrCSZibGluZHBvcCgkdG1wMSk7CisrCSZsZWEJKCR0bXAxLCZEV1AoJmxhYmVs KCJLX1hYX1hYIikuIi0iLiZsYWJlbCgicGljX3BvaW50IiksJHRtcDEpKTsKKysmc2V0X2xhYmVs KCJhdnhfc2hvcnRjdXQiKTsKKysJJnZ6ZXJvYWxsKCk7CisrCisrCSZ2bW92ZHFhKEBYWzNdLCZR V1AoMCwkdG1wMSkpOwkJIyBLXzAwXzE5CisrCSZ2bW92ZHFhKEBYWzRdLCZRV1AoMTYsJHRtcDEp KTsJCSMgS18yMF8zOQorKwkmdm1vdmRxYShAWFs1XSwmUVdQKDMyLCR0bXAxKSk7CQkjIEtfNDBf NTkKKysJJnZtb3ZkcWEoQFhbNl0sJlFXUCg0OCwkdG1wMSkpOwkJIyBLXzYwXzc5CisrCSZ2bW92 ZHFhKEBYWzJdLCZRV1AoNjQsJHRtcDEpKTsJCSMgcGJzd2FwIG1hc2sKKysKKysJJm1vdgkoJEUs JndwYXJhbSgwKSk7CQkjIGxvYWQgYXJndW1lbnQgYmxvY2sKKysJJm1vdgkoJGlucD1AVFsxXSwm d3BhcmFtKDEpKTsKKysJJm1vdgkoJEQsJndwYXJhbSgyKSk7CisrCSZtb3YJKEBUWzBdLCJlc3Ai KTsKKysKKysJIyBzdGFjayBmcmFtZSBsYXlvdXQKKysJIworKwkjICswCVhbMF0rSwlYWzFdK0sJ WFsyXStLCVhbM10rSwkjIFhNTS0+SUFMVSB4ZmVyIGFyZWEKKysJIwlYWzRdK0sJWFs1XStLCVhb Nl0rSwlYWzddK0sKKysJIwlYWzhdK0sJWFs5XStLCVhbMTBdK0sJWFsxMV0rSworKwkjCVhbMTJd K0sJWFsxM10rSwlYWzE0XStLCVhbMTVdK0sKKysJIworKwkjICs2NAlYWzBdCVhbMV0JWFsyXQlY WzNdCSMgWE1NLT5YTU0gYmFja3RyYWNlIGFyZWEKKysJIwlYWzRdCVhbNV0JWFs2XQlYWzddCisr CSMJWFs4XQlYWzldCVhbMTBdCVhbMTFdCSMgZXZlbiBib3Jyb3dlZCBmb3IgS18wMF8xOQorKwkj CisrCSMgKzExMglLXzIwXzM5CUtfMjBfMzkJS18yMF8zOQlLXzIwXzM5CSMgY29uc3RhbnRzCisr CSMJS180MF81OQlLXzQwXzU5CUtfNDBfNTkJS180MF81OQorKwkjCUtfNjBfNzkJS182MF83OQlL XzYwXzc5CUtfNjBfNzkKKysJIwlLXzAwXzE5CUtfMDBfMTkJS18wMF8xOQlLXzAwXzE5CisrCSMJ cGJzd2FwIG1hc2sKKysJIworKwkjICsxOTIJY3R4CQkJCSMgYXJndW1lbnQgYmxvY2sKKysJIyAr MTk2CWlucAorKwkjICsyMDAJZW5kCisrCSMgKzIwNAllc3AKKysJJnN1YgkoImVzcCIsMjA4KTsK KysJJmFuZAkoImVzcCIsLTY0KTsKKysKKysJJnZtb3ZkcWEoJlFXUCgxMTIrMCwiZXNwIiksQFhb NF0pOwkjIGNvcHkgY29uc3RhbnRzCisrCSZ2bW92ZHFhKCZRV1AoMTEyKzE2LCJlc3AiKSxAWFs1 XSk7CisrCSZ2bW92ZHFhKCZRV1AoMTEyKzMyLCJlc3AiKSxAWFs2XSk7CisrCSZzaGwJKCRELDYp OwkJCQkjIGxlbio2NAorKwkmdm1vdmRxYSgmUVdQKDExMis0OCwiZXNwIiksQFhbM10pOworKwkm YWRkCSgkRCwkaW5wKTsJCQkjIGVuZCBvZiBpbnB1dAorKwkmdm1vdmRxYSgmUVdQKDExMis2NCwi ZXNwIiksQFhbMl0pOworKwkmYWRkCSgkaW5wLDY0KTsKKysJJm1vdgkoJkRXUCgxOTIrMCwiZXNw IiksJEUpOwkJIyBzYXZlIGFyZ3VtZW50IGJsb2NrCisrCSZtb3YJKCZEV1AoMTkyKzQsImVzcCIp LCRpbnApOworKwkmbW92CSgmRFdQKDE5Mis4LCJlc3AiKSwkRCk7CisrCSZtb3YJKCZEV1AoMTky KzEyLCJlc3AiKSxAVFswXSk7CSMgc2F2ZSBvcmlnaW5hbCAlZXNwCisrCisrCSZtb3YJKCRBLCZE V1AoMCwkRSkpOwkJIyBsb2FkIGNvbnRleHQKKysJJm1vdgkoJEIsJkRXUCg0LCRFKSk7CisrCSZt b3YJKCRDLCZEV1AoOCwkRSkpOworKwkmbW92CSgkRCwmRFdQKDEyLCRFKSk7CisrCSZtb3YJKCRF LCZEV1AoMTYsJEUpKTsKKysJJm1vdgkoQFRbMF0sJEIpOwkJCSMgbWFnaWMgc2VlZAorKworKwkm dm1vdmRxdShAWFstNCY3XSwmUVdQKC02NCwkaW5wKSk7CSMgbG9hZCBpbnB1dCB0byAleG1tWzAt M10KKysJJnZtb3ZkcXUoQFhbLTMmN10sJlFXUCgtNDgsJGlucCkpOworKwkmdm1vdmRxdShAWFst MiY3XSwmUVdQKC0zMiwkaW5wKSk7CisrCSZ2bW92ZHF1KEBYWy0xJjddLCZRV1AoLTE2LCRpbnAp KTsKKysJJnZwc2h1ZmIoQFhbLTQmN10sQFhbLTQmN10sQFhbMl0pOwkjIGJ5dGUgc3dhcAorKwkm dnBzaHVmYihAWFstMyY3XSxAWFstMyY3XSxAWFsyXSk7CisrCSZ2cHNodWZiKEBYWy0yJjddLEBY Wy0yJjddLEBYWzJdKTsKKysJJnZtb3ZkcWEoJlFXUCgxMTItMTYsImVzcCIpLEBYWzNdKTsJIyBi b3Jyb3cgbGFzdCBiYWNrdHJhY2Ugc2xvdAorKwkmdnBzaHVmYihAWFstMSY3XSxAWFstMSY3XSxA WFsyXSk7CisrCSZ2cGFkZGQJKEBYWzBdLEBYWy00JjddLEBYWzNdKTsJCSMgYWRkIEtfMDBfMTkK KysJJnZwYWRkZAkoQFhbMV0sQFhbLTMmN10sQFhbM10pOworKwkmdnBhZGRkCShAWFsyXSxAWFst MiY3XSxAWFszXSk7CisrCSZ2bW92ZHFhKCZRV1AoMCwiZXNwIiksQFhbMF0pOwkJIyBYW10rSyB4 ZmVyIHRvIElBTFUKKysJJnZtb3ZkcWEoJlFXUCgwKzE2LCJlc3AiKSxAWFsxXSk7CisrCSZ2bW92 ZHFhKCZRV1AoMCszMiwiZXNwIiksQFhbMl0pOworKwkmam1wCSgmbGFiZWwoImxvb3AiKSk7Cisr Cisrc3ViIFh1cGRhdGVfYXZ4XzE2XzMxKCkJCSMgcmVjYWxsIHRoYXQgJFhpIHN0YXJ0cyB3dGlo IDQKKyt7IHVzZSBpbnRlZ2VyOworKyAgbXkgJGJvZHkgPSBzaGlmdDsKKysgIG15IEBpbnNucyA9 ICgmJGJvZHksJiRib2R5LCYkYm9keSwmJGJvZHkpOwkjIDQwIGluc3RydWN0aW9ucworKyAgbXkg KCRhLCRiLCRjLCRkLCRlKTsKKysKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNo aWZ0KEBpbnNucykpOworKwkmdnBhbGlnbnIoQFhbMF0sQFhbLTMmN10sQFhbLTQmN10sOCk7CSMg Y29tcG9zZSAiWFstMTRdIiBpbiAiWFswXSIKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBl dmFsKHNoaWZ0KEBpbnNucykpOworKworKwkgICZ2cGFkZGQJKEBYWzNdLEBYWzNdLEBYWy0xJjdd KTsKKysJICAmdm1vdmRxYQkoJlFXUCg2NCsxNiooKCRYaS00KSUzKSwiZXNwIiksQFhbLTQmN10p OyMgc2F2ZSBYW10gdG8gYmFja3RyYWNlIGJ1ZmZlcgorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsK KysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSZ2cHNybGRxKEBYWzJdLEBYWy0xJjddLDQpOwkJ IyAiWFstM10iLCAzIGR3b3JkcworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hp ZnQoQGluc25zKSk7CisrCSZ2cHhvcgkoQFhbMF0sQFhbMF0sQFhbLTQmN10pOwkJIyAiWFswXSJe PSJYWy0xNl0iCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMp KTsKKysKKysJJnZweG9yCShAWFsyXSxAWFsyXSxAWFstMiY3XSk7CQkjICJYWy0zXSJeIlhbLThd IgorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSAg JnZtb3ZkcWEJKCZRV1AoMCsxNiooKCRYaS0xKSYzKSwiZXNwIiksQFhbM10pOwkjIFhbXStLIHhm ZXIgdG8gSUFMVQorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25z KSk7CisrCisrCSZ2cHhvcgkoQFhbMF0sQFhbMF0sQFhbMl0pOwkJIyAiWFswXSJePSJYWy0zXSJe IlhbLThdIgorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7 CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysKKysJ JnZwc3JsZAkoQFhbMl0sQFhbMF0sMzEpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2 YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlm dChAaW5zbnMpKTsKKysKKysJJnZwc2xsZHEoQFhbNF0sQFhbMF0sMTIpOwkJIyAiWFswXSI8PDk2 LCBleHRyYWN0IG9uZSBkd29yZAorKwkmdnBhZGRkCShAWFswXSxAWFswXSxAWFswXSk7CisrCSBl dmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hp ZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKworKwkmdnBzcmxkCShAWFsz XSxAWFs0XSwzMCk7CisrCSZ2cG9yCShAWFswXSxAWFswXSxAWFsyXSk7CQkjICJYWzBdIjw8PD0x CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2 YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKworKwkmdnBzbGxk CShAWFs0XSxAWFs0XSwyKTsKKysJICAmdm1vdmRxYQkoQFhbMl0sJlFXUCg2NCsxNiooKCRYaS02 KSUzKSwiZXNwIikpIGlmICgkWGk+NSk7CSMgcmVzdG9yZSBYW10gZnJvbSBiYWNrdHJhY2UgYnVm ZmVyCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJ JnZweG9yCShAWFswXSxAWFswXSxAWFszXSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkg ZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNo aWZ0KEBpbnNucykpOworKworKwkmdnB4b3IJKEBYWzBdLEBYWzBdLEBYWzRdKTsJCSMgIlhbMF0i Xj0oIlhbMF0iPDw5Nik8PDwyCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlm dChAaW5zbnMpKTsKKysJICAmdm1vdmRxYQkoQFhbNF0sJlFXUCgxMTItMTYrMTYqKCgkWGkpLzUp LCJlc3AiKSk7CSMgS19YWF9YWAorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hp ZnQoQGluc25zKSk7CisrCisrCSBmb3JlYWNoIChAaW5zbnMpIHsgZXZhbDsgfQkjIHJlbWFpbmlu ZyBpbnN0cnVjdGlvbnMgW2lmIGFueV0KKysKKysgICRYaSsrOwlwdXNoKEBYLHNoaWZ0KEBYKSk7 CSMgInJvdGF0ZSIgWFtdCisrfQorKworK3N1YiBYdXBkYXRlX2F2eF8zMl83OSgpCisreyB1c2Ug aW50ZWdlcjsKKysgIG15ICRib2R5ID0gc2hpZnQ7CisrICBteSBAaW5zbnMgPSAoJiRib2R5LCYk Ym9keSwmJGJvZHksJiRib2R5KTsJIyAzMiB0byA0OCBpbnN0cnVjdGlvbnMKKysgIG15ICgkYSwk YiwkYywkZCwkZSk7CisrCisrCSZ2cGFsaWducihAWFsyXSxAWFstMSY3XSxAWFstMiY3XSw4KTsJ IyBjb21wb3NlICJYWy02XSIKKysJJnZweG9yCShAWFswXSxAWFswXSxAWFstNCY3XSk7CSMgIlhb MF0iPSJYWy0zMl0iXiJYWy0xNl0iCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOwkJIyBib2R5XzIw XzM5CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJ IGV2YWwoc2hpZnQoQGluc25zKSk7CQkjIHJvbAorKworKwkmdnB4b3IJKEBYWzBdLEBYWzBdLEBY Wy03JjddKTsJIyAiWFswXSJePSJYWy0yOF0iCisrCSAgJnZtb3ZkcWEJKCZRV1AoNjQrMTYqKCgk WGktNCklMyksImVzcCIpLEBYWy00JjddKTsJIyBzYXZlIFhbXSB0byBiYWNrdHJhY2UgYnVmZmVy CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGlm ICgkWGklNSkgeworKwkgICZ2bW92ZHFhCShAWFs0XSxAWFszXSk7CSMgInBlcnBldHVhdGUiIEtf WFhfWFguLi4KKysJIH0gZWxzZSB7CQkJIyAuLi4gb3IgbG9hZCBuZXh0IG9uZQorKwkgICZ2bW92 ZHFhCShAWFs0XSwmUVdQKDExMi0xNisxNiooJFhpLzUpLCJlc3AiKSk7CisrCSB9CisrCSAgJnZw YWRkZAkoQFhbM10sQFhbM10sQFhbLTEmN10pOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsJCSMg cm9yCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKworKwkmdnB4b3IJKEBYWzBdLEBYWzBdLEBY WzJdKTsJCSMgIlhbMF0iXj0iWFstNl0iCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOwkJIyBib2R5 XzIwXzM5CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsK KysJIGV2YWwoc2hpZnQoQGluc25zKSk7CQkjIHJvbAorKworKwkmdnBzcmxkCShAWFsyXSxAWFsw XSwzMCk7CisrCSAgJnZtb3ZkcWEJKCZRV1AoMCsxNiooKCRYaS0xKSYzKSwiZXNwIiksQFhbM10p OwkjIFhbXStLIHhmZXIgdG8gSUFMVQorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwo c2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOwkJIyByb3IKKysJIGV2YWwo c2hpZnQoQGluc25zKSk7CisrCisrCSZ2cHNsbGQJKEBYWzBdLEBYWzBdLDIpOworKwkgZXZhbChz aGlmdChAaW5zbnMpKTsJCSMgYm9keV8yMF8zOQorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJ IGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOwkJIyByb2wKKysJ IGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChz aGlmdChAaW5zbnMpKTsJCSMgcm9yCisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKworKwkmdnBv cgkoQFhbMF0sQFhbMF0sQFhbMl0pOwkjICJYWzBdIjw8PD0yCisrCSBldmFsKHNoaWZ0KEBpbnNu cykpOwkJIyBib2R5XzIwXzM5CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgICZ2bW92ZHFh CShAWFsyXSwmUVdQKDY0KzE2KigoJFhpLTYpJTMpLCJlc3AiKSkgaWYoJFhpPDE5KTsJIyByZXN0 b3JlIFhbXSBmcm9tIGJhY2t0cmFjZSBidWZmZXIKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7Cisr CSBldmFsKHNoaWZ0KEBpbnNucykpOwkJIyByb2wKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7Cisr CSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsJCSMgcm9yCisr CSBldmFsKHNoaWZ0KEBpbnNucykpOworKworKwkgZm9yZWFjaCAoQGluc25zKSB7IGV2YWw7IH0J IyByZW1haW5pbmcgaW5zdHJ1Y3Rpb25zCisrCisrICAkWGkrKzsJcHVzaChAWCxzaGlmdChAWCkp OwkjICJyb3RhdGUiIFhbXQorK30KKysKKytzdWIgWHVwbGFzdF9hdnhfODAoKQorK3sgdXNlIGlu dGVnZXI7CisrICBteSAkYm9keSA9IHNoaWZ0OworKyAgbXkgQGluc25zID0gKCYkYm9keSwmJGJv ZHksJiRib2R5LCYkYm9keSk7CSMgMzIgaW5zdHJ1Y3Rpb25zCisrICBteSAoJGEsJGIsJGMsJGQs JGUpOworKworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJICAmdnBhZGRkCShAWFszXSxAWFsz XSxAWFstMSY3XSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOworKwkgZXZhbChzaGlmdChAaW5z bnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykpOwor KworKwkgICZ2bW92ZHFhCSgmUVdQKDArMTYqKCgkWGktMSkmMyksImVzcCIpLEBYWzNdKTsJIyBY W10rSyB4ZmVyIElBTFUKKysKKysJIGZvcmVhY2ggKEBpbnNucykgeyBldmFsOyB9CQkjIHJlbWFp bmluZyBpbnN0cnVjdGlvbnMKKysKKysJJm1vdgkoJGlucD1AVFsxXSwmRFdQKDE5Mis0LCJlc3Ai KSk7CisrCSZjbXAJKCRpbnAsJkRXUCgxOTIrOCwiZXNwIikpOworKwkmamUJKCZsYWJlbCgiZG9u ZSIpKTsKKysKKysJJnZtb3ZkcWEoQFhbM10sJlFXUCgxMTIrNDgsImVzcCIpKTsJIyBLXzAwXzE5 CisrCSZ2bW92ZHFhKEBYWzJdLCZRV1AoMTEyKzY0LCJlc3AiKSk7CSMgcGJzd2FwIG1hc2sKKysJ JnZtb3ZkcXUoQFhbLTQmN10sJlFXUCgwLCRpbnApKTsJIyBsb2FkIGlucHV0CisrCSZ2bW92ZHF1 KEBYWy0zJjddLCZRV1AoMTYsJGlucCkpOworKwkmdm1vdmRxdShAWFstMiY3XSwmUVdQKDMyLCRp bnApKTsKKysJJnZtb3ZkcXUoQFhbLTEmN10sJlFXUCg0OCwkaW5wKSk7CisrCSZhZGQJKCRpbnAs NjQpOworKwkmdnBzaHVmYihAWFstNCY3XSxAWFstNCY3XSxAWFsyXSk7CQkjIGJ5dGUgc3dhcAor KwkmbW92CSgmRFdQKDE5Mis0LCJlc3AiKSwkaW5wKTsKKysJJnZtb3ZkcWEoJlFXUCgxMTItMTYs ImVzcCIpLEBYWzNdKTsJIyBib3Jyb3cgbGFzdCBiYWNrdHJhY2Ugc2xvdAorKworKyAgJFhpPTA7 CisrfQorKworK3N1YiBYbG9vcF9hdngoKQorK3sgdXNlIGludGVnZXI7CisrICBteSAkYm9keSA9 IHNoaWZ0OworKyAgbXkgQGluc25zID0gKCYkYm9keSwmJGJvZHksJiRib2R5LCYkYm9keSk7CSMg MzIgaW5zdHJ1Y3Rpb25zCisrICBteSAoJGEsJGIsJGMsJGQsJGUpOworKworKwkgZXZhbChzaGlm dChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSZ2cHNodWZiCShAWFsoJFhp LTMpJjddLEBYWygkWGktMykmN10sQFhbMl0pOworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJ IGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSZ2cGFkZGQJKEBYWyRYaSY3XSxAWFsoJFhpLTQpJjdd LEBYWzNdKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSBldmFsKHNoaWZ0KEBpbnNucykp OworKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7CisrCSZ2 bW92ZHFhCSgmUVdQKDArMTYqJFhpLCJlc3AiKSxAWFskWGkmN10pOwkjIFhbXStLIHhmZXIgdG8g SUFMVQorKwkgZXZhbChzaGlmdChAaW5zbnMpKTsKKysJIGV2YWwoc2hpZnQoQGluc25zKSk7Cisr CisrCWZvcmVhY2ggKEBpbnNucykgeyBldmFsOyB9CisrICAkWGkrKzsKKyt9CisrCisrc3ViIFh0 YWlsX2F2eCgpCisreyB1c2UgaW50ZWdlcjsKKysgIG15ICRib2R5ID0gc2hpZnQ7CisrICBteSBA aW5zbnMgPSAoJiRib2R5LCYkYm9keSwmJGJvZHksJiRib2R5KTsJIyAzMiBpbnN0cnVjdGlvbnMK KysgIG15ICgkYSwkYiwkYywkZCwkZSk7CisrCisrCWZvcmVhY2ggKEBpbnNucykgeyBldmFsOyB9 CisrfQorKworKyZzZXRfbGFiZWwoImxvb3AiLDE2KTsKKysJJlh1cGRhdGVfYXZ4XzE2XzMxKFwm Ym9keV8wMF8xOSk7CisrCSZYdXBkYXRlX2F2eF8xNl8zMShcJmJvZHlfMDBfMTkpOworKwkmWHVw ZGF0ZV9hdnhfMTZfMzEoXCZib2R5XzAwXzE5KTsKKysJJlh1cGRhdGVfYXZ4XzE2XzMxKFwmYm9k eV8wMF8xOSk7CisrCSZYdXBkYXRlX2F2eF8zMl83OShcJmJvZHlfMDBfMTkpOworKwkmWHVwZGF0 ZV9hdnhfMzJfNzkoXCZib2R5XzIwXzM5KTsKKysJJlh1cGRhdGVfYXZ4XzMyXzc5KFwmYm9keV8y MF8zOSk7CisrCSZYdXBkYXRlX2F2eF8zMl83OShcJmJvZHlfMjBfMzkpOworKwkmWHVwZGF0ZV9h dnhfMzJfNzkoXCZib2R5XzIwXzM5KTsKKysJJlh1cGRhdGVfYXZ4XzMyXzc5KFwmYm9keV8yMF8z OSk7CisrCSZYdXBkYXRlX2F2eF8zMl83OShcJmJvZHlfNDBfNTkpOworKwkmWHVwZGF0ZV9hdnhf MzJfNzkoXCZib2R5XzQwXzU5KTsKKysJJlh1cGRhdGVfYXZ4XzMyXzc5KFwmYm9keV80MF81OSk7 CisrCSZYdXBkYXRlX2F2eF8zMl83OShcJmJvZHlfNDBfNTkpOworKwkmWHVwZGF0ZV9hdnhfMzJf NzkoXCZib2R5XzQwXzU5KTsKKysJJlh1cGRhdGVfYXZ4XzMyXzc5KFwmYm9keV8yMF8zOSk7Cisr CSZYdXBsYXN0X2F2eF84MChcJmJvZHlfMjBfMzkpOwkjIGNhbiBqdW1wIHRvICJkb25lIgorKwor KwkJCQkkc2F2ZWRfaj0kajsgQHNhdmVkX1Y9QFY7CisrCisrCSZYbG9vcF9hdngoXCZib2R5XzIw XzM5KTsKKysJJlhsb29wX2F2eChcJmJvZHlfMjBfMzkpOworKwkmWGxvb3BfYXZ4KFwmYm9keV8y MF8zOSk7CisrCisrCSZtb3YJKEBUWzFdLCZEV1AoMTkyLCJlc3AiKSk7CSMgdXBkYXRlIGNvbnRl eHQKKysJJmFkZAkoJEEsJkRXUCgwLEBUWzFdKSk7CisrCSZhZGQJKEBUWzBdLCZEV1AoNCxAVFsx XSkpOwkJIyAkYgorKwkmYWRkCSgkQywmRFdQKDgsQFRbMV0pKTsKKysJJm1vdgkoJkRXUCgwLEBU WzFdKSwkQSk7CisrCSZhZGQJKCRELCZEV1AoMTIsQFRbMV0pKTsKKysJJm1vdgkoJkRXUCg0LEBU WzFdKSxAVFswXSk7CisrCSZhZGQJKCRFLCZEV1AoMTYsQFRbMV0pKTsKKysJJm1vdgkoJkRXUCg4 LEBUWzFdKSwkQyk7CisrCSZtb3YJKCRCLEBUWzBdKTsKKysJJm1vdgkoJkRXUCgxMixAVFsxXSks JEQpOworKwkmbW92CSgmRFdQKDE2LEBUWzFdKSwkRSk7CisrCisrCSZqbXAJKCZsYWJlbCgibG9v cCIpKTsKKysKKysmc2V0X2xhYmVsKCJkb25lIiwxNik7CQkkaj0kc2F2ZWRfajsgQFY9QHNhdmVk X1Y7CisrCisrCSZYdGFpbF9hdngoXCZib2R5XzIwXzM5KTsKKysJJlh0YWlsX2F2eChcJmJvZHlf MjBfMzkpOworKwkmWHRhaWxfYXZ4KFwmYm9keV8yMF8zOSk7CisrCisrCSZ2emVyb2FsbCgpOwor KworKwkmbW92CShAVFsxXSwmRFdQKDE5MiwiZXNwIikpOwkjIHVwZGF0ZSBjb250ZXh0CisrCSZh ZGQJKCRBLCZEV1AoMCxAVFsxXSkpOworKwkmbW92CSgiZXNwIiwmRFdQKDE5MisxMiwiZXNwIikp OwkjIHJlc3RvcmUgJWVzcAorKwkmYWRkCShAVFswXSwmRFdQKDQsQFRbMV0pKTsJCSMgJGIKKysJ JmFkZAkoJEMsJkRXUCg4LEBUWzFdKSk7CisrCSZtb3YJKCZEV1AoMCxAVFsxXSksJEEpOworKwkm YWRkCSgkRCwmRFdQKDEyLEBUWzFdKSk7CisrCSZtb3YJKCZEV1AoNCxAVFsxXSksQFRbMF0pOwor KwkmYWRkCSgkRSwmRFdQKDE2LEBUWzFdKSk7CisrCSZtb3YJKCZEV1AoOCxAVFsxXSksJEMpOwor KwkmbW92CSgmRFdQKDEyLEBUWzFdKSwkRCk7CisrCSZtb3YJKCZEV1AoMTYsQFRbMV0pLCRFKTsK KysmZnVuY3Rpb25fZW5kKCJfc2hhMV9ibG9ja19kYXRhX29yZGVyX2F2eCIpOworK30KKysmc2V0 X2xhYmVsKCJLX1hYX1hYIiw2NCk7CisrJmRhdGFfd29yZCgweDVhODI3OTk5LDB4NWE4Mjc5OTks MHg1YTgyNzk5OSwweDVhODI3OTk5KTsJIyBLXzAwXzE5CisrJmRhdGFfd29yZCgweDZlZDllYmEx LDB4NmVkOWViYTEsMHg2ZWQ5ZWJhMSwweDZlZDllYmExKTsJIyBLXzIwXzM5CisrJmRhdGFfd29y ZCgweDhmMWJiY2RjLDB4OGYxYmJjZGMsMHg4ZjFiYmNkYywweDhmMWJiY2RjKTsJIyBLXzQwXzU5 CisrJmRhdGFfd29yZCgweGNhNjJjMWQ2LDB4Y2E2MmMxZDYsMHhjYTYyYzFkNiwweGNhNjJjMWQ2 KTsJIyBLXzYwXzc5CisrJmRhdGFfd29yZCgweDAwMDEwMjAzLDB4MDQwNTA2MDcsMHgwODA5MGEw YiwweDBjMGQwZTBmKTsJIyBwYnN3YXAgbWFzaworK30KKyAmYXNjaXooIlNIQTEgYmxvY2sgdHJh bnNmb3JtIGZvciB4ODYsIENSWVBUT0dBTVMgYnkgPGFwcHJvXEBvcGVuc3NsLm9yZz4iKTsKKyAK KyAmYXNtX2ZpbmlzaCgpOworZGlmZiAtdXAgb3BlbnNzbC0xLjAuMGQvY3J5cHRvL3g4NmNwdWlk LnBsLmludGVsb3B0cyBvcGVuc3NsLTEuMC4wZC9jcnlwdG8veDg2Y3B1aWQucGwKKy0tLSBvcGVu c3NsLTEuMC4wZC9jcnlwdG8veDg2Y3B1aWQucGwuaW50ZWxvcHRzCTIwMTAtMDItMTIgMTg6MDI6 MTIuMDAwMDAwMDAwICswMTAwCisrKysgb3BlbnNzbC0xLjAuMGQvY3J5cHRvL3g4NmNwdWlkLnBs CTIwMTEtMDgtMjQgMTI6MzY6MzQuMDAwMDAwMDAwICswMjAwCitAQCAtMSw0ICsxLDQgQEAKKy0j IS91c3IvYmluL2VudiBwZXJsCisrIyEvdXNyL2Jpbi9wZXJsCisgCisgJDAgPX4gbS8oLipbXC9c XF0pW15cL1xcXSskLzsgJGRpcj0kMTsKKyBwdXNoKEBJTkMsICIke2Rpcn1wZXJsYXNtIiwgInBl cmxhc20iKTsKK0BAIC0yMCw3ICsyMCw3IEBAIGZvciAoQEFSR1YpIHsgJHNzZTI9MSBpZiAoLy1E T1BFTlNTTF9JQTMKKyAJJnBvcAkoImVheCIpOworIAkmeG9yCSgiZWN4IiwiZWF4Iik7CisgCSZi dAkoImVjeCIsMjEpOworLQkmam5jCSgmbGFiZWwoImRvbmUiKSk7CisrCSZqbmMJKCZsYWJlbCgi Z2VuZXJpYyIpKTsKKyAJJnhvcgkoImVheCIsImVheCIpOworIAkmY3B1aWQJKCk7CisgCSZtb3YJ KCJlZGkiLCJlYXgiKTsJCSMgbWF4IHZhbHVlIGZvciBzdGFuZGFyZCBxdWVyeSBsZXZlbAorQEAg LTUxLDcgKzUxLDE0IEBAIGZvciAoQEFSR1YpIHsgJHNzZTI9MSBpZiAoLy1ET1BFTlNTTF9JQTMK KyAJIyBBTUQgc3BlY2lmaWMKKyAJJm1vdgkoImVheCIsMHg4MDAwMDAwMCk7CisgCSZjcHVpZAko KTsKKy0JJmNtcAkoImVheCIsMHg4MDAwMDAwOCk7CisrCSZjbXAJKCJlYXgiLDB4ODAwMDAwMDEp OworKwkmamIJKCZsYWJlbCgiaW50ZWwiKSk7CisrCSZtb3YJKCJlc2kiLCJlYXgiKTsKKysJJm1v dgkoImVheCIsMHg4MDAwMDAwMSk7CisrCSZjcHVpZAkoKTsKKysJJm9yCSgiZWJwIiwiZWN4Iik7 CisrCSZhbmQJKCJlYnAiLDE8PDExfDEpOwkjIGlzb2xhdGUgWE9QIGJpdAorKwkmY21wCSgiZXNp IiwweDgwMDAwMDA4KTsKKyAJJmpiCSgmbGFiZWwoImludGVsIikpOworIAorIAkmbW92CSgiZWF4 IiwweDgwMDAwMDA4KTsKK0BAIC02MiwxMyArNjksMTMgQEAgZm9yIChAQVJHVikgeyAkc3NlMj0x IGlmICgvLURPUEVOU1NMX0lBMworIAkmbW92CSgiZWF4IiwxKTsKKyAJJmNwdWlkCSgpOworIAkm YnQJKCJlZHgiLDI4KTsKKy0JJmpuYwkoJmxhYmVsKCJkb25lIikpOworKwkmam5jCSgmbGFiZWwo ImdlbmVyaWMiKSk7CisgCSZzaHIJKCJlYngiLDE2KTsKKyAJJmFuZAkoImVieCIsMHhmZik7Cisg CSZjbXAJKCJlYngiLCJlc2kiKTsKKy0JJmphCSgmbGFiZWwoImRvbmUiKSk7CisrCSZqYQkoJmxh YmVsKCJnZW5lcmljIikpOworIAkmYW5kCSgiZWR4IiwweGVmZmZmZmZmKTsJIyBjbGVhciBoeXBl ci10aHJlYWRpbmcgYml0CistCSZqbXAJKCZsYWJlbCgiZG9uZSIpKTsKKysJJmptcAkoJmxhYmVs KCJnZW5lcmljIikpOworIAkKKyAmc2V0X2xhYmVsKCJpbnRlbCIpOworIAkmY21wCSgiZWRpIiw0 KTsKK0BAIC04NSwyNyArOTIsNTIgQEAgZm9yIChAQVJHVikgeyAkc3NlMj0xIGlmICgvLURPUEVO U1NMX0lBMworICZzZXRfbGFiZWwoIm5vY2FjaGVpbmZvIik7CisgCSZtb3YJKCJlYXgiLDEpOwor IAkmY3B1aWQJKCk7CisrCSZhbmQJKCJlZHgiLDB4YmZlZmZmZmYpOwkjIGZvcmNlIHJlc2VydmVk IGJpdHMgIzIwLCAjMzAgdG8gMAorIAkmY21wCSgiZWJwIiwwKTsKKy0JJmpuZQkoJmxhYmVsKCJu b3RQNCIpKTsKKysJJmpuZQkoJmxhYmVsKCJub3RpbnRlbCIpKTsKKysJJm9yCSgiZWR4IiwxPDwz MCk7CQkjIHNldCByZXNlcnZlZCBiaXQjMzAgb24gSW50ZWwgQ1BVcworIAkmYW5kCSgmSEIoImVh eCIpLDE1KTsJIyBmYW1pbGl5IElECisgCSZjbXAJKCZIQigiZWF4IiksMTUpOwkjIFA0PworLQkm am5lCSgmbGFiZWwoIm5vdFA0IikpOworLQkmb3IJKCJlZHgiLDE8PDIwKTsJCSMgdXNlIHJlc2Vy dmVkIGJpdCB0byBlbmdhZ2UgUkM0X0NIQVIKKy0mc2V0X2xhYmVsKCJub3RQNCIpOworKwkmam5l CSgmbGFiZWwoIm5vdGludGVsIikpOworKwkmb3IJKCJlZHgiLDE8PDIwKTsJCSMgc2V0IHJlc2Vy dmVkIGJpdCMyMCB0byBlbmdhZ2UgUkM0X0NIQVIKKysmc2V0X2xhYmVsKCJub3RpbnRlbCIpOwor IAkmYnQJKCJlZHgiLDI4KTsJCSMgdGVzdCBoeXBlci10aHJlYWRpbmcgYml0CistCSZqbmMJKCZs YWJlbCgiZG9uZSIpKTsKKysJJmpuYwkoJmxhYmVsKCJnZW5lcmljIikpOworIAkmYW5kCSgiZWR4 IiwweGVmZmZmZmZmKTsKKyAJJmNtcAkoImVkaSIsMCk7CistCSZqZQkoJmxhYmVsKCJkb25lIikp OworKwkmamUJKCZsYWJlbCgiZ2VuZXJpYyIpKTsKKyAKKyAJJm9yCSgiZWR4IiwweDEwMDAwMDAw KTsKKyAJJnNocgkoImVieCIsMTYpOworIAkmY21wCSgmTEIoImVieCIpLDEpOworLQkmamEJKCZs YWJlbCgiZG9uZSIpKTsKKysJJmphCSgmbGFiZWwoImdlbmVyaWMiKSk7CisgCSZhbmQJKCJlZHgi LDB4ZWZmZmZmZmYpOwkjIGNsZWFyIGh5cGVyLXRocmVhZGluZyBiaXQgaWYgbm90CisrCisrJnNl dF9sYWJlbCgiZ2VuZXJpYyIpOworKwkmYW5kCSgiZWJwIiwxPDwxMSk7CQkjIGlzb2xhdGUgQU1E IFhPUCBmbGFnCisrCSZhbmQJKCJlY3giLDB4ZmZmZmY3ZmYpOwkjIGZvcmNlIDExdGggYml0IHRv IDAKKysJJm1vdgkoImVzaSIsImVkeCIpOworKwkmb3IJKCJlYnAiLCJlY3giKTsJCSMgbWVyZ2Ug QU1EIFhPUCBmbGFnCisrCisrCSZidAkoImVjeCIsMjYpOwkJIyBjaGVjayBYU0FWRSBiaXQKKysJ JmpuYwkoJmxhYmVsKCJkb25lIikpOworKwkmYnQJKCJlY3giLDI3KTsJCSMgY2hlY2sgT1NYU0FW RSBiaXQKKysJJmpuYwkoJmxhYmVsKCJjbGVhcl94bW0iKSk7CisrCSZ4b3IJKCJlY3giLCJlY3gi KTsKKysJJmRhdGFfYnl0ZSgweDBmLDB4MDEsMHhkMCk7CSMgeGdldGJ2CisrCSZhbmQJKCJlYXgi LDYpOworKwkmY21wCSgiZWF4Iiw2KTsKKysJJmplCSgmbGFiZWwoImRvbmUiKSk7CisrCSZjbXAJ KCJlYXgiLDIpOworKwkmamUJKCZsYWJlbCgiY2xlYXJfYXZ4IikpOworKyZzZXRfbGFiZWwoImNs ZWFyX3htbSIpOworKwkmYW5kCSgiZWJwIiwweGZkZmZmZmZkKTsJIyBjbGVhciBBRVNOSSBhbmQg UENMTVVMUURRIGJpdHMKKysJJmFuZAkoImVzaSIsMHhmZWZmZmZmZik7CSMgY2xlYXIgRlhTUgor KyZzZXRfbGFiZWwoImNsZWFyX2F2eCIpOworKwkmYW5kCSgiZWJwIiwweGVmZmZlN2ZmKTsJIyBj bGVhciBBVlgsIEZNQSBhbmQgQU1EIFhPUCBiaXRzCisgJnNldF9sYWJlbCgiZG9uZSIpOworLQkm bW92CSgiZWF4IiwiZWR4Iik7CistCSZtb3YJKCJlZHgiLCJlY3giKTsKKysJJm1vdgkoImVheCIs ImVzaSIpOworKwkmbW92CSgiZWR4IiwiZWJwIik7CisgJmZ1bmN0aW9uX2VuZCgiT1BFTlNTTF9p YTMyX2NwdWlkIik7CisgCisgJmV4dGVybmFsX2xhYmVsKCJPUEVOU1NMX2lhMzJjYXBfUCIpOwor QEAgLTE5OSw4ICsyMzEsOSBAQCBmb3IgKEBBUkdWKSB7ICRzc2UyPTEgaWYgKC8tRE9QRU5TU0xf SUEzCisgCSZidAkoJkRXUCgwLCJlY3giKSwxKTsKKyAJJmpuYwkoJmxhYmVsKCJub194ODciKSk7 CisgCWlmICgkc3NlMikgeworLQkJJmJ0CSgmRFdQKDAsImVjeCIpLDI2KTsKKy0JCSZqbmMJKCZs YWJlbCgibm9fc3NlMiIpKTsKKysJCSZhbmQJKCJlY3giLDE8PDI2fDE8PDI0KTsJIyBjaGVjayBT U0UyIGFuZCBGWFNSIGJpdHMKKysJCSZjbXAJKCJlY3giLDE8PDI2fDE8PDI0KTsKKysJCSZqbmUJ KCZsYWJlbCgibm9fc3NlMiIpKTsKKyAJCSZweG9yCSgieG1tMCIsInhtbTAiKTsKKyAJCSZweG9y CSgieG1tMSIsInhtbTEiKTsKKyAJCSZweG9yCSgieG1tMiIsInhtbTIiKTsKK2RpZmYgLXVwIG9w ZW5zc2wtMS4wLjBkL2NyeXB0by94ODZfNjRjcHVpZC5wbC5pbnRlbG9wdHMgb3BlbnNzbC0xLjAu MGQvY3J5cHRvL3g4Nl82NGNwdWlkLnBsCistLS0gb3BlbnNzbC0xLjAuMGQvY3J5cHRvL3g4Nl82 NGNwdWlkLnBsLmludGVsb3B0cwkyMDEwLTA0LTE0IDIxOjI1OjA5LjAwMDAwMDAwMCArMDIwMAor KysrIG9wZW5zc2wtMS4wLjBkL2NyeXB0by94ODZfNjRjcHVpZC5wbAkyMDExLTA4LTI0IDEyOjM2 OjM0LjAwMDAwMDAwMCArMDIwMAorQEAgLTEsNCArMSw0IEBACistIyEvdXNyL2Jpbi9lbnYgcGVy bAorKyMhL3Vzci9iaW4vcGVybAorIAorICRmbGF2b3VyID0gc2hpZnQ7CisgJG91dHB1dCAgPSBz aGlmdDsKK0BAIC03LDEyICs3LDE4IEBAIGlmICgkZmxhdm91ciA9fiAvXC4vKSB7ICRvdXRwdXQg PSAkZmxhdm8KKyAkd2luNjQ9MDsgJHdpbjY0PTEgaWYgKCRmbGF2b3VyID1+IC9bbm1dYXNtfG1p bmd3NjQvIHx8ICRvdXRwdXQgPX4gL1wuYXNtJC8pOworIAorICQwID1+IG0vKC4qW1wvXFxdKVte XC9cXF0rJC87ICRkaXI9JDE7Cistb3BlbiBTVERPVVQsInwgJF5YICR7ZGlyfXBlcmxhc20veDg2 XzY0LXhsYXRlLnBsICRmbGF2b3VyICRvdXRwdXQiOworKyggJHhsYXRlPSIke2Rpcn14ODZfNjQt eGxhdGUucGwiIGFuZCAtZiAkeGxhdGUgKSBvcgorKyggJHhsYXRlPSIke2Rpcn1wZXJsYXNtL3g4 Nl82NC14bGF0ZS5wbCIgYW5kIC1mICR4bGF0ZSkgb3IKKytkaWUgImNhbid0IGxvY2F0ZSB4ODZf NjQteGxhdGUucGwiOworKworK29wZW4gU1RET1VULCJ8ICReWCAkeGxhdGUgJGZsYXZvdXIgJG91 dHB1dCI7CisrCisrKCRhcmcxLCRhcmcyLCRhcmczLCRhcmc0KT0kd2luNjQ/KCIlcmN4IiwiJXJk eCIsIiVyOCIsICIlcjkiKSA6CSMgV2luNjQgb3JkZXIKKysJCQkJICgiJXJkaSIsIiVyc2kiLCIl cmR4IiwiJXJjeCIpOwkjIFVuaXggb3JkZXIKKyAKKy1pZiAoJHdpbjY0KQl7ICRhcmcxPSIlcmN4 IjsgJGFyZzI9IiVyZHgiOyB9CistZWxzZQkJeyAkYXJnMT0iJXJkaSI7ICRhcmcyPSIlcnNpIjsg fQorIHByaW50PDxfX187CisgLmV4dGVybgkJT1BFTlNTTF9jcHVpZF9zZXR1cAorKy5oaWRkZW4J CU9QRU5TU0xfY3B1aWRfc2V0dXAKKyAuc2VjdGlvbgkuaW5pdAorIAljYWxsCU9QRU5TU0xfY3B1 aWRfc2V0dXAKKyAKK0BAIC00Niw3ICs1Miw3IEBAIE9QRU5TU0xfcmR0c2M6CisgLnR5cGUJT1BF TlNTTF9pYTMyX2NwdWlkLFxAYWJpLW9tbmlwb3RlbnQKKyAuYWxpZ24JMTYKKyBPUEVOU1NMX2lh MzJfY3B1aWQ6CistCW1vdgklcmJ4LCVyOAorKwltb3YJJXJieCwlcjgJCSMgc2F2ZSAlcmJ4Cisg CisgCXhvcgklZWF4LCVlYXgKKyAJY3B1aWQKK0BAIC03OCw3ICs4NCwxNSBAQCBPUEVOU1NMX2lh MzJfY3B1aWQ6CisgCSMgQU1EIHNwZWNpZmljCisgCW1vdglcJDB4ODAwMDAwMDAsJWVheAorIAlj cHVpZAorLQljbXAJXCQweDgwMDAwMDA4LCVlYXgKKysJY21wCVwkMHg4MDAwMDAwMSwlZWF4Cisr CWpiCS5MaW50ZWwKKysJbW92CSVlYXgsJXIxMGQKKysJbW92CVwkMHg4MDAwMDAwMSwlZWF4Cisr CWNwdWlkCisrCW9yCSVlY3gsJXI5ZAorKwlhbmQJXCQweDAwMDAwODAxLCVyOWQJIyBpc29sYXRl IEFNRCBYT1AgYml0LCAxPDwxMQorKworKwljbXAJXCQweDgwMDAwMDA4LCVyMTBkCisgCWpiCS5M aW50ZWwKKyAKKyAJbW92CVwkMHg4MDAwMDAwOCwlZWF4CitAQCAtODksMTIgKzEwMywxMiBAQCBP UEVOU1NMX2lhMzJfY3B1aWQ6CisgCW1vdglcJDEsJWVheAorIAljcHVpZAorIAlidAlcJDI4LCVl ZHgJCSMgdGVzdCBoeXBlci10aHJlYWRpbmcgYml0CistCWpuYwkuTGRvbmUKKysJam5jCS5MZ2Vu ZXJpYworIAlzaHIJXCQxNiwlZWJ4CQkjIG51bWJlciBvZiBsb2dpY2FsIHByb2Nlc3NvcnMKKyAJ Y21wCSVyMTBiLCVibAorLQlqYQkuTGRvbmUKKysJamEJLkxnZW5lcmljCisgCWFuZAlcJDB4ZWZm ZmZmZmYsJWVkeAkjIH4oMTw8MjgpCistCWptcAkuTGRvbmUKKysJam1wCS5MZ2VuZXJpYworIAor IC5MaW50ZWw6CisgCWNtcAlcJDQsJXIxMWQKK0BAIC0xMTEsMzAgKzEyNSw0NyBAQCBPUEVOU1NM X2lhMzJfY3B1aWQ6CisgLkxub2NhY2hlaW5mbzoKKyAJbW92CVwkMSwlZWF4CisgCWNwdWlkCisr CWFuZAlcJDB4YmZlZmZmZmYsJWVkeAkjIGZvcmNlIHJlc2VydmVkIGJpdHMgdG8gMAorIAljbXAJ XCQwLCVyOWQKKyAJam5lCS5Mbm90aW50ZWwKKy0Jb3IJXCQweDAwMTAwMDAwLCVlZHgJIyB1c2Ug cmVzZXJ2ZWQgMjB0aCBiaXQgdG8gZW5nYWdlIFJDNF9DSEFSCisrCW9yCVwkMHg0MDAwMDAwMCwl ZWR4CSMgc2V0IHJlc2VydmVkIGJpdCMzMCBvbiBJbnRlbCBDUFVzCisgCWFuZAlcJDE1LCVhaAor IAljbXAJXCQxNSwlYWgJCSMgZXhhbWluZSBGYW1pbHkgSUQKKy0JamUJLkxub3RpbnRlbAorLQlv cglcJDB4NDAwMDAwMDAsJWVkeAkjIHVzZSByZXNlcnZlZCBiaXQgdG8gc2tpcCB1bnJvbGxlZCBs b29wCisrCWpuZQkuTG5vdGludGVsCisrCW9yCVwkMHgwMDEwMDAwMCwlZWR4CSMgc2V0IHJlc2Vy dmVkIGJpdCMyMCB0byBlbmdhZ2UgUkM0X0NIQVIKKyAuTG5vdGludGVsOgorIAlidAlcJDI4LCVl ZHgJCSMgdGVzdCBoeXBlci10aHJlYWRpbmcgYml0CistCWpuYwkuTGRvbmUKKysJam5jCS5MZ2Vu ZXJpYworIAlhbmQJXCQweGVmZmZmZmZmLCVlZHgJIyB+KDE8PDI4KQorIAljbXAJXCQwLCVyMTBk CistCWplCS5MZG9uZQorKwlqZQkuTGdlbmVyaWMKKyAKKyAJb3IJXCQweDEwMDAwMDAwLCVlZHgJ IyAxPDwyOAorIAlzaHIJXCQxNiwlZWJ4CisgCWNtcAlcJDEsJWJsCQkJIyBzZWUgaWYgY2FjaGUg aXMgc2hhcmVkCistCWphCS5MZG9uZQorKwlqYQkuTGdlbmVyaWMKKyAJYW5kCVwkMHhlZmZmZmZm ZiwlZWR4CSMgfigxPDwyOCkKKysuTGdlbmVyaWM6CisrCWFuZAlcJDB4MDAwMDA4MDAsJXI5ZAkj IGlzb2xhdGUgQU1EIFhPUCBmbGFnCisrCWFuZAlcJDB4ZmZmZmY3ZmYsJWVjeAorKwlvcgklZWN4 LCVyOWQJCSMgbWVyZ2UgQU1EIFhPUCBmbGFnCisrCisrCW1vdgklZWR4LCVyMTBkCQkjICVyOWQ6 JXIxMGQgaXMgY29weSBvZiAlZWN4OiVlZHgKKysJYnQJXCQyNywlcjlkCQkjIGNoZWNrIE9TWFNB VkUgYml0CisrCWpuYwkuTGNsZWFyX2F2eAorKwl4b3IJJWVjeCwlZWN4CQkjIFhDUjAKKysJLmJ5 dGUJMHgwZiwweDAxLDB4ZDAJCSMgeGdldGJ2CisrCWFuZAlcJDYsJWVheAkJIyBpc29sYXRlIFhN TSBhbmQgWU1NIHN0YXRlIHN1cHBvcnQKKysJY21wCVwkNiwlZWF4CisrCWplCS5MZG9uZQorKy5M Y2xlYXJfYXZ4OgorKwltb3YJXCQweGVmZmZlN2ZmLCVlYXgJIyB+KDE8PDI4fDE8PDEyfDE8PDEx KQorKwlhbmQJJWVheCwlcjlkCQkjIGNsZWFyIEFWWCwgRk1BIGFuZCBBTUQgWE9QIGJpdHMKKyAu TGRvbmU6CistCXNobAlcJDMyLCVyY3gKKy0JbW92CSVlZHgsJWVheAorLQltb3YJJXI4LCVyYngK Ky0Jb3IJJXJjeCwlcmF4CisrCXNobAlcJDMyLCVyOQorKwltb3YJJXIxMGQsJWVheAorKwltb3YJ JXI4LCVyYngJCSMgcmVzdG9yZSAlcmJ4CisrCW9yCSVyOSwlcmF4CisgCXJldAorIC5zaXplCU9Q RU5TU0xfaWEzMl9jcHVpZCwuLU9QRU5TU0xfaWEzMl9jcHVpZAorIAoKZGlmZiAtLWdpdCBhL29w ZW5zc2wuc3BlYyBiL29wZW5zc2wuc3BlYwppbmRleCBjYjU1MGM4Li5lN2VlYTYwIDEwMDY0NAot LS0gYS9vcGVuc3NsLnNwZWMKKysrIGIvb3BlbnNzbC5zcGVjCkBAIC0yMSw3ICsyMSw3IEBACiBT dW1tYXJ5OiBBIGdlbmVyYWwgcHVycG9zZSBjcnlwdG9ncmFwaHkgbGlicmFyeSB3aXRoIFRMUyBp bXBsZW1lbnRhdGlvbgogTmFtZTogb3BlbnNzbAogVmVyc2lvbjogMS4wLjBkCi1SZWxlYXNlOiA3 JXs/ZGlzdH0KK1JlbGVhc2U6IDglez9kaXN0fQogIyBXZSByZW1vdmUgY2VydGFpbiBwYXRlbnRl ZCBhbGdvcml0aG1zIGZyb20gdGhlIG9wZW5zc2wgc291cmNlIHRhcmJhbGwKICMgd2l0aCB0aGUg aG9iYmxlLW9wZW5zc2wgc2NyaXB0IHdoaWNoIGlzIGluY2x1ZGVkIGJlbG93LgogU291cmNlOiBv cGVuc3NsLSV7dmVyc2lvbn0tdXNhLnRhci5iejIKQEAgLTMyLDggKzMyLDYgQEAgU291cmNlODog b3BlbnNzbC10aHJlYWQtdGVzdC5jCiBTb3VyY2U5OiBvcGVuc3NsY29uZi1uZXcuaAogU291cmNl MTA6IG9wZW5zc2xjb25mLW5ldy13YXJuaW5nLmgKIFNvdXJjZTExOiBSRUFETUUuRklQUwotIyBJ bnRlbCBhY2NlbGVyYXRpb24gZW5naW5lIGJhY2twb3J0ZWQgZnJvbSB1cHN0cmVhbSBieSBJbnRl bAotU291cmNlMTI6IGludGVsLWFjY2VsLTEuMy50YXIuZ3oKICMgQnVpbGQgY2hhbmdlcwogUGF0 Y2gwOiBvcGVuc3NsLTEuMC4wLWJldGE0LXJlZGhhdC5wYXRjaAogUGF0Y2gxOiBvcGVuc3NsLTEu MC4wLWJldGEzLWRlZmF1bHRzLnBhdGNoCkBAIC00Miw3ICs0MCw2IEBAIFBhdGNoNDogb3BlbnNz bC0xLjAuMC1iZXRhNS1lbmdpbmVzZGlyLnBhdGNoCiBQYXRjaDU6IG9wZW5zc2wtMC45LjhhLW5v LXJwYXRoLnBhdGNoCiBQYXRjaDY6IG9wZW5zc2wtMC45LjhiLXRlc3QtdXNlLWxvY2FsaG9zdC5w YXRjaAogUGF0Y2g3OiBvcGVuc3NsLTEuMC4wLXRpbWV6b25lLnBhdGNoCi1QYXRjaDEwOiBpbnRl bC1hY2NlbC0xLjMtYnVpbGQucGF0Y2gKICMgQnVnIGZpeGVzCiBQYXRjaDIzOiBvcGVuc3NsLTEu MC4wLWJldGE0LWRlZmF1bHQtcGF0aHMucGF0Y2gKIFBhdGNoMjQ6IG9wZW5zc2wtMC45LjhqLWJh ZC1taW1lLnBhdGNoCkBAIC03Nyw2ICs3NCw3IEBAIFBhdGNoNjA6IG9wZW5zc2wtMS4wLjBkLWFw cHMtZGdzdC5wYXRjaAogUGF0Y2g2MTogb3BlbnNzbC0xLjAuMGQtY2F2cy5wYXRjaAogUGF0Y2g2 Mjogb3BlbnNzbC0xLjAuMC1maXBzLWFlc25pLnBhdGNoCiBQYXRjaDYzOiBvcGVuc3NsLTEuMC4w ZC14bXBwLXN0YXJ0dGxzLnBhdGNoCitQYXRjaDY0OiBvcGVuc3NsLTEuMC4wZC1pbnRlbG9wdHMu cGF0Y2gKICMgQmFja3BvcnRlZCBmaXhlcyBpbmNsdWRpbmcgc2VjdXJpdHkgZml4ZXMKIFBhdGNo ODE6IG9wZW5zc2wtMS4wLjBkLXBhZGxvY2s2NC5wYXRjaAogCkBAIC0xMjgsMTkgKzEyNiwxNiBA QCBwYWNrYWdlIHByb3ZpZGVzIFBlcmwgc2NyaXB0cyBmb3IgY29udmVydGluZyBjZXJ0aWZpY2F0 ZXMgYW5kIGtleXMKIGZyb20gb3RoZXIgZm9ybWF0cyB0byB0aGUgZm9ybWF0cyB1c2VkIGJ5IHRo ZSBPcGVuU1NMIHRvb2xraXQuCiAKICVwcmVwCi0lc2V0dXAgLXEgLW4gJXtuYW1lfS0le3ZlcnNp b259IC1hIDEyCislc2V0dXAgLXEgLW4gJXtuYW1lfS0le3ZlcnNpb259CiAKICV7U09VUkNFMX0g PiAvZGV2L251bGwKICVwYXRjaDAgLXAxIC1iIC5yZWRoYXQKICVwYXRjaDEgLXAxIC1iIC5kZWZh dWx0cwogJXBhdGNoMyAtcDEgLWIgLnNvdmVyc2lvbgotJXBhdGNoNCAtcDEgLWIgLmVuZ2luZXNk aXIKKyVwYXRjaDQgLXAxIC1iIC5lbmdpbmVzZGlyICV7P19yYXdidWlsZH0KICVwYXRjaDUgLXAx IC1iIC5uby1ycGF0aAogJXBhdGNoNiAtcDEgLWIgLnVzZS1sb2NhbGhvc3QKICVwYXRjaDcgLXAx IC1iIC50aW1lem9uZQotcHVzaGQgaW50ZWwtYWNjZWwtMS4zCi0lcGF0Y2gxMCAtcDEgLWIgLmlh YnVpbGQKLXBvcGQKIAogJXBhdGNoMjMgLXAxIC1iIC5kZWZhdWx0LXBhdGhzCiAlcGF0Y2gyNCAt cDEgLWIgLmJhZC1taW1lCkBAIC0xNzUsNiArMTcwLDcgQEAgcG9wZAogJXBhdGNoNjEgLXAxIC1i IC5jYXZzCiAlcGF0Y2g2MiAtcDEgLWIgLmZpcHMtYWVzbmkKICVwYXRjaDYzIC1wMSAtYiAuc3Rh cnR0bHMKKyVwYXRjaDY0IC1wMSAtYiAuaW50ZWxvcHRzCiAKICVwYXRjaDgxIC1wMSAtYiAucGFk bG9jazY0CiAKQEAgLTIyNCw3ICsyMjAsNyBAQCBzc2xhcmNoPWxpbnV4LWdlbmVyaWMzMgogCXps aWIgZW5hYmxlLWNhbWVsbGlhIGVuYWJsZS1zZWVkIGVuYWJsZS10bHNleHQgZW5hYmxlLXJmYzM3 NzkgXAogCWVuYWJsZS1jbXMgZW5hYmxlLW1kMiBuby1pZGVhIG5vLW1kYzIgbm8tcmM1IG5vLWVj IG5vLWVjZGggbm8tZWNkc2EgXAogCS0td2l0aC1rcmI1LWZsYXZvcj1NSVQgLS1lbmdpbmVzZGly PSV7X2xpYmRpcn0vb3BlbnNzbC9lbmdpbmVzIFwKLQktLXdpdGgta3JiNS1kaXI9L3VzciBzaGFy ZWQgICR7c3NsYXJjaH0gZmlwcworCS0td2l0aC1rcmI1LWRpcj0vdXNyIHNoYXJlZCAgJHtzc2xh cmNofSAlez8hbm9maXBzOmZpcHN9CiAKICMgQWRkIC1XYSwtLW5vZXhlY3N0YWNrIGhlcmUgc28g dGhhdCBsaWJjcnlwdG8ncyBhc3NlbWJsZXIgbW9kdWxlcyB3aWxsIGJlCiAjIG1hcmtlZCBhcyBu b3QgcmVxdWlyaW5nIGFuIGV4ZWN1dGFibGUgc3RhY2suCkBAIC0yMzgsMTIgKzIzNCw2IEBAIG1h a2UgcmVoYXNoCiAjIE92ZXJ3cml0ZSBGSVBTIFJFQURNRQogY3AgLWYgJXtTT1VSQ0UxMX0gLgog Ci0laWZhcmNoICVpeDg2IHg4Nl82NAotcHVzaGQgaW50ZWwtYWNjZWwtMS4zCi1tYWtlCi1wb3Bk Ci0lZW5kaWYKLQogJWNoZWNrCiAjIFZlcmlmeSB0aGF0IHdoYXQgd2FzIGNvbXBpbGVkIGFjdHVh bGx5IHdvcmtzLgogCkBAIC0zNzEsMTIgKzM2MSw2IEBAIHJtIC1yZiAkUlBNX0JVSUxEX1JPT1Qv JXtfYmluZGlyfS9vcGVuc3NsX2ZpcHNfZmluZ2VycHJpbnQKIHJtIC1yZiAkUlBNX0JVSUxEX1JP T1QvJXtfbGliZGlyfS9maXBzX3ByZW1haW4uKgogcm0gLXJmICRSUE1fQlVJTERfUk9PVC8le19s aWJkaXJ9L2ZpcHNjYW5pc3Rlci4qCiAKLSVpZmFyY2ggJWl4ODYgeDg2XzY0Ci1wdXNoZCBpbnRl bC1hY2NlbC0xLjMKLWluc3RhbGwgLW03NTUgbGliaW50ZWwtYWNjZWwuc28gJFJQTV9CVUlMRF9S T09UJXtfbGliZGlyfS9vcGVuc3NsL2VuZ2luZXMKLXBvcGQKLSVlbmRpZgotCiAlY2xlYW4KIFsg IiRSUE1fQlVJTERfUk9PVCIgIT0gIi8iIF0gJiYgcm0gLXJmICRSUE1fQlVJTERfUk9PVAogCkBA IC00MzgsNiArNDIyLDEyIEBAIHBvcGQKICVwb3N0dW4gLXAgL3NiaW4vbGRjb25maWcKIAogJWNo YW5nZWxvZworKiBXZWQgQXVnIDI0IDIwMTEgVG9tYXMgTXJheiA8dG1yYXpAcmVkaGF0LmNvbT4g MS4wLjBkLTgKKy0gZHJvcCB0aGUgc2VwYXJhdGUgZW5naW5lIGZvciBJbnRlbCBhY2NlbGVyYXRp b24gaW1wcm92ZW1lbnRzCisgIGFuZCBtZXJnZSBpbiB0aGUgQUVTLU5JLCBTSEExLCBhbmQgUkM0 IG9wdGltaXphdGlvbnMKKy0gYWRkIHN1cHBvcnQgZm9yIE9QRU5TU0xfRElTQUJMRV9BRVNfTkkg ZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgdGhhdCBkaXNhYmxlcyB0aGUgQUVTLU5JIHN1cHBvcnQK KwogKiBUdWUgSnVsIDI2IDIwMTEgVG9tYXMgTXJheiA8dG1yYXpAcmVkaGF0LmNvbT4gMS4wLjBk LTcKIC0gY29ycmVjdCBvcGVuc3NsIGNtcyBoZWxwIG91dHB1dCAoIzYzNjI2NikKIC0gbW9yZSB0 b2xlcmFudCBzdGFydHRscyBkZXRlY3Rpb24gaW4gWE1QUCBwcm90b2NvbCAoIzYwODIzOSkKCmRp ZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCAzMDdlYmJlLi4zMDJhNzM0IDEwMDY0 NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEsMiArMSBAQAogNTMxYzE2MjdmZjk3 MDFjYjg1NDBlZTNiZDAzZGU1ZDcgIG9wZW5zc2wtMS4wLjBkLXVzYS50YXIuYnoyCi1lOTFmZTJk MzViNjE2OTc5M2RkM2I0NmUwNTI2OTI1YiAgaW50ZWwtYWNjZWwtMS4zLnRhci5nego=