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.115; helo=mga14.intel.com; envelope-from=eric.dong@intel.com; receiver=edk2-devel@lists.01.org Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (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 2684420352606 for ; Tue, 24 Oct 2017 08:20:19 -0700 (PDT) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Oct 2017 08:23:57 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.43,428,1503385200"; d="scan'208";a="166977250" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga006.fm.intel.com with ESMTP; 24 Oct 2017 08:23:57 -0700 Received: from fmsmsx113.amr.corp.intel.com (10.18.116.7) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 24 Oct 2017 08:23:56 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX113.amr.corp.intel.com (10.18.116.7) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 24 Oct 2017 08:23:56 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.175]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.159]) with mapi id 14.03.0319.002; Tue, 24 Oct 2017 23:23:54 +0800 From: "Dong, Eric" To: Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Ni, Ruiyu" , Paolo Bonzini Thread-Topic: [edk2] [Patch 2/2] UefiCpuPkg/MpInitLib: Enhance waiting for AP initialization logic. Thread-Index: AQHTS8/RPtqizoqgTUaTHjY9+C766aLyRGEAgADUE/A= Date: Tue, 24 Oct 2017 15:23:54 +0000 Message-ID: References: <1508743358-3640-1-git-send-email-eric.dong@intel.com> <1508743358-3640-3-git-send-email-eric.dong@intel.com> <4fe39a52-0cd3-de2e-84f2-7363823a1b60@redhat.com> In-Reply-To: <4fe39a52-0cd3-de2e-84f2-7363823a1b60@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOTkwZWE2YjQtNmI3YS00NzM5LTgxNTYtOGFiMzExZTM1ODQ0IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJSdlVTTmU3azVDZTR3YTRud3FXd1ppZG16ZUN6TXRBWFU4NkRabGhPRVFsVVhKSGw1Q2JYYnFtbHA3VU9JZHlwIn0= 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/MpInitLib: Enhance waiting for AP initialization logic. 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, 24 Oct 2017 15:20:19 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGFzemxvLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExhc3psbyBF cnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXQ0KPiBTZW50OiBUdWVzZGF5LCBPY3RvYmVy IDI0LCAyMDE3IDY6MTYgUE0NCj4gVG86IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+ OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiBDYzogTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRl bC5jb20+OyBQYW9sbyBCb256aW5pIDxwYm9uemluaUByZWRoYXQuY29tPg0KPiBTdWJqZWN0OiBS ZTogW2VkazJdIFtQYXRjaCAyLzJdIFVlZmlDcHVQa2cvTXBJbml0TGliOiBFbmhhbmNlIHdhaXRp bmcgZm9yDQo+IEFQIGluaXRpYWxpemF0aW9uIGxvZ2ljLg0KPiANCj4gQ0MgUGFvbG8NCj4gDQo+ IE9uIDEwLzIzLzE3IDA5OjIyLCBFcmljIERvbmcgd3JvdGU6DQo+ID4gQ3VycmVudCBsb2dpYyBh bHdheXMgd2FpdGluZyBmb3IgYSBzcGVjaWZpYyB2YWx1ZSB0byBjb2xsZWN0IGFsbCBBUHMNCj4g PiBjb3VudC4gVGhpcyBsb2dpYyBtYXkgY2F1c2VkIHNvbWUgcGxhdGZvcm1zIGNvc3QgdG9vIG11 Y2ggdGltZSB0byB3YWl0DQo+ID4gZm9yIHRpbWUgb3V0Lg0KPiA+IFRoaXMgcGF0Y2ggYWRkIG5l dyBsb2dpYyB0byBjb2xsZWN0IEFQcyBjb3VudC4gSXQgYWRkcyBuZXcgdmFyaWFibGUNCj4gPiBO dW1BcHNFeGVjdXRpbmcgdG8gZGV0ZWN0IHdoZXRoZXIgYWxsIEFQcyBoYXZlIGZpbmlzaGVkIGlu aXRpYWxpemF0aW9uLg0KPiA+IEVhY2ggQVAgbGV0IE51bUFwc0V4ZWN1dGluZysrIHdoZW4gYmVn aW4gdG8gaW5pdGlhbGl6ZSBpdHNlbGYgYW5kIGxldA0KPiA+IE51bUFwc0V4ZWN1dGluZy0tIHdo ZW4gaXQgZmluaXNoIHRoZSBpbml0aWFsaXphdGlvbi4gQlNQIGJhc2Ugb24NCj4gPiB3aGV0aGVy IE51bUFwc0V4ZWN1dGluZyA9PSAwICB0byBmaW5pc2hlZCB0aGUgY29sbGVjdCBBUCBwcm9jZXNz Lg0KPiA+DQo+ID4gQ2M6IFJ1aXl1IE5pIDxydWl5dS5uaUBpbnRlbC5jb20+DQo+ID4gQ29udHJp YnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPiA+IFNp Z25lZC1vZmYtYnk6IEVyaWMgRG9uZyA8ZXJpYy5kb25nQGludGVsLmNvbT4NCj4gPiAtLS0NCj4g PiAgVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9JYTMyL01wRXF1LmluYyAgICB8ICAxICsN Cj4gPiAgVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9JYTMyL01wRnVuY3MubmFzbSB8ICA2 ICsrKysrKw0KPiA+ICBVZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL01wTGliLmMgICAgICAg ICAgIHwgMjAgKysrKysrKysrKysrKystLS0tLS0NCj4gPiAgVWVmaUNwdVBrZy9MaWJyYXJ5L01w SW5pdExpYi9NcExpYi5oICAgICAgICAgICB8ICAxICsNCj4gPiAgVWVmaUNwdVBrZy9MaWJyYXJ5 L01wSW5pdExpYi9YNjQvTXBFcXUuaW5jICAgICB8ICAzICsrLQ0KPiA+ICBVZWZpQ3B1UGtnL0xp YnJhcnkvTXBJbml0TGliL1g2NC9NcEZ1bmNzLm5hc20gIHwgIDYgKysrKysrDQo+ID4gIDYgZmls ZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkNCj4gDQo+IEkgd2Fz IG91dCBvZiBvZmZpY2UgeWVzdGVyZGF5LCBhbmQgZGlkIG5vdCBnZXQgYSBjaGFuY2UgdG8gY29t bWVudCBvbiB0aGlzDQo+IHBhdGNoLg0KPiANCj4gSW4gYSB2aXJ0dWFsaXphdGlvbiBndWVzdCwg SSBzZWUgdGhlIGZvbGxvd2luZyBwcm9ibGVtIHdpdGggdGhlIHBhdGNoOg0KPiANCj4gVkNQVXMg KHZpcnR1YWwgQ1BVcykgbWF5IG5vdCBiZSBzY2hlZHVsZWQgYnkgdGhlIGh5cGVydmlzb3Igc2lt aWxhcmx5IHRvIGhvdw0KPiBwaHlzaWNhbCBDUFVzIGJlaGF2ZSBvbiBhIHBoeXNpY2FsIGJvYXJk LiBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgVkNQVSBzdGFydHMgdXANCj4gYW5kIGV2ZW4gZmluaXNo ZXMgaXRzIGluaXRpYWxpemF0aW9uIHJvdXRpbmUgYmVmb3JlIGFub3RoZXIgVkNQVSBzdGFydHMg cnVubmluZw0KPiBhdCBhbGwuDQo+IA0KPiBUaGVyZWZvcmUgdGhlIGxvY2tlZCBOdW1BcHNFeGVj dXRpbmcgY291bnRlciBtYXkgaGl0IHplcm8sIGV2ZW4gbXVsdGlwbGUNCj4gdGltZXMsIGJlZm9y ZSBhbGwgQVBzIGhhdmUgZmluaXNoZWQgaW5pdGlhbGl6aW5nLg0KPiANCj4gSW4gT1ZNRiwgd2Ug cXVlcnkgUUVNVSBhYm91dCB0aGUgZXhhY3QgbnVtYmVyIG9mIHZpcnR1YWwgcHJvY2Vzc29ycywg aW4NCj4gUGxhdGZvcm1QZWkuIFNvIE9WTUYgY29uZmlndXJlcyB0aGUgbG9naWNhbCBwcm9jZXNz b3IgY291bnQgaW4gYWR2YW5jZSB0aGF0DQo+IE1wSW5pdExpYiBoYXMgdG8gd2FpdCBmb3IuIENv cnJlc3BvbmRpbmdseSwgd2UgYWxzbyBzZXQgdGhlIHRpbWVvdXQgdG8NCj4gImluZmluaXR5Ii4N Cj4gDQo+IFBsZWFzZSBzZWUgdGhlIE1heENwdUNvdW50SW5pdGlhbGl6YXRpb24oKSBmdW5jdGlv biBpbiBmb2xsb3dpbmcgY29tbWl0Og0KPiANCj4gICBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9j b3JlL2VkazIvY29tbWl0LzQ1YTcwZGIzYzNhNTkNCj4gDQo+IEluIHRoZSBwYXN0LCB3ZSB1c2Vk IHRvIGhhdmUgQVAgaW5pdGlhbGl6YXRpb24gcHJvYmxlbXMgaW4gT1ZNRiBkdWUgdG8gdGhlDQo+ IFZDUFUgc2NoZWR1bGluZyBhcnRpZmFjdHMgSSBtZW50aW9uIGFib3ZlLiBBZnRlciBjb21taXQg NDVhNzBkYjNjM2E1OSwNCj4gdGhpbmdzIGhhdmUgYmVlbiBzdGFibGU7IGl0IHdvdWxkIGJlIG5p Y2UgdG8ga2VlcCB0aGF0IHdvcmtpbmcuDQo+IA0KPiBQbGVhc2Ugbm90ZSB0aGF0IHNpbXBseSB0 ZXN0aW5nIHRoaXMgcGF0Y2ggb24gbXkgZW5kIGlzIG5vdCBzdWZmaWNpZW50Lg0KPiBUaGUgQVAg aW5pdCBwcm9ibGVtcyB3ZSB1c2VkIHRvIGZhY2Ugd2VyZSBzcG9yYWRpYyBhbmQgYWxzbyBzcGVj aWZpYyB0byB0aGUNCj4gdmlydHVhbGl6YXRpb24gaG9zdCBzeXN0ZW1zIChpLmUuLCBkZXBlbmRl bnQgb24gdGhlIHBoeXNpY2FsIGhhcmR3YXJlIGFuZCB0aGUNCj4gaG9zdCBrZXJuZWwpLg0KPiAN Cj4gRnVydGhlcm1vcmU6DQoNCltbRXJpY11dIFdpbGwgY29tbWVudHMgbGF0ZXIgaWYgbmVlZGVk LCBuZWVkIHNvbWUgaW52ZXN0aWdhdGlvbiBmaXJzdC4NCg0KPiANCj4gPiBkaWZmIC0tZ2l0IGEv VWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9JYTMyL01wRXF1LmluYw0KPiA+IGIvVWVmaUNw dVBrZy9MaWJyYXJ5L01wSW5pdExpYi9JYTMyL01wRXF1LmluYw0KPiA+IGluZGV4IDk3NmFmMWYu LmJkZmUwZDMgMTAwNjQ0DQo+ID4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9J YTMyL01wRXF1LmluYw0KPiA+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvSWEz Mi9NcEVxdS5pbmMNCj4gPiBAQCAtNDAsNCArNDAsNSBAQCBFbmFibGVFeGVjdXRlRGlzYWJsZUxv Y2F0aW9uICBlcXUgICAgICAgIExvY2tMb2NhdGlvbg0KPiArIDMwaA0KPiA+ICBDcjNMb2NhdGlv biAgICAgICAgICAgICAgICAgICBlcXUgICAgICAgIExvY2tMb2NhdGlvbiArIDM0aA0KPiA+ICBJ bml0RmxhZ0xvY2F0aW9uICAgICAgICAgICAgICBlcXUgICAgICAgIExvY2tMb2NhdGlvbiArIDM4 aA0KPiA+ICBDcHVJbmZvTG9jYXRpb24gICAgICAgICAgICAgICBlcXUgICAgICAgIExvY2tMb2Nh dGlvbiArIDNDaA0KPiA+ICtOdW1BcHNFeGVjdXRpbmdMb2NhdGlvbiAgICAgICBlcXUgICAgICAg IExvY2tMb2NhdGlvbiArIDQwaA0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGli cmFyeS9NcEluaXRMaWIvSWEzMi9NcEZ1bmNzLm5hc20NCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFy eS9NcEluaXRMaWIvSWEzMi9NcEZ1bmNzLm5hc20NCj4gPiBpbmRleCAxYjljNmE2Li4yYjZjMjdk IDEwMDY0NA0KPiA+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvSWEzMi9NcEZ1 bmNzLm5hc20NCj4gPiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL0lhMzIvTXBG dW5jcy5uYXNtDQo+ID4gQEAgLTg2LDYgKzg2LDEyIEBAIEZsYXQzMlN0YXJ0OiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOyBwcm90ZWN0ZWQgbW9kZQ0KPiBlbnRyeSBwb2ludA0K PiA+DQo+ID4gICAgICBtb3YgICAgICAgIGVzaSwgZWJ4DQo+ID4NCj4gPiArICAgIDsgSW5jcmVt ZW50IHRoZSBudW1iZXIgb2YgQVBzIGV4ZWN1dGluZyBoZXJlIGFzIGVhcmx5IGFzIHBvc3NpYmxl DQo+ID4gKyAgICA7IFRoaXMgaXMgZGVjcmVtZW50ZWQgaW4gQyBjb2RlIHdoZW4gQVAgaXMgZmlu aXNoZWQgZXhlY3V0aW5nDQo+ID4gKyAgICBtb3YgICAgICAgIGVkaSwgZXNpDQo+ID4gKyAgICBh ZGQgICAgICAgIGVkaSwgTnVtQXBzRXhlY3V0aW5nTG9jYXRpb24NCj4gPiArICAgIGxvY2sgaW5j ICAgZHdvcmQgW2VkaV0NCj4gPiArDQo+ID4gICAgICBtb3YgICAgICAgICBlZGksIGVzaQ0KPiA+ ICAgICAgYWRkICAgICAgICAgZWRpLCBFbmFibGVFeGVjdXRlRGlzYWJsZUxvY2F0aW9uDQo+ID4g ICAgICBjbXAgICAgICAgICBieXRlIFtlZGldLCAwDQo+ID4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQ a2cvTGlicmFyeS9NcEluaXRMaWIvTXBMaWIuYw0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L01w SW5pdExpYi9NcExpYi5jDQo+ID4gaW5kZXggZGI5MjNjOS4uNDhmOTMwYiAxMDA2NDQNCj4gPiAt LS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL01wTGliLmMNCj4gPiArKysgYi9VZWZp Q3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL01wTGliLmMNCj4gPiBAQCAtNjYyLDYgKzY2Miw3IEBA IEFwV2FrZXVwRnVuY3Rpb24gKA0KPiA+ICAgICAgLy8gQVAgZmluaXNoZWQgZXhlY3V0aW5nIEMg Y29kZQ0KPiA+ICAgICAgLy8NCj4gPiAgICAgIEludGVybG9ja2VkSW5jcmVtZW50ICgoVUlOVDMy ICopICZDcHVNcERhdGEtPkZpbmlzaGVkQ291bnQpOw0KPiA+ICsgICAgSW50ZXJsb2NrZWREZWNy ZW1lbnQgKChVSU5UMzIgKikNCj4gPiArICZDcHVNcERhdGEtPk1wQ3B1RXhjaGFuZ2VJbmZvLT5O dW1BcHNFeGVjdXRpbmcpOw0KPiA+DQo+ID4gICAgICAvLw0KPiA+ICAgICAgLy8gUGxhY2UgQVAg aXMgc3BlY2lmaWVkIGxvb3AgbW9kZSBAQCAtNzY1LDYgKzc2Niw3IEBADQo+ID4gRmlsbEV4Y2hh bmdlSW5mb0RhdGEgKA0KPiA+DQo+ID4gICAgRXhjaGFuZ2VJbmZvLT5DRnVuY3Rpb24gICAgICAg PSAoVUlOVE4pIEFwV2FrZXVwRnVuY3Rpb247DQo+ID4gICAgRXhjaGFuZ2VJbmZvLT5BcEluZGV4 ICAgICAgICAgPSAwOw0KPiA+ICsgIEV4Y2hhbmdlSW5mby0+TnVtQXBzRXhlY3V0aW5nID0gMDsN Cj4gPiAgICBFeGNoYW5nZUluZm8tPkluaXRGbGFnICAgICAgICA9IChVSU5UTikgQ3B1TXBEYXRh LT5Jbml0RmxhZzsNCj4gPiAgICBFeGNoYW5nZUluZm8tPkNwdUluZm8gICAgICAgICA9IChDUFVf SU5GT19JTl9IT0IgKikgKFVJTlROKQ0KPiBDcHVNcERhdGEtPkNwdUluZm9JbkhvYjsNCj4gPiAg ICBFeGNoYW5nZUluZm8tPkNwdU1wRGF0YSAgICAgICA9IENwdU1wRGF0YTsNCj4gPiBAQCAtOTM0 LDEzICs5MzYsMTkgQEAgV2FrZVVwQVAgKA0KPiA+ICAgICAgfQ0KPiA+ICAgICAgaWYgKENwdU1w RGF0YS0+SW5pdEZsYWcgPT0gQXBJbml0Q29uZmlnKSB7DQo+ID4gICAgICAgIC8vDQo+ID4gLSAg ICAgIC8vIFdhaXQgZm9yIGFsbCBwb3RlbnRpYWwgQVBzIHdha2VuIHVwIGluIG9uZSBzcGVjaWZp ZWQgcGVyaW9kDQo+ID4gKyAgICAgIC8vIFdhaXQgZm9yIG9uZSBwb3RlbnRpYWwgQVAgd2FrZW4g dXAgaW4gb25lIHNwZWNpZmllZCBwZXJpb2QNCj4gPiAgICAgICAgLy8NCj4gPiAtICAgICAgVGlt ZWRXYWl0Rm9yQXBGaW5pc2ggKA0KPiA+IC0gICAgICAgIENwdU1wRGF0YSwNCj4gPiAtICAgICAg ICBQY2RHZXQzMiAoUGNkQ3B1TWF4TG9naWNhbFByb2Nlc3Nvck51bWJlcikgLSAxLA0KPiA+IC0g ICAgICAgIFBjZEdldDMyIChQY2RDcHVBcEluaXRUaW1lT3V0SW5NaWNyb1NlY29uZHMpDQo+ID4g LSAgICAgICAgKTsNCj4gPiArICAgICAgaWYgKENwdU1wRGF0YS0+Q3B1Q291bnQgPT0gMCkgew0K PiA+ICsgICAgICAgIFRpbWVkV2FpdEZvckFwRmluaXNoICgNCj4gPiArICAgICAgICAgIENwdU1w RGF0YSwNCj4gPiArICAgICAgICAgIFBjZEdldDMyIChQY2RDcHVNYXhMb2dpY2FsUHJvY2Vzc29y TnVtYmVyKSAtIDEsDQo+ID4gKyAgICAgICAgICBQY2RHZXQzMiAoUGNkQ3B1QXBJbml0VGltZU91 dEluTWljcm9TZWNvbmRzKQ0KPiA+ICsgICAgICAgICAgKTsNCj4gPiArICAgICAgfQ0KPiANCj4g SSBkb24ndCB1bmRlcnN0YW5kIHRoaXMgY2hhbmdlLiBUaGUgbmV3IGNvbW1lbnQgc2F5cywNCj4g DQo+ICAgV2FpdCBmb3IgKm9uZSogcG90ZW50aWFsIEFQIHdha2VuIHVwIGluIG9uZSBzcGVjaWZp ZWQgcGVyaW9kDQo+IA0KPiBIb3dldmVyLCB0aGUgc2Vjb25kIHBhcmFtZXRlciBvZiBUaW1lZFdh aXRGb3JBcEZpbmlzaCgpLCBuYW1lbHkNCj4gIkZpbmlzaGVkQXBMaW1pdCIsIGdldHMgdGhlIHNh bWUgdmFsdWUgYXMgYmVmb3JlOg0KPiANCj4gICBQY2RHZXQzMiAoUGNkQ3B1TWF4TG9naWNhbFBy b2Nlc3Nvck51bWJlcikgLSAxDQo+IA0KPiBJdCBtZWFucyB0aGF0IGFsbCBvZiB0aGUgKHBvc3Np YmxlKSBBUHMgYXJlIHdhaXRlZC1mb3IsIGp1c3QgdGhlIHNhbWUgYXMgYmVmb3JlLg0KDQpbW0Vy aWNdXSBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIGNvbGxlY3QgQVAgY291bnQgbG9naWMsIG9yaWdp bmFsIHNvbHV0aW9uIGFsd2F5cyB3YWl0cyBmb3IgYSBzcGVjaWZpYyB0aW1lIHRvIGxldCBhbGwg QVBzIHN0YXJ0IHVwLiBJZiB0aGUgaW5wdXQgQ1BVIG51bWJlciAoUGNkR2V0MzIoUGNkQ3B1TWF4 TG9naWNhbFByb2Nlc3Nvck51bWJlcikgLSAxKSBoYXZlIGJlZW4gZm91bmQgb3IgYWZ0ZXIgYSBz cGVjaWZpYyB0aW1lKFBjZEdldDMyIChQY2RDcHVBcEluaXRUaW1lT3V0SW5NaWNyb1NlY29uZHMp KS4gQlNQIHdpbGwgbm90IHdhaXQgYW55bW9yZSBhbmQgdXNlICBDcHVNcERhdGEtPkNwdUNvdW50 IGFzIHRoZSBmb3VuZCBBUCBjb3VudC4NCg0KTmV3IGxvZ2ljIGFsc28gd2FpdCBmb3IgYSBzcGVj aWZpYyB0aW1lLCBidXQgdGhpcyB0aW1lIGlzIHNtYWxsZXIgdGhhbiB0aGUgb3JpZ2luYWwgb25l LiBJdCBqdXN0IHdhaXQgZm9yIHRoZSBmaXJzdCBBUChhbnkgQVApIGJlZ2luIHRvIGRvIHRoZSBp bml0aWFsaXphdGlvbiggZG8gQ3B1TXBEYXRhLT5NcENwdUV4Y2hhbmdlSW5mby0+TnVtQXBzRXhl Y3V0aW5nKysgbWVhbnMgaXQgYmVnaW4gdG8gZG8gdGhlIGluaXRpYWxpemF0aW9uKS4gV2hlbiBB cCBmaW5pc2hlcyBpbml0aWFsaXphdGlvbiwgaXQgd2lsbCBkbyBDcHVNcERhdGEtPk1wQ3B1RXhj aGFuZ2VJbmZvLT5OdW1BcHNFeGVjdXRpbmctLS4gU28gYWZ0ZXIgQlNQIHdhaXRzIGZvciBhIHNw ZWNpZmljIHRpbWUgYXQgZmlyc3QsIGl0IGp1c3QgbmVlZHMgdG8gY2hlY2sgd2hldGhlciBDcHVN cERhdGEtPk1wQ3B1RXhjaGFuZ2VJbmZvLT5OdW1BcHNFeGVjdXRpbmcgPT0gMCB0byBrbm93IHdo ZXRoZXIgYWxsIEFwcyBoYXZlIGZpbmlzaGVkIGluaXRpYWxpemF0aW9uLiBIZXJlIHdlIHN0aWxs IHVzZSB0aGUgb3JpZ2luYWwgUENEIChQY2RDcHVBcEluaXRUaW1lT3V0SW5NaWNyb1NlY29uZHMp IGZvciB0aGUgbmV3IHRpbWUgdmFsdWUuIA0KDQpXaGVuIG9uZSBBUCBkbyB0aGUgaW5pdGlhbGl6 YXRpb24sIGl0IHdpbGwgYWxzbyBkbyBDcHVNcERhdGEtPkNwdUNvdW50KysuIFNvIGhlcmUgSSBj aGVjayB3aGV0aGVyIENwdU1wRGF0YS0+Q3B1Q291bnQgIT0gMCB0byBrbm93IHdoZXRoZXIgQVBz IGFscmVhZHkgYmVnaW4gdG8gZG8gdGhlIGluaXRpYWxpemF0aW9uLiBJZiB5ZXMsIEkgbm90IG5l ZWQgdG8gZG8gdGhlIHRpbWUgb3V0IHdhaXRpbmcgYW55bW9yZSwganVzdCBjaGVjayB0aGUgQ3B1 TXBEYXRhLT5NcENwdUV4Y2hhbmdlSW5mby0+TnVtQXBzRXhlY3V0aW5nIHRvIGtub3cgd2hldGhl ciBhbGwgQXBzIGhhdmUgZmluaXNoZWQgaW5pdGlhbGl6YXRpb24uDQoNCj4gDQo+IEluIG90aGVy IHdvcmRzLCBJIHRoaW5rIHRoZSBwYXRjaCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IHdo YXQgdGhlDQo+IGNvbW1pdCBtZXNzYWdlIHNheXMgLS0gYW5kIGZvciBRRU1VIC8gT1ZNRiwgdGhh dCdzIGFjdHVhbGx5IGEgZ29vZCB0aGluZw0KPiBhdCB0aGUgbW9tZW50LCBiZWNhdXNlIGEgY29y cmVjdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZGVzY3JpcHRpb24gd291bGQNCj4gbGlrZWx5IGJy ZWFrIG9uIFFFTVUuDQo+IA0KPiBUaGFua3MNCj4gTGFzemxvDQo+IA0KPiA+ICsNCj4gPiArICAg ICAgd2hpbGUgKENwdU1wRGF0YS0+TXBDcHVFeGNoYW5nZUluZm8tPk51bUFwc0V4ZWN1dGluZyAh PSAwKSB7DQo+ID4gKyAgICAgICAgQ3B1UGF1c2UoKTsNCj4gPiArICAgICAgfQ0KPiA+ICAgICAg fSBlbHNlIHsNCj4gPiAgICAgICAgLy8NCj4gPiAgICAgICAgLy8gV2FpdCBhbGwgQVBzIHdha2Vu IHVwIGlmIHRoaXMgaXMgbm90IHRoZSAxc3QgYnJvYWRjYXN0IG9mDQo+ID4gU0lQSSBkaWZmIC0t Z2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9NcExpYi5oDQo+ID4gYi9VZWZpQ3B1 UGtnL0xpYnJhcnkvTXBJbml0TGliL01wTGliLmgNCj4gPiBpbmRleCBlNDFkMmRiLi5kMTNkNWMw IDEwMDY0NA0KPiA+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvTXBMaWIuaA0K PiA+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvTXBMaWIuaA0KPiA+IEBAIC0x NzYsNiArMTc2LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ICAgIFVJTlROICAgICAgICAgICAg ICAgICBDcjM7DQo+ID4gICAgVUlOVE4gICAgICAgICAgICAgICAgIEluaXRGbGFnOw0KPiA+ICAg IENQVV9JTkZPX0lOX0hPQiAgICAgICAqQ3B1SW5mbzsNCj4gPiArICBVSU5UTiAgICAgICAgICAg ICAgICAgTnVtQXBzRXhlY3V0aW5nOw0KPiA+ICAgIENQVV9NUF9EQVRBICAgICAgICAgICAqQ3B1 TXBEYXRhOw0KPiA+ICAgIFVJTlROICAgICAgICAgICAgICAgICBJbml0aWFsaXplRmxvYXRpbmdQ b2ludFVuaXRzQWRkcmVzczsNCj4gPiAgfSBNUF9DUFVfRVhDSEFOR0VfSU5GTzsNCj4gPiBkaWZm IC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9YNjQvTXBFcXUuaW5jDQo+ID4g Yi9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL1g2NC9NcEVxdS5pbmMNCj4gPiBpbmRleCAx MTRmNGUwLi5kMjU1Y2E1IDEwMDY0NA0KPiA+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9NcElu aXRMaWIvWDY0L01wRXF1LmluYw0KPiA+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRM aWIvWDY0L01wRXF1LmluYw0KPiA+IEBAIC00MCw1ICs0MCw2IEBAIEVuYWJsZUV4ZWN1dGVEaXNh YmxlTG9jYXRpb24gIGVxdSAgICAgICAgTG9ja0xvY2F0aW9uDQo+ICsgNUNoDQo+ID4gIENyM0xv Y2F0aW9uICAgICAgICAgICAgICAgICAgIGVxdSAgICAgICAgTG9ja0xvY2F0aW9uICsgNjRoDQo+ ID4gIEluaXRGbGFnTG9jYXRpb24gICAgICAgICAgICAgIGVxdSAgICAgICAgTG9ja0xvY2F0aW9u ICsgNkNoDQo+ID4gIENwdUluZm9Mb2NhdGlvbiAgICAgICAgICAgICAgIGVxdSAgICAgICAgTG9j a0xvY2F0aW9uICsgNzRoDQo+ID4gLUluaXRpYWxpemVGbG9hdGluZ1BvaW50VW5pdHNBZGRyZXNz IGVxdSAgTG9ja0xvY2F0aW9uICsgODRoDQo+ID4gK051bUFwc0V4ZWN1dGluZ0xvY2F0aW9uICAg ICAgIGVxdSAgICAgICAgTG9ja0xvY2F0aW9uICsgN0NoDQo+ID4gK0luaXRpYWxpemVGbG9hdGlu Z1BvaW50VW5pdHNBZGRyZXNzIGVxdSAgTG9ja0xvY2F0aW9uICsgOENoDQo+ID4NCj4gPiBkaWZm IC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9YNjQvTXBGdW5jcy5uYXNtDQo+ ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL1g2NC9NcEZ1bmNzLm5hc20NCj4gPiBp bmRleCA0YWRhNjQ5Li4yMWQyNzg2IDEwMDY0NA0KPiA+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFy eS9NcEluaXRMaWIvWDY0L01wRnVuY3MubmFzbQ0KPiA+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFy eS9NcEluaXRMaWIvWDY0L01wRnVuY3MubmFzbQ0KPiA+IEBAIC0xMjQsNiArMTI0LDEyIEBAIExv bmdNb2RlU3RhcnQ6DQo+ID4gICAgICBjbXAgICAgICAgIHF3b3JkIFtlZGldLCAxICAgICAgIDsg QXBJbml0Q29uZmlnDQo+ID4gICAgICBqbnogICAgICAgIEdldEFwaWNJZA0KPiA+DQo+ID4gKyAg ICA7IEluY3JlbWVudCB0aGUgbnVtYmVyIG9mIEFQcyBleGVjdXRpbmcgaGVyZSBhcyBlYXJseSBh cyBwb3NzaWJsZQ0KPiA+ICsgICAgOyBUaGlzIGlzIGRlY3JlbWVudGVkIGluIEMgY29kZSB3aGVu IEFQIGlzIGZpbmlzaGVkIGV4ZWN1dGluZw0KPiA+ICsgICAgbW92ICAgICAgICBlZGksIGVzaQ0K PiA+ICsgICAgYWRkICAgICAgICBlZGksIE51bUFwc0V4ZWN1dGluZ0xvY2F0aW9uDQo+ID4gKyAg ICBsb2NrIGluYyAgIGR3b3JkIFtlZGldDQo+ID4gKw0KPiA+ICAgICAgOyBBUCBpbml0DQo+ID4g ICAgICBtb3YgICAgICAgIGVkaSwgZXNpDQo+ID4gICAgICBhZGQgICAgICAgIGVkaSwgTG9ja0xv Y2F0aW9uDQo+ID4NCg0K