From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.92.1.73; helo=nam01-by2-obe.outbound.protection.outlook.com; envelope-from=vanjeff_919@hotmail.com; receiver=edk2-devel@lists.01.org Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-oln040092001073.outbound.protection.outlook.com [40.92.1.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id B415621CEB159 for ; Tue, 24 Oct 2017 22:31:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=ve8nkCBi7SVfUTVx4qjz/b26tv43T3RNZJPEeTLPzxo=; b=XfF60vroItzl++vbaD/ddu87c3R3Bt9AZv8THljWt8CE6ne1RM+vVjJRWCyA3TbofGSbdqyLHyil8D7A9plMxDOXUw/kf1Mx9fRObwS95DBwELMsRJstaMKkdh82c0/EvNnTm990damLi7ovdu/UyWWCE3gMVKkLac8UMJyhYHf0GYa5bgvRij0Rwc44+crqJuK6jQryvJ2G5imrAxwCRstKgl3a+M7XIGI+1fAMBk/3l8JvxUq8X53pJQ8BIxtPiYFgC55pPzbIdJZwz5rYsnNMomLW3UAbDQ8XBmihaex1G2GziVdzkKfkhM62LS4+3QA12ohzLK5Lr3avm74nKQ== Received: from BY2NAM01FT017.eop-nam01.prod.protection.outlook.com (10.152.68.54) by BY2NAM01HT076.eop-nam01.prod.protection.outlook.com (10.152.68.208) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.156.4; Wed, 25 Oct 2017 05:35:22 +0000 Received: from CY1PR19MB0283.namprd19.prod.outlook.com (10.152.68.56) by BY2NAM01FT017.mail.protection.outlook.com (10.152.69.207) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.156.4 via Frontend Transport; Wed, 25 Oct 2017 05:35:22 +0000 Received: from CY1PR19MB0283.namprd19.prod.outlook.com ([10.163.54.13]) by CY1PR19MB0283.namprd19.prod.outlook.com ([10.163.54.13]) with mapi id 15.20.0156.005; Wed, 25 Oct 2017 05:35:21 +0000 From: Fan Jeff To: "Brian J. Johnson" , Laszlo Ersek , "Dong, Eric" , "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+868VkAVBPWEOBGKDo6dgstKLyyn0AgABWFwCAACYggIAAUP4AgAB1/aA= Date: Wed, 25 Oct 2017 05:35:21 +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> <1329f926-4c33-aaca-108a-7d15ae0503bc@redhat.com>, <7cbc72b5-b829-079b-00ad-c46f224235f4@hpe.com> In-Reply-To: <7cbc72b5-b829-079b-00ad-c46f224235f4@hpe.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: hpe.com; dkim=none (message not signed) header.d=none;hpe.com; dmarc=none action=none header.from=hotmail.com; x-incomingtopheadermarker: OriginalChecksum:8FE22FE0910116DE79F1B157C6ECC62E52027AFADE0A4A980A6C83AC6660F8B1; UpperCasedChecksum:50AB11F2E766F0A97178DE5D65042DFF9828918C3688285AB17AFFA3F331561C; SizeAsReceived:7624; Count:47 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [4VXP8+QcVJNnTwpi87ewx7Pf82rIG0lL] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; BY2NAM01HT076; 6:x0pgtKyt1gz/kR59E6aNZJSLDtDJrj+AJqvX8jS33rhsfwh3uEfuqJKG23WAJDOnYPpGhTlNywXlISHXrKrP8lIo4vNfyfLOaIHbK+AkXQmfZXyZJqnJZwgCSu367oBOBSz0QEgFpTylvXAFs3CJzCtT2L/UmY/5B4kAwkPSQ4ZVM1Z6yPR7f0TcQhDWv10xCahOup97UKzOgq8iV6k4tB90VzsaM9QNJRfuB2fogU2EZw19doMWYwNAI9CM9p8iN50TtHsRMxC5Ngmc31+xHShNKOVEMMZ/6gj/D0shPccnzzQXq6JknhPSBFd8KInVAto6sMtAXOd+KqvLyL97xg==; 5:I1iSzl7+njDRJmFpgxILk/nAXnRS8l/EHyz/zntvIvI4b2noG9eTZP7XOVvdBMEFUp30p1wDMXSayl3KK6mJAY0B7annsxF1r0gZ+Xw+sTE2y2w9pPV70wO9PRhjmCGziuP94iCQ6+RMT1Na/kC5ag==; 24:hbvrQQN/kPVmhKfjJI0BrEdgn1bjaMnHVdSJHbB1kG7zvo2a7jFP7SdGZmfWUDWhhH0bEbegheaVeh+P1qMQgfDnVW0Pbtis8LsH7Up3D4o=; 7:UQqjuo96yYGjsEQ8WB0y4Zkwud9OTTED1Qfe8uUT1LbQmOW5+Rr68Ek/35xAejKW2SEI7TxzK1YaF3D5BZYXYhIzWbR4eBWSqKOm84T8fExqyGSWtWlHew6RLB9xI83QUaXS54SVeA+YnoHJ4NbVQHfls0GP8jId22NQ3Eemy4zT4xMqEj7RoLP8i2hCSEUHyqtPf2z6MBZLiZjGlmBXzpb2ZmZZM4/+4Evsygc/bWo= x-incomingheadercount: 47 x-eopattributedmessage: 0 x-ms-office365-filtering-correlation-id: c482861b-e477-49cd-b16c-08d51b6a2f5d x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201702061074)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1603101448)(1601125374)(1701031045); SRVR:BY2NAM01HT076; x-ms-traffictypediagnostic: BY2NAM01HT076: x-exchange-antispam-report-test: UriScan:(227479698468861)(162533806227266)(21748063052155)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(444000031); SRVR:BY2NAM01HT076; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY2NAM01HT076; x-forefront-prvs: 0471B73328 x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:BY2NAM01HT076; H:CY1PR19MB0283.namprd19.prod.outlook.com; FPR:; SPF:None; LANG:; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: hotmail.com X-MS-Exchange-CrossTenant-Network-Message-Id: c482861b-e477-49cd-b16c-08d51b6a2f5d X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Oct 2017 05:35:21.7008 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2NAM01HT076 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: =?UTF-8?B?562U5aSNOiBbUGF0Y2ggMi8yXSBVZWZpQ3B1UGtnL01wSW5pdExpYjogRW5oYW5jZSB3YWl0aW5nIGZvciBBUCBpbml0aWFsaXphdGlvbiBsb2dpYy4=?= 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: Wed, 25 Oct 2017 05:31:38 -0000 Content-Language: zh-CN Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Sm9obnNvbiwNCg0KRm9yIE9WTUYgY2FzZSwgd2Uga25ldyB0aGUgYWN0dWFsIHByb2Nlc3NvciBu dW1iZXIuDQpCdXQgZm9yIG1vc3QgcmVhbCBwbGF0Zm9ybSBjYXNlcywgd2UgaGF2ZSBubyB0aGlz IGtub3dsZWRnZSBvbiB0aGUgZmlyc3QgdGltZSBzZW5kaW5nIGJyb2FkY2FzdCBJTklULVNJUEkt U0lQSS4NCg0KSmVmZg0KDQq3orz+yMs6IEJyaWFuIEouIEpvaG5zb248bWFpbHRvOmJyaWFuLmpv aG5zb25AaHBlLmNvbT4NCreiy83KsbzkOiAyMDE3xOoxMNTCMjXI1SA2OjMwDQrK1bz+yMs6IExh c3psbyBFcnNlazxtYWlsdG86bGVyc2VrQHJlZGhhdC5jb20+OyBEb25nLCBFcmljPG1haWx0bzpl cmljLmRvbmdAaW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazIt ZGV2ZWxAbGlzdHMuMDEub3JnPg0Ks63LzTogTmksIFJ1aXl1PG1haWx0bzpydWl5dS5uaUBpbnRl bC5jb20+OyBQYW9sbyBCb256aW5pPG1haWx0bzpwYm9uemluaUByZWRoYXQuY29tPg0K1vfM4jog UmU6IFtlZGsyXSBbUGF0Y2ggMi8yXSBVZWZpQ3B1UGtnL01wSW5pdExpYjogRW5oYW5jZSB3YWl0 aW5nIGZvciBBUCBpbml0aWFsaXphdGlvbiBsb2dpYy4NCg0KT24gMTAvMjQvMjAxNyAxMjo0MCBQ TSwgTGFzemxvIEVyc2VrIHdyb3RlOg0KPiBIaSBFcmljLA0KPg0KPiBPbiAxMC8yNC8xNyAxNzoy MywgRG9uZywgRXJpYyB3cm90ZToNCj4+IExhc3psbywNCj4+DQo+Pj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4+PiBGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0 LmNvbV0NCj4+PiBTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDI0LCAyMDE3IDY6MTYgUE0NCj4+PiBU bzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEu b3JnDQo+Pj4gQ2M6IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29tPjsgUGFvbG8gQm9uemlu aSA8cGJvbnppbmlAcmVkaGF0LmNvbT4NCj4+PiBTdWJqZWN0OiBSZTogW2VkazJdIFtQYXRjaCAy LzJdIFVlZmlDcHVQa2cvTXBJbml0TGliOiBFbmhhbmNlIHdhaXRpbmcgZm9yDQo+Pj4gQVAgaW5p dGlhbGl6YXRpb24gbG9naWMuDQo+Pj4NCj4+PiBDQyBQYW9sbw0KPj4+DQo+Pj4gT24gMTAvMjMv MTcgMDk6MjIsIEVyaWMgRG9uZyB3cm90ZToNCj4NCj4+Pj4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQ a2cvTGlicmFyeS9NcEluaXRMaWIvSWEzMi9NcEVxdS5pbmMNCj4+Pj4gYi9VZWZpQ3B1UGtnL0xp YnJhcnkvTXBJbml0TGliL0lhMzIvTXBFcXUuaW5jDQo+Pj4+IGluZGV4IDk3NmFmMWYuLmJkZmUw ZDMgMTAwNjQ0DQo+Pj4+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvSWEzMi9N cEVxdS5pbmMNCj4+Pj4gKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9JYTMyL01w RXF1LmluYw0KPj4+PiBAQCAtNDAsNCArNDAsNSBAQCBFbmFibGVFeGVjdXRlRGlzYWJsZUxvY2F0 aW9uICBlcXUgICAgICAgIExvY2tMb2NhdGlvbg0KPj4+ICsgMzBoDQo+Pj4+ICAgQ3IzTG9jYXRp b24gICAgICAgICAgICAgICAgICAgZXF1ICAgICAgICBMb2NrTG9jYXRpb24gKyAzNGgNCj4+Pj4g ICBJbml0RmxhZ0xvY2F0aW9uICAgICAgICAgICAgICBlcXUgICAgICAgIExvY2tMb2NhdGlvbiAr IDM4aA0KPj4+PiAgIENwdUluZm9Mb2NhdGlvbiAgICAgICAgICAgICAgIGVxdSAgICAgICAgTG9j a0xvY2F0aW9uICsgM0NoDQo+Pj4+ICtOdW1BcHNFeGVjdXRpbmdMb2NhdGlvbiAgICAgICBlcXUg ICAgICAgIExvY2tMb2NhdGlvbiArIDQwaA0KPj4+Pg0KPj4+PiBkaWZmIC0tZ2l0IGEvVWVmaUNw dVBrZy9MaWJyYXJ5L01wSW5pdExpYi9JYTMyL01wRnVuY3MubmFzbQ0KPj4+PiBiL1VlZmlDcHVQ a2cvTGlicmFyeS9NcEluaXRMaWIvSWEzMi9NcEZ1bmNzLm5hc20NCj4+Pj4gaW5kZXggMWI5YzZh Ni4uMmI2YzI3ZCAxMDA2NDQNCj4+Pj4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExp Yi9JYTMyL01wRnVuY3MubmFzbQ0KPj4+PiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0 TGliL0lhMzIvTXBGdW5jcy5uYXNtDQo+Pj4+IEBAIC04Niw2ICs4NiwxMiBAQCBGbGF0MzJTdGFy dDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJvdGVjdGVkIG1vZGUNCj4+ PiBlbnRyeSBwb2ludA0KPj4+Pg0KPj4+PiAgICAgICBtb3YgICAgICAgIGVzaSwgZWJ4DQo+Pj4+ DQo+Pj4+ICsgICAgOyBJbmNyZW1lbnQgdGhlIG51bWJlciBvZiBBUHMgZXhlY3V0aW5nIGhlcmUg YXMgZWFybHkgYXMgcG9zc2libGUNCj4+Pj4gKyAgICA7IFRoaXMgaXMgZGVjcmVtZW50ZWQgaW4g QyBjb2RlIHdoZW4gQVAgaXMgZmluaXNoZWQgZXhlY3V0aW5nDQo+Pj4+ICsgICAgbW92ICAgICAg ICBlZGksIGVzaQ0KPj4+PiArICAgIGFkZCAgICAgICAgZWRpLCBOdW1BcHNFeGVjdXRpbmdMb2Nh dGlvbg0KPj4+PiArICAgIGxvY2sgaW5jICAgZHdvcmQgW2VkaV0NCj4+Pj4gKw0KPj4+PiAgICAg ICBtb3YgICAgICAgICBlZGksIGVzaQ0KPj4+PiAgICAgICBhZGQgICAgICAgICBlZGksIEVuYWJs ZUV4ZWN1dGVEaXNhYmxlTG9jYXRpb24NCj4+Pj4gICAgICAgY21wICAgICAgICAgYnl0ZSBbZWRp XSwgMA0KPj4+PiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9NcExp Yi5jDQo+Pj4+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9NcExpYi5jDQo+Pj4+IGlu ZGV4IGRiOTIzYzkuLjQ4ZjkzMGIgMTAwNjQ0DQo+Pj4+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFy eS9NcEluaXRMaWIvTXBMaWIuYw0KPj4+PiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0 TGliL01wTGliLmMNCj4+Pj4gQEAgLTY2Miw2ICs2NjIsNyBAQCBBcFdha2V1cEZ1bmN0aW9uICgN Cj4+Pj4gICAgICAgLy8gQVAgZmluaXNoZWQgZXhlY3V0aW5nIEMgY29kZQ0KPj4+PiAgICAgICAv Lw0KPj4+PiAgICAgICBJbnRlcmxvY2tlZEluY3JlbWVudCAoKFVJTlQzMiAqKSAmQ3B1TXBEYXRh LT5GaW5pc2hlZENvdW50KTsNCj4+Pj4gKyAgICBJbnRlcmxvY2tlZERlY3JlbWVudCAoKFVJTlQz MiAqKQ0KPj4+PiArICZDcHVNcERhdGEtPk1wQ3B1RXhjaGFuZ2VJbmZvLT5OdW1BcHNFeGVjdXRp bmcpOw0KPj4+Pg0KPj4+PiAgICAgICAvLw0KPj4+PiAgICAgICAvLyBQbGFjZSBBUCBpcyBzcGVj aWZpZWQgbG9vcCBtb2RlIEBAIC03NjUsNiArNzY2LDcgQEANCj4+Pj4gRmlsbEV4Y2hhbmdlSW5m b0RhdGEgKA0KPj4+Pg0KPj4+PiAgICAgRXhjaGFuZ2VJbmZvLT5DRnVuY3Rpb24gICAgICAgPSAo VUlOVE4pIEFwV2FrZXVwRnVuY3Rpb247DQo+Pj4+ICAgICBFeGNoYW5nZUluZm8tPkFwSW5kZXgg ICAgICAgICA9IDA7DQo+Pj4+ICsgIEV4Y2hhbmdlSW5mby0+TnVtQXBzRXhlY3V0aW5nID0gMDsN Cj4+Pj4gICAgIEV4Y2hhbmdlSW5mby0+SW5pdEZsYWcgICAgICAgID0gKFVJTlROKSBDcHVNcERh dGEtPkluaXRGbGFnOw0KPj4+PiAgICAgRXhjaGFuZ2VJbmZvLT5DcHVJbmZvICAgICAgICAgPSAo Q1BVX0lORk9fSU5fSE9CICopIChVSU5UTikNCj4+PiBDcHVNcERhdGEtPkNwdUluZm9JbkhvYjsN Cj4+Pj4gICAgIEV4Y2hhbmdlSW5mby0+Q3B1TXBEYXRhICAgICAgID0gQ3B1TXBEYXRhOw0KPj4+ PiBAQCAtOTM0LDEzICs5MzYsMTkgQEAgV2FrZVVwQVAgKA0KPj4+PiAgICAgICB9DQo+Pj4+ICAg ICAgIGlmIChDcHVNcERhdGEtPkluaXRGbGFnID09IEFwSW5pdENvbmZpZykgew0KPj4+PiAgICAg ICAgIC8vDQo+Pj4+IC0gICAgICAvLyBXYWl0IGZvciBhbGwgcG90ZW50aWFsIEFQcyB3YWtlbiB1 cCBpbiBvbmUgc3BlY2lmaWVkIHBlcmlvZA0KPj4+PiArICAgICAgLy8gV2FpdCBmb3Igb25lIHBv dGVudGlhbCBBUCB3YWtlbiB1cCBpbiBvbmUgc3BlY2lmaWVkIHBlcmlvZA0KPj4+PiAgICAgICAg IC8vDQo+Pj4+IC0gICAgICBUaW1lZFdhaXRGb3JBcEZpbmlzaCAoDQo+Pj4+IC0gICAgICAgIENw dU1wRGF0YSwNCj4+Pj4gLSAgICAgICAgUGNkR2V0MzIgKFBjZENwdU1heExvZ2ljYWxQcm9jZXNz b3JOdW1iZXIpIC0gMSwNCj4+Pj4gLSAgICAgICAgUGNkR2V0MzIgKFBjZENwdUFwSW5pdFRpbWVP dXRJbk1pY3JvU2Vjb25kcykNCj4+Pj4gLSAgICAgICAgKTsNCj4+Pj4gKyAgICAgIGlmIChDcHVN cERhdGEtPkNwdUNvdW50ID09IDApIHsNCj4+Pj4gKyAgICAgICAgVGltZWRXYWl0Rm9yQXBGaW5p c2ggKA0KPj4+PiArICAgICAgICAgIENwdU1wRGF0YSwNCj4+Pj4gKyAgICAgICAgICBQY2RHZXQz MiAoUGNkQ3B1TWF4TG9naWNhbFByb2Nlc3Nvck51bWJlcikgLSAxLA0KPj4+PiArICAgICAgICAg IFBjZEdldDMyIChQY2RDcHVBcEluaXRUaW1lT3V0SW5NaWNyb1NlY29uZHMpDQo+Pj4+ICsgICAg ICAgICAgKTsNCj4+Pj4gKyAgICAgIH0NCj4+Pg0KPj4+IEkgZG9uJ3QgdW5kZXJzdGFuZCB0aGlz IGNoYW5nZS4gVGhlIG5ldyBjb21tZW50IHNheXMsDQo+Pj4NCj4+PiAgICBXYWl0IGZvciAqb25l KiBwb3RlbnRpYWwgQVAgd2FrZW4gdXAgaW4gb25lIHNwZWNpZmllZCBwZXJpb2QNCj4+Pg0KPj4+ IEhvd2V2ZXIsIHRoZSBzZWNvbmQgcGFyYW1ldGVyIG9mIFRpbWVkV2FpdEZvckFwRmluaXNoKCks IG5hbWVseQ0KPj4+ICJGaW5pc2hlZEFwTGltaXQiLCBnZXRzIHRoZSBzYW1lIHZhbHVlIGFzIGJl Zm9yZToNCj4+Pg0KPj4+ICAgIFBjZEdldDMyIChQY2RDcHVNYXhMb2dpY2FsUHJvY2Vzc29yTnVt YmVyKSAtIDENCj4+Pg0KPj4+IEl0IG1lYW5zIHRoYXQgYWxsIG9mIHRoZSAocG9zc2libGUpIEFQ cyBhcmUgd2FpdGVkLWZvciwganVzdCB0aGUgc2FtZQ0KPj4+IGFzIGJlZm9yZS4NCj4+DQo+PiBb W0VyaWNdXSBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIGNvbGxlY3QgQVAgY291bnQgbG9naWMsIG9y aWdpbmFsDQo+PiBzb2x1dGlvbiBhbHdheXMgd2FpdHMgZm9yIGEgc3BlY2lmaWMgdGltZSB0byBs ZXQgYWxsIEFQcyBzdGFydCB1cC4gSWYNCj4+IHRoZSBpbnB1dCBDUFUgbnVtYmVyIChQY2RHZXQz MihQY2RDcHVNYXhMb2dpY2FsUHJvY2Vzc29yTnVtYmVyKSAtIDEpDQo+PiBoYXZlIGJlZW4gZm91 bmQgb3IgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lKFBjZEdldDMyDQo+PiAoUGNkQ3B1QXBJbml0VGlt ZU91dEluTWljcm9TZWNvbmRzKSkuIEJTUCB3aWxsIG5vdCB3YWl0IGFueW1vcmUgYW5kIHVzZQ0K Pj4gQ3B1TXBEYXRhLT5DcHVDb3VudCBhcyB0aGUgZm91bmQgQVAgY291bnQuDQo+Pg0KPj4gTmV3 IGxvZ2ljIGFsc28gd2FpdCBmb3IgYSBzcGVjaWZpYyB0aW1lLCBidXQgdGhpcyB0aW1lIGlzIHNt YWxsZXIgdGhhbg0KPj4gdGhlIG9yaWdpbmFsIG9uZS4gSXQganVzdCB3YWl0IGZvciB0aGUgZmly c3QgQVAoYW55IEFQKSBiZWdpbiB0byBkbyB0aGUNCj4+IGluaXRpYWxpemF0aW9uKCBkbyBDcHVN cERhdGEtPk1wQ3B1RXhjaGFuZ2VJbmZvLT5OdW1BcHNFeGVjdXRpbmcrKyBtZWFucw0KPj4gaXQg YmVnaW4gdG8gZG8gdGhlIGluaXRpYWxpemF0aW9uKS4gV2hlbiBBcCBmaW5pc2hlcyBpbml0aWFs aXphdGlvbiwgaXQNCj4+IHdpbGwgZG8gQ3B1TXBEYXRhLT5NcENwdUV4Y2hhbmdlSW5mby0+TnVt QXBzRXhlY3V0aW5nLS0uIFNvIGFmdGVyIEJTUA0KPj4gd2FpdHMgZm9yIGEgc3BlY2lmaWMgdGlt ZSBhdCBmaXJzdCwgaXQganVzdCBuZWVkcyB0byBjaGVjayB3aGV0aGVyDQo+PiBDcHVNcERhdGEt Pk1wQ3B1RXhjaGFuZ2VJbmZvLT5OdW1BcHNFeGVjdXRpbmcgPT0gMCB0byBrbm93IHdoZXRoZXIg YWxsDQo+PiBBcHMgaGF2ZSBmaW5pc2hlZCBpbml0aWFsaXphdGlvbi4gSGVyZSB3ZSBzdGlsbCB1 c2UgdGhlIG9yaWdpbmFsIFBDRA0KPj4gKFBjZENwdUFwSW5pdFRpbWVPdXRJbk1pY3JvU2Vjb25k cykgZm9yIHRoZSBuZXcgdGltZSB2YWx1ZS4NCj4+DQo+PiBXaGVuIG9uZSBBUCBkbyB0aGUgaW5p dGlhbGl6YXRpb24sIGl0IHdpbGwgYWxzbyBkbw0KPj4gQ3B1TXBEYXRhLT5DcHVDb3VudCsrLiBT byBoZXJlIEkgY2hlY2sgd2hldGhlciBDcHVNcERhdGEtPkNwdUNvdW50ICE9IDANCj4+IHRvIGtu b3cgd2hldGhlciBBUHMgYWxyZWFkeSBiZWdpbiB0byBkbyB0aGUgaW5pdGlhbGl6YXRpb24uIElm IHllcywgSQ0KPj4gbm90IG5lZWQgdG8gZG8gdGhlIHRpbWUgb3V0IHdhaXRpbmcgYW55bW9yZSwg anVzdCBjaGVjayB0aGUNCj4+IENwdU1wRGF0YS0+TXBDcHVFeGNoYW5nZUluZm8tPk51bUFwc0V4 ZWN1dGluZyB0byBrbm93IHdoZXRoZXIgYWxsIEFwcw0KPj4gaGF2ZSBmaW5pc2hlZCBpbml0aWFs aXphdGlvbi4NCj4NCj4gVGhhbmtzIGZvciB0aGUgZXhwbGFuYXRpb24uDQo+DQo+IFRoZSAiTnVt QXBzRXhlY3V0aW5nIiBpbmNyZW1lbnQgLyBkZWNyZW1lbnQgbG9naWMgaW4gdGhpcyBwYXRjaCBl eHBlY3RzDQo+IHRoYXQgdGhlIEFQcyB3b3JrIGFzIGZvbGxvd3M6DQo+DQo+ICgxKSBBZnRlciB0 aGUgSU5JVC1TSVBJLVNJUEksIHRoZXJlIG1heSBiZSBhIGRlbGF5IGJlZm9yZSB0aGUgQVBzIHN0 YXJ0DQo+IHJ1bm5pbmcuIER1cmluZyB0aGlzIGRlbGF5LCB0aGUgQlNQIG1heSBvciBtYXkgbm90 IHJlYWNoIHRoZSBjb2RlIGluDQo+IHF1ZXN0aW9uLiBUaGUgKENwdU1wRGF0YS0+Q3B1Q291bnQg IT0gMCkgY2hlY2sgaXMgc3VwcG9zZWQgdG8gdGFrZSB0aGlzDQo+IGludG8gYWNjb3VudC4NCj4N Cj4gKDIpIEFmdGVyIGF0IGxlYXN0IG9uZSBBUCBoYXMgc3RhcnRlZCBydW5uaW5nLCB0aGUgbG9n aWMgZXhwZWN0cw0KPiAiTnVtQXBzRXhlY3V0aW5nIiB0byBtb25vdG9uaWNhbGx5IGdyb3cgZm9y IGEgd2hpbGUsIGFuZCB0aGVuIHRvDQo+IG1vbm90b25pY2FsbHkgZGVjcmVhc2UsIGJhY2sgdG8g emVyby4gRm9yIGV4YW1wbGUsIGlmIHdlIGhhdmUgMSBCU1AgYW5kDQo+IDcgQVBzLCB0aGUgQlNQ IGxvZ2ljIG1vcmUgb3IgbGVzcyBleHBlY3RzIHRoZSBmb2xsb3dpbmcgdmFsdWVzIGluDQo+ICJO dW1BcHNFeGVjdXRpbmciOg0KPg0KPiAxOyAyOyAzOyA0OyA1OyA2OyA3Ow0KPiA2OyA1OyA0OyAz OyAyOyAxOyAwDQo+DQo+DQo+IFdoaWxlIHRoaXMgbWF5IGJlIGEgdmFsaWQgZXhwZWN0YXRpb24g Zm9yIHBoeXNpY2FsIHByb2Nlc3NvcnMgKHdoaWNoDQo+IGFjdHVhbGx5IHJ1biBpbiBwYXJhbGxl bCwgaW4gdGhlIHBoeXNpY2FsIHdvcmxkKSwgaW4gYSB2aXJ0dWFsIG1hY2hpbmUsDQo+IGl0IGlz IG5vdCBndWFyYW50ZWVkLiBEZXBlbmRlbnQgb24gaHlwZXJ2aXNvciBzY2hlZHVsaW5nIGFydGlm YWN0cywgaXQNCj4gaXMgcG9zc2libGUgdGhhdCwgc2F5LCB0aHJlZSBBUHMgc3RhcnQgdXAgKmFu ZCBmaW5pc2gqIGJlZm9yZSB0aGUNCj4gcmVtYWluaW5nIGZvdXIgQVBzIHN0YXJ0IHVwICphdCBh bGwqLiBUaGUgSU5JVC1TSVBJLVNJUEkgbWFya3MgYWxsIEFQcw0KPiBmb3IgZXhlY3V0aW9uIC8g c2NoZWR1bGluZyBpbiB0aGUgaHlwZXJ2aXNvciwgeWVzLCBidXQgdGhlIGFjdHVhbCBjb2RlDQo+ IGV4ZWN1dGlvbiBtYXkgY29tbWVuY2UgYSBsb3QgbGF0ZXIuIEZvciBleGFtcGxlLCB0aGUgQlNQ IG1heSB3aXRuZXNzIHRoZQ0KPiBmb2xsb3dpbmcgc2VyaWVzIG9mIHZhbHVlcyBpbiAiTnVtQXBz RXhlY3V0aW5nIjoNCj4NCj4gMTsgMjsgMzsNCj4gMjsgMTsgMDsNCj4gMTsgMjsgMzsgNDsNCj4g MzsgMjsgMTsgMA0KPg0KPiBhbmQgdGhlIEJTUCBjb3VsZCB0aGluayB0aGF0IHRoZXJlIGFyZSAz IEFQcyBvbmx5LCB3aGVuIGl0IHNlZXMgdGhlDQo+IGZpcnN0IDAgdmFsdWUuDQo+DQoNCkVyaWMs DQoNCkkgYWdyZWUgd2l0aCBMYXN6bG8gLS0gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHJhY2UgY29u ZGl0aW9ucyBhbmQgdmVyeQ0KbWFjaGluZS1zcGVjaWZpYyBiZWhhdmlvciBhc3N1bXB0aW9ucy4g IFRoYXQncyBkYW5nZXJvdXMgYXQgYmVzdCwgYW5kDQpjYW4gZWFzaWx5IGJyZWFrIG1hY2hpbmVz IHdoaWNoIGFyZSBwZXJmZWN0bHkgdmFsaWQgKHN1Y2ggYXMgVk1zIGFuZA0Kbm9kZS1jb250cm9s bGVyIGJhc2VkIHNjYWxhYmxlIHN5c3RlbXMpIGJ1dCBkb24ndCBtZWV0IHRoZSBpbXBsaWNpdA0K YXNzdW1wdGlvbnMuDQoNCkknZCByYXRoZXIgc2VlIGVhY2ggQVAgZ2V0IHRyYWNrZWQgaW5kaXZp ZHVhbGx5LiAgRm9yIGV4YW1wbGUsIGhhdmUgZWFjaA0KQVAgc2V0IGEgYml0IGluIGEgZ2xvYmFs IGJpdG1hcCB3aGVuIGl0IHN0YXJ0cyBleGVjdXRpbmcsIGFuZCBzZXQgYSBiaXQNCmluIGFub3Ro ZXIgZ2xvYmFsIGJpdG1hcCB3aGVuIGl0IGNvbXBsZXRlcy4gIFRoZW4gdGhlIEJTUCBjYW4gY29t cGFyZQ0KdGhlIGJpdG1hcHMgdG8gZGV0ZXJtaW5lIGhvdyBtYW55IEFQcyBhcmUgcnVubmluZy4g IFRoYXQgYWxzbyBwcm92aWRlcw0KZ29vZCBkZWJ1ZyBpbmZvcm1hdGlvbiBvbiBleGFjdGx5IHdo aWNoIEFQcyBzdGFydCBydW5uaW5nLCBhbmQgZXhhY3RseQ0Kd2hpY2ggb25lcyBmYWlsIHRvIGNv bXBsZXRlLiAgT3RoZXJ3aXNlIHRoYXQncyBxdWl0ZSBkaWZmaWN1bHQgdG8gZGV0ZXJtaW5lLg0K DQpUaGFua3MsDQpCcmlhbiBKb2huc29uDQoNCj4NCj4gTm93LCBsZXQgbWUgZ2V0IGJhY2sgdG8g dGhlIHVzZSBjYXNlIHRoYXQgYWN0dWFsbHkgbWF0dGVycyB0byBPVk1GIGFuZA0KPiBRRU1VLiBB cyBJIG1lbnRpb25lZCBlYXJsaWVyLCBPVk1GIGtub3dzIGZyb20gUUVNVSB0aGUgZXhhY3QgbnVt YmVyIG9mDQo+IEFQcy4gSWYgdGhlcmUgaXMgYSB3YXkgZm9yIE9WTUYgdG8gdGVsbCBNcEluaXRM aWIgdG8gd2FpdCBmb3IgdGhpcyBleGFjdA0KPiBudW1iZXIgb2YgQVBzIC0tIG5vIG1hdHRlciBo b3cgbG9uZyBpdCB0YWtlcyAtLSwgdGhlbiB0aGF0J3Mgd2hhdCBJDQo+IHdvdWxkIGxpa2UgdG8g dXNlLg0KPg0KPiBQbGVhc2Ugc2VlIHRoZSBvcmlnaW5hbCBkaXNjdXNzaW9uIGFyb3VuZCBPVk1G IGNvbW1pdCA0NWE3MGRiM2MzYTU5Og0KPg0KPiAqIEluIHZlcnNpb24gMSwgSSBpbnRyb2R1Y2Vk IGEgbmV3IFBDRCBjYWxsZWQNCj4NCj4gICAgUGNkQ3B1S25vd25Mb2dpY2FsUHJvY2Vzc29yTnVt YmVyDQo+DQo+IGFuZCBJIG1vZGlmaWVkIE1wSW5pdExpYiB0byB3YWl0IGZvciB0aGlzIEFQIG51 bWJlciwgaWdub3JpbmcgdGltZW91dA0KPiBjb21wbGV0ZWx5LCBpZiB0aGUgUENEIHdhcyBzZXQ6 DQo+DQo+ICAgIGh0dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9lZGsyLWRldmVsLzIwMTYt Tm92ZW1iZXIvMDA1MDc2Lmh0bWwNCj4NCj4gSG93ZXZlciwgSmVmZiBzdWdnZXN0ZWQgdG8gdXNl IHRoZSBwcmVleGlzdGVudCBQQ0QNCj4gIlBjZENwdU1heExvZ2ljYWxQcm9jZXNzb3JOdW1iZXIi IGZvciB0aGlzIHB1cnBvc2U6DQo+DQo+ICAgIGh0dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFp bC9lZGsyLWRldmVsLzIwMTYtTm92ZW1iZXIvMDA1MDkyLmh0bWwNCj4NCj4gKiBJbiB2ZXJzaW9u IDIsIEkgdXNlZCB0aGUgUENEIHN1Z2dlc3RlZCBieSBKZWZmLCBidXQgSSBhbHNvIGludHJvZHVj ZWQNCj4gYSBuZXcgc3BlY2lhbCB2YWx1ZSBmb3IgdGhlIHRpbWVvdXQuIFRpbWVvdXQ9MCB3b3Vs ZCBtZWFuICJpbmZpbml0eSI6DQo+DQo+ICAgIGh0dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFp bC9lZGsyLWRldmVsLzIwMTYtTm92ZW1iZXIvMDA1MjA5Lmh0bWwNCj4NCj4gSmVmZiBkaWRuJ3Qg bGlrZSB0aGUgc3BlY2lhbCB2YWx1ZSwgYW5kIHN1Z2dlc3RlZCB0aGF0IE9WTUYgc2ltcGx5IHVz ZQ0KPiBNQVhfVUlOVDMyIG1pY3Jvc2Vjb25kcyAoYXBwcm94LiA3MSBtaW51dGVzKSBpbnN0ZWFk IG9mICJpbmZpbml0eSI6DQo+DQo+ICAgIGh0dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9l ZGsyLWRldmVsLzIwMTYtTm92ZW1iZXIvMDA1MjY2Lmh0bWwNCj4NCj4gKiBJbiB2MywgSSBpbXBs ZW1lbnRlZCB0aGF0LCBhbmQgdGhhdCB3YXMgcHVzaGVkIGFzOg0KPg0KPiAgICAtIFVlZmlDcHVQ a2cgY29tbWl0IDZlMTk4N2YxOWFmNyAoIlVlZmlDcHVQa2cvTXBJbml0TGliOiB3YWl0IG5vDQo+ ICAgICAgbG9uZ2VyIHRoYW4gbmVjZXNzYXJ5IGZvciBpbml0aWFsIEFQIHN0YXJ0dXAiLCAyMDE2 LTExLTI0KQ0KPg0KPiAgICAtIGFuZCBPdm1mUGtnIGNvbW1pdCA0NWE3MGRiM2MzYTUgKCJPdm1m UGtnL1BsYXRmb3JtUGVpOiB0YWtlIFZDUFUNCj4gICAgICBjb3VudCBmcm9tIFFFTVUgYW5kIGNv bmZpZ3VyZSBNcEluaXRMaWIiLCAyMDE2LTExLTI0KS4NCj4NCj4NCj4gU28sIGFnYWluLCB0aGUg dXNlIGNhc2UgdGhhdCBJIHdvdWxkIGxpa2UgdG8gY292ZXIgaXM6DQo+DQo+ICogdGhlIGV4YWN0 IG51bWJlciBvZiBBUHMgaXMga25vd24gYXQgYm9vdCwgdG8gT3ZtZlBrZy9QbGF0Zm9ybVBlaSwN Cj4NCj4gKiBhZnRlciB0aGUgdmVyeSBmaXJzdCBJTklULVNJUEktU0lQSSwgTXBJbml0TGliIHNo b3VsZCB3YWl0IGZvciBleGFjdGx5DQo+ICAgIHRoaXMgbnVtYmVyIG9mIEFQcyB0byAicmVwb3J0 IGluIiwgcmVnYXJkbGVzcyBvZjoNCj4NCj4gICAgLSBob3cgbG9uZyBpdCB0YWtlcywNCj4NCj4g ICAgLSBpbiB3aGF0IG9yZGVyIC8gc2VxdWVuY2UgdGhlIEFQcyByZXBvcnQgaW4uIChBZ2Fpbiwg cGxlYXNlIHJlbWVtYmVyDQo+ICAgICAgdGhhdCBzb21lIEFQcyBtYXkgY29tcGxldGUgdGhlIGlu aXRpYWxpemF0aW9uIGJlZm9yZSBvdGhlciBBUHMNCj4gICAgICBleGVjdXRlIHRoZWlyIHZlcnkg Zmlyc3QgaW5zdHJ1Y3Rpb24uKQ0KPg0KPiAqIFByZWZlcmFibHksIHRoZSBjYXNlIHNob3VsZCBi ZSBoYW5kbGVkIHdoZW4gdGhlIHByb2Nlc3NvciBjb3VudCBncm93cw0KPiAgICBmcm9tIGNvbGQg Ym9vdCB0byBTMyByZXN1bWUgKFZDUFUgaG90cGx1ZykuIFRpYW5vQ29yZSBCWiMyNTEgdXNlZCB0 bw0KPiAgICB0cmFjayB0aGlzIHVzZSBjYXNlIHNlcGFyYXRlbHkuDQo+DQo+ICgNCj4NCj4gSmVm ZiBjbG9zZWQgQlojMjUxIHRvZGF5LCB3aXRoIHRoZSBhcmd1bWVudCB0aGF0IGNvbW1pdCAwNTk0 ZWM0MTdjODkNCj4gKHRoaXMgcGF0Y2gpIGZpbmRzIHRoZSBDUFUgY291bnQgZHluYW1pY2FsbHkg YW55d2F5LCBzbyBhIHBsYXRmb3JtIGNhbg0KPiBzaW1wbHkgc2V0ICJQY2RDcHVNYXhMb2dpY2Fs UHJvY2Vzc29yTnVtYmVyIiB0byB0aGUgbWF4aW11bSBwb3NzaWJsZSB2YWx1ZS4NCj4NCj4gVGhp cyBhcmd1bWVudCBkb2VzIG5vdCB3b3JrIGluIGEgdmlydHVhbCBtYWNoaW5lLCBiZWNhdXNlIGNv bW1pdA0KPiAwNTk0ZWM0MTdjODkgKHRoaXMgcGF0Y2gpIG1heSBpbiBmYWN0IG5vdCBmaW5kIHRo ZSBWQ1BVIGNvdW50IGNvcnJlY3RseQ0KPiAtLSBpbiBhIFZNLCAoTnVtQXBzRXhlY3V0aW5nPT0w KSBkb2VzIG5vdCBpbXBseSB0aGF0IGFsbCBBUHMgaGF2ZSBmaW5pc2hlZC4NCj4NCj4gKQ0KPg0K PiBUaGFua3MhDQo+IExhc3psbw0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXw0KPiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiBlZGsyLWRldmVsQGxp c3RzLjAxLm9yZw0KPiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazIt ZGV2ZWwNCj4NCg0KDQotLQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQnJpYW4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICAgICJJIGRvbid0IGJlbGlldmUg cGVyc29uYWwgbGV0dGVycyBzZW50IGJ1bGsgcmF0ZS4iDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0tIG1lDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXw0KZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCmVkazItZGV2ZWxA bGlzdHMuMDEub3JnDQpodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazIt ZGV2ZWwNCg0K