From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=helo; client-ip=104.47.37.86; helo=nam02-cy1-obe.outbound.protection.outlook.com; envelope-from=leo.duran@amd.com; receiver=edk2-devel@lists.01.org Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0086.outbound.protection.outlook.com [104.47.37.86]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 320F5211546E6 for ; Fri, 21 Sep 2018 10:13:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PEdQPkb3s1SPkbdNI+kViHHTGPG/dZSAsMlWMpMeHA0=; b=Ftt0pbTaPBxMcrFQl16ZgbguZyfn7tKwocl35lZonQtPVTeH0nV5ai7+RJ0HXluilvorW1jpMf7mi0EWvyCDahP94wldrH1gzSnpUpL6O+JAuvmwpwEmBfpEiePSRIg7pVMXIsXxHI/+IPVyTrHvniO1hNKVgChBYzdJAtsPLn8= Received: from CY4PR12MB1815.namprd12.prod.outlook.com (10.175.63.21) by CY4PR12MB1910.namprd12.prod.outlook.com (10.175.82.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.18; Fri, 21 Sep 2018 17:13:04 +0000 Received: from CY4PR12MB1815.namprd12.prod.outlook.com ([fe80::ecd7:135f:4e1b:2d82]) by CY4PR12MB1815.namprd12.prod.outlook.com ([fe80::ecd7:135f:4e1b:2d82%3]) with mapi id 15.20.1143.019; Fri, 21 Sep 2018 17:13:04 +0000 From: "Duran, Leo" To: "Ni, Ruiyu" , Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Dong, Eric" Thread-Topic: [edk2] [PATCH] UefiCpuPkg/MtrrLib: Add flag to skip disabling MTRRs prior to MTRR change. Thread-Index: AQHUSeX3EbC17fDvXkWWIRAmwJTcUaTrbK6AgAANLJCAAO+ogIAAVCzAgAAzL4CAAAHbwIAAj1YAgAEZC8CAAJxFAIAFdsQggAAHwQCAAQskAIAAaJZwgAEwkgCAA6cmAIAABPgA Date: Fri, 21 Sep 2018 17:13:03 +0000 Message-ID: References: <1536680498-6554-1-git-send-email-leo.duran@amd.com> <1536680498-6554-2-git-send-email-leo.duran@amd.com> <17c6d6d1-2655-fe06-a8b9-f48141bfb0d7@redhat.com> <610eaa55-c87b-5e0c-4f87-5c1e79ffc5ba@redhat.com> <12abd990-3b08-9159-e7a9-ffd7eb7282b3@redhat.com> <734D49CCEBEEF84792F5B80ED585239D5BE07168@SHSMSX104.ccr.corp.intel.com> <981751ac-68a0-ea2c-7985-2562d1916560@Intel.com> <85b907c0-1d7d-98f1-6e86-6bb3a3f86ffb@redhat.com> <5349de2c-8a15-c599-f966-84b87a517453@Intel.com> <698c833c-163d-ccde-8f4e-eae083997895@Intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=leo.duran@amd.com; x-originating-ip: [165.204.77.1] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CY4PR12MB1910; 20:ktzXMXawRzeNipDzZlVurK2s0jn5tdAenTAbjyoqXTQUWLyDFhQbZ8svuu4k5p1Salyr3Gm+lUpLcOL4b5zkE9y5kxvGgXzP1iWHdzkKYY9Rstxq0VOXrIWHiCPIvlmPPcIWyV0TnOjaYMUWDp2asuGub56eAT06MLu5Bo+5TUPWDFjq2FS4Jg6pUfGhlm7YYCoGeu+dUkMUyPtN6ZhMq0pEmQcqiEna2oHkPjMMyGENg3XkNPCw7lM34v4NCunr x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 01c448de-71d4-4657-9495-08d61fe57dec x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:CY4PR12MB1910; x-ms-traffictypediagnostic: CY4PR12MB1910: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(162533806227266)(228905959029699)(17755550239193)(163750095850)(767451399110); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231355)(944501410)(52105095)(3002001)(93006095)(93001095)(10201501046)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(201708071742011)(7699051); SRVR:CY4PR12MB1910; BCL:0; PCL:0; RULEID:; SRVR:CY4PR12MB1910; x-forefront-prvs: 0802ADD973 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(376002)(396003)(39860400002)(136003)(366004)(13464003)(189003)(199004)(446003)(81166006)(9686003)(105586002)(76176011)(99286004)(305945005)(7696005)(7736002)(26005)(93886005)(478600001)(74316002)(53546011)(6506007)(110136005)(476003)(14454004)(71200400001)(71190400001)(966005)(4326008)(11346002)(186003)(102836004)(486006)(55016002)(2501003)(6436002)(2906002)(33656002)(106356001)(6246003)(2900100001)(2940100002)(256004)(66066001)(25786009)(6306002)(5250100002)(316002)(68736007)(93156006)(53936002)(6116002)(86362001)(8936002)(81156014)(5660300001)(3846002)(229853002)(8676002)(97736004); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR12MB1910; H:CY4PR12MB1815.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: dhluMSqHw/YUuS8q/op8L4L2PVI7PW6G+uRlNQfjJVDdF9SAG+2OF3J3bgUmKl3q29DSQMf0EbxVAfFBpbol86VKAgOrFGqF9KDsViXWetPQ28wCkFLZsPlGakMpiMloduqDqZfgFvWXnxLrBLVk3VIBrndhU7+GiVnGggM52zuVkfn7GEdDA4Q7wNpMx0eRkaXCcESQ9hSE8+ENYKtIn02xQ1/CMPtHsCgJJV6EnEQAiW5aeZusK986JUQCJnbjiKRwWe520ly6kvNuIQMagArnhIcbd7pME42xh9ssDyDzbUtQNBmsjfsRUOnStpLJABf52eaG+0tFevBzEwo56kUSws4shC4YDQ6E6gKwyN8= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 01c448de-71d4-4657-9495-08d61fe57dec X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Sep 2018 17:13:03.8230 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1910 Subject: Re: [PATCH] UefiCpuPkg/MtrrLib: Add flag to skip disabling MTRRs prior to MTRR change. 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, 21 Sep 2018 17:13:06 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRHVyYW4sIExlbw0KPiBT ZW50OiBGcmlkYXksIFNlcHRlbWJlciAyMSwgMjAxOCAxMTo1MyBBTQ0KPiBUbzogJ05pLCBSdWl5 dScgPHJ1aXl1Lm5pQEludGVsLmNvbT47IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+ Ow0KPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiBDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25n QGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtlZGsyXSBbUEFUQ0hdIFVlZmlDcHVQa2cvTXRy ckxpYjogQWRkIGZsYWcgdG8gc2tpcCBkaXNhYmxpbmcNCj4gTVRSUnMgcHJpb3IgdG8gTVRSUiBj aGFuZ2UuDQo+IA0KPiANCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBG cm9tOiBOaSwgUnVpeXUgPHJ1aXl1Lm5pQEludGVsLmNvbT4NCj4gPiBTZW50OiBXZWRuZXNkYXks IFNlcHRlbWJlciAxOSwgMjAxOCAzOjU5IEFNDQo+ID4gVG86IER1cmFuLCBMZW8gPGxlby5kdXJh bkBhbWQuY29tPjsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47DQo+ID4gZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiBDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNv bT4NCj4gPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSF0gVWVmaUNwdVBrZy9NdHJyTGliOiBB ZGQgZmxhZyB0byBza2lwDQo+ID4gZGlzYWJsaW5nIE1UUlJzIHByaW9yIHRvIE1UUlIgY2hhbmdl Lg0KPiA+DQo+ID4gT24gOS8xOC8yMDE4IDEwOjU3IFBNLCBEdXJhbiwgTGVvIHdyb3RlOg0KPiA+ ID4NCj4gPiA+DQo+ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+PiBGcm9t OiBOaSwgUnVpeXUgW21haWx0bzpydWl5dS5uaUBJbnRlbC5jb21dDQo+ID4gPj4gU2VudDogVHVl c2RheSwgU2VwdGVtYmVyIDE4LCAyMDE4IDM6MzQgQU0NCj4gPiA+PiBUbzogTGFzemxvIEVyc2Vr IDxsZXJzZWtAcmVkaGF0LmNvbT47IER1cmFuLCBMZW8NCj4gPiA8bGVvLmR1cmFuQGFtZC5jb20+ Ow0KPiA+ID4+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gPj4gQ2M6IERvbmcsIEVyaWMg PGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+ID4gPj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0hd IFVlZmlDcHVQa2cvTXRyckxpYjogQWRkIGZsYWcgdG8gc2tpcA0KPiA+ID4+IGRpc2FibGluZyBN VFJScyBwcmlvciB0byBNVFJSIGNoYW5nZS4NCj4gPiA+Pg0KPiA+ID4+IE9uIDkvMTgvMjAxOCAx MjozOCBBTSwgTGFzemxvIEVyc2VrIHdyb3RlOg0KPiA+ID4+PiBPbiAwOS8xNy8xOCAxODoyMCwg RHVyYW4sIExlbyB3cm90ZToNCj4gPiA+Pj4+DQo+ID4gPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPiA+Pj4+PiBGcm9tOiBOaSwgUnVpeXUgPHJ1aXl1Lm5pQEludGVsLmNvbT4N Cj4gPiA+Pj4+PiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDEzLCAyMDE4IDExOjQ0IFBNDQo+ ID4gPj4+Pj4gVG86IER1cmFuLCBMZW8gPGxlby5kdXJhbkBhbWQuY29tPjsgTGFzemxvIEVyc2Vr DQo+ID4gPj4+Pj4gPGxlcnNla0ByZWRoYXQuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcN Cj4gPiA+Pj4+PiBDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT4NCj4gPiA+Pj4+ PiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSF0gVWVmaUNwdVBrZy9NdHJyTGliOiBBZGQgZmxh ZyB0byBza2lwDQo+ID4gPj4+Pj4gZGlzYWJsaW5nIE1UUlJzIHByaW9yIHRvIE1UUlIgY2hhbmdl Lg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gT24gOS8xNC8yMDE4IDM6MzEgQU0sIER1cmFuLCBMZW8g d3JvdGU6DQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+ID4+Pj4+Pj4gRnJvbTogTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRl bC5jb20+DQo+ID4gPj4+Pj4+PiBTZW50OiBXZWRuZXNkYXksIFNlcHRlbWJlciAxMiwgMjAxOCA5 OjM5IFBNDQo+ID4gPj4+Pj4+PiBUbzogRHVyYW4sIExlbyA8bGVvLmR1cmFuQGFtZC5jb20+OyBM YXN6bG8gRXJzZWsNCj4gPiA+Pj4+PiA8bGVyc2VrQHJlZGhhdC5jb20+Ow0KPiA+ID4+Pj4+Pj4g ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+Pj4+Pj4+IENjOiBEb25nLCBFcmljIDxlcmlj LmRvbmdAaW50ZWwuY29tPg0KPiA+ID4+Pj4+Pj4gU3ViamVjdDogUkU6IFtQQVRDSF0gVWVmaUNw dVBrZy9NdHJyTGliOiBBZGQgZmxhZyB0byBza2lwDQo+ID4gPj4+Pj4+PiBkaXNhYmxpbmcgTVRS UnMgcHJpb3IgdG8gTVRSUiBjaGFuZ2UuDQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4gTGVvLA0K PiA+ID4+Pj4+Pj4gU29ycnkgSSB3YXMgaW4gbGVhdmUgeWVzdGVyZGF5IHNvIGRpZG4ndCBzZWUg dGhlIG1haWwuDQo+ID4gPj4+Pj4+PiBXaGljaCBNU1JzIGFyZSBzaGFyZWQ/IE9ubHkgdGhlDQo+ ID4gPj4+Pj4gTVNSX0lBMzJfTVRSUl9ERUZfVFlQRV9SRUdJU1RFUj8NCj4gPiA+Pj4+Pj4+IE9y IGFsbCB0aGUgTVNScyB0aGF0IGNvbmZpZ3VyZXMgdGhlIENQVSBNVFJSIHNldHRpbmc/DQo+ID4g Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+PiBIaSBSYXksDQo+ID4gPj4+Pj4+IFRoZSBN VFRSIGNvbmZpZyBNU1JzIGFyZSBhbHNvIHNoYXJlZCBieSB0aHJlYWRzIHdpdGhpbiBhIGNvcmUu DQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBIaSBMZW8sDQo+ID4gPj4+Pj4gRG8g eW91IHRoaW5rIHRoYXQgZml4aW5nIHRoZSBjYWxsZXIgaXMgbW9yZSBwcm9wZXI/DQo+ID4gPj4+ Pg0KPiA+ID4+Pj4gSGkgUmF5LA0KPiA+ID4+Pj4gQWN0dWFsbHksDQo+ID4gPj4+PiBUaGUgcHJv cG9zZWQgUENEIGlzIHRoZSBzaW1wbGVzdCBzb2x1dGlvbiwgYXMgdGhhdCB3b3JrcyBmb3IgdXMN Cj4gPiA+Pj4+IGFuZCBkb2VzDQo+ID4gPj4gbm90IGNoYW5nZSB0aGUgZXhpc3RpbmcgKGRlZmF1 bHQpIGZsb3cuDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gVGhhdCBpcywNCj4gPiA+Pj4+IEknZCBwcmVm ZXIgbWFraW5nIGEgZGVjaXNpb24gYWJvdXQgdGhlIFBDRCBpbiBwbGF0Zm9ybS1zcGVjaWZpYw0K PiA+ID4+Pj4gY29kZSwNCj4gPiA+PiByYXRoZXIgdGhhbiBpbnRyb2R1Y2luZyBjb21wbGV4IGRl dGVjdGlvbiBhbmQgaGV1cmlzdGljcyBhdCB0aGUNCj4gPiA+PiBjYWxsZXIgbGV2ZWwgaW4NCj4g PiA+PiBFREsyIChqdXN0IGZvciBBTUQpLg0KPiA+ID4+Pj4NCj4gPiA+Pj4+IFNvLCBwbGVhc2Ug YXBwcm92ZSB0aGUgUENELg0KPiA+ID4+DQo+ID4gPj4gTGVvLA0KPiA+ID4+IEkgYWdyZWUgd2l0 aCB5b3Ugb24gdGhlIGZpcnN0IHBhcnQgInRoZSBQQ0QgaXMgdGhlIHNpbXBsZXN0IHNvbHV0aW9u Ii4NCj4gPiA+PiBCdXQgdGhpcyByZWFsbHkgbG9va3MgbGlrZSBhIHdvcmthcm91bmQgb2YgdGhl IHJlYWwgaXNzdWUuDQo+ID4gPj4gRm9yIGEgbXVsdGlwbGUtc29ja2V0IHN5c3RlbSwgaXQgbWF5 IGNvbnRhaW4gUyBzb2NrZXRzLCBlYWNoIHNvY2tldA0KPiA+ID4+IGNvbnRhaW5zIEMgY29yZXMg YW5kIGVhY2ggY29yZSBjb250YWlucyBUIHRocmVhZHMuIEluIHN1bW1hcnkgdGhlDQo+ID4gPj4g c3lzdGVtIGNvbnRhaW5zIFMgKiBDICogVCB0aHJlYWRzLg0KPiA+ID4+IEFzIHlvdSBzYWlkIGFs bCB0aHJlYWRzIGluc2lkZSBhIGNvcmUgc2hhcmUgdGhlIE1UUlIgc2V0dGluZy4NCj4gPiA+PiBE byBhbGwgY29yZXMgaW5zaWRlIGEgc29ja2V0IHNoYXJlIHRoZSBNVFJSIHNldHRpbmc/DQo+ID4g Pj4gRG8gYWxsIHNvY2tldHMgc2hhcmUgdGhlIE1UUlIgc2V0dGluZz8NCj4gPiA+Pg0KPiA+ID4+ IElmIG9uZSBvZiB0aGUgYW5zd2VyIG9mIGFib3ZlIHF1ZXN0aW9ucyBpcyAibm8iLCBob3cgY2Fu IHdlDQo+ID4gPj4gY29uZmlndXJlIHRoZSBQQ0Q/DQo+ID4gPj4NCj4gPiA+IFtEdXJhbiwgTGVv XQ0KPiA+ID4gSGkgUmF5LA0KPiA+ID4gVGhlIE1UVFIgc2V0dGluZ3MgYXJlIHNoYXJlIGJ5IHRo cmVhZHMgd2l0aGluIGEgY29yZSAoYnV0IGVhY2ggY29yZQ0KPiA+ID4gaGFzIGl0cyBvd24sIGV0 Yy4pIFRoZSBQQ0Qgd291bGQgYmUgc2V0IGluIG91ciBwbGF0Zm9ybS1zcGVjaWZpYw0KPiA+ID4g Y29kZSAoZS5nLiwNCj4gPiBpdCBjYW4gYmUgc2V0IGF0IGJ1aWxkLXRpbWUgaW4gdGhlIC5EU0Mg ZmlsZSkuDQo+ID4gPg0KPiA+ID4gQXMgSSBtZW50aW9uZWQsDQo+ID4gPiBXZSBkb24ndCBuZWVk IChNdHJyLkVuYWJsZT0wKSB0byBjaGFuZ2UgTVRSUiBzZXR0aW5ncywgc28gaGF2aW5nIHRoZQ0K PiA+IFBDRCB0byBza2lwIChNdHJyLkVuYWJsZT0wKSBpcyByZWFzb25hYmxlIGZvciB1cy4NCj4g PiA+DQo+ID4gPiBMZW8uDQo+ID4gPg0KPiA+DQo+ID4gSWYgdGhlIFBDRCBpcyBmYWxzZSwgbm8g dGhyZWFkIGRpc2FibGVzIHRoZSBNVFJSIGJlZm9yZSBwcm9ncmFtbWluZyBpdC4NCj4gPiBJcyBp dCBzYWZlPyBQZXIgSW50ZWwncyBTRE0sIGl0J3Mgbm90Lg0KPiA+DQo+ID4gTWF5YmUgaXQgd29y a3MgaW4gQU1EJ3MgY2FzZS4gQnV0IEkgc3RpbGwgc3VnZ2VzdCB3ZSBjaGFuZ2UgdGhlDQo+ID4g Y2FsbGVyLCB3aGljaCBpcyBtb3JlIG5hdHVyYWwuDQo+ID4gQXQgbGVhc3QgSSdkIGxpa2UgdG8g c2VlIGhvdyBwb3RlbnRpYWwtdWdseSB0aGUgY2hhbmdlIGNhbiBiZS4NCj4gPiBXZSBjYW4gdGhl biBkaXNjdXNzIGhvdyB0byBtYWtlIHRoZSB1Z2x5IGNoYW5nZSBiZXR0ZXIgbG9va2luZy4NCj4g Pg0KPiANCj4gSGkgUmF5LA0KPiBQbGVhc2UgcGFyZG9uIHRoZSBsYXRlIHJlcGx5Lg0KPiBUaGUg bWFpbiBwcm9ibGVtIHdpdGggY2hhbmdlcyB0byAiY2FsbGVyIiBjb2RlIGlzIHRoYXQgZGVwZW5k ZW5jaWVzIGFyZQ0KPiBTb0Mtc3BlY2lmaWMsIHNvIHRoZSBkZXRlY3Rpb24gY29kZSB3b3VsZCBu b3Qgc2NhbGUgb3ZlciB0aW1lLg0KPiBBZ2FpbiwgdGhlIHByb3Bvc2VkIFBDRCBkb2VzIG5vdCBh bHRlciBleGlzdGluZyBmbG93IChzbyBleGlzdGluZyBjb2RlIHdpbGwNCj4gY29udGludWUgdG8g d29yayBhcy1pcyksIGFuZCB3b3VsZCBnaXZlIHVzIGEgbGV2ZXIgd2UgY2FuIHVzZSBpbiBwbGF0 Zm9ybS0NCj4gc3BlY2lmaWMgY29kZSAgKHdpdGhvdXQgcmVxdWlyaW5nIHN1cmdlcnkgaW4gRURL MiAiY2FsbGVyIiBjb2RlKS4NCj4gDQpCVFcsDQpJZiB5b3UncmUgY29uY2VybmVkIHRoYXQgc29t ZW9uZSBtYXkgaW5hZHZlcnRlbnRseSBzZXQgdGhlIFBDRCBpbiB0aGVpciBwbGF0Zm9ybSwgSSBj YW4gZW5zdXJlIHRoZSBQQ0Qgb25seSBhcHBsaWVzIG9uIEFNRCAoc2ltaWxhciB0byBjaGFuZ2Vz IEkgaW50cm9kdWNlZCBpbiB0aGUgQVBJQyBsaWJyYXJ5KS4NCkZvciBleGFtcGxlLCBzb21ldGhp bmcgbGlrZSB0aGlzOg0KICAvLw0KICAvLyBEaXNhYmxlIE1UUlJzDQogIC8vDQogIGlmICghU3Rh bmRhcmRTaWduYXR1cmVJc0F1dGhlbnRpY0FNRCAoKSB8fCAhUGNkR2V0Qm9vbCAoUGNkU2tpcERp c2FibGVNdHJyc09uUHJlTXRyckNoYW5nZU9uQW1kKSkgew0KICAgIERlZlR5cGUuVWludDY0ID0g QXNtUmVhZE1zcjY0IChNU1JfSUEzMl9NVFJSX0RFRl9UWVBFKTsNCiAgICBEZWZUeXBlLkJpdHMu RSA9IDA7DQogICAgQXNtV3JpdGVNc3I2NCAoTVNSX0lBMzJfTVRSUl9ERUZfVFlQRSwgRGVmVHlw ZS5VaW50NjQpOw0KIH0NCg0KUGxlYXNlIGxldCBtZSBrbm93IGlmIHRoYXQncyBiZXR0ZXIsIGFu ZCB3aWxsIHN1Ym1pdCBhbiB1cGRhdGVkIHBhdGNoLg0KDQo+IFRoYW5rcywNCj4gTGVvLg0KPiAN Cj4gPiA+Pj4NCj4gPiA+Pj4gLSBGcm9tIG15IHNpZGUsIGlmIGl0IHdvcmtzIGZvciB5b3UsIGl0 IHdvcmtzIGZvciBtZS4gKFRoZSBnZW5lcmFsDQo+ID4gPj4+IHRyZW5kIGhhcyBiZWVuIHRvIGF2 b2lkIGFkZGluZyBtb3JlIFBDRHMgdG8gdGhlICJjb3JlIiBwYWNrYWdlIERFQw0KPiA+ID4+PiBm aWxlcywgYnV0IEknbSAxMDAlIG5ldXRyYWwgb24gdGhhdC4pDQo+ID4gPj4+DQo+ID4gPj4+IExh c3psbw0KPiA+ID4+Pg0KPiA+ID4+DQo+ID4gPj4gTGFzemxvLA0KPiA+ID4+IFRoYW5rcyBmb3Ig cG9pbnRpbmcgb3V0IHRoZSBnZW5lcmFsIHRyZW5kLiBZZXMgbGVzcyBQQ0RzIGFyZSB2ZXJ5DQo+ ID4gd2VsY29tZWQuDQo+ID4gPj4gVG8gbWUsIFBDRCBpcyBubyBkaWZmZXJlbnQgZnJvbSBwcm90 b2NvbC4gQW5kIGV2ZW4gd29yc2UsIGJlY2F1c2UNCj4gPiA+PiBpdCdzIHZlcnkgZWFzaWx5IHRv IGJlIG92ZXItdXNlZC4NCj4gPiA+PiBCdXQgSSBhbSBub3Qgc3VyZSB3aGV0aGVyIGEgUENEIGhh cyB0byBiZSBpbnRyb2R1Y2VkIGZvciB0aGlzIGlzc3VlLg0KPiA+ID4+IE1heWJlIGV2ZW4gd2Ug Y2hvb3NlIHRvIGZpeCB0aGUgY2FsbGVyLCB0aGUgUENEIGlzIHN0aWxsIG5lZWRlZC4gSQ0KPiA+ ID4+IGFtIG5vdCBzdXJlLg0KPiA+ID4+DQo+ID4gPj4gLS0NCj4gPiA+PiBUaGFua3MsDQo+ID4g Pj4gUmF5DQo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXw0KPiA+ID4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gPiA+IGVkazItZGV2ZWxAbGlz dHMuMDEub3JnDQo+ID4gPiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Vk azItZGV2ZWwNCj4gPiA+DQo+ID4NCj4gPg0KPiA+IC0tDQo+ID4gVGhhbmtzLA0KPiA+IFJheQ0K