From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.43; helo=mga05.intel.com; envelope-from=jiewen.yao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id E6182203555E4 for ; Sun, 5 Nov 2017 19:44:04 -0800 (PST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga105.fm.intel.com with ESMTP; 05 Nov 2017 19:48:01 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,351,1505804400"; d="scan'208,217";a="1033854452" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga003.jf.intel.com with ESMTP; 05 Nov 2017 19:48:00 -0800 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 5 Nov 2017 19:47:59 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.175]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.152]) with mapi id 14.03.0319.002; Mon, 6 Nov 2017 11:47:57 +0800 From: "Yao, Jiewen" To: "Wang, Jian J" CC: Fan Jeff , "Kinney, Michael D" , "edk2-devel@lists.01.org" , "Dong, Eric" , "Zeng, Star" Thread-Topic: [PATCH 3/3] UefiCpuPkg/CpuExceptionHandlerLib: Add stack switch support Thread-Index: AQHTUlQt7kMmlPjLfkaS9nSj0Ju2aqL+wnPg//+GSQCAANyYAIACuK3w///wsQCAAAqBAIAEKO2AgACdjVT//4MBAAASyOkA Date: Mon, 6 Nov 2017 03:47:57 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503AA0F8AE@shsmsx102.ccr.corp.intel.com> References: <20171031142412.21680-1-jian.j.wang@intel.com> <20171031142412.21680-4-jian.j.wang@intel.com>, <74D8A39837DF1E4DA445A8C0B3885C503AA0AED6@shsmsx102.ccr.corp.intel.com> , <74D8A39837DF1E4DA445A8C0B3885C503AA0DA30@shsmsx102.ccr.corp.intel.com>, , <1B8B2A1E-869E-4B29-91E7-6A423F89FCDA@intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiY2QzYjZlZjMtY2ZiYi00YWRiLTgxYzYtN2M5ZWRiNjgyYzA3IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJPSG1QWUpmM1lTcW1nTVV6NEt3elhpU0tvbW9NVEhCVWVwcE5JZVwvVUIwbzZkVWh5NEtCczd1RVVwSElRVHZhSCJ9 x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: Re: [PATCH 3/3] UefiCpuPkg/CpuExceptionHandlerLib: Add stack switch support X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Nov 2017 03:44:06 -0000 Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 MSkgICAgICAgWWVzLCBtdWx0aXBsZSBBUHMgbWF5IGdldCBleGNlcHRpb24gYXQgc2FtZSB0aW1l LiBCU1AgY2FuIHNlbmQgc3RhcnR1cCBhbGwgQVBzLg0KDQoyKSAgICAgICBZZXMsIEkgdGhpbmsg d2UgbmVlZCBnZXQgY2xlYXIgb24gaG93IHdlIHN1cHBvcnQgUEVJIGluIHRoZSBmdXR1cmUuDQpJ ZiB3ZSB1c2Ugc2FtZSBBUEkgYnV0IHdpdGggZGlmZmVyZW50IGJlaGF2aW9yLCBwZW9wbGUgbWF5 IGdldCBjb25mdXNlZC4gqEMgVGhhdCBpcyBteSBjb25jZXJuLg0KDQpUaGFuayB5b3UNCllhbyBK aWV3ZW4NCg0KRnJvbTogV2FuZywgSmlhbiBKDQpTZW50OiBNb25kYXksIE5vdmVtYmVyIDYsIDIw MTcgMTA6MjcgQU0NClRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQpDYzog RmFuIEplZmYgPHZhbmplZmZfOTE5QGhvdG1haWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQgPG1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IERvbmcs IEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwu Y29tPg0KU3ViamVjdDogUkU6IFtQQVRDSCAzLzNdIFVlZmlDcHVQa2cvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYjogQWRkIHN0YWNrIHN3aXRjaCBzdXBwb3J0DQoNCkppd2VuLA0KDQpGb3IgMSksIHRo ZSBzdGFjayBpcyB1c2VkIGZvciBleGNlcHRpb24gb25seS4gSXMgdGhlcmUgYW55IGNoYW5jZSB0 aGF0IHRoZSBzYW1lIGV4Y2VwdGlvbiBpcyB0cmlnZ2VyZWQgYnkgYm90aCBCU1AgYW5kIEFQIGF0 IHRoZSBzYW1lIHRpbWU/DQpGb3IgMiksIHNlcGFyYXRlIHN0YWNrIGlzIHVzZWQgbWFpbmx5IGZv ciBTdGFjayBHdWFyZCBmZWF0dXJlIHdoaWNoIGlzIHN1cHBvcnRlZCBvbmx5IGJ5IERYRSAoYmVj YXVzZSBpdCBuZWVkcyBwYWdpbmcgdG8gd29yaykuIEkgdGhpbmsgd2UgZG9uoa90IG5lZWQgdG8g dGFrZSBjYXJlIG9mIFBFSSBjb2RlLiBUaGUgZ2xvYmFsIGNhbiBiZSBqdXN0IGRlZmluZWQgaW4g RHhlRXhjZXB0aW9uLmMgZmlsZS4NCg0KVGhhbmtzLA0KSmlhbg0KDQpGcm9tOiBZYW8sIEppZXdl bg0KU2VudDogTW9uZGF5LCBOb3ZlbWJlciAwNiwgMjAxNyA5OjU0IEFNDQpUbzogV2FuZywgSmlh biBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb208bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNvbT4+ DQpDYzogRmFuIEplZmYgPHZhbmplZmZfOTE5QGhvdG1haWwuY29tPG1haWx0bzp2YW5qZWZmXzkx OUBob3RtYWlsLmNvbT4+OyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRl bC5jb208bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPj47IGVkazItZGV2ZWxAbGlz dHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz47IERvbmcsIEVyaWMgPGVy aWMuZG9uZ0BpbnRlbC5jb208bWFpbHRvOmVyaWMuZG9uZ0BpbnRlbC5jb20+PjsgWmVuZywgU3Rh ciA8c3Rhci56ZW5nQGludGVsLmNvbTxtYWlsdG86c3Rhci56ZW5nQGludGVsLmNvbT4+DQpTdWJq ZWN0OiBSZTogW1BBVENIIDMvM10gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVyTGliOiBB ZGQgc3RhY2sgc3dpdGNoIHN1cHBvcnQNCg0KSSB0aGluayB3ZSBuZWVkIGNvbnNpZGVyIDIgYWRk aXRpb25hbCB0aGluZ3M6DQoxKSBob3cgdG8gc3VwcG9ydCBkaWZmZXJlbnQgc3RhY2sgZm9yIGFw Pw0KMikgaG93IHRvIHN1cHBvcnQgcGVpIHBoYXNlLCB3aGVuIHRoZSBnbG9iYWwgdmFyaWFibGUg aXMgcmVhZCBvbmx5Pw0KDQp0aGFuayB5b3UhDQpZYW8sIEppZXdlbg0KDQoNCtTaIDIwMTfE6jEx 1MI2yNWjrMnPzuc4OjMwo6xXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbTxtYWls dG86amlhbi5qLndhbmdAaW50ZWwuY29tPj4g0LS1wKO6DQpKZWZmLA0KDQpUaGF0oa9zIGEgZ29v ZCBzdWdnZXN0aW9uLiBEbyB5b3Uga25vdyBpZiB0aGVyZaGvcyBhbnkgcGl0ZmFsbCBpbiB1c2lu ZyBkYXRhIHNlZ21lbnQgbWVtb3J5IGFzIHN0YWNrPw0KDQpUaGFua3MsDQpKaWFuDQoNCkZyb206 IEZhbiBKZWZmIFttYWlsdG86dmFuamVmZl85MTlAaG90bWFpbC5jb21dDQpTZW50OiBGcmlkYXks IE5vdmVtYmVyIDAzLCAyMDE3IDQ6NTkgUE0NClRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0Bp bnRlbC5jb208bWFpbHRvOmppZXdlbi55YW9AaW50ZWwuY29tPj47IEtpbm5leSwgTWljaGFlbCBE IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbTxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRl bC5jb20+PjsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb208bWFpbHRvOmppYW4u ai53YW5nQGludGVsLmNvbT4+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmc+DQpDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbTxt YWlsdG86ZXJpYy5kb25nQGludGVsLmNvbT4+OyBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwu Y29tPG1haWx0bzpzdGFyLnplbmdAaW50ZWwuY29tPj4NClN1YmplY3Q6ILTwuLQ6IFtQQVRDSCAz LzNdIFVlZmlDcHVQa2cvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYjogQWRkIHN0YWNrIHN3aXRjaCBz dXBwb3J0DQoNCg0KSmlhbiwNCg0KDQoNCkZvciBleGFtcGxlLCB5b3UgY291bGQgdXNlIHRoZSBn bG9iYWwgdmFyaWFibGUgVUlOVDggTmV3U3RhY2tbMjU2XSBpbnN0ZWFkIG9mIGFsbG9jYXRlIG1l bW9yeSBmb3Igc3RhY2sgYW5kIHRyeSB0byB1c2UgdGhlIG90aGVyIGdsb2JhbCB2YXJpYWJsZXMg Zm9yIG90aGVyIGFsbG9jYXRlZCBkYXRhLg0KDQoNCg0KRG9lcyBpdCB3b3JrIGZvciB5b3VyIGNh c2U/DQoNCg0KDQpUaGFua3MhDQoNCkplZmYNCg0KDQoNCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fDQpGcm9tOiBlZGsyLWRldmVsIDxlZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMuMDEu b3JnPG1haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnPj4gb24gYmVoYWxmIG9m IEZhbiBKZWZmIDx2YW5qZWZmXzkxOUBob3RtYWlsLmNvbTxtYWlsdG86dmFuamVmZl85MTlAaG90 bWFpbC5jb20+Pg0KU2VudDogRnJpZGF5LCBOb3ZlbWJlciAzLCAyMDE3IDQ6MjE6MjIgUE0NClRv OiBZYW8sIEppZXdlbjsgS2lubmV5LCBNaWNoYWVsIEQ7IFdhbmcsIEppYW4gSjsgZWRrMi1kZXZl bEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPg0KQ2M6IERvbmcs IEVyaWM7IFplbmcsIFN0YXINClN1YmplY3Q6IFtlZGsyXSC08Li0OiBbUEFUQ0ggMy8zXSBVZWZp Q3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjayBzd2l0Y2ggc3VwcG9ydA0K DQpKaWFuLA0KDQpDb3VsZCB5b3UgdXNlIHNvbWUgZ2xvYmFsIHZhcmlhYmxlcyBpbiBodHRwczov L2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvYmxvYi9tYXN0ZXIvVWVmaUNwdVBrZy9MaWJyYXJ5 L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMgdG8gYXZvaWQgYWRkaW5nIG5l dyBBUEk/DQoNCkplZmYNCreivP7IyzogWWFvLCBKaWV3ZW48bWFpbHRvOmppZXdlbi55YW9AaW50 ZWwuY29tPg0Kt6LLzcqxvOQ6IDIwMTfE6jEx1MIzyNUgOToyNA0KytW8/sjLOiBLaW5uZXksIE1p Y2hhZWwgRDxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBGYW4gSmVmZjxtYWls dG86dmFuamVmZl85MTlAaG90bWFpbC5jb20+OyBXYW5nLCBKaWFuIEo8bWFpbHRvOmppYW4uai53 YW5nQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVs QGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmclM2NtYWlsdG86ZWRr Mi1kZXZlbEBsaXN0cy4wMS5vcmc+Pg0Ks63LzTogRG9uZywgRXJpYzxtYWlsdG86ZXJpYy5kb25n QGludGVsLmNvbT47IFplbmcsIFN0YXI8bWFpbHRvOnN0YXIuemVuZ0BpbnRlbC5jb20+DQrW98zi OiBSRTogW1BBVENIIDMvM10gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVyTGliOiBBZGQg c3RhY2sgc3dpdGNoIHN1cHBvcnQNCg0KSEkgSmlhbg0KVGhlcmUgaXMgYW5vdGhlciBwb3RlbnRp YWwgcHJvYmxlbS4NCg0KVGhpcyBmZWF0dXJlIGlzIGVuYWJsZWQgaW4gSW5pdGlhbGl6ZUNwdUlu dGVycnVwdEhhbmRsZXJzKCkuIEhvd2V2ZXIsIHdlIGV4cGVjdCB0aGlzIGlzIGVuYWJsZWQgaW4g SW5pdGlhbGl6ZUNwdUV4Y2VwdGlvbkhhbmRsZXJzKCkuDQoNCkluIG9yZGVyIHRvIGdldCB0aGUg ZXhjZXB0aW9uIHN0YWNrIGluIEluaXRpYWxpemVDcHVFeGNlcHRpb25IYW5kbGVycygpLiBXZSBj YW4gaGF2ZSAyIHdheXM6DQpBKSBMZXQgSW5pdGlhbGl6ZUNwdUV4Y2VwdGlvbkhhbmRsZXJzKCkg YWxsb2NhdGUgdGhlIGV4Y2VwdGlvbiBzdGFjay4NCkIpIExldCBjYWxsZXIgdG8gcGFzcyB0aGUg ZXhjZXB0aW9uIHN0YWNrIHRvIEluaXRpYWxpemVDcHVFeGNlcHRpb25IYW5kbGVycygpLg0KDQpG b3IgQSksIGl0IGlzIGhhcmQsIGJlY2F1c2UgRHhlQ29yZSBjYWxscyBJbml0aWFsaXplQ3B1RXhj ZXB0aW9uSGFuZGxlcnMoKSBlYXJsaWVyIHRoYW4gQ29yZUluaXRpYWxpemVNZW1vcnlTZXJ2aWNl cygpLg0KRm9yIEIpLCBJbml0aWFsaXplQ3B1RXhjZXB0aW9uSGFuZGxlcnMoKSBpbnRlcmZhY2Ug ZG9lcyBub3QgY29udGFpbiBzdWNoIGluZm9ybWF0aW9uLiBXZSBtaWdodCBuZWVkIGFkZCBhIG5l dyBBUEkgdG8gYWRkIHRoZSBleGNlcHRpb24gc3RhY2sgaW5mb3JtYXRpb24sIHN1Y2ggYXMgSW5p dGlhbGl6ZUNwdVN3aXRjaFN0YWNrRXhjZXB0aW9uSGFuZGxlcnMgKCkuDQoNCk9uY2UgdGhpcyBm ZWF0dXJlIGlzIGRvbmUsIGNhbiB3ZSBjbGVhbiB1cCB0aGUgU01NIGNvZGUgdG8gdXNlIHRoZSBu ZXcgQVBJLCBpbnN0ZWFkIG9mIGR1cGxpY2F0ZSB0aGUgU01NIGNvcHkgb2YgZXhjZXB0aW9uIGhh bmRsZXIgPyBUaGUgZXhpc3RpbmcgU01NIGNvcHkgaGFzIHNvbWUgYXNzdW1wdGlvbiBvbiBDUjQg YW5kIEZYU0FWRS9SRVNUT1JFLCBhbmQgaXQgYnJva2UgUXVhcmsgcGxhdGZvcm0uDQoNClRoYW5r IHlvdQ0KWWFvIEppZXdlbg0KDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBG cm9tOiBLaW5uZXksIE1pY2hhZWwgRA0KPiBTZW50OiBXZWRuZXNkYXksIE5vdmVtYmVyIDEsIDIw MTcgMTE6NDMgUE0NCj4gVG86IEZhbiBKZWZmIDx2YW5qZWZmXzkxOUBob3RtYWlsLmNvbTxtYWls dG86dmFuamVmZl85MTlAaG90bWFpbC5jb20+PjsgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50 ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4+Ow0KPiBXYW5nLCBKaWFuIEogPGpp YW4uai53YW5nQGludGVsLmNvbTxtYWlsdG86amlhbi5qLndhbmdAaW50ZWwuY29tPj47IGVkazIt ZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz47IEtpbm5l eSwgTWljaGFlbA0KPiBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbTxtYWlsdG86bWljaGFl bC5kLmtpbm5leUBpbnRlbC5jb20+Pg0KPiBDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVs LmNvbTxtYWlsdG86ZXJpYy5kb25nQGludGVsLmNvbT4+OyBaZW5nLCBTdGFyIDxzdGFyLnplbmdA aW50ZWwuY29tPG1haWx0bzpzdGFyLnplbmdAaW50ZWwuY29tPj4NCj4gU3ViamVjdDogUkU6IFtQ QVRDSCAzLzNdIFVlZmlDcHVQa2cvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYjogQWRkIHN0YWNrIHN3 aXRjaA0KPiBzdXBwb3J0DQo+DQo+IEkgYWdyZWUgdGhhdCBhZGRpbmcgQXNtV3JpdGVUciwgSUEz Ml9UQVNLX1NUQVRFX1NFR01FTlQsDQo+IElBMzJfVFNTX0RFU0NSSVBUT1IgdG8gTWRlUGtnIEJh c2VMaWIgaXMgYSBnb29kIGlkZWEuDQo+DQo+IE1pa2UNCj4NCj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gRnJvbTogZWRrMi1kZXZlbCBbbWFpbHRvOmVkazItZGV2ZWwtYm91bmNlc0Bs aXN0cy4wMS5vcmddIE9uIEJlaGFsZiBPZiBGYW4NCj4gSmVmZg0KPiBTZW50OiBUdWVzZGF5LCBP Y3RvYmVyIDMxLCAyMDE3IDc6MzMgUE0NCj4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGlu dGVsLmNvbTxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+PjsgV2FuZywgSmlhbiBKIDxqaWFu Lmoud2FuZ0BpbnRlbC5jb208bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNvbT4+Ow0KPiBlZGsy LWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+DQo+IENj OiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb208bWFpbHRvOm1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPj47IERvbmcsIEVyaWMNCj4gPGVyaWMuZG9uZ0BpbnRl bC5jb208bWFpbHRvOmVyaWMuZG9uZ0BpbnRlbC5jb20+PjsgWmVuZywgU3RhciA8c3Rhci56ZW5n QGludGVsLmNvbTxtYWlsdG86c3Rhci56ZW5nQGludGVsLmNvbT4+DQo+IFN1YmplY3Q6IFtlZGsy XSC08Li0OiBbUEFUQ0ggMy8zXSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFk ZA0KPiBzdGFjayBzd2l0Y2ggc3VwcG9ydA0KPg0KPiBQZXIgaHR0cHM6Ly9idWd6aWxsYS50aWFu b2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDksIFRSIHNob3VsZCBiZSBzZXR1cA0KPiAoU3Vj aCBhcyBpbiBEeGVJcGxQZWltKSBldmVuIHRob3VnaCBOVUxMIENwdSBFeGNlcHRpb24gSGFuZGxl ciBpbnN0YW5jZSBpcw0KPiBjaG9zZW4uDQo+DQo+IEZvciBsb25nIHRlcm0sIEkgYWdyZWUgd2Ug bmVlZCB0byBtb3ZlIEFzbVdyaXRlVHIsDQo+IElBMzJfVEFTS19TVEFURV9TRUdNRU5ULCBJQTMy X1RTU19ERVNDUklQVE9SIHRvIE1kZVBrZyhTdWNoIGFzIEJhc2VMaWIpDQo+IEZvciB0aGlzIHBh dGNoLCBJIGhhdmUgbm8gc3Ryb25nIG9waW5pb24uDQo+DQo+DQo+ILeivP7IyzogWWFvLCBKaWV3 ZW48bWFpbHRvOmppZXdlbi55YW9AaW50ZWwuY29tPg0KPiC3osvNyrG85DogMjAxN8TqMTHUwjHI 1SA5OjU2DQo+IMrVvP7IyzogV2FuZywgSmlhbiBKPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5j b20+Ow0KPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4w MS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnJTNjbWFpbHRvOmVkazItZGV2ZWxA bGlzdHMuMDEub3JnPj4NCj4gs63LzTogS2lubmV5LCBNaWNoYWVsIEQ8bWFpbHRvOm1pY2hhZWwu ZC5raW5uZXlAaW50ZWwuY29tPjsgRG9uZywNCj4gRXJpYzxtYWlsdG86ZXJpYy5kb25nQGludGVs LmNvbT47IFplbmcsIFN0YXI8bWFpbHRvOnN0YXIuemVuZ0BpbnRlbC5jb20+DQo+INb3zOI6IFJl OiBbZWRrMl0gW1BBVENIIDMvM10gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVyTGliOiBB ZGQgc3RhY2sNCj4gc3dpdGNoIHN1cHBvcnQNCj4NCj4gSGkgSmlhbg0KPiBUaGFua3MgZm9yIHRo ZSBwYXRjaC4NCj4NCj4gQ2FuIHdlIG1vdmUgYWxsIElBMzIgZGVmaW5lZCBkYXRhIHN0cnVjdHVy ZSBvciBmdW5jdGlvbiB0byBNZGVQa2c/DQo+IFN1Y2ggYXM6IEFzbVdyaXRlVHIsIElBMzJfVEFT S19TVEFURV9TRUdNRU5ULCBJQTMyX1RTU19ERVNDUklQVE9SDQo+DQo+IEkgYW0gYWxzbyBjdXJp b3VzIHdoeSB3ZSB1c2UgZGlmZmVyZW50IHBvbGljeSBmb3Igb3RoZXIgYm9vdCBtb2RlLg0KPiBD YW4gd2UgdXNlIGNvbnNpc3RlbnQgcG9saWN5Pw0KPiA+ICsgIGlmIChQY2RHZXRCb29sIChQY2RD cHVTdGFja0d1YXJkKSkgew0KPiA+ICsgICAgLy8NCj4gPiArICAgIC8vIFN0YWNrIEd1YXJkIHdv cmtzIHdpdGggdGhlIHN1cHBvcnQgb2YgcGFnZSB0YWJsZSBlc3RhYmxpc2hlZCBhbmQNCj4gPiAr ICAgIC8vIG1lbW9yeSBtYW5hZ2VtZW50LiBTbyB3ZSBoYXZlIHRvIGV4Y2x1ZGUgdGhvc2UgYm9v dCBtb2Rlcw0KPiA+IHdpdGhvdXQNCj4gPiArICAgIC8vIHRoZW0uDQo+ID4gKyAgICAvLw0KPiA+ ICsgICAgc3dpdGNoIChHZXRCb290TW9kZUhvYigpKSB7DQo+ID4gKyAgICBjYXNlIEJPT1RfT05f RkxBU0hfVVBEQVRFOg0KPiA+ICsgICAgY2FzZSBCT09UX0lOX1JFQ09WRVJZX01PREU6DQo+ID4g KyAgICBjYXNlIEJPT1RfT05fUzNfUkVTVU1FOg0KPiA+ICsgICAgICBicmVhazsNCj4gPiArDQo+ ID4gKyAgICBkZWZhdWx0Og0KPiA+ICsgICAgICBBcmNoU2V0dXBFeGNwZXRpb25TdGFjayAoSWR0 VGFibGUpOw0KPiA+ICsgICAgICBicmVhazsNCj4gPiArICAgIH0NCj4gPiArICB9DQo+DQo+DQo+ IFRoYW5rIHlvdQ0KPiBZYW8gSmlld2VuDQo+DQo+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiBGcm9tOiBXYW5nLCBKaWFuIEoNCj4gPiBTZW50OiBUdWVzZGF5LCBPY3RvYmVy IDMxLCAyMDE3IDEwOjI0IFBNDQo+ID4gVG86IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0 bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4NCj4gPiBDYzogWmVuZywgU3RhciA8c3Rhci56ZW5n QGludGVsLmNvbTxtYWlsdG86c3Rhci56ZW5nQGludGVsLmNvbT4+OyBEb25nLCBFcmljDQo+ID4g PGVyaWMuZG9uZ0BpbnRlbC5jb208bWFpbHRvOmVyaWMuZG9uZ0BpbnRlbC5jb20+PjsgWWFvLCBK aWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4+ OyBLaW5uZXksDQo+ID4gTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbTxtYWls dG86bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+Pg0KPiA+IFN1YmplY3Q6IFtQQVRDSCAzLzNd IFVlZmlDcHVQa2cvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYjogQWRkIHN0YWNrDQo+ID4gc3dpdGNo IHN1cHBvcnQNCj4gPg0KPiA+IElmIFN0YWNrIEd1YXJkIGlzIGVuYWJsZWQgYW5kIHRoZXJlJ3Mg cmVhbGx5IGEgc3RhY2sgb3ZlcmZsb3cgaGFwcGVuZWQNCj4gPiBkdXJpbmcgYm9vdCwgYSBQYWdl IEZhdWx0IGV4Y2VwdGlvbiB3aWxsIGJlIHRyaWdnZXJlZC4gQmVjYXVzZSB0aGUNCj4gPiBzdGFj ayBpcyBvdXQgb2YgdXNhZ2UsIHRoZSBleGNlcHRpb24gaGFuZGxlciwgd2hpY2ggc2hhcmVzIHRo ZSBzdGFjaw0KPiA+IHdpdGggbm9ybWFsIFVFRkkgZHJpdmVyLCBjYW5ub3QgYmUgZXhlY3V0ZWQg YW5kIGNhbm5vdCBkdW1wIHRoZSBwcm9jZXNzb3INCj4gaW5mb3JtYXRpb24uDQo+ID4NCj4gPiBX aXRob3V0IHRob3NlIGluZm9ybWF0aW9uLCBpdCdzIHZlcnkgZGlmZmljdWx0IGZvciB0aGUgQklP UyBkZXZlbG9wZXJzDQo+ID4gbG9jYXRlIHRoZSByb290IGNhdXNlIG9mIHN0YWNrIG92ZXJmbG93 LiBBbmQgd2l0aG91dCBhIHdvcmthYmxlIHN0YWNrLA0KPiA+IHRoZSBkZXZlbG9wZXIgY2Fubm90 IGV2ZW50IHVzZSBzaW5nbGUgc3RlcCB0byBkZWJ1ZyB0aGUgVUVGSSBkcml2ZXIgd2l0aCBKVEFH DQo+IGRlYnVnZ2VyLg0KPiA+DQo+ID4gSW4gb3JkZXIgdG8gbWFrZSBzdXJlIHRoZSBleGNlcHRp b24gaGFuZGxlciB0byBleGVjdXRlIG5vcm1hbGx5IGFmdGVyDQo+ID4gc3RhY2sgb3ZlcmZsb3cu IFdlIG5lZWQgc2VwYXJhdGUgc3RhY2tzIGZvciBleGNlcHRpb24gaGFuZGxlcnMgaW4gY2FzZQ0K PiA+IG9mIHVudXNhYmxlIHN0YWNrLg0KPiA+DQo+ID4gSUEgcHJvY2Vzc29yIGFsbG93cyB0byBz d2l0Y2ggdG8gYSBuZXcgc3RhY2sgZHVyaW5nIGhhbmRsaW5nIGludGVycnVwdA0KPiA+IGFuZCBl eGNlcHRpb24uIEJ1dCBYNjQgYW5kIElBMzIgcHJvdmlkZXMgZGlmZmVyZW50IHdheXMgdG8gbWFr ZSBpdC4NCj4gPiBYNjQgcHJvdmlkZXMgaW50ZXJydXB0IHN0YWNrIHRhYmxlIChJU1QpIHRvIGFs bG93IG1heGltdW0gNyBkaWZmZXJlbnQNCj4gPiBleGNlcHRpb25zIHRvIGhhdmUgbmV3IHN0YWNr IGZvciBpdHMgaGFuZGxlci4gSUEzMiBkb2Vzbid0IGhhdmUgSVNUDQo+ID4gbWVjaGFuaXNtIGFu ZCBjYW4gb25seSB1c2UgdGFzayBnYXRlIHRvIGRvIGl0IHNpbmNlIHRhc2sgc3dpdGNoIGFsbG93 cw0KPiA+IHRvIGxvYWQgYSBuZXcgc3RhY2sgdGhyb3VnaCBpdHMgdGFzay1zdGF0ZSBzZWdtZW50 IChUU1MpLg0KPiA+DQo+ID4gTm90ZTogU3RhY2sgc3dpdGNoIG5lZWRzIHRvIGFsbG9jYXRlIG1l bW9yeSBwYWdlcyB0byBiZSBuZXcgc3RhY2tzLiBTbyB0aGlzDQo+ID4gICAgICAgZnVuY3Rpb25h bGl0eSB3b3JrcyBvbmx5IGluIHRoZSBib290IHBoYXNlcyBjYXBhYmxlIG9mIG1lbW9yeQ0KPiA+ ICAgICAgIGFsbG9jYXRpb24gKGJlc2lkZXMgdGhlIHBhZ2luZywgZm9yIHRoZSBzYWtlIG9mIFN0 YWNrIEd1YXJkKS4gSW4NCj4gPiAgICAgICBvdGhlciB3b3Jkcywgb25seSBEWEUgcGhhc2UgY2Fu IHN1cHBvcnRzIFN0YWNrIEd1YXJkIHdpdGggc3RhY2sNCj4gc3dpdGNoLg0KPiA+DQo+ID4gQ2M6 IFN0YXIgWmVuZyA8c3Rhci56ZW5nQGludGVsLmNvbTxtYWlsdG86c3Rhci56ZW5nQGludGVsLmNv bT4+DQo+ID4gQ2M6IEVyaWMgRG9uZyA8ZXJpYy5kb25nQGludGVsLmNvbTxtYWlsdG86ZXJpYy5k b25nQGludGVsLmNvbT4+DQo+ID4gQ2M6IEppZXdlbiBZYW8gPGppZXdlbi55YW9AaW50ZWwuY29t PG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4+DQo+ID4gQ2M6IE1pY2hhZWwgS2lubmV5IDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbTxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRlbC5j b20+Pg0KPiA+IFN1Z2dlc3RlZC1ieTogQXllbGxldCBXb2xtYW4gPGF5ZWxsZXQud29sbWFuQGlu dGVsLmNvbTxtYWlsdG86YXllbGxldC53b2xtYW5AaW50ZWwuY29tPj4NCj4gPiBDb250cmlidXRl ZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+ID4gU2lnbmVk LW9mZi1ieTogSmlhbiBKIFdhbmcgPGppYW4uai53YW5nQGludGVsLmNvbTxtYWlsdG86amlhbi5q LndhbmdAaW50ZWwuY29tPj4NCj4gPiAtLS0NCj4gPiAgLi4uL0NwdUV4Y2VwdGlvbkhhbmRsZXJM aWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmggICAgfCAgMjIgKysNCj4gPiAgLi4uL0R4ZUNwdUV4Y2Vw dGlvbkhhbmRsZXJMaWIuaW5mICAgICAgICAgICAgICAgICAgfCAgIDUgKw0KPiA+ICAuLi4vTGli cmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUV4Y2VwdGlvbi5jICB8ICAxOSArDQo+ID4g IC4uLi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMgICAgICAgICAgICAgICAgICAgIHwgMTM1 ICsrKysrKysNCj4gPiAgLi4uL0lhMzIvQXJjaEludGVycnVwdERlZnMuaCAgICAgICAgICAgICAg ICAgICAgICAgfCAxMzYgKysrKysrKw0KPiA+ICAuLi4vSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFz bS5uYXNtICAgICAgICAgICAgICAgICB8IDM5OA0KPiA+ICsrKysrKysrKysrKysrKysrKysrKw0K PiA+ICAuLi4vUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgICAgICAgICAgICAgICAgICB8 ICAgMSArDQo+ID4gIC4uLi9TZWNQZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZiAgICAgICAg ICAgICAgIHwgICAzICsNCj4gPiAgLi4uL1NtbUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mICAg ICAgICAgICAgICAgICAgfCAgIDEgKw0KPiA+ICAuLi4vWDY0L0FyY2hFeGNlcHRpb25IYW5kbGVy LmMgICAgICAgICAgICAgICAgICAgICB8IDEwOCArKysrKysNCj4gPiAgLi4uL0NwdUV4Y2VwdGlv bkhhbmRsZXJMaWIvWDY0L0FyY2hJbnRlcnJ1cHREZWZzLmggfCAgNDAgKysrDQo+ID4gIC4uLi9Y NjQvRXhjZXB0aW9uSGFuZGxlckFzbS5TICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICsNCj4g PiAgLi4uL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbSAgICAgICAgICAgICAgICAgICAgfCAg MTIgKw0KPiA+ICAuLi4vWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFzbSAgICAgICAgICAgICAg ICAgICB8ICAxMiArDQo+ID4gIDE0IGZpbGVzIGNoYW5nZWQsIDkwNCBpbnNlcnRpb25zKCspDQo+ ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+IFVlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRp b25IYW5kbGVyTGliL0lhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmENCj4gPiBzbQ0KPiA+DQo+ ID4gZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmgNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL0NwdUV4Y2VwdGlvbkNvbW1vbi5oDQo+ID4gaW5kZXggNzQwYTU4 ODI4Yi4uZmQ0YTI2YTQ1OCAxMDA2NDQNCj4gPiAtLS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRpb25Db21tb24uaA0KPiA+ICsrKyBiL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0NwdUV4Y2VwdGlvbkNvbW1vbi5o DQo+ID4gQEAgLTI1LDYgKzI1LDcgQEANCj4gPiAgI2luY2x1ZGUgPExpYnJhcnkvQmFzZU1lbW9y eUxpYi5oPg0KPiA+ICAjaW5jbHVkZSA8TGlicmFyeS9TeW5jaHJvbml6YXRpb25MaWIuaD4gICNp bmNsdWRlDQo+ID4gPExpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5oPg0KPiA+ICsjaW5j bHVkZSA8TGlicmFyeS9NZW1vcnlBbGxvY2F0aW9uTGliLmg+DQo+ID4NCj4gPiAgI2RlZmluZSAg Q1BVX0VYQ0VQVElPTl9OVU0gICAgICAgICAgMzINCj4gPiAgI2RlZmluZSAgQ1BVX0lOVEVSUlVQ VF9OVU0gICAgICAgICAyNTYNCj4gPiBAQCAtMjg4LDUgKzI4OSwyNiBAQCBDb21tb25FeGNlcHRp b25IYW5kbGVyV29ya2VyICgNCj4gPiAgICBJTiBFWENFUFRJT05fSEFORExFUl9EQVRBICAgICAg KkV4Y2VwdGlvbkhhbmRsZXJEYXRhDQo+ID4gICAgKTsNCj4gPg0KPiA+ICsvKioNCj4gPiArICBM b2FkIGdpdmVuIHNlbGVjdG9yIGludG8gVFIgcmVnaXN0ZXINCj4gPiArDQo+ID4gKyAgQHBhcmFt IFNlbGVjdG9yICAgICAgICAgVGFzayBzZWdtZW50IHNlbGVjdG9yDQo+ID4gKyoqLw0KPiA+ICtW T0lEDQo+ID4gK0FzbVdyaXRlVHIgKA0KPiA+ICsgIFVJTlQxNiBTZWxlY3Rvcg0KPiA+ICsgICk7 DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBTZXR1cCBzZXBhcmF0ZSBzdGFjayBmb3Igc3BlY2lm aWMgZXhjZXB0aW9ucy4NCj4gPiArDQo+ID4gKyAgQHBhcmFtW2luXSBJZHRUYWJsZSAgICAgICAg SURUIHRhYmxlIGJhc2UuDQo+ID4gKyoqLw0KPiA+ICtWT0lEDQo+ID4gK0VGSUFQSQ0KPiA+ICtB cmNoU2V0dXBFeGNwZXRpb25TdGFjayAoDQo+ID4gKyAgSU4gSUEzMl9JRFRfR0FURV9ERVNDUklQ VE9SICAgICAgICAgICAqSWR0VGFibGUNCj4gPiArICApOw0KPiA+ICsNCj4gPiAgI2VuZGlmDQo+ ID4NCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi9EeGVDcHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+IGluZg0KPiA+IGIvVWVm aUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi4NCj4gPiBpbmYNCj4gPiBpbmRleCBmNGE4ZDAxYzgwLi5iMDk5ZWY0ZGFkIDEwMDY0 NA0KPiA+IC0tLQ0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJM aWIvRHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4gPiBpbmYNCj4gPiArKysNCj4gPiBiL1Vl ZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUNwdUV4Y2VwdGlvbkhh bmRsZXJMaWIuDQo+ID4gaW5mDQo+ID4gQEAgLTMwLDYgKzMwLDcgQEANCj4gPiAgW1NvdXJjZXMu SWEzMl0NCj4gPiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uYXNtDQo+ID4gICAgSWEzMi9F eGNlcHRpb25IYW5kbGVyQXNtLm5hc20NCj4gPiArICBJYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNt Lm5hc20NCj4gPiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiA+ICAgIElhMzIvQXJj aEV4Y2VwdGlvbkhhbmRsZXIuYw0KPiA+ICAgIElhMzIvQXJjaEludGVycnVwdERlZnMuaA0KPiA+ IEBAIC00Nyw2ICs0OCw5IEBADQo+ID4gICAgUGVpRHhlU21tQ3B1RXhjZXB0aW9uLmMNCj4gPiAg ICBEeGVFeGNlcHRpb24uYw0KPiA+DQo+ID4gK1tQY2RdDQo+ID4gKyAgZ0VmaU1kZU1vZHVsZVBr Z1Rva2VuU3BhY2VHdWlkLlBjZENwdVN0YWNrR3VhcmQNCj4gPiArDQo+ID4gIFtQYWNrYWdlc10N Cj4gPiAgICBNZGVQa2cvTWRlUGtnLmRlYw0KPiA+ICAgIE1kZU1vZHVsZVBrZy9NZGVNb2R1bGVQ a2cuZGVjDQo+ID4gQEAgLTYxLDMgKzY1LDQgQEANCj4gPiAgICBQZUNvZmZHZXRFbnRyeVBvaW50 TGliDQo+ID4gICAgTWVtb3J5QWxsb2NhdGlvbkxpYg0KPiA+ICAgIERlYnVnTGliDQo+ID4gKyAg SG9iTGliDQo+ID4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25I YW5kbGVyTGliL0R4ZUV4Y2VwdGlvbi5jDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhj ZXB0aW9uSGFuZGxlckxpYi9EeGVFeGNlcHRpb24uYw0KPiA+IGluZGV4IDMxZmViZWM5NzYuLmU5 ZGNkMDBlMDIgMTAwNjQ0DQo+ID4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlv bkhhbmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMNCj4gPiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkv Q3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVFeGNlcHRpb24uYw0KPiA+IEBAIC0xNiw2ICsxNiw3 IEBADQo+ID4gICNpbmNsdWRlICJDcHVFeGNlcHRpb25Db21tb24uaCINCj4gPiAgI2luY2x1ZGUg PExpYnJhcnkvRGVidWdMaWIuaD4NCj4gPiAgI2luY2x1ZGUgPExpYnJhcnkvTWVtb3J5QWxsb2Nh dGlvbkxpYi5oPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9Ib2JMaWIuaD4NCj4gPg0KPiA+ICBD T05TVCBVSU5UTiAgICBtRG9GYXJSZXR1cm5GbGFnICA9IDA7DQo+ID4NCj4gPiBAQCAtMTU1LDYg KzE1NiwyNCBAQCBJbml0aWFsaXplQ3B1SW50ZXJydXB0SGFuZGxlcnMgKA0KPiA+DQo+ID4gICAg VXBkYXRlSWR0VGFibGUgKElkdFRhYmxlLCAmVGVtcGxhdGVNYXAsICZtRXhjZXB0aW9uSGFuZGxl ckRhdGEpOw0KPiA+DQo+ID4gKyAgaWYgKFBjZEdldEJvb2wgKFBjZENwdVN0YWNrR3VhcmQpKSB7 DQo+ID4gKyAgICAvLw0KPiA+ICsgICAgLy8gU3RhY2sgR3VhcmQgd29ya3Mgd2l0aCB0aGUgc3Vw cG9ydCBvZiBwYWdlIHRhYmxlIGVzdGFibGlzaGVkIGFuZA0KPiA+ICsgICAgLy8gbWVtb3J5IG1h bmFnZW1lbnQuIFNvIHdlIGhhdmUgdG8gZXhjbHVkZSB0aG9zZSBib290IG1vZGVzDQo+ID4gd2l0 aG91dA0KPiA+ICsgICAgLy8gdGhlbS4NCj4gPiArICAgIC8vDQo+ID4gKyAgICBzd2l0Y2ggKEdl dEJvb3RNb2RlSG9iKCkpIHsNCj4gPiArICAgIGNhc2UgQk9PVF9PTl9GTEFTSF9VUERBVEU6DQo+ ID4gKyAgICBjYXNlIEJPT1RfSU5fUkVDT1ZFUllfTU9ERToNCj4gPiArICAgIGNhc2UgQk9PVF9P Tl9TM19SRVNVTUU6DQo+ID4gKyAgICAgIGJyZWFrOw0KPiA+ICsNCj4gPiArICAgIGRlZmF1bHQ6 DQo+ID4gKyAgICAgIEFyY2hTZXR1cEV4Y3BldGlvblN0YWNrIChJZHRUYWJsZSk7DQo+ID4gKyAg ICAgIGJyZWFrOw0KPiA+ICsgICAgfQ0KPiA+ICsgIH0NCj4gPiArDQo+ID4gICAgLy8NCj4gPiAg ICAvLyBMb2FkIEludGVycnVwdCBEZXNjcmlwdG9yIFRhYmxlDQo+ID4gICAgLy8NCj4gPiBkaWZm IC0tZ2l0DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9J YTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLg0KPiA+IGMNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFy eS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuDQo+ID4g Yw0KPiA+IGluZGV4IGYyYzM5ZWIxOTMuLjNkNDFkZjc1YTUgMTAwNjQ0DQo+ID4gLS0tDQo+ID4g YS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hFeGNl cHRpb25IYW5kbGVyLg0KPiA+IGMNCj4gPiArKysNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9D cHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuDQo+ID4gYw0K PiA+IEBAIC0xNCw2ICsxNCwxOSBAQA0KPiA+DQo+ID4gICNpbmNsdWRlICJDcHVFeGNlcHRpb25D b21tb24uaCINCj4gPg0KPiA+ICsvLw0KPiA+ICsvLyBMaXN0IG9mIGV4Y2VwdGlvbnMgbmVlZGlu ZyBzZXBhcmF0ZSBzdGFjayAvLyBTVEFUSUMNCj4gPiArSUEzMl9FWENFUFRJT05fVFNfRU5UUlkg bUV4Y2VwdGlvbnNXaXRoU3RhY2tbXSA9IHsNCj4gPiArICB7NiwgIEV4Y2VwdGlvblRhc2tTd3Rp Y2hFbnRyeTZ9LCAgLy8jVUQ6IEludmFsaWQgT3Bjb2RlIEV4Y2VwdGlvbg0KPiA+ICsgIHs4LCAg RXhjZXB0aW9uVGFza1N3dGljaEVudHJ5OH0sICAvLyNERjogRG91YmxlIEZhdWx0IEV4Y2VwdGlv bg0KPiA+ICsgIHsxMiwgRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTJ9LCAvLyNTUzogU3RhY2sg RmF1bHQgRXhjZXB0aW9uDQo+ID4gKyAgezEzLCBFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxM30s IC8vI0dQOiBHZW5lcmFsIFByb3RlY3Rpb24NCj4gPiArRXhjZXB0aW9uDQo+ID4gKyAgezE0LCBF eGNlcHRpb25UYXNrU3d0aWNoRW50cnkxNH0sIC8vI1BGOiBQYWdlLUZhdWx0IEV4Y2VwdGlvbg0K PiA+ICsgIHsxNywgRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTd9LCAvLyNBQzogQWxpZ25tZW50 IENoZWNrIEV4Y2VwdGlvbg0KPiA+ICsgIHsxOCwgRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTh9 ICAvLyNNQzogTWFjaGluZS1DaGVjayBFeGNlcHRpb24gfTsNCj4gPiArDQo+ID4gIC8qKg0KPiA+ ICAgIFJldHVybiBhZGRyZXNzIG1hcCBvZiBleGNlcHRpb24gaGFuZGxlciB0ZW1wbGF0ZSBzbyB0 aGF0IEMgY29kZSBjYW4NCj4gPiBnZW5lcmF0ZQ0KPiA+ICAgIGV4Y2VwdGlvbiB0YWJsZXMuDQo+ ID4gQEAgLTEwNyw2ICsxMjAsMTI4IEBAIEFyY2hSZXN0b3JlRXhjZXB0aW9uQ29udGV4dCAoDQo+ ID4gICAgU3lzdGVtQ29udGV4dC5TeXN0ZW1Db250ZXh0SWEzMi0+RXhjZXB0aW9uRGF0YSA9DQo+ ID4gUmVzZXJ2ZWRWZWN0b3JzW0V4Y2VwdGlvblR5cGVdLkV4Y2VwdGlvbkRhdGE7DQo+ID4gIH0N Cj4gPg0KPiA+ICsvKioNCj4gPiArICBTZXR1cCBzZXBhcmF0ZSBzdGFjayBmb3Igc3BlY2lmaWMg ZXhjZXB0aW9ucy4NCj4gPiArDQo+ID4gKyAgIEBwYXJhbVtpbl0gSWR0VGFibGUgICAgICAgIElE VCB0YWJsZSBiYXNlLg0KPiA+ICsqKi8NCj4gPiArVk9JRA0KPiA+ICtFRklBUEkNCj4gPiArQXJj aFNldHVwRXhjcGV0aW9uU3RhY2sgKA0KPiA+ICsgIElOIElBMzJfSURUX0dBVEVfREVTQ1JJUFRP UiAgICAgICAgICAgKklkdFRhYmxlDQo+ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAgVk9JRCAgICAg ICAgICAgICAgICAgICAgICAqTmV3R2R0Ow0KPiA+ICsgIElBMzJfREVTQ1JJUFRPUiAgICAgICAg ICAgR2R0RGVzYzsNCj4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIE9sZEdkdFNpemU7 DQo+ID4gKyAgVFNTX0VOVFJJRVMgICAgICAgICAgICAgICAqVHNzRW50cnk7DQo+ID4gKyAgSUEz Ml9UU1NfREVTQ1JJUFRPUiAgICAgICAqVHNzRGVzYzsNCj4gPiArICBJQTMyX1RBU0tfU1RBVEVf U0VHTUVOVCAgICpUc3M7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBTdGFja0Jh c2U7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBTdGFja1RvcDsNCj4gPiArICBV SU5UTiAgICAgICAgICAgICAgICAgICAgIFN0YWNrU2l6ZTsNCj4gPiArICBVSU5UTiAgICAgICAg ICAgICAgICAgICAgIEluZGV4Ow0KPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgVmVj dG9yOw0KPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgVHNzQmFzZTsNCj4gPiArDQo+ ID4gKyAgLy8NCj4gPiArICAvLyBBbGxvY2F0ZSBSdW50aW1lIERhdGEgZm9yIHRoZSBHRFQgIC8v ICBBc21SZWFkR2R0cigmR2R0RGVzYyk7DQo+ID4gKyBPbGRHZHRTaXplID0gR2R0RGVzYy5MaW1p dCArIDE7ICBOZXdHZHQgPQ0KPiA+ICsgQWxsb2NhdGVSdW50aW1lWmVyb1Bvb2woT2xkR2R0U2l6 ZSArIHNpemVvZihUU1NfRU5UUklFUykNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArIElBMzJfR0RUX0FMSUdOTUVOVCk7ICBpZg0KPiAoTmV3R2R0DQo+ID4gKyA9PSBO VUxMKSB7DQo+ID4gKyAgICByZXR1cm47DQo+ID4gKyAgfQ0KPiA+ICsgIE5ld0dkdCA9IEFMSUdO X1BPSU5URVIgKE5ld0dkdCwgSUEzMl9HRFRfQUxJR05NRU5UKTsNCj4gPiArDQo+ID4gKyAgLy8N Cj4gPiArICAvLyBJbml0aWFsaXplIG5ldyBHRFQgZW50cmllcw0KPiA+ICsgIC8vDQo+ID4gKyAg Q29weU1lbShOZXdHZHQsIChWT0lEICopR2R0RGVzYy5CYXNlLCBPbGRHZHRTaXplKTsgIEdkdERl c2MuQmFzZSA9DQo+ID4gKyAoVUlOVE4pKFZPSUQqKU5ld0dkdDsgIEdkdERlc2MuTGltaXQgPSAo VUlOVDE2KShPbGRHZHRTaXplICsNCj4gPiArIFRTU19PRkZTRVQgLSAxKTsNCj4gPiArDQo+ID4g KyAgLy8NCj4gPiArICAvLyBSZXNlcnZlIHN0YXRjayBtZW1vcnkgZm9yIGdpdmVuIGV4Y2VwdGlv bnMgIC8vICBTdGFja1NpemUgPQ0KPiA+ICsgQVJSQVlfU0laRSAobUV4Y2VwdGlvbnNXaXRoU3Rh Y2spICogRVhDRVBUSU9OX1NUQUNLX1NJWkU7ICBTdGFja1NpemUNCj4gPiArID0gRUZJX1BBR0VT X1RPX1NJWkUgKEVGSV9TSVpFX1RPX1BBR0VTIChTdGFja1NpemUpKTsgIFN0YWNrQmFzZSA9DQo+ ID4gKyAoVUlOVDY0KShVSU5UTilBbGxvY2F0ZVBhZ2VzIChFRklfU0laRV9UT19QQUdFUw0KPiA+ IChTdGFja1NpemUpKTsNCj4gPiArICBpZiAoU3RhY2tCYXNlID09IDApIHsNCj4gPiArICAgIEZy ZWVQb29sIChOZXdHZHQpOw0KPiA+ICsgICAgcmV0dXJuOw0KPiA+ICsgIH0NCj4gPiArDQo+ID4g KyAgLy8NCj4gPiArICAvLyBGaXh1cCBUU1MgZGVzY3JpcHRvcnMgYW5kIHNlZ21lbnRzICAvLyAg VHNzRW50cnkgPSAoVk9JRA0KPiA+ICsgKikoR2R0RGVzYy5CYXNlICsgT2xkR2R0U2l6ZSk7DQo+ ID4gKw0KPiA+ICsgIFRzc0Jhc2UgPSAoVUlOVE4pKFZPSUQgKikmVHNzRW50cnktPlRzczsNCj4g PiArICBUc3NFbnRyeS0+VHNzU2VnLkxpbWl0MTVfMCAgICAgICAgICAgID0NCj4gPiBzaXplb2Yo SUEzMl9UQVNLX1NUQVRFX1NFR01FTlQpIC0gMTsNCj4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkJh c2UxNV8wICAgICAgICAgICAgID0gKFVJTlQxNilUc3NCYXNlOw0KPiA+ICsgIFRzc0VudHJ5LT5U c3NTZWcuQmFzZTIzXzE2ICAgICAgICAgICAgPSAoVUlOVDgpKFRzc0Jhc2UgPj4gMTYpOw0KPiA+ ICsgIFRzc0VudHJ5LT5Uc3NTZWcuVHlwZSAgICAgICAgICAgICAgICAgPSBJQTMyX0dEVF9UWVBF X1RTUzsNCj4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkxpbWl0MTlfMTZfYW5kX2ZsYWdzID0gMDsN Cj4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkJhc2UzMV8yNCAgICAgICAgICAgID0gKFVJTlQ4KShU c3NCYXNlID4+IDI0KTsNCj4gPiArDQo+ID4gKyAgU3RhY2tUb3AgID0gU3RhY2tCYXNlICsgU3Rh Y2tTaXplIC0gQ1BVX1NUQUNLX0FMSUdOTUVOVDsgIFN0YWNrVG9wDQo+ID4gKyA9IChVSU5UTilB TElHTl9QT0lOVEVSIChTdGFja1RvcCwgQ1BVX1NUQUNLX0FMSUdOTUVOVCk7ICBmb3IgKEluZGV4 DQo+ID4gKyA9IDA7IEluZGV4IDwgQVJSQVlfU0laRSAobUV4Y2VwdGlvbnNXaXRoU3RhY2spOyAr K0luZGV4KSB7DQo+ID4gKyAgICAvLw0KPiA+ICsgICAgLy8gRml4dXAgVFNTIGRlc2NyaXB0b3IN Cj4gPiArICAgIC8vDQo+ID4gKyAgICBUc3NCYXNlID0gKFVJTlROKShWT0lEICopJlRzc0VudHJ5 LT5FeGNlcHRpb25Uc3NbSW5kZXhdOw0KPiA+ICsgICAgVHNzRGVzYyA9ICZUc3NFbnRyeS0+RXhj ZXB0aW9uVHNzU2VnW0luZGV4XTsNCj4gPiArDQo+ID4gKyAgICBUc3NEZXNjLT5MaW1pdDE1XzAg ICAgICAgICAgICA9IHNpemVvZihJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCkgLQ0KPiAxOw0KPiA+ ICsgICAgVHNzRGVzYy0+QmFzZTE1XzAgICAgICAgICAgICAgPSAoVUlOVDE2KVRzc0Jhc2U7DQo+ ID4gKyAgICBUc3NEZXNjLT5CYXNlMjNfMTYgICAgICAgICAgICA9IChVSU5UOCkoVHNzQmFzZSA+ PiAxNik7DQo+ID4gKyAgICBUc3NEZXNjLT5UeXBlICAgICAgICAgICAgICAgICA9IElBMzJfR0RU X1RZUEVfVFNTOw0KPiA+ICsgICAgVHNzRGVzYy0+TGltaXQxOV8xNl9hbmRfZmxhZ3MgPSAwOw0K PiA+ICsgICAgVHNzRGVzYy0+QmFzZTMxXzI0ICAgICAgICAgICAgPSAoVUlOVDgpKFRzc0Jhc2Ug Pj4gMjQpOw0KPiA+ICsNCj4gPiArICAgIC8vDQo+ID4gKyAgICAvLyBGaXh1cCBUU1MNCj4gPiAr ICAgIC8vDQo+ID4gKyAgICBUc3MgPSAmVHNzRW50cnktPkV4Y2VwdGlvblRzc1tJbmRleF07DQo+ ID4gKyAgICBUc3MtPkNSMyAgICA9IEFzbVJlYWRDcjMoKTsNCj4gPiArICAgIFRzcy0+RUlQICAg ID0gKFVJTlQzMiltRXhjZXB0aW9uc1dpdGhTdGFja1tJbmRleF0uRW50cnlQb2ludDsNCj4gPiAr ICAgIFRzcy0+RUZMQUdTID0gMHgyOw0KPiA+ICsgICAgVHNzLT5FU1AgICAgPSBTdGFja1RvcDsN Cj4gPiArICAgIFRzcy0+RVMgICAgID0gQXNtUmVhZEVzKCk7DQo+ID4gKyAgICBUc3MtPkNTICAg ICA9IEFzbVJlYWRDcygpOw0KPiA+ICsgICAgVHNzLT5TUyAgICAgPSBBc21SZWFkU3MoKTsNCj4g PiArICAgIFRzcy0+RFMgICAgID0gQXNtUmVhZERzKCk7DQo+ID4gKyAgICBUc3MtPkZTICAgICA9 IEFzbVJlYWRGcygpOw0KPiA+ICsgICAgVHNzLT5HUyAgICAgPSBBc21SZWFkR3MoKTsNCj4gPiAr ICAgIFN0YWNrVG9wICAgLT0gRVhDRVBUSU9OX1NUQUNLX1NJWkU7DQo+ID4gKw0KPiA+ICsgICAg Ly8NCj4gPiArICAgIC8vIENoYW5nZSBzcGVjaWZpZWQgZXhjZXB0aW9ucyBpbiBJRFQgdG8gdXNl IFRTUw0KPiA+ICsgICAgLy8NCj4gPiArICAgIFZlY3RvciA9IG1FeGNlcHRpb25zV2l0aFN0YWNr W0luZGV4XS5WZWN0b3I7DQo+ID4gKw0KPiA+ICsgICAgSWR0VGFibGVbVmVjdG9yXS5CaXRzLk9m ZnNldExvdyAgPSAwOw0KPiA+ICsgICAgSWR0VGFibGVbVmVjdG9yXS5CaXRzLlNlbGVjdG9yICAg PSBPbGRHZHRTaXplICsNCj4gPiBFWENFUFRJT05fVFNTX1NFTChJbmRleCk7DQo+ID4gKyAgICBJ ZHRUYWJsZVtWZWN0b3JdLkJpdHMuUmVzZXJ2ZWRfMCA9IDA7DQo+ID4gKyAgICBJZHRUYWJsZVtW ZWN0b3JdLkJpdHMuR2F0ZVR5cGUgICA9IElBMzJfSURUX0dBVEVfVFlQRV9UQVNLOw0KPiA+ICsg ICAgSWR0VGFibGVbVmVjdG9yXS5CaXRzLk9mZnNldEhpZ2ggPSAwOyAgfQ0KPiA+ICsNCj4gPiAr ICAvLw0KPiA+ICsgIC8vIFB1Ymxpc2ggdGhlIGNoYW5nZXMNCj4gPiArICAvLw0KPiA+ICsgIEFz bVdyaXRlR2R0cigmR2R0RGVzYyk7DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gTG9hZCB0 YXNrIHJlZ2lzdGVyDQo+ID4gKyAgLy8NCj4gPiArICBBc21Xcml0ZVRyICgoVUlOVDE2KShPbGRH ZHRTaXplICsgVFNTX1NFTCkpOyB9DQo+ID4gKw0KPiA+ICAvKioNCj4gPiAgICBEaXNwbGF5IHBy b2Nlc3NvciBjb250ZXh0Lg0KPiA+DQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hJ bnRlcnJ1cHREZWZzLmgNCj4gPiBpbmRleCBhOGQzNTU2YTgwLi43N2NjNmY5OTE5IDEwMDY0NA0K PiA+IC0tLQ0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIv SWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ID4gKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0Nw dUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoSW50ZXJydXB0RGVmcw0KPiA+ICsrKyAuaA0K PiA+IEBAIC00MSw0ICs0MSwxNDAgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ICAgIFVJTlQ4ICAg ICAgIEhvb2tBZnRlclN0dWJIZWFkZXJDb2RlW0hPT0tBRlRFUl9TVFVCX1NJWkVdOw0KPiA+ICB9 IFJFU0VSVkVEX1ZFQ1RPUlNfREFUQTsNCj4gPg0KPiA+ICsjcHJhZ21hIHBhY2sgKDEpDQo+ID4g Kw0KPiA+ICsjZGVmaW5lIEVYQ0VQVElPTl9MSVNUX01BWCAgICAgICAgICA3DQo+ID4gKyNkZWZp bmUgRVhDRVBUSU9OX1NUQUNLX1NJWkUgICAgICAgIEVGSV9QQUdFX1NJWkUNCj4gPiArI2RlZmlu ZSBJQTMyX0dEVF9UWVBFX1RTUyAgICAgICAgICAgMHg4OQ0KPiA+ICsjZGVmaW5lIElBMzJfR0RU X0FMSUdOTUVOVCAgICAgICAgICA4DQo+ID4gKw0KPiA+ICsvLw0KPiA+ICsvLyBJQTMyIFRTUyBE ZWZpbml0aW9uDQo+ID4gKy8vDQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiArICBVSU5UMTYg ICAgUHJldmlvdXNUYXNrTGluazsgLy8gMDANCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfMjsN Cj4gPiArICBVSU5UMzIgICAgRVNQMDsgICAgICAgICAgICAgLy8gMDQNCj4gPiArICBVSU5UMTYg ICAgU1MwOyAgICAgICAgICAgICAgLy8gMDgNCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfMTA7 DQo+ID4gKyAgVUlOVDMyICAgIEVTUDE7ICAgICAgICAgICAgIC8vIDBDDQo+ID4gKyAgVUlOVDE2 ICAgIFNTMTsgICAgICAgICAgICAgIC8vIDEwDQo+ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzE4 Ow0KPiA+ICsgIFVJTlQzMiAgICBFU1AyOyAgICAgICAgICAgICAvLyAxNA0KPiA+ICsgIFVJTlQx NiAgICBTUzI7ICAgICAgICAgICAgICAvLyAxOA0KPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF8y NjsNCj4gPiArICBVSU5UMzIgICAgQ1IzOyAgICAgICAgICAgICAgLy8gMUMNCj4gPiArICBVSU5U MzIgICAgRUlQOyAgICAgICAgICAgICAgLy8gMjANCj4gPiArICBVSU5UMzIgICAgRUZMQUdTOyAg ICAgICAgICAgLy8gMjQNCj4gPiArICBVSU5UMzIgICAgRUFYOyAgICAgICAgICAgICAgLy8gMjgN Cj4gPiArICBVSU5UMzIgICAgRUNYOyAgICAgICAgICAgICAgLy8gMkMNCj4gPiArICBVSU5UMzIg ICAgRURYOyAgICAgICAgICAgICAgLy8gMzANCj4gPiArICBVSU5UMzIgICAgRUJYOyAgICAgICAg ICAgICAgLy8gMzQNCj4gPiArICBVSU5UMzIgICAgRVNQOyAgICAgICAgICAgICAgLy8gMzgNCj4g PiArICBVSU5UMzIgICAgRUJQOw0KPiA+ICsgIFVJTlQzMiAgICBFU0k7DQo+ID4gKyAgVUlOVDMy ICAgIEVESTsNCj4gPiArICBVSU5UMTYgICAgRVM7DQo+ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVk Xzc0Ow0KPiA+ICsgIFVJTlQxNiAgICBDUzsNCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfNzg7 DQo+ID4gKyAgVUlOVDE2ICAgIFNTOw0KPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF84MjsNCj4g PiArICBVSU5UMTYgICAgRFM7DQo+ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzg2Ow0KPiA+ICsg IFVJTlQxNiAgICBGUzsNCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfOTA7DQo+ID4gKyAgVUlO VDE2ICAgIEdTOw0KPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF85NDsNCj4gPiArICBVSU5UMTYg ICAgTERUU2VnbWVudFNlbGVjdG9yOw0KPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF85ODsNCj4g PiArICBVSU5UMTYgICAgVDsNCj4gPiArICBVSU5UMTYgICAgSU9NYXBCYXNlQWRkcmVzczsNCj4g PiArfSBJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVDsNCj4gPiArDQo+ID4gK3R5cGVkZWYgc3RydWN0 IHsNCj4gPiArICBVSU5UMTYgICAgTGltaXQxNV8wOw0KPiA+ICsgIFVJTlQxNiAgICBCYXNlMTVf MDsNCj4gPiArICBVSU5UOCAgICAgQmFzZTIzXzE2Ow0KPiA+ICsgIFVJTlQ4ICAgICBUeXBlOw0K PiA+ICsgIFVJTlQ4ICAgICBMaW1pdDE5XzE2X2FuZF9mbGFnczsNCj4gPiArICBVSU5UOCAgICAg QmFzZTMxXzI0Ow0KPiA+ICt9IElBMzJfVFNTX0RFU0NSSVBUT1I7DQo+ID4gKw0KPiA+ICt0eXBl ZGVmIHN0cnVjdCB7DQo+ID4gKyAgSUEzMl9UU1NfREVTQ1JJUFRPUiAgICAgICAgICAgVHNzU2Vn Ow0KPiA+ICsgIElBMzJfVFNTX0RFU0NSSVBUT1INCj4gRXhjZXB0aW9uVHNzU2VnW0VYQ0VQVElP Tl9MSVNUX01BWF07DQo+ID4gKyAgSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQgICAgICAgVHNzOw0K PiA+ICsgIElBMzJfVEFTS19TVEFURV9TRUdNRU5UICAgICAgIEV4Y2VwdGlvblRzc1tFWENFUFRJ T05fTElTVF9NQVhdOw0KPiA+ICt9IFRTU19FTlRSSUVTOw0KPiA+ICsNCj4gPiArI3ByYWdtYSBw YWNrICgpDQo+ID4gKw0KPiA+ICsjZGVmaW5lIFRTU19TRUwgICAgICAgICAgICAgICBPRkZTRVRf T0YgKFRTU19FTlRSSUVTLCBUc3NTZWcpDQo+ID4gKyNkZWZpbmUgRVhDRVBUSU9OX1RTU19TRUwo bikgIE9GRlNFVF9PRiAoVFNTX0VOVFJJRVMsDQo+ID4gRXhjZXB0aW9uVHNzU2VnW25dKQ0KPiA+ ICsjZGVmaW5lIFRTU19PRkZTRVQgICAgICAgICAgICBPRkZTRVRfT0YgKFRTU19FTlRSSUVTLCBU c3MpDQo+ID4gKw0KPiA+ICt0eXBlZGVmIFZPSUQgKCpFWENFUFRJT05fRU5UUlkpIChWT0lEKTsN Cj4gPiArDQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiArICBVSU5UTiAgICAgICAgICAgICBW ZWN0b3I7DQo+ID4gKyAgRVhDRVBUSU9OX0VOVFJZICAgRW50cnlQb2ludDsNCj4gPiArfSBJQTMy X0VYQ0VQVElPTl9UU19FTlRSWTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgRXhjZXB0aW9uIGhh bmRsaW5nIGVudHJ5IHRocm91Z2ggdGFzayBnYXRlIGZvciBleGNlcHRpb24gI1VELg0KPiA+ICsg KiovDQo+ID4gK1ZPSUQNCj4gPiArRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5NiAoDQo+ID4gKyAg Vk9JRA0KPiA+ICsgICk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArIEV4Y2VwdGlvbiBoYW5kbGlu ZyBlbnRyeSB0aHJvdWdoIHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNERi4NCj4gPiArICoqLw0K PiA+ICtWT0lEDQo+ID4gK0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTggKA0KPiA+ICsgIFZPSUQN Cj4gPiArICApOw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyBFeGNlcHRpb24gaGFuZGxpbmcgZW50 cnkgdGhyb3VnaCB0YXNrIGdhdGUgZm9yIGV4Y2VwdGlvbiAjU1MuDQo+ID4gKyAqKi8NCj4gPiAr Vk9JRA0KPiA+ICtFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxMiAoDQo+ID4gKyAgVk9JRA0KPiA+ ICsgICk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArIEV4Y2VwdGlvbiBoYW5kbGluZyBlbnRyeSB0 aHJvdWdoIHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNHUC4NCj4gPiArICoqLw0KPiA+ICtWT0lE DQo+ID4gK0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTEzICgNCj4gPiArICBWT0lEDQo+ID4gKyAg KTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgRXhjZXB0aW9uIGhhbmRsaW5nIGVudHJ5IHRocm91 Z2ggdGFzayBnYXRlIGZvciBleGNlcHRpb24gI1BGLg0KPiA+ICsgKiovDQo+ID4gK1ZPSUQNCj4g PiArRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTQgKA0KPiA+ICsgIFZPSUQNCj4gPiArICApOw0K PiA+ICsNCj4gPiArLyoqDQo+ID4gKyBFeGNlcHRpb24gaGFuZGxpbmcgZW50cnkgdGhyb3VnaCB0 YXNrIGdhdGUgZm9yIGV4Y2VwdGlvbiAjQUMuDQo+ID4gKyAqKi8NCj4gPiArVk9JRA0KPiA+ICtF eGNlcHRpb25UYXNrU3d0aWNoRW50cnkxNyAoDQo+ID4gKyAgVk9JRA0KPiA+ICsgICk7DQo+ID4g Kw0KPiA+ICsvKioNCj4gPiArIEV4Y2VwdGlvbiBoYW5kbGluZyBlbnRyeSB0aHJvdWdoIHRhc2sg Z2F0ZSBmb3IgZXhjZXB0aW9uICNNQy4NCj4gPiArICoqLw0KPiA+ICtWT0lEDQo+ID4gK0V4Y2Vw dGlvblRhc2tTd3RpY2hFbnRyeTE4ICgNCj4gPiArICBWT0lEDQo+ID4gKyAgKTsNCj4gPiArDQo+ ID4gICNlbmRpZg0KPiA+IGRpZmYgLS1naXQNCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL0lhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20uDQo+ID4gbmFzDQo+ ID4gbQ0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEz Mi9FeGNlcHRpb25Uc3NFbnRyeUFzbS4NCj4gPiBuYXMNCj4gPiBtDQo+ID4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwLi5kYmZiY2ZjZjUxDQo+ID4gLS0tIC9kZXYv bnVsbA0KPiA+ICsrKw0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIvSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS4NCj4gPiBuYXMNCj4gPiBtDQo+ID4gQEAg LTAsMCArMSwzOTggQEANCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKy0tLS0tLS0tLS0gOyA7IENv cHlyaWdodCAoYykgMjAxNywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiArcmVz ZXJ2ZWQuPEJSPiA7IFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMg OyBhcmUNCj4gPiArbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBh bmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEDQo+ID4gTGljZW5zZQ0KPiA+ICs7IHdoaWNoIGFjY29t cGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZQ0K PiA+ICttYXkgYmUgZm91bmQNCj4gPiBhdA0KPiA+ICs7IGh0dHA6Ly9vcGVuc291cmNlLm9yZy9s aWNlbnNlcy9ic2QtbGljZW5zZS5waHAuDQo+ID4gKzsNCj4gPiArOyBUSEUgUFJPR1JBTSBJUyBE SVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiA+ICtCQVNJ UywgOyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBF SVRIRVINCj4gPiArRVhQUkVTUw0KPiA+IE9SIElNUExJRUQuDQo+ID4gKzsNCj4gPiArOyBNb2R1 bGUgTmFtZToNCj4gPiArOw0KPiA+ICs7ICAgRXhjZXB0aW9uVHNzRW50cnlBc20uQXNtDQo+ID4g KzsNCj4gPiArOyBBYnN0cmFjdDoNCj4gPiArOw0KPiA+ICs7ICAgSUEzMiBDUFUgRXhjZXB0aW9u IEhhbmRsZXIgd2l0aCBTZXBhcmF0ZSBTdGFjaw0KPiA+ICs7DQo+ID4gKzsgTm90ZXM6DQo+ID4g KzsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKy0tLS0tLS0tLS0NCj4gPiArDQo+ID4gKzsNCj4g PiArOyBJQTMyIFRTUyBNZW1vcnkgTGF5b3V0IERlc2NyaXB0aW9uDQo+ID4gKzsNCj4gPiArc3Ry dWMgSUEzMl9UU1MNCj4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAgICAg ICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAuRVNQMDogICAgcmVzZCAxDQo+ID4gKyAgLlNT MDogICAgIHJlc3cgMQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ICsgIC5F U1AxOiAgICByZXNkIDENCj4gPiArICAuU1MxOiAgICAgcmVzdyAxDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgcmVzdyAxDQo+ID4gKyAgLkVTUDI6ICAgIHJlc2QgMQ0KPiA+ICsgIC5TUzI6ICAg ICByZXN3IDENCj4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAuX0NSMzog ICAgcmVzZCAxDQo+ID4gKyAgLkVJUDogICAgIHJlc2QgMQ0KPiA+ICsgIC5FRkxBR1M6ICByZXNk IDENCj4gPiArICAuX0VBWDogICAgcmVzZCAxDQo+ID4gKyAgLl9FQ1g6ICAgIHJlc2QgMQ0KPiA+ ICsgIC5fRURYOiAgICByZXNkIDENCj4gPiArICAuX0VCWDogICAgcmVzZCAxDQo+ID4gKyAgLl9F U1A6ICAgIHJlc2QgMQ0KPiA+ICsgIC5fRUJQOiAgICByZXNkIDENCj4gPiArICAuX0VTSTogICAg cmVzZCAxDQo+ID4gKyAgLl9FREk6ICAgIHJlc2QgMQ0KPiA+ICsgIC5fRVM6ICAgICByZXN3IDEN Cj4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAuX0NTOiAgICAgcmVzdyAx DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gKyAgLl9TUzogICAgIHJlc3cg MQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ICsgIC5fRFM6ICAgICByZXN3 IDENCj4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAuX0ZTOiAgICAgcmVz dyAxDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gKyAgLl9HUzogICAgIHJl c3cgMQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ICsgIC5MRFQ6ICAgICBy ZXN3IDENCj4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAgICAgICAgICAg ICAgICAgICByZXN3IDENCj4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArZW5k c3RydWMNCj4gPiArDQo+ID4gKzsNCj4gPiArOyBDb21tb25FeGNlcHRpb25IYW5kbGVyKCkNCj4g PiArOw0KPiA+ICtleHRlcm4gQVNNX1BGWChDb21tb25FeGNlcHRpb25IYW5kbGVyKQ0KPiA+ICsN Cj4gPiArU0VDVElPTiAuZGF0YQ0KPiA+ICsNCj4gPiArU0VDVElPTiAudGV4dA0KPiA+ICsNCj4g PiArQUxJR04gICA4DQo+ID4gKw0KPiA+ICs7DQo+ID4gKzsgZXhjZXB0aW9uIGhhbmRsZXIgc3R1 YiB0YWJsZQ0KPiA+ICs7DQo+ID4gKyVtYWNybyBEZWZFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkg MQ0KPiA+ICslJURvSXJldDoNCj4gPiArICAgIGlyZXRkDQo+ID4gKw0KPiA+ICtnbG9iYWwgQVNN X1BGWChFeGNlcHRpb25UYXNrU3d0aWNoRW50cnklMSkNCj4gPiArQVNNX1BGWChFeGNlcHRpb25U YXNrU3d0aWNoRW50cnklMSk6DQo+ID4gKyAgICBkYiAgICAgIDB4NmEgICAgICAgIDsgcHVzaCAg I1ZlY3Rvck51bQ0KPiA+ICsgICAgZGIgICAgICAlMSAgICAgICAgICA7IFZlY3Rvck51bQ0KPiA+ ICsgICAgbW92ICAgICBlYXgsIEFTTV9QRlgoQ29tbW9uVGFza1N3dGljaEVudHJ5UG9pbnQpDQo+ ID4gKyAgICBjYWxsICAgIGVheA0KPiA+ICsgICAgbW92ICAgICBlc3AsIGVheCAgICA7IFJlc3Rv cmUgc3RhY2sgdG9wDQo+ID4gKyAgICBqbXAgICAgICUlRG9JcmV0DQo+ID4gKyVlbmRtYWNybw0K PiA+ICsNCj4gPiArZ2xvYmFsIEFTTV9QRlgoQ29tbW9uVGFza1N3dGljaEVudHJ5UG9pbnQpDQo+ ID4gK0FTTV9QRlgoQ29tbW9uVGFza1N3dGljaEVudHJ5UG9pbnQpOg0KPiA+ICsgICAgOw0KPiA+ ICsgICAgOyBTdGFjazoNCj4gPiArICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgPC0tIEVC UCAtIDgNCj4gPiArICAgIDsgKyAgICAgICBUU1MgQmFzZSAgICAgICsNCj4gPiArICAgIDsgKy0t LS0tLS0tLS0tLS0tLS0tLS0tLSsgPC0tIEVCUCAtIDQNCj4gPiArICAgIDsgKyAgICAgIENQVUlE LkVEWCAgICAgICsNCj4gPiArICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgPC0tIEVCUA0K PiA+ICsgICAgOyArICAgICAgICAgRUlQICAgICAgICAgKw0KPiA+ICsgICAgOyArLS0tLS0tLS0t LS0tLS0tLS0tLS0tKyA8LS0gRUJQICsgNA0KPiA+ICsgICAgOyArICAgIFZlY3RvciBOdW1iZXIg ICAgKw0KPiA+ICsgICAgOyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyA8LS0gRUJQICsgOA0KPiA+ ICsgICAgOyArICAgIEVycm9yIENvZGUgICAgICAgKw0KPiA+ICsgICAgOyArLS0tLS0tLS0tLS0t LS0tLS0tLS0tKw0KPiA+ICsgICAgOw0KPiA+ICs7DQo+ID4gKzsgR2V0IFRTUyBvZiBpbnRlcnJ1 cHRlZCB0YXNrDQo+ID4gKzsNCj4gPiArICAgIG1vdiAgICAgZWJwLCBlc3AgICAgICAgICAgICAg ICAgICAgIDsgU3RhY2sgZnJhbWUNCj4gPiArDQo+ID4gKzsgVXNlIENQVUlEIHRvIGRldGVybWlu ZSBpZiBGWFNBVkUvRlhSRVNUT1IgYW5kIERFIGFyZSBzdXBwb3J0ZWQNCj4gPiArICAgIG1vdiAg ICAgZWF4LCAxDQo+ID4gKyAgICBjcHVpZA0KPiA+ICsgICAgcHVzaCAgICBlZHgNCj4gPiArDQo+ ID4gKzsgR2V0IFRTUyBiYXNlIG9mIGludGVycnVwdGVkIHRhc2sgdGhyb3VnaCBQcmV2aW91c1Rh c2tMaW5rIGZpZWxkIGluDQo+ID4gKzsgY3VycmVudCBUU1MgYmFzZQ0KPiA+ICsgICAgc3ViICAg ICBlc3AsIDgNCj4gPiArICAgIHNnZHQgICAgW2VzcCArIDJdDQo+ID4gKyAgICBtb3YgICAgIGVh eCwgW2VzcCArIDRdICAgICAgICAgICAgICA7IEdEVCBiYXNlDQo+ID4gKyAgICBhZGQgICAgIGVz cCwgOA0KPiA+ICsNCj4gPiArICAgIHhvciAgICAgZWJ4LCBlYngNCj4gPiArICAgIHN0ciAgICAg YnggICAgICAgICAgICAgICAgICAgICAgICAgIDsgQ3VycmVudCBUUg0KPiA+ICsNCj4gPiArICAg IG1vdiAgICAgZWN4LCBbZWF4ICsgZWJ4ICsgMl0NCj4gPiArICAgIHNobCAgICAgZWN4LCA4DQo+ ID4gKyAgICBtb3YgICAgIGNsLCBbZWF4ICsgZWJ4ICsgN10NCj4gPiArICAgIHJvciAgICAgZWN4 LCA4ICAgICAgICAgICAgICAgICAgICAgIDsgZWN4ID0gQ3VycmVudCBUU1MgYmFzZQ0KPiA+ICsg ICAgcHVzaCAgICBlY3ggICAgICAgICAgICAgICAgICAgICAgICAgOyBrZWVwIGl0IGluIHN0YWNr IGZvciBsYXRlciB1c2UNCj4gPiArDQo+ID4gKyAgICBtb3Z6eCAgIGVieCwgd29yZCBbZWN4XSAg ICAgICAgICAgICA7IFByZXZpb3VzIFRhc2sgTGluaw0KPiA+ICsgICAgbW92ICAgICBlY3gsIFtl YXggKyBlYnggKyAyXQ0KPiA+ICsgICAgc2hsICAgICBlY3gsIDgNCj4gPiArICAgIG1vdiAgICAg Y2wsIFtlYXggKyBlYnggKyA3XQ0KPiA+ICsgICAgcm9yICAgICBlY3gsIDggICAgICAgICAgICAg ICAgICAgICAgOyBlY3ggPSBQcmV2aW91cyBUU1MgYmFzZQ0KPiA+ICsNCj4gPiArOw0KPiA+ICs7 IEFsaWduIHN0YWNrIHRvIG1ha2Ugc3VyZSB0aGF0IEVGSV9GWF9TQVZFX1NUQVRFX0lBMzIgb2YN Cj4gPiBFRklfU1lTVEVNX0NPTlRFWFRfSUEzMg0KPiA+ICs7IGlzIDE2LWJ5dGUgYWxpZ25lZA0K PiA+ICs7DQo+ID4gKyAgICBhbmQgICAgIGVzcCwgMHhmZmZmZmZmMA0KPiA+ICsgICAgc3ViICAg ICBlc3AsIDEyDQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIgIEVkaSwgRXNpLCBFYnAsIEVzcCwgRWJ4 LCBFZHgsIEVjeCwgRWF4Ow0KPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1Mu X0VBWF0NCj4gPiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQ1hdDQo+ID4g KyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRURYXQ0KPiA+ICsgICAgcHVzaCAg ICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VCWF0NCj4gPiArICAgIHB1c2ggICAgZHdvcmQgW2Vj eCArIElBMzJfVFNTLl9FU1BdDQo+ID4gKyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RT Uy5fRUJQXQ0KPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTSV0NCj4g PiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FREldDQo+ID4gKw0KPiA+ICs7 OyBVSU5UMzIgIEdzLCBGcywgRXMsIERzLCBDcywgU3M7DQo+ID4gKyAgICBtb3Z6eCAgIGVheCwg d29yZCBbZWN4ICsgSUEzMl9UU1MuX1NTXQ0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiArICAg IG1vdnp4ICAgZWF4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5fQ1NdDQo+ID4gKyAgICBwdXNoICAg IGVheA0KPiA+ICsgICAgbW92enggICBlYXgsIHdvcmQgW2VjeCArIElBMzJfVFNTLl9EU10NCj4g PiArICAgIHB1c2ggICAgZWF4DQo+ID4gKyAgICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4ICsgSUEz Ml9UU1MuX0VTXQ0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiArICAgIG1vdnp4ICAgZWF4LCB3 b3JkIFtlY3ggKyBJQTMyX1RTUy5fRlNdDQo+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ICsgICAg bW92enggICBlYXgsIHdvcmQgW2VjeCArIElBMzJfVFNTLl9HU10NCj4gPiArICAgIHB1c2ggICAg ZWF4DQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIgIEVpcDsNCj4gPiArICAgIHB1c2ggICAgZHdvcmQg W2VjeCArIElBMzJfVFNTLkVJUF0NCj4gPiArDQo+ID4gKzs7IFVJTlQzMiAgR2R0clsyXSwgSWR0 clsyXTsNCj4gPiArICAgIHN1YiAgICAgZXNwLCA4DQo+ID4gKyAgICBzaWR0ICAgIFtlc3BdDQo+ ID4gKyAgICBtb3YgICAgIGVheCwgW2VzcCArIDJdDQo+ID4gKyAgICB4Y2hnICAgIGVheCwgW2Vz cF0NCj4gPiArICAgIGFuZCAgICAgZWF4LCAweEZGRkYNCj4gPiArICAgIG1vdiAgICAgW2VzcCs0 XSwgZWF4DQo+ID4gKw0KPiA+ICsgICAgc3ViICAgICBlc3AsIDgNCj4gPiArICAgIHNnZHQgICAg W2VzcF0NCj4gPiArICAgIG1vdiAgICAgZWF4LCBbZXNwICsgMl0NCj4gPiArICAgIHhjaGcgICAg ZWF4LCBbZXNwXQ0KPiA+ICsgICAgYW5kICAgICBlYXgsIDB4RkZGRg0KPiA+ICsgICAgbW92ICAg ICBbZXNwKzRdLCBlYXgNCj4gPiArDQo+ID4gKzs7IFVJTlQzMiAgTGR0ciwgVHI7DQo+ID4gKyAg ICBtb3YgICAgIGVheCwgZWJ4ICAgIDsgZWJ4IHN0aWxsIGtlZXBzIHNlbGVjdG9yIG9mIGludGVy cnVwdGVkIHRhc2sNCj4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gKyAgICBtb3Z6eCAgIGVheCwg d29yZCBbZWN4ICsgSUEzMl9UU1MuTERUXQ0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiArDQo+ ID4gKzs7IFVJTlQzMiAgRUZsYWdzOw0KPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEz Ml9UU1MuRUZMQUdTXQ0KPiA+ICsNCj4gPiArOzsgVUlOVDMyICBDcjAsIENyMSwgQ3IyLCBDcjMs IENyNDsNCj4gPiArICAgIG1vdiAgICAgZWF4LCBjcjQNCj4gPiArICAgIHB1c2ggICAgZWF4ICAg ICAgICAgICAgIDsgcHVzaCBjcjQgZmlyc3RseQ0KPiA+ICsNCj4gPiArICAgIG1vdiAgICAgZWR4 LCBbZWJwIC0gNF0gIDsgY3B1aWQuZWR4DQo+ID4gKyAgICB0ZXN0ICAgIGVkeCwgQklUMjQgICAg ICA7IFRlc3QgZm9yIEZYU0FWRS9GWFJFU1RPUiBzdXBwb3J0DQo+ID4gKyAgICBqeiAgICAgIC4x DQo+ID4gKyAgICBvciAgICAgIGVheCwgQklUOSAgICAgICA7IFNldCBDUjQuT1NGWFNSDQo+ID4g Ky4xOg0KPiA+ICsgICAgdGVzdCAgICBlZHgsIEJJVDIgICAgICAgOyBUZXN0IGZvciBEZWJ1Z2dp bmcgRXh0ZW5zaW9ucyBzdXBwb3J0DQo+ID4gKyAgICBqeiAgICAgIC4yDQo+ID4gKyAgICBvciAg ICAgIGVheCwgQklUMyAgICAgICA7IFNldCBDUjQuREUNCj4gPiArLjI6DQo+ID4gKyAgICBtb3Yg ICAgIGNyNCwgZWF4DQo+ID4gKw0KPiA+ICsgICAgbW92ICAgICBlYXgsIGNyMw0KPiA+ICsgICAg cHVzaCAgICBlYXgNCj4gPiArICAgIG1vdiAgICAgZWF4LCBjcjINCj4gPiArICAgIHB1c2ggICAg ZWF4DQo+ID4gKyAgICB4b3IgICAgIGVheCwgZWF4DQo+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ ICsgICAgbW92ICAgICBlYXgsIGNyMA0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiArDQo+ID4g Kzs7IFVJTlQzMiAgRHIwLCBEcjEsIERyMiwgRHIzLCBEcjYsIERyNzsNCj4gPiArICAgIG1vdiAg ICAgZWF4LCBkcjcNCj4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gKyAgICBtb3YgICAgIGVheCwg ZHI2DQo+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ICsgICAgbW92ICAgICBlYXgsIGRyMw0KPiA+ ICsgICAgcHVzaCAgICBlYXgNCj4gPiArICAgIG1vdiAgICAgZWF4LCBkcjINCj4gPiArICAgIHB1 c2ggICAgZWF4DQo+ID4gKyAgICBtb3YgICAgIGVheCwgZHIxDQo+ID4gKyAgICBwdXNoICAgIGVh eA0KPiA+ICsgICAgbW92ICAgICBlYXgsIGRyMA0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiAr DQo+ID4gKzs7IEZYX1NBVkVfU1RBVEVfSUEzMiBGeFNhdmVTdGF0ZTsNCj4gPiArOzsgQ2xlYXIg VFMgYml0IGluIENSMCB0byBhdm9pZCBEZXZpY2UgTm90IEF2YWlsYWJsZSBFeGNlcHRpb24gKCNO TSkNCj4gPiArOzsgd2hlbiBleGVjdXRpbmcgZnhzYXZlL2Z4cnN0b3IgaW5zdHJ1Y3Rpb24NCj4g PiArICAgIHRlc3QgICAgZWR4LCBCSVQyNCAgOyBUZXN0IGZvciBGWFNBVkUvRlhSRVNUT1Igc3Vw cG9ydC4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgOyBlZHggc3RpbGwgY29udGFpbnMg cmVzdWx0IGZyb20gQ1BVSUQgYWJvdmUNCj4gPiArICAgIGp6ICAgICAgLjMNCj4gPiArICAgIGNs dHMNCj4gPiArICAgIHN1YiAgICAgZXNwLCA1MTINCj4gPiArICAgIG1vdiAgICAgZWRpLCBlc3AN Cj4gPiArICAgIGRiICAgICAgMHhmLCAweGFlLCAweDcgO2Z4c2F2ZSBbZWRpXQ0KPiA+ICsuMzoN Cj4gPiArDQo+ID4gKzs7IFVJTlQzMiAgRXhjZXB0aW9uRGF0YTsNCj4gPiArICAgIHB1c2ggICAg ZHdvcmQgW2VicCArIDhdDQo+ID4gKw0KPiA+ICs7OyBVRUZJIGNhbGxpbmcgY29udmVudGlvbiBm b3IgSUEzMiByZXF1aXJlcyB0aGF0IERpcmVjdGlvbiBmbGFnIGluIEVGTEFHcyBpcyBjbGVhcg0K PiA+ICsgICAgY2xkDQo+ID4gKw0KPiA+ICs7OyBjYWxsIGludG8gZXhjZXB0aW9uIGhhbmRsZXIN Cj4gPiArICAgIG1vdiAgICAgZXNpLCBlY3ggICAgICAgICAgICA7IEtlZXAgVFNTIGJhc2UgdG8g YXZvaWQgb3ZlcndyaXRlDQo+ID4gKyAgICBtb3YgICAgIGVheCwgQVNNX1BGWChDb21tb25FeGNl cHRpb25IYW5kbGVyKQ0KPiA+ICsNCj4gPiArOzsgUHJlcGFyZSBwYXJhbWV0ZXIgYW5kIGNhbGwN Cj4gPiArICAgIG1vdiAgICAgZWR4LCBlc3ANCj4gPiArICAgIHB1c2ggICAgZWR4ICAgICAgICAg ICAgICAgICA7IEVGSV9TWVNURU1fQ09OVEVYVA0KPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWJw ICsgNF0gICAgIDsgRUZJX0VYQ0VQVElPTl9UWVBFICh2ZWN0b3IgbnVtYmVyKQ0KPiA+ICsNCj4g PiArICAgIDsNCj4gPiArICAgIDsgQ2FsbCBFeHRlcm5hbCBFeGNlcHRpb24gSGFuZGxlcg0KPiA+ ICsgICAgOw0KPiA+ICsgICAgY2FsbCAgICBlYXgNCj4gPiArICAgIGFkZCAgICAgZXNwLCA4ICAg ICAgICAgICAgICA7IFJlc3RvcmUgc3RhY2sgYmVmb3JlIGNhbGxpbmcNCj4gPiArICAgIG1vdiAg ICAgZWN4LCBlc2kgICAgICAgICAgICA7IFJlc3RvcmUgVFNTIGJhc2UNCj4gPiArDQo+ID4gKzs7 IFVJTlQzMiAgRXhjZXB0aW9uRGF0YTsNCj4gPiArICAgIGFkZCAgICAgZXNwLCA0DQo+ID4gKw0K PiA+ICs7OyBGWF9TQVZFX1NUQVRFX0lBMzIgRnhTYXZlU3RhdGU7DQo+ID4gKyAgICBtb3YgICAg IGVkeCwgW2VicCAtIDRdICA7IGNwdWlkLmVkeA0KPiA+ICsgICAgdGVzdCAgICBlZHgsIEJJVDI0 ICAgICAgOyBUZXN0IGZvciBGWFNBVkUvRlhSRVNUT1Igc3VwcG9ydA0KPiA+ICsgICAganogICAg ICAuNA0KPiA+ICsgICAgbW92ICAgICBlc2ksIGVzcA0KPiA+ICsgICAgZGIgICAgICAweGYsIDB4 YWUsIDB4ZSAgOyBmeHJzdG9yIFtlc2ldDQo+ID4gKy40Og0KPiA+ICsgICAgYWRkICAgICBlc3As IDUxMg0KPiA+ICsNCj4gPiArOzsgVUlOVDMyICBEcjAsIERyMSwgRHIyLCBEcjMsIERyNiwgRHI3 OyA7OyBTa2lwIHJlc3RvcmF0aW9uIG9mIERSeA0KPiA+ICtyZWdpc3RlcnMgdG8gc3VwcG9ydCBk ZWJ1Z2dlcnMgOzsgdGhhdCBzZXQgYnJlYWtwb2ludHMgaW4NCj4gPiAraW50ZXJydXB0L2V4Y2Vw dGlvbiBjb250ZXh0DQo+ID4gKyAgICBhZGQgICAgIGVzcCwgNCAqIDYNCj4gPiArDQo+ID4gKzs7 IFVJTlQzMiAgQ3IwLCBDcjEsIENyMiwgQ3IzLCBDcjQ7DQo+ID4gKyAgICBwb3AgICAgIGVheA0K PiA+ICsgICAgbW92ICAgICBjcjAsIGVheA0KPiA+ICsgICAgYWRkICAgICBlc3AsIDQgICAgOyBu b3QgZm9yIENyMQ0KPiA+ICsgICAgcG9wICAgICBlYXgNCj4gPiArICAgIG1vdiAgICAgY3IyLCBl YXgNCj4gPiArICAgIHBvcCAgICAgZWF4DQo+ID4gKyAgICBtb3YgICAgIGR3b3JkIFtlY3ggKyBJ QTMyX1RTUy5fQ1IzXSwgZWF4DQo+ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ICsgICAgbW92ICAg ICBjcjQsIGVheA0KPiA+ICsNCj4gPiArOzsgVUlOVDMyICBFRmxhZ3M7DQo+ID4gKyAgICBwb3Ag ICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FRkxBR1NdDQo+ID4gKyAgICBtb3YgICAgIGVieCwg ZHdvcmQgW2VjeCArIElBMzJfVFNTLkVGTEFHU10NCj4gPiArICAgIGJ0ciAgICAgZWJ4LCA5ICAg ICAgOyBEbyAnY2xpJw0KPiA+ICsgICAgbW92ICAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuRUZM QUdTXSwgZWJ4DQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIgIExkdHIsIFRyOw0KPiA+ICs7OyBVSU5U MzIgIEdkdHJbMl0sIElkdHJbMl07DQo+ID4gKzs7IEJlc3Qgbm90IGxldCBhbnlvbmUgbWVzcyB3 aXRoIHRoZXNlIHBhcnRpY3VsYXIgcmVnaXN0ZXJzLi4uDQo+ID4gKyAgICBhZGQgICAgIGVzcCwg MjQNCj4gPiArDQo+ID4gKzs7IFVJTlQzMiAgRWlwOw0KPiA+ICsgICAgcG9wICAgICBkd29yZCBb ZWN4ICsgSUEzMl9UU1MuRUlQXQ0KPiA+ICsNCj4gPiArOzsgVUlOVDMyICBHcywgRnMsIEVzLCBE cywgQ3MsIFNzOw0KPiA+ICs7OyBOT1RFIC0gbW9kaWZpZWQgc2VnbWVudCByZWdpc3RlcnMgY291 bGQgaGFuZyB0aGUgZGVidWdnZXIuLi4gIFdlDQo+ID4gKzs7ICAgICAgICBjb3VsZCBhdHRlbXB0 IHRvIGluc3VsYXRlIG91cnNlbHZlcyBhZ2FpbnN0IHRoaXMgcG9zc2liaWxpdHksDQo+ID4gKzs7 ICAgICAgICBidXQgdGhhdCBwb3NlcyByaXNrcyBhcyB3ZWxsLg0KPiA+ICs7Ow0KPiA+ICsgICAg cG9wICAgICBlYXgNCj4gPiArbzE2IG1vdiAgICAgW2VjeCArIElBMzJfVFNTLl9HU10sIGF4DQo+ ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ICtvMTYgbW92ICAgICBbZWN4ICsgSUEzMl9UU1MuX0ZT XSwgYXgNCj4gPiArICAgIHBvcCAgICAgZWF4DQo+ID4gK28xNiBtb3YgICAgIFtlY3ggKyBJQTMy X1RTUy5fRVNdLCBheA0KPiA+ICsgICAgcG9wICAgICBlYXgNCj4gPiArbzE2IG1vdiAgICAgW2Vj eCArIElBMzJfVFNTLl9EU10sIGF4DQo+ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ICtvMTYgbW92 ICAgICBbZWN4ICsgSUEzMl9UU1MuX0NTXSwgYXgNCj4gPiArICAgIHBvcCAgICAgZWF4DQo+ID4g K28xNiBtb3YgICAgIFtlY3ggKyBJQTMyX1RTUy5fU1NdLCBheA0KPiA+ICsNCj4gPiArOzsgVUlO VDMyICBFZGksIEVzaSwgRWJwLCBFc3AsIEVieCwgRWR4LCBFY3gsIEVheDsNCj4gPiArICAgIHBv cCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FREldDQo+ID4gKyAgICBwb3AgICAgIGR3b3Jk IFtlY3ggKyBJQTMyX1RTUy5fRVNJXQ0KPiA+ICsgICAgYWRkICAgICBlc3AsIDQgICA7IG5vdCBm b3IgZWJwDQo+ID4gKyAgICBhZGQgICAgIGVzcCwgNCAgIDsgbm90IGZvciBlc3ANCj4gPiArICAg IHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQlhdDQo+ID4gKyAgICBwb3AgICAgIGR3 b3JkIFtlY3ggKyBJQTMyX1RTUy5fRURYXQ0KPiA+ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsg SUEzMl9UU1MuX0VDWF0NCj4gPiArICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9F QVhdDQo+ID4gKw0KPiA+ICs7IFNldCBzaW5nbGUgc3RlcCBEQiMgdG8gYWxsb3cgZGVidWdnZXIg dG8gYWJsZSB0byBnbyBiYWNrIHRvIHRoZSBFSVANCj4gPiArOyB3aGVyZSB0aGUgZXhjZXB0aW9u IGlzIHRyaWdnZXJlZC4NCj4gPiArDQo+ID4gKzs7IENyZWF0ZSByZXR1cm4gY29udGV4dCBmb3Ig aXJldGQgaW4gc3R1YiBmdW5jdGlvbg0KPiA+ICsgICAgbW92ICAgIGVheCwgZHdvcmQgW2VjeCAr IElBMzJfVFNTLl9FU1BdICAgICAgOyBHZXQgb2xkIHN0YWNrIHBvaW50ZXINCj4gPiArICAgIG1v diAgICBlYngsIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FSVBdDQo+ID4gKyAgICBtb3YgICAgW2Vh eCAtIDB4Y10sIGVieCAgICAgICAgICAgICAgICAgICAgICA7IGNyZWF0ZSBFSVAgaW4gb2xkIHN0 YWNrDQo+ID4gKyAgICBtb3Z6eCAgZWJ4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5fQ1NdDQo+ID4g KyAgICBtb3YgICAgW2VheCAtIDB4OF0sIGVieCAgICAgICAgICAgICAgICAgICAgICA7IGNyZWF0 ZSBDUyBpbiBvbGQgc3RhY2sNCj4gPiArICAgIG1vdiAgICBlYngsIGR3b3JkIFtlY3ggKyBJQTMy X1RTUy5FRkxBR1NdDQo+ID4gKyAgICBidHMgICAgZWJ4LCA4DQo+ID4gKyAgICBtb3YgICAgW2Vh eCAtIDB4NF0sIGVieCAgICAgICAgICAgICAgICAgICAgICA7IGNyZWF0ZSBlZmxhZ3MgaW4gb2xk DQo+IHN0YWNrDQo+ID4gKyAgICBtb3YgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVGTEFHU10s IGVieCAgICA7IHVwZGF0ZSBlZmxhZ3MgaW4gb2xkDQo+IFRTUw0KPiA+ICsgICAgbW92ICAgIGVh eCwgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU1BdICAgICAgOyBHZXQgb2xkIHN0YWNrIHBvaW50 ZXINCj4gPiArICAgIHN1YiAgICBlYXgsIDB4YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDsgbWludXMgMTIgYnl0ZQ0KPiA+ICsgICAgbW92ICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5f RVNQXSwgZWF4ICAgICAgOyBTZXQgbmV3IHN0YWNrIHBvaW50ZXINCj4gPiArDQo+ID4gKzs7IFJl cGxhY2UgdGhlIEVJUCBvZiBpbnRlcnJ1cHRlZCB0YXNrIHdpdGggc3R1YiBmdW5jdGlvbg0KPiA+ ICsgICAgbW92ICAgIGVheCwgQVNNX1BGWChTaW5nbGVTdGVwU3R1YkZ1bmN0aW9uKQ0KPiA+ICsg ICAgbW92ICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FSVBdLCBlYXgNCj4gPiArDQo+ID4gKyAg ICBtb3YgICAgIGVjeCwgW2VicCAtIDhdICAgICAgICAgICAgICAgICAgICAgICA7IEdldCBjdXJy ZW50IFRTUyBiYXNlDQo+ID4gKyAgICBtb3YgICAgIGVheCwgZHdvcmQgW2VjeCArIElBMzJfVFNT Ll9FU1BdICAgICA7IFJldHVybiBjdXJyZW50IHN0YWNrDQo+IHRvcA0KPiA+ICsgICAgbW92ICAg ICBlc3AsIGVicA0KPiA+ICsNCj4gPiArICAgIHJldA0KPiA+ICsNCj4gPiArZ2xvYmFsIEFTTV9Q RlgoU2luZ2xlU3RlcFN0dWJGdW5jdGlvbikNCj4gPiArQVNNX1BGWChTaW5nbGVTdGVwU3R1YkZ1 bmN0aW9uKToNCj4gPiArOw0KPiA+ICs7IHdlIG5lZWQgY2xlYW4gVFMgYml0IGluIENSMCB0byBl eGVjdXRlIDsgeDg3DQo+ID4gK0ZQVS9NTVgvU1NFL1NTRTIvU1NFMy9TU1NFMy9TU0U0IGluc3Ry dWN0aW9ucy4NCj4gPiArOw0KPiA+ICsgICAgY2x0cw0KPiA+ICsgICAgaXJldGQNCj4gPiArDQo+ ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICstLS0tLS0tLS0tDQo+ID4gKzsgVk9JRA0KPiA+ICs7IEFz bVdyaXRlVHIgKA0KPiA+ICs7ICAgVUlOVDE2IFNlbGVjdG9yDQo+ID4gKzsgICApOw0KPiA+ICs7 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gPiArLS0tLS0tLS0tLQ0KPiA+ICtnbG9iYWwgQVNNX1BGWChBc21Xcml0 ZVRyKQ0KPiA+ICtBU01fUEZYKEFzbVdyaXRlVHIpOg0KPiA+ICsgICAgbW92ICAgICBlYXgsIFtl c3ArNF0NCj4gPiArICAgIGx0ciAgICAgYXgNCj4gPiArICAgIHJldA0KPiA+ICsNCj4gPiArRGVm RXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDYNCj4gPiArRGVmRXhjZXB0aW9uVGFza1N3dGljaEVu dHJ5IDgNCj4gPiArRGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDEyDQo+ID4gK0RlZkV4Y2Vw dGlvblRhc2tTd3RpY2hFbnRyeSAxMw0KPiA+ICtEZWZFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkg MTQNCj4gPiArRGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDE3DQo+ID4gK0RlZkV4Y2VwdGlv blRhc2tTd3RpY2hFbnRyeSAxOA0KPiA+ICsNCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9VZWZpQ3B1 UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9QZWlDcHVFeGNlcHRpb25IYW5kbGVy TGliLg0KPiA+IGluZg0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIvUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4gPiBpbmYNCj4gPiBpbmRleCA3NTQ0 MzI4OGE5Li40YzBkNDM1MTM2IDEwMDY0NA0KPiA+IC0tLQ0KPiA+IGEvVWVmaUNwdVBrZy9MaWJy YXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4g PiBpbmYNCj4gPiArKysNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5k bGVyTGliL1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuDQo+ID4gaW5mDQo+ID4gQEAgLTMwLDYg KzMwLDcgQEANCj4gPiAgW1NvdXJjZXMuSWEzMl0NCj4gPiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRs ZXJBc20uYXNtDQo+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLm5hc20NCj4gPiArICBJ YTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hc20NCj4gPiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRs ZXJBc20uUw0KPiA+ICAgIElhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KPiA+ICAgIElhMzIv QXJjaEludGVycnVwdERlZnMuaA0KPiA+IGRpZmYgLS1naXQNCj4gPiBhL1VlZmlDcHVQa2cvTGli cmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NlY1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMDQo+ ID4gaWIuaQ0KPiA+IG5mDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi9TZWNQZWlDcHVFeGNlcHRpb25IYW5kbGVyTA0KPiA+IGliLmkNCj4gPiBuZg0KPiA+ IGluZGV4IGQ3MGE5OWMxMDAuLmFkYjQxNWJhNWEgMTAwNjQ0DQo+ID4gLS0tDQo+ID4gYS9VZWZp Q3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TZWNQZWlDcHVFeGNlcHRpb25I YW5kbGVyTA0KPiA+IGliLmkNCj4gPiBuZg0KPiA+ICsrKw0KPiA+IGIvVWVmaUNwdVBrZy9MaWJy YXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU2VjUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckwNCj4g PiBpYi5pDQo+ID4gbmYNCj4gPiBAQCAtMzAsNiArMzAsNyBAQA0KPiA+ICBbU291cmNlcy5JYTMy XQ0KPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5hc20NCj4gPiAgICBJYTMyL0V4Y2Vw dGlvbkhhbmRsZXJBc20ubmFzbQ0KPiA+ICsgIElhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFz bQ0KPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5TDQo+ID4gICAgSWEzMi9BcmNoRXhj ZXB0aW9uSGFuZGxlci5jDQo+ID4gICAgSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ID4gQEAg LTU3LDMgKzU4LDUgQEANCj4gPiAgICBQcmludExpYg0KPiA+ICAgIExvY2FsQXBpY0xpYg0KPiA+ ICAgIFBlQ29mZkdldEVudHJ5UG9pbnRMaWINCj4gPiArICBNZW1vcnlBbGxvY2F0aW9uTGliDQo+ ID4gKw0KPiA+IGRpZmYgLS1naXQNCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRp b25IYW5kbGVyTGliL1NtbUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuDQo+ID4gaW5mDQo+ID4gYi9V ZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TbW1DcHVFeGNlcHRpb25I YW5kbGVyTGliLg0KPiA+IGluZg0KPiA+IGluZGV4IDYzNGZmY2IyMWQuLjU2Yjg3NWI3YzggMTAw NjQ0DQo+ID4gLS0tDQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxl ckxpYi9TbW1DcHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+IGluZg0KPiA+ICsrKw0KPiA+IGIv VWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU21tQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi4NCj4gPiBpbmYNCj4gPiBAQCAtMzAsNiArMzAsNyBAQA0KPiA+ICBbU291cmNl cy5JYTMyXQ0KPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5hc20NCj4gPiAgICBJYTMy L0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFzbQ0KPiA+ICsgIElhMzIvRXhjZXB0aW9uVHNzRW50cnlB c20ubmFzbQ0KPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5TDQo+ID4gICAgSWEzMi9B cmNoRXhjZXB0aW9uSGFuZGxlci5jDQo+ID4gICAgSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ ID4gZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIvWDY0L0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFy eS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNoRXhjZXB0aW9uSGFuZGxlci5jDQo+ID4g aW5kZXggNjVmMGNmZjY4MC4uMjRmMmE4NDg2YSAxMDA2NDQNCj4gPiAtLS0NCj4gPiBhL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNoRXhjZXB0aW9uSGFu ZGxlci5jDQo+ID4gKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJM aWIvWDY0L0FyY2hFeGNlcHRpb25IYW5kbA0KPiA+ICsrKyBlci5jDQo+ID4gQEAgLTE0LDYgKzE0 LDE5IEBADQo+ID4NCj4gPiAgI2luY2x1ZGUgIkNwdUV4Y2VwdGlvbkNvbW1vbi5oIg0KPiA+DQo+ ID4gKy8vDQo+ID4gKy8vIExpc3Qgb2YgZXhjZXB0aW9ucyBuZWVkaW5nIHNlcGFyYXRlIHN0YWNr IC8vIFNUQVRJQyBVSU5UTg0KPiA+ICttRXhjZXB0aW9uc1dpdGhTdGFja1tdID0gew0KPiA+ICsg IDYsICAvLyNVRDogSW52YWxpZCBPcGNvZGUgRXhjZXB0aW9uDQo+ID4gKyAgOCwgIC8vI0RGOiBE b3VibGUgRmF1bHQgRXhjZXB0aW9uDQo+ID4gKyAgMTIsIC8vI1NTOiBTdGFjayBGYXVsdCBFeGNl cHRpb24NCj4gPiArICAxMywgLy8jR1A6IEdlbmVyYWwgUHJvdGVjdGlvbiBFeGNlcHRpb24NCj4g PiArICAxNCwgLy8jUEY6IFBhZ2UtRmF1bHQgRXhjZXB0aW9uDQo+ID4gKyAgMTcsIC8vI0FDOiBB bGlnbm1lbnQgQ2hlY2sgRXhjZXB0aW9uDQo+ID4gKyAgMTggIC8vI01DOiBNYWNoaW5lLUNoZWNr IEV4Y2VwdGlvbg0KPiA+ICsgIH07DQo+ID4gKw0KPiA+ICAvKioNCj4gPiAgICBSZXR1cm4gYWRk cmVzcyBtYXAgb2YgZXhjZXB0aW9uIGhhbmRsZXIgdGVtcGxhdGUgc28gdGhhdCBDIGNvZGUgY2Fu DQo+ID4gZ2VuZXJhdGUNCj4gPiAgICBleGNlcHRpb24gdGFibGVzLg0KPiA+IEBAIC0xMTIsNiAr MTI1LDEwMSBAQCBBcmNoUmVzdG9yZUV4Y2VwdGlvbkNvbnRleHQgKA0KPiA+ICAgIFN5c3RlbUNv bnRleHQuU3lzdGVtQ29udGV4dFg2NC0+RXhjZXB0aW9uRGF0YSA9DQo+ID4gUmVzZXJ2ZWRWZWN0 b3JzW0V4Y2VwdGlvblR5cGVdLkV4Y2VwdGlvbkRhdGE7DQo+ID4gIH0NCj4gPg0KPiA+ICsvKioN Cj4gPiArICBTZXR1cCBzZXBhcmF0ZSBzdGFjayBmb3Igc3BlY2lmaWMgZXhjZXB0aW9ucy4NCj4g PiArDQo+ID4gKyAgQHBhcmFtW2luXSBJZHRUYWJsZSAgICAgICAgSURUIHRhYmxlIGJhc2UuDQo+ ID4gKyoqLw0KPiA+ICtWT0lEDQo+ID4gK0VGSUFQSQ0KPiA+ICtBcmNoU2V0dXBFeGNwZXRpb25T dGFjayAoDQo+ID4gKyAgSU4gSUEzMl9JRFRfR0FURV9ERVNDUklQVE9SICAgICAgICAgICAqSWR0 VGFibGUNCj4gPiArICApDQo+ID4gK3sNCj4gPiArICBWT0lEICAgICAgICAgICAgICAgICAgICAg ICpOZXdHZHQ7DQo+ID4gKyAgSUEzMl9ERVNDUklQVE9SICAgICAgICAgICBHZHREZXNjOw0KPiA+ ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgT2xkR2R0U2l6ZTsNCj4gPiArICBUU1NfRU5U UklFUyAgICAgICAgICAgICAgICpUc3NFbnRyeTsNCj4gPiArICBVSU5UTiAgICAgICAgICAgICAg ICAgICAgIFN0YWNrQmFzZTsNCj4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIFN0YWNr VG9wOw0KPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgU3RhY2tTaXplOw0KPiA+ICsg IFVJTlROICAgICAgICAgICAgICAgICAgICAgVHNzQmFzZTsNCj4gPiArICBVSU5UTiAgICAgICAg ICAgICAgICAgICAgIEluZGV4Ow0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIEFsbG9jYXRl IFJ1bnRpbWUgRGF0YSBmb3IgdGhlIEdEVCAgLy8gIEFzbVJlYWRHZHRyKCZHZHREZXNjKTsNCj4g PiArIE9sZEdkdFNpemUgPSBHZHREZXNjLkxpbWl0ICsgMTsgIE5ld0dkdCA9DQo+ID4gKyBBbGxv Y2F0ZVJ1bnRpbWVaZXJvUG9vbChPbGRHZHRTaXplICsgc2l6ZW9mKFRTU19FTlRSSUVTKQ0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSUEzMl9HRFRfQUxJR05NRU5UKTsg IGlmIChOZXdHZHQNCj4gPT0NCj4gPiArIE5VTEwpIHsNCj4gPiArICAgIHJldHVybjsNCj4gPiAr ICB9DQo+ID4gKyAgTmV3R2R0ID0gQUxJR05fUE9JTlRFUiAoTmV3R2R0LCBJQTMyX0dEVF9BTElH Tk1FTlQpOw0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIEluaXRpYWxpemUgbmV3IEdEVCBl bnRyaWVzDQo+ID4gKyAgLy8NCj4gPiArICBDb3B5TWVtKE5ld0dkdCwgKFZPSUQgKilHZHREZXNj LkJhc2UsIE9sZEdkdFNpemUpOyAgR2R0RGVzYy5CYXNlID0NCj4gPiArIChVSU5UTikoVk9JRCop TmV3R2R0OyAgR2R0RGVzYy5MaW1pdCA9IChVSU5UMTYpKE9sZEdkdFNpemUgKw0KPiA+ICsgVFNT X09GRlNFVCAtIDEpOw0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIFJlc2VydmUgc3RhdGNr IG1lbW9yeSBmb3Igc3VwcG9ydGVkIGV4Y2VwdGlvbnMgIC8vICBTdGFja1NpemUgPQ0KPiA+ICsg QVJSQVlfU0laRSAobUV4Y2VwdGlvbnNXaXRoU3RhY2spICogRVhDRVBUSU9OX1NUQUNLX1NJWkU7 ICBTdGFja1NpemUNCj4gPiArID0gRUZJX1BBR0VTX1RPX1NJWkUgKEVGSV9TSVpFX1RPX1BBR0VT IChTdGFja1NpemUpKTsgIFN0YWNrQmFzZSA9DQo+ID4gKyAoVUlOVDY0KUFsbG9jYXRlUGFnZXMg KEVGSV9TSVpFX1RPX1BBR0VTIChTdGFja1NpemUpKTsgIGlmDQo+ID4gKyAoU3RhY2tCYXNlID09 IDApIHsNCj4gPiArICAgIEZyZWVQb29sIChOZXdHZHQpOw0KPiA+ICsgICAgcmV0dXJuOw0KPiA+ ICsgIH0NCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBGaXh1cCBUU1MgZGVzY3JpcHRvcnMN Cj4gPiArICAvLw0KPiA+ICsgIFRzc0VudHJ5ID0gKFZPSUQgKikoR2R0RGVzYy5CYXNlICsgT2xk R2R0U2l6ZSk7ICBUc3NCYXNlID0NCj4gPiArIChVSU5UTikoVk9JRCAqKSZUc3NFbnRyeS0+VHNz Ow0KPiA+ICsNCj4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkxpbWl0MTVfMCAgICAgICAgICAgID0N Cj4gPiBzaXplb2YoSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQpIC0gMTsNCj4gPiArICBUc3NFbnRy eS0+VHNzU2VnLkJhc2UxNV8wICAgICAgICAgICAgID0gKFVJTlQxNilUc3NCYXNlOw0KPiA+ICsg IFRzc0VudHJ5LT5Uc3NTZWcuQmFzZTIzXzE2ICAgICAgICAgICAgPSAoVUlOVDgpKFRzc0Jhc2Ug Pj4gMTYpOw0KPiA+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuVHlwZSAgICAgICAgICAgICAgICAgPSBJ QTMyX0dEVF9UWVBFX1RTUzsNCj4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkxpbWl0MTlfMTZfYW5k X2ZsYWdzID0gMDsNCj4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkJhc2UzMV8yNCAgICAgICAgICAg ID0gKFVJTlQ4KShUc3NCYXNlID4+IDI0KTsNCj4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkJhc2U2 M18zMiAgICAgICAgICAgID0gKFVJTlQzMikoVHNzQmFzZSA+PiAzMik7DQo+ID4gKyAgVHNzRW50 cnktPlRzc1NlZy5SZXNlcnZlZCAgICAgICAgICAgICA9IDA7DQo+ID4gKw0KPiA+ICsgIC8vDQo+ ID4gKyAgLy8gRW5hYmxlIEludGVycnVwdCBTdGFjayBUYWJsZSAoSVNUKSBmb3IgZWFjaCByZXF1 aXJlZCBleGNlcHRpb24NCj4gPiArIC8vICBTdGFja1RvcCAgPSBTdGFja0Jhc2UgKyBTdGFja1Np emUgLSBDUFVfU1RBQ0tfQUxJR05NRU5UOw0KPiA+ICsgU3RhY2tUb3AgID0gKFVJTlROKUFMSUdO X1BPSU5URVIgKFN0YWNrVG9wLCBDUFVfU1RBQ0tfQUxJR05NRU5UKTsNCj4gPiArIGZvciAoSW5k ZXggPSAwOyBJbmRleCA8IEFSUkFZX1NJWkUgKG1FeGNlcHRpb25zV2l0aFN0YWNrKTsgKytJbmRl eCkgew0KPiA+ICsgICAgLy8NCj4gPiArICAgIC8vIEZpeHVwIFRTUw0KPiA+ICsgICAgLy8NCj4g PiArICAgIFRzc0VudHJ5LT5Uc3MuSVNUW0luZGV4XSA9IFN0YWNrVG9wOw0KPiA+ICsgICAgU3Rh Y2tUb3AgLT0gRVhDRVBUSU9OX1NUQUNLX1NJWkU7DQo+ID4gKw0KPiA+ICsgICAgLy8NCj4gPiAr ICAgIC8vIFNldCB0aGUgSVNUIGZpZWxkIHRvIDEgdG8gZW5hYmxlIGNvcnJlc3BvbmRpbmcgSVNU DQo+ID4gKyAgICAvLw0KPiA+ICsgICAgSWR0VGFibGVbbUV4Y2VwdGlvbnNXaXRoU3RhY2tbSW5k ZXhdXS5CaXRzLlJlc2VydmVkXzAgPQ0KPiA+ICsgKFVJTlQ4KShJbmRleCArDQo+ID4gMSk7DQo+ ID4gKyAgfQ0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIFB1Ymxpc2ggdGhlIGNoYW5nZXMN Cj4gPiArICAvLw0KPiA+ICsgIEFzbVdyaXRlR2R0cigmR2R0RGVzYyk7DQo+ID4gKw0KPiA+ICsg IC8vDQo+ID4gKyAgLy8gTG9hZCB0YXNrIHJlZ2lzdGVyDQo+ID4gKyAgLy8NCj4gPiArICBBc21X cml0ZVRyICgoVUlOVDE2KShPbGRHZHRTaXplICsgVFNTX1NFTCkpOyB9DQo+ID4gKw0KPiA+ICAv KioNCj4gPiAgICBEaXNwbGF5IENQVSBpbmZvcm1hdGlvbi4NCj4gPg0KPiA+IGRpZmYgLS1naXQN Cj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNo SW50ZXJydXB0RGVmcy5oDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi9YNjQvQXJjaEludGVycnVwdERlZnMuaA0KPiA+IGluZGV4IDkwNjQ4MDEzNGEuLjVh OTEzYmFlN2IgMTAwNjQ0DQo+ID4gLS0tDQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhj ZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEludGVycnVwdERlZnMuaA0KPiA+ICsrKyBiL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNoSW50ZXJydXB0RGVm cy4NCj4gPiArKysgaA0KPiA+IEBAIC00Myw0ICs0Myw0NCBAQCB0eXBlZGVmIHN0cnVjdCB7DQo+ ID4gICAgVUlOVDggICAgICAgSG9va0FmdGVyU3R1YkhlYWRlckNvZGVbSE9PS0FGVEVSX1NUVUJf U0laRV07DQo+ID4gIH0gUkVTRVJWRURfVkVDVE9SU19EQVRBOw0KPiA+DQo+ID4gKyNwcmFnbWEg cGFjayAoMSkNCj4gPiArDQo+ID4gKyNkZWZpbmUgRVhDRVBUSU9OX0xJU1RfTUFYICAgICAgICA3 DQo+ID4gKyNkZWZpbmUgRVhDRVBUSU9OX1NUQUNLX1NJWkUgICAgICBFRklfUEFHRV9TSVpFDQo+ ID4gKyNkZWZpbmUgSUEzMl9HRFRfVFlQRV9UU1MgICAgICAgICAweDg5DQo+ID4gKyNkZWZpbmUg SUEzMl9HRFRfQUxJR05NRU5UICAgICAgICA4DQo+ID4gKw0KPiA+ICt0eXBlZGVmIHN0cnVjdCB7 DQo+ID4gKyAgVUlOVDMyICAgIFJlc2VydmVkXzA7DQo+ID4gKyAgVUlOVDY0ICAgIFJTUDA7DQo+ ID4gKyAgVUlOVDY0ICAgIFJTUDE7DQo+ID4gKyAgVUlOVDY0ICAgIFJTUDI7DQo+ID4gKyAgVUlO VDY0ICAgIFJlc2VydmVkXzI4Ow0KPiA+ICsgIFVJTlQ2NCAgICBJU1RbN107DQo+ID4gKyAgVUlO VDY0ICAgIFJlc2VydmVkXzkyOw0KPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF8xMDA7DQo+ID4g KyAgVUlOVDE2ICAgIElPTWFwQmFzZUFkZHJlc3M7DQo+ID4gK30gSUEzMl9UQVNLX1NUQVRFX1NF R01FTlQ7DQo+ID4gKw0KPiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4gKyAgVUlOVDE2ICAgIExp bWl0MTVfMDsNCj4gPiArICBVSU5UMTYgICAgQmFzZTE1XzA7DQo+ID4gKyAgVUlOVDggICAgIEJh c2UyM18xNjsNCj4gPiArICBVSU5UOCAgICAgVHlwZTsNCj4gPiArICBVSU5UOCAgICAgTGltaXQx OV8xNl9hbmRfZmxhZ3M7DQo+ID4gKyAgVUlOVDggICAgIEJhc2UzMV8yNDsNCj4gPiArICBVSU5U MzIgICAgQmFzZTYzXzMyOw0KPiA+ICsgIFVJTlQzMiAgICBSZXNlcnZlZDsNCj4gPiArfSBJQTMy X1RTU19ERVNDUklQVE9SOw0KPiA+ICsNCj4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ICsgIElB MzJfVFNTX0RFU0NSSVBUT1IgICAgICAgICAgIFRzc1NlZzsNCj4gPiArICBJQTMyX1RBU0tfU1RB VEVfU0VHTUVOVCAgICAgICBUc3M7DQo+ID4gK30gVFNTX0VOVFJJRVM7DQo+ID4gKw0KPiA+ICsj cHJhZ21hIHBhY2sgKCkNCj4gPiArDQo+ID4gKyNkZWZpbmUgVFNTX1NFTCAgICAgICAgICAgT0ZG U0VUX09GIChUU1NfRU5UUklFUywgVHNzU2VnKQ0KPiA+ICsjZGVmaW5lIFRTU19PRkZTRVQgICAg ICAgIE9GRlNFVF9PRiAoVFNTX0VOVFJJRVMsIFRzcykNCj4gPiArDQo+ID4gICNlbmRpZg0KPiA+ IGRpZmYgLS1naXQNCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVy TGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9D cHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCj4gPiBpbmRl eCBlZGQzNjNjZGFhLi5iZGFmMTMyY2Y1IDEwMDY0NA0KPiA+IC0tLQ0KPiA+IGEvVWVmaUNwdVBr Zy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20u Uw0KPiA+ICsrKw0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJM aWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiA+IEBAIC00MjksNiArNDI5LDE4IEBAIEFT TV9QRlgoQXNtVmVjdG9yTnVtRml4dXApOg0KPiA+ICAgICAgcG9wcSAgICAgICVyYnANCj4gPiAg ICAgIHJldA0KPiA+DQo+ID4gKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICstLS0tLS0tLS0tDQo+ID4gKyMg Vk9JRA0KPiA+ICsjIEFzbVdyaXRlVHIgKA0KPiA+ICsjICAgVUlOVDE2IFNlbGVjdG9yDQo+ID4g KyMgICApOw0KPiA+ICsjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArLS0tLS0tLS0tLQ0KPiA+ICtBU01fR0xP QkFMIEFTTV9QRlgoQXNtV3JpdGVUcikNCj4gPiArQVNNX1BGWChBc21Xcml0ZVRyKToNCj4gPiAr ICAgIG1vdmwgICAgJWVjeCwgJWVheA0KPiA+ICsgICAgbHRydyAgICAlYXgNCj4gPiArICAgIHJl dA0KPiA+ICsNCj4gPiAgI0VORA0KPiA+DQo+ID4NCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9VZWZp Q3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxl ckFzbS5hcw0KPiA+IG0NCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5k bGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLmFzDQo+ID4gbQ0KPiA+IGluZGV4IDcyNmM2 NGExNDAuLmFlYzU2ZWY0YmYgMTAwNjQ0DQo+ID4gLS0tDQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJh cnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5hcw0KPiA+ IG0NCj4gPiArKysNCj4gPg0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5k bGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0KPiA+IEBAIC0zODYsNCArMzg2LDE2 IEBAIEFzbVZlY3Rvck51bUZpeHVwICAgUFJPQw0KPiA+ICAgICAgcmV0DQo+ID4gIEFzbVZlY3Rv ck51bUZpeHVwICAgRU5EUA0KPiA+DQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICstLS0tLS0tLS0t DQo+ID4gKzsgVk9JRA0KPiA+ICs7IEFzbVdyaXRlVHIgKA0KPiA+ICs7ICAgVUlOVDE2IFNlbGVj dG9yDQo+ID4gKzsgICApOw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArLS0tLS0tLS0tLQ0KPiA+ ICtBc21Xcml0ZVRyIFBST0MgUFVCTElDDQo+ID4gKyAgICBtb3YgICAgIGVheCwgZWN4DQo+ID4g KyAgICBsdHIgICAgIGF4DQo+ID4gKyAgICByZXQNCj4gPiArQXNtV3JpdGVUciBFTkRQDQo+ID4g Kw0KPiA+ICBFTkQNCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5uYQ0KPiA+IHNtDQo+ ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0 aW9uSGFuZGxlckFzbS5uYQ0KPiA+IHNtDQo+ID4gaW5kZXggYmE4OTkzZDg0Yi4uMWUyYWM0MTFi MCAxMDA2NDQNCj4gPiAtLS0NCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25I YW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLm5hDQo+ID4gc20NCj4gPiArKysNCj4g PiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRp b25IYW5kbGVyQXNtLm5hDQo+ID4gc20gQEAgLTM4NSwzICszODUsMTUgQEAgQVNNX1BGWChBc21W ZWN0b3JOdW1GaXh1cCk6DQo+ID4gICAgICBtb3YgICAgIFtyY3ggKyAoQFZlY3Rvck51bSAtIEhv b2tBZnRlclN0dWJIZWFkZXJCZWdpbildLCBhbA0KPiA+ICAgICAgcmV0DQo+ID4NCj4gPiArOy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ID4gKy0tLS0tLS0tLS0NCj4gPiArOyBWT0lEDQo+ID4gKzsgQXNtV3JpdGVU ciAoDQo+ID4gKzsgICBVSU5UMTYgU2VsZWN0b3INCj4gPiArOyAgICk7DQo+ID4gKzstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPiA+ICstLS0tLS0tLS0tDQo+ID4gK2dsb2JhbCBBU01fUEZYKEFzbVdyaXRlVHIpDQo+ ID4gK0FTTV9QRlgoQXNtV3JpdGVUcik6DQo+ID4gKyAgICBtb3YgICAgIGVheCwgZWN4DQo+ID4g KyAgICBsdHIgICAgIGF4DQo+ID4gKyAgICByZXQNCj4gPiArDQo+ID4gLS0NCj4gPiAyLjE0LjEu d2luZG93cy4xDQo+DQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fDQo+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+IGVkazItZGV2ZWxAbGlzdHMuMDEu b3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4NCj4gaHR0cHM6Ly9saXN0cy4wMS5v cmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo+DQo+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+ IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4N Cj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQoNCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQplZGsyLWRldmVs IG1haWxpbmcgbGlzdA0KZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxA bGlzdHMuMDEub3JnPg0KaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsy LWRldmVsDQo=