From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: eric.jin@intel.com) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by groups.io with SMTP; Wed, 21 Aug 2019 18:50:37 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Aug 2019 18:50:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,414,1559545200"; d="scan'208";a="203223651" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga004.fm.intel.com with ESMTP; 21 Aug 2019 18:50:37 -0700 Received: from fmsmsx154.amr.corp.intel.com (10.18.116.70) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 21 Aug 2019 18:50:37 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by FMSMSX154.amr.corp.intel.com (10.18.116.70) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 21 Aug 2019 18:50:36 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.139]) by shsmsx102.ccr.corp.intel.com ([169.254.2.19]) with mapi id 14.03.0439.000; Thu, 22 Aug 2019 09:50:33 +0800 From: "Eric Jin" To: "devel@edk2.groups.io" , "supreeth.venkatesh@arm.com" Subject: Re: [edk2-devel] [edk2-test][Patch 1/1] uefi-sct/SctPkg: Eliminate 2nd execution of ExitBootServices Test Thread-Topic: [edk2-devel] [edk2-test][Patch 1/1] uefi-sct/SctPkg: Eliminate 2nd execution of ExitBootServices Test Thread-Index: AQHVWD9/wSQxPA2XEUKtTIySPijuP6cGW0Jg Date: Thu, 22 Aug 2019 01:50:32 +0000 Message-ID: References: <20190821062430.9984-1-eric.jin@intel.com> <96bb0c56871970d9020c37005bb22fbb004b2b60.camel@arm.com> In-Reply-To: <96bb0c56871970d9020c37005bb22fbb004b2b60.camel@arm.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZTc4YTkwYTMtNjQyZi00MzE0LTk4ZWMtZTM0Y2UwN2EzYjNmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiUjFnUHlMd0FDMmc4MVRnSnpiXC9VdjJBNkh3d3lXWGk2RUc1MXRBblhaRjNcLzdIeDBMeU1GNkY0ZE5Ma011b1lUIn0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: eric.jin@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGlqIFN1cHJlZXRoLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRl dmVsQGVkazIuZ3JvdXBzLmlvIFttYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW9dIE9uIEJlaGFs ZiBPZg0KPiBTdXByZWV0aCBWZW5rYXRlc2gNCj4gU2VudDogVGh1cnNkYXksIEF1Z3VzdCAyMiwg MjAxOSAxMjo0MyBBTQ0KPiBUbzogSmluLCBFcmljIDxlcmljLmppbkBpbnRlbC5jb20+OyBkZXZl bEBlZGsyLmdyb3Vwcy5pbw0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtlZGsyLXRlc3Rd W1BhdGNoIDEvMV0gdWVmaS1zY3QvU2N0UGtnOiBFbGltaW5hdGUNCj4gMm5kIGV4ZWN1dGlvbiBv ZiBFeGl0Qm9vdFNlcnZpY2VzIFRlc3QNCj4gDQo+IE9uIFdlZCwgMjAxOS0wOC0yMSBhdCAwMToy NCAtMDUwMCwgRXJpYyBKaW4gd3JvdGU6DQo+ID4gUkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5v Y29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTgNCj4gUGxlYXNlIGFkZCB0aGUgZGV0YWlscyBv ZiB0aGUgcGF0Y2ggdG8gdGhlIGNvbW1pdCBtZXNzYWdlLg0KPiAiSW4gdGhlIEV4aXRCb290U2Vy dmljZXMoKSB0ZXN0LCBhZnRlciBFeGl0Qm9vdFNlcnZpY2VzKCkgY2FsbCwgYWxsIGJvb3Qgc2Vy dmljZXMNCj4gYXJlIGZvcmJpZGRlbi4gVGhlIG9yaWdpbmFsIGRlc2lnbiBpcyB0byBzYXZlIHRo ZSByZXR1cm4gc3RhdHVzIHZhbHVlIG9mDQo+IEV4aXRCb290U2VydmljZXMoKSBpbiB2YXJpYWJs ZSB1c2luZyB2YXJpYWJsZSBzZXJ2aWNlIGFuZCByZXNldCwgYnV0IHRoaXMgbmVlZHMNCj4gbXVs dGlwbGUgZXhlY3V0aW9uIG9mIHRoZSB0ZXN0IHRvIHJldHJpZXZlIHRoZSB2YWx1ZSBmcm9tIHZh cmlhYmxlIGFuZCB0aGlzDQo+IGRlc2lnbiB3YXMgbm90IHN0cmFpZ2h0Zm9yd2FyZCBmcm9tIGVu ZCB1c2VyIHBlcnNwZWN0aXZlLg0KPiANCkkgd291bGQgbGlrZSB0byBjaGFuZ2UgIm11bHRpcGxl IGV4ZWN1dGlvbiIgdG8gIm9uZSBhZGRpdGlvbmFsIGV4ZWN1dGlvbiIgDQoNCj4gVGhpcyBwYXRj aCBlbmhhbmNlcyB0aGUgdGVzdCBieSBsZXZlcmFnaW5nIFJlY292ZXJ5TGliIHRvIHJlc3RvcmUg ZXhlY3V0aW9uDQo+IGFmdGVyIHJlc2V0IGF1dG9tYXRpY2FsbHksIHRodXMgcmVxdWlyaW5nIG9u bHkgb25lIGV4ZWN1dGlvbiINCj4gDQpJIGFtIG9rIHdpdGggdGhpcyBzdWdnZXN0aW9uIHdoZW4g SSBwdXNoIHRoZSBjb2RlIHRvIHJlcG8NCg0KPiBNb3JlIGNvbW1lbnRzIGlubGluZS4uLg0KPiAN Cj4gPg0KPiA+IENjOiBTdXByZWV0aCBWZW5rYXRlc2ggPHN1cHJlZXRoLnZlbmthdGVzaEBhcm0u Y29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6IEVyaWMgSmluIDxlcmljLmppbkBpbnRlbC5jb20+DQo+ ID4gLS0tDQo+ID4gIHVlZmktDQo+ID4gc2N0L1NjdFBrZy9UZXN0Q2FzZS9VRUZJL0VGSS9Cb290 U2VydmljZXMvSW1hZ2VTZXJ2aWNlcy9CbGFja0JveFRlc3QvDQo+ID4gSW1hZ2VCQlRlc3QuaW5m ICAgICAgICAgIHwgIDMgKystDQo+ID4gIHVlZmktDQo+ID4gc2N0L1NjdFBrZy9UZXN0Q2FzZS9V RUZJL0VGSS9Cb290U2VydmljZXMvSW1hZ2VTZXJ2aWNlcy9CbGFja0JveFRlc3QvDQo+ID4gSW1h Z2VCQlRlc3QuaCAgICAgICAgICAgIHwgIDkgKysrKysrKystDQo+ID4gIHVlZmktDQo+ID4gc2N0 L1NjdFBrZy9UZXN0Q2FzZS9VRUZJL0VGSS9Cb290U2VydmljZXMvSW1hZ2VTZXJ2aWNlcy9CbGFj a0JveFRlc3QvDQo+ID4gSW1hZ2VCQlRlc3RDb25mb3JtYW5jZS5jIHwgOTgNCj4gPg0KPiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ ICsrKysrKysrKysrDQo+ID4gKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0NCj4gPiAgMyBm aWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkNCj4gPg0KPiA+ IGRpZmYgLS1naXQgYS91ZWZpLQ0KPiA+IHNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9FRkkvQm9v dFNlcnZpY2VzL0ltYWdlU2VydmljZXMvQmxhY2tCb3hUZXN0Lw0KPiA+IEltYWdlQkJUZXN0Lmlu ZiBiL3VlZmktDQo+ID4gc2N0L1NjdFBrZy9UZXN0Q2FzZS9VRUZJL0VGSS9Cb290U2VydmljZXMv SW1hZ2VTZXJ2aWNlcy9CbGFja0JveFRlc3QvDQo+ID4gSW1hZ2VCQlRlc3QuaW5mDQo+ID4gaW5k ZXggNDlhZDc5OTE1OTM0Li4zZGU0M2EyMGU4YTQgMTAwNjQ0DQo+ID4gLS0tIGEvdWVmaS0NCj4g PiBzY3QvU2N0UGtnL1Rlc3RDYXNlL1VFRkkvRUZJL0Jvb3RTZXJ2aWNlcy9JbWFnZVNlcnZpY2Vz L0JsYWNrQm94VGVzdC8NCj4gPiBJbWFnZUJCVGVzdC5pbmYNCj4gPiArKysgYi91ZWZpLQ0KPiA+ IHNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9FRkkvQm9vdFNlcnZpY2VzL0ltYWdlU2VydmljZXMv QmxhY2tCb3hUZXN0Lw0KPiA+IEltYWdlQkJUZXN0LmluZg0KPiA+IEBAIC0xLDcgKzEsNyBAQA0K PiA+ICAjIyBAZmlsZQ0KPiA+ICAjDQo+ID4gICMgIENvcHlyaWdodCAyMDA2IC0gMjAxMiBVbmlm aWVkIEVGSSwgSW5jLjxCUj4gLSMgIENvcHlyaWdodCAoYykgMjAxMA0KPiA+IC0gMjAxMiwgSW50 ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ICsjICBDb3B5cmln aHQgKGMpIDIwMTAgLSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+IHJl c2VydmVkLjxCUj4NCj4gPiAgIw0KPiA+ICAjICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBh bnlpbmcgbWF0ZXJpYWxzICAjICBhcmUgbGljZW5zZWQgYW5kDQo+ID4gbWFkZSBhdmFpbGFibGUg dW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgTGljZW5zZSBAQA0KPiA+ IC01Myw0ICs1Myw1IEBADQo+ID4NCj4gPiAgW1Byb3RvY29sc10NCj4gPiAgICBnRWZpVGVzdFBy b2ZpbGVMaWJyYXJ5R3VpZA0KPiA+ICsgIGdFZmlUZXN0UmVjb3ZlcnlMaWJyYXJ5R3VpZA0KPiA+ ICAgIGdCbGFja0JveEVmaUhJSVBhY2thZ2VMaXN0UHJvdG9jb2xHdWlkDQo+ID4gZGlmZiAtLWdp dCBhL3VlZmktDQo+ID4gc2N0L1NjdFBrZy9UZXN0Q2FzZS9VRUZJL0VGSS9Cb290U2VydmljZXMv SW1hZ2VTZXJ2aWNlcy9CbGFja0JveFRlc3QvDQo+ID4gSW1hZ2VCQlRlc3QuaCBiL3VlZmktDQo+ ID4gc2N0L1NjdFBrZy9UZXN0Q2FzZS9VRUZJL0VGSS9Cb290U2VydmljZXMvSW1hZ2VTZXJ2aWNl cy9CbGFja0JveFRlc3QvDQo+ID4gSW1hZ2VCQlRlc3QuaA0KPiA+IGluZGV4IGIxYzM1ZmVlNzQz NS4uMDA4NTg0NTc3ZWQxIDEwMDY0NA0KPiA+IC0tLSBhL3VlZmktDQo+ID4gc2N0L1NjdFBrZy9U ZXN0Q2FzZS9VRUZJL0VGSS9Cb290U2VydmljZXMvSW1hZ2VTZXJ2aWNlcy9CbGFja0JveFRlc3Qv DQo+ID4gSW1hZ2VCQlRlc3QuaA0KPiA+ICsrKyBiL3VlZmktDQo+ID4gc2N0L1NjdFBrZy9UZXN0 Q2FzZS9VRUZJL0VGSS9Cb290U2VydmljZXMvSW1hZ2VTZXJ2aWNlcy9CbGFja0JveFRlc3QvDQo+ ID4gSW1hZ2VCQlRlc3QuaA0KPiA+IEBAIC0xLDcgKzEsNyBAQA0KPiA+ICAvKiogQGZpbGUNCj4g Pg0KPiA+ICAgIENvcHlyaWdodCAyMDA2IC0gMjAxNyBVbmlmaWVkIEVGSSwgSW5jLjxCUj4NCj4g PiAtICBDb3B5cmlnaHQgKGMpIDIwMTAgLSAyMDE3LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp Z2h0cw0KPiA+IHJlc2VydmVkLjxCUj4NCj4gPiArICBDb3B5cmlnaHQgKGMpIDIwMTAgLSAyMDE5 LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+IHJlc2VydmVkLjxCUj4NCj4gPg0K PiA+ICAgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gPiAg ICBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29u ZGl0aW9ucyBvZg0KPiA+IHRoZSBCU0QgTGljZW5zZSBAQCAtMzUsNiArMzUsMTMgQEAgQWJzdHJh Y3Q6DQo+ID4gICNpbmNsdWRlIEVGSV9QUk9UT0NPTF9ERUZJTklUSU9OIChMb2FkRmlsZSkNCj4g Pg0KPiA+ICAjaW5jbHVkZSBFRklfVEVTVF9QUk9UT0NPTF9ERUZJTklUSU9OIChUZXN0UHJvZmls ZUxpYnJhcnkpDQo+ID4gKyNpbmNsdWRlIEVGSV9URVNUX1BST1RPQ09MX0RFRklOSVRJT04gKFRl c3RSZWNvdmVyeUxpYnJhcnkpDQo+ID4gKw0KPiA+ICt0eXBlZGVmIHN0cnVjdCBfUkVTRVRfREFU QSB7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgIFN0ZXA7DQo+ID4gKyAgVUlOVE4gICAgICAgICAg IFRwbEluZGV4Ow0KPiA+ICsgIFVJTlQzMiAgICAgICAgICBSZXBlYXRUaW1lczsNCj4gPiArfSBS RVNFVF9EQVRBOw0KPiA+DQo+ID4gICNpZiAoRUZJX1NQRUNJRklDQVRJT05fVkVSU0lPTiA+PSAw eDAwMDIwMDBBKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL3VlZmktDQo+ID4gc2N0L1NjdFBrZy9U ZXN0Q2FzZS9VRUZJL0VGSS9Cb290U2VydmljZXMvSW1hZ2VTZXJ2aWNlcy9CbGFja0JveFRlc3Qv DQo+ID4gSW1hZ2VCQlRlc3RDb25mb3JtYW5jZS5jIGIvdWVmaS0NCj4gPiBzY3QvU2N0UGtnL1Rl c3RDYXNlL1VFRkkvRUZJL0Jvb3RTZXJ2aWNlcy9JbWFnZVNlcnZpY2VzL0JsYWNrQm94VGVzdC8N Cj4gPiBJbWFnZUJCVGVzdENvbmZvcm1hbmNlLmMNCj4gPiBpbmRleCAwYTI2ZDQ2ODQ3ZGEuLmU5 MGFmZTdlY2FlMCAxMDA2NDQNCj4gPiAtLS0gYS91ZWZpLQ0KPiA+IHNjdC9TY3RQa2cvVGVzdENh c2UvVUVGSS9FRkkvQm9vdFNlcnZpY2VzL0ltYWdlU2VydmljZXMvQmxhY2tCb3hUZXN0Lw0KPiA+ IEltYWdlQkJUZXN0Q29uZm9ybWFuY2UuYw0KPiA+ICsrKyBiL3VlZmktDQo+ID4gc2N0L1NjdFBr Zy9UZXN0Q2FzZS9VRUZJL0VGSS9Cb290U2VydmljZXMvSW1hZ2VTZXJ2aWNlcy9CbGFja0JveFRl c3QvDQo+ID4gSW1hZ2VCQlRlc3RDb25mb3JtYW5jZS5jDQo+ID4gQEAgLTEsNyArMSw3IEBADQo+ ID4gIC8qKiBAZmlsZQ0KPiA+DQo+ID4gICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE2IFVuaWZpZWQg RUZJLCBJbmMuPEJSPg0KPiA+IC0gIENvcHlyaWdodCAoYykgMjAxMCAtIDIwMTYsIEludGVsIENv cnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4gcmVzZXJ2ZWQuPEJSPg0KPiA+ICsgIENvcHlyaWdo dCAoYykgMjAxMCAtIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4gcmVz ZXJ2ZWQuPEJSPg0KPiA+DQo+ID4gICAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5n IG1hdGVyaWFscw0KPiA+ICAgIGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIg dGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mDQo+ID4gdGhlIEJTRCBMaWNlbnNlIEBAIC0zMCw3 ICszMCw4IEBAIEFic3RyYWN0Og0KPiA+ICAjZGVmaW5lIFRFU1RfVkVORE9SMV9HVUlEICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCj4gPiAgICB7IDB4RjZGQUIwNEYsIDB4QUNBRiwgMHg0YWYz LCB7IDB4QjksIDB4RkEsIDB4REMsIDB4RjksIDB4N0YsIDB4QjQsDQo+ID4gMHg0MiwgMHg2RiB9 IH0NCj4gPg0KPiA+IC0jZGVmaW5lIE1BWF9CVUZGRVJfU0laRSAgMTANCj4gPiArI2RlZmluZSBT VEFUVVNfQlVGRkVSX1NJWkUgICA4DQo+IFdoeSBpcyB0aGUgc2l6ZSBiZWluZyByZWR1Y2VkIGJ5 IDIgYnl0ZXM/DQo+IFdhcyB0aGUgZWFybGllciBzaXplIG5vdCBvcHRpbWFsPw0KDQpUaGUgYnVm ZmVyIGhlcmUgaXMgdG8gc2F2ZSB0aGUgcmV0dXJuZWQgc3RhdHVzIGNvZGUgZnJvbSBFeGl0Qm9v dFNlcnZpY2VzKCksIHNvIDggYnl0ZXMgaXMgZW5vdWdoIHdpdGggVUVGSSBTcGVjJ3MgcGVyY2Vw dGl2ZS4gDQoNCj4gDQo+ID4gKyNkZWZpbmUgUkVDT1ZFUl9CVUZGRVJfU0laRSAgMTAyNA0KPiA+ DQo+ID4gIEVGSV9HVUlEIGdUZXN0VmVuZG9yMUd1aWQgPSBURVNUX1ZFTkRPUjFfR1VJRDsNCj4g Pg0KPiA+IEBAIC03NzgsMTkgKzc3OSwyMyBAQCBCQlRlc3RFeGl0Qm9vdFNlcnZpY2VzQ29uc2lz dGVuY3lUZXN0ICgNCj4gPiAgICApDQo+ID4gIHsNCj4gPiAgICBFRklfU1RBTkRBUkRfVEVTVF9M SUJSQVJZX1BST1RPQ09MICAgKlN0YW5kYXJkTGliOw0KPiA+ICsgIEVGSV9URVNUX1JFQ09WRVJZ X0xJQlJBUllfUFJPVE9DT0wgICAqUmVjb3ZlcnlMaWI7DQo+ID4gICAgRUZJX1NUQVRVUyAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0YXR1czsNCj4gPiAgICBFRklfVEVTVF9BU1NFUlRJT04g ICAgICAgICAgICAgICAgICAgQXNzZXJ0aW9uVHlwZTsNCj4gPiAgICBVSU5UTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTWFwS2V5Ow0KPiA+IC0NCj4gPiArICBVSU5UTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU2l6ZTsNCj4gPiAgICBVSU5UTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTnVtYmVyczsNCj4gPiAgICBVSU5UTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRGF0YVNpemU7DQo+ID4gLSAgVUlOVDggICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERhdGFbTUFYX0JVRkZFUl9TSVpFXTsNCj4gPiArICBSRVNFVF9EQVRBICAg ICAgICAgICAgICAgICAgICAgICAgICAgKlJlc2V0RGF0YTsNCj4gPiArICBVSU5UOCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRGF0YVtTVEFUVVNfQlVGRkVSX1NJWkVdOw0KPiA+ICsg IFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXJbUkVDT1ZFUl9CVUZG RVJfU0laRV07DQo+ID4gICAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVyblN0YXR1czsNCj4gPg0KPiA+ICAgIC8vDQo+ID4gICAgLy8gSW5pdA0KPiA+ICAgIC8vDQo+ ID4gICAgU3RhbmRhcmRMaWIgPSBOVUxMOw0KPiA+ICsgIFJlY292ZXJ5TGliID0gTlVMTDsNCj4g Pg0KPiA+ICAgIC8vDQo+ID4gICAgLy8gR2V0IHRoZSBTdGFuZGFyZCBMaWJyYXJ5IEludGVyZmFj ZSBAQCAtODAzLDYgKzgwOCwxNCBAQA0KPiA+IEJCVGVzdEV4aXRCb290U2VydmljZXNDb25zaXN0 ZW5jeVRlc3QgKA0KPiA+ICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPiAgICB9DQo+ID4NCj4gPiAr ICBTdGF0dXMgPSBndEJTLT5IYW5kbGVQcm90b2NvbCAoDQo+ID4gKyAgICAgICAgICAgICAgICAg ICBTdXBwb3J0SGFuZGxlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgJmdFZmlUZXN0UmVjb3Zl cnlMaWJyYXJ5R3VpZCwNCj4gPiArICAgICAgICAgICAgICAgICAgIChWT0lEICoqKSAmUmVjb3Zl cnlMaWIpOyAgaWYgKEVGSV9FUlJPUihTdGF0dXMpKSB7DQo+ID4gKyAgICByZXR1cm4gU3RhdHVz Ow0KPiA+ICsgIH0NCj4gPiArDQo+ID4gICAgU3RhdHVzID0gSW1hZ2VUZXN0Q2hlY2tGb3JDbGVh bkVudmlyb25tZW50ICgmTnVtYmVycyk7DQo+ID4gICAgaWYgKEVGSV9FUlJPUihTdGF0dXMpKSB7 DQo+ID4gICAgICBTdGFuZGFyZExpYi0+UmVjb3JkQXNzZXJ0aW9uICgNCj4gPiBAQCAtODE5LDI1 ICs4MzIsODAgQEAgQkJUZXN0RXhpdEJvb3RTZXJ2aWNlc0NvbnNpc3RlbmN5VGVzdCAoDQo+ID4g ICAgICByZXR1cm4gU3RhdHVzOw0KPiA+ICAgIH0NCj4gPg0KPiA+IC0gIERhdGFTaXplID0gTUFY X0JVRkZFUl9TSVpFOw0KPiA+IC0gIFN0YXR1cyA9IGd0UlQtPkdldFZhcmlhYmxlICgNCj4gPiAt ICAgICAgICAgICAgICAgICBMIkV4aXRCb290U2VydmljZXNUZXN0VmFyaWFibGUiLCAgICAgICAg ICAgICAvLw0KPiA+IFZhcmlhYmxlTmFtZQ0KPiA+IC0gICAgICAgICAgICAgICAgICZnVGVzdFZl bmRvcjFHdWlkLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vDQo+ID4gVmVuZG9yR3VpZA0K PiA+IC0gICAgICAgICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vDQo+ID4gQXR0cmlidXRlcw0KPiA+IC0gICAgICAgICAgICAgICAgICZEYXRh U2l6ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vDQo+ID4gRGF0YVNpemUN Cj4gPiAtICAgICAgICAgICAgICAgICAmUmV0dXJuU3RhdHVzICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLw0KPiA+IERhdGENCj4gPiAtICAgICAgICAgICAgICAgICApOw0KPiA+ICsg IC8vDQo+ID4gKyAgLy8gUmVhZCByZXNldCByZWNvcmQNCj4gPiArICAvLw0KPiA+ICsgIFN0YXR1 cyA9IFJlY292ZXJ5TGliLT5SZWFkUmVzZXRSZWNvcmQgKA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgIFJlY292ZXJ5TGliLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICZT aXplLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcg0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICk7DQo+IFN0YXR1cyBzaG91bGQgYmUgY2hlY2tlZCBiZWZvcmUg cHJvY2VlZGluZyBmdXJ0aGVyLiBVbmhhbmRsZWQgZXJyb3INCj4gY29uZGl0aW9uLg0KDQpUaGUg Y29kZSBuZWVkbid0IGhhbmRsZSBwb3NzaWJsZSBlcnJvciBzdGF0dXMgaGVyZSwgYW5kIGl0IHdp bGwgYmUgaGFuZGxlZCBpbiB0aGUganVkZ2VtZW50IHN0YXRlbWVudCBsYXRlci4NCkluIGZhY3Qs IEVycm9yIHN0YXR1cyBjb2RlIGRvZXNuJ3QgbWVhbiBiYWQsIGp1c3QgbWVhbnMgbm8gcmVjb3Zl cnkgZGF0YSBleGlzdHMgdGhpcyB0aW1lL2lzIHdyaXR0ZW4gYmVmb3JlLg0KDQo+IA0KPiA+ICsg IFJlc2V0RGF0YSA9IChSRVNFVF9EQVRBICopQnVmZmVyOw0KPiBCZWZvcmUgaW5pdGlhbGl6aW5n LCBzaXplIGNoZWNrIHNob3VsZCBiZSBwZXJmb3JtZWQuDQo+IFVuaGFuZGxlZCBlcnJvciBjb25k aXRpb24uDQoNClNpemUgaXMgY2hlY2tlZCBpbiB0aGUganVkZ2VtZW50IHN0YXRlbWVudCBsYXRl ciwgdGhlIHNhbWUgdGltZSBhcyB0aGUgc3RhdHVzIGNoZWNrLg0KSW5pdGlhbGl6aW5nIGhlcmUg ZG9lc24ndCBoYXZlIGlzc3VlIGJlY2F1c2UgdGhlIEJ1ZmZlciBpcyBsb2NhbCBidWYgYWxyZWFk eSBkZWZpbmVkL2FsbG9jYXRlZCBpbiB0aGlzIGZ1bmN0aW9uLiAgDQoNCj4gDQo+ID4NCj4gPiAt ICBpZiAoU3RhdHVzID09IEVGSV9TVUNDRVNTKSB7DQo+ID4gKyAgaWYgKEVGSV9FUlJPUihTdGF0 dXMpIHx8IChTaXplIDwgc2l6ZW9mKFJFU0VUX0RBVEEpKSkgew0KPiA+ICsgICAgLy8NCj4gPiAr ICAgIC8vIFN0ZXAgMQ0KPiA+ICsgICAgLy8NCj4gVGhpcyBjaGVjayBpcyB1bm5lY2Vzc2FyeSBp ZiB0aGUgYWJvdmUgY29tbWVudHMgcmVnYXJkaW5nIHVuaGFuZGxlZCBlcnJvcg0KPiBjb25kaXRp b24gYXJlIHJlc29sdmVkLg0KDQpIZXJlLCB0aGUgY29kZSBuZWVkbid0IGhhbmRsZSBhbnl0aGlu Zy4gSXQgbWVhbnMgbm8gcmVjb3ZlcnkgZGF0YSBpcyBmb3VuZC4NCkJ1dCBJIHdvdWxkIGxpa2Ug dG8gYWRqdXN0IHRoZSBjb21tZW50IHRvICdTdGVwIDAnIGFuZCBhZGQgIiBubyByZWNvdmVyeSBk YXRhIGlzIGZvdW5kICIgdG8gbWFrZSBpdCBjbGVhci4NCkNvcnJlc3BvbmRpbmdseSwgYWRqdXN0 IHRoZSBjb21tZW50ICdTdGVwIDInIGluIGp1ZGdlbWVudCBicmFuY2ggYmVsb3cgdG8gJ1N0ZXAg MSwgcmVjb3ZlcnkgZGF0YSBpcyBmb3VuZCcuDQoNCj4gDQo+ID4gKyAgfSBlbHNlIGlmIChSZXNl dERhdGEtPlN0ZXAgPT0gMSkgew0KPiA+ICsgICAgLy8NCj4gPiArICAgIC8vIFN0ZXAgMg0KPiA+ ICsgICAgLy8NCj4gPiArICAgIERhdGFTaXplID0gU1RBVFVTX0JVRkZFUl9TSVpFOw0KPiA+ICsg ICAgU3RhdHVzICAgPSBndFJULT5HZXRWYXJpYWJsZSAoDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgTCJFeGl0Qm9vdFNlcnZpY2VzVGVzdFZhcmlhYmxlIiwNCj4gPiAvLyBWYXJpYWJsZU5h bWUNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAmZ1Rlc3RWZW5kb3IxR3VpZCwNCj4gPiAv LyBWZW5kb3JHdWlkDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gPiAvLyBB dHRyaWJ1dGVzDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgJkRhdGFTaXplLA0KPiA+IC8v IERhdGFTaXplDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgJlJldHVyblN0YXR1cw0KPiA+ IC8vIERhdGENCj4gPiArICAgICAgICAgICAgICAgICAgICAgICApOw0KPiA+ICsNCj4gPiArICAg IGlmIChFRklfRVJST1IoU3RhdHVzKSkgew0KPiA+ICsgICAgICBTdGFuZGFyZExpYi0+UmVjb3Jk QXNzZXJ0aW9uICgNCj4gPiArICAgICAgICAgICAgICAgICAgICAgU3RhbmRhcmRMaWIsDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgIEVGSV9URVNUX0FTU0VSVElPTl9GQUlMRUQsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgIGdUZXN0R2VuZXJpY0ZhaWx1cmVHdWlkLA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICBMIkdldFZhcmlhYmxlIC0gQ2FuJ3QgZ2V0IHRoZSB0ZXN0IHZhcmlhYmxl IC0NCj4gPiBFeGl0Qm9vdFNlcnZpY2VzVGVzdFZhcmlhYmxlIiwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgTCIlYTolZDpTdGF0dXMgLSAlciIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg IF9fRklMRV9fLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAoVUlOVE4pX19MSU5FX18sDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgIFN0YXR1cw0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICApOw0KPiA+ICsgICAgICByZXR1cm4gU3RhdHVzOw0KPiA+ICsgICAgfQ0KPiA+ICAgICAgZ290 byBDaGVja1Jlc3VsdDsNCj4gPiArICB9IGVsc2Ugew0KPiA+ICsgICAgcmV0dXJuIEVGSV9MT0FE X0VSUk9SOw0KPiA+ICAgIH0NCj4gPg0KPiA+ICAgIC8vDQo+ID4gICAgLy8gUHJpbnQgb3V0IHNv bWUgaW5mb3JtYXRpb24gdG8gYXZvaWQgdGhlIHVzZXIgdGhvdWdodCBpdCBpcyBhbg0KPiA+IGVy cm9yDQo+ID4gICAgLy8NCj4gPiAtICBTY3RQcmludCAoTCJTeXN0ZW0gd2lsbCBjb2xkIHJlc2V0 IGFmdGVyIDIgc2Vjb25kLiBwbGVhc2UgcnVuIHRoaXMNCj4gPiB0ZXN0IGFnYWluLi4uIik7DQo+ ID4gKyAgU2N0UHJpbnQgKEwiU3lzdGVtIHdpbGwgY29sZCByZXNldCBhZnRlciAyIHNlY29uZCBh bmQgdGVzdCB3aWxsIGJlDQo+ID4gcmVzdW1lZCBhZnRlciByZWJvb3QuIik7DQo+ID4gICAgZ3RC Uy0+U3RhbGwgKDIwMDAwMDApOw0KPiA+DQo+ID4gKw0KPiA+ICsgIFJlc2V0RGF0YS0+U3RlcCA9 IDE7DQo+ID4gKyAgUmVzZXREYXRhLT5UcGxJbmRleCA9IDA7DQo+ID4gKyAgU3RhdHVzID0gUmVj b3ZlcnlMaWItPldyaXRlUmVzZXRSZWNvcmQgKA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmVjb3ZlcnlMaWIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl b2YgKFJFU0VUX0RBVEEpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVy DQo+IFRvIG1ha2UgaXQgIGNsZWFyIGl0IHNob3VsZCBiZSAoVUlOVDggKilSZXNldERhdGEuDQo+ IEFzIEJ1ZmZlciBpcyBvZiBzaXplIDEwMjQsIHdoZXJlIGFzIFJlc2V0RGF0YSBpcyBub3QuDQo+ IGkuZS4sIEJ1ZmZlciBzaG91bGQgYmUgdXNlZCBhYm92ZS4NCj4gDQpJIGFncmVlIG9uIHRoaXMg c3VnZ2VzdGlvbi4gV2lsbCBmb2xsb3cgd2hlbiBjb21taXQgdGhpcyBwYXRjaCB0byByZXBvLg0K DQpCZXN0IFJlZ2FyZHMNCkVyaWMNCg0KPiANCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICk7DQo+ID4gKyAgaWYgKEVGSV9FUlJPUihTdGF0dXMpKSB7DQo+ID4gKyAgICBTdGFuZGFy ZExpYi0+UmVjb3JkQXNzZXJ0aW9uICgNCj4gPiArICAgICAgICAgICAgICAgICAgIFN0YW5kYXJk TGliLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgRUZJX1RFU1RfQVNTRVJUSU9OX0ZBSUxFRCwN Cj4gPiArICAgICAgICAgICAgICAgICAgIGdUZXN0R2VuZXJpY0ZhaWx1cmVHdWlkLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgTCJUZXN0UmVjb3ZlcnlMaWIgLSBXcml0ZVJlc2V0UmVjb3JkIiwN Cj4gPiArICAgICAgICAgICAgICAgICAgIEwiJWE6JWQ6U3RhdHVzIC0gJXIiLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgX19GSUxFX18sDQo+ID4gKyAgICAgICAgICAgICAgICAgICAoVUlOVE4p X19MSU5FX18sDQo+ID4gKyAgICAgICAgICAgICAgICAgICBTdGF0dXMNCj4gPiArICAgICAgICAg ICAgICAgICAgICk7DQo+ID4gKyAgICByZXR1cm4gU3RhdHVzOw0KPiA+ICsgIH0NCj4gPiArDQo+ ID4gKw0KPiA+ICAgIC8vDQo+ID4gICAgLy8gQ2hlY2twb2ludCAxOg0KPiA+ICAgIC8vIDMuNS4y LjEgIEV4aXRCb290U2VydmljZXMgc2hvdWxkIG5vdCBzdWNjZWVkIHdpdGggYW4gaW52YWxpZA0K PiA+IE1hcEtleSBAQCAtODg1LDcgKzk1Myw3IEBAIEJCVGVzdEV4aXRCb290U2VydmljZXNDb25z aXN0ZW5jeVRlc3QgKA0KPiA+ICAgIC8vcmVzZXQgc3lzdGVtDQo+ID4gICAgZ3RSVC0+UmVzZXRT eXN0ZW0gKEVmaVJlc2V0Q29sZCwgRUZJX1NVQ0NFU1MsIDAsIE5VTEwpOw0KPiA+DQo+ID4gLSAg Ly8gZ2V0IHZhciB0byBnZXQgdGhlIHN0YXR1cw0KPiA+ICsNCj4gPiAgQ2hlY2tSZXN1bHQ6DQo+ ID4NCj4gPiAgICBpZiAoUmV0dXJuU3RhdHVzID09IEVGSV9JTlZBTElEX1BBUkFNRVRFUikgew0K PiANCj4gDQo+IA0KDQo=