From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: liming.gao@intel.com) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by groups.io with SMTP; Fri, 09 Aug 2019 20:34:08 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Aug 2019 20:34:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,367,1559545200"; d="scan'208";a="175325014" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga008.fm.intel.com with ESMTP; 09 Aug 2019 20:34:07 -0700 Received: from fmsmsx157.amr.corp.intel.com (10.18.116.73) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 9 Aug 2019 20:34:07 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by FMSMSX157.amr.corp.intel.com (10.18.116.73) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 9 Aug 2019 20:34:07 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.112]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.139]) with mapi id 14.03.0439.000; Sat, 10 Aug 2019 11:34:05 +0800 From: "Liming Gao" To: "Chen, Marc W" , "devel@edk2.groups.io" , "lersek@redhat.com" , "Ni, Ray" CC: "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH] MdePkg: Add MmAccess and MmControl definition. Thread-Topic: [edk2-devel] [PATCH] MdePkg: Add MmAccess and MmControl definition. Thread-Index: AQHVRcW+DNj93F0Ff0OTbvaK1JyqQqbl/g2wgAABaiCAAAEfIP//jrCAgAADE4CAAQvmAIAGudOAgAAUJYCAAfdxAIAD40QAgACGQzA= Date: Sat, 10 Aug 2019 03:34:04 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E4CDBFC@SHSMSX104.ccr.corp.intel.com> References: <20190729042556.17692-1-marc.w.chen@intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E4C7400@SHSMSX104.ccr.corp.intel.com> <734D49CCEBEEF84792F5B80ED585239D5C267BB4@SHSMSX104.ccr.corp.intel.com> <211b95ba-703d-4561-c2bc-891e02d0ec2b@redhat.com> <734D49CCEBEEF84792F5B80ED585239D5C27417F@SHSMSX104.ccr.corp.intel.com> <324c388e-b964-f2c9-3719-e47293649351@redhat.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYzJkODczMjMtNzQ1ZS00Nzg0LWI2ZmItNjkwMGUzZGU0YTg0IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiK2hZaXQxdmdvTUxmMmRWWVVwXC9oa2tHZWs1T2FsdWJ4TE5qMjFvQ1RmcnQ4RW1SN2pwWFYzRlI0S3dNaHh6YWwifQ== dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: liming.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSBhZ3JlZS4gVGhlIHBhdGNoIHRvIGFkZCB0aGVtIGluIE1kZVBrZyBpcyBjbGVhci4gSSB3aWxs IHB1c2ggaXQgbmV4dCBNb25kYXkuIA0KDQpUaGFua3MNCkxpbWluZw0KPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBDaGVuLCBNYXJjIFcNCj4gU2VudDogU2F0dXJkYXksIEF1 Z3VzdCAxMCwgMjAxOSAxMTozMyBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IGxlcnNl a0ByZWRoYXQuY29tOyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgPGxp bWluZy5nYW9AaW50ZWwuY29tPg0KPiBDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSF0gTWRl UGtnOiBBZGQgTW1BY2Nlc3MgYW5kIE1tQ29udHJvbCBkZWZpbml0aW9uLg0KPiANCj4gSGkgTGlt aW5nDQo+IA0KPiBTaW5jZSB0aGUgU21tQWNjZXNzLmggb2YgTWRlTW9kdWxlUGtnIHJlbW92YWwg aXMgc3RpbGwgdW5kZXIgZGlzY3Vzc2lvbiwgY2FuIHdlIHB1c2ggdGhlIE1tQWNjZXNzLmggYW5k IE1tQ29udHJvbC5oIHRvIE1kZVBrZw0KPiBmaXJzdD8gSSBoYXZlIG90aGVyIHRhc2tzIHBlbmRp bmcgYnkgdGhpcy4NCj4gV2UgY2FuIGtlZXAgZGlzY3Vzc2luZyB0aGUgU21tQWNjZXNzIGFmdGVy IHB1c2ggdGhlIGNvZGUuDQo+IA0KPiBUaGFua3MsDQo+IE1hcmMNCj4gDQo+ID4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxA ZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBMYXN6bG8NCj4gPiBFcnNlaw0KPiA+IFNlbnQ6 IFRodXJzZGF5LCBBdWd1c3QgOCwgMjAxOSAxMjoxMSBBTQ0KPiA+IFRvOiBOaSwgUmF5IDxyYXku bmlAaW50ZWwuY29tPjsgQ2hlbiwgTWFyYyBXIDxtYXJjLncuY2hlbkBpbnRlbC5jb20+Ow0KPiA+ IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+ DQo+ID4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4N Cj4gPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlUGtnOiBBZGQgTW1BY2Nl c3MgYW5kIE1tQ29udHJvbA0KPiA+IGRlZmluaXRpb24uDQo+ID4NCj4gPiBPbiAwOC8wNi8xOSAx MjowOCwgTmksIFJheSB3cm90ZToNCj4gPiA+IExhc3psbywNCj4gPiA+IERvIHlvdSB3YW50IHRv IGF2b2lkIHRvdWNoaW5nIHRoZSBPdm1mUGtnIGR1ZSB0aGUgZmlsZSByZW1vdmFsIGluDQo+ID4g TWRlTW9kdWxlUGtnPw0KPiA+DQo+ID4gTXkgbWFpbiBwcm9ibGVtIHdpdGggdGhpcyAqc3BlY2lm aWMqIHVwZGF0ZSBwcm9wb3NhbCBpcyB0aGF0IHRoZQ0KPiA+IGlkZW50aWZpZXJzICh0eXBlIG5h bWVzIGFuZCBzdWNoKSB0aGF0IHdvdWxkIGJlIHN1YmplY3QgdG8gcmVtb3ZhbCB3ZXJlDQo+ID4g cHVibGljbHkgc3BlY2lmaWVkIGluIGVhcmxpZXIgUEkgc3BlYyByZWxlYXNlcy4NCj4gPg0KPiA+ IEkgZG9uJ3Qgc3VnZ2VzdCB0aGF0IHdlIG1haW50YWluIHR3byBwYXJhbGxlbCBzZXRzIG9mIHR5 cGVkZWZzIGFuZCBzdWNoDQo+ID4gaW4gZWRrMi4gSXQncyBmaW5lIHRvIGtlZXAgdGhlIG5ldyAi TU0iIG5vbWVuY2xhdHVyZSB0aGUgbWFpbiBvbmUuIEJ1dA0KPiA+IHdlIHNob3VsZCBrZWVwIHRo ZSAiU01NIiBzZXQgb2YgdGVybXMgdG9vLCBhcyBhIHRoaW4gd3JhcHBlciwgaWYgdGhhdCdzDQo+ ID4gdGVjaG5pY2FsbHkgZmVhc2libGUuDQo+ID4NCj4gPiBJZiB3ZSByZW1vdmUgIlNNTSIsIHRo YXQgd2lsbCBub3Qgb25seSBhZmZlY3QgT3ZtZlBrZyB1bnBsZWFzYW50bHksIGJ1dA0KPiA+IGEg YnVuY2ggb2Ygb3RoZXIsIG91dC1vZi10cmVlIGNvZGUuIEFuZCB0aGUgcmVhc29uIEkgc3VkZGVu bHkgY2FyZSBhYm91dA0KPiA+IG91dC1vZi10cmVlIGNvZGUgaXMgdGhhdCBzdWNoIGNvZGUgd2Fz IHdyaXR0ZW4gYWdhaW5zdCBhIHB1YmxpYyBpbmR1c3RyeQ0KPiA+IHNwZWMgKD0gZWFybGllciB2 ZXJzaW9ucyBvZiB0aGUgUEkgc3BlYykuDQo+ID4NCj4gPiBJIGRvbid0IHRoaW5rIHRoYXQgdGhl IHNpbXBsaWNpdHkgdGhhdCB3b3VsZCBjb21lIGZyb20gcmVtb3ZpbmcgIlNNTSINCj4gPiBhbHRv Z2V0aGVyLCBpcyB3ZWxsLWJhbGFuY2VkIGFnYWluc3QgdGhlIHBhaW4gdGhhdCBpdCB3b3VsZCBj YXVzZSBmb3INCj4gPiBwbGF0Zm9ybXMuDQo+ID4NCj4gPiBFYXJsaWVyIHRoaXMgd2FzIHNvbHZl ZCBpbiB0aGUgZm9sbG93aW5nIGNvbW1pdHM6DQo+ID4gLSAwN2M2YTQ3ZTcwYmEgKCJNZGVQa2c6 IEFkZCBuZXcgZGVmaW5pdGlvbnMgZm9yIE1hbmFnZW1lbnQgTW9kZS4iLA0KPiA+IDIwMTctMDgt MjkpDQo+ID4gLSAyZjIwOGU1OWU0YjkgKCJNZGVQa2c6IFJlZmVyZW5jZSBuZXcgZGVmaW5pdGlv bnMgZm9yIE1hbmFnZW1lbnQNCj4gPiBNb2RlLiIsIDIwMTctMDgtMjkpDQo+ID4NCj4gPiBUaGFu a3MNCj4gPiBMYXN6bG8NCj4gPg0KPiA+ID4gSSBwcmVmZXIgdG8gcmVtb3ZlIHRoZSBmaWxlcyBp biBNZGVNb2R1bGVQa2cgdG8gYXZvaWQgZnV0dXJlIGNvbmZ1c2lvbi4NCj4gPiA+DQo+ID4gPiBU aGFua3MsDQo+ID4gPiBSYXkNCj4gPiA+DQo+ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPiA+PiBGcm9tOiBDaGVuLCBNYXJjIFcNCj4gPiA+PiBTZW50OiBUdWVzZGF5LCBBdWd1 c3QgNiwgMjAxOSA0OjU3IFBNDQo+ID4gPj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBsZXJz ZWtAcmVkaGF0LmNvbTsgTmksIFJheQ0KPiA+IDxyYXkubmlAaW50ZWwuY29tPjsNCj4gPiA+PiBH YW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+ID4gPj4gQ2M6IEtpbm5leSwgTWlj aGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+PiBTdWJqZWN0OiBSRTog W2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlUGtnOiBBZGQgTW1BY2Nlc3MgYW5kDQo+ID4gTW1Db250 cm9sDQo+ID4gPj4gZGVmaW5pdGlvbi4NCj4gPiA+Pg0KPiA+ID4+IEhpIExpbWluZyBhbmQgUmF5 DQo+ID4gPj4NCj4gPiA+PiBEbyB5b3UgYWxzbyBhZ3JlZT8NCj4gPiA+Pg0KPiA+ID4+IFRoYW5r cywNCj4gPiA+PiBNYXJjDQo+ID4gPj4NCj4gPiA+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPiA+Pj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBz LmlvPiBPbiBCZWhhbGYgT2YNCj4gPiBMYXN6bG8NCj4gPiA+Pj4gRXJzZWsNCj4gPiA+Pj4gU2Vu dDogRnJpZGF5LCBBdWd1c3QgMiwgMjAxOSAxMDoxNCBBTQ0KPiA+ID4+PiBUbzogZGV2ZWxAZWRr Mi5ncm91cHMuaW87IENoZW4sIE1hcmMgVyA8bWFyYy53LmNoZW5AaW50ZWwuY29tPjsgTmksDQo+ ID4gPj4+IFJheSA8cmF5Lm5pQGludGVsLmNvbT47IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGlu dGVsLmNvbT4NCj4gPiA+Pj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5 QGludGVsLmNvbT4NCj4gPiA+Pj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1k ZVBrZzogQWRkIE1tQWNjZXNzIGFuZA0KPiA+ID4+IE1tQ29udHJvbA0KPiA+ID4+PiBkZWZpbml0 aW9uLg0KPiA+ID4+Pg0KPiA+ID4+PiBPbiAwOC8wMS8xOSAxMjoxNSwgTWFyYyBXIENoZW4gd3Jv dGU6DQo+ID4gPj4+PiBZZXMsIG15IHB1cnBvc2UgaXMgdG8gYXZvaWQgcGxhdGZvcm0gY29kZSB1 cGRhdGUgaWYgdGhlIHBhY2thZ2UgaXMNCj4gPiA+Pj4+IGFsbG93ZWQNCj4gPiA+Pj4gdG8gdXNl IE1kZU1vZHVsZVBrZyBsaWtlIE92bWZQa2cuDQo+ID4gPj4+PiBGb3IgdGhvc2UgcGFja2FnZXMg dGhhdCBjYW5ub3QgZGVwZW5kIG9uIE1kZU1vZHVsZVBrZyBtdXN0DQo+ID4gY2hhbmdlDQo+ID4g Pj4gdG8NCj4gPiA+Pj4gdXNlIG5ldyBkZWZpbml0aW9uLg0KPiA+ID4+Pg0KPiA+ID4+PiBBZ3Jl ZWQuDQo+ID4gPj4+DQo+ID4gPj4+IFRoYW5rcyENCj4gPiA+Pj4gTGFzemxvDQo+ID4gPj4+DQo+ ID4gPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+Pj4+PiBGcm9tOiBOaSwg UmF5DQo+ID4gPj4+Pj4gU2VudDogVGh1cnNkYXksIEF1Z3VzdCAxLCAyMDE5IDY6MDQgUE0NCj4g PiA+Pj4+PiBUbzogQ2hlbiwgTWFyYyBXIDxtYXJjLncuY2hlbkBpbnRlbC5jb20+OyBHYW8sIExp bWluZw0KPiA+ID4+Pj4+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBz LmlvDQo+ID4gPj4+Pj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT4NCj4gPiA+Pj4+PiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSF0gTWRl UGtnOiBBZGQgTW1BY2Nlc3MgYW5kDQo+ID4gPj4+IE1tQ29udHJvbA0KPiA+ID4+Pj4+IGRlZmlu aXRpb24uDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBNYXJjLA0KPiA+ID4+Pj4+IElzIHRoZSBwdXJw b3NlIHRvIGF2b2lkIHBsYXRmb3JtIGNvZGUgdXBkYXRlIHdpdGggdGhlIHdyYXBwZXINCj4gPiA+ Pj4+PiBoZWFkZXINCj4gPiA+Pj4gZmlsZSBpbg0KPiA+ID4+Pj4+IE1kZU1vZHVsZVBrZz8NCj4g PiA+Pj4+PiBDZXJ0YWluIHBsYXRmb3JtcyB0aGV5IG1heSByZXF1aXJlIHRvIG5vdCBkZXBlbmQg b24gTWRlTW9kdWxlUGtnDQo+ID4gPj4+Pj4gYnV0IGp1c3QgZGVwZW5kIG9uIE1kZVBrZy4NCj4g PiA+Pj4+PiBIYXZpbmcgU21tQWNjZXNzLmggaW4gTWRlTW9kdWxlUGtnIGRvZXNuJ3QgaGVscC4N Cj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IEl0IGFsc28gYnJpbmcgY29uZnVzaW5nLg0KPiA+ID4+Pj4+ DQo+ID4gPj4+Pj4gVGhhbmtzLA0KPiA+ID4+Pj4+IFJheQ0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPj4+Pj4+IEZyb206IENoZW4sIE1hcmMg Vw0KPiA+ID4+Pj4+PiBTZW50OiBUaHVyc2RheSwgQXVndXN0IDEsIDIwMTkgNDo1MyBQTQ0KPiA+ ID4+Pj4+PiBUbzogR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgZGV2ZWxAZWRr Mi5ncm91cHMuaW8NCj4gPiA+Pj4+Pj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT47IE5pLCBSYXkNCj4gPiA+Pj4+Pj4gPHJheS5uaUBpbnRlbC5jb20+ DQo+ID4gPj4+Pj4+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBNZGVQa2c6IEFk ZCBNbUFjY2VzcyBhbmQNCj4gPiA+Pj4gTW1Db250cm9sDQo+ID4gPj4+Pj4+IGRlZmluaXRpb24u DQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IEhpIExpbWluZw0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+ PiBBbm90aGVyIHRob3VnaHQsIGRvIHlvdSB0aGluayBpdCBpcyBvayB0byBrZWVwIFNtbUFjY2Vz cy5oIGluDQo+ID4gPj4+Pj4+IE1kZU1vZHVsZVBrZz8gV2UgY2FuIHVzZSAjZGVmaW5lIGFuZCB0 eXBlZGVmIHRvIGNvbnZlcnQNCj4gPiA+PiBNbUFjY2Vzcw0KPiA+ID4+PiB0bw0KPiA+ID4+Pj4+ PiBTbW1BY2Nlc3MsIGp1c3QgbGlrZSBjdXJyZW50IFNtbUFjY2VzcyBQcm90b2NvbCBpbiBNZGVQ a2cuDQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IFRoYW5rcywNCj4gPiA+Pj4+Pj4gTWFyYw0KPiA+ ID4+Pj4+Pg0KPiA+ID4+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+Pj4+ Pj4+IEZyb206IENoZW4sIE1hcmMgVw0KPiA+ID4+Pj4+Pj4gU2VudDogVGh1cnNkYXksIEF1Z3Vz dCAxLCAyMDE5IDQ6NDggUE0NCj4gPiA+Pj4+Pj4+IFRvOiBHYW8sIExpbWluZyA8bGltaW5nLmdh b0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4+Pj4+Pj4gQ2M6IEtpbm5l eSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IE5pLCBSYXkNCj4gPiA+ Pj4+Pj4+IDxyYXkubmlAaW50ZWwuY29tPg0KPiA+ID4+Pj4+Pj4gU3ViamVjdDogUkU6IFtlZGsy LWRldmVsXSBbUEFUQ0hdIE1kZVBrZzogQWRkIE1tQWNjZXNzIGFuZA0KPiA+ID4+Pj4+PiBNbUNv bnRyb2wNCj4gPiA+Pj4+Pj4+IGRlZmluaXRpb24uDQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4g SGkgTGltaW5nDQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4gU2luY2UgdGhlcmUgYXJlIG11bHRp cGxlIHBhY2thZ2VzIGFyZSBzdGlsbCB1c2luZyBTbW1BY2Nlc3MuaCwgd2UNCj4gPiA+Pj4+Pj4+ IG5lZWQgdG8gY2hhbmdlIGFsbCBwYWNrYWdlcyB0byB1c2UgTW1BY2Nlc3MuaCBpbnN0ZWFkIG9m DQo+ID4gPj4+Pj4+PiBTbW1BY2Nlc3MuaCBmaXJzdCwgdGhlbiBjbGVhbiB1cCBTbW1BY2Nlc3Mu aCBmcm9tDQo+ID4gTWRlTW9kdWxlUGtnDQo+ID4gPj4gd2lsbCBiZSB0aGUgbGFzdCBzdGVwLg0K PiA+ID4+Pj4+Pj4gQmVsb3cgYXJlIHRoZSBwYWNrYWdlcyB0aGF0IGhhcyAiaW5jbHVkZSA8UHBp L1NtbUFjY2Vzcy5oPiIgZm9yDQo+ID4gPj4+Pj4+PiB5b3VyIHJlZmVyZW5jZS4NCj4gPiA+Pj4+ Pj4+ICoJRWRrMiByZXBvOg0KPiA+ID4+Pj4+Pj4gbwlNZGVNb2R1bGVQa2cNCj4gPiA+Pj4+Pj4+ IG8JT3ZtZlBrZw0KPiA+ID4+Pj4+Pj4gbwlVZWZpQ3B1UGtnDQo+ID4gPj4+Pj4+PiAqCUVkazJQ bGF0Zm9ybSByZXBvOg0KPiA+ID4+Pj4+Pj4gbwlNaW5QbGF0Zm9ybVBrZw0KPiA+ID4+Pj4+Pj4g bwlRdWFya1NvY1BrZw0KPiA+ID4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+IFRoYW5rcywNCj4gPiA+Pj4+ Pj4+IE1hcmMNCj4gPiA+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiA+Pj4+Pj4+PiBGcm9tOiBHYW8sIExpbWluZw0KPiA+ID4+Pj4+Pj4+IFNlbnQ6 IFRodXJzZGF5LCBBdWd1c3QgMSwgMjAxOSA0OjQyIFBNDQo+ID4gPj4+Pj4+Pj4gVG86IGRldmVs QGVkazIuZ3JvdXBzLmlvOyBDaGVuLCBNYXJjIFcNCj4gPiA8bWFyYy53LmNoZW5AaW50ZWwuY29t Pg0KPiA+ID4+Pj4+Pj4+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+OyBOaSwgUmF5DQo+ID4gPj4+Pj4+Pj4gPHJheS5uaUBpbnRlbC5jb20+DQo+ID4g Pj4+Pj4+Pj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZVBrZzogQWRkIE1t QWNjZXNzIGFuZA0KPiA+ID4+Pj4+PiBNbUNvbnRyb2wNCj4gPiA+Pj4+Pj4+PiBkZWZpbml0aW9u Lg0KPiA+ID4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4gTWFyYzoNCj4gPiA+Pj4+Pj4+PiAgIFRoZSBj aGFuZ2UgaXMgZ29vZC4gUmV2aWV3ZWQtYnk6IExpbWluZyBHYW8NCj4gPiA+Pj4gPGxpbWluZy5n YW9AaW50ZWwuY29tPg0KPiA+ID4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4gICBCZXNpZGVzLCBJIHNl ZSBCWiBhbHNvIG1lbnRpb24gdG8gcmVtb3ZlIHRoZSBvbmUgaW4NCj4gPiA+PiBNZGVNb2R1bGVQ a2cuDQo+ID4gPj4+Pj4+Pj4gSGF2ZSB5b3UgdGhlIGZvbGxvd2luZyBwYXRjaGVzIGZvciB0aGUg Y2hhbmdlIGluIE1kZU1vZHVsZVBrZz8NCj4gPiA+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+IFRoYW5r cw0KPiA+ID4+Pj4+Pj4+IExpbWluZw0KPiA+ID4+Pj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+ID4+Pj4+Pj4+PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyBbbWFpbHRv OmRldmVsQGVkazIuZ3JvdXBzLmlvXSBPbg0KPiA+ID4+Pj4+IEJlaGFsZg0KPiA+ID4+Pj4+Pj4+ PiBPZiBNYXJjIFcgQ2hlbg0KPiA+ID4+Pj4+Pj4+PiBTZW50OiBNb25kYXksIEp1bHkgMjksIDIw MTkgMTI6MjYgUE0NCj4gPiA+Pj4+Pj4+Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4g Pj4+Pj4+Pj4+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5j b20+OyBHYW8sDQo+ID4gTGltaW5nDQo+ID4gPj4+Pj4+Pj4+IDxsaW1pbmcuZ2FvQGludGVsLmNv bT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+ID4gPj4+Pj4+Pj4+IFN1YmplY3Q6IFtl ZGsyLWRldmVsXSBbUEFUQ0hdIE1kZVBrZzogQWRkIE1tQWNjZXNzIGFuZA0KPiA+ID4+Pj4+IE1t Q29udHJvbA0KPiA+ID4+Pj4+Pj4+PiBkZWZpbml0aW9uLg0KPiA+ID4+Pj4+Pj4+Pg0KPiA+ID4+ Pj4+Pj4+PiBFRkkgTW1BY2Nlc3MgYW5kIE1tQ29udHJvbCBQUElzIGFyZSBkZWZpbmVkIGluIHRo ZSBQSSAxLjUNCj4gPiA+Pj4+Pj4gc3BlY2lmaWNhdGlvbi4NCj4gPiA+Pj4+Pj4+Pj4NCj4gPiA+ Pj4+Pj4+Pj4gQ2M6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pg0KPiA+ID4+Pj4+Pj4+PiBDYzogTGltaW5nIEdhbyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+ ID4gPj4+Pj4+Pj4+IENjOiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+ID4gPj4+Pj4+Pj4+ IFJlZjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIz DQo+ID4gPj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IE1hcmMgVyBDaGVuIDxtYXJjLncuY2hlbkBp bnRlbC5jb20+DQo+ID4gPj4+Pj4+Pj4+IC0tLQ0KPiA+ID4+Pj4+Pj4+PiBNZGVQa2cvSW5jbHVk ZS9QcGkvTW1BY2Nlc3MuaCAgfCAxNTUNCj4gPiA+Pj4+Pj4+Pj4gKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysNCj4gPiA+Pj4+Pj4+Pj4gTWRlUGtnL0luY2x1ZGUvUHBp L01tQ29udHJvbC5oIHwgIDkwDQo+ID4gPj4+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKw0K PiA+ID4+Pj4+Pj4+PiBNZGVQa2cvTWRlUGtnLmRlYyAgICAgICAgICAgICAgfCAgIDYgKysNCj4g PiA+Pj4+Pj4+Pj4gMyBmaWxlcyBjaGFuZ2VkLCAyNTEgaW5zZXJ0aW9ucygrKSBjcmVhdGUgbW9k ZSAxMDA2NDQNCj4gPiA+Pj4+Pj4+Pj4gTWRlUGtnL0luY2x1ZGUvUHBpL01tQWNjZXNzLmggY3Jl YXRlIG1vZGUgMTAwNjQ0DQo+ID4gPj4+Pj4+Pj4+IE1kZVBrZy9JbmNsdWRlL1BwaS9NbUNvbnRy b2wuaA0KPiA+ID4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0lu Y2x1ZGUvUHBpL01tQWNjZXNzLmgNCj4gPiA+Pj4+Pj4+Pj4gYi9NZGVQa2cvSW5jbHVkZS9QcGkv TW1BY2Nlc3MuaCBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4DQo+ID4gPj4+Pj4+Pj4+ IDAwMDAwMDAwMDAuLjYzNmU3Mjg4YTANCj4gPiA+Pj4+Pj4+Pj4gLS0tIC9kZXYvbnVsbA0KPiA+ ID4+Pj4+Pj4+PiArKysgYi9NZGVQa2cvSW5jbHVkZS9QcGkvTW1BY2Nlc3MuaA0KPiA+ID4+Pj4+ Pj4+PiBAQCAtMCwwICsxLDE1NSBAQA0KPiA+ID4+Pj4+Pj4+PiArLyoqIEBmaWxlDQo+ID4gPj4+ Pj4+Pj4+ICsgIEVGSSBNTSBBY2Nlc3MgUFBJIGRlZmluaXRpb24uDQo+ID4gPj4+Pj4+Pj4+ICsN Cj4gPiA+Pj4+Pj4+Pj4gKyAgVGhpcyBQUEkgaXMgdXNlZCB0byBjb250cm9sIHRoZSB2aXNpYmls aXR5IG9mIHRoZSBNTVJBTSBvbg0KPiA+ID4+Pj4+Pj4+PiArIHRoZQ0KPiA+ID4+Pj4+PiBwbGF0 Zm9ybS4NCj4gPiA+Pj4+Pj4+Pj4gKyAgVGhlIEVGSV9QRUlfTU1fQUNDRVNTX1BQSSBhYnN0cmFj dHMgdGhlIGxvY2F0aW9uIGFuZA0KPiA+ID4+Pj4+Pj4+PiArIGNoYXJhY3RlcmlzdGljcw0KPiA+ ID4+Pj4+Pj4gb2YNCj4gPiA+Pj4+Pj4+Pj4gTU1SQU0uIFRoZQ0KPiA+ID4+Pj4+Pj4+PiArICBw cmluY2lwYWwgZnVuY3Rpb25hbGl0eSBmb3VuZCBpbiB0aGUgbWVtb3J5IGNvbnRyb2xsZXINCj4g PiA+Pj4+Pj4+Pj4gKyBpbmNsdWRlcyB0aGUNCj4gPiA+Pj4+Pj4+PiBmb2xsb3dpbmc6DQo+ID4g Pj4+Pj4+Pj4+ICsgIC0gRXhwb3NpbmcgdGhlIE1NUkFNIHRvIGFsbCBub24tTU0gYWdlbnRzLCBv ciB0aGUgIm9wZW4iDQo+ID4gPj4+Pj4+Pj4+ICsgc3RhdGUNCj4gPiA+Pj4+Pj4+Pj4gKyAgLSBT aHJvdWRpbmcgdGhlIE1NUkFNIHRvIGFsbCBidXQgdGhlIE1NIGFnZW50cywgb3IgdGhlDQo+ID4g Pj4gImNsb3NlZCINCj4gPiA+Pj4+Pj4+Pj4gKyBzdGF0ZQ0KPiA+ID4+Pj4+Pj4+PiArICAtIFBy ZXNlcnZpbmcgdGhlIHN5c3RlbSBpbnRlZ3JpdHksIG9yICJsb2NraW5nIiB0aGUgTU1SQU0sDQo+ ID4gPj4+Pj4+Pj4+ICsgc3VjaCB0aGF0DQo+ID4gPj4+Pj4+PiB0aGUNCj4gPiA+Pj4+Pj4+Pj4g c2V0dGluZ3MgY2Fubm90IGJlDQo+ID4gPj4+Pj4+Pj4+ICsgICAgcGVydHVyYmVkIGJ5IGVpdGhl ciBib290IHNlcnZpY2Ugb3IgcnVudGltZSBhZ2VudHMNCj4gPiA+Pj4+Pj4+Pj4gKw0KPiA+ID4+ Pj4+Pj4+PiArICBDb3B5cmlnaHQgKGMpIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzDQo+ID4gPj4+Pj4+Pj4+ICsgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4+Pj4+Pj4+PiArICBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4+Pj4+Pj4+PiAr DQo+ID4gPj4+Pj4+Pj4+ICsgIEBwYXIgUmV2aXNpb24gUmVmZXJlbmNlOg0KPiA+ID4+Pj4+Pj4+ PiArICBUaGlzIFBQSSBpcyBpbnRyb2R1Y2VkIGluIFBJIFZlcnNpb24gMS41Lg0KPiA+ID4+Pj4+ Pj4+PiArDQo+ID4gPj4+Pj4+Pj4+ICsqKi8NCj4gPiA+Pj4+Pj4+Pj4gKw0KPiA+ID4+Pj4+Pj4+ PiArI2lmbmRlZiBfTU1fQUNDRVNTX1BQSV9IXw0KPiA+ID4+Pj4+Pj4+PiArI2RlZmluZSBfTU1f QUNDRVNTX1BQSV9IXw0KPiA+ID4+Pj4+Pj4+PiArDQo+ID4gPj4+Pj4+Pj4+ICsjZGVmaW5lIEVG SV9QRUlfTU1fQUNDRVNTX1BQSV9HVUlEIFwNCj4gPiA+Pj4+Pj4+Pj4gKyAgeyAweDI2OGYzM2E5 LCAweGNjY2QsIDB4NDhiZSwgeyAweDg4LCAweDE3LCAweDg2LCAweDUsIDB4M2EsDQo+ID4gPj4+ Pj4+Pj4+ICsweGMzLCAweDJlLA0KPiA+ID4+Pj4+Pj4+PiAweGQ2IH19DQo+ID4gPj4+Pj4+Pj4+ ICsNCj4gPiA+Pj4+Pj4+Pj4gK3R5cGVkZWYgc3RydWN0IF9FRklfUEVJX01NX0FDQ0VTU19QUEkN Cj4gPiA+PiBFRklfUEVJX01NX0FDQ0VTU19QUEk7DQo+ID4gPj4+Pj4+Pj4+ICsNCj4gPiA+Pj4+ Pj4+Pj4gKy8qKg0KPiA+ID4+Pj4+Pj4+PiArICBPcGVucyB0aGUgTU1SQU0gYXJlYSB0byBiZSBh Y2Nlc3NpYmxlIGJ5IGEgUEVJTS4NCj4gPiA+Pj4+Pj4+Pj4gKw0KPiA+ID4+Pj4+Pj4+PiArICBU aGlzIGZ1bmN0aW9uICJvcGVucyIgTU1SQU0gc28gdGhhdCBpdCBpcyB2aXNpYmxlIHdoaWxlIG5v dA0KPiA+ID4+Pj4+Pj4+PiArIGluc2lkZSBvZg0KPiA+ID4+Pj4+Pj4gTU0uDQo+ID4gPj4+Pj4+ Pj4+IFRoZSBmdW5jdGlvbiBzaG91bGQNCj4gPiA+Pj4+Pj4+Pj4gKyAgcmV0dXJuIEVGSV9VTlNV UFBPUlRFRCBpZiB0aGUgaGFyZHdhcmUgZG9lcyBub3Qgc3VwcG9ydA0KPiA+ID4+Pj4+Pj4+PiAr IGhpZGluZyBvZg0KPiA+ID4+Pj4+Pj4+PiBNTVJBTS4gVGhlIGZ1bmN0aW9uDQo+ID4gPj4+Pj4+ Pj4+ICsgIHNob3VsZCByZXR1cm4gRUZJX0RFVklDRV9FUlJPUiBpZiB0aGUgTU1SQU0NCj4gPiBj b25maWd1cmF0aW9uDQo+ID4gPj4gaXMNCj4gPiA+Pj4+Pj4gbG9ja2VkLg0KPiA+ID4+Pj4+Pj4+ PiArDQo+ID4gPj4+Pj4+Pj4+ICsgIEBwYXJhbSAgUGVpU2VydmljZXMgICAgICAgICAgICBBbiBp bmRpcmVjdCBwb2ludGVyIHRvIHRoZSBQRUkNCj4gPiBTZXJ2aWNlcw0KPiA+ID4+Pj4+PiBUYWJs ZQ0KPiA+ID4+Pj4+Pj4+PiBwdWJsaXNoZWQgYnkgdGhlIFBFSSBGb3VuZGF0aW9uLg0KPiA+ID4+ Pj4+Pj4+PiArICBAcGFyYW0gIFRoaXMgICAgICAgICAgICAgICAgICAgVGhlIEVGSV9QRUlfTU1f QUNDRVNTX1BQSSBpbnN0YW5jZS4NCj4gPiA+Pj4+Pj4+Pj4gKyAgQHBhcmFtICBEZXNjcmlwdG9y SW5kZXggICAgICAgIFRoZSByZWdpb24gb2YgTU1SQU0gdG8gT3Blbi4NCj4gPiA+Pj4+Pj4+Pj4g Kw0KPiA+ID4+Pj4+Pj4+PiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgVGhlIG9w ZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4NCj4gPiA+Pj4+Pj4+Pj4gKyAgQHJldHZhbCBFRklfVU5T VVBQT1JURUQgICAgICAgIFRoZSBzeXN0ZW0gZG9lcyBub3Qgc3VwcG9ydA0KPiA+ID4+Pj4+IG9w ZW5pbmcNCj4gPiA+Pj4+Pj4+PiBhbmQNCj4gPiA+Pj4+Pj4+Pj4gY2xvc2luZyBvZiBNTVJBTS4N Cj4gPiA+Pj4+Pj4+Pj4gKyAgQHJldHZhbCBFRklfREVWSUNFX0VSUk9SICAgICAgIE1NUkFNIGNh bm5vdCBiZSBvcGVuZWQsDQo+ID4gPj4+Pj4gcGVyaGFwcw0KPiA+ID4+Pj4+Pj4+PiBiZWNhdXNl IGl0IGlzIGxvY2tlZC4NCj4gPiA+Pj4+Pj4+Pj4gKw0KPiA+ID4+Pj4+Pj4+PiArKiovDQo+ID4g Pj4+Pj4+Pj4+ICt0eXBlZGVmDQo+ID4gPj4+Pj4+Pj4+ICtFRklfU1RBVFVTDQo+ID4gPj4+Pj4+ Pj4+ICsoRUZJQVBJICpFRklfUEVJX01NX09QRU4pKA0KPiA+ID4+Pj4+Pj4+PiArICBJTiBFRklf UEVJX1NFUlZJQ0VTICAgICAgICAgICAgICAgICoqUGVpU2VydmljZXMsDQo+ID4gPj4+Pj4+Pj4+ ICsgIElOIEVGSV9QRUlfTU1fQUNDRVNTX1BQSSAgICAgICAgICAgKlRoaXMsDQo+ID4gPj4+Pj4+ Pj4+ICsgIElOIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRvckluZGV4 DQo+ID4gPj4+Pj4+Pj4+ICsgICk7DQo+ID4gPj4+Pj4+Pj4+ICsNCj4gPiA+Pj4+Pj4+Pj4gKy8q Kg0KPiA+ID4+Pj4+Pj4+PiArICBJbmhpYml0cyBhY2Nlc3MgdG8gdGhlIE1NUkFNLg0KPiA+ID4+ Pj4+Pj4+PiArDQo+ID4gPj4+Pj4+Pj4+ICsgIFRoaXMgZnVuY3Rpb24gImNsb3NlcyIgTU1SQU0g c28gdGhhdCBpdCBpcyBub3QgdmlzaWJsZSB3aGlsZQ0KPiA+ID4+Pj4+Pj4+PiArIG91dHNpZGUg b2YNCj4gPiA+Pj4+Pj4+PiBNTS4NCj4gPiA+Pj4+Pj4+Pj4gVGhlIGZ1bmN0aW9uIHNob3VsZA0K PiA+ID4+Pj4+Pj4+PiArICByZXR1cm4gRUZJX1VOU1VQUE9SVEVEIGlmIHRoZSBoYXJkd2FyZSBk b2VzIG5vdCBzdXBwb3J0DQo+ID4gPj4+Pj4+Pj4+ICsgaGlkaW5nIG9mDQo+ID4gPj4+Pj4+Pj4+ IE1NUkFNLg0KPiA+ID4+Pj4+Pj4+PiArDQo+ID4gPj4+Pj4+Pj4+ICsgIEBwYXJhbSAgUGVpU2Vy dmljZXMgICAgICAgICAgICBBbiBpbmRpcmVjdCBwb2ludGVyIHRvIHRoZSBQRUkNCj4gPiBTZXJ2 aWNlcw0KPiA+ID4+Pj4+PiBUYWJsZQ0KPiA+ID4+Pj4+Pj4+PiBwdWJsaXNoZWQgYnkgdGhlIFBF SSBGb3VuZGF0aW9uLg0KPiA+ID4+Pj4+Pj4+PiArICBAcGFyYW0gIFRoaXMgICAgICAgICAgICAg ICAgICAgVGhlIEVGSV9QRUlfTU1fQUNDRVNTX1BQSSBpbnN0YW5jZS4NCj4gPiA+Pj4+Pj4+Pj4g KyAgQHBhcmFtICBEZXNjcmlwdG9ySW5kZXggICAgICAgIFRoZSByZWdpb24gb2YgTU1SQU0gdG8g Q2xvc2UuDQo+ID4gPj4+Pj4+Pj4+ICsNCj4gPiA+Pj4+Pj4+Pj4gKyAgQHJldHZhbCBFRklfU1VD Q0VTUyAgICAgICAgICAgIFRoZSBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuDQo+ID4gPj4+Pj4+ Pj4+ICsgIEByZXR2YWwgRUZJX1VOU1VQUE9SVEVEICAgICAgICBUaGUgc3lzdGVtIGRvZXMgbm90 IHN1cHBvcnQNCj4gPiA+Pj4+PiBvcGVuaW5nDQo+ID4gPj4+Pj4+Pj4gYW5kDQo+ID4gPj4+Pj4+ Pj4+IGNsb3Npbmcgb2YgTU1SQU0uDQo+ID4gPj4+Pj4+Pj4+ICsgIEByZXR2YWwgRUZJX0RFVklD RV9FUlJPUiAgICAgICBNTVJBTSBjYW5ub3QgYmUgY2xvc2VkLg0KPiA+ID4+Pj4+Pj4+PiArDQo+ ID4gPj4+Pj4+Pj4+ICsqKi8NCj4gPiA+Pj4+Pj4+Pj4gK3R5cGVkZWYNCj4gPiA+Pj4+Pj4+Pj4g K0VGSV9TVEFUVVMNCj4gPiA+Pj4+Pj4+Pj4gKyhFRklBUEkgKkVGSV9QRUlfTU1fQ0xPU0UpKA0K PiA+ID4+Pj4+Pj4+PiArICBJTiBFRklfUEVJX1NFUlZJQ0VTICAgICAgICAgICAgICAgICoqUGVp U2VydmljZXMsDQo+ID4gPj4+Pj4+Pj4+ICsgIElOIEVGSV9QRUlfTU1fQUNDRVNTX1BQSSAgICAg ICAgICAgKlRoaXMsDQo+ID4gPj4+Pj4+Pj4+ICsgIElOIFVJTlROICAgICAgICAgICAgICAgICAg ICAgICAgICAgRGVzY3JpcHRvckluZGV4DQo+ID4gPj4+Pj4+Pj4+ICsgICk7DQo+ID4gPj4+Pj4+ Pj4+ICsNCj4gPiA+Pj4+Pj4+Pj4gKy8qKg0KPiA+ID4+Pj4+Pj4+PiArICBUaGlzIGZ1bmN0aW9u IHByb2hpYml0cyBhY2Nlc3MgdG8gdGhlIE1NUkFNIHJlZ2lvbi4gVGhpcw0KPiA+ID4+Pj4+Pj4+ PiArZnVuY3Rpb24gaXMNCj4gPiA+Pj4+Pj4+PiB1c3VhbGx5DQo+ID4gPj4+Pj4+Pj4+IGltcGxl bWVudGVkIHN1Y2gNCj4gPiA+Pj4+Pj4+Pj4gKyAgdGhhdCBpdCBpcyBhIHdyaXRlLW9uY2Ugb3Bl cmF0aW9uLg0KPiA+ID4+Pj4+Pj4+PiArDQo+ID4gPj4+Pj4+Pj4+ICsgIEBwYXJhbSAgUGVpU2Vy dmljZXMgICAgICAgICAgICBBbiBpbmRpcmVjdCBwb2ludGVyIHRvIHRoZSBQRUkNCj4gPiBTZXJ2 aWNlcw0KPiA+ID4+Pj4+PiBUYWJsZQ0KPiA+ID4+Pj4+Pj4+PiBwdWJsaXNoZWQgYnkgdGhlIFBF SSBGb3VuZGF0aW9uLg0KPiA+ID4+Pj4+Pj4+PiArICBAcGFyYW0gIFRoaXMgICAgICAgICAgICAg ICAgICAgVGhlIEVGSV9QRUlfTU1fQUNDRVNTX1BQSSBpbnN0YW5jZS4NCj4gPiA+Pj4+Pj4+Pj4g KyAgQHBhcmFtICBEZXNjcmlwdG9ySW5kZXggICAgICAgIFRoZSByZWdpb24gb2YgTU1SQU0gdG8g TG9jay4NCj4gPiA+Pj4+Pj4+Pj4gKw0KPiA+ID4+Pj4+Pj4+PiArICBAcmV0dmFsIEVGSV9TVUND RVNTICAgICAgICAgICAgVGhlIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4NCj4gPiA+Pj4+Pj4+ Pj4gKyAgQHJldHZhbCBFRklfVU5TVVBQT1JURUQgICAgICAgIFRoZSBzeXN0ZW0gZG9lcyBub3Qg c3VwcG9ydA0KPiA+ID4+Pj4+IG9wZW5pbmcNCj4gPiA+Pj4+Pj4+PiBhbmQNCj4gPiA+Pj4+Pj4+ Pj4gY2xvc2luZyBvZiBNTVJBTS4NCj4gPiA+Pj4+Pj4+Pj4gKw0KPiA+ID4+Pj4+Pj4+PiArKiov DQo+ID4gPj4+Pj4+Pj4+ICt0eXBlZGVmDQo+ID4gPj4+Pj4+Pj4+ICtFRklfU1RBVFVTDQo+ID4g Pj4+Pj4+Pj4+ICsoRUZJQVBJICpFRklfUEVJX01NX0xPQ0spKA0KPiA+ID4+Pj4+Pj4+PiArICBJ TiBFRklfUEVJX1NFUlZJQ0VTICAgICAgICAgICAgICAgICoqUGVpU2VydmljZXMsDQo+ID4gPj4+ Pj4+Pj4+ICsgIElOIEVGSV9QRUlfTU1fQUNDRVNTX1BQSSAgICAgICAgICAgKlRoaXMsDQo+ID4g Pj4+Pj4+Pj4+ICsgIElOIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRv ckluZGV4DQo+ID4gPj4+Pj4+Pj4+ICsgICk7DQo+ID4gPj4+Pj4+Pj4+ICsNCj4gPiA+Pj4+Pj4+ Pj4gKy8qKg0KPiA+ID4+Pj4+Pj4+PiArICBRdWVyaWVzIHRoZSBtZW1vcnkgY29udHJvbGxlciBm b3IgdGhlIHBvc3NpYmxlIHJlZ2lvbnMgdGhhdA0KPiA+ID4+Pj4+Pj4+PiArd2lsbCBzdXBwb3J0 DQo+ID4gPj4+Pj4+Pj4+IE1NUkFNLg0KPiA+ID4+Pj4+Pj4+PiArDQo+ID4gPj4+Pj4+Pj4+ICsg IFRoaXMgZnVuY3Rpb24gZGVzY3JpYmVzIHRoZSBNTVJBTSByZWdpb25zLg0KPiA+ID4+Pj4+Pj4+ PiArICBUaGlzIGRhdGEgc3RydWN0dXJlIGZvcm1zIHRoZSBjb250cmFjdCBiZXR3ZWVuIHRoZQ0K PiA+ID4+IE1NX0FDQ0VTUw0KPiA+ID4+Pj4+IGFuZA0KPiA+ID4+Pj4+Pj4+PiBNTV9JUEwgZHJp dmVycy4gVGhlcmUgaXMgYW4NCj4gPiA+Pj4+Pj4+Pj4gKyAgYW1iaWd1aXR5IHdoZW4gYW55IE1N UkFNIHJlZ2lvbiBpcyByZW1hcHBlZC4gRm9yDQo+ID4gZXhhbXBsZSwNCj4gPiA+PiBvbg0KPiA+ ID4+Pj4+Pj4gc29tZQ0KPiA+ID4+Pj4+Pj4+PiBjaGlwc2V0cywgc29tZSBNTVJBTQ0KPiA+ID4+ Pj4+Pj4+PiArICByZWdpb25zIGNhbiBiZSBpbml0aWFsaXplZCBhdCBvbmUgcGh5c2ljYWwgYWRk cmVzcyBidXQgaXMNCj4gPiA+Pj4+Pj4+Pj4gKyBsYXRlciBhY2Nlc3NlZCBhdA0KPiA+ID4+Pj4+ Pj4+PiBhbm90aGVyIHByb2Nlc3NvciBhZGRyZXNzLg0KPiA+ID4+Pj4+Pj4+PiArICBUaGVyZSBp cyBjdXJyZW50bHkgbm8gd2F5IGZvciB0aGUgTU0gSVBMIGRyaXZlciB0byBrbm93IHRoYXQNCj4g PiA+Pj4+Pj4+Pj4gKyBpdCBtdXN0IHVzZQ0KPiA+ID4+Pj4+Pj4+PiB0d28gZGlmZmVyZW50IGFk ZHJlc3Nlcw0KPiA+ID4+Pj4+Pj4+PiArICBkZXBlbmRpbmcgb24gd2hhdCBpdCBpcyB0cnlpbmcg dG8gZG8uIEFzIGEgcmVzdWx0LCBpbml0aWFsDQo+ID4gPj4+Pj4+Pj4+ICsgY29uZmlndXJhdGlv biBhbmQNCj4gPiA+Pj4+Pj4+Pj4gbG9hZGluZyBjYW4gdXNlIHRoZQ0KPiA+ID4+Pj4+Pj4+PiAr ICBwaHlzaWNhbCBhZGRyZXNzIFBoeXNpY2FsU3RhcnQgd2hpbGUgTU1SQU0gaXMgb3Blbi4NCj4g PiBIb3dldmVyLA0KPiA+ID4+Pj4+Pj4+PiArIG9uY2UNCj4gPiA+Pj4+Pj4+IHRoZQ0KPiA+ID4+ Pj4+Pj4+PiByZWdpb24gaGFzIGJlZW4NCj4gPiA+Pj4+Pj4+Pj4gKyAgY2xvc2VkIGFuZCBuZWVk cyB0byBiZSBhY2Nlc3NlZCBieSBhZ2VudHMgaW4gTU0sIHRoZQ0KPiA+ID4+Pj4+Pj4+PiArIENw dVN0YXJ0IGFkZHJlc3MNCj4gPiA+Pj4+Pj4+Pj4gbXVzdCBiZSB1c2VkLg0KPiA+ID4+Pj4+Pj4+ PiArICBUaGlzIFBQSSBwdWJsaXNoZXMgdGhlIGF2YWlsYWJsZSBtZW1vcnkgdGhhdCB0aGUgY2hp cHNldCBjYW4NCj4gPiA+Pj4+Pj4+Pj4gKyBzaHJvdWQgZm9yDQo+ID4gPj4+Pj4+Pj4gdGhlDQo+ ID4gPj4+Pj4+Pj4+IHVzZSBvZiBpbnN0YWxsaW5nIGNvZGUuDQo+ID4gPj4+Pj4+Pj4+ICsgIFRo ZXNlIHJlZ2lvbnMgc2VydmUgdGhlIGR1YWwgcHVycG9zZSBvZiBkZXNjcmliaW5nIHdoaWNoDQo+ ID4gPj4+Pj4+Pj4+ICsgcmVnaW9ucyBoYXZlDQo+ID4gPj4+Pj4+Pj4+IGJlZW4gb3BlbiwgY2xv c2VkLCBvciBsb2NrZWQuDQo+ID4gPj4+Pj4+Pj4+ICsgIEluIGFkZGl0aW9uLCB0aGVzZSByZWdp b25zIG1heSBpbmNsdWRlIG92ZXJsYXBwaW5nIG1lbW9yeQ0KPiA+ID4+Pj4+Pj4+PiArIHJhbmdl cywNCj4gPiA+Pj4+Pj4+Pj4gZGVwZW5kaW5nIG9uIHRoZSBjaGlwc2V0DQo+ID4gPj4+Pj4+Pj4+ ICsgIGltcGxlbWVudGF0aW9uLiBUaGUgbGF0dGVyIG1pZ2h0IGluY2x1ZGUgYSBjaGlwc2V0IHRo YXQNCj4gPiA+Pj4+Pj4+Pj4gKyBzdXBwb3J0cyBULVNFRywNCj4gPiA+Pj4+Pj4+Pj4gd2hlcmUg bWVtb3J5IG5lYXIgdGhlIHRvcA0KPiA+ID4+Pj4+Pj4+PiArICBvZiB0aGUgcGh5c2ljYWwgRFJB TSBjYW4gYmUgYWxsb2NhdGVkIGZvciBNTVJBTSB0b28uDQo+ID4gPj4+Pj4+Pj4+ICsgIFRoZSBr ZXkgdGhpbmcgdG8gbm90ZSBpcyB0aGF0IHRoZSByZWdpb25zIHRoYXQgYXJlIGRlc2NyaWJlZA0K PiA+ID4+Pj4+Pj4+PiArIGJ5IHRoZSBQUEkNCj4gPiA+Pj4+Pj4+IGFyZQ0KPiA+ID4+Pj4+Pj4+ IGENCj4gPiA+Pj4+Pj4+Pj4gc3Vic2V0IG9mIHRoZSBjYXBhYmlsaXRpZXMNCj4gPiA+Pj4+Pj4+ Pj4gKyAgb2YgdGhlIGhhcmR3YXJlLg0KPiA+ID4+Pj4+Pj4+PiArDQo+ID4gPj4+Pj4+Pj4+ICsg IEBwYXJhbSAgUGVpU2VydmljZXMgICAgICAgICAgICBBbiBpbmRpcmVjdCBwb2ludGVyIHRvIHRo ZSBQRUkNCj4gPiBTZXJ2aWNlcw0KPiA+ID4+Pj4+PiBUYWJsZQ0KPiA+ID4+Pj4+Pj4+PiBwdWJs aXNoZWQgYnkgdGhlIFBFSSBGb3VuZGF0aW9uLg0KPiA+ID4+Pj4+Pj4+PiArICBAcGFyYW0gIFRo aXMgICAgICAgICAgICAgICAgICAgVGhlIEVGSV9QRUlfTU1fQUNDRVNTX1BQSSBpbnN0YW5jZS4N Cj4gPiA+Pj4+Pj4+Pj4gKyAgQHBhcmFtICBNbXJhbU1hcFNpemUgICAgICAgICAgIEEgcG9pbnRl ciB0byB0aGUgc2l6ZSwgaW4gYnl0ZXMsDQo+ID4gb2YNCj4gPiA+Pj4+PiB0aGUNCj4gPiA+Pj4+ Pj4+Pj4gTW1yYW1NZW1vcnlNYXAgYnVmZmVyLiBPbiBpbnB1dCwgdGhpcyB2YWx1ZSBpcw0KPiA+ ID4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHNpemUgb2Yg dGhlIGJ1ZmZlciB0aGF0DQo+ID4gPj4+Pj4+Pj4+ICsgaXMgYWxsb2NhdGVkIGJ5IHRoZSBjYWxs ZXIuIE9uDQo+ID4gPj4+Pj4+Pj4+IG91dHB1dCwgaXQgaXMgdGhlIHNpemUgb2YgdGhlDQo+ID4g Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIgdGhhdCB3 YXMgcmV0dXJuZWQgYnkNCj4gPiA+Pj4+Pj4+Pj4gKyB0aGUgZmlybXdhcmUgaWYgdGhlIGJ1ZmZl cg0KPiA+ID4+Pj4+Pj4+IHdhcw0KPiA+ID4+Pj4+Pj4+PiBsYXJnZSBlbm91Z2gsIG9yLCBpZiB0 aGUNCj4gPiA+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZl ciB3YXMgdG9vIHNtYWxsLCB0aGUNCj4gPiA+Pj4+Pj4+Pj4gKyBzaXplIG9mIHRoZSBidWZmZXIg dGhhdCBpcw0KPiA+ID4+Pj4+Pj4+IG5lZWRlZCB0bw0KPiA+ID4+Pj4+Pj4+PiBjb250YWluIHRo ZSBtYXAuDQo+ID4gPj4+Pj4+Pj4+ICsgIEBwYXJhbSBNbXJhbU1hcCAgICAgICAgICAgICAgICBB IHBvaW50ZXIgdG8gdGhlIGJ1ZmZlciBpbiB3aGljaA0KPiA+ID4+Pj4+PiBmaXJtd2FyZQ0KPiA+ ID4+Pj4+Pj4+PiBwbGFjZXMgdGhlIGN1cnJlbnQgbWVtb3J5IG1hcC4gVGhlIG1hcCBpcw0KPiA+ ID4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW4gYXJyYXkgb2YN Cj4gPiA+Pj4+Pj4+Pj4gKyBFRklfTU1SQU1fREVTQ1JJUFRPUnMNCj4gPiA+Pj4+Pj4+Pj4gKw0K PiA+ID4+Pj4+Pj4+PiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgVGhlIGNoaXBz ZXQgc3VwcG9ydGVkIHRoZSBnaXZlbg0KPiA+ID4+Pj4+IHJlc291cmNlLg0KPiA+ID4+Pj4+Pj4+ PiArICBAcmV0dmFsIEVGSV9CVUZGRVJfVE9PX1NNQUxMICAgVGhlIE1tcmFtTWFwDQo+ID4gcGFy YW1ldGVyDQo+ID4gPj4+IHdhcw0KPiA+ID4+Pj4+PiB0b28NCj4gPiA+Pj4+Pj4+Pj4gc21hbGwu IFRoZSBjdXJyZW50DQo+ID4gPj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBidWZmZXIgc2l6ZSBuZWVkZWQgdG8gaG9sZA0KPiA+ID4+Pj4+Pj4+PiArIHRoZSBtZW1v cnkgbWFwIGlzDQo+ID4gPj4+Pj4+PiByZXR1cm5lZA0KPiA+ID4+Pj4+Pj4+IGluDQo+ID4gPj4+ Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNbXJhbU1hcFNpemUuDQo+ ID4gPj4+Pj4+Pj4+ICsNCj4gPiA+Pj4+Pj4+Pj4gKyoqLw0KPiA+ID4+Pj4+Pj4+PiArdHlwZWRl Zg0KPiA+ID4+Pj4+Pj4+PiArRUZJX1NUQVRVUw0KPiA+ID4+Pj4+Pj4+PiArKEVGSUFQSSAqRUZJ X1BFSV9NTV9DQVBBQklMSVRJRVMpKA0KPiA+ID4+Pj4+Pj4+PiArICBJTiBFRklfUEVJX1NFUlZJ Q0VTICAgICAgICAgICAgICAgICoqUGVpU2VydmljZXMsDQo+ID4gPj4+Pj4+Pj4+ICsgIElOIEVG SV9QRUlfTU1fQUNDRVNTX1BQSSAgICAgICAgICAgKlRoaXMsDQo+ID4gPj4+Pj4+Pj4+ICsgIElO IE9VVCBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgKk1tcmFtTWFwU2l6ZSwNCj4gPiA+Pj4+ Pj4+Pj4gKyAgSU4gT1VUIEVGSV9NTVJBTV9ERVNDUklQVE9SICAgICAgICAqTW1yYW1NYXANCj4g PiA+Pj4+Pj4+Pj4gKyAgKTsNCj4gPiA+Pj4+Pj4+Pj4gKw0KPiA+ID4+Pj4+Pj4+PiArLy8vDQo+ ID4gPj4+Pj4+Pj4+ICsvLy8gIEVGSSBNTSBBY2Nlc3MgUFBJIGlzIHVzZWQgdG8gY29udHJvbCB0 aGUgdmlzaWJpbGl0eSBvZg0KPiA+ID4+Pj4+Pj4+PiArdGhlIE1NUkFNIG9uDQo+ID4gPj4+Pj4+ Pj4gdGhlDQo+ID4gPj4+Pj4+Pj4+IHBsYXRmb3JtLg0KPiA+ID4+Pj4+Pj4+PiArLy8vICBJdCBh YnN0cmFjdHMgdGhlIGxvY2F0aW9uIGFuZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgTU1SQU0uDQo+ID4g Pj4+Pj4+Pj4+ICtUaGUgcGxhdGZvcm0NCj4gPiA+Pj4+Pj4+Pj4gc2hvdWxkIHJlcG9ydA0KPiA+ ID4+Pj4+Pj4+PiArLy8vICBhbGwgTU1SQU0gdmlhIEVGSV9QRUlfTU1fQUNDRVNTX1BQSS4gVGhl IGV4cGVjdGF0aW9uDQo+ID4gaXMNCj4gPiA+Pj4gdGhhdA0KPiA+ID4+Pj4+Pj4+PiArdGhlDQo+ ID4gPj4+Pj4+Pj4+IG5vcnRoIGJyaWRnZSBvcg0KPiA+ID4+Pj4+Pj4+PiArLy8vICBtZW1vcnkg Y29udHJvbGxlciB3b3VsZCBwdWJsaXNoIHRoaXMgUFBJLg0KPiA+ID4+Pj4+Pj4+PiArLy8vDQo+ ID4gPj4+Pj4+Pj4+ICtzdHJ1Y3QgX0VGSV9QRUlfTU1fQUNDRVNTX1BQSSB7DQo+ID4gPj4+Pj4+ Pj4+ICsgIEVGSV9QRUlfTU1fT1BFTiAgICAgICAgICBPcGVuOw0KPiA+ID4+Pj4+Pj4+PiArICBF RklfUEVJX01NX0NMT1NFICAgICAgICAgQ2xvc2U7DQo+ID4gPj4+Pj4+Pj4+ICsgIEVGSV9QRUlf TU1fTE9DSyAgICAgICAgICBMb2NrOw0KPiA+ID4+Pj4+Pj4+PiArICBFRklfUEVJX01NX0NBUEFC SUxJVElFUyAgR2V0Q2FwYWJpbGl0aWVzOw0KPiA+ID4+Pj4+Pj4+PiArICBCT09MRUFOICAgICAg ICAgICAgICAgICAgTG9ja1N0YXRlOw0KPiA+ID4+Pj4+Pj4+PiArICBCT09MRUFOICAgICAgICAg ICAgICAgICAgT3BlblN0YXRlOw0KPiA+ID4+Pj4+Pj4+PiArfTsNCj4gPiA+Pj4+Pj4+Pj4gKw0K PiA+ID4+Pj4+Pj4+PiArZXh0ZXJuIEVGSV9HVUlEIGdFZmlQZWlNbUFjY2Vzc1BwaUd1aWQ7DQo+ ID4gPj4+Pj4+Pj4+ICsNCj4gPiA+Pj4+Pj4+Pj4gKyNlbmRpZg0KPiA+ID4+Pj4+Pj4+PiBkaWZm IC0tZ2l0IGEvTWRlUGtnL0luY2x1ZGUvUHBpL01tQ29udHJvbC5oDQo+ID4gPj4+Pj4+Pj4+IGIv TWRlUGtnL0luY2x1ZGUvUHBpL01tQ29udHJvbC5oIG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4g aW5kZXgNCj4gPiA+Pj4+Pj4+Pj4gMDAwMDAwMDAwMC4uOTgzZWQ5NWNkNQ0KPiA+ID4+Pj4+Pj4+ PiAtLS0gL2Rldi9udWxsDQo+ID4gPj4+Pj4+Pj4+ICsrKyBiL01kZVBrZy9JbmNsdWRlL1BwaS9N bUNvbnRyb2wuaA0KPiA+ID4+Pj4+Pj4+PiBAQCAtMCwwICsxLDkwIEBADQo+ID4gPj4+Pj4+Pj4+ ICsvKiogQGZpbGUNCj4gPiA+Pj4+Pj4+Pj4gKyAgRUZJIE1NIENvbnRyb2wgUFBJIGRlZmluaXRp b24uDQo+ID4gPj4+Pj4+Pj4+ICsNCj4gPiA+Pj4+Pj4+Pj4gKyAgVGhpcyBQUEkgaXMgdXNlZCBp bml0aWF0ZSBzeW5jaHJvbm91cyBNTUkgYWN0aXZhdGlvbnMuIFRoaXMNCj4gPiA+Pj4+Pj4+Pj4g KyBQUEkgY291bGQgYmUNCj4gPiA+Pj4+Pj4+Pj4gcHVibGlzaGVkIGJ5IGEgcHJvY2Vzc29yDQo+ ID4gPj4+Pj4+Pj4+ICsgIGRyaXZlciB0byBhYnN0cmFjdCB0aGUgTU1JIElQSSBvciBhIGRyaXZl ciB3aGljaCBhYnN0cmFjdHMNCj4gPiA+Pj4+Pj4+Pj4gKyB0aGUgQVNJQyB0aGF0DQo+ID4gPj4+ Pj4+PiBpcw0KPiA+ID4+Pj4+Pj4+PiBzdXBwb3J0aW5nIHRoZSBBUE0gcG9ydC4NCj4gPiA+Pj4+ Pj4+Pj4gKyAgQmVjYXVzZSBvZiB0aGUgcG9zc2liaWxpdHkgb2YgcGVyZm9ybWluZyBNTUkgSVBJ DQo+ID4gPj4+Pj4+Pj4+ICsgdHJhbnNhY3Rpb25zLCB0aGUgYWJpbGl0eQ0KPiA+ID4+Pj4+Pj4+ IHRvDQo+ID4gPj4+Pj4+Pj4+IGdlbmVyYXRlIHRoaXMgZXZlbnQNCj4gPiA+Pj4+Pj4+Pj4gKyAg ZnJvbSBhIHBsYXRmb3JtIGNoaXBzZXQgYWdlbnQgaXMgYW4gb3B0aW9uYWwgY2FwYWJpbGl0eSBm b3INCj4gPiA+Pj4+Pj4+Pj4gKyBib3RoDQo+ID4gPj4+Pj4+Pj4+ICsgSUEtMzINCj4gPiA+Pj4+ Pj4+IGFuZA0KPiA+ID4+Pj4+Pj4+PiB4NjQtYmFzZWQgc3lzdGVtcy4NCj4gPiA+Pj4+Pj4+Pj4g Kw0KPiA+ID4+Pj4+Pj4+PiArICBDb3B5cmlnaHQgKGMpIDIwMTksIEludGVsIENvcnBvcmF0aW9u LiBBbGwgcmlnaHRzDQo+ID4gPj4+Pj4+Pj4+ICsgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4+Pj4+Pj4+ PiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4+ Pj4+Pj4+PiArDQo+ID4gPj4+Pj4+Pj4+ICsgIEBwYXIgUmV2aXNpb24gUmVmZXJlbmNlOg0KPiA+ ID4+Pj4+Pj4+PiArICBUaGlzIFBQSSBpcyBpbnRyb2R1Y2VkIGluIFBJIFZlcnNpb24gMS41Lg0K PiA+ID4+Pj4+Pj4+PiArDQo+ID4gPj4+Pj4+Pj4+ICsqKi8NCj4gPiA+Pj4+Pj4+Pj4gKw0KPiA+ ID4+Pj4+Pj4+PiArDQo+ID4gPj4+Pj4+Pj4+ICsjaWZuZGVmIF9NTV9DT05UUk9MX1BQSV9IXw0K PiA+ID4+Pj4+Pj4+PiArI2RlZmluZSBfTU1fQ09OVFJPTF9QUElfSF8NCj4gPiA+Pj4+Pj4+Pj4g Kw0KPiA+ID4+Pj4+Pj4+PiArI2RlZmluZSBFRklfUEVJX01NX0NPTlRST0xfUFBJX0dVSUQgXA0K PiA+ID4+Pj4+Pj4+PiArICB7IDB4NjFjNjg3MDIsIDB4NGQ3ZSwgMHg0ZjQzLCAweDhkLCAweGVm LCAweGE3LCAweDQzLCAweDUsDQo+ID4gPj4+Pj4+Pj4+ICsweGNlLCAweDc0LA0KPiA+ID4+Pj4+ Pj4+IDB4YzUgfQ0KPiA+ID4+Pj4+Pj4+PiArDQo+ID4gPj4+Pj4+Pj4+ICt0eXBlZGVmIHN0cnVj dCBfRUZJX1BFSV9NTV9DT05UUk9MX1BQSQ0KPiA+ID4+Pj4+PiBFRklfUEVJX01NX0NPTlRST0xf UFBJOw0KPiA+ID4+Pj4+Pj4+PiArDQo+ID4gPj4+Pj4+Pj4+ICsvKioNCj4gPiA+Pj4+Pj4+Pj4g KyAgSW52b2tlcyBQUEkgYWN0aXZhdGlvbiBmcm9tIHRoZSBQSSBQRUkgZW52aXJvbm1lbnQuDQo+ ID4gPj4+Pj4+Pj4+ICsNCj4gPiA+Pj4+Pj4+Pj4gKyAgQHBhcmFtICBQZWlTZXJ2aWNlcyAgICAg ICAgICAgQW4gaW5kaXJlY3QgcG9pbnRlciB0byB0aGUgUEVJDQo+ID4gU2VydmljZXMNCj4gPiA+ Pj4+PiBUYWJsZQ0KPiA+ID4+Pj4+Pj4+PiBwdWJsaXNoZWQgYnkgdGhlIFBFSSBGb3VuZGF0aW9u Lg0KPiA+ID4+Pj4+Pj4+PiArICBAcGFyYW0gIFRoaXMgICAgICAgICAgICAgICAgICBUaGUgUEVJ X01NX0NPTlRST0xfUFBJIGluc3RhbmNlLg0KPiA+ID4+Pj4+Pj4+PiArICBAcGFyYW0gIEFyZ3Vt ZW50QnVmZmVyICAgICAgICBUaGUgdmFsdWUgcGFzc2VkIHRvIHRoZSBNTUkNCj4gPiA+Pj4gaGFu ZGxlci4NCj4gPiA+Pj4+Pj4+IFRoaXMNCj4gPiA+Pj4+Pj4+Pj4gdmFsdWUgY29ycmVzcG9uZHMg dG8gdGhlDQo+ID4gPj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3 TW1pSW5wdXRWYWx1ZSBpbiB0aGUNCj4gPiA+Pj4+Pj4+Pj4gKyBSZWdpc3RlckNvbnRleHQgcGFy YW1ldGVyDQo+ID4gPj4+Pj4+PiBmb3INCj4gPiA+Pj4+Pj4+PiB0aGUNCj4gPiA+Pj4+Pj4+Pj4g UmVnaXN0ZXIoKQ0KPiA+ID4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmdW5jdGlvbiBpbiB0aGUNCj4gPiA+Pj4+Pj4+Pj4gKyBFRklfTU1fU1dfRElTUEFUQ0hfUFJP VE9DT0wNCj4gPiA+Pj4+Pj4+IGFuZA0KPiA+ID4+Pj4+Pj4+IGluDQo+ID4gPj4+Pj4+Pj4+IHRo ZSBDb250ZXh0IHBhcmFtZXRlcg0KPiA+ID4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbiB0aGUgY2FsbCB0byB0aGUgRGlzcGF0Y2hGdW5jdGlvbg0KPiA+ID4+Pj4+ Pj4+PiArICBAcGFyYW0gIEFyZ3VtZW50QnVmZmVyU2l6ZSAgICBUaGUgc2l6ZSBvZiB0aGUgZGF0 YSBwYXNzZWQgaW4NCj4gPiA+Pj4+Pj4+Pj4gQXJndW1lbnRCdWZmZXIgb3IgTlVMTCBpZiBBcmd1 bWVudEJ1ZmZlciBpcyBOVUxMLg0KPiA+ID4+Pj4+Pj4+PiArICBAcGFyYW0gIFBlcmlvZGljICAg ICAgICAgICAgICBBbiBvcHRpb25hbCBtZWNoYW5pc20gdG8gcGVyaW9kaWNhbGx5DQo+ID4gPj4+ Pj4gcmVwZWF0DQo+ID4gPj4+Pj4+Pj4+IGFjdGl2YXRpb24uDQo+ID4gPj4+Pj4+Pj4+ICsgIEBw YXJhbSAgQWN0aXZhdGlvbkludGVydmFsICAgIEFuIG9wdGlvbmFsIHBhcmFtZXRlciB0byByZXBl YXQNCj4gPiBhdA0KPiA+ID4+Pj4+IHRoaXMNCj4gPiA+Pj4+Pj4+PiBwZXJpb2QNCj4gPiA+Pj4+ Pj4+Pj4gb25lDQo+ID4gPj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRpbWUgb3IsIGlmIHRoZSBQZXJpb2RpYyBCb29sZWFuIGlzIHNldCwNCj4gPiBwZXJpb2RpY2Fs bHkuDQo+ID4gPj4+Pj4+Pj4+ICsNCj4gPiA+Pj4+Pj4+Pj4gKyAgQHJldHZhbCBFRklfU1VDQ0VT UyAgICAgICAgICAgVGhlIE1NSSBoYXMgYmVlbiBlbmdlbmRlcmVkLg0KPiA+ID4+Pj4+Pj4+PiAr ICBAcmV0dmFsIEVGSV9ERVZJQ0VfRVJST1IgICAgICBUaGUgdGltaW5nIGlzIHVuc3VwcG9ydGVk Lg0KPiA+ID4+Pj4+Pj4+PiArICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBUaGUgYWN0 aXZhdGlvbiBwZXJpb2QgaXMNCj4gPiA+Pj4+Pj4gdW5zdXBwb3J0ZWQuDQo+ID4gPj4+Pj4+Pj4+ ICsgIEByZXR2YWwgRUZJX05PVF9TVEFSVEVEICAgICAgIFRoZSBNTSBiYXNlIHNlcnZpY2UgaGFz IG5vdA0KPiA+ID4+IGJlZW4NCj4gPiA+Pj4+Pj4+PiBpbml0aWFsaXplZC4NCj4gPiA+Pj4+Pj4+ Pj4gKw0KPiA+ID4+Pj4+Pj4+PiArKiovDQo+ID4gPj4+Pj4+Pj4+ICt0eXBlZGVmDQo+ID4gPj4+ Pj4+Pj4+ICtFRklfU1RBVFVTDQo+ID4gPj4+Pj4+Pj4+ICsoRUZJQVBJICpFRklfUEVJX01NX0FD VElWQVRFKSAoDQo+ID4gPj4+Pj4+Pj4+ICsgIElOIEVGSV9QRUlfU0VSVklDRVMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICoqUGVpU2VydmljZXMsDQo+ID4gPj4+Pj4+Pj4+ICsgIElO IEVGSV9QRUlfTU1fQ09OVFJPTF9QUEkgICAgICAgICAgICAgICAgICAgICAgICAgICogVGhpcywN Cj4gPiA+Pj4+Pj4+Pj4gKyAgSU4gT1VUIElOVDggICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKkFyZ3VtZW50QnVmZmVyIE9QVElPTkFMLA0KPiA+ID4+Pj4+Pj4+PiArICBJ TiBPVVQgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqQXJndW1l bnRCdWZmZXJTaXplDQo+ID4gPj4+IE9QVElPTkFMLA0KPiA+ID4+Pj4+Pj4+PiArICBJTiBCT09M RUFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZXJpb2RpYyBPUFRJ T05BTCwNCj4gPiA+Pj4+Pj4+Pj4gKyAgSU4gVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQWN0aXZhdGlvbkludGVydmFsIE9QVElPTkFMDQo+ID4gPj4+Pj4+ Pj4+ICsgICk7DQo+ID4gPj4+Pj4+Pj4+ICsNCj4gPiA+Pj4+Pj4+Pj4gKy8qKg0KPiA+ID4+Pj4+ Pj4+PiArICBDbGVhcnMgYW55IHN5c3RlbSBzdGF0ZSB0aGF0IHdhcyBjcmVhdGVkIGluIHJlc3Bv bnNlIHRvIHRoZQ0KPiA+ID4+PiBUcmlnZ2VyKCkNCj4gPiA+Pj4+Pj4gY2FsbC4NCj4gPiA+Pj4+ Pj4+Pj4gKw0KPiA+ID4+Pj4+Pj4+PiArICBAcGFyYW0gIFBlaVNlcnZpY2VzICAgICAgICAgICBH ZW5lcmFsIHB1cnBvc2Ugc2VydmljZXMgYXZhaWxhYmxlDQo+ID4gdG8NCj4gPiA+Pj4+PiBldmVy eQ0KPiA+ID4+Pj4+Pj4+IFBFSU0uDQo+ID4gPj4+Pj4+Pj4+ICsgIEBwYXJhbSAgVGhpcyAgICAg ICAgICAgICAgICAgIFRoZSBQRUlfTU1fQ09OVFJPTF9QUEkgaW5zdGFuY2UuDQo+ID4gPj4+Pj4+ Pj4+ICsgIEBwYXJhbSAgUGVyaW9kaWMgICAgICAgICAgICAgIE9wdGlvbmFsIHBhcmFtZXRlciB0 byByZXBlYXQgYXQgdGhpcw0KPiA+ID4+Pj4+IHBlcmlvZA0KPiA+ID4+Pj4+Pj4gb25lDQo+ID4g Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUgb3IsIGlmIHRo ZSBQZXJpb2RpYyBCb29sZWFuIGlzIHNldCwNCj4gPiBwZXJpb2RpY2FsbHkuDQo+ID4gPj4+Pj4+ Pj4+ICsNCj4gPiA+Pj4+Pj4+Pj4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgVGhl IE1NSSBoYXMgYmVlbiBlbmdlbmRlcmVkLg0KPiA+ID4+Pj4+Pj4+PiArICBAcmV0dmFsIEVGSV9E RVZJQ0VfRVJST1IgICAgICBUaGUgc291cmNlIGNvdWxkIG5vdCBiZQ0KPiA+IGNsZWFyZWQuDQo+ ID4gPj4+Pj4+Pj4+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSIFRoZSBzZXJ2aWNl IGRpZCBub3Qgc3VwcG9ydA0KPiA+ID4+Pj4+Pj4+PiArIHRoZQ0KPiA+ID4+Pj4+Pj4+IFBlcmlv ZGljDQo+ID4gPj4+Pj4+Pj4+IGlucHV0IGFyZ3VtZW50Lg0KPiA+ID4+Pj4+Pj4+PiArDQo+ID4g Pj4+Pj4+Pj4+ICsqKi8NCj4gPiA+Pj4+Pj4+Pj4gK3R5cGVkZWYNCj4gPiA+Pj4+Pj4+Pj4gK0VG SV9TVEFUVVMNCj4gPiA+Pj4+Pj4+Pj4gKyhFRklBUEkgKlBFSV9NTV9ERUFDVElWQVRFKSAoDQo+ ID4gPj4+Pj4+Pj4+ICsgIElOIEVGSV9QRUlfU0VSVklDRVMgICAgICAgICAgICAgICAgICAgICAg KipQZWlTZXJ2aWNlcywNCj4gPiA+Pj4+Pj4+Pj4gKyAgSU4gRUZJX1BFSV9NTV9DT05UUk9MX1BQ SSAgICAgICAgICAgICAgICAqIFRoaXMsDQo+ID4gPj4+Pj4+Pj4+ICsgIElOIEJPT0xFQU4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVyaW9kaWMgT1BUSU9OQUwNCj4gPiA+Pj4+Pj4+ Pj4gKyAgKTsNCj4gPiA+Pj4+Pj4+Pj4gKw0KPiA+ID4+Pj4+Pj4+PiArLy8vDQo+ID4gPj4+Pj4+ Pj4+ICsvLy8gIFRoZSBFRklfUEVJX01NX0NPTlRST0xfUFBJIGlzIHByb2R1Y2VkIGJ5IGEgUEVJ TS4gSXQNCj4gPiA+Pj4+Pj4gcHJvdmlkZXMNCj4gPiA+Pj4+Pj4+IGFuDQo+ID4gPj4+Pj4+Pj4+ IGFic3RyYWN0aW9uIG9mIHRoZQ0KPiA+ID4+Pj4+Pj4+PiArLy8vICBwbGF0Zm9ybSBoYXJkd2Fy ZSB0aGF0IGdlbmVyYXRlcyBhbiBNTUkuIFRoZXJlIGFyZSBvZnRlbg0KPiA+ID4+Pj4+Pj4+PiAr SS9PIHBvcnRzDQo+ID4gPj4+Pj4+Pj4+IHRoYXQsIHdoZW4gYWNjZXNzZWQsIHdpbGwNCj4gPiA+ Pj4+Pj4+Pj4gKy8vLyAgZ2VuZXJhdGUgdGhlIE1NSS4gQWxzbywgdGhlIGhhcmR3YXJlIG9wdGlv bmFsbHkgc3VwcG9ydHMNCj4gPiA+Pj4+Pj4+Pj4gK3RoZQ0KPiA+ID4+Pj4+Pj4gcGVyaW9kaWMN Cj4gPiA+Pj4+Pj4+Pj4gZ2VuZXJhdGlvbiBvZiB0aGVzZSBzaWduYWxzLg0KPiA+ID4+Pj4+Pj4+ PiArLy8vDQo+ID4gPj4+Pj4+Pj4+ICtzdHJ1Y3QgX1BFSV9NTV9DT05UUk9MX1BQSSB7DQo+ID4g Pj4+Pj4+Pj4+ICsgIFBFSV9NTV9BQ1RJVkFURSAgICBUcmlnZ2VyOw0KPiA+ID4+Pj4+Pj4+PiAr ICBQRUlfTU1fREVBQ1RJVkFURSAgQ2xlYXI7DQo+ID4gPj4+Pj4+Pj4+ICt9Ow0KPiA+ID4+Pj4+ Pj4+PiArDQo+ID4gPj4+Pj4+Pj4+ICtleHRlcm4gRUZJX0dVSUQgZ0VmaVBlaU1tQ29udHJvbFBw aUd1aWQ7DQo+ID4gPj4+Pj4+Pj4+ICsNCj4gPiA+Pj4+Pj4+Pj4gKyNlbmRpZg0KPiA+ID4+Pj4+ Pj4+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL01kZVBrZy5kZWMgYi9NZGVQa2cvTWRlUGtnLmRlYyBp bmRleA0KPiA+ID4+Pj4+Pj4+PiBiMzgyZWZkNTc4Li4zNGUwZjM5Mzk1IDEwMDY0NA0KPiA+ID4+ Pj4+Pj4+PiAtLS0gYS9NZGVQa2cvTWRlUGtnLmRlYw0KPiA+ID4+Pj4+Pj4+PiArKysgYi9NZGVQ a2cvTWRlUGtnLmRlYw0KPiA+ID4+Pj4+Pj4+PiBAQCAtOTI1LDYgKzkyNSwxMiBAQA0KPiA+ID4+ Pj4+Pj4+PiAgICMjIEluY2x1ZGUvUHBpL1NlY0hvYkRhdGEuaA0KPiA+ID4+Pj4+Pj4+PiAgIGdF ZmlTZWNIb2JEYXRhUHBpR3VpZCA9IHsgMHgzZWJkYWYyMCwgMHg2NjY3LCAweDQwZDgsIHsweGI0 LA0KPiA+ID4+Pj4+Pj4+PiAweGVlLA0KPiA+ID4+Pj4+Pj4gMHhmNSwNCj4gPiA+Pj4+Pj4+Pj4g MHg5OSwgMHg5YSwgMHhjMSwgMHhiNywgMHgxZiB9IH0NCj4gPiA+Pj4+Pj4+Pj4NCj4gPiA+Pj4+ Pj4+Pj4gKyAgIyMgSW5jbHVkZS9QcGkvTW1BY2Nlc3MuaA0KPiA+ID4+Pj4+Pj4+PiArICBnRWZp UGVpTW1BY2Nlc3NQcGlHdWlkICAgICAgICAgID0gIHsgMHgyNjhmMzNhOSwgMHhjY2NkLCAweDQ4 YmUsDQo+ID4gPj4+Pj4geyAweDg4LA0KPiA+ID4+Pj4+Pj4+IDB4MTcsDQo+ID4gPj4+Pj4+Pj4+ IDB4ODYsIDB4NSwgMHgzYSwgMHhjMywgMHgyZSwgMHhkNiB9fQ0KPiA+ID4+Pj4+Pj4+PiArDQo+ ID4gPj4+Pj4+Pj4+ICsgICMjIEluY2x1ZGUvUHBpL01tQ29udHJvbC5oDQo+ID4gPj4+Pj4+Pj4+ ICsgIGdFZmlQZWlNbUNvbnRyb2xQcGlHdWlkICAgICAgICAgPSAgeyAweDYxYzY4NzAyLCAweDRk N2UsIDB4NGY0MywNCj4gPiA+Pj4+PiB7IDB4OGQsDQo+ID4gPj4+Pj4+Pj4gMHhlZiwNCj4gPiA+ Pj4+Pj4+Pj4gMHhhNywgMHg0MywgMHg1LCAweGNlLCAweDc0LCAweGM1IH19DQo+ID4gPj4+Pj4+ Pj4+ICsNCj4gPiA+Pj4+Pj4+Pj4gICAjDQo+ID4gPj4+Pj4+Pj4+ICAgIyBQUElzIGRlZmluZWQg aW4gUEkgMS43Lg0KPiA+ID4+Pj4+Pj4+PiAgICMNCj4gPiA+Pj4+Pj4+Pj4gLS0NCj4gPiA+Pj4+ Pj4+Pj4gMi4xNi4yLndpbmRvd3MuMQ0KPiA+ID4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+Pg0KPiA+ ID4+Pj4+Pj4+Pg0KPiA+ID4+Pj4NCj4gPiA+Pj4+DQo+ID4gPj4+Pg0KPiA+ID4+Pj4NCj4gPiA+ Pj4NCj4gPiA+Pj4NCj4gPiA+Pj4NCj4gPiA+DQo+ID4NCj4gPg0KPiA+IA0KDQo=