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 3C119A0547; Wed, 15 Jun 2022 23:18:23 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 296A1427EB; Wed, 15 Jun 2022 23:18:23 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 19899410D0 for ; Wed, 15 Jun 2022 23:18:21 +0200 (CEST) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Subject: RE: [PATCH v2] mempool: fix get objects from mempool with cache X-MimeOLE: Produced By Microsoft Exchange V6.5 Date: Wed, 15 Jun 2022 23:18:19 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D8712B@smartserver.smartshare.dk> In-Reply-To: <20220202081426.77975-1-mb@smartsharesystems.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v2] mempool: fix get objects from mempool with cache Thread-Index: AdgYDOdJ1EuuNwntQ1+79fEKK6WFXBo67tBA References: <98CBD80474FA8B44BF855DF32C47DC35D86DB2@smartserver.smartshare.dk> <20220202081426.77975-1-mb@smartsharesystems.com> From: =?UTF-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Olivier Matz" , "Andrew Rybchenko" Cc: "Bruce Richardson" , "Jerin Jacob" , "Beilei Xing" , 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 K0NDOiBCZWlsZWkgWGluZyA8YmVpbGVpLnhpbmdAaW50ZWwuY29tPiwgaTQwZSBtYWludGFpbmVy LCBtYXkgYmUgaW50ZXJlc3RlZCBpbiB0aGUgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzIGFjaGll dmVkIGJ5IHRoaXMgcGF0Y2guDQoNCj4gRnJvbTogTW9ydGVuIEJyw7hydXAgW21haWx0bzptYkBz bWFydHNoYXJlc3lzdGVtcy5jb21dDQo+IFNlbnQ6IFdlZG5lc2RheSwgMiBGZWJydWFyeSAyMDIy IDA5LjE0DQo+IA0KPiBBIGZsdXNoIHRocmVzaG9sZCBmb3IgdGhlIG1lbXBvb2wgY2FjaGUgd2Fz IGludHJvZHVjZWQgaW4gRFBESyB2ZXJzaW9uDQo+IDEuMywgYnV0IHJ0ZV9tZW1wb29sX2RvX2dl bmVyaWNfZ2V0KCkgd2FzIG5vdCBjb21wbGV0ZWx5IHVwZGF0ZWQgYmFjaw0KPiB0aGVuLCBhbmQg c29tZSBpbmVmZmljaWVuY2llcyB3ZXJlIGludHJvZHVjZWQuDQo+IA0KPiBUaGlzIHBhdGNoIGZp eGVzIHRoZSBmb2xsb3dpbmcgaW4gcnRlX21lbXBvb2xfZG9fZ2VuZXJpY19nZXQoKToNCj4gDQo+ IDEuIFRoZSBjb2RlIHRoYXQgaW5pdGlhbGx5IHNjcmVlbnMgdGhlIGNhY2hlIHJlcXVlc3Qgd2Fz IG5vdCB1cGRhdGVkDQo+IHdpdGggdGhlIGNoYW5nZSBpbiBEUERLIHZlcnNpb24gMS4zLg0KPiBU aGUgaW5pdGlhbCBzY3JlZW5pbmcgY29tcGFyZWQgdGhlIHJlcXVlc3QgbGVuZ3RoIHRvIHRoZSBj YWNoZSBzaXplLA0KPiB3aGljaCB3YXMgY29ycmVjdCBiZWZvcmUsIGJ1dCBiZWNhbWUgaXJyZWxl dmFudCB3aXRoIHRoZSBpbnRyb2R1Y3Rpb24NCj4gb2YNCj4gdGhlIGZsdXNoIHRocmVzaG9sZC4g RS5nLiB0aGUgY2FjaGUgY2FuIGhvbGQgdXAgdG8gZmx1c2h0aHJlc2ggb2JqZWN0cywNCj4gd2hp Y2ggaXMgbW9yZSB0aGFuIGl0cyBzaXplLCBzbyBzb21lIHJlcXVlc3RzIHdlcmUgbm90IHNlcnZl ZCBmcm9tIHRoZQ0KPiBjYWNoZSwgZXZlbiB0aG91Z2ggdGhleSBjb3VsZCBiZS4NCj4gVGhlIGlu aXRpYWwgc2NyZWVuaW5nIGhhcyBub3cgYmVlbiBjb3JyZWN0ZWQgdG8gbWF0Y2ggdGhlIGluaXRp YWwNCj4gc2NyZWVuaW5nIGluIHJ0ZV9tZW1wb29sX2RvX2dlbmVyaWNfcHV0KCksIHdoaWNoIHZl cmlmaWVzIHRoYXQgYSBjYWNoZQ0KPiBpcyBwcmVzZW50LCBhbmQgdGhhdCB0aGUgbGVuZ3RoIG9m IHRoZSByZXF1ZXN0IGRvZXMgbm90IG92ZXJmbG93IHRoZQ0KPiBtZW1vcnkgYWxsb2NhdGVkIGZv ciB0aGUgY2FjaGUuDQo+IA0KPiBUaGlzIGJ1ZyBjYXVzZWQgYSBtYWpvciBwZXJmb3JtYW5jZSBk ZWdyYWRhdGlvbiBpbiBzY2VuYXJpb3Mgd2hlcmUgdGhlDQo+IGFwcGxpY2F0aW9uIGJ1cnN0IGxl bmd0aCBpcyB0aGUgc2FtZSBhcyB0aGUgY2FjaGUgc2l6ZS4gSW4gc3VjaCBjYXNlcywNCj4gdGhl IG9iamVjdHMgd2VyZSBub3QgZXZlciBmZXRjaGVkIGZyb20gdGhlIG1lbXBvb2wgY2FjaGUsIHJl Z2FyZGxlc3MgaWYNCj4gdGhleSBjb3VsZCBoYXZlIGJlZW4uDQo+IFRoaXMgc2NlbmFyaW8gb2Nj dXJzIGUuZy4gaWYgYW4gYXBwbGljYXRpb24gaGFzIGNvbmZpZ3VyZWQgYSBtZW1wb29sDQo+IHdp dGggYSBzaXplIG1hdGNoaW5nIHRoZSBhcHBsaWNhdGlvbidzIGJ1cnN0IHNpemUuDQo+IA0KPiAy LiBUaGUgZnVuY3Rpb24gaXMgYSBoZWxwZXIgZm9yIHJ0ZV9tZW1wb29sX2dlbmVyaWNfZ2V0KCks IHNvIGl0IG11c3QNCj4gYmVoYXZlIGFjY29yZGluZyB0byB0aGUgZGVzY3JpcHRpb24gb2YgdGhh dCBmdW5jdGlvbi4NCj4gU3BlY2lmaWNhbGx5LCBvYmplY3RzIG11c3QgZmlyc3QgYmUgcmV0dXJu ZWQgZnJvbSB0aGUgY2FjaGUsDQo+IHN1YnNlcXVlbnRseSBmcm9tIHRoZSByaW5nLg0KPiBBZnRl ciB0aGUgY2hhbmdlIGluIERQREsgdmVyc2lvbiAxLjMsIHRoaXMgd2FzIG5vdCB0aGUgYmVoYXZp b3Igd2hlbg0KPiB0aGUgcmVxdWVzdCB3YXMgcGFydGlhbGx5IHNhdGlzZmllZCBmcm9tIHRoZSBj YWNoZTsgaW5zdGVhZCwgdGhlDQo+IG9iamVjdHMNCj4gZnJvbSB0aGUgcmluZyB3ZXJlIHJldHVy bmVkIGFoZWFkIG9mIHRoZSBvYmplY3RzIGZyb20gdGhlIGNhY2hlLg0KPiBUaGlzIGJ1ZyBkZWdy YWRlZCBhcHBsaWNhdGlvbiBwZXJmb3JtYW5jZSBvbiBDUFVzIHdpdGggYSBzbWFsbCBMMQ0KPiBj YWNoZSwNCj4gd2hpY2ggYmVuZWZpdCBmcm9tIGhhdmluZyB0aGUgaG90IG9iamVjdHMgZmlyc3Qg aW4gdGhlIHJldHVybmVkIGFycmF5Lg0KPiAoVGhpcyBpcyBwcm9iYWJseSBhbHNvIHRoZSByZWFz b24gd2h5IHRoZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBvYmplY3RzDQo+IGluIHJldmVyc2Ugb3Jk ZXIsIHdoaWNoIGl0IHN0aWxsIGRvZXMuKQ0KPiBOb3csIGFsbCBjb2RlIHBhdGhzIGZpcnN0IHJl dHVybiBvYmplY3RzIGZyb20gdGhlIGNhY2hlLCBzdWJzZXF1ZW50bHkNCj4gZnJvbSB0aGUgcmlu Zy4NCj4gDQo+IFRoZSBmdW5jdGlvbiB3YXMgbm90IGJlaGF2aW5nIGFzIGRlc2NyaWJlZCAoYnkg dGhlIGZ1bmN0aW9uIHVzaW5nIGl0KQ0KPiBhbmQgZXhwZWN0ZWQgYnkgYXBwbGljYXRpb25zIHVz aW5nIGl0LiBUaGlzIGluIGl0c2VsZiBpcyBhbHNvIGEgYnVnLg0KPiANCj4gMy4gSWYgdGhlIGNh Y2hlIGNvdWxkIG5vdCBiZSBiYWNrZmlsbGVkLCB0aGUgZnVuY3Rpb24gd291bGQgYXR0ZW1wdA0K PiB0byBnZXQgYWxsIHRoZSByZXF1ZXN0ZWQgb2JqZWN0cyBmcm9tIHRoZSByaW5nIChpbnN0ZWFk IG9mIG9ubHkgdGhlDQo+IG51bWJlciBvZiByZXF1ZXN0ZWQgb2JqZWN0cyBtaW51cyB0aGUgb2Jq ZWN0cyBhdmFpbGFibGUgaW4gdGhlIHJpbmcpLA0KPiBhbmQgdGhlIGZ1bmN0aW9uIHdvdWxkIGZh aWwgaWYgdGhhdCBmYWlsZWQuDQo+IE5vdywgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIHJlcXVlc3Qg aXMgYWx3YXlzIHNhdGlzZmllZCBmcm9tIHRoZSBjYWNoZSwNCj4gYW5kIGlmIHRoZSBzdWJzZXF1 ZW50IGJhY2tmaWxsaW5nIG9mIHRoZSBjYWNoZSBmcm9tIHRoZSByaW5nIGZhaWxzLA0KPiBvbmx5 DQo+IHRoZSByZW1haW5pbmcgcmVxdWVzdGVkIG9iamVjdHMgYXJlIHJldHJpZXZlZCBmcm9tIHRo ZSByaW5nLg0KPiANCj4gVGhlIGZ1bmN0aW9uIHdvdWxkIGZhaWwgZGVzcGl0ZSB0aGVyZSBhcmUg ZW5vdWdoIG9iamVjdHMgaW4gdGhlIGNhY2hlDQo+IHBsdXMgdGhlIGNvbW1vbiBwb29sLg0KPiAN Cj4gNC4gVGhlIGNvZGUgZmxvdyBmb3Igc2F0aXNmeWluZyB0aGUgcmVxdWVzdCBmcm9tIHRoZSBj YWNoZSB3YXMgc2xpZ2h0bHkNCj4gaW5lZmZpY2llbnQ6DQo+IFRoZSBsaWtlbHkgY29kZSBwYXRo IHdoZXJlIHRoZSBvYmplY3RzIGFyZSBzaW1wbHkgc2VydmVkIGZyb20gdGhlIGNhY2hlDQo+IHdh cyB0cmVhdGVkIGFzIHVubGlrZWx5LiBOb3cgaXQgaXMgdHJlYXRlZCBhcyBsaWtlbHkuDQo+IEFu ZCBpbiB0aGUgY29kZSBwYXRoIHdoZXJlIHRoZSBjYWNoZSB3YXMgYmFja2ZpbGxlZCBmaXJzdCwg bnVtYmVycyB3ZXJlDQo+IGFkZGVkIGFuZCBzdWJ0cmFjdGVkIGZyb20gdGhlIGNhY2hlIGxlbmd0 aDsgbm93IHRoaXMgY29kZSBwYXRoIHNpbXBseQ0KPiBzZXRzIHRoZSBjYWNoZSBsZW5ndGggdG8g aXRzIGZpbmFsIHZhbHVlLg0KPiANCj4gdjIgY2hhbmdlcw0KPiAtIERvIG5vdCBtb2RpZnkgZGVz Y3JpcHRpb24gb2YgcmV0dXJuIHZhbHVlLiBUaGlzIGJlbG9uZ3MgaW4gYSBzZXBhcmF0ZQ0KPiBk b2MgZml4Lg0KPiAtIEVsYWJvcmF0ZSBldmVuIG1vcmUgb24gd2hpY2ggYnVncyB0aGUgbW9kaWZp Y2F0aW9ucyBmaXguDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBNb3J0ZW4gQnLDuHJ1cCA8bWJAc21h cnRzaGFyZXN5c3RlbXMuY29tPg0KPiAtLS0NCj4gIGxpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmgg fCA3NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0NCj4gIDEgZmlsZSBj aGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1n aXQgYS9saWIvbWVtcG9vbC9ydGVfbWVtcG9vbC5oIGIvbGliL21lbXBvb2wvcnRlX21lbXBvb2wu aA0KPiBpbmRleCAxZTdhM2MxNTI3Li4yODk4YzY5MGIwIDEwMDY0NA0KPiAtLS0gYS9saWIvbWVt cG9vbC9ydGVfbWVtcG9vbC5oDQo+ICsrKyBiL2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmgNCj4g QEAgLTE0NjMsMzggKzE0NjMsNzEgQEAgcnRlX21lbXBvb2xfZG9fZ2VuZXJpY19nZXQoc3RydWN0 IHJ0ZV9tZW1wb29sDQo+ICptcCwgdm9pZCAqKm9ial90YWJsZSwNCj4gIAl1aW50MzJfdCBpbmRl eCwgbGVuOw0KPiAgCXZvaWQgKipjYWNoZV9vYmpzOw0KPiANCj4gLQkvKiBObyBjYWNoZSBwcm92 aWRlZCBvciBjYW5ub3QgYmUgc2F0aXNmaWVkIGZyb20gY2FjaGUgKi8NCj4gLQlpZiAodW5saWtl bHkoY2FjaGUgPT0gTlVMTCB8fCBuID49IGNhY2hlLT5zaXplKSkNCj4gKwkvKiBObyBjYWNoZSBw cm92aWRlZCBvciBpZiBnZXQgd291bGQgb3ZlcmZsb3cgbWVtIGFsbG9jYXRlZCBmb3INCj4gY2Fj aGUgKi8NCj4gKwlpZiAodW5saWtlbHkoY2FjaGUgPT0gTlVMTCB8fCBuID4gUlRFX01FTVBPT0xf Q0FDSEVfTUFYX1NJWkUpKQ0KPiAgCQlnb3RvIHJpbmdfZGVxdWV1ZTsNCj4gDQo+IC0JY2FjaGVf b2JqcyA9IGNhY2hlLT5vYmpzOw0KPiArCWNhY2hlX29ianMgPSAmY2FjaGUtPm9ianNbY2FjaGUt Pmxlbl07DQo+ICsNCj4gKwlpZiAobiA8PSBjYWNoZS0+bGVuKSB7DQo+ICsJCS8qIFRoZSBlbnRp cmUgcmVxdWVzdCBjYW4gYmUgc2F0aXNmaWVkIGZyb20gdGhlIGNhY2hlLiAqLw0KPiArCQljYWNo ZS0+bGVuIC09IG47DQo+ICsJCWZvciAoaW5kZXggPSAwOyBpbmRleCA8IG47IGluZGV4KyspDQo+ ICsJCQkqb2JqX3RhYmxlKysgPSAqLS1jYWNoZV9vYmpzOw0KPiArDQo+ICsJCVJURV9NRU1QT09M X1NUQVRfQUREKG1wLCBnZXRfc3VjY2Vzc19idWxrLCAxKTsNCj4gKwkJUlRFX01FTVBPT0xfU1RB VF9BREQobXAsIGdldF9zdWNjZXNzX29ianMsIG4pOw0KPiANCj4gLQkvKiBDYW4gdGhpcyBiZSBz YXRpc2ZpZWQgZnJvbSB0aGUgY2FjaGU/ICovDQo+IC0JaWYgKGNhY2hlLT5sZW4gPCBuKSB7DQo+ IC0JCS8qIE5vLiBCYWNrZmlsbCB0aGUgY2FjaGUgZmlyc3QsIGFuZCB0aGVuIGZpbGwgZnJvbSBp dCAqLw0KPiAtCQl1aW50MzJfdCByZXEgPSBuICsgKGNhY2hlLT5zaXplIC0gY2FjaGUtPmxlbik7 DQo+ICsJCXJldHVybiAwOw0KPiArCX0NCj4gDQo+IC0JCS8qIEhvdyBtYW55IGRvIHdlIHJlcXVp cmUgaS5lLiBudW1iZXIgdG8gZmlsbCB0aGUgY2FjaGUgKw0KPiB0aGUgcmVxdWVzdCAqLw0KPiAt CQlyZXQgPSBydGVfbWVtcG9vbF9vcHNfZGVxdWV1ZV9idWxrKG1wLA0KPiAtCQkJJmNhY2hlLT5v YmpzW2NhY2hlLT5sZW5dLCByZXEpOw0KPiArCS8qIFNhdGlzZnkgdGhlIGZpcnN0IHBhcnQgb2Yg dGhlIHJlcXVlc3QgYnkgZGVwbGV0aW5nIHRoZSBjYWNoZS4NCj4gKi8NCj4gKwlsZW4gPSBjYWNo ZS0+bGVuOw0KPiArCWZvciAoaW5kZXggPSAwOyBpbmRleCA8IGxlbjsgaW5kZXgrKykNCj4gKwkJ Km9ial90YWJsZSsrID0gKi0tY2FjaGVfb2JqczsNCj4gKw0KPiArCS8qIE51bWJlciBvZiBvYmpl Y3RzIHJlbWFpbmluZyB0byBzYXRpc2Z5IHRoZSByZXF1ZXN0LiAqLw0KPiArCWxlbiA9IG4gLSBs ZW47DQo+ICsNCj4gKwkvKiBGaWxsIHRoZSBjYWNoZSBmcm9tIHRoZSByaW5nOyBmZXRjaCBzaXpl ICsgcmVtYWluaW5nIG9iamVjdHMuDQo+ICovDQo+ICsJcmV0ID0gcnRlX21lbXBvb2xfb3BzX2Rl cXVldWVfYnVsayhtcCwgY2FjaGUtPm9ianMsDQo+ICsJCQljYWNoZS0+c2l6ZSArIGxlbik7DQo+ ICsJaWYgKHVubGlrZWx5KHJldCA8IDApKSB7DQo+ICsJCS8qDQo+ICsJCSAqIFdlIGFyZSBidWZm ZXIgY29uc3RyYWluZWQsIGFuZCBub3QgYWJsZSB0byBhbGxvY2F0ZQ0KPiArCQkgKiBjYWNoZSAr IHJlbWFpbmluZy4NCj4gKwkJICogRG8gbm90IGZpbGwgdGhlIGNhY2hlLCBqdXN0IHNhdGlzZnkg dGhlIHJlbWFpbmluZyBwYXJ0DQo+IG9mDQo+ICsJCSAqIHRoZSByZXF1ZXN0IGRpcmVjdGx5IGZy b20gdGhlIHJpbmcuDQo+ICsJCSAqLw0KPiArCQlyZXQgPSBydGVfbWVtcG9vbF9vcHNfZGVxdWV1 ZV9idWxrKG1wLCBvYmpfdGFibGUsIGxlbik7DQo+ICAJCWlmICh1bmxpa2VseShyZXQgPCAwKSkg ew0KPiAgCQkJLyoNCj4gLQkJCSAqIEluIHRoZSBvZmYgY2hhbmNlIHRoYXQgd2UgYXJlIGJ1ZmZl ciBjb25zdHJhaW5lZCwNCj4gLQkJCSAqIHdoZXJlIHdlIGFyZSBub3QgYWJsZSB0byBhbGxvY2F0 ZSBjYWNoZSArIG4sIGdvIHRvDQo+IC0JCQkgKiB0aGUgcmluZyBkaXJlY3RseS4gSWYgdGhhdCBm YWlscywgd2UgYXJlIHRydWx5IG91dA0KPiBvZg0KPiAtCQkJICogYnVmZmVycy4NCj4gKwkJCSAq IFRoYXQgYWxzbyBmYWlsZWQuDQo+ICsJCQkgKiBObyBmdXJ0aGVyIGFjdGlvbiBpcyByZXF1aXJl ZCB0byByb2xsIHRoZSBmaXJzdA0KPiArCQkJICogcGFydCBvZiB0aGUgcmVxdWVzdCBiYWNrIGlu dG8gdGhlIGNhY2hlLCBhcyBib3RoDQo+ICsJCQkgKiBjYWNoZS0+bGVuIGFuZCB0aGUgb2JqZWN0 cyBpbiB0aGUgY2FjaGUgYXJlDQo+IGludGFjdC4NCj4gIAkJCSAqLw0KPiAtCQkJZ290byByaW5n X2RlcXVldWU7DQo+ICsJCQlSVEVfTUVNUE9PTF9TVEFUX0FERChtcCwgZ2V0X2ZhaWxfYnVsaywg MSk7DQo+ICsJCQlSVEVfTUVNUE9PTF9TVEFUX0FERChtcCwgZ2V0X2ZhaWxfb2Jqcywgbik7DQo+ ICsNCj4gKwkJCXJldHVybiByZXQ7DQo+ICAJCX0NCj4gDQo+IC0JCWNhY2hlLT5sZW4gKz0gcmVx Ow0KPiArCQkvKiBDb21taXQgdGhhdCB0aGUgY2FjaGUgd2FzIGVtcHRpZWQuICovDQo+ICsJCWNh Y2hlLT5sZW4gPSAwOw0KPiArDQo+ICsJCVJURV9NRU1QT09MX1NUQVRfQUREKG1wLCBnZXRfc3Vj Y2Vzc19idWxrLCAxKTsNCj4gKwkJUlRFX01FTVBPT0xfU1RBVF9BREQobXAsIGdldF9zdWNjZXNz X29ianMsIG4pOw0KPiArDQo+ICsJCXJldHVybiAwOw0KPiAgCX0NCj4gDQo+IC0JLyogTm93IGZp bGwgaW4gdGhlIHJlc3BvbnNlIC4uLiAqLw0KPiAtCWZvciAoaW5kZXggPSAwLCBsZW4gPSBjYWNo ZS0+bGVuIC0gMTsgaW5kZXggPCBuOyArK2luZGV4LCBsZW4tLSwNCj4gb2JqX3RhYmxlKyspDQo+ IC0JCSpvYmpfdGFibGUgPSBjYWNoZV9vYmpzW2xlbl07DQo+ICsJY2FjaGVfb2JqcyA9ICZjYWNo ZS0+b2Jqc1tjYWNoZS0+c2l6ZSArIGxlbl07DQo+IA0KPiAtCWNhY2hlLT5sZW4gLT0gbjsNCj4g KwkvKiBTYXRpc2Z5IHRoZSByZW1haW5pbmcgcGFydCBvZiB0aGUgcmVxdWVzdCBmcm9tIHRoZSBm aWxsZWQNCj4gY2FjaGUuICovDQo+ICsJY2FjaGUtPmxlbiA9IGNhY2hlLT5zaXplOw0KPiArCWZv ciAoaW5kZXggPSAwOyBpbmRleCA8IGxlbjsgaW5kZXgrKykNCj4gKwkJKm9ial90YWJsZSsrID0g Ki0tY2FjaGVfb2JqczsNCj4gDQo+ICAJUlRFX01FTVBPT0xfU1RBVF9BREQobXAsIGdldF9zdWNj ZXNzX2J1bGssIDEpOw0KPiAgCVJURV9NRU1QT09MX1NUQVRfQUREKG1wLCBnZXRfc3VjY2Vzc19v YmpzLCBuKTsNCj4gQEAgLTE1MDMsNyArMTUzNiw3IEBAIHJ0ZV9tZW1wb29sX2RvX2dlbmVyaWNf Z2V0KHN0cnVjdCBydGVfbWVtcG9vbA0KPiAqbXAsIHZvaWQgKipvYmpfdGFibGUsDQo+IA0KPiAg cmluZ19kZXF1ZXVlOg0KPiANCj4gLQkvKiBnZXQgcmVtYWluaW5nIG9iamVjdHMgZnJvbSByaW5n ICovDQo+ICsJLyogR2V0IHRoZSBvYmplY3RzIGZyb20gdGhlIHJpbmcuICovDQo+ICAJcmV0ID0g cnRlX21lbXBvb2xfb3BzX2RlcXVldWVfYnVsayhtcCwgb2JqX3RhYmxlLCBuKTsNCj4gDQo+ICAJ aWYgKHJldCA8IDApIHsNCj4gLS0NCj4gMi4xNy4xDQoNClBJTkcuDQoNCkFjY29yZGluZyB0byBQ YXRjaHdvcmsgWzFdLCB0aGlzIHBhdGNoIHByb3ZpZGVzIHVwIHRvIDEwLjkgJSBzaW5nbGUgdGhy ZWFkIHRocm91Z2hwdXQgaW1wcm92ZW1lbnQgb24gWEw3MTAgd2l0aCB4ODYsIGFuZCAwLjcgJSBp bXByb3ZlbWVudCB3aXRoIEFSTS4NCg0KU3RpbGwgbm8gaW50ZXJlc3Q/DQoNClBTOiBCcnVjZSBy ZXZpZXdlZCBWMSBvZiB0aGlzIHBhdGNoIFsyXSwgYnV0IEkgZG9uJ3QgdGhpbmsgaXQgaXMgYXBw cm9wcmlhdGUgY29weWluZyBhIFJldmlld2VkLWJ5IHRhZyBmcm9tIG9uZSB2ZXJzaW9uIG9mIGEg cGF0Y2ggdG8gYW5vdGhlciwgcmVnYXJkbGVzcyBob3cgc21hbGwgdGhlIGNoYW5nZXMgYXJlLg0K DQpbMV0gaHR0cDovL21haWxzLmRwZGsub3JnL2FyY2hpdmVzL3Rlc3QtcmVwb3J0LzIwMjItRmVi cnVhcnkvMjU2NDYyLmh0bWwNClsyXSBodHRwOi8vaW5ib3guZHBkay5vcmcvZGV2L1llYURTeGol MkZ1WjB2UE1sK0BicmljaGEzLU1PQkwuZ2VyLmNvcnAuaW50ZWwuY29tLw0KDQo=