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 38017C9832F for ; Sun, 27 Sep 2026 20:14:48 +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=/Ik8dP3eRTaWHfSBhjpepgZRX4eq4xhdhE+1e8HSnlI=; b=d1Ja8FK9PsUlRM nAbhOarZnW4zkEeU6AMRDfGTGiThAr1yQ/WeD4vAvLICTlD+Y7EDN9C92UdYnlheBfTQ+OSZuKWkD SQcucolRdAgMBISF/yDA0dp+ZRGQY6t9ERH3LuIZvS+Sja+F/1ewpN82gtWMzNUBYzLe2h9ZgTjiX 1gVPntXsljisNkP7v9/p3KLJau7uCAYsulBA7YLWxFRd8mqbONQNY8viFIdKlSw7gwbwDm08lR5yd R1ycvATLHTPTwfWuny0cqbhei3v/6x+oczqF/dcU0xQ2pp/IdVWesRWom6Dbwog9lKeFFMcAdTig9 0GVE16Mf+W1UnGGBWoBQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xAvGo-0000000Gntn-2VEt; Sun, 27 Sep 2026 20:14:47 +0000 Received: from mail-wr2-x0f.google.com ([2a00:1450:4864:30::f]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xAvGg-0000000Gnlo-2Tv9 for linux-phy@lists.infradead.org; Sun, 27 Sep 2026 20:14:43 +0000 Received: by mail-wr2-x0f.google.com with SMTP id ffacd0b85a97d-48877902c99so2287242f8f.2 for ; Sun, 27 Sep 2026 13:14:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790540077; x=1791144877; 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=C21zVOwuoQyHgpBPsxP9ROh2fBHCHBJsurZmSoHVBEk=; b=bpBxaQfa3nO1kbmXcnLcuIfZqPr+7sN2HP+rTOTV9sCExpwHjnoOAEHN8xiaAv2zaY z7T2CkrwaDQ3FqSd3Bjs6RS7gQP9i/4iNi93Xkhrxldbm78HhxVs7x/iXt3vtqgSNsST TAs5tklC/8TEVJ1SIhVpeuFplI5+SVGQRbnheH8vtnOUyZjRbx7dzDciimXE8b1wGgez Zw6YhQYIHd4ezH9y6VPGx/J2JCRd+OHuo53rnH6OwaYsAXY5pEPfZ7d6U1RcpLCqbIft Wv21Q0774xY2/LCD0C+Yl51LUjfpJcR8/Z4wwyCfchznhtd2AopxCdQDGBbSkoWnsfIS E9cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790540077; x=1791144877; 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=C21zVOwuoQyHgpBPsxP9ROh2fBHCHBJsurZmSoHVBEk=; b=za7ieuoSqcXJd81ULsu1cE8LLhbbiNj2Ki8mwKklLfkSV18SZNzghfbBfmGLb/AnZX ztOY6BZLsaQXAg1RV5eHIB2FZX6VaeZogNeUi5xNC4sR+4L0BAk+bYiq9m35YvO8WZ9b jDS6dZJYJiZS5dpoR//KelqyepRVb5UiRQwTHnbrD8M+/olyrRROH4S3NBBtT7F38UcL z8So2qeB7WkvIa1CXmscxK4RcdsLzbw8b6m35zfBhD0XRnlC4nlN50yW+3hJCVWEnTtH pA/4GYTUYP9yXBbdyO3PC3Lm0elx8ghsi6kTsL16ordltIyV8QocZrxuxqYJFdEgfkHs WovA== X-Forwarded-Encrypted: i=1; AKwUvBxrdtpYNciQRMzlnnDLUm9OrSN8Y+8ISQO1MuIOWLEs5wNJ39xhqUR2nDx9dK7bkpxXC6hsllCcBW4=@lists.infradead.org X-Gm-Message-State: AFq9FYIziEW4wvPRTZKInF6qUshC0gTHnNmNDCzw48aoKuyiJW9p3s4D 9EFyNnZRInDAy/iis430cEtdP7Onqe4Vw0u89CamyLBZqwzNebExxqpC X-Gm-Gg: AYBFou0zX7SgzSbORh2dbRRhBYwG6H/AHd32JAnojBn/yxDWup2E4Yl2eio8ISzff6O mdqsFZL0IUrCRwMxF5CZ13i1uv/SQWdtdZcxrXEyyTxREloWnYjfZylW7wS8bcSEvmVm9LBlNkb q1XgjBJntDHQLhYJyTOJ7+8T06ZGxpQ/9gTyg6gUY1pbRNkOiHM/tHPtUn7pPK7zVjIqbDvpRpe jQhVtyvZuPZ6P6Xuqa9XO2+dcfH+jUZ/+TcQPq9Z0aGE5q0iRwgcgpfvQNEeS8I3TzEWkIUUCdX 4bBRPs03WqghQ7J6ya6Q38v8o4IJXCVHHkKHhG1aDl1QujvP/KVHIlx02xPB++ZM8ZAOyF0CzoR jro9g3k4Ix1RDcA+L4s6qRYBUDZxOAYFvK+RVcDmlmB9FLrAdZKRBq8un6CwwkktPq5SQmZFTPP mYxm5YCMTXwOHus+9CGI+Ybzz+q3EReDQdoH30XJCRIWNwfbwSyeQT2Bc2fvvhQVvQY2YrwTlmm iyUGmAB X-Received: by 2002:a05:6000:1841:b0:488:8087:447a with SMTP id ffacd0b85a97d-4888087476emr13031915f8f.38.1790540076469; Sun, 27 Sep 2026 13:14:36 -0700 (PDT) Received: from [192.168.0.2] ([197.250.96.148]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4887a34a570sm21781514f8f.13.2026.09.27.13.14.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 27 Sep 2026 13:14:34 -0700 (PDT) From: =?utf-8?q?Stefan_D=C3=B6singer?= Date: Sun, 27 Sep 2026 23:13:37 +0300 Subject: [PATCH v13 09/13] clk: zte: Introduce a driver for zx297520v3 top clocks MIME-Version: 1.0 Message-Id: <20260927-zx29clk-v13-9-70d8f673386c@gmail.com> References: <20260927-zx29clk-v13-0-70d8f673386c@gmail.com> In-Reply-To: <20260927-zx29clk-v13-0-70d8f673386c@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 , Brian Masney , Jerome Brunet , Manivannan Sadhasivam 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.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=43356; i=stefandoesinger@gmail.com; h=from:subject:message-id; bh=M3uS7AyMk5NHFVwi4dJz7wVHgdnNVvngomKJTxby+n0=; b=owEBiQJ2/ZANAwAIAT0TvMhUTxoiAcsmYgBquXj1R5owmY6iLQ+6/+ao9SLvwRcN3tbED+zHv 4YPMCj/yPKJAk8EAAEIADkWIQRDFvS2qgVbJ5UyXWw9E7zIVE8aIgUCarl49RsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMiwyLDIACgkQPRO8yFRPGiJokA//QWDWqvwoVgYkv/Lu411Z7nqG3XEj6a+ xMwNrtBcIUwe5HfxdCU3yby9wUbA264I/QBhyuqZnssrhrHNWjrwpoPuqFE/ZECBuDAAwPAJ5TK xYtGV7qq5NIgAp2BN2atYVw47v52WuGPrBSNDQ0FFej5rakxy4Ezk8Kl9IDITlGcghQf+E2zek4 rg+SG5J19Pge7/d93ju3xmPmcDKhAR/ZaQBsxegslGLy5Dq7qBopO+MLAYM3WkCOgDn1BMVhim7 raMT80KIWzHBry35HBaGkF/yMtMRrkLiNaH6vQM512cyyoJOETiZJyVju4cVAxJGdLG4FUu2wwU HuNpt1nv5S2D3b0qHcG5lSP/DsqpeZM9cr2EpdibE4CkNW2vQ13ybVFUIyJaQyD3GyKUZopWBIQ h4C/Qp+0cKwgp6kVItxI/MFDVlTEyecqEGOSPAdCHWo8bizXr7KXmhv/jvRk9P2cjTey0QLfqT6 0xHkqa6W3pcNcUuFbj/Wju29h6cVDw6b3SUxj+Tyz1ZEQjJa3C1nXArT65LysclUgx8Zb/w7Xk5 kpu3rawNRURIh2JMHr1uMSE2fmY/+pPy0x+BwtOGlIVtrMQlwWZjLJq+oQ6nGf3yr53BZTrIR8o frvKYVxhPvlnXVdIByM+sYfHBJ/K1AiaXCXooy7kRoIrXb0d1ESM= 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-20260927_131438_974826_57CCC5CB X-CRM114-Status: GOOD ( 41.62 ) 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 VGhpcyByZWdpc3RlciBzcGFjZSBjb250cm9scyBjb3JlIGRldmljZXM6IFBMTHMsIHRoZSBBSEIg YnVzLCBhIGxvdCBvZgp0aW1lcnMsIHRoZSBVU0IgY29udHJvbGxlciwgdGhlIENvcnRleCBNMCBw cm9jZXNzb3IgdGhhdCBib290cyB0aGUgYm9hcmQKYW5kIGEgZmV3IG90aGVyIGRldmljZXMuIEZv ciBzb21lIHJlYXNvbiB0aGUgTFRFIGNvcHJvY2Vzc29yIGlzIGFsc28KcGFydGlhbGx5IGNvbnRy b2xsZWQgYnkgaXQuIFRoZSBtYWluIGFwcGxpY2F0aW9uIHByb2Nlc3NvciBhbmQgRERSCm1lbW9y eSBhcmUgbm90IGZvdW5kIGhlcmUgdGhvdWdoLgoKVGhlIHJlZ2lzdGVyIHRvIHJlYm9vdCB0aGUg Ym9hcmQgaXMgZm91bmQgaGVyZSwgYXMgd2VsbCBhcyBhIHJlZ2lzdGVyIHRvCmNvbnRyb2wgd2hl dGhlciB3YXRjaGRvZyBleHBpcmllcyBjYXVzZSBhIGJvYXJkIHJlc2V0LgoKUmV2aWV3ZWQtYnk6 IEJyaWFuIE1hc25leSA8Ym1hc25leUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4g RMO2c2luZ2VyIDxzdGVmYW5kb2VzaW5nZXJAZ21haWwuY29tPgotLS0KClZlcnNpb24gMTM6IFVu Y2hhbmdlZApSZSBTYXNoaWtvJ3MgY29uY2VybiBhYm91dCB0aGUgRFQgbm9kZSBmb3IgdGhlIE1G RCBjaGlsZDogVGhlIGNsawpzdWJzeXN0ZW0gYW50aWNpcGF0ZXMgZXhhY3RseSB0aGF0IHBhdHRl cm4gYW5kIHVzZXMgZGV2LT5wYXJlbnQub2Zfbm9kZS4KClZlcnNpb24gMTI6CkltcHJvdmVtZW50 cyBvbiB0aGUgR1NNIGFuZCBMVEUgcmVsYXRlZCBjbG9ja3MuIFRoZSBHU00gY2xvY2tzIGluIDB4 NjgKYXJlIGV4cG9ydHMgZm9yIHlldCBhbm90aGVyIGNsb2NrIGNvbnRyb2xsZXIsIHdoaWNoIGlu IHR1cm4gZmVlZHMgYQpJbmZpbmVvbiBQTUI4ODc3IGJhc2VkIEdTTSBJUC4gVGhlIFNJTSBjYXJk IHJlYWRlciBpcyBhIHBhcnQgb2YgdGhpcywgc28KaXQgaXMgbmVjZXNzYXJ5IGhhcmR3YXJlIGV2 ZW4gaWYgb25lIGRvZXNuJ3QgY2FyZSBhYm91dCAyRyBuZXR3b3JrCmFjY2Vzcy4gVGhpcyB3b3Jr IGFsc28gdW5jb3ZlcmVkIG9uZSBvZiB0aGUgcHJldmlvdXNseSB1bmtub3duIGNsb2NrcyBpbgp0 aGUgMHgxNDAgZGlzdHJpYnV0aW9uIGdhdGVzLgoKVGhlIExQTV8qIGNsb2NrcyBoYXZlIG9zYzI2 bSBhcyB0aGVpciBwYXJlbnRzLiBJIGFsc28gdXBkYXRlZCB0aGUKY29tbWVudCBhIGJpdCB0byBy ZWZsZWN0IG5ldyBrbm93bGVkZ2UgSSBmb3VuZCB3aGVuIHBva2luZyBhdCBMVEUKc3VwcG9ydC4K ClZlcnNpb24gMTE6ClVuY2hhbmdlZAoKQFNhc2hpa286IEFzIGZhciBhcyBteSByZXZlcnNlIGVu Z2luZWVyaW5nIHVuZGVyc3RhbmRpbmcgZ29lcyBBSEJfUENMSwphbmQgQUhCX1dDTEsgaGF2ZSB0 aGUgY29ycmVjdCBwYXJlbnRzLiBXaXRoIEFIQl9XQ0xLIGdhdGVkIG9mZiBlaXRoZXIKZGlyZWN0 bHkgb3IgdmlhIG9uZSBvZiBpdHMgcGFyZW50cywgdGhlIFVTQiByZWdpc3RlcnMgYXJlIG5vIGxv bmdlcgpyZWFkYWJsZS4KCkFIQl9QQ0xLIG9uIHRoZSBvdGhlciBoYW5kIGlzIGNsb2NraW5nIHdo YXRldmVyIGhhcmR3YXJlIGlzIHJlc3BvbnNpYmxlCmZvciBldmVudHVhbGx5IHRyYW5zZmVycmlu ZyB0aGUgZGF0YSBmcm9tIHRoZSBBSEIvTTAvVVNCIHN1YnNlY3Rpb24gb2YKdGhlIGJvYXJkIHRv IEREUiByYW0sIHNvIGNsb2NraW5nIEFIQl9QQ0xLIGxvd2VyIGNhdXNlcyBsb3dlciBVU0IKdHJh bnNmZXIgc3BlZWRzLiBJdCBkb2Vzbid0IGFmZmVjdCB0aGUgVVNCIGNvbnRyb2xsZXIgZGlyZWN0 bHkgdGhvdWdoLgoKVmVyc2lvbiA5OgpMaW5rIGludGVybmFsIHBhcmVudHMgYnkgYW4gKGludGVy bmFsKSBjbG9jayBJRCByYXRoZXIgdGhhbiBuYW1lcy4KClRoZXJlIHNob3VsZCBiZSBubyBkaWZm ZXJlbmNlIGluIHRoZSBidWlsdCBjbG9jayB0cmVlIGNvbXBhcmVkIHRvClZlcnNpb24gOC4KClZl cnNpb24gODoKUmVuYW1lIHRoZSBleHBlY3RlZCBjbG9jayBuYW1lIG9mIHRoZSBmaXhlZCBvc2Np bGxhdG9ycyB0byBjbG9jay0yNm0gYW5kCmNsb2NrLTMyay4gU2FzaGlrbyBwb2ludGVkIG91dCB0 aGF0ICJvc2NYWG0iIGlzIGRlcHJlY2F0ZWQsIGFsdGhvdWdoCndpZGVzcHJlYWQgaW4gZXhpc3Rp bmcgZHJpdmVycy4KCkFkZCBhIGRlZmluZSBpbmRpcmVjdGlvbiBmb3IgdGhlIEFYSSBjYW5kaWRh dGU9Y3JpdGljYWwgcHJvdGVjdGlvbi4KV2hpbGUgaXQgaG9sZHMgdHJ1ZSBpbiBhIHN5c3RlbSB3 aXRoIHJ1bm5pbmcgcnByb2NzLCBJIGZpbmQgaXQgdXNlZnVsCmZvciBzdHJlc3MgdGVzdGluZyB0 aGUgY2xvY2sgdHJlZSB0byBkaXNhYmxlIGl0LgoKRG91YmxlLWNoZWNrZWQgcGNsayBhbmQgd2Ns ayBiaXRzLCBmaXhlZCBpbmNvcnJlY3QgYXNzaWdubWVudHMgaW4KcmVnaXN0ZXIgMHg1NC4KClZl cnNpb24gNzoKClRoZSByZWdpc3RlciBhdCB0b3ArMHgxNDAgY29udGFpbnMgYSBzZXJpZXMgb2Yg Z2F0ZXMgdGhhdCBjb250cm9sIFBMTAppbnB1dCBpbnRvIHRoZSB0b3AgY29udHJvbGxlciBhbmQg UExMIGFuZCBvc2MyNm0gd29yayBjbG9jayBmb3J3YXJkIGludG8KbWF0cml4LiBUaGlzIGFsbG93 ZWQgZnVydGhlciBpbnNpZ2h0IGludG8gdGhlIGNsb2NrIHRyZWUuCgpUaGUgUExMIHN1YmRpdmlz aW9uIGxpc3Qgd2FzIHJlcGxhY2VkIHdpdGggZml4ZWQgZmFjdG9yIGNsb2NrcyB0aGF0CmRpdmlk ZSBQTExzIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGlucHV0IGdhdGUgKGFuZCBzb21lIGZpeGVkIGZh Y3RvciBkaXZzCmdvIGludG8gbWF0cml4IGluIHRoZSBuZXh0IHBhdGNoKS4gVGhlIG51bWJlciBv ZiBjbG9ja3MgZXhwb3J0ZWQgdG8KTWF0cml4IGlzIGFjdHVhbGx5IHJlbGF0aXZlbHkgc21hbGwu CgpBcyBmb3IgU2FzaGlrbydzIHN1Z2dlc3Rpb24gYWJvdXQgb3V0IG9mIGJvdW5kIHBhcmVudHMg Zm9yIGRwbGwgYW5kCnVua25vd25wbGw6IEkgaGF2ZSBuZXZlciBzZWVuIGEgcGFyZW50ICE9IDAu IElmIHRoYXQgaGFwcGVucyBvbiBhIGRldmljZQpJIHdhbnQgdG8ga25vdyBhYm91dCBpdC4gQXQg dGhpcyBzdGFnZSBvZiBkZXZlbG9wbWVudCBJJ2QgcmF0aGVyIGhhdmUKY2xlYXJseSB2aXNpYmxl IG9ycGhhbmVkIGNsb2NrIHRoYW4gc2lsZW50bHkgY29udGludWluZyBhdCBhbiB1bmV4cGVjdGVk CmZyZXF1ZW5jeS4KCiJvc2MyNm0iIC0+ICJjbG9jay0yNm0iIGFzICJvc2NYWCIsIGFsdGhvdWdo IHdpZGVzcHJlYWQsIGlzIGRlcHJlY2F0ZWQuCkluIGRvaW5nIHNvLCBjaGFuZ2UgdW5kZXJzY29y ZXMgaW4gY2xvY2sgbmFtZXMgdG8gZGFzaGVzIChTYXNoaWtvKS4KClZlcnNpb24gNToKCiopIE1h a2UgaXQgYSBNRkQgY2hpbGQgZHJpdmVyIGluc3RlYWQgb2YgYmluZGluZyB0byB0aGUgbm9kZSBk aXJlY3RseQoqKSBDb3JyZWN0IHBhcmVudHMgZm9yIGRwbGwKKikgQ29ycmVjdCBIU0lDIHdvcmsg Y2xvY2sgcGFyZW50Ci0tLQogZHJpdmVycy9jbGsvenRlL0tjb25maWcgICAgICAgICAgfCAgMTEg KwogZHJpdmVycy9jbGsvenRlL01ha2VmaWxlICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9jbGsv enRlL2Nsay16eDI5NzUyMHYzLmMgfCA4NDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDg1OCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9jbGsvenRlL0tjb25maWcgYi9kcml2ZXJzL2Nsay96dGUvS2NvbmZpZwppbmRl eCAxNTJjMjQyM2I4ZjAuLjBjY2M2ZWRmM2M1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvenRl L0tjb25maWcKKysrIGIvZHJpdmVycy9jbGsvenRlL0tjb25maWcKQEAgLTE1LDMgKzE1LDE0IEBA IGNvbmZpZyBDT01NT05fQ0xLX1pURQogCSAgb2YgdGhpcy4KIAogCSAgRW5hYmxlIHRoaXMgaWYg eW91IGFyZSBidWlsZGluZyBhIGtlcm5lbCBmb3IgYSBaVEUgZGVzaWduZWQgYm9hcmQuCisKK2Nv bmZpZyBDTEtfWlRFX1pYMjk3NTIwVjMKKwl0cmlzdGF0ZSAiQ2xvY2sgZHJpdmVyIGZvciBaVEUg engyOTc1MjB2MyBiYXNlZCBTb0NzIgorCWRlcGVuZHMgb24gQ09NTU9OX0NMS19aVEUgJiYgKE1G RF9aVEVfWlgyOTc1MjBWM19DUk0gfHwgQ09NUElMRV9URVNUKQorCWRlZmF1bHQgU09DX1pYMjk3 NTIwVjMKKwloZWxwCisJICBUaGlzIGRyaXZlciBzdXBwb3J0cyBaVEUgengyOTc1MjB2MyBiYXNp YyBjbG9ja3MuCisKKwkgIEVuYWJsZSB0aGlzIGlmIHlvdSB3YW50IHRvIGJ1aWxkIGEga2VybmVs IHRoYXQgaXMgYWJsZSB0byBydW4gb24KKwkgIGJvYXJkcyBiYXNlZCBvbiB0aGlzIFNvQy4gWW91 IGNhbiBzYWZlbHkgZW5hYmxlIG11bHRpcGxlIGNsb2NrCisJICBkcml2ZXJzLiBUaGUgb25lKHMp IG1hdGNoaW5nIHRoZSBkZXZpY2UgdHJlZSB3aWxsIGJlIHVzZWQuCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2Nsay96dGUvTWFrZWZpbGUgYi9kcml2ZXJzL2Nsay96dGUvTWFrZWZpbGUKaW5kZXggMjdk YjA3MjkzMTY1Li4yYzA3MzUxMmU5MTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3p0ZS9NYWtl ZmlsZQorKysgYi9kcml2ZXJzL2Nsay96dGUvTWFrZWZpbGUKQEAgLTEsNSArMSw2IEBACiAjIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKIAogb2JqLSQoQ09ORklHX0NPTU1P Tl9DTEtfWlRFKSArPSBjbGstenRlLm8KK29iai0kKENPTkZJR19DTEtfWlRFX1pYMjk3NTIwVjMp ICs9IGNsay16eDI5NzUyMHYzLm8KIAogY2xrLXp0ZS15ICs9IGNsay16eC5vIHBsbC16eC5vIGNs ay1yZWdtYXAubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvenRlL2Nsay16eDI5NzUyMHYzLmMg Yi9kcml2ZXJzL2Nsay96dGUvY2xrLXp4Mjk3NTIwdjMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjY4YmZlYWI4NGQ3NAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZl cnMvY2xrL3p0ZS9jbGstengyOTc1MjB2My5jCkBAIC0wLDAgKzEsODQ2IEBACisvLyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisvKgorICogQ29weXJpZ2h0IChDKSAyMDI2 IFN0ZWZhbiBEw7ZzaW5nZXIKKyAqCisgKiBUaGVyZSBhcmUgbm8gcHVibGljIGRhdGFzaGVldHMg Zm9yIHp4Mjk3NTIwdjMuIFRoZSBjb250cm9scyBvbiB0aGlzIGNsb2NrIGNvbnRyb2xsZXIgaGF2 ZSBiZWVuCisgKiBleHRyYWN0ZWQgZnJvbSBaVEUncyBrZXJuZWwgYW5kIFUtQm9vdCBzb3VyY2Vz IGFuZCBhIExPVCBvZiBtYW51YWwgdGVzdGluZy4gU29tZSBjbG9ja3MgY2FuIGJlCisgKiBmb3Vu ZCBpbiB0aGUgcG93ZXIgbWFuYWdlbWVudCAoZXZiX2NwdXJwbS5pbWcpIGFuZCBMVEUgKGNwa28u a28pIGJsb2JzIHNoaXBwZWQgd2l0aCB0aGUgcm91dGVycy4KKyAqCisgKiBCZWNhdXNlIFpURSdz IHNvdXJjZXMgYXJlIHdyb25nIG9yIG1pc2xlYWRpbmcgaW4gc29tZSBwYXJ0cyBhbmQgdGVzdGlu ZyBjYW4gYmUgbWlzaW50ZXJwcmV0ZWQsCisgKiB0aGlzIGZpbGUgY29udGFpbnMgYSBMT1Qgb2Yg Y29tbWVudHMgb24gaG93IHBhcnRpY3VsYXIgY2xvY2tzIHdlcmUgdGVzdGVkIGFuZCBob3cgdGhl IGltcGFjdCBvZgorICogY2hhbmdlcyB0byB0aGVtIGNhbiBiZSBvYnNlcnZlZC4KKyAqLworCisj aW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svenRlLHp4Mjk3NTIwdjMtY2xrLmg+CisjaW5jbHVk ZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxs aW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKyNpbmNs dWRlIDxsaW51eC90eXBlcy5oPgorCisjaW5jbHVkZSAiY2xrLXp4LmgiCisKK01PRFVMRV9JTVBP UlRfTlMoIlpURV9DTEsiKTsKKworLyoKKyAqIEFYSSBzcGVlZCBpcyBlaXRoZXIgZGV0ZXJtaW5l ZCBieSBhIGZpeGVkIHNlbGVjdGlvbiBpbiBtYXRyaXgrMHgwLCBiaXRzIDA6MiBvciBieSBhIHZv dGluZyBzeXN0ZW0KKyAqIHdpdGggYmFsbG90cyBpbiBtYXRyaXgrMHgxMjAsIDB4MTI0LCAweDEy OC4gVGhlIHZvdGluZyBzeXN0ZW0gaXMgZW5hYmxlZCBieSBzZXR0aW5nIG1hdHJpeCAweDEyYwor ICogdG8gMS4gT3RoZXJ3aXNlIHRoZSBzZWxlY3Rpb24gaW4gMHgwIGFwcGxpZXMuCisgKgorICog VGhlIGZhc3Rlc3Qgc2VsZWN0ZWQgc3BlZWQgd2lucy4gVGhpcyBob2xkcyB0cnVlIGZvciB2YWx1 ZXMgMCAoMjYgTUh6KSBhbmQgNyAoNi41IE1IeikgdG9vLCBzbyBpdAorICogaXNuJ3QgYSBjYXNl IG9mIGxvd2VzdCBzZWxlY3RvciB3aW5zLiBJIGhhdmVuJ3QgdGVzdGVkIHdoYXQgaGFwcGVucyBp ZiBtcGxsIGlzIGNoYW5nZWQgdG8gb3V0cHV0CisgKiA1eCB0aGUgbm9ybWFsIGNsb2NrLCBzbyA3 IGJlYXRzIDAuIFByZXN1bWFibHkgdmFsdWUgMCB3b3VsZCBzdGlsbCB3aW4gdGhlIGVsZWN0aW9u LgorICoKKyAqIEFYSSBzcGVlZCA2LjUgaXMgYSBjaGlsZCBvZiBtYXRyaXgtb3NjMjZtLCBub3Qg YSBQTEwuIFRoaXMgY2FuIGJlIHNlZW4gYnkgZ2F0aW5nIGl0IG9mZiBpbgorICogdG9wY3JtKzB4 MTQwLgorICoKKyAqIFRoZSBzeXN0ZW0gaW5pdGlhbGl6ZXMgd2l0aCB2b3RpbmcgZGlzYWJsZWQg YW5kIGFsbCBwcmVmZXJlbmNlcyBzZXQgdG8gdGhlIGxvd2VzdCBzZXR0aW5nLCA3LgorICogVGhl IHp4Mjk3NTIwdjNfbWF0cml4X2luaXQgZnVuY3Rpb24gdHJhbnNmZXJzIHRoZSBnbG9iYWwgbXV4 IHRvIG91ciB2b3RlIGFuZCBlbmFibGVzIHZvdGluZy4KKyAqCisgKiBCZWNhdXNlIHJwcm9jcyBt YXkgY2hhbmdlIHRoZWlyIHNlbGVjdGlvbiB3aXRob3V0IG5vdGljZSwgYWxsIHBvc3NpYmxlIHBh cmVudHMgb2YgdGhlIEFYSSBtdXggYXJlCisgKiBtYXJrZWQgY3JpdGljYWwuIFRoaXMgY2FuIGhv d2V2ZXIgb2JzY3VyZSBidWdzIGluIHRoZSBjbG9jayB0cmVlLiBEZWZpbmUgWlgyOTc1MjBWM19B WElfQ0FORElEQVRFCisgKiB0byAwIHRvIGRpc2FibGUgdGhpcyBwcm90ZWN0aW9uIGZvciB0ZXN0 aW5nIGFuZCBlaXRoZXIgbm90IHJ1biBhbnl0aGluZyBvbiB0aGUgcnByb2NzIG9yIG1ha2UKKyAq IHN1cmUgTGludXggdm90ZXMgZm9yIHRoZSBmYXN0ZXN0IHJhdGUuCisgKi8KKyNkZWZpbmUgWlgy OTc1MjBWM19BWElfQ0FORElEQVRFIENMS19JU19DUklUSUNBTAorCisvKgorICogVG9wIGFuZCBt YXRyaXggY2xvY2tzIGFyZSBjaGFvdGljIC0gSSBoYXZlbid0IGZvdW5kIGEgY29uc2lzdGVudCBw YXR0ZXJuIGJlaGluZCB0aGVpciByZWdpc3RlcgorICogYW5kIGJpdCBsb2NhdGlvbnMuIEdlbmVy YWxseSB0aGVyZSBhcmUgdHdvIGdhdGVzIChwY2xrLCB3Y2xrKSwgb25lIG11eCwgdHdvIHJlc2V0 cyBhbmQgc29tZXRpbWVzCisgKiBvbmUgZGl2aWRlciwgYnV0IGV4Y2VwdGlvbnMgYXBwbHkuIEZv ciBzb21lIGRldmljZXMgdGhlcmUgaXMgb25seSBhIHJlc2V0IGFuZCBzb21lIGdlbmVyYWwKKyAq IChwYXJlbnQpIGNsb2NrcyBuZWVkIHNldHVwLiBUaGlzIHN0cnVjdHVyZSBwbHVzIG1hY3JvIGhh bmRsZXMgdGhlIHNvbWV3aGF0IHJlZ3VsYXIgcGFydHMuCisgKgorICogVGhlcmUgYXJlIHNvbWUg cGF0dGVybnMgdGhhdCBjYW4gYmUgb2JzZXJ2ZWQuCisgKiBtdXggMHgzYywgZGl2IDB4NDgsIGdh dGUgMHg1NAorICogbXV4IDB4NDAsIGRpdiAweDRjLCBnYXRlIDB4NWMKKyAqIG11eCAweDQ0LCBk aXYgMHg1MCwgZ2F0ZSAweDYwCisgKgorICogRm9yIGEgMCAtIDB4YyAtIDB4MTggcGF0dGVybi4g TXV4ZXMgZnJvbSAweDNjIHRvIDB4NDQsIGRpdmlkZXJzIGZyb20gMHg0OCB0byAweDUwLCBnYXRl cyAweDU0IHRvCisgKiAweDYwLiBUaGUgcGF0dGVybiBpcyBicm9rZW4gZm9yIHRpbWVyIHQxNyB0 aG91Z2guCisgKgorICogR2F0ZXMgaGF2ZSA0IGJpdHMgcGVyIGNsb2NrIC0gdXN1YWxseSwgYnV0 IG5vdCBhbHdheXMsIGJpdCAwIGZvciB3Y2xrLCBiaXQgMSBmb3IgcGNsaywgYml0IDIgZm9yCisg KiBzb21ldGhpbmcgdGhlIFpURSBrZXJuZWwgY2FsbHMgImdhdGUiICh0aGUgYml0cyB3ZSB1c2Ug aGVyZSBhcmUgY2FsbGVkICJlbiIpLCB3aGljaCBwcmVzdW1hYmx5CisgKiBlbmFibGVzIGF1dG9t YXRpYyBjbG9jayBnYXRpbmcuIEJpdCAzLCBpZiBzZXR0YWJsZSwgc2VlbXMgdW51c2VkLiBFLmcu IG9mZnNldCAweDU0IGFjY2VwdHMgYWxsCisgKiBiaXRzIGluIDB4Rjc3RjdGN0YgLSBzdWdnZXN0 aW5nIFJUQywgSTJDMCBoYXZlIGFuIGV4dHJhIGdhdGUgYml0LgorICoKKyAqIFRoZSBkZWZhdWx0 IG1wbGwgc2V0dGluZ3MgbXVsdGlwbHkgdGhlIDI2IE1IeiByZWZlcmVuY2UgY2xvY2sgdGltZXMg MjQuIEEgbXV4IHNlbGVjdGlvbiBvZiAyNiBNSHoKKyAqIGNvdWxkIG1lYW4gdXNpbmcgdGhlIDI2 IE1IeiBvc2NpbGxhdG9yIGRpcmVjdGx5LCBvciBwYXNzaW5nIGl0IHRocm91Z2ggdGhlIFBMTCBh bmQgZGl2aWRlIGJ5IDI0LgorICoKKyAqIElmIGEgVUFSVCBpcyBzZXQgdG8gbXBsbC1kNiAoZGVm YXVsdCAxMDQgTUh6KSwgY2hhbmdpbmcgdGhlIG1wbGwgbXVsdGlwbGllcnMgZG9lcyBhZmZlY3Qg VUFSVAorICogdGltaW5nIGFzIGl0IHNob3VsZC4gVGhpcyBkb2VzIG5vdCBoYXBwZW4gd2hlbiB0 aGUgVUFSVCBpcyBzZXQgdG8gMjYgTUh6IGlucHV0IG9yIHRpbWVycyB0aGF0CisgKiByZWFkIDI2 IE1IeiBpbnB1dC4gVGhpcyBzdWdnZXN0cyAyNiBNSHogY2xvY2tzIHVzZSB0aGUgcmVmZXJlbmNl IGNsb2NrIGRpcmVjdGx5LgorICoKKyAqIFRoZSBnZW5lcmFsIGNsb2NrIGZsb3cgb24gdGhpcyBi b2FyZCBnb2VzIGZyb20gb3NjMjZtIGludG8gdGhlIFBMTHMuIFRoZSBQTEwgb3V0cHV0IGlzCisg KiBicmFuY2hlZCBpbnRvIGEgc21hbGwgbnVtYmVyIG9mIGRpdmlkZWQgZnJlcXVlbmNpZXMgKG1w bGwsIG1wbGwtZDQsIG1wbGwtZDUsIG1wbGwtZDYsIG1wbGwtZDgsCisgKiBncGxsLCBncGxsLWQy LCBncGxsLWQ0KSBhdCBhIGhpZ2ggbGV2ZWwuIFRoZXNlIGRpdmlkZWQgZnJlcXVlbmNpZXMgYXMg d2VsbCBhcyBvc2MyNm0gZ28KKyAqIHRocm91Z2ggYSBzZXJpZXMgb2YgZ2F0ZXMgYXQgb2Zmc2V0 IDB4MTQwIGluIHRvcGNybS4gVGhlIG91dHB1dCBvZiB0aGVzZSBnYXRlcyBwcm92aWRlIHdjbGtz IGZvcgorICogZXZlcnl0aGluZy4KKyAqCisgKiBBdCBsZWFzdCAzIG9mIHRob3NlIGdhdGUgb3V0 cHV0cyAobXBsbCwgZHBsbCwgZ3BsbC1kMikgYXJlIGZ1cnRoZXIgZGl2aWRlZCBiZWhpbmQgdGhv c2UgZ2F0ZXMsCisgKiBwcmVzdW1hYmx5IGluIHRoZSBtYXRyaXggY29udHJvbGxlci4gVGhlcmUg YXJlIG11bHRpcGxlIHBhdGhzIGhvdyAxMDQgYW5kIDc4IE1IeiBhcmUgZGVyaXZlZCwKKyAqIHNv bWUgc3BlY2lmaWMgdG8gdG9wY3JtICgweDE0MCBiaXRzIDEgYW5kIDQpLCBzb21lIHNwZWNpZmlj IHRvIG1hdHJpeCAoMHgxNDAgYml0IDkpLiBUaGVyZSBhcmUKKyAqIGxpa2VseSAzICJjb3BpZXMi IG9mIHRoZSA3OCBNSHogY2xvY2sgYW5kIHR3byA1MCBNSHogb25lcy4KKyAqCisgKiBQY2xrIGlz IG5vdCBnYXRlZCBieSB0aGUgMHgxNDAgZ2F0ZXMgYXQgYWxsLiBMaWtld2lzZSBvc2MzMmsgaXMg ZmVkIHRvIHRoZSB0aW1lcnMgd2l0aG91dAorICogcGFzc2luZyB0aHJvdWdoIHRoaXMgZ2F0ZSwg ZXZlbiBmb3IgY29uc3VtZXJzIG9uIG1hdHJpeC9MU1AuIFRvcGNybSBvc2MyNm0gd2Nsa3MgYXJl IG5vdCBnYXRlZAorICogZWl0aGVyLCBidXQgdG9wLWNvbnN1bWVkIFBMTCBjbG9ja3MgYXJlLgor ICovCisKK2VudW0gdG9wX2Nsb2NrX2lkcyB7CisJWlhfQ0xLX01QTEwsCisJWlhfQ0xLX1VQTEws CisJWlhfQ0xLX0RQTEwyLAorCVpYX0NMS19EUExMMl9EMiwKKwlaWF9DTEtfRFBMTCwKKwlaWF9D TEtfR1BMTCwKKworCVpYX0NMS19PU0MyNk1fRDIsCisJWlhfQ0xLX1RPUF9NUExMX0QyX1BSRUdB VEUsCisJWlhfQ0xLX1RPUF9NUExMX0Q0X1BSRUdBVEUsCisJWlhfQ0xLX1RPUF9NUExMX0Q1X1BS RUdBVEUsCisJWlhfQ0xLX1RPUF9NUExMX0Q2X1BSRUdBVEUsCisJWlhfQ0xLX1RPUF9NUExMX0Q4 X1BSRUdBVEUsCisJWlhfQ0xLX1RPUF9VUExMX0QxMl9QUkVHQVRFLAorCVpYX0NMS19UT1BfR1BM TF9EMl9QUkVHQVRFLAorCVpYX0NMS19UT1BfR1BMTF9ENF9QUkVHQVRFLAorCisJWlhfQ0xLX1RP UF9NUExMX0QyLAorCVpYX0NMS19UT1BfTVBMTF9EOCwKKwlaWF9DTEtfVE9QX01QTExfRDYsCisJ WlhfQ0xLX1RPUF9NUExMX0Q0LAorCVpYX0NMS19UT01BVFJJWF9NUExMX0Q1LAorCVpYX0NMS19U T01BVFJJWF9NUExMLAorCVpYX0NMS19UT01BVFJJWF9EUExMLAorCVpYX0NMS19UT1BfVVBMTF9E MTIsCisJWlhfQ0xLX1RPUF9VUExMLAorCVpYX0NMS19UT1BfR1BMTF9ENCwKKwlaWF9DTEtfVE9N QVRSSVhfR1BMTF9EMiwKKwlaWF9DTEtfVE9NQVRSSVhfR1BMTCwKKwlaWF9DTEtfVE9NQVRSSVhf T1NDMjZNLAorCisJWlhfQ0xLX1RPUF9NUExMX0QyX0Q0LAorCVpYX0NMS19UT1BfTVBMTF9EMl9E MTMsCisJWlhfQ0xLX1RPUF9VUExMX0QxMl9EMiwKKwlaWF9DTEtfVE9QX0dQTExfRDRfRDIsCisK KwlaWF9DTEtfTTBfTVVYLAorCVpYX0NMS19BSEJfTVVYLAorCVpYX0NMS19USU1FUl9UMDhfTVVY LAorCVpYX0NMS19USU1FUl9UMDlfTVVYLAorCVpYX0NMS19USU1FUl9UMTJfTVVYLAorCVpYX0NM S19USU1FUl9UMTNfTVVYLAorCVpYX0NMS19USU1FUl9UMTRfTVVYLAorCVpYX0NMS19USU1FUl9U MTVfTVVYLAorCVpYX0NMS19USU1FUl9UMTZfTVVYLAorCVpYX0NMS19USU1FUl9UMTdfTVVYLAor CVpYX0NMS19XRFRfVDE4X01VWCwKKwlaWF9DTEtfSTJDMF9NVVgsCisJWlhfQ0xLX1VBUlQwX01V WCwKKwlaWF9DTEtfT1VUMF9NVVgsCisJWlhfQ0xLX09VVDFfTVVYLAorCVpYX0NMS19PVVQyX01V WCwKKwlaWF9DTEtfUk1JSVBIWV9NVVgsCisKKwlaWF9DTEtfVElNRVJfVDA4X0RJViwKKwlaWF9D TEtfVElNRVJfVDA5X0RJViwKKwlaWF9DTEtfVElNRVJfVDEyX0RJViwKKwlaWF9DTEtfVElNRVJf VDEzX0RJViwKKwlaWF9DTEtfVElNRVJfVDE0X0RJViwKKwlaWF9DTEtfVElNRVJfVDE1X0RJViwK KwlaWF9DTEtfVElNRVJfVDE2X0RJViwKKwlaWF9DTEtfVElNRVJfVDE3X0RJViwKKwlaWF9DTEtf V0RUX1QxOF9ESVYsCisJWlhfQ0xLX1VTSU0xX0RJViwKKworCVpYX0NMS19BSEJfUENMSywKKwla WF9DTEtfQUhCX1dDTEssCisJWlhfQ0xLX1NSQU0xX1BDTEssCisJWlhfQ0xLX1NSQU0yX1BDTEss CisJWlhfQ0xLX1BNTV9XQ0xLLAorCVpYX0NMS19QTU1fUENMSywKKwlaWF9DTEtfVElNRVJfVDA4 X1dDTEssCisJWlhfQ0xLX1RJTUVSX1QwOF9QQ0xLLAorCVpYX0NMS19USU1FUl9UMDlfV0NMSywK KwlaWF9DTEtfVElNRVJfVDA5X1BDTEssCisJWlhfQ0xLX1RJTUVSX1QxMl9XQ0xLLAorCVpYX0NM S19USU1FUl9UMTJfUENMSywKKwlaWF9DTEtfVElNRVJfVDEzX1dDTEssCisJWlhfQ0xLX1RJTUVS X1QxM19QQ0xLLAorCVpYX0NMS19USU1FUl9UMTRfV0NMSywKKwlaWF9DTEtfVElNRVJfVDE0X1BD TEssCisJWlhfQ0xLX1RJTUVSX1QxNV9XQ0xLLAorCVpYX0NMS19USU1FUl9UMTVfUENMSywKKwla WF9DTEtfVElNRVJfVDE2X1dDTEssCisJWlhfQ0xLX1RJTUVSX1QxNl9QQ0xLLAorCVpYX0NMS19U SU1FUl9UMTdfV0NMSywKKwlaWF9DTEtfVElNRVJfVDE3X1BDTEssCisJWlhfQ0xLX1dEVF9UMThf V0NMSywKKwlaWF9DTEtfV0RUX1QxOF9QQ0xLLAorCVpYX0NMS19JMkMwX1dDTEssCisJWlhfQ0xL X0kyQzBfUENMSywKKwlaWF9DTEtfVUFSVDBfV0NMSywKKwlaWF9DTEtfVUFSVDBfUENMSywKKwla WF9DTEtfVVNCX1dDTEssCisJWlhfQ0xLX1VTQl9QQ0xLLAorCVpYX0NMS19IU0lDX1dDTEssCisJ WlhfQ0xLX0hTSUNfUENMSywKKwlaWF9DTEtfUlRDX1dDTEssCisJWlhfQ0xLX1JUQ19QQ0xLLAor CVpYX0NMS19VU0lNMV9XQ0xLLAorCVpYX0NMS19VU0lNMV9QQ0xLLAorCVpYX0NMS19MUE1fR1NN X1dDTEssCisJWlhfQ0xLX0xQTV9HU01fUENMSywKKwlaWF9DTEtfTFBNX0xURV9XQ0xLLAorCVpY X0NMS19MUE1fTFRFX1BDTEssCisJWlhfQ0xLX0xQTV9URF9XQ0xLLAorCVpYX0NMS19MUE1fVERf UENMSywKKwlaWF9DTEtfTFBNX1dfV0NMSywKKwlaWF9DTEtfTFBNX1dfUENMSywKKwlaWF9DTEtf T1VUMF9XQ0xLLAorCVpYX0NMS19PVVQxX1dDTEssCisJWlhfQ0xLX09VVDJfV0NMSywKKwlaWF9D TEtfT1VUMzJLX1dDTEssCisJWlhfQ0xLX1JNSUlQSFlfV0NMSywKKwlaWF9DTEtfR1NNXzMySywK KwlaWF9DTEtfR1NNXzI2TSwKKwlaWF9DTEtfR1NNXzQ4TSwKKwlaWF9DTEtfR1NNXzEwNE0sCisJ WlhfQ0xLX0dTTV8xNTZNLAorCVpYX0NMS19BQkJfV0NMSywKK307CisKKy8qIFVzZWQgZm9yIGdh dGVzIHdoZXJlIHdlIGRvbid0IGtub3cgdGhlIHBhcmVudCBpbnB1dChzKS4gQXNzdW1lIGdlbmVy YWwgb3NjaWxsYXRvciAqLworc3RhdGljIGNvbnN0IHN0cnVjdCB6eF9wYXJlbnRfZGVzYyBjbGtf dW5rbm93biA9IFBBUkVOVF9GVygib3NjMjZtIik7CisKKy8qIEZvciBjbG9ja3MgdGhhdCBhcmUg a25vd24gdG8gdXNlIHRoZSB1bmdhdGVkIG9zYzI2bSBpbnB1dCAqLworc3RhdGljIGNvbnN0IHN0 cnVjdCB6eF9wYXJlbnRfZGVzYyBjbGtfbWFpbltdID0geworCVBBUkVOVF9GVygib3NjMjZtIiks Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHp4X3BhcmVudF9kZXNjIGRwbGxfcGFyZW50c1td ID0geworCVBBUkVOVF9JRChaWF9DTEtfRFBMTDJfRDIpLAorCVBBUkVOVF9GVygib3NjMjZtIiks Cit9OworCisvKgorICogQUhCOiBUaGUgY2xvY2sgbXV4IHdvcmtzIGFuZCBpbXBhY3QgY2FuIGJl IHRlc3RlZCBlLmcuIHdpdGggaXBlcmYgc3BlZWQgdGVzdGluZyBvZiB0aGUgVVNCCisgKiBuZXR3 b3JrIGNvbm5lY3Rpb24uIFZhbHVlcyAyIGFuZCAzIGdpdmUgdGhlIHNhbWUgc3BlZWQgYW5kIGRl cGVuZCBvbiB0aGUgc2FtZSBiaXQgKDMpIGluIDB4MTQwLgorICogVGhlIG1wbGwtZDYgcmF0ZSBp cyBnYXRlZCBvZmYgYnkgdGhlIHNhbWUgYml0IGluIDB4MTQwIGFzIG0wJ3MgbXBsbC1kNiwgYnV0 IHRoZSBkOCBpcyBkaWZmZXJlbnQuCisgKiBUaGlzIG1heSBpbmRpY2F0ZSB0aGF0IG9uZSBvZiB0 aGUgdHdvIHVzZXMgYSBkaWZmZXJlbnQgY2xvY2sgcmF0ZSB0aGFuIGRvY3VtZW50ZWQgaW4gWlRF J3MKKyAqIGtlcm5lbC4gVGhlIE0wIHNwZWVkIGlzIGVhc3kgdG8gbWVhc3VyZSwgc28gSSBhbSBj b25maWRlbnQgaW4gdGhlIE0wJ3MgNzggTUh6IHJhdGUuIEFIQiBsb29rcworICogbGlrZSA3OCBy YXRoZXIgdGhhbiA1MiwgYnV0IGNvbmZpZGVuY2UgaXMgbG93ZXIgYmVjYXVzZSBSQU0gcmVhZCB0 ZXN0cyBhcmUgaW5mbHVlbmNlZCBieSBDUFUKKyAqIG92ZXJoZWFkIHRvby4KKyAqLworCitzdGF0 aWMgY29uc3Qgc3RydWN0IHp4X3BhcmVudF9kZXNjIGFoYl9zZWxbXSA9IHsKKwlQQVJFTlRfRlco Im9zYzI2bSIpLAorCVBBUkVOVF9JRChaWF9DTEtfVE9QX01QTExfRDYpLAkvKiAxMDQgTUh6ICov CisJUEFSRU5UX0lEKFpYX0NMS19UT1BfTVBMTF9EOCksCS8qIDc4IE1IeiAqLworCVBBUkVOVF9J RChaWF9DTEtfVE9QX01QTExfRDgpLAkvKiA3OCBNSHogKi8KK307CisKK3N0YXRpYyBjb25zdCBz dHJ1Y3QgenhfcGFyZW50X2Rlc2MgdGltZXJfdG9wX3NlbFtdID0geworCVBBUkVOVF9GVygib3Nj MzJrIiksCisJUEFSRU5UX0ZXKCJvc2MyNm0iKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg enhfcGFyZW50X2Rlc2MgdWFydF90b3Bfc2VsW10gPSB7CisJUEFSRU5UX0ZXKCJvc2MyNm0iKSwK KwlQQVJFTlRfSUQoWlhfQ0xLX1RPUF9NUExMX0Q2KSwJLyogMTA0IE1Ieiwgc2hhcmluZyBNMCdz IGFuZCBhaGIncyAweDE0MCBnYXRlICovCit9OworCisvKgorICogVGhlIENvcnRleCBNMCBjb3By b2Nlc3Nvci4gSXQgaXMgcmVzcG9uc2libGUgZm9yIGJvb3RpbmcgdGhlIGJvYXJkIGFuZCBydW5z IHNvbWUgcG93ZXIgbWFuYWdlbWVudAorICogaGVscGVyIGNvZGUgb24gdGhlIHN0b2NrIGZpcm13 YXJlLiBUaGUgTTAgcnByb2MgaXRzZWxmIGlzIG5vdCBjcml0aWNhbCwgYnV0IG1vc3Qgb2YgdG9w Y3JtJ3MKKyAqIHJlZ2lzdGVycyBiZWNvbWUgdW5yZWFkYWJsZSBpZiB0aGlzIGlzIGdhdGVkIG9m ZiBvciBiZWNvbWUgc2xvdyB3aGVuIGNsb2NrZWQgYXQgMzIga0h6LCBlLmcuIEdQSU8KKyAqIGJl Y29tZXMgYm9yZGVybGluZSB1bnVzYWJsZSBhdCAzMiBrSHouCisgKgorICogVGhlcmUgaXMgbm8g ZGVkaWNhdGVkIE0wIGdhdGUuIERpc2FibGluZyBhaGItd2NsayBsb29rcyBsaWtlIHRoZSBNMCBz dG9wcyBmcm9tIEE1MydzIHBvaW50IG9mCisgKiB2aWV3LCBidXQgaXQgbWVyZWx5IGJyZWFrcyB0 aGUgQTUzJ3MgYWJpbGl0eSB0byBjb21tdW5pY2F0ZSB3aXRoIGl0LCBhbmQgTTAncyBhYmlsaXR5 IHRvCisgKiBjb21tdW5pY2F0ZSB3aXRoIHRoZSBzdGFuZGFyZCBVQVJUIG9uIExTUC4gTTAga2Vl cHMgcnVubmluZyB3aXRoIGJvdGggYWhiLXdjbGsgYW5kIGFoYi1wY2xrCisgKiBnYXRlZCBvZmYg YW5kIGNhbiByZS1lbmFibGUgdGhlIGdhdGVzLgorICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHp4 X3BhcmVudF9kZXNjIG0wX3NlbFtdID0geworCVBBUkVOVF9GVygib3NjMjZtIiksCisJUEFSRU5U X0lEKFpYX0NMS19UT1BfTVBMTF9ENiksCQkvKiAxMDQgTUh6ICovCisJUEFSRU5UX0lEKFpYX0NM S19UT1BfTVBMTF9EMl9ENCksCS8qIDc4IE1IeiwgYnV0IGRpZmZlcmVudCBnYXRlIHRoYW4gdGhl IGFoYiA3OCBNSHogKi8KKwlQQVJFTlRfRlcoIm9zYzMyayIpLAkJCS8qIFllcywgdGVzdGVkLiBJ dCBpcyBTTExMTE9PT09PV1dXLiAqLworfTsKKworLyoKKyAqIENsay1vdXQwLzEvMi8zMms6IFRo ZXNlIGNsb2NrcyBhcmUgZXhwb3NlZCBvbiBHUElPcyAxNSwgMTYsIDE3IGFuZCAxOCByZXNwZWN0 aXZlbHkuIFRoZXkgYXJlIHVzZWQKKyAqIGluIFpURSdzIGNhbWVyYSBhbmQgc291bmQgY29kZSwg YnkgZGlyZWN0bHkgcG9raW5nIGludG8gdGhlIGNsb2NrIHJlZ2lzdGVycyBmcm9tIHRoZSBkZXZp Y2UKKyAqIGRyaXZlcnMuIFVudGlsIHRoZSByZXNwZWN0aXZlIGRldmljZXMgYXJlIHN1cHBvcnRl ZCB0aGV5IGNhbiBzYWZlbHkgYmUgc3dpdGNoZWQgb2ZmLgorICoKKyAqIEZvciBjbGstb3V0MSBa VEUncyBjYW1lcmEgY29kZSBzYXlzIHRoZSBmb2xsb3dpbmc6CisgKgorICogMCAtPiAyMCBNSHoK KyAqIDEgLT4gNDAgTUh6CisgKiAyIC0+IDEzIE1IegorICogMyAtPiAyNiBNSHoKKyAqCisgKiAw IGFuZCAxIHJlYWQgZnJvbSB1cGxsLiBJIGNvbmZpcm1lZCB0aGVpciByYXRlcyAodXBsbC1kMjQg YW5kIHVwbGwtZDEyKSBieSBzZXR0aW5nIHVwbGwgdG8gYSB2ZXJ5CisgKiBsb3cgZnJlcXVlbmN5 IGFuZCBzYW1wbGluZyB0aGUgY2xvY2sgYnkgR1BJTyByZWFkcy4gVGhlIG91dHB1dHMgb2YgMiBh bmQgMyBhcmUgd2F5IHRvbyBoaWdoIHRvCisgKiB0ZXN0IHRoYXQgd2F5LiBOZWl0aGVyIGlzIHJl YWRpbmcgZnJvbSBhbnkgUExMLCB0aGV5IGtlZXAgb3NjaWxsYXRpbmcgd2hlbiBhbGwgUExMcyBh cmUgZGlzYWJsZWQuCisgKiBJIGFtIGZhaXJseSBzdXJlIHRoYXQgMyBpcyBqdXN0IGRpcmVjdCBv c2MyNm0gYmVjYXVzZSBpdCBwZXJmZWN0bHkgbWF0Y2hlcyB3aGF0IG91dDIgaXMKKyAqIHNob3dp bmcgaW4gaXRzIDI2IE1IeiBzZXR0aW5nLgorICoKKyAqIENsay1vdXQyIGlzIHNpbWlsYXIsIGJ1 dCBpdCBoYXMgb25seSBvbmUgY29udHJvbCBiaXQgaW4gdG9wIDB4MzQgYml0IDguIE5laXRoZXIg c2V0dGluZyBzZWxlY3RzCisgKiBhIFBMTCBvdXRwdXQuIFdoZW4gc2V0dGluZyAqMHgzNCA9IDB4 MDgwLCBjbGstb3V0MSBhbmQgY2xrLW91dDIgYXJlIGluIGxvY2tzdGVwLCBwcmVzdW1hYmx5Cisg KiBydW5uaW5nIGF0IDEzIE1Iei4gMHgxYzAgYWxzbyBydW5zIGluIGxvY2tzdGVwLCBwcmVzdW1h Ymx5IDI2IE1Iei4KKyAqCisgKiBjbGstb3V0MCBoYXMgYSBtdXggaW4gYml0IDUuIFZhbHVlIDAg bW9zdCBsaWtlbHkgc2VsZWN0cyBvc2MyNm0uIEkgYW0gbm90IGVudGlyZWx5IHN1cmUgYWJvdXQK KyAqIHZhbHVlIDEgKHdoaWNoIGlzIHRoZSBkZWZhdWx0KSwgYnV0IHRoZSBtMCBtdXggaGFzIGFu IGltcGFjdCBvbiBpdC4gSXQgbG9va3MgbGlrZSBhIGRlYnVnIHBpbgorICogdGhhdCBleHBvc2Vz IHNvbWUgY29yZSBjbG9jay4KKyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCB6eF9wYXJlbnRfZGVz YyBvdXQwX3NlbFtdID0geworCVBBUkVOVF9GVygib3NjMjZtIiksCisJUEFSRU5UX0lEKFpYX0NM S19NMF9NVVgpLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB6eF9wYXJlbnRfZGVzYyBvdXQx X3NlbFtdID0geworCVBBUkVOVF9JRChaWF9DTEtfVE9QX1VQTExfRDEyX0QyKSwJLyogMjAgTUh6 ICovCisJUEFSRU5UX0lEKFpYX0NMS19UT1BfVVBMTF9EMTIpLAkJLyogNDAgTUh6ICovCisJUEFS RU5UX0lEKFpYX0NMS19PU0MyNk1fRDIpLAkJLyogMTMgTUh6ICovCisJUEFSRU5UX0ZXKCJvc2My Nm0iKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgenhfcGFyZW50X2Rlc2Mgb3V0Ml9zZWxb XSA9IHsKKwlQQVJFTlRfSUQoWlhfQ0xLX09TQzI2TV9EMiksCQkvKiAxMyBNSHogKi8KKwlQQVJF TlRfRlcoIm9zYzI2bSIpLAorfTsKKworLyoKKyAqIENsay1vIGlzIHNpbWlsYXIgdG8gY2xrLW91 dCosIHByb3ZpZGluZyBhIGNsb2NrIG9uIEdQSU8gMjAsIHByZXN1bWFibHkgZm9yIGRyaXZpbmcg YSAoUilNSUkgcGh5LgorICogVGhlIDUwIE1IeiB2YWx1ZSBpcyBkb2N1bWVudGVkIGluIGEgc3Ry YXkgY29tbWVudCBpbiBaVEUncyBHTUFDIGRyaXZlci4gSSB0ZXN0ZWQgaXQgc2ltaWxhcmx5IHRv CisgKiB0aGUgYWJvdmUgcGlucy4gTXV4IHNldHRpbmcgMCBnaXZlcyBoYWxmIHRoZSBjb3VudCBh cyBzZXR0aW5nIDEgYW5kIHNldHRpbmcgMSBnaXZlcyBncGxsIGRpdmlkZWQKKyAqIGJ5IDQgLSBt YXRjaGluZyB0aGUgNTAgTUh6IHN1Z2dlc3RlZCBieSB0aGUgWlRFIGNvbW1lbnQgYXQgdGhlIGRl ZmF1bHQgZ3BsbCBzZXR0aW5ncy4gR2F0aW5nIGdwbGwKKyAqIHN0b3BzIHRoZSBjbG9jayBmb3Ig dmFsdWVzIDAgYW5kIDEuCisgKgorICogU2V0dGluZ3MgMiBhbmQgMyBhcmUgcG9zc2libGUsIGJ1 dCBzZWVtIHRvIHJldHVybiBnYXJiYWdlLiBJdCBpcyBnZW5lcmFsbHkgcHVsc2luZyB1cCBhbmQg ZG93biwKKyAqIGV4Y2VwdCBpZiBib3RoIGdwbGwgYW5kIHVwbGwgYXJlIHN0b3BwZWQuIEkgc3Vz cGVjdCBpdCBqdXN0IHJlYWRzIHJhbmRvbSBlbGVjdHJpY2FsIGZsdWN0dWF0aW9uCisgKiBmcm9t IG90aGVyIHBsYWNlcyBpbiB0aGUgYm9hcmQuIFllcywgSSBoYWQgYSBwdWxsLWRvd24gZW5hYmxl ZCB3aGVuIHRlc3RpbmcgdGhpcy4KKyAqCisgKiBJIGFtIG5vdCBhd2FyZSBvZiBhbnkgYm9hcmQg dGhhdCB1c2VzIHRoaXMgdGhvdWdoLiBUaGUgRXRoZXJuZXQtZXF1aXBwZWQgb25lcyBJIGhhdmUg YWxsIHJ1biB0aGUKKyAqIFBIWSB3aXRoIGl0cyBvd24gb3NjaWxsYXRvci4KKyAqLworc3RhdGlj IGNvbnN0IHN0cnVjdCB6eF9wYXJlbnRfZGVzYyBybWlpX3NlbFtdID0geworCVBBUkVOVF9JRCha WF9DTEtfVE9QX0dQTExfRDRfRDIpLAkvKiAyNSBNSHogKi8KKwlQQVJFTlRfSUQoWlhfQ0xLX1RP UF9HUExMX0Q0KSwJCS8qIDUwIE1IeiAqLworfTsKKworI2RlZmluZSBQTEwoX25hbWUsIF9wYXJl bnRzLCBfcmF0ZSwgX3JlZywgX2ZsYWdzKQkJXAorCXsJCQkJCQkJXAorCQkudHlwZSA9IFpYX0NM T0NLX1BMTCwJCQkJXAorCQkucGxsID0gewkJCQkJXAorCQkJLm5hbWUgPSBfbmFtZSwJCQkJXAor CQkJLnBhcmVudHMgPSBfcGFyZW50cywJCQlcCisJCQkubnVtX3BhcmVudHMgPSBBUlJBWV9TSVpF KF9wYXJlbnRzKSwJXAorCQkJLnJhdGUgPSBfcmF0ZSwJCQkJXAorCQkJLnJlZyA9IF9yZWcsCQkJ CVwKKwkJCS5mbGFncyA9IF9mbGFncywJCQlcCisJCX0sCQkJCQkJXAorCX0KKworI2RlZmluZSBG SVhFRF9ESVYoX25hbWUsIF9wYXJlbnQsIF9kaXYpCQkJCVwKKwl7CQkJCQkJCVwKKwkJLnR5cGUg PSBaWF9DTE9DS19GSVhFRF9ESVYsCQkJXAorCQkuZml4ZWRfZGl2ID0gewkJCQkJXAorCQkJLm5h bWUgPSBfbmFtZSwJCQkJXAorCQkJLnBhcmVudCA9IF9wYXJlbnQsCQkJXAorCQkJLmRpdiA9IF9k aXYsCQkJCVwKKwkJfSwJCQkJCQlcCisJfQorCisjZGVmaW5lIE1VWChfbmFtZSwgX3BhcmVudHMs IF9yZWcsIF9zaGlmdCwgX3NpemUpCQlcCisJewkJCQkJCQlcCisJCS50eXBlID0gWlhfQ0xPQ0tf TVVYLAkJCQlcCisJCS5tdXggPSB7CQkJCQlcCisJCQkubmFtZSA9IF9uYW1lLAkJCQlcCisJCQku cGFyZW50cyA9IF9wYXJlbnRzLAkJCVwKKwkJCS5udW1fcGFyZW50cyA9IEFSUkFZX1NJWkUoX3Bh cmVudHMpLAlcCisJCQkucmVnID0gX3JlZywJCQkJXAorCQkJLnNoaWZ0ID0gX3NoaWZ0LAkJCVwK KwkJCS5zaXplID0gX3NpemUsCQkJCVwKKwkJfSwJCQkJCQlcCisJfQorCisjZGVmaW5lIERJVihf bmFtZSwgX3BhcmVudCwgX3JlZywgX3NoaWZ0LCBfc2l6ZSkJCVwKKwl7CQkJCQkJCVwKKwkJLnR5 cGUgPSBaWF9DTE9DS19ESVYsCQkJCVwKKwkJLmRpdiA9IHsJCQkJCVwKKwkJCS5uYW1lID0gX25h bWUsCQkJCVwKKwkJCS5wYXJlbnQgPSBfcGFyZW50LAkJCVwKKwkJCS5yZWcgPSBfcmVnLAkJCQlc CisJCQkuc2hpZnQgPSBfc2hpZnQsCQkJXAorCQkJLnNpemUgPSBfc2l6ZSwJCQkJXAorCQl9LAkJ CQkJCVwKKwl9CisKKyNkZWZpbmUgR0FURShfbmFtZSwgX3BhcmVudCwgX3JlZywgX3NoaWZ0LCBf ZmxhZ3MpCQlcCisJewkJCQkJCQlcCisJCS50eXBlID0gWlhfQ0xPQ0tfR0FURSwJCQkJXAorCQku Z2F0ZSA9IHsJCQkJCVwKKwkJCS5uYW1lID0gX25hbWUsCQkJCVwKKwkJCS5wYXJlbnQgPSBfcGFy ZW50LAkJCVwKKwkJCS5yZWcgPSBfcmVnLAkJCQlcCisJCQkuZmxhZ3MgPSBfZmxhZ3MsCQkJXAor CQkJLnNoaWZ0ID0gX3NoaWZ0LAkJCVwKKwkJfSwJCQkJCQlcCisJfQorCitzdGF0aWMgY29uc3Qg c3RydWN0IHp4X2Nsb2NrIHp4Mjk3NTIwdjNfdG9wX2Nsb2Nrc1tdID0geworCS8qCisJICogRGVm YXVsdCBzZXR0aW5nOiAweDQ4MDQwYzExLiA2MjQvMzEyLzE1Ni4gT25seSBhIHNpbmdsZSBwb3Nz aWJsZSBwYXJlbnQuIFRoaXMgaXMgdGhlCisJICogUExMIGZvciBwcmV0dHkgbXVjaCBldmVyeXRo aW5nLCBpbmNsdWRpbmcgQ1BVLCBSQU0gYW5kIFVTQi4KKwkgKgorCSAqIENoYW5naW5nIHRoaXMg UExMIG1ha2VzIGl0IHBvc3NpYmxlIHRvIG92ZXJjbG9jayB0aGUgQ1BVIG9yIGRvIG1vcmUgZmlu ZSBncmFpbmVkCisJICogdW5kZXJjbG9ja2luZyB0aGFuIHRoZSBDUFUncyBtdXggYWxsb3dzLiBJ dCBkb2VzIHJ1biBpbnRvIHR3byBwcm9ibGVtcyB0aG91Z2g6IFRoZSBVU0IKKwkgKiBkZXZpY2Ug dXNlcyB0aGlzIFBMTCdzIG91dHB1dCBkaXJlY3RseSBhbmQgaXMgKnZlcnkqIHNlbnNpdGl2ZSB0 byBkaWZmZXJlbmNlcy4gRFJBTQorCSAqIGlzIGFsc28gZmVkIGJ5IHRoaXMgY2xvY2sgYW5kIG5l ZWRzIHRvIGJlIHJlLXRyYWluZWQgb24gbGFyZ2VyIGNoYW5nZXMsIHdoaWNoIG5lZWRzIHRvCisJ ICogYmUgZG9uZSBieSB0aGUgc3RhZ2UgMSBib290IGxvYWRlci4KKwkgKi8KKwlbWlhfQ0xLX01Q TExdICAgICAgICAgICAgICA9IFBMTCgibXBsbCIsIGNsa19tYWluLCAwLCAweDgsIDApLAorCisJ LyoKKwkgKiBaVEUncyBjb2RlIGNhbGxzIHRoaXMgUExMICJ1cGxsIi4gVGhlIG9ubHkgcG9zc2li bGUgY29uc3VtZXJzIEkgZm91bmQgYXJlIGNsay1vdXQxLAorCSAqIHdoaWNoIG91dHB1dHMgdGhp cyBjbG9jayBvbiBHUElPIDE2IGFuZCBIU0lDLiBIU0lDIGRvZXNuJ3QgaGF2ZSBhbnl0aGluZyBj b25uZWN0ZWQgdG8KKwkgKiBpdCBvbiB0aGUgZGV2aWNlcyBJIHRlc3RlZC4gVGhlIGRldmljZSB0 aGF0IGNvbnN1bWVzIGNsay1vdXQxIHNlZW1zIHRvIGJlIGFuIFNQSQorCSAqIGNhbWVyYSwgd2hp Y2ggSSBoYXZlbid0IHNlZW4gaW4gYW55IGRldmljZSBzbyBmYXIuIFpURSBtYW5pcHVsYXRlcyB0 aGlzIFBMTCBkaXJlY3RseSBvdXQKKwkgKiBvZiB0aGUgY2FtZXJhIGNvZGUsIHNvIGl0IGlzIHVu bGlrZWx5IHRvIGhhdmUgYW5vdGhlciBjb25zdW1lci4KKwkgKgorCSAqIExvbmcgc3Rvcnkgc2hv cnQsIHNodXQgaXQgb2ZmLgorCSAqLworCVtaWF9DTEtfVVBMTF0gICAgICAgICAgICAgID0gUExM KCJ1cGxsIiwgY2xrX21haW4sIDAsIDB4MTAsIDApLAorCisJLyoKKwkgKiBEZWZhdWx0IHZhbHVl IDB4NDgzNDkwMmQuIEZlZWRzIGRwbGwuIDQ2LjA4IE1Iei4gQml0IDI1IGNhbiBiZSBzZXQsIHNv IHR3byBwYXJlbnRzIGFyZQorCSAqIHBvc3NpYmxlLiBJdCBsb29rcyBsaWtlIGJvdGggdmFsdWVz IHNlbGVjdCB0aGUgMjYgTUh6IG9zY2lsbGF0b3IgdGhvdWdoLgorCSAqCisJICogU2luY2UgZHBs bCdzIHByZXBhcmUgbWF5IGRlcGVuZCBvbiB0aGlzIGNsb2NrIGdlbmVyYXRpbmcgYSB1c2FibGUg c2lnbmFsLCBpdCBuZWVkcyB0byBiZQorCSAqIGVuYWJsZWQgd2hlbiBwcmVwYXJlZC4KKwkgKgor CSAqIEl0IGlzbid0IG5hbWVkIGFueXdoZXJlIGluIFpURSdzIGNvZGUsIGJ1dCBjcGtvLmtvIGhh cyB0aGUgc3RyaW5nICJkcGxsMiIgc29tZXdoZXJlIGluCisJICogaXRzIGNsb2NrIHRhYmxlcy4K KwkgKi8KKwlbWlhfQ0xLX0RQTEwyXSAgICAgICAgICAgICA9IFBMTCgiZHBsbDIiLCBjbGtfbWFp biwgMCwgMHgxMDAsIENMS19aWF9QTExfUFJFUEFSRV9JU19FTkFCTEUpLAorCVtaWF9DTEtfRFBM TDJfRDJdICAgICAgICAgID0gRklYRURfRElWKCJkcGxsMi1kMiIsIFBBUkVOVF9JRChaWF9DTEtf RFBMTDIpLCAyKSwKKworCS8qCisJICogVGhlIGRvY3VtZW50YXRpb24gc2F5cyA0OTEuNTIgTUh6 IGFuZCBtZWFzdXJlbWVudCB3aXRoIHRoZSBMU1AgVERNIGRldmljZSBzdXBwb3J0cyB0aGlzLgor CSAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDB4NDgwYzIwMTEsIGJ1dCBub3QgYWxsIGJvb3QgbG9h ZGVycyBzZXQgaXQgdXAuIFRvIGdldCB0byA0OTEuNTIKKwkgKiB3aXRoIHRoZXNlIHNldHRpbmdz IGl0IG5lZWRzIGEgMjMuMDQgTUh6IHJlZmVyZW5jZSBjbG9jaywgd2hpY2ggbWF0Y2hlcyBkcGxs Mi1kMi4gSWYKKwkgKiBkcGxsMiBpcyBkaXNhYmxlZCwgZHBsbCBsb3NlcyBpdHMgbG9jay4gV2Ug c2V0IHRoZSBmcmVxdWVuY3kgb24gdGhpcyBQTEwgaWYgd2UgZmluZCBpdCBpcworCSAqIG5vdCBw cmVwYXJlZCBieSB0aGUgYm9vdCBsb2FkZXIuCisJICoKKwkgKiBUaGUgcHJvcHJpZXRhcnkgTFRF IGRyaXZlciBhbmQvb3IgcnByb2MgcHJlcGFyZSBhbmQgdW5wcmVwYXJlIGl0LiBURE0gYW5kIEky UyBjYW4gdXNlIGl0LgorCSAqCisJICogSXQgYWNjZXB0cyBwYXJlbnQgdmFsdWVzIDAsIDEsIDIg YW5kIDMuIFBhcmVudCAwIGlzIGRwbGwyLWQyLiBUaGUgb3RoZXJzIGxvb2sgbGlrZQorCSAqIG9z YzI2bS4gV2l0aCBhIHBhcmVudCAhPSAwIGRwbGwgbmV2ZXIgbG9zZXMgaXRzIGxvY2sgZXZlbiB3 aGVuIGFsbCBvdGhlciBQTExzIGFyZSBvZmYKKwkgKiBhbmQgdGhlIFRETSBjb3VudGVyIHJlZ2lz dGVyIGluY3JlYXNlcyBhdCBhIHJhdGUgY29uc2lzdGVudCB3aXRoIGEgMjYuMC8yMy4wNCBjbG9j aworCSAqIGluY3JlYXNlLgorCSAqLworCVtaWF9DTEtfRFBMTF0gICAgICAgICAgICAgID0gUExM KCJkcGxsIiwgZHBsbF9wYXJlbnRzLCA0OTE1MjAwMDAsIDB4MTgsIDApLAorCisJLyoKKwkgKiAi ZyIgaXMgZWl0aGVyIGZvciAiZ2VuZXJhbCIgb3IgImdpZ2FoZXJ0eiIuIFRoZSBWQ08gcnVucyBh dCAxIEdIei4gT3V0cHV0IGNsb2NrcyBhcmUgMjAwLAorCSAqIDEwMCwgNTAsIDI1LCAuLi4gTUh6 LiBJdCBpcyB1c2VkIG9wdGlvbmFsbHkgYnkgU0RJTyBhbmQgUVNQSSBhbmQgY2FuIGRyaXZlIGEg R1BJTyBjbG9jaworCSAqIG91dHB1dCBmb3IgUk1JSSwgc28gaXQgZG9lc24ndCBzZWVtIHZlcnkg Z2VuZXJhbC4KKwkgKi8KKwlbWlhfQ0xLX0dQTExdICAgICAgICAgICAgICA9IFBMTCgiZ3BsbCIs IGNsa19tYWluLCAwLCAweDExMCwgMCksCisKKwkvKiBvc2MyNm0gZGl2aXNpb24gZm9yIGNsa19v dXRYICovCisJW1pYX0NMS19PU0MyNk1fRDJdICAgICAgICAgPSBGSVhFRF9ESVYoIm9zYzI2bS1k MiIsIGNsa19tYWluWzBdLCAyKSwKKworCS8qIFByZS0weDE0MCBkaXN0cmlidXRpb24gZml4ZWQg ZGl2cyAqLworCVtaWF9DTEtfVE9QX01QTExfRDJfUFJFR0FURV0gID0gRklYRURfRElWKCJtcGxs LWQyIiwgUEFSRU5UX0lEKFpYX0NMS19NUExMKSwgMiksCisJW1pYX0NMS19UT1BfTVBMTF9ENF9Q UkVHQVRFXSAgPSBGSVhFRF9ESVYoIm1wbGwtZDQiLCBQQVJFTlRfSUQoWlhfQ0xLX01QTEwpLCA0 KSwKKwlbWlhfQ0xLX1RPUF9NUExMX0Q1X1BSRUdBVEVdICA9IEZJWEVEX0RJVigibXBsbC1kNSIs IFBBUkVOVF9JRChaWF9DTEtfTVBMTCksIDUpLAorCVtaWF9DTEtfVE9QX01QTExfRDZfUFJFR0FU RV0gID0gRklYRURfRElWKCJtcGxsLWQ2IiwgUEFSRU5UX0lEKFpYX0NMS19NUExMKSwgNiksCisJ W1pYX0NMS19UT1BfTVBMTF9EOF9QUkVHQVRFXSAgPSBGSVhFRF9ESVYoIm1wbGwtZDgiLCBQQVJF TlRfSUQoWlhfQ0xLX01QTEwpLCA4KSwKKwlbWlhfQ0xLX1RPUF9VUExMX0QxMl9QUkVHQVRFXSA9 IEZJWEVEX0RJVigidXBsbC1kMTIiLCBQQVJFTlRfSUQoWlhfQ0xLX1VQTEwpLCAxMiksCisJW1pY X0NMS19UT1BfR1BMTF9EMl9QUkVHQVRFXSAgPSBGSVhFRF9ESVYoImdwbGwtZDIiLCBQQVJFTlRf SUQoWlhfQ0xLX0dQTEwpLCAyKSwKKwlbWlhfQ0xLX1RPUF9HUExMX0Q0X1BSRUdBVEVdICA9IEZJ WEVEX0RJVigiZ3BsbC1kNCIsIFBBUkVOVF9JRChaWF9DTEtfR1BMTCksIDQpLAorCisJLyoKKwkg KiB0b3Bjcm0gZGlzdHJpYnV0aW9uIGdhdGVzLiBUaGVzZSBhcmUgY29tcGxpY2F0ZWQsIGJ1dCBz aGVkIGEgbG90IG9mIGxpZ2h0IG9uIHRoZSBib2FyZCdzCisJICogY2xvY2sgZGlzdHJpYnV0aW9u LgorCSAqCisJICogU2V0dGFibGUgbWFzazogMHgwMTczMzNGRi4gR2VuZXJhbGx5IG9uZSBuaWJi bGUgcGVyIFBMTCwgZXhjZXB0IGZvciBNUExMIHRoYXQgaGFzIG1vcmUuCisJICogT25lIGZvciBv c2MyNm0gd29yayBjbG9jay4gcGNsayBhbmQgb3NjMzJrIGFyZSBub3QgZ2F0ZWQgZ2xvYmFsbHkg aGVyZSBvciBhbnl3aGVyZSBlbHNlCisJICogYXMgZmFyIGFzIEkgY2FuIHNlZS4KKwkgKgorCSAq IElmIHlvdSB3YW50IHRvIHRlc3QgeW91ciB1bmRlcnN0YW5kaW5nIG9mIHRoaXMgYm9hcmQsIHRy eSB0byBtYW51YWxseSBjb25maWd1cmUgaXQgaW50byBhCisJICogc2V0dXAgd2hlcmUgYml0IDI0 IG9yIGJpdCA5IGFyZSBvZmYgd2l0aG91dCBjcmFzaGluZyBpdC4KKwkgKi8KKworCS8qIEJpdCAw OiBObyBrbm93biBjb25zdW1lciAqLworCS8qIEJpdCAxOiBNMCdzIDc4IE1IeiBzZWxlY3Rpb24s IGJ1dCBzb21laG93IGFsc28gaW52b2x2ZWQgaW4gVVNCIHRvbyAqLworCVtaWF9DTEtfVE9QX01Q TExfRDJdICAgICAgID0gR0FURSgidG9wLW1wbGwtZDIiLCBQQVJFTlRfSUQoWlhfQ0xLX1RPUF9N UExMX0QyX1BSRUdBVEUpLAorCQkJCQkgIDB4MTQwLCAxLCAwKSwKKwkvKiBCaXQgMjogTm8ga25v d24gY29uc3VtZXIsIG5hbWVkICJtcGxsXzQ4bV9jbGsiIGluIFpURSdzIGNwa28ua28gYmxvYiAq LworCVtaWF9DTEtfVE9QX01QTExfRDhdICAgICAgID0gR0FURSgidG9wLW1wbGwtZDgiLCBQQVJF TlRfSUQoWlhfQ0xLX1RPUF9NUExMX0Q4X1BSRUdBVEUpLAorCQkJCQkgIDB4MTQwLCAzLCAwKSwK KwlbWlhfQ0xLX1RPUF9NUExMX0Q2XSAgICAgICA9IEdBVEUoInRvcC1tcGxsLWQ2IiwgUEFSRU5U X0lEKFpYX0NMS19UT1BfTVBMTF9ENl9QUkVHQVRFKSwKKwkJCQkJICAweDE0MCwgNCwgMCksCisJ W1pYX0NMS19UT1BfTVBMTF9ENF0gICAgICAgPSBHQVRFKCJ0b3AtbXBsbC1kNCIsIFBBUkVOVF9J RChaWF9DTEtfVE9QX01QTExfRDRfUFJFR0FURSksCisJCQkJCSAgMHgxNDAsIDUsIDApLAorCVta WF9DTEtfVE9NQVRSSVhfTVBMTF9ENV0gID0gR0FURSgibWF0cml4LW1wbGwtZDUiLCBQQVJFTlRf SUQoWlhfQ0xLX1RPUF9NUExMX0Q1X1BSRUdBVEUpLAorCQkJCQkgIDB4MTQwLCA2LCBaWDI5NzUy MFYzX0FYSV9DQU5ESURBVEUpLAorCS8qIEJpdCA3OiBObyBrbm93biBjb25zdW1lciAqLworCS8q IEJpdCA4OiBIYXMgYSBjb25zdW1lciwgTFRFIGRlcGVuZHMgb24gaXQuIEJ1dCB1bmtub3duIHdo YXQgYW5kIGhvdy4gKi8KKwkvKgorCSAqIEJpdCA5OiBCaWcgTVBMTCBwcm92aWRlciBmb3IgTWF0 cml4LiBJdCBpcyBhbiBBWEkgdm90aW5nIGNhbmRpZGF0ZSwgYnV0IGl0IGlzIHByb3RlY3RlZAor CSAqIGluIE1hdHJpeCdzIDB4MTE4IGdhdGVzLgorCSAqLworCVtaWF9DTEtfVE9NQVRSSVhfTVBM TF0gICAgID0gR0FURSgibWF0cml4LW1wbGwiLCBQQVJFTlRfSUQoWlhfQ0xLX01QTEwpLCAweDE0 MCwgOSwgMCksCisJLyogQml0IDEwOiBBbHdheXMgMCAqLworCS8qIEJpdCAxMTogQWx3YXlzIDAg Ki8KKworCS8qIEJpdCAxMjogTm8ga25vd24gY29uc3VtZXIuIEV4aXN0aW5nIHBhdHRlcm5zIGlu ZGljYXRlIGEgZHBsbCBjb25zdW1lciBpbiB0b3AgaXRzZWxmICovCisJW1pYX0NMS19UT01BVFJJ WF9EUExMXSAgICAgPSBHQVRFKCJtYXRyaXgtZHBsbCIsIFBBUkVOVF9JRChaWF9DTEtfRFBMTCks IDB4MTQwLCAxMywgMCksCisJLyogQml0IDE0OiBBbHdheXMgMCAqLworCS8qIEJpdCAxNTogQWx3 YXlzIDAgKi8KKworCVtaWF9DTEtfVE9QX1VQTExfRDEyXSAgICAgID0gR0FURSgidG9wLXVwbGwt ZDEyIiwgUEFSRU5UX0lEKFpYX0NMS19UT1BfVVBMTF9EMTJfUFJFR0FURSksCisJCQkJCSAgMHgx NDAsIDE2LCAwKSwKKwlbWlhfQ0xLX1RPUF9VUExMXSAgICAgICAgICA9IEdBVEUoInRvcC11cGxs IiwgUEFSRU5UX0lEKFpYX0NMS19VUExMKSwgMHgxNDAsIDE3LCAwKSwKKwkvKiBCaXQgMTg6IEFs d2F5cyAwICovCisJLyogQml0IDE5OiBBbHdheXMgMCAqLworCisJW1pYX0NMS19UT1BfR1BMTF9E NF0gICAgICAgPSBHQVRFKCJ0b3AtZ3BsbC1kNCIsIFBBUkVOVF9JRChaWF9DTEtfVE9QX0dQTExf RDRfUFJFR0FURSksCisJCQkJCSAgMHgxNDAsIDIwLCAwKSwKKwlbWlhfQ0xLX1RPTUFUUklYX0dQ TExfRDJdICA9IEdBVEUoIm1hdHJpeC1ncGxsLWQyIiwgUEFSRU5UX0lEKFpYX0NMS19UT1BfR1BM TF9EMl9QUkVHQVRFKSwKKwkJCQkJICAweDE0MCwgMjEsIDApLAorCVtaWF9DTEtfVE9NQVRSSVhf R1BMTF0gICAgID0gR0FURSgibWF0cml4LWdwbGwiLCBQQVJFTlRfSUQoWlhfQ0xLX0dQTEwpLCAw eDE0MCwgMjIsIDApLAorCS8qIEJpdCAyMzogQWx3YXlzIDAgKi8KKworCS8qCisJICogQml0IDI0 IGNvdmVycyBhbGwgMjYgTUh6IG9uIG1hdHJpeCwgYnV0IG5vdCBwY2xrcy4gT3NjMjZtIGNvbnN1 bWVycyBvbiB0b3Bjcm0gZG8gbm90CisJICogdXNlIHRoaXMsIHRoZXkgZ2V0IHRoZSB1bmdhdGVk IG9zYzI2bS4gSXQgaXMgYW4gQVhJIHZvdGluZyBjYW5kaWRhdGUsIGJ1dCBkb2VzIG5vdAorCSAq IG5lZWQgcHJvdGVjdGlvbiBiZWNhdXNlIGl0IGlzIHRoZSBzbG93ZXN0IHNwZWVkLiBJdCB3aWxs IG9ubHkgYmUgdXNlZCBpZiBldmVyeSBwcm9jZXNzb3IsCisJICogaW5jbHVkaW5nIHVzLCB2b3Rl cyBmb3IgaXQuCisJICovCisJW1pYX0NMS19UT01BVFJJWF9PU0MyNk1dICAgPSBHQVRFKCJtYXRy aXgtb3NjMjZtIiwgY2xrX21haW5bMF0sIDB4MTQwLCAyNCwgMCksCisKKwkvKgorCSAqIFBvc3Qt MTQwIGRpdmlzaW9ucy4gVGhleSBlbnRlciB0aHJvdWdoIHRoZSBzYW1lIGJpdCBhbmQgY2FuIGJl IHNlbGVjdGVkIGJ5IGRpZmZlcmVudCBtdXgKKwkgKiB2YWx1ZXMgb2YgdGhlaXIgY29uc3VtZXJz IG9yIGdldCBwaXBlZCB0byBtdWx0aXBsZSBjb25zdW1lcnMgd2l0aCBkaWZmZXJlbnQgZG9jdW1l bnRlZAorCSAqIHJhdGVzIC0gaW4gcGFydGljdWxhciwgVVNCIHdjbGsgKDI0IE1IeiBhY2NvcmRp bmcgdG8gWlRFKSBzaGFyZXMgYml0IDEgd2l0aCBNMCdzIDc4IE1Iei4KKwkgKi8KKwlbWlhfQ0xL X1RPUF9NUExMX0QyX0Q0XSAgICA9IEZJWEVEX0RJVigidG9wLW1wbGwtZDItZDQiLCBQQVJFTlRf SUQoWlhfQ0xLX1RPUF9NUExMX0QyKSwgNCksCisJW1pYX0NMS19UT1BfTVBMTF9EMl9EMTNdICAg PSBGSVhFRF9ESVYoInRvcC1tcGxsLWQyLWQxMyIsIFBBUkVOVF9JRChaWF9DTEtfVE9QX01QTExf RDIpLAorCQkJCQkgICAgICAgMTMpLAorCVtaWF9DTEtfVE9QX1VQTExfRDEyX0QyXSAgID0gRklY RURfRElWKCJ0b3AtdXBsbC1kMTItZDIiLCBQQVJFTlRfSUQoWlhfQ0xLX1RPUF9VUExMX0QxMiks CisJCQkJCSAgICAgICAyKSwKKwlbWlhfQ0xLX1RPUF9HUExMX0Q0X0QyXSAgICA9IEZJWEVEX0RJ VigidG9wLWdwbGwtZDQtZDIiLCBQQVJFTlRfSUQoWlhfQ0xLX1RPUF9HUExMX0Q0KSwgMiksCisK KwkvKiBEZXZpY2Utc3BlY2lmaWMgTXV4ZXMgKi8KKwlbWlhfQ0xLX00wX01VWF0gICAgICAgICAg ICA9IE1VWCgibTAtbXV4IiwgICAgICAgIG0wX3NlbCwgICAgICAgICAgICAweDM4LCAgMCwgMiks CisJW1pYX0NMS19BSEJfTVVYXSAgICAgICAgICAgPSBNVVgoImFoYi1tdXgiLCAgICAgICBhaGJf c2VsLCAgICAgICAgICAgMHgzYywgIDQsIDIpLAorCVtaWF9DTEtfVElNRVJfVDA4X01VWF0gICAg ID0gTVVYKCJ0aW1lci10MDgtbXV4IiwgdGltZXJfdG9wX3NlbCwgICAgIDB4NDAsICAxLCAxKSwK KwlbWlhfQ0xLX1RJTUVSX1QwOV9NVVhdICAgICA9IE1VWCgidGltZXItdDA5LW11eCIsIHRpbWVy X3RvcF9zZWwsICAgICAweDQwLCAgMCwgMSksCisJW1pYX0NMS19USU1FUl9UMTJfTVVYXSAgICAg PSBNVVgoInRpbWVyLXQxMi1tdXgiLCB0aW1lcl90b3Bfc2VsLCAgICAgMHgzYywgIDAsIDEpLAor CVtaWF9DTEtfVElNRVJfVDEzX01VWF0gICAgID0gTVVYKCJ0aW1lci10MTMtbXV4IiwgdGltZXJf dG9wX3NlbCwgICAgIDB4NDQsICAwLCAxKSwKKwlbWlhfQ0xLX1RJTUVSX1QxNF9NVVhdICAgICA9 IE1VWCgidGltZXItdDE0LW11eCIsIHRpbWVyX3RvcF9zZWwsICAgICAweDQ0LCAgMSwgMSksCisJ W1pYX0NMS19USU1FUl9UMTVfTVVYXSAgICAgPSBNVVgoInRpbWVyLXQxNS1tdXgiLCB0aW1lcl90 b3Bfc2VsLCAgICAgMHgzYywgIDMsIDEpLAorCVtaWF9DTEtfVElNRVJfVDE2X01VWF0gICAgID0g TVVYKCJ0aW1lci10MTYtbXV4IiwgdGltZXJfdG9wX3NlbCwgICAgIDB4NDQsICAyLCAxKSwKKwlb WlhfQ0xLX1RJTUVSX1QxN19NVVhdICAgICA9IE1VWCgidGltZXItdDE3LW11eCIsIHRpbWVyX3Rv cF9zZWwsICAgIDB4MTIwLCAgMCwgMSksCisJW1pYX0NMS19XRFRfVDE4X01VWF0gICAgICAgPSBN VVgoIndkdC10MTgtbXV4IiwgICB0aW1lcl90b3Bfc2VsLCAgICAgMHgzYywgIDYsIDEpLAorCVta WF9DTEtfSTJDMF9NVVhdICAgICAgICAgID0gTVVYKCJpMmMwLW11eCIsICAgICAgdWFydF90b3Bf c2VsLCAgICAgIDB4M2MsICAxLCAxKSwKKwlbWlhfQ0xLX1VBUlQwX01VWF0gICAgICAgICA9IE1V WCgidWFydDAtbXV4IiwgICAgIHVhcnRfdG9wX3NlbCwgICAgICAweDQwLCAgMiwgMSksCisJW1pY X0NMS19PVVQwX01VWF0gICAgICAgICAgPSBNVVgoIm91dDAtbXV4IiwgICAgICBvdXQwX3NlbCwg ICAgICAgICAgMHgzNCwgIDUsIDEpLAorCVtaWF9DTEtfT1VUMV9NVVhdICAgICAgICAgID0gTVVY KCJvdXQxLW11eCIsICAgICAgb3V0MV9zZWwsICAgICAgICAgIDB4MzQsICA2LCAyKSwKKwlbWlhf Q0xLX09VVDJfTVVYXSAgICAgICAgICA9IE1VWCgib3V0Mi1tdXgiLCAgICAgIG91dDJfc2VsLCAg ICAgICAgICAweDM0LCAgOCwgMSksCisJW1pYX0NMS19STUlJUEhZX01VWF0gICAgICAgPSBNVVgo InJtaWlwaHktbXV4IiwgICBybWlpX3NlbCwgICAgICAgICAweDExYywgIDAsIDIpLAorCisJLyog RGV2aWNlLXNwZWNpZmljIGRpdmlkZXJzICovCisJW1pYX0NMS19USU1FUl9UMDhfRElWXSAgICAg PSBESVYoInRpbWVyLXQwOC1kaXYiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJTUVSX1QwOF9NVVgpLAor CQkJCQkgMHg0YywgOCwgNCksCisJW1pYX0NMS19USU1FUl9UMDlfRElWXSAgICAgPSBESVYoInRp bWVyLXQwOS1kaXYiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJTUVSX1QwOV9NVVgpLAorCQkJCQkgMHg0 YywgMCwgNCksCisJW1pYX0NMS19USU1FUl9UMTJfRElWXSAgICAgPSBESVYoInRpbWVyLXQxMi1k aXYiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJTUVSX1QxMl9NVVgpLAorCQkJCQkgMHg0OCwgMCwgNCks CisJW1pYX0NMS19USU1FUl9UMTNfRElWXSAgICAgPSBESVYoInRpbWVyLXQxMy1kaXYiLCBQQVJF TlRfSUQoWlhfQ0xLX1RJTUVSX1QxM19NVVgpLAorCQkJCQkgMHg1MCwgMCwgNCksCisJW1pYX0NM S19USU1FUl9UMTRfRElWXSAgICAgPSBESVYoInRpbWVyLXQxNC1kaXYiLCBQQVJFTlRfSUQoWlhf Q0xLX1RJTUVSX1QxNF9NVVgpLAorCQkJCQkgMHg1MCwgNCwgNCksCisJW1pYX0NMS19USU1FUl9U MTVfRElWXSAgICAgPSBESVYoInRpbWVyLXQxNS1kaXYiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJTUVS X1QxNV9NVVgpLAorCQkJCQkgMHg0OCwgNCwgNCksCisJW1pYX0NMS19USU1FUl9UMTZfRElWXSAg ICAgPSBESVYoInRpbWVyLXQxNi1kaXYiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJTUVSX1QxNl9NVVgp LAorCQkJCQkgMHg1MCwgOCwgNCksCisJW1pYX0NMS19USU1FUl9UMTdfRElWXSAgICAgPSBESVYo InRpbWVyLXQxNy1kaXYiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJTUVSX1QxN19NVVgpLAorCQkJCQkg MHgxMjQsIDAsIDQpLAorCVtaWF9DTEtfV0RUX1QxOF9ESVZdICAgICAgID0gRElWKCJ3ZHQtdDE4 LWRpdiIsIFBBUkVOVF9JRChaWF9DTEtfV0RUX1QxOF9NVVgpLAorCQkJCQkgMHg0OCwgOCwgNCks CisJW1pYX0NMS19VU0lNMV9ESVZdICAgICAgICAgPSBESVYoInVzaW0xLWRpdiIsIGNsa191bmtu b3duLAorCQkJCQkgMHg0OCwgMTIsIDEpLAorCisJLyogRGV2aWNlIHNwZWNpZmljIGdhdGVzICov CisKKwkvKgorCSAqIEFIQiBjbG9jayBnYXRlczogRGlzYWJsaW5nIHRoZXNlIGN1dHMgb2ZmIHRo ZSBBNTMgZnJvbSByZWdpc3RlciBhY2Nlc3MgaW50byAweDEzMDAwMC8KKwkgKiAweDE0MDAwMCwg aW5jbHVkaW5nIHRoZSB0b3Bjcm0gcmVnaW9uLCBzbyBpdCBjYW4ndCBiZSByZS1lbmFibGVkLiBN YXJrIHRoZW0gY3JpdGljYWwgZm9yCisJICogdGhhdCByZWFzb24uCisJICoKKwkgKiBHYXRpbmcg dGhpcyBvZmYgZG9lcyBub3Qgc3RvcCB0aGUgTTAgcnByb2MsIG5vciBkb2VzIGl0IHN0b3AgTTAg ZnJvbSBhY2Nlc3NpbmcgdG9wY3JtLiBJdAorCSAqIGRvZXMgaG93ZXZlciBnYXRlIG9mZiBNMCBm cm9tIHRoZSBBWEkgaW50ZXJjb25uZWN0LCBzbyBpdCBjYW4ndCByZWFkIFJBTSwgTWF0cml4LCBl dGMuIFNvCisJICogdGhlc2UgYml0cyBoZXJlIG1lcmVseSBnYXRlIHRoZSBidXMsIG5vdCB0aGUg YWN0dWFsIGRldmljZXMuCisJICovCisJW1pYX0NMS19BSEJfUENMS10gICAgICAgICAgPSBHQVRF KCJhaGItcGNsayIsIFBBUkVOVF9JRChaWF9DTEtfQUhCX01VWCksIDB4NTQsIDEyLAorCQkJCQkg IENMS19JU19DUklUSUNBTCksCisJW1pYX0NMS19BSEJfV0NMS10gICAgICAgICAgPSBHQVRFKCJh aGItd2NsayIsIFBBUkVOVF9JRChaWF9DTEtfTTBfTVVYKSwgMHg1NCwgMTMsCisJCQkJCSAgQ0xL X0lTX0NSSVRJQ0FMKSwKKworCS8qIFNSQU0xIGFuZCAyIGNsb2Nrcy4gTGVhdmUgdGhlbSBvbiBm b3Igbm93LCBhcyB0dXJuaW5nIHRoZW0gb2ZmIGNhcmVsZXNzbHkgaGFuZ3MgdGhlIE0wICovCisJ W1pYX0NMS19TUkFNMV9QQ0xLXSAgICAgICAgPSBHQVRFKCJzcmFtMS1wY2xrIiwgY2xrX21haW5b MF0sIDB4NTQsIDE4LCBDTEtfSVNfQ1JJVElDQUwpLAorCVtaWF9DTEtfU1JBTTJfUENMS10gICAg ICAgID0gR0FURSgic3JhbTItcGNsayIsIGNsa19tYWluWzBdLCAweDU0LCAxNiwgQ0xLX0lTX0NS SVRJQ0FMKSwKKworCS8qCisJICogUGlubXV4IChBT04sIFRPUCwgSU9DRkcgYnV0IG5vdCBQRENG RykuIENyaXRpY2FsIGFzIHdlbGwgdW50aWwgd2UgaGF2ZSBhIGRyaXZlciB0aGF0CisJICogY29u c3VtZXMgaXQuIEkgZG9uJ3QgdGhpbmsgd2UnbGwgcmVhbGlzdGljYWxseSBzaHV0IHRoaXMgb2Zm IGV2ZXIuCisJICoKKwkgKiBTZXR0aW5nIGVpdGhlciBiaXQgMCBvciAxIGluIHJlZ2lzdGVyIDB4 NTggbWFrZXMgdGhlIGRldmljZSB3b3JrLgorCSAqLworCVtaWF9DTEtfUE1NX1dDTEtdICAgICAg ICAgID0gR0FURSgicG1tLXdjbGsiLCBjbGtfbWFpblswXSwgMHg1OCwgMCwgQ0xLX0lTX0NSSVRJ Q0FMKSwKKwlbWlhfQ0xLX1BNTV9QQ0xLXSAgICAgICAgICA9IEdBVEUoInBtbS1wY2xrIiwgY2xr X21haW5bMF0sIDB4NTgsIDEsIENMS19JU19DUklUSUNBTCksCisKKwkvKgorCSAqIFRpbWVycy4g V2UgZG9uJ3QgdXNlIGFueSBvZiB0aGVtLCBqdXN0IHNodXQgdGhlbSBvZmYuIFRoZSB0aW1lcnMg YXJlIG5hbWVkIGFuZCBzb3J0ZWQKKwkgKiBieSB0aGUgSU8gYWRkcmVzcyBvZiB0aGUgbWFpbiB0 aW1lciBjb250cm9scy4gU29tZSBvZiB0aGUgY29udHJvbHMgYXJlIGRvY3VtZW50ZWQgaW4KKwkg KiBaVEUncyBrZXJuZWwsIHRoZSBvdGhlcnMgSSBmb3VuZCBieSB0cmlhbCBhbmQgZXJyb3IuIFRp bWVycyBpbiByZWdpc3RlciAweDU0IGhhdmUgdGhlCisJICogcGNsayBmaXJzdCwgdGhlIG90aGVy cyBoYXZlIHRoZSB3Y2xrIGZpcnN0LgorCSAqCisJICogVGltZXIgVDE3IGlzIHVzZWQgYnkgdGhl IFpTUCBmaXJtd2FyZS4gVGhlIHJwcm9jIGRyaXZlciB3aWxsIGVuYWJsZSBpdCBhcyBuZWVkZWQu CisJICovCisJW1pYX0NMS19USU1FUl9UMDhfV0NMS10gICAgPSBHQVRFKCJ0aW1lci10MDgtd2Ns ayIsIFBBUkVOVF9JRChaWF9DTEtfVElNRVJfVDA4X0RJViksCisJCQkJCSAgMHg1YywgOCwgMCks CisJW1pYX0NMS19USU1FUl9UMDhfUENMS10gICAgPSBHQVRFKCJ0aW1lci10MDgtcGNsayIsIGNs a19tYWluWzBdLCAweDVjLCA5LCAwKSwKKwlbWlhfQ0xLX1RJTUVSX1QwOV9XQ0xLXSAgICA9IEdB VEUoInRpbWVyLXQwOS13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19USU1FUl9UMDlfRElWKSwKKwkJ CQkJICAweDVjLCA0LCAwKSwKKwlbWlhfQ0xLX1RJTUVSX1QwOV9QQ0xLXSAgICA9IEdBVEUoInRp bWVyLXQwOS1wY2xrIiwgY2xrX21haW5bMF0sIDB4NWMsIDUsIDApLAorCVtaWF9DTEtfVElNRVJf VDEyX1dDTEtdICAgID0gR0FURSgidGltZXItdDEyLXdjbGsiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJ TUVSX1QxMl9ESVYpLAorCQkJCQkgIDB4NTQsIDUsIDApLAorCVtaWF9DTEtfVElNRVJfVDEyX1BD TEtdICAgID0gR0FURSgidGltZXItdDEyLXBjbGsiLCBjbGtfbWFpblswXSwgMHg1NCwgNCwgMCks CisJW1pYX0NMS19USU1FUl9UMTNfV0NMS10gICAgPSBHQVRFKCJ0aW1lci10MTMtd2NsayIsIFBB UkVOVF9JRChaWF9DTEtfVElNRVJfVDEzX0RJViksCisJCQkJCSAgMHg2MCwgMCwgMCksCisJW1pY X0NMS19USU1FUl9UMTNfUENMS10gICAgPSBHQVRFKCJ0aW1lci10MTMtcGNsayIsIGNsa19tYWlu WzBdLCAweDYwLCAxLCAwKSwKKwlbWlhfQ0xLX1RJTUVSX1QxNF9XQ0xLXSAgICA9IEdBVEUoInRp bWVyLXQxNC13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19USU1FUl9UMTRfRElWKSwKKwkJCQkJICAw eDYwLCA0LCAwKSwKKwlbWlhfQ0xLX1RJTUVSX1QxNF9QQ0xLXSAgICA9IEdBVEUoInRpbWVyLXQx NC1wY2xrIiwgY2xrX21haW5bMF0sIDB4NjAsIDUsIDApLAorCVtaWF9DTEtfVElNRVJfVDE1X1dD TEtdICAgID0gR0FURSgidGltZXItdDE1LXdjbGsiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJTUVSX1Qx NV9ESVYpLAorCQkJCQkgIDB4NTQsIDIxLCAwKSwKKwlbWlhfQ0xLX1RJTUVSX1QxNV9QQ0xLXSAg ICA9IEdBVEUoInRpbWVyLXQxNS1wY2xrIiwgY2xrX21haW5bMF0sIDB4NTQsIDIwLCAwKSwKKwlb WlhfQ0xLX1RJTUVSX1QxNl9XQ0xLXSAgICA9IEdBVEUoInRpbWVyLXQxNi13Y2xrIiwgUEFSRU5U X0lEKFpYX0NMS19USU1FUl9UMTZfRElWKSwKKwkJCQkJICAweDYwLCA4LCAwKSwKKwlbWlhfQ0xL X1RJTUVSX1QxNl9QQ0xLXSAgICA9IEdBVEUoInRpbWVyLXQxNi1wY2xrIiwgY2xrX21haW5bMF0s IDB4NjAsIDksIDApLAorCVtaWF9DTEtfVElNRVJfVDE3X1dDTEtdICAgID0gR0FURSgidGltZXIt dDE3LXdjbGsiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJTUVSX1QxN19ESVYpLAorCQkJCQkgIDB4MTI4 LCAwLCAwKSwKKwlbWlhfQ0xLX1RJTUVSX1QxN19QQ0xLXSAgICA9IEdBVEUoInRpbWVyLXQxNy1w Y2xrIiwgY2xrX21haW5bMF0sIDB4MTI4LCAxLCAwKSwKKworCS8qCisJICogVGhpcyB3YXRjaGRv ZyBpcyBzZXQgdXAgYnkgWlRFJ3MgYm9vdGxvYWRlciBhbmQgaW4gWlRFJ3MgT1MgdGhlIG0wIGZp cm13YXJlIHdpbGwgZmVlZCB0aGUKKwkgKiBkb2cuIFRoZSBtMCBmaXJtd2FyZSBpbiB0dXJuIHdh bnRzIHRvIGJlIGZlZCBpbiBpdHMgb3duIHdheS4gU2luY2Ugd2Ugbm9ybWFsbHkgZG9uJ3QgcnVu CisJICogYW55IG0wIGZpcm13YXJlIHdlIHNodXQgaXQgb2ZmIGJ5IGRlZmF1bHQgYW5kIGV4cG9z ZSBpdCB0byB1c2Vyc3BhY2UgdmlhIHRoZSB3YXRjaGRvZworCSAqIGRyaXZlci4KKwkgKi8KKwlb WlhfQ0xLX1dEVF9UMThfV0NMS10gICAgID0gR0FURSgid2R0LXQxOC13Y2xrIiwgUEFSRU5UX0lE KFpYX0NMS19XRFRfVDE4X0RJViksCisJCQkJCSAweDU0LCAyNSwgMCksCisJW1pYX0NMS19XRFRf VDE4X1BDTEtdICAgICA9IEdBVEUoIndkdC10MTgtcGNsayIsIGNsa19tYWluWzBdLCAweDU0LCAy NCwgMCksCisKKwlbWlhfQ0xLX0kyQzBfV0NMS10gICAgICAgID0gR0FURSgiaTJjMC13Y2xrIiwg UEFSRU5UX0lEKFpYX0NMS19JMkMwX01VWCksIDB4NTQsIDksIDApLAorCVtaWF9DTEtfSTJDMF9Q Q0xLXSAgICAgICAgPSBHQVRFKCJpMmMwLXBjbGsiLCBjbGtfbWFpblswXSwgMHg1NCwgOCwgMCks CisJW1pYX0NMS19VQVJUMF9XQ0xLXSAgICAgICA9IEdBVEUoInVhcnQwLXdjbGsiLCBQQVJFTlRf SUQoWlhfQ0xLX1VBUlQwX01VWCksIDB4NWMsIDEyLCAwKSwKKwlbWlhfQ0xLX1VBUlQwX1BDTEtd ICAgICAgID0gR0FURSgidWFydDAtcGNsayIsIGNsa19tYWluWzBdLCAweDVjLCAxMywgMCksCisK KwkvKgorCSAqIFpURSBzYXlzIHRoZSBVU0IgaW5wdXQgaXMgYSAyNCBNSHogY2xvY2sgYmFzZWQg b24gbXBsbC4gVGVzdGluZyBzaG93cyB0aGF0IHVwbGwgaXMgbm90CisJICogaW52b2x2ZWQuIFRo ZSBVU0IgcmVnaXN0ZXIgc3BhY2UgY2FuIGJlIGFjY2Vzc2VkIHdpdGggYWhiLXBjbGsgZ2F0ZWQs IGJ1dCBub3Qgd2l0aAorCSAqIGFoYi13Y2xrIGdhdGVkLiBaVEUgYWxzbyBsaXN0cyBhaGItd2Ns ayBhcyBwYXJlbnQgZm9yIHRoZSBzZWNvbmQgY2xvY2suCisJICoKKwkgKiBUaGVyZSBkb2Vzbid0 IHNlZW0gdG8gYmUgYSBzZXBhcmF0ZSBQSFkgY2xvY2suIHVzYi13Y2xrIHN0b3BzIGNvbnRyb2xs ZXIgcmVnaXN0ZXJzIGZyb20KKwkgKiB1cGRhdGluZywgYnV0IGRvZXNuJ3QgY2F1c2UgdGhlIFVT QiBkZXZpY2UgdG8gZGlzY29ubmVjdCBsaWtlIGFzc2VydGluZyB0aGUgUEhZIHJlc2V0CisJICog ZG9lcy4gQml0IDAgaW4gdGhpcyByZWdpc3RlciBjYW4ndCBiZSBzZXQsIHNvIG5vIFBIWSBjbG9j ayBpcyBoaWRpbmcgdGhlcmUgZWl0aGVyLgorCSAqLworCVtaWF9DTEtfVVNCX1dDTEtdICAgICAg ICAgPSBHQVRFKCJ1c2Itd2NsayIsIFBBUkVOVF9JRChaWF9DTEtfVE9QX01QTExfRDJfRDEzKSwg MHg2YywgMywgMCksCisJW1pYX0NMS19VU0JfUENMS10gICAgICAgICA9IEdBVEUoInVzYi1wY2xr IiwgUEFSRU5UX0lEKFpYX0NMS19BSEJfV0NMSyksIDB4NmMsIDQsIDApLAorCS8qCisJICogVGhl IEhTSUMgaGFyZHdhcmUgaXMgbGlzdGVkIGluIFpURSdzIGNvZGUgd2l0aCBhIHBoeXNpY2FsIGFk ZHJlc3Mgb2YgMHgwMTYwMDAwMC4gVW5saWtlCisJICogdGhlIFVTQiBjb250cm9sbGVyLCBpdCBk b2VzIGNvbnN1bWUgdXBsbC4gWlRFIHNheXMgMjQwIE1IeiwgYnV0IDQ4MCBpcyB0aGUgdXN1YWwg b25lIGZvcgorCSAqIEhTSUMuCisJICovCisJW1pYX0NMS19IU0lDX1dDTEtdICAgICAgICA9IEdB VEUoImhzaWMtd2NsayIsIFBBUkVOVF9JRChaWF9DTEtfVE9QX1VQTEwpLCAweDZjLCAxLCAwKSwK KwlbWlhfQ0xLX0hTSUNfUENMS10gICAgICAgID0gR0FURSgiaHNpYy1wY2xrIiwgUEFSRU5UX0lE KFpYX0NMS19BSEJfV0NMSyksIDB4NmMsIDIsIDApLAorCisJLyoKKwkgKiBIb3cgZG9lcyB0aGlz IFJUQyB3b3JrPyBJIGRvbid0IGtub3csIHRoZSBaVEUga2VybmVsIGRvZXMgbm90IHRhbGsgdG8g aXQuIFRoZSBhY3R1YWwgUlRDCisJICogaXMgb24gdGhlIEkyQy1jb25uZWN0ZWQgUE1JQy4KKwkg Ki8KKwlbWlhfQ0xLX1JUQ19XQ0xLXSAgICAgICAgID0gR0FURSgicnRjLXdjbGsiLCBjbGtfdW5r bm93biwgMHg1NCwgMSwgMCksCisJW1pYX0NMS19SVENfUENMS10gICAgICAgICA9IEdBVEUoInJ0 Yy1wY2xrIiwgY2xrX21haW5bMF0sIDB4NTQsIDAsIDApLAorCisJW1pYX0NMS19VU0lNMV9XQ0xL XSAgICAgICA9IEdBVEUoInVzaW0xLXdjbGsiLCBQQVJFTlRfSUQoWlhfQ0xLX1VTSU0xX0RJViks IDB4NTQsIDI5LCAwKSwKKwlbWlhfQ0xLX1VTSU0xX1BDTEtdICAgICAgID0gR0FURSgidXNpbTEt cGNsayIsIGNsa19tYWluWzBdLCAweDU0LCAyOCwgMCksCisKKwkvKgorCSAqIExURTogZ2F0ZSBv bmx5IGFzIGZhciBhcyBJIGNhbiBzZWUuIEkgbG9va2VkIGZvciByZXNldHMgYW5kIGRpZCBub3Qg ZmluZCBhbnkuIFRoZXJlIG1heQorCSAqIGJlIG11eC9kaXYsIGJ1dCB3aXRob3V0IHVuZGVyc3Rh bmRpbmcgdGhlIGJlaGF2aW9yIG9mIHRoaXMgaGFyZHdhcmUgaXQgaXMgaW1wb3NzaWJsZSB0bwor CSAqIHRlbGwuIFRoZXkgYXJlIHNvcnRlZCBieSBwaHlzaWNhbCBNTUlPIGFkZHJlc3Mgb2YgdGhl IGRldmljZXMsIHdoaWNoIGhhcHBlbnMgdG8gYmUgdGhlCisJICogaW52ZXJzZSBvcmRlciBvZiB0 aGUgYml0cy4KKwkgKgorCSAqIExpa2UgUE1NIGluIHRoaXMgcmVnaXN0ZXIsIGVpdGhlciBiaXQg ZW5hYmxlcyByZWdpc3RlciBhY2Nlc3MsIHdoZXRoZXIgdGhleSBjb250cm9sIHBjbGsKKwkgKiBv ciB3Y2xrIGNhbm5vdCBiZSBkaXN0aW5ndWlzaGVkLgorCSAqCisJICogVGhlIHdvcmsgcGFyZW50 IG9mIEdTTSwgVEQgYW5kIFcgaXMgd2l0aG91dCBkb3VidCBvc2MyNm0uIFRoZSBtbWlvIHNwYWNl IGhhcyByZWdpc3RlcnMKKwkgKiB0aGF0IGNvdW50IHVwIGF0IGFuIGludGVnZXIgZnJhY3Rpb24g b2YgMjYwMDAwMDAuIEdhdGluZyBQTExzIGRvZXMgbm90IGFmZmVjdCB0aGVtLAorCSAqIGluY2x1 ZGluZyBnYXRpbmcgbXBsbC4KKwkgKgorCSAqIExQTV9MVEUgaGFzIHNvbWUgaW50ZXJhY3Rpb24g d2l0aCBMVEVfTU9ERU1fV0NMSy4gSWYgTFRFX01PREVNX1dDTEsgaXMgZGlzYWJsZWQsIExQTV9M VEUKKwkgKiBzdG9wcyBjb3VudGluZywgYW5kIGp1c3QgZmxpcHMgYmV0d2VlbiB0d28gc3RhdGVz LiBUaGlzIG1ha2VzIGl0IGxvb2sgbGlrZSBMUE1fTFRFIGluCisJICogdG9wY3JtIGhhcyBhIGNs b2NrIHBhcmVudCBpbiBtYXRyaXhjcm0sIHdoaWNoIHdvdWxkbid0IG1ha2UgbXVjaCBzZW5zZS4g SSB0aGluayB0aGlzCisJICogYmVoYXZpb3IgaXMgYSByZXN1bHQgb2YgdGhlIGRldmljZXMgaW50 ZXJhY3RpbmcgcmF0aGVyIHRoYW4gYSBjbG9jayBwYXJlbnRhZ2UuCisJICoKKwkgKiBBcyBmb3Ig d2hhdCB0aGVzZSBkZXZpY2VzIGRvPyBJIGFtIG5vdCBzdXJlLiBUaGV5IGdlbmVyYXRlIGEgbG90 IG9mIElSUXMsIGJ1dCB0aGUgSVJRcworCSAqIGFyZSBpbmRlcGVuZGVudCBvZiBhY3R1YWwgcmFk aW8gYWN0aXZpdHkuIFRoZSBaU1AgZmlybXdhcmUgcHJvZ3JhbXMgdGhlbQorCSAqLworCVtaWF9D TEtfTFBNX0dTTV9XQ0xLXSAgICAgPSBHQVRFKCJscG0tZ3NtLXdjbGsiLCBjbGtfbWFpblswXSwg MHg1OCwgMTAsIDApLAorCVtaWF9DTEtfTFBNX0dTTV9QQ0xLXSAgICAgPSBHQVRFKCJscG0tZ3Nt LXBjbGsiLCBjbGtfbWFpblswXSwgMHg1OCwgMTEsIDApLAorCVtaWF9DTEtfTFBNX0xURV9XQ0xL XSAgICAgPSBHQVRFKCJscG0tbHRlLXdjbGsiLCBjbGtfdW5rbm93biwgMHg1OCwgOCwgMCksCisJ W1pYX0NMS19MUE1fTFRFX1BDTEtdICAgICA9IEdBVEUoImxwbS1sdGUtcGNsayIsIGNsa19tYWlu WzBdLCAweDU4LCA5LCAwKSwKKwlbWlhfQ0xLX0xQTV9URF9XQ0xLXSAgICAgID0gR0FURSgibHBt LXRkLXdjbGsiLCBjbGtfbWFpblswXSwgMHg1OCwgNiwgMCksCisJW1pYX0NMS19MUE1fVERfUENM S10gICAgICA9IEdBVEUoImxwbS10ZC1wY2xrIiwgY2xrX21haW5bMF0sIDB4NTgsIDcsIDApLAor CVtaWF9DTEtfTFBNX1dfV0NMS10gICAgICAgPSBHQVRFKCJscG0tdy13Y2xrIiwgY2xrX21haW5b MF0sIDB4NTgsIDQsIDApLAorCVtaWF9DTEtfTFBNX1dfUENMS10gICAgICAgPSBHQVRFKCJscG0t dy1wY2xrIiwgY2xrX21haW5bMF0sIDB4NTgsIDUsIDApLAorCisJW1pYX0NMS19PVVQwX1dDTEtd ICAgICAgICA9IEdBVEUoIm91dDAtd2NsayIsIFBBUkVOVF9JRChaWF9DTEtfT1VUMF9NVVgpLCAw eDM0LCAwLCAwKSwKKwlbWlhfQ0xLX09VVDFfV0NMS10gICAgICAgID0gR0FURSgib3V0MS13Y2xr IiwgUEFSRU5UX0lEKFpYX0NMS19PVVQxX01VWCksIDB4OTAsIDIsIDApLAorCVtaWF9DTEtfT1VU Ml9XQ0xLXSAgICAgICAgPSBHQVRFKCJvdXQyLXdjbGsiLCBQQVJFTlRfSUQoWlhfQ0xLX09VVDJf TVVYKSwgMHg5NCwgMiwgMCksCisJW1pYX0NMS19PVVQzMktfV0NMS10gICAgICA9IEdBVEUoIm91 dDMyay13Y2xrIiwgUEFSRU5UX0ZXKCJvc2MzMmsiKSwgMHgzNCwgMSwgMCksCisJW1pYX0NMS19S TUlJUEhZX1dDTEtdICAgICA9IEdBVEUoInJtaWlwaHktd2NsayIsIFBBUkVOVF9JRChaWF9DTEtf Uk1JSVBIWV9NVVgpLAorCQkJCQkgMHgxMWMsIDIsIDApLAorCisJLyoKKwkgKiBHU00gY2xvY2tz IC0gdGhleSBmZWVkIHRoZSAyRy8zRyByYWRpbyBjb21wb25lbnRzIGFuZCBTSU0gY29udHJvbGxl ci4KKwkgKgorCSAqIFRoZSBuYW1lcyBhcmUgZnJvbSB0aGUgY2xvY2sgdGFibGUgaW4gY3Brby5r by4gVGhlIHBhcmVudHMgb2YgZ3NtLTEwNG0gYW5kIGdzbS0xNTZtIGFyZQorCSAqIGV4cGVyaW1l bnRhbGx5IHZlcmlmaWVkLiBUaGUgZ3NtLTQ4bSBwYXJlbnQgaXMgbGlrZWx5IGJpdCAyIGluIHRv cGNybSsweDE0MC4gSSBoYXZlIG5vdAorCSAqIGZvdW5kIGFuIGNvbnN1bWVyIHRoYXQgSSB1bmRl cnN0YW5kIHdlbGwgZW5vdWdoIHRvIHNheSBpZiBpdCBpcyBydW5uaW5nIG9yIG5vdCwgc28gSSBo YXZlCisJICogbm90IGJlZW4gYWJsZSB0byBjb25maXJtIHRoaXMgeWV0LgorCSAqLworCVtaWF9D TEtfR1NNXzMyS10gICAgICAgICAgPSBHQVRFKCJnc20tMzJrIiwgUEFSRU5UX0ZXKCJvc2MzMmsi KSwgMHg2OCwgMCwgMCksCisJW1pYX0NMS19HU01fMjZNXSAgICAgICAgICA9IEdBVEUoImdzbS0y Nm0iLCBQQVJFTlRfRlcoIm9zYzI2bSIpLCAweDY4LCAxLCAwKSwKKwlbWlhfQ0xLX0dTTV80OE1d ICAgICAgICAgID0gR0FURSgiZ3NtLTQ4bSIsIGNsa191bmtub3duLCAweDY4LCAyLCAwKSwKKwlb WlhfQ0xLX0dTTV8xMDRNXSAgICAgICAgID0gR0FURSgiZ3NtLTEwNG0iLCBQQVJFTlRfSUQoWlhf Q0xLX1RPUF9NUExMX0Q2KSwgMHg2OCwgMywgMCksCisJW1pYX0NMS19HU01fMTU2TV0gICAgICAg ICA9IEdBVEUoImdzbS0xNTZtIiwgUEFSRU5UX0lEKFpYX0NMS19UT1BfTVBMTF9ENCksIDB4Njgs IDQsIDApLAorCisJLyogQW5hbG9nIEJhc2ViYW5kLCBwcm9iYWJseS4gY3Brby5rbyBlbmFibGVz IGl0IGZvciBMVEUsIGFuZCBMVEUgc2NhbnMgY29tZSBiYWNrIGVtcHR5CisJICogd2l0aG91dCBp dC4gVGhlIE1NSU8gbG9jYXRpb24gb2YgdGhlIGRldmljZSBpcyB1bmtub3duLiBJdCBpcyBsaWtl bHkgY29ubmVjdGVkIG9ubHkgdG8KKwkgKiBaU1AgYW5kIGluYWNjZXNzaWJsZSB0byB0aGUgbWFp biBDUFUuCisJICovCisJW1pYX0NMS19BQkJfV0NMS10gICAgICAgICA9IEdBVEUoImFiYi13Y2xr IiwgY2xrX3Vua25vd24sIDB4MTQ0LCAxLCAwKSwKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25l ZCBpbnQgengyOTc1MjB2M190b3BfZXhwb3J0c1tdID0geworCVtaWDI5NzUyMFYzX00wX1dDTEtd ID0JCVpYX0NMS19NMF9NVVgsCisJW1pYMjk3NTIwVjNfU1JBTTFfUENMS10gPQlaWF9DTEtfU1JB TTFfUENMSywKKwlbWlgyOTc1MjBWM19TUkFNMl9QQ0xLXSA9CVpYX0NMS19TUkFNMl9QQ0xLLAor CVtaWDI5NzUyMFYzX1VBUlQwX1dDTEtdID0JWlhfQ0xLX1VBUlQwX1dDTEssCisJW1pYMjk3NTIw VjNfVUFSVDBfUENMS10gPQlaWF9DTEtfVUFSVDBfUENMSywKKwlbWlgyOTc1MjBWM19JMkMwX1dD TEtdID0JWlhfQ0xLX0kyQzBfV0NMSywKKwlbWlgyOTc1MjBWM19JMkMwX1BDTEtdID0JWlhfQ0xL X0kyQzBfUENMSywKKwlbWlgyOTc1MjBWM19SVENfV0NMS10gPQkJWlhfQ0xLX1JUQ19XQ0xLLAor CVtaWDI5NzUyMFYzX1JUQ19QQ0xLXSA9CQlaWF9DTEtfUlRDX1BDTEssCisJW1pYMjk3NTIwVjNf TFBNX0dTTV9XQ0xLXSA9CVpYX0NMS19MUE1fR1NNX1dDTEssCisJW1pYMjk3NTIwVjNfTFBNX0dT TV9QQ0xLXSA9CVpYX0NMS19MUE1fR1NNX1BDTEssCisJW1pYMjk3NTIwVjNfTFBNX0xURV9XQ0xL XSA9CVpYX0NMS19MUE1fTFRFX1dDTEssCisJW1pYMjk3NTIwVjNfTFBNX0xURV9QQ0xLXSA9CVpY X0NMS19MUE1fTFRFX1BDTEssCisJW1pYMjk3NTIwVjNfTFBNX1REX1dDTEtdID0JWlhfQ0xLX0xQ TV9URF9XQ0xLLAorCVtaWDI5NzUyMFYzX0xQTV9URF9QQ0xLXSA9CVpYX0NMS19MUE1fVERfUENM SywKKwlbWlgyOTc1MjBWM19MUE1fV19XQ0xLXSA9CVpYX0NMS19MUE1fV19XQ0xLLAorCVtaWDI5 NzUyMFYzX0xQTV9XX1BDTEtdID0JWlhfQ0xLX0xQTV9XX1BDTEssCisJW1pYMjk3NTIwVjNfVElN RVJfVDA4X1dDTEtdID0JWlhfQ0xLX1RJTUVSX1QwOF9XQ0xLLAorCVtaWDI5NzUyMFYzX1RJTUVS X1QwOF9QQ0xLXSA9CVpYX0NMS19USU1FUl9UMDhfUENMSywKKwlbWlgyOTc1MjBWM19USU1FUl9U MDlfV0NMS10gPQlaWF9DTEtfVElNRVJfVDA5X1dDTEssCisJW1pYMjk3NTIwVjNfVElNRVJfVDA5 X1BDTEtdID0JWlhfQ0xLX1RJTUVSX1QwOV9QQ0xLLAorCVtaWDI5NzUyMFYzX01QTExdID0JCVpY X0NMS19UT01BVFJJWF9NUExMLAorCVtaWDI5NzUyMFYzX01QTExfRDVdID0JCVpYX0NMS19UT01B VFJJWF9NUExMX0Q1LAorCVtaWDI5NzUyMFYzX0RQTExdID0JCVpYX0NMS19UT01BVFJJWF9EUExM LAorCVtaWDI5NzUyMFYzX0dQTExdID0JCVpYX0NMS19UT01BVFJJWF9HUExMLAorCVtaWDI5NzUy MFYzX0dQTExfRDJdID0JCVpYX0NMS19UT01BVFJJWF9HUExMX0QyLAorCVtaWDI5NzUyMFYzX0dB VEVEX09TQzI2TV0gPQlaWF9DTEtfVE9NQVRSSVhfT1NDMjZNLAorCVtaWDI5NzUyMFYzX1BNTV9X Q0xLXSA9CQlaWF9DTEtfUE1NX1dDTEssCisJW1pYMjk3NTIwVjNfUE1NX1BDTEtdID0JCVpYX0NM S19QTU1fUENMSywKKwlbWlgyOTc1MjBWM19PVVQwX1dDTEtdID0JWlhfQ0xLX09VVDBfV0NMSywK KwlbWlgyOTc1MjBWM19PVVQxX1dDTEtdID0JWlhfQ0xLX09VVDFfV0NMSywKKwlbWlgyOTc1MjBW M19PVVQyX1dDTEtdID0JWlhfQ0xLX09VVDJfV0NMSywKKwlbWlgyOTc1MjBWM19PVVQzMktfV0NM S10gPQlaWF9DTEtfT1VUMzJLX1dDTEssCisJW1pYMjk3NTIwVjNfUk1JSVBIWV9XQ0xLXSA9CVpY X0NMS19STUlJUEhZX1dDTEssCisJW1pYMjk3NTIwVjNfVElNRVJfVDEyX1dDTEtdID0JWlhfQ0xL X1RJTUVSX1QxMl9XQ0xLLAorCVtaWDI5NzUyMFYzX1RJTUVSX1QxMl9QQ0xLXSA9CVpYX0NMS19U SU1FUl9UMTJfUENMSywKKwlbWlgyOTc1MjBWM19USU1FUl9UMTNfV0NMS10gPQlaWF9DTEtfVElN RVJfVDEzX1dDTEssCisJW1pYMjk3NTIwVjNfVElNRVJfVDEzX1BDTEtdID0JWlhfQ0xLX1RJTUVS X1QxM19QQ0xLLAorCVtaWDI5NzUyMFYzX1RJTUVSX1QxNF9XQ0xLXSA9CVpYX0NMS19USU1FUl9U MTRfV0NMSywKKwlbWlgyOTc1MjBWM19USU1FUl9UMTRfUENMS10gPQlaWF9DTEtfVElNRVJfVDE0 X1BDTEssCisJW1pYMjk3NTIwVjNfVElNRVJfVDE1X1dDTEtdID0JWlhfQ0xLX1RJTUVSX1QxNV9X Q0xLLAorCVtaWDI5NzUyMFYzX1RJTUVSX1QxNV9QQ0xLXSA9CVpYX0NMS19USU1FUl9UMTVfUENM SywKKwlbWlgyOTc1MjBWM19USU1FUl9UMTZfV0NMS10gPQlaWF9DTEtfVElNRVJfVDE2X1dDTEss CisJW1pYMjk3NTIwVjNfVElNRVJfVDE2X1BDTEtdID0JWlhfQ0xLX1RJTUVSX1QxNl9QQ0xLLAor CVtaWDI5NzUyMFYzX1RJTUVSX1QxN19XQ0xLXSA9CVpYX0NMS19USU1FUl9UMTdfV0NMSywKKwlb WlgyOTc1MjBWM19USU1FUl9UMTdfUENMS10gPQlaWF9DTEtfVElNRVJfVDE3X1BDTEssCisJW1pY Mjk3NTIwVjNfV0RUX1QxOF9XQ0xLXSA9CVpYX0NMS19XRFRfVDE4X1dDTEssCisJW1pYMjk3NTIw VjNfV0RUX1QxOF9QQ0xLXSA9CVpYX0NMS19XRFRfVDE4X1BDTEssCisJW1pYMjk3NTIwVjNfVVNJ TTFfV0NMS10gPQlaWF9DTEtfVVNJTTFfV0NMSywKKwlbWlgyOTc1MjBWM19VU0lNMV9QQ0xLXSA9 CVpYX0NMS19VU0lNMV9QQ0xLLAorCVtaWDI5NzUyMFYzX0FIQl9XQ0xLXSA9CQlaWF9DTEtfQUhC X1dDTEssCisJW1pYMjk3NTIwVjNfQUhCX1BDTEtdID0JCVpYX0NMS19BSEJfUENMSywKKwlbWlgy OTc1MjBWM19VU0JfV0NMS10gPQkJWlhfQ0xLX1VTQl9XQ0xLLAorCVtaWDI5NzUyMFYzX1VTQl9Q Q0xLXSA9CQlaWF9DTEtfVVNCX1BDTEssCisJW1pYMjk3NTIwVjNfSFNJQ19XQ0xLXSA9CVpYX0NM S19IU0lDX1dDTEssCisJW1pYMjk3NTIwVjNfSFNJQ19QQ0xLXSA9CVpYX0NMS19IU0lDX1BDTEss CisJW1pYMjk3NTIwVjNfR1NNXzMyS10gPQkJWlhfQ0xLX0dTTV8zMkssCisJW1pYMjk3NTIwVjNf R1NNXzI2TV0gPQkJWlhfQ0xLX0dTTV8yNk0sCisJW1pYMjk3NTIwVjNfR1NNXzQ4TV0gPQkJWlhf Q0xLX0dTTV80OE0sCisJW1pYMjk3NTIwVjNfR1NNXzEwNE1dID0JCVpYX0NMS19HU01fMTA0TSwK KwlbWlgyOTc1MjBWM19HU01fMTU2TV0gPQkJWlhfQ0xLX0dTTV8xNTZNLAorCVtaWDI5NzUyMFYz X0FCQl9XQ0xLXSA9CQlaWF9DTEtfQUJCX1dDTEssCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0 IHp4X2Nsa19kYXRhIHp4Mjk3NTIwdjNfdG9wY2xrX2RhdGEgPSB7CisJLmNsb2NrcyA9IHp4Mjk3 NTIwdjNfdG9wX2Nsb2NrcywKKwkubnVtX2Nsb2NrcyA9IEFSUkFZX1NJWkUoengyOTc1MjB2M190 b3BfY2xvY2tzKSwKKwkuZXhwb3J0cyA9IHp4Mjk3NTIwdjNfdG9wX2V4cG9ydHMsCisJLm51bV9l eHBvcnRzID0gQVJSQVlfU0laRSh6eDI5NzUyMHYzX3RvcF9leHBvcnRzKSwKK307CisKK3N0YXRp YyBpbnQgY2xrX3p4Mjk3NTIwdjNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK K3sKKwljb25zdCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkICppZCA9IHBsYXRmb3JtX2dldF9k ZXZpY2VfaWQocGRldik7CisKKwlpZiAoIWlkKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCXJldHVy biB6eF9jbGtfY29tbW9uX3Byb2JlKCZwZGV2LT5kZXYsIHBkZXYtPmRldi5wYXJlbnQtPm9mX25v ZGUsCisJCQkJICAgKGNvbnN0IHN0cnVjdCB6eF9jbGtfZGF0YSAqKWlkLT5kcml2ZXJfZGF0YSk7 Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkIGNsa196eDI5NzUy MHYzX2lkc1tdID0geworCXsKKwkJLm5hbWUgPSAiengyOTc1MjB2My10b3BjbGsiLAorCQkuZHJp dmVyX2RhdGEgPSAoa2VybmVsX3Vsb25nX3QpJnp4Mjk3NTIwdjNfdG9wY2xrX2RhdGEsCisJfSwK Kwl7IH0KK307CitNT0RVTEVfREVWSUNFX1RBQkxFKHBsYXRmb3JtLCBjbGtfengyOTc1MjB2M19p ZHMpOworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBjbGtfengyOTc1MjB2MyA9IHsK KwkucHJvYmUgPSBjbGtfengyOTc1MjB2M19wcm9iZSwKKwkuZHJpdmVyID0geworCQkubmFtZSA9 ICJjbGstengyOTc1MjB2MyIsCisJfSwKKwkuaWRfdGFibGUgPSBjbGtfengyOTc1MjB2M19pZHMs Cit9OworbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihjbGtfengyOTc1MjB2Myk7CisKK01PRFVMRV9B VVRIT1IoIlN0ZWZhbiBEw7ZzaW5nZXIgPHN0ZWZhbmRvZXNpbmdlckBnbWFpbC5jb20+Iik7CitN T0RVTEVfREVTQ1JJUFRJT04oIlpURSB6eDI5NzUyMHYzIGNsb2NrIGRyaXZlciIpOworTU9EVUxF X0xJQ0VOU0UoIkdQTCIpOwoKLS0gCjIuNTUuMAoKCi0tIApsaW51eC1waHkgbWFpbGluZyBsaXN0 CmxpbnV4LXBoeUBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHBzOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXBoeQo=