From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web12.35057.1611572668424728809 for ; Mon, 25 Jan 2021 03:04:29 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=KLMea+pE; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: star.zeng@intel.com) IronPort-SDR: 9ago0XJD82yStY/CtNVmFuKUuXi4psFiGbvmaCzNzTm+ss35IupnP2kM+QcEI04ZoMSyGtW0BJ jBW9e9AFnWKQ== X-IronPort-AV: E=McAfee;i="6000,8403,9874"; a="179854224" X-IronPort-AV: E=Sophos;i="5.79,373,1602572400"; d="scan'208";a="179854224" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jan 2021 03:04:27 -0800 IronPort-SDR: RuC9MUhKf60VXKp97uzdieChP+VqlVLwQuSE0tEbr0Un3Gp8eeN5ZN75SfXZU3XphKoD1NgRD7 T1MbdaLRF3cw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,373,1602572400"; d="scan'208";a="361439053" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga008.fm.intel.com with ESMTP; 25 Jan 2021 03:04:26 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Mon, 25 Jan 2021 03:04:26 -0800 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 25 Jan 2021 03:04:26 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 25 Jan 2021 03:04:26 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.106) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Mon, 25 Jan 2021 03:04:25 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=H4S9gDLMB6BqvWTF/CaHtqPP83nuPjV2ziRJtIl2N8PnulTtNqB0rPUfKQ+05BAb7B4wmoUTYZraEHrUPekJ2umv69/ytddy4GxN8KYqvYIqDOaQQ74jMW0OFvJRQvRhYb9FxCFrjuP3vNHFH6fNAU3By87RCUBY9qm+2aCtqFT7u/rQGYpK3/1LKoHu1wI3RPW9ib0cH4m237gWb4JZpoKX6hnze6Ad3XvC0RSqbngQNTLasyhhd5n+rqD8DRwNvbGCtnjmnwH4hGr5cdvJ0uWL1b88b5u9IBymKcGMXkAMdGTP7IwxcvPJWrlJUBDvTBXkCNVyvDUqIG2nbJLqcg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=i8nIlShnXkTSmSiWTAgm+rBrbQL4ReftUa6VOfrhNDQ=; b=D6Z9CMFREgPoi/uqzGb4Aeiz4Ybo5pNrKT9+vVF8YrbGxI2PkLIlnFynE+SgBd6grpDNIwCVUSejsJP9QEeaM2e7RR+oaGhArogK6lwMjAGRS/7e38RouOenlsnN5RzkQOvGqVEoF4HL4mW4anMG1C7nvFKT/PyC0a6QLOu0JjcqkXllFfRkVKjZp8fJ/E67InSPue3yZZJXw5cb3Ql/ARpo0xptxWhZycxk18o/uHR9diCfTOK7r5uT2gjf89yE2KJkwkpJUq7ofvGj5hz4Ezl78T6sBgc/qT9ek/c0hcgpQZsljCq7PxvhuWzsjmFZbdYX3I0jExUIDHdlrtSZ6g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=i8nIlShnXkTSmSiWTAgm+rBrbQL4ReftUa6VOfrhNDQ=; b=KLMea+pEWkZJ0HzLQSHsze8OjeZPt+B0Ks7rinY9Hy4gbw75cF6P0CQONH+Wqf520sUkVJS7wF7VnESjTwXB3dXz1EpjFFwVLnq3Z4hi8kIEquBWaVqKBgdystCbWwZRYYoghZYS/cqA4KthyrF340piSRYrJeO5KyvpWWIaykk= Received: from DM6PR11MB4058.namprd11.prod.outlook.com (2603:10b6:5:193::13) by DM5PR11MB1739.namprd11.prod.outlook.com (2603:10b6:3:111::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.17; Mon, 25 Jan 2021 11:04:24 +0000 Received: from DM6PR11MB4058.namprd11.prod.outlook.com ([fe80::29e6:77f7:8834:9f88]) by DM6PR11MB4058.namprd11.prod.outlook.com ([fe80::29e6:77f7:8834:9f88%7]) with mapi id 15.20.3784.019; Mon, 25 Jan 2021 11:04:24 +0000 From: "Zeng, Star" To: "Ni, Ray" , "Kinney, Michael D" , "devel@edk2.groups.io" CC: "Dong, Eric" , Laszlo Ersek , "Kumar, Rahul1" , "Zeng, Star" Subject: Re: [edk2-devel] [Patch 1/1] UefiCpuPkg/Library/MpInitLib: Fix AP VolatileRegisters race condition Thread-Topic: [edk2-devel] [Patch 1/1] UefiCpuPkg/Library/MpInitLib: Fix AP VolatileRegisters race condition Thread-Index: AQHW8OGMsMigToHqg0Wn9wjGvm6/8Ko3rmYQgAAiGICAADl7sIAAA1GAgAAjjqA= Date: Mon, 25 Jan 2021 11:04:24 +0000 Message-ID: References: <20210122171020.589-1-michael.d.kinney@intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.202] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c4c047a6-222e-4229-6096-08d8c120f9b9 x-ms-traffictypediagnostic: DM5PR11MB1739: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: AQn23nVgimjVabDA/B2I2ZqdNVZ4FImAdXjyeASYkyd5XeJ36cO98kxAOTeq5HLhxZMM3gY6FAvs8sY87bzmTKjV0n6nJ9wRMQtBCqaDf+2wwyxbogT80NpdLVN2ByuUl1Bn97SYD5+o9qnzqcB9Dkuc2PzeSMd7odc5NCeKSLwqbJU48uW6WHCaM0srQZ5CjUdhrDmgcjY0C4jzDYdVGZeq/H7WV0OFJq9tvvci1R+D3lwMB0MjzAHgiDWg96iEEHWq9cXycWHgsJu8fHesyFFhOxKWsTCVpS41acn8iqhSzcWYeh4KIA/Zzw4JLf1rrmthQw8FRABSaFcFtSi3D/NGF9Fhte1r5mOn9cygsgXrHshZ35eJEUOcZp3rJwI+B7YprCU32jv4ctqzkliSKrKxx98OZd5fH6sHV/I6pM/ybGK1fj/Tv/KBmBM2cnS1PnuaBr1wmJdC8Y5soE3Bsg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4058.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(6029001)(4636009)(39860400002)(366004)(396003)(376002)(346002)(136003)(66476007)(5660300002)(8676002)(55016002)(6506007)(64756008)(110136005)(66556008)(83380400001)(478600001)(52536014)(107886003)(7696005)(66446008)(9686003)(8936002)(76116006)(966005)(86362001)(54906003)(66946007)(186003)(53546011)(2906002)(26005)(316002)(4326008)(71200400001)(33656002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?QU5zUVJFODJPaS9CKzB2QjkxUzIzZnFBQUFWZXRZRUlETVFJOUk4c1pLUmVI?= =?utf-8?B?eHMzWjhTS1JHMmV0VW1iRkdNMDJia2phMytCNmpiZVVqVmViKzJ5bjdXUnI2?= =?utf-8?B?M1Y1a0l5VlFkb2w3Y1RhWURxdDZMc0Q3cyt0RDR4Y3pSODVGZEQ0QWVzdjcv?= =?utf-8?B?VHdpZXI4dEs3SHJQUUdHdTJ2Wkdaam1BRTdITjh3UFd3QW5NcXdRVmtTeEhG?= =?utf-8?B?Z3JQYmJQclhuL0hWMFJTSVZGNXREcGNMWTVrVjBKMDFCL3ZiOXh1Q0c3a1R5?= =?utf-8?B?eisvRnJiNHc1RTRSc1FTVldyVk5LUitEL2pxL0VHQmRHcUhKSG9ZOXcxelJw?= =?utf-8?B?TXF3dDRkZDI4ZFMrR3VGZUhrcE5WK1VzU3MxVG1mdy9oelBKd01hZmUvOTVn?= =?utf-8?B?c20wTDFBVnRISGE5MDg5Vk5wSDlaaEJIc3NXNkJzOUN1b2NXSUJGNFBUdVNV?= =?utf-8?B?VU9RbkVaL2J5dURuQlVORnpxaWwxZ090OVZqLzJObm5QT2Zab2VHbTQ4L2FO?= =?utf-8?B?VmV1cEV0R0V1VGJac0l4TUo4bmFEOTY0cno0U2dFSUdEZ0s2MHFhNk5QVUpi?= =?utf-8?B?dGhXR3NjNTVBOVhHblNQYnc2S281Z2V3T0dXRk1BMlowS1F2YTlZcWRIdVI1?= =?utf-8?B?RFBsS0pIaVIvaWtiMWV1N2V6UEtoWGtBZU04dmlFSmR2ZzE2blN5d2tleVV2?= =?utf-8?B?Q0pxek5EcU9TRlYwaWMxRjVjTVN6VzFvMEcrMXY2ejdZNlVOOFlUT0I4KzBm?= =?utf-8?B?cHJRaThhR0E3VEs2UUV0cHFZY0xzOTFBU0ZXY0R4MEhhRnN2Mk8zMU5GNk5k?= =?utf-8?B?clhDZExLVkx4cjNTcHN4TFRwVi9GVW8yZHNnMHZuNnpRRWZqOENjZ0RtZlVN?= =?utf-8?B?T0VWck04TXFvWGtFOTd6UVFzYUNFSzE0ckRpdW80UTV5emREYjAvYmZON3Vv?= =?utf-8?B?SUhNVDYrYlRsSjAxNFdERHE2NEppdGx5VFhvS1ViMVhZYUNUQVF5YTlJckNT?= =?utf-8?B?elg5bVJHLzJsWldBU1ZIZ2dlaGpoWGhZeHo1TVl2bVZQNi9obHVYUkFucGIr?= =?utf-8?B?bkM1Z1NqTTRLeWJjZ3RBMXJ0RkI5bjlNbWI5MEpMRkwrRVUxMHRCRDBXMFNP?= =?utf-8?B?K2dPRFhoaFI3WWMrd21MTlJjVjc0OW02RXQvaWpVY2ZOMXYvS1NqWmMvVHpS?= =?utf-8?B?WFJPZnBSVWlxL0R1S2hyb09BQ1dsMS9QaDVqbVlJWVlRdVB3M2RMMzlYNUVW?= =?utf-8?B?d2hMZWdMelBQdVAyQS9XOTB4YVlLNDRDVXo5RWJ6ZXQ2OVZON1o4Lzk3REhS?= =?utf-8?B?YmRZaDA2RWNieVNqYnFtUVU4dHpkMGZ1cWxUVllEbU1ZL0xRUHgyeDI2WUZx?= =?utf-8?B?T05GakxRS2dsQ3lUVEo3eXF0dG9NV3ZjVGhKM2pmenBOWWxTcjZ2QktlUGYr?= =?utf-8?Q?8N5cqB8j?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4058.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c4c047a6-222e-4229-6096-08d8c120f9b9 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jan 2021 11:04:24.4585 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 99a0youxEFiW4rGL8ZTxqCJ5f17H8/Zec4raDmLT/9vLR+B3xXcRZ4nC/xvuTstYfoWVsuCCm3fyefInYscLcw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1739 Return-Path: star.zeng@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QlRXOg0KDQpEbyB5b3UgdGhpbmsgaXQgd29ydGggb3Igbm90IHRvIGFkZCB0aGUgY2hlY2sgbGlr ZSBiZWxvdyBpbiBFZGsyXFVlZmlDcHVQa2dcTGlicmFyeVxNcEluaXRMaWJcUGVpTXBMaWIuYyBH ZXRDcHVNcERhdGEoKT8gSWYgdGhlIGFzc2VydCB3YXMgdGhlcmUsIGl0IHdvdWxkIGZhY2lsaXRh dGUgdGhlIGRlYnVnPw0KDQogICAgQ3B1TXBEYXRhID0gKENQVV9NUF9EQVRBICopIChJZHRyLkJh c2UgKyBJZHRyLkxpbWl0ICsgMSk7DQorICAgIEFTU0VSVCAoQ3B1TXBEYXRhICE9IE5VTEwpOw0K DQpUaGFua3MsDQpTdGFyDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE5p LCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+IFNlbnQ6IE1vbmRheSwgSmFudWFyeSAyNSwgMjAy MSA0OjUzIFBNDQo+IFRvOiBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgS2lubmV5 LCBNaWNoYWVsIEQNCj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5n cm91cHMuaW8NCj4gQ2M6IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBMYXN6bG8g RXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsNCj4gS3VtYXIsIFJhaHVsMSA8cmFodWwxLmt1bWFy QGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUGF0Y2ggMS8xXSBVZWZp Q3B1UGtnL0xpYnJhcnkvTXBJbml0TGliOiBGaXggQVANCj4gVm9sYXRpbGVSZWdpc3RlcnMgcmFj ZSBjb25kaXRpb24NCj4gDQo+IFN0YXIsDQo+IFlvdSBhcmUgcmlnaHQuIFRoZXJlIGlzIG5vIHNl cXVlbmNlIHJlcXVpcmVtZW50IGJldHdlZW4gRmluaXNoZWRDb3VudCsrDQo+IGFuZCBOdW1BcHNF eGVjdXRpbmctLS4NCj4gDQo+IEluIGZhY3QsIEkgaGF2ZSBzdWJtaXR0ZWQgYW5vdGhlciBidWd6 aWxsYQ0KPiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTMx NzkuDQo+IA0KPiBXaXRoIHRoYXQgQnVnemlsbGEsIHRoZSB3YWl0IG9uIChGaW5pc2hlZENvdW50 ID09IENwdUNvdW50IC0gMSkgd2lsbCBiZQ0KPiByZW1vdmVkIGZvciB0aGUgMXN0IHdha2UgdXAg Y2FzZS4NCj4gDQo+IFRoYW5rcywNCj4gUmF5DQo+IA0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiA+IEZyb206IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+ ID4gU2VudDogTW9uZGF5LCBKYW51YXJ5IDI1LCAyMDIxIDQ6NDMgUE0NCj4gPiBUbzogS2lubmV5 LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsNCj4gPiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbw0KPiA+IENjOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgTmks IFJheSA8cmF5Lm5pQGludGVsLmNvbT47DQo+ID4gTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0 LmNvbT47IEt1bWFyLCBSYWh1bDENCj4gPiA8cmFodWwxLmt1bWFyQGludGVsLmNvbT47IFplbmcs IFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVs XSBbUGF0Y2ggMS8xXSBVZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliOg0KPiA+IEZpeCBBUCBW b2xhdGlsZVJlZ2lzdGVycyByYWNlIGNvbmRpdGlvbg0KPiA+DQo+ID4gTWlrZSwNCj4gPg0KPiA+ IE9oLCBzZWUgaXQuDQo+ID4gVGhlcmUgaXMgbm8gc2VxdWVuY2UgZGVwZW5kZW5jZSBiZXR3ZWVu IEZpbmlzaGVkQ291bnQgaW5jcmVtZW50IGFuZA0KPiA+IE51bUFwc0V4ZWN1dGluZyBkZWNyZW1l bnQsIHJpZ2h0Pw0KPiA+DQo+ID4gICAgICBJbnRlcmxvY2tlZEluY3JlbWVudCAoKFVJTlQzMiAq KSAmQ3B1TXBEYXRhLT5GaW5pc2hlZENvdW50KTsNCj4gPg0KPiA+ICAgICAgSW50ZXJsb2NrZWRE ZWNyZW1lbnQgKChVSU5UMzIgKikgJkNwdU1wRGF0YS0NCj4gPk1wQ3B1RXhjaGFuZ2VJbmZvLQ0K PiA+ID5OdW1BcHNFeGVjdXRpbmcpOw0KPiA+DQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gU3Rhcg0K PiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogS2lubmV5 LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gU2VudDogTW9u ZGF5LCBKYW51YXJ5IDI1LCAyMDIxIDE6MTYgUE0NCj4gPiA+IFRvOiBaZW5nLCBTdGFyIDxzdGFy LnplbmdAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IEtpbm5leSwNCj4gPiA+IE1p Y2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiBDYzogRG9uZywgRXJp YyA8ZXJpYy5kb25nQGludGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+Ow0KPiA+ ID4gTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IEt1bWFyLCBSYWh1bDENCj4gPiA+ IDxyYWh1bDEua3VtYXJAaW50ZWwuY29tPg0KPiA+ID4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVs XSBbUGF0Y2ggMS8xXSBVZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliOg0KPiA+ID4gRml4IEFQ IFZvbGF0aWxlUmVnaXN0ZXJzIHJhY2UgY29uZGl0aW9uDQo+ID4gPg0KPiA+ID4gSGkgU3RhciwN Cj4gPiA+DQo+ID4gPiBUaGF0IGxpbmUgaXMgb25seSBhY3RpdmUgd2hlbiAoQ3B1TXBEYXRhLT5T ZXZFc0lzRW5hYmxlZCkgaXMgVFJVRS4NCj4gPiA+DQo+ID4gPiBUaGUgcmFjZSBjb25kaXRpb24g YWRkcmVzc2VkIGJ5IHRoaXMgQlogaXMgZm9yIHN5c3RlbXMgd2l0aA0KPiA+ID4gU2VjRXNJc0Vu YWJsZWQgRkFMU0UuDQo+ID4gPg0KPiA+ID4gRnJvbSBjb21tZW50cyBpbiB0aGlzIGZpbGUgdGhl IFNlY0VzSXNFbmFibGVkIGNhc2VzIGhhdmUgYWxyZWFkeQ0KPiA+ID4gYmVlbiBoYW5kbGVkLg0K PiA+ID4NCj4gPiA+IE1pa2UNCj4gPiA+DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+ID4gPiA+IEZyb206IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+ID4g PiA+IFNlbnQ6IFN1bmRheSwgSmFudWFyeSAyNCwgMjAyMSA3OjE1IFBNDQo+ID4gPiA+IFRvOiBk ZXZlbEBlZGsyLmdyb3Vwcy5pbzsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPiA+ID4gPG1pY2hhZWwu ZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gPiBDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGlu dGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+Ow0KPiA+ID4gPiBMYXN6bG8gRXJz ZWsgPGxlcnNla0ByZWRoYXQuY29tPjsgS3VtYXIsIFJhaHVsMQ0KPiA+ID4gPiA8cmFodWwxLmt1 bWFyQGludGVsLmNvbT47IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+ID4gPiA+ IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BhdGNoIDEvMV0gVWVmaUNwdVBrZy9MaWJyYXJ5 L01wSW5pdExpYjoNCj4gPiA+ID4gRml4IEFQIFZvbGF0aWxlUmVnaXN0ZXJzIHJhY2UgY29uZGl0 aW9uDQo+ID4gPiA+DQo+ID4gPiA+IERvZXMNCj4gPiA+ID4NCj4gPiA+DQo+ID4NCj4gaHR0cHM6 Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL2Jsb2IvbWFzdGVyL1VlZmlDcHVQa2cvTGlicmFy eS9NcEluaQ0KPiA+ID4gPiB0TGliL01wTGliLmMjTDkwOSAoYWxzbyBkZWNyZW1lbnRzDQo+ID4g PiA+IE51bUFwc0V4ZWN1dGluZykgYWxzbyBuZWVkIGJlIGhhbmRsZWQ/DQo+ID4gPiA+DQo+ID4g PiA+IFRoYW5rcywNCj4gPiA+ID4gU3Rhcg0KPiA+ID4gPg0KPiA+ID4gPiA+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRl dmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gPiA+ID4gPiBNaWNoYWVsIEQgS2lu bmV5DQo+ID4gPiA+ID4gU2VudDogU2F0dXJkYXksIEphbnVhcnkgMjMsIDIwMjEgMToxMCBBTQ0K PiA+ID4gPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gPiA+IENjOiBEb25nLCBF cmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgTmksIFJheQ0KPiA+ID4gPiA+IDxyYXkubmlAaW50 ZWwuY29tPjsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IEt1bWFyLA0KPiA+ID4g PiA+IFJhaHVsMSA8cmFodWwxLmt1bWFyQGludGVsLmNvbT4NCj4gPiA+ID4gPiBTdWJqZWN0OiBb ZWRrMi1kZXZlbF0gW1BhdGNoIDEvMV0gVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYjoNCj4g PiA+ID4gPiBGaXggQVAgVm9sYXRpbGVSZWdpc3RlcnMgcmFjZSBjb25kaXRpb24NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IFJFRjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVn LmNnaT9pZD0zMTgyDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBGaXggdGhlIG9yZGVyIG9mIG9wZXJh dGlvbnMgaW4gQXBXYWtldXBGdW5jdGlvbigpIHdoZW4NCj4gPiA+ID4gPiBQY2RDcHVBcExvb3BN b2RlIGlzIHNldCB0byBITFQgbW9kZSB0aGF0IHVzZXMgSU5JVC1TSVBJLVNJUEkgdG8NCj4gPiB3 YWtlDQo+ID4gPiA+ID4gQVBzLiAgSW4gdGhpcyBtb2RlLCB2b2xhdGlsZSBzdGF0ZSBpcyByZXN0 b3JlZCBhbmQgc2F2ZWQgZWFjaA0KPiA+ID4gPiA+IHRpbWUgYSBJTklULVNJUEktU0lQSSBpcyBz ZW50IHRvIGFuIEFQIHRvIHJlcXVlc3QgYSBmdW5jdGlvbiB0bw0KPiA+ID4gPiA+IGJlIGV4ZWN1 dGVkIG9uIHRoZSBBUC4gIFdoZW4gdGhlIGZ1bmN0aW9uIGlzIGNvbXBsZXRlZCB0aGUNCj4gPiA+ ID4gPiB2b2xhdGlsZSBzdGF0ZSBvZiB0aGUgQVAgaXMgc2F2ZWQuICBIb3dldmVyLCB0aGUgY291 bnRlcnMNCj4gPiA+ID4gPiBOdW1BcHNFeGVjdXRpbmcgYW5kIEZpbmlzaGVkQ291bnQgYXJlIHVw ZGF0ZWQgYmVmb3JlIHRoZQ0KPiA+ID4gPiA+IHZvbGF0aWxlIHN0YXRlIGlzIHNhdmVkLiAgVGhp cyBhbGxvd3MgZm9yIGEgcmFjZSBjb25kaXRpb24NCj4gPiA+ID4gPiB3aW5kb3cgZm9yIHRoZSBC U1AgdGhhdCBpcyB3YWl0aW5nIG9uIHRoZXNlIGNvdW50ZXJzIHRvIHJlcXVlc3QNCj4gPiA+ID4g PiBhIG5ldyBJTklULVNJUEktU0lQSSBiZWZvcmUgYWxsIHRoZSBBUHMgaGF2ZSBjb21wbGV0ZWx5 IHNhdmVkDQo+ID4gPiA+ID4gdGhlaXIgdm9sYXRpbGUgc3RhdGUuICBUaGUgZml4IGlzIHRvIHNh dmUgdGhlIEFQIHZvbGF0aWxlIHN0YXRlDQo+ID4gPiA+ID4gYmVmb3JlIHVwZGF0aW5nIHRoZSBO dW1BcHNFeGVjdXRpbmcgYW5kIEZpbmlzaGVkQ291bnQgY291bnRlcnMuDQo+ID4gPiA+ID4NCj4g PiA+ID4gPiBDYzogRXJpYyBEb25nIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiA+ID4gPiA+IENj OiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gQ2M6IExhc3psbyBFcnNlayA8 bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4gPiA+ID4gQ2M6IFJhaHVsIEt1bWFyIDxyYWh1bDEua3Vt YXJAaW50ZWwuY29tPg0KPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgRCBLaW5uZXkg PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ICBV ZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL01wTGliLmMgfCAzMQ0KPiA+ID4gPiA+ICsrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0NCj4gPiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDE4IGlu c2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gZGlmZiAt LWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvTXBMaWIuYw0KPiA+ID4gPiA+IGIv VWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9NcExpYi5jDQo+ID4gPiA+ID4gaW5kZXggNjgx ZmE3OWI0Y2ZmLi44YjFmN2Y4NGJhZDYgMTAwNjQ0DQo+ID4gPiA+ID4gLS0tIGEvVWVmaUNwdVBr Zy9MaWJyYXJ5L01wSW5pdExpYi9NcExpYi5jDQo+ID4gPiA+ID4gKysrIGIvVWVmaUNwdVBrZy9M aWJyYXJ5L01wSW5pdExpYi9NcExpYi5jDQo+ID4gPiA+ID4gQEAgLTc2OSwxNSArNzY5LDYgQEAg QXBXYWtldXBGdW5jdGlvbiAoDQo+ID4gPiA+ID4gICAgICAgIFJlc3RvcmVWb2xhdGlsZVJlZ2lz dGVycw0KPiA+ID4gPiA+ICgmQ3B1TXBEYXRhLT5DcHVEYXRhWzBdLlZvbGF0aWxlUmVnaXN0ZXJz LA0KPiA+ID4gPiA+IEZBTFNFKTsNCj4gPiA+ID4gPiAgICAgICAgSW5pdGlhbGl6ZUFwRGF0YSAo Q3B1TXBEYXRhLCBQcm9jZXNzb3JOdW1iZXIsIEJpc3REYXRhLA0KPiA+ID4gPiA+IEFwVG9wT2ZT dGFjayk7DQo+ID4gPiA+ID4gICAgICAgIEFwU3RhcnR1cFNpZ25hbEJ1ZmZlciA9IENwdU1wRGF0 YS0NCj4gPiA+ID4gPiA+Q3B1RGF0YVtQcm9jZXNzb3JOdW1iZXJdLlN0YXJ0dXBBcFNpZ25hbDsN Cj4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gLSAgICAgIC8vDQo+ID4gPiA+ID4gLSAgICAgIC8vIERl bGF5IGRlY3JlbWVudGluZyB0aGUgQVBzIGV4ZWN1dGluZyBjb3VudCB3aGVuIFNFVi1FUyBpcw0K PiA+ID4gZW5hYmxlZA0KPiA+ID4gPiA+IC0gICAgICAvLyB0byBhbGxvdyB0aGUgQVBzIHRvIGlz c3VlIGFuIEFQX1JFU0VUX0hPTEQgYmVmb3JlIHRoZSBCU1ANCj4gPiA+IHBvc3NpYmx5DQo+ID4g PiA+ID4gLSAgICAgIC8vIHBlcmZvcm1zIGFub3RoZXIgSU5JVC1TSVBJLVNJUEkgc2VxdWVuY2Uu DQo+ID4gPiA+ID4gLSAgICAgIC8vDQo+ID4gPiA+ID4gLSAgICAgIGlmICghQ3B1TXBEYXRhLT5T ZXZFc0lzRW5hYmxlZCkgew0KPiA+ID4gPiA+IC0gICAgICAgIEludGVybG9ja2VkRGVjcmVtZW50 ICgoVUlOVDMyICopICZDcHVNcERhdGEtDQo+ID4gPiA+ID4gPk1wQ3B1RXhjaGFuZ2VJbmZvLT5O dW1BcHNFeGVjdXRpbmcpOw0KPiA+ID4gPiA+IC0gICAgICB9DQo+ID4gPiA+ID4gICAgICB9IGVs c2Ugew0KPiA+ID4gPiA+ICAgICAgICAvLw0KPiA+ID4gPiA+ICAgICAgICAvLyBFeGVjdXRlIEFQ IGZ1bmN0aW9uIGlmIEFQIGlzIHJlYWR5IEBAIC04NjYsMTkgKzg1NywzMw0KPiA+ID4gPiA+IEBA IEFwV2FrZXVwRnVuY3Rpb24gKA0KPiA+ID4gPiA+ICAgICAgICB9DQo+ID4gPiA+ID4gICAgICB9 DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArICAgIGlmIChDcHVNcERhdGEtPkFwTG9vcE1vZGUgPT0g QXBJbkhsdExvb3ApIHsNCj4gPiA+ID4gPiArICAgICAgLy8NCj4gPiA+ID4gPiArICAgICAgLy8g U2F2ZSBBUCB2b2xhdGlsZSByZWdpc3RlcnMNCj4gPiA+ID4gPiArICAgICAgLy8NCj4gPiA+ID4g PiArICAgICAgU2F2ZVZvbGF0aWxlUmVnaXN0ZXJzICgmQ3B1TXBEYXRhLQ0KPiA+ID4gPiA+ID5D cHVEYXRhW1Byb2Nlc3Nvck51bWJlcl0uVm9sYXRpbGVSZWdpc3RlcnMpOw0KPiA+ID4gPiA+ICsg ICAgfQ0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiAgICAgIC8vDQo+ID4gPiA+ID4gICAgICAvLyBB UCBmaW5pc2hlZCBleGVjdXRpbmcgQyBjb2RlDQo+ID4gPiA+ID4gICAgICAvLw0KPiA+ID4gPiA+ ICAgICAgSW50ZXJsb2NrZWRJbmNyZW1lbnQgKChVSU5UMzIgKikNCj4gPiA+ID4gPiAmQ3B1TXBE YXRhLT5GaW5pc2hlZENvdW50KTsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgICAgaWYgKENwdU1w RGF0YS0+SW5pdEZsYWcgPT0gQXBJbml0Q29uZmlnKSB7DQo+ID4gPiA+ID4gKyAgICAgIC8vDQo+ ID4gPiA+ID4gKyAgICAgIC8vIERlbGF5IGRlY3JlbWVudGluZyB0aGUgQVBzIGV4ZWN1dGluZyBj b3VudCB3aGVuIFNFVi1FUw0KPiA+ID4gPiA+ICsgaXMNCj4gPiA+IGVuYWJsZWQNCj4gPiA+ID4g PiArICAgICAgLy8gdG8gYWxsb3cgdGhlIEFQcyB0byBpc3N1ZSBhbiBBUF9SRVNFVF9IT0xEIGJl Zm9yZSB0aGUNCj4gPiA+ID4gPiArIEJTUA0KPiA+ID4gcG9zc2libHkNCj4gPiA+ID4gPiArICAg ICAgLy8gcGVyZm9ybXMgYW5vdGhlciBJTklULVNJUEktU0lQSSBzZXF1ZW5jZS4NCj4gPiA+ID4g PiArICAgICAgLy8NCj4gPiA+ID4gPiArICAgICAgaWYgKCFDcHVNcERhdGEtPlNldkVzSXNFbmFi bGVkKSB7DQo+ID4gPiA+ID4gKyAgICAgICAgSW50ZXJsb2NrZWREZWNyZW1lbnQgKChVSU5UMzIg KikgJkNwdU1wRGF0YS0NCj4gPiA+ID4gPiA+TXBDcHVFeGNoYW5nZUluZm8tPk51bUFwc0V4ZWN1 dGluZyk7DQo+ID4gPiA+ID4gKyAgICAgIH0NCj4gPiA+ID4gPiArICAgIH0NCj4gPiA+ID4gPiAr DQo+ID4gPiA+ID4gICAgICAvLw0KPiA+ID4gPiA+ICAgICAgLy8gUGxhY2UgQVAgaXMgc3BlY2lm aWVkIGxvb3AgbW9kZQ0KPiA+ID4gPiA+ICAgICAgLy8NCj4gPiA+ID4gPiAgICAgIGlmIChDcHVN cERhdGEtPkFwTG9vcE1vZGUgPT0gQXBJbkhsdExvb3ApIHsNCj4gPiA+ID4gPiAtICAgICAgLy8N Cj4gPiA+ID4gPiAtICAgICAgLy8gU2F2ZSBBUCB2b2xhdGlsZSByZWdpc3RlcnMNCj4gPiA+ID4g PiAtICAgICAgLy8NCj4gPiA+ID4gPiAtICAgICAgU2F2ZVZvbGF0aWxlUmVnaXN0ZXJzICgmQ3B1 TXBEYXRhLQ0KPiA+ID4gPiA+ID5DcHVEYXRhW1Byb2Nlc3Nvck51bWJlcl0uVm9sYXRpbGVSZWdp c3RlcnMpOw0KPiA+ID4gPiA+ICAgICAgICAvLw0KPiA+ID4gPiA+ICAgICAgICAvLyBQbGFjZSBB UCBpbiBITFQtbG9vcA0KPiA+ID4gPiA+ICAgICAgICAvLw0KPiA+ID4gPiA+IC0tDQo+ID4gPiA+ ID4gMi4yOS4yLndpbmRvd3MuMg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ ID4gPiA+IA0KPiA+ID4gPiA+DQoNCg==