From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 1F50042C3E;
	Tue,  6 Jun 2023 10:34:49 +0200 (CEST)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id A2C5C40A84;
	Tue,  6 Jun 2023 10:34:48 +0200 (CEST)
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com
 [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 137BF40697
 for <dev@dpdk.org>; Tue,  6 Jun 2023 10:34:47 +0200 (CEST)
Received: from frapeml100006.china.huawei.com (unknown [172.18.147.201])
 by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4Qb3g96YM6z67K7y;
 Tue,  6 Jun 2023 16:34:29 +0800 (CST)
Received: from frapeml500007.china.huawei.com (7.182.85.172) by
 frapeml100006.china.huawei.com (7.182.85.201) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.23; Tue, 6 Jun 2023 10:34:46 +0200
Received: from frapeml500007.china.huawei.com ([7.182.85.172]) by
 frapeml500007.china.huawei.com ([7.182.85.172]) with mapi id 15.01.2507.023;
 Tue, 6 Jun 2023 10:34:46 +0200
From: Konstantin Ananyev <konstantin.ananyev@huawei.com>
To: Feifei Wang <Feifei.Wang2@arm.com>,
 =?utf-8?B?0JrQvtC90YHRgtCw0L3RgtC40L0g0JDQvdCw0L3RjNC10LI=?=
 <konstantin.v.ananyev@yandex.ru>, "thomas@monjalon.net"
 <thomas@monjalon.net>, Ferruh Yigit <ferruh.yigit@amd.com>, Andrew Rybchenko
 <andrew.rybchenko@oktetlabs.ru>
CC: "dev@dpdk.org" <dev@dpdk.org>, nd <nd@arm.com>, Honnappa Nagarahalli
 <Honnappa.Nagarahalli@arm.com>, Ruifeng Wang <Ruifeng.Wang@arm.com>, nd
 <nd@arm.com>, nd <nd@arm.com>
Subject: RE: [PATCH v6 1/4] ethdev: add API for mbufs recycle mode
Thread-Topic: [PATCH v6 1/4] ethdev: add API for mbufs recycle mode
Thread-Index: AQHZju3Ef0UoE2EPTUCvSDiUqZI8Fq98GhsAgADrUoCAAGhgsP//5KGAgAAxIsA=
Date: Tue, 6 Jun 2023 08:34:46 +0000
Message-ID: <07e46ddd2d6d4e3ca7f9958ecc1fa5b7@huawei.com>
References: <20211224164613.32569-1-feifei.wang2@arm.com>
 <20230525094541.331338-1-feifei.wang2@arm.com>
 <20230525094541.331338-2-feifei.wang2@arm.com>
 <658741685969010@mail.yandex.ru>
 <AS8PR08MB7718588CACBAF7D0D53F2EB8C852A@AS8PR08MB7718.eurprd08.prod.outlook.com>
 <be04580f54df40e285eaeb1aefee904a@huawei.com>
 <AS8PR08MB7718FE24D012F828D4249105C852A@AS8PR08MB7718.eurprd08.prod.outlook.com>
In-Reply-To: <AS8PR08MB7718FE24D012F828D4249105C852A@AS8PR08MB7718.eurprd08.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.81.189.224]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

DQoNCj4gDQo+IFsuLi5dDQo+ID4gPiBQcm9iYWJseSBJIGFtIG1pc3Npbmcgc29tZXRoaW5nLCBi
dXQgd2h5IGl0IGlzIG5vdCBwb3NzaWJsZSB0byBkbyBzb21ldGhpbmcNCj4gPiBsaWtlIHRoYXQ6
DQo+ID4gPg0KPiA+ID4gcnRlX2V0aF9yZWN5Y2xlX21idWZzKHJ4X3BvcnRfaWQ9WCwgcnhfcXVl
dWVfaWQ9WSwgdHhfcG9ydF9pZD1OLA0KPiA+ID4gdHhfcXVldWVfaWQ9TSwgLi4uKTsgLi4uLg0K
PiA+ID4gcnRlX2V0aF9yZWN5Y2xlX21idWZzKHJ4X3BvcnRfaWQ9WCwgcnhfcXVldWVfaWQ9WSwg
dHhfcG9ydF9pZD1OLA0KPiA+ID4gdHhfcXVldWVfaWQ9SywgLi4uKTsNCj4gPiA+DQo+ID4gPiBJ
LkUuIGZlZWQgcnggcXVldWUgZnJvbSAyIHR4IHF1ZXVlcz8NCj4gPiA+DQo+ID4gPiBUd28gcHJv
YmxlbXMgZm9yIHRoaXM6DQo+ID4gPiAxLiBJZiB3ZSBoYXZlIDIgdHggcXVldWVzIGZvciByeCwg
dGhlIHRocmVhZCBzaG91bGQgbWFrZSB0aGUgZXh0cmENCj4gPiA+IGp1ZGdlbWVudCB0byBkZWNp
ZGUgd2hpY2ggb25lIHRvIGNob29zZSBpbiB0aGUgZHJpdmVyIGxheWVyLg0KPiA+DQo+ID4gTm90
IHN1cmUsIHdoeSBvbiB0aGUgZHJpdmVyIGxheWVyPw0KPiA+IFRoZSBleGFtcGxlIEkgZ2F2ZSBh
Ym92ZSAtIGRlY2lzaW9uIGlzIG1hZGUgb24gYXBwbGljYXRpb24gbGF5ZXIuDQo+ID4gTGV0cyBz
YXkgZmlyc3QgY2FsbCBkaWRuJ3QgZnJlZSBlbm91Z2ggbWJ1ZnMsIHNvIGFwcCBkZWNpZGVkIHRv
IHVzZSBzZWNvbmQgdHhxDQo+ID4gZm9yIHJlYXJtLg0KPiBbRmVpZmVpXSBJIHRoaW5rIGN1cnJl
bnRseSBtYnVmIHJlY3ljbGUgbW9kZSBjYW4gc3VwcG9ydCB0aGlzIHVzYWdlLiBGb3IgZXhhbXBs
ZXM6DQo+IG4gPSAgcnRlX2V0aF9yZWN5Y2xlX21idWZzKHJ4X3BvcnRfaWQ9WCwgcnhfcXVldWVf
aWQ9WSwgdHhfcG9ydF9pZD1OLCB0eF9xdWV1ZV9pZD1NLCAuLi4pOw0KPiBpZiAobiA8IHBsYW5u
ZWRfbnVtYmVyKQ0KPiBydGVfZXRoX3JlY3ljbGVfbWJ1ZnMocnhfcG9ydF9pZD1YLCByeF9xdWV1
ZV9pZD1ZLCB0eF9wb3J0X2lkPU4sIHR4X3F1ZXVlX2lkPUssIC4uLik7DQo+IA0KPiBUaHVzLCBp
ZiB1c2VycyB3YW50LCB0aGV5IGNhbiBkbyBsaWtlIHRoaXMuDQoNClllcywgdGhhdCB3YXMgbXkg
dGhvdWdodCwgdGhhdCdzIHdoeSBJIHdhcyBzdXJwcmlzZSB0aGF0IGluIHRoZSBjb21tZW50cyB3
ZSBoYXZlOg0KIiBDdXJyZW50bHksIHRoZSBydGVfZXRoX3JlY3ljbGVfbWJ1ZnMoKSBmdW5jdGlv
biBjYW4gb25seSBzdXBwb3J0IG9uZS10aW1lIHBhaXJpbmcNCiogYmV0d2VlbiB0aGUgcmVjZWl2
ZSBxdWV1ZSBhbmQgdHJhbnNtaXQgcXVldWUuIERvIG5vdCBwYWlyIG9uZSByZWNlaXZlIHF1ZXVl
IHdpdGgNCiAqIG11bHRpcGxlIHRyYW5zbWl0IHF1ZXVlcyBvciBwYWlyIG9uZSB0cmFuc21pdCBx
dWV1ZSB3aXRoIG11bHRpcGxlIHJlY2VpdmUgcXVldWVzLA0KICogaW4gb3JkZXIgdG8gYXZvaWQg
bWVtb3J5IGVycm9yIHJld3JpdGluZy4iDQoNCj4gDQo+ID4NCj4gPiA+IE9uIHRoZSBvdGhlciBo
YW5kLCBjdXJyZW50IG1lY2hhbmlzbSBjYW4gc3VwcG9ydCB1c2VycyB0byBzd2l0Y2ggMSB0eHEN
Cj4gPiA+IHRvIGFub3RoZXIgdGltZWx5IGluIHRoZSBhcHBsaWNhdGlvbiBsYXllci4gSWYgdXNl
ciB3YW50IHRvIGNob29zZQ0KPiA+ID4gYW5vdGhlciB0eHEsIGhlIGp1c3QgbmVlZCB0byBjaGFu
Z2UgdGhlIHR4cV9xdWV1ZV9pZCBwYXJhbWV0ZXIgaW4gdGhlIEFQSS4NCj4gPiA+IDIuIElmIHlv
dSB3YW50IG9uZSByeHEgdG8gc3VwcG9ydCB0d28gdHhxIGF0IHRoZSBzYW1lIHRpbWUsIHRoaXMg
bmVlZHMNCj4gPiA+IHRvIGFkZCBzcGlubG9jayBvbiBndWFyZCB2YXJpYWJsZSB0byBhdm9pZCBt
dWx0aS10aHJlYWQgY29uZmxpY3QuDQo+ID4gPiBTcGlubG9jayB3aWxsIGRlY3JlYXNlIHRoZSBk
YXRhLXBhdGggcGVyZm9ybWFuY2UgZ3JlYXRseS4gIFRodXMsIHdlIGRvDQo+ID4gPiBub3QgY29u
c2lkZXINCj4gPiA+IDEgcnhxIG1hcHBpbmcgbXVsdGlwbGUgdHhxcyBoZXJlLg0KPiA+DQo+ID4g
SSBhbSB0YWxraW5nIGFib3V0IHNpdHVhdGlvbiB3aGVuIG9uZSB0aHJlYWQgY29udHJvbHMgMiB0
eCBxdWV1ZXMuDQo+ID4NCj4gPiA+ICsgKg0KPiA+ID4gKyAqIEBwYXJhbSByeF9wb3J0X2lkDQo+
ID4gPiArICogUG9ydCBpZGVudGlmeWluZyB0aGUgcmVjZWl2ZSBzaWRlLg0KPiA+ID4gKyAqIEBw
YXJhbSByeF9xdWV1ZV9pZA0KPiA+ID4gKyAqIFRoZSBpbmRleCBvZiB0aGUgcmVjZWl2ZSBxdWV1
ZSBpZGVudGlmeWluZyB0aGUgcmVjZWl2ZSBzaWRlLg0KPiA+ID4gKyAqIFRoZSB2YWx1ZSBtdXN0
IGJlIGluIHRoZSByYW5nZSBbMCwgbmJfcnhfcXVldWUgLSAxXSBwcmV2aW91c2x5DQo+ID4gPiAr
c3VwcGxpZWQNCj4gPiA+ICsgKiB0byBydGVfZXRoX2Rldl9jb25maWd1cmUoKS4NCj4gPiA+ICsg
KiBAcGFyYW0gdHhfcG9ydF9pZA0KPiA+ID4gKyAqIFBvcnQgaWRlbnRpZnlpbmcgdGhlIHRyYW5z
bWl0IHNpZGUuDQo+ID4gPiArICogQHBhcmFtIHR4X3F1ZXVlX2lkDQo+ID4gPiArICogVGhlIGlu
ZGV4IG9mIHRoZSB0cmFuc21pdCBxdWV1ZSBpZGVudGlmeWluZyB0aGUgdHJhbnNtaXQgc2lkZS4N
Cj4gPiA+ICsgKiBUaGUgdmFsdWUgbXVzdCBiZSBpbiB0aGUgcmFuZ2UgWzAsIG5iX3R4X3F1ZXVl
IC0gMV0gcHJldmlvdXNseQ0KPiA+ID4gK3N1cHBsaWVkDQo+ID4gPiArICogdG8gcnRlX2V0aF9k
ZXZfY29uZmlndXJlKCkuDQo+ID4gPiArICogQHBhcmFtIHJlY3ljbGVfcnhxX2luZm8NCj4gPiA+
ICsgKiBBIHBvaW50ZXIgdG8gYSBzdHJ1Y3R1cmUgb2YgdHlwZSAqcnRlX2V0aF9yZWN5Y2xlX3J4
cV9pbmZvKiB3aGljaA0KPiA+ID4gK2NvbnRhaW5zDQo+ID4gPiArICogdGhlIGluZm9ybWF0aW9u
IG9mIHRoZSBSeCBxdWV1ZSBtYnVmIHJpbmcuDQo+ID4gPiArICogQHJldHVybg0KPiA+ID4gKyAq
IFRoZSBudW1iZXIgb2YgcmVjeWNsaW5nIG1idWZzLg0KPiA+ID4gKyAqLw0KPiA+ID4gK19fcnRl
X2V4cGVyaW1lbnRhbA0KPiA+ID4gK3N0YXRpYyBpbmxpbmUgdWludDE2X3QNCj4gPiA+ICtydGVf
ZXRoX3JlY3ljbGVfbWJ1ZnModWludDE2X3QgcnhfcG9ydF9pZCwgdWludDE2X3QgcnhfcXVldWVf
aWQsDQo+ID4gPiArdWludDE2X3QgdHhfcG9ydF9pZCwgdWludDE2X3QgdHhfcXVldWVfaWQsICBz
dHJ1Y3QNCj4gPiA+ICtydGVfZXRoX3JlY3ljbGVfcnhxX2luZm8gKnJlY3ljbGVfcnhxX2luZm8p
IHsgIHN0cnVjdCBydGVfZXRoX2ZwX29wcw0KPiA+ID4gKypwOyAgdm9pZCAqcWQ7ICB1aW50MTZf
dCBuYl9tYnVmczsNCj4gPiA+ICsNCj4gPiA+ICsjaWZkZWYgUlRFX0VUSERFVl9ERUJVR19UWA0K
PiA+ID4gKyBpZiAodHhfcG9ydF9pZCA+PSBSVEVfTUFYX0VUSFBPUlRTIHx8ICB0eF9xdWV1ZV9p
ZCA+PQ0KPiA+ID4gK1JURV9NQVhfUVVFVUVTX1BFUl9QT1JUKSB7ICBSVEVfRVRIREVWX0xPRyhF
UlIsICAiSW52YWxpZA0KPiA+ID4gK3R4X3BvcnRfaWQ9JXUgb3IgdHhfcXVldWVfaWQ9JXVcbiIs
ICB0eF9wb3J0X2lkLCB0eF9xdWV1ZV9pZCk7DQo+ID4gPiArcmV0dXJuIDA7ICB9ICNlbmRpZg0K
PiA+ID4gKw0KPiA+ID4gKyAvKiBmZXRjaCBwb2ludGVyIHRvIHF1ZXVlIGRhdGEgKi8NCj4gPiA+
ICsgcCA9ICZydGVfZXRoX2ZwX29wc1t0eF9wb3J0X2lkXTsNCj4gPiA+ICsgcWQgPSBwLT50eHEu
ZGF0YVt0eF9xdWV1ZV9pZF07DQo+ID4gPiArDQo+ID4gPiArI2lmZGVmIFJURV9FVEhERVZfREVC
VUdfVFgNCj4gPiA+ICsgUlRFX0VUSF9WQUxJRF9QT1JUSURfT1JfRVJSX1JFVCh0eF9wb3J0X2lk
LCAwKTsNCj4gPiA+ICsNCj4gPiA+ICsgaWYgKHFkID09IE5VTEwpIHsNCj4gPiA+ICsgUlRFX0VU
SERFVl9MT0coRVJSLCAiSW52YWxpZCBUeCBxdWV1ZV9pZD0ldSBmb3IgcG9ydF9pZD0ldVxuIiwN
Cj4gPiA+ICt0eF9xdWV1ZV9pZCwgdHhfcG9ydF9pZCk7ICByZXR1cm4gMDsgIH0gI2VuZGlmICBp
Zg0KPiA+ID4gKyhwLT5yZWN5Y2xlX3R4X21idWZzX3JldXNlID09IE5VTEwpICByZXR1cm4gMDsN
Cj4gPiA+ICsNCj4gPiA+ICsgLyogQ29weSB1c2VkICpydGVfbWJ1ZiogYnVmZmVyIHBvaW50ZXJz
IGZyb20gVHggbWJ1ZiByaW5nDQo+ID4gPiArICogaW50byBSeCBtYnVmIHJpbmcuDQo+ID4gPiAr
ICovDQo+ID4gPiArIG5iX21idWZzID0gcC0+cmVjeWNsZV90eF9tYnVmc19yZXVzZShxZCwgcmVj
eWNsZV9yeHFfaW5mbyk7DQo+ID4gPiArDQo+ID4gPiArIC8qIElmIG5vIHJlY3ljbGluZyBtYnVm
cywgcmV0dXJuIDAuICovIGlmIChuYl9tYnVmcyA9PSAwKSByZXR1cm4gMDsNCj4gPiA+ICsNCj4g
PiA+ICsjaWZkZWYgUlRFX0VUSERFVl9ERUJVR19SWA0KPiA+ID4gKyBpZiAocnhfcG9ydF9pZCA+
PSBSVEVfTUFYX0VUSFBPUlRTIHx8ICByeF9xdWV1ZV9pZCA+PQ0KPiA+ID4gK1JURV9NQVhfUVVF
VUVTX1BFUl9QT1JUKSB7ICBSVEVfRVRIREVWX0xPRyhFUlIsICJJbnZhbGlkDQo+ID4gPiArcnhf
cG9ydF9pZD0ldSBvciByeF9xdWV1ZV9pZD0ldVxuIiwgIHJ4X3BvcnRfaWQsIHJ4X3F1ZXVlX2lk
KTsNCj4gPiA+ICtyZXR1cm4gMDsgIH0gI2VuZGlmDQo+ID4gPiArDQo+ID4gPiArIC8qIGZldGNo
IHBvaW50ZXIgdG8gcXVldWUgZGF0YSAqLw0KPiA+ID4gKyBwID0gJnJ0ZV9ldGhfZnBfb3BzW3J4
X3BvcnRfaWRdOw0KPiA+ID4gKyBxZCA9IHAtPnJ4cS5kYXRhW3J4X3F1ZXVlX2lkXTsNCj4gPiA+
ICsNCj4gPiA+ICsjaWZkZWYgUlRFX0VUSERFVl9ERUJVR19SWA0KPiA+ID4gKyBSVEVfRVRIX1ZB
TElEX1BPUlRJRF9PUl9FUlJfUkVUKHJ4X3BvcnRfaWQsIDApOw0KPiA+ID4gKw0KPiA+ID4gKyBp
ZiAocWQgPT0gTlVMTCkgew0KPiA+ID4gKyBSVEVfRVRIREVWX0xPRyhFUlIsICJJbnZhbGlkIFJ4
IHF1ZXVlX2lkPSV1IGZvciBwb3J0X2lkPSV1XG4iLA0KPiA+ID4gK3J4X3F1ZXVlX2lkLCByeF9w
b3J0X2lkKTsgIHJldHVybiAwOyAgfSAjZW5kaWYNCj4gPiA+ICsNCj4gPiA+ICsgaWYgKHAtPnJl
Y3ljbGVfcnhfZGVzY3JpcHRvcnNfcmVmaWxsID09IE5VTEwpIHJldHVybiAwOw0KPiA+ID4gKw0K
PiA+ID4gKyAvKiBSZXBsZW5pc2ggdGhlIFJ4IGRlc2NyaXB0b3JzIHdpdGggdGhlIHJlY3ljbGlu
Zw0KPiA+ID4gKyAqIGludG8gUnggbWJ1ZiByaW5nLg0KPiA+ID4gKyAqLw0KPiA+ID4gKyBwLT5y
ZWN5Y2xlX3J4X2Rlc2NyaXB0b3JzX3JlZmlsbChxZCwgbmJfbWJ1ZnMpOw0KPiA+ID4gKw0KPiA+
ID4gKyByZXR1cm4gbmJfbWJ1ZnM7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gIC8qKg0KPiA+
ID4gICAqIEB3YXJuaW5nDQo+ID4gPiAgICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkg
Y2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90aWNlIGRpZmYNCj4gPiA+IC0tZ2l0IGEvbGliL2V0aGRl
di9ydGVfZXRoZGV2X2NvcmUuaCBiL2xpYi9ldGhkZXYvcnRlX2V0aGRldl9jb3JlLmgNCj4gPiA+
IGluZGV4IGRjZjhhZGFiOTIuLmEyZTZlYTZiNmMgMTAwNjQ0DQo+ID4gPiAtLS0gYS9saWIvZXRo
ZGV2L3J0ZV9ldGhkZXZfY29yZS5oDQo+ID4gPiArKysgYi9saWIvZXRoZGV2L3J0ZV9ldGhkZXZf
Y29yZS5oDQo+ID4gPiBAQCAtNTYsNiArNTYsMTMgQEAgdHlwZWRlZiBpbnQgKCpldGhfcnhfZGVz
Y3JpcHRvcl9zdGF0dXNfdCkodm9pZA0KPiA+ID4gKnJ4cSwgdWludDE2X3Qgb2Zmc2V0KTsNCj4g
PiA+ICAvKiogQGludGVybmFsIENoZWNrIHRoZSBzdGF0dXMgb2YgYSBUeCBkZXNjcmlwdG9yICov
ICB0eXBlZGVmIGludA0KPiA+ID4gKCpldGhfdHhfZGVzY3JpcHRvcl9zdGF0dXNfdCkodm9pZCAq
dHhxLCB1aW50MTZfdCBvZmZzZXQpOw0KPiA+ID4NCj4gPiA+ICsvKiogQGludGVybmFsIENvcHkg
dXNlZCBtYnVmcyBmcm9tIFR4IG1idWYgcmluZyBpbnRvIFJ4IG1idWYgcmluZyAqLw0KPiA+ID4g
K3R5cGVkZWYgdWludDE2X3QgKCpldGhfcmVjeWNsZV90eF9tYnVmc19yZXVzZV90KSh2b2lkICp0
eHEsICBzdHJ1Y3QNCj4gPiA+ICtydGVfZXRoX3JlY3ljbGVfcnhxX2luZm8gKnJlY3ljbGVfcnhx
X2luZm8pOw0KPiA+ID4gKw0KPiA+ID4gKy8qKiBAaW50ZXJuYWwgUmVmaWxsIFJ4IGRlc2NyaXB0
b3JzIHdpdGggdGhlIHJlY3ljbGluZyBtYnVmcyAqLw0KPiA+ID4gK3R5cGVkZWYgdm9pZCAoKmV0
aF9yZWN5Y2xlX3J4X2Rlc2NyaXB0b3JzX3JlZmlsbF90KSh2b2lkICpyeHEsDQo+ID4gPiArdWlu
dDE2X3QgbmIpOw0KPiA+ID4gKw0KPiA+ID4gIC8qKg0KPiA+ID4gICAqIEBpbnRlcm5hbA0KPiA+
ID4gICAqIFN0cnVjdHVyZSB1c2VkIHRvIGhvbGQgb3BhcXVlIHBvaW50ZXJzIHRvIGludGVybmFs
IGV0aGRldiBSeC9UeCBAQA0KPiA+ID4gLTkwLDkgKzk3LDExIEBAIHN0cnVjdCBydGVfZXRoX2Zw
X29wcyB7DQo+ID4gPiAgICAgICAgICBldGhfcnhfcXVldWVfY291bnRfdCByeF9xdWV1ZV9jb3Vu
dDsNCj4gPiA+ICAgICAgICAgIC8qKiBDaGVjayB0aGUgc3RhdHVzIG9mIGEgUnggZGVzY3JpcHRv
ci4gKi8NCj4gPiA+ICAgICAgICAgIGV0aF9yeF9kZXNjcmlwdG9yX3N0YXR1c190IHJ4X2Rlc2Ny
aXB0b3Jfc3RhdHVzOw0KPiA+ID4gKyAvKiogUmVmaWxsIFJ4IGRlc2NyaXB0b3JzIHdpdGggdGhl
IHJlY3ljbGluZyBtYnVmcy4gKi8NCj4gPiA+ICsgZXRoX3JlY3ljbGVfcnhfZGVzY3JpcHRvcnNf
cmVmaWxsX3QgcmVjeWNsZV9yeF9kZXNjcmlwdG9yc19yZWZpbGw7DQo+ID4gPiBJIGFtIGFmcmFp
ZCB3ZSBjYW4ndCBwdXQgbmV3IGZpZWxkcyBoZXJlIHdpdGhvdXQgQUJJIGJyZWFrYWdlLg0KPiA+
ID4NCj4gPiA+IEFncmVlDQo+ID4gPg0KPiA+ID4gSXQgaGFzIHRvIGJlIGJlbG93IHJ4cS4NCj4g
PiA+IE5vdyB0aGlua2luZyBhYm91dCBjdXJyZW50IGxheW91dCBwcm9iYWJseSBub3QgdGhlIGJl
c3Qgb25lLCBhbmQgd2hlbg0KPiA+ID4gaW50cm9kdWNpbmcgdGhpcyBzdHJ1Y3QsIEkgc2hvdWxk
IHByb2JhYmx5IHB1dCByeHEgZWl0aGVyIG9uIHRoZSB0b3ANCj4gPiA+IG9mIHRoZSBzdHJ1Y3Qs
IG9yIG9uIHRoZSBuZXh0IGNhY2hlIGxpbmUuDQo+ID4gPiBCdXQgc3VjaCBjaGFuZ2UgaXMgbm90
IHBvc3NpYmxlIHJpZ2h0IG5vdyBhbnl3YXkuDQo+ID4gPiBTYW1lIHN0b3J5IGZvciB0eHEuDQo+
ID4gPg0KPiA+ID4gVGh1cyB3ZSBzaG91bGQgcmVhcnJhbmdlIHRoZSBzdHJ1Y3R1cmUgbGlrZSBi
ZWxvd++8mg0KPiA+ID4gc3RydWN0IHJ0ZV9ldGhfZnBfb3BzIHsNCj4gPiA+ICAgICBzdHJ1Y3Qg
cnRlX2V0aGRldl9xZGF0YSByeHE7DQo+ID4gPiAgICAgICAgICBldGhfcnhfYnVyc3RfdCByeF9w
a3RfYnVyc3Q7DQo+ID4gPiAgICAgICAgICBldGhfcnhfcXVldWVfY291bnRfdCByeF9xdWV1ZV9j
b3VudDsNCj4gPiA+ICAgICAgICAgIGV0aF9yeF9kZXNjcmlwdG9yX3N0YXR1c190IHJ4X2Rlc2Ny
aXB0b3Jfc3RhdHVzOw0KPiA+ID4gICAgICAgIGV0aF9yZWN5Y2xlX3J4X2Rlc2NyaXB0b3JzX3Jl
ZmlsbF90IHJlY3ljbGVfcnhfZGVzY3JpcHRvcnNfcmVmaWxsOw0KPiA+ID4gICAgICAgICAgICAg
ICB1aW50cHRyX3QgcmVzZXJ2ZWQxWzJdOw0KPiA+ID4gfQ0KPiA+DQo+ID4gWWVzLCBJIHRoaW5r
IHN1Y2ggbGF5b3V0IHdpbGwgYmUgYmV0dGVyLg0KPiA+IFRoZSBvbmx5IHByb2JsZW0gaGVyZSAt
IHdlIGhhdmUgdG8gd2FpdCBmb3IgMjMuMTEgZm9yIHRoYXQuDQo+ID4NCj4gT2ssIGlmIG5vdCB0
aGlzIGNoYW5nZSwgbWF5YmUgd2Ugc3RpbGwgbmVlZCB0byB3YWl0LiBCZWNhdXNlIG1idWZzX3Jl
Y3ljbGUgaGF2ZSBvdGhlcg0KPiBBQkkgYnJlYWthZ2UuIFN1Y2ggYXMgdGhlIGNoYW5nZSBmb3Ig
J3N0cnVjdCBydGVfZXRoX2RldicuDQoNCk9rIGJ5IG1lLg0KDQo+ID4gPg0KPiA+ID4NCj4gPiA+
ICAgICAgICAgIC8qKiBSeCBxdWV1ZXMgZGF0YS4gKi8NCj4gPiA+ICAgICAgICAgIHN0cnVjdCBy
dGVfZXRoZGV2X3FkYXRhIHJ4cTsNCj4gPiA+IC0gdWludHB0cl90IHJlc2VydmVkMVszXTsNCj4g
PiA+ICsgdWludHB0cl90IHJlc2VydmVkMVsyXTsNCj4gPiA+ICAgICAgICAgIC8qKkB9Ki8NCj4g
PiA+DQo+ID4gPiAgICAgICAgICAvKipAeyovDQo+ID4gPiBAQCAtMTA2LDkgKzExNSwxMSBAQCBz
dHJ1Y3QgcnRlX2V0aF9mcF9vcHMgew0KPiA+ID4gICAgICAgICAgZXRoX3R4X3ByZXBfdCB0eF9w
a3RfcHJlcGFyZTsNCj4gPiA+ICAgICAgICAgIC8qKiBDaGVjayB0aGUgc3RhdHVzIG9mIGEgVHgg
ZGVzY3JpcHRvci4gKi8NCj4gPiA+ICAgICAgICAgIGV0aF90eF9kZXNjcmlwdG9yX3N0YXR1c190
IHR4X2Rlc2NyaXB0b3Jfc3RhdHVzOw0KPiA+ID4gKyAvKiogQ29weSB1c2VkIG1idWZzIGZyb20g
VHggbWJ1ZiByaW5nIGludG8gUnguICovDQo+ID4gPiArIGV0aF9yZWN5Y2xlX3R4X21idWZzX3Jl
dXNlX3QgcmVjeWNsZV90eF9tYnVmc19yZXVzZTsNCj4gPiA+ICAgICAgICAgIC8qKiBUeCBxdWV1
ZXMgZGF0YS4gKi8NCj4gPiA+ICAgICAgICAgIHN0cnVjdCBydGVfZXRoZGV2X3FkYXRhIHR4cTsN
Cj4gPiA+IC0gdWludHB0cl90IHJlc2VydmVkMlszXTsNCj4gPiA+ICsgdWludHB0cl90IHJlc2Vy
dmVkMlsyXTsNCj4gPiA+ICAgICAgICAgIC8qKkB9Ki8NCj4gPiA+DQo+ID4gPiAgfSBfX3J0ZV9j
YWNoZV9hbGlnbmVkOw0KPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9ldGhkZXYvdmVyc2lvbi5tYXAg
Yi9saWIvZXRoZGV2L3ZlcnNpb24ubWFwIGluZGV4DQo+ID4gPiAzNTdkMWE4OGMwLi40NWM0MTdm
NmJkIDEwMDY0NA0KPiA+ID4gLS0tIGEvbGliL2V0aGRldi92ZXJzaW9uLm1hcA0KPiA+ID4gKysr
IGIvbGliL2V0aGRldi92ZXJzaW9uLm1hcA0KPiA+ID4gQEAgLTI5OSw2ICsyOTksMTAgQEAgRVhQ
RVJJTUVOVEFMIHsNCj4gPiA+ICAgICAgICAgIHJ0ZV9mbG93X2FjdGlvbl9oYW5kbGVfcXVlcnlf
dXBkYXRlOw0KPiA+ID4gICAgICAgICAgcnRlX2Zsb3dfYXN5bmNfYWN0aW9uX2hhbmRsZV9xdWVy
eV91cGRhdGU7DQo+ID4gPiAgICAgICAgICBydGVfZmxvd19hc3luY19jcmVhdGVfYnlfaW5kZXg7
DQo+ID4gPiArDQo+ID4gPiArICMgYWRkZWQgaW4gMjMuMDcNCj4gPiA+ICsgcnRlX2V0aF9yZWN5
Y2xlX21idWZzOw0KPiA+ID4gKyBydGVfZXRoX3JlY3ljbGVfcnhfcXVldWVfaW5mb19nZXQ7DQo+
ID4gPiAgfTsNCj4gPiA+DQo+ID4gPiAgSU5URVJOQUwgew0KPiA+ID4gLS0NCj4gPiA+IDIuMjUu
MQ0KPiA+ID4NCg==