From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 88D79A0352;
	Wed,  6 May 2020 03:11:16 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 372951D68B;
	Wed,  6 May 2020 03:11:16 +0200 (CEST)
Received: from huawei.com (szxga03-in.huawei.com [45.249.212.189])
 by dpdk.org (Postfix) with ESMTP id 802601D687;
 Wed,  6 May 2020 03:11:14 +0200 (CEST)
Received: from DGGEML403-HUB.china.huawei.com (unknown [172.30.72.55])
 by Forcepoint Email with ESMTP id 8C67D98427DD8F6A9CA5;
 Wed,  6 May 2020 09:11:10 +0800 (CST)
Received: from DGGEML529-MBX.china.huawei.com ([169.254.6.203]) by
 DGGEML403-HUB.china.huawei.com ([fe80::74d9:c659:fbec:21fa%31]) with mapi id
 14.03.0487.000; Wed, 6 May 2020 09:09:41 +0800
From: "Lilijun (Jerry)" <jerry.lilijun@huawei.com>
To: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>, "'dev@dpdk.org'"
 <dev@dpdk.org>
CC: wangyunjian <wangyunjian@huawei.com>, xudingke <xudingke@huawei.com>,
 "'stable@dpdk.org'" <stable@dpdk.org>, nd <nd@arm.com>,
 "yipeng1.wang@intel.com" <yipeng1.wang@intel.com>, nd <nd@arm.com>
Thread-Topic: [dpdk-dev] [PATCH] lib/librte_hash: add rte_hash_del_key_fixed
 without compact
Thread-Index: AdYcO135HJmvjYM1Q2CGkNRR8o1T1wBYjpkQAAj59vABXEemcAADnGyA
Date: Wed, 6 May 2020 01:09:41 +0000
Message-ID: <40280F65B1B0B44E8089ED31C01616EBA49A19CE@dggeml529-mbx.china.huawei.com>
References: <40280F65B1B0B44E8089ED31C01616EBA49921F2@dggeml529-mbx.china.huawei.com>
 <DBBPR08MB464619A89094FEA419669D4598AC0@DBBPR08MB4646.eurprd08.prod.outlook.com>
 <40280F65B1B0B44E8089ED31C01616EBA4997CD9@dggeml529-mbx.china.huawei.com>
 <DBBPR08MB4646FA4227427A8B731A766C98A70@DBBPR08MB4646.eurprd08.prod.outlook.com>
In-Reply-To: <DBBPR08MB4646FA4227427A8B731A766C98A70@DBBPR08MB4646.eurprd08.prod.outlook.com>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.173.251.98]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Subject: [dpdk-dev] =?utf-8?b?562U5aSNOiAgW1BBVENIXSBsaWIvbGlicnRlX2hhc2g6?=
 =?utf-8?q?_add_rte=5Fhash=5Fdel=5Fkey=5Ffixed_without_compact?=
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
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
Sender: "dev" <dev-bounces@dpdk.org>

PiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+IOWPkeS7tuS6ujogSG9ubmFwcGEgTmFnYXJhaGFs
bGkgW21haWx0bzpIb25uYXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tXQ0KPiDlj5HpgIHml7bpl7Q6
IDIwMjDlubQ15pyINuaXpSA3OjE4DQo+IOaUtuS7tuS6ujogTGlsaWp1biAoSmVycnkpIDxqZXJy
eS5saWxpanVuQGh1YXdlaS5jb20+OyAnZGV2QGRwZGsub3JnJw0KPiA8ZGV2QGRwZGsub3JnPg0K
PiDmioTpgIE6IHdhbmd5dW5qaWFuIDx3YW5neXVuamlhbkBodWF3ZWkuY29tPjsgeHVkaW5na2UN
Cj4gPHh1ZGluZ2tlQGh1YXdlaS5jb20+OyAnc3RhYmxlQGRwZGsub3JnJyA8c3RhYmxlQGRwZGsu
b3JnPjsgbmQNCj4gPG5kQGFybS5jb20+OyBIb25uYXBwYSBOYWdhcmFoYWxsaSA8SG9ubmFwcGEu
TmFnYXJhaGFsbGlAYXJtLmNvbT47DQo+IHlpcGVuZzEud2FuZ0BpbnRlbC5jb207IG5kIDxuZEBh
cm0uY29tPg0KPiDkuLvpopg6IFJFOiBbZHBkay1kZXZdIFtQQVRDSF0gbGliL2xpYnJ0ZV9oYXNo
OiBhZGQgcnRlX2hhc2hfZGVsX2tleV9maXhlZA0KPiB3aXRob3V0IGNvbXBhY3QNCj4gDQo+IDxz
bmlwPg0KPiANCj4gQWRkaW5nIFlpcGVuZywgbWFpbnRhaW5lciBmb3IgaGFzaCBsaWJyYXJ5DQo+
IA0KPiA+DQo+ID4gVGhhbmtzIGZvciB5b3VyIHJlcGx5Lg0KPiA+DQo+ID4gVXNpbmcgcnRlX2hh
c2ggaXRlcmF0ZSBhbmQgZGVsZXRlIGtleXMgaXMgdG8gZnJlZSB0aGUgcmVsYXRlZCBkYXRhJ3Mg
bWVtb3J5Lg0KPiA+IFRoZXJlIGFyZSB0d28gcmVhc29ucyB3aHkgcnRlX2hhc2hfcmVzZXQoKSBp
cyBub3QgcHJvcGVybHk6DQo+ID4gMSkgIHRoZSByZXNldCBmdW5jdGlvbiBqdXN0IGNsZWFyIGFs
bCBrZXlzLCB0aGUga2V5J3MgcmVsYXRlZCBkYXRhIGFyZSBsZWFrZWQuDQo+IFRoYXQgaXMgYSBn
b29kIHBvaW50LiBJIHRoaW5rIHRoaXMgc2hvdWxkIGJlIGRvY3VtZW50ZWQgaW4gdGhlIEFQSS4N
Cj4gDQo+ID4gMikgIEluIHNvbWUgY2FzZXMsIEkgZG9uJ3QgbmVlZCBkZWxldGUgYWxsIGtleXMu
IEp1c3Qgc29tZSBzZWxlY3RlZA0KPiA+IGtleXMgYW5kIGRhdGEgYXJlIGRlbGV0ZWQgYW5kIHJl
bGVhc2VkLg0KPiBJIHVuZGVyc3RhbmQgdGhlIHByb2JsZW0geW91IGhhdmUgcG9pbnRlZCBvdXQg
YW5kIHVuZGVyc3RhbmQgaG93IHRvDQo+IHJlcHJvZHVjZSBpdC4gQnV0LCB0aGUgdXNlIGNhc2Ug
aXMgbm90IGNsZWFyIHRvIG1lLiBDYW4geW91IHBsZWFzZSBleHBsYWluIHRoZQ0KPiB1c2UgY2Fz
ZT8NCltMaWxpanVuIChKZXJyeSldIA0KDQpBcyB5b3Uga25vdywgdGhlIGRwZGsgcnRlX2hhc2gg
dXNlIGEgZml4ZWQgc2l6ZSB0YWJsZSB0byBzdG9yZSBhbGwga2V5cy9kYXRhcy4gVGhlIG1lbW9y
eSB1c2VkIGJ5IGhhc2ggdGFibGUgaXMgcmVsYXRlZCB3aXRoIHRoaXMgZml4ZWQgc2l6ZS4NCklu
IG15IGNhc2UsIG5vcm1hbGx5IHRoZSBjb3VudCBvZiBrZXlzIGlzIGFib3V0IDEwMCwwMDAgYnV0
IHNvbWV0aW1lcyB0aGUgY291bnQgbWF5IGJ1cnN0IHVwIHRvIDMwLDAwMCwwMDAuDQpJbiBvcmRl
ciB0byBzYXZlIG1lbW9yeSB1c2FnZSwgSSBjcmVhdGUgYSBzbWFsbCBoYXNoIHRhYmxlIHdpdGgg
MTAwLDAwMCBzaXplIGFuZCByZXBsYWNlIHRvIGEgYmlnZ2VyIG9uZSB3aXRoIDMwLDAwMCwwMDAg
c2l6ZSB3aGVuDQp0aGVyZSBhcmUgbW9yZSBrZXlzIHRvIGJlIHN0b3JlZC4gQWxzbyB3aGVuIHRo
ZSBrZXkncyBjb3VudCByZWR1Y2VkIHRvIGxlc3MgdGhhbiAxMDAsMDAwLCBJIHJlcGxhY2UgdGhl
IGhhc2ggdGFibGUgd2l0aCBhIHNtYWxsIG9uZSB0bw0Kc2F2ZSB0aGUgbWVtb3J5Lg0KDQo+IA0K
PiA+DQo+ID4gSmVycnkuDQo+ID4NCj4gPiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+ID4g5Y+R
5Lu25Lq6OiBIb25uYXBwYSBOYWdhcmFoYWxsaSBbbWFpbHRvOkhvbm5hcHBhLk5hZ2FyYWhhbGxp
QGFybS5jb21dDQo+ID4g5Y+R6YCB5pe26Ze0OiAyMDIw5bm0NOaciDI55pelIDQ6NDYNCj4gPiDm
lLbku7bkuro6IExpbGlqdW4gKEplcnJ5KSA8amVycnkubGlsaWp1bkBodWF3ZWkuY29tPjsgJ2Rl
dkBkcGRrLm9yZycNCj4gPiA8ZGV2QGRwZGsub3JnPg0KPiA+IOaKhOmAgTogd2FuZ3l1bmppYW4g
PHdhbmd5dW5qaWFuQGh1YXdlaS5jb20+OyB4dWRpbmdrZQ0KPiA+IDx4dWRpbmdrZUBodWF3ZWku
Y29tPjsgJ3N0YWJsZUBkcGRrLm9yZycgPHN0YWJsZUBkcGRrLm9yZz47IG5kDQo+ID4gPG5kQGFy
bS5jb20+OyBIb25uYXBwYSBOYWdhcmFoYWxsaSA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNv
bT47DQo+IG5kDQo+ID4gPG5kQGFybS5jb20+DQo+ID4g5Li76aKYOiBSRTogW2RwZGstZGV2XSBb
UEFUQ0hdIGxpYi9saWJydGVfaGFzaDogYWRkIHJ0ZV9oYXNoX2RlbF9rZXlfZml4ZWQNCj4gPiB3
aXRob3V0IGNvbXBhY3QNCj4gPg0KPiA+IDxzbmlwPg0KPiA+DQo+ID4gSGkgSmVycnksDQo+ID4g
CUZldyBxdWVzdGlvbnMgaW5saW5lLg0KPiA+DQo+ID4gPiBTdWJqZWN0OiBbZHBkay1kZXZdIFtQ
QVRDSF0gbGliL2xpYnJ0ZV9oYXNoOiBhZGQNCj4gPiA+IHJ0ZV9oYXNoX2RlbF9rZXlfZml4ZWQg
d2l0aG91dCBjb21wYWN0DQo+ID4gPg0KPiA+ID4gVGhlIGtleXMgaWR4IGFyZSBzdG9yZWQgaW4g
cnRlX2hhc2ggbWFpbiBidWNrZXQga2V5IHNsb3RzIGFuZCBleHRlbmQNCj4gPiA+IGJ1Y2tldCBr
ZXkgc3RvdHMuDQo+ID4gPiBXZSBpdGVyYXRlIGV2ZXJ5IG5vIGVtcHR5IEtleXMgaW4gaC0+YnVj
a2V0cyBhbmQgaC0+YnVja2V0c19leHQgZnJvbQ0KPiA+ID4gc3RhcnQgdG8gbGFzdC4NCj4gPiA+
IFdoZW4gZGVsZXRpbmcga2V5cyB0aGUgZnVuY3Rpb24gX19ydGVfaGFzaF9jb21wYWN0X2xsKCkg
bWF5IG1vdmUNCj4gPiA+IGxhc3RfYmt0J3Mga2V5IHRvIHByZXZpb3VzIGJ1Y2tldCBpbiBvcmRl
ciB0byBjb21wYWN0IGV4dGVuZCBidWNrZXQgbGlzdC4NCj4gPiA+IElmIHRoZSBwcmV2aW91cyBi
dWNrZXQgaGFzIGJlZW4gaXRlcmF0ZWQsIHRoZSBtb3ZlZCBrZXkgbWF5IGJlDQo+ID4gPiBtaXNz
ZWQgZm9yIHVzZXJzLg0KPiA+ID4gVGhlbiB0aG9zZSBtaXNzZWQga2V5cyBhcmUgbGVha2VkIGFu
ZCBydGVfaGFzaCB0YWJsZSBjYW4ndCBiZSBjbGVhbnVwLg0KPiA+ID4gU28gd2UgYWRkIGEgbmV3
IEFQSSBydGVfaGFzaF9kZWxfa2V5X2ZpeGVkKCkgdXNlZCBpbiBpdGVyYXRlIGxvb3AgdG8NCj4g
PiA+IGF2b2lkIHRoaXMgYnVncy4NCj4gPiA+DQo+ID4gPiAtLS0NCj4gPiA+ICBsaWIvbGlicnRl
X2hhc2gvcnRlX2N1Y2tvb19oYXNoLmMgICAgfCAxOSArKysrKysrKysrKysrKy0tLS0tDQo+ID4g
PiAgbGliL2xpYnJ0ZV9oYXNoL3J0ZV9oYXNoLmggICAgICAgICAgIHwgIDUgKysrKysNCj4gPiA+
ICBsaWIvbGlicnRlX2hhc2gvcnRlX2hhc2hfdmVyc2lvbi5tYXAgfCAgMSArDQo+ID4gPiAgMyBm
aWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0KPiA+ID4NCj4g
PiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2hhc2gvcnRlX2N1Y2tvb19oYXNoLmMNCj4gPiA+
IGIvbGliL2xpYnJ0ZV9oYXNoL3J0ZV9jdWNrb29faGFzaC5jDQo+ID4gPiBpbmRleCBiNTI2MzBi
Li4yZGEzYzFkIDEwMDY0NA0KPiA+ID4gLS0tIGEvbGliL2xpYnJ0ZV9oYXNoL3J0ZV9jdWNrb29f
aGFzaC5jDQo+ID4gPiArKysgYi9saWIvbGlicnRlX2hhc2gvcnRlX2N1Y2tvb19oYXNoLmMNCj4g
PiA+IEBAIC0xNTIzLDcgKzE1MjMsNyBAQCBzZWFyY2hfYW5kX3JlbW92ZShjb25zdCBzdHJ1Y3Qg
cnRlX2hhc2ggKmgsDQo+ID4gPiBjb25zdCB2b2lkICprZXksDQo+ID4gPg0KPiA+ID4gIHN0YXRp
YyBpbmxpbmUgaW50MzJfdA0KPiA+ID4gIF9fcnRlX2hhc2hfZGVsX2tleV93aXRoX2hhc2goY29u
c3Qgc3RydWN0IHJ0ZV9oYXNoICpoLCBjb25zdCB2b2lkDQo+ICprZXksDQo+ID4gPiAtCQkJCQkJ
aGFzaF9zaWdfdCBzaWcpDQo+ID4gPiArCQkJCQkJaGFzaF9zaWdfdCBzaWcsIHVpbnQ4X3QNCj4g
PiA+IGNvbXBhY3QpDQo+ID4gPiAgew0KPiA+ID4gIAl1aW50MzJfdCBwcmltX2J1Y2tldF9pZHgs
IHNlY19idWNrZXRfaWR4Ow0KPiA+ID4gIAlzdHJ1Y3QgcnRlX2hhc2hfYnVja2V0ICpwcmltX2Jr
dCwgKnNlY19ia3QsICpwcmV2X2JrdCwgKmxhc3RfYmt0Ow0KPiA+IEBADQo+ID4gPiAtMTU0MSw3
ICsxNTQxLDggQEAgX19ydGVfaGFzaF9kZWxfa2V5X3dpdGhfaGFzaChjb25zdCBzdHJ1Y3QNCj4g
PiA+IHJ0ZV9oYXNoICpoLCBjb25zdCB2b2lkICprZXksDQo+ID4gPiAgCS8qIGxvb2sgZm9yIGtl
eSBpbiBwcmltYXJ5IGJ1Y2tldCAqLw0KPiA+ID4gIAlyZXQgPSBzZWFyY2hfYW5kX3JlbW92ZSho
LCBrZXksIHByaW1fYmt0LCBzaG9ydF9zaWcsICZwb3MpOw0KPiA+ID4gIAlpZiAocmV0ICE9IC0x
KSB7DQo+ID4gPiAtCQlfX3J0ZV9oYXNoX2NvbXBhY3RfbGwoaCwgcHJpbV9ia3QsIHBvcyk7DQo+
ID4gPiArCQlpZiAoY29tcGFjdCkNCj4gPiA+ICsJCQlfX3J0ZV9oYXNoX2NvbXBhY3RfbGwoaCwg
cHJpbV9ia3QsIHBvcyk7DQo+ID4gPiAgCQlsYXN0X2JrdCA9IHByaW1fYmt0LT5uZXh0Ow0KPiA+
ID4gIAkJcHJldl9ia3QgPSBwcmltX2JrdDsNCj4gPiA+ICAJCWdvdG8gcmV0dXJuX2JrdDsNCj4g
PiA+IEBAIC0xNTUzLDcgKzE1NTQsOCBAQCBfX3J0ZV9oYXNoX2RlbF9rZXlfd2l0aF9oYXNoKGNv
bnN0IHN0cnVjdA0KPiA+ID4gcnRlX2hhc2ggKmgsIGNvbnN0IHZvaWQgKmtleSwNCj4gPiA+ICAJ
Rk9SX0VBQ0hfQlVDS0VUKGN1cl9ia3QsIHNlY19ia3QpIHsNCj4gPiA+ICAJCXJldCA9IHNlYXJj
aF9hbmRfcmVtb3ZlKGgsIGtleSwgY3VyX2JrdCwgc2hvcnRfc2lnLCAmcG9zKTsNCj4gPiA+ICAJ
CWlmIChyZXQgIT0gLTEpIHsNCj4gPiA+IC0JCQlfX3J0ZV9oYXNoX2NvbXBhY3RfbGwoaCwgY3Vy
X2JrdCwgcG9zKTsNCj4gPiA+ICsJCQlpZiAoY29tcGFjdCkNCj4gPiA+ICsJCQkJX19ydGVfaGFz
aF9jb21wYWN0X2xsKGgsIGN1cl9ia3QsIHBvcyk7DQo+ID4gPiAgCQkJbGFzdF9ia3QgPSBzZWNf
Ymt0LT5uZXh0Ow0KPiA+ID4gIAkJCXByZXZfYmt0ID0gc2VjX2JrdDsNCj4gPiA+ICAJCQlnb3Rv
IHJldHVybl9ia3Q7DQo+ID4gPiBAQCAtMTYwNywxNCArMTYwOSwyMSBAQCBydGVfaGFzaF9kZWxf
a2V5X3dpdGhfaGFzaChjb25zdCBzdHJ1Y3QNCj4gPiA+IHJ0ZV9oYXNoICpoLA0KPiA+ID4gIAkJ
CWNvbnN0IHZvaWQgKmtleSwgaGFzaF9zaWdfdCBzaWcpICB7DQo+ID4gPiAgCVJFVFVSTl9JRl9U
UlVFKCgoaCA9PSBOVUxMKSB8fCAoa2V5ID09IE5VTEwpKSwgLUVJTlZBTCk7DQo+ID4gPiAtCXJl
dHVybiBfX3J0ZV9oYXNoX2RlbF9rZXlfd2l0aF9oYXNoKGgsIGtleSwgc2lnKTsNCj4gPiA+ICsJ
cmV0dXJuIF9fcnRlX2hhc2hfZGVsX2tleV93aXRoX2hhc2goaCwga2V5LCBzaWcsIDEpOw0KPiA+
ID4gIH0NCj4gPiA+DQo+ID4gPiAgaW50MzJfdA0KPiA+ID4gIHJ0ZV9oYXNoX2RlbF9rZXkoY29u
c3Qgc3RydWN0IHJ0ZV9oYXNoICpoLCBjb25zdCB2b2lkICprZXkpICB7DQo+ID4gPiAgCVJFVFVS
Tl9JRl9UUlVFKCgoaCA9PSBOVUxMKSB8fCAoa2V5ID09IE5VTEwpKSwgLUVJTlZBTCk7DQo+ID4g
PiAtCXJldHVybiBfX3J0ZV9oYXNoX2RlbF9rZXlfd2l0aF9oYXNoKGgsIGtleSwgcnRlX2hhc2hf
aGFzaChoLA0KPiBrZXkpKTsNCj4gPiA+ICsJcmV0dXJuIF9fcnRlX2hhc2hfZGVsX2tleV93aXRo
X2hhc2goaCwga2V5LCBydGVfaGFzaF9oYXNoKGgsDQo+IGtleSksDQo+ID4gPiAxKTsNCj4gPiA+
ICt9DQo+ID4gPiArDQo+ID4gPiAraW50MzJfdA0KPiA+ID4gK3J0ZV9oYXNoX2RlbF9rZXlfZml4
ZWQoY29uc3Qgc3RydWN0IHJ0ZV9oYXNoICpoLCBjb25zdCB2b2lkICprZXkpIHsNCj4gPiA+ICsJ
UkVUVVJOX0lGX1RSVUUoKChoID09IE5VTEwpIHx8IChrZXkgPT0gTlVMTCkpLCAtRUlOVkFMKTsN
Cj4gPiA+ICsJcmV0dXJuIF9fcnRlX2hhc2hfZGVsX2tleV93aXRoX2hhc2goaCwga2V5LCBydGVf
aGFzaF9oYXNoKGgsDQo+IGtleSksDQo+ID4gPiAwKTsNCj4gPiA+ICB9DQo+ID4gPg0KPiA+ID4g
IGludA0KPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfaGFzaC9ydGVfaGFzaC5oIGIvbGli
L2xpYnJ0ZV9oYXNoL3J0ZV9oYXNoLmgNCj4gPiA+IGluZGV4IGVjZWIzNjUuLjliNzFkOGEgMTAw
NjQ0DQo+ID4gPiAtLS0gYS9saWIvbGlicnRlX2hhc2gvcnRlX2hhc2guaA0KPiA+ID4gKysrIGIv
bGliL2xpYnJ0ZV9oYXNoL3J0ZV9oYXNoLmgNCj4gPiA+IEBAIC0yOTcsNiArMjk3LDExIEBAIHJ0
ZV9oYXNoX2FkZF9rZXlfd2l0aF9oYXNoKGNvbnN0IHN0cnVjdA0KPiA+IHJ0ZV9oYXNoDQo+ID4g
PiAqaCwgY29uc3Qgdm9pZCAqa2V5LCBoYXNoX3NpZ190ICBpbnQzMl90ICBydGVfaGFzaF9kZWxf
a2V5KGNvbnN0DQo+ID4gPiBzdHJ1Y3QgcnRlX2hhc2ggKmgsIGNvbnN0IHZvaWQgKmtleSk7DQo+
ID4gPg0KPiA+ID4gKw0KPiA+ID4gKy8qIGZvciB3aXRob3V0IGNvbXBhY3QgKi8NCj4gPiA+ICtp
bnQzMl90DQo+ID4gPiArcnRlX2hhc2hfZGVsX2tleV9maXhlZChjb25zdCBzdHJ1Y3QgcnRlX2hh
c2ggKmgsIGNvbnN0IHZvaWQgKmtleSk7DQo+ID4gPiArDQo+ID4gPiAgLyoqDQo+ID4gPiAgICog
UmVtb3ZlIGEga2V5IGZyb20gYW4gZXhpc3RpbmcgaGFzaCB0YWJsZS4NCj4gPiA+ICAgKiBUaGlz
IG9wZXJhdGlvbiBpcyBub3QgbXVsdGktdGhyZWFkIHNhZmUgZGlmZiAtLWdpdA0KPiA+ID4gYS9s
aWIvbGlicnRlX2hhc2gvcnRlX2hhc2hfdmVyc2lvbi5tYXANCj4gPiA+IGIvbGliL2xpYnJ0ZV9o
YXNoL3J0ZV9oYXNoX3ZlcnNpb24ubWFwDQo+ID4gPiBpbmRleCAzMGNjMDg2Li4xOTQxZDE3IDEw
MDY0NA0KPiA+ID4gLS0tIGEvbGliL2xpYnJ0ZV9oYXNoL3J0ZV9oYXNoX3ZlcnNpb24ubWFwDQo+
ID4gPiArKysgYi9saWIvbGlicnRlX2hhc2gvcnRlX2hhc2hfdmVyc2lvbi5tYXANCj4gPiA+IEBA
IC0xMSw2ICsxMSw3IEBAIERQREtfMjAuMCB7DQo+ID4gPiAgCXJ0ZV9oYXNoX2NvdW50Ow0KPiA+
ID4gIAlydGVfaGFzaF9jcmVhdGU7DQo+ID4gPiAgCXJ0ZV9oYXNoX2RlbF9rZXk7DQo+ID4gPiAr
CXJ0ZV9oYXNoX2RlbF9rZXlfZml4ZWQ7DQo+ID4gPiAgCXJ0ZV9oYXNoX2RlbF9rZXlfd2l0aF9o
YXNoOw0KPiA+ID4gIAlydGVfaGFzaF9maW5kX2V4aXN0aW5nOw0KPiA+ID4gIAlydGVfaGFzaF9m
cmVlOw0KPiA+ID4gLS0NCj4gPiA+IDIuMTkuMQ0KPiA+ID4NCj4gPiA+IC0tLS0t6YKu5Lu25Y6f
5Lu2LS0tLS0NCj4gPiA+IOWPkeS7tuS6ujogTGlsaWp1biAoSmVycnkpDQo+ID4gPiDlj5HpgIHm
l7bpl7Q6IDIwMjDlubQ05pyIMTjml6UgMTg6MDANCj4gPiA+IOaUtuS7tuS6ujogJ2RldkBkcGRr
Lm9yZycgPGRldkBkcGRrLm9yZz47ICdzdGFibGVAZHBkay5vcmcnDQo+ID4gPiA8c3RhYmxlQGRw
ZGsub3JnPg0KPiA+ID4g5Li76aKYOiBydGVfaGFzaCBidWc6IGNhbid0IGl0ZXJhdGUgYWxsIGVu
dHJpZXMgd2hlbiBkZWxldGluZyBrZXlzIGluDQo+ID4gPiBydGVfaGFzaCBpdGVyYXRlIGxvb3Au
DQo+ID4gPg0KPiA+ID4gSGkgYWxsLA0KPiA+ID4NCj4gPiA+ICAgICBJbiBteSB0ZXN0LCBlbnRy
aWVzIGNhbid0IGJlIGNsZWFudXAgaW4gcnRlX2hhc2ggdGFibGUgd2hlbg0KPiA+ID4gZGVsZXRp
bmcga2V5cyBpbiBydGVfaGFzaCBpdGVyYXRlIGxvb3AuIFRoZSB0ZXN0IHN0ZXBzOg0KPiA+ID4g
ICAgIDEuICBjcmVhdGUgYSBoYXNoIHRhYmxlIHRhYmxlMSB3aXRoIGxpbWl0IDMwMDAwLCBleHQg
YnVja2V0DQo+ID4gPiBlbmFibGVkLCAgYW5kIGluc2VydCAzMDAwMCBlbnRyaWVzIGludG8gdGhp
cyBoYXNoIHRhYmxlLg0KPiA+ID4gICAgIDIuICBjcmVhdGUgYSBsYXJnZXIgaGFzaCB0YWJsZSB0
YWJsZTIgd2l0aCBsaW1pdCA2MDAwMCwgLCBleHQNCj4gPiA+IGJ1Y2tldA0KPiA+IGVuYWJsZWQu
DQo+ID4gPiAgICAgMy4gIGl0ZXJhdGUgYWxsIGVudHJpZXMgb2YgdGFibGUxIGFuZCBpbnNlcnQg
dGhlbSB0byB0aGUgdGFibGUyLg0KPiA+ID4gSW5zZXJ0IG5ldw0KPiA+ID4gMTAwMDAgZW50cmll
cyB0byB0aGlzIHRhYmxlMi4NCj4gPiA+ICAgICA0LiAgVGhlbiBmbHVzaCBhbGwgZW50cmllcyBm
cm9tIHRhYmxlMiBieSBkZWxldGluZyBrZXlzIGluDQo+ID4gPiBydGVfaGFzaCBpdGVyYXRlIGxv
b3AuIEJ1dCB0aGVyZSBhcmUgc3RpbGwgc29tZSBrZXlzIGxlYWtlZCBpbiB0YWJsZTIuDQo+ID4g
SXMgdGhlcmUgYW55IHJlYXNvbiBmb3IgZmx1c2hpbmcgdGFibGUyIGluIHRoaXMgbWFubmVyPw0K
PiA+IElzIGl0IHBvc3NpYmxlIHRvIHVzZSAncnRlX2hhc2hfcmVzZXQnIGluc3RlYWQ/DQo+ID4N
Cj4gPiA+DQo+ID4gPiAgICAgRnJvbSBteSBhbmFseXNpcywgdGhlIGtleXMgaWR4IGFyZSBzdG9y
ZWQgaW4gcnRlX2hhc2ggbWFpbg0KPiA+ID4gYnVja2V0IGtleSBzbG90cyBhbmQgZXh0ZW5kIGJ1
Y2tldCBrZXkgc3RvdHMuDQo+ID4gPiAgICAgV2UgaXRlcmF0ZSBldmVyeSBubyBlbXB0eSBLZXlz
IGluIGgtPmJ1Y2tldHMgYW5kIGgtPmJ1Y2tldHNfZXh0DQo+ID4gPiBmcm9tIHN0YXJ0IHRvIGxh
c3QuDQo+ID4gPiAgICAgV2hlbiBkZWxldGluZyBrZXlzIHRoZSBmdW5jdGlvbiBfX3J0ZV9oYXNo
X2NvbXBhY3RfbGwoKSBtYXkgbW92ZQ0KPiA+ID4gbGFzdF9ia3QncyBrZXkgdG8gcHJldmlvdXMg
YnVja2V0IGluIG9yZGVyIHRvIGNvbXBhY3QgZXh0ZW5kIGJ1Y2tldCBsaXN0Lg0KPiA+ID4gICAg
IElmIHRoZSBwcmV2aW91cyBidWNrZXQgaGFzIGJlZW4gaXRlcmF0ZWQsIHRoZSBtb3ZlZCBrZXkg
bWF5IGJlDQo+ID4gPiBtaXNzZWQgZm9yIHVzZXJzLg0KPiA+ID4gICAgIFRoZW4gdGhvc2UgbWlz
c2VkIGtleXMgYXJlIGxlYWtlZCBhbmQgcnRlX2hhc2ggdGFibGUgY2FuJ3QgYmUgY2xlYW51cC4N
Cj4gPiA+DQo+ID4gPiAgICAgTm93IEkgcmV0cnkgdGhlIGl0ZXJhdGUgYW5kIGRlbGV0ZSBrZXlz
LCB0aGF0IGNhbiBhdm9pZCB0aGlzIGJ1Zy4NCj4gPiA+DQo+ID4gPiAgICAgSXMgdGhlcmUgYW55
IGlkZWFzIG9yIHNvbHV0aW9ucyBvbiB0aGlzIGJ1Zz8gICBUaGFua3MuDQo+ID4gPg0KPiA+ID4g
SmVycnkuDQo=