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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 47C55C3ABD8 for ; Wed, 14 May 2025 17:47:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version: Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=B9NIpkFF21Aw6AYzlkEnaLLHWkyol6IVDeTUqRcl/L0=; b=Ek7i6zuENhQceiPicAYFKATFpF z6d2VW7fN4QjN+sCBF8SMtkg3N7IOjSFbNNEvkKqMdm8ZQarqZFe7C+ClZlZYtS8JTAuMKFiRivcA tJTJkmUuV223qIZcHOM/QscJytP6NcQqDgyUxj9FVtI+3NWP4ipCN0aXqCn4IJtSISRvcYQ4jOOQZ Bor2xt+4p7RGNyX3l1m+zxVp3JapGt4vFfAUswtW2AQmZ2yAuw4MWToGBuVwZ0e9QpKMMBzAJ3LQl tVxYqn/z34STzgMdgYNmM8yGKcomkesQQ+6hp57C5b1f1S739eR95biFsdwT1Oi3rCRVXuduywsq7 BE0DT10g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uFGC8-0000000Fuqk-0iM1; Wed, 14 May 2025 17:47:05 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uFEoP-0000000Fij8-1FRn; Wed, 14 May 2025 16:18:31 +0000 X-UUID: 0df19e5630df11f08d385d50fb11b32d-20250514 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=MIME-Version:Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References:Message-ID:Date:Subject:CC:To:From; bh=B9NIpkFF21Aw6AYzlkEnaLLHWkyol6IVDeTUqRcl/L0=; b=OV8ENXQJ7j2S8CxOQdnHApBExuDG8Oic1D1yIJM8VqOjubpvhSRl9QMXu+dWrIaeImmzxhQd9sYl1dQkWwP3AY8dLeejTMWLMop8UHnHE7gD627QEEhDMNH9/doCm0/vY8xYNLkbS45WzD4fxYcdM5L/BQQQ03+5NX7jgilAw0Y=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.2.1,REQID:d056a581-8e7c-4232-9d02-4008642d6b34,IP:0,UR L:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION:r elease,TS:0 X-CID-META: VersionHash:0ef645f,CLOUDID:ef0ac373-805e-40ad-809d-9cec088f3bd8,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:80|81|82|83|102|110|111,TC:nil,Conte nt:0|51,EDM:-3,IP:nil,URL:0,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0, OSI:0,OSA:0,AV:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0,ARC:0 X-CID-BVR: 0,NGT X-CID-BAS: 0,NGT,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: 0df19e5630df11f08d385d50fb11b32d-20250514 Received: from mtkmbs10n2.mediatek.inc [(172.21.101.183)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 275995951; Wed, 14 May 2025 09:18:21 -0700 Received: from mtkmbs10n1.mediatek.inc (172.21.101.34) by mtkmbs11n2.mediatek.inc (172.21.101.187) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.39; Thu, 15 May 2025 00:18:19 +0800 Received: from HK3PR03CU002.outbound.protection.outlook.com (172.21.101.237) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server id 15.2.1258.39 via Frontend Transport; Thu, 15 May 2025 00:18:18 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sNL8HS4Z8S/VHQ06mViVk9JGyjJ3HeB/zdtsOlbVucDUyjS4YQp5sfbkLkoZurQ2aRW77Zuztj6IGxP3tTs6A3Oxk7DGz/lTfcqjHFLjLPecmQsTsM5otgGVpxY9Y3TlQDjkwvtgMfbgZR1oq+dIbkvPjeweDCzbMGL/K5bMOMQSXeRUIuzU2Y99eFUQYrQFtr2NC2rvqSj4bwOudgwi5/inWSIb6HJSa1MWV3ep6O/s4U2M/+EsvYm4m+GL2pn7t+xvUqLxrgyH7QRt5REb9mWN2bSETo8221u3v38y9bFCFiVCFCe4/2YP62D6K3B/OBbE8mpBMx45cUUwbBtt9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=B9NIpkFF21Aw6AYzlkEnaLLHWkyol6IVDeTUqRcl/L0=; b=ypZmdnsR4Gd+1QlkqCPDNmYbwNIDaoFXvnbINTQYZmnJnG78DzDnhUGXVbGWmaCT54xFbChIrHxl7+95kWAjEEyYpKMlw2ukEGiTN8Ij/T4hbT4aZpt5rh/4i903eJvmxypXacn2BhvKQku41Kbky9xCaDTbz/fqbob3lPbbEzxttYbhqs/nYsQw1D2O4y79yGfxi3ukuK+rs1zyyK1RFwsIonb0Ua9zKWnYkwCDvMalWlTrjtXqe2soW3rcgdj9hH48jPb/tOSeiNXEEx9kpZ0jmLSg04Vmv88ZjlnuVe7mFJsqdJBFdLiqyTqCe5lcqqhTsThWFX/W7aY4Q3QAyA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mediatek.com; dmarc=pass action=none header.from=mediatek.com; dkim=pass header.d=mediatek.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mediateko365.onmicrosoft.com; s=selector2-mediateko365-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=B9NIpkFF21Aw6AYzlkEnaLLHWkyol6IVDeTUqRcl/L0=; b=gaValgr1HAsoOXOKp07Be13OiqgBb6bMjAS2unlgR37Bk/s6oqIys6iKsb3yDfzO/knq/IVDFENE4tKwAOnbBVZHYQoG29lVWeCHvE0tFwImhKhliag5bBL+Rec2FP5rUZOwZqndt3NDAcLCdjjIg46s1/bqzqTXTPW5S4WWg2Q= Received: from SG2PR03MB6636.apcprd03.prod.outlook.com (2603:1096:4:1b8::6) by KL1PR03MB8072.apcprd03.prod.outlook.com (2603:1096:820:f5::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.29; Wed, 14 May 2025 16:18:12 +0000 Received: from SG2PR03MB6636.apcprd03.prod.outlook.com ([fe80::98e8:d61:f404:4052]) by SG2PR03MB6636.apcprd03.prod.outlook.com ([fe80::98e8:d61:f404:4052%7]) with mapi id 15.20.8722.027; Wed, 14 May 2025 16:18:12 +0000 From: =?utf-8?B?UGF1bC1wbCBDaGVuICjpmbPmn4/pnJYp?= To: =?utf-8?B?Q0sgSHUgKOiDoeS/iuWFiSk=?= , "robh@kernel.org" , "krzk+dt@kernel.org" , "conor+dt@kernel.org" , "chunkuang.hu@kernel.org" , "AngeloGioacchino Del Regno" CC: =?utf-8?B?U3VubnkgU2hlbiAo5rKI5aeN5aeNKQ==?= , =?utf-8?B?U2lyaXVzIFdhbmcgKOeOi+eak+aYsSk=?= , =?utf-8?B?TmFuY3kgTGluICjmnpfmrKPonqIp?= , =?utf-8?B?WGlhbmRvbmcgV2FuZyAo546L5YWI5YasKQ==?= , "linux-kernel@vger.kernel.org" , Project_Global_Chrome_Upstream_Group , "dri-devel@lists.freedesktop.org" , "linux-mediatek@lists.infradead.org" , =?utf-8?B?SmFzb24tSkggTGluICjmnpfnnb/npaUp?= , "devicetree@vger.kernel.org" , "fshao@chromium.org" , "p.zabel@pengutronix.de" , =?utf-8?B?U2luZ28gQ2hhbmcgKOW8teiIiOWciyk=?= , "linux-arm-kernel@lists.infradead.org" , "matthias.bgg@gmail.com" , "treapking@chromium.org" Subject: Re: [PATCH v2 13/15] drm/mediatek: add ovlsys_adaptor support for MT8196 Thread-Topic: [PATCH v2 13/15] drm/mediatek: add ovlsys_adaptor support for MT8196 Thread-Index: AQHbmkTAODCOxRI77UWS1GgFpeJNK7Od6Q2AgDS5+4A= Date: Wed, 14 May 2025 16:18:12 +0000 Message-ID: <833c8f9c5efb1dcfdac9b3ddec2501ddabae845f.camel@mediatek.com> References: <20250321093435.94835-1-paul-pl.chen@mediatek.com> <20250321093435.94835-14-paul-pl.chen@mediatek.com> In-Reply-To: Accept-Language: zh-TW, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mediatek.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SG2PR03MB6636:EE_|KL1PR03MB8072:EE_ x-ms-office365-filtering-correlation-id: 56141047-eccc-4b60-24f8-08dd9302ec9b x-ld-processed: a7687ede-7a6b-4ef6-bace-642f677fbe31,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?V25vckl6K1ExdmtvTkdaVWhraGtPcjJqdzZtNkdlVDZUL1h2aFpNVzNhOWEx?= =?utf-8?B?Rk1ndEVxYUNxUUgvdFZWMFhrb1VKUWdDS2greW9odzAvci9nZ0YwTlFNa0NE?= =?utf-8?B?WkhWRlRtS0FYczNhQkRuMEt0ek1tblpaMjJQcUx3SWtQcjlTVXcvRVZncTM3?= =?utf-8?B?d3hPK2pEWjNubEJ5S3ArZ0tuTXZza25SOWZ3NnZZR29lbTZSelpqUThZU01h?= =?utf-8?B?MFdmNnJKeFl0N3VpM0JCYStYU2JxbThIcyt6VDZORk5pNDkzVW4rakZCVjJj?= =?utf-8?B?UDF0SHQwSWVkU1NyQzRPaUlSUmhxQlZBbW9YNG1PcGZ1R1ZBMVFQWjlKZndB?= =?utf-8?B?TGJBSGNGbVd3c240YndsMTJhbDM3L3RSZC9LbjNHdTdGaDg2UUJQMUl4UUNQ?= =?utf-8?B?YlBhbVluNlIzckh5aVBsclZPNzFKRkpCYlRIbXZmb2JGbkw1cFpzd0RLZGlz?= =?utf-8?B?dHd5SFFZQUVHR3NMdnZsL3VteXgxWm9yQXluRXAzYVFRbHRTaWlEVXQwNHFP?= =?utf-8?B?eHJldVRDSTBWYmlNTjBrZ3lYSHpMVEdTbmhHNnBHL1NJQytMMEg1OExybGIw?= =?utf-8?B?TkVOWFRZdlZpM2oxM29ub1Nsd1JwY3Nacnl5VzJmamI4RjFJdmpqa0M4bkxq?= =?utf-8?B?SUFLZitQL1pBM013cjJEVmMvREEzWStCdGlNWmRZa0FxWXBuaFBWdUFTcjEz?= =?utf-8?B?cVNPRmJvOUhBYk1pcGNsWmpMS2VHU1lSdEpVMGptTGNsaTRNLzltRS8vd2xZ?= =?utf-8?B?ZTZEZWMxeVRaWDFnWmxOYnpBemozWXlEMmdHQkVKdmJXNDUwK3lzOThjZlRv?= =?utf-8?B?UWw5ZzlERC9MN2VEOEUrQVhwblIyQ2lrMytPRkVGWHhpWU9hVkhlWG82MWhE?= =?utf-8?B?RWZCejExaFZBQ1o4eFh4QW9TZlNoZFBPdEpzQWg3OVB2L2lDWXZSSTltVzZm?= =?utf-8?B?Ykp2UEdtNjBMd3BLSnJTMStUWjE0K1F1Wjd4Q0hFTVhGNTUzYndBZ1FqTXdl?= =?utf-8?B?UEt0bUt3YWFvRkJveVExaXorT2dwaDRwVkU3bXJCdnd4VURaREF0V1BaWUF1?= =?utf-8?B?ekw4aFoxcTdmaFJYY3A2aDZVb3JUTHYwWXZqYU9hbTlocThnc3J0K01mVWcx?= =?utf-8?B?ZlY4MWVjNnZqY3psSmp0OUhGNWExOTRUeGF0ekRzdER5T0FxeHJjQ3F2b0lu?= =?utf-8?B?T1FtV2JaTkpYb0pUaHhiTEc3RzQ3NzU0bG96ZmNYMmNoZlVpYURHdi91NnBS?= =?utf-8?B?S3d0dHZxekU5VFF3R3FzSkl6V0VzaHQyekRZUGxGM3F1OThmZlU5STR5NTB0?= =?utf-8?B?WDBlZGd1NFg0YTI0bnlBaVZxMVc4OEJ1Nm9WOXhJMmc4RU5TYTAxdHNsSGUr?= =?utf-8?B?WHROS3QybFYwMGkydHBHZ05tT3U2TjQ4WnhFTzVBWjY1NUFHcmNmREtFZ0Y2?= =?utf-8?B?Tkd5TVBGRURMVW5sNFAwOVdZWEt6bHhLcmFnWTdURG50YlhzdXJhUGxqNW9Y?= =?utf-8?B?bG9OT1liRURxeGMzTUY4WG01RzBMTVVoVDNBbG5vL05uSnFZQ0w4dmNYS2NN?= =?utf-8?B?RWM1WFVXRUlJa05sY3cwVmJtVGJWaVE2dDNTVTFuMUVlSUZpcVA2WVNIa25G?= =?utf-8?B?b3RITUl3aU1GcEN3QVpYSWIzanJxeFE3c2dOY0I5S0w5WTJMNlZWcnNYVmhI?= =?utf-8?B?NFFBdVJUR1FGVnBqWk14MGdEUVZlWUFvRnJjYXRuUVliYnh5UHFNRmVzWGVR?= =?utf-8?B?SThyK2lEMC9hNDRaeGRiUGltbDg1TU9rM1E2K2lrN1RxQU9OSlFmWU1vSGF3?= =?utf-8?B?MFdvdDZLOWx6RlF6SDVqRk1xN01reXlvZFEwWXdndDY2VU5lMFVhbnFNU2JH?= =?utf-8?B?MDRRUHNGYzNSd25nVWhNQnYxMVlVMkEyMUFpbndIYkZGSnZrK2s0YURJRWp4?= =?utf-8?B?L3pNTExLU0JRblBIUjRXUlZrY0dVbHFaNW02Rzk2SWhFOWozM1RBTjY3RFRW?= =?utf-8?Q?6mPTaPHcf9q8jr47arIueISIVlxAZ4=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SG2PR03MB6636.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OWJlWWxWR0x6SnVlR2JDWXBmQW9iS1E2NHdUK1Z1Qkg3VE9BV0NLWlNjZisx?= =?utf-8?B?TFB6b0dsTTJ6OC9QZU1zcjBKWm8zWE1tY1laOTdPOTQ5SlJlKy9yQlRpWW1Z?= =?utf-8?B?V1laZjNKeTFvN2M3NXhBaCtkcWIva05MU3NVUTFZSnV0ZW81bUx3emhhWXpF?= =?utf-8?B?eXUxYlNUUUpYZjhpcFNhM1d4ck53T05Sd3NOR0trWmx3aHJMM2Yxb3Z0djhh?= =?utf-8?B?aHZNZ2pNTVVEUU1NVmFUcE1oMTF3eGhINVl0anRLS0IrUldzZTFnYkVsdS9S?= =?utf-8?B?V3FDbUpmcko2ZXdtMXdEUVIvV2tEVk1kL2Y0WWhXbzc2VXFhNDhlNWNWT2Er?= =?utf-8?B?bXRNMWJnWHl1UERDYzE5c2tGaGY1SWdsdTVTV0tUV3k0TGtUTS9uNUVncDdZ?= =?utf-8?B?cmFROFJmOGk1M1d3Vy85Wnp4eEM3QXIwUzZwcUdxZHZHd3hVcFVoV2lrZVJm?= =?utf-8?B?T2NmR1A1a1FsYVVaK2tGSWthQ0pKTHpmS0t5VFFWM29jUUpaU0VuT09yUjgx?= =?utf-8?B?WUg0NkNQVDhjVHBrRzhEQUw3bzhVKzFxZ1BZa01QQ01kSFlNdWRCWlI3dnA5?= =?utf-8?B?Rm4vYVR1ZDRrYTc1QzB0NCtXbDFuS3RHL0tZYldyV1JhRUtYUm85NHo2aTE1?= =?utf-8?B?Qm9wVkFFaWNpSXA2NjRLN21EenFaVzNoRnFMNDA2bTZPY3NZWFRXenA3Q3lL?= =?utf-8?B?QlNxeU9EVVRvaHlYVEpML2pKREN6dFlSc1c0RHNNYURISkpuODBqMm5OZnZs?= =?utf-8?B?cGtQemYyT2JOcjMzbDhxNDEvRVhhcEltK2lBSzBudFJjUW1yVEtoc2gzZ1gx?= =?utf-8?B?Ukdpc2o0L2lCaXNXY3ZuMXR5WktyazQ0SFNZcUdhNURVZEhHV1lTSFVjRE45?= =?utf-8?B?L3dRN0lrbElZeWgvdWlqL2RMZS9VL0IzRTVXQStMZDloSVVjN1F1ME5yTjkz?= =?utf-8?B?ZnF5N2dCck9hdmg5SjFWN3J4U1ZHdlJab2FDTW5iUzR4Z1ZiajJqRzJsVHRx?= =?utf-8?B?SXhSdEpoNVByRTlNR25CQyttbUZmZ1NPbTRCS0w2L3oxSEpHdzZNVENVczM3?= =?utf-8?B?K015VTZuOG1BRTYzYjNGVG5GczQ4ZUk0YitKWk1Jb0NwN0VVQmJaVzlscjM5?= =?utf-8?B?VHk3TS9wSkZYK3BUTzNmQUNXRk5nb0Y1OUV6SnJiWEtPVDNJMzI1NGc5S1E2?= =?utf-8?B?WmRIeHd6Y0p0OVJmSGlEUmNLMHJ6VkpvYmh2aHEzd01JTGowNzFScDNGeHRS?= =?utf-8?B?RHRZbTlsZlpsK3pyT0c1N0Y3S1pEM1NkMXl4Q0U4UGFqdmVIbDVQZWRIaDZX?= =?utf-8?B?eXg4eUx2UlgvQStMMDVaNEpMUFhOczEzbTBBNU5JRkRFNHdiWXlwMksvZG1t?= =?utf-8?B?ajVvTGJuSHpXbkE3bnkvckUvaHRNYmplb2NiY0p4Q1I3S1A3bjdWN1p0U3lQ?= =?utf-8?B?aXZlMHZzbkp6bUJJVEEwMWc3d0hZenpGUGZHeVpkUzR5WEN2amdqNDM2emEw?= =?utf-8?B?d0FTVmhob1ZtTDFCMmphQm53OWZvTTI3bkFLaFRZVjdXN3BzclkwdkJJMzlV?= =?utf-8?B?YUhaeEtYUVZTM1dMOFJEeGMvaDVuK2xQZ3d4VkNIN0N1L3czMUNNMnNpYThp?= =?utf-8?B?bjFzNHU0bG5velFzM1M0N0gxL3BMQWRUaWUxM05JZ3JuSk81UGFoU2ZPczAr?= =?utf-8?B?K2NHaDBBNGc0M0dmM0ExNXoyWk9Oa1dmblZkTHh2eXZ4U29BbFdCbkRiMDJs?= =?utf-8?B?TWptRWVZMXZDTWFadkI0ZllDeHFzMVF5RjNpVUwxRjB4Zll3S3Fzd0JVMFZo?= =?utf-8?B?NjQrVzB3NlAyWWU3dlczWWsxclFoOGVkNlZLUTZZZGlab1BvVU5FcEJIdk1o?= =?utf-8?B?Z25MeTk0UldKZ3pSUEhMaXJOc1M4S2w1MHhMbDlPczZ3OWw1b29aVTVXaXp1?= =?utf-8?B?T2RzS0d4UFVVQkdNVDZMTE9kemtaUHpoWlpnZVlUOTROZ01kQTZia09ma3Bx?= =?utf-8?B?VDYxcWFYZmdZaUJEZUptam1mbUdIZWM2NjdEaFFLNmdvOEJWbG1ibGtac3E5?= =?utf-8?B?blNyR2llSVZ5SzJEdXFEUWhqQlh4TjFxUDVUMWRsVnBBTUtSMHV3RkRtNGF2?= =?utf-8?B?VmtXUUVTQjFvRnRtaTZ2OFAzKzlWSUdOc1JCT09XMDJWcjhxWXBRU3RCYVhy?= =?utf-8?B?ZEE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <86CD3523EB57BD408B36726ED428B97D@apcprd03.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SG2PR03MB6636.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 56141047-eccc-4b60-24f8-08dd9302ec9b X-MS-Exchange-CrossTenant-originalarrivaltime: 14 May 2025 16:18:12.4935 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a7687ede-7a6b-4ef6-bace-642f677fbe31 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: bDot4+9AQwJaK5HIis9PTznwWDSC84lwuf4t39KS+66nPYSAMBtsr1jCjMBLIzVnYPgvuSh124u2TWNoTmXcB3pP4Z4K6iJHF8Tja+j9OOk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR03MB8072 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250514_091829_373634_CDA9823A X-CRM114-Status: GOOD ( 16.79 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCAyMDI1LTA0LTExIGF0IDAzOjA3ICswMDAwLCBDSyBIdSAo6IOh5L+K5YWJKSB3cm90 ZToNCj4gT24gRnJpLCAyMDI1LTAzLTIxIGF0IDE3OjMzICswODAwLCBwYXVsLXBsLmNoZW4gd3Jv dGU6DQo+ID4gRnJvbTogTmFuY3kgTGluIDxuYW5jeS5saW5AbWVkaWF0ZWsuY29tPg0KPiA+IA0K PiA+IE92bHN5c19hZGFwdG9yIGlzIGFuIGVuY2Fwc3VsYXRlZCBtb2R1bGUgZGVzaWduZWQgdG8N Cj4gPiBzaW1wbGlmeSB0aGUgRFJNIGNvbnRyb2wgZmxvdy4gVGhpcyBtb2R1bGUgaXMgY29tcG9z ZWQNCj4gPiBvZiAyMCBFWERNQXMsIDIwIEJMRU5ERVJzLCBhbmQgMTIgT1VUUFJPQ3MuDQo+ID4g VHdvIEVYRE1BcyBtZXJnZSBpbnRvIG9uZSBsYXllciwgYWxsb3dpbmcgdGhlIG1vZHVsZQ0KPiA+ IHRvIHN1cHBvcnQgMjAgbGF5ZXJzIGZvciAzIGRpc3BsYXkgcGF0aHMuDQo+ID4gT3Zsc3lzX2Fk YXB0b3IgZHJpdmVyIGlzIGludGVncmF0ZWQgd2l0aGluIHRoZQ0KPiA+IG10a19kZHBfY29tcCBm cmFtZXdvcmsuDQo+ID4gDQo+ID4gU2lnbmVkLW9mZi1ieTogTmFuY3kgTGluIDxuYW5jeS5saW5A bWVkaWF0ZWsuY29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFBhdWwtcGwgQ2hlbiA8cGF1bC1wbC5j aGVuQG1lZGlhdGVrLmNvbT4NCj4gPiAtLS0NCj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRl ay9NYWtlZmlsZcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCAxICsNCj4gPiDCoGRyaXZl cnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGRwX2NvbXAuY8KgwqDCoMKgwqDCoCB8wqAgMjggKw0K PiA+IMKgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kZHBfY29tcC5owqDCoMKgwqDCoMKg IHzCoMKgIDEgKw0KPiA+IMKgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX2Rydi5o wqDCoMKgwqDCoMKgIHzCoCAzMiArDQo+ID4gwqAuLi4vZHJtL21lZGlhdGVrL210a19kaXNwX292 bHN5c19hZGFwdG9yLmPCoMKgwqAgfCA3OTcNCj4gPiArKysrKysrKysrKysrKysrKysNCj4gPiDC oGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jwqDCoMKgwqDCoMKgwqAgfMKg IDczICsrDQo+ID4gwqBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaMKgwqDC oMKgwqDCoMKgIHzCoCAxMSArLQ0KPiA+IMKgNyBmaWxlcyBjaGFuZ2VkLCA5NDIgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQ0KPiA+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bHN5c19hZGFwdG9yLmMNCj4gPiANCj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL01ha2VmaWxlDQo+ID4gYi9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUNCj4gPiBpbmRleCA5NTQ2YmM2YjdiMmUuLmRl ZGY1MDg2MGQzZiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvTWFr ZWZpbGUNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUNCj4gPiBA QCAtOSw2ICs5LDcgQEAgbWVkaWF0ZWstZHJtLXkgOj0gbXRrX2NydGMubyBcDQo+ID4gwqAJCcKg IG10a19kaXNwX2V4ZG1hLm8gXA0KPiA+IMKgCQnCoCBtdGtfZGlzcF9nYW1tYS5vIFwNCj4gPiDC oAkJwqAgbXRrX2Rpc3BfbWVyZ2UubyBcDQo+ID4gKwkJwqAgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0 b3IubyBcDQo+ID4gwqAJCcKgIG10a19kaXNwX292bC5vIFwNCj4gPiDCoAkJwqAgbXRrX2Rpc3Bf b3V0cHJvYy5vIFwNCj4gPiDCoAkJwqAgbXRrX2Rpc3Bfb3ZsX2FkYXB0b3IubyBcDQo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGRwX2NvbXAuYw0KPiA+IGIv ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kZHBfY29tcC5jDQo+ID4gaW5kZXggY2M3ODA3 NDRmMDYwLi5jOTZlMDI3MzU5YWMgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kZHBfY29tcC5jDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kZHBfY29tcC5jDQo+ID4gQEAgLTM2OCw2ICszNjgsMzEgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBtdGtfZGRwX2NvbXBfZnVuY3MgZGRwX292bA0KPiA+ID0gew0KPiA+IMKgCS5nZXRfbnVt X2Zvcm1hdHMgPSBtdGtfb3ZsX2dldF9udW1fZm9ybWF0cywNCj4gPiDCoH07DQo+ID4gwqANCj4g PiArc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZGRwX2NvbXBfZnVuY3MgZGRwX292bHN5c19hZGFw dG9yID0gew0KPiA+ICsJLnBvd2VyX29uID0gbXRrX292bHN5c19hZGFwdG9yX3Bvd2VyX29uLA0K PiA+ICsJLnBvd2VyX29mZiA9IG10a19vdmxzeXNfYWRhcHRvcl9wb3dlcl9vZmYsDQo+ID4gKwku Y2xrX2VuYWJsZSA9IG10a19vdmxzeXNfYWRhcHRvcl9jbGtfZW5hYmxlLA0KPiA+ICsJLmNsa19k aXNhYmxlID0gbXRrX292bHN5c19hZGFwdG9yX2Nsa19kaXNhYmxlLA0KPiA+ICsJLmNvbmZpZyA9 IG10a19vdmxzeXNfYWRhcHRvcl9jb25maWcsDQo+ID4gKwkuc3RhcnQgPSBtdGtfb3Zsc3lzX2Fk YXB0b3Jfc3RhcnQsDQo+ID4gKwkuc3RvcCA9IG10a19vdmxzeXNfYWRhcHRvcl9zdG9wLA0KPiA+ ICsJLmxheWVyX2NoZWNrID0gbXRrX292bHN5c19hZGFwdG9yX2xheWVyX2NoZWNrLA0KPiA+ICsJ LmxheWVyX25yID0gbXRrX292bHN5c19hZGFwdG9yX2xheWVyX25yLA0KPiA+ICsJLmxheWVyX2Nv bmZpZyA9IG10a19vdmxzeXNfYWRhcHRvcl9sYXllcl9jb25maWcsDQo+ID4gKwkucmVnaXN0ZXJf dmJsYW5rX2NiID0NCj4gPiBtdGtfb3Zsc3lzX2FkYXB0b3JfcmVnaXN0ZXJfdmJsYW5rX2NiLA0K PiA+ICsJLnVucmVnaXN0ZXJfdmJsYW5rX2NiID0NCj4gPiBtdGtfb3Zsc3lzX2FkYXB0b3JfdW5y ZWdpc3Rlcl92YmxhbmtfY2IsDQo+ID4gKwkuZW5hYmxlX3ZibGFuayA9IG10a19vdmxzeXNfYWRh cHRvcl9lbmFibGVfdmJsYW5rLA0KPiA+ICsJLmRpc2FibGVfdmJsYW5rID0gbXRrX292bHN5c19h ZGFwdG9yX2Rpc2FibGVfdmJsYW5rLA0KPiA+ICsJLmRtYV9kZXZfZ2V0ID0gbXRrX292bHN5c19h ZGFwdG9yX2RtYV9kZXZfZ2V0LA0KPiA+ICsJLmNvbm5lY3QgPSBtdGtfb3Zsc3lzX2FkYXB0b3Jf Y29ubmVjdCwNCj4gPiArCS5kaXNjb25uZWN0ID0gbXRrX292bHN5c19hZGFwdG9yX2Rpc2Nvbm5l Y3QsDQo+ID4gKwkuYWRkID0gbXRrX292bHN5c19hZGFwdG9yX2FkZF9jb21wLA0KPiA+ICsJLnJl bW92ZSA9IG10a19vdmxzeXNfYWRhcHRvcl9yZW1vdmVfY29tcCwNCj4gPiArCS5nZXRfYmxlbmRf bW9kZXMgPSBtdGtfb3Zsc3lzX2FkYXB0b3JfZ2V0X2JsZW5kX21vZGVzLA0KPiA+ICsJLmdldF9m b3JtYXRzID0gbXRrX292bHN5c19hZGFwdG9yX2dldF9mb3JtYXRzLA0KPiA+ICsJLmdldF9udW1f Zm9ybWF0cyA9IG10a19vdmxzeXNfYWRhcHRvcl9nZXRfbnVtX2Zvcm1hdHMsDQo+ID4gK307DQo+ ID4gKw0KPiA+IMKgc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZGRwX2NvbXBfZnVuY3MgZGRwX3Bv c3RtYXNrID0gew0KPiA+IMKgCS5jbGtfZW5hYmxlID0gbXRrX2RkcF9jbGtfZW5hYmxlLA0KPiA+ IMKgCS5jbGtfZGlzYWJsZSA9IG10a19kZHBfY2xrX2Rpc2FibGUsDQo+ID4gQEAgLTQzNyw2ICs0 NjIsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0DQo+ID4gbXRrX2RkcF9jb21wX3N0ZW1b TVRLX0REUF9DT01QX1RZUEVfTUFYXSA9IHsNCj4gPiDCoAlbTVRLX0RJU1BfT1ZMXSA9ICJvdmwi LA0KPiA+IMKgCVtNVEtfRElTUF9PVkxfMkxdID0gIm92bC0ybCIsDQo+ID4gwqAJW01US19ESVNQ X09WTF9BREFQVE9SXSA9ICJvdmxfYWRhcHRvciIsDQo+ID4gKwlbTVRLX0RJU1BfT1ZMU1lTX0FE QVBUT1JdID0gIm92bHN5c19hZGFwdG9yIiwNCj4gPiDCoAlbTVRLX0RJU1BfUE9TVE1BU0tdID0g InBvc3RtYXNrIiwNCj4gPiDCoAlbTVRLX0RJU1BfUFdNXSA9ICJwd20iLA0KPiA+IMKgCVtNVEtf RElTUF9SRE1BXSA9ICJyZG1hIiwNCj4gPiBAQCAtNDY5LDYgKzQ5NSw4IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgbXRrX2RkcF9jb21wX21hdGNoDQo+ID4gbXRrX2RkcF9tYXRjaGVzW0REUF9DT01Q T05FTlRfRFJNX0lEX01BWF0NCj4gPiDCoAlbRERQX0NPTVBPTkVOVF9EUEkwXQkJPSB7DQo+ID4g TVRLX0RQSSwJCQkwLCAmZGRwX2RwaSB9LA0KPiA+IMKgCVtERFBfQ09NUE9ORU5UX0RQSTFdCQk9 IHsNCj4gPiBNVEtfRFBJLAkJCTEsICZkZHBfZHBpIH0sDQo+ID4gwqAJW0REUF9DT01QT05FTlRf RFJNX09WTF9BREFQVE9SXQk9IHsNCj4gPiBNVEtfRElTUF9PVkxfQURBUFRPUiwJMCwgJmRkcF9v dmxfYWRhcHRvciB9LA0KPiA+ICsJW0REUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMF0g PSB7DQo+ID4gTVRLX0RJU1BfT1ZMU1lTX0FEQVBUT1IsIDAsICZkZHBfb3Zsc3lzX2FkYXB0b3J9 LA0KPiA+ICsJW0REUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMV0gPSB7DQo+ID4gTVRL X0RJU1BfT1ZMU1lTX0FEQVBUT1IsIDEsICZkZHBfb3Zsc3lzX2FkYXB0b3J9LA0KPiA+IMKgCVtE RFBfQ09NUE9ORU5UX0RTQzBdCQk9IHsNCj4gPiBNVEtfRElTUF9EU0MsCQkwLCAmZGRwX2RzYyB9 LA0KPiA+IMKgCVtERFBfQ09NUE9ORU5UX0RTQzFdCQk9IHsNCj4gPiBNVEtfRElTUF9EU0MsCQkx LCAmZGRwX2RzYyB9LA0KPiA+IMKgCVtERFBfQ09NUE9ORU5UX0RTSTBdCQk9IHsNCj4gPiBNVEtf RFNJLAkJCTAsICZkZHBfZHNpIH0sDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZGRwX2NvbXAuaA0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210 a19kZHBfY29tcC5oDQo+ID4gaW5kZXggYjMzZDMyODliOGI2Li5lZjY0Y2U3YTA3MWYgMTAwNjQ0 DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kZHBfY29tcC5oDQo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kZHBfY29tcC5oDQo+ID4gQEAgLTMz LDYgKzMzLDcgQEAgZW51bSBtdGtfZGRwX2NvbXBfdHlwZSB7DQo+ID4gwqAJTVRLX0RJU1BfTVVU RVgsDQo+ID4gwqAJTVRLX0RJU1BfT0QsDQo+ID4gwqAJTVRLX0RJU1BfT1ZMLA0KPiA+ICsJTVRL X0RJU1BfT1ZMU1lTX0FEQVBUT1IsDQo+ID4gwqAJTVRLX0RJU1BfT1ZMXzJMLA0KPiA+IMKgCU1U S19ESVNQX09WTF9BREFQVE9SLA0KPiA+IMKgCU1US19ESVNQX1BPU1RNQVNLLA0KPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZHJ2LmgNCj4gPiBiL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9kcnYuaA0KPiA+IGluZGV4IDNjNTE5YTY2 MjA3NC4uMWZmOGM0NTkzZmMxIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZGlzcF9kcnYuaA0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZGlzcF9kcnYuaA0KPiA+IEBAIC0xNzQsNiArMTc0LDM4IEBAIHNpemVfdCBtdGtfb3ZsX2Fk YXB0b3JfZ2V0X251bV9mb3JtYXRzKHN0cnVjdA0KPiA+IGRldmljZSAqZGV2KTsNCj4gPiDCoGVu dW0gZHJtX21vZGVfc3RhdHVzIG10a19vdmxfYWRhcHRvcl9tb2RlX3ZhbGlkKHN0cnVjdCBkZXZp Y2UNCj4gPiAqZGV2LA0KPiA+IMKgCQkJCQkJY29uc3Qgc3RydWN0DQo+ID4gZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZSk7DQo+ID4gwqANCj4gPiAraW50IG10a19vdmxzeXNfYWRhcHRvcl9wb3dlcl9v bihzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICt2b2lkIG10a19vdmxzeXNfYWRhcHRvcl9wb3dl cl9vZmYoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gPiArdm9pZCBtdGtfb3Zsc3lzX2FkYXB0b3Jf YWRkX2NvbXAoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QNCj4gPiBtdGtfbXV0ZXggKm11dGV4 KTsNCj4gPiArdm9pZCBtdGtfb3Zsc3lzX2FkYXB0b3JfcmVtb3ZlX2NvbXAoc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3QNCj4gPiBtdGtfbXV0ZXggKm11dGV4KTsNCj4gPiArdm9pZCBtdGtfb3Zs c3lzX2FkYXB0b3JfY29ubmVjdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UNCj4g PiAqbW1zeXNfZGV2LA0KPiA+ICsJCQkJdW5zaWduZWQgaW50IG5leHQpOw0KPiA+ICt2b2lkIG10 a19vdmxzeXNfYWRhcHRvcl9kaXNjb25uZWN0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0DQo+ ID4gZGV2aWNlICptbXN5c19kZXYsDQo+ID4gKwkJCQnCoMKgIHVuc2lnbmVkIGludCBuZXh0KTsN Cj4gPiAraW50IG10a19vdmxzeXNfYWRhcHRvcl9jbGtfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRl dik7DQo+ID4gK3ZvaWQgbXRrX292bHN5c19hZGFwdG9yX2Nsa19kaXNhYmxlKHN0cnVjdCBkZXZp Y2UgKmRldik7DQo+ID4gK3ZvaWQgbXRrX292bHN5c19hZGFwdG9yX2NvbmZpZyhzdHJ1Y3QgZGV2 aWNlICpkZXYsIHVuc2lnbmVkIGludCB3LA0KPiA+ICsJCQnCoMKgwqDCoMKgwqAgdW5zaWduZWQg aW50IGgsIHVuc2lnbmVkIGludA0KPiA+IHZyZWZyZXNoLA0KPiA+ICsJCQnCoMKgwqDCoMKgwqAg dW5zaWduZWQgaW50IGJwYywgc3RydWN0IGNtZHFfcGt0DQo+ID4gKmNtZHFfcGt0KTsNCj4gPiAr dm9pZCBtdGtfb3Zsc3lzX2FkYXB0b3JfbGF5ZXJfY29uZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwg dW5zaWduZWQNCj4gPiBpbnQgaWR4LA0KPiA+ICsJCQkJwqDCoMKgwqAgc3RydWN0IG10a19wbGFu ZV9zdGF0ZQ0KPiA+ICpzdGF0ZSwNCj4gPiArCQkJCcKgwqDCoMKgIHN0cnVjdCBjbWRxX3BrdCAq Y21kcV9wa3QpOw0KPiA+ICtpbnQgbXRrX292bHN5c19hZGFwdG9yX2xheWVyX2NoZWNrKHN0cnVj dCBkZXZpY2UgKmRldiwNCj4gPiArCQkJCcKgwqAgdW5zaWduZWQgaW50IGlkeCwNCj4gPiArCQkJ CcKgwqAgc3RydWN0IG10a19wbGFuZV9zdGF0ZQ0KPiA+ICptdGtfc3RhdGUpOw0KPiA+ICt2b2lk IG10a19vdmxzeXNfYWRhcHRvcl9yZWdpc3Rlcl92YmxhbmtfY2Ioc3RydWN0IGRldmljZSAqZGV2 LA0KPiA+IHZvaWQgKCp2YmxhbmtfY2IpKHZvaWQgKiksDQo+ID4gKwkJCQkJwqDCoCB2b2lkICp2 YmxhbmtfY2JfZGF0YSk7DQo+ID4gK3ZvaWQgbXRrX292bHN5c19hZGFwdG9yX3VucmVnaXN0ZXJf dmJsYW5rX2NiKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ID4gK3ZvaWQgbXRrX292bHN5c19hZGFw dG9yX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gPiArdm9pZCBtdGtfb3Zs c3lzX2FkYXB0b3JfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gPiArdm9p ZCBtdGtfb3Zsc3lzX2FkYXB0b3Jfc3RhcnQoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gPiArdm9p ZCBtdGtfb3Zsc3lzX2FkYXB0b3Jfc3RvcChzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICt1bnNp Z25lZCBpbnQgbXRrX292bHN5c19hZGFwdG9yX2xheWVyX25yKHN0cnVjdCBkZXZpY2UgKmRldik7 DQo+ID4gK3N0cnVjdCBkZXZpY2UgKm10a19vdmxzeXNfYWRhcHRvcl9kbWFfZGV2X2dldChzdHJ1 Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICt1MzIgbXRrX292bHN5c19hZGFwdG9yX2dldF9ibGVuZF9t b2RlcyhzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICtjb25zdCB1MzIgKm10a19vdmxzeXNfYWRh cHRvcl9nZXRfZm9ybWF0cyhzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICtzaXplX3QgbXRrX292 bHN5c19hZGFwdG9yX2dldF9udW1fZm9ybWF0cyhzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICsN Cj4gPiDCoHZvaWQgbXRrX3JkbWFfYnlwYXNzX3NoYWRvdyhzdHJ1Y3QgZGV2aWNlICpkZXYpOw0K PiA+IMKgaW50IG10a19yZG1hX2Nsa19lbmFibGUoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gPiDC oHZvaWQgbXRrX3JkbWFfY2xrX2Rpc2FibGUoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bHN5c19hZGFwdG9y LmMNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9vdmxzeXNfYWRhcHRv ci5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjA0 Y2I1NTViZDc3Yg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3IuYw0KPiA+IEBAIC0wLDAgKzEsNzk3IEBA DQo+ID4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkNCj4gPiArLyoN Cj4gPiArICogQ29weXJpZ2h0IChjKSAyMDI1IE1lZGlhVGVrIEluYy4NCj4gPiArICovDQo+ID4g Kw0KPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4NCj4gPiArI2luY2x1ZGUgPGRybS9k cm1fb2YuaD4NCj4gPiArI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4NCj4gPiArI2luY2x1ZGUg PGxpbnV4L2Nsay5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+DQo+ID4gKyNp bmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvb2ZfZGV2 aWNlLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+DQo+ID4gKyNpbmNsdWRl IDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRp bWUuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51 eC9zb2MvbWVkaWF0ZWsvbXRrLWNtZHEuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3NvYy9tZWRp YXRlay9tdGstbW1zeXMuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3NvYy9tZWRpYXRlay9tdGst bXV0ZXguaD4NCj4gPiArDQo+ID4gKyNpbmNsdWRlICJtdGtfZGlzcF9ibGVuZGVyLmgiDQo+ID4g KyNpbmNsdWRlICJtdGtfZGlzcF9kcnYuaCINCj4gPiArI2luY2x1ZGUgIm10a19jcnRjLmgiDQo+ IA0KPiBBbHBoYWJldGljIG9yZGVyLg0KPiANCk9LLCBJIHdpbGwgZml4IGl0Lg0KPiA+ICsjaW5j bHVkZSAibXRrX2RkcF9jb21wLmgiDQo+IA0KPiBEaXR0by4NCg0KT0ssIEkgd2lsbCBmaXggaXQu DQo+IA0KPiA+ICsjaW5jbHVkZSAibXRrX2RybV9kcnYuaCINCj4gPiArDQo+ID4gKyNkZWZpbmUg T1ZMU1lTX0FEQVBUT1JfRFJJVkVSX0RBVEFfTUFYX1NJWkUgODE5MQ0KPiA+ICsNCj4gPiArZW51 bSBtdGtfb3Zsc3lzX2FkYXB0b3JfY29tcF90eXBlIHsNCj4gPiArCU9WTFNZU19BREFQVE9SX1RZ UEVfRVhETUEgPSAwLA0KPiA+ICsJT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLA0KPiA+ICsJ T1ZMU1lTX0FEQVBUT1JfVFlQRV9PVVRQUk9DLA0KPiA+ICsJT1ZMU1lTX0FEQVBUT1JfVFlQRV9O VU0sDQo+ID4gK307DQo+ID4gKw0KPiA+ICtlbnVtIG10a19vdmxzeXNfYWRhcHRvcl9jb21wX2lk IHsNCj4gPiArCU9WTFNZU19BREFQVE9SX0VYRE1BMCwNCj4gPiArCU9WTFNZU19BREFQVE9SX0VY RE1BMSwNCj4gPiArCU9WTFNZU19BREFQVE9SX0VYRE1BMiwNCj4gPiArCU9WTFNZU19BREFQVE9S X0VYRE1BMywNCj4gPiArCU9WTFNZU19BREFQVE9SX0VYRE1BNCwNCj4gPiArCU9WTFNZU19BREFQ VE9SX0VYRE1BNSwNCj4gPiArCU9WTFNZU19BREFQVE9SX0VYRE1BNiwNCj4gPiArCU9WTFNZU19B REFQVE9SX0VYRE1BNywNCj4gPiArCU9WTFNZU19BREFQVE9SX0VYRE1BOCwNCj4gPiArCU9WTFNZ U19BREFQVE9SX0VYRE1BOSwNCj4gPiArCU9WTFNZU19BREFQVE9SX0VYRE1BMTAsDQo+ID4gKwlP VkxTWVNfQURBUFRPUl9FWERNQTExLA0KPiA+ICsJT1ZMU1lTX0FEQVBUT1JfRVhETUExMiwNCj4g PiArCU9WTFNZU19BREFQVE9SX0VYRE1BMTMsDQo+ID4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTE0 LA0KPiA+ICsJT1ZMU1lTX0FEQVBUT1JfRVhETUExNSwNCj4gPiArCU9WTFNZU19BREFQVE9SX0VY RE1BMTYsDQo+ID4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTE3LA0KPiA+ICsJT1ZMU1lTX0FEQVBU T1JfRVhETUExOCwNCj4gPiArCU9WTFNZU19BREFQVE9SX0VYRE1BMTksDQo+ID4gKwlPVkxTWVNf QURBUFRPUl9CTEVOREVSMCwNCj4gPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIxLA0KPiA+ICsJ T1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjIsDQo+ID4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSMywN Cj4gPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVI0LA0KPiA+ICsJT1ZMU1lTX0FEQVBUT1JfQkxF TkRFUjUsDQo+ID4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSNiwNCj4gPiArCU9WTFNZU19BREFQ VE9SX0JMRU5ERVI3LA0KPiA+ICsJT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjgsDQo+ID4gKwlPVkxT WVNfQURBUFRPUl9CTEVOREVSOSwNCj4gPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIxMCwNCj4g PiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIxMSwNCj4gPiArCU9WTFNZU19BREFQVE9SX0JMRU5E RVIxMiwNCj4gPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIxMywNCj4gPiArCU9WTFNZU19BREFQ VE9SX0JMRU5ERVIxNCwNCj4gPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIxNSwNCj4gPiArCU9W TFNZU19BREFQVE9SX0JMRU5ERVIxNiwNCj4gPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIxNywN Cj4gPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIxOCwNCj4gPiArCU9WTFNZU19BREFQVE9SX0JM RU5ERVIxOSwNCj4gPiArCU9WTFNZU19BREFQVE9SX09VVFBST0MwLA0KPiA+ICsJT1ZMU1lTX0FE QVBUT1JfT1VUUFJPQzEsDQo+ID4gKwlPVkxTWVNfQURBUFRPUl9PVVRQUk9DMiwNCj4gPiArCU9W TFNZU19BREFQVE9SX09VVFBST0MzLA0KPiA+ICsJT1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzQsDQo+ ID4gKwlPVkxTWVNfQURBUFRPUl9PVVRQUk9DNSwNCj4gPiArCU9WTFNZU19BREFQVE9SX09VVFBS T0M2LA0KPiA+ICsJT1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzcsDQo+ID4gKwlPVkxTWVNfQURBUFRP Ul9PVVRQUk9DOCwNCj4gPiArCU9WTFNZU19BREFQVE9SX09VVFBST0M5LA0KPiA+ICsJT1ZMU1lT X0FEQVBUT1JfT1VUUFJPQzEwLA0KPiA+ICsJT1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzExLA0KPiA+ ICsJT1ZMU1lTX0FEQVBUT1JfSURfTUFYDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3Qgb3Zs c3lzX2FkYXB0b3JfY29tcF9tYXRjaCB7DQo+ID4gKwllbnVtIG10a19vdmxzeXNfYWRhcHRvcl9j b21wX3R5cGUgdHlwZTsNCj4gPiArCWludCBhbGlhc19pZDsNCj4gPiArCWVudW0gbXRrX2RkcF9j b21wX2lkIGNvbXBfaWQ7DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgbXRrX2Rpc3Bfb3Zs c3lzX2FkYXB0b3Igew0KPiA+ICsJc3RydWN0IGRldmljZSAqb3ZsX2FkYXB0b3JfY29tcFtPVkxT WVNfQURBUFRPUl9JRF9NQVhdOw0KPiA+ICsJc3RydWN0IGRldmljZSAqbW1zeXNfZGV2Ow0KPiA+ ICsJY29uc3QgdW5zaWduZWQgaW50ICpwYXRoOw0KPiA+ICsJdW5zaWduZWQgaW50IHBhdGhfc2l6 ZTsNCj4gPiArCXVuc2lnbmVkIGludCBsYXllcl9ucjsNCj4gPiArCWJvb2wgY2hpbGRyZW5fYm91 bmQ7DQo+ID4gKwl1bnNpZ25lZCBpbnQgbWF4X3NpemU7DQo+IA0KPiBJdCdzIG5vdCBuZWNlc3Nh cnkgdG8gc3RvcmUgbWF4X3NpemUgaW4gcHJpdmF0ZSBkYXRhLg0KPiBEcm9wIHRoaXMgYW5kIHVz ZSBPVkxTWVNfQURBUFRPUl9EUklWRVJfREFUQV9NQVhfU0laRSBkaXJlY3RseS4NCj4gDQpPSywg SSB3aWxsIGZpeCBpdCBhbmQgdXNlIE9WTFNZU19BREFQVE9SX0RSSVZFUl9EQVRBX01BWF9TSVpF IA0KDQpkaXJlY3RseSB0byByZXBsYWNlIHRoZSBtYXhfc2l6ZS4NCj4gPiArfTsNCj4gPiArDQo+ ID4gK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QNCj4gPiBwcml2YXRlX2NvbXBfc3RlbVtPVkxT WVNfQURBUFRPUl9UWVBFX05VTV0gPSB7DQo+ID4gKwlbT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERN QV0JPSAiZXhkbWEiLA0KPiA+ICsJW09WTFNZU19BREFQVE9SX1RZUEVfQkxFTkRFUl0JPSAiYmxl bmRlciIsDQo+ID4gKwlbT1ZMU1lTX0FEQVBUT1JfVFlQRV9PVVRQUk9DXQk9ICJvdXRwcm9jIiwN Cj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb3Zsc3lzX2FkYXB0b3Jf Y29tcF9tYXRjaA0KPiA+IGNvbXBfbWF0Y2hlc1tPVkxTWVNfQURBUFRPUl9JRF9NQVhdID0gew0K PiA+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BMF3CoMKgID0geyBPVkxTWVNfQURBUFRPUl9UWVBF X0VYRE1BLA0KPiA+IDAsIEREUF9DT01QT05FTlRfSURfTUFYfSwNCj4gPiArCVtPVkxTWVNfQURB UFRPUl9FWERNQTFdCcKgID0gew0KPiA+IE9WTFNZU19BREFQVE9SX1RZUEVfRVhETUEsIDEsIERE UF9DT01QT05FTlRfSURfTUFYfSwNCj4gPiArCVtPVkxTWVNfQURBUFRPUl9FWERNQTJdCcKgID0g ew0KPiA+IE9WTFNZU19BREFQVE9SX1RZUEVfRVhETUEsIDIsIEREUF9DT01QT05FTlRfT1ZMMF9F WERNQTJ9LA0KPiA+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BM10JwqAgPSB7DQo+ID4gT1ZMU1lT X0FEQVBUT1JfVFlQRV9FWERNQSwgMywgRERQX0NPTVBPTkVOVF9PVkwwX0VYRE1BM30sDQo+ID4g KwlbT1ZMU1lTX0FEQVBUT1JfRVhETUE0XQnCoCA9IHsNCj4gPiBPVkxTWVNfQURBUFRPUl9UWVBF X0VYRE1BLCA0LCBERFBfQ09NUE9ORU5UX09WTDBfRVhETUE0fSwNCj4gPiArCVtPVkxTWVNfQURB UFRPUl9FWERNQTVdCcKgID0gew0KPiA+IE9WTFNZU19BREFQVE9SX1RZUEVfRVhETUEsIDUsIERE UF9DT01QT05FTlRfT1ZMMF9FWERNQTV9LA0KPiA+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BNl0J wqAgPSB7DQo+ID4gT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSwgNiwgRERQX0NPTVBPTkVOVF9P VkwwX0VYRE1BNn0sDQo+ID4gKwlbT1ZMU1lTX0FEQVBUT1JfRVhETUE3XQnCoCA9IHsNCj4gPiBP VkxTWVNfQURBUFRPUl9UWVBFX0VYRE1BLCA3LCBERFBfQ09NUE9ORU5UX09WTDBfRVhETUE3fSwN Cj4gPiArCVtPVkxTWVNfQURBUFRPUl9FWERNQThdCcKgID0gew0KPiA+IE9WTFNZU19BREFQVE9S X1RZUEVfRVhETUEsIDgsIEREUF9DT01QT05FTlRfT1ZMMF9FWERNQTh9LA0KPiA+ICsJW09WTFNZ U19BREFQVE9SX0VYRE1BOV0JwqAgPSB7DQo+ID4gT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSwg OSwgRERQX0NPTVBPTkVOVF9PVkwwX0VYRE1BOX0sDQo+ID4gKwlbT1ZMU1lTX0FEQVBUT1JfRVhE TUExMl3CoMKgID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX0VYRE1BLA0KPiA+IDEyLCBERFBfQ09N UE9ORU5UX09WTDFfRVhETUEyfSwNCj4gPiArCVtPVkxTWVNfQURBUFRPUl9FWERNQTEzXcKgwqAg PSB7IE9WTFNZU19BREFQVE9SX1RZUEVfRVhETUEsDQo+ID4gMTMsIEREUF9DT01QT05FTlRfT1ZM MV9FWERNQTN9LA0KPiA+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BMTRdwqDCoCA9IHsgT1ZMU1lT X0FEQVBUT1JfVFlQRV9FWERNQSwNCj4gPiAxNCwgRERQX0NPTVBPTkVOVF9PVkwxX0VYRE1BNH0s DQo+ID4gKwlbT1ZMU1lTX0FEQVBUT1JfRVhETUExNV3CoMKgID0geyBPVkxTWVNfQURBUFRPUl9U WVBFX0VYRE1BLA0KPiA+IDE1LCBERFBfQ09NUE9ORU5UX09WTDFfRVhETUE1fSwNCj4gPiArCVtP VkxTWVNfQURBUFRPUl9FWERNQTE2XcKgwqAgPSB7IE9WTFNZU19BREFQVE9SX1RZUEVfRVhETUEs DQo+ID4gMTYsIEREUF9DT01QT05FTlRfT1ZMMV9FWERNQTZ9LA0KPiA+ICsJW09WTFNZU19BREFQ VE9SX0VYRE1BMTddwqDCoCA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSwNCj4gPiAxNywg RERQX0NPTVBPTkVOVF9PVkwxX0VYRE1BN30sDQo+ID4gKwlbT1ZMU1lTX0FEQVBUT1JfRVhETUEx OF3CoMKgID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX0VYRE1BLA0KPiA+IDE4LCBERFBfQ09NUE9O RU5UX09WTDFfRVhETUE4fSwNCj4gPiArCVtPVkxTWVNfQURBUFRPUl9FWERNQTE5XcKgwqAgPSB7 IE9WTFNZU19BREFQVE9SX1RZUEVfRVhETUEsDQo+ID4gMTksIEREUF9DT01QT05FTlRfT1ZMMV9F WERNQTl9LA0KPiA+ICsJW09WTFNZU19BREFQVE9SX0JMRU5ERVIxXSA9IHsgT1ZMU1lTX0FEQVBU T1JfVFlQRV9CTEVOREVSLA0KPiA+IDEsIEREUF9DT01QT05FTlRfT1ZMMF9CTEVOREVSMX0sDQo+ ID4gKwlbT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjJdID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX0JM RU5ERVIsDQo+ID4gMiwgRERQX0NPTVBPTkVOVF9PVkwwX0JMRU5ERVIyfSwNCj4gPiArCVtPVkxT WVNfQURBUFRPUl9CTEVOREVSM10gPSB7IE9WTFNZU19BREFQVE9SX1RZUEVfQkxFTkRFUiwNCj4g PiAzLCBERFBfQ09NUE9ORU5UX09WTDBfQkxFTkRFUjN9LA0KPiA+ICsJW09WTFNZU19BREFQVE9S X0JMRU5ERVI0XSA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLA0KPiA+IDQsIEREUF9D T01QT05FTlRfT1ZMMF9CTEVOREVSNH0sDQo+ID4gKwlbT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjVd ID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX0JMRU5ERVIsDQo+ID4gNSwgRERQX0NPTVBPTkVOVF9P VkwwX0JMRU5ERVI1fSwNCj4gPiArCVtPVkxTWVNfQURBUFRPUl9CTEVOREVSNl0gPSB7IE9WTFNZ U19BREFQVE9SX1RZUEVfQkxFTkRFUiwNCj4gPiA2LCBERFBfQ09NUE9ORU5UX09WTDBfQkxFTkRF UjZ9LA0KPiA+ICsJW09WTFNZU19BREFQVE9SX0JMRU5ERVI3XSA9IHsgT1ZMU1lTX0FEQVBUT1Jf VFlQRV9CTEVOREVSLA0KPiA+IDcsIEREUF9DT01QT05FTlRfT1ZMMF9CTEVOREVSN30sDQo+ID4g KwlbT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjhdID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX0JMRU5E RVIsDQo+ID4gOCwgRERQX0NPTVBPTkVOVF9PVkwwX0JMRU5ERVI4fSwNCj4gPiArCVtPVkxTWVNf QURBUFRPUl9CTEVOREVSOV0gPSB7IE9WTFNZU19BREFQVE9SX1RZUEVfQkxFTkRFUiwNCj4gPiA5 LCBERFBfQ09NUE9ORU5UX09WTDBfQkxFTkRFUjl9LA0KPiA+ICsJW09WTFNZU19BREFQVE9SX0JM RU5ERVIxMV0gPSB7DQo+ID4gKwkJT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLCAxMSwNCj4g PiBERFBfQ09NUE9ORU5UX09WTDFfQkxFTkRFUjF9LA0KPiA+ICsJW09WTFNZU19BREFQVE9SX0JM RU5ERVIxMl0gPSB7DQo+ID4gKwkJT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLCAxMiwNCj4g PiBERFBfQ09NUE9ORU5UX09WTDFfQkxFTkRFUjJ9LA0KPiA+ICsJW09WTFNZU19BREFQVE9SX0JM RU5ERVIxM10gPSB7DQo+ID4gKwkJT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLCAxMywNCj4g PiBERFBfQ09NUE9ORU5UX09WTDFfQkxFTkRFUjN9LA0KPiA+ICsJW09WTFNZU19BREFQVE9SX0JM RU5ERVIxNF0gPSB7DQo+ID4gKwkJT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLCAxNCwNCj4g PiBERFBfQ09NUE9ORU5UX09WTDFfQkxFTkRFUjR9LA0KPiA+ICsJW09WTFNZU19BREFQVE9SX0JM RU5ERVIxNV0gPSB7DQo+ID4gKwkJT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLCAxNSwNCj4g PiBERFBfQ09NUE9ORU5UX09WTDFfQkxFTkRFUjV9LA0KPiA+ICsJW09WTFNZU19BREFQVE9SX0JM RU5ERVIxNl0gPSB7DQo+ID4gKwkJT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLCAxNiwNCj4g PiBERFBfQ09NUE9ORU5UX09WTDFfQkxFTkRFUjZ9LA0KPiA+ICsJW09WTFNZU19BREFQVE9SX0JM RU5ERVIxN10gPSB7DQo+ID4gKwkJT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLCAxNywNCj4g PiBERFBfQ09NUE9ORU5UX09WTDFfQkxFTkRFUjd9LA0KPiA+ICsJW09WTFNZU19BREFQVE9SX0JM RU5ERVIxOF0gPSB7DQo+ID4gKwkJT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLCAxOCwNCj4g PiBERFBfQ09NUE9ORU5UX09WTDFfQkxFTkRFUjh9LA0KPiA+ICsJW09WTFNZU19BREFQVE9SX0JM RU5ERVIxOV0gPSB7DQo+ID4gKwkJT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLCAxOSwNCj4g PiBERFBfQ09NUE9ORU5UX09WTDFfQkxFTkRFUjl9LA0KPiA+ICsJW09WTFNZU19BREFQVE9SX09V VFBST0MwXSA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9PVVRQUk9DLA0KPiA+IDAsIEREUF9DT01Q T05FTlRfT1ZMMF9PVVRQUk9DMH0sDQo+ID4gKwlbT1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzFdID0g eyBPVkxTWVNfQURBUFRPUl9UWVBFX09VVFBST0MsDQo+ID4gMSwgRERQX0NPTVBPTkVOVF9PVkww X09VVFBST0MxfSwNCj4gPiArCVtPVkxTWVNfQURBUFRPUl9PVVRQUk9DNl0gPSB7IE9WTFNZU19B REFQVE9SX1RZUEVfT1VUUFJPQywNCj4gPiA2LCBERFBfQ09NUE9ORU5UX09WTDFfT1VUUFJPQzB9 LA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBtdDgxOTZf bXRrX292bF9tYWluW10gPSB7DQo+ID4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTIsDQo+ID4gKwlP VkxTWVNfQURBUFRPUl9CTEVOREVSMSwNCj4gPiArCU9WTFNZU19BREFQVE9SX0VYRE1BMywNCj4g PiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIyLA0KPiA+ICsJT1ZMU1lTX0FEQVBUT1JfRVhETUE0 LA0KPiA+ICsJT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjMsDQo+ID4gKwlPVkxTWVNfQURBUFRPUl9F WERNQTUsDQo+ID4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSNCwNCj4gPiArCU9WTFNZU19BREFQ VE9SX09VVFBST0MwLA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IHVuc2lnbmVk IGludCBtdDgxOTZfbXRrX292bF9leHRbXSA9IHsNCj4gPiArCU9WTFNZU19BREFQVE9SX0VYRE1B NiwNCj4gPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVI1LA0KPiA+ICsJT1ZMU1lTX0FEQVBUT1Jf RVhETUE3LA0KPiA+ICsJT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjYsDQo+ID4gKwlPVkxTWVNfQURB UFRPUl9FWERNQTgsDQo+ID4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSNywNCj4gPiArCU9WTFNZ U19BREFQVE9SX0VYRE1BOSwNCj4gPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVI4LA0KPiA+ICsJ T1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzEsDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29u c3QgdW5zaWduZWQgaW50IG10ODE5Nl9tdGtfb3ZsX3RoaXJkW10gPSB7DQo+ID4gKwlPVkxTWVNf QURBUFRPUl9FWERNQTEyLA0KPiA+ICsJT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjExLA0KPiA+ICsJ T1ZMU1lTX0FEQVBUT1JfRVhETUExMywNCj4gPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIxMiwN Cj4gPiArCU9WTFNZU19BREFQVE9SX0VYRE1BMTQsDQo+ID4gKwlPVkxTWVNfQURBUFRPUl9CTEVO REVSMTMsDQo+ID4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTE1LA0KPiA+ICsJT1ZMU1lTX0FEQVBU T1JfQkxFTkRFUjE0LA0KPiA+ICsJT1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzYsDQo+ID4gK307DQo+ ID4gKw0KPiA+ICtzdGF0aWMgZW51bSBtdGtfb3Zsc3lzX2FkYXB0b3JfY29tcF90eXBlIGdldF90 eXBlKGVudW0NCj4gPiBtdGtfb3Zsc3lzX2FkYXB0b3JfY29tcF9pZCBpZCkNCj4gPiArew0KPiA+ ICsJcmV0dXJuIGNvbXBfbWF0Y2hlc1tpZF0udHlwZTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3Rh dGljIGVudW0gbXRrX2RkcF9jb21wX2lkIGdldF9kZHBfY29tcF9pZChlbnVtDQo+ID4gbXRrX292 bHN5c19hZGFwdG9yX2NvbXBfaWQgaWQpDQo+ID4gK3sNCj4gPiArCXJldHVybiBjb21wX21hdGNo ZXNbaWRdLmNvbXBfaWQ7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBzdHJ1Y3QgZGV2aWNl ICpnZXRfY29tcF9ieV90eXBlX2lkeChzdHJ1Y3QgZGV2aWNlICpkZXYsDQo+ID4gKwkJCQkJwqDC oCBlbnVtDQo+ID4gbXRrX292bHN5c19hZGFwdG9yX2NvbXBfdHlwZSB0eXBlLA0KPiA+ICsJCQkJ CcKgwqAgdW5zaWduZWQgaW50IGlkeCkNCj4gPiArew0KPiA+ICsJc3RydWN0IG10a19kaXNwX292 bHN5c19hZGFwdG9yICpwcml2ID0NCj4gPiBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiArCWlu dCBpOw0KPiA+ICsJaW50IGNvdW50ID0gMDsNCj4gPiArDQo+ID4gKwlmb3IgKGkgPSAwOyBpIDwg cHJpdi0+cGF0aF9zaXplOyBpKyspIHsNCj4gPiArCQlpZiAoZ2V0X3R5cGUocHJpdi0+cGF0aFtp XSkgPT0gdHlwZSkgew0KPiA+ICsJCQlpZiAoY291bnQgPT0gaWR4KQ0KPiA+ICsJCQkJcmV0dXJu IHByaXYtDQo+ID4gPm92bF9hZGFwdG9yX2NvbXBbcHJpdi0+cGF0aFtpXV07DQo+ID4gKwkJCWNv dW50Kys7DQo+ID4gKwkJfQ0KPiA+ICsJfQ0KPiA+ICsJcmV0dXJuIE5VTEw7DQo+ID4gK30NCj4g PiArDQo+ID4gK2ludCBtdGtfb3Zsc3lzX2FkYXB0b3JfcG93ZXJfb24oc3RydWN0IGRldmljZSAq ZGV2KQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3IgKnByaXYg PQ0KPiA+IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+ICsJc3RydWN0IGRldmljZSAqY29tcDsN Cj4gPiArCWludCByZXQgPSAwOw0KPiA+ICsJaW50IGk7DQo+ID4gKw0KPiA+ICsJZm9yIChpID0g MDsgaSA8IE9WTFNZU19BREFQVE9SX0lEX01BWDsgaSsrKSB7DQo+IA0KPiBXaHkgdGhpcyBmb3It bG9vcCBpcyBub3QgYXMgYmVsb3cgZXhhbXBsZT8NCj4gDQo+IGZvciAoaSA9IDA7IGkgPCBwcml2 LT5wYXRoX3NpemU7IGkrKykgew0KPiANCk9LLCBJIHdpbGwgdHJ5IHRvIGZpeCB0aGlzIGluIHRo ZSB3YXkgb2YgdXNpbmcgIHJpdi0+cGF0aF9zaXplLg0KPiA+ICsJCWNvbXAgPSBwcml2LT5vdmxf YWRhcHRvcl9jb21wW2ldOw0KPiA+ICsNCj4gPiArCQlpZiAoIWNvbXApDQo+ID4gKwkJCWNvbnRp bnVlOw0KPiA+ICsNCj4gPiArCQlpZiAoZ2V0X3R5cGUoaSkgIT0gT1ZMU1lTX0FEQVBUT1JfVFlQ RV9FWERNQSkNCj4gDQo+IFdoeSBvbmx5IEVYRE1BIG5lZWQgcG93ZXIgb24/DQoNClRoZSB3aG9s ZSBvdmxzeXNfYWRhdG9wciBoYXMgdGhlIEVYRE1BLCBCTEVOREVSLCBPVVRfUFJPQywNCmFuZCB0 aGUgb3Zsc3lzX2FkYXRvciB1c2luZyB0aGUgc2FtZSBwb3dlciBzb3VyY2UuDQoNCj4gDQo+ID4g KwkJCWNvbnRpbnVlOw0KPiA+ICsNCj4gPiArCQlyZXQgPSBwbV9ydW50aW1lX2dldF9zeW5jKGNv bXApOw0KPiA+ICsJCWlmIChyZXQgPCAwKSB7DQo+ID4gKwkJCWRldl9lcnIoZGV2LCAiRmFpbGVk IHRvIGVuYWJsZSBwb3dlcg0KPiA+IGRvbWFpbiAlZCwgZXJyICVkXG4iLCBpLCByZXQpOw0KPiA+ ICsJCQlnb3RvIHB3cl9lcnI7DQo+ID4gKwkJfQ0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJldHVy biByZXQ7DQo+ID4gK3B3cl9lcnI6DQo+ID4gKwl3aGlsZSAoLS1pID49IDApIHsNCj4gPiArCQlj b21wID0gcHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtpXTsNCj4gPiArCQlpZiAoIWNvbXApDQo+ID4g KwkJCWNvbnRpbnVlOw0KPiA+ICsJCWlmIChnZXRfdHlwZShpKSAhPSBPVkxTWVNfQURBUFRPUl9U WVBFX0VYRE1BKQ0KPiA+ICsJCQljb250aW51ZTsNCj4gPiArCQlwbV9ydW50aW1lX3B1dChwcml2 LT5vdmxfYWRhcHRvcl9jb21wW2ldKTsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlyZXR1cm4gcmV0 Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2b2lkIG10a19vdmxzeXNfYWRhcHRvcl9wb3dlcl9vZmYo c3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgbXRrX2Rpc3Bfb3Zsc3lz X2FkYXB0b3IgKnByaXYgPQ0KPiA+IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+ICsJc3RydWN0 IGRldmljZSAqY29tcDsNCj4gPiArCWludCBpOw0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkg PCBPVkxTWVNfQURBUFRPUl9JRF9NQVg7IGkrKykgew0KPiA+ICsJCWNvbXAgPSBwcml2LT5vdmxf YWRhcHRvcl9jb21wW2ldOw0KPiA+ICsNCj4gPiArCQlpZiAoIWNvbXApDQo+ID4gKwkJCWNvbnRp bnVlOw0KPiA+ICsNCj4gPiArCQlpZiAoZ2V0X3R5cGUoaSkgPT0gT1ZMU1lTX0FEQVBUT1JfVFlQ RV9FWERNQSkNCj4gPiArCQkJcG1fcnVudGltZV9wdXQoY29tcCk7DQo+ID4gKwl9DQo+ID4gK30N Cj4gPiArDQo+ID4gK3ZvaWQgbXRrX292bHN5c19hZGFwdG9yX2xheWVyX2NvbmZpZyhzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHVuc2lnbmVkDQo+ID4gaW50IGlkeCwNCj4gPiArCQkJCcKgwqDCoMKgIHN0 cnVjdCBtdGtfcGxhbmVfc3RhdGUNCj4gPiAqc3RhdGUsDQo+ID4gKwkJCQnCoMKgwqDCoCBzdHJ1 Y3QgY21kcV9wa3QgKmNtZHFfcGt0KQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgbXRrX3BsYW5lX3Bl bmRpbmdfc3RhdGUgKnBlbmRpbmcgPSAmc3RhdGUtPnBlbmRpbmc7DQo+ID4gKwlzdHJ1Y3QgZGV2 aWNlICpleGRtYTsNCj4gPiArCXN0cnVjdCBkZXZpY2UgKmJsZW5kZXI7DQo+ID4gKwl1bnNpZ25l ZCBpbnQgYWxpZ25fd2lkdGggPSAwOw0KPiA+ICsJY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5m byAqZm10X2luZm8gPQ0KPiA+IGRybV9mb3JtYXRfaW5mbyhwZW5kaW5nLT5mb3JtYXQpOw0KPiA+ ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFwdG9yICpwcml2ID0NCj4gPiBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsNCj4gPiArDQo+ID4gKwlEUk1fREVWX0RFQlVHX0RSSVZFUihkZXYsICJpZHg6 JWQgZW5hYmxlOiVkIGZtdDoweCV4DQo+ID4gYWRkcjoweCVwYWQgZmJfdzolZCB7JWQsJWQsJWQs JWR9XG4iLA0KPiA+ICsJCQnCoMKgwqDCoCBpZHgsIHBlbmRpbmctPmVuYWJsZSwgcGVuZGluZy0N Cj4gPiA+Zm9ybWF0LA0KPiA+ICsJCQnCoMKgwqDCoCAmcGVuZGluZy0+YWRkciwgKHBlbmRpbmct PnBpdGNoIC8NCj4gPiBmbXRfaW5mby0+Y3BwWzBdKSwNCj4gPiArCQkJwqDCoMKgwqAgcGVuZGlu Zy0+eCwgcGVuZGluZy0+eSwgcGVuZGluZy0NCj4gPiA+d2lkdGgsIHBlbmRpbmctPmhlaWdodCk7 DQo+ID4gKw0KPiA+ICsJZXhkbWEgPSBnZXRfY29tcF9ieV90eXBlX2lkeChkZXYsDQo+ID4gT1ZM U1lTX0FEQVBUT1JfVFlQRV9FWERNQSwgaWR4KTsNCj4gDQo+IGV4ZG1hID0gcHJpdi0+b3ZsX2Fk YXB0b3JfY29tcFtwcml2LT5wYXRoW2lkeCAqIDJdXTsNCj4gDQo+ID4gKwlpZiAoIWV4ZG1hKSB7 DQo+IA0KPiBZb3UganVzdCBuZWVkIHRvIGNoZWNrIGlkeCA8IHByaXYtPmxheWVyX25yLg0KPiAN Cj4gDQpPSyBJIHdpbGwgdHJ5IHRvIGZpeCBpdC4NCj4gDQo+ID4gKwkJZGV2X2VycihkZXYsICIl czogZXhkbWElZCBjb21wIG5vdCBmb3VuZFxuIiwNCj4gPiBfX2Z1bmNfXywgaWR4KTsNCj4gPiAr CQlyZXR1cm47DQo+ID4gKwl9DQo+ID4gKwlibGVuZGVyID0gZ2V0X2NvbXBfYnlfdHlwZV9pZHgo ZGV2LA0KPiA+IE9WTFNZU19BREFQVE9SX1RZUEVfQkxFTkRFUiwgaWR4KTsNCj4gDQo+IGJsZW5k ZXIgPSBwcml2LT5vdmxfYWRhcHRvcl9jb21wW3ByaXYtPnBhdGhbaWR4ICogMiArIDFdXTsNCj4g DQo+ID4gKwlpZiAoIWJsZW5kZXIpIHsNCj4gPiArCQlkZXZfZXJyKGRldiwgIiVzOiBibGVuZGVy JWQgY29tcCBub3QgZm91bmRcbiIsDQo+ID4gX19mdW5jX18sIGlkeCk7DQo+ID4gKwkJcmV0dXJu Ow0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCS8qIE9WTFNZUyBpcyBpbiAxVDJQIGRvbWFpbiwgd2lk dGggbmVlZHMgdG8gYmUgMiBwaXhlbHMNCj4gPiBhbGlnbiAqLw0KPiA+ICsJYWxpZ25fd2lkdGgg PSBBTElHTl9ET1dOKHBlbmRpbmctPndpZHRoLCAyKTsNCj4gPiArDQo+ID4gKwlpZiAocGVuZGlu Zy0+aGVpZ2h0ID09IDAgfHwgYWxpZ25fd2lkdGggPT0gMCB8fA0KPiA+ICsJwqDCoMKgIHBlbmRp bmctPnggPiBwcml2LT5tYXhfc2l6ZSB8fCBwZW5kaW5nLT55ID4gcHJpdi0NCj4gPiA+bWF4X3Np emUpIHsNCj4gPiArCQlwZW5kaW5nLT5lbmFibGUgPSBmYWxzZTsNCj4gDQo+IFdoeSBtb2RpZnkg cGVuZGluZy0+ZW5hYmxlPw0KPiANCj4gDQpUaGUgRVhETUEgYW5kIEJMRU5ERVIncyBsYXllcl9j b25maWcgc2V0dGluZyBpcyBhbGwgY2hlY2sgdGhlIGZsYWcuIA0KDQpwZW5kaW5nLT5lbmFibGUN Cj4gDQo+IA0KPiANCj4gPiArCQltdGtfZGlzcF9leGRtYV9sYXllcl9jb25maWcoZXhkbWEsIHN0 YXRlLA0KPiA+IGNtZHFfcGt0KTsNCj4gPiArCQltdGtfZGlzcF9ibGVuZGVyX2xheWVyX2NvbmZp ZyhibGVuZGVyLCBzdGF0ZSwNCj4gPiBjbWRxX3BrdCk7DQo+ID4gKwkJcmV0dXJuOw0KPiA+ICsJ fQ0KPiA+ICsNCj4gPiArCW10a19kaXNwX2V4ZG1hX2xheWVyX2NvbmZpZyhleGRtYSwgc3RhdGUs IGNtZHFfcGt0KTsNCj4gPiArDQo+ID4gKwltdGtfZGlzcF9ibGVuZGVyX2xheWVyX2NvbmZpZyhi bGVuZGVyLCBzdGF0ZSwgY21kcV9wa3QpOw0KPiA+ICsNCj4gPiArCW10a19kaXNwX2V4ZG1hX3N0 YXJ0KGV4ZG1hLCBjbWRxX3BrdCk7DQo+ID4gKwltdGtfZGlzcF9ibGVuZGVyX3N0YXJ0KGJsZW5k ZXIsIGNtZHFfcGt0KTsNCj4gDQo+IFRoZSBzdGFydCBmdW5jdGlvbiBpcyBkb25lIGluIG92bHN5 c19zdGFydCgpLCBzbyByZW1vdmUgdGhlc2Ugc3RhcnQNCj4gZnVuY3Rpb24uDQo+IA0KT0sgSSB3 aWxsIGZpeCBpdC4NCj4gDQo+ID4gK30NCj4gPiArDQo+ID4gK3ZvaWQgbXRrX292bHN5c19hZGFw dG9yX2NvbmZpZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCB3LA0KPiA+ICsJCQnC oMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IGgsIHVuc2lnbmVkIGludA0KPiA+IHZyZWZyZXNoLA0K PiA+ICsJCQnCoMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IGJwYywgc3RydWN0IGNtZHFfcGt0DQo+ ID4gKmNtZHFfcGt0KQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0 b3IgKnByaXYgPQ0KPiA+IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+ICsJaW50IGk7DQo+ID4g KwlpbnQgYmxlbmRlcl9pZHggPSAwOw0KPiA+ICsJYm9vbCBtb3N0X3RvcDsNCj4gPiArCWJvb2wg bW9zdF9ib3R0b207DQo+ID4gKw0KPiA+ICsJZm9yIChpID0gMDsgaSA8IHByaXYtPnBhdGhfc2l6 ZTsgaSsrKSB7DQo+ID4gKwkJaWYgKGdldF90eXBlKHByaXYtPnBhdGhbaV0pID09DQo+ID4gT1ZM U1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSKSB7DQo+ID4gKwkJCWJsZW5kZXJfaWR4Kys7DQo+ID4g Kw0KPiA+ICsJCQlpZiAocHJpdi0+bGF5ZXJfbnIgPT0gMSkgew0KPiA+ICsJCQkJbW9zdF90b3DC oMKgwqAgPQ0KPiA+IHRydWU7CS8qU0lOR0xFX0JMRU5ERVI7Ki8NCj4gPiArCQkJCW1vc3RfYm90 dG9tID0gZmFsc2U7CS8qYmxlbmRlcg0KPiA+IGlzIExBU1RfQkxFTkRFUiovDQo+IA0KPiBPbmx5 IG9uZSBibGVuZGVyLCBzbyBtb3N0X2JvdHRvbSA9IHRydWU7DQpPaywgSSB3aWxsIGZpeCBpdC4N Cj4gDQo+ID4gKwkJCX0gZWxzZSBpZiAoYmxlbmRlcl9pZHggPT0gMSkgew0KPiA+ICsJCQkJbW9z dF90b3DCoMKgwqAgPSBmYWxzZTsJLyogTk9OLQ0KPiA+IFNJTkdMRSBMQVlFUiAqLw0KPiA+ICsJ CQkJbW9zdF9ib3R0b20gPSB0cnVlOwkvKiBGSVJTVA0KPiA+IExBWUVSICovDQo+ID4gKwkJCX0g ZWxzZSBpZiAoYmxlbmRlcl9pZHggPT0gcHJpdi0+bGF5ZXJfbnIpDQo+ID4gew0KPiA+ICsJCQkJ bW9zdF90b3DCoMKgwqAgPSB0cnVlOwkvKiBOT04tDQo+ID4gU0lOR0xFIExBWUVSICovDQo+ID4g KwkJCQltb3N0X2JvdHRvbSA9IGZhbHNlOwkvKiBMQVNUDQo+ID4gTEFZRVIgKi8NCj4gPiArCQkJ fSBlbHNlIHsNCj4gPiArCQkJCW1vc3RfdG9wID0gZmFsc2U7CS8qIE5PTi0NCj4gPiBTSU5HTEUg TEFZRVIgKi8NCj4gPiArCQkJCW1vc3RfYm90dG9tID0gZmFsc2U7CS8qIE9USEVSDQo+ID4gTEFZ RVIgKi8NCj4gPiArCQkJfQ0KPiA+ICsNCj4gPiArCQkJbXRrX2Rpc3BfYmxlbmRlcl9jb25maWco cHJpdi0NCj4gPiA+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRoW2ldXSwgdywgaCwNCj4gPiAr CQkJCQkJdnJlZnJlc2gsIGJwYywNCj4gPiBtb3N0X3RvcCwgbW9zdF9ib3R0b20sIGNtZHFfcGt0 KTsNCj4gDQo+IFlvdSBjb3VsZCByZW1vdmUgdGhlIGlmLWVsc2UgY2hlY2tpbmcsIGFuZCANCj4g DQo+IG10a19kaXNwX2JsZW5kZXJfY29uZmlnKHByaXYtPm92bF9hZGFwdG9yX2NvbXBbcHJpdi0+ cGF0aFtpXV0sIHcsIGgsDQo+IMKgdnJlZnJlc2gsIGJwYywgYmxlbmRlcl9pZHggPT0gcHJpdi0+ bGF5ZXJfbnIsDQo+IAkJCWJsZW5kZXJfaWR4ID09IDEsIGNtZHFfcGt0KTsNCg0KT2ssIEkgd2ls bCBmaXggaXQuDQo+IA0KPiA+ICsJCX0gZWxzZSBpZiAoZ2V0X3R5cGUocHJpdi0+cGF0aFtpXSkg PT0NCj4gPiBPVkxTWVNfQURBUFRPUl9UWVBFX09VVFBST0MpIHsNCj4gPiArCQkJbXRrX2Rpc3Bf b3V0cHJvY19jb25maWcocHJpdi0NCj4gPiA+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRoW2ld XSwgdywgaCwNCj4gPiArCQkJCQkJdnJlZnJlc2gsIGJwYywNCj4gPiBjbWRxX3BrdCk7DQo+ID4g KwkJfQ0KPiA+ICsJfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtpbnQgbXRrX292bHN5c19hZGFwdG9y X2xheWVyX2NoZWNrKHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gPiArCQkJCcKgwqAgdW5zaWduZWQg aW50IGlkeCwNCj4gPiArCQkJCcKgwqAgc3RydWN0IG10a19wbGFuZV9zdGF0ZQ0KPiA+ICptdGtf c3RhdGUpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlID0gJm10 a19zdGF0ZS0+YmFzZTsNCj4gPiArDQo+ID4gKwkvKiBDaGVjayBpZiBhbnkgdW5zdXBwb3J0ZWQg cm90YXRpb24gaXMgc2V0ICovDQo+ID4gKwlpZiAoc3RhdGUtPnJvdGF0aW9uICYgfkRSTV9NT0RF X1JPVEFURV8wKQ0KPiA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ICsNCj4gPiArCXJldHVybiAw Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2b2lkIG10a19vdmxzeXNfYWRhcHRvcl9zdGFydChzdHJ1 Y3QgZGV2aWNlICpkZXYpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBtdGtfZGlzcF9vdmxzeXNfYWRh cHRvciAqcHJpdiA9DQo+ID4gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ID4gKwlpbnQgaTsNCj4g PiArDQo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+cGF0aF9zaXplOyBpKyspIHsNCj4gPiAr CQlpZiAoZ2V0X3R5cGUocHJpdi0+cGF0aFtpXSkgPT0NCj4gPiBPVkxTWVNfQURBUFRPUl9UWVBF X0VYRE1BKQ0KPiA+ICsJCQltdGtfZGlzcF9leGRtYV9zdGFydChwcml2LQ0KPiA+ID5vdmxfYWRh cHRvcl9jb21wW3ByaXYtPnBhdGhbaV1dLCBOVUxMKTsNCj4gPiArCQllbHNlIGlmIChnZXRfdHlw ZShwcml2LT5wYXRoW2ldKSA9PQ0KPiA+IE9WTFNZU19BREFQVE9SX1RZUEVfQkxFTkRFUikNCj4g PiArCQkJbXRrX2Rpc3BfYmxlbmRlcl9zdGFydChwcml2LQ0KPiA+ID5vdmxfYWRhcHRvcl9jb21w W3ByaXYtPnBhdGhbaV1dLCBOVUxMKTsNCj4gPiArCQllbHNlDQo+ID4gKwkJCW10a19kaXNwX291 dHByb2Nfc3RhcnQocHJpdi0NCj4gPiA+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRoW2ldXSk7 DQo+ID4gKwl9DQo+IA0KPiBJIHRoaW5rIHRoZSBvcmRlciBpbiBwYXRoIGhhcyBzb21lIHJ1bGUs IHNvIHRoaXMgZm9yLWxvb3AgY291bGQgYmUNCj4gc2ltcGxpZmllZCBhcw0KPiANCj4gZm9yIChp ID0gMDsgaSA8IChwcml2LT5wYXRoX3NpemUgLSAxKTsgaSArPSAyKSB7DQo+IAltdGtfZGlzcF9l eGRtYV9zdGFydChwcml2LT5vdmxfYWRhcHRvcl9jb21wW3ByaXYtPnBhdGhbaV1dLA0KPiBOVUxM KTsNCj4gCW10a19kaXNwX2JsZW5kZXJfc3RhcnQocHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtwcml2 LT5wYXRoW2kgKw0KPiAxXV0sIE5VTEwpOw0KPiB9DQo+IA0KT2ssIEkgd2lsbCBmaXggaXQuDQo+ IG10a19kaXNwX291dHByb2Nfc3RhcnQocHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRo W2ldXSk7DQo+IA0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2b2lkIG10a19vdmxzeXNfYWRhcHRvcl9z dG9wKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gPiArew0KPiA+ICsJc3RydWN0IG10a19kaXNwX292 bHN5c19hZGFwdG9yICpwcml2ID0NCj4gPiBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiArCWlu dCBpOw0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBwcml2LT5wYXRoX3NpemU7IGkrKykg ew0KPiA+ICsJCWlmIChnZXRfdHlwZShwcml2LT5wYXRoW2ldKSA9PQ0KPiA+IE9WTFNZU19BREFQ VE9SX1RZUEVfRVhETUEpDQo+ID4gKwkJCW10a19kaXNwX2V4ZG1hX3N0b3AocHJpdi0NCj4gPiA+ b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRoW2ldXSwgTlVMTCk7DQo+ID4gKwkJZWxzZSBpZiAo Z2V0X3R5cGUocHJpdi0+cGF0aFtpXSkgPT0NCj4gPiBPVkxTWVNfQURBUFRPUl9UWVBFX0JMRU5E RVIpDQo+ID4gKwkJCW10a19kaXNwX2JsZW5kZXJfc3RvcChwcml2LQ0KPiA+ID5vdmxfYWRhcHRv cl9jb21wW3ByaXYtPnBhdGhbaV1dLCBOVUxMKTsNCj4gPiArCQllbHNlDQo+ID4gKwkJCW10a19k aXNwX291dHByb2Nfc3RvcChwcml2LQ0KPiA+ID5vdmxfYWRhcHRvcl9jb21wW3ByaXYtPnBhdGhb aV1dKTsNCj4gPiArCX0NCj4gPiArfQ0KPiA+ICsNCj4gPiAraW50IG10a19vdmxzeXNfYWRhcHRv cl9jbGtfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gPiArew0KPiA+ICsJc3RydWN0IG10 a19kaXNwX292bHN5c19hZGFwdG9yICpwcml2ID0NCj4gPiBkZXZfZ2V0X2RydmRhdGEoZGV2KTsN Cj4gPiArCXN0cnVjdCBkZXZpY2UgKmNvbXA7DQo+ID4gKwlpbnQgcmV0ID0gMDsNCj4gPiArCWlu dCBpOw0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBPVkxTWVNfQURBUFRPUl9JRF9NQVg7 IGkrKykgew0KPiANCj4gV2h5IHRoaXMgZm9yLWxvb3AgaXMgbm90IGFzIGJlbG93Pw0KPiANCk9r LCBJIHdpbGwgZml4IGl0Lg0KPiBmb3IgKGkgPSAwOyBpIDwgcHJpdi0+cGF0aF9zaXplOyBpKysp IHsNCj4gDQo+ID4gKwkJY29tcCA9IHByaXYtPm92bF9hZGFwdG9yX2NvbXBbaV07DQo+ID4gKw0K PiA+ICsJCWlmICghY29tcCkNCj4gPiArCQkJY29udGludWU7DQo+ID4gKw0KPiA+ICsJCWlmIChn ZXRfdHlwZShpKSA9PSBPVkxTWVNfQURBUFRPUl9UWVBFX0VYRE1BKQ0KPiA+ICsJCQlyZXQgPSBt dGtfZGlzcF9leGRtYV9jbGtfZW5hYmxlKGNvbXApOw0KPiA+ICsJCWVsc2UgaWYgKGdldF90eXBl KGkpID09DQo+ID4gT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSKQ0KPiA+ICsJCQlyZXQgPSBt dGtfZGlzcF9ibGVuZGVyX2Nsa19lbmFibGUoY29tcCk7DQo+ID4gKwkJZWxzZQ0KPiA+ICsJCQly ZXQgPSBtdGtfZGlzcF9vdXRwcm9jX2Nsa19lbmFibGUoY29tcCk7DQo+ID4gKw0KPiA+ICsJCWlm IChyZXQpIHsNCj4gPiArCQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZW5hYmxlIGNsb2NrICVk LA0KPiA+IGVyciAlZFxuIiwgaSwgcmV0KTsNCj4gPiArCQkJZ290byBjbGtfZXJyOw0KPiA+ICsJ CX0NCj4gPiArCX0NCj4gPiArDQo+ID4gKwlyZXR1cm4gcmV0Ow0KPiA+ICsNCj4gPiArY2xrX2Vy cjoNCj4gPiArCXdoaWxlICgtLWkgPj0gMCkgew0KPiA+ICsJCWNvbXAgPSBwcml2LT5vdmxfYWRh cHRvcl9jb21wW2ldOw0KPiA+ICsJCWlmICghY29tcCkNCj4gPiArCQkJY29udGludWU7DQo+ID4g KwkJaWYgKGdldF90eXBlKGkpID09IE9WTFNZU19BREFQVE9SX1RZUEVfRVhETUEpDQo+ID4gKwkJ CW10a19kaXNwX2V4ZG1hX2Nsa19kaXNhYmxlKGNvbXApOw0KPiA+ICsJCWVsc2UgaWYgKGdldF90 eXBlKGkpID09DQo+ID4gT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSKQ0KPiA+ICsJCQltdGtf ZGlzcF9ibGVuZGVyX2Nsa19kaXNhYmxlKGNvbXApOw0KPiA+ICsJCWVsc2UNCj4gPiArCQkJbXRr X2Rpc3Bfb3V0cHJvY19jbGtfZGlzYWJsZShjb21wKTsNCj4gPiArCX0NCj4gPiArCWkgPSBPVkxT WVNfQURBUFRPUl9JRF9NQVg7DQo+IA0KPiBXaHkgYXNzaWduIGkgaGVyZT8NCj4gDQpJdCdzIHRo ZSByZWR1bmRhbnQuIEkgd2lsbCBmaXggaXQuDQo+IA0KPiA+ICsNCj4gPiArCXJldHVybiByZXQ7 DQo+ID4gK30NCj4gPiArDQo+ID4gK3ZvaWQgbXRrX292bHN5c19hZGFwdG9yX2Nsa19kaXNhYmxl KHN0cnVjdCBkZXZpY2UgKmRldikNCj4gPiArew0KPiA+ICsJc3RydWN0IG10a19kaXNwX292bHN5 c19hZGFwdG9yICpwcml2ID0NCj4gPiBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiArCXN0cnVj dCBkZXZpY2UgKmNvbXA7DQo+ID4gKwlpbnQgaTsNCj4gPiArDQo+ID4gKwlmb3IgKGkgPSAwOyBp IDwgT1ZMU1lTX0FEQVBUT1JfSURfTUFYOyBpKyspIHsNCj4gPiArCQljb21wID0gcHJpdi0+b3Zs X2FkYXB0b3JfY29tcFtpXTsNCj4gPiArDQo+ID4gKwkJaWYgKCFjb21wKQ0KPiA+ICsJCQljb250 aW51ZTsNCj4gPiArDQo+ID4gKwkJaWYgKGdldF90eXBlKGkpID09IE9WTFNZU19BREFQVE9SX1RZ UEVfRVhETUEpDQo+ID4gKwkJCW10a19kaXNwX2V4ZG1hX2Nsa19kaXNhYmxlKGNvbXApOw0KPiA+ ICsJCWVsc2UgaWYgKGdldF90eXBlKGkpID09DQo+ID4gT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVO REVSKQ0KPiA+ICsJCQltdGtfZGlzcF9ibGVuZGVyX2Nsa19kaXNhYmxlKGNvbXApOw0KPiA+ICsJ CWVsc2UNCj4gPiArCQkJbXRrX2Rpc3Bfb3V0cHJvY19jbGtfZGlzYWJsZShjb21wKTsNCj4gPiAr CX0NCj4gPiArfQ0KPiA+ICsNCj4gPiArdW5zaWduZWQgaW50IG10a19vdmxzeXNfYWRhcHRvcl9s YXllcl9ucihzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBtdGtfZGlz cF9vdmxzeXNfYWRhcHRvciAqcHJpdiA9DQo+ID4gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ID4g Kw0KPiA+ICsJcmV0dXJuIHByaXYtPmxheWVyX25yOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdHJ1 Y3QgZGV2aWNlICptdGtfb3Zsc3lzX2FkYXB0b3JfZG1hX2Rldl9nZXQoc3RydWN0IGRldmljZSAq ZGV2KQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3IgKnByaXYg PQ0KPiA+IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+ICsNCj4gPiArCXJldHVybiBwcml2LT5v dmxfYWRhcHRvcl9jb21wW3ByaXYtPnBhdGhbMF1dOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2b2lk IG10a19vdmxzeXNfYWRhcHRvcl9yZWdpc3Rlcl92YmxhbmtfY2Ioc3RydWN0IGRldmljZSAqZGV2 LA0KPiA+IHZvaWQgKCp2YmxhbmtfY2IpKHZvaWQgKiksDQo+ID4gKwkJCQkJwqDCoCB2b2lkICp2 YmxhbmtfY2JfZGF0YSkNCj4gPiArew0KPiA+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFw dG9yICpwcml2ID0NCj4gPiBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiArDQo+ID4gKwltdGtf ZGlzcF9vdXRwcm9jX3JlZ2lzdGVyX3ZibGFua19jYihwcml2LQ0KPiA+ID5vdmxfYWRhcHRvcl9j b21wW3ByaXYtPnBhdGhbcHJpdi0+cGF0aF9zaXplIC0gMV1dLA0KPiA+ICsJCQkJCcKgwqDCoCB2 YmxhbmtfY2IsDQo+ID4gdmJsYW5rX2NiX2RhdGEpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2b2lk IG10a19vdmxzeXNfYWRhcHRvcl91bnJlZ2lzdGVyX3ZibGFua19jYihzdHJ1Y3QgZGV2aWNlICpk ZXYpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvciAqcHJpdiA9 DQo+ID4gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ID4gKwlzdHJ1Y3QgZGV2aWNlICpjb21wID0g cHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtwcml2LQ0KPiA+ID5wYXRoW3ByaXYtPnBhdGhfc2l6ZSAt IDFdXTsNCj4gPiArDQo+ID4gKwltdGtfZGlzcF9vdXRwcm9jX3VucmVnaXN0ZXJfdmJsYW5rX2Ni KGNvbXApOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2b2lkIG10a19vdmxzeXNfYWRhcHRvcl9lbmFi bGVfdmJsYW5rKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gPiArew0KPiA+ICsJc3RydWN0IG10a19k aXNwX292bHN5c19hZGFwdG9yICpwcml2ID0NCj4gPiBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4g PiArDQo+ID4gKwltdGtfZGlzcF9vdXRwcm9jX2VuYWJsZV92YmxhbmsocHJpdi0NCj4gPiA+b3Zs X2FkYXB0b3JfY29tcFtwcml2LT5wYXRoW3ByaXYtPnBhdGhfc2l6ZSAtIDFdXSk7DQo+ID4gK30N Cj4gPiArDQo+ID4gK3ZvaWQgbXRrX292bHN5c19hZGFwdG9yX2Rpc2FibGVfdmJsYW5rKHN0cnVj dCBkZXZpY2UgKmRldikNCj4gPiArew0KPiA+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFw dG9yICpwcml2ID0NCj4gPiBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiArDQo+ID4gKwltdGtf ZGlzcF9vdXRwcm9jX2Rpc2FibGVfdmJsYW5rKHByaXYtDQo+ID4gPm92bF9hZGFwdG9yX2NvbXBb cHJpdi0+cGF0aFtwcml2LT5wYXRoX3NpemUgLSAxXV0pOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICt1 MzIgbXRrX292bHN5c19hZGFwdG9yX2dldF9ibGVuZF9tb2RlcyhzdHJ1Y3QgZGV2aWNlICpkZXYp DQo+ID4gK3sNCj4gPiArCXN0cnVjdCBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvciAqcHJpdiA9DQo+ ID4gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ID4gKwlzdHJ1Y3QgZGV2aWNlICpjb21wOw0KPiA+ ICsJaW50IGk7DQo+ID4gKw0KPiA+ICsJZm9yIChpID0gMDsgaSA8IHByaXYtPnBhdGhfc2l6ZTsg aSsrKQ0KPiA+ICsJCWlmIChnZXRfdHlwZShwcml2LT5wYXRoW2ldKSA9PQ0KPiA+IE9WTFNZU19B REFQVE9SX1RZUEVfQkxFTkRFUikgew0KPiA+ICsJCQljb21wID0gcHJpdi0+b3ZsX2FkYXB0b3Jf Y29tcFtwcml2LQ0KPiA+ID5wYXRoW2ldXTsNCj4gPiArCQkJcmV0dXJuDQo+ID4gbXRrX2Rpc3Bf YmxlbmRlcl9nZXRfYmxlbmRfbW9kZXMoY29tcCk7DQo+ID4gKwkJfQ0KPiANCj4gSW4gbXRrX292 bHN5c19hZGFwdG9yX2dldF9mb3JtYXRzKCksIHlvdSBoYXZlIGFzc3VtZSB0aGF0IHByaXYtDQo+ ID5vdmxfYWRhcHRvcl9jb21wW3ByaXYtPnBhdGhbMF1dIGlzIGV4ZG1hLA0KPiBzbyB5b3UgY291 bGQgYXNzdW1lIHRoYXQgcHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRoWzFdXSBpcw0K PiBibGVuZGVyLg0KPiBUaGVuDQo+IA0KPiByZXR1cm4gbXRrX2Rpc3BfYmxlbmRlcl9nZXRfYmxl bmRfbW9kZXMocHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtwcml2LQ0KPiA+cGF0aFsxXV0pOw0KPiAN Ck9rLCBJIHdpbGwgdHJ5IHRvIGZpeCBpdC4NCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiAr fQ0KPiA+ICsNCj4gPiArY29uc3QgdTMyICptdGtfb3Zsc3lzX2FkYXB0b3JfZ2V0X2Zvcm1hdHMo c3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgbXRrX2Rpc3Bfb3Zsc3lz X2FkYXB0b3IgKnByaXYgPQ0KPiA+IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+ICsNCj4gPiAr CXJldHVybiBtdGtfZGlzcF9leGRtYV9nZXRfZm9ybWF0cyhwcml2LQ0KPiA+ID5vdmxfYWRhcHRv cl9jb21wW3ByaXYtPnBhdGhbMF1dKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc2l6ZV90IG10a19v dmxzeXNfYWRhcHRvcl9nZXRfbnVtX2Zvcm1hdHMoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICt7 DQo+ID4gKwlzdHJ1Y3QgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3IgKnByaXYgPQ0KPiA+IGRldl9n ZXRfZHJ2ZGF0YShkZXYpOw0KPiA+ICsNCj4gPiArCXJldHVybiBtdGtfZGlzcF9leGRtYV9nZXRf bnVtX2Zvcm1hdHMocHJpdi0NCj4gPiA+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRoWzBdXSk7 DQo+ID4gK30NCj4gPiArDQo+ID4gK3ZvaWQgbXRrX292bHN5c19hZGFwdG9yX2FkZF9jb21wKHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0DQo+ID4gbXRrX211dGV4ICptdXRleCkNCj4gPiArew0K PiA+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFwdG9yICpwcml2ID0NCj4gPiBkZXZfZ2V0 X2RydmRhdGEoZGV2KTsNCj4gPiArCWludCBpOw0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkg PCBwcml2LT5wYXRoX3NpemU7IGkrKykNCj4gPiArCQltdGtfbXV0ZXhfYWRkX2NvbXAobXV0ZXgs IGdldF9kZHBfY29tcF9pZChwcml2LQ0KPiA+ID5wYXRoW2ldKSk7DQo+ID4gK30NCj4gPiArDQo+ ID4gK3ZvaWQgbXRrX292bHN5c19hZGFwdG9yX3JlbW92ZV9jb21wKHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0DQo+ID4gbXRrX211dGV4ICptdXRleCkNCj4gPiArew0KPiA+ICsJc3RydWN0IG10 a19kaXNwX292bHN5c19hZGFwdG9yICpwcml2ID0NCj4gPiBkZXZfZ2V0X2RydmRhdGEoZGV2KTsN Cj4gPiArCWludCBpOw0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBwcml2LT5wYXRoX3Np emU7IGkrKykNCj4gPiArCQltdGtfbXV0ZXhfcmVtb3ZlX2NvbXAobXV0ZXgsIGdldF9kZHBfY29t cF9pZChwcml2LQ0KPiA+ID5wYXRoW2ldKSk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3ZvaWQgbXRr X292bHN5c19hZGFwdG9yX2Nvbm5lY3Qoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNl DQo+ID4gKm1tc3lzX2RldiwgdW5zaWduZWQgaW50IG5leHQpDQo+ID4gK3sNCj4gPiArCXN0cnVj dCBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvciAqcHJpdiA9DQo+ID4gZGV2X2dldF9kcnZkYXRhKGRl dik7DQo+ID4gKwlpbnQgaTsNCj4gPiArDQo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+cGF0 aF9zaXplIC0gMTsgaSsrKQ0KPiA+ICsJCW10a19tbXN5c19kZHBfY29ubmVjdChtbXN5c19kZXYs DQo+ID4gZ2V0X2RkcF9jb21wX2lkKHByaXYtPnBhdGhbaV0pLA0KPiA+ICsJCQkJwqDCoMKgwqDC oCBnZXRfZGRwX2NvbXBfaWQocHJpdi0+cGF0aFtpDQo+ID4gKyAxXSkpOw0KPiA+ICsNCj4gPiAr CW10a19tbXN5c19kZHBfY29ubmVjdChtbXN5c19kZXYsIGdldF9kZHBfY29tcF9pZChwcml2LQ0K PiA+ID5wYXRoW2ldKSwgbmV4dCk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3ZvaWQgbXRrX292bHN5 c19hZGFwdG9yX2Rpc2Nvbm5lY3Qoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QNCj4gPiBkZXZp Y2UgKm1tc3lzX2RldiwgdW5zaWduZWQgaW50IG5leHQpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBt dGtfZGlzcF9vdmxzeXNfYWRhcHRvciAqcHJpdiA9DQo+ID4gZGV2X2dldF9kcnZkYXRhKGRldik7 DQo+ID4gKwlpbnQgaTsNCj4gPiArDQo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+cGF0aF9z aXplIC0gMTsgaSsrKQ0KPiA+ICsJCW10a19tbXN5c19kZHBfZGlzY29ubmVjdChtbXN5c19kZXYs DQo+ID4gZ2V0X2RkcF9jb21wX2lkKHByaXYtPnBhdGhbaV0pLA0KPiA+ICsJCQkJCSBnZXRfZGRw X2NvbXBfaWQocHJpdi0NCj4gPiA+cGF0aFtpICsgMV0pKTsNCj4gPiArDQo+ID4gKwltdGtfbW1z eXNfZGRwX2Rpc2Nvbm5lY3QobW1zeXNfZGV2LCBnZXRfZGRwX2NvbXBfaWQocHJpdi0NCj4gPiA+ cGF0aFtpXSksIG5leHQpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IG92bHN5c19h ZGFwdG9yX2NvbXBfZ2V0X2lkKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0DQo+ID4gZGV2aWNl X25vZGUgKm5vZGUsDQo+ID4gKwkJCQnCoMKgwqDCoMKgIGVudW0NCj4gPiBtdGtfb3Zsc3lzX2Fk YXB0b3JfY29tcF90eXBlIHR5cGUsDQo+ID4gKwkJCQnCoMKgwqDCoMKgIGVudW0gbXRrX2RkcF9j b21wX2lkDQo+ID4gKmNvbXBfaWQpDQo+ID4gK3sNCj4gPiArCWludCBhbGlhc19pZCA9IG9mX2Fs aWFzX2dldF9pZChub2RlLA0KPiA+IHByaXZhdGVfY29tcF9zdGVtW3R5cGVdKTsNCj4gPiArCWlu dCBpOw0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNvbXBfbWF0Y2hl cyk7IGkrKykNCj4gPiArCQlpZiAoY29tcF9tYXRjaGVzW2ldLnR5cGUgPT0gdHlwZSAmJg0KPiA+ ICsJCcKgwqDCoCBjb21wX21hdGNoZXNbaV0uYWxpYXNfaWQgPT0gYWxpYXNfaWQpIHsNCj4gPiAr CQkJKmNvbXBfaWQgPSBjb21wX21hdGNoZXNbaV0uY29tcF9pZDsNCj4gPiArCQkJcmV0dXJuIGk7 DQo+ID4gKwkJfQ0KPiA+ICsJZGV2X3dhcm4oZGV2LCAiRmFpbGVkIHRvIGdldCBpZC4gdHlwZTog JWQsIGFsaWFzOiAlZFxuIiwNCj4gPiB0eXBlLCBhbGlhc19pZCk7DQo+ID4gKwlyZXR1cm4gLUVJ TlZBTDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2Vf aWQgbXRrX292bHN5c19hZGFwdG9yX2NvbXBfZHRfaWRzW10NCj4gPiA9IHsNCj4gPiArCXsNCj4g PiArCQkuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxOTYtZXhkbWEiLA0KPiA+ICsJCS5kYXRh ID0gKHZvaWQgKilPVkxTWVNfQURBUFRPUl9UWVBFX0VYRE1BLA0KPiA+ICsJfSwgew0KPiA+ICsJ CS5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE5Ni1ibGVuZGVyIiwNCj4gPiArCQkuZGF0YSA9 ICh2b2lkICopT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLA0KPiA+ICsJfSwgew0KPiA+ICsJ CS5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE5Ni1vdXRwcm9jIiwNCj4gPiArCQkuZGF0YSA9 ICh2b2lkICopT1ZMU1lTX0FEQVBUT1JfVFlQRV9PVVRQUk9DLA0KPiA+ICsJfSwNCj4gPiArCXt9 LA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RhdGljIGludCBvdmxzeXNfYWRhcHRvcl9jb21wX2lu aXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QNCj4gPiBjb21wb25lbnRfbWF0Y2ggKiptYXRj aCkNCj4gPiArew0KPiA+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFwdG9yICpwcml2ID0N Cj4gPiBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiArCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9k ZSwgKnBhcmVudDsNCj4gPiArCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmNvbXBfcGRldjsNCj4g PiArCWludCBpOw0KPiA+ICsNCj4gPiArCXBhcmVudCA9IGRldi0+cGFyZW50LT5wYXJlbnQtPm9m X25vZGUtPnBhcmVudDsNCj4gPiArDQo+ID4gKwlmb3JfZWFjaF9jaGlsZF9vZl9ub2RlKHBhcmVu dCwgbm9kZSkgew0KPiANCj4gZm9yX2VhY2hfY2hpbGRfb2Zfbm9kZV9zY29wZWQoKQ0KPiANCk9r LCBJIHdpbGwgZml4IGl0Lg0KPiA+ICsJCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm9mX2lk Ow0KPiA+ICsJCWVudW0gbXRrX292bHN5c19hZGFwdG9yX2NvbXBfdHlwZSB0eXBlOw0KPiA+ICsJ CWVudW0gbXRrX2RkcF9jb21wX2lkIGNvbXBfaWQ7DQo+IA0KPiBjb21wX2lkIGlzIHVzZWxlc3Ms IGRyb3AgaXQuDQoNCk9rLCBJIHdpbGwgZml4IGl0Lg0KPiANCj4gPiArCQlpbnQgaWQ7DQo+ID4g KwkJYm9vbCBmb3VuZCA9IGZhbHNlOw0KPiA+ICsNCj4gPiArCQlvZl9pZCA9DQo+ID4gb2ZfbWF0 Y2hfbm9kZShtdGtfb3Zsc3lzX2FkYXB0b3JfY29tcF9kdF9pZHMsIG5vZGUpOw0KPiA+ICsJCWlm ICghb2ZfaWQpDQo+ID4gKwkJCWNvbnRpbnVlOw0KPiA+ICsNCj4gPiArCQlpZiAoIW9mX2Rldmlj ZV9pc19hdmFpbGFibGUobm9kZSkpIHsNCj4gPiArCQkJZGV2X2RiZyhkZXYsICJTa2lwcGluZyBk aXNhYmxlZCBjb21wb25lbnQNCj4gPiAlcE9GXG4iLA0KPiA+ICsJCQkJbm9kZSk7DQo+ID4gKwkJ CWNvbnRpbnVlOw0KPiA+ICsJCX0NCj4gPiArDQo+ID4gKwkJdHlwZSA9IChlbnVtDQo+ID4gbXRr X292bHN5c19hZGFwdG9yX2NvbXBfdHlwZSkodWludHB0cl90KW9mX2lkLT5kYXRhOw0KPiA+ICsJ CWlkID0gb3Zsc3lzX2FkYXB0b3JfY29tcF9nZXRfaWQoZGV2LCBub2RlLCB0eXBlLA0KPiA+ICZj b21wX2lkKTsNCj4gPiArCQlpZiAoaWQgPCAwKSB7DQo+ID4gKwkJCWRldl93YXJuKGRldiwgIlNr aXBwaW5nIHVua25vd24gY29tcG9uZW50DQo+ID4gJXBPRlxuIiwNCj4gPiArCQkJCSBub2RlKTsN Cj4gPiArCQkJY29udGludWU7DQo+ID4gKwkJfQ0KPiA+ICsNCj4gPiArCQlmb3IgKGkgPSAwOyBp IDwgcHJpdi0+cGF0aF9zaXplOyBpKyspDQo+ID4gKwkJCWlmIChwcml2LT5wYXRoW2ldID09IGlk KQ0KPiA+ICsJCQkJZm91bmQgPSB0cnVlOw0KPiA+ICsNCj4gPiArCQlpZiAoIWZvdW5kKQ0KPiA+ ICsJCQljb250aW51ZTsNCj4gPiArDQo+ID4gKwkJY29tcF9wZGV2ID0gb2ZfZmluZF9kZXZpY2Vf Ynlfbm9kZShub2RlKTsNCj4gPiArCQlpZiAoIWNvbXBfcGRldikNCj4gPiArCQkJcmV0dXJuIC1F UFJPQkVfREVGRVI7DQo+ID4gKw0KPiA+ICsJCXByaXYtPm92bF9hZGFwdG9yX2NvbXBbaWRdID0g JmNvbXBfcGRldi0+ZGV2Ow0KPiA+ICsNCj4gPiArCQlkcm1fb2ZfY29tcG9uZW50X21hdGNoX2Fk ZChkZXYsIG1hdGNoLA0KPiA+IGNvbXBvbmVudF9jb21wYXJlX29mLCBub2RlKTsNCj4gPiArCQlk ZXZfZGJnKGRldiwgIkFkZGluZyBjb21wb25lbnQgbWF0Y2ggZm9yICVwT0ZcbiIsDQo+ID4gbm9k ZSk7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJaWYgKCEqbWF0Y2gpIHsNCj4gPiArCQlkZXZfZXJy KGRldiwgIk5vIG1hdGNoIGRldmljZSBmb3INCj4gPiBvdmxzeXNfYWRhcHRvclxuIik7DQo+ID4g KwkJcmV0dXJuIC1FTk9ERVY7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4g K30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3JfY29tcF9i aW5kKHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gPiBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsDQo+ID4g KwkJCQkJwqDCoMKgwqAgdm9pZCAqZGF0YSkNCj4gPiArew0KPiA+ICsJc3RydWN0IG10a19kaXNw X292bHN5c19hZGFwdG9yICpwcml2ID0NCj4gPiBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiAr DQo+ID4gKwlpZiAoIXByaXYtPmNoaWxkcmVuX2JvdW5kKQ0KPiA+ICsJCXJldHVybiAtRVBST0JF X0RFRkVSOw0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0 aWMgdm9pZCBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvcl9jb21wX3VuYmluZChzdHJ1Y3QgZGV2aWNl DQo+ID4gKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLA0KPiA+ICsJCQkJCQl2b2lkICpkYXRh KQ0KPiA+ICt7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29tcG9u ZW50X29wcyBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvcl9jb21wX29wcw0KPiA+ID0gew0KPiA+ICsJ LmJpbmQJPSBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvcl9jb21wX2JpbmQsDQo+ID4gKwkudW5iaW5k ID0gbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3JfY29tcF91bmJpbmQsDQo+ID4gK307DQo+ID4gKw0K PiA+ICtzdGF0aWMgaW50IG10a19kaXNwX292bHN5c19hZGFwdG9yX21hc3Rlcl9iaW5kKHN0cnVj dCBkZXZpY2UgKmRldikNCj4gPiArew0KPiA+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFw dG9yICpwcml2ID0NCj4gPiBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiArCWludCByZXQsIGk7 DQo+ID4gKwl1bnNpZ25lZCBpbnQgbGF5ZXJfbnIgPSAwOw0KPiA+ICsNCj4gPiArCXJldCA9IGNv bXBvbmVudF9iaW5kX2FsbChkZXYsIHByaXYtPm1tc3lzX2Rldik7DQo+ID4gKwlpZiAocmV0KQ0K PiA+ICsJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAiY29tcG9uZW50X2JpbmRfYWxs DQo+ID4gZmFpbGVkIVxuIik7DQo+ID4gKw0KPiA+ICsJcHJpdi0+Y2hpbGRyZW5fYm91bmQgPSB0 cnVlOw0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBwcml2LT5wYXRoX3NpemU7IGkrKykN Cj4gPiArCQlpZiAoY29tcF9tYXRjaGVzW3ByaXYtPnBhdGhbaV1dLnR5cGUgPT0NCj4gPiBPVkxT WVNfQURBUFRPUl9UWVBFX0JMRU5ERVIpDQo+ID4gKwkJCWxheWVyX25yKys7DQo+IA0KPiBJdCBz ZWVtcyB5b3UgY291bGQgZHJvcCBsYXllcl9uci4NCj4gQXNzaWduIHByaXYtPmxheWVyX25yIHRv IDAgZmlyc3QsIGFuZCB0aGVuIHByaXYtPmxheWVyX25yKysuDQoNCk9rLCBJIHdpbGwgZml4IGl0 Lg0KPiANCj4gPiArCXByaXYtPmxheWVyX25yID0gbGF5ZXJfbnI7DQo+ID4gKw0KPiA+ICsJcmV0 dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIG10a19kaXNwX292bHN5c19h ZGFwdG9yX21hc3Rlcl91bmJpbmQoc3RydWN0IGRldmljZQ0KPiA+ICpkZXYpDQo+ID4gK3sNCj4g PiArCXN0cnVjdCBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvciAqcHJpdiA9DQo+ID4gZGV2X2dldF9k cnZkYXRhKGRldik7DQo+ID4gKw0KPiA+ICsJcHJpdi0+Y2hpbGRyZW5fYm91bmQgPSBmYWxzZTsN Cj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBjb21wb25lbnRfbWFzdGVy X29wcw0KPiA+IG10a19kaXNwX292bHN5c19hZGFwdG9yX21hc3Rlcl9vcHMgPSB7DQo+ID4gKwku YmluZAkJPSBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvcl9tYXN0ZXJfYmluZCwNCj4gPiArCS51bmJp bmQJCT0NCj4gPiBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvcl9tYXN0ZXJfdW5iaW5kLA0KPiA+ICt9 Ow0KPiA+ICsNCj4gPiArc3RhdGljIGludCBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvcl9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlDQo+ID4gKnBkZXYpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBt dGtfZGlzcF9vdmxzeXNfYWRhcHRvciAqcHJpdjsNCj4gPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9 ICZwZGV2LT5kZXY7DQo+ID4gKwlzdHJ1Y3QgY29tcG9uZW50X21hdGNoICptYXRjaCA9IE5VTEw7 DQo+ID4gKwlzdHJ1Y3QgbXRrX292bHN5c19wbGF0Zm9ybV9kYXRhICpvdmxzeXNfcHJpdjsNCj4g PiAvL210a19kcm1fb3Zsc3lzX3ByaXZhdGUNCj4gDQo+IFJlbW92ZSB0aGUgY29tbWVudC4NCg0K T2ssIEkgd2lsbCBmaXggaXQuDQo+IA0KPiA+ICsJaW50IHJldDsNCj4gPiArDQo+ID4gKwlwcml2 ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwcml2KSwgR0ZQX0tFUk5FTCk7DQo+ID4gKwlp ZiAoIXByaXYpDQo+ID4gKwkJcmV0dXJuIC1FTk9NRU07DQo+ID4gKw0KPiA+ICsJcGxhdGZvcm1f c2V0X2RydmRhdGEocGRldiwgcHJpdik7DQo+ID4gKw0KPiA+ICsJb3Zsc3lzX3ByaXYgPSBwZGV2 LT5kZXYucGxhdGZvcm1fZGF0YTsNCj4gPiArCXByaXYtPm1tc3lzX2RldiA9IG92bHN5c19wcml2 LT5tbXN5c19kZXY7DQo+ID4gKwlwcml2LT5tYXhfc2l6ZSA9IE9WTFNZU19BREFQVE9SX0RSSVZF Ul9EQVRBX01BWF9TSVpFOw0KPiA+ICsNCj4gPiArCWlmIChvdmxzeXNfcHJpdi0+dXNlX3BhdGgg PT0gQ1JUQ19NQUlOKSB7DQo+ID4gKwkJcHJpdi0+cGF0aCA9IG10ODE5Nl9tdGtfb3ZsX21haW47 DQo+ID4gKwkJcHJpdi0+cGF0aF9zaXplID0gQVJSQVlfU0laRShtdDgxOTZfbXRrX292bF9tYWlu KTsNCj4gPiArCX0gZWxzZSBpZiAob3Zsc3lzX3ByaXYtPnVzZV9wYXRoID09IENSVENfRVhUKSB7 DQo+ID4gKwkJcHJpdi0+cGF0aCA9IG10ODE5Nl9tdGtfb3ZsX2V4dDsNCj4gPiArCQlwcml2LT5w YXRoX3NpemUgPSBBUlJBWV9TSVpFKG10ODE5Nl9tdGtfb3ZsX2V4dCk7DQo+ID4gKwl9IGVsc2Ug aWYgKG92bHN5c19wcml2LT51c2VfcGF0aCA9PSBDUlRDX1RISVJEKSB7DQo+ID4gKwkJcHJpdi0+ cGF0aCA9IG10ODE5Nl9tdGtfb3ZsX3RoaXJkOw0KPiA+ICsJCXByaXYtPnBhdGhfc2l6ZSA9DQo+ ID4gQVJSQVlfU0laRShtdDgxOTZfbXRrX292bF90aGlyZCk7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ ICsJcmV0ID0gb3Zsc3lzX2FkYXB0b3JfY29tcF9pbml0KGRldiwgJm1hdGNoKTsNCj4gPiArCWlm IChyZXQgPCAwKQ0KPiA+ICsJCXJldHVybiByZXQ7DQo+ID4gKw0KPiA+ICsJY29tcG9uZW50X21h c3Rlcl9hZGRfd2l0aF9tYXRjaChkZXYsDQo+ID4gJm10a19kaXNwX292bHN5c19hZGFwdG9yX21h c3Rlcl9vcHMsIG1hdGNoKTsNCj4gPiArDQo+ID4gKwlwbV9ydW50aW1lX2VuYWJsZShkZXYpOw0K PiA+ICsNCj4gPiArCXJldCA9IGNvbXBvbmVudF9hZGQoZGV2LA0KPiA+ICZtdGtfZGlzcF9vdmxz eXNfYWRhcHRvcl9jb21wX29wcyk7DQo+ID4gKwlpZiAocmV0ICE9IDApIHsNCj4gPiArCQlwbV9y dW50aW1lX2Rpc2FibGUoZGV2KTsNCj4gPiArCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBhZGQg Y29tcG9uZW50OiAlZFxuIiwNCj4gPiByZXQpOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJldHVy biByZXQ7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIG10a19kaXNwX292bHN5c19h ZGFwdG9yX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlDQo+ID4gKnBkZXYpDQo+ID4gK3sN Cj4gPiArCWNvbXBvbmVudF9tYXN0ZXJfZGVsKCZwZGV2LT5kZXYsDQo+ID4gJm10a19kaXNwX292 bHN5c19hZGFwdG9yX21hc3Rlcl9vcHMpOw0KPiA+ICsJcG1fcnVudGltZV9kaXNhYmxlKCZwZGV2 LT5kZXYpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19k aXNwX292bHN5c19hZGFwdG9yX2RyaXZlciA9IHsNCj4gPiArCS5wcm9iZQkJPSBtdGtfZGlzcF9v dmxzeXNfYWRhcHRvcl9wcm9iZSwNCj4gPiArCS5yZW1vdmUJCT0gbXRrX2Rpc3Bfb3Zsc3lzX2Fk YXB0b3JfcmVtb3ZlLA0KPiA+ICsJLmRyaXZlcgkJPSB7DQo+ID4gKwkJLm5hbWUJPSAibWVkaWF0 ZWstZGlzcC1vdmxzeXMtYWRhcHRvciIsDQo+ID4gKwkJLm93bmVyCT0gVEhJU19NT0RVTEUsDQo+ ID4gKwl9LA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArTU9EVUxFX0FVVEhPUigiTmFuY3kgTGluIDxu YW5jeS5saW5AbWVkaWF0ZWsuY29tPiIpOw0KPiA+ICtNT0RVTEVfREVTQ1JJUFRJT04oIk1lZGlh VGVrIE92bHN5cyBBZGFwdG9yIERyaXZlciIpOw0KPiA+ICtNT0RVTEVfTElDRU5TRSgiR1BMIik7 DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5j DQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYw0KPiA+IGluZGV4 IGY3YjljN2E5ODJhNy4uMDYzOTIwMWUyZTkyIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kcm1fZHJ2LmMNCj4gPiBAQCAtNDU3LDYgKzQ1NywyNyBAQCBzdGF0aWMgYm9v bCBtdGtfZHJtX2ZpbmRfbW1zeXNfY29tcChzdHJ1Y3QNCj4gPiBtdGtfZHJtX3ByaXZhdGUgKnBy aXZhdGUsIGludCBjb21wX2lkDQo+ID4gwqAJcmV0dXJuIGZhbHNlOw0KPiA+IMKgfQ0KPiA+IMKg DQo+ID4gK3N0YXRpYyBpbnQgbXRrX2RybV9tbXN5c19jb21wX2luX3BhdGgoc3RydWN0IG10a19k cm1fcHJpdmF0ZQ0KPiA+ICpwcml2YXRlLCBpbnQgY29tcF9pZCkNCj4gPiArew0KPiA+ICsJY29u c3Qgc3RydWN0IG10a19tbXN5c19kcml2ZXJfZGF0YSAqZHJ2X2RhdGEgPSBwcml2YXRlLQ0KPiA+ ID5kYXRhOw0KPiA+ICsJaW50IGk7DQo+ID4gKw0KPiA+ICsJaWYgKGRydl9kYXRhLT5tYWluX3Bh dGgpDQo+ID4gKwkJZm9yIChpID0gMDsgaSA8IGRydl9kYXRhLT5tYWluX2xlbjsgaSsrKQ0KPiA+ ICsJCQlpZiAoZHJ2X2RhdGEtPm1haW5fcGF0aFtpXSA9PSBjb21wX2lkKQ0KPiA+ICsJCQkJcmV0 dXJuIENSVENfTUFJTjsNCj4gPiArCWlmIChkcnZfZGF0YS0+ZXh0X3BhdGgpDQo+ID4gKwkJZm9y IChpID0gMDsgaSA8IGRydl9kYXRhLT5leHRfbGVuOyBpKyspDQo+ID4gKwkJCWlmIChkcnZfZGF0 YS0+ZXh0X3BhdGhbaV0gPT0gY29tcF9pZCkNCj4gPiArCQkJCXJldHVybiBDUlRDX0VYVDsNCj4g PiArCWlmIChkcnZfZGF0YS0+dGhpcmRfcGF0aCkNCj4gPiArCQlmb3IgKGkgPSAwOyBpIDwgZHJ2 X2RhdGEtPnRoaXJkX2xlbjsgaSsrKQ0KPiA+ICsJCQlpZiAoZHJ2X2RhdGEtPnRoaXJkX3BhdGhb aV0gPT0gY29tcF9pZCkNCj4gPiArCQkJCXJldHVybiBDUlRDX1RISVJEOw0KPiA+ICsNCj4gDQo+ IFRoaXMgZnVuY3Rpb24gaXMgYWxtb3N0IGxpa2UgbXRrX2RybV9maW5kX21tc3lzX2NvbXAoKSwg dHJ5IHRvIG1lcmdlDQo+IHRoZW0uDQo+IA0KDQpPaywgSSB3aWxsIHRyeSB0byBtZXJnZSB0aGUg bXRrX2RybV9maW5kX21tc3lzX2NvbXAoKSBhbmQNCm10a19kcm1fbW1zeXNfY29tcF9pbl9wYXRo Lg0KPiA+ICsJcmV0dXJuIC1FSU5WQUw7DQo+ID4gK30NCj4gPiArDQo+ID4gwqBzdGF0aWMgaW50 IG10a19kcm1fa21zX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSkNCj4gPiDCoHsNCj4gPiDC oAlzdHJ1Y3QgbXRrX2RybV9wcml2YXRlICpwcml2YXRlID0gZHJtLT5kZXZfcHJpdmF0ZTsNCj4g PiBAQCAtMTEyMiw2ICsxMTQzLDU3IEBAIHN0YXRpYyBpbnQgbXRrX2RybV9wcm9iZShzdHJ1Y3QN Cj4gPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gwqAJCWNvbXBvbmVudF9tYXRjaF9hZGQo ZGV2LCAmbWF0Y2gsIGNvbXBhcmVfZGV2LA0KPiA+ICZvdmxfYWRhcHRvci0+ZGV2KTsNCj4gPiDC oAl9DQo+ID4gwqANCj4gPiArCWlmIChtdGtfZHJtX2ZpbmRfbW1zeXNfY29tcChwcml2YXRlLA0K PiA+IEREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMCkpIHsNCj4gPiArCQlzdHJ1Y3Qg bXRrX292bHN5c19wbGF0Zm9ybV9kYXRhIG92bHN5c19wcml2Ow0KPiA+ICsNCj4gPiArCQlvdmxz eXNfcHJpdi5tbXN5c19kZXYgPSBwcml2YXRlLT5tbXN5c19kZXY7DQo+ID4gKwkJb3Zsc3lzX3By aXYudXNlX3BhdGggPQ0KPiA+ICsJCW10a19kcm1fbW1zeXNfY29tcF9pbl9wYXRoKHByaXZhdGUs DQo+ID4gRERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IwKTsNCj4gPiArCQlvdmxfYWRh cHRvciA9DQo+ID4gKwkJCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9kYXRhKGRldiwNCj4gPiAi bWVkaWF0ZWstZGlzcC1vdmxzeXMtYWRhcHRvciIsDQo+ID4gKwkJCQkJCcKgwqDCoMKgwqANCj4g PiBQTEFURk9STV9ERVZJRF9BVVRPLA0KPiA+ICsJCQkJCQnCoMKgwqDCoMKgICh2b2lkDQo+ID4g Kikmb3Zsc3lzX3ByaXYsDQo+ID4gKwkJCQkJCcKgwqDCoMKgwqANCj4gPiBzaXplb2Yoc3RydWN0 IG10a19vdmxzeXNfcGxhdGZvcm1fZGF0YSkpOw0KPiA+ICsJCXByaXZhdGUtDQo+ID4gPmRkcF9j b21wW0REUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMF0uZGV2ID0gJm92bF9hZGFwdG9y LQ0KPiA+ID5kZXY7DQo+ID4gKwkJbXRrX2RkcF9jb21wX2luaXQoTlVMTCwgJnByaXZhdGUtDQo+ ID4gPmRkcF9jb21wW0REUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMF0sDQo+ID4gKwkJ CQnCoA0KPiA+IEREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMCk7DQo+ID4gKwkJY29t cG9uZW50X21hdGNoX2FkZChkZXYsICZtYXRjaCwgY29tcGFyZV9kZXYsDQo+ID4gJm92bF9hZGFw dG9yLT5kZXYpOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWlmIChtdGtfZHJtX2ZpbmRfbW1zeXNf Y29tcChwcml2YXRlLA0KPiA+IEREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMSkpIHsN Cj4gPiArCQlzdHJ1Y3QgbXRrX292bHN5c19wbGF0Zm9ybV9kYXRhIG92bHN5c19wcml2Ow0KPiA+ IC8vbXRrX2RybV9vdmxzeXNfcHJpdmF0ZQ0KPiA+ICsNCj4gPiArCQlvdmxzeXNfcHJpdi5tbXN5 c19kZXYgPSBwcml2YXRlLT5tbXN5c19kZXY7DQo+ID4gKwkJb3Zsc3lzX3ByaXYudXNlX3BhdGgg PQ0KPiA+ICsJCW10a19kcm1fbW1zeXNfY29tcF9pbl9wYXRoKHByaXZhdGUsDQo+ID4gRERQX0NP TVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IxKTsNCj4gPiArCQlvdmxfYWRhcHRvciA9DQo+ID4g KwkJCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9kYXRhKGRldiwNCj4gPiAibWVkaWF0ZWstZGlz cC1vdmxzeXMtYWRhcHRvciIsDQo+ID4gKwkJCQkJCcKgwqDCoMKgwqANCj4gPiBQTEFURk9STV9E RVZJRF9BVVRPLA0KPiA+ICsJCQkJCQnCoMKgwqDCoMKgICh2b2lkDQo+ID4gKikmb3Zsc3lzX3By aXYsDQo+ID4gKwkJCQkJCcKgwqDCoMKgwqANCj4gPiBzaXplb2Yoc3RydWN0IG10a19vdmxzeXNf cGxhdGZvcm1fZGF0YSkpOw0KPiA+ICsJCXByaXZhdGUtDQo+ID4gPmRkcF9jb21wW0REUF9DT01Q T05FTlRfRFJNX09WTFNZU19BREFQVE9SMV0uZGV2ID0gJm92bF9hZGFwdG9yLQ0KPiA+ID5kZXY7 DQo+ID4gKwkJbXRrX2RkcF9jb21wX2luaXQoTlVMTCwgJnByaXZhdGUtDQo+ID4gPmRkcF9jb21w W0REUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMV0sDQo+ID4gKwkJCQnCoA0KPiA+IERE UF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMSk7DQo+ID4gKwkJY29tcG9uZW50X21hdGNo X2FkZChkZXYsICZtYXRjaCwgY29tcGFyZV9kZXYsDQo+ID4gJm92bF9hZGFwdG9yLT5kZXYpOw0K PiA+ICsJfQ0KPiA+ICsNCj4gPiArCWlmIChtdGtfZHJtX2ZpbmRfbW1zeXNfY29tcChwcml2YXRl LA0KPiA+IEREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMikpIHsNCj4gPiArCQlzdHJ1 Y3QgbXRrX292bHN5c19wbGF0Zm9ybV9kYXRhIG92bHN5c19wcml2Ow0KPiA+ICsNCj4gPiArCQlv dmxzeXNfcHJpdi5tbXN5c19kZXYgPSBwcml2YXRlLT5tbXN5c19kZXY7DQo+ID4gKwkJb3Zsc3lz X3ByaXYudXNlX3BhdGggPQ0KPiA+ICsJCQltdGtfZHJtX21tc3lzX2NvbXBfaW5fcGF0aChwcml2 YXRlLA0KPiA+IEREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMik7DQo+ID4gKwkJb3Zs X2FkYXB0b3IgPQ0KPiA+ICsJCQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfZGF0YShkZXYsDQo+ ID4gIm1lZGlhdGVrLWRpc3Atb3Zsc3lzLWFkYXB0b3IiLA0KPiA+ICsJCQkJCQnCoMKgwqDCoMKg DQo+ID4gUExBVEZPUk1fREVWSURfQVVUTywNCj4gPiArCQkJCQkJwqDCoMKgwqDCoCAodm9pZA0K PiA+ICopJm92bHN5c19wcml2LA0KPiA+ICsJCQkJCQnCoMKgwqDCoMKgDQo+ID4gc2l6ZW9mKHN0 cnVjdMKgIG10a19vdmxzeXNfcGxhdGZvcm1fZGF0YSkpOw0KPiA+ICsJCXByaXZhdGUtDQo+ID4g PmRkcF9jb21wW0REUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMl0uZGV2ID0gJm92bF9h ZGFwdG9yLQ0KPiA+ID5kZXY7DQo+ID4gKwkJbXRrX2RkcF9jb21wX2luaXQoTlVMTCwgJnByaXZh dGUtDQo+ID4gPmRkcF9jb21wW0REUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMl0sDQo+ ID4gKwkJCQnCoA0KPiA+IEREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMik7DQo+ID4g KwkJY29tcG9uZW50X21hdGNoX2FkZChkZXYsICZtYXRjaCwgY29tcGFyZV9kZXYsDQo+ID4gJm92 bF9hZGFwdG9yLT5kZXYpOw0KPiA+ICsJfQ0KPiANCj4gVGhlIGNvZGUgYWJvdXQgdGhlc2UgdGhy ZWUgcGF0aCBhcmUgYWxtb3N0IHRoZSBzYW1lLg0KPiBUcnkgdG8gbWVyZ2UgdGhlbS4NCj4gWW91 IGNvdWxkIHVzZSBvbmUgZnVuY3Rpb24gd2l0aCBkaWZmZXJlbnQgcGFyYW1ldGVyDQo+IChzdWNo IGFzIEREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMCwNCj4gRERQX0NPTVBPTkVOVF9E Uk1fT1ZMU1lTX0FEQVBUT1IxLA0KPiBERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRPUjIp Lg0KPiANCk9LIEkgd2lsbCB0cnkgdG8gbWVyZ2UgdGhlbS4NCj4gPiArDQo+ID4gwqAJLyogSXRl cmF0ZSBvdmVyIHNpYmxpbmcgRElTUCBmdW5jdGlvbiBibG9ja3MgKi8NCj4gPiDCoAlmb3JfZWFj aF9jaGlsZF9vZl9ub2RlKHBoYW5kbGUtPnBhcmVudCwgbm9kZSkgew0KPiA+IMKgCQllbnVtIG10 a19kZHBfY29tcF90eXBlIGNvbXBfdHlwZTsNCj4gPiBAQCAtMTI4Myw2ICsxMzU1LDcgQEAgc3Rh dGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgKiBjb25zdA0KPiA+IG10a19kcm1fZHJpdmVyc1td ID0gew0KPiA+IMKgCSZtdGtfZGlzcF9vdXRwcm9jX2RyaXZlciwNCj4gPiDCoAkmbXRrX2Rpc3Bf b3ZsX2FkYXB0b3JfZHJpdmVyLA0KPiA+IMKgCSZtdGtfZGlzcF9vdmxfZHJpdmVyLA0KPiA+ICsJ Jm10a19kaXNwX292bHN5c19hZGFwdG9yX2RyaXZlciwNCj4gPiDCoAkmbXRrX2Rpc3BfcmRtYV9k cml2ZXIsDQo+ID4gwqAJJm10a19kcGlfZHJpdmVyLA0KPiA+IMKgCSZtdGtfZHJtX3BsYXRmb3Jt X2RyaXZlciwNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19k cm1fZHJ2LmgNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oDQo+ ID4gaW5kZXggYzQ3MTdjMzdiMGYxLi42ZTllZDk4MzdjNWIgMTAwNjQ0DQo+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmgNCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaA0KPiA+IEBAIC0xMSw3ICsxMSw5IEBADQo+ID4g wqANCj4gPiDCoCNkZWZpbmUgTUFYX0NPTk5FQ1RPUgkyDQo+ID4gwqAjZGVmaW5lIEREUF9DT01Q T05FTlRfRFJNX09WTF9BREFQVE9SIChERFBfQ09NUE9ORU5UX0lEX01BWCArIDEpDQo+ID4gLSNk ZWZpbmUgRERQX0NPTVBPTkVOVF9EUk1fSURfTUFYIChERFBfQ09NUE9ORU5UX0RSTV9PVkxfQURB UFRPUiArDQo+ID4gMSkNCj4gPiArI2RlZmluZSBERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURB UFRPUjANCj4gPiAoRERQX0NPTVBPTkVOVF9EUk1fT1ZMX0FEQVBUT1IgKyAxKQ0KPiA+ICsjZGVm aW5lIEREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMQ0KPiA+IChERFBfQ09NUE9ORU5U X0RSTV9PVkxTWVNfQURBUFRPUjAgKyAxKQ0KPiA+ICsjZGVmaW5lIEREUF9DT01QT05FTlRfRFJN X0lEX01BWA0KPiA+IChERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRPUjEgKyAxKQ0KPiA+ IMKgDQo+ID4gwqBlbnVtIG10a19jcnRjX3BhdGggew0KPiA+IMKgCUNSVENfTUFJTiwNCj4gPiBA QCAtNjksNiArNzEsMTIgQEAgc3RydWN0IG10a19kcm1fcHJpdmF0ZSB7DQo+ID4gwqAJc3RydWN0 IG10a19kcm1fcHJpdmF0ZSAqKmFsbF9kcm1fcHJpdmF0ZTsNCj4gPiDCoH07DQo+ID4gwqANCj4g PiArc3RydWN0IG10a19vdmxzeXNfcGxhdGZvcm1fZGF0YSB7Ly9tdGtfZHJtX292bHN5c19wcml2 YXRlDQo+IA0KPiBSZW1vdmUgdGhpcyBjb21tZW50DQo+IA0KT2ssIEkgd2lsbCBmaXggaXQuDQo+ IA0KPiA+ICsJc3RydWN0IGRldmljZSAqbW1zeXNfZGV2Ow0KPiA+ICsJc3RydWN0IGRldmljZSAq bXV0ZXhfZGV2Ow0KPiANCj4gbXV0ZXhfZGV2IGlzIHVzZWxlc3MsIGRyb3AgaXQuDQo+IA0KPiBS ZWdhcmRzLA0KPiBDSw0KPiANCk9rLCBJIHdpbGwgZml4IGl0LiBUaGFua3MgZm9yIGFsbCB0aGUg Y29tbWVudCBhbmQgcmV2aWV3Lg0KDQoNCkJlc3QsIFBhdWwNCj4gPiArCXVuc2lnbmVkIGludCB1 c2VfcGF0aDsNCj4gPiArfTsNCj4gPiArDQo+ID4gwqBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2Ry aXZlciBtdGtfZGlzcF9hYWxfZHJpdmVyOw0KPiA+IMKgZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9k cml2ZXIgbXRrX2Rpc3BfYmxlbmRlcl9kcml2ZXI7DQo+ID4gwqBleHRlcm4gc3RydWN0IHBsYXRm b3JtX2RyaXZlciBtdGtfZGlzcF9jY29ycl9kcml2ZXI7DQo+ID4gQEAgLTc5LDYgKzg3LDcgQEAg ZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXINCj4gPiBtdGtfZGlzcF9tZXJnZV9kcml2ZXI7 DQo+ID4gwqBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfZGlzcF9vdXRwcm9jX2Ry aXZlcjsNCj4gPiDCoGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kaXNwX292bF9h ZGFwdG9yX2RyaXZlcjsNCj4gPiDCoGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19k aXNwX292bF9kcml2ZXI7DQo+ID4gK2V4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19k aXNwX292bHN5c19hZGFwdG9yX2RyaXZlcjsNCj4gPiDCoGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1f ZHJpdmVyIG10a19kaXNwX3JkbWFfZHJpdmVyOw0KPiA+IMKgZXh0ZXJuIHN0cnVjdCBwbGF0Zm9y bV9kcml2ZXIgbXRrX2RwaV9kcml2ZXI7DQo+ID4gwqBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2Ry aXZlciBtdGtfZHNpX2RyaXZlcjsNCj4gDQoNCg==