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 X-Spam-Level: X-Spam-Status: No, score=-13.7 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7BF84C433E9 for ; Thu, 4 Mar 2021 09:04:16 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F06DA64F23 for ; Thu, 4 Mar 2021 09:04:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F06DA64F23 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Cc:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=/+8/H7XNk1c6QjwH08PRxYsdLXMkcQ4AqqlbPG6W5Pw=; b=oXsx1zIbQqb5O6c6hLoxqLfKO 9RmkgF4Gm8oPTihYA52wmIoAW7u2u56Kk6sNVmCUxGVKJoTDslEeN6zQa287qpJng9C94mbjLDLvV 1Nf3X5gDpeDtLToi+pNammjxmt794T9Rx2zVVSUk3Yo8T/onKr2wKqSHsu4vpJPDpg3trJfTC/xMj ZKSb6bOHnBeun3dFBOIXVwq6fZRp4jZVrZ8OoSyekbUIfoN2TkoaaoPEyYJUWLMRfWSFNU/PfBAu/ 1bJBNjv9BGjfm26GZSkhzRMSvkCl8WTtMTmbEcRNMuDJhbaBM84vCmQSIgq6MbN8i9BCT7oLJfKgn iaTMi9KTg==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lHjpv-008Cg8-FY; Thu, 04 Mar 2021 09:00:01 +0000 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lHjnO-008C3I-VS for linux-arm-kernel@lists.infradead.org; Thu, 04 Mar 2021 08:57:26 +0000 Received: by mail-wr1-x42f.google.com with SMTP id a18so18508397wrc.13 for ; Thu, 04 Mar 2021 00:57:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=AfYDNaNGeoDfVlP+A0n8jaMeZ1HQyc1iDv/UL9a+N8Q=; b=eM8uKpcs8OeBoYsZcFUcJhdKa678DKL6kyDpZ9nCp4bL5N9l1aL31eF2igJTx95Zou Kn9bHv4gZmBs1FSgUGPuoDkve/Lhi76/VesPp6Pl+o7aYUEl2CoDlHrFwFoXQskeCQrk AQ6/PXWpp4QCH1FLvem4PFspceWEP/AxP3HpM4cTkWUsNRG+fI3YvdoWlp/qd8Ed53+k aeR5TiPsB0c4Z2Wh+f0cfsHqptelAMe4Gos35+TxSzn8rK0YLpZSzP3aO/fpuwpCCwmV 0LViVkHH/Zsayb3lW5L2kZhslU0PwdbaPFW8ANNb5Q3oy6Gb3PPgu2zpAfHylbsjBD5l aYNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=AfYDNaNGeoDfVlP+A0n8jaMeZ1HQyc1iDv/UL9a+N8Q=; b=PPJb4fsi0POz80r7yanQMhAG0GdYYYloCGCXS4np2AGN6E9CjdOaPwLtc6mt0sW0Ut KwCdJhVnbFZT6t/JhsPB64zQM6Hca0sMvITZ10t35P1DXlutPMRMCv2MEZwoDiS6+ZnA qJc2I2xq1bbS3LuLLy+Eb2sxuHLYprs1m3bpuW3wGkGkua4QSx78/f3ro622ACUcvCHa Gi45A2JKhj/YnXJ1sSmFaheEwPMwkkJBNRaNpde/vtjozT/0OxC/TXvo1pIOMFquuvrO ls2Yw1yRlGUtgZVN800Xzw9HNbgKu6JmEcVsdzHcC+SK1sDHlDd7x/zQ1g4hbJjq69Ch Wdog== X-Gm-Message-State: AOAM532ZXZjqy64qwhFivm2sMR5cGOMaNZfMT0kgov+/S7lNEH2R/QlJ rcqpQOQjuQsU7cKkEUr3Ojc= X-Google-Smtp-Source: ABdhPJz6mL+c1mn4rY0c/wZcwjchPIzcdDtO/toTCL+/Vj9oQ1QFE2SWft4kt4a+IgTHwJ1jE9mxrw== X-Received: by 2002:adf:fe8d:: with SMTP id l13mr2736986wrr.81.1614848242283; Thu, 04 Mar 2021 00:57:22 -0800 (PST) Received: from skynet.lan (170.red-88-1-105.dynamicip.rima-tde.net. [88.1.105.170]) by smtp.gmail.com with ESMTPSA id q15sm2828976wrx.56.2021.03.04.00.57.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Mar 2021 00:57:21 -0800 (PST) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: Linus Walleij , Rob Herring , Michael Walle , Bartosz Golaszewski , Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= , Jonas Gorski , Necip Fazil Yildiran , Andy Shevchenko , linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 09/15] pinctrl: add a pincontrol driver for BCM6362 Date: Thu, 4 Mar 2021 09:57:04 +0100 Message-Id: <20210304085710.7128-10-noltari@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210304085710.7128-1-noltari@gmail.com> References: <20210304085710.7128-1-noltari@gmail.com> MIME-Version: 1.0 X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org QWRkIGEgcGluY290cm9sIGRyaXZlciBmb3IgQkNNNjM2Mi4gQkNNNjM2MiBhbGxvd3MgbXV4aW5n IGluZGl2aWR1YWwKR1BJTyBwaW5zIHRvIHRoZSBMRUQgY29udHJvbGxlciwgdG8gYmUgYXZhaWxh YmxlIGJ5IHRoZSBpbnRlZ3JhdGVkCndpZmksIG9yIG90aGVyIGZ1bmN0aW9ucy4gSXQgYWxzbyBz dXBwb3J0cyBvdmVybGF5IGdyb3Vwcywgb2Ygd2hpY2gKb25seSBOQU5EIGlzIGRvY3VtZW50ZWQu CgpTaWduZWQtb2ZmLWJ5OiDDgWx2YXJvIEZlcm7DoW5kZXogUm9qYXMgPG5vbHRhcmlAZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBKb25hcyBHb3Jza2kgPGpvbmFzLmdvcnNraUBnbWFpbC5jb20+ Ci0tLQogdjQ6IG5vIGNoYW5nZXMKIHYzOiB1c2UgbmV3IHNoYXJlZCBjb2RlCiB2Mjogc3dpdGNo IHRvIEdQSU9fUkVHTUFQCgogZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmlnICAgICAgICAgICB8 ICAgOCArCiBkcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlICAgICAgICAgIHwgICAxICsKIGRy aXZlcnMvcGluY3RybC9iY20vcGluY3RybC1iY202MzYyLmMgfCA2MTcgKysrKysrKysrKysrKysr KysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNjI2IGluc2VydGlvbnMoKykKIGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjM2Mi5jCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmlnIGIvZHJpdmVycy9waW5jdHJsL2JjbS9L Y29uZmlnCmluZGV4IGNlZDdjYzZhYjQ0Zi4uZDMxMDFkNWU3NTBmIDEwMDY0NAotLS0gYS9kcml2 ZXJzL3BpbmN0cmwvYmNtL0tjb25maWcKKysrIGIvZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmln CkBAIC01Miw2ICs1MiwxNCBAQCBjb25maWcgUElOQ1RSTF9CQ002MzU4CiAJaGVscAogCSAgIFNh eSBZIGhlcmUgdG8gZW5hYmxlIHRoZSBCcm9hZGNvbSBCQ002MzU4IEdQSU8gZHJpdmVyLgogCitj b25maWcgUElOQ1RSTF9CQ002MzYyCisJYm9vbCAiQnJvYWRjb20gQkNNNjM2MiBHUElPIGRyaXZl ciIKKwlkZXBlbmRzIG9uIChCTUlQU19HRU5FUklDIHx8IENPTVBJTEVfVEVTVCkKKwlzZWxlY3Qg UElOQ1RSTF9CQ002M1hYCisJZGVmYXVsdCBCTUlQU19HRU5FUklDCisJaGVscAorCSAgIFNheSBZ IGhlcmUgdG8gZW5hYmxlIHRoZSBCcm9hZGNvbSBCQ002MzYyIEdQSU8gZHJpdmVyLgorCiBjb25m aWcgUElOQ1RSTF9JUFJPQ19HUElPCiAJYm9vbCAiQnJvYWRjb20gaVByb2MgR1BJTyAod2l0aCBQ SU5DT05GKSBkcml2ZXIiCiAJZGVwZW5kcyBvbiBPRl9HUElPICYmIChBUkNIX0JDTV9JUFJPQyB8 fCBDT01QSUxFX1RFU1QpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxl IGIvZHJpdmVycy9waW5jdHJsL2JjbS9NYWtlZmlsZQppbmRleCBjM2Y1YjdiMmYyZjAuLmI5YjA5 ZTViOTE0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL2JjbS9NYWtlZmlsZQorKysgYi9k cml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlCkBAIC02LDYgKzYsNyBAQCBvYmotJChDT05GSUdf UElOQ1RSTF9CQ00yODM1KQkJKz0gcGluY3RybC1iY20yODM1Lm8KIG9iai0kKENPTkZJR19QSU5D VFJMX0JDTTYzWFgpCQkrPSBwaW5jdHJsLWJjbTYzeHgubwogb2JqLSQoQ09ORklHX1BJTkNUUkxf QkNNNjMyOCkJCSs9IHBpbmN0cmwtYmNtNjMyOC5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9CQ002 MzU4KQkJKz0gcGluY3RybC1iY202MzU4Lm8KK29iai0kKENPTkZJR19QSU5DVFJMX0JDTTYzNjIp CQkrPSBwaW5jdHJsLWJjbTYzNjIubwogb2JqLSQoQ09ORklHX1BJTkNUUkxfSVBST0NfR1BJTykJ Kz0gcGluY3RybC1pcHJvYy1ncGlvLm8KIG9iai0kKENPTkZJR19QSU5DVFJMX0NZR05VU19NVVgp CSs9IHBpbmN0cmwtY3lnbnVzLW11eC5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9OUykJCSs9IHBp bmN0cmwtbnMubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYz NjIuYyBiL2RyaXZlcnMvcGluY3RybC9iY20vcGluY3RybC1iY202MzYyLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43ZWE0YmQzZjU5YjcKLS0tIC9kZXYvbnVsbAor KysgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjM2Mi5jCkBAIC0wLDAgKzEsNjE3 IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsKKy8qCisgKiBEcml2ZXIg Zm9yIEJDTTYzNjIgR1BJTyB1bml0IChwaW5jdHJsICsgR1BJTykKKyAqCisgKiBDb3B5cmlnaHQg KEMpIDIwMjEgw4FsdmFybyBGZXJuw6FuZGV6IFJvamFzIDxub2x0YXJpQGdtYWlsLmNvbT4KKyAq IENvcHlyaWdodCAoQykgMjAxNiBKb25hcyBHb3Jza2kgPGpvbmFzLmdvcnNraUBnbWFpbC5jb20+ CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2JpdHMuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvL2Ry aXZlci5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L29mLmg+ CisjaW5jbHVkZSA8bGludXgvcGluY3RybC9waW5tdXguaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0 Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKworI2luY2x1ZGUgIi4u L3BpbmN0cmwtdXRpbHMuaCIKKworI2luY2x1ZGUgInBpbmN0cmwtYmNtNjN4eC5oIgorCisjZGVm aW5lIEJDTTYzNjJfQkFOS19HUElPUwkzMgorI2RlZmluZSBCQ002MzYyX05VTV9HUElPUwk0OAor I2RlZmluZSBCQ002MzYyX05VTV9MRURTCTI0CisKKyNkZWZpbmUgQkNNNjM2Ml9MRURfUkVHCQkw eDEwCisjZGVmaW5lIEJDTTYzNjJfTU9ERV9SRUcJMHgxOAorI2RlZmluZSBCQ002MzYyX0NUUkxf UkVHCTB4MWMKKyNkZWZpbmUgQkNNNjM2Ml9CQVNFTU9ERV9SRUcJMHgzOAorI2RlZmluZSAgQkFT RU1PREVfTkFORAkJQklUKDIpCisKK2VudW0gYmNtNjM2Ml9waW5jdHJsX3JlZyB7CisJQkNNNjM2 Ml9MRURDVFJMLAorCUJDTTYzNjJfTU9ERSwKKwlCQ002MzYyX0NUUkwsCisJQkNNNjM2Ml9CQVNF TU9ERSwKK307CisKK3N0cnVjdCBiY202MzYyX3Bpbmdyb3VwIHsKKwljb25zdCBjaGFyICpuYW1l OworCWNvbnN0IHVuc2lnbmVkICogY29uc3QgcGluczsKKwljb25zdCB1bnNpZ25lZCBudW1fcGlu czsKK307CisKK3N0cnVjdCBiY202MzYyX2Z1bmN0aW9uIHsKKwljb25zdCBjaGFyICpuYW1lOwor CWNvbnN0IGNoYXIgKiBjb25zdCAqZ3JvdXBzOworCWNvbnN0IHVuc2lnbmVkIG51bV9ncm91cHM7 CisKKwllbnVtIGJjbTYzNjJfcGluY3RybF9yZWcgcmVnOworCXVpbnQzMl90IGJhc2Vtb2RlX21h c2s7Cit9OworCisjZGVmaW5lIEJDTTYzNjJfUElOKGEsIGIsIG1hc2spCQkJXAorCXsJCQkJCVwK KwkJLm51bWJlciA9IGEsCQkJXAorCQkubmFtZSA9IGIsCQkJXAorCQkuZHJ2X2RhdGEgPSAodm9p ZCAqKShtYXNrKSwJXAorCX0KKworc3RhdGljIGNvbnN0IHN0cnVjdCBwaW5jdHJsX3Bpbl9kZXNj IGJjbTYzNjJfcGluc1tdID0geworCVBJTkNUUkxfUElOKDAsICJncGlvMCIpLAorCVBJTkNUUkxf UElOKDEsICJncGlvMSIpLAorCVBJTkNUUkxfUElOKDIsICJncGlvMiIpLAorCVBJTkNUUkxfUElO KDMsICJncGlvMyIpLAorCVBJTkNUUkxfUElOKDQsICJncGlvNCIpLAorCVBJTkNUUkxfUElOKDUs ICJncGlvNSIpLAorCVBJTkNUUkxfUElOKDYsICJncGlvNiIpLAorCVBJTkNUUkxfUElOKDcsICJn cGlvNyIpLAorCUJDTTYzNjJfUElOKDgsICJncGlvOCIsIEJBU0VNT0RFX05BTkQpLAorCVBJTkNU UkxfUElOKDksICJncGlvOSIpLAorCVBJTkNUUkxfUElOKDEwLCAiZ3BpbzEwIiksCisJUElOQ1RS TF9QSU4oMTEsICJncGlvMTEiKSwKKwlCQ002MzYyX1BJTigxMiwgImdwaW8xMiIsIEJBU0VNT0RF X05BTkQpLAorCUJDTTYzNjJfUElOKDEzLCAiZ3BpbzEzIiwgQkFTRU1PREVfTkFORCksCisJQkNN NjM2Ml9QSU4oMTQsICJncGlvMTQiLCBCQVNFTU9ERV9OQU5EKSwKKwlCQ002MzYyX1BJTigxNSwg ImdwaW8xNSIsIEJBU0VNT0RFX05BTkQpLAorCUJDTTYzNjJfUElOKDE2LCAiZ3BpbzE2IiwgQkFT RU1PREVfTkFORCksCisJQkNNNjM2Ml9QSU4oMTcsICJncGlvMTciLCBCQVNFTU9ERV9OQU5EKSwK KwlCQ002MzYyX1BJTigxOCwgImdwaW8xOCIsIEJBU0VNT0RFX05BTkQpLAorCUJDTTYzNjJfUElO KDE5LCAiZ3BpbzE5IiwgQkFTRU1PREVfTkFORCksCisJQkNNNjM2Ml9QSU4oMjAsICJncGlvMjAi LCBCQVNFTU9ERV9OQU5EKSwKKwlCQ002MzYyX1BJTigyMSwgImdwaW8yMSIsIEJBU0VNT0RFX05B TkQpLAorCUJDTTYzNjJfUElOKDIyLCAiZ3BpbzIyIiwgQkFTRU1PREVfTkFORCksCisJQkNNNjM2 Ml9QSU4oMjMsICJncGlvMjMiLCBCQVNFTU9ERV9OQU5EKSwKKwlQSU5DVFJMX1BJTigyNCwgImdw aW8yNCIpLAorCVBJTkNUUkxfUElOKDI1LCAiZ3BpbzI1IiksCisJUElOQ1RSTF9QSU4oMjYsICJn cGlvMjYiKSwKKwlCQ002MzYyX1BJTigyNywgImdwaW8yNyIsIEJBU0VNT0RFX05BTkQpLAorCVBJ TkNUUkxfUElOKDI4LCAiZ3BpbzI4IiksCisJUElOQ1RSTF9QSU4oMjksICJncGlvMjkiKSwKKwlQ SU5DVFJMX1BJTigzMCwgImdwaW8zMCIpLAorCVBJTkNUUkxfUElOKDMxLCAiZ3BpbzMxIiksCisJ UElOQ1RSTF9QSU4oMzIsICJncGlvMzIiKSwKKwlQSU5DVFJMX1BJTigzMywgImdwaW8zMyIpLAor CVBJTkNUUkxfUElOKDM0LCAiZ3BpbzM0IiksCisJUElOQ1RSTF9QSU4oMzUsICJncGlvMzUiKSwK KwlQSU5DVFJMX1BJTigzNiwgImdwaW8zNiIpLAorCVBJTkNUUkxfUElOKDM3LCAiZ3BpbzM3Iiks CisJUElOQ1RSTF9QSU4oMzgsICJncGlvMzgiKSwKKwlQSU5DVFJMX1BJTigzOSwgImdwaW8zOSIp LAorCVBJTkNUUkxfUElOKDQwLCAiZ3BpbzQwIiksCisJUElOQ1RSTF9QSU4oNDEsICJncGlvNDEi KSwKKwlQSU5DVFJMX1BJTig0MiwgImdwaW80MiIpLAorCVBJTkNUUkxfUElOKDQzLCAiZ3BpbzQz IiksCisJUElOQ1RSTF9QSU4oNDQsICJncGlvNDQiKSwKKwlQSU5DVFJMX1BJTig0NSwgImdwaW80 NSIpLAorCVBJTkNUUkxfUElOKDQ2LCAiZ3BpbzQ2IiksCisJUElOQ1RSTF9QSU4oNDcsICJncGlv NDciKSwKK307CisKK3N0YXRpYyB1bnNpZ25lZCBncGlvMF9waW5zW10gPSB7IDAgfTsKK3N0YXRp YyB1bnNpZ25lZCBncGlvMV9waW5zW10gPSB7IDEgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMl9w aW5zW10gPSB7IDIgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvM19waW5zW10gPSB7IDMgfTsKK3N0 YXRpYyB1bnNpZ25lZCBncGlvNF9waW5zW10gPSB7IDQgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlv NV9waW5zW10gPSB7IDUgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvNl9waW5zW10gPSB7IDYgfTsK K3N0YXRpYyB1bnNpZ25lZCBncGlvN19waW5zW10gPSB7IDcgfTsKK3N0YXRpYyB1bnNpZ25lZCBn cGlvOF9waW5zW10gPSB7IDggfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvOV9waW5zW10gPSB7IDkg fTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTBfcGluc1tdID0geyAxMCB9Oworc3RhdGljIHVuc2ln bmVkIGdwaW8xMV9waW5zW10gPSB7IDExIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzEyX3BpbnNb XSA9IHsgMTIgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTNfcGluc1tdID0geyAxMyB9Oworc3Rh dGljIHVuc2lnbmVkIGdwaW8xNF9waW5zW10gPSB7IDE0IH07CitzdGF0aWMgdW5zaWduZWQgZ3Bp bzE1X3BpbnNbXSA9IHsgMTUgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTZfcGluc1tdID0geyAx NiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xN19waW5zW10gPSB7IDE3IH07CitzdGF0aWMgdW5z aWduZWQgZ3BpbzE4X3BpbnNbXSA9IHsgMTggfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTlfcGlu c1tdID0geyAxOSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yMF9waW5zW10gPSB7IDIwIH07Citz dGF0aWMgdW5zaWduZWQgZ3BpbzIxX3BpbnNbXSA9IHsgMjEgfTsKK3N0YXRpYyB1bnNpZ25lZCBn cGlvMjJfcGluc1tdID0geyAyMiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yM19waW5zW10gPSB7 IDIzIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI0X3BpbnNbXSA9IHsgMjQgfTsKK3N0YXRpYyB1 bnNpZ25lZCBncGlvMjVfcGluc1tdID0geyAyNSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yNl9w aW5zW10gPSB7IDI2IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI3X3BpbnNbXSA9IHsgMjcgfTsK K3N0YXRpYyB1bnNpZ25lZCBncGlvMjhfcGluc1tdID0geyAyOCB9Oworc3RhdGljIHVuc2lnbmVk IGdwaW8yOV9waW5zW10gPSB7IDI5IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzMwX3BpbnNbXSA9 IHsgMzAgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzFfcGluc1tdID0geyAzMSB9Oworc3RhdGlj IHVuc2lnbmVkIGdwaW8zMl9waW5zW10gPSB7IDMyIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzMz X3BpbnNbXSA9IHsgMzMgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzRfcGluc1tdID0geyAzNCB9 Oworc3RhdGljIHVuc2lnbmVkIGdwaW8zNV9waW5zW10gPSB7IDM1IH07CitzdGF0aWMgdW5zaWdu ZWQgZ3BpbzM2X3BpbnNbXSA9IHsgMzYgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzdfcGluc1td ID0geyAzNyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8zOF9waW5zW10gPSB7IDM4IH07CitzdGF0 aWMgdW5zaWduZWQgZ3BpbzM5X3BpbnNbXSA9IHsgMzkgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlv NDBfcGluc1tdID0geyA0MCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80MV9waW5zW10gPSB7IDQx IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzQyX3BpbnNbXSA9IHsgNDIgfTsKK3N0YXRpYyB1bnNp Z25lZCBncGlvNDNfcGluc1tdID0geyA0MyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80NF9waW5z W10gPSB7IDQ0IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzQ1X3BpbnNbXSA9IHsgNDUgfTsKK3N0 YXRpYyB1bnNpZ25lZCBncGlvNDZfcGluc1tdID0geyA0NiB9Oworc3RhdGljIHVuc2lnbmVkIGdw aW80N19waW5zW10gPSB7IDQ3IH07CisKK3N0YXRpYyB1bnNpZ25lZCBuYW5kX2dycF9waW5zW10g PSB7CisJOCwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywKKwkxOCwgMTksIDIwLCAyMSwgMjIsIDIz LCAyNywKK307CisKKyNkZWZpbmUgQkNNNjM2Ml9HUk9VUChuKQkJCQlcCisJewkJCQkJCVwKKwkJ Lm5hbWUgPSAjbiwJCQkJXAorCQkucGlucyA9IG4jI19waW5zLAkJCVwKKwkJLm51bV9waW5zID0g QVJSQVlfU0laRShuIyNfcGlucyksCVwKKwl9CisKK3N0YXRpYyBzdHJ1Y3QgYmNtNjM2Ml9waW5n cm91cCBiY202MzYyX2dyb3Vwc1tdID0geworCUJDTTYzNjJfR1JPVVAoZ3BpbzApLAorCUJDTTYz NjJfR1JPVVAoZ3BpbzEpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzIpLAorCUJDTTYzNjJfR1JPVVAo Z3BpbzMpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzQpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzUpLAor CUJDTTYzNjJfR1JPVVAoZ3BpbzYpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzcpLAorCUJDTTYzNjJf R1JPVVAoZ3BpbzgpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzkpLAorCUJDTTYzNjJfR1JPVVAoZ3Bp bzEwKSwKKwlCQ002MzYyX0dST1VQKGdwaW8xMSksCisJQkNNNjM2Ml9HUk9VUChncGlvMTIpLAor CUJDTTYzNjJfR1JPVVAoZ3BpbzEzKSwKKwlCQ002MzYyX0dST1VQKGdwaW8xNCksCisJQkNNNjM2 Ml9HUk9VUChncGlvMTUpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzE2KSwKKwlCQ002MzYyX0dST1VQ KGdwaW8xNyksCisJQkNNNjM2Ml9HUk9VUChncGlvMTgpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzE5 KSwKKwlCQ002MzYyX0dST1VQKGdwaW8yMCksCisJQkNNNjM2Ml9HUk9VUChncGlvMjEpLAorCUJD TTYzNjJfR1JPVVAoZ3BpbzIyKSwKKwlCQ002MzYyX0dST1VQKGdwaW8yMyksCisJQkNNNjM2Ml9H Uk9VUChncGlvMjQpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzI1KSwKKwlCQ002MzYyX0dST1VQKGdw aW8yNiksCisJQkNNNjM2Ml9HUk9VUChncGlvMjcpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzI4KSwK KwlCQ002MzYyX0dST1VQKGdwaW8yOSksCisJQkNNNjM2Ml9HUk9VUChncGlvMzApLAorCUJDTTYz NjJfR1JPVVAoZ3BpbzMxKSwKKwlCQ002MzYyX0dST1VQKGdwaW8zMiksCisJQkNNNjM2Ml9HUk9V UChncGlvMzMpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzM0KSwKKwlCQ002MzYyX0dST1VQKGdwaW8z NSksCisJQkNNNjM2Ml9HUk9VUChncGlvMzYpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzM3KSwKKwlC Q002MzYyX0dST1VQKGdwaW8zOCksCisJQkNNNjM2Ml9HUk9VUChncGlvMzkpLAorCUJDTTYzNjJf R1JPVVAoZ3BpbzQwKSwKKwlCQ002MzYyX0dST1VQKGdwaW80MSksCisJQkNNNjM2Ml9HUk9VUChn cGlvNDIpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzQzKSwKKwlCQ002MzYyX0dST1VQKGdwaW80NCks CisJQkNNNjM2Ml9HUk9VUChncGlvNDUpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzQ2KSwKKwlCQ002 MzYyX0dST1VQKGdwaW80NyksCisJQkNNNjM2Ml9HUk9VUChuYW5kX2dycCksCit9OworCitzdGF0 aWMgY29uc3QgY2hhciAqIGNvbnN0IGxlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzAiLAorCSJncGlv MSIsCisJImdwaW8yIiwKKwkiZ3BpbzMiLAorCSJncGlvNCIsCisJImdwaW81IiwKKwkiZ3BpbzYi LAorCSJncGlvNyIsCisJImdwaW84IiwKKwkiZ3BpbzkiLAorCSJncGlvMTAiLAorCSJncGlvMTEi LAorCSJncGlvMTIiLAorCSJncGlvMTMiLAorCSJncGlvMTQiLAorCSJncGlvMTUiLAorCSJncGlv MTYiLAorCSJncGlvMTciLAorCSJncGlvMTgiLAorCSJncGlvMTkiLAorCSJncGlvMjAiLAorCSJn cGlvMjEiLAorCSJncGlvMjIiLAorCSJncGlvMjMiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIg KiBjb25zdCB1c2JfZGV2aWNlX2xlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzAiLAorfTsKKworc3Rh dGljIGNvbnN0IGNoYXIgKiBjb25zdCBzeXNfaXJxX2dyb3Vwc1tdID0geworCSJncGlvMSIsCit9 OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNlcmlhbF9sZWRfY2xrX2dyb3Vwc1tdID0g eworCSJncGlvMiIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNlcmlhbF9sZWRf ZGF0YV9ncm91cHNbXSA9IHsKKwkiZ3BpbzMiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBj b25zdCByb2Jvc3dfbGVkX2RhdGFfZ3JvdXBzW10gPSB7CisJImdwaW80IiwKK307CisKK3N0YXRp YyBjb25zdCBjaGFyICogY29uc3Qgcm9ib3N3X2xlZF9jbGtfZ3JvdXBzW10gPSB7CisJImdwaW81 IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgcm9ib3N3X2xlZDBfZ3JvdXBzW10g PSB7CisJImdwaW82IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgcm9ib3N3X2xl ZDFfZ3JvdXBzW10gPSB7CisJImdwaW83IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29u c3QgaW5ldF9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW84IiwKK307CisKK3N0YXRpYyBjb25zdCBj aGFyICogY29uc3Qgc3BpX2NzMl9ncm91cHNbXSA9IHsKKwkiZ3BpbzkiLAorfTsKKworc3RhdGlj IGNvbnN0IGNoYXIgKiBjb25zdCBzcGlfY3MzX2dyb3Vwc1tdID0geworCSJncGlvMTAiLAorfTsK Kworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBudHJfcHVsc2VfZ3JvdXBzW10gPSB7CisJImdw aW8xMSIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQxX3NjdHNfZ3JvdXBz W10gPSB7CisJImdwaW8xMiIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQx X3NydHNfZ3JvdXBzW10gPSB7CisJImdwaW8xMyIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAq IGNvbnN0IHVhcnQxX3NkaW5fZ3JvdXBzW10gPSB7CisJImdwaW8xNCIsCit9OworCitzdGF0aWMg Y29uc3QgY2hhciAqIGNvbnN0IHVhcnQxX3Nkb3V0X2dyb3Vwc1tdID0geworCSJncGlvMTUiLAor fTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhZHNsX3NwaV9taXNvX2dyb3Vwc1tdID0g eworCSJncGlvMTYiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhZHNsX3NwaV9t b3NpX2dyb3Vwc1tdID0geworCSJncGlvMTciLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBj b25zdCBhZHNsX3NwaV9jbGtfZ3JvdXBzW10gPSB7CisJImdwaW8xOCIsCit9OworCitzdGF0aWMg Y29uc3QgY2hhciAqIGNvbnN0IGFkc2xfc3BpX2NzX2dyb3Vwc1tdID0geworCSJncGlvMTkiLAor fTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlcGh5MF9sZWRfZ3JvdXBzW10gPSB7CisJ ImdwaW8yMCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGVwaHkxX2xlZF9ncm91 cHNbXSA9IHsKKwkiZ3BpbzIxIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZXBo eTJfbGVkX2dyb3Vwc1tdID0geworCSJncGlvMjIiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIg KiBjb25zdCBlcGh5M19sZWRfZ3JvdXBzW10gPSB7CisJImdwaW8yMyIsCit9OworCitzdGF0aWMg Y29uc3QgY2hhciAqIGNvbnN0IGV4dF9pcnEwX2dyb3Vwc1tdID0geworCSJncGlvMjQiLAorfTsK Kworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBleHRfaXJxMV9ncm91cHNbXSA9IHsKKwkiZ3Bp bzI1IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZXh0X2lycTJfZ3JvdXBzW10g PSB7CisJImdwaW8yNiIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGV4dF9pcnEz X2dyb3Vwc1tdID0geworCSJncGlvMjciLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z dCB3aWZpX2dyb3Vwc1tdID0geworCSJncGlvMzIiLAorCSJncGlvMzMiLAorCSJncGlvMzQiLAor CSJncGlvMzUiLAorCSJncGlvMzYiLAorCSJncGlvMzciLAorCSJncGlvMzgiLAorCSJncGlvMzki LAorCSJncGlvNDAiLAorCSJncGlvNDEiLAorCSJncGlvNDIiLAorCSJncGlvNDMiLAorCSJncGlv NDQiLAorCSJncGlvNDUiLAorCSJncGlvNDYiLAorCSJncGlvNDciLAorfTsKKworc3RhdGljIGNv bnN0IGNoYXIgKiBjb25zdCBuYW5kX2dyb3Vwc1tdID0geworCSJuYW5kX2dycCIsCit9OworCisj ZGVmaW5lIEJDTTYzNjJfTEVEX0ZVTihuKQkJCQlcCisJewkJCQkJCVwKKwkJLm5hbWUgPSAjbiwJ CQkJXAorCQkuZ3JvdXBzID0gbiMjX2dyb3VwcywJCQlcCisJCS5udW1fZ3JvdXBzID0gQVJSQVlf U0laRShuIyNfZ3JvdXBzKSwJXAorCQkucmVnID0gQkNNNjM2Ml9MRURDVFJMLAkJCVwKKwl9CisK KyNkZWZpbmUgQkNNNjM2Ml9NT0RFX0ZVTihuKQkJCQlcCisJewkJCQkJCVwKKwkJLm5hbWUgPSAj biwJCQkJXAorCQkuZ3JvdXBzID0gbiMjX2dyb3VwcywJCQlcCisJCS5udW1fZ3JvdXBzID0gQVJS QVlfU0laRShuIyNfZ3JvdXBzKSwJXAorCQkucmVnID0gQkNNNjM2Ml9NT0RFLAkJCVwKKwl9CisK KyNkZWZpbmUgQkNNNjM2Ml9DVFJMX0ZVTihuKQkJCQlcCisJewkJCQkJCVwKKwkJLm5hbWUgPSAj biwJCQkJXAorCQkuZ3JvdXBzID0gbiMjX2dyb3VwcywJCQlcCisJCS5udW1fZ3JvdXBzID0gQVJS QVlfU0laRShuIyNfZ3JvdXBzKSwJXAorCQkucmVnID0gQkNNNjM2Ml9DVFJMLAkJCVwKKwl9CisK KyNkZWZpbmUgQkNNNjM2Ml9CQVNFTU9ERV9GVU4obiwgbWFzaykJCQlcCisJewkJCQkJCVwKKwkJ Lm5hbWUgPSAjbiwJCQkJXAorCQkuZ3JvdXBzID0gbiMjX2dyb3VwcywJCQlcCisJCS5udW1fZ3Jv dXBzID0gQVJSQVlfU0laRShuIyNfZ3JvdXBzKSwJXAorCQkucmVnID0gQkNNNjM2Ml9CQVNFTU9E RSwJCVwKKwkJLmJhc2Vtb2RlX21hc2sgPSAobWFzayksCQlcCisJfQorCitzdGF0aWMgY29uc3Qg c3RydWN0IGJjbTYzNjJfZnVuY3Rpb24gYmNtNjM2Ml9mdW5jc1tdID0geworCUJDTTYzNjJfTEVE X0ZVTihsZWQpLAorCUJDTTYzNjJfTU9ERV9GVU4odXNiX2RldmljZV9sZWQpLAorCUJDTTYzNjJf TU9ERV9GVU4oc3lzX2lycSksCisJQkNNNjM2Ml9NT0RFX0ZVTihzZXJpYWxfbGVkX2NsayksCisJ QkNNNjM2Ml9NT0RFX0ZVTihzZXJpYWxfbGVkX2RhdGEpLAorCUJDTTYzNjJfTU9ERV9GVU4ocm9i b3N3X2xlZF9kYXRhKSwKKwlCQ002MzYyX01PREVfRlVOKHJvYm9zd19sZWRfY2xrKSwKKwlCQ002 MzYyX01PREVfRlVOKHJvYm9zd19sZWQwKSwKKwlCQ002MzYyX01PREVfRlVOKHJvYm9zd19sZWQx KSwKKwlCQ002MzYyX01PREVfRlVOKGluZXRfbGVkKSwKKwlCQ002MzYyX01PREVfRlVOKHNwaV9j czIpLAorCUJDTTYzNjJfTU9ERV9GVU4oc3BpX2NzMyksCisJQkNNNjM2Ml9NT0RFX0ZVTihudHJf cHVsc2UpLAorCUJDTTYzNjJfTU9ERV9GVU4odWFydDFfc2N0cyksCisJQkNNNjM2Ml9NT0RFX0ZV Tih1YXJ0MV9zcnRzKSwKKwlCQ002MzYyX01PREVfRlVOKHVhcnQxX3NkaW4pLAorCUJDTTYzNjJf TU9ERV9GVU4odWFydDFfc2RvdXQpLAorCUJDTTYzNjJfTU9ERV9GVU4oYWRzbF9zcGlfbWlzbyks CisJQkNNNjM2Ml9NT0RFX0ZVTihhZHNsX3NwaV9tb3NpKSwKKwlCQ002MzYyX01PREVfRlVOKGFk c2xfc3BpX2NsayksCisJQkNNNjM2Ml9NT0RFX0ZVTihhZHNsX3NwaV9jcyksCisJQkNNNjM2Ml9N T0RFX0ZVTihlcGh5MF9sZWQpLAorCUJDTTYzNjJfTU9ERV9GVU4oZXBoeTFfbGVkKSwKKwlCQ002 MzYyX01PREVfRlVOKGVwaHkyX2xlZCksCisJQkNNNjM2Ml9NT0RFX0ZVTihlcGh5M19sZWQpLAor CUJDTTYzNjJfTU9ERV9GVU4oZXh0X2lycTApLAorCUJDTTYzNjJfTU9ERV9GVU4oZXh0X2lycTEp LAorCUJDTTYzNjJfTU9ERV9GVU4oZXh0X2lycTIpLAorCUJDTTYzNjJfTU9ERV9GVU4oZXh0X2ly cTMpLAorCUJDTTYzNjJfQ1RSTF9GVU4od2lmaSksCisJQkNNNjM2Ml9CQVNFTU9ERV9GVU4obmFu ZCwgQkFTRU1PREVfTkFORCksCit9OworCitzdGF0aWMgaW50IGJjbTYzNjJfcGluY3RybF9nZXRf Z3JvdXBfY291bnQoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2KQoreworCXJldHVybiBBUlJB WV9TSVpFKGJjbTYzNjJfZ3JvdXBzKTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmJjbTYzNjJf cGluY3RybF9nZXRfZ3JvdXBfbmFtZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCisJCQkJ CQkgIHVuc2lnbmVkIGdyb3VwKQoreworCXJldHVybiBiY202MzYyX2dyb3Vwc1tncm91cF0ubmFt ZTsKK30KKworc3RhdGljIGludCBiY202MzYyX3BpbmN0cmxfZ2V0X2dyb3VwX3BpbnMoc3RydWN0 IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCQkgIHVuc2lnbmVkIGdyb3VwLCBjb25zdCB1bnNp Z25lZCAqKnBpbnMsCisJCQkJCSAgdW5zaWduZWQgKm51bV9waW5zKQoreworCSpwaW5zID0gYmNt NjM2Ml9ncm91cHNbZ3JvdXBdLnBpbnM7CisJKm51bV9waW5zID0gYmNtNjM2Ml9ncm91cHNbZ3Jv dXBdLm51bV9waW5zOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjM2Ml9waW5j dHJsX2dldF9mdW5jX2NvdW50KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldikKK3sKKwlyZXR1 cm4gQVJSQVlfU0laRShiY202MzYyX2Z1bmNzKTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmJj bTYzNjJfcGluY3RybF9nZXRfZnVuY19uYW1lKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwK KwkJCQkJCSB1bnNpZ25lZCBzZWxlY3RvcikKK3sKKwlyZXR1cm4gYmNtNjM2Ml9mdW5jc1tzZWxl Y3Rvcl0ubmFtZTsKK30KKworc3RhdGljIGludCBiY202MzYyX3BpbmN0cmxfZ2V0X2dyb3Vwcyhz dHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCisJCQkJICAgICAgdW5zaWduZWQgc2VsZWN0b3Is CisJCQkJICAgICAgY29uc3QgY2hhciAqIGNvbnN0ICoqZ3JvdXBzLAorCQkJCSAgICAgIHVuc2ln bmVkICogY29uc3QgbnVtX2dyb3VwcykKK3sKKwkqZ3JvdXBzID0gYmNtNjM2Ml9mdW5jc1tzZWxl Y3Rvcl0uZ3JvdXBzOworCSpudW1fZ3JvdXBzID0gYmNtNjM2Ml9mdW5jc1tzZWxlY3Rvcl0ubnVt X2dyb3VwczsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBiY202MzYyX3NldF9ncGlv KHN0cnVjdCBiY202M3h4X3BpbmN0cmwgKnBjLCB1bnNpZ25lZCBwaW4pCit7CisJY29uc3Qgc3Ry dWN0IHBpbmN0cmxfcGluX2Rlc2MgKmRlc2MgPSAmYmNtNjM2Ml9waW5zW3Bpbl07CisJdW5zaWdu ZWQgaW50IG1hc2sgPSBiY202M3h4X2JhbmtfcGluKHBpbik7CisKKwlpZiAoZGVzYy0+ZHJ2X2Rh dGEpCisJCXJlZ21hcF91cGRhdGVfYml0cyhwYy0+cmVncywgQkNNNjM2Ml9CQVNFTU9ERV9SRUcs CisJCQkJICAgKHVpbnQzMl90KSBkZXNjLT5kcnZfZGF0YSwgMCk7CisKKwlpZiAocGluIDwgQkNN NjNYWF9CQU5LX0dQSU9TKSB7CisJCS8qIGJhc2UgbW9kZSAwID0+IGdwaW8gMSA9PiBtdXggZnVu Y3Rpb24gKi8KKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKHBjLT5yZWdzLCBCQ002MzYyX01PREVfUkVH LCBtYXNrLCAwKTsKKworCQkvKiBwaW5zIDAtMjMgbWlnaHQgYmUgbXV4ZWQgdG8gbGVkICovCisJ CWlmIChwaW4gPCBCQ002MzYyX05VTV9MRURTKQorCQkJcmVnbWFwX3VwZGF0ZV9iaXRzKHBjLT5y ZWdzLCBCQ002MzYyX0xFRF9SRUcsIG1hc2ssIDApOworCX0gZWxzZSB7CisJCS8qIGN0cmwgcmVn IDAgPT4gd2lmaSBmdW5jdGlvbiAxID0+IGdwaW8gKi8KKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKHBj LT5yZWdzLCBCQ002MzYyX0NUUkxfUkVHLCBtYXNrLCBtYXNrKTsKKwl9Cit9CisKK3N0YXRpYyBp bnQgYmNtNjM2Ml9waW5jdHJsX3NldF9tdXgoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAor CQkJCSAgIHVuc2lnbmVkIHNlbGVjdG9yLCB1bnNpZ25lZCBncm91cCkKK3sKKwlzdHJ1Y3QgYmNt NjN4eF9waW5jdHJsICpwYyA9IHBpbmN0cmxfZGV2X2dldF9kcnZkYXRhKHBjdGxkZXYpOworCWNv bnN0IHN0cnVjdCBiY202MzYyX3Bpbmdyb3VwICpwZyA9ICZiY202MzYyX2dyb3Vwc1tncm91cF07 CisJY29uc3Qgc3RydWN0IGJjbTYzNjJfZnVuY3Rpb24gKmYgPSAmYmNtNjM2Ml9mdW5jc1tzZWxl Y3Rvcl07CisJdW5zaWduZWQgaTsKKwl1bnNpZ25lZCBpbnQgcmVnOworCXVuc2lnbmVkIGludCB2 YWwsIG1hc2s7CisKKwlmb3IgKGkgPSAwOyBpIDwgcGctPm51bV9waW5zOyBpKyspCisJCWJjbTYz NjJfc2V0X2dwaW8ocGMsIHBnLT5waW5zW2ldKTsKKworCXN3aXRjaCAoZi0+cmVnKSB7CisJY2Fz ZSBCQ002MzYyX0xFRENUUkw6CisJCXJlZyA9IEJDTTYzNjJfTEVEX1JFRzsKKwkJbWFzayA9IEJJ VChwZy0+cGluc1swXSk7CisJCXZhbCA9IEJJVChwZy0+cGluc1swXSk7CisJCWJyZWFrOworCWNh c2UgQkNNNjM2Ml9NT0RFOgorCQlyZWcgPSBCQ002MzYyX01PREVfUkVHOworCQltYXNrID0gQklU KHBnLT5waW5zWzBdKTsKKwkJdmFsID0gQklUKHBnLT5waW5zWzBdKTsKKwkJYnJlYWs7CisJY2Fz ZSBCQ002MzYyX0NUUkw6CisJCXJlZyA9IEJDTTYzNjJfQ1RSTF9SRUc7CisJCW1hc2sgPSBCSVQo cGctPnBpbnNbMF0pOworCQl2YWwgPSAwOworCQlicmVhazsKKwljYXNlIEJDTTYzNjJfQkFTRU1P REU6CisJCXJlZyA9IEJDTTYzNjJfQkFTRU1PREVfUkVHOworCQltYXNrID0gZi0+YmFzZW1vZGVf bWFzazsKKwkJdmFsID0gZi0+YmFzZW1vZGVfbWFzazsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJ V0FSTl9PTigxKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmVnbWFwX3VwZGF0ZV9iaXRz KHBjLT5yZWdzLCByZWcsIG1hc2ssIHZhbCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlu dCBiY202MzYyX2dwaW9fcmVxdWVzdF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2 LAorCQkJCSAgICAgICBzdHJ1Y3QgcGluY3RybF9ncGlvX3JhbmdlICpyYW5nZSwKKwkJCQkgICAg ICAgdW5zaWduZWQgb2Zmc2V0KQoreworCXN0cnVjdCBiY202M3h4X3BpbmN0cmwgKnBjID0gcGlu Y3RybF9kZXZfZ2V0X2RydmRhdGEocGN0bGRldik7CisKKwkvKiBkaXNhYmxlIGFsbCBmdW5jdGlv bnMgdXNpbmcgdGhpcyBwaW4gKi8KKwliY202MzYyX3NldF9ncGlvKHBjLCBvZmZzZXQpOworCisJ cmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGluY3RybF9vcHMgYmNtNjM2Ml9wY3RsX29w cyA9IHsKKwkuZ2V0X2dyb3Vwc19jb3VudCA9IGJjbTYzNjJfcGluY3RybF9nZXRfZ3JvdXBfY291 bnQsCisJLmdldF9ncm91cF9uYW1lID0gYmNtNjM2Ml9waW5jdHJsX2dldF9ncm91cF9uYW1lLAor CS5nZXRfZ3JvdXBfcGlucyA9IGJjbTYzNjJfcGluY3RybF9nZXRfZ3JvdXBfcGlucywKKwkuZHRf bm9kZV90b19tYXAgPSBwaW5jb25mX2dlbmVyaWNfZHRfbm9kZV90b19tYXBfcGluLAorCS5kdF9m cmVlX21hcCA9IHBpbmN0cmxfdXRpbHNfZnJlZV9tYXAsCit9OworCitzdGF0aWMgc3RydWN0IHBp bm11eF9vcHMgYmNtNjM2Ml9wbXhfb3BzID0geworCS5nZXRfZnVuY3Rpb25zX2NvdW50ID0gYmNt NjM2Ml9waW5jdHJsX2dldF9mdW5jX2NvdW50LAorCS5nZXRfZnVuY3Rpb25fbmFtZSA9IGJjbTYz NjJfcGluY3RybF9nZXRfZnVuY19uYW1lLAorCS5nZXRfZnVuY3Rpb25fZ3JvdXBzID0gYmNtNjM2 Ml9waW5jdHJsX2dldF9ncm91cHMsCisJLnNldF9tdXggPSBiY202MzYyX3BpbmN0cmxfc2V0X211 eCwKKwkuZ3Bpb19yZXF1ZXN0X2VuYWJsZSA9IGJjbTYzNjJfZ3Bpb19yZXF1ZXN0X2VuYWJsZSwK Kwkuc3RyaWN0ID0gdHJ1ZSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtNjN4eF9waW5j dHJsX3NvYyBiY202MzYyX3NvYyA9IHsKKwkubmdwaW9zID0gQkNNNjM2Ml9OVU1fR1BJT1MsCisJ Lm5waW5zID0gQVJSQVlfU0laRShiY202MzYyX3BpbnMpLAorCS5wY3RsX29wcyA9ICZiY202MzYy X3BjdGxfb3BzLAorCS5waW5zID0gYmNtNjM2Ml9waW5zLAorCS5wbXhfb3BzID0gJmJjbTYzNjJf cG14X29wcywKK307CisKK3N0YXRpYyBpbnQgYmNtNjM2Ml9waW5jdHJsX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJcmV0dXJuIGJjbTYzeHhfcGluY3RybF9wcm9iZShw ZGV2LCAmYmNtNjM2Ml9zb2MsIE5VTEwpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2Rl dmljZV9pZCBiY202MzYyX3BpbmN0cmxfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gImJy Y20sYmNtNjM2Mi1waW5jdHJsIiwgfSwKKwl7IH0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRm b3JtX2RyaXZlciBiY202MzYyX3BpbmN0cmxfZHJpdmVyID0geworCS5wcm9iZSA9IGJjbTYzNjJf cGluY3RybF9wcm9iZSwKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJiY202MzYyLXBpbmN0cmwi LAorCQkub2ZfbWF0Y2hfdGFibGUgPSBiY202MzYyX3BpbmN0cmxfbWF0Y2gsCisJfSwKK307CisK K2J1aWx0aW5fcGxhdGZvcm1fZHJpdmVyKGJjbTYzNjJfcGluY3RybF9kcml2ZXIpOwotLSAKMi4y MC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlu dXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRl YWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt YXJtLWtlcm5lbAo=