From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4EA66A0613 for ; Mon, 23 Sep 2019 18:10:03 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 7EAC01BF0A; Mon, 23 Sep 2019 18:10:02 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id C90401BEFA for ; Mon, 23 Sep 2019 18:09:58 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 23 Sep 2019 09:09:58 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,541,1559545200"; d="scan'208";a="272330249" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga001.jf.intel.com with ESMTP; 23 Sep 2019 09:09:57 -0700 Received: from fmsmsx119.amr.corp.intel.com (10.18.124.207) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 23 Sep 2019 09:09:57 -0700 Received: from fmsmsx117.amr.corp.intel.com ([169.254.3.133]) by FMSMSX119.amr.corp.intel.com ([169.254.14.227]) with mapi id 14.03.0439.000; Mon, 23 Sep 2019 09:09:57 -0700 From: "Wiles, Keith" To: Olivier Matz CC: dev , Thomas Monjalon , "Wang, Haiyue" , Stephen Hemminger , Andrew Rybchenko , Jerin Jacob Kollanukkaran Thread-Topic: [PATCH] mbuf: support dynamic fields and flags Thread-Index: AQHVbkHXCVvrq0cpZk2iDJ212rSDCKc2Re8AgAMxGICAAHR8AA== Date: Mon, 23 Sep 2019 16:09:56 +0000 Message-ID: <6D67FD58-5069-4979-A200-E8E75DF9DB64@intel.com> References: <20190710092907.5565-1-olivier.matz@6wind.com> <20190918165448.22409-1-olivier.matz@6wind.com> <37115768-EDA5-4089-8E86-3EFB26194A00@intel.com> <20190923091301.hquyxbbcbai43e4p@platinum> In-Reply-To: <20190923091301.hquyxbbcbai43e4p@platinum> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.252.202.153] Content-Type: text/plain; charset="utf-8" Content-ID: <74B969E4124A704E8C730FE32B512EFA@intel.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH] mbuf: support dynamic fields and flags X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" U29ycnksIHJlc2VuZCBpbiBwbGFpbiB0ZXh0IDotKA0KDQo+IE9uIFNlcCAyMywgMjAxOSwgYXQg NDoxMyBBTSwgT2xpdmllciBNYXR6IDxvbGl2aWVyLm1hdHpANndpbmQuY29tPiB3cm90ZToNCj4g DQo+IEhpIEtlaXRoLA0KPiANCj4gT24gU2F0LCBTZXAgMjEsIDIwMTkgYXQgMDg6Mjg6MzJBTSAr MDAwMCwgV2lsZXMsIEtlaXRoIHdyb3RlOg0KPj4gDQo+PiANCj4+PiBPbiBTZXAgMTgsIDIwMTks IGF0IDY6NTQgUE0sIE9saXZpZXIgTWF0eiA8b2xpdmllci5tYXR6QDZ3aW5kLmNvbT4gd3JvdGU6 DQo+Pj4gDQo+Pj4gTWFueSBmZWF0dXJlcyByZXF1aXJlIHRvIHN0b3JlIGRhdGEgaW5zaWRlIHRo ZSBtYnVmLiBBcyB0aGUgcm9vbSBpbiBtYnVmDQo+Pj4gc3RydWN0dXJlIGlzIGxpbWl0ZWQsIGl0 IGlzIG5vdCBwb3NzaWJsZSB0byBoYXZlIGEgZmllbGQgZm9yIGVhY2gNCj4+PiBmZWF0dXJlLiBB bHNvLCBjaGFuZ2luZyBmaWVsZHMgaW4gdGhlIG1idWYgc3RydWN0dXJlIGNhbiBicmVhayB0aGUg QVBJDQo+Pj4gb3IgQUJJLg0KPj4+IA0KPj4+IFRoaXMgY29tbWl0IGFkZHJlc3NlcyB0aGVzZSBp c3N1ZXMsIGJ5IGVuYWJsaW5nIHRoZSBkeW5hbWljIHJlZ2lzdHJhdGlvbg0KPj4+IG9mIGZpZWxk cyBvciBmbGFnczoNCj4+PiANCj4+PiAtIGEgZHluYW1pYyBmaWVsZCBpcyBhIG5hbWVkIGFyZWEg aW4gdGhlIHJ0ZV9tYnVmIHN0cnVjdHVyZSwgd2l0aCBhDQo+Pj4gZ2l2ZW4gc2l6ZSAoPj0gMSBi eXRlKSBhbmQgYWxpZ25tZW50IGNvbnN0cmFpbnQuDQo+Pj4gLSBhIGR5bmFtaWMgZmxhZyBpcyBh IG5hbWVkIGJpdCBpbiB0aGUgcnRlX21idWYgc3RydWN0dXJlLg0KPj4+IA0KPj4+IFRoZSB0eXBp Y2FsIHVzZSBjYXNlIGlzIGEgUE1EIHRoYXQgcmVnaXN0ZXJzIHNwYWNlIGZvciBhbiBvZmZsb2Fk DQo+Pj4gZmVhdHVyZSwgd2hlbiB0aGUgYXBwbGljYXRpb24gcmVxdWVzdHMgdG8gZW5hYmxlIHRo aXMgZmVhdHVyZS4gIEFzDQo+Pj4gdGhlIHNwYWNlIGluIG1idWYgaXMgbGltaXRlZCwgdGhlIHNw YWNlIHNob3VsZCBvbmx5IGJlIHJlc2VydmVkIGlmIGl0DQo+Pj4gaXMgZ29pbmcgdG8gYmUgdXNl ZCAoaS5lIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGV4cGxpY2l0bHkgYXNrcyBmb3IgaXQpLg0KPj4+ IA0KPj4+IFRoZSByZWdpc3RyYXRpb24gY2FuIGJlIGRvbmUgYXQgYW55IG1vbWVudCwgYnV0IGl0 IGlzIG5vdCBwb3NzaWJsZQ0KPj4+IHRvIHVucmVnaXN0ZXIgZmllbGRzIG9yIGZsYWdzIGZvciBu b3cuDQo+Pj4gDQo+Pj4gU2lnbmVkLW9mZi1ieTogT2xpdmllciBNYXR6IDxvbGl2aWVyLm1hdHpA NndpbmQuY29tPg0KPj4+IEFja2VkLWJ5OiBUaG9tYXMgTW9uamFsb24gPHRob21hc0Btb25qYWxv bi5uZXQ+DQo+Pj4g4oCUDQo+Pj4gDQo+PiANCj4gDQo+PiBUaGUgaWRlYSBvZiByZWdpc3RyYXRp b24gZm9yIHNwYWNlIGluIHRoZSBtYnVmIEkgYW0gbm90IGEgYmlnIGZhbi4gSSBkaWQgbGlrZQ0K Pj4gS29uc3RhbnRpbuKAmXMgc3VnZ2VzdGlvbiBvZiBoYXZpbmcgdGhlIGNvbXBpbGVyIGhlbHAg d2l0aCBvcHRpbWl6aW5nIHRoZSBjb2RlLA0KPj4gYnV0IHdpdGggYSBzbGlnaHQgZGlmZmVyZW5j ZS4gTWF5YmUgSSBtaXN1bmRlcnN0YW5kLCBidXQgbm93IHdpdGggdGhpcyBkZXNpZ24NCj4+IHlv dSBoYXZlIHRvIHBhc3MgdGhlIG9mZnNldHMgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBhcHBs aWNhdGlvbiBvciBwbGFjZSBpbg0KPj4gZ2xvYmFsIG1lbW9yeSBvciBoYXZlIGVhY2ggc2VjdGlv biByZXF1ZXN0IHRoZSBvZmZzZXRzLiBJdCBzZWVtcyBncmVhdCBpZiB0aGUNCj4+IGFwcGxpY2F0 aW9uIGlzIG9uZSBiaWcgYXBwbGljYXRpb24gb3IgYW4gYXBwbGlhbmNlIG1vZGVsIGFwcGxpY2F0 aW9uIGhhdmluZw0KPj4gY29udHJvbCBvZiB0aGUgd2hvbGUgZGVzaWduIG5vdCBzbyBnb29kIGZv ciBzZXJ2aWNlIGNoYWlucyBsaWtlIGRlc2lnbnMgd2hlcmUNCj4+IGRpZmZlcmVudCBwYXJ0cyBv ZiB0aGUgd2hvbGUgYXBwbGljYXRpb24gaXMgZGVzaWduIGJ5IGRpZmZlcmVudCB0ZWFtcy4NCj4g DQo+IElmIHRoZSBnbG9iYWwgdmFyaWFibGUgc3RvcmluZyB0aGUgb2Zmc2V0IGlzIGRlZmluZWQg aW4gdGhlIG1idWYgbGF5ZXIsIHdoYXQNCj4gd291bGQgYmUgdGhlIHByb2JsZW0/DQo+IA0KDQpB cmUgeW91IGFzc3VtaW5nIHRoZSB2YWx1ZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIHByaW1hcnkvc2Vj b25kYXJ5IG1vZGVsIG9yIGJldHdlZW4gcHJvY2Vzc2VzIHVzaW5nIHNoYXJlZCBtZW1vcnk/IElm IG1vdmluZyB0aGUgcGFja2V0IGRhdGEgdmlhIHNoYXJlZCBtZW1vcnkgdG8gYSBkaWZmZXJlbnQg YXBwbGljYXRpb24gd3JpdHRlbiBieSBhIGRpZmZlcmVudCBjb21wYW55IHlvdSBzdGlsbCBoYXZl IHRvIG1vdmUgdGhhdCBtZXRhZGF0YS4gSWYgdGhlIHR5cGUgd2FzIGNhcnJpZWQgd2l0aCB0aGUg bWJ1ZiB3ZSBjYW4gZWFzaWx5IGNvbnZleSBhIHNtYWxsIHR5cGUgdmFsdWUgb3Igd2Ugd291bGQg bmVlZCB0byB0ZWxsIHRoZSBvdGhlciBzaWRlIHdlIGhhdmUgYWxsIG9mIHRoaXMgcmVnaXN0cmF0 aW9uIGluZm9ybWF0aW9uIHRvIHNlbmQuIEkgd291bGQgc3VnZ2VzdCB0aGUgbnVtYmVyIG9mIG1i dWYgdHlwZXMgd2lsbCBiZSBzbWFsbCBvdmVyIHRpbWUgYW5kIEkgYmVsaWV2ZSBhIDQgYml0IG9y IDggYml0IHR5cGUgaXMgcmVhc29uYWJsZS4gSW4gbWFueSBwcm90b2NvbHMgdXNpbmcgYSB0eXBl IHZhbHVlIGlzIHVzZWQgdG8gY29udmV5IHRoaXMgdHlwZSBvZiBpbmZvcm1hdGlvbi4gV2UgY2Fu IGV2ZW4gdGlnaHRseSBjb250cm9sIHRoZSBudW1iZXIgb2YgdHlwZXMgRFBESyBjb250cm9scyBh bmQgdGhlbiBsZWF2ZSBzb21lIGZvciB1c2VyIGRlZmluZWQgaWYgd2UgbGlrZS4NCg0KDQo+IFRo ZSBvbmx5IHRoaW5ncyB5b3Ugd291bGQgaGF2ZSB0byBkbyBpczoNCj4gDQo+IDEvIGVuc3VyZSB0 aGUgb2Zmc2V0IGlzIHJlZ2lzdGVyZWQNCj4gICBydGVfbWJ1Zl9keW5fdGltZXN0YW1wX3JlZ2lz dGVyKCkNCj4gDQo+IDIvIHVzZSBoZWxwZXJzDQo+ICAgcnRlX21idWZfZHluX3RpbWVzdGFtcF9n ZXQoKSwgcnRlX21idWZfZHluX3RpbWVzdGFtcF9zZXQoKSwgLi4uDQo+IA0KPj4gS29uc3RhbnRp buKAmXMgc3VnZ2VzdCBpZiBJIHVuZGVyc3RhbmQgaXQgd2FzIHRvIHVzZSBzdHJ1Y3R1cmVzIHRv IGFsbG93IHRoZQ0KPj4gY29tcGlsZXIgdG8gb3B0aW1pemUgdGhlIGFjY2VzcyB0byB0aGUgbWJ1 ZiBhbmQgSSBsaWtlIHRoYXQgaWRlYSwgYnV0IHdpdGggb25lDQo+PiBjaGFuZ2Ugd2UgYWRkIGEg ZmllbGQgaW4gdGhlIG1idWYgdG8gZGVmaW5lIHRoZSBtYnVmIHN0cnVjdHVyZSB0eXBlLg0KPj4g DQo+PiBTYXkgMCBpcyB0aGUgc3RhbmRhcmQgcnRlX21idWYgdHlwZSB0aGVuIHR5cGUgMSBjb3Vs ZCBiZSB0aGUgSVBTZWMgb2Zmc2V0IHR5cGUNCj4+IG1idWYsIHR5cGUgMiBjb3VsZCBiZSBzb21l dGhpbmcgZWxzZSwg4oCmIFRoZSB0eXBlIDAgbG9va3MganVzdCBsaWtlIHRoZSBtYnVmIHdlDQo+ PiBoYXZlIHRvZGF5IHdpdGggbWF5YmUgdGhlIG9wdGlvbmFsIGZpZWxkcyBzZXQgdG8gcmVzZXJ2 ZWQgb3Igc29tZSB0eXBlIG9mDQo+PiBmaWxsZXIgdmFyaWFibGVzIHRvIHJlc2VydmUgdGhlIGhv bGVzIGluIHRoZSBzdHJ1Y3R1cmUuIFRoZW4gdHlwZSAxIGlzIHRoZQ0KPj4gSVBTZWMgbWJ1ZiBh bmQgaW4gdGhlIHJlc2VydmVkIHNlY3Rpb25zIG9mIHRoZSBtYnVmIGNvbnRhaW4gdGhlIElQU2Vj IHJlbGF0ZWQNCj4+IGRhdGEgd2l0aCB0aGUgc3RhbmRhcmQgbWJ1ZiBmaWVsZHMgc3RpbGwgbWF0 Y2hpbmcgdGhlIHR5cGUgMCB2ZXJzaW9uLg0KPiANCj4gVGhpcyB2ZXJ5IGxvb2sgbGlrZSB0aGUg InNlbGVjdGl2ZSBsYXlvdXQiIGluIG91ciBwcmVzZW50YXRpb24gWzFdLCBwYWdlIDE0Lg0KPiAN Cj4gWW91ciBleGFtcGxlIHRhbGtzIGFib3V0IElQc2VjLCBidXQgc29tZW9uZSBlbHNlIHdpbGwg d2FudCB0byB1c2UgYQ0KPiBzZXF1ZW5jZSBudW1iZXIsIGFub3RoZXIgb25lIGEgdGltZXN0YW1w LCBhbmQgYW5vdGhlciBvbmUgd2lsbCB3YW50IHRvDQo+IHVzZSB0aGlzIHNwYWNlIGZvciBpdHMg b3duIGFwcGxpY2F0aW9uLiBUaGVyZSBhcmUgYSBsb3Qgb2YgdXNlIGNhc2VzLA0KPiBhbmQgaXQg ZG9lcyBub3Qgc2NhbGUgdG8gaGF2ZSBhIGxheW91dCBmb3IgZWFjaCBvZiB0aGVtLiBXb3JzdCwg aWYNCj4gc29tZW9uZSB3YW50cyBJUHNlYyArIGEgc2VxdWVuY2UgbnVtYmVyLCBob3cgY2FuIGl0 IHdvcms/DQo+IA0KPiBPbmUgb2YgdGhlIHByb2JsZW0gdG8gc29sdmUgaXMgdG8gYXZvaWQgbXV0 dWFsbHkgZXhjbHVzaXZlIGZlYXR1cmUgKGkuZS4NCj4gdW5pb24gb2YgZmllbGRzIHRoYXQgY2Fu bm90IGJlIHVzZWQgdG9nZXRoZXIgaW4gdGhlIG1idWYpLg0KPiANCj4+IFRoaXMgYWxsb3dzIHRo ZSBtYnVmIHRvIGJlIHVzZWQgYnkgdGhlIGRldmVsb3BlciBhbmQgdGhlIGNvbXBpbGVyIG5vdyBr bm93cw0KPj4gZXhhY3RseSB3aGVyZSB0aGUgZmllbGRzIGFyZSBsb2NhdGVkIGluIHRoZSBzdHJ1 Y3R1cmUgYW5kIGRvZXMgbm90IGhhdmUgdG8NCj4+IGRlYWwgd2l0aCBhbnkgb2YgdGhlIG1hY3Jv cyBhbmQgb2Zmc2V0cyBhbmQgcmVnaXN0cmF0aW9uIHN1Z2dlc3RlZCBoZXJlLiBKdXN0DQo+PiBj YXN0IHRoZSBtYnVmIHBvaW50ZXIgaW50byB0aGUgbmV3IHR5cGUgbWJ1ZiBzdHJ1Y3R1cmUuIFdl IGp1c3QgaGF2ZSB0byBtYWtlDQo+PiBzdXJlIHRoZSBjb2RlIHRoYXQgbmVlZHMgdG8gdXNlIGEg Z2l2ZW4gbWJ1ZiB0eXBlIGhhcyBhY2Nlc3MgdG8gdGhlIHN0cnVjdHVyZQ0KPj4gZGVmaW5pdGlv bnMuDQo+IA0KPiBXaXRoIHRoZSBjdXJyZW50IHByb3Bvc2FsLCB3ZSBjYW4gaW1hZ2luZSBhbiBB UEkgdG8gYXNrIHRvIHJlZ2lzdGVyIGENCj4gZmllbGQgYXQgYSBzcGVjaWZpYyBvZmZzZXQuIEl0 IGNhbiB0aGVuIGJlIHVzZWQgaW4gdGhlIGFwcGxpY2F0aW9uLCBzbw0KPiB0aGF0IGFjY2Vzc2Vz IGFyZSBkb25lIGF0IG5vIGNvc3QgY29tcGFyZWQgdG8gYSBzdGF0aWMgZmllbGQsIGJlY2F1c2UN Cj4gdGhlIG9mZnNldCB3b3VsZCBiZSBjb25zdC4NCj4gDQo+IEluIHRoZSBkcml2ZXIsIHRoZSBz YW1lIGxvZ2ljIGNvdWxkIGJlIHVzZWQsIGJ1dCBkeW5hbWljYWxseToNCj4gDQo+ICBpZiAob2Zm c2V0ID09IFBSRUZFUlJFRF9PRkZTRVQpIHsNCj4gICAgLyogY29kZSB3aXRoIHN0YXRpYyBvZmZz ZXQgKi8NCj4gIH0gZWxzZSB7DQo+ICAgIC8qIGdlbmVyaWMgY29kZSAqLw0KPiAgfQ0KPiANCj4g QnV0IEknbSBub3Qgc3VyZSBpdCB3b3VsZCBzY2FsZSBhIGxvdCBpZiB0aGVyZSBhcmUgc2V2ZXJh bCBmZWF0dXJlcw0KPiB1c2luZyBkeW5hbWljIGZpZWxkcy4NCj4gDQo+PiBJZiB0aGUgbWJ1ZnMg aXQgZ29pbmcgdG8gYmUgdHJhbnNsYXRlZCBmcm9tIG9uZSB0eXBlIG1idWYgdG8gYW5vdGhlciBt YnVmDQo+PiB0eXBlLCB3ZSBqdXN0IGhhdmUgdG8gZGVmaW5lIHRoYXQgdHlwZSBhbmQgdGhlbiBj YXN0IHRoZSBtYnVmIHBvaW50ZXIgdG8gdGhhdA0KPj4gc3RydWN0dXJlLiBXaGVuIGFuIG1idWYg aXMgcmVjZWl2ZWQgZnJvbSBJUFNlYyBQTUQgdGhlbiB0aGUgYXBwbGljYXRpb24gbmVlZHMNCj4+ IHRvIGZvcndhcmQgdGhhdCBtYnVmIHRvIHRoZSBuZXh0IHN0YWdlIGl0IGNhbiByZXNldCB0aGUg dHlwZSB0byAwIG9yIHRvDQo+PiBhbm90aGVyIHR5cGUgZmlsbGluZyBpbiB0aGUgcmVzZXJ2ZWQg ZmllbGRzIHRvIGJlIHVzZWQgYnkgdGhlIG5leHQgc3RhZ2UgaW4NCj4+IHRoZSBwaXBlbGluZS4N Cj4gDQo+IFdoYXQgeW91IGRlc2NyaWJlIGlzIG9uZSB1c2UgY2FzZS4NCj4gDQo+IFdoYXQgY291 bGQgYmUgZG9uZSB3aXRoIHRoZSBBUEkgbWVudGlvbm5lZCBhYm92ZSAoYnV0IEkgdGhpbmsgaXQg aXMNCj4gZGFuZ2Vyb3VzKSwgaXMgdG8gYWxsb3cgYSB1c2VyIHRvIHJlZ2lzdGVyIDIgZGlmZmVy ZW50IGZpZWxkcyBhdCB0aGUNCj4gc2FtZSBvZmZzZXQsIHVzaW5nIGEgc3BlY2lmaWMgZmxhZy4g VGhpcyBjb3VsZCB3b3JrIGlmIHRoZSB1c2VyIGtub3dzDQo+IHRoYXQgdGhlc2UgMiBmaWVsZHMg YXJlIG5ldmVyIHVzZWQgYXQgdGhlIHNhbWUgdGltZS4NCj4gDQo+PiBUaGUgbWJ1ZiBub3cgY29u dGFpbnMgdGhlIHR5cGUgYW5kIGV2ZXJ5IHBvaW50IGluIHRoZSBhcHBsaWNhdGlvbiBjYW4gbG9v ayBhdA0KPj4gdGhlIHR5cGUgdG8gZGV0ZXJtaW5lIGhvdyB0aGF0IG1idWYgaXMgZGVmaW5lZC4g SSBhbSBzdXJlIHRoZXJlIGFyZSBzb21lIGhvbGVzDQo+PiBoZXJlLCBidXQgSSB0aGluayBpdCBp cyBhIGJldHRlciBzb2x1dGlvbiB0aGVuIHVzaW5nIGFsbCBvZiB0aGVzZSBtYWNyb3MsDQo+PiBv ZmZzZXQgdmFsdWVzIGFuZCByZWdpc3RyYXRpb24gQVBJcy4NCj4gDQo+IEknbSBub3QgY29udmlu Y2VkIGhhdmluZyBzZWxlY3RpdmUgbGF5b3V0cyBpcyBkb2FibGUuIFRoZSBsYXlvdXRzIGNhbm5v dA0KPiBmaXQgYWxsIHBvc3NpYmxlIHVzZSBjYXNlcywgYW5kIG1hbmFnaW5nIHRoZSBkaWZmZXJl bnQgbGF5b3V0cyBpbiB0aGUNCj4gZHJpdmVyIGxvb2tzIGRpZmZpY3VsdCB0byBtZS4gQWRkaXRp b25uYWx5LCBpdCBkb2VzIG5vdCBzb2x2ZSB0aGUNCj4gcHJvYmxlbSBvZiBtdXR1YWxseSBleGNs dXNpdmUgZmVhdHVyZXMuDQo+IA0KDQpJIHRvbyBhdCBvbmUgdGltZSB3YW50ZWQgc29tZSB0eXBl IG9mIGFsbG9jYXRpb24gb3IgcmVnaXN0cmF0aW9uIGZvciBwcml2YXRlIG1idWYgc3BhY2UgYW5k IGFwcGx5aW5nIHRvIHRoZXNlIGxpbWl0ZWQgZmllbGRzIGluIHRoZSBtYnVmIGhlYWRlciBtYXkg aGF2ZSBiZWVuIHJlYXNvbmFibGUuIFRoZSBwcm9ibGVtIGlzIHVzaW5nIHJlZ2lzdHJhdGlvbiBh bmQgbW92aW5nIHRoYXQgaW5mb3JtYXRpb24gYmV0d2VlbiBwcm9jZXNzZXMgaXMgZ29pbmcgdG8g YmUgaGFyZCB0byBnZXQgcmlnaHQuIEZvciBhIHNpbmdsZSBBcHBsaWFuY2UgbW9kZWwgYXBwbGlj YXRpb24gaXQgd291bGQgd29yayBncmVhdCBhbmQgbm90IGluIGEgbm9uLWFwcGxpYW5jZSBtb2Rl bCBhcHBsaWNhdGlvbnMuIFRoZSB0eXBlL3N0cnVjdHVyZSBtZXRob2QgY2FuIGhlbHAgYW5kIGl0 IGNvdWxkIGhhdmUgcHJvYmxlbXMgdG9vLCBidXQgdXNpbmcgYSB0eXBlL3N0cnVjdCBkZXNpZ24g c2VlbXMgdG8gYmUgb25lIG9mIHRoZSBCS01zIChCZXN0IEtub3duIE1ldGhvZHMpIGluIHRoZSBp bmR1c3RyeS4NCg0KVG8gYmUgaG9uZXN0IGl0IG1heWJlIHdlIGp1c3QgdGFrZSB0aGUgaGl0IGlu IHBlcmZvcm1hbmNlIGFuZCBhZGQgYSB0aGlyZCBjYWNoZSBsaW5lIGFzIEkgYW0gc3VyZSB0cnlp bmcgdG8gc3F1ZWV6ZSBtZXRhZGF0YSBpbnRvIHRoZXNlIHZlcnkgbGltaXQgZmllbGRzIHdpbGwg YmUgYSBjaGFsbGVuZ2UgSU1PLiBJIGFtIG5vdCBzdWdnZXN0aW5nIHdlIGFkZCBhIGNhY2hlIGxp bmUgdG8gZXZlcnkgbWJ1ZiBvbmx5IHRvIHRoZSBwb29scyB0aGF0IHJlcXVpcmUgdGhlIGV4dHJh IG1ldGFkYXRhIGJ5IHVzaW5nIHRoZSBwcml2YXRlIHNwYWNlIGlmIHRoYXQgaXMgcmVhc29uYWJs ZS4gVGhlIGFwcGxpY2F0aW9ucyBuZWVkaW5nIGEgbG90IG9mIG1ldGFkYXRhIHdpbGwganVzdCBo YXZlIHRvIHRha2UgdGhlIGhpdCBpbiBwZXJmb3JtYW5jZSBhbnl3YXkuDQoNCkhhdmluZyB0byBn cmFiIGEgbWV0YWRhdGEgdmFsdWUgdmlhIGEgc2V0IG9mIG1hY3JvcyBhbmQgaW5saW5lIGZ1bmN0 aW9ucyBzZWVtcyBsaWtlIGl0IHdpbGwgY29uc3VtZSBtb3JlIGN5Y2xlcyB0aGVuIGp1c3QgYSB0 eXBlL3N0cnVjdHVyZSBtZXRob2QgYXMgdGhlIGNvbXBpbGVyIHdpbGwgaGVscCBvcHRpbWl6ZSB0 aGUgY29kZSB3aXRob3V0IGhhdmluZyB0byBjYWxsIGFueSBtYWNyb3Mgb3IgaW5saW5lIGZ1bmN0 aW9ucy4NCg0KPiANCj4gVGhhbmtzIGZvciB0aGUgZmVlZGJhY2suDQo+IE9saXZpZXINCj4gDQo+ IFsxXSBodHRwczovL3N0YXRpYy5zY2hlZC5jb20vaG9zdGVkX2ZpbGVzL2RwZGtib3JkZWF1eDIw MTkvMmIvZHBkay0yMDE5MDktZHluLW1idWYucGRmDQoNClJlZ2FyZHMsDQpLZWl0aA0KDQo=