From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.151; helo=mga17.intel.com; envelope-from=hao.a.wu@intel.com; receiver=edk2-devel@lists.01.org Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) (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 711E8211E2F0F for ; Thu, 21 Mar 2019 18:33:30 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Mar 2019 18:33:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,255,1549958400"; d="scan'208";a="309320548" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga005.jf.intel.com with ESMTP; 21 Mar 2019 18:33:29 -0700 Received: from fmsmsx113.amr.corp.intel.com (10.18.116.7) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 21 Mar 2019 18:33:29 -0700 Received: from shsmsx106.ccr.corp.intel.com (10.239.4.159) by FMSMSX113.amr.corp.intel.com (10.18.116.7) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 21 Mar 2019 18:33:28 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.74]) by SHSMSX106.ccr.corp.intel.com ([169.254.10.10]) with mapi id 14.03.0415.000; Fri, 22 Mar 2019 09:33:26 +0800 From: "Wu, Hao A" To: Laszlo Ersek , Ard Biesheuvel CC: "edk2-devel@lists.01.org" , "Justen, Jordan L" , "Ni, Ray" Thread-Topic: [PATCH v1 0/2] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg Thread-Index: AQHU2v72KKi1QVwWtUSZpr1S5QC+TqYMAyMAgAS5yyCAAzlegIABsszw//+29ACAAJV8AIAA71hg Date: Fri, 22 Mar 2019 01:33:26 +0000 Message-ID: References: <20190315071603.16936-1-hao.a.wu@intel.com> <2cef7754-a5ab-274e-44ab-14ba092f7d40@redhat.com> <8aecf13a-97d9-357d-b343-094f95f36f86@redhat.com> In-Reply-To: <8aecf13a-97d9-357d-b343-094f95f36f86@redhat.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH v1 0/2] Ovmf: Stop using ISA drivers within IntelFrameworkModulePkg X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Mar 2019 01:33:30 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0 bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gU2VudDogRnJpZGF5LCBNYXJjaCAyMiwgMjAxOSAzOjA0 IEFNDQo+IFRvOiBBcmQgQmllc2hldXZlbDsgV3UsIEhhbyBBDQo+IENjOiBlZGsyLWRldmVsQGxp c3RzLjAxLm9yZzsgSnVzdGVuLCBKb3JkYW4gTDsgTmksIFJheQ0KPiBTdWJqZWN0OiBSZTogW1BB VENIIHYxIDAvMl0gT3ZtZjogU3RvcCB1c2luZyBJU0EgZHJpdmVycyB3aXRoaW4NCj4gSW50ZWxG cmFtZXdvcmtNb2R1bGVQa2cNCj4gDQo+IE9uIDAzLzIxLzE5IDExOjA4LCBBcmQgQmllc2hldXZl bCB3cm90ZToNCj4gPiBPbiBUaHUsIDIxIE1hciAyMDE5IGF0IDA3OjQ0LCBXdSwgSGFvIEEgPGhh by5hLnd1QGludGVsLmNvbT4gd3JvdGU6DQo+ID4+DQo+ID4+Pj4+DQo+ID4+Pj4+IEp1c3QgYSBj b3VwbGUgb2Ygbm90ZXMgZnJvbSBteSBzaWRlIC0gSSdtIHN1cmUgTGFzemxvIHdpbGwgaGF2ZSBh IG11Y2gNCj4gPj4+Pj4gbG9uZ2VyIGxpc3QgOi0pDQo+ID4+Pj4+DQo+ID4+Pj4+IC0gRHJvcHBp bmcgdGhlIGZsb3BweSBkcml2ZXIgaXMgZmluZSB3aXRoIG1lLg0KPiA+Pj4+PiAtIFdoYXQgaXMg T1ZNRiBzcGVjaWZpYyBhYm91dCB0aGlzIGRyaXZlcj8gSXMgaXQgb25seSB0aGUgaGFyZGNvZGVk DQo+ID4+Pj4+IGxpc3Qgb2YgQ09NMS9DT00yL1BTMiBrZXlib2FyZD8gSWYgc28sIHNob3VsZCB3 ZSBzcGxpdCB0aGlzIGludG8gYQ0KPiA+Pj4+PiBkcml2ZXIgYW5kIGEgbGlicmFyeSBjbGFzcywg d2hlcmUgdGhlIGRyaXZlciBsaXZlcyBpbiBNZGVNb2R1bGVQa2csDQo+ID4+Pj4+IGFuZCB0aGUg bGlicmFyeSBpcyBpbXBsZW1lbnRlZCBpbiB0aGUgY29udGV4dCBvZiBPVk1GPw0KPiA+Pj4+DQo+ ID4+Pj4gSGVsbG8gQXJkLA0KPiA+Pj4+DQo+ID4+Pj4gSSB0aGluayB0aGUgc3BlY2lhbCB0aGlu ZyBmb3IgdGhpcyBvbmUgaXMgdGhhdDoNCj4gPj4+PiBGb3IgUUVNVSwgaXQgZG9lcyBub3QgaGF2 ZSBhIFN1cGVyIEkvTyAoU0lPKSBjaGlwLiBXaGlsZSwgYXMgZmFyIGFzIEkNCj4gPj4+PiBrbm93 LCB0aGUgU0lPIGNoaXAgZXhpc3RzIG9uIG90aGVyIHBsYXRmb3Jtcy4gVGhlIGRyaXZlciBwcm9w b3NlZCBoZXJlDQo+ID4+Pj4gc2ltdWxhdGVzIHRoZSBiZWhhdmlvciBvZiBhbiBTSU8gY2hpcC4g SU1PLCBpZiB3ZSBmaW5kIG1vcmUgcGxhdGZvcm1zDQo+IHRoYXQNCj4gPj4+PiBkbyBub3QgaGF2 ZSBhIFNJTyBjaGlwLCB3ZSBjYW4gY29udmVydCB0aGUgZHJpdmVyIGludG8gYSBnZW5lcmFsIG9u ZS4NCj4gPj4+Pg0KPiA+Pj4+IEFsc28sIGZvciB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIHNl cnZpY2VzIGluIHRoZSBTdXBlciBJL08gcHJvdG9jb2wsDQo+ID4+Pj4gdGhlIHByb3Bvc2VkIGRy aXZlciBqdXN0IGRvZXMgdGhlIG1pbmltYWwgZWZmb3J0IGluIG9yZGVyIHRvIHN1cHBvcnQgdGhl DQo+ID4+Pj4gc2VyaWFsL1BTMiBrZXlib2FyZC4NCj4gPj4+DQo+ID4+PiBIZXJlJ3Mgd2h5IEkn ZCBsaWtlIHRoZSBtYWpvcml0eSBvZiB0aGlzIGRyaXZlciB0byBsaXZlIHVuZGVyDQo+ID4+PiBN ZGVNb2R1bGVQa2cgKGZvciBleGFtcGxlIHRocm91Z2ggYSBsaWIgY2xhc3Mgc2VwYXJhdGlvbiBs aWtlIEFyZA0KPiBzdWdnZXN0cyk6DQo+ID4+Pg0KPiA+Pj4gQmVjYXVzZSB0aGVuIGl0cyBtYWlu dGVuYW5jZSB3b3VsZCBub3QgYmUgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIE92bWZQa2cNCj4gPj4+ IG1haW50YWluZXJzLg0KPiA+Pj4NCj4gPj4+IENvbnNpZGVyLCB0aGlzIGRyaXZlciBpcyBhYnNv bHV0ZWx5IGh1Z2UgKDEuNS0yIGtMT0MpLCBmb3IgZG9pbmcgInRoZQ0KPiA+Pj4gbWluaW1hbCBl ZmZvcnQgaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGUgc2VyaWFsL1BTMiBrZXlib2FyZCIuDQo+ID4+ Pg0KPiA+Pj4gVGhlIHJpc2sgb2YgcmVncmVzc2lvbnMgaXMgZXh0cmVtZSAodGhlIFBTLzIga2V5 Ym9hcmQgaXMgdGhlIGRlZmF1bHQNCj4gPj4+IG9uZSwgYW5kIGlmIGl0IGJyZWFrcyAqc3VidGx5 KiwgYWxtb3N0IGFsbCB1c2VycyB3aWxsIGJlIGluY29udmVuaWVuY2VkLA0KPiA+Pj4gYnV0IG5v dCBuZWNlc3NhcmlseSBzb29uIGVub3VnaCBmb3IgdXMgdG8gZ2V0IHJlcG9ydHMgYWJvdXQgaXQg KmVhcmx5Kg0KPiA+Pj4gaW4gdGhlIGN1cnJlbnQgZGV2ZWxvcG1lbnQgY3ljbGUpLg0KPiA+Pj4N Cj4gPj4+IEkgcmVhbGl6ZSB0aGF0IEludGVsRnJhbWV3b3JrTW9kdWxlUGtnL0J1cy9Jc2EvKiBk cml2ZXJzIGFyZSBmcm93bmVkDQo+ID4+PiB1cG9uIG5vd2FkYXlzLCB0aGV5IG1heSBiZSB1Z2x5 IC8gcGxhdGZvcm0gc3BlY2lmaWMgLyBldGMgZXRjIGV0YywgYnV0DQo+ID4+PiB0aGV5IGhhdmUg YWxzbyBwcm92ZWQgdGhlbXNlbHZlcyB0byAqd29yayosIGFuZCAoYXMgZmFyIGFzIEkgcmVtZW1i ZXIpDQo+ID4+PiB0aGV5IGhhdmUgcmVxdWlyZWQgcHJhY3RpY2FsbHkgemVybyBmaXhlcyBpbiBv cmRlciB0byBmdW5jdGlvbiB3ZWxsIG9uIFFFTVUuDQo+ID4+Pg0KPiA+Pj4gSXQgaXMgdmVyeSB1 bndlbGNvbWUgYnkgbWUgdG8gdGFrZSBvbiB0aGUgbWFpbnRlbmFuY2UgYnVyZGVuIGZvciBhDQo+ ID4+PiBkcml2ZXIgdGhhdCBpcyBhbGwgb2Y6DQo+ID4+PiAtIG5vdCB3aWRlbHkgdGVzdGVkLA0K PiA+Pj4gLSByZXBsYWNpbmcgYSBwcm92ZW4gc2V0IG9mIGRyaXZlcnMgdGhhdCBpcyBjcml0aWNh bCB0byB1c2VycywNCj4gPj4+IC0gbGFyZ2UuDQo+ID4+Pg0KPiA+Pj4gSSB1bmRlcnN0YW5kIHRo YXQgSW50ZWwgd2FudHMgdG8gc3RvcCBtYWludGFpbmluZw0KPiA+Pj4gSW50ZWxGcmFtZXdvcmtN b2R1bGVQa2cvQnVzL0lzYS8qLCBidXQgdGhlIGFib3ZlIHByaWNlIGlzIHRvbyBoaWdoIGZvcg0K PiBtZS4NCj4gPj4+DQo+ID4+PiBDb21wYXJlIHRoZSBjYXNlIGlmIHdlIHNpbXBseSBtb3ZlZCB0 aGUNCj4gPj4+IEludGVsRnJhbWV3b3JrTW9kdWxlUGtnL0J1cy9Jc2EvKiBkcml2ZXJzIHVuZGVy IE92bWZQa2c6DQo+ID4+PiAtIHN0aWxsIGxhcmdlLA0KPiA+Pj4gLSBidXQgd2lkZWx5IHRlc3Rl ZCAod2l0aCBtaW5pbWFsIGNodXJuIGluIHRoZSBwYXN0KSwNCj4gPj4+IC0gYW5kIG5vIHJpc2sg b2YgcmVncmVzc2lvbnMuDQo+ID4+Pg0KPiA+Pj4gU28gaW4gdGhpcyBmb3JtLCBJJ20gZ2VuZXJh bGx5IG9wcG9zZWQgdG8gdGhlIHN3aXRjaC4gVGhlIHR3byBzZXRzIG9mDQo+ID4+PiBkcml2ZXJz IG5lZWQgdG8gY29leGlzdCBmb3IgYSB3aGlsZSwgYW5kIHdlIG11c3QgZXhwb3NlIHRoZSBuZXcg ZHJpdmVycw0KPiA+Pj4gdG8gdXNlcnMgd2hpbGUgcHJvdmlkaW5nIHRoZW0gd2l0aCBzb21lIHNv cnQgb2YgZWFzeSBmYWxsYmFjay4gKEknZA0KPiA+Pj4gcHJlZmVyIHRoYXQgZmFsbGJhY2sgdG8g YmUgZHluYW1pY2FsbHkgY29uZmlndXJhYmxlLCBidXQsIGFnYWluLCBpZiB5b3VyDQo+ID4+PiBr ZXlib2FyZCBicmVha3MsIGhvdyBkbyB5b3UgaW50ZXJhY3Qgd2l0aCBlLmcuIHRoZSBVRUZJIHNo ZWxsPyBTbyBJDQo+ID4+PiBndWVzcyBhIHN0YXRpYyBidWlsZCBmbGFnIHdvdWxkIGRvIGFzIHdl bGwuKSBJIHRoaW5rIHRoZSBvbGQgZHJpdmVycw0KPiA+Pg0KPiA+PiBIZWxsbyBMYXN6bG8sDQo+ ID4+DQo+ID4+IEkgYWdyZWUgd2l0aCB5b3VyIHBvaW50LiBTbyB5b3VyIHN1Z2dlc3Rpb24gaXMg dG86DQo+ID4+DQo+ID4+IDEuIER1cGxpY2F0ZSB0aGUgYmVsb3cgZHJpdmVycyBpbnRvIE92bWZQ a2c6DQo+ID4+ICAgUGNBdENoaXBzZXRQa2cvSXNhQWNwaUR4ZS9Jc2FBY3BpLmluZg0KPiA+PiAg IEludGVsRnJhbWV3b3JrTW9kdWxlUGtnL0J1cy9Jc2EvSXNhQnVzRHhlL0lzYUJ1c0R4ZS5pbmYN Cj4gPj4gICBJbnRlbEZyYW1ld29ya01vZHVsZVBrZy9CdXMvSXNhL0lzYVNlcmlhbER4ZS9Jc2FT ZXJpYWxEeGUuaW5mDQo+ID4+ICAgSW50ZWxGcmFtZXdvcmtNb2R1bGVQa2cvQnVzL0lzYS9QczJL ZXlib2FyZER4ZS9QczJrZXlib2FyZER4ZS5pbmYNCj4gPj4NCj4gPj4gMi4gTWVhbndoaWxlLCBh ZGQgdGhlIHByb3Bvc2VkIFNpb0J1c0R4ZSBkcml2ZXIgaW4gdGhlIE92bWZQa2cgYXMgd2VsbA0K PiA+Pg0KPiA+PiAzLiBBZGQgYSBzdGF0aWMgYnVpbGQgZmxhZyB3aXRoaW4gT3ZtZlBrZyB0byBs ZXQgdXNlcnMgY2hvb3NlIGJldHdlZW46DQo+ID4+ICAgIGEpIE5ldyBPVk1GIFNpb0J1c0R4ZSBk cml2ZXIgKyBJU0EgZGV2aWNlIGRyaXZlcnMgdW5kZXINCj4gPj4gICAgICAgTWRlTW9kdWxlUGtn L0J1cy9Jc2E7DQo+ID4+ICAgIGIpIExlZ2FjeSBJU0Egc3RhY2sgY29waWVkIGZyb20gUGNBdENo aXBzZXRQa2cgJg0KPiBJbnRlbEZyYW1ld29ya01vZHVsZVBrZw0KPiA+Pg0KPiA+PiBJcyBteSB1 bmRlcnN0YW5kaW5nIGNvcnJlY3Q/DQo+IA0KPiBZZXMgKGJ1dCBzZWUgYmVsb3csIGF0IHRoZSBl bmQpLg0KPiANCj4gPj4+IHNob3VsZCBiZSByZW1vdmVkIG9ubHkgaW4gdGhlIGVkazIgc3RhYmxl IHRhZyB0aGF0IGNvbWVzICphZnRlciogdGhlDQo+ID4+PiBuZXh0IG9uZSwgb25jZSB3ZSd2ZSBn aXZlbiB0aGUgZHJpdmVycyBlbm91Z2ggdGltZSB0byAicHJvdmUgdGhlbXNlbHZlcyIuDQo+ID4+ DQo+ID4+IERvIHlvdSBtZWFuIHdlIHNob3VsZCBrZWVwIHRoZSBjb3B5IG9mIHRoZSBsZWdhY3kg SVNBIHN0YWNrIGZyb20NCj4gPj4gUGNBdENoaXBzZXRQa2cgJiBJbnRlbEZyYW1ld29ya01vZHVs ZVBrZyB1bnRpbCB0aGUgYW5ub3VuY2VtZW50IG9mDQo+ID4+IGVkazItc3RhYmxlMjAxOTA1IHRh Zz8NCj4gDQo+IFllcywgZXhhY3RseS4gUGVvcGxlIHRoYXQgYWRvcHQgImVkazItc3RhYmxlMjAx OTA1IiBzaG91bGQgYmUgYWJsZSB0bw0KPiBzd2l0Y2ggYmFjayB0byB0aGUgb2xkIGRyaXZlciBz dGFjay4NCj4gDQo+IE5COiBJIGNlcnRhaW5seSBhZ3JlZSB0aGF0IHRoZSBuZXcgY29kZSBzaG91 bGQgYmUgbWFkZSB0aGUgKmRlZmF1bHQqLg0KPiANCj4gPj4NCj4gPg0KPiA+IEkgdGhpbmsgd2Ug c2hvdWxkIGp1c3Qga2VlcCB0aGUgSW50ZWxGcmFtZXdvcmtNb2R1bGVQa2cgY29tcG9uZW50cyBp bg0KPiA+IHBsYWNlIHVudGlsIHdlIGFyZSByZWFkeSB0byBzdG9wIHVzaW5nIHRoZW0gaW4gT1ZN Ri4gQ2xvbmluZyB0aGVtIGludG8NCj4gPiBPdm1mUGtnIG5vdyBqdXN0IHNvIHdlIGNhbiByZW1v dmUgSW50ZWxGcmFtZXdvcmtNb2R1bGVQa2cgaW4gaXRzDQo+ID4gZW50aXJldHkgaGFzIGxpdHRs ZSBhZGRlZCB2YWx1ZSBJTU8uDQo+IA0KPiBJIGZ1bGx5IGFncmVlIHdpdGggdGhpcyBtb2RpZmlj YXRpb24gKGl0IG1pbmltaXplcyB0aGUgY2h1cm4pLCBidXQgSSdtDQo+IHVuc3VyZSBob3cgcXVp Y2tseSBJbnRlbCB3b3VsZCBsaWtlIHRvIHJpZCB0aGVtc2VsdmVzIG9mDQo+IEludGVsRnJhbWV3 b3JrTW9kdWxlUGtnLiBJZiB0aGVpciBkZWFkbGluZSBpcyBlZGsyLXN0YWJsZTIwMTkwNSwgdGhl bg0KPiB0aGF0IGNvbmZsaWN0cyB3aXRoIG15IHJlcXVlc3QgYWJvdmUsIGFuZCB3ZSBtaWdodCBo YXZlIG5vIGNob2ljZSBpbg0KPiBtb3ZpbmcgdGhlIGNvZGUgdG8gT3ZtZlBrZywgZm9yIHRoZSBz YWtlIG9mIG9uZSBtb3JlIHN0YWJsZSB0YWcuDQoNCkhlbGxvIExhc3psbyBhbmQgQXJkLA0KDQpI b3cgYWJvdXQgdGhlIGJlbG93IGFwcHJvYWNoOg0KDQoxLiAgS2VlcCB0aGUgY3VycmVudCBJU0Eg c3RhY2sgaW4gT3ZtZjoNCiAgUGNBdENoaXBzZXRQa2cvSXNhQWNwaUR4ZS9Jc2FBY3BpLmluZg0K ICBJbnRlbEZyYW1ld29ya01vZHVsZVBrZy9CdXMvSXNhL0lzYUJ1c0R4ZS9Jc2FCdXNEeGUuaW5m DQogIEludGVsRnJhbWV3b3JrTW9kdWxlUGtnL0J1cy9Jc2EvSXNhU2VyaWFsRHhlL0lzYVNlcmlh bER4ZS5pbmYNCiAgSW50ZWxGcmFtZXdvcmtNb2R1bGVQa2cvQnVzL0lzYS9QczJLZXlib2FyZER4 ZS9QczJrZXlib2FyZER4ZS5pbmYNCg0KMi4gIEFkZCB0aGUgcHJvcG9zZWQgU2lvQnVzRHhlIGRy aXZlciBpbiB0aGUgT3ZtZlBrZy4NCg0KMy4gIEFkZCBhIHN0YXRpYyBidWlsZCBmbGFnIHdpdGhp biBPdm1mUGtnIHRvIGxldCB1c2VycyBjaG9vc2UgYmV0d2VlbjoNCiAgIGEpIE5ldyBPVk1GIFNp b0J1c0R4ZSBkcml2ZXIgKyBJU0EgZGV2aWNlIGRyaXZlcnMgdW5kZXINCiAgICAgIE1kZU1vZHVs ZVBrZy9CdXMvSXNhOw0KICAgYikgT3JpZ2luIElTQSBzdGFjayAodGhlIFBjQXRDaGlwc2V0UGtn ICYgSW50ZWxGcmFtZXdvcmtNb2R1bGVQa2cgb25lKTsNCiAgIGMpIERlZmF1bHQgYmVoYXZpb3Ig d2lsbCBiZSB1c2luZyB0aGUgc3RhY2sgbWVudGlvbmVkIGluIGEpLg0KICAgDQo0YS4gSWYgdGhl IHJlbW92YWwgb2YgUGNBdENoaXBzZXRQa2cvSXNhQWNwaUR4ZSAmIEludGVsRnJhbWV3b3JrTW9k dWxlUGtnDQogICAgY29tZXMgYmVmb3JlIHRoZSBlZGsyLXN0YWJsZTIwMTkwNSB0YWcsIGNvcHkg dGhlIGRyaXZlcnMgaW4gMS4gaW50bw0KICAgIE92bWZQa2cuDQoNCjRiLiBJZiB0aGUgcmVtb3Zh bCBvZiBQY0F0Q2hpcHNldFBrZy9Jc2FBY3BpRHhlICYgSW50ZWxGcmFtZXdvcmtNb2R1bGVQa2cN CiAgICBjb21lcyBhZnRlciB0aGUgZWRrMi1zdGFibGUyMDE5MDUgdGFnLCBkcm9wIHRoZQ0KICAg IFBjQXRDaGlwc2V0UGtnL0ludGVsRnJhbWV3b3JrTW9kdWxlUGtnIElTQSBzdGFjayBpbiBPVk1G IHRvZ2V0aGVyIHdpdGgNCiAgICB0aGUgcmVtb3ZhbCBvZiBQY0F0Q2hpcHNldFBrZy9Jc2FBY3Bp RHhlICYgSW50ZWxGcmFtZXdvcmtNb2R1bGVQa2cuDQoNCldoYXQgZG8geW91IHRoaW5rIG9mIHRo ZSBhYm92ZSBzdHJhdGVneT8gVGhhbmtzLg0KDQpCZXN0IFJlZ2FyZHMsDQpIYW8gV3UNCg0KPiAN Cj4gVGhhbmtzDQo+IExhc3psbw0K