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 7144A2034A7B8 for ; Wed, 25 Oct 2017 18:38:05 -0700 (PDT) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Oct 2017 18:41:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.43,433,1503385200"; d="scan'208";a="1235384092" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga002.fm.intel.com with ESMTP; 25 Oct 2017 18:41:50 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 25 Oct 2017 18:41:49 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by shsmsx102.ccr.corp.intel.com ([169.254.2.175]) with mapi id 14.03.0319.002; Thu, 26 Oct 2017 09:41:47 +0800 From: "Wang, Jian J" To: Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Yao, Jiewen" , "Dong, Eric" Thread-Topic: [edk2] [PATCH] UefiCpuPkg/CpuDxe: Fix multiple entries of RT_CODE in memory map Thread-Index: AQHTTMJ8PasfeYxtkU+2Oizp2GmZwqLzuNrwgABHQYCAAVNhgA== Date: Thu, 26 Oct 2017 01:41:47 +0000 Message-ID: References: <20171023065022.1272-1-jian.j.wang@intel.com> <764523da-0d75-d4ac-3121-c8282ada3e8f@redhat.com> <2367cd4c-d660-c848-acdf-c67fd94b4880@redhat.com> In-Reply-To: <2367cd4c-d660-c848-acdf-c67fd94b4880@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMTMwM2NhMDUtODg2MS00NjUwLTk3YjktMmRhMWMxOTliZjhjIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJKdmxLODAxODFZY2ZWdEREb2hqZzlVUDNpYXpzU29vcHFLNVhRWE5PNW4yUTJiWGZJNVlMUm9Vb2ZcL256YWZtaiJ9 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] 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: Thu, 26 Oct 2017 01:38:05 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UGxlYXNlIHNlZSBteSBjb21tZW50cyBiZWxvdy4gVGhhbmtzLg0KDQo+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+IEZyb206IExhc3psbyBFcnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQu Y29tXQ0KPiBTZW50OiBXZWRuZXNkYXksIE9jdG9iZXIgMjUsIDIwMTcgODo1MSBQTQ0KPiBUbzog V2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAx Lm9yZw0KPiBDYzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgRG9uZywgRXJp YyA8ZXJpYy5kb25nQGludGVsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0hdIFVl ZmlDcHVQa2cvQ3B1RHhlOiBGaXggbXVsdGlwbGUgZW50cmllcyBvZg0KPiBSVF9DT0RFIGluIG1l bW9yeSBtYXANCj4gDQo+IE9uIDEwLzI1LzE3IDAzOjMzLCBXYW5nLCBKaWFuIEogd3JvdGU6DQo+ ID4gSGkgTGFzemxvLA0KPiA+DQo+ID4gVGhhbmtzIGZvciB0aGUgZmVlZGJhY2suIEknZCBsaWtl IHRvIGV4cGxhaW4gYSBiaXQgbW9yZSBoZXJlIGZpcnN0IGFuZA0KPiA+IHdpbGwgdXBkYXRlIHRo ZSBjb21taXQgbWVzc2FnZSBsYXRlci4NCj4gPg0KPiA+IFRoZSBtdWx0aXBsZSBSVF9DT0RFIGVu dHJpZXMgaXNzdWUgd2FzIHJlcG9ydGVkIGJ5IExVViB0ZXN0IHN1aXRlIGZyb20NCj4gPiBodHRw czovLzAxLm9yZy9saW51eC11ZWZpLXZhbGlkYXRpb24NCj4gPg0KPiA+IFlvdSdyZSByaWdodCB0 aGlzIGlzc3VlIGlzIGNhdXNlZCBieSBteSBjb21taXQgYzFjYWI1NGNlNTdjLCB3aGljaA0KPiA+ IHRyaWVkIHRvIGZpeCB0aGUgR0NEIGlzc3VlIGluIHdoaWNoIHlvdSBjYW4ndCBzZXQgcGFnaW5n IHJlbGF0ZWQNCj4gPiBtZW1vcnkgYXR0cmlidXRlcyB0aHJvdWdoIEdDRCBzZXJ2aWNlIEFQSS4g VGhlIHJlYXNvbnMgYXJlIHRoYXQgR0NEDQo+ID4gd2lsbCBmaWx0ZXIgb3V0IGFsbCBwYWdpbmcg cmVsYXRlZCBtZW1vcnkgYXR0cmlidXRlcyBhbmQgYWxzbywgdGhlIENQVQ0KPiA+IGRyaXZlciBk aWRuJ3Qgc3luYyB0aGUgcGFnaW5nIGF0dHJpYnV0ZXMgYmFjayB0byBHQ0QuIFNvcnJ5IEkgZG9u J3QNCj4gPiBrbm93IHdoeSBHQ0QgYW5kIGNwdSBkcml2ZXIgYXJlIGltcGxlbWVudGVkIHRoYXQg d2F5Lg0KPiA+DQo+ID4gTXkgcHJldmlvdXMgY29tbWl0IGMxY2FiNTRjZTU3YyBmaXhlZCBhYm92 ZSBpc3N1ZXMgYnV0IGRpZG4ndCBtYWtlDQo+ID4gc3VyZSB0aGF0IGFsbCBtZW1vcnkgYmxvY2tz IHNoYXJlIHRoZSBzYW1lIGNhcGFiaWxpdGllcyBiZWNhdXNlIEkganVzdA0KPiA+IGFkZGVkIHBh Z2luZyByZWxhdGVkIG1lbW9yeSBjYXBhYmlsaXRpZXMgdG8gdGhvc2UgbWVtb3J5IGJsb2NrIGhh dmluZw0KPiA+IHNvbWUgcGFnaW5nIGF0dHJpYnV0ZXMgc2V0LiBUaGlzIHdpbGwgaW4gdHVybiBj YXVzZSBtb3JlIHRoYW4gb25lDQo+ID4gUlRfQ09ERSBlbnRyaWVzIGluIG1lbW9yeSBtYXAgYmVj YXVzZSBHQ0QgcmVwb3J0cyBtZW1vcnkgdG8gT1MgYmFzZWQNCj4gPiBvbiB0aGUgbWVtb3J5IGJs b2NrIGNhcGFiaWxpdHkuDQo+ID4NCj4gPiBXaHkgbXVsdGlwbGUgUlRfQ09ERSBtYXR0ZXJzPyBJ dCdzIGJlY2F1c2UgdGhhdCBMaW51eCBrZXJuZWwgd291bGQNCj4gPiBtaXNwbGFjZSB0aGUgcnVu dGltZSBzZXJ2aWNlIGNvZGUgc2VnbWVudCBhbmQgaXRzIGRhdGEgc2VnbWVudC4gV2hhdCBJDQo+ ID4ga25vdyBpcyB0aGlzIExpbnV4IGlzc3VlIGhhZCBiZWVuIGZpeGVkLiBUaGF0J3Mgd2h5IHJl Y2VudCBMaW51eA0KPiA+IGRpc3RybyB3b24ndCBlbmNvdW50ZXIgcHJvYmxlbXMgZXZlbiBpZiB3 ZSByZXBvcnQgbXVsdGlwbGUgUlRfQ09ERQ0KPiA+IG1lbW9yeSB0byBrZXJuZWwuDQo+IA0KPiBB aCwgT0ssIEkgcmVtZW1iZXIgbm93Lg0KPiANCj4gVGhlIHBvaW50IGlzIHRoYXQgc2VwYXJhdGUg ZW50cmllcyBpbiB0aGUgVUVGSSBtZW1tYXAgbWF5IGJlIG1hcHBlZCBieQ0KPiB0aGUgT1MgdG8g ZGlzY29udGlndW91cyB2aXJ0dWFsIGFkZHJlc3MgcmFuZ2VzLg0KPiANCj4gSG93ZXZlciwgaWYg d2UgdGFrZSB0aGUgVUVGSSBtZW1tYXAgZW50cmllcyB0aGF0IGJlbG9uZyB0byBhIHNpbmdsZQ0K PiBydW50aW1lIERYRSBkcml2ZXIsIGFuZCB1bmludGVudGlvbmFsbHkgc3BsaXQgdGhvc2UgZW50 cmllcyB1cCAoYnkNCj4gc2V0dGluZyBkaXN0aW5jdCBjYXBhYmlsaXRpZXMgZm9yIGEgc3Vic2V0 IG9mIHRoZWlyIHBhZ2VzKSwgdGhlbiB0aGUNCj4gcnVudGltZSBkcml2ZXIgd2lsbCBicmVhaywg YmVjYXVzZSB0aGUgbGluZWFyIGFkZHJlc3MgcmFuZ2UgdGhhdCB0aGUNCj4gZHJpdmVyIGV4cGVj dHMgKGZyb20gaXRzIG9yaWdpbmFsIGxvYWRpbmcgYW5kIHJlbG9jYXRpb24pIHdpbGwgbm90IGJl DQo+IGtlcHQgbGluZWFyIGJ5IHRoZSBPUy4NCj4gDQo+ID4gSSdtIHNvcnJ5IHRoYXQgSSBjYW5u b3QgZmluZCB0aGUgc3BlY2lmaWMgdmVyc2lvbiBvZiBrZXJuZWwgd2hpY2ggaGFzDQo+ID4gc3Vj aCBwcm9ibGVtIGFuZCBJIGNhbid0IGZpbmQgYW55IGRpc2N1c3Npb24gcmVsYXRlZC4gTWF5YmUg Smlld2VuIGNhbg0KPiA+IHByb3ZpZGUgbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbi4NCj4gDQo+ IEl0IHdvdWxkIGJlIHJlYWxseSBoZWxwZnVsIGlmIHlvdSBndXlzIGNvdWxkIG5hbWUgYSBndWVz dCBrZXJuZWwgdmVyc2lvbg0KPiAob3IgYSBHTlUvTGludXggZGlzdHJvIHJlbGVhc2UpIHRoYXQg aXMgYWZmZWN0ZWQgYnkgdGhpcyBwcm9ibGVtLg0KPiANCg0KSXQgc2VlbXMgZm9sbG93aW5nIGxv ZyBoaXN0b3J5IHdoaWNoIG1lbnRpb25lZCB0aGUgcHJvYmxlbS4NCmh0dHBzOi8vZ2l0Lmtlcm5l bC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3N0YWJsZS9saW51eC1zdGFibGUuZ2l0L2Nv bW1pdC8/aWQ9MGNlM2NjMDA4ZWMwNDI1OGI2YTYzMTRiMDlmMWE2MDEyODEwODgxYQ0KDQo+IEFy ZSB0aGVyZSBwZXJoYXBzIGFueSBjb25kaXRpb25zIHRoYXQgdGhpcyBpc3N1ZSBkZXBlbmRzIG9u LCBzdWNoIGFzDQo+IFBDRHMgZm9yIGV4YW1wbGU/IEluIG90aGVyIHdvcmRzLCBpcyBpdCBwb3Nz aWJsZSB0aGF0IHZhcmlvdXMgZWRrMg0KPiBwbGF0Zm9ybSBzZXR0aW5ncyAoaW4gdGhlIERTQykg Y2FuIG1hc2sgdGhpcyBpc3N1ZT8NCj4gDQoNCkluIGN1cnJlbnQgY29kZSBiYXNlLCBmb2xsb3dp bmcgUENEcyBtYXkgY2F1c2UgbWVtb3J5IHBhZ2UgYXR0cmlidXRlIGNoYW5nZXMNCg0KICBQY2RJ bWFnZVByb3RlY3Rpb25Qb2xpY3kNCiAgUGNkRHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5DQoN Ck9uY2UgdGhlIGhlYXAgZ3VhcmQgZmVhdHVyZSBpcyBjaGVja2VkIGluICh5b3UgbWF5IG5vdGlj ZSBteSByZWNlbnQgcGF0Y2hlcyksDQp0aGVyZSdyZSB0aHJlZSBtb3JlIFBDRHM6DQoNCiAgUGNk SGVhcEd1YXJkUHJvcGVydHlNYXNrDQogIFBjZEhlYXBHdWFyZFBvb2xUeXBlDQogIFBjZEhlYXBH dWFyZFBhZ2VUeXBlDQoNCj4gQ2FuIHlvdSBtYXliZSBwcmVzZW50IFVFRkkgbWVtbWFwcyAoZHVt cGVkIGluIHRoZSBVRUZJIHNoZWxsLCBvciBpbg0KPiBMaW51eCkgdGhhdCBzaG93IHRoZSBwcm9i bGVtLCBjb21wYXJlZCB0byB0aGlzIGZpeD8NCj4gDQoNCkJlZm9yZSB0aGlzIHBhdGNoIChhZnRl ciBjMWNhYjU0Y2U1N2MpLCB0aGUgbWVtb3J5IG1hcCBsb29rcyBsaWtlDQoNClJUX0RhdGEgICAg MDAwMDAwMDBCRTIwRjAwMC0wMDAwMDAwMEJFMzhFRkZGIDAwMDAwMDAwMDAwMDAxODAgODAwMDAw MDAwMDAwMDAwRg0KUlRfQ29kZSAgICAwMDAwMDAwMEJFMzhGMDAwLTAwMDAwMDAwQkU0NkZGRkYg MDAwMDAwMDAwMDAwMDBFMSA4MDAwMDAwMDAwMDAwMDBGDQpSVF9Db2RlICAgIDAwMDAwMDAwQkU0 NzAwMDAtMDAwMDAwMDBCRTQ3MEZGRiAwMDAwMDAwMDAwMDAwMDAxIDgwMDAwMDAwMDAwMDQwMEYN ClJUX0NvZGUgICAgMDAwMDAwMDBCRTQ3MTAwMC0wMDAwMDAwMEJFNDcyRkZGIDAwMDAwMDAwMDAw MDAwMDIgODAwMDAwMDAwMDAyMDAwRg0KUlRfQ29kZSAgICAwMDAwMDAwMEJFNDczMDAwLTAwMDAw MDAwQkU0NzZGRkYgMDAwMDAwMDAwMDAwMDAwNCA4MDAwMDAwMDAwMDA0MDBGDQpSVF9Db2RlICAg IDAwMDAwMDAwQkU0NzcwMDAtMDAwMDAwMDBCRTQ3OEZGRiAwMDAwMDAwMDAwMDAwMDAyIDgwMDAw MDAwMDAwMjAwMEYNClJUX0NvZGUgICAgMDAwMDAwMDBCRTQ3OTAwMC0wMDAwMDAwMEJFNDdDRkZG IDAwMDAwMDAwMDAwMDAwMDQgODAwMDAwMDAwMDAwNDAwRg0KUlRfQ29kZSAgICAwMDAwMDAwMEJF NDdEMDAwLTAwMDAwMDAwQkU0N0ZGRkYgMDAwMDAwMDAwMDAwMDAwMyA4MDAwMDAwMDAwMDIwMDBG DQpSVF9Db2RlICAgIDAwMDAwMDAwQkU0ODAwMDAtMDAwMDAwMDBCRTQ4M0ZGRiAwMDAwMDAwMDAw MDAwMDA0IDgwMDAwMDAwMDAwMDQwMEYNClJUX0NvZGUgICAgMDAwMDAwMDBCRTQ4NDAwMC0wMDAw MDAwMEJFNDg1RkZGIDAwMDAwMDAwMDAwMDAwMDIgODAwMDAwMDAwMDAyMDAwRg0KUlRfQ29kZSAg ICAwMDAwMDAwMEJFNDg2MDAwLTAwMDAwMDAwQkU0ODlGRkYgMDAwMDAwMDAwMDAwMDAwNCA4MDAw MDAwMDAwMDA0MDBGDQpSVF9Db2RlICAgIDAwMDAwMDAwQkU0OEEwMDAtMDAwMDAwMDBCRTQ4QkZG RiAwMDAwMDAwMDAwMDAwMDAyIDgwMDAwMDAwMDAwMjAwMEYNClJUX0NvZGUgICAgMDAwMDAwMDBC RTQ4QzAwMC0wMDAwMDAwMEJFNDhFRkZGIDAwMDAwMDAwMDAwMDAwMDMgODAwMDAwMDAwMDAwNDAw Rg0KDQpZb3UgbWF5IG5vdGljZSB0aGF0IHRoZXJlJ3JlIG9uZSBSVF9EYXRhIHdpdGggMTIgUlRf Q29kZSBlbnRyaWVzIGxpc3RlZC4NCkFmdGVyIHRoaXMgcGF0Y2gsIGl0IHdpbGwgYmUNCg0KUlRf RGF0YSAgICAwMDAwMDAwMEJFMjBGMDAwLTAwMDAwMDAwQkUzOEVGRkYgMDAwMDAwMDAwMDAwMDE4 MCA4MDAwMDAwMDAwMDI2MDBGDQpSVF9Db2RlICAgIDAwMDAwMDAwQkUzOEYwMDAtMDAwMDAwMDBC RTQ4RUZGRiAwMDAwMDAwMDAwMDAwMTAwIDgwMDAwMDAwMDAwMjYwMEYNCg0KPiA+IFRoaXMgcGF0 Y2ggd2lsbCBtYWtlIHN1cmUgdGhhdCBhbGwgbWVtb3J5IGJsb2NrIHNoYXJlIHRoZSBzYW1lIHBh Z2luZw0KPiA+IGNhcGFiaWxpdGllcy4gQmVjYXVzZSBhbGwgbWVtb3J5IGFyZSBhY3R1YWxseSBw YWdlZCBpbiBjdXJyZW50IEVESzINCj4gPiAoYXQgbGVhc3QgSUEgcHJvY2Vzc29ycyksIHRlY2hu aWNhbGx5IHdlJ3JlIGNhcGFibGUgb2Ygc2V0dGluZyBhbnkNCj4gPiBwYWdlIG9mIG1lbW9yeSB0 byByZWFkLW9ubHkgYW5kL29yIG5vbi1leGVjdXRhYmxlLiBJIHRoaW5rIHRoaXMgZml4IGlzDQo+ ID4gbm90IG9ubHkgdHJ5aW5nIHRvIGF2b2lkIG11bHRpcGxlIFJUX0NPREUgbWVtb3J5IG1hcCBl bnRyaWVzIGJ1dCBhbHNvDQo+ID4gdHJ5aW5nIHRvIG1ha2Ugc3VyZSB0aGUgbWVtb3J5IGNhcGFi aWxpdGllcyBpbiBHQ0Qgc2VydmljZSB0byByZWZsZWN0DQo+ID4gY29tcGxldGUgc3RhdHVzIG9m IHRoZSByZWFsIHdvcmxkLg0KPiANCj4gQXJlIHlvdSBzYXlpbmcgdGhhdCAqYW55KiBmaXJtd2Fy ZSB0aGF0IGNhcnJpZXMgY29tbWl0IGMxY2FiNTRjZTU3Yw0KPiBzaG91bGQgYWxzbyByZWNlaXZl IHRoaXMgcGF0Y2g/DQo+IA0KDQpZZXMuDQoNCj4gSWYgdGhhdCdzIHRoZSBjYXNlLCB0aGVuIHNv bWUga2luZCBvZiAicmVwcm9kdWNlciIgd291bGQgYmUgcmVhbGx5IG5pY2UNCj4gLS0gc3RlcHMg dGhhdCB5b3UgY2FuIHJ1biBib3RoIHdpdGggYW5kIHdpdGhvdXQgdGhpcyBwYXRjaCwgYW5kIHRo ZQ0KPiBvdXRwdXQgb3IgdGhlIGJlaGF2aW9yIHdpbGwgc2hvdyB0aGUgZGlmZmVyZW5jZS4NCj4g DQoNClBjZEltYWdlUHJvdGVjdGlvblBvbGljeSBpcyBlbmFibGVkIGJ5IGRlZmF1bHQuIEl0IGNh biBiZSAibmF0dXJhbGx5IiByZXByb2R1Y2VkLg0KDQo+IFRoYW5rcyENCj4gTGFzemxvDQo+IA0K PiANCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogTGFzemxvIEVy c2VrIFttYWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+ID4+IFNlbnQ6IFR1ZXNkYXksIE9jdG9i ZXIgMjQsIDIwMTcgODoyMCBQTQ0KPiA+PiBUbzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0Bp bnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+PiBDYzogWWFvLCBKaWV3ZW4g PGppZXdlbi55YW9AaW50ZWwuY29tPjsgRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT4N Cj4gPj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0hdIFVlZmlDcHVQa2cvQ3B1RHhlOiBGaXgg bXVsdGlwbGUgZW50cmllcyBvZg0KPiA+PiBSVF9DT0RFIGluIG1lbW9yeSBtYXANCj4gPj4NCj4g Pj4gT24gMTAvMjMvMTcgMDg6NTAsIEppYW4gSiBXYW5nIHdyb3RlOg0KPiA+Pj4gTW9yZSB0aGFu IG9uZSBlbnRyeSBvZiBSVF9DT0RFIG1lbW9yeSBtaWdodCBjYXVzZSBib290IHByb2JsZW0gZm9y DQo+ID4+IHNvbWUNCj4gPj4+IG9sZCBPU3MuIFRoaXMgcGF0Y2ggd2lsbCBmaXggdGhpcyBpc3N1 ZSB0byBrZWVwIE9TIGNvbXBhdGliaWxpdHkgYXMgbXVjaA0KPiA+Pj4gYXMgcG9zc2libGUuDQo+ ID4+Pg0KPiA+Pj4gQ2M6IEVyaWMgRG9uZyA8ZXJpYy5kb25nQGludGVsLmNvbT4NCj4gPj4+IENj OiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPj4+IENvbnRyaWJ1dGVkLXVu ZGVyOiBUaWFub0NvcmUgQ29udHJpYnV0aW9uIEFncmVlbWVudCAxLjENCj4gPj4+IFNpZ25lZC1v ZmYtYnk6IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4+PiAtLS0NCj4g Pj4+ICBVZWZpQ3B1UGtnL0NwdUR4ZS9DcHVQYWdlVGFibGUuYyB8IDE0ICsrKysrKysrKysrLS0t DQo+ID4+PiAgMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p DQo+ID4+DQo+ID4+IENhbiB5b3UgcGxlYXNlIGV4cGxhaW4gaW4gdGhlIGNvbW1pdCBtZXNzYWdl OyB3aGF0IE9TZXMgYXJlIGFmZmVjdGVkIGJ5DQo+ID4+IHRoaXMgaXNzdWUsIHRvIHlvdXIga25v d2xlZGdlPw0KPiA+Pg0KPiA+PiBBbHNvLCB0aGUgY29kZSBiZWluZyBwYXRjaGVkIHNlZW1zIHRv IG9yaWdpbmF0ZSBmcm9tIGNvbW1pdCBjMWNhYjU0Y2U1N2MNCj4gPj4gKCJVZWZpQ3B1UGtnL0Nw dUR4ZTogRml4IG91dC1vZi1zeW5jIGlzc3VlIGluIHBhZ2UgYXR0cmlidXRlcyIsDQo+ID4+IDIw MTctMDktMTYpLiBJIHZhZ3VlbHkgcmVjYWxsIHRoYXQgdGhpcyBjb21taXQgd2FzIHJlbGF0ZWQg dG8geW91ciAicGFnZQ0KPiA+PiAwIHByb3RlY3Rpb24iIHdvcmsuDQo+ID4+DQo+ID4+IENhbiB5 b3UgcGxlYXNlIGV4cGxhaW4sIGluIHRoZSBjb21taXQgbWVzc2FnZSwgdW5kZXIgd2hhdCBjaXJj dW1zdGFuY2VzDQo+ID4+IChQQ0Qgc2V0dGluZ3MgZXRjKSB0aGUgaXNzdWUgYXJpc2VzLCBhbmQg aG93IHdlIGVuZCB1cCB3aXRoIG11bHRpcGxlDQo+ID4+IFJUX0NPREUgZW50cmllcyBpbiB0aGUg bWVtb3J5IG1hcD8NCj4gPj4NCj4gPj4gKEJUVywgbXVsdGlwbGUgUlRfQ09ERSBlbnRyaWVzIGlu IHRoZSBtZW1tYXAgc2hvdWxkIGJlIHBlcmZlY3RseQ0KPiA+PiBub3JtYWwuLi4gU28gSSdtIGV4 dHJhIGN1cmlvdXMgYWJvdXQgdGhlIE9TZXMgdGhhdCBhcmUgbm90IGNvbXBhdGlibGUNCj4gPj4g d2l0aCB0aGF0LikNCj4gPj4NCj4gPj4gVGhhbmtzLA0KPiA+PiBMYXN6bG8NCj4gPj4NCj4gPj4+ IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0NwdUR4ZS9DcHVQYWdlVGFibGUuYw0KPiA+PiBiL1Vl ZmlDcHVQa2cvQ3B1RHhlL0NwdVBhZ2VUYWJsZS5jDQo+ID4+PiBpbmRleCBkMzEyZWI2NmY4Li4w ODAyNDY0YjlkIDEwMDY0NA0KPiA+Pj4gLS0tIGEvVWVmaUNwdVBrZy9DcHVEeGUvQ3B1UGFnZVRh YmxlLmMNCj4gPj4+ICsrKyBiL1VlZmlDcHVQa2cvQ3B1RHhlL0NwdVBhZ2VUYWJsZS5jDQo+ID4+ PiBAQCAtODI5LDYgKzgyOSwxNSBAQCBSZWZyZXNoR2NkTWVtb3J5QXR0cmlidXRlc0Zyb21QYWdp bmcgKA0KPiA+Pj4gICAgICAvLyBTeW5jIHJlYWwgcGFnZSBhdHRyaWJ1dGVzIHRvIEdDRA0KPiA+ Pj4gICAgICBCYXNlQWRkcmVzcyAgICAgICA9IE1lbW9yeVNwYWNlTWFwW0luZGV4XS5CYXNlQWRk cmVzczsNCj4gPj4+ICAgICAgTWVtb3J5U3BhY2VMZW5ndGggPSBNZW1vcnlTcGFjZU1hcFtJbmRl eF0uTGVuZ3RoOw0KPiA+Pj4gKyAgICBDYXBhYmlsaXRpZXMgICAgICA9IE1lbW9yeVNwYWNlTWFw W0luZGV4XS5DYXBhYmlsaXRpZXMgfA0KPiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIEVG SV9NRU1PUllfUEFHRVRZUEVfTUFTSzsNCj4gPj4+ICsgICAgU3RhdHVzID0gZ0RTLT5TZXRNZW1v cnlTcGFjZUNhcGFiaWxpdGllcyAoDQo+ID4+PiArICAgICAgICAgICAgICAgICAgICBCYXNlQWRk cmVzcywNCj4gPj4+ICsgICAgICAgICAgICAgICAgICAgIE1lbW9yeVNwYWNlTGVuZ3RoLA0KPiA+ Pj4gKyAgICAgICAgICAgICAgICAgICAgQ2FwYWJpbGl0aWVzDQo+ID4+PiArICAgICAgICAgICAg ICAgICAgICApOw0KPiA+Pj4gKyAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiA+Pj4g Kw0KPiA+Pj4gICAgICB3aGlsZSAoTWVtb3J5U3BhY2VMZW5ndGggPiAwKSB7DQo+ID4+PiAgICAg ICAgaWYgKFBhZ2VMZW5ndGggPT0gMCkgew0KPiA+Pj4gICAgICAgICAgUGFnZUVudHJ5ID0gR2V0 UGFnZVRhYmxlRW50cnkgKCZQYWdpbmdDb250ZXh0LCBCYXNlQWRkcmVzcywNCj4gPj4gJlBhZ2VB dHRyaWJ1dGUpOw0KPiA+Pj4gQEAgLTg0Niw3ICs4NTUsNiBAQCBSZWZyZXNoR2NkTWVtb3J5QXR0 cmlidXRlc0Zyb21QYWdpbmcgKA0KPiA+Pj4gICAgICAgICAgaWYgKEF0dHJpYnV0ZXMgIT0gKE1l bW9yeVNwYWNlTWFwW0luZGV4XS5BdHRyaWJ1dGVzICYNCj4gPj4gRUZJX01FTU9SWV9QQUdFVFlQ RV9NQVNLKSkgew0KPiA+Pj4gICAgICAgICAgICBEb1VwZGF0ZSA9IFRSVUU7DQo+ID4+PiAgICAg ICAgICAgIEF0dHJpYnV0ZXMgfD0gKE1lbW9yeVNwYWNlTWFwW0luZGV4XS5BdHRyaWJ1dGVzICYN Cj4gPj4gfkVGSV9NRU1PUllfUEFHRVRZUEVfTUFTSyk7DQo+ID4+PiAtICAgICAgICAgIENhcGFi aWxpdGllcyA9IEF0dHJpYnV0ZXMgfCBNZW1vcnlTcGFjZU1hcFtJbmRleF0uQ2FwYWJpbGl0aWVz Ow0KPiA+Pj4gICAgICAgICAgfSBlbHNlIHsNCj4gPj4+ICAgICAgICAgICAgRG9VcGRhdGUgPSBG QUxTRTsNCj4gPj4+ICAgICAgICAgIH0NCj4gPj4+IEBAIC04NTQsOCArODYyLDggQEAgUmVmcmVz aEdjZE1lbW9yeUF0dHJpYnV0ZXNGcm9tUGFnaW5nICgNCj4gPj4+DQo+ID4+PiAgICAgICAgTGVu Z3RoID0gTUlOIChQYWdlTGVuZ3RoLCBNZW1vcnlTcGFjZUxlbmd0aCk7DQo+ID4+PiAgICAgICAg aWYgKERvVXBkYXRlKSB7DQo+ID4+PiAtICAgICAgICBnRFMtPlNldE1lbW9yeVNwYWNlQ2FwYWJp bGl0aWVzIChCYXNlQWRkcmVzcywgTGVuZ3RoLCBDYXBhYmlsaXRpZXMpOw0KPiA+Pj4gLSAgICAg ICAgZ0RTLT5TZXRNZW1vcnlTcGFjZUF0dHJpYnV0ZXMgKEJhc2VBZGRyZXNzLCBMZW5ndGgsIEF0 dHJpYnV0ZXMpOw0KPiA+Pj4gKyAgICAgICAgU3RhdHVzID0gZ0RTLT5TZXRNZW1vcnlTcGFjZUF0 dHJpYnV0ZXMgKEJhc2VBZGRyZXNzLCBMZW5ndGgsDQo+ID4+IEF0dHJpYnV0ZXMpOw0KPiA+Pj4g KyAgICAgICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gPj4+ICAgICAgICAgIERFQlVH ICgoREVCVUdfSU5GTywgIlVwZGF0ZSBtZW1vcnkgc3BhY2UgYXR0cmlidXRlOg0KPiBbJTAyZF0g JTAxNmx4DQo+ID4+IC0gJTAxNmx4ICglMDhseCAtPiAlMDhseClcclxuIiwNCj4gPj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4LCBCYXNlQWRkcmVzcywgQmFzZUFkZHJlc3Mg KyBMZW5ndGggLSAxLA0KPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5 U3BhY2VNYXBbSW5kZXhdLkF0dHJpYnV0ZXMsIEF0dHJpYnV0ZXMpKTsNCj4gPj4+DQo+ID4NCg0K