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 1ED7AA00C5; Thu, 27 Oct 2022 14:11:36 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BE25D42670; Thu, 27 Oct 2022 14:11:35 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id D9BF741153 for ; Thu, 27 Oct 2022 14:11:34 +0200 (CEST) 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: [PATCH] mempool: cache align mempool cache objects Date: Thu, 27 Oct 2022 14:11:29 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D87452@smartserver.smartshare.dk> In-Reply-To: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH] mempool: cache align mempool cache objects Thread-Index: Adjp+T0EHaO0cZgaRe6EQMFiZw7FLwAAqwKg References: <98CBD80474FA8B44BF855DF32C47DC35D8744E@smartserver.smartshare.dk> <20221026144436.71068-1-mb@smartsharesystems.com> <98CBD80474FA8B44BF855DF32C47DC35D87450@smartserver.smartshare.dk> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Olivier Matz" Cc: , , , , 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 PiBGcm9tOiBPbGl2aWVyIE1hdHogW21haWx0bzpvbGl2aWVyLm1hdHpANndpbmQuY29tXQ0KPiBT ZW50OiBUaHVyc2RheSwgMjcgT2N0b2JlciAyMDIyIDEzLjQzDQo+IA0KPiBPbiBUaHUsIE9jdCAy NywgMjAyMiBhdCAxMToyMjowN0FNICswMjAwLCBNb3J0ZW4gQnLDuHJ1cCB3cm90ZToNCj4gPiA+ IEZyb206IE9saXZpZXIgTWF0eiBbbWFpbHRvOm9saXZpZXIubWF0ekA2d2luZC5jb21dDQo+ID4g PiBTZW50OiBUaHVyc2RheSwgMjcgT2N0b2JlciAyMDIyIDEwLjM1DQo+ID4gPg0KPiA+ID4gSGkg TW9ydGVuLA0KPiA+ID4NCj4gPiA+IE9uIFdlZCwgT2N0IDI2LCAyMDIyIGF0IDA0OjQ0OjM2UE0g KzAyMDAsIE1vcnRlbiBCcsO4cnVwIHdyb3RlOg0KPiA+ID4gPiBBZGQgX19ydGVfY2FjaGVfYWxp Z25lZCB0byB0aGUgb2JqcyBhcnJheS4NCj4gPiA+ID4NCj4gPiA+ID4gSXQgbWFrZXMgbm8gZGlm ZmVyZW5jZSBpbiB0aGUgZ2VuZXJhbCBjYXNlLCBidXQgaWYgZ2V0L3B1dA0KPiBvcGVyYXRpb25z DQo+ID4gPiBhcmUNCj4gPiA+ID4gYWx3YXlzIDMyIG9iamVjdHMsIGl0IHdpbGwgcmVkdWNlIHRo ZSBudW1iZXIgb2YgbWVtb3J5IChvciBsYXN0DQo+IGxldmVsDQo+ID4gPiA+IGNhY2hlKSBhY2Nl c3NlcyBmcm9tIGZpdmUgdG8gZm91ciA2NCBCIGNhY2hlIGxpbmVzIGZvciBldmVyeQ0KPiBnZXQv cHV0DQo+ID4gPiA+IG9wZXJhdGlvbi4NCj4gPiA+ID4NCj4gPiA+ID4gRm9yIHJlYWRhYmlsaXR5 IHJlYXNvbnMsIGFuIGV4YW1wbGUgdXNpbmcgMTYgb2JqZWN0cyBmb2xsb3dzOg0KPiA+ID4gPg0K PiA+ID4gPiBDdXJyZW50bHksIHdpdGggMTYgb2JqZWN0cyAoMTI4QiksIHdlIGFjY2VzcyB0byAz DQo+ID4gPiA+IGNhY2hlIGxpbmVzOg0KPiA+ID4gPg0KPiA+ID4gPiAgICAgICDilIzilIDilIDi lIDilIDilIDilIDilIDilIDilJANCj4gPiA+ID4gICAgICAg4pSCbGVuICAgICDilIINCj4gPiA+ ID4gY2FjaGUg4pSCKioqKioqKirilIItLS0NCj4gPiA+ID4gbGluZTAg4pSCKioqKioqKirilIIg Xg0KPiA+ID4gPiAgICAgICDilIIqKioqKioqKuKUgiB8DQo+ID4gPiA+ICAgICAgIOKUnOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUpCB8IDE2IG9iamVjdHMNCj4gPiA+ID4gICAgICAg4pSCKioq KioqKirilIIgfCAxMjhCDQo+ID4gPiA+IGNhY2hlIOKUgioqKioqKioq4pSCIHwNCj4gPiA+ID4g bGluZTEg4pSCKioqKioqKirilIIgfA0KPiA+ID4gPiAgICAgICDilIIqKioqKioqKuKUgiB8DQo+ ID4gPiA+ICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUpCB8DQo+ID4gPiA+ICAg ICAgIOKUgioqKioqKioq4pSCX3ZfDQo+ID4gPiA+IGNhY2hlIOKUgiAgICAgICAg4pSCDQo+ID4g PiA+IGxpbmUyIOKUgiAgICAgICAg4pSCDQo+ID4gPiA+ICAgICAgIOKUgiAgICAgICAg4pSCDQo+ ID4gPiA+ICAgICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmA0KPiA+ID4gPg0KPiA+ ID4gPiBXaXRoIHRoZSBhbGlnbm1lbnQsIGl0IGlzIGFsc28gMyBjYWNoZSBsaW5lczoNCj4gPiA+ ID4NCj4gPiA+ID4gICAgICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQDQo+ID4gPiA+ ICAgICAgIOKUgmxlbiAgICAg4pSCDQo+ID4gPiA+IGNhY2hlIOKUgiAgICAgICAg4pSCDQo+ID4g PiA+IGxpbmUwIOKUgiAgICAgICAg4pSCDQo+ID4gPiA+ICAgICAgIOKUgiAgICAgICAg4pSCDQo+ ID4gPiA+ICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUpC0tLQ0KPiA+ID4gPiAg ICAgICDilIIqKioqKioqKuKUgiBeDQo+ID4gPiA+IGNhY2hlIOKUgioqKioqKioq4pSCIHwNCj4g PiA+ID4gbGluZTEg4pSCKioqKioqKirilIIgfA0KPiA+ID4gPiAgICAgICDilIIqKioqKioqKuKU giB8DQo+ID4gPiA+ICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUpCB8IDE2IG9i amVjdHMNCj4gPiA+ID4gICAgICAg4pSCKioqKioqKirilIIgfCAxMjhCDQo+ID4gPiA+IGNhY2hl IOKUgioqKioqKioq4pSCIHwNCj4gPiA+ID4gbGluZTIg4pSCKioqKioqKirilIIgfA0KPiA+ID4g PiAgICAgICDilIIqKioqKioqKuKUgiB2DQo+ID4gPiA+ICAgICAgIOKUlOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUmC0tLQ0KPiA+ID4gPg0KPiA+ID4gPiBIb3dldmVyLCBhY2Nlc3NpbmcgdGhl IG9iamVjdHMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgbWVtcG9vbCBjYWNoZQ0KPiBpcw0KPiA+ID4g YQ0KPiA+ID4gPiBzcGVjaWFsIGNhc2UsIHdoZXJlIGNhY2hlIGxpbmUwIGlzIGFsc28gdXNlZCBm b3Igb2JqZWN0cy4NCj4gPiA+ID4NCj4gPiA+ID4gQ29uc2lkZXIgdGhlIG5leHQgYnVyc3QgKGFu ZCBhbnkgZm9sbG93aW5nIGJ1cnN0cyk6DQo+ID4gPiA+DQo+ID4gPiA+IEN1cnJlbnQ6DQo+ID4g PiA+ICAgICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkA0KPiA+ID4gPiAgICAgICDi lIJsZW4gICAgIOKUgg0KPiA+ID4gPiBjYWNoZSDilIIgICAgICAgIOKUgg0KPiA+ID4gPiBsaW5l MCDilIIgICAgICAgIOKUgg0KPiA+ID4gPiAgICAgICDilIIgICAgICAgIOKUgg0KPiA+ID4gPiAg ICAgICDilJzilIDilIDilIDilIDilIDilIDilIDilIDilKQNCj4gPiA+ID4gICAgICAg4pSCICAg ICAgICDilIINCj4gPiA+ID4gY2FjaGUg4pSCICAgICAgICDilIINCj4gPiA+ID4gbGluZTEg4pSC ICAgICAgICDilIINCj4gPiA+ID4gICAgICAg4pSCICAgICAgICDilIINCj4gPiA+ID4gICAgICAg 4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkDQo+ID4gPiA+ICAgICAgIOKUgiAgICAgICAg 4pSCDQo+ID4gPiA+IGNhY2hlIOKUgioqKioqKioq4pSCLS0tDQo+ID4gPiA+IGxpbmUyIOKUgioq KioqKioq4pSCIF4NCj4gPiA+ID4gICAgICAg4pSCKioqKioqKirilIIgfA0KPiA+ID4gPiAgICAg ICDilJzilIDilIDilIDilIDilIDilIDilIDilIDilKQgfCAxNiBvYmplY3RzDQo+ID4gPiA+ICAg ICAgIOKUgioqKioqKioq4pSCIHwgMTI4Qg0KPiA+ID4gPiBjYWNoZSDilIIqKioqKioqKuKUgiB8 DQo+ID4gPiA+IGxpbmUzIOKUgioqKioqKioq4pSCIHwNCj4gPiA+ID4gICAgICAg4pSCKioqKioq KirilIIgfA0KPiA+ID4gPiAgICAgICDilJzilIDilIDilIDilIDilIDilIDilIDilIDilKQgfA0K PiA+ID4gPiAgICAgICDilIIqKioqKioqKuKUgl92Xw0KPiA+ID4gPiBjYWNoZSDilIIgICAgICAg IOKUgg0KPiA+ID4gPiBsaW5lNCDilIIgICAgICAgIOKUgg0KPiA+ID4gPiAgICAgICDilIIgICAg ICAgIOKUgg0KPiA+ID4gPiAgICAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgNCj4g PiA+ID4gNCBjYWNoZSBsaW5lcyB0b3VjaGVkLCBpbmNsLiBsaW5lMCBmb3IgbGVuLg0KPiA+ID4g Pg0KPiA+ID4gPiBXaXRoIHRoZSBwcm9wb3NlZCBhbGlnbm1lbnQ6DQo+ID4gPiA+ICAgICAgIOKU jOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkA0KPiA+ID4gPiAgICAgICDilIJsZW4gICAgIOKU gg0KPiA+ID4gPiBjYWNoZSDilIIgICAgICAgIOKUgg0KPiA+ID4gPiBsaW5lMCDilIIgICAgICAg IOKUgg0KPiA+ID4gPiAgICAgICDilIIgICAgICAgIOKUgg0KPiA+ID4gPiAgICAgICDilJzilIDi lIDilIDilIDilIDilIDilIDilIDilKQNCj4gPiA+ID4gICAgICAg4pSCICAgICAgICDilIINCj4g PiA+ID4gY2FjaGUg4pSCICAgICAgICDilIINCj4gPiA+ID4gbGluZTEg4pSCICAgICAgICDilIIN Cj4gPiA+ID4gICAgICAg4pSCICAgICAgICDilIINCj4gPiA+ID4gICAgICAg4pSc4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSkDQo+ID4gPiA+ICAgICAgIOKUgiAgICAgICAg4pSCDQo+ID4gPiA+ IGNhY2hlIOKUgiAgICAgICAg4pSCDQo+ID4gPiA+IGxpbmUyIOKUgiAgICAgICAg4pSCDQo+ID4g PiA+ICAgICAgIOKUgiAgICAgICAg4pSCDQo+ID4gPiA+ICAgICAgIOKUnOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUpA0KPiA+ID4gPiAgICAgICDilIIqKioqKioqKuKUgi0tLQ0KPiA+ID4gPiBj YWNoZSDilIIqKioqKioqKuKUgiBeDQo+ID4gPiA+IGxpbmUzIOKUgioqKioqKioq4pSCIHwNCj4g PiA+ID4gICAgICAg4pSCKioqKioqKirilIIgfCAxNiBvYmplY3RzDQo+ID4gPiA+ICAgICAgIOKU nOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUpCB8IDEyOEINCj4gPiA+ID4gICAgICAg4pSCKioq KioqKirilIIgfA0KPiA+ID4gPiBjYWNoZSDilIIqKioqKioqKuKUgiB8DQo+ID4gPiA+IGxpbmU0 IOKUgioqKioqKioq4pSCIHwNCj4gPiA+ID4gICAgICAg4pSCKioqKioqKirilIJfdl8NCj4gPiA+ ID4gICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYDQo+ID4gPiA+IE9ubHkgMyBj YWNoZSBsaW5lcyB0b3VjaGVkLCBpbmNsLiBsaW5lMCBmb3IgbGVuLg0KPiA+ID4NCj4gPiA+IEkg dW5kZXJzdGFuZCB5b3VyIGxvZ2ljLCBidXQgYXJlIHdlIHN1cmUgdGhhdCBoYXZpbmcgYW4gYXBw bGljYXRpb24NCj4gPiA+IHRoYXQNCj4gPiA+IHdvcmtzIHdpdGggYnVsa3Mgb2YgMzIgbWVhbnMg dGhhdCB0aGUgY2FjaGUgd2lsbCBzdGF5IGFsaWduZWQgdG8gMzINCj4gPiA+IGVsZW1lbnRzIGZv ciB0aGUgd2hvbGUgbGlmZSBvZiB0aGUgYXBwbGljYXRpb24/DQo+ID4gPg0KPiA+ID4gSW4gYW4g YXBwbGljYXRpb24sIHRoZSBhbGlnbm1lbnQgb2YgdGhlIGNhY2hlIGNhbiBjaGFuZ2UgaWYgeW91 DQo+IGhhdmUNCj4gPiA+IGFueSBvZjoNCj4gPiA+IC0gc29mdHdhcmUgcXVldWVzIChyZWFzc2Vt Ymx5IGZvciBpbnN0YW5jZSkNCj4gPiA+IC0gcGFja2V0IGR1cGxpY2F0aW9uIChicmlkZ2UsIG11 bHRpY2FzdCkNCj4gPiA+IC0gbG9jYWxseSBnZW5lcmF0ZWQgcGFja2V0cyAoa2VlcGFsaXZlLCBj b250cm9sIHByb3RvY29sKQ0KPiA+ID4gLSBwaXBlbGluZSB0byBvdGhlciBjb3Jlcw0KPiA+ID4N Cj4gPiA+IEV2ZW4gd2l0aCB0ZXN0cG1kLCB3aGljaCB3b3JrIGJ5IGJ1bGsgb2YgMzIsIEkgY2Fu IHNlZSB0aGF0IHRoZQ0KPiBzaXplDQo+ID4gPiBvZiB0aGUgY2FjaGUgZmlsbGluZyBpcyBub3Qg YWxpZ25lZCB0byAzMi4gUmlnaHQgYWZ0ZXIgc3RhcnRpbmcgdGhlDQo+ID4gPiBhcHBsaWNhdGlv biwgd2UgYWxyZWFkeSBoYXZlIHRoaXM6DQo+ID4gPg0KPiA+ID4gICBpbnRlcm5hbCBjYWNoZSBp bmZvczoNCj4gPiA+ICAgICBjYWNoZV9zaXplPTI1MA0KPiA+ID4gICAgIGNhY2hlX2NvdW50WzBd PTIzMQ0KPiA+ID4NCj4gPiA+IFRoaXMgaXMgcHJvYmFibHkgcmVsYXRlZCB0byB0aGUgaHcgcngg cmluZ3Mgc2l6ZSwgbnVtYmVyIG9mIHF1ZXVlcywNCj4gPiA+IG51bWJlciBvZiBwb3J0cy4NCj4g PiA+DQo+ID4gPiBUaGUgIjI1MCIgZGVmYXVsdCB2YWx1ZSBmb3IgY2FjaGUgc2l6ZSBpbiB0ZXN0 cG1kIGlzIHF1ZXN0aW9uYWJsZSwNCj4gYnV0DQo+ID4gPiB3aXRoIC0tbWJjYWNoZT0yNTYsIHRo ZSBiZWhhdmlvciBpcyBzaW1pbGFyLg0KPiA+ID4NCj4gPiA+IEFsc28sIHdoZW4gd2UgdHJhbnNt aXQgdG8gYSBOSUMsIHRoZSBtYnVmcyBhcmUgbm90IHJldHVybmVkDQo+IGltbWVkaWF0bHkNCj4g PiA+IHRvIHRoZSBwb29sLCB0aGV5IG1heSBzdGF5IGluIHRoZSBodyB0eCByaW5nIGR1cmluZyBz b21lIHRpbWUsDQo+IHdoaWNoIGlzDQo+ID4gPiBhIGRyaXZlciBkZWNpc2lvbi4NCj4gPiA+DQo+ ID4gPiBBZnRlciBwcm9jZXNzaW5nIHRyYWZmaWMgb24gY29yZXMgOCBhbmQgMjQgd2l0aCB0aGlz IHRlc3RwbWQsIEkNCj4gZ2V0Og0KPiA+ID4gICAgIGNhY2hlX2NvdW50WzBdPTIzMQ0KPiA+ID4g ICAgIGNhY2hlX2NvdW50WzhdPTEyMw0KPiA+ID4gICAgIGNhY2hlX2NvdW50WzI0XT0xMjINCj4g PiA+DQo+ID4gPiBJbiBteSBvcGluaW9uLCBpdCBpcyBub3QgcmVhbGlzdGljIHRvIHRoaW5rIHRo YXQgdGhlIG1lbXBvb2wgY2FjaGUNCj4gd2lsbA0KPiA+ID4gcmVtYWluIGFsaWduZWQgdG8gY2Fj aGVsaW5lcy4gSW4gdGhlc2UgY29uZGl0aW9ucywgaXQgbG9va3MgYmV0dGVyDQo+IHRvDQo+ID4g PiBrZWVwIHRoZSBzdHJ1Y3R1cmUgcGFja2VkIHRvIGF2b2lkIHdhc3RpbmcgbWVtb3J5Lg0KPiA+ DQo+ID4gSSBhZ3JlZSB0aGF0IGlzIGEgc3BlY2lhbCB1c2UgY2FzZSB0byBvbmx5IGFjY2VzcyB0 aGUgbWVtcG9vbCBjYWNoZQ0KPiBpbg0KPiA+IGJ1cnN0cyBvZiAzMiBvYmplY3RzLCBzbyB0aGUg YWNjZXNzZXMgYXJlIGFsd2F5cyBjYWNoZSBsaW5lDQo+ID4gYWxpZ25lZC4gKEdlbmVyYWxpemVk LCB0aGUgYnVyc3Qgc2l6ZSBtdXN0IG5vdCBiZSAzMjsgYSBidXJzdCBzaXplDQo+ID4gdGhhdCBp cyBhIG11bHRpcGxlIG9mIFJURV9DQUNIRV9MSU5FX1NJWkUvc2l6ZW9mKHZvaWQqKSwgaS5lLiBh IGJ1cnN0DQo+ID4gc2l6ZSBvZiA4IG9uIGEgNjQtYml0IGFyY2hpdGVjdHVyZSwgd2lsbCBkby4p DQo+IA0KPiBJcyB0aGVyZSBhIHJlYWwgc2l0dWF0aW9uIHdoZXJlIGl0IGhhcHBlbnMgdG8gYWx3 YXlzIGhhdmUgcmVhZC93cml0ZQ0KPiBhY2Nlc3NlcyBwZXIgYnVsa3Mgb2YgMzI/IEZyb20gd2hh dCBJIHNlZSBpbiBteSBxdWljayB0ZXN0LCBpdCBpcyBub3QNCj4gdGhlIGNhc2UsIGV2ZW4gd2l0 aCB0ZXN0cG1kLg0KPiANCj4gPiBBZGRpbmcgYSBob2xlIG9mIDUyIGJ5dGUgcGVyIG1lbXBvb2wg Y2FjaGUgaXMgbm90aGluZywgY29uc2lkZXJpbmcNCj4gPiB0aGF0IHRoZSBtZW1wb29sIGNhY2hl IGFscmVhZHkgdXNlcyA4IEtCIChSVEVfTUVNUE9PTF9DQUNIRV9NQVhfU0laRQ0KPiAqDQo+ID4g MiAqIHNpemVvZih2b2lkKikgPSAxMDI0ICogOCBieXRlKSBmb3IgdGhlIG9iamVjdHMuDQo+ID4N Cj4gPiBBbHNvIC0gYXNzdW1pbmcgdGhhdCBtZW1vcnkgYWxsb2NhdGlvbnMgYXJlIGNhY2hlIGxp bmUgYWxpZ25lZCAtIHRoZQ0KPiA+IDUyIGJ5dGUgb2YgdW51c2VkIG1lbW9yeSBjYW5ub3QgYmUg dXNlZCByZWdhcmRsZXNzIGlmIHRoZXkgYXJlIGJlZm9yZQ0KPiA+IG9yIGFmdGVyIHRoZSBvYmpl Y3RzLiBJbnN0ZWFkIG9mIGhhdmluZyA1MiBCIHVudXNlZCBhZnRlciB0aGUNCj4gb2JqZWN0cywN Cj4gPiB3ZSBtaWdodCBhcyB3ZWxsIGhhdmUgYSBob2xlIG9mIDUyIEIgdW51c2VkIGJlZm9yZSB0 aGUgb2JqZWN0cy4gSW4NCj4gPiBvdGhlciB3b3JkczogVGhlcmUgaXMgcmVhbGx5IG5vIGRvd25z aWRlIHRvIHRoaXMuDQo+IA0KPiBDb3JyZWN0LCB0aGUgbWVtb3J5IHdhc3RlIGFyZ3VtZW50IHRv IG5hY2sgdGhlIHBhdGNoIGlzIGludmFsaWQuDQo+IA0KPiA+IEplcmluIGFsc28gcHJlc2VudGVk IGEgc2VwYXJhdGUgYXJndW1lbnQgZm9yIG1vdmluZyB0aGUgb2JqZWN0cyB0bw0KPiA+IGFub3Ro ZXIgY2FjaGUgbGluZSB0aGFuIHRoZSBsZW4gZmllbGQ6IFRoZSByaXNrIGZvciAibG9hZC1hZnRl ci1zdG9yZQ0KPiA+IHN0YWxsIiB3aGVuIGxvYWRpbmcgdGhlIGxlbiBmaWVsZCBhZnRlciBzdG9y aW5nIG9iamVjdHMgaW4gY2FjaGUNCj4gbGluZTANCj4gPiBbMV0uDQo+ID4NCj4gPiBbMV06IGh0 dHA6Ly9pbmJveC5kcGRrLm9yZy9kZXYvQ0FMQkFFMVA0ekZZZEx3b1F1a241US1WLQ0KPiBuVHZj X1VCV21XamhhVjJ1VkJYUVJ5dFNTQUBtYWlsLmdtYWlsLmNvbS8NCj4gDQo+IEknbGwgYmUgcHJ1 ZGVudCBvbiB0aGlzIGp1c3RpZmljYXRpb24gd2l0aG91dCBudW1iZXJzLiBUaGUgY2FzZSB3aGVy ZQ0KPiB3ZQ0KPiBhY2Nlc3MgdG8gdGhlIG9iamVjdHMgb2YgdGhlIGZpcnN0IGNhY2hlIGxpbmUg KGFtb25nIHNldmVyYWwgS0IpIGlzDQo+IG1heWJlIG5vdCB0aGF0IGZyZXF1ZW50Lg0KPiANCj4g PiBBIG5ldyBpZGVhIGp1c3QgcG9wcGVkIGludG8gbXkgaGVhZDogVGhlIGhvdCBkZWJ1ZyBzdGF0 aXN0aWNzDQo+ID4gY291bnRlcnMgKHB1dF9idWxrLCBwdXRfb2JqcywgZ2V0X3N1Y2Nlc3NfYnVs aywgZ2V0X3N1Y2Nlc3Nfb2JqcykNCj4gPiBjb3VsZCBiZSBtb3ZlZCB0byB0aGlzIGZyZWUgc3Bh Y2UsIHJlZHVjaW5nIHRoZSBuZWVkIHRvIHRvdWNoIGFub3RoZXINCj4gPiBjYWNoZSBsaW5lIGZv ciBkZWJ1ZyBjb3VudGVycy4gSSBoYXZlbuKAmXQgdGhvdWdodCB0aGlzIGlkZWEgdGhyb3VnaA0K PiA+IHlldDsgaXQgbWlnaHQgY29uZmxpY3Qgd2l0aCBKZXJpbidzIGNvbW1lbnQuDQo+IA0KPiBZ ZXMsIGJ1dCBzaW5jZSB0aGUgc3RhdHMgYXJlIG9ubHkgZW5hYmxlZCB3aGVuIFJURV9MSUJSVEVf TUVNUE9PTF9ERUJVRw0KPiBpcyBzZXQsIGl0IHdvbid0IGhhdmUgYW55IGltcGFjdCBvbiBub24t ZGVidWcgYnVpbGRzLg0KDQpDb3JyZWN0LCBidXQgSSBkbyBleHBlY3QgdGhhdCBpdCB3b3VsZCBy ZWR1Y2UgdGhlIHBlcmZvcm1hbmNlIGNvc3Qgb2YgdXNpbmcgUlRFX0xJQlJURV9NRU1QT09MX0RF QlVHLiBJJ2xsIHByb3ZpZGUgc3VjaCBhIHBhdGNoIHNob3J0bHkuDQoNCj4gDQo+IA0KPiBIb25u ZXN0bHksIEkgZmluZCBpdCBoYXJkIHRvIGNvbnZpbmNlIG15c2VsZiB0aGF0IGl0IGlzIGEgcmVh bA0KPiBvcHRpbWl6YXRpb24uIEkgZG9uJ3Qgc2VlIGFueSByZWFzb24gd2h5IGl0IHdvdWxkIGJl IHNsb3dlciB0aG91Z2guIFNvDQo+IHNpbmNlIHdlIGFscmVhZHkgYnJva2UgdGhlIG1lbXBvb2wg Y2FjaGUgc3RydWN0IEFCSSBpbiBhIHByZXZpb3VzDQo+IGNvbW1pdCwgYW5kIHNpbmNlIGl0IHdv bid0IGNvbnN1bWUgbW9yZSBtZW1vcnksIEknbSBvayB0byBpbmNsdWRlIHRoYXQNCj4gcGF0Y2gu DQoNCkkgZG9uJ3Qga25vdyBpZiB0aGVyZSBhcmUgYW55IHN1Y2ggYXBwbGljYXRpb25zIG5vdywg YW5kIHlvdSBhcmUgcHJvYmFibHkgcmlnaHQgdGhhdCB0aGVyZSBhcmUgbm90LiBCdXQgdGhpcyBw YXRjaCBvcGVucyBhIHJvYWQgdG93YXJkcyBpdC4NCg0KQWNrZWQtYnkgPw0KDQo+IEl0IHdvdWxk IGJlIGdyZWF0IHRvIGhhdmUgbnVtYmVycyB0byBwdXQgc29tZSB3ZWlnaHQgaW4gdGhlDQo+IGJh bGFuY2UuDQoNClllcywgaXQgd291bGQgYWxzbyBiZSBncmVhdCBpZiBkcml2ZXJzIGRpZG4ndCBj b3B5LXBhc3RlIGNvZGUgZnJvbSB0aGUgbWVtcG9vbCBsaWJyYXJ5LCBzbyB0aGUgcGVyZm9ybWFu Y2UgZWZmZWN0IG9mIG1vZGlmaWNhdGlvbnMgaW4gdGhlIG1lbXBvb2wgbGlicmFyeSB3b3VsZCBi ZSByZWZsZWN0ZWQgaW4gc3VjaCB0ZXN0cy4NCg0KPiANCj4gDQo+IA0KPiANCj4gPg0KPiA+ID4N Cj4gPiA+IE9saXZpZXINCj4gPiA+DQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBDcmVkaXRzIGdv IHRvIE9saXZpZXIgTWF0eiBmb3IgdGhlIG5pY2UgQVNDSUkgZ3JhcGhpY3MuDQo+ID4gPiA+DQo+ ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1vcnRlbiBCcsO4cnVwIDxtYkBzbWFydHNoYXJlc3lzdGVt cy5jb20+DQo+ID4gPiA+IC0tLQ0KPiA+ID4gPiAgbGliL21lbXBvb2wvcnRlX21lbXBvb2wuaCB8 IDYgKysrKy0tDQo+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQ0KPiA+ID4gPg0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL21lbXBvb2wvcnRl X21lbXBvb2wuaA0KPiBiL2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmgNCj4gPiA+ID4gaW5kZXgg MWY1NzA3ZjQ2YS4uMzcyNWE3Mjk1MSAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvbGliL21lbXBvb2wv cnRlX21lbXBvb2wuaA0KPiA+ID4gPiArKysgYi9saWIvbWVtcG9vbC9ydGVfbWVtcG9vbC5oDQo+ ID4gPiA+IEBAIC04NiwxMSArODYsMTMgQEAgc3RydWN0IHJ0ZV9tZW1wb29sX2NhY2hlIHsNCj4g PiA+ID4gIAl1aW50MzJfdCBzaXplOwkgICAgICAvKio8IFNpemUgb2YgdGhlIGNhY2hlICovDQo+ ID4gPiA+ICAJdWludDMyX3QgZmx1c2h0aHJlc2g7IC8qKjwgVGhyZXNob2xkIGJlZm9yZSB3ZSBm bHVzaCBleGNlc3MNCj4gPiA+IGVsZW1lbnRzICovDQo+ID4gPiA+ICAJdWludDMyX3QgbGVuOwkg ICAgICAvKio8IEN1cnJlbnQgY2FjaGUgY291bnQgKi8NCj4gPiA+ID4gLQkvKg0KPiA+ID4gPiAr CS8qKg0KPiA+ID4gPiArCSAqIENhY2hlIG9iamVjdHMNCj4gPiA+ID4gKwkgKg0KPiA+ID4gPiAg CSAqIENhY2hlIGlzIGFsbG9jYXRlZCB0byB0aGlzIHNpemUgdG8gYWxsb3cgaXQgdG8gb3ZlcmZs b3cNCj4gaW4NCj4gPiA+IGNlcnRhaW4NCj4gPiA+ID4gIAkgKiBjYXNlcyB0byBhdm9pZCBuZWVk bGVzcyBlbXB0eWluZyBvZiBjYWNoZS4NCj4gPiA+ID4gIAkgKi8NCj4gPiA+ID4gLQl2b2lkICpv YmpzW1JURV9NRU1QT09MX0NBQ0hFX01BWF9TSVpFICogMl07IC8qKjwgQ2FjaGUNCj4gb2JqZWN0 cyAqLw0KPiA+ID4gPiArCXZvaWQgKm9ianNbUlRFX01FTVBPT0xfQ0FDSEVfTUFYX1NJWkUgKiAy XQ0KPiBfX3J0ZV9jYWNoZV9hbGlnbmVkOw0KPiA+ID4gPiAgfSBfX3J0ZV9jYWNoZV9hbGlnbmVk Ow0KPiA+ID4gPg0KPiA+ID4gPiAgLyoqDQo+ID4gPiA+IC0tDQo+ID4gPiA+IDIuMTcuMQ0KPiA+ ID4gPg0KPiA+DQoNCg==