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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8F113C4332F for ; Fri, 29 Apr 2022 10:09:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1357230AbiD2KNO (ORCPT ); Fri, 29 Apr 2022 06:13:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42850 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238897AbiD2KNL (ORCPT ); Fri, 29 Apr 2022 06:13:11 -0400 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.154.123]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E7644C664A; Fri, 29 Apr 2022 03:09:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1651226991; x=1682762991; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=TMB6GINc1kTJpMbsQtExuq1rpcoxgc0KHUt4qE7kyz4=; b=FFKdN3Ql2sXqL5kbXzHfRC1xt0jSCgenwWD/BZtXr/WlXYdEVpf85Vm0 J1pr+ySYHh7r/vkVX+Y6RjtuwF9bUAwcSHmdfXWZLU8kKunsAIJ74zi7n RwnooDAoJThxMvHFBaO47E2UOFQa1XxWmhcjeUKEa9vUEt8oDHBPbJuAa LUnepJz2SSGpmglbW6HaVfSwLo3jLjz5WFZJYXF5m3K5Ln+sAh7dn16w3 /+pc6OY2+i1wSXKAJbgT2Ou4dKnsMVSeAg8sBofcx1nv4FfFCJybR1hHf f/YU88WNCYFgoO+0svUyRjnSRrQpe5Nkw0azSeh0beu6aWfQ9W8wKmxVL Q==; X-IronPort-AV: E=Sophos;i="5.91,298,1647327600"; d="scan'208";a="157277474" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa2.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 29 Apr 2022 03:09:50 -0700 Received: from chn-vm-ex03.mchp-main.com (10.10.85.151) by chn-vm-ex01.mchp-main.com (10.10.85.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Fri, 29 Apr 2022 03:09:50 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17 via Frontend Transport; Fri, 29 Apr 2022 03:09:50 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dpkLM6X4974k6RtjIpZJjZt0ptYy6qB84Od4NH479t4D4wsinpdOZVsRsv3N17F00ZJeqnUsrEwLd+KWBL8Xo8sJB5cjeV0/R/wRRin7KXWUtePJeh11goaqXCsosavcJkOYFPEPxvvZvTMosesNDTyOPR+YLomUaLR9OgX2Y91Uk1ADiAKPIT73bhX6DCZ0Vveo8K4TUtpe8DHvFYql8FPZ2KuUfXRZ3sG8l3LbUXvpGia4NKZjkarRw44RgMh4fMXVy4u9LscGUCKz4nawJrfgukzSdw72orH5jMELzzS6nx5rXprRAkXV101aSY6SfFSJVQATW+QzR2zbFg21bw== 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=TMB6GINc1kTJpMbsQtExuq1rpcoxgc0KHUt4qE7kyz4=; b=VhIAeOqbQ/6ozhzpqAnuPBWqyszW9wGp9hqo3c28CVqY86RzJEvLDvShYpc97KyGSVo3B8KNRRNMM10w6deX7CTLf9dF9BGqD021xl/xRxiv6IKPEaAjAqqy8KcCELFCnh8eUzzypCJAs4j9jnONCnjmNWc+KJMjjQRFl0vff5r2AslbCZ0Gmq2Zd7Uy9NSrUbQX2ZByBByflKBp0ru3riCz9iTB7PPF2790mIyZpDdc569EgwNg2yYfp77SCZ6X3zayYJiz091fcU67f65i+r1ThC8KhGOIPP7w67zvHLfNAXWch6bpL2RJCQrY/qEPwtdimtPu3RjYZG/XqWnllg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TMB6GINc1kTJpMbsQtExuq1rpcoxgc0KHUt4qE7kyz4=; b=Y7Q2TFNtxf10h92cr4Jh2N8zPjntLTMStO5ZMUS8P3eMvDtDpPx/b9B8MCyq66O/XoNVBCGK7yoUw1ipssOBmhqk8EaF0Ny1CEK8bc0ufSV3XglDjJ+HWZPwa51jNu6gQtg84HsjKPkXMAQYQX/Zfu9Sbrxp1+4bhri6nmizAFw= Received: from BL1PR11MB5384.namprd11.prod.outlook.com (2603:10b6:208:311::14) by DS7PR11MB6039.namprd11.prod.outlook.com (2603:10b6:8:76::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Fri, 29 Apr 2022 10:09:48 +0000 Received: from BL1PR11MB5384.namprd11.prod.outlook.com ([fe80::39cb:eae2:1dbc:a5f2]) by BL1PR11MB5384.namprd11.prod.outlook.com ([fe80::39cb:eae2:1dbc:a5f2%8]) with mapi id 15.20.5186.026; Fri, 29 Apr 2022 10:09:48 +0000 From: To: , CC: , , , , , , , Subject: Re: [PATCH v9 08/13] media: atmel: atmel-isc: change format propagation to subdev into only verification Thread-Topic: [PATCH v9 08/13] media: atmel: atmel-isc: change format propagation to subdev into only verification Thread-Index: AQHYNGSlGFK9XkrrkEmECxEfnwRnzq0G2l2AgAAC+4CAAAQsgIAAFSMAgAABOwCAAAHWAA== Date: Fri, 29 Apr 2022 10:09:48 +0000 Message-ID: <872fcef9-14dd-6ba3-440e-030200c56c3c@microchip.com> References: <20220310095202.2701399-1-eugen.hristev@microchip.com> <20220310095202.2701399-9-eugen.hristev@microchip.com> <39f541ec-313f-fe15-b93f-dd78469b2366@xs4all.nl> <20220429095848.ec4xnul6tin6n7sf@uno.localdomain> In-Reply-To: Accept-Language: en-US, ro-RO Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 40a4c57f-3225-4ce7-111f-08da29c86469 x-ms-traffictypediagnostic: DS7PR11MB6039:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OSE8HbP4SGSOhxlZkgrJfe8gVMGZLBoMe3PxW9B6FrEIxvHDTQdkAJHoLYRoW6teeD1wtgVA+FkWoFQ4THRrnvBFlCXKn6krOnfBxgL5qtrcY+BlezC17zrv9ZRtoV/JlKvIfuUxPoV3qL7sxZR1lyJAr9mol3Ic+4Nh9mnx8Ujk02jbH2G2lXVCh2An44wbluj4oTaaREVvHMZbRnKz1+QP43j2NwKeK/q3hiE3AjuVwMuKrKe8bETmRWQvawn2tNDagJ1vaSepKtZqze4cjyI6flPl+tczNTccTOpQVzcQtLQcTCrxoiheCGGxAWVrTWIcgMy147OQ3Pjtf5cIW5sSFR4A2xluhF4fGK9rj+HaB3JEgCWVnn8DRMYN1+YXO0qIY2thVUv4nnkO+UJdvWzokIdA5C53YhhYn5hVw4KfsGR4GISSoQclIjaoSovir1ne15ZWO+mwAB0guTu5GpikKQbWTboXUgwLOoejxv7Z1I0eYWjZlWV9u369ZB1P1PYLEzM1RVv7JBr/I64tNGftSPzLzqqk3dXRaK85HGxteYhfr6E2p5ZAwRl6MYFlChbSz/Dvg0uCwYeyPzjyfoO+QGjAZbcR3Ej9A6nezHKhJHmtNXTczj2aPFr+SW+f7Pv2qzczOA3FrYKOpzGt082kXtv9+qahyEl85HcCahIQ7vdJmTic3vIBgq31rVf7R2J5S0eAHObAjtvXFUB85HN6rbkFFHbiwozcF+3LkV+ofX7baDVAJBg18CgqAjmZDl/Nky9NO/JpHr9ExZg4qA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB5384.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(186003)(122000001)(38070700005)(38100700002)(66446008)(83380400001)(4326008)(36756003)(5660300002)(8676002)(8936002)(64756008)(30864003)(15650500001)(31686004)(2906002)(6506007)(6486002)(66476007)(2616005)(6512007)(71200400001)(91956017)(107886003)(54906003)(66946007)(66556008)(53546011)(26005)(76116006)(110136005)(86362001)(316002)(31696002)(508600001)(45980500001)(43740500002)(579004)(559001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?T3NVU1k0U29RV2lSZ0ZvZ2d3dGRzQ2s1UVZxb0w0blZpaHFJbVA2OW9LUGF1?= =?utf-8?B?RXZ4clpkbTFwOVVxanBZa3pSKy9yWUsyaDdyZ1hBSlVMb2dCRUhZSlFLQWt0?= =?utf-8?B?V3ZBR3ZUNFJaRlBHMm5GNGZkbnp0c3ZhOThscVQxZnhGRnh0K3o5eGdtZXlS?= =?utf-8?B?aUdSdjA0TU9WTkEzRFBGZjJXdGk5aERKMnUzSjhoVHYybUlyRUcyVmFCSTg2?= =?utf-8?B?Ly8zM3MyYTJPQ1JHUkRKaGdSNVhwL3IwU2hZTFZVeHk4Rkt2NXRad1owU0Vn?= =?utf-8?B?akgvc1J0T2JMYnNJZEVtY2lUOUdnVklsY2Q4MXRtQ0FuV2FFKzhjdGJVaEgy?= =?utf-8?B?alNWdk5sbm5sUCszTzFHSk5OUjZDZllMM2R3eHpUdDViWVBBSE1JQmZqNStG?= =?utf-8?B?TmZYU1pmSHNsM0pzQ1NjbGpXOHRJZGtYczJ6aVk5RjRlL1N2NGJpOHp3NnJm?= =?utf-8?B?TE5SRmZyOFpRWkZVWjROVytyZ28vRDF5eHJDclR3cDc0WUdEU2ZoYld1WG00?= =?utf-8?B?cXhMOEhCZURseDNKK2ZnV0VwQ29GcjB2MGVoTitmK3dvaGdQcU9FQ3d4cnMx?= =?utf-8?B?amNDZ2RIbWk1NTBQMDZmcEdoZ0pZSlZ6N0JmSkQrNkE3OUM4UkZ4Q3E1QTlh?= =?utf-8?B?ZkRGSmxRaHNTb3V1RHVCYmFRTktYWitldjJqRXE3NzVjWlJTSFFUQW5BMDBN?= =?utf-8?B?eDUxL3BzZDExenIyWTVOZzdqK3djOUxvRm5tUE9acUVNVHZsTjgyUzFVNzNH?= =?utf-8?B?WjV4dXlzT2kweGU5Y1J0YjNDR1VpY2xNa2R2MmZGa3FFQ0c0WnEyOFNtUkw5?= =?utf-8?B?RkJyb3VPQWQ2VmxubjJHKyt5TW1LUWthZzYzY0doTUIwMUU1eDUwWVVpejU3?= =?utf-8?B?dVgwbmhPK2lWblZRdlBJTmh4WWRzZVpPZmdiV3NVM3BDOTBTQithOC83SFZF?= =?utf-8?B?RmNoZmtiOWsxWi8yVVJhM3RkRUhWK0V6R3JPV3ZMMjNQb09CeHdLbk1Fc2Rn?= =?utf-8?B?RUd1czBKakp4Ti9PeXFaYjdrZWRqcHlRb0RTVDFheTh3NVp3WGU1WUFaR1Nv?= =?utf-8?B?c2paeTFoS2JHaVo2TVJKTFpPUzgwY1J6cmxhRE4veWJtbm1IQ0JkS1BwemNZ?= =?utf-8?B?VnA4cVJwdzY1SHUxSUVZbjJzN0xUQ0lLQVdKUTFlM09JNWw0bG1zUEZmTDFx?= =?utf-8?B?cGpKckVJcHdlc0tSekthbmxuVDB1dGc4b09PRStoRVhKam5ta21PVUd1L3d2?= =?utf-8?B?bjVkU0RhQTI3alU0UEZxeS91bitENU5NWHQ1NWZCbmZDREVOa09LZTZ2NlZn?= =?utf-8?B?U1BqaE9zTXdCckd4U2tBcTlMYTA3Ri9yWUNxemJSV05DYUNzd2QxTEVCN0Fj?= =?utf-8?B?aUh2djFyeDhpSXdia2pnMGx5bW9TWkQ2NDZ4ZWpZWTJBaGM0NDBHMzYvdTdK?= =?utf-8?B?YS9aUkNJMXI3RFVoaG4yRUhZSmJqZmFwbk1XclJZRXpLaFdIa3Nha3dRbHh2?= =?utf-8?B?aysyMW4ycm9IVE1GdTdlQkk3M0xWckU4ZVRnMTIzZ25KZzc3UVE5NVhBQ3ll?= =?utf-8?B?azJPZEFkcVo1R3dpY1BaeVcvdDNHV084WUdESmc4T1NrZW82VUl0U3h2UDhi?= =?utf-8?B?c1RHbHIvbVZTb1lETTlTbEV3dnI2YmJVdGhHVWdkek9FZWcwaDkyUkFlOHZs?= =?utf-8?B?R0N2T2ZRNytwZXIxdGhCRUdXemh4YkJXSk9uWXhFWTJ3aWlvRUpSdThES3R0?= =?utf-8?B?cFNqVTNna0hISElWaFhHRTkzVm8wUjJvaHRya0dvQk8xZ0R3Vlo1NThZWnVt?= =?utf-8?B?V3lWOUdldis5UWhNRkNNVjh1YUdBWmlCWlp0TXBSY0RoNWp0YmRTRHJYKzJP?= =?utf-8?B?SDVHNHR6NXZaVTJZb1hESUR3bE1PUTRMOC9ORzRnRTV2eFBjUUtTOGtvbE1J?= =?utf-8?B?OVV2OHVRa2JQVXo2SW9JeGo5Ry9LRDM3WUw0a3RnMjBEeC9nWW4vMWJacHRS?= =?utf-8?B?TGFTVVpBUVM0N2NYYWhHeHBNb0RxSVg4VUhsSGZVTFpYd3RkelVaWHJHR01Q?= =?utf-8?B?UDZoNm5hYW9wZ1VxS2JFN3c0NVJ5cDFkeDJYeVFMTHdGWmozaVF3WEtlSjNh?= =?utf-8?B?RmpoWi9rNloyNHEwc1F0akt0RnN6SDgrZ2pMc1VJTTgwUnZPTkdkN29VQUZ6?= =?utf-8?B?QW5WZm1kWFdTZnJvNzQ0NHM5eDRNZmxQcU44V3dkRjBXa21kcjduaFlRdFo0?= =?utf-8?B?VWw2Vk5kd1c0dkZZQ2twY2pJM2g1TXNuNUtQVFc2MjJEWGsvVTJCT2JzdEpJ?= =?utf-8?B?aXAzZzRNRFZuRHlydVZXWG9VZ2VEZWlFS1B1UEorWUg3MTdvVnlnT3lTN2t4?= =?utf-8?Q?uoTuQKg6Hx1hsgUA=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <68D70FDC16E3D84BB9AF3237E2C17948@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB5384.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 40a4c57f-3225-4ce7-111f-08da29c86469 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Apr 2022 10:09:48.0526 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: UYUQvMUUJFjA3FCwjKGWvvuzoab/e0LN0/h0GttKhcl5AgocSygcMTpwdYLWeFfb5FKw5noI5ObJ59qdDpP9/Pk/ehzguUuBdEFDi3bWQhM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB6039 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gNC8yOS8yMiAxOjAzIFBNLCBIYW5zIFZlcmt1aWwgd3JvdGU6DQo+IE9uIDI5LzA0LzIwMjIg MTE6NTgsIEphY29wbyBNb25kaSB3cm90ZToNCj4+IEhlbGxvDQo+Pg0KPj4gT24gRnJpLCBBcHIg MjksIDIwMjIgYXQgMTA6NDM6MDlBTSArMDIwMCwgSGFucyBWZXJrdWlsIHdyb3RlOg0KPj4+IE9u IDI5LzA0LzIwMjIgMTA6MjgsIEV1Z2VuLkhyaXN0ZXZAbWljcm9jaGlwLmNvbSB3cm90ZToNCj4+ Pj4gT24gNC8yOS8yMiAxMToxNyBBTSwgSGFucyBWZXJrdWlsIHdyb3RlOg0KPj4+Pj4gT24gMTAv MDMvMjAyMiAxMDo1MSwgRXVnZW4gSHJpc3RldiB3cm90ZToNCj4+Pj4+PiBBcyBhIHRvcCBNQyB2 aWRlbyBkcml2ZXIsIHRoZSBhdG1lbC1pc2Mgc2hvdWxkIG5vdCBwcm9wYWdhdGUgdGhlIGZvcm1h dCB0byB0aGUNCj4+Pj4+PiBzdWJkZXZpY2UsIGl0IHNob3VsZCByYXRoZXIgY2hlY2sgYXQgc3Rh cnRfc3RyZWFtaW5nKCkgdGltZSBpZiB0aGUgc3ViZGV2IGlzIHByb3Blcmx5DQo+Pj4+Pj4gY29u ZmlndXJlZCB3aXRoIGEgY29tcGF0aWJsZSBmb3JtYXQuDQo+Pj4+Pj4gUmVtb3ZlZCB0aGUgd2hv bGUgZm9ybWF0IGZpbmRpbmcgbG9naWMsIGFuZCByZXdvcmtlZCB0aGUgZm9ybWF0IHZlcmlmaWNh dGlvbg0KPj4+Pj4+IGF0IHN0YXJ0X3N0cmVhbWluZyB0aW1lLCBzdWNoIHRoYXQgdGhlIElTQyB3 aWxsIHJldHVybiBhbiBlcnJvciBpZiB0aGUgc3ViZGV2aWNlDQo+Pj4+Pj4gaXMgbm90IHByb3Bl cmx5IGNvbmZpZ3VyZWQuIFRvIGFjaGlldmUgdGhpcywgbWVkaWFfcGlwZWxpbmVfc3RhcnQNCj4+ Pj4+PiBpcyBjYWxsZWQgYW5kIGEgbGlua192YWxpZGF0ZSBjYWxsYmFjayBpcyBjcmVhdGVkIHRv IGNoZWNrIHRoZSBmb3JtYXRzLg0KPj4+Pj4+IFdpdGggdGhpcyBiZWluZyBkb25lLCB0aGUgbW9k dWxlIHBhcmFtZXRlciAnc2Vuc29yX3ByZWZlcnJlZCcgbWFrZXMgbm8gc2Vuc2UNCj4+Pj4+PiBh bnltb3JlLiBUaGUgSVNDIHNob3VsZCBub3QgZGVjaWRlIHdoaWNoIGZvcm1hdCB0aGUgc2Vuc29y IGlzIHVzaW5nLiBUaGUNCj4+Pj4+PiBJU0Mgc2hvdWxkIG9ubHkgY29wZSB3aXRoIHRoZSBzaXR1 YXRpb24gYW5kIGluZm9ybSB1c2Vyc3BhY2UgaWYgdGhlIHN0cmVhbWluZw0KPj4+Pj4+IGlzIHBv c3NpYmxlIGluIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uDQo+Pj4+Pj4gVGhlIHJlZGVzaWdu IG9mIHRoZSBmb3JtYXQgcHJvcGFnYXRpb24gaGFzIGFsc28gcmlzZW4gdGhlIHF1ZXN0aW9uIG9m IHRoZQ0KPj4+Pj4+IGVudW1mbXQgY2FsbGJhY2suIElmIGVudW1mbXQgaXMgY2FsbGVkIHdpdGgg YW4gbWJ1c19jb2RlLCB0aGUgZW51bWZtdCBoYW5kbGVyDQo+Pj4+Pj4gc2hvdWxkIG9ubHkgcmV0 dXJuIHRoZSBmb3JtYXRzIHRoYXQgYXJlIHN1cHBvcnRlZCBmb3IgdGhpcyBtYnVzX2NvZGUuDQo+ Pj4+Pj4gT3RoZXJ3aXNlLCB0aGUgZW51bWZtdCB3aWxsIHJlcG9ydCBhbGwgdGhlIGZvcm1hdHMg dGhhdCB0aGUgSVNDIGNvdWxkIG91dHB1dC4NCj4+Pj4+PiBXaXRoIHRoaXMgcmV3b3JrLCB0aGUg ZHluYW1pYyBsaXN0IG9mIHVzZXIgZm9ybWF0cyBpcyByZW1vdmVkLiBJdCBtYWtlcyBubw0KPj4+ Pj4+IG1vcmUgc2Vuc2UgdG8gaWRlbnRpZnkgYXQgY29tcGxldGUgdGltZSB3aGljaCBmb3JtYXRz IHRoZSBzZW5zb3IgY291bGQgZW1pdCwNCj4+Pj4+PiBhbmQgYWRkIHRob3NlIGludG8gYSBzZXBh cmF0ZSBkeW5hbWljIGxpc3QuDQo+Pj4+Pj4gVGhlIElTQyB3aWxsIHN0YXJ0IHdpdGggYSBzaW1w bGUgcHJlY29uZmlndXJlZCBkZWZhdWx0IGZvcm1hdCwgYW5kIGF0DQo+Pj4+Pj4gbGluayB2YWxp ZGF0ZSB0aW1lLCBkZWNpZGUgd2hldGhlciBpdCBjYW4gdXNlIHRoZSBmb3JtYXQgdGhhdCBpcyBj b25maWd1cmVkDQo+Pj4+Pj4gb24gdGhlIHNpbmsgb3Igbm90Lg0KPj4+Pj4+DQo+Pj4+Pj4gU2ln bmVkLW9mZi1ieTogRXVnZW4gSHJpc3RldiA8ZXVnZW4uaHJpc3RldkBtaWNyb2NoaXAuY29tPg0K Pj4+Pj4+IFJldmlld2VkLWJ5OiBKYWNvcG8gTW9uZGkgPGphY29wb0BqbW9uZGkub3JnPg0KPj4+ Pj4+IC0tLQ0KPj4+Pj4+IENoYW5nZXMgaW4gdjk6DQo+Pj4+Pj4gLSBpc2NfbGlua192YWxpZGF0 ZSBub3cgc3RhdGljDQo+Pj4+Pj4NCj4+Pj4+PiBDaGFuZ2VzIGluIHY3Og0KPj4+Pj4+IC0gbWlu b3IgdHlwb3MgYXMgc3VnZ2VzdGVkIGJ5IEphY29wbw0KPj4+Pj4+IC0gc21hbGwgY2hhbmdlcywg cmVkdWNlIHNvbWUgaW5kZW50YXRpb24sIG1vZGlmaWVkIGFuIGluZGV4LCBhcyBzdWdnZXN0ZWQg YnkNCj4+Pj4+PiBKYWNvcG8NCj4+Pj4+Pg0KPj4+Pj4+IENoYW5nZXMgaW4gdjY6DQo+Pj4+Pj4g LSByZXdvcmtlZCBhIGJpdCBlbnVtX2ZtdCBhcyBzdWdnZXN0ZWQgYnkgSmFjb3BvDQo+Pj4+Pj4N Cj4+Pj4+PiBDaGFuZ2VzIGluIHY1Og0KPj4+Pj4+IC0gcmVtb3ZlZCB1c2VyX2Zvcm1hdHMgZHlu YW1pYyBsaXN0IGFzIGl0IGlzIG5vdyBwb2ludGxlc3MNCj4+Pj4+PiAtIGdyZWF0bHkgc2ltcGxp ZmllZCB0aGUgZW51bV9mbXQgZnVuY3Rpb24NCj4+Pj4+PiAtIHJlbW92ZWQgc29tZSBpbml0IGNv ZGUgdGhhdCB3YXMgdXNlbGVzcyBub3cNCj4+Pj4+Pg0KPj4+Pj4+IENoYW5nZXMgaW4gdjQ6DQo+ Pj4+Pj4gLSBtb3ZlZCB2YWxpZGF0aW9uIGNvZGUgaW50byBsaW5rX3ZhbGlkYXRlIGFuZCB1c2Vk IG1lZGlhX3BpcGVsaW5lX3N0YXJ0DQo+Pj4+Pj4gLSBtZXJnZWQgdGhpcyBwYXRjaCB3aXRoIHRo ZSBlbnVtX2ZtdCBwYXRjaCB3aGljaCB3YXMgcHJldmlvdXNseSBpbiB2MyBvZg0KPj4+Pj4+IHRo ZSBzZXJpZXMNCj4+Pj4+Pg0KPj4+Pj4+IENoYW5nZXMgaW4gdjM6DQo+Pj4+Pj4gLSBjbGFtcCB0 byBtYXhpbXVtIHJlc29sdXRpb24gb25jZSB0aGUgZnJhbWUgc2l6ZSBmcm9tIHRoZSBzdWJkZXYg aXMgZm91bmQNCj4+Pj4+PiAgICBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlz Yy1iYXNlLmMgfCA0MTIgKysrKysrKystLS0tLS0tLS0tDQo+Pj4+Pj4gICAgLi4uL21lZGlhL3Bs YXRmb3JtL2F0bWVsL2F0bWVsLWlzYy1zY2FsZXIuYyAgIHwgICA1ICsNCj4+Pj4+PiAgICBkcml2 ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy5oICAgICAgfCAgMTMgKy0NCj4+Pj4+ PiAgICAuLi4vbWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtc2FtYTVkMi1pc2MuYyAgfCAgMjAg Kw0KPj4+Pj4+ICAgIC4uLi9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1zYW1hN2c1LWlzYy5j ICB8ICAyMCArDQo+Pj4+Pj4gICAgNSBmaWxlcyBjaGFuZ2VkLCAyMzYgaW5zZXJ0aW9ucygrKSwg MjM0IGRlbGV0aW9ucygtKQ0KPj4+Pj4+DQo+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVk aWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtaXNjLWJhc2UuYyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vYXRtZWwvYXRtZWwtaXNjLWJhc2UuYw0KPj4+Pj4+IGluZGV4IGVlMWRkYTY3MDdhMC4uZmUy YzBhZjU4MDYwIDEwMDY0NA0KPj4+Pj4+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRt ZWwvYXRtZWwtaXNjLWJhc2UuYw0KPj4+Pj4+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v YXRtZWwvYXRtZWwtaXNjLWJhc2UuYw0KPj4+Pj4+IEBAIC0zNiwxMSArMzYsNiBAQCBzdGF0aWMg dW5zaWduZWQgaW50IGRlYnVnOw0KPj4+Pj4+ICAgIG1vZHVsZV9wYXJhbShkZWJ1ZywgaW50LCAw NjQ0KTsNCj4+Pj4+PiAgICBNT0RVTEVfUEFSTV9ERVNDKGRlYnVnLCAiZGVidWcgbGV2ZWwgKDAt MikiKTsNCj4+Pj4+Pg0KPj4+Pj4+IC1zdGF0aWMgdW5zaWduZWQgaW50IHNlbnNvcl9wcmVmZXJy ZWQgPSAxOw0KPj4+Pj4+IC1tb2R1bGVfcGFyYW0oc2Vuc29yX3ByZWZlcnJlZCwgdWludCwgMDY0 NCk7DQo+Pj4+Pj4gLU1PRFVMRV9QQVJNX0RFU0Moc2Vuc29yX3ByZWZlcnJlZCwNCj4+Pj4+PiAt ICAgICAgICAgICAgICAiU2Vuc29yIGlzIHByZWZlcnJlZCB0byBvdXRwdXQgdGhlIHNwZWNpZmll ZCBmb3JtYXQgKDEtb24gMC1vZmYpLCBkZWZhdWx0IDEiKTsNCj4+Pj4+PiAtDQo+Pj4+Pj4gICAg I2RlZmluZSBJU0NfSVNfRk9STUFUX1JBVyhtYnVzX2NvZGUpIFwNCj4+Pj4+PiAgICAgICAgICgo KG1idXNfY29kZSkgJiAweGYwMDApID09IDB4MzAwMCkNCj4+Pj4+Pg0KPj4+Pj4+IEBAIC0zMzcs NiArMzMyLDEwIEBAIHN0YXRpYyBpbnQgaXNjX3N0YXJ0X3N0cmVhbWluZyhzdHJ1Y3QgdmIyX3F1 ZXVlICp2cSwgdW5zaWduZWQgaW50IGNvdW50KQ0KPj4+Pj4+ICAgICAgICAgdW5zaWduZWQgbG9u ZyBmbGFnczsNCj4+Pj4+PiAgICAgICAgIGludCByZXQ7DQo+Pj4+Pj4NCj4+Pj4+PiArICAgICBy ZXQgPSBtZWRpYV9waXBlbGluZV9zdGFydCgmaXNjLT52aWRlb19kZXYuZW50aXR5LCAmaXNjLT5t cGlwZSk7DQo+Pj4+Pg0KPj4+Pj4gVGhlIHBpcGVsaW5lIHZhbGlkYXRpb24gaXMgZG9uZSBpbiBz dGFydF9zdHJlYW1pbmcsIGJ1dCBJIGRvbid0IHRoaW5rIHRoYXQNCj4+Pj4+IGlzIHRoZSBiZXN0 IHBsYWNlOiBpZiBTVFJFQU1PTiBpcyBjYWxsZWQgYmVmb3JlIGJ1ZmZlcnMgYXJlIHF1ZXVlZCwg dGhlbg0KPj4+Pj4gYW4gaW52YWxpZCBwaXBlbGluZSBpc24ndCBkaXNjb3ZlcmVkIHVudGlsIGVu b3VnaCBidWZmZXJzIGFyZSBxdWV1ZWQgdG8NCj4+Pj4+IGtpY2sgb2ZmIHN0YXJ0X3N0cmVhbWlu Zy4NCj4+Pj4+DQo+Pj4+PiBEcml2ZXJzIGxpa2UgdnNwMSwgb21hcDNpc3AgYW5kIHRoZSBzYW1z dW5nIGRyaXZlcnMgYWxsIGRvIHRoaXMgaW4gc3RyZWFtb24oKS4NCj4+Pj4+DQo+Pj4+PiBJIHRo aW5rIHRoYXQgaXMgdGhlIGNvcnJlY3QgdGltZSB0byBkbyB0aGlzLg0KPj4+Pg0KPj4+PiBIZWxs byBIYW5zLA0KPj4+Pg0KPj4+PiBJbml0aWFsbHkgKHYyLCB2MykgSSBoYWQgdGhpcyBpbiBzdHJl YW1vbigpLiBUaGUgcHJvYmxlbSB0aGF0IEkgZmFjZWQgYXQNCj4+Pj4gdGhhdCB0aW1lIHdhcyB0 aGF0IHN0cmVhbW9mZiB3YXMgbmV2ZXIgY2FsbGVkLCBzbyBJIGNvdWxkIG5vdCBjYWxsDQo+Pj4+ IG1lZGlhX3BpcGVsaW5lX3N0b3AoKS4gVGhlbiBKYWNvcG8gdG9sZCBtZSB0byBtb3ZlIGl0IHRv IHN0YXJ0X3N0cmVhbWluZw0KPj4+PiAoc2VlIGNoYW5nZSBsb2cgZm9yIHY0KSAsIGFuZCBJIGRp ZCBub3QgZmFjZSBhbnkgbW9yZSBwcm9ibGVtcy4NCj4+DQo+PiBZZXMgaW5kZWVkLCBzZWVtcyBJ IHN1Z2dlc3RlZCB0byB1c2UgbWVkaWFfcGlwZWxpbmVfaGFuZGxlciBpbiBhDQo+PiBjb21tZW50 IG9uIHlvdXIgdjMNCj4+DQo+PiAiYXQgc19zdHJlYW0gdGltZSB5b3VyIHRvcCBkcml2ZXIgY2Fs bHMgbWVkaWFfcGlwZWxpbmVfc3RhcnQoKSINCj4+DQo+PiBzb3JyeSBhYm91dCB0aGF0LCBJIHNo b3VsZCBoYXZlIGxvb2tlZCBhcm91bmQgYSBiaXQgbW9yZSBjYXJlZnVsbHkgYW5kDQo+PiBub3Rp Y2UgbW9zdCBkcml2ZXJzIGRvIHNvIGF0IHZiMiBzdHJlYW1vbg0KPj4NCj4+IEhvd2V2ZXIgSSBk b24ndCBzZWUgbWVkaWFfcGlwZWxpbmVfc3RhcnQgYmVpbmcgY2FsbGVkIGF0IGFsbCBpbiB2MyBv Zg0KPj4gdGhlIHBhdGNoDQoNCk5vIG5lZWQgdG8gYmUgc29ycnkuIFlvdXIgc3VnZ2VzdGlvbiB3 YXMgZ29vZCBhbmQgc29tZSBvdGhlciBkcml2ZXJzIGRvIA0KaXQsIGFuZCBpdCB3b3JrcyB3ZWxs LiBXZSB1c2UgdGhpcyBpbiBwcm9kdWN0aW9uIGF0IHRoZSBtb21lbnQuDQpTbyB0aGFuayB5b3Ug Zm9yIHRoYXQuDQoNCj4+DQo+Pj4NCj4+PiBJdCdzIGEgbWVzcy4gTG9va2luZyBhdCBzb21lIGRy aXZlcnMgSSBzZWUgdGhhdCBvbWFwM2lzcCBjYWxscyBtZWRpYV9waXBlbGluZV9zdG9wDQo+Pj4g aW4gc3RyZWFtb2ZmIChzbyB3aWxsIGhhdmUgdGhlIHNhbWUgcHJvYmxlbSBhcyB5b3UgZGVzY3Jp YmVkIGlmIFZJRElPQ19TVFJFQU1PRkYNCj4+PiBpc24ndCBjYWxsZWQpLCBleHlub3M0LWlzIGRv ZXMgdGhlIHNhbWUsIGJ1dCBpdCBhbHNvIGNoZWNrcyB0aGUgc3RyZWFtaW5nIHN0YXRlIGluDQo+ Pj4gdGhlIHJlbGVhc2UoKSBmb3AgY2FsbGJhY2ssIHNvIHRoYXQgd291bGQgZml4IHRoaXMgcHJv YmxlbS4gQW5kIHZpbWMgZG9lcyB0aGlzDQo+Pj4gaW4gc3RvcF9zdHJlYW1pbmcuDQo+Pj4NCj4+ PiBJJ20gaW4gZmF2b3Igb2YgZml4aW5nIHRoaXMgaW4gdmIyLCB0aGF0IGZyYW1ld29yayBrbm93 cyBleGFjdGx5IHdoZW4gdGhpcyBuZWVkcw0KPj4+IHRvIGJlIGNhbGxlZC4NCj4+DQo+PiBBcmUg eW91IHN1Z2dlc3RpbmcgdG8gaGF2ZSB2YjIgdG8gY2FsbCBtZWRpYV9waXBlbGluZV9zdGFydCgp IG9yIGlzIGl0DQo+PiBtb3JlIGNvbXBsZXggdGhhbiB0aGlzID8NCj4gDQo+IE5vLCBJIGRvbid0 IHRoaW5rIHZiMiBzaG91bGQgZG8gdGhhdC4gQnV0IGl0IG5lZWRzIHR3byBuZXcgb3BzOiBwaXBl bGluZV9zdGFydC9zdG9wDQo+IChvciBzb21lIG90aGVyIG5hbWUpIHRoYXQgYXJlIGNhbGxlZCBh dCBWSURJT0NfU1RSRUFNT04gdGltZSBhbmQgd2hlbiB0aGUgc3RyZWFtaW5nDQo+IHN0b3BzIChk dWUgdG8gU1RSRUFNT0ZGIG9yIGJ5IGNsb3NpbmcgdGhlIGZoKS4gVGhlIGRyaXZlciBjYW4gdGhl biB0YWtlIGFwcHJvcHJpYXRlDQo+IGFjdGlvbiwgd2hpY2ggd2lsbCB0eXBpY2FsbHkgYmUgY2Fs bGluZyBtZWRpYV9waXBlbGluZV9zdGFydC9zdG9wLCBidXQgb3RoZXIgY2hlY2tzDQo+IG1heSBh bHNvIGJlIG5lZWRlZCBhdCB0aGF0IHRpbWUuDQoNCkkgY2FuIHRyeSB0byBpbXBsZW1lbnQgdGhp cyBhbmQgdGVzdCB3aXRoIG15IGRyaXZlciwgYW5kIGNvbWUgdXAgd2l0aCBhIA0KcHJvcG9zYWws IGlmIHRoYXQgaXMgZmluZSB3aXRoIHlvdS4NCg0KDQpFdWdlbg0KPiANCj4gUmVnYXJkcywNCj4g DQo+ICAgICAgICAgIEhhbnMNCj4gDQo+Pg0KPj4+DQo+Pj4gSSdkIGxpa2UgdG8ga25vdyB3aGF0 IG90aGVycyB0aGluay4NCj4+Pg0KPj4+IFJlZ2FyZHMsDQo+Pj4NCj4+PiAgICAgICBIYW5zDQo+ Pj4NCj4+Pj4NCj4+Pj4gRXVnZW4NCj4+Pj4NCj4+Pj4+DQo+Pj4+PiBMYXVyZW50LCBKYWNvcG8s IGRvIHlvdSBhZ3JlZSB3aXRoIHRoYXQ/DQo+Pj4+Pg0KPj4+Pj4gSSBub3RpY2UgdGhhdCBxdWl0 ZSBhIGZldyBvdGhlciBkcml2ZXJzIGRvIHRoaXMgaW4gc3RhcnRfc3RyZWFtaW5nIGFzIHdlbGws DQo+Pj4+PiBidXQgSSB0aGluayBpdCBqdXN0IHdlaXJkIHRoYXQgYSBRQlVGIGNhbiByZXR1cm4g RVBJUEUgd2hpbGUgU1RSRUFNT04gbWlnaHQNCj4+Pj4+IHN1Y2NlZWQuDQo+Pj4+Pg0KPj4+Pj4g UGVyaGFwcyB3ZSBuZWVkIGFuIG9wdGlvbmFsIHZiMiB2YWxpZGF0ZSgpIGNhbGxiYWNrIHRoYXQg aXMgY2FsbGVkIGJ5DQo+Pj4+PiB2YjJfY29yZV9zdHJlYW1vbigpIHRvIHZhbGlkYXRlIHRoZSBw aXBlbGluZSBiZWZvcmUgc3RyZWFtaW5nLiBUaGF0IG1ha2VzDQo+Pj4+PiBpdCBlYXNpZXIgdG8g aW1wbGVtZW50IHRoZXNlIGNoZWNrcyByYXRoZXIgdGhhbiBoYXZpbmcgdG8gaW1wbGVtZW50IHlv dXINCj4+Pj4+IG93biBzdHJlYW1vbiBpb2N0bC4NCj4+Pj4+DQo+Pj4+PiBSZWdhcmRzLA0KPj4+ Pj4NCj4+Pj4+ICAgICAgICAgICBIYW5zDQo+Pj4+Pg0KPj4+Pj4+ICsgICAgIGlmIChyZXQpDQo+ Pj4+Pj4gKyAgICAgICAgICAgICBnb3RvIGVycl9waXBlbGluZV9zdGFydDsNCj4+Pj4+PiArDQo+ Pj4+Pj4gICAgICAgICAvKiBFbmFibGUgc3RyZWFtIG9uIHRoZSBzdWIgZGV2aWNlICovDQo+Pj4+ Pj4gICAgICAgICByZXQgPSB2NGwyX3N1YmRldl9jYWxsKGlzYy0+Y3VycmVudF9zdWJkZXYtPnNk LCB2aWRlbywgc19zdHJlYW0sIDEpOw0KPj4+Pj4+ICAgICAgICAgaWYgKHJldCAmJiByZXQgIT0g LUVOT0lPQ1RMQ01EKSB7DQo+Pj4+Pj4gQEAgLTM4NSw2ICszODQsOSBAQCBzdGF0aWMgaW50IGlz Y19zdGFydF9zdHJlYW1pbmcoc3RydWN0IHZiMl9xdWV1ZSAqdnEsIHVuc2lnbmVkIGludCBjb3Vu dCkNCj4+Pj4+PiAgICAgICAgIHY0bDJfc3ViZGV2X2NhbGwoaXNjLT5jdXJyZW50X3N1YmRldi0+ c2QsIHZpZGVvLCBzX3N0cmVhbSwgMCk7DQo+Pj4+Pj4NCj4+Pj4+PiAgICBlcnJfc3RhcnRfc3Ry ZWFtOg0KPj4+Pj4+ICsgICAgIG1lZGlhX3BpcGVsaW5lX3N0b3AoJmlzYy0+dmlkZW9fZGV2LmVu dGl0eSk7DQo+Pj4+Pj4gKw0KPj4+Pj4+ICtlcnJfcGlwZWxpbmVfc3RhcnQ6DQo+Pj4+Pj4gICAg ICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaXNjLT5kbWFfcXVldWVfbG9jaywgZmxhZ3MpOw0KPj4+ Pj4+ICAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShidWYsICZpc2MtPmRtYV9xdWV1ZSwgbGlz dCkNCj4+Pj4+PiAgICAgICAgICAgICAgICAgdmIyX2J1ZmZlcl9kb25lKCZidWYtPnZiLnZiMl9i dWYsIFZCMl9CVUZfU1RBVEVfUVVFVUVEKTsNCj4+Pj4+PiBAQCAtNDIzLDYgKzQyNSw5IEBAIHN0 YXRpYyB2b2lkIGlzY19zdG9wX3N0cmVhbWluZyhzdHJ1Y3QgdmIyX3F1ZXVlICp2cSkNCj4+Pj4+ PiAgICAgICAgIGlmIChyZXQgJiYgcmV0ICE9IC1FTk9JT0NUTENNRCkNCj4+Pj4+PiAgICAgICAg ICAgICAgICAgdjRsMl9lcnIoJmlzYy0+djRsMl9kZXYsICJzdHJlYW0gb2ZmIGZhaWxlZCBpbiBz dWJkZXZcbiIpOw0KPj4+Pj4+DQo+Pj4+Pj4gKyAgICAgLyogU3RvcCBtZWRpYSBwaXBlbGluZSAq Lw0KPj4+Pj4+ICsgICAgIG1lZGlhX3BpcGVsaW5lX3N0b3AoJmlzYy0+dmlkZW9fZGV2LmVudGl0 eSk7DQo+Pj4+Pj4gKw0KPj4+Pj4+ICAgICAgICAgLyogUmVsZWFzZSBhbGwgYWN0aXZlIGJ1ZmZl cnMgKi8NCj4+Pj4+PiAgICAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZpc2MtPmRtYV9xdWV1ZV9s b2NrLCBmbGFncyk7DQo+Pj4+Pj4gICAgICAgICBpZiAodW5saWtlbHkoaXNjLT5jdXJfZnJtKSkg ew0KPj4+Pj4+IEBAIC00NTMsMjIgKzQ1OCw2IEBAIHN0YXRpYyB2b2lkIGlzY19idWZmZXJfcXVl dWUoc3RydWN0IHZiMl9idWZmZXIgKnZiKQ0KPj4+Pj4+ICAgICAgICAgc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmaXNjLT5kbWFfcXVldWVfbG9jaywgZmxhZ3MpOw0KPj4+Pj4+ICAgIH0NCj4+Pj4+ Pg0KPj4+Pj4+IC1zdGF0aWMgc3RydWN0IGlzY19mb3JtYXQgKmZpbmRfZm9ybWF0X2J5X2ZvdXJj YyhzdHJ1Y3QgaXNjX2RldmljZSAqaXNjLA0KPj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZvdXJjYykNCj4+Pj4+PiAtew0K Pj4+Pj4+IC0gICAgIHVuc2lnbmVkIGludCBudW1fZm9ybWF0cyA9IGlzYy0+bnVtX3VzZXJfZm9y bWF0czsNCj4+Pj4+PiAtICAgICBzdHJ1Y3QgaXNjX2Zvcm1hdCAqZm10Ow0KPj4+Pj4+IC0gICAg IHVuc2lnbmVkIGludCBpOw0KPj4+Pj4+IC0NCj4+Pj4+PiAtICAgICBmb3IgKGkgPSAwOyBpIDwg bnVtX2Zvcm1hdHM7IGkrKykgew0KPj4+Pj4+IC0gICAgICAgICAgICAgZm10ID0gaXNjLT51c2Vy X2Zvcm1hdHNbaV07DQo+Pj4+Pj4gLSAgICAgICAgICAgICBpZiAoZm10LT5mb3VyY2MgPT0gZm91 cmNjKQ0KPj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm10Ow0KPj4+Pj4+IC0g ICAgIH0NCj4+Pj4+PiAtDQo+Pj4+Pj4gLSAgICAgcmV0dXJuIE5VTEw7DQo+Pj4+Pj4gLX0NCj4+ Pj4+PiAtDQo+Pj4+Pj4gICAgc3RhdGljIGNvbnN0IHN0cnVjdCB2YjJfb3BzIGlzY192YjJfb3Bz ID0gew0KPj4+Pj4+ICAgICAgICAgLnF1ZXVlX3NldHVwICAgICAgICAgICAgPSBpc2NfcXVldWVf c2V0dXAsDQo+Pj4+Pj4gICAgICAgICAud2FpdF9wcmVwYXJlICAgICAgICAgICA9IHZiMl9vcHNf d2FpdF9wcmVwYXJlLA0KPj4+Pj4+IEBAIC00OTcsMjMgKzQ4Niw1NyBAQCBzdGF0aWMgaW50IGlz Y19lbnVtX2ZtdF92aWRfY2FwKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LA0KPj4+Pj4+ ICAgIHsNCj4+Pj4+PiAgICAgICAgIHN0cnVjdCBpc2NfZGV2aWNlICppc2MgPSB2aWRlb19kcnZk YXRhKGZpbGUpOw0KPj4+Pj4+ICAgICAgICAgdTMyIGluZGV4ID0gZi0+aW5kZXg7DQo+Pj4+Pj4g LSAgICAgdTMyIGksIHN1cHBvcnRlZF9pbmRleDsNCj4+Pj4+PiArICAgICB1MzIgaSwgc3VwcG9y dGVkX2luZGV4ID0gMDsNCj4+Pj4+PiArICAgICBzdHJ1Y3QgaXNjX2Zvcm1hdCAqZm10Ow0KPj4+ Pj4+ICsNCj4+Pj4+PiArICAgICAvKg0KPj4+Pj4+ICsgICAgICAqIElmIHdlIGFyZSBub3QgYXNr ZWQgYSBzcGVjaWZpYyBtYnVzX2NvZGUsIHdlIGhhdmUgdG8gcmVwb3J0IGFsbA0KPj4+Pj4+ICsg ICAgICAqIHRoZSBmb3JtYXRzIHRoYXQgd2UgY2FuIG91dHB1dC4NCj4+Pj4+PiArICAgICAgKi8N Cj4+Pj4+PiArICAgICBpZiAoIWYtPm1idXNfY29kZSkgew0KPj4+Pj4+ICsgICAgICAgICAgICAg aWYgKGluZGV4ID49IGlzYy0+Y29udHJvbGxlcl9mb3JtYXRzX3NpemUpDQo+Pj4+Pj4gKyAgICAg ICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPj4+Pj4+DQo+Pj4+Pj4gLSAgICAgaWYg KGluZGV4IDwgaXNjLT5jb250cm9sbGVyX2Zvcm1hdHNfc2l6ZSkgew0KPj4+Pj4+ICAgICAgICAg ICAgICAgICBmLT5waXhlbGZvcm1hdCA9IGlzYy0+Y29udHJvbGxlcl9mb3JtYXRzW2luZGV4XS5m b3VyY2M7DQo+Pj4+Pj4gKw0KPj4+Pj4+ICsgICAgICAgICAgICAgcmV0dXJuIDA7DQo+Pj4+Pj4g KyAgICAgfQ0KPj4+Pj4+ICsNCj4+Pj4+PiArICAgICAvKg0KPj4+Pj4+ICsgICAgICAqIElmIGEg c3BlY2lmaWMgbWJ1c19jb2RlIGlzIHJlcXVlc3RlZCwgY2hlY2sgaWYgd2Ugc3VwcG9ydA0KPj4+ Pj4+ICsgICAgICAqIHRoaXMgbWJ1c19jb2RlIGFzIGlucHV0IGZvciB0aGUgSVNDLg0KPj4+Pj4+ ICsgICAgICAqIElmIGl0J3Mgc3VwcG9ydGVkLCB0aGVuIHdlIHJlcG9ydCB0aGUgY29ycmVzcG9u ZGluZyBwaXhlbGZvcm1hdA0KPj4+Pj4+ICsgICAgICAqIGFzIGZpcnN0IHBvc3NpYmxlIG9wdGlv biBmb3IgdGhlIElTQy4NCj4+Pj4+PiArICAgICAgKiBFLmcuIG1idXMgTUVESUFfQlVTX0ZNVF9Z VVlWOF8yWDggYW5kIHJlcG9ydA0KPj4+Pj4+ICsgICAgICAqICdZVVlWJyAoWVVZViA0OjI6MikN Cj4+Pj4+PiArICAgICAgKi8NCj4+Pj4+PiArICAgICBmbXQgPSBpc2NfZmluZF9mb3JtYXRfYnlf Y29kZShpc2MsIGYtPm1idXNfY29kZSwgJmkpOw0KPj4+Pj4+ICsgICAgIGlmICghZm10KQ0KPj4+ Pj4+ICsgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+Pj4+Pj4gKw0KPj4+Pj4+ICsgICAg IGlmICghaW5kZXgpIHsNCj4+Pj4+PiArICAgICAgICAgICAgIGYtPnBpeGVsZm9ybWF0ID0gZm10 LT5mb3VyY2M7DQo+Pj4+Pj4gKw0KPj4+Pj4+ICAgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4+ Pj4+PiAgICAgICAgIH0NCj4+Pj4+Pg0KPj4+Pj4+IC0gICAgIGluZGV4IC09IGlzYy0+Y29udHJv bGxlcl9mb3JtYXRzX3NpemU7DQo+Pj4+Pj4gKyAgICAgc3VwcG9ydGVkX2luZGV4Kys7DQo+Pj4+ Pj4NCj4+Pj4+PiAtICAgICBzdXBwb3J0ZWRfaW5kZXggPSAwOw0KPj4+Pj4+ICsgICAgIC8qIElm IHRoZSBpbmRleCBpcyBub3QgcmF3LCB3ZSBkb24ndCBoYXZlIGFueW1vcmUgZm9ybWF0cyB0byBy ZXBvcnQgKi8NCj4+Pj4+PiArICAgICBpZiAoIUlTQ19JU19GT1JNQVRfUkFXKGYtPm1idXNfY29k ZSkpDQo+Pj4+Pj4gKyAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+Pj4+Pg0KPj4+Pj4+ IC0gICAgIGZvciAoaSA9IDA7IGkgPCBpc2MtPmZvcm1hdHNfbGlzdF9zaXplOyBpKyspIHsNCj4+ Pj4+PiAtICAgICAgICAgICAgIGlmICghSVNDX0lTX0ZPUk1BVF9SQVcoaXNjLT5mb3JtYXRzX2xp c3RbaV0ubWJ1c19jb2RlKSB8fA0KPj4+Pj4+IC0gICAgICAgICAgICAgICAgICFpc2MtPmZvcm1h dHNfbGlzdFtpXS5zZF9zdXBwb3J0KQ0KPj4+Pj4+ICsgICAgIC8qDQo+Pj4+Pj4gKyAgICAgICog V2UgYXJlIGFza2VkIGZvciBhIHNwZWNpZmljIG1idXMgY29kZSwgd2hpY2ggaXMgcmF3Lg0KPj4+ Pj4+ICsgICAgICAqIFdlIGhhdmUgdG8gc2VhcmNoIHRocm91Z2ggdGhlIGZvcm1hdHMgd2UgY2Fu IGNvbnZlcnQgdG8uDQo+Pj4+Pj4gKyAgICAgICogV2UgaGF2ZSB0byBza2lwIHRoZSByYXcgZm9y bWF0cywgd2UgY2Fubm90IGNvbnZlcnQgdG8gcmF3Lg0KPj4+Pj4+ICsgICAgICAqIEUuZy4gJ0FS MTInICgxNi1iaXQgQVJHQiA0LTQtNC00KSwgJ0FSMTUnICgxNi1iaXQgQVJHQiAxLTUtNS01KSwg ZXRjLg0KPj4+Pj4+ICsgICAgICAqLw0KPj4+Pj4+ICsgICAgIGZvciAoaSA9IDA7IGkgPCBpc2Mt PmNvbnRyb2xsZXJfZm9ybWF0c19zaXplOyBpKyspIHsNCj4+Pj4+PiArICAgICAgICAgICAgIGlm IChpc2MtPmNvbnRyb2xsZXJfZm9ybWF0c1tpXS5yYXcpDQo+Pj4+Pj4gICAgICAgICAgICAgICAg ICAgICAgICAgY29udGludWU7DQo+Pj4+Pj4gLSAgICAgICAgICAgICBpZiAoc3VwcG9ydGVkX2lu ZGV4ID09IGluZGV4KSB7DQo+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgIGYtPnBpeGVsZm9y bWF0ID0gaXNjLT5mb3JtYXRzX2xpc3RbaV0uZm91cmNjOw0KPj4+Pj4+ICsgICAgICAgICAgICAg aWYgKGluZGV4ID09IHN1cHBvcnRlZF9pbmRleCkgew0KPj4+Pj4+ICsgICAgICAgICAgICAgICAg ICAgICBmLT5waXhlbGZvcm1hdCA9IGlzYy0+Y29udHJvbGxlcl9mb3JtYXRzW2ldLmZvdXJjYzsN Cj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4+Pj4+PiAgICAgICAg ICAgICAgICAgfQ0KPj4+Pj4+ICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRfaW5kZXgrKzsNCj4+ Pj4+PiBAQCAtNTg0LDIwICs2MDcsMzAgQEAgc3RhdGljIGludCBpc2NfdHJ5X3ZhbGlkYXRlX2Zv cm1hdHMoc3RydWN0IGlzY19kZXZpY2UgKmlzYykNCj4+Pj4+PiAgICAgICAgICAgICAgICAgYnJl YWs7DQo+Pj4+Pj4gICAgICAgICBkZWZhdWx0Og0KPj4+Pj4+ICAgICAgICAgLyogYW55IG90aGVy IGRpZmZlcmVudCBmb3JtYXRzIGFyZSBub3Qgc3VwcG9ydGVkICovDQo+Pj4+Pj4gKyAgICAgICAg ICAgICB2NGwyX2VycigmaXNjLT52NGwyX2RldiwgIlJlcXVlc3RlZCB1bnN1cHBvcnRlZCBmb3Jt YXQuXG4iKTsNCj4+Pj4+PiAgICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsNCj4+Pj4+PiAg ICAgICAgIH0NCj4+Pj4+PiAgICAgICAgIHY0bDJfZGJnKDEsIGRlYnVnLCAmaXNjLT52NGwyX2Rl diwNCj4+Pj4+PiAgICAgICAgICAgICAgICAgICJGb3JtYXQgdmFsaWRhdGlvbiwgcmVxdWVzdGVk IHJnYj0ldSwgeXV2PSV1LCBncmV5PSV1LCBiYXllcj0ldVxuIiwNCj4+Pj4+PiAgICAgICAgICAg ICAgICAgIHJnYiwgeXV2LCBncmV5LCBiYXllcik7DQo+Pj4+Pj4NCj4+Pj4+PiAtICAgICAvKiB3 ZSBjYW5ub3Qgb3V0cHV0IFJBVyBpZiB3ZSBkbyBub3QgcmVjZWl2ZSBSQVcgKi8NCj4+Pj4+PiAt ICAgICBpZiAoKGJheWVyKSAmJiAhSVNDX0lTX0ZPUk1BVF9SQVcoaXNjLT50cnlfY29uZmlnLnNk X2Zvcm1hdC0+bWJ1c19jb2RlKSkNCj4+Pj4+PiArICAgICBpZiAoYmF5ZXIgJiYNCj4+Pj4+PiAr ICAgICAgICAgIUlTQ19JU19GT1JNQVRfUkFXKGlzYy0+dHJ5X2NvbmZpZy5zZF9mb3JtYXQtPm1i dXNfY29kZSkpIHsNCj4+Pj4+PiArICAgICAgICAgICAgIHY0bDJfZXJyKCZpc2MtPnY0bDJfZGV2 LCAiQ2Fubm90IG91dHB1dCBSQVcgaWYgd2UgZG8gbm90IHJlY2VpdmUgUkFXLlxuIik7DQo+Pj4+ Pj4gICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPj4+Pj4+ICsgICAgIH0NCj4+Pj4+ Pg0KPj4+Pj4+IC0gICAgIC8qIHdlIGNhbm5vdCBvdXRwdXQgR1JFWSBpZiB3ZSBkbyBub3QgcmVj ZWl2ZSBSQVcvR1JFWSAqLw0KPj4+Pj4+ICAgICAgICAgaWYgKGdyZXkgJiYgIUlTQ19JU19GT1JN QVRfUkFXKGlzYy0+dHJ5X2NvbmZpZy5zZF9mb3JtYXQtPm1idXNfY29kZSkgJiYNCj4+Pj4+PiAt ICAgICAgICAgIUlTQ19JU19GT1JNQVRfR1JFWShpc2MtPnRyeV9jb25maWcuc2RfZm9ybWF0LT5t YnVzX2NvZGUpKQ0KPj4+Pj4+ICsgICAgICAgICAhSVNDX0lTX0ZPUk1BVF9HUkVZKGlzYy0+dHJ5 X2NvbmZpZy5zZF9mb3JtYXQtPm1idXNfY29kZSkpIHsNCj4+Pj4+PiArICAgICAgICAgICAgIHY0 bDJfZXJyKCZpc2MtPnY0bDJfZGV2LCAiQ2Fubm90IG91dHB1dCBHUkVZIGlmIHdlIGRvIG5vdCBy ZWNlaXZlIFJBVy9HUkVZLlxuIik7DQo+Pj4+Pj4gICAgICAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOw0KPj4+Pj4+ICsgICAgIH0NCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAgaWYgKChyZ2IgfHwg YmF5ZXIgfHwgeXV2KSAmJg0KPj4+Pj4+ICsgICAgICAgICBJU0NfSVNfRk9STUFUX0dSRVkoaXNj LT50cnlfY29uZmlnLnNkX2Zvcm1hdC0+bWJ1c19jb2RlKSkgew0KPj4+Pj4+ICsgICAgICAgICAg ICAgdjRsMl9lcnIoJmlzYy0+djRsMl9kZXYsICJDYW5ub3QgY29udmVydCBHUkVZIHRvIGFub3Ro ZXIgZm9ybWF0LlxuIik7DQo+Pj4+Pj4gKyAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ Pj4+PiArICAgICB9DQo+Pj4+Pj4NCj4+Pj4+PiAgICAgICAgIHJldHVybiByZXQ7DQo+Pj4+Pj4g ICAgfQ0KPj4+Pj4+IEBAIC04MjUsNyArODU4LDcgQEAgc3RhdGljIHZvaWQgaXNjX3RyeV9mc2Uo c3RydWN0IGlzY19kZXZpY2UgKmlzYywNCj4+Pj4+PiAgICAgICAgICAqIElmIHdlIGRvIG5vdCBr bm93IHlldCB3aGljaCBmb3JtYXQgdGhlIHN1YmRldiBpcyB1c2luZywgd2UgY2Fubm90DQo+Pj4+ Pj4gICAgICAgICAgKiBkbyBhbnl0aGluZy4NCj4+Pj4+PiAgICAgICAgICAqLw0KPj4+Pj4+IC0g ICAgIGlmICghaXNjLT50cnlfY29uZmlnLnNkX2Zvcm1hdCkNCj4+Pj4+PiArICAgICBpZiAoIWlz Yy0+Y29uZmlnLnNkX2Zvcm1hdCkNCj4+Pj4+PiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPj4+ Pj4+DQo+Pj4+Pj4gICAgICAgICBmc2UuY29kZSA9IGlzYy0+dHJ5X2NvbmZpZy5zZF9mb3JtYXQt Pm1idXNfY29kZTsNCj4+Pj4+PiBAQCAtODQ2LDE4MCArODc5LDE0MCBAQCBzdGF0aWMgdm9pZCBp c2NfdHJ5X2ZzZShzdHJ1Y3QgaXNjX2RldmljZSAqaXNjLA0KPj4+Pj4+ICAgICAgICAgfQ0KPj4+ Pj4+ICAgIH0NCj4+Pj4+Pg0KPj4+Pj4+IC1zdGF0aWMgaW50IGlzY190cnlfZm10KHN0cnVjdCBp c2NfZGV2aWNlICppc2MsIHN0cnVjdCB2NGwyX2Zvcm1hdCAqZiwNCj4+Pj4+PiAtICAgICAgICAg ICAgICAgICAgICAgdTMyICpjb2RlKQ0KPj4+Pj4+ICtzdGF0aWMgaW50IGlzY190cnlfZm10KHN0 cnVjdCBpc2NfZGV2aWNlICppc2MsIHN0cnVjdCB2NGwyX2Zvcm1hdCAqZikNCj4+Pj4+PiAgICB7 DQo+Pj4+Pj4gLSAgICAgaW50IGk7DQo+Pj4+Pj4gLSAgICAgc3RydWN0IGlzY19mb3JtYXQgKnNk X2ZtdCA9IE5VTEwsICpkaXJlY3RfZm10ID0gTlVMTDsNCj4+Pj4+PiAgICAgICAgIHN0cnVjdCB2 NGwyX3BpeF9mb3JtYXQgKnBpeGZtdCA9ICZmLT5mbXQucGl4Ow0KPj4+Pj4+IC0gICAgIHN0cnVj dCB2NGwyX3N1YmRldl9wYWRfY29uZmlnIHBhZF9jZmcgPSB7fTsNCj4+Pj4+PiAtICAgICBzdHJ1 Y3QgdjRsMl9zdWJkZXZfc3RhdGUgcGFkX3N0YXRlID0gew0KPj4+Pj4+IC0gICAgICAgICAgICAg LnBhZHMgPSAmcGFkX2NmZw0KPj4+Pj4+IC0gICAgICAgICAgICAgfTsNCj4+Pj4+PiAtICAgICBz dHJ1Y3QgdjRsMl9zdWJkZXZfZm9ybWF0IGZvcm1hdCA9IHsNCj4+Pj4+PiAtICAgICAgICAgICAg IC53aGljaCA9IFY0TDJfU1VCREVWX0ZPUk1BVF9UUlksDQo+Pj4+Pj4gLSAgICAgfTsNCj4+Pj4+ PiAtICAgICB1MzIgbWJ1c19jb2RlOw0KPj4+Pj4+IC0gICAgIGludCByZXQ7DQo+Pj4+Pj4gLSAg ICAgYm9vbCBybHBfZG1hX2RpcmVjdF9kdW1wID0gZmFsc2U7DQo+Pj4+Pj4gKyAgICAgdW5zaWdu ZWQgaW50IGk7DQo+Pj4+Pj4NCj4+Pj4+PiAgICAgICAgIGlmIChmLT50eXBlICE9IFY0TDJfQlVG X1RZUEVfVklERU9fQ0FQVFVSRSkNCj4+Pj4+PiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5W QUw7DQo+Pj4+Pj4NCj4+Pj4+PiAtICAgICAvKiBTdGVwIDE6IGZpbmQgYSBSQVcgZm9ybWF0IHRo YXQgaXMgc3VwcG9ydGVkICovDQo+Pj4+Pj4gLSAgICAgZm9yIChpID0gMDsgaSA8IGlzYy0+bnVt X3VzZXJfZm9ybWF0czsgaSsrKSB7DQo+Pj4+Pj4gLSAgICAgICAgICAgICBpZiAoSVNDX0lTX0ZP Uk1BVF9SQVcoaXNjLT51c2VyX2Zvcm1hdHNbaV0tPm1idXNfY29kZSkpIHsNCj4+Pj4+PiAtICAg ICAgICAgICAgICAgICAgICAgc2RfZm10ID0gaXNjLT51c2VyX2Zvcm1hdHNbaV07DQo+Pj4+Pj4g KyAgICAgaXNjLT50cnlfY29uZmlnLmZvdXJjYyA9IGlzYy0+Y29udHJvbGxlcl9mb3JtYXRzWzBd LmZvdXJjYzsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAgLyogZmluZCBpZiB0aGUgZm9ybWF0IHJl cXVlc3RlZCBpcyBzdXBwb3J0ZWQgKi8NCj4+Pj4+PiArICAgICBmb3IgKGkgPSAwOyBpIDwgaXNj LT5jb250cm9sbGVyX2Zvcm1hdHNfc2l6ZTsgaSsrKQ0KPj4+Pj4+ICsgICAgICAgICAgICAgaWYg KGlzYy0+Y29udHJvbGxlcl9mb3JtYXRzW2ldLmZvdXJjYyA9PSBwaXhmbXQtPnBpeGVsZm9ybWF0 KSB7DQo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIGlzYy0+dHJ5X2NvbmZpZy5mb3VyY2Mg PSBwaXhmbXQtPnBpeGVsZm9ybWF0Ow0KPj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOw0KPj4+Pj4+ICAgICAgICAgICAgICAgICB9DQo+Pj4+Pj4gLSAgICAgfQ0KPj4+Pj4+IC0g ICAgIC8qIFN0ZXAgMjogV2UgY2FuIGNvbnRpbnVlIHdpdGggdGhpcyBSQVcgZm9ybWF0LCBvciB3 ZSBjYW4gbG9vaw0KPj4+Pj4+IC0gICAgICAqIGZvciBiZXR0ZXI6IG1heWJlIHNlbnNvciBzdXBw b3J0cyBkaXJlY3RseSB3aGF0IHdlIG5lZWQuDQo+Pj4+Pj4gLSAgICAgICovDQo+Pj4+Pj4gLSAg ICAgZGlyZWN0X2ZtdCA9IGZpbmRfZm9ybWF0X2J5X2ZvdXJjYyhpc2MsIHBpeGZtdC0+cGl4ZWxm b3JtYXQpOw0KPj4+Pj4+IC0NCj4+Pj4+PiAtICAgICAvKiBTdGVwIDM6IFdlIGhhdmUgYm90aC4g V2UgZGVjaWRlIGdpdmVuIHRoZSBtb2R1bGUgcGFyYW1ldGVyIHdoaWNoDQo+Pj4+Pj4gLSAgICAg ICogb25lIHRvIHVzZS4NCj4+Pj4+PiAtICAgICAgKi8NCj4+Pj4+PiAtICAgICBpZiAoZGlyZWN0 X2ZtdCAmJiBzZF9mbXQgJiYgc2Vuc29yX3ByZWZlcnJlZCkNCj4+Pj4+PiAtICAgICAgICAgICAg IHNkX2ZtdCA9IGRpcmVjdF9mbXQ7DQo+Pj4+Pj4gLQ0KPj4+Pj4+IC0gICAgIC8qIFN0ZXAgNDog d2UgZG8gbm90IGhhdmUgUkFXIGJ1dCB3ZSBoYXZlIGEgZGlyZWN0IGZvcm1hdC4gVXNlIGl0LiAq Lw0KPj4+Pj4+IC0gICAgIGlmIChkaXJlY3RfZm10ICYmICFzZF9mbXQpDQo+Pj4+Pj4gLSAgICAg ICAgICAgICBzZF9mbXQgPSBkaXJlY3RfZm10Ow0KPj4+Pj4+IC0NCj4+Pj4+PiAtICAgICAvKiBT dGVwIDU6IGlmIHdlIGFyZSB1c2luZyBhIGRpcmVjdCBmb3JtYXQsIHdlIG5lZWQgdG8gcGFja2Fn ZQ0KPj4+Pj4+IC0gICAgICAqIGV2ZXJ5dGhpbmcgYXMgOCBiaXQgZGF0YSBhbmQganVzdCBkdW1w IGl0DQo+Pj4+Pj4gLSAgICAgICovDQo+Pj4+Pj4gLSAgICAgaWYgKHNkX2ZtdCA9PSBkaXJlY3Rf Zm10KQ0KPj4+Pj4+IC0gICAgICAgICAgICAgcmxwX2RtYV9kaXJlY3RfZHVtcCA9IHRydWU7DQo+ Pj4+Pj4gLQ0KPj4+Pj4+IC0gICAgIC8qIFN0ZXAgNjogV2UgaGF2ZSBubyBmb3JtYXQuIFRoaXMg Y2FuIGhhcHBlbiBpZiB0aGUgdXNlcnNwYWNlDQo+Pj4+Pj4gLSAgICAgICogcmVxdWVzdHMgc29t ZSB3ZWlyZC9pbnZhbGlkIGZvcm1hdC4NCj4+Pj4+PiAtICAgICAgKiBJbiB0aGlzIGNhc2UsIGRl ZmF1bHQgdG8gd2hhdGV2ZXIgd2UgaGF2ZQ0KPj4+Pj4+IC0gICAgICAqLw0KPj4+Pj4+IC0gICAg IGlmICghc2RfZm10ICYmICFkaXJlY3RfZm10KSB7DQo+Pj4+Pj4gLSAgICAgICAgICAgICBzZF9m bXQgPSBpc2MtPnVzZXJfZm9ybWF0c1tpc2MtPm51bV91c2VyX2Zvcm1hdHMgLSAxXTsNCj4+Pj4+ PiAtICAgICAgICAgICAgIHY0bDJfZGJnKDEsIGRlYnVnLCAmaXNjLT52NGwyX2RldiwNCj4+Pj4+ PiAtICAgICAgICAgICAgICAgICAgICAgICJTZW5zb3Igbm90IHN1cHBvcnRpbmcgJS40cywgdXNp bmcgJS40c1xuIiwNCj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgIChjaGFyICopJnBpeGZt dC0+cGl4ZWxmb3JtYXQsIChjaGFyICopJnNkX2ZtdC0+Zm91cmNjKTsNCj4+Pj4+PiAtICAgICB9 DQo+Pj4+Pj4gLQ0KPj4+Pj4+IC0gICAgIGlmICghc2RfZm10KSB7DQo+Pj4+Pj4gLSAgICAgICAg ICAgICByZXQgPSAtRUlOVkFMOw0KPj4+Pj4+IC0gICAgICAgICAgICAgZ290byBpc2NfdHJ5X2Zt dF9lcnI7DQo+Pj4+Pj4gLSAgICAgfQ0KPj4+Pj4+IC0NCj4+Pj4+PiAtICAgICAvKiBTdGVwIDc6 IFByaW50IG91dCB3aGF0IHdlIGRlY2lkZWQgZm9yIGRlYnVnZ2luZyAqLw0KPj4+Pj4+IC0gICAg IHY0bDJfZGJnKDEsIGRlYnVnLCAmaXNjLT52NGwyX2RldiwNCj4+Pj4+PiAtICAgICAgICAgICAg ICAiUHJlZmVycmluZyB0byBoYXZlIHNlbnNvciB1c2luZyBmb3JtYXQgJS40c1xuIiwNCj4+Pj4+ PiAtICAgICAgICAgICAgICAoY2hhciAqKSZzZF9mbXQtPmZvdXJjYyk7DQo+Pj4+Pj4NCj4+Pj4+ PiAtICAgICAvKiBTdGVwIDg6IGF0IHRoaXMgbW9tZW50IHdlIGRlY2lkZWQgd2hpY2ggZm9ybWF0 IHRoZSBzdWJkZXYgd2lsbCB1c2UgKi8NCj4+Pj4+PiAtICAgICBpc2MtPnRyeV9jb25maWcuc2Rf Zm9ybWF0ID0gc2RfZm10Ow0KPj4+Pj4+ICsgICAgIGlzY190cnlfY29uZmlndXJlX3JscF9kbWEo aXNjLCBmYWxzZSk7DQo+Pj4+Pj4NCj4+Pj4+PiAgICAgICAgIC8qIExpbWl0IHRvIEF0bWVsIElT QyBoYXJkd2FyZSBjYXBhYmlsaXRpZXMgKi8NCj4+Pj4+PiAtICAgICBpZiAocGl4Zm10LT53aWR0 aCA+IGlzYy0+bWF4X3dpZHRoKQ0KPj4+Pj4+IC0gICAgICAgICAgICAgcGl4Zm10LT53aWR0aCA9 IGlzYy0+bWF4X3dpZHRoOw0KPj4+Pj4+IC0gICAgIGlmIChwaXhmbXQtPmhlaWdodCA+IGlzYy0+ bWF4X2hlaWdodCkNCj4+Pj4+PiAtICAgICAgICAgICAgIHBpeGZtdC0+aGVpZ2h0ID0gaXNjLT5t YXhfaGVpZ2h0Ow0KPj4+Pj4+IC0NCj4+Pj4+PiAtICAgICAvKg0KPj4+Pj4+IC0gICAgICAqIFRo ZSBtYnVzIGZvcm1hdCBpcyB0aGUgb25lIHRoZSBzdWJkZXYgb3V0cHV0cy4NCj4+Pj4+PiAtICAg ICAgKiBUaGUgcGl4ZWxzIHdpbGwgYmUgdHJhbnNmZXJyZWQgaW4gdGhpcyBmb3JtYXQgU2Vuc29y IC0+IElTQw0KPj4+Pj4+IC0gICAgICAqLw0KPj4+Pj4+IC0gICAgIG1idXNfY29kZSA9IHNkX2Zt dC0+bWJ1c19jb2RlOw0KPj4+Pj4+IC0NCj4+Pj4+PiAtICAgICAvKg0KPj4+Pj4+IC0gICAgICAq IFZhbGlkYXRlIGZvcm1hdHMuIElmIHRoZSByZXF1aXJlZCBmb3JtYXQgaXMgbm90IE9LLCBkZWZh dWx0IHRvIHJhdy4NCj4+Pj4+PiAtICAgICAgKi8NCj4+Pj4+PiAtDQo+Pj4+Pj4gLSAgICAgaXNj LT50cnlfY29uZmlnLmZvdXJjYyA9IHBpeGZtdC0+cGl4ZWxmb3JtYXQ7DQo+Pj4+Pj4gLQ0KPj4+ Pj4+IC0gICAgIGlmIChpc2NfdHJ5X3ZhbGlkYXRlX2Zvcm1hdHMoaXNjKSkgew0KPj4+Pj4+IC0g ICAgICAgICAgICAgcGl4Zm10LT5waXhlbGZvcm1hdCA9IGlzYy0+dHJ5X2NvbmZpZy5mb3VyY2Mg PSBzZF9mbXQtPmZvdXJjYzsNCj4+Pj4+PiAtICAgICAgICAgICAgIC8qIFJlLXRyeSB0byB2YWxp ZGF0ZSB0aGUgbmV3IGZvcm1hdCAqLw0KPj4+Pj4+IC0gICAgICAgICAgICAgcmV0ID0gaXNjX3Ry eV92YWxpZGF0ZV9mb3JtYXRzKGlzYyk7DQo+Pj4+Pj4gLSAgICAgICAgICAgICBpZiAocmV0KQ0K Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICBnb3RvIGlzY190cnlfZm10X2VycjsNCj4+Pj4+ PiAtICAgICB9DQo+Pj4+Pj4gLQ0KPj4+Pj4+IC0gICAgIHJldCA9IGlzY190cnlfY29uZmlndXJl X3JscF9kbWEoaXNjLCBybHBfZG1hX2RpcmVjdF9kdW1wKTsNCj4+Pj4+PiAtICAgICBpZiAocmV0 KQ0KPj4+Pj4+IC0gICAgICAgICAgICAgZ290byBpc2NfdHJ5X2ZtdF9lcnI7DQo+Pj4+Pj4gLQ0K Pj4+Pj4+IC0gICAgIHJldCA9IGlzY190cnlfY29uZmlndXJlX3BpcGVsaW5lKGlzYyk7DQo+Pj4+ Pj4gLSAgICAgaWYgKHJldCkNCj4+Pj4+PiAtICAgICAgICAgICAgIGdvdG8gaXNjX3RyeV9mbXRf ZXJyOw0KPj4+Pj4+IC0NCj4+Pj4+PiAtICAgICAvKiBPYnRhaW4gZnJhbWUgc2l6ZXMgaWYgcG9z c2libGUgdG8gaGF2ZSBjcm9wIHJlcXVpcmVtZW50cyByZWFkeSAqLw0KPj4+Pj4+IC0gICAgIGlz Y190cnlfZnNlKGlzYywgJnBhZF9zdGF0ZSk7DQo+Pj4+Pj4gLQ0KPj4+Pj4+IC0gICAgIHY0bDJf ZmlsbF9tYnVzX2Zvcm1hdCgmZm9ybWF0LmZvcm1hdCwgcGl4Zm10LCBtYnVzX2NvZGUpOw0KPj4+ Pj4+IC0gICAgIHJldCA9IHY0bDJfc3ViZGV2X2NhbGwoaXNjLT5jdXJyZW50X3N1YmRldi0+c2Qs IHBhZCwgc2V0X2ZtdCwNCj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwYWRf c3RhdGUsICZmb3JtYXQpOw0KPj4+Pj4+IC0gICAgIGlmIChyZXQgPCAwKQ0KPj4+Pj4+IC0gICAg ICAgICAgICAgZ290byBpc2NfdHJ5X2ZtdF9zdWJkZXZfZXJyOw0KPj4+Pj4+IC0NCj4+Pj4+PiAt ICAgICB2NGwyX2ZpbGxfcGl4X2Zvcm1hdChwaXhmbXQsICZmb3JtYXQuZm9ybWF0KTsNCj4+Pj4+ PiArICAgICB2NGxfYm91bmRfYWxpZ25faW1hZ2UoJnBpeGZtdC0+d2lkdGgsIDE2LCBpc2MtPm1h eF93aWR0aCwgMCwNCj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBpeGZtdC0+ aGVpZ2h0LCAxNiwgaXNjLT5tYXhfaGVpZ2h0LCAwLCAwKTsNCj4+Pj4+PiArICAgICAvKiBJZiB3 ZSBkaWQgbm90IGZpbmQgdGhlIHJlcXVlc3RlZCBmb3JtYXQsIHdlIHdpbGwgZmFsbGJhY2sgaGVy ZSAqLw0KPj4+Pj4+ICsgICAgIHBpeGZtdC0+cGl4ZWxmb3JtYXQgPSBpc2MtPnRyeV9jb25maWcu Zm91cmNjOw0KPj4+Pj4+ICsgICAgIHBpeGZtdC0+Y29sb3JzcGFjZSA9IFY0TDJfQ09MT1JTUEFD RV9TUkdCOw0KPj4+Pj4+ICsgICAgIHBpeGZtdC0+ZmllbGQgPSBWNEwyX0ZJRUxEX05PTkU7DQo+ Pj4+Pj4NCj4+Pj4+PiAtICAgICAvKiBMaW1pdCB0byBBdG1lbCBJU0MgaGFyZHdhcmUgY2FwYWJp bGl0aWVzICovDQo+Pj4+Pj4gLSAgICAgaWYgKHBpeGZtdC0+d2lkdGggPiBpc2MtPm1heF93aWR0 aCkNCj4+Pj4+PiAtICAgICAgICAgICAgIHBpeGZtdC0+d2lkdGggPSBpc2MtPm1heF93aWR0aDsN Cj4+Pj4+PiAtICAgICBpZiAocGl4Zm10LT5oZWlnaHQgPiBpc2MtPm1heF9oZWlnaHQpDQo+Pj4+ Pj4gLSAgICAgICAgICAgICBwaXhmbXQtPmhlaWdodCA9IGlzYy0+bWF4X2hlaWdodDsNCj4+Pj4+ Pg0KPj4+Pj4+IC0gICAgIHBpeGZtdC0+ZmllbGQgPSBWNEwyX0ZJRUxEX05PTkU7DQo+Pj4+Pj4g ICAgICAgICBwaXhmbXQtPmJ5dGVzcGVybGluZSA9IChwaXhmbXQtPndpZHRoICogaXNjLT50cnlf Y29uZmlnLmJwcF92NGwyKSA+PiAzOw0KPj4+Pj4+ICAgICAgICAgcGl4Zm10LT5zaXplaW1hZ2Ug PSAoKHBpeGZtdC0+d2lkdGggKiBpc2MtPnRyeV9jb25maWcuYnBwKSA+PiAzKSAqDQo+Pj4+Pj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhmbXQtPmhlaWdodDsNCj4+Pj4+Pg0KPj4+ Pj4+IC0gICAgIGlmIChjb2RlKQ0KPj4+Pj4+IC0gICAgICAgICAgICAgKmNvZGUgPSBtYnVzX2Nv ZGU7DQo+Pj4+Pj4gKyAgICAgaXNjLT50cnlfZm10ID0gKmY7DQo+Pj4+Pj4NCj4+Pj4+PiAgICAg ICAgIHJldHVybiAwOw0KPj4+Pj4+ICt9DQo+Pj4+Pj4NCj4+Pj4+PiAtaXNjX3RyeV9mbXRfZXJy Og0KPj4+Pj4+IC0gICAgIHY0bDJfZXJyKCZpc2MtPnY0bDJfZGV2LCAiQ291bGQgbm90IGZpbmQg YW55IHBvc3NpYmxlIGZvcm1hdCBmb3IgYSB3b3JraW5nIHBpcGVsaW5lXG4iKTsNCj4+Pj4+PiAt aXNjX3RyeV9mbXRfc3ViZGV2X2VycjoNCj4+Pj4+PiAtICAgICBtZW1zZXQoJmlzYy0+dHJ5X2Nv bmZpZywgMCwgc2l6ZW9mKGlzYy0+dHJ5X2NvbmZpZykpOw0KPj4+Pj4+ICtzdGF0aWMgaW50IGlz Y19zZXRfZm10KHN0cnVjdCBpc2NfZGV2aWNlICppc2MsIHN0cnVjdCB2NGwyX2Zvcm1hdCAqZikN Cj4+Pj4+PiArew0KPj4+Pj4+ICsgICAgIGlzY190cnlfZm10KGlzYywgZik7DQo+Pj4+Pj4NCj4+ Pj4+PiAtICAgICByZXR1cm4gcmV0Ow0KPj4+Pj4+ICsgICAgIC8qIG1ha2UgdGhlIHRyeSBjb25m aWd1cmF0aW9uIGFjdGl2ZSAqLw0KPj4+Pj4+ICsgICAgIGlzYy0+Y29uZmlnID0gaXNjLT50cnlf Y29uZmlnOw0KPj4+Pj4+ICsgICAgIGlzYy0+Zm10ID0gaXNjLT50cnlfZm10Ow0KPj4+Pj4+ICsN Cj4+Pj4+PiArICAgICB2NGwyX2RiZygxLCBkZWJ1ZywgJmlzYy0+djRsMl9kZXYsICJJU0Mgc2V0 X2ZtdCB0byAlLjRzIEAlZHglZFxuIiwNCj4+Pj4+PiArICAgICAgICAgICAgICAoY2hhciAqKSZm LT5mbXQucGl4LnBpeGVsZm9ybWF0LA0KPj4+Pj4+ICsgICAgICAgICAgICAgIGYtPmZtdC5waXgu d2lkdGgsIGYtPmZtdC5waXguaGVpZ2h0KTsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAgcmV0dXJu IDA7DQo+Pj4+Pj4gICAgfQ0KPj4+Pj4+DQo+Pj4+Pj4gLXN0YXRpYyBpbnQgaXNjX3NldF9mbXQo c3RydWN0IGlzY19kZXZpY2UgKmlzYywgc3RydWN0IHY0bDJfZm9ybWF0ICpmKQ0KPj4+Pj4+ICtz dGF0aWMgaW50IGlzY192YWxpZGF0ZShzdHJ1Y3QgaXNjX2RldmljZSAqaXNjKQ0KPj4+Pj4+ICAg IHsNCj4+Pj4+PiArICAgICBpbnQgcmV0Ow0KPj4+Pj4+ICsgICAgIGludCBpOw0KPj4+Pj4+ICsg ICAgIHN0cnVjdCBpc2NfZm9ybWF0ICpzZF9mbXQgPSBOVUxMOw0KPj4+Pj4+ICsgICAgIHN0cnVj dCB2NGwyX3BpeF9mb3JtYXQgKnBpeGZtdCA9ICZpc2MtPmZtdC5mbXQucGl4Ow0KPj4+Pj4+ICAg ICAgICAgc3RydWN0IHY0bDJfc3ViZGV2X2Zvcm1hdCBmb3JtYXQgPSB7DQo+Pj4+Pj4gICAgICAg ICAgICAgICAgIC53aGljaCA9IFY0TDJfU1VCREVWX0ZPUk1BVF9BQ1RJVkUsDQo+Pj4+Pj4gKyAg ICAgICAgICAgICAucGFkID0gaXNjLT5yZW1vdGVfcGFkLA0KPj4+Pj4+ICsgICAgIH07DQo+Pj4+ Pj4gKyAgICAgc3RydWN0IHY0bDJfc3ViZGV2X3BhZF9jb25maWcgcGFkX2NmZyA9IHt9Ow0KPj4+ Pj4+ICsgICAgIHN0cnVjdCB2NGwyX3N1YmRldl9zdGF0ZSBwYWRfc3RhdGUgPSB7DQo+Pj4+Pj4g KyAgICAgICAgICAgICAucGFkcyA9ICZwYWRfY2ZnLA0KPj4+Pj4+ICAgICAgICAgfTsNCj4+Pj4+ PiAtICAgICB1MzIgbWJ1c19jb2RlID0gMDsNCj4+Pj4+PiAtICAgICBpbnQgcmV0Ow0KPj4+Pj4+ DQo+Pj4+Pj4gLSAgICAgcmV0ID0gaXNjX3RyeV9mbXQoaXNjLCBmLCAmbWJ1c19jb2RlKTsNCj4+ Pj4+PiArICAgICAvKiBHZXQgY3VycmVudCBmb3JtYXQgZnJvbSBzdWJkZXYgKi8NCj4+Pj4+PiAr ICAgICByZXQgPSB2NGwyX3N1YmRldl9jYWxsKGlzYy0+Y3VycmVudF9zdWJkZXYtPnNkLCBwYWQs IGdldF9mbXQsIE5VTEwsDQo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9y bWF0KTsNCj4+Pj4+PiAgICAgICAgIGlmIChyZXQpDQo+Pj4+Pj4gICAgICAgICAgICAgICAgIHJl dHVybiByZXQ7DQo+Pj4+Pj4NCj4+Pj4+PiAtICAgICB2NGwyX2ZpbGxfbWJ1c19mb3JtYXQoJmZv cm1hdC5mb3JtYXQsICZmLT5mbXQucGl4LCBtYnVzX2NvZGUpOw0KPj4+Pj4+IC0gICAgIHJldCA9 IHY0bDJfc3ViZGV2X2NhbGwoaXNjLT5jdXJyZW50X3N1YmRldi0+c2QsIHBhZCwNCj4+Pj4+PiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldF9mbXQsIE5VTEwsICZmb3JtYXQpOw0KPj4+ Pj4+IC0gICAgIGlmIChyZXQgPCAwKQ0KPj4+Pj4+IC0gICAgICAgICAgICAgcmV0dXJuIHJldDsN Cj4+Pj4+PiArICAgICAvKiBJZGVudGlmeSB0aGUgc3ViZGV2J3MgZm9ybWF0IGNvbmZpZ3VyYXRp b24gKi8NCj4+Pj4+PiArICAgICBmb3IgKGkgPSAwOyBpIDwgaXNjLT5mb3JtYXRzX2xpc3Rfc2l6 ZTsgaSsrKQ0KPj4+Pj4+ICsgICAgICAgICAgICAgaWYgKGlzYy0+Zm9ybWF0c19saXN0W2ldLm1i dXNfY29kZSA9PSBmb3JtYXQuZm9ybWF0LmNvZGUpIHsNCj4+Pj4+PiArICAgICAgICAgICAgICAg ICAgICAgc2RfZm10ID0gJmlzYy0+Zm9ybWF0c19saXN0W2ldOw0KPj4+Pj4+ICsgICAgICAgICAg ICAgICAgICAgICBicmVhazsNCj4+Pj4+PiArICAgICAgICAgICAgIH0NCj4+Pj4+PiArDQo+Pj4+ Pj4gKyAgICAgLyogQ2hlY2sgaWYgdGhlIGZvcm1hdCBpcyBub3Qgc3VwcG9ydGVkICovDQo+Pj4+ Pj4gKyAgICAgaWYgKCFzZF9mbXQpIHsNCj4+Pj4+PiArICAgICAgICAgICAgIHY0bDJfZXJyKCZp c2MtPnY0bDJfZGV2LA0KPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIkN1cnJlbnQgc3Vi ZGV2aWNlIGlzIHN0cmVhbWluZyBhIG1lZGlhIGJ1cyBjb2RlIHRoYXQgaXMgbm90IHN1cHBvcnRl ZCAweCV4XG4iLA0KPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LmZvcm1hdC5j b2RlKTsNCj4+Pj4+PiArICAgICAgICAgICAgIHJldHVybiAtRVBJUEU7DQo+Pj4+Pj4gKyAgICAg fQ0KPj4+Pj4+ICsNCj4+Pj4+PiArICAgICAvKiBBdCB0aGlzIG1vbWVudCB3ZSBrbm93IHdoaWNo IGZvcm1hdCB0aGUgc3ViZGV2IHdpbGwgdXNlICovDQo+Pj4+Pj4gKyAgICAgaXNjLT50cnlfY29u ZmlnLnNkX2Zvcm1hdCA9IHNkX2ZtdDsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAgLyogSWYgdGhl IHNlbnNvciBpcyBub3QgUkFXLCB3ZSBjYW4gb25seSBkbyBhIGRpcmVjdCBkdW1wICovDQo+Pj4+ Pj4gKyAgICAgaWYgKCFJU0NfSVNfRk9STUFUX1JBVyhpc2MtPnRyeV9jb25maWcuc2RfZm9ybWF0 LT5tYnVzX2NvZGUpKQ0KPj4+Pj4+ICsgICAgICAgICAgICAgaXNjX3RyeV9jb25maWd1cmVfcmxw X2RtYShpc2MsIHRydWUpOw0KPj4+Pj4+DQo+Pj4+Pj4gICAgICAgICAvKiBMaW1pdCB0byBBdG1l bCBJU0MgaGFyZHdhcmUgY2FwYWJpbGl0aWVzICovDQo+Pj4+Pj4gLSAgICAgaWYgKGYtPmZtdC5w aXgud2lkdGggPiBpc2MtPm1heF93aWR0aCkNCj4+Pj4+PiAtICAgICAgICAgICAgIGYtPmZtdC5w aXgud2lkdGggPSBpc2MtPm1heF93aWR0aDsNCj4+Pj4+PiAtICAgICBpZiAoZi0+Zm10LnBpeC5o ZWlnaHQgPiBpc2MtPm1heF9oZWlnaHQpDQo+Pj4+Pj4gLSAgICAgICAgICAgICBmLT5mbXQucGl4 LmhlaWdodCA9IGlzYy0+bWF4X2hlaWdodDsNCj4+Pj4+PiArICAgICB2NGxfYm91bmRfYWxpZ25f aW1hZ2UoJmZvcm1hdC5mb3JtYXQud2lkdGgsIDE2LCBpc2MtPm1heF93aWR0aCwgMCwNCj4+Pj4+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZvcm1hdC5mb3JtYXQuaGVpZ2h0LCAxNiwg aXNjLT5tYXhfaGVpZ2h0LCAwLCAwKTsNCj4+Pj4+Pg0KPj4+Pj4+IC0gICAgIGlzYy0+Zm10ID0g KmY7DQo+Pj4+Pj4gKyAgICAgLyogQ2hlY2sgaWYgdGhlIGZyYW1lIHNpemUgaXMgdGhlIHNhbWUu IE90aGVyd2lzZSB3ZSBtYXkgb3ZlcmZsb3cgKi8NCj4+Pj4+PiArICAgICBpZiAocGl4Zm10LT5o ZWlnaHQgIT0gZm9ybWF0LmZvcm1hdC5oZWlnaHQgfHwNCj4+Pj4+PiArICAgICAgICAgcGl4Zm10 LT53aWR0aCAhPSBmb3JtYXQuZm9ybWF0LndpZHRoKSB7DQo+Pj4+Pj4gKyAgICAgICAgICAgICB2 NGwyX2VycigmaXNjLT52NGwyX2RldiwNCj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICJJ U0Mgbm90IGNvbmZpZ3VyZWQgd2l0aCB0aGUgcHJvcGVyIGZyYW1lIHNpemU6ICVkeCVkXG4iLA0K Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LmZvcm1hdC53aWR0aCwgZm9ybWF0 LmZvcm1hdC5oZWlnaHQpOw0KPj4+Pj4+ICsgICAgICAgICAgICAgcmV0dXJuIC1FUElQRTsNCj4+ Pj4+PiArICAgICB9DQo+Pj4+Pj4NCj4+Pj4+PiArICAgICB2NGwyX2RiZygxLCBkZWJ1ZywgJmlz Yy0+djRsMl9kZXYsDQo+Pj4+Pj4gKyAgICAgICAgICAgICAgIklkZW50aWZpZWQgc3ViZGV2IHVz aW5nIGZvcm1hdCAlLjRzIHdpdGggJWR4JWQgJWQgYnBwXG4iLA0KPj4+Pj4+ICsgICAgICAgICAg ICAgIChjaGFyICopJnNkX2ZtdC0+Zm91cmNjLCBwaXhmbXQtPndpZHRoLCBwaXhmbXQtPmhlaWdo dCwNCj4+Pj4+PiArICAgICAgICAgICAgICBpc2MtPnRyeV9jb25maWcuYnBwKTsNCj4+Pj4+PiAr DQo+Pj4+Pj4gKyAgICAgLyogUmVzZXQgYW5kIHJlc3RhcnQgQVdCIGlmIHRoZSBzdWJkZXZpY2Ug Y2hhbmdlZCB0aGUgZm9ybWF0ICovDQo+Pj4+Pj4gICAgICAgICBpZiAoaXNjLT50cnlfY29uZmln LnNkX2Zvcm1hdCAmJiBpc2MtPmNvbmZpZy5zZF9mb3JtYXQgJiYNCj4+Pj4+PiAgICAgICAgICAg ICBpc2MtPnRyeV9jb25maWcuc2RfZm9ybWF0ICE9IGlzYy0+Y29uZmlnLnNkX2Zvcm1hdCkgew0K Pj4+Pj4+ICAgICAgICAgICAgICAgICBpc2MtPmN0cmxzLmhpc3Rfc3RhdCA9IEhJU1RfSU5JVDsN Cj4+Pj4+PiAgICAgICAgICAgICAgICAgaXNjX3Jlc2V0X2F3Yl9jdHJscyhpc2MpOw0KPj4+Pj4+ ICAgICAgICAgICAgICAgICBpc2NfdXBkYXRlX3Y0bDJfY3RybHMoaXNjKTsNCj4+Pj4+PiAgICAg ICAgIH0NCj4+Pj4+PiAtICAgICAvKiBtYWtlIHRoZSB0cnkgY29uZmlndXJhdGlvbiBhY3RpdmUg Ki8NCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAgLyogVmFsaWRhdGUgZm9ybWF0cyAqLw0KPj4+Pj4+ ICsgICAgIHJldCA9IGlzY190cnlfdmFsaWRhdGVfZm9ybWF0cyhpc2MpOw0KPj4+Pj4+ICsgICAg IGlmIChyZXQpDQo+Pj4+Pj4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4+Pj4+ICsNCj4+ Pj4+PiArICAgICAvKiBPYnRhaW4gZnJhbWUgc2l6ZXMgaWYgcG9zc2libGUgdG8gaGF2ZSBjcm9w IHJlcXVpcmVtZW50cyByZWFkeSAqLw0KPj4+Pj4+ICsgICAgIGlzY190cnlfZnNlKGlzYywgJnBh ZF9zdGF0ZSk7DQo+Pj4+Pj4gKw0KPj4+Pj4+ICsgICAgIC8qIENvbmZpZ3VyZSBJU0MgcGlwZWxp bmUgZm9yIHRoZSBjb25maWcgKi8NCj4+Pj4+PiArICAgICByZXQgPSBpc2NfdHJ5X2NvbmZpZ3Vy ZV9waXBlbGluZShpc2MpOw0KPj4+Pj4+ICsgICAgIGlmIChyZXQpDQo+Pj4+Pj4gKyAgICAgICAg ICAgICByZXR1cm4gcmV0Ow0KPj4+Pj4+ICsNCj4+Pj4+PiAgICAgICAgIGlzYy0+Y29uZmlnID0g aXNjLT50cnlfY29uZmlnOw0KPj4+Pj4+DQo+Pj4+Pj4gICAgICAgICB2NGwyX2RiZygxLCBkZWJ1 ZywgJmlzYy0+djRsMl9kZXYsICJOZXcgSVNDIGNvbmZpZ3VyYXRpb24gaW4gcGxhY2VcbiIpOw0K Pj4+Pj4+IEBAIC0xMDQzLDcgKzEwMzYsNyBAQCBzdGF0aWMgaW50IGlzY190cnlfZm10X3ZpZF9j YXAoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsDQo+Pj4+Pj4gICAgew0KPj4+Pj4+ICAg ICAgICAgc3RydWN0IGlzY19kZXZpY2UgKmlzYyA9IHZpZGVvX2RydmRhdGEoZmlsZSk7DQo+Pj4+ Pj4NCj4+Pj4+PiAtICAgICByZXR1cm4gaXNjX3RyeV9mbXQoaXNjLCBmLCBOVUxMKTsNCj4+Pj4+ PiArICAgICByZXR1cm4gaXNjX3RyeV9mbXQoaXNjLCBmKTsNCj4+Pj4+PiAgICB9DQo+Pj4+Pj4N Cj4+Pj4+PiAgICBzdGF0aWMgaW50IGlzY19lbnVtX2lucHV0KHN0cnVjdCBmaWxlICpmaWxlLCB2 b2lkICpwcml2LA0KPj4+Pj4+IEBAIC0xMDk4LDEwICsxMDkxLDYgQEAgc3RhdGljIGludCBpc2Nf ZW51bV9mcmFtZXNpemVzKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpmaCwNCj4+Pj4+PiAgICAg ICAgIGlmIChmc2l6ZS0+aW5kZXgpDQo+Pj4+Pj4gICAgICAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOw0KPj4+Pj4+DQo+Pj4+Pj4gLSAgICAgZm9yIChpID0gMDsgaSA8IGlzYy0+bnVtX3VzZXJf Zm9ybWF0czsgaSsrKQ0KPj4+Pj4+IC0gICAgICAgICAgICAgaWYgKGlzYy0+dXNlcl9mb3JtYXRz W2ldLT5mb3VyY2MgPT0gZnNpemUtPnBpeGVsX2Zvcm1hdCkNCj4+Pj4+PiAtICAgICAgICAgICAg ICAgICAgICAgcmV0ID0gMDsNCj4+Pj4+PiAtDQo+Pj4+Pj4gICAgICAgICBmb3IgKGkgPSAwOyBp IDwgaXNjLT5jb250cm9sbGVyX2Zvcm1hdHNfc2l6ZTsgaSsrKQ0KPj4+Pj4+ICAgICAgICAgICAg ICAgICBpZiAoaXNjLT5jb250cm9sbGVyX2Zvcm1hdHNbaV0uZm91cmNjID09IGZzaXplLT5waXhl bF9mb3JtYXQpDQo+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gMDsNCj4+Pj4+ PiBAQCAtMTc4Miw1MiArMTc3MSw2IEBAIHN0cnVjdCBpc2NfZm9ybWF0ICppc2NfZmluZF9mb3Jt YXRfYnlfY29kZShzdHJ1Y3QgaXNjX2RldmljZSAqaXNjLA0KPj4+Pj4+ICAgIH0NCj4+Pj4+PiAg ICBFWFBPUlRfU1lNQk9MX0dQTChpc2NfZmluZF9mb3JtYXRfYnlfY29kZSk7DQo+Pj4+Pj4NCj4+ Pj4+PiAtc3RhdGljIGludCBpc2NfZm9ybWF0c19pbml0KHN0cnVjdCBpc2NfZGV2aWNlICppc2Mp DQo+Pj4+Pj4gLXsNCj4+Pj4+PiAtICAgICBzdHJ1Y3QgaXNjX2Zvcm1hdCAqZm10Ow0KPj4+Pj4+ IC0gICAgIHN0cnVjdCB2NGwyX3N1YmRldiAqc3ViZGV2ID0gaXNjLT5jdXJyZW50X3N1YmRldi0+ c2Q7DQo+Pj4+Pj4gLSAgICAgdW5zaWduZWQgaW50IG51bV9mbXRzLCBpLCBqOw0KPj4+Pj4+IC0g ICAgIHUzMiBsaXN0X3NpemUgPSBpc2MtPmZvcm1hdHNfbGlzdF9zaXplOw0KPj4+Pj4+IC0gICAg IHN0cnVjdCB2NGwyX3N1YmRldl9tYnVzX2NvZGVfZW51bSBtYnVzX2NvZGUgPSB7DQo+Pj4+Pj4g LSAgICAgICAgICAgICAud2hpY2ggPSBWNEwyX1NVQkRFVl9GT1JNQVRfQUNUSVZFLA0KPj4+Pj4+ IC0gICAgIH07DQo+Pj4+Pj4gLQ0KPj4+Pj4+IC0gICAgIG51bV9mbXRzID0gMDsNCj4+Pj4+PiAt ICAgICB3aGlsZSAoIXY0bDJfc3ViZGV2X2NhbGwoc3ViZGV2LCBwYWQsIGVudW1fbWJ1c19jb2Rl LA0KPj4+Pj4+IC0gICAgICAgICAgICBOVUxMLCAmbWJ1c19jb2RlKSkgew0KPj4+Pj4+IC0gICAg ICAgICAgICAgbWJ1c19jb2RlLmluZGV4Kys7DQo+Pj4+Pj4gLQ0KPj4+Pj4+IC0gICAgICAgICAg ICAgZm10ID0gaXNjX2ZpbmRfZm9ybWF0X2J5X2NvZGUoaXNjLCBtYnVzX2NvZGUuY29kZSwgJmkp Ow0KPj4+Pj4+IC0gICAgICAgICAgICAgaWYgKCFmbXQpIHsNCj4+Pj4+PiAtICAgICAgICAgICAg ICAgICAgICAgdjRsMl93YXJuKCZpc2MtPnY0bDJfZGV2LCAiTWJ1cyBjb2RlICV4IG5vdCBzdXBw b3J0ZWRcbiIsDQo+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYnVzX2Nv ZGUuY29kZSk7DQo+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPj4+Pj4+ IC0gICAgICAgICAgICAgfQ0KPj4+Pj4+IC0NCj4+Pj4+PiAtICAgICAgICAgICAgIGZtdC0+c2Rf c3VwcG9ydCA9IHRydWU7DQo+Pj4+Pj4gLSAgICAgICAgICAgICBudW1fZm10cysrOw0KPj4+Pj4+ IC0gICAgIH0NCj4+Pj4+PiAtDQo+Pj4+Pj4gLSAgICAgaWYgKCFudW1fZm10cykNCj4+Pj4+PiAt ICAgICAgICAgICAgIHJldHVybiAtRU5YSU87DQo+Pj4+Pj4gLQ0KPj4+Pj4+IC0gICAgIGlzYy0+ bnVtX3VzZXJfZm9ybWF0cyA9IG51bV9mbXRzOw0KPj4+Pj4+IC0gICAgIGlzYy0+dXNlcl9mb3Jt YXRzID0gZGV2bV9rY2FsbG9jKGlzYy0+ZGV2LA0KPj4+Pj4+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG51bV9mbXRzLCBzaXplb2YoKmlzYy0+dXNlcl9mb3JtYXRzKSwN Cj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRlBfS0VSTkVM KTsNCj4+Pj4+PiAtICAgICBpZiAoIWlzYy0+dXNlcl9mb3JtYXRzKQ0KPj4+Pj4+IC0gICAgICAg ICAgICAgcmV0dXJuIC1FTk9NRU07DQo+Pj4+Pj4gLQ0KPj4+Pj4+IC0gICAgIGZtdCA9ICZpc2Mt PmZvcm1hdHNfbGlzdFswXTsNCj4+Pj4+PiAtICAgICBmb3IgKGkgPSAwLCBqID0gMDsgaSA8IGxp c3Rfc2l6ZTsgaSsrKSB7DQo+Pj4+Pj4gLSAgICAgICAgICAgICBpZiAoZm10LT5zZF9zdXBwb3J0 KQ0KPj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICBpc2MtPnVzZXJfZm9ybWF0c1tqKytdID0g Zm10Ow0KPj4+Pj4+IC0gICAgICAgICAgICAgZm10Kys7DQo+Pj4+Pj4gLSAgICAgfQ0KPj4+Pj4+ IC0NCj4+Pj4+PiAtICAgICByZXR1cm4gMDsNCj4+Pj4+PiAtfQ0KPj4+Pj4+IC0NCj4+Pj4+PiAg ICBzdGF0aWMgaW50IGlzY19zZXRfZGVmYXVsdF9mbXQoc3RydWN0IGlzY19kZXZpY2UgKmlzYykN Cj4+Pj4+PiAgICB7DQo+Pj4+Pj4gICAgICAgICBzdHJ1Y3QgdjRsMl9mb3JtYXQgZiA9IHsNCj4+ Pj4+PiBAQCAtMTgzNiwxMiArMTc3OSwxMiBAQCBzdGF0aWMgaW50IGlzY19zZXRfZGVmYXVsdF9m bXQoc3RydWN0IGlzY19kZXZpY2UgKmlzYykNCj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAg ICAud2lkdGggICAgICAgICAgPSBWR0FfV0lEVEgsDQo+Pj4+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgLmhlaWdodCAgICAgICAgID0gVkdBX0hFSUdIVCwNCj4+Pj4+PiAgICAgICAgICAgICAg ICAgICAgICAgICAuZmllbGQgICAgICAgICAgPSBWNEwyX0ZJRUxEX05PTkUsDQo+Pj4+Pj4gLSAg ICAgICAgICAgICAgICAgICAgIC5waXhlbGZvcm1hdCAgICA9IGlzYy0+dXNlcl9mb3JtYXRzWzBd LT5mb3VyY2MsDQo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIC5waXhlbGZvcm1hdCAgICA9 IGlzYy0+Y29udHJvbGxlcl9mb3JtYXRzWzBdLmZvdXJjYywNCj4+Pj4+PiAgICAgICAgICAgICAg ICAgfSwNCj4+Pj4+PiAgICAgICAgIH07DQo+Pj4+Pj4gICAgICAgICBpbnQgcmV0Ow0KPj4+Pj4+ DQo+Pj4+Pj4gLSAgICAgcmV0ID0gaXNjX3RyeV9mbXQoaXNjLCAmZiwgTlVMTCk7DQo+Pj4+Pj4g KyAgICAgcmV0ID0gaXNjX3RyeV9mbXQoaXNjLCAmZik7DQo+Pj4+Pj4gICAgICAgICBpZiAocmV0 KQ0KPj4+Pj4+ICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4+Pj4+DQo+Pj4+Pj4gQEAg LTE4OTYsMTMgKzE4MzksNiBAQCBzdGF0aWMgaW50IGlzY19hc3luY19jb21wbGV0ZShzdHJ1Y3Qg djRsMl9hc3luY19ub3RpZmllciAqbm90aWZpZXIpDQo+Pj4+Pj4gICAgICAgICBzcGluX2xvY2tf aW5pdCgmaXNjLT5kbWFfcXVldWVfbG9jayk7DQo+Pj4+Pj4gICAgICAgICBzcGluX2xvY2tfaW5p dCgmaXNjLT5hd2JfbG9jayk7DQo+Pj4+Pj4NCj4+Pj4+PiAtICAgICByZXQgPSBpc2NfZm9ybWF0 c19pbml0KGlzYyk7DQo+Pj4+Pj4gLSAgICAgaWYgKHJldCA8IDApIHsNCj4+Pj4+PiAtICAgICAg ICAgICAgIHY0bDJfZXJyKCZpc2MtPnY0bDJfZGV2LA0KPj4+Pj4+IC0gICAgICAgICAgICAgICAg ICAgICAgIkluaXQgZm9ybWF0IGZhaWxlZDogJWRcbiIsIHJldCk7DQo+Pj4+Pj4gLSAgICAgICAg ICAgICBnb3RvIGlzY19hc3luY19jb21wbGV0ZV9lcnI7DQo+Pj4+Pj4gLSAgICAgfQ0KPj4+Pj4+ IC0NCj4+Pj4+PiAgICAgICAgIHJldCA9IGlzY19zZXRfZGVmYXVsdF9mbXQoaXNjKTsNCj4+Pj4+ PiAgICAgICAgIGlmIChyZXQpIHsNCj4+Pj4+PiAgICAgICAgICAgICAgICAgdjRsMl9lcnIoJmlz Yy0+djRsMl9kZXYsICJDb3VsZCBub3Qgc2V0IGRlZmF1bHQgZm9ybWF0XG4iKTsNCj4+Pj4+PiBA QCAtMjAxNiw2ICsxOTUyLDI0IEBAIGludCBpc2NfcGlwZWxpbmVfaW5pdChzdHJ1Y3QgaXNjX2Rl dmljZSAqaXNjKQ0KPj4+Pj4+ICAgIH0NCj4+Pj4+PiAgICBFWFBPUlRfU1lNQk9MX0dQTChpc2Nf cGlwZWxpbmVfaW5pdCk7DQo+Pj4+Pj4NCj4+Pj4+PiArc3RhdGljIGludCBpc2NfbGlua192YWxp ZGF0ZShzdHJ1Y3QgbWVkaWFfbGluayAqbGluaykNCj4+Pj4+PiArew0KPj4+Pj4+ICsgICAgIHN0 cnVjdCB2aWRlb19kZXZpY2UgKnZkZXYgPQ0KPj4+Pj4+ICsgICAgICAgICAgICAgbWVkaWFfZW50 aXR5X3RvX3ZpZGVvX2RldmljZShsaW5rLT5zaW5rLT5lbnRpdHkpOw0KPj4+Pj4+ICsgICAgIHN0 cnVjdCBpc2NfZGV2aWNlICppc2MgPSB2aWRlb19nZXRfZHJ2ZGF0YSh2ZGV2KTsNCj4+Pj4+PiAr ICAgICBpbnQgcmV0Ow0KPj4+Pj4+ICsNCj4+Pj4+PiArICAgICByZXQgPSB2NGwyX3N1YmRldl9s aW5rX3ZhbGlkYXRlKGxpbmspOw0KPj4+Pj4+ICsgICAgIGlmIChyZXQpDQo+Pj4+Pj4gKyAgICAg ICAgICAgICByZXR1cm4gcmV0Ow0KPj4+Pj4+ICsNCj4+Pj4+PiArICAgICByZXR1cm4gaXNjX3Zh bGlkYXRlKGlzYyk7DQo+Pj4+Pj4gK30NCj4+Pj4+PiArDQo+Pj4+Pj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgbWVkaWFfZW50aXR5X29wZXJhdGlvbnMgaXNjX2VudGl0eV9vcGVyYXRpb25zID0gew0K Pj4+Pj4+ICsgICAgIC5saW5rX3ZhbGlkYXRlID0gaXNjX2xpbmtfdmFsaWRhdGUsDQo+Pj4+Pj4g K307DQo+Pj4+Pj4gKw0KPj4+Pj4+ICAgIGludCBpc2NfbWNfaW5pdChzdHJ1Y3QgaXNjX2Rldmlj ZSAqaXNjLCB1MzIgdmVyKQ0KPj4+Pj4+ICAgIHsNCj4+Pj4+PiAgICAgICAgIGNvbnN0IHN0cnVj dCBvZl9kZXZpY2VfaWQgKm1hdGNoOw0KPj4+Pj4+IEBAIC0yMDIzLDYgKzE5NzcsOCBAQCBpbnQg aXNjX21jX2luaXQoc3RydWN0IGlzY19kZXZpY2UgKmlzYywgdTMyIHZlcikNCj4+Pj4+Pg0KPj4+ Pj4+ICAgICAgICAgaXNjLT52aWRlb19kZXYuZW50aXR5LmZ1bmN0aW9uID0gTUVESUFfRU5UX0Zf SU9fVjRMOw0KPj4+Pj4+ICAgICAgICAgaXNjLT52aWRlb19kZXYuZW50aXR5LmZsYWdzID0gTUVE SUFfRU5UX0ZMX0RFRkFVTFQ7DQo+Pj4+Pj4gKyAgICAgaXNjLT52aWRlb19kZXYuZW50aXR5Lm9w cyA9ICZpc2NfZW50aXR5X29wZXJhdGlvbnM7DQo+Pj4+Pj4gKw0KPj4+Pj4+ICAgICAgICAgaXNj LT5wYWRzW0lTQ19QQURfU0lOS10uZmxhZ3MgPSBNRURJQV9QQURfRkxfU0lOSzsNCj4+Pj4+Pg0K Pj4+Pj4+ICAgICAgICAgcmV0ID0gbWVkaWFfZW50aXR5X3BhZHNfaW5pdCgmaXNjLT52aWRlb19k ZXYuZW50aXR5LCBJU0NfUEFEU19OVU0sDQo+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVk aWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtaXNjLXNjYWxlci5jIGIvZHJpdmVycy9tZWRpYS9wbGF0 Zm9ybS9hdG1lbC9hdG1lbC1pc2Mtc2NhbGVyLmMNCj4+Pj4+PiBpbmRleCBhMWNhNDYzMzc4N2Mu LjJiMDYyMTI5N2RmZSAxMDA2NDQNCj4+Pj4+PiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3Jt L2F0bWVsL2F0bWVsLWlzYy1zY2FsZXIuYw0KPj4+Pj4+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxh dGZvcm0vYXRtZWwvYXRtZWwtaXNjLXNjYWxlci5jDQo+Pj4+Pj4gQEAgLTE3Myw2ICsxNzMsMTAg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2NGwyX3N1YmRldl9wYWRfb3BzIGlzY19zY2FsZXJfcGFk X29wcyA9IHsNCj4+Pj4+PiAgICAgICAgIC5pbml0X2NmZyA9IGlzY19zY2FsZXJfaW5pdF9jZmcs DQo+Pj4+Pj4gICAgfTsNCj4+Pj4+Pg0KPj4+Pj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlh X2VudGl0eV9vcGVyYXRpb25zIGlzY19zY2FsZXJfZW50aXR5X29wcyA9IHsNCj4+Pj4+PiArICAg ICAubGlua192YWxpZGF0ZSA9IHY0bDJfc3ViZGV2X2xpbmtfdmFsaWRhdGUsDQo+Pj4+Pj4gK307 DQo+Pj4+Pj4gKw0KPj4+Pj4+ICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdjRsMl9zdWJkZXZfb3Bz IHhpc2Nfc2NhbGVyX3N1YmRldl9vcHMgPSB7DQo+Pj4+Pj4gICAgICAgICAucGFkID0gJmlzY19z Y2FsZXJfcGFkX29wcywNCj4+Pj4+PiAgICB9Ow0KPj4+Pj4+IEBAIC0xOTAsNiArMTk0LDcgQEAg aW50IGlzY19zY2FsZXJfaW5pdChzdHJ1Y3QgaXNjX2RldmljZSAqaXNjKQ0KPj4+Pj4+DQo+Pj4+ Pj4gICAgICAgICBpc2MtPnNjYWxlcl9zZC5mbGFncyB8PSBWNEwyX1NVQkRFVl9GTF9IQVNfREVW Tk9ERTsNCj4+Pj4+PiAgICAgICAgIGlzYy0+c2NhbGVyX3NkLmVudGl0eS5mdW5jdGlvbiA9IE1F RElBX0VOVF9GX1BST0NfVklERU9fU0NBTEVSOw0KPj4+Pj4+ICsgICAgIGlzYy0+c2NhbGVyX3Nk LmVudGl0eS5vcHMgPSAmaXNjX3NjYWxlcl9lbnRpdHlfb3BzOw0KPj4+Pj4+ICAgICAgICAgaXNj LT5zY2FsZXJfcGFkc1tJU0NfU0NBTEVSX1BBRF9TSU5LXS5mbGFncyA9IE1FRElBX1BBRF9GTF9T SU5LOw0KPj4+Pj4+ICAgICAgICAgaXNjLT5zY2FsZXJfcGFkc1tJU0NfU0NBTEVSX1BBRF9TT1VS Q0VdLmZsYWdzID0gTUVESUFfUEFEX0ZMX1NPVVJDRTsNCj4+Pj4+Pg0KPj4+Pj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy5oIGIvZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2MuaA0KPj4+Pj4+IGluZGV4IGY5OGYyNWE1NWU3 My4uNWIwMTAwYzhjMjQ1IDEwMDY0NA0KPj4+Pj4+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vYXRtZWwvYXRtZWwtaXNjLmgNCj4+Pj4+PiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3Jt L2F0bWVsL2F0bWVsLWlzYy5oDQo+Pj4+Pj4gQEAgLTYzLDE1ICs2MywxNiBAQCBzdHJ1Y3QgaXNj X3N1YmRldl9lbnRpdHkgew0KPj4+Pj4+ICAgICAqIEBjZmFfYmF5Y2ZnOiAgICAgICAgICAgICAg SWYgdGhpcyBmb3JtYXQgaXMgUkFXIEJBWUVSLCBpbmRpY2F0ZSB0aGUgdHlwZSBvZiBiYXllci4N Cj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzIGlzIGVpdGhlciBCR0JHLCBSR1JH LCBldGMuDQo+Pj4+Pj4gICAgICogQHBmZV9jZmcwX2JwczogICAgTnVtYmVyIG9mIGhhcmR3YXJl IGRhdGEgbGluZXMgY29ubmVjdGVkIHRvIHRoZSBJU0MNCj4+Pj4+PiArICogQHJhdzogICAgICAg ICAgICAgSWYgdGhlIGZvcm1hdCBpcyByYXcgYmF5ZXIuDQo+Pj4+Pj4gICAgICovDQo+Pj4+Pj4N Cj4+Pj4+PiAgICBzdHJ1Y3QgaXNjX2Zvcm1hdCB7DQo+Pj4+Pj4gICAgICAgICB1MzIgICAgIGZv dXJjYzsNCj4+Pj4+PiAgICAgICAgIHUzMiAgICAgbWJ1c19jb2RlOw0KPj4+Pj4+ICAgICAgICAg dTMyICAgICBjZmFfYmF5Y2ZnOw0KPj4+Pj4+IC0NCj4+Pj4+PiAtICAgICBib29sICAgIHNkX3N1 cHBvcnQ7DQo+Pj4+Pj4gICAgICAgICB1MzIgICAgIHBmZV9jZmcwX2JwczsNCj4+Pj4+PiArDQo+ Pj4+Pj4gKyAgICAgYm9vbCAgICByYXc7DQo+Pj4+Pj4gICAgfTsNCj4+Pj4+Pg0KPj4+Pj4+ICAg IC8qIFBpcGVsaW5lIGJpdG1hcCAqLw0KPj4+Pj4+IEBAIC0yMTYsOCArMjE3LDcgQEAgZW51bSBp c2Nfc2NhbGVyX3BhZHMgew0KPj4+Pj4+ICAgICAqIEBjb21wOiAgICAgICAgICAgIGNvbXBsZXRp b24gcmVmZXJlbmNlIHRoYXQgc2lnbmFscyBmcmFtZSBjb21wbGV0aW9uDQo+Pj4+Pj4gICAgICoN Cj4+Pj4+PiAgICAgKiBAZm10OiAgICAgICAgICAgICBjdXJyZW50IHY0MmwgZm9ybWF0DQo+Pj4+ Pj4gLSAqIEB1c2VyX2Zvcm1hdHM6ICAgIGxpc3Qgb2YgZm9ybWF0cyB0aGF0IGFyZSBzdXBwb3J0 ZWQgYW5kIGFncmVlZCB3aXRoIHNkDQo+Pj4+Pj4gLSAqIEBudW1fdXNlcl9mb3JtYXRzOiAgICAg ICAgaG93IG1hbnkgZm9ybWF0cyBhcmUgaW4gdXNlcl9mb3JtYXRzDQo+Pj4+Pj4gKyAqIEB0cnlf Zm10OiAgICAgICAgIGN1cnJlbnQgdjRsMiB0cnkgZm9ybWF0DQo+Pj4+Pj4gICAgICoNCj4+Pj4+ PiAgICAgKiBAY29uZmlnOiAgICAgICAgICBjdXJyZW50IElTQyBmb3JtYXQgY29uZmlndXJhdGlv bg0KPj4+Pj4+ICAgICAqIEB0cnlfY29uZmlnOiAgICAgICAgICAgICAgdGhlIGN1cnJlbnQgSVND IHRyeSBmb3JtYXQgLCBub3QgeWV0IGFjdGl2YXRlZA0KPj4+Pj4+IEBAIC0yNzIsNiArMjcyLDcg QEAgZW51bSBpc2Nfc2NhbGVyX3BhZHMgew0KPj4+Pj4+ICAgICAqIEBmb3JtYXRzX2xpc3Rfc2l6 ZTogICAgICAgc2l6ZSBvZiBmb3JtYXRzX2xpc3QgYXJyYXkNCj4+Pj4+PiAgICAgKiBAcGFkczog ICAgICAgICAgICBtZWRpYSBjb250cm9sbGVyIHBhZHMgZm9yIGlzYyB2aWRlbyBlbnRpdHkNCj4+ Pj4+PiAgICAgKiBAbWRldjogICAgICAgICAgICBtZWRpYSBkZXZpY2UgdGhhdCBpcyByZWdpc3Rl cmVkIGJ5IHRoZSBpc2MNCj4+Pj4+PiArICogQG1waXBlOiAgICAgICAgICAgbWVkaWEgZGV2aWNl IHBpcGVsaW5lIHVzZWQgYnkgdGhlIGlzYw0KPj4+Pj4+ICAgICAqIEByZW1vdGVfcGFkOiAgICAg ICAgICAgICAgcmVtb3RlIHBhZCBvbiB0aGUgY29ubmVjdGVkIHN1YmRldmljZQ0KPj4+Pj4+ICAg ICAqIEBzY2FsZXJfc2Q6ICAgICAgICAgICAgICAgc3ViZGV2aWNlIGZvciB0aGUgc2NhbGVyIHRo YXQgaXNjIHJlZ2lzdGVycw0KPj4+Pj4+ICAgICAqIEBzY2FsZXJfcGFkczogICAgIG1lZGlhIGNv bnRyb2xsZXIgcGFkcyBmb3IgdGhlIHNjYWxlciBzdWJkZXZpY2UNCj4+Pj4+PiBAQCAtMjk4LDgg KzI5OSw3IEBAIHN0cnVjdCBpc2NfZGV2aWNlIHsNCj4+Pj4+PiAgICAgICAgIHN0cnVjdCBjb21w bGV0aW9uICAgICAgIGNvbXA7DQo+Pj4+Pj4NCj4+Pj4+PiAgICAgICAgIHN0cnVjdCB2NGwyX2Zv cm1hdCAgICAgIGZtdDsNCj4+Pj4+PiAtICAgICBzdHJ1Y3QgaXNjX2Zvcm1hdCAgICAgICAqKnVz ZXJfZm9ybWF0czsNCj4+Pj4+PiAtICAgICB1bnNpZ25lZCBpbnQgICAgICAgICAgICBudW1fdXNl cl9mb3JtYXRzOw0KPj4+Pj4+ICsgICAgIHN0cnVjdCB2NGwyX2Zvcm1hdCAgICAgIHRyeV9mbXQ7 DQo+Pj4+Pj4NCj4+Pj4+PiAgICAgICAgIHN0cnVjdCBmbXRfY29uZmlnICAgICAgIGNvbmZpZzsN Cj4+Pj4+PiAgICAgICAgIHN0cnVjdCBmbXRfY29uZmlnICAgICAgIHRyeV9jb25maWc7DQo+Pj4+ Pj4gQEAgLTM2OSw2ICszNjksNyBAQCBzdHJ1Y3QgaXNjX2RldmljZSB7DQo+Pj4+Pj4gICAgICAg ICBzdHJ1Y3Qgew0KPj4+Pj4+ICAgICAgICAgICAgICAgICBzdHJ1Y3QgbWVkaWFfcGFkICAgICAg ICAgICAgICAgIHBhZHNbSVNDX1BBRFNfTlVNXTsNCj4+Pj4+PiAgICAgICAgICAgICAgICAgc3Ry dWN0IG1lZGlhX2RldmljZSAgICAgICAgICAgICBtZGV2Ow0KPj4+Pj4+ICsgICAgICAgICAgICAg c3RydWN0IG1lZGlhX3BpcGVsaW5lICAgICAgICAgICBtcGlwZTsNCj4+Pj4+Pg0KPj4+Pj4+ICAg ICAgICAgICAgICAgICB1MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90ZV9wYWQ7 DQo+Pj4+Pj4gICAgICAgICB9Ow0KPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3Bs YXRmb3JtL2F0bWVsL2F0bWVsLXNhbWE1ZDItaXNjLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3Jt L2F0bWVsL2F0bWVsLXNhbWE1ZDItaXNjLmMNCj4+Pj4+PiBpbmRleCBkOTZlZTMzNzM4ODkuLjJh NjUxZTIzNzE5MyAxMDA2NDQNCj4+Pj4+PiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0 bWVsL2F0bWVsLXNhbWE1ZDItaXNjLmMNCj4+Pj4+PiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRm b3JtL2F0bWVsL2F0bWVsLXNhbWE1ZDItaXNjLmMNCj4+Pj4+PiBAQCAtODAsMjAgKzgwLDQwIEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaXNjX2Zvcm1hdCBzYW1hNWQyX2NvbnRyb2xsZXJfZm9ybWF0 c1tdID0gew0KPj4+Pj4+ICAgICAgICAgICAgICAgICAuZm91cmNjICAgICAgICAgPSBWNEwyX1BJ WF9GTVRfWTEwLA0KPj4+Pj4+ICAgICAgICAgfSwgew0KPj4+Pj4+ICAgICAgICAgICAgICAgICAu Zm91cmNjICAgICAgICAgPSBWNEwyX1BJWF9GTVRfU0JHR1I4LA0KPj4+Pj4+ICsgICAgICAgICAg ICAgLnJhdyAgICAgICAgICAgID0gdHJ1ZSwNCj4+Pj4+PiAgICAgICAgIH0sIHsNCj4+Pj4+PiAg ICAgICAgICAgICAgICAgLmZvdXJjYyAgICAgICAgID0gVjRMMl9QSVhfRk1UX1NHQlJHOCwNCj4+ Pj4+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAgICA9IHRydWUsDQo+Pj4+Pj4gICAgICAg ICB9LCB7DQo+Pj4+Pj4gICAgICAgICAgICAgICAgIC5mb3VyY2MgICAgICAgICA9IFY0TDJfUElY X0ZNVF9TR1JCRzgsDQo+Pj4+Pj4gKyAgICAgICAgICAgICAucmF3ICAgICAgICAgICAgPSB0cnVl LA0KPj4+Pj4+ICAgICAgICAgfSwgew0KPj4+Pj4+ICAgICAgICAgICAgICAgICAuZm91cmNjICAg ICAgICAgPSBWNEwyX1BJWF9GTVRfU1JHR0I4LA0KPj4+Pj4+ICsgICAgICAgICAgICAgLnJhdyAg ICAgICAgICAgID0gdHJ1ZSwNCj4+Pj4+PiAgICAgICAgIH0sIHsNCj4+Pj4+PiAgICAgICAgICAg ICAgICAgLmZvdXJjYyAgICAgICAgID0gVjRMMl9QSVhfRk1UX1NCR0dSMTAsDQo+Pj4+Pj4gKyAg ICAgICAgICAgICAucmF3ICAgICAgICAgICAgPSB0cnVlLA0KPj4+Pj4+ICAgICAgICAgfSwgew0K Pj4+Pj4+ICAgICAgICAgICAgICAgICAuZm91cmNjICAgICAgICAgPSBWNEwyX1BJWF9GTVRfU0dC UkcxMCwNCj4+Pj4+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAgICA9IHRydWUsDQo+Pj4+ Pj4gICAgICAgICB9LCB7DQo+Pj4+Pj4gICAgICAgICAgICAgICAgIC5mb3VyY2MgICAgICAgICA9 IFY0TDJfUElYX0ZNVF9TR1JCRzEwLA0KPj4+Pj4+ICsgICAgICAgICAgICAgLnJhdyAgICAgICAg ICAgID0gdHJ1ZSwNCj4+Pj4+PiAgICAgICAgIH0sIHsNCj4+Pj4+PiAgICAgICAgICAgICAgICAg LmZvdXJjYyAgICAgICAgID0gVjRMMl9QSVhfRk1UX1NSR0dCMTAsDQo+Pj4+Pj4gKyAgICAgICAg ICAgICAucmF3ICAgICAgICAgICAgPSB0cnVlLA0KPj4+Pj4+ICsgICAgIH0sIHsNCj4+Pj4+PiAr ICAgICAgICAgICAgIC5mb3VyY2MgICAgICAgICA9IFY0TDJfUElYX0ZNVF9TQkdHUjEyLA0KPj4+ Pj4+ICsgICAgICAgICAgICAgLnJhdyAgICAgICAgICAgID0gdHJ1ZSwNCj4+Pj4+PiArICAgICB9 LCB7DQo+Pj4+Pj4gKyAgICAgICAgICAgICAuZm91cmNjICAgICAgICAgPSBWNEwyX1BJWF9GTVRf U0dCUkcxMiwNCj4+Pj4+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAgICA9IHRydWUsDQo+ Pj4+Pj4gKyAgICAgfSwgew0KPj4+Pj4+ICsgICAgICAgICAgICAgLmZvdXJjYyAgICAgICAgID0g VjRMMl9QSVhfRk1UX1NHUkJHMTIsDQo+Pj4+Pj4gKyAgICAgICAgICAgICAucmF3ICAgICAgICAg ICAgPSB0cnVlLA0KPj4+Pj4+ICsgICAgIH0sIHsNCj4+Pj4+PiArICAgICAgICAgICAgIC5mb3Vy Y2MgICAgICAgICA9IFY0TDJfUElYX0ZNVF9TUkdHQjEyLA0KPj4+Pj4+ICsgICAgICAgICAgICAg LnJhdyAgICAgICAgICAgID0gdHJ1ZSwNCj4+Pj4+PiAgICAgICAgIH0sDQo+Pj4+Pj4gICAgfTsN Cj4+Pj4+Pg0KPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVs L2F0bWVsLXNhbWE3ZzUtaXNjLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVs LXNhbWE3ZzUtaXNjLmMNCj4+Pj4+PiBpbmRleCBlMDdhZTE4OGMxNWYuLmEwZDYwY2ZkYmE3YiAx MDA2NDQNCj4+Pj4+PiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLXNh bWE3ZzUtaXNjLmMNCj4+Pj4+PiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0 bWVsLXNhbWE3ZzUtaXNjLmMNCj4+Pj4+PiBAQCAtODksMjAgKzg5LDQwIEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgaXNjX2Zvcm1hdCBzYW1hN2c1X2NvbnRyb2xsZXJfZm9ybWF0c1tdID0gew0KPj4+ Pj4+ICAgICAgICAgICAgICAgICAuZm91cmNjICAgICAgICAgPSBWNEwyX1BJWF9GTVRfWTE2LA0K Pj4+Pj4+ICAgICAgICAgfSwgew0KPj4+Pj4+ICAgICAgICAgICAgICAgICAuZm91cmNjICAgICAg ICAgPSBWNEwyX1BJWF9GTVRfU0JHR1I4LA0KPj4+Pj4+ICsgICAgICAgICAgICAgLnJhdyAgICAg ICAgICAgID0gdHJ1ZSwNCj4+Pj4+PiAgICAgICAgIH0sIHsNCj4+Pj4+PiAgICAgICAgICAgICAg ICAgLmZvdXJjYyAgICAgICAgID0gVjRMMl9QSVhfRk1UX1NHQlJHOCwNCj4+Pj4+PiArICAgICAg ICAgICAgIC5yYXcgICAgICAgICAgICA9IHRydWUsDQo+Pj4+Pj4gICAgICAgICB9LCB7DQo+Pj4+ Pj4gICAgICAgICAgICAgICAgIC5mb3VyY2MgICAgICAgICA9IFY0TDJfUElYX0ZNVF9TR1JCRzgs DQo+Pj4+Pj4gKyAgICAgICAgICAgICAucmF3ICAgICAgICAgICAgPSB0cnVlLA0KPj4+Pj4+ICAg ICAgICAgfSwgew0KPj4+Pj4+ICAgICAgICAgICAgICAgICAuZm91cmNjICAgICAgICAgPSBWNEwy X1BJWF9GTVRfU1JHR0I4LA0KPj4+Pj4+ICsgICAgICAgICAgICAgLnJhdyAgICAgICAgICAgID0g dHJ1ZSwNCj4+Pj4+PiAgICAgICAgIH0sIHsNCj4+Pj4+PiAgICAgICAgICAgICAgICAgLmZvdXJj YyAgICAgICAgID0gVjRMMl9QSVhfRk1UX1NCR0dSMTAsDQo+Pj4+Pj4gKyAgICAgICAgICAgICAu cmF3ICAgICAgICAgICAgPSB0cnVlLA0KPj4+Pj4+ICAgICAgICAgfSwgew0KPj4+Pj4+ICAgICAg ICAgICAgICAgICAuZm91cmNjICAgICAgICAgPSBWNEwyX1BJWF9GTVRfU0dCUkcxMCwNCj4+Pj4+ PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAgICA9IHRydWUsDQo+Pj4+Pj4gICAgICAgICB9 LCB7DQo+Pj4+Pj4gICAgICAgICAgICAgICAgIC5mb3VyY2MgICAgICAgICA9IFY0TDJfUElYX0ZN VF9TR1JCRzEwLA0KPj4+Pj4+ICsgICAgICAgICAgICAgLnJhdyAgICAgICAgICAgID0gdHJ1ZSwN Cj4+Pj4+PiAgICAgICAgIH0sIHsNCj4+Pj4+PiAgICAgICAgICAgICAgICAgLmZvdXJjYyAgICAg ICAgID0gVjRMMl9QSVhfRk1UX1NSR0dCMTAsDQo+Pj4+Pj4gKyAgICAgICAgICAgICAucmF3ICAg ICAgICAgICAgPSB0cnVlLA0KPj4+Pj4+ICsgICAgIH0sIHsNCj4+Pj4+PiArICAgICAgICAgICAg IC5mb3VyY2MgICAgICAgICA9IFY0TDJfUElYX0ZNVF9TQkdHUjEyLA0KPj4+Pj4+ICsgICAgICAg ICAgICAgLnJhdyAgICAgICAgICAgID0gdHJ1ZSwNCj4+Pj4+PiArICAgICB9LCB7DQo+Pj4+Pj4g KyAgICAgICAgICAgICAuZm91cmNjICAgICAgICAgPSBWNEwyX1BJWF9GTVRfU0dCUkcxMiwNCj4+ Pj4+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAgICA9IHRydWUsDQo+Pj4+Pj4gKyAgICAg fSwgew0KPj4+Pj4+ICsgICAgICAgICAgICAgLmZvdXJjYyAgICAgICAgID0gVjRMMl9QSVhfRk1U X1NHUkJHMTIsDQo+Pj4+Pj4gKyAgICAgICAgICAgICAucmF3ICAgICAgICAgICAgPSB0cnVlLA0K Pj4+Pj4+ICsgICAgIH0sIHsNCj4+Pj4+PiArICAgICAgICAgICAgIC5mb3VyY2MgICAgICAgICA9 IFY0TDJfUElYX0ZNVF9TUkdHQjEyLA0KPj4+Pj4+ICsgICAgICAgICAgICAgLnJhdyAgICAgICAg ICAgID0gdHJ1ZSwNCj4+Pj4+PiAgICAgICAgIH0sDQo+Pj4+Pj4gICAgfTsNCj4+Pj4+Pg0KPj4+ Pj4NCj4+Pj4NCj4+Pg0KPiANCg0K