From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.24; helo=mga09.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (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 E194F21B00DC1 for ; Mon, 20 Nov 2017 22:46:51 -0800 (PST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Nov 2017 22:51:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,432,1505804400"; d="scan'208";a="4681325" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga003.jf.intel.com with ESMTP; 20 Nov 2017 22:51:06 -0800 Received: from fmsmsx120.amr.corp.intel.com (10.18.124.208) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 20 Nov 2017 22:51:05 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx120.amr.corp.intel.com (10.18.124.208) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 20 Nov 2017 22:51:05 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.159]) with mapi id 14.03.0319.002; Tue, 21 Nov 2017 14:51:03 +0800 From: "Wang, Jian J" To: Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Yao, Jiewen" , "Dong, Eric" , "Zeng, Star" , Ard Biesheuvel Thread-Topic: [edk2] [PATCH 2/2] UefiCpuPkg/CpuDxe: Fix multiple entries of RT_CODE in memory map Thread-Index: AQHTYj6YLElA5VjlXkG1AKBGBCw1B6MeX9GQ Date: Tue, 21 Nov 2017 06:51:02 +0000 Message-ID: References: <20171116072700.11456-1-jian.j.wang@intel.com> <20171116072700.11456-3-jian.j.wang@intel.com> <5a87ed78-58da-e3a2-9f52-8318fb121b4c@redhat.com> In-Reply-To: <5a87ed78-58da-e3a2-9f52-8318fb121b4c@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOTc4ZTYzNjYtNTNmZC00YzVkLWE4MmItODZiZmUyZTJkMTg0IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJQanRiK29mbFlvdm1XSW50ZXg0RXR4YWJzOGxTeGhxbG1GUUF1SmF2aklFOEhrazdWWGRiZmlPcURtdmo5dEZcLyJ9 x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH 2/2] UefiCpuPkg/CpuDxe: Fix multiple entries of RT_CODE in memory map X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Nov 2017 06:46:52 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 WW91J3JlIHJpZ2h0IGFib3V0IFhQL05YIGluIHRoaXMgZnVuY3Rpb24uIEJ1dCBmcm9tIER4ZUNv cmUgb3Igb3RoZXIgZHJpdmVycw0KcGVyc3BlY3RpdmUsIHRoZXkgaGF2ZSBubyBrbm93bGVkZ2Ug b2YgY3VycmVudCBjYXBhYmlsaXR5IG9mIE5YLiBJIHRoaW5rIGl0J3MgdGhlDQpyZXNwb25zaWJp bGl0eSBvZiBjcHUgZHJpdmVyIHRvIGFkZC9yZW1vdmUgaXQgZm9yIHRoZSBzYWtlIG9mIEdDRC4N Cg0KQWN0dWFsbHkgU3RhciBoYXMgZmlsZWQgYSBieiB0byB1c2UgR0NEIHNlcnZpY2UgaW5zdGVh ZCBvZiBDUFUgYXJjaCBwcm90b2NvbCB0bw0KY2hhbmdlIG1lbW9yeSBhdHRyaWJ1dGVzIGluIER4 ZUNvcmUgKGxpa2UgZW5mb3JjZSBpbWFnZSBwcm90ZWN0aW9uKS4gSWYgdGhlIA0Ka25vd2xlZGdl IGJldHdlZW4gR0NEIGFuZCBjcHUgbWlzbWF0Y2gsIHRoZSBHQ0QgbWF5IG5vdCBkbyByaWdodCB0 aGluZw0KdXBvbiByZXF1ZXN0cy4gRm9yIGV4YW1wbGUsIGlmIHdlIGFsd2F5cyBhZGQgWFAgdG8g Y2FwYWJpbGl0eSBidXQgY3VycmVudCBjcHUNCmRvZXNuJ3Qgc3VwcG9ydCBpdCwgdGhlIER4ZUNv cmUgb3Igb3RoZXIgZHJpdmVycyBtYXkgc3RpbGwgdHJ5IHRvIGVuYWJsZSBpbWFnZQ0KcHJvdGVj dGlvbiB3aGljaCB3b24ndCB0YWtlIGludG8gZWZmZWN0IGFjdHVhbGx5Lg0KDQo+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExhc3psbyBFcnNlayBbbWFpbHRvOmxlcnNla0By ZWRoYXQuY29tXQ0KPiBTZW50OiBUdWVzZGF5LCBOb3ZlbWJlciAyMSwgMjAxNyA0OjMyIEFNDQo+ IFRvOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlz dHMuMDEub3JnDQo+IENjOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBEb25n LCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsNCj4gWmVuZywgU3RhciA8c3Rhci56ZW5nQGlu dGVsLmNvbT47IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPg0KPiBT dWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCAyLzJdIFVlZmlDcHVQa2cvQ3B1RHhlOiBGaXggbXVs dGlwbGUgZW50cmllcyBvZg0KPiBSVF9DT0RFIGluIG1lbW9yeSBtYXANCj4gDQo+IE9uIDExLzE2 LzE3IDA4OjI3LCBKaWFuIEogV2FuZyB3cm90ZToNCj4gPj4gdjY6DQo+ID4+ICAgIEFkZCBFeGVj dXRlRGlzYWJsZSBmZWF0dXJlIGNoZWNrIHRvIGluY2x1ZGUvZXhjbHVkZSBFRklfTUVNT1JZX1hQ DQo+IA0KPiBBbm90aGVyIGNoYW5nZSByZWxhdGl2ZSB0byB2NSBpcyB0aGUgZml4aW5nIG9mIHRo ZSBmaXJzdCBERUJVR19XQVJODQo+IG1lc3NhZ2UgLS0gaW4gbXkgdjUgcmV2aWV3IEkgaGFkIG1p c3NlZCB0aGF0IHRoZSBERUJVR19XQVJOIGFyZ3VtZW50cw0KPiBkaWRuJ3QgbWF0Y2ggdGhlIHBy ZWNlZGluZyBnRFMtPlNldE1lbW9yeVNwYWNlQ2FwYWJpbGl0aWVzKCkgYXJndW1lbnRzLg0KPiAN Cj4gWWV0IGFub3RoZXIgY2hhbmdlIHRoYXQgY291bGQgaGF2ZSBiZWVuIChtYXliZSkgcG9zc2li bGUgZm9yIHRoaXMgcGF0Y2gNCj4gaXMgdG8gcmVwbGFjZSB0aGUgcmVtYWluaW5nIG9jY3VycmVu Y2VzIG9mIEVGSV9NRU1PUllfUEFHRVRZUEVfTUFTSyB3aXRoDQo+ICJDYXBhYmlsaXRpZXMiLiBO YW1lbHksIGluIHY2LCB0aGUgYXR0cmlidXRlcyBhcmUgZW5mb3JjZWQgb24gYSBtYXNrDQo+IHRo YXQgaXMgcG9zc2libHkgd2lkZXIgdGhhbiBzdXBwb3J0ZWQgYnkgdGhlIGhhcmR3YXJlIChpLmUu LCBpbiBjYXNlIE5YDQo+IGlzIG5vdCBzdXBwb3J0ZWQpLg0KPiANCj4gSG93ZXZlciwgdGhpcyBz aG91bGQgbm90IGJlIGEgZnVuY3Rpb25hbGl0eSBwcm9ibGVtLCBiZWNhdXNlIHdpdGggTlgNCj4g dW5hdmFpbGFibGUsIHRoZSBHZXRBdHRyaWJ1dGVzRnJvbVBhZ2VFbnRyeSgpIGZ1bmN0aW9uIHNo b3VsZCBuZXZlcg0KPiByZXR1cm4gRUZJX01FTU9SWV9YUC4gVGh1cywgdGhlICJ3aWRlciB0aGFu IG5lZWRlZCIgYXR0cmlidXRlIHNldHRpbmcNCj4gd2lsbCBqdXN0IGNsZWFyIEVGSV9NRU1PUllf WFAuDQo+IA0KPiBSZXZpZXdlZC1ieTogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4N Cj4gDQo+IChJIGhvcGUgdGhhdCBTdGFyIGFuZC9vciBKaWV3ZW4gd2lsbCBhbHNvIFItYiB0aGlz IHBhdGNoLikNCj4gDQo+IEluIGFkZGl0aW9uLCBJIHdpbGwgZm9sbG93IHVwIHdpdGggdGVzdCBy ZXN1bHRzIGZvciB0aGUgc2VyaWVzLg0KPiANCj4gVGhhbmtzDQo+IExhc3psbw0KPiANCj4gPj4g djU6DQo+ID4+ICAgIENvZGluZyBzdHlsZSBjbGVhbi11cA0KPiA+DQo+ID4+IHY0Og0KPiA+PiBh LiBSZW1vdmUgRG9VcGRhdGUgYW5kIGNoZWNrIGF0dHJpYnV0ZXMgbWlzbWF0Y2ggYWxsIHRoZSB0 aW1lIHRvIGF2b2lkDQo+ID4+ICAgIGEgbG9naWMgaG9sZQ0KPiA+PiBiLiBBZGQgd2FybmluZyBt ZXNzYWdlIGlmIGZhaWxlZCB0byB1cGRhdGUgY2FwYWJpbGl0eQ0KPiA+PiBjLiBBZGQgbG9jYWwg dmFyaWFibGUgdG8gaG9sZCBuZXcgYXR0cmlidXRlcyB0byBtYWtlIGNvZGUgY2xlYW5lcg0KPiA+ DQo+ID4+IHYzOg0KPiA+PiBhLiBBZGQgY29tbWVudCB0byBleHBsYWluIG1vcmUgb24gdXBkYXRp bmcgbWVtb3J5IGNhcGFiaWxpdGllcw0KPiA+PiBiLiBGaXggbG9naWMgaG9sZSBpbiB1cGRhdGlu ZyBhdHRyaWJ1dGVzDQo+ID4+IGMuIEluc3RlYWQgb2YgY2hlY2tpbmcgaWxsZWdhbCBtZW1vcnkg c3BhY2UgYWRkcmVzcyBhbmQgc2l6ZSwgdXNlIHJldHVybg0KPiA+PiAgICBzdGF0dXMgb2YgZ0RT LT5TZXRNZW1vcnlTcGFjZUNhcGFiaWxpdGllcygpIHRvIHNraXAgbWVtb3J5IGJsb2NrIHdoaWNo DQo+ID4+ICAgIGNhbm5vdCBiZSB1cGRhdGVkIHdpdGggbmV3IGNhcGFiaWxpdGllcy4NCj4gPg0K PiA+PiB2Mg0KPiA+PiBhLiBGaXggYW4gaXNzdWUgd2hpY2ggd2lsbCBjYXVzZSBzZXR0aW5nIGNh cGFiaWxpdHkgZmFpbHVyZSBpZiBzaXplIGlzIHNtYWxsZXINCj4gPj4gICAgdGhhbiBhIHBhZ2Uu DQo+ID4NCj4gPiBNb3JlIHRoYW4gb25lIGVudHJ5IG9mIFJUX0NPREUgbWVtb3J5IG1pZ2h0IGNh dXNlIGJvb3QgcHJvYmxlbSBmb3INCj4gc29tZQ0KPiA+IG9sZCBPU3MuIFRoaXMgcGF0Y2ggd2ls bCBmaXggdGhpcyBpc3N1ZSB0byBrZWVwIE9TIGNvbXBhdGliaWxpdHkgYXMgbXVjaA0KPiA+IGFz IHBvc3NpYmxlLg0KPiA+DQo+ID4gTW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgcGxlYXNlIHJl ZmVyIHRvDQo+ID4gICAgIGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5j Z2k/aWQ9NzUzDQo+ID4NCj4gPiBDYzogRXJpYyBEb25nIDxlcmljLmRvbmdAaW50ZWwuY29tPg0K PiA+IENjOiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPiBDYzogU3RhciBa ZW5nIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KPiA+IENjOiBMYXN6bG8gRXJzZWsgPGxlcnNla0By ZWRoYXQuY29tPg0KPiA+IENjOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJv Lm9yZz4NCj4gPiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3Jl ZW1lbnQgMS4xDQo+ID4gU2lnbmVkLW9mZi1ieTogSmlhbiBKIFdhbmcgPGppYW4uai53YW5nQGlu dGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgVWVmaUNwdVBrZy9DcHVEeGUvQ3B1UGFnZVRhYmxlLmMg fCA5NA0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tDQo+ID4gIDEg ZmlsZSBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkNCj4gPg0KPiA+ IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0NwdUR4ZS9DcHVQYWdlVGFibGUuYw0KPiBiL1VlZmlD cHVQa2cvQ3B1RHhlL0NwdVBhZ2VUYWJsZS5jDQo+ID4gaW5kZXggZDMxMmViNjZmOC4uMzI5N2Mx OTAwYiAxMDA2NDQNCj4gPiAtLS0gYS9VZWZpQ3B1UGtnL0NwdUR4ZS9DcHVQYWdlVGFibGUuYw0K PiA+ICsrKyBiL1VlZmlDcHVQa2cvQ3B1RHhlL0NwdVBhZ2VUYWJsZS5jDQo+ID4gQEAgLTc2OSw2 ICs3NjksMjAgQEAgQXNzaWduTWVtb3J5UGFnZUF0dHJpYnV0ZXMgKA0KPiA+ICAgIHJldHVybiBT dGF0dXM7DQo+ID4gIH0NCj4gPg0KPiA+ICsvKioNCj4gPiArIENoZWNrIGlmIEV4ZWN1dGUgRGlz YWJsZSBmZWF0dXJlIGlzIGVuYWJsZWQgb3Igbm90Lg0KPiA+ICsqKi8NCj4gPiArQk9PTEVBTg0K PiA+ICtJc0V4ZWN1dGVEaXNhYmxlRW5hYmxlZCAoDQo+ID4gKyAgVk9JRA0KPiA+ICsgICkNCj4g PiArew0KPiA+ICsgIE1TUl9DT1JFX0lBMzJfRUZFUl9SRUdJU1RFUiAgICBNc3JFZmVyOw0KPiA+ ICsNCj4gPiArICBNc3JFZmVyLlVpbnQ2NCA9IEFzbVJlYWRNc3I2NCAoTVNSX0lBMzJfRUZFUik7 DQo+ID4gKyAgcmV0dXJuIChNc3JFZmVyLkJpdHMuTlhFID09IDEpOw0KPiA+ICt9DQo+ID4gKw0K PiA+ICAvKioNCj4gPiAgICBVcGRhdGUgR0NEIG1lbW9yeSBzcGFjZSBhdHRyaWJ1dGVzIGFjY29y ZGluZyB0byBjdXJyZW50IHBhZ2UgdGFibGUgc2V0dXAuDQo+ID4gICoqLw0KPiA+IEBAIC03OTAs NyArODA0LDcgQEAgUmVmcmVzaEdjZE1lbW9yeUF0dHJpYnV0ZXNGcm9tUGFnaW5nICgNCj4gPiAg ICBVSU5UNjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWdlU3RhcnRBZGRyZXNzOw0K PiA+ICAgIFVJTlQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZXM7DQo+ ID4gICAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FwYWJpbGl0aWVzOw0K PiA+IC0gIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvVXBkYXRlOw0KPiA+ ICsgIFVJTlQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5ld0F0dHJpYnV0ZXM7DQo+ ID4gICAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXg7DQo+ID4NCj4g PiAgICAvLw0KPiA+IEBAIC04MDIsMTcgKzgxNiw1MCBAQCBSZWZyZXNoR2NkTWVtb3J5QXR0cmli dXRlc0Zyb21QYWdpbmcgKA0KPiA+DQo+ID4gICAgR2V0Q3VycmVudFBhZ2luZ0NvbnRleHQgKCZQ YWdpbmdDb250ZXh0KTsNCj4gPg0KPiA+IC0gIERvVXBkYXRlICAgICAgPSBGQUxTRTsNCj4gPiAt ICBDYXBhYmlsaXRpZXMgID0gMDsNCj4gPiAtICBBdHRyaWJ1dGVzICAgID0gMDsNCj4gPiAtICBC YXNlQWRkcmVzcyAgID0gMDsNCj4gPiAtICBQYWdlTGVuZ3RoICAgID0gMDsNCj4gPiArICBBdHRy aWJ1dGVzICAgICAgPSAwOw0KPiA+ICsgIE5ld0F0dHJpYnV0ZXMgICA9IDA7DQo+ID4gKyAgQmFz ZUFkZHJlc3MgICAgID0gMDsNCj4gPiArICBQYWdlTGVuZ3RoICAgICAgPSAwOw0KPiA+ICsNCj4g PiArICBpZiAoSXNFeGVjdXRlRGlzYWJsZUVuYWJsZWQgKCkpIHsNCj4gPiArICAgIENhcGFiaWxp dGllcyA9IEVGSV9NRU1PUllfUk8gfCBFRklfTUVNT1JZX1JQIHwgRUZJX01FTU9SWV9YUDsNCj4g PiArICB9IGVsc2Ugew0KPiA+ICsgICAgQ2FwYWJpbGl0aWVzID0gRUZJX01FTU9SWV9STyB8IEVG SV9NRU1PUllfUlA7DQo+ID4gKyAgfQ0KPiA+DQo+ID4gICAgZm9yIChJbmRleCA9IDA7IEluZGV4 IDwgTnVtYmVyT2ZEZXNjcmlwdG9yczsgSW5kZXgrKykgew0KPiA+ICAgICAgaWYgKE1lbW9yeVNw YWNlTWFwW0luZGV4XS5HY2RNZW1vcnlUeXBlID09DQo+IEVmaUdjZE1lbW9yeVR5cGVOb25FeGlz dGVudCkgew0KPiA+ICAgICAgICBjb250aW51ZTsNCj4gPiAgICAgIH0NCj4gPg0KPiA+ICsgICAg Ly8NCj4gPiArICAgIC8vIFN5bmMgdGhlIGFjdHVhbCBwYWdpbmcgcmVsYXRlZCBjYXBhYmlsaXRp ZXMgYmFjayB0byBHQ0Qgc2VydmljZSBmaXJzdC4NCj4gPiArICAgIC8vIEFzIGEgc2lkZSBlZmZl Y3QgKGdvb2Qgb25lKSwgdGhpcyBjYW4gYWxzbyBoZWxwIHRvIGF2b2lkIHVubmVjZXNzYXJ5DQo+ ID4gKyAgICAvLyBtZW1vcnkgbWFwIGVudHJpZXMgZHVlIHRvIHRoZSBkaWZmZXJlbnQgY2FwYWJp bGl0aWVzIG9mIHRoZSBzYW1lIHR5cGUNCj4gPiArICAgIC8vIG1lbW9yeSwgc3VjaCBhcyBtdWx0 aXBsZSBSVF9DT0RFIGFuZCBSVF9EQVRBIGVudHJpZXMgaW4gbWVtb3J5DQo+IG1hcCwNCj4gPiAr ICAgIC8vIHdoaWNoIGNvdWxkIGNhdXNlIGJvb3QgZmFpbHVyZSBvZiBzb21lIG9sZCBMaW51eCBk aXN0cm8gKGJlZm9yZSB2NC4zKS4NCj4gPiArICAgIC8vDQo+ID4gKyAgICBTdGF0dXMgPSBnRFMt PlNldE1lbW9yeVNwYWNlQ2FwYWJpbGl0aWVzICgNCj4gPiArICAgICAgICAgICAgICAgICAgICBN ZW1vcnlTcGFjZU1hcFtJbmRleF0uQmFzZUFkZHJlc3MsDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgTWVtb3J5U3BhY2VNYXBbSW5kZXhdLkxlbmd0aCwNCj4gPiArICAgICAgICAgICAgICAgICAg ICBNZW1vcnlTcGFjZU1hcFtJbmRleF0uQ2FwYWJpbGl0aWVzIHwgQ2FwYWJpbGl0aWVzDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgKTsNCj4gPiArICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykp IHsNCj4gPiArICAgICAgLy8NCj4gPiArICAgICAgLy8gSWYgd2UgY2Fubm90IHVkcGF0ZSB0aGUg Y2FwYWJpbGl0aWVzLCB3ZSBjYW5ub3QgdXBkYXRlIGl0cw0KPiA+ICsgICAgICAvLyBhdHRyaWJ1 dGVzIGVpdGhlci4gU28ganVzdCBzaW1wbHkgc2tpcCBjdXJyZW50IGJsb2NrIG9mIG1lbW9yeS4N Cj4gPiArICAgICAgLy8NCj4gPiArICAgICAgREVCVUcgKCgNCj4gPiArICAgICAgICBERUJVR19X QVJOLA0KPiA+ICsgICAgICAgICJGYWlsZWQgdG8gdXBkYXRlIGNhcGFiaWxpdHk6IFslbHVdICUw MTZseCAtICUwMTZseCAoJTAxNmx4IC0NCj4gPiAlMDE2bHgpXHJcbiIsDQo+ID4gKyAgICAgICAg KFVJTlQ2NClJbmRleCwgTWVtb3J5U3BhY2VNYXBbSW5kZXhdLkJhc2VBZGRyZXNzLA0KPiA+ICsg ICAgICAgIE1lbW9yeVNwYWNlTWFwW0luZGV4XS5CYXNlQWRkcmVzcyArDQo+IE1lbW9yeVNwYWNl TWFwW0luZGV4XS5MZW5ndGggLSAxLA0KPiA+ICsgICAgICAgIE1lbW9yeVNwYWNlTWFwW0luZGV4 XS5DYXBhYmlsaXRpZXMsDQo+ID4gKyAgICAgICAgTWVtb3J5U3BhY2VNYXBbSW5kZXhdLkNhcGFi aWxpdGllcyB8IENhcGFiaWxpdGllcw0KPiA+ICsgICAgICAgICkpOw0KPiA+ICsgICAgICBjb250 aW51ZTsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gICAgICBpZiAoTWVtb3J5U3BhY2VNYXBbSW5k ZXhdLkJhc2VBZGRyZXNzID49IChCYXNlQWRkcmVzcyArIFBhZ2VMZW5ndGgpKSB7DQo+ID4gICAg ICAgIC8vDQo+ID4gICAgICAgIC8vIEN1cnJlbnQgbWVtb3J5IHNwYWNlIHN0YXJ0cyBhdCBhIG5l dyBwYWdlLiBSZXNldHRpbmcgUGFnZUxlbmd0aCB3aWxsDQo+ID4gQEAgLTgyNiw3ICs4NzMsOSBA QCBSZWZyZXNoR2NkTWVtb3J5QXR0cmlidXRlc0Zyb21QYWdpbmcgKA0KPiA+ICAgICAgICBQYWdl TGVuZ3RoIC09IChNZW1vcnlTcGFjZU1hcFtJbmRleF0uQmFzZUFkZHJlc3MgLSBCYXNlQWRkcmVz cyk7DQo+ID4gICAgICB9DQo+ID4NCj4gPiAtICAgIC8vIFN5bmMgcmVhbCBwYWdlIGF0dHJpYnV0 ZXMgdG8gR0NEDQo+ID4gKyAgICAvLw0KPiA+ICsgICAgLy8gU3luYyBhY3R1YWwgcGFnZSBhdHRy aWJ1dGVzIHRvIEdDRA0KPiA+ICsgICAgLy8NCj4gPiAgICAgIEJhc2VBZGRyZXNzICAgICAgID0g TWVtb3J5U3BhY2VNYXBbSW5kZXhdLkJhc2VBZGRyZXNzOw0KPiA+ICAgICAgTWVtb3J5U3BhY2VM ZW5ndGggPSBNZW1vcnlTcGFjZU1hcFtJbmRleF0uTGVuZ3RoOw0KPiA+ICAgICAgd2hpbGUgKE1l bW9yeVNwYWNlTGVuZ3RoID4gMCkgew0KPiA+IEBAIC04NDIsMjMgKzg5MSwyNiBAQCBSZWZyZXNo R2NkTWVtb3J5QXR0cmlidXRlc0Zyb21QYWdpbmcgKA0KPiA+ICAgICAgICAgIFBhZ2VTdGFydEFk ZHJlc3MgID0gKCpQYWdlRW50cnkpICYNCj4gKFVJTlQ2NClQYWdlQXR0cmlidXRlVG9NYXNrKFBh Z2VBdHRyaWJ1dGUpOw0KPiA+ICAgICAgICAgIFBhZ2VMZW5ndGggICAgICAgID0gUGFnZUF0dHJp YnV0ZVRvTGVuZ3RoIChQYWdlQXR0cmlidXRlKSAtIChCYXNlQWRkcmVzcyAtDQo+IFBhZ2VTdGFy dEFkZHJlc3MpOw0KPiA+ICAgICAgICAgIEF0dHJpYnV0ZXMgICAgICAgID0gR2V0QXR0cmlidXRl c0Zyb21QYWdlRW50cnkgKFBhZ2VFbnRyeSk7DQo+ID4gLQ0KPiA+IC0gICAgICAgIGlmIChBdHRy aWJ1dGVzICE9IChNZW1vcnlTcGFjZU1hcFtJbmRleF0uQXR0cmlidXRlcyAmDQo+IEVGSV9NRU1P UllfUEFHRVRZUEVfTUFTSykpIHsNCj4gPiAtICAgICAgICAgIERvVXBkYXRlID0gVFJVRTsNCj4g PiAtICAgICAgICAgIEF0dHJpYnV0ZXMgfD0gKE1lbW9yeVNwYWNlTWFwW0luZGV4XS5BdHRyaWJ1 dGVzICYNCj4gfkVGSV9NRU1PUllfUEFHRVRZUEVfTUFTSyk7DQo+ID4gLSAgICAgICAgICBDYXBh YmlsaXRpZXMgPSBBdHRyaWJ1dGVzIHwgTWVtb3J5U3BhY2VNYXBbSW5kZXhdLkNhcGFiaWxpdGll czsNCj4gPiAtICAgICAgICB9IGVsc2Ugew0KPiA+IC0gICAgICAgICAgRG9VcGRhdGUgPSBGQUxT RTsNCj4gPiAtICAgICAgICB9DQo+ID4gICAgICAgIH0NCj4gPg0KPiA+ICAgICAgICBMZW5ndGgg PSBNSU4gKFBhZ2VMZW5ndGgsIE1lbW9yeVNwYWNlTGVuZ3RoKTsNCj4gPiAtICAgICAgaWYgKERv VXBkYXRlKSB7DQo+ID4gLSAgICAgICAgZ0RTLT5TZXRNZW1vcnlTcGFjZUNhcGFiaWxpdGllcyAo QmFzZUFkZHJlc3MsIExlbmd0aCwgQ2FwYWJpbGl0aWVzKTsNCj4gPiAtICAgICAgICBnRFMtPlNl dE1lbW9yeVNwYWNlQXR0cmlidXRlcyAoQmFzZUFkZHJlc3MsIExlbmd0aCwgQXR0cmlidXRlcyk7 DQo+ID4gLSAgICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiVXBkYXRlIG1lbW9yeSBzcGFjZSBh dHRyaWJ1dGU6IFslMDJkXSAlMDE2bHgNCj4gLSAlMDE2bHggKCUwOGx4IC0+ICUwOGx4KVxyXG4i LA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4LCBCYXNlQWRkcmVzcywg QmFzZUFkZHJlc3MgKyBMZW5ndGggLSAxLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE1lbW9yeVNwYWNlTWFwW0luZGV4XS5BdHRyaWJ1dGVzLCBBdHRyaWJ1dGVzKSk7DQo+ID4g KyAgICAgIGlmIChBdHRyaWJ1dGVzICE9IChNZW1vcnlTcGFjZU1hcFtJbmRleF0uQXR0cmlidXRl cyAmDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBFRklfTUVNT1JZX1BBR0VUWVBFX01B U0spKSB7DQo+ID4gKyAgICAgICAgTmV3QXR0cmlidXRlcyA9IChNZW1vcnlTcGFjZU1hcFtJbmRl eF0uQXR0cmlidXRlcyAmDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICB+RUZJX01FTU9S WV9QQUdFVFlQRV9NQVNLKSB8IEF0dHJpYnV0ZXM7DQo+ID4gKyAgICAgICAgU3RhdHVzID0gZ0RT LT5TZXRNZW1vcnlTcGFjZUF0dHJpYnV0ZXMgKA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICBCYXNlQWRkcmVzcywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoLA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICBOZXdBdHRyaWJ1dGVzDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICk7DQo+ID4gKyAgICAgICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsN Cj4gPiArICAgICAgICBERUJVRyAoKA0KPiA+ICsgICAgICAgICAgREVCVUdfSU5GTywNCj4gPiAr ICAgICAgICAgICJVcGRhdGVkIG1lbW9yeSBzcGFjZSBhdHRyaWJ1dGU6IFslbHVdICUwMTZseCAt ICUwMTZseCAoJTAxNmx4IC0NCj4gPiAlMDE2bHgpXHJcbiIsDQo+ID4gKyAgICAgICAgICAoVUlO VDY0KUluZGV4LCBCYXNlQWRkcmVzcywgQmFzZUFkZHJlc3MgKyBMZW5ndGggLSAxLA0KPiA+ICsg ICAgICAgICAgTWVtb3J5U3BhY2VNYXBbSW5kZXhdLkF0dHJpYnV0ZXMsDQo+ID4gKyAgICAgICAg ICBOZXdBdHRyaWJ1dGVzDQo+ID4gKyAgICAgICAgICApKTsNCj4gPiAgICAgICAgfQ0KPiA+DQo+ ID4gICAgICAgIFBhZ2VMZW5ndGggICAgICAgIC09IExlbmd0aDsNCj4gPg0KDQo=