From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.65; helo=mga03.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (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 EC48B2034AB1B for ; Sun, 5 Nov 2017 16:26:39 -0800 (PST) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Nov 2017 16:30:34 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,350,1505804400"; d="scan'208,217";a="172304446" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga006.fm.intel.com with ESMTP; 05 Nov 2017 16:30:34 -0800 Received: from fmsmsx123.amr.corp.intel.com (10.18.125.38) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 5 Nov 2017 16:30:34 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx123.amr.corp.intel.com (10.18.125.38) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 5 Nov 2017 16:30:33 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.159]) with mapi id 14.03.0319.002; Mon, 6 Nov 2017 08:30:30 +0800 From: "Wang, Jian J" To: Fan Jeff , "Yao, Jiewen" , "Kinney, Michael D" , "edk2-devel@lists.01.org" CC: "Dong, Eric" , "Zeng, Star" Thread-Topic: [PATCH 3/3] UefiCpuPkg/CpuExceptionHandlerLib: Add stack switch support Thread-Index: AQHTUrSw7kMmlPjLfkaS9nSj0Ju2aqL+y3RDgADfOwCAAjUBgIAAcILq//+IQACABK4k8A== Date: Mon, 6 Nov 2017 00:30:29 +0000 Message-ID: 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>, In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNDU1NTc5ZDMtMGQyYS00OTQ1LWE1ZTktZGJjZmY5MGFjNzhjIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJ3d05sT3FNSmtXbitWb0RPdzJ3T1E1XC9RQjVyVUcxK1wvUWZZYXpnWFwvTHZtRkVlMlwvbUttNTh1M3lFb0JGaXF4YSJ9 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 00:26:40 -0000 Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SmVmZiwNCg0KVGhhdKGvcyBhIGdvb2Qgc3VnZ2VzdGlvbi4gRG8geW91IGtub3cgaWYgdGhlcmWh r3MgYW55IHBpdGZhbGwgaW4gdXNpbmcgZGF0YSBzZWdtZW50IG1lbW9yeSBhcyBzdGFjaz8NCg0K VGhhbmtzLA0KSmlhbg0KDQpGcm9tOiBGYW4gSmVmZiBbbWFpbHRvOnZhbmplZmZfOTE5QGhvdG1h aWwuY29tXQ0KU2VudDogRnJpZGF5LCBOb3ZlbWJlciAwMywgMjAxNyA0OjU5IFBNDQpUbzogWWFv LCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5j b20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KQ2M6IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0Bp bnRlbC5jb20+OyBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KU3ViamVjdDogtPC4 tDogW1BBVENIIDMvM10gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVyTGliOiBBZGQgc3Rh Y2sgc3dpdGNoIHN1cHBvcnQNCg0KDQpKaWFuLA0KDQoNCg0KRm9yIGV4YW1wbGUsIHlvdSBjb3Vs ZCB1c2UgdGhlIGdsb2JhbCB2YXJpYWJsZSBVSU5UOCBOZXdTdGFja1syNTZdIGluc3RlYWQgb2Yg YWxsb2NhdGUgbWVtb3J5IGZvciBzdGFjayBhbmQgdHJ5IHRvIHVzZSB0aGUgb3RoZXIgZ2xvYmFs IHZhcmlhYmxlcyBmb3Igb3RoZXIgYWxsb2NhdGVkIGRhdGEuDQoNCg0KDQpEb2VzIGl0IHdvcmsg Zm9yIHlvdXIgY2FzZT8NCg0KDQoNClRoYW5rcyENCg0KSmVmZg0KDQoNCg0KX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18NCkZyb206IGVkazItZGV2ZWwgPGVkazItZGV2ZWwtYm91bmNl c0BsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWwtYm91bmNlc0BsaXN0cy4wMS5vcmc+PiBv biBiZWhhbGYgb2YgRmFuIEplZmYgPHZhbmplZmZfOTE5QGhvdG1haWwuY29tPG1haWx0bzp2YW5q ZWZmXzkxOUBob3RtYWlsLmNvbT4+DQpTZW50OiBGcmlkYXksIE5vdmVtYmVyIDMsIDIwMTcgNDoy MToyMiBQTQ0KVG86IFlhbywgSmlld2VuOyBLaW5uZXksIE1pY2hhZWwgRDsgV2FuZywgSmlhbiBK OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+ DQpDYzogRG9uZywgRXJpYzsgWmVuZywgU3Rhcg0KU3ViamVjdDogW2VkazJdILTwuLQ6IFtQQVRD SCAzLzNdIFVlZmlDcHVQa2cvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYjogQWRkIHN0YWNrIHN3aXRj aCBzdXBwb3J0DQoNCkppYW4sDQoNCkNvdWxkIHlvdSB1c2Ugc29tZSBnbG9iYWwgdmFyaWFibGVz IGluIGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9ibG9iL21hc3Rlci9VZWZpQ3B1 UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVFeGNlcHRpb24uYyB0byBhdm9p ZCBhZGRpbmcgbmV3IEFQST8NCg0KSmVmZg0Kt6K8/sjLOiBZYW8sIEppZXdlbjxtYWlsdG86amll d2VuLnlhb0BpbnRlbC5jb20+DQq3osvNyrG85DogMjAxN8TqMTHUwjPI1SA5OjI0DQrK1bz+yMs6 IEtpbm5leSwgTWljaGFlbCBEPG1haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IEZh biBKZWZmPG1haWx0bzp2YW5qZWZmXzkxOUBob3RtYWlsLmNvbT47IFdhbmcsIEppYW4gSjxtYWls dG86amlhbi5qLndhbmdAaW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRv OmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZyUz Y21haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4+DQqzrcvNOiBEb25nLCBFcmljPG1haWx0 bzplcmljLmRvbmdAaW50ZWwuY29tPjsgWmVuZywgU3RhcjxtYWlsdG86c3Rhci56ZW5nQGludGVs LmNvbT4NCtb3zOI6IFJFOiBbUEFUQ0ggMy8zXSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRs ZXJMaWI6IEFkZCBzdGFjayBzd2l0Y2ggc3VwcG9ydA0KDQpISSBKaWFuDQpUaGVyZSBpcyBhbm90 aGVyIHBvdGVudGlhbCBwcm9ibGVtLg0KDQpUaGlzIGZlYXR1cmUgaXMgZW5hYmxlZCBpbiBJbml0 aWFsaXplQ3B1SW50ZXJydXB0SGFuZGxlcnMoKS4gSG93ZXZlciwgd2UgZXhwZWN0IHRoaXMgaXMg ZW5hYmxlZCBpbiBJbml0aWFsaXplQ3B1RXhjZXB0aW9uSGFuZGxlcnMoKS4NCg0KSW4gb3JkZXIg dG8gZ2V0IHRoZSBleGNlcHRpb24gc3RhY2sgaW4gSW5pdGlhbGl6ZUNwdUV4Y2VwdGlvbkhhbmRs ZXJzKCkuIFdlIGNhbiBoYXZlIDIgd2F5czoNCkEpIExldCBJbml0aWFsaXplQ3B1RXhjZXB0aW9u SGFuZGxlcnMoKSBhbGxvY2F0ZSB0aGUgZXhjZXB0aW9uIHN0YWNrLg0KQikgTGV0IGNhbGxlciB0 byBwYXNzIHRoZSBleGNlcHRpb24gc3RhY2sgdG8gSW5pdGlhbGl6ZUNwdUV4Y2VwdGlvbkhhbmRs ZXJzKCkuDQoNCkZvciBBKSwgaXQgaXMgaGFyZCwgYmVjYXVzZSBEeGVDb3JlIGNhbGxzIEluaXRp YWxpemVDcHVFeGNlcHRpb25IYW5kbGVycygpIGVhcmxpZXIgdGhhbiBDb3JlSW5pdGlhbGl6ZU1l bW9yeVNlcnZpY2VzKCkuDQpGb3IgQiksIEluaXRpYWxpemVDcHVFeGNlcHRpb25IYW5kbGVycygp IGludGVyZmFjZSBkb2VzIG5vdCBjb250YWluIHN1Y2ggaW5mb3JtYXRpb24uIFdlIG1pZ2h0IG5l ZWQgYWRkIGEgbmV3IEFQSSB0byBhZGQgdGhlIGV4Y2VwdGlvbiBzdGFjayBpbmZvcm1hdGlvbiwg c3VjaCBhcyBJbml0aWFsaXplQ3B1U3dpdGNoU3RhY2tFeGNlcHRpb25IYW5kbGVycyAoKS4NCg0K T25jZSB0aGlzIGZlYXR1cmUgaXMgZG9uZSwgY2FuIHdlIGNsZWFuIHVwIHRoZSBTTU0gY29kZSB0 byB1c2UgdGhlIG5ldyBBUEksIGluc3RlYWQgb2YgZHVwbGljYXRlIHRoZSBTTU0gY29weSBvZiBl eGNlcHRpb24gaGFuZGxlciA/IFRoZSBleGlzdGluZyBTTU0gY29weSBoYXMgc29tZSBhc3N1bXB0 aW9uIG9uIENSNCBhbmQgRlhTQVZFL1JFU1RPUkUsIGFuZCBpdCBicm9rZSBRdWFyayBwbGF0Zm9y bS4NCg0KVGhhbmsgeW91DQpZYW8gSmlld2VuDQoNCg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+IEZyb206IEtpbm5leSwgTWljaGFlbCBEDQo+IFNlbnQ6IFdlZG5lc2RheSwgTm92 ZW1iZXIgMSwgMjAxNyAxMTo0MyBQTQ0KPiBUbzogRmFuIEplZmYgPHZhbmplZmZfOTE5QGhvdG1h aWwuY29tPG1haWx0bzp2YW5qZWZmXzkxOUBob3RtYWlsLmNvbT4+OyBZYW8sIEppZXdlbiA8amll d2VuLnlhb0BpbnRlbC5jb208bWFpbHRvOmppZXdlbi55YW9AaW50ZWwuY29tPj47DQo+IFdhbmcs IEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5j b20+PjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEu b3JnPjsgS2lubmV5LCBNaWNoYWVsDQo+IEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPG1h aWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4+DQo+IENjOiBEb25nLCBFcmljIDxlcmlj LmRvbmdAaW50ZWwuY29tPG1haWx0bzplcmljLmRvbmdAaW50ZWwuY29tPj47IFplbmcsIFN0YXIg PHN0YXIuemVuZ0BpbnRlbC5jb208bWFpbHRvOnN0YXIuemVuZ0BpbnRlbC5jb20+Pg0KPiBTdWJq ZWN0OiBSRTogW1BBVENIIDMvM10gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVyTGliOiBB ZGQgc3RhY2sgc3dpdGNoDQo+IHN1cHBvcnQNCj4NCj4gSSBhZ3JlZSB0aGF0IGFkZGluZyBBc21X cml0ZVRyLCBJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCwNCj4gSUEzMl9UU1NfREVTQ1JJUFRPUiB0 byBNZGVQa2cgQmFzZUxpYiBpcyBhIGdvb2QgaWRlYS4NCj4NCj4gTWlrZQ0KPg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZl bC1ib3VuY2VzQGxpc3RzLjAxLm9yZ10gT24gQmVoYWxmIE9mIEZhbg0KPiBKZWZmDQo+IFNlbnQ6 IFR1ZXNkYXksIE9jdG9iZXIgMzEsIDIwMTcgNzozMyBQTQ0KPiBUbzogWWFvLCBKaWV3ZW4gPGpp ZXdlbi55YW9AaW50ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4+OyBXYW5nLCBK aWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbTxtYWlsdG86amlhbi5qLndhbmdAaW50ZWwuY29t Pj47DQo+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAx Lm9yZz4NCj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bTxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+PjsgRG9uZywgRXJpYw0KPiA8ZXJp Yy5kb25nQGludGVsLmNvbTxtYWlsdG86ZXJpYy5kb25nQGludGVsLmNvbT4+OyBaZW5nLCBTdGFy IDxzdGFyLnplbmdAaW50ZWwuY29tPG1haWx0bzpzdGFyLnplbmdAaW50ZWwuY29tPj4NCj4gU3Vi amVjdDogW2VkazJdILTwuLQ6IFtQQVRDSCAzLzNdIFVlZmlDcHVQa2cvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYjogQWRkDQo+IHN0YWNrIHN3aXRjaCBzdXBwb3J0DQo+DQo+IFBlciBodHRwczovL2J1 Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTEwOSwgVFIgc2hvdWxkIGJlIHNl dHVwDQo+IChTdWNoIGFzIGluIER4ZUlwbFBlaW0pIGV2ZW4gdGhvdWdoIE5VTEwgQ3B1IEV4Y2Vw dGlvbiBIYW5kbGVyIGluc3RhbmNlIGlzDQo+IGNob3Nlbi4NCj4NCj4gRm9yIGxvbmcgdGVybSwg SSBhZ3JlZSB3ZSBuZWVkIHRvIG1vdmUgQXNtV3JpdGVUciwNCj4gSUEzMl9UQVNLX1NUQVRFX1NF R01FTlQsIElBMzJfVFNTX0RFU0NSSVBUT1IgdG8gTWRlUGtnKFN1Y2ggYXMgQmFzZUxpYikNCj4g Rm9yIHRoaXMgcGF0Y2gsIEkgaGF2ZSBubyBzdHJvbmcgb3Bpbmlvbi4NCj4NCj4NCj4gt6K8/sjL OiBZYW8sIEppZXdlbjxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ILeiy83KsbzkOiAy MDE3xOoxMdTCMcjVIDk6NTYNCj4gytW8/sjLOiBXYW5nLCBKaWFuIEo8bWFpbHRvOmppYW4uai53 YW5nQGludGVsLmNvbT47DQo+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRl dmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmclM2NtYWlsdG86 ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+Pg0KPiCzrcvNOiBLaW5uZXksIE1pY2hhZWwgRDxtYWls dG86bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBEb25nLA0KPiBFcmljPG1haWx0bzplcmlj LmRvbmdAaW50ZWwuY29tPjsgWmVuZywgU3RhcjxtYWlsdG86c3Rhci56ZW5nQGludGVsLmNvbT4N Cj4g1vfM4jogUmU6IFtlZGsyXSBbUEFUQ0ggMy8zXSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhh bmRsZXJMaWI6IEFkZCBzdGFjaw0KPiBzd2l0Y2ggc3VwcG9ydA0KPg0KPiBIaSBKaWFuDQo+IFRo YW5rcyBmb3IgdGhlIHBhdGNoLg0KPg0KPiBDYW4gd2UgbW92ZSBhbGwgSUEzMiBkZWZpbmVkIGRh dGEgc3RydWN0dXJlIG9yIGZ1bmN0aW9uIHRvIE1kZVBrZz8NCj4gU3VjaCBhczogQXNtV3JpdGVU ciwgSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQsIElBMzJfVFNTX0RFU0NSSVBUT1INCj4NCj4gSSBh bSBhbHNvIGN1cmlvdXMgd2h5IHdlIHVzZSBkaWZmZXJlbnQgcG9saWN5IGZvciBvdGhlciBib290 IG1vZGUuDQo+IENhbiB3ZSB1c2UgY29uc2lzdGVudCBwb2xpY3k/DQo+ID4gKyAgaWYgKFBjZEdl dEJvb2wgKFBjZENwdVN0YWNrR3VhcmQpKSB7DQo+ID4gKyAgICAvLw0KPiA+ICsgICAgLy8gU3Rh Y2sgR3VhcmQgd29ya3Mgd2l0aCB0aGUgc3VwcG9ydCBvZiBwYWdlIHRhYmxlIGVzdGFibGlzaGVk IGFuZA0KPiA+ICsgICAgLy8gbWVtb3J5IG1hbmFnZW1lbnQuIFNvIHdlIGhhdmUgdG8gZXhjbHVk ZSB0aG9zZSBib290IG1vZGVzDQo+ID4gd2l0aG91dA0KPiA+ICsgICAgLy8gdGhlbS4NCj4gPiAr ICAgIC8vDQo+ID4gKyAgICBzd2l0Y2ggKEdldEJvb3RNb2RlSG9iKCkpIHsNCj4gPiArICAgIGNh c2UgQk9PVF9PTl9GTEFTSF9VUERBVEU6DQo+ID4gKyAgICBjYXNlIEJPT1RfSU5fUkVDT1ZFUllf TU9ERToNCj4gPiArICAgIGNhc2UgQk9PVF9PTl9TM19SRVNVTUU6DQo+ID4gKyAgICAgIGJyZWFr Ow0KPiA+ICsNCj4gPiArICAgIGRlZmF1bHQ6DQo+ID4gKyAgICAgIEFyY2hTZXR1cEV4Y3BldGlv blN0YWNrIChJZHRUYWJsZSk7DQo+ID4gKyAgICAgIGJyZWFrOw0KPiA+ICsgICAgfQ0KPiA+ICsg IH0NCj4NCj4NCj4gVGhhbmsgeW91DQo+IFlhbyBKaWV3ZW4NCj4NCj4NCj4gPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFdhbmcsIEppYW4gSg0KPiA+IFNlbnQ6IFR1ZXNk YXksIE9jdG9iZXIgMzEsIDIwMTcgMTA6MjQgUE0NCj4gPiBUbzogZWRrMi1kZXZlbEBsaXN0cy4w MS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPg0KPiA+IENjOiBaZW5nLCBTdGFy IDxzdGFyLnplbmdAaW50ZWwuY29tPG1haWx0bzpzdGFyLnplbmdAaW50ZWwuY29tPj47IERvbmcs IEVyaWMNCj4gPiA8ZXJpYy5kb25nQGludGVsLmNvbTxtYWlsdG86ZXJpYy5kb25nQGludGVsLmNv bT4+OyBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb208bWFpbHRvOmppZXdlbi55YW9A aW50ZWwuY29tPj47IEtpbm5leSwNCj4gPiBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tPG1haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4+DQo+ID4gU3ViamVjdDog W1BBVENIIDMvM10gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVyTGliOiBBZGQgc3RhY2sN Cj4gPiBzd2l0Y2ggc3VwcG9ydA0KPiA+DQo+ID4gSWYgU3RhY2sgR3VhcmQgaXMgZW5hYmxlZCBh bmQgdGhlcmUncyByZWFsbHkgYSBzdGFjayBvdmVyZmxvdyBoYXBwZW5lZA0KPiA+IGR1cmluZyBi b290LCBhIFBhZ2UgRmF1bHQgZXhjZXB0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkLiBCZWNhdXNlIHRo ZQ0KPiA+IHN0YWNrIGlzIG91dCBvZiB1c2FnZSwgdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLCB3aGlj aCBzaGFyZXMgdGhlIHN0YWNrDQo+ID4gd2l0aCBub3JtYWwgVUVGSSBkcml2ZXIsIGNhbm5vdCBi ZSBleGVjdXRlZCBhbmQgY2Fubm90IGR1bXAgdGhlIHByb2Nlc3Nvcg0KPiBpbmZvcm1hdGlvbi4N Cj4gPg0KPiA+IFdpdGhvdXQgdGhvc2UgaW5mb3JtYXRpb24sIGl0J3MgdmVyeSBkaWZmaWN1bHQg Zm9yIHRoZSBCSU9TIGRldmVsb3BlcnMNCj4gPiBsb2NhdGUgdGhlIHJvb3QgY2F1c2Ugb2Ygc3Rh Y2sgb3ZlcmZsb3cuIEFuZCB3aXRob3V0IGEgd29ya2FibGUgc3RhY2ssDQo+ID4gdGhlIGRldmVs b3BlciBjYW5ub3QgZXZlbnQgdXNlIHNpbmdsZSBzdGVwIHRvIGRlYnVnIHRoZSBVRUZJIGRyaXZl ciB3aXRoIEpUQUcNCj4gZGVidWdnZXIuDQo+ID4NCj4gPiBJbiBvcmRlciB0byBtYWtlIHN1cmUg dGhlIGV4Y2VwdGlvbiBoYW5kbGVyIHRvIGV4ZWN1dGUgbm9ybWFsbHkgYWZ0ZXINCj4gPiBzdGFj ayBvdmVyZmxvdy4gV2UgbmVlZCBzZXBhcmF0ZSBzdGFja3MgZm9yIGV4Y2VwdGlvbiBoYW5kbGVy cyBpbiBjYXNlDQo+ID4gb2YgdW51c2FibGUgc3RhY2suDQo+ID4NCj4gPiBJQSBwcm9jZXNzb3Ig YWxsb3dzIHRvIHN3aXRjaCB0byBhIG5ldyBzdGFjayBkdXJpbmcgaGFuZGxpbmcgaW50ZXJydXB0 DQo+ID4gYW5kIGV4Y2VwdGlvbi4gQnV0IFg2NCBhbmQgSUEzMiBwcm92aWRlcyBkaWZmZXJlbnQg d2F5cyB0byBtYWtlIGl0Lg0KPiA+IFg2NCBwcm92aWRlcyBpbnRlcnJ1cHQgc3RhY2sgdGFibGUg KElTVCkgdG8gYWxsb3cgbWF4aW11bSA3IGRpZmZlcmVudA0KPiA+IGV4Y2VwdGlvbnMgdG8gaGF2 ZSBuZXcgc3RhY2sgZm9yIGl0cyBoYW5kbGVyLiBJQTMyIGRvZXNuJ3QgaGF2ZSBJU1QNCj4gPiBt ZWNoYW5pc20gYW5kIGNhbiBvbmx5IHVzZSB0YXNrIGdhdGUgdG8gZG8gaXQgc2luY2UgdGFzayBz d2l0Y2ggYWxsb3dzDQo+ID4gdG8gbG9hZCBhIG5ldyBzdGFjayB0aHJvdWdoIGl0cyB0YXNrLXN0 YXRlIHNlZ21lbnQgKFRTUykuDQo+ID4NCj4gPiBOb3RlOiBTdGFjayBzd2l0Y2ggbmVlZHMgdG8g YWxsb2NhdGUgbWVtb3J5IHBhZ2VzIHRvIGJlIG5ldyBzdGFja3MuIFNvIHRoaXMNCj4gPiAgICAg ICBmdW5jdGlvbmFsaXR5IHdvcmtzIG9ubHkgaW4gdGhlIGJvb3QgcGhhc2VzIGNhcGFibGUgb2Yg bWVtb3J5DQo+ID4gICAgICAgYWxsb2NhdGlvbiAoYmVzaWRlcyB0aGUgcGFnaW5nLCBmb3IgdGhl IHNha2Ugb2YgU3RhY2sgR3VhcmQpLiBJbg0KPiA+ICAgICAgIG90aGVyIHdvcmRzLCBvbmx5IERY RSBwaGFzZSBjYW4gc3VwcG9ydHMgU3RhY2sgR3VhcmQgd2l0aCBzdGFjaw0KPiBzd2l0Y2guDQo+ ID4NCj4gPiBDYzogU3RhciBaZW5nIDxzdGFyLnplbmdAaW50ZWwuY29tPG1haWx0bzpzdGFyLnpl bmdAaW50ZWwuY29tPj4NCj4gPiBDYzogRXJpYyBEb25nIDxlcmljLmRvbmdAaW50ZWwuY29tPG1h aWx0bzplcmljLmRvbmdAaW50ZWwuY29tPj4NCj4gPiBDYzogSmlld2VuIFlhbyA8amlld2VuLnlh b0BpbnRlbC5jb208bWFpbHRvOmppZXdlbi55YW9AaW50ZWwuY29tPj4NCj4gPiBDYzogTWljaGFl bCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPG1haWx0bzptaWNoYWVsLmQua2lu bmV5QGludGVsLmNvbT4+DQo+ID4gU3VnZ2VzdGVkLWJ5OiBBeWVsbGV0IFdvbG1hbiA8YXllbGxl dC53b2xtYW5AaW50ZWwuY29tPG1haWx0bzpheWVsbGV0LndvbG1hbkBpbnRlbC5jb20+Pg0KPiA+ IENvbnRyaWJ1dGVkLXVuZGVyOiBUaWFub0NvcmUgQ29udHJpYnV0aW9uIEFncmVlbWVudCAxLjEN Cj4gPiBTaWduZWQtb2ZmLWJ5OiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwuY29tPG1h aWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+Pg0KPiA+IC0tLQ0KPiA+ICAuLi4vQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRpb25Db21tb24uaCAgICB8ICAyMiArKw0KPiA+ICAuLi4v RHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgICAgICAgICAgICAgICAgICB8ICAgNSArDQo+ ID4gIC4uLi9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMgIHwg IDE5ICsNCj4gPiAgLi4uL0lhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYyAgICAgICAgICAgICAg ICAgICAgfCAxMzUgKysrKysrKw0KPiA+ICAuLi4vSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oICAg ICAgICAgICAgICAgICAgICAgICB8IDEzNiArKysrKysrDQo+ID4gIC4uLi9JYTMyL0V4Y2VwdGlv blRzc0VudHJ5QXNtLm5hc20gICAgICAgICAgICAgICAgIHwgMzk4DQo+ID4gKysrKysrKysrKysr KysrKysrKysrDQo+ID4gIC4uLi9QZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZiAgICAgICAg ICAgICAgICAgIHwgICAxICsNCj4gPiAgLi4uL1NlY1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIu aW5mICAgICAgICAgICAgICAgfCAgIDMgKw0KPiA+ICAuLi4vU21tQ3B1RXhjZXB0aW9uSGFuZGxl ckxpYi5pbmYgICAgICAgICAgICAgICAgICB8ICAgMSArDQo+ID4gIC4uLi9YNjQvQXJjaEV4Y2Vw dGlvbkhhbmRsZXIuYyAgICAgICAgICAgICAgICAgICAgIHwgMTA4ICsrKysrKw0KPiA+ICAuLi4v Q3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEludGVycnVwdERlZnMuaCB8ICA0MCArKysN Cj4gPiAgLi4uL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLlMgICAgICAgICAgICAgICAgICAgICAg fCAgMTIgKw0KPiA+ICAuLi4vWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uYXNtICAgICAgICAgICAg ICAgICAgICB8ICAxMiArDQo+ID4gIC4uLi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5uYXNtICAg ICAgICAgICAgICAgICAgIHwgIDEyICsNCj4gPiAgMTQgZmlsZXMgY2hhbmdlZCwgOTA0IGluc2Vy dGlvbnMoKykNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gVWVmaUNwdVBrZy9MaWJyYXJ5 L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS5uYQ0KPiA+ IHNtDQo+ID4NCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhj ZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRpb25Db21tb24uaA0KPiA+IGIvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmgNCj4gPiBp bmRleCA3NDBhNTg4MjhiLi5mZDRhMjZhNDU4IDEwMDY0NA0KPiA+IC0tLSBhL1VlZmlDcHVQa2cv TGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0NwdUV4Y2VwdGlvbkNvbW1vbi5oDQo+ID4g KysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvQ3B1RXhjZXB0 aW9uQ29tbW9uLmgNCj4gPiBAQCAtMjUsNiArMjUsNyBAQA0KPiA+ICAjaW5jbHVkZSA8TGlicmFy eS9CYXNlTWVtb3J5TGliLmg+DQo+ID4gICNpbmNsdWRlIDxMaWJyYXJ5L1N5bmNocm9uaXphdGlv bkxpYi5oPiAgI2luY2x1ZGUNCj4gPiA8TGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliLmg+ DQo+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L01lbW9yeUFsbG9jYXRpb25MaWIuaD4NCj4gPg0KPiA+ ICAjZGVmaW5lICBDUFVfRVhDRVBUSU9OX05VTSAgICAgICAgICAzMg0KPiA+ICAjZGVmaW5lICBD UFVfSU5URVJSVVBUX05VTSAgICAgICAgIDI1Ng0KPiA+IEBAIC0yODgsNSArMjg5LDI2IEBAIENv bW1vbkV4Y2VwdGlvbkhhbmRsZXJXb3JrZXIgKA0KPiA+ICAgIElOIEVYQ0VQVElPTl9IQU5ETEVS X0RBVEEgICAgICAqRXhjZXB0aW9uSGFuZGxlckRhdGENCj4gPiAgICApOw0KPiA+DQo+ID4gKy8q Kg0KPiA+ICsgIExvYWQgZ2l2ZW4gc2VsZWN0b3IgaW50byBUUiByZWdpc3Rlcg0KPiA+ICsNCj4g PiArICBAcGFyYW0gU2VsZWN0b3IgICAgICAgICBUYXNrIHNlZ21lbnQgc2VsZWN0b3INCj4gPiAr KiovDQo+ID4gK1ZPSUQNCj4gPiArQXNtV3JpdGVUciAoDQo+ID4gKyAgVUlOVDE2IFNlbGVjdG9y DQo+ID4gKyAgKTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgIFNldHVwIHNlcGFyYXRlIHN0YWNr IGZvciBzcGVjaWZpYyBleGNlcHRpb25zLg0KPiA+ICsNCj4gPiArICBAcGFyYW1baW5dIElkdFRh YmxlICAgICAgICBJRFQgdGFibGUgYmFzZS4NCj4gPiArKiovDQo+ID4gK1ZPSUQNCj4gPiArRUZJ QVBJDQo+ID4gK0FyY2hTZXR1cEV4Y3BldGlvblN0YWNrICgNCj4gPiArICBJTiBJQTMyX0lEVF9H QVRFX0RFU0NSSVBUT1IgICAgICAgICAgICpJZHRUYWJsZQ0KPiA+ICsgICk7DQo+ID4gKw0KPiA+ ICAjZW5kaWYNCj4gPg0KPiA+IGRpZmYgLS1naXQNCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9D cHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuDQo+ID4gaW5m DQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVDcHVF eGNlcHRpb25IYW5kbGVyTGliLg0KPiA+IGluZg0KPiA+IGluZGV4IGY0YThkMDFjODAuLmIwOTll ZjRkYWQgMTAwNjQ0DQo+ID4gLS0tDQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9EeGVDcHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+IGluZg0KPiA+ICsr Kw0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4gPiBpbmYNCj4gPiBAQCAtMzAsNiArMzAsNyBAQA0KPiA+ ICBbU291cmNlcy5JYTMyXQ0KPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5hc20NCj4g PiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFzbQ0KPiA+ICsgIElhMzIvRXhjZXB0aW9u VHNzRW50cnlBc20ubmFzbQ0KPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5TDQo+ID4g ICAgSWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxlci5jDQo+ID4gICAgSWEzMi9BcmNoSW50ZXJydXB0 RGVmcy5oDQo+ID4gQEAgLTQ3LDYgKzQ4LDkgQEANCj4gPiAgICBQZWlEeGVTbW1DcHVFeGNlcHRp b24uYw0KPiA+ICAgIER4ZUV4Y2VwdGlvbi5jDQo+ID4NCj4gPiArW1BjZF0NCj4gPiArICBnRWZp TWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQ3B1U3RhY2tHdWFyZA0KPiA+ICsNCj4gPiAg W1BhY2thZ2VzXQ0KPiA+ICAgIE1kZVBrZy9NZGVQa2cuZGVjDQo+ID4gICAgTWRlTW9kdWxlUGtn L01kZU1vZHVsZVBrZy5kZWMNCj4gPiBAQCAtNjEsMyArNjUsNCBAQA0KPiA+ICAgIFBlQ29mZkdl dEVudHJ5UG9pbnRMaWINCj4gPiAgICBNZW1vcnlBbGxvY2F0aW9uTGliDQo+ID4gICAgRGVidWdM aWINCj4gPiArICBIb2JMaWINCj4gPiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0Nw dUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMNCj4gPiBiL1VlZmlDcHVQa2cvTGli cmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUV4Y2VwdGlvbi5jDQo+ID4gaW5kZXggMzFm ZWJlYzk3Ni4uZTlkY2QwMGUwMiAxMDA2NDQNCj4gPiAtLS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkv Q3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVFeGNlcHRpb24uYw0KPiA+ICsrKyBiL1VlZmlDcHVQ a2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUV4Y2VwdGlvbi5jDQo+ID4gQEAg LTE2LDYgKzE2LDcgQEANCj4gPiAgI2luY2x1ZGUgIkNwdUV4Y2VwdGlvbkNvbW1vbi5oIg0KPiA+ ICAjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0KPiA+ICAjaW5jbHVkZSA8TGlicmFyeS9N ZW1vcnlBbGxvY2F0aW9uTGliLmg+DQo+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L0hvYkxpYi5oPg0K PiA+DQo+ID4gIENPTlNUIFVJTlROICAgIG1Eb0ZhclJldHVybkZsYWcgID0gMDsNCj4gPg0KPiA+ IEBAIC0xNTUsNiArMTU2LDI0IEBAIEluaXRpYWxpemVDcHVJbnRlcnJ1cHRIYW5kbGVycyAoDQo+ ID4NCj4gPiAgICBVcGRhdGVJZHRUYWJsZSAoSWR0VGFibGUsICZUZW1wbGF0ZU1hcCwgJm1FeGNl cHRpb25IYW5kbGVyRGF0YSk7DQo+ID4NCj4gPiArICBpZiAoUGNkR2V0Qm9vbCAoUGNkQ3B1U3Rh Y2tHdWFyZCkpIHsNCj4gPiArICAgIC8vDQo+ID4gKyAgICAvLyBTdGFjayBHdWFyZCB3b3JrcyB3 aXRoIHRoZSBzdXBwb3J0IG9mIHBhZ2UgdGFibGUgZXN0YWJsaXNoZWQgYW5kDQo+ID4gKyAgICAv LyBtZW1vcnkgbWFuYWdlbWVudC4gU28gd2UgaGF2ZSB0byBleGNsdWRlIHRob3NlIGJvb3QgbW9k ZXMNCj4gPiB3aXRob3V0DQo+ID4gKyAgICAvLyB0aGVtLg0KPiA+ICsgICAgLy8NCj4gPiArICAg IHN3aXRjaCAoR2V0Qm9vdE1vZGVIb2IoKSkgew0KPiA+ICsgICAgY2FzZSBCT09UX09OX0ZMQVNI X1VQREFURToNCj4gPiArICAgIGNhc2UgQk9PVF9JTl9SRUNPVkVSWV9NT0RFOg0KPiA+ICsgICAg Y2FzZSBCT09UX09OX1MzX1JFU1VNRToNCj4gPiArICAgICAgYnJlYWs7DQo+ID4gKw0KPiA+ICsg ICAgZGVmYXVsdDoNCj4gPiArICAgICAgQXJjaFNldHVwRXhjcGV0aW9uU3RhY2sgKElkdFRhYmxl KTsNCj4gPiArICAgICAgYnJlYWs7DQo+ID4gKyAgICB9DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiAg ICAvLw0KPiA+ICAgIC8vIExvYWQgSW50ZXJydXB0IERlc2NyaXB0b3IgVGFibGUNCj4gPiAgICAv Lw0KPiA+IGRpZmYgLS1naXQNCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25I YW5kbGVyTGliL0lhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuDQo+ID4gYw0KPiA+IGIvVWVmaUNw dVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoRXhjZXB0aW9uSGFu ZGxlci4NCj4gPiBjDQo+ID4gaW5kZXggZjJjMzllYjE5My4uM2Q0MWRmNzVhNSAxMDA2NDQNCj4g PiAtLS0NCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lh MzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuDQo+ID4gYw0KPiA+ICsrKw0KPiA+IGIvVWVmaUNwdVBr Zy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxl ci4NCj4gPiBjDQo+ID4gQEAgLTE0LDYgKzE0LDE5IEBADQo+ID4NCj4gPiAgI2luY2x1ZGUgIkNw dUV4Y2VwdGlvbkNvbW1vbi5oIg0KPiA+DQo+ID4gKy8vDQo+ID4gKy8vIExpc3Qgb2YgZXhjZXB0 aW9ucyBuZWVkaW5nIHNlcGFyYXRlIHN0YWNrIC8vIFNUQVRJQw0KPiA+ICtJQTMyX0VYQ0VQVElP Tl9UU19FTlRSWSBtRXhjZXB0aW9uc1dpdGhTdGFja1tdID0gew0KPiA+ICsgIHs2LCAgRXhjZXB0 aW9uVGFza1N3dGljaEVudHJ5Nn0sICAvLyNVRDogSW52YWxpZCBPcGNvZGUgRXhjZXB0aW9uDQo+ ID4gKyAgezgsICBFeGNlcHRpb25UYXNrU3d0aWNoRW50cnk4fSwgIC8vI0RGOiBEb3VibGUgRmF1 bHQgRXhjZXB0aW9uDQo+ID4gKyAgezEyLCBFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxMn0sIC8v I1NTOiBTdGFjayBGYXVsdCBFeGNlcHRpb24NCj4gPiArICB7MTMsIEV4Y2VwdGlvblRhc2tTd3Rp Y2hFbnRyeTEzfSwgLy8jR1A6IEdlbmVyYWwgUHJvdGVjdGlvbg0KPiA+ICtFeGNlcHRpb24NCj4g PiArICB7MTQsIEV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTE0fSwgLy8jUEY6IFBhZ2UtRmF1bHQg RXhjZXB0aW9uDQo+ID4gKyAgezE3LCBFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxN30sIC8vI0FD OiBBbGlnbm1lbnQgQ2hlY2sgRXhjZXB0aW9uDQo+ID4gKyAgezE4LCBFeGNlcHRpb25UYXNrU3d0 aWNoRW50cnkxOH0gIC8vI01DOiBNYWNoaW5lLUNoZWNrIEV4Y2VwdGlvbiB9Ow0KPiA+ICsNCj4g PiAgLyoqDQo+ID4gICAgUmV0dXJuIGFkZHJlc3MgbWFwIG9mIGV4Y2VwdGlvbiBoYW5kbGVyIHRl bXBsYXRlIHNvIHRoYXQgQyBjb2RlIGNhbg0KPiA+IGdlbmVyYXRlDQo+ID4gICAgZXhjZXB0aW9u IHRhYmxlcy4NCj4gPiBAQCAtMTA3LDYgKzEyMCwxMjggQEAgQXJjaFJlc3RvcmVFeGNlcHRpb25D b250ZXh0ICgNCj4gPiAgICBTeXN0ZW1Db250ZXh0LlN5c3RlbUNvbnRleHRJYTMyLT5FeGNlcHRp b25EYXRhID0NCj4gPiBSZXNlcnZlZFZlY3RvcnNbRXhjZXB0aW9uVHlwZV0uRXhjZXB0aW9uRGF0 YTsNCj4gPiAgfQ0KPiA+DQo+ID4gKy8qKg0KPiA+ICsgIFNldHVwIHNlcGFyYXRlIHN0YWNrIGZv ciBzcGVjaWZpYyBleGNlcHRpb25zLg0KPiA+ICsNCj4gPiArICAgQHBhcmFtW2luXSBJZHRUYWJs ZSAgICAgICAgSURUIHRhYmxlIGJhc2UuDQo+ID4gKyoqLw0KPiA+ICtWT0lEDQo+ID4gK0VGSUFQ SQ0KPiA+ICtBcmNoU2V0dXBFeGNwZXRpb25TdGFjayAoDQo+ID4gKyAgSU4gSUEzMl9JRFRfR0FU RV9ERVNDUklQVE9SICAgICAgICAgICAqSWR0VGFibGUNCj4gPiArICApDQo+ID4gK3sNCj4gPiAr ICBWT0lEICAgICAgICAgICAgICAgICAgICAgICpOZXdHZHQ7DQo+ID4gKyAgSUEzMl9ERVNDUklQ VE9SICAgICAgICAgICBHZHREZXNjOw0KPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAg T2xkR2R0U2l6ZTsNCj4gPiArICBUU1NfRU5UUklFUyAgICAgICAgICAgICAgICpUc3NFbnRyeTsN Cj4gPiArICBJQTMyX1RTU19ERVNDUklQVE9SICAgICAgICpUc3NEZXNjOw0KPiA+ICsgIElBMzJf VEFTS19TVEFURV9TRUdNRU5UICAgKlRzczsNCj4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAg ICAgIFN0YWNrQmFzZTsNCj4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIFN0YWNrVG9w Ow0KPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgU3RhY2tTaXplOw0KPiA+ICsgIFVJ TlROICAgICAgICAgICAgICAgICAgICAgSW5kZXg7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAg ICAgICAgICBWZWN0b3I7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBUc3NCYXNl Ow0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIEFsbG9jYXRlIFJ1bnRpbWUgRGF0YSBmb3Ig dGhlIEdEVCAgLy8gIEFzbVJlYWRHZHRyKCZHZHREZXNjKTsNCj4gPiArIE9sZEdkdFNpemUgPSBH ZHREZXNjLkxpbWl0ICsgMTsgIE5ld0dkdCA9DQo+ID4gKyBBbGxvY2F0ZVJ1bnRpbWVaZXJvUG9v bChPbGRHZHRTaXplICsgc2l6ZW9mKFRTU19FTlRSSUVTKQ0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsgSUEzMl9HRFRfQUxJR05NRU5UKTsgIGlmDQo+IChOZXdHZHQN Cj4gPiArID09IE5VTEwpIHsNCj4gPiArICAgIHJldHVybjsNCj4gPiArICB9DQo+ID4gKyAgTmV3 R2R0ID0gQUxJR05fUE9JTlRFUiAoTmV3R2R0LCBJQTMyX0dEVF9BTElHTk1FTlQpOw0KPiA+ICsN Cj4gPiArICAvLw0KPiA+ICsgIC8vIEluaXRpYWxpemUgbmV3IEdEVCBlbnRyaWVzDQo+ID4gKyAg Ly8NCj4gPiArICBDb3B5TWVtKE5ld0dkdCwgKFZPSUQgKilHZHREZXNjLkJhc2UsIE9sZEdkdFNp emUpOyAgR2R0RGVzYy5CYXNlID0NCj4gPiArIChVSU5UTikoVk9JRCopTmV3R2R0OyAgR2R0RGVz Yy5MaW1pdCA9IChVSU5UMTYpKE9sZEdkdFNpemUgKw0KPiA+ICsgVFNTX09GRlNFVCAtIDEpOw0K PiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIFJlc2VydmUgc3RhdGNrIG1lbW9yeSBmb3IgZ2l2 ZW4gZXhjZXB0aW9ucyAgLy8gIFN0YWNrU2l6ZSA9DQo+ID4gKyBBUlJBWV9TSVpFIChtRXhjZXB0 aW9uc1dpdGhTdGFjaykgKiBFWENFUFRJT05fU1RBQ0tfU0laRTsgIFN0YWNrU2l6ZQ0KPiA+ICsg PSBFRklfUEFHRVNfVE9fU0laRSAoRUZJX1NJWkVfVE9fUEFHRVMgKFN0YWNrU2l6ZSkpOyAgU3Rh Y2tCYXNlID0NCj4gPiArIChVSU5UNjQpKFVJTlROKUFsbG9jYXRlUGFnZXMgKEVGSV9TSVpFX1RP X1BBR0VTDQo+ID4gKFN0YWNrU2l6ZSkpOw0KPiA+ICsgIGlmIChTdGFja0Jhc2UgPT0gMCkgew0K PiA+ICsgICAgRnJlZVBvb2wgKE5ld0dkdCk7DQo+ID4gKyAgICByZXR1cm47DQo+ID4gKyAgfQ0K PiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIEZpeHVwIFRTUyBkZXNjcmlwdG9ycyBhbmQgc2Vn bWVudHMgIC8vICBUc3NFbnRyeSA9IChWT0lEDQo+ID4gKyAqKShHZHREZXNjLkJhc2UgKyBPbGRH ZHRTaXplKTsNCj4gPiArDQo+ID4gKyAgVHNzQmFzZSA9IChVSU5UTikoVk9JRCAqKSZUc3NFbnRy eS0+VHNzOw0KPiA+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuTGltaXQxNV8wICAgICAgICAgICAgPQ0K PiA+IHNpemVvZihJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCkgLSAxOw0KPiA+ICsgIFRzc0VudHJ5 LT5Uc3NTZWcuQmFzZTE1XzAgICAgICAgICAgICAgPSAoVUlOVDE2KVRzc0Jhc2U7DQo+ID4gKyAg VHNzRW50cnktPlRzc1NlZy5CYXNlMjNfMTYgICAgICAgICAgICA9IChVSU5UOCkoVHNzQmFzZSA+ PiAxNik7DQo+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5UeXBlICAgICAgICAgICAgICAgICA9IElB MzJfR0RUX1RZUEVfVFNTOw0KPiA+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuTGltaXQxOV8xNl9hbmRf ZmxhZ3MgPSAwOw0KPiA+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuQmFzZTMxXzI0ICAgICAgICAgICAg PSAoVUlOVDgpKFRzc0Jhc2UgPj4gMjQpOw0KPiA+ICsNCj4gPiArICBTdGFja1RvcCAgPSBTdGFj a0Jhc2UgKyBTdGFja1NpemUgLSBDUFVfU1RBQ0tfQUxJR05NRU5UOyAgU3RhY2tUb3ANCj4gPiAr ID0gKFVJTlROKUFMSUdOX1BPSU5URVIgKFN0YWNrVG9wLCBDUFVfU1RBQ0tfQUxJR05NRU5UKTsg IGZvciAoSW5kZXgNCj4gPiArID0gMDsgSW5kZXggPCBBUlJBWV9TSVpFIChtRXhjZXB0aW9uc1dp dGhTdGFjayk7ICsrSW5kZXgpIHsNCj4gPiArICAgIC8vDQo+ID4gKyAgICAvLyBGaXh1cCBUU1Mg ZGVzY3JpcHRvcg0KPiA+ICsgICAgLy8NCj4gPiArICAgIFRzc0Jhc2UgPSAoVUlOVE4pKFZPSUQg KikmVHNzRW50cnktPkV4Y2VwdGlvblRzc1tJbmRleF07DQo+ID4gKyAgICBUc3NEZXNjID0gJlRz c0VudHJ5LT5FeGNlcHRpb25Uc3NTZWdbSW5kZXhdOw0KPiA+ICsNCj4gPiArICAgIFRzc0Rlc2Mt PkxpbWl0MTVfMCAgICAgICAgICAgID0gc2l6ZW9mKElBMzJfVEFTS19TVEFURV9TRUdNRU5UKSAt DQo+IDE7DQo+ID4gKyAgICBUc3NEZXNjLT5CYXNlMTVfMCAgICAgICAgICAgICA9IChVSU5UMTYp VHNzQmFzZTsNCj4gPiArICAgIFRzc0Rlc2MtPkJhc2UyM18xNiAgICAgICAgICAgID0gKFVJTlQ4 KShUc3NCYXNlID4+IDE2KTsNCj4gPiArICAgIFRzc0Rlc2MtPlR5cGUgICAgICAgICAgICAgICAg ID0gSUEzMl9HRFRfVFlQRV9UU1M7DQo+ID4gKyAgICBUc3NEZXNjLT5MaW1pdDE5XzE2X2FuZF9m bGFncyA9IDA7DQo+ID4gKyAgICBUc3NEZXNjLT5CYXNlMzFfMjQgICAgICAgICAgICA9IChVSU5U OCkoVHNzQmFzZSA+PiAyNCk7DQo+ID4gKw0KPiA+ICsgICAgLy8NCj4gPiArICAgIC8vIEZpeHVw IFRTUw0KPiA+ICsgICAgLy8NCj4gPiArICAgIFRzcyA9ICZUc3NFbnRyeS0+RXhjZXB0aW9uVHNz W0luZGV4XTsNCj4gPiArICAgIFRzcy0+Q1IzICAgID0gQXNtUmVhZENyMygpOw0KPiA+ICsgICAg VHNzLT5FSVAgICAgPSAoVUlOVDMyKW1FeGNlcHRpb25zV2l0aFN0YWNrW0luZGV4XS5FbnRyeVBv aW50Ow0KPiA+ICsgICAgVHNzLT5FRkxBR1MgPSAweDI7DQo+ID4gKyAgICBUc3MtPkVTUCAgICA9 IFN0YWNrVG9wOw0KPiA+ICsgICAgVHNzLT5FUyAgICAgPSBBc21SZWFkRXMoKTsNCj4gPiArICAg IFRzcy0+Q1MgICAgID0gQXNtUmVhZENzKCk7DQo+ID4gKyAgICBUc3MtPlNTICAgICA9IEFzbVJl YWRTcygpOw0KPiA+ICsgICAgVHNzLT5EUyAgICAgPSBBc21SZWFkRHMoKTsNCj4gPiArICAgIFRz cy0+RlMgICAgID0gQXNtUmVhZEZzKCk7DQo+ID4gKyAgICBUc3MtPkdTICAgICA9IEFzbVJlYWRH cygpOw0KPiA+ICsgICAgU3RhY2tUb3AgICAtPSBFWENFUFRJT05fU1RBQ0tfU0laRTsNCj4gPiAr DQo+ID4gKyAgICAvLw0KPiA+ICsgICAgLy8gQ2hhbmdlIHNwZWNpZmllZCBleGNlcHRpb25zIGlu IElEVCB0byB1c2UgVFNTDQo+ID4gKyAgICAvLw0KPiA+ICsgICAgVmVjdG9yID0gbUV4Y2VwdGlv bnNXaXRoU3RhY2tbSW5kZXhdLlZlY3RvcjsNCj4gPiArDQo+ID4gKyAgICBJZHRUYWJsZVtWZWN0 b3JdLkJpdHMuT2Zmc2V0TG93ICA9IDA7DQo+ID4gKyAgICBJZHRUYWJsZVtWZWN0b3JdLkJpdHMu U2VsZWN0b3IgICA9IE9sZEdkdFNpemUgKw0KPiA+IEVYQ0VQVElPTl9UU1NfU0VMKEluZGV4KTsN Cj4gPiArICAgIElkdFRhYmxlW1ZlY3Rvcl0uQml0cy5SZXNlcnZlZF8wID0gMDsNCj4gPiArICAg IElkdFRhYmxlW1ZlY3Rvcl0uQml0cy5HYXRlVHlwZSAgID0gSUEzMl9JRFRfR0FURV9UWVBFX1RB U0s7DQo+ID4gKyAgICBJZHRUYWJsZVtWZWN0b3JdLkJpdHMuT2Zmc2V0SGlnaCA9IDA7ICB9DQo+ ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gUHVibGlzaCB0aGUgY2hhbmdlcw0KPiA+ICsgIC8v DQo+ID4gKyAgQXNtV3JpdGVHZHRyKCZHZHREZXNjKTsNCj4gPiArDQo+ID4gKyAgLy8NCj4gPiAr ICAvLyBMb2FkIHRhc2sgcmVnaXN0ZXINCj4gPiArICAvLw0KPiA+ICsgIEFzbVdyaXRlVHIgKChV SU5UMTYpKE9sZEdkdFNpemUgKyBUU1NfU0VMKSk7IH0NCj4gPiArDQo+ID4gIC8qKg0KPiA+ICAg IERpc3BsYXkgcHJvY2Vzc29yIGNvbnRleHQuDQo+ID4NCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9V ZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hJbnRlcnJ1 cHREZWZzLmgNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGli L0lhMzIvQXJjaEludGVycnVwdERlZnMuaA0KPiA+IGluZGV4IGE4ZDM1NTZhODAuLjc3Y2M2Zjk5 MTkgMTAwNjQ0DQo+ID4gLS0tDQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi9JYTMyL0FyY2hJbnRlcnJ1cHREZWZzLmgNCj4gPiArKysgYi9VZWZpQ3B1UGtn L0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hJbnRlcnJ1cHREZWZzDQo+ ID4gKysrIC5oDQo+ID4gQEAgLTQxLDQgKzQxLDE0MCBAQCB0eXBlZGVmIHN0cnVjdCB7DQo+ID4g ICAgVUlOVDggICAgICAgSG9va0FmdGVyU3R1YkhlYWRlckNvZGVbSE9PS0FGVEVSX1NUVUJfU0la RV07DQo+ID4gIH0gUkVTRVJWRURfVkVDVE9SU19EQVRBOw0KPiA+DQo+ID4gKyNwcmFnbWEgcGFj ayAoMSkNCj4gPiArDQo+ID4gKyNkZWZpbmUgRVhDRVBUSU9OX0xJU1RfTUFYICAgICAgICAgIDcN Cj4gPiArI2RlZmluZSBFWENFUFRJT05fU1RBQ0tfU0laRSAgICAgICAgRUZJX1BBR0VfU0laRQ0K PiA+ICsjZGVmaW5lIElBMzJfR0RUX1RZUEVfVFNTICAgICAgICAgICAweDg5DQo+ID4gKyNkZWZp bmUgSUEzMl9HRFRfQUxJR05NRU5UICAgICAgICAgIDgNCj4gPiArDQo+ID4gKy8vDQo+ID4gKy8v IElBMzIgVFNTIERlZmluaXRpb24NCj4gPiArLy8NCj4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ ICsgIFVJTlQxNiAgICBQcmV2aW91c1Rhc2tMaW5rOyAvLyAwMA0KPiA+ICsgIFVJTlQxNiAgICBS ZXNlcnZlZF8yOw0KPiA+ICsgIFVJTlQzMiAgICBFU1AwOyAgICAgICAgICAgICAvLyAwNA0KPiA+ ICsgIFVJTlQxNiAgICBTUzA7ICAgICAgICAgICAgICAvLyAwOA0KPiA+ICsgIFVJTlQxNiAgICBS ZXNlcnZlZF8xMDsNCj4gPiArICBVSU5UMzIgICAgRVNQMTsgICAgICAgICAgICAgLy8gMEMNCj4g PiArICBVSU5UMTYgICAgU1MxOyAgICAgICAgICAgICAgLy8gMTANCj4gPiArICBVSU5UMTYgICAg UmVzZXJ2ZWRfMTg7DQo+ID4gKyAgVUlOVDMyICAgIEVTUDI7ICAgICAgICAgICAgIC8vIDE0DQo+ ID4gKyAgVUlOVDE2ICAgIFNTMjsgICAgICAgICAgICAgIC8vIDE4DQo+ID4gKyAgVUlOVDE2ICAg IFJlc2VydmVkXzI2Ow0KPiA+ICsgIFVJTlQzMiAgICBDUjM7ICAgICAgICAgICAgICAvLyAxQw0K PiA+ICsgIFVJTlQzMiAgICBFSVA7ICAgICAgICAgICAgICAvLyAyMA0KPiA+ICsgIFVJTlQzMiAg ICBFRkxBR1M7ICAgICAgICAgICAvLyAyNA0KPiA+ICsgIFVJTlQzMiAgICBFQVg7ICAgICAgICAg ICAgICAvLyAyOA0KPiA+ICsgIFVJTlQzMiAgICBFQ1g7ICAgICAgICAgICAgICAvLyAyQw0KPiA+ ICsgIFVJTlQzMiAgICBFRFg7ICAgICAgICAgICAgICAvLyAzMA0KPiA+ICsgIFVJTlQzMiAgICBF Qlg7ICAgICAgICAgICAgICAvLyAzNA0KPiA+ICsgIFVJTlQzMiAgICBFU1A7ICAgICAgICAgICAg ICAvLyAzOA0KPiA+ICsgIFVJTlQzMiAgICBFQlA7DQo+ID4gKyAgVUlOVDMyICAgIEVTSTsNCj4g PiArICBVSU5UMzIgICAgRURJOw0KPiA+ICsgIFVJTlQxNiAgICBFUzsNCj4gPiArICBVSU5UMTYg ICAgUmVzZXJ2ZWRfNzQ7DQo+ID4gKyAgVUlOVDE2ICAgIENTOw0KPiA+ICsgIFVJTlQxNiAgICBS ZXNlcnZlZF83ODsNCj4gPiArICBVSU5UMTYgICAgU1M7DQo+ID4gKyAgVUlOVDE2ICAgIFJlc2Vy dmVkXzgyOw0KPiA+ICsgIFVJTlQxNiAgICBEUzsNCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRf ODY7DQo+ID4gKyAgVUlOVDE2ICAgIEZTOw0KPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF85MDsN Cj4gPiArICBVSU5UMTYgICAgR1M7DQo+ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzk0Ow0KPiA+ ICsgIFVJTlQxNiAgICBMRFRTZWdtZW50U2VsZWN0b3I7DQo+ID4gKyAgVUlOVDE2ICAgIFJlc2Vy dmVkXzk4Ow0KPiA+ICsgIFVJTlQxNiAgICBUOw0KPiA+ICsgIFVJTlQxNiAgICBJT01hcEJhc2VB ZGRyZXNzOw0KPiA+ICt9IElBMzJfVEFTS19TVEFURV9TRUdNRU5UOw0KPiA+ICsNCj4gPiArdHlw ZWRlZiBzdHJ1Y3Qgew0KPiA+ICsgIFVJTlQxNiAgICBMaW1pdDE1XzA7DQo+ID4gKyAgVUlOVDE2 ICAgIEJhc2UxNV8wOw0KPiA+ICsgIFVJTlQ4ICAgICBCYXNlMjNfMTY7DQo+ID4gKyAgVUlOVDgg ICAgIFR5cGU7DQo+ID4gKyAgVUlOVDggICAgIExpbWl0MTlfMTZfYW5kX2ZsYWdzOw0KPiA+ICsg IFVJTlQ4ICAgICBCYXNlMzFfMjQ7DQo+ID4gK30gSUEzMl9UU1NfREVTQ1JJUFRPUjsNCj4gPiAr DQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiArICBJQTMyX1RTU19ERVNDUklQVE9SICAgICAg ICAgICBUc3NTZWc7DQo+ID4gKyAgSUEzMl9UU1NfREVTQ1JJUFRPUg0KPiBFeGNlcHRpb25Uc3NT ZWdbRVhDRVBUSU9OX0xJU1RfTUFYXTsNCj4gPiArICBJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCAg ICAgICBUc3M7DQo+ID4gKyAgSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQgICAgICAgRXhjZXB0aW9u VHNzW0VYQ0VQVElPTl9MSVNUX01BWF07DQo+ID4gK30gVFNTX0VOVFJJRVM7DQo+ID4gKw0KPiA+ ICsjcHJhZ21hIHBhY2sgKCkNCj4gPiArDQo+ID4gKyNkZWZpbmUgVFNTX1NFTCAgICAgICAgICAg ICAgIE9GRlNFVF9PRiAoVFNTX0VOVFJJRVMsIFRzc1NlZykNCj4gPiArI2RlZmluZSBFWENFUFRJ T05fVFNTX1NFTChuKSAgT0ZGU0VUX09GIChUU1NfRU5UUklFUywNCj4gPiBFeGNlcHRpb25Uc3NT ZWdbbl0pDQo+ID4gKyNkZWZpbmUgVFNTX09GRlNFVCAgICAgICAgICAgIE9GRlNFVF9PRiAoVFNT X0VOVFJJRVMsIFRzcykNCj4gPiArDQo+ID4gK3R5cGVkZWYgVk9JRCAoKkVYQ0VQVElPTl9FTlRS WSkgKFZPSUQpOw0KPiA+ICsNCj4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ICsgIFVJTlROICAg ICAgICAgICAgIFZlY3RvcjsNCj4gPiArICBFWENFUFRJT05fRU5UUlkgICBFbnRyeVBvaW50Ow0K PiA+ICt9IElBMzJfRVhDRVBUSU9OX1RTX0VOVFJZOw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyBF eGNlcHRpb24gaGFuZGxpbmcgZW50cnkgdGhyb3VnaCB0YXNrIGdhdGUgZm9yIGV4Y2VwdGlvbiAj VUQuDQo+ID4gKyAqKi8NCj4gPiArVk9JRA0KPiA+ICtFeGNlcHRpb25UYXNrU3d0aWNoRW50cnk2 ICgNCj4gPiArICBWT0lEDQo+ID4gKyAgKTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgRXhjZXB0 aW9uIGhhbmRsaW5nIGVudHJ5IHRocm91Z2ggdGFzayBnYXRlIGZvciBleGNlcHRpb24gI0RGLg0K PiA+ICsgKiovDQo+ID4gK1ZPSUQNCj4gPiArRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5OCAoDQo+ ID4gKyAgVk9JRA0KPiA+ICsgICk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArIEV4Y2VwdGlvbiBo YW5kbGluZyBlbnRyeSB0aHJvdWdoIHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNTUy4NCj4gPiAr ICoqLw0KPiA+ICtWT0lEDQo+ID4gK0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTEyICgNCj4gPiAr ICBWT0lEDQo+ID4gKyAgKTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgRXhjZXB0aW9uIGhhbmRs aW5nIGVudHJ5IHRocm91Z2ggdGFzayBnYXRlIGZvciBleGNlcHRpb24gI0dQLg0KPiA+ICsgKiov DQo+ID4gK1ZPSUQNCj4gPiArRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTMgKA0KPiA+ICsgIFZP SUQNCj4gPiArICApOw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyBFeGNlcHRpb24gaGFuZGxpbmcg ZW50cnkgdGhyb3VnaCB0YXNrIGdhdGUgZm9yIGV4Y2VwdGlvbiAjUEYuDQo+ID4gKyAqKi8NCj4g PiArVk9JRA0KPiA+ICtFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxNCAoDQo+ID4gKyAgVk9JRA0K PiA+ICsgICk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArIEV4Y2VwdGlvbiBoYW5kbGluZyBlbnRy eSB0aHJvdWdoIHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNBQy4NCj4gPiArICoqLw0KPiA+ICtW T0lEDQo+ID4gK0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTE3ICgNCj4gPiArICBWT0lEDQo+ID4g KyAgKTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgRXhjZXB0aW9uIGhhbmRsaW5nIGVudHJ5IHRo cm91Z2ggdGFzayBnYXRlIGZvciBleGNlcHRpb24gI01DLg0KPiA+ICsgKiovDQo+ID4gK1ZPSUQN Cj4gPiArRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTggKA0KPiA+ICsgIFZPSUQNCj4gPiArICAp Ow0KPiA+ICsNCj4gPiAgI2VuZGlmDQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS4N Cj4gPiBuYXMNCj4gPiBtDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi9JYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLg0KPiA+IG5hcw0KPiA+IG0NCj4gPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAuLmRiZmJjZmNmNTENCj4g PiAtLS0gL2Rldi9udWxsDQo+ID4gKysrDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhj ZXB0aW9uSGFuZGxlckxpYi9JYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLg0KPiA+IG5hcw0KPiA+ IG0NCj4gPiBAQCAtMCwwICsxLDM5OCBAQA0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArLS0tLS0t LS0tLSA7IDsgQ29weXJpZ2h0IChjKSAyMDE3LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cw0KPiA+ICtyZXNlcnZlZC48QlI+IDsgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5n IG1hdGVyaWFscyA7IGFyZQ0KPiA+ICtsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIg dGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4gPiBMaWNlbnNlDQo+ID4gKzsg d2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRo ZSBsaWNlbnNlDQo+ID4gK21heSBiZSBmb3VuZA0KPiA+IGF0DQo+ID4gKzsgaHR0cDovL29wZW5z b3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocC4NCj4gPiArOw0KPiA+ICs7IFRIRSBQ Uk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMi DQo+ID4gK0JBU0lTLCA7IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0Yg QU5ZIEtJTkQsIEVJVEhFUg0KPiA+ICtFWFBSRVNTDQo+ID4gT1IgSU1QTElFRC4NCj4gPiArOw0K PiA+ICs7IE1vZHVsZSBOYW1lOg0KPiA+ICs7DQo+ID4gKzsgICBFeGNlcHRpb25Uc3NFbnRyeUFz bS5Bc20NCj4gPiArOw0KPiA+ICs7IEFic3RyYWN0Og0KPiA+ICs7DQo+ID4gKzsgICBJQTMyIENQ VSBFeGNlcHRpb24gSGFuZGxlciB3aXRoIFNlcGFyYXRlIFN0YWNrDQo+ID4gKzsNCj4gPiArOyBO b3RlczoNCj4gPiArOw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArLS0tLS0tLS0tLQ0KPiA+ICsN Cj4gPiArOw0KPiA+ICs7IElBMzIgVFNTIE1lbW9yeSBMYXlvdXQgRGVzY3JpcHRpb24NCj4gPiAr Ow0KPiA+ICtzdHJ1YyBJQTMyX1RTUw0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0K PiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ICsgIC5FU1AwOiAgICByZXNkIDEN Cj4gPiArICAuU1MwOiAgICAgcmVzdyAxDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAx DQo+ID4gKyAgLkVTUDE6ICAgIHJlc2QgMQ0KPiA+ICsgIC5TUzE6ICAgICByZXN3IDENCj4gPiAr ICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAuRVNQMjogICAgcmVzZCAxDQo+ID4g KyAgLlNTMjogICAgIHJlc3cgMQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ ICsgIC5fQ1IzOiAgICByZXNkIDENCj4gPiArICAuRUlQOiAgICAgcmVzZCAxDQo+ID4gKyAgLkVG TEFHUzogIHJlc2QgMQ0KPiA+ICsgIC5fRUFYOiAgICByZXNkIDENCj4gPiArICAuX0VDWDogICAg cmVzZCAxDQo+ID4gKyAgLl9FRFg6ICAgIHJlc2QgMQ0KPiA+ICsgIC5fRUJYOiAgICByZXNkIDEN Cj4gPiArICAuX0VTUDogICAgcmVzZCAxDQo+ID4gKyAgLl9FQlA6ICAgIHJlc2QgMQ0KPiA+ICsg IC5fRVNJOiAgICByZXNkIDENCj4gPiArICAuX0VESTogICAgcmVzZCAxDQo+ID4gKyAgLl9FUzog ICAgIHJlc3cgMQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ICsgIC5fQ1M6 ICAgICByZXN3IDENCj4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAuX1NT OiAgICAgcmVzdyAxDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gKyAgLl9E UzogICAgIHJlc3cgMQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ICsgIC5f RlM6ICAgICByZXN3IDENCj4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAu X0dTOiAgICAgcmVzdyAxDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gKyAg LkxEVDogICAgIHJlc3cgMQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ICsg ICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cg MQ0KPiA+ICtlbmRzdHJ1Yw0KPiA+ICsNCj4gPiArOw0KPiA+ICs7IENvbW1vbkV4Y2VwdGlvbkhh bmRsZXIoKQ0KPiA+ICs7DQo+ID4gK2V4dGVybiBBU01fUEZYKENvbW1vbkV4Y2VwdGlvbkhhbmRs ZXIpDQo+ID4gKw0KPiA+ICtTRUNUSU9OIC5kYXRhDQo+ID4gKw0KPiA+ICtTRUNUSU9OIC50ZXh0 DQo+ID4gKw0KPiA+ICtBTElHTiAgIDgNCj4gPiArDQo+ID4gKzsNCj4gPiArOyBleGNlcHRpb24g aGFuZGxlciBzdHViIHRhYmxlDQo+ID4gKzsNCj4gPiArJW1hY3JvIERlZkV4Y2VwdGlvblRhc2tT d3RpY2hFbnRyeSAxDQo+ID4gKyUlRG9JcmV0Og0KPiA+ICsgICAgaXJldGQNCj4gPiArDQo+ID4g K2dsb2JhbCBBU01fUEZYKEV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSUxKQ0KPiA+ICtBU01fUEZY KEV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSUxKToNCj4gPiArICAgIGRiICAgICAgMHg2YSAgICAg ICAgOyBwdXNoICAjVmVjdG9yTnVtDQo+ID4gKyAgICBkYiAgICAgICUxICAgICAgICAgIDsgVmVj dG9yTnVtDQo+ID4gKyAgICBtb3YgICAgIGVheCwgQVNNX1BGWChDb21tb25UYXNrU3d0aWNoRW50 cnlQb2ludCkNCj4gPiArICAgIGNhbGwgICAgZWF4DQo+ID4gKyAgICBtb3YgICAgIGVzcCwgZWF4 ICAgIDsgUmVzdG9yZSBzdGFjayB0b3ANCj4gPiArICAgIGptcCAgICAgJSVEb0lyZXQNCj4gPiAr JWVuZG1hY3JvDQo+ID4gKw0KPiA+ICtnbG9iYWwgQVNNX1BGWChDb21tb25UYXNrU3d0aWNoRW50 cnlQb2ludCkNCj4gPiArQVNNX1BGWChDb21tb25UYXNrU3d0aWNoRW50cnlQb2ludCk6DQo+ID4g KyAgICA7DQo+ID4gKyAgICA7IFN0YWNrOg0KPiA+ICsgICAgOyArLS0tLS0tLS0tLS0tLS0tLS0t LS0tKyA8LS0gRUJQIC0gOA0KPiA+ICsgICAgOyArICAgICAgIFRTUyBCYXNlICAgICAgKw0KPiA+ ICsgICAgOyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyA8LS0gRUJQIC0gNA0KPiA+ICsgICAgOyAr ICAgICAgQ1BVSUQuRURYICAgICAgKw0KPiA+ICsgICAgOyArLS0tLS0tLS0tLS0tLS0tLS0tLS0t KyA8LS0gRUJQDQo+ID4gKyAgICA7ICsgICAgICAgICBFSVAgICAgICAgICArDQo+ID4gKyAgICA7 ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDwtLSBFQlAgKyA0DQo+ID4gKyAgICA7ICsgICAgVmVj dG9yIE51bWJlciAgICArDQo+ID4gKyAgICA7ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDwtLSBF QlAgKyA4DQo+ID4gKyAgICA7ICsgICAgRXJyb3IgQ29kZSAgICAgICArDQo+ID4gKyAgICA7ICst LS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ID4gKyAgICA7DQo+ID4gKzsNCj4gPiArOyBHZXQgVFNT IG9mIGludGVycnVwdGVkIHRhc2sNCj4gPiArOw0KPiA+ICsgICAgbW92ICAgICBlYnAsIGVzcCAg ICAgICAgICAgICAgICAgICAgOyBTdGFjayBmcmFtZQ0KPiA+ICsNCj4gPiArOyBVc2UgQ1BVSUQg dG8gZGV0ZXJtaW5lIGlmIEZYU0FWRS9GWFJFU1RPUiBhbmQgREUgYXJlIHN1cHBvcnRlZA0KPiA+ ICsgICAgbW92ICAgICBlYXgsIDENCj4gPiArICAgIGNwdWlkDQo+ID4gKyAgICBwdXNoICAgIGVk eA0KPiA+ICsNCj4gPiArOyBHZXQgVFNTIGJhc2Ugb2YgaW50ZXJydXB0ZWQgdGFzayB0aHJvdWdo IFByZXZpb3VzVGFza0xpbmsgZmllbGQgaW4NCj4gPiArOyBjdXJyZW50IFRTUyBiYXNlDQo+ID4g KyAgICBzdWIgICAgIGVzcCwgOA0KPiA+ICsgICAgc2dkdCAgICBbZXNwICsgMl0NCj4gPiArICAg IG1vdiAgICAgZWF4LCBbZXNwICsgNF0gICAgICAgICAgICAgIDsgR0RUIGJhc2UNCj4gPiArICAg IGFkZCAgICAgZXNwLCA4DQo+ID4gKw0KPiA+ICsgICAgeG9yICAgICBlYngsIGVieA0KPiA+ICsg ICAgc3RyICAgICBieCAgICAgICAgICAgICAgICAgICAgICAgICAgOyBDdXJyZW50IFRSDQo+ID4g Kw0KPiA+ICsgICAgbW92ICAgICBlY3gsIFtlYXggKyBlYnggKyAyXQ0KPiA+ICsgICAgc2hsICAg ICBlY3gsIDgNCj4gPiArICAgIG1vdiAgICAgY2wsIFtlYXggKyBlYnggKyA3XQ0KPiA+ICsgICAg cm9yICAgICBlY3gsIDggICAgICAgICAgICAgICAgICAgICAgOyBlY3ggPSBDdXJyZW50IFRTUyBi YXNlDQo+ID4gKyAgICBwdXNoICAgIGVjeCAgICAgICAgICAgICAgICAgICAgICAgICA7IGtlZXAg aXQgaW4gc3RhY2sgZm9yIGxhdGVyIHVzZQ0KPiA+ICsNCj4gPiArICAgIG1vdnp4ICAgZWJ4LCB3 b3JkIFtlY3hdICAgICAgICAgICAgIDsgUHJldmlvdXMgVGFzayBMaW5rDQo+ID4gKyAgICBtb3Yg ICAgIGVjeCwgW2VheCArIGVieCArIDJdDQo+ID4gKyAgICBzaGwgICAgIGVjeCwgOA0KPiA+ICsg ICAgbW92ICAgICBjbCwgW2VheCArIGVieCArIDddDQo+ID4gKyAgICByb3IgICAgIGVjeCwgOCAg ICAgICAgICAgICAgICAgICAgICA7IGVjeCA9IFByZXZpb3VzIFRTUyBiYXNlDQo+ID4gKw0KPiA+ ICs7DQo+ID4gKzsgQWxpZ24gc3RhY2sgdG8gbWFrZSBzdXJlIHRoYXQgRUZJX0ZYX1NBVkVfU1RB VEVfSUEzMiBvZg0KPiA+IEVGSV9TWVNURU1fQ09OVEVYVF9JQTMyDQo+ID4gKzsgaXMgMTYtYnl0 ZSBhbGlnbmVkDQo+ID4gKzsNCj4gPiArICAgIGFuZCAgICAgZXNwLCAweGZmZmZmZmYwDQo+ID4g KyAgICBzdWIgICAgIGVzcCwgMTINCj4gPiArDQo+ID4gKzs7IFVJTlQzMiAgRWRpLCBFc2ksIEVi cCwgRXNwLCBFYngsIEVkeCwgRWN4LCBFYXg7DQo+ID4gKyAgICBwdXNoICAgIGR3b3JkIFtlY3gg KyBJQTMyX1RTUy5fRUFYXQ0KPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1Mu X0VDWF0NCj4gPiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FRFhdDQo+ID4g KyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRUJYXQ0KPiA+ICsgICAgcHVzaCAg ICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0NCj4gPiArICAgIHB1c2ggICAgZHdvcmQgW2Vj eCArIElBMzJfVFNTLl9FQlBdDQo+ID4gKyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RT Uy5fRVNJXQ0KPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VESV0NCj4g PiArDQo+ID4gKzs7IFVJTlQzMiAgR3MsIEZzLCBFcywgRHMsIENzLCBTczsNCj4gPiArICAgIG1v dnp4ICAgZWF4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5fU1NdDQo+ID4gKyAgICBwdXNoICAgIGVh eA0KPiA+ICsgICAgbW92enggICBlYXgsIHdvcmQgW2VjeCArIElBMzJfVFNTLl9DU10NCj4gPiAr ICAgIHB1c2ggICAgZWF4DQo+ID4gKyAgICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4ICsgSUEzMl9U U1MuX0RTXQ0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiArICAgIG1vdnp4ICAgZWF4LCB3b3Jk IFtlY3ggKyBJQTMyX1RTUy5fRVNdDQo+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ICsgICAgbW92 enggICBlYXgsIHdvcmQgW2VjeCArIElBMzJfVFNTLl9GU10NCj4gPiArICAgIHB1c2ggICAgZWF4 DQo+ID4gKyAgICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4ICsgSUEzMl9UU1MuX0dTXQ0KPiA+ICsg ICAgcHVzaCAgICBlYXgNCj4gPiArDQo+ID4gKzs7IFVJTlQzMiAgRWlwOw0KPiA+ICsgICAgcHVz aCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuRUlQXQ0KPiA+ICsNCj4gPiArOzsgVUlOVDMyICBH ZHRyWzJdLCBJZHRyWzJdOw0KPiA+ICsgICAgc3ViICAgICBlc3AsIDgNCj4gPiArICAgIHNpZHQg ICAgW2VzcF0NCj4gPiArICAgIG1vdiAgICAgZWF4LCBbZXNwICsgMl0NCj4gPiArICAgIHhjaGcg ICAgZWF4LCBbZXNwXQ0KPiA+ICsgICAgYW5kICAgICBlYXgsIDB4RkZGRg0KPiA+ICsgICAgbW92 ICAgICBbZXNwKzRdLCBlYXgNCj4gPiArDQo+ID4gKyAgICBzdWIgICAgIGVzcCwgOA0KPiA+ICsg ICAgc2dkdCAgICBbZXNwXQ0KPiA+ICsgICAgbW92ICAgICBlYXgsIFtlc3AgKyAyXQ0KPiA+ICsg ICAgeGNoZyAgICBlYXgsIFtlc3BdDQo+ID4gKyAgICBhbmQgICAgIGVheCwgMHhGRkZGDQo+ID4g KyAgICBtb3YgICAgIFtlc3ArNF0sIGVheA0KPiA+ICsNCj4gPiArOzsgVUlOVDMyICBMZHRyLCBU cjsNCj4gPiArICAgIG1vdiAgICAgZWF4LCBlYnggICAgOyBlYnggc3RpbGwga2VlcHMgc2VsZWN0 b3Igb2YgaW50ZXJydXB0ZWQgdGFzaw0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiArICAgIG1v dnp4ICAgZWF4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5MRFRdDQo+ID4gKyAgICBwdXNoICAgIGVh eA0KPiA+ICsNCj4gPiArOzsgVUlOVDMyICBFRmxhZ3M7DQo+ID4gKyAgICBwdXNoICAgIGR3b3Jk IFtlY3ggKyBJQTMyX1RTUy5FRkxBR1NdDQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIgIENyMCwgQ3Ix LCBDcjIsIENyMywgQ3I0Ow0KPiA+ICsgICAgbW92ICAgICBlYXgsIGNyNA0KPiA+ICsgICAgcHVz aCAgICBlYXggICAgICAgICAgICAgOyBwdXNoIGNyNCBmaXJzdGx5DQo+ID4gKw0KPiA+ICsgICAg bW92ICAgICBlZHgsIFtlYnAgLSA0XSAgOyBjcHVpZC5lZHgNCj4gPiArICAgIHRlc3QgICAgZWR4 LCBCSVQyNCAgICAgIDsgVGVzdCBmb3IgRlhTQVZFL0ZYUkVTVE9SIHN1cHBvcnQNCj4gPiArICAg IGp6ICAgICAgLjENCj4gPiArICAgIG9yICAgICAgZWF4LCBCSVQ5ICAgICAgIDsgU2V0IENSNC5P U0ZYU1INCj4gPiArLjE6DQo+ID4gKyAgICB0ZXN0ICAgIGVkeCwgQklUMiAgICAgICA7IFRlc3Qg Zm9yIERlYnVnZ2luZyBFeHRlbnNpb25zIHN1cHBvcnQNCj4gPiArICAgIGp6ICAgICAgLjINCj4g PiArICAgIG9yICAgICAgZWF4LCBCSVQzICAgICAgIDsgU2V0IENSNC5ERQ0KPiA+ICsuMjoNCj4g PiArICAgIG1vdiAgICAgY3I0LCBlYXgNCj4gPiArDQo+ID4gKyAgICBtb3YgICAgIGVheCwgY3Iz DQo+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ICsgICAgbW92ICAgICBlYXgsIGNyMg0KPiA+ICsg ICAgcHVzaCAgICBlYXgNCj4gPiArICAgIHhvciAgICAgZWF4LCBlYXgNCj4gPiArICAgIHB1c2gg ICAgZWF4DQo+ID4gKyAgICBtb3YgICAgIGVheCwgY3IwDQo+ID4gKyAgICBwdXNoICAgIGVheA0K PiA+ICsNCj4gPiArOzsgVUlOVDMyICBEcjAsIERyMSwgRHIyLCBEcjMsIERyNiwgRHI3Ow0KPiA+ ICsgICAgbW92ICAgICBlYXgsIGRyNw0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiArICAgIG1v diAgICAgZWF4LCBkcjYNCj4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gKyAgICBtb3YgICAgIGVh eCwgZHIzDQo+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ICsgICAgbW92ICAgICBlYXgsIGRyMg0K PiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiArICAgIG1vdiAgICAgZWF4LCBkcjENCj4gPiArICAg IHB1c2ggICAgZWF4DQo+ID4gKyAgICBtb3YgICAgIGVheCwgZHIwDQo+ID4gKyAgICBwdXNoICAg IGVheA0KPiA+ICsNCj4gPiArOzsgRlhfU0FWRV9TVEFURV9JQTMyIEZ4U2F2ZVN0YXRlOw0KPiA+ ICs7OyBDbGVhciBUUyBiaXQgaW4gQ1IwIHRvIGF2b2lkIERldmljZSBOb3QgQXZhaWxhYmxlIEV4 Y2VwdGlvbiAoI05NKQ0KPiA+ICs7OyB3aGVuIGV4ZWN1dGluZyBmeHNhdmUvZnhyc3RvciBpbnN0 cnVjdGlvbg0KPiA+ICsgICAgdGVzdCAgICBlZHgsIEJJVDI0ICA7IFRlc3QgZm9yIEZYU0FWRS9G WFJFU1RPUiBzdXBwb3J0Lg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICA7IGVkeCBzdGls bCBjb250YWlucyByZXN1bHQgZnJvbSBDUFVJRCBhYm92ZQ0KPiA+ICsgICAganogICAgICAuMw0K PiA+ICsgICAgY2x0cw0KPiA+ICsgICAgc3ViICAgICBlc3AsIDUxMg0KPiA+ICsgICAgbW92ICAg ICBlZGksIGVzcA0KPiA+ICsgICAgZGIgICAgICAweGYsIDB4YWUsIDB4NyA7ZnhzYXZlIFtlZGld DQo+ID4gKy4zOg0KPiA+ICsNCj4gPiArOzsgVUlOVDMyICBFeGNlcHRpb25EYXRhOw0KPiA+ICsg ICAgcHVzaCAgICBkd29yZCBbZWJwICsgOF0NCj4gPiArDQo+ID4gKzs7IFVFRkkgY2FsbGluZyBj b252ZW50aW9uIGZvciBJQTMyIHJlcXVpcmVzIHRoYXQgRGlyZWN0aW9uIGZsYWcgaW4gRUZMQUdz IGlzIGNsZWFyDQo+ID4gKyAgICBjbGQNCj4gPiArDQo+ID4gKzs7IGNhbGwgaW50byBleGNlcHRp b24gaGFuZGxlcg0KPiA+ICsgICAgbW92ICAgICBlc2ksIGVjeCAgICAgICAgICAgIDsgS2VlcCBU U1MgYmFzZSB0byBhdm9pZCBvdmVyd3JpdGUNCj4gPiArICAgIG1vdiAgICAgZWF4LCBBU01fUEZY KENvbW1vbkV4Y2VwdGlvbkhhbmRsZXIpDQo+ID4gKw0KPiA+ICs7OyBQcmVwYXJlIHBhcmFtZXRl ciBhbmQgY2FsbA0KPiA+ICsgICAgbW92ICAgICBlZHgsIGVzcA0KPiA+ICsgICAgcHVzaCAgICBl ZHggICAgICAgICAgICAgICAgIDsgRUZJX1NZU1RFTV9DT05URVhUDQo+ID4gKyAgICBwdXNoICAg IGR3b3JkIFtlYnAgKyA0XSAgICAgOyBFRklfRVhDRVBUSU9OX1RZUEUgKHZlY3RvciBudW1iZXIp DQo+ID4gKw0KPiA+ICsgICAgOw0KPiA+ICsgICAgOyBDYWxsIEV4dGVybmFsIEV4Y2VwdGlvbiBI YW5kbGVyDQo+ID4gKyAgICA7DQo+ID4gKyAgICBjYWxsICAgIGVheA0KPiA+ICsgICAgYWRkICAg ICBlc3AsIDggICAgICAgICAgICAgIDsgUmVzdG9yZSBzdGFjayBiZWZvcmUgY2FsbGluZw0KPiA+ ICsgICAgbW92ICAgICBlY3gsIGVzaSAgICAgICAgICAgIDsgUmVzdG9yZSBUU1MgYmFzZQ0KPiA+ ICsNCj4gPiArOzsgVUlOVDMyICBFeGNlcHRpb25EYXRhOw0KPiA+ICsgICAgYWRkICAgICBlc3As IDQNCj4gPiArDQo+ID4gKzs7IEZYX1NBVkVfU1RBVEVfSUEzMiBGeFNhdmVTdGF0ZTsNCj4gPiAr ICAgIG1vdiAgICAgZWR4LCBbZWJwIC0gNF0gIDsgY3B1aWQuZWR4DQo+ID4gKyAgICB0ZXN0ICAg IGVkeCwgQklUMjQgICAgICA7IFRlc3QgZm9yIEZYU0FWRS9GWFJFU1RPUiBzdXBwb3J0DQo+ID4g KyAgICBqeiAgICAgIC40DQo+ID4gKyAgICBtb3YgICAgIGVzaSwgZXNwDQo+ID4gKyAgICBkYiAg ICAgIDB4ZiwgMHhhZSwgMHhlICA7IGZ4cnN0b3IgW2VzaV0NCj4gPiArLjQ6DQo+ID4gKyAgICBh ZGQgICAgIGVzcCwgNTEyDQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIgIERyMCwgRHIxLCBEcjIsIERy MywgRHI2LCBEcjc7IDs7IFNraXAgcmVzdG9yYXRpb24gb2YgRFJ4DQo+ID4gK3JlZ2lzdGVycyB0 byBzdXBwb3J0IGRlYnVnZ2VycyA7OyB0aGF0IHNldCBicmVha3BvaW50cyBpbg0KPiA+ICtpbnRl cnJ1cHQvZXhjZXB0aW9uIGNvbnRleHQNCj4gPiArICAgIGFkZCAgICAgZXNwLCA0ICogNg0KPiA+ ICsNCj4gPiArOzsgVUlOVDMyICBDcjAsIENyMSwgQ3IyLCBDcjMsIENyNDsNCj4gPiArICAgIHBv cCAgICAgZWF4DQo+ID4gKyAgICBtb3YgICAgIGNyMCwgZWF4DQo+ID4gKyAgICBhZGQgICAgIGVz cCwgNCAgICA7IG5vdCBmb3IgQ3IxDQo+ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ICsgICAgbW92 ICAgICBjcjIsIGVheA0KPiA+ICsgICAgcG9wICAgICBlYXgNCj4gPiArICAgIG1vdiAgICAgZHdv cmQgW2VjeCArIElBMzJfVFNTLl9DUjNdLCBlYXgNCj4gPiArICAgIHBvcCAgICAgZWF4DQo+ID4g KyAgICBtb3YgICAgIGNyNCwgZWF4DQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIgIEVGbGFnczsNCj4g PiArICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVGTEFHU10NCj4gPiArICAgIG1v diAgICAgZWJ4LCBkd29yZCBbZWN4ICsgSUEzMl9UU1MuRUZMQUdTXQ0KPiA+ICsgICAgYnRyICAg ICBlYngsIDkgICAgICA7IERvICdjbGknDQo+ID4gKyAgICBtb3YgICAgIGR3b3JkIFtlY3ggKyBJ QTMyX1RTUy5FRkxBR1NdLCBlYngNCj4gPiArDQo+ID4gKzs7IFVJTlQzMiAgTGR0ciwgVHI7DQo+ ID4gKzs7IFVJTlQzMiAgR2R0clsyXSwgSWR0clsyXTsNCj4gPiArOzsgQmVzdCBub3QgbGV0IGFu eW9uZSBtZXNzIHdpdGggdGhlc2UgcGFydGljdWxhciByZWdpc3RlcnMuLi4NCj4gPiArICAgIGFk ZCAgICAgZXNwLCAyNA0KPiA+ICsNCj4gPiArOzsgVUlOVDMyICBFaXA7DQo+ID4gKyAgICBwb3Ag ICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FSVBdDQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIgIEdz LCBGcywgRXMsIERzLCBDcywgU3M7DQo+ID4gKzs7IE5PVEUgLSBtb2RpZmllZCBzZWdtZW50IHJl Z2lzdGVycyBjb3VsZCBoYW5nIHRoZSBkZWJ1Z2dlci4uLiAgV2UNCj4gPiArOzsgICAgICAgIGNv dWxkIGF0dGVtcHQgdG8gaW5zdWxhdGUgb3Vyc2VsdmVzIGFnYWluc3QgdGhpcyBwb3NzaWJpbGl0 eSwNCj4gPiArOzsgICAgICAgIGJ1dCB0aGF0IHBvc2VzIHJpc2tzIGFzIHdlbGwuDQo+ID4gKzs7 DQo+ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ICtvMTYgbW92ICAgICBbZWN4ICsgSUEzMl9UU1Mu X0dTXSwgYXgNCj4gPiArICAgIHBvcCAgICAgZWF4DQo+ID4gK28xNiBtb3YgICAgIFtlY3ggKyBJ QTMyX1RTUy5fRlNdLCBheA0KPiA+ICsgICAgcG9wICAgICBlYXgNCj4gPiArbzE2IG1vdiAgICAg W2VjeCArIElBMzJfVFNTLl9FU10sIGF4DQo+ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ICtvMTYg bW92ICAgICBbZWN4ICsgSUEzMl9UU1MuX0RTXSwgYXgNCj4gPiArICAgIHBvcCAgICAgZWF4DQo+ ID4gK28xNiBtb3YgICAgIFtlY3ggKyBJQTMyX1RTUy5fQ1NdLCBheA0KPiA+ICsgICAgcG9wICAg ICBlYXgNCj4gPiArbzE2IG1vdiAgICAgW2VjeCArIElBMzJfVFNTLl9TU10sIGF4DQo+ID4gKw0K PiA+ICs7OyBVSU5UMzIgIEVkaSwgRXNpLCBFYnAsIEVzcCwgRWJ4LCBFZHgsIEVjeCwgRWF4Ow0K PiA+ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VESV0NCj4gPiArICAgIHBv cCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU0ldDQo+ID4gKyAgICBhZGQgICAgIGVzcCwg NCAgIDsgbm90IGZvciBlYnANCj4gPiArICAgIGFkZCAgICAgZXNwLCA0ICAgOyBub3QgZm9yIGVz cA0KPiA+ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VCWF0NCj4gPiArICAg IHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FRFhdDQo+ID4gKyAgICBwb3AgICAgIGR3 b3JkIFtlY3ggKyBJQTMyX1RTUy5fRUNYXQ0KPiA+ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsg SUEzMl9UU1MuX0VBWF0NCj4gPiArDQo+ID4gKzsgU2V0IHNpbmdsZSBzdGVwIERCIyB0byBhbGxv dyBkZWJ1Z2dlciB0byBhYmxlIHRvIGdvIGJhY2sgdG8gdGhlIEVJUA0KPiA+ICs7IHdoZXJlIHRo ZSBleGNlcHRpb24gaXMgdHJpZ2dlcmVkLg0KPiA+ICsNCj4gPiArOzsgQ3JlYXRlIHJldHVybiBj b250ZXh0IGZvciBpcmV0ZCBpbiBzdHViIGZ1bmN0aW9uDQo+ID4gKyAgICBtb3YgICAgZWF4LCBk d29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0gICAgICA7IEdldCBvbGQgc3RhY2sgcG9pbnRlcg0K PiA+ICsgICAgbW92ICAgIGVieCwgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVJUF0NCj4gPiArICAg IG1vdiAgICBbZWF4IC0gMHhjXSwgZWJ4ICAgICAgICAgICAgICAgICAgICAgIDsgY3JlYXRlIEVJ UCBpbiBvbGQgc3RhY2sNCj4gPiArICAgIG1vdnp4ICBlYngsIHdvcmQgW2VjeCArIElBMzJfVFNT Ll9DU10NCj4gPiArICAgIG1vdiAgICBbZWF4IC0gMHg4XSwgZWJ4ICAgICAgICAgICAgICAgICAg ICAgIDsgY3JlYXRlIENTIGluIG9sZCBzdGFjaw0KPiA+ICsgICAgbW92ICAgIGVieCwgZHdvcmQg W2VjeCArIElBMzJfVFNTLkVGTEFHU10NCj4gPiArICAgIGJ0cyAgICBlYngsIDgNCj4gPiArICAg IG1vdiAgICBbZWF4IC0gMHg0XSwgZWJ4ICAgICAgICAgICAgICAgICAgICAgIDsgY3JlYXRlIGVm bGFncyBpbiBvbGQNCj4gc3RhY2sNCj4gPiArICAgIG1vdiAgICBkd29yZCBbZWN4ICsgSUEzMl9U U1MuRUZMQUdTXSwgZWJ4ICAgIDsgdXBkYXRlIGVmbGFncyBpbiBvbGQNCj4gVFNTDQo+ID4gKyAg ICBtb3YgICAgZWF4LCBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0gICAgICA7IEdldCBvbGQg c3RhY2sgcG9pbnRlcg0KPiA+ICsgICAgc3ViICAgIGVheCwgMHhjICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOyBtaW51cyAxMiBieXRlDQo+ID4gKyAgICBtb3YgICAgZHdvcmQgW2VjeCAr IElBMzJfVFNTLl9FU1BdLCBlYXggICAgICA7IFNldCBuZXcgc3RhY2sgcG9pbnRlcg0KPiA+ICsN Cj4gPiArOzsgUmVwbGFjZSB0aGUgRUlQIG9mIGludGVycnVwdGVkIHRhc2sgd2l0aCBzdHViIGZ1 bmN0aW9uDQo+ID4gKyAgICBtb3YgICAgZWF4LCBBU01fUEZYKFNpbmdsZVN0ZXBTdHViRnVuY3Rp b24pDQo+ID4gKyAgICBtb3YgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVJUF0sIGVheA0KPiA+ ICsNCj4gPiArICAgIG1vdiAgICAgZWN4LCBbZWJwIC0gOF0gICAgICAgICAgICAgICAgICAgICAg IDsgR2V0IGN1cnJlbnQgVFNTIGJhc2UNCj4gPiArICAgIG1vdiAgICAgZWF4LCBkd29yZCBbZWN4 ICsgSUEzMl9UU1MuX0VTUF0gICAgIDsgUmV0dXJuIGN1cnJlbnQgc3RhY2sNCj4gdG9wDQo+ID4g KyAgICBtb3YgICAgIGVzcCwgZWJwDQo+ID4gKw0KPiA+ICsgICAgcmV0DQo+ID4gKw0KPiA+ICtn bG9iYWwgQVNNX1BGWChTaW5nbGVTdGVwU3R1YkZ1bmN0aW9uKQ0KPiA+ICtBU01fUEZYKFNpbmds ZVN0ZXBTdHViRnVuY3Rpb24pOg0KPiA+ICs7DQo+ID4gKzsgd2UgbmVlZCBjbGVhbiBUUyBiaXQg aW4gQ1IwIHRvIGV4ZWN1dGUgOyB4ODcNCj4gPiArRlBVL01NWC9TU0UvU1NFMi9TU0UzL1NTU0Uz L1NTRTQgaW5zdHJ1Y3Rpb25zLg0KPiA+ICs7DQo+ID4gKyAgICBjbHRzDQo+ID4gKyAgICBpcmV0 ZA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKy0tLS0tLS0tLS0NCj4gPiArOyBWT0lE DQo+ID4gKzsgQXNtV3JpdGVUciAoDQo+ID4gKzsgICBVSU5UMTYgU2VsZWN0b3INCj4gPiArOyAg ICk7DQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICstLS0tLS0tLS0tDQo+ID4gK2dsb2JhbCBBU01f UEZYKEFzbVdyaXRlVHIpDQo+ID4gK0FTTV9QRlgoQXNtV3JpdGVUcik6DQo+ID4gKyAgICBtb3Yg ICAgIGVheCwgW2VzcCs0XQ0KPiA+ICsgICAgbHRyICAgICBheA0KPiA+ICsgICAgcmV0DQo+ID4g Kw0KPiA+ICtEZWZFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkgNg0KPiA+ICtEZWZFeGNlcHRpb25U YXNrU3d0aWNoRW50cnkgOA0KPiA+ICtEZWZFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkgMTINCj4g PiArRGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDEzDQo+ID4gK0RlZkV4Y2VwdGlvblRhc2tT d3RpY2hFbnRyeSAxNA0KPiA+ICtEZWZFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkgMTcNCj4gPiAr RGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDE4DQo+ID4gKw0KPiA+IGRpZmYgLS1naXQNCj4g PiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1BlaUNwdUV4Y2Vw dGlvbkhhbmRsZXJMaWIuDQo+ID4gaW5mDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhj ZXB0aW9uSGFuZGxlckxpYi9QZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+IGluZg0KPiA+ IGluZGV4IDc1NDQzMjg4YTkuLjRjMGQ0MzUxMzYgMTAwNjQ0DQo+ID4gLS0tDQo+ID4gYS9VZWZp Q3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9QZWlDcHVFeGNlcHRpb25IYW5k bGVyTGliLg0KPiA+IGluZg0KPiA+ICsrKw0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4gPiBpbmYNCj4g PiBAQCAtMzAsNiArMzAsNyBAQA0KPiA+ICBbU291cmNlcy5JYTMyXQ0KPiA+ICAgIElhMzIvRXhj ZXB0aW9uSGFuZGxlckFzbS5hc20NCj4gPiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFz bQ0KPiA+ICsgIElhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbQ0KPiA+ICAgIElhMzIvRXhj ZXB0aW9uSGFuZGxlckFzbS5TDQo+ID4gICAgSWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxlci5jDQo+ ID4gICAgSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvVWVm aUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU2VjUGVpQ3B1RXhjZXB0aW9u SGFuZGxlckwNCj4gPiBpYi5pDQo+ID4gbmYNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL1NlY1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMDQo+ID4gaWIuaQ0K PiA+IG5mDQo+ID4gaW5kZXggZDcwYTk5YzEwMC4uYWRiNDE1YmE1YSAxMDA2NDQNCj4gPiAtLS0N Cj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NlY1BlaUNw dUV4Y2VwdGlvbkhhbmRsZXJMDQo+ID4gaWIuaQ0KPiA+IG5mDQo+ID4gKysrDQo+ID4gYi9VZWZp Q3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TZWNQZWlDcHVFeGNlcHRpb25I YW5kbGVyTA0KPiA+IGliLmkNCj4gPiBuZg0KPiA+IEBAIC0zMCw2ICszMCw3IEBADQo+ID4gIFtT b3VyY2VzLklhMzJdDQo+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0KPiA+ICAg IElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5uYXNtDQo+ID4gKyAgSWEzMi9FeGNlcHRpb25Uc3NF bnRyeUFzbS5uYXNtDQo+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCj4gPiAgICBJ YTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCj4gPiAgICBJYTMyL0FyY2hJbnRlcnJ1cHREZWZz LmgNCj4gPiBAQCAtNTcsMyArNTgsNSBAQA0KPiA+ICAgIFByaW50TGliDQo+ID4gICAgTG9jYWxB cGljTGliDQo+ID4gICAgUGVDb2ZmR2V0RW50cnlQb2ludExpYg0KPiA+ICsgIE1lbW9yeUFsbG9j YXRpb25MaWINCj4gPiArDQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5 L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU21tQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4gPiBp bmYNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NtbUNw dUV4Y2VwdGlvbkhhbmRsZXJMaWIuDQo+ID4gaW5mDQo+ID4gaW5kZXggNjM0ZmZjYjIxZC4uNTZi ODc1YjdjOCAxMDA2NDQNCj4gPiAtLS0NCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNl cHRpb25IYW5kbGVyTGliL1NtbUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuDQo+ID4gaW5mDQo+ID4g KysrDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TbW1D cHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+IGluZg0KPiA+IEBAIC0zMCw2ICszMCw3IEBADQo+ ID4gIFtTb3VyY2VzLklhMzJdDQo+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0K PiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5uYXNtDQo+ID4gKyAgSWEzMi9FeGNlcHRp b25Uc3NFbnRyeUFzbS5uYXNtDQo+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCj4g PiAgICBJYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCj4gPiAgICBJYTMyL0FyY2hJbnRlcnJ1 cHREZWZzLmgNCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhj ZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KPiA+IGIvVWVmaUNw dVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0FyY2hFeGNlcHRpb25IYW5k bGVyLmMNCj4gPiBpbmRleCA2NWYwY2ZmNjgwLi4yNGYyYTg0ODZhIDEwMDY0NA0KPiA+IC0tLQ0K PiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0FyY2hF eGNlcHRpb25IYW5kbGVyLmMNCj4gPiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9YNjQvQXJjaEV4Y2VwdGlvbkhhbmRsDQo+ID4gKysrIGVyLmMNCj4gPiBA QCAtMTQsNiArMTQsMTkgQEANCj4gPg0KPiA+ICAjaW5jbHVkZSAiQ3B1RXhjZXB0aW9uQ29tbW9u LmgiDQo+ID4NCj4gPiArLy8NCj4gPiArLy8gTGlzdCBvZiBleGNlcHRpb25zIG5lZWRpbmcgc2Vw YXJhdGUgc3RhY2sgLy8gU1RBVElDIFVJTlRODQo+ID4gK21FeGNlcHRpb25zV2l0aFN0YWNrW10g PSB7DQo+ID4gKyAgNiwgIC8vI1VEOiBJbnZhbGlkIE9wY29kZSBFeGNlcHRpb24NCj4gPiArICA4 LCAgLy8jREY6IERvdWJsZSBGYXVsdCBFeGNlcHRpb24NCj4gPiArICAxMiwgLy8jU1M6IFN0YWNr IEZhdWx0IEV4Y2VwdGlvbg0KPiA+ICsgIDEzLCAvLyNHUDogR2VuZXJhbCBQcm90ZWN0aW9uIEV4 Y2VwdGlvbg0KPiA+ICsgIDE0LCAvLyNQRjogUGFnZS1GYXVsdCBFeGNlcHRpb24NCj4gPiArICAx NywgLy8jQUM6IEFsaWdubWVudCBDaGVjayBFeGNlcHRpb24NCj4gPiArICAxOCAgLy8jTUM6IE1h Y2hpbmUtQ2hlY2sgRXhjZXB0aW9uDQo+ID4gKyAgfTsNCj4gPiArDQo+ID4gIC8qKg0KPiA+ICAg IFJldHVybiBhZGRyZXNzIG1hcCBvZiBleGNlcHRpb24gaGFuZGxlciB0ZW1wbGF0ZSBzbyB0aGF0 IEMgY29kZSBjYW4NCj4gPiBnZW5lcmF0ZQ0KPiA+ICAgIGV4Y2VwdGlvbiB0YWJsZXMuDQo+ID4g QEAgLTExMiw2ICsxMjUsMTAxIEBAIEFyY2hSZXN0b3JlRXhjZXB0aW9uQ29udGV4dCAoDQo+ID4g ICAgU3lzdGVtQ29udGV4dC5TeXN0ZW1Db250ZXh0WDY0LT5FeGNlcHRpb25EYXRhID0NCj4gPiBS ZXNlcnZlZFZlY3RvcnNbRXhjZXB0aW9uVHlwZV0uRXhjZXB0aW9uRGF0YTsNCj4gPiAgfQ0KPiA+ DQo+ID4gKy8qKg0KPiA+ICsgIFNldHVwIHNlcGFyYXRlIHN0YWNrIGZvciBzcGVjaWZpYyBleGNl cHRpb25zLg0KPiA+ICsNCj4gPiArICBAcGFyYW1baW5dIElkdFRhYmxlICAgICAgICBJRFQgdGFi bGUgYmFzZS4NCj4gPiArKiovDQo+ID4gK1ZPSUQNCj4gPiArRUZJQVBJDQo+ID4gK0FyY2hTZXR1 cEV4Y3BldGlvblN0YWNrICgNCj4gPiArICBJTiBJQTMyX0lEVF9HQVRFX0RFU0NSSVBUT1IgICAg ICAgICAgICpJZHRUYWJsZQ0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIFZPSUQgICAgICAgICAg ICAgICAgICAgICAgKk5ld0dkdDsNCj4gPiArICBJQTMyX0RFU0NSSVBUT1IgICAgICAgICAgIEdk dERlc2M7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBPbGRHZHRTaXplOw0KPiA+ ICsgIFRTU19FTlRSSUVTICAgICAgICAgICAgICAgKlRzc0VudHJ5Ow0KPiA+ICsgIFVJTlROICAg ICAgICAgICAgICAgICAgICAgU3RhY2tCYXNlOw0KPiA+ICsgIFVJTlROICAgICAgICAgICAgICAg ICAgICAgU3RhY2tUb3A7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBTdGFja1Np emU7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBUc3NCYXNlOw0KPiA+ICsgIFVJ TlROICAgICAgICAgICAgICAgICAgICAgSW5kZXg7DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAg Ly8gQWxsb2NhdGUgUnVudGltZSBEYXRhIGZvciB0aGUgR0RUICAvLyAgQXNtUmVhZEdkdHIoJkdk dERlc2MpOw0KPiA+ICsgT2xkR2R0U2l6ZSA9IEdkdERlc2MuTGltaXQgKyAxOyAgTmV3R2R0ID0N Cj4gPiArIEFsbG9jYXRlUnVudGltZVplcm9Qb29sKE9sZEdkdFNpemUgKyBzaXplb2YoVFNTX0VO VFJJRVMpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJQTMyX0dEVF9B TElHTk1FTlQpOyAgaWYgKE5ld0dkdA0KPiA9PQ0KPiA+ICsgTlVMTCkgew0KPiA+ICsgICAgcmV0 dXJuOw0KPiA+ICsgIH0NCj4gPiArICBOZXdHZHQgPSBBTElHTl9QT0lOVEVSIChOZXdHZHQsIElB MzJfR0RUX0FMSUdOTUVOVCk7DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gSW5pdGlhbGl6 ZSBuZXcgR0RUIGVudHJpZXMNCj4gPiArICAvLw0KPiA+ICsgIENvcHlNZW0oTmV3R2R0LCAoVk9J RCAqKUdkdERlc2MuQmFzZSwgT2xkR2R0U2l6ZSk7ICBHZHREZXNjLkJhc2UgPQ0KPiA+ICsgKFVJ TlROKShWT0lEKilOZXdHZHQ7ICBHZHREZXNjLkxpbWl0ID0gKFVJTlQxNikoT2xkR2R0U2l6ZSAr DQo+ID4gKyBUU1NfT0ZGU0VUIC0gMSk7DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gUmVz ZXJ2ZSBzdGF0Y2sgbWVtb3J5IGZvciBzdXBwb3J0ZWQgZXhjZXB0aW9ucyAgLy8gIFN0YWNrU2l6 ZSA9DQo+ID4gKyBBUlJBWV9TSVpFIChtRXhjZXB0aW9uc1dpdGhTdGFjaykgKiBFWENFUFRJT05f U1RBQ0tfU0laRTsgIFN0YWNrU2l6ZQ0KPiA+ICsgPSBFRklfUEFHRVNfVE9fU0laRSAoRUZJX1NJ WkVfVE9fUEFHRVMgKFN0YWNrU2l6ZSkpOyAgU3RhY2tCYXNlID0NCj4gPiArIChVSU5UNjQpQWxs b2NhdGVQYWdlcyAoRUZJX1NJWkVfVE9fUEFHRVMgKFN0YWNrU2l6ZSkpOyAgaWYNCj4gPiArIChT dGFja0Jhc2UgPT0gMCkgew0KPiA+ICsgICAgRnJlZVBvb2wgKE5ld0dkdCk7DQo+ID4gKyAgICBy ZXR1cm47DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIEZpeHVwIFRTUyBk ZXNjcmlwdG9ycw0KPiA+ICsgIC8vDQo+ID4gKyAgVHNzRW50cnkgPSAoVk9JRCAqKShHZHREZXNj LkJhc2UgKyBPbGRHZHRTaXplKTsgIFRzc0Jhc2UgPQ0KPiA+ICsgKFVJTlROKShWT0lEICopJlRz c0VudHJ5LT5Uc3M7DQo+ID4gKw0KPiA+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuTGltaXQxNV8wICAg ICAgICAgICAgPQ0KPiA+IHNpemVvZihJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCkgLSAxOw0KPiA+ ICsgIFRzc0VudHJ5LT5Uc3NTZWcuQmFzZTE1XzAgICAgICAgICAgICAgPSAoVUlOVDE2KVRzc0Jh c2U7DQo+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5CYXNlMjNfMTYgICAgICAgICAgICA9IChVSU5U OCkoVHNzQmFzZSA+PiAxNik7DQo+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5UeXBlICAgICAgICAg ICAgICAgICA9IElBMzJfR0RUX1RZUEVfVFNTOw0KPiA+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuTGlt aXQxOV8xNl9hbmRfZmxhZ3MgPSAwOw0KPiA+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuQmFzZTMxXzI0 ICAgICAgICAgICAgPSAoVUlOVDgpKFRzc0Jhc2UgPj4gMjQpOw0KPiA+ICsgIFRzc0VudHJ5LT5U c3NTZWcuQmFzZTYzXzMyICAgICAgICAgICAgPSAoVUlOVDMyKShUc3NCYXNlID4+IDMyKTsNCj4g PiArICBUc3NFbnRyeS0+VHNzU2VnLlJlc2VydmVkICAgICAgICAgICAgID0gMDsNCj4gPiArDQo+ ID4gKyAgLy8NCj4gPiArICAvLyBFbmFibGUgSW50ZXJydXB0IFN0YWNrIFRhYmxlIChJU1QpIGZv ciBlYWNoIHJlcXVpcmVkIGV4Y2VwdGlvbg0KPiA+ICsgLy8gIFN0YWNrVG9wICA9IFN0YWNrQmFz ZSArIFN0YWNrU2l6ZSAtIENQVV9TVEFDS19BTElHTk1FTlQ7DQo+ID4gKyBTdGFja1RvcCAgPSAo VUlOVE4pQUxJR05fUE9JTlRFUiAoU3RhY2tUb3AsIENQVV9TVEFDS19BTElHTk1FTlQpOw0KPiA+ ICsgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgQVJSQVlfU0laRSAobUV4Y2VwdGlvbnNXaXRoU3Rh Y2spOyArK0luZGV4KSB7DQo+ID4gKyAgICAvLw0KPiA+ICsgICAgLy8gRml4dXAgVFNTDQo+ID4g KyAgICAvLw0KPiA+ICsgICAgVHNzRW50cnktPlRzcy5JU1RbSW5kZXhdID0gU3RhY2tUb3A7DQo+ ID4gKyAgICBTdGFja1RvcCAtPSBFWENFUFRJT05fU1RBQ0tfU0laRTsNCj4gPiArDQo+ID4gKyAg ICAvLw0KPiA+ICsgICAgLy8gU2V0IHRoZSBJU1QgZmllbGQgdG8gMSB0byBlbmFibGUgY29ycmVz cG9uZGluZyBJU1QNCj4gPiArICAgIC8vDQo+ID4gKyAgICBJZHRUYWJsZVttRXhjZXB0aW9uc1dp dGhTdGFja1tJbmRleF1dLkJpdHMuUmVzZXJ2ZWRfMCA9DQo+ID4gKyAoVUlOVDgpKEluZGV4ICsN Cj4gPiAxKTsNCj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gUHVibGlzaCB0 aGUgY2hhbmdlcw0KPiA+ICsgIC8vDQo+ID4gKyAgQXNtV3JpdGVHZHRyKCZHZHREZXNjKTsNCj4g PiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBMb2FkIHRhc2sgcmVnaXN0ZXINCj4gPiArICAvLw0K PiA+ICsgIEFzbVdyaXRlVHIgKChVSU5UMTYpKE9sZEdkdFNpemUgKyBUU1NfU0VMKSk7IH0NCj4g PiArDQo+ID4gIC8qKg0KPiA+ICAgIERpc3BsYXkgQ1BVIGluZm9ybWF0aW9uLg0KPiA+DQo+ID4g ZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJM aWIvWDY0L0FyY2hJbnRlcnJ1cHREZWZzLmgNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ID4gaW5kZXggOTA2 NDgwMTM0YS4uNWE5MTNiYWU3YiAxMDA2NDQNCj4gPiAtLS0NCj4gPiBhL1VlZmlDcHVQa2cvTGli cmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ID4g KysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0FyY2hJ bnRlcnJ1cHREZWZzLg0KPiA+ICsrKyBoDQo+ID4gQEAgLTQzLDQgKzQzLDQ0IEBAIHR5cGVkZWYg c3RydWN0IHsNCj4gPiAgICBVSU5UOCAgICAgICBIb29rQWZ0ZXJTdHViSGVhZGVyQ29kZVtIT09L QUZURVJfU1RVQl9TSVpFXTsNCj4gPiAgfSBSRVNFUlZFRF9WRUNUT1JTX0RBVEE7DQo+ID4NCj4g PiArI3ByYWdtYSBwYWNrICgxKQ0KPiA+ICsNCj4gPiArI2RlZmluZSBFWENFUFRJT05fTElTVF9N QVggICAgICAgIDcNCj4gPiArI2RlZmluZSBFWENFUFRJT05fU1RBQ0tfU0laRSAgICAgIEVGSV9Q QUdFX1NJWkUNCj4gPiArI2RlZmluZSBJQTMyX0dEVF9UWVBFX1RTUyAgICAgICAgIDB4ODkNCj4g PiArI2RlZmluZSBJQTMyX0dEVF9BTElHTk1FTlQgICAgICAgIDgNCj4gPiArDQo+ID4gK3R5cGVk ZWYgc3RydWN0IHsNCj4gPiArICBVSU5UMzIgICAgUmVzZXJ2ZWRfMDsNCj4gPiArICBVSU5UNjQg ICAgUlNQMDsNCj4gPiArICBVSU5UNjQgICAgUlNQMTsNCj4gPiArICBVSU5UNjQgICAgUlNQMjsN Cj4gPiArICBVSU5UNjQgICAgUmVzZXJ2ZWRfMjg7DQo+ID4gKyAgVUlOVDY0ICAgIElTVFs3XTsN Cj4gPiArICBVSU5UNjQgICAgUmVzZXJ2ZWRfOTI7DQo+ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVk XzEwMDsNCj4gPiArICBVSU5UMTYgICAgSU9NYXBCYXNlQWRkcmVzczsNCj4gPiArfSBJQTMyX1RB U0tfU1RBVEVfU0VHTUVOVDsNCj4gPiArDQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiArICBV SU5UMTYgICAgTGltaXQxNV8wOw0KPiA+ICsgIFVJTlQxNiAgICBCYXNlMTVfMDsNCj4gPiArICBV SU5UOCAgICAgQmFzZTIzXzE2Ow0KPiA+ICsgIFVJTlQ4ICAgICBUeXBlOw0KPiA+ICsgIFVJTlQ4 ICAgICBMaW1pdDE5XzE2X2FuZF9mbGFnczsNCj4gPiArICBVSU5UOCAgICAgQmFzZTMxXzI0Ow0K PiA+ICsgIFVJTlQzMiAgICBCYXNlNjNfMzI7DQo+ID4gKyAgVUlOVDMyICAgIFJlc2VydmVkOw0K PiA+ICt9IElBMzJfVFNTX0RFU0NSSVBUT1I7DQo+ID4gKw0KPiA+ICt0eXBlZGVmIHN0cnVjdCB7 DQo+ID4gKyAgSUEzMl9UU1NfREVTQ1JJUFRPUiAgICAgICAgICAgVHNzU2VnOw0KPiA+ICsgIElB MzJfVEFTS19TVEFURV9TRUdNRU5UICAgICAgIFRzczsNCj4gPiArfSBUU1NfRU5UUklFUzsNCj4g PiArDQo+ID4gKyNwcmFnbWEgcGFjayAoKQ0KPiA+ICsNCj4gPiArI2RlZmluZSBUU1NfU0VMICAg ICAgICAgICBPRkZTRVRfT0YgKFRTU19FTlRSSUVTLCBUc3NTZWcpDQo+ID4gKyNkZWZpbmUgVFNT X09GRlNFVCAgICAgICAgT0ZGU0VUX09GIChUU1NfRU5UUklFUywgVHNzKQ0KPiA+ICsNCj4gPiAg I2VuZGlmDQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2Vw dGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiA+IGIvVWVmaUNwdVBr Zy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20u Uw0KPiA+IGluZGV4IGVkZDM2M2NkYWEuLmJkYWYxMzJjZjUgMTAwNjQ0DQo+ID4gLS0tDQo+ID4g YS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9u SGFuZGxlckFzbS5TDQo+ID4gKysrDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5TDQo+ID4gQEAgLTQyOSw2ICs0 MjksMTggQEAgQVNNX1BGWChBc21WZWN0b3JOdW1GaXh1cCk6DQo+ID4gICAgICBwb3BxICAgICAg JXJicA0KPiA+ICAgICAgcmV0DQo+ID4NCj4gPiArIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKy0tLS0tLS0t LS0NCj4gPiArIyBWT0lEDQo+ID4gKyMgQXNtV3JpdGVUciAoDQo+ID4gKyMgICBVSU5UMTYgU2Vs ZWN0b3INCj4gPiArIyAgICk7DQo+ID4gKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICstLS0tLS0tLS0tDQo+ ID4gK0FTTV9HTE9CQUwgQVNNX1BGWChBc21Xcml0ZVRyKQ0KPiA+ICtBU01fUEZYKEFzbVdyaXRl VHIpOg0KPiA+ICsgICAgbW92bCAgICAlZWN4LCAlZWF4DQo+ID4gKyAgICBsdHJ3ICAgICVheA0K PiA+ICsgICAgcmV0DQo+ID4gKw0KPiA+ICAjRU5EDQo+ID4NCj4gPg0KPiA+IGRpZmYgLS1naXQN Cj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNl cHRpb25IYW5kbGVyQXNtLmFzDQo+ID4gbQ0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uYXMNCj4gPiBtDQo+ID4g aW5kZXggNzI2YzY0YTE0MC4uYWVjNTZlZjRiZiAxMDA2NDQNCj4gPiAtLS0NCj4gPiBhL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVy QXNtLmFzDQo+ID4gbQ0KPiA+ICsrKw0KPiA+DQo+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uYXNtDQo+ID4gQEAgLTM4 Niw0ICszODYsMTYgQEAgQXNtVmVjdG9yTnVtRml4dXAgICBQUk9DDQo+ID4gICAgICByZXQNCj4g PiAgQXNtVmVjdG9yTnVtRml4dXAgICBFTkRQDQo+ID4NCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4g Ky0tLS0tLS0tLS0NCj4gPiArOyBWT0lEDQo+ID4gKzsgQXNtV3JpdGVUciAoDQo+ID4gKzsgICBV SU5UMTYgU2VsZWN0b3INCj4gPiArOyAgICk7DQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICstLS0t LS0tLS0tDQo+ID4gK0FzbVdyaXRlVHIgUFJPQyBQVUJMSUMNCj4gPiArICAgIG1vdiAgICAgZWF4 LCBlY3gNCj4gPiArICAgIGx0ciAgICAgYXgNCj4gPiArICAgIHJldA0KPiA+ICtBc21Xcml0ZVRy IEVORFANCj4gPiArDQo+ID4gIEVORA0KPiA+IGRpZmYgLS1naXQNCj4gPiBhL1VlZmlDcHVQa2cv TGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLm5h DQo+ID4gc20NCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGli L1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLm5hDQo+ID4gc20NCj4gPiBpbmRleCBiYTg5OTNkODRi Li4xZTJhYzQxMWIwIDEwMDY0NA0KPiA+IC0tLQ0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0Nw dUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20ubmENCj4gPiBzbQ0K PiA+ICsrKw0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIv WDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20ubmENCj4gPiBzbSBAQCAtMzg1LDMgKzM4NSwxNSBAQCBB U01fUEZYKEFzbVZlY3Rvck51bUZpeHVwKToNCj4gPiAgICAgIG1vdiAgICAgW3JjeCArIChAVmVj dG9yTnVtIC0gSG9va0FmdGVyU3R1YkhlYWRlckJlZ2luKV0sIGFsDQo+ID4gICAgICByZXQNCj4g Pg0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArLS0tLS0tLS0tLQ0KPiA+ICs7IFZPSUQNCj4gPiAr OyBBc21Xcml0ZVRyICgNCj4gPiArOyAgIFVJTlQxNiBTZWxlY3Rvcg0KPiA+ICs7ICAgKTsNCj4g PiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ID4gKy0tLS0tLS0tLS0NCj4gPiArZ2xvYmFsIEFTTV9QRlgoQXNt V3JpdGVUcikNCj4gPiArQVNNX1BGWChBc21Xcml0ZVRyKToNCj4gPiArICAgIG1vdiAgICAgZWF4 LCBlY3gNCj4gPiArICAgIGx0ciAgICAgYXgNCj4gPiArICAgIHJldA0KPiA+ICsNCj4gPiAtLQ0K PiA+IDIuMTQuMS53aW5kb3dzLjENCj4NCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18NCj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gZWRrMi1kZXZl bEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPg0KPiBodHRwczov L2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCj4NCj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gZWRrMi1kZXZlbCBtYWls aW5nIGxpc3QNCj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlz dHMuMDEub3JnPg0KPiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazIt ZGV2ZWwNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18N CmVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQplZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86 ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+DQpodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2VkazItZGV2ZWwNCg==