From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <yskoh@mellanox.com>
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01on0081.outbound.protection.outlook.com [104.47.2.81])
 by dpdk.org (Postfix) with ESMTP id 292631B42B;
 Wed, 20 Jun 2018 01:00:27 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PKF/YT5my+0Kdz5CSRKA+lIBxk8jXaUNSWuDIVkvj8I=;
 b=RSe9yawlj5uCIMfEHB6jnhOz4pterldCz9LMOLzD61w9q6hblHS6t9ROzCmphhHrfA+OYnFYucdyc9o95BzYFi8JvQq9AhhGTgjIrDCM1D2dMhnSqoFfBGYL9EnuRAdIVbSaGyPqjoC0jhp9dmKYli+vTR9EyNUqxrqmQwKXoQw=
Received: from VI1PR0501MB2045.eurprd05.prod.outlook.com (10.167.195.147) by
 VI1PR0501MB2813.eurprd05.prod.outlook.com (10.172.11.139) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.863.15; Tue, 19 Jun 2018 23:00:25 +0000
Received: from VI1PR0501MB2045.eurprd05.prod.outlook.com
 ([fe80::bd68:85f2:e540:99e6]) by VI1PR0501MB2045.eurprd05.prod.outlook.com
 ([fe80::bd68:85f2:e540:99e6%5]) with mapi id 15.20.0863.016; Tue, 19 Jun 2018
 23:00:25 +0000
From: Yongseok Koh <yskoh@mellanox.com>
To: =?utf-8?B?TsOpbGlvIExhcmFuamVpcm8=?= <nelio.laranjeiro@6wind.com>
CC: Adrien Mazarguil <adrien.mazarguil@6wind.com>, "dev@dpdk.org"
 <dev@dpdk.org>, Shahaf Shuler <shahafs@mellanox.com>, dpdk stable
 <stable@dpdk.org>, "Xueming(Steven) Li" <xuemingl@mellanox.com>
Thread-Topic: [PATCH] net/mlx5: fix error number handling
Thread-Index: AQHT/CrB77XBxzx71UKFjyHIOSVKCKRRO0gAgAD264CAAJwLgIAAT3cAgAFPXACAEegMAIABOYoAgAC7nwA=
Date: Tue, 19 Jun 2018 23:00:25 +0000
Message-ID: <939801BC-1FFD-4770-A491-81E2F3D847C2@mellanox.com>
References: <20180604173731.29125-1-yskoh@mellanox.com>
 <20180605065246.mw7xnk24cfwxy4an@laranjeiro-vm.dev.6wind.com>
 <84C956B6-28EE-4F82-97AE-5E9C371DD115@mellanox.com>
 <20180606065501.hhrfrti47nr5xigo@laranjeiro-vm.dev.6wind.com>
 <20180606183926.GA1446@yongseok-MBP.local>
 <20180607073944.zewdysx6ddrdygoz@laranjeiro-vm.dev.6wind.com>
 <42BB3FF2-80B8-4250-928C-32D509E32DAA@mellanox.com>
 <20180619114852.lzxwjj7ud5owcyuu@laranjeiro-vm.dev.6wind.com>
In-Reply-To: <20180619114852.lzxwjj7ud5owcyuu@laranjeiro-vm.dev.6wind.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=yskoh@mellanox.com; 
x-originating-ip: [209.116.155.178]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; VI1PR0501MB2813;
 7:if/EVE9G+7elqLkjOxmLrkHKzapLgnG8FL4GfjgmYTrJfrMja+3uXQdPCSJfhqb/weJOulOeSJAYfWBvknqYzxbsF2tAENhAN5fVHV30pQRiVPIlHP9s1CMArP7rZiuZ8cxkdk4Lt/fWNZgtHzTK+hDd2BOkGoMENELB9ig22RGxpwjl8btVjaphFsygEXjbfxMcKJFCxcLhGyGHOx3wE6H5mcjVoirAVkR2H0WTERIZL/uGWn+VgS9oRiXuCgqw
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: 5c14ee9f-bd3a-4f0a-552e-08d5d638718a
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0;
 RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(711020)(48565401081)(2017052603328)(7153060)(7193020);
 SRVR:VI1PR0501MB2813; 
x-ms-traffictypediagnostic: VI1PR0501MB2813:
x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr
x-microsoft-antispam-prvs: <VI1PR0501MB28135154C545B22E37406895C3700@VI1PR0501MB2813.eurprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(60795455431006);
x-ms-exchange-senderadcheck: 1
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0;
 RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123562045)(6072148)(201708071742011)(7699016);
 SRVR:VI1PR0501MB2813; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0501MB2813; 
x-forefront-prvs: 07083FF734
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(396003)(39380400002)(366004)(39860400002)(346002)(376002)(189003)(199004)(5250100002)(2906002)(486006)(186003)(3660700001)(68736007)(3280700002)(229853002)(81166006)(53936002)(2900100001)(81156014)(476003)(26005)(8676002)(66066001)(11346002)(446003)(86362001)(6246003)(5890100001)(6486002)(6436002)(6512007)(4326008)(105586002)(33656002)(76176011)(14454004)(316002)(102836004)(6916009)(106356001)(3846002)(107886003)(6116002)(5660300001)(6506007)(83716003)(8936002)(36756003)(25786009)(93886005)(97736004)(2616005)(59450400001)(82746002)(305945005)(478600001)(54906003)(99286004)(7736002)(53546011);
 DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0501MB2813;
 H:VI1PR0501MB2045.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: mellanox.com does not designate
 permitted sender hosts)
x-microsoft-antispam-message-info: NNa59dt1JrgxEY4syI30Ei0ayOsPBmBjil9GMrfxpdJfPDwTJjzsQukNlOxN+/4Dqshlck9hQg+l9fT5AkT28NWLio7ka8mefvghZppEkSYF7EpaDOzt+zsGAdYx6AWN2tizdiXjAJefUJTC+ktL5pZviBdVytGyS63Ih/Ot1hVP7DoyQUPgha9gJ4OpxWn/Tx7ftw7ntKiDrERyZhq7vOz37KkWrlHzzPHrfyBMA02I6GjzfXRNK7IS6VnrLO+yX31C9BFrHCekIIIhbrZPL+XnumG1yn7B/8l4nMmDDXAOcr7VI24iFwaB95yrlDvGjFVI/kzPuBWd3MajfTnJ7A==
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <55FA67D86787484BBDC90B18E61D93C3@eurprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: Mellanox.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5c14ee9f-bd3a-4f0a-552e-08d5d638718a
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jun 2018 23:00:25.1684 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0501MB2813
Subject: Re: [dpdk-dev] [PATCH] net/mlx5: fix error number handling
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: Tue, 19 Jun 2018 23:00:27 -0000

DQo+IE9uIEp1biAxOSwgMjAxOCwgYXQgNDo0OCBBTSwgTsOpbGlvIExhcmFuamVpcm8gPG5lbGlv
LmxhcmFuamVpcm9ANndpbmQuY29tPiB3cm90ZToNCj4gDQo+IE9uIE1vbiwgSnVuIDE4LCAyMDE4
IGF0IDA1OjA2OjQxUE0gKzAwMDAsIFlvbmdzZW9rIEtvaCB3cm90ZToNCj4+IA0KPj4+IE9uIEp1
biA3LCAyMDE4LCBhdCAxMjozOSBBTSwgTsOpbGlvIExhcmFuamVpcm8gPG5lbGlvLmxhcmFuamVp
cm9ANndpbmQuY29tPiB3cm90ZToNCj4+PiANCj4+PiBPbiBXZWQsIEp1biAwNiwgMjAxOCBhdCAx
MTozOToyN0FNIC0wNzAwLCBZb25nc2VvayBLb2ggd3JvdGU6DQo+Pj4+IE9uIFdlZCwgSnVuIDA2
LCAyMDE4IGF0IDA4OjU1OjAxQU0gKzAyMDAsIE7DqWxpbyBMYXJhbmplaXJvIHdyb3RlOg0KPj4+
Pj4gT24gVHVlLCBKdW4gMDUsIDIwMTggYXQgMDk6MzY6MzJQTSArMDAwMCwgWW9uZ3Nlb2sgS29o
IHdyb3RlOg0KPj4+Pj4+PiBPbiBKdW4gNCwgMjAxOCwgYXQgMTE6NTIgUE0sIE7DqWxpbyBMYXJh
bmplaXJvIDxuZWxpby5sYXJhbmplaXJvQDZ3aW5kLmNvbT4gd3JvdGU6DQo+Pj4+Pj4+IA0KPj4+
Pj4+PiBPbiBNb24sIEp1biAwNCwgMjAxOCBhdCAxMDozNzozMUFNIC0wNzAwLCBZb25nc2VvayBL
b2ggd3JvdGU6DQo+Pj4+Pj4+PiBydGVfZXJybm8gc2hvdWxkIGJlIHNhdmVkIG9ubHkgaWYgZXJy
b3IgaGFzIG9jY3VycmVkIGJlY2F1c2UgcnRlX2Vycm5vDQo+Pj4+Pj4+PiBjb3VsZCBoYXZlIGdh
cmJhZ2UgdmFsdWUuDQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+IEZpeGVzOiBhNmQ4M2I2YTkyMDkgKCJu
ZXQvbWx4NTogc3RhbmRhcmRpemUgb24gbmVnYXRpdmUgZXJybm8gdmFsdWVzIikNCj4+Pj4+Pj4+
IENjOiBzdGFibGVAZHBkay5vcmcNCj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTog
WW9uZ3Nlb2sgS29oIDx5c2tvaEBtZWxsYW5veC5jb20+DQo+Pj4+Pj4+PiAtLS0NCj4+Pj4+Pj4+
IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmMgfCAzICsrLQ0KPj4+Pj4+Pj4gMSBmaWxlIGNo
YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+
PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYyBiL2RyaXZlcnMvbmV0
L21seDUvbWx4NV9mbG93LmMNCj4+Pj4+Pj4+IGluZGV4IDk5NGJlMDViZS4uZWFmZmU3NDk1IDEw
MDY0NA0KPj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYw0KPj4+Pj4+
Pj4gKysrIGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYw0KPj4+Pj4+Pj4gQEAgLTM1NjEs
NyArMzU2MSw4IEBAIG1seDVfZmRpcl9maWx0ZXJfZGVsZXRlKHN0cnVjdCBydGVfZXRoX2RldiAq
ZGV2LA0KPj4+Pj4+Pj4gCQkvKiBUaGUgZmxvdyBkb2VzIG5vdCBtYXRjaC4gKi8NCj4+Pj4+Pj4+
IAkJY29udGludWU7DQo+Pj4+Pj4+PiAJfQ0KPj4+Pj4+Pj4gLQlyZXQgPSBydGVfZXJybm87IC8q
IFNhdmUgcnRlX2Vycm5vIGJlZm9yZSBjbGVhbnVwLiAqLw0KPj4+Pj4+Pj4gKwlpZiAocmV0KQ0K
Pj4+Pj4+Pj4gKwkJcmV0ID0gcnRlX2Vycm5vOyAvKiBTYXZlIHJ0ZV9lcnJubyBiZWZvcmUgY2xl
YW51cC4gKi8NCj4+Pj4+Pj4+IAlpZiAoZmxvdykNCj4+Pj4+Pj4+IAkJbWx4NV9mbG93X2xpc3Rf
ZGVzdHJveShkZXYsICZwcml2LT5mbG93cywgZmxvdyk7DQo+Pj4+Pj4+PiBleGl0Og0KPj4+Pj4+
Pj4gLS0gDQo+Pj4+Pj4+PiAyLjExLjANCj4+Pj4+Pj4gDQo+Pj4+Pj4+IFRoaXMgcGF0Y2ggaXMg
bm90IGVub3VnaCwgdGhlIHJldHVybmVkIHZhbHVlIGJlaW5nIC1ydGVfZXJybm8gaWYgbm8NCj4+
Pj4+Pj4gZXJyb3IgaXMgZGV0ZWN0ZWQgYnkgdGhlIGZ1bmN0aW9uIGl0IGNhbm5vdCBzZXQgcnRl
X2Vycm5vIG5vciByZXR1cm4gaXQuDQo+Pj4+Pj4gDQo+Pj4+Pj4gV2UgbWF5IG5lZWQgdG8gcmVm
YWN0b3IgdGhpcyBraW5kIG9mIGNvZGUgKHNhdmluZyBhbmQgcmVzdG9yaW5nIHJ0ZV9lcnJubyku
IEkNCj4+Pj4+PiBzdGlsbCBkb24ndCB1bmRlcnN0YW5kIHdoeSB3ZSBzaG91bGQgcHJlc2VydmUg
cnRlX2Vycm5vIGxpa2UgdGhpcy4NCj4+Pj4+PiANCj4+Pj4+PiBFdmVuIGlmIHRoaXMgZnVuY3Rp
b24gcmV0dXJucyBzdWNjZXNzLCB0aGVyZSdzIG5vIG9ibGlnYXRpb24gdG8gcHJlc2VydmUNCj4+
Pj4+PiBydGVfZXJybm8gaW4gdGhlIGZ1bmN0aW9uLiBPbmNlIGl0IGlzIGNhbGxlZCwgdGhlIG93
bmVyc2hpcCBvZiBydGVfZXJybm8gYmVsb25ncw0KPj4+Pj4+IHRvIHRoaXMgZnVuY3Rpb24uDQo+
Pj4+Pj4gDQo+Pj4+Pj4gSSBjYW4ndCBmaW5kIGhvdyB3ZSBkZWZpbmUgdGhpcyBwZXItbGNvcmUg
dmFyaWFibGUgYnV0LCBmcm9tDQo+Pj4+Pj4gdGhlIG1hbiBwYWdlIG9mIGVycm5vLA0KPj4+Pj4+
IA0KPj4+Pj4+ICAgICAgVGhlICA8ZXJybm8uaD4gIGhlYWRlciAgZmlsZSAgZGVmaW5lcyAgdGhl
IGludGVnZXIgdmFyaWFibGUgZXJybm8sIHdoaWNoDQo+Pj4+Pj4gICAgICBpcyBzZXQgYnkgc3lz
dGVtIGNhbGxzIGFuZCBzb21lIGxpYnJhcnkgZnVuY3Rpb25zIGluIHRoZSBldmVudCBvZiBhbg0K
Pj4+Pj4+ICAgICAgZXJyb3IgdG8gaW5kaWNhdGUgd2hhdCB3ZW50IHdyb25nLiAgSXRzIHZhbHVl
IGlzIHNpZ25pZmljYW50IG9ubHkgd2hlbg0KPj4+Pj4+ICAgICAgdGhlIHJldHVybiB2YWx1ZSBv
ZiB0aGUgY2FsbCBpbmRpY2F0ZWQgYW4gZXJyb3IgKGkuZS4sIC0xIGZyb20gbW9zdA0KPj4+Pj4+
ICAgICAgc3lzdGVtIGNhbGxzOyAtMSBvciBOVUxMIGZyb20gbW9zdCBsaWJyYXJ5ICBmdW5jdGlv
bnMpOw0KPj4+Pj4+ICAgICAgYSBmdW5jdGlvbiB0aGF0IHN1Y2NlZWRzIGlzIGFsbG93ZWQgdG8g
Y2hhbmdlIGVycm5vLg0KPj4+Pj4+IA0KPj4+Pj4+IFNvLCBJIHN0aWxsIHRoaW5rIGFuIEFQSSBj
YW4gY2hhbmdlIHJ0ZV9lcnJubyBldmVuIGlmIGl0IHN1Y2NlZWRzLCBubyBuZWVkIHRvDQo+Pj4+
Pj4gcHJlc2VydmUgaXQuIElmIG5lZWRlZCwgdGhlIGNhbGxlciBoYXMgdG8gc2F2ZSBpdC4NCj4+
Pj4+IA0KPj4+Pj4gRnVuY3Rpb25zIGluIHRoaXMgUE1EIGFyZSBkZWZpbmVkIGFzIGlzOg0KPj4+
Pj4gDQo+Pj4+PiAqIEByZXR1cm4NCj4+Pj4+ICogICAwIG9uIHN1Y2Nlc3MsIGEgbmVnYXRpdmUg
ZXJybm8gdmFsdWUgb3RoZXJ3aXNlIGFuZCBydGVfZXJybm8gaXMgc2V0Lg0KPj4+Pj4gDQo+Pj4+
PiBXaGljaCBtZWFucyBydGVfZXJybm8gaXMgb25seSBtb2RpZmllZCBpbiBjYXNlIG9mIGVycm9y
Lg0KPj4+Pj4gDQo+Pj4+PiBUaGlzIGZpeCBkb2VzIG5vdCByZXNwZWN0IHRoZSBkb2N1bWVudGF0
aW9uIG9mIHRoZSBmdW5jdGlvbiBvciBhbnkgb3RoZXINCj4+Pj4+IGZ1bmN0aW9uIG9mIHRoZSBQ
TUQgd2hpY2ggY2FuIHJldHVybiBlcnJvcnMuDQo+Pj4+IA0KPj4+PiBUaGF0J3MgbG9naWNhbGx5
IGEgd3JvbmcgaW50ZXJwcmV0YXRpb24uIEFjY29yZGluZyB0byB0aGUgZGVzY3JpcHRpb24sIGlm
DQo+Pj4+IHJldHVybmluZyBlcnJvciwgcnRlX2Vycm5vIGlzIHNldCBidXQgdGhlIG9wcG9zaXRl
IGlzbid0IGFsd2F5cyB0cnVlLiBFdmVuIGlmDQo+Pj4+IHJ0ZV9lcnJubyBpcyBzZXQsIGl0IGRv
ZXNuJ3QgbWVhbiB0aGVyZSdzIGFuIGVycm9yLiBTbyB0aGUgZGVzY3JpcHRpb24gY29pbmNpZGVz
DQo+Pj4+IHdpdGggdGhhdCBvZiBlcnJuby4gSWYgeW91IHdhbnQgdG8gZW5mb3JjZSBwcmVzZXJ2
aW5nIHJ0ZV9lcnJubyBpbiBjYXNlIG9mDQo+Pj4+IHN1Y2Nlc3MsIHlvdSBzaG91bGQgYW1lbmQg
dGhlIGRvY3VtZW50YXRpb24uDQo+Pj4+IA0KPj4+Pj4gcnRlX2Vycm5vIGlzIG9ubHkgc2V0IGlm
IGFuIGVycm9yIGlzIGVuY291bnRlcmVkIGFuZCBjb250YWlucyBvbmx5IHRoZSBlcnJvcg0KPj4+
Pj4gY29kZSBvZiB0aGUgZmlyc3QgZXJyb3Igc3ViLXNlcXVlbnQgb25lcyBhcmUgY29uc2lkZXJl
ZCBjb25zZXF1ZW5jZXMgb2YgdGhlDQo+Pj4+PiBmaXJzdCBvbmUgYW5kIHRodXMgbm90IHByZXNl
cnZlZC4NCj4+Pj4+IA0KPj4+Pj4gTm90IHByZXNlcnZpbmcgdGhlIHJ0ZV9lcnJubyBpbiByb2xs
IGJhY2tzIGlzIGVxdWl2YWxlbnQgdG8gbm90IHNldHRpbmcNCj4+Pj4+IGl0IGF0IGFsbCBhcyBh
IGZ1bmN0aW9uIGNhbGxlZCBieSB0aGUgcm9sbGJhY2sgbWF5IGFsc28gc2V0IGl0LCBleGFtcGxl
Og0KPj4+Pj4gDQo+Pj4+PiB7DQo+Pj4+PiAgIHZvaWQgKiBhOw0KPj4+Pj4gDQo+Pj4+PiAgIGZv
b19kbygpOw0KPj4+Pj4gICBhICA9IG1hbGxvYygxMCk7DQo+Pj4+PiAgIGlmICghYSkgew0KPj4+
Pj4gICAJcnRlX2Vycm5vID0gRU5PTUVNOw0KPj4+Pj4gCWZvb191bmRvKCk7DQo+Pj4+IA0KPj4+
PiBUaGlzIGV4YW1wbGUgaXMgd2VpcmQuIFlvdSBjYW4gc2ltcGx5IHNldCBydGVfZXJybm8gYWZ0
ZXIgZm9vX3VuZG8oKSBpbiB0aGlzDQo+Pj4+IGNhc2UuDQo+Pj4+IA0KPj4+Pj4gCXJldHVybiAt
cnRlX2Vycm5vOw0KPj4+Pj4gICB9DQo+Pj4+PiB9DQo+Pj4+PiANCj4+Pj4+IElmIGZvb191bmRv
KCkgYWxzbyBlbmNvdW50ZXIgYW4gZXJyb3IgaXQgd2lsbCBtb2RpZnkgdGhlIHJ0ZV9lcnJubyB3
aGljaA0KPj4+Pj4gbWF5IGhhdmUgYSB2YWx1ZSBkaWZmZXJlbnQgZnJvbSBFTk9NRU0sIGZvciB0
aGUgY2FsbGVlIHdvbid0IGJlIGluZm9ybWVkDQo+Pj4+PiB0aGUgZXJyb3IgaXMgZHVlIHRvIGEg
bWVtb3J5IGlzc3VlIGFuZCB0aHVzIGNhbm5vdCBtYWtlIGNvdW50ZXIgcGFydHMuDQo+Pj4+PiBJ
biBzdWNoIHNpdHVhdGlvbiB0aGUgcnRlX2Vycm5vIG11c3QgYmUgcHJlc2VydmVkIHRvIGtlZXAg
dGhlIEVOT01FTQ0KPj4+Pj4gZXJyb3IgY29kZS4NCj4+Pj4gDQo+Pj4+IEkga25ldyBpdC4gVGhh
dCdzIHdoeSBydGVfZXJybm8gaXMgc2F2ZWQgYmVmb3JlIGNhbGxpbmcgYW5vdGhlciBBUEkgd2hp
Y2ggbWF5DQo+Pj4+IGNoYW5nZSB0aGUgcnRlX2Vycm5vIGluc2lkZS4gQnV0LCB3ZSBhcmUgdGFs
a2luZyBhYm91dCBhIGNhc2Ugd2hlcmUgYW4gQVBJDQo+Pj4+IHJldHVybnMgc3VjY2Vzcy4gSWYg
Y2FsbGVyIGlzIHN1cHBvc2VkIHRvIHNhdmUgcnRlX2Vycm5vICh3aGVuIGl0J3MgbmVlZGVkKSwg
d2h5DQo+Pj4+IGRvZXMgY2FsbGVlIGhhdmUgdG8gcHV0IHNvbWUgZWZmb3J0IHRvIHByZXNlcnZl
IGl0IGV2ZW4gaW4gY2FzZSBvZiBzdWNjZXNzPyBJZg0KPj4+PiBydGVfZXJybm8gbXVzdCBiZSBw
cmVzZXJ2ZWQgZXZlbiBpbiBjYXNlIG9mIHN1Y2Nlc3MsIHdlIGhhdmUgdG8gbWFrZSBhIGJpZw0K
Pj4+PiBjaGFuZ2UgdG8gcHJlc2VydmUgcnRlX2Vycm5vIGZvciBjYXNlcyB3aGVyZSBhIHZvaWQg
ZnVuY3Rpb24gaXMgY2FsbGVkIChvciBjYXNlcw0KPj4+PiB3aGVyZSB3ZSBkb24ndCBjaGVjayBp
dHMgcmV0dXJuIHZhbHVlIG9mIG5vbi12b2lkIGZ1bmN0aW9uKS4NCj4+Pj4gDQo+Pj4+PiBUaGlz
IGlzIGFsc28gdGhlIG1haW4gcmVhc29uIGFsbW9zdCBhbGwgc3lzdGVtIGZ1bmN0aW9uIG9ubHkg
dXBkYXRlDQo+Pj4+PiBlcnJubyB3aGVuIG5vIGVycm9yIGlzIGVuY291bnRlcmVkLg0KPj4+PiAN
Cj4+Pj4gJ0FsbW9zdCcgZG9lc24ndCBtZWFuICdhbGwiLCBkb2VzIGl0PyBJdCBpcyB0cnVlIHRo
YXQgc3VjaCBmdW5jdGlvbnMgbXVzdCB1cGRhdGUNCj4+Pj4gZXJybm8gd2hlbiBpdCByZXR1cm5z
IGVycm9yIGJ1dCBpdCBkb2Vzbid0IGNhcmUgYWJvdXQgdGhlIHZhbHVlIHdoZW4gaXQgcmV0dXJu
cw0KPj4+PiBzdWNjZXNzLiBMaWtlIHRoZSBtYW4gcGFnZSBJIGF0dGFjaGVkIGFib3ZlLCB0aGUg
ZXJybm8gaXMgc2lnbmlmaWNhbnQgb25seSB3aGVuDQo+Pj4+IGl0IHJldHVybnMgYW4gZXJyb3Iu
IEFuZCAiYSBmdW5jdGlvbiB0aGF0IHN1Y2NlZWRzIGlzIGFsbG93ZWQgdG8gY2hhbmdlIGVycm5v
LiINCj4+PiANCj4+PiBJdCBpcyAiYWxtb3N0IiBiZWNhdXNlIGEgc3lzdGVtIGZ1bmN0aW9uIHRv
dWNoaW5nIHRoZSBlcnJubyB3aGVuIHRoZQ0KPj4+IGZ1bmN0aW9uIHN1Y2NlZWQgaXQgbm90IGNv
bW1vbi4gIEJ1dCBhcyB0aGUgbWFuIHBhZ2Ugc2F5cyBpdCBpcyBub3QNCj4+PiBpbXBvc3NpYmxl
Lg0KPj4+IA0KPj4+PiBTbywgdGhlIGRlY2lzaW9uIHBvaW50IGlzIHdoZXRoZXIgd2Ugd2FudCB0
byBwcmVzZXJ2ZSBydGVfZXJybm8gaW4gY2FzZSBvZg0KPj4+PiBzdWNjZXNzPyBNeSBvcGluaW9u
IGlzIG5vLg0KPj4+IA0KPj4+IEkgZGlkIG5vdCB1bmRlcnN0b29kIGl0IHdhcyBvbmx5IGEgY29u
Y2VybiBhYm91dCB0aGUgc3VjY2VzcyBvZiB0aGUNCj4+PiBmdW5jdGlvbiwgZXZlbiBpdCBpcyBi
ZXR0ZXIgdG8gYXZvaWQgYXMgbW9zdCBhcyBwb3NzaWJsZSBhIHVzZWxlc3MNCj4+PiBzdG9yZSwg
aW4gdGhpcyBzcGVjaWZpYyBjYXNlLCBhcyBlcnJubyAocnRlX2Vycm5vKSBoYXMgYSBnYXJiYWdl
IHZhbHVlLA0KPj4+IEkgZnVsbHkgYWdyZWUgd2l0aCB5b3UuDQo+PiANCj4+IE5lbGlvLA0KPj4g
DQo+PiBEbyB5b3Ugc3RpbGwgd2FudCBtZSB0byBtYWtlIGFueSBjaGFuZ2UgZm9yIHRoaXMgcGF0
Y2g/DQo+PiBMZXQgbWUga25vdyBpZiBhbnkuDQo+IA0KPiBXaXRoIHlvdXIgbW9kaWZpY2F0aW9u
IHRoZSBmdW5jdGlvbiBkb2N1bWVudGF0aW9uIGlzIG5vIG1vcmUgYWNjdXJhdGUgYXMNCj4gcnRl
X2Vycm5vIGlzIGFsd2F5cyBzZXQuDQoNCkkgc3RpbGwgZG9uJ3QgYWdyZWUgd2l0aCB0aGF0IGJ1
dCB3aWxsIHNlbmQgb3V0IHYyLiBJdCdzIG5vdCBhIGJpZyBkZWFsLg0KDQpUaGFua3MsDQpZb25n
c2Vvaw0KDQo=