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 65E5FA034C; Thu, 22 Dec 2022 16:02:43 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id ED579410D3; Thu, 22 Dec 2022 16:02:42 +0100 (CET) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id E363F410D0 for ; Thu, 22 Dec 2022 16:02:41 +0100 (CET) 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: micro-optimize put function X-MimeOLE: Produced By Microsoft Exchange V6.5 Date: Thu, 22 Dec 2022 16:02:41 +0100 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D875DE@smartserver.smartshare.dk> In-Reply-To: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v2] mempool: micro-optimize put function Thread-Index: AQHY+bT+yYInZk7j1E6wKVfv3icIqq5BsNgggAADx6CAAAFj8IAAFT8wgDM+VoCABRnf0IAABhHw References: <20221116101855.93297-1-mb@smartsharesystems.com> <20221116121416.94990-1-mb@smartsharesystems.com> <98CBD80474FA8B44BF855DF32C47DC35D874CA@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D874CC@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D875C8@smartserver.smartshare.dk> From: =?UTF-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Konstantin Ananyev" , , , Cc: , , , "nd" 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 PiBGcm9tOiBLb25zdGFudGluIEFuYW55ZXYgW21haWx0bzprb25zdGFudGluLmFuYW55ZXZAaHVh d2VpLmNvbV0NCj4gU2VudDogVGh1cnNkYXksIDIyIERlY2VtYmVyIDIwMjIgMTQuNTINCj4gDQo+ IEhpIE1vcnRlbiwNCj4gDQo+ID4gUElORyBtZW1wb29sIG1haW50YWluZXJzLg0KPiA+DQo+ID4g SWYgeW91IGRvbid0IHByb3ZpZGUgQUNLIG9yIFJldmlldyB0byBwYXRjaGVzLCBob3cgc2hvdWxk IFRob21hcyBrbm93DQo+IHRoYXQgaXQgaXMgcmVhZHkgZm9yIG1lcmdpbmc/DQo+ID4NCj4gPiAt TW9ydGVuDQo+IA0KPiBUaGUgY29kZSBjaGFuZ2VzIGl0c2VsZiBsb29rcyBvayB0byBtZS4NCj4g VGhvdWdoIEkgZG9uJ3QgdGhpbmsgaXQgd291bGQgcmVhbGx5IGJyaW5nIGFueSBub3RpY2VhYmxl IHNwZWVkdXAuDQo+IEJ1dCB5ZXMsIGl0IGxvb2tzIGEgYml0IG5pY2VyIHRoaXMgd2F5LCBlc3Bl Y2lhbGx5IHdpdGggZXh0cmEgY29tbWVudHMuDQoNCkFncmVlLCByZW1vdmluZyB0aGUgY29tcGFy ZSBhbmQgYnJhbmNoIGluc3RydWN0aW9ucyBmcm9tIHRoZSBsaWtlbHkgY29kZSBwYXRoIHByb3Zp ZGVzIG5vIG5vdGljZWFibGUgc3BlZWR1cCwgYnV0IG1ha2VzIHRoZSBjb2RlIG1vcmUgY2xlYW4u DQoNCj4gT25lIHF1ZXN0aW9uIHRob3VnaCwgd2h5IGRvIHlvdSBmZWVsIHRoaXMgYXNzZXJ0Og0K PiBSVEVfQVNTRVJUKGNhY2hlLT5sZW4gPD0gY2FjaGUtPmZsdXNodGhyZXNoKTsNCj4gaXMgbmVj ZXNzYXJ5Pw0KDQpJIGNvdWxkIGhhdmUgd3JpdHRlbiBpdCBpbnRvIHRoZSBjb21tZW50IGFib3Zl IGl0LCBidXQgaW5zdGVhZCBjaG9zZSB0byBhZGQgdGhlIGFzc2VydGlvbiBhcyBhbiBpbXByb3Zl ZCBjb21tZW50Lg0KDQo+IEkgY2FuJ3Qgc2VlIGFueSB3YXkgaXQgY291bGQgaGFwcGVuLCB1bmxl c3Mgc29tZXRoaW5nIGlzIHRvdGFsbHkgYnJva2VuDQo+IHdpdGhpbiB0aGUgYXBwLg0KDQpBZ3Jl ZS4gVGhlc2UgYXJlIHRoZSBjaXJjdW1zdGFuY2VzIHdoZXJlIGFzc2VydGlvbnMgY2FuIGNvbWUg aW50byBhY3Rpb24uIFdpdGggbW9yZSBhc3NlcnRpb25zIGluIHRoZSBjb2RlLCBpdCBpcyBsaWtl bHkgdGhhdCBsZXNzIGNvZGUgZXhlY3V0ZXMgYmVmb3JlIGhpdHRpbmcgYW4gYXNzZXJ0aW9uLCBt YWtpbmcgaXQgZWFzaWVyIHRvIGZpbmQgdGhlIHJvb3QgY2F1c2Ugb2Ygc3VjaCBlcnJvcnMuDQoN ClBsZWFzZSBub3RlIHRoYXQgUlRFX0FTU0VSVHMgYXJlIG9taXR0ZWQgdW5sZXNzIGJ1aWx0IHdp dGggUlRFX0VOQUJMRV9BU1NFUlQsIHNvIHRoaXMgYXNzZXJ0aW9uIGlzIG9taXR0ZWQgYW5kIHRo dXMgaGFzIG5vIHBlcmZvcm1hbmNlIGltcGFjdCBmb3IgYSBub3JtYWwgYnVpbGQuDQoNCj4gDQo+ ID4gPiBGcm9tOiBNb3J0ZW4gQnLDuHJ1cCBbbWFpbHRvOm1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNv bV0NCj4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgMTYgTm92ZW1iZXIgMjAyMiAxOC4zOQ0KPiA+ID4N Cj4gPiA+ID4gRnJvbTogSG9ubmFwcGEgTmFnYXJhaGFsbGkgW21haWx0bzpIb25uYXBwYS5OYWdh cmFoYWxsaUBhcm0uY29tXQ0KPiA+ID4gPiBTZW50OiBXZWRuZXNkYXksIDE2IE5vdmVtYmVyIDIw MjIgMTcuMjcNCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g TWljcm8tb3B0aW1pemF0aW9uOg0KPiA+ID4gPiA+ID4gPiBSZWR1Y2VkIHRoZSBtb3N0IGxpa2Vs eSBjb2RlIHBhdGggaW4gdGhlIGdlbmVyaWMgcHV0DQo+IGZ1bmN0aW9uDQo+ID4gPiBieQ0KPiA+ ID4gPiA+ID4gbW92aW5nIGFuDQo+ID4gPiA+ID4gPiA+IHVubGlrZWx5IGNoZWNrIG91dCBvZiB0 aGUgbW9zdCBsaWtlbHkgY29kZSBwYXRoIGFuZCBmdXJ0aGVyDQo+ID4gPiBkb3duLg0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBBbHNvIHVwZGF0ZWQgdGhlIGNvbW1lbnRzIGluIHRoZSBm dW5jdGlvbi4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gdjIgKGZlZWRiYWNrIGZyb20g QW5kcmV3IFJ5YmNoZW5rbyk6DQo+ID4gPiA+ID4gPiA+ICogTW9kaWZpZWQgY29tcGFyaXNvbiB0 byBwcmV2ZW50IG92ZXJmbG93IGlmIG4gaXMgcmVhbGx5DQo+IGh1Z2UNCj4gPiA+IGFuZA0KPiA+ ID4gPiA+ID4gPiBsZW4NCj4gPiA+ID4gPiA+IGlzDQo+ID4gPiA+ID4gPiA+ICAgbm9uLXplcm8u DQo+ID4gPiA+ID4gPiA+ICogQWRkZWQgYXNzZXJ0aW9uIGFib3V0IHRoZSBpbnZhcmlhbnQgcHJl dmVudGluZyBvdmVyZmxvdw0KPiBpbg0KPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiA+ICAgY29tcGFy aXNvbi4NCj4gPiA+ID4gPiA+ID4gKiBDcm9zc2luZyB0aGUgdGhyZXNob2xkIGlzIG5vdCBleHRy ZW1lbHkgdW5saWtlbHksIHNvDQo+IHJlbW92ZWQNCj4gPiA+ID4gPiA+IGxpa2VseSgpDQo+ID4g PiA+ID4gPiA+ICAgZnJvbSB0aGF0IGNvbXBhcmlzb24uDQo+ID4gPiA+ID4gPiA+ICAgVGhlIGNv bXBpbGVyIHdpbGwgZ2VuZXJhdGUgY29kZSB3aXRoIG9wdGltYWwgc3RhdGljDQo+IGJyYW5jaA0K PiA+ID4gPiA+ID4gcHJlZGljdGlvbg0KPiA+ID4gPiA+ID4gPiAgIGhlcmUgYW55d2F5Lg0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBNb3J0ZW4gQnLDuHJ1cCA8 bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPg0KPiA+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiA+ ID4gIGxpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmggfCAzNiArKysrKysrKysrKysrKysrKysrKy0t LS0tLS0NCj4gLS0tLQ0KPiA+ID4gLS0NCj4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+ICAxIGZp bGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pDQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9saWIvbWVtcG9vbC9ydGVfbWVtcG9vbC5o DQo+ID4gPiA+IGIvbGliL21lbXBvb2wvcnRlX21lbXBvb2wuaA0KPiA+ID4gPiA+ID4gPiBpbmRl eCA5ZjUzMGRiMjRiLi5kZDFhMzE3N2Q2IDEwMDY0NA0KPiA+ID4gPiA+ID4gPiAtLS0gYS9saWIv bWVtcG9vbC9ydGVfbWVtcG9vbC5oDQo+ID4gPiA+ID4gPiA+ICsrKyBiL2xpYi9tZW1wb29sL3J0 ZV9tZW1wb29sLmgNCj4gPiA+ID4gPiA+ID4gQEAgLTEzNjQsMzIgKzEzNjQsMzYgQEAgcnRlX21l bXBvb2xfZG9fZ2VuZXJpY19wdXQoc3RydWN0DQo+ID4gPiA+ID4gPiA+IHJ0ZV9tZW1wb29sICpt cCwgdm9pZCAqIGNvbnN0ICpvYmpfdGFibGUsICB7DQo+ID4gPiA+ID4gPiA+ICAJdm9pZCAqKmNh Y2hlX29ianM7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC0JLyogTm8gY2FjaGUgcHJv dmlkZWQgKi8NCj4gPiA+ID4gPiA+ID4gKwkvKiBObyBjYWNoZSBwcm92aWRlZD8gKi8NCj4gPiA+ ID4gPiA+ID4gIAlpZiAodW5saWtlbHkoY2FjaGUgPT0gTlVMTCkpDQo+ID4gPiA+ID4gPiA+ICAJ CWdvdG8gZHJpdmVyX2VucXVldWU7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC0JLyog aW5jcmVtZW50IHN0YXQgbm93LCBhZGRpbmcgaW4gbWVtcG9vbCBhbHdheXMNCj4gc3VjY2VzcyAq Lw0KPiA+ID4gPiA+ID4gPiArCS8qIEluY3JlbWVudCBzdGF0cyBub3csIGFkZGluZyBpbiBtZW1w b29sIGFsd2F5cw0KPiBzdWNjZWVkcy4NCj4gPiA+ID4gKi8NCj4gPiA+ID4gPiA+ID4gIAlSVEVf TUVNUE9PTF9DQUNIRV9TVEFUX0FERChjYWNoZSwgcHV0X2J1bGssIDEpOw0KPiA+ID4gPiA+ID4g PiAgCVJURV9NRU1QT09MX0NBQ0hFX1NUQVRfQUREKGNhY2hlLCBwdXRfb2Jqcywgbik7DQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC0JLyogVGhlIHJlcXVlc3QgaXRzZWxmIGlzIHRvbyBi aWcgZm9yIHRoZSBjYWNoZSAqLw0KPiA+ID4gPiA+ID4gPiAtCWlmICh1bmxpa2VseShuID4gY2Fj aGUtPmZsdXNodGhyZXNoKSkNCj4gPiA+ID4gPiA+ID4gLQkJZ290byBkcml2ZXJfZW5xdWV1ZV9z dGF0c19pbmNyZW1lbnRlZDsNCj4gPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ID4gPiAtCS8qDQo+ ID4gPiA+ID4gPiA+IC0JICogVGhlIGNhY2hlIGZvbGxvd3MgdGhlIGZvbGxvd2luZyBhbGdvcml0 aG06DQo+ID4gPiA+ID4gPiA+IC0JICogICAxLiBJZiB0aGUgb2JqZWN0cyBjYW5ub3QgYmUgYWRk ZWQgdG8gdGhlIGNhY2hlDQo+IHdpdGhvdXQNCj4gPiA+ID4gPiA+IGNyb3NzaW5nDQo+ID4gPiA+ ID4gPiA+IC0JICogICAgICB0aGUgZmx1c2ggdGhyZXNob2xkLCBmbHVzaCB0aGUgY2FjaGUgdG8g dGhlDQo+ID4gPiA+IGJhY2tlbmQuDQo+ID4gPiA+ID4gPiA+IC0JICogICAyLiBBZGQgdGhlIG9i amVjdHMgdG8gdGhlIGNhY2hlLg0KPiA+ID4gPiA+ID4gPiAtCSAqLw0KPiA+ID4gPiA+ID4gPiAr CS8qIEFzc2VydCB0aGUgaW52YXJpYW50IHByZXZlbnRpbmcgb3ZlcmZsb3cgaW4gdGhlDQo+ID4g PiA+IGNvbXBhcmlzb24NCj4gPiA+ID4gPiA+IGJlbG93Lg0KPiA+ID4gPiA+ID4gPiAqLw0KPiA+ ID4gPiA+ID4gPiArCVJURV9BU1NFUlQoY2FjaGUtPmxlbiA8PSBjYWNoZS0+Zmx1c2h0aHJlc2gp Ow0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAtCWlmIChjYWNoZS0+bGVuICsgbiA8PSBj YWNoZS0+Zmx1c2h0aHJlc2gpIHsNCj4gPiA+ID4gPiA+ID4gKwlpZiAobiA8PSBjYWNoZS0+Zmx1 c2h0aHJlc2ggLSBjYWNoZS0+bGVuKSB7DQo+ID4gPiA+ID4gPiA+ICsJCS8qDQo+ID4gPiA+ID4g PiA+ICsJCSAqIFRoZSBvYmplY3RzIGNhbiBiZSBhZGRlZCB0byB0aGUgY2FjaGUNCj4gd2l0aG91 dA0KPiA+ID4gPiBjcm9zc2luZw0KPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiA+ICsJCSAq IGZsdXNoIHRocmVzaG9sZC4NCj4gPiA+ID4gPiA+ID4gKwkJICovDQo+ID4gPiA+ID4gPiA+ICAJ CWNhY2hlX29ianMgPSAmY2FjaGUtPm9ianNbY2FjaGUtPmxlbl07DQo+ID4gPiA+ID4gPiA+ICAJ CWNhY2hlLT5sZW4gKz0gbjsNCj4gPiA+ID4gPiA+ID4gLQl9IGVsc2Ugew0KPiA+ID4gPiA+ID4g PiArCX0gZWxzZSBpZiAobGlrZWx5KG4gPD0gY2FjaGUtPmZsdXNodGhyZXNoKSkgew0KPiA+ID4g PiA+ID4gSU1PLCB0aGlzIGlzIGEgbWlzY29uZmlndXJhdGlvbiBvbiB0aGUgYXBwbGljYXRpb24g cGFydC4gSW4NCj4gdGhlDQo+ID4gPiA+IFBNRHMgSQ0KPiA+ID4gPiA+ID4gaGF2ZSBsb29rZWQg YXQsIG1heCB2YWx1ZSBvZiAnbicgaXMgY29udHJvbGxlZCBieSBjb21waWxlDQo+IHRpbWUNCj4g PiA+ID4gPiA+IGNvbnN0YW50cy4gQXBwbGljYXRpb24gY291bGQgZG8gYSBjb21waWxlIHRpbWUg Y2hlY2sgb24gdGhlDQo+IGNhY2hlDQo+ID4gPiA+ID4gPiB0aHJlc2hvbGQgb3Igd2UgY291bGQg aGF2ZSBhbm90aGVyIFJURV9BU1NFUlQgb24gdGhpcy4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRo ZXJlIGNvdWxkIGJlIGFwcGxpY2F0aW9ucyB1c2luZyBhIG1lbXBvb2wgZm9yIHNvbWV0aGluZyBl bHNlDQo+IHRoYW4NCj4gPiA+ID4gbWJ1ZnMuDQo+ID4gPiA+IEFncmVlDQo+ID4gPiA+DQo+ID4g PiA+ID4NCj4gPiA+ID4gPiBJbiB0aGF0IGNhc2UsIHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgYmUg YWxsb3dlZCB0byBnZXQvcHV0IG1hbnkNCj4gPiA+ID4gb2JqZWN0cyBpbg0KPiA+ID4gPiA+IG9u ZSB0cmFuc2FjdGlvbi4NCj4gPiA+ID4gU3RpbGwsIHRoaXMgaXMgYSBtaXNjb25maWd1cmF0aW9u IG9uIHRoZSBhcHBsaWNhdGlvbi4gT24gb25lIGhhbmQNCj4gdGhlDQo+ID4gPiA+IHRocmVzaG9s ZCBpcyBjb25maWd1cmVkIGZvciAneCcgYnV0IHRoZXkgYXJlIHNlbmRpbmcgYSByZXF1ZXN0DQo+ IHdoaWNoDQo+ID4gPiBpcw0KPiA+ID4gPiBtb3JlIHRoYW4gJ3gnLiBJdCBzaG91bGQgYmUgcG9z c2libGUgdG8gY2hhbmdlIHRoZSB0aHJlc2hvbGQNCj4gPiA+ID4gY29uZmlndXJhdGlvbiBvciBy ZWR1Y2UgdGhlIHJlcXVlc3Qgc2l6ZS4NCj4gPiA+ID4NCj4gPiA+ID4gSWYgdGhlIGFwcGxpY2F0 aW9uIGRvZXMgbm90IGZpeCB0aGUgbWlzY29uZmlndXJhdGlvbiwgaXQgaXMNCj4gcG9zc2libGUN Cj4gPiA+ID4gdGhhdCBpdCB3aWxsIGFsd2F5cyBoaXQgdGhpcyBjYXNlIGFuZCBkb2VzIG5vdCBn ZXQgdGhlIGJlbmVmaXQgb2YNCj4gPiA+IHVzaW5nDQo+ID4gPiA+IHRoZSBwZXItY29yZSBjYWNo ZS4NCj4gPiA+DQo+ID4gPiBDb3JyZWN0LiBJIHN1cHBvc2UgdGhpcyBpcyB0aGUgaW50ZW5kZWQg YmVoYXZpb3Igb2YgdGhpcyBBUEkuDQo+ID4gPg0KPiA+ID4gVGhlIHplcm8tY29weSBBUEkgcHJv cG9zZWQgaW4gYW5vdGhlciBwYXRjaCBbMV0gaGFzIHN0cmljdGVyDQo+ID4gPiByZXF1aXJlbWVu dHMgdG8gdGhlIGJ1bGsgc2l6ZS4NCj4gPiA+DQo+ID4gPiBbMV06IGh0dHA6Ly9pbmJveC5kcGRr Lm9yZy9kZXYvMjAyMjExMTUxNjE4MjIuNzA4ODYtMS0NCj4gPiA+IG1iQHNtYXJ0c2hhcmVzeXN0 ZW1zLmNvbS9ULyN1DQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBXaXRoIHRoaXMgY2hlY2ssIHdl IGFyZSBpbnRyb2R1Y2luZyBhbiBhZGRpdGlvbmFsIG1lbWNweSBhcyB3ZWxsLg0KPiBJDQo+ID4g PiBhbQ0KPiA+ID4gPiBub3Qgc3VyZSBpZiByZXVzaW5nIHRoZSBsYXRlc3QgYnVmZmVycyBpcyBi ZXR0ZXIgdGhhbiBoYXZpbmcgYW4NCj4gPiA+IG1lbWNweS4NCj4gPiA+DQo+ID4gPiBUaGVyZSBp cyBubyBhZGRpdGlvbmFsIG1lbWNweS4gVGhlIGxhcmdlIGJ1bGsgdHJhbnNmZXIgaXMgc3RvcmVk DQo+ID4gPiBkaXJlY3RseSBpbiB0aGUgYmFja2VuZCBwb29sLCBieXBhc3NpbmcgdGhlIG1lbXBv b2wgY2FjaGUuDQo+ID4gPg0KPiA+ID4gUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGNoZWNrIGlzIG5v dCBuZXcsIGl0IGhhcyBqdXN0IGJlZW4gbW92ZWQuDQo+IEJlZm9yZQ0KPiA+ID4gdGhpcyBwYXRj aCwgaXQgd2FzIGNoZWNrZWQgb24gZXZlcnkgY2FsbCAoaWYgYSBjYWNoZSBpcyBwcmVzZW50KTsN Cj4gd2l0aA0KPiA+ID4gdGhpcyBwYXRjaCwgaXQgaXMgb25seSBjaGVja2VkIGlmIHRoZSBlbnRp cmUgcmVxdWVzdCBjYW5ub3QgZ28NCj4gZGlyZWN0bHkNCj4gPiA+IGludG8gdGhlIGNhY2hlLg0K PiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKwkJ LyoNCj4gPiA+ID4gPiA+ID4gKwkJICogVGhlIHJlcXVlc3QgaXRzZWxmIGZpdHMgaW50byB0aGUg Y2FjaGUuDQo+ID4gPiA+ID4gPiA+ICsJCSAqIEJ1dCBmaXJzdCwgdGhlIGNhY2hlIG11c3QgYmUg Zmx1c2hlZCB0byB0aGUNCj4gPiA+ID4gYmFja2VuZCwgc28NCj4gPiA+ID4gPiA+ID4gKwkJICog YWRkaW5nIHRoZSBvYmplY3RzIGRvZXMgbm90IGNyb3NzIHRoZSBmbHVzaA0KPiA+ID4gPiB0aHJl c2hvbGQuDQo+ID4gPiA+ID4gPiA+ICsJCSAqLw0KPiA+ID4gPiA+ID4gPiAgCQljYWNoZV9vYmpz ID0gJmNhY2hlLT5vYmpzWzBdOw0KPiA+ID4gPiA+ID4gPiAgCQlydGVfbWVtcG9vbF9vcHNfZW5x dWV1ZV9idWxrKG1wLCBjYWNoZV9vYmpzLA0KPiBjYWNoZS0NCj4gPiA+ID4gPiA+ID4gPmxlbik7 DQo+ID4gPiA+ID4gPiA+ICAJCWNhY2hlLT5sZW4gPSBuOw0KPiA+ID4gPiA+ID4gPiArCX0gZWxz ZSB7DQo+ID4gPiA+ID4gPiA+ICsJCS8qIFRoZSByZXF1ZXN0IGl0c2VsZiBpcyB0b28gYmlnIGZv ciB0aGUgY2FjaGUuDQo+ICovDQo+ID4gPiA+ID4gPiA+ICsJCWdvdG8gZHJpdmVyX2VucXVldWVf c3RhdHNfaW5jcmVtZW50ZWQ7DQo+ID4gPiA+ID4gPiA+ICAJfQ0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiAgCS8qIEFkZCB0aGUgb2JqZWN0cyB0byB0aGUgY2FjaGUuICovIEBAIC0xMzk5 LDEzDQo+ICsxNDAzLDEzIEBADQo+ID4gPiA+ID4gPiA+IHJ0ZV9tZW1wb29sX2RvX2dlbmVyaWNf cHV0KHN0cnVjdCBydGVfbWVtcG9vbCAqbXAsIHZvaWQgKg0KPiBjb25zdA0KPiA+ID4gPiA+ID4g PiAqb2JqX3RhYmxlLA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgZHJpdmVyX2VucXVl dWU6DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC0JLyogaW5jcmVtZW50IHN0YXQgbm93 LCBhZGRpbmcgaW4gbWVtcG9vbCBhbHdheXMNCj4gc3VjY2VzcyAqLw0KPiA+ID4gPiA+ID4gPiAr CS8qIEluY3JlbWVudCBzdGF0cyBub3csIGFkZGluZyBpbiBtZW1wb29sIGFsd2F5cw0KPiBzdWNj ZWVkcy4NCj4gPiA+ID4gKi8NCj4gPiA+ID4gPiA+ID4gIAlSVEVfTUVNUE9PTF9TVEFUX0FERCht cCwgcHV0X2J1bGssIDEpOw0KPiA+ID4gPiA+ID4gPiAgCVJURV9NRU1QT09MX1NUQVRfQUREKG1w LCBwdXRfb2Jqcywgbik7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICBkcml2ZXJfZW5x dWV1ZV9zdGF0c19pbmNyZW1lbnRlZDoNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLQkv KiBwdXNoIG9iamVjdHMgdG8gdGhlIGJhY2tlbmQgKi8NCj4gPiA+ID4gPiA+ID4gKwkvKiBQdXNo IHRoZSBvYmplY3RzIHRvIHRoZSBiYWNrZW5kLiAqLw0KPiA+ID4gPiA+ID4gPiAgCXJ0ZV9tZW1w b29sX29wc19lbnF1ZXVlX2J1bGsobXAsIG9ial90YWJsZSwgbik7ICB9DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+IC0tDQo+ID4gPiA+ID4gPiA+IDIuMTcuMQ0KDQo=