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.65, mailfrom: marc.w.chen@intel.com) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by groups.io with SMTP; Fri, 09 Aug 2019 20:32:56 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Aug 2019 20:32:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,367,1559545200"; d="scan'208";a="199580609" Received: from kmsmsx152.gar.corp.intel.com ([172.21.73.87]) by fmsmga004.fm.intel.com with ESMTP; 09 Aug 2019 20:32:53 -0700 Received: from pgsmsx108.gar.corp.intel.com ([169.254.8.190]) by KMSMSX152.gar.corp.intel.com ([169.254.11.13]) with mapi id 14.03.0439.000; Sat, 10 Aug 2019 11:32:52 +0800 From: "Marc W Chen" To: "devel@edk2.groups.io" , "lersek@redhat.com" , "Ni, Ray" , "Gao, Liming" 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+GtoEOJCyfEeiP4XpSc+qX6bl/g2wgAABaiCAAAEfIP//jrCAgACIAdCAAIb4AIAHP2sA//+OjYCAAfdxAIAEaMSQ Date: Sat, 10 Aug 2019 03:32:52 +0000 Message-ID: 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: <324c388e-b964-f2c9-3719-e47293649351@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYzJkODczMjMtNzQ1ZS00Nzg0LWI2ZmItNjkwMGUzZGU0YTg0IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiK2hZaXQxdmdvTUxmMmRWWVVwXC9oa2tHZWs1T2FsdWJ4TE5qMjFvQ1RmcnQ4RW1SN2pwWFYzRlI0S3dNaHh6YWwifQ== x-originating-ip: [172.30.20.205] MIME-Version: 1.0 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGltaW5nDQoNClNpbmNlIHRoZSBTbW1BY2Nlc3MuaCBvZiBNZGVNb2R1bGVQa2cgcmVtb3Zh bCBpcyBzdGlsbCB1bmRlciBkaXNjdXNzaW9uLCBjYW4gd2UgcHVzaCB0aGUgTW1BY2Nlc3MuaCBh bmQgTW1Db250cm9sLmggdG8gTWRlUGtnIGZpcnN0PyBJIGhhdmUgb3RoZXIgdGFza3MgcGVuZGlu ZyBieSB0aGlzLg0KV2UgY2FuIGtlZXAgZGlzY3Vzc2luZyB0aGUgU21tQWNjZXNzIGFmdGVyIHB1 c2ggdGhlIGNvZGUuDQoNClRoYW5rcywNCk1hcmMNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+ IE9uIEJlaGFsZiBPZiBMYXN6bG8NCj4gRXJzZWsNCj4gU2VudDogVGh1cnNkYXksIEF1Z3VzdCA4 LCAyMDE5IDEyOjExIEFNDQo+IFRvOiBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsgQ2hlbiwg TWFyYyBXIDxtYXJjLncuY2hlbkBpbnRlbC5jb20+Ow0KPiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsg R2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPiBDYzogS2lubmV5LCBNaWNoYWVs IEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2 ZWxdIFtQQVRDSF0gTWRlUGtnOiBBZGQgTW1BY2Nlc3MgYW5kIE1tQ29udHJvbA0KPiBkZWZpbml0 aW9uLg0KPiANCj4gT24gMDgvMDYvMTkgMTI6MDgsIE5pLCBSYXkgd3JvdGU6DQo+ID4gTGFzemxv LA0KPiA+IERvIHlvdSB3YW50IHRvIGF2b2lkIHRvdWNoaW5nIHRoZSBPdm1mUGtnIGR1ZSB0aGUg ZmlsZSByZW1vdmFsIGluDQo+IE1kZU1vZHVsZVBrZz8NCj4gDQo+IE15IG1haW4gcHJvYmxlbSB3 aXRoIHRoaXMgKnNwZWNpZmljKiB1cGRhdGUgcHJvcG9zYWwgaXMgdGhhdCB0aGUNCj4gaWRlbnRp ZmllcnMgKHR5cGUgbmFtZXMgYW5kIHN1Y2gpIHRoYXQgd291bGQgYmUgc3ViamVjdCB0byByZW1v dmFsIHdlcmUNCj4gcHVibGljbHkgc3BlY2lmaWVkIGluIGVhcmxpZXIgUEkgc3BlYyByZWxlYXNl cy4NCj4gDQo+IEkgZG9uJ3Qgc3VnZ2VzdCB0aGF0IHdlIG1haW50YWluIHR3byBwYXJhbGxlbCBz ZXRzIG9mIHR5cGVkZWZzIGFuZCBzdWNoDQo+IGluIGVkazIuIEl0J3MgZmluZSB0byBrZWVwIHRo ZSBuZXcgIk1NIiBub21lbmNsYXR1cmUgdGhlIG1haW4gb25lLiBCdXQNCj4gd2Ugc2hvdWxkIGtl ZXAgdGhlICJTTU0iIHNldCBvZiB0ZXJtcyB0b28sIGFzIGEgdGhpbiB3cmFwcGVyLCBpZiB0aGF0 J3MNCj4gdGVjaG5pY2FsbHkgZmVhc2libGUuDQo+IA0KPiBJZiB3ZSByZW1vdmUgIlNNTSIsIHRo YXQgd2lsbCBub3Qgb25seSBhZmZlY3QgT3ZtZlBrZyB1bnBsZWFzYW50bHksIGJ1dA0KPiBhIGJ1 bmNoIG9mIG90aGVyLCBvdXQtb2YtdHJlZSBjb2RlLiBBbmQgdGhlIHJlYXNvbiBJIHN1ZGRlbmx5 IGNhcmUgYWJvdXQNCj4gb3V0LW9mLXRyZWUgY29kZSBpcyB0aGF0IHN1Y2ggY29kZSB3YXMgd3Jp dHRlbiBhZ2FpbnN0IGEgcHVibGljIGluZHVzdHJ5DQo+IHNwZWMgKD0gZWFybGllciB2ZXJzaW9u cyBvZiB0aGUgUEkgc3BlYykuDQo+IA0KPiBJIGRvbid0IHRoaW5rIHRoYXQgdGhlIHNpbXBsaWNp dHkgdGhhdCB3b3VsZCBjb21lIGZyb20gcmVtb3ZpbmcgIlNNTSINCj4gYWx0b2dldGhlciwgaXMg d2VsbC1iYWxhbmNlZCBhZ2FpbnN0IHRoZSBwYWluIHRoYXQgaXQgd291bGQgY2F1c2UgZm9yDQo+ IHBsYXRmb3Jtcy4NCj4gDQo+IEVhcmxpZXIgdGhpcyB3YXMgc29sdmVkIGluIHRoZSBmb2xsb3dp bmcgY29tbWl0czoNCj4gLSAwN2M2YTQ3ZTcwYmEgKCJNZGVQa2c6IEFkZCBuZXcgZGVmaW5pdGlv bnMgZm9yIE1hbmFnZW1lbnQgTW9kZS4iLA0KPiAyMDE3LTA4LTI5KQ0KPiAtIDJmMjA4ZTU5ZTRi OSAoIk1kZVBrZzogUmVmZXJlbmNlIG5ldyBkZWZpbml0aW9ucyBmb3IgTWFuYWdlbWVudA0KPiBN b2RlLiIsIDIwMTctMDgtMjkpDQo+IA0KPiBUaGFua3MNCj4gTGFzemxvDQo+IA0KPiA+IEkgcHJl ZmVyIHRvIHJlbW92ZSB0aGUgZmlsZXMgaW4gTWRlTW9kdWxlUGtnIHRvIGF2b2lkIGZ1dHVyZSBj b25mdXNpb24uDQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gUmF5DQo+ID4NCj4gPj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogQ2hlbiwgTWFyYyBXDQo+ID4+IFNlbnQ6IFR1 ZXNkYXksIEF1Z3VzdCA2LCAyMDE5IDQ6NTcgUE0NCj4gPj4gVG86IGRldmVsQGVkazIuZ3JvdXBz LmlvOyBsZXJzZWtAcmVkaGF0LmNvbTsgTmksIFJheQ0KPiA8cmF5Lm5pQGludGVsLmNvbT47DQo+ ID4+IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gPj4gQ2M6IEtpbm5leSwg TWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPj4gU3ViamVjdDogUkU6 IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZVBrZzogQWRkIE1tQWNjZXNzIGFuZA0KPiBNbUNvbnRy b2wNCj4gPj4gZGVmaW5pdGlvbi4NCj4gPj4NCj4gPj4gSGkgTGltaW5nIGFuZCBSYXkNCj4gPj4N Cj4gPj4gRG8geW91IGFsc28gYWdyZWU/DQo+ID4+DQo+ID4+IFRoYW5rcywNCj4gPj4gTWFyYw0K PiA+Pg0KPiA+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+IEZyb206IGRldmVs QGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mDQo+IExh c3psbw0KPiA+Pj4gRXJzZWsNCj4gPj4+IFNlbnQ6IEZyaWRheSwgQXVndXN0IDIsIDIwMTkgMTA6 MTQgQU0NCj4gPj4+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgQ2hlbiwgTWFyYyBXIDxtYXJj LncuY2hlbkBpbnRlbC5jb20+OyBOaSwNCj4gPj4+IFJheSA8cmF5Lm5pQGludGVsLmNvbT47IEdh bywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gPj4+IENjOiBLaW5uZXksIE1pY2hh ZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4+PiBTdWJqZWN0OiBSZTogW2Vk azItZGV2ZWxdIFtQQVRDSF0gTWRlUGtnOiBBZGQgTW1BY2Nlc3MgYW5kDQo+ID4+IE1tQ29udHJv bA0KPiA+Pj4gZGVmaW5pdGlvbi4NCj4gPj4+DQo+ID4+PiBPbiAwOC8wMS8xOSAxMjoxNSwgTWFy YyBXIENoZW4gd3JvdGU6DQo+ID4+Pj4gWWVzLCBteSBwdXJwb3NlIGlzIHRvIGF2b2lkIHBsYXRm b3JtIGNvZGUgdXBkYXRlIGlmIHRoZSBwYWNrYWdlIGlzDQo+ID4+Pj4gYWxsb3dlZA0KPiA+Pj4g dG8gdXNlIE1kZU1vZHVsZVBrZyBsaWtlIE92bWZQa2cuDQo+ID4+Pj4gRm9yIHRob3NlIHBhY2th Z2VzIHRoYXQgY2Fubm90IGRlcGVuZCBvbiBNZGVNb2R1bGVQa2cgbXVzdA0KPiBjaGFuZ2UNCj4g Pj4gdG8NCj4gPj4+IHVzZSBuZXcgZGVmaW5pdGlvbi4NCj4gPj4+DQo+ID4+PiBBZ3JlZWQuDQo+ ID4+Pg0KPiA+Pj4gVGhhbmtzIQ0KPiA+Pj4gTGFzemxvDQo+ID4+Pg0KPiA+Pj4+PiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+PiBGcm9tOiBOaSwgUmF5DQo+ID4+Pj4+IFNlbnQ6 IFRodXJzZGF5LCBBdWd1c3QgMSwgMjAxOSA2OjA0IFBNDQo+ID4+Pj4+IFRvOiBDaGVuLCBNYXJj IFcgPG1hcmMudy5jaGVuQGludGVsLmNvbT47IEdhbywgTGltaW5nDQo+ID4+Pj4+IDxsaW1pbmcu Z2FvQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4+Pj4+IENjOiBLaW5uZXks IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4+Pj4+IFN1YmplY3Q6 IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBNZGVQa2c6IEFkZCBNbUFjY2VzcyBhbmQNCj4gPj4+ IE1tQ29udHJvbA0KPiA+Pj4+PiBkZWZpbml0aW9uLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBNYXJjLA0K PiA+Pj4+PiBJcyB0aGUgcHVycG9zZSB0byBhdm9pZCBwbGF0Zm9ybSBjb2RlIHVwZGF0ZSB3aXRo IHRoZSB3cmFwcGVyDQo+ID4+Pj4+IGhlYWRlcg0KPiA+Pj4gZmlsZSBpbg0KPiA+Pj4+PiBNZGVN b2R1bGVQa2c/DQo+ID4+Pj4+IENlcnRhaW4gcGxhdGZvcm1zIHRoZXkgbWF5IHJlcXVpcmUgdG8g bm90IGRlcGVuZCBvbiBNZGVNb2R1bGVQa2cNCj4gPj4+Pj4gYnV0IGp1c3QgZGVwZW5kIG9uIE1k ZVBrZy4NCj4gPj4+Pj4gSGF2aW5nIFNtbUFjY2Vzcy5oIGluIE1kZU1vZHVsZVBrZyBkb2Vzbid0 IGhlbHAuDQo+ID4+Pj4+DQo+ID4+Pj4+IEl0IGFsc28gYnJpbmcgY29uZnVzaW5nLg0KPiA+Pj4+ Pg0KPiA+Pj4+PiBUaGFua3MsDQo+ID4+Pj4+IFJheQ0KPiA+Pj4+Pg0KPiA+Pj4+Pj4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+Pj4+IEZyb206IENoZW4sIE1hcmMgVw0KPiA+Pj4+ Pj4gU2VudDogVGh1cnNkYXksIEF1Z3VzdCAxLCAyMDE5IDQ6NTMgUE0NCj4gPj4+Pj4+IFRvOiBH YW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0K PiA+Pj4+Pj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT47IE5pLCBSYXkNCj4gPj4+Pj4+IDxyYXkubmlAaW50ZWwuY29tPg0KPiA+Pj4+Pj4gU3ViamVj dDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZVBrZzogQWRkIE1tQWNjZXNzIGFuZA0KPiA+ Pj4gTW1Db250cm9sDQo+ID4+Pj4+PiBkZWZpbml0aW9uLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEhp IExpbWluZw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEFub3RoZXIgdGhvdWdodCwgZG8geW91IHRoaW5r IGl0IGlzIG9rIHRvIGtlZXAgU21tQWNjZXNzLmggaW4NCj4gPj4+Pj4+IE1kZU1vZHVsZVBrZz8g V2UgY2FuIHVzZSAjZGVmaW5lIGFuZCB0eXBlZGVmIHRvIGNvbnZlcnQNCj4gPj4gTW1BY2Nlc3MN Cj4gPj4+IHRvDQo+ID4+Pj4+PiBTbW1BY2Nlc3MsIGp1c3QgbGlrZSBjdXJyZW50IFNtbUFjY2Vz cyBQcm90b2NvbCBpbiBNZGVQa2cuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gVGhhbmtzLA0KPiA+Pj4+ Pj4gTWFyYw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+Pj4+Pj4+IEZyb206IENoZW4sIE1hcmMgVw0KPiA+Pj4+Pj4+IFNlbnQ6IFRodXJzZGF5LCBB dWd1c3QgMSwgMjAxOSA0OjQ4IFBNDQo+ID4+Pj4+Pj4gVG86IEdhbywgTGltaW5nIDxsaW1pbmcu Z2FvQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4+Pj4+Pj4gQ2M6IEtpbm5l eSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IE5pLCBSYXkNCj4gPj4+ Pj4+PiA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPj4+Pj4+PiBTdWJqZWN0OiBSRTogW2VkazItZGV2 ZWxdIFtQQVRDSF0gTWRlUGtnOiBBZGQgTW1BY2Nlc3MgYW5kDQo+ID4+Pj4+PiBNbUNvbnRyb2wN Cj4gPj4+Pj4+PiBkZWZpbml0aW9uLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gSGkgTGltaW5nDQo+ ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBTaW5jZSB0aGVyZSBhcmUgbXVsdGlwbGUgcGFja2FnZXMgYXJl IHN0aWxsIHVzaW5nIFNtbUFjY2Vzcy5oLCB3ZQ0KPiA+Pj4+Pj4+IG5lZWQgdG8gY2hhbmdlIGFs bCBwYWNrYWdlcyB0byB1c2UgTW1BY2Nlc3MuaCBpbnN0ZWFkIG9mDQo+ID4+Pj4+Pj4gU21tQWNj ZXNzLmggZmlyc3QsIHRoZW4gY2xlYW4gdXAgU21tQWNjZXNzLmggZnJvbQ0KPiBNZGVNb2R1bGVQ a2cNCj4gPj4gd2lsbCBiZSB0aGUgbGFzdCBzdGVwLg0KPiA+Pj4+Pj4+IEJlbG93IGFyZSB0aGUg cGFja2FnZXMgdGhhdCBoYXMgImluY2x1ZGUgPFBwaS9TbW1BY2Nlc3MuaD4iIGZvcg0KPiA+Pj4+ Pj4+IHlvdXIgcmVmZXJlbmNlLg0KPiA+Pj4+Pj4+ICoJRWRrMiByZXBvOg0KPiA+Pj4+Pj4+IG8J TWRlTW9kdWxlUGtnDQo+ID4+Pj4+Pj4gbwlPdm1mUGtnDQo+ID4+Pj4+Pj4gbwlVZWZpQ3B1UGtn DQo+ID4+Pj4+Pj4gKglFZGsyUGxhdGZvcm0gcmVwbzoNCj4gPj4+Pj4+PiBvCU1pblBsYXRmb3Jt UGtnDQo+ID4+Pj4+Pj4gbwlRdWFya1NvY1BrZw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gVGhhbmtz LA0KPiA+Pj4+Pj4+IE1hcmMNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4+PiBGcm9tOiBHYW8sIExpbWluZw0KPiA+Pj4+Pj4+PiBTZW50 OiBUaHVyc2RheSwgQXVndXN0IDEsIDIwMTkgNDo0MiBQTQ0KPiA+Pj4+Pj4+PiBUbzogZGV2ZWxA ZWRrMi5ncm91cHMuaW87IENoZW4sIE1hcmMgVw0KPiA8bWFyYy53LmNoZW5AaW50ZWwuY29tPg0K PiA+Pj4+Pj4+PiBDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwu Y29tPjsgTmksIFJheQ0KPiA+Pj4+Pj4+PiA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPj4+Pj4+Pj4g U3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZVBrZzogQWRkIE1tQWNjZXNzIGFu ZA0KPiA+Pj4+Pj4gTW1Db250cm9sDQo+ID4+Pj4+Pj4+IGRlZmluaXRpb24uDQo+ID4+Pj4+Pj4+ DQo+ID4+Pj4+Pj4+IE1hcmM6DQo+ID4+Pj4+Pj4+ICAgVGhlIGNoYW5nZSBpcyBnb29kLiBSZXZp ZXdlZC1ieTogTGltaW5nIEdhbw0KPiA+Pj4gPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPiA+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+PiAgIEJlc2lkZXMsIEkgc2VlIEJaIGFsc28gbWVudGlvbiB0byByZW1v dmUgdGhlIG9uZSBpbg0KPiA+PiBNZGVNb2R1bGVQa2cuDQo+ID4+Pj4+Pj4+IEhhdmUgeW91IHRo ZSBmb2xsb3dpbmcgcGF0Y2hlcyBmb3IgdGhlIGNoYW5nZSBpbiBNZGVNb2R1bGVQa2c/DQo+ID4+ Pj4+Pj4+DQo+ID4+Pj4+Pj4+IFRoYW5rcw0KPiA+Pj4+Pj4+PiBMaW1pbmcNCj4gPj4+Pj4+Pj4+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+Pj4+PiBGcm9tOiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbyBbbWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvXSBPbg0KPiA+Pj4+PiBCZWhh bGYNCj4gPj4+Pj4+Pj4+IE9mIE1hcmMgVyBDaGVuDQo+ID4+Pj4+Pj4+PiBTZW50OiBNb25kYXks IEp1bHkgMjksIDIwMTkgMTI6MjYgUE0NCj4gPj4+Pj4+Pj4+IFRvOiBkZXZlbEBlZGsyLmdyb3Vw cy5pbw0KPiA+Pj4+Pj4+Pj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5 QGludGVsLmNvbT47IEdhbywNCj4gTGltaW5nDQo+ID4+Pj4+Pj4+PiA8bGltaW5nLmdhb0BpbnRl bC5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPg0KPiA+Pj4+Pj4+Pj4gU3ViamVjdDog W2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlUGtnOiBBZGQgTW1BY2Nlc3MgYW5kDQo+ID4+Pj4+IE1t Q29udHJvbA0KPiA+Pj4+Pj4+Pj4gZGVmaW5pdGlvbi4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ PiBFRkkgTW1BY2Nlc3MgYW5kIE1tQ29udHJvbCBQUElzIGFyZSBkZWZpbmVkIGluIHRoZSBQSSAx LjUNCj4gPj4+Pj4+IHNwZWNpZmljYXRpb24uDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gQ2M6 IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+Pj4+Pj4+ Pj4gQ2M6IExpbWluZyBHYW8gPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPiA+Pj4+Pj4+Pj4gQ2M6 IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPj4+Pj4+Pj4+IFJlZjogaHR0cHM6Ly9idWd6 aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIzDQo+ID4+Pj4+Pj4+PiBTaWdu ZWQtb2ZmLWJ5OiBNYXJjIFcgQ2hlbiA8bWFyYy53LmNoZW5AaW50ZWwuY29tPg0KPiA+Pj4+Pj4+ Pj4gLS0tDQo+ID4+Pj4+Pj4+PiBNZGVQa2cvSW5jbHVkZS9QcGkvTW1BY2Nlc3MuaCAgfCAxNTUN Cj4gPj4+Pj4+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ ID4+Pj4+Pj4+PiBNZGVQa2cvSW5jbHVkZS9QcGkvTW1Db250cm9sLmggfCAgOTANCj4gPj4+Pj4+ ICsrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+Pj4+Pj4+Pj4gTWRlUGtnL01kZVBrZy5kZWMg ICAgICAgICAgICAgIHwgICA2ICsrDQo+ID4+Pj4+Pj4+PiAzIGZpbGVzIGNoYW5nZWQsIDI1MSBp bnNlcnRpb25zKCspIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+Pj4+Pj4+Pj4gTWRlUGtnL0luY2x1 ZGUvUHBpL01tQWNjZXNzLmggY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4+Pj4+Pj4+PiBNZGVQa2cv SW5jbHVkZS9QcGkvTW1Db250cm9sLmgNCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBkaWZmIC0t Z2l0IGEvTWRlUGtnL0luY2x1ZGUvUHBpL01tQWNjZXNzLmgNCj4gPj4+Pj4+Pj4+IGIvTWRlUGtn L0luY2x1ZGUvUHBpL01tQWNjZXNzLmggbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXgNCj4g Pj4+Pj4+Pj4+IDAwMDAwMDAwMDAuLjYzNmU3Mjg4YTANCj4gPj4+Pj4+Pj4+IC0tLSAvZGV2L251 bGwNCj4gPj4+Pj4+Pj4+ICsrKyBiL01kZVBrZy9JbmNsdWRlL1BwaS9NbUFjY2Vzcy5oDQo+ID4+ Pj4+Pj4+PiBAQCAtMCwwICsxLDE1NSBAQA0KPiA+Pj4+Pj4+Pj4gKy8qKiBAZmlsZQ0KPiA+Pj4+ Pj4+Pj4gKyAgRUZJIE1NIEFjY2VzcyBQUEkgZGVmaW5pdGlvbi4NCj4gPj4+Pj4+Pj4+ICsNCj4g Pj4+Pj4+Pj4+ICsgIFRoaXMgUFBJIGlzIHVzZWQgdG8gY29udHJvbCB0aGUgdmlzaWJpbGl0eSBv ZiB0aGUgTU1SQU0gb24NCj4gPj4+Pj4+Pj4+ICsgdGhlDQo+ID4+Pj4+PiBwbGF0Zm9ybS4NCj4g Pj4+Pj4+Pj4+ICsgIFRoZSBFRklfUEVJX01NX0FDQ0VTU19QUEkgYWJzdHJhY3RzIHRoZSBsb2Nh dGlvbiBhbmQNCj4gPj4+Pj4+Pj4+ICsgY2hhcmFjdGVyaXN0aWNzDQo+ID4+Pj4+Pj4gb2YNCj4g Pj4+Pj4+Pj4+IE1NUkFNLiBUaGUNCj4gPj4+Pj4+Pj4+ICsgIHByaW5jaXBhbCBmdW5jdGlvbmFs aXR5IGZvdW5kIGluIHRoZSBtZW1vcnkgY29udHJvbGxlcg0KPiA+Pj4+Pj4+Pj4gKyBpbmNsdWRl cyB0aGUNCj4gPj4+Pj4+Pj4gZm9sbG93aW5nOg0KPiA+Pj4+Pj4+Pj4gKyAgLSBFeHBvc2luZyB0 aGUgTU1SQU0gdG8gYWxsIG5vbi1NTSBhZ2VudHMsIG9yIHRoZSAib3BlbiINCj4gPj4+Pj4+Pj4+ ICsgc3RhdGUNCj4gPj4+Pj4+Pj4+ICsgIC0gU2hyb3VkaW5nIHRoZSBNTVJBTSB0byBhbGwgYnV0 IHRoZSBNTSBhZ2VudHMsIG9yIHRoZQ0KPiA+PiAiY2xvc2VkIg0KPiA+Pj4+Pj4+Pj4gKyBzdGF0 ZQ0KPiA+Pj4+Pj4+Pj4gKyAgLSBQcmVzZXJ2aW5nIHRoZSBzeXN0ZW0gaW50ZWdyaXR5LCBvciAi bG9ja2luZyIgdGhlIE1NUkFNLA0KPiA+Pj4+Pj4+Pj4gKyBzdWNoIHRoYXQNCj4gPj4+Pj4+PiB0 aGUNCj4gPj4+Pj4+Pj4+IHNldHRpbmdzIGNhbm5vdCBiZQ0KPiA+Pj4+Pj4+Pj4gKyAgICBwZXJ0 dXJiZWQgYnkgZWl0aGVyIGJvb3Qgc2VydmljZSBvciBydW50aW1lIGFnZW50cw0KPiA+Pj4+Pj4+ Pj4gKw0KPiA+Pj4+Pj4+Pj4gKyAgQ29weXJpZ2h0IChjKSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlv bi4gQWxsIHJpZ2h0cw0KPiA+Pj4+Pj4+Pj4gKyByZXNlcnZlZC48QlI+DQo+ID4+Pj4+Pj4+PiAr ICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+Pj4+Pj4+ Pj4gKw0KPiA+Pj4+Pj4+Pj4gKyAgQHBhciBSZXZpc2lvbiBSZWZlcmVuY2U6DQo+ID4+Pj4+Pj4+ PiArICBUaGlzIFBQSSBpcyBpbnRyb2R1Y2VkIGluIFBJIFZlcnNpb24gMS41Lg0KPiA+Pj4+Pj4+ Pj4gKw0KPiA+Pj4+Pj4+Pj4gKyoqLw0KPiA+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+Pj4gKyNpZm5k ZWYgX01NX0FDQ0VTU19QUElfSF8NCj4gPj4+Pj4+Pj4+ICsjZGVmaW5lIF9NTV9BQ0NFU1NfUFBJ X0hfDQo+ID4+Pj4+Pj4+PiArDQo+ID4+Pj4+Pj4+PiArI2RlZmluZSBFRklfUEVJX01NX0FDQ0VT U19QUElfR1VJRCBcDQo+ID4+Pj4+Pj4+PiArICB7IDB4MjY4ZjMzYTksIDB4Y2NjZCwgMHg0OGJl LCB7IDB4ODgsIDB4MTcsIDB4ODYsIDB4NSwgMHgzYSwNCj4gPj4+Pj4+Pj4+ICsweGMzLCAweDJl LA0KPiA+Pj4+Pj4+Pj4gMHhkNiB9fQ0KPiA+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+Pj4gK3R5cGVk ZWYgc3RydWN0IF9FRklfUEVJX01NX0FDQ0VTU19QUEkNCj4gPj4gRUZJX1BFSV9NTV9BQ0NFU1Nf UFBJOw0KPiA+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+Pj4gKy8qKg0KPiA+Pj4+Pj4+Pj4gKyAgT3Bl bnMgdGhlIE1NUkFNIGFyZWEgdG8gYmUgYWNjZXNzaWJsZSBieSBhIFBFSU0uDQo+ID4+Pj4+Pj4+ PiArDQo+ID4+Pj4+Pj4+PiArICBUaGlzIGZ1bmN0aW9uICJvcGVucyIgTU1SQU0gc28gdGhhdCBp dCBpcyB2aXNpYmxlIHdoaWxlIG5vdA0KPiA+Pj4+Pj4+Pj4gKyBpbnNpZGUgb2YNCj4gPj4+Pj4+ PiBNTS4NCj4gPj4+Pj4+Pj4+IFRoZSBmdW5jdGlvbiBzaG91bGQNCj4gPj4+Pj4+Pj4+ICsgIHJl dHVybiBFRklfVU5TVVBQT1JURUQgaWYgdGhlIGhhcmR3YXJlIGRvZXMgbm90IHN1cHBvcnQNCj4g Pj4+Pj4+Pj4+ICsgaGlkaW5nIG9mDQo+ID4+Pj4+Pj4+PiBNTVJBTS4gVGhlIGZ1bmN0aW9uDQo+ ID4+Pj4+Pj4+PiArICBzaG91bGQgcmV0dXJuIEVGSV9ERVZJQ0VfRVJST1IgaWYgdGhlIE1NUkFN DQo+IGNvbmZpZ3VyYXRpb24NCj4gPj4gaXMNCj4gPj4+Pj4+IGxvY2tlZC4NCj4gPj4+Pj4+Pj4+ ICsNCj4gPj4+Pj4+Pj4+ICsgIEBwYXJhbSAgUGVpU2VydmljZXMgICAgICAgICAgICBBbiBpbmRp cmVjdCBwb2ludGVyIHRvIHRoZSBQRUkNCj4gU2VydmljZXMNCj4gPj4+Pj4+IFRhYmxlDQo+ID4+ Pj4+Pj4+PiBwdWJsaXNoZWQgYnkgdGhlIFBFSSBGb3VuZGF0aW9uLg0KPiA+Pj4+Pj4+Pj4gKyAg QHBhcmFtICBUaGlzICAgICAgICAgICAgICAgICAgIFRoZSBFRklfUEVJX01NX0FDQ0VTU19QUEkg aW5zdGFuY2UuDQo+ID4+Pj4+Pj4+PiArICBAcGFyYW0gIERlc2NyaXB0b3JJbmRleCAgICAgICAg VGhlIHJlZ2lvbiBvZiBNTVJBTSB0byBPcGVuLg0KPiA+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+Pj4g KyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgIFRoZSBvcGVyYXRpb24gd2FzIHN1Y2Nl c3NmdWwuDQo+ID4+Pj4+Pj4+PiArICBAcmV0dmFsIEVGSV9VTlNVUFBPUlRFRCAgICAgICAgVGhl IHN5c3RlbSBkb2VzIG5vdCBzdXBwb3J0DQo+ID4+Pj4+IG9wZW5pbmcNCj4gPj4+Pj4+Pj4gYW5k DQo+ID4+Pj4+Pj4+PiBjbG9zaW5nIG9mIE1NUkFNLg0KPiA+Pj4+Pj4+Pj4gKyAgQHJldHZhbCBF RklfREVWSUNFX0VSUk9SICAgICAgIE1NUkFNIGNhbm5vdCBiZSBvcGVuZWQsDQo+ID4+Pj4+IHBl cmhhcHMNCj4gPj4+Pj4+Pj4+IGJlY2F1c2UgaXQgaXMgbG9ja2VkLg0KPiA+Pj4+Pj4+Pj4gKw0K PiA+Pj4+Pj4+Pj4gKyoqLw0KPiA+Pj4+Pj4+Pj4gK3R5cGVkZWYNCj4gPj4+Pj4+Pj4+ICtFRklf U1RBVFVTDQo+ID4+Pj4+Pj4+PiArKEVGSUFQSSAqRUZJX1BFSV9NTV9PUEVOKSgNCj4gPj4+Pj4+ Pj4+ICsgIElOIEVGSV9QRUlfU0VSVklDRVMgICAgICAgICAgICAgICAgKipQZWlTZXJ2aWNlcywN Cj4gPj4+Pj4+Pj4+ICsgIElOIEVGSV9QRUlfTU1fQUNDRVNTX1BQSSAgICAgICAgICAgKlRoaXMs DQo+ID4+Pj4+Pj4+PiArICBJTiBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgIERlc2Ny aXB0b3JJbmRleA0KPiA+Pj4+Pj4+Pj4gKyAgKTsNCj4gPj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+ ICsvKioNCj4gPj4+Pj4+Pj4+ICsgIEluaGliaXRzIGFjY2VzcyB0byB0aGUgTU1SQU0uDQo+ID4+ Pj4+Pj4+PiArDQo+ID4+Pj4+Pj4+PiArICBUaGlzIGZ1bmN0aW9uICJjbG9zZXMiIE1NUkFNIHNv IHRoYXQgaXQgaXMgbm90IHZpc2libGUgd2hpbGUNCj4gPj4+Pj4+Pj4+ICsgb3V0c2lkZSBvZg0K PiA+Pj4+Pj4+PiBNTS4NCj4gPj4+Pj4+Pj4+IFRoZSBmdW5jdGlvbiBzaG91bGQNCj4gPj4+Pj4+ Pj4+ICsgIHJldHVybiBFRklfVU5TVVBQT1JURUQgaWYgdGhlIGhhcmR3YXJlIGRvZXMgbm90IHN1 cHBvcnQNCj4gPj4+Pj4+Pj4+ICsgaGlkaW5nIG9mDQo+ID4+Pj4+Pj4+PiBNTVJBTS4NCj4gPj4+ Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+ICsgIEBwYXJhbSAgUGVpU2VydmljZXMgICAgICAgICAgICBB biBpbmRpcmVjdCBwb2ludGVyIHRvIHRoZSBQRUkNCj4gU2VydmljZXMNCj4gPj4+Pj4+IFRhYmxl DQo+ID4+Pj4+Pj4+PiBwdWJsaXNoZWQgYnkgdGhlIFBFSSBGb3VuZGF0aW9uLg0KPiA+Pj4+Pj4+ Pj4gKyAgQHBhcmFtICBUaGlzICAgICAgICAgICAgICAgICAgIFRoZSBFRklfUEVJX01NX0FDQ0VT U19QUEkgaW5zdGFuY2UuDQo+ID4+Pj4+Pj4+PiArICBAcGFyYW0gIERlc2NyaXB0b3JJbmRleCAg ICAgICAgVGhlIHJlZ2lvbiBvZiBNTVJBTSB0byBDbG9zZS4NCj4gPj4+Pj4+Pj4+ICsNCj4gPj4+ Pj4+Pj4+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICBUaGUgb3BlcmF0aW9uIHdh cyBzdWNjZXNzZnVsLg0KPiA+Pj4+Pj4+Pj4gKyAgQHJldHZhbCBFRklfVU5TVVBQT1JURUQgICAg ICAgIFRoZSBzeXN0ZW0gZG9lcyBub3Qgc3VwcG9ydA0KPiA+Pj4+PiBvcGVuaW5nDQo+ID4+Pj4+ Pj4+IGFuZA0KPiA+Pj4+Pj4+Pj4gY2xvc2luZyBvZiBNTVJBTS4NCj4gPj4+Pj4+Pj4+ICsgIEBy ZXR2YWwgRUZJX0RFVklDRV9FUlJPUiAgICAgICBNTVJBTSBjYW5ub3QgYmUgY2xvc2VkLg0KPiA+ Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+Pj4gKyoqLw0KPiA+Pj4+Pj4+Pj4gK3R5cGVkZWYNCj4gPj4+ Pj4+Pj4+ICtFRklfU1RBVFVTDQo+ID4+Pj4+Pj4+PiArKEVGSUFQSSAqRUZJX1BFSV9NTV9DTE9T RSkoDQo+ID4+Pj4+Pj4+PiArICBJTiBFRklfUEVJX1NFUlZJQ0VTICAgICAgICAgICAgICAgICoq UGVpU2VydmljZXMsDQo+ID4+Pj4+Pj4+PiArICBJTiBFRklfUEVJX01NX0FDQ0VTU19QUEkgICAg ICAgICAgICpUaGlzLA0KPiA+Pj4+Pj4+Pj4gKyAgSU4gVUlOVE4gICAgICAgICAgICAgICAgICAg ICAgICAgICBEZXNjcmlwdG9ySW5kZXgNCj4gPj4+Pj4+Pj4+ICsgICk7DQo+ID4+Pj4+Pj4+PiAr DQo+ID4+Pj4+Pj4+PiArLyoqDQo+ID4+Pj4+Pj4+PiArICBUaGlzIGZ1bmN0aW9uIHByb2hpYml0 cyBhY2Nlc3MgdG8gdGhlIE1NUkFNIHJlZ2lvbi4gVGhpcw0KPiA+Pj4+Pj4+Pj4gK2Z1bmN0aW9u IGlzDQo+ID4+Pj4+Pj4+IHVzdWFsbHkNCj4gPj4+Pj4+Pj4+IGltcGxlbWVudGVkIHN1Y2gNCj4g Pj4+Pj4+Pj4+ICsgIHRoYXQgaXQgaXMgYSB3cml0ZS1vbmNlIG9wZXJhdGlvbi4NCj4gPj4+Pj4+ Pj4+ICsNCj4gPj4+Pj4+Pj4+ICsgIEBwYXJhbSAgUGVpU2VydmljZXMgICAgICAgICAgICBBbiBp bmRpcmVjdCBwb2ludGVyIHRvIHRoZSBQRUkNCj4gU2VydmljZXMNCj4gPj4+Pj4+IFRhYmxlDQo+ ID4+Pj4+Pj4+PiBwdWJsaXNoZWQgYnkgdGhlIFBFSSBGb3VuZGF0aW9uLg0KPiA+Pj4+Pj4+Pj4g KyAgQHBhcmFtICBUaGlzICAgICAgICAgICAgICAgICAgIFRoZSBFRklfUEVJX01NX0FDQ0VTU19Q UEkgaW5zdGFuY2UuDQo+ID4+Pj4+Pj4+PiArICBAcGFyYW0gIERlc2NyaXB0b3JJbmRleCAgICAg ICAgVGhlIHJlZ2lvbiBvZiBNTVJBTSB0byBMb2NrLg0KPiA+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+ Pj4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgIFRoZSBvcGVyYXRpb24gd2FzIHN1 Y2Nlc3NmdWwuDQo+ID4+Pj4+Pj4+PiArICBAcmV0dmFsIEVGSV9VTlNVUFBPUlRFRCAgICAgICAg VGhlIHN5c3RlbSBkb2VzIG5vdCBzdXBwb3J0DQo+ID4+Pj4+IG9wZW5pbmcNCj4gPj4+Pj4+Pj4g YW5kDQo+ID4+Pj4+Pj4+PiBjbG9zaW5nIG9mIE1NUkFNLg0KPiA+Pj4+Pj4+Pj4gKw0KPiA+Pj4+ Pj4+Pj4gKyoqLw0KPiA+Pj4+Pj4+Pj4gK3R5cGVkZWYNCj4gPj4+Pj4+Pj4+ICtFRklfU1RBVFVT DQo+ID4+Pj4+Pj4+PiArKEVGSUFQSSAqRUZJX1BFSV9NTV9MT0NLKSgNCj4gPj4+Pj4+Pj4+ICsg IElOIEVGSV9QRUlfU0VSVklDRVMgICAgICAgICAgICAgICAgKipQZWlTZXJ2aWNlcywNCj4gPj4+ Pj4+Pj4+ICsgIElOIEVGSV9QRUlfTU1fQUNDRVNTX1BQSSAgICAgICAgICAgKlRoaXMsDQo+ID4+ Pj4+Pj4+PiArICBJTiBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0b3JJ bmRleA0KPiA+Pj4+Pj4+Pj4gKyAgKTsNCj4gPj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+ICsvKioN Cj4gPj4+Pj4+Pj4+ICsgIFF1ZXJpZXMgdGhlIG1lbW9yeSBjb250cm9sbGVyIGZvciB0aGUgcG9z c2libGUgcmVnaW9ucyB0aGF0DQo+ID4+Pj4+Pj4+PiArd2lsbCBzdXBwb3J0DQo+ID4+Pj4+Pj4+ PiBNTVJBTS4NCj4gPj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+ICsgIFRoaXMgZnVuY3Rpb24gZGVz Y3JpYmVzIHRoZSBNTVJBTSByZWdpb25zLg0KPiA+Pj4+Pj4+Pj4gKyAgVGhpcyBkYXRhIHN0cnVj dHVyZSBmb3JtcyB0aGUgY29udHJhY3QgYmV0d2VlbiB0aGUNCj4gPj4gTU1fQUNDRVNTDQo+ID4+ Pj4+IGFuZA0KPiA+Pj4+Pj4+Pj4gTU1fSVBMIGRyaXZlcnMuIFRoZXJlIGlzIGFuDQo+ID4+Pj4+ Pj4+PiArICBhbWJpZ3VpdHkgd2hlbiBhbnkgTU1SQU0gcmVnaW9uIGlzIHJlbWFwcGVkLiBGb3IN Cj4gZXhhbXBsZSwNCj4gPj4gb24NCj4gPj4+Pj4+PiBzb21lDQo+ID4+Pj4+Pj4+PiBjaGlwc2V0 cywgc29tZSBNTVJBTQ0KPiA+Pj4+Pj4+Pj4gKyAgcmVnaW9ucyBjYW4gYmUgaW5pdGlhbGl6ZWQg YXQgb25lIHBoeXNpY2FsIGFkZHJlc3MgYnV0IGlzDQo+ID4+Pj4+Pj4+PiArIGxhdGVyIGFjY2Vz c2VkIGF0DQo+ID4+Pj4+Pj4+PiBhbm90aGVyIHByb2Nlc3NvciBhZGRyZXNzLg0KPiA+Pj4+Pj4+ Pj4gKyAgVGhlcmUgaXMgY3VycmVudGx5IG5vIHdheSBmb3IgdGhlIE1NIElQTCBkcml2ZXIgdG8g a25vdyB0aGF0DQo+ID4+Pj4+Pj4+PiArIGl0IG11c3QgdXNlDQo+ID4+Pj4+Pj4+PiB0d28gZGlm ZmVyZW50IGFkZHJlc3Nlcw0KPiA+Pj4+Pj4+Pj4gKyAgZGVwZW5kaW5nIG9uIHdoYXQgaXQgaXMg dHJ5aW5nIHRvIGRvLiBBcyBhIHJlc3VsdCwgaW5pdGlhbA0KPiA+Pj4+Pj4+Pj4gKyBjb25maWd1 cmF0aW9uIGFuZA0KPiA+Pj4+Pj4+Pj4gbG9hZGluZyBjYW4gdXNlIHRoZQ0KPiA+Pj4+Pj4+Pj4g KyAgcGh5c2ljYWwgYWRkcmVzcyBQaHlzaWNhbFN0YXJ0IHdoaWxlIE1NUkFNIGlzIG9wZW4uDQo+ IEhvd2V2ZXIsDQo+ID4+Pj4+Pj4+PiArIG9uY2UNCj4gPj4+Pj4+PiB0aGUNCj4gPj4+Pj4+Pj4+ IHJlZ2lvbiBoYXMgYmVlbg0KPiA+Pj4+Pj4+Pj4gKyAgY2xvc2VkIGFuZCBuZWVkcyB0byBiZSBh Y2Nlc3NlZCBieSBhZ2VudHMgaW4gTU0sIHRoZQ0KPiA+Pj4+Pj4+Pj4gKyBDcHVTdGFydCBhZGRy ZXNzDQo+ID4+Pj4+Pj4+PiBtdXN0IGJlIHVzZWQuDQo+ID4+Pj4+Pj4+PiArICBUaGlzIFBQSSBw dWJsaXNoZXMgdGhlIGF2YWlsYWJsZSBtZW1vcnkgdGhhdCB0aGUgY2hpcHNldCBjYW4NCj4gPj4+ Pj4+Pj4+ICsgc2hyb3VkIGZvcg0KPiA+Pj4+Pj4+PiB0aGUNCj4gPj4+Pj4+Pj4+IHVzZSBvZiBp bnN0YWxsaW5nIGNvZGUuDQo+ID4+Pj4+Pj4+PiArICBUaGVzZSByZWdpb25zIHNlcnZlIHRoZSBk dWFsIHB1cnBvc2Ugb2YgZGVzY3JpYmluZyB3aGljaA0KPiA+Pj4+Pj4+Pj4gKyByZWdpb25zIGhh dmUNCj4gPj4+Pj4+Pj4+IGJlZW4gb3BlbiwgY2xvc2VkLCBvciBsb2NrZWQuDQo+ID4+Pj4+Pj4+ PiArICBJbiBhZGRpdGlvbiwgdGhlc2UgcmVnaW9ucyBtYXkgaW5jbHVkZSBvdmVybGFwcGluZyBt ZW1vcnkNCj4gPj4+Pj4+Pj4+ICsgcmFuZ2VzLA0KPiA+Pj4+Pj4+Pj4gZGVwZW5kaW5nIG9uIHRo ZSBjaGlwc2V0DQo+ID4+Pj4+Pj4+PiArICBpbXBsZW1lbnRhdGlvbi4gVGhlIGxhdHRlciBtaWdo dCBpbmNsdWRlIGEgY2hpcHNldCB0aGF0DQo+ID4+Pj4+Pj4+PiArIHN1cHBvcnRzIFQtU0VHLA0K PiA+Pj4+Pj4+Pj4gd2hlcmUgbWVtb3J5IG5lYXIgdGhlIHRvcA0KPiA+Pj4+Pj4+Pj4gKyAgb2Yg dGhlIHBoeXNpY2FsIERSQU0gY2FuIGJlIGFsbG9jYXRlZCBmb3IgTU1SQU0gdG9vLg0KPiA+Pj4+ Pj4+Pj4gKyAgVGhlIGtleSB0aGluZyB0byBub3RlIGlzIHRoYXQgdGhlIHJlZ2lvbnMgdGhhdCBh cmUgZGVzY3JpYmVkDQo+ID4+Pj4+Pj4+PiArIGJ5IHRoZSBQUEkNCj4gPj4+Pj4+PiBhcmUNCj4g Pj4+Pj4+Pj4gYQ0KPiA+Pj4+Pj4+Pj4gc3Vic2V0IG9mIHRoZSBjYXBhYmlsaXRpZXMNCj4gPj4+ Pj4+Pj4+ICsgIG9mIHRoZSBoYXJkd2FyZS4NCj4gPj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+ICsg IEBwYXJhbSAgUGVpU2VydmljZXMgICAgICAgICAgICBBbiBpbmRpcmVjdCBwb2ludGVyIHRvIHRo ZSBQRUkNCj4gU2VydmljZXMNCj4gPj4+Pj4+IFRhYmxlDQo+ID4+Pj4+Pj4+PiBwdWJsaXNoZWQg YnkgdGhlIFBFSSBGb3VuZGF0aW9uLg0KPiA+Pj4+Pj4+Pj4gKyAgQHBhcmFtICBUaGlzICAgICAg ICAgICAgICAgICAgIFRoZSBFRklfUEVJX01NX0FDQ0VTU19QUEkgaW5zdGFuY2UuDQo+ID4+Pj4+ Pj4+PiArICBAcGFyYW0gIE1tcmFtTWFwU2l6ZSAgICAgICAgICAgQSBwb2ludGVyIHRvIHRoZSBz aXplLCBpbiBieXRlcywNCj4gb2YNCj4gPj4+Pj4gdGhlDQo+ID4+Pj4+Pj4+PiBNbXJhbU1lbW9y eU1hcCBidWZmZXIuIE9uIGlucHV0LCB0aGlzIHZhbHVlIGlzDQo+ID4+Pj4+Pj4+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciB0aGF0DQo+ ID4+Pj4+Pj4+PiArIGlzIGFsbG9jYXRlZCBieSB0aGUgY2FsbGVyLiBPbg0KPiA+Pj4+Pj4+Pj4g b3V0cHV0LCBpdCBpcyB0aGUgc2l6ZSBvZiB0aGUNCj4gPj4+Pj4+Pj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBidWZmZXIgdGhhdCB3YXMgcmV0dXJuZWQgYnkNCj4gPj4+Pj4+ Pj4+ICsgdGhlIGZpcm13YXJlIGlmIHRoZSBidWZmZXINCj4gPj4+Pj4+Pj4gd2FzDQo+ID4+Pj4+ Pj4+PiBsYXJnZSBlbm91Z2gsIG9yLCBpZiB0aGUNCj4gPj4+Pj4+Pj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBidWZmZXIgd2FzIHRvbyBzbWFsbCwgdGhlDQo+ID4+Pj4+Pj4+ PiArIHNpemUgb2YgdGhlIGJ1ZmZlciB0aGF0IGlzDQo+ID4+Pj4+Pj4+IG5lZWRlZCB0bw0KPiA+ Pj4+Pj4+Pj4gY29udGFpbiB0aGUgbWFwLg0KPiA+Pj4+Pj4+Pj4gKyAgQHBhcmFtIE1tcmFtTWFw ICAgICAgICAgICAgICAgIEEgcG9pbnRlciB0byB0aGUgYnVmZmVyIGluIHdoaWNoDQo+ID4+Pj4+ PiBmaXJtd2FyZQ0KPiA+Pj4+Pj4+Pj4gcGxhY2VzIHRoZSBjdXJyZW50IG1lbW9yeSBtYXAuIFRo ZSBtYXAgaXMNCj4gPj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh biBhcnJheSBvZg0KPiA+Pj4+Pj4+Pj4gKyBFRklfTU1SQU1fREVTQ1JJUFRPUnMNCj4gPj4+Pj4+ Pj4+ICsNCj4gPj4+Pj4+Pj4+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICBUaGUg Y2hpcHNldCBzdXBwb3J0ZWQgdGhlIGdpdmVuDQo+ID4+Pj4+IHJlc291cmNlLg0KPiA+Pj4+Pj4+ Pj4gKyAgQHJldHZhbCBFRklfQlVGRkVSX1RPT19TTUFMTCAgIFRoZSBNbXJhbU1hcA0KPiBwYXJh bWV0ZXINCj4gPj4+IHdhcw0KPiA+Pj4+Pj4gdG9vDQo+ID4+Pj4+Pj4+PiBzbWFsbC4gVGhlIGN1 cnJlbnQNCj4gPj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZm ZXIgc2l6ZSBuZWVkZWQgdG8gaG9sZA0KPiA+Pj4+Pj4+Pj4gKyB0aGUgbWVtb3J5IG1hcCBpcw0K PiA+Pj4+Pj4+IHJldHVybmVkDQo+ID4+Pj4+Pj4+IGluDQo+ID4+Pj4+Pj4+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTW1yYW1NYXBTaXplLg0KPiA+Pj4+Pj4+Pj4gKw0KPiA+ Pj4+Pj4+Pj4gKyoqLw0KPiA+Pj4+Pj4+Pj4gK3R5cGVkZWYNCj4gPj4+Pj4+Pj4+ICtFRklfU1RB VFVTDQo+ID4+Pj4+Pj4+PiArKEVGSUFQSSAqRUZJX1BFSV9NTV9DQVBBQklMSVRJRVMpKA0KPiA+ Pj4+Pj4+Pj4gKyAgSU4gRUZJX1BFSV9TRVJWSUNFUyAgICAgICAgICAgICAgICAqKlBlaVNlcnZp Y2VzLA0KPiA+Pj4+Pj4+Pj4gKyAgSU4gRUZJX1BFSV9NTV9BQ0NFU1NfUFBJICAgICAgICAgICAq VGhpcywNCj4gPj4+Pj4+Pj4+ICsgIElOIE9VVCBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAg Kk1tcmFtTWFwU2l6ZSwNCj4gPj4+Pj4+Pj4+ICsgIElOIE9VVCBFRklfTU1SQU1fREVTQ1JJUFRP UiAgICAgICAgKk1tcmFtTWFwDQo+ID4+Pj4+Pj4+PiArICApOw0KPiA+Pj4+Pj4+Pj4gKw0KPiA+ Pj4+Pj4+Pj4gKy8vLw0KPiA+Pj4+Pj4+Pj4gKy8vLyAgRUZJIE1NIEFjY2VzcyBQUEkgaXMgdXNl ZCB0byBjb250cm9sIHRoZSB2aXNpYmlsaXR5IG9mDQo+ID4+Pj4+Pj4+PiArdGhlIE1NUkFNIG9u DQo+ID4+Pj4+Pj4+IHRoZQ0KPiA+Pj4+Pj4+Pj4gcGxhdGZvcm0uDQo+ID4+Pj4+Pj4+PiArLy8v ICBJdCBhYnN0cmFjdHMgdGhlIGxvY2F0aW9uIGFuZCBjaGFyYWN0ZXJpc3RpY3Mgb2YgTU1SQU0u DQo+ID4+Pj4+Pj4+PiArVGhlIHBsYXRmb3JtDQo+ID4+Pj4+Pj4+PiBzaG91bGQgcmVwb3J0DQo+ ID4+Pj4+Pj4+PiArLy8vICBhbGwgTU1SQU0gdmlhIEVGSV9QRUlfTU1fQUNDRVNTX1BQSS4gVGhl IGV4cGVjdGF0aW9uDQo+IGlzDQo+ID4+PiB0aGF0DQo+ID4+Pj4+Pj4+PiArdGhlDQo+ID4+Pj4+ Pj4+PiBub3J0aCBicmlkZ2Ugb3INCj4gPj4+Pj4+Pj4+ICsvLy8gIG1lbW9yeSBjb250cm9sbGVy IHdvdWxkIHB1Ymxpc2ggdGhpcyBQUEkuDQo+ID4+Pj4+Pj4+PiArLy8vDQo+ID4+Pj4+Pj4+PiAr c3RydWN0IF9FRklfUEVJX01NX0FDQ0VTU19QUEkgew0KPiA+Pj4+Pj4+Pj4gKyAgRUZJX1BFSV9N TV9PUEVOICAgICAgICAgIE9wZW47DQo+ID4+Pj4+Pj4+PiArICBFRklfUEVJX01NX0NMT1NFICAg ICAgICAgQ2xvc2U7DQo+ID4+Pj4+Pj4+PiArICBFRklfUEVJX01NX0xPQ0sgICAgICAgICAgTG9j azsNCj4gPj4+Pj4+Pj4+ICsgIEVGSV9QRUlfTU1fQ0FQQUJJTElUSUVTICBHZXRDYXBhYmlsaXRp ZXM7DQo+ID4+Pj4+Pj4+PiArICBCT09MRUFOICAgICAgICAgICAgICAgICAgTG9ja1N0YXRlOw0K PiA+Pj4+Pj4+Pj4gKyAgQk9PTEVBTiAgICAgICAgICAgICAgICAgIE9wZW5TdGF0ZTsNCj4gPj4+ Pj4+Pj4+ICt9Ow0KPiA+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+Pj4gK2V4dGVybiBFRklfR1VJRCBn RWZpUGVpTW1BY2Nlc3NQcGlHdWlkOw0KPiA+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+Pj4gKyNlbmRp Zg0KPiA+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL01kZVBrZy9JbmNsdWRlL1BwaS9NbUNvbnRyb2wu aA0KPiA+Pj4+Pj4+Pj4gYi9NZGVQa2cvSW5jbHVkZS9QcGkvTW1Db250cm9sLmggbmV3IGZpbGUg bW9kZSAxMDA2NDQNCj4gaW5kZXgNCj4gPj4+Pj4+Pj4+IDAwMDAwMDAwMDAuLjk4M2VkOTVjZDUN Cj4gPj4+Pj4+Pj4+IC0tLSAvZGV2L251bGwNCj4gPj4+Pj4+Pj4+ICsrKyBiL01kZVBrZy9JbmNs dWRlL1BwaS9NbUNvbnRyb2wuaA0KPiA+Pj4+Pj4+Pj4gQEAgLTAsMCArMSw5MCBAQA0KPiA+Pj4+ Pj4+Pj4gKy8qKiBAZmlsZQ0KPiA+Pj4+Pj4+Pj4gKyAgRUZJIE1NIENvbnRyb2wgUFBJIGRlZmlu aXRpb24uDQo+ID4+Pj4+Pj4+PiArDQo+ID4+Pj4+Pj4+PiArICBUaGlzIFBQSSBpcyB1c2VkIGlu aXRpYXRlIHN5bmNocm9ub3VzIE1NSSBhY3RpdmF0aW9ucy4gVGhpcw0KPiA+Pj4+Pj4+Pj4gKyBQ UEkgY291bGQgYmUNCj4gPj4+Pj4+Pj4+IHB1Ymxpc2hlZCBieSBhIHByb2Nlc3Nvcg0KPiA+Pj4+ Pj4+Pj4gKyAgZHJpdmVyIHRvIGFic3RyYWN0IHRoZSBNTUkgSVBJIG9yIGEgZHJpdmVyIHdoaWNo IGFic3RyYWN0cw0KPiA+Pj4+Pj4+Pj4gKyB0aGUgQVNJQyB0aGF0DQo+ID4+Pj4+Pj4gaXMNCj4g Pj4+Pj4+Pj4+IHN1cHBvcnRpbmcgdGhlIEFQTSBwb3J0Lg0KPiA+Pj4+Pj4+Pj4gKyAgQmVjYXVz ZSBvZiB0aGUgcG9zc2liaWxpdHkgb2YgcGVyZm9ybWluZyBNTUkgSVBJDQo+ID4+Pj4+Pj4+PiAr IHRyYW5zYWN0aW9ucywgdGhlIGFiaWxpdHkNCj4gPj4+Pj4+Pj4gdG8NCj4gPj4+Pj4+Pj4+IGdl bmVyYXRlIHRoaXMgZXZlbnQNCj4gPj4+Pj4+Pj4+ICsgIGZyb20gYSBwbGF0Zm9ybSBjaGlwc2V0 IGFnZW50IGlzIGFuIG9wdGlvbmFsIGNhcGFiaWxpdHkgZm9yDQo+ID4+Pj4+Pj4+PiArIGJvdGgN Cj4gPj4+Pj4+Pj4+ICsgSUEtMzINCj4gPj4+Pj4+PiBhbmQNCj4gPj4+Pj4+Pj4+IHg2NC1iYXNl ZCBzeXN0ZW1zLg0KPiA+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+Pj4gKyAgQ29weXJpZ2h0IChjKSAy MDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+Pj4+Pj4+Pj4gKyByZXNlcnZl ZC48QlI+DQo+ID4+Pj4+Pj4+PiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KPiA+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+Pj4gKyAgQHBhciBSZXZpc2lvbiBS ZWZlcmVuY2U6DQo+ID4+Pj4+Pj4+PiArICBUaGlzIFBQSSBpcyBpbnRyb2R1Y2VkIGluIFBJIFZl cnNpb24gMS41Lg0KPiA+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+Pj4gKyoqLw0KPiA+Pj4+Pj4+Pj4g Kw0KPiA+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+Pj4gKyNpZm5kZWYgX01NX0NPTlRST0xfUFBJX0hf DQo+ID4+Pj4+Pj4+PiArI2RlZmluZSBfTU1fQ09OVFJPTF9QUElfSF8NCj4gPj4+Pj4+Pj4+ICsN Cj4gPj4+Pj4+Pj4+ICsjZGVmaW5lIEVGSV9QRUlfTU1fQ09OVFJPTF9QUElfR1VJRCBcDQo+ID4+ Pj4+Pj4+PiArICB7IDB4NjFjNjg3MDIsIDB4NGQ3ZSwgMHg0ZjQzLCAweDhkLCAweGVmLCAweGE3 LCAweDQzLCAweDUsDQo+ID4+Pj4+Pj4+PiArMHhjZSwgMHg3NCwNCj4gPj4+Pj4+Pj4gMHhjNSB9 DQo+ID4+Pj4+Pj4+PiArDQo+ID4+Pj4+Pj4+PiArdHlwZWRlZiBzdHJ1Y3QgX0VGSV9QRUlfTU1f Q09OVFJPTF9QUEkNCj4gPj4+Pj4+IEVGSV9QRUlfTU1fQ09OVFJPTF9QUEk7DQo+ID4+Pj4+Pj4+ PiArDQo+ID4+Pj4+Pj4+PiArLyoqDQo+ID4+Pj4+Pj4+PiArICBJbnZva2VzIFBQSSBhY3RpdmF0 aW9uIGZyb20gdGhlIFBJIFBFSSBlbnZpcm9ubWVudC4NCj4gPj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+ Pj4+ICsgIEBwYXJhbSAgUGVpU2VydmljZXMgICAgICAgICAgIEFuIGluZGlyZWN0IHBvaW50ZXIg dG8gdGhlIFBFSQ0KPiBTZXJ2aWNlcw0KPiA+Pj4+PiBUYWJsZQ0KPiA+Pj4+Pj4+Pj4gcHVibGlz aGVkIGJ5IHRoZSBQRUkgRm91bmRhdGlvbi4NCj4gPj4+Pj4+Pj4+ICsgIEBwYXJhbSAgVGhpcyAg ICAgICAgICAgICAgICAgIFRoZSBQRUlfTU1fQ09OVFJPTF9QUEkgaW5zdGFuY2UuDQo+ID4+Pj4+ Pj4+PiArICBAcGFyYW0gIEFyZ3VtZW50QnVmZmVyICAgICAgICBUaGUgdmFsdWUgcGFzc2VkIHRv IHRoZSBNTUkNCj4gPj4+IGhhbmRsZXIuDQo+ID4+Pj4+Pj4gVGhpcw0KPiA+Pj4+Pj4+Pj4gdmFs dWUgY29ycmVzcG9uZHMgdG8gdGhlDQo+ID4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTd01taUlucHV0VmFsdWUgaW4gdGhlDQo+ID4+Pj4+Pj4+PiArIFJlZ2lzdGVy Q29udGV4dCBwYXJhbWV0ZXINCj4gPj4+Pj4+PiBmb3INCj4gPj4+Pj4+Pj4gdGhlDQo+ID4+Pj4+ Pj4+PiBSZWdpc3RlcigpDQo+ID4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmdW5jdGlvbiBpbiB0aGUNCj4gPj4+Pj4+Pj4+ICsgRUZJX01NX1NXX0RJU1BBVENIX1BS T1RPQ09MDQo+ID4+Pj4+Pj4gYW5kDQo+ID4+Pj4+Pj4+IGluDQo+ID4+Pj4+Pj4+PiB0aGUgQ29u dGV4dCBwYXJhbWV0ZXINCj4gPj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGluIHRoZSBjYWxsIHRvIHRoZSBEaXNwYXRjaEZ1bmN0aW9uDQo+ID4+Pj4+Pj4+PiArICBA cGFyYW0gIEFyZ3VtZW50QnVmZmVyU2l6ZSAgICBUaGUgc2l6ZSBvZiB0aGUgZGF0YSBwYXNzZWQg aW4NCj4gPj4+Pj4+Pj4+IEFyZ3VtZW50QnVmZmVyIG9yIE5VTEwgaWYgQXJndW1lbnRCdWZmZXIg aXMgTlVMTC4NCj4gPj4+Pj4+Pj4+ICsgIEBwYXJhbSAgUGVyaW9kaWMgICAgICAgICAgICAgIEFu IG9wdGlvbmFsIG1lY2hhbmlzbSB0byBwZXJpb2RpY2FsbHkNCj4gPj4+Pj4gcmVwZWF0DQo+ID4+ Pj4+Pj4+PiBhY3RpdmF0aW9uLg0KPiA+Pj4+Pj4+Pj4gKyAgQHBhcmFtICBBY3RpdmF0aW9uSW50 ZXJ2YWwgICAgQW4gb3B0aW9uYWwgcGFyYW1ldGVyIHRvIHJlcGVhdA0KPiBhdA0KPiA+Pj4+PiB0 aGlzDQo+ID4+Pj4+Pj4+IHBlcmlvZA0KPiA+Pj4+Pj4+Pj4gb25lDQo+ID4+Pj4+Pj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lIG9yLCBpZiB0aGUgUGVyaW9kaWMgQm9v bGVhbiBpcyBzZXQsDQo+IHBlcmlvZGljYWxseS4NCj4gPj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+ ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSBNTUkgaGFzIGJlZW4gZW5nZW5k ZXJlZC4NCj4gPj4+Pj4+Pj4+ICsgIEByZXR2YWwgRUZJX0RFVklDRV9FUlJPUiAgICAgIFRoZSB0 aW1pbmcgaXMgdW5zdXBwb3J0ZWQuDQo+ID4+Pj4+Pj4+PiArICBAcmV0dmFsIEVGSV9JTlZBTElE X1BBUkFNRVRFUiBUaGUgYWN0aXZhdGlvbiBwZXJpb2QgaXMNCj4gPj4+Pj4+IHVuc3VwcG9ydGVk Lg0KPiA+Pj4+Pj4+Pj4gKyAgQHJldHZhbCBFRklfTk9UX1NUQVJURUQgICAgICAgVGhlIE1NIGJh c2Ugc2VydmljZSBoYXMgbm90DQo+ID4+IGJlZW4NCj4gPj4+Pj4+Pj4gaW5pdGlhbGl6ZWQuDQo+ ID4+Pj4+Pj4+PiArDQo+ID4+Pj4+Pj4+PiArKiovDQo+ID4+Pj4+Pj4+PiArdHlwZWRlZg0KPiA+ Pj4+Pj4+Pj4gK0VGSV9TVEFUVVMNCj4gPj4+Pj4+Pj4+ICsoRUZJQVBJICpFRklfUEVJX01NX0FD VElWQVRFKSAoDQo+ID4+Pj4+Pj4+PiArICBJTiBFRklfUEVJX1NFUlZJQ0VTICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqKlBlaVNlcnZpY2VzLA0KPiA+Pj4+Pj4+Pj4gKyAgSU4gRUZJ X1BFSV9NTV9DT05UUk9MX1BQSSAgICAgICAgICAgICAgICAgICAgICAgICAgKiBUaGlzLA0KPiA+ Pj4+Pj4+Pj4gKyAgSU4gT1VUIElOVDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKkFyZ3VtZW50QnVmZmVyIE9QVElPTkFMLA0KPiA+Pj4+Pj4+Pj4gKyAgSU4gT1VUIFVJ TlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKkFyZ3VtZW50QnVmZmVy U2l6ZQ0KPiA+Pj4gT1BUSU9OQUwsDQo+ID4+Pj4+Pj4+PiArICBJTiBCT09MRUFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZXJpb2RpYyBPUFRJT05BTCwNCj4gPj4+ Pj4+Pj4+ICsgIElOIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFjdGl2YXRpb25JbnRlcnZhbCBPUFRJT05BTA0KPiA+Pj4+Pj4+Pj4gKyAgKTsNCj4gPj4+ Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+ICsvKioNCj4gPj4+Pj4+Pj4+ICsgIENsZWFycyBhbnkgc3lz dGVtIHN0YXRlIHRoYXQgd2FzIGNyZWF0ZWQgaW4gcmVzcG9uc2UgdG8gdGhlDQo+ID4+PiBUcmln Z2VyKCkNCj4gPj4+Pj4+IGNhbGwuDQo+ID4+Pj4+Pj4+PiArDQo+ID4+Pj4+Pj4+PiArICBAcGFy YW0gIFBlaVNlcnZpY2VzICAgICAgICAgICBHZW5lcmFsIHB1cnBvc2Ugc2VydmljZXMgYXZhaWxh YmxlDQo+IHRvDQo+ID4+Pj4+IGV2ZXJ5DQo+ID4+Pj4+Pj4+IFBFSU0uDQo+ID4+Pj4+Pj4+PiAr ICBAcGFyYW0gIFRoaXMgICAgICAgICAgICAgICAgICBUaGUgUEVJX01NX0NPTlRST0xfUFBJIGlu c3RhbmNlLg0KPiA+Pj4+Pj4+Pj4gKyAgQHBhcmFtICBQZXJpb2RpYyAgICAgICAgICAgICAgT3B0 aW9uYWwgcGFyYW1ldGVyIHRvIHJlcGVhdCBhdCB0aGlzDQo+ID4+Pj4+IHBlcmlvZA0KPiA+Pj4+ Pj4+IG9uZQ0KPiA+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlt ZSBvciwgaWYgdGhlIFBlcmlvZGljIEJvb2xlYW4gaXMgc2V0LA0KPiBwZXJpb2RpY2FsbHkuDQo+ ID4+Pj4+Pj4+PiArDQo+ID4+Pj4+Pj4+PiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAg ICBUaGUgTU1JIGhhcyBiZWVuIGVuZ2VuZGVyZWQuDQo+ID4+Pj4+Pj4+PiArICBAcmV0dmFsIEVG SV9ERVZJQ0VfRVJST1IgICAgICBUaGUgc291cmNlIGNvdWxkIG5vdCBiZQ0KPiBjbGVhcmVkLg0K PiA+Pj4+Pj4+Pj4gKyAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgVGhlIHNlcnZpY2Ug ZGlkIG5vdCBzdXBwb3J0DQo+ID4+Pj4+Pj4+PiArIHRoZQ0KPiA+Pj4+Pj4+PiBQZXJpb2RpYw0K PiA+Pj4+Pj4+Pj4gaW5wdXQgYXJndW1lbnQuDQo+ID4+Pj4+Pj4+PiArDQo+ID4+Pj4+Pj4+PiAr KiovDQo+ID4+Pj4+Pj4+PiArdHlwZWRlZg0KPiA+Pj4+Pj4+Pj4gK0VGSV9TVEFUVVMNCj4gPj4+ Pj4+Pj4+ICsoRUZJQVBJICpQRUlfTU1fREVBQ1RJVkFURSkgKA0KPiA+Pj4+Pj4+Pj4gKyAgSU4g RUZJX1BFSV9TRVJWSUNFUyAgICAgICAgICAgICAgICAgICAgICAqKlBlaVNlcnZpY2VzLA0KPiA+ Pj4+Pj4+Pj4gKyAgSU4gRUZJX1BFSV9NTV9DT05UUk9MX1BQSSAgICAgICAgICAgICAgICAqIFRo aXMsDQo+ID4+Pj4+Pj4+PiArICBJTiBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBlcmlvZGljIE9QVElPTkFMDQo+ID4+Pj4+Pj4+PiArICApOw0KPiA+Pj4+Pj4+Pj4gKw0K PiA+Pj4+Pj4+Pj4gKy8vLw0KPiA+Pj4+Pj4+Pj4gKy8vLyAgVGhlIEVGSV9QRUlfTU1fQ09OVFJP TF9QUEkgaXMgcHJvZHVjZWQgYnkgYSBQRUlNLiBJdA0KPiA+Pj4+Pj4gcHJvdmlkZXMNCj4gPj4+ Pj4+PiBhbg0KPiA+Pj4+Pj4+Pj4gYWJzdHJhY3Rpb24gb2YgdGhlDQo+ID4+Pj4+Pj4+PiArLy8v ICBwbGF0Zm9ybSBoYXJkd2FyZSB0aGF0IGdlbmVyYXRlcyBhbiBNTUkuIFRoZXJlIGFyZSBvZnRl bg0KPiA+Pj4+Pj4+Pj4gK0kvTyBwb3J0cw0KPiA+Pj4+Pj4+Pj4gdGhhdCwgd2hlbiBhY2Nlc3Nl ZCwgd2lsbA0KPiA+Pj4+Pj4+Pj4gKy8vLyAgZ2VuZXJhdGUgdGhlIE1NSS4gQWxzbywgdGhlIGhh cmR3YXJlIG9wdGlvbmFsbHkgc3VwcG9ydHMNCj4gPj4+Pj4+Pj4+ICt0aGUNCj4gPj4+Pj4+PiBw ZXJpb2RpYw0KPiA+Pj4+Pj4+Pj4gZ2VuZXJhdGlvbiBvZiB0aGVzZSBzaWduYWxzLg0KPiA+Pj4+ Pj4+Pj4gKy8vLw0KPiA+Pj4+Pj4+Pj4gK3N0cnVjdCBfUEVJX01NX0NPTlRST0xfUFBJIHsNCj4g Pj4+Pj4+Pj4+ICsgIFBFSV9NTV9BQ1RJVkFURSAgICBUcmlnZ2VyOw0KPiA+Pj4+Pj4+Pj4gKyAg UEVJX01NX0RFQUNUSVZBVEUgIENsZWFyOw0KPiA+Pj4+Pj4+Pj4gK307DQo+ID4+Pj4+Pj4+PiAr DQo+ID4+Pj4+Pj4+PiArZXh0ZXJuIEVGSV9HVUlEIGdFZmlQZWlNbUNvbnRyb2xQcGlHdWlkOw0K PiA+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+Pj4gKyNlbmRpZg0KPiA+Pj4+Pj4+Pj4gZGlmZiAtLWdp dCBhL01kZVBrZy9NZGVQa2cuZGVjIGIvTWRlUGtnL01kZVBrZy5kZWMgaW5kZXgNCj4gPj4+Pj4+ Pj4+IGIzODJlZmQ1NzguLjM0ZTBmMzkzOTUgMTAwNjQ0DQo+ID4+Pj4+Pj4+PiAtLS0gYS9NZGVQ a2cvTWRlUGtnLmRlYw0KPiA+Pj4+Pj4+Pj4gKysrIGIvTWRlUGtnL01kZVBrZy5kZWMNCj4gPj4+ Pj4+Pj4+IEBAIC05MjUsNiArOTI1LDEyIEBADQo+ID4+Pj4+Pj4+PiAgICMjIEluY2x1ZGUvUHBp L1NlY0hvYkRhdGEuaA0KPiA+Pj4+Pj4+Pj4gICBnRWZpU2VjSG9iRGF0YVBwaUd1aWQgPSB7IDB4 M2ViZGFmMjAsIDB4NjY2NywgMHg0MGQ4LCB7MHhiNCwNCj4gPj4+Pj4+Pj4+IDB4ZWUsDQo+ID4+ Pj4+Pj4gMHhmNSwNCj4gPj4+Pj4+Pj4+IDB4OTksIDB4OWEsIDB4YzEsIDB4YjcsIDB4MWYgfSB9 DQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gKyAgIyMgSW5jbHVkZS9QcGkvTW1BY2Nlc3MuaA0K PiA+Pj4+Pj4+Pj4gKyAgZ0VmaVBlaU1tQWNjZXNzUHBpR3VpZCAgICAgICAgICA9ICB7IDB4MjY4 ZjMzYTksIDB4Y2NjZCwgMHg0OGJlLA0KPiA+Pj4+PiB7IDB4ODgsDQo+ID4+Pj4+Pj4+IDB4MTcs DQo+ID4+Pj4+Pj4+PiAweDg2LCAweDUsIDB4M2EsIDB4YzMsIDB4MmUsIDB4ZDYgfX0NCj4gPj4+ Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+ICsgICMjIEluY2x1ZGUvUHBpL01tQ29udHJvbC5oDQo+ID4+ Pj4+Pj4+PiArICBnRWZpUGVpTW1Db250cm9sUHBpR3VpZCAgICAgICAgID0gIHsgMHg2MWM2ODcw MiwgMHg0ZDdlLCAweDRmNDMsDQo+ID4+Pj4+IHsgMHg4ZCwNCj4gPj4+Pj4+Pj4gMHhlZiwNCj4g Pj4+Pj4+Pj4+IDB4YTcsIDB4NDMsIDB4NSwgMHhjZSwgMHg3NCwgMHhjNSB9fQ0KPiA+Pj4+Pj4+ Pj4gKw0KPiA+Pj4+Pj4+Pj4gICAjDQo+ID4+Pj4+Pj4+PiAgICMgUFBJcyBkZWZpbmVkIGluIFBJ IDEuNy4NCj4gPj4+Pj4+Pj4+ICAgIw0KPiA+Pj4+Pj4+Pj4gLS0NCj4gPj4+Pj4+Pj4+IDIuMTYu Mi53aW5kb3dzLjENCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4NCj4gPj4+ Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4NCj4gPj4+DQo+ID4+Pg0KPiA+DQo+IA0K PiANCj4gDQoNCg==