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 0CAC2A0508 for ; Wed, 13 Apr 2022 08:36:23 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 036544068B; Wed, 13 Apr 2022 08:36:23 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id BC3874068B for ; Wed, 13 Apr 2022 08:36:20 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1649831780; x=1681367780; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=enUMerY9/6CtKKl3XSnNk1fc8/C+xHHtrQAcNueOJR8=; b=f5NV07Kt/KaAcEtd5jXv26gsPCswwwKf0x0wcx3yi877a6TULohCuJ7m l6ROjZS69yw2kSsJ1Nhrl5e3Io5tTXkkY8Lio7c/mqcOKPX4Av6Cmtr0J CirBCrYKhXnP98hfZ3lLdFLFuRK91CfcUb0V8JSfaBqqR84Pcb+yw25AB 7ZfRwjJzY6bzocU8AqaNYQB6xKG/zYtm/4Sa8zWNcD0h4szgSp415hNdp ozH8gMitX3CVO5yR/p6GNGn10bH3LCR1EYEJq+4XUrLXwfn6lpaga1Hk7 Y/0C2ahDdGsw8C3iD0Sca2ZNVtdWJ3DyEzyO0Ga20JWBOaEfT/vCl2kRw g==; X-IronPort-AV: E=McAfee;i="6400,9594,10315"; a="242525398" X-IronPort-AV: E=Sophos;i="5.90,256,1643702400"; d="scan'208";a="242525398" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Apr 2022 23:36:19 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,256,1643702400"; d="scan'208";a="700130741" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga001.fm.intel.com with ESMTP; 12 Apr 2022 23:36:19 -0700 Received: from fmsmsx604.amr.corp.intel.com (10.18.126.84) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Tue, 12 Apr 2022 23:36:19 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Tue, 12 Apr 2022 23:36:19 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.173) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Tue, 12 Apr 2022 23:36:18 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RhLCA4i3f+tYSVgiw4KzXboab/fL2j5cI5TQIc7NU9p4Zc47W7IypPu3bsSk7EzkVs5zLZTvs+xPlHFC5Zbrz/pNm8aO8AotEpVBKypJIZ1LVh7Boin9KBGOXyTn1wfmmV60Htv+kkhed1eIAmrb7ivGmEleSRfVTarf1OpOl3tt0G7+ni+dhp8+ULKuL081Gc5Ha4o5HyE/bbC3cxXF10A4ozgo+iFKLgXQQTt8P0oApN6r/owcEAKMaBQFAxmW23IebagCOEAqdbnsDnVyBbKx0wyIEGFIUNn2bsB+YldBfGYetN8AIdyhZwA4CuxVNKoiwGR94ZAnbKmsR2WYYg== 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=enUMerY9/6CtKKl3XSnNk1fc8/C+xHHtrQAcNueOJR8=; b=UXqBT2bC9w0yFA6eIMgIIXV2jvl2ednJgmkw63BVA0elQGs49XTfiINtbg6cq/IxGp0Xo+M1N+ZgsjDg3VbHvr+q6kmYu26LtrQ0AfcJNhmEFXUZkpP4aR9y0kfApcFK79JGxN+mKjwfC/0o5kFGdzcwL9VTc+K3Om6Wmox94Gi7cWvHjYlkyxi9J7dOCLKytJgX2Zmk4uB+DPa1pkNej1t6bhxbJ8pNjFmHLMhPRZNzVdSMqvWbg/diFaPyJpqH1p7Q35/0Ij+jSmGhhLr5JUuDheXQkDcPBnLvLh50QXO7iDSjNKpPa4K7ZMdz+VCbyAnMUrhWWuRSyzHBn4Eo/w== 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 Received: from DM6PR11MB3530.namprd11.prod.outlook.com (2603:10b6:5:72::19) by MN2PR11MB4302.namprd11.prod.outlook.com (2603:10b6:208:179::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Wed, 13 Apr 2022 06:36:16 +0000 Received: from DM6PR11MB3530.namprd11.prod.outlook.com ([fe80::5853:b0ff:380:7dd4]) by DM6PR11MB3530.namprd11.prod.outlook.com ([fe80::5853:b0ff:380:7dd4%2]) with mapi id 15.20.5144.029; Wed, 13 Apr 2022 06:36:16 +0000 From: "Huang, Wei" To: "Zhang, Qi Z" , "thomas@monjalon.net" CC: "stable@dpdk.org" , "Xu, Rosen" , "nipun.gupta@nxp.com" , "hemant.agrawal@nxp.com" , "Zhang, Tianfei" , "Yigit, Ferruh" Subject: RE: [PATCH v3] raw/ifpga: remove vdev when ifpga is closed Thread-Topic: [PATCH v3] raw/ifpga: remove vdev when ifpga is closed Thread-Index: AQHYOqbI72u8Ik1aO0e5YRnEPIgAl6zVqnjAgAAFvQCAF9kXYA== Date: Wed, 13 Apr 2022 06:36:16 +0000 Message-ID: References: <20220315011755.1588005-1-wei.huang@intel.com> <20220318085755.2134030-1-wei.huang@intel.com> <687b7f7a191846c39e12a08c0e0f27ce@intel.com> In-Reply-To: <687b7f7a191846c39e12a08c0e0f27ce@intel.com> Accept-Language: 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.401.20 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e48cd6b3-1332-4088-e18e-08da1d17e997 x-ms-traffictypediagnostic: MN2PR11MB4302:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: lSge0ancwvVFt/mnd/Q3gLY2eZWcfOj6OzneOclfW8NNfj54IaXEf8TW3Hb9CsRCYIBqvyqD2hW5nOb6BTYlVF33ykwtcwFw7FEbgrdPdB4Azfml1gGTWiPgUKKYOnGbxzEj4lBtNnTwQ1c6aDcvj/T0KxSbODjRTLjvp46O/m3BE5yF4gWO6gYFSnONDv3yzIR7Z50FC7co6CbCA84WFSBJfEhMO4pqSw8adfZLggf5mHBih7BDxDTFB327czycdOKWPFpNG+mioWrq58uJrJH6d/mtvd26KNcWkXY1IGfvpBQEakLiBvCTh2VP2rotxi7yVzzQxgkN5bBlTmLThMMuA731WlLPHGw4gXbfieRjucTsuptj+n5pAQDgyHt8TMgLKMQnyfygxAFQydMyFurGM7a4F3owU6zQQVaZH82+hJwbASWUqLveaTYa1T0yb0kXR558opucSoN5wnNNXXuYgNY3IJXOeTEpqjk6f+EI+sMAqsJ5fn79DFlqELYvEpYL92XG2li/p+NKJIHMyru5SDScgVJXH3ImusF/ZSA+xtnPIdVAvnO0SRLV6Est4OQ/e4icYC0/sMy5eQKL7/GL1bmOLLYHnqjxXa05VqsFozsPsLNviUJVYj2D8HKl/hzSFYQTpgIKY51UsMOuwa2eTfZSCAk1pPv6mPa8Niv5kZ5A56f3SUcg5ii1vbOivr3pe3HiS2o6v4AnHzpevZig29rP73H6uwwPt96HdPY8w/j52b+6/UlWgYhZAHGN4I2vDoa6oVgqWDibPIlVBFjgfgNvoI1jiiEqaIbhlac= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB3530.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(107886003)(83380400001)(508600001)(82960400001)(122000001)(64756008)(66556008)(66946007)(66446008)(66476007)(53546011)(8676002)(38100700002)(76116006)(7696005)(6506007)(4326008)(966005)(86362001)(52536014)(55016003)(8936002)(186003)(26005)(30864003)(33656002)(5660300002)(2906002)(38070700005)(110136005)(9686003)(54906003)(316002)(71200400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RzljRjhvaU50WTZwMWtjeWJOTXRibDRSV3p4ZEJiZ2dheFdjdEx1RHNNZ1B0?= =?utf-8?B?QUZCLzE1TkhrVEhmOUJGaW9RL2duN0lBMGl1Q1MrUEtVUnp6b0FPYTRHcVZE?= =?utf-8?B?eFk5T3I5dUxQcDNibGpkSllzVDA5RkhHR0tpZHNnK0JOb3FIQVhobmpEK0ti?= =?utf-8?B?RWFNdFZIMklLV3Vybk5EaEszTHRsVkdvNmRLM0RaeHQrOXphYWxFQ214a3lS?= =?utf-8?B?UXhjb2NKQkkwc3hwUU1oL2JybXZFd1FxeG01VEc0SzlWMVdIY3hRNGZTVjE3?= =?utf-8?B?cjFBR1ZsV1pMcnUxVEY4ODgxTDFDVHM4WkhyZGVUL1d0MTR6b08xNHBGblBF?= =?utf-8?B?bHRJaXpjVGhJd1NKcDc1T1djNStIS1U5d2ZoUE5FQzBRY296LzlXUkJ3c1px?= =?utf-8?B?RllhRVhyK0xkZVJUeEhRK1kzenZ1eS9xYnpZR0ZKVU8vRDkxeWZuUmZldFFU?= =?utf-8?B?cHQ2YWtCdnZKOGFxdDJqM2MydmpxTFB6eE0vUSsrbDNNVTZCMEZmc3dCNi94?= =?utf-8?B?VmcxYVd4YmxaU3JEdmdZWExpYUltQ3FBaGpYNGVYMzdLZ1djWFFiczdyRCtG?= =?utf-8?B?NGNVMCtpSlpoZlo1ZFFBTFVwQ3Q2MkYvZXN4NVJ5aGJjMFJrZXlNeFZydjB2?= =?utf-8?B?a1lTSCtsVnpKNzVvZE1pQS9Ed3ErU0JWekJWcXBuS1lrQVdXZno5K0hOOGpn?= =?utf-8?B?d01USGFDbDZvNEM2cnVSdEUwRWxzby9pTGVQTTQ0Z1B1UVlUWEVBNldIcHhK?= =?utf-8?B?V2Y2S2RDMmd6cUtTRjZCbjg4NzAwcXZBUlZVRzU1TGYxN0xMN2hMM2d3cVhR?= =?utf-8?B?UEhPV0RDcTk5SDhGWTJUTDg4LzRKdTVJUzcrY1hBUHBNN25TUlhSVm5qVFNT?= =?utf-8?B?bFVNUlFBeU5WUXJZbHExMXlpNEwzZjZ1V04rcFBLWHkwZTdQTFRnTXZmaUFx?= =?utf-8?B?cE53SGtZUFRBQWxNbXZuTkI2TDhQRjhYeCtXeW1xVjJodHBFVEZHdC9Udkor?= =?utf-8?B?cEhucENvYU5wd3hyTk5OWU1OS3dxaWd6S3YrSUU3dE1NMG9qc1BrT0tic2JB?= =?utf-8?B?MkU4NU8xU0I0cEYxVnV4K3oya2tSenc0cytWenQvTU9LRWZYRk9rbVdiZVlq?= =?utf-8?B?N1lOVjdLa1ZsYjNkM0w1bzU1bGVNTWZudFRxRXJUTThGTWh3cUxzTkFnWnJi?= =?utf-8?B?QStDOXhNN0orWTJLSTd0MEtxcE0wMGs3Uld1Wis1WGx5MDFQc3B5YVZLT2JZ?= =?utf-8?B?RFVhMDdpMXpIbENNc2tybUthS1V6a05mcGF3NmdFY25sN2g2dk1jN0NCTU5J?= =?utf-8?B?eXBLMTQ1ajNGWGhBM1R1VWkyMFcvRmNEc0taanI5MlFBK3BjSHFFazd3UFNK?= =?utf-8?B?Qk9KcDJZYWtpVTNENkZsbnNzK2QyZ2Q4NHZoajhwVFFWMDdmdzRDa1pyZ0FU?= =?utf-8?B?ZERHdXgwTm5wSkp4RURGYVVpUkpvZlg5b1lacFlOa25zNGZ0MVRPem9PZUtH?= =?utf-8?B?Rzk4UmpSbzZlM0E1VUpIekFYRWtNT0wycVFtdm1Sa2VBUnJ6Nlg3SEprQlUr?= =?utf-8?B?Q2FmY1ZJN1dHRVNFYnE4NGc4SUd5ck1rWUFGNld4bW1qS3dzUWlWVnMyQ1Yv?= =?utf-8?B?VEg5L24yMTJrYXEreU1ndGJSanhSckZpdEI2bG9TOHlXTVF4Ky9TMllEZEsy?= =?utf-8?B?ckZmcjBNWXBnUmRRNDhIVzZWbGhMenBiU2ROM0lDWm9xdk5XUWgyNGIvc05X?= =?utf-8?B?eW04cnRTbVN0L2tRdGJMSFYweVJiUUJ2Uzd4RjBXSDg5OUR0am5KQ1lLczR3?= =?utf-8?B?bHdRekxjN2VZQ3Ryemg4UUhlOTRGcDJRSVRCWTRuTTg3R0xZMmtaRURYczVr?= =?utf-8?B?Z2JoTjlRL0xoK1pOUDc0bkU5M21XT0s3Z01Cam5oY1pPdGJvQis2U2dYRjVv?= =?utf-8?B?Ujk3R2Z4TlgwMjlwY2JyMGdrMUxXL3QvWUpNTXBmamFXVkxjK0xTUTJIYTUy?= =?utf-8?B?ZVNnYm85Tm0rbUhFcENjU1NFdXJjcVEwZnMrb1AyN3NuZk5yYit6Z3c1L0Zh?= =?utf-8?B?clZEWEVMNHgrcmx0UVQzK0kra1dLSUZZRUwrRDhqQTF6S0lrSGFsTVlPNnlm?= =?utf-8?B?RFV3TytwTW41bWYzUytnUjM4WUdBZDRPQkEyUm8yOTJXNnMrakdWbTlJMXdO?= =?utf-8?B?TTZaN1cyZXNBZlFTR3BDdy9HdFVIekJCdkVSRldybVFMT1VSekphcE5KRThr?= =?utf-8?B?dlZnYys5UDc2YkRkQXlxSGtwOHBITHMxN1RldGtJMmN5Y0dEYVZtZEFEaE9I?= =?utf-8?B?WXZVTWl1OE1Nc3J5SXBOdkVDZU5iNThuWWF0MW9ndTYvQTgyakU0UT09?= 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: DM6PR11MB3530.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e48cd6b3-1332-4088-e18e-08da1d17e997 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Apr 2022 06:36:16.5594 (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: EOT+a+fs5mMTD/7XXmFBICUPoUeQe5lgc9Y3RF8gDlaPj/zSAb5CABqBZweKxztUQRNpjG0X+Ywm/24DaGf3gw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4302 X-OriginatorOrg: intel.com X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org SGkgVGhvbWFzLA0KDQpTb3JyeSB0byBkaXN0dXJiIHlvdSwgSSBqdXN0IHdhbnQgdG8ga25vdyB3 aGVuIHRoaXMgcGF0Y2ggY2FuIGJlIHJldmlld2VkIGFuZCBtZXJnZWQsIGl0IG1heSBpbXBhY3Qg RFBESzIyLjA3IGVwaWMgJ2ludGVsIEFGVSBQTUQgYmFzZWQgb24gcmF3ZGV2Jy4NCg0KPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0Bp bnRlbC5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIE1hcmNoIDI5LCAyMDIyIDEwOjE1DQo+IFRvOiBI dWFuZywgV2VpIDx3ZWkuaHVhbmdAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnOw0KPiB0aG9tYXNA bW9uamFsb24ubmV0OyBYdSwgUm9zZW4gPHJvc2VuLnh1QGludGVsLmNvbT47DQo+IG5pcHVuLmd1 cHRhQG54cC5jb207IGhlbWFudC5hZ3Jhd2FsQG54cC5jb20NCj4gQ2M6IHN0YWJsZUBkcGRrLm9y ZzsgWmhhbmcsIFRpYW5mZWkgPHRpYW5mZWkuemhhbmdAaW50ZWwuY29tPjsgWWlnaXQsIEZlcnJ1 aA0KPiA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtQQVRDSCB2M10g cmF3L2lmcGdhOiByZW1vdmUgdmRldiB3aGVuIGlmcGdhIGlzIGNsb3NlZA0KPiANCj4gDQo+ID4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBIdWFuZywgV2VpIDx3ZWkuaHVh bmdAaW50ZWwuY29tPg0KPiA+IFNlbnQ6IFR1ZXNkYXksIE1hcmNoIDI5LCAyMDIyIDk6NTYgQU0N Cj4gPiBUbzogZGV2QGRwZGsub3JnOyB0aG9tYXNAbW9uamFsb24ubmV0OyBYdSwgUm9zZW4NCj4g PHJvc2VuLnh1QGludGVsLmNvbT47DQo+ID4gbmlwdW4uZ3VwdGFAbnhwLmNvbTsgaGVtYW50LmFn cmF3YWxAbnhwLmNvbQ0KPiA+IENjOiBzdGFibGVAZHBkay5vcmc7IFpoYW5nLCBUaWFuZmVpIDx0 aWFuZmVpLnpoYW5nQGludGVsLmNvbT47IFpoYW5nLA0KPiA+IFFpIFogPHFpLnouemhhbmdAaW50 ZWwuY29tPjsgWWlnaXQsIEZlcnJ1aCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4NCj4gPiBTdWJq ZWN0OiBSRTogW1BBVENIIHYzXSByYXcvaWZwZ2E6IHJlbW92ZSB2ZGV2IHdoZW4gaWZwZ2EgaXMg Y2xvc2VkDQo+ID4NCj4gPiBIaSBUaG9tYXMsDQo+ID4NCj4gPiBXb3VsZCB5b3UgcGxlYXNlIGNo ZWNrIHRoaXMgcGF0Y2ggaXMgYWNjZXB0YWJsZSA/DQo+IA0KPiBIaSBXZWk6DQo+IDIyLjA3IGN5 Y2xlIGp1c3QgYmVnaW5zLCBJdCBtYXkgbm90IG5lY2Vzc2FyeSB0byBwdXNoIFBNRCBtZXJnZSBx dWl0ZSBlYXJseQ0KPiDwn5iKDQo+IEJlbG93IGlzIHRoZSByb2FkbWFwIGZvciB5b3VyIHJlZmVy ZW5jZQ0KPiANCj4gaHR0cDovL2NvcmUuZHBkay5vcmcvcm9hZG1hcC8NCj4gDQo+IFByb3Bvc2Fs IGRlYWRsaW5lIChSRkMvdjEgcGF0Y2hlcyk6IDEwIEFwcmlsIDIwMjIgQVBJIGZyZWV6ZSAoLXJj MSk6IDMwIE1heQ0KPiAyMDIyIFBNRCBmZWF0dXJlcyBmcmVlemUgKC1yYzIpOiAyMCBKdW5lIDIw MjIgQnVpbHRpbiBhcHBsaWNhdGlvbnMgZmVhdHVyZXMNCj4gZnJlZXplICgtcmMzKTogMjcgSnVu ZSAyMDIyDQo+IFJlbGVhc2U6IDEzIEp1bHkgMjAyMg0KPiANCj4gUmVnYXJkcw0KPiBRaQ0KPiAN Cj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IEh1YW5n LCBXZWkgPHdlaS5odWFuZ0BpbnRlbC5jb20+DQo+ID4gPiBTZW50OiBGcmlkYXksIE1hcmNoIDE4 LCAyMDIyIDE2OjU4DQo+ID4gPiBUbzogZGV2QGRwZGsub3JnOyB0aG9tYXNAbW9uamFsb24ubmV0 OyBYdSwgUm9zZW4NCj4gPiA8cm9zZW4ueHVAaW50ZWwuY29tPjsNCj4gPiA+IG5pcHVuLmd1cHRh QG54cC5jb207IGhlbWFudC5hZ3Jhd2FsQG54cC5jb20NCj4gPiA+IENjOiBzdGFibGVAZHBkay5v cmc7IFpoYW5nLCBUaWFuZmVpIDx0aWFuZmVpLnpoYW5nQGludGVsLmNvbT47DQo+ID4gPiBaaGFu ZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyBZaWdpdCwgRmVycnVoDQo+ID4gPiA8ZmVy cnVoLnlpZ2l0QGludGVsLmNvbT47IEh1YW5nLCBXZWkgPHdlaS5odWFuZ0BpbnRlbC5jb20+DQo+ ID4gPiBTdWJqZWN0OiBbUEFUQ0ggdjNdIHJhdy9pZnBnYTogcmVtb3ZlIHZkZXYgd2hlbiBpZnBn YSBpcyBjbG9zZWQNCj4gPiA+DQo+ID4gPiBWaXJ0dWFsIGRldmljZXMgY3JlYXRlZCBvbiBpZnBn YSByYXcgZGV2aWNlIGFyZSBub3QgcmVtb3ZlZCB3aGVuDQo+ID4gPiBpZnBnYSBpcyBjbG9zZWQu IFRvIGF2b2lkIHN1Y2ggcHJvYmxlbSwgaWZwZ2EgdmlydHVhbCBkZXZpY2UgcmVtb3ZlDQo+ID4g PiBmdW5jdGlvbiBpcyBpbXBsZW1lbnRlZCwgdmlydHVhbCBkZXZpY2UgaXMgcmVtb3ZlZCBpbiBy YXcgZGV2aWNlIGNsb3NlDQo+IGZ1bmN0aW9uLg0KPiA+ID4NCj4gPiA+IFNpZ25lZC1vZmYtYnk6 IFdlaSBIdWFuZyA8d2VpLmh1YW5nQGludGVsLmNvbT4NCj4gPiA+IEFja2VkLWJ5OiBUaWFuZmVp IFpoYW5nIDx0aWFuZmVpLnpoYW5nQGludGVsLmNvbT4NCj4gPiA+IEFja2VkLWJ5OiBSb3NlbiBY dSA8cm9zZW4ueHVAaW50ZWwuY29tPg0KPiA+ID4gLS0tDQo+ID4gPiB2MjogY2xlYW51cCB2ZGV2 X25hbWUgbm8gbWF0dGVyIHJ0ZV92ZGV2X3VuaW5pdCBzdWNjZWVkIG9yIG5vdA0KPiA+ID4gLS0t DQo+ID4gPiB2MzogY2xlYW51cCB2ZGV2X25hbWUgaW4gaWZwZ2FfY2ZnX3JlbW92ZQ0KPiA+ID4g LS0tDQo+ID4gPiAgZHJpdmVycy9yYXcvaWZwZ2EvaWZwZ2FfcmF3ZGV2LmMgfCAxNjYNCj4gPiA+ ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQ0KPiA+ID4gIGRyaXZlcnMv cmF3L2lmcGdhL2lmcGdhX3Jhd2Rldi5oIHwgICA4ICsrDQo+ID4gPiAgMiBmaWxlcyBjaGFuZ2Vk LCAxMzggaW5zZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0pDQo+ID4gPg0KPiA+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvcmF3L2lmcGdhL2lmcGdhX3Jhd2Rldi5jDQo+ID4gPiBiL2RyaXZlcnMv cmF3L2lmcGdhL2lmcGdhX3Jhd2Rldi5jDQo+ID4gPiBpbmRleCA2ZDQxMTdjLi5mZTNmYzQzIDEw MDY0NA0KPiA+ID4gLS0tIGEvZHJpdmVycy9yYXcvaWZwZ2EvaWZwZ2FfcmF3ZGV2LmMNCj4gPiA+ ICsrKyBiL2RyaXZlcnMvcmF3L2lmcGdhL2lmcGdhX3Jhd2Rldi5jDQo+ID4gPiBAQCAtMTM0LDYg KzEzNCw4IEBAIHN0cnVjdCBpZnBnYV9yYXdkZXYgKiAgZm9yIChpID0gMDsgaSA8DQo+ID4gPiBJ RlBHQV9NQVhfSVJROyBpKyspICBkZXYtPmludHJfaGFuZGxlW2ldID0gTlVMTDsgIGRldi0+cG9s bF9lbmFibGVkDQo+ID4gPiA9IDA7DQo+ID4gPiArZm9yIChpID0gMDsgaSA8IElGUEdBX01BWF9W REVWOyBpKyspDQo+ID4gPiArZGV2LT52ZGV2X25hbWVbaV0gPSBOVUxMOw0KPiA+ID4NCj4gPiA+ ICByZXR1cm4gZGV2Ow0KPiA+ID4gIH0NCj4gPiA+IEBAIC03MzYsMTAgKzczOCwyMiBAQCBzdGF0 aWMgaW50IHNldF9zdXJwcmlzZV9saW5rX2NoZWNrX2FlcigNCj4gPiA+IHN0YXRpYyBpbnQgaWZw Z2FfcmF3ZGV2X2Nsb3NlKHN0cnVjdCBydGVfcmF3ZGV2ICpkZXYpICB7DQo+ID4gPiArc3RydWN0 IGlmcGdhX3Jhd2RldiAqaWZwZ2FfcmRldiA9IE5VTEw7DQo+ID4gPiAgc3RydWN0IG9wYWVfYWRh cHRlciAqYWRhcHRlcjsNCj4gPiA+ICtjaGFyICp2ZGV2X25hbWUgPSBOVUxMOw0KPiA+ID4gK2lu dCBpID0gMDsNCj4gPiA+DQo+ID4gPiAgaWYgKGRldikgew0KPiA+ID4gLWlmcGdhX21vbml0b3Jf c3RvcF9mdW5jKGlmcGdhX3Jhd2Rldl9nZXQoZGV2KSk7DQo+ID4gPiAraWZwZ2FfcmRldiA9IGlm cGdhX3Jhd2Rldl9nZXQoZGV2KTsgaWYgKGlmcGdhX3JkZXYpIHsgZm9yIChpID0gMDsgaQ0KPiA+ ID4gKzwgSUZQR0FfTUFYX1ZERVY7IGkrKykgeyB2ZGV2X25hbWUgPSBpZnBnYV9yZGV2LT52ZGV2 X25hbWVbaV07IGlmDQo+ID4gPiArKHZkZXZfbmFtZSkgcnRlX3ZkZXZfdW5pbml0KHZkZXZfbmFt ZSk7IH0NCj4gPiA+ICtpZnBnYV9tb25pdG9yX3N0b3BfZnVuYyhpZnBnYV9yZGV2KTsNCj4gPiA+ ICtpZnBnYV9yZGV2LT5yYXdkZXYgPSBOVUxMOw0KPiA+ID4gK30NCj4gPiA+ICBhZGFwdGVyID0g aWZwZ2FfcmF3ZGV2X2dldF9wcml2KGRldik7ICBpZiAoYWRhcHRlcikgew0KPiA+ID4gb3BhZV9h ZGFwdGVyX2Rlc3Ryb3koYWRhcHRlcik7IEBAIC0xNjM4LDggKzE2NTIsNiBAQCBzdGF0aWMgaW50 DQo+ID4gPiBmbWVfY2xlYW5fZm1lX2Vycm9yKHN0cnVjdCBvcGFlX21hbmFnZXIgKm1ncikgIHJl dHVybiAtRUlOVkFMOyAgfQ0KPiA+ID4gZGV2ID0gaWZwZ2FfcmF3ZGV2X2dldChyYXdkZXYpOyAt aWYgKGRldikNCj4gPiA+IC1kZXYtPnJhd2RldiA9IE5VTEw7DQo+ID4gPg0KPiA+ID4gIGFkYXB0 ZXIgPSBpZnBnYV9yYXdkZXZfZ2V0X3ByaXYocmF3ZGV2KTsgIGlmICghYWRhcHRlcikgQEAgLTE3 MTQsNzMNCj4gPiA+ICsxNzI2LDExOCBAQCBzdGF0aWMgaW50IGlmcGdhX3Jhd2Rldl9nZXRfc3Ry aW5nX2FyZyhjb25zdCBjaGFyICprZXkNCj4gPiA+IF9fcnRlX3VudXNlZCwNCj4gPiA+DQo+ID4g PiAgcmV0dXJuIDA7DQo+ID4gPiAgfQ0KPiA+ID4gKw0KPiA+ID4gIHN0YXRpYyBpbnQNCj4gPiA+ IC1pZnBnYV9jZmdfcHJvYmUoc3RydWN0IHJ0ZV92ZGV2X2RldmljZSAqZGV2KQ0KPiA+ID4gK2lm cGdhX3ZkZXZfcGFyc2VfZGV2YXJncyhzdHJ1Y3QgcnRlX2RldmFyZ3MgKmRldmFyZ3MsIHN0cnVj dA0KPiA+ID4gK2lmcGdhX3ZkZXZfYXJncyAqYXJncykNCj4gPiA+ICB7DQo+ID4gPiAtc3RydWN0 IHJ0ZV9kZXZhcmdzICpkZXZhcmdzOw0KPiA+ID4gLXN0cnVjdCBydGVfa3ZhcmdzICprdmxpc3Qg PSBOVUxMOw0KPiA+ID4gLXN0cnVjdCBydGVfcmF3ZGV2ICpyYXdkZXYgPSBOVUxMOw0KPiA+ID4g LXN0cnVjdCBpZnBnYV9yYXdkZXYgKmlmcGdhX2RldjsNCj4gPiA+IC1pbnQgcG9ydDsNCj4gPiA+ ICtzdHJ1Y3QgcnRlX2t2YXJncyAqa3ZsaXN0Ow0KPiA+ID4gIGNoYXIgKm5hbWUgPSBOVUxMOw0K PiA+ID4gLWNoYXIgZGV2X25hbWVbUlRFX1JBV0RFVl9OQU1FX01BWF9MRU5dOw0KPiA+ID4gLWlu dCByZXQgPSAtMTsNCj4gPiA+ICtpbnQgcG9ydCA9IDA7DQo+ID4gPiAraW50IHJldCA9IC1FSU5W QUw7DQo+ID4gPg0KPiA+ID4gLWRldmFyZ3MgPSBkZXYtPmRldmljZS5kZXZhcmdzOw0KPiA+ID4g K2lmICghZGV2YXJncyB8fCAhYXJncykNCj4gPiA+ICtyZXR1cm4gcmV0Ow0KPiA+ID4NCj4gPiA+ ICBrdmxpc3QgPSBydGVfa3ZhcmdzX3BhcnNlKGRldmFyZ3MtPmFyZ3MsIHZhbGlkX2FyZ3MpOyAg aWYgKCFrdmxpc3QpDQo+ID4gPiB7IC1JRlBHQV9SQVdERVZfUE1EX0xPRyhFUlIsICJlcnJvciB3 aGVuIHBhcnNpbmcgcGFyYW0iKTsgLWdvdG8NCj4gZW5kOw0KPiA+ID4gK0lGUEdBX1JBV0RFVl9Q TURfRVJSKCJlcnJvciB3aGVuIHBhcnNpbmcgZGV2YXJncyIpOyByZXR1cm4gcmV0Ow0KPiA+ID4g IH0NCj4gPiA+DQo+ID4gPiAgaWYgKHJ0ZV9rdmFyZ3NfY291bnQoa3ZsaXN0LCBJRlBHQV9BUkdf TkFNRSkgPT0gMSkgeyAgaWYNCj4gPiA+IChydGVfa3ZhcmdzX3Byb2Nlc3Moa3ZsaXN0LCBJRlBH QV9BUkdfTkFNRSwNCj4gPiA+IC0gICAgICAgJmlmcGdhX3Jhd2Rldl9nZXRfc3RyaW5nX2FyZywN Cj4gPiA+IC0gICAgICAgJm5hbWUpIDwgMCkgew0KPiA+ID4gKyZpZnBnYV9yYXdkZXZfZ2V0X3N0 cmluZ19hcmcsICZuYW1lKSA8IDApIHsNCj4gPiA+ICBJRlBHQV9SQVdERVZfUE1EX0VSUigiZXJy b3IgdG8gcGFyc2UgJXMiLA0KPiA+ID4gLSAgICAgSUZQR0FfQVJHX05BTUUpOw0KPiA+ID4gK0lG UEdBX0FSR19OQU1FKTsNCj4gPiA+ICBnb3RvIGVuZDsNCj4gPiA+ICt9IGVsc2Ugew0KPiA+ID4g K3N0cmxjcHkoYXJncy0+YmRmLCBuYW1lLCBzaXplb2YoYXJncy0+YmRmKSk7IHJ0ZV9mcmVlKG5h bWUpOw0KPiA+ID4gIH0NCj4gPiA+ICB9IGVsc2Ugew0KPiA+ID4gIElGUEdBX1JBV0RFVl9QTURf RVJSKCJhcmcgJXMgaXMgbWFuZGF0b3J5IGZvciBpZnBnYQ0KPiA+IGJ1cyIsDQo+ID4gPiAtICBJ RlBHQV9BUkdfTkFNRSk7DQo+ID4gPiArSUZQR0FfQVJHX05BTUUpOw0KPiA+ID4gIGdvdG8gZW5k Ow0KPiA+ID4gIH0NCj4gPiA+DQo+ID4gPiAgaWYgKHJ0ZV9rdmFyZ3NfY291bnQoa3ZsaXN0LCBJ RlBHQV9BUkdfUE9SVCkgPT0gMSkgeyAtaWYNCj4gPiA+IChydGVfa3ZhcmdzX3Byb2Nlc3Moa3Zs aXN0LCAtSUZQR0FfQVJHX1BPUlQsDQo+ID4gPiAtJnJ0ZV9pZnBnYV9nZXRfaW50ZWdlcjMyX2Fy ZywNCj4gPiA+IC0mcG9ydCkgPCAwKSB7DQo+ID4gPiAraWYgKHJ0ZV9rdmFyZ3NfcHJvY2Vzcyhr dmxpc3QsIElGUEdBX0FSR19QT1JULA0KPiA+ID4gKyZydGVfaWZwZ2FfZ2V0X2ludGVnZXIzMl9h cmcsICZwb3J0KSA8IDApIHsNCj4gPiA+ICBJRlBHQV9SQVdERVZfUE1EX0VSUigiZXJyb3IgdG8g cGFyc2UgJXMiLCAgSUZQR0FfQVJHX1BPUlQpOw0KPiBnb3RvDQo+ID4gPiBlbmQ7DQo+ID4gPiAr fSBlbHNlIHsNCj4gPiA+ICthcmdzLT5wb3J0ID0gcG9ydDsNCj4gPiA+ICB9DQo+ID4gPiAgfSBl bHNlIHsNCj4gPiA+ICBJRlBHQV9SQVdERVZfUE1EX0VSUigiYXJnICVzIGlzIG1hbmRhdG9yeSBm b3IgaWZwZ2ENCj4gPiBidXMiLA0KPiA+ID4gLSAgSUZQR0FfQVJHX1BPUlQpOw0KPiA+ID4gK0lG UEdBX0FSR19QT1JUKTsNCj4gPiA+ICBnb3RvIGVuZDsNCj4gPiA+ICB9DQo+ID4gPg0KPiA+ID4g K3JldCA9IDA7DQo+ID4gPiArDQo+ID4gPiArZW5kOg0KPiA+ID4gK2lmIChrdmxpc3QpDQo+ID4g PiArcnRlX2t2YXJnc19mcmVlKGt2bGlzdCk7DQo+ID4gPiArDQo+ID4gPiArcmV0dXJuIHJldDsN Cj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiArc3RhdGljIGludA0KPiA+ID4gK2lmcGdhX2NmZ19w cm9iZShzdHJ1Y3QgcnRlX3ZkZXZfZGV2aWNlICp2ZGV2KSB7IHN0cnVjdCBydGVfcmF3ZGV2DQo+ ID4gPiArKnJhd2RldiA9IE5VTEw7IHN0cnVjdCBpZnBnYV9yYXdkZXYgKmlmcGdhX2Rldjsgc3Ry dWN0DQo+ID4gPiAraWZwZ2FfdmRldl9hcmdzIGFyZ3M7IGNoYXINCj4gZGV2X25hbWVbUlRFX1JB V0RFVl9OQU1FX01BWF9MRU5dOw0KPiA+ID4gK2NvbnN0IGNoYXIgKnZkZXZfbmFtZSA9IE5VTEw7 DQo+ID4gPiAraW50IGksIG4sIHJldCA9IDA7DQo+ID4gPiArDQo+ID4gPiArdmRldl9uYW1lID0g cnRlX3ZkZXZfZGV2aWNlX25hbWUodmRldik7IGlmICghdmRldl9uYW1lKSByZXR1cm4NCj4gPiA+ ICstRUlOVkFMOw0KPiA+ID4gKw0KPiA+ID4gK0lGUEdBX1JBV0RFVl9QTURfSU5GTygicHJvYmUg aWZwZ2EgdmlydHVhbCBkZXZpY2UgJXMiLA0KPiA+ID4gdmRldl9uYW1lKTsNCj4gPiA+ICsNCj4g PiA+ICtyZXQgPSBpZnBnYV92ZGV2X3BhcnNlX2RldmFyZ3ModmRldi0+ZGV2aWNlLmRldmFyZ3Ms ICZhcmdzKTsgaWYNCj4gPiA+ICsocmV0KSByZXR1cm4gcmV0Ow0KPiA+ID4gKw0KPiA+ID4gIG1l bXNldChkZXZfbmFtZSwgMCwgc2l6ZW9mKGRldl9uYW1lKSk7IC1zbnByaW50ZihkZXZfbmFtZSwN Cj4gPiA+IFJURV9SQVdERVZfTkFNRV9NQVhfTEVOLCAiSUZQR0E6JXMiLCBuYW1lKTsNCj4gPiA+ ICtzbnByaW50ZihkZXZfbmFtZSwgUlRFX1JBV0RFVl9OQU1FX01BWF9MRU4sICJJRlBHQTolcyIs DQo+ID4gPiBhcmdzLmJkZik7DQo+ID4gPiAgcmF3ZGV2ID0gcnRlX3Jhd2Rldl9wbWRfZ2V0X25h bWVkX2RldihkZXZfbmFtZSk7DQo+ID4gPiAgaWYgKCFyYXdkZXYpDQo+ID4gPiAtZ290byBlbmQ7 DQo+ID4gPiArcmV0dXJuIC1FTk9ERVY7DQo+ID4gPiAgaWZwZ2FfZGV2ID0gaWZwZ2FfcmF3ZGV2 X2dldChyYXdkZXYpOyAgaWYgKCFpZnBnYV9kZXYpIC1nb3RvIGVuZDsNCj4gPiA+ICtyZXR1cm4g LUVOT0RFVjsNCj4gPiA+DQo+ID4gPiAtbWVtc2V0KGRldl9uYW1lLCAwLCBzaXplb2YoZGV2X25h bWUpKTsgLXNucHJpbnRmKGRldl9uYW1lLA0KPiA+ID4gUlRFX1JBV0RFVl9OQU1FX01BWF9MRU4s ICIlZHwlcyIsIC1wb3J0LCBuYW1lKTsNCj4gPiA+ICtmb3IgKGkgPSAwOyBpIDwgSUZQR0FfTUFY X1ZERVY7IGkrKykgeyBpZiAoaWZwZ2FfZGV2LT52ZGV2X25hbWVbaV0NCj4gPiA+ICs9PSBOVUxM KSB7IG4gPSBzdHJsZW4odmRldl9uYW1lKSArIDE7IGlmcGdhX2Rldi0+dmRldl9uYW1lW2ldID0N Cj4gPiA+ICtydGVfbWFsbG9jKE5VTEwsIG4sIDApOyBpZiAoaWZwZ2FfZGV2LT52ZGV2X25hbWVb aV0gPT0gTlVMTCkgcmV0dXJuDQo+ID4gPiArLUVOT01FTTsgc3RybGNweShpZnBnYV9kZXYtPnZk ZXZfbmFtZVtpXSwgdmRldl9uYW1lLCBuKTsgYnJlYWs7IH0gfQ0KPiA+ID4NCj4gPiA+ICtpZiAo aSA+PSBJRlBHQV9NQVhfVkRFVikgew0KPiA+ID4gK0lGUEdBX1JBV0RFVl9QTURfRVJSKCJDYW4n dCBjcmVhdGUgbW9yZSB2aXJ0dWFsDQo+ID4gPiBkZXZpY2UhIik7DQo+ID4gPiArcmV0dXJuIC1F Tk9FTlQ7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gK3NucHJpbnRmKGRldl9uYW1lLCBSVEVf UkFXREVWX05BTUVfTUFYX0xFTiwgIiVkfCVzIiwNCj4gYXJncy5wb3J0LA0KPiA+ID4gK2FyZ3Mu YmRmKTsNCj4gPiA+ICByZXQgPSBydGVfZWFsX2hvdHBsdWdfYWRkKFJURV9TVFIoSUZQR0FfQlVT X05BTUUpLA0KPiA+ID4gLWRldl9uYW1lLCBkZXZhcmdzLT5hcmdzKTsNCj4gPiA+IC1lbmQ6DQo+ ID4gPiAtcnRlX2t2YXJnc19mcmVlKGt2bGlzdCk7DQo+ID4gPiAtZnJlZShuYW1lKTsNCj4gPiA+ ICtkZXZfbmFtZSwgdmRldi0+ZGV2aWNlLmRldmFyZ3MtPmFyZ3MpOyBpZiAocmV0KSB7DQo+ID4g PiArcnRlX2ZyZWUoaWZwZ2FfZGV2LT52ZGV2X25hbWVbaV0pOw0KPiA+ID4gK2lmcGdhX2Rldi0+ dmRldl9uYW1lW2ldID0gTlVMTDsNCj4gPiA+ICt9DQo+ID4gPg0KPiA+ID4gIHJldHVybiByZXQ7 DQo+ID4gPiAgfQ0KPiA+ID4gQEAgLTE3ODgsMTAgKzE4NDUsNDcgQEAgc3RhdGljIGludCBpZnBn YV9yYXdkZXZfZ2V0X3N0cmluZ19hcmcoY29uc3QNCj4gPiA+IGNoYXIgKmtleSBfX3J0ZV91bnVz ZWQsICBzdGF0aWMgaW50ICBpZnBnYV9jZmdfcmVtb3ZlKHN0cnVjdA0KPiA+ID4gcnRlX3ZkZXZf ZGV2aWNlICp2ZGV2KSAgeyAtSUZQR0FfUkFXREVWX1BNRF9JTkZPKCJSZW1vdmUNCj4gaWZwZ2Ff Y2ZnDQo+ID4gPiAlcCIsIC12ZGV2KTsNCj4gPiA+ICtzdHJ1Y3QgcnRlX3Jhd2RldiAqcmF3ZGV2 ID0gTlVMTDsNCj4gPiA+ICtzdHJ1Y3QgaWZwZ2FfcmF3ZGV2ICppZnBnYV9kZXY7DQo+ID4gPiAr c3RydWN0IGlmcGdhX3ZkZXZfYXJncyBhcmdzOw0KPiA+ID4gK2NoYXIgZGV2X25hbWVbUlRFX1JB V0RFVl9OQU1FX01BWF9MRU5dOw0KPiA+ID4gK2NvbnN0IGNoYXIgKnZkZXZfbmFtZSA9IE5VTEw7 DQo+ID4gPiArY2hhciAqdG1wX3ZkZXYgPSBOVUxMOw0KPiA+ID4gK2ludCBpLCByZXQgPSAwOw0K PiA+ID4NCj4gPiA+IC1yZXR1cm4gMDsNCj4gPiA+ICt2ZGV2X25hbWUgPSBydGVfdmRldl9kZXZp Y2VfbmFtZSh2ZGV2KTsgaWYgKCF2ZGV2X25hbWUpIHJldHVybg0KPiA+ID4gKy1FSU5WQUw7DQo+ ID4gPiArDQo+ID4gPiArSUZQR0FfUkFXREVWX1BNRF9JTkZPKCJyZW1vdmUgaWZwZ2EgdmlydHVh bCBkZXZpY2UgJXMiLA0KPiA+ID4gdmRldl9uYW1lKTsNCj4gPiA+ICsNCj4gPiA+ICtyZXQgPSBp ZnBnYV92ZGV2X3BhcnNlX2RldmFyZ3ModmRldi0+ZGV2aWNlLmRldmFyZ3MsICZhcmdzKTsgaWYN Cj4gPiA+ICsocmV0KSByZXR1cm4gcmV0Ow0KPiA+ID4gKw0KPiA+ID4gK21lbXNldChkZXZfbmFt ZSwgMCwgc2l6ZW9mKGRldl9uYW1lKSk7IHNucHJpbnRmKGRldl9uYW1lLA0KPiA+ID4gK1JURV9S QVdERVZfTkFNRV9NQVhfTEVOLCAiSUZQR0E6JXMiLA0KPiA+ID4gYXJncy5iZGYpOw0KPiA+ID4g K3Jhd2RldiA9IHJ0ZV9yYXdkZXZfcG1kX2dldF9uYW1lZF9kZXYoZGV2X25hbWUpOw0KPiA+ID4g K2lmICghcmF3ZGV2KQ0KPiA+ID4gK3JldHVybiAtRU5PREVWOw0KPiA+ID4gK2lmcGdhX2RldiA9 IGlmcGdhX3Jhd2Rldl9nZXQocmF3ZGV2KTsgaWYgKCFpZnBnYV9kZXYpIHJldHVybg0KPiA+ID4g Ky1FTk9ERVY7DQo+ID4gPiArDQo+ID4gPiArc25wcmludGYoZGV2X25hbWUsIFJURV9SQVdERVZf TkFNRV9NQVhfTEVOLCAiJWR8JXMiLA0KPiBhcmdzLnBvcnQsDQo+ID4gPiArYXJncy5iZGYpOyBy ZXQgPSBydGVfZWFsX2hvdHBsdWdfcmVtb3ZlKFJURV9TVFIoSUZQR0FfQlVTX05BTUUpLA0KPiA+ ID4gZGV2X25hbWUpOw0KPiA+ID4gKw0KPiA+ID4gK2ZvciAoaSA9IDA7IGkgPCBJRlBHQV9NQVhf VkRFVjsgaSsrKSB7IHRtcF92ZGV2ID0NCj4gPiA+ICtpZnBnYV9kZXYtPnZkZXZfbmFtZVtpXTsg aWYgKHRtcF92ZGV2ICYmICFzdHJjbXAodG1wX3ZkZXYsDQo+ID4gPiArdmRldl9uYW1lKSkgeyBm cmVlKHRtcF92ZGV2KTsgaWZwZ2FfZGV2LT52ZGV2X25hbWVbaV0gPSBOVUxMOw0KPiA+ID4gK2Jy ZWFrOyB9IH0NCj4gPiA+ICsNCj4gPiA+ICtyZXR1cm4gcmV0Ow0KPiA+ID4gIH0NCj4gPiA+DQo+ ID4gPiAgc3RhdGljIHN0cnVjdCBydGVfdmRldl9kcml2ZXIgaWZwZ2FfY2ZnX2RyaXZlciA9IHsg ZGlmZiAtLWdpdA0KPiA+ID4gYS9kcml2ZXJzL3Jhdy9pZnBnYS9pZnBnYV9yYXdkZXYuaCBiL2Ry aXZlcnMvcmF3L2lmcGdhL2lmcGdhX3Jhd2Rldi5oDQo+ID4gPiBpbmRleCA4NTdiNzM0Li5lYjlh OWE1IDEwMDY0NA0KPiA+ID4gLS0tIGEvZHJpdmVycy9yYXcvaWZwZ2EvaWZwZ2FfcmF3ZGV2LmgN Cj4gPiA+ICsrKyBiL2RyaXZlcnMvcmF3L2lmcGdhL2lmcGdhX3Jhd2Rldi5oDQo+ID4gPiBAQCAt NTAsNiArNTAsNyBAQCBlbnVtIGlmcGdhX3Jhd2Rldl9kZXZpY2Vfc3RhdGUgew0KPiA+ID4NCj4g PiA+ICAjZGVmaW5lIElGUEdBX1JBV0RFVl9NU0lYX0lSUV9OVU0gNw0KPiA+ID4gICNkZWZpbmUg SUZQR0FfUkFXREVWX05VTSAzMg0KPiA+ID4gKyNkZWZpbmUgSUZQR0FfTUFYX1ZERVYgNA0KPiA+ ID4gICNkZWZpbmUgSUZQR0FfTUFYX0lSUSAxMg0KPiA+ID4NCj4gPiA+ICBzdHJ1Y3QgaWZwZ2Ff cmF3ZGV2IHsNCj4gPiA+IEBAIC02NCw2ICs2NSwxMyBAQCBzdHJ1Y3QgaWZwZ2FfcmF3ZGV2IHsN Cj4gPiA+ICB2b2lkICppbnRyX2hhbmRsZVtJRlBHQV9NQVhfSVJRXTsNCj4gPiA+ICAvKiBlbmFi bGUgbW9uaXRvciB0aHJlYWQgcG9sbCBkZXZpY2UncyBzZW5zb3JzIG9yIG5vdCAqLw0KPiA+ID4g IGludCBwb2xsX2VuYWJsZWQ7DQo+ID4gPiArLyogbmFtZSBvZiB2aXJ0dWFsIGRldmljZXMgY3Jl YXRlZCBvbiByYXcgZGV2aWNlICovDQo+ID4gPiArY2hhciAqdmRldl9uYW1lW0lGUEdBX01BWF9W REVWXTsNCj4gPiA+ICt9Ow0KPiA+ID4gKw0KPiA+ID4gK3N0cnVjdCBpZnBnYV92ZGV2X2FyZ3Mg ew0KPiA+ID4gK2NoYXIgYmRmWzhdOw0KPiA+ID4gK2ludCBwb3J0Ow0KPiA+ID4gIH07DQo+ID4g Pg0KPiA+ID4gIHN0cnVjdCBpZnBnYV9yYXdkZXYgKg0KPiA+ID4gLS0NCj4gPiA+IDEuOC4zLjEN Cj4gPg0KPiANCg0K