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 818F5C5AD4E for ; Sun, 9 Aug 2026 21:29:45 +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:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=8u/zdYNPmihSs3QnNXaDVu88UfQg5YKH3VaFLr21aeo=; b=Stubg+Zdjrxjug JCmuvLNcw3mb7ud95cgpB5Fx3OI4LZfP+a4eeYlB70lDW1gV1CEwQYaUpTmOucoQvvEYipdtK3CfV qsB989pe/A8AMHREytoBzJeyQqxs0BCTDGtM6rI7vkCjpG49pdquZLw2eYPPvkM5xy14le9gtEFbn zblT16Smv245kKcq9zv82+mXNdfGgIV/KqHFuSPg5Aey2zSMoAHN2GJjsyRFe98GtuWM19Swyb4Km qYlNF094uiXXvAdc2p/Kbq1caTCUmM+Ch7+85KYeztv+aFDIUxuhrhzpd7JZQ8lWLrllr7cEKtHJk nS7XbB++LgHdlR0cermQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wtB5V-0000000AkfG-0Xiy; Sun, 09 Aug 2026 21:29:45 +0000 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wtB5M-0000000AkTk-3eV5 for linux-phy@lists.infradead.org; Sun, 09 Aug 2026 21:29:43 +0000 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-4954dff6536so10394365e9.0 for ; Sun, 09 Aug 2026 14:29:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786310975; x=1786915775; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=o7bq1cJpIM9xTSDM1D52CqM2iFIswvW5H8MbxEcpza4=; b=Pgeb7pwWO1HD92+EMSWF2CLSXop2P0AV7nPTasl/mTH+oD6YYQvn0WWwaySsMJpHIu qKFDdcK3jyDCV7nIwA+iLOVjSoPl4LE57TAcQwFnXDYj6BcTwkGeKV/nICF0b/SW2hql VqxmUn2yMTuJh7MbZuaEbahF4/2HA+d1vPzjdcxsWnGJBMoTIObht5o7o7e1mC6bqDSr e+bSW2kDj5LQaSRfhUsyTIkIY50a7tWF4CXQVCRu1bqkCo+js3/ZfFK6OWkGaj1nCTrW TKC+mQeJqMi9Ij6nmf5cWM1r6cTOb0BLTOUN2n/PbzrdizXZTTO1iPMlepjbtUy60P6a Zoxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786310975; x=1786915775; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=o7bq1cJpIM9xTSDM1D52CqM2iFIswvW5H8MbxEcpza4=; b=hV8oGg+2KXyF26t/TClit6VZGoTVS1HT5k1C7s83GZFgvsy1+MG3PeXSlngbzrOP5r qajDPQufI6B8POY5NYaRX31XzrAsLscpllCJum/YrgiyPy33HTNs6r610lP0zoxazviM utPa6YbhQows2a4F2md4VMeUxY6uUHVjkv/ed69IMLnjWRlMblA4JxuktbpoEe/tvz+k rZt4XgY9g8QU6bTT+HsdZhgCVy/4uXpCFD0o/Snzb/2S6XFdw2J3DEdDuI3+sa1Ccqbu USbn9ZJ/rTWBJGBKHDONN+zTjeyy5FiuHO3rLCtMfMZNKFUX+SMsxUP5ePz5te9jtqSs DyZQ== X-Forwarded-Encrypted: i=1; AHgh+RonwxXXxZguQ45d+tPPOAfqcuf12XGAzPWIlIEUGbpsEivAeGJW8RWwAhK4VokS5LXIZGa1cmtTo80=@lists.infradead.org X-Gm-Message-State: AOJu0Yxav4JdDl4QPzb13N3CxLVqZapX9gJc0dLxrPYLNw4Rf2NPu7a7 wu8kfROaa/DzmrOuELEChMYXNARy4NU4d7ADNjXohSE7WbLPK4vbhxMD X-Gm-Gg: AR+sD123F0MLdjiHZfSgdDCkr6xHhxCYj0lvDp4spFebCyXqRUfWYWl3tYqUqN89+eW 06JORymHxupXHTUZDs3ICCnz85uEYGPCfOhbwCO84iiW8xe3cpFBCDsnxyZ8cWffv++J6YX6ZxH wZ7EgcxV2Uk6w038G4n7MxOiDKBwi4fZwTVa2ujmch+xQSRKKgK8ja5DBABIbG9kZIhCWoKS4wj +SAap3QvwRCPF+h5xA8PS7/LeBoxldZKYwFNnmrTgXAKn8hL8kSBGPXrgECuiPniapXXyPiFBrS aqUkhN7qkSL6jhyqh6YElZIX0tnUIYiM8juvEkXMWyNcNmdpa47pL2sHP+E0SlYKuBkPSp6Y+yP /nXnSTU4liYihhmt5+TyvUzd6diVDumGZx3PiLx30W4g/aq3FpUB/Rg5looQGrfjFriM0S5gzTB NxcI8CTomvr2iXXKf0aJHjfjekkMF+ZwL8KB3gnuVVQr2WsLDUGdV6xpRAB6x06lQ/hw7QJ2g= X-Received: by 2002:a5d:5689:0:b0:478:19e7:22a2 with SMTP id ffacd0b85a97d-47ffd97f8f1mr28053118f8f.25.1786310974934; Sun, 09 Aug 2026 14:29:34 -0700 (PDT) Received: from [192.168.0.2] ([197.250.226.68]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-480021e8c5asm28987451f8f.18.2026.08.09.14.29.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Aug 2026 14:29:34 -0700 (PDT) From: =?utf-8?q?Stefan_D=C3=B6singer?= Date: Mon, 10 Aug 2026 00:28:28 +0300 Subject: [PATCH v10 09/12] clk: zte: Introduce a driver for zx297520v3 matrix clocks MIME-Version: 1.0 Message-Id: <20260810-zx29clk-v10-9-63846490712c@gmail.com> References: <20260810-zx29clk-v10-0-63846490712c@gmail.com> In-Reply-To: <20260810-zx29clk-v10-0-63846490712c@gmail.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Brian Masney , Vinod Koul , Neil Armstrong , Russell King , Lee Jones Cc: linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, mfd@lists.linux.dev, =?utf-8?q?Stefan_D=C3=B6singer?= X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=26539; i=stefandoesinger@gmail.com; h=from:subject:message-id; bh=CrYXu3957P+E8Gh5xzLzVfFFarVQKznU2VmzgQSTuyA=; b=owEBiQJ2/ZANAwAIAT0TvMhUTxoiAcsmYgBqePEPEmCFrgB3MI7LTSBGTQUqhsN9+9+8BDAJX VO/9H3jn62JAk8EAAEIADkWIQRDFvS2qgVbJ5UyXWw9E7zIVE8aIgUCanjxDxsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMiwyLDIACgkQPRO8yFRPGiKtLw//WJKm7xlUyyLX47GqanqJubuPlm6eYaw Wi/TdYrjS9Fq14TX119D0xinZlmZyAlXmmjdFcX24HaHyHxLyGybBJs6NbIv+aAzgfkya7ffjCE 0x4SP1dXKoCUFfprekU9ZOfqVsuirGxIgJRwaQgL6R6rs74vezpD8I3Jta6jWV8X+ubZmVC6uCP kGzL8gSeOv9uY8hMtZD2bGNU1+6Pm4ddlxkO8vTt9tr7VYkH5is69F8keowlGzXlkupzbcU0C46 Qj5zbRKYeC5ekpvR6VRjZs6KFv7mcsaEtNbZn69jrJ3xIYbsFBA1DAzVUpRr0wCjMSlMaonNaTi YtITj8HK3wiaq8A+yXj312blqpRozZZOkL2IPdMCxmFs4dZ/pcQlXW02DCXOpMJfx1QPGspx2Ta Gd6gf24eqbDtpFaHYBhMdM56NIeIm+br0lTHlW700MNs4tLvQPdfxpKCE4QV8GdDBVi8qsJPx9O gLsiJN45YLgvjL1Huolf9iMaMp45LvDxKk7cXyD5olbuTVvjRJ2mlLNMMEMuImpGOwlDdR4SVEr d0L/SXKSzatA5krq7bWVABmJAp9A7f3kDLhW8PMEtXewjwrxrL5bipB+P/VTvPyyYo25bs9C7lc j61z386IiU+qWrORjp/gcWaa7lPrJwDEEKlbTHUOLFR2PTl/LIRM= X-Developer-Key: i=stefandoesinger@gmail.com; a=openpgp; fpr=4F9C2C8728019633893EBBB98CB81F9A72BBA155 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260809_142937_107803_C52D58DD X-CRM114-Status: GOOD ( 26.96 ) X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhpcyBjbG9jayBjb250cm9sbGVyIGNvbnRyb2xzIGhpZ2ggc3BlZWQgZGV2aWNlczogQ1BVLCBE TUEsIFJBTSwgU0RJTywKRXRoZXJuZXQuIFRoZSBvbmx5IG5vbi1jbG9jaywgbm9uLXJlc2V0IHJl Z2lzdGVycyBJIGhhdmUgc3BvdHRlZCBoZXJlCmFyZSBoYXJkd2FyZSBzcGlubG9ja3MuCgpTaWdu ZWQtb2ZmLWJ5OiBTdGVmYW4gRMO2c2luZ2VyIDxzdGVmYW5kb2VzaW5nZXJAZ21haWwuY29tPgoK LS0tCgpWZXJzaW9uIDEwOgpBZGQgWlNQIFBDTEsuIFpTUCBjbG9jayBnYXRlcyBhcmUgaW4gMHgz NC4gMHgzYyBpcyBhbm90aGVyIHJlc2V0IHJlZ2lzdGVyLgpJbXByb3ZlIFpTUCBXQ0xLIG11eC4K ClZlcnNpb24gOToKTGluayBpbnRlcm5hbCBwYXJlbnRzIGJ5IGFuIChpbnRlcm5hbCkgY2xvY2sg SUQgcmF0aGVyIHRoYW4gbmFtZXMuCgpUaGVyZSBhcmUgMyBpbnRlbnRpb25hbCBjaGFuZ2VzIHZz IHZlcnNpb24gOCBpbiB0aGUgY2xvY2sgdHJlZToKImdtYWMtYWhiIiBkZXBlbmRzIG9uIHRoZSBh aGIgY2xvY2sgaW1wb3J0ZWQgZnJvbSB0b3Bjcm0uIFRoaXMgd2FzCmFscmVhZHkgdGhlIGNhc2Ug YmVmb3JlLCBidXQgaXQgd2FzIG1pc3NpbmcgZnJvbSB0aGUgYmluZGluZ3MgYW5kIHRoZQpnbG9i YWwgbmFtZSBtYXRjaGluZyBvYnNjdXJlZCBpdC4KCldoZW4gcmUtdGVzdGluZyBvdGhlciBkZXZp Y2VzIGZvciBwb3RlbnRpYWwgdG9wY3JtLT5haGIgZGVwZW5kZW5jaWVzIEkKbm90aWNlZCB0aGF0 IHRoZSB0d28gU0RJTyBkZXZpY2VzIHRha2UgdGhlaXIgcGNsayBmcm9tIHRvcGNybS0+YWhiIGFz CndlbGwuCgpAU2FzaGlrbzogQW55IHBvc3NpYmxlIG90aGVyIGNsb2NrIHRyZWUgY2hhbmdlIGNv bXBhcmVkIHRvIHZlcnNpb24gOCBpcwp1bmludGVudGlvbmFsIGFuZCBhIGxpa2VseSBidWcuCgpW ZXJzaW9uIDg6CkFkZCBhbm90aGVyIGRpc3RyaWJ1dGlvbiBnYXRlIHJlZ2lzdGVyOiAweDExOCBn YXRlcyBvZmYgbWF0cml4LWdlbmVyYXRlZApkaXZpc2lvbnMgb2YgbXBsbCwgZHBsbCBhbmQgZ3Bs bC4gSXQgbmljZWx5IGZpdHMgdGhlIHRvcC0+bWF0cml4IGZvcndhcmQKcGljdHVyZS4KCkFYSSA2 LjUgTUh6IGlzIG5vdCBhbiBtcGxsIGNoaWxkLiBJIG11c3QgaGF2ZSBkb25lIHNvbWV0aGluZyB3 cm9uZyB3aGVuCm9yaWdpbmFsbHkgdGVzdGluZyB0aGlzCgpBZGQgZXhwbGFuYXRpb25zIGFib3V0 IGFkZGl0aW9uYWwgQVJNIGFyY2hpdGVjdGVkIHRpbWVyIGNvbnRyb2xzLgoKQWRkIGdhdGVzIGZv ciB1bmtub3duIExURSBoYXJkd2FyZSBhdCBvZmZzZXQgMHg2MC4gVGhleSBhcmUgbm90IGV4cG9y dGVkCmluIHRoZSBiaW5kaW5ncyBiZWNhdXNlIHRoZSBhY3R1YWwgbmFtZSBvZiB0aGUgY29uc3Vt ZXIgaXNuJ3QgY2xlYXIgLQpidXQgaWYgZHBsbCBpcyB1bnByZXBhcmVkIGFuZCBmZWVkcyBhIGJ5 cGFzcyAyNiBNSHogc2lnbmFsLCB0aGlzIGRldmljZQpzdGFydHMgc3BhbW1pbmcgSVJRcyAoYWx0 aG91Z2ggdGhlIDB4MTE4IGFuZCB0b3ArMHgxNDAgZ2F0ZXMgYWxzbwpwcmV2ZW50IHRoaXMgdXN1 YWxseSkKCkRvdWJsZS1jaGVjayBwY2xrIGFuZCB3Y2xrIG9mIGFsbCBkZXZpY2VzLiBUaGUgU0RJ TyBhbmQgRURDUCBjbG9ja3Mgd2VyZQpmbGlwcGVkIGluIHByZXZpb3VzIHN1Ym1pc3Npb25zLgoK VmVyc2lvbiA3OgpSZWR1Y2VkIHRoZSBpbnB1dCBjbG9ja3MgYSBsb3QuIE1vc3QgTVBMTCBzdWJk aXZpc2lvbnMgYXJlIGNoaWxkcmVuIG9mCnRoZSBzYW1lIGdhdGUgaW4gdG9wLCBzbyBwdXQgdGhl IGZpeGVkIGZhY3RvciBjbG9ja3MgaGVyZS4KCkFkZGVkIGEgZmV3IG1vcmUgY2xvY2tzOiBERFJf Q1RSTCwgQVhJIGJ1cywgQVJNIGFyY2hpdGVjdGVkIHRpbWVyLgpUaGV5IGFyZSBuZWVkZWQgdG8g dGVsbCBDQ0YgdG8ga2VlcCB0aGUgdG9wIGdhdGVzIGVuYWJsZWQgYW5kIG1hcmtlZApjcml0aWNh bCBiZWNhdXNlIHRoZXkgYXJlbid0IGNvbnN1bWVkIGJ5IGEgRFQgbm9kZS4KClRoZSBBWEkgYnVz IGlzIGRldGVybWluZWQgYnkgYSB2b3Rpbmcgc3lzdGVtLiBJJ3ZlIHNldCB1cCB0aGUgZHJpdmVy IHRvCndyaXRlIHRvIHRoZSBiYWxsb3QgcmVnaXN0ZXIgWlRFJ3Mga2VybmVsIHVzZXMgYW5kIGVu YWJsZSB2b3RpbmcuIFRoaXMKc2hvdWxkIG1ha2UgbGlmZSBlYXNpZXIgd2l0aCB0aGUgTFRFIHJw cm9jIGJsb2IgbGF0ZXIuCgpWZXJzaW9uIDU6Ck1ha2UgaXQgYW4gTUZEIGNoaWxkIGRldmljZSwg cmVtb3ZlIGF1eCBkZXZpY2UKRml4IHp4Mjk3NTI5IC0+IHp4Mjk3NTIwIHR5cG9zCkZpeCBBSEJf d2NsayAtPiBhaGJfd2Nsay4gVGhhdCB3YXMgYSBsZWZ0b3ZlciBvZiBteSBvbGQgY29tcG9zaXRl IHN0cnVjdHMKQWRkIFNSQU0wIGFuZCBHU01fQ0ZHIGNsb2NrcwotLS0KIGRyaXZlcnMvY2xrL3p0 ZS9jbGstengyOTc1MjB2My5jIHwgNTExICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDUxMSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9jbGsvenRlL2Nsay16eDI5NzUyMHYzLmMgYi9kcml2ZXJzL2Nsay96dGUvY2xrLXp4 Mjk3NTIwdjMuYwppbmRleCA1MDQwNzU1OTBlNmQuLjNmNTljODM1NjkxMCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9jbGsvenRlL2Nsay16eDI5NzUyMHYzLmMKKysrIGIvZHJpdmVycy9jbGsvenRlL2Ns ay16eDI5NzUyMHYzLmMKQEAgLTc2OSw2ICs3NjksNTEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg enhfY2xrX2RhdGEgengyOTc1MjB2M190b3BjbGtfZGF0YSA9IHsKIAkubnVtX2V4cG9ydHMgPSBB UlJBWV9TSVpFKHp4Mjk3NTIwdjNfdG9wX2V4cG9ydHMpLAogfTsKIAorZW51bSBtYXRyaXhfY2xv Y2tfaWRzIHsKKwlaWF9DTEtfTUFUUklYX09TQzI2TV9ENCwKKwlaWF9DTEtfTUFUUklYX01QTExf RDJfUFJFR0FURSwKKwlaWF9DTEtfTUFUUklYX01QTExfRDRfUFJFR0FURSwKKwlaWF9DTEtfTUFU UklYX01QTExfRDZfUFJFR0FURSwKKwlaWF9DTEtfTUFUUklYX01QTExfRDhfUFJFR0FURSwKKwla WF9DTEtfTUFUUklYX01QTExfRDEyX1BSRUdBVEUsCisJWlhfQ0xLX01BVFJJWF9NUExMX0QxNl9Q UkVHQVRFLAorCVpYX0NMS19NQVRSSVhfR1BMTF9EMl9EMl9QUkVHQVRFLAorCVpYX0NMS19NQVRS SVhfR1BMTF9EMl9ENF9QUkVHQVRFLAorCVpYX0NMS19NQVRSSVhfRFBMTF9EMl9QUkVHQVRFLAor CVpYX0NMS19NQVRSSVhfRFBMTF9ENF9QUkVHQVRFLAorCisJWlhfQ0xLX01BVFJJWF9NUExMX0Qx NiwKKwlaWF9DTEtfTUFUUklYX01QTExfRDEyLAorCVpYX0NMS19NQVRSSVhfTVBMTF9EOCwKKwla WF9DTEtfTUFUUklYX01QTExfRDYsCisJWlhfQ0xLX01BVFJJWF9NUExMX0Q0LAorCVpYX0NMS19N QVRSSVhfTVBMTF9EMiwKKwlaWF9DTEtfTUFUUklYX0RQTExfRDQsCisJWlhfQ0xLX01BVFJJWF9E UExMX0QyLAorCVpYX0NMS19NQVRSSVhfR1BMTF9EMl9ENCwKKwlaWF9DTEtfTUFUUklYX0dQTExf RDJfRDIsCisKKwlaWF9DTEtfQ1BVX01VWCwKKwlaWF9DTEtfWlNQX01VWCwKKwlaWF9DTEtfRERS X0NUUkxfTVVYLAorCVpYX0NMS19TRDBfTVVYLAorCVpYX0NMS19TRDFfTVVYLAorCVpYX0NMS19O QU5EX01VWCwKKwlaWF9DTEtfRURDUF9NVVgsCisJWlhfQ0xLX1RETV9NVVgsCisJWlhfQ0xLX0FY SV9NVVgsCisKKwlaWF9DTEtfU1lTX1RJTUVSX1dDTEssCisJWlhfQ0xLX0NQVV9XQ0xLLAorCVpY X0NMS19DUFVfUENMSywKKwlaWF9DTEtfWlNQX1dDTEssCisJWlhfQ0xLX1pTUF9QQ0xLLAorCVpY X0NMS19ERFJfQ1RSTF9QQ0xLLAorCVpYX0NMS19ERFJfQ1RSTF9XQ0xLLAorCVpYX0NMS19TRDBf UENMSywKKwlaWF9DTEtfU0QwX1dDTEssCisJWlhfQ0xLX1NEMF9DREVULAorCVpYX0NMS19TRDFf UENMSywKKwlaWF9DTEtfU0QxX1dDTEssCisJWlhfQ0xLX1NEMV9DREVULAorCVpYX0NMS19OQU5E X1dDTEssCisJWlhfQ0xLX05BTkRfUENMSywKKwlaWF9DTEtfTFRFX1RQVV9XQ0xLLAorCVpYX0NM S19MVEVfVFBVX1BDTEssCisJWlhfQ0xLX0VEQ1BfUENMSywKKwlaWF9DTEtfRURDUF9XQ0xLLAor CVpYX0NMS19TU0NfV0NMSywKKwlaWF9DTEtfU1NDX1BDTEssCisJWlhfQ0xLX1BEQ0ZHX1dDTEss CisJWlhfQ0xLX1BEQ0ZHX1BDTEssCisJWlhfQ0xLX01CT1hfUENMSywKKwlaWF9DTEtfU1JBTTBf UENMSywKKwlaWF9DTEtfR1NNX0NGR19QQ0xLLAorCVpYX0NMS19HTUFDX1dDTEssCisJWlhfQ0xL X0dNQUNfUENMSywKKwlaWF9DTEtfR01BQ19BSEIsCisJWlhfQ0xLX0FYSV9XQ0xLLAorCVpYX0NM S19ETUFfUENMSywKKwlaWF9DTEtfVk9VX1dDTEssCisJWlhfQ0xLX1ZPVV9QQ0xLLAorCVpYX0NM S19UT0xTUF9NUExMX0Q1X1dDTEssCisJWlhfQ0xLX1RPTFNQX01QTExfRDRfV0NMSywKKwlaWF9D TEtfVE9MU1BfTVBMTF9ENl9XQ0xLLAorCVpYX0NMS19UT0xTUF9NUExMX0Q4X1dDTEssCisJWlhf Q0xLX1RPTFNQX01QTExfRDEyX1dDTEssCisJWlhfQ0xLX1RPTFNQX09TQzI2TV9XQ0xLLAorCVpY X0NMS19UT0xTUF9PU0MzMktfV0NMSywKKwlaWF9DTEtfVE9MU1BfUENMSywKKwlaWF9DTEtfVE9M U1BfVERNX1dDTEssCisJWlhfQ0xLX1RPTFNQX0RQTExfRDRfV0NMSywKK307CisKKy8qCisgKiBG b3IgZGV2aWNlcyB3aGljaCBoYXZlIGEgd29ya2luZyBkcml2ZXIgdGhlIHdvcmsgY2xvY2sgY2Fu IGJlIGZpZ3VyZWQgb3V0IGJ5IGdhdGluZyBvZmYgcmVnaXN0ZXJzCisgKiBpbiB0b3Bjcm0rMHgx NDAuIFRoaXMgaXMgdXNlZCBmb3IgZGV2aWNlcyB3aGVyZSBJIGNhbid0IGludGVycHJldCB0aGUg cmVnaXN0ZXIgY29udGVudHMgeWV0LgorICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHp4X3BhcmVu dF9kZXNjIG1hdHJpeF91bmsgPSBQQVJFTlRfRlcoIndjbGstb3NjMjZtIik7CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgenhfcGFyZW50X2Rlc2MgY3B1X3NlbFtdID0geworCVBBUkVOVF9GVygid2Ns ay1vc2MyNm0iKSwKKwlQQVJFTlRfRlcoIm1wbGwiKSwJCQkvKiA2MjQgTUh6ICovCisJUEFSRU5U X0lEKFpYX0NMS19NQVRSSVhfTVBMTF9EMiksCS8qIDMxMiBNSHogKi8KKwlQQVJFTlRfSUQoWlhf Q0xLX01BVFJJWF9NUExMX0Q0KSwJLyogMTU2IE1IeiAqLworfTsKKworLyoKKyAqIEZpZ3VyaW5n IHRoZXNlIHZhbHVlcyBvdXQgaXMgYSBiaXQgdHJpY2t5LiBUaGUgYmVzdCBsaXZlbmVzcyBjaGVj ayBvZiB0aGUgWlNQIGlzIHJlYWRpbmcgaXRzIFRDTQorICogYXQgMHg4MTAwMDAwMC4gSWYgaXQg aXMgY2xvY2tlZCB1cCBhbmQgb3V0IG9mIHJlc2V0IHJlYWRpbmcgaXQgd2lsbCBzdWNjZWVkLiBP dGhlcndpc2UsIHJlYWRpbmcKKyAqIHdpbGwgc3RhbGwuIFZhbHVlIDEgZGVwZW5kcyBvbiB0b3Bj cm0rMHgxNDAsIGJpdCAxMywgYnV0IG5vdCBhbnkgbWF0cml4Y3JtKzB4MTE4IGdhdGUsIHNvIGl0 IGlzCisgKiBsaWtlbHkgZHBsbCB3aXRob3V0IGEgZGl2LiBNdXggdmFsdWUgMiBkZXBlbmRzIG9u IDB4MTE4IGJpdCA1LCBzbyBtcGxsLWQyLiBNdXggdmFsdWUgMyBkZXBlbmRzIG9uCisgKiAweDEx OCBiaXQgNCwgc28gbXBsbC1kNC4gTXV4IHZhbHVlIDAgaW4gdHVybiBkZXBlbmRzIG9uIHRvcGNy bSsweDE0MCwgYml0IDI0IChvc2MyNm0pLCBzbyBpdAorICogZm9sbG93cyB0aGUgdXN1YWwgcGF0 dGVybiB0aGF0IG11eCAwIGlzIG9zYzI2bS4KKyAqCisgKiBJZiB0aGUgZmlybXdhcmUgaXMgcnVu bmluZyBhbmQgZmVkIHdpdGggaW5pdGlhbGl6YXRpb24gZGF0YSBpdCB3aWxsIHN0YXJ0IHdyaXRp bmcgc3RhdHVzIG1lc3NhZ2VzCisgKiBvbiBVQVJUMS4gQW4gaW50ZXJydXB0aW9uIG9mIHRoZXNl IG1lc3NhZ2VzIG9yIGEgZmFpbHVyZSB0byByZXNwb25kIHRvIHJwbXNnIGlzIG5vdCBwcm9vZiB0 aGF0CisgKiB0aGUgWlNQJ3MgY2xvY2sgaGFzIGJlZW4gZGlzYWJsZWQuIFRoZSBmaXJtd2FyZSdz IHdvcmtpbmdzIGRlcGVuZCBvbiByZWd1bGFyIHRpbWVyIGFuZCBMVEUgZGV2aWNlCisgKiBJUlFz LCBzbyBvbmUgb2YgdGhlc2UgZGV2aWNlcyBtaWdodCBoYXZlIGJlZW4gc3RvcHBlZCBpbnN0ZWFk LgorICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHp4X3BhcmVudF9kZXNjIHpzcF9zZWxbXSA9IHsK KwlQQVJFTlRfRlcoIndjbGstb3NjMjZtIiksCisJUEFSRU5UX0ZXKCJkcGxsIiksCQkJLyogNDkx LjUyIE1IeiwgYm9vdCBkZWZhdWx0ICovCisJUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9E MiksCS8qIDMxMiBNSHogKi8KKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0Q0KSwJLyog MTU2IE1IeiAqLworfTsKKworLyoKKyAqIFdlIGNhbid0IHJlYWxpc3RpY2FsbHkgY2hhbmdlIERE UiBzcGVlZCB3aGlsZSBydW5uaW5nIGFuIE9TIG91dCBvZiBERFIgKGl0IHJlYWRzIGdhcmJhZ2Ug Zm9yIGEKKyAqIHNob3J0IHdoaWxlIG9uIHRyYW5zaXRpb24pLCBidXQgd2UgbmVlZCB0byBrbm93 IGlmIHdlIGhhdmUgdG8ga2VlcCBncGxsIGFsaXZlLiAzMiBNQiBkZXZpY2VzIHVzZQorICogMjAw IE1Ieiwgd2hpbGUgNjQvMTI4IE1CIG9uZXMgdXNlIDE1NiBNSHouCisgKi8KK3N0YXRpYyBjb25z dCBzdHJ1Y3QgenhfcGFyZW50X2Rlc2MgZGRyX2N0cmxfc2VsW10gPSB7CisJUEFSRU5UX0lEKFpY X0NMS19NQVRSSVhfTVBMTF9ENCksCS8qIDE1NiBNSHogKi8KKwlQQVJFTlRfRlcoImdwbGwiKSwJ CQkvKiAyMDAgTUh6ICovCisJUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9ENiksCS8qIDEw NCBNSHogKi8KKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0Q4KSwJLyogNzggTUh6ICov Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHp4X3BhcmVudF9kZXNjIHNkMF9zZWxbXSA9IHsK KwlQQVJFTlRfRlcoIndjbGstb3NjMjZtIiksCisJUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBM TF9ENCksCS8qIDE1NiBNSHogKi8KKwlQQVJFTlRfRlcoImdwbGwtZDIiKSwJCQkvKiAxMDAgTUh6 ICovCisJUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9EOCksCS8qIDc4IE1IeiAqLworCVBB UkVOVF9JRChaWF9DTEtfTUFUUklYX0dQTExfRDJfRDIpLAkvKiA1MCBNSHogKi8KKwlQQVJFTlRf SUQoWlhfQ0xLX01BVFJJWF9HUExMX0QyX0Q0KSwJLyogMjUgTUh6ICovCit9OworCitzdGF0aWMg Y29uc3Qgc3RydWN0IHp4X3BhcmVudF9kZXNjIHNkMV9zZWxbXSA9IHsKKwlQQVJFTlRfRlcoIndj bGstb3NjMjZtIiksCisJUEFSRU5UX0ZXKCJncGxsLWQyIiksCQkJLyogMTAwIE1IeiAqLworCVBB UkVOVF9JRChaWF9DTEtfTUFUUklYX01QTExfRDgpLAkvKiA3OCBNSHogKi8KKwlQQVJFTlRfSUQo WlhfQ0xLX01BVFJJWF9HUExMX0QyX0QyKSwJLyogNTAgTUh6ICovCisJUEFSRU5UX0lEKFpYX0NM S19NQVRSSVhfTVBMTF9EMTYpLAkvKiAzOSBNSHogKi8KKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJ WF9HUExMX0QyX0Q0KSwJLyogMjUgTUh6ICovCit9OworCisvKgorICogWlRFJ3Mga2VybmVsIHB1 dHMgdGhlIGhpZ2ggZnJlcXVlbmN5IGZpcnN0LCBidXQgdGhpcyBpcyBhZ2FpbnN0IHRoZSB1c3Vh bCBjb252ZW50aW9uIG9uIHRoaXMgU29DLgorICogSSBkb24ndCBoYXZlIGFueSBkZXZpY2UgdGhh dCBoYXMgYSByYXcgTkFORCBjb250cm9sbGVyIHRob3VnaC4KKyAqLworc3RhdGljIGNvbnN0IHN0 cnVjdCB6eF9wYXJlbnRfZGVzYyBuYW5kX3NlbFtdID0geworCVBBUkVOVF9GVygid2Nsay1vc2My Nm0iKSwKKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0Q0KSwJLyogMTU2IE1IeiAqLwor fTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB6eF9wYXJlbnRfZGVzYyBlZGNwX3NlbFtdID0gewor CVBBUkVOVF9GVygid2Nsay1vc2MyNm0iKSwKKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExM X0Q0KSwJLyogMTU2IE1IeiAqLworCVBBUkVOVF9GVygibXBsbC1kNSIpLAkJCS8qIDEyNC44IE1I eiAqLworCVBBUkVOVF9JRChaWF9DTEtfTUFUUklYX01QTExfRDYpLAkvKiAxMDQgTUh6ICovCit9 OworCisvKgorICogVGhlIDEyMi44OCBNSHogc2VsZWN0aW9uIG9mIHZhbHVlIDEgaXMgZ2l2ZW4g aW4gWlRFJ3Mga2VybmVsIGFuZCBtYXRjaGVzIHVwIHRvIG9ic2VydmF0aW9uOiBQcmludAorICog dGhlIFRETSBjb3VudGVyIGF0IHJlZ3VsYXIgaW50ZXJ2YWxzIGFuZCBsb29rIGF0IGl0cyBpbmNy ZWFzZSBhdCB2YWx1ZXMgMC8xLzIuIEl0IGluY3JlYXNlcyBieQorICogYWJvdXQgMzEwKjI2IGZv ciB2YWx1ZSAwLCAzMTAqMTIyLjg4IGZvciB2YWx1ZSAxIGFuZCAzMTAqMTA0IGZvciB2YWx1ZSAy LgorICoKKyAqIE11eCB2YWx1ZSAxIGlzIGdhdGVkIG9mZiBieSBtYXRyaXgrMHgxMTggYml0IDgu IFZhbHVlcyAyIGFuZCAzIGFyZSBib3RoIGdhdGVkIG9mZiBieSAweDExOCBiaXQgMywKKyAqIHN1 Z2dlc3RpbmcgdGhhdCB0aGV5IHNlbGVjdCB0aGUgc2FtZSBwYXJlbnQuCisgKi8KK3N0YXRpYyBj b25zdCBzdHJ1Y3QgenhfcGFyZW50X2Rlc2MgdGRtX3NlbFtdID0geworCVBBUkVOVF9GVygid2Ns ay1vc2MyNm0iKSwKKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9EUExMX0Q0KSwJLyogMTIyLjg4 IE1IeiAqLworCVBBUkVOVF9JRChaWF9DTEtfTUFUUklYX01QTExfRDYpLAkvKiAxMDQgTUh6ICov CisJUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9ENiksCit9OworCisvKgorICogWlRFJ3Mg ZmlybXdhcmUgdXNlcyAweDEyOCBhcyB0aGUgUEhZJ3Mgdm90ZSBhbmQgbmFtZXMgMHgxMjAgYXMg IlBTIiBhbmQgMHgxMjQgYXMgIkFQIiB2b3RlLgorICogSG93ZXZlciwgdGhlaXIgY3B1ZnJlcSBk cml2ZXIgdWx0aW1hdGVseSB1c2VzIHRoZSAiUFMiIGRlZmluZSBhbmQgdGh1cyB3cml0ZXMgdG8g MHgxMjAsIHdoaWNoIGNhbgorICogYmUgb2JzZXJ2ZWQgaW4gdGhlIHJ1bm5pbmcgc3lzdGVtLgor ICovCisjZGVmaW5lIFpYMjk3NTIwVjNfQVhJX0FQX1ZPVEUgMHgxMjAKK3N0YXRpYyBjb25zdCBz dHJ1Y3QgenhfcGFyZW50X2Rlc2MgYXhpX3NlbFtdID0geworCVBBUkVOVF9GVygid2Nsay1vc2My Nm0iKSwKKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0Q0KSwJLyogMTU2IE1IeiAqLwor CVBBUkVOVF9GVygibXBsbC1kNSIpLAkJCS8qIDEyNC44IE1IeiAqLworCVBBUkVOVF9JRChaWF9D TEtfTUFUUklYX01QTExfRDYpLAkvKiAxMDQgTUh6ICovCisJUEFSRU5UX0lEKFpYX0NMS19NQVRS SVhfTVBMTF9EOCksCS8qIDc4IE1IeiAqLworCVBBUkVOVF9JRChaWF9DTEtfTUFUUklYX01QTExf RDEyKSwJLyogNTIgTUh6ICovCisJUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9EMTYpLAkv KiAzOSBNSHogKi8KKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9PU0MyNk1fRDQpLAkvKiA2LjUg TUh6ICovCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHp4X2Nsb2NrIHp4Mjk3NTIwdjNfbWF0 cml4X2Nsb2Nrc1tdID0geworCVtaWF9DTEtfTUFUUklYX09TQzI2TV9ENF0gPSBGSVhFRF9ESVYo Im1hdHJpeC1vc2MyNm0tZDQiLCBQQVJFTlRfRlcoIndjbGstb3NjMjZtIiksIDQpLAorCVtaWF9D TEtfTUFUUklYX01QTExfRDJfUFJFR0FURV0gPSBGSVhFRF9ESVYoIm1hdHJpeC1tcGxsLWQyLXBy ZWdhdGUiLCBQQVJFTlRfRlcoIm1wbGwiKSwgMiksCisJW1pYX0NMS19NQVRSSVhfTVBMTF9ENF9Q UkVHQVRFXSA9IEZJWEVEX0RJVigibWF0cml4LW1wbGwtZDQtcHJlZ2F0ZSIsIFBBUkVOVF9GVygi bXBsbCIpLCA0KSwKKwkvKiBkaXYgNTogcHJvdmlkZWQgYXMgYSBzZXBhcmF0ZSBsaW5lIGZyb20g dG9wY3JtICovCisJW1pYX0NMS19NQVRSSVhfTVBMTF9ENl9QUkVHQVRFXSA9IEZJWEVEX0RJVigi bWF0cml4LW1wbGwtZDYtcHJlZ2F0ZSIsIFBBUkVOVF9GVygibXBsbCIpLCA2KSwKKwlbWlhfQ0xL X01BVFJJWF9NUExMX0Q4X1BSRUdBVEVdID0gRklYRURfRElWKCJtYXRyaXgtbXBsbC1kOC1wcmVn YXRlIiwgUEFSRU5UX0ZXKCJtcGxsIiksIDgpLAorCVtaWF9DTEtfTUFUUklYX01QTExfRDEyX1BS RUdBVEVdID0gRklYRURfRElWKCJtYXRyaXgtbXBsbC1kMTItcHJlZ2F0ZSIsIFBBUkVOVF9GVygi bXBsbCIpLAorCQkJCQkJICAgICAxMiksCisJW1pYX0NMS19NQVRSSVhfTVBMTF9EMTZfUFJFR0FU RV0gPSBGSVhFRF9ESVYoIm1hdHJpeC1tcGxsLWQxNi1wcmVnYXRlIiwgUEFSRU5UX0ZXKCJtcGxs IiksCisJCQkJCQkgICAgIDE2KSwKKworCVtaWF9DTEtfTUFUUklYX0dQTExfRDJfRDJfUFJFR0FU RV0gPSBGSVhFRF9ESVYoIm1hdHJpeC1ncGxsLWQyLWQyLXByZWdhdGUiLAorCQkJCQkJICAgICAg IFBBUkVOVF9GVygiZ3BsbC1kMiIpLCAyKSwKKwlbWlhfQ0xLX01BVFJJWF9HUExMX0QyX0Q0X1BS RUdBVEVdID0gRklYRURfRElWKCJtYXRyaXgtZ3BsbC1kMi1kNC1wcmVnYXRlIiwKKwkJCQkJCSAg ICAgICBQQVJFTlRfRlcoImdwbGwtZDIiKSwgNCksCisKKwlbWlhfQ0xLX01BVFJJWF9EUExMX0Qy X1BSRUdBVEVdID0gRklYRURfRElWKCJtYXRyaXgtZHBsbC1kMi1wcmVnYXRlIiwgUEFSRU5UX0ZX KCJkcGxsIiksIDIpLAorCVtaWF9DTEtfTUFUUklYX0RQTExfRDRfUFJFR0FURV0gPSBGSVhFRF9E SVYoIm1hdHJpeC1kcGxsLWQ0LXByZWdhdGUiLCBQQVJFTlRfRlcoImRwbGwiKSwgNCksCisKKwkv KgorCSAqIE1hdHJpeCBkaXN0cmlidXRpb24gZ2F0ZXM6IEV2ZXJ5IG1hdHJpeC1nZW5lcmF0ZWQg c3ViZGl2aXNpb24gb2YgdGhlIGlucHV0IFBMTHMKKwkgKiBoYXMgYSBnYXRlIGluIDB4MTE4LiBU aGUgb3JpZ2luYWwgaW5wdXRzIGZyb20gdG9wY3JtIChtcGxsIDYyNCwgbXBsbCAxMjQuOCwgZ3Bs bCAyMDAsCisJICogZ3BsbCAxMDAsIGRwbGwgNDkxLjUyKSBkbyBub3QuCisJICoKKwkgKiBCaXQg OCBpcyBjb25zdW1lZCBieSBURE0gYW5kIHRoZSBmcmVxdWVuY3kgZHBsbC80IGhvbGRzIHVwIHRv IG9ic2VydmF0aW9uLiBCaXQgOSBpcworCSAqIGNvbnN1bWVkIGJ5IGFuIHVua25vd24gZGV2aWNl IGFuZCB0aGUgZnJlcXVlbmN5IGlzIGd1ZXNzZWQgZnJvbSB0aGUgcGF0dGVybiB0aGF0IGxvd2Vy CisJICogYml0cyBnYXRlIGxvd2VyIGZyZXF1ZW5jaWVzLgorCSAqLworCVtaWF9DTEtfTUFUUklY X01QTExfRDE2XSA9IEdBVEUoIm1hdHJpeC1tcGxsLWQxNiIsCisJCQkJCVBBUkVOVF9JRChaWF9D TEtfTUFUUklYX01QTExfRDE2X1BSRUdBVEUpLCAweDExOCwgMCwKKwkJCQkJWlgyOTc1MjBWM19B WElfQ0FORElEQVRFKSwKKwlbWlhfQ0xLX01BVFJJWF9NUExMX0QxMl0gPSBHQVRFKCJtYXRyaXgt bXBsbC1kMTIiLAorCQkJCQlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0QxMl9QUkVHQVRF KSwgMHgxMTgsIDEsCisJCQkJCVpYMjk3NTIwVjNfQVhJX0NBTkRJREFURSksCisJW1pYX0NMS19N QVRSSVhfTVBMTF9EOF0gPSBHQVRFKCJtYXRyaXgtbXBsbC1kOCIsCisJCQkJICAgICAgIFBBUkVO VF9JRChaWF9DTEtfTUFUUklYX01QTExfRDhfUFJFR0FURSksIDB4MTE4LCAyLAorCQkJCSAgICAg ICBaWDI5NzUyMFYzX0FYSV9DQU5ESURBVEUpLAorCVtaWF9DTEtfTUFUUklYX01QTExfRDZdID0g R0FURSgibWF0cml4LW1wbGwtZDYiLAorCQkJCSAgICAgICBQQVJFTlRfSUQoWlhfQ0xLX01BVFJJ WF9NUExMX0Q2X1BSRUdBVEUpLCAweDExOCwgMywKKwkJCQkgICAgICAgWlgyOTc1MjBWM19BWElf Q0FORElEQVRFKSwKKwlbWlhfQ0xLX01BVFJJWF9NUExMX0Q0XSA9IEdBVEUoIm1hdHJpeC1tcGxs LWQ0IiwKKwkJCQkgICAgICAgUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9ENF9QUkVHQVRF KSwgMHgxMTgsIDQsCisJCQkJICAgICAgIFpYMjk3NTIwVjNfQVhJX0NBTkRJREFURSksCisJW1pY X0NMS19NQVRSSVhfTVBMTF9EMl0gPSBHQVRFKCJtYXRyaXgtbXBsbC1kMiIsCisJCQkJCVBBUkVO VF9JRChaWF9DTEtfTUFUUklYX01QTExfRDJfUFJFR0FURSksIDB4MTE4LCA1LCAwKSwKKworCVta WF9DTEtfTUFUUklYX0RQTExfRDRdID0gR0FURSgibWF0cml4LWRwbGwtZDQiLAorCQkJCSAgICAg ICBQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9EUExMX0Q0X1BSRUdBVEUpLCAweDExOCwgOCwgMCks CisJW1pYX0NMS19NQVRSSVhfRFBMTF9EMl0gPSBHQVRFKCJtYXRyaXgtZHBsbC1kMiIsCisJCQkJ ICAgICAgIFBBUkVOVF9JRChaWF9DTEtfTUFUUklYX0RQTExfRDJfUFJFR0FURSksIDB4MTE4LCA5 LCAwKSwKKworCVtaWF9DTEtfTUFUUklYX0dQTExfRDJfRDRdID0gR0FURSgibWF0cml4LWdwbGwt ZDItZDQiLAorCQkJCQkgIFBBUkVOVF9JRChaWF9DTEtfTUFUUklYX0dQTExfRDJfRDRfUFJFR0FU RSksCisJCQkJCSAgMHgxMTgsIDEyLCAwKSwKKwlbWlhfQ0xLX01BVFJJWF9HUExMX0QyX0QyXSA9 IEdBVEUoIm1hdHJpeC1ncGxsLWQyLWQyIiwKKwkJCQkJICBQQVJFTlRfSUQoWlhfQ0xLX01BVFJJ WF9HUExMX0QyX0QyX1BSRUdBVEUpLAorCQkJCQkgIDB4MTE4LCAxMywgMCksCisKKwlbWlhfQ0xL X0NQVV9NVVhdICAgICAgICAgID0gTVVYKCJjcHUtbXV4IiwgY3B1X3NlbCwgMHgyMCwgMCwgMiks CisJW1pYX0NMS19aU1BfTVVYXSAgICAgICAgICA9IE1VWCgienNwLW11eCIsIHpzcF9zZWwsIDB4 MzAsIDAsIDIpLAorCVtaWF9DTEtfRERSX0NUUkxfTVVYXSAgICAgPSBNVVgoImRkci1jdHJsLW11 eCIsIGRkcl9jdHJsX3NlbCwgMHg1MCwgMCwgMiksCisJW1pYX0NMS19TRDBfTVVYXSAgICAgICAg ICA9IE1VWCgic2QwLW11eCIsIHNkMF9zZWwsIDB4NTAsIDQsIDMpLAorCVtaWF9DTEtfU0QxX01V WF0gICAgICAgICAgPSBNVVgoInNkMS1tdXgiLCBzZDFfc2VsLCAweDUwLCA4LCAzKSwKKwlbWlhf Q0xLX05BTkRfTVVYXSAgICAgICAgID0gTVVYKCJuYW5kLW11eCIsIG5hbmRfc2VsLCAweDUwLCAx MiwgMiksCisJW1pYX0NMS19FRENQX01VWF0gICAgICAgICA9IE1VWCgiZWRjcC1tdXgiLCBlZGNw X3NlbCwgMHg1MCwgMTYsIDIpLAorCVtaWF9DTEtfVERNX01VWF0gICAgICAgICAgPSBNVVgoInRk bS1tdXgiLCB0ZG1fc2VsLCAweDUwLCAyNCwgMiksCisJW1pYX0NMS19BWElfTVVYXSAgICAgICAg ICA9IE1VWCgiYXhpLW11eCIsIGF4aV9zZWwsIFpYMjk3NTIwVjNfQVhJX0FQX1ZPVEUsIDAsIDMp LAorCisJLyoKKwkgKiBUaGlzIGJpdCBjdXRzIG9mZiB0aGUgY2xvY2sgc2lnbmFsIHRvIHRoZSBB Uk0gYXJjaGl0ZWN0ZWQgdGltZXIsIHdoaWNoIHRoZSBrZXJuZWwgdXNlcworCSAqIGFzIGl0cyBt YWluIHRpbWVyLiBJdCBpc24ndCBjcml0aWNhbCBwZXIgc2UgLSB0aGVyZSBhcmUgcGxlbnR5IG9m IHByb3ByaWV0YXJ5IHRpbWVycworCSAqIGF2YWlsYWJsZSB0aGF0IGNvdWxkIGJlIHVzZWQgLSBi dXQgdGhlIGFybSBhcmNoIHRpbWVyIGJpbmRpbmcgZG9lcyBub3QgYWNjZXB0IGEgY2xvY2ssIHNv CisJICogdGhpcyBDQ0YgZHJpdmVyIHdvbid0IGtub3cgaWYgdGhlIHRpbWVyIGlzIGluIHVzZS4K KwkgKgorCSAqIFRoaXMgY2xvY2sgaXMgZmVkIGJ5IHRoZSBvc2MyNm0gZ2F0ZSBpbiB0b3Bjcm0r MHgxNDAgLSB0aGlzIGNyaXRpY2FsIGNsb2NrIGhlcmUgcHJvdGVjdHMKKwkgKiBpdHMgcGFyZW50 LgorCSAqCisJICogUmVnaXN0ZXJzIDB4MTQ4LCAweDE0YywgMHgxNTAsIDB4MTU0IGFsbG93IHNl dHRpbmcgYW5kIGNsZWFyaW5nIHRoZSB0aW1lciBjb3VudGVyLiBUbworCSAqIHNldCB0aGUgdGlt ZXIsIGxvYWQgYSB2YWx1ZSBpbnRvIDB4MTQ4IChoaWdoIDMyIGJpdHMpIGFuZCAweDE0YyAobG93 IDMyIGJpdHMpLCB0aGVuCisJICogdG9nZ2xlIDB4MTUwIHRvIDEuIDB4MTUwIHdpbGwgYXV0b21h dGljYWxseSByZXNldCB0byAwLiAweDE1NCBzZXRzIHRoZSB0aW1lciB0byBzb21lCisJICogImNs ZWFyIiB2YWx1ZSwgYnV0IHRoaXMgdmFsdWUgaXNuJ3QgMC4KKwkgKi8KKwlbWlhfQ0xLX1NZU19U SU1FUl9XQ0xLXSAgID0gR0FURSgic3lzLXRpbWVyLXdjbGsiLCBQQVJFTlRfRlcoIndjbGstb3Nj MjZtIiksIDB4MTQ0LCAxLAorCQkJCQkgQ0xLX0lTX0NSSVRJQ0FMKSwKKworCS8qCisJICogQm90 aCAweDI0IGFuZCAweDI4IGJpdHMgMSBhbmQgMiBzdG9wIHRoZSBDUFUuIFRoZXJlIGlzIGFsc28g YSBiaXQgaW4gdG9wY3JtKzB4MTM4LCB3aGljaAorCSAqIFpURSdzIHVib290IGNhbGxzICJBNTMg cmVzZXQiLCB3aGljaCBhbHNvIHN0b3BzIHRoZSBDUFUuIEkgY2FuJ3QgcmVhbGx5IHRlbGwgdGhl CisJICogZGlmZmVyZW5jZSBiZXR3ZWVuIG1hdHJpeCsweDI4IGFuZCB0b3ArMHgxMzguIFRoZSBj bG9jayAobWF0cml4KzB4MjQpIGNhbiBiZSBkaXNhYmxlZAorCSAqIGFuZCBlbmFibGVkIGZyb20g dGhlIENvcnRleCBNMCBhbmQgaXQgd2lsbCBuaWNlbHkgc3RvcCBhbmQgcmVzdGFydCB0aGUgQTUz LCByZXRhaW5pbmcKKwkgKiBhbGwgc3RhdGUuCisJICovCisJW1pYX0NMS19DUFVfV0NMS10gICAg ICAgICA9IEdBVEUoImNwdS13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19DUFVfTVVYKSwgMHgyNCwg MSwKKwkJCQkJIENMS19JU19DUklUSUNBTCksCisJW1pYX0NMS19DUFVfUENMS10gICAgICAgICA9 IEdBVEUoImNwdS1wY2xrIiwgY2xrX21haW5bMF0sIDB4MjQsIDIsIENMS19JU19DUklUSUNBTCks CisKKwkvKgorCSAqIFRoZXJlIGFyZSBhIGxvdCBtb3JlIGNvbnRyb2xzIGluIG1hdHJpeCsweDEw MC4gMTMtMTYgYXBwZWFyIHRvIGJlIDQgZGlmZmVyZW50IEFYSQorCSAqIGNoYW5uZWxzIGZvciBk aWZmZXJlbnQgcHJpb3JpdGllcy4gQml0IDE5IGFwcGVhcnMgdG8gYmUgdGhlIEREUiBQSFkgd2Ns ay4KKwkgKgorCSAqIFRoZSBpbXBvcnRhbnQgdGFzayBpcyB0byBrZWVwIGdwbGwgZW5hYmxlZCBp ZiB0aGUgYm9vdGxvYWRlciBzZWxlY3RlZCBhIGdwbGwtYmFzZWQgcmF0ZQorCSAqIGZvciBSQU0u CisJICovCisJW1pYX0NMS19ERFJfQ1RSTF9QQ0xLXSAgICA9IEdBVEUoImRkci1jdHJsLXBjbGsi LCBjbGtfbWFpblswXSwgMHgxMDAsIDE3LCBDTEtfSVNfQ1JJVElDQUwpLAorCVtaWF9DTEtfRERS X0NUUkxfV0NMS10gICAgPSBHQVRFKCJkZHItY3RybC13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19E RFJfQ1RSTF9NVVgpLCAweDEwMCwgMTgsCisJCQkJCSBDTEtfSVNfQ1JJVElDQUwpLAorCisJW1pY X0NMS19aU1BfUENMS10gICAgICAgICA9IEdBVEUoInpzcC1wY2xrIiwgY2xrX21haW5bMF0sIDB4 MzQsIDAsIDApLAorCVtaWF9DTEtfWlNQX1dDTEtdICAgICAgICAgPSBHQVRFKCJ6c3Atd2NsayIs IFBBUkVOVF9JRChaWF9DTEtfWlNQX01VWCksIDB4MzQsIDEsIDApLAorCisJLyogQm90aCBTRElP IGNvbnRyb2xsZXJzIGRlcGVuZCBvbiB0aGUgYWhiLXBjbGsgZm9yIHJlZ2lzdGVyIGFjY2Vzcy4g Ki8KKwlbWlhfQ0xLX1NEMF9QQ0xLXSAgICAgICAgID0gR0FURSgic2QwLXBjbGsiLCBQQVJFTlRf RlcoImFoYiIpLCAweDU0LCAxMiwgMCksCisJW1pYX0NMS19TRDBfV0NMS10gICAgICAgICA9IEdB VEUoInNkMC13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19TRDBfTVVYKSwgMHg1NCwgMTMsIDApLAor CVtaWF9DTEtfU0QwX0NERVRdICAgICAgICAgPSBHQVRFKCJzZDAtY2RldCIsIFBBUkVOVF9GVygi b3NjMzJrIiksIDB4NTQsIDE0LCAwKSwKKwlbWlhfQ0xLX1NEMV9QQ0xLXSAgICAgICAgID0gR0FU RSgic2QxLXBjbGsiLCBQQVJFTlRfRlcoImFoYiIpLCAweDU0LCA0LCAwKSwKKwlbWlhfQ0xLX1NE MV9XQ0xLXSAgICAgICAgID0gR0FURSgic2QxLXdjbGsiLCBQQVJFTlRfSUQoWlhfQ0xLX1NEMV9N VVgpLCAweDU0LCA1LCAwKSwKKwkvKgorCSAqIEkgZG9uJ3Qga25vdyBob3cgdGhlIGNkZXQgY2xv Y2sgd29ya3MuIENhcmQgZGV0ZWN0aW9uIGluIHRoZSB3YXkgdGhlIGR3YyxtbWMgZHJpdmVyIHVz ZXMKKwkgKiBpdCBhcHBlYXJzIGJyb2tlbiBubyBtYXR0ZXIgdGhpcyBjbG9jaydzIHNldHRpbmcu CisJICovCisJW1pYX0NMS19TRDFfQ0RFVF0gICAgICAgICA9IEdBVEUoInNkMS1jZGV0IiwgUEFS RU5UX0ZXKCJvc2MzMmsiKSwgMHg1NCwgNiwgMCksCisKKwkvKiBUaGlzIGlzIHNvbWUgImRlbmFs aSIgTkFORCwgbm90IHRoZSBxc3BpIGNvbm5lY3RlZCBvbmUgKi8KKwlbWlhfQ0xLX05BTkRfV0NM S10gICAgICAgID0gR0FURSgibmFuZC13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19OQU5EX01VWCks IDB4NTQsIDIwLCAwKSwKKwlbWlhfQ0xLX05BTkRfUENMS10gICAgICAgID0gR0FURSgibmFuZC1w Y2xrIiwgY2xrX21haW5bMF0sIDB4NTQsIDIxLCAwKSwKKworCS8qCisJICogVGhlcmUgaXMgYSBz ZXQgb2YgZ2F0ZXMgZm9yIGFuIHVua25vd24gZGV2aWNlIGF0IG1hdHJpeCsweDYwLiBJdCBpcyBz b21lIExURSByZWxhdGVkCisJICogZGV2aWNlLiBJZiBpdCBpcyBmZWQgYW4gaW5jb3JyZWN0IGNs b2NrLCBlLmcuIGJlY2F1c2UgZHBsbCBpcyBub3QgbG9ja2VkIGFuZCBvdXRwdXRzCisJICogMjYg TUh6LCBpdCB3aWxsIHNwYW0gSVJRcyBhdCBTUEkgNjguIFRoaXMgaXMgbGlrZWx5IGEgZGlzdHJl c3Mgbm90aWZpY2F0aW9uIHRoYXQgc29tZQorCSAqIGludGVybmFsIFBMTCBkaWQgbm90IGxvY2sg b3Igc2ltaWxhcgorCSAqCisJICogWlRFJ3Mga2VybmVsIGhhcyB0d28gZGVmaW5lcyBmb3IgU1BJ IDY0OiAiTFRFX1RQVV9JTlRfUFNfSU5UIiBhbmQgIlZPVV9PU0RfSU5UIi4gVGhlCisJICogbGF0 dGVyIGlzIHVubGlrZWx5IGJlY2F1c2UgVk9VIHJlbGF0ZWQgY2xvY2tzIHNpdCBpbiBtYXRyaXgr MHgxNjguCisJICoKKwkgKiBCaXQgOSBpbiByZWdpc3RlciAweDExOCB0dXJucyBpdCBvZmYsIHNv IGl0IGlzIHRoZSBpbW1lZGlhdGUgcGFyZW50LiBJdCBpc24ndCBjbGVhciB3aGF0CisJICogZGl2 aXNvciBvZiBkcGxsIGl0IGlzIHVzaW5nIHRob3VnaC4gRm9sbG93aW5nIHRoZSBwYXR0ZXJuIHRo YXQgbG93ZXIgZnJlcXVlbmNpZXMgYXJlCisJICogZ2F0ZWQgYnkgbG93ZXIgYml0cywgaXQgd291 bGQgaW5kaWNhdGUgZHBsbC8yIG9yIGRwbGwvMy4KKwkgKi8KKwlbWlhfQ0xLX0xURV9UUFVfV0NM S10gICAgID0gR0FURSgibHRlLXRwdS13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfRFBM TF9EMiksCisJCQkJCSAweDYwLCAwLCAwKSwKKwlbWlhfQ0xLX0xURV9UUFVfUENMS10gICAgID0g R0FURSgibHRlLXRwdS1wY2xrIiwgY2xrX21haW5bMF0sCisJCQkJCSAweDYwLCAyLCAwKSwKKwor CVtaWF9DTEtfRURDUF9QQ0xLXSAgICAgICAgPSBHQVRFKCJlZGNwLXBjbGsiLCBjbGtfbWFpblsw XSwgMHg2NCwgMSwgMCksCisJW1pYX0NMS19FRENQX1dDTEtdICAgICAgICA9IEdBVEUoImVkY3At d2NsayIsIFBBUkVOVF9JRChaWF9DTEtfRURDUF9NVVgpLCAweDY0LCAyLCAwKSwKKworCS8qCisJ ICogVGhpcyBzZWVtcyB0byBiZSBhbm90aGVyIFNQSS1MaWtlIGRldmljZS4gWlRFJ3MgZmlybXdh cmUgb3BlcmF0ZXMgaXQgYW5kIGZyb20gdGVzdGluZworCSAqIGl0IGxvb2tzIGxpa2UgdGhlIG1h dHJpeC1vc2MyNm0gZ2F0ZSBpbiB0b3ArMHgxNDAgc3RvcHMgdGhpcyBkZXZpY2UuIFRoaXMgd291 bGQgYmUKKwkgKiBjb25zaXN0ZW50IHdpdGggdGhlIG90aGVyIFNQSSBjb250cm9sbGVycyB0b28u CisJICovCisJW1pYX0NMS19TU0NfV0NMS10gICAgICAgICA9IEdBVEUoInNzYy13Y2xrIiwgUEFS RU5UX0ZXKCJ3Y2xrLW9zYzI2bSIpLCAweDg0LCAxLCAwKSwKKwlbWlhfQ0xLX1NTQ19QQ0xLXSAg ICAgICAgID0gR0FURSgic3NjLXBjbGsiLCBjbGtfbWFpblswXSwgMHg4NCwgMiwgMCksCisKKwkv KgorCSAqIFBEQ0ZHLiBMaWtlIFBNTSwgZWl0aGVyIGNsb2NrIGJpdCB3aWxsIGFsbG93IHRoZSBk ZXZpY2UgdG8gZnVuY3Rpb24uIFByb2JhYmx5IHRoZXJlIGlzCisJICogbm8gd2NsayBsaW5lIGF0 IGFsbCBhbmQgdGhlIHR3byBiaXRzIGFyZSBqdXN0IGFuIGFydGlmYWN0IG9mIGdlbmVyYWxseSBo YXZpbmcgdHdvIGJpdHMKKwkgKiBwZXIgZGV2aWNlLgorCSAqLworCVtaWF9DTEtfUERDRkdfV0NM S10gICAgICAgPSBHQVRFKCJwZGNmZy13Y2xrIiwgbWF0cml4X3VuaywgMHg4OCwgMCwgQ0xLX0lT X0NSSVRJQ0FMKSwKKwlbWlhfQ0xLX1BEQ0ZHX1BDTEtdICAgICAgID0gR0FURSgicGRjZmctcGNs ayIsIGNsa19tYWluWzBdLCAweDg4LCAxLCBDTEtfSVNfQ1JJVElDQUwpLAorCVtaWF9DTEtfTUJP WF9QQ0xLXSAgICAgICAgPSBHQVRFKCJtYm94LXBjbGsiLCBjbGtfbWFpblswXSwgMHg4OCwgMiwg MCksCisJW1pYX0NMS19TUkFNMF9QQ0xLXSAgICAgICA9IEdBVEUoInNyYW0wLXBjbGsiLCBjbGtf bWFpblswXSwgMHg4OCwgNCwgMCksCisJW1pYX0NMS19HU01fQ0ZHX1BDTEtdICAgICA9IEdBVEUo ImdzbS1jZmctcGNsayIsIGNsa19tYWluWzBdLCAweDg4LCA4LCAwKSwKKworCS8qCisJICogWlRF J3MgZHJpdmVyIGhhcyBhIHN0YXRlbWVudCB0byB0aGUgZWZmZWN0IG9mICoodG9wLT5iYXNlKzB4 MTFjKSA9IDUsIHdpdGggYSBjb21tZW50CisJICogc3VnZ2VzdGluZyB0aGF0IHRoaXMgc2V0cyBh IDUwIE1IeiBjbG9jay4gVGhlIGNsb2NrIGNvZGUgaXRzZWxmIGxpc3RzIEdNQUMgY2xvY2tzIGlu CisJICogbWF0cml4KzB4MTEwIGFuZCBsaXN0cyB0aGUgcGFyZW50cyBvZiB0aGVzZSBjbG9ja3Mg YXMgNTAgTUh6IGdwbGwgb3V0cHV0LCBidXQKKwkgKiB0aGUgZG93bnN0cmVhbSBaVEUgR01BQyBk cml2ZXIgbmV2ZXIgZW5hYmxlcyB0aGUgY2xvY2tzLiBJdCB0dXJucyBvdXQgWlRFJ3MgY29kZSBp cworCSAqIGhpZ2hseSBtaXNsZWFkaW5nLgorCSAqCisJICogVGhlIEdNQUMncyB3b3JrIGNsb2Nr IGlzIGRlZmluaXRlbHkgbm90IGFueSBncGxsIG91dHB1dCBiZWNhdXNlIGl0IGtlZXBzIHdvcmtp bmcgZmluZQorCSAqIHdpdGggZ3BsbCBkaXNhYmxlZC4gR2F0aW5nIG9mZiBtYXRyaXgtb3NjMjZt IGJyZWFrcyBHTUFDLCBzbyBpdCBtdXN0IGJlIGl0cyBwYXJlbnQuCisJICoKKwkgKiBUaGUgR01B QyBHYXRlcyBhcmUgbGVmdCBlbmFibGVkIGJ5IHRoZSBib290IGxvYWRlciBhbmQgYXJlIHJlcXVp cmVkIGZvciB0aGUgR01BQyB0byB3b3JrLgorCSAqCisJICogQXMgZm9yIHRoZSA1MCBNSHogY29t bWVudDogU2VlIHJtaWlwaHktd2Nsay4KKwkgKgorCSAqIFRoZSBnbWFjLWFoYiBjbG9jayBpcyBh IGNoaWxkIG9mIHRvcGNybSdzIGFoYi1wY2xrIGFuZCBpcyByZXF1aXJlZCBmb3IgRE1BIHRyYW5z ZmVycyBpbgorCSAqIGFuZCBvdXQgb2YgR01BQy4gV2l0aG91dCBpdCwgR01BQyBzdGlsbCByZWNl aXZlcyBldGhlcm5ldCBmcmFtZXMsIGJ1dCBjYW4ndCBkcmFpbiB0aGVtCisJICogdG8gbWVtb3J5 IGFuZCB3aWxsIGV2ZW50dWFsbHkgc2V0IHRoZSBSWCBGSUZPIG92ZXJmbG93IGZsYWcuCisJICov CisJW1pYX0NMS19HTUFDX1dDTEtdICAgICAgICA9IEdBVEUoImdtYWMtd2NsayIsIFBBUkVOVF9G Vygid2Nsay1vc2MyNm0iKSwgMHgxMTAsIDAsIDApLAorCVtaWF9DTEtfR01BQ19QQ0xLXSAgICAg ICAgPSBHQVRFKCJnbWFjLXBjbGsiLCBjbGtfbWFpblswXSwgMHgxMTAsIDEsIDApLAorCVtaWF9D TEtfR01BQ19BSEJdICAgICAgICAgPSBHQVRFKCJnbWFjLWFoYiIsIFBBUkVOVF9GVygiYWhiIiks IDB4MTEwLCAyLCAwKSwKKworCS8qCisJICogSXMgdGhlcmUgYW4gQVhJIGJ1cyBnYXRlPyBUaGUg c3ltcHRvbSBvZiBjdXR0aW5nIG9mZiB0aGUgQVhJIG11eCBzZWxlY3Rpb24gaW4gdG9wKzB4MTQw CisJICogaXMgdGhhdCBtYXRyaXhjcm0gYmVjb21lcyB1bnJlYWRhYmxlIGZyb20gbTAgYW5kIEE1 MyBoYW5ncy4gSW5zaWRlIG1hdHJpeCBpdHNlbGYgb25seSAzCisJICogYml0cyBmaXQgdGhhdCBi aWxsOiAweDhjIGJpdHMgNSwgNiwgNy4gSXQgc2VlbXMgYSBiaXQgc2VsZi1kZWZlYXRpbmcgdG8g aGF2ZSBhIGNsb2NrCisJICogZ2F0ZSB0aGF0IHNodXRzIG9mZiBhY2Nlc3MgdG8gaXRzZWxmIHRo b3VnaC4gSSBleHBlY3QgYSBjbG9jayBnYXRlIGZvciB0aGUgYnVzCisJICogc29tZXdoZXJlLCBh bmQgdGhlIG11eCBleGlzdHMsIHNvIGV4cG9zaW5nIG9uZSBBWEkgY2xvY2sgaW4gdGhlIGJpbmRp bmdzIGlzIHRoZSBjb3JyZWN0CisJICogdGhpbmcgdG8gZG8uIEl0IGFsc28gc2VydmVzIHRvIHRl bGwgdGhlIGtlcm5lbCB0byBrZWVwIHRoZSBtdXgncyBwYXJlbnQgZW5hYmxlZC4KKwkgKgorCSAq IFJlZ2lzdGVyIDB4OGMgaGFzIDEyIHNldHRhYmxlIGJpdHMgKDB4ZmZmKS4gVWx0aW1hdGVseSBp dCBkb2Vzbid0IG1hdHRlciBtdWNoIHdoaWNoCisJICogZG8tbm90LXJlbW92ZSBiaXQgd2UgZG9u J3QgcmVtb3ZlLiBPdGhlciBiaXRzIGluIHRoaXMgcmVnaXN0ZXIgYmVoYXZlIGxpa2UgZ2F0ZXMg KGUuZworCSAqIGJpdHMgMTE6OCBjdXQgb2ZmIFVTQiB0ZW1wb3JhcmlseSksIHNvIEkgdGhpbmsg d2UgYXJlIGxvb2tpbmcgaW4gdGhlIHJpZ2h0IHBsYWNlLgorCSAqCisJICogSWYgYW4gZXhwbGFu YXRpb24gZm9yIHRoZSByZW1haW5pbmcgYml0cyBzdXJmYWNlcyBhbmQgdGhleSBhcmUgZnVydGhl ciBnYXRlcyBhbmQvb3IKKwkgKiByZXNldHMsIGFkZCB0aGVtIHRvIHRoZSBiaW5kaW5ncy4KKwkg Ki8KKwlbWlhfQ0xLX0FYSV9XQ0xLXSAgICAgICAgID0gR0FURSgiYXhpLXdjbGsiLCBQQVJFTlRf SUQoWlhfQ0xLX0FYSV9NVVgpLCAweDhjLCA1LAorCQkJCQkgQ0xLX0lTX0NSSVRJQ0FMKSwKKwor CVtaWF9DTEtfRE1BX1BDTEtdICAgICAgICAgPSBHQVRFKCJkbWEtcGNsayIsIGNsa19tYWluWzBd LCAweDk0LCAzLCAwKSwKKworCS8qCisJICogVGhlcmUgYXJlIGEgbG90IG1vcmUgVk9VIHJlbGF0 ZWQgY29udHJvbHMgaW4gdGhlc2UgcmVnaXN0ZXJzLCBidXQgdHVybmluZyBvZmYgdGhlIG1haW4K KwkgKiBjbG9jayBzZWVtcyB0byBzaHV0IG9mZiB0aGUgZW50aXJlIFZPVSBNTUlPIHJhbmdlLgor CSAqLworCVtaWF9DTEtfVk9VX1dDTEtdICAgICAgICAgPSBHQVRFKCJ2b3Utd2NsayIsIG1hdHJp eF91bmssIDB4MTY4LCAwLCAwKSwKKwlbWlhfQ0xLX1ZPVV9QQ0xLXSAgICAgICAgID0gR0FURSgi dm91LXBjbGsiLCBjbGtfbWFpblswXSwgMHgxNjgsIDEsIDApLAorCisJLyoKKwkgKiBMU1AgdXBs aW5rIGNsb2Nrcy4gVGhlIHBjbGsgaXMgZmFpcmx5IG9idmlvdXMgKGRpc2FibGluZyBpdCBzaHV0 cyBvZmYgdGhlIGVudGlyZSBMU1AKKwkgKiByZWdpc3RlciBhcmVhKS4gVGhlIHdjbGsgc3BlZWRz IHdlcmUgZGVkdWNlZCBieSBzZXR0aW5nIHRpbWVycyBhbmQgcXNwaSBtdXhlcyB0byBhCisJICog c3BlY2lmaWMgc3BlZWQgYW5kIHNlZWluZyB3aGljaCBiaXQgaW4gbWF0cml4KzB4N2MgbmVlZHMg dG8gYmUgZW5hYmxlZCBmb3IgdGhlIGRldmljZQorCSAqIHRvIHdvcmsuCisJICoKKwkgKiBEdWUg dG8gdGhlIHRpbWVycyBJIGFtIGNlcnRhaW4gYWJvdXQgdGhlIDI2IE1IeiBhbmQgMzIga0h6IGNs b2Nrcy4gSSBjYW5ub3QgZGlyZWN0bHkKKwkgKiBvYnNlcnZlIHRoZSBxc3BpIG11eCBmcmVxdWVu Y3ksIHNvIHRoZSBjbG9jayByYXRlcyBkZXBlbmQgb24gWlRFJ3MgcXNwaSBtdXggc2VsZWN0aW9u CisJICogYmVpbmcgY29ycmVjdC4KKwkgKgorCSAqIFR3byBhZGRpdGlvbmFsIGJpdHMgYXJlIHNw ZWNpZmljIHRvIHNvdW5kIGNvbXBvbmVudHMgLSB0aGUgbXV4IGZvciB0aGUgTFNQJ3MgVERNIElQ IGlzCisJICogaW4gbWF0cml4Y3JtIGFuZCBnZXRzIHBhc3NlZCBkb3duLiBJMlMgaGFzIGEgbXV4 IGluIExTUCwgd2hpY2ggY2FuIHNlbGVjdCB0aGUgZHBsbC1kNAorCSAqIGNsb2NrLgorCSAqLwor CVtaWF9DTEtfVE9MU1BfTVBMTF9ENV9XQ0xLXSAgPSBHQVRFKCJsc3AtbXBsbC1kNSIsIFBBUkVO VF9GVygibXBsbC1kNSIpLCAweDdjLCAwLCAwKSwKKwlbWlhfQ0xLX1RPTFNQX01QTExfRDRfV0NM S10gID0gR0FURSgibHNwLW1wbGwtZDQiLCBQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0Q0 KSwKKwkJCQkJICAgIDB4N2MsIDEsIDApLAorCVtaWF9DTEtfVE9MU1BfTVBMTF9ENl9XQ0xLXSAg PSBHQVRFKCJsc3AtbXBsbC1kNiIsIFBBUkVOVF9JRChaWF9DTEtfTUFUUklYX01QTExfRDYpLAor CQkJCQkgICAgMHg3YywgMiwgMCksCisJW1pYX0NMS19UT0xTUF9NUExMX0Q4X1dDTEtdICA9IEdB VEUoImxzcC1tcGxsLWQ4IiwgUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9EOCksCisJCQkJ CSAgICAweDdjLCAzLCAwKSwKKwlbWlhfQ0xLX1RPTFNQX01QTExfRDEyX1dDTEtdID0gR0FURSgi bHNwLW1wbGwtZDEyIiwgUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9EMTIpLAorCQkJCQkg ICAgMHg3YywgNCwgMCksCisJW1pYX0NMS19UT0xTUF9PU0MyNk1fV0NMS10gICA9IEdBVEUoImxz cC1vc2MyNm0iLCBQQVJFTlRfRlcoIndjbGstb3NjMjZtIiksIDB4N2MsIDUsIDApLAorCVtaWF9D TEtfVE9MU1BfT1NDMzJLX1dDTEtdICAgPSBHQVRFKCJsc3Atb3NjMzJrIiwgUEFSRU5UX0ZXKCJv c2MzMmsiKSwgMHg3YywgNiwgMCksCisJW1pYX0NMS19UT0xTUF9QQ0xLXSAgICAgICAgICA9IEdB VEUoImxzcC1wY2xrIiwgY2xrX21haW5bMF0sIDB4N2MsIDcsIDApLAorCVtaWF9DTEtfVE9MU1Bf VERNX1dDTEtdICAgICAgPSBHQVRFKCJsc3AtdGRtLXdjbGsiLCBQQVJFTlRfSUQoWlhfQ0xLX1RE TV9NVVgpLCAweDdjLCA4LCAwKSwKKwlbWlhfQ0xLX1RPTFNQX0RQTExfRDRfV0NMS10gID0gR0FU RSgibHNwLWRwbGwtZDQiLCBQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9EUExMX0Q0KSwKKwkJCQkJ ICAgIDB4N2MsIDksIDApLAorfTsKKworc3RhdGljIGludCB6eDI5NzUyMHYzX21hdHJpeF9pbml0 KHN0cnVjdCByZWdtYXAgKm1hcCkKK3sKKwl1MzIgYXhpX3ZhbDsKKwlpbnQgcmVzOworCisJLyog UmVhZCB0aGUgZ2xvYmFsIEFYSSBzcGVlZCBzZWxlY3Rpb24sIGluc2VydCBpdCBpbnRvIG91ciBi YWxsb3QgYW5kIGVuYWJsZSB2b3RpbmcgKi8KKwlyZXMgPSByZWdtYXBfcmVhZChtYXAsIDB4MCwg JmF4aV92YWwpOworCWlmIChyZXMpCisJCXJldHVybiByZXM7CisKKwlheGlfdmFsICY9IDB4NzsK KwlyZXMgPSByZWdtYXBfd3JpdGUobWFwLCBaWDI5NzUyMFYzX0FYSV9BUF9WT1RFLCBheGlfdmFs KTsKKwlpZiAocmVzKQorCQlyZXR1cm4gcmVzOworCisJcmV0dXJuIHJlZ21hcF93cml0ZShtYXAs IDB4MTJjLCAxKTsKK30KKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCB6eDI5NzUyMHYzX21h dHJpeF9leHBvcnRzW10gPSB7CisJW1pYMjk3NTIwVjNfU1lTX1RJTUVSX1dDTEtdID0JCVpYX0NM S19TWVNfVElNRVJfV0NMSywKKwlbWlgyOTc1MjBWM19DUFVfV0NMS10gPQkJCVpYX0NMS19DUFVf V0NMSywKKwlbWlgyOTc1MjBWM19DUFVfUENMS10gPQkJCVpYX0NMS19DUFVfUENMSywKKwlbWlgy OTc1MjBWM19aU1BfV0NMS10gPQkJCVpYX0NMS19aU1BfV0NMSywKKwlbWlgyOTc1MjBWM19aU1Bf UENMS10gPQkJCVpYX0NMS19aU1BfUENMSywKKwlbWlgyOTc1MjBWM19ERFJfQ1RSTF9QQ0xLXSA9 CQlaWF9DTEtfRERSX0NUUkxfUENMSywKKwlbWlgyOTc1MjBWM19ERFJfQ1RSTF9XQ0xLXSA9CQla WF9DTEtfRERSX0NUUkxfV0NMSywKKwlbWlgyOTc1MjBWM19FRENQX1dDTEtdID0JCVpYX0NMS19F RENQX1dDTEssCisJW1pYMjk3NTIwVjNfRURDUF9QQ0xLXSA9CQlaWF9DTEtfRURDUF9QQ0xLLAor CVtaWDI5NzUyMFYzX1NEMF9XQ0xLXSA9CQkJWlhfQ0xLX1NEMF9XQ0xLLAorCVtaWDI5NzUyMFYz X1NEMF9QQ0xLXSA9CQkJWlhfQ0xLX1NEMF9QQ0xLLAorCVtaWDI5NzUyMFYzX1NEMF9DREVUXSA9 CQkJWlhfQ0xLX1NEMF9DREVULAorCVtaWDI5NzUyMFYzX1NEMV9XQ0xLXSA9CQkJWlhfQ0xLX1NE MV9XQ0xLLAorCVtaWDI5NzUyMFYzX1NEMV9QQ0xLXSA9CQkJWlhfQ0xLX1NEMV9QQ0xLLAorCVta WDI5NzUyMFYzX1NEMV9DREVUXSA9CQkJWlhfQ0xLX1NEMV9DREVULAorCVtaWDI5NzUyMFYzX05B TkRfV0NMS10gPQkJWlhfQ0xLX05BTkRfV0NMSywKKwlbWlgyOTc1MjBWM19OQU5EX1BDTEtdID0J CVpYX0NMS19OQU5EX1BDTEssCisJW1pYMjk3NTIwVjNfRE1BX1BDTEtdID0JCQlaWF9DTEtfRE1B X1BDTEssCisJW1pYMjk3NTIwVjNfTUJPWF9QQ0xLXSA9CQlaWF9DTEtfTUJPWF9QQ0xLLAorCVta WDI5NzUyMFYzX1BEQ0ZHX1dDTEtdID0JCVpYX0NMS19QRENGR19XQ0xLLAorCVtaWDI5NzUyMFYz X1BEQ0ZHX1BDTEtdID0JCVpYX0NMS19QRENGR19QQ0xLLAorCVtaWDI5NzUyMFYzX1NTQ19XQ0xL XSA9CQkJWlhfQ0xLX1NTQ19XQ0xLLAorCVtaWDI5NzUyMFYzX1NTQ19QQ0xLXSA9CQkJWlhfQ0xL X1NTQ19QQ0xLLAorCVtaWDI5NzUyMFYzX0FYSV9XQ0xLXSA9CQkJWlhfQ0xLX0FYSV9XQ0xLLAor CVtaWDI5NzUyMFYzX0dNQUNfV0NMS10gPQkJWlhfQ0xLX0dNQUNfV0NMSywKKwlbWlgyOTc1MjBW M19HTUFDX1BDTEtdID0JCVpYX0NMS19HTUFDX1BDTEssCisJW1pYMjk3NTIwVjNfR01BQ19BSEJd ID0JCQlaWF9DTEtfR01BQ19BSEIsCisJW1pYMjk3NTIwVjNfVk9VX1dDTEtdID0JCQlaWF9DTEtf Vk9VX1dDTEssCisJW1pYMjk3NTIwVjNfVk9VX1BDTEtdID0JCQlaWF9DTEtfVk9VX1BDTEssCisJ W1pYMjk3NTIwVjNfTFNQX01QTExfRDVfV0NMS10gPQkJWlhfQ0xLX1RPTFNQX01QTExfRDVfV0NM SywKKwlbWlgyOTc1MjBWM19MU1BfTVBMTF9ENF9XQ0xLXSA9CQlaWF9DTEtfVE9MU1BfTVBMTF9E NF9XQ0xLLAorCVtaWDI5NzUyMFYzX0xTUF9NUExMX0Q2X1dDTEtdID0JCVpYX0NMS19UT0xTUF9N UExMX0Q2X1dDTEssCisJW1pYMjk3NTIwVjNfTFNQX01QTExfRDhfV0NMS10gPQkJWlhfQ0xLX1RP TFNQX01QTExfRDhfV0NMSywKKwlbWlgyOTc1MjBWM19MU1BfTVBMTF9EMTJfV0NMS10gPQlaWF9D TEtfVE9MU1BfTVBMTF9EMTJfV0NMSywKKwlbWlgyOTc1MjBWM19MU1BfT1NDMjZNX1dDTEtdID0J CVpYX0NMS19UT0xTUF9PU0MyNk1fV0NMSywKKwlbWlgyOTc1MjBWM19MU1BfT1NDMzJLX1dDTEtd ID0JCVpYX0NMS19UT0xTUF9PU0MzMktfV0NMSywKKwlbWlgyOTc1MjBWM19MU1BfUENMS10gPQkJ CVpYX0NMS19UT0xTUF9QQ0xLLAorCVtaWDI5NzUyMFYzX0xTUF9URE1fV0NMS10gPQkJWlhfQ0xL X1RPTFNQX1RETV9XQ0xLLAorCVtaWDI5NzUyMFYzX0xTUF9EUExMX0Q0X1dDTEtdID0JCVpYX0NM S19UT0xTUF9EUExMX0Q0X1dDTEssCisJW1pYMjk3NTIwVjNfU1JBTTBfUENMS10gPQkJWlhfQ0xL X1NSQU0wX1BDTEssCisJW1pYMjk3NTIwVjNfR1NNX0NGR19QQ0xLXSA9CQlaWF9DTEtfR1NNX0NG R19QQ0xLLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB6eF9jbGtfZGF0YSB6eDI5NzUyMHYz X21hdHJpeGNsa19kYXRhID0geworCS5pbml0ID0gengyOTc1MjB2M19tYXRyaXhfaW5pdCwKKwku Y2xvY2tzID0gengyOTc1MjB2M19tYXRyaXhfY2xvY2tzLAorCS5udW1fY2xvY2tzID0gQVJSQVlf U0laRSh6eDI5NzUyMHYzX21hdHJpeF9jbG9ja3MpLAorCS5leHBvcnRzID0gengyOTc1MjB2M19t YXRyaXhfZXhwb3J0cywKKwkubnVtX2V4cG9ydHMgPSBBUlJBWV9TSVpFKHp4Mjk3NTIwdjNfbWF0 cml4X2V4cG9ydHMpLAorfTsKKwogc3RhdGljIGludCBjbGtfengyOTc1MjB2M19wcm9iZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCWNvbnN0IHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2VfaWQgKmlkID0gcGxhdGZvcm1fZ2V0X2RldmljZV9pZChwZGV2KTsKQEAgLTc4NSw2ICsxMjky LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkIGNsa196eDI5NzUy MHYzX2lkc1tdID0gewogCQkubmFtZSA9ICJ6eDI5NzUyMHYzLXRvcGNsayIsCiAJCS5kcml2ZXJf ZGF0YSA9IChrZXJuZWxfdWxvbmdfdCkmengyOTc1MjB2M190b3BjbGtfZGF0YSwKIAl9LAorCXsK KwkJLm5hbWUgPSAiengyOTc1MjB2My1tYXRyaXhjbGsiLAorCQkuZHJpdmVyX2RhdGEgPSAoa2Vy bmVsX3Vsb25nX3QpJnp4Mjk3NTIwdjNfbWF0cml4Y2xrX2RhdGEsCisJfSwKIAl7IH0KIH07CiBN T0RVTEVfREVWSUNFX1RBQkxFKHBsYXRmb3JtLCBjbGtfengyOTc1MjB2M19pZHMpOwoKLS0gCjIu NTQuMAoKCi0tIApsaW51eC1waHkgbWFpbGluZyBsaXN0CmxpbnV4LXBoeUBsaXN0cy5pbmZyYWRl YWQub3JnCmh0dHBzOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LXBoeQo=