From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8B5B9C43219 for ; Wed, 1 Dec 2021 07:24:54 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0387F6E8AA; Wed, 1 Dec 2021 07:24:54 +0000 (UTC) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2065.outbound.protection.outlook.com [40.107.223.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 850396E8AA for ; Wed, 1 Dec 2021 07:24:52 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fVbKONaY+kILRSn4yPaXAal9V86ukAl9iTrgaL68nG1LXy1b3CP7IpESN0f89ZXcPAve03kuFJEzFMiacmqJgfXUEDP3rkhoy9Vju0cwHzO9wPt6xwwLMXNnal7YYsS3nvL+5e7AOzx6UWtcOjYJYLAuBCHb8QFeAzoLyTlqB2rLyAYBNCicSz3sREeoAZQnbUVhEyVXtIHTwW9iqsN1jwV62bGpV9vuicUa5ZpVrK4HRcST2+c3+CB0OWg+kWIJxp+ygsYymlW9LnK1IW72LvvDMwFK4fzfIPlk5Apz6sT3d2ubjqX+1w2LsDxcL5x4iUIb81VcZdVXblUn31LOXA== 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=QDmFLyPms0escNI7Lzg1jtxR3nRwKzTUeJgm6i60ISc=; b=epiaD6C7x3jpKz0VGwYHxjDccqi4QmJx44An2b/tDVYo/5Mw8VNKE96PZgtp6S4+1h5AHJKQAv3AU7Ve9KHylAgdbMnFq0draOEaVivh6bv6jObP+lYmqLManreyd+8fCHGzHn4gIXFf1fISvOaDul9Y0qV3N29LR6zOg/isMK9h/sCEs1QwgXEMMzybDSNY+0pRe9lkeKk8Wi210FxyaZP1qv5LQXPrO7QtAmh2zQZjcUgOi8FkHtQoMccl4fjbMHXGhA0p6ADfMPZNLo1Ju+xm4i7KgypZBykz0hinK6s8FmAsPkyfLv/8z0WtAcs7C37/3KdF/M3WiuDJBcQOcA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QDmFLyPms0escNI7Lzg1jtxR3nRwKzTUeJgm6i60ISc=; b=ENpxwF82tchadv4xpDPQBOHLDob9lchQhntoHq/PBG3dpFA0xdGmDnRp7zuFUsp0X6+oIxMGca/cYVRnqj8xJWinJA4M9wZgPPwggkQSXbP45KiN6wWOVI6KU2izuCoSaTgQKjfsl0Q4SMdvZOzru9HYAKJ2EaLj5DX7t1rJm58= Received: from DM6PR12MB2619.namprd12.prod.outlook.com (2603:10b6:5:45::18) by DM5PR12MB1707.namprd12.prod.outlook.com (2603:10b6:3:108::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Wed, 1 Dec 2021 07:24:50 +0000 Received: from DM6PR12MB2619.namprd12.prod.outlook.com ([fe80::15d0:4c36:2886:bbef]) by DM6PR12MB2619.namprd12.prod.outlook.com ([fe80::15d0:4c36:2886:bbef%3]) with mapi id 15.20.4755.011; Wed, 1 Dec 2021 07:24:50 +0000 From: "Quan, Evan" To: "Lazar, Lijo" , "amd-gfx@lists.freedesktop.org" Subject: RE: [PATCH V2 13/17] drm/amd/pm: do not expose the smu_context structure used internally in power Thread-Topic: [PATCH V2 13/17] drm/amd/pm: do not expose the smu_context structure used internally in power Thread-Index: AQHX5b4EmRybpshzJ0ChQXrSOgvddKwcGPOAgAEEsiCAABMAgIAAC8lw Date: Wed, 1 Dec 2021 07:24:50 +0000 Message-ID: References: <20211130074259.1271965-1-evan.quan@amd.com> <20211130074259.1271965-14-evan.quan@amd.com> <3b2043b0-8bff-645e-9117-b8215def294a@amd.com> <929070bf-69a2-353c-3f5d-f9b1759a2ab8@amd.com> In-Reply-To: <929070bf-69a2-353c-3f5d-f9b1759a2ab8@amd.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_Enabled=true; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_SetDate=2021-12-01T07:24:47Z; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_Method=Standard; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_Name=AMD Official Use Only-AIP 2.0; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_ActionId=d09302a9-9f60-464d-a83a-1d86c83906d8; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_ContentBits=1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: bd3107fa-ed07-4fce-bad7-08d9b49ba93e x-ms-traffictypediagnostic: DM5PR12MB1707: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0NCBbTWXksS5rEmL15TmXI0j1YyskPE2JeGPQxD+RwdgsBNoeHwzpYBS7hbfssTd+NMbR3QiKFfhOYokHcULVal2zFoRYNt2zq7iw7Ew1B25tC04aWrvlBndJLOwLrL5L22zmturspv/mxpmkyJbMApUaqHmkOmjQHag+JAYD8/tDgWGoN13+HC8XmXnfsrWJXGrxIxEdbk8ELWdGaRKZ0Ez4B3TCLagS/pEb30pNLgSmJGO1x2X5iPWdUx53P/mZKfJMMFSVVknBTZRoTclqk6kyB/UEpwVCziMRcoYpW5z2Dwvn3d76OiCrpZrCspvVHcyfPI42BAfUIxL093unqtffyLqdQIOO5RiApO/SU2dptH5HpAeSgc7/n5YeMG7aGr/jmiU5XIoIdis0/ZFKEjGFcrW2ezD4aWnvvWfEJymy+xYlM/c525BSNdxDeNRHRS89los46oRVI9X1bY8ybBlnyEmKEVNfKRyTBHJJBhm5kpc267adHIu/krBzcEieTU2NjwNKefqouY3XFKLBxKIxUQ9fnqTJVKNf1Uk+w/zyidRu82n2neDDwEM271CgdXb5tnJYF2Ipb1jfHRXHtq+Yp7U9hihvPwzQnid9NqzseRmRi1lWzCK3uWi8yWSeCN7IlkEEz0rIbwUBXv9sZniMoI56ebfVAN6I8e0uKD5+osTEMRImGD/N70Y59g2VtJ6IuRIdYCFOgPL1r4YPpAH6/ySyCpNPjUagCDcW1E= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB2619.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(316002)(33656002)(6506007)(76116006)(4326008)(66556008)(55016003)(66476007)(5660300002)(83380400001)(8676002)(122000001)(38100700002)(8936002)(186003)(2906002)(64756008)(66446008)(508600001)(66946007)(71200400001)(7696005)(54906003)(38070700005)(30864003)(52536014)(9686003)(86362001)(110136005)(26005)(53546011)(559001)(579004)(309714004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dGpsQkZZZDc4VUxzVmJLbmJCd3JQT091TExpbDVDbXd2U3NNbGJwaWE0WmND?= =?utf-8?B?aENaYVJCb1VpODJrK3F1eEViQXJWMDBLdC9ZelhtMm9IZGxCRVVLYWpZTDln?= =?utf-8?B?eFlYMUNjMFB5MmU1MXBGbUZvWjdkR3FXQ1FNUWZzSzU5cU1Xd0pYWWMxOXQ3?= =?utf-8?B?SnQxL25LZDc2YStURTlHYmlCVmFnQjByMXVlZHhKdW15dW9TM3ZlbzZUUThP?= =?utf-8?B?N1FjcXpKYWVFc0g4eFVkbGQrbmdwZWVjWGV2NzBQQ096YktxZ2ZzUkVLTzdS?= =?utf-8?B?N1d4MmdoTk9GL0J6N1RnWlRNK2FiR1ZHaTJCZDlpYzM3YytFNm5RUzZ3QnJw?= =?utf-8?B?cjRHQllCK2RyZXhKV0UwdElSck9sY0VEUWd5R203bmpmL1Y4RUtuN3JxWnlF?= =?utf-8?B?b2NMNzdxTnE5dWtuRXlpQUx0Wm16MXMveUVuckU3Q0lnSWczTVBCTGJCc3BQ?= =?utf-8?B?VUo3cUZLR2NRcDl4dkRGRVdKbnhMMlVUSUNpWWNCNGlJT2hrbU9jYlRVV0Z4?= =?utf-8?B?bEpSa3FQcnlKSmRVdENEbmZSc2MvNUx1cVpNZDNranBUTUdrMUE4bmhDZU5l?= =?utf-8?B?dzFrYUJDRmQ4K3VRb3FWcEJkdlhhNllFTnl2NHlxd1lXTThQakpiNzVhOEhR?= =?utf-8?B?d24wMUc2bFJoU2JiSGo5NWFadTVZREJ4MXduS04xRlZOWlNvOWJJb3VvNnQ5?= =?utf-8?B?aDRhbS9kYnlNaGp5YU50amRwMEJ2NS9VVTFmZk9EN0dPQ3dYR0dKMjhBRFgz?= =?utf-8?B?d21sWlJPZkE1dk82Yyt5eDUvUDBOMjlHZTlCTmpHN0lqNnpzbVl5dTFXeS94?= =?utf-8?B?ZWVna21TL0tXazFzUnZLOXBlbnUzTWVaNTI4K0VacE9pdDBSbzZWeU9OUE1v?= =?utf-8?B?dkxxcjFSWXpIVmplUXBiN2FOdXRvWEtxUGpkVkVCSDRTTlRqRUgvcDZRMUR2?= =?utf-8?B?MysyNHZjOWpSOWtyaXpLNG9LUnZybnZHSEdhNWY2R0ZKR3V2cGMrVXFocGpi?= =?utf-8?B?MTBWNjlRVTVKUmgzWjRwUnNTSTV1dHo5RHZXb0V6cHR5RUI0WEhFa0J0a01O?= =?utf-8?B?cCszejM2TnlHU1BPbmRBbDU5VEpoV2VieG9qR09nR0hYN2Fvd3VXeUZqMXhW?= =?utf-8?B?NzJ0anBtR1ZZcEc0eFBQOU5sNDN0NFZOWXcvSk5Tb05TN1ByczI2MEhMVzZ6?= =?utf-8?B?bDV2MkFidmNubDBJYktEcXpSL2JDYlJ4KzZTdnZQcktjejRHYlRJTmloNTBU?= =?utf-8?B?U20yczI5T1ZWRzMySkpUTlBIL3JzWVlNTXVpQUtOUG0rU0ZQNEVPeXg4RnZz?= =?utf-8?B?YkIwcXVNNXNVMmdLSXlDdW5QVkRJYzliVkEzMFkvSkJzZktyWDduRDlkZVkx?= =?utf-8?B?VmIvaE9zbUhRNzNWU1h3Y1V4cmd1dHNIcEp0Tmd2VXN0T3E1cGdXRW9KR0N6?= =?utf-8?B?OEszUVE3UXQvajBDMWRucVphRTIreW1PWjZZYkY3azVaZldHQmp2dnZ0MjZ6?= =?utf-8?B?OVFORG9VQnBsSllDNUdjMGpocDFsVG9JVjhnMnJYTFN2NnBIUTRmc1hHczhY?= =?utf-8?B?Mm0vQ3pvTWxVMCttc3RSQnBMWnBpQlNxUVhxY25TUnVrYnlua3FwbGZqUzRD?= =?utf-8?B?NXJmOFcvb2plTTVsR2VNQlgrRzVRK2xLcldobG8vbU5ITlR4Kzg2L1Jldkp5?= =?utf-8?B?MDVNSGpKcXNiQ2liam1FTnordzNDS2puSmxheHlrbDhXT1k5TmhUK1RlWmhB?= =?utf-8?B?RmZ4UzNqT3NOd0NmTFRCRnJqYlFyWnRCS3ZsMFo2MFJZRVhUK3lLUGNJYW9v?= =?utf-8?B?RXZiVjNyY0NuVVJCMXlMbHZCandYdkxFQThRTEVpUGhFSnp0czdFci9Kc080?= =?utf-8?B?cEhLL3Fod3hCSkVFQnN2UFVvODhNaFdUaysvQnplT0dxWUwybkQzVk94dkxC?= =?utf-8?B?bnFRV25mU3dtcFBORWIreW1KQkVKSjlJbG5RaG9Vd1E1Sk5meUlUbXh2Rndv?= =?utf-8?B?ZEpnYVVxLzEra3JjRkZvTHB5N2NhYjZ4b2ZXczRnUlZXT2o0RXVOcDU4YlE2?= =?utf-8?B?RzFQRVNlN1A4dWZJM2NMM2VWMEludFNDYkdGQWVaYzhVdndMR3BBUG1Cd3VS?= =?utf-8?Q?fM8w=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB2619.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bd3107fa-ed07-4fce-bad7-08d9b49ba93e X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Dec 2021 07:24:50.0297 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: jrml8oXsX28ueHxPTiD9BDlvPuifms3mEgH4hLSxc/Mk98mQ4Pm9UKT6BbBhL4z5 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1707 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Deucher, Alexander" , "Feng, Kenneth" , "Koenig, Christian" Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" W0FNRCBPZmZpY2lhbCBVc2UgT25seV0NCg0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gRnJvbTogTGF6YXIsIExpam8gPExpam8uTGF6YXJAYW1kLmNvbT4NCj4gU2VudDogV2Vk bmVzZGF5LCBEZWNlbWJlciAxLCAyMDIxIDI6MzkgUE0NCj4gVG86IFF1YW4sIEV2YW4gPEV2YW4u UXVhbkBhbWQuY29tPjsgYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gQ2M6IERldWNo ZXIsIEFsZXhhbmRlciA8QWxleGFuZGVyLkRldWNoZXJAYW1kLmNvbT47IEtvZW5pZywgQ2hyaXN0 aWFuDQo+IDxDaHJpc3RpYW4uS29lbmlnQGFtZC5jb20+OyBGZW5nLCBLZW5uZXRoIDxLZW5uZXRo LkZlbmdAYW1kLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCBWMiAxMy8xN10gZHJtL2FtZC9w bTogZG8gbm90IGV4cG9zZSB0aGUNCj4gc211X2NvbnRleHQgc3RydWN0dXJlIHVzZWQgaW50ZXJu YWxseSBpbiBwb3dlcg0KPiANCj4gDQo+IA0KPiBPbiAxMi8xLzIwMjEgMTE6MDkgQU0sIFF1YW4s IEV2YW4gd3JvdGU6DQo+ID4gW0FNRCBPZmZpY2lhbCBVc2UgT25seV0NCj4gPg0KPiA+DQo+ID4N Cj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogTGF6YXIsIExpam8g PExpam8uTGF6YXJAYW1kLmNvbT4NCj4gPj4gU2VudDogVHVlc2RheSwgTm92ZW1iZXIgMzAsIDIw MjEgOTo1OCBQTQ0KPiA+PiBUbzogUXVhbiwgRXZhbiA8RXZhbi5RdWFuQGFtZC5jb20+OyBhbWQt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPiA+PiBDYzogRGV1Y2hlciwgQWxleGFuZGVyIDxB bGV4YW5kZXIuRGV1Y2hlckBhbWQuY29tPjsgS29lbmlnLA0KPiBDaHJpc3RpYW4NCj4gPj4gPENo cmlzdGlhbi5Lb2VuaWdAYW1kLmNvbT47IEZlbmcsIEtlbm5ldGggPEtlbm5ldGguRmVuZ0BhbWQu Y29tPg0KPiA+PiBTdWJqZWN0OiBSZTogW1BBVENIIFYyIDEzLzE3XSBkcm0vYW1kL3BtOiBkbyBu b3QgZXhwb3NlIHRoZQ0KPiA+PiBzbXVfY29udGV4dCBzdHJ1Y3R1cmUgdXNlZCBpbnRlcm5hbGx5 IGluIHBvd2VyDQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4+IE9uIDExLzMwLzIwMjEgMToxMiBQTSwg RXZhbiBRdWFuIHdyb3RlOg0KPiA+Pj4gVGhpcyBjYW4gY292ZXIgdGhlIHBvd2VyIGltcGxlbWVu dGF0aW9uIGRldGFpbHMuIEFuZCBhcyB3aGF0IGRpZCBmb3INCj4gPj4+IHBvd2VycGxheSBmcmFt ZXdvcmssIHdlIGhvb2sgdGhlIHNtdV9jb250ZXh0IHRvIGFkZXYtDQo+ID4+PiBwb3dlcnBsYXku cHBfaGFuZGxlLg0KPiA+Pj4NCj4gPj4+IFNpZ25lZC1vZmYtYnk6IEV2YW4gUXVhbiA8ZXZhbi5x dWFuQGFtZC5jb20+DQo+ID4+PiBDaGFuZ2UtSWQ6IEkzOTY5YzlmNjJhOGI2M2RjNmU0MzIxYTQ4 OGQ4ZjE1MDIyZmZlYjNkDQo+ID4+PiAtLS0NCj4gPj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdS5oICAgICAgICAgICB8ICA2IC0tDQo+ID4+PiAgICAuLi4vZ3B1L2RybS9h bWQvaW5jbHVkZS9rZ2RfcHBfaW50ZXJmYWNlLmggICAgfCAgOSArKysNCj4gPj4+ICAgIGRyaXZl cnMvZ3B1L2RybS9hbWQvcG0vYW1kZ3B1X2RwbS5jICAgICAgICAgICB8IDUxICsrKysrKysrKyst LS0tLS0NCj4gPj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvcG0vaW5jL2FtZGdwdV9zbXUuaCAg ICAgICB8IDExICstLS0NCj4gPj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvcG0vc3dzbXUvYW1k Z3B1X3NtdS5jICAgICB8IDYwDQo+ID4+ICsrKysrKysrKysrKystLS0tLS0NCj4gPj4+ICAgIC4u Li9ncHUvZHJtL2FtZC9wbS9zd3NtdS9zbXUxMS9hcmN0dXJ1c19wcHQuYyB8ICA5ICstLQ0KPiA+ Pj4gICAgLi4uL2dwdS9kcm0vYW1kL3BtL3N3c211L3NtdTExL25hdmkxMF9wcHQuYyAgIHwgIDkg Ky0tDQo+ID4+PiAgICAuLi4vYW1kL3BtL3N3c211L3NtdTExL3NpZW5uYV9jaWNobGlkX3BwdC5j ICAgfCAgOSArLS0NCj4gPj4+ICAgIC4uLi9ncHUvZHJtL2FtZC9wbS9zd3NtdS9zbXUxMS9zbXVf djExXzAuYyAgICB8ICA0ICstDQo+ID4+PiAgICAuLi4vZHJtL2FtZC9wbS9zd3NtdS9zbXUxMy9h bGRlYmFyYW5fcHB0LmMgICAgfCAgOSArLS0NCj4gPj4+ICAgIC4uLi9ncHUvZHJtL2FtZC9wbS9z d3NtdS9zbXUxMy9zbXVfdjEzXzAuYyAgICB8ICA4ICstLQ0KPiA+Pj4gICAgMTEgZmlsZXMgY2hh bmdlZCwgMTExIGluc2VydGlvbnMoKyksIDc0IGRlbGV0aW9ucygtKQ0KPiA+Pj4NCj4gPj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaA0KPiA+Pj4gYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaA0KPiA+Pj4gaW5kZXggYzk4NzgxM2E0 OTk2Li5mZWZhYmQ1Njg0ODMgMTAwNjQ0DQo+ID4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHUuaA0KPiA+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1LmgNCj4gPj4+IEBAIC05OSw3ICs5OSw2IEBADQo+ID4+PiAgICAjaW5jbHVkZSAiYW1k Z3B1X2dlbS5oIg0KPiA+Pj4gICAgI2luY2x1ZGUgImFtZGdwdV9kb29yYmVsbC5oIg0KPiA+Pj4g ICAgI2luY2x1ZGUgImFtZGdwdV9hbWRrZmQuaCINCj4gPj4+IC0jaW5jbHVkZSAiYW1kZ3B1X3Nt dS5oIg0KPiA+Pj4gICAgI2luY2x1ZGUgImFtZGdwdV9kaXNjb3ZlcnkuaCINCj4gPj4+ICAgICNp bmNsdWRlICJhbWRncHVfbWVzLmgiDQo+ID4+PiAgICAjaW5jbHVkZSAiYW1kZ3B1X3VtYy5oIg0K PiA+Pj4gQEAgLTk1MCwxMSArOTQ5LDYgQEAgc3RydWN0IGFtZGdwdV9kZXZpY2Ugew0KPiA+Pj4N Cj4gPj4+ICAgIAkvKiBwb3dlcnBsYXkgKi8NCj4gPj4+ICAgIAlzdHJ1Y3QgYW1kX3Bvd2VycGxh eQkJcG93ZXJwbGF5Ow0KPiA+Pj4gLQ0KPiA+Pj4gLQkvKiBzbXUgKi8NCj4gPj4+IC0Jc3RydWN0 IHNtdV9jb250ZXh0CQlzbXU7DQo+ID4+PiAtDQo+ID4+PiAtCS8qIGRwbSAqLw0KPiA+Pj4gICAg CXN0cnVjdCBhbWRncHVfcG0JCXBtOw0KPiA+Pj4gICAgCXUzMgkJCQljZ19mbGFnczsNCj4gPj4+ ICAgIAl1MzIJCQkJcGdfZmxhZ3M7DQo+ID4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9pbmNsdWRlL2tnZF9wcF9pbnRlcmZhY2UuaA0KPiA+Pj4gYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2luY2x1ZGUva2dkX3BwX2ludGVyZmFjZS5oDQo+ID4+PiBpbmRleCA3OTE5ZTk2ZTc3MmIu LmRhNmE4MjQzMDA0OCAxMDA2NDQNCj4gPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5j bHVkZS9rZ2RfcHBfaW50ZXJmYWNlLmgNCj4gPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv aW5jbHVkZS9rZ2RfcHBfaW50ZXJmYWNlLmgNCj4gPj4+IEBAIC0yNSw2ICsyNSw5IEBADQo+ID4+ PiAgICAjZGVmaW5lIF9fS0dEX1BQX0lOVEVSRkFDRV9IX18NCj4gPj4+DQo+ID4+PiAgICBleHRl cm4gY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9ibG9ja192ZXJzaW9uIHBwX3NtdV9pcF9ibG9jazsN Cj4gPj4+ICtleHRlcm4gY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9ibG9ja192ZXJzaW9uIHNtdV92 MTFfMF9pcF9ibG9jazsNCj4gPj4+ICtleHRlcm4gY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9ibG9j a192ZXJzaW9uIHNtdV92MTJfMF9pcF9ibG9jazsNCj4gPj4+ICtleHRlcm4gY29uc3Qgc3RydWN0 IGFtZGdwdV9pcF9ibG9ja192ZXJzaW9uIHNtdV92MTNfMF9pcF9ibG9jazsNCj4gPj4+DQo+ID4+ PiAgICBlbnVtIHNtdV9ldmVudF90eXBlIHsNCj4gPj4+ICAgIAlTTVVfRVZFTlRfUkVTRVRfQ09N UExFVEUgPSAwLA0KPiA+Pj4gQEAgLTI0NCw2ICsyNDcsMTIgQEAgZW51bSBwcF9wb3dlcl90eXBl DQo+ID4+PiAgICAJUFBfUFdSX1RZUEVfRkFTVCwNCj4gPj4+ICAgIH07DQo+ID4+Pg0KPiA+Pj4g K2VudW0gc211X3BwdF9saW1pdF90eXBlDQo+ID4+PiArew0KPiA+Pj4gKwlTTVVfREVGQVVMVF9Q UFRfTElNSVQgPSAwLA0KPiA+Pj4gKwlTTVVfRkFTVF9QUFRfTElNSVQsDQo+ID4+PiArfTsNCj4g Pj4+ICsNCj4gPj4NCj4gPj4gVGhpcyBpcyBhIGNvbnRyYWRpY3Rpb24uIElmIHRoZSBlbnRyeSBw b2ludCBpcyBkcG0sIHRoaXMgc2hvdWxkbid0IGJlDQo+ID4+IGhlcmUgYW5kIHRoZSBleHRlcm5h bCBpbnRlcmZhY2UgZG9lc24ndCBuZWVkIHRvIGtub3cgYWJvdXQgaW50ZXJuYWwNCj4gZGF0YXR5 cGVzLg0KPiA+IFtRdWFuLCBFdmFuXSBUaGlzIGlzIG5lZWRlZCBieSBhbWRncHVfaHdtb25fc2hv d19wb3dlcl9sYWJlbCgpDQo+IGZyb20gYW1kZ3B1X3BtLmMuDQo+ID4gU28sIGl0IGhhcyB0byBi ZSBwdXQgaW50byBzb21lIHBsYWNlIHdoaWNoIGNhbiBiZSBhY2Nlc3NlZCBmcm9tIG91dHNpZGUo b2YNCj4gcG93ZXIpLg0KPiA+IFRoZW4ga2dkX3BwX2ludGVyZmFjZS5oIGlzIHRoZSByaWdodCBw bGFjZS4NCj4gDQo+IFRoZSBwdWJsaWMgZGF0YSB0eXBlcyBhcmUgZW51bSBwcF9wb3dlcl90eXBl IGFuZCBlbnVtDQo+IHBwX3Bvd2VyX2xpbWl0X2xldmVsLg0KPiANCj4gVGhlIGZpcnN0IG9uZSB0 ZWxscyBhYm91dCB0aGUgdHlwZSBvZiBwb3dlciBsaW1pdHMgKGZhc3Qvc2xvdy9zdXN0YWluZWQp IGFuZA0KPiBzZWNvbmQgb25lIGlzIGFib3V0IHRoZSBtaW4vbWF4L2RlZmF1bHQgdmFsdWVzIGZv ciBkaWZmZXJlbnQgbGltaXRzLg0KPiANCj4gVG8gc2hvdyB0aGUgbGFiZWwsIHVzZSB0aGUgcHBf cG93ZXJfdHlwZSB0eXBlLg0KW1F1YW4sIEV2YW5dIFRoYW5rcywgbWlzc2VkIHRoZSBwcF9wb3dl cl90eXBlLiBTZWVtcyB3ZSBkZWZpbmVkIHR3byBkYXRhIHN0cnVjdHVyZXMgZm9yIHRoZSBzYW1l IHB1cnBvc2UuDQpMZXQgbWUgY2hlY2sgYW5kIGZpeCB0aGlzLg0KPiANCj4gPg0KPiA+Pg0KPiA+ Pj4gICAgI2RlZmluZSBQUF9HUk9VUF9NQVNLICAgICAgICAweEYwMDAwMDAwDQo+ID4+PiAgICAj ZGVmaW5lIFBQX0dST1VQX1NISUZUICAgICAgIDI4DQo+ID4+Pg0KPiA+Pj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0vYW1kZ3B1X2RwbS5jDQo+ID4+PiBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvcG0vYW1kZ3B1X2RwbS5jDQo+ID4+PiBpbmRleCA4ZjBhZTU4ZjQyOTIuLmE1Y2Ji ZjkzNjdmZSAxMDA2NDQNCj4gPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0vYW1kZ3B1 X2RwbS5jDQo+ID4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL2FtZGdwdV9kcG0uYw0K PiA+Pj4gQEAgLTMxLDYgKzMxLDcgQEANCj4gPj4+ICAgICNpbmNsdWRlICJhbWRncHVfZGlzcGxh eS5oIg0KPiA+Pj4gICAgI2luY2x1ZGUgImh3bWdyLmgiDQo+ID4+PiAgICAjaW5jbHVkZSA8bGlu dXgvcG93ZXJfc3VwcGx5Lmg+DQo+ID4+PiArI2luY2x1ZGUgImFtZGdwdV9zbXUuaCINCj4gPj4+ DQo+ID4+PiAgICAjZGVmaW5lIGFtZGdwdV9kcG1fZW5hYmxlX2JhcG0oYWRldiwgZSkgXA0KPiA+ Pj4NCj4gPj4+ICgoYWRldiktPnBvd2VycGxheS5wcF9mdW5jcy0+ZW5hYmxlX2JhcG0oKGFkZXYp LQ0KPiA+Pj4gcG93ZXJwbGF5LnBwX2hhbmRsZSwNCj4gPj4+IChlKSkpIEBAIC0yMTMsNyArMjE0 LDcgQEAgaW50IGFtZGdwdV9kcG1fYmFjb19yZXNldChzdHJ1Y3QNCj4gPj4+IGFtZGdwdV9kZXZp Y2UgKmFkZXYpDQo+ID4+Pg0KPiA+Pj4gICAgYm9vbCBhbWRncHVfZHBtX2lzX21vZGUxX3Jlc2V0 X3N1cHBvcnRlZChzdHJ1Y3QNCj4gYW1kZ3B1X2RldmljZQ0KPiA+PiAqYWRldikNCj4gPj4+ICAg IHsNCj4gPj4+IC0Jc3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSAmYWRldi0+c211Ow0KPiA+Pj4g KwlzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSA9IGFkZXYtPnBvd2VycGxheS5wcF9oYW5kbGU7DQo+ ID4+Pg0KPiA+Pj4gICAgCWlmIChpc19zdXBwb3J0X3N3X3NtdShhZGV2KSkNCj4gPj4+ICAgIAkJ cmV0dXJuIHNtdV9tb2RlMV9yZXNldF9pc19zdXBwb3J0KHNtdSk7IEBAIC0yMjMsNw0KPiA+PiAr MjI0LDcgQEAgYm9vbA0KPiA+Pj4gYW1kZ3B1X2RwbV9pc19tb2RlMV9yZXNldF9zdXBwb3J0ZWQo c3RydWN0IGFtZGdwdV9kZXZpY2UNCj4gKmFkZXYpDQo+ID4+Pg0KPiA+Pj4gICAgaW50IGFtZGdw dV9kcG1fbW9kZTFfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpDQo+ID4+PiAgICB7 DQo+ID4+PiAtCXN0cnVjdCBzbXVfY29udGV4dCAqc211ID0gJmFkZXYtPnNtdTsNCj4gPj4+ICsJ c3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSBhZGV2LT5wb3dlcnBsYXkucHBfaGFuZGxlOw0KPiA+ Pj4NCj4gPj4+ICAgIAlpZiAoaXNfc3VwcG9ydF9zd19zbXUoYWRldikpDQo+ID4+PiAgICAJCXJl dHVybiBzbXVfbW9kZTFfcmVzZXQoc211KTsNCj4gPj4+IEBAIC0yNzYsNyArMjc3LDcgQEAgaW50 IGFtZGdwdV9kcG1fc2V0X2RmX2NzdGF0ZShzdHJ1Y3QNCj4gPj4gYW1kZ3B1X2RldmljZQ0KPiA+ Pj4gKmFkZXYsDQo+ID4+Pg0KPiA+Pj4gICAgaW50IGFtZGdwdV9kcG1fYWxsb3dfeGdtaV9wb3dl cl9kb3duKHN0cnVjdCBhbWRncHVfZGV2aWNlDQo+ID4+ICphZGV2LCBib29sIGVuKQ0KPiA+Pj4g ICAgew0KPiA+Pj4gLQlzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSA9ICZhZGV2LT5zbXU7DQo+ID4+ PiArCXN0cnVjdCBzbXVfY29udGV4dCAqc211ID0gYWRldi0+cG93ZXJwbGF5LnBwX2hhbmRsZTsN Cj4gPj4+DQo+ID4+PiAgICAJaWYgKGlzX3N1cHBvcnRfc3dfc211KGFkZXYpKQ0KPiA+Pj4gICAg CQlyZXR1cm4gc211X2FsbG93X3hnbWlfcG93ZXJfZG93bihzbXUsIGVuKTsgQEAgLTM0MSw3DQo+ ID4+ICszNDIsNyBAQA0KPiA+Pj4gdm9pZCBhbWRncHVfcG1fYWNwaV9ldmVudF9oYW5kbGVyKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQ0KPiA+Pj4gICAgCQltdXRleF91bmxvY2soJmFkZXYt PnBtLm11dGV4KTsNCj4gPj4+DQo+ID4+PiAgICAJCWlmIChpc19zdXBwb3J0X3N3X3NtdShhZGV2 KSkNCj4gPj4+IC0JCQlzbXVfc2V0X2FjX2RjKCZhZGV2LT5zbXUpOw0KPiA+Pj4gKwkJCXNtdV9z ZXRfYWNfZGMoYWRldi0+cG93ZXJwbGF5LnBwX2hhbmRsZSk7DQo+ID4+PiAgICAJfQ0KPiA+Pj4g ICAgfQ0KPiA+Pj4NCj4gPj4+IEBAIC00MjMsMTUgKzQyNCwxNiBAQCBpbnQgYW1kZ3B1X3BtX2xv YWRfc211X2Zpcm13YXJlKHN0cnVjdA0KPiA+Pj4gYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMy X3QgKnNtdV92ZXJzaW8NCj4gPj4+DQo+ID4+PiAgICBpbnQgYW1kZ3B1X2RwbV9zZXRfbGlnaHRf c2JyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sDQo+ID4+IGVuYWJsZSkNCj4gPj4+ ICAgIHsNCj4gPj4+IC0JcmV0dXJuIHNtdV9zZXRfbGlnaHRfc2JyKCZhZGV2LT5zbXUsIGVuYWJs ZSk7DQo+ID4+PiArCXJldHVybiBzbXVfc2V0X2xpZ2h0X3NicihhZGV2LT5wb3dlcnBsYXkucHBf aGFuZGxlLCBlbmFibGUpOw0KPiA+Pj4gICAgfQ0KPiA+Pj4NCj4gPj4+ICAgIGludCBhbWRncHVf ZHBtX3NlbmRfaGJtX2JhZF9wYWdlc19udW0oc3RydWN0IGFtZGdwdV9kZXZpY2UNCj4gPj4gKmFk ZXYsIHVpbnQzMl90IHNpemUpDQo+ID4+PiAgICB7DQo+ID4+PiArCXN0cnVjdCBzbXVfY29udGV4 dCAqc211ID0gYWRldi0+cG93ZXJwbGF5LnBwX2hhbmRsZTsNCj4gPj4+ICAgIAlpbnQgcmV0ID0g MDsNCj4gPj4+DQo+ID4+PiAtCWlmIChhZGV2LT5zbXUucHB0X2Z1bmNzICYmIGFkZXYtPnNtdS5w cHRfZnVuY3MtDQo+ID4+PiBzZW5kX2hibV9iYWRfcGFnZXNfbnVtKQ0KPiA+Pj4gLQkJcmV0ID0g YWRldi0+c211LnBwdF9mdW5jcy0NCj4gPj4+IHNlbmRfaGJtX2JhZF9wYWdlc19udW0oJmFkZXYt PnNtdSwgc2l6ZSk7DQo+ID4+PiArCWlmIChpc19zdXBwb3J0X3N3X3NtdShhZGV2KSkNCj4gPj4+ ICsJCXJldCA9IHNtdV9zZW5kX2hibV9iYWRfcGFnZXNfbnVtKHNtdSwgc2l6ZSk7DQo+ID4+Pg0K PiA+Pj4gICAgCXJldHVybiByZXQ7DQo+ID4+PiAgICB9DQo+ID4+PiBAQCAtNDQ2LDcgKzQ0OCw3 IEBAIGludCBhbWRncHVfZHBtX2dldF9kcG1fZnJlcV9yYW5nZShzdHJ1Y3QNCj4gPj4+IGFtZGdw dV9kZXZpY2UgKmFkZXYsDQo+ID4+Pg0KPiA+Pj4gICAgCXN3aXRjaCAodHlwZSkgew0KPiA+Pj4g ICAgCWNhc2UgUFBfU0NMSzoNCj4gPj4+IC0JCXJldHVybiBzbXVfZ2V0X2RwbV9mcmVxX3Jhbmdl KCZhZGV2LT5zbXUsIFNNVV9TQ0xLLA0KPiA+PiBtaW4sIG1heCk7DQo+ID4+PiArCQlyZXR1cm4g c211X2dldF9kcG1fZnJlcV9yYW5nZShhZGV2LQ0KPiA+Pj4gcG93ZXJwbGF5LnBwX2hhbmRsZSwg U01VX1NDTEssDQo+ID4+PiArbWluLCBtYXgpOw0KPiA+Pj4gICAgCWRlZmF1bHQ6DQo+ID4+PiAg ICAJCXJldHVybiAtRUlOVkFMOw0KPiA+Pj4gICAgCX0NCj4gPj4+IEBAIC00NTcsMTIgKzQ1OSwx NCBAQCBpbnQgYW1kZ3B1X2RwbV9zZXRfc29mdF9mcmVxX3JhbmdlKHN0cnVjdA0KPiA+PiBhbWRn cHVfZGV2aWNlICphZGV2LA0KPiA+Pj4gICAgCQkJCSAgIHVpbnQzMl90IG1pbiwNCj4gPj4+ICAg IAkJCQkgICB1aW50MzJfdCBtYXgpDQo+ID4+PiAgICB7DQo+ID4+PiArCXN0cnVjdCBzbXVfY29u dGV4dCAqc211ID0gYWRldi0+cG93ZXJwbGF5LnBwX2hhbmRsZTsNCj4gPj4+ICsNCj4gPj4+ICAg IAlpZiAoIWlzX3N1cHBvcnRfc3dfc211KGFkZXYpKQ0KPiA+Pj4gICAgCQlyZXR1cm4gLUVPUE5P VFNVUFA7DQo+ID4+Pg0KPiA+Pj4gICAgCXN3aXRjaCAodHlwZSkgew0KPiA+Pj4gICAgCWNhc2Ug UFBfU0NMSzoNCj4gPj4+IC0JCXJldHVybiBzbXVfc2V0X3NvZnRfZnJlcV9yYW5nZSgmYWRldi0+ c211LCBTTVVfU0NMSywNCj4gPj4gbWluLCBtYXgpOw0KPiA+Pj4gKwkJcmV0dXJuIHNtdV9zZXRf c29mdF9mcmVxX3JhbmdlKHNtdSwgU01VX1NDTEssIG1pbiwNCj4gPj4gbWF4KTsNCj4gPj4+ICAg IAlkZWZhdWx0Og0KPiA+Pj4gICAgCQlyZXR1cm4gLUVJTlZBTDsNCj4gPj4+ICAgIAl9DQo+ID4+ PiBAQCAtNDcwLDMzICs0NzQsNDEgQEAgaW50IGFtZGdwdV9kcG1fc2V0X3NvZnRfZnJlcV9yYW5n ZShzdHJ1Y3QNCj4gPj4+IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+ID4+Pg0KPiA+Pj4gICAgaW50 IGFtZGdwdV9kcG1fd3JpdGVfd2F0ZXJtYXJrc190YWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZQ0K PiAqYWRldikNCj4gPj4+ICAgIHsNCj4gPj4+ICsJc3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSBh ZGV2LT5wb3dlcnBsYXkucHBfaGFuZGxlOw0KPiA+Pj4gKw0KPiA+Pj4gICAgCWlmICghaXNfc3Vw cG9ydF9zd19zbXUoYWRldikpDQo+ID4+PiAgICAJCXJldHVybiAwOw0KPiA+Pj4NCj4gPj4+IC0J cmV0dXJuIHNtdV93cml0ZV93YXRlcm1hcmtzX3RhYmxlKCZhZGV2LT5zbXUpOw0KPiA+Pj4gKwly ZXR1cm4gc211X3dyaXRlX3dhdGVybWFya3NfdGFibGUoc211KTsNCj4gPj4+ICAgIH0NCj4gPj4+ DQo+ID4+PiAgICBpbnQgYW1kZ3B1X2RwbV93YWl0X2Zvcl9ldmVudChzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwNCj4gPj4+ICAgIAkJCSAgICAgIGVudW0gc211X2V2ZW50X3R5cGUgZXZlbnQs DQo+ID4+PiAgICAJCQkgICAgICB1aW50NjRfdCBldmVudF9hcmcpDQo+ID4+PiAgICB7DQo+ID4+ PiArCXN0cnVjdCBzbXVfY29udGV4dCAqc211ID0gYWRldi0+cG93ZXJwbGF5LnBwX2hhbmRsZTsN Cj4gPj4+ICsNCj4gPj4+ICAgIAlpZiAoIWlzX3N1cHBvcnRfc3dfc211KGFkZXYpKQ0KPiA+Pj4g ICAgCQlyZXR1cm4gLUVPUE5PVFNVUFA7DQo+ID4+Pg0KPiA+Pj4gLQlyZXR1cm4gc211X3dhaXRf Zm9yX2V2ZW50KCZhZGV2LT5zbXUsIGV2ZW50LCBldmVudF9hcmcpOw0KPiA+Pj4gKwlyZXR1cm4g c211X3dhaXRfZm9yX2V2ZW50KHNtdSwgZXZlbnQsIGV2ZW50X2FyZyk7DQo+ID4+PiAgICB9DQo+ ID4+Pg0KPiA+Pj4gICAgaW50IGFtZGdwdV9kcG1fZ2V0X3N0YXR1c19nZnhvZmYoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsDQo+ID4+IHVpbnQzMl90ICp2YWx1ZSkNCj4gPj4+ICAgIHsNCj4g Pj4+ICsJc3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSBhZGV2LT5wb3dlcnBsYXkucHBfaGFuZGxl Ow0KPiA+Pj4gKw0KPiA+Pj4gICAgCWlmICghaXNfc3VwcG9ydF9zd19zbXUoYWRldikpDQo+ID4+ PiAgICAJCXJldHVybiAtRU9QTk9UU1VQUDsNCj4gPj4+DQo+ID4+PiAtCXJldHVybiBzbXVfZ2V0 X3N0YXR1c19nZnhvZmYoJmFkZXYtPnNtdSwgdmFsdWUpOw0KPiA+Pj4gKwlyZXR1cm4gc211X2dl dF9zdGF0dXNfZ2Z4b2ZmKHNtdSwgdmFsdWUpOw0KPiA+Pj4gICAgfQ0KPiA+Pj4NCj4gPj4+ICAg IHVpbnQ2NF90IGFtZGdwdV9kcG1fZ2V0X3RoZXJtYWxfdGhyb3R0bGluZ19jb3VudGVyKHN0cnVj dA0KPiA+PiBhbWRncHVfZGV2aWNlICphZGV2KQ0KPiA+Pj4gICAgew0KPiA+Pj4gLQlyZXR1cm4g YXRvbWljNjRfcmVhZCgmYWRldi0+c211LnRocm90dGxlX2ludF9jb3VudGVyKTsNCj4gPj4+ICsJ c3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSBhZGV2LT5wb3dlcnBsYXkucHBfaGFuZGxlOw0KPiA+ Pj4gKw0KPiA+Pj4gKwlyZXR1cm4gYXRvbWljNjRfcmVhZCgmc211LT50aHJvdHRsZV9pbnRfY291 bnRlcik7DQo+ID4+PiAgICB9DQo+ID4+Pg0KPiA+Pj4gICAgLyogYW1kZ3B1X2RwbV9nZnhfc3Rh dGVfY2hhbmdlIC0gSGFuZGxlIGdmeCBwb3dlciBzdGF0ZSBjaGFuZ2UNCj4gPj4+IHNldCBAQCAt NTE4LDEwICs1MzAsMTIgQEAgdm9pZA0KPiBhbWRncHVfZHBtX2dmeF9zdGF0ZV9jaGFuZ2Uoc3Ry dWN0DQo+ID4+IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+ID4+PiAgICBpbnQgYW1kZ3B1X2RwbV9n ZXRfZWNjX2luZm8oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+ID4+PiAgICAJCQkgICAg dm9pZCAqdW1jX2VjYykNCj4gPj4+ICAgIHsNCj4gPj4+ICsJc3RydWN0IHNtdV9jb250ZXh0ICpz bXUgPSBhZGV2LT5wb3dlcnBsYXkucHBfaGFuZGxlOw0KPiA+Pj4gKw0KPiA+Pj4gICAgCWlmICgh aXNfc3VwcG9ydF9zd19zbXUoYWRldikpDQo+ID4+PiAgICAJCXJldHVybiAtRU9QTk9UU1VQUDsN Cj4gPj4+DQo+ID4+PiAtCXJldHVybiBzbXVfZ2V0X2VjY19pbmZvKCZhZGV2LT5zbXUsIHVtY19l Y2MpOw0KPiA+Pj4gKwlyZXR1cm4gc211X2dldF9lY2NfaW5mbyhzbXUsIHVtY19lY2MpOw0KPiA+ Pj4gICAgfQ0KPiA+Pj4NCj4gPj4+ICAgIHN0cnVjdCBhbWRfdmNlX3N0YXRlICphbWRncHVfZHBt X2dldF92Y2VfY2xvY2tfc3RhdGUoc3RydWN0DQo+ID4+PiBhbWRncHVfZGV2aWNlICphZGV2LCBA QCAtOTE5LDkgKzkzMywxMCBAQCBpbnQNCj4gPj4gYW1kZ3B1X2RwbV9nZXRfc211X3Bydl9idWZf ZGV0YWlscyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4gPj4+ICAgIGludCBhbWRncHVf ZHBtX2lzX292ZXJkcml2ZV9zdXBwb3J0ZWQoc3RydWN0IGFtZGdwdV9kZXZpY2UNCj4gKmFkZXYp DQo+ID4+PiAgICB7DQo+ID4+PiAgICAJc3RydWN0IHBwX2h3bWdyICpod21nciA9IGFkZXYtPnBv d2VycGxheS5wcF9oYW5kbGU7DQo+ID4+PiArCXN0cnVjdCBzbXVfY29udGV4dCAqc211ID0gYWRl di0+cG93ZXJwbGF5LnBwX2hhbmRsZTsNCj4gPj4+DQo+ID4+PiAtCWlmICgoaXNfc3VwcG9ydF9z d19zbXUoYWRldikgJiYgYWRldi0+c211Lm9kX2VuYWJsZWQpIHx8DQo+ID4+PiAtCSAgICAoaXNf c3VwcG9ydF9zd19zbXUoYWRldikgJiYgYWRldi0+c211LmlzX2FwdSkgfHwNCj4gPj4+ICsJaWYg KChpc19zdXBwb3J0X3N3X3NtdShhZGV2KSAmJiBzbXUtPm9kX2VuYWJsZWQpIHx8DQo+ID4+PiAr CSAgICAoaXNfc3VwcG9ydF9zd19zbXUoYWRldikgJiYgc211LT5pc19hcHUpIHx8DQo+ID4+PiAg ICAJCSghaXNfc3VwcG9ydF9zd19zbXUoYWRldikgJiYgaHdtZ3ItPm9kX2VuYWJsZWQpKQ0KPiA+ Pj4gICAgCQlyZXR1cm4gdHJ1ZTsNCj4gPj4+DQo+ID4+PiBAQCAtOTQ0LDcgKzk1OSw5IEBAIGlu dCBhbWRncHVfZHBtX3NldF9wcF90YWJsZShzdHJ1Y3QNCj4gPj4gYW1kZ3B1X2RldmljZQ0KPiA+ Pj4gKmFkZXYsDQo+ID4+Pg0KPiA+Pj4gICAgaW50IGFtZGdwdV9kcG1fZ2V0X251bV9jcHVfY29y ZXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpDQo+ID4+PiAgICB7DQo+ID4+PiAtCXJldHVy biBhZGV2LT5zbXUuY3B1X2NvcmVfbnVtOw0KPiA+Pj4gKwlzdHJ1Y3Qgc211X2NvbnRleHQgKnNt dSA9IGFkZXYtPnBvd2VycGxheS5wcF9oYW5kbGU7DQo+ID4+PiArDQo+ID4+PiArCXJldHVybiBz bXUtPmNwdV9jb3JlX251bTsNCj4gPj4+ICAgIH0NCj4gPj4+DQo+ID4+PiAgICB2b2lkIGFtZGdw dV9kcG1fc3RiX2RlYnVnX2ZzX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpDQo+ID4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9pbmMvYW1kZ3B1X3NtdS5oDQo+ ID4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0vaW5jL2FtZGdwdV9zbXUuaA0KPiA+Pj4gaW5k ZXggMjk3OTFiYjIxZmJhLi5mNDQxMzliNDE1YjQgMTAwNjQ0DQo+ID4+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL3BtL2luYy9hbWRncHVfc211LmgNCj4gPj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvcG0vaW5jL2FtZGdwdV9zbXUuaA0KPiA+Pj4gQEAgLTIwNSwxMiArMjA1LDYgQEAg ZW51bSBzbXVfcG93ZXJfc3JjX3R5cGUNCj4gPj4+ICAgIAlTTVVfUE9XRVJfU09VUkNFX0NPVU5U LA0KPiA+Pj4gICAgfTsNCj4gPj4+DQo+ID4+PiAtZW51bSBzbXVfcHB0X2xpbWl0X3R5cGUNCj4g Pj4+IC17DQo+ID4+PiAtCVNNVV9ERUZBVUxUX1BQVF9MSU1JVCA9IDAsDQo+ID4+PiAtCVNNVV9G QVNUX1BQVF9MSU1JVCwNCj4gPj4+IC19Ow0KPiA+Pj4gLQ0KPiA+Pj4gICAgZW51bSBzbXVfcHB0 X2xpbWl0X2xldmVsDQo+ID4+PiAgICB7DQo+ID4+PiAgICAJU01VX1BQVF9MSU1JVF9NSU4gPSAt MSwNCj4gPj4+IEBAIC0xMzg5LDEwICsxMzgzLDYgQEAgaW50IHNtdV9tb2RlMV9yZXNldChzdHJ1 Y3Qgc211X2NvbnRleHQNCj4gPj4gKnNtdSk7DQo+ID4+Pg0KPiA+Pj4gICAgZXh0ZXJuIGNvbnN0 IHN0cnVjdCBhbWRfaXBfZnVuY3Mgc211X2lwX2Z1bmNzOw0KPiA+Pj4NCj4gPj4+IC1leHRlcm4g Y29uc3Qgc3RydWN0IGFtZGdwdV9pcF9ibG9ja192ZXJzaW9uIHNtdV92MTFfMF9pcF9ibG9jazsN Cj4gPj4+IC1leHRlcm4gY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9ibG9ja192ZXJzaW9uIHNtdV92 MTJfMF9pcF9ibG9jazsNCj4gPj4+IC1leHRlcm4gY29uc3Qgc3RydWN0IGFtZGdwdV9pcF9ibG9j a192ZXJzaW9uIHNtdV92MTNfMF9pcF9ibG9jazsNCj4gPj4+IC0NCj4gPj4+ICAgIGJvb2wgaXNf c3VwcG9ydF9zd19zbXUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOw0KPiA+Pj4gICAgYm9v bCBpc19zdXBwb3J0X2NjbGtfZHBtKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsNCj4gPj4+ ICAgIGludCBzbXVfd3JpdGVfd2F0ZXJtYXJrc190YWJsZShzdHJ1Y3Qgc211X2NvbnRleHQgKnNt dSk7IEBADQo+ID4+PiAtMTQxNiw2DQo+ID4+PiArMTQwNiw3IEBAIGludCBzbXVfd2FpdF9mb3Jf ZXZlbnQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIGVudW0NCj4gPj4gc211X2V2ZW50X3R5cGUg ZXZlbnQsDQo+ID4+PiAgICBpbnQgc211X2dldF9lY2NfaW5mbyhzdHJ1Y3Qgc211X2NvbnRleHQg KnNtdSwgdm9pZCAqdW1jX2VjYyk7DQo+ID4+PiAgICBpbnQgc211X3N0Yl9jb2xsZWN0X2luZm8o c3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIHZvaWQgKmJ1ZmYsDQo+ID4+PiB1aW50MzJfdA0KPiA+ PiBzaXplKTsNCj4gPj4+ICAgIHZvaWQgYW1kZ3B1X3NtdV9zdGJfZGVidWdfZnNfaW5pdChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7DQo+ID4+PiAraW50IHNtdV9zZW5kX2hibV9iYWRfcGFn ZXNfbnVtKHN0cnVjdCBzbXVfY29udGV4dCAqc211LA0KPiB1aW50MzJfdA0KPiA+Pj4gK3NpemUp Ow0KPiA+Pj4NCj4gPj4+ICAgICNlbmRpZg0KPiA+Pj4gICAgI2VuZGlmDQo+ID4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9zd3NtdS9hbWRncHVfc211LmMNCj4gPj4+IGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9zd3NtdS9hbWRncHVfc211LmMNCj4gPj4+IGluZGV4IGVh ZWQ1YWJhNzU0Ny4uMmMzZmQzY2ZlZjA1IDEwMDY0NA0KPiA+Pj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9wbS9zd3NtdS9hbWRncHVfc211LmMNCj4gPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG0vc3dzbXUvYW1kZ3B1X3NtdS5jDQo+ID4+PiBAQCAtNDY4LDcgKzQ2OCw3IEBAIGJv b2wgaXNfc3VwcG9ydF9zd19zbXUoc3RydWN0IGFtZGdwdV9kZXZpY2UNCj4gPj4gKmFkZXYpDQo+ ID4+Pg0KPiA+Pj4gICAgYm9vbCBpc19zdXBwb3J0X2NjbGtfZHBtKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KQ0KPiA+Pj4gICAgew0KPiA+Pj4gLQlzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSA9 ICZhZGV2LT5zbXU7DQo+ID4+PiArCXN0cnVjdCBzbXVfY29udGV4dCAqc211ID0gYWRldi0+cG93 ZXJwbGF5LnBwX2hhbmRsZTsNCj4gPj4+DQo+ID4+PiAgICAJaWYgKCFzbXVfZmVhdHVyZV9pc19l bmFibGVkKHNtdSwgU01VX0ZFQVRVUkVfQ0NMS19EUE1fQklUKSkNCj4gPj4+ICAgIAkJcmV0dXJu IGZhbHNlOw0KPiA+Pj4gQEAgLTU3Miw3ICs1NzIsNyBAQCBzdGF0aWMgaW50DQo+ID4+PiBzbXVf Z2V0X2RyaXZlcl9hbGxvd2VkX2ZlYXR1cmVfbWFzayhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSkN Cj4gPj4+DQo+ID4+PiAgICBzdGF0aWMgaW50IHNtdV9zZXRfZnVuY3Moc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpDQo+ID4+PiAgICB7DQo+ID4+PiAtCXN0cnVjdCBzbXVfY29udGV4dCAqc211 ID0gJmFkZXYtPnNtdTsNCj4gPj4+ICsJc3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSBhZGV2LT5w b3dlcnBsYXkucHBfaGFuZGxlOw0KPiA+Pj4NCj4gPj4+ICAgIAlpZiAoYWRldi0+cG0ucHBfZmVh dHVyZSAmIFBQX09WRVJEUklWRV9NQVNLKQ0KPiA+Pj4gICAgCQlzbXUtPm9kX2VuYWJsZWQgPSB0 cnVlOw0KPiA+Pj4gQEAgLTYyNCw3ICs2MjQsMTEgQEAgc3RhdGljIGludCBzbXVfc2V0X2Z1bmNz KHN0cnVjdCBhbWRncHVfZGV2aWNlDQo+ID4+ICphZGV2KQ0KPiA+Pj4gICAgc3RhdGljIGludCBz bXVfZWFybHlfaW5pdCh2b2lkICpoYW5kbGUpDQo+ID4+PiAgICB7DQo+ID4+PiAgICAJc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7DQo+ ID4+PiAtCXN0cnVjdCBzbXVfY29udGV4dCAqc211ID0gJmFkZXYtPnNtdTsNCj4gPj4+ICsJc3Ry dWN0IHNtdV9jb250ZXh0ICpzbXU7DQo+ID4+PiArDQo+ID4+PiArCXNtdSA9IGt6YWxsb2Moc2l6 ZW9mKHN0cnVjdCBzbXVfY29udGV4dCksIEdGUF9LRVJORUwpOw0KPiA+Pj4gKwlpZiAoIXNtdSkN Cj4gPj4+ICsJCXJldHVybiAtRU5PTUVNOw0KPiA+Pj4NCj4gPj4+ICAgIAlzbXUtPmFkZXYgPSBh ZGV2Ow0KPiA+Pj4gICAgCXNtdS0+cG1fZW5hYmxlZCA9ICEhYW1kZ3B1X2RwbTsNCj4gPj4+IEBA IC02ODQsNyArNjg4LDcgQEAgc3RhdGljIGludCBzbXVfc2V0X2RlZmF1bHRfZHBtX3RhYmxlKHN0 cnVjdA0KPiA+PiBzbXVfY29udGV4dCAqc211KQ0KPiA+Pj4gICAgc3RhdGljIGludCBzbXVfbGF0 ZV9pbml0KHZvaWQgKmhhbmRsZSkNCj4gPj4+ICAgIHsNCj4gPj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsNCj4gPj4+IC0J c3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSAmYWRldi0+c211Ow0KPiA+Pj4gKwlzdHJ1Y3Qgc211 X2NvbnRleHQgKnNtdSA9IGFkZXYtPnBvd2VycGxheS5wcF9oYW5kbGU7DQo+ID4+PiAgICAJaW50 IHJldCA9IDA7DQo+ID4+Pg0KPiA+Pj4gICAgCXNtdV9zZXRfZmluZV9ncmFpbl9nZnhfZnJlcV9w YXJhbWV0ZXJzKHNtdSk7DQo+ID4+PiBAQCAtNzMwLDcgKzczNCw3IEBAIHN0YXRpYyBpbnQgc211 X2xhdGVfaW5pdCh2b2lkICpoYW5kbGUpDQo+ID4+Pg0KPiA+Pj4gICAgCXNtdV9nZXRfZmFuX3Bh cmFtZXRlcnMoc211KTsNCj4gPj4+DQo+ID4+PiAtCXNtdV9oYW5kbGVfdGFzaygmYWRldi0+c211 LA0KPiA+Pj4gKwlzbXVfaGFuZGxlX3Rhc2soc211LA0KPiA+Pj4gICAgCQkJc211LT5zbXVfZHBt LmRwbV9sZXZlbCwNCj4gPj4+ICAgIAkJCUFNRF9QUF9UQVNLX0NPTVBMRVRFX0lOSVQsDQo+ID4+ PiAgICAJCQlmYWxzZSk7DQo+ID4+PiBAQCAtMTAyMCw3ICsxMDI0LDcgQEAgc3RhdGljIHZvaWQg c211X2ludGVycnVwdF93b3JrX2ZuKHN0cnVjdA0KPiA+PiB3b3JrX3N0cnVjdCAqd29yaykNCj4g Pj4+ICAgIHN0YXRpYyBpbnQgc211X3N3X2luaXQodm9pZCAqaGFuZGxlKQ0KPiA+Pj4gICAgew0K PiA+Pj4gICAgCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2 aWNlICopaGFuZGxlOw0KPiA+Pj4gLQlzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSA9ICZhZGV2LT5z bXU7DQo+ID4+PiArCXN0cnVjdCBzbXVfY29udGV4dCAqc211ID0gYWRldi0+cG93ZXJwbGF5LnBw X2hhbmRsZTsNCj4gPj4+ICAgIAlpbnQgcmV0Ow0KPiA+Pj4NCj4gPj4+ICAgIAlzbXUtPnBvb2xf c2l6ZSA9IGFkZXYtPnBtLnNtdV9wcnZfYnVmZmVyX3NpemU7IEBAIC0xMDk1LDcNCj4gPj4gKzEw OTksNw0KPiA+Pj4gQEAgc3RhdGljIGludCBzbXVfc3dfaW5pdCh2b2lkICpoYW5kbGUpDQo+ID4+ PiAgICBzdGF0aWMgaW50IHNtdV9zd19maW5pKHZvaWQgKmhhbmRsZSkNCj4gPj4+ICAgIHsNCj4g Pj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqKWhhbmRsZTsNCj4gPj4+IC0Jc3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSAmYWRldi0+c211 Ow0KPiA+Pj4gKwlzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSA9IGFkZXYtPnBvd2VycGxheS5wcF9o YW5kbGU7DQo+ID4+PiAgICAJaW50IHJldDsNCj4gPj4+DQo+ID4+PiAgICAJcmV0ID0gc211X3Nt Y190YWJsZV9zd19maW5pKHNtdSk7IEBAIC0xMzMwLDcgKzEzMzQsNyBAQCBzdGF0aWMNCj4gPj4+ IGludCBzbXVfaHdfaW5pdCh2b2lkICpoYW5kbGUpDQo+ID4+PiAgICB7DQo+ID4+PiAgICAJaW50 IHJldDsNCj4gPj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqKWhhbmRsZTsNCj4gPj4+IC0Jc3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSAm YWRldi0+c211Ow0KPiA+Pj4gKwlzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSA9IGFkZXYtPnBvd2Vy cGxheS5wcF9oYW5kbGU7DQo+ID4+Pg0KPiA+Pj4gICAgCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRl dikgJiYgIWFtZGdwdV9zcmlvdl9pc19wcF9vbmVfdmYoYWRldikpDQo+ID4+IHsNCj4gPj4+ICAg IAkJc211LT5wbV9lbmFibGVkID0gZmFsc2U7DQo+ID4+PiBAQCAtMTM0NCwxMCArMTM0OCwxMCBA QCBzdGF0aWMgaW50IHNtdV9od19pbml0KHZvaWQgKmhhbmRsZSkNCj4gPj4+ICAgIAl9DQo+ID4+ Pg0KPiA+Pj4gICAgCWlmIChzbXUtPmlzX2FwdSkgew0KPiA+Pj4gLQkJc211X3Bvd2VyZ2F0ZV9z ZG1hKCZhZGV2LT5zbXUsIGZhbHNlKTsNCj4gPj4+ICsJCXNtdV9wb3dlcmdhdGVfc2RtYShzbXUs IGZhbHNlKTsNCj4gPj4+ICAgIAkJc211X2RwbV9zZXRfdmNuX2VuYWJsZShzbXUsIHRydWUpOw0K PiA+Pj4gICAgCQlzbXVfZHBtX3NldF9qcGVnX2VuYWJsZShzbXUsIHRydWUpOw0KPiA+Pj4gLQkJ c211X3NldF9nZnhfY2dwZygmYWRldi0+c211LCB0cnVlKTsNCj4gPj4+ICsJCXNtdV9zZXRfZ2Z4 X2NncGcoc211LCB0cnVlKTsNCj4gPj4+ICAgIAl9DQo+ID4+Pg0KPiA+Pj4gICAgCWlmICghc211 LT5wbV9lbmFibGVkKQ0KPiA+Pj4gQEAgLTE1MDEsMTMgKzE1MDUsMTMgQEAgc3RhdGljIGludCBz bXVfc21jX2h3X2NsZWFudXAoc3RydWN0DQo+ID4+IHNtdV9jb250ZXh0ICpzbXUpDQo+ID4+PiAg ICBzdGF0aWMgaW50IHNtdV9od19maW5pKHZvaWQgKmhhbmRsZSkNCj4gPj4+ICAgIHsNCj4gPj4+ ICAgIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq KWhhbmRsZTsNCj4gPj4+IC0Jc3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSAmYWRldi0+c211Ow0K PiA+Pj4gKwlzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSA9IGFkZXYtPnBvd2VycGxheS5wcF9oYW5k bGU7DQo+ID4+Pg0KPiA+Pj4gICAgCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikmJiAhYW1kZ3B1 X3NyaW92X2lzX3BwX29uZV92ZihhZGV2KSkNCj4gPj4+ICAgIAkJcmV0dXJuIDA7DQo+ID4+Pg0K PiA+Pj4gICAgCWlmIChzbXUtPmlzX2FwdSkgew0KPiA+Pj4gLQkJc211X3Bvd2VyZ2F0ZV9zZG1h KCZhZGV2LT5zbXUsIHRydWUpOw0KPiA+Pj4gKwkJc211X3Bvd2VyZ2F0ZV9zZG1hKHNtdSwgdHJ1 ZSk7DQo+ID4+PiAgICAJfQ0KPiA+Pj4NCj4gPj4+ICAgIAlzbXVfZHBtX3NldF92Y25fZW5hYmxl KHNtdSwgZmFsc2UpOyBAQCAtMTUyNCw2ICsxNTI4LDE0IEBADQo+ID4+IHN0YXRpYw0KPiA+Pj4g aW50IHNtdV9od19maW5pKHZvaWQgKmhhbmRsZSkNCj4gPj4+ICAgIAlyZXR1cm4gc211X3NtY19o d19jbGVhbnVwKHNtdSk7DQo+ID4+PiAgICB9DQo+ID4+Pg0KPiA+Pj4gK3N0YXRpYyB2b2lkIHNt dV9sYXRlX2Zpbmkodm9pZCAqaGFuZGxlKSB7DQo+ID4+PiArCXN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2ID0gaGFuZGxlOw0KPiA+Pj4gKwlzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSA9IGFkZXYt PnBvd2VycGxheS5wcF9oYW5kbGU7DQo+ID4+PiArDQo+ID4+PiArCWtmcmVlKHNtdSk7DQo+ID4+ PiArfQ0KPiA+Pj4gKw0KPiA+Pg0KPiA+PiBUaGlzIGRvZXNuJ3QgbG9vayByZWxhdGVkIHRvIHRo aXMgY2hhbmdlLg0KPiA+IFtRdWFuLCBFdmFuXSAic211IiBpcyB1cGRhdGVkIGFzIGR5bmFtaWNh bGx5IGFsbG9jYXRlZC4gV2UgbmVlZCB0byBmaW5kIGENCj4gcGxhY2UgdG8gZ2V0IGl0IGZyZWVk Lg0KPiA+IEFzIGRpZCBpbiBwb3dlcnBsYXkgZnJhbWV3b3JrLCAtPmxhdGVfZmluaSBpcyB0aGUg cmlnaHQgcGxhY2UuDQo+IA0KPiBUaGFua3MsIG1pc3NlZCB0aGUgY2hhbmdlIGZvciBkeW5hbWlj IGFsbG9jYXRpb24uDQo+IA0KPiA+Pg0KPiA+Pj4gICAgc3RhdGljIGludCBzbXVfcmVzZXQoc3Ry dWN0IHNtdV9jb250ZXh0ICpzbXUpDQo+ID4+PiAgICB7DQo+ID4+PiAgICAJc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYgPSBzbXUtPmFkZXY7IEBAIC0xNTUxLDcgKzE1NjMsNyBAQA0KPiA+Pj4g c3RhdGljIGludCBzbXVfcmVzZXQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpDQo+ID4+PiAgICBz dGF0aWMgaW50IHNtdV9zdXNwZW5kKHZvaWQgKmhhbmRsZSkNCj4gPj4+ICAgIHsNCj4gPj4+ICAg IAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhh bmRsZTsNCj4gPj4+IC0Jc3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSAmYWRldi0+c211Ow0KPiA+ Pj4gKwlzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSA9IGFkZXYtPnBvd2VycGxheS5wcF9oYW5kbGU7 DQo+ID4+PiAgICAJaW50IHJldDsNCj4gPj4+DQo+ID4+PiAgICAJaWYgKGFtZGdwdV9zcmlvdl92 ZihhZGV2KSYmICFhbWRncHVfc3Jpb3ZfaXNfcHBfb25lX3ZmKGFkZXYpKQ0KPiA+PiBAQA0KPiA+ Pj4gLTE1NzAsNyArMTU4Miw3IEBAIHN0YXRpYyBpbnQgc211X3N1c3BlbmQodm9pZCAqaGFuZGxl KQ0KPiA+Pj4NCj4gPj4+ICAgIAkvKiBza2lwIENHUEcgd2hlbiBpbiBTMGl4ICovDQo+ID4+PiAg ICAJaWYgKHNtdS0+aXNfYXB1ICYmICFhZGV2LT5pbl9zMGl4KQ0KPiA+Pj4gLQkJc211X3NldF9n ZnhfY2dwZygmYWRldi0+c211LCBmYWxzZSk7DQo+ID4+PiArCQlzbXVfc2V0X2dmeF9jZ3BnKHNt dSwgZmFsc2UpOw0KPiA+Pj4NCj4gPj4+ICAgIAlyZXR1cm4gMDsNCj4gPj4+ICAgIH0NCj4gPj4+ IEBAIC0xNTc5LDcgKzE1OTEsNyBAQCBzdGF0aWMgaW50IHNtdV9yZXN1bWUodm9pZCAqaGFuZGxl KQ0KPiA+Pj4gICAgew0KPiA+Pj4gICAgCWludCByZXQ7DQo+ID4+PiAgICAJc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7DQo+ID4+PiAt CXN0cnVjdCBzbXVfY29udGV4dCAqc211ID0gJmFkZXYtPnNtdTsNCj4gPj4+ICsJc3RydWN0IHNt dV9jb250ZXh0ICpzbXUgPSBhZGV2LT5wb3dlcnBsYXkucHBfaGFuZGxlOw0KPiA+Pj4NCj4gPj4+ ICAgIAlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpJiYgIWFtZGdwdV9zcmlvdl9pc19wcF9vbmVf dmYoYWRldikpDQo+ID4+PiAgICAJCXJldHVybiAwOw0KPiA+Pj4gQEAgLTE2MDIsNyArMTYxNCw3 IEBAIHN0YXRpYyBpbnQgc211X3Jlc3VtZSh2b2lkICpoYW5kbGUpDQo+ID4+PiAgICAJfQ0KPiA+ Pj4NCj4gPj4+ICAgIAlpZiAoc211LT5pc19hcHUpDQo+ID4+PiAtCQlzbXVfc2V0X2dmeF9jZ3Bn KCZhZGV2LT5zbXUsIHRydWUpOw0KPiA+Pj4gKwkJc211X3NldF9nZnhfY2dwZyhzbXUsIHRydWUp Ow0KPiA+Pj4NCj4gPj4+ICAgIAlzbXUtPmRpc2FibGVfdWNsa19zd2l0Y2ggPSAwOw0KPiA+Pj4N Cj4gPj4+IEBAIC0yMTM0LDYgKzIxNDYsNyBAQCBjb25zdCBzdHJ1Y3QgYW1kX2lwX2Z1bmNzIHNt dV9pcF9mdW5jcyA9IHsNCj4gPj4+ICAgIAkuc3dfZmluaSA9IHNtdV9zd19maW5pLA0KPiA+Pj4g ICAgCS5od19pbml0ID0gc211X2h3X2luaXQsDQo+ID4+PiAgICAJLmh3X2ZpbmkgPSBzbXVfaHdf ZmluaSwNCj4gPj4+ICsJLmxhdGVfZmluaSA9IHNtdV9sYXRlX2ZpbmksDQo+ID4+PiAgICAJLnN1 c3BlbmQgPSBzbXVfc3VzcGVuZCwNCj4gPj4+ICAgIAkucmVzdW1lID0gc211X3Jlc3VtZSwNCj4g Pj4+ICAgIAkuaXNfaWRsZSA9IE5VTEwsDQo+ID4+PiBAQCAtMzE5OCw3ICszMjExLDcgQEAgaW50 IHNtdV9zdGJfY29sbGVjdF9pbmZvKHN0cnVjdCBzbXVfY29udGV4dA0KPiA+PiAqc211LCB2b2lk ICpidWYsIHVpbnQzMl90IHNpemUpDQo+ID4+PiAgICBzdGF0aWMgaW50IHNtdV9zdGJfZGVidWdm c19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQ0KPiA+Pj4gICAg ew0KPiA+Pj4gICAgCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZmlscC0+Zl9pbm9kZS0+ aV9wcml2YXRlOw0KPiA+Pj4gLQlzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSA9ICZhZGV2LT5zbXU7 DQo+ID4+PiArCXN0cnVjdCBzbXVfY29udGV4dCAqc211ID0gYWRldi0+cG93ZXJwbGF5LnBwX2hh bmRsZTsNCj4gPj4+ICAgIAl1bnNpZ25lZCBjaGFyICpidWY7DQo+ID4+PiAgICAJaW50IHI7DQo+ ID4+Pg0KPiA+Pj4gQEAgLTMyMjMsNyArMzIzNiw3IEBAIHN0YXRpYyBzc2l6ZV90IHNtdV9zdGJf ZGVidWdmc19yZWFkKHN0cnVjdA0KPiA+Pj4gZmlsZQ0KPiA+PiAqZmlscCwgY2hhciBfX3VzZXIg KmJ1Ziwgc2l6ZV90DQo+ID4+PiAgICAJCQkJbG9mZl90ICpwb3MpDQo+ID4+PiAgICB7DQo+ID4+ PiAgICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBmaWxwLT5mX2lub2RlLT5pX3ByaXZh dGU7DQo+ID4+PiAtCXN0cnVjdCBzbXVfY29udGV4dCAqc211ID0gJmFkZXYtPnNtdTsNCj4gPj4+ ICsJc3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSBhZGV2LT5wb3dlcnBsYXkucHBfaGFuZGxlOw0K PiA+Pj4NCj4gPj4+DQo+ID4+PiAgICAJaWYgKCFmaWxwLT5wcml2YXRlX2RhdGEpDQo+ID4+PiBA QCAtMzI2NCw3ICszMjc3LDcgQEAgdm9pZCBhbWRncHVfc211X3N0Yl9kZWJ1Z19mc19pbml0KHN0 cnVjdA0KPiA+PiBhbWRncHVfZGV2aWNlICphZGV2KQ0KPiA+Pj4gICAgew0KPiA+Pj4gICAgI2lm IGRlZmluZWQoQ09ORklHX0RFQlVHX0ZTKQ0KPiA+Pj4NCj4gPj4+IC0Jc3RydWN0IHNtdV9jb250 ZXh0ICpzbXUgPSAmYWRldi0+c211Ow0KPiA+Pj4gKwlzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSA9 IGFkZXYtPnBvd2VycGxheS5wcF9oYW5kbGU7DQo+ID4+Pg0KPiA+Pj4gICAgCWlmICghc211LT5z dGJfY29udGV4dC5zdGJfYnVmX3NpemUpDQo+ID4+PiAgICAJCXJldHVybjsNCj4gPj4+IEBAIC0z Mjc2LDUgKzMyODksMTQgQEAgdm9pZCBhbWRncHVfc211X3N0Yl9kZWJ1Z19mc19pbml0KHN0cnVj dA0KPiA+PiBhbWRncHVfZGV2aWNlICphZGV2KQ0KPiA+Pj4gICAgCQkJICAgICZzbXVfc3RiX2Rl YnVnZnNfZm9wcywNCj4gPj4+ICAgIAkJCSAgICBzbXUtPnN0Yl9jb250ZXh0LnN0Yl9idWZfc2l6 ZSk7DQo+ID4+PiAgICAjZW5kaWYNCj4gPj4+ICt9DQo+ID4+PiArDQo+ID4+PiAraW50IHNtdV9z ZW5kX2hibV9iYWRfcGFnZXNfbnVtKHN0cnVjdCBzbXVfY29udGV4dCAqc211LA0KPiB1aW50MzJf dA0KPiA+Pj4gK3NpemUpIHsNCj4gPj4+ICsJaW50IHJldCA9IDA7DQo+ID4+PiArDQo+ID4+PiAr CWlmIChzbXUtPnBwdF9mdW5jcy0+c2VuZF9oYm1fYmFkX3BhZ2VzX251bSkNCj4gPj4+ICsJCXJl dCA9IHNtdS0+cHB0X2Z1bmNzLT5zZW5kX2hibV9iYWRfcGFnZXNfbnVtKHNtdSwNCj4gPj4gc2l6 ZSk7DQo+ID4+Pg0KPiA+Pj4gKwlyZXR1cm4gcmV0Ow0KPiA+Pg0KPiA+PiBUaGlzIGFsc28gbG9v a3MgdW5yZWxhdGVkLg0KPiA+IFtRdWFuLCBFdmFuXSBUaGlzIHdhcyBtb3ZlZCBmcm9tIGFtZGdw dV9kcG0uYyB0byBoZXJlDQo+IChhbWRncHVfc211LmMpLg0KPiA+IEFzIHNtdV9jb250ZXh0IGlz IG5vdyBhbiBpbnRlcm5hbCBkYXRhIHN0cnVjdHVyZSBmb3Igc3dzbXUgZnJhbWV3b3JrLg0KPiA+ IFRoZW4gdGhlIGFjY2Vzc2luZyBmb3Igc211LT5wcHRfZnVuY3Mgc2hvdWxkIGJlIGxhdW5jaGVk IGZyb20NCj4gYW1kZ3B1X3NtdS5jLg0KPiANCj4gTWF5IGJlIHRoaXMgY2hhbmdlIGNhbiBnbyB0 b2dldGhlciB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIEFQSSByZWZhY3Rvcg0KPiBjaGFuZ2UuDQpb UXVhbiwgRXZhbl0gWWVhaCwgaXQgc2hvdWxkIHdvcmsuIFdpbGwgZG8gdGhhdC4NCg0KQlINCkV2 YW4NCj4gDQo+IFRoYW5rcywNCj4gTGlqbw0KPiANCj4gPg0KPiA+IEJSDQo+ID4gRXZhbg0KPiA+ Pg0KPiA+PiBUaGFua3MsDQo+ID4+IExpam8NCj4gPj4NCj4gPj4+ICAgIH0NCj4gPj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL3N3c211L3NtdTExL2FyY3R1cnVzX3BwdC5j DQo+ID4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0vc3dzbXUvc211MTEvYXJjdHVydXNfcHB0 LmMNCj4gPj4+IGluZGV4IDA1ZGVmZWVlMGM4Ny4uYTAzYmJkMmE3YWEwIDEwMDY0NA0KPiA+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9zd3NtdS9zbXUxMS9hcmN0dXJ1c19wcHQuYw0K PiA+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9zd3NtdS9zbXUxMS9hcmN0dXJ1c19w cHQuYw0KPiA+Pj4gQEAgLTIwODIsNyArMjA4Miw4IEBAIHN0YXRpYyBpbnQgYXJjdHVydXNfaTJj X3hmZXIoc3RydWN0DQo+ID4+PiBpMmNfYWRhcHRlcg0KPiA+PiAqaTJjX2FkYXAsDQo+ID4+PiAg ICAJCQkgICAgIHN0cnVjdCBpMmNfbXNnICptc2csIGludCBudW1fbXNncykNCj4gPj4+ICAgIHsN Cj4gPj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHRvX2FtZGdwdV9kZXZpY2Uo aTJjX2FkYXApOw0KPiA+Pj4gLQlzdHJ1Y3Qgc211X3RhYmxlX2NvbnRleHQgKnNtdV90YWJsZSA9 ICZhZGV2LT5zbXUuc211X3RhYmxlOw0KPiA+Pj4gKwlzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSA9 IGFkZXYtPnBvd2VycGxheS5wcF9oYW5kbGU7DQo+ID4+PiArCXN0cnVjdCBzbXVfdGFibGVfY29u dGV4dCAqc211X3RhYmxlID0gJnNtdS0+c211X3RhYmxlOw0KPiA+Pj4gICAgCXN0cnVjdCBzbXVf dGFibGUgKnRhYmxlID0gJnNtdV90YWJsZS0+ZHJpdmVyX3RhYmxlOw0KPiA+Pj4gICAgCVN3STJj UmVxdWVzdF90ICpyZXEsICpyZXMgPSAoU3dJMmNSZXF1ZXN0X3QgKil0YWJsZS0+Y3B1X2FkZHI7 DQo+ID4+PiAgICAJaW50IGksIGosIHIsIGM7DQo+ID4+PiBAQCAtMjEyOCw5ICsyMTI5LDkgQEAg c3RhdGljIGludCBhcmN0dXJ1c19pMmNfeGZlcihzdHJ1Y3QNCj4gPj4+IGkyY19hZGFwdGVyDQo+ ID4+ICppMmNfYWRhcCwNCj4gPj4+ICAgIAkJCX0NCj4gPj4+ICAgIAkJfQ0KPiA+Pj4gICAgCX0N Cj4gPj4+IC0JbXV0ZXhfbG9jaygmYWRldi0+c211Lm11dGV4KTsNCj4gPj4+IC0JciA9IHNtdV9j bW5fdXBkYXRlX3RhYmxlKCZhZGV2LT5zbXUsDQo+ID4+IFNNVV9UQUJMRV9JMkNfQ09NTUFORFMs IDAsIHJlcSwgdHJ1ZSk7DQo+ID4+PiAtCW11dGV4X3VubG9jaygmYWRldi0+c211Lm11dGV4KTsN Cj4gPj4+ICsJbXV0ZXhfbG9jaygmc211LT5tdXRleCk7DQo+ID4+PiArCXIgPSBzbXVfY21uX3Vw ZGF0ZV90YWJsZShzbXUsIFNNVV9UQUJMRV9JMkNfQ09NTUFORFMsIDAsDQo+ID4+IHJlcSwgdHJ1 ZSk7DQo+ID4+PiArCW11dGV4X3VubG9jaygmc211LT5tdXRleCk7DQo+ID4+PiAgICAJaWYgKHIp DQo+ID4+PiAgICAJCWdvdG8gZmFpbDsNCj4gPj4+DQo+ID4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9wbS9zd3NtdS9zbXUxMS9uYXZpMTBfcHB0LmMNCj4gPj4+IGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9wbS9zd3NtdS9zbXUxMS9uYXZpMTBfcHB0LmMNCj4gPj4+IGluZGV4IDJi Yjc4MTZiMjQ1YS4uMzdlMTE3MTZlOTE5IDEwMDY0NA0KPiA+Pj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9wbS9zd3NtdS9zbXUxMS9uYXZpMTBfcHB0LmMNCj4gPj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvcG0vc3dzbXUvc211MTEvbmF2aTEwX3BwdC5jDQo+ID4+PiBAQCAtMjc3OSw3 ICsyNzc5LDggQEAgc3RhdGljIGludCBuYXZpMTBfaTJjX3hmZXIoc3RydWN0IGkyY19hZGFwdGVy DQo+ID4+ICppMmNfYWRhcCwNCj4gPj4+ICAgIAkJCSAgIHN0cnVjdCBpMmNfbXNnICptc2csIGlu dCBudW1fbXNncykNCj4gPj4+ICAgIHsNCj4gPj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiA9IHRvX2FtZGdwdV9kZXZpY2UoaTJjX2FkYXApOw0KPiA+Pj4gLQlzdHJ1Y3Qgc211X3Rh YmxlX2NvbnRleHQgKnNtdV90YWJsZSA9ICZhZGV2LT5zbXUuc211X3RhYmxlOw0KPiA+Pj4gKwlz dHJ1Y3Qgc211X2NvbnRleHQgKnNtdSA9IGFkZXYtPnBvd2VycGxheS5wcF9oYW5kbGU7DQo+ID4+ PiArCXN0cnVjdCBzbXVfdGFibGVfY29udGV4dCAqc211X3RhYmxlID0gJnNtdS0+c211X3RhYmxl Ow0KPiA+Pj4gICAgCXN0cnVjdCBzbXVfdGFibGUgKnRhYmxlID0gJnNtdV90YWJsZS0+ZHJpdmVy X3RhYmxlOw0KPiA+Pj4gICAgCVN3STJjUmVxdWVzdF90ICpyZXEsICpyZXMgPSAoU3dJMmNSZXF1 ZXN0X3QgKil0YWJsZS0+Y3B1X2FkZHI7DQo+ID4+PiAgICAJaW50IGksIGosIHIsIGM7DQo+ID4+ PiBAQCAtMjgyNSw5ICsyODI2LDkgQEAgc3RhdGljIGludCBuYXZpMTBfaTJjX3hmZXIoc3RydWN0 IGkyY19hZGFwdGVyDQo+ID4+ICppMmNfYWRhcCwNCj4gPj4+ICAgIAkJCX0NCj4gPj4+ICAgIAkJ fQ0KPiA+Pj4gICAgCX0NCj4gPj4+IC0JbXV0ZXhfbG9jaygmYWRldi0+c211Lm11dGV4KTsNCj4g Pj4+IC0JciA9IHNtdV9jbW5fdXBkYXRlX3RhYmxlKCZhZGV2LT5zbXUsDQo+ID4+IFNNVV9UQUJM RV9JMkNfQ09NTUFORFMsIDAsIHJlcSwgdHJ1ZSk7DQo+ID4+PiAtCW11dGV4X3VubG9jaygmYWRl di0+c211Lm11dGV4KTsNCj4gPj4+ICsJbXV0ZXhfbG9jaygmc211LT5tdXRleCk7DQo+ID4+PiAr CXIgPSBzbXVfY21uX3VwZGF0ZV90YWJsZShzbXUsIFNNVV9UQUJMRV9JMkNfQ09NTUFORFMsIDAs DQo+ID4+IHJlcSwgdHJ1ZSk7DQo+ID4+PiArCW11dGV4X3VubG9jaygmc211LT5tdXRleCk7DQo+ ID4+PiAgICAJaWYgKHIpDQo+ID4+PiAgICAJCWdvdG8gZmFpbDsNCj4gPj4+DQo+ID4+PiBkaWZm IC0tZ2l0DQo+IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9zd3NtdS9zbXUxMS9zaWVubmFfY2lj aGxpZF9wcHQuYw0KPiA+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL3N3c211L3NtdTExL3Np ZW5uYV9jaWNobGlkX3BwdC5jDQo+ID4+PiBpbmRleCA3NzdmNzE3YzM3YWUuLjZhNTA2NGY0ZWE4 NiAxMDA2NDQNCj4gPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0vc3dzbXUvc211MTEv c2llbm5hX2NpY2hsaWRfcHB0LmMNCj4gPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0v c3dzbXUvc211MTEvc2llbm5hX2NpY2hsaWRfcHB0LmMNCj4gPj4+IEBAIC0zNDU5LDcgKzM0NTks OCBAQCBzdGF0aWMgaW50IHNpZW5uYV9jaWNobGlkX2kyY194ZmVyKHN0cnVjdA0KPiA+PiBpMmNf YWRhcHRlciAqaTJjX2FkYXAsDQo+ID4+PiAgICAJCQkJICAgc3RydWN0IGkyY19tc2cgKm1zZywg aW50IG51bV9tc2dzKQ0KPiA+Pj4gICAgew0KPiA+Pj4gICAgCXN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2ID0gdG9fYW1kZ3B1X2RldmljZShpMmNfYWRhcCk7DQo+ID4+PiAtCXN0cnVjdCBzbXVf dGFibGVfY29udGV4dCAqc211X3RhYmxlID0gJmFkZXYtPnNtdS5zbXVfdGFibGU7DQo+ID4+PiAr CXN0cnVjdCBzbXVfY29udGV4dCAqc211ID0gYWRldi0+cG93ZXJwbGF5LnBwX2hhbmRsZTsNCj4g Pj4+ICsJc3RydWN0IHNtdV90YWJsZV9jb250ZXh0ICpzbXVfdGFibGUgPSAmc211LT5zbXVfdGFi bGU7DQo+ID4+PiAgICAJc3RydWN0IHNtdV90YWJsZSAqdGFibGUgPSAmc211X3RhYmxlLT5kcml2 ZXJfdGFibGU7DQo+ID4+PiAgICAJU3dJMmNSZXF1ZXN0X3QgKnJlcSwgKnJlcyA9IChTd0kyY1Jl cXVlc3RfdCAqKXRhYmxlLT5jcHVfYWRkcjsNCj4gPj4+ICAgIAlpbnQgaSwgaiwgciwgYzsNCj4g Pj4+IEBAIC0zNTA1LDkgKzM1MDYsOSBAQCBzdGF0aWMgaW50IHNpZW5uYV9jaWNobGlkX2kyY194 ZmVyKHN0cnVjdA0KPiA+PiBpMmNfYWRhcHRlciAqaTJjX2FkYXAsDQo+ID4+PiAgICAJCQl9DQo+ ID4+PiAgICAJCX0NCj4gPj4+ICAgIAl9DQo+ID4+PiAtCW11dGV4X2xvY2soJmFkZXYtPnNtdS5t dXRleCk7DQo+ID4+PiAtCXIgPSBzbXVfY21uX3VwZGF0ZV90YWJsZSgmYWRldi0+c211LA0KPiA+ PiBTTVVfVEFCTEVfSTJDX0NPTU1BTkRTLCAwLCByZXEsIHRydWUpOw0KPiA+Pj4gLQltdXRleF91 bmxvY2soJmFkZXYtPnNtdS5tdXRleCk7DQo+ID4+PiArCW11dGV4X2xvY2soJnNtdS0+bXV0ZXgp Ow0KPiA+Pj4gKwlyID0gc211X2Ntbl91cGRhdGVfdGFibGUoc211LCBTTVVfVEFCTEVfSTJDX0NP TU1BTkRTLCAwLA0KPiA+PiByZXEsIHRydWUpOw0KPiA+Pj4gKwltdXRleF91bmxvY2soJnNtdS0+ bXV0ZXgpOw0KPiA+Pj4gICAgCWlmIChyKQ0KPiA+Pj4gICAgCQlnb3RvIGZhaWw7DQo+ID4+Pg0K PiA+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0vc3dzbXUvc211MTEvc211 X3YxMV8wLmMNCj4gPj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9zd3NtdS9zbXUxMS9zbXVf djExXzAuYw0KPiA+Pj4gaW5kZXggMjhiN2MwNTYyYjk5Li4yYTUzYjViMWQyNjEgMTAwNjQ0DQo+ ID4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL3N3c211L3NtdTExL3NtdV92MTFfMC5j DQo+ID4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL3N3c211L3NtdTExL3NtdV92MTFf MC5jDQo+ID4+PiBAQCAtMTM3Miw3ICsxMzcyLDcgQEAgc3RhdGljIGludCBzbXVfdjExXzBfc2V0 X2lycV9zdGF0ZShzdHJ1Y3QNCj4gPj4gYW1kZ3B1X2RldmljZSAqYWRldiwNCj4gPj4+ICAgIAkJ CQkgICB1bnNpZ25lZCB0eWVwLA0KPiA+Pj4gICAgCQkJCSAgIGVudW0gYW1kZ3B1X2ludGVycnVw dF9zdGF0ZSBzdGF0ZSkNCj4gPj4+ICAgIHsNCj4gPj4+IC0Jc3RydWN0IHNtdV9jb250ZXh0ICpz bXUgPSAmYWRldi0+c211Ow0KPiA+Pj4gKwlzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSA9IGFkZXYt PnBvd2VycGxheS5wcF9oYW5kbGU7DQo+ID4+PiAgICAJdWludDMyX3QgbG93LCBoaWdoOw0KPiA+ Pj4gICAgCXVpbnQzMl90IHZhbCA9IDA7DQo+ID4+Pg0KPiA+Pj4gQEAgLTE0NDEsNyArMTQ0MSw3 IEBAIHN0YXRpYyBpbnQgc211X3YxMV8wX2lycV9wcm9jZXNzKHN0cnVjdA0KPiA+PiBhbWRncHVf ZGV2aWNlICphZGV2LA0KPiA+Pj4gICAgCQkJCSBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmMgKnNvdXJj ZSwNCj4gPj4+ICAgIAkJCQkgc3RydWN0IGFtZGdwdV9pdl9lbnRyeSAqZW50cnkpDQo+ID4+PiAg ICB7DQo+ID4+PiAtCXN0cnVjdCBzbXVfY29udGV4dCAqc211ID0gJmFkZXYtPnNtdTsNCj4gPj4+ ICsJc3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSBhZGV2LT5wb3dlcnBsYXkucHBfaGFuZGxlOw0K PiA+Pj4gICAgCXVpbnQzMl90IGNsaWVudF9pZCA9IGVudHJ5LT5jbGllbnRfaWQ7DQo+ID4+PiAg ICAJdWludDMyX3Qgc3JjX2lkID0gZW50cnktPnNyY19pZDsNCj4gPj4+ICAgIAkvKg0KPiA+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0vc3dzbXUvc211MTMvYWxkZWJhcmFu X3BwdC5jDQo+ID4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0vc3dzbXUvc211MTMvYWxkZWJh cmFuX3BwdC5jDQo+ID4+PiBpbmRleCA2ZTc4MWNlZThiYjYuLjNjODJmNTQ1NWY4OCAxMDA2NDQN Cj4gPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0vc3dzbXUvc211MTMvYWxkZWJhcmFu X3BwdC5jDQo+ID4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL3N3c211L3NtdTEzL2Fs ZGViYXJhbl9wcHQuYw0KPiA+Pj4gQEAgLTE0ODQsNyArMTQ4NCw4IEBAIHN0YXRpYyBpbnQgYWxk ZWJhcmFuX2kyY194ZmVyKHN0cnVjdA0KPiA+Pj4gaTJjX2FkYXB0ZXINCj4gPj4gKmkyY19hZGFw LA0KPiA+Pj4gICAgCQkJICAgICAgc3RydWN0IGkyY19tc2cgKm1zZywgaW50IG51bV9tc2dzKQ0K PiA+Pj4gICAgew0KPiA+Pj4gICAgCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gdG9fYW1k Z3B1X2RldmljZShpMmNfYWRhcCk7DQo+ID4+PiAtCXN0cnVjdCBzbXVfdGFibGVfY29udGV4dCAq c211X3RhYmxlID0gJmFkZXYtPnNtdS5zbXVfdGFibGU7DQo+ID4+PiArCXN0cnVjdCBzbXVfY29u dGV4dCAqc211ID0gYWRldi0+cG93ZXJwbGF5LnBwX2hhbmRsZTsNCj4gPj4+ICsJc3RydWN0IHNt dV90YWJsZV9jb250ZXh0ICpzbXVfdGFibGUgPSAmc211LT5zbXVfdGFibGU7DQo+ID4+PiAgICAJ c3RydWN0IHNtdV90YWJsZSAqdGFibGUgPSAmc211X3RhYmxlLT5kcml2ZXJfdGFibGU7DQo+ID4+ PiAgICAJU3dJMmNSZXF1ZXN0X3QgKnJlcSwgKnJlcyA9IChTd0kyY1JlcXVlc3RfdCAqKXRhYmxl LT5jcHVfYWRkcjsNCj4gPj4+ICAgIAlpbnQgaSwgaiwgciwgYzsNCj4gPj4+IEBAIC0xNTMwLDkg KzE1MzEsOSBAQCBzdGF0aWMgaW50IGFsZGViYXJhbl9pMmNfeGZlcihzdHJ1Y3QNCj4gPj4+IGky Y19hZGFwdGVyDQo+ID4+ICppMmNfYWRhcCwNCj4gPj4+ICAgIAkJCX0NCj4gPj4+ICAgIAkJfQ0K PiA+Pj4gICAgCX0NCj4gPj4+IC0JbXV0ZXhfbG9jaygmYWRldi0+c211Lm11dGV4KTsNCj4gPj4+ IC0JciA9IHNtdV9jbW5fdXBkYXRlX3RhYmxlKCZhZGV2LT5zbXUsDQo+ID4+IFNNVV9UQUJMRV9J MkNfQ09NTUFORFMsIDAsIHJlcSwgdHJ1ZSk7DQo+ID4+PiAtCW11dGV4X3VubG9jaygmYWRldi0+ c211Lm11dGV4KTsNCj4gPj4+ICsJbXV0ZXhfbG9jaygmc211LT5tdXRleCk7DQo+ID4+PiArCXIg PSBzbXVfY21uX3VwZGF0ZV90YWJsZShzbXUsIFNNVV9UQUJMRV9JMkNfQ09NTUFORFMsIDAsDQo+ ID4+IHJlcSwgdHJ1ZSk7DQo+ID4+PiArCW11dGV4X3VubG9jaygmc211LT5tdXRleCk7DQo+ID4+ PiAgICAJaWYgKHIpDQo+ID4+PiAgICAJCWdvdG8gZmFpbDsNCj4gPj4+DQo+ID4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9zd3NtdS9zbXUxMy9zbXVfdjEzXzAuYw0KPiA+ Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL3N3c211L3NtdTEzL3NtdV92MTNfMC5jDQo+ID4+ PiBpbmRleCA1NTQyMWVhNjIyZmIuLjRlZDAxZTlkODhmYiAxMDA2NDQNCj4gPj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvcG0vc3dzbXUvc211MTMvc211X3YxM18wLmMNCj4gPj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0vc3dzbXUvc211MTMvc211X3YxM18wLmMNCj4gPj4+IEBA IC0xMTk1LDcgKzExOTUsNyBAQCBzdGF0aWMgaW50IHNtdV92MTNfMF9zZXRfaXJxX3N0YXRlKHN0 cnVjdA0KPiA+PiBhbWRncHVfZGV2aWNlICphZGV2LA0KPiA+Pj4gICAgCQkJCSAgIHVuc2lnbmVk IHR5ZXAsDQo+ID4+PiAgICAJCQkJICAgZW51bSBhbWRncHVfaW50ZXJydXB0X3N0YXRlIHN0YXRl KQ0KPiA+Pj4gICAgew0KPiA+Pj4gLQlzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSA9ICZhZGV2LT5z bXU7DQo+ID4+PiArCXN0cnVjdCBzbXVfY29udGV4dCAqc211ID0gYWRldi0+cG93ZXJwbGF5LnBw X2hhbmRsZTsNCj4gPj4+ICAgIAl1aW50MzJfdCBsb3csIGhpZ2g7DQo+ID4+PiAgICAJdWludDMy X3QgdmFsID0gMDsNCj4gPj4+DQo+ID4+PiBAQCAtMTI3MCw3ICsxMjcwLDcgQEAgc3RhdGljIGlu dCBzbXVfdjEzXzBfaXJxX3Byb2Nlc3Moc3RydWN0DQo+ID4+IGFtZGdwdV9kZXZpY2UgKmFkZXYs DQo+ID4+PiAgICAJCQkJIHN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc291cmNlLA0KPiA+Pj4gICAg CQkJCSBzdHJ1Y3QgYW1kZ3B1X2l2X2VudHJ5ICplbnRyeSkNCj4gPj4+ICAgIHsNCj4gPj4+IC0J c3RydWN0IHNtdV9jb250ZXh0ICpzbXUgPSAmYWRldi0+c211Ow0KPiA+Pj4gKwlzdHJ1Y3Qgc211 X2NvbnRleHQgKnNtdSA9IGFkZXYtPnBvd2VycGxheS5wcF9oYW5kbGU7DQo+ID4+PiAgICAJdWlu dDMyX3QgY2xpZW50X2lkID0gZW50cnktPmNsaWVudF9pZDsNCj4gPj4+ICAgIAl1aW50MzJfdCBz cmNfaWQgPSBlbnRyeS0+c3JjX2lkOw0KPiA+Pj4gICAgCS8qDQo+ID4+PiBAQCAtMTMxNiwxMSAr MTMxNiwxMSBAQCBzdGF0aWMgaW50IHNtdV92MTNfMF9pcnFfcHJvY2VzcyhzdHJ1Y3QNCj4gPj4g YW1kZ3B1X2RldmljZSAqYWRldiwNCj4gPj4+ICAgIAkJCXN3aXRjaCAoY3R4aWQpIHsNCj4gPj4+ ICAgIAkJCWNhc2UgMHgzOg0KPiA+Pj4gICAgCQkJCWRldl9kYmcoYWRldi0+ZGV2LCAiU3dpdGNo ZWQgdG8gQUMNCj4gPj4gbW9kZSFcbiIpOw0KPiA+Pj4gLQkJCQlzbXVfdjEzXzBfYWNrX2FjX2Rj X2ludGVycnVwdCgmYWRldi0NCj4gPj4+IHNtdSk7DQo+ID4+PiArCQkJCXNtdV92MTNfMF9hY2tf YWNfZGNfaW50ZXJydXB0KHNtdSk7DQo+ID4+PiAgICAJCQkJYnJlYWs7DQo+ID4+PiAgICAJCQlj YXNlIDB4NDoNCj4gPj4+ICAgIAkJCQlkZXZfZGJnKGFkZXYtPmRldiwgIlN3aXRjaGVkIHRvIERD DQo+ID4+IG1vZGUhXG4iKTsNCj4gPj4+IC0JCQkJc211X3YxM18wX2Fja19hY19kY19pbnRlcnJ1 cHQoJmFkZXYtDQo+ID4+PiBzbXUpOw0KPiA+Pj4gKwkJCQlzbXVfdjEzXzBfYWNrX2FjX2RjX2lu dGVycnVwdChzbXUpOw0KPiA+Pj4gICAgCQkJCWJyZWFrOw0KPiA+Pj4gICAgCQkJY2FzZSAweDc6 DQo+ID4+PiAgICAJCQkJLyoNCj4gPj4+DQo=