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 2CB73C9830B for ; Wed, 23 Sep 2026 18:30:18 +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=2jLkZe6LaA9VCMDESdBkoWRP7H0Vbz1p58vUIKD6j4w=; b=TzWEyt0kOzj+zd vSHQr9SdKDAtWznU5/ylxCGs4HF5s6JpbGOozDazAm6/tAnpy4kss1uyM+gz30ELqsKL8W2vXNSxb UoayI8oSN/1MgW/FAgy7zohxyv+Y88FtbtIxbsuwYTBW7wiYM2J6yZaQ5slqxJ0pDjmHhhBE/Mnpe 39oxb908cTFVbV/rmMUoOM40O95AaY+Brgyy6gDsClKvzzVY15ucmjtf3n1zYCPye44aeZ8MOUfTd +JI7OS5V+gkY3/p1LC0zyc8br1K/jJF1Odtnu0859yeZsbTg4CDjHofYVdJUh8PRk7ROvkg4s0KWj ERGsYleer3ctYkzfbHWg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x9RjV-00000009CRh-3eqX; Wed, 23 Sep 2026 18:30:17 +0000 Received: from mail-wr2-x10.google.com ([2a00:1450:4864:30::10]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x9RjQ-00000009CKX-0Q02 for linux-phy@lists.infradead.org; Wed, 23 Sep 2026 18:30:13 +0000 Received: by mail-wr2-x10.google.com with SMTP id ffacd0b85a97d-4843c3ee4cfso789426f8f.2 for ; Wed, 23 Sep 2026 11:30:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790188210; x=1790793010; 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=rYICpVzQ4SvheQfKymI1N97ViCOprSUE+ickowk9be0=; b=ZEadTpxtB+OLpoNkeN3oyQJn19jLJ2NfzI85f+9e/sC/ZRJdVPpGIyUSZ/kVseevWF Z1Zzj36wATJwnieNqVnLw3sqoPl9rw+Am1mDOnH5t5aRntmQkBEnG37B9hgwQeJkdZTF wU60lksparbBPqnq0ZO+uIOHKPCWJjP1kc3Y4YeERHU3fLzMDFkKcTcBDeaQfeTmQkmB m+/JBzKQ1jOEOx/6mJtFrm9QKYoO3Ev9WmTVYSFzqg4mTb5QRMKZDBTU+2tOVSBIPjUe Wzm8CLGsNLD8LHKeVrYX/8AR502Y3TuY/vJXvopz2DoNMRX5nxZdQySvZK3Nov1Ey98n +DmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790188210; x=1790793010; 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=rYICpVzQ4SvheQfKymI1N97ViCOprSUE+ickowk9be0=; b=0NfW+g+HeuFO8odmqHWWJW1QCkNGcG2aQ2WZ8TwafbzU4uhCgjeiCnT+r4pUQiw0Ih ygH+BlrnidTSzJWwyoS3JNe6/E3ApzNrpvbcTKYnTcou62t3tMxb5gxoCl0rogONRKu7 cp8PxoyIY1fz4IIkdvH1LVtpbrlu1+WTVZjIURa0xFQ5itZEjNQZKPmrygMcSsPxh3// qoszujdn0wd8xw1qREsiVDqgv5+Pk5pZ17QnS9iqQJjqS1lPE+RqRvFgOfDywMTaum4D YDvBzwr/03OjYr+WkjAoFr0Z6NCm7HQKzUMg8uEzZIfVgTBstGqeVAfgLpXcdIFasMCg JT5g== X-Forwarded-Encrypted: i=1; AKwUvBxHcUESbBVsGBt/XHpN8A31HibmnVGbtDH/danyPmWq3TNMKRfpbsuEVZaku9HO/iudJ3R2H60kGYU=@lists.infradead.org X-Gm-Message-State: AFuF++lsciJTL1HHSCnK02qCTfXgqapIO9+uxThOitu0zG7PitwSPCNp pkxBDivxKIN+UoIccTmI8uPvBmegtcv+MPpxlpE15Rb0INGm54aY6SOc X-Gm-Gg: AYBFou1Dm8ETwp1cwIAmrORy1B8xhYKHhEGAKkAZKJkHL6I4fnyx2ycO8tk5C4NSIKv rnt5QYSwWrAGQ31HjZYAYHIqgJ2w7U0SgXWSUUUQMIygb66UAk6P6PBHf9AwYh4YcBVcr46RfJA By2iAZDK7ogw5gXTrEVgVs7V8GJOMX83vPtUq1twq3wmzwLOETyq7Qn48aMagCLfHS0CiloP7kJ 9FyNfCVug4XYRirPGa5As+XrjqCr0Jsa1ltkMwZNIBbKw82Wqq+zA5Luu8BuTxs2afYFeMaSUkz i/qnDFilp+eQP96WsKrNVGejFjcoaaZq8YMC7JxBb94ON2XJuoc32XlkFBBezrY4QhJJz+tukyQ GXaBphji1O0zdXPi51PQ2ViVS4AEylXQR7bgmkKASypmb0dDgdewh/H1yB9zvP9HkJsH1Ehhz15 6S+Ma+nmlyom/f+4GDnsq+kIX59aPyk6MwwAd9HpWq/quxnMFii5JSh4VJZ7yaW7lQzV0i4u4JX jKn X-Received: by 2002:a05:600c:468f:b0:49d:1df8:156d with SMTP id 5b1f17b1804b1-49fe66e6438mr1374375e9.18.1790188210061; Wed, 23 Sep 2026 11:30:10 -0700 (PDT) Received: from [192.168.0.2] ([197.250.51.38]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fe5cd3d5csm4711835e9.14.2026.09.23.11.30.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Sep 2026 11:30:09 -0700 (PDT) From: =?utf-8?q?Stefan_D=C3=B6singer?= Date: Wed, 23 Sep 2026 21:28:55 +0300 Subject: [PATCH v12 09/12] clk: zte: Introduce a driver for zx297520v3 matrix clocks MIME-Version: 1.0 Message-Id: <20260923-zx29clk-v12-9-9c243796b6d2@gmail.com> References: <20260923-zx29clk-v12-0-9c243796b6d2@gmail.com> In-Reply-To: <20260923-zx29clk-v12-0-9c243796b6d2@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=27754; i=stefandoesinger@gmail.com; h=from:subject:message-id; bh=qFcRz7TUwqfxb6IPOgPHjz/C3QIq4JpgYCJJ9SqSIaI=; b=owEBiQJ2/ZANAwAIAT0TvMhUTxoiAcsmYgBqtBpu5qnXe/qL9kdWb1J2gHhWqgHfjZxQVwGEH 5ePo0zR6NaJAk8EAAEIADkWIQRDFvS2qgVbJ5UyXWw9E7zIVE8aIgUCarQabhsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMiwyLDIACgkQPRO8yFRPGiKT8A/9G3KgGvQfVU5qlJ9j37G49kAR22cUiqa Jh1O/RLWdvX0pLJeeX8iHxaZVH50J3ml6OuSIs2kARNYBFaBlMsFGAFTQWbUjt9uLNmCiMN5T/b Rv3L7LXPlSHG7qLB9cQUWAVieiYQ4p+Mg+poEmaCjlOBP5uv13UAmHpGw4bhl6Lag/O5oqjYJLp ZrWHQMrbrieyUaHpiD9JZW/qW9GzYIJOBcqOF37xXDaRVLhrPLJGKlvhZBpHi+9XpuWtyEv4AOZ xnPRyrK4kI0kg71QN/BR2XQ+82+TAqfRIdpvS2Gx7+Q7QZkyHJOz1G7mfwum3zLoKVeVyCwaRYN ROFsQ8BpKqGDGuMqp03HfSUDw4s3MeTiWjCtn2GDY93QfpcpQa62mYJ06fqK5HNhA+eTFiSpmzs gk8KRAug78jXVTOOqPWG6y4EOufxZSVMdZmlXoXHVux8AVRB/gkrs1MYlYjDruDFhEdNPxkF7qp 3JfAjEUW+xt23nWXiEvxUG3MrMtKDfszSUKDO/7A0joGEWuuE9vTvUfw+ghsUpNLnjrYUSAhA9B IhoxU/QVECZY2J8yTtg7TURgRs1wskPh+v5DkygqeIIch7xtJjpDBEXhCH+Yfia3eq1b8Bx71lr cQFGY4pAASQ6ROBSV0cyxvsYATyuPStcmPj/Afu0XckGdMYs+91I= 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-20260923_113012_489071_29B5FD75 X-CRM114-Status: GOOD ( 28.86 ) 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 Z2lzdGVycyBJIGhhdmUgc3BvdHRlZCBoZXJlCmFyZSBoYXJkd2FyZSBzcGlubG9ja3MuCgpSZXZp ZXdlZC1ieTogQnJpYW4gTWFzbmV5IDxibWFzbmV5QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6 IFN0ZWZhbiBEw7ZzaW5nZXIgPHN0ZWZhbmRvZXNpbmdlckBnbWFpbC5jb20+Ci0tLQoKVmVyc2lv biAxMjogQWRkIFJGRkUgY2xvY2suIElzIHBhcnQgb2YgdGhlIFNTQyBkZXZpY2UsIHdoaWNoIGxv b2tzIGxpa2UKYW4gU1BJLWxpa2UgY29udHJvbGxlciB0aGF0IHByb3ZpZGVzIGEgY29udHJvbCBj aGFubmVsIHRvIHRoZSBMVEUgcmFkaW8KZGV2aWNlcy4KCkV4cG9ydCBMVEVfTU9ERU0gY2xvY2tz LiBUaGUgTFRFIGZpcm13YXJlIG5lZWRzIGl0IGVuYWJsZWQsIGJ1dCBvdGhlcndpc2UKbWFuYWdl cyB0aGUgTFRFX01PREVNIGRldmljZSBhdXRvbm9tb3VzbHksIHNvIEkgaGF2ZSBubyBpZGVhIGhv dyB0aGUKZGV2aWNlIHdvcmtzIG9yIHdoYXQgaXQgaXMgY29tcG9zZWQgb2YuCgpWZXJzaW9uIDEw OgpBZGQgWlNQIFBDTEsuIFpTUCBjbG9jayBnYXRlcyBhcmUgaW4gMHgzNC4gMHgzYyBpcyBhbm90 aGVyIHJlc2V0IHJlZ2lzdGVyLgpJbXByb3ZlIFpTUCBXQ0xLIG11eC4KClZlcnNpb24gOToKTGlu ayBpbnRlcm5hbCBwYXJlbnRzIGJ5IGFuIChpbnRlcm5hbCkgY2xvY2sgSUQgcmF0aGVyIHRoYW4g bmFtZXMuCgpUaGVyZSBhcmUgMyBpbnRlbnRpb25hbCBjaGFuZ2VzIHZzIHZlcnNpb24gOCBpbiB0 aGUgY2xvY2sgdHJlZToKImdtYWMtYWhiIiBkZXBlbmRzIG9uIHRoZSBhaGIgY2xvY2sgaW1wb3J0 ZWQgZnJvbSB0b3Bjcm0uIFRoaXMgd2FzCmFscmVhZHkgdGhlIGNhc2UgYmVmb3JlLCBidXQgaXQg d2FzIG1pc3NpbmcgZnJvbSB0aGUgYmluZGluZ3MgYW5kIHRoZQpnbG9iYWwgbmFtZSBtYXRjaGlu ZyBvYnNjdXJlZCBpdC4KCldoZW4gcmUtdGVzdGluZyBvdGhlciBkZXZpY2VzIGZvciBwb3RlbnRp YWwgdG9wY3JtLT5haGIgZGVwZW5kZW5jaWVzIEkKbm90aWNlZCB0aGF0IHRoZSB0d28gU0RJTyBk ZXZpY2VzIHRha2UgdGhlaXIgcGNsayBmcm9tIHRvcGNybS0+YWhiIGFzCndlbGwuCgpAU2FzaGlr bzogQW55IHBvc3NpYmxlIG90aGVyIGNsb2NrIHRyZWUgY2hhbmdlIGNvbXBhcmVkIHRvIHZlcnNp b24gOCBpcwp1bmludGVudGlvbmFsIGFuZCBhIGxpa2VseSBidWcuCgpWZXJzaW9uIDg6CkFkZCBh bm90aGVyIGRpc3RyaWJ1dGlvbiBnYXRlIHJlZ2lzdGVyOiAweDExOCBnYXRlcyBvZmYgbWF0cml4 LWdlbmVyYXRlZApkaXZpc2lvbnMgb2YgbXBsbCwgZHBsbCBhbmQgZ3BsbC4gSXQgbmljZWx5IGZp dHMgdGhlIHRvcC0+bWF0cml4IGZvcndhcmQKcGljdHVyZS4KCkFYSSA2LjUgTUh6IGlzIG5vdCBh biBtcGxsIGNoaWxkLiBJIG11c3QgaGF2ZSBkb25lIHNvbWV0aGluZyB3cm9uZyB3aGVuCm9yaWdp bmFsbHkgdGVzdGluZyB0aGlzCgpBZGQgZXhwbGFuYXRpb25zIGFib3V0IGFkZGl0aW9uYWwgQVJN IGFyY2hpdGVjdGVkIHRpbWVyIGNvbnRyb2xzLgoKQWRkIGdhdGVzIGZvciB1bmtub3duIExURSBo YXJkd2FyZSBhdCBvZmZzZXQgMHg2MC4gVGhleSBhcmUgbm90IGV4cG9ydGVkCmluIHRoZSBiaW5k aW5ncyBiZWNhdXNlIHRoZSBhY3R1YWwgbmFtZSBvZiB0aGUgY29uc3VtZXIgaXNuJ3QgY2xlYXIg LQpidXQgaWYgZHBsbCBpcyB1bnByZXBhcmVkIGFuZCBmZWVkcyBhIGJ5cGFzcyAyNiBNSHogc2ln bmFsLCB0aGlzIGRldmljZQpzdGFydHMgc3BhbW1pbmcgSVJRcyAoYWx0aG91Z2ggdGhlIDB4MTE4 IGFuZCB0b3ArMHgxNDAgZ2F0ZXMgYWxzbwpwcmV2ZW50IHRoaXMgdXN1YWxseSkKCkRvdWJsZS1j aGVjayBwY2xrIGFuZCB3Y2xrIG9mIGFsbCBkZXZpY2VzLiBUaGUgU0RJTyBhbmQgRURDUCBjbG9j a3Mgd2VyZQpmbGlwcGVkIGluIHByZXZpb3VzIHN1Ym1pc3Npb25zLgoKVmVyc2lvbiA3OgpSZWR1 Y2VkIHRoZSBpbnB1dCBjbG9ja3MgYSBsb3QuIE1vc3QgTVBMTCBzdWJkaXZpc2lvbnMgYXJlIGNo aWxkcmVuIG9mCnRoZSBzYW1lIGdhdGUgaW4gdG9wLCBzbyBwdXQgdGhlIGZpeGVkIGZhY3RvciBj bG9ja3MgaGVyZS4KCkFkZGVkIGEgZmV3IG1vcmUgY2xvY2tzOiBERFJfQ1RSTCwgQVhJIGJ1cywg QVJNIGFyY2hpdGVjdGVkIHRpbWVyLgpUaGV5IGFyZSBuZWVkZWQgdG8gdGVsbCBDQ0YgdG8ga2Vl cCB0aGUgdG9wIGdhdGVzIGVuYWJsZWQgYW5kIG1hcmtlZApjcml0aWNhbCBiZWNhdXNlIHRoZXkg YXJlbid0IGNvbnN1bWVkIGJ5IGEgRFQgbm9kZS4KClRoZSBBWEkgYnVzIGlzIGRldGVybWluZWQg YnkgYSB2b3Rpbmcgc3lzdGVtLiBJJ3ZlIHNldCB1cCB0aGUgZHJpdmVyIHRvCndyaXRlIHRvIHRo ZSBiYWxsb3QgcmVnaXN0ZXIgWlRFJ3Mga2VybmVsIHVzZXMgYW5kIGVuYWJsZSB2b3RpbmcuIFRo aXMKc2hvdWxkIG1ha2UgbGlmZSBlYXNpZXIgd2l0aCB0aGUgTFRFIHJwcm9jIGJsb2IgbGF0ZXIu CgpWZXJzaW9uIDU6Ck1ha2UgaXQgYW4gTUZEIGNoaWxkIGRldmljZSwgcmVtb3ZlIGF1eCBkZXZp Y2UKRml4IHp4Mjk3NTI5IC0+IHp4Mjk3NTIwIHR5cG9zCkZpeCBBSEJfd2NsayAtPiBhaGJfd2Ns ay4gVGhhdCB3YXMgYSBsZWZ0b3ZlciBvZiBteSBvbGQgY29tcG9zaXRlIHN0cnVjdHMKQWRkIFNS QU0wIGFuZCBHU01fQ0ZHIGNsb2NrcwotLS0KIGRyaXZlcnMvY2xrL3p0ZS9jbGstengyOTc1MjB2 My5jIHwgNTI1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxl IGNoYW5nZWQsIDUyNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvenRl L2Nsay16eDI5NzUyMHYzLmMgYi9kcml2ZXJzL2Nsay96dGUvY2xrLXp4Mjk3NTIwdjMuYwppbmRl eCA2OGJmZWFiODRkNzQuLjkyYjU2NTcxYjE1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvenRl L2Nsay16eDI5NzUyMHYzLmMKKysrIGIvZHJpdmVycy9jbGsvenRlL2Nsay16eDI5NzUyMHYzLmMK QEAgLTgxMiw2ICs4MTIsNTI3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgenhfY2xrX2RhdGEgengy OTc1MjB2M190b3BjbGtfZGF0YSA9IHsKIAkubnVtX2V4cG9ydHMgPSBBUlJBWV9TSVpFKHp4Mjk3 NTIwdjNfdG9wX2V4cG9ydHMpLAogfTsKIAorZW51bSBtYXRyaXhfY2xvY2tfaWRzIHsKKwlaWF9D TEtfTUFUUklYX09TQzI2TV9ENCwKKwlaWF9DTEtfTUFUUklYX01QTExfRDJfUFJFR0FURSwKKwla WF9DTEtfTUFUUklYX01QTExfRDRfUFJFR0FURSwKKwlaWF9DTEtfTUFUUklYX01QTExfRDZfUFJF R0FURSwKKwlaWF9DTEtfTUFUUklYX01QTExfRDhfUFJFR0FURSwKKwlaWF9DTEtfTUFUUklYX01Q TExfRDEyX1BSRUdBVEUsCisJWlhfQ0xLX01BVFJJWF9NUExMX0QxNl9QUkVHQVRFLAorCVpYX0NM S19NQVRSSVhfR1BMTF9EMl9EMl9QUkVHQVRFLAorCVpYX0NMS19NQVRSSVhfR1BMTF9EMl9ENF9Q UkVHQVRFLAorCVpYX0NMS19NQVRSSVhfRFBMTF9EMl9QUkVHQVRFLAorCVpYX0NMS19NQVRSSVhf RFBMTF9ENF9QUkVHQVRFLAorCisJWlhfQ0xLX01BVFJJWF9NUExMX0QxNiwKKwlaWF9DTEtfTUFU UklYX01QTExfRDEyLAorCVpYX0NMS19NQVRSSVhfTVBMTF9EOCwKKwlaWF9DTEtfTUFUUklYX01Q TExfRDYsCisJWlhfQ0xLX01BVFJJWF9NUExMX0Q0LAorCVpYX0NMS19NQVRSSVhfTVBMTF9EMiwK KwlaWF9DTEtfTUFUUklYX0RQTExfRDQsCisJWlhfQ0xLX01BVFJJWF9EUExMX0QyLAorCVpYX0NM S19NQVRSSVhfR1BMTF9EMl9ENCwKKwlaWF9DTEtfTUFUUklYX0dQTExfRDJfRDIsCisKKwlaWF9D TEtfQ1BVX01VWCwKKwlaWF9DTEtfWlNQX01VWCwKKwlaWF9DTEtfRERSX0NUUkxfTVVYLAorCVpY X0NMS19TRDBfTVVYLAorCVpYX0NMS19TRDFfTVVYLAorCVpYX0NMS19OQU5EX01VWCwKKwlaWF9D TEtfRURDUF9NVVgsCisJWlhfQ0xLX1RETV9NVVgsCisJWlhfQ0xLX0FYSV9NVVgsCisKKwlaWF9D TEtfU1lTX1RJTUVSX1dDTEssCisJWlhfQ0xLX0NQVV9XQ0xLLAorCVpYX0NMS19DUFVfUENMSywK KwlaWF9DTEtfWlNQX1dDTEssCisJWlhfQ0xLX1pTUF9QQ0xLLAorCVpYX0NMS19ERFJfQ1RSTF9Q Q0xLLAorCVpYX0NMS19ERFJfQ1RSTF9XQ0xLLAorCVpYX0NMS19TRDBfUENMSywKKwlaWF9DTEtf U0QwX1dDTEssCisJWlhfQ0xLX1NEMF9DREVULAorCVpYX0NMS19TRDFfUENMSywKKwlaWF9DTEtf U0QxX1dDTEssCisJWlhfQ0xLX1NEMV9DREVULAorCVpYX0NMS19OQU5EX1dDTEssCisJWlhfQ0xL X05BTkRfUENMSywKKwlaWF9DTEtfTFRFX01PREVNX1dDTEssCisJWlhfQ0xLX0xURV9NT0RFTV9Q Q0xLLAorCVpYX0NMS19FRENQX1BDTEssCisJWlhfQ0xLX0VEQ1BfV0NMSywKKwlaWF9DTEtfUkZG RV9XQ0xLLAorCVpYX0NMS19TU0NfV0NMSywKKwlaWF9DTEtfU1NDX1BDTEssCisJWlhfQ0xLX1BE Q0ZHX1dDTEssCisJWlhfQ0xLX1BEQ0ZHX1BDTEssCisJWlhfQ0xLX01CT1hfUENMSywKKwlaWF9D TEtfU1JBTTBfUENMSywKKwlaWF9DTEtfR1NNX0NGR19QQ0xLLAorCVpYX0NMS19HTUFDX1dDTEss CisJWlhfQ0xLX0dNQUNfUENMSywKKwlaWF9DTEtfR01BQ19BSEIsCisJWlhfQ0xLX0FYSV9XQ0xL LAorCVpYX0NMS19ETUFfUENMSywKKwlaWF9DTEtfVk9VX1dDTEssCisJWlhfQ0xLX1ZPVV9QQ0xL LAorCVpYX0NMS19UT0xTUF9NUExMX0Q1X1dDTEssCisJWlhfQ0xLX1RPTFNQX01QTExfRDRfV0NM SywKKwlaWF9DTEtfVE9MU1BfTVBMTF9ENl9XQ0xLLAorCVpYX0NMS19UT0xTUF9NUExMX0Q4X1dD TEssCisJWlhfQ0xLX1RPTFNQX01QTExfRDEyX1dDTEssCisJWlhfQ0xLX1RPTFNQX09TQzI2TV9X Q0xLLAorCVpYX0NMS19UT0xTUF9PU0MzMktfV0NMSywKKwlaWF9DTEtfVE9MU1BfUENMSywKKwla WF9DTEtfVE9MU1BfVERNX1dDTEssCisJWlhfQ0xLX1RPTFNQX0RQTExfRDRfV0NMSywKK307CisK Ky8qCisgKiBGb3IgZGV2aWNlcyB3aGljaCBoYXZlIGEgd29ya2luZyBkcml2ZXIgdGhlIHdvcmsg Y2xvY2sgY2FuIGJlIGZpZ3VyZWQgb3V0IGJ5IGdhdGluZyBvZmYgcmVnaXN0ZXJzCisgKiBpbiB0 b3Bjcm0rMHgxNDAuIFRoaXMgaXMgdXNlZCBmb3IgZGV2aWNlcyB3aGVyZSBJIGNhbid0IGludGVy cHJldCB0aGUgcmVnaXN0ZXIgY29udGVudHMgeWV0LgorICovCitzdGF0aWMgY29uc3Qgc3RydWN0 IHp4X3BhcmVudF9kZXNjIG1hdHJpeF91bmsgPSBQQVJFTlRfRlcoIndjbGstb3NjMjZtIik7CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgenhfcGFyZW50X2Rlc2MgY3B1X3NlbFtdID0geworCVBBUkVO VF9GVygid2Nsay1vc2MyNm0iKSwKKwlQQVJFTlRfRlcoIm1wbGwiKSwJCQkvKiA2MjQgTUh6ICov CisJUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9EMiksCS8qIDMxMiBNSHogKi8KKwlQQVJF TlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0Q0KSwJLyogMTU2IE1IeiAqLworfTsKKworLyoKKyAq IEZpZ3VyaW5nIHRoZXNlIHZhbHVlcyBvdXQgaXMgYSBiaXQgdHJpY2t5LiBUaGUgYmVzdCBsaXZl bmVzcyBjaGVjayBvZiB0aGUgWlNQIGlzIHJlYWRpbmcgaXRzIFRDTQorICogYXQgMHg4MTAwMDAw MC4gSWYgaXQgaXMgY2xvY2tlZCB1cCBhbmQgb3V0IG9mIHJlc2V0IHJlYWRpbmcgaXQgd2lsbCBz dWNjZWVkLiBPdGhlcndpc2UsIHJlYWRpbmcKKyAqIHdpbGwgc3RhbGwuIFZhbHVlIDEgZGVwZW5k cyBvbiB0b3Bjcm0rMHgxNDAsIGJpdCAxMywgYnV0IG5vdCBhbnkgbWF0cml4Y3JtKzB4MTE4IGdh dGUsIHNvIGl0IGlzCisgKiBsaWtlbHkgZHBsbCB3aXRob3V0IGEgZGl2LiBNdXggdmFsdWUgMiBk ZXBlbmRzIG9uIDB4MTE4IGJpdCA1LCBzbyBtcGxsLWQyLiBNdXggdmFsdWUgMyBkZXBlbmRzIG9u CisgKiAweDExOCBiaXQgNCwgc28gbXBsbC1kNC4gTXV4IHZhbHVlIDAgaW4gdHVybiBkZXBlbmRz IG9uIHRvcGNybSsweDE0MCwgYml0IDI0IChvc2MyNm0pLCBzbyBpdAorICogZm9sbG93cyB0aGUg dXN1YWwgcGF0dGVybiB0aGF0IG11eCAwIGlzIG9zYzI2bS4KKyAqCisgKiBJZiB0aGUgZmlybXdh cmUgaXMgcnVubmluZyBhbmQgZmVkIHdpdGggaW5pdGlhbGl6YXRpb24gZGF0YSBpdCB3aWxsIHN0 YXJ0IHdyaXRpbmcgc3RhdHVzIG1lc3NhZ2VzCisgKiBvbiBVQVJUMS4gQW4gaW50ZXJydXB0aW9u IG9mIHRoZXNlIG1lc3NhZ2VzIG9yIGEgZmFpbHVyZSB0byByZXNwb25kIHRvIHJwbXNnIGlzIG5v dCBwcm9vZiB0aGF0CisgKiB0aGUgWlNQJ3MgY2xvY2sgaGFzIGJlZW4gZGlzYWJsZWQuIFRoZSBm aXJtd2FyZSdzIHdvcmtpbmdzIGRlcGVuZCBvbiByZWd1bGFyIHRpbWVyIGFuZCBMVEUgZGV2aWNl CisgKiBJUlFzLCBzbyBvbmUgb2YgdGhlc2UgZGV2aWNlcyBtaWdodCBoYXZlIGJlZW4gc3RvcHBl ZCBpbnN0ZWFkLgorICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHp4X3BhcmVudF9kZXNjIHpzcF9z ZWxbXSA9IHsKKwlQQVJFTlRfRlcoIndjbGstb3NjMjZtIiksCisJUEFSRU5UX0ZXKCJkcGxsIiks CQkJLyogNDkxLjUyIE1IeiwgYm9vdCBkZWZhdWx0ICovCisJUEFSRU5UX0lEKFpYX0NMS19NQVRS SVhfTVBMTF9EMiksCS8qIDMxMiBNSHogKi8KKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExM X0Q0KSwJLyogMTU2IE1IeiAqLworfTsKKworLyoKKyAqIFdlIGNhbid0IHJlYWxpc3RpY2FsbHkg Y2hhbmdlIEREUiBzcGVlZCB3aGlsZSBydW5uaW5nIGFuIE9TIG91dCBvZiBERFIgKGl0IHJlYWRz IGdhcmJhZ2UgZm9yIGEKKyAqIHNob3J0IHdoaWxlIG9uIHRyYW5zaXRpb24pLCBidXQgd2UgbmVl ZCB0byBrbm93IGlmIHdlIGhhdmUgdG8ga2VlcCBncGxsIGFsaXZlLiAzMiBNQiBkZXZpY2VzIHVz ZQorICogMjAwIE1Ieiwgd2hpbGUgNjQvMTI4IE1CIG9uZXMgdXNlIDE1NiBNSHouCisgKi8KK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgenhfcGFyZW50X2Rlc2MgZGRyX2N0cmxfc2VsW10gPSB7CisJUEFS RU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9ENCksCS8qIDE1NiBNSHogKi8KKwlQQVJFTlRfRlco ImdwbGwiKSwJCQkvKiAyMDAgTUh6ICovCisJUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9E NiksCS8qIDEwNCBNSHogKi8KKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0Q4KSwJLyog NzggTUh6ICovCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHp4X3BhcmVudF9kZXNjIHNkMF9z ZWxbXSA9IHsKKwlQQVJFTlRfRlcoIndjbGstb3NjMjZtIiksCisJUEFSRU5UX0lEKFpYX0NMS19N QVRSSVhfTVBMTF9ENCksCS8qIDE1NiBNSHogKi8KKwlQQVJFTlRfRlcoImdwbGwtZDIiKSwJCQkv KiAxMDAgTUh6ICovCisJUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9EOCksCS8qIDc4IE1I eiAqLworCVBBUkVOVF9JRChaWF9DTEtfTUFUUklYX0dQTExfRDJfRDIpLAkvKiA1MCBNSHogKi8K KwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9HUExMX0QyX0Q0KSwJLyogMjUgTUh6ICovCit9Owor CitzdGF0aWMgY29uc3Qgc3RydWN0IHp4X3BhcmVudF9kZXNjIHNkMV9zZWxbXSA9IHsKKwlQQVJF TlRfRlcoIndjbGstb3NjMjZtIiksCisJUEFSRU5UX0ZXKCJncGxsLWQyIiksCQkJLyogMTAwIE1I eiAqLworCVBBUkVOVF9JRChaWF9DTEtfTUFUUklYX01QTExfRDgpLAkvKiA3OCBNSHogKi8KKwlQ QVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9HUExMX0QyX0QyKSwJLyogNTAgTUh6ICovCisJUEFSRU5U X0lEKFpYX0NMS19NQVRSSVhfTVBMTF9EMTYpLAkvKiAzOSBNSHogKi8KKwlQQVJFTlRfSUQoWlhf Q0xLX01BVFJJWF9HUExMX0QyX0Q0KSwJLyogMjUgTUh6ICovCit9OworCisvKgorICogWlRFJ3Mg a2VybmVsIHB1dHMgdGhlIGhpZ2ggZnJlcXVlbmN5IGZpcnN0LCBidXQgdGhpcyBpcyBhZ2FpbnN0 IHRoZSB1c3VhbCBjb252ZW50aW9uIG9uIHRoaXMgU29DLgorICogSSBkb24ndCBoYXZlIGFueSBk ZXZpY2UgdGhhdCBoYXMgYSByYXcgTkFORCBjb250cm9sbGVyIHRob3VnaC4KKyAqLworc3RhdGlj IGNvbnN0IHN0cnVjdCB6eF9wYXJlbnRfZGVzYyBuYW5kX3NlbFtdID0geworCVBBUkVOVF9GVygi d2Nsay1vc2MyNm0iKSwKKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0Q0KSwJLyogMTU2 IE1IeiAqLworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB6eF9wYXJlbnRfZGVzYyBlZGNwX3Nl bFtdID0geworCVBBUkVOVF9GVygid2Nsay1vc2MyNm0iKSwKKwlQQVJFTlRfSUQoWlhfQ0xLX01B VFJJWF9NUExMX0Q0KSwJLyogMTU2IE1IeiAqLworCVBBUkVOVF9GVygibXBsbC1kNSIpLAkJCS8q IDEyNC44IE1IeiAqLworCVBBUkVOVF9JRChaWF9DTEtfTUFUUklYX01QTExfRDYpLAkvKiAxMDQg TUh6ICovCit9OworCisvKgorICogVGhlIDEyMi44OCBNSHogc2VsZWN0aW9uIG9mIHZhbHVlIDEg aXMgZ2l2ZW4gaW4gWlRFJ3Mga2VybmVsIGFuZCBtYXRjaGVzIHVwIHRvIG9ic2VydmF0aW9uOiBQ cmludAorICogdGhlIFRETSBjb3VudGVyIGF0IHJlZ3VsYXIgaW50ZXJ2YWxzIGFuZCBsb29rIGF0 IGl0cyBpbmNyZWFzZSBhdCB2YWx1ZXMgMC8xLzIuIEl0IGluY3JlYXNlcyBieQorICogYWJvdXQg MzEwKjI2IGZvciB2YWx1ZSAwLCAzMTAqMTIyLjg4IGZvciB2YWx1ZSAxIGFuZCAzMTAqMTA0IGZv ciB2YWx1ZSAyLgorICoKKyAqIE11eCB2YWx1ZSAxIGlzIGdhdGVkIG9mZiBieSBtYXRyaXgrMHgx MTggYml0IDguIFZhbHVlcyAyIGFuZCAzIGFyZSBib3RoIGdhdGVkIG9mZiBieSAweDExOCBiaXQg MywKKyAqIHN1Z2dlc3RpbmcgdGhhdCB0aGV5IHNlbGVjdCB0aGUgc2FtZSBwYXJlbnQuCisgKi8K K3N0YXRpYyBjb25zdCBzdHJ1Y3QgenhfcGFyZW50X2Rlc2MgdGRtX3NlbFtdID0geworCVBBUkVO VF9GVygid2Nsay1vc2MyNm0iKSwKKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9EUExMX0Q0KSwJ LyogMTIyLjg4IE1IeiAqLworCVBBUkVOVF9JRChaWF9DTEtfTUFUUklYX01QTExfRDYpLAkvKiAx MDQgTUh6ICovCisJUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9ENiksCit9OworCisvKgor ICogWlRFJ3MgZmlybXdhcmUgdXNlcyAweDEyOCBhcyB0aGUgUEhZJ3Mgdm90ZSBhbmQgbmFtZXMg MHgxMjAgYXMgIlBTIiBhbmQgMHgxMjQgYXMgIkFQIiB2b3RlLgorICogSG93ZXZlciwgdGhlaXIg Y3B1ZnJlcSBkcml2ZXIgdWx0aW1hdGVseSB1c2VzIHRoZSAiUFMiIGRlZmluZSBhbmQgdGh1cyB3 cml0ZXMgdG8gMHgxMjAsIHdoaWNoIGNhbgorICogYmUgb2JzZXJ2ZWQgaW4gdGhlIHJ1bm5pbmcg c3lzdGVtLgorICovCisjZGVmaW5lIFpYMjk3NTIwVjNfQVhJX0FQX1ZPVEUgMHgxMjAKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgenhfcGFyZW50X2Rlc2MgYXhpX3NlbFtdID0geworCVBBUkVOVF9GVygi d2Nsay1vc2MyNm0iKSwKKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0Q0KSwJLyogMTU2 IE1IeiAqLworCVBBUkVOVF9GVygibXBsbC1kNSIpLAkJCS8qIDEyNC44IE1IeiAqLworCVBBUkVO VF9JRChaWF9DTEtfTUFUUklYX01QTExfRDYpLAkvKiAxMDQgTUh6ICovCisJUEFSRU5UX0lEKFpY X0NMS19NQVRSSVhfTVBMTF9EOCksCS8qIDc4IE1IeiAqLworCVBBUkVOVF9JRChaWF9DTEtfTUFU UklYX01QTExfRDEyKSwJLyogNTIgTUh6ICovCisJUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBM TF9EMTYpLAkvKiAzOSBNSHogKi8KKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9PU0MyNk1fRDQp LAkvKiA2LjUgTUh6ICovCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHp4X2Nsb2NrIHp4Mjk3 NTIwdjNfbWF0cml4X2Nsb2Nrc1tdID0geworCVtaWF9DTEtfTUFUUklYX09TQzI2TV9ENF0gPSBG SVhFRF9ESVYoIm1hdHJpeC1vc2MyNm0tZDQiLCBQQVJFTlRfRlcoIndjbGstb3NjMjZtIiksIDQp LAorCVtaWF9DTEtfTUFUUklYX01QTExfRDJfUFJFR0FURV0gPSBGSVhFRF9ESVYoIm1hdHJpeC1t cGxsLWQyLXByZWdhdGUiLCBQQVJFTlRfRlcoIm1wbGwiKSwgMiksCisJW1pYX0NMS19NQVRSSVhf TVBMTF9ENF9QUkVHQVRFXSA9IEZJWEVEX0RJVigibWF0cml4LW1wbGwtZDQtcHJlZ2F0ZSIsIFBB UkVOVF9GVygibXBsbCIpLCA0KSwKKwkvKiBkaXYgNTogcHJvdmlkZWQgYXMgYSBzZXBhcmF0ZSBs aW5lIGZyb20gdG9wY3JtICovCisJW1pYX0NMS19NQVRSSVhfTVBMTF9ENl9QUkVHQVRFXSA9IEZJ WEVEX0RJVigibWF0cml4LW1wbGwtZDYtcHJlZ2F0ZSIsIFBBUkVOVF9GVygibXBsbCIpLCA2KSwK KwlbWlhfQ0xLX01BVFJJWF9NUExMX0Q4X1BSRUdBVEVdID0gRklYRURfRElWKCJtYXRyaXgtbXBs bC1kOC1wcmVnYXRlIiwgUEFSRU5UX0ZXKCJtcGxsIiksIDgpLAorCVtaWF9DTEtfTUFUUklYX01Q TExfRDEyX1BSRUdBVEVdID0gRklYRURfRElWKCJtYXRyaXgtbXBsbC1kMTItcHJlZ2F0ZSIsIFBB UkVOVF9GVygibXBsbCIpLAorCQkJCQkJICAgICAxMiksCisJW1pYX0NMS19NQVRSSVhfTVBMTF9E MTZfUFJFR0FURV0gPSBGSVhFRF9ESVYoIm1hdHJpeC1tcGxsLWQxNi1wcmVnYXRlIiwgUEFSRU5U X0ZXKCJtcGxsIiksCisJCQkJCQkgICAgIDE2KSwKKworCVtaWF9DTEtfTUFUUklYX0dQTExfRDJf RDJfUFJFR0FURV0gPSBGSVhFRF9ESVYoIm1hdHJpeC1ncGxsLWQyLWQyLXByZWdhdGUiLAorCQkJ CQkJICAgICAgIFBBUkVOVF9GVygiZ3BsbC1kMiIpLCAyKSwKKwlbWlhfQ0xLX01BVFJJWF9HUExM X0QyX0Q0X1BSRUdBVEVdID0gRklYRURfRElWKCJtYXRyaXgtZ3BsbC1kMi1kNC1wcmVnYXRlIiwK KwkJCQkJCSAgICAgICBQQVJFTlRfRlcoImdwbGwtZDIiKSwgNCksCisKKwlbWlhfQ0xLX01BVFJJ WF9EUExMX0QyX1BSRUdBVEVdID0gRklYRURfRElWKCJtYXRyaXgtZHBsbC1kMi1wcmVnYXRlIiwg UEFSRU5UX0ZXKCJkcGxsIiksIDIpLAorCVtaWF9DTEtfTUFUUklYX0RQTExfRDRfUFJFR0FURV0g PSBGSVhFRF9ESVYoIm1hdHJpeC1kcGxsLWQ0LXByZWdhdGUiLCBQQVJFTlRfRlcoImRwbGwiKSwg NCksCisKKwkvKgorCSAqIE1hdHJpeCBkaXN0cmlidXRpb24gZ2F0ZXM6IEV2ZXJ5IG1hdHJpeC1n ZW5lcmF0ZWQgc3ViZGl2aXNpb24gb2YgdGhlIGlucHV0IFBMTHMKKwkgKiBoYXMgYSBnYXRlIGlu IDB4MTE4LiBUaGUgb3JpZ2luYWwgaW5wdXRzIGZyb20gdG9wY3JtIChtcGxsIDYyNCwgbXBsbCAx MjQuOCwgZ3BsbCAyMDAsCisJICogZ3BsbCAxMDAsIGRwbGwgNDkxLjUyKSBkbyBub3QuCisJICoK KwkgKiBCaXQgOCBpcyBjb25zdW1lZCBieSBURE0gYW5kIHRoZSBmcmVxdWVuY3kgZHBsbC80IGhv bGRzIHVwIHRvIG9ic2VydmF0aW9uLiBCaXQgOSBpcworCSAqIGNvbnN1bWVkIGJ5IGFuIHVua25v d24gZGV2aWNlIGFuZCB0aGUgZnJlcXVlbmN5IGlzIGd1ZXNzZWQgZnJvbSB0aGUgcGF0dGVybiB0 aGF0IGxvd2VyCisJICogYml0cyBnYXRlIGxvd2VyIGZyZXF1ZW5jaWVzLgorCSAqLworCVtaWF9D TEtfTUFUUklYX01QTExfRDE2XSA9IEdBVEUoIm1hdHJpeC1tcGxsLWQxNiIsCisJCQkJCVBBUkVO VF9JRChaWF9DTEtfTUFUUklYX01QTExfRDE2X1BSRUdBVEUpLCAweDExOCwgMCwKKwkJCQkJWlgy OTc1MjBWM19BWElfQ0FORElEQVRFKSwKKwlbWlhfQ0xLX01BVFJJWF9NUExMX0QxMl0gPSBHQVRF KCJtYXRyaXgtbXBsbC1kMTIiLAorCQkJCQlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0Qx Ml9QUkVHQVRFKSwgMHgxMTgsIDEsCisJCQkJCVpYMjk3NTIwVjNfQVhJX0NBTkRJREFURSksCisJ W1pYX0NMS19NQVRSSVhfTVBMTF9EOF0gPSBHQVRFKCJtYXRyaXgtbXBsbC1kOCIsCisJCQkJICAg ICAgIFBBUkVOVF9JRChaWF9DTEtfTUFUUklYX01QTExfRDhfUFJFR0FURSksIDB4MTE4LCAyLAor CQkJCSAgICAgICBaWDI5NzUyMFYzX0FYSV9DQU5ESURBVEUpLAorCVtaWF9DTEtfTUFUUklYX01Q TExfRDZdID0gR0FURSgibWF0cml4LW1wbGwtZDYiLAorCQkJCSAgICAgICBQQVJFTlRfSUQoWlhf Q0xLX01BVFJJWF9NUExMX0Q2X1BSRUdBVEUpLCAweDExOCwgMywKKwkJCQkgICAgICAgWlgyOTc1 MjBWM19BWElfQ0FORElEQVRFKSwKKwlbWlhfQ0xLX01BVFJJWF9NUExMX0Q0XSA9IEdBVEUoIm1h dHJpeC1tcGxsLWQ0IiwKKwkJCQkgICAgICAgUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9E NF9QUkVHQVRFKSwgMHgxMTgsIDQsCisJCQkJICAgICAgIFpYMjk3NTIwVjNfQVhJX0NBTkRJREFU RSksCisJW1pYX0NMS19NQVRSSVhfTVBMTF9EMl0gPSBHQVRFKCJtYXRyaXgtbXBsbC1kMiIsCisJ CQkJCVBBUkVOVF9JRChaWF9DTEtfTUFUUklYX01QTExfRDJfUFJFR0FURSksIDB4MTE4LCA1LCAw KSwKKworCVtaWF9DTEtfTUFUUklYX0RQTExfRDRdID0gR0FURSgibWF0cml4LWRwbGwtZDQiLAor CQkJCSAgICAgICBQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9EUExMX0Q0X1BSRUdBVEUpLCAweDEx OCwgOCwgMCksCisJW1pYX0NMS19NQVRSSVhfRFBMTF9EMl0gPSBHQVRFKCJtYXRyaXgtZHBsbC1k MiIsCisJCQkJICAgICAgIFBBUkVOVF9JRChaWF9DTEtfTUFUUklYX0RQTExfRDJfUFJFR0FURSks IDB4MTE4LCA5LCAwKSwKKworCVtaWF9DTEtfTUFUUklYX0dQTExfRDJfRDRdID0gR0FURSgibWF0 cml4LWdwbGwtZDItZDQiLAorCQkJCQkgIFBBUkVOVF9JRChaWF9DTEtfTUFUUklYX0dQTExfRDJf RDRfUFJFR0FURSksCisJCQkJCSAgMHgxMTgsIDEyLCAwKSwKKwlbWlhfQ0xLX01BVFJJWF9HUExM X0QyX0QyXSA9IEdBVEUoIm1hdHJpeC1ncGxsLWQyLWQyIiwKKwkJCQkJICBQQVJFTlRfSUQoWlhf Q0xLX01BVFJJWF9HUExMX0QyX0QyX1BSRUdBVEUpLAorCQkJCQkgIDB4MTE4LCAxMywgMCksCisK KwlbWlhfQ0xLX0NQVV9NVVhdICAgICAgICAgID0gTVVYKCJjcHUtbXV4IiwgY3B1X3NlbCwgMHgy MCwgMCwgMiksCisJW1pYX0NMS19aU1BfTVVYXSAgICAgICAgICA9IE1VWCgienNwLW11eCIsIHpz cF9zZWwsIDB4MzAsIDAsIDIpLAorCVtaWF9DTEtfRERSX0NUUkxfTVVYXSAgICAgPSBNVVgoImRk ci1jdHJsLW11eCIsIGRkcl9jdHJsX3NlbCwgMHg1MCwgMCwgMiksCisJW1pYX0NMS19TRDBfTVVY XSAgICAgICAgICA9IE1VWCgic2QwLW11eCIsIHNkMF9zZWwsIDB4NTAsIDQsIDMpLAorCVtaWF9D TEtfU0QxX01VWF0gICAgICAgICAgPSBNVVgoInNkMS1tdXgiLCBzZDFfc2VsLCAweDUwLCA4LCAz KSwKKwlbWlhfQ0xLX05BTkRfTVVYXSAgICAgICAgID0gTVVYKCJuYW5kLW11eCIsIG5hbmRfc2Vs LCAweDUwLCAxMiwgMiksCisJW1pYX0NMS19FRENQX01VWF0gICAgICAgICA9IE1VWCgiZWRjcC1t dXgiLCBlZGNwX3NlbCwgMHg1MCwgMTYsIDIpLAorCVtaWF9DTEtfVERNX01VWF0gICAgICAgICAg PSBNVVgoInRkbS1tdXgiLCB0ZG1fc2VsLCAweDUwLCAyNCwgMiksCisJW1pYX0NMS19BWElfTVVY XSAgICAgICAgICA9IE1VWCgiYXhpLW11eCIsIGF4aV9zZWwsIFpYMjk3NTIwVjNfQVhJX0FQX1ZP VEUsIDAsIDMpLAorCisJLyoKKwkgKiBUaGlzIGJpdCBjdXRzIG9mZiB0aGUgY2xvY2sgc2lnbmFs IHRvIHRoZSBBUk0gYXJjaGl0ZWN0ZWQgdGltZXIsIHdoaWNoIHRoZSBrZXJuZWwgdXNlcworCSAq IGFzIGl0cyBtYWluIHRpbWVyLiBJdCBpc24ndCBjcml0aWNhbCBwZXIgc2UgLSB0aGVyZSBhcmUg cGxlbnR5IG9mIHByb3ByaWV0YXJ5IHRpbWVycworCSAqIGF2YWlsYWJsZSB0aGF0IGNvdWxkIGJl IHVzZWQgLSBidXQgdGhlIGFybSBhcmNoIHRpbWVyIGJpbmRpbmcgZG9lcyBub3QgYWNjZXB0IGEg Y2xvY2ssIHNvCisJICogdGhpcyBDQ0YgZHJpdmVyIHdvbid0IGtub3cgaWYgdGhlIHRpbWVyIGlz IGluIHVzZS4KKwkgKgorCSAqIFRoaXMgY2xvY2sgaXMgZmVkIGJ5IHRoZSBvc2MyNm0gZ2F0ZSBp biB0b3Bjcm0rMHgxNDAgLSB0aGlzIGNyaXRpY2FsIGNsb2NrIGhlcmUgcHJvdGVjdHMKKwkgKiBp dHMgcGFyZW50LgorCSAqCisJICogUmVnaXN0ZXJzIDB4MTQ4LCAweDE0YywgMHgxNTAsIDB4MTU0 IGFsbG93IHNldHRpbmcgYW5kIGNsZWFyaW5nIHRoZSB0aW1lciBjb3VudGVyLiBUbworCSAqIHNl dCB0aGUgdGltZXIsIGxvYWQgYSB2YWx1ZSBpbnRvIDB4MTQ4IChoaWdoIDMyIGJpdHMpIGFuZCAw eDE0YyAobG93IDMyIGJpdHMpLCB0aGVuCisJICogdG9nZ2xlIDB4MTUwIHRvIDEuIDB4MTUwIHdp bGwgYXV0b21hdGljYWxseSByZXNldCB0byAwLiAweDE1NCBzZXRzIHRoZSB0aW1lciB0byBzb21l CisJICogImNsZWFyIiB2YWx1ZSwgYnV0IHRoaXMgdmFsdWUgaXNuJ3QgMC4KKwkgKi8KKwlbWlhf Q0xLX1NZU19USU1FUl9XQ0xLXSAgID0gR0FURSgic3lzLXRpbWVyLXdjbGsiLCBQQVJFTlRfRlco IndjbGstb3NjMjZtIiksIDB4MTQ0LCAxLAorCQkJCQkgQ0xLX0lTX0NSSVRJQ0FMKSwKKworCS8q CisJICogQm90aCAweDI0IGFuZCAweDI4IGJpdHMgMSBhbmQgMiBzdG9wIHRoZSBDUFUuIFRoZXJl IGlzIGFsc28gYSBiaXQgaW4gdG9wY3JtKzB4MTM4LCB3aGljaAorCSAqIFpURSdzIHVib290IGNh bGxzICJBNTMgcmVzZXQiLCB3aGljaCBhbHNvIHN0b3BzIHRoZSBDUFUuIEkgY2FuJ3QgcmVhbGx5 IHRlbGwgdGhlCisJICogZGlmZmVyZW5jZSBiZXR3ZWVuIG1hdHJpeCsweDI4IGFuZCB0b3ArMHgx MzguIFRoZSBjbG9jayAobWF0cml4KzB4MjQpIGNhbiBiZSBkaXNhYmxlZAorCSAqIGFuZCBlbmFi bGVkIGZyb20gdGhlIENvcnRleCBNMCBhbmQgaXQgd2lsbCBuaWNlbHkgc3RvcCBhbmQgcmVzdGFy dCB0aGUgQTUzLCByZXRhaW5pbmcKKwkgKiBhbGwgc3RhdGUuCisJICovCisJW1pYX0NMS19DUFVf V0NMS10gICAgICAgICA9IEdBVEUoImNwdS13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19DUFVfTVVY KSwgMHgyNCwgMSwKKwkJCQkJIENMS19JU19DUklUSUNBTCksCisJW1pYX0NMS19DUFVfUENMS10g ICAgICAgICA9IEdBVEUoImNwdS1wY2xrIiwgY2xrX21haW5bMF0sIDB4MjQsIDIsIENMS19JU19D UklUSUNBTCksCisKKwkvKgorCSAqIFRoZXJlIGFyZSBhIGxvdCBtb3JlIGNvbnRyb2xzIGluIG1h dHJpeCsweDEwMC4gMTMtMTYgYXBwZWFyIHRvIGJlIDQgZGlmZmVyZW50IEFYSQorCSAqIGNoYW5u ZWxzIGZvciBkaWZmZXJlbnQgcHJpb3JpdGllcy4gQml0IDE5IGFwcGVhcnMgdG8gYmUgdGhlIERE UiBQSFkgd2Nsay4KKwkgKgorCSAqIFRoZSBpbXBvcnRhbnQgdGFzayBpcyB0byBrZWVwIGdwbGwg ZW5hYmxlZCBpZiB0aGUgYm9vdGxvYWRlciBzZWxlY3RlZCBhIGdwbGwtYmFzZWQgcmF0ZQorCSAq IGZvciBSQU0uCisJICovCisJW1pYX0NMS19ERFJfQ1RSTF9QQ0xLXSAgICA9IEdBVEUoImRkci1j dHJsLXBjbGsiLCBjbGtfbWFpblswXSwgMHgxMDAsIDE3LCBDTEtfSVNfQ1JJVElDQUwpLAorCVta WF9DTEtfRERSX0NUUkxfV0NMS10gICAgPSBHQVRFKCJkZHItY3RybC13Y2xrIiwgUEFSRU5UX0lE KFpYX0NMS19ERFJfQ1RSTF9NVVgpLCAweDEwMCwgMTgsCisJCQkJCSBDTEtfSVNfQ1JJVElDQUwp LAorCisJW1pYX0NMS19aU1BfUENMS10gICAgICAgICA9IEdBVEUoInpzcC1wY2xrIiwgY2xrX21h aW5bMF0sIDB4MzQsIDAsIDApLAorCVtaWF9DTEtfWlNQX1dDTEtdICAgICAgICAgPSBHQVRFKCJ6 c3Atd2NsayIsIFBBUkVOVF9JRChaWF9DTEtfWlNQX01VWCksIDB4MzQsIDEsIDApLAorCisJLyog Qm90aCBTRElPIGNvbnRyb2xsZXJzIGRlcGVuZCBvbiB0aGUgYWhiLXBjbGsgZm9yIHJlZ2lzdGVy IGFjY2Vzcy4gKi8KKwlbWlhfQ0xLX1NEMF9QQ0xLXSAgICAgICAgID0gR0FURSgic2QwLXBjbGsi LCBQQVJFTlRfRlcoImFoYiIpLCAweDU0LCAxMiwgMCksCisJW1pYX0NMS19TRDBfV0NMS10gICAg ICAgICA9IEdBVEUoInNkMC13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19TRDBfTVVYKSwgMHg1NCwg MTMsIDApLAorCVtaWF9DTEtfU0QwX0NERVRdICAgICAgICAgPSBHQVRFKCJzZDAtY2RldCIsIFBB UkVOVF9GVygib3NjMzJrIiksIDB4NTQsIDE0LCAwKSwKKwlbWlhfQ0xLX1NEMV9QQ0xLXSAgICAg ICAgID0gR0FURSgic2QxLXBjbGsiLCBQQVJFTlRfRlcoImFoYiIpLCAweDU0LCA0LCAwKSwKKwlb WlhfQ0xLX1NEMV9XQ0xLXSAgICAgICAgID0gR0FURSgic2QxLXdjbGsiLCBQQVJFTlRfSUQoWlhf Q0xLX1NEMV9NVVgpLCAweDU0LCA1LCAwKSwKKwkvKgorCSAqIEkgZG9uJ3Qga25vdyBob3cgdGhl IGNkZXQgY2xvY2sgd29ya3MuIENhcmQgZGV0ZWN0aW9uIGluIHRoZSB3YXkgdGhlIGR3YyxtbWMg ZHJpdmVyIHVzZXMKKwkgKiBpdCBhcHBlYXJzIGJyb2tlbiBubyBtYXR0ZXIgdGhpcyBjbG9jaydz IHNldHRpbmcuCisJICovCisJW1pYX0NMS19TRDFfQ0RFVF0gICAgICAgICA9IEdBVEUoInNkMS1j ZGV0IiwgUEFSRU5UX0ZXKCJvc2MzMmsiKSwgMHg1NCwgNiwgMCksCisKKwkvKiBUaGlzIGlzIHNv bWUgImRlbmFsaSIgTkFORCwgbm90IHRoZSBxc3BpIGNvbm5lY3RlZCBvbmUgKi8KKwlbWlhfQ0xL X05BTkRfV0NMS10gICAgICAgID0gR0FURSgibmFuZC13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19O QU5EX01VWCksIDB4NTQsIDIwLCAwKSwKKwlbWlhfQ0xLX05BTkRfUENMS10gICAgICAgID0gR0FU RSgibmFuZC1wY2xrIiwgY2xrX21haW5bMF0sIDB4NTQsIDIxLCAwKSwKKworCS8qCisJICogVGhl cmUgaXMgYSBzZXQgb2YgZ2F0ZXMgZm9yIGFuIHVua25vd24gZGV2aWNlIGF0IG1hdHJpeCsweDYw LiBJdCBpcyBzb21lIExURSByZWxhdGVkCisJICogZGV2aWNlIGFuZCB0aGUgcGNsayBnYXRlcyBv ZmYgbW1pbyBhcmVhcyAweGY4MDAwMDAwIGFuZCAweGZjMDAwMDAwLiBUaGVzZSBhcmVhcyBhcmUg b25seQorCSAqIGFjY2Vzc2libGUgdG8gTTAgYW5kIFpTUCwgbm90IHRoZSBBUC4KKwkgKgorCSAq IElmIGl0IGlzIGZlZCBhbiBpbmNvcnJlY3QgY2xvY2ssIGUuZy4gYmVjYXVzZSBkcGxsIGlzIG5v dCBsb2NrZWQgYW5kIG91dHB1dHMgMjYgTUh6LCBpdAorCSAqIHdpbGwgc3BhbSBJUlFzIGF0IFNQ SSA2OC4gVGhpcyBpcyBsaWtlbHkgYSBkaXN0cmVzcyBub3RpZmljYXRpb24gdGhhdCBzb21lCisJ ICogaW50ZXJuYWwgUExMIGRpZCBub3QgbG9jayBvciBzaW1pbGFyLiBaVEUncyBrZXJuZWwgaGFz IHR3byBkZWZpbmVzIGZvciBTUEkgNjg6CisJICogIkxURV9UUFVfSU5UX1BTX0lOVCIgYW5kICJW T1VfT1NEX0lOVCIuIFRoZSBsYXR0ZXIgaXMgdW5saWtlbHkgYmVjYXVzZSBWT1UgcmVsYXRlZCBj bG9ja3MKKwkgKiBzaXQgaW4gbWF0cml4KzB4MTY4LgorCSAqCisJICogVGhlIGFkZHJlc3Mgc3Bh Y2UgaW4gMHhmYzAwMDAwMCBhcHBlYXJzIHRvIGNvbnRhaW4gYSBudW1iZXIgb2YgZGlmZmVyZW50 IGRldmljZXMsIHNvIEkKKwkgKiBoYXZlIG5hbWVkIHRoZSBjbG9jayBMVEVfTU9ERU1fe1cvUH1D TEsuIEl0IGlzIG5vdCBrbm93biBob3cgdGhpcyBtbWlvIGFyZWEgYW5kIGNsb2NrCisJICogcmVs YXRlcyB0byBTUEkgNjggb3IgdGhlIEFCQiBjbG9jayBpbiB0b3Bjcm0rMHgxNDQuIEJlY2F1c2Ug aXQgaXMgbm90IGFjY2Vzc2libGUgdG8gdGhlCisJICogQVAgYXQgYWxsLCBJIGRvbid0IHRoaW5r IHdlIG5lZWQgdG8gY2FyZSBiZXlvbmQgdHVybmluZyBvbiB0aGUgY2xvY2tzIGJlZm9yZSBib290 aW5nIHRoZQorCSAqIFpTUC4KKwkgKgorCSAqIEJpdCA5IGluIHJlZ2lzdGVyIDB4MTE4IHR1cm5z IHRoZSBJUlFzIG9mZiwgc28gaXQgaXMgdGhlIGltbWVkaWF0ZSB3Y2xrIHBhcmVudC4gSXQgaXNu J3QKKwkgKiBjbGVhciB3aGF0IGRpdmlzb3Igb2YgZHBsbCBpdCBpcyB1c2luZyB0aG91Z2guIEZv bGxvd2luZyB0aGUgcGF0dGVybiB0aGF0IGxvd2VyCisJICogZnJlcXVlbmNpZXMgYXJlIGdhdGVk IGJ5IGxvd2VyIGJpdHMsIGl0IHdvdWxkIGluZGljYXRlIGRwbGwvMiBvciBkcGxsLzMuCisJICov CisJW1pYX0NMS19MVEVfTU9ERU1fV0NMS10gICA9IEdBVEUoImx0ZS1tb2RlbS13Y2xrIiwgUEFS RU5UX0lEKFpYX0NMS19NQVRSSVhfRFBMTF9EMiksCisJCQkJCSAweDYwLCAwLCAwKSwKKwlbWlhf Q0xLX0xURV9NT0RFTV9QQ0xLXSAgID0gR0FURSgibHRlLW1vZGVtLXBjbGsiLCBjbGtfbWFpblsw XSwKKwkJCQkJIDB4NjAsIDIsIDApLAorCisJW1pYX0NMS19FRENQX1BDTEtdICAgICAgICA9IEdB VEUoImVkY3AtcGNsayIsIGNsa19tYWluWzBdLCAweDY0LCAxLCAwKSwKKwlbWlhfQ0xLX0VEQ1Bf V0NMS10gICAgICAgID0gR0FURSgiZWRjcC13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19FRENQX01V WCksIDB4NjQsIDIsIDApLAorCisJLyoKKwkgKiBUaGlzIHNlZW1zIHRvIGJlIGFub3RoZXIgU1BJ LUxpa2UgZGV2aWNlLiBjcGtvLmtvIHVzZXMgaXQgdG8gc2VuZCBjYWxpYnJhdGlvbiBibG9icyB0 bworCSAqIHRoZSBMVEUgcmFkaW8gaGFyZHdhcmUuIEFmdGVyIGluaXRpYWxpemF0aW9uIHRoZSBa U1AgZmlybXdhcmUgdGFrZXMgb3ZlciBjb250cm9sIG9mIHRoaXMKKwkgKiBkZXZpY2UuCisJICoK KwkgKiBUZXN0aW5nIHJldmVhbHMgdGhlIHBhcmVudCBhcyBtYXRyaXgncyAxMDQgTUh6IG1wbGwg ZnJhY3Rpb24uCisJICovCisJW1pYX0NMS19SRkZFX1dDTEtdICAgICAgICA9IEdBVEUoInJmZmUt d2NsayIsIFBBUkVOVF9JRChaWF9DTEtfTUFUUklYX01QTExfRDYpLCAweDg0LCAwLCAwKSwKKwlb WlhfQ0xLX1NTQ19XQ0xLXSAgICAgICAgID0gR0FURSgic3NjLXdjbGsiLCBQQVJFTlRfSUQoWlhf Q0xLX01BVFJJWF9NUExMX0Q2KSwgMHg4NCwgMSwgMCksCisJW1pYX0NMS19TU0NfUENMS10gICAg ICAgICA9IEdBVEUoInNzYy1wY2xrIiwgY2xrX21haW5bMF0sIDB4ODQsIDIsIDApLAorCisJLyoK KwkgKiBQRENGRy4gTGlrZSBQTU0sIGVpdGhlciBjbG9jayBiaXQgd2lsbCBhbGxvdyB0aGUgZGV2 aWNlIHRvIGZ1bmN0aW9uLiBQcm9iYWJseSB0aGVyZSBpcworCSAqIG5vIHdjbGsgbGluZSBhdCBh bGwgYW5kIHRoZSB0d28gYml0cyBhcmUganVzdCBhbiBhcnRpZmFjdCBvZiBnZW5lcmFsbHkgaGF2 aW5nIHR3byBiaXRzCisJICogcGVyIGRldmljZS4KKwkgKi8KKwlbWlhfQ0xLX1BEQ0ZHX1dDTEtd ICAgICAgID0gR0FURSgicGRjZmctd2NsayIsIG1hdHJpeF91bmssIDB4ODgsIDAsIENMS19JU19D UklUSUNBTCksCisJW1pYX0NMS19QRENGR19QQ0xLXSAgICAgICA9IEdBVEUoInBkY2ZnLXBjbGsi LCBjbGtfbWFpblswXSwgMHg4OCwgMSwgQ0xLX0lTX0NSSVRJQ0FMKSwKKwlbWlhfQ0xLX01CT1hf UENMS10gICAgICAgID0gR0FURSgibWJveC1wY2xrIiwgY2xrX21haW5bMF0sIDB4ODgsIDIsIDAp LAorCVtaWF9DTEtfU1JBTTBfUENMS10gICAgICAgPSBHQVRFKCJzcmFtMC1wY2xrIiwgY2xrX21h aW5bMF0sIDB4ODgsIDQsIDApLAorCVtaWF9DTEtfR1NNX0NGR19QQ0xLXSAgICAgPSBHQVRFKCJn c20tY2ZnLXBjbGsiLCBjbGtfbWFpblswXSwgMHg4OCwgOCwgMCksCisKKwkvKgorCSAqIFpURSdz IGRyaXZlciBoYXMgYSBzdGF0ZW1lbnQgdG8gdGhlIGVmZmVjdCBvZiAqKHRvcC0+YmFzZSsweDEx YykgPSA1LCB3aXRoIGEgY29tbWVudAorCSAqIHN1Z2dlc3RpbmcgdGhhdCB0aGlzIHNldHMgYSA1 MCBNSHogY2xvY2suIFRoZSBjbG9jayBjb2RlIGl0c2VsZiBsaXN0cyBHTUFDIGNsb2NrcyBpbgor CSAqIG1hdHJpeCsweDExMCBhbmQgbGlzdHMgdGhlIHBhcmVudHMgb2YgdGhlc2UgY2xvY2tzIGFz IDUwIE1IeiBncGxsIG91dHB1dCwgYnV0CisJICogdGhlIGRvd25zdHJlYW0gWlRFIEdNQUMgZHJp dmVyIG5ldmVyIGVuYWJsZXMgdGhlIGNsb2Nrcy4gSXQgdHVybnMgb3V0IFpURSdzIGNvZGUgaXMK KwkgKiBoaWdobHkgbWlzbGVhZGluZy4KKwkgKgorCSAqIFRoZSBHTUFDJ3Mgd29yayBjbG9jayBp cyBkZWZpbml0ZWx5IG5vdCBhbnkgZ3BsbCBvdXRwdXQgYmVjYXVzZSBpdCBrZWVwcyB3b3JraW5n IGZpbmUKKwkgKiB3aXRoIGdwbGwgZGlzYWJsZWQuIEdhdGluZyBvZmYgbWF0cml4LW9zYzI2bSBi cmVha3MgR01BQywgc28gaXQgbXVzdCBiZSBpdHMgcGFyZW50LgorCSAqCisJICogVGhlIEdNQUMg R2F0ZXMgYXJlIGxlZnQgZW5hYmxlZCBieSB0aGUgYm9vdCBsb2FkZXIgYW5kIGFyZSByZXF1aXJl ZCBmb3IgdGhlIEdNQUMgdG8gd29yay4KKwkgKgorCSAqIEFzIGZvciB0aGUgNTAgTUh6IGNvbW1l bnQ6IFNlZSBybWlpcGh5LXdjbGsuCisJICoKKwkgKiBUaGUgZ21hYy1haGIgY2xvY2sgaXMgYSBj aGlsZCBvZiB0b3Bjcm0ncyBhaGItcGNsayBhbmQgaXMgcmVxdWlyZWQgZm9yIERNQSB0cmFuc2Zl cnMgaW4KKwkgKiBhbmQgb3V0IG9mIEdNQUMuIFdpdGhvdXQgaXQsIEdNQUMgc3RpbGwgcmVjZWl2 ZXMgZXRoZXJuZXQgZnJhbWVzLCBidXQgY2FuJ3QgZHJhaW4gdGhlbQorCSAqIHRvIG1lbW9yeSBh bmQgd2lsbCBldmVudHVhbGx5IHNldCB0aGUgUlggRklGTyBvdmVyZmxvdyBmbGFnLgorCSAqLwor CVtaWF9DTEtfR01BQ19XQ0xLXSAgICAgICAgPSBHQVRFKCJnbWFjLXdjbGsiLCBQQVJFTlRfRlco IndjbGstb3NjMjZtIiksIDB4MTEwLCAwLCAwKSwKKwlbWlhfQ0xLX0dNQUNfUENMS10gICAgICAg ID0gR0FURSgiZ21hYy1wY2xrIiwgY2xrX21haW5bMF0sIDB4MTEwLCAxLCAwKSwKKwlbWlhfQ0xL X0dNQUNfQUhCXSAgICAgICAgID0gR0FURSgiZ21hYy1haGIiLCBQQVJFTlRfRlcoImFoYiIpLCAw eDExMCwgMiwgMCksCisKKwkvKgorCSAqIElzIHRoZXJlIGFuIEFYSSBidXMgZ2F0ZT8gVGhlIHN5 bXB0b20gb2YgY3V0dGluZyBvZmYgdGhlIEFYSSBtdXggc2VsZWN0aW9uIGluIHRvcCsweDE0MAor CSAqIGlzIHRoYXQgbWF0cml4Y3JtIGJlY29tZXMgdW5yZWFkYWJsZSBmcm9tIG0wIGFuZCBBNTMg aGFuZ3MuIEluc2lkZSBtYXRyaXggaXRzZWxmIG9ubHkgMworCSAqIGJpdHMgZml0IHRoYXQgYmls bDogMHg4YyBiaXRzIDUsIDYsIDcuIEl0IHNlZW1zIGEgYml0IHNlbGYtZGVmZWF0aW5nIHRvIGhh dmUgYSBjbG9jaworCSAqIGdhdGUgdGhhdCBzaHV0cyBvZmYgYWNjZXNzIHRvIGl0c2VsZiB0aG91 Z2guIEkgZXhwZWN0IGEgY2xvY2sgZ2F0ZSBmb3IgdGhlIGJ1cworCSAqIHNvbWV3aGVyZSwgYW5k IHRoZSBtdXggZXhpc3RzLCBzbyBleHBvc2luZyBvbmUgQVhJIGNsb2NrIGluIHRoZSBiaW5kaW5n cyBpcyB0aGUgY29ycmVjdAorCSAqIHRoaW5nIHRvIGRvLiBJdCBhbHNvIHNlcnZlcyB0byB0ZWxs IHRoZSBrZXJuZWwgdG8ga2VlcCB0aGUgbXV4J3MgcGFyZW50IGVuYWJsZWQuCisJICoKKwkgKiBS ZWdpc3RlciAweDhjIGhhcyAxMiBzZXR0YWJsZSBiaXRzICgweGZmZikuIFVsdGltYXRlbHkgaXQg ZG9lc24ndCBtYXR0ZXIgbXVjaCB3aGljaAorCSAqIGRvLW5vdC1yZW1vdmUgYml0IHdlIGRvbid0 IHJlbW92ZS4gT3RoZXIgYml0cyBpbiB0aGlzIHJlZ2lzdGVyIGJlaGF2ZSBsaWtlIGdhdGVzIChl LmcKKwkgKiBiaXRzIDExOjggY3V0IG9mZiBVU0IgdGVtcG9yYXJpbHkpLCBzbyBJIHRoaW5rIHdl IGFyZSBsb29raW5nIGluIHRoZSByaWdodCBwbGFjZS4KKwkgKgorCSAqIElmIGFuIGV4cGxhbmF0 aW9uIGZvciB0aGUgcmVtYWluaW5nIGJpdHMgc3VyZmFjZXMgYW5kIHRoZXkgYXJlIGZ1cnRoZXIg Z2F0ZXMgYW5kL29yCisJICogcmVzZXRzLCBhZGQgdGhlbSB0byB0aGUgYmluZGluZ3MuCisJICov CisJW1pYX0NMS19BWElfV0NMS10gICAgICAgICA9IEdBVEUoImF4aS13Y2xrIiwgUEFSRU5UX0lE KFpYX0NMS19BWElfTVVYKSwgMHg4YywgNSwKKwkJCQkJIENMS19JU19DUklUSUNBTCksCisKKwlb WlhfQ0xLX0RNQV9QQ0xLXSAgICAgICAgID0gR0FURSgiZG1hLXBjbGsiLCBjbGtfbWFpblswXSwg MHg5NCwgMywgMCksCisKKwkvKgorCSAqIFRoZXJlIGFyZSBhIGxvdCBtb3JlIFZPVSByZWxhdGVk IGNvbnRyb2xzIGluIHRoZXNlIHJlZ2lzdGVycywgYnV0IHR1cm5pbmcgb2ZmIHRoZSBtYWluCisJ ICogY2xvY2sgc2VlbXMgdG8gc2h1dCBvZmYgdGhlIGVudGlyZSBWT1UgTU1JTyByYW5nZS4KKwkg Ki8KKwlbWlhfQ0xLX1ZPVV9XQ0xLXSAgICAgICAgID0gR0FURSgidm91LXdjbGsiLCBtYXRyaXhf dW5rLCAweDE2OCwgMCwgMCksCisJW1pYX0NMS19WT1VfUENMS10gICAgICAgICA9IEdBVEUoInZv dS1wY2xrIiwgY2xrX21haW5bMF0sIDB4MTY4LCAxLCAwKSwKKworCS8qCisJICogTFNQIHVwbGlu ayBjbG9ja3MuIFRoZSBwY2xrIGlzIGZhaXJseSBvYnZpb3VzIChkaXNhYmxpbmcgaXQgc2h1dHMg b2ZmIHRoZSBlbnRpcmUgTFNQCisJICogcmVnaXN0ZXIgYXJlYSkuIFRoZSB3Y2xrIHNwZWVkcyB3 ZXJlIGRlZHVjZWQgYnkgc2V0dGluZyB0aW1lcnMgYW5kIHFzcGkgbXV4ZXMgdG8gYQorCSAqIHNw ZWNpZmljIHNwZWVkIGFuZCBzZWVpbmcgd2hpY2ggYml0IGluIG1hdHJpeCsweDdjIG5lZWRzIHRv IGJlIGVuYWJsZWQgZm9yIHRoZSBkZXZpY2UKKwkgKiB0byB3b3JrLgorCSAqCisJICogRHVlIHRv IHRoZSB0aW1lcnMgSSBhbSBjZXJ0YWluIGFib3V0IHRoZSAyNiBNSHogYW5kIDMyIGtIeiBjbG9j a3MuIEkgY2Fubm90IGRpcmVjdGx5CisJICogb2JzZXJ2ZSB0aGUgcXNwaSBtdXggZnJlcXVlbmN5 LCBzbyB0aGUgY2xvY2sgcmF0ZXMgZGVwZW5kIG9uIFpURSdzIHFzcGkgbXV4IHNlbGVjdGlvbgor CSAqIGJlaW5nIGNvcnJlY3QuCisJICoKKwkgKiBUd28gYWRkaXRpb25hbCBiaXRzIGFyZSBzcGVj aWZpYyB0byBzb3VuZCBjb21wb25lbnRzIC0gdGhlIG11eCBmb3IgdGhlIExTUCdzIFRETSBJUCBp cworCSAqIGluIG1hdHJpeGNybSBhbmQgZ2V0cyBwYXNzZWQgZG93bi4gSTJTIGhhcyBhIG11eCBp biBMU1AsIHdoaWNoIGNhbiBzZWxlY3QgdGhlIGRwbGwtZDQKKwkgKiBjbG9jay4KKwkgKi8KKwlb WlhfQ0xLX1RPTFNQX01QTExfRDVfV0NMS10gID0gR0FURSgibHNwLW1wbGwtZDUiLCBQQVJFTlRf RlcoIm1wbGwtZDUiKSwgMHg3YywgMCwgMCksCisJW1pYX0NMS19UT0xTUF9NUExMX0Q0X1dDTEtd ICA9IEdBVEUoImxzcC1tcGxsLWQ0IiwgUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9ENCks CisJCQkJCSAgICAweDdjLCAxLCAwKSwKKwlbWlhfQ0xLX1RPTFNQX01QTExfRDZfV0NMS10gID0g R0FURSgibHNwLW1wbGwtZDYiLCBQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0Q2KSwKKwkJ CQkJICAgIDB4N2MsIDIsIDApLAorCVtaWF9DTEtfVE9MU1BfTVBMTF9EOF9XQ0xLXSAgPSBHQVRF KCJsc3AtbXBsbC1kOCIsIFBBUkVOVF9JRChaWF9DTEtfTUFUUklYX01QTExfRDgpLAorCQkJCQkg ICAgMHg3YywgMywgMCksCisJW1pYX0NMS19UT0xTUF9NUExMX0QxMl9XQ0xLXSA9IEdBVEUoImxz cC1tcGxsLWQxMiIsIFBBUkVOVF9JRChaWF9DTEtfTUFUUklYX01QTExfRDEyKSwKKwkJCQkJICAg IDB4N2MsIDQsIDApLAorCVtaWF9DTEtfVE9MU1BfT1NDMjZNX1dDTEtdICAgPSBHQVRFKCJsc3At b3NjMjZtIiwgUEFSRU5UX0ZXKCJ3Y2xrLW9zYzI2bSIpLCAweDdjLCA1LCAwKSwKKwlbWlhfQ0xL X1RPTFNQX09TQzMyS19XQ0xLXSAgID0gR0FURSgibHNwLW9zYzMyayIsIFBBUkVOVF9GVygib3Nj MzJrIiksIDB4N2MsIDYsIDApLAorCVtaWF9DTEtfVE9MU1BfUENMS10gICAgICAgICAgPSBHQVRF KCJsc3AtcGNsayIsIGNsa19tYWluWzBdLCAweDdjLCA3LCAwKSwKKwlbWlhfQ0xLX1RPTFNQX1RE TV9XQ0xLXSAgICAgID0gR0FURSgibHNwLXRkbS13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19URE1f TVVYKSwgMHg3YywgOCwgMCksCisJW1pYX0NMS19UT0xTUF9EUExMX0Q0X1dDTEtdICA9IEdBVEUo ImxzcC1kcGxsLWQ0IiwgUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfRFBMTF9ENCksCisJCQkJCSAg ICAweDdjLCA5LCAwKSwKK307CisKK3N0YXRpYyBpbnQgengyOTc1MjB2M19tYXRyaXhfaW5pdChz dHJ1Y3QgcmVnbWFwICptYXApCit7CisJdTMyIGF4aV92YWw7CisJaW50IHJlczsKKworCS8qIFJl YWQgdGhlIGdsb2JhbCBBWEkgc3BlZWQgc2VsZWN0aW9uLCBpbnNlcnQgaXQgaW50byBvdXIgYmFs bG90IGFuZCBlbmFibGUgdm90aW5nICovCisJcmVzID0gcmVnbWFwX3JlYWQobWFwLCAweDAsICZh eGlfdmFsKTsKKwlpZiAocmVzKQorCQlyZXR1cm4gcmVzOworCisJYXhpX3ZhbCAmPSAweDc7CisJ cmVzID0gcmVnbWFwX3dyaXRlKG1hcCwgWlgyOTc1MjBWM19BWElfQVBfVk9URSwgYXhpX3ZhbCk7 CisJaWYgKHJlcykKKwkJcmV0dXJuIHJlczsKKworCXJldHVybiByZWdtYXBfd3JpdGUobWFwLCAw eDEyYywgMSk7Cit9CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgengyOTc1MjB2M19tYXRy aXhfZXhwb3J0c1tdID0geworCVtaWDI5NzUyMFYzX1NZU19USU1FUl9XQ0xLXSA9CQlaWF9DTEtf U1lTX1RJTUVSX1dDTEssCisJW1pYMjk3NTIwVjNfQ1BVX1dDTEtdID0JCQlaWF9DTEtfQ1BVX1dD TEssCisJW1pYMjk3NTIwVjNfQ1BVX1BDTEtdID0JCQlaWF9DTEtfQ1BVX1BDTEssCisJW1pYMjk3 NTIwVjNfWlNQX1dDTEtdID0JCQlaWF9DTEtfWlNQX1dDTEssCisJW1pYMjk3NTIwVjNfWlNQX1BD TEtdID0JCQlaWF9DTEtfWlNQX1BDTEssCisJW1pYMjk3NTIwVjNfRERSX0NUUkxfUENMS10gPQkJ WlhfQ0xLX0REUl9DVFJMX1BDTEssCisJW1pYMjk3NTIwVjNfRERSX0NUUkxfV0NMS10gPQkJWlhf Q0xLX0REUl9DVFJMX1dDTEssCisJW1pYMjk3NTIwVjNfRURDUF9XQ0xLXSA9CQlaWF9DTEtfRURD UF9XQ0xLLAorCVtaWDI5NzUyMFYzX0VEQ1BfUENMS10gPQkJWlhfQ0xLX0VEQ1BfUENMSywKKwlb WlgyOTc1MjBWM19TRDBfV0NMS10gPQkJCVpYX0NMS19TRDBfV0NMSywKKwlbWlgyOTc1MjBWM19T RDBfUENMS10gPQkJCVpYX0NMS19TRDBfUENMSywKKwlbWlgyOTc1MjBWM19TRDBfQ0RFVF0gPQkJ CVpYX0NMS19TRDBfQ0RFVCwKKwlbWlgyOTc1MjBWM19TRDFfV0NMS10gPQkJCVpYX0NMS19TRDFf V0NMSywKKwlbWlgyOTc1MjBWM19TRDFfUENMS10gPQkJCVpYX0NMS19TRDFfUENMSywKKwlbWlgy OTc1MjBWM19TRDFfQ0RFVF0gPQkJCVpYX0NMS19TRDFfQ0RFVCwKKwlbWlgyOTc1MjBWM19OQU5E X1dDTEtdID0JCVpYX0NMS19OQU5EX1dDTEssCisJW1pYMjk3NTIwVjNfTkFORF9QQ0xLXSA9CQla WF9DTEtfTkFORF9QQ0xLLAorCVtaWDI5NzUyMFYzX0RNQV9QQ0xLXSA9CQkJWlhfQ0xLX0RNQV9Q Q0xLLAorCVtaWDI5NzUyMFYzX01CT1hfUENMS10gPQkJWlhfQ0xLX01CT1hfUENMSywKKwlbWlgy OTc1MjBWM19QRENGR19XQ0xLXSA9CQlaWF9DTEtfUERDRkdfV0NMSywKKwlbWlgyOTc1MjBWM19Q RENGR19QQ0xLXSA9CQlaWF9DTEtfUERDRkdfUENMSywKKwlbWlgyOTc1MjBWM19TU0NfV0NMS10g PQkJCVpYX0NMS19TU0NfV0NMSywKKwlbWlgyOTc1MjBWM19TU0NfUENMS10gPQkJCVpYX0NMS19T U0NfUENMSywKKwlbWlgyOTc1MjBWM19BWElfV0NMS10gPQkJCVpYX0NMS19BWElfV0NMSywKKwlb WlgyOTc1MjBWM19HTUFDX1dDTEtdID0JCVpYX0NMS19HTUFDX1dDTEssCisJW1pYMjk3NTIwVjNf R01BQ19QQ0xLXSA9CQlaWF9DTEtfR01BQ19QQ0xLLAorCVtaWDI5NzUyMFYzX0dNQUNfQUhCXSA9 CQkJWlhfQ0xLX0dNQUNfQUhCLAorCVtaWDI5NzUyMFYzX1ZPVV9XQ0xLXSA9CQkJWlhfQ0xLX1ZP VV9XQ0xLLAorCVtaWDI5NzUyMFYzX1ZPVV9QQ0xLXSA9CQkJWlhfQ0xLX1ZPVV9QQ0xLLAorCVta WDI5NzUyMFYzX0xTUF9NUExMX0Q1X1dDTEtdID0JCVpYX0NMS19UT0xTUF9NUExMX0Q1X1dDTEss CisJW1pYMjk3NTIwVjNfTFNQX01QTExfRDRfV0NMS10gPQkJWlhfQ0xLX1RPTFNQX01QTExfRDRf V0NMSywKKwlbWlgyOTc1MjBWM19MU1BfTVBMTF9ENl9XQ0xLXSA9CQlaWF9DTEtfVE9MU1BfTVBM TF9ENl9XQ0xLLAorCVtaWDI5NzUyMFYzX0xTUF9NUExMX0Q4X1dDTEtdID0JCVpYX0NMS19UT0xT UF9NUExMX0Q4X1dDTEssCisJW1pYMjk3NTIwVjNfTFNQX01QTExfRDEyX1dDTEtdID0JWlhfQ0xL X1RPTFNQX01QTExfRDEyX1dDTEssCisJW1pYMjk3NTIwVjNfTFNQX09TQzI2TV9XQ0xLXSA9CQla WF9DTEtfVE9MU1BfT1NDMjZNX1dDTEssCisJW1pYMjk3NTIwVjNfTFNQX09TQzMyS19XQ0xLXSA9 CQlaWF9DTEtfVE9MU1BfT1NDMzJLX1dDTEssCisJW1pYMjk3NTIwVjNfTFNQX1BDTEtdID0JCQla WF9DTEtfVE9MU1BfUENMSywKKwlbWlgyOTc1MjBWM19MU1BfVERNX1dDTEtdID0JCVpYX0NMS19U T0xTUF9URE1fV0NMSywKKwlbWlgyOTc1MjBWM19MU1BfRFBMTF9ENF9XQ0xLXSA9CQlaWF9DTEtf VE9MU1BfRFBMTF9ENF9XQ0xLLAorCVtaWDI5NzUyMFYzX1NSQU0wX1BDTEtdID0JCVpYX0NMS19T UkFNMF9QQ0xLLAorCVtaWDI5NzUyMFYzX0dTTV9DRkdfUENMS10gPQkJWlhfQ0xLX0dTTV9DRkdf UENMSywKKwlbWlgyOTc1MjBWM19MVEVfTU9ERU1fV0NMS10gPQkJWlhfQ0xLX0xURV9NT0RFTV9X Q0xLLAorCVtaWDI5NzUyMFYzX0xURV9NT0RFTV9QQ0xLXSA9CQlaWF9DTEtfTFRFX01PREVNX1BD TEssCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHp4X2Nsa19kYXRhIHp4Mjk3NTIwdjNfbWF0 cml4Y2xrX2RhdGEgPSB7CisJLmluaXQgPSB6eDI5NzUyMHYzX21hdHJpeF9pbml0LAorCS5jbG9j a3MgPSB6eDI5NzUyMHYzX21hdHJpeF9jbG9ja3MsCisJLm51bV9jbG9ja3MgPSBBUlJBWV9TSVpF KHp4Mjk3NTIwdjNfbWF0cml4X2Nsb2NrcyksCisJLmV4cG9ydHMgPSB6eDI5NzUyMHYzX21hdHJp eF9leHBvcnRzLAorCS5udW1fZXhwb3J0cyA9IEFSUkFZX1NJWkUoengyOTc1MjB2M19tYXRyaXhf ZXhwb3J0cyksCit9OworCiBzdGF0aWMgaW50IGNsa196eDI5NzUyMHYzX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7CiAJY29uc3Qgc3RydWN0IHBsYXRmb3JtX2RldmljZV9p ZCAqaWQgPSBwbGF0Zm9ybV9nZXRfZGV2aWNlX2lkKHBkZXYpOwpAQCAtODI4LDYgKzEzNDksMTAg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2VfaWQgY2xrX3p4Mjk3NTIwdjNf aWRzW10gPSB7CiAJCS5uYW1lID0gInp4Mjk3NTIwdjMtdG9wY2xrIiwKIAkJLmRyaXZlcl9kYXRh ID0gKGtlcm5lbF91bG9uZ190KSZ6eDI5NzUyMHYzX3RvcGNsa19kYXRhLAogCX0sCisJeworCQku bmFtZSA9ICJ6eDI5NzUyMHYzLW1hdHJpeGNsayIsCisJCS5kcml2ZXJfZGF0YSA9IChrZXJuZWxf dWxvbmdfdCkmengyOTc1MjB2M19tYXRyaXhjbGtfZGF0YSwKKwl9LAogCXsgfQogfTsKIE1PRFVM RV9ERVZJQ0VfVEFCTEUocGxhdGZvcm0sIGNsa196eDI5NzUyMHYzX2lkcyk7CgotLSAKMi41NS4w CgoKLS0gCmxpbnV4LXBoeSBtYWlsaW5nIGxpc3QKbGludXgtcGh5QGxpc3RzLmluZnJhZGVhZC5v cmcKaHR0cHM6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcGh5 Cg==