From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7B907C433F5 for ; Fri, 25 Mar 2022 04:52:52 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 42D0F84153; Fri, 25 Mar 2022 05:52:50 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.b="HXMKOCMF"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 2619384154; Fri, 25 Mar 2022 05:52:48 +0100 (CET) Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com [IPv6:2607:f8b0:4864:20::62f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 1C0068414E for ; Fri, 25 Mar 2022 05:52:42 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: phobos.denx.de; spf=fail smtp.mailfrom=william.zhang@broadcom.com Received: by mail-pl1-x62f.google.com with SMTP id q11so6894671pln.11 for ; Thu, 24 Mar 2022 21:52:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=message-id:date:mime-version:user-agent:subject:to:cc:references :from:in-reply-to; bh=vMu26pyHkUL2RHXSVkChcp4H6o5C9uma/W13Lw6agPA=; b=HXMKOCMFHsU6po5jPpqk1LGE4s2K8zt2FXaB2RZnRu388huxq6oCoXpcXNvL+YOWZq VACyo/w/lFqDZX7RdgKLJywY3uRFKRkK306uYJBAt4YV/qD3tEmAId2FDtiUqgj2RuEa HUfE1/VqIsCK/6wDvucoHX/VJgRYft5uAsOSw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :to:cc:references:from:in-reply-to; bh=vMu26pyHkUL2RHXSVkChcp4H6o5C9uma/W13Lw6agPA=; b=R5ciUMN9tvazuxEYtXeEb1daj+yNp+5zDBC/DBYYOqNp0ArvWbRFrsDik7NCBpfqIO X7a38l31weWFz8znQl3tmipFXhxfNtyBa58WcQms/h5NCgXOyPW6JeAFo9vKv+5L8OI3 9U4j6cYLR694wyAD9qOp6OgCnuOUCrmggLyHNko9/9d6DGG+DB2WC3xpYzqlu/iW2vSB 1iBy8NhUQ+H87iFP7KlbB03tK4BBtyKfLrsRYzdkFQ4n3h2lS4sbbWyvFW7Fm6C3isJN IfWrOGN0sOWcWaT27zGZnnr7GATje7uTrU2/zRZ3bOCMP67vtzChgtS43BPF+S0ec9Gu Niyg== X-Gm-Message-State: AOAM530Z8osdYR36FIXmxLZgO+HpdMEz8a0o5md35A529rFeGsjL87Bg 4NZ9pyI5g2jdi2n/q8LxPA+gYg== X-Google-Smtp-Source: ABdhPJy3sfztsrixoaIP7SBcLTB14pBJPZqCyddVmh9QMgQQOu01C70AEiqleM2yZyQWZJok3nkzTA== X-Received: by 2002:a17:902:e88e:b0:154:7562:176d with SMTP id w14-20020a170902e88e00b001547562176dmr9552427plg.13.1648183960312; Thu, 24 Mar 2022 21:52:40 -0700 (PDT) Received: from [10.67.99.21] ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 77-20020a621450000000b004fa923bb57asm4737742pfu.201.2022.03.24.21.52.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 24 Mar 2022 21:52:38 -0700 (PDT) Message-ID: Date: Thu, 24 Mar 2022 21:52:29 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [PATCH 1/1] arm: bcmbca: introduce the bcmbca architecture and 47622 SOC To: Andre Przywara Cc: U-Boot Mailing List , Kursad Oney , Anand Gore , Bharat Gooty , Christian Hewitt , Fabio Estevam , Jagan Teki , Joel Peshkin , Kever Yang , Peter Robinson , Rayagonda Kokatanur , Simon Glass , Tim Harvey , Tom Rini , "Ying-Chun Liu (PaulLiu)" References: <20220324020348.25026-1-william.zhang@broadcom.com> <20220323190202.1.I299769afcaf6c3274569466c1bcce0d13f4fdbb8@changeid> <20220325011338.789c2bce@slackpad.lan> From: William Zhang In-Reply-To: <20220325011338.789c2bce@slackpad.lan> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000008226de05db03bbcb" X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean --0000000000008226de05db03bbcb Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 3/24/22 18:13, Andre Przywara wrote: > On Wed, 23 Mar 2022 19:03:48 -0700 > William Zhang wrote: > > Hi, > >> This is the initial support for Broadcom's ARM-based 47622 SOC. >> >> In this change, our first SOC is an armv7 platform called 47622. The >> initial support includes a bare-bone implementation and dts with ARM >> PL011 uart. > > As Tom said, you need to run the DT through the kernel review first. > To maybe save you one round there, see below my comments. > Yes we are working on that. >> The SOC-specific code resides in arch/arm/mach-bcmbca/ and board >> related code is in board/broadcom/bcmba. >> >> The u-boot image can be loaded from flash or network to the entry point >> address in the memory and boot from there. >> >> Signed-off-by: William Zhang >> Signed-off-by: Kursad Oney >> Signed-off-by: Anand Gore >> --- >> >> MAINTAINERS | 11 ++++++++ >> arch/arm/Kconfig | 7 ++++++ >> arch/arm/Makefile | 1 + >> arch/arm/dts/Makefile | 3 +++ >> arch/arm/dts/bcm47622.dtsi | 25 ++++++++++++++++++ >> arch/arm/dts/bcm947622.dts | 31 +++++++++++++++++++++++ >> arch/arm/mach-bcmbca/Kconfig | 17 +++++++++++++ >> arch/arm/mach-bcmbca/Makefile | 6 +++++ >> arch/arm/mach-bcmbca/bcm47622/Kconfig | 17 +++++++++++++ >> arch/arm/mach-bcmbca/bcm47622/Makefile | 5 ++++ >> board/broadcom/bcmbca/Kconfig | 17 +++++++++++++ >> board/broadcom/bcmbca/Makefile | 5 ++++ >> board/broadcom/bcmbca/board.c | 35 ++++++++++++++++++++++++++ >> configs/bcm947622_defconfig | 18 +++++++++++++ >> include/configs/bcm947622.h | 21 ++++++++++++++++ >> 15 files changed, 219 insertions(+) >> create mode 100644 arch/arm/dts/bcm47622.dtsi >> create mode 100644 arch/arm/dts/bcm947622.dts >> create mode 100644 arch/arm/mach-bcmbca/Kconfig >> create mode 100644 arch/arm/mach-bcmbca/Makefile >> create mode 100644 arch/arm/mach-bcmbca/bcm47622/Kconfig >> create mode 100644 arch/arm/mach-bcmbca/bcm47622/Makefile >> create mode 100644 board/broadcom/bcmbca/Kconfig >> create mode 100644 board/broadcom/bcmbca/Makefile >> create mode 100644 board/broadcom/bcmbca/board.c >> create mode 100644 configs/bcm947622_defconfig >> create mode 100644 include/configs/bcm947622.h >> >> diff --git a/MAINTAINERS b/MAINTAINERS >> index 96582fc677..ef4a9b04e8 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -195,6 +195,17 @@ F: drivers/pinctrl/broadcom/ >> F: configs/rpi_* >> T: git https://source.denx.de/u-boot/custodians/u-boot-arm.git >> >> +ARM BROADCOM BCMBCA >> +M: Anand Gore >> +M: William Zhang >> +M: Kursad Oney >> +M: Joel Peshkin >> +S: Maintained >> +F: arch/arm/mach-bcmbca/ >> +F: board/broadcom/bcmbca/ >> +F: configs/bcm947622_defconfig >> +F: include/configs/bcm947622.h >> + >> ARM BROADCOM BCMSTB >> M: Thomas Fitzsimmons >> S: Maintained >> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig >> index 4567c183fb..9a75d2e6bb 100644 >> --- a/arch/arm/Kconfig >> +++ b/arch/arm/Kconfig >> @@ -641,6 +641,11 @@ config ARCH_BCMSTB >> This enables support for Broadcom ARM-based set-top box >> chipsets, including the 7445 family of chips. >> >> +config ARCH_BCMBCA >> + bool "Broadcom broadband chip family" >> + select DM >> + select OF_CONTROL >> + >> config TARGET_VEXPRESS_CA9X4 >> bool "Support vexpress_ca9x4" >> select CPU_V7A >> @@ -2092,6 +2097,8 @@ source "arch/arm/mach-at91/Kconfig" >> >> source "arch/arm/mach-bcm283x/Kconfig" >> >> +source "arch/arm/mach-bcmbca/Kconfig" >> + >> source "arch/arm/mach-bcmstb/Kconfig" >> >> source "arch/arm/mach-davinci/Kconfig" >> diff --git a/arch/arm/Makefile b/arch/arm/Makefile >> index ad757e982e..0fd127e0e7 100644 >> --- a/arch/arm/Makefile >> +++ b/arch/arm/Makefile >> @@ -59,6 +59,7 @@ machine-$(CONFIG_ARCH_APPLE) += apple >> machine-$(CONFIG_ARCH_ASPEED) += aspeed >> machine-$(CONFIG_ARCH_AT91) += at91 >> machine-$(CONFIG_ARCH_BCM283X) += bcm283x >> +machine-$(CONFIG_ARCH_BCMBCA) += bcmbca >> machine-$(CONFIG_ARCH_BCMSTB) += bcmstb >> machine-$(CONFIG_ARCH_DAVINCI) += davinci >> machine-$(CONFIG_ARCH_EXYNOS) += exynos >> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile >> index 644ba961a2..448347d278 100644 >> --- a/arch/arm/dts/Makefile >> +++ b/arch/arm/dts/Makefile >> @@ -1112,6 +1112,9 @@ dtb-$(CONFIG_TARGET_BCMNS3) += ns3-board.dtb >> >> dtb-$(CONFIG_ARCH_BCMSTB) += bcm7xxx.dtb >> >> +dtb-$(CONFIG_BCM47622) += \ >> + bcm947622.dtb >> + >> dtb-$(CONFIG_ASPEED_AST2500) += ast2500-evb.dtb >> dtb-$(CONFIG_ASPEED_AST2600) += ast2600-evb.dtb >> >> diff --git a/arch/arm/dts/bcm47622.dtsi b/arch/arm/dts/bcm47622.dtsi >> new file mode 100644 >> index 0000000000..1fe05daa67 >> --- /dev/null >> +++ b/arch/arm/dts/bcm47622.dtsi >> @@ -0,0 +1,25 @@ >> +// SPDX-License-Identifier: GPL-2.0+ >> +/* >> + * Copyright 2019 Broadcom Ltd. >> + */ >> + >> +#include "skeleton.dtsi" > > skeleton is not used anymore in the kernel. > >> + >> +/ { >> + compatible = "brcm,bcm47622"; >> + #address-cells = <0x1>; >> + #size-cells = <0x1>; > > Just use decimals: ... = <1>; > >> + >> + ubus@ff800000 { > > just: bus@ff800000 { > > Actually not sure you need that at all. Are there going to be more > devices later? > There will be more devices under this peripheral bus. I will rename it as periph. >> + compatible = "simple-bus"; >> + #address-cells = <0x1>; >> + #size-cells = <0x1>; >> + >> + uart0: serial@ff812000 { >> + compatible = "arm,pl011", "arm,primecell"; >> + reg = <0xff812000 0x1000>; >> + clock = <50000000>; > > This is not an official property. Please use a fixed-clock and the > clocks property. > > In general, once you have those files in the kernel tree, run your DT > through "make dtbs_check". This will report a lot of unrelated failures > initially, so ignore the first run, "touch" your .dts file, then re-run. > > If this SoC contains Cortex-A7 cores, then please also add the GIC, arch > timer and CPU nodes, for basic functionality. Thanks for the feedbacks Andre! Will address all your comments in the dts we submit to kernel upstream. > > Cheers, > Andre > > >> + status = "disabled"; >> + }; >> + }; >> +}; >> diff --git a/arch/arm/dts/bcm947622.dts b/arch/arm/dts/bcm947622.dts >> new file mode 100644 >> index 0000000000..e241c4ec56 >> --- /dev/null >> +++ b/arch/arm/dts/bcm947622.dts >> @@ -0,0 +1,31 @@ >> +// SPDX-License-Identifier: GPL-2.0 >> +/* >> + * Copyright 2019 Broadcom Ltd. >> + */ >> + >> +/dts-v1/; >> + >> +#include "bcm47622.dtsi" >> + >> +/ { >> + model = "Broadcom bcm947622"; >> + compatible = "broadcom,bcm947622", "brcm,bcm947622"; >> + >> + aliases { >> + serial0 = &uart0; >> + }; >> + >> + chosen { >> + stdout-path = "serial0:115200n8"; >> + }; >> + >> + memory { >> + device_type = "memory"; >> + reg = <0x0 0x08000000>; >> + }; >> +}; >> + >> +&uart0 { >> + status = "okay"; >> +}; >> + >> diff --git a/arch/arm/mach-bcmbca/Kconfig b/arch/arm/mach-bcmbca/Kconfig >> new file mode 100644 >> index 0000000000..2d49380f87 >> --- /dev/null >> +++ b/arch/arm/mach-bcmbca/Kconfig >> @@ -0,0 +1,17 @@ >> +# SPDX-License-Identifier: GPL-2.0+ >> +# >> +# (C) Copyright 2022 Broadcom Ltd >> +# >> + >> +if ARCH_BCMBCA >> + >> +config BCM47622 >> + bool "Support for Broadcom 47622 Family" >> + select SYS_ARCH_TIMER >> + select CPU_V7A >> + select DM_SERIAL >> + select PL01X_SERIAL >> + >> +endif >> + >> +source "arch/arm/mach-bcmbca/bcm47622/Kconfig" >> diff --git a/arch/arm/mach-bcmbca/Makefile b/arch/arm/mach-bcmbca/Makefile >> new file mode 100644 >> index 0000000000..072d4ea7b5 >> --- /dev/null >> +++ b/arch/arm/mach-bcmbca/Makefile >> @@ -0,0 +1,6 @@ >> +# SPDX-License-Identifier: GPL-2.0+ >> +# >> +# (C) Copyright 2022 Broadcom Ltd >> +# >> + >> +obj-$(CONFIG_BCM47622) += bcm47622/ >> diff --git a/arch/arm/mach-bcmbca/bcm47622/Kconfig b/arch/arm/mach-bcmbca/bcm47622/Kconfig >> new file mode 100644 >> index 0000000000..bce30892e3 >> --- /dev/null >> +++ b/arch/arm/mach-bcmbca/bcm47622/Kconfig >> @@ -0,0 +1,17 @@ >> +# SPDX-License-Identifier: GPL-2.0+ >> +# >> +# (C) Copyright 2022 Broadcom Ltd >> +# >> + >> +if BCM47622 >> + >> +config TARGET_BCM947622 >> + bool "Broadcom 47622 Reference Board" >> + depends on ARCH_BCMBCA >> + >> +config SYS_SOC >> + default "bcm47622" >> + >> +source "board/broadcom/bcmbca/Kconfig" >> + >> +endif >> diff --git a/arch/arm/mach-bcmbca/bcm47622/Makefile b/arch/arm/mach-bcmbca/bcm47622/Makefile >> new file mode 100644 >> index 0000000000..beb979af75 >> --- /dev/null >> +++ b/arch/arm/mach-bcmbca/bcm47622/Makefile >> @@ -0,0 +1,5 @@ >> +# SPDX-License-Identifier: GPL-2.0+ >> +# >> +# (C) Copyright 2022 Broadcom Ltd >> +# >> +obj- += dummy.o >> diff --git a/board/broadcom/bcmbca/Kconfig b/board/broadcom/bcmbca/Kconfig >> new file mode 100644 >> index 0000000000..63d4252da6 >> --- /dev/null >> +++ b/board/broadcom/bcmbca/Kconfig >> @@ -0,0 +1,17 @@ >> +# SPDX-License-Identifier: GPL-2.0+ >> +# >> +# (C) Copyright 2022 Broadcom Ltd >> +# >> + >> +config SYS_BOARD >> + default "bcmbca" >> + >> +config SYS_VENDOR >> + default "broadcom" >> + >> +if TARGET_BCM947622 >> + >> +config SYS_CONFIG_NAME >> + default "bcm947622" >> + >> +endif >> diff --git a/board/broadcom/bcmbca/Makefile b/board/broadcom/bcmbca/Makefile >> new file mode 100644 >> index 0000000000..8f06c3111b >> --- /dev/null >> +++ b/board/broadcom/bcmbca/Makefile >> @@ -0,0 +1,5 @@ >> +# SPDX-License-Identifier: GPL-2.0+ >> +# >> +# (C) Copyright 2022 Broadcom Ltd >> + >> +obj-y += board.o >> diff --git a/board/broadcom/bcmbca/board.c b/board/broadcom/bcmbca/board.c >> new file mode 100644 >> index 0000000000..4aa1d659d5 >> --- /dev/null >> +++ b/board/broadcom/bcmbca/board.c >> @@ -0,0 +1,35 @@ >> +// SPDX-License-Identifier: GPL-2.0+ >> +/* >> + * (C) Copyright 2022 Broadcom Ltd. >> + */ >> + >> +#include >> +#include >> + >> +int board_init(void) >> +{ >> + return 0; >> +} >> + >> +int dram_init(void) >> +{ >> + if (fdtdec_setup_mem_size_base() != 0) >> + puts("fdtdec_setup_mem_size_base() has failed\n"); >> + >> + return 0; >> +} >> + >> +int dram_init_banksize(void) >> +{ >> + fdtdec_setup_memory_banksize(); >> + return 0; >> +} >> + >> +int print_cpuinfo(void) >> +{ >> + return 0; >> +} >> + >> +void reset_cpu(ulong addr) >> +{ >> +} >> diff --git a/configs/bcm947622_defconfig b/configs/bcm947622_defconfig >> new file mode 100644 >> index 0000000000..c8d14820af >> --- /dev/null >> +++ b/configs/bcm947622_defconfig >> @@ -0,0 +1,18 @@ >> +CONFIG_ARM=y >> +CONFIG_ARCH_BCMBCA=y >> +CONFIG_SYS_TEXT_BASE=0x10000000 >> +CONFIG_SYS_MALLOC_LEN=0x2000000 >> +CONFIG_SYS_MALLOC_F_LEN=0x8000 >> +CONFIG_BCM47622=y >> +CONFIG_TARGET_BCM947622=y >> +CONFIG_NR_DRAM_BANKS=1 >> +CONFIG_DEFAULT_DEVICE_TREE="bcm947622" >> +CONFIG_IDENT_STRING=" Broadcom BCM47622" >> +CONFIG_ENV_VARS_UBOOT_CONFIG=y >> +CONFIG_SYS_LOAD_ADDR=0x10000000 >> +CONFIG_OF_STDOUT_VIA_ALIAS=y >> +CONFIG_DISPLAY_BOARDINFO_LATE=y >> +CONFIG_HUSH_PARSER=y >> +CONFIG_CMD_CACHE=y >> +CONFIG_OF_EMBED=y >> +CONFIG_CLK=y >> diff --git a/include/configs/bcm947622.h b/include/configs/bcm947622.h >> new file mode 100644 >> index 0000000000..7c80e88be0 >> --- /dev/null >> +++ b/include/configs/bcm947622.h >> @@ -0,0 +1,21 @@ >> +/* SPDX-License-Identifier: GPL-2.0+ */ >> +/* >> + * (C) Copyright 2022 Broadcom Ltd. >> + */ >> + >> +#ifndef __BCM947622_H >> +#define __BCM947622_H >> +#include >> + >> +#define CONFIG_SYS_MAXARGS 64 >> +#define CONFIG_SYS_BOOTM_LEN (32 * 1024 * 1024) >> + >> +/* UART */ >> +#define CONFIG_SYS_BAUDRATE_TABLE { 115200 } >> + >> +#define CONFIG_SYS_SDRAM_BASE 0x00000000 >> + >> +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE + SZ_16M) >> + >> +#define COUNTER_FREQUENCY 50000000 >> +#endif > --0000000000008226de05db03bbcb Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 TltlrAeBKRJ1M9O/DY5v7L1Yrs//7XIRg/d2ZPAOSGBQzFYjYTFWwNBiR1s1zP0m2y56DPbS5gwj fqAN/I4PJHIvTh3zUgHXNKadYoYRiPHXfaTWO9UhzysOpQIDAQABo4IB2zCCAdcwDgYDVR0PAQH/ BAQDAgWgMIGjBggrBgEFBQcBAQSBljCBkzBOBggrBgEFBQcwAoZCaHR0cDovL3NlY3VyZS5nbG9i YWxzaWduLmNvbS9jYWNlcnQvZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3J0MEEGCCsGAQUF BzABhjVodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAy MDBNBgNVHSAERjBEMEIGCisGAQQBoDIBKAowNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93d3cuZ2xv YmFsc2lnbi5jb20vcmVwb3NpdG9yeS8wCQYDVR0TBAIwADBJBgNVHR8EQjBAMD6gPKA6hjhodHRw Oi8vY3JsLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwLmNybDAlBgNV HREEHjAcgRp3aWxsaWFtLnpoYW5nQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAf BgNVHSMEGDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUohM5GmNlGWe5wpzDxzIy +EgzbRswDQYJKoZIhvcNAQELBQADggEBACKu9JSQAYTlmC+JTniO/C/UcXGonATI/muBjWTxtkHc abZtz0uwzzrRrpV+mbHLGVFFeRbXSLvcEzqHp8VomXifEZlfsE9LajSehzaqhd+np+tmUPz1RlI/ ibZ7vW+1VF18lfoL+wHs2H0fsG6JfoqZldEWYXASXnUrs0iTLgXxvwaQj69cSMuzfFm1X5kWqWCP W0KkR8025J0L5L4yXfkSO6psD/k4VcTsMJHLN4RfMuaXIT6EM0cNO6h3GypyTuPf1N1X+F6WQPKb 1u+rvdML63P9fX7e7mwwGt5klRnf8aK2VU7mIdYCcrFHaKDTW3fkG6kIgrE1wWSgiZYL400xggJt MIICaQIBATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYD VQQDEyhHbG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgw28eX6TfvsbNfu SIMwDQYJYIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEINVrTHEcz6cFNJf1vL4ZXnsDWUBw B7Pl8Bj3yoptATSCMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIy MDMyNTA0NTI0MFowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsG CWCGSAFlAwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFl AwQCATANBgkqhkiG9w0BAQEFAASCAQCV8YXSV/FMHMzd4rs2xJhZnhsB1SqlV3e6VFPHOvaWGpE8 Op4WCmpq/d/r6qM6mbU0GYDEksQZH4VhcmKPcezYhvxSO8FeGK3mgTWEk5DVCtzCqtwA4sch6mjP hXy5mvQT4SPrpup2pTPCM54akHouCnZ/Yf2u9oy+m40HWPER0b6Dq89eD5jO89HYu7UDOXucx9nl m/Sp9YSJeosexacUltgiJKqVMLMZt/iVr7eTxTOYtxc7PR2rzXQ4wvoORirUk3WKxQsaxTFbRJZ+ lTO0D32DZNXN+Hp1yMa2PeR3NmWzZ1GGsaTrgsdf1jD9YHwSFHQM+ygS9EVv50aeSDFy --0000000000008226de05db03bbcb--