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 E69A7426C3; Thu, 5 Oct 2023 17:01:12 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B7057402CE; Thu, 5 Oct 2023 17:01:12 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id A6F154028A for ; Thu, 5 Oct 2023 17:01:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1696518070; x=1728054070; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=vc1B5dYNREvO/ThjafKIc8IrnjQ94QBRj2vn5bAzMas=; b=mae+SrMJUMFjtNYJw+tmWaqA5fVxJviknU+JTMYnmOGiY1izRIv4lint nwf1uFcZdBdIVCCIF4BnJWv7vVRXU+dS3D+km/Z7A6iYx/NEBjq8iLtNS J3M5Ogk6vhdNHY9RxWqbZI4Cq+Djodz22eMiUWjQAI0V+Lxez423hT8y4 lKVQgWXB3CzLATkCwmjyxzKmRPGY01dHhlBfUhN46RraPInSSUS1lmj6H Yfrmxz7dDV8+lfHaeqUWZZEg06hgcVn2d2i8X2sL80iV/rJfsiYT40yzP HxAw/m1jQ1FkOnB0CJpgvqX8dj3EVsuF02cTYftSnq6AOzt//vprqb3pe w==; X-IronPort-AV: E=McAfee;i="6600,9927,10854"; a="386351110" X-IronPort-AV: E=Sophos;i="6.03,203,1694761200"; d="scan'208";a="386351110" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Oct 2023 08:00:56 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10854"; a="895476417" X-IronPort-AV: E=Sophos;i="6.03,203,1694761200"; d="scan'208";a="895476417" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga001.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 05 Oct 2023 07:59:27 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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.2507.32; Thu, 5 Oct 2023 08:00:55 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Thu, 5 Oct 2023 08:00:55 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.168) 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.2507.32; Thu, 5 Oct 2023 08:00:53 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RBBXOion1bJdL1hxT6DFx1hKn0RGY3X7fe7Pm6FIZtbSk0A3mPbRuDhS+u8yvhDxPzgi1rfCT7iN1mfq3bYqlJw3yvMF+YbpEayqf6ZDdnPTNb+cn5VlgXSdGFaWJEMzR0osxF8Oy8/xKpy+ec44qickbH5bn46Ql1Yx3AfbJBGmHIqcpsMZuMh+NHiCpoS7cfDNd4FY5+jYlZGGmXgdoTEvUIhm5ZV8EZagZc491j09ep63VdC4okLFY9nXPQtEj4XxEn/h9yZWCc+mLF2u7+OdiZfRk3+fCFWQW7z11qXpKWbRguqebFQcNhxGjFEmdwsjw1jjT26Ef+3tVHDEkA== 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=vc1B5dYNREvO/ThjafKIc8IrnjQ94QBRj2vn5bAzMas=; b=FuuBVIE8fZ5L8xJoYk4tkjGD0vuQOj7GFSHZpE95DH4j1Eb/gTvqeM8Tysy8Nx/WIh9mvlBRVG8pOMLCa7TrNNJxx99iRqZIkoJrXpVBvNAbA6ZwYYjNu0k1vGoUpTSQPtz5ae7cH2d3B/RHrnnzxmC3VP5vluLRnjm4wlDqX2D5vUEZQMvhCXKNg4TwXmx7pgj+MQR+J9NH9OFEwNHcWJCIQr0gpGqcLZO8GNEuK1fGMOXskQa9pkYQeH/jbCc1XCvBNf/XKNEm5q8VpKdS6zsq1SaC0KMr+qU1+EQ7zUlR1dQ/mtRcRZU/clpN8S5225b34eCBg8nvIfe+4LwiTw== 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 BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by CO1PR11MB5172.namprd11.prod.outlook.com (2603:10b6:303:6c::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.27; Thu, 5 Oct 2023 15:00:50 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::c10d:65be:798a:520a]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::c10d:65be:798a:520a%7]) with mapi id 15.20.6838.033; Thu, 5 Oct 2023 15:00:50 +0000 From: "Chautru, Nicolas" To: Maxime Coquelin , "dev@dpdk.org" CC: "hemant.agrawal@nxp.com" , "david.marchand@redhat.com" , "Vargas, Hernan" Subject: RE: [PATCH v3 06/12] baseband/acc: refactor to allow unified driver extension Thread-Topic: [PATCH v3 06/12] baseband/acc: refactor to allow unified driver extension Thread-Index: AQHZ8vNUPpMOsHAQBUyvV0DDV8YSKbA4ETCAgABduACAANYDAIAA5cjQgAEgkICAAAaH4A== Date: Thu, 5 Oct 2023 15:00:50 +0000 Message-ID: References: <20230929163516.3636499-1-nicolas.chautru@intel.com> <20230929163516.3636499-7-nicolas.chautru@intel.com> <8f3bbf3a-197e-ec93-8583-a4fc0995bd5d@redhat.com> In-Reply-To: <8f3bbf3a-197e-ec93-8583-a4fc0995bd5d@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BY5PR11MB4451:EE_|CO1PR11MB5172:EE_ x-ms-office365-filtering-correlation-id: 2c62d203-4a24-4c17-ccbc-08dbc5b3dd1e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: EnC0sngn9oy4TgzYs3jjovw+efrAnAPK9L9Ht4s36Gh54igJvj1kHtYVxF4X6PGElGt2QCyv7Kky1y0V8o7a5Y/PvN2zNm9CHsXjDSrph9r9EWCAkQzsls8Dc1a5KgmPei/iVhsk00BJZ3UEfsfShjf2El4GeZvZ82G3YkzawFAKnQnkh2b5Yv8rjdSs6pAF1DeWIV6aDRH2p4jxQ4tdvNQkDTmIRhB0gYPFTeRJYaYEWnq5kPLudOOKzW1uXx+KyvVPgsQe0ktKEchtmfpEfZHvzAEnGcXavmhvxUEdFGzLxa5qn/6dLCE89GDwBiUtOEa96CgQ5H/wuRVWccyLfdkonHz58yfy0teHI87WQl1Lrf+C0Pn9kNV9sCxy9HvSzs68eSp10q+er2zt1Vey3aQISg48qoBaKy5YKEp4SkHZbjOGYhZH/R4Ew6COxD+15orHBJvgUg6K1vjiByXwN03bap4QIYF3jMIV6slTr90yWGQdz2NMuuHmm7MuaN9kmkG9KvpovwRegkJkHvq7NU/JQqkAlk/zRHVO0rS9TI4g1GTc9z/wHQmR7hwNmPYgzPIGAwy5fKyplyD1V2icaIua6W0Rxk33mwhRW4Ckjz9twNfgApKJ03SIKkJZ+wiU x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(346002)(136003)(39860400002)(366004)(396003)(376002)(230922051799003)(64100799003)(186009)(451199024)(1800799009)(38070700005)(66946007)(66446008)(64756008)(54906003)(66556008)(66476007)(316002)(41300700001)(107886003)(53546011)(9686003)(33656002)(26005)(71200400001)(7696005)(6506007)(478600001)(38100700002)(82960400001)(122000001)(86362001)(83380400001)(110136005)(76116006)(55016003)(30864003)(2906002)(4326008)(8676002)(8936002)(5660300002)(52536014)(559001)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MjdreDZDRTltQ0N1RFYzcXhFT0tBWnVVZHp3L2taMVVjSjhoWDM0YmFoTG85?= =?utf-8?B?OUZWVmNHVS9oMkJQVGxVVllwdXc5V2xpWmNRRldXSVJreGp6RTBITzBrdGVh?= =?utf-8?B?NGpieFJldjh6cnpsQm0vTTJ4aU85Yi9jVklvQ2orTXN5cVEwbWxlcWQrV1A2?= =?utf-8?B?S3E3bWVpKzVqcXUvcFdRdERMMVR0cFRRRFlONjZwZVg2RWM2RVliUlVad0xU?= =?utf-8?B?ZnM1VjRHZmRwR0RVM2FnWVlpKzd0TzdCQ21Fd2tlbkl1MkNzM2p0MW43S0o5?= =?utf-8?B?OFlJZTBwbi9qOE9IQkt6TnM1cWNUT090ZGRObk9NbjJ2bmovWUNUTEVKUzQy?= =?utf-8?B?QUhOOTd3M2ZiSjIzQkplbVVaN1NPN1ptTUp6MXBSWXQ5emJmRFdKdzNoMmZW?= =?utf-8?B?cDZVUUVXbVRlRi91a3RLdXA0bTREUkEyOW9Gcm5LVnV5dUVHNElwQkVZUzNY?= =?utf-8?B?WWRPVEZDMTc2aG5FdlpTM04rU1ZTRGNmSEwxaHBTMUdVYTNuQUJIcE81alpP?= =?utf-8?B?RWx5WFpQRW5vaEkvc0NOdG1KQVdhTThYRGFhNDAxODM4azZSWjI1Y2g4OUF3?= =?utf-8?B?Z0UwNWgvb0NuRWlHZk53Y1VlWXlGdmRlV0hSby9GOWxCWTM5cHFEenVnTVAr?= =?utf-8?B?UVFLYkJCOUcxVEUyNzlvZE1ZM1Jwem02N2FLVDZ3cWwrdWE0YVlVdDFuNWJq?= =?utf-8?B?QjJTWDJKR2dYek56S01mZFR2ZFZzUFBGWGRkek5RZVVuU2x6REZyUU9pOURN?= =?utf-8?B?TXBvZmpuK3FNT2RveXlvd2laMElES0RHb251TS9kTEduWDVwbWU4NERrL2Yz?= =?utf-8?B?clQ2Zk1mZmRoVjZGREV2aTZXb1ZYeFVsMVpZWE9EcDFWVG1oVTlyemZnaVM0?= =?utf-8?B?MXBWZklZRFhVVzF3bzNjbWpSMDcwcmp4d2UyTGJtYjgvRWJYaTJzTmxrMmtr?= =?utf-8?B?aCtCZlRaNEcyRkplVU9wb21jOUF1SndBOFdWQ3hpckFRbERGM29HdHRqaytj?= =?utf-8?B?aUo5ZDFXSUVOM2ZXaTlGMkJUMWZIOGZEcis5M3VaUTVKSVdqMkVVVU1LRVJR?= =?utf-8?B?MXRzNldXMUZxNHB5Q203NVhvQUd0OHBER2F2dXU5Sk1LcFp1MXhRUWdEWHpk?= =?utf-8?B?NERTUTBOV2pLV3E2M01jOS8xQmQyRUlmUmQzUzN3UnJIMzRGU3A4N3FDUnVB?= =?utf-8?B?WmNzQjVYc3NuWGd4VCtwQWhLaHdEUXVJSnJGYURoTE1nc1N0YnVZcDVNMndF?= =?utf-8?B?K3phWDJxR3JtSHJFMEJzNTM3T3pHYVpEZGpwMnl2VU1yaVBHS1JPU2xrUUZY?= =?utf-8?B?dklGbWthbFkrQVBQQlZOQ3VVRDVCNVNpTGRUTlR0OHlWbFlGT2ZIL0tPSDJY?= =?utf-8?B?QWZVaWlVUkdrVDBzRTBjVkpTQW1TYXVBSHJseW5HS2ZZSEZvWGJQZHpIVkFR?= =?utf-8?B?SmFWTUlDMkZianpkSGppRG1yeUlTbHBIV3JLaHFRNDBDUm1YeWRKa2Z1NlFW?= =?utf-8?B?ekcwa1FIVW1iSGczbmVoTncrOFBwZHQ1TXFkMHl0ck1NdytHbnJRQ2NsNUYx?= =?utf-8?B?TFN0Uk5XYjRBOGhBbFNoSTh3OXRPVXY5aHlnNkZzdkMvVWk1YWE3c1IyWC9L?= =?utf-8?B?RmxCc21UWFpNVjRUcXpMS0JLRndOaklXWEp4MzhIRnc4T0NMNGZSL3hIM0Vl?= =?utf-8?B?QnpWVlIrRnNkNVNvVE5GUy9OWGVQall1NmxKQ1JGenZ2ai9qTFovcndxTFNo?= =?utf-8?B?MWF2eHVjZnNqU29ka0lNVGtyWHV3bDBnU0hKL2NkVlRQYTMxaXBNRENmYkdD?= =?utf-8?B?RnJtQ0h0dWFPUDI4NE1SZnJ3SGl6VG1Uby9LSVFCeDFkTS84aWRQa3VibXRl?= =?utf-8?B?cTBrRWtsQ0hLcEUzckUySGt4a1JZbGVtWEk4K24xT0w1OUF0WklIdHZDWG5C?= =?utf-8?B?dDlGZUVsaTVYamIzUWJ4d2h1cmRYUDQwU2MwYzZhY3N5YlZ6NlkrM0Q2NHdx?= =?utf-8?B?dmMwZUQwNTVWbUw2R2NIZXFmVlN2MFBWdXY0UGo1WFJxNGpsZlZxYUVwWnQy?= =?utf-8?B?Z0lISnlJck0zczRJanZjZlNMdUQwNXlndkNHS2haN2p0Z2ZaNTdwNENaa2gr?= =?utf-8?Q?3LlJMNw2Xk7SM/3aQ7szJ7aPG?= 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: BY5PR11MB4451.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2c62d203-4a24-4c17-ccbc-08dbc5b3dd1e X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Oct 2023 15:00:50.2607 (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: Re8xkysIXlVg16jno2g3GmtQYze2CGvfRsihgagTDEKZZc6BVgzBdeV4cudWgRZRRIjz4Gj571sk1j+djwwKq7HYFCv+dLOZ5jh2xTaF1/8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB5172 X-OriginatorOrg: intel.com 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 SGkgTWF4aW1lLCANCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhp bWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBUaHVyc2Rh eSwgT2N0b2JlciA1LCAyMDIzIDc6MzEgQU0NCj4gVG86IENoYXV0cnUsIE5pY29sYXMgPG5pY29s YXMuY2hhdXRydUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gQ2M6IGhlbWFudC5hZ3Jhd2Fs QG54cC5jb207IGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb207IFZhcmdhcywgSGVybmFuDQo+IDxo ZXJuYW4udmFyZ2FzQGludGVsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MyAwNi8xMl0g YmFzZWJhbmQvYWNjOiByZWZhY3RvciB0byBhbGxvdyB1bmlmaWVkIGRyaXZlcg0KPiBleHRlbnNp b24NCj4gDQo+IA0KPiANCj4gT24gMTAvNC8yMyAyMzoyOCwgQ2hhdXRydSwgTmljb2xhcyB3cm90 ZToNCj4gPiBIaSBNYXhpbWUsDQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPj4gRnJvbTogTWF4aW1lIENvcXVlbGluIDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4N Cj4gPj4gU2VudDogV2VkbmVzZGF5LCBPY3RvYmVyIDQsIDIwMjMgMTI6MzYgQU0NCj4gPj4gVG86 IENoYXV0cnUsIE5pY29sYXMgPG5pY29sYXMuY2hhdXRydUBpbnRlbC5jb20+OyBkZXZAZHBkay5v cmcNCj4gPj4gQ2M6IGhlbWFudC5hZ3Jhd2FsQG54cC5jb207IGRhdmlkLm1hcmNoYW5kQHJlZGhh dC5jb207IFZhcmdhcywNCj4gSGVybmFuDQo+ID4+IDxoZXJuYW4udmFyZ2FzQGludGVsLmNvbT4N Cj4gPj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MyAwNi8xMl0gYmFzZWJhbmQvYWNjOiByZWZhY3Rv ciB0byBhbGxvdyB1bmlmaWVkDQo+ID4+IGRyaXZlciBleHRlbnNpb24NCj4gPj4NCj4gPj4NCj4g Pj4NCj4gPj4gT24gMTAvMy8yMyAyMDo1NCwgQ2hhdXRydSwgTmljb2xhcyB3cm90ZToNCj4gPj4+ IEhpIE1heGltZSwNCj4gPj4+DQo+ID4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g Pj4+PiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0K PiA+Pj4+IFNlbnQ6IFR1ZXNkYXksIE9jdG9iZXIgMywgMjAyMyA2OjE1IEFNDQo+ID4+Pj4gVG86 IENoYXV0cnUsIE5pY29sYXMgPG5pY29sYXMuY2hhdXRydUBpbnRlbC5jb20+OyBkZXZAZHBkay5v cmcNCj4gPj4+PiBDYzogaGVtYW50LmFncmF3YWxAbnhwLmNvbTsgZGF2aWQubWFyY2hhbmRAcmVk aGF0LmNvbTsgVmFyZ2FzLA0KPiA+PiBIZXJuYW4NCj4gPj4+PiA8aGVybmFuLnZhcmdhc0BpbnRl bC5jb20+DQo+ID4+Pj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MyAwNi8xMl0gYmFzZWJhbmQvYWNj OiByZWZhY3RvciB0byBhbGxvdw0KPiA+Pj4+IHVuaWZpZWQgZHJpdmVyIGV4dGVuc2lvbg0KPiA+ Pj4+DQo+ID4+Pj4gVGhhbmtzIGZvciBkb2luZyB0aGUgc3BsaXQsIHRoYXQgd2lsbCBlYXNlIHJl dmlldy4NCj4gPj4+Pg0KPiA+Pj4+IE9uIDkvMjkvMjMgMTg6MzUsIE5pY29sYXMgQ2hhdXRydSB3 cm90ZToNCj4gPj4+Pj4gQWRkaW5nIGEgZmV3IGZ1bmN0aW9ucyBhbmQgY29tbW9uIGNvZGUgcHJp b3IgdG8gZXh0ZW5kaW5nIHRoZSBWUkINCj4gPj4+Pj4gZHJpdmVyLg0KPiA+Pj4+Pg0KPiA+Pj4+ PiBTaWduZWQtb2ZmLWJ5OiBOaWNvbGFzIENoYXV0cnUgPG5pY29sYXMuY2hhdXRydUBpbnRlbC5j b20+DQo+ID4+Pj4+IC0tLQ0KPiA+Pj4+PiAgICAgZHJpdmVycy9iYXNlYmFuZC9hY2MvYWNjX2Nv bW1vbi5oICAgICB8IDE2NA0KPiA+PiArKysrKysrKysrKysrKysrKysrKysrKy0NCj4gPj4+PiAt LQ0KPiA+Pj4+PiAgICAgZHJpdmVycy9iYXNlYmFuZC9hY2MvcnRlX2FjYzEwMF9wbWQuYyB8ICAg NCArLQ0KPiA+Pj4+PiAgICAgZHJpdmVycy9iYXNlYmFuZC9hY2MvcnRlX3ZyYl9wbWQuYyAgICB8 ICA2MiArKysrKy0tLS0tDQo+ID4+Pj4+ICAgICAzIGZpbGVzIGNoYW5nZWQsIDE4NCBpbnNlcnRp b25zKCspLCA0NiBkZWxldGlvbnMoLSkNCj4gPj4+Pj4NCj4gPj4+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvYmFzZWJhbmQvYWNjL2FjY19jb21tb24uaA0KPiA+Pj4+PiBiL2RyaXZlcnMvYmFzZWJh bmQvYWNjL2FjY19jb21tb24uaA0KPiA+Pj4+PiBpbmRleCA3ODhhYmYxYTNjLi44OTg5M2VhZTQz IDEwMDY0NA0KPiA+Pj4+PiAtLS0gYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9hY2NfY29tbW9uLmgN Cj4gPj4+Pj4gKysrIGIvZHJpdmVycy9iYXNlYmFuZC9hY2MvYWNjX2NvbW1vbi5oDQo+ID4+Pj4+ IEBAIC0xOCw2ICsxOCw3IEBADQo+ID4+Pj4+ICAgICAjZGVmaW5lIEFDQ19ETUFfQkxLSURfT1VU X0hBUlEgICAgICAzDQo+ID4+Pj4+ICAgICAjZGVmaW5lIEFDQ19ETUFfQkxLSURfSU5fSEFSUSAg ICAgICAzDQo+ID4+Pj4+ICAgICAjZGVmaW5lIEFDQ19ETUFfQkxLSURfSU5fTUxEX1IgICAgICAz DQo+ID4+Pj4+ICsjZGVmaW5lIEFDQ19ETUFfQkxLSURfREVXSU5fSU4gICAgICAzDQo+ID4+Pj4+ DQo+ID4+Pj4+ICAgICAvKiBWYWx1ZXMgdXNlZCBpbiBmaWxsaW5nIGluIGRlY29kZSBGQ1dzICov DQo+ID4+Pj4+ICAgICAjZGVmaW5lIEFDQ19GQ1dfVERfVkVSICAgICAgICAgICAgICAxDQo+ID4+ Pj4+IEBAIC0xMDMsNiArMTA0LDkgQEANCj4gPj4+Pj4gICAgICNkZWZpbmUgQUNDX01BWF9OVU1f UUdSUFMgICAgICAgICAgICAgIDMyDQo+ID4+Pj4+ICAgICAjZGVmaW5lIEFDQ19SSU5HX1NJWkVf R1JBTlVMQVJJVFkgICAgICA2NA0KPiA+Pj4+PiAgICAgI2RlZmluZSBBQ0NfTUFYX0ZDV19TSVpF ICAgICAgICAgICAgICAxMjgNCj4gPj4+Pj4gKyNkZWZpbmUgQUNDX0lRX1NJWkUgICAgICAgICAg ICAgICAgICAgIDQNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArI2RlZmluZSBBQ0NfRkNXX0ZGVF9CTEVO XzMgICAgICAgICAgICAgMjgNCj4gPj4+Pj4NCj4gPj4+Pj4gICAgIC8qIENvbnN0YW50cyBmcm9t IEswIGNvbXB1dGF0aW9uIGZyb20gM0dQUCAzOC4yMTIgVGFibGUgNS40LjIuMS0yDQo+ICovDQo+ ID4+Pj4+ICAgICAjZGVmaW5lIEFDQ19OX1pDXzEgNjYgLyogTiA9IDY2IFpjIGZvciBCRyAxICov IEBAIC0xMzIsNiArMTM2LDE3DQo+IEBADQo+ID4+Pj4+ICAgICAjZGVmaW5lIEFDQ19MSU1fMjEg MTQgLyogMC4yMSAqLw0KPiA+Pj4+PiAgICAgI2RlZmluZSBBQ0NfTElNXzMxIDIwIC8qIDAuMzEg Ki8NCj4gPj4+Pj4gICAgICNkZWZpbmUgQUNDX01BWF9FICgxMjggKiAxMDI0IC0gMikNCj4gPj4+ Pj4gKyNkZWZpbmUgQUNDX01BWF9DUyAxMg0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsjZGVmaW5lIEFD QzEwMF9WQVJJQU5UICAgICAgICAgIDANCj4gPj4+Pj4gKyNkZWZpbmUgVlJCMV9WQVJJQU5UCQky DQo+ID4+Pj4+ICsjZGVmaW5lIFZSQjJfVkFSSUFOVAkJMw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsv KiBRdWV1ZSBJbmRleCBIaWVyYXJjaHkgKi8NCj4gPj4+Pj4gKyNkZWZpbmUgVlJCMV9HUlBfSURf U0hJRlQgICAgMTANCj4gPj4+Pj4gKyNkZWZpbmUgVlJCMV9WRl9JRF9TSElGVCAgICAgNA0KPiA+ Pj4+PiArI2RlZmluZSBWUkIyX0dSUF9JRF9TSElGVCAgICAxMg0KPiA+Pj4+PiArI2RlZmluZSBW UkIyX1ZGX0lEX1NISUZUICAgICA2DQo+ID4+Pj4+DQo+ID4+Pj4+ICAgICAvKiBIZWxwZXIgbWFj cm8gZm9yIGxvZ2dpbmcgKi8NCj4gPj4+Pj4gICAgICNkZWZpbmUgcnRlX2FjY19sb2cobGV2ZWws IGZtdCwgLi4uKSBcIEBAIC0zMzIsNiArMzQ3LDM3IEBADQo+ID4+Pj4+IHN0cnVjdCBfX3J0ZV9w YWNrZWQgYWNjX2Zjd19mZnQgew0KPiA+Pj4+PiAgICAgCQlyZXM6MTk7DQo+ID4+Pj4+ICAgICB9 Ow0KPiA+Pj4+Pg0KPiA+Pj4+PiArLyogRkZUIEZyYW1lIENvbnRyb2wgV29yZC4gKi8NCj4gPj4+ Pj4gK3N0cnVjdCBfX3J0ZV9wYWNrZWQgYWNjX2Zjd19mZnRfMyB7DQo+ID4+Pj4+ICsJdWludDMy X3QgaW5fZnJhbWVfc2l6ZToxNiwNCj4gPj4+Pj4gKwkJbGVhZGluZ19wYWRfc2l6ZToxNjsNCj4g Pj4+Pj4gKwl1aW50MzJfdCBvdXRfZnJhbWVfc2l6ZToxNiwNCj4gPj4+Pj4gKwkJbGVhZGluZ19k ZXBhZF9zaXplOjE2Ow0KPiA+Pj4+PiArCXVpbnQzMl90IGNzX3dpbmRvd19zZWw7DQo+ID4+Pj4+ ICsJdWludDMyX3QgY3Nfd2luZG93X3NlbDI6MTYsDQo+ID4+Pj4+ICsJCWNzX2VuYWJsZV9ibWFw OjE2Ow0KPiA+Pj4+PiArCXVpbnQzMl90IG51bV9hbnRlbm5hczo4LA0KPiA+Pj4+PiArCQlpZGZ0 X3NpemU6OCwNCj4gPj4+Pj4gKwkJZGZ0X3NpemU6OCwNCj4gPj4+Pj4gKwkJY3Nfb2Zmc2V0Ojg7 DQo+ID4+Pj4+ICsJdWludDMyX3QgaWRmdF9zaGlmdDo4LA0KPiA+Pj4+PiArCQlkZnRfc2hpZnQ6 OCwNCj4gPj4+Pj4gKwkJY3NfbXVsdGlwbGllcjoxNjsNCj4gPj4+Pj4gKwl1aW50MzJfdCBieXBh c3M6MiwNCj4gPj4+Pj4gKwkJZnAxNl9pbjoxLA0KPiA+Pj4+PiArCQlmcDE2X291dDoxLA0KPiA+ Pj4+PiArCQlleHBfYWRqOjQsDQo+ID4+Pj4+ICsJCXBvd2VyX3NoaWZ0OjQsDQo+ID4+Pj4+ICsJ CXBvd2VyX2VuOjEsDQo+ID4+Pj4+ICsJCWVuYWJsZV9kZXdpbjoxLA0KPiA+Pj4+PiArCQlmcmVx X3Jlc2FtcGxlX21vZGU6MiwNCj4gPj4+Pj4gKwkJZGVwYWRfb3V0cHV0X3NpemU6MTY7DQo+ID4+ Pj4+ICsJdWludDE2X3QgY3NfdGhldGFfMFtBQ0NfTUFYX0NTXTsNCj4gPj4+Pj4gKwl1aW50MzJf dCBjc190aGV0YV9kW0FDQ19NQVhfQ1NdOw0KPiA+Pj4+PiArCWludDhfdCBjc190aW1lX29mZnNl dFtBQ0NfTUFYX0NTXTsgfTsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICAgICAvKiBN TEQtVFMgRnJhbWUgQ29udHJvbCBXb3JkICovDQo+ID4+Pj4+ICAgICBzdHJ1Y3QgX19ydGVfcGFj a2VkIGFjY19mY3dfbWxkdHMgew0KPiA+Pj4+PiAgICAgCXVpbnQzMl90IGZjd192ZXJzaW9uOjQs DQo+ID4+Pj4+IEBAIC00NzMsMTQgKzUxOSwxNCBAQCB1bmlvbiBhY2NfaW5mb19yaW5nX2RhdGEg ew0KPiA+Pj4+PiAgICAgCQl1aW50MTZfdCB2YWxpZDogMTsNCj4gPj4+Pj4gICAgIAl9Ow0KPiA+ Pj4+PiAgICAgCXN0cnVjdCB7DQo+ID4+Pj4+IC0JCXVpbnQzMl90IGFxX2lkXzM6IDY7DQo+ID4+ Pj4+IC0JCXVpbnQzMl90IHFnX2lkXzM6IDU7DQo+ID4+Pj4+IC0JCXVpbnQzMl90IHZmX2lkXzM6 IDY7DQo+ID4+Pj4+IC0JCXVpbnQzMl90IGludF9uYl8zOiA2Ow0KPiA+Pj4+PiAtCQl1aW50MzJf dCBtc2lfMF8zOiAxOw0KPiA+Pj4+PiAtCQl1aW50MzJfdCB2ZjJwZl8zOiA2Ow0KPiA+Pj4+PiAt CQl1aW50MzJfdCBsb29wXzM6IDE7DQo+ID4+Pj4+IC0JCXVpbnQzMl90IHZhbGlkXzM6IDE7DQo+ ID4+Pj4+ICsJCXVpbnQzMl90IGFxX2lkX3ZyYjI6IDY7DQo+ID4+Pj4+ICsJCXVpbnQzMl90IHFn X2lkX3ZyYjI6IDU7DQo+ID4+Pj4+ICsJCXVpbnQzMl90IHZmX2lkX3ZyYjI6IDY7DQo+ID4+Pj4+ ICsJCXVpbnQzMl90IGludF9uYl92cmIyOiA2Ow0KPiA+Pj4+PiArCQl1aW50MzJfdCBtc2lfMF92 cmIyOiAxOw0KPiA+Pj4+PiArCQl1aW50MzJfdCB2ZjJwZl92cmIyOiA2Ow0KPiA+Pj4+PiArCQl1 aW50MzJfdCBsb29wX3ZyYjI6IDE7DQo+ID4+Pj4+ICsJCXVpbnQzMl90IHZhbGlkX3ZyYjI6IDE7 DQo+ID4+Pj4+ICAgICAJfTsNCj4gPj4+Pj4gICAgIH0gX19ydGVfcGFja2VkOw0KPiA+Pj4+Pg0K PiA+Pj4+PiBAQCAtNzYxLDIyICs4MDcsMTA1IEBAIGFsbG9jX3N3X3JpbmdzX21pbl9tZW0oc3Ry dWN0IHJ0ZV9iYmRldg0KPiA+PiAqZGV2LA0KPiA+Pj4+IHN0cnVjdCBhY2NfZGV2aWNlICpkLA0K PiA+Pj4+PiAgICAgCWZyZWVfYmFzZV9hZGRyZXNzZXMoYmFzZV9hZGRycywgaSk7DQo+ID4+Pj4+ ICAgICB9DQo+ID4+Pj4+DQo+ID4+Pj4+ICsvKiBXcmFwcGVyIHRvIHByb3ZpZGUgVkYgaW5kZXgg ZnJvbSByaW5nIGRhdGEuICovIHN0YXRpYyBpbmxpbmUNCj4gPj4+Pj4gK3VpbnQxNl90IHZmX2Zy b21fcmluZyhjb25zdCB1bmlvbiBhY2NfaW5mb19yaW5nX2RhdGEgcmluZ19kYXRhLA0KPiA+Pj4+ PiArdWludDE2X3QgZGV2aWNlX3ZhcmlhbnQpIHsNCj4gPj4+Pg0KPiA+Pj4+IGN1cmx5IGJyYWNl cyBvbiBhIG5ldyBsaW5lLg0KPiA+Pj4NCj4gPj4+IFRoYW5rcy4NCj4gPj4+DQo+ID4+Pj4NCj4g Pj4+Pj4gKwlpZiAoZGV2aWNlX3ZhcmlhbnQgPT0gVlJCMl9WQVJJQU5UKQ0KPiA+Pj4+PiArCQly ZXR1cm4gcmluZ19kYXRhLnZmX2lkX3ZyYjI7DQo+ID4+Pj4+ICsJZWxzZQ0KPiA+Pj4+PiArCQly ZXR1cm4gcmluZ19kYXRhLnZmX2lkOw0KPiA+Pj4+PiArfQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsv KiBXcmFwcGVyIHRvIHByb3ZpZGUgUUcgaW5kZXggZnJvbSByaW5nIGRhdGEuICovIHN0YXRpYyBp bmxpbmUNCj4gPj4+Pj4gK3VpbnQxNl90IHFnX2Zyb21fcmluZyhjb25zdCB1bmlvbiBhY2NfaW5m b19yaW5nX2RhdGEgcmluZ19kYXRhLA0KPiA+Pj4+PiArdWludDE2X3QgZGV2aWNlX3ZhcmlhbnQp IHsNCj4gPj4+Pj4gKwlpZiAoZGV2aWNlX3ZhcmlhbnQgPT0gVlJCMl9WQVJJQU5UKQ0KPiA+Pj4+ PiArCQlyZXR1cm4gcmluZ19kYXRhLnFnX2lkX3ZyYjI7DQo+ID4+Pj4+ICsJZWxzZQ0KPiA+Pj4+ PiArCQlyZXR1cm4gcmluZ19kYXRhLnFnX2lkOw0KPiA+Pj4+PiArfQ0KPiA+Pj4+PiArDQo+ID4+ Pj4+ICsvKiBXcmFwcGVyIHRvIHByb3ZpZGUgQVEgaW5kZXggZnJvbSByaW5nIGRhdGEuICovIHN0 YXRpYyBpbmxpbmUNCj4gPj4+Pj4gK3VpbnQxNl90IGFxX2Zyb21fcmluZyhjb25zdCB1bmlvbiBh Y2NfaW5mb19yaW5nX2RhdGEgcmluZ19kYXRhLA0KPiA+Pj4+PiArdWludDE2X3QgZGV2aWNlX3Zh cmlhbnQpIHsNCj4gPj4+Pj4gKwlpZiAoZGV2aWNlX3ZhcmlhbnQgPT0gVlJCMl9WQVJJQU5UKQ0K PiA+Pj4+PiArCQlyZXR1cm4gcmluZ19kYXRhLmFxX2lkX3ZyYjI7DQo+ID4+Pj4+ICsJZWxzZQ0K PiA+Pj4+PiArCQlyZXR1cm4gcmluZ19kYXRhLmFxX2lkOw0KPiA+Pj4+PiArfQ0KPiA+Pj4+PiAr DQo+ID4+Pj4+ICsvKiBXcmFwcGVyIHRvIHByb3ZpZGUgaW50IGluZGV4IGZyb20gcmluZyBkYXRh LiAqLyBzdGF0aWMgaW5saW5lDQo+ID4+Pj4+ICt1aW50MTZfdCBpbnRfZnJvbV9yaW5nKGNvbnN0 IHVuaW9uIGFjY19pbmZvX3JpbmdfZGF0YSByaW5nX2RhdGEsDQo+ID4+Pj4+ICt1aW50MTZfdCBk ZXZpY2VfdmFyaWFudCkgew0KPiA+Pj4+PiArCWlmIChkZXZpY2VfdmFyaWFudCA9PSBWUkIyX1ZB UklBTlQpDQo+ID4+Pj4+ICsJCXJldHVybiByaW5nX2RhdGEuaW50X25iX3ZyYjI7DQo+ID4+Pj4+ ICsJZWxzZQ0KPiA+Pj4+PiArCQlyZXR1cm4gcmluZ19kYXRhLmludF9uYjsNCj4gPj4+Pj4gK30N Cj4gPj4+Pj4gKw0KPiA+Pj4+PiArLyogV3JhcHBlciB0byBwcm92aWRlIHF1ZXVlIGluZGV4IGZy b20gZ3JvdXAgYW5kIGFxIGluZGV4LiAqLw0KPiA+Pj4+PiArc3RhdGljIGlubGluZSBpbnQgcXVl dWVfaW5kZXgodWludDE2X3QgZ3JvdXBfaWR4LCB1aW50MTZfdA0KPiA+Pj4+PiArYXFfaWR4LCB1 aW50MTZfdA0KPiA+Pj4+PiArZGV2aWNlX3ZhcmlhbnQpIHsNCj4gPj4+Pj4gKwlpZiAoZGV2aWNl X3ZhcmlhbnQgPT0gVlJCMl9WQVJJQU5UKQ0KPiA+Pj4+PiArCQlyZXR1cm4gKGdyb3VwX2lkeCA8 PCBWUkIyX0dSUF9JRF9TSElGVCkgKyBhcV9pZHg7DQo+ID4+Pj4+ICsJZWxzZQ0KPiA+Pj4+PiAr CQlyZXR1cm4gKGdyb3VwX2lkeCA8PCBWUkIxX0dSUF9JRF9TSElGVCkgKyBhcV9pZHg7IH0NCj4g Pj4+Pj4gKw0KPiA+Pj4+PiArLyogV3JhcHBlciB0byBwcm92aWRlIHF1ZXVlIGdyb3VwIGZyb20g cXVldWUgaW5kZXguICovIHN0YXRpYw0KPiA+Pj4+PiAraW5saW5lIGludCBxZ19mcm9tX3EodWlu dDMyX3QgcV9pZHgsIHVpbnQxNl90IGRldmljZV92YXJpYW50KSB7DQo+ID4+Pj4+ICsJaWYgKGRl dmljZV92YXJpYW50ID09IFZSQjJfVkFSSUFOVCkNCj4gPj4+Pj4gKwkJcmV0dXJuIChxX2lkeCA+ PiBWUkIyX0dSUF9JRF9TSElGVCkgJiAweDFGOw0KPiA+Pj4+PiArCWVsc2UNCj4gPj4+Pj4gKwkJ cmV0dXJuIChxX2lkeCA+PiBWUkIxX0dSUF9JRF9TSElGVCkgJiAweEY7IH0NCj4gPj4+Pj4gKw0K PiA+Pj4+PiArLyogV3JhcHBlciB0byBwcm92aWRlIHZmIGZyb20gcXVldWUgaW5kZXguICovIHN0 YXRpYyBpbmxpbmUNCj4gPj4+Pj4gK2ludDMyX3QgdmZfZnJvbV9xKHVpbnQzMl90IHFfaWR4LCB1 aW50MTZfdCBkZXZpY2VfdmFyaWFudCkgew0KPiA+Pj4+PiArCWlmIChkZXZpY2VfdmFyaWFudCA9 PSBWUkIyX1ZBUklBTlQpDQo+ID4+Pj4+ICsJCXJldHVybiAocV9pZHggPj4gVlJCMl9WRl9JRF9T SElGVCkgICYgMHgzRjsNCj4gPj4+Pj4gKwllbHNlDQo+ID4+Pj4+ICsJCXJldHVybiAocV9pZHgg Pj4gVlJCMV9WRl9JRF9TSElGVCkgICYgMHgzRjsgfQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsvKiBX cmFwcGVyIHRvIHByb3ZpZGUgYXEgaW5kZXggZnJvbSBxdWV1ZSBpbmRleC4gKi8gc3RhdGljIGlu bGluZQ0KPiA+Pj4+PiAraW50MzJfdCBhcV9mcm9tX3EodWludDMyX3QgcV9pZHgsIHVpbnQxNl90 IGRldmljZV92YXJpYW50KSB7DQo+ID4+Pj4+ICsJaWYgKGRldmljZV92YXJpYW50ID09IFZSQjJf VkFSSUFOVCkNCj4gPj4+Pj4gKwkJcmV0dXJuIHFfaWR4ICYgMHgzRjsNCj4gPj4+Pj4gKwllbHNl DQo+ID4+Pj4+ICsJCXJldHVybiBxX2lkeCAmIDB4RjsNCj4gPj4+Pj4gK30NCj4gPj4+Pj4gKw0K PiA+Pj4+PiArLyogV3JhcHBlciB0byBzZXQgVkYgaW5kZXggaW4gcmluZyBkYXRhLiAqLyBzdGF0 aWMgaW5saW5lIGludDMyX3QNCj4gPj4+Pj4gK3NldF92Zl9pbl9yaW5nKHZvbGF0aWxlIHVuaW9u IGFjY19pbmZvX3JpbmdfZGF0YSAqcmluZ19kYXRhLA0KPiA+Pj4+PiArCQl1aW50MTZfdCBkZXZp Y2VfdmFyaWFudCwgdWludDE2X3QgdmFsdWUpIHsNCj4gPj4+Pj4gKwlpZiAoZGV2aWNlX3Zhcmlh bnQgPT0gVlJCMl9WQVJJQU5UKQ0KPiA+Pj4+PiArCQlyZXR1cm4gcmluZ19kYXRhLT52Zl9pZF92 cmIyID0gdmFsdWU7DQo+ID4+Pj4+ICsJZWxzZQ0KPiA+Pj4+PiArCQlyZXR1cm4gcmluZ19kYXRh LT52Zl9pZCA9IHZhbHVlOyB9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gICAgIC8qDQo+ID4+Pj4+ICAg ICAgKiBGaW5kIHF1ZXVlX2lkIG9mIGEgZGV2aWNlIHF1ZXVlIGJhc2VkIG9uIGRldGFpbHMgZnJv bSB0aGUgSW5mbyBSaW5nLg0KPiA+Pj4+PiAgICAgICogSWYgYSBxdWV1ZSBpc24ndCBmb3VuZCBV SU5UMTZfTUFYIGlzIHJldHVybmVkLg0KPiA+Pj4+PiAgICAgICovDQo+ID4+Pj4+ICAgICBzdGF0 aWMgaW5saW5lIHVpbnQxNl90DQo+ID4+Pj4+ICAgICBnZXRfcXVldWVfaWRfZnJvbV9yaW5nX2lu Zm8oc3RydWN0IHJ0ZV9iYmRldl9kYXRhICpkYXRhLA0KPiA+Pj4+PiAtCQljb25zdCB1bmlvbiBh Y2NfaW5mb19yaW5nX2RhdGEgcmluZ19kYXRhKQ0KPiA+Pj4+PiArCQljb25zdCB1bmlvbiBhY2Nf aW5mb19yaW5nX2RhdGEgcmluZ19kYXRhLCB1aW50MTZfdA0KPiA+Pj4+IGRldmljZV92YXJpYW50 KQ0KPiA+Pj4+DQo+ID4+Pj4gQXMgSSBzdWdnZXN0ZWQgb24gdjI6DQo+ID4+Pj4NCj4gPj4+PiBn ZXRfcXVldWVfaWRfZnJvbV9yaW5nX2luZm8oc3RydWN0IHJ0ZV9iYmRldl9kYXRhICpkYXRhLA0K PiA+Pj4+IAljb25zdCB1bmlvbiBhY2NfaW5mb19yaW5nX2RhdGEgcmluZ19kYXRhKSB7DQo+ID4+ Pj4gCXN0cnVjdCBhY2NfZGV2aWNlICpkID0gZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4+Pj4NCj4g Pj4+PiAJLi4uDQo+ID4+Pj4NCj4gPj4+PiAJaWYgKGFjY19xICE9IE5VTEwgJiYgYWNjX3EtPmFx X2lkID09IGFxX2Zyb21fcmluZyhkLCByaW5nX2RhdGEpICYmDQo+ID4+Pj4gLi4uDQo+ID4+Pj4N Cj4gPj4+PiB9DQo+ID4+Pj4NCj4gPj4+PiB3aXRoDQo+ID4+Pj4NCj4gPj4+PiAvKiBXcmFwcGVy IHRvIHByb3ZpZGUgQVEgaW5kZXggZnJvbSByaW5nIGRhdGEuICovIHRhdGljIGlubGluZQ0KPiA+ Pj4+IHVpbnQxNl90IGFxX2Zyb21fcmluZyhzdHJ1Y3QgYWNjX2RldmljZSAqZCwgY29uc3QgdW5p b24NCj4gPj4+PiBhY2NfaW5mb19yaW5nX2RhdGEgcmluZ19kYXRhKSB7DQo+ID4+Pj4gCWlmIChk LT5kZXZpY2VfdmFyaWFudCA9PSBWUkIyX1ZBUklBTlQpDQo+ID4+Pj4gCQlyZXR1cm4gcmluZ19k YXRhLmFxX2lkX3ZyYjI7DQo+ID4+Pj4gCWVsc2UNCj4gPj4+PiAJCXJldHVybiByaW5nX2RhdGEu YXFfaWQ7DQo+ID4+Pj4gfQ0KPiA+Pj4+DQo+ID4+Pg0KPiA+Pj4gSSB3aWxsIGNoYW5nZSB0aGUg Z2V0X3F1ZXVlX2lkX2Zyb21fcmluZ19pbmZvKCkgdG8gaGF2ZSBhIHNtYWxsZXINCj4gPj4+IHBy b3RvdHlwZSBidXQgSSBkb27igJl0IHBsYW4gb24gY2hhbmdpbmcgdGhlIG90aGVyIG5ldyB1bmRl cmx5aW5nIGZ1bnMNCj4gPj4+IHRvIHVzZSBkZXYgaW5zdGVhZCBvZiB0aGUgdmFyaWFudCBpbiBw cm90b3R5cGUsIEkgZG9u4oCZdCBzZWUgYSByZWFzb24NCj4gPj4+IHRvIGFzIHRoZXNlIG9ubHkg bmVlZCB0aGlzIHZlcnkgbWVtYmVyLg0KPiA+Pg0KPiA+PiBJTUhPLCByZWFzb24gaXMgaXQgY29z dCBub3RoaW5nIGFuZCBpcyBtb3JlIGZ1dHVyZSBwcm9vZi4NCj4gPg0KPiA+IFRoYW5rcywgb24g dGhhdCB2ZXJ5IGNhc2UgSSBiZWxpZXZlIGl0IHRoZSBwcm90b3R5cGUgaXMgY2xlYW5lciB3aXRo IHRoZSBkZXZpY2UNCj4gdmFyaWFudC4gSSBkb27igJl0IHNlZSBmdXR1cmUgcHJvb2YgY29uY2Vy bi4NCj4gPg0KPiA+Pg0KPiA+PiBBbHNvLCBteSBpbml0aWFsIGlkZWEgd2FzIHRvIGhhdmUgYW4g aW50ZXJtZWRpYXRlIHJlcHJlc2VudGF0aW9uLCBsaWtlOg0KPiA+Pg0KPiA+PiBzdHJ1Y3QgYWNj X3F1ZXVlX2luZm8geyAvLyBOb3Qgc3VyZSBhYm91dCB0aGUgbmFtZQ0KPiA+PiAJdWludDE2X3Qg dmZfaWQ7DQo+ID4+IAl1aW50OF90IHFncnBfaWQ7DQo+ID4+IAl1aW50MTZfdCBhcV9pZDsNCj4g Pj4gfTsNCj4gPj4NCj4gPj4gVGhlbiB3ZSBoYXZlIGEgc2luZ2xlIGNhbGxiYWNrIGZvciBlYWNo IHZhcmlhbnQNCj4gPj4NCj4gPj4gc3RhdGljIHZvaWQNCj4gPj4gdnJiMV9yaW5nX2RhdGFfdG9f cXVldWVfaW5mbyhjb25zdCB1bmlvbiBhY2NfaW5mb19yaW5nX2RhdGEgcmluZ19kYXRhLA0KPiA+ PiAJCXN0cnVjdCBhY2NfcXVldWVfaW5mbyAqcXVldWVfaW5mbykNCj4gPj4gew0KPiA+PiAJcXVl dWVfaW5mby0+dmZfaWQgPSByaW5nX2RhdGEudmZfaWQ7DQo+ID4+IAlxdWV1ZV9pbmZvLT5xZ3Jw X2lkID0gLi4uDQo+ID4+IH0NCj4gPj4NCj4gPj4gc3RhdGljIHZvaWQNCj4gPj4gdnJiMl9yaW5n X2RhdGFfdG9fcXVldWVfaW5mbyhjb25zdCB1bmlvbiBhY2NfaW5mb19yaW5nX2RhdGEgcmluZ19k YXRhLA0KPiA+PiAJCXN0cnVjdCBhY2NfcXVldWVfaW5mbyAqcXVldWVfaW5mbykNCj4gPj4gew0K PiA+Pg0KPiA+PiB9DQo+ID4+DQo+ID4+IFRoZSBhY2NfcXVldWVfaW5mbyBzdHJ1Y3QgY2FuIGFs c28gYmUgdXNlZCBpbiBzdHJ1Y3QgYWNjX3F1ZXVlLCBzbyB3ZQ0KPiA+PiB1c2Ugc2FtZSBmb3Jt YXQgZXZlcnl3aGVyZS4NCj4gPj4NCj4gPj4gSSB0aGluayBpdCB3aWxsIGJlIGxlc3MgdmVyYm9z ZSwgYW5kIHF1aWNrZXIgdG8gYWRkIG5ldyB2YXJpYW50cw0KPiA+PiB3aXRob3V0IHJpc2tpbmcg dG8gbWlzcyBhZGRpbmcgImVsc2UgaWYgKGQtPmRldmljZV92YXJpYW50ID09IFZSQnhfVkFSSUFO VCkiDQo+ID4+IGFueXdoZXJlLg0KPiA+Pg0KPiA+PiBXaGF0IGRvIHlvdSB0aGluaz8NCj4gPg0K PiA+IEkgdGhpbmsgYm90aCB3b3VsZCB3b3JrLiBUaGUgaW50ZXJtZWRpYXRlIHN0cnVjdHVyZSBt YXkgYmUgYSBiaXQgYXJ0aWZpY2lhbCwgYW5kDQo+IGl0IHdvdWxkIGhhdmUgZGlmZmVyZW50IG1l bWJlcnMgd2hlbiBnZXR0aW5nIGluZm8gZnJvbSBxdWV1ZSBvciByaW5nIChpZS4gdGhlDQo+IGlu dCBpbmRleCkuIEFsc28gdGhlcmUgaXMgbm8gcmVjaXByb2NhbCBmdW5jdGlvbiwgaWUgd2Ugc2V0 IG9ubHkgdGhlIFZGIGludG8gdGhlIHJpbmcuDQo+IEFuZCB0aGVyZSBpcyBhIGxvY2F0aW9uIHdo ZXJlIHdlIG9ubHkgbmVlZCBvbmUgb2YgaW5mb3JtYXRpb24gbm90IGFsbCBvZiB0aGUNCj4gb3Ro ZXIgbWVtYmVycy4NCj4gPiBBZ2FpbiBib3RoIGFyZSBva2F5IHRvIG1lIHdpdGhvdXQgc3VwZXIg c3Ryb25nIHByZWZlcmVuY2UsIHNvIGZvciBub3cgSQ0KPiB3b3VsZCBzdWdnZXN0IHRvIGtlZXAg YXMgaXMuDQo+IA0KPiBPaywgYnV0IHBsZWFzZSBwYXNzIGRldiBhbmQgbm90IHZhcmlhbnQgZGly ZWN0bHkgaW4gdGhlIGhlbHBlcnMuDQoNCkkgcmVhbGx5IHRoaW5rIGl0IGlzIHdheSBwcm9wZXIg dG8ga2VlcCB0aGUgYWN0dWFsIHZhcmlhbnQgaW4gdGhpcyBmdW5jdGlvbiBwcm90b3R5cGUgYW5k IG5vdCBwcm92aWRpbmcgdGhlIGZ1bGwgZGV2LiBUaGlzIGlzIHdoYXQgdGhlIGZ1bmN0aW9uIGlz IGFib3V0LiBLaW5kbHkgbG9vayBhdCB2NC4gDQoNCj4gDQo+ID4+DQo+ID4+Pg0KPiA+Pj4+PiAg ICAgew0KPiA+Pj4+PiAgICAgCXVpbnQxNl90IHF1ZXVlX2lkOw0KPiA+Pj4+PiArCXN0cnVjdCBh Y2NfcXVldWUgKmFjY19xOw0KPiA+Pj4+Pg0KPiA+Pj4+PiAgICAgCWZvciAocXVldWVfaWQgPSAw OyBxdWV1ZV9pZCA8IGRhdGEtPm51bV9xdWV1ZXM7ICsrcXVldWVfaWQpDQo+IHsNCj4gPj4+Pj4g LQkJc3RydWN0IGFjY19xdWV1ZSAqYWNjX3EgPQ0KPiA+Pj4+PiAtCQkJCWRhdGEtPnF1ZXVlc1tx dWV1ZV9pZF0ucXVldWVfcHJpdmF0ZTsNCj4gPj4+Pj4gLQkJaWYgKGFjY19xICE9IE5VTEwgJiYg YWNjX3EtPmFxX2lkID09IHJpbmdfZGF0YS5hcV9pZCAmJg0KPiA+Pj4+PiAtCQkJCWFjY19xLT5x Z3JwX2lkID09IHJpbmdfZGF0YS5xZ19pZCAmJg0KPiA+Pj4+PiAtCQkJCWFjY19xLT52Zl9pZCA9 PSByaW5nX2RhdGEudmZfaWQpDQo+ID4+Pj4+ICsJCWFjY19xID0gZGF0YS0+cXVldWVzW3F1ZXVl X2lkXS5xdWV1ZV9wcml2YXRlOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJCWlmIChhY2NfcSAhPSBO VUxMICYmIGFjY19xLT5hcV9pZCA9PQ0KPiA+Pj4+IGFxX2Zyb21fcmluZyhyaW5nX2RhdGEsIGRl dmljZV92YXJpYW50KSAmJg0KPiA+Pj4+PiArCQkJCWFjY19xLT5xZ3JwX2lkID09IHFnX2Zyb21f cmluZyhyaW5nX2RhdGEsDQo+ID4+Pj4gZGV2aWNlX3ZhcmlhbnQpICYmDQo+ID4+Pj4+ICsJCQkJ YWNjX3EtPnZmX2lkID09IHZmX2Zyb21fcmluZyhyaW5nX2RhdGEsDQo+ID4+Pj4gZGV2aWNlX3Zh cmlhbnQpKQ0KPiA+Pj4+PiAgICAgCQkJcmV0dXJuIHF1ZXVlX2lkOw0KPiA+Pj4+PiAgICAgCX0N Cj4gPj4+Pj4NCj4gPj4+Pj4gQEAgLTE0MzgsNCArMTU2NywxMSBAQCBnZXRfbnVtX2Nic19pbl90 Yl9sZHBjX2VuYyhzdHJ1Y3QNCj4gPj4+PiBydGVfYmJkZXZfb3BfbGRwY19lbmMgKmxkcGNfZW5j KQ0KPiA+Pj4+PiAgICAgCXJldHVybiBjYnNfaW5fdGI7DQo+ID4+Pj4+ICAgICB9DQo+ID4+Pj4+ DQo+ID4+Pj4+ICtzdGF0aWMgaW5saW5lIHZvaWQNCj4gPj4+Pj4gK2FjY19yZWdfZmFzdF93cml0 ZShzdHJ1Y3QgYWNjX2RldmljZSAqZCwgdWludDMyX3Qgb2Zmc2V0LA0KPiA+Pj4+PiArdWludDMy X3QNCj4gPj4+Pj4gK3ZhbHVlKSB7DQo+ID4+Pj4+ICsJdm9pZCAqcmVnX2FkZHIgPSBSVEVfUFRS X0FERChkLT5tbWlvX2Jhc2UsIG9mZnNldCk7DQo+ID4+Pj4+ICsJbW1pb193cml0ZShyZWdfYWRk ciwgdmFsdWUpOw0KPiA+Pj4+PiArfQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICAgICAjZW5kaWYgLyog X0FDQ19DT01NT05fSF8gKi8NCj4gPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZWJhbmQv YWNjL3J0ZV9hY2MxMDBfcG1kLmMNCj4gPj4+Pj4gYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9ydGVf YWNjMTAwX3BtZC5jDQo+ID4+Pj4+IGluZGV4IDUzNjJkMzljMzAuLjdmOGQwNWI1YTkgMTAwNjQ0 DQo+ID4+Pj4+IC0tLSBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV9hY2MxMDBfcG1kLmMNCj4g Pj4+Pj4gKysrIGIvZHJpdmVycy9iYXNlYmFuZC9hY2MvcnRlX2FjYzEwMF9wbWQuYw0KPiA+Pj4+ PiBAQCAtMjk0LDcgKzI5NCw3IEBAIGFjYzEwMF9wZl9pbnRlcnJ1cHRfaGFuZGxlcihzdHJ1Y3Qg cnRlX2JiZGV2DQo+ID4+ICpkZXYpDQo+ID4+Pj4+ICAgICAJCWNhc2UgQUNDMTAwX1BGX0lOVF9E TUFfVUw1R19ERVNDX0lSUToNCj4gPj4+Pj4gICAgIAkJY2FzZSBBQ0MxMDBfUEZfSU5UX0RNQV9E TDVHX0RFU0NfSVJROg0KPiA+Pj4+PiAgICAgCQkJZGVxX2ludHJfZGV0LnF1ZXVlX2lkID0NCj4g Pj4+PiBnZXRfcXVldWVfaWRfZnJvbV9yaW5nX2luZm8oDQo+ID4+Pj4+IC0JCQkJCWRldi0+ZGF0 YSwgKnJpbmdfZGF0YSk7DQo+ID4+Pj4+ICsJCQkJCWRldi0+ZGF0YSwgKnJpbmdfZGF0YSwgYWNj MTAwX2Rldi0NCj4gPj4+Pj4gZGV2aWNlX3ZhcmlhbnQpOw0KPiA+Pj4+PiAgICAgCQkJaWYgKGRl cV9pbnRyX2RldC5xdWV1ZV9pZCA9PSBVSU5UMTZfTUFYKSB7DQo+ID4+Pj4+ICAgICAJCQkJcnRl X2JiZGV2X2xvZyhFUlIsDQo+ID4+Pj4+ICAgICAJCQkJCQkiQ291bGRuJ3QgZmluZCBxdWV1ZToN Cj4gYXFfaWQ6DQo+ID4+Pj4gJXUsIHFnX2lkOiAldSwgdmZfaWQ6ICV1IiwgQEANCj4gPj4+Pj4g LTM0OCw3ICszNDgsNyBAQCBhY2MxMDBfdmZfaW50ZXJydXB0X2hhbmRsZXIoc3RydWN0IHJ0ZV9i YmRldiAqZGV2KQ0KPiA+Pj4+PiAgICAgCQkJICovDQo+ID4+Pj4+ICAgICAJCQlyaW5nX2RhdGEt PnZmX2lkID0gMDsNCj4gPj4+Pj4gICAgIAkJCWRlcV9pbnRyX2RldC5xdWV1ZV9pZCA9DQo+ID4+ Pj4gZ2V0X3F1ZXVlX2lkX2Zyb21fcmluZ19pbmZvKA0KPiA+Pj4+PiAtCQkJCQlkZXYtPmRhdGEs ICpyaW5nX2RhdGEpOw0KPiA+Pj4+PiArCQkJCQlkZXYtPmRhdGEsICpyaW5nX2RhdGEsIGFjYzEw MF9kZXYtDQo+ID4+Pj4+IGRldmljZV92YXJpYW50KTsNCj4gPj4+Pj4gICAgIAkJCWlmIChkZXFf aW50cl9kZXQucXVldWVfaWQgPT0gVUlOVDE2X01BWCkgew0KPiA+Pj4+PiAgICAgCQkJCXJ0ZV9i YmRldl9sb2coRVJSLA0KPiA+Pj4+PiAgICAgCQkJCQkJIkNvdWxkbid0IGZpbmQgcXVldWU6DQo+ IGFxX2lkOg0KPiA+Pj4+ICV1LCBxZ19pZDogJXUiLCBkaWZmIC0tZ2l0DQo+ID4+Pj4+IGEvZHJp dmVycy9iYXNlYmFuZC9hY2MvcnRlX3ZyYl9wbWQuYw0KPiA+Pj4+PiBiL2RyaXZlcnMvYmFzZWJh bmQvYWNjL3J0ZV92cmJfcG1kLmMNCj4gPj4+Pj4gaW5kZXggYTFkZTAxMmI0MC4uYzg5YzI2YzU5 YSAxMDA2NDQNCj4gPj4+Pj4gLS0tIGEvZHJpdmVycy9iYXNlYmFuZC9hY2MvcnRlX3ZyYl9wbWQu Yw0KPiA+Pj4+PiArKysgYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9ydGVfdnJiX3BtZC5jDQo+ID4+ Pj4+IEBAIC0zNDEsMTcgKzM0MSwxOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQNCj4gPj4+Pj4gICAg IHZyYl9jaGVja19pcihzdHJ1Y3QgYWNjX2RldmljZSAqYWNjX2RldikNCj4gPj4+Pj4gICAgIHsN Cj4gPj4+Pj4gICAgIAl2b2xhdGlsZSB1bmlvbiBhY2NfaW5mb19yaW5nX2RhdGEgKnJpbmdfZGF0 YTsNCj4gPj4+Pj4gLQl1aW50MTZfdCBpbmZvX3JpbmdfaGVhZCA9IGFjY19kZXYtPmluZm9fcmlu Z19oZWFkOw0KPiA+Pj4+PiArCXVpbnQxNl90IGluZm9fcmluZ19oZWFkID0gYWNjX2Rldi0+aW5m b19yaW5nX2hlYWQsIGludF9uYjsNCj4gPj4+Pj4gICAgIAlpZiAodW5saWtlbHkoYWNjX2Rldi0+ aW5mb19yaW5nID09IE5VTEwpKQ0KPiA+Pj4+PiAgICAgCQlyZXR1cm47DQo+ID4+Pj4+DQo+ID4+ Pj4+ICAgICAJcmluZ19kYXRhID0gYWNjX2Rldi0+aW5mb19yaW5nICsgKGFjY19kZXYtPmluZm9f cmluZ19oZWFkICYNCj4gPj4+Pj4gQUNDX0lORk9fUklOR19NQVNLKTsNCj4gPj4+Pj4NCj4gPj4+ Pj4gICAgIAl3aGlsZSAocmluZ19kYXRhLT52YWxpZCkgew0KPiA+Pj4+PiAtCQlpZiAoKHJpbmdf ZGF0YS0+aW50X25iIDwgQUNDX1BGX0lOVF9ETUFfRExfREVTQ19JUlEpIHx8ICgNCj4gPj4+Pj4g LQkJCQlyaW5nX2RhdGEtPmludF9uYiA+DQo+ID4+Pj4gQUNDX1BGX0lOVF9ETUFfTUxEX0RFU0Nf SVJRKSkgew0KPiA+Pj4+PiArCQlpbnRfbmIgPSBpbnRfZnJvbV9yaW5nKCpyaW5nX2RhdGEsIGFj Y19kZXYtPmRldmljZV92YXJpYW50KTsNCj4gPj4+Pj4gKwkJaWYgKChpbnRfbmIgPCBBQ0NfUEZf SU5UX0RNQV9ETF9ERVNDX0lSUSkgfHwgKA0KPiA+Pj4+PiArCQkJCWludF9uYiA+IEFDQ19QRl9J TlRfRE1BX01MRF9ERVNDX0lSUSkpDQo+ID4+Pj4gew0KPiA+Pj4+PiAgICAgCQkJcnRlX2JiZGV2 X2xvZyhXQVJOSU5HLCAiSW5mb1Jpbmc6IElUUjolZA0KPiA+Pj4+IEluZm86MHgleCIsDQo+ID4+ Pj4+IC0JCQkJCXJpbmdfZGF0YS0+aW50X25iLCByaW5nX2RhdGEtDQo+ID4+Pj4+IGRldGFpbGVk X2luZm8pOw0KPiA+Pj4+PiArCQkJCQlpbnRfbmIsIHJpbmdfZGF0YS0+ZGV0YWlsZWRfaW5mbyk7 DQo+ID4+Pj4+ICAgICAJCQkvKiBJbml0aWFsaXplIEluZm8gUmluZyBlbnRyeSBhbmQgbW92ZSBm b3J3YXJkLg0KPiAqLw0KPiA+Pj4+PiAgICAgCQkJcmluZ19kYXRhLT52YWwgPSAwOw0KPiA+Pj4+ PiAgICAgCQl9DQo+ID4+Pj4+IEBAIC0zNjgsMTYgKzM2OSwyMSBAQCB2cmJfZGV2X2ludGVycnVw dF9oYW5kbGVyKHZvaWQgKmNiX2FyZykNCj4gPj4+Pj4gICAgIAlzdHJ1Y3QgYWNjX2RldmljZSAq YWNjX2RldiA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4+Pj4+ICAgICAJdm9sYXRpbGUg dW5pb24gYWNjX2luZm9fcmluZ19kYXRhICpyaW5nX2RhdGE7DQo+ID4+Pj4+ICAgICAJc3RydWN0 IGFjY19kZXFfaW50cl9kZXRhaWxzIGRlcV9pbnRyX2RldDsNCj4gPj4+Pj4gKwl1aW50MTZfdCB2 Zl9pZCwgYXFfaWQsIHFnX2lkLCBpbnRfbmI7DQo+ID4+Pj4+DQo+ID4+Pj4+ICAgICAJcmluZ19k YXRhID0gYWNjX2Rldi0+aW5mb19yaW5nICsgKGFjY19kZXYtPmluZm9fcmluZ19oZWFkICYNCj4g Pj4+Pj4gQUNDX0lORk9fUklOR19NQVNLKTsNCj4gPj4+Pj4NCj4gPj4+Pj4gICAgIAl3aGlsZSAo cmluZ19kYXRhLT52YWxpZCkgew0KPiA+Pj4+PiArCQl2Zl9pZCA9IHZmX2Zyb21fcmluZygqcmlu Z19kYXRhLCBhY2NfZGV2LT5kZXZpY2VfdmFyaWFudCk7DQo+ID4+Pj4+ICsJCWFxX2lkID0gYXFf ZnJvbV9yaW5nKCpyaW5nX2RhdGEsIGFjY19kZXYtPmRldmljZV92YXJpYW50KTsNCj4gPj4+Pj4g KwkJcWdfaWQgPSBxZ19mcm9tX3JpbmcoKnJpbmdfZGF0YSwgYWNjX2Rldi0+ZGV2aWNlX3Zhcmlh bnQpOw0KPiA+Pj4+PiArCQlpbnRfbmIgPSBpbnRfZnJvbV9yaW5nKCpyaW5nX2RhdGEsIGFjY19k ZXYtPmRldmljZV92YXJpYW50KTsNCj4gPj4+Pj4gICAgIAkJaWYgKGFjY19kZXYtPnBmX2Rldmlj ZSkgew0KPiA+Pj4+PiAgICAgCQkJcnRlX2JiZGV2X2xvZ19kZWJ1ZygNCj4gPj4+Pj4gLQkJCQkJ IlZSQjEgUEYgSW50ZXJydXB0IHJlY2VpdmVkLCBJbmZvIFJpbmcNCj4gPj4+PiBkYXRhOiAweCV4 IC0+ICVkIiwNCj4gPj4+Pj4gLQkJCQkJcmluZ19kYXRhLT52YWwsIHJpbmdfZGF0YS0+aW50X25i KTsNCj4gPj4+Pj4gKwkJCQkJIlBGIEludGVycnVwdCByZWNlaXZlZCwgSW5mbyBSaW5nIGRhdGE6 DQo+ID4+Pj4gMHgleCAtPiAlZCIsDQo+ID4+Pj4+ICsJCQkJCXJpbmdfZGF0YS0+dmFsLCBpbnRf bmIpOw0KPiA+Pj4+Pg0KPiA+Pj4+PiAtCQkJc3dpdGNoIChyaW5nX2RhdGEtPmludF9uYikgew0K PiA+Pj4+PiArCQkJc3dpdGNoIChpbnRfbmIpIHsNCj4gPj4+Pj4gICAgIAkJCWNhc2UgQUNDX1BG X0lOVF9ETUFfRExfREVTQ19JUlE6DQo+ID4+Pj4+ICAgICAJCQljYXNlIEFDQ19QRl9JTlRfRE1B X1VMX0RFU0NfSVJROg0KPiA+Pj4+PiAgICAgCQkJY2FzZSBBQ0NfUEZfSU5UX0RNQV9GRlRfREVT Q19JUlE6DQo+ID4+Pj4+IEBAIC0zODUsMTMgKzM5MSwxMSBAQCB2cmJfZGV2X2ludGVycnVwdF9o YW5kbGVyKHZvaWQgKmNiX2FyZykNCj4gPj4+Pj4gICAgIAkJCWNhc2UgQUNDX1BGX0lOVF9ETUFf REw1R19ERVNDX0lSUToNCj4gPj4+Pj4gICAgIAkJCWNhc2UgQUNDX1BGX0lOVF9ETUFfTUxEX0RF U0NfSVJROg0KPiA+Pj4+PiAgICAgCQkJCWRlcV9pbnRyX2RldC5xdWV1ZV9pZCA9DQo+ID4+Pj4g Z2V0X3F1ZXVlX2lkX2Zyb21fcmluZ19pbmZvKA0KPiA+Pj4+PiAtCQkJCQkJZGV2LT5kYXRhLCAq cmluZ19kYXRhKTsNCj4gPj4+Pj4gKwkJCQkJCWRldi0+ZGF0YSwgKnJpbmdfZGF0YSwNCj4gPj4+ PiBhY2NfZGV2LT5kZXZpY2VfdmFyaWFudCk7DQo+ID4+Pj4+ICAgICAJCQkJaWYgKGRlcV9pbnRy X2RldC5xdWV1ZV9pZCA9PQ0KPiBVSU5UMTZfTUFYKSB7DQo+ID4+Pj4+ICAgICAJCQkJCXJ0ZV9i YmRldl9sb2coRVJSLA0KPiA+Pj4+PiAgICAgCQkJCQkJCSJDb3VsZG4ndCBmaW5kDQo+IHF1ZXVl Og0KPiA+Pj4+IGFxX2lkOiAldSwgcWdfaWQ6ICV1LCB2Zl9pZDogJXUiLA0KPiA+Pj4+PiAtCQkJ CQkJCXJpbmdfZGF0YS0+YXFfaWQsDQo+ID4+Pj4+IC0JCQkJCQkJcmluZ19kYXRhLT5xZ19pZCwN Cj4gPj4+Pj4gLQkJCQkJCQlyaW5nX2RhdGEtPnZmX2lkKTsNCj4gPj4+Pj4gKwkJCQkJCQlhcV9p ZCwgcWdfaWQsIHZmX2lkKTsNCj4gPj4+Pj4gICAgIAkJCQkJcmV0dXJuOw0KPiA+Pj4+PiAgICAg CQkJCX0NCj4gPj4+Pj4gICAgIAkJCQlydGVfYmJkZXZfcG1kX2NhbGxiYWNrX3Byb2Nlc3MoZGV2 LA0KPiA+Pj4+PiBAQCAtNDAzLDkgKzQwNyw5IEBAIHZyYl9kZXZfaW50ZXJydXB0X2hhbmRsZXIo dm9pZCAqY2JfYXJnKQ0KPiA+Pj4+PiAgICAgCQkJfQ0KPiA+Pj4+PiAgICAgCQl9IGVsc2Ugew0K PiA+Pj4+PiAgICAgCQkJcnRlX2JiZGV2X2xvZ19kZWJ1ZygNCj4gPj4+Pj4gLQkJCQkJIlZSQjEg VkYgSW50ZXJydXB0IHJlY2VpdmVkLCBJbmZvIFJpbmcNCj4gPj4+PiBkYXRhOiAweCV4XG4iLA0K PiA+Pj4+PiArCQkJCQkiVlJCIFZGIEludGVycnVwdCByZWNlaXZlZCwgSW5mbyBSaW5nDQo+ID4+ Pj4gZGF0YTogMHgleFxuIiwNCj4gPj4+Pj4gICAgIAkJCQkJcmluZ19kYXRhLT52YWwpOw0KPiA+ Pj4+PiAtCQkJc3dpdGNoIChyaW5nX2RhdGEtPmludF9uYikgew0KPiA+Pj4+PiArCQkJc3dpdGNo IChpbnRfbmIpIHsNCj4gPj4+Pj4gICAgIAkJCWNhc2UgQUNDX1ZGX0lOVF9ETUFfRExfREVTQ19J UlE6DQo+ID4+Pj4+ICAgICAJCQljYXNlIEFDQ19WRl9JTlRfRE1BX1VMX0RFU0NfSVJROg0KPiA+ Pj4+PiAgICAgCQkJY2FzZSBBQ0NfVkZfSU5UX0RNQV9GRlRfREVTQ19JUlE6DQo+ID4+Pj4+IEBA IC00MTMsMTQgKzQxNywxMyBAQCB2cmJfZGV2X2ludGVycnVwdF9oYW5kbGVyKHZvaWQgKmNiX2Fy ZykNCj4gPj4+Pj4gICAgIAkJCWNhc2UgQUNDX1ZGX0lOVF9ETUFfREw1R19ERVNDX0lSUToNCj4g Pj4+Pj4gICAgIAkJCWNhc2UgQUNDX1ZGX0lOVF9ETUFfTUxEX0RFU0NfSVJROg0KPiA+Pj4+PiAg ICAgCQkJCS8qIFZGcyBhcmUgbm90IGF3YXJlIG9mIHRoZWlyIHZmX2lkIC0gaXQncw0KPiBzZXQg dG8NCj4gPj4+PiAwLiAgKi8NCj4gPj4+Pj4gLQkJCQlyaW5nX2RhdGEtPnZmX2lkID0gMDsNCj4g Pj4+Pj4gKwkJCQlzZXRfdmZfaW5fcmluZyhyaW5nX2RhdGEsIGFjY19kZXYtDQo+ID4+Pj4+IGRl dmljZV92YXJpYW50LCAwKTsNCj4gPj4+Pj4gICAgIAkJCQlkZXFfaW50cl9kZXQucXVldWVfaWQg PQ0KPiA+Pj4+IGdldF9xdWV1ZV9pZF9mcm9tX3JpbmdfaW5mbygNCj4gPj4+Pj4gLQkJCQkJCWRl di0+ZGF0YSwgKnJpbmdfZGF0YSk7DQo+ID4+Pj4+ICsJCQkJCQlkZXYtPmRhdGEsICpyaW5nX2Rh dGEsDQo+ID4+Pj4gYWNjX2Rldi0+ZGV2aWNlX3ZhcmlhbnQpOw0KPiA+Pj4+PiAgICAgCQkJCWlm IChkZXFfaW50cl9kZXQucXVldWVfaWQgPT0NCj4gVUlOVDE2X01BWCkgew0KPiA+Pj4+PiAgICAg CQkJCQlydGVfYmJkZXZfbG9nKEVSUiwNCj4gPj4+Pj4gICAgIAkJCQkJCQkiQ291bGRuJ3QgZmlu ZA0KPiBxdWV1ZToNCj4gPj4+PiBhcV9pZDogJXUsIHFnX2lkOiAldSIsDQo+ID4+Pj4+IC0JCQkJ CQkJcmluZ19kYXRhLT5hcV9pZCwNCj4gPj4+Pj4gLQkJCQkJCQlyaW5nX2RhdGEtPnFnX2lkKTsN Cj4gPj4+Pj4gKwkJCQkJCQlhcV9pZCwgcWdfaWQpOw0KPiA+Pj4+PiAgICAgCQkJCQlyZXR1cm47 DQo+ID4+Pj4+ICAgICAJCQkJfQ0KPiA+Pj4+PiAgICAgCQkJCXJ0ZV9iYmRldl9wbWRfY2FsbGJh Y2tfcHJvY2VzcyhkZXYsDQo+ID4+Pj4+IEBAIC00MzUsOCArNDM4LDcgQEAgdnJiX2Rldl9pbnRl cnJ1cHRfaGFuZGxlcih2b2lkICpjYl9hcmcpDQo+ID4+Pj4+ICAgICAJCS8qIEluaXRpYWxpemUg SW5mbyBSaW5nIGVudHJ5IGFuZCBtb3ZlIGZvcndhcmQuICovDQo+ID4+Pj4+ICAgICAJCXJpbmdf ZGF0YS0+dmFsID0gMDsNCj4gPj4+Pj4gICAgIAkJKythY2NfZGV2LT5pbmZvX3JpbmdfaGVhZDsN Cj4gPj4+Pj4gLQkJcmluZ19kYXRhID0gYWNjX2Rldi0+aW5mb19yaW5nICsNCj4gPj4+Pj4gLQkJ CQkoYWNjX2Rldi0+aW5mb19yaW5nX2hlYWQgJg0KPiA+Pj4+IEFDQ19JTkZPX1JJTkdfTUFTSyk7 DQo+ID4+Pj4+ICsJCXJpbmdfZGF0YSA9IGFjY19kZXYtPmluZm9fcmluZyArIChhY2NfZGV2LT5p bmZvX3JpbmdfaGVhZCAmDQo+ID4+Pj4+ICtBQ0NfSU5GT19SSU5HX01BU0spOw0KPiA+Pj4+PiAg ICAgCX0NCj4gPj4+Pj4gICAgIH0NCj4gPj4+Pj4NCj4gPj4+Pj4gQEAgLTU1Niw4ICs1NTgsNyBA QCB2cmJfc2V0dXBfcXVldWVzKHN0cnVjdCBydGVfYmJkZXYgKmRldiwNCj4gPj4+Pj4gdWludDE2 X3QgbnVtX3F1ZXVlcywgaW50IHNvY2tldF9pZCkNCj4gPj4+Pj4NCj4gPj4+Pj4gICAgIAkvKiBD b25maWd1cmUgdGFpbCBwb2ludGVyIGZvciB1c2Ugd2hlbiBTRE9ORSBlbmFibGVkLiAqLw0KPiA+ Pj4+PiAgICAgCWlmIChkLT50YWlsX3B0cnMgPT0gTlVMTCkNCj4gPj4+Pj4gLQkJZC0+dGFpbF9w dHJzID0gcnRlX3ptYWxsb2Nfc29ja2V0KA0KPiA+Pj4+PiAtCQkJCWRldi0+ZGV2aWNlLT5kcml2 ZXItPm5hbWUsDQo+ID4+Pj4+ICsJCWQtPnRhaWxfcHRycyA9IHJ0ZV96bWFsbG9jX3NvY2tldChk ZXYtPmRldmljZS0+ZHJpdmVyLT5uYW1lLA0KPiA+Pj4+PiAgICAgCQkJCVZSQl9NQVhfUUdSUFMg KiBWUkJfTUFYX0FRUyAqDQo+ID4+Pj4gc2l6ZW9mKHVpbnQzMl90KSwNCj4gPj4+Pj4gICAgIAkJ CQlSVEVfQ0FDSEVfTElORV9TSVpFLCBzb2NrZXRfaWQpOw0KPiA+Pj4+PiAgICAgCWlmIChkLT50 YWlsX3B0cnMgPT0gTlVMTCkgew0KPiA+Pj4+PiBAQCAtNzgzLDcgKzc4NCw3IEBAIHZyYl9maW5k X2ZyZWVfcXVldWVfaWR4KHN0cnVjdCBydGVfYmJkZXYgKmRldiwNCj4gPj4+Pj4gICAgIAkJCS8q IE1hcmsgdGhlIFF1ZXVlIGFzIGFzc2lnbmVkLiAqLw0KPiA+Pj4+PiAgICAgCQkJZC0+cV9hc3Np Z25lZF9iaXRfbWFwW2dyb3VwX2lkeF0gfD0gKDFVTEwgPDwNCj4gPj4+PiBhcV9pZHgpOw0KPiA+ Pj4+PiAgICAgCQkJLyogUmVwb3J0IHRoZSBBUSBJbmRleC4gKi8NCj4gPj4+Pj4gLQkJCXJldHVy biAoZ3JvdXBfaWR4IDw8IFZSQjFfR1JQX0lEX1NISUZUKSArIGFxX2lkeDsNCj4gPj4+Pj4gKwkJ CXJldHVybiBxdWV1ZV9pbmRleChncm91cF9pZHgsIGFxX2lkeCwgZC0NCj4gPj4+Pj4gZGV2aWNl X3ZhcmlhbnQpOw0KPiA+Pj4+PiAgICAgCQl9DQo+ID4+Pj4+ICAgICAJfQ0KPiA+Pj4+PiAgICAg CXJ0ZV9iYmRldl9sb2coSU5GTywgIkZhaWxlZCB0byBmaW5kIGZyZWUgcXVldWUgb24gJXMsDQo+ ID4+Pj4+IHByaW9yaXR5ICV1IiwgQEAgLTkyMiw5ICs5MjMsMTAgQEAgdnJiX3F1ZXVlX3NldHVw KHN0cnVjdA0KPiA+Pj4+PiBydGVfYmJkZXYgKmRldiwgdWludDE2X3QNCj4gPj4+PiBxdWV1ZV9p ZCwNCj4gPj4+Pj4gICAgIAkJfQ0KPiA+Pj4+PiAgICAgCX0NCj4gPj4+Pj4NCj4gPj4+Pj4gLQlx LT5xZ3JwX2lkID0gKHFfaWR4ID4+IFZSQjFfR1JQX0lEX1NISUZUKSAmIDB4RjsNCj4gPj4+Pj4g LQlxLT52Zl9pZCA9IChxX2lkeCA+PiBWUkIxX1ZGX0lEX1NISUZUKSAgJiAweDNGOw0KPiA+Pj4+ PiAtCXEtPmFxX2lkID0gcV9pZHggJiAweEY7DQo+ID4+Pj4+ICsJcS0+cWdycF9pZCA9IHFnX2Zy b21fcShxX2lkeCwgZC0+ZGV2aWNlX3ZhcmlhbnQpOw0KPiA+Pj4+PiArCXEtPnZmX2lkID0gdmZf ZnJvbV9xKHFfaWR4LCBkLT5kZXZpY2VfdmFyaWFudCk7DQo+ID4+Pj4+ICsJcS0+YXFfaWQgPSBh cV9mcm9tX3EocV9pZHgsIGQtPmRldmljZV92YXJpYW50KTsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiAg ICAgCXEtPmFxX2RlcHRoID0gMDsNCj4gPj4+Pj4gICAgIAlpZiAoY29uZi0+b3BfdHlwZSA9PSAg UlRFX0JCREVWX09QX1RVUkJPX0RFQykNCj4gPj4+Pj4gICAgIAkJcS0+YXFfZGVwdGggPSAoMSA8 PCBkLQ0KPiA+YWNjX2NvbmYucV91bF80Zy5hcV9kZXB0aF9sb2cyKTsNCj4gPj4+Pj4gQEAgLTEz MTEsNyArMTMxMyw3IEBAIHZyYl9mY3dfdGRfZmlsbChjb25zdCBzdHJ1Y3QNCj4gPj4+Pj4gcnRl X2JiZGV2X2RlY19vcA0KPiA+Pj4+ICpvcCwgc3RydWN0IGFjY19mY3dfdGQgKmZjdykNCj4gPj4+ Pj4gICAgIAkJZmN3LT5ieXBhc3NfdGVxID0gMDsNCj4gPj4+Pj4gICAgIAl9DQo+ID4+Pj4+DQo+ ID4+Pj4+IC0JZmN3LT5jb2RlX2Jsb2NrX21vZGUgPSAxOyAvKiBGSVhNRSAqLw0KPiA+Pj4+PiAr CWZjdy0+Y29kZV9ibG9ja19tb2RlID0gMTsNCj4gPj4+Pg0KPiA+Pj4+IENvdWxkIHlvdSByZW1p bmQgbWUgd2hhdCB3YXMgdGhlIGlzc3VlPw0KPiA+Pj4NCj4gPj4+IEhpc3RvcmljYWxseSB0aGVy ZSB3YXMgdGhlIGludGVudGlvbiB0byB1c2UgYSBkaWZmZXJlbmNlIGZvcm1hdA0KPiA+Pj4gb3B0 aW9uIGluIHRoZQ0KPiA+PiBmY3cgdG8gaGVscCB3aXRoIHRoZSBUQiBtb2RlIGJ1dCB0aGF0IGlz IG5vdCBjb25zaWRlcmVkIGFueW1vcmUuDQo+ID4+DQo+ID4+IE9rLg0KPiA+Pg0KPiA+Pj4NCj4g Pj4+Pg0KPiA+Pj4+PiAgICAgCWZjdy0+dHVyYm9fY3JjX3R5cGUgPSBjaGVja19iaXQob3AtPnR1 cmJvX2RlYy5vcF9mbGFncywNCj4gPj4+Pj4gICAgIAkJCVJURV9CQkRFVl9UVVJCT19DUkNfVFlQ RV8yNEIpOw0KPiA+Pj4+Pg0KPiA+Pj4+PiBAQCAtMTQ3MSw4ICsxNDczLDggQEAgdnJiX2RtYV9k ZXNjX3RkX2ZpbGwoc3RydWN0DQo+IHJ0ZV9iYmRldl9kZWNfb3ANCj4gPj4+PiAqb3AsDQo+ID4+ Pj4+ICAgICAJaWYgKG9wLT50dXJib19kZWMuY29kZV9ibG9ja19tb2RlID09DQo+ID4+Pj4gUlRF X0JCREVWX1RSQU5TUE9SVF9CTE9DSykgew0KPiA+Pj4+PiAgICAgCQlrID0gb3AtPnR1cmJvX2Rl Yy50Yl9wYXJhbXMua19wb3M7DQo+ID4+Pj4+ICAgICAJCWUgPSAociA8IG9wLT50dXJib19kZWMu dGJfcGFyYW1zLmNhYikNCj4gPj4+Pj4gLQkJCT8gb3AtPnR1cmJvX2RlYy50Yl9wYXJhbXMuZWEN Cj4gPj4+Pj4gLQkJCTogb3AtPnR1cmJvX2RlYy50Yl9wYXJhbXMuZWI7DQo+ID4+Pj4+ICsJCQkJ PyBvcC0+dHVyYm9fZGVjLnRiX3BhcmFtcy5lYQ0KPiA+Pj4+PiArCQkJCTogb3AtPnR1cmJvX2Rl Yy50Yl9wYXJhbXMuZWI7DQo+ID4+Pj4+ICAgICAJfSBlbHNlIHsNCj4gPj4+Pj4gICAgIAkJayA9 IG9wLT50dXJib19kZWMuY2JfcGFyYW1zLms7DQo+ID4+Pj4+ICAgICAJCWUgPSBvcC0+dHVyYm9f ZGVjLmNiX3BhcmFtcy5lOyBAQCAtMTcyNiw3ICsxNzI4LDcNCj4gQEANCj4gPj4+Pj4gdnJiX2Rt YV9kZXNjX2xkX3VwZGF0ZShzdHJ1Y3QNCj4gPj4+PiBydGVfYmJkZXZfZGVjX29wICpvcCwNCj4g Pj4+Pj4gICAgIAlkZXNjLT5vcF9hZGRyID0gb3A7DQo+ID4+Pj4+ICAgICB9DQo+ID4+Pj4+DQo+ ID4+Pj4+IC0vKiBFbnF1ZXVlIG9uZSBlbmNvZGUgb3BlcmF0aW9ucyBmb3IgZGV2aWNlIGluIENC IG1vZGUgKi8NCj4gPj4+Pj4gKy8qIEVucXVldWUgb25lIGVuY29kZSBvcGVyYXRpb25zIGZvciBk ZXZpY2UgaW4gQ0IgbW9kZS4gKi8NCj4gPj4+Pj4gICAgIHN0YXRpYyBpbmxpbmUgaW50DQo+ID4+ Pj4+ICAgICBlbnF1ZXVlX2VuY19vbmVfb3BfY2Ioc3RydWN0IGFjY19xdWV1ZSAqcSwgc3RydWN0 DQo+ID4+Pj4+IHJ0ZV9iYmRldl9lbmNfb3ANCj4gPj4+PiAqb3AsDQo+ID4+Pj4+ICAgICAJCXVp bnQxNl90IHRvdGFsX2VucXVldWVkX2NicykgQEAgLTIyNjMsNyArMjI2NSw3DQo+IEBADQo+ID4+ Pj4+IHZyYl9lbnF1ZXVlX2xkcGNfZGVjX29uZV9vcF90YihzdHJ1Y3QNCj4gPj4+PiBhY2NfcXVl dWUgKnEsIHN0cnVjdCBydGVfYmJkZXZfZGVjX29wICpvcCwNCj4gPj4+Pj4gICAgIAlyZXR1cm4g Y3VycmVudF9lbnF1ZXVlZF9jYnM7DQo+ID4+Pj4+ICAgICB9DQo+ID4+Pj4+DQo+ID4+Pj4+IC0v KiBFbnF1ZXVlIG9uZSBkZWNvZGUgb3BlcmF0aW9ucyBmb3IgZGV2aWNlIGluIFRCIG1vZGUgKi8N Cj4gPj4+Pj4gKy8qIEVucXVldWUgb25lIGRlY29kZSBvcGVyYXRpb25zIGZvciBkZXZpY2UgaW4g VEIgbW9kZS4gKi8NCj4gPj4+Pj4gICAgIHN0YXRpYyBpbmxpbmUgaW50DQo+ID4+Pj4+ICAgICBl bnF1ZXVlX2RlY19vbmVfb3BfdGIoc3RydWN0IGFjY19xdWV1ZSAqcSwgc3RydWN0DQo+ID4+Pj4+ IHJ0ZV9iYmRldl9kZWNfb3ANCj4gPj4+PiAqb3AsDQo+ID4+Pj4+ICAgICAJCXVpbnQxNl90IHRv dGFsX2VucXVldWVkX2NicywgdWludDhfdCBjYnNfaW5fdGIpDQo+ID4+Pg0KPiA+DQoNCg==