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 CCC07424C1;
	Mon, 10 Jun 2024 16:24:31 +0200 (CEST)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 55978402A9;
	Mon, 10 Jun 2024 16:24:31 +0200 (CEST)
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com
 [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 9C0AD40294
 for <dev@dpdk.org>; Mon, 10 Jun 2024 16:24:29 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.18.186.231])
 by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4VyYpy1vXCz6JB6Z;
 Mon, 10 Jun 2024 22:19:54 +0800 (CST)
Received: from frapeml100007.china.huawei.com (unknown [7.182.85.133])
 by mail.maildlp.com (Postfix) with ESMTPS id F37FB1400D4;
 Mon, 10 Jun 2024 22:24:26 +0800 (CST)
Received: from frapeml500007.china.huawei.com (7.182.85.172) by
 frapeml100007.china.huawei.com (7.182.85.133) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.39; Mon, 10 Jun 2024 16:24:26 +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.039;
 Mon, 10 Jun 2024 16:24:26 +0200
From: Konstantin Ananyev <konstantin.ananyev@huawei.com>
To: Paul Szczepanek <paul.szczepanek@arm.com>, "dev@dpdk.org" <dev@dpdk.org>
CC: "mb@smartsharesystems.com" <mb@smartsharesystems.com>, Jack Bond-Preston
 <jack.bond-preston@foss.arm.com>, Nathan Brown <nathan.brown@arm.com>
Subject: RE: [PATCH v14 2/6] mempool: add functions to get extra mempool info
Thread-Topic: [PATCH v14 2/6] mempool: add functions to get extra mempool info
Thread-Index: AQHauO0S6n3UoeUNGU2ZCFJMjreTcbHBD9QA
Date: Mon, 10 Jun 2024 14:24:26 +0000
Message-ID: <91c29c07d353422280fb50e5e80060b3@huawei.com>
References: <20230927150854.3670391-1-paul.szczepanek@arm.com>
 <20240607151000.98562-1-paul.szczepanek@arm.com>
 <20240607151000.98562-3-paul.szczepanek@arm.com>
In-Reply-To: <20240607151000.98562-3-paul.szczepanek@arm.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.81.199.1]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
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

DQoNCj4gQWRkIHR3byBmdW5jdGlvbnM6DQo+IC0gcnRlX21lbXBvb2xfZ2V0X21lbV9yYW5nZSAt
IGdldCB2aXJ0dWFsIG1lbW9yeSByYW5nZQ0KPiBvZiB0aGUgb2JqZWN0cyBpbiB0aGUgbWVtcG9v
bCwNCj4gLSBydGVfbWVtcG9vbF9nZXRfb2JqX2FsaWdubWVudCAtIGdldCBhbGlnbm1lbnQgb2YN
Cj4gb2JqZWN0cyBpbiB0aGUgbWVtcG9vbC4NCj4gDQo+IEFkZCB0d28gdGVzdHMgdGhhdCB0ZXN0
IHRoZXNlIG5ldyBmdW5jdGlvbnMuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBQYXVsIFN6Y3plcGFu
ZWsgPHBhdWwuc3pjemVwYW5la0Bhcm0uY29tPg0KPiBSZXZpZXdlZC1ieTogSmFjayBCb25kLVBy
ZXN0b24gPGphY2suYm9uZC1wcmVzdG9uQGZvc3MuYXJtLmNvbT4NCj4gUmV2aWV3ZWQtYnk6IE5h
dGhhbiBCcm93biA8bmF0aGFuLmJyb3duQGFybS5jb20+DQo+IFJldmlld2VkLWJ5OiBNb3J0ZW4g
QnLDuHJ1cCA8bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPg0KPiBBY2tlZC1ieTogTW9ydGVuIEJy
w7hydXAgPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4NCj4gLS0tDQo+ICBhcHAvdGVzdC90ZXN0
X21lbXBvb2wuYyAgIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
DQo+ICBsaWIvbWVtcG9vbC9ydGVfbWVtcG9vbC5jIHwgNDUgKysrKysrKysrKysrKysrKysrKysr
KysrKw0KPiAgbGliL21lbXBvb2wvcnRlX21lbXBvb2wuaCB8IDQ3ICsrKysrKysrKysrKysrKysr
KysrKysrKysrDQo+ICBsaWIvbWVtcG9vbC92ZXJzaW9uLm1hcCAgIHwgIDMgKysNCj4gIDQgZmls
ZXMgY2hhbmdlZCwgMTY1IGluc2VydGlvbnMoKykNCj4gDQo+IGRpZmYgLS1naXQgYS9hcHAvdGVz
dC90ZXN0X21lbXBvb2wuYyBiL2FwcC90ZXN0L3Rlc3RfbWVtcG9vbC5jDQo+IGluZGV4IGFkN2Vi
ZDYzNjMuLjNmN2JhNTg3MmQgMTAwNjQ0DQo+IC0tLSBhL2FwcC90ZXN0L3Rlc3RfbWVtcG9vbC5j
DQo+ICsrKyBiL2FwcC90ZXN0L3Rlc3RfbWVtcG9vbC5jDQo+IEBAIC04NDMsMTYgKzg0MywxOSBA
QCB0ZXN0X21lbXBvb2wodm9pZCkNCj4gIAlpbnQgcmV0ID0gLTE7DQo+ICAJdWludDMyX3QgbmJf
b2JqcyA9IDA7DQo+ICAJdWludDMyX3QgbmJfbWVtX2NodW5rcyA9IDA7DQo+ICsJc2l6ZV90IGFs
aWdubWVudCA9IDA7DQo+ICAJc3RydWN0IHJ0ZV9tZW1wb29sICptcF9jYWNoZSA9IE5VTEw7DQo+
ICAJc3RydWN0IHJ0ZV9tZW1wb29sICptcF9ub2NhY2hlID0gTlVMTDsNCj4gIAlzdHJ1Y3QgcnRl
X21lbXBvb2wgKm1wX3N0YWNrX2Fub24gPSBOVUxMOw0KPiAgCXN0cnVjdCBydGVfbWVtcG9vbCAq
bXBfc3RhY2tfbWVtcG9vbF9pdGVyID0gTlVMTDsNCj4gIAlzdHJ1Y3QgcnRlX21lbXBvb2wgKm1w
X3N0YWNrID0gTlVMTDsNCj4gIAlzdHJ1Y3QgcnRlX21lbXBvb2wgKmRlZmF1bHRfcG9vbCA9IE5V
TEw7DQo+ICsJc3RydWN0IHJ0ZV9tZW1wb29sICptcF9hbGlnbm1lbnQgPSBOVUxMOw0KPiAgCXN0
cnVjdCBtcF9kYXRhIGNiX2FyZyA9IHsNCj4gIAkJLnJldCA9IC0xDQo+ICAJfTsNCj4gIAljb25z
dCBjaGFyICpkZWZhdWx0X3Bvb2xfb3BzID0gcnRlX21idWZfYmVzdF9tZW1wb29sX29wcygpOw0K
PiArCXN0cnVjdCBydGVfbWVtcG9vbF9tZW1fcmFuZ2VfaW5mbyBtZW1fcmFuZ2UgPSB7IDAgfTsN
Cj4gDQo+ICAJLyogY3JlYXRlIGEgbWVtcG9vbCAod2l0aG91dCBjYWNoZSkgKi8NCj4gIAltcF9u
b2NhY2hlID0gcnRlX21lbXBvb2xfY3JlYXRlKCJ0ZXN0X25vY2FjaGUiLCBNRU1QT09MX1NJWkUs
DQo+IEBAIC05NjcsNiArOTcwLDcyIEBAIHRlc3RfbWVtcG9vbCh2b2lkKQ0KPiAgCX0NCj4gIAly
dGVfbWVtcG9vbF9vYmpfaXRlcihkZWZhdWx0X3Bvb2wsIG15X29ial9pbml0LCBOVUxMKTsNCj4g
DQo+ICsJaWYgKHJ0ZV9tZW1wb29sX2dldF9tZW1fcmFuZ2UoZGVmYXVsdF9wb29sLCAmbWVtX3Jh
bmdlKSkgew0KPiArCQlwcmludGYoImNhbm5vdCBnZXQgbWVtIHJhbmdlIGZyb20gZGVmYXVsdCBt
ZW1wb29sXG4iKTsNCj4gKwkJR09UT19FUlIocmV0LCBlcnIpOw0KPiArCX0NCj4gKw0KPiArCWlm
IChydGVfbWVtcG9vbF9nZXRfbWVtX3JhbmdlKE5VTEwsIE5VTEwpICE9IC1FSU5WQUwpIHsNCj4g
KwkJcHJpbnRmKCJydGVfbWVtcG9vbF9nZXRfbWVtX3JhbmdlIGZhaWxlZCB0byByZXR1cm4gLUVJ
TlZBTCAiDQo+ICsJCQkJIndoZW4gcGFzc2VkIGludmFsaWQgYXJndW1lbnRzXG4iKTsNCj4gKwkJ
R09UT19FUlIocmV0LCBlcnIpOw0KPiArCX0NCj4gKw0KPiArCWlmIChtZW1fcmFuZ2Uuc3RhcnQg
PT0gTlVMTCB8fCBtZW1fcmFuZ2UubGVuZ3RoIDwNCj4gKwkJCShNRU1QT09MX1NJWkUgKiBNRU1Q
T09MX0VMVF9TSVpFKSkgew0KPiArCQlwcmludGYoIm1lbSByYW5nZSBvZiBkZWZhdWx0IG1lbXBv
b2wgaXMgaW52YWxpZFxuIik7DQo+ICsJCUdPVE9fRVJSKHJldCwgZXJyKTsNCj4gKwl9DQo+ICsN
Cj4gKwkvKiBieSBkZWZhdWx0IG1lbXBvb2wgb2JqZWN0cyBhcmUgYWxpZ25lZCBieSBSVEVfTUVN
UE9PTF9BTElHTiAqLw0KPiArCWFsaWdubWVudCA9IHJ0ZV9tZW1wb29sX2dldF9vYmpfYWxpZ25t
ZW50KGRlZmF1bHRfcG9vbCk7DQo+ICsJaWYgKGFsaWdubWVudCAhPSBSVEVfTUVNUE9PTF9BTElH
Tikgew0KPiArCQlwcmludGYoInJ0ZV9tZW1wb29sX2dldF9vYmpfYWxpZ25tZW50IHJldHVybmVk
IHdyb25nIHZhbHVlLCAiDQo+ICsJCQkJImV4cGVjdGVkICV6dSwgcmV0dXJuZWQgJXp1XG4iLA0K
PiArCQkJCShzaXplX3QpUlRFX01FTVBPT0xfQUxJR04sIGFsaWdubWVudCk7DQo+ICsJCUdPVE9f
RVJSKHJldCwgZXJyKTsNCj4gKwl9DQo+ICsNCj4gKwkvKiBjcmVhdGUgYSBtZW1wb29sIHdpdGgg
YSBSVEVfTUVNUE9PTF9GX05PX0NBQ0hFX0FMSUdOIGZsYWcgKi8NCj4gKwltcF9hbGlnbm1lbnQg
PSBydGVfbWVtcG9vbF9jcmVhdGUoInRlc3RfYWxpZ25tZW50IiwNCj4gKwkJMSwgOCwgLyogdGhl
IHNtYWxsIHNpemUgZ3VhcmFudGVlcyBzaW5nbGUgbWVtb3J5IGNodW5rICovDQo+ICsJCTAsIDAs
IE5VTEwsIE5VTEwsIG15X29ial9pbml0LCBOVUxMLA0KPiArCQlTT0NLRVRfSURfQU5ZLCBSVEVf
TUVNUE9PTF9GX05PX0NBQ0hFX0FMSUdOKTsNCj4gKw0KPiArCWlmIChtcF9hbGlnbm1lbnQgPT0g
TlVMTCkgew0KPiArCQlwcmludGYoImNhbm5vdCBhbGxvY2F0ZSBtZW1wb29sIHdpdGggIg0KPiAr
CQkJCSJSVEVfTUVNUE9PTF9GX05PX0NBQ0hFX0FMSUdOIGZsYWdcbiIpOw0KPiArCQlHT1RPX0VS
UihyZXQsIGVycik7DQo+ICsJfQ0KPiArDQo+ICsJLyogbWVtcG9vbCB3YXMgY3JlYXRlZCB3aXRo
IFJURV9NRU1QT09MX0ZfTk9fQ0FDSEVfQUxJR04NCj4gKwkgKiBhbmQgbWluaW11bSBhbGlnbm1l
bnQgaXMgZXhwZWN0ZWQgd2hpY2ggaXMgc2l6ZW9mKHVpbnQ2NF90KQ0KPiArCSAqLw0KPiArCWFs
aWdubWVudCA9IHJ0ZV9tZW1wb29sX2dldF9vYmpfYWxpZ25tZW50KG1wX2FsaWdubWVudCk7DQo+
ICsJaWYgKGFsaWdubWVudCAhPSBzaXplb2YodWludDY0X3QpKSB7DQo+ICsJCXByaW50ZigicnRl
X21lbXBvb2xfZ2V0X29ial9hbGlnbm1lbnQgcmV0dXJuZWQgd3JvbmcgdmFsdWUsICINCj4gKwkJ
CQkiZXhwZWN0ZWQgJXp1LCByZXR1cm5lZCAlenVcbiIsDQo+ICsJCQkJKHNpemVfdClzaXplb2Yo
dWludDY0X3QpLCBhbGlnbm1lbnQpOw0KPiArCQlHT1RPX0VSUihyZXQsIGVycik7DQo+ICsJfQ0K
PiArDQo+ICsJYWxpZ25tZW50ID0gcnRlX21lbXBvb2xfZ2V0X29ial9hbGlnbm1lbnQoTlVMTCk7
DQo+ICsJaWYgKGFsaWdubWVudCAhPSAwKSB7DQo+ICsJCXByaW50ZigicnRlX21lbXBvb2xfZ2V0
X29ial9hbGlnbm1lbnQgZmFpbGVkIHRvIHJldHVybiAwIGZvciAiDQo+ICsJCQkJIiBhbiBpbnZh
bGlkIG1lbXBvb2xcbiIpOw0KPiArCQlHT1RPX0VSUihyZXQsIGVycik7DQo+ICsJfQ0KPiArDQo+
ICsJaWYgKHJ0ZV9tZW1wb29sX2dldF9tZW1fcmFuZ2UobXBfYWxpZ25tZW50LCAmbWVtX3Jhbmdl
KSkgew0KPiArCQlwcmludGYoImNhbm5vdCBnZXQgbWVtIHJhbmdlIGZyb20gbWVtcG9vbFxuIik7
DQo+ICsJCUdPVE9fRVJSKHJldCwgZXJyKTsNCj4gKwl9DQo+ICsNCj4gKwlpZiAoIW1lbV9yYW5n
ZS5pc19jb250aWd1b3VzKSB7DQo+ICsJCXByaW50ZigibWVtcG9vbCBub3QgY29udGlndW91c1xu
Iik7DQo+ICsJCUdPVE9fRVJSKHJldCwgZXJyKTsNCj4gKwl9DQo+ICsNCj4gIAkvKiByZXRyaWV2
ZSB0aGUgbWVtcG9vbCBmcm9tIGl0cyBuYW1lICovDQo+ICAJaWYgKHJ0ZV9tZW1wb29sX2xvb2t1
cCgidGVzdF9ub2NhY2hlIikgIT0gbXBfbm9jYWNoZSkgew0KPiAgCQlwcmludGYoIkNhbm5vdCBs
b29rdXAgbWVtcG9vbCBmcm9tIGl0cyBuYW1lXG4iKTsNCj4gQEAgLTEwMzksNiArMTEwOCw3IEBA
IHRlc3RfbWVtcG9vbCh2b2lkKQ0KPiAgCXJ0ZV9tZW1wb29sX2ZyZWUobXBfc3RhY2tfbWVtcG9v
bF9pdGVyKTsNCj4gIAlydGVfbWVtcG9vbF9mcmVlKG1wX3N0YWNrKTsNCj4gIAlydGVfbWVtcG9v
bF9mcmVlKGRlZmF1bHRfcG9vbCk7DQo+ICsJcnRlX21lbXBvb2xfZnJlZShtcF9hbGlnbm1lbnQp
Ow0KPiANCj4gIAlyZXR1cm4gcmV0Ow0KPiAgfQ0KPiBkaWZmIC0tZ2l0IGEvbGliL21lbXBvb2wv
cnRlX21lbXBvb2wuYyBiL2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmMNCj4gaW5kZXggMTIzOTBh
MmM4MS4uNTRkMjgwNDE1MSAxMDA2NDQNCj4gLS0tIGEvbGliL21lbXBvb2wvcnRlX21lbXBvb2wu
Yw0KPiArKysgYi9saWIvbWVtcG9vbC9ydGVfbWVtcG9vbC5jDQo+IEBAIC0xMzg2LDYgKzEzODYs
NTEgQEAgdm9pZCBydGVfbWVtcG9vbF93YWxrKHZvaWQgKCpmdW5jKShzdHJ1Y3QgcnRlX21lbXBv
b2wgKiwgdm9pZCAqKSwNCj4gIAlydGVfbWNmZ19tZW1wb29sX3JlYWRfdW5sb2NrKCk7DQo+ICB9
DQo+IA0KPiAraW50IHJ0ZV9tZW1wb29sX2dldF9tZW1fcmFuZ2UoY29uc3Qgc3RydWN0IHJ0ZV9t
ZW1wb29sICptcCwNCj4gKwkJc3RydWN0IHJ0ZV9tZW1wb29sX21lbV9yYW5nZV9pbmZvICptZW1f
cmFuZ2UpDQo+ICt7DQoNClRvIGZvbGxvdyBEUERLIGNvZGluZyBzdHlsZSBndWlkZToNCmludA0K
cnRlX21lbXBvb2xfZ2V0X21lbV9yYW5nZSguLi4NCnNhbWUgZm9yIHRoZSBzZWNvbmQgZnVuY3Rp
b24uIA0KIA0KDQo+ICsJaWYgKG1wID09IE5VTEwgfHwgbWVtX3JhbmdlID09IE5VTEwpDQo+ICsJ
CXJldHVybiAtRUlOVkFMOw0KDQpBZ2FpbiwgdG8gZm9sbG93IERQREsgY29kaW5nIHN0eWxlOg0K
VmFyaWFibGVzIHNob3VsZCBiZSBkZWNsYXJlZCBhdCB0aGUgc3RhcnQgb2YgYSBibG9jayBvZiBj
b2RlIHJhdGhlciB0aGFuIGluIHRoZSBtaWRkbGUuDQpJLkUgLSBtb3ZlIHRoYXQgaW5wdXQgcGFy
YW1zIGNoZWNrIGFmdGVyIGxvY2FsIHZhcnMgZGVmaW5pdGlvbiBibG9jay4gDQoNCldpdGggdGhh
dCBjaGFuZ2VzIGluIHBsYWNlOg0KQWNrZWQtYnk6IEtvbnN0YW50aW4gQW5hbnlldiA8a29uc3Rh
bnRpbi5hbmFueWV2QGh1YXdlaS5jb20+DQoNCj4gKwl2b2lkICphZGRyZXNzX2xvdyA9ICh2b2lk
ICopVUlOVFBUUl9NQVg7DQo+ICsJdm9pZCAqYWRkcmVzc19oaWdoID0gMDsNCj4gKwlzaXplX3Qg
YWRkcmVzc19kaWZmID0gMDsNCj4gKwlzaXplX3QgdG90YWxfc2l6ZSA9IDA7DQo+ICsJc3RydWN0
IHJ0ZV9tZW1wb29sX21lbWhkciAqaGRyOw0KPiArDQo+ICsJLyogZ28gdGhyb3VnaCBtZW1vcnkg
Y2h1bmtzIGFuZCBmaW5kIHRoZSBsb3dlc3QgYW5kIGhpZ2hlc3QgYWRkcmVzc2VzICovDQo+ICsJ
U1RBSUxRX0ZPUkVBQ0goaGRyLCAmbXAtPm1lbV9saXN0LCBuZXh0KSB7DQo+ICsJCWlmIChhZGRy
ZXNzX2xvdyA+IGhkci0+YWRkcikNCj4gKwkJCWFkZHJlc3NfbG93ID0gaGRyLT5hZGRyOw0KPiAr
CQlpZiAoYWRkcmVzc19oaWdoIDwgUlRFX1BUUl9BREQoaGRyLT5hZGRyLCBoZHItPmxlbikpDQo+
ICsJCQlhZGRyZXNzX2hpZ2ggPSBSVEVfUFRSX0FERChoZHItPmFkZHIsIGhkci0+bGVuKTsNCj4g
KwkJdG90YWxfc2l6ZSArPSBoZHItPmxlbjsNCj4gKwl9DQo+ICsNCj4gKwkvKiBjaGVjayBpZiBt
ZW1wb29sIHdhcyBub3QgcG9wdWxhdGVkIHlldCAobm8gbWVtb3J5IGNodW5rcykgKi8NCj4gKwlp
ZiAoYWRkcmVzc19sb3cgPT0gKHZvaWQgKilVSU5UUFRSX01BWCkNCj4gKwkJcmV0dXJuIC1FSU5W
QUw7DQo+ICsNCj4gKwlhZGRyZXNzX2RpZmYgPSAoc2l6ZV90KVJURV9QVFJfRElGRihhZGRyZXNz
X2hpZ2gsIGFkZHJlc3NfbG93KTsNCj4gKw0KPiArCW1lbV9yYW5nZS0+c3RhcnQgPSBhZGRyZXNz
X2xvdzsNCj4gKwltZW1fcmFuZ2UtPmxlbmd0aCA9IGFkZHJlc3NfZGlmZjsNCj4gKwltZW1fcmFu
Z2UtPmlzX2NvbnRpZ3VvdXMgPSAodG90YWxfc2l6ZSA9PSBhZGRyZXNzX2RpZmYpID8gdHJ1ZSA6
IGZhbHNlOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3NpemVfdCBydGVfbWVt
cG9vbF9nZXRfb2JqX2FsaWdubWVudChjb25zdCBzdHJ1Y3QgcnRlX21lbXBvb2wgKm1wKQ0KPiAr
ew0KPiArCWlmIChtcCA9PSBOVUxMKQ0KPiArCQlyZXR1cm4gMDsNCg0KSW4gY2FzZSBvZiBtcD09
TlVMTCwgd291bGQgaXQgYmUgYmV0dGVyIHRvIHJldHVybiBuZWdhdGl2ZSBlcnJvciBjb2RlICgt
RUlOVkFMIG9yIHNvKT8NCkluIHRoYXQgY2FzZSB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNoYW5n
ZWQgdG8gcmV0dXJuIHNzaXplX3QgdGhvdWdoLg0KDQo+ICsNCj4gKwlpZiAobXAtPmZsYWdzICYg
UlRFX01FTVBPT0xfRl9OT19DQUNIRV9BTElHTikNCj4gKwkJcmV0dXJuIHNpemVvZih1aW50NjRf
dCk7DQo+ICsJZWxzZQ0KPiArCQlyZXR1cm4gUlRFX01FTVBPT0xfQUxJR047DQo+ICt9DQo+ICsN
Cj4gIHN0cnVjdCBtZW1wb29sX2NhbGxiYWNrX2RhdGEgew0KPiAgCVRBSUxRX0VOVFJZKG1lbXBv
b2xfY2FsbGJhY2tfZGF0YSkgY2FsbGJhY2tzOw0KPiAgCXJ0ZV9tZW1wb29sX2V2ZW50X2NhbGxi
YWNrICpmdW5jOw0KPiBkaWZmIC0tZ2l0IGEvbGliL21lbXBvb2wvcnRlX21lbXBvb2wuaCBiL2xp
Yi9tZW1wb29sL3J0ZV9tZW1wb29sLmgNCj4gaW5kZXggMjNmZDVjODQ2NS4uOTkwNDkxYTdhNyAx
MDA2NDQNCj4gLS0tIGEvbGliL21lbXBvb2wvcnRlX21lbXBvb2wuaA0KPiArKysgYi9saWIvbWVt
cG9vbC9ydGVfbWVtcG9vbC5oDQo+IEBAIC0xOTE3LDYgKzE5MTcsNTMgQEAgdWludDMyX3QgcnRl
X21lbXBvb2xfY2FsY19vYmpfc2l6ZSh1aW50MzJfdCBlbHRfc2l6ZSwgdWludDMyX3QgZmxhZ3Ms
DQo+ICB2b2lkIHJ0ZV9tZW1wb29sX3dhbGsodm9pZCAoKmZ1bmMpKHN0cnVjdCBydGVfbWVtcG9v
bCAqLCB2b2lkICphcmcpLA0KPiAgCQkgICAgICB2b2lkICphcmcpOw0KPiANCj4gKy8qKg0KPiAr
ICogQSBzdHJ1Y3R1cmUgdXNlZCB0byByZXRyaWV2ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWVt
b3J5IHJhbmdlDQo+ICsgKiBvZiB0aGUgbWVtcG9vbC4NCj4gKyAqLw0KPiArc3RydWN0IHJ0ZV9t
ZW1wb29sX21lbV9yYW5nZV9pbmZvIHsNCj4gKwkvKiogU3RhcnQgb2YgdGhlIG1lbW9yeSByYW5n
ZSB1c2VkIGJ5IG1lbXBvb2wgb2JqZWN0cyAqLw0KPiArCXZvaWQgKnN0YXJ0Ow0KPiArCS8qKiBM
ZW5ndGggb2YgdGhlIG1lbW9yeSByYW5nZSB1c2VkIGJ5IG1lbXBvb2wgb2JqZWN0cyAqLw0KPiAr
CXNpemVfdCBsZW5ndGg7DQo+ICsJLyoqIEFyZSBhbGwgbWVtb3J5IGFkZHJlc3NlcyB1c2VkIGJ5
IG1lbXBvb2wgb2JqZWN0cyBjb250aWd1b3VzICovDQo+ICsJYm9vbCBpc19jb250aWd1b3VzOw0K
PiArfTsNCj4gKw0KPiArLyoqDQo+ICsgKiBAd2FybmluZw0KPiArICogQGIgRVhQRVJJTUVOVEFM
OiB0aGlzIEFQSSBtYXkgY2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90aWNlLg0KPiArICoNCj4gKyAq
IEdldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWVtb3J5IHJhbmdlIHVzZWQgYnkgdGhlIG1lbXBv
b2wuDQo+ICsgKg0KPiArICogQHBhcmFtW2luXSBtcA0KPiArICogICBQb2ludGVyIHRvIGFuIGlu
aXRpYWxpemVkIG1lbXBvb2wuDQo+ICsgKiBAcGFyYW1bb3V0XSBtZW1fcmFuZ2UNCj4gKyAqICAg
UG9pbnRlciB0byBzdHJ1Y3Qgd2hpY2ggaXMgdXNlZCB0byByZXR1cm4gbG93ZXN0IGFkZHJlc3Ms
DQo+ICsgKiAgIGxlbmd0aCBvZiB0aGUgbWVtb3J5IHJhbmdlIGNvbnRhaW5pbmcgYWxsIHRoZSBh
ZGRyZXNzZXMsDQo+ICsgKiAgIGFuZCB3aGV0aGVyIHRoZXNlIGFkZHJlc3NlcyBhcmUgY29udGln
dW91cy4NCj4gKyAqIEByZXR1cm4NCj4gKyAqICAgMCBvbiBzdWNjZXNzLCAtRUlOVkFMIGlmIG1l
bXBvb2wgaXMgbm90IHZhbGlkIG9yIG1lbV9yYW5nZSBpcyBOVUxMLg0KPiArICoqLw0KPiArX19y
dGVfZXhwZXJpbWVudGFsDQo+ICtpbnQgcnRlX21lbXBvb2xfZ2V0X21lbV9yYW5nZShjb25zdCBz
dHJ1Y3QgcnRlX21lbXBvb2wgKm1wLA0KPiArCQlzdHJ1Y3QgcnRlX21lbXBvb2xfbWVtX3Jhbmdl
X2luZm8gKm1lbV9yYW5nZSk7DQo+ICsNCj4gKy8qKg0KPiArICogQHdhcm5pbmcNCj4gKyAqIEBi
IEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZS4N
Cj4gKyAqDQo+ICsgKiBSZXR1cm4gb2JqZWN0IGFsaWdubWVudC4NCj4gKyAqDQo+ICsgKiBAcGFy
YW1baW5dIG1wDQo+ICsgKiAgIFBvaW50ZXIgdG8gYSBtZW1wb29sLg0KPiArICogQHJldHVybg0K
PiArICogICBPYmplY3QgYWxpZ25tZW50IGlmIG1wIGlzIHZhbGlkLiAwIGlmIG1wIGlzIE5VTEwu
DQo+ICsgKg0KPiArICoqLw0KPiArX19ydGVfZXhwZXJpbWVudGFsDQo+ICtzaXplX3QgcnRlX21l
bXBvb2xfZ2V0X29ial9hbGlnbm1lbnQoY29uc3Qgc3RydWN0IHJ0ZV9tZW1wb29sICptcCk7DQo+
ICsNCj4gIC8qKg0KPiAgICogQGludGVybmFsIEdldCBwYWdlIHNpemUgdXNlZCBmb3IgbWVtcG9v
bCBvYmplY3QgYWxsb2NhdGlvbi4NCj4gICAqIFRoaXMgZnVuY3Rpb24gaXMgaW50ZXJuYWwgdG8g
bWVtcG9vbCBsaWJyYXJ5IGFuZCBtZW1wb29sIGRyaXZlcnMuDQo+IGRpZmYgLS1naXQgYS9saWIv
bWVtcG9vbC92ZXJzaW9uLm1hcCBiL2xpYi9tZW1wb29sL3ZlcnNpb24ubWFwDQo+IGluZGV4IDQ3
MzI3NzQwMGMuLjAyZGY2MzRiMmEgMTAwNjQ0DQo+IC0tLSBhL2xpYi9tZW1wb29sL3ZlcnNpb24u
bWFwDQo+ICsrKyBiL2xpYi9tZW1wb29sL3ZlcnNpb24ubWFwDQo+IEBAIC01MCw2ICs1MCw5IEBA
IEVYUEVSSU1FTlRBTCB7DQo+ICAJX19ydGVfbWVtcG9vbF90cmFjZV9nZXRfY29udGlnX2Jsb2Nr
czsNCj4gIAlfX3J0ZV9tZW1wb29sX3RyYWNlX2RlZmF1bHRfY2FjaGU7DQo+ICAJX19ydGVfbWVt
cG9vbF90cmFjZV9jYWNoZV9mbHVzaDsNCj4gKwkjIGFkZGVkIGluIDI0LjA3DQo+ICsJcnRlX21l
bXBvb2xfZ2V0X21lbV9yYW5nZTsNCj4gKwlydGVfbWVtcG9vbF9nZXRfb2JqX2FsaWdubWVudDsN
Cj4gIH07DQo+IA0KPiAgSU5URVJOQUwgew0KPiAtLQ0KPiAyLjI1LjENCg0K