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,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 EF2A4C433DB for ; Mon, 15 Mar 2021 12:06:22 +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 A814E64D9C for ; Mon, 15 Mar 2021 12:06:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A814E64D9C 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=T51T7R6b6FX0mb53hM0tjZpwy+McBvQZxgzG4keeJwE=; b=lG1cqDNJ8k4n0xU/XoANmaho8 53FHvnRWSBNE74nE5MxqIOAIt/66mZ9oYiWBKifzamMoB8gn8IyQCxlPB82rWuzo9nGNI01mFPxNX Hy5bmjR6GT+FRl3M/u2i8FafpudstjcqVudvDCIyf0YQkITU+2+1E8jGd/arveORYSaI/TyQ+g9qm v+NmuF/hvCLjhlTfaGYKv7UyLm90T3tqSIvcm0VaOWJOTZyelDu0ynfdnKouyBdt75/z76I2bBTeo AFGchAgvkrTq7JEF33eIsKMmiRbPt/Hzx5SoBc99ok44g+BVJU1BREGTJbsn6SM9Lbq3/PjcddLP8 fvaT6+U+w==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lLlws-00Fkg2-JU; Mon, 15 Mar 2021 12:03:51 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lLld7-00Fh15-PQ for linux-arm-kernel@desiato.infradead.org; Mon, 15 Mar 2021 11:43:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:To:From:Sender: Reply-To:Cc:Content-ID:Content-Description; bh=WZkZWudoFy0H9x3qj0dZsm6YiliC/6zw0WcV4CDoSkc=; b=XTDiCa9EsrF7EJHJyISD7jp/rB QMnUzuru/0BelnazhZe/qGKepUGJ2wx7sfqfLlb/BIIyONL17TOshYbxZGywL2jY8MAKwAdgwSnqk gZcdFxhMA86TMP3WZzvbfPOdv+McqgAom7jGazmfUEw5NMWAAVexMiZcXVkEnIvURZr76sWtTtFZC Fm9DyLbF+PBhcJEIrtxg5vwjyba+mydXAwXs2/jq6v0SGthPITcBwG504x5FhP5FpCrtKYMp6sIQh uokY71T3FIv0NLrVgKRejVnk/G49NrsHYb5rNXj1BKuC+hn+STuPi2XNDO4nZmxg11Vd/iw8KS3E3 sOu9Z2bA==; Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by casper.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lLlcV-0005T3-Ut for linux-arm-kernel@lists.infradead.org; Mon, 15 Mar 2021 11:43:15 +0000 Received: by mail-wm1-x332.google.com with SMTP id m20-20020a7bcb940000b029010cab7e5a9fso20045327wmi.3 for ; Mon, 15 Mar 2021 04:42:38 -0700 (PDT) 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=WZkZWudoFy0H9x3qj0dZsm6YiliC/6zw0WcV4CDoSkc=; b=kppzCmfGJiY3w7IkgP9Pyx7ImWvRrn7hKxrXYHrqPVD28kWZ2oJnf1Tpf3txMgcZVD +vFEwc9VdcR7rWVDK+8fmiCLakgaOw0ugpDLYkYP8q9O8m35DtEH0ZFRP2BtT16i9DlU CFhm8kW/1r0jXm2XzGirEtbAq57QqBYgCJr0MzGxJmu45EnO7zN28ahi0i0qDOlUBUAN h3/k8fgTWmZBmDv0T7wuLcuaFg9H1u/o55YA3WKf5q6Iy6qYOkbZy7rKOxPUxHb8CTFs 6tVI0Ws3DPRhDII4aGhqmMh+bHtniP2yEnTMfj5ccSkVZcVJThAnj5b+F/2E89auGZth MvEQ== 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=WZkZWudoFy0H9x3qj0dZsm6YiliC/6zw0WcV4CDoSkc=; b=CqGGrGhwpYj764BB5WdBFAwPDRWUnpjkT5KQryD9WBeTojW2hr/c39InUUBGjSO+NY iCB0Dc8JXkzJZ+nl1hHuNgpFggkLJvaVQrwSfuDJ4dzjzI82UL6yx3YMWEqCWxcJEQhU C8ORO7FvZ+jESocnS7GYJLAk73Toye8aL1ijiXZV4BnKtAUSDJUBY0sJCh8PsMTHO4Mj VhgxPDeVCnzelUsgeAL8yLVurwSvvGrPeTCl6NqEdfVme89sa156A3j2nIcDTyEzhZIR ZXJGB24H8EFQA2Dzfk+yFWOAJHz9sGOK3czur/NXCopj4nkay3pVTYEHoVGUa3r1yIRv g9hg== X-Gm-Message-State: AOAM531xMSJ+0OQa1VyinbQjDa8EvOLXoGP8N3+G6jsPhHx5sUtrhlRL +fYEN/NLIzgz4Cwxjc4+ZZY= X-Google-Smtp-Source: ABdhPJzqhK3fXA9u0ioQz7wQJd50CMJemQEAmu/AkdlkD0E+4rdDTRzIiOTZ+bOaZhm2abBubZKBig== X-Received: by 2002:a1c:e184:: with SMTP id y126mr25681719wmg.163.1615808555991; Mon, 15 Mar 2021 04:42:35 -0700 (PDT) Received: from skynet.lan ([80.31.204.166]) by smtp.gmail.com with ESMTPSA id v189sm12648187wme.39.2021.03.15.04.42.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 04:42:35 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, Lee Jones , Michael Walle , =?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-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 19/22] pinctrl: add a pincontrol driver for BCM63268 Date: Mon, 15 Mar 2021 12:42:11 +0100 Message-Id: <20210315114214.3096-20-noltari@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210315114214.3096-1-noltari@gmail.com> References: <20210315114214.3096-1-noltari@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210315_114257_001866_BC1780E6 X-CRM114-Status: GOOD ( 18.34 ) 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 QWRkIGEgcGluY29udHJvbCBkcml2ZXIgZm9yIEJDTTYzMjY4LiBCQ002MzI2OCBhbGxvd3MgbXV4 aW5nIEdQSU9zCnRvIGRpZmZlcmVudCBmdW5jdGlvbnMuIERlcGVuZGluZyBvbiB0aGUgbXV4LCB0 aGVzZSBhcmUgZWl0aGVyIHNpbmdsZQpwaW4gY29uZmlndXJhdGlvbnMgb3Igd2hvbGUgcGluIGdy b3Vwcy4KCkNvLWRldmVsb3BlZC1ieTogSm9uYXMgR29yc2tpIDxqb25hcy5nb3Jza2lAZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBKb25hcyBHb3Jza2kgPGpvbmFzLmdvcnNraUBnbWFpbC5jb20+ ClNpZ25lZC1vZmYtYnk6IMOBbHZhcm8gRmVybsOhbmRleiBSb2phcyA8bm9sdGFyaUBnbWFpbC5j b20+Ci0tLQogdjc6IG5vIGNoYW5nZXMKIHY2OiBubyBjaGFuZ2VzCiB2NTogYWRkIGNoYW5nZXMg c3VnZ2VzdGVkIGJ5IEFuZHkgU2hldmNoZW5rbwogdjQ6IG5vIGNoYW5nZXMKIHYzOiB1c2UgbmV3 IHNoYXJlZCBjb2RlCiB2Mjogc3dpdGNoIHRvIEdQSU9fUkVHTUFQCgogZHJpdmVycy9waW5jdHJs L2JjbS9LY29uZmlnICAgICAgICAgICAgfCAgIDggKwogZHJpdmVycy9waW5jdHJsL2JjbS9NYWtl ZmlsZSAgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYz MjY4LmMgfCA2NDMgKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA2 NTIgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvcGluY3RybC9iY20v cGluY3RybC1iY202MzI2OC5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2JjbS9LY29u ZmlnIGIvZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmlnCmluZGV4IGFhYmQ0Yjc2MmFlZC4uMTg2 OTg1ODQ2MTIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvYmNtL0tjb25maWcKKysrIGIv ZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmlnCkBAIC02OCw2ICs2OCwxNCBAQCBjb25maWcgUElO Q1RSTF9CQ002MzY4CiAJaGVscAogCSAgIFNheSBZIGhlcmUgdG8gZW5hYmxlIHRoZSBCcm9hZGNv bSBCQ002MzY4IEdQSU8gZHJpdmVyLgogCitjb25maWcgUElOQ1RSTF9CQ002MzI2OAorCWJvb2wg IkJyb2FkY29tIEJDTTYzMjY4IEdQSU8gZHJpdmVyIgorCWRlcGVuZHMgb24gKEJNSVBTX0dFTkVS SUMgfHwgQ09NUElMRV9URVNUKQorCXNlbGVjdCBQSU5DVFJMX0JDTTYzWFgKKwlkZWZhdWx0IEJN SVBTX0dFTkVSSUMKKwloZWxwCisJICAgU2F5IFkgaGVyZSB0byBlbmFibGUgdGhlIEJyb2FkY29t IEJDTTYzMjY4IEdQSU8gZHJpdmVyLgorCiBjb25maWcgUElOQ1RSTF9JUFJPQ19HUElPCiAJYm9v bCAiQnJvYWRjb20gaVByb2MgR1BJTyAod2l0aCBQSU5DT05GKSBkcml2ZXIiCiAJZGVwZW5kcyBv biBPRl9HUElPICYmIChBUkNIX0JDTV9JUFJPQyB8fCBDT01QSUxFX1RFU1QpCmRpZmYgLS1naXQg YS9kcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlIGIvZHJpdmVycy9waW5jdHJsL2JjbS9NYWtl ZmlsZQppbmRleCBhMTMzMWJiOTY4MGUuLjQxMTc4NDdmZDI3OSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9waW5jdHJsL2JjbS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxl CkBAIC04LDYgKzgsNyBAQCBvYmotJChDT05GSUdfUElOQ1RSTF9CQ002MzI4KQkJKz0gcGluY3Ry bC1iY202MzI4Lm8KIG9iai0kKENPTkZJR19QSU5DVFJMX0JDTTYzNTgpCQkrPSBwaW5jdHJsLWJj bTYzNTgubwogb2JqLSQoQ09ORklHX1BJTkNUUkxfQkNNNjM2MikJCSs9IHBpbmN0cmwtYmNtNjM2 Mi5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9CQ002MzY4KQkJKz0gcGluY3RybC1iY202MzY4Lm8K K29iai0kKENPTkZJR19QSU5DVFJMX0JDTTYzMjY4KQkJKz0gcGluY3RybC1iY202MzI2OC5vCiBv YmotJChDT05GSUdfUElOQ1RSTF9JUFJPQ19HUElPKQkrPSBwaW5jdHJsLWlwcm9jLWdwaW8ubwog b2JqLSQoQ09ORklHX1BJTkNUUkxfQ1lHTlVTX01VWCkJKz0gcGluY3RybC1jeWdudXMtbXV4Lm8K IG9iai0kKENPTkZJR19QSU5DVFJMX05TKQkJKz0gcGluY3RybC1ucy5vCmRpZmYgLS1naXQgYS9k cml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjMyNjguYyBiL2RyaXZlcnMvcGluY3RybC9i Y20vcGluY3RybC1iY202MzI2OC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uZDRjNWZhZDdmYjdkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9waW5jdHJsL2Jj bS9waW5jdHJsLWJjbTYzMjY4LmMKQEAgLTAsMCArMSw2NDMgQEAKKy8vIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wKworLyoKKyAqIERyaXZlciBmb3IgQkNNNjMyNjggR1BJTyB1bml0 IChwaW5jdHJsICsgR1BJTykKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgw4FsdmFybyBGZXJu w6FuZGV6IFJvamFzIDxub2x0YXJpQGdtYWlsLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBK b25hcyBHb3Jza2kgPGpvbmFzLmdvcnNraUBnbWFpbC5jb20+CisgKi8KKworI2luY2x1ZGUgPGxp bnV4L2JpdHMuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvL2RyaXZlci5oPgorI2luY2x1ZGUgPGxp bnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L29mLmg+CisjaW5jbHVkZSA8bGludXgvcGlu Y3RybC9waW5tdXguaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNs dWRlIDxsaW51eC9yZWdtYXAuaD4KKworI2luY2x1ZGUgIi4uL3BpbmN0cmwtdXRpbHMuaCIKKwor I2luY2x1ZGUgInBpbmN0cmwtYmNtNjN4eC5oIgorCisjZGVmaW5lIEJDTTYzMjY4X05VTV9HUElP UwkJNTIKKyNkZWZpbmUgQkNNNjMyNjhfTlVNX0xFRFMJCTI0CisKKyNkZWZpbmUgQkNNNjMyNjhf TEVEX1JFRwkJMHgxMAorI2RlZmluZSBCQ002MzI2OF9NT0RFX1JFRwkJMHgxOAorI2RlZmluZSBC Q002MzI2OF9DVFJMX1JFRwkJMHgxYworI2RlZmluZSBCQ002MzI2OF9CQVNFTU9ERV9SRUcJCTB4 MzgKKyNkZWZpbmUgIEJDTTYzMjY4X0JBU0VNT0RFX05BTkQJCUJJVCgyKSAvKiBHUElPcyAyLTcs IDI0LTMxICovCisjZGVmaW5lICBCQ002MzI2OF9CQVNFTU9ERV9HUElPMzUJQklUKDQpIC8qIEdQ SU8gMzUgKi8KKyNkZWZpbmUgIEJDTTYzMjY4X0JBU0VNT0RFX0RFQ1RQRAlCSVQoNSkgLyogR1BJ T3MgOC85ICovCisjZGVmaW5lICBCQ002MzI2OF9CQVNFTU9ERV9WRFNMX1BIWV8wCUJJVCg2KSAv KiBHUElPcyAxMC8xMSAqLworI2RlZmluZSAgQkNNNjMyNjhfQkFTRU1PREVfVkRTTF9QSFlfMQlC SVQoNykgLyogR1BJT3MgMTIvMTMgKi8KKyNkZWZpbmUgIEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xf UEhZXzIJQklUKDgpIC8qIEdQSU9zIDI0LzI1ICovCisjZGVmaW5lICBCQ002MzI2OF9CQVNFTU9E RV9WRFNMX1BIWV8zCUJJVCg5KSAvKiBHUElPcyAyNi8yNyAqLworCitlbnVtIGJjbTYzMjY4X3Bp bmN0cmxfcmVnIHsKKwlCQ002MzI2OF9MRURDVFJMLAorCUJDTTYzMjY4X01PREUsCisJQkNNNjMy NjhfQ1RSTCwKKwlCQ002MzI2OF9CQVNFTU9ERSwKK307CisKK3N0cnVjdCBiY202MzI2OF9waW5n cm91cCB7CisJY29uc3QgY2hhciAqbmFtZTsKKwljb25zdCB1bnNpZ25lZCAqIGNvbnN0IHBpbnM7 CisJY29uc3QgdW5zaWduZWQgbnVtX3BpbnM7Cit9OworCitzdHJ1Y3QgYmNtNjMyNjhfZnVuY3Rp b24geworCWNvbnN0IGNoYXIgKm5hbWU7CisJY29uc3QgY2hhciAqIGNvbnN0ICpncm91cHM7CisJ Y29uc3QgdW5zaWduZWQgbnVtX2dyb3VwczsKKworCWVudW0gYmNtNjMyNjhfcGluY3RybF9yZWcg cmVnOworCXVpbnQzMl90IG1hc2s7Cit9OworCisjZGVmaW5lIEJDTTYzMjY4X1BJTihhLCBiLCBi YXNlbW9kZSkJCQlcCisJewkJCQkJCVwKKwkJLm51bWJlciA9IGEsCQkJCVwKKwkJLm5hbWUgPSBi LAkJCQlcCisJCS5kcnZfZGF0YSA9ICh2b2lkICopKGJhc2Vtb2RlKQkJXAorCX0KKworc3RhdGlj IGNvbnN0IHN0cnVjdCBwaW5jdHJsX3Bpbl9kZXNjIGJjbTYzMjY4X3BpbnNbXSA9IHsKKwlQSU5D VFJMX1BJTigwLCAiZ3BpbzAiKSwKKwlQSU5DVFJMX1BJTigxLCAiZ3BpbzEiKSwKKwlCQ002MzI2 OF9QSU4oMiwgImdwaW8yIiwgQkNNNjMyNjhfQkFTRU1PREVfTkFORCksCisJQkNNNjMyNjhfUElO KDMsICJncGlvMyIsIEJDTTYzMjY4X0JBU0VNT0RFX05BTkQpLAorCUJDTTYzMjY4X1BJTig0LCAi Z3BpbzQiLCBCQ002MzI2OF9CQVNFTU9ERV9OQU5EKSwKKwlCQ002MzI2OF9QSU4oNSwgImdwaW81 IiwgQkNNNjMyNjhfQkFTRU1PREVfTkFORCksCisJQkNNNjMyNjhfUElOKDYsICJncGlvNiIsIEJD TTYzMjY4X0JBU0VNT0RFX05BTkQpLAorCUJDTTYzMjY4X1BJTig3LCAiZ3BpbzciLCBCQ002MzI2 OF9CQVNFTU9ERV9OQU5EKSwKKwlCQ002MzI2OF9QSU4oOCwgImdwaW84IiwgQkNNNjMyNjhfQkFT RU1PREVfREVDVFBEKSwKKwlCQ002MzI2OF9QSU4oOSwgImdwaW85IiwgQkNNNjMyNjhfQkFTRU1P REVfREVDVFBEKSwKKwlCQ002MzI2OF9QSU4oMTAsICJncGlvMTAiLCBCQ002MzI2OF9CQVNFTU9E RV9WRFNMX1BIWV8wKSwKKwlCQ002MzI2OF9QSU4oMTEsICJncGlvMTEiLCBCQ002MzI2OF9CQVNF TU9ERV9WRFNMX1BIWV8wKSwKKwlCQ002MzI2OF9QSU4oMTIsICJncGlvMTIiLCBCQ002MzI2OF9C QVNFTU9ERV9WRFNMX1BIWV8xKSwKKwlCQ002MzI2OF9QSU4oMTMsICJncGlvMTMiLCBCQ002MzI2 OF9CQVNFTU9ERV9WRFNMX1BIWV8xKSwKKwlQSU5DVFJMX1BJTigxNCwgImdwaW8xNCIpLAorCVBJ TkNUUkxfUElOKDE1LCAiZ3BpbzE1IiksCisJUElOQ1RSTF9QSU4oMTYsICJncGlvMTYiKSwKKwlQ SU5DVFJMX1BJTigxNywgImdwaW8xNyIpLAorCVBJTkNUUkxfUElOKDE4LCAiZ3BpbzE4IiksCisJ UElOQ1RSTF9QSU4oMTksICJncGlvMTkiKSwKKwlQSU5DVFJMX1BJTigyMCwgImdwaW8yMCIpLAor CVBJTkNUUkxfUElOKDIxLCAiZ3BpbzIxIiksCisJUElOQ1RSTF9QSU4oMjIsICJncGlvMjIiKSwK KwlQSU5DVFJMX1BJTigyMywgImdwaW8yMyIpLAorCUJDTTYzMjY4X1BJTigyNCwgImdwaW8yNCIs CisJCSAgICAgQkNNNjMyNjhfQkFTRU1PREVfTkFORCB8IEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xf UEhZXzIpLAorCUJDTTYzMjY4X1BJTigyNSwgImdwaW8yNSIsCisJCSAgICAgQkNNNjMyNjhfQkFT RU1PREVfTkFORCB8IEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xfUEhZXzIpLAorCUJDTTYzMjY4X1BJ TigyNiwgImdwaW8yNiIsCisJCSAgICAgQkNNNjMyNjhfQkFTRU1PREVfTkFORCB8IEJDTTYzMjY4 X0JBU0VNT0RFX1ZEU0xfUEhZXzMpLAorCUJDTTYzMjY4X1BJTigyNywgImdwaW8yNyIsCisJCSAg ICAgQkNNNjMyNjhfQkFTRU1PREVfTkFORCB8IEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xfUEhZXzMp LAorCUJDTTYzMjY4X1BJTigyOCwgImdwaW8yOCIsIEJDTTYzMjY4X0JBU0VNT0RFX05BTkQpLAor CUJDTTYzMjY4X1BJTigyOSwgImdwaW8yOSIsIEJDTTYzMjY4X0JBU0VNT0RFX05BTkQpLAorCUJD TTYzMjY4X1BJTigzMCwgImdwaW8zMCIsIEJDTTYzMjY4X0JBU0VNT0RFX05BTkQpLAorCUJDTTYz MjY4X1BJTigzMSwgImdwaW8zMSIsIEJDTTYzMjY4X0JBU0VNT0RFX05BTkQpLAorCVBJTkNUUkxf UElOKDMyLCAiZ3BpbzMyIiksCisJUElOQ1RSTF9QSU4oMzMsICJncGlvMzMiKSwKKwlQSU5DVFJM X1BJTigzNCwgImdwaW8zNCIpLAorCVBJTkNUUkxfUElOKDM1LCAiZ3BpbzM1IiksCisJUElOQ1RS TF9QSU4oMzYsICJncGlvMzYiKSwKKwlQSU5DVFJMX1BJTigzNywgImdwaW8zNyIpLAorCVBJTkNU UkxfUElOKDM4LCAiZ3BpbzM4IiksCisJUElOQ1RSTF9QSU4oMzksICJncGlvMzkiKSwKKwlQSU5D VFJMX1BJTig0MCwgImdwaW80MCIpLAorCVBJTkNUUkxfUElOKDQxLCAiZ3BpbzQxIiksCisJUElO Q1RSTF9QSU4oNDIsICJncGlvNDIiKSwKKwlQSU5DVFJMX1BJTig0MywgImdwaW80MyIpLAorCVBJ TkNUUkxfUElOKDQ0LCAiZ3BpbzQ0IiksCisJUElOQ1RSTF9QSU4oNDUsICJncGlvNDUiKSwKKwlQ SU5DVFJMX1BJTig0NiwgImdwaW80NiIpLAorCVBJTkNUUkxfUElOKDQ3LCAiZ3BpbzQ3IiksCisJ UElOQ1RSTF9QSU4oNDgsICJncGlvNDgiKSwKKwlQSU5DVFJMX1BJTig0OSwgImdwaW80OSIpLAor CVBJTkNUUkxfUElOKDUwLCAiZ3BpbzUwIiksCisJUElOQ1RSTF9QSU4oNTEsICJncGlvNTEiKSwK K307CisKK3N0YXRpYyB1bnNpZ25lZCBncGlvMF9waW5zW10gPSB7IDAgfTsKK3N0YXRpYyB1bnNp Z25lZCBncGlvMV9waW5zW10gPSB7IDEgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMl9waW5zW10g PSB7IDIgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvM19waW5zW10gPSB7IDMgfTsKK3N0YXRpYyB1 bnNpZ25lZCBncGlvNF9waW5zW10gPSB7IDQgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvNV9waW5z W10gPSB7IDUgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvNl9waW5zW10gPSB7IDYgfTsKK3N0YXRp YyB1bnNpZ25lZCBncGlvN19waW5zW10gPSB7IDcgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvOF9w aW5zW10gPSB7IDggfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvOV9waW5zW10gPSB7IDkgfTsKK3N0 YXRpYyB1bnNpZ25lZCBncGlvMTBfcGluc1tdID0geyAxMCB9Oworc3RhdGljIHVuc2lnbmVkIGdw aW8xMV9waW5zW10gPSB7IDExIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzEyX3BpbnNbXSA9IHsg MTIgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTNfcGluc1tdID0geyAxMyB9Oworc3RhdGljIHVu c2lnbmVkIGdwaW8xNF9waW5zW10gPSB7IDE0IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzE1X3Bp bnNbXSA9IHsgMTUgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTZfcGluc1tdID0geyAxNiB9Owor c3RhdGljIHVuc2lnbmVkIGdwaW8xN19waW5zW10gPSB7IDE3IH07CitzdGF0aWMgdW5zaWduZWQg Z3BpbzE4X3BpbnNbXSA9IHsgMTggfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTlfcGluc1tdID0g eyAxOSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yMF9waW5zW10gPSB7IDIwIH07CitzdGF0aWMg dW5zaWduZWQgZ3BpbzIxX3BpbnNbXSA9IHsgMjEgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjJf cGluc1tdID0geyAyMiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yM19waW5zW10gPSB7IDIzIH07 CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI0X3BpbnNbXSA9IHsgMjQgfTsKK3N0YXRpYyB1bnNpZ25l ZCBncGlvMjVfcGluc1tdID0geyAyNSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yNl9waW5zW10g PSB7IDI2IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI3X3BpbnNbXSA9IHsgMjcgfTsKK3N0YXRp YyB1bnNpZ25lZCBncGlvMjhfcGluc1tdID0geyAyOCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8y OV9waW5zW10gPSB7IDI5IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzMwX3BpbnNbXSA9IHsgMzAg fTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzFfcGluc1tdID0geyAzMSB9Oworc3RhdGljIHVuc2ln bmVkIGdwaW8zMl9waW5zW10gPSB7IDMyIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzMzX3BpbnNb XSA9IHsgMzMgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzRfcGluc1tdID0geyAzNCB9Oworc3Rh dGljIHVuc2lnbmVkIGdwaW8zNV9waW5zW10gPSB7IDM1IH07CitzdGF0aWMgdW5zaWduZWQgZ3Bp bzM2X3BpbnNbXSA9IHsgMzYgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzdfcGluc1tdID0geyAz NyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8zOF9waW5zW10gPSB7IDM4IH07CitzdGF0aWMgdW5z aWduZWQgZ3BpbzM5X3BpbnNbXSA9IHsgMzkgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvNDBfcGlu c1tdID0geyA0MCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80MV9waW5zW10gPSB7IDQxIH07Citz dGF0aWMgdW5zaWduZWQgZ3BpbzQyX3BpbnNbXSA9IHsgNDIgfTsKK3N0YXRpYyB1bnNpZ25lZCBn cGlvNDNfcGluc1tdID0geyA0MyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80NF9waW5zW10gPSB7 IDQ0IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzQ1X3BpbnNbXSA9IHsgNDUgfTsKK3N0YXRpYyB1 bnNpZ25lZCBncGlvNDZfcGluc1tdID0geyA0NiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80N19w aW5zW10gPSB7IDQ3IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzQ4X3BpbnNbXSA9IHsgNDggfTsK K3N0YXRpYyB1bnNpZ25lZCBncGlvNDlfcGluc1tdID0geyA0OSB9Oworc3RhdGljIHVuc2lnbmVk IGdwaW81MF9waW5zW10gPSB7IDUwIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzUxX3BpbnNbXSA9 IHsgNTEgfTsKKworc3RhdGljIHVuc2lnbmVkIG5hbmRfZ3JwX3BpbnNbXSA9IHsKKwkyLCAzLCA0 LCA1LCA2LCA3LCAyNCwKKwkyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwKK307CisKK3N0YXRp YyB1bnNpZ25lZCBkZWN0cGRfZ3JwX3BpbnNbXSA9IHsgOCwgOSB9Oworc3RhdGljIHVuc2lnbmVk IHZkc2xfcGh5MF9ncnBfcGluc1tdID0geyAxMCwgMTEgfTsKK3N0YXRpYyB1bnNpZ25lZCB2ZHNs X3BoeTFfZ3JwX3BpbnNbXSA9IHsgMTIsIDEzIH07CitzdGF0aWMgdW5zaWduZWQgdmRzbF9waHky X2dycF9waW5zW10gPSB7IDI0LCAyNSB9Oworc3RhdGljIHVuc2lnbmVkIHZkc2xfcGh5M19ncnBf cGluc1tdID0geyAyNiwgMjcgfTsKKworI2RlZmluZSBCQ002MzI2OF9HUk9VUChuKQkJCQkJXAor CXsJCQkJCQkJXAorCQkubmFtZSA9ICNuLAkJCQkJXAorCQkucGlucyA9IG4jI19waW5zLAkJCQlc CisJCS5udW1fcGlucyA9IEFSUkFZX1NJWkUobiMjX3BpbnMpLAkJXAorCX0KKworc3RhdGljIHN0 cnVjdCBiY202MzI2OF9waW5ncm91cCBiY202MzI2OF9ncm91cHNbXSA9IHsKKwlCQ002MzI2OF9H Uk9VUChncGlvMCksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzEpLAorCUJDTTYzMjY4X0dST1VQKGdw aW8yKSwKKwlCQ002MzI2OF9HUk9VUChncGlvMyksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzQpLAor CUJDTTYzMjY4X0dST1VQKGdwaW81KSwKKwlCQ002MzI2OF9HUk9VUChncGlvNiksCisJQkNNNjMy NjhfR1JPVVAoZ3BpbzcpLAorCUJDTTYzMjY4X0dST1VQKGdwaW84KSwKKwlCQ002MzI2OF9HUk9V UChncGlvOSksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzEwKSwKKwlCQ002MzI2OF9HUk9VUChncGlv MTEpLAorCUJDTTYzMjY4X0dST1VQKGdwaW8xMiksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzEzKSwK KwlCQ002MzI2OF9HUk9VUChncGlvMTQpLAorCUJDTTYzMjY4X0dST1VQKGdwaW8xNSksCisJQkNN NjMyNjhfR1JPVVAoZ3BpbzE2KSwKKwlCQ002MzI2OF9HUk9VUChncGlvMTcpLAorCUJDTTYzMjY4 X0dST1VQKGdwaW8xOCksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzE5KSwKKwlCQ002MzI2OF9HUk9V UChncGlvMjApLAorCUJDTTYzMjY4X0dST1VQKGdwaW8yMSksCisJQkNNNjMyNjhfR1JPVVAoZ3Bp bzIyKSwKKwlCQ002MzI2OF9HUk9VUChncGlvMjMpLAorCUJDTTYzMjY4X0dST1VQKGdwaW8yNCks CisJQkNNNjMyNjhfR1JPVVAoZ3BpbzI1KSwKKwlCQ002MzI2OF9HUk9VUChncGlvMjYpLAorCUJD TTYzMjY4X0dST1VQKGdwaW8yNyksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzI4KSwKKwlCQ002MzI2 OF9HUk9VUChncGlvMjkpLAorCUJDTTYzMjY4X0dST1VQKGdwaW8zMCksCisJQkNNNjMyNjhfR1JP VVAoZ3BpbzMxKSwKKwlCQ002MzI2OF9HUk9VUChncGlvMzIpLAorCUJDTTYzMjY4X0dST1VQKGdw aW8zMyksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzM0KSwKKwlCQ002MzI2OF9HUk9VUChncGlvMzUp LAorCUJDTTYzMjY4X0dST1VQKGdwaW8zNiksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzM3KSwKKwlC Q002MzI2OF9HUk9VUChncGlvMzgpLAorCUJDTTYzMjY4X0dST1VQKGdwaW8zOSksCisJQkNNNjMy NjhfR1JPVVAoZ3BpbzQwKSwKKwlCQ002MzI2OF9HUk9VUChncGlvNDEpLAorCUJDTTYzMjY4X0dS T1VQKGdwaW80MiksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzQzKSwKKwlCQ002MzI2OF9HUk9VUChn cGlvNDQpLAorCUJDTTYzMjY4X0dST1VQKGdwaW80NSksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzQ2 KSwKKwlCQ002MzI2OF9HUk9VUChncGlvNDcpLAorCUJDTTYzMjY4X0dST1VQKGdwaW80OCksCisJ QkNNNjMyNjhfR1JPVVAoZ3BpbzQ5KSwKKwlCQ002MzI2OF9HUk9VUChncGlvNTApLAorCUJDTTYz MjY4X0dST1VQKGdwaW81MSksCisKKwkvKiBtdWx0aSBwaW4gZ3JvdXBzICovCisJQkNNNjMyNjhf R1JPVVAobmFuZF9ncnApLAorCUJDTTYzMjY4X0dST1VQKGRlY3RwZF9ncnApLAorCUJDTTYzMjY4 X0dST1VQKHZkc2xfcGh5MF9ncnApLAorCUJDTTYzMjY4X0dST1VQKHZkc2xfcGh5MV9ncnApLAor CUJDTTYzMjY4X0dST1VQKHZkc2xfcGh5Ml9ncnApLAorCUJDTTYzMjY4X0dST1VQKHZkc2xfcGh5 M19ncnApLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBsZWRfZ3JvdXBzW10gPSB7 CisJImdwaW8wIiwKKwkiZ3BpbzEiLAorCSJncGlvMiIsCisJImdwaW8zIiwKKwkiZ3BpbzQiLAor CSJncGlvNSIsCisJImdwaW82IiwKKwkiZ3BpbzciLAorCSJncGlvOCIsCisJImdwaW85IiwKKwki Z3BpbzEwIiwKKwkiZ3BpbzExIiwKKwkiZ3BpbzEyIiwKKwkiZ3BpbzEzIiwKKwkiZ3BpbzE0IiwK KwkiZ3BpbzE1IiwKKwkiZ3BpbzE2IiwKKwkiZ3BpbzE3IiwKKwkiZ3BpbzE4IiwKKwkiZ3BpbzE5 IiwKKwkiZ3BpbzIwIiwKKwkiZ3BpbzIxIiwKKwkiZ3BpbzIyIiwKKwkiZ3BpbzIzIiwKK307CisK K3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc2VyaWFsX2xlZF9jbGtfZ3JvdXBzW10gPSB7CisJ ImdwaW8wIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc2VyaWFsX2xlZF9kYXRh X2dyb3Vwc1tdID0geworCSJncGlvMSIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0 IGhzc3BpX2NzNF9ncm91cHNbXSA9IHsKKwkiZ3BpbzE2IiwKK307CisKK3N0YXRpYyBjb25zdCBj aGFyICogY29uc3QgaHNzcGlfY3M1X2dyb3Vwc1tdID0geworCSJncGlvMTciLAorfTsKKworc3Rh dGljIGNvbnN0IGNoYXIgKiBjb25zdCBoc3NwaV9jczZfZ3JvdXBzW10gPSB7CisJImdwaW84IiwK K307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaHNzcGlfY3M3X2dyb3Vwc1tdID0gewor CSJncGlvOSIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQxX3NjdHNfZ3Jv dXBzW10gPSB7CisJImdwaW8xMCIsCisJImdwaW8yNCIsCit9OworCitzdGF0aWMgY29uc3QgY2hh ciAqIGNvbnN0IHVhcnQxX3NydHNfZ3JvdXBzW10gPSB7CisJImdwaW8xMSIsCisJImdwaW8yNSIs Cit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVhcnQxX3NkaW5fZ3JvdXBzW10gPSB7 CisJImdwaW8xMiIsCisJImdwaW8yNiIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0 IHVhcnQxX3Nkb3V0X2dyb3Vwc1tdID0geworCSJncGlvMTMiLAorCSJncGlvMjciLAorfTsKKwor c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBudHJfcHVsc2VfaW5fZ3JvdXBzW10gPSB7CisJImdw aW8xNCIsCisJImdwaW8yOCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGRzbF9u dHJfcHVsc2Vfb3V0X2dyb3Vwc1tdID0geworCSJncGlvMTUiLAorCSJncGlvMjkiLAorfTsKKwor c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhZHNsX3NwaV9taXNvX2dyb3Vwc1tdID0geworCSJn cGlvMTgiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhZHNsX3NwaV9tb3NpX2dy b3Vwc1tdID0geworCSJncGlvMTkiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB2 cmVnX2Nsa19ncm91cHNbXSA9IHsKKwkiZ3BpbzIyIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFy ICogY29uc3QgcGNpZV9jbGtyZXFfYl9ncm91cHNbXSA9IHsKKwkiZ3BpbzIzIiwKK307CisKK3N0 YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3dpdGNoX2xlZF9jbGtfZ3JvdXBzW10gPSB7CisJImdw aW8zMCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHN3aXRjaF9sZWRfZGF0YV9n cm91cHNbXSA9IHsKKwkiZ3BpbzMxIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg d2lmaV9ncm91cHNbXSA9IHsKKwkiZ3BpbzMyIiwKKwkiZ3BpbzMzIiwKKwkiZ3BpbzM0IiwKKwki Z3BpbzM1IiwKKwkiZ3BpbzM2IiwKKwkiZ3BpbzM3IiwKKwkiZ3BpbzM4IiwKKwkiZ3BpbzM5IiwK KwkiZ3BpbzQwIiwKKwkiZ3BpbzQxIiwKKwkiZ3BpbzQyIiwKKwkiZ3BpbzQzIiwKKwkiZ3BpbzQ0 IiwKKwkiZ3BpbzQ1IiwKKwkiZ3BpbzQ2IiwKKwkiZ3BpbzQ3IiwKKwkiZ3BpbzQ4IiwKKwkiZ3Bp bzQ5IiwKKwkiZ3BpbzUwIiwKKwkiZ3BpbzUxIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICog Y29uc3QgbmFuZF9ncm91cHNbXSA9IHsKKwkibmFuZF9ncnAiLAorfTsKKworc3RhdGljIGNvbnN0 IGNoYXIgKiBjb25zdCBkZWN0cGRfZ3JvdXBzW10gPSB7CisJImRlY3RwZF9ncnAiLAorfTsKKwor c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB2ZHNsX3BoeV9vdmVycmlkZV8wX2dyb3Vwc1tdID0g eworCSJ2ZHNsX3BoeV9vdmVycmlkZV8wX2dycCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAq IGNvbnN0IHZkc2xfcGh5X292ZXJyaWRlXzFfZ3JvdXBzW10gPSB7CisJInZkc2xfcGh5X292ZXJy aWRlXzFfZ3JwIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdmRzbF9waHlfb3Zl cnJpZGVfMl9ncm91cHNbXSA9IHsKKwkidmRzbF9waHlfb3ZlcnJpZGVfMl9ncnAiLAorfTsKKwor c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB2ZHNsX3BoeV9vdmVycmlkZV8zX2dyb3Vwc1tdID0g eworCSJ2ZHNsX3BoeV9vdmVycmlkZV8zX2dycCIsCit9OworCisjZGVmaW5lIEJDTTYzMjY4X0xF RF9GVU4obikJCQkJXAorCXsJCQkJCQlcCisJCS5uYW1lID0gI24sCQkJCVwKKwkJLmdyb3VwcyA9 IG4jI19ncm91cHMsCQkJXAorCQkubnVtX2dyb3VwcyA9IEFSUkFZX1NJWkUobiMjX2dyb3Vwcyks CVwKKwkJLnJlZyA9IEJDTTYzMjY4X0xFRENUUkwsCQlcCisJfQorCisjZGVmaW5lIEJDTTYzMjY4 X01PREVfRlVOKG4pCQkJCVwKKwl7CQkJCQkJXAorCQkubmFtZSA9ICNuLAkJCQlcCisJCS5ncm91 cHMgPSBuIyNfZ3JvdXBzLAkJCVwKKwkJLm51bV9ncm91cHMgPSBBUlJBWV9TSVpFKG4jI19ncm91 cHMpLAlcCisJCS5yZWcgPSBCQ002MzI2OF9NT0RFLAkJCVwKKwl9CisKKyNkZWZpbmUgQkNNNjMy NjhfQ1RSTF9GVU4obikJCQkJXAorCXsJCQkJCQlcCisJCS5uYW1lID0gI24sCQkJCVwKKwkJLmdy b3VwcyA9IG4jI19ncm91cHMsCQkJXAorCQkubnVtX2dyb3VwcyA9IEFSUkFZX1NJWkUobiMjX2dy b3VwcyksCVwKKwkJLnJlZyA9IEJDTTYzMjY4X0NUUkwsCQkJXAorCX0KKworI2RlZmluZSBCQ002 MzI2OF9CQVNFTU9ERV9GVU4obiwgdmFsKQkJCVwKKwl7CQkJCQkJXAorCQkubmFtZSA9ICNuLAkJ CQlcCisJCS5ncm91cHMgPSBuIyNfZ3JvdXBzLAkJCVwKKwkJLm51bV9ncm91cHMgPSBBUlJBWV9T SVpFKG4jI19ncm91cHMpLAlcCisJCS5yZWcgPSBCQ002MzI2OF9CQVNFTU9ERSwJCVwKKwkJLm1h c2sgPSB2YWwsCQkJCVwKKwl9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtNjMyNjhfZnVuY3Rp b24gYmNtNjMyNjhfZnVuY3NbXSA9IHsKKwlCQ002MzI2OF9MRURfRlVOKGxlZCksCisJQkNNNjMy NjhfTU9ERV9GVU4oc2VyaWFsX2xlZF9jbGspLAorCUJDTTYzMjY4X01PREVfRlVOKHNlcmlhbF9s ZWRfZGF0YSksCisJQkNNNjMyNjhfTU9ERV9GVU4oaHNzcGlfY3M2KSwKKwlCQ002MzI2OF9NT0RF X0ZVTihoc3NwaV9jczcpLAorCUJDTTYzMjY4X01PREVfRlVOKHVhcnQxX3NjdHMpLAorCUJDTTYz MjY4X01PREVfRlVOKHVhcnQxX3NydHMpLAorCUJDTTYzMjY4X01PREVfRlVOKHVhcnQxX3NkaW4p LAorCUJDTTYzMjY4X01PREVfRlVOKHVhcnQxX3Nkb3V0KSwKKwlCQ002MzI2OF9NT0RFX0ZVTihu dHJfcHVsc2VfaW4pLAorCUJDTTYzMjY4X01PREVfRlVOKGRzbF9udHJfcHVsc2Vfb3V0KSwKKwlC Q002MzI2OF9NT0RFX0ZVTihoc3NwaV9jczQpLAorCUJDTTYzMjY4X01PREVfRlVOKGhzc3BpX2Nz NSksCisJQkNNNjMyNjhfTU9ERV9GVU4oYWRzbF9zcGlfbWlzbyksCisJQkNNNjMyNjhfTU9ERV9G VU4oYWRzbF9zcGlfbW9zaSksCisJQkNNNjMyNjhfTU9ERV9GVU4odnJlZ19jbGspLAorCUJDTTYz MjY4X01PREVfRlVOKHBjaWVfY2xrcmVxX2IpLAorCUJDTTYzMjY4X01PREVfRlVOKHN3aXRjaF9s ZWRfY2xrKSwKKwlCQ002MzI2OF9NT0RFX0ZVTihzd2l0Y2hfbGVkX2RhdGEpLAorCUJDTTYzMjY4 X0NUUkxfRlVOKHdpZmkpLAorCUJDTTYzMjY4X0JBU0VNT0RFX0ZVTihuYW5kLCBCQ002MzI2OF9C QVNFTU9ERV9OQU5EKSwKKwlCQ002MzI2OF9CQVNFTU9ERV9GVU4oZGVjdHBkLCBCQ002MzI2OF9C QVNFTU9ERV9ERUNUUEQpLAorCUJDTTYzMjY4X0JBU0VNT0RFX0ZVTih2ZHNsX3BoeV9vdmVycmlk ZV8wLAorCQkJICAgICAgQkNNNjMyNjhfQkFTRU1PREVfVkRTTF9QSFlfMCksCisJQkNNNjMyNjhf QkFTRU1PREVfRlVOKHZkc2xfcGh5X292ZXJyaWRlXzEsCisJCQkgICAgICBCQ002MzI2OF9CQVNF TU9ERV9WRFNMX1BIWV8xKSwKKwlCQ002MzI2OF9CQVNFTU9ERV9GVU4odmRzbF9waHlfb3ZlcnJp ZGVfMiwKKwkJCSAgICAgIEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xfUEhZXzIpLAorCUJDTTYzMjY4 X0JBU0VNT0RFX0ZVTih2ZHNsX3BoeV9vdmVycmlkZV8zLAorCQkJICAgICAgQkNNNjMyNjhfQkFT RU1PREVfVkRTTF9QSFlfMyksCit9OworCitzdGF0aWMgaW50IGJjbTYzMjY4X3BpbmN0cmxfZ2V0 X2dyb3VwX2NvdW50KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldikKK3sKKwlyZXR1cm4gQVJS QVlfU0laRShiY202MzI2OF9ncm91cHMpOworfQorCitzdGF0aWMgY29uc3QgY2hhciAqYmNtNjMy NjhfcGluY3RybF9nZXRfZ3JvdXBfbmFtZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCisJ CQkJCQkgICB1bnNpZ25lZCBncm91cCkKK3sKKwlyZXR1cm4gYmNtNjMyNjhfZ3JvdXBzW2dyb3Vw XS5uYW1lOworfQorCitzdGF0aWMgaW50IGJjbTYzMjY4X3BpbmN0cmxfZ2V0X2dyb3VwX3BpbnMo c3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCQkgICB1bnNpZ25lZCBncm91cCwKKwkJ CQkJICAgY29uc3QgdW5zaWduZWQgKipwaW5zLAorCQkJCQkgICB1bnNpZ25lZCAqbnVtX3BpbnMp Cit7CisJKnBpbnMgPSBiY202MzI2OF9ncm91cHNbZ3JvdXBdLnBpbnM7CisJKm51bV9waW5zID0g YmNtNjMyNjhfZ3JvdXBzW2dyb3VwXS5udW1fcGluczsKKworCXJldHVybiAwOworfQorCitzdGF0 aWMgaW50IGJjbTYzMjY4X3BpbmN0cmxfZ2V0X2Z1bmNfY291bnQoc3RydWN0IHBpbmN0cmxfZGV2 ICpwY3RsZGV2KQoreworCXJldHVybiBBUlJBWV9TSVpFKGJjbTYzMjY4X2Z1bmNzKTsKK30KKwor c3RhdGljIGNvbnN0IGNoYXIgKmJjbTYzMjY4X3BpbmN0cmxfZ2V0X2Z1bmNfbmFtZShzdHJ1Y3Qg cGluY3RybF9kZXYgKnBjdGxkZXYsCisJCQkJCQkgIHVuc2lnbmVkIHNlbGVjdG9yKQoreworCXJl dHVybiBiY202MzI2OF9mdW5jc1tzZWxlY3Rvcl0ubmFtZTsKK30KKworc3RhdGljIGludCBiY202 MzI2OF9waW5jdHJsX2dldF9ncm91cHMoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJ CSAgICAgICB1bnNpZ25lZCBzZWxlY3RvciwKKwkJCQkgICAgICAgY29uc3QgY2hhciAqIGNvbnN0 ICoqZ3JvdXBzLAorCQkJCSAgICAgICB1bnNpZ25lZCAqIGNvbnN0IG51bV9ncm91cHMpCit7CisJ Kmdyb3VwcyA9IGJjbTYzMjY4X2Z1bmNzW3NlbGVjdG9yXS5ncm91cHM7CisJKm51bV9ncm91cHMg PSBiY202MzI2OF9mdW5jc1tzZWxlY3Rvcl0ubnVtX2dyb3VwczsKKworCXJldHVybiAwOworfQor CitzdGF0aWMgdm9pZCBiY202MzI2OF9zZXRfZ3BpbyhzdHJ1Y3QgYmNtNjN4eF9waW5jdHJsICpw YywgdW5zaWduZWQgcGluKQoreworCWNvbnN0IHN0cnVjdCBwaW5jdHJsX3Bpbl9kZXNjICpkZXNj ID0gJmJjbTYzMjY4X3BpbnNbcGluXTsKKwl1bnNpZ25lZCBpbnQgYmFzZW1vZGUgPSAodW5zaWdu ZWQgbG9uZykgZGVzYy0+ZHJ2X2RhdGE7CisJdW5zaWduZWQgaW50IG1hc2sgPSBCSVQoYmNtNjN4 eF9iYW5rX3BpbihwaW4pKTsKKworCWlmIChiYXNlbW9kZSkKKwkJcmVnbWFwX3VwZGF0ZV9iaXRz KHBjLT5yZWdzLCBCQ002MzI2OF9CQVNFTU9ERV9SRUcsIGJhc2Vtb2RlLAorCQkJCSAgIDApOwor CisJaWYgKHBpbiA8IEJDTTYzWFhfQkFOS19HUElPUykgeworCQkvKiBiYXNlIG1vZGU6IDAgPT4g Z3BpbywgMSA9PiBtdXggZnVuY3Rpb24gKi8KKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKHBjLT5yZWdz LCBCQ002MzI2OF9NT0RFX1JFRywgbWFzaywgMCk7CisKKwkJLyogcGlucyAwLTIzIG1pZ2h0IGJl IG11eGVkIHRvIGxlZCAqLworCQlpZiAocGluIDwgQkNNNjMyNjhfTlVNX0xFRFMpCisJCQlyZWdt YXBfdXBkYXRlX2JpdHMocGMtPnJlZ3MsIEJDTTYzMjY4X0xFRF9SRUcsIG1hc2ssCisJCQkJCSAg IDApOworCX0gZWxzZSBpZiAocGluIDwgQkNNNjMyNjhfTlVNX0dQSU9TKSB7CisJCS8qIGN0cmwg cmVnOiAwID0+IHdpZmkgZnVuY3Rpb24sIDEgPT4gZ3BpbyAqLworCQlyZWdtYXBfdXBkYXRlX2Jp dHMocGMtPnJlZ3MsIEJDTTYzMjY4X0NUUkxfUkVHLCBtYXNrLCBtYXNrKTsKKwl9Cit9CisKK3N0 YXRpYyBpbnQgYmNtNjMyNjhfcGluY3RybF9zZXRfbXV4KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0 bGRldiwKKwkJCQkgICAgdW5zaWduZWQgc2VsZWN0b3IsIHVuc2lnbmVkIGdyb3VwKQoreworCXN0 cnVjdCBiY202M3h4X3BpbmN0cmwgKnBjID0gcGluY3RybF9kZXZfZ2V0X2RydmRhdGEocGN0bGRl dik7CisJY29uc3Qgc3RydWN0IGJjbTYzMjY4X3Bpbmdyb3VwICpwZyA9ICZiY202MzI2OF9ncm91 cHNbZ3JvdXBdOworCWNvbnN0IHN0cnVjdCBiY202MzI2OF9mdW5jdGlvbiAqZiA9ICZiY202MzI2 OF9mdW5jc1tzZWxlY3Rvcl07CisJdW5zaWduZWQgaTsKKwl1bnNpZ25lZCBpbnQgcmVnOworCXVu c2lnbmVkIGludCB2YWwsIG1hc2s7CisKKwlmb3IgKGkgPSAwOyBpIDwgcGctPm51bV9waW5zOyBp KyspCisJCWJjbTYzMjY4X3NldF9ncGlvKHBjLCBwZy0+cGluc1tpXSk7CisKKwlzd2l0Y2ggKGYt PnJlZykgeworCWNhc2UgQkNNNjMyNjhfTEVEQ1RSTDoKKwkJcmVnID0gQkNNNjMyNjhfTEVEX1JF RzsKKwkJbWFzayA9IEJJVChwZy0+cGluc1swXSk7CisJCXZhbCA9IEJJVChwZy0+cGluc1swXSk7 CisJCWJyZWFrOworCWNhc2UgQkNNNjMyNjhfTU9ERToKKwkJcmVnID0gQkNNNjMyNjhfTU9ERV9S RUc7CisJCW1hc2sgPSBCSVQocGctPnBpbnNbMF0pOworCQl2YWwgPSBCSVQocGctPnBpbnNbMF0p OworCQlicmVhazsKKwljYXNlIEJDTTYzMjY4X0NUUkw6CisJCXJlZyA9IEJDTTYzMjY4X0NUUkxf UkVHOworCQltYXNrID0gQklUKHBnLT5waW5zWzBdKTsKKwkJdmFsID0gMDsKKwkJYnJlYWs7CisJ Y2FzZSBCQ002MzI2OF9CQVNFTU9ERToKKwkJcmVnID0gQkNNNjMyNjhfQkFTRU1PREVfUkVHOwor CQltYXNrID0gZi0+bWFzazsKKwkJdmFsID0gZi0+bWFzazsKKwkJYnJlYWs7CisJZGVmYXVsdDoK KwkJV0FSTl9PTigxKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmVnbWFwX3VwZGF0ZV9i aXRzKHBjLT5yZWdzLCByZWcsIG1hc2ssIHZhbCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IGludCBiY202MzI2OF9ncGlvX3JlcXVlc3RfZW5hYmxlKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0 bGRldiwKKwkJCQkJc3RydWN0IHBpbmN0cmxfZ3Bpb19yYW5nZSAqcmFuZ2UsCisJCQkJCXVuc2ln bmVkIG9mZnNldCkKK3sKKwlzdHJ1Y3QgYmNtNjN4eF9waW5jdHJsICpwYyA9IHBpbmN0cmxfZGV2 X2dldF9kcnZkYXRhKHBjdGxkZXYpOworCisJLyogZGlzYWJsZSBhbGwgZnVuY3Rpb25zIHVzaW5n IHRoaXMgcGluICovCisJYmNtNjMyNjhfc2V0X2dwaW8ocGMsIG9mZnNldCk7CisKKwlyZXR1cm4g MDsKK30KKworc3RhdGljIHN0cnVjdCBwaW5jdHJsX29wcyBiY202MzI2OF9wY3RsX29wcyA9IHsK KwkuZHRfZnJlZV9tYXAgPSBwaW5jdHJsX3V0aWxzX2ZyZWVfbWFwLAorCS5kdF9ub2RlX3RvX21h cCA9IHBpbmNvbmZfZ2VuZXJpY19kdF9ub2RlX3RvX21hcF9waW4sCisJLmdldF9ncm91cF9uYW1l ID0gYmNtNjMyNjhfcGluY3RybF9nZXRfZ3JvdXBfbmFtZSwKKwkuZ2V0X2dyb3VwX3BpbnMgPSBi Y202MzI2OF9waW5jdHJsX2dldF9ncm91cF9waW5zLAorCS5nZXRfZ3JvdXBzX2NvdW50ID0gYmNt NjMyNjhfcGluY3RybF9nZXRfZ3JvdXBfY291bnQsCit9OworCitzdGF0aWMgc3RydWN0IHBpbm11 eF9vcHMgYmNtNjMyNjhfcG14X29wcyA9IHsKKwkuZ2V0X2Z1bmN0aW9uX2dyb3VwcyA9IGJjbTYz MjY4X3BpbmN0cmxfZ2V0X2dyb3VwcywKKwkuZ2V0X2Z1bmN0aW9uX25hbWUgPSBiY202MzI2OF9w aW5jdHJsX2dldF9mdW5jX25hbWUsCisJLmdldF9mdW5jdGlvbnNfY291bnQgPSBiY202MzI2OF9w aW5jdHJsX2dldF9mdW5jX2NvdW50LAorCS5ncGlvX3JlcXVlc3RfZW5hYmxlID0gYmNtNjMyNjhf Z3Bpb19yZXF1ZXN0X2VuYWJsZSwKKwkuc2V0X211eCA9IGJjbTYzMjY4X3BpbmN0cmxfc2V0X211 eCwKKwkuc3RyaWN0ID0gdHJ1ZSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtNjN4eF9w aW5jdHJsX3NvYyBiY202MzI2OF9zb2MgPSB7CisJLm5ncGlvcyA9IEJDTTYzMjY4X05VTV9HUElP UywKKwkubnBpbnMgPSBBUlJBWV9TSVpFKGJjbTYzMjY4X3BpbnMpLAorCS5wY3RsX29wcyA9ICZi Y202MzI2OF9wY3RsX29wcywKKwkucGlucyA9IGJjbTYzMjY4X3BpbnMsCisJLnBteF9vcHMgPSAm YmNtNjMyNjhfcG14X29wcywKK307CisKK3N0YXRpYyBpbnQgYmNtNjMyNjhfcGluY3RybF9wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBiY202M3h4X3BpbmN0 cmxfcHJvYmUocGRldiwgJmJjbTYzMjY4X3NvYywgTlVMTCk7Cit9CisKK3N0YXRpYyBjb25zdCBz dHJ1Y3Qgb2ZfZGV2aWNlX2lkIGJjbTYzMjY4X3BpbmN0cmxfbWF0Y2hbXSA9IHsKKwl7IC5jb21w YXRpYmxlID0gImJyY20sYmNtNjMyNjgtcGluY3RybCIsIH0sCisJeyAvKiBzZW50aW5lbCAqLyB9 Cit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBiY202MzI2OF9waW5jdHJsX2Ry aXZlciA9IHsKKwkucHJvYmUgPSBiY202MzI2OF9waW5jdHJsX3Byb2JlLAorCS5kcml2ZXIgPSB7 CisJCS5uYW1lID0gImJjbTYzMjY4LXBpbmN0cmwiLAorCQkub2ZfbWF0Y2hfdGFibGUgPSBiY202 MzI2OF9waW5jdHJsX21hdGNoLAorCX0sCit9OworCitidWlsdGluX3BsYXRmb3JtX2RyaXZlcihi Y202MzI2OF9waW5jdHJsX2RyaXZlcik7Ci0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlz dApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJh ZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==