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 26C3B222EDCEA for ; Thu, 4 Jan 2018 17:52:30 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Jan 2018 17:57:35 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,316,1511856000"; d="scan'208,217";a="8008731" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga007.jf.intel.com with ESMTP; 04 Jan 2018 17:57:35 -0800 Received: from fmsmsx154.amr.corp.intel.com (10.18.116.70) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 4 Jan 2018 17:57:34 -0800 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX154.amr.corp.intel.com (10.18.116.70) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 4 Jan 2018 17:57:34 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.218]) with mapi id 14.03.0319.002; Fri, 5 Jan 2018 09:57:32 +0800 From: "Wang, Jian J" To: Fan Jeff , Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Yao, Jiewen" , "Dong, Eric" Thread-Topic: [edk2] [PATCH] UefiCpuPkg/MpInitLib: fix wrong base address set as Stack Guard Thread-Index: AQHTgIBBAhUXNh3QfEei4ASfd+cM3KNh6soAgAD5yACAAAkXYIAACzOQgAAtIwCAAN8zAIAAinSg Date: Fri, 5 Jan 2018 01:57:31 +0000 Message-ID: References: <20171229083631.16652-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: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYmQ5YTY0ZTItYTBlZi00MGU5LThjMjktODg0MThiNTk4MDhhIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiIyMzZJVlBvT0k4SFluRmNXcUNWVjlpMFJwc1lzM0x3Y1BuRTRDcjQwKzVQaXZBNCtFNFpLWUhoa01KZEF3ck45In0= x-ctpclassification: CTP_NT 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 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 Subject: Re: [PATCH] UefiCpuPkg/MpInitLib: fix wrong base address set as Stack Guard X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Jan 2018 01:52:30 -0000 Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SGkgSmVmZiwNCg0KRG8geW91IHRoaW5rIHRoZSBjaGFuZ2UgaXMgT0s/IERvIHlvdSBrbm93IGhv dyB0byB0ZXN0IHN3aXRjaGluZyBCU1A/DQoNClJlZ2FyZHMsDQpKaWFuDQoNCkZyb206IEZhbiBK ZWZmIFttYWlsdG86dmFuamVmZl85MTlAaG90bWFpbC5jb21dDQpTZW50OiBGcmlkYXksIEphbnVh cnkgMDUsIDIwMTggOTo0MCBBTQ0KVG86IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+ OyBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMu MDEub3JnDQpDYzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgRG9uZywgRXJp YyA8ZXJpYy5kb25nQGludGVsLmNvbT4NClN1YmplY3Q6ILTwuLQ6IFtlZGsyXSBbUEFUQ0hdIFVl ZmlDcHVQa2cvTXBJbml0TGliOiBmaXggd3JvbmcgYmFzZSBhZGRyZXNzIHNldCBhcyBTdGFjayBH dWFyZA0KDQpMYXN6bG8sDQoNCkZpcnN0bHksIFN3aXRjaEJTUCgpIGlzIG9uZSBzZXJ2aWNlIG9m IE1QIGRlZmluZWQgaW4gUEkgc3BlYy4NCg0KRm9yIHJlYWwgY2FzZSwgSSB0aGluayBtdWx0aXBs ZSBzb2NrZXQgc3lzdGVtKHdpdGggZGlmZmVyZW50IHByb2Nlc3NvciBzdGVwcGluZykgbWF5IHVz ZSB0aGlzIHNlcnZpY2UgZm9yIHB1cnBvc2UuDQoNClRoYW5rcyENCkplZmYNCg0Kt6K8/sjLOiBM YXN6bG8gRXJzZWs8bWFpbHRvOmxlcnNla0ByZWRoYXQuY29tPg0Kt6LLzcqxvOQ6IDIwMTjE6jHU wjTI1SAyMDoyMQ0KytW8/sjLOiBXYW5nLCBKaWFuIEo8bWFpbHRvOmppYW4uai53YW5nQGludGVs LmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAx Lm9yZz4NCrOty806IFlhbywgSmlld2VuPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT47IERv bmcsIEVyaWM8bWFpbHRvOmVyaWMuZG9uZ0BpbnRlbC5jb20+DQrW98ziOiBSZTogW2VkazJdIFtQ QVRDSF0gVWVmaUNwdVBrZy9NcEluaXRMaWI6IGZpeCB3cm9uZyBiYXNlIGFkZHJlc3Mgc2V0IGFz IFN0YWNrIEd1YXJkDQoNCk9uIDAxLzA0LzE4IDAyOjQ1LCBXYW5nLCBKaWFuIEogd3JvdGU6DQo+ IEEgY29ycmVjdGlvbjogYWx0aG91Z2ggQlNQIGRvZXNuJ3QgbmVlZCBpdCwgd2Ugc3RpbGwgbmVl ZCB0byBpbml0aWFsaXplIGl0cyBBcFRvcE9mU3RhY2sNCj4gY29ycmVjdGx5IGJlY2F1c2UgdGhl IE1QIHNlcnZpY2Ugc3VwcG9ydHMgQlNQL0FQIGV4Y2hhbmdlLiBTbyBJIHRoaW5rIHRoZSBsaW5l IDE1MDENCj4gc2hvdWxkIGJlIGNoYW5nZWQgdG8NCj4NCj4gICBJbml0aWFsaXplQXBEYXRhIChD cHVNcERhdGEsIDAsIDAsIENwdU1wRGF0YS0+QnVmZmVyICsgQ3B1TXBEYXRhLT5DcHVBcFN0YWNr U2l6ZSk7DQo+DQo+IGluc3RlYWQgb2YNCj4NCj4gICBJbml0aWFsaXplQXBEYXRhIChDcHVNcERh dGEsIDAsIDAsIE5VTEwpOw0KDQpIbW0uLi4gQWx0aG91Z2ggSSBkb24ndCBpbW1lZGlhdGVseSBz ZWUgYWxsIHBvc3NpYmxlIGNvbnNlcXVlbmNlcyBvZg0Kc3VjaCBhIGNoYW5nZSwgaXQgbG9va3Mg bGlrZSBhIGNvcnJlY3QgZml4Lg0KDQpVbmZvcnR1bmF0ZWx5LCBJIGRvbid0IGtub3cgb2YgYW55 IGNvZGUgdGhhdCBhY3R1YWxseSBleGVyY2lzZXMgdGhlDQpCU1AvQVAgZXhjaGFuZ2Ugc2Vydmlj ZS4gSSB0aGluayBJbnRlbCBtdXN0IGhhdmUgYWNjZXNzIHRvIHNvbWUgY2xpZW50DQpjb2RlIGxp a2UgdGhpcywgYmVjYXVzZSBJIHZhZ3VlbHkgcmVjYWxsIHNvbWUgcGF0Y2hlcyBvdmVyIHRpbWUg dGhhdA0KaW1wcm92ZWQgQlNQL0FQIGV4Y2hhbmdlLg0KDQpJZiB5b3UgbW9kaWZ5IHRoZSBJbml0 aWFsaXplQXBEYXRhKCkgY2FsbCBpbiBxdWVzdGlvbiBsaWtlIHN1Z2dlc3RlZA0KYWJvdmUsIGNh biB5b3UgcGVyaGFwcyBsb2NhdGUgdGhhdCBjbGllbnQgY29kZSwgYW5kIHRlc3QgdGhlIGNoYW5n ZSB3aXRoIGl0Pw0KDQpUaGFua3MhDQpMYXN6bG8NCg0KDQo+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPj4gRnJvbTogV2FuZywgSmlhbiBKDQo+PiBTZW50OiBUaHVyc2RheSwgSmFudWFy eSAwNCwgMjAxOCA5OjA5IEFNDQo+PiBUbzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRl bC5jb208bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNvbT4+OyBMYXN6bG8gRXJzZWsgPGxlcnNl a0ByZWRoYXQuY29tPG1haWx0bzpsZXJzZWtAcmVkaGF0LmNvbT4+Ow0KPj4gZWRrMi1kZXZlbEBs aXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPg0KPj4gQ2M6IFlhbywg Smlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbTxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+ PjsgRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbTxtYWlsdG86ZXJpYy5kb25nQGludGVs LmNvbT4+DQo+PiBTdWJqZWN0OiBSRTogW2VkazJdIFtQQVRDSF0gVWVmaUNwdVBrZy9NcEluaXRM aWI6IGZpeCB3cm9uZyBiYXNlIGFkZHJlc3Mgc2V0DQo+PiBhcyBTdGFjayBHdWFyZA0KPj4NCj4+ IExhc3psbywNCj4+DQo+PiBNb3JlIGV4cGxhbmF0aW9uczoNCj4+DQo+PiBbVWVmaUNwdVBrZ1xM aWJyYXJ5XE1wSW5pdExpYlxNcExpYi5jXQ0KPj4gQWNjb3JkaW5nIHRvIHRoZSBjb2RlLCB0aGUg QlNQJ3MgKENwdUluZm9JbkhvYlswXS5BcFRvcE9mU3RhY2spIGlzIGluaXRpYWxpemVkDQo+PiB0 bw0KPj4gdGhlIGJvdHRvbSBvZiB0aGUgc3RhY2sgKGxpbmUgMTUwMSkgYnV0IEFQJ3MgQXBUb3BP ZlN0YWNrIGlzIGNvcnJlY3RseSBpbml0aWFsaXplZA0KPj4gKGxpbmUgNTk4KS4gQWx0aG91Z2gg bXkgY2FsY3VsYXRpb24gaXMgY29ycmVjdCwgSSB0aGluayBpdCdkIGJlIGJldHRlciB0byB1c2Ug QVAncw0KPj4gQXBUb3BPZlN0YWNrIGRpcmVjdGx5LiBGcm9tIHRoaXMgcGVyc3BlY3RpdmUsIHlv dSdyZSByaWdodC4NCj4+DQo+PiBNYXliZSBpdCdkIGJlIGJldHRlciB0byBwYXNzIGEgTlVMTCBw b2ludGVyIGF0IGxpbmUgMTUwMSBiZWNhdXNlIEJTUCBkb2Vzbid0DQo+PiBuZWVkDQo+PiBpdCBh bnl3YXkuDQo+Pg0KPj4gUmVnYXJkcywNCj4+IEppYW4NCj4+DQo+Pg0KPj4+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+Pj4gRnJvbTogZWRrMi1kZXZlbCBbbWFpbHRvOmVkazItZGV2ZWwt Ym91bmNlc0BsaXN0cy4wMS5vcmddIE9uIEJlaGFsZiBPZg0KPj4gV2FuZywNCj4+PiBKaWFuIEoN Cj4+PiBTZW50OiBUaHVyc2RheSwgSmFudWFyeSAwNCwgMjAxOCA4OjQyIEFNDQo+Pj4gVG86IExh c3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb208bWFpbHRvOmxlcnNla0ByZWRoYXQuY29tPj47 IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4N Cj4+PiBDYzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPG1haWx0bzpqaWV3ZW4u eWFvQGludGVsLmNvbT4+OyBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPG1haWx0bzpl cmljLmRvbmdAaW50ZWwuY29tPj4NCj4+PiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSF0gVWVm aUNwdVBrZy9NcEluaXRMaWI6IGZpeCB3cm9uZyBiYXNlIGFkZHJlc3Mgc2V0DQo+Pj4gYXMgU3Rh Y2sgR3VhcmQNCj4+Pg0KPj4+IExhc3psbywNCj4+Pg0KPj4+IEkgcmV2aXNpdGVkIGNvZGUgb2Yg TXBJbml0TGliLiBJIGZvdW5kIHRoYXQgQ1BVX0lORk9fSU5fSE9CLkFwVG9wT2ZTdGFjaw0KPj4+ IHdhcyBhc3NpZ25lZCB0byBDcHVNcERhdGEtPkJ1ZmZlciBpbiBNcEluaXRMaWJJbml0aWFsaXpl KCkNCj4+Pg0KPj4+IChsaW5lMTUwMSkgIEluaXRpYWxpemVBcERhdGEgKENwdU1wRGF0YSwgMCwg MCwgQ3B1TXBEYXRhLT5CdWZmZXIpOw0KPj4+DQo+Pj4gYnV0IGluDQo+Pj4NCj4+PiAobGluZTU5 OCkgIEFwVG9wT2ZTdGFjayAgPSBDcHVNcERhdGEtPkJ1ZmZlciArIChQcm9jZXNzb3JOdW1iZXIg KyAxKSAqDQo+Pj4gQ3B1TXBEYXRhLT5DcHVBcFN0YWNrU2l6ZTsNCj4+PiAobGluZTYwOCkgIElu aXRpYWxpemVBcERhdGEgKENwdU1wRGF0YSwgUHJvY2Vzc29yTnVtYmVyLCBCaXN0RGF0YSwNCj4+ PiBBcFRvcE9mU3RhY2spOw0KPj4+DQo+Pj4gU2luY2UgSW5pdE1wR2xvYmFsRGF0YSgpIGlzIGNh bGxlZCBqdXN0IGFmdGVyIGZpcnN0IHNpdHVhdGlvbiwgbXkgcGF0Y2ggaXMgY29ycmVjdC4NCj4+ Pg0KPj4+IEkgdGhpbmsgdGhlIHByb2JsZW0gaGVyZSBpcyB0aGF0IEFwVG9wT2ZTdGFjayBpbml0 aWFsaXplZCBhdCBsaW5lIDE1MDEgaXMgbm90DQo+Pj4gY29ycmVjdC4NCj4+Pg0KPj4+DQo+Pj4g UmVnYXJkcywNCj4+PiBKaWFuDQo+Pj4NCj4+Pg0KPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPj4+PiBGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0LmNvbV0N Cj4+Pj4gU2VudDogVGh1cnNkYXksIEphbnVhcnkgMDQsIDIwMTggMTozMyBBTQ0KPj4+PiBUbzog V2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb208bWFpbHRvOmppYW4uai53YW5nQGlu dGVsLmNvbT4+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0 cy4wMS5vcmc+DQo+Pj4+IENjOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb208bWFp bHRvOmppZXdlbi55YW9AaW50ZWwuY29tPj47IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5j b208bWFpbHRvOmVyaWMuZG9uZ0BpbnRlbC5jb20+PjsNCj4+Pj4gSmVmZiBGYW4gPHZhbmplZmZf OTE5QGhvdG1haWwuY29tPG1haWx0bzp2YW5qZWZmXzkxOUBob3RtYWlsLmNvbT4+DQo+Pj4+IFN1 YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIXSBVZWZpQ3B1UGtnL01wSW5pdExpYjogZml4IHdyb25n IGJhc2UgYWRkcmVzcw0KPj4gc2V0DQo+Pj4+IGFzIFN0YWNrIEd1YXJkDQo+Pj4+DQo+Pj4+IChD QyBKZWZmKQ0KPj4+Pg0KPj4+PiBTb3JyeSBhYm91dCB0aGUgZGVsYXkuDQo+Pj4+DQo+Pj4+IEkg aGF2ZSBzb21lIGxpZ2h0IGNvbW1lbnRzIGJlbG93OyBJIGV4cGVjdCBhdCBsZWFzdCBhIGZldyBv ZiB0aGVtIHRvIGJlDQo+Pj4+IGluY29ycmVjdCA6KQ0KPj4+Pg0KPj4+PiBPbiAxMi8yOS8xNyAw OTozNiwgSmlhbiBKIFdhbmcgd3JvdGU6DQo+Pj4+PiBUaGUgcmVhc29uIGlzIHRoYXQgRFhFIHBh cnQgaW5pdGlhbGl6YXRpb24gd2lsbCByZXVzZSB0aGUgc3RhY2sgYWxsb2NhdGVkDQo+Pj4+PiBh dCBQRUkgcGhhc2UsIGlmIE1QIHdhcyBpbml0aWFsaXplZCBiZWZvcmUuIFNvbWUgY29kZSBhZGRl ZCB0byBjaGVjayB0aGlzDQo+Pj4+PiBzaXR1YXRpb24gYW5kIHVzZSBzdGFjayBiYXNlIGFkZHJl c3Mgc2F2ZWQgaW4gSE9CIHBhc3NlZCBmcm9tIFBFSS4NCj4+Pj4+DQo+Pj4+PiBDYzogSmlld2Vu IFlhbyA8amlld2VuLnlhb0BpbnRlbC5jb208bWFpbHRvOmppZXdlbi55YW9AaW50ZWwuY29tPj4N Cj4+Pj4+IENjOiBFcmljIERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb208bWFpbHRvOmVyaWMuZG9u Z0BpbnRlbC5jb20+Pg0KPj4+Pj4gQ2M6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb208 bWFpbHRvOmxlcnNla0ByZWRoYXQuY29tPj4NCj4+Pj4+IENvbnRyaWJ1dGVkLXVuZGVyOiBUaWFu b0NvcmUgQ29udHJpYnV0aW9uIEFncmVlbWVudCAxLjENCj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEpp YW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb208bWFpbHRvOmppYW4uai53YW5nQGludGVs LmNvbT4+DQo+Pj4+PiAtLS0NCj4+Pj4+ICBVZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL0R4 ZU1wTGliLmMgfCAxNyArKysrKysrKysrKysrKystLQ0KPj4+Pj4gIDEgZmlsZSBjaGFuZ2VkLCAx NSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPj4+Pj4NCj4+Pj4+IGRpZmYgLS1naXQg YS9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL0R4ZU1wTGliLmMNCj4+Pj4gYi9VZWZpQ3B1 UGtnL0xpYnJhcnkvTXBJbml0TGliL0R4ZU1wTGliLmMNCj4+Pj4+IGluZGV4IDQwYzFiZjQwN2Eu LjA1NDg0YzlmZjMgMTAwNjQ0DQo+Pj4+PiAtLS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0 TGliL0R4ZU1wTGliLmMNCj4+Pj4+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIv RHhlTXBMaWIuYw0KPj4+Pj4gQEAgLTI5NSw2ICsyOTUsNyBAQCBJbml0TXBHbG9iYWxEYXRhICgN Cj4+Pj4+ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPj4+ Pj4gICAgRUZJX0dDRF9NRU1PUllfU1BBQ0VfREVTQ1JJUFRPUiAgICAgTWVtRGVzYzsNCj4+Pj4+ ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YWNrQmFzZTsNCj4+Pj4+ ICsgIENQVV9JTkZPX0lOX0hPQiAgICAgICAgICAgICAgICAgICAgICpDcHVJbmZvSW5Ib2I7DQo+ Pj4+Pg0KPj4+Pj4gICAgU2F2ZUNwdU1wRGF0YSAoQ3B1TXBEYXRhKTsNCj4+Pj4+DQo+Pj4+PiBA QCAtMzE0LDkgKzMxNSwxOCBAQCBJbml0TXBHbG9iYWxEYXRhICgNCj4+Pj4+ICAgICAgICBBU1NF UlQgKEZBTFNFKTsNCj4+Pj4+ICAgICAgfQ0KPj4+Pj4NCj4+Pj4+IC0gICAgZm9yIChJbmRleCA9 IDA7IEluZGV4IDwgQ3B1TXBEYXRhLT5DcHVDb3VudDsgKytJbmRleCkgew0KPj4+Pj4gLSAgICAg IFN0YWNrQmFzZSA9IENwdU1wRGF0YS0+QnVmZmVyICsgSW5kZXggKiBDcHVNcERhdGEtDQo+Pj4g Q3B1QXBTdGFja1NpemU7DQo+Pj4+PiArICAgIC8vDQo+Pj4+PiArICAgIC8vIERYRSB3aWxsIHJl dXNlIHN0YWNrIGFsbG9jYXRlZCBmb3IgQVBzIGF0IFBFSSBwaGFzZSBpZiBpdCdzIGF2YWlsYWJs ZS4NCj4+Pj4+ICsgICAgLy8gTGV0J3MgY2hlY2sgaXQgaGVyZS4NCj4+Pj4+ICsgICAgLy8NCj4+ Pj4+ICsgICAgQ3B1SW5mb0luSG9iID0gKENQVV9JTkZPX0lOX0hPQiAqKShVSU5UTilDcHVNcERh dGEtDQo+Pj4+PiBDcHVJbmZvSW5Ib2I7DQo+Pj4+PiArICAgIGlmIChDcHVJbmZvSW5Ib2IgIT0g TlVMTCAmJiBDcHVJbmZvSW5Ib2ItPkFwVG9wT2ZTdGFjayAhPSAwKSB7DQo+Pj4+PiArICAgICAg U3RhY2tCYXNlID0gQ3B1SW5mb0luSG9iLT5BcFRvcE9mU3RhY2s7DQo+Pj4+PiArICAgIH0gZWxz ZSB7DQo+Pj4+PiArICAgICAgU3RhY2tCYXNlID0gQ3B1TXBEYXRhLT5CdWZmZXI7DQo+Pj4+PiAr ICAgIH0NCj4+Pj4NCj4+Pj4gU28sIGlmIHRoZSBIT0IgaXMgbm90IGZvdW5kLCB0aGVuIFN0YWNr QmFzZSBpcyBzZXQgb2theS4NCj4+Pj4NCj4+Pj4gSG93ZXZlciwgSSdtIHVuc3VyZSBhYm91dCB0 aGUgb3RoZXIgY2FzZS4gVGhlDQo+Pj4+IENQVV9JTkZPX0lOX0hPQi5BcFRvcE9mU3RhY2sgZmll bGQgaWRlbnRpZmllcyB0aGUgKnRvcCogb2YgdGhlIHN0YWNrDQo+Pj4+IChoaWdoZXN0IGFkZHJl c3MsIGFuZCB0aGUgc3RhY2sgZ3Jvd3MgZG93bik7IGhvd2V2ZXIgdGhlIGxvb3AgYmVsb3cNCj4+ Pj4gKmluY3JlbWVudHMqIFN0YWNrQmFzZS4gR2l2ZW4gdGhlIGluY3JlbWVudGluZyBuYXR1cmUg b2YgdGhlIGxvb3AsDQo+Pj4+IHNob3VsZG4ndCB3ZSBmaXJzdCBjYWxjdWxhdGUgdGhlIGFjdHVh bCBiYXNlICg9IGxvd2VzdCBhZGRyZXNzKSBmcm9tIHRoZQ0KPj4+PiBDUFVfSU5GT19JTl9IT0Iu QXBUb3BPZlN0YWNrIGZpZWxkPw0KPj4+Pg0KPj4+PiBBY3R1YWxseS4uLiBJJ20gZXZlbiBtb3Jl IGNvbmZ1c2VkLiBUaGUgQ3B1TXBEYXRhLT5DcHVJbmZvSW5Ib2IgZmllbGQNCj4+Pj4gcG9pbnRz IHRvIGFuICphcnJheSogb2YgQ1BVX0lORk9fSU5fSE9CIHN0cnVjdHVyZXMuIFRoZXJlZm9yZSwg Zm9yIGFueQ0KPj4+PiBnaXZlbiBwcm9jZXNzb3IgI04sIHdlIHNob3VsZCBub3QgY2FsY3VsYXRl IHRoZSBzdGFjayBiYXNlIGFzDQo+Pj4+DQo+Pj4+ICAgQ3B1TXBEYXRhLT5DcHVJbmZvSW5Ib2It PkFwVG9wT2ZTdGFjayArIE4gKiBDcHVNcERhdGEtDQo+Pj4+PiBDcHVBcFN0YWNrU2l6ZQ0KPj4+ Pg0KPj4+PiBpbnN0ZWFkIHdlIHNob3VsZCBjYWxjdWxhdGUgdGhlIHN0YWNrIGJhc2UgYXMgc29t ZXRoaW5nIGxpa2U6DQo+Pj4+DQo+Pj4+ICAgQ3B1TXBEYXRhLT5DcHVJbmZvSW5Ib2JbTl0uQXBU b3BPZlN0YWNrIC0gQ3B1TXBEYXRhLQ0KPj4+IENwdUFwU3RhY2tTaXplDQo+Pj4+DQo+Pj4+IFNl ZQ0KPj4+PiAtIHRoZSBJbml0aWFsaXplQXBEYXRhKCkgZnVuY3Rpb24sDQo+Pj4+IC0gYW5kIGl0 cyBjYWxsIHNpdGUgaW4gdGhlIEFwV2FrZXVwRnVuY3Rpb24oKSBmdW5jdGlvbi4NCj4+Pj4NCj4+ Pj4gKFRvIG15IHN1cnByaXNlLCBJIHBlcnNvbmFsbHkgbW9kaWZpZWQgSW5pdGlhbGl6ZUFwRGF0 YSgpIGVhcmxpZXIsIGluDQo+Pj4+IGNvbW1pdCBkZDNmYTBjZDcyZGUgKCJVZWZpQ3B1UGtnL01w SW5pdExpYjogc3VwcG9ydCA2NC1iaXQgQVAgc3RhY2sNCj4+Pj4gYWRkcmVzc2VzIiwgMjAxNi0x MS0xNykgLS0gSSd2ZSB0b3RhbGx5IGZvcmdvdHRlbiBhYm91dCB0aGF0IGJ5IG5vdyEpDQo+Pj4+ DQo+Pj4+IFdoYXQgZG8geW91IHRoaW5rPw0KPj4+Pg0KPj4+Pj4NCj4+Pj4+ICsgICAgZm9yIChJ bmRleCA9IDA7IEluZGV4IDwgQ3B1TXBEYXRhLT5DcHVDb3VudDsgKytJbmRleCkgew0KPj4+Pj4g ICAgICAgIFN0YXR1cyA9IGdEUy0+R2V0TWVtb3J5U3BhY2VEZXNjcmlwdG9yIChTdGFja0Jhc2Us ICZNZW1EZXNjKTsNCj4+Pj4+ICAgICAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPj4+ Pj4NCj4+Pj4+IEBAIC0zMjYsNiArMzM2LDkgQEAgSW5pdE1wR2xvYmFsRGF0YSAoDQo+Pj4+PiAg ICAgICAgICAgICAgICAgICAgICAgIE1lbURlc2MuQXR0cmlidXRlcyB8IEVGSV9NRU1PUllfUlAN Cj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgKTsNCj4+Pj4+ICAgICAgICBBU1NFUlRfRUZJ X0VSUk9SIChTdGF0dXMpOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAgIERFQlVHICgoREVCVUdfVkVS Qk9TRSwgIlN0YWNrIEd1YXJkIHNldCBhdCAleCBbY3B1JWRdIVxuIiwNCj4+Pj4gU3RhY2tCYXNl LCBJbmRleCkpOw0KPj4+Pg0KPj4+PiBTdGFja0Jhc2UgaGFzIHR5cGUgVUlOVE4sIGFuZCBzbyBp dCBzaG91bGQgbm90IGJlIHByaW50ZWQgd2l0aCAleC4gSXQNCj4+Pj4gc2hvdWxkIGJlIGNhc3Qg dG8gKFVJTlQ2NCksIGFuZCB0aGVuIHByaW50ZWQgd2l0aCAlTHguDQo+Pj4+DQo+Pj4+IFNpbWls YXJseSwgSW5kZXggaGFzIHR5cGUgVUlOVE4uIEl0IHNob3VsZCBub3QgYmUgcHJpbnRlZCB3aXRo ICVkLiBJdA0KPj4+PiBzaG91bGQgYmUgY2FzdCB0byAoVUlOVDY0KSBhbmQgcHJpbnRlZCB3aXRo ICVMdS4NCj4+Pj4NCj4+Pj4NCj4+Pj4+ICsgICAgICBTdGFja0Jhc2UgKz0gQ3B1TXBEYXRhLT5D cHVBcFN0YWNrU2l6ZTsNCj4+Pj4NCj4+Pj4gQWdhaW4sIEkgZG9uJ3QgdGhpbmsgdGhlIHNpbXBs ZSBpbmNyZW1lbnQgYXBwbGllcyB3aGVuIHRoZQ0KPj4+PiBDcHVNcERhdGEtPkNwdUluZm9Jbkhv YiBhcnJheSBleGlzdHMuDQo+Pj4+DQo+Pj4+PiAgICAgIH0NCj4+Pj4+ICAgIH0NCj4+Pj4+DQo+ Pj4+Pg0KPj4+Pg0KPj4+PiBUaGFua3MsDQo+Pj4+IExhc3psbw0KPj4+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+Pj4gZWRrMi1kZXZlbCBtYWlsaW5n IGxpc3QNCj4+PiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0 cy4wMS5vcmc+DQo+Pj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsy LWRldmVsDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f DQplZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRv OmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPg0KaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9s aXN0aW5mby9lZGsyLWRldmVsDQoNCg==