From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 9E0C9A034F;
	Mon, 11 Oct 2021 17:15:21 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 3495E41102;
	Mon, 11 Oct 2021 17:15:21 +0200 (CEST)
Received: from mga06.intel.com (mga06.intel.com [134.134.136.31])
 by mails.dpdk.org (Postfix) with ESMTP id 6F0E1410FC
 for <dev@dpdk.org>; Mon, 11 Oct 2021 17:15:19 +0200 (CEST)
X-IronPort-AV: E=McAfee;i="6200,9189,10134"; a="287774121"
X-IronPort-AV: E=Sophos;i="5.85,364,1624345200"; d="scan'208";a="287774121"
Received: from fmsmga005.fm.intel.com ([10.253.24.32])
 by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 11 Oct 2021 08:15:17 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.85,364,1624345200"; d="scan'208";a="716426048"
Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17])
 by fmsmga005.fm.intel.com with ESMTP; 11 Oct 2021 08:15:16 -0700
Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by
 ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Mon, 11 Oct 2021 08:15:16 -0700
Received: from orsmsx605.amr.corp.intel.com (10.22.229.18) by
 ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Mon, 11 Oct 2021 08:15:11 -0700
Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by
 orsmsx605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12 via Frontend Transport; Mon, 11 Oct 2021 08:15:11 -0700
Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.170)
 by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.12; Mon, 11 Oct 2021 08:15:11 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fi+0z0PCGnHQGpK7Od7DqCgAP4CkXU8WETFDoj2Q5Gr/3TxY3fTTP9Zgxg0tlU6Tn4D37S5xdrvA1zPQXVusbSeKjIIEO3wh29UYJx4us6MasCzjLfxs5HHOQScSPU4Zr/s+wMtlLUSg/rdXDJW83Ke6KxVgmiEyRm5NCknsXnKRD3XtOskUmq3BA9VGA7CFChGthXCRqArvYwEdTRuaDP7dobCJVR9aZ3kgd+uvVP/3v3KtBK1JP7+rZBBZbQRopvjY4EcKsEy1uJ0YLaaRUqk30R4Ko2k4SlalIVsgVINftPc1iD4foCVnveqrAheV3/XSGCsKr4SOmQqAGkBq7w==
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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6/zcI5Qmu0wXQ9glxrzYsweQzRKOF0bxng92x4/BVJ8=;
 b=VirifU3SJK1LwzVlEgjlVNx4KJa9LOxb5x4XdiWpkJHTNOGbndBDigVUt/lXF2jAhM9nfyed7x3PYCfGTg4D3SsgdrhL0CHt7CYGFVLZUPaKi3cS3CGjDCnsn7OPSuMbBVC4IcTvNyJQzqALUuMFAYVWYgD1Dkx5OZhUiBN6sj4wmi2jSB8spiElXXyi8M517oQKBSxK2grve18uYBU+d1G2n41CP11hvEHgRWvuATbTs8oSjG9YJ46lFF9Wnb9dkHHK5ir7UenuZQHRhlXnWebpsC140CsOWRGMC6DSheG1A66s5WbtBOzthBdyrZTFRBHOZsASBUtZdswvbISW0g==
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=6/zcI5Qmu0wXQ9glxrzYsweQzRKOF0bxng92x4/BVJ8=;
 b=ajJ3dsmjCyZvZTW9hPzX50nbw1ulpDy78EaWG0qHx0f2GHs8CPcNJBcHsStvC+icpL3It+HqWc6wgLEL92xhQvQVpqAI2Oibasupx/oRRIy4kMZpSMb4hnd/vZlEGN4cXO6KANh6GmldlH9+NO3AJ4vPgcYtyel3Gy84dF5TeT4=
Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19)
 by DM6PR11MB3019.namprd11.prod.outlook.com (2603:10b6:5:67::27) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18; Mon, 11 Oct
 2021 15:15:06 +0000
Received: from DM6PR11MB4491.namprd11.prod.outlook.com
 ([fe80::740e:126e:c785:c8fd]) by DM6PR11MB4491.namprd11.prod.outlook.com
 ([fe80::740e:126e:c785:c8fd%4]) with mapi id 15.20.4587.026; Mon, 11 Oct 2021
 15:15:06 +0000
From: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>
To: fengchengwen <fengchengwen@huawei.com>, "dev@dpdk.org" <dev@dpdk.org>
CC: "Li, Xiaoyun" <xiaoyun.li@intel.com>, "anoobj@marvell.com"
 <anoobj@marvell.com>, "jerinj@marvell.com" <jerinj@marvell.com>,
 "ndabilpuram@marvell.com" <ndabilpuram@marvell.com>, "adwivedi@marvell.com"
 <adwivedi@marvell.com>, "shepard.siegel@atomicrules.com"
 <shepard.siegel@atomicrules.com>, "ed.czeck@atomicrules.com"
 <ed.czeck@atomicrules.com>, "john.miller@atomicrules.com"
 <john.miller@atomicrules.com>, "irusskikh@marvell.com"
 <irusskikh@marvell.com>, "ajit.khaparde@broadcom.com"
 <ajit.khaparde@broadcom.com>, "somnath.kotur@broadcom.com"
 <somnath.kotur@broadcom.com>, "rahul.lakkireddy@chelsio.com"
 <rahul.lakkireddy@chelsio.com>, "hemant.agrawal@nxp.com"
 <hemant.agrawal@nxp.com>, "sachin.saxena@oss.nxp.com"
 <sachin.saxena@oss.nxp.com>, "Wang, Haiyue" <haiyue.wang@intel.com>, "Daley,
 John" <johndale@cisco.com>, "hyonkim@cisco.com" <hyonkim@cisco.com>, "Zhang,
 Qi Z" <qi.z.zhang@intel.com>, "Wang, Xiao W" <xiao.w.wang@intel.com>,
 "humin29@huawei.com" <humin29@huawei.com>, "yisen.zhuang@huawei.com"
 <yisen.zhuang@huawei.com>, "oulijun@huawei.com" <oulijun@huawei.com>, "Xing,
 Beilei" <beilei.xing@intel.com>, "Wu, Jingjing" <jingjing.wu@intel.com>,
 "Yang, Qiming" <qiming.yang@intel.com>, "matan@nvidia.com"
 <matan@nvidia.com>, "viacheslavo@nvidia.com" <viacheslavo@nvidia.com>,
 "sthemmin@microsoft.com" <sthemmin@microsoft.com>, "longli@microsoft.com"
 <longli@microsoft.com>, "heinrich.kuhn@corigine.com"
 <heinrich.kuhn@corigine.com>, "kirankumark@marvell.com"
 <kirankumark@marvell.com>, "andrew.rybchenko@oktetlabs.ru"
 <andrew.rybchenko@oktetlabs.ru>, "mczekaj@marvell.com" <mczekaj@marvell.com>, 
 "jiawenwu@trustnetic.com" <jiawenwu@trustnetic.com>,
 "jianwang@trustnetic.com" <jianwang@trustnetic.com>,
 "maxime.coquelin@redhat.com" <maxime.coquelin@redhat.com>, "Xia, Chenbo"
 <chenbo.xia@intel.com>, "thomas@monjalon.net" <thomas@monjalon.net>, "Yigit,
 Ferruh" <ferruh.yigit@intel.com>, "mdr@ashroe.eu" <mdr@ashroe.eu>,
 "Jayatheerthan, Jay" <jay.jayatheerthan@intel.com>
Thread-Topic: [dpdk-dev] [PATCH v5 4/7] ethdev: copy fast-path API into
 separate structure
Thread-Index: AQHXu26d2sVAYi4MqUOUZ4ldz5VxXavKlP6AgAMo2RA=
Date: Mon, 11 Oct 2021 15:15:06 +0000
Message-ID: <DM6PR11MB4491085BA520561A8AE87D229AB59@DM6PR11MB4491.namprd11.prod.outlook.com>
References: <20211004135603.20593-1-konstantin.ananyev@intel.com>
 <20211007112750.25526-1-konstantin.ananyev@intel.com>
 <20211007112750.25526-5-konstantin.ananyev@intel.com>
 <4c57bb9d-21d6-0722-92b8-987283bb8fe6@huawei.com>
In-Reply-To: <4c57bb9d-21d6-0722-92b8-987283bb8fe6@huawei.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
dlp-product: dlpe-windows
dlp-reaction: no-action
dlp-version: 11.6.200.16
authentication-results: huawei.com; dkim=none (message not signed)
 header.d=none;huawei.com; dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: bbac6f6f-ec98-4500-4a27-08d98cc9e885
x-ms-traffictypediagnostic: DM6PR11MB3019:
x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <DM6PR11MB3019B9CA9A020491ECE834079AB59@DM6PR11MB3019.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:5797;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: cplQTzd51uoH5iGsFhYvKiDrmzmP0HuVLgZoimHyqyhb+JY8mB77iholuNmffxfdis4gabOSoECUIqOB8QWjEebkiHmsgqhEITO4U5Qze1ejQoJqYRXTQKs1Dh+n5FERIDEs1OfwXpJ3bG7VgOVkaa49gPMz8LErWHLMBq7fjNyZ6UbwtFcBM3GwRbemw9dvEFRy0HwuW6A95QFFY5YLp8pXwrazFy92w4DkImg0kvdZ+tbcZxQC7XYO28lQx6BE+UxVPPVeKyb5g6keK+h2ZayuJBhH3zw2GXy5TpDSqspIHDQU/26ZlzW+90CBZC89ou39O9hEZ8Jjo0c4DEAZ5KmfjUqcVD8GFcqA1tMYBaCCTenEL57xnW1AhWxBIsH2veLSVtBQfxDyJtWUIUGm79lP0VNaBVgWuktsZTgdZDpYUtwtL45bKj9/xtuPPQ/WVuFRikPVDMtEdJDVKu+2R8UD4ZfQETa4P0GBY6ItO/nsZN6wsrp+UTFk32r6M7o7T/wzCsf31PDHFAJ2nvkfWmF1zvNZ5f4Tr9Q4UY9awyOJ/u1uymaw7EpoN1c6IfIVxOOmfA+L0hYi//fo5cgK0tiveAr89y7GeC2pDshg76ds5Zb2cK4BDVUUUXQCoRd1aBcrSMBy8UU7pRvQYpMPiMjkNsyxRTB42DBJASjarJuDzCieK3UU5ycdeCUqRmWdVdOdAveZ2a8scvjHti9oTg==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(4636009)(366004)(2906002)(66946007)(66446008)(66476007)(66556008)(64756008)(508600001)(38100700002)(122000001)(316002)(83380400001)(7696005)(6506007)(9686003)(38070700005)(76116006)(55016002)(30864003)(54906003)(86362001)(8936002)(52536014)(26005)(7406005)(7416002)(55236004)(186003)(4326008)(8676002)(110136005)(107886003)(5660300002)(71200400001)(33656002);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aTJsekpKZlpUM3RYMTlOMnVPSU5McFZVRGR4Skc0dm1vZmFWaVlMREQ4QXU5?=
 =?utf-8?B?ZURsNmVFSG1HTzJtb2F2dzUwNWhpbTVrbmVaMTlMa1ZQeWkxRWpkQU9xTlpP?=
 =?utf-8?B?dnpCN3grWTlCbVAzMnV2bW4wTjFMQXBIVW90bHRrNEZXdXc3RElVSEQ1YnFN?=
 =?utf-8?B?bG5yM1VvZGlmbFR4RUNSbjlmcEdYRFYvRkZqdEcrMjk0MGJzVjd1VE51bGJT?=
 =?utf-8?B?dXNxRlQ1Zmx3ei9rZDJQcG9OcDJkaWFHaEtaV3RJdUZJbDlYUUZkci9zOTBq?=
 =?utf-8?B?NjBzcFNBK2xKSWlhWTZsVzNlUW1XYWxvYzNQUFN0RHh6aUZzWXU5S3lWRzNx?=
 =?utf-8?B?UWppZ1dobHVJdUczVGlEcWZrV2t4VlFuOFlLSDBqMkt3SnJ6N1pVZDh4L1Zr?=
 =?utf-8?B?MmFOeU1IbHVDMjJVaFZ4WW9PSUxlZEpmOUFXZ1d1WTdlbkd3Znl1RXJoL2Mv?=
 =?utf-8?B?RmdCaGV6RExMcC9MZEh5d0t2K0V6TlVKVWkxVUlMeTFHUmE5aU12cXg0UEVt?=
 =?utf-8?B?cTBEYXhUTDFmZVFnb3VHZWlVTXpEb3N1Q1VwYU5LY1c3QzJJM0hWcDh6NitZ?=
 =?utf-8?B?M3FWalBHbWVjdno3MEZzdXY4dkxZOXZxeUlHbkk1RmhuYjJTRFhoMm5nenRv?=
 =?utf-8?B?bGNRcFlibFpRei9RT2htOVAxSWtOZHNoWDVVUVp6aVQ3ZUE4b21DeVByNlVO?=
 =?utf-8?B?bWhGM00ybFBOMkQ5Mi82SnlVWEtRTklYeW9haUl6TFBocjBERjlVR21NTXJ4?=
 =?utf-8?B?bW5neXdodlFZRzQ4ZWs4Ym5TNDBNbzczWjB4VHRsK3oyUjdYVndwRDlRTEkx?=
 =?utf-8?B?ZDFxVzNwaUExTW1PV0Nldk96cVVMcklFL2JaM0pHVW1ZWUJ4cGxveTRJd21U?=
 =?utf-8?B?RitZTXA3K0ZFdWhCSWk2MjF6WUNDNXU3RHZteW1paWt4b0h0MHNyVWF1b0VP?=
 =?utf-8?B?SUF2NDY5U1JJNHUwSFJKKzFsMW1MTTFYaklMd3o3SjVCaDVCNHp4aFR5S0hG?=
 =?utf-8?B?V1BWWjE5RDIxd1RsU2RjRjlicXd0dndZU1psbWxBbGhRaVZaeXdzQTlDb29S?=
 =?utf-8?B?VWlGbzh5a2wyMzJJRG94d2d0MWxaWk9URCt0N2EzU1gwcHRxNTZtaVhkZlBo?=
 =?utf-8?B?b1dHMWh6a0xiZGhJd01GOGo1OERpOTJYdEI4anRTN2pwYVJGUTZ3L2FnSGlQ?=
 =?utf-8?B?Ny8yR2pLWUxnL2xFY0I0TXc1Z2FabXRNbk9nbHpNVlZUUWE3c1creWlNV0pt?=
 =?utf-8?B?STVPOE9rUjU4TVJLK2pDWkN2OFZOOHgzWU1KeGV3ZnplOHhOUXR3V1pjcDkv?=
 =?utf-8?B?NjFBWEM0N05aazVBTnNBNzRBY01RVVJTK0dLM0luR3JoMnIyRFkrdGpmNmxi?=
 =?utf-8?B?NEZGQkZWWWordWVIMXdjZmFkcjNCbW8xNGplYjFZOGFrVHFkcVV2Rk0wbUhL?=
 =?utf-8?B?VWJuVEphdVJvMmFDaFRVMTFmUXhiSW5BUzNPN005cGlQTzlBby9BeFFqNEhh?=
 =?utf-8?B?RDVPVFBvT0d0aXNTL0hhbm9yMlR2SjdJVGNRLzJjUWNJVWdjdERkcFlCUCtV?=
 =?utf-8?B?Y3RzNWRjUVErcnNPNnVWOWR0cGZlSFB5T2FFOGM3WU5XNGlSNHdGK3hxdGRC?=
 =?utf-8?B?WDhuMUV0NGJ3WEtOakRnVVVwdE91Qi9Lck5uSzBhcmNBQjdpZUoyb2IzRlVH?=
 =?utf-8?B?Rmk4SXFLdFNQeEZCMjc2NFJqbmUxKzl5amVnTDFVU2RtVHVMbmY5Z0JzZjBp?=
 =?utf-8?Q?mcTq+M8EJMZUFZ0iOViVpnDYgedDIYWJEHqojuC?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4491.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bbac6f6f-ec98-4500-4a27-08d98cc9e885
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Oct 2021 15:15:06.5081 (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: 0YVsFMEFILky9kmZ2VdwMK0FA+AH9abrWz3aDRm4Gn5F3er78rToyYLAehQI05EEfH8VbH6mruK0k0zTHK9/KaN+giYBfZm2ZMOkHf57R+I=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3019
X-OriginatorOrg: intel.com
Subject: Re: [dpdk-dev] [PATCH v5 4/7] ethdev: copy fast-path API into
 separate structure
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
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>

DQo+ID4gQ29weSBwdWJsaWMgZnVuY3Rpb24gcG9pbnRlcnMgKHJ4X3BrdF9idXJzdCgpLCBldGMu
KSBhbmQgcmVsYXRlZA0KPiA+IHBvaW50ZXJzIHRvIGludGVybmFsIGRhdGEgZnJvbSBydGVfZXRo
X2RldiBzdHJ1Y3R1cmUgaW50byBhDQo+ID4gc2VwYXJhdGUgZmxhdCBhcnJheS4gVGhhdCBhcnJh
eSB3aWxsIHJlbWFpbiBpbiBhIHB1YmxpYyBoZWFkZXIuDQo+ID4gVGhlIGludGVudGlvbiBoZXJl
IGlzIHRvIG1ha2UgcnRlX2V0aF9kZXYgYW5kIHJlbGF0ZWQgc3RydWN0dXJlcyBpbnRlcm5hbC4N
Cj4gPiBUaGF0IHNob3VsZCBhbGxvdyBmdXR1cmUgcG9zc2libGUgY2hhbmdlcyB0byBjb3JlIGV0
aF9kZXYgc3RydWN0dXJlcw0KPiA+IHRvIGJlIHRyYW5zcGFyZW50IHRvIHRoZSB1c2VyIGFuZCBo
ZWxwIHRvIGF2b2lkIEFCSS9BUEkgYnJlYWthZ2VzLg0KPiA+IFRoZSBwbGFuIGlzIHRvIGtlZXAg
bWluaW1hbCBwYXJ0IG9mIGRhdGEgZnJvbSBydGVfZXRoX2RldiBwdWJsaWMsDQo+ID4gc28gd2Ug
c3RpbGwgY2FuIHVzZSBpbmxpbmUgZnVuY3Rpb25zIGZvciBmYXN0LXBhdGggY2FsbHMNCj4gPiAo
bGlrZSBydGVfZXRoX3J4X2J1cnN0KCksIGV0Yy4pIHRvIGF2b2lkL21pbmltaXplIHNsb3dkb3du
Lg0KPiA+IFRoZSB3aG9sZSBpZGVhIGJleW9uZCB0aGlzIG5ldyBzY2hlbWE6DQo+ID4gMS4gUE1E
cyBrZWVwIHRvIHNldHVwIGZhc3QtcGF0aCBmdW5jdGlvbiBwb2ludGVycyBhbmQgcmVsYXRlZCBk
YXRhDQo+ID4gICAgaW5zaWRlIHJ0ZV9ldGhfZGV2IHN0cnVjdCBpbiB0aGUgc2FtZSB3YXkgdGhl
eSBkaWQgaXQgYmVmb3JlLg0KPiA+IDIuIEluc2lkZSBydGVfZXRoX2Rldl9zdGFydCgpIGFuZCBp
bnNpZGUgcnRlX2V0aF9kZXZfcHJvYmluZ19maW5pc2goKQ0KPiA+ICAgIChmb3Igc2Vjb25kYXJ5
IHByb2Nlc3MpIHdlIGNhbGwgZXRoX2Rldl9mcF9vcHNfc2V0dXAsIHdoaWNoDQo+ID4gICAgY29w
aWVzIHRoZXNlIGZ1bmN0aW9uIGFuZCBkYXRhIHBvaW50ZXJzIGludG8gcnRlX2V0aF9mcF9vcHNb
cG9ydF9pZF0uDQo+ID4gMy4gSW5zaWRlIHJ0ZV9ldGhfZGV2X3N0b3AoKSBhbmQgaW5zaWRlIHJ0
ZV9ldGhfZGV2X3JlbGVhc2VfcG9ydCgpDQo+ID4gICAgd2UgY2FsbCBldGhfZGV2X2ZwX29wc19y
ZXNldCgpLCB3aGljaCByZXNldHMgcnRlX2V0aF9mcF9vcHNbcG9ydF9pZF0NCj4gPiAgICBpbnRv
IHNvbWUgZHVtbXkgdmFsdWVzLg0KPiA+IDQuIGZhc3QtcGF0aCBldGhkZXYgQVBJIChydGVfZXRo
X3J4X2J1cnN0KCksIGV0Yy4pIHdpbGwgdXNlIHRoYXQgbmV3DQo+ID4gICAgZmxhdCBhcnJheSB0
byBjYWxsIFBNRCBzcGVjaWZpYyBmdW5jdGlvbnMuDQo+ID4gVGhhdCBhcHByb2FjaCBzaG91bGQg
YWxsb3cgdXMgdG8gbWFrZSBydGVfZXRoX2RldmljZXNbXSBwcml2YXRlDQo+ID4gd2l0aG91dCBp
bnRyb2R1Y2luZyByZWdyZXNzaW9uIGFuZCBoZWxwIHRvIGF2b2lkIGNoYW5nZXMgaW4gZHJpdmVy
cyBjb2RlLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogS29uc3RhbnRpbiBBbmFueWV2IDxrb25z
dGFudGluLmFuYW55ZXZAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBsaWIvZXRoZGV2L2V0aGRl
dl9wcml2YXRlLmMgIHwgNTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+
ICBsaWIvZXRoZGV2L2V0aGRldl9wcml2YXRlLmggIHwgIDcgKysrKysNCj4gPiAgbGliL2V0aGRl
di9ydGVfZXRoZGV2LmMgICAgICB8IDI3ICsrKysrKysrKysrKysrKysrKw0KPiA+ICBsaWIvZXRo
ZGV2L3J0ZV9ldGhkZXZfY29yZS5oIHwgNTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrDQo+ID4gIDQgZmlsZXMgY2hhbmdlZCwgMTQxIGluc2VydGlvbnMoKykNCj4gPg0KPiA+
IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L2V0aGRldl9wcml2YXRlLmMgYi9saWIvZXRoZGV2L2V0
aGRldl9wcml2YXRlLmMNCj4gPiBpbmRleCAwMTJjZjczY2EyLi4zZWVkYTZlOWY5IDEwMDY0NA0K
PiA+IC0tLSBhL2xpYi9ldGhkZXYvZXRoZGV2X3ByaXZhdGUuYw0KPiA+ICsrKyBiL2xpYi9ldGhk
ZXYvZXRoZGV2X3ByaXZhdGUuYw0KPiA+IEBAIC0xNzQsMyArMTc0LDU1IEBAIHJ0ZV9ldGhfZGV2
YXJnc19wYXJzZV9yZXByZXNlbnRvcl9wb3J0cyhjaGFyICpzdHIsIHZvaWQgKmRhdGEpDQo+ID4g
IAkJUlRFX0xPRyhFUlIsIEVBTCwgIndyb25nIHJlcHJlc2VudG9yIGZvcm1hdDogJXNcbiIsIHN0
cik7DQo+ID4gIAlyZXR1cm4gc3RyID09IE5VTEwgPyAtMSA6IDA7DQo+ID4gIH0NCj4gPiArDQo+
ID4gK3N0YXRpYyB1aW50MTZfdA0KPiA+ICtkdW1teV9ldGhfcnhfYnVyc3QoX19ydGVfdW51c2Vk
IHZvaWQgKnJ4cSwNCj4gPiArCQlfX3J0ZV91bnVzZWQgc3RydWN0IHJ0ZV9tYnVmICoqcnhfcGt0
cywNCj4gPiArCQlfX3J0ZV91bnVzZWQgdWludDE2X3QgbmJfcGt0cykNCj4gPiArew0KPiA+ICsJ
UlRFX0VUSERFVl9MT0coRVJSLCAicnhfcGt0X2J1cnN0IGZvciB1bmNvbmZpZ3VyZWQgcG9ydFxu
Iik7DQo+ID4gKwlydGVfZXJybm8gPSBFTk9UU1VQOw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30N
Cj4gPiArDQo+ID4gK3N0YXRpYyB1aW50MTZfdA0KPiA+ICtkdW1teV9ldGhfdHhfYnVyc3QoX19y
dGVfdW51c2VkIHZvaWQgKnR4cSwNCj4gPiArCQlfX3J0ZV91bnVzZWQgc3RydWN0IHJ0ZV9tYnVm
ICoqdHhfcGt0cywNCj4gPiArCQlfX3J0ZV91bnVzZWQgdWludDE2X3QgbmJfcGt0cykNCj4gPiAr
ew0KPiA+ICsJUlRFX0VUSERFVl9MT0coRVJSLCAidHhfcGt0X2J1cnN0IGZvciB1bmNvbmZpZ3Vy
ZWQgcG9ydFxuIik7DQo+ID4gKwlydGVfZXJybm8gPSBFTk9UU1VQOw0KPiA+ICsJcmV0dXJuIDA7
DQo+ID4gK30NCj4gPiArDQo+ID4gK3ZvaWQNCj4gPiArZXRoX2Rldl9mcF9vcHNfcmVzZXQoc3Ry
dWN0IHJ0ZV9ldGhfZnBfb3BzICpmcG8pDQo+IA0KPiBUaGUgcG9ydF9pZCBwYXJhbWV0ZXIgaXMg
cHJlZmVyYWJsZSwgdGhpcyB3aWxsIGhpZGUgcnRlX2V0aF9mcF9vcHMgYXMgbXVjaCBhcyBwb3Nz
aWJsZS4NCg0KV2h5IGRvIHdlIG5lZWQgdG8gaGlkZSBpdCBoZXJlPw0KcnRlX2V0aF9mcF9vcHMg
aXMgYSBwdWJsaWMgc3RydWN0dXJlLCBhbmQgaXQgaXMgYSBoZWxwZXIgZnVuY3Rpb24gdGhhdA0K
anVzdCByZXNldHMgZmllbGRzIG9mIHRoaXMgc3RydWN0dXJlIHRvIHNvbWUgcHJlZGVmaW5lZCBk
dW1teSB2YWx1ZXMuDQpOaWNlIGFuZCBzaW1wbGUsIHNvIEkgcHJlZmVyIHRvIGtlZXAgaXQgbGlr
ZSB0aGF0LiANCg0KPiANCj4gPiArew0KPiA+ICsJc3RhdGljIHZvaWQgKmR1bW15X2RhdGFbUlRF
X01BWF9RVUVVRVNfUEVSX1BPUlRdOw0KPiA+ICsJc3RhdGljIGNvbnN0IHN0cnVjdCBydGVfZXRo
X2ZwX29wcyBkdW1teV9vcHMgPSB7DQo+ID4gKwkJLnJ4X3BrdF9idXJzdCA9IGR1bW15X2V0aF9y
eF9idXJzdCwNCj4gPiArCQkudHhfcGt0X2J1cnN0ID0gZHVtbXlfZXRoX3R4X2J1cnN0LA0KPiA+
ICsJCS5yeHEgPSB7LmRhdGEgPSBkdW1teV9kYXRhLCAuY2xiayA9IGR1bW15X2RhdGEsfSwNCj4g
PiArCQkudHhxID0gey5kYXRhID0gZHVtbXlfZGF0YSwgLmNsYmsgPSBkdW1teV9kYXRhLH0sDQo+
ID4gKwl9Ow0KPiA+ICsNCj4gPiArCSpmcG8gPSBkdW1teV9vcHM7DQo+ID4gK30NCj4gPiArDQo+
ID4gK3ZvaWQNCj4gPiArZXRoX2Rldl9mcF9vcHNfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZnBfb3Bz
ICpmcG8sDQo+ID4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+IA0KPiBCZWNh
dXNlIGZwX29wcyBhbmQgZXRoX2RldiBpcyBhIG9uZS10by1vbmUgY29ycmVzcG9uZGVuY2UuIEl0
J3MgYmV0dGVyIG9ubHkgdXNlDQo+IHBvcnRfaWQgcGFyYW1ldGVyLg0KDQpTYW1lIGFzIGFib3Zl
Og0KQWxsIHRoaXMgaW50ZXJuYWwgaGVscGVyIGZ1bmN0aW9uIGRvZXMgLSBjb3BpZXMgc29tZSBm
aWVsZHMgZnJvbSBvbmUgc3RydWN0dXJlIHRvIGFub3RoZXIuDQpCb3RoIHN0cnVjdHVyZXMgYXJl
IHZpc2libGUgYnkgZXRoZGV2IGxheWVyLg0KTm8gcG9pbnQgdG8gYWRkIGV4dHJhIGFzc3VtcHRp
b25zIGFuZCBjb21wbGV4aXR5IGhlcmUuIA0KDQo+IA0KPiA+ICt7DQo+ID4gKwlmcG8tPnJ4X3Br
dF9idXJzdCA9IGRldi0+cnhfcGt0X2J1cnN0Ow0KPiA+ICsJZnBvLT50eF9wa3RfYnVyc3QgPSBk
ZXYtPnR4X3BrdF9idXJzdDsNCj4gPiArCWZwby0+dHhfcGt0X3ByZXBhcmUgPSBkZXYtPnR4X3Br
dF9wcmVwYXJlOw0KPiA+ICsJZnBvLT5yeF9xdWV1ZV9jb3VudCA9IGRldi0+cnhfcXVldWVfY291
bnQ7DQo+ID4gKwlmcG8tPnJ4X2Rlc2NyaXB0b3Jfc3RhdHVzID0gZGV2LT5yeF9kZXNjcmlwdG9y
X3N0YXR1czsNCj4gPiArCWZwby0+dHhfZGVzY3JpcHRvcl9zdGF0dXMgPSBkZXYtPnR4X2Rlc2Ny
aXB0b3Jfc3RhdHVzOw0KPiA+ICsNCj4gPiArCWZwby0+cnhxLmRhdGEgPSBkZXYtPmRhdGEtPnJ4
X3F1ZXVlczsNCj4gPiArCWZwby0+cnhxLmNsYmsgPSAodm9pZCAqKikodWludHB0cl90KWRldi0+
cG9zdF9yeF9idXJzdF9jYnM7DQo+ID4gKw0KPiA+ICsJZnBvLT50eHEuZGF0YSA9IGRldi0+ZGF0
YS0+dHhfcXVldWVzOw0KPiA+ICsJZnBvLT50eHEuY2xiayA9ICh2b2lkICoqKSh1aW50cHRyX3Qp
ZGV2LT5wcmVfdHhfYnVyc3RfY2JzOw0KPiA+ICt9DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9ldGhk
ZXYvZXRoZGV2X3ByaXZhdGUuaCBiL2xpYi9ldGhkZXYvZXRoZGV2X3ByaXZhdGUuaA0KPiA+IGlu
ZGV4IDM3MjQ0Mjk1NzcuLjU3MjFiZTdiZGMgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2V0aGRldi9l
dGhkZXZfcHJpdmF0ZS5oDQo+ID4gKysrIGIvbGliL2V0aGRldi9ldGhkZXZfcHJpdmF0ZS5oDQo+
ID4gQEAgLTI2LDQgKzI2LDExIEBAIGV0aF9maW5kX2RldmljZShjb25zdCBzdHJ1Y3QgcnRlX2V0
aF9kZXYgKl9zdGFydCwgcnRlX2V0aF9jbXBfdCBjbXAsDQo+ID4gIC8qIFBhcnNlIGRldmFyZ3Mg
dmFsdWUgZm9yIHJlcHJlc2VudG9yIHBhcmFtZXRlci4gKi8NCj4gPiAgaW50IHJ0ZV9ldGhfZGV2
YXJnc19wYXJzZV9yZXByZXNlbnRvcl9wb3J0cyhjaGFyICpzdHIsIHZvaWQgKmRhdGEpOw0KPiA+
DQo+ID4gKy8qIHJlc2V0IGV0aCBmYXN0LXBhdGggQVBJIHRvIGR1bW15IHZhbHVlcyAqLw0KPiA+
ICt2b2lkIGV0aF9kZXZfZnBfb3BzX3Jlc2V0KHN0cnVjdCBydGVfZXRoX2ZwX29wcyAqZnBvKTsN
Cj4gPiArDQo+ID4gKy8qIHNldHVwIGV0aCBmYXN0LXBhdGggQVBJIHRvIGV0aGRldiB2YWx1ZXMg
Ki8NCj4gPiArdm9pZCBldGhfZGV2X2ZwX29wc19zZXR1cChzdHJ1Y3QgcnRlX2V0aF9mcF9vcHMg
KmZwbywNCj4gPiArCQljb25zdCBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik7DQo+IA0KPiBTb21l
IGRyaXZlcnMgY29udHJvbCB0aGUgdHJhbnNtaXQvcmVjZWl2ZSBmdW5jdGlvbiBkdXJpbmcgb3Bl
cmF0aW9uLiBFLmcuDQo+IGZvciBobnMzIGRyaXZlciwgd2hlbiBkZXRlY3QgcmVzZXQsIHByaW1h
cnkgcHJvY2VzcyB3aWxsIHNldCByeC90eCBidXJzdCB0byBkdW1teSwgYWZ0ZXINCj4gcHJvY2Vz
cyByZXNldCwgcHJpbWFyeSBwcm9jZXNzIHdpbGwgc2V0IHRoZSBjb3JyZWN0IHJ4L3R4IGJ1cnN0
LiBEdXJpbmcgdGhpcyBwcm9jZXNzLCB0aGUNCj4gc2VuZCBhbmQgcmVjZWl2ZSB0aHJlYWRzIGFy
ZSBzdGlsbCB3b3JraW5nLCBidXQgdGhlIGJ1cnN0cyB0aGV5IGNhbGwgYXJlIGNoYW5nZWQuIFNv
Og0KDQpUaGlzIHRleHQgYWJvdmUgaXMgYSBiaXQgdG9vIGNyeXB0aWMgZm9yIG1lLi4uDQpBcmUg
eW91IHNheWluZyB0aGF0IHlvdXIgZHJpdmVyIGNoYW5nZXMgcnRlX2V0aF9kZXYucnhfcGt0X2J1
cnN0KC8gdHhfcGt0X2J1cnN0KSBvbiB0aGUgZmx5DQooYWZ0ZXIgZGV2X3N0YXJ0KCkgYW5kIGJl
Zm9yZSBkZXZfc3RvcCgpKT8NCklmIHNvLCB0aGVuIGdlbmVyYWxseSBzcGVha2luZywgaXQgaXMg
YSBiYWQgaWRlYS4NCldoaWxlIGl0IG1pZ2h0IHdvcmtzIGZvciBzb21lIGxpbWl0ZWQgc2NlbmFy
aW9zLCByaWdodCBub3cgaXQgaXMgbm90IHN1cHBvcnRlZCBieSBldGhkZXYgZnJhbWV3b3JrLA0K
YW5kIG1pZ2h0IGludHJvZHVjZSBhIGxvdCBvZiBwcm9ibGVtcy4gDQoNCj4gMS4gaXQgaXMgcmVj
b21tZW5kZWQgdGhhdCB0cmFjZSBiZSBkZWxldGVkIGZyb20gdGhlIGR1bW15IGZ1bmN0aW9uLg0K
DQpZb3UgYXJlIHRhbGtpbmcgYWJvdXQ6DQpSVEVfRVRIREVWX0xPRyhFUlIsICJyeF9wa3RfYnVy
c3QgZm9yIHVuY29uZmlndXJlZCBwb3J0XG4iKTsNCnJpZ2h0Pw0KRHVtbXkgZnVuY3Rpb24gaXMg
c3VwcG9zZWQgdG8gYmUgc2V0IG9ubHkgd2hlbiBkZXZpY2UgaXMgbm90IGFibGUgdG8gZG8gUlgv
VFggcHJvcGVybHkNCihub3QgYXR0YWNoZWQsIG9yIGF0dGFjaGVkIGJ1dCBub3QgY29uZmlndXJl
ZCwgb3IgYXR0YWNoZWQgYW5kIGNvbmZpZ3VyZWQsIGJ1dCBub3Qgc3RhcnRlZCkuDQpPYnZpb3Vz
bHkgaWYgYXBwIGNhbGxzIHJ4L3R4X2J1cnN0IGZvciBzdWNoIHBvcnQgaXQgaXMgYSBtYWpvciBp
c3N1ZSwgdGhhdCBzaG91bGQgYmUgZmxhZ2dlZCBpbWVtZGlhdGVsbHkuDQpTbyBJIGJlbGlldmUg
aGF2aW5nIGxvZyBoZXJlIG1ha2VzIGEgcGVyZmVjdCBzZW5zZSBoZXJlLiANCg0KPiAyLiBwdWJs
aWMgdGhlIGV0aF9kZXZfZnBfb3BzX3Jlc2V0L3NldHVwIGludGVyZmFjZSBmb3IgZHJpdmVyIHVz
YWdlLg0KDQpZb3UgbWVhbiBtb3ZlIHRoZWlyIGRlY2xhcmF0aW9ucyBpbnRvIGV0aGRldl9kcml2
ZXIuaD8NCkkgc3VwcG9zZSB0aGF0IGNvdWxkIGJlIGRvbmUsIGJ1dCBzdGlsbCB3b25kZXIgd2h5
IGRyaXZlciB3b3VsZCBuZWVkIHRvDQpjYWxsIHRoZXNlIGZ1bmN0aW9ucyBkaXJlY3RseT8NCiAN
Cj4gPiArDQo+ID4gICNlbmRpZiAvKiBfRVRIX1BSSVZBVEVfSF8gKi8NCj4gPiBkaWZmIC0tZ2l0
IGEvbGliL2V0aGRldi9ydGVfZXRoZGV2LmMgYi9saWIvZXRoZGV2L3J0ZV9ldGhkZXYuYw0KPiA+
IGluZGV4IGM4YWJkYTZkZDcuLjlmN2EwY2JiOGMgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2V0aGRl
di9ydGVfZXRoZGV2LmMNCj4gPiArKysgYi9saWIvZXRoZGV2L3J0ZV9ldGhkZXYuYw0KPiA+IEBA
IC00NCw2ICs0NCw5IEBADQo+ID4gIHN0YXRpYyBjb25zdCBjaGFyICpNWl9SVEVfRVRIX0RFVl9E
QVRBID0gInJ0ZV9ldGhfZGV2X2RhdGEiOw0KPiA+ICBzdHJ1Y3QgcnRlX2V0aF9kZXYgcnRlX2V0
aF9kZXZpY2VzW1JURV9NQVhfRVRIUE9SVFNdOw0KPiA+DQo+ID4gKy8qIHB1YmxpYyBmYXN0LXBh
dGggQVBJICovDQo+ID4gK3N0cnVjdCBydGVfZXRoX2ZwX29wcyBydGVfZXRoX2ZwX29wc1tSVEVf
TUFYX0VUSFBPUlRTXTsNCj4gPiArDQo+ID4gIC8qIHNwaW5sb2NrIGZvciBldGggZGV2aWNlIGNh
bGxiYWNrcyAqLw0KPiA+ICBzdGF0aWMgcnRlX3NwaW5sb2NrX3QgZXRoX2Rldl9jYl9sb2NrID0g
UlRFX1NQSU5MT0NLX0lOSVRJQUxJWkVSOw0KPiA+DQo+ID4gQEAgLTU3OCw2ICs1ODEsOCBAQCBy
dGVfZXRoX2Rldl9yZWxlYXNlX3BvcnQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KQ0KPiA+
ICAJCXJ0ZV9ldGhfZGV2X2NhbGxiYWNrX3Byb2Nlc3MoZXRoX2RldiwNCj4gPiAgCQkJCVJURV9F
VEhfRVZFTlRfREVTVFJPWSwgTlVMTCk7DQo+ID4NCj4gPiArCWV0aF9kZXZfZnBfb3BzX3Jlc2V0
KHJ0ZV9ldGhfZnBfb3BzICsgZXRoX2Rldi0+ZGF0YS0+cG9ydF9pZCk7DQo+ID4gKw0KPiA+ICAJ
cnRlX3NwaW5sb2NrX2xvY2soJmV0aF9kZXZfc2hhcmVkX2RhdGEtPm93bmVyc2hpcF9sb2NrKTsN
Cj4gPg0KPiA+ICAJZXRoX2Rldi0+c3RhdGUgPSBSVEVfRVRIX0RFVl9VTlVTRUQ7DQo+ID4gQEAg
LTE3ODcsNiArMTc5Miw5IEBAIHJ0ZV9ldGhfZGV2X3N0YXJ0KHVpbnQxNl90IHBvcnRfaWQpDQo+
ID4gIAkJKCpkZXYtPmRldl9vcHMtPmxpbmtfdXBkYXRlKShkZXYsIDApOw0KPiA+ICAJfQ0KPiA+
DQo+ID4gKwkvKiBleHBvc2Ugc2VsZWN0aW9uIG9mIFBNRCBmYXN0LXBhdGggZnVuY3Rpb25zICov
DQo+ID4gKwlldGhfZGV2X2ZwX29wc19zZXR1cChydGVfZXRoX2ZwX29wcyArIHBvcnRfaWQsIGRl
dik7DQo+ID4gKw0KPiA+ICAJcnRlX2V0aGRldl90cmFjZV9zdGFydChwb3J0X2lkKTsNCj4gPiAg
CXJldHVybiAwOw0KPiA+ICB9DQo+ID4gQEAgLTE4MDksNiArMTgxNyw5IEBAIHJ0ZV9ldGhfZGV2
X3N0b3AodWludDE2X3QgcG9ydF9pZCkNCj4gPiAgCQlyZXR1cm4gMDsNCj4gPiAgCX0NCj4gPg0K
PiA+ICsJLyogcG9pbnQgZmFzdC1wYXRoIGZ1bmN0aW9ucyB0byBkdW1teSBvbmVzICovDQo+ID4g
KwlldGhfZGV2X2ZwX29wc19yZXNldChydGVfZXRoX2ZwX29wcyArIHBvcnRfaWQpOw0KPiA+ICsN
Cj4gPiAgCWRldi0+ZGF0YS0+ZGV2X3N0YXJ0ZWQgPSAwOw0KPiA+ICAJcmV0ID0gKCpkZXYtPmRl
dl9vcHMtPmRldl9zdG9wKShkZXYpOw0KPiA+ICAJcnRlX2V0aGRldl90cmFjZV9zdG9wKHBvcnRf
aWQsIHJldCk7DQo+ID4gQEAgLTQ1NjcsNiArNDU3OCwxNCBAQCBydGVfZXRoX21pcnJvcl9ydWxl
X3Jlc2V0KHVpbnQxNl90IHBvcnRfaWQsIHVpbnQ4X3QgcnVsZV9pZCkNCj4gPiAgCXJldHVybiBl
dGhfZXJyKHBvcnRfaWQsICgqZGV2LT5kZXZfb3BzLT5taXJyb3JfcnVsZV9yZXNldCkoZGV2LCBy
dWxlX2lkKSk7DQo+ID4gIH0NCj4gPg0KPiA+ICtSVEVfSU5JVChldGhfZGV2X2luaXRfZnBfb3Bz
KQ0KPiA+ICt7DQo+ID4gKwl1aW50MzJfdCBpOw0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkg
IT0gUlRFX0RJTShydGVfZXRoX2ZwX29wcyk7IGkrKykNCj4gPiArCQlldGhfZGV2X2ZwX29wc19y
ZXNldChydGVfZXRoX2ZwX29wcyArIGkpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICBSVEVfSU5JVChl
dGhfZGV2X2luaXRfY2JfbGlzdHMpDQo+ID4gIHsNCj4gPiAgCXVpbnQxNl90IGk7DQo+ID4gQEAg
LTQ3MzUsNiArNDc1NCwxNCBAQCBydGVfZXRoX2Rldl9wcm9iaW5nX2ZpbmlzaChzdHJ1Y3QgcnRl
X2V0aF9kZXYgKmRldikNCj4gPiAgCWlmIChkZXYgPT0gTlVMTCkNCj4gPiAgCQlyZXR1cm47DQo+
ID4NCj4gPiArCS8qDQo+ID4gKwkgKiBmb3Igc2Vjb25kYXJ5IHByb2Nlc3MsIGF0IHRoYXQgcG9p
bnQgd2UgZXhwZWN0IGRldmljZQ0KPiA+ICsJICogdG8gYmUgYWxyZWFkeSAndXNhYmxlJywgc28g
c2hhcmVkIGRhdGEgYW5kIGFsbCBmdW5jdGlvbiBwb2ludGVycw0KPiA+ICsJICogZm9yIGZhc3Qt
cGF0aCBkZXZvcHMgaGF2ZSB0byBiZSBzZXR1cCBwcm9wZXJseSBpbnNpZGUgcnRlX2V0aF9kZXYu
DQo+ID4gKwkgKi8NCj4gPiArCWlmIChydGVfZWFsX3Byb2Nlc3NfdHlwZSgpID09IFJURV9QUk9D
X1NFQ09OREFSWSkNCj4gPiArCQlldGhfZGV2X2ZwX29wc19zZXR1cChydGVfZXRoX2ZwX29wcyAr
IGRldi0+ZGF0YS0+cG9ydF9pZCwgZGV2KTsNCj4gPiArDQo+ID4gIAlydGVfZXRoX2Rldl9jYWxs
YmFja19wcm9jZXNzKGRldiwgUlRFX0VUSF9FVkVOVF9ORVcsIE5VTEwpOw0KPiA+DQo+ID4gIAlk
ZXYtPnN0YXRlID0gUlRFX0VUSF9ERVZfQVRUQUNIRUQ7DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9l
dGhkZXYvcnRlX2V0aGRldl9jb3JlLmggYi9saWIvZXRoZGV2L3J0ZV9ldGhkZXZfY29yZS5oDQo+
ID4gaW5kZXggNTFjZDY4ZGU5NC4uZDU4NTNkZmY4NiAxMDA2NDQNCj4gPiAtLS0gYS9saWIvZXRo
ZGV2L3J0ZV9ldGhkZXZfY29yZS5oDQo+ID4gKysrIGIvbGliL2V0aGRldi9ydGVfZXRoZGV2X2Nv
cmUuaA0KPiA+IEBAIC01MCw2ICs1MCw2MSBAQCB0eXBlZGVmIGludCAoKmV0aF9yeF9kZXNjcmlw
dG9yX3N0YXR1c190KSh2b2lkICpyeHEsIHVpbnQxNl90IG9mZnNldCk7DQo+ID4gIHR5cGVkZWYg
aW50ICgqZXRoX3R4X2Rlc2NyaXB0b3Jfc3RhdHVzX3QpKHZvaWQgKnR4cSwgdWludDE2X3Qgb2Zm
c2V0KTsNCj4gPiAgLyoqPCBAaW50ZXJuYWwgQ2hlY2sgdGhlIHN0YXR1cyBvZiBhIFR4IGRlc2Ny
aXB0b3IgKi8NCj4gPg0KPiA+ICsvKioNCj4gPiArICogQGludGVybmFsDQo+ID4gKyAqIFN0cnVj
dHVyZSB1c2VkIHRvIGhvbGQgb3BhcXVlIHBvaW50ZXJzIHRvIGludGVybmFsIGV0aGRldiBSeC9U
eA0KPiA+ICsgKiBxdWV1ZXMgZGF0YS4NCj4gPiArICogVGhlIG1haW4gcHVycG9zZSB0byBleHBv
c2UgdGhlc2UgcG9pbnRlcnMgYXQgYWxsIC0gYWxsb3cgY29tcGlsZXINCj4gPiArICogdG8gZmV0
Y2ggdGhpcyBkYXRhIGZvciBmYXN0LXBhdGggZXRoZGV2IGlubGluZSBmdW5jdGlvbnMgaW4gYWR2
YW5jZS4NCj4gPiArICovDQo+ID4gK3N0cnVjdCBydGVfZXRoZGV2X3FkYXRhIHsNCj4gPiArCXZv
aWQgKipkYXRhOw0KPiA+ICsJLyoqPCBwb2ludHMgdG8gYXJyYXkgb2YgaW50ZXJuYWwgcXVldWUg
ZGF0YSBwb2ludGVycyAqLw0KPiA+ICsJdm9pZCAqKmNsYms7DQo+ID4gKwkvKio8IHBvaW50cyB0
byBhcnJheSBvZiBxdWV1ZSBjYWxsYmFjayBkYXRhIHBvaW50ZXJzICovDQo+ID4gK307DQo+ID4g
Kw0KPiA+ICsvKioNCj4gPiArICogQGludGVybmFsDQo+ID4gKyAqIGZhc3QtcGF0aCBldGhkZXYg
ZnVuY3Rpb25zIGFuZCByZWxhdGVkIGRhdGEgYXJlIGhvbGQgaW4gYSBmbGF0IGFycmF5Lg0KPiA+
ICsgKiBPbmUgZW50cnkgcGVyIGV0aGRldi4NCj4gPiArICogT24gNjQtYml0IHN5c3RlbXMgY29u
dGVudHMgb2YgdGhpcyBzdHJ1Y3R1cmUgb2NjdXB5IGV4YWN0bHkgdHdvIDY0QiBsaW5lcy4NCj4g
PiArICogT24gMzItYml0IHN5c3RlbXMgY29udGVudHMgb2YgdGhpcyBzdHJ1Y3R1cmUgZml0cyBp
bnRvIG9uZSA2NEIgbGluZS4NCj4gPiArICovDQo+ID4gK3N0cnVjdCBydGVfZXRoX2ZwX29wcyB7
DQo+ID4gKw0KPiA+ICsJLyoqDQo+ID4gKwkgKiBSeCBmYXN0LXBhdGggZnVuY3Rpb25zIGFuZCBy
ZWxhdGVkIGRhdGEuDQo+ID4gKwkgKiA2NC1iaXQgc3lzdGVtczogb2NjdXBpZXMgZmlyc3QgNjRC
IGxpbmUNCj4gPiArCSAqLw0KPiA+ICsJZXRoX3J4X2J1cnN0X3QgcnhfcGt0X2J1cnN0Ow0KPiA+
ICsJLyoqPCBQTUQgcmVjZWl2ZSBmdW5jdGlvbi4gKi8NCj4gPiArCWV0aF9yeF9xdWV1ZV9jb3Vu
dF90IHJ4X3F1ZXVlX2NvdW50Ow0KPiA+ICsJLyoqPCBHZXQgdGhlIG51bWJlciBvZiB1c2VkIFJY
IGRlc2NyaXB0b3JzLiAqLw0KPiA+ICsJZXRoX3J4X2Rlc2NyaXB0b3Jfc3RhdHVzX3QgcnhfZGVz
Y3JpcHRvcl9zdGF0dXM7DQo+ID4gKwkvKio8IENoZWNrIHRoZSBzdGF0dXMgb2YgYSBSeCBkZXNj
cmlwdG9yLiAqLw0KPiA+ICsJc3RydWN0IHJ0ZV9ldGhkZXZfcWRhdGEgcnhxOw0KPiA+ICsJLyoq
PCBSeCBxdWV1ZXMgZGF0YS4gKi8NCj4gPiArCXVpbnRwdHJfdCByZXNlcnZlZDFbM107DQo+ID4g
Kw0KPiA+ICsJLyoqDQo+ID4gKwkgKiBUeCBmYXN0LXBhdGggZnVuY3Rpb25zIGFuZCByZWxhdGVk
IGRhdGEuDQo+ID4gKwkgKiA2NC1iaXQgc3lzdGVtczogb2NjdXBpZXMgc2Vjb25kIDY0QiBsaW5l
DQo+ID4gKwkgKi8NCj4gPiArCWV0aF90eF9idXJzdF90IHR4X3BrdF9idXJzdDsNCj4gDQo+IFdo
eSBub3QgcGxhY2UgcnhfcGt0X2J1cnN0L3R4X3BrdF9idXJzdC9yeHEgL3R4cSB0byB0aGUgZmly
c3QgY2FjaGVsaW5lID8NCj4gT3RoZXIgZnVuY3Rpb24sIGUuZy4gcnhfcXVldWVfY291bnQvZGVz
Y3JpcHRvcl9zdGF0dXMgYXJlIGxvdyBmcmVxdWVuY3kgY2FsbCBmdW5jdGlvbnMuDQoNCkkgc3Vw
cG9zZSB5b3UgYXJlIHRhbGtpbmcgYWJvdXQgbGF5b3V0IGxpa2UgdGhhdDoNCnN0cnVjdCBydGVf
ZXRoX2ZwX29wcyB7DQogICAvKiBmaXJzdCA2NEIgbGluZSAqLw0KICAgcnhfcGt0X2J1cnN0Ow0K
ICAgdHhfcGt0X2J1cnN0Ow0KICAgdHhfcGt0X3ByZXBhcmU7DQogICBzdHJ1Y3QgcnRlX2V0aGRl
dl9xZGF0YSByeHE7DQogICBzdHJ1Y3QgcnRlX2V0aGRldl9xZGF0YSB0eHE7DQogICByZXNlcnZl
ZDFbMV07DQogICAvKiBzZWNvbmQgNjRCIGxpbmUgKi8NCiAgLi4uDQp9Ow0KDQpJIHRob3VnaHQg
YWJvdXQgc3VjaCBhYmlsaXR5LCBldmVuIHRyaWVkIGl0LCBidXQgSSBkaWRuJ3Qgc2VlIGFueSBw
ZXJmb3JtYW5jZSBnYWluLg0KRnJvbSBvdGhlciBzaWRlIGN1cnJlbnQgbGF5b3V0IHNlZW1zIGJl
dHRlciB0byBtZSBmcm9tIHN0cnVjdHVyYWwgcG9pbnQ6DQppdCBpcyBtb3JlIHVuaWZvcm0gYW5k
IGVhc3kgdG8gZXh0ZW5kIGluIGZ1dHVyZSAoYm90aCBSWCBhbmQgVFggZGF0YSBvY2N1cGllcw0K
c2VwYXJhdGUgNjRCIGxpbmUsIGVhY2ggaGF2ZSBlcXVhbCByb20gZm9yIGV4dGVuc2lvbikuICAg
IA0KIA0KPiA+ICsJLyoqPCBQTUQgdHJhbnNtaXQgZnVuY3Rpb24uICovDQo+ID4gKwlldGhfdHhf
cHJlcF90IHR4X3BrdF9wcmVwYXJlOw0KPiA+ICsJLyoqPCBQTUQgdHJhbnNtaXQgcHJlcGFyZSBm
dW5jdGlvbi4gKi8NCj4gPiArCWV0aF90eF9kZXNjcmlwdG9yX3N0YXR1c190IHR4X2Rlc2NyaXB0
b3Jfc3RhdHVzOw0KPiA+ICsJLyoqPCBDaGVjayB0aGUgc3RhdHVzIG9mIGEgVHggZGVzY3JpcHRv
ci4gKi8NCj4gPiArCXN0cnVjdCBydGVfZXRoZGV2X3FkYXRhIHR4cTsNCj4gPiArCS8qKjwgVHgg
cXVldWVzIGRhdGEuICovDQo+ID4gKwl1aW50cHRyX3QgcmVzZXJ2ZWQyWzNdOw0KPiA+ICsNCj4g
PiArfSBfX3J0ZV9jYWNoZV9hbGlnbmVkOw0KPiA+ICsNCj4gPiArZXh0ZXJuIHN0cnVjdCBydGVf
ZXRoX2ZwX29wcyBydGVfZXRoX2ZwX29wc1tSVEVfTUFYX0VUSFBPUlRTXTsNCj4gPiArDQo+ID4N
Cj4gPiAgLyoqDQo+ID4gICAqIEBpbnRlcm5hbA0KPiA+DQoNCg==