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 2A051A0C57; Mon, 1 Nov 2021 09:30:51 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A85C140E28; Mon, 1 Nov 2021 09:30:50 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id B39F040DF6 for ; Mon, 1 Nov 2021 09:30:48 +0100 (CET) X-IronPort-AV: E=McAfee;i="6200,9189,10154"; a="317170427" X-IronPort-AV: E=Sophos;i="5.87,198,1631602800"; d="scan'208";a="317170427" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Nov 2021 01:30:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,198,1631602800"; d="scan'208";a="448879945" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga006.jf.intel.com with ESMTP; 01 Nov 2021 01:30:46 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Mon, 1 Nov 2021 01:30:45 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx612.amr.corp.intel.com (10.22.229.25) 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, 1 Nov 2021 01:30:45 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.100) 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, 1 Nov 2021 01:30:42 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Kb+OPCYXbLEizO+FDtABzlWZEQE6o9aXj30PKQa9wQbu4j2H3X+2PU7dZ6Twa9A5B114NkC4QU5d68MPRb0dZyngYUJqmYnigV1gtLYxRtQ4XkmkfiiwwCNIL6XK23OCFdzVwMJncvCSMJ/jx/NM01/uWCoXLrJKznfT8JsHktGwTWqqsmzGnMo1CkyFX1iSoRy5mX01qBJDBgApGYs7vcSRLBO51u9En5n0Ak7PcT9Vv8i/jgwMu768xUyNxGya8c9PpKR8INOCCyHq5PXCMath1ciEdoTVQNWEDnF8k1Xpg9QiZPsy5dp+TLeiEo3gbMlvtk3eTd/eTCb55zGuEA== 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=kUT6Am0W7cnNhhzENjBsAgCasssdBAROoOK7Oid3Ai0=; b=Ncub5tII5MNUGbg0H5o9QAWnG9tVe4kVlPgTqGMYoUSlCiA7Xl7/oLD5dnAPKCRjWfelIElpn7HyOJwBKFO6NxAfd8dqDpdbAuKr6EFsv8MBWeyFIdpRCWwKOCkMxriQAMJz6A3KyuBPanrpfnVgPhe0fN3YC4Eb7HRLdwAq5KDCgduzGAtUOUrQ9R2N0g81DgrSxhWCBinC6A6KokSKnOc6OaRCWl37vrKMNtmhSSY4d8jMtZaLOFS0V67rDT0InAy8RfE0PBsFl8u3RgxJwuTmMsIfds8qvK/TPhEBd1jIb3hGaRZaFDqlSSnZpXOlArbAyIdG6d9E0nxKRbo2YQ== 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=kUT6Am0W7cnNhhzENjBsAgCasssdBAROoOK7Oid3Ai0=; b=byW6uhdqB6krBLyhzrfmYNblaJWd5dnpwXYaMhqA9ruaVowLEaJmU7HrJSwmTEp9PbD+v2HjR1fgEnRzUJO2E08LaDjtoT/lzoJnpfhLAHB31jENJtrLB1rKUizhVQeE8HfwJr0OWLXr6u/KhG5xFdcqkS22Hw7GcXiJ/n9iVdE= Received: from SN6PR11MB3504.namprd11.prod.outlook.com (2603:10b6:805:d0::17) by SN6PR11MB2991.namprd11.prod.outlook.com (2603:10b6:805:db::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18; Mon, 1 Nov 2021 08:30:35 +0000 Received: from SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::94ce:97cd:1b5f:b511]) by SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::94ce:97cd:1b5f:b511%7]) with mapi id 15.20.4649.019; Mon, 1 Nov 2021 08:30:35 +0000 From: "Xia, Chenbo" To: Vijay Srivastava , "dev@dpdk.org" CC: "maxime.coquelin@redhat.com" , "andrew.rybchenko@oktetlabs.ru" , "Vijay Kumar Srivastava" Thread-Topic: [PATCH v3 01/10] vdpa/sfc: introduce Xilinx vDPA driver Thread-Index: AQHXzNQRv/sLSLfEekykyYpk6JbXZavuRXIg Date: Mon, 1 Nov 2021 08:30:35 +0000 Message-ID: References: <20210706164418.32615-1-vsrivast@xilinx.com> <20211029144645.30295-1-vsrivast@xilinx.com> <20211029144645.30295-2-vsrivast@xilinx.com> In-Reply-To: <20211029144645.30295-2-vsrivast@xilinx.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: xilinx.com; dkim=none (message not signed) header.d=none;xilinx.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: bdf2d242-8060-47e0-c261-08d99d11e071 x-ms-traffictypediagnostic: SN6PR11MB2991: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3044; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +na9uWVkjRFIyuzrAsAKjtDO1heOLZpN5rfeoK67scTloh645ErVt3UL7BJoi9RIp4Abc/145sMMCvlwQuqBvubkxTflYNXuNKoGT/y1zIw/LAcqo6QLzqKqUMiObATVpPOpdEagGgKqpvn45lOY2QdzlLIsbIHQ5UHTMzOEKdEiLpik+pSmLm43k2J+2X/xZURVa17mctgm3/TD8GojW54d+XICj+YzidAXJHAvq5QeUCbnKobDFMrqkP9kE2gsHEqevLeLAai8mQg9cIq7kOTzMFrEE8nJImxENAzmviGuvjGTG8rfyE2OXlfc5Vp2DGu8kE+qnBFkdchj4HruBp6E04OyPW5yJk12EGaMaenP0R1sfsq4NKb64XuqtnLvPUlYOeSoCb+55gF8VTGfVpVdOpA83bjHNmib1NDzHlKUx9s48M0nIsf/Hl/xC+YtCAkgrxMr1Q/uUkP+kMnPD4zzNvv2s+oungezmd63mWuiOKjT/RVQvezTxTmBOJj7ERq0i9F/k4ROj0BqU0U1qFqQXeJmqd9M59za7V6IJ63ayiiFR8ayoGGk80KymyVM/CW9g5hz/lny9Kqxltyp8J541SEMrqfyG/vOUz3tObjVBrS21dA7Op40KChcFo6mW9XCI6If1/tm4AvM28A+srh8c1EBpQrWdajq+tX12APDbDQIbFEgH3eUuthz6dlRAzoq19csyx8o7NSPmBMsd1Y/33xotxapVnTBMLxTZTp3ChZHh5SJEkBexsQ1+gEIMtxEzOuTBIPUR/EeNbGXT4S4yvojpifuoXBrV13FZgU= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB3504.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(5660300002)(66556008)(66446008)(82960400001)(66946007)(66476007)(33656002)(2906002)(7696005)(966005)(64756008)(52536014)(30864003)(76116006)(110136005)(55016002)(54906003)(71200400001)(186003)(9686003)(86362001)(316002)(26005)(4326008)(6506007)(8936002)(38100700002)(8676002)(38070700005)(122000001)(508600001)(53546011)(83380400001)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QTJya0ZtbjN6ZVVTb2NKMnI3T1RlbFpoclNwVmFUczMrNHVyUXJRd1hoYUVa?= =?utf-8?B?Ly9qMStOR2xSNmdweTlEamQxajRvRWpZdExCSEcrMnZSU1Q1QW15VmZkK1NZ?= =?utf-8?B?dy9TNmVPd3NSRDZPdGJVek84SW9nN21iSmFENWlucGs0VG9pdnkrWUZrczVF?= =?utf-8?B?c2wvckRmY2RWdGxnSTgzMTVVa1Q4OUZHa3FWcEd4R2xZSEZ5eWMvUGYxZmor?= =?utf-8?B?OXFvQU0vUEtndnNJblhKaDRuS2JXM28vc1gvL0h3aE13NDJvT09HVFRPMS9p?= =?utf-8?B?NnM3VVRCL2czVjU1cGNWZTRmTnBDY2FYcFVhUGtmZnBiUkN4WWRYR2FOb3h2?= =?utf-8?B?aTQ3TnRIVjFyZDR2SzN6M3JCeGpXSVp5VGdmRmtiZUtOa3Z0UWJoUll3T3RU?= =?utf-8?B?V0FXeDBOZG5KWVVJQkgvZHJPR3BuOXhPRENMamtvRUxsTXcxbkx1ZDV2a1hs?= =?utf-8?B?MmFkaXJUSVF2Z3JoVkFrVFJkVWFhNmovL1MreE5ENnliYnArSWZGL2hLbU82?= =?utf-8?B?MWFLODUzRG1SQkdyblZKbUZZdWovWUFiSjNMTDlIRHlHUHhWRk5zbC9Qc0lh?= =?utf-8?B?VkpUbUc2M3ErMW5EVHN5ZUEvU0dxTVJtalFXR1hXN291dFRxZjQwcjFaQjJU?= =?utf-8?B?V004YkVmKys0d3lXYmZDUXhzRUI4OGJBNVg5TmJmNXgreVNTbnlpdmJ3ZXUx?= =?utf-8?B?emo4QWRNeUFCMlhKNWc2N3ZwSFA3NExSY0RLWXIwWlNDRWNHV3RYU2I4Yk1N?= =?utf-8?B?M0ZQRjcyUGM0cDJDa1gvOWxVOVBJMzB6NW9qUkp3Tzl2ZHdsU2VicDZMN1pE?= =?utf-8?B?bmRCaHN6YW9BdTVjRHhBSnVJNmp6a2k4RDhnMjNYeTY4d1kzWDhzdzk1RGdT?= =?utf-8?B?OW9YUW5GbGI3dTkxUTNVRkdOcnhSWEFPY2lDdUczTEtVaks1OFhSUlVVT0Q4?= =?utf-8?B?Snd6ZHhBQmdvejZONFVCOWRra3h4RzFEMjJuOUFWWGpDUWtNSGtjb1ZuaERK?= =?utf-8?B?L3JBcTFhTlJBWG90VlNaUDhRSmtJQVR2TEdhc085akdTbVRTckVYeEdyRjlH?= =?utf-8?B?Z1JMSWVQVTBnYk9YNHJTOS9QRU1FQmFKSkpOWSttb0lQNmtnZ000aVd4TThZ?= =?utf-8?B?UzlzN05kZVNVc25hQUNCTHBRZlVzY3dHSzhMWkI3NGQxTUIzU3BNQ2FGcExi?= =?utf-8?B?bnZwd2l1d1ZlYWZ1d1ZMRlNpMmdsbTJQOHkvZiswR3E0NlZ5alZkbC9yYWdO?= =?utf-8?B?VTJ2V1VpNncwcVJBSEt1dWVtTWYyb3AweEFLaFFDbEswbDhSQmtOQVhqQWFO?= =?utf-8?B?WDNhaWVudFppRERNekdha0lhdkdnbkNLSDMxQS8yVzNZU3VWOUZQRmN1TXpP?= =?utf-8?B?Q0t5eUg5VW5UVG9ZUXJiVEowWnpPVDVHSzBSZUh6VEZxWHJ2SUt2K3BPSXF3?= =?utf-8?B?UkFXWExBVU9RdVN3Z1hzYlJyTjVzRDdIMEROWTQ4MDhWWmFtMmZpUklYRmUx?= =?utf-8?B?M3FpSllGWDQ2SEw5OTdFbXZTeU9HYUwxcWduSnR2TUtqOXF4S0lPaWtWc1h5?= =?utf-8?B?UDA0MmpaVFM4ODNubllYZjlGYkdSaDd2emdKaGcvcERMQmp0TUdJYkI3MzNy?= =?utf-8?B?SHl6MDNqamh3RElDK1k1b1NIWk9TSGlab0Jqa0hJZjRwTWs0d2YrNVJDdURS?= =?utf-8?B?Mm5KUHVnWkQxZngzaTg5VUt2TnQvZlo2aktBZjdLSDJTZ212eTEzZGJzYVRR?= =?utf-8?B?WjB4cFNIQ1UvZitrOVpIOU5qMlVZSUljR2ZVbTBLUTYvVmpPTHFsQ2tZZVVI?= =?utf-8?B?RysvRVJPaHg4Wm8yL0tjeDVOYjNTUXd6TEtGT2JPVVBrbnlDVE9vUlUwOVo0?= =?utf-8?B?Q1dFZVlCZVh0L0Joby82R0xJTTBaanMydGtTVjB0L1MwaThYcVR2dTVPbXNH?= =?utf-8?B?dkhSSk1vM0RnUFczV2NoQUJGYk14MjdyYlZzYWlWTzlTQUNaSlJQMkpNOVpX?= =?utf-8?B?T1BQaXRmdThCTExtNzVsUURLVERGZE5YRWJJT2RoajhBQjU2TUQxOWZ5RDhM?= =?utf-8?B?bFBuU1V4UHErcjUzK3I1Qnd4bFhXQ1dKN3dkUlNvOXlkL0lWOGdscGM3QWJl?= =?utf-8?B?MkQrclEzU0FxUGtuWDNULzY0S0YvN3RUSzBVY2R1ZzBGL1pNV2pRZUptMmxL?= =?utf-8?B?UFE9PQ==?= 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: SN6PR11MB3504.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bdf2d242-8060-47e0-c261-08d99d11e071 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Nov 2021 08:30:35.2154 (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: DmUAoeC2dm/ARvzSRNrwdV5hNx3lw4Q7f4T9sYJWyAU7lKDUOFQlQihRy23sDvu0KVmubmgNCmp3G+L18h2pnA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2991 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v3 01/10] vdpa/sfc: introduce Xilinx vDPA driver 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" SGkgVmlqYXksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogVmlqYXkg U3JpdmFzdGF2YSA8dmlqYXkuc3JpdmFzdGF2YUB4aWxpbnguY29tPg0KPiBTZW50OiBGcmlkYXks IE9jdG9iZXIgMjksIDIwMjEgMTA6NDcgUE0NCj4gVG86IGRldkBkcGRrLm9yZw0KPiBDYzogbWF4 aW1lLmNvcXVlbGluQHJlZGhhdC5jb207IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNv bT47DQo+IGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1OyBWaWpheSBLdW1hciBTcml2YXN0 YXZhIDx2c3JpdmFzdEB4aWxpbnguY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggdjMgMDEvMTBdIHZk cGEvc2ZjOiBpbnRyb2R1Y2UgWGlsaW54IHZEUEEgZHJpdmVyDQo+IA0KPiBGcm9tOiBWaWpheSBL dW1hciBTcml2YXN0YXZhIDx2c3JpdmFzdEB4aWxpbnguY29tPg0KPiANCj4gQWRkIG5ldyB2RFBB IFBNRCB0byBzdXBwb3J0IHZEUEEgb3BlcmF0aW9ucyBvZiBYaWxpbnggZGV2aWNlcy4NCj4gVGhp cyBwYXRjaCBpbXBsZW1lbnRzIHByb2JlIGFuZCByZW1vdmUgZnVuY3Rpb25zLg0KPiANCj4gU2ln bmVkLW9mZi1ieTogVmlqYXkgS3VtYXIgU3JpdmFzdGF2YSA8dnNyaXZhc3RAeGlsaW54LmNvbT4N Cj4gQWNrZWQtYnk6IEFuZHJldyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJz LnJ1Pg0KDQpOb3RlIHRoYXQgeW91ciBwYXRjaCBpcyBub3QgcmViYXNlZCBvbiB0aGUgbGF0ZXN0 IGNvbW1pdC4gUmV2aWV3ZXJzDQptYXkgaGF2ZSB0cm91YmxlIHRvIHJldmlldyB5b3VyIHBhdGNo Lg0KDQo+IC0tLQ0KPiB2MjoNCj4gKiBVcGRhdGVkIGxvZ2dpbmcgbWFjcm9zIHRvIHJlbW92ZSBy ZWR1bmRhbnQgY29kZS4NCj4gDQo+IHYzOg0KPiAqIFJlcGxhY2VkIGRlcHJlY2lhdGVkIHdoaXRl bGlzdCB3aXRoIGFsbG93bGlzdC4NCj4gKiBUZXh0IGNvcnJlY3Rpb25zIGluIHRoZSBzZmMucnN0 IGFuZCBjb21taXQgbXNnLg0KPiAqIEFkZGVkIHNmYyBpbiB0aGUgdG9jdHJlZSBvZiBkb2MvZ3Vp ZGVzL3ZkcGFkZXZzL2luZGV4LnJzdC4NCj4gKiBSZW1vdmVkIGV4dHJhIGNvbXBpbGVyIGZsYWdz Lg0KPiANCj4gIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsN Cj4gIGRvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjFfMTEucnN0IHwgICA1ICsNCj4gIGRv Yy9ndWlkZXMvdmRwYWRldnMvZmVhdHVyZXMvc2ZjLmluaSAgIHwgICA5ICsrDQo+ICBkb2MvZ3Vp ZGVzL3ZkcGFkZXZzL2luZGV4LnJzdCAgICAgICAgICB8ICAgMiArDQo+ICBkb2MvZ3VpZGVzL3Zk cGFkZXZzL3NmYy5yc3QgICAgICAgICAgICB8ICA5NyArKysrKysrKysrKw0KPiAgZHJpdmVycy92 ZHBhL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgfCAgIDEgKw0KPiAgZHJpdmVycy92ZHBhL3Nm Yy9tZXNvbi5idWlsZCAgICAgICAgICAgfCAgMjIgKysrDQo+ICBkcml2ZXJzL3ZkcGEvc2ZjL3Nm Y192ZHBhLmMgICAgICAgICAgICB8IDI4Ng0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysNCj4gIGRyaXZlcnMvdmRwYS9zZmMvc2ZjX3ZkcGEuaCAgICAgICAgICAgIHwgIDQwICsr KysrDQo+ICBkcml2ZXJzL3ZkcGEvc2ZjL3NmY192ZHBhX2xvZy5oICAgICAgICB8ICA1NiArKysr KysrDQo+ICBkcml2ZXJzL3ZkcGEvc2ZjL3ZlcnNpb24ubWFwICAgICAgICAgICB8ICAgMyArDQo+ ICAxMSBmaWxlcyBjaGFuZ2VkLCA1MjcgaW5zZXJ0aW9ucygrKQ0KPiAgY3JlYXRlIG1vZGUgMTAw NjQ0IGRvYy9ndWlkZXMvdmRwYWRldnMvZmVhdHVyZXMvc2ZjLmluaQ0KPiAgY3JlYXRlIG1vZGUg MTAwNjQ0IGRvYy9ndWlkZXMvdmRwYWRldnMvc2ZjLnJzdA0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvdmRwYS9zZmMvbWVzb24uYnVpbGQNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL3ZkcGEvc2ZjL3NmY192ZHBhLmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3Zk cGEvc2ZjL3NmY192ZHBhLmgNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3ZkcGEvc2Zj L3NmY192ZHBhX2xvZy5oDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy92ZHBhL3NmYy92 ZXJzaW9uLm1hcA0KPiANCj4gZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMN Cj4gaW5kZXggYmUyYzliNi4uNWQxMmM0OSAxMDA2NDQNCj4gLS0tIGEvTUFJTlRBSU5FUlMNCj4g KysrIGIvTUFJTlRBSU5FUlMNCj4gQEAgLTEyMzYsNiArMTIzNiwxMiBAQCBGOiBkcml2ZXJzL3Zk cGEvbWx4NS8NCj4gIEY6IGRvYy9ndWlkZXMvdmRwYWRldnMvbWx4NS5yc3QNCj4gIEY6IGRvYy9n dWlkZXMvdmRwYWRldnMvZmVhdHVyZXMvbWx4NS5pbmkNCj4gDQo+ICtYaWxpbnggc2ZjIHZEUEEN Cj4gK006IFZpamF5IEt1bWFyIFNyaXZhc3RhdmEgPHZzcml2YXN0QHhpbGlueC5jb20+DQo+ICtG OiBkcml2ZXJzL3ZkcGEvc2ZjLw0KPiArRjogZG9jL2d1aWRlcy92ZHBhZGV2cy9zZmMucnN0DQo+ ICtGOiBkb2MvZ3VpZGVzL3ZkcGFkZXZzL2ZlYXR1cmVzL3NmYy5pbmkNCj4gKw0KPiANCj4gIEV2 ZW50ZGV2IERyaXZlcnMNCj4gIC0tLS0tLS0tLS0tLS0tLS0NCj4gZGlmZiAtLWdpdCBhL2RvYy9n dWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjFfMTEucnN0DQo+IGIvZG9jL2d1aWRlcy9yZWxfbm90 ZXMvcmVsZWFzZV8yMV8xMS5yc3QNCj4gaW5kZXggMWNjYWM4Ny4uYmQwYTYwNCAxMDA2NDQNCj4g LS0tIGEvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yMV8xMS5yc3QNCj4gKysrIGIvZG9j L2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yMV8xMS5yc3QNCj4gQEAgLTMwNSw2ICszMDUsMTEg QEAgTmV3IEZlYXR1cmVzDQo+ICAgICAgKiBQY2FwbmcgZm9ybWF0IHdpdGggdGltZXN0YW1wcyBh bmQgbWV0YS1kYXRhLg0KPiAgICAgICogRml4ZXMgcGFja2V0IGNhcHR1cmUgd2l0aCBzdHJpcHBl ZCBWTEFOIHRhZ3MuDQo+IA0KPiArKiAqKkFkZCBuZXcgdkRQQSBQTUQgYmFzZWQgb24gWGlsaW54 IGRldmljZXMuKioNCg0KQWRkIC0+IEFkZGVkDQoNCj4gKw0KPiArICBBZGRlZCBhIG5ldyBYaWxp bnggdkRQQSAgKGBgc2ZjX3ZkcGFgYCkgUE1ELg0KPiArICBTZWUgdGhlIDpkb2M6YC4uL3ZkcGFk ZXZzL3NmY2AgZ3VpZGUgZm9yIG1vcmUgZGV0YWlscyBvbiB0aGlzIGRyaXZlci4NCj4gKw0KPiAN Cj4gIFJlbW92ZWQgSXRlbXMNCj4gIC0tLS0tLS0tLS0tLS0NCj4gZGlmZiAtLWdpdCBhL2RvYy9n dWlkZXMvdmRwYWRldnMvZmVhdHVyZXMvc2ZjLmluaQ0KPiBiL2RvYy9ndWlkZXMvdmRwYWRldnMv ZmVhdHVyZXMvc2ZjLmluaQ0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAw Li43MWI2MTU4DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZG9jL2d1aWRlcy92ZHBhZGV2cy9m ZWF0dXJlcy9zZmMuaW5pDQo+IEBAIC0wLDAgKzEsOSBAQA0KPiArOw0KPiArOyBTdXBwb3J0ZWQg ZmVhdHVyZXMgb2YgdGhlICdzZmMnIHZEUEEgZHJpdmVyLg0KPiArOw0KPiArOyBSZWZlciB0byBk ZWZhdWx0LmluaSBmb3IgdGhlIGZ1bGwgbGlzdCBvZiBhdmFpbGFibGUgZHJpdmVyIGZlYXR1cmVz Lg0KPiArOw0KPiArW0ZlYXR1cmVzXQ0KPiArTGludXgJCQk9IFkNCj4gK3g4Ni02NAkJCT0gWQ0K PiArVXNhZ2UgZG9jCQk9IFkNCj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvdmRwYWRldnMvaW5k ZXgucnN0IGIvZG9jL2d1aWRlcy92ZHBhZGV2cy9pbmRleC5yc3QNCj4gaW5kZXggMWExM2VmZS4u ZjFhOTQ2ZSAxMDA2NDQNCj4gLS0tIGEvZG9jL2d1aWRlcy92ZHBhZGV2cy9pbmRleC5yc3QNCj4g KysrIGIvZG9jL2d1aWRlcy92ZHBhZGV2cy9pbmRleC5yc3QNCj4gQEAgLTE0LDMgKzE0LDUgQEAg d2hpY2ggY2FuIGJlIHVzZWQgZnJvbSBhbiBhcHBsaWNhdGlvbiB0aHJvdWdoIHZob3N0IEFQSS4N Cj4gICAgICBmZWF0dXJlc19vdmVydmlldw0KPiAgICAgIGlmYw0KPiAgICAgIG1seDUNCj4gKyAg ICBzZmMNCj4gKw0KDQpUaGUgYWJvdmUgYmxhbmsgbGluZSBub3QgbmVlZGVkLg0KDQo+IGRpZmYg LS1naXQgYS9kb2MvZ3VpZGVzL3ZkcGFkZXZzL3NmYy5yc3QgYi9kb2MvZ3VpZGVzL3ZkcGFkZXZz L3NmYy5yc3QNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMC4uNDRlNjk0 Zg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2RvYy9ndWlkZXMvdmRwYWRldnMvc2ZjLnJzdA0K PiBAQCAtMCwwICsxLDk3IEBADQo+ICsuLiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0z LUNsYXVzZQ0KPiArICAgIENvcHlyaWdodChjKSAyMDIxIFhpbGlueCBDb3Jwb3JhdGlvbi4NCj4g Kw0KPiArWGlsaW54IHZEUEEgZHJpdmVyDQo+ICs9PT09PT09PT09PT09PT09PT0NCj4gKw0KPiAr VGhlIFhpbGlueCB2RFBBICh2aG9zdCBkYXRhIHBhdGggYWNjZWxlcmF0aW9uKSBkcml2ZXINCj4g KCoqbGlicnRlX3BtZF9zZmNfdmRwYSoqKQ0KPiArcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlIFhp bGlueCBTTjEwMjIgU21hcnROSUNzIGZhbWlseSBvZiAxMC8yNS80MC81MC8xMDANCj4gR2Jwcw0K PiArYWRhcHRlcnMgdGhhdCBoYXZlIHN1cHBvcnQgZm9yIGxhdGVzdCBMaW51eCBhbmQgRnJlZUJT RCBvcGVyYXRpbmcgc3lzdGVtcy4NCj4gKw0KPiArTW9yZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91 bmQgYXQgWGlsaW54IHdlYnNpdGUgaHR0cHM6Ly93d3cueGlsaW54LmNvbS4NCj4gKw0KPiArDQo+ ICtYaWxpbnggdkRQQSBpbXBsZW1lbnRhdGlvbg0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gKw0KPiArZWYxMDAgZGV2aWNlIGNhbiBiZSBjb25maWd1cmVkIGluIHRoZSBuZXQgZGV2 aWNlIG9yIHZEUEEgbW9kZS4NCj4gK0FkZGluZyAiY2xhc3M9dmRwYSIgcGFyYW1ldGVyIGhlbHBz IHRvIHNwZWNpZnkgdGhhdCB0aGlzDQo+ICtkZXZpY2UgaXMgdG8gYmUgdXNlZCBpbiB2RFBBIG1v ZGUuIElmIHRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzcGVjaWZpZWQsIGRldmljZQ0KPiArd2lsbCBi ZSBwcm9iZWQgYnkgbmV0L3NmYyBkcml2ZXIgYW5kIHdpbGwgdXNlZCBhcyBhIG5ldCBkZXZpY2Uu DQo+ICsNCj4gK1RoaXMgUE1EIHVzZXMgbGliZWZ4IChjb21tb24vc2ZjX2VmeCkgY29kZSB0byBh Y2Nlc3MgdGhlIGRldmljZSBmaXJtd2FyZS4NCj4gKw0KPiArDQo+ICtTdXBwb3J0ZWQgTklDcw0K PiArLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArLSBYaWxpbnggU04xMDIyIFNtYXJ0TklDcw0KPiAr DQo+ICsNCj4gK0ZlYXR1cmVzDQo+ICstLS0tLS0tLQ0KPiArDQo+ICtGZWF0dXJlcyBvZiB0aGUg WGlsaW54IHZEUEEgZHJpdmVyIGFyZToNCj4gKw0KPiArLSBDb21wYXRpYmlsaXR5IHdpdGggdmly dGlvIDAuOTUgYW5kIDEuMA0KPiArDQo+ICsNCj4gK05vbi1zdXBwb3J0ZWQgRmVhdHVyZXMNCj4g Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArLSBDb250cm9sIFF1ZXVlDQo+ICstIE11 bHRpIHF1ZXVlDQo+ICstIExpdmUgTWlncmF0aW9uDQo+ICsNCj4gKw0KPiArUHJlcmVxdWlzaXRl cw0KPiArLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICtSZXF1aXJlcyBmaXJtd2FyZSB2ZXJzaW9uOiB2 MS4wLjcuMCBvciBoaWdoZXINCj4gKw0KPiArVmlzaXQgYFhpbGlueCBTdXBwb3J0IERvd25sb2Fk cyA8aHR0cHM6Ly93d3cueGlsaW54LmNvbS9zdXBwb3J0Lmh0bWw+YF8NCj4gK3RvIGdldCBYaWxp bnggVXRpbGl0aWVzIHdpdGggdGhlIGxhdGVzdCBmaXJtd2FyZS4NCj4gK0ZvbGxvdyBpbnN0cnVj dGlvbnMgZnJvbSBBbHZlbyBTTjEwMDAgU21hcnROSUNzIFVzZXIgR3VpZGUgdG8NCj4gK3VwZGF0 ZSBmaXJtd2FyZSBhbmQgY29uZmlndXJlIHRoZSBhZGFwdGVyLg0KPiArDQo+ICsNCj4gK1Blci1E ZXZpY2UgUGFyYW1ldGVycw0KPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4gK1RoZSBm b2xsb3dpbmcgcGVyLWRldmljZSBwYXJhbWV0ZXJzIGNhbiBiZSBwYXNzZWQgdmlhIEVBTCBQQ0kg ZGV2aWNlDQo+ICthbGxvd2xpc3Qgb3B0aW9uIGxpa2UgIi1hIDAyOjAwLjAsYXJnMT12YWx1ZTEs Li4uIi4NCj4gKw0KPiArQ2FzZS1pbnNlbnNpdGl2ZSAxL3kveWVzL29uIG9yIDAvbi9uby9vZmYg bWF5IGJlIHVzZWQgdG8gc3BlY2lmeQ0KPiArYm9vbGVhbiBwYXJhbWV0ZXJzIHZhbHVlLg0KPiAr DQo+ICstIGBgY2xhc3NgYCBbbmV0fHZkcGFdIChkZWZhdWx0ICoqbmV0KiopDQo+ICsNCj4gKyAg Q2hvb3NlIHRoZSBtb2RlIG9mIG9wZXJhdGlvbiBvZiBlZjEwMCBkZXZpY2UuDQo+ICsgICoqbmV0 KiogZGV2aWNlIHdpbGwgd29yayBhcyBuZXR3b3JrIGRldmljZSBhbmQgd2lsbCBiZSBwcm9iZWQg YnkgbmV0L3NmYw0KPiBkcml2ZXIuDQo+ICsgICoqdmRwYSoqIGRldmljZSB3aWxsIHdvcmsgYXMg dmRwYSBkZXZpY2UgYW5kIHdpbGwgYmUgcHJvYmVkIGJ5IHZkcGEvc2ZjDQo+IGRyaXZlci4NCj4g KyAgSWYgdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHNwZWNpZmllZCB0aGVuIGVmMTAwIGRldmljZSB3 aWxsIG9wZXJhdGUgYXMNCj4gbmV0d29yayBkZXZpY2UuDQo+ICsNCj4gKw0KPiArRHluYW1pYyBM b2dnaW5nIFBhcmFtZXRlcnMNCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4g K09uZSBtYXkgbGV2ZXJhZ2UgRUFMIG9wdGlvbiAiLS1sb2ctbGV2ZWwiIHRvIGNoYW5nZSBkZWZh dWx0IGxldmVscw0KPiArZm9yIHRoZSBsb2cgdHlwZXMgc3VwcG9ydGVkIGJ5IHRoZSBkcml2ZXIu IFRoZSBvcHRpb24gaXMgdXNlZCB3aXRoDQo+ICthbiBhcmd1bWVudCB0eXBpY2FsbHkgY29uc2lz dGluZyBvZiB0d28gcGFydHMgc2VwYXJhdGVkIGJ5IGEgY29sb24uDQo+ICsNCj4gK0xldmVsIHZh bHVlIGlzIHRoZSBsYXN0IHBhcnQgd2hpY2ggdGFrZXMgYSBzeW1ib2xpYyBuYW1lIChvciBpbnRl Z2VyKS4NCj4gK0xvZyB0eXBlIGlzIHRoZSBmb3JtZXIgcGFydCB3aGljaCBtYXkgc2hlbGwgbWF0 Y2ggc3ludGF4Lg0KPiArRGVwZW5kaW5nIG9uIHRoZSBjaG9pY2Ugb2YgdGhlIGV4cHJlc3Npb24s IHRoZSBnaXZlbiBsb2cgbGV2ZWwgbWF5DQo+ICtiZSB1c2VkIGVpdGhlciBmb3Igc29tZSBzcGVj aWZpYyBsb2cgdHlwZSBvciBmb3IgYSBzdWJzZXQgb2YgdHlwZXMuDQo+ICsNCj4gK1NGQyB2RFBB IFBNRCBwcm92aWRlcyB0aGUgZm9sbG93aW5nIGxvZyB0eXBlcyBhdmFpbGFibGUgZm9yIGNvbnRy b2w6DQo+ICsNCj4gKy0gYGBwbWQudmRwYS5zZmMuZHJpdmVyYGAgKGRlZmF1bHQgbGV2ZWwgaXMg Kipub3RpY2UqKikNCj4gKw0KPiArICBBZmZlY3RzIGRyaXZlci13aWRlIG1lc3NhZ2VzIHVucmVs YXRlZCB0byBhbnkgcGFydGljdWxhciBkZXZpY2VzLg0KPiArDQo+ICstIGBgcG1kLnZkcGEuc2Zj Lm1haW5gYCAoZGVmYXVsdCBsZXZlbCBpcyAqKm5vdGljZSoqKQ0KPiArDQo+ICsgIE1hdGNoZXMg YSBzdWJzZXQgb2YgcGVyLXBvcnQgbG9nIHR5cGVzIHJlZ2lzdGVyZWQgZHVyaW5nIHJ1bnRpbWUu DQo+ICsgIEEgZnVsbCBuYW1lIGZvciBhIHBhcnRpY3VsYXIgdHlwZSBtYXkgYmUgb2J0YWluZWQg YnkgYXBwZW5kaW5nIGENCj4gKyAgZG90IGFuZCBhIFBDSSBkZXZpY2UgaWRlbnRpZmllciAoYGBY WFhYOlhYOlhYLlhgYCkgdG8gdGhlIHByZWZpeC4NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmRw YS9tZXNvbi5idWlsZCBiL2RyaXZlcnMvdmRwYS9tZXNvbi5idWlsZA0KPiBpbmRleCBmNzY1ZmUz Li43NzQxMmM3IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL3ZkcGEvbWVzb24uYnVpbGQNCj4gKysr IGIvZHJpdmVycy92ZHBhL21lc29uLmJ1aWxkDQo+IEBAIC04LDYgKzgsNyBAQCBlbmRpZg0KPiAg ZHJpdmVycyA9IFsNCj4gICAgICAgICAgJ2lmYycsDQo+ICAgICAgICAgICdtbHg1JywNCj4gKyAg ICAgICAgJ3NmYycsDQo+ICBdDQo+ICBzdGRfZGVwcyA9IFsnYnVzX3BjaScsICdrdmFyZ3MnXQ0K PiAgc3RkX2RlcHMgKz0gWyd2aG9zdCddDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZkcGEvc2Zj L21lc29uLmJ1aWxkIGIvZHJpdmVycy92ZHBhL3NmYy9tZXNvbi5idWlsZA0KPiBuZXcgZmlsZSBt b2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi40MjU1ZDY1DQo+IC0tLSAvZGV2L251bGwNCj4g KysrIGIvZHJpdmVycy92ZHBhL3NmYy9tZXNvbi5idWlsZA0KPiBAQCAtMCwwICsxLDIyIEBADQo+ ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gKyMNCj4gKyMgQ29w eXJpZ2h0KGMpIDIwMjAtMjAyMSBYaWxpbngsIEluYy4NCj4gKw0KPiAraWYgKGFyY2hfc3ViZGly ICE9ICd4ODYnIG9yIG5vdCBkcGRrX2NvbmYuZ2V0KCdSVEVfQVJDSF82NCcpKSBhbmQNCj4gKGFy Y2hfc3ViZGlyICE9ICdhcm0nIG9yIG5vdCBob3N0X21hY2hpbmUuY3B1X2ZhbWlseSgpLnN0YXJ0 c3dpdGgoJ2FhcmNoNjQnKSkNCj4gKwlidWlsZCA9IGZhbHNlDQo+ICsJcmVhc29uID0gJ29ubHkg c3VwcG9ydGVkIG9uIHg4Nl82NCBhbmQgYWFyY2g2NCcNCj4gK2VuZGlmDQo+ICsNCj4gK2ZtdF9u YW1lID0gJ3NmY192ZHBhJw0KPiArZXh0cmFfZmxhZ3MgPSBbXQ0KPiArDQo+ICtmb3JlYWNoIGZs YWc6IGV4dHJhX2ZsYWdzDQo+ICsJaWYgY2MuaGFzX2FyZ3VtZW50KGZsYWcpDQo+ICsJCWNmbGFn cyArPSBmbGFnDQo+ICsJZW5kaWYNCj4gK2VuZGZvcmVhY2gNCj4gKw0KPiArZGVwcyArPSBbJ2Nv bW1vbl9zZmNfZWZ4JywgJ2J1c19wY2knXQ0KPiArc291cmNlcyA9IGZpbGVzKA0KPiArCSdzZmNf dmRwYS5jJywNCj4gKykNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmRwYS9zZmMvc2ZjX3ZkcGEu YyBiL2RyaXZlcnMvdmRwYS9zZmMvc2ZjX3ZkcGEuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiBpbmRleCAwMDAwMDAwLi5kODVjNTJiDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZHJpdmVy cy92ZHBhL3NmYy9zZmNfdmRwYS5jDQo+IEBAIC0wLDAgKzEsMjg2IEBADQo+ICsvKiBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+ICsgKg0KPiArICogQ29weXJpZ2h0KGMp IDIwMjAtMjAyMSBYaWxpbngsIEluYy4NCj4gKyAqLw0KPiArDQo+ICsjaW5jbHVkZSA8c3RkYm9v bC5oPg0KPiArI2luY2x1ZGUgPHN0ZGludC5oPg0KPiArI2luY2x1ZGUgPHN5cy9xdWV1ZS5oPg0K PiArDQo+ICsjaW5jbHVkZSA8cnRlX2NvbW1vbi5oPg0KPiArI2luY2x1ZGUgPHJ0ZV9lcnJuby5o Pg0KPiArI2luY2x1ZGUgPHJ0ZV9zdHJpbmdfZm5zLmg+DQo+ICsjaW5jbHVkZSA8cnRlX3ZmaW8u aD4NCj4gKyNpbmNsdWRlIDxydGVfdmhvc3QuaD4NCj4gKw0KPiArI2luY2x1ZGUgImVmeC5oIg0K PiArI2luY2x1ZGUgInNmY19lZnguaCINCj4gKyNpbmNsdWRlICJzZmNfdmRwYS5oIg0KPiArDQo+ ICtUQUlMUV9IRUFEKHNmY192ZHBhX2FkYXB0ZXJfbGlzdF9oZWFkLCBzZmNfdmRwYV9hZGFwdGVy KTsNCj4gK3N0YXRpYyBzdHJ1Y3Qgc2ZjX3ZkcGFfYWRhcHRlcl9saXN0X2hlYWQgc2ZjX3ZkcGFf YWRhcHRlcl9saXN0ID0NCj4gKwlUQUlMUV9IRUFEX0lOSVRJQUxJWkVSKHNmY192ZHBhX2FkYXB0 ZXJfbGlzdCk7DQo+ICsNCj4gK3N0YXRpYyBwdGhyZWFkX211dGV4X3Qgc2ZjX3ZkcGFfYWRhcHRl cl9saXN0X2xvY2sgPSBQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVSOw0KPiArDQo+ICtzdHJ1Y3Qg c2ZjX3ZkcGFfYWRhcHRlciAqDQo+ICtzZmNfdmRwYV9nZXRfYWRhcHRlcl9ieV9kZXYoc3RydWN0 IHJ0ZV9wY2lfZGV2aWNlICpwZGV2KQ0KPiArew0KPiArCWJvb2wgZm91bmQgPSBmYWxzZTsNCj4g KwlzdHJ1Y3Qgc2ZjX3ZkcGFfYWRhcHRlciAqc3ZhOw0KPiArDQo+ICsJcHRocmVhZF9tdXRleF9s b2NrKCZzZmNfdmRwYV9hZGFwdGVyX2xpc3RfbG9jayk7DQo+ICsNCj4gKwlUQUlMUV9GT1JFQUNI KHN2YSwgJnNmY192ZHBhX2FkYXB0ZXJfbGlzdCwgbmV4dCkgew0KPiArCQlpZiAocGRldiA9PSBz dmEtPnBkZXYpIHsNCj4gKwkJCWZvdW5kID0gdHJ1ZTsNCj4gKwkJCWJyZWFrOw0KPiArCQl9DQo+ ICsJfQ0KPiArDQo+ICsJcHRocmVhZF9tdXRleF91bmxvY2soJnNmY192ZHBhX2FkYXB0ZXJfbGlz dF9sb2NrKTsNCj4gKw0KPiArCXJldHVybiBmb3VuZCA/IHN2YSA6IE5VTEw7DQo+ICt9DQo+ICsN Cj4gK3N0YXRpYyBpbnQNCj4gK3NmY192ZHBhX3ZmaW9fc2V0dXAoc3RydWN0IHNmY192ZHBhX2Fk YXB0ZXIgKnN2YSkNCj4gK3sNCj4gKwlzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKmRldiA9IHN2YS0+ cGRldjsNCj4gKwljaGFyIGRldl9uYW1lW1JURV9ERVZfTkFNRV9NQVhfTEVOXSA9IHswfTsNCj4g KwlpbnQgcmM7DQo+ICsNCj4gKwlpZiAoZGV2ID09IE5VTEwpDQoNCkkgdGhpbmsgaXQgd2lsbCBu ZXZlciBoYXBwZW4NCg0KPiArCQlnb3RvIGZhaWxfaW52YWw7DQo+ICsNCj4gKwlydGVfcGNpX2Rl dmljZV9uYW1lKCZkZXYtPmFkZHIsIGRldl9uYW1lLCBSVEVfREVWX05BTUVfTUFYX0xFTik7DQo+ ICsNCj4gKwlzdmEtPnZmaW9fY29udGFpbmVyX2ZkID0gcnRlX3ZmaW9fY29udGFpbmVyX2NyZWF0 ZSgpOw0KPiArCWlmIChzdmEtPnZmaW9fY29udGFpbmVyX2ZkIDwgMCkJew0KPiArCQlzZmNfdmRw YV9lcnIoc3ZhLCAiZmFpbGVkIHRvIGNyZWF0ZSBWRklPIGNvbnRhaW5lciIpOw0KPiArCQlnb3Rv IGZhaWxfY29udGFpbmVyX2NyZWF0ZTsNCj4gKwl9DQo+ICsNCj4gKwlyYyA9IHJ0ZV92ZmlvX2dl dF9ncm91cF9udW0ocnRlX3BjaV9nZXRfc3lzZnNfcGF0aCgpLCBkZXZfbmFtZSwNCj4gKwkJCQkg ICAgJnN2YS0+aW9tbXVfZ3JvdXBfbnVtKTsNCj4gKwlpZiAocmMgPD0gMCkgew0KPiArCQlzZmNf dmRwYV9lcnIoc3ZhLCAiZmFpbGVkIHRvIGdldCBJT01NVSBncm91cCBmb3IgJXMgOiAlcyIsDQo+ ICsJCQkgICAgIGRldl9uYW1lLCBydGVfc3RyZXJyb3IoLXJjKSk7DQo+ICsJCWdvdG8gZmFpbF9n ZXRfZ3JvdXBfbnVtOw0KPiArCX0NCj4gKw0KPiArCXN2YS0+dmZpb19ncm91cF9mZCA9DQo+ICsJ CXJ0ZV92ZmlvX2NvbnRhaW5lcl9ncm91cF9iaW5kKHN2YS0+dmZpb19jb250YWluZXJfZmQsDQoN CkRQREsgYWxsb3dzIHVwIHRvIDEwMCBjaGFycyBwZXIgbGluZS4gUGxlYXNlIGNoZWNrIGFsbCBj b2RlIHRoYXQgZG8gbm90DQpuZWVkIG5ldyBsaW5lcy4gSXQgd2lsbCBtYWtlIHRoZSBjb2RlIGxv b2sgYmV0dGVyLg0KDQo+ICsJCQkJCSAgICAgIHN2YS0+aW9tbXVfZ3JvdXBfbnVtKTsNCj4gKwlp ZiAoc3ZhLT52ZmlvX2dyb3VwX2ZkIDwgMCkgew0KPiArCQlzZmNfdmRwYV9lcnIoc3ZhLA0KPiAr CQkJICAgICAiZmFpbGVkIHRvIGJpbmQgSU9NTVUgZ3JvdXAgJWQgdG8gY29udGFpbmVyICVkIiwN Cj4gKwkJCSAgICAgc3ZhLT5pb21tdV9ncm91cF9udW0sIHN2YS0+dmZpb19jb250YWluZXJfZmQp Ow0KPiArCQlnb3RvIGZhaWxfZ3JvdXBfYmluZDsNCj4gKwl9DQo+ICsNCj4gKwlpZiAocnRlX3Bj aV9tYXBfZGV2aWNlKGRldikgIT0gMCkgew0KPiArCQlzZmNfdmRwYV9lcnIoc3ZhLCAiZmFpbGVk IHRvIG1hcCBQQ0kgZGV2aWNlICVzIDogJXMiLA0KPiArCQkJICAgICBkZXZfbmFtZSwgcnRlX3N0 cmVycm9yKHJ0ZV9lcnJubykpOw0KPiArCQlnb3RvIGZhaWxfcGNpX21hcF9kZXZpY2U7DQo+ICsJ fQ0KPiArDQo+ICsJc3ZhLT52ZmlvX2Rldl9mZCA9IHJ0ZV9pbnRyX2Rldl9mZF9nZXQoZGV2LT5p bnRyX2hhbmRsZSk7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gKw0KPiArZmFpbF9wY2lfbWFwX2Rl dmljZToNCj4gKwlpZiAocnRlX3ZmaW9fY29udGFpbmVyX2dyb3VwX3VuYmluZChzdmEtPnZmaW9f Y29udGFpbmVyX2ZkLA0KPiArCQkJCQlzdmEtPmlvbW11X2dyb3VwX251bSkgIT0gMCkgew0KPiAr CQlzZmNfdmRwYV9lcnIoc3ZhLA0KPiArCQkJICAgICAiZmFpbGVkIHRvIHVuYmluZCBJT01NVSBn cm91cCAlZCBmcm9tIGNvbnRhaW5lciAlZCIsDQo+ICsJCQkgICAgIHN2YS0+aW9tbXVfZ3JvdXBf bnVtLCBzdmEtPnZmaW9fY29udGFpbmVyX2ZkKTsNCj4gKwl9DQo+ICsNCj4gK2ZhaWxfZ3JvdXBf YmluZDoNCj4gK2ZhaWxfZ2V0X2dyb3VwX251bToNCj4gKwlpZiAocnRlX3ZmaW9fY29udGFpbmVy X2Rlc3Ryb3koc3ZhLT52ZmlvX2NvbnRhaW5lcl9mZCkgIT0gMCkgew0KPiArCQlzZmNfdmRwYV9l cnIoc3ZhLCAiZmFpbGVkIHRvIGRlc3Ryb3kgY29udGFpbmVyICVkIiwNCj4gKwkJCSAgICAgc3Zh LT52ZmlvX2NvbnRhaW5lcl9mZCk7DQo+ICsJfQ0KPiArDQo+ICtmYWlsX2NvbnRhaW5lcl9jcmVh dGU6DQo+ICtmYWlsX2ludmFsOg0KPiArCXJldHVybiAtMTsNCj4gK30NCj4gKw0KPiArc3RhdGlj IHZvaWQNCj4gK3NmY192ZHBhX3ZmaW9fdGVhcmRvd24oc3RydWN0IHNmY192ZHBhX2FkYXB0ZXIg KnN2YSkNCj4gK3sNCj4gKwlydGVfcGNpX3VubWFwX2RldmljZShzdmEtPnBkZXYpOw0KPiArDQo+ ICsJaWYgKHJ0ZV92ZmlvX2NvbnRhaW5lcl9ncm91cF91bmJpbmQoc3ZhLT52ZmlvX2NvbnRhaW5l cl9mZCwNCj4gKwkJCQkJICAgIHN2YS0+aW9tbXVfZ3JvdXBfbnVtKSAhPSAwKSB7DQo+ICsJCXNm Y192ZHBhX2VycihzdmEsDQo+ICsJCQkgICAgICJmYWlsZWQgdG8gdW5iaW5kIElPTU1VIGdyb3Vw ICVkIGZyb20gY29udGFpbmVyICVkIiwNCj4gKwkJCSAgICAgc3ZhLT5pb21tdV9ncm91cF9udW0s IHN2YS0+dmZpb19jb250YWluZXJfZmQpOw0KPiArCX0NCj4gKw0KPiArCWlmIChydGVfdmZpb19j b250YWluZXJfZGVzdHJveShzdmEtPnZmaW9fY29udGFpbmVyX2ZkKSAhPSAwKSB7DQo+ICsJCXNm Y192ZHBhX2VycihzdmEsDQo+ICsJCQkgICAgICJmYWlsZWQgdG8gZGVzdHJveSBjb250YWluZXIg JWQiLA0KPiArCQkJICAgICBzdmEtPnZmaW9fY29udGFpbmVyX2ZkKTsNCj4gKwl9DQo+ICt9DQo+ ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3NmY192ZHBhX3NldF9sb2dfcHJlZml4KHN0cnVjdCBzZmNf dmRwYV9hZGFwdGVyICpzdmEpDQo+ICt7DQo+ICsJc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpwY2lf ZGV2ID0gc3ZhLT5wZGV2Ow0KPiArCWludCByZXQ7DQo+ICsNCj4gKwlyZXQgPSBzbnByaW50Zihz dmEtPmxvZ19wcmVmaXgsIHNpemVvZihzdmEtPmxvZ19wcmVmaXgpLA0KPiArCQkgICAgICAgIlBN RDogc2ZjX3ZkcGEgIiBQQ0lfUFJJX0ZNVCAiIDogIiwNCj4gKwkJICAgICAgIHBjaV9kZXYtPmFk ZHIuZG9tYWluLCBwY2lfZGV2LT5hZGRyLmJ1cywNCj4gKwkJICAgICAgIHBjaV9kZXYtPmFkZHIu ZGV2aWQsIHBjaV9kZXYtPmFkZHIuZnVuY3Rpb24pOw0KPiArDQo+ICsJaWYgKHJldCA8IDAgfHwg cmV0ID49IChpbnQpc2l6ZW9mKHN2YS0+bG9nX3ByZWZpeCkpIHsNCj4gKwkJU0ZDX1ZEUEFfR0VO RVJJQ19MT0coRVJSLA0KPiArCQkJInJlc2VydmVkIGxvZyBwcmVmaXggaXMgdG9vIHNob3J0IGZv ciAiIFBDSV9QUklfRk1ULA0KPiArCQkJcGNpX2Rldi0+YWRkci5kb21haW4sIHBjaV9kZXYtPmFk ZHIuYnVzLA0KPiArCQkJcGNpX2Rldi0+YWRkci5kZXZpZCwgcGNpX2Rldi0+YWRkci5mdW5jdGlv bik7DQo+ICsJCXJldHVybiAtRUlOVkFMOw0KPiArCX0NCj4gKw0KPiArCXJldHVybiAwOw0KPiAr fQ0KPiArDQo+ICt1aW50MzJfdA0KPiArc2ZjX3ZkcGFfcmVnaXN0ZXJfbG9ndHlwZShjb25zdCBz dHJ1Y3QgcnRlX3BjaV9hZGRyICpwY2lfYWRkciwNCj4gKwkJCSAgY29uc3QgY2hhciAqbHRfcHJl Zml4X3N0ciwgdWludDMyX3QgbGxfZGVmYXVsdCkNCj4gK3sNCj4gKwlzaXplX3QgbHRfcHJlZml4 X3N0cl9zaXplID0gc3RybGVuKGx0X3ByZWZpeF9zdHIpOw0KPiArCXNpemVfdCBsdF9zdHJfc2l6 ZV9tYXg7DQo+ICsJY2hhciAqbHRfc3RyID0gTlVMTDsNCj4gKwlpbnQgcmV0Ow0KPiArDQo+ICsJ aWYgKFNJWkVfTUFYIC0gUENJX1BSSV9TVFJfU0laRSAtIDEgPiBsdF9wcmVmaXhfc3RyX3NpemUp IHsNCj4gKwkJKytsdF9wcmVmaXhfc3RyX3NpemU7IC8qIFJlc2VydmUgc3BhY2UgZm9yIHByZWZp eCBzZXBhcmF0b3IgKi8NCj4gKwkJbHRfc3RyX3NpemVfbWF4ID0gbHRfcHJlZml4X3N0cl9zaXpl ICsgUENJX1BSSV9TVFJfU0laRSArIDE7DQo+ICsJfSBlbHNlIHsNCj4gKwkJcmV0dXJuIFJURV9M T0dUWVBFX1BNRDsNCj4gKwl9DQo+ICsNCj4gKwlsdF9zdHIgPSBydGVfem1hbGxvYygibG9ndHlw ZV9zdHIiLCBsdF9zdHJfc2l6ZV9tYXgsIDApOw0KPiArCWlmIChsdF9zdHIgPT0gTlVMTCkNCj4g KwkJcmV0dXJuIFJURV9MT0dUWVBFX1BNRDsNCj4gKw0KPiArCXN0cm5jcHkobHRfc3RyLCBsdF9w cmVmaXhfc3RyLCBsdF9wcmVmaXhfc3RyX3NpemUpOw0KPiArCWx0X3N0cltsdF9wcmVmaXhfc3Ry X3NpemUgLSAxXSA9ICcuJzsNCj4gKwlydGVfcGNpX2RldmljZV9uYW1lKHBjaV9hZGRyLCBsdF9z dHIgKyBsdF9wcmVmaXhfc3RyX3NpemUsDQo+ICsJCQkgICAgbHRfc3RyX3NpemVfbWF4IC0gbHRf cHJlZml4X3N0cl9zaXplKTsNCj4gKwlsdF9zdHJbbHRfc3RyX3NpemVfbWF4IC0gMV0gPSAnXDAn Ow0KPiArDQo+ICsJcmV0ID0gcnRlX2xvZ19yZWdpc3Rlcl90eXBlX2FuZF9waWNrX2xldmVsKGx0 X3N0ciwgbGxfZGVmYXVsdCk7DQo+ICsJcnRlX2ZyZWUobHRfc3RyKTsNCj4gKw0KPiArCXJldHVy biByZXQgPCAwID8gUlRFX0xPR1RZUEVfUE1EIDogcmV0Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMg c3RydWN0IHJ0ZV9wY2lfaWQgcGNpX2lkX3NmY192ZHBhX2VmeF9tYXBbXSA9IHsNCj4gKwl7IFJU RV9QQ0lfREVWSUNFKEVGWF9QQ0lfVkVOSURfWElMSU5YLCBFRlhfUENJX0RFVklEX1JJVkVSSEVB RF9WRikgfSwNCj4gKwl7IC52ZW5kb3JfaWQgPSAwLCAvKiBzZW50aW5lbCAqLyB9LA0KPiArfTsN Cj4gKw0KPiArc3RhdGljIGludA0KPiArc2ZjX3ZkcGFfcGNpX3Byb2JlKHN0cnVjdCBydGVfcGNp X2RyaXZlciAqcGNpX2RydiBfX3J0ZV91bnVzZWQsDQo+ICsJc3RydWN0IHJ0ZV9wY2lfZGV2aWNl ICpwY2lfZGV2KQ0KPiArew0KPiArCXN0cnVjdCBzZmNfdmRwYV9hZGFwdGVyICpzdmEgPSBOVUxM Ow0KPiArCXVpbnQzMl90IGxvZ3R5cGVfbWFpbjsNCj4gKwlpbnQgcmV0ID0gMDsNCj4gKw0KPiAr CWlmIChzZmNfZWZ4X2Rldl9jbGFzc19nZXQocGNpX2Rldi0+ZGV2aWNlLmRldmFyZ3MpICE9DQo+ ICsJCQlTRkNfRUZYX0RFVl9DTEFTU19WRFBBKSB7DQo+ICsJCVNGQ19WRFBBX0dFTkVSSUNfTE9H KElORk8sDQo+ICsJCQkiSW5jb21wYXRpYmxlIGRldmljZSBjbGFzczogc2tpcCBwcm9iaW5nLCBz aG91bGQgYmUgcHJvYmVkDQo+IGJ5IG90aGVyIHNmYyBkcml2ZXIuIik7DQo+ICsJCQlyZXR1cm4g MTsNCj4gKwl9DQo+ICsNCj4gKwkvKg0KPiArCSAqIEl0IHdpbGwgbm90IGJlIHByb2JlZCBpbiB0 aGUgc2Vjb25kYXJ5IHByb2Nlc3MuIEFzIGRldmljZSBjbGFzcw0KPiArCSAqIGlzIHZkcGEgc28g cmV0dXJuIDAgdG8gYXZvaWQgcHJvYmUgYnkgb3RoZXIgc2ZjIGRyaXZlcg0KPiArCSAqLw0KPiAr CWlmIChydGVfZWFsX3Byb2Nlc3NfdHlwZSgpICE9IFJURV9QUk9DX1BSSU1BUlkpDQo+ICsJCXJl dHVybiAwOw0KPiArDQo+ICsJbG9ndHlwZV9tYWluID0gc2ZjX3ZkcGFfcmVnaXN0ZXJfbG9ndHlw ZSgmcGNpX2Rldi0+YWRkciwNCj4gKwkJCQkJCSBTRkNfVkRQQV9MT0dUWVBFX01BSU5fU1RSLA0K PiArCQkJCQkJIFJURV9MT0dfTk9USUNFKTsNCj4gKw0KPiArCXN2YSA9IHJ0ZV96bWFsbG9jKCJz ZmNfdmRwYSIsIHNpemVvZihzdHJ1Y3Qgc2ZjX3ZkcGFfYWRhcHRlciksIDApOw0KPiArCWlmIChz dmEgPT0gTlVMTCkNCj4gKwkJZ290byBmYWlsX3ptYWxsb2M7DQo+ICsNCj4gKwlzdmEtPnBkZXYg PSBwY2lfZGV2Ow0KPiArCXN2YS0+bG9ndHlwZV9tYWluID0gbG9ndHlwZV9tYWluOw0KPiArDQo+ ICsJcmV0ID0gc2ZjX3ZkcGFfc2V0X2xvZ19wcmVmaXgoc3ZhKTsNCj4gKwlpZiAocmV0ICE9IDAp DQo+ICsJCWdvdG8gZmFpbF9zZXRfbG9nX3ByZWZpeDsNCj4gKw0KPiArCXNmY192ZHBhX2xvZ19p bml0KHN2YSwgImVudHJ5Iik7DQo+ICsNCj4gKwlzZmNfdmRwYV9sb2dfaW5pdChzdmEsICJ2Zmlv IGluaXQiKTsNCj4gKwlpZiAoc2ZjX3ZkcGFfdmZpb19zZXR1cChzdmEpIDwgMCkgew0KPiArCQlz ZmNfdmRwYV9lcnIoc3ZhLCAiZmFpbGVkIHRvIHNldHVwIGRldmljZSAlcyIsIHBjaV9kZXYtPm5h bWUpOw0KPiArCQlnb3RvIGZhaWxfdmZpb19zZXR1cDsNCj4gKwl9DQo+ICsNCj4gKwlwdGhyZWFk X211dGV4X2xvY2soJnNmY192ZHBhX2FkYXB0ZXJfbGlzdF9sb2NrKTsNCj4gKwlUQUlMUV9JTlNF UlRfVEFJTCgmc2ZjX3ZkcGFfYWRhcHRlcl9saXN0LCBzdmEsIG5leHQpOw0KPiArCXB0aHJlYWRf bXV0ZXhfdW5sb2NrKCZzZmNfdmRwYV9hZGFwdGVyX2xpc3RfbG9jayk7DQo+ICsNCj4gKwlzZmNf dmRwYV9sb2dfaW5pdChzdmEsICJkb25lIik7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gKw0KPiAr ZmFpbF92ZmlvX3NldHVwOg0KPiArZmFpbF9zZXRfbG9nX3ByZWZpeDoNCj4gKwlydGVfZnJlZShz dmEpOw0KPiArDQo+ICtmYWlsX3ptYWxsb2M6DQo+ICsJcmV0dXJuIC0xOw0KPiArfQ0KPiArDQo+ ICtzdGF0aWMgaW50DQo+ICtzZmNfdmRwYV9wY2lfcmVtb3ZlKHN0cnVjdCBydGVfcGNpX2Rldmlj ZSAqcGNpX2RldikNCj4gK3sNCj4gKwlzdHJ1Y3Qgc2ZjX3ZkcGFfYWRhcHRlciAqc3ZhID0gTlVM TDsNCj4gKw0KPiArCWlmIChydGVfZWFsX3Byb2Nlc3NfdHlwZSgpICE9IFJURV9QUk9DX1BSSU1B UlkpDQo+ICsJCXJldHVybiAtMTsNCj4gKw0KPiArCXN2YSA9IHNmY192ZHBhX2dldF9hZGFwdGVy X2J5X2RldihwY2lfZGV2KTsNCj4gKwlpZiAoc3ZhID09IE5VTEwpIHsNCj4gKwkJc2ZjX3ZkcGFf aW5mbyhzdmEsICJpbnZhbGlkIGRldmljZTogJXMiLCBwY2lfZGV2LT5uYW1lKTsNCj4gKwkJcmV0 dXJuIC0xOw0KPiArCX0NCj4gKw0KPiArCXB0aHJlYWRfbXV0ZXhfbG9jaygmc2ZjX3ZkcGFfYWRh cHRlcl9saXN0X2xvY2spOw0KPiArCVRBSUxRX1JFTU9WRSgmc2ZjX3ZkcGFfYWRhcHRlcl9saXN0 LCBzdmEsIG5leHQpOw0KPiArCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZzZmNfdmRwYV9hZGFwdGVy X2xpc3RfbG9jayk7DQo+ICsNCj4gKwlzZmNfdmRwYV92ZmlvX3RlYXJkb3duKHN2YSk7DQo+ICsN Cj4gKwlydGVfZnJlZShzdmEpOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0 YXRpYyBzdHJ1Y3QgcnRlX3BjaV9kcml2ZXIgcnRlX3NmY192ZHBhID0gew0KPiArCS5pZF90YWJs ZSA9IHBjaV9pZF9zZmNfdmRwYV9lZnhfbWFwLA0KPiArCS5kcnZfZmxhZ3MgPSAwLA0KPiArCS5w cm9iZSA9IHNmY192ZHBhX3BjaV9wcm9iZSwNCj4gKwkucmVtb3ZlID0gc2ZjX3ZkcGFfcGNpX3Jl bW92ZSwNCj4gK307DQo+ICsNCj4gK1JURV9QTURfUkVHSVNURVJfUENJKG5ldF9zZmNfdmRwYSwg cnRlX3NmY192ZHBhKTsNCj4gK1JURV9QTURfUkVHSVNURVJfUENJX1RBQkxFKG5ldF9zZmNfdmRw YSwgcGNpX2lkX3NmY192ZHBhX2VmeF9tYXApOw0KPiArUlRFX1BNRF9SRUdJU1RFUl9LTU9EX0RF UChuZXRfc2ZjX3ZkcGEsICIqIHZmaW8tcGNpIik7DQo+ICtSVEVfTE9HX1JFR0lTVEVSX1NVRkZJ WChzZmNfdmRwYV9sb2d0eXBlX2RyaXZlciwgZHJpdmVyLCBOT1RJQ0UpOw0KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy92ZHBhL3NmYy9zZmNfdmRwYS5oIGIvZHJpdmVycy92ZHBhL3NmYy9zZmNfdmRw YS5oDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAuLjNiNzc5MDANCj4g LS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJzL3ZkcGEvc2ZjL3NmY192ZHBhLmgNCj4gQEAg LTAsMCArMSw0MCBAQA0KPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVz ZQ0KPiArICoNCj4gKyAqIENvcHlyaWdodChjKSAyMDIwLTIwMjEgWGlsaW54LCBJbmMuDQo+ICsg Ki8NCj4gKw0KPiArI2lmbmRlZiBfU0ZDX1ZEUEFfSA0KPiArI2RlZmluZSBfU0ZDX1ZEUEFfSA0K PiArDQo+ICsjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ICsjaW5jbHVkZSA8c3lzL3F1ZXVlLmg+DQo+ ICsNCj4gKyNpbmNsdWRlIDxydGVfYnVzX3BjaS5oPg0KPiArDQo+ICsjaW5jbHVkZSAic2ZjX3Zk cGFfbG9nLmgiDQo+ICsNCj4gKy8qIEFkYXB0ZXIgcHJpdmF0ZSBkYXRhICovDQo+ICtzdHJ1Y3Qg c2ZjX3ZkcGFfYWRhcHRlciB7DQo+ICsJVEFJTFFfRU5UUlkoc2ZjX3ZkcGFfYWRhcHRlcikJbmV4 dDsNCj4gKwlzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UJCSpwZGV2Ow0KPiArCXN0cnVjdCBydGVfcGNp X2FkZHIJCXBjaV9hZGRyOw0KDQpJIGRvbid0IHRoaW5rIHBjaV9hZGRyIGlzIG5lZWRlZCwgeW91 IGNhbiBnZXQgaXQgdGhyb3VnaCBwZGV2Lg0KDQpUaGFua3MsDQpDaGVuYm8NCg0KPiArDQo+ICsJ Y2hhcgkJCQlsb2dfcHJlZml4W1NGQ19WRFBBX0xPR19QUkVGSVhfTUFYXTsNCj4gKwl1aW50MzJf dAkJCWxvZ3R5cGVfbWFpbjsNCj4gKw0KPiArCWludAkJCQl2ZmlvX2dyb3VwX2ZkOw0KPiArCWlu dAkJCQl2ZmlvX2Rldl9mZDsNCj4gKwlpbnQJCQkJdmZpb19jb250YWluZXJfZmQ7DQo+ICsJaW50 CQkJCWlvbW11X2dyb3VwX251bTsNCj4gK307DQo+ICsNCj4gK3VpbnQzMl90DQo+ICtzZmNfdmRw YV9yZWdpc3Rlcl9sb2d0eXBlKGNvbnN0IHN0cnVjdCBydGVfcGNpX2FkZHIgKnBjaV9hZGRyLA0K PiArCQkJICBjb25zdCBjaGFyICpsdF9wcmVmaXhfc3RyLA0KPiArCQkJICB1aW50MzJfdCBsbF9k ZWZhdWx0KTsNCj4gKw0KPiArc3RydWN0IHNmY192ZHBhX2FkYXB0ZXIgKg0KPiArc2ZjX3ZkcGFf Z2V0X2FkYXB0ZXJfYnlfZGV2KHN0cnVjdCBydGVfcGNpX2RldmljZSAqcGRldik7DQo+ICsNCj4g KyNlbmRpZiAgLyogX1NGQ19WRFBBX0ggKi8NCj4gKw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92 ZHBhL3NmYy9zZmNfdmRwYV9sb2cuaCBiL2RyaXZlcnMvdmRwYS9zZmMvc2ZjX3ZkcGFfbG9nLmgN Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMC4uODU4ZTVlZQ0KPiAtLS0g L2Rldi9udWxsDQo+ICsrKyBiL2RyaXZlcnMvdmRwYS9zZmMvc2ZjX3ZkcGFfbG9nLmgNCj4gQEAg LTAsMCArMSw1NiBAQA0KPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVz ZQ0KPiArICoNCj4gKyAqIENvcHlyaWdodChjKSAyMDIwLTIwMjEgWGlsaW54LCBJbmMuDQo+ICsg Ki8NCj4gKw0KPiArI2lmbmRlZiBfU0ZDX1ZEUEFfTE9HX0hfDQo+ICsjZGVmaW5lIF9TRkNfVkRQ QV9MT0dfSF8NCj4gKw0KPiArLyoqIEdlbmVyaWMgZHJpdmVyIGxvZyB0eXBlICovDQo+ICtleHRl cm4gaW50IHNmY192ZHBhX2xvZ3R5cGVfZHJpdmVyOw0KPiArDQo+ICsvKiogQ29tbW9uIGxvZyB0 eXBlIG5hbWUgcHJlZml4ICovDQo+ICsjZGVmaW5lIFNGQ19WRFBBX0xPR1RZUEVfUFJFRklYCSJw bWQudmRwYS5zZmMuIg0KPiArDQo+ICsvKiogTG9nIFBNRCBnZW5lcmljIG1lc3NhZ2UsIGFkZCBh IHByZWZpeCBhbmQgYSBsaW5lIGJyZWFrICovDQo+ICsjZGVmaW5lIFNGQ19WRFBBX0dFTkVSSUNf TE9HKGxldmVsLCAuLi4pIFwNCj4gKwlydGVfbG9nKFJURV9MT0dfICMjIGxldmVsLCBzZmNfdmRw YV9sb2d0eXBlX2RyaXZlciwJCVwNCj4gKwkJUlRFX0ZNVCgiUE1EOiAiIFJURV9GTVRfSEVBRChf X1ZBX0FSR1NfXyAsKSAiXG4iLAlcDQo+ICsJCQlSVEVfRk1UX1RBSUwoX19WQV9BUkdTX18gLCkp KQ0KPiArDQo+ICsvKiogTmFtZSBwcmVmaXggZm9yIHRoZSBwZXItZGV2aWNlIGxvZyB0eXBlIHVz ZWQgdG8gcmVwb3J0IGJhc2ljIGluZm9ybWF0aW9uDQo+ICovDQo+ICsjZGVmaW5lIFNGQ19WRFBB X0xPR1RZUEVfTUFJTl9TVFIJU0ZDX1ZEUEFfTE9HVFlQRV9QUkVGSVggIm1haW4iDQo+ICsNCj4g KyNkZWZpbmUgU0ZDX1ZEUEFfTE9HX1BSRUZJWF9NQVgJMzINCj4gKw0KPiArLyogTG9nIFBNRCBt ZXNzYWdlLCBhdXRvbWF0aWNhbGx5IGFkZCBwcmVmaXggYW5kIFxuICovDQo+ICsjZGVmaW5lIFNG Q19WRFBBX0xPRyhzdmEsIGxldmVsLCAuLi4pIFwNCj4gKwlkbyB7CQkJCQkJCQlcDQo+ICsJCWNv bnN0IHN0cnVjdCBzZmNfdmRwYV9hZGFwdGVyICpfc3ZhID0gKHN2YSk7CQlcDQo+ICsJCQkJCQkJ CQlcDQo+ICsJCXJ0ZV9sb2coUlRFX0xPR18gIyMgbGV2ZWwsIF9zdmEtPmxvZ3R5cGVfbWFpbiwJ CVwNCj4gKwkJCVJURV9GTVQoIiVzIiBSVEVfRk1UX0hFQUQoX19WQV9BUkdTX18gLCkgIlxuIiwJ XA0KPiArCQkJCV9zdmEtPmxvZ19wcmVmaXgsCQkJXA0KPiArCQkJCVJURV9GTVRfVEFJTChfX1ZB X0FSR1NfXyAsKSkpOwkJXA0KPiArCX0gd2hpbGUgKDApDQo+ICsNCj4gKyNkZWZpbmUgc2ZjX3Zk cGFfZXJyKHN2YSwgLi4uKSBcDQo+ICsJU0ZDX1ZEUEFfTE9HKHN2YSwgRVJSLCBfX1ZBX0FSR1Nf XykNCj4gKw0KPiArI2RlZmluZSBzZmNfdmRwYV93YXJuKHN2YSwgLi4uKSBcDQo+ICsJU0ZDX1ZE UEFfTE9HKHN2YSwgV0FSTklORywgX19WQV9BUkdTX18pDQo+ICsNCj4gKyNkZWZpbmUgc2ZjX3Zk cGFfbm90aWNlKHN2YSwgLi4uKSBcDQo+ICsJU0ZDX1ZEUEFfTE9HKHN2YSwgTk9USUNFLCBfX1ZB X0FSR1NfXykNCj4gKw0KPiArI2RlZmluZSBzZmNfdmRwYV9pbmZvKHN2YSwgLi4uKSBcDQo+ICsJ U0ZDX1ZEUEFfTE9HKHN2YSwgSU5GTywgX19WQV9BUkdTX18pDQo+ICsNCj4gKyNkZWZpbmUgc2Zj X3ZkcGFfbG9nX2luaXQoc3ZhLCAuLi4pIFwNCj4gKwlTRkNfVkRQQV9MT0coc3ZhLCBJTkZPLAkJ CQlcDQo+ICsJCVJURV9GTVQoIiVzKCk6ICIJCQlcDQo+ICsJCQlSVEVfRk1UX0hFQUQoX19WQV9B UkdTX18gLCksCVwNCj4gKwkJCV9fZnVuY19fLAkJCVwNCj4gKwkJCVJURV9GTVRfVEFJTChfX1ZB X0FSR1NfXyAsKSkpDQo+ICsNCj4gKyNlbmRpZiAvKiBfU0ZDX1ZEUEFfTE9HX0hfICovDQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL3ZkcGEvc2ZjL3ZlcnNpb24ubWFwIGIvZHJpdmVycy92ZHBhL3Nm Yy92ZXJzaW9uLm1hcA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi40 YTc2ZDFkDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZHJpdmVycy92ZHBhL3NmYy92ZXJzaW9u Lm1hcA0KPiBAQCAtMCwwICsxLDMgQEANCj4gK0RQREtfMjEgew0KPiArCWxvY2FsOiAqOw0KPiAr fTsNCj4gLS0NCj4gMS44LjMuMQ0KDQo=