From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: ray.ni@intel.com) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by groups.io with SMTP; Wed, 18 Sep 2019 12:02:01 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Sep 2019 12:02:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,521,1559545200"; d="scan'208";a="191807773" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga006.jf.intel.com with ESMTP; 18 Sep 2019 12:02:00 -0700 Received: from fmsmsx121.amr.corp.intel.com (10.18.125.36) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 18 Sep 2019 12:02:00 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by fmsmsx121.amr.corp.intel.com (10.18.125.36) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 18 Sep 2019 12:02:00 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.32]) by shsmsx102.ccr.corp.intel.com ([169.254.2.113]) with mapi id 14.03.0439.000; Thu, 19 Sep 2019 03:01:58 +0800 From: "Ni, Ray" To: "devel@edk2.groups.io" , "Justen, Jordan L" , "Gao, Liming" CC: "Johnson, Michael" , Andrew Fish Subject: Re: [edk2-devel] [Patch] EmulatorPkg/TimerLib: Add missing GetTimeInNanoSecond function Thread-Topic: [edk2-devel] [Patch] EmulatorPkg/TimerLib: Add missing GetTimeInNanoSecond function Thread-Index: AQHVbfknfv0Egak2Dk6z6q6nzGnIgqcxQpSAgACIeRA= Date: Wed, 18 Sep 2019 19:01:57 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5C2E6ED1@SHSMSX104.ccr.corp.intel.com> References: <1568794434-8720-1-git-send-email-liming.gao@intel.com> <156883279082.11974.1191200603714358108@jljusten-skl> In-Reply-To: <156883279082.11974.1191200603714358108@jljusten-skl> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZjE2OWMyOWQtNWE0OS00YWExLWJmM2EtNzc2OTc5N2M4OTJhIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoidktXemZQSE5MUzFROVZ5XC9zb3BUMGJzRWo4aER1UUF1b1IrVzJsM0hhXC9xeWE3QmpHVlhOdk85OGdpSU0xaFF1In0= 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: ray.ni@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCg0KPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5n cm91cHMuaW8+IE9uIEJlaGFsZiBPZiBKb3JkYW4gSnVzdGVuDQo+IFNlbnQ6IFdlZG5lc2RheSwg U2VwdGVtYmVyIDE4LCAyMDE5IDExOjUzIEFNDQo+IFRvOiBHYW8sIExpbWluZyA8bGltaW5nLmdh b0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogSm9obnNvbiwgTWljaGFl bCA8bWljaGFlbC5qb2huc29uQGludGVsLmNvbT47IEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5j b20+OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsNCj4gSm9obnNvbg0KPiBTdWJqZWN0OiBS ZTogW2VkazItZGV2ZWxdIFtQYXRjaF0gRW11bGF0b3JQa2cvVGltZXJMaWI6IEFkZCBtaXNzaW5n IEdldFRpbWVJbk5hbm9TZWNvbmQgZnVuY3Rpb24NCj4gDQo+IE9uIDIwMTktMDktMTggMDE6MTM6 NTQsIExpbWluZyBHYW8gd3JvdGU6DQo+ID4gRnJvbTogbWpvaG40IDxtaWNoYWVsLmpvaG5zb25A aW50ZWwuY29tPg0KPiANCj4gSXQgbG9va3MgbGlrZSB0aGUgYXV0aG9yIGlzIG5vdCBzZXQgcHJv cGVybHkuIElmIHlvdSBydW4gImdpdCBsb2cgLTEiLA0KPiB0aGVuIGl0J2xsIHByb2JhYmx5IHNo b3cgbWpvaG40IHJhdGhlciB0aGFuIE1pY2hhZWwgSm9obnNvbi4NCj4gDQo+IE1pY2hhZWwgc2hv dWxkIHJ1bjoNCj4gDQo+ICQgZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgIk1pY2hhZWwg Sm9obnNvbiINCj4gDQo+IEFmdGVyIHRoYXQgd2hlbiBnaXQgY29tbWl0IGl0IHdpbGwgZ2V0IHRo ZSBjb3JyZWN0IGF1dGhvciBuYW1lIGluIHRoZQ0KPiBwYXRjaC4NCj4gDQo+IE1pY2hhZWwsIExp bWluZzogWW91IGNhbiBhZGp1c3QgaXQgbG9jYWxseSB3aXRoOg0KPiANCj4gZ2l0IGNvbW1pdCAt LWFtZW5kIC0tYXV0aG9yPSJNaWNoYWVsIEpvaG5zb24gPG1pY2hhZWwuam9obnNvbkBpbnRlbC5j b20+Ig0KPiANCj4gPg0KPiA+IEFkZCBHZXRUaW1lSW5OYW5vU2Vjb25kLCBhbHJlYWR5IGRlY2xh cmVkIGluIHRoZSBUaW1lckxpYiBBUEksDQo+ID4gdG8gRW11bGF0b3JQa2cgaW1wbGVtZW50YXRp b25zIG9mIFRpbWVyTGliLg0KPiA+DQo+ID4gQ2M6IEpvcmRhbiBKdXN0ZW4gPGpvcmRhbi5sLmp1 c3RlbkBpbnRlbC5jb20+DQo+ID4gQ2M6IEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+DQo+ ID4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBKb2hu c29uLCBNaWNoYWVsIDxtaWNoYWVsLmpvaG5zb25AaW50ZWwuY29tPg0KPiANCj4gVG8gYmUgYSB2 YWxpZCBlbWFpbCBhZGRyZXNzLCBJIHRoaW5rIHRoaXMgc2hvdWxkIGVpdGhlciBiZToNCj4gDQo+ IFNpZ25lZC1vZmYtYnk6ICJKb2huc29uLCBNaWNoYWVsIiA8bWljaGFlbC5qb2huc29uQGludGVs LmNvbT4NCj4gDQo+IG9yDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEpvaG5zb24gPG1p Y2hhZWwuam9obnNvbkBpbnRlbC5jb20+DQo+IA0KPiBUaGUgc2Vjb25kIGZvcm0gaXMgbW9yZSBj b21tb24uDQo+IA0KPiBJZiB1c2VyLm5hbWUgd2FzIHNldCBhcyBhYm92ZSB0aGVuICJnaXQgY29t bWl0IC1zIiB3b3VsZCBhZGQgaXQgdG8gdGhlDQo+IHBhdGNoIGF1dG9tYXRpY2FsbHksIGFuZCBj b3JyZWN0bHkuDQo+IA0KPiBBc2lkZSBmcm9tIGFsbCB0aGF0LCBpdCBzZWVtcyBsaWtlIHRoZSBj b2RlIG1hdGNoZXMgb3RoZXINCj4gaW1wbGVtZW50YXRpb25zIGluIGVkazIsIHNvOg0KPiANCj4g UmV2aWV3ZWQtYnk6IEpvcmRhbiBKdXN0ZW4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+DQo+ IA0KPiA+IC0tLQ0KPiA+ICAuLi4vTGlicmFyeS9EeGVDb3JlVGltZXJMaWIvRHhlQ29yZVRpbWVy TGliLmMgICAgICB8IDQ1ICsrKysrKysrKysrKysrKysrKysrLQ0KPiA+ICBFbXVsYXRvclBrZy9M aWJyYXJ5L0R4ZVRpbWVyTGliL0R4ZVRpbWVyTGliLmMgICAgICB8IDQ1ICsrKysrKysrKysrKysr KysrKysrLQ0KPiA+ICBFbXVsYXRvclBrZy9MaWJyYXJ5L1BlaVRpbWVyTGliL1BlaVRpbWVyTGli LmMgICAgICB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKy0NCj4gPiAgMyBmaWxlcyBjaGFuZ2Vk LCAxMzQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQg YS9FbXVsYXRvclBrZy9MaWJyYXJ5L0R4ZUNvcmVUaW1lckxpYi9EeGVDb3JlVGltZXJMaWIuYw0K PiBiL0VtdWxhdG9yUGtnL0xpYnJhcnkvRHhlQ29yZVRpbWVyTGliL0R4ZUNvcmVUaW1lckxpYi5j DQo+ID4gaW5kZXggYzMzMWNiYmE5Yy4uYWIwZGUxNDNjNCAxMDA2NDQNCj4gPiAtLS0gYS9FbXVs YXRvclBrZy9MaWJyYXJ5L0R4ZUNvcmVUaW1lckxpYi9EeGVDb3JlVGltZXJMaWIuYw0KPiA+ICsr KyBiL0VtdWxhdG9yUGtnL0xpYnJhcnkvRHhlQ29yZVRpbWVyTGliL0R4ZUNvcmVUaW1lckxpYi5j DQo+ID4gQEAgLTEsMTIgKzEsMTMgQEANCj4gPiAgLyoqIEBmaWxlDQo+ID4gICAgQSBub24tZnVu Y3Rpb25hbCBpbnN0YW5jZSBvZiB0aGUgVGltZXIgTGlicmFyeS4NCj4gPg0KPiA+IC0gIENvcHly aWdodCAoYykgMjAwNyAtIDIwMTAsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLjxCUj4NCj4gPiArICBDb3B5cmlnaHQgKGMpIDIwMDcgLSAyMDE5LCBJbnRlbCBDb3Jwb3Jh dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gICAgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPg0KPiA+ICAqKi8NCj4gPg0KPiA+ICAjaW5j bHVkZSA8UGlQZWkuaD4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvQmFzZUxpYi5oPg0KPiA+ICAj aW5jbHVkZSA8TGlicmFyeS9UaW1lckxpYi5oPg0KPiA+ICAjaW5jbHVkZSA8TGlicmFyeS9EZWJ1 Z0xpYi5oPg0KPiA+ICAjaW5jbHVkZSA8TGlicmFyeS9FbXVUaHVua0xpYi5oPg0KPiA+IEBAIC0x MTksNCArMTIwLDQ2IEBAIEdldFBlcmZvcm1hbmNlQ291bnRlclByb3BlcnRpZXMgKA0KPiA+ICAg IHJldHVybiBnRW11VGh1bmstPlF1ZXJ5UGVyZm9ybWFuY2VGcmVxdWVuY3kgKCk7DQo+ID4gIH0N Cj4gPg0KPiA+ICsvKioNCj4gPiArICBDb252ZXJ0cyBlbGFwc2VkIHRpY2tzIG9mIHBlcmZvcm1h bmNlIGNvdW50ZXIgdG8gdGltZSBpbiBuYW5vc2Vjb25kcy4NCj4gPiArDQo+ID4gKyAgVGhpcyBm dW5jdGlvbiBjb252ZXJ0cyB0aGUgZWxhcHNlZCB0aWNrcyBvZiBydW5uaW5nIHBlcmZvcm1hbmNl IGNvdW50ZXIgdG8NCj4gPiArICB0aW1lIHZhbHVlIGluIHVuaXQgb2YgbmFub3NlY29uZHMuDQo+ ID4gKw0KPiA+ICsgIEBwYXJhbSAgVGlja3MgICAgIFRoZSBudW1iZXIgb2YgZWxhcHNlZCB0aWNr cyBvZiBydW5uaW5nIHBlcmZvcm1hbmNlIGNvdW50ZXIuDQo+ID4gKw0KPiA+ICsgIEByZXR1cm4g VGhlIGVsYXBzZWQgdGltZSBpbiBuYW5vc2Vjb25kcy4NCj4gPiArDQo+ID4gKyoqLw0KPiA+ICtV SU5UNjQNCj4gPiArRUZJQVBJDQo+ID4gK0dldFRpbWVJbk5hbm9TZWNvbmQgKA0KPiA+ICsgIElO IFVJTlQ2NCAgVGlja3MNCj4gPiArICApDQo+ID4gK3sNCj4gPiArICBVSU5UNjQgIEZyZXF1ZW5j eTsNCj4gPiArICBVSU5UNjQgIE5hbm9TZWNvbmRzOw0KPiA+ICsgIFVJTlQ2NCAgUmVtYWluZGVy Ow0KPiA+ICsgIElOVE4gICAgU2hpZnQ7DQo+ID4gKw0KPiA+ICsgIEZyZXF1ZW5jeSA9IEdldFBl cmZvcm1hbmNlQ291bnRlclByb3BlcnRpZXMgKE5VTEwsIE5VTEwpOw0KPiA+ICsNCj4gPiArICAv Lw0KPiA+ICsgIC8vICAgICAgICAgIFRpY2tzDQo+ID4gKyAgLy8gVGltZSA9IC0tLS0tLS0tLSB4 IDEsMDAwLDAwMCwwMDANCj4gPiArICAvLyAgICAgICAgRnJlcXVlbmN5DQo+ID4gKyAgLy8NCj4g PiArICBOYW5vU2Vjb25kcyA9IE11bHRVNjR4MzIgKERpdlU2NHg2NFJlbWFpbmRlciAoVGlja3Ms IEZyZXF1ZW5jeSwgJlJlbWFpbmRlciksIDEwMDAwMDAwMDB1KTsNCj4gPiArDQo+ID4gKyAgLy8N Cj4gPiArICAvLyBFbnN1cmUgKFJlbWFpbmRlciAqIDEsMDAwLDAwMCwwMDApIHdpbGwgbm90IG92 ZXJmbG93IDY0LWJpdC4NCj4gPiArICAvLyBTaW5jZSAyXjI5IDwgMSwwMDAsMDAwLDAwMCA9IDB4 M0I5QUNBMDAgPCAyXjMwLCBSZW1haW5kZXIgc2hvdWxkIDwgMl4oNjQtMzApID0gMl4zNCwNCj4g PiArICAvLyBpLmUuIGhpZ2hlc3QgYml0IHNldCBpbiBSZW1haW5kZXIgc2hvdWxkIDw9IDMzLg0K PiA+ICsgIC8vDQo+ID4gKyAgU2hpZnQgPSBNQVggKDAsIEhpZ2hCaXRTZXQ2NCAoUmVtYWluZGVy KSAtIDMzKTsNCj4gPiArICBSZW1haW5kZXIgPSBSU2hpZnRVNjQgKFJlbWFpbmRlciwgKFVJTlRO KSBTaGlmdCk7DQo+ID4gKyAgRnJlcXVlbmN5ID0gUlNoaWZ0VTY0IChGcmVxdWVuY3ksIChVSU5U TikgU2hpZnQpOw0KPiA+ICsgIE5hbm9TZWNvbmRzICs9IERpdlU2NHg2NFJlbWFpbmRlciAoTXVs dFU2NHgzMiAoUmVtYWluZGVyLCAxMDAwMDAwMDAwdSksIEZyZXF1ZW5jeSwgTlVMTCk7DQo+ID4N Cj4gPiArICByZXR1cm4gTmFub1NlY29uZHM7DQo+ID4gK30NCj4gPiBkaWZmIC0tZ2l0IGEvRW11 bGF0b3JQa2cvTGlicmFyeS9EeGVUaW1lckxpYi9EeGVUaW1lckxpYi5jIGIvRW11bGF0b3JQa2cv TGlicmFyeS9EeGVUaW1lckxpYi9EeGVUaW1lckxpYi5jDQo+ID4gaW5kZXggMTRjYWU0MjE0Yy4u MWJiYzllMDE2MiAxMDA2NDQNCj4gPiAtLS0gYS9FbXVsYXRvclBrZy9MaWJyYXJ5L0R4ZVRpbWVy TGliL0R4ZVRpbWVyTGliLmMNCj4gPiArKysgYi9FbXVsYXRvclBrZy9MaWJyYXJ5L0R4ZVRpbWVy TGliL0R4ZVRpbWVyTGliLmMNCj4gPiBAQCAtMSw3ICsxLDcgQEANCj4gPiAgLyoqIEBmaWxlDQo+ ID4gICAgQSBub24tZnVuY3Rpb25hbCBpbnN0YW5jZSBvZiB0aGUgVGltZXIgTGlicmFyeS4NCj4g Pg0KPiA+IC0gIENvcHlyaWdodCAoYykgMjAwNyAtIDIwMTAsIEludGVsIENvcnBvcmF0aW9uLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiArICBDb3B5cmlnaHQgKGMpIDIwMDcgLSAyMDE5 LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gICAgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPg0KPiA+ICAqKi8N Cj4gPiBAQCAtMTk4LDMgKzE5OCw0NiBAQCBEeGVUaW1lckxpYkNvbnN0cnVjdG9yICgNCj4gPiAg ICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ID4gIH0NCj4gPg0KPiA+ICsvKioNCj4gPiArICBDb252 ZXJ0cyBlbGFwc2VkIHRpY2tzIG9mIHBlcmZvcm1hbmNlIGNvdW50ZXIgdG8gdGltZSBpbiBuYW5v c2Vjb25kcy4NCj4gPiArDQo+ID4gKyAgVGhpcyBmdW5jdGlvbiBjb252ZXJ0cyB0aGUgZWxhcHNl ZCB0aWNrcyBvZiBydW5uaW5nIHBlcmZvcm1hbmNlIGNvdW50ZXIgdG8NCj4gPiArICB0aW1lIHZh bHVlIGluIHVuaXQgb2YgbmFub3NlY29uZHMuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbSAgVGlja3Mg ICAgIFRoZSBudW1iZXIgb2YgZWxhcHNlZCB0aWNrcyBvZiBydW5uaW5nIHBlcmZvcm1hbmNlIGNv dW50ZXIuDQo+ID4gKw0KPiA+ICsgIEByZXR1cm4gVGhlIGVsYXBzZWQgdGltZSBpbiBuYW5vc2Vj b25kcy4NCj4gPiArDQo+ID4gKyoqLw0KPiA+ICtVSU5UNjQNCj4gPiArRUZJQVBJDQo+ID4gK0dl dFRpbWVJbk5hbm9TZWNvbmQgKA0KPiA+ICsgIElOIFVJTlQ2NCAgVGlja3MNCj4gPiArICApDQo+ ID4gK3sNCj4gPiArICBVSU5UNjQgIEZyZXF1ZW5jeTsNCj4gPiArICBVSU5UNjQgIE5hbm9TZWNv bmRzOw0KPiA+ICsgIFVJTlQ2NCAgUmVtYWluZGVyOw0KPiA+ICsgIElOVE4gICAgU2hpZnQ7DQo+ ID4gKw0KPiA+ICsgIEZyZXF1ZW5jeSA9IEdldFBlcmZvcm1hbmNlQ291bnRlclByb3BlcnRpZXMg KE5VTEwsIE5VTEwpOw0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vICAgICAgICAgIFRpY2tz DQo+ID4gKyAgLy8gVGltZSA9IC0tLS0tLS0tLSB4IDEsMDAwLDAwMCwwMDANCj4gPiArICAvLyAg ICAgICAgRnJlcXVlbmN5DQo+ID4gKyAgLy8NCj4gPiArICBOYW5vU2Vjb25kcyA9IE11bHRVNjR4 MzIgKERpdlU2NHg2NFJlbWFpbmRlciAoVGlja3MsIEZyZXF1ZW5jeSwgJlJlbWFpbmRlciksIDEw MDAwMDAwMDB1KTsNCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBFbnN1cmUgKFJlbWFpbmRl ciAqIDEsMDAwLDAwMCwwMDApIHdpbGwgbm90IG92ZXJmbG93IDY0LWJpdC4NCj4gPiArICAvLyBT aW5jZSAyXjI5IDwgMSwwMDAsMDAwLDAwMCA9IDB4M0I5QUNBMDAgPCAyXjMwLCBSZW1haW5kZXIg c2hvdWxkIDwgMl4oNjQtMzApID0gMl4zNCwNCj4gPiArICAvLyBpLmUuIGhpZ2hlc3QgYml0IHNl dCBpbiBSZW1haW5kZXIgc2hvdWxkIDw9IDMzLg0KPiA+ICsgIC8vDQo+ID4gKyAgU2hpZnQgPSBN QVggKDAsIEhpZ2hCaXRTZXQ2NCAoUmVtYWluZGVyKSAtIDMzKTsNCj4gPiArICBSZW1haW5kZXIg PSBSU2hpZnRVNjQgKFJlbWFpbmRlciwgKFVJTlROKSBTaGlmdCk7DQo+ID4gKyAgRnJlcXVlbmN5 ID0gUlNoaWZ0VTY0IChGcmVxdWVuY3ksIChVSU5UTikgU2hpZnQpOw0KPiA+ICsgIE5hbm9TZWNv bmRzICs9IERpdlU2NHg2NFJlbWFpbmRlciAoTXVsdFU2NHgzMiAoUmVtYWluZGVyLCAxMDAwMDAw MDAwdSksIEZyZXF1ZW5jeSwgTlVMTCk7DQo+ID4gKw0KPiA+ICsgIHJldHVybiBOYW5vU2Vjb25k czsNCj4gPiArfQ0KPiA+IGRpZmYgLS1naXQgYS9FbXVsYXRvclBrZy9MaWJyYXJ5L1BlaVRpbWVy TGliL1BlaVRpbWVyTGliLmMgYi9FbXVsYXRvclBrZy9MaWJyYXJ5L1BlaVRpbWVyTGliL1BlaVRp bWVyTGliLmMNCj4gPiBpbmRleCBjY2U0NmZiMzY2Li4xMzJhYmIyYzA0IDEwMDY0NA0KPiA+IC0t LSBhL0VtdWxhdG9yUGtnL0xpYnJhcnkvUGVpVGltZXJMaWIvUGVpVGltZXJMaWIuYw0KPiA+ICsr KyBiL0VtdWxhdG9yUGtnL0xpYnJhcnkvUGVpVGltZXJMaWIvUGVpVGltZXJMaWIuYw0KPiA+IEBA IC0xLDEyICsxLDEzIEBADQo+ID4gIC8qKiBAZmlsZQ0KPiA+ICAgIEEgbm9uLWZ1bmN0aW9uYWwg aW5zdGFuY2Ugb2YgdGhlIFRpbWVyIExpYnJhcnkuDQo+ID4NCj4gPiAtICBDb3B5cmlnaHQgKGMp IDIwMDcgLSAyMDEwLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+ID4gKyAgQ29weXJpZ2h0IChjKSAyMDA3IC0gMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFs bCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4NCj4gPiAgKiovDQo+ID4NCj4gPiAgI2luY2x1ZGUgPFBp UGVpLmg+DQo+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VMaWIuaD4NCj4gPiAgI2luY2x1ZGUg PExpYnJhcnkvVGltZXJMaWIuaD4NCj4gPiAgI2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4N Cj4gPiAgI2luY2x1ZGUgPExpYnJhcnkvUGVpU2VydmljZXNMaWIuaD4NCj4gPiBAQCAtMTY2LDMg KzE2Nyw0NyBAQCBHZXRQZXJmb3JtYW5jZUNvdW50ZXJQcm9wZXJ0aWVzICgNCj4gPg0KPiA+ICAg IHJldHVybiAwOw0KPiA+ICB9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBDb252ZXJ0cyBlbGFw c2VkIHRpY2tzIG9mIHBlcmZvcm1hbmNlIGNvdW50ZXIgdG8gdGltZSBpbiBuYW5vc2Vjb25kcy4N Cj4gPiArDQo+ID4gKyAgVGhpcyBmdW5jdGlvbiBjb252ZXJ0cyB0aGUgZWxhcHNlZCB0aWNrcyBv ZiBydW5uaW5nIHBlcmZvcm1hbmNlIGNvdW50ZXIgdG8NCj4gPiArICB0aW1lIHZhbHVlIGluIHVu aXQgb2YgbmFub3NlY29uZHMuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbSAgVGlja3MgICAgIFRoZSBu dW1iZXIgb2YgZWxhcHNlZCB0aWNrcyBvZiBydW5uaW5nIHBlcmZvcm1hbmNlIGNvdW50ZXIuDQo+ ID4gKw0KPiA+ICsgIEByZXR1cm4gVGhlIGVsYXBzZWQgdGltZSBpbiBuYW5vc2Vjb25kcy4NCj4g PiArDQo+ID4gKyoqLw0KPiA+ICtVSU5UNjQNCj4gPiArRUZJQVBJDQo+ID4gK0dldFRpbWVJbk5h bm9TZWNvbmQgKA0KPiA+ICsgIElOIFVJTlQ2NCAgVGlja3MNCj4gPiArICApDQo+ID4gK3sNCj4g PiArICBVSU5UNjQgIEZyZXF1ZW5jeTsNCj4gPiArICBVSU5UNjQgIE5hbm9TZWNvbmRzOw0KPiA+ ICsgIFVJTlQ2NCAgUmVtYWluZGVyOw0KPiA+ICsgIElOVE4gICAgU2hpZnQ7DQo+ID4gKw0KPiA+ ICsgIEZyZXF1ZW5jeSA9IEdldFBlcmZvcm1hbmNlQ291bnRlclByb3BlcnRpZXMgKE5VTEwsIE5V TEwpOw0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vICAgICAgICAgIFRpY2tzDQo+ID4gKyAg Ly8gVGltZSA9IC0tLS0tLS0tLSB4IDEsMDAwLDAwMCwwMDANCj4gPiArICAvLyAgICAgICAgRnJl cXVlbmN5DQo+ID4gKyAgLy8NCj4gPiArICBOYW5vU2Vjb25kcyA9IE11bHRVNjR4MzIgKERpdlU2 NHg2NFJlbWFpbmRlciAoVGlja3MsIEZyZXF1ZW5jeSwgJlJlbWFpbmRlciksIDEwMDAwMDAwMDB1 KTsNCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBFbnN1cmUgKFJlbWFpbmRlciAqIDEsMDAw LDAwMCwwMDApIHdpbGwgbm90IG92ZXJmbG93IDY0LWJpdC4NCj4gPiArICAvLyBTaW5jZSAyXjI5 IDwgMSwwMDAsMDAwLDAwMCA9IDB4M0I5QUNBMDAgPCAyXjMwLCBSZW1haW5kZXIgc2hvdWxkIDwg Ml4oNjQtMzApID0gMl4zNCwNCj4gPiArICAvLyBpLmUuIGhpZ2hlc3QgYml0IHNldCBpbiBSZW1h aW5kZXIgc2hvdWxkIDw9IDMzLg0KPiA+ICsgIC8vDQo+ID4gKyAgU2hpZnQgPSBNQVggKDAsIEhp Z2hCaXRTZXQ2NCAoUmVtYWluZGVyKSAtIDMzKTsNCj4gPiArICBSZW1haW5kZXIgPSBSU2hpZnRV NjQgKFJlbWFpbmRlciwgKFVJTlROKSBTaGlmdCk7DQo+ID4gKyAgRnJlcXVlbmN5ID0gUlNoaWZ0 VTY0IChGcmVxdWVuY3ksIChVSU5UTikgU2hpZnQpOw0KPiA+ICsgIE5hbm9TZWNvbmRzICs9IERp dlU2NHg2NFJlbWFpbmRlciAoTXVsdFU2NHgzMiAoUmVtYWluZGVyLCAxMDAwMDAwMDAwdSksIEZy ZXF1ZW5jeSwgTlVMTCk7DQo+ID4gKw0KPiA+ICsgIHJldHVybiBOYW5vU2Vjb25kczsNCj4gPiAr fQ0KPiA+IC0tDQo+ID4gMi4xMy4wLndpbmRvd3MuMQ0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+IA0K PiANCg0K