From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Ola.Liljedahl@arm.com>
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
 (mail-eopbgr130052.outbound.protection.outlook.com [40.107.13.52])
 by dpdk.org (Postfix) with ESMTP id A34C31B4F3
 for <dev@dpdk.org>; Sat,  2 Feb 2019 00:11:59 +0100 (CET)
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=0665OHesiv9kxRsUpIFdW4aKu6xjrPYV413NlxBGSq8=;
 b=Ec46CdgMFs0Acb0/MOcSS18qClfZtoiYold2W39/JgxzkCmo+h6VPy8tCokMv7kUCHoreBRLXUsvRRu7WdsjMwhb/X8XdOizarhf0K4lqs+BeN3xkdDR91fDA2kF68LKoUmixomAuPizEiI7DyI4WD3sCzfy8ORpmwBgp8xHaRM=
Received: from DB6PR0801MB2071.eurprd08.prod.outlook.com (10.168.87.14) by
 DB6PR0801MB1719.eurprd08.prod.outlook.com (10.169.226.146) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.1580.20; Fri, 1 Feb 2019 23:11:57 +0000
Received: from DB6PR0801MB2071.eurprd08.prod.outlook.com
 ([fe80::a532:5e16:e4eb:4e5c]) by DB6PR0801MB2071.eurprd08.prod.outlook.com
 ([fe80::a532:5e16:e4eb:4e5c%9]) with mapi id 15.20.1580.019; Fri, 1 Feb 2019
 23:11:57 +0000
From: Ola Liljedahl <Ola.Liljedahl@arm.com>
To: "gage.eads@intel.com" <gage.eads@intel.com>, "dev@dpdk.org" <dev@dpdk.org>
CC: "jerinj@marvell.com" <jerinj@marvell.com>, "chaozhu@linux.vnet.ibm.com"
 <chaozhu@linux.vnet.ibm.com>, nd <nd@arm.com>, "bruce.richardson@intel.com"
 <bruce.richardson@intel.com>, "konstantin.ananyev@intel.com"
 <konstantin.ananyev@intel.com>, "hemant.agrawal@nxp.com"
 <hemant.agrawal@nxp.com>, "olivier.matz@6wind.com" <olivier.matz@6wind.com>,
 "arybchenko@solarflare.com" <arybchenko@solarflare.com>, "Gavin Hu (Arm
 Technology China)" <Gavin.Hu@arm.com>, Honnappa Nagarahalli
 <Honnappa.Nagarahalli@arm.com>
Thread-Topic: [dpdk-dev] [PATCH 1/1] eal: add 128-bit cmpset (x86-64 only)
Thread-Index: AQHUty7+Hx+p+KOLIUunsbjUPnO+E6XFTIWAgAXPcGCAADbYgIAAAOuAgAAK5QCAAAyOIIAALZQA
Date: Fri, 1 Feb 2019 23:11:57 +0000
Message-ID: <1549062730.20325.67.camel@arm.com>
References: <20190128172945.27251-1-gage.eads@intel.com>
 <20190128172945.27251-2-gage.eads@intel.com>
 <1548716507.11472.96.camel@arm.com>
 <9184057F7FC11744A2107296B6B8EB1E541CE1FE@FMSMSX108.amr.corp.intel.com>
 <1549047709.20325.35.camel@arm.com>
 <9184057F7FC11744A2107296B6B8EB1E541CE2CE@FMSMSX108.amr.corp.intel.com>
 <1549050246.20325.45.camel@arm.com>
 <9184057F7FC11744A2107296B6B8EB1E541CE38D@FMSMSX108.amr.corp.intel.com>
In-Reply-To: <9184057F7FC11744A2107296B6B8EB1E541CE38D@FMSMSX108.amr.corp.intel.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: Evolution 3.18.5.2-0ubuntu3.2 
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; DB6PR0801MB1719;
 6:LcI0FL9pkun2f6Umn3cqyj4qZiMqiFsjOuldeU0BOlTR9UEVzRQW5SbiIxFXwKLBQ7W9wSyG3GUojbL5Eg8RSxwNs4OME02urf0UgmissXurWv9o1se+wEspW5T/ips/2x2+IlgFRrJ889ogiddW5O9sVh4yPEBVsO8FS6KoLgXF1HYoMglGhTA2Hf1/MxTwGXU60wE7Vk0+d/VYFbrN5nq1KOt/FE2sMTlnVwkgD6b4QY2zR/ajKpYxc2boQf0GiZH/4ALeB8uPY98S00wBUBw/cQezPmT6h2MOu5BpXQRrGZqAdIyw7U6Enz7aP8NFFXmj22lzyu0gSeNF/gXmYRq20+AMZLgU7IIpA2Wn4qDE4EI8cbwAuUMywQGM5ChqNJOVo21K8zcound41zPSUSrIupygo4mOIQGFTa85E6AI55Vrl6V/XzIbj3GdztLg0hAqKZN/x8YJRGiEFtq+mg==;
 5:7n9sm/OTwz+6Jl/I30Jn55IF8+Olv9ZfSQQkQ3ojKuvp4KLuCQFZeaGgy9dq7pEV+FSId4u0d/DUS5KMm27ZMsGPEE5ZHiLFZdRC4FwPXmU0I+NhaK1pF7RWL+n6gPQ3PQURmxsyL2LPwqN+WfUbVF2Iufm5IaLWyRDNbr4Ddrr7nPD0YcSIBaoULbfAGGrodf0SNzGvFoqoehMkZP7h5g==;
 7:ZOSmSS5UzrJ3TlLjeXuOHP/mLY4FHhv4W5Pjo8O9XFWK2l2fq06tQpnfFiev3sgmQe8rMXawswl6cN6f0Wa8vuxL5qGag3HenWXErfZ9Sj7tvLILGofKjhgi2n8Wv8Dq8jV0Q6A6bJLlgClIfIXAYg==
x-ms-office365-filtering-correlation-id: 5895fbae-8fce-4ee8-33dd-08d6889aa9d1
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0;
 RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(4618075)(2017052603328)(7153060)(7193020);
 SRVR:DB6PR0801MB1719; 
x-ms-traffictypediagnostic: DB6PR0801MB1719:
x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr
nodisclaimer: True
x-microsoft-antispam-prvs: <DB6PR0801MB17192DE54E17D0AD73105E48E0920@DB6PR0801MB1719.eurprd08.prod.outlook.com>
x-forefront-prvs: 09352FD734
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(346002)(136003)(376002)(366004)(396003)(39860400002)(13464003)(189003)(199004)(3846002)(7736002)(50226002)(81156014)(6486002)(105586002)(966005)(6436002)(72206003)(86362001)(6116002)(110136005)(478600001)(81166006)(6506007)(8936002)(8676002)(102836004)(2501003)(26005)(53546011)(305945005)(6512007)(54906003)(14454004)(11346002)(446003)(2616005)(476003)(6306002)(66066001)(486006)(229853002)(186003)(6246003)(103116003)(25786009)(2906002)(97736004)(36756003)(93886005)(68736007)(4326008)(53936002)(316002)(71190400001)(71200400001)(106356001)(76176011)(256004)(99286004)(14444005)(99106002)(21314003);
 DIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR0801MB1719;
 H:DB6PR0801MB2071.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: arm.com does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: CcRu3vbHl5Qtp1BK9fY4/0+S0wiH4jqbUNEGjCw6NfxFvSQ4EbkdEfEqduMFFwRN591yyoHLw35Avb3dWiykHdkD2s0P/eeP/TNiSu038wg31gbLAk3PoJm7Yhewgy+Jk5lzHtHavEyEJR8rTzB7VgwFKeGhPpkgOnP3b2vLn3Vv9nZAvF84mm4PzgkjfSk1+PXdoxsbVpaNxDMdEgBywQzGg5XF32E2p0ExKdZVvLh7ZyLT+LhpDf7XtzG/LP62XDTOPA+siRCLhEYprp8UHWyyt24rfFTa75r+twtBDxOnWEGYYPGw6JtLY0L1cnXTqczh/0x0nZmfoXyoknw1W0SUEjyrBMoDTWfHzSq1NujiLV/7iaLNp7d1iwSh8dd3C1PV7qln7OAPJe4OerwI5Agasq9laaRm/3+vKMJq2EI=
Content-Type: text/plain; charset="utf-8"
Content-ID: <6255A68F714D7049BBA424A7734DC5A3@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5895fbae-8fce-4ee8-33dd-08d6889aa9d1
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Feb 2019 23:11:57.4234 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1719
Subject: Re: [dpdk-dev] [PATCH 1/1] eal: add 128-bit cmpset (x86-64 only)
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: Fri, 01 Feb 2019 23:12:00 -0000

T24gRnJpLCAyMDE5LTAyLTAxIGF0IDIxOjA1ICswMDAwLCBFYWRzLCBHYWdlIHdyb3RlOg0KPiAN
Cj4gPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IE9sYSBMaWxq
ZWRhaGwgW21haWx0bzpPbGEuTGlsamVkYWhsQGFybS5jb21dDQo+ID4gU2VudDogRnJpZGF5LCBG
ZWJydWFyeSAxLCAyMDE5IDE6NDQgUE0NCj4gPiBUbzogRWFkcywgR2FnZSA8Z2FnZS5lYWRzQGlu
dGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+IENjOiBqZXJpbmpAbWFydmVsbC5jb207IGNoYW96
aHVAbGludXgudm5ldC5pYm0uY29tOyBuZCA8bmRAYXJtLmNvbT47DQo+ID4gUmljaGFyZHNvbiwg
QnJ1Y2UgPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPjsgQW5hbnlldiwgS29uc3RhbnRpbg0K
PiA+IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPjsgaGVtYW50LmFncmF3YWxAbnhwLmNv
bTsNCj4gPiBvbGl2aWVyLm1hdHpANndpbmQuY29tOyBhcnliY2hlbmtvQHNvbGFyZmxhcmUuY29t
OyBHYXZpbiBIdSAoQXJtDQo+ID4gVGVjaG5vbG9neSBDaGluYSkgPEdhdmluLkh1QGFybS5jb20+
OyBIb25uYXBwYSBOYWdhcmFoYWxsaQ0KPiA+IDxIb25uYXBwYS5OYWdhcmFoYWxsaUBhcm0uY29t
Pg0KPiA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCAxLzFdIGVhbDogYWRkIDEyOC1i
aXQgY21wc2V0ICh4ODYtNjQgb25seSkNCj4gPiANCj4gPiBPbiBGcmksIDIwMTktMDItMDEgYXQg
MTk6MjggKzAwMDAsIEVhZHMsIEdhZ2Ugd3JvdGU6DQo+ID4gPiANCj4gPiA+IA0KPiA+ID4gPiAN
Cj4gPiA+ID4gDQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZy
b206IE9sYSBMaWxqZWRhaGwgW21haWx0bzpPbGEuTGlsamVkYWhsQGFybS5jb21dDQo+ID4gPiA+
IFNlbnQ6IEZyaWRheSwgRmVicnVhcnkgMSwgMjAxOSAxOjAyIFBNDQo+ID4gPiA+IFRvOiBFYWRz
LCBHYWdlIDxnYWdlLmVhZHNAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4gPiA+IENjOiBq
ZXJpbmpAbWFydmVsbC5jb207IGNoYW96aHVAbGludXgudm5ldC5pYm0uY29tOyBuZCA8bmRAYXJt
LmNvbT47DQo+ID4gPiA+IFJpY2hhcmRzb24sIEJydWNlIDxicnVjZS5yaWNoYXJkc29uQGludGVs
LmNvbT47IEFuYW55ZXYsIEtvbnN0YW50aW4NCj4gPiA+ID4gPGtvbnN0YW50aW4uYW5hbnlldkBp
bnRlbC5jb20+OyBoZW1hbnQuYWdyYXdhbEBueHAuY29tOw0KPiA+ID4gPiBvbGl2aWVyLm1hdHpA
NndpbmQuY29tOyBhcnliY2hlbmtvQHNvbGFyZmxhcmUuY29tOyBHYXZpbiBIdSAoQXJtDQo+ID4g
PiA+IFRlY2hub2xvZ3kgQ2hpbmEpIDxHYXZpbi5IdUBhcm0uY29tPjsgSG9ubmFwcGEgTmFnYXJh
aGFsbGkNCj4gPiA+ID4gPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+DQo+ID4gPiA+IFN1
YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCAxLzFdIGVhbDogYWRkIDEyOC1iaXQgY21wc2V0
ICh4ODYtNjQNCj4gPiA+ID4gb25seSkNCj4gPiA+ID4gDQo+ID4gPiA+IE9uIEZyaSwgMjAxOS0w
Mi0wMSBhdCAxNzowNiArMDAwMCwgRWFkcywgR2FnZSB3cm90ZToNCj4gPiA+ID4gPiANCj4gPiA+
ID4gPiANCj4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4g
PiANCj4gPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiBG
cm9tOiBPbGEgTGlsamVkYWhsIFttYWlsdG86T2xhLkxpbGplZGFobEBhcm0uY29tXQ0KPiA+ID4g
PiA+ID4gU2VudDogTW9uZGF5LCBKYW51YXJ5IDI4LCAyMDE5IDU6MDIgUE0NCj4gPiA+ID4gPiA+
IFRvOiBFYWRzLCBHYWdlIDxnYWdlLmVhZHNAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4g
PiA+ID4gPiBDYzogYXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbTsgamVyaW5qQG1hcnZlbGwuY29t
Ow0KPiA+ID4gPiA+ID4gY2hhb3podUBsaW51eC52bmV0LmlibS5jb207IG5kIDxuZEBhcm0uY29t
PjsgUmljaGFyZHNvbiwgQnJ1Y2UNCj4gPiA+ID4gPiA+IDxicnVjZS5yaWNoYXJkc29uQGludGVs
LmNvbT47IEFuYW55ZXYsIEtvbnN0YW50aW4NCj4gPiA+ID4gPiA+IDxrb25zdGFudGluLmFuYW55
ZXZAaW50ZWwuY29tPjsgaGVtYW50LmFncmF3YWxAbnhwLmNvbTsNCj4gPiA+ID4gPiA+IG9saXZp
ZXIubWF0ekA2d2luZC5jb207IEhvbm5hcHBhIE5hZ2FyYWhhbGxpDQo+ID4gPiA+ID4gPiA8SG9u
bmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47IEdhdmluIEh1IChBcm0gVGVjaG5vbG9neSBDaGlu
YSkNCj4gPiA+ID4gPiA+IDxHYXZpbi5IdUBhcm0uY29tPg0KPiA+ID4gPiA+ID4gU3ViamVjdDog
UmU6IFtkcGRrLWRldl0gW1BBVENIIDEvMV0gZWFsOiBhZGQgMTI4LWJpdCBjbXBzZXQNCj4gPiA+
ID4gPiA+ICh4ODYtNjQNCj4gPiA+ID4gPiA+IG9ubHkpDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4g
PiA+IE9uIE1vbiwgMjAxOS0wMS0yOCBhdCAxMToyOSAtMDYwMCwgR2FnZSBFYWRzIHdyb3RlOg0K
PiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+
ID4gPiBUaGlzIG9wZXJhdGlvbiBjYW4gYmUgdXNlZCBmb3Igbm9uLWJsb2NraW5nIGFsZ29yaXRo
bXMsIHN1Y2gNCj4gPiA+ID4gPiA+ID4gYXMgYSBub24tYmxvY2tpbmcgc3RhY2sgb3IgcmluZy4N
Cj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEdhZ2UgRWFkcyA8
Z2FnZS5lYWRzQGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+IMKg
Li4uL2NvbW1vbi9pbmNsdWRlL2FyY2gveDg2L3J0ZV9hdG9taWNfNjQuaMKgwqDCoMKgwqDCoMKg
wqB8IDMxDQo+ID4gPiA+ID4gPiA+ICsrKysrKysrKysrDQo+ID4gPiA+ID4gPiA+IMKgbGliL2xp
YnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvZ2VuZXJpYy9ydGVfYXRvbWljLmggfCA2NQ0KPiA+ID4g
PiA+ID4gPiArKysrKysrKysrKysrKysrKysrKysrDQo+ID4gPiA+ID4gPiA+IMKgMiBmaWxlcyBj
aGFuZ2VkLCA5NiBpbnNlcnRpb25zKCspDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiBk
aWZmIC0tZ2l0DQo+ID4gPiA+ID4gPiA+IGEvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUv
YXJjaC94ODYvcnRlX2F0b21pY182NC5oDQo+ID4gPiA+ID4gPiA+IGIvbGliL2xpYnJ0ZV9lYWwv
Y29tbW9uL2luY2x1ZGUvYXJjaC94ODYvcnRlX2F0b21pY182NC5oDQo+ID4gPiA+ID4gPiA+IGlu
ZGV4IGZkMmVjOWM1My4uYjdiOTBiODNlIDEwMDY0NA0KPiA+ID4gPiA+ID4gPiAtLS0gYS9saWIv
bGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9hcmNoL3g4Ni9ydGVfYXRvbWljXzY0LmgNCj4gPiA+
ID4gPiA+ID4gKysrIGIvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvYXJjaC94ODYvcnRl
X2F0b21pY182NC5oDQo+ID4gPiA+ID4gPiA+IEBAIC0zNCw2ICszNCw3IEBADQo+ID4gPiA+ID4g
PiA+IMKgLyoNCj4gPiA+ID4gPiA+ID4gwqAgKiBJbnNwaXJlZCBmcm9tIEZyZWVCU0Qgc3JjL3N5
cy9hbWQ2NC9pbmNsdWRlL2F0b21pYy5oDQo+ID4gPiA+ID4gPiA+IMKgICogQ29weXJpZ2h0IChj
KSAxOTk4IERvdWcgUmFic29uDQo+ID4gPiA+ID4gPiA+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTkg
SW50ZWwgQ29ycG9yYXRpb24NCj4gPiA+ID4gPiA+ID4gwqAgKiBBbGwgcmlnaHRzIHJlc2VydmVk
Lg0KPiA+ID4gPiA+ID4gPiDCoCAqLw0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gQEAg
LTQ2LDYgKzQ3LDcgQEANCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+IMKgI2luY2x1ZGUg
PHN0ZGludC5oPg0KPiA+ID4gPiA+ID4gPiDCoCNpbmNsdWRlIDxydGVfY29tbW9uLmg+DQo+ID4g
PiA+ID4gPiA+ICsjaW5jbHVkZSA8cnRlX2NvbXBhdC5oPg0KPiA+ID4gPiA+ID4gPiDCoCNpbmNs
dWRlIDxydGVfYXRvbWljLmg+DQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiDCoC8qLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSA2NCBiaXQgYXRvbWljIG9wZXJhdGlvbnMNCj4gPiA+ID4g
PiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0qLyBAQCAtMjA4LDQgKzIxMCwzMyBAQCBz
dGF0aWMNCj4gPiA+ID4gPiA+ID4gaW5saW5lIHZvaWQgcnRlX2F0b21pYzY0X2NsZWFyKHJ0ZV9h
dG9taWM2NF90ICp2KQ0KPiA+ID4gPiA+ID4gPiDCoH0NCj4gPiA+ID4gPiA+ID4gwqAjZW5kaWYN
Cj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ICtzdGF0aWMgaW5saW5lIGludCBfX3J0ZV9l
eHBlcmltZW50YWwNCj4gPiA+ID4gPiA+IF9fcnRlX2Fsd2F5c19pbmxpbmU/DQo+ID4gPiA+ID4g
PiANCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiANCj4gPiA+
ID4gPiA+ID4gK3J0ZV9hdG9taWMxMjhfY21wc2V0KHZvbGF0aWxlIHJ0ZV9pbnQxMjhfdCAqZHN0
LA0KPiA+ID4gPiA+ID4gTm8gbmVlZCB0byBkZWNsYXJlIHRoZSBsb2NhdGlvbiB2b2xhdGlsZS4g
Vm9sYXRpbGUgZG9lc24ndCBkbw0KPiA+ID4gPiA+ID4gd2hhdCB5b3UgdGhpbmsgaXQgZG9lcy4N
Cj4gPiA+ID4gPiA+IGh0dHBzOi8veW91dHUuYmUvbGtnc3prUG5WOGc/dD0xMDI3DQo+ID4gPiA+
ID4gPiANCj4gPiA+ID4gPiBJIG1hZGUgdGhpcyB2b2xhdGlsZSB0byBtYXRjaCB0aGUgZXhpc3Rp
bmcgcnRlX2F0b21pY05fY21wc2V0DQo+ID4gPiA+ID4gZGVmaW5pdGlvbnMsIHdoaWNoIHByZXN1
bWFibHkgaGF2ZSBhIGdvb2QgcmVhc29uIGZvciB1c2luZyB0aGUNCj4gPiA+ID4gPiBrZXl3b3Jk
LiBNYWludGFpbmVycywgYW55IGlucHV0IGhlcmU/DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiAN
Cj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4g
DQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gKwkJwqDCoMKg
wqDCoHJ0ZV9pbnQxMjhfdCAqZXhwLA0KPiA+ID4gPiA+ID4gSSB3b3VsZCBkZWNsYXJlICdleHAn
IGNvbnN0IGFzIHdlbGwgYW5kIGRvY3VtZW50IHRoYXQgJ2V4cCcgaXMNCj4gPiA+ID4gPiA+IG5v
dCB1cGRhdGVkICh3aXRoIHRoZSBvbGQgdmFsdWUpIGZvciBhIGZhaWx1cmUuIFRoZSByZWFzb24g
YmVpbmcNCj4gPiA+ID4gPiA+IHRoYXQNCj4gPiA+ID4gPiA+IEFSTXY4LjAvQUFyY2g2NCBjYW5u
b3QgYXRvbWljYWxseSByZWFkIHRoZSBvbGQgdmFsdWUgd2l0aG91dA0KPiA+ID4gPiA+ID4gYWxz
byB3cml0aW5nIHRoZSBsb2NhdGlvbiBhbmQgdGhhdCBpcyBiYWQgZm9yIHBlcmZvcm1hbmNlDQo+
ID4gPiA+ID4gPiAodW5uZWNlc3Nhcnkgd3JpdGVzIGxlYWRzIHRvIHVubmVjZXNzYXJ5IGNvbnRl
bnRpb24gYW5kIHdvcnNlDQo+ID4gPiA+ID4gPiBzY2FsYWJpbGl0eSkuIEFuZCB0aGUgdXNlciBt
dXN0IGFueXdheSByZWFkIHRoZSBsb2NhdGlvbiAoaW4gdGhlDQo+ID4gPiA+ID4gPiBzdGFydCBv
ZiB0aGUgY3JpdGljYWwNCj4gPiA+ID4gPiA+IHNlY3Rpb24pIHVzaW5nIGUuZy4gbm9uLWF0b21p
YyA2NC1iaXQgcmVhZHMgc28gdGhlcmUgaXNuJ3QNCj4gPiA+ID4gPiA+IGFjdHVhbGx5IGFueSBy
ZXF1aXJlbWVudCBmb3IgYW4gYXRvbWljIDEyOC1iaXQgcmVhZCBvZiB0aGUgbG9jYXRpb24uDQo+
ID4gPiA+ID4gPiANCj4gPiA+ID4gPiBXaWxsIGNoYW5nZSBpbiB2Mi4NCj4gPiA+ID4gPiANCj4g
PiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gDQo+
ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gwqBydGVfaW50MTI4
X3QgKnNyYywNCj4gPiA+ID4gPiA+IGNvbnN0IHJ0ZV9pbnQxMjhfdCAqc3JjPw0KPiA+ID4gPiA+
IFN1cmUsIEkgZG9uJ3Qgc2VlIGFueSBoYXJtIGluIHVzaW5nIGNvbnN0Lg0KPiA+ID4gPiA+IA0K
PiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gDQo+
ID4gPiA+ID4gPiBCdXQgd2h5IGFyZSB3ZSBub3QgcGFzc2luZyAnZXhwJyBhbmQgJ3NyYycgYnkg
dmFsdWU/IFRoYXQgd29ya3MNCj4gPiA+ID4gPiA+IGdyZWF0LCBldmVuIHdpdGggc3RydWN0cy4g
UGFzc2luZyBieSB2YWx1ZSBzaW1wbGlmaWVzIHRoZQ0KPiA+ID4gPiA+ID4gY29tcGlsZXIncyBs
aWZlLCBlc3BlY2lhbGx5IGlmIHRoZSBjYWxsIGlzIGlubGluZWQuIEFzayBhIGNvbXBpbGVyDQo+
ID4gPiA+ID4gPiBkZXZlbG9wZXIuDQo+ID4gPiA+ID4gSSByYW4gb2JqZHVtcCBvbiB0aGUgbmJf
c3RhY2sgY29kZSB3aXRoIGJvdGggYXBwcm9hY2hlcywgYW5kDQo+ID4gPiA+ID4gcGFzcy1ieS1y
ZWZlcmVuY2UgcmVzdWx0ZWQgaW4gZmV3ZXIgb3ZlcmFsbCB4ODZfNjQgYXNzZW1ibHkgb3BzLg0K
PiA+ID4gPiA+IFBCVjogMTAwIG9wcyBmb3IgcHVzaCwgOTcgb3BzIGZvciBwb3ANCj4gPiA+ID4g
PiBQQlI6IDkyIG9wcyBmb3IgcHVzaCwgODQgb3BzIGZvciBwb3ANCj4gPiA+ID4gT0sgSSBoYXZl
IG5ldmVyIGNoZWNrZWQgeDg2XzY0IGNvZGUgZ2VuZXJhdGlvbi4uLiBJIGhhdmUgZ29vZA0KPiA+
ID4gPiBleHBlcmllbmNlcyB3aXRoIEFSTS9BQXJjaDY0LCBldmVyeXRoaW5nIHNlZW1zIHRvIGJl
IGRvbmUgdXNpbmcNCj4gPiA+ID4gcmVnaXN0ZXJzLiBJIGFtIHN1cnByaXNlZCB0aGVyZSBpcyBh
IGRpZmZlcmVuY2UuDQo+ID4gPiA+IA0KPiA+ID4gPiBEaWQgYSBxdWljayBjaGVjayB3aXRoIGxm
cmluZywgcGFzc2luZyAnc3JjJyAodGhpcmQgcGFyYW0pIGJ5DQo+ID4gPiA+IHJlZmVyZW5jZSBh
bmQgYnkgdmFsdWUuIE5vIGRpZmZlcmVuY2UgaW4gY29kZSBnZW5lcmF0aW9uIG9uIHg4Nl82NC4N
Cj4gPiA+ID4gDQo+ID4gPiA+IEJ1dCBpZiB5b3UgaW5zaXN0IGxldCdzIGdvIHdpdGggUEJSLg0K
PiA+ID4gPiANCj4gPiA+ID4gPiANCj4gPiA+ID4gPiANCj4gPiA+ID4gPiANCj4gPiA+ID4gPiAo
VXNpbmcgdGhlIGluLXByb2dyZXNzIHY1IG5iX3N0YWNrIGNvZGUpDQo+ID4gPiA+ID4gDQo+ID4g
PiA+ID4gQW5vdGhlciBmYWN0b3IgLS0gdGhvdWdoIG11Y2ggbGVzcyBjb21wZWxsaW5nIC0tIGlz
IHRoYXQgd2l0aA0KPiA+ID4gPiA+IHBhc3MtYnktIHJlZmVyZW5jZSwgdGhlIHVzZXIgY2FuIGNy
ZWF0ZSBhIDE2QiBzdHJ1Y3R1cmUgYW5kIGNhc3QNCj4gPiA+ID4gPiBpdCB0byBydGVfaW50MTI4
X3Qgd2hlbiB0aGV5IGNhbGwgcnRlX2F0b21pYzEyOF9jbXBzZXQsIHdoZXJlYXMNCj4gPiA+ID4g
PiB3aXRoIHBhc3MtYnktdmFsdWUgdGhleSBuZWVkIHRvIHB1dCB0aGF0IHN0cnVjdCBpbiBhIHVu
aW9uIHdpdGgNCj4gPiBydGVfaW50MTI4X3QuDQo+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+IFdo
aWNoIGlzIHdoYXQgSSBhbHdheXMgZG8gbm93YWRheXMuLi4gVHJ5aW5nIHRvIHVzZSBhcyBmZXcg
Y2FzdHMgYXMNCj4gPiA+ID4gcG9zc2libGUgYW5kIGxpZSB0byB0aGUgY29tcGlsZXIgYXMgc2Vs
ZG9tIGFzIHBvc3NpYmxlLiBCdXQgSSBjYW4NCj4gPiA+ID4gc2VlIHRoZSBmcmVlZG9tIHByb3Zp
ZGVkIGJ5IHRha2luZyBhIHBvaW50ZXIgdG8gc29tZXRoaW5nIGFuZCBjYXN0DQo+ID4gPiA+IGl0
IGl0IHJ0ZV9pbnQxMjhfdCBwdHIgaW4gdGhlIGNhbGwgdG/CoHJ0ZV9hdG9taWMxMjhfY21wc2V0
KCkuDQo+ID4gPiA+IA0KPiA+ID4gPiBXb3VsZCBwcmVmZXIgYSBuYW1lIHRoYXQgaXMgbW9yZSBz
aW1pbGFyIHRvIF9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2UoKS4NCj4gPiA+ID4gRS5nLg0KPiA+
ID4gPiBydGVfYXRvbWljMTI4X2NvbXBhcmVfZXhjaGFuZ2UoKSAob3IgcGVyaGFwcyBqdXN0DQo+
ID4gcnRlX2F0b21pYzEyOF9jbXB4Y2hnKT8NCj4gPiA+IA0KPiA+ID4gPiANCj4gPiA+ID4gQWxs
IHRoZSBydGVfYXRvbWljWFhfY21wc2V0KCkgZnVuY3Rpb25zIGRvIG5vdCB0YWtlIGFueSBtZW1v
cnkgb3JkZXINCj4gPiA+ID4gcGFyYW1ldGVycy4NCj4gPiA+ID4gRnJvbSBhbiBBcm0gcGVyc3Bl
Y3RpdmUsIHdlIGFyZSBub3QgaGFwcHkgd2l0aCB0aGF0Lg0KPiA+ID4gU2luY2UgdGhlIGZ1bmN0
aW9uIHJldHVybnMgYSBib29sZWFuIHN1Y2Nlc3MgdmFsdWUsIGlzbid0DQo+ID4gPiBjb21wYXJl
LWFuZC1zZXQgdGhlIGFwcHJvcHJpYXRlIHRlcm0/DQo+ID4gSSB3YXMgdGhpbmtpbmcgb2YgdGhl
IG1lbW9yeSBvcmRlcmluZyBwYXJhbWV0ZXJzIHRoYXQgX19hdG9taWNfeHh4IGJ1aWx0aW5zDQo+
ID4gaGF2ZSBhbmQgd2Ugd2FudCAoZnJvbSBhbiBBcm0gcGVyc3BlY3RpdmUpLg0KPiA+IA0KPiA+
IEdDQyBfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdlIGFsc28gcmV0dXJucyBhIGJvb2xlYW4uDQo+
ID4gaHR0cHM6Ly9nY2MuZ251Lm9yZy9vbmxpbmVkb2NzL2djYy9fMDA1Zl8wMDVmYXRvbWljLUJ1
aWx0aW5zLmh0bWwNCj4gPiBib29sIF9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2VfbiAodHlwZSAq
cHRyLCB0eXBlICpleHBlY3RlZCwgdHlwZSBkZXNpcmVkLA0KPiA+IGJvb2wgd2VhaywgaW50IHN1
Y2Nlc3NfbWVtb3JkZXIsIGludCBmYWlsdXJlX21lbW9yZGVyKSBib29sDQo+ID4gX19hdG9taWNf
Y29tcGFyZV9leGNoYW5nZSAodHlwZSAqcHRyLCB0eXBlICpleHBlY3RlZCwgdHlwZSAqZGVzaXJl
ZCwgYm9vbA0KPiA+IHdlYWssIGludCBzdWNjZXNzX21lbW9yZGVyLCBpbnQgZmFpbHVyZV9tZW1v
cmRlcikNCj4gPiANCj4gPiBydGVfYXRvbWljMTI4X2NvbXBhcmVfZXhjaGFuZ2UocnRlX2ludDEy
OF90ICpkc3QsIGNvbnN0IHJ0ZV9pbnQxMjhfdCAqZXhwLA0KPiA+IGNvbnN0IHJ0ZV9pbnQxODJf
dCAqc3JjLCBib29sIHdlYWssIGludCBtb19zdWNjZXNzLCBpbnQgbW9fZmFpbHVyZSk7DQo+ID4g
DQo+IEkgYXNzdW1lZCBHQ0MgY2hvc2UgdGhlIG5hbWUgImV4Y2hhbmdlIiBiZWNhdXNlIHRoZSBi
dWlsdGluIG1vZGlmaWVzICdleHAnIG9uDQo+IGZhaWx1cmUsIGJ1dCBJIGNvdWxkIGJlIHdyb25n
Lg0KWW91IGFyZSBwcm9iYWJseSByaWdodC4gQnV0IGV4Y2hhbmdlIGRvZXNuJ3QgbmVjZXNzYXJ5
IG1lYW4gdGhhdCB0aGUgb2xkIHZhbHVlDQppcyByZXR1cm5lZCwganVzdCB0aGF0IGl0IGlzIHJl
cGxhY2VkIHdpdGggYSBkaWZmZXJlbnQgdmFsdWU/DQpIb3dldmVyIF9fYXRvbWljX2V4Y2hhbmdl
KCkgKHVuY29uZGl0aW9uYWxseSkgcmV0dXJucyB0aGUgb2xkIHZhbHVlIHNvIHRoZXJlIGlzDQpz
b21lIHByZWNlZGVudCBmb3IgcmV0dW5ybmluZyB0aGUgb2xkIHZhbHVlLiBBbmQgaXQgY2FuIGJl
IGRvbmUsIGp1c3Qgbm90DQpndWFyYW50ZWVkIHRvIGJlIGF0b21pYy4gUGVyaGFwcyB0aGVyZSBp
cyBhIHdheSB0byBib3RoIGVhdCBhbmQgaGF2ZSB0aGUgY2FrZT8NCg0KUmUtdXNlIHRoZSBwcm90
b3R5cGUgb2YgX19hdG9taWNfY29tcGFyZV9leGNoYW5nZV8xNigpIHNvIG11c3QgcmV0dXJuIGEg
dmFsdWUgaWYNCnRoZSBjb21wYXJpc29uIGZhaWxzLiBCdXQgZGVwZW5kaW5nIG9uIHRoZSAnd2Vh
aycgZmxhZywgd2UgZm9yIHdlYWs9ZmFsc2UNCnJlcXVpcmUgYW4gYXRvbWljIHJlYWQgd2hpY2gg
b24gQVJNdjguMCBtdXN0IGJlIGFjY29tcGxpc2hlZCBieSB3cml0aW5nIGJhY2sgdGhlDQpvbGQg
dmFsdWUgKGlmIHRoZSBjb21wYXJpc29uIGZhaWxzKS4gT3IgZm9yIHdlYWs9dHJ1ZSB3ZSBhbGxv
dyBib3RoIHNwdXJpb3VzDQpMTC9TQyBmYWlsdXJlcyAodGhpcyBpcyB3aGF0IHRoZSB3ZWFrIHBh
cmFtZXRlciBpcyBmb3IpIGFuZCBub24tYXRvbWljIHJlYWQgb2YNCnRoZSBvbGQgdmFsdWUgKHRo
aXMgaXMgbXkgJ2ZyYWlsJyBhdG9taWMgY29tcGFyZSBhbmQgZXhjaGFuZ2UgaW4gbGZyaW5nKS4N
Cg0KVGhlIEdDQyBkb2N1bWVudGF0aW9uIHNheXMgdGhpczoNCiJJZiB0aGV5IGFyZSBub3QgZXF1
YWwsIHRoZSBvcGVyYXRpb24gaXMgYSByZWFkIGFuZCB0aGUgY3VycmVudCBjb250ZW50cyBvZiBw
dHINCmFyZSB3cml0dGVuIGludG8gZXhwZWN0ZWQuIg0KV2UgZm9sbG93IHRoaXMgYnV0IGp1c3Qg
ZG9uJ3QgZ3VhcmFudGVlIGFuIGF0b21pYyByZWFkIChmb3Igd2Vhaz10cnVlKS4NCg0KYm9vbA0K
cnRlX2F0b21pYzEyOF9jb21wYXJlX2V4Y2hhbmdlKHJ0ZV9pbnQxMjhfdCAqZHN0LA0KwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBydGVfaW50MTI4X3QgKmV4
cCwgLy9Ob3RlIG5vIGNvbnN0IG5vdw0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqBjb25zdCBydGVfaW50MTI4X3QgKnNyYywNCsKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgYm9vbCB3ZWFrLA0KwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBpbnQgbW9fc3VjY2VzcywNCsKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgaW50IG1vX2ZhaWx1cmUpOw0K
DQoNCj4gIEknbSBmaW5lIHdpdGggZWl0aGVyIG5hbWUuIEFueW9uZSBlbHNlIGhhdmUgYSBwcmVm
ZXJlbmNlPw0KDQo+IA0KPiA8c25pcD4NCi0tIA0KT2xhIExpbGplZGFobCwgTmV0d29ya2luZyBT
eXN0ZW0gQXJjaGl0ZWN0LCBBcm0NClBob25lICs0NjcwNjg2NjM3MywgU2t5cGUgb2xhLmxpbGpl
ZGFobA0KDQo=