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.93; helo=mga11.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (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 60B4A2034A874 for ; Thu, 26 Oct 2017 18:13:07 -0700 (PDT) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Oct 2017 18:16:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,302,1505804400"; d="scan'208";a="167666616" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga005.fm.intel.com with ESMTP; 26 Oct 2017 18:16:53 -0700 Received: from fmsmsx112.amr.corp.intel.com (10.18.116.6) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 26 Oct 2017 18:16:53 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX112.amr.corp.intel.com (10.18.116.6) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 26 Oct 2017 18:16:52 -0700 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; Fri, 27 Oct 2017 09:16:50 +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: AQHTTkJBPasfeYxtkU+2Oizp2GmZwqL22aLg Date: Fri, 27 Oct 2017 01:16:50 +0000 Message-ID: References: <20171023065022.1272-1-jian.j.wang@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZTVkOTkyZjItMjBkMi00Yjg2LWFkZmItMmQwOTJlYWYzNGE3IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJPeGQrZWM0V245XC9cL2w2NlZpRnk2YnlFRmhQTmI0T1kzYmJXY2J5T2lWRjNxdkpvZEZubURuYkZ5T2VHMkFDUlQifQ== 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: Fri, 27 Oct 2017 01:13:07 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGFzemxvLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExhc3ps byBFcnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXQ0KPiBTZW50OiBUaHVyc2RheSwgT2N0 b2JlciAyNiwgMjAxNyA2OjA4IFBNDQo+IFRvOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGlu dGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+IENjOiBZYW8sIEppZXdlbiA8amll d2VuLnlhb0BpbnRlbC5jb20+OyBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiBT dWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSF0gVWVmaUNwdVBrZy9DcHVEeGU6IEZpeCBtdWx0aXBs ZSBlbnRyaWVzIG9mDQo+IFJUX0NPREUgaW4gbWVtb3J5IG1hcA0KPiANCj4gSGVsbG8gSmlhbiwN Cj4gDQo+IE9uIDEwLzIzLzE3IDA4OjUwLCBKaWFuIEogV2FuZyB3cm90ZToNCj4gPiBNb3JlIHRo YW4gb25lIGVudHJ5IG9mIFJUX0NPREUgbWVtb3J5IG1pZ2h0IGNhdXNlIGJvb3QgcHJvYmxlbSBm b3INCj4gc29tZQ0KPiA+IG9sZCBPU3MuIFRoaXMgcGF0Y2ggd2lsbCBmaXggdGhpcyBpc3N1ZSB0 byBrZWVwIE9TIGNvbXBhdGliaWxpdHkgYXMgbXVjaA0KPiA+IGFzIHBvc3NpYmxlLg0KPiA+DQo+ ID4gQ2M6IEVyaWMgRG9uZyA8ZXJpYy5kb25nQGludGVsLmNvbT4NCj4gPiBDYzogSmlld2VuIFlh byA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4gQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29y ZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPiA+IFNpZ25lZC1vZmYtYnk6IEppYW4gSiBX YW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gIFVlZmlDcHVQa2cvQ3B1 RHhlL0NwdVBhZ2VUYWJsZS5jIHwgMTQgKysrKysrKysrKystLS0NCj4gPiAgMSBmaWxlIGNoYW5n ZWQsIDExIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+IA0KPiBUaGFuayB5b3UgYWdh aW4gZm9yIHRoZSBleHBsYW5hdGlvbiBlbHNld2hlcmUgaW4gdGhpcyB0aHJlYWQuIEkgZmlsZWQN Cj4gdGhlIGZvbGxvd2luZyBUaWFub0NvcmUgQnVnemlsbGEgZW50cnkgYWJvdXQgdGhpcyBpc3N1 ZSwgYW5kIGFzc2lnbmVkIGl0DQo+IHRvIHlvdToNCj4gDQo+ICAgaHR0cHM6Ly9idWd6aWxsYS50 aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTMNCj4gDQo+IENhbiB5b3UgcGxlYXNlIHJl YWQgdGhlIEJaLCBhbmQgYWRkIGNvcnJlY3Rpb25zIChpbiBmdXJ0aGVyIGNvbW1lbnRzKSBpZg0K PiB5b3UgdGhpbmsgYW55IHN1Y2ggYXJlIG5lY2Vzc2FyeT8NCj4gDQo+IEkgc3VnZ2VzdCB0aGF0 IHRoZSBCWiByZWZlcmVuY2UgYmUgaW5jbHVkZWQgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLiAoSWYN Cj4gdGhlcmUgaXMgbm8gdjIgbmVjZXNzYXJ5IGZvciB0aGlzIHBhdGNoLCB0aGVuIEVyaWMgY2Fu IGRvIHRoYXQgYXMgd2VsbCwNCj4gd2hlbiBoZSBjb21taXRzIC8gcHVzaGVzIHlvdXIgcGF0Y2gu KQ0KPiANCg0KWW91J3JlIHdlbGNvbWUuIFRob3NlIGluZm9ybWF0aW9uIHNob3VsZCBoYXZlIGJl ZW4gcHJvdmlkZWQgYXQgdGhlIHZlcnkgYmVnaW5uaW5nLiANCkkgdGhpbmsgSSBoYXZlIGEgbG90 IHRvIGxlYXJuIGZyb20geW91IHRvIGRvIGJldHRlciBmb3Igb3BlbiBzb3VyY2UgY29tbXVuaXR5 LiBMaWtlIHRoZQ0KQnVnemlsbGEgZW50cnkuIEknZCBzYXkgdGhpcyBpcyB0aGUgYmVzdCBkZXNj cmlwdGlvbiBJJ3ZlIGV2ZXIgcmVhZC4NCg0KPiBJIHRoaW5rIHRoZSBwYXRjaCBpcyBnb29kLCBi dXQgSSBoYXZlIG9uZSB0ZWNobmljYWwgcXVlc3Rpb24gYmVsb3c6DQo+IA0KPiA+IGRpZmYgLS1n aXQgYS9VZWZpQ3B1UGtnL0NwdUR4ZS9DcHVQYWdlVGFibGUuYw0KPiBiL1VlZmlDcHVQa2cvQ3B1 RHhlL0NwdVBhZ2VUYWJsZS5jDQo+ID4gaW5kZXggZDMxMmViNjZmOC4uMDgwMjQ2NGI5ZCAxMDA2 NDQNCj4gPiAtLS0gYS9VZWZpQ3B1UGtnL0NwdUR4ZS9DcHVQYWdlVGFibGUuYw0KPiA+ICsrKyBi L1VlZmlDcHVQa2cvQ3B1RHhlL0NwdVBhZ2VUYWJsZS5jDQo+ID4gQEAgLTgyOSw2ICs4MjksMTUg QEAgUmVmcmVzaEdjZE1lbW9yeUF0dHJpYnV0ZXNGcm9tUGFnaW5nICgNCj4gPiAgICAgIC8vIFN5 bmMgcmVhbCBwYWdlIGF0dHJpYnV0ZXMgdG8gR0NEDQo+ID4gICAgICBCYXNlQWRkcmVzcyAgICAg ICA9IE1lbW9yeVNwYWNlTWFwW0luZGV4XS5CYXNlQWRkcmVzczsNCj4gPiAgICAgIE1lbW9yeVNw YWNlTGVuZ3RoID0gTWVtb3J5U3BhY2VNYXBbSW5kZXhdLkxlbmd0aDsNCj4gPiArICAgIENhcGFi aWxpdGllcyAgICAgID0gTWVtb3J5U3BhY2VNYXBbSW5kZXhdLkNhcGFiaWxpdGllcyB8DQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9NRU1PUllfUEFHRVRZUEVfTUFTSzsNCj4gPiAr ICAgIFN0YXR1cyA9IGdEUy0+U2V0TWVtb3J5U3BhY2VDYXBhYmlsaXRpZXMgKA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgIEJhc2VBZGRyZXNzLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgIE1l bW9yeVNwYWNlTGVuZ3RoLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgIENhcGFiaWxpdGllcw0K PiA+ICsgICAgICAgICAgICAgICAgICAgICk7DQo+ID4gKyAgICBBU1NFUlRfRUZJX0VSUk9SIChT dGF0dXMpOw0KPiA+ICsNCj4gDQo+IFRoaXMgbG9naWMgLS0gaS5lLiB0aGUgYWRkaXRpb24gb2Yg dGhlIEVGSV9NRU1PUllfUEFHRVRZUEVfTUFTSw0KPiBjYXBhYmlsaXRpZXMgLS0gd2lsbCBiZSBh cHBsaWVkIHRvICphbGwqIEdDRCBtZW1vcnkgc3BhY2UgbWFwIGVudHJpZXMNCj4gdGhhdCBoYXZl IGEgdHlwZSBkaWZmZXJlbnQgZnJvbSAiRWZpR2NkTWVtb3J5VHlwZU5vbkV4aXN0ZW50Ii4NCj4g DQo+IEkgd29uZGVyIGlmIHRoYXQncyBhIGdvb2QgaWRlYSAtLSBmb3IgZXhhbXBsZSBJIGRvbid0 IHRoaW5rIGl0IG1ha2VzDQo+IG11Y2ggc2Vuc2UgZm9yICJFZmlHY2RNZW1vcnlUeXBlTWVtb3J5 TWFwcGVkSW8iLg0KPiANCj4gSG93IGFib3V0IHRoZSBmb2xsb3dpbmcgYWx0ZXJuYXRpdmVzOg0K PiANCj4gKDEpICpFaXRoZXIqIHJlc3RyaWN0IHRoaXMgY2FwYWJpbGl0eSBhZGRpdGlvbiB0bw0K PiBFZmlHY2RNZW1vcnlUeXBlU3lzdGVtTWVtb3J5IChhbmQgbWF5YmUgc29tZSBvdGhlciBHQ0Qg dHlwZXMgYXMgd2VsbD8pLA0KPiANCj4gKDIpICpvciosIHJlbW92ZSB0aGlzIGNoYW5nZSwgYW5k Og0KPiANCj4gPiAgICAgIHdoaWxlIChNZW1vcnlTcGFjZUxlbmd0aCA+IDApIHsNCj4gPiAgICAg ICAgaWYgKFBhZ2VMZW5ndGggPT0gMCkgew0KPiA+ICAgICAgICAgIFBhZ2VFbnRyeSA9IEdldFBh Z2VUYWJsZUVudHJ5ICgmUGFnaW5nQ29udGV4dCwgQmFzZUFkZHJlc3MsDQo+ICZQYWdlQXR0cmli dXRlKTsNCj4gPiBAQCAtODQ2LDcgKzg1NSw2IEBAIFJlZnJlc2hHY2RNZW1vcnlBdHRyaWJ1dGVz RnJvbVBhZ2luZyAoDQo+ID4gICAgICAgICAgaWYgKEF0dHJpYnV0ZXMgIT0gKE1lbW9yeVNwYWNl TWFwW0luZGV4XS5BdHRyaWJ1dGVzICYNCj4gRUZJX01FTU9SWV9QQUdFVFlQRV9NQVNLKSkgew0K PiA+ICAgICAgICAgICAgRG9VcGRhdGUgPSBUUlVFOw0KPiA+ICAgICAgICAgICAgQXR0cmlidXRl cyB8PSAoTWVtb3J5U3BhY2VNYXBbSW5kZXhdLkF0dHJpYnV0ZXMgJg0KPiB+RUZJX01FTU9SWV9Q QUdFVFlQRV9NQVNLKTsNCj4gPiAtICAgICAgICAgIENhcGFiaWxpdGllcyA9IEF0dHJpYnV0ZXMg fCBNZW1vcnlTcGFjZU1hcFtJbmRleF0uQ2FwYWJpbGl0aWVzOw0KPiA+ICAgICAgICAgIH0gZWxz ZSB7DQo+ID4gICAgICAgICAgICBEb1VwZGF0ZSA9IEZBTFNFOw0KPiA+ICAgICAgICAgIH0NCj4g PiBAQCAtODU0LDggKzg2Miw4IEBAIFJlZnJlc2hHY2RNZW1vcnlBdHRyaWJ1dGVzRnJvbVBhZ2lu ZyAoDQo+ID4NCj4gPiAgICAgICAgTGVuZ3RoID0gTUlOIChQYWdlTGVuZ3RoLCBNZW1vcnlTcGFj ZUxlbmd0aCk7DQo+ID4gICAgICAgIGlmIChEb1VwZGF0ZSkgew0KPiA+IC0gICAgICAgIGdEUy0+ U2V0TWVtb3J5U3BhY2VDYXBhYmlsaXRpZXMgKEJhc2VBZGRyZXNzLCBMZW5ndGgsIENhcGFiaWxp dGllcyk7DQo+ID4gLSAgICAgICAgZ0RTLT5TZXRNZW1vcnlTcGFjZUF0dHJpYnV0ZXMgKEJhc2VB ZGRyZXNzLCBMZW5ndGgsIEF0dHJpYnV0ZXMpOw0KPiA+ICsgICAgICAgIFN0YXR1cyA9IGdEUy0+ U2V0TWVtb3J5U3BhY2VBdHRyaWJ1dGVzIChCYXNlQWRkcmVzcywgTGVuZ3RoLA0KPiBBdHRyaWJ1 dGVzKTsNCj4gPiArICAgICAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiA+ICAgICAg ICAgIERFQlVHICgoREVCVUdfSU5GTywgIlVwZGF0ZSBtZW1vcnkgc3BhY2UgYXR0cmlidXRlOiBb JTAyZF0gJTAxNmx4DQo+IC0gJTAxNmx4ICglMDhseCAtPiAlMDhseClcclxuIiwNCj4gPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCwgQmFzZUFkZHJlc3MsIEJhc2VBZGRyZXNz ICsgTGVuZ3RoIC0gMSwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnlT cGFjZU1hcFtJbmRleF0uQXR0cmlidXRlcywgQXR0cmlidXRlcykpOw0KPiA+DQo+IA0KPiBrZWVw IHRoZSBTZXRNZW1vcnlTcGFjZUNhcGFiaWxpdGllcygpIGNhbGwgaGVyZSwgYnV0IHVzZSB0aGUg Zm9sbG93aW5nDQo+IGFyZ3VtZW50cyBpbnN0ZWFkOg0KPiANCj4gICBNZW1vcnlTcGFjZU1hcFtJ bmRleF0uQmFzZUFkZHJlc3MNCj4gICBNZW1vcnlTcGFjZU1hcFtJbmRleF0uTGVuZ3RoDQo+IA0K PiBUaGlzIHdpbGwgZW5zdXJlIHRoYXQgdGhlIGNhcGFiaWxpdGllcyBhcmUgY2hhbmdlZCBvbiB0 aGUgKmVudGlyZSoNCj4gY29udGFpbmluZyBHQ0QgbWVtb3J5IHNwYWNlIGVudHJ5LCBhbmQgbm8g ZW50cnkgc3BsaXR0aW5nIHdpbGwgdGFrZQ0KPiBwbGFjZS4NCj4gDQo+IFllcywgaXQgaXMgcG9z c2libGUgdGhhdCB0aGUgU2V0TWVtb3J5U3BhY2VDYXBhYmlsaXRpZXMoKSBmdW5jdGlvbiB3aWxs DQo+IGJlIGludm9rZWQgbXVsdGlwbGUgdGltZXMsIG9uIHRoZSBzYW1lIEdDRCBtZW1vcnkgc3Bh Y2UgZW50cnksIGJ1dA0KPiB0aGF0J3Mgbm90IGEgcHJvYmxlbSwgSU1PLiBUaGUgQ2FwYWJpbGl0 aWVzIHZhbHVlIChiaXRtYXNrKSBzaG91bGQgYmUNCj4gdGhlIGV4YWN0IHNhbWUuDQo+IA0KPiBJ biBmYWN0LCB5b3UgY291bGQgc2V0IENhcGFiaWxpdGllcyBqdXN0IGJlZm9yZSB0aGUgaW5uZXIg bG9vcCwgYW5kIHRoZW4NCj4gb25seSAqZ3JvdyogaXQgaW4gdGhlIGlubmVyIGxvb3AuIFNvbWV0 aGluZyBsaWtlIHRoaXM6DQo+IA0KPiA+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0NwdUR4ZS9D cHVQYWdlVGFibGUuYw0KPiBiL1VlZmlDcHVQa2cvQ3B1RHhlL0NwdVBhZ2VUYWJsZS5jDQo+ID4g aW5kZXggZDMxMmViNjZmODdjLi41YTBlYjI5MDBjZDUgMTAwNjQ0DQo+ID4gLS0tIGEvVWVmaUNw dVBrZy9DcHVEeGUvQ3B1UGFnZVRhYmxlLmMNCj4gPiArKysgYi9VZWZpQ3B1UGtnL0NwdUR4ZS9D cHVQYWdlVGFibGUuYw0KPiA+IEBAIC04MjksNiArODI5LDcgQEAgUmVmcmVzaEdjZE1lbW9yeUF0 dHJpYnV0ZXNGcm9tUGFnaW5nICgNCj4gPiAgICAgIC8vIFN5bmMgcmVhbCBwYWdlIGF0dHJpYnV0 ZXMgdG8gR0NEDQo+ID4gICAgICBCYXNlQWRkcmVzcyAgICAgICA9IE1lbW9yeVNwYWNlTWFwW0lu ZGV4XS5CYXNlQWRkcmVzczsNCj4gPiAgICAgIE1lbW9yeVNwYWNlTGVuZ3RoID0gTWVtb3J5U3Bh Y2VNYXBbSW5kZXhdLkxlbmd0aDsNCj4gPiArICAgIENhcGFiaWxpdGllcyAgICAgID0gTWVtb3J5 U3BhY2VNYXBbSW5kZXhdLkNhcGFiaWxpdGllczsNCj4gPiAgICAgIHdoaWxlIChNZW1vcnlTcGFj ZUxlbmd0aCA+IDApIHsNCj4gPiAgICAgICAgaWYgKFBhZ2VMZW5ndGggPT0gMCkgew0KPiA+ICAg ICAgICAgIFBhZ2VFbnRyeSA9IEdldFBhZ2VUYWJsZUVudHJ5ICgmUGFnaW5nQ29udGV4dCwgQmFz ZUFkZHJlc3MsDQo+ICZQYWdlQXR0cmlidXRlKTsNCj4gPiBAQCAtODQ2LDcgKzg0Nyw3IEBAIFJl ZnJlc2hHY2RNZW1vcnlBdHRyaWJ1dGVzRnJvbVBhZ2luZyAoDQo+ID4gICAgICAgICAgaWYgKEF0 dHJpYnV0ZXMgIT0gKE1lbW9yeVNwYWNlTWFwW0luZGV4XS5BdHRyaWJ1dGVzICYNCj4gRUZJX01F TU9SWV9QQUdFVFlQRV9NQVNLKSkgew0KPiA+ICAgICAgICAgICAgRG9VcGRhdGUgPSBUUlVFOw0K PiA+ICAgICAgICAgICAgQXR0cmlidXRlcyB8PSAoTWVtb3J5U3BhY2VNYXBbSW5kZXhdLkF0dHJp YnV0ZXMgJg0KPiB+RUZJX01FTU9SWV9QQUdFVFlQRV9NQVNLKTsNCj4gPiAtICAgICAgICAgIENh cGFiaWxpdGllcyA9IEF0dHJpYnV0ZXMgfCBNZW1vcnlTcGFjZU1hcFtJbmRleF0uQ2FwYWJpbGl0 aWVzOw0KPiA+ICsgICAgICAgICAgQ2FwYWJpbGl0aWVzIHw9IEF0dHJpYnV0ZXM7DQo+ID4gICAg ICAgICAgfSBlbHNlIHsNCj4gPiAgICAgICAgICAgIERvVXBkYXRlID0gRkFMU0U7DQo+ID4gICAg ICAgICAgfQ0KPiA+IEBAIC04NTQsOCArODU1LDIwIEBAIFJlZnJlc2hHY2RNZW1vcnlBdHRyaWJ1 dGVzRnJvbVBhZ2luZyAoDQo+ID4NCj4gPiAgICAgICAgTGVuZ3RoID0gTUlOIChQYWdlTGVuZ3Ro LCBNZW1vcnlTcGFjZUxlbmd0aCk7DQo+ID4gICAgICAgIGlmIChEb1VwZGF0ZSkgew0KPiA+IC0g ICAgICAgIGdEUy0+U2V0TWVtb3J5U3BhY2VDYXBhYmlsaXRpZXMgKEJhc2VBZGRyZXNzLCBMZW5n dGgsIENhcGFiaWxpdGllcyk7DQo+ID4gLSAgICAgICAgZ0RTLT5TZXRNZW1vcnlTcGFjZUF0dHJp YnV0ZXMgKEJhc2VBZGRyZXNzLCBMZW5ndGgsIEF0dHJpYnV0ZXMpOw0KPiA+ICsgICAgICAgIFN0 YXR1cyA9IGdEUy0+U2V0TWVtb3J5U3BhY2VDYXBhYmlsaXRpZXMgKA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICBNZW1vcnlTcGFjZU1hcFtJbmRleF0uQmFzZUFkZHJlc3MsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeVNwYWNlTWFwW0luZGV4XS5MZW5ndGgsDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgIENhcGFiaWxpdGllcw0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICApOw0KPiA+ICsgICAgICAgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ ID4gKw0KPiA+ICsgICAgICAgIFN0YXR1cyA9IGdEUy0+U2V0TWVtb3J5U3BhY2VBdHRyaWJ1dGVz ICgNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgQmFzZUFkZHJlc3MsDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgIExlbmd0aCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg QXR0cmlidXRlcw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICApOw0KPiA+ICsgICAgICAg IEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ID4gKw0KPiA+ICAgICAgICAgIERFQlVHICgo REVCVUdfSU5GTywgIlVwZGF0ZSBtZW1vcnkgc3BhY2UgYXR0cmlidXRlOiBbJTAyZF0gJTAxNmx4 DQo+IC0gJTAxNmx4ICglMDhseCAtPiAlMDhseClcclxuIiwNCj4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJbmRleCwgQmFzZUFkZHJlc3MsIEJhc2VBZGRyZXNzICsgTGVuZ3RoIC0g MSwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnlTcGFjZU1hcFtJbmRl eF0uQXR0cmlidXRlcywgQXR0cmlidXRlcykpOw0KPiANCj4gV2hhdCBkbyB5b3UgdGhpbms/DQo+ IA0KDQpZb3UgaGF2ZSBhIGdvb2QgY2F0Y2ggb24gdGhlIGZpeC4gSSBkbyBjb25zaWRlcmVkIGl0 IGR1cmluZyB0aGUgY29kaW5nIGFuZA0Kc3RydWdnbGVkIGZvciBhIHdoaWxlLiBGcm9tIHBhZ2lu ZyBwZXJzcGVjdGl2ZSwgaXQncyBub3Qgd3JvbmcgdG8gYWRkIHRob3NlIA0KY2FwYWJpbGl0aWVz IHRvIGFsbCBtZW1vcnkgYWRkcmVzcyByYW5nZSB1bmRlciBwYWdpbmcsIGV2ZW4gZm9yIElPLiBC dXQNCmZyb20gdXNhZ2UgcGVyc3BlY3RpdmUsIG1heWJlIGxldHRpbmcgZGV2ZWxvcGVycyBhZGQg Y2FwYWJpbGl0aWVzIGJlZm9yZSANCmNoYW5naW5nIHBhZ2UgYXR0cmlidXRlcyBpcyBhIGdvb2Qg cmVtaW5kZXIgZm9yIHRoZW0gdG8gZG8gaXQgY2F1dGlvdXNseS4NCg0KSSBkb24ndCBoYXZlIHN0 cm9uZyBvcGluaW9uIG9uIGl0IGFjdHVhbGx5IGJlY2F1c2UgSSBjYW4ndCBmb3Jlc2VlIHRoZSBs b25nLXRlcm0gDQppbXBhY3RzLiBQbGVhc2UgYWxsb3cgbWUgdG8gY29uc3VsdCBtb3JlIGV4cGVy dHMgZm9yIHRoaXMuDQoNCj4gDQo+IE1ldGEgY29tbWVudDogY2FuIHlvdSBwbGVhc2UgQ0MgbWUg b24gdGhlIG5leHQgdmVyc2lvbiBvZiB0aGUgcGF0Y2ggKGlmDQo+IHlvdSBzZW5kIG9uZSk/IExv b2tzIGxpa2UgSSdtIG5vdyBhIFJldmlld2VyIGZvciBVZWZpQ3B1UGtnIDopICwgSSBqdXN0DQo+ IGhhdmUgdG8gY29tbWl0IHRoZSBwYXRjaCBmb3IgIk1haW50YWluZXJzLnR4dCIuDQo+IA0KPiBJ biBhZGRpdGlvbiwgaWYgeW91IHNlbmQgYSB2MiwgcGxlYXNlIGxvY2F0ZSB0aGUgd2ViIGxpbmsg Zm9yIGl0IGluIHRoZQ0KPiBtYWlsaW5nIGxpc3QgYXJjaGl2ZToNCj4gDQo+ICAgaHR0cHM6Ly9s aXN0cy4wMS5vcmcvcGlwZXJtYWlsL2VkazItZGV2ZWwvMjAxNy1PY3RvYmVyL3RocmVhZC5odG1s DQo+IA0KPiBhbmQgYWRkIHRoZSBsaW5rIHRvIHRoZSBCdWd6aWxsYSwgaW4gYSBuZXcgY29tbWVu dCAtLSB0aGlzIHdheSBzb21lb25lDQo+IHdobyBsb29rcyBhdCB0aGUgYnVnemlsbGEgY2FuIHNl ZSBhbGwgdGhlIHZlcnNpb25zIGFuZCB0aGUgZGlzY3Vzc2lvbg0KPiB0aHJlYWRzLg0KPiANCg0K U3VyZS4gSSB0aGluayB3ZSB3ZWxjb21lIG1vcmUgbWFpbnRhaW5lcnMgOi0pDQoNCj4gVGhhbmtz IQ0KPiBMYXN6bG8NCg==