[From nobody Mon Feb 1 11:50:59 2010 Received: from TK5EX14MBXC122.redmond.corp.microsoft.com ([169.254.2.16]) by TK5EX14MLTC101.redmond.corp.microsoft.com ([157.54.79.178]) with mapi; Mon, 1 Feb 2010 08:49:12 -0800 From: Tomas Matousek <Tomas.Matousek@microsoft.com> To: IronRuby External Code Reviewers <irbrev@microsoft.com> CC: "ironruby-core@rubyforge.org" <ironruby-core@rubyforge.org> Subject: Code Review: bindingandyamlfxcop Thread-Topic: Code Review: bindingandyamlfxcop Thread-Index: AcqjXnsR664r6aV1Re6Do7FO/33TLA== Date: Mon, 1 Feb 2010 16:49:12 +0000 Message-ID: <4B342496A3EFEB48839E10BB4BF5964C384AE0F3@TK5EX14MBXC122.redmond.corp.microsoft.com> Accept-Language: en-US Content-Language: en-US X-MS-Exchange-Organization-AuthAs: Internal X-MS-Exchange-Organization-AuthMechanism: 04 X-MS-Exchange-Organization-AuthSource: TK5EX14MLTC101.redmond.corp.microsoft.com X-MS-Has-Attach: yes X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-MS-TNEF-Correlator: Content-Type: multipart/mixed; boundary="_002_4B342496A3EFEB48839E10BB4BF5964C384AE0F3TK5EX14MBXC122r_" MIME-Version: 1.0 --_002_4B342496A3EFEB48839E10BB4BF5964C384AE0F3TK5EX14MBXC122r_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable tfpt review "/shelveset:bindingandyamlfxcop;REDMOND\tomat" Comment : Kernel#binding captures receiver and eval uses it as "self". Adds FxCop configuration to yaml .csproj. Tomas --_002_4B342496A3EFEB48839E10BB4BF5964C384AE0F3TK5EX14MBXC122r_ Content-Type: application/octet-stream; name="bindingandyamlfxcop.diff" Content-Description: bindingandyamlfxcop.diff Content-Disposition: attachment; filename="bindingandyamlfxcop.diff"; size=33256; creation-date="Mon, 01 Feb 2010 16:47:56 GMT"; modification-date="Mon, 01 Feb 2010 16:47:56 GMT" Content-Transfer-Encoding: base64 ZWRpdDogJC9EZXYxMC9mZWF0dXJlL3ZzX2xhbmdzMDFfcy9NZXJsaW4vRXh0ZXJuYWwuTENBX1JF U1RSSUNURUQvTGFuZ3VhZ2VzL0lyb25SdWJ5L3lhbWwvSXJvblJ1YnkuTGlicmFyaWVzLllhbWwv QnVpbHRpbnNPcHMuY3M7QzE1NDQ1NzUNCkZpbGU6IEJ1aWx0aW5zT3BzLmNzDQo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQotLS0gJC9EZXYxMC9mZWF0dXJlL3ZzX2xhbmdzMDFfcy9NZXJsaW4vRXh0ZXJuYWwuTENBX1JF U1RSSUNURUQvTGFuZ3VhZ2VzL0lyb25SdWJ5L3lhbWwvSXJvblJ1YnkuTGlicmFyaWVzLllhbWwv QnVpbHRpbnNPcHMuY3M7QzE1NDQ1NzUgIChzZXJ2ZXIpICAgIDEvMzEvMjAxMCA3OjUzIFBNDQor KysgU2hlbHZlZCBDaGFuZ2U6ICQvRGV2MTAvZmVhdHVyZS92c19sYW5nczAxX3MvTWVybGluL0V4 dGVybmFsLkxDQV9SRVNUUklDVEVEL0xhbmd1YWdlcy9Jcm9uUnVieS95YW1sL0lyb25SdWJ5Lkxp YnJhcmllcy5ZYW1sL0J1aWx0aW5zT3BzLmNzO2JpbmRpbmdhbmR5YW1sZnhjb3ANCkBAIC0xNTEs NyArMTUxLDcgQEANCiAgICAgICAgICAgICBzdHJpbmcgbmFtZSA9IHNlbGYuSW1tZWRpYXRlQ2xh c3MuR2V0Tm9uU2luZ2xldG9uQ2xhc3MoKS5OYW1lOw0KICAgICAgICAgICAgIGlmIChuYW1lICE9 IG51bGwpIHsNCiAgICAgICAgICAgICAgICAgc3RyaW5nIHN0cnVjdFByZWZpeCA9ICJTdHJ1Y3Q6 OiI7DQotICAgICAgICAgICAgICAgIGlmIChuYW1lLlN0YXJ0c1dpdGgoc3RydWN0UHJlZml4KSkg ew0KKyAgICAgICAgICAgICAgICBpZiAobmFtZS5TdGFydHNXaXRoKHN0cnVjdFByZWZpeCwgU3Ry aW5nQ29tcGFyaXNvbi5PcmRpbmFsKSkgew0KICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5h bWUuU3Vic3RyaW5nKHN0cnVjdFByZWZpeC5MZW5ndGgpOw0KICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgfQ0KQEAgLTIzOSw3ICsyMzksNyBAQA0KICAgICAgICAgICAgIHN0cmluZyBz dHIgPSBzZWxmLlRvU3RyaW5nKCk7DQogDQogICAgICAgICAgICAgU2NhbGFyUXVvdGluZ1N0eWxl IHN0eWxlID0gU2NhbGFyUXVvdGluZ1N0eWxlLk5vbmU7DQotICAgICAgICAgICAgaWYgKHN0ci5T dGFydHNXaXRoKCI6IikpIHsNCisgICAgICAgICAgICBpZiAoc3RyLlN0YXJ0c1dpdGgoIjoiLCBT dHJpbmdDb21wYXJpc29uLk9yZGluYWwpKSB7DQogICAgICAgICAgICAgICAgIHN0eWxlID0gU2Nh bGFyUXVvdGluZ1N0eWxlLkRvdWJsZTsNCiAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAg ICAgICAgICBzdHlsZSA9IHJlcC5HZXRZYW1sU3R5bGUoc2VsZik7DQo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQplZGl0 OiAkL0RldjEwL2ZlYXR1cmUvdnNfbGFuZ3MwMV9zL01lcmxpbi9FeHRlcm5hbC5MQ0FfUkVTVFJJ Q1RFRC9MYW5ndWFnZXMvSXJvblJ1YnkveWFtbC9Jcm9uUnVieS5MaWJyYXJpZXMuWWFtbC9Jcm9u UnVieS5MaWJyYXJpZXMuWWFtbC5jc3Byb2o7QzE0OTYyNTgNCkZpbGU6IElyb25SdWJ5LkxpYnJh cmllcy5ZYW1sLmNzcHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tICQvRGV2MTAvZmVhdHVyZS92c19sYW5n czAxX3MvTWVybGluL0V4dGVybmFsLkxDQV9SRVNUUklDVEVEL0xhbmd1YWdlcy9Jcm9uUnVieS95 YW1sL0lyb25SdWJ5LkxpYnJhcmllcy5ZYW1sL0lyb25SdWJ5LkxpYnJhcmllcy5ZYW1sLmNzcHJv ajtDMTQ5NjI1OCAgKHNlcnZlcikgICAgMS8zMS8yMDEwIDc6NTMgUE0NCisrKyBTaGVsdmVkIENo YW5nZTogJC9EZXYxMC9mZWF0dXJlL3ZzX2xhbmdzMDFfcy9NZXJsaW4vRXh0ZXJuYWwuTENBX1JF U1RSSUNURUQvTGFuZ3VhZ2VzL0lyb25SdWJ5L3lhbWwvSXJvblJ1YnkuTGlicmFyaWVzLllhbWwv SXJvblJ1YnkuTGlicmFyaWVzLllhbWwuY3Nwcm9qO2JpbmRpbmdhbmR5YW1sZnhjb3ANCkBAIC0x OSw2ICsxOSwxOCBAQA0KICAgICA8U2lnbmVkU3ltIENvbmRpdGlvbj0iJyQoU2lnbkFzc2VtYmx5 KScgPT0gJ3RydWUnIj5TSUdORUQ8L1NpZ25lZFN5bT4NCiAgICAgPERlbGF5U2lnbj50cnVlPC9E ZWxheVNpZ24+DQogICA8L1Byb3BlcnR5R3JvdXA+DQorICA8UHJvcGVydHlHcm91cCBDb25kaXRp b249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ0Z4Q29wfEFueUNQVScgIj4N CisgICAgPERlYnVnVHlwZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+DQorICAgIDxPcHRpbWl6ZT50cnVl PC9PcHRpbWl6ZT4NCisgICAgPE91dHB1dFBhdGg+Li5cLi5cLi5cLi5cLi5cTWFpblxiaW5cRnhD b3BcPC9PdXRwdXRQYXRoPg0KKyAgICA8RGVmaW5lQ29uc3RhbnRzPlRSQUNFOyQoU2lnbmVkU3lt KTtDTFIyPC9EZWZpbmVDb25zdGFudHM+DQorICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9y UmVwb3J0Pg0KKyAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4NCisgICAgPFRyZWF0 V2FybmluZ3NBc0Vycm9ycz50cnVlPC9UcmVhdFdhcm5pbmdzQXNFcnJvcnM+DQorICAgIDxSdW5D b2RlQW5hbHlzaXM+dHJ1ZTwvUnVuQ29kZUFuYWx5c2lzPg0KKyAgICA8Q29kZUFuYWx5c2lzUnVs ZXM+LU1pY3Jvc29mdC5Vc2FnZSNDQTIyMDk7KyFNaWNyb3NvZnQuUG9ydGFiaWxpdHkjQ0ExOTAz Oy0hTWljcm9zb2Z0LkRlc2lnbiNDQTEwMTI7LSFNaWNyb3NvZnQuRGVzaWduI0NBMjIxMDstIU1p Y3Jvc29mdC5EZXNpZ24jQ0ExMDQwOy0hTWljcm9zb2Z0LkRlc2lnbiNDQTEwMDU7LSFNaWNyb3Nv ZnQuRGVzaWduI0NBMTAyMDstIU1pY3Jvc29mdC5EZXNpZ24jQ0ExMDIxOy0hTWljcm9zb2Z0LkRl c2lnbiNDQTEwMTA7LSFNaWNyb3NvZnQuRGVzaWduI0NBMTAxMTstIU1pY3Jvc29mdC5EZXNpZ24j Q0ExMDA5Oy0hTWljcm9zb2Z0LkRlc2lnbiNDQTEwNTA7LSFNaWNyb3NvZnQuRGVzaWduI0NBMTAy NjstIU1pY3Jvc29mdC5EZXNpZ24jQ0ExMDE5Oy0hTWljcm9zb2Z0LkRlc2lnbiNDQTEwMzE7LSFN aWNyb3NvZnQuRGVzaWduI0NBMTA0NzstIU1pY3Jvc29mdC5EZXNpZ24jQ0ExMDAwOy0hTWljcm9z b2Z0LkRlc2lnbiNDQTEwNDg7LSFNaWNyb3NvZnQuRGVzaWduI0NBMTA1MTstIU1pY3Jvc29mdC5E ZXNpZ24jQ0ExMDAyOy0hTWljcm9zb2Z0LkRlc2lnbiNDQTEwNjE7LSFNaWNyb3NvZnQuRGVzaWdu I0NBMTAwNjstIU1pY3Jvc29mdC5EZXNpZ24jQ0ExMDQ2Oy0hTWljcm9zb2Z0LkRlc2lnbiNDQTEw NDU7LSFNaWNyb3NvZnQuRGVzaWduI0NBMTA2NTstIU1pY3Jvc29mdC5EZXNpZ24jQ0ExMDM4Oy0h TWljcm9zb2Z0LkRlc2lnbiNDQTEwMDg7LSFNaWNyb3NvZnQuRGVzaWduI0NBMTAyODstIU1pY3Jv c29mdC5EZXNpZ24jQ0ExMDY0Oy0hTWljcm9zb2Z0LkRlc2lnbiNDQTEwMDQ7LSFNaWNyb3NvZnQu RGVzaWduI0NBMTAzNTstIU1pY3Jvc29mdC5EZXNpZ24jQ0ExMDYzOy0hTWljcm9zb2Z0LkRlc2ln biNDQTEwMzI7LSFNaWNyb3NvZnQuRGVzaWduI0NBMTAyMzstIU1pY3Jvc29mdC5EZXNpZ24jQ0Ex MDMzOy0hTWljcm9zb2Z0LkRlc2lnbiNDQTEwMzk7LSFNaWNyb3NvZnQuRGVzaWduI0NBMTAxNjst IU1pY3Jvc29mdC5EZXNpZ24jQ0ExMDE0Oy0hTWljcm9zb2Z0LkRlc2lnbiNDQTEwMTc7LSFNaWNy b3NvZnQuRGVzaWduI0NBMTAxODstIU1pY3Jvc29mdC5EZXNpZ24jQ0ExMDI3Oy0hTWljcm9zb2Z0 LkRlc2lnbiNDQTEwNTk7LSFNaWNyb3NvZnQuRGVzaWduI0NBMTA2MDstIU1pY3Jvc29mdC5EZXNp Z24jQ0ExMDM0Oy0hTWljcm9zb2Z0LkRlc2lnbiNDQTEwMTM7LSFNaWNyb3NvZnQuRGVzaWduI0NB MTAzNjstIU1pY3Jvc29mdC5EZXNpZ24jQ0ExMDQ0Oy0hTWljcm9zb2Z0LkRlc2lnbiNDQTEwNDE7 LSFNaWNyb3NvZnQuRGVzaWduI0NBMTAyNTstIU1pY3Jvc29mdC5EZXNpZ24jQ0ExMDUyOy0hTWlj cm9zb2Z0LkRlc2lnbiNDQTEwNTM7LSFNaWNyb3NvZnQuRGVzaWduI0NBMTA1NzstIU1pY3Jvc29m dC5EZXNpZ24jQ0ExMDU4Oy0hTWljcm9zb2Z0LkRlc2lnbiNDQTEwMDE7LSFNaWNyb3NvZnQuRGVz aWduI0NBMTA0OTstIU1pY3Jvc29mdC5EZXNpZ24jQ0ExMDU0Oy0hTWljcm9zb2Z0LkRlc2lnbiND QTEwNTY7LSFNaWNyb3NvZnQuRGVzaWduI0NBMTA1NTstIU1pY3Jvc29mdC5EZXNpZ24jQ0ExMDMw Oy0hTWljcm9zb2Z0LkRlc2lnbiNDQTEwMDM7LSFNaWNyb3NvZnQuRGVzaWduI0NBMTAwNzstIU1p Y3Jvc29mdC5EZXNpZ24jQ0ExMDQzOy0hTWljcm9zb2Z0LkRlc2lnbiNDQTEwMjQ7KyFNaWNyb3Nv ZnQuR2xvYmFsaXphdGlvbiNDQTEzMDE7KyFNaWNyb3NvZnQuR2xvYmFsaXphdGlvbiNDQTEzMDI7 LSFNaWNyb3NvZnQuR2xvYmFsaXphdGlvbiNDQTEzMDg7KyFNaWNyb3NvZnQuR2xvYmFsaXphdGlv biNDQTEzMDY7KyFNaWNyb3NvZnQuR2xvYmFsaXphdGlvbiNDQTEzMDQ7LSFNaWNyb3NvZnQuR2xv YmFsaXphdGlvbiNDQTEzMDU7KyFNaWNyb3NvZnQuR2xvYmFsaXphdGlvbiNDQTIxMDE7KyFNaWNy b3NvZnQuR2xvYmFsaXphdGlvbiNDQTEzMDA7KyFNaWNyb3NvZnQuR2xvYmFsaXphdGlvbiNDQTEz MDc7KyFNaWNyb3NvZnQuR2xvYmFsaXphdGlvbiNDQTEzMDk7LSFNaWNyb3NvZnQuSW50ZXJvcGVy YWJpbGl0eSNDQTE0MDM7LSFNaWNyb3NvZnQuSW50ZXJvcGVyYWJpbGl0eSNDQTE0MDY7LSFNaWNy b3NvZnQuSW50ZXJvcGVyYWJpbGl0eSNDQTE0MTM7LSFNaWNyb3NvZnQuSW50ZXJvcGVyYWJpbGl0 eSNDQTE0MDI7LSFNaWNyb3NvZnQuSW50ZXJvcGVyYWJpbGl0eSNDQTE0MDc7LSFNaWNyb3NvZnQu SW50ZXJvcGVyYWJpbGl0eSNDQTE0MDQ7LSFNaWNyb3NvZnQuSW50ZXJvcGVyYWJpbGl0eSNDQTE0 MTA7LSFNaWNyb3NvZnQuSW50ZXJvcGVyYWJpbGl0eSNDQTE0MTE7LSFNaWNyb3NvZnQuSW50ZXJv cGVyYWJpbGl0eSNDQTE0MDU7LSFNaWNyb3NvZnQuSW50ZXJvcGVyYWJpbGl0eSNDQTE0MDk7LSFN aWNyb3NvZnQuSW50ZXJvcGVyYWJpbGl0eSNDQTE0MTU7LSFNaWNyb3NvZnQuSW50ZXJvcGVyYWJp bGl0eSNDQTE0MDg7LSFNaWNyb3NvZnQuSW50ZXJvcGVyYWJpbGl0eSNDQTE0MTQ7LSFNaWNyb3Nv ZnQuSW50ZXJvcGVyYWJpbGl0eSNDQTE0MTI7LSFNaWNyb3NvZnQuSW50ZXJvcGVyYWJpbGl0eSND QTE0MDA7LSFNaWNyb3NvZnQuSW50ZXJvcGVyYWJpbGl0eSNDQTE0MDE7LSFNaWNyb3NvZnQuTWFp bnRhaW5hYmlsaXR5I0NBMTUwNjstIU1pY3Jvc29mdC5NYWludGFpbmFiaWxpdHkjQ0ExNTAyOy0h TWljcm9zb2Z0Lk1haW50YWluYWJpbGl0eSNDQTE1MDE7LSFNaWNyb3NvZnQuTWFpbnRhaW5hYmls aXR5I0NBMTUwNTstIU1pY3Jvc29mdC5NYWludGFpbmFiaWxpdHkjQ0ExNTA0Oy0hTWljcm9zb2Z0 Lk1haW50YWluYWJpbGl0eSNDQTE1MDA7LSFNaWNyb3NvZnQuTW9iaWxpdHkjQ0ExNjAwOy0hTWlj cm9zb2Z0Lk1vYmlsaXR5I0NBMTYwMTstIU1pY3Jvc29mdC5OYW1pbmcjQ0ExNzAyOy0hTWljcm9z b2Z0Lk5hbWluZyNDQTE3MDA7LSFNaWNyb3NvZnQuTmFtaW5nI0NBMTcxMjstIU1pY3Jvc29mdC5O YW1pbmcjQ0ExNzEzOy0hTWljcm9zb2Z0Lk5hbWluZyNDQTE3MTQ7LSFNaWNyb3NvZnQuTmFtaW5n I0NBMTcwOTstIU1pY3Jvc29mdC5OYW1pbmcjQ0ExNzA0Oy0hTWljcm9zb2Z0Lk5hbWluZyNDQTE3 MDg7LSFNaWNyb3NvZnQuTmFtaW5nI0NBMTcxNTstIU1pY3Jvc29mdC5OYW1pbmcjQ0ExNzEwOy0h TWljcm9zb2Z0Lk5hbWluZyNDQTE3MjA7LSFNaWNyb3NvZnQuTmFtaW5nI0NBMTcwNzstIU1pY3Jv c29mdC5OYW1pbmcjQ0ExNzIyOy0hTWljcm9zb2Z0Lk5hbWluZyNDQTE3MTE7LSFNaWNyb3NvZnQu TmFtaW5nI0NBMTcxNjstIU1pY3Jvc29mdC5OYW1pbmcjQ0ExNzE3Oy0hTWljcm9zb2Z0Lk5hbWlu ZyNDQTE3MjU7LSFNaWNyb3NvZnQuTmFtaW5nI0NBMTcxOTstIU1pY3Jvc29mdC5OYW1pbmcjQ0Ex NzIxOy0hTWljcm9zb2Z0Lk5hbWluZyNDQTE3MDE7LSFNaWNyb3NvZnQuTmFtaW5nI0NBMTcwMzst IU1pY3Jvc29mdC5OYW1pbmcjQ0ExNzI0Oy0hTWljcm9zb2Z0Lk5hbWluZyNDQTE3MjY7LSFNaWNy b3NvZnQuUGVyZm9ybWFuY2UjQ0ExODA5Oy0hTWljcm9zb2Z0LlBlcmZvcm1hbmNlI0NBMTgxMTst IU1pY3Jvc29mdC5QZXJmb3JtYW5jZSNDQTE4MTI7LSFNaWNyb3NvZnQuUGVyZm9ybWFuY2UjQ0Ex ODEzOyshTWljcm9zb2Z0LlBlcmZvcm1hbmNlI0NBMTgyMzstIU1pY3Jvc29mdC5QZXJmb3JtYW5j ZSNDQTE4MDA7LSFNaWNyb3NvZnQuUGVyZm9ybWFuY2UjQ0ExODA1Oy0hTWljcm9zb2Z0LlBlcmZv cm1hbmNlI0NBMTgxMDsrIU1pY3Jvc29mdC5QZXJmb3JtYW5jZSNDQTE4MjQ7LSFNaWNyb3NvZnQu UGVyZm9ybWFuY2UjQ0ExODIyOy0hTWljcm9zb2Z0LlBlcmZvcm1hbmNlI0NBMTgxNTstIU1pY3Jv c29mdC5QZXJmb3JtYW5jZSNDQTE4MTQ7LSFNaWNyb3NvZnQuUGVyZm9ybWFuY2UjQ0ExODE5Oy0h TWljcm9zb2Z0LlBlcmZvcm1hbmNlI0NBMTgyMTstIU1pY3Jvc29mdC5QZXJmb3JtYW5jZSNDQTE4 MDQ7LSFNaWNyb3NvZnQuUGVyZm9ybWFuY2UjQ0ExODIwOy0hTWljcm9zb2Z0LlBlcmZvcm1hbmNl I0NBMTgwMjsrIU1pY3Jvc29mdC5Qb3J0YWJpbGl0eSNDQTE5MDE7KyFNaWNyb3NvZnQuUG9ydGFi aWxpdHkjQ0ExOTAwOyshTWljcm9zb2Z0LlJlbGlhYmlsaXR5I0NBMjAwMTsrIU1pY3Jvc29mdC5S ZWxpYWJpbGl0eSNDQTIwMDI7KyFNaWNyb3NvZnQuUmVsaWFiaWxpdHkjQ0EyMDAzOyshTWljcm9z b2Z0LlJlbGlhYmlsaXR5I0NBMjAwNDsrIU1pY3Jvc29mdC5SZWxpYWJpbGl0eSNDQTIwMDY7KyFN aWNyb3NvZnQuU2VjdXJpdHkjQ0EyMTE2OyshTWljcm9zb2Z0LlNlY3VyaXR5I0NBMjExNzsrIU1p Y3Jvc29mdC5TZWN1cml0eSNDQTIxMDU7KyFNaWNyb3NvZnQuU2VjdXJpdHkjQ0EyMTE1OyshTWlj cm9zb2Z0LlNlY3VyaXR5I0NBMjEwMjstIU1pY3Jvc29mdC5TZWN1cml0eSNDQTIxMDQ7KyFNaWNy b3NvZnQuU2VjdXJpdHkjQ0EyMTIyOyshTWljcm9zb2Z0LlNlY3VyaXR5I0NBMjExNDsrIU1pY3Jv c29mdC5TZWN1cml0eSNDQTIxMjM7KyFNaWNyb3NvZnQuU2VjdXJpdHkjQ0EyMTExOyshTWljcm9z b2Z0LlNlY3VyaXR5I0NBMjEwODsrIU1pY3Jvc29mdC5TZWN1cml0eSNDQTIxMDc7KyFNaWNyb3Nv ZnQuU2VjdXJpdHkjQ0EyMTAzOyshTWljcm9zb2Z0LlNlY3VyaXR5I0NBMjExODsrIU1pY3Jvc29m dC5TZWN1cml0eSNDQTIxMDk7KyFNaWNyb3NvZnQuU2VjdXJpdHkjQ0EyMTE5OyshTWljcm9zb2Z0 LlNlY3VyaXR5I0NBMjEwNjsrIU1pY3Jvc29mdC5TZWN1cml0eSNDQTIxMTI7KyFNaWNyb3NvZnQu U2VjdXJpdHkjQ0EyMTIwOyshTWljcm9zb2Z0LlNlY3VyaXR5I0NBMjEyMTsrIU1pY3Jvc29mdC5T ZWN1cml0eSNDQTIxMjY7KyFNaWNyb3NvZnQuU2VjdXJpdHkjQ0EyMTI0OyshTWljcm9zb2Z0LlNl Y3VyaXR5I0NBMjEyNzsrIU1pY3Jvc29mdC5TZWN1cml0eSNDQTIxMjg7KyFNaWNyb3NvZnQuU2Vj dXJpdHkjQ0EyMTI5Oy0hTWljcm9zb2Z0LlVzYWdlI0NBMjI0MzstIU1pY3Jvc29mdC5Vc2FnZSND QTIyMzY7LSFNaWNyb3NvZnQuVXNhZ2UjQ0ExODE2Oy0hTWljcm9zb2Z0LlVzYWdlI0NBMjIyNzst IU1pY3Jvc29mdC5Vc2FnZSNDQTIyMTM7LSFNaWNyb3NvZnQuVXNhZ2UjQ0EyMjE2Oy0hTWljcm9z b2Z0LlVzYWdlI0NBMjIxNDstIU1pY3Jvc29mdC5Vc2FnZSNDQTIyMjI7LSFNaWNyb3NvZnQuVXNh Z2UjQ0ExODA2Oy0hTWljcm9zb2Z0LlVzYWdlI0NBMjIxNzstIU1pY3Jvc29mdC5Vc2FnZSNDQTIy MTI7LSFNaWNyb3NvZnQuVXNhZ2UjQ0EyMjE5Oy0hTWljcm9zb2Z0LlVzYWdlI0NBMjIwMTstIU1p Y3Jvc29mdC5Vc2FnZSNDQTIyMjg7LSFNaWNyb3NvZnQuVXNhZ2UjQ0EyMjIxOy0hTWljcm9zb2Z0 LlVzYWdlI0NBMjIyMDstIU1pY3Jvc29mdC5Vc2FnZSNDQTIyNDA7LSFNaWNyb3NvZnQuVXNhZ2Uj Q0EyMjI5Oy0hTWljcm9zb2Z0LlVzYWdlI0NBMjIzODstIU1pY3Jvc29mdC5Vc2FnZSNDQTIyMDc7 LSFNaWNyb3NvZnQuVXNhZ2UjQ0EyMjA4Oy0hTWljcm9zb2Z0LlVzYWdlI0NBMjIzNTstIU1pY3Jv c29mdC5Vc2FnZSNDQTIyMzc7LSFNaWNyb3NvZnQuVXNhZ2UjQ0EyMjMyOy0hTWljcm9zb2Z0LlVz YWdlI0NBMjIyMzstIU1pY3Jvc29mdC5Vc2FnZSNDQTIyMTE7LSFNaWNyb3NvZnQuVXNhZ2UjQ0Ey MjMzOy0hTWljcm9zb2Z0LlVzYWdlI0NBMjIyNTstIU1pY3Jvc29mdC5Vc2FnZSNDQTIyMjY7LSFN aWNyb3NvZnQuVXNhZ2UjQ0EyMjMxOy0hTWljcm9zb2Z0LlVzYWdlI0NBMjIyNDstIU1pY3Jvc29m dC5Vc2FnZSNDQTIyMTg7LSFNaWNyb3NvZnQuVXNhZ2UjQ0EyMjM0Oy0hTWljcm9zb2Z0LlVzYWdl I0NBMjIzOTstIU1pY3Jvc29mdC5Vc2FnZSNDQTIyMDA7LSFNaWNyb3NvZnQuVXNhZ2UjQ0ExODAx Oy0hTWljcm9zb2Z0LlVzYWdlI0NBMjI0MjstIU1pY3Jvc29mdC5Vc2FnZSNDQTIyMDU7LSFNaWNy b3NvZnQuVXNhZ2UjQ0EyMjMwPC9Db2RlQW5hbHlzaXNSdWxlcz4NCisgICAgPFRhcmdldEZyYW1l d29ya1ZlcnNpb24+djIuMDwvVGFyZ2V0RnJhbWV3b3JrVmVyc2lvbj4NCisgIDwvUHJvcGVydHlH cm91cD4NCiAgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQo UGxhdGZvcm0pJyA9PSAnRGVidWd8QW55Q1BVJyAiPg0KICAgICA8RGVidWdTeW1ib2xzPnRydWU8 L0RlYnVnU3ltYm9scz4NCiAgICAgPERlYnVnVHlwZT5mdWxsPC9EZWJ1Z1R5cGU+DQpAQCAtMjcs NiArMzksNyBAQA0KICAgICA8RGVmaW5lQ29uc3RhbnRzPkRFQlVHO1RSQUNFOyQoU2lnbmVkU3lt KTtDTFIyPC9EZWZpbmVDb25zdGFudHM+DQogICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9y UmVwb3J0Pg0KICAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4NCisgICAgPFRhcmdl dEZyYW1ld29ya1ZlcnNpb24+djIuMDwvVGFyZ2V0RnJhbWV3b3JrVmVyc2lvbj4NCiAgIDwvUHJv cGVydHlHcm91cD4NCiAgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRp b24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFzZXxBbnlDUFUnICI+DQogICAgIDxEZWJ1Z1R5cGU+ cGRib25seTwvRGVidWdUeXBlPg0KQEAgLTM1LDYgKzQ4LDcgQEANCiAgICAgPERlZmluZUNvbnN0 YW50cz5UUkFDRTskKFNpZ25lZFN5bSk7Q0xSMjwvRGVmaW5lQ29uc3RhbnRzPg0KICAgICA8RXJy b3JSZXBvcnQ+cHJvbXB0PC9FcnJvclJlcG9ydD4NCiAgICAgPFdhcm5pbmdMZXZlbD40PC9XYXJu aW5nTGV2ZWw+DQorICAgIDxUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPnYyLjA8L1RhcmdldEZyYW1l d29ya1ZlcnNpb24+DQogICA8L1Byb3BlcnR5R3JvdXA+DQogICA8UHJvcGVydHlHcm91cCBDb25k aXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ1Y0IERlYnVnfEFueUNQ VScgIj4NCiAgICAgPERlYnVnU3ltYm9scz50cnVlPC9EZWJ1Z1N5bWJvbHM+DQo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQplZGl0OiAkL0RldjEwL2ZlYXR1cmUvdnNfbGFuZ3MwMV9zL01lcmxpbi9FeHRlcm5hbC5MQ0Ff UkVTVFJJQ1RFRC9MYW5ndWFnZXMvSXJvblJ1YnkveWFtbC9Jcm9uUnVieS5MaWJyYXJpZXMuWWFt bC9SdWJ5Q29uc3RydWN0b3IuY3M7QzE0OTYyNTgNCkZpbGU6IFJ1YnlDb25zdHJ1Y3Rvci5jcw0K PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQ0KLS0tICQvRGV2MTAvZmVhdHVyZS92c19sYW5nczAxX3MvTWVybGluL0V4dGVy bmFsLkxDQV9SRVNUUklDVEVEL0xhbmd1YWdlcy9Jcm9uUnVieS95YW1sL0lyb25SdWJ5LkxpYnJh cmllcy5ZYW1sL1J1YnlDb25zdHJ1Y3Rvci5jcztDMTQ5NjI1OCAgKHNlcnZlcikgICAgMS8zMS8y MDEwIDc6NTMgUE0NCisrKyBTaGVsdmVkIENoYW5nZTogJC9EZXYxMC9mZWF0dXJlL3ZzX2xhbmdz MDFfcy9NZXJsaW4vRXh0ZXJuYWwuTENBX1JFU1RSSUNURUQvTGFuZ3VhZ2VzL0lyb25SdWJ5L3lh bWwvSXJvblJ1YnkuTGlicmFyaWVzLllhbWwvUnVieUNvbnN0cnVjdG9yLmNzO2JpbmRpbmdhbmR5 YW1sZnhjb3ANCkBAIC0xODYsMTEgKzE4NiwxMSBAQA0KICAgICAgICAgICAgIGlmIChzY2FsYXIg IT0gbnVsbCkgew0KICAgICAgICAgICAgICAgICBzdHJpbmcgdmFsdWUgPSBzY2FsYXIuVmFsdWU7 ICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICBpbnQgZG90c0lkeDsNCi0gICAgICAg ICAgICAgICAgaWYgKChkb3RzSWR4ID0gdmFsdWUuSW5kZXhPZigiLi4uIikpICE9IC0xKSB7DQor ICAgICAgICAgICAgICAgIGlmICgoZG90c0lkeCA9IHZhbHVlLkluZGV4T2YoIi4uLiIsIFN0cmlu Z0NvbXBhcmlzb24uT3JkaW5hbCkpICE9IC0xKSB7DQogICAgICAgICAgICAgICAgICAgICBiZWdp biA9IFBhcnNlT2JqZWN0KGN0b3IsIHZhbHVlLlN1YnN0cmluZygwLCBkb3RzSWR4KSk7ICAgICAg ICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgZW5kID0gUGFyc2VPYmplY3QoY3Rvciwg dmFsdWUuU3Vic3RyaW5nKGRvdHNJZHggKyAzKSk7DQogICAgICAgICAgICAgICAgICAgICBleGNs dWRlRW5kID0gdHJ1ZTsNCi0gICAgICAgICAgICAgICAgfSBlbHNlIGlmICgoZG90c0lkeCA9IHZh bHVlLkluZGV4T2YoIi4uIikpICE9IC0xKSB7DQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo KGRvdHNJZHggPSB2YWx1ZS5JbmRleE9mKCIuLiIsIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbCkp ICE9IC0xKSB7DQogICAgICAgICAgICAgICAgICAgICBiZWdpbiA9IFBhcnNlT2JqZWN0KGN0b3Is IHZhbHVlLlN1YnN0cmluZygwLCBkb3RzSWR4KSk7DQogICAgICAgICAgICAgICAgICAgICBlbmQg PSBQYXJzZU9iamVjdChjdG9yLCB2YWx1ZS5TdWJzdHJpbmcoZG90c0lkeCArIDIpKTsNCiAgICAg ICAgICAgICAgICAgfSBlbHNlIHsNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCmVkaXQ6ICQvRGV2MTAvZmVhdHVyZS92 c19sYW5nczAxX3MvTWVybGluL0V4dGVybmFsLkxDQV9SRVNUUklDVEVEL0xhbmd1YWdlcy9Jcm9u UnVieS95YW1sL0lyb25SdWJ5LkxpYnJhcmllcy5ZYW1sL0VuZ2luZS9CYXNlQ29uc3RydWN0b3Iu Y3M7QzE0OTYyNTgNCkZpbGU6IEJhc2VDb25zdHJ1Y3Rvci5jcw0KPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tICQv RGV2MTAvZmVhdHVyZS92c19sYW5nczAxX3MvTWVybGluL0V4dGVybmFsLkxDQV9SRVNUUklDVEVE L0xhbmd1YWdlcy9Jcm9uUnVieS95YW1sL0lyb25SdWJ5LkxpYnJhcmllcy5ZYW1sL0VuZ2luZS9C YXNlQ29uc3RydWN0b3IuY3M7QzE0OTYyNTggIChzZXJ2ZXIpICAgIDEvMzEvMjAxMCA3OjUzIFBN DQorKysgU2hlbHZlZCBDaGFuZ2U6ICQvRGV2MTAvZmVhdHVyZS92c19sYW5nczAxX3MvTWVybGlu L0V4dGVybmFsLkxDQV9SRVNUUklDVEVEL0xhbmd1YWdlcy9Jcm9uUnVieS95YW1sL0lyb25SdWJ5 LkxpYnJhcmllcy5ZYW1sL0VuZ2luZS9CYXNlQ29uc3RydWN0b3IuY3M7YmluZGluZ2FuZHlhbWxm eGNvcA0KQEAgLTU2MCwxMyArNTYwLDEzIEBADQogICAgICAgICAgICAgaW50IEBiYXNlID0gMTA7 DQogICAgICAgICAgICAgaWYgKHZhbHVlID09ICIwIikgew0KICAgICAgICAgICAgICAgICByZXR1 cm4gMDsNCi0gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLlN0YXJ0c1dpdGgoIjBiIikpIHsN CisgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLlN0YXJ0c1dpdGgoIjBiIiwgU3RyaW5nQ29t cGFyaXNvbi5PcmRpbmFsKSkgew0KICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLlN1YnN0 cmluZygyKTsNCiAgICAgICAgICAgICAgICAgQGJhc2UgPSAyOw0KLSAgICAgICAgICAgIH0gZWxz ZSBpZiAodmFsdWUuU3RhcnRzV2l0aCgiMHgiKSkgew0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAo dmFsdWUuU3RhcnRzV2l0aCgiMHgiLCBTdHJpbmdDb21wYXJpc29uLk9yZGluYWwpKSB7DQogICAg ICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuU3Vic3RyaW5nKDIpOw0KICAgICAgICAgICAgICAg ICBAYmFzZSA9IDE2Ow0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUuU3RhcnRzV2l0aCgi MCIpKSB7DQorICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5TdGFydHNXaXRoKCIwIiwgU3Ry aW5nQ29tcGFyaXNvbi5PcmRpbmFsKSkgew0KICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVl LlN1YnN0cmluZygxKTsNCiAgICAgICAgICAgICAgICAgQGJhc2UgPSA4Ow0KICAgICAgICAgICAg IH0gZWxzZSBpZiAodmFsdWUuSW5kZXhPZignOicpICE9IC0xKSB7DQpAQCAtNTk4LDkgKzU5OCw5 IEBADQogICAgICAgICAgICAgfSBlbHNlIGlmIChmaXJzdCA9PSAnKycpIHsNCiAgICAgICAgICAg ICAgICAgdmFsdWUgPSB2YWx1ZS5TdWJzdHJpbmcoMSk7DQogICAgICAgICAgICAgfQ0KLSAgICAg ICAgICAgIHN0cmluZyB2YWxMb3dlciA9IHZhbHVlLlRvTG93ZXIoKTsNCisgICAgICAgICAgICBz dHJpbmcgdmFsTG93ZXIgPSB2YWx1ZS5Ub0xvd2VySW52YXJpYW50KCk7DQogICAgICAgICAgICAg aWYgKHZhbExvd2VyID09ICIuaW5mIikgew0KLSAgICAgICAgICAgICAgICByZXR1cm4gc2lnbiA9 PSAtMSA/IGRvdWJsZS5OZWdhdGl2ZUluZmluaXR5IDogZG91YmxlLlBvc2l0aXZlSW5maW5pdHk7 DQorICAgICAgICAgICAgICAgIHJldHVybiBzaWduID09IC0xID8gRG91YmxlLk5lZ2F0aXZlSW5m aW5pdHkgOiBEb3VibGUuUG9zaXRpdmVJbmZpbml0eTsNCiAgICAgICAgICAgICB9IGVsc2UgaWYg KHZhbExvd2VyID09ICIubmFuIikgew0KICAgICAgICAgICAgICAgICByZXR1cm4gZG91YmxlLk5h TjsNCiAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLkluZGV4T2YoJzonKSAhPSAtMSkgew0K QEAgLTY1OCw3ICs2NTgsNyBAQA0KIA0KICAgICAgICAgICAgICAgICBmb3JlYWNoIChLZXlWYWx1 ZVBhaXI8b2JqZWN0LCBvYmplY3Q+IGUgaW4gY3Rvci5Db25zdHJ1Y3RNYXBwaW5nKG5vZGUpKSB7 DQogICAgICAgICAgICAgICAgICAgICBzdHJpbmcgbmFtZSA9IGUuS2V5LlRvU3RyaW5nKCk7DQot ICAgICAgICAgICAgICAgICAgICBuYW1lID0gIiIgKyBjaGFyLlRvVXBwZXIobmFtZVswXSkgKyBu YW1lLlN1YnN0cmluZygxKTsNCisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAiIiArIG5hbWVb MF0uVG9VcHBlckludmFyaWFudCgpICsgbmFtZS5TdWJzdHJpbmcoMSk7DQogICAgICAgICAgICAg ICAgICAgICBQcm9wZXJ0eUluZm8gcHJvcCA9IHR5cGUuR2V0UHJvcGVydHkobmFtZSk7DQogDQog ICAgICAgICAgICAgICAgICAgICBwcm9wLlNldFZhbHVlKHJlc3VsdCwgQ29udmVydC5DaGFuZ2VU eXBlKGUuVmFsdWUsIHByb3AuUHJvcGVydHlUeXBlKSwgbnVsbCk7DQo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQplZGl0 OiAkL0RldjEwL2ZlYXR1cmUvdnNfbGFuZ3MwMV9zL01lcmxpbi9FeHRlcm5hbC5MQ0FfUkVTVFJJ Q1RFRC9MYW5ndWFnZXMvSXJvblJ1YnkveWFtbC9Jcm9uUnVieS5MaWJyYXJpZXMuWWFtbC9Fbmdp bmUvRW1pdHRlci5jcztDMTQ5NjI1OA0KRmlsZTogRW1pdHRlci5jcw0KPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t ICQvRGV2MTAvZmVhdHVyZS92c19sYW5nczAxX3MvTWVybGluL0V4dGVybmFsLkxDQV9SRVNUUklD VEVEL0xhbmd1YWdlcy9Jcm9uUnVieS95YW1sL0lyb25SdWJ5LkxpYnJhcmllcy5ZYW1sL0VuZ2lu ZS9FbWl0dGVyLmNzO0MxNDk2MjU4ICAoc2VydmVyKSAgICAxLzMxLzIwMTAgNzo1MyBQTQ0KKysr IFNoZWx2ZWQgQ2hhbmdlOiAkL0RldjEwL2ZlYXR1cmUvdnNfbGFuZ3MwMV9zL01lcmxpbi9FeHRl cm5hbC5MQ0FfUkVTVFJJQ1RFRC9MYW5ndWFnZXMvSXJvblJ1YnkveWFtbC9Jcm9uUnVieS5MaWJy YXJpZXMuWWFtbC9FbmdpbmUvRW1pdHRlci5jcztiaW5kaW5nYW5keWFtbGZ4Y29wDQpAQCAtMzYs OCArMzYsNiBAQA0KICAgICAgICAgcHJpdmF0ZSBpbnQgX2Zsb3dMZXZlbDsNCiAgICAgICAgIHBy aXZhdGUgcmVhZG9ubHkgU3RhY2s8aW50PiBfaW5kZW50cyA9IG5ldyBTdGFjazxpbnQ+KCk7DQog ICAgICAgICBwcml2YXRlIGludCBfaW5kZW50ID0gLTE7DQotICAgICAgICBwcml2YXRlIGJvb2wg X3Jvb3RDb250ZXh0Ow0KLSAgICAgICAgcHJpdmF0ZSBib29sIF9zZXF1ZW5jZUNvbnRleHQ7DQog ICAgICAgICBwcml2YXRlIGJvb2wgX21hcHBpbmdDb250ZXh0Ow0KICAgICAgICAgDQogICAgICAg ICBwcml2YXRlIGludCBfbGluZTsNCkBAIC01ODAsNyArNTc4LDcgQEANCiAgICAgICAgICAgICBz dHJpbmcgaGFuZGxlID0gbnVsbDsNCiAgICAgICAgICAgICBzdHJpbmcgc3VmZml4ID0gdGFnOw0K ICAgICAgICAgICAgIGZvcmVhY2ggKHN0cmluZyBwcmVmaXggaW4gX3RhZ1ByZWZpeGVzLktleXMp IHsNCi0gICAgICAgICAgICAgICAgaWYgKHByZWZpeC5MZW5ndGggPCB0YWcuTGVuZ3RoICYmIHRh Zy5TdGFydHNXaXRoKHByZWZpeCkpIHsNCisgICAgICAgICAgICAgICAgaWYgKHByZWZpeC5MZW5n dGggPCB0YWcuTGVuZ3RoICYmIHRhZy5TdGFydHNXaXRoKHByZWZpeCwgU3RyaW5nQ29tcGFyaXNv bi5PcmRpbmFsKSkgew0KICAgICAgICAgICAgICAgICAgICAgaGFuZGxlID0gX3RhZ1ByZWZpeGVz W3ByZWZpeF07DQogICAgICAgICAgICAgICAgICAgICBzdWZmaXggPSB0YWcuU3Vic3RyaW5nKHBy ZWZpeC5MZW5ndGgpOw0KICAgICAgICAgICAgICAgICB9DQpAQCAtNTg5LDcgKzU4Nyw3IEBADQog ICAgICAgICAgICAgLy8gdXNlIHNob3J0IGZvcm0gaWYgYXBwbGljYWJsZSAoInRhZzpydWJ5Lnlh bWwub3JnLDIwMDI6Zm9vYmFyIiAtPiAicnVieS9mb29iYXIiKQ0KICAgICAgICAgICAgIGlmICho YW5kbGUgPT0gbnVsbCkgew0KICAgICAgICAgICAgICAgICBpbnQgY29sb25JZHg7DQotICAgICAg ICAgICAgICAgIGlmICh0YWcuU3RhcnRzV2l0aCgidGFnOiIpICYmIChjb2xvbklkeCA9IHRhZy5J bmRleE9mKCc6JywgNCkpICE9IC0xKSB7DQorICAgICAgICAgICAgICAgIGlmICh0YWcuU3RhcnRz V2l0aCgidGFnOiIsIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbCkgJiYgKGNvbG9uSWR4ID0gdGFn LkluZGV4T2YoJzonLCA0KSkgIT0gLTEpIHsNCiAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBm aXJzdCA9IHRhZy5TdWJzdHJpbmcoNCwgdGFnLkluZGV4T2YoJy4nLCA0KSAtIDQpOw0KICAgICAg ICAgICAgICAgICAgICAgc3RyaW5nIHJlc3QgPSB0YWcuU3Vic3RyaW5nKGNvbG9uSWR4ICsgMSk7 DQogICAgICAgICAgICAgICAgICAgICBoYW5kbGUgPSAiISIgKyBmaXJzdCArICIvIjsNCkBAIC02 MTAsNyArNjA4LDYgQEANCiAgICAgICAgIH0NCiANCiAgICAgICAgIHByaXZhdGUgc3RhdGljIFJl Z2V4IERPQ19JTkRJQyA9IG5ldyBSZWdleCgiXigtLS18XFwuXFwuXFwuKSIsIFJlZ2V4T3B0aW9u cy5Db21waWxlZCk7DQotICAgICAgICBwcml2YXRlIHN0YXRpYyBSZWdleCBGSVJTVF9TUEFDRSA9 IG5ldyBSZWdleCgiKF58XG4pICIsIFJlZ2V4T3B0aW9ucy5Db21waWxlZCk7DQogICAgICAgICBw cml2YXRlIHN0YXRpYyBzdHJpbmcgTlVMTF9CTF9UX0xJTkVCUiA9ICJcMCBcdFxyXG4iOw0KICAg ICAgICAgcHJpdmF0ZSBzdGF0aWMgc3RyaW5nIFNQRUNJQUxfSU5ESUMgPSAiIyxbXXt9IyYqIXw+ J1wiJUAiOw0KICAgICAgICAgcHJpdmF0ZSBzdGF0aWMgc3RyaW5nIEZMT1dfSU5ESUMgPSAiLD9b XXt9IjsNCkBAIC0xMDU5LDggKzEwNTYsNiBAQA0KICAgICAgICAgfQ0KIA0KICAgICAgICAgcHJp dmF0ZSB2b2lkIEVtaXROb2RlKGJvb2wgcm9vdCwgYm9vbCBzZXF1ZW5jZSwgYm9vbCBtYXBwaW5n LCBib29sIHNpbXBsZUtleSkgew0KLSAgICAgICAgICAgIF9yb290Q29udGV4dCA9IHJvb3Q7DQot ICAgICAgICAgICAgX3NlcXVlbmNlQ29udGV4dCA9IHNlcXVlbmNlOw0KICAgICAgICAgICAgIF9t YXBwaW5nQ29udGV4dCA9IG1hcHBpbmc7DQogICAgICAgICAgICAgaWYgKF9ldmVudCBpcyBBbGlh c0V2ZW50KSB7DQogICAgICAgICAgICAgICAgIEVtaXRBbGlhcygpOw0KPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KZWRp dDogJC9EZXYxMC9mZWF0dXJlL3ZzX2xhbmdzMDFfcy9NZXJsaW4vRXh0ZXJuYWwuTENBX1JFU1RS SUNURUQvTGFuZ3VhZ2VzL0lyb25SdWJ5L3lhbWwvSXJvblJ1YnkuTGlicmFyaWVzLllhbWwvRW5n aW5lL1BhcnNlci5jcztDMTU0NDU3NQ0KRmlsZTogUGFyc2VyLmNzDQo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g JC9EZXYxMC9mZWF0dXJlL3ZzX2xhbmdzMDFfcy9NZXJsaW4vRXh0ZXJuYWwuTENBX1JFU1RSSUNU RUQvTGFuZ3VhZ2VzL0lyb25SdWJ5L3lhbWwvSXJvblJ1YnkuTGlicmFyaWVzLllhbWwvRW5naW5l L1BhcnNlci5jcztDMTU0NDU3NSAgKHNlcnZlcikgICAgMS8zMS8yMDEwIDc6NTMgUE0NCisrKyBT aGVsdmVkIENoYW5nZTogJC9EZXYxMC9mZWF0dXJlL3ZzX2xhbmdzMDFfcy9NZXJsaW4vRXh0ZXJu YWwuTENBX1JFU1RSSUNURUQvTGFuZ3VhZ2VzL0lyb25SdWJ5L3lhbWwvSXJvblJ1YnkuTGlicmFy aWVzLllhbWwvRW5naW5lL1BhcnNlci5jcztiaW5kaW5nYW5keWFtbGZ4Y29wDQpAQCAtNTU1LDcg KzU1NSw3IEBADQogICAgICAgICAgICAgc3RyaW5nIGhhbmRsZSA9IHRhZ1Rva2VuLkhhbmRsZTsN CiAgICAgICAgICAgICBzdHJpbmcgc3VmZml4ID0gdGFnVG9rZW4uU3VmZml4Ow0KICAgICAgICAg ICAgIGludCBpeCA9IC0xOw0KLSAgICAgICAgICAgIGlmICgoaXggPSBzdWZmaXguSW5kZXhPZigi XiIpKSAhPSAtMSkgew0KKyAgICAgICAgICAgIGlmICgoaXggPSBzdWZmaXguSW5kZXhPZignXicp KSAhPSAtMSkgew0KICAgICAgICAgICAgICAgICBpZiAoaXggPiAwKSB7DQogICAgICAgICAgICAg ICAgICAgICBfZmFtaWx5VHlwZVByZWZpeCA9IHN1ZmZpeC5TdWJzdHJpbmcoMCwgaXgpOw0KICAg ICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIA0KQEAgLTU2NSwxMyArNTY1LDEzIEBADQog ICAgICAgICAgICAgICAgIGlmICghX3RhZ0hhbmRsZXMuQ29udGFpbnNLZXkoaGFuZGxlKSkgew0K ICAgICAgICAgICAgICAgICAgICAgUmVwb3J0RXJyb3IoIndoaWxlIHBhcnNpbmcgYSBub2RlOiBm b3VuZCB1bmRlZmluZWQgdGFnIGhhbmRsZTogezB9IiwgaGFuZGxlKTsNCiAgICAgICAgICAgICAg ICAgfQ0KLSAgICAgICAgICAgICAgICBpZiAoKGl4ID0gc3VmZml4LkluZGV4T2YoIi8iKSkgIT0g LTEpIHsNCisgICAgICAgICAgICAgICAgaWYgKChpeCA9IHN1ZmZpeC5JbmRleE9mKCcvJykpICE9 IC0xKSB7DQogICAgICAgICAgICAgICAgICAgICBzdHJpbmcgYmVmb3JlID0gc3VmZml4LlN1YnN0 cmluZygwLCBpeCk7DQogICAgICAgICAgICAgICAgICAgICBzdHJpbmcgYWZ0ZXIgPSBzdWZmaXgu U3Vic3RyaW5nKGl4ICsgMSk7DQogICAgICAgICAgICAgICAgICAgICBpZiAoT05MWV9XT1JELklz TWF0Y2goYmVmb3JlKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgIHRhZyA9ICJ0YWc6IiAr IGJlZm9yZSArICIueWFtbC5vcmcsMjAwMjoiICsgYWZ0ZXI7DQogICAgICAgICAgICAgICAgICAg ICB9IGVsc2Ugew0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiZWZvcmUuU3RhcnRzV2l0 aCgidGFnOiIpKSB7DQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJlZm9yZS5TdGFydHNX aXRoKCJ0YWc6IiwgU3RyaW5nQ29tcGFyaXNvbi5PcmRpbmFsKSkgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0YWcgPSBiZWZvcmUgKyAiOiIgKyBhZnRlcjsNCiAgICAgICAgICAgICAg ICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWcgPSAi dGFnOiIgKyBiZWZvcmUgKyAiOiIgKyBhZnRlcjsNCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCmVkaXQ6ICQvRGV2MTAv ZmVhdHVyZS92c19sYW5nczAxX3MvTWVybGluL0V4dGVybmFsLkxDQV9SRVNUUklDVEVEL0xhbmd1 YWdlcy9Jcm9uUnVieS95YW1sL0lyb25SdWJ5LkxpYnJhcmllcy5ZYW1sL0VuZ2luZS9SZXNvbHZl clNjYW5uZXIuY3M7QzE0OTYyNTgNCkZpbGU6IFJlc29sdmVyU2Nhbm5lci5jcw0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KLS0tICQvRGV2MTAvZmVhdHVyZS92c19sYW5nczAxX3MvTWVybGluL0V4dGVybmFsLkxDQV9S RVNUUklDVEVEL0xhbmd1YWdlcy9Jcm9uUnVieS95YW1sL0lyb25SdWJ5LkxpYnJhcmllcy5ZYW1s L0VuZ2luZS9SZXNvbHZlclNjYW5uZXIuY3M7QzE0OTYyNTggIChzZXJ2ZXIpICAgIDEvMzEvMjAx MCA3OjUzIFBNDQorKysgU2hlbHZlZCBDaGFuZ2U6ICQvRGV2MTAvZmVhdHVyZS92c19sYW5nczAx X3MvTWVybGluL0V4dGVybmFsLkxDQV9SRVNUUklDVEVEL0xhbmd1YWdlcy9Jcm9uUnVieS95YW1s L0lyb25SdWJ5LkxpYnJhcmllcy5ZYW1sL0VuZ2luZS9SZXNvbHZlclNjYW5uZXIuY3M7YmluZGlu Z2FuZHlhbWxmeGNvcA0KQEAgLTI4OCwzMiArMjg4LDYgQEANCiAgICAgICAgIHByaXZhdGUgc3Rh dGljIGJ5dGVbXSBfcmVzb2x2ZXJfc2Nhbm5lcl90cmFuc190YXJnc193aSA9IGNyZWF0ZV9fcmVz b2x2ZXJfc2Nhbm5lcl90cmFuc190YXJnc193aSgpOw0KIA0KIA0KLSAgICAgICAgcHJpdmF0ZSBz dGF0aWMgdm9pZCBpbml0X19yZXNvbHZlcl9zY2FubmVyX3RyYW5zX2FjdGlvbnNfd2lfMChieXRl W10gcikgew0KLSAgICAgICAgICAgIHJbMF0gPSAwOyByWzFdID0gMDsgclsyXSA9IDA7IHJbM10g PSAwOyByWzRdID0gMDsgcls1XSA9IDA7IHJbNl0gPSAwOyByWzddID0gMDsNCi0gICAgICAgICAg ICByWzhdID0gMDsgcls5XSA9IDA7IHJbMTBdID0gMDsgclsxMV0gPSAwOyByWzEyXSA9IDA7IHJb MTNdID0gMDsgclsxNF0gPSAwOyByWzE1XSA9IDA7DQotICAgICAgICAgICAgclsxNl0gPSAwOyBy WzE3XSA9IDA7IHJbMThdID0gMDsgclsxOV0gPSAwOyByWzIwXSA9IDA7IHJbMjFdID0gMDsgclsy Ml0gPSAwOyByWzIzXSA9IDA7DQotICAgICAgICAgICAgclsyNF0gPSAwOyByWzI1XSA9IDA7IHJb MjZdID0gMDsgclsyN10gPSAwOyByWzI4XSA9IDA7IHJbMjldID0gMDsgclszMF0gPSAwOyByWzMx XSA9IDA7DQotICAgICAgICAgICAgclszMl0gPSAwOyByWzMzXSA9IDA7IHJbMzRdID0gMDsgclsz NV0gPSAwOyByWzM2XSA9IDA7IHJbMzddID0gMDsgclszOF0gPSAwOyByWzM5XSA9IDA7DQotICAg ICAgICAgICAgcls0MF0gPSAwOyByWzQxXSA9IDA7IHJbNDJdID0gMDsgcls0M10gPSAwOyByWzQ0 XSA9IDA7IHJbNDVdID0gMDsgcls0Nl0gPSAwOyByWzQ3XSA9IDA7DQotICAgICAgICAgICAgcls0 OF0gPSAwOyByWzQ5XSA9IDA7IHJbNTBdID0gMDsgcls1MV0gPSAwOyByWzUyXSA9IDA7IHJbNTNd ID0gMDsgcls1NF0gPSAwOyByWzU1XSA9IDA7DQotICAgICAgICAgICAgcls1Nl0gPSAwOyByWzU3 XSA9IDA7IHJbNThdID0gMDsgcls1OV0gPSAwOyByWzYwXSA9IDA7IHJbNjFdID0gMDsgcls2Ml0g PSAwOyByWzYzXSA9IDA7DQotICAgICAgICAgICAgcls2NF0gPSAwOyByWzY1XSA9IDA7IHJbNjZd ID0gMDsgcls2N10gPSAwOyByWzY4XSA9IDA7IHJbNjldID0gMDsgcls3MF0gPSAwOyByWzcxXSA9 IDA7DQotICAgICAgICAgICAgcls3Ml0gPSAwOyByWzczXSA9IDA7IHJbNzRdID0gMDsgcls3NV0g PSAwOyByWzc2XSA9IDA7IHJbNzddID0gMDsgcls3OF0gPSAwOyByWzc5XSA9IDA7DQotICAgICAg ICAgICAgcls4MF0gPSAwOyByWzgxXSA9IDA7IHJbODJdID0gMDsgcls4M10gPSAwOyByWzg0XSA9 IDA7IHJbODVdID0gMDsgcls4Nl0gPSAwOyByWzg3XSA9IDA7DQotICAgICAgICAgICAgcls4OF0g PSAwOyByWzg5XSA9IDA7IHJbOTBdID0gMDsgcls5MV0gPSAwOyByWzkyXSA9IDA7IHJbOTNdID0g MDsgcls5NF0gPSAwOyByWzk1XSA9IDA7DQotICAgICAgICAgICAgcls5Nl0gPSAwOyByWzk3XSA9 IDA7IHJbOThdID0gMDsgcls5OV0gPSAwOyByWzEwMF0gPSAwOyByWzEwMV0gPSAwOyByWzEwMl0g PSAwOyByWzEwM10gPSAwOw0KLSAgICAgICAgICAgIHJbMTA0XSA9IDA7IHJbMTA1XSA9IDA7IHJb MTA2XSA9IDA7DQotICAgICAgICB9DQotDQotICAgICAgICBwcml2YXRlIHN0YXRpYyBieXRlW10g Y3JlYXRlX19yZXNvbHZlcl9zY2FubmVyX3RyYW5zX2FjdGlvbnNfd2koKSB7DQotICAgICAgICAg ICAgYnl0ZVtdIHIgPSBuZXcgYnl0ZVsxMDddOw0KLSAgICAgICAgICAgIGluaXRfX3Jlc29sdmVy X3NjYW5uZXJfdHJhbnNfYWN0aW9uc193aV8wKHIpOw0KLSAgICAgICAgICAgIHJldHVybiByOw0K LSAgICAgICAgfQ0KLQ0KLSAgICAgICAgcHJpdmF0ZSBzdGF0aWMgYnl0ZVtdIF9yZXNvbHZlcl9z Y2FubmVyX3RyYW5zX2FjdGlvbnNfd2kgPSBjcmVhdGVfX3Jlc29sdmVyX3NjYW5uZXJfdHJhbnNf YWN0aW9uc193aSgpOw0KLQ0KLQ0KICAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBpbml0X19y ZXNvbHZlcl9zY2FubmVyX2VvZl9hY3Rpb25zXzAoYnl0ZVtdIHIpIHsNCiAgICAgICAgICAgICBy WzBdID0gMDsgclsxXSA9IDA7IHJbMl0gPSAwOyByWzNdID0gMDsgcls0XSA9IDA7IHJbNV0gPSAw OyByWzZdID0gMDsgcls3XSA9IDA7DQogICAgICAgICAgICAgcls4XSA9IDA7IHJbOV0gPSAwOyBy WzEwXSA9IDA7IHJbMTFdID0gMDsgclsxMl0gPSAwOyByWzEzXSA9IDA7IHJbMTRdID0gMDsgclsx NV0gPSAwOw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KZWRpdDogJC9EZXYxMC9mZWF0dXJlL3ZzX2xhbmdzMDFfcy9N ZXJsaW4vRXh0ZXJuYWwuTENBX1JFU1RSSUNURUQvTGFuZ3VhZ2VzL0lyb25SdWJ5L3lhbWwvSXJv blJ1YnkuTGlicmFyaWVzLllhbWwvRW5naW5lL1NjYW5uZXIuY3M7QzE1NDQ1NzUNCkZpbGU6IFNj YW5uZXIuY3MNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0NCi0tLSAkL0RldjEwL2ZlYXR1cmUvdnNfbGFuZ3MwMV9zL01l cmxpbi9FeHRlcm5hbC5MQ0FfUkVTVFJJQ1RFRC9MYW5ndWFnZXMvSXJvblJ1YnkveWFtbC9Jcm9u UnVieS5MaWJyYXJpZXMuWWFtbC9FbmdpbmUvU2Nhbm5lci5jcztDMTU0NDU3NSAgKHNlcnZlcikg ICAgMS8zMS8yMDEwIDc6NTMgUE0NCisrKyBTaGVsdmVkIENoYW5nZTogJC9EZXYxMC9mZWF0dXJl L3ZzX2xhbmdzMDFfcy9NZXJsaW4vRXh0ZXJuYWwuTENBX1JFU1RSSUNURUQvTGFuZ3VhZ2VzL0ly b25SdWJ5L3lhbWwvSXJvblJ1YnkuTGlicmFyaWVzLllhbWwvRW5naW5lL1NjYW5uZXIuY3M7Ymlu ZGluZ2FuZHlhbWxmeGNvcA0KQEAgLTU4MCw3ICs1ODAsNyBAQA0KICAgICAgICAgICAgICAgICB0 cnkgew0KICAgICAgICAgICAgICAgICAgICAgRW5zdXJlKDIsIGZhbHNlKTsNCiAgICAgICAgICAg ICAgICAgICAgIHN0ci5BcHBlbmQoaW50LlBhcnNlKG5ldyBzdHJpbmcoX2J1ZmZlciwgX3BvaW50 ZXIsIDIpLCBOdW1iZXJTdHlsZXMuSGV4TnVtYmVyKSk7DQotICAgICAgICAgICAgICAgIH0gY2F0 Y2ggKEZvcm1hdEV4Y2VwdGlvbiBmZSkgew0KKyAgICAgICAgICAgICAgICB9IGNhdGNoIChGb3Jt YXRFeGNlcHRpb24pIHsNCiAgICAgICAgICAgICAgICAgICAgIFJlcG9ydEVycm9yKA0KICAgICAg ICAgICAgICAgICAgICAgICAgICJ3aGlsZSBzY2FubmluZyBhIHswfTogZXhwZWN0ZWQgVVJJIGVz Y2FwZSBzZXF1ZW5jZSBvZiAyIGhleGFkZWNpbWFsIG51bWJlcnMsIGJ1dCBmb3VuZCBgezB9JyAo ezF9KSBhbmQgYHsyfScgKHszfSkiLA0KICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsIFBl ZWsoMSksIFBlZWsoMikNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0NCmVkaXQ6ICQvRGV2MTAvZmVhdHVyZS92c19sYW5n czAxX3MvTWVybGluL0V4dGVybmFsLkxDQV9SRVNUUklDVEVEL0xhbmd1YWdlcy9Jcm9uUnVieS95 YW1sL0lyb25SdWJ5LkxpYnJhcmllcy5ZYW1sL0VuZ2luZS9TZXJpYWxpemVyLmNzO0MxNDk2MjU4 DQpGaWxlOiBTZXJpYWxpemVyLmNzDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gJC9EZXYxMC9mZWF0dXJlL3Zz X2xhbmdzMDFfcy9NZXJsaW4vRXh0ZXJuYWwuTENBX1JFU1RSSUNURUQvTGFuZ3VhZ2VzL0lyb25S dWJ5L3lhbWwvSXJvblJ1YnkuTGlicmFyaWVzLllhbWwvRW5naW5lL1NlcmlhbGl6ZXIuY3M7QzE0 OTYyNTggIChzZXJ2ZXIpICAgIDEvMzEvMjAxMCA3OjUzIFBNDQorKysgU2hlbHZlZCBDaGFuZ2U6 ICQvRGV2MTAvZmVhdHVyZS92c19sYW5nczAxX3MvTWVybGluL0V4dGVybmFsLkxDQV9SRVNUUklD VEVEL0xhbmd1YWdlcy9Jcm9uUnVieS95YW1sL0lyb25SdWJ5LkxpYnJhcmllcy5ZYW1sL0VuZ2lu ZS9TZXJpYWxpemVyLmNzO2JpbmRpbmdhbmR5YW1sZnhjb3ANCkBAIC0yOCw3ICsyOCw2IEBADQog ICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGJvb2wgX3VzZUV4cGxpY2l0U3RhcnQ7DQogICAgICAg ICBwcml2YXRlIHJlYWRvbmx5IGJvb2wgX3VzZUV4cGxpY2l0RW5kOw0KICAgICAgICAgcHJpdmF0 ZSByZWFkb25seSBWZXJzaW9uIF91c2VWZXJzaW9uOw0KLSAgICAgICAgcHJpdmF0ZSByZWFkb25s eSBib29sIF91c2VUYWdzOw0KICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzdHJpbmcgX2FuY2hv clRlbXBsYXRlOw0KIA0KICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBEaWN0aW9uYXJ5PE5vZGUs IG9iamVjdD4vKiEqLyBfc2VyaWFsaXplZE5vZGVzID0gbmV3IERpY3Rpb25hcnk8Tm9kZSwgb2Jq ZWN0PihSZWZlcmVuY2VFcXVhbGl0eUNvbXBhcmVyPE5vZGU+Lkluc3RhbmNlKTsNCkBAIC00OSw3 ICs0OCw2IEBADQogICAgICAgICAgICAgaWYgKG9wdHMuVXNlVmVyc2lvbikgew0KICAgICAgICAg ICAgICAgICBfdXNlVmVyc2lvbiA9IG9wdHMuVmVyc2lvbjsNCiAgICAgICAgICAgICB9DQotICAg ICAgICAgICAgX3VzZVRhZ3MgPSBvcHRzLlVzZUhlYWRlcjsNCiAgICAgICAgICAgICBfYW5jaG9y VGVtcGxhdGUgPSBvcHRzLkFuY2hvckZvcm1hdCA/PyAiaWR7MDowMDB9IjsNCiAgICAgICAgICAg ICBfZW1pdHRlci5FbWl0KFN0cmVhbVN0YXJ0RXZlbnQuSW5zdGFuY2UpOw0KICAgICAgICAgfQ0K QEAgLTE2MCw3ICsxNTgsNyBAQA0KICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBvbWl0IHRoZSB0YWcgZm9yIG5vbi1zdHJpbmcgc2NhbGFy cyB3aG9zZSB0eXBlIGNhbiBiZSByZWNvZ25pemVkIGZyb20gdGhlaXIgdmFsdWU6DQogICAgICAg ICAgICAgICAgICAgICAgICAgc3RyaW5nIGRldGVjdGVkVGFnID0gUmVzb2x2ZXJTY2FubmVyLlJl Y29nbml6ZShzY2FsYXIuVmFsdWUpOw0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZXRl Y3RlZFRhZyAhPSBudWxsICYmIHRhZy5TdGFydHNXaXRoKGRldGVjdGVkVGFnKSkgew0KKyAgICAg ICAgICAgICAgICAgICAgICAgIGlmIChkZXRlY3RlZFRhZyAhPSBudWxsICYmIHRhZy5TdGFydHNX aXRoKGRldGVjdGVkVGFnLCBTdHJpbmdDb21wYXJpc29uLk9yZGluYWwpKSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRhZyA9IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSBTY2FsYXJWYWx1ZVR5cGUuT3RoZXI7 DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09DQplZGl0OiAkL0RldjEwL2ZlYXR1cmUvdnNfbGFuZ3MwMV9zL01lcmxpbi9F eHRlcm5hbC5MQ0FfUkVTVFJJQ1RFRC9MYW5ndWFnZXMvUnVieS9ydWJ5LTEuOC42cDM2OC9saWIv cnVieS8xLjgvZXJiLnJiO0MxMDg0NTcxDQplZGl0OiAkL0RldjEwL2ZlYXR1cmUvdnNfbGFuZ3Mw MV9zL01lcmxpbi9NYWluL0xhbmd1YWdlcy9SdWJ5L1J1Ynkuc2xuO0MxMjQ1NDg1DQpGaWxlOiBS dWJ5LnNsbg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KLS0tICQvRGV2MTAvZmVhdHVyZS92c19sYW5nczAxX3MvTWVy bGluL01haW4vTGFuZ3VhZ2VzL1J1YnkvUnVieS5zbG47QzEyNDU0ODUgIChzZXJ2ZXIpICAgIDEv MzEvMjAxMCA3OjUzIFBNDQorKysgU2hlbHZlZCBDaGFuZ2U6ICQvRGV2MTAvZmVhdHVyZS92c19s YW5nczAxX3MvTWVybGluL01haW4vTGFuZ3VhZ2VzL1J1YnkvUnVieS5zbG47YmluZGluZ2FuZHlh bWxmeGNvcA0KQEAgLTE2OCw4ICsxNjgsOCBAQA0KIAkJezc3MzIzQjA2LTE1QTItNENGNC04QTdB LTg2RUFBMkI2NjQ5OH0uVjQgUmVsZWFzZXxBbnkgQ1BVLkJ1aWxkLjAgPSBWNCBSZWxlYXNlfEFu eSBDUFUNCiAJCXtBQTE4QTI0NS1FMzQyLTQzNjgtQTQ3NC04MzE3ODMxMUE3NDJ9LkRlYnVnfEFu eSBDUFUuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQ0KIAkJe0FBMThBMjQ1LUUzNDItNDM2OC1B NDc0LTgzMTc4MzExQTc0Mn0uRGVidWd8QW55IENQVS5CdWlsZC4wID0gRGVidWd8QW55IENQVQ0K LQkJe0FBMThBMjQ1LUUzNDItNDM2OC1BNDc0LTgzMTc4MzExQTc0Mn0uRnhDb3B8QW55IENQVS5B Y3RpdmVDZmcgPSBSZWxlYXNlfEFueSBDUFUNCi0JCXtBQTE4QTI0NS1FMzQyLTQzNjgtQTQ3NC04 MzE3ODMxMUE3NDJ9LkZ4Q29wfEFueSBDUFUuQnVpbGQuMCA9IFJlbGVhc2V8QW55IENQVQ0KKwkJ e0FBMThBMjQ1LUUzNDItNDM2OC1BNDc0LTgzMTc4MzExQTc0Mn0uRnhDb3B8QW55IENQVS5BY3Rp dmVDZmcgPSBGeENvcHxBbnkgQ1BVDQorCQl7QUExOEEyNDUtRTM0Mi00MzY4LUE0NzQtODMxNzgz MTFBNzQyfS5GeENvcHxBbnkgQ1BVLkJ1aWxkLjAgPSBGeENvcHxBbnkgQ1BVDQogCQl7QUExOEEy NDUtRTM0Mi00MzY4LUE0NzQtODMxNzgzMTFBNzQyfS5SZWxlYXNlfEFueSBDUFUuQWN0aXZlQ2Zn ID0gUmVsZWFzZXxBbnkgQ1BVDQogCQl7QUExOEEyNDUtRTM0Mi00MzY4LUE0NzQtODMxNzgzMTFB NzQyfS5SZWxlYXNlfEFueSBDUFUuQnVpbGQuMCA9IFJlbGVhc2V8QW55IENQVQ0KIAkJe0FBMThB MjQ1LUUzNDItNDM2OC1BNDc0LTgzMTc4MzExQTc0Mn0uU2lsdmVybGlnaHQgRGVidWd8QW55IENQ VS5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVDQpAQCAtMjEzLDggKzIxMyw4IEBADQogCQl7NkVF N0E0MjgtRDgwMy00MUJDLTgyNDgtMTI5N0MzQUNFMzY5fS5WNCBSZWxlYXNlfEFueSBDUFUuQnVp bGQuMCA9IFY0IFJlbGVhc2V8QW55IENQVQ0KIAkJe0VEODJBMzQ2LTFDRDktNENCMC05QzAwLTRD REQ0Q0Y1NzdDRn0uRGVidWd8QW55IENQVS5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVDQogCQl7 RUQ4MkEzNDYtMUNEOS00Q0IwLTlDMDAtNENERDRDRjU3N0NGfS5EZWJ1Z3xBbnkgQ1BVLkJ1aWxk LjAgPSBEZWJ1Z3xBbnkgQ1BVDQotCQl7RUQ4MkEzNDYtMUNEOS00Q0IwLTlDMDAtNENERDRDRjU3 N0NGfS5GeENvcHxBbnkgQ1BVLkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQ0KLQkJe0VEODJB MzQ2LTFDRDktNENCMC05QzAwLTRDREQ0Q0Y1NzdDRn0uRnhDb3B8QW55IENQVS5CdWlsZC4wID0g UmVsZWFzZXxBbnkgQ1BVDQorCQl7RUQ4MkEzNDYtMUNEOS00Q0IwLTlDMDAtNENERDRDRjU3N0NG fS5GeENvcHxBbnkgQ1BVLkFjdGl2ZUNmZyA9IEZ4Q29wfEFueSBDUFUNCisJCXtFRDgyQTM0Ni0x Q0Q5LTRDQjAtOUMwMC00Q0RENENGNTc3Q0Z9LkZ4Q29wfEFueSBDUFUuQnVpbGQuMCA9IEZ4Q29w fEFueSBDUFUNCiAJCXtFRDgyQTM0Ni0xQ0Q5LTRDQjAtOUMwMC00Q0RENENGNTc3Q0Z9LlJlbGVh c2V8QW55IENQVS5BY3RpdmVDZmcgPSBSZWxlYXNlfEFueSBDUFUNCiAJCXtFRDgyQTM0Ni0xQ0Q5 LTRDQjAtOUMwMC00Q0RENENGNTc3Q0Z9LlJlbGVhc2V8QW55IENQVS5CdWlsZC4wID0gUmVsZWFz ZXxBbnkgQ1BVDQogCQl7RUQ4MkEzNDYtMUNEOS00Q0IwLTlDMDAtNENERDRDRjU3N0NGfS5TaWx2 ZXJsaWdodCBEZWJ1Z3xBbnkgQ1BVLkFjdGl2ZUNmZyA9IFNpbHZlcmxpZ2h0IERlYnVnfEFueSBD UFUNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NCmVkaXQ6ICQvRGV2MTAvZmVhdHVyZS92c19sYW5nczAxX3MvTWVybGlu L01haW4vTGFuZ3VhZ2VzL1J1YnkvSXJvblJ1YnkuVGVzdHMvUnVieVRlc3RzLmNzO0MxNTQ0NTQ2 DQpGaWxlOiBSdWJ5VGVzdHMuY3MNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSAkL0RldjEwL2ZlYXR1cmUvdnNf bGFuZ3MwMV9zL01lcmxpbi9NYWluL0xhbmd1YWdlcy9SdWJ5L0lyb25SdWJ5LlRlc3RzL1J1YnlU ZXN0cy5jcztDMTU0NDU0NiAgKHNlcnZlcikgICAgMS8zMC8yMDEwIDk6NTEgQU0NCisrKyBTaGVs dmVkIENoYW5nZTogJC9EZXYxMC9mZWF0dXJlL3ZzX2xhbmdzMDFfcy9NZXJsaW4vTWFpbi9MYW5n dWFnZXMvUnVieS9Jcm9uUnVieS5UZXN0cy9SdWJ5VGVzdHMuY3M7YmluZGluZ2FuZHlhbWxmeGNv cA0KQEAgLTY5Myw2ICs2OTMsOCBAQA0KICAgICAgICAgICAgICAgICBBbGlhc0luTW9kdWxlRXZh bDEsDQogICAgICAgICAgICAgICAgIE1ldGhvZEFsaWFzSW5Nb2R1bGVFdmFsMSwNCiAgICAgICAg ICAgICAgICAgU3VwZXJJbk1vZHVsZUV2YWwxLA0KKyAgICAgICAgICAgICAgICBTdXBlckNhbGxJ bkV2YWxXaXRoQmluZGluZzE4LA0KKyAgICAgICAgICAgICAgICBTdXBlckNhbGxJbkV2YWxXaXRo QmluZGluZzE5LA0KICAgICAgICAgICAgICAgICAvLyBUT0RPOiBTdXBlclBhcmFtZXRlcmxlc3NF dmFsMSwNCiAgICAgICAgICAgICAgICAgLy8gVE9ETzogU3VwZXJQYXJhbWV0ZXJsZXNzRXZhbDIs DQogICAgICAgICAgICAgICAgIFN1cGVySW5EZWZpbmVNZXRob2RFdmFsMSwNCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N CmVkaXQ6ICQvRGV2MTAvZmVhdHVyZS92c19sYW5nczAxX3MvTWVybGluL01haW4vTGFuZ3VhZ2Vz L1J1YnkvSXJvblJ1YnkuVGVzdHMvUnVudGltZS9TdXBlclRlc3RzLmNzO0MxMjk5MzU0DQpGaWxl OiBTdXBlclRlc3RzLmNzDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gJC9EZXYxMC9mZWF0dXJlL3ZzX2xhbmdz MDFfcy9NZXJsaW4vTWFpbi9MYW5ndWFnZXMvUnVieS9Jcm9uUnVieS5UZXN0cy9SdW50aW1lL1N1 cGVyVGVzdHMuY3M7QzEyOTkzNTQgIChzZXJ2ZXIpICAgIDEvMzEvMjAxMCA3OjUzIFBNDQorKysg U2hlbHZlZCBDaGFuZ2U6ICQvRGV2MTAvZmVhdHVyZS92c19sYW5nczAxX3MvTWVybGluL01haW4v TGFuZ3VhZ2VzL1J1YnkvSXJvblJ1YnkuVGVzdHMvUnVudGltZS9TdXBlclRlc3RzLmNzO2JpbmRp bmdhbmR5YW1sZnhjb3ANCkBAIC02MjAsNiArNjIwLDczIEBADQogQjo6Zm9vDQogIik7DQogICAg ICAgICB9DQorDQorICAgICAgICAvLy8gPHN1bW1hcnk+DQorICAgICAgICAvLy8gTVJJIDEuODog VGhlIHNlbGYgb2JqZWN0IGNhcHR1cmVkIGJ5IEtlcm5lbCNiaW5kaW5nIGlzIHRoZSByZWNlaXZl ciBvZiB0aGUgYmluZGluZyBjYWxsLg0KKyAgICAgICAgLy8vIFRodXMgdGhlIHNlbGYgdXNlZCBp biBldmFsIG1pZ2h0IGJlIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgdGhlIHNjb3BlIGhvbGRzIG9u Lg0KKyAgICAgICAgLy8vIFN1cGVyIGNhbGwgdXNlcyB0aGUgc2NvcGUncyBzZWxmIG9iamVjdC4N CisgICAgICAgIC8vLyA8L3N1bW1hcnk+DQorICAgICAgICBbT3B0aW9ucyhDb21wYXRpYmlsaXR5 ID0gUnVieUNvbXBhdGliaWxpdHkuUnVieTE4KV0NCisgICAgICAgIHB1YmxpYyB2b2lkIFN1cGVy Q2FsbEluRXZhbFdpdGhCaW5kaW5nMTgoKSB7DQorICAgICAgICAgICAgVGVzdE91dHB1dChAIg0K K21vZHVsZSBLZXJuZWwNCisgIHB1YmxpYyA6YmluZGluZw0KK2VuZA0KKw0KK2NsYXNzIEENCisg IGRlZiBtDQorICAgIHB1dHMgJ0E6Om0nDQorICBlbmQNCitlbmQNCisNCitjbGFzcyBEIDwgQQ0K KyAgZGVmIG0NCisgICAgcHV0cyAnRDo6bScNCisgICAgcCBzZWxmLmNsYXNzDQorICAgIA0KKyAg ICBjYiA9IEMubmV3LmJpbmRpbmcgICAgICAgICAgICAgIyBiaW5kaW5nIGNhcHR1cmVzIEMubmV3 IGFzIHNlbGYNCisgICAgZXZhbCgnDQorICAgICAgICBwIHNlbGYuY2xhc3MgICAgICAgICAgICAg ICAjIHNlbGYgaXMgZGlmZmVyZW50IGZyb20gUnVieVNjb3BlLlNlbGZPYmplY3QgaGVyZQ0KKyAg ICAgICAgc3VwZXIgICAgICAgICAgICAgICAgICAgICAgIyBzdXBlciBwaWNrcyB1cCBSdWJ5U2Nv cGUuU2VsZk9iamVjdA0KKyAgICAnLCBjYikNCisgIGVuZA0KK2VuZA0KKw0KK2NsYXNzIEMNCitl bmQNCisNCitELm5ldy5tIiwgQCINCitEOjptDQorRA0KK0MNCitBOjptDQorIik7DQorICAgICAg ICB9DQorDQorICAgICAgICAvLy8gPHN1bW1hcnk+DQorICAgICAgICAvLy8gTVJJIDEuOTogVGhl IHNlbGYgb2JqZWN0IGNhcHR1cmVkIGJ5IEtlcm5lbCNiaW5kaW5nIGlzIHRoZSBvbmUgY2FwdHVy ZWQgYnkgdGhlIHNjb3BlLCBub3QgdGhlIHJlY2VpdmVyIG9mIHRoZSBiaW5kaW5nIGNhbGwuDQor ICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAgICAgW09wdGlvbnMoQ29tcGF0aWJpbGl0eSA9 IFJ1YnlDb21wYXRpYmlsaXR5LlJ1YnkxOSldDQorICAgICAgICBwdWJsaWMgdm9pZCBTdXBlckNh bGxJbkV2YWxXaXRoQmluZGluZzE5KCkgew0KKyAgICAgICAgICAgIFRlc3RPdXRwdXQoQCINCitj bGFzcyBDDQorICBkZWYgZm9vDQorICAgIDEyMw0KKyAgZW5kDQorZW5kDQorDQorYiA9IEMubmV3 LnNlbmQoOmJpbmRpbmcpDQorcCBzZWxmDQorZXZhbCgnDQorICBwIHNlbGYNCisgIHAgc2VsZi5m b28gcmVzY3VlIHAgJCENCisnLCBiKQ0KKyIsIEAiDQorbWFpbg0KK21haW4NCisjPE5vTWV0aG9k RXJyb3I6IHVuZGVmaW5lZCBtZXRob2QgYGZvbycgZm9yIG1haW46T2JqZWN0Pg0KKyIpOw0KKyAg ICAgICAgfQ0KICAgICB9DQogDQogfQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KZWRpdDogJC9EZXYxMC9mZWF0dXJl L3ZzX2xhbmdzMDFfcy9NZXJsaW4vTWFpbi9MYW5ndWFnZXMvUnVieS9MaWJyYXJpZXMuTENBX1JF U1RSSUNURUQvQnVpbHRpbnMvS2VybmVsT3BzLmNzO0MxNDk2MjU4DQpGaWxlOiBLZXJuZWxPcHMu Y3MNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NCi0tLSAkL0RldjEwL2ZlYXR1cmUvdnNfbGFuZ3MwMV9zL01lcmxpbi9N YWluL0xhbmd1YWdlcy9SdWJ5L0xpYnJhcmllcy5MQ0FfUkVTVFJJQ1RFRC9CdWlsdGlucy9LZXJu ZWxPcHMuY3M7QzE0OTYyNTggIChzZXJ2ZXIpICAgIDEvMzEvMjAxMCA3OjUzIFBNDQorKysgU2hl bHZlZCBDaGFuZ2U6ICQvRGV2MTAvZmVhdHVyZS92c19sYW5nczAxX3MvTWVybGluL01haW4vTGFu Z3VhZ2VzL1J1YnkvTGlicmFyaWVzLkxDQV9SRVNUUklDVEVEL0J1aWx0aW5zL0tlcm5lbE9wcy5j cztiaW5kaW5nYW5keWFtbGZ4Y29wDQpAQCAtMTQzLDcgKzE0MywxMSBAQA0KICAgICAgICAgW1J1 YnlNZXRob2QoImJpbmRpbmciLCBSdWJ5TWV0aG9kQXR0cmlidXRlcy5Qcml2YXRlSW5zdGFuY2Up XQ0KICAgICAgICAgW1J1YnlNZXRob2QoImJpbmRpbmciLCBSdWJ5TWV0aG9kQXR0cmlidXRlcy5Q dWJsaWNTaW5nbGV0b24pXQ0KICAgICAgICAgcHVibGljIHN0YXRpYyBCaW5kaW5nLyohKi8gR2V0 TG9jYWxTY29wZShSdWJ5U2NvcGUvKiEqLyBzY29wZSwgb2JqZWN0IHNlbGYpIHsNCi0gICAgICAg ICAgICByZXR1cm4gbmV3IEJpbmRpbmcoc2NvcGUpOw0KKyAgICAgICAgICAgIGlmIChzY29wZS5S dWJ5Q29udGV4dC5SdWJ5T3B0aW9ucy5Db21wYXRpYmlsaXR5ID09IFJ1YnlDb21wYXRpYmlsaXR5 LlJ1YnkxOCkgew0KKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEJpbmRpbmcoc2NvcGUsIHNl bGYpOw0KKyAgICAgICAgICAgIH0gZWxzZSB7DQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcg QmluZGluZyhzY29wZSk7DQorICAgICAgICAgICAgfQ0KICAgICAgICAgfQ0KIA0KICAgICAgICAg W1J1YnlNZXRob2QoImJsb2NrX2dpdmVuPyIsIFJ1YnlNZXRob2RBdHRyaWJ1dGVzLlByaXZhdGVJ bnN0YW5jZSldDQpAQCAtNjEyLDggKzYxNiwxNiBAQA0KICAgICAgICAgcHVibGljIHN0YXRpYyBv YmplY3QgRXZhbHVhdGUoUnVieVNjb3BlLyohKi8gc2NvcGUsIG9iamVjdCBzZWxmLCBbTm90TnVs bF1NdXRhYmxlU3RyaW5nLyohKi8gY29kZSwNCiAgICAgICAgICAgICBbT3B0aW9uYWxdQmluZGlu ZyBiaW5kaW5nLCBbT3B0aW9uYWwsIE5vdE51bGxdTXV0YWJsZVN0cmluZyBmaWxlLCBbRGVmYXVs dFBhcmFtZXRlclZhbHVlKDEpXWludCBsaW5lKSB7DQogDQotICAgICAgICAgICAgUnVieVNjb3Bl IHRhcmdldFNjb3BlID0gKGJpbmRpbmcgIT0gbnVsbCkgPyBiaW5kaW5nLkxvY2FsU2NvcGUgOiBz Y29wZTsNCi0gICAgICAgICAgICByZXR1cm4gUnVieVV0aWxzLkV2YWx1YXRlKGNvZGUsIHRhcmdl dFNjb3BlLCB0YXJnZXRTY29wZS5TZWxmT2JqZWN0LCBudWxsLCBmaWxlLCBsaW5lKTsNCisgICAg ICAgICAgICBSdWJ5U2NvcGUgdGFyZ2V0U2NvcGU7DQorICAgICAgICAgICAgb2JqZWN0IHRhcmdl dFNlbGY7DQorICAgICAgICAgICAgaWYgKGJpbmRpbmcgIT0gbnVsbCkgew0KKyAgICAgICAgICAg ICAgICB0YXJnZXRTY29wZSA9IGJpbmRpbmcuTG9jYWxTY29wZTsNCisgICAgICAgICAgICAgICAg dGFyZ2V0U2VsZiA9IGJpbmRpbmcuU2VsZk9iamVjdDsNCisgICAgICAgICAgICB9IGVsc2Ugew0K KyAgICAgICAgICAgICAgICB0YXJnZXRTY29wZSA9IHNjb3BlOw0KKyAgICAgICAgICAgICAgICB0 YXJnZXRTZWxmID0gc2VsZjsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgcmV0dXJuIFJ1 YnlVdGlscy5FdmFsdWF0ZShjb2RlLCB0YXJnZXRTY29wZSwgdGFyZ2V0U2VsZiwgbnVsbCwgZmls ZSwgbGluZSk7DQogICAgICAgICB9DQogDQogICAgICAgICBbUnVieU1ldGhvZCgiZXZhbCIsIFJ1 YnlNZXRob2RBdHRyaWJ1dGVzLlByaXZhdGVJbnN0YW5jZSldDQo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQplZGl0OiAk L0RldjEwL2ZlYXR1cmUvdnNfbGFuZ3MwMV9zL01lcmxpbi9NYWluL0xhbmd1YWdlcy9SdWJ5L1J1 YnkvQnVpbHRpbnMvQmluZGluZy5jcztDNzkxMDk0DQpGaWxlOiBCaW5kaW5nLmNzDQo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09DQotLS0gJC9EZXYxMC9mZWF0dXJlL3ZzX2xhbmdzMDFfcy9NZXJsaW4vTWFpbi9MYW5ndWFn ZXMvUnVieS9SdWJ5L0J1aWx0aW5zL0JpbmRpbmcuY3M7Qzc5MTA5NCAgKHNlcnZlcikgICAgMS8z MS8yMDEwIDc6NTMgUE0NCisrKyBTaGVsdmVkIENoYW5nZTogJC9EZXYxMC9mZWF0dXJlL3ZzX2xh bmdzMDFfcy9NZXJsaW4vTWFpbi9MYW5ndWFnZXMvUnVieS9SdWJ5L0J1aWx0aW5zL0JpbmRpbmcu Y3M7YmluZGluZ2FuZHlhbWxmeGNvcA0KQEAgLTE5LDE0ICsxOSwzMCBAQA0KIG5hbWVzcGFjZSBJ cm9uUnVieS5CdWlsdGlucyB7DQogICAgIHB1YmxpYyBzZWFsZWQgY2xhc3MgQmluZGluZyB7DQog ICAgICAgICBwcml2YXRlIHJlYWRvbmx5IFJ1YnlTY29wZS8qISovIF9sb2NhbFNjb3BlOw0KKyAg ICAgICAgcHJpdmF0ZSByZWFkb25seSBvYmplY3QgX3NlbGY7DQogDQorICAgICAgICAvLy8gPHN1 bW1hcnk+DQorICAgICAgICAvLy8gTG9jYWwgc2NvcGUgY2FwdHVyZWQgYnkgdGhlIGJpbmRpbmcu DQorICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KICAgICAgICAgcHVibGljIFJ1YnlTY29wZS8qISov IExvY2FsU2NvcGUgew0KICAgICAgICAgICAgIGdldCB7IHJldHVybiBfbG9jYWxTY29wZTsgfQ0K ICAgICAgICAgfQ0KIA0KLSAgICAgICAgcHVibGljIEJpbmRpbmcoUnVieVNjb3BlLyohKi8gbG9j YWxTY29wZSkgew0KKyAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KKyAgICAgICAgLy8vIFNlbGYgb2Jq ZWN0IGNhcHR1cmVkIGJ5IHRoZSBiaW5kaW5nLiBDYW4gYmUgZGlmZmVyZW50IGZyb20gTG9jYWxT Y29wZS5TZWxmT2JqZWN0IGluIE1SSSAxLjguDQorICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAg ICAgICAgcHVibGljIG9iamVjdCBTZWxmT2JqZWN0IHsNCisgICAgICAgICAgICBnZXQgeyByZXR1 cm4gX3NlbGY7IH0NCisgICAgICAgIH0NCisNCisgICAgICAgIHB1YmxpYyBCaW5kaW5nKFJ1YnlT Y29wZS8qISovIGxvY2FsU2NvcGUpIA0KKyAgICAgICAgICAgIDogdGhpcyhsb2NhbFNjb3BlLCBs b2NhbFNjb3BlLlNlbGZPYmplY3QpIHsNCisgICAgICAgIH0NCisNCisgICAgICAgIHB1YmxpYyBC aW5kaW5nKFJ1YnlTY29wZS8qISovIGxvY2FsU2NvcGUsIG9iamVjdCBzZWxmKSB7DQogICAgICAg ICAgICAgQXNzZXJ0Lk5vdE51bGwobG9jYWxTY29wZSk7DQogICAgICAgICAgICAgX2xvY2FsU2Nv cGUgPSBsb2NhbFNjb3BlOw0KKyAgICAgICAgICAgIF9zZWxmID0gc2VsZjsNCiAgICAgICAgIH0N CiAgICAgfQ0KIH0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCg== --_002_4B342496A3EFEB48839E10BB4BF5964C384AE0F3TK5EX14MBXC122r_-- ]