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 5EC48A04F1;
	Mon,  6 Jan 2020 14:26:36 +0100 (CET)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 83F701D66A;
	Mon,  6 Jan 2020 14:26:35 +0100 (CET)
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88])
 by dpdk.org (Postfix) with ESMTP id 6FD091D668
 for <dev@dpdk.org>; Mon,  6 Jan 2020 14:26:34 +0100 (CET)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 06 Jan 2020 05:26:33 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.69,402,1571727600"; d="scan'208";a="422122062"
Received: from orsmsx106.amr.corp.intel.com ([10.22.225.133])
 by fmsmga006.fm.intel.com with ESMTP; 06 Jan 2020 05:26:33 -0800
Received: from orsmsx122.amr.corp.intel.com (10.22.225.227) by
 ORSMSX106.amr.corp.intel.com (10.22.225.133) with Microsoft SMTP Server (TLS)
 id 14.3.439.0; Mon, 6 Jan 2020 05:26:33 -0800
Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by
 ORSMSX122.amr.corp.intel.com (10.22.225.227) with Microsoft SMTP Server (TLS)
 id 14.3.439.0; Mon, 6 Jan 2020 05:26:32 -0800
Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.48) by
 edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server
 (TLS) id 14.3.439.0; Mon, 6 Jan 2020 05:26:32 -0800
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MkkiY316+DL9cGWkDkQfj0Z2zD82q9sOHhRWxLcyZvq11lBARj4zYr/W/S1tt+5NWGZR/bHOYndNwyU6ZUEBg8O/mkK/5CVxZrj0hrcpbnnaK1tpay7s0fA7eYXfERFBADFk4iVyY+L0UeCf8mGGx6KNVzjK6rDJF2VlEFpJ6pwNfxMSLi4xWblDNaQoWEz0j0XNienFBHzPhOGkrlPBcP+xAfwH2u9YPssbPvsVUgBtxOb4mIekFsWjLl4y9Vc/fjLXFIIw2Yc14WlIVGY5iHkO+TBuDahAUWUsDK55IdLVoQcONPNpWHN1pqxmE2ZtsZayG45qEBA32jP3YdwXcQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=udq3RnfO3+Mpk6cz38ZJj180/A51Bfy+w/7b0rP1lXw=;
 b=ey0Zi2StotsTNZa2ZaMd1jQg9lMPtnwxLX4BgftuRFA3yln6mkoiBTvFJ8Ps7lhmZPEPIcuLyEIjdQXCr13ZGQ140KmizjUJe40izLbIAtta5oTVruGlwkf+xsdbY79QazwD6vMUdYEhF5DtQuIM5GsempqYyD8yCrUzgSLoNdY6HNvlw9gCMSA6r1Sek2MIGn0bgFqkagKqAVSsjtf28tpQSS4JatwfjyYHJYOPMW/5DM3Tl2P8+2MKJ2sx1B2YPNKO9Pxr344t/gzDVFkzDs6L4gd1QaDCx/7qsKS8N/3CMswatLruusPgtqngKbYym7qIsVHPbqE0lOpTxsUb0A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; 
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=udq3RnfO3+Mpk6cz38ZJj180/A51Bfy+w/7b0rP1lXw=;
 b=vdCkYx+gH49lMGHgfMV8LsVc+/E66/ZC1GT0aaM/hRnCj5ffyKgdONW9il8veDauR+yWRKdP1fCFVhMyxEBlQjsUjernDvh/aX0NIotQjdXaTlqV3oFcmmB0yiCxiMoxEoI1p6PDPcUzP/yLb1M3CgOLThv8O99zxehlRjhtfXE=
Received: from SN6PR11MB2558.namprd11.prod.outlook.com (52.135.94.19) by
 SN6PR11MB3247.namprd11.prod.outlook.com (52.135.110.11) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2602.12; Mon, 6 Jan 2020 13:26:29 +0000
Received: from SN6PR11MB2558.namprd11.prod.outlook.com
 ([fe80::4d86:362a:13c3:8386]) by SN6PR11MB2558.namprd11.prod.outlook.com
 ([fe80::4d86:362a:13c3:8386%7]) with mapi id 15.20.2602.015; Mon, 6 Jan 2020
 13:26:29 +0000
From: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>
To: "Di, ChenxuX" <chenxux.di@intel.com>, "dev@dpdk.org" <dev@dpdk.org>
CC: "Yang, Qiming" <qiming.yang@intel.com>
Thread-Topic: [dpdk-dev] [PATCH v6 3/4] net/ixgbe: cleanup Tx buffers
Thread-Index: AQHVvvUp6LlAIfvCjkGBZ/4yGRUggKfSnF5QgAYOaoCABAZmYIAAsTkAgAA70ZA=
Date: Mon, 6 Jan 2020 13:26:29 +0000
Message-ID: <SN6PR11MB25585FDADFE1F159829B305D9A3C0@SN6PR11MB2558.namprd11.prod.outlook.com>
References: <20191203055134.72874-1-chenxux.di@intel.com>
 <20191230093840.17701-1-chenxux.di@intel.com>
 <20191230093840.17701-4-chenxux.di@intel.com>
 <SN6PR11MB2558D21A9E6008741FE793079A270@SN6PR11MB2558.namprd11.prod.outlook.com>
 <3B926E44943CB04AA3A39AC16328CE39B9262D@SHSMSX101.ccr.corp.intel.com>
 <SN6PR11MB255840C8D1C11AD9BAABA8949A3D0@SN6PR11MB2558.namprd11.prod.outlook.com>
 <3B926E44943CB04AA3A39AC16328CE39B93D08@SHSMSX101.ccr.corp.intel.com>
In-Reply-To: <3B926E44943CB04AA3A39AC16328CE39B93D08@SHSMSX101.ccr.corp.intel.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOTU5MGZhNzItZTFiMS00MzBlLTllMjUtMDY3OGJlZTQ0MzExIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoidmFYVHRGTU9USm5nT2JYcElzRmRhWkpnVm9VRnc4ZDRcLzhFM0ZCRGxlY0k3Nk1iWTNqTVwvcUNqTTM3TkgyY3RhIn0=
dlp-product: dlpe-windows
dlp-reaction: no-action
dlp-version: 11.2.0.6
x-ctpclassification: CTP_NT
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=konstantin.ananyev@intel.com; 
x-originating-ip: [192.198.151.163]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: b913a160-7e47-4f92-80d9-08d792ac09f4
x-ms-traffictypediagnostic: SN6PR11MB3247:
x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <SN6PR11MB32479110EE2BC32AF71232119A3C0@SN6PR11MB3247.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 0274272F87
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10019020)(396003)(39860400002)(346002)(136003)(376002)(366004)(189003)(199004)(316002)(33656002)(478600001)(110136005)(107886003)(52536014)(9686003)(6506007)(8936002)(81166006)(76116006)(81156014)(8676002)(66446008)(66556008)(66476007)(66946007)(186003)(64756008)(55016002)(86362001)(7696005)(2906002)(26005)(30864003)(5660300002)(71200400001)(4326008);
 DIR:OUT; SFP:1102; SCL:1; SRVR:SN6PR11MB3247;
 H:SN6PR11MB2558.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; MX:1; A:1; 
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: tdqjgpjRUqoSuMmb07E+Fl6h69wXuv/Q7kBjas0VqlTpGZuxcSvCQTnxO27Tv5pOEaAEwiPPHeajLoStYYI+Z19Sb0UudYTWGoh8zj0kIiNJh1D21JZxkhIGq8WhIiD+kxfgT+Fhm3Hs+/HKyQ0ydQmm44oQpBkPdYzwVJwON/kbM39nkYVx77zI+2w0Yt/6YDYgQEwjcD3+dWpFcZOqRykzpEdaQ9vwOWipOEK/ysf2HXVjWGHjYVeLsKnFHWxoZ1+XBQkzni7+aIZXPa87yxZfZeesslp/oKPq61P11ezH8TaF/+mnjk1m1fRFD0HNxpOeLgjjA9pQNrCR+EDci6fA/+diQKtsPe+HNUhvWqRJSVCdgv5B99fBiPRKu2F6mz9kMarjpEHddsrQxV8/2aq+8fTdZF6pP/6icoVXN6BbtvwZKWkreaVoZMgv8/qd
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: b913a160-7e47-4f92-80d9-08d792ac09f4
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jan 2020 13:26:29.3664 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: UUPYB7Ypnb/z8Z2shWjRNZyaBkv+sVPsdOfppewyfD4cvL1Kc0djgrcWjtdHjmOdfFKOA269+90d44/qT3fgjSiz18ynT7BuW06eDFtGJJY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3247
X-OriginatorOrg: intel.com
Subject: Re: [dpdk-dev] [PATCH v6 3/4] net/ixgbe: cleanup Tx buffers
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>

DQoNCj4gPiA+ID4gPiArICogdHhfdGFpbCBpcyB0aGUgbGFzdCBzZW50IHBhY2tldCBvbiB0aGUg
c3dfcmluZy4gR290byB0aGUgZW5kDQo+ID4gPiA+ID4gKyAqIG9mIHRoYXQgcGFja2V0ICh0aGUg
bGFzdCBzZWdtZW50IGluIHRoZSBwYWNrZXQgY2hhaW4pIGFuZA0KPiA+ID4gPiA+ICsgKiB0aGVu
IHRoZSBuZXh0IHNlZ21lbnQgd2lsbCBiZSB0aGUgc3RhcnQgb2YgdGhlIG9sZGVzdCBzZWdtZW50
DQo+ID4gPiA+ID4gKyAqIGluIHRoZSBzd19yaW5nLg0KPiA+ID4gPg0KPiA+ID4gPiBOb3Qgc3Vy
ZSBJIHVuZGVyc3RhbmQgdGhlIHNlbnRlbmNlIGFib3ZlLg0KPiA+ID4gPiB0eF90YWlsIGlzIHRo
ZSB2YWx1ZSBvZiBURFQgSFcgcmVnaXN0ZXIgKG1vc3QgcmVjZW50bHkgYXJtZWQgYnkgU1cgVEQp
Lg0KPiA+ID4gPiBsYXN0X2lkICBpcyB0aGUgaW5kZXggb2YgbGFzdCBkZXNjcmlwdG9yIGZvciBt
dWx0aS1zZWcgcGFja2V0Lg0KPiA+ID4gPiBuZXh0X2lkIGlzIGp1c3QgdGhlIGluZGV4IG9mIG5l
eHQgZGVzY3JpcHRvciBpbiBIVyBURCByaW5nLg0KPiA+ID4gPiBIb3cgZG8geW91IGNvbmNsdWRl
IHRoYXQgaXQgd2lsbCBiZSB0aGUgJyBvbGRlc3Qgc2VnbWVudCBpbiB0aGUgc3dfcmluZyc/DQo+
ID4gPiA+DQo+ID4gPg0KPiA+ID4gVGhlIHR4X3RhaWwgaXMgdGhlIGxhc3Qgc2VudCBwYWNrZXQg
b24gdGhlIHN3X3JpbmcuIFdoaWxlIHRoZQ0KPiA+ID4geG1pdF9jbGVhbnVwIG9yIFR4X2ZyZWVf
YnVmcyB3aWxsIGJlIGNhbGwgd2hlbiB0aGUgbmJfdHhfZnJlZSA8DQo+ID4gdHhfZnJlZV90aHJl
c2ggLg0KPiA+ID4gU28gdGhlIHN3X3JpbmdbdHhfdGFpbF0ubmV4dF9pZCBtdXN0IGJlIHRoZSBi
ZWdpbiBvZiBtYnVmcyB3aGljaCBhcmUNCj4gPiA+IG5vdCB1c2VkIG9yICBBbHJlYWR5IGZyZWVk
IC4gdGhlbiBiZWdpbiB0aGUgbG9vcCB1bnRpbCB0aGUgbWJ1ZiBpcyB1c2VkIGFuZA0KPiA+IGJl
Z2luIHRvIGZyZWUgdGhlbS4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+ID4gQW5vdGhlciBx
dWVzdGlvbiB3aHkgZG8geW91IG5lZWQgdG8gd3JpdGUgeW91ciBvd24gZnVuY3Rpb25zPw0KPiA+
ID4gPiBXaHkgY2FuJ3QgeW91IHJldXNlIGV4aXN0aW5nIGl4Z2JlX3htaXRfY2xlYW51cCgpIGZv
ciBmdWxsKG9mZmxvYWQpDQo+ID4gPiA+IHBhdGggYW5kDQo+ID4gPiA+IGl4Z2JlX3R4X2ZyZWVf
YnVmcygpIGZvciBzaW1wbGUgcGF0aD8NCj4gPiA+ID4gWWVzLCAgaXhnYmVfeG1pdF9jbGVhbnVw
KCkgZG9lc24ndCBmcmVlIG1idWZzLCBidXQgYXQgbGVhc3QgaXQgY291bGQNCj4gPiA+ID4gYmUg
dXNlZCB0byBkZXRlcm1pbmUgZmluaXNoZWQgVFggZGVzY3JpcHRvcnMuDQo+ID4gPiA+IEJhc2Vk
IG9uIHRoYXQgeW91IGNhbiB5b3UgY2FuIGZyZWUgYXBwcm9wcmlhdGUgc3dfcmluZ1tdIGVudHJp
ZXMuDQo+ID4gPiA+DQo+ID4gPg0KPiA+ID4gVGhlIHJlYXNvbiB3aHkgSSBkb24ndCByZXVzZSBl
eGlzdGluZyBmdW5jdGlvbiBpcyB0aGF0IHRoZXkgYWxsIGZyZWUNCj4gPiA+IHNldmVyYWwgbWJ1
ZnMgV2hpbGUgdGhlIGZyZWVfY250IG9mIHRoZSBBUEkgcnRlX2V0aF90eF9kb25lX2NsZWFudXAo
KSBpcyB0aGUNCj4gPiBudW1iZXIgb2YgcGFja2V0cy4NCj4gPiA+IEl0IGFsc28gbmVlZCB0byBi
ZSBkb25lIHRoYXQgY2hlY2sgd2hpY2ggbWJ1ZmZzIGFyZSBmcm9tIHRoZSBzYW1lIHBhY2tldC4N
Cj4gPg0KPiA+IEF0IGZpcnN0LCBJIGRvbid0IHNlZSBhbnl0aGluZyBiYWQgaWYgdHhfZG9uZV9j
bGVhbnVwKCkgd2lsbCBmcmVlIG9ubHkgc29tZQ0KPiA+IHNlZ21lbnRzIGZyb20gdGhlIHBhY2tl
dC4gQXMgbG9uZyBhcyBpdCBpcyBzYWZlIC0gdGhlcmUgaXMgbm8gcHJvYmxlbSB3aXRoIHRoYXQu
DQo+ID4gSSB0aGluayBydGVfZXRoX3R4X2RvbmVfY2xlYW51cCgpIG9wZXJhdGVzIG9uIG1idWYs
IG5vdCBwYWNrZXQgcXVhbnRpdGllcy4NCj4gPiBCdXQgaW4gb3VyIGNhc2UgSSB0aGluayBpdCBk
b2Vzbid0IG1hdHRlciwgYXMgaXhnYmVfeG1pdF9jbGVhbnVwKCkgbWFyayBUWERzIGFzDQo+ID4g
ZnJlZSBvbmx5IHdoZW4gSFcgaXMgZG9uZSB3aXRoIGFsbCBUWERzIGZvciB0aGF0IHBhY2tldC4N
Cj4gPiBBcyBsb25nIGFzIHRoZXJlIGlzIGEgd2F5IHRvIHJldXNlIGV4aXN0aW5nIGNvZGUgYW5k
IGF2b2lkIGR1cGxpY2F0aW9uICh3aXRob3V0DQo+ID4gaW50cm9kdWNpbmcgYW55IGRlZ3JhZGF0
aW9uKSAtIHdlIHNob3VsZCB1c2UgaXQuDQo+ID4gQW5kIEkgdGhpbmsgdGhlcmUgaXMgYSB2ZXJ5
IGdvb2Qgb3Bwb3J0dW5pdHkgaGVyZSB0byByZXVzZSBleGlzdGluZw0KPiA+IGl4Z2JlX3htaXRf
Y2xlYW51cCgpIGZvciB0eF9kb25lX2NsZWFudXAoKSBpbXBsZW1lbnRhdGlvbi4NCj4gPiBNb3Jl
b3ZlciBiZWNhdXNlIHlvdXIgY29kZSBkb2VzbuKAmXQgZm9sbG93DQo+ID4gaXhnYmVfeG1pdF9w
a3RzKCkvaXhnYmVfeG1pdF9jbGVhbnVwKCkNCj4gPiBsb2dpYyBhbmQgaW5mcmFzdHJ1Y3R1cmUs
IGl0IGludHJvZHVjZXMgdW5uZWNlc3Nhcnkgc2NhbnMgb3ZlciBUWEQgcmluZywgYW5kIGluDQo+
ID4gc29tZSBjYXNlcyBkb2Vzbid0IHdvcmsgYXMgZXhwZWN0ZWQ6DQo+ID4NCj4gPiArd2hpbGUg
KDEpIHsNCj4gPiArdHhfbGFzdCA9IHN3X3JpbmdbdHhfaWRdLmxhc3RfaWQ7DQo+ID4gKw0KPiA+
ICtpZiAoc3dfcmluZ1t0eF9sYXN0XS5tYnVmKSB7DQo+ID4gK2lmICh0eHJbdHhfbGFzdF0ud2Iu
c3RhdHVzICYNCj4gPiArSVhHQkVfVFhEX1NUQVRfREQpIHsNCj4gPiAuLi4NCj4gPiArfSBlbHNl
IHsNCj4gPiArLyoNCj4gPiArICogbWJ1ZiBzdGlsbCBpbiB1c2UsIG5vdGhpbmcgbGVmdCB0bw0K
PiA+ICsgKiBmcmVlLg0KPiA+ICsgKi8NCj4gPiArYnJlYWs7DQo+ID4NCj4gPiBJdCBpcyBub3Qg
Y29ycmVjdCB0byBleHBlY3QgdGhhdCBJWEdCRV9UWERfU1RBVF9ERCB3aWxsIGJlIHNldCBvbiBs
YXN0IFRYRCBmb3INCj4gPiAqZXZlcnkqIHBhY2tldC4NCj4gPiBXZSBzZXQgSVhHQkVfVFhEX0NN
RF9SUyBiaXQgb25seSBvbiB0aHJlc2hvbGQgcGFja2V0IGxhc3QgZGVzY3JpcHRvci4NCj4gPiBQ
bHVzIGl4Z2JlX3htaXRfY2xlYW51cCgpIGNhbiBjbGVhbnVwIFRYRCB3Yi5zdGF0dXMuDQo+ID4N
Cj4gPiBTbyBJIHN0cm9uZ2x5IHJlY29tbWVuZCB0byByZXVzZSBpeGdiZV94bWl0X2NsZWFudXAo
KSBoZXJlLg0KPiA+IEl0IHdvdWxkIGJlIG11Y2ggbGVzcyBlcnJvciBwcm9uZSBhbmQgd2lsbCBo
ZWxwIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24uDQo+ID4NCj4gPiBLb25zdGFudGluDQo+ID4N
Cj4gDQo+IEF0IGZpcnN0Lg0KPiBUaGUgZnVuY3Rpb24gaXhnYmVfeG1pdF9jbGVhbnVwKHN0cnVj
dCBpeGdiZV90eF9xdWV1ZSAqdHhxKSB3aWxsIGNsZWFudXAgIFRYRCB3Yi5zdGF0dXMuDQo+IHRo
ZSBudW1iZXIgb2Ygc3RhdHVzIGNsZWFudXBlZCBpcyBhbHdheXMgdHhxLT50eF9yc190aHJlc2gu
DQoNClllcywgYW5kIHdoYXQncyB3cm9uZyB3aXRoIGl0Pw0KDQo+IA0KPiBUaGUgIEFQSSBydGVf
ZXRoX3R4X2RvbmVfY2xlYW51cCgpIGluIHJ0ZV9ldGhfZGV2Lmggc2hvdyB0aGF0DQo+IAlAcGFy
YW0gZnJlZV9jbnQNCj4gIAkqICAgTWF4aW11bSBudW1iZXIgb2YgcGFja2V0cyB0byBmcmVlLiBV
c2UgMCB0byBpbmRpY2F0ZSBhbGwgcG9zc2libGUgcGFja2V0cw0KPiAgCSogICBzaG91bGQgYmUg
ZnJlZWQuIE5vdGUgdGhhdCBhIHBhY2tldCBtYXkgYmUgdXNpbmcgbXVsdGlwbGUgbWJ1ZnMuDQoN
CkkgZG9uJ3QgdGhpbmsgaXQgaXMgYSBnb29kIGFwcHJvYWNoLCBiZXR0ZXIgd291bGQgYmUgdG8g
cmVwb3J0IG51bWJlciBvZiBmcmVlZCBtYnVmcywNCmJ1dCBvaywgYXMgaXQgaXMgYSBwdWJsaWMg
QVBJLCB3ZSBwcm9iYWJseSBuZWVkIHRvIGtlZXAgaXQgYXMgaXQgaXMuDQoNCj4gYSBudW1iZXIg
bXVzdCBiZSBzZXQgd2hpbGUgaXhnYmVfeG1pdF9jbGVhbnVwIGFuZCBpeGdiZV90eF9mcmVlX2J1
ZnMgb25seSBoYXZlIG9uZSBwYXJhbWV0ZXIgdHhxLg0KDQpZZXMsIGl4Z2JlX3htaXRfY2xlYW51
cCgpIGNsZWFucyB1cCBhdCBsZWFzdCB0eHEtPnR4X3JzX3RocmVzaCBUWERzLg0KU28gaWYgdXNl
ciByZXF1ZXN0ZWQgbW9yZSBwYWNrZXRzIHRvIGJlIGZyZWVkIHdlIGNhbiBjYWxsIGl4Z2JlX3ht
aXRfY2xlYW51cCgpDQppbiBhIGxvb3AuIA0KDQo+IEFuZCB3aGF0IHNob3VsZCBkbyBpcyBub3Qg
b25seSBmcmVlIGJ1ZmZlcnMgYW5kIHN0YXR1cyBidXQgYWxzbyBjaGVjayB3aGljaCBidWZzIGFy
ZSBmcm9tDQo+ICBPbmUgcGFja2V0IGFuZCBjb3VudCB0aGUgcGFja2V0IGZyZWVkLg0KDQppeGdi
ZV94bWl0X2NsZWFudXAoKSBpdHNlbGYgZG9lc24ndCBmcmVlIG1idWZzIGl0c2VsZi4NCkl0IG9u
bHkgY2xlYW5zIHVwIFRYRHMuIA0KU28gaW4gdHhfZG9uZV9jbGVhbnVwKCkgYWZ0ZXIgY2FsbGlu
ZyBpeGdiZV94bWl0X2NsZWFudXAoKQ0KeW91J2xsIHN0aWxsIG5lZWQgdG8gZ28gdGhyb3VnaCBz
d19yaW5nW10NCmVudHJpZXMgdGhhdCBjb3JyZXNwb25kIHRvIGZyZWUgVFhEcyBhbmQgY2FsbCBt
YnVmX3NlZ19mcmVlKCkuDQpZb3UgY2FuIGNvdW50IG51bWJlciBvZiBmdWxsIHBhY2tldHMgaGVy
ZS4gDQoNCj4gU28gSSB0aGluayBpdCBjYW4ndCBiZSBpbXBsZW1lbnRlZCB0aGF0IHJldXNlIGZ1
bmN0aW9uIHhtaXRfY2xlYW51cCB3aXRob3V0IGNoYW5nZSBpdC4NCj4gQW5kIGNyZWF0ZSBhIG5l
dyBmdW5jdGlvbiB3aXRoIHRoZSBjb2RlIG9mIHhtaXRfY2xlYW51cCB3aWxsIGNhdXNlIG1hbnkg
ZHVwbGljYXRpb24uDQoNCkkgZG9uJ3QgdGhpbmsgaXQgd291bGQuDQpJIHRoaW5rIGFsbCB3ZSBu
ZWVkIGhlcmUgaXMgc29tZXRoaW5nIGxpa2UgdGhhdA0KKG5vdGUgaXQgaXMgc2NoZW1hdGljIG9u
ZSwgZG9lc24ndCB0YWtlIGludG8gYWNjb3VuZiB0aGF0IFRYRCByaW5nIGlzIGNpcmN1bGFyKToN
Cg0KdHhfZG9uZV9jbGVhbnVwKC4uLiwgdWludDMyX3QgY250KQ0Kew0KICAgICAgLyogd2UgaGF2
ZSB0eHEtPm5iX3R4X2ZyZWUgVFhEcyBzdGFydGluZyBmcm9tIHR4cS0+dHhfdGFpbC4NCiAgICAg
ICAgICAgU2NhbiB0aGVtIGZpcnN0IGFuZCBmcmVlIGFzIG1hbnkgbWJ1ZnMgYXMgd2UgY2FuLg0K
ICAgICAgICAgICBJZiB3ZSBuZWVkIG1vcmUgbWJ1ZnMgdG8gZnJlZSBjYWxsICBpeGdiZV94bWl0
X2NsZWFudXAoKQ0KICAgICAgICAgICB0byBmcmVlIG1vcmUgVFhEcy4gKi8gDQoNCiAgICAgICBz
d3IgPSB0eHEtPnN3X3Jpbmc7DQogICAgICAgdHhyICAgICA9IHR4cS0+dHhfcmluZzsNCiAgICAg
ICBpZCAgID0gdHhxLT50eF90YWlsOw0KICAgICAgIGZyZWUgPSAgdHhxLT5uYl90eF9mcmVlOyAg
ICAgICANCiAgDQogICAgICAgZm9yIChuID0gMDsgbiA8IGNudCAmJiBmcmVlICE9IDA7ICkgew0K
DQogICAgICAgICAgZm9yIChqID0gMDsgaiAhPSBmcmVlICYmIG4gPCBjbnQ7IGorKykgew0KICAg
ICAgICAgICAgIHN3ZSA9ICZzd3JbaWQgKyBqXTsNCiAgICAgICAgICAgICBpZiAoc3dlLT5tYnVm
ICE9IE5VTEwpIHsNCiAgICAgICAgICAgICAgICAgICBydGVfcGt0bWJ1Zl9mcmVlX3NlZyhzd2Ut
Pm1idWYpOw0KICAgICAgICAgICAgICAgICAgIHN3ZS0+bWJ1ZiA9IE5VTEw7DQogICAgICAgICAg
ICAgfQ0KICAgICAgICAgICAgIG4gKz0gKHN3ZS0+bGFzdF9pZCA9PSBpZCArIGopDQogICAgICAg
ICAgfSANCg0KICAgICAgICAgIGlmIChuIDwgY250KSB7IA0KICAgICAgICAgICAgICAgaXhnYmVf
eG1pdF9jbGVhbnVwKHR4cSk7DQogICAgICAgICAgICAgICBmcmVlID0gICB0eHEtPm5iX3R4X2Zy
ZWUgLSBmcmVlOw0KICAgICAgICAgIH0NCiAgICAgfQ0KICAgICByZXR1cm4gbjsNCn0NCg0KPiAN
Cj4gQWJvdmUgYWxsICwgaXQgc2VlbSBub3QgYSBwZXJmZWN0IGlkZWEgdG8gcmV1c2UgaXhnYmVf
eG1pdF9jbGVhbnVwKCkuDQoNClRvdGFsbHkgZGlzYWdyZWUsIHNlZSBhYm92ZS4NCg0KPiANCj4g
U2Vjb25kLg0KPiBUaGUgZnVuY3Rpb24gaW4gcGF0Y2ggaXMgY29weSBmcm9tIGNvZGUgaW4gaWdi
X3J4dHguYy4gaXQgYWxyZWFkeSB1cGRhdGVkIGluIDIwMTcsDQo+IFRoZSBjb21taXQgaWQgaXMg
OGQ5MDdkMmI3OWY3YTU0YzgwOWYxYzQ0OTcwZmY0NTVmYTI4NjVlMS4NCg0KSSByZWFsaXplZCB0
aGF0Lg0KQnV0IEkgdGhpbmsgaXQgYXMgYSBwcm9ibGVtLCBub3QgYSBwb3NpdGl2ZSB0aGluZy4N
CldoaWxlIHRoZXkgZG8gaGF2ZSBzb21lIHNpbWlsYXJpdGllcywgaWdiIGFiZCBpeGdiZSBhcmUg
UE1EcyBmb3IgZGlmZmVyZW50IGRldmljZXMsDQphbmQgdGhlaXIgVFggY29kZSBkaWZmZXJzIHF1
aXRlIGEgbG90LiBMZXQgc2F5IGlnYiBkb2Vzbid0IHVzZSB0eF9yc190aHJlc2hvbGQsDQpidXQg
aW5zdGVhZCBzZXQgUlMgYml0IGZvciBlYWNoIGxhc3QgVFhELg0KU28sIGp1c3QgYmxpbmRseSBj
b3B5aW5nIHR4X2RvbmVfY2xlYW51cCgpIGZyb20gaWdiIHRvIGl4Z2JlIGRvZXNuJ3QgbG9vayBs
aWtlIGEgZ29vZA0KaWRlYSB0byBtZS4NCg0KPiBJIHRydXN0IHRoZSBsb2dpYyBvZiBjb2RlIGlz
IHJpZ2h0Lg0KPiBBY3R1YWxseSBpdCBkb24ndCBjb21wbGV0ZSBmb3IgaXhnYmUsIGk0MGUgYW5k
IGljZSwgd2hpbGUgaXQgZG9uJ3QgY2hhbmdlIHRoZSB2YWx1ZSBvZg0KPiBsYXN0X2Rlc2NfY2xl
YW5lZCBhbmQgdHhfbmV4dF9kZC4gQW5kIGl0J3MgYmVnaW5uaW5nIHByZWZlciBsYXN0X2Rlc2Nf
Y2xlYW5lZCBvcg0KPiAgdHhfbmV4dF9kZChmb3Igb2ZmbG9hZCBvciBzaW1wbGUpIHRvIHR4X3Rh
aWwuDQo+IA0KPiBTbywgSSBzdWdnZXN0IHRvIHVzZSB0aGUgb2xkIGZ1bmN0aW9uIGFuZCBmaXgg
dGhlIGlzc3VlLg0KPiANCj4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+VGhpcyBpcyB0aGUgZmlyc3Qg
cGFja2V0IHRoYXQgd2lsbCBiZQ0KPiA+ID4gPiA+ICsgKiBhdHRlbXB0ZWQgdG8gYmUgZnJlZWQu
DQo+ID4gPiA+ID4gKyAqLw0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArLyogR2V0IGxhc3Qgc2Vn
bWVudCBpbiBtb3N0IHJlY2VudGx5IGFkZGVkIHBhY2tldC4gKi8gdHhfbGFzdCA9DQo+ID4gPiA+
ID4gK3N3X3JpbmdbdHhxLT50eF90YWlsXS5sYXN0X2lkOw0KPiA+ID4gPiA+ICsNCj4gPiA+ID4g
PiArLyogR2V0IHRoZSBuZXh0IHNlZ21lbnQsIHdoaWNoIGlzIHRoZSBvbGRlc3Qgc2VnbWVudCBp
biByaW5nLiAqLw0KPiA+ID4gPiA+ICt0eF9maXJzdCA9IHN3X3JpbmdbdHhfbGFzdF0ubmV4dF9p
ZDsNCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKy8qIFNldCB0aGUgY3VycmVudCBpbmRleCB0byB0
aGUgZmlyc3QuICovIHR4X2lkID0gdHhfZmlyc3Q7DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsv
Kg0KPiA+ID4gPiA+ICsgKiBMb29wIHRocm91Z2ggZWFjaCBwYWNrZXQuIEZvciBlYWNoIHBhY2tl
dCwgdmVyaWZ5IHRoYXQgYW4NCj4gPiA+ID4gPiArICogbWJ1ZiBleGlzdHMgYW5kIHRoYXQgdGhl
IGxhc3Qgc2VnbWVudCBpcyBmcmVlLiBJZiBzbywgZnJlZQ0KPiA+ID4gPiA+ICsgKiBpdCBhbmQg
bW92ZSBvbi4NCj4gPiA+ID4gPiArICovDQo+ID4gPiA+ID4gK3doaWxlICgxKSB7DQo+ID4gPiA+
ID4gK3R4X2xhc3QgPSBzd19yaW5nW3R4X2lkXS5sYXN0X2lkOw0KPiA+ID4gPiA+ICsNCj4gPiA+
ID4gPiAraWYgKHN3X3JpbmdbdHhfbGFzdF0ubWJ1Zikgew0KPiA+ID4gPiA+ICtpZiAoISh0eHJb
dHhfbGFzdF0ud2Iuc3RhdHVzICYNCj4gPiA+ID4gPiArSVhHQkVfVFhEX1NUQVRfREQpKQ0KPiA+
ID4gPiA+ICticmVhazsNCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKy8qIEdldCB0aGUgc3RhcnQg
b2YgdGhlIG5leHQgcGFja2V0LiAqLyB0eF9uZXh0ID0NCj4gPiA+ID4gPiArc3dfcmluZ1t0eF9s
YXN0XS5uZXh0X2lkOw0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArLyoNCj4gPiA+ID4gPiArICog
TG9vcCB0aHJvdWdoIGFsbCBzZWdtZW50cyBpbiBhDQo+ID4gPiA+ID4gKyAqIHBhY2tldC4NCj4g
PiA+ID4gPiArICovDQo+ID4gPiA+ID4gK2RvIHsNCj4gPiA+ID4gPiArcnRlX3BrdG1idWZfZnJl
ZV9zZWcoc3dfcmluZ1t0eF9pZF0ubWJ1Zik7DQo+ID4gPiA+ID4gK3N3X3JpbmdbdHhfaWRdLm1i
dWYgPSBOVUxMOw0KPiA+ID4gPiA+ICtzd19yaW5nW3R4X2lkXS5sYXN0X2lkID0gdHhfaWQ7DQo+
ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsvKiBNb3ZlIHRvIG5leHQgc2VnbWVudC4gKi8NCj4gPiA+
ID4gPiArdHhfaWQgPSBzd19yaW5nW3R4X2lkXS5uZXh0X2lkOw0KPiA+ID4gPiA+ICsNCj4gPiA+
ID4gPiArfSB3aGlsZSAodHhfaWQgIT0gdHhfbmV4dCk7DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+
ICsvKg0KPiA+ID4gPiA+ICsgKiBJbmNyZW1lbnQgdGhlIG51bWJlciBvZiBwYWNrZXRzDQo+ID4g
PiA+ID4gKyAqIGZyZWVkLg0KPiA+ID4gPiA+ICsgKi8NCj4gPiA+ID4gPiArY291bnQrKzsNCj4g
PiA+ID4gPiArDQo+ID4gPiA+ID4gK2lmICh1bmxpa2VseShjb3VudCA9PSAoaW50KWZyZWVfY250
KSkgYnJlYWs7IH0gZWxzZSB7DQo+ID4gPiA+ID4gKy8qDQo+ID4gPiA+ID4gKyAqIFRoZXJlIGFy
ZSBtdWx0aXBsZSByZWFzb25zIHRvIGJlIGhlcmU6DQo+ID4gPiA+ID4gKyAqIDEpIEFsbCB0aGUg
cGFja2V0cyBvbiB0aGUgcmluZyBoYXZlIGJlZW4NCj4gPiA+ID4gPiArICogICAgZnJlZWQgLSB0
eF9pZCBpcyBlcXVhbCB0byB0eF9maXJzdA0KPiA+ID4gPiA+ICsgKiAgICBhbmQgc29tZSBwYWNr
ZXRzIGhhdmUgYmVlbiBmcmVlZC4NCj4gPiA+ID4gPiArICogICAgLSBEb25lLCBleGl0DQo+ID4g
PiA+ID4gKyAqIDIpIEludGVyZmFjZXMgaGFzIG5vdCBzZW50IGEgcmluZ3Mgd29ydGggb2YNCj4g
PiA+ID4gPiArICogICAgcGFja2V0cyB5ZXQsIHNvIHRoZSBzZWdtZW50IGFmdGVyIHRhaWwgaXMN
Cj4gPiA+ID4gPiArICogICAgc3RpbGwgZW1wdHkuIE9yIGEgcHJldmlvdXMgY2FsbCB0byB0aGlz
DQo+ID4gPiA+ID4gKyAqICAgIGZ1bmN0aW9uIGZyZWVkIHNvbWUgb2YgdGhlIHNlZ21lbnRzIGJ1
dA0KPiA+ID4gPiA+ICsgKiAgICBub3QgYWxsIHNvIHRoZXJlIGlzIGEgaG9sZSBpbiB0aGUgbGlz
dC4NCj4gPiA+ID4gPiArICogICAgSG9wZWZ1bGx5IHRoaXMgaXMgYSByYXJlIGNhc2UuDQo+ID4g
PiA+ID4gKyAqICAgIC0gV2FsayB0aGUgbGlzdCBhbmQgZmluZCB0aGUgbmV4dCBtYnVmLiBJZg0K
PiA+ID4gPiA+ICsgKiAgICAgIHRoZXJlIGlzbid0IG9uZSwgdGhlbiBkb25lLg0KPiA+ID4gPiA+
ICsgKi8NCj4gPiA+ID4gPiAraWYgKGxpa2VseSh0eF9pZCA9PSB0eF9maXJzdCAmJiBjb3VudCAh
PSAwKSkgYnJlYWs7DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsvKg0KPiA+ID4gPiA+ICsgKiBX
YWxrIHRoZSBsaXN0IGFuZCBmaW5kIHRoZSBuZXh0IG1idWYsIGlmIGFueS4NCj4gPiA+ID4gPiAr
ICovDQo+ID4gPiA+ID4gK2RvIHsNCj4gPiA+ID4gPiArLyogTW92ZSB0byBuZXh0IHNlZ21lbnQu
ICovDQo+ID4gPiA+ID4gK3R4X2lkID0gc3dfcmluZ1t0eF9pZF0ubmV4dF9pZDsNCj4gPiA+ID4g
PiArDQo+ID4gPiA+ID4gK2lmIChzd19yaW5nW3R4X2lkXS5tYnVmKQ0KPiA+ID4gPiA+ICticmVh
azsNCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gK30gd2hpbGUgKHR4X2lkICE9IHR4X2ZpcnN0KTsN
Cj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKy8qDQo+ID4gPiA+ID4gKyAqIERldGVybWluZSB3aHkg
cHJldmlvdXMgbG9vcCBiYWlsZWQuIElmIHRoZXJlDQo+ID4gPiA+ID4gKyAqIGlzIG5vdCBhbiBt
YnVmLCBkb25lLg0KPiA+ID4gPiA+ICsgKi8NCj4gPiA+ID4gPiAraWYgKHN3X3JpbmdbdHhfaWRd
Lm1idWYgPT0gTlVMTCkNCj4gPiA+ID4gPiArYnJlYWs7DQo+ID4gPiA+ID4gK30NCj4gPiA+ID4g
PiArfQ0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArcmV0dXJuIGNvdW50Ow0KPiA+ID4gPiA+ICt9
DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChjb2xk
KSkgIGl4Z2JlX3R4X2ZyZWVfc3dyaW5nKHN0cnVjdA0KPiA+ID4gPiA+IGl4Z2JlX3R4X3F1ZXVl
ICp0eHEpICB7IGRpZmYgLS1naXQNCj4gPiA+ID4gPiBhL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2Jl
X3J4dHguaCBiL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguaA0KPiA+ID4gPiA+IGluZGV4
IDUwNWQzNDRiOS4uMmMzNzcwYWY2IDEwMDY0NA0KPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbmV0
L2l4Z2JlL2l4Z2JlX3J4dHguaA0KPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvbmV0L2l4Z2JlL2l4
Z2JlX3J4dHguaA0KPiA+ID4gPiA+IEBAIC0yODUsNiArMjg1LDggQEAgaW50DQo+ID4gPiA+ID4g
aXhnYmVfcnhfdmVjX2Rldl9jb25mX2NvbmRpdGlvbl9jaGVjayhzdHJ1Y3QNCj4gPiA+ID4gPiBy
dGVfZXRoX2RldiAqZGV2KTsgIGludCBpeGdiZV9yeHFfdmVjX3NldHVwKHN0cnVjdCBpeGdiZV9y
eF9xdWV1ZQ0KPiA+ID4gPiA+ICpyeHEpOyAgdm9pZCBpeGdiZV9yeF9xdWV1ZV9yZWxlYXNlX21i
dWZzX3ZlYyhzdHJ1Y3QNCj4gPiA+ID4gPiBpeGdiZV9yeF9xdWV1ZSAqcnhxKTsNCj4gPiA+ID4g
Pg0KPiA+ID4gPiA+ICtpbnQgaXhnYmVfdHhfZG9uZV9jbGVhbnVwKHZvaWQgKnR4cSwgdWludDMy
X3QgZnJlZV9jbnQpOw0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiAgZXh0ZXJuIGNvbnN0IHVpbnQz
Ml90IHB0eXBlX3RhYmxlW0lYR0JFX1BBQ0tFVF9UWVBFX01BWF07DQo+ID4gPiA+ID4gIGV4dGVy
biBjb25zdCB1aW50MzJfdCBwdHlwZV90YWJsZV90bltJWEdCRV9QQUNLRVRfVFlQRV9UTl9NQVhd
Ow0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLS0NCj4gPiA+ID4gPiAyLjE3LjENCj4gPiA+ID4NCj4g
PiA+DQo+ID4NCj4gDQoNCg==