From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web11.4067.1579075399337298277 for ; Wed, 15 Jan 2020 00:03:19 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: zhichao.gao@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Jan 2020 00:03:18 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,321,1574150400"; d="scan'208";a="218043725" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga008.jf.intel.com with ESMTP; 15 Jan 2020 00:03:18 -0800 Received: from shsmsx603.ccr.corp.intel.com (10.109.6.143) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 15 Jan 2020 00:03:16 -0800 Received: from shsmsx603.ccr.corp.intel.com (10.109.6.143) by SHSMSX603.ccr.corp.intel.com (10.109.6.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 15 Jan 2020 16:03:14 +0800 Received: from shsmsx603.ccr.corp.intel.com ([10.109.6.143]) by SHSMSX603.ccr.corp.intel.com ([10.109.6.143]) with mapi id 15.01.1713.004; Wed, 15 Jan 2020 16:03:14 +0800 From: "Gao, Zhichao" To: Laszlo Ersek , "devel@edk2.groups.io" CC: "Yao, Jiewen" , "Wang, Jian J" , "Zhang, Chao B" , "Justen, Jordan L" , Ard Biesheuvel , =?utf-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= , Stefan Berger Subject: Re: [edk2-devel] [PATCH 06/13] OvmfPkg/Tcg2PhysicalPresenceLib: Use pcd for user response wait time Thread-Topic: [edk2-devel] [PATCH 06/13] OvmfPkg/Tcg2PhysicalPresenceLib: Use pcd for user response wait time Thread-Index: AQHVwkEGNXeMdD+h5UCt3nCGRejLx6frblLQ Date: Wed, 15 Jan 2020 08:03:14 +0000 Message-ID: References: <20200103030428.28176-1-zhichao.gao@intel.com> <20200103030428.28176-7-zhichao.gao@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.36] MIME-Version: 1.0 Return-Path: zhichao.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGFzemxvLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExhc3ps byBFcnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXQ0KPiBTZW50OiBGcmlkYXksIEphbnVh cnkgMywgMjAyMCAxMDoyMSBQTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IEdhbywgWmhp Y2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPg0KPiBDYzogWWFvLCBKaWV3ZW4gPGppZXdlbi55 YW9AaW50ZWwuY29tPjsgV2FuZywgSmlhbiBKDQo+IDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBa aGFuZywgQ2hhbyBCIDxjaGFvLmIuemhhbmdAaW50ZWwuY29tPjsgSnVzdGVuLA0KPiBKb3JkYW4g TCA8am9yZGFuLmwuanVzdGVuQGludGVsLmNvbT47IEFyZCBCaWVzaGV1dmVsDQo+IDxhcmQuYmll c2hldXZlbEBsaW5hcm8ub3JnPjsgTWFyYy1BbmRyw6kgTHVyZWF1DQo+IDxtYXJjYW5kcmUubHVy ZWF1QHJlZGhhdC5jb20+OyBTdGVmYW4gQmVyZ2VyIDxzdGVmYW5iQGxpbnV4LmlibS5jb20+DQo+ IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIDA2LzEzXSBPdm1mUGtnL1RjZzJQaHlz aWNhbFByZXNlbmNlTGliOg0KPiBVc2UgcGNkIGZvciB1c2VyIHJlc3BvbnNlIHdhaXQgdGltZQ0K PiANCj4gSGVsbG8gWmhpY2hhbywNCj4gDQo+IE9uIDAxLzAzLzIwIDA0OjA0LCBHYW8sIFpoaWNo YW8gd3JvdGU6DQo+ID4gUkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19i dWcuY2dpP2lkPTI0NDMNCj4gPg0KPiA+IFVzZSB0aGUgcGNkIFBjZFBoeXNpY2FsUHJlc2VuY2VV c2VyQ29uZmlybVRpbWVvdXQgdG8gY29udHJvbCB0aGUgd2FpdA0KPiA+IHRpbWUgb2YgdXNlciBy ZXNwb25zZS4NCj4gPg0KPiA+IENjOiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4N Cj4gPiBDYzogSmlhbiBKIFdhbmcgPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gPiBDYzogQ2hh byBaaGFuZyA8Y2hhby5iLnpoYW5nQGludGVsLmNvbT4NCj4gPiBDYzogSm9yZGFuIEp1c3RlbiA8 am9yZGFuLmwuanVzdGVuQGludGVsLmNvbT4NCj4gPiBDYzogTGFzemxvIEVyc2VrIDxsZXJzZWtA cmVkaGF0LmNvbT4NCj4gPiBDYzogQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFy by5vcmc+DQo+ID4gQ2M6IE1hcmMtQW5kcsOpIEx1cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUByZWRo YXQuY29tPg0KPiA+IENjOiBTdGVmYW4gQmVyZ2VyIDxzdGVmYW5iQGxpbnV4LmlibS5jb20+DQo+ ID4gU2lnbmVkLW9mZi1ieTogWmhpY2hhbyBHYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4g PiAtLS0NCj4gPiAgLi4uL0R4ZVRjZzJQaHlzaWNhbFByZXNlbmNlTGliLmMgICAgICAgICAgICAg IHwgNjMgKysrKysrKysrKysrKystLS0tLQ0KPiA+ICAuLi4vRHhlVGNnMlBoeXNpY2FsUHJlc2Vu Y2VMaWIuaW5mICAgICAgICAgICAgfCAgNiArLQ0KPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDUyIGlu c2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdA0KPiA+DQo+ IGEvT3ZtZlBrZy9MaWJyYXJ5L1RjZzJQaHlzaWNhbFByZXNlbmNlTGliUWVtdS9EeGVUY2cyUGh5 c2ljYWxQcmVzZW5jDQo+IGVMDQo+ID4gaWIuYw0KPiA+DQo+IGIvT3ZtZlBrZy9MaWJyYXJ5L1Rj ZzJQaHlzaWNhbFByZXNlbmNlTGliUWVtdS9EeGVUY2cyUGh5c2ljYWxQcmVzZW5jDQo+IGVMDQo+ ID4gaWIuYw0KPiA+IGluZGV4IDAwZDc2YmEyYzIuLjEzZjc4Y2JmYWMgMTAwNjQ0DQo+ID4gLS0t DQo+ID4NCj4gYS9Pdm1mUGtnL0xpYnJhcnkvVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWJRZW11L0R4 ZVRjZzJQaHlzaWNhbFByZXNlbmMNCj4gZUwNCj4gPiBpYi5jDQo+ID4gKysrDQo+IGIvT3ZtZlBr Zy9MaWJyYXJ5L1RjZzJQaHlzaWNhbFByZXNlbmNlTGliUWVtdS9EeGVUY2cyUGh5c2ljYWxQcmVz ZQ0KPiA+ICsrKyBuY2VMaWIuYw0KPiA+IEBAIC05LDcgKzksNyBAQA0KPiA+DQo+ID4gIENvcHly aWdodCAoQykgMjAxOCwgUmVkIEhhdCwgSW5jLg0KPiA+ICBDb3B5cmlnaHQgKGMpIDIwMTgsIElC TSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gLUNvcHlyaWdodCAo YykgMjAxMyAtIDIwMTYsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4gcmVzZXJ2 ZWQuPEJSPg0KPiA+ICtDb3B5cmlnaHQgKGMpIDIwMTMgLSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlv bi4gQWxsIHJpZ2h0cw0KPiA+ICtyZXNlcnZlZC48QlI+DQo+ID4gIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4NCj4gPiAgKiovDQo+ID4gQEAgLTMyLDYg KzMyLDggQEAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4g PiAjaW5jbHVkZSA8TGlicmFyeS9VZWZpQm9vdFNlcnZpY2VzVGFibGVMaWIuaD4NCj4gPiAgI2lu Y2x1ZGUgPExpYnJhcnkvVWVmaUxpYi5oPg0KPiA+ICAjaW5jbHVkZSA8TGlicmFyeS9VZWZpUnVu dGltZVNlcnZpY2VzVGFibGVMaWIuaD4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvVGltZXJMaWIu aD4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvUGNkTGliLmg+DQo+ID4NCj4gPiAgI2luY2x1ZGUg PExpYnJhcnkvVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWIuaD4NCj4gPg0KPiA+IEBAIC0zNjUsMjgg KzM2Nyw1NyBAQCBUY2cyUmVhZFVzZXJLZXkgKCAgew0KPiA+ICAgIEVGSV9TVEFUVVMgICAgICAg ICAgICAgICAgICAgICAgICBTdGF0dXM7DQo+ID4gICAgRUZJX0lOUFVUX0tFWSAgICAgICAgICAg ICAgICAgICAgIEtleTsNCj4gPiAtICBVSU5UMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAg SW5wdXRLZXk7DQo+ID4gKyAgVUlOVDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmZp cm1LZXk7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVydmFs Ow0KPiA+ICsgIElOVDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lb3V0Ow0KPiA+ DQo+ID4gLSAgSW5wdXRLZXkgPSAwOw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gZGVsYXkgMTAwIG1p bGxpLXNlY29uZA0KPiA+ICsgIC8vDQo+ID4gKyAgSW50ZXJ2YWwgICAgPSAxMDA7DQo+ID4gKyAg Q29uZmlybUtleSAgPSAoQ2F1dGlvbktleSkgPyBTQ0FOX0YxMiA6IFNDQU5fRjEwOw0KPiA+ICsg IFRpbWVvdXQgICAgID0gKElOVDY0KVBjZEdldDMyDQo+IChQY2RQaHlzaWNhbFByZXNlbmNlVXNl ckNvbmZpcm1UaW1lb3V0KTsNCj4gPiArICBpZiAoVGltZW91dCA+IDApIHsNCj4gPiArICAgIFRp bWVvdXQgICA9IChJTlQ2NClNdWx0VTY0eDMyICgoVUlOVDY0KVRpbWVvdXQsIDEwMDApOw0KPiA+ ICsgIH0gZWxzZSB7DQo+ID4gKyAgICAvLw0KPiA+ICsgICAgLy8gV2FpdCBmb3JldmVyDQo+ID4g KyAgICAvLw0KPiA+ICsgICAgVGltZW91dCAgID0gTUFYX0lOVDY0Ow0KPiA+ICsgIH0NCj4gPiAr DQo+ID4gKyAgLy8NCj4gPiArICAvLyBXYWl0IGZvciB1c2VyIHJlc3BvbnNlIHdpdGhpbiB0aGUg dGltZS1vdXQgIC8vDQo+ID4gICAgZG8gew0KPiA+ICsgICAgTWljcm9TZWNvbmREZWxheSAoSW50 ZXJ2YWwgKiAxMDAwKTsNCj4gPiArDQo+ID4gICAgICBTdGF0dXMgPSBnQlMtPkNoZWNrRXZlbnQg KGdTVC0+Q29uSW4tPldhaXRGb3JLZXkpOw0KPiA+ICAgICAgaWYgKCFFRklfRVJST1IgKFN0YXR1 cykpIHsNCj4gPiAgICAgICAgU3RhdHVzID0gZ1NULT5Db25Jbi0+UmVhZEtleVN0cm9rZSAoZ1NU LT5Db25JbiwgJktleSk7DQo+ID4gLSAgICAgIGlmIChLZXkuU2NhbkNvZGUgPT0gU0NBTl9FU0Mp IHsNCj4gPiAtICAgICAgICBJbnB1dEtleSA9IEtleS5TY2FuQ29kZTsNCj4gPiAtICAgICAgfQ0K PiA+IC0gICAgICBpZiAoKEtleS5TY2FuQ29kZSA9PSBTQ0FOX0YxMCkgJiYgIUNhdXRpb25LZXkp IHsNCj4gPiAtICAgICAgICBJbnB1dEtleSA9IEtleS5TY2FuQ29kZTsNCj4gPiAtICAgICAgfQ0K PiA+IC0gICAgICBpZiAoKEtleS5TY2FuQ29kZSA9PSBTQ0FOX0YxMikgJiYgQ2F1dGlvbktleSkg ew0KPiA+IC0gICAgICAgIElucHV0S2V5ID0gS2V5LlNjYW5Db2RlOw0KPiA+ICsgICAgICBpZiAo IUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ICsgICAgICAgIGlmIChLZXkuU2NhbkNvZGUgPT0g Q29uZmlybUtleSkgew0KPiA+ICsgICAgICAgICAgLy8NCj4gPiArICAgICAgICAgIC8vIFVzZXIg Q29uZmlybWF0aW9uDQo+ID4gKyAgICAgICAgICAvLw0KPiA+ICsgICAgICAgICAgcmV0dXJuIFRS VUU7DQo+ID4gKyAgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgICBpZiAoS2V5LlNjYW5Db2Rl ID09IFNDQU5fRVNDKSB7DQo+ID4gKyAgICAgICAgICAvLw0KPiA+ICsgICAgICAgICAgLy8gVXNl ciBSZWplY3Rpb24NCj4gPiArICAgICAgICAgIC8vDQo+ID4gKyAgICAgICAgICByZXR1cm4gRkFM U0U7DQo+ID4gKyAgICAgICAgfQ0KPiA+ICsgICAgICB9IGVsc2UgaWYgKFN0YXR1cyA9PSBFRklf REVWSUNFX0VSUk9SKSB7DQo+ID4gKyAgICAgICAgLy8NCj4gPiArICAgICAgICAvLyBJZiBlcnJv ciwgYXNzdW1lIFVzZXIgUmVqZWN0aW9uDQo+ID4gKyAgICAgICAgLy8NCj4gPiArICAgICAgICBy ZXR1cm4gRkFMU0U7DQo+ID4gICAgICAgIH0NCj4gPiAgICAgIH0NCj4gPiAtICB9IHdoaWxlIChJ bnB1dEtleSA9PSAwKTsNCj4gPiAtDQo+ID4gLSAgaWYgKElucHV0S2V5ICE9IFNDQU5fRVNDKSB7 DQo+ID4gLSAgICByZXR1cm4gVFJVRTsNCj4gPiAtICB9DQo+ID4gKyAgICBUaW1lb3V0IC09IElu dGVydmFsOw0KPiA+ICsgIH0gd2hpbGUgKFRpbWVvdXQgPiAwKTsNCj4gPg0KPiA+ICAgIHJldHVy biBGQUxTRTsNCj4gPiAgfQ0KPiANCj4gKDEpIEkgZG9uJ3QgdW5kZXJzdGFuZCB3aHkgdGhlIG9y aWdpbmFsIChwcmUtcGF0Y2gpIGNvZGUgdXNlcw0KPiBDaGVja0V2ZW50KCkgaW4gYSBidXN5IGxv b3AuIFdhaXRGb3JFdmVudCgpIGxvb2tzIGxpa2UgYSBiZXR0ZXIgKG1vcmUNCj4gcmVzb3VyY2Ut Y29uc2VydmF0aXZlKSBvcHRpb24uDQo+IA0KPiBEb2VzIHRoZSBvcmlnaW5hbCBjb2RlIHVzZSBD aGVja0V2ZW50KCkgYmVjYXVzZSBXYWl0Rm9yRXZlbnQoKSBpcyByZXN0cmljdGVkDQo+IHRvIFRQ TF9BUFBMSUNBVElPTj8NCj4gDQo+IEkgZG9uJ3QgdGhpbmsgdGhhdCBiZWluZyByZXN0cmljdGVk IHRvIFRQTF9BUFBMSUNBVElPTiBzaG91bGQgYmUgYSBwcm9ibGVtLg0KPiBBcyBmYXIgYXMgSSBj YW4gdGVsbCwgdGhlIG9ubHkgY2FsbCBwYXRoIHRvIFRjZzJSZWFkVXNlcktleSgpIGlzOg0KPiAN Cj4gICBUY2cyUGh5c2ljYWxQcmVzZW5jZUxpYlByb2Nlc3NSZXF1ZXN0KCkNCj4gICAgIFRjZzJF eGVjdXRlUGVuZGluZ1RwbVJlcXVlc3QoKQ0KPiAgICAgICBUY2cyVXNlckNvbmZpcm0oKQ0KPiAg ICAgICAgIFRjZzJSZWFkVXNlcktleSgpDQo+IA0KPiBJbiB0dXJuLCBUY2cyUGh5c2ljYWxQcmVz ZW5jZUxpYlByb2Nlc3NSZXF1ZXN0KCkgaXMgc3VwcG9zZWQgdG8gYmUgY2FsbGVkDQo+IGZyb20g UGxhdGZvcm1Cb290TWFuYWdlckxpYiwgd2hpY2ggaW4gdHVybiBpcyBjYWxsZWQgZnJvbSBCZHNE eGUuDQo+IFRoZXJlZm9yZSBJIHRoaW5rIHdlIGNhbiBzYWZlbHkgYXNzdW1lIFRQTF9BUFBMSUNB VElPTi4NCj4gDQo+IEkgdGhpbmsgd2Ugc2hvdWxkIGFkZCBhIHNlcGFyYXRlIHBhdGNoIGZpcnN0 LCBmb3IgcmV3cml0aW5nIHRoZSBwcmVzZW50IGxvZ2ljIG9mDQo+IFRjZzJSZWFkVXNlcktleSgp IHdpdGggV2FpdEZvckV2ZW50KCkgLS0gcmVtb3ZlIHRoZSBidXN5IGxvb3AuDQo+IA0KPiANCj4g KDIpIE9uY2Ugd2UgdXNlIFdhaXRGb3JFdmVudCgpLCBpdCBpcyBlYXNpZXIgYW5kIG1vcmUgZWxl Z2FudCB0byB1c2UgYSB0aW1lcg0KPiBldmVudCwgaW4gYWRkaXRpb24gdG8gImdTVC0+Q29uSW4t PldhaXRGb3JLZXkiLCB0byBsaW1pdCB0aGUgd2FpdGluZyBmb3IgYQ0KPiBrZXlwcmVzcy4NCj4g DQo+IEZvciBleGFtcGxlLCB0aGUgQmRzV2FpdEZvclNpbmdsZUV2ZW50KCkgZnVuY3Rpb24gaW4N Cj4gIk1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQmRzRHhlL0Jkc0VudHJ5LmMiIGlzIHVzZWQgZm9y IGltcGxlbWVudGluZyBhDQo+IHRpbWVkIHdhaXQgZm9yIGEgaG90a2V5LCBpZiBJIHVuZGVyc3Rh bmQgY29ycmVjdGx5Lg0KPiANCj4gDQo+ICgzKSBJIHRoaW5rIHRoYXQgdGhlIFRjZzJSZWFkVXNl cktleSgpIGZ1bmN0aW9uIHNob3VsZCB0YWtlIHRoZSB0aW1lb3V0DQo+IHBhcmFtZXRlciwgYW5k IHRoZSBQQ0Qgc2hvdWxkIGJlIGNvbnN1bWVkIGluIHRoZSBUY2cyVXNlckNvbmZpcm0oKQ0KPiBm dW5jdGlvbiBpbnN0ZWFkLiBUY2cyVXNlckNvbmZpcm0oKSBzaG91bGQgcGFzcyB0aGUgdmFsdWUg b2YgdGhlIFBDRCB0bw0KPiBUY2cyUmVhZFVzZXJLZXkoKS4NCj4gDQo+IFRoZSBQQ0QgaXMgY2Fs bGVkICJQY2RQaHlzaWNhbFByZXNlbmNlVXNlckNvbmZpcm1UaW1lb3V0IiwgdGhlcmVmb3JlIGl0 DQo+IHNlZW1zIG1vcmUgY2xvc2VseSB0aWVkIHRvIHRoZSBUY2cyVXNlckNvbmZpcm0oKSBmdW5j dGlvbiwgaW4gcHVycG9zZS4NCj4gVGhlIFRjZzJSZWFkVXNlcktleSgpIGZ1bmN0aW9uIHNlZW1z IHRvIGJlIGEgZ2VuZXJhbCB1dGlsaXR5IGZ1bmN0aW9uLCBzbyBpdA0KPiBzaG91bGQgdGFrZSBh IHBhcmFtZXRlciwgcmF0aGVyIHRoYW4gZmV0Y2ggYSBwYXJ0aWN1bGFyIFBDRC4NCj4gDQo+IA0K PiAoNCkgVGhlIGNvbW1lbnQgYmxvY2sgb24gdGhlIFRjZzJSZWFkVXNlcktleSgpIGZ1bmN0aW9u IHNob3VsZCBiZQ0KPiB1cGRhdGVkLg0KDQpUaGFua3MgZm9yIHRoZSBzdWdnZXN0aW9uLiBJdCBt YXkgbWFrZSBzZW5zZSB0byBhZGp1c3QgdGhlIHJlYWQga2V5IGxvZ2ljLg0KTGV0IG1lIHdvcmsg b3V0IHRoZSBwYXRjaCBhbmQgZG8gc29tZSB0ZXN0IG9mIGl0LiBUaGUgZnVuY3Rpb24gaXMgaW50 ZXJuYWwsIGl0IGlzIGZpbmUgdG8gY2hhbmdlIGl0IGFuZCB3b24ndCBhZmZlY3QgYW55IG90aGVy IGludGVyZmFjZS4NCg0KPiANCj4gDQo+ICg1KSBQbGVhc2UgbWFrZSBzdXJlIHRoYXQgeW91IGZv cm1hdCB0aGUgcGF0Y2hlcyBuZXh0IHRpbWUgd2l0aCB0aGUNCj4gIi0tc3RhdD0xMDAwIC0tc3Rh dC1ncmFwaC13aWR0aD0yMCIgb3B0aW9ucy4gVGhlIHBhdGhuYW1lcyBvZiB0aGUgZmlsZXMgdGhh dA0KPiBhcmUgbW9kaWZpZWQgYnkgdGhpcyBwYXRjaCBzZXQgYXJlIHZlcnkgbG9uZywgYW5kIHRo ZXkgYXJlIHRydW5jYXRlZCBpbiB0aGUNCj4gZGlmZnN0YXRzLiBUaGF0IHdheSwgdGhlIGRpZmZz dGF0IGlzIG5vdCBoZWxwZnVsLg0KPiANCj4gVGhlICJCYXNlVG9vbHMvU2NyaXB0cy9TZXR1cEdp dC5weSIgc2NyaXB0IGNhbiBhdXRvbWF0ZSBhdCBsZWFzdCB0aGUgIi0tc3RhdC0NCj4gZ3JhcGgt d2lkdGg9MjAiIG9wdGlvbiBmb3IgeW91Lg0KPiANCg0KRmluZS4gV2lsbCBkbyB0aGF0Lg0KDQo+ IA0KPiAoNikgV2hlbiBwb3N0aW5nIHNldmVyYWwgcGF0Y2hlcywgb3IgbGFyZ2UgcGF0Y2hlcywg aXQgaXMgaGVscGZ1bCBmb3IgcmV2aWV3ZXJzDQo+IGlmIHlvdSBhbHNvIHB1c2ggeW91ciB0b3Bp YyBicmFuY2ggdG8geW91ciBsb2NhbCByZXBvLCBhbmQgZXhwb3NlIHRoZQ0KPiBjb3JyZXNwb25k aW5nIFVSTCAvIGJyYW5jaCBuYW1lIGluIHRoZSBjb3ZlciBsZXR0ZXIuIFNvbWUgcGF0Y2hlcyBh cmUNCj4gZWFzaWVyIHRvIHJldmlldyBsb2NhbGx5IChhZnRlciBhIGdpdC1mZXRjaCBmcm9tIHlv dXIgcmVwbykuDQoNClRoYW5rcyBmb3IgdGhlIHN1Z2dlc3Rpb24uIFdvdWxkIGZvbGxvdyB0aGF0 IGlmIEkgd29yayBvbiBhIGJpZyBwYXRjaC4NCg0KPiANCj4gDQo+ICg3KSBJIGRvbid0IGtub3cg d2hhdCBoYXBwZW5lZCwgYnV0IEkgY2FuIHNlZSBvbmx5IHBhdGNoIzAgYW5kIHBhdGNoIzYNCj4g ZnJvbSB0aGlzIHNlcmllcyBpbiBteSBsaXN0IGZvbGRlci4gVGhlcmUgYXJlIG11bHRpcGxlIGxp YiBpbnN0YW5jZXMgYmVpbmcNCj4gbW9kaWZpZWQsIGFuZCBJIGNvdWxkbid0IGNvbXBhcmUgdGhl IGNoYW5nZXMgYmV0d2VlbiB0aG9zZS4NCg0KSSB3b3VsZCBzZXBhcmF0ZSB0aGUgcGF0Y2ggaW50 byBzaW1wbGUgb25lcy4gVGhlIHVzZXIgY29uZmlybSBjaGFuZ2UgaXMgaW5kZXBlbmRlbnQgYW5k IGl0IHdvdWxkIGJlIGEgc2ltcGxlIHBhdGNoIGxhdGVyLg0KDQpUaGFua3MsDQpaaGljaGFvDQoN Cj4gDQo+IFRoYW5rcw0KPiBMYXN6bG8NCj4gDQo+IA0KPiA+IGRpZmYgLS1naXQNCj4gPg0KPiBh L092bWZQa2cvTGlicmFyeS9UY2cyUGh5c2ljYWxQcmVzZW5jZUxpYlFlbXUvRHhlVGNnMlBoeXNp Y2FsUHJlc2VuYw0KPiBlTA0KPiA+IGliLmluZg0KPiA+DQo+IGIvT3ZtZlBrZy9MaWJyYXJ5L1Rj ZzJQaHlzaWNhbFByZXNlbmNlTGliUWVtdS9EeGVUY2cyUGh5c2ljYWxQcmVzZW5jDQo+IGVMDQo+ ID4gaWIuaW5mDQo+ID4gaW5kZXggODVjZTBlMmIyOS4uNzAxZGUxODM2YyAxMDA2NDQNCj4gPiAt LS0NCj4gPg0KPiBhL092bWZQa2cvTGlicmFyeS9UY2cyUGh5c2ljYWxQcmVzZW5jZUxpYlFlbXUv RHhlVGNnMlBoeXNpY2FsUHJlc2VuYw0KPiBlTA0KPiA+IGliLmluZg0KPiA+ICsrKw0KPiBiL092 bWZQa2cvTGlicmFyeS9UY2cyUGh5c2ljYWxQcmVzZW5jZUxpYlFlbXUvRHhlVGNnMlBoeXNpY2Fs UHJlc2UNCj4gPiArKysgbmNlTGliLmluZg0KPiA+IEBAIC0yMCw3ICsyMCw3IEBADQo+ID4gICMg IFRoaXMgZXh0ZXJuYWwgaW5wdXQgbXVzdCBiZSB2YWxpZGF0ZWQgY2FyZWZ1bGx5IHRvIGF2b2lk IHNlY3VyaXR5IGlzc3VlLg0KPiA+ICAjDQo+ID4gICMgQ29weXJpZ2h0IChDKSAyMDE4LCBSZWQg SGF0LCBJbmMuDQo+ID4gLSMgQ29weXJpZ2h0IChjKSAyMDEzIC0gMjAxOCwgSW50ZWwgQ29ycG9y YXRpb24uIEFsbCByaWdodHMNCj4gPiByZXNlcnZlZC48QlI+DQo+ID4gKyMgQ29weXJpZ2h0IChj KSAyMDEzIC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiArcmVzZXJ2 ZWQuPEJSPg0KPiA+ICAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50ICAjICAjIyBAQCAtNjIsMTANCj4gPiArNjIsMTQgQEANCj4gPiAgICBVZWZpQm9vdFNlcnZp Y2VzVGFibGVMaWINCj4gPiAgICBVZWZpTGliDQo+ID4gICAgVWVmaVJ1bnRpbWVTZXJ2aWNlc1Rh YmxlTGliDQo+ID4gKyAgVGltZXJMaWINCj4gPg0KPiA+ICBbUHJvdG9jb2xzXQ0KPiA+ICAgIGdF ZmlUY2cyUHJvdG9jb2xHdWlkICAgICAgICAgICAgICAgICAjIyBTT01FVElNRVNfQ09OU1VNRVMN Cj4gPg0KPiA+ICtbUGNkXQ0KPiA+ICsNCj4gZ0VmaVNlY3VyaXR5UGtnVG9rZW5TcGFjZUd1aWQu UGNkUGh5c2ljYWxQcmVzZW5jZVVzZXJDb25maXJtVGltZW91dA0KPiA+ICsNCj4gPiAgW0d1aWRz XQ0KPiA+ICAgICMjIFNPTUVUSU1FU19DT05TVU1FUyAjIyBISUkNCj4gPiAgICBnRWZpVGNnMlBo eXNpY2FsUHJlc2VuY2VHdWlkDQo+ID4NCg0K