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 4F2CFC46CD2 for ; Sat, 6 Jan 2024 16:49:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=J6u6AGSbggrX57JE7Lx0jUI+ZM0rnTmu1YpNuDPnfKA=; b=foDuZevKeYaGW5 DfiHMpBF1jPKB68jy2I5r8uFhghLWkBOc4DlOQek6IZfE+/Dd1TSXTrVz87lgU92NiMXDrZH4B9bS zNZt4OP33j7Fhe2kwYm5jRw9JtByiKHJ+F5NeCPdNlJ2WQP13HnWDsXdpSs7CtRipkS2oL3gCS3mn 6JWu1nY4DpL/Y3F7NsAE7Uc2m5rJ12fNi+wAuFnjqmCgOSMmn2A2ZPfiukuA9aV616IV/2FkPrOE/ svtxYe7Olkc+LRTXYnKCHNcmYpMapt2y07lqfqKWcW1/dc/YJYQUFnM4Hlkv0U8kz1JllQw0b7JQM YSqtXq3+7YyUv7PAqBXw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rM9r4-001cFf-21; Sat, 06 Jan 2024 16:49:02 +0000 Received: from mail-am6eur05on20601.outbound.protection.outlook.com ([2a01:111:f403:2612::601] helo=EUR05-AM6-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rM9r0-001cER-1Z for linux-arm-kernel@lists.infradead.org; Sat, 06 Jan 2024 16:49:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fyXGOw7syKSehNxRWabtEjfeSq3yfg/TbC9xohsquq4GsqeztVrvIGUDdloAuPW7WohS1kazpkRab1aeyMa+K2V9ZCu+cPaNnLaPylOD7omJwmz7FlXxXd1ahU7GguuGEYAJEwxHLkQutq7SMYO+6aMALjtOPlFvR3RZpFAan9rYl2X30pN4OU4SMBd/iPQH+7lnAyS3shFPPtmRNKTfbRtU3H5VLrO+sooQcy1dv7J9emIX6Bvt7KjnE2CTkdLwmc2Rp63+eMD0fePduQTnD+7TwHD/Cu8EzQyxZg1WTwbcTFWPvj2j3pEDN16dCaA0FfNIz7GBpmF9EGpsIYYxoA== 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=zJExCCOCsbbZoX9RsmecaXne8uispAdKq7lX95xRv9k=; b=kTQJdBxZF36fZvvYR4DoI19TrEn89ra9CLPHUbd+jYKJ1qhonlnfkz7WL75aMbNMt/dNGq1Gt2fgqIuVXzy59x/nFGXYeyTnpH7U3+TL+UTxPUqXxdPDRE6JYxHtyxZvIpsNr6Vgbgu6plaa37X4gmWKJmSfdBkBPOFmqg1THuuvuZ7FvnwRRFi0XeMkdwr5T2akaxLG9C4LmkVWUqWKwhooCKA5R1WsfBwA95NlwEqNl7wzhZ/CLolWG8JgGJ3Fup70MCY559/N0rtpuhfCwuOJCzhpN3jYxo78cSCQMhz6/F9ZMmaKbUhe9SUkmHeco/yRa9TTKN31ifPKzSXodQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zJExCCOCsbbZoX9RsmecaXne8uispAdKq7lX95xRv9k=; b=OsUSlXm4dg8v8XzKmFfqxzTZtcdyw3rVayAkdTWXZIxQ2ea9aLO9kJxnIeqnyMDz0Yxq5AJoBffN0I/IOcJt3h47v5t7qFFWlJXsrtOdOVMAKzYGpxwOnjjE2ury0jwj3R6+jJlDEMjud9UYrTS2b5p2uCH7wzK++bCJA7U/VFI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AS8PR04MB7511.eurprd04.prod.outlook.com (2603:10a6:20b:23f::5) by DU2PR04MB8598.eurprd04.prod.outlook.com (2603:10a6:10:2d9::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.19; Sat, 6 Jan 2024 16:48:46 +0000 Received: from AS8PR04MB7511.eurprd04.prod.outlook.com ([fe80::8ee3:bac5:a2da:d469]) by AS8PR04MB7511.eurprd04.prod.outlook.com ([fe80::8ee3:bac5:a2da:d469%4]) with mapi id 15.20.7159.018; Sat, 6 Jan 2024 16:48:46 +0000 Date: Sat, 6 Jan 2024 11:48:35 -0500 From: Frank Li To: Manivannan Sadhasivam Cc: krzysztof.kozlowski@linaro.org, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: Re: [PATCH v7 01/16] PCI: imx6: Simplify clock handling by using bulk_clk_*() function Message-ID: References: <20231227182727.1747435-1-Frank.Li@nxp.com> <20231227182727.1747435-2-Frank.Li@nxp.com> <20240106152708.GD2512@thinkpad> Content-Disposition: inline In-Reply-To: <20240106152708.GD2512@thinkpad> X-ClientProxiedBy: BY5PR13CA0023.namprd13.prod.outlook.com (2603:10b6:a03:180::36) To AS8PR04MB7511.eurprd04.prod.outlook.com (2603:10a6:20b:23f::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR04MB7511:EE_|DU2PR04MB8598:EE_ X-MS-Office365-Filtering-Correlation-Id: c71d5f75-8350-4b01-aca2-08dc0ed75988 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +6qW+X8ZxPU65pm7cXM0QAn6UGqn6npxKxMU9dYFOpkSZMBAanjP65SToiYFKwmCVuZtixPc7YyewRoiYhsBaGqe7f4iwYyRna5uWzvcGGS9F+UYZuwLlXuw0TDqkCFKcZFcqrVaVbsKxmlT5jJr3zJk5rK7yp1nl8blK/IeaeFrk1N7pk59W4urNny+PDVj4nBsM/eV90ByqvAkzOz95dstoZEKAtRdZkUmqzCuvQM9h5axvFf4PMFDHz2MlmRj/cBWsMjBapXRnkC36h8XFgJrS9eNBZfO3XWIpviH7BS7ziuHzw6sgB6o8X3hCKbUseRCGcIPpRdIIN341EbanOCzx20RiUCL+jlI8p66+z+A1U5/gHcHziQFG3T3rDmqx7M+b+HoCPDJ0KcB28a6holzpsVqxWTi8sOn55+U8yiRT1C5tUKs4oMTrLg+sNr4L9sMJkd3gsjsiTNZWk7901bAyjnAwcJZ6ONZtgGGb9LWTwCAbPuSV+Nz0xy1Jwe+XM7qWtsmTuPuXflBMBN04cKbQSdz1R+7Q8WyWIT9cEVLDCTjL/I7fs/qEcVnbHueJWqdzjMI0wkuHbNm/Q79QXyE46r+0tT4vmkTMnLTh4BxXt47Fa3H0DxLqOO5mlV4 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB7511.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(7916004)(376002)(396003)(136003)(346002)(39850400004)(366004)(230922051799003)(1800799012)(451199024)(64100799003)(186009)(6486002)(52116002)(26005)(9686003)(478600001)(6506007)(6512007)(6666004)(83380400001)(5660300002)(2906002)(7416002)(30864003)(41300700001)(33716001)(66476007)(66556008)(66946007)(6916009)(316002)(4326008)(8936002)(8676002)(38100700002)(86362001)(38350700005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?blhyL3pJQ25zQ1FYUUliT3ZETHZzZWNGVDBtTjJha21Zc3RIR2FVK0NCRUxO?= =?utf-8?B?aFh1TXlkNmZMblRWYmhWVk52NXVBZlZTZGlONzlCUUl0bHBQR1I2MnlSZ0g4?= =?utf-8?B?MTZaSWhGSENQUUNCVDNyQVJFU3UwVldZU3dwOFF4eTJ3bkdJUUVLRTFVQ2Np?= =?utf-8?B?WU96ZkF2aGkvcUNQWGw5b0VmTDJXKzlRRi9pYjd1enlkbDFFcTZiTTBZNTM5?= =?utf-8?B?K2NFTGNCMVUxWDQ0bDNaNlZPVkRJVW9FTk5QRElQbGFqbkJhZCt6WlV2aEZu?= =?utf-8?B?c2ZpVllYRW0wTFlaQzFwMnQ5YVEyY1BjNURDVXNLbGxsczViNmlFZFpWL0U4?= =?utf-8?B?WGI2Z2t0UFBxbXV4eVBrM1Q2bWR1ZEN0dEhGOEFhR3FuUWJmdFl5aEhDOHZM?= =?utf-8?B?UlVSR3dkaGVEazVHVDIycFBrZlVtU3hXN3ZtNDlVa2l5SmNYaS91VmI5RnRq?= =?utf-8?B?NXk1TnFOSWZJajFoZDNsaHRWOFNaK1JKc1NqcS8weUhqZlozNnRqV0Rtb3Fm?= =?utf-8?B?WUkvVENSbHNKMmhDbkFXSXlmT25NV0o1aVFDSStwM2tRZHczRWExNkt6YWcy?= =?utf-8?B?OVQrdHpvdklIeUVjbmpwRjBmUFhWNVNBT1RQRE1hbmhQN3diZVhBS1pldk4r?= =?utf-8?B?K3dxWjdXOFdMSk5LWmZNcCtMZTZQVS9PNkhJbUd5V1IvNm1FNFpkdXB5Ukdo?= =?utf-8?B?ZlhKaHkwbGFiY3g1SXpCTm9aeVFFdXAyU1ZxU1hOSTNIWGlBN00yTDJXRUdn?= =?utf-8?B?Qm1BRER6Ymc1WEFjWDMxb3I1NUlkSmdWdVNIZHYwQVR1Zm1VRlNZZHI2RnFU?= =?utf-8?B?dzhJZEMvZUFWUzM3M1diYU0wNU92NE9UbWNzV1hWYWUwdE1XMjFNVVlJRHdX?= =?utf-8?B?N0lGQ0hrT1dVUlU0cHlwUVJ5eWp2NzFFMm85b2ZFV0J4Sm1jWGJ0WVdpTEhO?= =?utf-8?B?K01FamdpODlaN29wNXRNZkhGVThOMDdyZzh1eEtFdWVBbWhxeUIxRlk4N2Ex?= =?utf-8?B?TldJSkNzUDhlSG5HbUxOWFE1bzlDNlZTMWxvZFlaeGxjSjZ4elRUcG9kdThU?= =?utf-8?B?bGlkL2xLUmZ6RDNadm5iVGNCa0RkTWVJbFJDT1diVkppb0R4NExWaU9oWEJH?= =?utf-8?B?VTRPUEtETitleW9vOWh2T3hMYi9maXcrRGZZalZvWDN5SG12Z0srOHFzSVVS?= =?utf-8?B?ZTFSK0pKMGxNRVFvamRFZjN6RGZZaTlVZEFXakdFeWRqenhTeTNITHAzeHpH?= =?utf-8?B?eXFDWE9EZnMwUHFwYmxXRnRnVTB5VTVFRk51YTVQTzd2Vm1YVmUxZFE1Q0xw?= =?utf-8?B?ZS85Zi9mLzR3bUhtR2VuMXVlOXU0SlUvL3l2MGJQZ1RWWGpvc0IvOW1xTnRY?= =?utf-8?B?MkhrcGhDdVZSeU50VW1yN01yVEVjQVNldzlYZmJIcndnd0FPVGk4T09NcStM?= =?utf-8?B?ZXNGZFYwNStueFN0ZzdHckRQeGZmY2F6c01MQTYvckVCWHB1d09TVmp1S1lz?= =?utf-8?B?SWtpOTdZMm1qck1jaEcrN1FGejFZWk9PcW9wVEVuMkZXQUlXR091d0RNbVVD?= =?utf-8?B?TmZFU2RIaGYwR0Z0OWRJcXhTWFQ1OWxhZk04djB5NGdIY3ViZUVKS2l0VExp?= =?utf-8?B?YTNYWFQyWXBYR05acmlGeTNIMlpjdW45czN1cGtEYVF1WWc4ckNwTTMwWDlt?= =?utf-8?B?c3JOWU9EdUlxLzBGSmU0ZjdScFZ5VXNacCtORDFNWHVSQmZLTHlqNGZYVllZ?= =?utf-8?B?bFB0cWpWNnI2QWNZQ3NsZVpLSFNiVzVDbGY3SWwvQnJWVHJVMnFJTkRUWUNp?= =?utf-8?B?RGE1U05sUGlIUDFEbTNoM003Ynk4U0xGNHRRTWxiSFR2a0JLUmFodmZ3MHJW?= =?utf-8?B?RnBNVlYvTFVxVW9HTlZhSFZSNnoxTnBubWpnUFFBQ0xrWE4yR21mNTdaZFF3?= =?utf-8?B?WDg3VXdUSm4vNGY1TDI5ZjBsckZCYnpQVmU4cjk4VlFBMzEydkovY3NxWEdw?= =?utf-8?B?c1ZjbTk5eUNtTWdvMXVxMmtCaHZtWHRCWVhncXpoRkNNeTRHY3BEWk56MGlC?= =?utf-8?B?cjMxQzRjRU1pZ05GWVhyMm45ZHZsNW03K21NaWNtWWJaTjQ0cXFzMnJMK1lv?= =?utf-8?Q?Ap6XlHLYS8ITFyujdTvqFumcg?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c71d5f75-8350-4b01-aca2-08dc0ed75988 X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB7511.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2024 16:48:46.4286 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Qn5ajhk1m8RrkYQTdC/22i8Jss/Ic0psV54CzmBvi1gE5lMsz8d8VfjgTWx1r2cooEAqfi3J5WReDkvN+o3gFg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8598 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240106_084858_736751_166FC51E X-CRM114-Status: GOOD ( 32.13 ) 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: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gU2F0LCBKYW4gMDYsIDIwMjQgYXQgMDg6NTc6MDhQTSArMDUzMCwgTWFuaXZhbm5hbiBTYWRo YXNpdmFtIHdyb3RlOgo+IE9uIFdlZCwgRGVjIDI3LCAyMDIzIGF0IDAxOjI3OjEyUE0gLTA1MDAs IEZyYW5rIExpIHdyb3RlOgo+IAo+IFN1YmplY3QgbWVudGlvbnMsICdidWxrX2NsaycgQVBJcyBi dXQgdGhlcmUgaXMgbm8gc3VjaCB0aGluZy4gSXQgc2hvdWxkIGJlCj4gJ2Nsa19idWxrKCknIEFQ SXMuCj4gCj4gPiBSZWZhY3RvcnMgdGhlIGNsb2NrIGhhbmRsaW5nIGxvZ2ljLiBBZGRzIGNsa19u YW1lc1tdIGRlZmluZSBpbiBkcnZkYXRhLgo+ID4gVXNpbmcgY2xrX2J1bGsqKCkgYXBpIHNpbXBs aWZpZXMgdGhlIGNvZGUuCj4gPiAKPiAKPiBJJ3ZlIG1lbnRpb25lZCB0aGlzIG1hbnkgdGltZXMg aW4gdGhlIHBhc3QuIEJ1dCBsZXQgbWUgcmVpdGVyYXRlIGhlcmUgYWdhaW46Cj4gCj4gQ29tbWl0 IG1lc3NhZ2Ugc2hvdWxkIGJlIGluIGltcGVyYXRpdmUgbW9vZCBhcyBwZXIgTGludXggS2VybmVs IHJ1bGVzIGZvcgo+IHN1Ym1pdHRpbmcgcGF0Y2hlcy4gUGxlYXNlIHNlZSBoZXJlOgo+IERvY3Vt ZW50YXRpb24vcHJvY2Vzcy9zdWJtaXR0aW5nLXBhdGNoZXMucnN0Cj4gCj4gVGhlIHJlbGV2YW50 IHBhcnQgaXM6Cj4gCj4gIkRlc2NyaWJlIHlvdXIgY2hhbmdlcyBpbiBpbXBlcmF0aXZlIG1vb2Qs IGUuZy4gIm1ha2UgeHl6enkgZG8gZnJvdHoiCj4gaW5zdGVhZCBvZiAiW1RoaXMgcGF0Y2hdIG1h a2VzIHh5enp5IGRvIGZyb3R6IiBvciAiW0ldIGNoYW5nZWQgeHl6enkKPiB0byBkbyBmcm90eiIs IGFzIGlmIHlvdSBhcmUgZ2l2aW5nIG9yZGVycyB0byB0aGUgY29kZWJhc2UgdG8gY2hhbmdlCj4g aXRzIGJlaGF2aW91ci4iCj4gCj4gUGxlYXNlIHVzZSB0aGlzIHNhbWUgZm9ybWF0IGZvciByZXN0 IG9mIHRoZSBwYXRjaGVzIGFzIHdlbGwgZm9yIGZ1dHVyZSBvbmVzLgoKSSBtYXkgaGF2ZSBub3Qg dW5kZXJzdGFuZCAqaW1wZXJhdGl2ZSBtb2RlKi4gQXNrZWQgYW4gRW5nbGlzaCBuYXRpdmUKc3Bl YWtlci4gRG8geW91IG1lbmFzCgoqUmVmZWN0b3IqIHRoZSBjbG9jayBoYW5kbGluZyBsb2dpYy4g KkFkZCogY2xrX25hbWVzW10gZGVmaW5lIGluIGRydmRhdGEuCipVc2UqIGNsa19idWxrKigpIGFw aSAqc2ltcGxpZnkqIHRoZSBjb2RlLgoKPiAKPiA+IFNpZ25lZC1vZmYtYnk6IEZyYW5rIExpIDxG cmFuay5MaUBueHAuY29tPgo+ID4gLS0tCj4gPiAKPiA+IE5vdGVzOgo+ID4gICAgIENoYW5nZSBm cm9tIHY0IHRvIHY1Cj4gPiAgICAgLSB1cGRhdGUgY29tbWl0IG1lc3NhZ2UKPiA+ICAgICAtIGRp cmVjdCB1c2luZyBjbGsgbmFtZSBsaXN0LCBpbnN0ZWFkIG9mIG1hY3JvCj4gPiAgICAgLSBzdGls bCBrZWVwIGNhY3VsYXRlIGNsayBsaXN0IGNvdW50IGJlY2F1c2Ugc2l6ZW9mIHJldHVybiBwcmUg YWxsb2NhdGVkCj4gPiAgICAgYXJyYXkgc2l6ZS4KPiA+ICAgICAKPiA+ICAgICBDaGFuZ2UgZnJv bSB2MyB0byB2NAo+ID4gICAgIC0gdXNpbmcgY2xrX2J1bGtfKigpIEFQSQo+ID4gICAgIENoYW5n ZSBmcm9tIHYxIHRvIHYzCj4gPiAgICAgLSBub25lCj4gPiAKPiA+ICBkcml2ZXJzL3BjaS9jb250 cm9sbGVyL2R3Yy9wY2ktaW14Ni5jIHwgMTI1ICsrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCj4g PiAgMSBmaWxlIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDkwIGRlbGV0aW9ucygtKQo+ID4g Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWlteDYuYyBi L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMKPiA+IGluZGV4IDc0NzAzMzYy YWVlYzcuLjUwZDlmYWFhMTdmNzEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9s bGVyL2R3Yy9wY2ktaW14Ni5jCj4gPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9w Y2ktaW14Ni5jCj4gPiBAQCAtNjEsMTIgKzYxLDE1IEBAIGVudW0gaW14Nl9wY2llX3ZhcmlhbnRz IHsKPiA+ICAjZGVmaW5lIElNWDZfUENJRV9GTEFHX0lNWDZfU1BFRURfQ0hBTkdFCUJJVCgxKQo+ ID4gICNkZWZpbmUgSU1YNl9QQ0lFX0ZMQUdfU1VQUE9SVFNfU1VTUEVORAkJQklUKDIpCj4gPiAg Cj4gPiArI2RlZmluZSBJTVg2X1BDSUVfTUFYX0NMS1MgICAgICAgNgo+ID4gKwo+ID4gIHN0cnVj dCBpbXg2X3BjaWVfZHJ2ZGF0YSB7Cj4gPiAgCWVudW0gaW14Nl9wY2llX3ZhcmlhbnRzIHZhcmlh bnQ7Cj4gPiAgCWVudW0gZHdfcGNpZV9kZXZpY2VfbW9kZSBtb2RlOwo+ID4gIAl1MzIgZmxhZ3M7 Cj4gPiAgCWludCBkYmlfbGVuZ3RoOwo+ID4gIAljb25zdCBjaGFyICpncHI7Cj4gPiArCWNvbnN0 IGNoYXIgKmNsa19uYW1lc1tJTVg2X1BDSUVfTUFYX0NMS1NdOwo+ID4gIH07Cj4gPiAgCj4gPiAg c3RydWN0IGlteDZfcGNpZSB7Cj4gPiBAQCAtNzQsMTEgKzc3LDggQEAgc3RydWN0IGlteDZfcGNp ZSB7Cj4gPiAgCWludAkJCXJlc2V0X2dwaW87Cj4gPiAgCWJvb2wJCQlncGlvX2FjdGl2ZV9oaWdo Owo+ID4gIAlib29sCQkJbGlua19pc191cDsKPiA+IC0Jc3RydWN0IGNsawkJKnBjaWVfYnVzOwo+ ID4gLQlzdHJ1Y3QgY2xrCQkqcGNpZV9waHk7Cj4gPiAtCXN0cnVjdCBjbGsJCSpwY2llX2luYm91 bmRfYXhpOwo+ID4gLQlzdHJ1Y3QgY2xrCQkqcGNpZTsKPiA+IC0Jc3RydWN0IGNsawkJKnBjaWVf YXV4Owo+ID4gKwlzdHJ1Y3QgY2xrX2J1bGtfZGF0YQljbGtzW0lNWDZfUENJRV9NQVhfQ0xLU107 Cj4gPiArCXUzMgkJCWNsa3NfY250Owo+ID4gIAlzdHJ1Y3QgcmVnbWFwCQkqaW9tdXhjX2dwcjsK PiA+ICAJdTE2CQkJbXNpX2N0cmw7Cj4gPiAgCXUzMgkJCWNvbnRyb2xsZXJfaWQ7Cj4gPiBAQCAt NDA3LDEzICs0MDcsMTggQEAgc3RhdGljIHZvaWQgaW14N2RfcGNpZV93YWl0X2Zvcl9waHlfcGxs X2xvY2soc3RydWN0IGlteDZfcGNpZSAqaW14Nl9wY2llKQo+ID4gIAo+ID4gIHN0YXRpYyBpbnQg aW14Nl9zZXR1cF9waHlfbXBsbChzdHJ1Y3QgaW14Nl9wY2llICppbXg2X3BjaWUpCj4gPiAgewo+ ID4gLQl1bnNpZ25lZCBsb25nIHBoeV9yYXRlID0gY2xrX2dldF9yYXRlKGlteDZfcGNpZS0+cGNp ZV9waHkpOwo+ID4gKwl1bnNpZ25lZCBsb25nIHBoeV9yYXRlID0gMDsKPiA+ICAJaW50IG11bHQs IGRpdjsKPiA+ICAJdTE2IHZhbDsKPiA+ICsJaW50IGk7Cj4gPiAgCj4gPiAgCWlmICghKGlteDZf cGNpZS0+ZHJ2ZGF0YS0+ZmxhZ3MgJiBJTVg2X1BDSUVfRkxBR19JTVg2X1BIWSkpCj4gPiAgCQly ZXR1cm4gMDsKPiA+ICAKPiA+ICsJZm9yIChpID0gMDsgaSA8IGlteDZfcGNpZS0+Y2xrc19jbnQ7 IGkrKykKPiA+ICsJCWlmIChzdHJuY21wKGlteDZfcGNpZS0+Y2xrc1tpXS5pZCwgInBjaWVfcGh5 IiwgOCkgPT0gMCkKPiA+ICsJCQlwaHlfcmF0ZSA9IGNsa19nZXRfcmF0ZShpbXg2X3BjaWUtPmNs a3NbaV0uY2xrKTsKPiA+ICsKPiA+ICAJc3dpdGNoIChwaHlfcmF0ZSkgewo+ID4gIAljYXNlIDEy NTAwMDAwMDoKPiA+ICAJCS8qCj4gPiBAQCAtNTUwLDE5ICs1NTUsMTEgQEAgc3RhdGljIGludCBp bXg2X3BjaWVfYXR0YWNoX3BkKHN0cnVjdCBkZXZpY2UgKmRldikKPiA+ICAKPiA+ICBzdGF0aWMg aW50IGlteDZfcGNpZV9lbmFibGVfcmVmX2NsayhzdHJ1Y3QgaW14Nl9wY2llICppbXg2X3BjaWUp Cj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gaW14Nl9wY2llLT5wY2k7Cj4gPiAt CXN0cnVjdCBkZXZpY2UgKmRldiA9IHBjaS0+ZGV2Owo+ID4gIAl1bnNpZ25lZCBpbnQgb2Zmc2V0 Owo+ID4gIAlpbnQgcmV0ID0gMDsKPiA+ICAKPiA+ICAJc3dpdGNoIChpbXg2X3BjaWUtPmRydmRh dGEtPnZhcmlhbnQpIHsKPiA+ICAJY2FzZSBJTVg2U1g6Cj4gPiAtCQlyZXQgPSBjbGtfcHJlcGFy ZV9lbmFibGUoaW14Nl9wY2llLT5wY2llX2luYm91bmRfYXhpKTsKPiA+IC0JCWlmIChyZXQpIHsK PiA+IC0JCQlkZXZfZXJyKGRldiwgInVuYWJsZSB0byBlbmFibGUgcGNpZV9heGkgY2xvY2tcbiIp Owo+ID4gLQkJCWJyZWFrOwo+ID4gLQkJfQo+ID4gLQo+ID4gIAkJcmVnbWFwX3VwZGF0ZV9iaXRz KGlteDZfcGNpZS0+aW9tdXhjX2dwciwgSU9NVVhDX0dQUjEyLAo+ID4gIAkJCQkgICBJTVg2U1hf R1BSMTJfUENJRV9URVNUX1BPV0VSRE9XTiwgMCk7Cj4gPiAgCQlicmVhazsKPiA+IEBAIC01ODks MTIgKzU4Niw2IEBAIHN0YXRpYyBpbnQgaW14Nl9wY2llX2VuYWJsZV9yZWZfY2xrKHN0cnVjdCBp bXg2X3BjaWUgKmlteDZfcGNpZSkKPiA+ICAJY2FzZSBJTVg4TVFfRVA6Cj4gPiAgCWNhc2UgSU1Y OE1QOgo+ID4gIAljYXNlIElNWDhNUF9FUDoKPiA+IC0JCXJldCA9IGNsa19wcmVwYXJlX2VuYWJs ZShpbXg2X3BjaWUtPnBjaWVfYXV4KTsKPiA+IC0JCWlmIChyZXQpIHsKPiA+IC0JCQlkZXZfZXJy KGRldiwgInVuYWJsZSB0byBlbmFibGUgcGNpZV9hdXggY2xvY2tcbiIpOwo+ID4gLQkJCWJyZWFr Owo+ID4gLQkJfQo+ID4gLQo+ID4gIAkJb2Zmc2V0ID0gaW14Nl9wY2llX2dycF9vZmZzZXQoaW14 Nl9wY2llKTsKPiA+ICAJCS8qCj4gPiAgCQkgKiBTZXQgdGhlIG92ZXIgcmlkZSBsb3cgYW5kIGVu YWJsZWQKPiA+IEBAIC02MTUsOSArNjA2LDYgQEAgc3RhdGljIGludCBpbXg2X3BjaWVfZW5hYmxl X3JlZl9jbGsoc3RydWN0IGlteDZfcGNpZSAqaW14Nl9wY2llKQo+ID4gIHN0YXRpYyB2b2lkIGlt eDZfcGNpZV9kaXNhYmxlX3JlZl9jbGsoc3RydWN0IGlteDZfcGNpZSAqaW14Nl9wY2llKQo+ID4g IHsKPiA+ICAJc3dpdGNoIChpbXg2X3BjaWUtPmRydmRhdGEtPnZhcmlhbnQpIHsKPiA+IC0JY2Fz ZSBJTVg2U1g6Cj4gPiAtCQljbGtfZGlzYWJsZV91bnByZXBhcmUoaW14Nl9wY2llLT5wY2llX2lu Ym91bmRfYXhpKTsKPiA+IC0JCWJyZWFrOwo+ID4gIAljYXNlIElNWDZRUDoKPiA+ICAJY2FzZSBJ TVg2UToKPiA+ICAJCXJlZ21hcF91cGRhdGVfYml0cyhpbXg2X3BjaWUtPmlvbXV4Y19ncHIsIElP TVVYQ19HUFIxLAo+ID4gQEAgLTYzMSwxNCArNjE5LDYgQEAgc3RhdGljIHZvaWQgaW14Nl9wY2ll X2Rpc2FibGVfcmVmX2NsayhzdHJ1Y3QgaW14Nl9wY2llICppbXg2X3BjaWUpCj4gPiAgCQkJCSAg IElNWDdEX0dQUjEyX1BDSUVfUEhZX1JFRkNMS19TRUwsCj4gPiAgCQkJCSAgIElNWDdEX0dQUjEy X1BDSUVfUEhZX1JFRkNMS19TRUwpOwo+ID4gIAkJYnJlYWs7Cj4gPiAtCWNhc2UgSU1YOE1NOgo+ ID4gLQljYXNlIElNWDhNTV9FUDoKPiA+IC0JY2FzZSBJTVg4TVE6Cj4gPiAtCWNhc2UgSU1YOE1R X0VQOgo+ID4gLQljYXNlIElNWDhNUDoKPiA+IC0JY2FzZSBJTVg4TVBfRVA6Cj4gPiAtCQljbGtf ZGlzYWJsZV91bnByZXBhcmUoaW14Nl9wY2llLT5wY2llX2F1eCk7Cj4gPiAtCQlicmVhazsKPiA+ ICAJZGVmYXVsdDoKPiA+ICAJCWJyZWFrOwo+ID4gIAl9Cj4gPiBAQCAtNjUwLDIzICs2MzAsOSBA QCBzdGF0aWMgaW50IGlteDZfcGNpZV9jbGtfZW5hYmxlKHN0cnVjdCBpbXg2X3BjaWUgKmlteDZf cGNpZSkKPiA+ICAJc3RydWN0IGRldmljZSAqZGV2ID0gcGNpLT5kZXY7Cj4gPiAgCWludCByZXQ7 Cj4gPiAgCj4gPiAtCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShpbXg2X3BjaWUtPnBjaWVfcGh5 KTsKPiA+IC0JaWYgKHJldCkgewo+ID4gLQkJZGV2X2VycihkZXYsICJ1bmFibGUgdG8gZW5hYmxl IHBjaWVfcGh5IGNsb2NrXG4iKTsKPiA+ICsJcmV0ID0gIGNsa19idWxrX3ByZXBhcmVfZW5hYmxl KGlteDZfcGNpZS0+Y2xrc19jbnQsIGlteDZfcGNpZS0+Y2xrcyk7Cj4gCj4gRXh0cmEgc3BhY2Ug YWZ0ZXIgPQo+IAo+ID4gKwlpZiAocmV0KQo+ID4gIAkJcmV0dXJuIHJldDsKPiA+IC0JfQo+ID4g LQo+ID4gLQlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoaW14Nl9wY2llLT5wY2llX2J1cyk7Cj4g PiAtCWlmIChyZXQpIHsKPiA+IC0JCWRldl9lcnIoZGV2LCAidW5hYmxlIHRvIGVuYWJsZSBwY2ll X2J1cyBjbG9ja1xuIik7Cj4gPiAtCQlnb3RvIGVycl9wY2llX2J1czsKPiA+IC0JfQo+ID4gLQo+ ID4gLQlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoaW14Nl9wY2llLT5wY2llKTsKPiA+IC0JaWYg KHJldCkgewo+ID4gLQkJZGV2X2VycihkZXYsICJ1bmFibGUgdG8gZW5hYmxlIHBjaWUgY2xvY2tc biIpOwo+ID4gLQkJZ290byBlcnJfcGNpZTsKPiA+IC0JfQo+ID4gIAo+ID4gIAlyZXQgPSBpbXg2 X3BjaWVfZW5hYmxlX3JlZl9jbGsoaW14Nl9wY2llKTsKPiA+ICAJaWYgKHJldCkgewo+ID4gQEAg LTY3OSwxMSArNjQ1LDcgQEAgc3RhdGljIGludCBpbXg2X3BjaWVfY2xrX2VuYWJsZShzdHJ1Y3Qg aW14Nl9wY2llICppbXg2X3BjaWUpCj4gPiAgCXJldHVybiAwOwo+ID4gIAo+ID4gIGVycl9yZWZf Y2xrOgo+ID4gLQljbGtfZGlzYWJsZV91bnByZXBhcmUoaW14Nl9wY2llLT5wY2llKTsKPiA+IC1l cnJfcGNpZToKPiA+IC0JY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGlteDZfcGNpZS0+cGNpZV9idXMp Owo+ID4gLWVycl9wY2llX2J1czoKPiA+IC0JY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGlteDZfcGNp ZS0+cGNpZV9waHkpOwo+ID4gKwljbGtfYnVsa19kaXNhYmxlX3VucHJlcGFyZShpbXg2X3BjaWUt PmNsa3NfY250LCBpbXg2X3BjaWUtPmNsa3MpOwo+ID4gIAo+ID4gIAlyZXR1cm4gcmV0Owo+ID4g IH0KPiA+IEBAIC02OTEsOSArNjUzLDcgQEAgc3RhdGljIGludCBpbXg2X3BjaWVfY2xrX2VuYWJs ZShzdHJ1Y3QgaW14Nl9wY2llICppbXg2X3BjaWUpCj4gPiAgc3RhdGljIHZvaWQgaW14Nl9wY2ll X2Nsa19kaXNhYmxlKHN0cnVjdCBpbXg2X3BjaWUgKmlteDZfcGNpZSkKPiA+ICB7Cj4gPiAgCWlt eDZfcGNpZV9kaXNhYmxlX3JlZl9jbGsoaW14Nl9wY2llKTsKPiA+IC0JY2xrX2Rpc2FibGVfdW5w cmVwYXJlKGlteDZfcGNpZS0+cGNpZSk7Cj4gPiAtCWNsa19kaXNhYmxlX3VucHJlcGFyZShpbXg2 X3BjaWUtPnBjaWVfYnVzKTsKPiA+IC0JY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGlteDZfcGNpZS0+ cGNpZV9waHkpOwo+ID4gKwljbGtfYnVsa19kaXNhYmxlX3VucHJlcGFyZShpbXg2X3BjaWUtPmNs a3NfY250LCBpbXg2X3BjaWUtPmNsa3MpOwo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgdm9pZCBp bXg2X3BjaWVfYXNzZXJ0X2NvcmVfcmVzZXQoc3RydWN0IGlteDZfcGNpZSAqaW14Nl9wY2llKQo+ ID4gQEAgLTEzMDUsMzIgKzEyNjUsMTkgQEAgc3RhdGljIGludCBpbXg2X3BjaWVfcHJvYmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiA+ICAJCXJldHVybiBpbXg2X3BjaWUtPnJlc2V0 X2dwaW87Cj4gPiAgCX0KPiA+ICAKPiA+IC0JLyogRmV0Y2ggY2xvY2tzICovCj4gPiAtCWlteDZf cGNpZS0+cGNpZV9idXMgPSBkZXZtX2Nsa19nZXQoZGV2LCAicGNpZV9idXMiKTsKPiA+IC0JaWYg KElTX0VSUihpbXg2X3BjaWUtPnBjaWVfYnVzKSkKPiA+IC0JCXJldHVybiBkZXZfZXJyX3Byb2Jl KGRldiwgUFRSX0VSUihpbXg2X3BjaWUtPnBjaWVfYnVzKSwKPiA+IC0JCQkJICAgICAicGNpZV9i dXMgY2xvY2sgc291cmNlIG1pc3Npbmcgb3IgaW52YWxpZFxuIik7Cj4gPiArCXdoaWxlIChpbXg2 X3BjaWUtPmRydmRhdGEtPmNsa19uYW1lc1tpbXg2X3BjaWUtPmNsa3NfY250XSkgewo+ID4gKwkJ aW50IGkgPSBpbXg2X3BjaWUtPmNsa3NfY250Owo+IAo+IFdoeSBjYW4ndCB5b3UgaW5pdGlhbGl6 ZSBpIHRvIDAgZGlyZWN0bHk/CgpjYW4ndCBpbml0IGkgdG8gMCBkaXJlY3RseSBoZXJlLCBvdGhl cndpc2UgbmV4dCBsb29wIGkgd2lsbCBub3QgaW5jcmVhc2UuCmkganVzdCByZWR1Y2UgcmVmZXIg aW14Nl9wY2llLT5jbGtzX2NudCBpbiAKCmlteDZfcGNpZS0+Y2xrc1tpXS5pZCA9IGlteDZfcGNp ZS0+ZHJ2ZGF0YS0+Y2xrX25hbWVzW2ldOwoKRnJhbmsKCj4gCj4gUmVzdCBsb29rcyBnb29kIHRv IG1lLgo+IAo+IC0gTWFuaQo+IAo+ID4gKwo+ID4gKwkJaW14Nl9wY2llLT5jbGtzW2ldLmlkID0g aW14Nl9wY2llLT5kcnZkYXRhLT5jbGtfbmFtZXNbaV07Cj4gPiArCQlpbXg2X3BjaWUtPmNsa3Nf Y250Kys7Cj4gPiArCX0KPiA+ICAKPiA+IC0JaW14Nl9wY2llLT5wY2llID0gZGV2bV9jbGtfZ2V0 KGRldiwgInBjaWUiKTsKPiA+IC0JaWYgKElTX0VSUihpbXg2X3BjaWUtPnBjaWUpKQo+ID4gLQkJ cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKGlteDZfcGNpZS0+cGNpZSksCj4gPiAt CQkJCSAgICAgInBjaWUgY2xvY2sgc291cmNlIG1pc3Npbmcgb3IgaW52YWxpZFxuIik7Cj4gPiAr CS8qIEZldGNoIGNsb2NrcyAqLwo+ID4gKwlyZXQgPSBkZXZtX2Nsa19idWxrX2dldChkZXYsIGlt eDZfcGNpZS0+Y2xrc19jbnQsIGlteDZfcGNpZS0+Y2xrcyk7Cj4gPiArCWlmIChyZXQpCj4gPiAr CQlyZXR1cm4gcmV0Owo+ID4gIAo+ID4gIAlzd2l0Y2ggKGlteDZfcGNpZS0+ZHJ2ZGF0YS0+dmFy aWFudCkgewo+ID4gLQljYXNlIElNWDZTWDoKPiA+IC0JCWlteDZfcGNpZS0+cGNpZV9pbmJvdW5k X2F4aSA9IGRldm1fY2xrX2dldChkZXYsCj4gPiAtCQkJCQkJCSAgICJwY2llX2luYm91bmRfYXhp Iik7Cj4gPiAtCQlpZiAoSVNfRVJSKGlteDZfcGNpZS0+cGNpZV9pbmJvdW5kX2F4aSkpCj4gPiAt CQkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKGlteDZfcGNpZS0+cGNpZV9pbmJv dW5kX2F4aSksCj4gPiAtCQkJCQkgICAgICJwY2llX2luYm91bmRfYXhpIGNsb2NrIG1pc3Npbmcg b3IgaW52YWxpZFxuIik7Cj4gPiAtCQlicmVhazsKPiA+IC0JY2FzZSBJTVg4TVE6Cj4gPiAtCWNh c2UgSU1YOE1RX0VQOgo+ID4gLQkJaW14Nl9wY2llLT5wY2llX2F1eCA9IGRldm1fY2xrX2dldChk ZXYsICJwY2llX2F1eCIpOwo+ID4gLQkJaWYgKElTX0VSUihpbXg2X3BjaWUtPnBjaWVfYXV4KSkK PiA+IC0JCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoaW14Nl9wY2llLT5wY2ll X2F1eCksCj4gPiAtCQkJCQkgICAgICJwY2llX2F1eCBjbG9jayBzb3VyY2UgbWlzc2luZyBvciBp bnZhbGlkXG4iKTsKPiA+IC0JCWZhbGx0aHJvdWdoOwo+ID4gIAljYXNlIElNWDdEOgo+ID4gIAkJ aWYgKGRiaV9iYXNlLT5zdGFydCA9PSBJTVg4TVFfUENJRTJfQkFTRV9BRERSKQo+ID4gIAkJCWlt eDZfcGNpZS0+Y29udHJvbGxlcl9pZCA9IDE7Cj4gPiBAQCAtMTM1MywxMCArMTMwMCw2IEBAIHN0 YXRpYyBpbnQgaW14Nl9wY2llX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4g PiAgCWNhc2UgSU1YOE1NX0VQOgo+ID4gIAljYXNlIElNWDhNUDoKPiA+ICAJY2FzZSBJTVg4TVBf RVA6Cj4gPiAtCQlpbXg2X3BjaWUtPnBjaWVfYXV4ID0gZGV2bV9jbGtfZ2V0KGRldiwgInBjaWVf YXV4Iik7Cj4gPiAtCQlpZiAoSVNfRVJSKGlteDZfcGNpZS0+cGNpZV9hdXgpKQo+ID4gLQkJCXJl dHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihpbXg2X3BjaWUtPnBjaWVfYXV4KSwKPiA+ IC0JCQkJCSAgICAgInBjaWVfYXV4IGNsb2NrIHNvdXJjZSBtaXNzaW5nIG9yIGludmFsaWRcbiIp Owo+ID4gIAkJaW14Nl9wY2llLT5hcHBzX3Jlc2V0ID0gZGV2bV9yZXNldF9jb250cm9sX2dldF9l eGNsdXNpdmUoZGV2LAo+ID4gIAkJCQkJCQkJCSAiYXBwcyIpOwo+ID4gIAkJaWYgKElTX0VSUihp bXg2X3BjaWUtPmFwcHNfcmVzZXQpKQo+ID4gQEAgLTEzNzIsMTQgKzEzMTUsNiBAQCBzdGF0aWMg aW50IGlteDZfcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4gIAlk ZWZhdWx0Ogo+ID4gIAkJYnJlYWs7Cj4gPiAgCX0KPiA+IC0JLyogRG9uJ3QgZmV0Y2ggdGhlIHBj aWVfcGh5IGNsb2NrLCBpZiBpdCBoYXMgYWJzdHJhY3QgUEhZIGRyaXZlciAqLwo+ID4gLQlpZiAo aW14Nl9wY2llLT5waHkgPT0gTlVMTCkgewo+ID4gLQkJaW14Nl9wY2llLT5wY2llX3BoeSA9IGRl dm1fY2xrX2dldChkZXYsICJwY2llX3BoeSIpOwo+ID4gLQkJaWYgKElTX0VSUihpbXg2X3BjaWUt PnBjaWVfcGh5KSkKPiA+IC0JCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoaW14 Nl9wY2llLT5wY2llX3BoeSksCj4gPiAtCQkJCQkgICAgICJwY2llX3BoeSBjbG9jayBzb3VyY2Ug bWlzc2luZyBvciBpbnZhbGlkXG4iKTsKPiA+IC0JfQo+ID4gLQo+ID4gIAo+ID4gIAkvKiBHcmFi IHR1cm5vZmYgcmVzZXQgKi8KPiA+ICAJaW14Nl9wY2llLT50dXJub2ZmX3Jlc2V0ID0gZGV2bV9y ZXNldF9jb250cm9sX2dldF9vcHRpb25hbF9leGNsdXNpdmUoZGV2LCAidHVybm9mZiIpOwo+ID4g QEAgLTE0NzcsNiArMTQxMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW14Nl9wY2llX2RydmRh dGEgZHJ2ZGF0YVtdID0gewo+ID4gIAkJCSBJTVg2X1BDSUVfRkxBR19JTVg2X1NQRUVEX0NIQU5H RSwKPiA+ICAJCS5kYmlfbGVuZ3RoID0gMHgyMDAsCj4gPiAgCQkuZ3ByID0gImZzbCxpbXg2cS1p b211eGMtZ3ByIiwKPiA+ICsJCS5jbGtfbmFtZXMgPSB7InBjaWVfYnVzIiwgInBjaWUiLCAicGNp ZV9waHkifSwKPiA+ICAJfSwKPiA+ICAJW0lNWDZTWF0gPSB7Cj4gPiAgCQkudmFyaWFudCA9IElN WDZTWCwKPiA+IEBAIC0xNDg0LDYgKzE0MjAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlteDZf cGNpZV9kcnZkYXRhIGRydmRhdGFbXSA9IHsKPiA+ICAJCQkgSU1YNl9QQ0lFX0ZMQUdfSU1YNl9T UEVFRF9DSEFOR0UgfAo+ID4gIAkJCSBJTVg2X1BDSUVfRkxBR19TVVBQT1JUU19TVVNQRU5ELAo+ ID4gIAkJLmdwciA9ICJmc2wsaW14NnEtaW9tdXhjLWdwciIsCj4gPiArCQkuY2xrX25hbWVzID0g eyJwY2llX2J1cyIsICJwY2llIiwgInBjaWVfcGh5IiwgInBjaWVfaW5ib3VuZF9heGkifSwKPiA+ ICAJfSwKPiA+ICAJW0lNWDZRUF0gPSB7Cj4gPiAgCQkudmFyaWFudCA9IElNWDZRUCwKPiA+IEBA IC0xNDkyLDQwICsxNDI5LDQ4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW14Nl9wY2llX2RydmRh dGEgZHJ2ZGF0YVtdID0gewo+ID4gIAkJCSBJTVg2X1BDSUVfRkxBR19TVVBQT1JUU19TVVNQRU5E LAo+ID4gIAkJLmRiaV9sZW5ndGggPSAweDIwMCwKPiA+ICAJCS5ncHIgPSAiZnNsLGlteDZxLWlv bXV4Yy1ncHIiLAo+ID4gKwkJLmNsa19uYW1lcyA9IHsicGNpZV9idXMiLCAicGNpZSIsICJwY2ll X3BoeSJ9LAo+ID4gIAl9LAo+ID4gIAlbSU1YN0RdID0gewo+ID4gIAkJLnZhcmlhbnQgPSBJTVg3 RCwKPiA+ICAJCS5mbGFncyA9IElNWDZfUENJRV9GTEFHX1NVUFBPUlRTX1NVU1BFTkQsCj4gPiAg CQkuZ3ByID0gImZzbCxpbXg3ZC1pb211eGMtZ3ByIiwKPiA+ICsJCS5jbGtfbmFtZXMgPSB7InBj aWVfYnVzIiwgInBjaWUiLCAicGNpZV9waHkifSwKPiA+ICAJfSwKPiA+ICAJW0lNWDhNUV0gPSB7 Cj4gPiAgCQkudmFyaWFudCA9IElNWDhNUSwKPiA+ICAJCS5ncHIgPSAiZnNsLGlteDhtcS1pb211 eGMtZ3ByIiwKPiA+ICsJCS5jbGtfbmFtZXMgPSB7InBjaWVfYnVzIiwgInBjaWUiLCAicGNpZV9w aHkiLCAicGNpZV9hdXgifSwKPiA+ICAJfSwKPiA+ICAJW0lNWDhNTV0gPSB7Cj4gPiAgCQkudmFy aWFudCA9IElNWDhNTSwKPiA+ICAJCS5mbGFncyA9IElNWDZfUENJRV9GTEFHX1NVUFBPUlRTX1NV U1BFTkQsCj4gPiAgCQkuZ3ByID0gImZzbCxpbXg4bW0taW9tdXhjLWdwciIsCj4gPiArCQkuY2xr X25hbWVzID0geyJwY2llX2J1cyIsICJwY2llIiwgInBjaWVfYXV4In0sCj4gPiAgCX0sCj4gPiAg CVtJTVg4TVBdID0gewo+ID4gIAkJLnZhcmlhbnQgPSBJTVg4TVAsCj4gPiAgCQkuZmxhZ3MgPSBJ TVg2X1BDSUVfRkxBR19TVVBQT1JUU19TVVNQRU5ELAo+ID4gIAkJLmdwciA9ICJmc2wsaW14OG1w LWlvbXV4Yy1ncHIiLAo+ID4gKwkJLmNsa19uYW1lcyA9IHsicGNpZV9idXMiLCAicGNpZSIsICJw Y2llX2F1eCJ9LAo+ID4gIAl9LAo+ID4gIAlbSU1YOE1RX0VQXSA9IHsKPiA+ICAJCS52YXJpYW50 ID0gSU1YOE1RX0VQLAo+ID4gIAkJLm1vZGUgPSBEV19QQ0lFX0VQX1RZUEUsCj4gPiAgCQkuZ3By ID0gImZzbCxpbXg4bXEtaW9tdXhjLWdwciIsCj4gPiArCQkuY2xrX25hbWVzID0geyJwY2llX2J1 cyIsICJwY2llIiwgInBjaWVfcGh5IiwgInBjaWVfYXV4In0sCj4gPiAgCX0sCj4gPiAgCVtJTVg4 TU1fRVBdID0gewo+ID4gIAkJLnZhcmlhbnQgPSBJTVg4TU1fRVAsCj4gPiAgCQkubW9kZSA9IERX X1BDSUVfRVBfVFlQRSwKPiA+ICAJCS5ncHIgPSAiZnNsLGlteDhtbS1pb211eGMtZ3ByIiwKPiA+ ICsJCS5jbGtfbmFtZXMgPSB7InBjaWVfYnVzIiwgInBjaWUiLCAicGNpZV9hdXgifSwKPiA+ICAJ fSwKPiA+ICAJW0lNWDhNUF9FUF0gPSB7Cj4gPiAgCQkudmFyaWFudCA9IElNWDhNUF9FUCwKPiA+ ICAJCS5tb2RlID0gRFdfUENJRV9FUF9UWVBFLAo+ID4gIAkJLmdwciA9ICJmc2wsaW14OG1wLWlv bXV4Yy1ncHIiLAo+ID4gKwkJLmNsa19uYW1lcyA9IHsicGNpZV9idXMiLCAicGNpZSIsICJwY2ll X2F1eCJ9LAo+ID4gIAl9LAo+ID4gIH07Cj4gPiAgCj4gPiAtLSAKPiA+IDIuMzQuMQo+ID4gCj4g Cj4gLS0gCj4g4K6u4K6j4K6/4K614K6j4K+N4K6j4K6p4K+NIOCumuCupOCuvuCumuCuv+CuteCu ruCvjQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlu dXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRl YWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt YXJtLWtlcm5lbAo=