From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= Subject: Re: mbuf changes Date: Tue, 25 Oct 2016 14:16:29 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC359EA8BA@smartserver.smartshare.dk> References: <98CBD80474FA8B44BF855DF32C47DC359EA8B1@smartserver.smartshare.dk> <7910CF2F-7087-4307-A9AC-DE0287104185@intel.com> <20161024162538.GA34988@bricha3-MOBL3.ger.corp.intel.com> <20161025093915.GJ5733@6wind.com> <98CBD80474FA8B44BF855DF32C47DC359EA8B7@smartserver.smartshare.dk> <20161025110444.GK5733@6wind.com> <20161025111357.GA43504@bricha3-MOBL3.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "Wiles, Keith" , , "Olivier Matz" , "Oleg Kuporosov" To: "Bruce Richardson" , "Adrien Mazarguil" Return-path: Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by dpdk.org (Postfix) with ESMTP id 74FFD58D4 for ; Tue, 25 Oct 2016 14:16:31 +0200 (CEST) Content-class: urn:content-classes:message In-Reply-To: <20161025111357.GA43504@bricha3-MOBL3.ger.corp.intel.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Q29tbWVudHMgaW5saW5lLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IGRldiBbbWFpbHRvOmRldi1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgQnJ1Y2UgUmlj aGFyZHNvbg0KPiBTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDI1LCAyMDE2IDE6MTQgUE0NCj4gVG86 IEFkcmllbiBNYXphcmd1aWwNCj4gQ2M6IE1vcnRlbiBCcsO4cnVwOyBXaWxlcywgS2VpdGg7IGRl dkBkcGRrLm9yZzsgT2xpdmllciBNYXR6OyBPbGVnDQo+IEt1cG9yb3Nvdg0KPiBTdWJqZWN0OiBS ZTogW2RwZGstZGV2XSBtYnVmIGNoYW5nZXMNCj4gDQo+IE9uIFR1ZSwgT2N0IDI1LCAyMDE2IGF0 IDAxOjA0OjQ0UE0gKzAyMDAsIEFkcmllbiBNYXphcmd1aWwgd3JvdGU6DQo+ID4gT24gVHVlLCBP Y3QgMjUsIDIwMTYgYXQgMTI6MTE6MDRQTSArMDIwMCwgTW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+ ID4gPiBDb21tZW50cyBpbmxpbmUuDQo+ID4gPg0KPiA+ID4gTWVkIHZlbmxpZyBoaWxzZW4gLyBr aW5kIHJlZ2FyZHMNCj4gPiA+IC0gTW9ydGVuIEJyw7hydXANCj4gPiA+DQo+ID4gPg0KPiA+ID4g PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9tOiBBZHJpZW4gTWF6YXJn dWlsIFttYWlsdG86YWRyaWVuLm1hemFyZ3VpbEA2d2luZC5jb21dDQo+ID4gPiA+IFNlbnQ6IFR1 ZXNkYXksIE9jdG9iZXIgMjUsIDIwMTYgMTE6MzkgQU0NCj4gPiA+ID4gVG86IEJydWNlIFJpY2hh cmRzb24NCj4gPiA+ID4gQ2M6IFdpbGVzLCBLZWl0aDsgTW9ydGVuIEJyw7hydXA7IGRldkBkcGRr Lm9yZzsgT2xpdmllciBNYXR6OyBPbGVnDQo+ID4gPiA+IEt1cG9yb3Nvdg0KPiA+ID4gPiBTdWJq ZWN0OiBSZTogW2RwZGstZGV2XSBtYnVmIGNoYW5nZXMNCj4gPiA+ID4NCj4gPiA+ID4gT24gTW9u LCBPY3QgMjQsIDIwMTYgYXQgMDU6MjU6MzhQTSArMDEwMCwgQnJ1Y2UgUmljaGFyZHNvbiB3cm90 ZToNCj4gPiA+ID4gPiBPbiBNb24sIE9jdCAyNCwgMjAxNiBhdCAwNDoxMTozM1BNICswMDAwLCBX aWxlcywgS2VpdGggd3JvdGU6DQo+ID4gPiA+IFsuLi5dDQo+ID4gPiA+ID4gPiA+IE9uIE9jdCAy NCwgMjAxNiwgYXQgMTA6NDkgQU0sIE1vcnRlbiBCcsO4cnVwDQo+ID4gPiA+IDxtYkBzbWFydHNo YXJlc3lzdGVtcy5jb20+IHdyb3RlOg0KPiA+ID4gPiBbLi4uXQ0KPiA+ID4gPiA+ID4gPiA1Lg0K PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBBbmQgaGVyZeKAmXMgc29tZXRoaW5nIG5ldyB0 byB0aGluayBhYm91dDoNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gbS0+bmV4dCBhbHJl YWR5IHJldmVhbHMgaWYgdGhlcmUgYXJlIG1vcmUgc2VnbWVudHMgdG8gYQ0KPiBwYWNrZXQuDQo+ ID4gPiA+IFdoaWNoIHB1cnBvc2UgZG9lcyBtLT5uYl9zZWdzIHNlcnZlIHRoYXQgaXMgbm90IGFs cmVhZHkgY292ZXJlZA0KPiBieQ0KPiA+ID4gPiBtLQ0KPiA+ID4gPiA+bmV4dD8NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IEl0IGlzIGR1cGxpY2F0ZSBpbmZvLCBidXQgbmJfc2VncyBjYW4gYmUgdXNl ZCB0byBjaGVjayB0aGUNCj4gPiA+ID4gPiB2YWxpZGl0eQ0KPiA+ID4gPiBvZg0KPiA+ID4gPiA+ IHRoZSBuZXh0IHBvaW50ZXIgd2l0aG91dCBoYXZpbmcgdG8gcmVhZCB0aGUgc2Vjb25kIG1idWYN Cj4gY2FjaGVsaW5lLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gV2hldGhlciBpdCdzIHdvcnRoIGhh dmluZyBpcyBzb21ldGhpbmcgSSdtIGhhcHB5IGVub3VnaCB0bw0KPiA+ID4gPiA+IGRpc2N1c3Ms IHRob3VnaC4NCj4gPiA+ID4NCj4gPiA+ID4gQWx0aG91Z2ggc2xvd2VyIGluIHNvbWUgY2FzZXMg dGhhbiBhIGZ1bGwgYmxvd24gIm5leHQgcGFja2V0Ig0KPiA+ID4gPiBwb2ludGVyLCBuYl9zZWdz IGNhbiBhbHNvIGJlIGNvbnZlbmllbnRseSBhYnVzZWQgdG8gbGluayBzZXZlcmFsDQo+ID4gPiA+ IHBhY2tldHMgYW5kIHRoZWlyIHNlZ21lbnRzIGluIHRoZSBzYW1lIGxpc3Qgd2l0aG91dCB3YXN0 aW5nDQo+IHNwYWNlLg0KPiA+ID4NCj4gPiA+IEkgZG9u4oCZdCB1bmRlcnN0YW5kIHRoYXQ7IGNh biB5b3UgcGxlYXNlIGVsYWJvcmF0ZT8gQXJlIHlvdSBhYnVzaW5nDQo+IG0tPm5iX3NlZ3MgYXMg YW4gaW5kZXggaW50byBhbiBhcnJheSBpbiB5b3VyIGFwcGxpY2F0aW9uPyBJZiB0aGF0IGlzDQo+ IHRoZSBjYXNlLCBhbmQgaXQgaXMgZW5kb3JzZWQgYnkgdGhlIGNvbW11bml0eSwgd2Ugc2hvdWxk IGdldCByaWQgb2YgbS0NCj4gPm5iX3NlZ3MgYW5kIGFkZCBhIG1lbWJlciBmb3IgYXBwbGljYXRp b24gc3BlY2lmaWMgdXNlIGluc3RlYWQuDQo+ID4NCj4gPiBXZWxsLCB0aGF0J3MganVzdCBhbiBp ZGVhLCBJJ20gbm90IGF3YXJlIG9mIGFueSBhcHBsaWNhdGlvbiB1c2luZw0KPiA+IHRoaXMsIGhv d2V2ZXIgdGhlIGFiaWxpdHkgdG8gbGluayBzZXZlcmFsIHBhY2tldHMgd2l0aCBzZWdtZW50cyBz ZWVtcw0KPiA+IHVzZWZ1bCB0byBtZSAoZS5nLiBidWZmZXJpbmcgcGFja2V0cykuIEhlcmUncyBh IGRpYWdyYW06DQo+ID4NCj4gPiAgLi0tLS0tLS0tLS0tLiAgIC4tLS0tLS0tLS0tLS4gICAuLS0t LS0tLS0tLS0uICAgLi0tLS0tLS0tLS0tLiAgIC4tLS0NCj4gLS0tDQo+ID4gIHwgcGt0IDAgICAg IHwgICB8IHNlZyAxICAgICB8ICAgfCBzZWcgMiAgICAgfCAgIHwgcGt0IDEgICAgIHwgICB8DQo+ IHBrdCAyDQo+ID4gIHwgICAgICBuZXh0IC0tLT58ICAgICAgbmV4dCAtLS0+fCAgICAgIG5leHQg LS0tPnwgICAgICBuZXh0IC0tLT58DQo+IC4uLg0KPiA+ICB8IG5iX3NlZ3MgMyB8ICAgfCBuYl9z ZWdzIDEgfCAgIHwgbmJfc2VncyAxIHwgICB8IG5iX3NlZ3MgMSB8ICAgfA0KPiA+ICBgLS0tLS0t LS0tLS0nICAgYC0tLS0tLS0tLS0tJyAgIGAtLS0tLS0tLS0tLScgICBgLS0tLS0tLS0tLS0nICAg YC0tLQ0KPiAtLS0NCg0KSSBzZWUuIEl0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIHJlZmVyIHRvIGEg YnVyc3Qgb2YgcGFja2V0cyAod2l0aCBzZWdtZW50cyBvciBub3QpIGJ5IGEgc2luZ2xlIG1idWYg cmVmZXJlbmNlLCBhcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgY3VycmVudCBkZXNpZ24gcGF0dGVy biBvZiB1c2luZyBhbiBhcnJheSBhbmQgbGVuZ3RoIChzdHJ1Y3QgcnRlX21idWYgKiptYnVmcywg dW5zaWduZWQgY291bnQpLg0KDQpUaGlzIHdvdWxkIHJlcXVpcmUgaW1wbGVtZW50YXRpb24gaW4g dGhlIFBNRHMgZXRjLg0KDQpBbmQgZXZlbiBpbiB0aGlzIGNhc2UsIG0tPm5iX3NlZ3MgZG9lcyBu b3QgbmVlZCB0byBiZSBhbiBpbnRlZ2VyLCBidXQgY291bGQgYmUgcmVwbGFjZWQgYnkgYSBzaW5n bGUgYml0IGluZGljYXRpbmcgaWYgdGhlIHNlZ21lbnQgaXMgYSBjb250aW51YXRpb24gb2YgYSBw YWNrZXQgb3IgdGhlIGJlZ2lubmluZyAoYWx0ZXJuYXRpdmVseSB0aGUgZW5kKSBvZiBhIHBhY2tl dCwgaS5lLiB0aGUgYml0IGNhbiBiZSBzZXQgZm9yIGVpdGhlciB0aGUgZmlyc3Qgb3IgdGhlIGxh c3Qgc2VnbWVudCBpbiB0aGUgcGFja2V0Lg0KDQpJdCBpcyBhbiBhbG1vc3QgZXF1aXZhbGVudCBh bHRlcm5hdGl2ZSB0byB0aGUgZnVuZGFtZW50YWwgZGVzaWduIHBhdHRlcm4gb2YgdXNpbmcgYW4g YXJyYXkgb2YgbWJ1ZiB3aXRoIGNvdW50LCB3aGljaCBpcyB3aWRlbHkgaW1wbGVtZW50ZWQgaW4g RFBESy4gQW5kIG0tPm5leHQgc3RpbGwgbGl2ZXMgaW4gdGhlIHNlY29uZCBjYWNoZSBsaW5lLCBz byBJIGRvbid0IHNlZSBhbnkgZ2FpbiBieSB0aGlzLg0KDQpJIHN0aWxsIGRvbid0IGdldCBob3cg bS0+bmJfc2VncyBjYW4gYmUgYWJ1c2VkIHdpdGhvdXQgbS0+bmV4dC4NCg0KDQo+ID4gPiA+ID4g T25lIG90aGVyIHBvaW50IEknbGwgbWVudGlvbiBpcyB0aGF0IHdlIG5lZWQgdG8gaGF2ZSBhDQo+ ID4gPiA+ID4gZGlzY3Vzc2lvbiBvbiBob3cvd2hlcmUgdG8gYWRkIGluIGEgdGltZXN0YW1wIHZh bHVlIGludG8gdGhlDQo+ID4gPiA+ID4gbWJ1Zi4gUGVyc29uYWxseSwgSSB0aGluayBpdCBjYW4g YmUgaW4gYSB1bmlvbiB3aXRoIHRoZQ0KPiBzZXF1ZW5jZQ0KPiA+ID4gPiA+IG51bWJlciB2YWx1 ZSwgYnV0IEkgYWxzbyBzdXNwZWN0IHRoYXQgMzItYml0cyBvZiBhIHRpbWVzdGFtcCBpcw0KPiA+ ID4gPiA+IG5vdCBnb2luZyB0byBiZSBlbm91Z2ggZm9yDQo+ID4gPiA+IG1hbnkuDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBUaG91Z2h0cz8NCj4gPiA+ID4NCj4gPiA+ID4gSWYgd2UgY29uc2lkZXIg dGhhdCB0aW1lc3RhbXAgcmVwcmVzZW50YXRpb24gc2hvdWxkIHVzZQ0KPiBuYW5vc2Vjb25kDQo+ ID4gPiA+IGdyYW51bGFyaXR5LCBhIDMyLWJpdCB2YWx1ZSBtYXkgbGlrZWx5IHdyYXAgYXJvdW5k IHRvbyBxdWlja2x5IHRvDQo+ID4gPiA+IGJlIHVzZWZ1bC4gV2UgY2FuIGFsc28gYXNzdW1lIHRo YXQgYXBwbGljYXRpb25zIHJlcXVlc3RpbmcNCj4gPiA+ID4gdGltZXN0YW1wcyBtYXkgY2FyZSBt b3JlIGFib3V0IGxhdGVuY3kgdGhhbiB0aHJvdWdocHV0LCBPbGVnDQo+IGZvdW5kDQo+ID4gPiA+ IHRoYXQgdXNpbmcgdGhlIHNlY29uZCBjYWNoZSBsaW5lIGZvciB0aGlzIHB1cnBvc2UgaGFkIGEN Cj4gbm90aWNlYWJsZSBpbXBhY3QgWzFdLg0KPiA+ID4gPg0KPiA+ID4gPiAgWzFdIGh0dHA6Ly9k cGRrLm9yZy9tbC9hcmNoaXZlcy9kZXYvMjAxNi1PY3RvYmVyLzA0OTIzNy5odG1sDQo+ID4gPg0K PiA+ID4gSSBhZ3JlZSB3aXRoIE9sZWcgYWJvdXQgdGhlIGxhdGVuY3kgdnMuIHRocm91Z2hwdXQg aW1wb3J0YW5jZSBmb3INCj4gc3VjaCBhcHBsaWNhdGlvbnMuDQo+ID4gPg0KPiA+ID4gSWYgeW91 IG5lZWQgaGlnaCByZXNvbHV0aW9uIHRpbWVzdGFtcHMsIGNvbnNpZGVyIHRoZW0gdG8gYmUNCj4g Z2VuZXJhdGVkIGJ5IHRoZSBOSUMgUlggZHJpdmVyLCBwb3NzaWJseSBieSB0aGUgaGFyZHdhcmUg aXRzZWxmDQo+IChodHRwOi8vdzNuZXcubmFwYXRlY2guY29tL2ZlYXR1cmVzL3RpbWUtcHJlY2lz aW9uL2hhcmR3YXJlLXRpbWUtDQo+IHN0YW1wKSwgc28gdGhlIHRpbWVzdGFtcCBiZWxvbmdzIGlu IHRoZSBmaXJzdCBjYWNoZSBsaW5lLiBBbmQgSSBhbQ0KPiBwcm9wb3NpbmcgdGhhdCBpdCBzaG91 bGQgaGF2ZSB0aGUgaGlnaGVzdCBwb3NzaWJsZSBhY2N1cmFjeSwgd2hpY2gNCj4gbWFrZXMgdGhl IHZhbHVlIGhhcmR3YXJlIGRlcGVuZGVudC4NCj4gPiA+DQo+ID4gPiBGdXJ0aGVybW9yZSwgSSBh bSBhcmd1aW5nIHRoYXQgd2UgbGVhdmUgaXQgdXAgdG8gdGhlIGFwcGxpY2F0aW9uIHRvDQo+IGtl ZXAgdHJhY2sgb2YgdGhlIHNsb3dseSBtb3ZpbmcgYml0cyAoaS5lLiBjb3VudGluZyB3aG9sZSBz ZWNvbmRzLA0KPiBob3VycyBhbmQgY2FsZW5kYXIgZGF0ZSkgb3V0IG9mIGJhbmQsIHNvIHdlIGRv bid0IHVzZSBwcmVjaW91cyBzcGFjZSBpbg0KPiB0aGUgbWJ1Zi4gVGhlIGFwcGxpY2F0aW9uIGRv ZXNuJ3QgbmVlZCB0aGUgTklDIFJYIGRyaXZlcidzIGZhc3QgcGF0aCB0bw0KPiBjYXB0dXJlIHdo aWNoIGRhdGUgKG9yIGV2ZW4gd2hpY2ggc2Vjb25kKSBhIHBhY2tldCB3YXMgcmVjZWl2ZWQuIFll cywNCj4gaXQgYWRkcyBjb21wbGV4aXR5IHRvIHRoZSBhcHBsaWNhdGlvbiwgYnV0IHdlIGNhbid0 IHNldCBhc2lkZSA2NCBiaXQNCj4gZm9yIGEgZ2VuZXJpYyB0aW1lc3RhbXAuIE9yIGFzIGEgd2Vp cmQgdHJhZGVvZmY6IFB1dCB0aGUgZmFzdCBtb3ZpbmcgMzINCj4gYml0IGluIHRoZSBmaXJzdCBj YWNoZSBsaW5lIGFuZCB0aGUgc2xvdyBtb3ZpbmcgMzIgYml0IGluIHRoZSBzZWNvbmQNCj4gY2Fj aGUgbGluZSwgYXMgYSBwbGFjZWhvbGRlciBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGZpbGwgb3V0 IGlmIG5lZWRlZC4NCj4gWWVzLCBpdCBtZWFucyB0aGF0IHRoZSBhcHBsaWNhdGlvbiBuZWVkcyB0 byBjaGVjayB0aGUgdGltZSBhbmQgdXBkYXRlDQo+IGl0cyB2YXJpYWJsZSBob2xkaW5nIHRoZSBz bG93IG1vdmluZyB0aW1lIG9uY2UgZXZlcnkgc2Vjb25kIG9yIHNvOyBidXQNCj4gdGhhdCBzaG91 bGQgYmUgZG9hYmxlIHdpdGhvdXQgc2lnbmlmaWNhbnQgZWZmb3J0Lg0KPiA+DQo+ID4gVGhhdCdz IGEgZ29vZCBwb2ludCwgaG93ZXZlciB3aXRob3V0IGEgNjQgYml0IHZhbHVlLCBlbGFwc2VkIHRp bWUNCj4gPiBiZXR3ZWVuIHR3byBhcmJpdHJhcnkgbWJ1ZnMgY2Fubm90IGJlIG1lYXN1cmVkIHJl bGlhYmx5IGR1ZSB0byBub3QNCj4gPiBlbm91Z2ggY29udGV4dCwgb25lIHdheSBvciBhbm90aGVy IHRoZSBsb3cgcmVzb2x1dGlvbiB2YWx1ZSBpcyBhbHNvDQo+IG5lZWRlZC4NCj4gPg0KPiA+IE9i dmlvdXNseSBsYXRlbmN5LXNlbnNpdGl2ZSBhcHBsaWNhdGlvbnMgYXJlIHVubGlrZWx5IHRvIHBl cmZvcm0NCj4gPiBsZW5ndGh5IGJ1ZmZlcmluZyBhbmQgcmVxdWlyZSB0aGlzIGJ1dCBJJ20gbm90 IHN1cmUgYWJvdXQgYWxsIHRoZQ0KPiA+IHBvc3NpYmxlIHVzZS1jYXNlcy4gQ29uc2lkZXJpbmcg bWFueSBOSUNzIGV4cG9zZSA2NCBiaXQgdGltZXN0YXBzLCBJDQo+ID4gc3VnZ2VzdCB3ZSBkbyBu b3QgdHJ1bmNhdGUgdGhlbS4NCj4gPg0KPiA+IEknbSBub3QgYSBmYW4gb2YgdGhlIHdlaXJkIHRy YWRlb2ZmIGVpdGhlciwgUE1EcyB3aWxsIGJlIHRlbXB0ZWQgdG8NCj4gPiBmaWxsIHRoZSBleHRy YSAzMiBiaXRzIHdoZW5ldmVyIHRoZXkgY2FuIGFuZCBuZWdhdGUgdGhlIHBlcmZvcm1hbmNlDQo+ ID4gaW1wcm92ZW1lbnQgb2YgdGhlIGZpcnN0IGNhY2hlIGxpbmUuDQo+IA0KPiBJIHdvdWxkIHRl bmQgdG8gYWdyZWUsIGFuZCBJIGRvbid0IHJlYWxseSBzZWUgYW55IGNvbnZlbmllbnQgd2F5IHRv DQo+IGF2b2lkIHB1dHRpbmcgaW4gYSA2NC1iaXQgZmllbGQgZm9yIHRoZSB0aW1lc3RhbXAgaW4g Y2FjaGUtbGluZSAwLiBJZg0KPiB3ZSBhcmUgb2sgd2l0aCBoYXZpbmcgdGhpcyBvdmVybGFwL3Bh cnRpYWxseSBvdmVybGFwIHdpdGggc2VxdWVuY2UNCj4gbnVtYmVyLCBpdCB3aWxsIHVzZSB1cCBh biBleHRyYSA0QiBvZiBzdG9yYWdlIGluIHRoYXQgY2FjaGVsaW5lLg0KDQpJIGFncmVlIGFib3V0 IHRoZSBsYWNrIG9mIGNvbnZlbmllbmNlISBBbmQgQWRyaWVuIGNlcnRhaW5seSBoYXMgYSBwb2lu dCBhYm91dCBQTUQgdGVtcHRhdGlvbnMuDQoNCkhvd2V2ZXIsIEkgc3RpbGwgZG9uJ3QgdGhpbmsg dGhhdCBhIE5JQ3MgYWJpbGl0eSB0byBkYXRlLXN0YW1wIGEgcGFja2V0IGlzIHN1ZmZpY2llbnQg cmVhc29uIHRvIHB1dCBhIGRhdGUtc3RhbXAgaW4gY2FjaGUgbGluZSAwIG9mIHRoZSBtYnVmLiBT dG9yaW5nIG9ubHkgdGhlIGZhc3QgbW92aW5nIDMyIGJpdCBpbiBjYWNoZSBsaW5lIDAgc2VlbXMg bGlrZSBhIGdvb2QgY29tcHJvbWlzZSB0byBtZS4NCg0KTWF5YmUgeW91IGNhbiBmaW5kIGp1c3Qg b25lIG1vcmUgYnl0ZSwgc28gaXQgY2FuIGhvbGQgMTcgbWludXRlcyB3aXRoIG5hbm9zZWNvbmQg cmVzb2x1dGlvbi4gKEknbSBqb2tpbmchKQ0KDQpQbGVhc2UgZG9uJ3Qgc2FjcmlmaWNlIHRoZSBz ZXF1ZW5jZSBudW1iZXIgZm9yIHRoZSBzZWNvbmRzL2hvdXJzL2RheXMgcGFydCBhIHRpbWVzdGFt cC4gTWF5YmUgaXQgY291bGQgYmUgY29uZmlndXJhYmxlIHRvIHVzZSBhIDMyIGJpdCBvciA2NCBi aXQgdGltZXN0YW1wLg0KDQoNCj4gSG93ZXZlciwgbmJfc2VncyBtYXkgYmUgYSBnb29kIGNhbmRp ZGF0ZSBmb3IgZGVtb3Rpb24sIGFsb25nIHdpdGgNCj4gcG9zc2libHkgdGhlIHBvcnQgdmFsdWUs IG9yIHRoZSByZWZlcmVuY2UgY291bnQuDQo+IA0KPiAvQnJ1Y2UNCj4gDQoNCg==