From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 ; 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" To: fengchengwen , "dev@dpdk.org" CC: "Li, Xiaoyun" , "anoobj@marvell.com" , "jerinj@marvell.com" , "ndabilpuram@marvell.com" , "adwivedi@marvell.com" , "shepard.siegel@atomicrules.com" , "ed.czeck@atomicrules.com" , "john.miller@atomicrules.com" , "irusskikh@marvell.com" , "ajit.khaparde@broadcom.com" , "somnath.kotur@broadcom.com" , "rahul.lakkireddy@chelsio.com" , "hemant.agrawal@nxp.com" , "sachin.saxena@oss.nxp.com" , "Wang, Haiyue" , "Daley, John" , "hyonkim@cisco.com" , "Zhang, Qi Z" , "Wang, Xiao W" , "humin29@huawei.com" , "yisen.zhuang@huawei.com" , "oulijun@huawei.com" , "Xing, Beilei" , "Wu, Jingjing" , "Yang, Qiming" , "matan@nvidia.com" , "viacheslavo@nvidia.com" , "sthemmin@microsoft.com" , "longli@microsoft.com" , "heinrich.kuhn@corigine.com" , "kirankumark@marvell.com" , "andrew.rybchenko@oktetlabs.ru" , "mczekaj@marvell.com" , "jiawenwu@trustnetic.com" , "jianwang@trustnetic.com" , "maxime.coquelin@redhat.com" , "Xia, Chenbo" , "thomas@monjalon.net" , "Yigit, Ferruh" , "mdr@ashroe.eu" , "Jayatheerthan, Jay" 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: 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: 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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==