From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C2CDA41DAB; Wed, 1 Mar 2023 14:32:05 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A38F44114A; Wed, 1 Mar 2023 14:32:05 +0100 (CET) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 0F03C4113C for ; Wed, 1 Mar 2023 14:32:04 +0100 (CET) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Subject: RE: [RFC 0/2] Add high-performance timer facility Date: Wed, 1 Mar 2023 14:31:59 +0100 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D8779D@smartserver.smartshare.dk> In-Reply-To: <284a38c7-7f0d-8aab-e054-4e8c0b8274aa@ericsson.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [RFC 0/2] Add high-performance timer facility Thread-Index: AQHZS1lW6P727zp9A0KQywOAZmHOZK7khRMAgAFDU4CAAAOj8A== References: <20230228093916.87206-1-mattias.ronnblom@ericsson.com> <98CBD80474FA8B44BF855DF32C47DC35D87797@smartserver.smartshare.dk> <284a38c7-7f0d-8aab-e054-4e8c0b8274aa@ericsson.com> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , Cc: "Erik Gabriel Carrillo" , "David Marchand" , "Maria Lingemark" , "Stefan Sundkvist" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org PiBGcm9tOiBNYXR0aWFzIFLDtm5uYmxvbSBbbWFpbHRvOm1hdHRpYXMucm9ubmJsb21AZXJpY3Nz b24uY29tXQ0KPiBTZW50OiBXZWRuZXNkYXksIDEgTWFyY2ggMjAyMyAxMi4xOA0KPiANCj4gT24g MjAyMy0wMi0yOCAxNzowMSwgTW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+ID4+IEZyb206IE1hdHRp YXMgUsO2bm5ibG9tIFttYWlsdG86bWF0dGlhcy5yb25uYmxvbUBlcmljc3Nvbi5jb21dDQo+ID4+ IFNlbnQ6IFR1ZXNkYXksIDI4IEZlYnJ1YXJ5IDIwMjMgMTAuMzkNCj4gPg0KPiA+IEkgaGF2ZSBi ZWVuIGxvb2tpbmcgZm9yIGEgaGlnaCBwZXJmb3JtYW5jZSB0aW1lciBsaWJyYXJ5IChmb3IgdXNl IGluIGEgZmFzdA0KPiBwYXRoIFRDUCBzdGFjayksIGFuZCB0aGlzIGxvb2tzIHZlcnkgdXNlZnVs LCBNYXR0aWFzLg0KPiA+DQo+ID4gTXkgaW5pdGlhbCBmZWVkYmFjayBpcyBiYXNlZCBvbiBxdWlj a2x5IHNraW1taW5nIHRoZSBwYXRjaCBzb3VyY2UgY29kZSwgYW5kDQo+IHJlYWRpbmcgdGhpcyBj b3ZlciBsZXR0ZXIuDQo+ID4NCj4gPj4NCj4gPj4gVGhpcyBwYXRjaHNldCBpcyBhbiBhdHRlbXB0 IHRvIGludHJvZHVjZSBhIGhpZ2gtcGVyZm9ybWFuY2UsIGhpZ2hseQ0KPiA+PiBzY2FsYWJsZSB0 aW1lciBmYWNpbGl0eSBpbnRvIERQREsuDQo+ID4+DQo+ID4+IE1vcmUgc3BlY2lmaWNhbGx5LCB0 aGUgZ29hbHMgZm9yIHRoZSBodGltZXIgbGlicmFyeSBhcmU6DQo+ID4+DQo+ID4+ICogRWZmaWNp ZW50IGhhbmRsaW5nIG9mIGEgaGFuZGZ1bCB1cCB0byBodW5kcmVkcyBvZiB0aG91c2FuZHMgb2YN Cj4gPj4gICAgY29uY3VycmVudCB0aW1lcnMuDQo+ID4+ICogUmVkdWNlZCBvdmVyaGVhZCBvZiBh ZGRpbmcgYW5kIGNhbmNlbGluZyB0aW1lcnMuDQo+ID4+ICogUHJvdmlkZSBhIHNlcnZpY2UgZnVu Y3Rpb25hbGx5IGVxdWl2YWxlbnQgdG8gdGhhdCBvZg0KPiA+PiAgICA8cnRlX3RpbWVyLmg+LiBB UEkvQUJJIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaXMgc2Vjb25kYXJ5Lg0KPiA+Pg0KPiA+PiBJ biB0aGUgYXV0aG9yJ3Mgb3BpbmlvbiwgdGhlcmUgYXJlIHR3byBtYWluIHNob3J0Y29taW5ncyB3 aXRoIHRoZQ0KPiA+PiBjdXJyZW50IERQREsgdGltZXIgbGlicmFyeSAoaS5lLiwgcnRlX3RpbWVy LltjaF0pLg0KPiA+Pg0KPiA+PiBPbmUgaXMgdGhlIHN5bmNocm9uaXphdGlvbiBvdmVyaGVhZCwg d2hlcmUgaGVhdnktd2VpZ2h0IGZ1bGwtYmFycmllcg0KPiA+PiB0eXBlIHN5bmNocm9uaXphdGlv biBpcyB1c2VkLiBydGVfdGltZXIuYyB1c2VzIHBlci1FQUwvbGNvcmUgc2tpcA0KPiA+PiBsaXN0 cywgYnV0IGFueSB0aHJlYWQgbWF5IGFkZCBvciBjYW5jZWwgKG9yIG90aGVyd2lzZSBhY2Nlc3Mp IHRpbWVycw0KPiA+PiBtYW5hZ2VkIGJ5IGFub3RoZXIgbGNvcmUgKGFuZCB0aHVzIHJlc2lkZXMg aW4gaXRzIHRpbWVyIHNraXAgbGlzdCkuDQo+ID4+DQo+ID4+IFRoZSBvdGhlciBpcyBhbiBhbGdv cml0aG1pYyBzaG9ydGNvbWluZywgd2l0aCBydGVfdGltZXIuYydzIHJlbGlhbmNlDQo+ID4+IG9u IGEgc2tpcCBsaXN0LCB3aGljaCwgc2VlbWluZ2x5LCBpcyBsZXNzIGVmZmljaWVudCB0aGFuIGNl cnRhaW4NCj4gPj4gYWx0ZXJuYXRpdmVzLg0KPiA+Pg0KPiA+PiBUaGlzIHBhdGNoc2V0IGltcGxl bWVudHMgYSBoaWVyYXJjaGljYWwgdGltZXIgd2hlZWwgKEhXVCwgaW4NCj4gPg0KPiA+IFR5cG86 IEhXVCBvciBIVFc/DQo+IA0KPiBZZXMuIEkgZG9uJ3QgdW5kZXJzdGFuZCBob3cgSSBjb3VsZCBt YW5hZ2VkIHRvIG1ha2Ugc28gbWFueSBzdWNoIEhUVyAtPg0KPiBIV1QgdHlwb3MuIEF0IGxlYXN0 IEkgZ290IHRoZSBmaWxlbmFtZXMgKHJ0ZV9odHcuW2NoXSkgY29ycmVjdC4NCj4gDQo+ID4NCj4g Pj4gcnRlX2h0dy5jKSwgYXMgcGVyIHRoZSBWYXJnaGVzZSBhbmQgTGF1Y2sgcGFwZXIgIkhhc2hl ZCBhbmQNCj4gPj4gSGllcmFyY2hpY2FsIFRpbWluZyBXaGVlbHM6IERhdGEgU3RydWN0dXJlcyBm b3IgdGhlIEVmZmljaWVudA0KPiA+PiBJbXBsZW1lbnRhdGlvbiBvZiBhIFRpbWVyIEZhY2lsaXR5 Ii4gQSBIV1QgaXMgYSBkYXRhIHN0cnVjdHVyZQ0KPiA+PiBwdXJwb3NlbHkgZGVzaWduIGZvciB0 aGlzIHRhc2ssIGFuZCB1c2VkIGJ5IG1hbnkgb3BlcmF0aW5nIHN5c3RlbQ0KPiA+PiBrZXJuZWwg dGltZXIgZmFjaWxpdGllcy4NCj4gPj4NCj4gPj4gVG8gZnVydGhlciBpbXByb3ZlIHRoZSBzb2x1 dGlvbiBkZXNjcmliZWQgYnkgVmFyZ2hlc2UgYW5kIExhdWNrLCBhDQo+ID4+IGJpdHNldCBpcyBw bGFjZWQgaW4gZnJvbnQgb2YgZWFjaCBvZiB0aGUgdGltZXIgd2hlZWwgaW4gdGhlIEhXVCwNCj4g Pj4gcmVkdWNpbmcgb3ZlcmhlYWQgb2YgcnRlX2h0aW1lcl9tZ3JfbWFuYWdlKCkgKGkuZS4sIHBy b2dyZXNzaW5nIHRpbWUNCj4gPj4gYW5kIGV4cGlyeSBwcm9jZXNzaW5nKS4NCj4gPj4NCj4gPj4g Q3ljbGUtZWZmaWNpZW50IHNjYW5uaW5nIGFuZCBtYW5pcHVsYXRpb24gb2YgdGhlc2UgYml0c2V0 cyBhcmUgY3J1Y2lhbA0KPiA+PiBmb3IgdGhlIEhXVCdzIHBlcmZvcm1hbmNlLg0KPiA+Pg0KPiA+ PiBUaGUgaHRpbWVyIG1vZHVsZSBrZWVwcyBhIHBlci1sY29yZSAob3IgcGVyLXJlZ2lzdGVyZWQg RUFMIHRocmVhZCkgSFdUDQo+ID4+IGluc3RhbmNlLCBtdWNoIGxpa2UgcnRlX3RpbWVyLmMga2Vl cHMgYSBwZXItbGNvcmUgc2tpcCBsaXN0Lg0KPiA+Pg0KPiA+PiBUbyBhdm9pZCBleHBlbnNpdmUg c3luY2hyb25pemF0aW9uIG92ZXJoZWFkIGZvciB0aHJlYWQtbG9jYWwgdGltZXINCj4gPj4gbWFu YWdlbWVudCwgdGhlIEhXVHMgYXJlIGFjY2Vzc2VkIG9ubHkgZnJvbSB0aGUgIm93bmluZyIgdGhy ZWFkLiAgQW55DQo+ID4+IGludGVyYWN0aW9uIGFueSBvdGhlciB0aHJlYWQgaGFzIHdpdGggYSBw YXJ0aWN1bGFyIGxjb3JlJ3MgdGltZXINCj4gPj4gd2hlZWwgZ29lcyBvdmVyIGEgc2V0IG9mIERQ REsgcmluZ3MuIEEgc2lkZS1lZmZlY3Qgb2YgdGhpcyBkZXNpZ24gaXMNCj4gPj4gdGhhdCBhbGwg b3BlcmF0aW9ucyB3b3JraW5nIHRvd2FyZCBhICJyZW1vdGUiIEhXVCBtdXN0IGJlDQo+ID4+IGFz eW5jaHJvbm91cy4NCj4gPj4NCj4gPj4gVGhlIDxydGVfaHRpbWVyLmg+IEFQSSBpcyBhdmFpbGFi bGUgb25seSB0byBFQUwgdGhyZWFkcyBhbmQgcmVnaXN0ZXJlZA0KPiA+PiBub24tRUFMIHRocmVh ZHMuDQo+ID4+DQo+ID4+IFRoZSBodGltZXIgQVBJIGFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8g c3VwcGx5IHRoZSBjdXJyZW50IHRpbWUsDQo+ID4+IHVzZWZ1bCBpbiBjYXNlIGl0IGFscmVhZHkg aGFzIHJldHJpZXZlZCB0aGlzIGZvciBvdGhlciBwdXJwb3NlcywNCj4gPj4gc2F2aW5nIHRoZSBj b3N0IG9mIGEgcmR0c2MgaW5zdHJ1Y3Rpb24gKG9yIGl0cyBlcXVpdmFsZW50KS4NCj4gPj4NCj4g Pj4gUmVsYXRpdmUgaHRpbWVyIGRvZXMgbm90IHJldHJpZXZlIGEgbmV3IHRpbWUsIGJ1dCByZXVz ZSB0aGUgY3VycmVudA0KPiA+PiB0aW1lIChhcyBrbm93biB2aWEvYXQtdGhlLXRpbWUgb2YgdGhl IG1hbmFnZS1jYWxsKSwgYWdhaW4gdG8gc2hhdmUgb2ZmDQo+ID4+IHNvbWUgY3ljbGVzIG9mIG92 ZXJoZWFkLg0KPiA+DQo+ID4gSSBoYXZlIGEgY29tbWVudCB0byB0aGUgdHdvIHBvaW50cyBhYm92 ZS4NCj4gPg0KPiA+IEkgYWdyZWUgdGhhdCB0aGUgYXBwbGljYXRpb24gc2hvdWxkIHN1cHBseSB0 aGUgY3VycmVudCB0aW1lLg0KPiA+DQo+ID4gVGhpcyBzaG91bGQgYmUgdGhlIGNvbmNlcHQgdGhy b3VnaG91dCB0aGUgbGlicmFyeS4gSSBkb24ndCB1bmRlcnN0YW5kIHdoeQ0KPiBUU0MgaXMgdXNl ZCBpbiB0aGUgbGlicmFyeSBhdCBhbGw/DQo+ID4NCj4gPiBQbGVhc2UgdXNlIGEgdW5pdC1sZXNz IHRpY2ssIGFuZCBsZXQgdGhlIGFwcGxpY2F0aW9uIGRlY2lkZSB3aGF0IG9uZSB0aWNrDQo+IG1l YW5zLg0KPiA+DQo+IA0KPiBJIHN1c3BlY3QgdGhlIGRlc2lnbiBvZiBydGVfaHRpbWVyX21nci5o IChhbmQgcnRlX3RpbWVyLmgpIG1ha2VzIG1vcmUNCj4gc2Vuc2UgaWYgeW91IHRoaW5rIG9mIHRo ZSB1c2VyIG9mIHRoZSBBUEkgYXMgbm90IGp1c3QgYSAibW9ub2xpdGhpYyINCj4gYXBwbGljYXRp b24sIGJ1dCByYXRoZXIgYSBzZXQgb2YgZGlmZmVyZW50IG1vZHVsZXMsIGRldmVsb3BlZCBieQ0K PiBkaWZmZXJlbnQgb3JnYW5pemF0aW9ucywgYW5kIHJldXNlZCBhY3Jvc3MgYSBzZXQgb2YgYXBw bGljYXRpb25zLiBUaGUNCj4gaWRlYSBiZWhpbmQgdGhlIEFQSSBkZXNpZ24gaXMgdGhleSBzaG91 bGQgYWxsIGJlIGFibGUgdG8gc2hhcmUgb25lIHRpbWVyDQo+IHNlcnZpY2UgaW5zdGFuY2UuDQo+ IA0KPiBUaGUgZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBhcHBsaWNhdGlvbiBhbmQgYW55IGZ1dHVy ZSBEUERLIHBsYXRmb3JtDQo+IG1vZHVsZXMgdGhhdCB1c2UgdGhlIGh0aW1lciBzZXJ2aWNlIG5l ZWRzIHRvIGFncmVlIHdoYXQgYSB0aWNrIG1lYW5zIGluDQo+IHRlcm1zIG9mIGFjdHVhbCB3YWxs LXRpbWUsIGlmIGl0J3Mgbm90IG1hbmRhdGVkIGJ5IHRoZSBBUEkuDQoNCkkgc2VlLiBUaGVuIHRo b3NlIG5vbi1tb25vbGl0aGljIGFwcGxpY2F0aW9ucyBjYW4gYWdyZWUgdGhhdCB0aGUgdW5pdCBv ZiB0aW1lIGlzIG5hbm9zZWNvbmRzLCBvciB3aGF0ZXZlciBtYWtlcyBzZW5zZSBmb3IgdGhvc2Ug YXBwbGljYXRpb25zLiBBbmQgdGhlbiB0aGV5IGNhbiBpbnN0YW50aWF0ZSBvbmUgc2hhcmVkIEhU VyBmb3IgdGhhdCBwdXJwb3NlLg0KDQpUaGVyZSBpcyBubyBuZWVkIHRvIGltcG9zZSBzdWNoIGFu IEFQSSBsaW1pdCBvbiBvdGhlciB1c2VycyBvZiB0aGUgbGlicmFyeS4NCg0KPiANCj4gVGhlcmUg bWlnaHQgYmUgcm9vbSBmb3IgbW9kdWxlLXNwZWNpZmljIHRpbWVyIHdoZWVscyBhcyB3ZWxsLCB3 aXRoDQo+IGRpZmZlcmVudCByZXNvbHV0aW9uIG9yIG90aGVyIGNoYXJhY3RlcmlzdGljcy4gVGhl IGV2ZW50IHRpbWVyIGFkYXB0ZXIncw0KPiB1c2Ugb2YgYSB0aW1lciB3aGVlbCBjb3VsZCBiZSBv bmUgZXhhbXBsZSAoYWx0aG91Z2ggSSdtIG5vdCBzdXJlIGl0IGlzKS4NCg0KV2UgYXJlIG5vdCB1 c2luZyB0aGUgZXZlbnQgZGV2aWNlLCBhbmQgSSBoYXZlIG5vdCBsb29rZWQgaW50byBpdCwgc28g SSBoYXZlIG5vIHF1YWxpZmllZCBjb21tZW50cyB0byB0aGlzLg0KDQo+IA0KPiBJZiB0aW1lci13 aGVlbC1hcy1hLXByaXZhdGUtbGVnby1waWVjZSBpcyBhbHNvIGEgdmFsaWQgdXNlIGNhc2UsIHRo ZW4NCj4gb25lIGNvdWxkIGNvbnNpZGVyIG1ha2UgdGhlIDxydGVfaHR3Lmg+IEFQSSBwdWJsaWMg YXMgd2VsbC4gVGhhdCBpcyB3aGF0DQo+IEkgdGhpbmsgeW91IGFzIGFza2luZyBmb3IgaGVyZTog YSBnZW5lcmljIHRpbWVyIHdoZWVsIHRoYXQgZG9lc24ndCBrbm93DQo+IGFueXRoaW5nIGFib3V0 IHRpbWUgc291cmNlcywgdGltZSBzb3VyY2UgdGltZSAtPiB0aWNrIGNvbnZlcnNpb24sIG9yDQo+ IHRpbWVyIHNvdXJjZSB0aW1lIC0+IG1vbm90b25pYyB3YWxsIHRpbWUgY29udmVyc2lvbiwgYW5k IG1heWJlIGlzIGFsc28NCj4gbm90IGJvdW5kIHRvIGEgcGFydGljdWxhciB0aHJlYWQuDQoNClll cywgdGhhdCBpcyB3aGF0IEkgaGFkIGJlZW4gc2VhcmNoaW5nIHRoZSBJbnRlcm5ldCBmb3IuDQoN CihJJ20gbm90IHN1cmUgd2hhdCB5b3UgbWVhbiBieSAibm90IGJvdW5kIHRvIGEgcGFydGljdWxh ciB0aHJlYWQiLiBZb3VyIHBlci10aHJlYWQgZGVzaWduIHNlZW1zIGdvb2QgdG8gbWUuKQ0KDQpJ IGRvbid0IHdhbnQgbW9yZSBzdHVmZiBpbiB0aGUgRUFMLiBXaGF0IEkgd2FudCBpcyBoaWdoLXBl cmZvcm1hbmNlIERQREsgbGlicmFyaWVzIHdlIGNhbiB1c2UgaW4gb3VyIGFwcGxpY2F0aW9ucy4N Cg0KPiANCj4gSSBwaWNrZWQgVFNDIGJlY2F1c2UgaXQgc2VlbWVkIGxpa2UgYSBnb29kICJ1bml2 ZXJzYWwgdGltZSB1bml0IiBmb3INCj4gRFBESy4gcmR0c2MgKGFuZCBpdHMgZXF1aXZhbGVudCkg aXMgYWxzbyBhIHZlcnkgcHJlY2lzZSAoZXNwZWNpYWxseSBvbg0KPiB4ODYpIGFuZCBjaGVhcC10 by1yZXRyaWV2ZSAoZXNwZWNpYWxseSBvbiBBUk0sIGZyb20gd2hhdCBJIHVuZGVyc3RhbmQpLg0K DQpUaGUgVFNDIGRvZXMgaGF2ZSBleGNlbGxlbnQgcGVyZm9ybWFuY2UsIGJ1dCBvbiBhbGwgb3Ro ZXIgcGFyYW1ldGVycyBpdCBpcyBhIGhvcnJpYmxlIHRpbWUga2VlcGVyOiBUaGUgbWVhc3VyZW1l bnQgdW5pdCBkZXBlbmRzIG9uIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlLCB0aGUgVFNDIGRyaWZ0 cyBkZXBlbmRpbmcgb24gdGVtcGVyYXR1cmUsIGl0IGNhbm5vdCBiZSBQVFAgc3luY2hyb25pemVk LCB0aGUgbGlzdCBpcyBlbmRsZXNzIQ0KDQo+IA0KPiBUaGF0IHNhaWQsIGF0IHRoZSBtb21lbnQs IEknbSBsZWFuaW5nIHRvd2FyZCBuYW5vc2Vjb25kcyAodWludDY0X3QNCj4gZm9ybWF0KSBzaG91 bGQgYmUgdGhlIGRlZmF1bHQgZm9yIHRpbWVyIGV4cGlyYXRpb24gdGltZSBpbnN0ZWFkIG9mIFRT Qy4NCj4gVFNDIGNvdWxkIHN0aWxsIGJlIGFuIG9wdGlvbiBmb3IgcGFzc2luZyB0aGUgY3VycmVu dCB0aW1lLCBzaW5jZSBUU0MNCj4gd2lsbCBiZSBhIGNvbW1vbiB0aW1lIHNvdXJjZSwgYW5kIGl0 IHNoYXZlcyBvZmYgb25lIGNvbnZlcnNpb24uDQoNClRoZXJlIGFyZSBtYW55IHJlYXNvbnMgd2h5 IG5hbm9zZWNvbmRzIGlzIGEgbXVjaCBiZXR0ZXIgY2hvaWNlIHRoYW4gVFNDLg0KDQo+IA0KPiA+ IEEgdW5pdC1sZXNzIHRpY2sgd2lsbCBhbHNvIGxldCB0aGUgYXBwbGljYXRpb24gaW5zdGFudGlh dGUgYSBIVFcgd2l0aCBoaWdoZXINCj4gcmVzb2x1dGlvbiB0aGFuIHRoZSBUU0MuIChFLmcuIHRo aW5rIGFib3V0IG92ZXJzYW1wbGluZyBpbiBhdWRpbyBwcm9jZXNzaW5nLA0KPiBvciBCcmV6ZW5o YW0ncyBsaW5lIGRyYXdpbmcgYWxnb3JpdGhtIGZvciAyRCB2aXN1YWxzIC0gb3ZlcnNhbXBsaW5n IGNhbiBzb3VuZA0KPiBhbmQgbG9vayBiZXR0ZXIuKQ0KDQpTb21lIG9mIHRoZSB0aW1pbmcgZGF0 YSBpbiBvdXIgYXBwbGljYXRpb24gaGF2ZSBhIHJlc29sdXRpb24gb3JkZXJzIG9mIG1hZ25pdHVk ZSBoaWdoZXIgdGhhbiBvbmUgbmFub3NlY29uZC4gSWYgd2UgY29tYmluZWQgdGhhdCB3aXRoIGEg SFRXIGxpYnJhcnkgd2l0aCBuYW5vc2Vjb25kIHJlc29sdXRpb24sIHdlIHdvdWxkIG5lZWQgdG8g a2VlcCB0aGVzZSB0aW1lciB2YWx1ZXMgaW4gdHdvIGxvY2F0aW9uczogVGhlIG9yaWdpbmFsIGhp Z2gtcmVzIHRpbWVyIGluIG91ciBkYXRhIHN0cnVjdHVyZSwgYW5kIHRoZSBzaGFkb3cgbG93LXJl cyAobmFub3NlY29uZCkgdGltZXIgaW4gdGhlIEhUVy4NCg0KV2UgbWlnaHQgYWxzbyBuZWVkIHRv IGZyZXF1ZW50bHkgdXBkYXRlIHRoZSBIVFcgdGltZXJzIHRvIHByZXZlbnQgZHJpZnRpbmcgYXdh eSBmcm9tIHRoZSBoaWdoLXJlcyB0aW1lcnMuIEUuZy4gMS4yICsgMS4yIGlzIHN0aWxsIDIgd2hl biByb3VuZGVkLCBidXQgKyAxLjIgYmVjb21lcyAzIHdoZW4gaXQgc2hvdWxkIGhhdmUgYmVlbiA0 ICgzICogMS4yID0gMy42KSByb3VuZGVkLiBUaGlzIGxldmVsIG9mIGRyaWZ0aW5nIHdvdWxkIGFs c28gbWFrZSBwZXJpb2RpYyB0aW1lcnMgaW4gdGhlIEhUVyB1c2VsZXNzLg0KDQpQbGVhc2Ugbm90 ZTogSSBoYXZlbid0IHJlYWxseSBjb25zaWRlcmVkIG1lcmdpbmcgdGhlIGhpZ2gtcmVzIHRpbWlu ZyBpbiBvdXIgYXBwbGljYXRpb24gd2l0aCB0aGlzIEhUVywgYW5kIEknbSBhbHNvIG5vdCBzYXlp bmcgdGhhdCBQRVJJT0RJQyB0aW1lcnMgaW4gdGhlIEhUVyBhcmUgcmVxdWlyZWQgb3IgZXZlbiB1 c2VmdWwgZm9yIG91ciBhcHBsaWNhdGlvbi4gSSdtIG9ubHkgcHJvdmlkaW5nIGFyZ3VtZW50cyBm b3IgYSB1bml0LWxlc3MgdGltZSENCg0KPiA+DQo+ID4gRm9yIHJlZmVyZW5jZSAoc3VwcG9ydGlu ZyBteSBzdWdnZXN0aW9uKSwgdGhlIGR5bmFtaWMgdGltZXN0YW1wIGZpZWxkIGluIHRoZQ0KPiBy dGVfbWJ1ZiBzdHJ1Y3R1cmUgaXMgYWxzbyBkZWZpbmVkIGFzIGJlaW5nIHVuaXQtbGVzcy4gKEkg dGhpbmsgTlZJRElBDQo+IGltcGxlbWVudHMgaXQgYXMgbmFub3NlY29uZHMsIGJ1dCB0aGF0J3Mg YW4gaW1wbGVtZW50YXRpb24gc3BlY2lmaWMgY2hvaWNlLikNCj4gPg0KPiA+Pg0KPiA+PiBBIHNl bWFudGljIGltcHJvdmVtZW50IGNvbXBhcmVkIHRvIHRoZSA8cnRlX3RpbWVyLmg+IEFQSSBpcyB0 aGF0IHRoZQ0KPiA+PiBodGltZXIgbGlicmFyeSBjYW4gZ2l2ZSBhIGRlZmluaXRlIGFuc3dlciBv biB0aGUgcXVlc3Rpb24gaWYgdGhlIHRpbWVyDQo+ID4+IGV4cGlyeSBjYWxsYmFjayB3YXMgY2Fs bGVkLCBhZnRlciBhIHRpbWVyIGhhcyBiZWVuIGNhbmNlbGVkLg0KPiA+Pg0KPiA+PiBCZWxvdyBp cyBhIHBlcmZvcm1hbmNlIGRhdGEgZnJvbSBEUERLJ3MgJ2FwcC90ZXN0JyBtaWNybyBiZW5jaG1h cmtzLA0KPiA+PiB1c2luZyAxMGsgY29uY3VycmVudCB0aW1lcnMuIFRoZSBiZW5jaG1hcmtzICh0 ZXN0X3RpbWVyX3BlcmYuYyBhbmQNCj4gPj4gdGVzdF9odGltZXJfbWdyX3BlcmYuYykgYXJlbid0 IGlkZW50aWNhbCBpbiB0aGVpciBzdHJ1Y3R1cmUsIGJ1dCB0aGUNCj4gPj4gbnVtYmVycyBnaXZl IHNvbWUgaW5kaWNhdGlvbiBvZiB0aGUgZGlmZmVyZW5jZS4NCj4gPj4NCj4gPj4gVXNlIGNhc2Ug ICAgICAgICAgICAgICBodGltZXIgIHRpbWVyDQo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPiA+PiBBZGQgdGltZXIgICAgICAgICAgICAgICAgIDI4ICAgIDI1Mw0K PiA+PiBDYW5jZWwgdGltZXIgICAgICAgICAgICAgIDEwICAgIDQxMg0KPiA+PiBBc3luYyBhZGQg KHNvdXJjZSBsY29yZSkgIDY0DQo+ID4+IEFzeW5jIGFkZCAodGFyZ2V0IGxjb3JlKSAgMTMNCj4g Pj4NCj4gPj4gKEFNRCA1OTAwWCBDUFUuIFRpbWUgaW4gVFNDLikNCj4gPj4NCj4gPj4gUHJvdG90 eXBlIGludGVncmF0aW9uIG9mIHRoZSBodGltZXIgbGlicmFyeSBpbnRvIHJlYWwsIHRpbWVyLWhl YXZ5LA0KPiA+PiBhcHBsaWNhdGlvbnMgaW5kaWNhdGVzIHRoYXQgaHRpbWVyIG1heSByZXN1bHQg aW4gc2lnbmlmaWNhbnQNCj4gPj4gYXBwbGljYXRpb24tbGV2ZWwgcGVyZm9ybWFuY2UgZ2FpbnMu DQo+ID4+DQo+ID4+IFRoZSBiaXRzZXQgaW1wbGVtZW50YXRpb24gd2hpY2ggdGhlIEhXVCBpbXBs ZW1lbnRhdGlvbiBkZXBlbmRzIHVwb24NCj4gPj4gc2VlbWVkIGdlbmVyaWMtZW5vdWdoIGFuZCBw b3RlbnRpYWxseSB1c2VmdWwgb3V0c2lkZSB0aGUgd29ybGQgb2YNCj4gPj4gSFdUcywgdG8ganVz dGlmeSBiZWluZyBsb2NhdGVkIGluIHRoZSBFQUwuDQo+ID4+DQo+ID4+IFRoaXMgcGF0Y2hzZXQg aXMgdmVyeSBtdWNoIGFuIFJGQywgYW5kIHRoZSBhdXRob3IgaXMgeWV0IHRvIGZvcm0gYW4NCj4g Pj4gb3BpbmlvbiBvbiBtYW55IGltcG9ydGFudCBpc3N1ZXMuDQo+ID4+DQo+ID4+ICogSWYgZGVl bWVkIGEgc3VpdGFibGUgcmVwbGFjZW1lbnQsIHNob3VsZCB0aGUgaHRpbWVyIHJlcGxhY2UgdGhl DQo+ID4+ICAgIGN1cnJlbnQgRFBESyB0aW1lciBsaWJyYXJ5IGluIHNvbWUgcGFydGljdWxhciAo QUJJLWJyZWFraW5nKQ0KPiA+PiAgICByZWxlYXNlLCBvciBzaG91bGQgaXQgbGl2ZSBzaWRlLWJ5 LXNpZGUgd2l0aCB0aGUgdGhlbi1sZWdhY3kNCj4gPj4gICAgPHJ0ZV90aW1lci5oPiBBUEk/IEEg bG90IG9mIHRoaW5ncyBpbiBhbmQgb3V0c2lkZSBEUERLIGRlcGVuZCBvbg0KPiA+PiAgICA8cnRl X3RpbWVyLmg+LCBzbyBjb2V4aXN0ZW5jZSBtYXkgYmUgcmVxdWlyZWQgdG8gZmFjaWxpdGF0ZSBh IHNtb290aA0KPiA+PiAgICB0cmFuc2l0aW9uLg0KPiA+DQo+ID4gSXQncyBteSBpbW1lZGlhdGUg aW1wcmVzc2lvbiB0aGF0IHRoZXkgYXJlIHRvdGFsbHkgZGlmZmVyZW50IGluIGJvdGggZGVzaWdu DQo+IHBoaWxvc29waHkgYW5kIEFQSS4NCj4gPg0KPiA+IFBlcnNvbmFsIG9waW5pb246IEkgd291 bGQgY2FsbCBpdCBhbiBlbnRpcmVseSBkaWZmZXJlbnQgbGlicmFyeS4NCj4gPg0KPiA+Pg0KPiA+ PiAqIFNob3VsZCB0aGUgaHRpbWVyIGFuZCBodHctcmVsYXRlZCBmaWxlcyBiZSBjb2xvY2F0ZWQg d2l0aCBydGVfdGltZXIuYw0KPiA+PiAgICBpbiB0aGUgdGltZXIgbGlicmFyeT8NCj4gPg0KPiA+ IFBlcnNvbmFsIG9waW5pb246IE5vLiBUaGlzIGlzIGFuIGVudGlyZWx5IGRpZmZlcmVudCBsaWJy YXJ5LCBhbmQgc2hvdWxkIGxpdmUNCj4gZm9yIGl0c2VsZiBpbiBhIGRpcmVjdG9yeSBvZiBpdHMg b3duLg0KPiA+DQo+ID4+DQo+ID4+ICogV291bGQgaXQgYmUgdXNlZnVsIGZvciBhcHBsaWNhdGlv bnMgdXNpbmcgYXN5bmNocm9ub3VzIGNhbmNlbCB0bw0KPiA+PiAgICBoYXZlIHRoZSBvcHRpb24g b2YgaGF2aW5nIHRoZSB0aW1lciBjYWxsYmFjayBydW4gbm90IG9ubHkgaW4gY2FzZSBvZg0KPiA+ PiAgICB0aW1lciBleHBpcmF0aW9uLCBidXQgYWxzbyBjYW5jZWxsYXRpb24gKG9uIHRoZSB0YXJn ZXQgbGNvcmUpPyBUaGUNCj4gPj4gICAgdGltZXIgY2Igc2lnbmF0dXJlIHdvdWxkIG5lZWQgdG8g aW5jbHVkZSBhbiBhZGRpdGlvbmFsIHBhcmFtZXRlciBpbg0KPiA+PiAgICB0aGF0IGNhc2UuDQo+ ID4NCj4gPiBJZiBvbmUgdGhyZWFkIGNhbmNlbHMgc29tZXRoaW5nIGluIGFub3RoZXIgdGhyZWFk LCBzb21lIHN5bmNocm9uaXphdGlvbg0KPiBiZXR3ZWVuIHRoZSB0aHJlYWRzIGlzIGdvaW5nIHRv IGJlIHJlcXVpcmVkIGFueXdheS4gU28gd2UgY291bGQgcmVwcmFzZSB5b3VyDQo+IHF1ZXN0aW9u OiBXaWxsIHRoZSBidXJkZW4gb2YgdGhlIG90aGVyd2lzZSByZXF1aXJlZCBzeW5jaHJvbml6YXRp b24gYmV0d2Vlbg0KPiB0aGUgdHdvIHRocmVhZHMgYmUgc2lnbmlmaWNhbnRseSByZWR1Y2VkIGlm IHRoZSBsaWJyYXJ5IGhhcyB0aGUgYWJpbGl0eSB0byBydW4NCj4gdGhlIGNhbGxiYWNrIG9uIGFz eW5jaHJvbm91cyBjYW5jZWw/DQo+ID4NCj4gDQo+IFllcy4NCj4gDQo+IEludHVpdGl2ZWx5LCBp dCBzZWVtcyBjb252ZW5pZW50IHRoYXQgaWYgeW91IGhhbmQgb2ZmIGEgdGltZXIgdG8gYQ0KPiBk aWZmZXJlbnQgbGNvcmUsIHRoZSB0aW1lciBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBleGFjdGx5 IG9uY2UsDQo+IHJlZ2FyZGxlc3MgaWYgdGhlIHRpbWVyIHdhcyBjYW5jZWxlZCBvciBleHBpcmVk Lg0KPiANCj4gQnV0LCBhcyB5b3UgaW5kaWNhdGUsIHlvdSBtYXkgc3RpbGwgbmVlZCBzeW5jaHJv bml6YXRpb24gdG8gc29sdmUgdGhlDQo+IHJlc291cmNlIHJlY2xhbWF0aW9uIGlzc3VlLg0KPiAN Cj4gPiBJcyBzdWNoIGEgZmVhdHVyZSBtb3N0bHkgIk11c3QgaGF2ZSIgb3IgIk5pY2UgdG8gaGF2 ZSI/DQo+ID4NCj4gPiBNb3JlIHRob3VnaHRzIGluIHRoaXMgYXJlYS4uLg0KPiA+DQo+ID4gSWYg YWRkaW5nIGFuZCBhZGRpdGlvbmFsIGNhbGxiYWNrIHBhcmFtZXRlciwgaXQgY291bGQgYmUgYW4g ZW51bSwgc28gdGhlDQo+IGNhbGxiYWNrIGNvdWxkIGJlIGV4cGFuZGVkIHRvIHN1cHBvcnQgInRp bWVvdXQgKGEuay5hLiB0aW1lciBmaXJlZCkiLCAiY2FuY2VsIg0KPiBhbmQgbW9yZSBldmVudHMg d2UgaGF2ZSBub3QgeWV0IGNvbWUgdXAgd2l0aCwgZS5nLiAiZWFybHkga2ljayIuDQo+ID4NCj4g DQo+IFllcywgb3IgYW4gaW50Lg0KPiANCj4gPiBIZXJlJ3MgYW4gaWRlYSBvZmYgdGhlIHRvcCBv ZiBteSBoZWFkOiBBbiBhZGRpdGlvbmFsIGNhbGxiYWNrIHBhcmFtZXRlciBoYXMNCj4gYSAoc21h bGwpIHBlcmZvcm1hbmNlIGNvc3QgaW5jdXJyZWQgd2l0aCBldmVyeSB0aW1lciBmaXJlZCAod2hp Y2ggaXMgYSB2ZXJ5DQo+IGxhcmdlIG11bHRpcGxpZXIpLiBJdCBtaWdodCBub3QgYmUgcmVxdWly ZWQuIEFzIGFuIGFsdGVybmF0aXZlIHRvIGFuICJ3aGF0DQo+IGhhcHBlbmVkIiBwYXJhbWV0ZXIg dG8gdGhlIGNhbGxiYWNrLCB0aGUgY2FsbGJhY2sgY291bGQgaW52ZXN0aWdhdGUgdGhlIHN0YXRl DQo+IG9mIHRoZSBvYmplY3QgZm9yIHdoaWNoIHRoZSB0aW1lciBmaXJlZCwgYW5kIGRyYXcgaXRz IG93biBjb25jbHVzaW9uIG9uIGhvdyB0bw0KPiBwcm9jZWVkLiBPYnZpb3VzbHksIHRoaXMgYWxz byBoYXMgYSBwZXJmb3JtYW5jZSBjb3N0LCBidXQgcGVyaGFwcyB0aGUgY2FsbGJhY2sNCj4gd29y a3Mgb24gdGhlIG9iamVjdCdzIHN0YXRlIGFueXdheSwgbWFraW5nIHRoaXMgY29zdCBpbnNpZ25p ZmljYW50Lg0KPiA+DQo+IA0KPiBJdCdzIG5vdCBvYnZpb3VzIHRvIG1lIHRoYXQgeW91LCBpbiB0 aGUgdGltZXIgY2FsbGJhY2ssIGNhbiBkZXRlcm1pbmUNCj4gd2hhdCBoYXBwZW5lZCwgaWYgdGhl IHNhbWUgY2FsbGJhY2sgaXMgY2FsbGVkIGJvdGggaW4gdGhlIGNhbmNlbCBhbmQgdGhlDQo+IGV4 cGlyZWQgY2FzZS4NCj4gDQo+IFRoZSBjb3N0IG9mIGFuIGV4dHJhIGludGVnZXIgcGFzc2VkIGlu IGEgcmVnaXN0ZXIgKG9yIGNoZWNraW5nIGEgZmxhZywNCj4gaWYgdGhlIHRpbWVyIGNhbGxiYWNr IHNob3VsZCBiZSBjYWxsZWQgYXQgYWxsIGF0IGNhbmNlbGxhdGlvbikgdGhhdCBpcw0KPiB0aGUg Y29uY2VybiBmb3IgbWU7IGl0J3MgZXh0cmEgYml0IG9mIEFQSSBjb21wbGV4aXR5Lg0KDQpUaGVu IGludHJvZHVjZSB0aGUgbGlicmFyeSB3aXRob3V0IHRoaXMgZmVhdHVyZS4gTW9yZSBmZWF0dXJl cyBjYW4gYmUgYWRkZWQgbGF0ZXIuDQoNClRoZSBsaWJyYXJ5IHdpbGwgYmUgaW50cm9kdWNlZCBh cyAiZXhwZXJpbWVudGFsIiwgc28gd2UgYXJlIGZyZWUgdG8gaW1wcm92ZSBpdCBhbmQgbW9kaWZ5 IHRoZSBBQkkgYWxvbmcgdGhlIHdheS4NCg0KPiANCj4gPiBIZXJlJ3MgYW5vdGhlciBhbHRlcm5h dGl2ZSB0byBhZGRpbmcgYSAid2hhdCBoYXBwZW5lZCIgcGFyYW1ldGVyIHRvIHRoZQ0KPiBjYWxs YmFjazoNCj4gPg0KPiA+IFRoZSBydGVfaHRpbWVyIGNvdWxkIGhhdmUgb25lIG1vcmUgY2FsbGJh Y2sgcG9pbnRlciwgd2hpY2ggKGlmIHNldCkgd2lsbCBiZQ0KPiBjYWxsZWQgb24gY2FuY2VsbGF0 aW9uIG9mIHRoZSB0aW1lci4NCj4gPg0KPiANCj4gVGhpcyB3aWxsIGdyb3cgdGhlIHRpbWVyIHN0 cnVjdCB3aXRoIDE2IGJ5dGVzLg0KDQpJZiB0aGUgcnRlX2h0aW1lciBzdHJ1Y3Qgc3RheXMgd2l0 aGluIG9uZSBjYWNoZSBsaW5lLCBpdCBzaG91bGQgYmUgYWNjZXB0YWJsZS4NCg0KT24gdGhlIG90 aGVyIGhhbmQsIHRoaXMgYXBwcm9hY2ggaXMgbGVzcyBnZW5lcmljIHRoYW4gcGFzc2luZyBhbiBh ZGRpdGlvbmFsIHBhcmFtZXRlci4gKEUuZy4gYWRkIHlldCBhbm90aGVyIGNhbGxiYWNrIHBvaW50 ZXIgZm9yICJlYXJseSBraWNrIj8pDQoNCkJUVywgYXN5bmMgY2FuY2VsIGlzIGEgZm9ybSBvZiBp bnRlci10aHJlYWQgY29tbXVuaWNhdGlvbi4gRG9lcyB0aGlzIGxpYnJhcnkgcmVhbGx5IG5lZWQg dG8gcHJvdmlkZSBhbnkgaW50ZXItdGhyZWFkIGNvbW11bmljYXRpb24gbWVjaGFuaXNtcz8gRG9l c24ndCBhbiBpbnRlci10aHJlYWQgY29tbXVuaWNhdGlvbiBtZWNoYW5pc20gYmVsb25nIGluIGEg c2VwYXJhdGUgbGlicmFyeT8NCg0KPiANCj4gPj4NCj4gPj4gKiBTaG91bGQgdGhlIHJ0ZV9odGlt ZXIgYmUgYSBuZXN0ZWQgc3RydWN0LCBzbyB0aGUgaHR3IHBhcnRzIGJlIHNlcGFyYXRlZA0KPiA+ PiAgICBmcm9tIHRoZSBodGltZXIgcGFydHM/DQo+ID4+DQo+ID4+ICogPHJ0ZV9odGltZXIuaD4g aXMga2VwdCBzZXBhcmF0ZSBmcm9tIDxydGVfaHRpbWVyX21nci5oPiwgc28gdGhhdA0KPiA+PiAg ICA8cnRlX2h0dy5oPiBtYXkgYXZvaWQgYSBkZXBlZGVuY3kgdG8gPHJ0ZV9odGltZXJfbWdyLmg+ LiBTaG91bGQgaXQNCj4gPj4gICAgYmUgc28/DQo+ID4+DQo+ID4+ICogcnRlX2h0aW1lciBzdHJ1 Y3QgaXMgb25seSBzdXBwb3NlZCB0byBiZSB1c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbiB0bw0KPiA+ PiAgICBnaXZlIGFuIGluZGljYXRpb24gb2YgaG93IG11Y2ggbWVtb3J5IGl0IG5lZWRzIHRvIGFs bG9jYXRlLCBhbmQgaXMNCj4gPj4gICAgaXRzIG1lbWJlciBhcmUgbm90IHN1cHBvc2VkIHRvIGJl IGRpcmVjdGx5IGFjY2Vzc2VkICh3LyB0aGUgcG9zc2libGUNCj4gPj4gICAgZXhjZXB0aW9uIG9m IHRoZSBvd25lcl9sY29yZV9pZCBmaWVsZCkuIFNob3VsZCB0aGVyZSBiZSBhIGR1bW15DQo+ID4+ ICAgIHN0cnVjdCwgb3IgYSAjZGVmaW5lIFJURV9IVElNRVJfTUVNU0laRSBvciBhIHJ0ZV9odGlt ZXJfZ2V0X21lbXNpemUoKQ0KPiA+PiAgICBmdW5jdGlvbiBpbnN0ZWFkLCBzZXJ2aW5nIHRoZSBz YW1lIHB1cnBvc2U/IEJldHRlciBlbmNhcHN1bGF0aW9uLA0KPiA+PiAgICBidXQgbW9yZSBpbmNv bnZlbmllbnQgZm9yIGFwcGxpY2F0aW9ucy4gUnVuLXRpbWUgZHluYW1pYyBzaXppbmcNCj4gPj4g ICAgd291bGQgZm9yY2UgYXBwbGljYXRpb24tbGV2ZWwgZHluYW1pYyBhbGxvY2F0aW9ucy4NCj4g Pj4NCj4gPj4gKiBBc3luY2hyb25vdXMgY2FuY2VsbGF0aW9uIGlzIGEgbGl0dGxlIHRyaWNreSB0 byB1c2UgZm9yIHRoZQ0KPiA+PiAgICBhcHBsaWNhdGlvbiAocHJpbWFyaWx5IGR1ZSB0byB0aW1l ciBtZW1vcnkgcmVjbGFtYXRpb24vcmFjZQ0KPiA+PiAgICBpc3N1ZXMpLiBTaG91bGQgdGhpcyBm dW5jdGlvbmFsaXR5IGJlIHJlbW92ZWQ/DQo+ID4+DQo+ID4+ICogU2hvdWxkIHJ0ZV9odGltZXJf bWdyX2luaXQoKSBhbHNvIHJldHJpZXZlIHRoZSBjdXJyZW50IHRpbWU/IElmIHNvLA0KPiA+PiAg ICB0aGVyZSBzaG91bGQgdG8gYmUgYSB2YXJpYW50IHdoaWNoIGFsbG93cyB0aGUgdXNlciB0byBz cGVjaWZ5IHRoZQ0KPiA+PiAgICB0aW1lICh0byBtYXRjaCBydGVfaHRpbWVyX21ncl9tYW5hZ2Vf dGltZSgpKS4gT25lIHBpdGZhbGwgd2l0aCB0aGUNCj4gPj4gICAgY3VycmVudCBwcm9wb3NlZCBB UEkgaXMgYW4gYXBwbGljYXRpb24gY2FsbGluZyBydGVfaHRpbWVyX21ncl9pbml0KCkNCj4gPj4g ICAgYW5kIHRoZW4gaW1tZWRpYXRlbHkgYWRkaW5nIGEgdGltZXIgd2l0aCBhIHJlbGF0aXZlIHRp bWVvdXQsIGluDQo+ID4+ICAgIHdoaWNoIGNhc2UgdGhlIGN1cnJlbnQgYWJzb2x1dGUgdGltZSB1 c2VkIGlzIDAsIHdoaWNoIG1pZ2h0IGJlIGENCj4gPj4gICAgc3VycHJpc2UuDQo+ID4+DQo+ID4+ ICogU2hvdWxkIGxpYmRpdmlkZSAob3B0aW9uYWxseSkgYmUgdXNlZCB0byBhdm9pZCB0aGUgZGl2 IGluIHRoZSBUU0MgLT4NCj4gPj4gICAgdGljayBjb252ZXJzaW9uPyAoRG9lc24ndCBpbXByb3Zl IHBlcmZvcm1hbmNlIG9uIFplbiAzLCBidXQgbWF5DQo+ID4+ICAgIGRvIG9uIG90aGVyIENQVXMu KSBDb25zaWRlciA8cnRlX3JlY2lwcm9jYWwuaD4gYXMgd2VsbC4NCj4gPj4NCj4gPj4gKiBTaG91 bGQgdGhlIFRTQy1wZXItdGljayBiZSByb3VuZGVkIHVwIHRvIGEgcG93ZXIgb2YgMiwgc28gc2hp ZnRzIGNhbiBiZQ0KPiA+PiAgICB1c2VkIGZvciBjb252ZXJzaW9uPyBWZXJ5IG1pbm9yIHBlcmZv cm1hbmNlIGdhaW5zIHRvIGJlIGZvdW5kIHRoZXJlLA0KPiA+PiAgICBhdCBsZWFzdCBvbiBaZW4g MyBjb3Jlcy4NCj4gPj4NCj4gPj4gKiBTaG91bGQgaXQgYmUgcG9zc2libGUgdG8gc3VwcGx5IHRo ZSB0aW1lIGluIHJ0ZV9odGltZXJfbWdyX2FkZCgpDQo+ID4+ICAgIGFuZC9vciBydGVfaHRpbWVy X21ncl9tYW5hZ2VfdGltZSgpIGZ1bmN0aW9ucyBhcyB0aWNrcywgcmF0aGVyIHRoYW4NCj4gPj4g ICAgYXMgVFNDPyBTaG91bGQgaXQgYmUgcG9zc2libGUgdG8gYWxzbyB1c2UgbmFub3NlY29uZHM/ DQo+ID4+ICAgIHJ0ZV9odGltZXJfbWdyX21hbmFnZV90aW1lKCkgd291bGQgbmVlZCBhIGZsYWdz IHBhcmFtZXRlciBpbiB0aGF0DQo+ID4+ICAgIGNhc2UuDQo+ID4NCj4gPiBEbyBub3QgdXNlIFRT QyBhbnl3aGVyZSBpbiB0aGlzIGxpYnJhcnkuIExldCB0aGUgYXBwbGljYXRpb24gZGVjaWRlIHRo ZQ0KPiBtZWFuaW5nIG9mIGEgdGljay4NCj4gPg0KPiA+Pg0KPiA+PiAqIFdvdWxkIHRoZSBldmVu dCB0aW1lciBhZGFwdGVyIGJlIGJlc3Qgb2ZmIHVzaW5nIDxydGVfaHR3Lmg+DQo+ID4+ICAgIGRp cmVjdGx5LCBvciA8cnRlX2h0aW1lci5oPj8gSW4gdGhlIGxhdHRlciBjYXNlLCB0aGVyZSBuZWVk cyB0byBiZSBhDQo+ID4+ICAgIHdheSB0byBpbnN0YW50aWF0ZSBtb3JlIEhXVHMgKHNpbWlsYXIg dG8gdGhlICJhbHQiIGZ1bmN0aW9ucyBvZg0KPiA+PiAgICA8cnRlX3RpbWVyLmg+KT8NCj4gPj4N Cj4gPj4gKiBTaG91bGQgdGhlIFBFUklPRElDQUwgZmxhZyAoYW5kIHRoZSBjb21wbGV4aXR5IGl0 IGJyaW5ncykgYmUNCj4gPj4gICAgcmVtb3ZlZD8gQW5kIGxlYXZlIHRoZSBhcHBsaWNhdGlvbiB3 aXRoIG9ubHkgc2luZ2xlLXNob3QgdGltZXJzLCBhbmQNCj4gPj4gICAgdGhlIG9wdGlvbiB0byBy ZS1hZGQgdGhlbSBpbiB0aGUgdGltZXIgY2FsbGJhY2suDQo+ID4NCj4gPiBGaXJzdCB0aG91Z2h0 OiBZZXMsIGtlZXAgaXQgbGVhbiBhbmQgcmVtb3ZlIHRoZSBwZXJpb2RpY2FsIHN0dWZmLg0KPiA+ DQo+ID4gU2Vjb25kIHRob3VnaHQ6IFRoaXMgbmVlZHMgYSBtb3JlIGRldGFpbGVkIGFuYWx5c2lz Lg0KPiA+DQo+ID4gIEZyb20gb25lIGFuZ2xlOg0KPiA+DQo+ID4gSG93IG1hbnkgUEVSSU9ESUNB TCB2ZXJzdXMgT05FU0hPVCB0aW1lcnMgZG8gd2UgZXhwZWN0Pw0KPiA+DQo+IA0KPiBJIHN1c3Bl Y3QgeW91IHNob3VsZCBiZSBwcmVwYXJlZCBmb3IgdGhlIHJhdGlvIGJlaW5nIGFueXRoaW5nLg0K DQpJbiB0aGVvcnksIGFueXRoaW5nIGlzIHBvc3NpYmxlLiBCdXQgSSdtIGFza2luZyB0aGF0IHdl IGNvbnNpZGVyIHJlYWxpc3RpYyB1c2UgY2FzZXMuDQoNCj4gDQo+ID4gSW50dWl0aXZlbHksIEkg d291bGQgdXNlIHRoaXMgbGlicmFyeSBmb3IgT05FU0hPVCB0aW1lcnMsIGFuZCBwZXJoYXBzDQo+ IGltcGxlbWVudCBteSBwZXJpb2RpY2FsIHRpbWVycyBieSBvdGhlciBtZWFucy4NCj4gPg0KPiA+ IElmIHRoZSBQRVJJT0RJQ0FMOk9ORVNIT1QgcmF0aW8gaXMgbG93LCB3ZSBjYW4gcHJvYmFibHkg bGl2ZSB3aXRoIHRoZSBleHRyYQ0KPiBjb3N0IG9mIGNhbmNlbCthZGQgZm9yIGEgZmV3IHBlcmlv ZGljYWwgdGltZXJzLg0KPiA+DQo+ID4gIEZyb20gYW5vdGhlciBhbmdsZToNCj4gPg0KPiA+IFdo YXQgaXMgdGhlIHBlcmZvcm1hbmNlIGdhaW4gd2l0aCB0aGUgUEVSSU9ESUNBTCBmbGFnPw0KPiA+ DQo+IA0KPiBOb25lLCBwcmV0dHkgbXVjaC4gSXQncyBqdXN0IHRoZXJlIGZvciBjb252ZW5pZW5j ZS4NCg0KT0ssIHRoZW4gSSBzdWdnZXN0IHRoYXQgeW91IHJlbW92ZSBpdCwgdW5sZXNzIHlvdSBn ZXQgb2JqZWN0aW9ucy4NCg0KVGhlIGxpYnJhcnkgY2FuIGJlIGV4cGFuZGVkIHdpdGggdXNlZnVs IGZlYXR1cmVzIGF0IGFueSB0aW1lIGxhdGVyLiBVc2VsZXNzIGZlYXR1cmVzIGFyZSAobmVhcmx5 KSBpbXBvc3NpYmxlIHRvIHJlbW92ZSwgb25jZSB0aGV5IGFyZSBpbiB0aGVyZSAtIHRoZXkgYXJl IGp1c3QgInRlY2huaWNhbCBkZWJ0IiB3aXRoIGFzc29jaWF0ZWQgbWFpbnRlbmFuY2UgY29zdHMs IGFkZGVkIGNvbXBsZXhpdHkgd2VhdmluZyBpbnRvIG90aGVyIGZlYXR1cmVzLCBldGMuLg0KDQo+ IA0KPiA+IFdpdGhvdXQgYSBwZXJpb2RpY2FsIHRpbWVyLCBjYW5jZWwrYWRkIGNvc3RzIDEwKzI4 IGN5Y2xlcy4gSG93IG1hbnkgY3ljbGVzDQo+IHdvdWxkIGEgIm1vdmUiIGZ1bmN0aW9uLCBwZXJm b3JtaW5nIGJvdGggY2FuY2VsIGFuZCBhZGQsIHVzZT8NCj4gPg0KPiA+IEFuZCB0aGVuIGNvbXBh cmUgdGhhdCB0byB0aGUgY29zdCAoaW4gY3ljbGVzKSBvZiByZXBlYXRpbmcgYSB0aW1lciB3aXRo DQo+IFBFUklPRElDQUw/DQo+ID4NCj4gPiBGdXJ0aGVybW9yZSwgbm90IGhhdmluZyB0aGUgUEVS SU9ESUNBTCBmbGFnIHByb2JhYmx5IGltcHJvdmVzIHRoZQ0KPiBwZXJmb3JtYW5jZSBmb3Igbm9u LXBlcmlvZGljYWwgdGltZXJzLiBIb3cgbWFueSBjeWNsZXMgY291bGQgd2UgZ2FpbiBoZXJlPw0K PiA+DQo+ID4NCj4gPiBBbm90aGVyLCB2YWd1ZWx5IHJlbGF0ZWQsIGlkZWE6DQo+ID4NCj4gPiBU aGUgY2FsbGJhY2sgcG9pbnRlciBtaWdodCBub3QgbmVlZCB0byBiZSBzdG9yZWQgcGVyIHJ0ZV9o dGltZXIsIGJ1dCBjb3VsZA0KPiBpbnN0ZWFkIGJlIGNvbW1vbiBmb3IgdGhlIHJ0ZV9odHcuDQo+ ID4NCj4gDQo+IERvIHlvdSBtZWFuIHJ0ZV9odHcsIG9yIHJ0ZV9odGltZXJfbWdyPw0KPiANCj4g SWYgeW91IG1ha2Ugb25lIGNvbW1vbiBjYWxsYmFjaywgYWxsIHRoZSBkaWZmZXJlbnQgcGFydHMg b2YgdGhlDQo+IGFwcGxpY2F0aW9uIG5lZWRzIHRvIGJlIGNvb3JkaW5hdGVkIChpbiBhIGJpZyBz d2l0Y2gtc3RhdGVtZW50LCBvcg0KPiBzb21ldGhpbmcgb2YgdGhhdCBzb3J0KSwgb3IgaGF2ZSBz b21lIGNvbnZlbnRpb24gZm9yIHVzaW5nIGFuDQo+IGFwcGxpY2F0aW9uLXNwZWNpZmljIHdyYXBw ZXIgc3RydWN0dXJlIChhY2Nlc3NlZCB2aWEgY29udGFpbmVyX29mKCkpLg0KPiANCj4gVGhpcyBp cyBhIHByb2JsZW0gaWYgdGhlIHRpbWVyIHNlcnZpY2UgQVBJIGNvbnN1bWVyIGlzIGEgc2V0IG9m IGxhcmdlbHkNCj4gdW5jb29yZGluYXRlZCBzb2Z0d2FyZSBtb2R1bGVzLg0KPiANCj4gQnR3LCB0 aGUgZXZlbnRkZXYgQVBJIGhhcyB0aGUgc2FtZSBpc3N1ZSwgYW5kIHRoZSBwcm9wb3NlZCBldmVu dA0KPiBkaXNwYXRjaGVyIGlzIG9uZSB3YXkgdG8gaGVscCBmYWNpbGl0YXRlIGFwcGxpY2F0aW9u LWludGVybmFsIGRlY291cGxpbmcuDQo+IA0KPiBGb3IgYSBtb2R1bGUtcHJpdmF0ZSBydGVfaHR3 IGluc3RhbmNlIHlvdXIgc3VnZ2VzdGlvbiBtYXkgd29yaywgYnV0IG5vdA0KPiBmb3IgPHJ0ZV9o dGltZXJfbWdyLmg+Lg0KDQpJIHdhcyBzcGVjdWxhdGluZyB0aGF0IGEgY29tbW9uIGNhbGxiYWNr IHBvaW50ZXIgbWlnaHQgcHJvdmlkZSBhIHBlcmZvcm1hbmNlIGJlbmVmaXQgZm9yIHNpbmdsZS1w dXJwb3NlIEhUVyBpbnN0YW5jZXMuIChUaGUgc2FtZSBjb25jZXB0IGFwcGxpZXMgaWYgdGhlcmUg YXJlIG11bHRpcGxlIGNhbGxiYWNrcywgZS5nLiBhICJUaW1lciBGaXJlZCIsIGEgIlRpbWVyIENh bmNlbGxlZCIsIGFuZCBhbiAiRWFybHkgS2ljayIgY2FsbGJhY2sgcG9pbnRlciAtIGkuZS4gaGF2 aW5nIHRoZSBjYWxsYmFjayBwb2ludGVycyBwZXIgSFRXIGluc3RhbmNlLCBpbnN0ZWFkIG9mIHBl ciB0aW1lci4pDQoNCj4gDQo+ID4gV2hlbiBhIHRpbWVyIGZpcmVzLCB0aGUgY2FsbGJhY2sgcHJv YmFibHkgbmVlZHMgdG8gY2hlY2svdXBkYXRlIHRoZSBzdGF0ZSBvZg0KPiB0aGUgb2JqZWN0IGZv ciB3aGljaCB0aGUgdGltZXIgZmlyZWQgYW55d2F5LCBzbyB3aHkgbm90IGp1c3QgbGV0IHRoZQ0K PiBhcHBsaWNhdGlvbiB1c2UgdGhhdCBzdGF0ZSB0byBkZXRlcm1pbmUgdGhlIGFwcHJvcHJpYXRl IGFjdGlvbi4gVGhpcyBtaWdodA0KPiBwcm92aWRlIHNvbWUgcGVyZm9ybWFuY2UgYmVuZWZpdC4N Cj4gPg0KPiA+IEl0IG1pZ2h0IGNvbXBsaWNhdGUgdXNpbmcgb25lIEhUVyBmb3IgbXVsdGlwbGUg ZGlmZmVyZW50IHB1cnBvc2VzLCB0aG91Z2guDQo+IFByb2JhYmx5IGEgdXNlbGVzcyBpZGVhLCBi dXQgSSB3YW50ZWQgdG8gc2hhcmUgdGhlIGlkZWEgYW55d2F5LiBJdCBtaWdodA0KPiB0cmlnZ2Vy IG90aGVyLCBiZXR0ZXIgaWRlYXMgaW4gdGhlIGNvbW11bml0eS4NCj4gPg0KPiA+Pg0KPiA+PiAq IFNob3VsZCB0aGUgYXN5bmMgcmVzdWx0IGNvZGVzIGFuZCB0aGUgc3luYyBjYW5jZWwgZXJyb3Ig Y29kZXMgYmUgbWVyZ2VkDQo+ID4+ICAgIGludG8gb25lIHNldCBvZiByZXN1bHQgY29kZXM/DQo+ ID4+DQo+ID4+ICogU2hvdWxkIHRoZSBydGVfaHRpbWVyX21ncl9hc3luY19hZGQoKSBoYXZlIGEg ZmxhZyB3aGljaCBhbGxvdw0KPiA+PiAgICBidWZmZXJpbmcgYWRkIHJlcXVlc3QgbWVzc2FnZXMg dW50aWwgcnRlX2h0aW1lcl9tZ3JfcHJvY2VzcygpIGlzDQo+ID4+ICAgIGNhbGxlZD8gT3IgYW55 IG1hbmFnZSBmdW5jdGlvbi4gV291bGQgcmVkdWNlIHJpbmcgc2lnbmFsaW5nIG92ZXJoZWFkDQo+ ID4+ICAgIChpLmUuLCBidXJzdCBlbnF1ZXVlIG9wZXJhdGlvbnMgaW5zdGVhZCBvZiBzaW5nbGUt ZWxlbWVudA0KPiA+PiAgICBlbnF1ZXVlKS4gQ291bGQgYWxzbyBiZSBhIHJ0ZV9odGltZXJfbWdy X2FzeW5jX2FkZF9idXJzdCgpIGZ1bmN0aW9uLA0KPiA+PiAgICBzb2x2aW5nIHRoZSBzYW1lICJw cm9ibGVtIiBhIGRpZmZlcmVudCB3YXkuIChUaGUgc2lnbmF0dXJlIG9mIHN1Y2gNCj4gPj4gICAg YSBmdW5jdGlvbiB3b3VsZCBub3QgYmUgcHJldHR5LikNCj4gPj4NCj4gPj4gKiBEb2VzIHRoZSBm dW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoZSBydGVfaHRpbWVyX21ncl9wcm9jZXNzKCkNCj4g Pj4gICAgZnVuY3Rpb24gbWF0Y2ggaXRzIHRoZSB1c2UgY2FzZXM/IFNob3VsZCB0aGVyZSBtZSBh IG1vcmUgY2xlYXINCj4gPj4gICAgc2VwYXJhdGlvbiBiZXR3ZWVuIGV4cGlyeSBwcm9jZXNzaW5n IGFuZCBhc3luY2hyb25vdXMgb3BlcmF0aW9uDQo+ID4+ICAgIHByb2Nlc3Npbmc/DQo+ID4+DQo+ ID4+ICogU2hvdWxkIHRoZSBwYXRjaHNldCBiZSBzcGxpdCBpbnRvIG1vcmUgY29tbWl0cz8gSWYg c28sIGhvdz8NCj4gPj4NCj4gPj4gVGhhbmtzIHRvIEVyaWsgQ2FycmlsbG8gZm9yIGhpcyBhc3Np c3RhbmNlLg0KPiA+Pg0KPiA+PiBNYXR0aWFzIFLDtm5uYmxvbSAoMik6DQo+ID4+ICAgIGVhbDog YWRkIGJpdHNldCB0eXBlDQo+ID4+ICAgIGVhbDogYWRkIGhpZ2gtcGVyZm9ybWFuY2UgdGltZXIg ZmFjaWxpdHkNCg0K