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 C03E1C433E0 for ; Thu, 4 Mar 2021 09:07:42 +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 B9A4A64EDF for ; Thu, 4 Mar 2021 09:07:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B9A4A64EDF 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=2rV0R2VrPqrD6o/Y+ufU1CTVy6kWwVbEndIjmdrW5eg=; b=Mas5zy+4icawJgGD4C2sjakz6 1lyFvFWyqLNeZ1ydtRMoSUdhY3lgBfD6W5R4JrOCEkfGsq4n/YRQrk+4f+QA1omHEqUhWQzHl2R8U PPu1JwxknsCQIxZmdqWgJR2+HiiZ37VEqGVfMUBRSTceM/Cd/SXYSi4WI2kMlKmFMbj+3VF8+FjWP YvCYcvGepspqo/XCIJVvT331OwKPXx20VzsqVmz6HJ4WIBLOKM37PxJ8aRCcYJtJIYaYPOSrVyeHl DfNpjWgn92DAE5LOBL1C/CHkBarRYHUvqF0Z2DEvqKqrIA+IxCAR3QaEe1a++695Zji+Oixyrx6s9 /jm/vTB5w==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lHjvN-008DkL-Lc; Thu, 04 Mar 2021 09:05:37 +0000 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lHjnS-008C4Q-8c for linux-arm-kernel@lists.infradead.org; Thu, 04 Mar 2021 08:57:34 +0000 Received: by mail-wm1-x32a.google.com with SMTP id e23so7289803wmh.3 for ; Thu, 04 Mar 2021 00:57:26 -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=Cr0WfWLDkTsxbNcZZ7jPWAEXRgbG560dYmj/Hc2xXwE=; b=qGoCrwzC3lTr+BeSS3DssBRFuzPIIKB1BKe+AR/HKrorduWvvpEpT0W1FbCIBfa1Yf WJMdLNwM4BRHE2ROsZ3mMKXzlO1ivR7wVBufFcWvdPAeT9XZ4+XUlR80v8OEqoqV4krr kOpYdy+ZhhXCM0hbV7YhdqmVnvHo96fMbn6J4E1xzyIs60KNZW9XdXlroRrzBjIia1SZ dJjQWWIijwtq0sEtFkyCZjw5Ti1nFZ/bYQmtDWSTP77u7Czu0MrN2stZAZhVk2+3hejS f7GFtIun5T9cpky2PgAvcSPRQ3UkDOmttO3Uq149S8rteDkDv+ANgqZalXd7Uf0g/UU+ 0UZQ== 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=Cr0WfWLDkTsxbNcZZ7jPWAEXRgbG560dYmj/Hc2xXwE=; b=jA6rdqE5vTOdNe9lRIrfaOlg5YSH4Irq1hT109lT95uebldXifd0cmLPm/MW1Ny4X8 fqFAXU4yLzVJJ9VEMPeuVZqMslVfsyKGOsVMWLUfNtyObCo30nWdIZjUP5P0TTJk2AFT 1hxOhdMD3g5gzGlmZ5Mh4sWcJKTqIi/OY+pP+RfIORYOwmgjvXEqDNzD9/Lb1pkrRpQE xGczckJXqT+7MmBWthHGvMAYi8Tr5je2G984+MHm3rGGH3BxzZK3VQeMIzBorz4Cg2YY H44QH2TQdqkMz0tKda53De4RkGrcXYtgz6HXavfSsyfga9UIHByoMMDNPdqkzQfcDNOb sE2w== X-Gm-Message-State: AOAM531Ou80Vcop9K2pc0vjXNN/BWMmmHcPgtE2qB7Nz2hUr26tGw+Mh 8UXJzqTQz2qCvhwuwHEmDi0= X-Google-Smtp-Source: ABdhPJz6KhblquDDd03GjdhomRGVzRTmpXfPOoCjCd7tIzFgNBwk9Sp8cVAFPCgkNssiCcWQ6Hsvlw== X-Received: by 2002:a1c:e184:: with SMTP id y126mr2810234wmg.163.1614848245768; Thu, 04 Mar 2021 00:57:25 -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.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Mar 2021 00:57:25 -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 13/15] pinctrl: add a pincontrol driver for BCM63268 Date: Thu, 4 Mar 2021 09:57:08 +0100 Message-Id: <20210304085710.7128-14-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 QWRkIGEgcGluY29udHJvbCBkcml2ZXIgZm9yIEJDTTYzMjY4LiBCQ002MzI2OCBhbGxvd3MgbXV4 aW5nIEdQSU9zCnRvIGRpZmZlcmVudCBmdW5jdGlvbnMuIERlcGVuZGluZyBvbiB0aGUgbXV4LCB0 aGVzZSBhcmUgZWl0aGVyIHNpbmdsZQpwaW4gY29uZmlndXJhdGlvbnMgb3Igd2hvbGUgcGluIGdy b3Vwcy4KClNpZ25lZC1vZmYtYnk6IMOBbHZhcm8gRmVybsOhbmRleiBSb2phcyA8bm9sdGFyaUBn bWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEpvbmFzIEdvcnNraSA8am9uYXMuZ29yc2tpQGdtYWls LmNvbT4KLS0tCiB2NDogbm8gY2hhbmdlcwogdjM6IHVzZSBuZXcgc2hhcmVkIGNvZGUKIHYyOiBz d2l0Y2ggdG8gR1BJT19SRUdNQVAKCiBkcml2ZXJzL3BpbmN0cmwvYmNtL0tjb25maWcgICAgICAg ICAgICB8ICAgOCArCiBkcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlICAgICAgICAgICB8ICAg MSArCiBkcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjMyNjguYyB8IDY0MyArKysrKysr KysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDY1MiBpbnNlcnRpb25zKCspCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzMjY4LmMK CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvYmNtL0tjb25maWcgYi9kcml2ZXJzL3BpbmN0 cmwvYmNtL0tjb25maWcKaW5kZXggYWFiZDRiNzYyYWVkLi4xODY5ODU4NDYxMjAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvcGluY3RybC9iY20vS2NvbmZpZworKysgYi9kcml2ZXJzL3BpbmN0cmwvYmNt L0tjb25maWcKQEAgLTY4LDYgKzY4LDE0IEBAIGNvbmZpZyBQSU5DVFJMX0JDTTYzNjgKIAloZWxw CiAJICAgU2F5IFkgaGVyZSB0byBlbmFibGUgdGhlIEJyb2FkY29tIEJDTTYzNjggR1BJTyBkcml2 ZXIuCiAKK2NvbmZpZyBQSU5DVFJMX0JDTTYzMjY4CisJYm9vbCAiQnJvYWRjb20gQkNNNjMyNjgg R1BJTyBkcml2ZXIiCisJZGVwZW5kcyBvbiAoQk1JUFNfR0VORVJJQyB8fCBDT01QSUxFX1RFU1Qp CisJc2VsZWN0IFBJTkNUUkxfQkNNNjNYWAorCWRlZmF1bHQgQk1JUFNfR0VORVJJQworCWhlbHAK KwkgICBTYXkgWSBoZXJlIHRvIGVuYWJsZSB0aGUgQnJvYWRjb20gQkNNNjMyNjggR1BJTyBkcml2 ZXIuCisKIGNvbmZpZyBQSU5DVFJMX0lQUk9DX0dQSU8KIAlib29sICJCcm9hZGNvbSBpUHJvYyBH UElPICh3aXRoIFBJTkNPTkYpIGRyaXZlciIKIAlkZXBlbmRzIG9uIE9GX0dQSU8gJiYgKEFSQ0hf QkNNX0lQUk9DIHx8IENPTVBJTEVfVEVTVCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9i Y20vTWFrZWZpbGUgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlCmluZGV4IGExMzMxYmI5 NjgwZS4uNDExNzg0N2ZkMjc5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvYmNtL01ha2Vm aWxlCisrKyBiL2RyaXZlcnMvcGluY3RybC9iY20vTWFrZWZpbGUKQEAgLTgsNiArOCw3IEBAIG9i ai0kKENPTkZJR19QSU5DVFJMX0JDTTYzMjgpCQkrPSBwaW5jdHJsLWJjbTYzMjgubwogb2JqLSQo Q09ORklHX1BJTkNUUkxfQkNNNjM1OCkJCSs9IHBpbmN0cmwtYmNtNjM1OC5vCiBvYmotJChDT05G SUdfUElOQ1RSTF9CQ002MzYyKQkJKz0gcGluY3RybC1iY202MzYyLm8KIG9iai0kKENPTkZJR19Q SU5DVFJMX0JDTTYzNjgpCQkrPSBwaW5jdHJsLWJjbTYzNjgubworb2JqLSQoQ09ORklHX1BJTkNU UkxfQkNNNjMyNjgpCQkrPSBwaW5jdHJsLWJjbTYzMjY4Lm8KIG9iai0kKENPTkZJR19QSU5DVFJM X0lQUk9DX0dQSU8pCSs9IHBpbmN0cmwtaXByb2MtZ3Bpby5vCiBvYmotJChDT05GSUdfUElOQ1RS TF9DWUdOVVNfTVVYKQkrPSBwaW5jdHJsLWN5Z251cy1tdXgubwogb2JqLSQoQ09ORklHX1BJTkNU UkxfTlMpCQkrPSBwaW5jdHJsLW5zLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9iY20v cGluY3RybC1iY202MzI2OC5jIGIvZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzMjY4 LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xN2NlYzI4MzY5YzAK LS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjMyNjgu YwpAQCAtMCwwICsxLDY0MyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAr CisvKgorICogRHJpdmVyIGZvciBCQ002MzI2OCBHUElPIHVuaXQgKHBpbmN0cmwgKyBHUElPKQor ICoKKyAqIENvcHlyaWdodCAoQykgMjAyMSDDgWx2YXJvIEZlcm7DoW5kZXogUm9qYXMgPG5vbHRh cmlAZ21haWwuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDE2IEpvbmFzIEdvcnNraSA8am9uYXMu Z29yc2tpQGdtYWlsLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvYml0cy5oPgorI2luY2x1 ZGUgPGxpbnV4L2dwaW8vZHJpdmVyLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5j bHVkZSA8bGludXgvb2YuaD4KKyNpbmNsdWRlIDxsaW51eC9waW5jdHJsL3Bpbm11eC5oPgorI2lu Y2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5o PgorCisjaW5jbHVkZSAiLi4vcGluY3RybC11dGlscy5oIgorCisjaW5jbHVkZSAicGluY3RybC1i Y202M3h4LmgiCisKKyNkZWZpbmUgQkNNNjMyNjhfTlVNX0dQSU9TCQk1MgorI2RlZmluZSBCQ002 MzI2OF9OVU1fTEVEUwkJMjQKKworI2RlZmluZSBCQ002MzI2OF9MRURfUkVHCQkweDEwCisjZGVm aW5lIEJDTTYzMjY4X01PREVfUkVHCQkweDE4CisjZGVmaW5lIEJDTTYzMjY4X0NUUkxfUkVHCQkw eDFjCisjZGVmaW5lIEJDTTYzMjY4X0JBU0VNT0RFX1JFRwkJMHgzOAorI2RlZmluZSAgQkNNNjMy NjhfQkFTRU1PREVfTkFORAkJQklUKDIpIC8qIEdQSU9zIDItNywgMjQtMzEgKi8KKyNkZWZpbmUg IEJDTTYzMjY4X0JBU0VNT0RFX0dQSU8zNQlCSVQoNCkgLyogR1BJTyAzNSAqLworI2RlZmluZSAg QkNNNjMyNjhfQkFTRU1PREVfREVDVFBECUJJVCg1KSAvKiBHUElPcyA4LzkgKi8KKyNkZWZpbmUg IEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xfUEhZXzAJQklUKDYpIC8qIEdQSU9zIDEwLzExICovCisj ZGVmaW5lICBCQ002MzI2OF9CQVNFTU9ERV9WRFNMX1BIWV8xCUJJVCg3KSAvKiBHUElPcyAxMi8x MyAqLworI2RlZmluZSAgQkNNNjMyNjhfQkFTRU1PREVfVkRTTF9QSFlfMglCSVQoOCkgLyogR1BJ T3MgMjQvMjUgKi8KKyNkZWZpbmUgIEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xfUEhZXzMJQklUKDkp IC8qIEdQSU9zIDI2LzI3ICovCisKK2VudW0gYmNtNjMyNjhfcGluY3RybF9yZWcgeworCUJDTTYz MjY4X0xFRENUUkwsCisJQkNNNjMyNjhfTU9ERSwKKwlCQ002MzI2OF9DVFJMLAorCUJDTTYzMjY4 X0JBU0VNT0RFLAorfTsKKworc3RydWN0IGJjbTYzMjY4X3Bpbmdyb3VwIHsKKwljb25zdCBjaGFy ICpuYW1lOworCWNvbnN0IHVuc2lnbmVkICogY29uc3QgcGluczsKKwljb25zdCB1bnNpZ25lZCBu dW1fcGluczsKK307CisKK3N0cnVjdCBiY202MzI2OF9mdW5jdGlvbiB7CisJY29uc3QgY2hhciAq bmFtZTsKKwljb25zdCBjaGFyICogY29uc3QgKmdyb3VwczsKKwljb25zdCB1bnNpZ25lZCBudW1f Z3JvdXBzOworCisJZW51bSBiY202MzI2OF9waW5jdHJsX3JlZyByZWc7CisJdWludDMyX3QgbWFz azsKK307CisKKyNkZWZpbmUgQkNNNjMyNjhfUElOKGEsIGIsIGJhc2Vtb2RlKQkJCVwKKwl7CQkJ CQkJXAorCQkubnVtYmVyID0gYSwJCQkJXAorCQkubmFtZSA9IGIsCQkJCVwKKwkJLmRydl9kYXRh ID0gKHZvaWQgKikoYmFzZW1vZGUpCQlcCisJfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHBpbmN0 cmxfcGluX2Rlc2MgYmNtNjMyNjhfcGluc1tdID0geworCVBJTkNUUkxfUElOKDAsICJncGlvMCIp LAorCVBJTkNUUkxfUElOKDEsICJncGlvMSIpLAorCUJDTTYzMjY4X1BJTigyLCAiZ3BpbzIiLCBC Q002MzI2OF9CQVNFTU9ERV9OQU5EKSwKKwlCQ002MzI2OF9QSU4oMywgImdwaW8zIiwgQkNNNjMy NjhfQkFTRU1PREVfTkFORCksCisJQkNNNjMyNjhfUElOKDQsICJncGlvNCIsIEJDTTYzMjY4X0JB U0VNT0RFX05BTkQpLAorCUJDTTYzMjY4X1BJTig1LCAiZ3BpbzUiLCBCQ002MzI2OF9CQVNFTU9E RV9OQU5EKSwKKwlCQ002MzI2OF9QSU4oNiwgImdwaW82IiwgQkNNNjMyNjhfQkFTRU1PREVfTkFO RCksCisJQkNNNjMyNjhfUElOKDcsICJncGlvNyIsIEJDTTYzMjY4X0JBU0VNT0RFX05BTkQpLAor CUJDTTYzMjY4X1BJTig4LCAiZ3BpbzgiLCBCQ002MzI2OF9CQVNFTU9ERV9ERUNUUEQpLAorCUJD TTYzMjY4X1BJTig5LCAiZ3BpbzkiLCBCQ002MzI2OF9CQVNFTU9ERV9ERUNUUEQpLAorCUJDTTYz MjY4X1BJTigxMCwgImdwaW8xMCIsIEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xfUEhZXzApLAorCUJD TTYzMjY4X1BJTigxMSwgImdwaW8xMSIsIEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xfUEhZXzApLAor CUJDTTYzMjY4X1BJTigxMiwgImdwaW8xMiIsIEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xfUEhZXzEp LAorCUJDTTYzMjY4X1BJTigxMywgImdwaW8xMyIsIEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xfUEhZ XzEpLAorCVBJTkNUUkxfUElOKDE0LCAiZ3BpbzE0IiksCisJUElOQ1RSTF9QSU4oMTUsICJncGlv MTUiKSwKKwlQSU5DVFJMX1BJTigxNiwgImdwaW8xNiIpLAorCVBJTkNUUkxfUElOKDE3LCAiZ3Bp bzE3IiksCisJUElOQ1RSTF9QSU4oMTgsICJncGlvMTgiKSwKKwlQSU5DVFJMX1BJTigxOSwgImdw aW8xOSIpLAorCVBJTkNUUkxfUElOKDIwLCAiZ3BpbzIwIiksCisJUElOQ1RSTF9QSU4oMjEsICJn cGlvMjEiKSwKKwlQSU5DVFJMX1BJTigyMiwgImdwaW8yMiIpLAorCVBJTkNUUkxfUElOKDIzLCAi Z3BpbzIzIiksCisJQkNNNjMyNjhfUElOKDI0LCAiZ3BpbzI0IiwKKwkJICAgICBCQ002MzI2OF9C QVNFTU9ERV9OQU5EIHwgQkNNNjMyNjhfQkFTRU1PREVfVkRTTF9QSFlfMiksCisJQkNNNjMyNjhf UElOKDI1LCAiZ3BpbzI1IiwKKwkJICAgICBCQ002MzI2OF9CQVNFTU9ERV9OQU5EIHwgQkNNNjMy NjhfQkFTRU1PREVfVkRTTF9QSFlfMiksCisJQkNNNjMyNjhfUElOKDI2LCAiZ3BpbzI2IiwKKwkJ ICAgICBCQ002MzI2OF9CQVNFTU9ERV9OQU5EIHwgQkNNNjMyNjhfQkFTRU1PREVfVkRTTF9QSFlf MyksCisJQkNNNjMyNjhfUElOKDI3LCAiZ3BpbzI3IiwKKwkJICAgICBCQ002MzI2OF9CQVNFTU9E RV9OQU5EIHwgQkNNNjMyNjhfQkFTRU1PREVfVkRTTF9QSFlfMyksCisJQkNNNjMyNjhfUElOKDI4 LCAiZ3BpbzI4IiwgQkNNNjMyNjhfQkFTRU1PREVfTkFORCksCisJQkNNNjMyNjhfUElOKDI5LCAi Z3BpbzI5IiwgQkNNNjMyNjhfQkFTRU1PREVfTkFORCksCisJQkNNNjMyNjhfUElOKDMwLCAiZ3Bp bzMwIiwgQkNNNjMyNjhfQkFTRU1PREVfTkFORCksCisJQkNNNjMyNjhfUElOKDMxLCAiZ3BpbzMx IiwgQkNNNjMyNjhfQkFTRU1PREVfTkFORCksCisJUElOQ1RSTF9QSU4oMzIsICJncGlvMzIiKSwK KwlQSU5DVFJMX1BJTigzMywgImdwaW8zMyIpLAorCVBJTkNUUkxfUElOKDM0LCAiZ3BpbzM0Iiks CisJUElOQ1RSTF9QSU4oMzUsICJncGlvMzUiKSwKKwlQSU5DVFJMX1BJTigzNiwgImdwaW8zNiIp LAorCVBJTkNUUkxfUElOKDM3LCAiZ3BpbzM3IiksCisJUElOQ1RSTF9QSU4oMzgsICJncGlvMzgi KSwKKwlQSU5DVFJMX1BJTigzOSwgImdwaW8zOSIpLAorCVBJTkNUUkxfUElOKDQwLCAiZ3BpbzQw IiksCisJUElOQ1RSTF9QSU4oNDEsICJncGlvNDEiKSwKKwlQSU5DVFJMX1BJTig0MiwgImdwaW80 MiIpLAorCVBJTkNUUkxfUElOKDQzLCAiZ3BpbzQzIiksCisJUElOQ1RSTF9QSU4oNDQsICJncGlv NDQiKSwKKwlQSU5DVFJMX1BJTig0NSwgImdwaW80NSIpLAorCVBJTkNUUkxfUElOKDQ2LCAiZ3Bp bzQ2IiksCisJUElOQ1RSTF9QSU4oNDcsICJncGlvNDciKSwKKwlQSU5DVFJMX1BJTig0OCwgImdw aW80OCIpLAorCVBJTkNUUkxfUElOKDQ5LCAiZ3BpbzQ5IiksCisJUElOQ1RSTF9QSU4oNTAsICJn cGlvNTAiKSwKKwlQSU5DVFJMX1BJTig1MSwgImdwaW81MSIpLAorfTsKKworc3RhdGljIHVuc2ln bmVkIGdwaW8wX3BpbnNbXSA9IHsgMCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xX3BpbnNbXSA9 IHsgMSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yX3BpbnNbXSA9IHsgMiB9Oworc3RhdGljIHVu c2lnbmVkIGdwaW8zX3BpbnNbXSA9IHsgMyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80X3BpbnNb XSA9IHsgNCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW81X3BpbnNbXSA9IHsgNSB9Oworc3RhdGlj IHVuc2lnbmVkIGdwaW82X3BpbnNbXSA9IHsgNiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW83X3Bp bnNbXSA9IHsgNyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW84X3BpbnNbXSA9IHsgOCB9Oworc3Rh dGljIHVuc2lnbmVkIGdwaW85X3BpbnNbXSA9IHsgOSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8x MF9waW5zW10gPSB7IDEwIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzExX3BpbnNbXSA9IHsgMTEg fTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTJfcGluc1tdID0geyAxMiB9Oworc3RhdGljIHVuc2ln bmVkIGdwaW8xM19waW5zW10gPSB7IDEzIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzE0X3BpbnNb XSA9IHsgMTQgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTVfcGluc1tdID0geyAxNSB9Oworc3Rh dGljIHVuc2lnbmVkIGdwaW8xNl9waW5zW10gPSB7IDE2IH07CitzdGF0aWMgdW5zaWduZWQgZ3Bp bzE3X3BpbnNbXSA9IHsgMTcgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMThfcGluc1tdID0geyAx OCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xOV9waW5zW10gPSB7IDE5IH07CitzdGF0aWMgdW5z aWduZWQgZ3BpbzIwX3BpbnNbXSA9IHsgMjAgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjFfcGlu c1tdID0geyAyMSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yMl9waW5zW10gPSB7IDIyIH07Citz dGF0aWMgdW5zaWduZWQgZ3BpbzIzX3BpbnNbXSA9IHsgMjMgfTsKK3N0YXRpYyB1bnNpZ25lZCBn cGlvMjRfcGluc1tdID0geyAyNCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yNV9waW5zW10gPSB7 IDI1IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI2X3BpbnNbXSA9IHsgMjYgfTsKK3N0YXRpYyB1 bnNpZ25lZCBncGlvMjdfcGluc1tdID0geyAyNyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yOF9w aW5zW10gPSB7IDI4IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI5X3BpbnNbXSA9IHsgMjkgfTsK K3N0YXRpYyB1bnNpZ25lZCBncGlvMzBfcGluc1tdID0geyAzMCB9Oworc3RhdGljIHVuc2lnbmVk IGdwaW8zMV9waW5zW10gPSB7IDMxIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzMyX3BpbnNbXSA9 IHsgMzIgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzNfcGluc1tdID0geyAzMyB9Oworc3RhdGlj IHVuc2lnbmVkIGdwaW8zNF9waW5zW10gPSB7IDM0IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzM1 X3BpbnNbXSA9IHsgMzUgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzZfcGluc1tdID0geyAzNiB9 Oworc3RhdGljIHVuc2lnbmVkIGdwaW8zN19waW5zW10gPSB7IDM3IH07CitzdGF0aWMgdW5zaWdu ZWQgZ3BpbzM4X3BpbnNbXSA9IHsgMzggfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzlfcGluc1td ID0geyAzOSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80MF9waW5zW10gPSB7IDQwIH07CitzdGF0 aWMgdW5zaWduZWQgZ3BpbzQxX3BpbnNbXSA9IHsgNDEgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlv NDJfcGluc1tdID0geyA0MiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80M19waW5zW10gPSB7IDQz IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzQ0X3BpbnNbXSA9IHsgNDQgfTsKK3N0YXRpYyB1bnNp Z25lZCBncGlvNDVfcGluc1tdID0geyA0NSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80Nl9waW5z W10gPSB7IDQ2IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzQ3X3BpbnNbXSA9IHsgNDcgfTsKK3N0 YXRpYyB1bnNpZ25lZCBncGlvNDhfcGluc1tdID0geyA0OCB9Oworc3RhdGljIHVuc2lnbmVkIGdw aW80OV9waW5zW10gPSB7IDQ5IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzUwX3BpbnNbXSA9IHsg NTAgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvNTFfcGluc1tdID0geyA1MSB9OworCitzdGF0aWMg dW5zaWduZWQgbmFuZF9ncnBfcGluc1tdID0geworCTIsIDMsIDQsIDUsIDYsIDcsIDI0LAorCTI1 LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLAorfTsKKworc3RhdGljIHVuc2lnbmVkIGRlY3RwZF9n cnBfcGluc1tdID0geyA4LCA5IH07CitzdGF0aWMgdW5zaWduZWQgdmRzbF9waHkwX2dycF9waW5z W10gPSB7IDEwLCAxMSB9Oworc3RhdGljIHVuc2lnbmVkIHZkc2xfcGh5MV9ncnBfcGluc1tdID0g eyAxMiwgMTMgfTsKK3N0YXRpYyB1bnNpZ25lZCB2ZHNsX3BoeTJfZ3JwX3BpbnNbXSA9IHsgMjQs IDI1IH07CitzdGF0aWMgdW5zaWduZWQgdmRzbF9waHkzX2dycF9waW5zW10gPSB7IDI2LCAyNyB9 OworCisjZGVmaW5lIEJDTTYzMjY4X0dST1VQKG4pCQkJCQlcCisJewkJCQkJCQlcCisJCS5uYW1l ID0gI24sCQkJCQlcCisJCS5waW5zID0gbiMjX3BpbnMsCQkJCVwKKwkJLm51bV9waW5zID0gQVJS QVlfU0laRShuIyNfcGlucyksCQlcCisJfQorCitzdGF0aWMgc3RydWN0IGJjbTYzMjY4X3Bpbmdy b3VwIGJjbTYzMjY4X2dyb3Vwc1tdID0geworCUJDTTYzMjY4X0dST1VQKGdwaW8wKSwKKwlCQ002 MzI2OF9HUk9VUChncGlvMSksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzIpLAorCUJDTTYzMjY4X0dS T1VQKGdwaW8zKSwKKwlCQ002MzI2OF9HUk9VUChncGlvNCksCisJQkNNNjMyNjhfR1JPVVAoZ3Bp bzUpLAorCUJDTTYzMjY4X0dST1VQKGdwaW82KSwKKwlCQ002MzI2OF9HUk9VUChncGlvNyksCisJ QkNNNjMyNjhfR1JPVVAoZ3BpbzgpLAorCUJDTTYzMjY4X0dST1VQKGdwaW85KSwKKwlCQ002MzI2 OF9HUk9VUChncGlvMTApLAorCUJDTTYzMjY4X0dST1VQKGdwaW8xMSksCisJQkNNNjMyNjhfR1JP VVAoZ3BpbzEyKSwKKwlCQ002MzI2OF9HUk9VUChncGlvMTMpLAorCUJDTTYzMjY4X0dST1VQKGdw aW8xNCksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzE1KSwKKwlCQ002MzI2OF9HUk9VUChncGlvMTYp LAorCUJDTTYzMjY4X0dST1VQKGdwaW8xNyksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzE4KSwKKwlC Q002MzI2OF9HUk9VUChncGlvMTkpLAorCUJDTTYzMjY4X0dST1VQKGdwaW8yMCksCisJQkNNNjMy NjhfR1JPVVAoZ3BpbzIxKSwKKwlCQ002MzI2OF9HUk9VUChncGlvMjIpLAorCUJDTTYzMjY4X0dS T1VQKGdwaW8yMyksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzI0KSwKKwlCQ002MzI2OF9HUk9VUChn cGlvMjUpLAorCUJDTTYzMjY4X0dST1VQKGdwaW8yNiksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzI3 KSwKKwlCQ002MzI2OF9HUk9VUChncGlvMjgpLAorCUJDTTYzMjY4X0dST1VQKGdwaW8yOSksCisJ QkNNNjMyNjhfR1JPVVAoZ3BpbzMwKSwKKwlCQ002MzI2OF9HUk9VUChncGlvMzEpLAorCUJDTTYz MjY4X0dST1VQKGdwaW8zMiksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzMzKSwKKwlCQ002MzI2OF9H Uk9VUChncGlvMzQpLAorCUJDTTYzMjY4X0dST1VQKGdwaW8zNSksCisJQkNNNjMyNjhfR1JPVVAo Z3BpbzM2KSwKKwlCQ002MzI2OF9HUk9VUChncGlvMzcpLAorCUJDTTYzMjY4X0dST1VQKGdwaW8z OCksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzM5KSwKKwlCQ002MzI2OF9HUk9VUChncGlvNDApLAor CUJDTTYzMjY4X0dST1VQKGdwaW80MSksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzQyKSwKKwlCQ002 MzI2OF9HUk9VUChncGlvNDMpLAorCUJDTTYzMjY4X0dST1VQKGdwaW80NCksCisJQkNNNjMyNjhf R1JPVVAoZ3BpbzQ1KSwKKwlCQ002MzI2OF9HUk9VUChncGlvNDYpLAorCUJDTTYzMjY4X0dST1VQ KGdwaW80NyksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzQ4KSwKKwlCQ002MzI2OF9HUk9VUChncGlv NDkpLAorCUJDTTYzMjY4X0dST1VQKGdwaW81MCksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzUxKSwK KworCS8qIG11bHRpIHBpbiBncm91cHMgKi8KKwlCQ002MzI2OF9HUk9VUChuYW5kX2dycCksCisJ QkNNNjMyNjhfR1JPVVAoZGVjdHBkX2dycCksCisJQkNNNjMyNjhfR1JPVVAodmRzbF9waHkwX2dy cCksCisJQkNNNjMyNjhfR1JPVVAodmRzbF9waHkxX2dycCksCisJQkNNNjMyNjhfR1JPVVAodmRz bF9waHkyX2dycCksCisJQkNNNjMyNjhfR1JPVVAodmRzbF9waHkzX2dycCksCit9OworCitzdGF0 aWMgY29uc3QgY2hhciAqIGNvbnN0IGxlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzAiLAorCSJncGlv MSIsCisJImdwaW8yIiwKKwkiZ3BpbzMiLAorCSJncGlvNCIsCisJImdwaW81IiwKKwkiZ3BpbzYi LAorCSJncGlvNyIsCisJImdwaW84IiwKKwkiZ3BpbzkiLAorCSJncGlvMTAiLAorCSJncGlvMTEi LAorCSJncGlvMTIiLAorCSJncGlvMTMiLAorCSJncGlvMTQiLAorCSJncGlvMTUiLAorCSJncGlv MTYiLAorCSJncGlvMTciLAorCSJncGlvMTgiLAorCSJncGlvMTkiLAorCSJncGlvMjAiLAorCSJn cGlvMjEiLAorCSJncGlvMjIiLAorCSJncGlvMjMiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIg KiBjb25zdCBzZXJpYWxfbGVkX2Nsa19ncm91cHNbXSA9IHsKKwkiZ3BpbzAiLAorfTsKKworc3Rh dGljIGNvbnN0IGNoYXIgKiBjb25zdCBzZXJpYWxfbGVkX2RhdGFfZ3JvdXBzW10gPSB7CisJImdw aW8xIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaHNzcGlfY3M0X2dyb3Vwc1td ID0geworCSJncGlvMTYiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBoc3NwaV9j czVfZ3JvdXBzW10gPSB7CisJImdwaW8xNyIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNv bnN0IGhzc3BpX2NzNl9ncm91cHNbXSA9IHsKKwkiZ3BpbzgiLAorfTsKKworc3RhdGljIGNvbnN0 IGNoYXIgKiBjb25zdCBoc3NwaV9jczdfZ3JvdXBzW10gPSB7CisJImdwaW85IiwKK307CisKK3N0 YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDFfc2N0c19ncm91cHNbXSA9IHsKKwkiZ3BpbzEw IiwKKwkiZ3BpbzI0IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDFfc3J0 c19ncm91cHNbXSA9IHsKKwkiZ3BpbzExIiwKKwkiZ3BpbzI1IiwKK307CisKK3N0YXRpYyBjb25z dCBjaGFyICogY29uc3QgdWFydDFfc2Rpbl9ncm91cHNbXSA9IHsKKwkiZ3BpbzEyIiwKKwkiZ3Bp bzI2IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDFfc2RvdXRfZ3JvdXBz W10gPSB7CisJImdwaW8xMyIsCisJImdwaW8yNyIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAq IGNvbnN0IG50cl9wdWxzZV9pbl9ncm91cHNbXSA9IHsKKwkiZ3BpbzE0IiwKKwkiZ3BpbzI4IiwK K307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZHNsX250cl9wdWxzZV9vdXRfZ3JvdXBz W10gPSB7CisJImdwaW8xNSIsCisJImdwaW8yOSIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAq IGNvbnN0IGFkc2xfc3BpX21pc29fZ3JvdXBzW10gPSB7CisJImdwaW8xOCIsCit9OworCitzdGF0 aWMgY29uc3QgY2hhciAqIGNvbnN0IGFkc2xfc3BpX21vc2lfZ3JvdXBzW10gPSB7CisJImdwaW8x OSIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZyZWdfY2xrX2dyb3Vwc1tdID0g eworCSJncGlvMjIiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBwY2llX2Nsa3Jl cV9iX2dyb3Vwc1tdID0geworCSJncGlvMjMiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBj b25zdCBzd2l0Y2hfbGVkX2Nsa19ncm91cHNbXSA9IHsKKwkiZ3BpbzMwIiwKK307CisKK3N0YXRp YyBjb25zdCBjaGFyICogY29uc3Qgc3dpdGNoX2xlZF9kYXRhX2dyb3Vwc1tdID0geworCSJncGlv MzEiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB3aWZpX2dyb3Vwc1tdID0gewor CSJncGlvMzIiLAorCSJncGlvMzMiLAorCSJncGlvMzQiLAorCSJncGlvMzUiLAorCSJncGlvMzYi LAorCSJncGlvMzciLAorCSJncGlvMzgiLAorCSJncGlvMzkiLAorCSJncGlvNDAiLAorCSJncGlv NDEiLAorCSJncGlvNDIiLAorCSJncGlvNDMiLAorCSJncGlvNDQiLAorCSJncGlvNDUiLAorCSJn cGlvNDYiLAorCSJncGlvNDciLAorCSJncGlvNDgiLAorCSJncGlvNDkiLAorCSJncGlvNTAiLAor CSJncGlvNTEiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBuYW5kX2dyb3Vwc1td ID0geworCSJuYW5kX2dycCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGRlY3Rw ZF9ncm91cHNbXSA9IHsKKwkiZGVjdHBkX2dycCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAq IGNvbnN0IHZkc2xfcGh5X292ZXJyaWRlXzBfZ3JvdXBzW10gPSB7CisJInZkc2xfcGh5X292ZXJy aWRlXzBfZ3JwIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdmRzbF9waHlfb3Zl cnJpZGVfMV9ncm91cHNbXSA9IHsKKwkidmRzbF9waHlfb3ZlcnJpZGVfMV9ncnAiLAorfTsKKwor c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB2ZHNsX3BoeV9vdmVycmlkZV8yX2dyb3Vwc1tdID0g eworCSJ2ZHNsX3BoeV9vdmVycmlkZV8yX2dycCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAq IGNvbnN0IHZkc2xfcGh5X292ZXJyaWRlXzNfZ3JvdXBzW10gPSB7CisJInZkc2xfcGh5X292ZXJy aWRlXzNfZ3JwIiwKK307CisKKyNkZWZpbmUgQkNNNjMyNjhfTEVEX0ZVTihuKQkJCQlcCisJewkJ CQkJCVwKKwkJLm5hbWUgPSAjbiwJCQkJXAorCQkuZ3JvdXBzID0gbiMjX2dyb3VwcywJCQlcCisJ CS5udW1fZ3JvdXBzID0gQVJSQVlfU0laRShuIyNfZ3JvdXBzKSwJXAorCQkucmVnID0gQkNNNjMy NjhfTEVEQ1RSTCwJCVwKKwl9CisKKyNkZWZpbmUgQkNNNjMyNjhfTU9ERV9GVU4obikJCQkJXAor CXsJCQkJCQlcCisJCS5uYW1lID0gI24sCQkJCVwKKwkJLmdyb3VwcyA9IG4jI19ncm91cHMsCQkJ XAorCQkubnVtX2dyb3VwcyA9IEFSUkFZX1NJWkUobiMjX2dyb3VwcyksCVwKKwkJLnJlZyA9IEJD TTYzMjY4X01PREUsCQkJXAorCX0KKworI2RlZmluZSBCQ002MzI2OF9DVFJMX0ZVTihuKQkJCQlc CisJewkJCQkJCVwKKwkJLm5hbWUgPSAjbiwJCQkJXAorCQkuZ3JvdXBzID0gbiMjX2dyb3VwcywJ CQlcCisJCS5udW1fZ3JvdXBzID0gQVJSQVlfU0laRShuIyNfZ3JvdXBzKSwJXAorCQkucmVnID0g QkNNNjMyNjhfQ1RSTCwJCQlcCisJfQorCisjZGVmaW5lIEJDTTYzMjY4X0JBU0VNT0RFX0ZVTihu LCB2YWwpCQkJXAorCXsJCQkJCQlcCisJCS5uYW1lID0gI24sCQkJCVwKKwkJLmdyb3VwcyA9IG4j I19ncm91cHMsCQkJXAorCQkubnVtX2dyb3VwcyA9IEFSUkFZX1NJWkUobiMjX2dyb3VwcyksCVwK KwkJLnJlZyA9IEJDTTYzMjY4X0JBU0VNT0RFLAkJXAorCQkubWFzayA9IHZhbCwJCQkJXAorCX0K Kworc3RhdGljIGNvbnN0IHN0cnVjdCBiY202MzI2OF9mdW5jdGlvbiBiY202MzI2OF9mdW5jc1td ID0geworCUJDTTYzMjY4X0xFRF9GVU4obGVkKSwKKwlCQ002MzI2OF9NT0RFX0ZVTihzZXJpYWxf bGVkX2NsayksCisJQkNNNjMyNjhfTU9ERV9GVU4oc2VyaWFsX2xlZF9kYXRhKSwKKwlCQ002MzI2 OF9NT0RFX0ZVTihoc3NwaV9jczYpLAorCUJDTTYzMjY4X01PREVfRlVOKGhzc3BpX2NzNyksCisJ QkNNNjMyNjhfTU9ERV9GVU4odWFydDFfc2N0cyksCisJQkNNNjMyNjhfTU9ERV9GVU4odWFydDFf c3J0cyksCisJQkNNNjMyNjhfTU9ERV9GVU4odWFydDFfc2RpbiksCisJQkNNNjMyNjhfTU9ERV9G VU4odWFydDFfc2RvdXQpLAorCUJDTTYzMjY4X01PREVfRlVOKG50cl9wdWxzZV9pbiksCisJQkNN NjMyNjhfTU9ERV9GVU4oZHNsX250cl9wdWxzZV9vdXQpLAorCUJDTTYzMjY4X01PREVfRlVOKGhz c3BpX2NzNCksCisJQkNNNjMyNjhfTU9ERV9GVU4oaHNzcGlfY3M1KSwKKwlCQ002MzI2OF9NT0RF X0ZVTihhZHNsX3NwaV9taXNvKSwKKwlCQ002MzI2OF9NT0RFX0ZVTihhZHNsX3NwaV9tb3NpKSwK KwlCQ002MzI2OF9NT0RFX0ZVTih2cmVnX2NsayksCisJQkNNNjMyNjhfTU9ERV9GVU4ocGNpZV9j bGtyZXFfYiksCisJQkNNNjMyNjhfTU9ERV9GVU4oc3dpdGNoX2xlZF9jbGspLAorCUJDTTYzMjY4 X01PREVfRlVOKHN3aXRjaF9sZWRfZGF0YSksCisJQkNNNjMyNjhfQ1RSTF9GVU4od2lmaSksCisJ QkNNNjMyNjhfQkFTRU1PREVfRlVOKG5hbmQsIEJDTTYzMjY4X0JBU0VNT0RFX05BTkQpLAorCUJD TTYzMjY4X0JBU0VNT0RFX0ZVTihkZWN0cGQsIEJDTTYzMjY4X0JBU0VNT0RFX0RFQ1RQRCksCisJ QkNNNjMyNjhfQkFTRU1PREVfRlVOKHZkc2xfcGh5X292ZXJyaWRlXzAsCisJCQkgICAgICBCQ002 MzI2OF9CQVNFTU9ERV9WRFNMX1BIWV8wKSwKKwlCQ002MzI2OF9CQVNFTU9ERV9GVU4odmRzbF9w aHlfb3ZlcnJpZGVfMSwKKwkJCSAgICAgIEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xfUEhZXzEpLAor CUJDTTYzMjY4X0JBU0VNT0RFX0ZVTih2ZHNsX3BoeV9vdmVycmlkZV8yLAorCQkJICAgICAgQkNN NjMyNjhfQkFTRU1PREVfVkRTTF9QSFlfMiksCisJQkNNNjMyNjhfQkFTRU1PREVfRlVOKHZkc2xf cGh5X292ZXJyaWRlXzMsCisJCQkgICAgICBCQ002MzI2OF9CQVNFTU9ERV9WRFNMX1BIWV8zKSwK K307CisKK3N0YXRpYyBpbnQgYmNtNjMyNjhfcGluY3RybF9nZXRfZ3JvdXBfY291bnQoc3RydWN0 IHBpbmN0cmxfZGV2ICpwY3RsZGV2KQoreworCXJldHVybiBBUlJBWV9TSVpFKGJjbTYzMjY4X2dy b3Vwcyk7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpiY202MzI2OF9waW5jdHJsX2dldF9ncm91 cF9uYW1lKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCQkJCSAgIHVuc2lnbmVkIGdy b3VwKQoreworCXJldHVybiBiY202MzI2OF9ncm91cHNbZ3JvdXBdLm5hbWU7Cit9CisKK3N0YXRp YyBpbnQgYmNtNjMyNjhfcGluY3RybF9nZXRfZ3JvdXBfcGlucyhzdHJ1Y3QgcGluY3RybF9kZXYg KnBjdGxkZXYsCisJCQkJCSAgIHVuc2lnbmVkIGdyb3VwLAorCQkJCQkgICBjb25zdCB1bnNpZ25l ZCAqKnBpbnMsCisJCQkJCSAgIHVuc2lnbmVkICpudW1fcGlucykKK3sKKwkqcGlucyA9IGJjbTYz MjY4X2dyb3Vwc1tncm91cF0ucGluczsKKwkqbnVtX3BpbnMgPSBiY202MzI2OF9ncm91cHNbZ3Jv dXBdLm51bV9waW5zOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjMyNjhfcGlu Y3RybF9nZXRfZnVuY19jb3VudChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYpCit7CisJcmV0 dXJuIEFSUkFZX1NJWkUoYmNtNjMyNjhfZnVuY3MpOworfQorCitzdGF0aWMgY29uc3QgY2hhciAq YmNtNjMyNjhfcGluY3RybF9nZXRfZnVuY19uYW1lKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRl diwKKwkJCQkJCSAgdW5zaWduZWQgc2VsZWN0b3IpCit7CisJcmV0dXJuIGJjbTYzMjY4X2Z1bmNz W3NlbGVjdG9yXS5uYW1lOworfQorCitzdGF0aWMgaW50IGJjbTYzMjY4X3BpbmN0cmxfZ2V0X2dy b3VwcyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCisJCQkJICAgICAgIHVuc2lnbmVkIHNl bGVjdG9yLAorCQkJCSAgICAgICBjb25zdCBjaGFyICogY29uc3QgKipncm91cHMsCisJCQkJICAg ICAgIHVuc2lnbmVkICogY29uc3QgbnVtX2dyb3VwcykKK3sKKwkqZ3JvdXBzID0gYmNtNjMyNjhf ZnVuY3Nbc2VsZWN0b3JdLmdyb3VwczsKKwkqbnVtX2dyb3VwcyA9IGJjbTYzMjY4X2Z1bmNzW3Nl bGVjdG9yXS5udW1fZ3JvdXBzOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGJjbTYz MjY4X3NldF9ncGlvKHN0cnVjdCBiY202M3h4X3BpbmN0cmwgKnBjLCB1bnNpZ25lZCBwaW4pCit7 CisJY29uc3Qgc3RydWN0IHBpbmN0cmxfcGluX2Rlc2MgKmRlc2MgPSAmYmNtNjMyNjhfcGluc1tw aW5dOworCXVuc2lnbmVkIGludCBiYXNlbW9kZSA9ICh1bnNpZ25lZCBsb25nKSBkZXNjLT5kcnZf ZGF0YTsKKwl1bnNpZ25lZCBpbnQgbWFzayA9IEJJVChiY202M3h4X2JhbmtfcGluKHBpbikpOwor CisJaWYgKGJhc2Vtb2RlKQorCQlyZWdtYXBfdXBkYXRlX2JpdHMocGMtPnJlZ3MsIEJDTTYzMjY4 X0JBU0VNT0RFX1JFRywgYmFzZW1vZGUsCisJCQkJICAgMCk7CisKKwlpZiAocGluIDwgQkNNNjNY WF9CQU5LX0dQSU9TKSB7CisJCS8qIGJhc2UgbW9kZTogMCA9PiBncGlvLCAxID0+IG11eCBmdW5j dGlvbiAqLworCQlyZWdtYXBfdXBkYXRlX2JpdHMocGMtPnJlZ3MsIEJDTTYzMjY4X01PREVfUkVH LCBtYXNrLCAwKTsKKworCQkvKiBwaW5zIDAtMjMgbWlnaHQgYmUgbXV4ZWQgdG8gbGVkICovCisJ CWlmIChwaW4gPCBCQ002MzI2OF9OVU1fTEVEUykKKwkJCXJlZ21hcF91cGRhdGVfYml0cyhwYy0+ cmVncywgQkNNNjMyNjhfTEVEX1JFRywgbWFzaywKKwkJCQkJICAgMCk7CisJfSBlbHNlIGlmIChw aW4gPCBCQ002MzI2OF9OVU1fR1BJT1MpIHsKKwkJLyogY3RybCByZWc6IDAgPT4gd2lmaSBmdW5j dGlvbiwgMSA9PiBncGlvICovCisJCXJlZ21hcF91cGRhdGVfYml0cyhwYy0+cmVncywgQkNNNjMy NjhfQ1RSTF9SRUcsIG1hc2ssIG1hc2spOworCX0KK30KKworc3RhdGljIGludCBiY202MzI2OF9w aW5jdHJsX3NldF9tdXgoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCSAgICB1bnNp Z25lZCBzZWxlY3RvciwgdW5zaWduZWQgZ3JvdXApCit7CisJc3RydWN0IGJjbTYzeHhfcGluY3Ry bCAqcGMgPSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0YShwY3RsZGV2KTsKKwljb25zdCBzdHJ1Y3Qg YmNtNjMyNjhfcGluZ3JvdXAgKnBnID0gJmJjbTYzMjY4X2dyb3Vwc1tncm91cF07CisJY29uc3Qg c3RydWN0IGJjbTYzMjY4X2Z1bmN0aW9uICpmID0gJmJjbTYzMjY4X2Z1bmNzW3NlbGVjdG9yXTsK Kwl1bnNpZ25lZCBpOworCXVuc2lnbmVkIGludCByZWc7CisJdW5zaWduZWQgaW50IHZhbCwgbWFz azsKKworCWZvciAoaSA9IDA7IGkgPCBwZy0+bnVtX3BpbnM7IGkrKykKKwkJYmNtNjMyNjhfc2V0 X2dwaW8ocGMsIHBnLT5waW5zW2ldKTsKKworCXN3aXRjaCAoZi0+cmVnKSB7CisJY2FzZSBCQ002 MzI2OF9MRURDVFJMOgorCQlyZWcgPSBCQ002MzI2OF9MRURfUkVHOworCQltYXNrID0gQklUKHBn LT5waW5zWzBdKTsKKwkJdmFsID0gQklUKHBnLT5waW5zWzBdKTsKKwkJYnJlYWs7CisJY2FzZSBC Q002MzI2OF9NT0RFOgorCQlyZWcgPSBCQ002MzI2OF9NT0RFX1JFRzsKKwkJbWFzayA9IEJJVChw Zy0+cGluc1swXSk7CisJCXZhbCA9IEJJVChwZy0+cGluc1swXSk7CisJCWJyZWFrOworCWNhc2Ug QkNNNjMyNjhfQ1RSTDoKKwkJcmVnID0gQkNNNjMyNjhfQ1RSTF9SRUc7CisJCW1hc2sgPSBCSVQo cGctPnBpbnNbMF0pOworCQl2YWwgPSAwOworCQlicmVhazsKKwljYXNlIEJDTTYzMjY4X0JBU0VN T0RFOgorCQlyZWcgPSBCQ002MzI2OF9CQVNFTU9ERV9SRUc7CisJCW1hc2sgPSBmLT5tYXNrOwor CQl2YWwgPSBmLT5tYXNrOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlXQVJOX09OKDEpOworCQly ZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZWdtYXBfdXBkYXRlX2JpdHMocGMtPnJlZ3MsIHJlZywg bWFzaywgdmFsKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGJjbTYzMjY4X2dwaW9f cmVxdWVzdF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCQlzdHJ1Y3Qg cGluY3RybF9ncGlvX3JhbmdlICpyYW5nZSwKKwkJCQkJdW5zaWduZWQgb2Zmc2V0KQoreworCXN0 cnVjdCBiY202M3h4X3BpbmN0cmwgKnBjID0gcGluY3RybF9kZXZfZ2V0X2RydmRhdGEocGN0bGRl dik7CisKKwkvKiBkaXNhYmxlIGFsbCBmdW5jdGlvbnMgdXNpbmcgdGhpcyBwaW4gKi8KKwliY202 MzI2OF9zZXRfZ3BpbyhwYywgb2Zmc2V0KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3Ry dWN0IHBpbmN0cmxfb3BzIGJjbTYzMjY4X3BjdGxfb3BzID0geworCS5nZXRfZ3JvdXBzX2NvdW50 ID0gYmNtNjMyNjhfcGluY3RybF9nZXRfZ3JvdXBfY291bnQsCisJLmdldF9ncm91cF9uYW1lID0g YmNtNjMyNjhfcGluY3RybF9nZXRfZ3JvdXBfbmFtZSwKKwkuZ2V0X2dyb3VwX3BpbnMgPSBiY202 MzI2OF9waW5jdHJsX2dldF9ncm91cF9waW5zLAorCS5kdF9ub2RlX3RvX21hcCA9IHBpbmNvbmZf Z2VuZXJpY19kdF9ub2RlX3RvX21hcF9waW4sCisJLmR0X2ZyZWVfbWFwID0gcGluY3RybF91dGls c19mcmVlX21hcCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGlubXV4X29wcyBiY202MzI2OF9wbXhf b3BzID0geworCS5nZXRfZnVuY3Rpb25zX2NvdW50ID0gYmNtNjMyNjhfcGluY3RybF9nZXRfZnVu Y19jb3VudCwKKwkuZ2V0X2Z1bmN0aW9uX25hbWUgPSBiY202MzI2OF9waW5jdHJsX2dldF9mdW5j X25hbWUsCisJLmdldF9mdW5jdGlvbl9ncm91cHMgPSBiY202MzI2OF9waW5jdHJsX2dldF9ncm91 cHMsCisJLnNldF9tdXggPSBiY202MzI2OF9waW5jdHJsX3NldF9tdXgsCisJLmdwaW9fcmVxdWVz dF9lbmFibGUgPSBiY202MzI2OF9ncGlvX3JlcXVlc3RfZW5hYmxlLAorCS5zdHJpY3QgPSB0cnVl LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBiY202M3h4X3BpbmN0cmxfc29jIGJjbTYzMjY4 X3NvYyA9IHsKKwkubmdwaW9zID0gQkNNNjMyNjhfTlVNX0dQSU9TLAorCS5ucGlucyA9IEFSUkFZ X1NJWkUoYmNtNjMyNjhfcGlucyksCisJLnBjdGxfb3BzID0gJmJjbTYzMjY4X3BjdGxfb3BzLAor CS5waW5zID0gYmNtNjMyNjhfcGlucywKKwkucG14X29wcyA9ICZiY202MzI2OF9wbXhfb3BzLAor fTsKKworc3RhdGljIGludCBiY202MzI2OF9waW5jdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCit7CisJcmV0dXJuIGJjbTYzeHhfcGluY3RybF9wcm9iZShwZGV2LCAmYmNt NjMyNjhfc29jLCBOVUxMKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQg YmNtNjMyNjhfcGluY3RybF9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUgPSAiYnJjbSxiY202 MzI2OC1waW5jdHJsIiwgfSwKKwl7IH0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2Ry aXZlciBiY202MzI2OF9waW5jdHJsX2RyaXZlciA9IHsKKwkucHJvYmUgPSBiY202MzI2OF9waW5j dHJsX3Byb2JlLAorCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImJjbTYzMjY4LXBpbmN0cmwiLAor CQkub2ZfbWF0Y2hfdGFibGUgPSBiY202MzI2OF9waW5jdHJsX21hdGNoLAorCX0sCit9OworCiti dWlsdGluX3BsYXRmb3JtX2RyaXZlcihiY202MzI2OF9waW5jdHJsX2RyaXZlcik7Ci0tIAoyLjIw LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51 eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVh ZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1h cm0ta2VybmVsCg==