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 61D35C433F5 for ; Tue, 1 Feb 2022 17:28:49 +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=9jZV4X0o1tvP4UFFiYoxPiS28HSFeBtRoJiPEWXor1s=; b=1yDxq/Cvh/K+sW PoWQxBuouufRTow0wcYJv73+wFzYWx7y8Fi8qNGztrzau1u+w+xkVux4ty3t3aKxW3gdn+B2Z7/lD f1SAJUz+WhAEahh2PVBPwOWvHINNZrbZsFC9RltL1tkyhEcKuYkQhc199WPdUthgj/lmdtsILyuE6 CbgVXGA86mpJraF0ZDrby7cFw2adt4sNci4f1YzS7DT7Pfyd2PvpPC68dCQHsDuL6B3y/k9upWIpg OwvgNjsI2sUF4Jc/EPySdOSe7oRini2VHgdEdteQ8DK+f9di5xp7niBJ7Ik1JIo+aJDOVcRbt3136 jRLw9d0fwP2p+kIPJU8w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nEww4-00DBKQ-EV; Tue, 01 Feb 2022 17:27:20 +0000 Received: from mail-sn1anam02on2104.outbound.protection.outlook.com ([40.107.96.104] helo=NAM02-SN1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nEwvz-00DBHv-D0 for linux-arm-kernel@lists.infradead.org; Tue, 01 Feb 2022 17:27:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fXX0AO0vDM9Bwl9HnDo+noWrBkyMGtwQ3nAMZ/3kp7TrQk2M+CdyaLA/uoGKtbY2r8F59zjuzCrbjvQG/MlAwgCC2sK0sfYD/vby2nUrYGI2JR4SgFtOEbkRs4EyEiIRC7v8p0z40c/qsCQ/mHadxvpQMw+iLHjDcKz/o6XLgwCiOX21b5qnaO3KX14AeL06Qx9PmZ/fnRgQTJrUlHiB5AE0OW62fL0qG9YljJiyrKcNIRpSU2KTdQznulNMZfFeublroOqgUq1N5WaL3fLdx5n+YSBufD9uEyL0z5nuElepdrb7+VuJWX5sktPWHWMt7DGigZdYy4qMAYEYau6SbQ== 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=o7uxp0KQ1QG2T9BBbvEDNLhFjCp5kuoCCBEP2riGugE=; b=W/vPnn6WGbUTePEYLIz5a+qg59BeQn3/FFQKdVUoi19Oho35Yp/CNFlPOtj7/YJwLsR7zo+PX7rfA7cchzzhjQXmME1wRvZcTP9mCOR0IJRHGJS4uYVMFq6ICBlMdO+Jhy0cRKitrUx4YxkZ56H5hcmoPLKPZlHt79ZHma9H2/5yvNb7sm0RkhxiIQ83sUs/9MMLwcmCS+WoXMn27L3EflxYNFo3G5BImdlg5nrGqdvQqB5H2q+su/rCKEacQ3LemYMhpazWCUz7KL/R1NRuGgYmpcwi1b+ILpbMVJJVlwO4bJgfyKdorTK0k8r+GzwTo+GlOnaWlQTIOB5pnmCcsA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inadvantage.onmicrosoft.com; s=selector2-inadvantage-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=o7uxp0KQ1QG2T9BBbvEDNLhFjCp5kuoCCBEP2riGugE=; b=dRg8+iOINuT1nwKRu1wVTLB6cME9ixEzgZ2Rksat9U4R7wHOjN1gikqbJNl2Ck+mnh8vk+ctnUCCJMxQGC/I5rdsXuFfXv77sacYzycn/P2TVha87+JBJpHJeM2d00P98J2tGrOC6109UtpDoIcUbdyRslUW8LH1S9gAWHMw6/E= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=in-advantage.com; Received: from MWHPR1001MB2351.namprd10.prod.outlook.com (2603:10b6:301:35::37) by MWHPR10MB1902.namprd10.prod.outlook.com (2603:10b6:300:10d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.15; Tue, 1 Feb 2022 17:27:10 +0000 Received: from MWHPR1001MB2351.namprd10.prod.outlook.com ([fe80::2d52:2a96:7e6c:460f]) by MWHPR1001MB2351.namprd10.prod.outlook.com ([fe80::2d52:2a96:7e6c:460f%4]) with mapi id 15.20.4930.020; Tue, 1 Feb 2022 17:27:10 +0000 Date: Tue, 1 Feb 2022 09:27:07 -0800 From: Colin Foster To: Lee Jones Cc: linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Steen Hegelund , Lars Povlsen , Linus Walleij , Russell King , Heiner Kallweit , Jakub Kicinski , "David S. Miller" , Florian Fainelli , Vivien Didelot , Andrew Lunn , UNGLinuxDriver@microchip.com, Alexandre Belloni , Claudiu Manoil , Vladimir Oltean , katie.morris@in-advantage.com Subject: Re: [RFC v6 net-next 6/9] mfd: ocelot: add support for external mfd control over SPI for the VSC7512 Message-ID: <20220201172707.GA6990@COLIN-DESKTOP1.localdomain> References: <20220129220221.2823127-1-colin.foster@in-advantage.com> <20220129220221.2823127-7-colin.foster@in-advantage.com> <20220131172934.GB28107@COLIN-DESKTOP1.localdomain> Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: MW4PR03CA0179.namprd03.prod.outlook.com (2603:10b6:303:8d::34) To MWHPR1001MB2351.namprd10.prod.outlook.com (2603:10b6:301:35::37) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 464d692b-a07d-43dc-4abf-08d9e5a813e1 X-MS-TrafficTypeDiagnostic: MWHPR10MB1902:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9rC4rukfsJmELnYCOrg794ZeEcAiHKBPJl/NpP9Ks++WMk7TYyv/LlMxFH2Ee7PqU4ygOqkogA+c5xdDOmfLZs70AfX9OR00IUmvdw9BI3WL+AR0epyT+A0DfANjpN90Rf229KRvZt59/RHJ5ApVNeipXg+t6wSfFkZtDL5hd2myjuNhVqg6xsX/Jr/nuWKHPTpArCKxT8NJgu9uOf5PQj/bfRvfFr4kMG16IfF04UBnfItokz8uQLgLmL+6xsxfrtcjthgbCjITunkLowOkUXWqTdzVThllCR+JfOvx5cRe5xCl815CiKOVxRt6UGsJV0iXpyWT9+jPo82S0XidTZ1vwXzi7pAwbsWDZunLwF/6kkJo73h3PUZ3qx61OSYna6R1JoYiQCZuRrelZfK5Z6Apfesc6KeDJBKh8pVfQ8s3m53nwde6iVTJYd0K7GHavjNqHHyY/xBE6h7m/VsoT+GQaC/Ip5ck32DTSvhwXaT09j1++KXVYI6vRtRSKV0Yk7s3GpWsvaMGJvcA07heXePv0udXUQu2i7RrX4v46b64i9NwBSgz3SnqfwbxbCrEvFsYtLt88S3xb349ZqudT3KEm2ztKL37nLtKfgDvYtldpfwMSvj6NYWhG4ySH9Gy/3qGCrZ8Tg8+5T3mMqulpl3B3ZU2K7F102om+ffGvr+YaiPfoukGJH5iiLJUKvU7ubZGRhjHZNEStZF56P5u83NXimYMHDZJUBNKM5OHywxQYn8YdQpRhpcWiUBI5ng1 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR1001MB2351.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(376002)(346002)(42606007)(39840400004)(396003)(136003)(366004)(6506007)(6512007)(9686003)(7416002)(5660300002)(52116002)(1076003)(186003)(26005)(44832011)(83380400001)(33656002)(107886003)(30864003)(2906002)(6486002)(86362001)(316002)(66476007)(38100700002)(66556008)(38350700002)(6916009)(54906003)(508600001)(4326008)(6666004)(8676002)(8936002)(66946007)(20210929001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?a0tIdUlPdE5BQUtZdG9mLzFWUld1bU80RlNtbzBibUZ5bTNWV0NpUThlcVhk?= =?utf-8?B?NDhTMXhSOEtqSEpuQmpZU1JueSt3UDNKeUxMRDBpZll2UnJ4WjZzbk5UMk94?= =?utf-8?B?UjBXNGtXaHN1MVV5a2lwMXp4WXlCRW5kN1Y0SXJkRGtwZ1EyT1BhRFpSaU1K?= =?utf-8?B?bGk5VERPLzZQa3ZXTENUay8yWmdzbXdmZ1RSdEFWNHJxc0hhZ1pBdUZlSUhZ?= =?utf-8?B?S2Zlc1VNUEJGcEJyckxNYzJCc0NIamdWb0ViUmkxa1RSOWduaGoxUmNLRCto?= =?utf-8?B?N01HQVdpa0YrbTR5U1I1amd4OWdkYTZUUFR1eTh2MVJzcWN2aHBLRCs0MGhT?= =?utf-8?B?eGowaUd4bFRmVzlER0kyYVZKOVYrR0RJVlE3ZExQeEZxK3VZVzlnb09kaWNV?= =?utf-8?B?QldtRThpb1NXSExUY0FvcW1ISHNzd0lodE0xcHFaNjJ4WEp4QjBka2JqUEdv?= =?utf-8?B?ekVnYWhSN0k4cE92Y3hyM01SblB4MUd0aElXSHV0bm1CaTBmdzdrZ3BNQXIy?= =?utf-8?B?L3p6Z1JzNW5ldmhkUFFSUkRaTkZNRXIrazVEZjQxMkRLemRCMld0cEluV3JQ?= =?utf-8?B?N3h5cTQ0VHdpS2xmTk1GZTNrZEsrUmhwKzRaM2V0WWNuRUJWWHBpUTlDTExl?= =?utf-8?B?NGtIemR2bWc2Y0lVdmdVR1MvME5XS1ZkZlZMeXd1dnNNYUR1RTY0ZFROdFBM?= =?utf-8?B?bDhnb0svWWlxbElyZVJ6bG50ano4UUx6dkRRVVZhenFzbmtjRXQzb3FUWllp?= =?utf-8?B?ejRNL1luNGwwd1hjL2kxZFlzdzMyQkNhRTBQaUVSaHowWWRZbExUckNWREwr?= =?utf-8?B?SzBYTXRpNVUrbnR0Y1Y2cUJIZWRHNzI1S0RVMXFsaU5KcjZHQjZrL2NkeXRQ?= =?utf-8?B?RnFJaiswam5jcERpTUwrQlZnUGIwNVRUVE1iTVZXODlhNVJyNTJTS3BwTnJG?= =?utf-8?B?cit6U1B2NFdYYzRpY25sUTNPdzJzR3lycDRKWXA1d002bnR0QzFJMlVWQnpI?= =?utf-8?B?MEMxZ1pWd2pucFZpMEJGekxrcGJ4Y1prTDRFVXBaQzB1Q2FJYnE2cVBnSmJM?= =?utf-8?B?QUVicmJrUXVSbGJxdmNwMDl6S2xaaVVGN2VmUCtDV0pxR3JCOGh6Y3JMdFZT?= =?utf-8?B?SmltQTBrekdjV040MmN5eXRDdEEyYzBneUViZ0ttTmFsdDlMREtpZTJ0YlFC?= =?utf-8?B?bzJhc0lqZzQ0Rjk4cm1Td1pQNXdTY2E3djJwNjg5azhNQ2VtOG9obzJXTmlr?= =?utf-8?B?ODNzMWlrRi9mVnZqY3h6ejB5Y2RXRFBuSk13ZWxhc0JWRG1WY05LSW9xR0Fs?= =?utf-8?B?eHBtRGEyMml4ZE13NVJqWE1YejhERDgyVy8vazNIUGhqRkRCOVVDL0VDZU9x?= =?utf-8?B?RFUwdklHckhlMWJndnlwMVR6ZG1ITTBxcmQrMkQ0eEZ0NEFodkZxbUJlQ0lM?= =?utf-8?B?NUpYZUliVkF0QUtxQnNPcEYybWp0UVNiZW9OZDgwamMwT2w3dlkwMGY2MnYr?= =?utf-8?B?OFU1YVZzdUJUeUhBUmk3Rmx2ZkZLTWxBY1hGcEptbWdnc3hFQ2JZT0VDOWdh?= =?utf-8?B?U3FRS0VlbHVadjliVTVjZUdTemNUS1lFVHM0TVBnamRXQjF3Vk5IbXY1OFc5?= =?utf-8?B?K2pwbDdLVTU5bjAwdG01TEJlUFdic3VxMWQyWmIyZUNmVEdCVk5haG9GQWVZ?= =?utf-8?B?N1Uzdjh2YzdEWFZzVE92UkFNd1BMUnlhdS81VmIyeEhqWGhCSGhKcFhnMHhr?= =?utf-8?B?V09lVkxMalQ5WU16ZlR5L0VtSHZDYlpoWjNBWlFzaFhhbUpMTjR6bGtBVHZv?= =?utf-8?B?L29Wd0ZLQ1lGektkU2t1bkdWbS9DTVdUWWtkQXpPblJpdVMxQngxVTVvV2dU?= =?utf-8?B?eWhWUUJoRWFzdVBDSFE2aUhUQkJkQjZ2NGNNWm9Na3RoMjgwbG42dXNWelFC?= =?utf-8?B?UmgrTmRPNXk0cE40Q25HcjQ1YUJ1cHNGWTVibU0zVzEyVWZPOFNKOGxxbXJO?= =?utf-8?B?MU5DZS92RzMrSEh4RlJUSXFBdWQ5djZrWElsdEN0aDZlbmgzRHJGYjFiTVor?= =?utf-8?B?Q3dzTVBIdHFQTTdaakVWYVJKajhTRVZ5eVNqbmxpNkExM0pXOGUxc0JSM1lP?= =?utf-8?B?OEV5SmR2K1dsUU9NNU9ZalBOVlJXbVpTTVZtRDlOUWJDTUFIRFYweDZ6c09P?= =?utf-8?B?ZjlkVmhDRlZZOU1LZ0pXNDRJTEJDYmdvaitIUDM3aEVWNnNNMXlnSmFjZkZy?= =?utf-8?Q?qUP5AZpPgidADJuTWzgvlW8Nwur24GFVIQs+NZMVCM=3D?= X-OriginatorOrg: in-advantage.com X-MS-Exchange-CrossTenant-Network-Message-Id: 464d692b-a07d-43dc-4abf-08d9e5a813e1 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2351.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Feb 2022 17:27:10.4808 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 48e842ca-fbd8-4633-a79d-0c955a7d3aae X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ZG7Bit9whnUzMA/H7CjgKML0keHwabDjCVLc0jheHuXLuJF/LOziKwac8L5KPjGV5qYv8UJg6N79dAuYgokNt1qGKReC9LLGTzygeXUwtWU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1902 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220201_092715_594780_092EFEB3 X-CRM114-Status: GOOD ( 58.98 ) 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 SGVsbG8gTGVlLAoKT24gVHVlLCBGZWIgMDEsIDIwMjIgYXQgMDc6MzY6MjFBTSArMDAwMCwgTGVl IEpvbmVzIHdyb3RlOgo+IE9uIE1vbiwgMzEgSmFuIDIwMjIsIENvbGluIEZvc3RlciB3cm90ZToK PiAKPiA+IEhpIExlZSwKPiA+IAo+ID4gVGhhbmsgeW91IHZlcnkgbXVjaCBmb3IgeW91ciB0aW1l IC8gZmVlZGJhY2suCj4gPiAKPiA+IE9uIE1vbiwgSmFuIDMxLCAyMDIyIGF0IDA5OjI5OjM0QU0g KzAwMDAsIExlZSBKb25lcyB3cm90ZToKPiA+ID4gT24gU2F0LCAyOSBKYW4gMjAyMiwgQ29saW4g Rm9zdGVyIHdyb3RlOgo+ID4gPiAKPiA+ID4gPiBDcmVhdGUgYSBzaW5nbGUgU1BJIE1GRCBvY2Vs b3QgZGV2aWNlIHRoYXQgbWFuYWdlcyB0aGUgU1BJIGJ1cyBvbiB0aGUKPiA+ID4gPiBleHRlcm5h bCBjaGlwIGFuZCBjYW4gaGFuZGxlIHJlcXVlc3RzIGZvciByZWdtYXBzLiBUaGlzIHNob3VsZCBh bGxvdyBhbnkKPiA+ID4gPiBvY2Vsb3QgZHJpdmVyIChwaW5jdHJsLCBtaWltLCBldGMuKSB0byBi ZSB1c2VkIGV4dGVybmFsbHksIHByb3ZpZGVkIHRoZXkKPiA+ID4gPiB1dGlsaXplIHJlZ21hcHMu Cj4gPiA+ID4gCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogQ29saW4gRm9zdGVyIDxjb2xpbi5mb3N0 ZXJAaW4tYWR2YW50YWdlLmNvbT4KPiA+ID4gPiAtLS0KPiA+ID4gPiAgZHJpdmVycy9tZmQvS2Nv bmZpZyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTkgKysKPiA+ID4gPiAgZHJpdmVycy9tZmQv TWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwo+ID4gPiA+ICBkcml2ZXJzL21m ZC9vY2Vsb3QtY29yZS5jICAgICAgICAgICAgICAgICB8IDE2NSArKysrKysrKysrKwo+ID4gPiA+ ICBkcml2ZXJzL21mZC9vY2Vsb3Qtc3BpLmMgICAgICAgICAgICAgICAgICB8IDMyNSArKysrKysr KysrKysrKysrKysrKysrCj4gPiA+ID4gIGRyaXZlcnMvbWZkL29jZWxvdC5oICAgICAgICAgICAg ICAgICAgICAgIHwgIDM2ICsrKwo+ID4gPiAKPiA+ID4gPiAgZHJpdmVycy9uZXQvbWRpby9tZGlv LW1zY2MtbWlpbS5jICAgICAgICAgfCAgMjEgKy0KPiA+ID4gPiAgZHJpdmVycy9waW5jdHJsL3Bp bmN0cmwtbWljcm9jaGlwLXNncGlvLmMgfCAgMjIgKy0KPiA+ID4gPiAgZHJpdmVycy9waW5jdHJs L3BpbmN0cmwtb2NlbG90LmMgICAgICAgICAgfCAgMjkgKy0KPiA+ID4gPiAgaW5jbHVkZS9zb2Mv bXNjYy9vY2Vsb3QuaCAgICAgICAgICAgICAgICAgfCAgMTEgKwo+ID4gPiAKPiA+ID4gUGxlYXNl IGF2b2lkIG1peGluZyBzdWJzeXN0ZW1zIGluIHBhdGNoZXMgaWYgYXQgYWxsIGF2b2lkYWJsZS4K PiA+ID4gCj4gPiA+IElmIHRoZXJlIGFyZSBub3QgYnVpbGQgdGltZSBkZXBlbmRlbmNpZXMvYnJl YWthZ2VzLCBJJ2Qgc3VnZ2VzdAo+ID4gPiBmaXJzdGx5IGFwcGx5aW5nIHN1cHBvcnQgZm9yIHRo aXMgaW50byBNRkQgKnRoZW4qIHV0aWxpc2luZyB0aGF0Cj4gPiA+IHN1cHBvcnQgaW4gc3Vic2Vx dWVudCBwYXRjaGVzLgo+ID4gCj4gPiBNeSBsYXN0IFJGQyBkaWQgdGhpcywgYW5kIHlvdSBoYWQg c3VnZ2VzdGVkIHRvIHNxdWFzaCB0aGUgY29tbWl0cy4gVG8KPiA+IGNsYXJpZnksIGFyZSB5b3Ug c3VnZ2VzdGluZyB0aGUgTUZEIC8gUGluY3RybCBnZXQgYXBwbGllZCBpbiBhIHNpbmdsZQo+ID4g cGF0Y2gsIHRoZW4gdGhlIE1JSU0gZ2V0IGFwcGxpZWQgaW4gYSBzZXBhcmF0ZSBvbmU/IEJlY2F1 c2UgSSBoYWQKPiA+IHN0YXJ0ZWQgd2l0aCB3aGF0IHNvdW5kcyBsaWtlIHlvdSdyZSBkZXNjcmli aW5nIC0gYW4gImVtcHR5IiBNRkQgd2l0aAo+ID4gc3Vic2VxdWVudCBwYXRjaGVzIHJvbGxpbmcg aW4gZWFjaCBzdWJzeXN0ZW0uCj4gPiAKPiA+IFBlcmhhcHMgSSBtaXNpbnRlcnByZXRlZCB5b3Vy IGluaXRpYWwgZmVlZGJhY2suCj4gCj4gSSB3YW50IHlvdSB0byBhZGQgYWxsIGRldmljZSBzdXBw b3J0IGludG8gdGhlIE1GRCBkcml2ZXIgYXQgb25jZS4KPiAKPiBUaGUgYXNzb2NpYXRlZCBkcml2 ZXJzLCB0aGUgb25lcyB0aGF0IGxpdmUgaW4gb3RoZXIgc3Vic3lzdGVtcywgc2hvdWxkCj4gYmUg YXBwbGllZCBhcyBzZXBhcmF0ZSBwYXRjaGVzLiAgVGhlcmUgc2VsZG9tIGV4aXN0IGFueSAqYnVp bGQgdGltZSoKPiBkZXBlbmRlbmNpZXMgYmV0d2VlbiB0aGUgZGV2aWNlIHNpZGUgYW5kIHRoZSBk cml2ZXIgc2lkZS4KClRoZSBzdWItZGV2aWNlcyBhcmUgbW9kaWZpZWQgdG8gdXNlIG9jZWxvdF9n ZXRfcmVnbWFwX2Zyb21fcmVzb3VyY2UuIEkKc3VwcG9zZSBJIGNhbiBhZGQgdGhlIGlubGluZSBz dHViIGZ1bmN0aW9uIGluIGRyaXZlcnMvbWZkL29jZWxvdC5oLAp3aGljaCB3b3VsZG4ndCBicmVh ayBmdW5jdGlvbmFsaXR5LiBJJ2xsIGRvIHRoYXQgaW4gdGhlIG5leHQgUkZDLgpUaGFua3MgZm9y IGNsYXJpZnlpbmchCgo+IAo+ID4gPiA+ICA5IGZpbGVzIGNoYW5nZWQsIDYxNCBpbnNlcnRpb25z KCspLCAxNyBkZWxldGlvbnMoLSkKPiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv bWZkL29jZWxvdC1jb3JlLmMKPiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbWZk L29jZWxvdC1zcGkuYwo+ID4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9tZmQvb2Nl bG90LmgKPiA+ID4gPiAKPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvS2NvbmZpZyBi L2RyaXZlcnMvbWZkL0tjb25maWcKPiA+ID4gPiBpbmRleCBiYTBiM2ViMTMxZjEuLjU3YmJmMmQx MTMyNCAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL21mZC9LY29uZmlnCj4gPiA+ID4gKysr IGIvZHJpdmVycy9tZmQvS2NvbmZpZwo+ID4gPiA+IEBAIC05NDgsNiArOTQ4LDI1IEBAIGNvbmZp ZyBNRkRfTUVORjIxQk1DCj4gPiA+ID4gIAkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0 IGFzIGEgbW9kdWxlLiBJZiBzbyB0aGUgbW9kdWxlCj4gPiA+ID4gIAkgIHdpbGwgYmUgY2FsbGVk IG1lbmYyMWJtYy4KPiA+ID4gPiAgCj4gPiA+ID4gK2NvbmZpZyBNRkRfT0NFTE9UCj4gPiA+ID4g Kwl0cmlzdGF0ZSAiTWljcm9zZW1pIE9jZWxvdCBFeHRlcm5hbCBDb250cm9sIFN1cHBvcnQiCj4g PiA+IAo+ID4gPiBQbGVhc2UgZXhwbGFpbiBleGFjdGx5IHdoYXQgYW4gRUNTIGlzIGluIHRoZSBo ZWxwIGJlbG93Lgo+ID4gCj4gPiBJIHRob3VnaHQgSSBoYWQgYnkgd2F5IG9mIHRoZSBzZWNvbmQg cGFyYWdyYXBoIGJlbG93LiBJJ20gdHJ5aW5nIHRvCj4gPiB0aGluayBvZiB3aGF0IGV4dHJhIGlu Zm9ybWF0aW9uIGNvdWxkIGJlIG9mIHVzZSBhdCB0aGlzIHBvaW50Li4uIAo+ID4gCj4gPiBJIGNv dWxkIGRlc2NyaWJlIGhvdyB0aGV5IGhhdmUgaW50ZXJuYWwgcHJvY2Vzc29ycyBhbmQgdXNpbmcg dGhpcyBsZXZlbAo+ID4gb2YgY29udHJvbCB3b3VsZCBiYXNpY2FsbHkgYnlwYXNzIHRoYXQgZnVu Y3Rpb25hbGl0eS4KPiAKPiBZZXMgcGxlYXNlLgo+IAo+IEFsc28gcHJvdmlkZSBkZXRhaWxzIGFi b3V0IHdoYXQgdGhlIGRldmljZSBhY3R1YWxseSBkb2VzLgoKR290IGl0LgoKPiAKPiA+ID4gPiAr c3RhdGljIHN0cnVjdCByZWdtYXAgKm9jZWxvdF9kZXZtX3JlZ21hcF9pbml0KHN0cnVjdCBvY2Vs b3RfY29yZSAqY29yZSwKPiA+ID4gPiArCQkJCQkgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYsCj4g PiA+ID4gKwkJCQkJICAgICAgY29uc3Qgc3RydWN0IHJlc291cmNlICpyZXMpCj4gPiA+ID4gK3sK PiA+ID4gPiArCXN0cnVjdCByZWdtYXAgKnJlZ21hcDsKPiA+ID4gPiArCj4gPiA+ID4gKwlyZWdt YXAgPSBkZXZfZ2V0X3JlZ21hcChkZXYsIHJlcy0+bmFtZSk7Cj4gPiA+ID4gKwlpZiAoIXJlZ21h cCkKPiA+ID4gPiArCQlyZWdtYXAgPSBvY2Vsb3Rfc3BpX2Rldm1fZ2V0X3JlZ21hcChjb3JlLCBk ZXYsIHJlcyk7Cj4gPiA+IAo+ID4gPiBXaHkgYXJlIHlvdSBtYWtpbmcgU1BJIHNwZWNpZmljIGNh bGxzIGZyb20gdGhlIENvcmUgZHJpdmVyPwo+ID4gCj4gPiBUaGlzIHdhcyBteSBpbnRlcnByZXRh dGlvbiBvZiB5b3VyIGluaXRpYWwgZmVlZGJhY2suIEl0IHdhcyBpbml0aWFsbHkKPiA+IGltcGxl bWVudGVkIGFzIGEgY29uZmlnLT5nZXRfcmVnbWFwKCkgZnVuY3Rpb24gcG9pbnRlciBzbyB0aGF0 IGNvcmUKPiA+IGRpZG4ndCBuZWVkIHRvIGtub3cgYW55dGhpbmcgYWJvdXQgb2NlbG90X3NwaS4K PiA+IAo+ID4gSWYgZnVuY3Rpb24gcG9pbnRlcnMgYXJlbid0IHVzZWQsIGl0IHNlZW1zIGxpa2Ug Y29yZSB3b3VsZCBoYXZlIHRvIGtub3cKPiA+IGFib3V0IGFsbCBwb3NzaWJsZSBidXMgdHlwZXMu Li4gTWF5YmUgbXkgbmFtaW5nIGxlZCB0byBzb21lCj4gPiBtaXN1bmRlcnN0YW5kaW5ncy4gU3Bl Y2lmaWNhbGx5IEknZCB1c2VkICJpbml0X2J1cyIgd2hpY2ggd2FzIGludGVuZGVkCj4gPiB0byBi ZSAic2V0IHVwIHRoZSBjaGlwIHRvIGJlIGFibGUgdG8gcHJvcGVybHkgY29tbXVuaWNhdGUgdmlh IFNQSSIgYnV0Cj4gPiBjb3VsZCBoYXZlIGJlZW4gaW50ZXJwcmV0ZWQgYXMgInRlbGwgdGhlIHVz ZXIgb2YgdGhpcyBkcml2ZXIgdGhhdCB0aGUKPiA+IGJ1cyBpcyBiZWluZyBpbml0aWFsaXplZCBi eSB3YXkgb2YgYSBjYWxsYmFjayI/Cj4gCj4gT2theSwgSSBzZWUgd2hhdCdzIGhhcHBlbmluZyBu b3cuCj4gCj4gUGxlYXNlIGFkZCBhIGNvbW1lbnQgdG8gZGVzY3JpYmUgd2h5IHlvdSdyZSBjYWxs aW5nIG9uZSBoZWxwZXIsIHdoYXQKPiBmYWlsdXJlIG1lYW5zIGluIHRoZSBmaXJzdCBpbnN0YW5j ZSBhbmQgd2hhdCB5b3UgaG9wZSB0byBhY2hpZXZlIGJ5Cj4gY2FsbGluZyB0aGUgc3Vic2VxdWVu dCBvbmUuCgpXaWxsIGRvLgoKPiAKPiA+ID4gPiArCXJldHVybiByZWdtYXA7Cj4gPiA+ID4gK30K PiA+ID4gPiArCj4gPiA+ID4gK3N0cnVjdCByZWdtYXAgKm9jZWxvdF9nZXRfcmVnbWFwX2Zyb21f cmVzb3VyY2Uoc3RydWN0IGRldmljZSAqZGV2LAo+ID4gPiA+ICsJCQkJCSAgICAgICBjb25zdCBz dHJ1Y3QgcmVzb3VyY2UgKnJlcykKPiA+ID4gPiArewo+ID4gPiA+ICsJc3RydWN0IG9jZWxvdF9j b3JlICpjb3JlID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJcmV0 dXJuIG9jZWxvdF9kZXZtX3JlZ21hcF9pbml0KGNvcmUsIGRldiwgcmVzKTsKPiA+ID4gPiArfQo+ ID4gPiA+ICtFWFBPUlRfU1lNQk9MKG9jZWxvdF9nZXRfcmVnbWFwX2Zyb21fcmVzb3VyY2UpOwo+ ID4gPiAKPiA+ID4gV2h5IGRvbid0IHlvdSBhbHdheXMgY2FsbCBvY2Vsb3RfZGV2bV9yZWdtYXBf aW5pdCgpIHdpdGggdGhlICdjb3JlJwo+ID4gPiBwYXJhbWV0ZXIgZHJvcHBlZCBhbmQganVzdCBk byBkZXZfZ2V0X2RydmRhdGEoKSBpbnNpZGUgb2YgdGhlcmU/Cj4gPiA+IAo+ID4gPiBZb3UncmUg cGFzc2luZyAnZGV2JyBhbnl3YXkuCj4gPiAKPiA+IFRoaXMgbWlnaHQgYmUgYW4gZXJyb3IuIEkn bGwgbG9vayBpbnRvIHRoaXMsIGJ1dCBJIGNoYW5nZWQgdGhlIGludGVuZGVkCj4gPiBiZWhhdmlv ciBvZiB0aGlzIGJldHdlZW4gdjUgYW5kIHY2Lgo+ID4gCj4gPiBJbiB2NSBJIGhhZCBpbnRlbmRl ZCB0byBhdHRhY2ggYWxsIHJlZ21hcHMgdG8gdGhlIHNwaV9kZXZpY2UuIFRoaXMgd2F5Cj4gPiB0 aGV5IGNvdWxkIGJlIHNoYXJlZCBhbW9uZ3N0IGNoaWxkIGRldmljZXMgb2Ygc3BpLT5kZXYuIEkg dGhpbmsgdGhhdCB3YXMKPiA+IGEgYmFkIGRlc2lnbiBkZWNpc2lvbiBvbiBteSBwYXJ0LCBzbyBJ IGFiYW5kb25lZCBpdC4gSWYgdGhlIGNoaWxkCj4gPiBkZXZpY2VzIGFyZSB0byBzaGFyZSByZWdt YXBzLCB0aGV5IHNob3VsZCBleHBsaWNpdGx5IGRvIHNvIGJ5IHdheSBvZgo+ID4gc3lzY29uLCBu b3QgaW1wbGljaXRseSBieSBuYW1lLgo+ID4gCj4gPiBJbiB2NiBteSBpbnRlbnQgaXMgdG8gaGF2 ZSBldmVyeSByZWdtYXAgYmUgZGV2bS1saW5rZWQgdG8gdGhlIGNoaWxkcmVuLgo+ID4gVGhpcyB3 YXkgdGhlIHJlZ21hcCB3b3VsZCBiZSBkZXN0cm95ZWQgYW5kIHJlY3JlYXRlZCBieSBybW1vZCAv IGluc21vZCwKPiA+IG9mIHRoZSBzdWItbW9kdWxlcywgaW5zdGVhZCBvZiBiZWluZyBrZXB0IGFy b3VuZCB0aGUgTUZEIG1vZHVsZS4KPiAKPiBXaGF0J3MgdGhlIHJlYXNvbiBmb3IgdXNpbmcgYW4g TUZEIHRvIGhhbmRsZSB0aGUgUmVnbWFwKHMpIGlmIHlvdSdyZQo+IGdvaW5nIHRvIGhhdmUgcGVy LWRldmljZSBvbmVzIGFueXdheT8gIFdoeSBub3QgaGFuZGxlIHRoZW0gaW4gdGhlCj4gY2hpbGRy ZW4/CgpBbHNvIGFkZHJlc3NpbmcgdGhlIHN1Z2dlc3Rpb24gYmVsb3c6CgpvY2Vsb3RfY29yZSBp cyB0aGUgTUZEICJyZWdtYXAtZ2l2ZXIiLiBJdCBrbm93cyBob3cgdG8gZ2V0IGEgcmVnbWFwIGZy b20KT2NlbG90IFNQSSBhbmQgaGFuZCBpdCB0byB0aGUgY2hpbGQuCgpJbiBvcmRlciB0byBkbyB0 aGlzLCBvY2Vsb3RfY29yZSBuZWVkcyB0byBrbm93IGluZm9ybWF0aW9uIGFib3V0Cm9jZWxvdC1z cGkuIEFzIHlvdSBwb2ludGVkIG91dCwgdGhlcmUncyBhIGNsZWFuZXIgd2F5IHRvIGRvIHRoaXMg d2l0aG91dApqdW1waW5nIGJldHdlZW4gY29yZSwgc3BpLCBhbmQgZGV2LiBJIGFncmVlLgoKSG93 ZXZlciwgdGhlIG9jZWxvdC1zcGkgcHJpdiBkYXRhIGlzIHRpZWQgdG8gb2NlbG90X2NvcmUtPmRl di4gSW4gb3JkZXIKdG8gcmVjb3ZlciB0aGF0IGluZm9ybWF0aW9uLCBvY2Vsb3QtY29yZSBuZWVk cyB0byBrbm93IGFib3V0IGEgY2hpbGQKZGV2aWNlJ3MgImRldi0+cGFyZW50Ii4KClNvIGluIHY1 LCBJIGhhZCBvbmx5IHVzZWQgdGhpcyAiY29yZS0+ZGV2Iiwgd2hpY2ggZXZlbnR1YWxseSBidXJy b3dlZApkb3duIGludG8gZGV2bV9yZWdtYXBfaW5pdCgpLgoKV2hhdCB0aGlzIHdvdWxkIG1lYW4g dG8gdGhlIHVzZXIgaXMgaWYgdGhleSByYW4gIm1vZHByb2JlCm9jZWxvdC1waW5jdHJsOyBybW1v ZCBvY2Vsb3QtcGluY3RybCIgdGhlcmUgd291bGQgYmUgYSBkZWJ1Z2ZzIGludGVyZmFjZQpsZWZ0 IGF0IC9zeXMva2VybmVsL2RlYnVnL3JlZ21hcC9zcGkwLjAtZ2NiX2dwaW8gdGhhdCB3YXMgY3Jl YXRlZCBmb3IKb2NlbG90LXBpbmN0cmwsIGJ1dCBhYmFuZG9uZWQuCgpJIGZlZWwgbGlrZSB0aGF0 IGlzIGluY29ycmVjdCBiZWhhdmlvci4gInJtbW9kIG9jZWxvdC1waW5jdHJsIiBzaG91bGQKZGVz dHJveSB0aGUgcmVnbWFwLCBzaW5jZSBpdCBpcyB1bnVzZWQuIEluIGZhY3QsIGl0IHdvdWxkIHBy b2JhYmx5IGJyZWFrCnVwb24gc3Vic2VxdWVudCAibW9kcHJvYmUiIGNvbW1hbmRzLCBzaW5jZSBp dCB3b3VsZCB0cnkgdG8gcmVnaXN0ZXIgYQpyZWdtYXAgb2YgdGhlIHNhbWUgbmFtZSBidXQgdG8g YSBkaWZmZXJlbnQgZGV2aWNlIGluc3RhbmNlLgoKSW4gb3JkZXIgdG8gYWNoaWV2ZSB0aGlzLCBf dHdvXyBkZXZpY2VzIGFyZSByZXF1aXJlZCB0byBwYXNzIGFyb3VuZDogdGhlCiJjb3JlLT5kZXYi ICh0aGUgc2FtZSBhcyBjaGlsZC0+cGFyZW50KSB0byBnZXQgYWxsIGluZm9ybWF0aW9uIG5lZWRl ZAphYm91dCBTUEksIGFuZCB0aGUgImNoaWxkLT5kZXYiIHRvIGdldCBhdHRhY2hlZCBpbiBkZXZt X3JlZ21hcF9pbml0KCkuCgoKQXMgYW4gZXhhbXBsZTogb2NlbG90X2NvcmUgbmVlZHMgYSByZWdt YXAgZm9yIHJlc2V0dGluZyB0aGUgY2hpcC4gSXQKd291bGQgY2FsbDoKCm9jZWxvdF9kZXZtX3Jl Z21hcF9pbml0KGRldiwgZGV2LCByZXMpOwoKVGhlIGZpcnN0ICJkZXYiIGlzIHVzZWQgdG8gZ2V0 IGNvcmUgaW5mb3JtYXRpb24sIHRoZSBzZWNvbmQgaXMgdXNlZCB0bwppbiBkZXZtXyoKCkEgY2hp bGQgZGV2aWNlIGxpa2Ugb2NlbG90LXBpbmN0cmwgd291bGQgdXNlIHNvbWV0aGluZyBsaWtlOgoK b2NlbG90X2Rldm1fcmVnbWFwX2luaXQoZGV2LT5wYXJlbnQsIGRldiwgcmVzKTsKCgpUaGlzIHNl Y29uZCAiZGV2IiBhcmd1bWVudCB3YXNuJ3QgaW4gdjUgYmVjYXVzZSBJIGJlbGlldmUgSSB0cmll ZCB0bwppbXBsaWNpdGx5IHNoYXJlIHJlZ21hcHMuIFRoYXQgd291bGQndmUgbGVkIHRvIHRoZSBz dGFsZSBkZWJ1Z2ZzCnJlZmVyZW5jZSBJIG1lbnRpb25lZCBhYm92ZSwgd2hpY2ggSSB0aGluayBp cyBwcmV0dHkgdW5kZXNpcmVhYmxlLgoKPiAKPiA+IFNvIHBlcmhhcHMgdG8gY2xlYXIgdGhpcyB1 cCBJIHNob3VsZCByZW5hbWUgImRldiIgdG8gImNoaWxkIiBiZWNhdXNlIGl0Cj4gPiBzZWVtcyB0 aGF0IHRoZSBuYW1pbmcgaGFzIGFscmVhZHkgZ290dGVuIHRvbyBjb25mdXNpbmcuIFdoYXQgSSBp bnRlbmRlZAo+ID4gdG8gZG8gd2FzOgo+ID4gCj4gPiBzdHJ1Y3QgcmVnbWFwICpvY2Vsb3RfZ2V0 X3JlZ21hcF9mcm9tX3Jlc291cmNlKHN0cnVjdCBkZXZpY2UgKnBhcmVudCwKPiA+IAkJCQkJICAg ICAgIHN0cnVjdCBkZXZpY2UgKmNoaWxkLAo+ID4gCQkJCQkgICAgICAgY29uc3Qgc3RydWN0IHJl c291cmNlICpyZXMpCj4gPiB7Cj4gPiAJc3RydWN0IG9jZWxvdF9jb3JlICpjb3JlID0gZGV2X2dl dF9kcnZkYXRhKHBhcmVudCk7Cj4gPiAKPiA+IAlyZXR1cm4gb2NlbG90X2Rldm1fcmVnbWFwX2lu aXQoY29yZSwgY2hpbGQsIHJlcyk7Cj4gPiB9Cj4gPiAKPiA+IE9yIG1heWJlIGV2ZW46Cj4gPiBz dHJ1Y3QgcmVnbWFwICpvY2Vsb3RfZ2V0X3JlZ21hcF9mcm9tX3Jlc291cmNlKHN0cnVjdCBkZXZp Y2UgKmNoaWxkLAo+ID4gCQkJCQkgICAgICAgY29uc3Qgc3RydWN0IHJlc291cmNlICpyZXMpCj4g PiB7Cj4gPiAJc3RydWN0IG9jZWxvdF9jb3JlICpjb3JlID0gZGV2X2dldF9kcnZkYXRhKGNoaWxk LT5wYXJlbnQpOwo+ID4gCj4gPiAJcmV0dXJuIG9jZWxvdF9kZXZtX3JlZ21hcF9pbml0KGNvcmUs IGNoaWxkLCByZXMpOwo+ID4gfQo+IAo+IE9yIGp1c3QgY2FsbDoKPiAKPiAgIG9jZWxvdF9kZXZt X3JlZ21hcF9pbml0KGNvcmUsIGRldi0+cGFyZW50LCByZXMpOwo+IAo+IC4uLiBmcm9tIHRoZSBv cmlnaW5hbCBjYWxsLXNpdGU/Cj4gCj4gT3IsIGFzIEkgcHJldmlvdXNseSBzdWdnZXN0ZWQ6Cj4g Cj4gICBvY2Vsb3RfZGV2bV9yZWdtYXBfaW5pdChkZXYtPnBhcmVudCwgcmVzKTsKPiAKPiBbLi4u XQo+IAo+ID4gPiA+ICsJcmV0ID0gZGV2bV9tZmRfYWRkX2RldmljZXMoZGV2LCBQTEFURk9STV9E RVZJRF9OT05FLCB2c2M3NTEyX2RldnMsCj4gPiA+IAo+ID4gPiBXaHkgTk9ORT8KPiA+IAo+ID4g SSBkb250IGtub3cgdGhlIGltcGxpY2F0aW9uIGhlcmUuIEV4YW1wbGUgdGFrZW4gZnJvbQo+ID4g ZHJpdmVycy9tZmQvbWFkZXJhLWNvcmUuYy4gSSBpbWFnaW5lIFBMQVRGT1JNX0RFVklEX0FVVE8g aXMgdGhlIGNvcnJlY3QKPiA+IG1hY3JvIHRvIHVzZSBoZXJlPwo+IAo+IFRoYXQncyB3aHkgSSBh c2tlZC4gIFBsZWFzZSByZWFkLXVwIG9uIHRoZSBkaWZmZXJlbmNlcyBhbmQgdXNlIHRoZQo+IGNv cnJlY3Qgb25lIGZvciB5b3VyIGRldmljZSBpbnN0ZWFkIG9mIGp1c3QgYmxpbmRseSBjb3B5L3Bh c3RpbmcgZnJvbQo+IG90aGVyIHNvdXJjZXMuIDopCgpXaWxsIGRvISBJdCBpcyBlYXN5IHRvIG1p c3MgdGhlc2UgZGV0YWlscyB3aGVuIGV2ZXJ5dGhpbmcgaXMgbmV3LCBzbwp0aGFua3MgZm9yIHBv aW50aW5nIHRoaXMgb3V0LgoKPiAKPiBbLi4uXQo+IAo+ID4gPiA+ICsJV0FSTl9PTighdmFsKTsK PiA+ID4gCj4gPiA+IElzIHRoaXMgcG9zc2libGU/Cj4gPiAKPiA+IEhtbS4uLiBJIGRvbid0IGtu b3cgaWYgcmVnbWFwX3JlYWQgZ3VhcmRzIGFnYWluc3QgdmFsID09IE5VTEwuIEl0Cj4gPiBkb2Vz bid0IGxvb2sgbGlrZSBpdCBkb2VzLiBJdCBpcyB2ZXJ5IG11Y2ggYSAidGhpcyBzaG91bGQgbmV2 ZXIgaGFwcGVuIgo+ID4gbW9tZW50Li4uCj4gPiAKPiA+IEkgY2FuIHJlbW92ZSBpdCwgb3IgY2hh bmdlIHRoaXMgdG8gcmV0dXJuIGFuIGVycm9yIGlmICF2YWwsIHdoaWNoIGlzCj4gPiB3aGF0IEkg cHJvYmFibHkgc2hvdWxkIGhhdmUgZG9uZSBpbiB0aGUgZmlyc3QgcGxhY2UuIFRob3VnaHRzPwo+ IAo+IE5vdCByZWFsbHkuICBKdXN0IG1ha2Ugc3VyZSB3aGF0ZXZlciB5b3UgZGVjaWRlIHRvIGRv IGlzIGluZm9ybWVkLgoKVW5kZXJzdG9vZC4gSSdsbCBsb29rIG1vcmUgaW50byBpdCBhbmQgdmVy aWZ5LgoKPiAKPiBbLi4uXQo+IAo+ID4gPiA+IC0JcmVncyA9IGRldm1fcGxhdGZvcm1faW9yZW1h cF9yZXNvdXJjZShwZGV2LCAwKTsKPiA+ID4gPiAtCWlmIChJU19FUlIocmVncykpCj4gPiA+ID4g LQkJcmV0dXJuIFBUUl9FUlIocmVncyk7Cj4gPiA+ID4gKwlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVz b3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwo+ID4gPiA+ICsKPiA+ID4gPiArCWlmICgh ZGV2aWNlX2lzX21mZChwZGV2KSkgewo+ID4gPiA+ICsJCXJlZ3MgPSBkZXZtX2lvcmVtYXBfcmVz b3VyY2UoZGV2LCByZXMpOwo+ID4gPiAKPiA+ID4gV2hhdCBoYXBwZW5zIGlmIHlvdSBjYWxsIHRo aXMgaWYgdGhlIGRldmljZSB3YXMgcmVnaXN0ZXJlZCB2aWEgTUZEPwo+ID4gCj4gPiBJIGRvbid0 IHJlY2FsbCBpZiBpdCB3YXMgeW91ciBzdWdnZXN0aW9uLCBidXQgSSB0cmllZCB0aGlzLgo+ID4g ZGV2bV9pb3JlbWFwX3Jlc291cmNlIG9uIHRoZSBNRkQgdHJpZ2dlcmVkIGEga2VybmVsIGNyYXNo LiBJIGRpZG4ndCBsb29rCj4gPiBtdWNoIG1vcmUgaW50byB0aGluZ3MgdGhhbiB0aGF0LCBidXQg aWYgdHJ5aW5nIGRldm1faW9yZW1hcF9yZXNvdXJjZSBhbmQKPiA+IGZhbGxpbmcgYmFjayB0byBv Y2Vsb3RfZ2V0X3JlZ21hcF9mcm9tX3Jlc291cmNlIGlzIHRoZSBkZXNpcmVkIHBhdGgsIEkKPiA+ IGNhbiBpbnZlc3RpZ2F0ZSBmdXJ0aGVyLgo+IAo+IFllcyBwbGVhc2UuICBJdCBzaG91bGQgbmV2 ZXIgY3Jhc2guICBUaGF0J3MgcHJvYmFibHkgYSBidWcuCgpDYW4gZG8uCgoKQW5kIHRoYW5rcyBh Z2FpbiBmb3IgdGhlIGZlZWRiYWNrISBJIGRvIHJlYWxseSBhcHByZWNpYXRlIGl0LgoKPiAKPiAt LSAKPiBMZWUgSm9uZXMgW+adjueQvOaWr10KPiBQcmluY2lwYWwgVGVjaG5pY2FsIExlYWQgLSBE ZXZlbG9wZXIgU2VydmljZXMKPiBMaW5hcm8ub3JnIOKUgiBPcGVuIHNvdXJjZSBzb2Z0d2FyZSBm b3IgQXJtIFNvQ3MKPiBGb2xsb3cgTGluYXJvOiBGYWNlYm9vayB8IFR3aXR0ZXIgfCBCbG9nCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0t a2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcK aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2Vy bmVsCg==