From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Ola.Liljedahl@arm.com>
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01on0064.outbound.protection.outlook.com [104.47.2.64])
 by dpdk.org (Postfix) with ESMTP id 56C944CA5
 for <dev@dpdk.org>; Thu,  4 Oct 2018 01:05:34 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; 
 s=selector1-arm-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9tq7IXtt0sg6rZUoGFei836HZwO9+Zmx8lBnbw+M7yA=;
 b=fflZ1IoEnyOTOXbizkspr4tazcazTPQ77wjwzGkTldMGGBEMPS1wVzV/QzqIijbW6BpJ5C7ockd1rW0bj9Hxo1XeFzxAEvpZYfIone6HD2xMz9HP+Nf8Fug2e1ard5nY6dIHIEAuJ6s0rM2tQACgI3Ujb8h3+mqG5QaJKwdNWCQ=
Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com (10.168.95.140) by
 HE1PR0801MB1658.eurprd08.prod.outlook.com (10.168.149.18) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.1207.18; Wed, 3 Oct 2018 23:05:31 +0000
Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com
 ([fe80::c84:eee7:43bf:9f20]) by HE1PR0801MB2076.eurprd08.prod.outlook.com
 ([fe80::c84:eee7:43bf:9f20%11]) with mapi id 15.20.1185.026; Wed, 3 Oct 2018
 23:05:30 +0000
From: Ola Liljedahl <Ola.Liljedahl@arm.com>
To: "Wang, Yipeng1" <yipeng1.wang@intel.com>, Honnappa Nagarahalli
 <Honnappa.Nagarahalli@arm.com>, "Van Haaren, Harry"
 <harry.van.haaren@intel.com>, "Richardson, Bruce"
 <bruce.richardson@intel.com>
CC: "De Lara Guarch, Pablo" <pablo.de.lara.guarch@intel.com>, "dev@dpdk.org"
 <dev@dpdk.org>, "Gavin Hu (Arm Technology China)" <Gavin.Hu@arm.com>, Steve
 Capper <Steve.Capper@arm.com>, nd <nd@arm.com>, "Gobriel, Sameh"
 <sameh.gobriel@intel.com>
Thread-Topic: [dpdk-dev] [PATCH 3/4] hash: fix rw concurrency while moving keys
Thread-Index: AQHUW22UOruhd3pz1UOuCfmE47h8FQ==
Date: Wed, 3 Oct 2018 23:05:30 +0000
Message-ID: <59A4B92C-C306-4E89-920D-0FD3F6517AA6@arm.com>
References: <1536253938-192391-1-git-send-email-honnappa.nagarahalli@arm.com>
 <1536253938-192391-4-git-send-email-honnappa.nagarahalli@arm.com>
 <D2C4A16CA39F7F4E8E384D204491D7A6614D81EE@FMSMSX151.amr.corp.intel.com>
 <20180928082610.GA7592@bricha3-MOBL.ger.corp.intel.com>
 <E923DB57A917B54B9182A2E928D00FA65E2E0E47@IRSMSX102.ger.corp.intel.com>
 <AM6PR08MB3672C2D99F8B58A027AA65FB98EE0@AM6PR08MB3672.eurprd08.prod.outlook.com>
 <E923DB57A917B54B9182A2E928D00FA65E2E4D28@IRSMSX102.ger.corp.intel.com>
 <D2C4A16CA39F7F4E8E384D204491D7A6614EB071@FMSMSX151.amr.corp.intel.com>
 <AM6PR08MB36725E31D7C4AB808DF13FF798E90@AM6PR08MB3672.eurprd08.prod.outlook.com>
 <D2C4A16CA39F7F4E8E384D204491D7A6614EB732@FMSMSX151.amr.corp.intel.com>
In-Reply-To: <D2C4A16CA39F7F4E8E384D204491D7A6614EB732@FMSMSX151.amr.corp.intel.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.0.180812
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=Ola.Liljedahl@arm.com; 
x-originating-ip: [158.174.8.16]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; HE1PR0801MB1658;
 6:mtjX1CEQFgLWF53mTADIW0BxgiLF5Zk/RtiGl8qYabZg/osTwpgUKqo+NuD+7LbhSG3kp56+UE73ImyE982rELDsnatIkBc3a7OZuvkjWLKIGtvUee3mmN2B4btKa4QYN3vwzQNmBfzC0NcULPZO5dGZZ0qbD8/MrB2GWvExIDykGj5EPBglZmw/mAL44yTkqNjf2I+hqLjWyAVht8DQWKruzBxBwZkjKT38If5fGspD2znCtWgZwFjM4G0NO0yvgaG7hMRKBwk0cobx5dRmF7EPJ7qiMNvQRCYrBxd8TRIV7ZbND1jvGHmYHOA1/oyd2UDhq4a7UuEHudILrHkyY8IkcsCI/Bmn/JPOYw7mhNLoc7+pp32DHpmJDD6PNul3cozqNcoXeb6wgRdpT/jkTD2k9z52lM8N98hoDRfq2+fFontYi72lS+EOXJF4ZhftQJJ6ZrR57WiBTtdncm763w==;
 5:Z13Kbyg1ZF4nqW06Z0UT4vqGB9gf1zUewAGky83wjt2GVbSHspd92d3oluqssSW2FcEBIu/M+JOJivSK3dYrNEIVnXAsiS9AQslclDCN+9+G2+oKAvwPTtDGtxxpcHUdVb8cjE+d48t/mzmPOXTEgFlFldFdi2xGFzkwHHj26t0=;
 7:1imI+gQPfRDwSkEC4Z4zC+nj5nOOr4FrwNtJ6a10zOVRLFh5F/l8ZsNBAorsoyXQUlqvFShOBiyDIa0rJpwrKWpPdzej3xZNoh0HKq54FdMtWEn5qmW6124ahcTVyoIAqBBjMQfffsRhMwvr8ObpFl3wNQVEYZ0xAqx68mL3BnoZb/4TLNii1DFeUF8anhY1AoXhqNUHfGaQQ2c/d1MHlUDzo6ZfYZwHkwzu6GZ/Q4LSeUooQfAkXL4NdT3/lKDV
x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR;
x-ms-office365-filtering-correlation-id: 6df21ee6-74c5-4a71-4e45-08d62984b775
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0;
 RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020);
 SRVR:HE1PR0801MB1658; 
x-ms-traffictypediagnostic: HE1PR0801MB1658:
nodisclaimer: True
x-microsoft-antispam-prvs: <HE1PR0801MB1658E89704E7F50563796621E0E90@HE1PR0801MB1658.eurprd08.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(180628864354917)(228905959029699);
x-ms-exchange-senderadcheck: 1
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0;
 RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231355)(944501410)(52105095)(6055026)(149066)(150057)(6041310)(20161123564045)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(201708071742011)(7699051);
 SRVR:HE1PR0801MB1658; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0801MB1658; 
x-forefront-prvs: 0814A2C7A3
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(376002)(396003)(136003)(366004)(346002)(39860400002)(57704003)(13464003)(199004)(189003)(14454004)(2900100001)(68736007)(6506007)(76176011)(66066001)(99286004)(82746002)(2906002)(102836004)(186003)(14444005)(93886005)(2616005)(97736004)(6246003)(5250100002)(26005)(446003)(256004)(486006)(316002)(11346002)(5660300001)(476003)(110136005)(25786009)(54906003)(86362001)(305945005)(105586002)(6116002)(3846002)(7736002)(4326008)(478600001)(81156014)(72206003)(81166006)(8676002)(33656002)(6306002)(6512007)(53936002)(8936002)(36756003)(71190400001)(71200400001)(6436002)(229853002)(106356001)(83716004)(6486002)(58126008);
 DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0801MB1658;
 H:HE1PR0801MB2076.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: arm.com does not designate
 permitted sender hosts)
x-microsoft-antispam-message-info: jtQLjCMAPhNeUAdjaa4x/ACZ6BiuZRZgy8SqLmQCbll1iButjKqUrqlc7VGwmpCvYBwPNVG16ssZ7aAdH9BlKsrQypcpvxXq15qyDIUjqYU77va1pNqB7REYe8mCNW+kEypBThm/8i6t9lUO1Uahmy3Qe52lt6Mq7qntSjD6axYkiUfXRbLQfKOE7hsxQUgHH0W62enzsMwzRFBTnSummRfUzWEk16mK1PzS3XKq93MTICQRX0w74AcoSsmZLfni7/wRDnrxnkMkfSLdyyQ1tBN0Tj14scvuMzrvw66OZDH2Gb6WU4eJwAWR2zwade1BHOGjiMLvZwEGuzK1dSaVJSR+oiLMysVr7WUhjQSetDM=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <13F9A940667B2543BA5D6DD5096FF26A@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6df21ee6-74c5-4a71-4e45-08d62984b775
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Oct 2018 23:05:30.8332 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1658
Subject: Re: [dpdk-dev] [PATCH 3/4] hash: fix rw concurrency while moving
	keys
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>
X-List-Received-Date: Wed, 03 Oct 2018 23:05:34 -0000

DQoNCu+7v09uIDAzLzEwLzIwMTgsIDIwOjAwLCAiV2FuZywgWWlwZW5nMSIgPHlpcGVuZzEud2Fu
Z0BpbnRlbC5jb20+IHdyb3RlOg0KDQogICAgDQogICAgDQogICAgPi0tLS0tT3JpZ2luYWwgTWVz
c2FnZS0tLS0tDQogICAgPkZyb206IEhvbm5hcHBhIE5hZ2FyYWhhbGxpIFttYWlsdG86SG9ubmFw
cGEuTmFnYXJhaGFsbGlAYXJtLmNvbV0NCiAgICA+U2VudDogV2VkbmVzZGF5LCBPY3RvYmVyIDMs
IDIwMTggMTA6MzMgQU0NCiAgICA+VG86IFdhbmcsIFlpcGVuZzEgPHlpcGVuZzEud2FuZ0BpbnRl
bC5jb20+OyBWYW4gSGFhcmVuLCBIYXJyeSA8aGFycnkudmFuLmhhYXJlbkBpbnRlbC5jb20+OyBS
aWNoYXJkc29uLCBCcnVjZQ0KICAgID48YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+DQogICAg
PkNjOiBEZSBMYXJhIEd1YXJjaCwgUGFibG8gPHBhYmxvLmRlLmxhcmEuZ3VhcmNoQGludGVsLmNv
bT47IGRldkBkcGRrLm9yZzsgR2F2aW4gSHUgKEFybSBUZWNobm9sb2d5IENoaW5hKQ0KICAgID48
R2F2aW4uSHVAYXJtLmNvbT47IFN0ZXZlIENhcHBlciA8U3RldmUuQ2FwcGVyQGFybS5jb20+OyBP
bGEgTGlsamVkYWhsIDxPbGEuTGlsamVkYWhsQGFybS5jb20+OyBuZCA8bmRAYXJtLmNvbT47IEdv
YnJpZWwsDQogICAgPlNhbWVoIDxzYW1laC5nb2JyaWVsQGludGVsLmNvbT4NCiAgICA+U3ViamVj
dDogUkU6IFtkcGRrLWRldl0gW1BBVENIIDMvNF0gaGFzaDogZml4IHJ3IGNvbmN1cnJlbmN5IHdo
aWxlIG1vdmluZyBrZXlzDQogICAgPg0KICAgID4+ID4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t
LQ0KICAgID4+ID5Gcm9tOiBWYW4gSGFhcmVuLCBIYXJyeQ0KICAgID4+ID4+ID4gPiA+ID4gLyoq
DQogICAgPj4gPj4gPiA+ID4gPiAgKiBBZGQgYSBrZXkgdG8gYW4gZXhpc3RpbmcgaGFzaCB0YWJs
ZS4NCiAgICA+PiA+PiA+ID4gPiA+QEAgLTIyMiw3ICsyMjIsNyBAQCBydGVfaGFzaF9hZGRfa2V5
KGNvbnN0IHN0cnVjdCBydGVfaGFzaCAqaCwNCiAgICA+PiA+PiA+ID4gPiA+Y29uc3Qgdm9pZA0K
ICAgID4+ID4+ID4gPiAqa2V5KTsNCiAgICA+PiA+PiA+ID4gPiA+ICAqICAgICBhcnJheSBvZiB1
c2VyIGRhdGEuIFRoaXMgdmFsdWUgaXMgdW5pcXVlIGZvciB0aGlzIGtleS4NCiAgICA+PiA+PiA+
ID4gPiA+ICAqLw0KICAgID4+ID4+ID4gPiA+ID4gaW50MzJfdA0KICAgID4+ID4+ID4gPiA+ID4t
cnRlX2hhc2hfYWRkX2tleV93aXRoX2hhc2goY29uc3Qgc3RydWN0IHJ0ZV9oYXNoICpoLCBjb25z
dA0KICAgID4+ID4+ID4gPiA+ID52b2lkICprZXksDQogICAgPj4gPj4gPiA+IGhhc2hfc2lnX3Qg
c2lnKTsNCiAgICA+PiA+PiA+ID4gPiA+K3J0ZV9oYXNoX2FkZF9rZXlfd2l0aF9oYXNoKHN0cnVj
dCBydGVfaGFzaCAqaCwgY29uc3Qgdm9pZA0KICAgID4+ID4+ID4gPiA+ID4rKmtleSwNCiAgICA+
PiA+PiA+ID4gaGFzaF9zaWdfdCBzaWcpOw0KICAgID4+ID4+ID4gPiA+ID4NCiAgICA+PiA+PiA+
ID4gPiA+IC8NCiAgICA+PiA+PiA+ID4gPg0KICAgID4+ID4+ID4gPiA+IEkgdGhpbmsgdGhlIGFi
b3ZlIGNoYW5nZXMgd2lsbCBicmVhayBBQkkgYnkgY2hhbmdpbmcgdGhlDQogICAgPj4gPj4gPiA+
ID4gcGFyYW1ldGVyDQogICAgPj4gPj4gdHlwZT8NCiAgICA+PiA+PiA+ID4gT3RoZXIgcGVvcGxl
IG1heSBrbm93IGJldHRlciBvbiB0aGlzLg0KICAgID4+ID4+ID4gPg0KICAgID4+ID4+ID4gPiBK
dXN0IHJlbW92aW5nIGEgY29uc3Qgc2hvdWxkIG5vdCBjaGFuZ2UgdGhlIEFCSSwgSSBiZWxpZXZl
LCBzaW5jZQ0KICAgID4+ID4+ID4gPiB0aGUgY29uc3QgaXMganVzdCBhZHZpc29yeSBoaW50IHRv
IHRoZSBjb21waWxlci4gQWN0dWFsIHBhcmFtZXRlcg0KICAgID4+ID4+ID4gPiBzaXplIGFuZCBj
b3VudCByZW1haW5zIHVuY2hhbmdlZCBzbyBJIGRvbid0IGJlbGlldmUgdGhlcmUgaXMgYW4gaXNz
dWUuDQogICAgPj4gPj4gPiA+IFtBQkkgZXhwZXJ0cywgcGxlYXNlIGNvcnJlY3QgbWUgaWYgSSdt
IHdyb25nIG9uIHRoaXNdDQogICAgPj4gPj4gPg0KICAgID4+ID4+ID4NCiAgICA+PiA+PiA+IFtD
ZXJ0YWlubHkgbm8gQUJJIGV4cGVydCwgYnV0Li4uXQ0KICAgID4+ID4+ID4NCiAgICA+PiA+PiA+
IEkgdGhpbmsgdGhpcyBpcyBhbiBBUEkgYnJlYWssIG5vdCBBQkkgYnJlYWsuDQogICAgPj4gPj4g
Pg0KICAgID4+ID4+ID4gR2l2ZW4gYXBwbGljYXRpb24gY29kZSBhcyBmb2xsb3dzLCBpdCB3aWxs
IGZhaWwgdG8gY29tcGlsZSAtIGV2ZW4NCiAgICA+PiA+PiA+IHRob3VnaA0KICAgID4+ID4+IHJ1
bm5pbmcNCiAgICA+PiA+PiA+IHRoZSBuZXcgY29kZSBhcyBhIC5zbyB3b3VsZG4ndCBjYXVzZSBh
bnkgaXNzdWVzIChBRkFJSykuDQogICAgPj4gPj4gPg0KICAgID4+ID4+ID4gdm9pZCBkb19oYXNo
X3N0dWZmKGNvbnN0IHN0cnVjdCBydGVfaGFzaCAqaCwgLi4uKSB7DQogICAgPj4gPj4gPiAgICAg
LyogcGFyYW1ldGVyIHBhc3NlZCBpbiBpcyBjb25zdCwgYnV0IHVwZGF0ZWQgZnVuY3Rpb24gcHJv
dG90eXBlDQogICAgPj4gPj4gPiBpcw0KICAgID4+ID4+IG5vbi0NCiAgICA+PiA+PiA+IGNvbnN0
ICovDQogICAgPj4gPj4gPiAgICAgcnRlX2hhc2hfYWRkX2tleV93aXRoX2hhc2goaCwgLi4uKTsg
fQ0KICAgID4+ID4+ID4NCiAgICA+PiA+PiA+IFRoaXMgbWVhbnMgdGhhdCB3ZSBjYW4ndCByZWNv
bXBpbGUgYXBwcyBhZ2FpbnN0IGxhdGVzdCBwYXRjaA0KICAgID4+ID4+ID4gd2l0aG91dCBhcHBs
aWNhdGlvbiBjb2RlIGNoYW5nZXMsIGlmIHRoZSBhcHAgd2FzIHBhc3NpbmcgYSBjb25zdA0KICAg
ID4+ID4+ID4gcnRlX2hhc2ggc3RydWN0DQogICAgPj4gPj4gYXMNCiAgICA+PiA+PiA+IHRoZSBm
aXJzdCBwYXJhbWV0ZXIuDQogICAgPj4gPj4gPg0KICAgID4+ID4+IEFncmVlLiBEbyB3ZSBuZWVk
IHRvIGRvIGFueXRoaW5nIGZvciB0aGlzPw0KICAgID4+ID4NCiAgICA+PiA+SSB0aGluayB3ZSBz
aG91bGQgdHJ5IHRvIGF2b2lkIGJyZWFraW5nIEFQSSB3aGVyZXZlciBwb3NzaWJsZS4NCiAgICA+
PiA+SWYgd2UgbXVzdCwgdGhlbiBJIHN1cHBvc2Ugd2UgY291bGQgZm9sbG93IHRoZSBBQkkgcHJv
Y2VzcyBvZiBhDQogICAgPj4gPmRlcHJlY2F0aW9uIG5vdGljZS4NCiAgICA+PiA+DQogICAgPj4g
PkZyb20gbXkgcmVhZGluZyBvZiB0aGUgdmVyc2lvbmluZyBkb2NzLCBpdCBkb2Vzbid0IGRvY3Vt
ZW50IHRoaXMgY2FzZToNCiAgICA+PiA+aHR0cHM6Ly9kb2MuZHBkay5vcmcvZ3VpZGVzL2NvbnRy
aWJ1dGluZy92ZXJzaW9uaW5nLmh0bWwNCiAgICA+PiA+DQogICAgPj4gPkkgZG9uJ3QgcmVjYWxs
IGEgc2ltaWxhciBzaXR1YXRpb24gaW4gRFBESyBwcmV2aW91c2x5IC0gc28gSSBzdWdnZXN0DQog
ICAgPj4gPnlvdSBhc2sgVGVjaCBib2FyZCBmb3IgaW5wdXQgaGVyZS4NCiAgICA+PiA+DQogICAg
Pj4gPkhvcGUgdGhhdCBoZWxwcyEgLUhhcnJ5DQogICAgPj4gW1dhbmcsIFlpcGVuZ10NCiAgICA+
PiBIb25uYXBwYSwgaG93IGFib3V0IHVzZSBhIHBvaW50ZXIgdG8gdGhlIGNvdW50ZXIgaW4gdGhl
IHJ0ZV9oYXNoIHN0cnVjdA0KICAgID4+IGluc3RlYWQgb2YgdGhlIGNvdW50ZXI/IFdpbGwgdGhp
cyBhdm9pZCBBUEkgY2hhbmdlPw0KICAgID5JIHRoaW5rIGl0IGRlZmVhdHMgdGhlIHB1cnBvc2Ug
b2YgJ2NvbnN0JyBwYXJhbWV0ZXIgdG8gdGhlIEFQSSBhbmQgcHJvdmlkZXMgaW5jb3JyZWN0IGlu
Zm9ybWF0aW9uIHRvIHRoZSB1c2VyLg0KICAgID5JTU8sIERQREsgc2hvdWxkIGhhdmUgZ3VpZGVs
aW5lcyBvbiBob3cgdG8gaGFuZGxlIHRoZSBBUEkgY29tcGF0aWJpbGl0eSBicmVha3MuIEkgd2ls
bCBzZW5kIGFuIGVtYWlsIHRvIHRlY2ggYm9hcmQgb24gdGhpcy4NCiAgICA+V2UgY2FuIGFsc28g
c29sdmUgdGhpcyBieSBoYXZpbmcgY291bnRlcnMgb24gdGhlIGJ1Y2tldC4gSSB3YXMgcGxhbm5p
bmcgdG8gZG8gdGhpcyBsaXR0bGUgYml0IGxhdGVyLiBJIHdpbGwgbG9vayBhdCB0aGUgZWZmb3J0
IGludm9sdmVkIGFuZA0KICAgID5tYXkgYmUgZG8gaXQgbm93Lg0KICAgIFtXYW5nLCBZaXBlbmdd
IA0KICAgIEkgdGhpbmsgd2l0aCBBQkkvQVBJIGNoYW5nZSwgeW91IG1pZ2h0IG5lZWQgdG8gYW5u
b3VuY2UgaXQgb25lIHJlbGVhc2UgY3ljbGUgYWhlYWQuDQogICAgDQogICAgSW4gdGhlIGN1Y2tv
byBzd2l0Y2ggcGFwZXI6IFNjYWxhYmxlLCBIaWdoIFBlcmZvcm1hbmNlIEV0aGVybmV0IEZvcndh
cmRpbmcgd2l0aA0KICAgIENVQ0tPT1NXSVRDSA0KICAgIGl0IHNlcGFyYXRlcyB0aGUgdmVyc2lv
biBjb3VudGVyIGFycmF5IGFuZCB0aGUgaGFzaCB0YWJsZS4gWW91IGNhbiBzdHJpa2UgYSBiYWxh
bmNlDQogICAgYmV0d2VlbiBncmFudWxhcml0eSBvZiB0aGUgdmVyc2lvbiBjb3VudGVyIGFuZCB0
aGUgY2FjaGUvbWVtb3J5IHJlcXVpcmVtZW50Lg0KICAgIElzIGl0IGEgYmV0dGVyIHdheT8NCltP
bGFdIEhhdmluZyBvbmx5IGEgc2luZ2xlIGdlbmVyYXRpb24gY291bnRlciBjYW4gZWFzaWx5IGJl
Y29tZSBhIHNjYWxhYmlsaXR5IGJvdHRsZW5lY2sgZHVlIHRvIHdyaXRlIGNvbnRlbnRpb24gdG8g
dGhlIGNhY2hlIGxpbmUuDQpJZGVhbGx5IHlvdSB3YW50IGVhY2ggZ2VuIGNvdW50ZXIgdG8gYmUg
bG9jYXRlZCBpbiBpdHMgb3duIGNhY2hlIGxpbmUgKG11bHRpcGxlIGdlbiBjb3VudGVycyBpbiB0
aGUgc2FtZSBjYWNoZSBsaW5lIHdpbGwgZXhwZXJpZW5jZSB0aGUgc2FtZSB3cml0ZSBjb250ZW50
aW9uKS4gQnV0IHRoYXQgc2VlbXMgYSBiaXQgd2FzdGVmdWwgb2YgbWVtb3J5Lg0KSWRlYWxseSAo
aW4gb3JkZXIgdG8gYXZvaWQgYWNjZXNzaW5nIG1vcmUgY2FjaGUgbGluZXMpLCB0aGUgZ2VuIGNv
dW50ZXIgc2hvdWxkIGJlIGxvY2F0ZWQgaW4gdGhlIGhhc2ggYnVja2V0LiBCdXQgYXMgeW91IHdy
aXRlIGJlbG93LCB0aGlzIHdvdWxkIGNyZWF0ZSBwcm9ibGVtcyBmb3IgdGhlIGxheW91dCBvZiB0
aGUgaGFzaCBidWNrZXQsIHRoZXJlIGlzbid0IGFueSByb29tIGZvciBhbm90aGVyIGZpZWxkLg0K
U28gSSBwcm9wb3NlIGFuIGFycmF5IG9mIGdlbi4gY291bnRlcnMsIGluZGV4ZWQgYnkgdGhlIGhh
c2ggKG9mIHNvbWVraW5kKSBvZiBwcmltYXJ5IGFuZCBhbHRlcm5hdGUgaGFzaGVzIChzaWduYXR1
cmVzKSBvZiB0aGUgZWxlbWVudCAobW9kdWxvIHRoZSBhcnJheSBzaXplKS4gU28gYW5vdGhlciBo
YXNoIHRhYmxlLg0KICAgIA0KICAgIEFub3RoZXIgY29uc2lkZXJhdGlvbiBpcyBjdXJyZW50IGJ1
Y2tldCBpcyA2NC1ieXRlIGV4YWN0bHkgd2l0aCB0aGUgcGFydGlhbC1rZXktaGFzaGluZy4NCiAg
ICBUbyBhZGQgYW5vdGhlciBjb3VudGVyLCB3ZSBuZWVkIHRvIHRoaW5rIGFib3V0IGNoYW5naW5n
IGNlcnRhaW4gdmFyaWFibGVzIHRvIHN0aWxsIGFsaWduDQogICAgY2FjaGUgbGluZS4NCiAgICAN
CiAgICANCg0K