From 314eee33f6900a0fa185d0622eb4a3b9dd69142d Mon Sep 17 00:00:00 2001 From: Gabriel Somlo Date: Tue, 15 Mar 2022 14:09:15 -0400 Subject: [PATCH 01/70] frrboot: add fedora sbin path to default Add the Fedora default location for FRR binaries (/usr/libexec/frr/*.) to CORE's frrboot default "sbin" search path Signed-off-by: Gabriel Somlo --- daemon/core/configservices/frrservices/services.py | 2 +- daemon/core/services/frr.py | 2 +- daemon/data/core.conf | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/daemon/core/configservices/frrservices/services.py b/daemon/core/configservices/frrservices/services.py index dd2d1f9d..5e6c9948 100644 --- a/daemon/core/configservices/frrservices/services.py +++ b/daemon/core/configservices/frrservices/services.py @@ -89,7 +89,7 @@ class FRRZebra(ConfigService): "frr_bin_search", default="/usr/local/bin /usr/bin /usr/lib/frr" ).strip('"') frr_sbin_search = self.node.session.options.get( - "frr_sbin_search", default="/usr/local/sbin /usr/sbin /usr/lib/frr" + "frr_sbin_search", default="/usr/local/sbin /usr/sbin /usr/lib/frr /usr/libexec/frr" ).strip('"') services = [] diff --git a/daemon/core/services/frr.py b/daemon/core/services/frr.py index 87145d37..c8ad1048 100644 --- a/daemon/core/services/frr.py +++ b/daemon/core/services/frr.py @@ -142,7 +142,7 @@ class FRRZebra(CoreService): "frr_bin_search", '"/usr/local/bin /usr/bin /usr/lib/frr"' ) frr_sbin_search = node.session.options.get( - "frr_sbin_search", '"/usr/local/sbin /usr/sbin /usr/lib/frr"' + "frr_sbin_search", '"/usr/local/sbin /usr/sbin /usr/lib/frr /usr/libexec/frr"' ) cfg = """\ #!/bin/sh diff --git a/daemon/data/core.conf b/daemon/data/core.conf index 874ba567..1923250d 100644 --- a/daemon/data/core.conf +++ b/daemon/data/core.conf @@ -5,7 +5,7 @@ grpcport = 50051 quagga_bin_search = "/usr/local/bin /usr/bin /usr/lib/quagga" quagga_sbin_search = "/usr/local/sbin /usr/sbin /usr/lib/quagga" frr_bin_search = "/usr/local/bin /usr/bin /usr/lib/frr" -frr_sbin_search = "/usr/local/sbin /usr/sbin /usr/lib/frr" +frr_sbin_search = "/usr/local/sbin /usr/sbin /usr/lib/frr /usr/libexec/frr" # uncomment the following line to load custom services from the specified dir # this may be a comma-separated list, and directory names should be unique From f8d2b47fa918aff89809131490dee300274162f2 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Fri, 3 Mar 2023 10:00:59 -0800 Subject: [PATCH 02/70] install: updated Pillow dependency --- daemon/poetry.lock | 141 ++++++++++++++++++++++++------------------ daemon/pyproject.toml | 2 +- 2 files changed, 81 insertions(+), 62 deletions(-) diff --git a/daemon/poetry.lock b/daemon/poetry.lock index 2c8c6f28..40bdef94 100644 --- a/daemon/poetry.lock +++ b/daemon/poetry.lock @@ -374,14 +374,14 @@ python-versions = ">=3.7" [[package]] name = "Pillow" -version = "9.2.0" +version = "9.4.0" description = "Python Imaging Library (Fork)" category = "main" optional = false python-versions = ">=3.7" [package.extras] -docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinxext-opengraph"] +docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinxext-opengraph"] tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] [[package]] @@ -584,7 +584,7 @@ test = ["covdefaults (>=2.2.2)", "coverage (>=7.1)", "coverage-enable-subprocess [metadata] lock-version = "1.1" python-versions = "^3.9" -content-hash = "b78118206a714bae7b839da039024e850a1fee06d2768acd6f452490de4abb0e" +content-hash = "b78612d24428d679316470d6c20eeb563828ef9cc8438a56120abc8cce013f83" [metadata.files] atomicwrites = [ @@ -1029,64 +1029,83 @@ pathspec = [ {file = "pathspec-0.11.0.tar.gz", hash = "sha256:64d338d4e0914e91c1792321e6907b5a593f1ab1851de7fc269557a21b30ebbc"}, ] Pillow = [ - {file = "Pillow-9.2.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:a9c9bc489f8ab30906d7a85afac4b4944a572a7432e00698a7239f44a44e6efb"}, - {file = "Pillow-9.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:510cef4a3f401c246cfd8227b300828715dd055463cdca6176c2e4036df8bd4f"}, - {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7888310f6214f19ab2b6df90f3f06afa3df7ef7355fc025e78a3044737fab1f5"}, - {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:831e648102c82f152e14c1a0938689dbb22480c548c8d4b8b248b3e50967b88c"}, - {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cc1d2451e8a3b4bfdb9caf745b58e6c7a77d2e469159b0d527a4554d73694d1"}, - {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:136659638f61a251e8ed3b331fc6ccd124590eeff539de57c5f80ef3a9594e58"}, - {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:6e8c66f70fb539301e064f6478d7453e820d8a2c631da948a23384865cd95544"}, - {file = "Pillow-9.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:37ff6b522a26d0538b753f0b4e8e164fdada12db6c6f00f62145d732d8a3152e"}, - {file = "Pillow-9.2.0-cp310-cp310-win32.whl", hash = "sha256:c79698d4cd9318d9481d89a77e2d3fcaeff5486be641e60a4b49f3d2ecca4e28"}, - {file = "Pillow-9.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:254164c57bab4b459f14c64e93df11eff5ded575192c294a0c49270f22c5d93d"}, - {file = "Pillow-9.2.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:adabc0bce035467fb537ef3e5e74f2847c8af217ee0be0455d4fec8adc0462fc"}, - {file = "Pillow-9.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:336b9036127eab855beec9662ac3ea13a4544a523ae273cbf108b228ecac8437"}, - {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50dff9cc21826d2977ef2d2a205504034e3a4563ca6f5db739b0d1026658e004"}, - {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb6259196a589123d755380b65127ddc60f4c64b21fc3bb46ce3a6ea663659b0"}, - {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b0554af24df2bf96618dac71ddada02420f946be943b181108cac55a7a2dcd4"}, - {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:15928f824870535c85dbf949c09d6ae7d3d6ac2d6efec80f3227f73eefba741c"}, - {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:bdd0de2d64688ecae88dd8935012c4a72681e5df632af903a1dca8c5e7aa871a"}, - {file = "Pillow-9.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d5b87da55a08acb586bad5c3aa3b86505f559b84f39035b233d5bf844b0834b1"}, - {file = "Pillow-9.2.0-cp311-cp311-win32.whl", hash = "sha256:b6d5e92df2b77665e07ddb2e4dbd6d644b78e4c0d2e9272a852627cdba0d75cf"}, - {file = "Pillow-9.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:6bf088c1ce160f50ea40764f825ec9b72ed9da25346216b91361eef8ad1b8f8c"}, - {file = "Pillow-9.2.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:2c58b24e3a63efd22554c676d81b0e57f80e0a7d3a5874a7e14ce90ec40d3069"}, - {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eef7592281f7c174d3d6cbfbb7ee5984a671fcd77e3fc78e973d492e9bf0eb3f"}, - {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dcd7b9c7139dc8258d164b55696ecd16c04607f1cc33ba7af86613881ffe4ac8"}, - {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a138441e95562b3c078746a22f8fca8ff1c22c014f856278bdbdd89ca36cff1b"}, - {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:93689632949aff41199090eff5474f3990b6823404e45d66a5d44304e9cdc467"}, - {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:f3fac744f9b540148fa7715a435d2283b71f68bfb6d4aae24482a890aed18b59"}, - {file = "Pillow-9.2.0-cp37-cp37m-win32.whl", hash = "sha256:fa768eff5f9f958270b081bb33581b4b569faabf8774726b283edb06617101dc"}, - {file = "Pillow-9.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:69bd1a15d7ba3694631e00df8de65a8cb031911ca11f44929c97fe05eb9b6c1d"}, - {file = "Pillow-9.2.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:030e3460861488e249731c3e7ab59b07c7853838ff3b8e16aac9561bb345da14"}, - {file = "Pillow-9.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:74a04183e6e64930b667d321524e3c5361094bb4af9083db5c301db64cd341f3"}, - {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d33a11f601213dcd5718109c09a52c2a1c893e7461f0be2d6febc2879ec2402"}, - {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fd6f5e3c0e4697fa7eb45b6e93996299f3feee73a3175fa451f49a74d092b9f"}, - {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a647c0d4478b995c5e54615a2e5360ccedd2f85e70ab57fbe817ca613d5e63b8"}, - {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:4134d3f1ba5f15027ff5c04296f13328fecd46921424084516bdb1b2548e66ff"}, - {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:bc431b065722a5ad1dfb4df354fb9333b7a582a5ee39a90e6ffff688d72f27a1"}, - {file = "Pillow-9.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:1536ad017a9f789430fb6b8be8bf99d2f214c76502becc196c6f2d9a75b01b76"}, - {file = "Pillow-9.2.0-cp38-cp38-win32.whl", hash = "sha256:2ad0d4df0f5ef2247e27fc790d5c9b5a0af8ade9ba340db4a73bb1a4a3e5fb4f"}, - {file = "Pillow-9.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:ec52c351b35ca269cb1f8069d610fc45c5bd38c3e91f9ab4cbbf0aebc136d9c8"}, - {file = "Pillow-9.2.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0ed2c4ef2451de908c90436d6e8092e13a43992f1860275b4d8082667fbb2ffc"}, - {file = "Pillow-9.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ad2f835e0ad81d1689f1b7e3fbac7b01bb8777d5a985c8962bedee0cc6d43da"}, - {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea98f633d45f7e815db648fd7ff0f19e328302ac36427343e4432c84432e7ff4"}, - {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7761afe0126d046974a01e030ae7529ed0ca6a196de3ec6937c11df0df1bc91c"}, - {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a54614049a18a2d6fe156e68e188da02a046a4a93cf24f373bffd977e943421"}, - {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:5aed7dde98403cd91d86a1115c78d8145c83078e864c1de1064f52e6feb61b20"}, - {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:13b725463f32df1bfeacbf3dd197fb358ae8ebcd8c5548faa75126ea425ccb60"}, - {file = "Pillow-9.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:808add66ea764ed97d44dda1ac4f2cfec4c1867d9efb16a33d158be79f32b8a4"}, - {file = "Pillow-9.2.0-cp39-cp39-win32.whl", hash = "sha256:337a74fd2f291c607d220c793a8135273c4c2ab001b03e601c36766005f36885"}, - {file = "Pillow-9.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:fac2d65901fb0fdf20363fbd345c01958a742f2dc62a8dd4495af66e3ff502a4"}, - {file = "Pillow-9.2.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:ad2277b185ebce47a63f4dc6302e30f05762b688f8dc3de55dbae4651872cdf3"}, - {file = "Pillow-9.2.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c7b502bc34f6e32ba022b4a209638f9e097d7a9098104ae420eb8186217ebbb"}, - {file = "Pillow-9.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d1f14f5f691f55e1b47f824ca4fdcb4b19b4323fe43cc7bb105988cad7496be"}, - {file = "Pillow-9.2.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:dfe4c1fedfde4e2fbc009d5ad420647f7730d719786388b7de0999bf32c0d9fd"}, - {file = "Pillow-9.2.0-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:f07f1f00e22b231dd3d9b9208692042e29792d6bd4f6639415d2f23158a80013"}, - {file = "Pillow-9.2.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1802f34298f5ba11d55e5bb09c31997dc0c6aed919658dfdf0198a2fe75d5490"}, - {file = "Pillow-9.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17d4cafe22f050b46d983b71c707162d63d796a1235cdf8b9d7a112e97b15bac"}, - {file = "Pillow-9.2.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:96b5e6874431df16aee0c1ba237574cb6dff1dcb173798faa6a9d8b399a05d0e"}, - {file = "Pillow-9.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:0030fdbd926fb85844b8b92e2f9449ba89607231d3dd597a21ae72dc7fe26927"}, - {file = "Pillow-9.2.0.tar.gz", hash = "sha256:75e636fd3e0fb872693f23ccb8a5ff2cd578801251f3a4f6854c6a5d437d3c04"}, + {file = "Pillow-9.4.0-1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1b4b4e9dda4f4e4c4e6896f93e84a8f0bcca3b059de9ddf67dac3c334b1195e1"}, + {file = "Pillow-9.4.0-1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:fb5c1ad6bad98c57482236a21bf985ab0ef42bd51f7ad4e4538e89a997624e12"}, + {file = "Pillow-9.4.0-1-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:f0caf4a5dcf610d96c3bd32932bfac8aee61c96e60481c2a0ea58da435e25acd"}, + {file = "Pillow-9.4.0-1-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:3f4cc516e0b264c8d4ccd6b6cbc69a07c6d582d8337df79be1e15a5056b258c9"}, + {file = "Pillow-9.4.0-1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:b8c2f6eb0df979ee99433d8b3f6d193d9590f735cf12274c108bd954e30ca858"}, + {file = "Pillow-9.4.0-1-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b70756ec9417c34e097f987b4d8c510975216ad26ba6e57ccb53bc758f490dab"}, + {file = "Pillow-9.4.0-1-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:43521ce2c4b865d385e78579a082b6ad1166ebed2b1a2293c3be1d68dd7ca3b9"}, + {file = "Pillow-9.4.0-2-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:9d9a62576b68cd90f7075876f4e8444487db5eeea0e4df3ba298ee38a8d067b0"}, + {file = "Pillow-9.4.0-2-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:87708d78a14d56a990fbf4f9cb350b7d89ee8988705e58e39bdf4d82c149210f"}, + {file = "Pillow-9.4.0-2-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:8a2b5874d17e72dfb80d917213abd55d7e1ed2479f38f001f264f7ce7bae757c"}, + {file = "Pillow-9.4.0-2-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:83125753a60cfc8c412de5896d10a0a405e0bd88d0470ad82e0869ddf0cb3848"}, + {file = "Pillow-9.4.0-2-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:9e5f94742033898bfe84c93c831a6f552bb629448d4072dd312306bab3bd96f1"}, + {file = "Pillow-9.4.0-2-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:013016af6b3a12a2f40b704677f8b51f72cb007dac785a9933d5c86a72a7fe33"}, + {file = "Pillow-9.4.0-2-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:99d92d148dd03fd19d16175b6d355cc1b01faf80dae93c6c3eb4163709edc0a9"}, + {file = "Pillow-9.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:2968c58feca624bb6c8502f9564dd187d0e1389964898f5e9e1fbc8533169157"}, + {file = "Pillow-9.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c5c1362c14aee73f50143d74389b2c158707b4abce2cb055b7ad37ce60738d47"}, + {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd752c5ff1b4a870b7661234694f24b1d2b9076b8bf337321a814c612665f343"}, + {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a3049a10261d7f2b6514d35bbb7a4dfc3ece4c4de14ef5876c4b7a23a0e566d"}, + {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16a8df99701f9095bea8a6c4b3197da105df6f74e6176c5b410bc2df2fd29a57"}, + {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:94cdff45173b1919350601f82d61365e792895e3c3a3443cf99819e6fbf717a5"}, + {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ed3e4b4e1e6de75fdc16d3259098de7c6571b1a6cc863b1a49e7d3d53e036070"}, + {file = "Pillow-9.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5b2f8a31bd43e0f18172d8ac82347c8f37ef3e0b414431157718aa234991b28"}, + {file = "Pillow-9.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:09b89ddc95c248ee788328528e6a2996e09eaccddeeb82a5356e92645733be35"}, + {file = "Pillow-9.4.0-cp310-cp310-win32.whl", hash = "sha256:f09598b416ba39a8f489c124447b007fe865f786a89dbfa48bb5cf395693132a"}, + {file = "Pillow-9.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:f6e78171be3fb7941f9910ea15b4b14ec27725865a73c15277bc39f5ca4f8391"}, + {file = "Pillow-9.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:3fa1284762aacca6dc97474ee9c16f83990b8eeb6697f2ba17140d54b453e133"}, + {file = "Pillow-9.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:eaef5d2de3c7e9b21f1e762f289d17b726c2239a42b11e25446abf82b26ac132"}, + {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4dfdae195335abb4e89cc9762b2edc524f3c6e80d647a9a81bf81e17e3fb6f0"}, + {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6abfb51a82e919e3933eb137e17c4ae9c0475a25508ea88993bb59faf82f3b35"}, + {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:451f10ef963918e65b8869e17d67db5e2f4ab40e716ee6ce7129b0cde2876eab"}, + {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:6663977496d616b618b6cfa43ec86e479ee62b942e1da76a2c3daa1c75933ef4"}, + {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:60e7da3a3ad1812c128750fc1bc14a7ceeb8d29f77e0a2356a8fb2aa8925287d"}, + {file = "Pillow-9.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:19005a8e58b7c1796bc0167862b1f54a64d3b44ee5d48152b06bb861458bc0f8"}, + {file = "Pillow-9.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f715c32e774a60a337b2bb8ad9839b4abf75b267a0f18806f6f4f5f1688c4b5a"}, + {file = "Pillow-9.4.0-cp311-cp311-win32.whl", hash = "sha256:b222090c455d6d1a64e6b7bb5f4035c4dff479e22455c9eaa1bdd4c75b52c80c"}, + {file = "Pillow-9.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:ba6612b6548220ff5e9df85261bddc811a057b0b465a1226b39bfb8550616aee"}, + {file = "Pillow-9.4.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:5f532a2ad4d174eb73494e7397988e22bf427f91acc8e6ebf5bb10597b49c493"}, + {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dd5a9c3091a0f414a963d427f920368e2b6a4c2f7527fdd82cde8ef0bc7a327"}, + {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef21af928e807f10bf4141cad4746eee692a0dd3ff56cfb25fce076ec3cc8abe"}, + {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:847b114580c5cc9ebaf216dd8c8dbc6b00a3b7ab0131e173d7120e6deade1f57"}, + {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:653d7fb2df65efefbcbf81ef5fe5e5be931f1ee4332c2893ca638c9b11a409c4"}, + {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:46f39cab8bbf4a384ba7cb0bc8bae7b7062b6a11cfac1ca4bc144dea90d4a9f5"}, + {file = "Pillow-9.4.0-cp37-cp37m-win32.whl", hash = "sha256:7ac7594397698f77bce84382929747130765f66406dc2cd8b4ab4da68ade4c6e"}, + {file = "Pillow-9.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:46c259e87199041583658457372a183636ae8cd56dbf3f0755e0f376a7f9d0e6"}, + {file = "Pillow-9.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:0e51f608da093e5d9038c592b5b575cadc12fd748af1479b5e858045fff955a9"}, + {file = "Pillow-9.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:765cb54c0b8724a7c12c55146ae4647e0274a839fb6de7bcba841e04298e1011"}, + {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:519e14e2c49fcf7616d6d2cfc5c70adae95682ae20f0395e9280db85e8d6c4df"}, + {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d197df5489004db87d90b918033edbeee0bd6df3848a204bca3ff0a903bef837"}, + {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0845adc64fe9886db00f5ab68c4a8cd933ab749a87747555cec1c95acea64b0b"}, + {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:e1339790c083c5a4de48f688b4841f18df839eb3c9584a770cbd818b33e26d5d"}, + {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:a96e6e23f2b79433390273eaf8cc94fec9c6370842e577ab10dabdcc7ea0a66b"}, + {file = "Pillow-9.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:7cfc287da09f9d2a7ec146ee4d72d6ea1342e770d975e49a8621bf54eaa8f30f"}, + {file = "Pillow-9.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d7081c084ceb58278dd3cf81f836bc818978c0ccc770cbbb202125ddabec6628"}, + {file = "Pillow-9.4.0-cp38-cp38-win32.whl", hash = "sha256:df41112ccce5d47770a0c13651479fbcd8793f34232a2dd9faeccb75eb5d0d0d"}, + {file = "Pillow-9.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:7a21222644ab69ddd9967cfe6f2bb420b460dae4289c9d40ff9a4896e7c35c9a"}, + {file = "Pillow-9.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0f3269304c1a7ce82f1759c12ce731ef9b6e95b6df829dccd9fe42912cc48569"}, + {file = "Pillow-9.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cb362e3b0976dc994857391b776ddaa8c13c28a16f80ac6522c23d5257156bed"}, + {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2e0f87144fcbbe54297cae708c5e7f9da21a4646523456b00cc956bd4c65815"}, + {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:28676836c7796805914b76b1837a40f76827ee0d5398f72f7dcc634bae7c6264"}, + {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0884ba7b515163a1a05440a138adeb722b8a6ae2c2b33aea93ea3118dd3a899e"}, + {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:53dcb50fbdc3fb2c55431a9b30caeb2f7027fcd2aeb501459464f0214200a503"}, + {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:e8c5cf126889a4de385c02a2c3d3aba4b00f70234bfddae82a5eaa3ee6d5e3e6"}, + {file = "Pillow-9.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6c6b1389ed66cdd174d040105123a5a1bc91d0aa7059c7261d20e583b6d8cbd2"}, + {file = "Pillow-9.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0dd4c681b82214b36273c18ca7ee87065a50e013112eea7d78c7a1b89a739153"}, + {file = "Pillow-9.4.0-cp39-cp39-win32.whl", hash = "sha256:6d9dfb9959a3b0039ee06c1a1a90dc23bac3b430842dcb97908ddde05870601c"}, + {file = "Pillow-9.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:54614444887e0d3043557d9dbc697dbb16cfb5a35d672b7a0fcc1ed0cf1c600b"}, + {file = "Pillow-9.4.0-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b9b752ab91e78234941e44abdecc07f1f0d8f51fb62941d32995b8161f68cfe5"}, + {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3b56206244dc8711f7e8b7d6cad4663917cd5b2d950799425076681e8766286"}, + {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aabdab8ec1e7ca7f1434d042bf8b1e92056245fb179790dc97ed040361f16bfd"}, + {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:db74f5562c09953b2c5f8ec4b7dfd3f5421f31811e97d1dbc0a7c93d6e3a24df"}, + {file = "Pillow-9.4.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e9d7747847c53a16a729b6ee5e737cf170f7a16611c143d95aa60a109a59c336"}, + {file = "Pillow-9.4.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b52ff4f4e002f828ea6483faf4c4e8deea8d743cf801b74910243c58acc6eda3"}, + {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:575d8912dca808edd9acd6f7795199332696d3469665ef26163cd090fa1f8bfa"}, + {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3c4ed2ff6760e98d262e0cc9c9a7f7b8a9f61aa4d47c58835cdaf7b0b8811bb"}, + {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e621b0246192d3b9cb1dc62c78cfa4c6f6d2ddc0ec207d43c0dedecb914f152a"}, + {file = "Pillow-9.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8f127e7b028900421cad64f51f75c051b628db17fb00e099eb148761eed598c9"}, + {file = "Pillow-9.4.0.tar.gz", hash = "sha256:a1c2d7780448eb93fbcc3789bf3916aa5720d942e37945f4056680317f1cd23e"}, ] platformdirs = [ {file = "platformdirs-3.0.0-py3-none-any.whl", hash = "sha256:b1d5eb14f221506f50d6604a561f4c5786d9e80355219694a1b244bcd96f4567"}, diff --git a/daemon/pyproject.toml b/daemon/pyproject.toml index 48a3590b..0ed7ba61 100644 --- a/daemon/pyproject.toml +++ b/daemon/pyproject.toml @@ -33,7 +33,7 @@ netaddr = "0.7.19" protobuf = "4.21.9" pyproj = "3.3.1" pyyaml = "5.4" -Pillow = "9.2.0" +Pillow = "9.4.0" Mako = "1.2.3" [tool.poetry.group.dev.dependencies] From d09f777645185416d3f198507b4fa78ef38f0df0 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Tue, 7 Mar 2023 10:43:11 -0800 Subject: [PATCH 03/70] update centos dockerfile to avoid installing unwanted python system packages --- dockerfiles/Dockerfile.centos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dockerfiles/Dockerfile.centos b/dockerfiles/Dockerfile.centos index c8e8982b..6a33039c 100644 --- a/dockerfiles/Dockerfile.centos +++ b/dockerfiles/Dockerfile.centos @@ -43,7 +43,7 @@ RUN wget https://www.python.org/ftp/python/3.9.15/Python-3.9.15.tgz && \ RUN git clone https://github.com/coreemu/core && \ cd core && \ git checkout ${BRANCH} && \ - PYTHON=/usr/local/bin/python3.9 ./setup.sh && \ + NO_SYSTEM=1 PYTHON=/usr/local/bin/python3.9 ./setup.sh && \ . /root/.bashrc && PYTHON=/usr/local/bin/python3.9 inv install -v -p ${PREFIX} --no-python # install emane From 785cf82ba3955d87e42353d27d5786394ba75f31 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Tue, 7 Mar 2023 10:46:31 -0800 Subject: [PATCH 04/70] docs: added complete install examples based on dockerfile commands --- docs/install.md | 9 +++ docs/install_centos.md | 140 +++++++++++++++++++++++++++++++++++++++++ docs/install_ubuntu.md | 112 +++++++++++++++++++++++++++++++++ 3 files changed, 261 insertions(+) create mode 100644 docs/install_centos.md create mode 100644 docs/install_ubuntu.md diff --git a/docs/install.md b/docs/install.md index b3890cf7..1d03fb6a 100644 --- a/docs/install.md +++ b/docs/install.md @@ -85,6 +85,15 @@ sudo yum remove core sudo apt remove core ``` +## Installation Examples + +The below links will take you to sections providing complete examples for installing +CORE and related utilities on fresh installations. Otherwise, a breakdown for installing +different components and the options available are detailed below. + +* [Ubuntu 22.04](install_ubuntu.md) +* [CentOS 7](install_centos.md) + ## Package Based Install Starting with 9.0.0 there are pre-built rpm/deb packages. You can retrieve the diff --git a/docs/install_centos.md b/docs/install_centos.md new file mode 100644 index 00000000..c84e3074 --- /dev/null +++ b/docs/install_centos.md @@ -0,0 +1,140 @@ +# Install CentOS + +Below is a detailed path for installing CORE and related tooling on a fresh +CentOS 7 install. Both of the examples below will install CORE into its +own virtual environment located at **/opt/core/venv**. Both examples below +also assume using **~/Documents** as the working directory. + +## Script Install + +This section covers step by step commands that can be used to install CORE using +the script based installation path. + +``` shell +# install system packages +sudo yum -y update +sudo yum install -y git sudo wget tzdata unzip libpcap-devel libpcre3-devel \ + libxml2-devel protobuf-devel unzip uuid-devel tcpdump make epel-release +sudo yum-builddep -y python3 + +# install python3.9 +cd ~/Documents +wget https://www.python.org/ftp/python/3.9.15/Python-3.9.15.tgz +tar xf Python-3.9.15.tgz +cd Python-3.9.15 +./configure --enable-optimizations --with-ensurepip=install +sudo make -j$(nproc) altinstall +python3.9 -m pip install --upgrade pip + +# install core +cd ~/Documents +git clone https://github.com/coreemu/core +cd core +NO_SYSTEM=1 PYTHON=/usr/local/bin/python3.9 ./setup.sh +source ~/.bashrc +PYTHON=python3.9 inv install -p /usr --no-python + +# install emane +cd ~/Documents +wget -q https://adjacentlink.com/downloads/emane/emane-1.3.3-release-1.el7.x86_64.tar.gz +tar xf emane-1.3.3-release-1.el7.x86_64.tar.gz +cd emane-1.3.3-release-1/rpms/el7/x86_64 +sudo yum install -y ./openstatistic*.rpm ./emane*.rpm ./python3-emane_*.rpm + +# install emane python bindings into CORE virtual environment +cd ~/Documents +wget https://github.com/protocolbuffers/protobuf/releases/download/v3.19.6/protoc-3.19.6-linux-x86_64.zip +mkdir protoc +unzip protoc-3.19.6-linux-x86_64.zip -d protoc +git clone https://github.com/adjacentlink/emane.git +cd emane +git checkout v1.3.3 +./autogen.sh +PYTHON=/opt/core/venv/bin/python ./configure --prefix=/usr +cd src/python +PATH=~/Documents/protoc/bin:$PATH make +sudo /opt/core/venv/bin/python -m pip install . +``` + +## Package Install + +This section covers step by step commands that can be used to install CORE using +the package based installation path. This will require downloading a package from the release +page, to use during the install CORE step below. + +``` shell +# install system packages +sudo yum -y update +sudo yum install -y git sudo wget tzdata unzip libpcap-devel libpcre3-devel libxml2-devel \ + protobuf-devel unzip uuid-devel tcpdump automake gawk libreadline-devel libtool \ + pkg-config make +sudo yum-builddep -y python3 + +# install python3.9 +cd ~/Documents +wget https://www.python.org/ftp/python/3.9.15/Python-3.9.15.tgz +tar xf Python-3.9.15.tgz +cd Python-3.9.15 +./configure --enable-optimizations --with-ensurepip=install +sudo make -j$(nproc) altinstall +python3.9 -m pip install --upgrade pip + +# install core +cd ~/Documents +sudo PYTHON=python3.9 yum install -y ./core_*.rpm + +# install ospf mdr +cd ~/Documents +git clone https://github.com/USNavalResearchLaboratory/ospf-mdr.git +cd ospf-mdr +./bootstrap.sh +./configure --disable-doc --enable-user=root --enable-group=root \ + --with-cflags=-ggdb --sysconfdir=/usr/local/etc/quagga --enable-vtysh \ + --localstatedir=/var/run/quagga +make -j$(nproc) +sudo make install + +# install emane +cd ~/Documents +wget -q https://adjacentlink.com/downloads/emane/emane-1.3.3-release-1.el7.x86_64.tar.gz +tar xf emane-1.3.3-release-1.el7.x86_64.tar.gz +cd emane-1.3.3-release-1/rpms/el7/x86_64 +sudo yum install -y ./openstatistic*.rpm ./emane*.rpm ./python3-emane_*.rpm + +# install emane python bindings into CORE virtual environment +cd ~/Documents +wget https://github.com/protocolbuffers/protobuf/releases/download/v3.19.6/protoc-3.19.6-linux-x86_64.zip +mkdir protoc +unzip protoc-3.19.6-linux-x86_64.zip -d protoc +git clone https://github.com/adjacentlink/emane.git +cd emane +git checkout v1.3.3 +./autogen.sh +PYTHON=/opt/core/venv/bin/python ./configure --prefix=/usr +cd src/python +PATH=~/Documents/protoc/bin:$PATH make +sudo /opt/core/venv/bin/python -m pip install . +``` + +## Setup PATH + +The CORE virtual environment and related scripts will not be found on your PATH, +so some adjustments needs to be made. + +To add support for your user to run scripts from the virtual environment: +```shell +# can add to ~/.bashrc +export PATH=$PATH:/opt/core/venv/bin +``` + +This will not solve the path issue when running as sudo, so you can do either +of the following to compensate. +```shell +# run command passing in the right PATH to pickup from the user running the command +sudo env PATH=$PATH core-daemon + +# add an alias to ~/.bashrc or something similar +alias sudop='sudo env PATH=$PATH' +# now you can run commands like so +sudop core-daemon +``` diff --git a/docs/install_ubuntu.md b/docs/install_ubuntu.md new file mode 100644 index 00000000..03b9667a --- /dev/null +++ b/docs/install_ubuntu.md @@ -0,0 +1,112 @@ +# Install Ubuntu + +Below is a detailed path for installing CORE and related tooling on a fresh +Ubuntu 22.04 install. Both of the examples below will install CORE into its +own virtual environment located at **/opt/core/venv**. Both examples below +also assume using **~/Documents** as the working directory. + +## Script Install + +This section covers step by step commands that can be used to install CORE using +the script based installation path. + +``` shell +# install system packages +sudo apt-get update -y +sudo apt-get install -y ca-certificates git sudo wget tzdata libpcap-dev libpcre3-dev \ + libprotobuf-dev libxml2-dev protobuf-compiler unzip uuid-dev iproute2 iputils-ping \ + tcpdump + +# install core +cd ~/Documents +git clone https://github.com/coreemu/core +cd core +./setup.sh +source ~/.bashrc +inv install + +# install emane +cd ~/Documents +wget https://github.com/protocolbuffers/protobuf/releases/download/v3.19.6/protoc-3.19.6-linux-x86_64.zip +mkdir protoc +unzip protoc-3.19.6-linux-x86_64.zip -d protoc +git clone https://github.com/adjacentlink/emane.git +cd emane +./autogen.sh +./configure --prefix=/usr +make -j$(nproc) +sudo make install +cd src/python +make clean +PATH=~/Documents/protoc/bin:$PATH make +sudo /opt/core/venv/bin/python -m pip install . +``` + +## Package Install + +This section covers step by step commands that can be used to install CORE using +the package based installation path. This will require downloading a package from the release +page, to use during the install CORE step below. + +``` shell +# install system packages +sudo apt-get update -y +sudo apt-get install -y ca-certificates python3 python3-tk python3-pip python3-venv \ + libpcap-dev libpcre3-dev libprotobuf-dev libxml2-dev protobuf-compiler unzip \ + uuid-dev automake gawk git wget libreadline-dev libtool pkg-config g++ make \ + iputils-ping tcpdump + +# install core +cd ~/Documents +sudo apt-get install -y ./core_*.deb + +# install ospf mdr +cd ~/Documents +git clone https://github.com/USNavalResearchLaboratory/ospf-mdr.git +cd ospf-mdr +./bootstrap.sh +./configure --disable-doc --enable-user=root --enable-group=root \ + --with-cflags=-ggdb --sysconfdir=/usr/local/etc/quagga --enable-vtysh \ + --localstatedir=/var/run/quagga +make -j$(nproc) +sudo make install + +# install emane +cd ~/Documents +wget https://github.com/protocolbuffers/protobuf/releases/download/v3.19.6/protoc-3.19.6-linux-x86_64.zip +mkdir protoc +unzip protoc-3.19.6-linux-x86_64.zip -d protoc +git clone https://github.com/adjacentlink/emane.git +cd emane +./autogen.sh +./configure --prefix=/usr +make -j$(nproc) +sudo make install +cd src/python +make clean +PATH=~/Documents/protoc/bin:$PATH make +sudo /opt/core/venv/bin/python -m pip install . +``` + +## Setup PATH + +The CORE virtual environment and related scripts will not be found on your PATH, +so some adjustments needs to be made. + +To add support for your user to run scripts from the virtual environment: +```shell +# can add to ~/.bashrc +export PATH=$PATH:/opt/core/venv/bin +``` + +This will not solve the path issue when running as sudo, so you can do either +of the following to compensate. +```shell +# run command passing in the right PATH to pickup from the user running the command +sudo env PATH=$PATH core-daemon + +# add an alias to ~/.bashrc or something similar +alias sudop='sudo env PATH=$PATH' +# now you can run commands like so +sudop core-daemon +``` From 078e0df32923d05eec22ae9e2e8d577521021b91 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Tue, 7 Mar 2023 21:49:50 -0800 Subject: [PATCH 05/70] docs: initial changes to support using mkdocs material --- .gitignore | 3 ++ docs/architecture.md | 27 ++++++------- docs/configservices.md | 9 ++--- docs/ctrlnet.md | 37 ++++++++---------- docs/devguide.md | 9 ++--- docs/distributed.md | 11 +++--- docs/docker.md | 7 ++-- docs/emane.md | 28 +++++++------- docs/grpc.md | 34 +++++++++++----- docs/gui.md | 88 ++++++++++++++++++++---------------------- docs/index.md | 18 --------- docs/install.md | 56 ++++++++++++++++++++------- docs/install_centos.md | 4 ++ docs/install_ubuntu.md | 6 ++- docs/lxc.md | 2 + docs/nodetypes.md | 5 +-- docs/performance.md | 10 ++--- docs/python.md | 3 -- docs/services.md | 27 ++++++------- mkdocs.yml | 56 +++++++++++++++++++++++++++ 20 files changed, 253 insertions(+), 187 deletions(-) create mode 100644 mkdocs.yml diff --git a/.gitignore b/.gitignore index beb83c13..ca4c07dd 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,9 @@ configure~ debian stamp-h1 +# python virtual environments +venv + # generated protobuf files *_pb2.py *_pb2_grpc.py diff --git a/docs/architecture.md b/docs/architecture.md index 410b37ac..b9c5c91c 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -1,25 +1,22 @@ # CORE Architecture -* Table of Contents -{:toc} - ## Main Components * core-daemon - * Manages emulated sessions of nodes and links for a given network - * Nodes are created using Linux namespaces - * Links are created using Linux bridges and virtual ethernet peers - * Packets sent over links are manipulated using traffic control - * Provides gRPC API + * Manages emulated sessions of nodes and links for a given network + * Nodes are created using Linux namespaces + * Links are created using Linux bridges and virtual ethernet peers + * Packets sent over links are manipulated using traffic control + * Provides gRPC API * core-gui - * GUI and daemon communicate over gRPC API - * Drag and drop creation for nodes and links - * Can launch terminals for emulated nodes in running sessions - * Can save/open scenario files to recreate previous sessions + * GUI and daemon communicate over gRPC API + * Drag and drop creation for nodes and links + * Can launch terminals for emulated nodes in running sessions + * Can save/open scenario files to recreate previous sessions * vnoded - * Command line utility for creating CORE node namespaces + * Command line utility for creating CORE node namespaces * vcmd - * Command line utility for sending shell commands to nodes + * Command line utility for sending shell commands to nodes ![](static/architecture.png) @@ -57,5 +54,5 @@ rules. CORE has been released by Boeing to the open source community under the BSD license. If you find CORE useful for your work, please contribute back to the project. Contributions can be as simple as reporting a bug, dropping a line of -encouragement, or can also include submitting patches or maintaining aspects +encouragement, or can also include submitting patches or maintaining aspects of the tool. diff --git a/docs/configservices.md b/docs/configservices.md index f0fa7bdd..9a6525e7 100644 --- a/docs/configservices.md +++ b/docs/configservices.md @@ -1,7 +1,4 @@ -# CORE Config Services - -* Table of Contents -{:toc} +# Config Services ## Overview @@ -15,6 +12,7 @@ CORE services are a convenience for creating reusable dynamic scripts to run on nodes, for carrying out specific task(s). This boilds down to the following functions: + * generating files the service will use, either directly for commands or for configuration * command(s) for starting a service * command(s) for validating a service @@ -121,6 +119,7 @@ from typing import Dict, List from core.config import ConfigString, ConfigBool, Configuration from core.configservice.base import ConfigService, ConfigServiceMode, ShadowDir + # class that subclasses ConfigService class ExampleService(ConfigService): # unique name for your service within CORE @@ -129,7 +128,7 @@ class ExampleService(ConfigService): group: str = "ExampleGroup" # directories that the service should shadow mount, hiding the system directory directories: List[str] = [ - "/usr/local/core", + "/usr/local/core", ] # files that this service should generate, defaults to nodes home directory # or can provide an absolute path to a mounted directory diff --git a/docs/ctrlnet.md b/docs/ctrlnet.md index 9ecc2e3f..0aeb1b32 100644 --- a/docs/ctrlnet.md +++ b/docs/ctrlnet.md @@ -1,13 +1,10 @@ # CORE Control Network -* Table of Contents -{:toc} - ## Overview The CORE control network allows the virtual nodes to communicate with their host environment. There are two types: the primary control network and -auxiliary control networks. The primary control network is used mainly for +auxiliary control networks. The primary control network is used mainly for communicating with the virtual nodes from host machines and for master-slave communications in a multi-server distributed environment. Auxiliary control networks have been introduced to for routing namespace hosted emulation @@ -31,14 +28,14 @@ control networks, the session option should be used instead of the *core.conf* default. > **NOTE:** If you have a large scenario with more than 253 nodes, use a control -network prefix that allows more than the suggested */24*, such as */23* or -greater. +> network prefix that allows more than the suggested */24*, such as */23* or +> greater. > **NOTE:** Running a session with a control network can fail if a previous -session has set up a control network and the its bridge is still up. Close -the previous session first or wait for it to complete. If unable to, the +> session has set up a control network and the its bridge is still up. Close +> the previous session first or wait for it to complete. If unable to, the *core-daemon* may need to be restarted and the lingering bridge(s) removed -manually. +> manually. ```shell # Restart the CORE Daemon @@ -54,8 +51,8 @@ done > **NOTE:** If adjustments to the primary control network configuration made in */etc/core/core.conf* do not seem to take affect, check if there is anything -set in the *Session Menu*, the *Options...* dialog. They may need to be -cleared. These per session settings override the defaults in +> set in the *Session Menu*, the *Options...* dialog. They may need to be +> cleared. These per session settings override the defaults in */etc/core/core.conf*. ## Control Network in Distributed Sessions @@ -102,9 +99,9 @@ argument being the keyword *"shutdown"*. Starting with EMANE 0.9.2, CORE will run EMANE instances within namespaces. Since it is advisable to separate the OTA traffic from other traffic, we will need more than single channel leading out from the namespace. Up to three -auxiliary control networks may be defined. Multiple control networks are set -up in */etc/core/core.conf* file. Lines *controlnet1*, *controlnet2* and -*controlnet3* define the auxiliary networks. +auxiliary control networks may be defined. Multiple control networks are set +up in */etc/core/core.conf* file. Lines *controlnet1*, *controlnet2* and +*controlnet3* define the auxiliary networks. For example, having the following */etc/core/core.conf*: @@ -114,18 +111,18 @@ controlnet1 = core1:172.18.1.0/24 core2:172.18.2.0/24 core3:172.18.3.0/24 controlnet2 = core1:172.19.1.0/24 core2:172.19.2.0/24 core3:172.19.3.0/24 ``` -This will activate the primary and two auxiliary control networks and add +This will activate the primary and two auxiliary control networks and add interfaces *ctrl0*, *ctrl1*, *ctrl2* to each node. One use case would be to assign *ctrl1* to the OTA manager device and *ctrl2* to the Event Service device in the EMANE Options dialog box and leave *ctrl0* for CORE control traffic. > **NOTE:** *controlnet0* may be used in place of *controlnet* to configure ->the primary control network. +> the primary control network. Unlike the primary control network, the auxiliary control networks will not -employ tunneling since their primary purpose is for efficiently transporting -multicast EMANE OTA and event traffic. Note that there is no per-session +employ tunneling since their primary purpose is for efficiently transporting +multicast EMANE OTA and event traffic. Note that there is no per-session configuration for auxiliary control networks. To extend the auxiliary control networks across a distributed test @@ -140,8 +137,8 @@ controlnetif3 = eth3 ``` > **NOTE:** There is no need to assign an interface to the primary control ->network because tunnels are formed between the master and the slaves using IP ->addresses that are provided in *servers.conf*. +> network because tunnels are formed between the master and the slaves using IP +> addresses that are provided in *servers.conf*. Shown below is a representative diagram of the configuration above. diff --git a/docs/devguide.md b/docs/devguide.md index 160e4969..4fa43977 100644 --- a/docs/devguide.md +++ b/docs/devguide.md @@ -1,9 +1,6 @@ # CORE Developer's Guide -* Table of Contents -{:toc} - -## Repository Overview +## Overview The CORE source consists of several programming languages for historical reasons. Current development focuses on the Python modules and @@ -65,7 +62,7 @@ inv test-mock ## Linux Network Namespace Commands Linux network namespace containers are often managed using the *Linux Container Tools* or *lxc-tools* package. -The lxc-tools website is available here http://lxc.sourceforge.net/ for more information. CORE does not use these +The lxc-tools website is available here http://lxc.sourceforge.net/ for more information. CORE does not use these management utilities, but includes its own set of tools for instantiating and configuring network namespace containers. This section describes these tools. @@ -100,7 +97,7 @@ vcmd -c /tmp/pycore.50160/n1 -- /sbin/ip -4 ro A script named *core-cleanup* is provided to clean up any running CORE emulations. It will attempt to kill any remaining vnoded processes, kill any EMANE processes, remove the :file:`/tmp/pycore.*` session directories, and remove -any bridges or *nftables* rules. With a *-d* option, it will also kill any running CORE daemon. +any bridges or *nftables* rules. With a *-d* option, it will also kill any running CORE daemon. ### netns command diff --git a/docs/distributed.md b/docs/distributed.md index 65429f03..ca1b64e5 100644 --- a/docs/distributed.md +++ b/docs/distributed.md @@ -1,8 +1,5 @@ # CORE - Distributed Emulation -* Table of Contents -{:toc} - ## Overview A large emulation scenario can be deployed on multiple emulation servers and @@ -61,6 +58,7 @@ First the distributed servers must be configured to allow passwordless root login over SSH. On distributed server: + ```shelll # install openssh-server sudo apt install openssh-server @@ -81,6 +79,7 @@ sudo systemctl restart sshd ``` On master server: + ```shell # install package if needed sudo apt install openssh-client @@ -99,6 +98,7 @@ connect_kwargs: {"key_filename": "/home/user/.ssh/core"} ``` On distributed server: + ```shell # open sshd config vi /etc/ssh/sshd_config @@ -116,8 +116,9 @@ Make sure the value used below is the absolute path to the file generated above **~/.ssh/core**" Add/update the fabric configuration file **/etc/fabric.yml**: + ```yaml -connect_kwargs: {"key_filename": "/home/user/.ssh/core"} +connect_kwargs: { "key_filename": "/home/user/.ssh/core" } ``` ## Add Emulation Servers in GUI @@ -183,7 +184,7 @@ These tunnels are created using GRE tunneling, similar to the Tunnel Tool. 1. Install CORE on master server 1. Install distributed CORE package on all servers needed 1. Installed and configure public-key SSH access on all servers (if you want to use -double-click shells or Widgets.) for both the GUI user (for terminals) and root for running CORE commands + double-click shells or Widgets.) for both the GUI user (for terminals) and root for running CORE commands 1. Update CORE configuration as needed 1. Choose the servers that participate in distributed emulation. 1. Assign nodes to desired servers, empty for master server. diff --git a/docs/docker.md b/docs/docker.md index 0c730369..562fd453 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -15,7 +15,6 @@ sudo apt install docker.io ### RHEL Systems - ## Configuration Custom configuration required to avoid iptable rules being added and removing @@ -26,8 +25,8 @@ Place the file below in **/etc/docker/docker.json** ```json { - "bridge": "none", - "iptables": false + "bridge": "none", + "iptables": false } ``` @@ -53,6 +52,7 @@ Images used by Docker nodes in CORE need to have networking tools installed for CORE to automate setup and configuration of the network within the container. Example Dockerfile: + ``` FROM ubuntu:latest RUN apt-get update @@ -60,6 +60,7 @@ RUN apt-get install -y iproute2 ethtool ``` Build image: + ```shell sudo docker build -t . ``` diff --git a/docs/emane.md b/docs/emane.md index 7f83aa25..de3d65a6 100644 --- a/docs/emane.md +++ b/docs/emane.md @@ -1,7 +1,4 @@ -# CORE/EMANE - -* Table of Contents -{:toc} +# EMANE (Extendable Mobile Ad-hoc Network Emulator) ## What is EMANE? @@ -31,7 +28,7 @@ and instantiates one EMANE process in the namespace. The EMANE process binds a user space socket to the TAP device for sending and receiving data from CORE. An EMANE instance sends and receives OTA (Over-The-Air) traffic to and from -other EMANE instances via a control port (e.g. *ctrl0*, *ctrl1*). It also +other EMANE instances via a control port (e.g. *ctrl0*, *ctrl1*). It also sends and receives Events to and from the Event Service using the same or a different control port. EMANE models are configured through the GUI's configuration dialog. A corresponding EmaneModel Python class is sub-classed @@ -93,7 +90,7 @@ want to have CORE subscribe to EMANE location events, set the following line in the **core.conf** configuration file. > **NOTE:** Do not set this option to True if you want to manually drag nodes around -on the canvas to update their location in EMANE. +> on the canvas to update their location in EMANE. ```shell emane_event_monitor = True @@ -104,6 +101,7 @@ prefix will place the DTD files in **/usr/local/share/emane/dtd** while CORE expects them in **/usr/share/emane/dtd**. Update the EMANE prefix configuration to resolve this problem. + ```shell emane_prefix = /usr/local ``` @@ -116,6 +114,7 @@ placed within the path defined by **emane_models_dir** in the CORE configuration file. This path cannot end in **/emane**. Here is an example model with documentation describing functionality: + ```python """ Example custom emane model. @@ -210,7 +209,7 @@ The EMANE models should be listed here for selection. (You may need to restart t CORE daemon if it was running prior to installing the EMANE Python bindings.) When an EMANE model is selected, you can click on the models option button -causing the GUI to query the CORE daemon for configuration items. +causing the GUI to query the CORE daemon for configuration items. Each model will have different parameters, refer to the EMANE documentation for an explanation of each item. The defaults values are presented in the dialog. Clicking *Apply* and *Apply* again will store the @@ -220,7 +219,7 @@ The RF-PIPE and IEEE 802.11abg models use a Universal PHY that supports geographic location information for determining pathloss between nodes. A default latitude and longitude location is provided by CORE and this location-based pathloss is enabled by default; this is the *pathloss mode* -setting for the Universal PHY. Moving a node on the canvas while the +setting for the Universal PHY. Moving a node on the canvas while the emulation is running generates location events for EMANE. To view or change the geographic location or scale of the canvas use the *Canvas Size and Scale* dialog available from the *Canvas* menu. @@ -237,7 +236,7 @@ to be created in the virtual nodes that are linked to the EMANE WLAN. These devices appear with interface names such as eth0, eth1, etc. The EMANE processes should now be running in each namespace. -To view the configuration generated by CORE, look in the */tmp/pycore.nnnnn/* session +To view the configuration generated by CORE, look in the */tmp/pycore.nnnnn/* session directory to find the generated EMANE xml files. One easy way to view this information is by double-clicking one of the virtual nodes and listing the files in the shell. @@ -281,12 +280,11 @@ being used, along with changing any configuration setting from their defaults. > **NOTE:** Here is a quick checklist for distributed emulation with EMANE. - 1. Follow the steps outlined for normal CORE. - 2. Assign nodes to desired servers - 3. Synchronize your machine's clocks prior to starting the emulation, - using *ntp* or *ptp*. Some EMANE models are sensitive to timing. - 4. Press the *Start* button to launch the distributed emulation. - +1. Follow the steps outlined for normal CORE. +2. Assign nodes to desired servers +3. Synchronize your machine's clocks prior to starting the emulation, + using *ntp* or *ptp*. Some EMANE models are sensitive to timing. +4. Press the *Start* button to launch the distributed emulation. Now when the Start button is used to instantiate the emulation, the local CORE daemon will connect to other emulation servers that have been assigned diff --git a/docs/grpc.md b/docs/grpc.md index 9fff1f80..3319825c 100644 --- a/docs/grpc.md +++ b/docs/grpc.md @@ -1,7 +1,6 @@ # gRPC API -* Table of Contents -{:toc} +## Overview [gRPC](https://grpc.io/) is a client/server API for interfacing with CORE and used by the python GUI for driving all functionality. It is dependent @@ -9,7 +8,7 @@ on having a running `core-daemon` instance to be leveraged. A python client can be created from the raw generated grpc files included with CORE or one can leverage a provided gRPC client that helps encapsulate -some of the functionality to try and help make things easier. +some functionality to try and help make things easier. ## Python Client @@ -41,13 +40,13 @@ When creating nodes of type `NodeType.DEFAULT` these are the default models and the services they map to. * mdr - * zebra, OSPFv3MDR, IPForward + * zebra, OSPFv3MDR, IPForward * PC - * DefaultRoute + * DefaultRoute * router - * zebra, OSPFv2, OSPFv3, IPForward + * zebra, OSPFv2, OSPFv3, IPForward * host - * DefaultRoute, SSH + * DefaultRoute, SSH ### Interface Helper @@ -56,8 +55,10 @@ when creating interface data for nodes. Alternatively one can manually create a `core.api.grpc.wrappers.Interface` class instead with appropriate information. Manually creating gRPC client interface: + ```python from core.api.grpc.wrappers import Interface + # id is optional and will set to the next available id # name is optional and will default to eth # mac is optional and will result in a randomly generated mac @@ -72,6 +73,7 @@ iface = Interface( ``` Leveraging the interface helper class: + ```python from core.api.grpc import client @@ -90,6 +92,7 @@ iface_data = iface_helper.create_iface( Various events that can occur within a session can be listened to. Event types: + * session - events for changes in session state and mobility start/stop/pause * node - events for node movements and icon changes * link - events for link configuration changes and wireless link add/delete @@ -101,9 +104,11 @@ Event types: from core.api.grpc import client from core.api.grpc.wrappers import EventType + def event_listener(event): print(event) + # create grpc client and connect core = client.CoreGrpcClient() core.connect() @@ -123,6 +128,7 @@ core.events(session.id, event_listener, [EventType.NODE]) Links can be configured at the time of creation or during runtime. Currently supported configuration options: + * bandwidth (bps) * delay (us) * duplicate (%) @@ -167,6 +173,7 @@ core.edit_link(session.id, link) ``` ### Peer to Peer Example + ```python # required imports from core.api.grpc import client @@ -198,6 +205,7 @@ core.start_session(session) ``` ### Switch/Hub Example + ```python # required imports from core.api.grpc import client @@ -232,6 +240,7 @@ core.start_session(session) ``` ### WLAN Example + ```python # required imports from core.api.grpc import client @@ -283,6 +292,7 @@ For EMANE you can import and use one of the existing models and use its name for configuration. Current models: + * core.emane.ieee80211abg.EmaneIeee80211abgModel * core.emane.rfpipe.EmaneRfPipeModel * core.emane.tdma.EmaneTdmaModel @@ -315,7 +325,7 @@ session = core.create_session() # create nodes position = Position(x=200, y=200) emane = session.add_node( - 1, _type=NodeType.EMANE, position=position, emane=EmaneIeee80211abgModel.name + 1, _type=NodeType.EMANE, position=position, emane=EmaneIeee80211abgModel.name ) position = Position(x=100, y=100) node1 = session.add_node(2, model="mdr", position=position) @@ -330,8 +340,8 @@ session.add_link(node1=node2, node2=emane, iface1=iface1) # setting emane specific emane model configuration emane.set_emane_model(EmaneIeee80211abgModel.name, { - "eventservicettl": "2", - "unicastrate": "3", + "eventservicettl": "2", + "unicastrate": "3", }) # start session @@ -339,6 +349,7 @@ core.start_session(session) ``` EMANE Model Configuration: + ```python # emane network specific config, set on an emane node # this setting applies to all nodes connected @@ -359,6 +370,7 @@ Configuring the files of a service results in a specific hard coded script being generated, instead of the default scripts, that may leverage dynamic generation. The following features can be configured for a service: + * files - files that will be generated * directories - directories that will be mounted unique to the node * startup - commands to run start a service @@ -366,6 +378,7 @@ The following features can be configured for a service: * shutdown - commands to run to stop a service Editing service properties: + ```python # configure a service, for a node, for a given session node.service_configs[service_name] = NodeServiceData( @@ -381,6 +394,7 @@ When editing a service file, it must be the name of `config` file that the service will generate. Editing a service file: + ```python # to edit the contents of a generated file you can specify # the service, the file name, and its contents diff --git a/docs/gui.md b/docs/gui.md index ebd4afc1..58877f95 100644 --- a/docs/gui.md +++ b/docs/gui.md @@ -1,9 +1,5 @@ - # CORE GUI -* Table of Contents -{:toc} - ![](static/core-gui.png) ## Overview @@ -12,7 +8,7 @@ The GUI is used to draw nodes and network devices on a canvas, linking them together to create an emulated network session. After pressing the start button, CORE will proceed through these phases, -staying in the **runtime** phase. After the session is stopped, CORE will +staying in the **runtime** phase. After the session is stopped, CORE will proceed to the **data collection** phase before tearing down the emulated state. @@ -22,7 +18,7 @@ when these session states are reached. ## Prerequisites -Beyond installing CORE, you must have the CORE daemon running. This is done +Beyond installing CORE, you must have the CORE daemon running. This is done on the command line with either systemd or sysv. ```shell @@ -40,24 +36,24 @@ The GUI will create a directory in your home directory on first run called ~/.coregui. This directory will help layout various files that the GUI may use. * .coregui/ - * backgrounds/ - * place backgrounds used for display in the GUI - * custom_emane/ - * place to keep custom emane models to use with the core-daemon - * custom_services/ - * place to keep custom services to use with the core-daemon - * icons/ - * icons the GUI uses along with customs icons desired - * mobility/ - * place to keep custom mobility files - * scripts/ - * place to keep core related scripts - * xmls/ - * place to keep saved session xml files - * gui.log - * log file when running the gui, look here when issues occur for exceptions etc - * config.yaml - * configuration file used to save/load various gui related settings (custom nodes, layouts, addresses, etc) + * backgrounds/ + * place backgrounds used for display in the GUI + * custom_emane/ + * place to keep custom emane models to use with the core-daemon + * custom_services/ + * place to keep custom services to use with the core-daemon + * icons/ + * icons the GUI uses along with customs icons desired + * mobility/ + * place to keep custom mobility files + * scripts/ + * place to keep core related scripts + * xmls/ + * place to keep saved session xml files + * gui.log + * log file when running the gui, look here when issues occur for exceptions etc + * config.yaml + * configuration file used to save/load various gui related settings (custom nodes, layouts, addresses, etc) ## Modes of Operation @@ -342,8 +338,8 @@ be selected by double-clicking its name in the list, or an interface name may be entered into the text box. > **NOTE:** When you press the Start button to instantiate your topology, the - interface assigned to the RJ45 will be connected to the CORE topology. The - interface can no longer be used by the system. +> interface assigned to the RJ45 will be connected to the CORE topology. The +> interface can no longer be used by the system. Multiple RJ45 nodes can be used within CORE and assigned to the same physical interface if 802.1x VLANs are used. This allows for more RJ45 nodes than @@ -378,10 +374,10 @@ address of the tunnel peer. This is the IP address of the other CORE machine or physical machine, not an IP address of another virtual node. > **NOTE:** Be aware of possible MTU (Maximum Transmission Unit) issues with GRE devices. The *gretap* device - has an interface MTU of 1,458 bytes; when joined to a Linux bridge, the - bridge's MTU - becomes 1,458 bytes. The Linux bridge will not perform fragmentation for - large packets if other bridge ports have a higher MTU such as 1,500 bytes. +> has an interface MTU of 1,458 bytes; when joined to a Linux bridge, the +> bridge's MTU +> becomes 1,458 bytes. The Linux bridge will not perform fragmentation for +> large packets if other bridge ports have a higher MTU such as 1,500 bytes. The GRE key is used to identify flows with GRE tunneling. This allows multiple GRE tunnels to exist between that same pair of tunnel peers. A unique number @@ -392,7 +388,7 @@ used. Here are example commands for building the other end of a tunnel on a Linux machine. In this example, a router in CORE has the virtual address **10.0.0.1/24** and the CORE host machine has the (real) address -**198.51.100.34/24**. The Linux box +**198.51.100.34/24**. The Linux box that will connect with the CORE machine is reachable over the (real) network at **198.51.100.76/24**. The emulated router is linked with the Tunnel Node. In the @@ -501,21 +497,20 @@ CORE offers several levels of wireless emulation fidelity, depending on modeling hardware. * WLAN Node - * uses set bandwidth, delay, and loss - * links are enabled or disabled based on a set range - * uses the least CPU when moving, but nothing extra when not moving + * uses set bandwidth, delay, and loss + * links are enabled or disabled based on a set range + * uses the least CPU when moving, but nothing extra when not moving * Wireless Node - * uses set bandwidth, delay, and initial loss - * loss dynamically changes based on distance between nodes, which can be configured with range parameters - * links are enabled or disabled based on a set range - * uses more CPU to calculate loss for every movement, but nothing extra when not moving + * uses set bandwidth, delay, and initial loss + * loss dynamically changes based on distance between nodes, which can be configured with range parameters + * links are enabled or disabled based on a set range + * uses more CPU to calculate loss for every movement, but nothing extra when not moving * EMANE Node - * uses a physical layer model to account for signal propagation, antenna profile effects and interference - sources in order to provide a realistic environment for wireless experimentation - * uses the most CPU for every packet, as complex calculations are used for fidelity - * See [Wiki](https://github.com/adjacentlink/emane/wiki) for details on general EMANE usage - * See [CORE EMANE](emane.md) for details on using EMANE in CORE - + * uses a physical layer model to account for signal propagation, antenna profile effects and interference + sources in order to provide a realistic environment for wireless experimentation + * uses the most CPU for every packet, as complex calculations are used for fidelity + * See [Wiki](https://github.com/adjacentlink/emane/wiki) for details on general EMANE usage + * See [CORE EMANE](emane.md) for details on using EMANE in CORE | Model | Type | Supported Platform(s) | Fidelity | Description | |----------|--------|-----------------------|----------|-------------------------------------------------------------------------------| @@ -545,7 +540,7 @@ The default configuration of the WLAN is set to use the basic range model. Havin selected causes **core-daemon** to calculate the distance between nodes based on screen pixels. A numeric range in screen pixels is set for the wireless network using the **Range** slider. When two wireless nodes are within range of -each other, a green line is drawn between them and they are linked. Two +each other, a green line is drawn between them and they are linked. Two wireless nodes that are farther than the range pixels apart are not linked. During Execute mode, users may move wireless nodes around by clicking and dragging them, and wireless links will be dynamically made or broken. @@ -561,7 +556,8 @@ CORE has a few ways to script mobility. | EMANE events | See [EMANE](emane.md) for details on using EMANE scripts to move nodes around. Location information is typically given as latitude, longitude, and altitude. | For the first method, you can create a mobility script using a text -editor, or using a tool such as [BonnMotion](http://net.cs.uni-bonn.de/wg/cs/applications/bonnmotion/), and associate the script with one of the wireless +editor, or using a tool such as [BonnMotion](http://net.cs.uni-bonn.de/wg/cs/applications/bonnmotion/), and associate +the script with one of the wireless using the WLAN configuration dialog box. Click the *ns-2 mobility script...* button, and set the *mobility script file* field in the resulting *ns2script* configuration dialog. diff --git a/docs/index.md b/docs/index.md index e17a2e3b..e7ff92bb 100644 --- a/docs/index.md +++ b/docs/index.md @@ -15,21 +15,3 @@ networking scenarios, security studies, and increasing the size of physical test * Runs applications and protocols without modification * Drag and drop GUI * Highly customizable - -## Topics - -| Topic | Description | -|--------------------------------------|-------------------------------------------------------------------| -| [Installation](install.md) | How to install CORE and its requirements | -| [Architecture](architecture.md) | Overview of the architecture | -| [Node Types](nodetypes.md) | Overview of node types supported within CORE | -| [GUI](gui.md) | How to use the GUI | -| [Python API](python.md) | Covers how to control core directly using python | -| [gRPC API](grpc.md) | Covers how control core using gRPC | -| [Distributed](distributed.md) | Details for running CORE across multiple servers | -| [Control Network](ctrlnet.md) | How to use control networks to communicate with nodes from host | -| [Config Services](configservices.md) | Overview of provided config services and creating custom ones | -| [Services](services.md) | Overview of provided services and creating custom ones | -| [EMANE](emane.md) | Overview of EMANE integration and integrating custom EMANE models | -| [Performance](performance.md) | Notes on performance when using CORE | -| [Developers Guide](devguide.md) | Overview on how to contribute to CORE | diff --git a/docs/install.md b/docs/install.md index 1d03fb6a..8a160dfe 100644 --- a/docs/install.md +++ b/docs/install.md @@ -1,10 +1,9 @@ # Installation -* Table of Contents -{:toc} > **WARNING:** if Docker is installed, the default iptable rules will block CORE traffic ## Overview + CORE currently supports and provides the following install options, with the package option being preferred. @@ -13,6 +12,7 @@ option being preferred. * [Dockerfile based install](#dockerfile-based-install) ### Requirements + Any computer capable of running Linux should be able to run CORE. Since the physical machine will be hosting numerous containers, as a general rule you should select a machine having as much RAM and CPU resources as possible. @@ -21,31 +21,35 @@ containers, as a general rule you should select a machine having as much RAM and * nftables compatible kernel and nft command line tool ### Supported Linux Distributions + Plan is to support recent Ubuntu and CentOS LTS releases. Verified: + * Ubuntu - 18.04, 20.04, 22.04 * CentOS - 7.8 ### Files + The following is a list of files that would be installed after installation. * executables - * `/bin/{vcmd, vnode}` - * can be adjusted using script based install , package will be /usr + * `/bin/{vcmd, vnode}` + * can be adjusted using script based install , package will be /usr * python files - * virtual environment `/opt/core/venv` - * local install will be local to the python version used - * `python3 -c "import core; print(core.__file__)"` - * scripts {core-daemon, core-cleanup, etc} - * virtualenv `/opt/core/venv/bin` - * local `/usr/local/bin` + * virtual environment `/opt/core/venv` + * local install will be local to the python version used + * `python3 -c "import core; print(core.__file__)"` + * scripts {core-daemon, core-cleanup, etc} + * virtualenv `/opt/core/venv/bin` + * local `/usr/local/bin` * configuration files - * `/etc/core/{core.conf, logging.conf}` + * `/etc/core/{core.conf, logging.conf}` * ospf mdr repository files when using script based install - * `/../ospf-mdr` + * `/../ospf-mdr` ### Installed Scripts + The following python scripts are provided. | Name | Description | @@ -59,17 +63,20 @@ The following python scripts are provided. | core-service-update | tool to update automate modifying a legacy service to match current naming | ### Upgrading from Older Release + Please make sure to uninstall any previous installations of CORE cleanly before proceeding to install. Clearing out a current install from 7.0.0+, making sure to provide options used for install (`-l` or `-p`). + ```shell cd inv uninstall ``` Previous install was built from source for CORE release older than 7.0.0: + ```shell cd sudo make uninstall @@ -78,6 +85,7 @@ make clean ``` Installed from previously built packages: + ```shell # centos sudo yum remove core @@ -107,6 +115,7 @@ is ran when uninstalling and would require the same options as given, during the > tk compatibility for python gui, and venv for virtual environments Examples for install: + ```shell # recommended to upgrade to the latest version of pip before installation # in python, can help avoid building from source issues @@ -128,6 +137,7 @@ sudo -m pip install /opt/core/core--py3-none-any.whl ``` Example for removal, requires using the same options as install: + ```shell # remove a standard install sudo remove core @@ -142,6 +152,7 @@ sudo NO_PYTHON=1 remove core ``` ### Installing OSPF MDR + You will need to manually install OSPF MDR for routing nodes, since this is not provided by the package. @@ -159,6 +170,7 @@ sudo make install When done see [Post Install](#post-install). ## Script Based Install + The script based installation will install system level dependencies, python library and dependencies, as well as dependencies for building CORE. @@ -166,6 +178,7 @@ The script based install also automatically builds and installs OSPF MDR, used b on routing nodes. This can optionally be skipped. Installaion will carry out the following steps: + * installs system dependencies for building core * builds vcmd/vnoded and python grpc files * installs core into poetry managed virtual environment or locally, if flag is passed @@ -188,6 +201,7 @@ The following tools will be leveraged during installation: | [poetry](https://python-poetry.org/) | used to install python virtual environment or building a python wheel | First we will need to clone and navigate to the CORE repo. + ```shell # clone CORE repo git clone https://github.com/coreemu/core.git @@ -229,6 +243,7 @@ Options: When done see [Post Install](#post-install). ### Unsupported Linux Distribution + For unsupported OSs you could attempt to do the following to translate an installation to your use case. @@ -243,6 +258,7 @@ inv install --dry -v -p -i ``` ## Dockerfile Based Install + You can leverage one of the provided Dockerfiles, to run and launch CORE within a Docker container. Since CORE nodes will leverage software available within the system for a given use case, @@ -253,7 +269,7 @@ make sure to update and build the Dockerfile with desired software. git clone https://github.com/coreemu/core.git cd core # build image -sudo docker build -t core -f Dockerfile. . +sudo docker build -t core -f dockerfiles/Dockerfile. . # start container sudo docker run -itd --name core -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:rw --privileged core # enable xhost access to the root user @@ -265,6 +281,7 @@ sudo docker exec -it core core-gui When done see [Post Install](#post-install). ## Installing EMANE + > **NOTE:** installing EMANE for the virtual environment is known to work for 1.21+ The recommended way to install EMANE is using prebuilt packages, otherwise @@ -282,6 +299,7 @@ Also, these EMANE bindings need to be built using `protoc` 3.19+. So make sure that is available and being picked up on PATH properly. Examples for building and installing EMANE python bindings for use in CORE: + ```shell # if your system does not have protoc 3.19+ wget https://github.com/protocolbuffers/protobuf/releases/download/v3.19.6/protoc-3.19.6-linux-x86_64.zip @@ -306,32 +324,39 @@ inv install-emane -e ``` ## Post Install + After installation completes you are now ready to run CORE. ### Resolving Docker Issues + If you have Docker installed, by default it will change the iptables forwarding chain to drop packets, which will cause issues for CORE traffic. You can temporarily resolve the issue with the following command: + ```shell sudo iptables --policy FORWARD ACCEPT ``` + Alternatively, you can configure Docker to avoid doing this, but will likely break normal Docker networking usage. Using the setting below will require a restart. Place the file contents below in **/etc/docker/docker.json** + ```json { - "iptables": false + "iptables": false } ``` ### Resolving Path Issues + One problem running CORE you may run into, using the virtual environment or locally can be issues related to your path. To add support for your user to run scripts from the virtual environment: + ```shell # can add to ~/.bashrc export PATH=$PATH:/opt/core/venv/bin @@ -339,6 +364,7 @@ export PATH=$PATH:/opt/core/venv/bin This will not solve the path issue when running as sudo, so you can do either of the following to compensate. + ```shell # run command passing in the right PATH to pickup from the user running the command sudo env PATH=$PATH core-daemon @@ -350,6 +376,7 @@ sudop core-daemon ``` ### Running CORE + The following assumes I have resolved PATH issues and setup the `sudop` alias. ```shell @@ -360,6 +387,7 @@ core-gui ``` ### Enabling Service + After installation, the core service is not enabled by default. If you desire to use the service, run the following commands. diff --git a/docs/install_centos.md b/docs/install_centos.md index c84e3074..53de2af6 100644 --- a/docs/install_centos.md +++ b/docs/install_centos.md @@ -1,5 +1,7 @@ # Install CentOS +## Overview + Below is a detailed path for installing CORE and related tooling on a fresh CentOS 7 install. Both of the examples below will install CORE into its own virtual environment located at **/opt/core/venv**. Both examples below @@ -122,6 +124,7 @@ The CORE virtual environment and related scripts will not be found on your PATH, so some adjustments needs to be made. To add support for your user to run scripts from the virtual environment: + ```shell # can add to ~/.bashrc export PATH=$PATH:/opt/core/venv/bin @@ -129,6 +132,7 @@ export PATH=$PATH:/opt/core/venv/bin This will not solve the path issue when running as sudo, so you can do either of the following to compensate. + ```shell # run command passing in the right PATH to pickup from the user running the command sudo env PATH=$PATH core-daemon diff --git a/docs/install_ubuntu.md b/docs/install_ubuntu.md index 03b9667a..57274a4f 100644 --- a/docs/install_ubuntu.md +++ b/docs/install_ubuntu.md @@ -1,7 +1,9 @@ # Install Ubuntu +## Overview + Below is a detailed path for installing CORE and related tooling on a fresh -Ubuntu 22.04 install. Both of the examples below will install CORE into its +Ubuntu 22.04 installation. Both of the examples below will install CORE into its own virtual environment located at **/opt/core/venv**. Both examples below also assume using **~/Documents** as the working directory. @@ -94,6 +96,7 @@ The CORE virtual environment and related scripts will not be found on your PATH, so some adjustments needs to be made. To add support for your user to run scripts from the virtual environment: + ```shell # can add to ~/.bashrc export PATH=$PATH:/opt/core/venv/bin @@ -101,6 +104,7 @@ export PATH=$PATH:/opt/core/venv/bin This will not solve the path issue when running as sudo, so you can do either of the following to compensate. + ```shell # run command passing in the right PATH to pickup from the user running the command sudo env PATH=$PATH core-daemon diff --git a/docs/lxc.md b/docs/lxc.md index 0df9e9d0..1ee11453 100644 --- a/docs/lxc.md +++ b/docs/lxc.md @@ -1,5 +1,7 @@ # LXC Support +## Overview + LXC nodes are provided by way of LXD to create nodes using predefined images and provide file system separation. diff --git a/docs/nodetypes.md b/docs/nodetypes.md index ad8e3ff9..8f095746 100644 --- a/docs/nodetypes.md +++ b/docs/nodetypes.md @@ -1,7 +1,4 @@ -# CORE Node Types - -* Table of Contents -{:toc} +# Node Types ## Overview diff --git a/docs/performance.md b/docs/performance.md index 5c3ae3a0..14573a41 100644 --- a/docs/performance.md +++ b/docs/performance.md @@ -1,8 +1,5 @@ # CORE Performance -* Table of Contents -{:toc} - ## Overview The top question about the performance of CORE is often *how many nodes can it @@ -16,7 +13,6 @@ handle?* The answer depends on several factors: | Network traffic | the more packets that are sent around the virtual network increases the amount of CPU usage. | | GUI usage | widgets that run periodically, mobility scenarios, and other GUI interactions generally consume CPU cycles that may be needed for emulation. | - On a typical single-CPU Xeon 3.0GHz server machine with 2GB RAM running Linux, we have found it reasonable to run 30-75 nodes running OSPFv2 and OSPFv3 routing. On this hardware CORE can instantiate 100 or more nodes, but at @@ -39,8 +35,8 @@ For a more detailed study of performance in CORE, refer to the following publications: * J\. Ahrenholz, T. Goff, and B. Adamson, Integration of the CORE and EMANE - Network Emulators, Proceedings of the IEEE Military Communications Conference 2011, November 2011. + Network Emulators, Proceedings of the IEEE Military Communications Conference 2011, November 2011. * Ahrenholz, J., Comparison of CORE Network Emulation Platforms, Proceedings - of the IEEE Military Communications Conference 2010, pp. 864-869, November 2010. + of the IEEE Military Communications Conference 2010, pp. 864-869, November 2010. * J\. Ahrenholz, C. Danilov, T. Henderson, and J.H. Kim, CORE: A real-time - network emulator, Proceedings of IEEE MILCOM Conference, 2008. + network emulator, Proceedings of IEEE MILCOM Conference, 2008. diff --git a/docs/python.md b/docs/python.md index 733bf5b4..0985bb8d 100644 --- a/docs/python.md +++ b/docs/python.md @@ -1,8 +1,5 @@ # Python API -* Table of Contents - {:toc} - ## Overview Writing your own Python scripts offers a rich programming environment with diff --git a/docs/services.md b/docs/services.md index 7ff50c0e..7c5f7efc 100644 --- a/docs/services.md +++ b/docs/services.md @@ -1,9 +1,6 @@ -# CORE Services +# Services (Deprecated) -* Table of Contents -{:toc} - -## Services +## Overview CORE uses the concept of services to specify what processes or scripts run on a node when it is started. Layer-3 nodes such as routers and PCs are defined by @@ -16,8 +13,8 @@ configuration files, startup index, starting commands, validation commands, shutdown commands, and meta-data associated with a node. > **NOTE:** **Network namespace nodes do not undergo the normal Linux boot process** - using the **init**, **upstart**, or **systemd** frameworks. These - lightweight nodes use configured CORE *services*. +> using the **init**, **upstart**, or **systemd** frameworks. These +> lightweight nodes use configured CORE *services*. ## Available Services @@ -72,10 +69,10 @@ The dialog has three tabs for configuring the different aspects of the service: files, directories, and startup/shutdown. > **NOTE:** A **yellow** customize icon next to a service indicates that service - requires customization (e.g. the *Firewall* service). - A **green** customize icon indicates that a custom configuration exists. - Click the *Defaults* button when customizing a service to remove any - customizations. +> requires customization (e.g. the *Firewall* service). +> A **green** customize icon indicates that a custom configuration exists. +> Click the *Defaults* button when customizing a service to remove any +> customizations. The Files tab is used to display or edit the configuration files or scripts that are used for this service. Files can be selected from a drop-down list, and @@ -91,9 +88,9 @@ the Zebra service, because Quagga running on each node needs to write separate PID files to that directory. > **NOTE:** The **/var/log** and **/var/run** directories are - mounted uniquely per-node by default. - Per-node mount targets can be found in **/tmp/pycore.nnnnn/nN.conf/** - (where *nnnnn* is the session number and *N* is the node number.) +> mounted uniquely per-node by default. +> Per-node mount targets can be found in **/tmp/pycore.nnnnn/nN.conf/** +(where *nnnnn* is the session number and *N* is the node number.) The Startup/shutdown tab lists commands that are used to start and stop this service. The startup index allows configuring when this service starts relative @@ -121,7 +118,7 @@ produces a non-zero return value, an exception is generated, which will cause an error to be displayed in the Check Emulation Light. > **NOTE:** To start, stop, and restart services during run-time, right-click a - node and use the *Services...* menu. +> node and use the *Services...* menu. ## New Services diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000..a224431e --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,56 @@ +site_name: CORE Documentation +use_directory_urls: false +theme: + name: material + palette: + - scheme: slate + toggle: + icon: material/brightness-4 + name: Switch to Light Mode + primary: teal + accent: teal + - scheme: default + toggle: + icon: material/brightness-7 + name: Switch to Dark Mode + primary: teal + accent: teal + features: + - navigation.path + - navigation.instant + - navigation.footer + - content.code.copy +markdown_extensions: + - pymdownx.snippets: + base_path: docs + - admonition + - pymdownx.details + - pymdownx.superfences + - pymdownx.tabbed: + alternate_style: true + - pymdownx.inlinehilite +nav: + - Home: index.md + - Overview: + - Architecture: architecture.md + - Performance: performance.md + - Installation: + - Overview: install.md + - Ubuntu: install_ubuntu.md + - CentOS: install_centos.md + - Detailed Topics: + - GUI: gui.md + - API: + - Python: python.md + - gRPC: grpc.md + - Services: + - Config Services: configservices.md + - Services (Deprecated): services.md + - EMANE: emane.md + - Node Types: + - Overview: nodetypes.md + - Docker: docker.md + - LXC: lxc.md + - Distributed: distributed.md + - Control Network: ctrlnet.md + - Developers Guide: devguide.md From 59f814eac0453d9546863ff440386a6e4911f86a Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Thu, 9 Mar 2023 10:49:11 -0800 Subject: [PATCH 06/70] install: fixed bad indentation for local install line, causes an error not finding expected files --- tasks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks.py b/tasks.py index d8e55fec..cf24263f 100644 --- a/tasks.py +++ b/tasks.py @@ -214,7 +214,7 @@ def install_poetry(c: Context, dev: bool, local: bool, hide: bool) -> None: if local: with c.cd(DAEMON_DIR): c.run("poetry build -f wheel", hide=hide) - c.run(f"sudo {python_bin} -m pip install dist/*") + c.run(f"sudo {python_bin} -m pip install dist/*") else: args = "" if dev else "--only main" with c.cd(DAEMON_DIR): From 5b41b4e5beeb478dd3c354738cbb716cab389bc6 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Mon, 13 Mar 2023 16:22:08 -0700 Subject: [PATCH 07/70] docs: brought out hardware in the loop concepts to a higher level for easier visbility, rather than being hidden within the gui docs --- docs/gui.md | 162 --------------------------------------------------- docs/hitl.md | 123 ++++++++++++++++++++++++++++++++++++++ mkdocs.yml | 15 ++--- 3 files changed, 131 insertions(+), 169 deletions(-) create mode 100644 docs/hitl.md diff --git a/docs/gui.md b/docs/gui.md index 58877f95..c04fdf0e 100644 --- a/docs/gui.md +++ b/docs/gui.md @@ -305,168 +305,6 @@ and options. | CORE Documentation (www) | Lnk to the CORE Documentation page. | | About | Invokes the About dialog box for viewing version information. | -## Connecting with Physical Networks - -CORE's emulated networks run in real time, so they can be connected to live -physical networks. The RJ45 tool and the Tunnel tool help with connecting to -the real world. These tools are available from the **Link-layer nodes** menu. - -When connecting two or more CORE emulations together, MAC address collisions -should be avoided. CORE automatically assigns MAC addresses to interfaces when -the emulation is started, starting with **00:00:00:aa:00:00** and incrementing -the bottom byte. The starting byte should be changed on the second CORE machine -using the **Tools->MAC Addresses** option the menu. - -### RJ45 Tool - -The RJ45 node in CORE represents a physical interface on the real CORE machine. -Any real-world network device can be connected to the interface and communicate -with the CORE nodes in real time. - -The main drawback is that one physical interface is required for each -connection. When the physical interface is assigned to CORE, it may not be used -for anything else. Another consideration is that the computer or network that -you are connecting to must be co-located with the CORE machine. - -To place an RJ45 connection, click on the **Link-layer nodes** toolbar and select -the **RJ45 Tool** from the submenu. Click on the canvas near the node you want to -connect to. This could be a router, hub, switch, or WLAN, for example. Now -click on the *Link Tool* and draw a link between the RJ45 and the other node. -The RJ45 node will display "UNASSIGNED". Double-click the RJ45 node to assign a -physical interface. A list of available interfaces will be shown, and one may -be selected by double-clicking its name in the list, or an interface name may -be entered into the text box. - -> **NOTE:** When you press the Start button to instantiate your topology, the -> interface assigned to the RJ45 will be connected to the CORE topology. The -> interface can no longer be used by the system. - -Multiple RJ45 nodes can be used within CORE and assigned to the same physical -interface if 802.1x VLANs are used. This allows for more RJ45 nodes than -physical ports are available, but the (e.g. switching) hardware connected to -the physical port must support the VLAN tagging, and the available bandwidth -will be shared. - -You need to create separate VLAN virtual devices on the Linux host, -and then assign these devices to RJ45 nodes inside of CORE. The VLANning is -actually performed outside of CORE, so when the CORE emulated node receives a -packet, the VLAN tag will already be removed. - -Here are example commands for creating VLAN devices under Linux: - -```shell -ip link add link eth0 name eth0.1 type vlan id 1 -ip link add link eth0 name eth0.2 type vlan id 2 -ip link add link eth0 name eth0.3 type vlan id 3 -``` - -### Tunnel Tool - -The tunnel tool builds GRE tunnels between CORE emulations or other hosts. -Tunneling can be helpful when the number of physical interfaces is limited or -when the peer is located on a different network. Also a physical interface does -not need to be dedicated to CORE as with the RJ45 tool. - -The peer GRE tunnel endpoint may be another CORE machine or another -host that supports GRE tunneling. When placing a Tunnel node, initially -the node will display "UNASSIGNED". This text should be replaced with the IP -address of the tunnel peer. This is the IP address of the other CORE machine or -physical machine, not an IP address of another virtual node. - -> **NOTE:** Be aware of possible MTU (Maximum Transmission Unit) issues with GRE devices. The *gretap* device -> has an interface MTU of 1,458 bytes; when joined to a Linux bridge, the -> bridge's MTU -> becomes 1,458 bytes. The Linux bridge will not perform fragmentation for -> large packets if other bridge ports have a higher MTU such as 1,500 bytes. - -The GRE key is used to identify flows with GRE tunneling. This allows multiple -GRE tunnels to exist between that same pair of tunnel peers. A unique number -should be used when multiple tunnels are used with the same peer. When -configuring the peer side of the tunnel, ensure that the matching keys are -used. - -Here are example commands for building the other end of a tunnel on a Linux -machine. In this example, a router in CORE has the virtual address -**10.0.0.1/24** and the CORE host machine has the (real) address -**198.51.100.34/24**. The Linux box -that will connect with the CORE machine is reachable over the (real) network -at **198.51.100.76/24**. -The emulated router is linked with the Tunnel Node. In the -Tunnel Node configuration dialog, the address **198.51.100.76** is entered, with -the key set to **1**. The gretap interface on the Linux box will be assigned -an address from the subnet of the virtual router node, -**10.0.0.2/24**. - -```shell -# these commands are run on the tunnel peer -sudo ip link add gt0 type gretap remote 198.51.100.34 local 198.51.100.76 key 1 -sudo ip addr add 10.0.0.2/24 dev gt0 -sudo ip link set dev gt0 up -``` - -Now the virtual router should be able to ping the Linux machine: - -```shell -# from the CORE router node -ping 10.0.0.2 -``` - -And the Linux machine should be able to ping inside the CORE emulation: - -```shell -# from the tunnel peer -ping 10.0.0.1 -``` - -To debug this configuration, **tcpdump** can be run on the gretap devices, or -on the physical interfaces on the CORE or Linux machines. Make sure that a -firewall is not blocking the GRE traffic. - -### Communicating with the Host Machine - -The host machine that runs the CORE GUI and/or daemon is not necessarily -accessible from a node. Running an X11 application on a node, for example, -requires some channel of communication for the application to connect with -the X server for graphical display. There are different ways to -connect from the node to the host and vice versa. - -#### Control Network - -The quickest way to connect with the host machine through the primary control -network. - -With a control network, the host can launch an X11 application on a node. -To run an X11 application on the node, the **SSH** service can be enabled on -the node, and SSH with X11 forwarding can be used from the host to the node. - -```shell -# SSH from host to node n5 to run an X11 app -ssh -X 172.16.0.5 xclock -``` - -#### Other Methods - -There are still other ways to connect a host with a node. The RJ45 Tool -can be used in conjunction with a dummy interface to access a node: - -```shell -sudo modprobe dummy numdummies=1 -``` - -A **dummy0** interface should appear on the host. Use the RJ45 tool assigned -to **dummy0**, and link this to a node in your scenario. After starting the -session, configure an address on the host. - -```shell -sudo ip link show type bridge -# determine bridge name from the above command -# assign an IP address on the same network as the linked node -sudo ip addr add 10.0.1.2/24 dev b.48304.34658 -``` - -In the example shown above, the host will have the address **10.0.1.2** and -the node linked to the RJ45 may have the address **10.0.1.1**. - ## Building Sample Networks ### Wired Networks diff --git a/docs/hitl.md b/docs/hitl.md new file mode 100644 index 00000000..89db2007 --- /dev/null +++ b/docs/hitl.md @@ -0,0 +1,123 @@ +# Hardware In The Loop + +## Overview + +In some cases it may be impossible or impractical to run software using CORE +nodes alone. You may need to bring in external hardware into the network. +CORE's emulated networks run in real time, so they can be connected to live +physical networks. The RJ45 tool and the Tunnel tool help with connecting to +the real world. These tools are available from the **Link Layer Nodes** menu. + +When connecting two or more CORE emulations together, MAC address collisions +should be avoided. CORE automatically assigns MAC addresses to interfaces when +the emulation is started, starting with **00:00:00:aa:00:00** and incrementing +the bottom byte. The starting byte should be changed on the second CORE machine +using the **Tools->MAC Addresses** option the menu. + +## RJ45 Node + +CORE provides the RJ45 node, which represents a physical +interface within the host that is running CORE. Any real-world network +devices can be connected to the interface and communicate with the CORE nodes in real time. + +The main drawback is that one physical interface is required for each +connection. When the physical interface is assigned to CORE, it may not be used +for anything else. Another consideration is that the computer or network that +you are connecting to must be co-located with the CORE machine. + +### GUI Usage + +To place an RJ45 connection, click on the **Link Layer Nodes** toolbar and select +the **RJ45 Node** from the options. Click on the canvas, where you would like +the nodes to place. Now click on the **Link Tool** and draw a link between the RJ45 +and the other node you wish to be connected to. The RJ45 node will display "UNASSIGNED". +Double-click the RJ45 node to assign a physical interface. A list of available +interfaces will be shown, and one may be selected, then selecting **Apply**. + +> **NOTE:** When you press the Start button to instantiate your topology, the +> interface assigned to the RJ45 will be connected to the CORE topology. The +> interface can no longer be used by the system. + +### Multiple RJ45s with One Interface (VLAN) + +It is possible to have multiple RJ45 nodes using the same physical interface +by leveraging 802.1x VLANs. This allows for more RJ45 nodes than physical ports +are available, but the (e.g. switching) hardware connected to the physical port +must support the VLAN tagging, and the available bandwidth will be shared. + +You need to create separate VLAN virtual devices on the Linux host, +and then assign these devices to RJ45 nodes inside of CORE. The VLANing is +actually performed outside of CORE, so when the CORE emulated node receives a +packet, the VLAN tag will already be removed. + +Here are example commands for creating VLAN devices under Linux: + +```shell +ip link add link eth0 name eth0.1 type vlan id 1 +ip link add link eth0 name eth0.2 type vlan id 2 +ip link add link eth0 name eth0.3 type vlan id 3 +``` + +## Tunnel Tool + +The tunnel tool builds GRE tunnels between CORE emulations or other hosts. +Tunneling can be helpful when the number of physical interfaces is limited or +when the peer is located on a different network. In this case a physical interface does +not need to be dedicated to CORE as with the RJ45 tool. + +The peer GRE tunnel endpoint may be another CORE machine or another +host that supports GRE tunneling. When placing a Tunnel node, initially +the node will display "UNASSIGNED". This text should be replaced with the IP +address of the tunnel peer. This is the IP address of the other CORE machine or +physical machine, not an IP address of another virtual node. + +> **NOTE:** Be aware of possible MTU (Maximum Transmission Unit) issues with GRE devices. The *gretap* device +> has an interface MTU of 1,458 bytes; when joined to a Linux bridge, the +> bridge's MTU +> becomes 1,458 bytes. The Linux bridge will not perform fragmentation for +> large packets if other bridge ports have a higher MTU such as 1,500 bytes. + +The GRE key is used to identify flows with GRE tunneling. This allows multiple +GRE tunnels to exist between that same pair of tunnel peers. A unique number +should be used when multiple tunnels are used with the same peer. When +configuring the peer side of the tunnel, ensure that the matching keys are +used. + +### Example Usage + +Here are example commands for building the other end of a tunnel on a Linux +machine. In this example, a router in CORE has the virtual address +**10.0.0.1/24** and the CORE host machine has the (real) address +**198.51.100.34/24**. The Linux box +that will connect with the CORE machine is reachable over the (real) network +at **198.51.100.76/24**. +The emulated router is linked with the Tunnel Node. In the +Tunnel Node configuration dialog, the address **198.51.100.76** is entered, with +the key set to **1**. The gretap interface on the Linux box will be assigned +an address from the subnet of the virtual router node, +**10.0.0.2/24**. + +```shell +# these commands are run on the tunnel peer +sudo ip link add gt0 type gretap remote 198.51.100.34 local 198.51.100.76 key 1 +sudo ip addr add 10.0.0.2/24 dev gt0 +sudo ip link set dev gt0 up +``` + +Now the virtual router should be able to ping the Linux machine: + +```shell +# from the CORE router node +ping 10.0.0.2 +``` + +And the Linux machine should be able to ping inside the CORE emulation: + +```shell +# from the tunnel peer +ping 10.0.0.1 +``` + +To debug this configuration, **tcpdump** can be run on the gretap devices, or +on the physical interfaces on the CORE or Linux machines. Make sure that a +firewall is not blocking the GRE traffic. diff --git a/mkdocs.yml b/mkdocs.yml index a224431e..93a925ee 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -40,17 +40,18 @@ nav: - CentOS: install_centos.md - Detailed Topics: - GUI: gui.md - - API: - - Python: python.md - - gRPC: grpc.md - - Services: - - Config Services: configservices.md - - Services (Deprecated): services.md - - EMANE: emane.md - Node Types: - Overview: nodetypes.md - Docker: docker.md - LXC: lxc.md + - Services: + - Config Services: configservices.md + - Services (Deprecated): services.md + - API: + - Python: python.md + - gRPC: grpc.md - Distributed: distributed.md - Control Network: ctrlnet.md + - Hardware In The Loop: hitl.md + - EMANE: emane.md - Developers Guide: devguide.md From b4ed8bc9c55074e7d9681752033be4599dcd0aa5 Mon Sep 17 00:00:00 2001 From: laerling Date: Sun, 19 Mar 2023 23:17:41 +0100 Subject: [PATCH 08/70] Fix pcap service: Mako dict parameter missing --- daemon/core/configservices/utilservices/services.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daemon/core/configservices/utilservices/services.py b/daemon/core/configservices/utilservices/services.py index 3a4addfe..ff5555a4 100644 --- a/daemon/core/configservices/utilservices/services.py +++ b/daemon/core/configservices/utilservices/services.py @@ -213,7 +213,7 @@ class PcapService(ConfigService): ifnames = [] for iface in self.node.get_ifaces(control=False): ifnames.append(iface.name) - return dict() + return dict(ifnames=ifnames) class RadvdService(ConfigService): From d52e0c4547ba4528b9233f9035fad5a53ef5d863 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Tue, 21 Mar 2023 15:34:13 -0700 Subject: [PATCH 09/70] grpc: adjustment when starting a session to not update session options for empty values, since they may override values set in /etc/core/core.conf --- daemon/core/api/grpc/server.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/daemon/core/api/grpc/server.py b/daemon/core/api/grpc/server.py index 47615b29..842400ca 100644 --- a/daemon/core/api/grpc/server.py +++ b/daemon/core/api/grpc/server.py @@ -282,7 +282,8 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer): # session options for option in request.session.options.values(): - session.options.set(option.name, option.value) + if option.value: + session.options.set(option.name, option.value) session.metadata = dict(request.session.metadata) # add servers From 03fe74c1957ddec51213c09493de129c27643075 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Tue, 28 Mar 2023 12:37:25 -0700 Subject: [PATCH 10/70] gui: fix issue when joining a session with an rj45 node and assigning an interface, whichw ill later cause an error when configuring the rj45 node --- daemon/core/gui/graph/edges.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/daemon/core/gui/graph/edges.py b/daemon/core/gui/graph/edges.py index 8bb97962..9032659c 100644 --- a/daemon/core/gui/graph/edges.py +++ b/daemon/core/gui/graph/edges.py @@ -5,7 +5,7 @@ import tkinter as tk from typing import TYPE_CHECKING, Optional, Tuple, Union from core.api.grpc.wrappers import Interface, Link -from core.gui import themes +from core.gui import nodeutils, themes from core.gui.dialogs.linkconfig import LinkConfigurationDialog from core.gui.frames.link import EdgeInfoFrame, WirelessEdgeInfoFrame from core.gui.graph import tags @@ -638,10 +638,10 @@ class CanvasEdge(Edge): self.check_wireless() if link is None: link = self.app.core.ifaces_manager.create_link(self) - if link.iface1: + if link.iface1 and not nodeutils.is_rj45(self.src.core_node): iface1 = link.iface1 self.src.ifaces[iface1.id] = iface1 - if link.iface2: + if link.iface2 and not nodeutils.is_rj45(self.dst.core_node): iface2 = link.iface2 self.dst.ifaces[iface2.id] = iface2 self.token = create_edge_token(link) From 0053ddb57d39b29a672ed1167e2f2e541a6f6767 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Tue, 28 Mar 2023 21:42:43 -0700 Subject: [PATCH 11/70] docs: updates to leverage mkdocs material admonitions --- docs/configservices.md | 18 +- docs/ctrlnet.md | 46 +-- docs/distributed.md | 18 +- docs/emane.md | 14 +- docs/emane/antenna.md | 631 +++++++++++++++++++------------------- docs/emane/eel.md | 41 ++- docs/emane/files.md | 17 +- docs/emane/gpsd.md | 56 ++-- docs/emane/precomputed.md | 27 +- docs/hitl.md | 20 +- docs/install.md | 28 +- docs/performance.md | 6 +- docs/services.md | 47 +-- 13 files changed, 533 insertions(+), 436 deletions(-) diff --git a/docs/configservices.md b/docs/configservices.md index 9a6525e7..da81aa48 100644 --- a/docs/configservices.md +++ b/docs/configservices.md @@ -79,30 +79,28 @@ introduced to automate tasks. ### Creating New Services +!!! note + + The directory base name used in **custom_services_dir** below should + be unique and should not correspond to any existing Python module name. + For example, don't use the name **subprocess** or **services**. + 1. Modify the example service shown below to do what you want. It could generate config/script files, mount per-node directories, start processes/scripts, etc. Your file can define one or more classes to be imported. You can create multiple Python files that will be imported. -2. Put these files in a directory such as ~/.coregui/custom_services - Note that the last component of this directory name **myservices** should not - be named something like **services** which conflicts with an existing module. +2. Put these files in a directory such as **~/.coregui/custom_services**. 3. Add a **custom_config_services_dir = ~/.coregui/custom_services** entry to the /etc/core/core.conf file. - **NOTE:** - The directory name used in **custom_services_dir** should be unique and - should not correspond to - any existing Python module name. For example, don't use the name **subprocess** - or **services**. - 4. Restart the CORE daemon (core-daemon). Any import errors (Python syntax) should be displayed in the terminal (or service log, like journalctl). 5. Start using your custom service on your nodes. You can create a new node type that uses your service, or change the default services for an existing - node type, or change individual nodes. . + node type, or change individual nodes. ### Example Custom Service diff --git a/docs/ctrlnet.md b/docs/ctrlnet.md index 0aeb1b32..d20e3a41 100644 --- a/docs/ctrlnet.md +++ b/docs/ctrlnet.md @@ -27,15 +27,19 @@ new sessions will use by default. To simultaneously run multiple sessions with control networks, the session option should be used instead of the *core.conf* default. -> **NOTE:** If you have a large scenario with more than 253 nodes, use a control -> network prefix that allows more than the suggested */24*, such as */23* or -> greater. +!!! note -> **NOTE:** Running a session with a control network can fail if a previous -> session has set up a control network and the its bridge is still up. Close -> the previous session first or wait for it to complete. If unable to, the -*core-daemon* may need to be restarted and the lingering bridge(s) removed -> manually. + If you have a large scenario with more than 253 nodes, use a control + network prefix that allows more than the suggested */24*, such as */23* or + greater. + +!!! note + + Running a session with a control network can fail if a previous + session has set up a control network and the its bridge is still up. Close + the previous session first or wait for it to complete. If unable to, the + **core-daemon** may need to be restarted and the lingering bridge(s) removed + manually. ```shell # Restart the CORE Daemon @@ -49,11 +53,13 @@ for cb in $ctrlbridges; do done ``` -> **NOTE:** If adjustments to the primary control network configuration made in -*/etc/core/core.conf* do not seem to take affect, check if there is anything -> set in the *Session Menu*, the *Options...* dialog. They may need to be -> cleared. These per session settings override the defaults in -*/etc/core/core.conf*. +!!! note + + If adjustments to the primary control network configuration made in + **/etc/core/core.conf** do not seem to take affect, check if there is anything + set in the *Session Menu*, the *Options...* dialog. They may need to be + cleared. These per session settings override the defaults in + **/etc/core/core.conf**. ## Control Network in Distributed Sessions @@ -117,8 +123,10 @@ assign *ctrl1* to the OTA manager device and *ctrl2* to the Event Service device in the EMANE Options dialog box and leave *ctrl0* for CORE control traffic. -> **NOTE:** *controlnet0* may be used in place of *controlnet* to configure -> the primary control network. +!!! note + + *controlnet0* may be used in place of *controlnet* to configure + the primary control network. Unlike the primary control network, the auxiliary control networks will not employ tunneling since their primary purpose is for efficiently transporting @@ -136,9 +144,11 @@ controlnetif2 = eth2 controlnetif3 = eth3 ``` -> **NOTE:** There is no need to assign an interface to the primary control -> network because tunnels are formed between the master and the slaves using IP -> addresses that are provided in *servers.conf*. +!!! note + + There is no need to assign an interface to the primary control + network because tunnels are formed between the master and the slaves using IP + addresses that are provided in *servers.conf*. Shown below is a representative diagram of the configuration above. diff --git a/docs/distributed.md b/docs/distributed.md index ca1b64e5..95ec7268 100644 --- a/docs/distributed.md +++ b/docs/distributed.md @@ -170,8 +170,10 @@ only if an EMANE model is used for the WLAN. The basic range model does not work across multiple servers due to the Linux bridging and nftables rules that are used. -**NOTE: The basic range wireless model does not support distributed emulation, -but EMANE does.** +!!! note + + The basic range wireless model does not support distributed emulation, + but EMANE does. When nodes are linked across servers **core-daemons** will automatically create necessary tunnels between the nodes when executed. Care should be taken @@ -182,10 +184,10 @@ These tunnels are created using GRE tunneling, similar to the Tunnel Tool. ## Distributed Checklist 1. Install CORE on master server -1. Install distributed CORE package on all servers needed -1. Installed and configure public-key SSH access on all servers (if you want to use +2. Install distributed CORE package on all servers needed +3. Installed and configure public-key SSH access on all servers (if you want to use double-click shells or Widgets.) for both the GUI user (for terminals) and root for running CORE commands -1. Update CORE configuration as needed -1. Choose the servers that participate in distributed emulation. -1. Assign nodes to desired servers, empty for master server. -1. Press the **Start** button to launch the distributed emulation. +4. Update CORE configuration as needed +5. Choose the servers that participate in distributed emulation. +6. Assign nodes to desired servers, empty for master server. +7. Press the **Start** button to launch the distributed emulation. diff --git a/docs/emane.md b/docs/emane.md index de3d65a6..33b6419a 100644 --- a/docs/emane.md +++ b/docs/emane.md @@ -57,7 +57,9 @@ You can find more detailed tutorials and examples at the Every topic below assumes CORE, EMANE, and OSPF MDR have been installed. -> **WARNING:** demo files will be found within the new `core-gui` +!!! info + + Demo files will be found within the `core-gui` **~/.coregui/xmls** directory | Topic | Model | Description | |--------------------------------------|---------|-----------------------------------------------------------| @@ -89,8 +91,10 @@ If you have an EMANE event generator (e.g. mobility or pathloss scripts) and want to have CORE subscribe to EMANE location events, set the following line in the **core.conf** configuration file. -> **NOTE:** Do not set this option to True if you want to manually drag nodes around -> on the canvas to update their location in EMANE. +!!! note + + Do not set this option to True if you want to manually drag nodes around + on the canvas to update their location in EMANE. ```shell emane_event_monitor = True @@ -278,7 +282,9 @@ being used, along with changing any configuration setting from their defaults. ![](static/emane-configuration.png) -> **NOTE:** Here is a quick checklist for distributed emulation with EMANE. +!!! note + + Here is a quick checklist for distributed emulation with EMANE. 1. Follow the steps outlined for normal CORE. 2. Assign nodes to desired servers diff --git a/docs/emane/antenna.md b/docs/emane/antenna.md index c8a86eaa..79c023ac 100644 --- a/docs/emane/antenna.md +++ b/docs/emane/antenna.md @@ -1,8 +1,7 @@ # EMANE Antenna Profiles -* Table of Contents -{:toc} ## Overview + Introduction to using the EMANE antenna profile in CORE, based on the example EMANE Demo linked below. @@ -10,340 +9,348 @@ EMANE Demo linked below. for more specifics. ## Demo Setup + We will need to create some files in advance of starting this session. Create directory to place antenna profile files. + ```shell mkdir /tmp/emane ``` Create `/tmp/emane/antennaprofile.xml` with the following contents. + ```xml - - - - - - + + + + + + ``` Create `/tmp/emane/antenna30dsector.xml` with the following contents. + ```xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ``` Create `/tmp/emane/blockageaft.xml` with the following contents. + ```xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ``` ## Run Demo + 1. Select `Open...` within the GUI 1. Load `emane-demo-antenna.xml` 1. Click ![Start Button](../static/gui/start.png) 1. After startup completes, double click n1 to bring up the nodes terminal ## Example Demo + This demo will cover running an EMANE event service to feed in antenna, location, and pathloss events to demonstrate how antenna profiles can be used. ### EMANE Event Dump + On n1 lets dump EMANE events, so when we later run the EMANE event service you can monitor when and what is sent. @@ -352,38 +359,44 @@ root@n1:/tmp/pycore.44917/n1.conf# emaneevent-dump -i ctrl0 ``` ### Send EMANE Events + On the host machine create the following to send EMANE events. -> **WARNING:** make sure to set the `eventservicedevice` to the proper control -> network value +!!! warning + + Make sure to set the `eventservicedevice` to the proper control + network value Create `eventservice.xml` with the following contents. + ```xml - - - + + + ``` Create `eelgenerator.xml` with the following contents. + ```xml - + - - - - + + + + ``` Create `scenario.eel` with the following contents. + ```shell 0.0 nem:1 antennaprofile 1,0.0,0.0 0.0 nem:4 antennaprofile 2,0.0,0.0 @@ -413,23 +426,25 @@ Create `scenario.eel` with the following contents. Run the EMANE event service, monitor what is output on n1 for events dumped and see the link changes within the CORE GUI. + ```shell emaneeventservice -l 3 eventservice.xml ``` ### Stages + The events sent will trigger 4 different states. * State 1 - * n2 and n3 see each other - * n4 and n3 are pointing away + * n2 and n3 see each other + * n4 and n3 are pointing away * State 2 - * n2 and n3 see each other - * n1 and n2 see each other - * n4 and n3 see each other + * n2 and n3 see each other + * n1 and n2 see each other + * n4 and n3 see each other * State 3 - * n2 and n3 see each other - * n4 and n3 are pointing at each other but blocked + * n2 and n3 see each other + * n4 and n3 are pointing at each other but blocked * State 4 - * n2 and n3 see each other - * n4 and n3 see each other + * n2 and n3 see each other + * n4 and n3 see each other diff --git a/docs/emane/eel.md b/docs/emane/eel.md index ca094542..c2dad86a 100644 --- a/docs/emane/eel.md +++ b/docs/emane/eel.md @@ -1,44 +1,51 @@ # EMANE Emulation Event Log (EEL) Generator -* Table of Contents -{:toc} ## Overview + Introduction to using the EMANE event service and eel files to provide events. [EMANE Demo 1](https://github.com/adjacentlink/emane-tutorial/wiki/Demonstration-1) for more specifics. ## Run Demo + 1. Select `Open...` within the GUI -1. Load `emane-demo-eel.xml` -1. Click ![Start Button](../static/gui/start.png) -1. After startup completes, double click n1 to bring up the nodes terminal +2. Load `emane-demo-eel.xml` +3. Click ![Start Button](../static/gui/start.png) +4. After startup completes, double click n1 to bring up the nodes terminal ## Example Demo + This demo will go over defining an EMANE event service and eel file to drive an emane event service. ### Viewing Events + On n1 we will use the EMANE event dump utility to listen to events. + ```shell root@n1:/tmp/pycore.46777/n1.conf# emaneevent-dump -i ctrl0 ``` ### Sending Events + On the host machine we will create the following files and start the EMANE event service targeting the control network. -> **WARNING:** make sure to set the `eventservicedevice` to the proper control -> network value +!!! warning + + Make sure to set the `eventservicedevice` to the proper control + network value Create `eventservice.xml` with the following contents. + ```xml - - - + + + ``` @@ -57,21 +64,23 @@ These configuration items tell the EEL Generator which sentences to map to which plugin and whether to issue delta or full updates. Create `eelgenerator.xml` with the following contents. + ```xml - + - - - - + + + + ``` Finally, create `scenario.eel` with the following contents. + ```shell 0.0 nem:1 pathloss nem:2,90.0 0.0 nem:2 pathloss nem:1,90.0 @@ -80,11 +89,13 @@ Finally, create `scenario.eel` with the following contents. ``` Start the EMANE event service using the files created above. + ```shell emaneeventservice eventservice.xml -l 3 ``` ### Sent Events + If we go back to look at our original terminal we will see the events logged out to the terminal. diff --git a/docs/emane/files.md b/docs/emane/files.md index c9bc35e8..c04b0f6b 100644 --- a/docs/emane/files.md +++ b/docs/emane/files.md @@ -1,8 +1,7 @@ # EMANE XML Files -* Table of Contents -{:toc} ## Overview + Introduction to the XML files generated by CORE used to drive EMANE for a given node. @@ -10,12 +9,14 @@ a given node. may provide more helpful details. ## Run Demo + 1. Select `Open...` within the GUI -1. Load `emane-demo-files.xml` -1. Click ![Start Button](../static/gui/start.png) -1. After startup completes, double click n1 to bring up the nodes terminal +2. Load `emane-demo-files.xml` +3. Click ![Start Button](../static/gui/start.png) +4. After startup completes, double click n1 to bring up the nodes terminal ## Example Demo + We will take a look at the files generated in the example demo provided. In this case we are running the RF Pipe model. @@ -31,6 +32,7 @@ case we are running the RF Pipe model. | \-trans.xml | configuration when a raw transport is being used | ### Listing File + Below are the files within n1 after starting the demo session. ```shell @@ -41,6 +43,7 @@ eth0-phy.xml n1-emane.log usr.local.etc.quagga var.run.quagga ``` ### Platform XML + The root configuration file used to run EMANE for a node is the platform xml file. In this demo we are looking at `n1-platform.xml`. @@ -78,6 +81,7 @@ root@n1:/tmp/pycore.46777/n1.conf# cat n1-platform.xml ``` ### NEM XML + The nem definition will contain reference to the transport, mac, and phy xml definitions being used for a given nem. @@ -93,6 +97,7 @@ root@n1:/tmp/pycore.46777/n1.conf# cat eth0-nem.xml ``` ### MAC XML + MAC layer configuration settings would be found in this file. CORE will write out all values, even if the value is a default value. @@ -115,6 +120,7 @@ root@n1:/tmp/pycore.46777/n1.conf# cat eth0-mac.xml ``` ### PHY XML + PHY layer configuration settings would be found in this file. CORE will write out all values, even if the value is a default value. @@ -149,6 +155,7 @@ root@n1:/tmp/pycore.46777/n1.conf# cat eth0-phy.xml ``` ### Transport XML + ```shell root@n1:/tmp/pycore.46777/n1.conf# cat eth0-trans-virtual.xml diff --git a/docs/emane/gpsd.md b/docs/emane/gpsd.md index f20cc8fe..38493ba1 100644 --- a/docs/emane/gpsd.md +++ b/docs/emane/gpsd.md @@ -1,54 +1,62 @@ # EMANE GPSD Integration -* Table of Contents -{:toc} ## Overview + Introduction to integrating gpsd in CORE with EMANE. [EMANE Demo 0](https://github.com/adjacentlink/emane-tutorial/wiki/Demonstration-0) may provide more helpful details. -> **WARNING:** requires installation of [gpsd](https://gpsd.gitlab.io/gpsd/index.html) +!!!! warning + + Requires installation of [gpsd](https://gpsd.gitlab.io/gpsd/index.html) ## Run Demo + 1. Select `Open...` within the GUI -1. Load `emane-demo-gpsd.xml` -1. Click ![Start Button](../static/gui/start.png) -1. After startup completes, double click n1 to bring up the nodes terminal +2. Load `emane-demo-gpsd.xml` +3. Click ![Start Button](../static/gui/start.png) +4. After startup completes, double click n1 to bring up the nodes terminal ## Example Demo + This section will cover how to run a gpsd location agent within EMANE, that will write out locations to a pseudo terminal file. That file can be read in by the gpsd server and make EMANE location events available to gpsd clients. ### EMANE GPSD Event Daemon + First create an `eventdaemon.xml` file on n1 with the following contents. + ```xml - - - + + + ``` Then create the `gpsdlocationagent.xml` file on n1 with the following contents. + ```xml - + ``` Start the EMANE event agent. This will facilitate feeding location events out to a pseudo terminal file defined above. + ```shell emaneeventd eventdaemon.xml -r -d -l 3 -f emaneeventd.log ``` Start gpsd, reading in the pseudo terminal file. + ```shell gpsd -G -n -b $(cat gps.pty) ``` @@ -59,36 +67,41 @@ EEL Events will be played out from the actual host machine over the designated control network interface. Create the following files in the same directory somewhere on your host. -> **NOTE:** make sure the below eventservicedevice matches the control network -> device being used on the host for EMANE +!!! note + + Make sure the below eventservicedevice matches the control network + device being used on the host for EMANE Create `eventservice.xml` on the host machine with the following contents. + ```xml - - - + + + ``` Create `eelgenerator.xml` on the host machine with the following contents. + ```xml - + - - - - + + + + ``` Create `scenario.eel` file with the following contents. + ```shell 0.0 nem:1 location gps 40.031075,-74.523518,3.000000 0.0 nem:2 location gps 40.031165,-74.523412,3.000000 @@ -96,7 +109,8 @@ Create `scenario.eel` file with the following contents. Start the EEL event service, which will send the events defined in the file above over the control network to all EMANE nodes. These location events will be received -and provided to gpsd. This allow gpsd client to connect to and get gps locations. +and provided to gpsd. This allows gpsd client to connect to and get gps locations. + ```shell emaneeventservice eventservice.xml -l 3 ``` diff --git a/docs/emane/precomputed.md b/docs/emane/precomputed.md index 53da75eb..4d0234ae 100644 --- a/docs/emane/precomputed.md +++ b/docs/emane/precomputed.md @@ -1,35 +1,40 @@ # EMANE Procomputed -* Table of Contents -{:toc} ## Overview + Introduction to using the precomputed propagation model. [EMANE Demo 1](https://github.com/adjacentlink/emane-tutorial/wiki/Demonstration-1) for more specifics. ## Run Demo + 1. Select `Open...` within the GUI -1. Load `emane-demo-precomputed.xml` -1. Click ![Start Button](../static/gui/start.png) -1. After startup completes, double click n1 to bring up the nodes terminal +2. Load `emane-demo-precomputed.xml` +3. Click ![Start Button](../static/gui/start.png) +4. After startup completes, double click n1 to bring up the nodes terminal ## Example Demo -This demo is uing the RF Pipe model witht he propagation model set to + +This demo is using the RF Pipe model with the propagation model set to precomputed. ### Failed Pings + Due to using precomputed and having not sent any pathloss events, the nodes -cannot ping eachother yet. +cannot ping each other yet. Open a terminal on n1. + ```shell root@n1:/tmp/pycore.46777/n1.conf# ping 10.0.0.2 connect: Network is unreachable ``` ### EMANE Shell + You can leverage `emanesh` to investigate why packets are being dropped. + ```shell root@n1:/tmp/pycore.46777/n1.conf# emanesh localhost get table nems phy BroadcastPacketDropTable0 UnicastPacketDropTable0 nem 1 phy BroadcastPacketDropTable0 @@ -43,6 +48,7 @@ nem 1 phy UnicastPacketDropTable0 In the example above we can see that the reason packets are being dropped is due to the propogation model and that is because we have not issued any pathloss events. You can run another command to validate if you have received any pathloss events. + ```shell root@n1:/tmp/pycore.46777/n1.conf# emanesh localhost get table nems phy PathlossEventInfoTable nem 1 phy PathlossEventInfoTable @@ -50,15 +56,19 @@ nem 1 phy PathlossEventInfoTable ``` ### Pathloss Events + On the host we will send pathloss events from all nems to all other nems. -> **NOTE:** make sure properly specify the right control network device +!!! note + + Make sure properly specify the right control network device ```shell emaneevent-pathloss 1:2 90 -i ``` Now if we check for pathloss events on n2 we will see what was just sent above. + ```shell root@n1:/tmp/pycore.46777/n1.conf# emanesh localhost get table nems phy PathlossEventInfoTable nem 1 phy PathlossEventInfoTable @@ -67,6 +77,7 @@ nem 1 phy PathlossEventInfoTable ``` You should also now be able to ping n1 from n2. + ```shell root@n1:/tmp/pycore.46777/n1.conf# ping -c 3 10.0.0.2 PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data. diff --git a/docs/hitl.md b/docs/hitl.md index 89db2007..b659a36f 100644 --- a/docs/hitl.md +++ b/docs/hitl.md @@ -34,9 +34,11 @@ and the other node you wish to be connected to. The RJ45 node will display "UNAS Double-click the RJ45 node to assign a physical interface. A list of available interfaces will be shown, and one may be selected, then selecting **Apply**. -> **NOTE:** When you press the Start button to instantiate your topology, the -> interface assigned to the RJ45 will be connected to the CORE topology. The -> interface can no longer be used by the system. +!!! note + + When you press the Start button to instantiate your topology, the + interface assigned to the RJ45 will be connected to the CORE topology. The + interface can no longer be used by the system. ### Multiple RJ45s with One Interface (VLAN) @@ -71,11 +73,13 @@ the node will display "UNASSIGNED". This text should be replaced with the IP address of the tunnel peer. This is the IP address of the other CORE machine or physical machine, not an IP address of another virtual node. -> **NOTE:** Be aware of possible MTU (Maximum Transmission Unit) issues with GRE devices. The *gretap* device -> has an interface MTU of 1,458 bytes; when joined to a Linux bridge, the -> bridge's MTU -> becomes 1,458 bytes. The Linux bridge will not perform fragmentation for -> large packets if other bridge ports have a higher MTU such as 1,500 bytes. +!!! note + + Be aware of possible MTU (Maximum Transmission Unit) issues with GRE devices. + The *gretap* device has an interface MTU of 1,458 bytes; when joined to a Linux + bridge, the bridge's MTU becomes 1,458 bytes. The Linux bridge will not perform + fragmentation for large packets if other bridge ports have a higher MTU such + as 1,500 bytes. The GRE key is used to identify flows with GRE tunneling. This allows multiple GRE tunnels to exist between that same pair of tunnel peers. A unique number diff --git a/docs/install.md b/docs/install.md index 8a160dfe..546f37e5 100644 --- a/docs/install.md +++ b/docs/install.md @@ -1,10 +1,12 @@ # Installation -> **WARNING:** if Docker is installed, the default iptable rules will block CORE traffic +!!! warning + + If Docker is installed, the default iptable rules will block CORE traffic ## Overview -CORE currently supports and provides the following install options, with the package +CORE currently supports and provides the following installation options, with the package option being preferred. * [Package based install (rpm/deb)](#package-based-install) @@ -111,8 +113,10 @@ The built packages will require and install system level dependencies, as well a a post install script to install the provided CORE python wheel. A similar uninstall script is ran when uninstalling and would require the same options as given, during the install. -> **NOTE:** PYTHON defaults to python3 for installs below, CORE requires python3.9+, pip, -> tk compatibility for python gui, and venv for virtual environments +!!! note + + PYTHON defaults to python3 for installs below, CORE requires python3.9+, pip, + tk compatibility for python gui, and venv for virtual environments Examples for install: @@ -185,11 +189,15 @@ Installaion will carry out the following steps: * installs systemd service pointing to appropriate python location based on install type * clone/build/install working version of [OPSF MDR](https://github.com/USNavalResearchLaboratory/ospf-mdr) -> **NOTE:** installing locally comes with its own risks, it can result it potential -> dependency conflicts with system package manager installed python dependencies +!!! note -> **NOTE:** provide a prefix that will be found on path when running as sudo, -> if the default prefix /usr/local will not be valid + Installing locally comes with its own risks, it can result it potential + dependency conflicts with system package manager installed python dependencies + +!!! note + + Provide a prefix that will be found on path when running as sudo, + if the default prefix /usr/local will not be valid The following tools will be leveraged during installation: @@ -282,7 +290,9 @@ When done see [Post Install](#post-install). ## Installing EMANE -> **NOTE:** installing EMANE for the virtual environment is known to work for 1.21+ +!!! note + + Installing EMANE for the virtual environment is known to work for 1.21+ The recommended way to install EMANE is using prebuilt packages, otherwise you can follow their instructions for installing from source. Installation diff --git a/docs/performance.md b/docs/performance.md index 14573a41..449e3837 100644 --- a/docs/performance.md +++ b/docs/performance.md @@ -28,8 +28,10 @@ the number of times the system as a whole needed to deal with a packet. As more network hops are added, this increases the number of context switches and decreases the throughput seen on the full length of the network path. -> **NOTE:** The right question to be asking is *"how much traffic?"*, not -*"how many nodes?"*. +!!! note + + The right question to be asking is *"how much traffic?"*, not + *"how many nodes?"*. For a more detailed study of performance in CORE, refer to the following publications: diff --git a/docs/services.md b/docs/services.md index 7c5f7efc..9e6e3642 100644 --- a/docs/services.md +++ b/docs/services.md @@ -12,9 +12,11 @@ set of default services. Each service defines the per-node directories, configuration files, startup index, starting commands, validation commands, shutdown commands, and meta-data associated with a node. -> **NOTE:** **Network namespace nodes do not undergo the normal Linux boot process** -> using the **init**, **upstart**, or **systemd** frameworks. These -> lightweight nodes use configured CORE *services*. +!!! note + + **Network namespace nodes do not undergo the normal Linux boot process** + using the **init**, **upstart**, or **systemd** frameworks. These + lightweight nodes use configured CORE *services*. ## Available Services @@ -68,11 +70,13 @@ the service customization dialog for that service. The dialog has three tabs for configuring the different aspects of the service: files, directories, and startup/shutdown. -> **NOTE:** A **yellow** customize icon next to a service indicates that service -> requires customization (e.g. the *Firewall* service). -> A **green** customize icon indicates that a custom configuration exists. -> Click the *Defaults* button when customizing a service to remove any -> customizations. +!!! note + + A **yellow** customize icon next to a service indicates that service + requires customization (e.g. the *Firewall* service). + A **green** customize icon indicates that a custom configuration exists. + Click the *Defaults* button when customizing a service to remove any + customizations. The Files tab is used to display or edit the configuration files or scripts that are used for this service. Files can be selected from a drop-down list, and @@ -87,10 +91,11 @@ per-node directories that are defined by the services. For example, the the Zebra service, because Quagga running on each node needs to write separate PID files to that directory. -> **NOTE:** The **/var/log** and **/var/run** directories are -> mounted uniquely per-node by default. -> Per-node mount targets can be found in **/tmp/pycore.nnnnn/nN.conf/** -(where *nnnnn* is the session number and *N* is the node number.) +!!! note + + The **/var/log** and **/var/run** directories are + mounted uniquely per-node by default. + Per-node mount targets can be found in **/tmp/pycore./.conf/** The Startup/shutdown tab lists commands that are used to start and stop this service. The startup index allows configuring when this service starts relative @@ -117,8 +122,10 @@ if a process is running and return zero when found. When a validate command produces a non-zero return value, an exception is generated, which will cause an error to be displayed in the Check Emulation Light. -> **NOTE:** To start, stop, and restart services during run-time, right-click a -> node and use the *Services...* menu. +!!! note + + To start, stop, and restart services during run-time, right-click a + node and use the *Services...* menu. ## New Services @@ -135,6 +142,12 @@ ideas for a service before adding a new service type. ### Creating New Services +!!! note + + The directory name used in **custom_services_dir** below should be unique and + should not correspond to any existing Python module name. For example, don't + use the name **subprocess** or **services**. + 1. Modify the example service shown below to do what you want. It could generate config/script files, mount per-node directories, start processes/scripts, etc. sample.py is a Python file that @@ -148,12 +161,6 @@ ideas for a service before adding a new service type. 3. Add a **custom_services_dir = `/home//.coregui/custom_services`** entry to the /etc/core/core.conf file. - **NOTE:** - The directory name used in **custom_services_dir** should be unique and - should not correspond to - any existing Python module name. For example, don't use the name **subprocess** - or **services**. - 4. Restart the CORE daemon (core-daemon). Any import errors (Python syntax) should be displayed in the daemon output. From 15df06d834b98462f6084651fd1fbd22d109f77d Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Tue, 28 Mar 2023 21:47:27 -0700 Subject: [PATCH 12/70] docs: updates to reformat and adjust documentation in regards to using specific services --- docs/services/bird.md | 5 ++--- docs/services/emane.md | 3 --- docs/services/frr.md | 28 ++++++++++++++++++++------ docs/services/nrl.md | 42 +++++++++++++++++++++++++++++---------- docs/services/quagga.md | 14 ++++++++----- docs/services/sdn.md | 8 ++++---- docs/services/security.md | 18 ++++++++++------- docs/services/utility.md | 14 +++++++------ docs/services/xorp.md | 40 ++++++++++++++++++++++++------------- 9 files changed, 114 insertions(+), 58 deletions(-) diff --git a/docs/services/bird.md b/docs/services/bird.md index 8fa7b895..db2f7701 100644 --- a/docs/services/bird.md +++ b/docs/services/bird.md @@ -1,8 +1,5 @@ # BIRD Internet Routing Daemon -* Table of Contents -{:toc} - ## Overview The [BIRD Internet Routing Daemon](https://bird.network.cz/) is a routing @@ -30,6 +27,7 @@ sudo apt-get install bird You can download BIRD source code from its [official repository.](https://gitlab.labs.nic.cz/labs/bird/) + ```shell ./configure make @@ -37,6 +35,7 @@ su make install vi /etc/bird/bird.conf ``` + The installation will place the bird directory inside */etc* where you will also find its config file. diff --git a/docs/services/emane.md b/docs/services/emane.md index 91a0f769..3f904091 100644 --- a/docs/services/emane.md +++ b/docs/services/emane.md @@ -1,8 +1,5 @@ # EMANE Services -* Table of Contents -{:toc} - ## Overview EMANE related services for CORE. diff --git a/docs/services/frr.md b/docs/services/frr.md index e69a9d1e..aa2db6ff 100644 --- a/docs/services/frr.md +++ b/docs/services/frr.md @@ -1,13 +1,14 @@ # FRRouting -* Table of Contents -{:toc} - ## Overview -FRRouting is a routing software package that provides TCP/IP based routing services with routing protocols support such as BGP, RIP, OSPF, IS-IS and more. FRR also supports special BGP Route Reflector and Route Server behavior. In addition to traditional IPv4 routing protocols, FRR also supports IPv6 routing protocols. With an SNMP daemon that supports the AgentX protocol, FRR provides routing protocol MIB read-only access (SNMP Support). +FRRouting is a routing software package that provides TCP/IP based routing services with routing protocols support such +as BGP, RIP, OSPF, IS-IS and more. FRR also supports special BGP Route Reflector and Route Server behavior. In addition +to traditional IPv4 routing protocols, FRR also supports IPv6 routing protocols. With an SNMP daemon that supports the +AgentX protocol, FRR provides routing protocol MIB read-only access (SNMP Support). FRR (as of v7.2) currently supports the following protocols: + * BGPv4 * OSPFv2 * OSPFv3 @@ -26,11 +27,13 @@ FRR (as of v7.2) currently supports the following protocols: ## FRRouting Package Install Ubuntu 19.10 and later + ```shell sudo apt update && sudo apt install frr ``` Ubuntu 16.04 and Ubuntu 18.04 + ```shell sudo apt install curl curl -s https://deb.frrouting.org/frr/keys.asc | sudo apt-key add - @@ -38,25 +41,35 @@ FRRVER="frr-stable" echo deb https://deb.frrouting.org/frr $(lsb_release -s -c) $FRRVER | sudo tee -a /etc/apt/sources.list.d/frr.list sudo apt update && sudo apt install frr frr-pythontools ``` + Fedora 31 + ```shell sudo dnf update && sudo dnf install frr ``` ## FRRouting Source Code Install -Building FRR from source is the best way to ensure you have the latest features and bug fixes. Details for each supported platform, including dependency package listings, permissions, and other gotchas, are in the developer’s documentation. +Building FRR from source is the best way to ensure you have the latest features and bug fixes. Details for each +supported platform, including dependency package listings, permissions, and other gotchas, are in the developer’s +documentation. FRR’s source is available on the project [GitHub page](https://github.com/FRRouting/frr). + ```shell git clone https://github.com/FRRouting/frr.git ``` Change into your FRR source directory and issue: + ```shell ./bootstrap.sh ``` -Then, choose the configuration options that you wish to use for the installation. You can find these options on FRR's [official webpage](http://docs.frrouting.org/en/latest/installation.html). Once you have chosen your configure options, run the configure script and pass the options you chose: + +Then, choose the configuration options that you wish to use for the installation. You can find these options on +FRR's [official webpage](http://docs.frrouting.org/en/latest/installation.html). Once you have chosen your configure +options, run the configure script and pass the options you chose: + ```shell ./configure \ --prefix=/usr \ @@ -68,8 +81,11 @@ Then, choose the configuration options that you wish to use for the installation --enable-watchfrr \ ... ``` + After configuring the software, you are ready to build and install it in your system. + ```shell make && sudo make install ``` + If everything finishes successfully, FRR should be installed. diff --git a/docs/services/nrl.md b/docs/services/nrl.md index c7e84920..da26ab25 100644 --- a/docs/services/nrl.md +++ b/docs/services/nrl.md @@ -1,13 +1,21 @@ # NRL Services -* Table of Contents -{:toc} - ## Overview -The Protean Protocol Prototyping Library (ProtoLib) is a cross-platform library that allows applications to be built while supporting a variety of platforms including Linux, Windows, WinCE/PocketPC, MacOS, FreeBSD, Solaris, etc as well as the simulation environments of NS2 and Opnet. The goal of the Protolib is to provide a set of simple, cross-platform C++ classes that allow development of network protocols and applications that can run on different platforms and in network simulation environments. While Protolib provides an overall framework for developing working protocol implementations, applications, and simulation modules, the individual classes are designed for use as stand-alone components when possible. Although Protolib is principally for research purposes, the code has been constructed to provide robust, efficient performance and adaptability to real applications. In some cases, the code consists of data structures, etc useful in protocol implementations and, in other cases, provides common, cross-platform interfaces to system services and functions (e.g., sockets, timers, routing tables, etc). +The Protean Protocol Prototyping Library (ProtoLib) is a cross-platform library that allows applications to be built +while supporting a variety of platforms including Linux, Windows, WinCE/PocketPC, MacOS, FreeBSD, Solaris, etc as well +as the simulation environments of NS2 and Opnet. The goal of the Protolib is to provide a set of simple, cross-platform +C++ classes that allow development of network protocols and applications that can run on different platforms and in +network simulation environments. While Protolib provides an overall framework for developing working protocol +implementations, applications, and simulation modules, the individual classes are designed for use as stand-alone +components when possible. Although Protolib is principally for research purposes, the code has been constructed to +provide robust, efficient performance and adaptability to real applications. In some cases, the code consists of data +structures, etc useful in protocol implementations and, in other cases, provides common, cross-platform interfaces to +system services and functions (e.g., sockets, timers, routing tables, etc). + +Currently, the Naval Research Laboratory uses this library to develop a wide variety of protocols.The NRL Protolib +currently supports the following protocols: -Currently the Naval Research Laboratory uses this library to develop a wide variety of protocols.The NRL Protolib currently supports the following protocols: * MGEN_Sink * NHDP * SMF @@ -19,11 +27,14 @@ Currently the Naval Research Laboratory uses this library to develop a wide vari ## NRL Installation -In order to be able to use the different protocols that NRL offers, you must first download the support library itself. You can get the source code from their [NRL Protolib Repo](https://github.com/USNavalResearchLaboratory/protolib). +In order to be able to use the different protocols that NRL offers, you must first download the support library itself. +You can get the source code from their [NRL Protolib Repo](https://github.com/USNavalResearchLaboratory/protolib). ## Multi-Generator (MGEN) -Download MGEN from the [NRL MGEN Repo](https://github.com/USNavalResearchLaboratory/mgen), unpack it and copy the protolib library into the main folder *mgen*. Execute the following commands to build the protocol. +Download MGEN from the [NRL MGEN Repo](https://github.com/USNavalResearchLaboratory/mgen), unpack it and copy the +protolib library into the main folder *mgen*. Execute the following commands to build the protocol. + ```shell cd mgen/makefiles make -f Makefile.{os} mgen @@ -32,16 +43,22 @@ make -f Makefile.{os} mgen ## Neighborhood Discovery Protocol (NHDP) Download NHDP from the [NRL NHDP Repo](https://github.com/USNavalResearchLaboratory/NCS-Downloads/tree/master/nhdp). + ```shell sudo apt-get install libpcap-dev libboost-all-dev wget https://github.com/protocolbuffers/protobuf/releases/download/v3.8.0/protoc-3.8.0-linux-x86_64.zip unzip protoc-3.8.0-linux-x86_64.zip ``` + Then place the binaries in your $PATH. To know your paths you can issue the following command + ```shell echo $PATH ``` -Go to the downloaded *NHDP* tarball, unpack it and place the protolib library inside the NHDP main folder. Now, compile the NHDP Protocol. + +Go to the downloaded *NHDP* tarball, unpack it and place the protolib library inside the NHDP main folder. Now, compile +the NHDP Protocol. + ```shell cd nhdp/unix make -f Makefile.{os} @@ -49,7 +66,9 @@ make -f Makefile.{os} ## Simplified Multicast Forwarding (SMF) -Download SMF from the [NRL SMF Repo](https://github.com/USNavalResearchLaboratory/nrlsmf) , unpack it and place the protolib library inside the *smf* main folder. +Download SMF from the [NRL SMF Repo](https://github.com/USNavalResearchLaboratory/nrlsmf) , unpack it and place the +protolib library inside the *smf* main folder. + ```shell cd mgen/makefiles make -f Makefile.{os} @@ -57,7 +76,10 @@ make -f Makefile.{os} ## Optimized Link State Routing Protocol (OLSR) -To install the OLSR protocol, download their source code from their [NRL OLSR Repo](https://github.com/USNavalResearchLaboratory/nrlolsr). Unpack it and place the previously downloaded protolib library inside the *nrlolsr* main directory. Then execute the following commands: +To install the OLSR protocol, download their source code from +their [NRL OLSR Repo](https://github.com/USNavalResearchLaboratory/nrlolsr). Unpack it and place the previously +downloaded protolib library inside the *nrlolsr* main directory. Then execute the following commands: + ```shell cd ./unix make -f Makefile.{os} diff --git a/docs/services/quagga.md b/docs/services/quagga.md index d894d431..6842b5e7 100644 --- a/docs/services/quagga.md +++ b/docs/services/quagga.md @@ -1,12 +1,13 @@ # Quagga Routing Suite -* Table of Contents -{:toc} - ## Overview - Quagga is a routing software suite, providing implementations of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix platforms, particularly FreeBSD, Linux, Solaris and NetBSD. Quagga is a fork of GNU Zebra which was developed by Kunihiro Ishiguro. -The Quagga architecture consists of a core daemon, zebra, which acts as an abstraction layer to the underlying Unix kernel and presents the Zserv API over a Unix or TCP stream to Quagga clients. It is these Zserv clients which typically implement a routing protocol and communicate routing updates to the zebra daemon. +Quagga is a routing software suite, providing implementations of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix +platforms, particularly FreeBSD, Linux, Solaris and NetBSD. Quagga is a fork of GNU Zebra which was developed by +Kunihiro Ishiguro. +The Quagga architecture consists of a core daemon, zebra, which acts as an abstraction layer to the underlying Unix +kernel and presents the Zserv API over a Unix or TCP stream to Quagga clients. It is these Zserv clients which typically +implement a routing protocol and communicate routing updates to the zebra daemon. ## Quagga Package Install @@ -17,10 +18,13 @@ sudo apt-get install quagga ## Quagga Source Install First, download the source code from their [official webpage](https://www.quagga.net/). + ```shell sudo apt-get install gawk ``` + Extract the tarball, go to the directory of your currently extracted code and issue the following commands. + ```shell ./configure make diff --git a/docs/services/sdn.md b/docs/services/sdn.md index 9381fef5..05e8606e 100644 --- a/docs/services/sdn.md +++ b/docs/services/sdn.md @@ -1,11 +1,11 @@ # Software Defined Networking -* Table of Contents -{:toc} - ## Overview -Ryu is a component-based software defined networking framework. Ryu provides software components with well defined API that make it easy for developers to create new network management and control applications. Ryu supports various protocols for managing network devices, such as OpenFlow, Netconf, OF-config, etc. About OpenFlow, Ryu supports fully 1.0, 1.2, 1.3, 1.4, 1.5 and Nicira Extensions. All of the code is freely available under the Apache 2.0 license. +Ryu is a component-based software defined networking framework. Ryu provides software components with well defined API +that make it easy for developers to create new network management and control applications. Ryu supports various +protocols for managing network devices, such as OpenFlow, Netconf, OF-config, etc. About OpenFlow, Ryu supports fully +1.0, 1.2, 1.3, 1.4, 1.5 and Nicira Extensions. All of the code is freely available under the Apache 2.0 license. ## Installation diff --git a/docs/services/security.md b/docs/services/security.md index c8856e13..a621009d 100644 --- a/docs/services/security.md +++ b/docs/services/security.md @@ -1,15 +1,15 @@ # Security Services -* Table of Contents -{:toc} - ## Overview -The security services offer a wide variety of protocols capable of satisfying the most use cases available. Security services such as IP security protocols, for providing security at the IP layer, as well as the suite of protocols designed to provide that security, through authentication and encryption of IP network packets. Virtual Private Networks (VPNs) and Firewalls are also available for use to the user. +The security services offer a wide variety of protocols capable of satisfying the most use cases available. Security +services such as IP security protocols, for providing security at the IP layer, as well as the suite of protocols +designed to provide that security, through authentication and encryption of IP network packets. Virtual Private +Networks (VPNs) and Firewalls are also available for use to the user. ## Installation -Libraries needed for some of the security services. +Libraries needed for some security services. ```shell sudo apt-get install ipsec-tools racoon @@ -71,7 +71,9 @@ sudo cp pki/dh.pem $KEYDIR/dh1024.pem Add VPNServer service to nodes desired for running an OpenVPN server. -Modify [sampleVPNServer](https://github.com/coreemu/core/blob/master/package/examples/services/sampleVPNServer) for the following +Modify [sampleVPNServer](https://github.com/coreemu/core/blob/master/package/examples/services/sampleVPNServer) for the +following + * Edit keydir key/cert directory * Edit keyname to use generated server name above * Edit vpnserver to match an address that the server node will have @@ -80,7 +82,9 @@ Modify [sampleVPNServer](https://github.com/coreemu/core/blob/master/package/exa Add VPNClient service to nodes desired for acting as an OpenVPN client. -Modify [sampleVPNClient](https://github.com/coreemu/core/blob/master/package/examples/services/sampleVPNClient) for the following +Modify [sampleVPNClient](https://github.com/coreemu/core/blob/master/package/examples/services/sampleVPNClient) for the +following + * Edit keydir key/cert directory * Edit keyname to use generated client name above * Edit vpnserver to match the address a server was configured to use diff --git a/docs/services/utility.md b/docs/services/utility.md index b2fa87b8..698de4f8 100644 --- a/docs/services/utility.md +++ b/docs/services/utility.md @@ -1,13 +1,11 @@ # Utility Services -* Table of Contents -{:toc} - -# Overview +## Overview Variety of convenience services for carrying out common networking changes. The following services are provided as utilities: + * UCARP * IP Forward * Default Routing @@ -25,15 +23,19 @@ The following services are provided as utilities: ## Installation To install the functionality of the previously metioned services you can run the following command: + ```shell sudo apt-get install isc-dhcp-server apache2 libpcap-dev radvd at ``` ## UCARP -UCARP allows a couple of hosts to share common virtual IP addresses in order to provide automatic failover. It is a portable userland implementation of the secure and patent-free Common Address Redundancy Protocol (CARP, OpenBSD's alternative to the patents-bloated VRRP). +UCARP allows a couple of hosts to share common virtual IP addresses in order to provide automatic failover. It is a +portable userland implementation of the secure and patent-free Common Address Redundancy Protocol (CARP, OpenBSD's +alternative to the patents-bloated VRRP). -Strong points of the CARP protocol are: very low overhead, cryptographically signed messages, interoperability between different operating systems and no need for any dedicated extra network link between redundant hosts. +Strong points of the CARP protocol are: very low overhead, cryptographically signed messages, interoperability between +different operating systems and no need for any dedicated extra network link between redundant hosts. ### Installation diff --git a/docs/services/xorp.md b/docs/services/xorp.md index 6b786964..a9bd108d 100644 --- a/docs/services/xorp.md +++ b/docs/services/xorp.md @@ -1,36 +1,48 @@ # XORP routing suite -* Table of Contents -{:toc} - ## Overview -XORP is an open networking platform that supports OSPF, RIP, BGP, OLSR, VRRP, PIM, IGMP (Multicast) and other routing protocols. Most protocols support IPv4 and IPv6 where applicable. It is known to work on various Linux distributions and flavors of BSD. +XORP is an open networking platform that supports OSPF, RIP, BGP, OLSR, VRRP, PIM, IGMP (Multicast) and other routing +protocols. Most protocols support IPv4 and IPv6 where applicable. It is known to work on various Linux distributions and +flavors of BSD. -XORP started life as a project at the ICSI Center for Open Networking (ICON) at the International Computer Science Institute in Berkeley, California, USA, and spent some time with the team at XORP, Inc. It is now maintained and improved on a volunteer basis by a core of long-term XORP developers and some newer contributors. +XORP started life as a project at the ICSI Center for Open Networking (ICON) at the International Computer Science +Institute in Berkeley, California, USA, and spent some time with the team at XORP, Inc. It is now maintained and +improved on a volunteer basis by a core of long-term XORP developers and some newer contributors. -XORP's primary goal is to be an open platform for networking protocol implementations and an alternative to proprietary and closed networking products in the marketplace today. It is the only open source platform to offer integrated multicast capability. +XORP's primary goal is to be an open platform for networking protocol implementations and an alternative to proprietary +and closed networking products in the marketplace today. It is the only open source platform to offer integrated +multicast capability. XORP design philosophy is: - * modularity - * extensibility - * performance - * robustness -This is achieved by carefully separating functionalities into independent modules, and by providing an API for each module. -XORP divides into two subsystems. The higher-level ("user-level") subsystem consists of the routing protocols. The lower-level ("kernel") manages the forwarding path, and provides APIs for the higher-level to access. +* modularity +* extensibility +* performance +* robustness + This is achieved by carefully separating functionalities into independent modules, and by providing an API for each + module. -User-level XORP uses multi-process architecture with one process per routing protocol, and a novel inter-process communication mechanism called XRL (XORP Resource Locator). +XORP divides into two subsystems. The higher-level ("user-level") subsystem consists of the routing protocols. The +lower-level ("kernel") manages the forwarding path, and provides APIs for the higher-level to access. -The lower-level subsystem can use traditional UNIX kernel forwarding, or Click modular router. The modularity and independency of the lower-level from the user-level subsystem allows for its easily replacement with other solutions including high-end hardware-based forwarding engines. +User-level XORP uses multi-process architecture with one process per routing protocol, and a novel inter-process +communication mechanism called XRL (XORP Resource Locator). + +The lower-level subsystem can use traditional UNIX kernel forwarding, or Click modular router. The modularity and +independency of the lower-level from the user-level subsystem allows for its easily replacement with other solutions +including high-end hardware-based forwarding engines. ## Installation In order to be able to install the XORP Routing Suite, you must first install scons in order to compile it. + ```shell sudo apt-get install scons ``` + Then, download XORP from its official [release web page](http://www.xorp.org/releases/current/). + ```shell http://www.xorp.org/releases/current/ cd xorp From fcf1448ab65810bfe42932be34307d28f69761e8 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Tue, 28 Mar 2023 21:51:27 -0700 Subject: [PATCH 13/70] docs: small documentation cleanup --- docs/grpc.md | 4 ++-- docs/index.md | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/grpc.md b/docs/grpc.md index 3319825c..8c66a811 100644 --- a/docs/grpc.md +++ b/docs/grpc.md @@ -1,4 +1,4 @@ -# gRPC API +* Table of Contents ## Overview @@ -18,7 +18,7 @@ to help provide some conveniences when using the API. ### Client HTTP Proxy -Since gRPC is HTTP2 based, proxy configurations can cause issues. By default +Since gRPC is HTTP2 based, proxy configurations can cause issues. By default, the client disables proxy support to avoid issues when a proxy is present. You can enable and properly account for this issue when needed. diff --git a/docs/index.md b/docs/index.md index e7ff92bb..4afec59f 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,13 +4,14 @@ CORE (Common Open Research Emulator) is a tool for building virtual networks. As an emulator, CORE builds a representation of a real computer network that runs in real time, as opposed to simulation, where abstract models are -used. The live-running emulation can be connected to physical networks and routers. It provides an environment for +used. The live-running emulation can be connected to physical networks and routers. It provides an environment for running real applications and protocols, taking advantage of tools provided by the Linux operating system. CORE is typically used for network and protocol research, demonstrations, application and platform testing, evaluating networking scenarios, security studies, and increasing the size of physical test networks. ### Key Features + * Efficient and scalable * Runs applications and protocols without modification * Drag and drop GUI From 2eb29525de3634160021dac0693e01869dd4baf3 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Mon, 10 Apr 2023 08:13:01 -0700 Subject: [PATCH 14/70] gui: fix issue deleting nodes/links attached to rj45 nodes --- daemon/core/gui/graph/edges.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/daemon/core/gui/graph/edges.py b/daemon/core/gui/graph/edges.py index 9032659c..0e56781d 100644 --- a/daemon/core/gui/graph/edges.py +++ b/daemon/core/gui/graph/edges.py @@ -751,9 +751,9 @@ class CanvasEdge(Edge): self.src.edges.discard(self) if self.dst: self.dst.edges.discard(self) - if self.link.iface1: + if self.link.iface1 and not nodeutils.is_rj45(self.src.core_node): del self.src.ifaces[self.link.iface1.id] - if self.link.iface2: + if self.link.iface2 and not nodeutils.is_rj45(self.dst.core_node): del self.dst.ifaces[self.link.iface2.id] if self.src.is_wireless(): self.dst.delete_antenna() From c4443040400279c6ea6bda3c95e663b00db40a55 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Mon, 10 Apr 2023 11:19:46 -0700 Subject: [PATCH 15/70] docs: fixed issue with bad imports in grpc doc examples --- docs/grpc.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/grpc.md b/docs/grpc.md index 8c66a811..3266a57d 100644 --- a/docs/grpc.md +++ b/docs/grpc.md @@ -177,7 +177,7 @@ core.edit_link(session.id, link) ```python # required imports from core.api.grpc import client -from core.api.grpc.core_pb2 import Position +from core.api.grpc.wrappers import Position # interface helper iface_helper = client.InterfaceHelper(ip4_prefix="10.0.0.0/24", ip6_prefix="2001::/64") @@ -209,7 +209,7 @@ core.start_session(session) ```python # required imports from core.api.grpc import client -from core.api.grpc.core_pb2 import NodeType, Position +from core.api.grpc.wrappers import NodeType, Position # interface helper iface_helper = client.InterfaceHelper(ip4_prefix="10.0.0.0/24", ip6_prefix="2001::/64") @@ -244,7 +244,7 @@ core.start_session(session) ```python # required imports from core.api.grpc import client -from core.api.grpc.core_pb2 import NodeType, Position +from core.api.grpc.wrappers import NodeType, Position # interface helper iface_helper = client.InterfaceHelper(ip4_prefix="10.0.0.0/24", ip6_prefix="2001::/64") @@ -309,7 +309,7 @@ will use the defaults. When no configuration is used, the defaults are used. ```python # required imports from core.api.grpc import client -from core.api.grpc.core_pb2 import NodeType, Position +from core.api.grpc.wrappers import NodeType, Position from core.emane.models.ieee80211abg import EmaneIeee80211abgModel # interface helper From cafbb15b1e7f9b3b87376c40b039227699c3d43b Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Tue, 11 Apr 2023 10:09:40 -0700 Subject: [PATCH 16/70] daemon: small cleanup in distributed start --- daemon/core/emulator/distributed.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/daemon/core/emulator/distributed.py b/daemon/core/emulator/distributed.py index 1d09ce1e..8ef80dea 100644 --- a/daemon/core/emulator/distributed.py +++ b/daemon/core/emulator/distributed.py @@ -187,8 +187,7 @@ class DistributedController: :return: nothing """ mtu = self.session.options.get_int("mtu") - for node_id in self.session.nodes: - node = self.session.nodes[node_id] + for node in self.session.nodes.values(): if not isinstance(node, CtrlNet) or node.serverintf is not None: continue for name in self.servers: From a6a09d9e568246f45b39b042836a65c0a62e4256 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Tue, 11 Apr 2023 12:45:50 -0700 Subject: [PATCH 17/70] daemon: added new cleaned up controlnet code, for future use --- daemon/core/emulator/controlnets.py | 239 ++++++++++++++++++++++++++++ 1 file changed, 239 insertions(+) create mode 100644 daemon/core/emulator/controlnets.py diff --git a/daemon/core/emulator/controlnets.py b/daemon/core/emulator/controlnets.py new file mode 100644 index 00000000..a79bdbed --- /dev/null +++ b/daemon/core/emulator/controlnets.py @@ -0,0 +1,239 @@ +import logging +from typing import TYPE_CHECKING, Optional, Tuple + +from core import utils +from core.emulator.data import InterfaceData +from core.errors import CoreError +from core.nodes.base import CoreNode +from core.nodes.interface import DEFAULT_MTU +from core.nodes.network import CtrlNet + +logger = logging.getLogger(__name__) + +if TYPE_CHECKING: + from core.emulator.session import Session + +CTRL_NET_ID: int = 9001 +ETC_HOSTS_PATH: str = "/etc/hosts" + + +class ControlNetManager: + def __init__(self, session: "Session") -> None: + self.session: "Session" = session + self.etc_hosts_header: str = f"CORE session {self.session.id} host entries" + + def _etc_hosts_enabled(self) -> bool: + """ + Determines if /etc/hosts should be configured. + + :return: True if /etc/hosts should be configured, False otherwise + """ + return self.session.options.get_bool("update_etc_hosts", False) + + def _get_server_ifaces( + self, + ) -> Tuple[None, Optional[str], Optional[str], Optional[str]]: + """ + Retrieve control net server interfaces. + + :return: control net server interfaces + """ + d0 = self.session.options.get("controlnetif0") + if d0: + logger.error("controlnet0 cannot be assigned with a host interface") + d1 = self.session.options.get("controlnetif1") + d2 = self.session.options.get("controlnetif2") + d3 = self.session.options.get("controlnetif3") + return None, d1, d2, d3 + + def _get_prefixes( + self, + ) -> Tuple[Optional[str], Optional[str], Optional[str], Optional[str]]: + """ + Retrieve control net prefixes. + + :return: control net prefixes + """ + p = self.session.options.get("controlnet") + p0 = self.session.options.get("controlnet0") + p1 = self.session.options.get("controlnet1") + p2 = self.session.options.get("controlnet2") + p3 = self.session.options.get("controlnet3") + if not p0 and p: + p0 = p + return p0, p1, p2, p3 + + def update_etc_hosts(self) -> None: + """ + Add the IP addresses of control interfaces to the /etc/hosts file. + + :return: nothing + """ + if not self._etc_hosts_enabled(): + return + control_net = self.get_control_net(0) + entries = "" + for iface in control_net.get_ifaces(): + name = iface.node.name + for ip in iface.ips(): + entries += f"{ip.ip} {name}\n" + logger.info("adding entries to /etc/hosts") + utils.file_munge(ETC_HOSTS_PATH, self.etc_hosts_header, entries) + + def clear_etc_hosts(self) -> None: + """ + Clear IP addresses of control interfaces from the /etc/hosts file. + + :return: nothing + """ + if not self._etc_hosts_enabled(): + return + logger.info("removing /etc/hosts file entries") + utils.file_demunge(ETC_HOSTS_PATH, self.etc_hosts_header) + + def get_control_net_index(self, dev: str) -> int: + """ + Retrieve control net index. + + :param dev: device to get control net index for + :return: control net index, -1 otherwise + """ + if dev[0:4] == "ctrl" and int(dev[4]) in (0, 1, 2, 3): + index = int(dev[4]) + if index == 0: + return index + if index < 4 and self._get_prefixes()[index] is not None: + return index + return -1 + + def get_control_net(self, index: int) -> Optional[CtrlNet]: + """ + Retrieve a control net based on index. + + :param index: control net index + :return: control net when available, None otherwise + """ + try: + return self.session.get_node(CTRL_NET_ID + index, CtrlNet) + except CoreError: + return None + + def add_control_net( + self, index: int, conf_required: bool = True + ) -> Optional[CtrlNet]: + """ + Create a control network bridge as necessary. The conf_reqd flag, + when False, causes a control network bridge to be added even if + one has not been configured. + + :param index: network index to add + :param conf_required: flag to check if conf is required + :return: control net node + """ + logger.info( + "checking to add control net index(%s) conf_required(%s)", + index, + conf_required, + ) + # check for valid index + if not (0 <= index <= 3): + raise CoreError(f"invalid control net index({index})") + # return any existing control net bridge + control_net = self.get_control_net(index) + if control_net: + logger.info("control net index(%s) already exists", index) + return control_net + # retrieve prefix for current index + index_prefix = self._get_prefixes()[index] + if not index_prefix: + if conf_required: + return None + else: + index_prefix = CtrlNet.DEFAULT_PREFIX_LIST[index] + # retrieve valid prefix from old style values + prefixes = index_prefix.split() + if len(prefixes) > 1: + # a list of per-host prefixes is provided + try: + prefix = prefixes[0].split(":", 1)[1] + except IndexError: + prefix = prefixes[0] + else: + prefix = prefixes[0] + # use the updown script for control net 0 only + updown_script = None + if index == 0: + updown_script = self.session.options.get("controlnet_updown_script") + # build a new controlnet bridge + _id = CTRL_NET_ID + index + server_iface = self._get_server_ifaces()[index] + logger.info( + "adding controlnet(%s) prefix(%s) updown(%s) server interface(%s)", + _id, + prefix, + updown_script, + server_iface, + ) + options = CtrlNet.create_options() + options.prefix = prefix + options.updown_script = updown_script + options.serverintf = server_iface + control_net = self.session.create_node(CtrlNet, False, _id, options=options) + control_net.brname = f"ctrl{index}.{self.session.short_session_id()}" + control_net.startup() + return control_net + + def remove_control_net(self, index: int) -> None: + """ + Removes control net. + + :param index: index of control net to remove + :return: nothing + """ + control_net = self.get_control_net(index) + if control_net: + logger.info("removing control net index(%s)", index) + self.session.delete_node(control_net.id) + + def add_control_iface(self, node: CoreNode, index: int) -> None: + """ + Adds a control net interface to a node. + + :param node: node to add control net interface to + :param index: index of control net to add interface to + :return: nothing + :raises CoreError: if control net doesn't exist, interface already exists, + or there is an error creating the interface + """ + control_net = self.get_control_net(index) + if not control_net: + raise CoreError(f"control net index({index}) does not exist") + iface_id = control_net.CTRLIF_IDX_BASE + index + if node.ifaces.get(iface_id): + raise CoreError(f"control iface({iface_id}) already exists") + try: + logger.info( + "node(%s) adding control net index(%s) interface(%s)", + node.name, + index, + iface_id, + ) + ip4 = control_net.prefix[node.id] + ip4_mask = control_net.prefix.prefixlen + iface_data = InterfaceData( + id=iface_id, + name=f"ctrl{index}", + mac=utils.random_mac(), + ip4=ip4, + ip4_mask=ip4_mask, + mtu=DEFAULT_MTU, + ) + iface = node.create_iface(iface_data) + control_net.attach(iface) + iface.control = True + except ValueError: + raise CoreError( + f"error adding control net interface to node({node.id}), " + f"invalid control net prefix({control_net.prefix}), " + "a longer prefix length may be required" + ) From cdc8c7360dede3074323e2bde79cdd6b1e2c9cec Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Wed, 12 Apr 2023 11:58:25 -0700 Subject: [PATCH 18/70] daemon: added refactored cleaned up code to use for hooks --- daemon/core/emulator/hooks.py | 155 ++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 daemon/core/emulator/hooks.py diff --git a/daemon/core/emulator/hooks.py b/daemon/core/emulator/hooks.py new file mode 100644 index 00000000..984ba233 --- /dev/null +++ b/daemon/core/emulator/hooks.py @@ -0,0 +1,155 @@ +import logging +import subprocess +from pathlib import Path +from typing import Callable, Dict, List + +from core.emulator.enumerations import EventTypes +from core.errors import CoreError + +logger = logging.getLogger(__name__) + + +class HookManager: + """ + Provides functionality for managing and running script/callback hooks. + """ + + def __init__(self) -> None: + """ + Create a HookManager instance. + """ + self.script_hooks: Dict[EventTypes, Dict[str, str]] = {} + self.callback_hooks: Dict[EventTypes, List[Callable[[], None]]] = {} + + def reset(self) -> None: + """ + Clear all current hooks. + + :return: nothing + """ + self.script_hooks.clear() + self.callback_hooks.clear() + + def add_script_hook(self, state: EventTypes, file_name: str, data: str) -> None: + """ + Add a hook script to run for a given state. + + :param state: state to run hook on + :param file_name: hook file name + :param data: file data + :return: nothing + """ + logger.info("setting state hook: %s - %s", state, file_name) + state_hooks = self.script_hooks.setdefault(state, {}) + if file_name in state_hooks: + raise CoreError( + "adding duplicate state(%s) hook script(%s)", + state.name, + file_name, + ) + state_hooks[file_name] = data + + def delete_script_hook(self, state: EventTypes, file_name: str) -> None: + """ + Delete a script hook from a given state. + + :param state: state to delete script hook from + :param file_name: name of script to delete + :return: nothing + """ + state_hooks = self.script_hooks.get(state, {}) + if file_name not in state_hooks: + raise CoreError( + "deleting state(%s) hook script(%s) that does not exist", + state.name, + file_name, + ) + del state_hooks[file_name] + + def add_callback_hook( + self, state: EventTypes, hook: Callable[[EventTypes], None] + ) -> None: + """ + Add a hook callback to run for a state. + + :param state: state to add hook for + :param hook: callback to run + :return: nothing + """ + hooks = self.callback_hooks.setdefault(state, []) + if hook in hooks: + name = getattr(callable, "__name__", repr(hook)) + raise CoreError( + "adding duplicate state(%s) hook callback(%s)", + state.name, + name, + ) + hooks.append(hook) + + def delete_callback_hook( + self, state: EventTypes, hook: Callable[[EventTypes], None] + ) -> None: + """ + Delete a state hook. + + :param state: state to delete hook for + :param hook: hook to delete + :return: nothing + """ + hooks = self.callback_hooks.get(state, []) + if hook not in hooks: + name = getattr(callable, "__name__", repr(hook)) + raise CoreError( + "deleting state(%s) hook callback(%s) that does not exist", + state.name, + name, + ) + hooks.remove(hook) + + def run_hooks( + self, state: EventTypes, directory: Path, env: Dict[str, str] + ) -> None: + """ + Run all hooks for the current state. + + :param state: state to run hooks for + :param directory: directory to run script hooks within + :param env: environment to run script hooks with + :return: nothing + """ + for state_hooks in self.script_hooks.get(state, {}): + for file_name, data in state_hooks.items(): + logger.info("running hook %s", file_name) + file_path = directory / file_name + log_path = directory / f"{file_name}.log" + try: + with file_path.open("w") as f: + f.write(data) + with log_path.open("w") as f: + args = ["/bin/sh", file_name] + subprocess.check_call( + args, + stdout=f, + stderr=subprocess.STDOUT, + close_fds=True, + cwd=directory, + env=env, + ) + except (IOError, subprocess.CalledProcessError) as e: + raise CoreError( + "failure running state(%s) hook script(%s): %s", + state.name, + file_name, + e, + ) + for hook in self.callback_hooks.get(state, []): + try: + hook() + except Exception as e: + name = getattr(callable, "__name__", repr(hook)) + raise CoreError( + "failure running state(%s) hook callback(%s): %s", + state.name, + name, + e, + ) From b6b300207ba1018cd7e1334a6d6403a75475a2da Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Wed, 12 Apr 2023 14:44:51 -0700 Subject: [PATCH 19/70] daemon: added convenience method to check if a session is running, which is used in multiple places, providing a cleaner and easier to read experience --- daemon/core/api/grpc/server.py | 2 +- daemon/core/emane/nodes.py | 6 +++--- daemon/core/emulator/session.py | 15 +++++++++++---- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/daemon/core/api/grpc/server.py b/daemon/core/api/grpc/server.py index 842400ca..f657c20a 100644 --- a/daemon/core/api/grpc/server.py +++ b/daemon/core/api/grpc/server.py @@ -1104,7 +1104,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer): node_id = request.wlan_config.node_id config = request.wlan_config.config session.mobility.set_model_config(node_id, BasicRangeModel.name, config) - if session.state == EventTypes.RUNTIME_STATE: + if session.is_running(): node = self.get_node(session, node_id, context, WlanNode) node.updatemodel(config) return SetWlanConfigResponse(result=True) diff --git a/daemon/core/emane/nodes.py b/daemon/core/emane/nodes.py index 1a0b6e75..7264fe88 100644 --- a/daemon/core/emane/nodes.py +++ b/daemon/core/emane/nodes.py @@ -10,7 +10,7 @@ from typing import TYPE_CHECKING, Callable, Dict, List, Optional, Type, Union from core.emulator.data import InterfaceData, LinkData, LinkOptions from core.emulator.distributed import DistributedServer -from core.emulator.enumerations import EventTypes, MessageFlags, RegisterTlvs +from core.emulator.enumerations import MessageFlags, RegisterTlvs from core.errors import CoreCommandError, CoreError from core.nodes.base import CoreNetworkBase, CoreNode, NodeOptions from core.nodes.interface import CoreInterface @@ -167,7 +167,7 @@ class EmaneNet(CoreNetworkBase): self.mobility: Optional[WayPointMobility] = None model_class = self.session.emane.get_model(options.emane_model) self.wireless_model: Optional["EmaneModel"] = model_class(self.session, self.id) - if self.session.state == EventTypes.RUNTIME_STATE: + if self.session.is_running(): self.session.emane.add_node(self) @classmethod @@ -280,7 +280,7 @@ class EmaneNet(CoreNetworkBase): self.attach(iface) if self.up: iface.startup() - if self.session.state == EventTypes.RUNTIME_STATE: + if self.session.is_running(): self.session.emane.start_iface(self, iface) return iface diff --git a/daemon/core/emulator/session.py b/daemon/core/emulator/session.py index b8b1b35e..bd4953d1 100644 --- a/daemon/core/emulator/session.py +++ b/daemon/core/emulator/session.py @@ -520,8 +520,7 @@ class Session: if isinstance(node, WlanNode): self.mobility.set_model_config(node.id, BasicRangeModel.name) # boot core nodes after runtime - is_runtime = self.state == EventTypes.RUNTIME_STATE - if is_runtime and isinstance(node, CoreNode): + if self.is_running() and isinstance(node, CoreNode): self.add_remove_control_iface(node, remove=False) self.boot_node(node) self.sdt.add_node(node) @@ -1011,7 +1010,7 @@ class Session: :return: list of service boot errors during startup """ - if self.state == EventTypes.RUNTIME_STATE: + if self.is_running(): logger.warning("ignoring instantiate, already in runtime state") return [] # create control net interfaces and network tunnels @@ -1365,7 +1364,7 @@ class Session: Return the current time we have been in the runtime state, or zero if not in runtime. """ - if self.state == EventTypes.RUNTIME_STATE: + if self.is_running(): return time.monotonic() - self.state_time else: return 0.0 @@ -1442,3 +1441,11 @@ class Session: color = LINK_COLORS[index] self.link_colors[network_id] = color return color + + def is_running(self) -> bool: + """ + Convenience for checking if this session is in the runtime state. + + :return: True if in the runtime state, False otherwise + """ + return self.state == EventTypes.RUNTIME_STATE From da3cebe1cd87d928e79391861e3ee8a6d4756079 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Wed, 12 Apr 2023 16:14:58 -0700 Subject: [PATCH 20/70] daemon: added refactored cleaned up logic for future handling of broadcasting data --- daemon/core/emulator/broadcast.py | 70 +++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 daemon/core/emulator/broadcast.py diff --git a/daemon/core/emulator/broadcast.py b/daemon/core/emulator/broadcast.py new file mode 100644 index 00000000..659bc75f --- /dev/null +++ b/daemon/core/emulator/broadcast.py @@ -0,0 +1,70 @@ +from collections.abc import Callable +from typing import TypeVar, Union + +from core.emulator.data import ( + ConfigData, + EventData, + ExceptionData, + FileData, + LinkData, + NodeData, +) +from core.errors import CoreError + +T = TypeVar( + "T", + bound=Union[ + EventData, + ExceptionData, + NodeData, + LinkData, + FileData, + ConfigData, + ], +) + + +class BroadcastManager: + def __init__(self) -> None: + """ + Creates a BroadcastManager instance. + """ + self.handlers: dict[type[T], set[Callable[[T], None]]] = {} + + def send(self, data: T) -> None: + """ + Retrieve handlers for data, and run all current handlers. + + :param data: data to provide to handlers + :return: nothing + """ + handlers = self.handlers.get(type(data), set()) + for handler in handlers: + handler(data) + + def add_handler(self, data_type: type[T], handler: Callable[[T], None]) -> None: + """ + Add a handler for a given data type. + + :param data_type: type of data to add handler for + :param handler: handler to add + :return: nothing + """ + handlers = self.handlers.setdefault(data_type, set()) + handlers.add(handler) + + def remove_handler(self, data_type: type[T], handler: Callable[[T], None]) -> None: + """ + Remove a handler for a given data type. + + :param data_type: type of data to remove handler for + :param handler: handler to remove + :return: nothing + """ + handlers = self.handlers.get(data_type, set()) + if handler not in handlers: + raise CoreError( + f"cannot remove data({data_type}) handler({repr(handler)}), " + f"does not exist " + ) + handlers.remove(handler) From 6ff2abf0b8f0dc7ae8cb8bfa9bddefedcb66d566 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Wed, 12 Apr 2023 16:53:08 -0700 Subject: [PATCH 21/70] daemon: fixed issue for CoreError messages in new hooks module, updated new modules to all use non deprecated type hinting --- daemon/core/emulator/broadcast.py | 7 +++++- daemon/core/emulator/controlnets.py | 6 ++--- daemon/core/emulator/hooks.py | 38 +++++++++++------------------ 3 files changed, 23 insertions(+), 28 deletions(-) diff --git a/daemon/core/emulator/broadcast.py b/daemon/core/emulator/broadcast.py index 659bc75f..929144de 100644 --- a/daemon/core/emulator/broadcast.py +++ b/daemon/core/emulator/broadcast.py @@ -51,6 +51,11 @@ class BroadcastManager: :return: nothing """ handlers = self.handlers.setdefault(data_type, set()) + if handler in handlers: + raise CoreError( + f"cannot add data({data_type}) handler({repr(handler)}), " + f"already exists" + ) handlers.add(handler) def remove_handler(self, data_type: type[T], handler: Callable[[T], None]) -> None: @@ -65,6 +70,6 @@ class BroadcastManager: if handler not in handlers: raise CoreError( f"cannot remove data({data_type}) handler({repr(handler)}), " - f"does not exist " + f"does not exist" ) handlers.remove(handler) diff --git a/daemon/core/emulator/controlnets.py b/daemon/core/emulator/controlnets.py index a79bdbed..27b00367 100644 --- a/daemon/core/emulator/controlnets.py +++ b/daemon/core/emulator/controlnets.py @@ -1,5 +1,5 @@ import logging -from typing import TYPE_CHECKING, Optional, Tuple +from typing import TYPE_CHECKING, Optional from core import utils from core.emulator.data import InterfaceData @@ -32,7 +32,7 @@ class ControlNetManager: def _get_server_ifaces( self, - ) -> Tuple[None, Optional[str], Optional[str], Optional[str]]: + ) -> tuple[None, Optional[str], Optional[str], Optional[str]]: """ Retrieve control net server interfaces. @@ -48,7 +48,7 @@ class ControlNetManager: def _get_prefixes( self, - ) -> Tuple[Optional[str], Optional[str], Optional[str], Optional[str]]: + ) -> tuple[Optional[str], Optional[str], Optional[str], Optional[str]]: """ Retrieve control net prefixes. diff --git a/daemon/core/emulator/hooks.py b/daemon/core/emulator/hooks.py index 984ba233..5b9522e5 100644 --- a/daemon/core/emulator/hooks.py +++ b/daemon/core/emulator/hooks.py @@ -1,7 +1,7 @@ import logging import subprocess +from collections.abc import Callable from pathlib import Path -from typing import Callable, Dict, List from core.emulator.enumerations import EventTypes from core.errors import CoreError @@ -18,8 +18,8 @@ class HookManager: """ Create a HookManager instance. """ - self.script_hooks: Dict[EventTypes, Dict[str, str]] = {} - self.callback_hooks: Dict[EventTypes, List[Callable[[], None]]] = {} + self.script_hooks: dict[EventTypes, dict[str, str]] = {} + self.callback_hooks: dict[EventTypes, list[Callable[[], None]]] = {} def reset(self) -> None: """ @@ -43,9 +43,7 @@ class HookManager: state_hooks = self.script_hooks.setdefault(state, {}) if file_name in state_hooks: raise CoreError( - "adding duplicate state(%s) hook script(%s)", - state.name, - file_name, + f"adding duplicate state({state.name}) hook script({file_name})", ) state_hooks[file_name] = data @@ -60,9 +58,8 @@ class HookManager: state_hooks = self.script_hooks.get(state, {}) if file_name not in state_hooks: raise CoreError( - "deleting state(%s) hook script(%s) that does not exist", - state.name, - file_name, + f"deleting state({state.name}) hook script({file_name}) " + "that does not exist", ) del state_hooks[file_name] @@ -80,9 +77,7 @@ class HookManager: if hook in hooks: name = getattr(callable, "__name__", repr(hook)) raise CoreError( - "adding duplicate state(%s) hook callback(%s)", - state.name, - name, + f"adding duplicate state({state.name}) hook callback({name})", ) hooks.append(hook) @@ -100,14 +95,13 @@ class HookManager: if hook not in hooks: name = getattr(callable, "__name__", repr(hook)) raise CoreError( - "deleting state(%s) hook callback(%s) that does not exist", - state.name, - name, + f"deleting state({state.name}) hook callback({name}) " + "that does not exist", ) hooks.remove(hook) def run_hooks( - self, state: EventTypes, directory: Path, env: Dict[str, str] + self, state: EventTypes, directory: Path, env: dict[str, str] ) -> None: """ Run all hooks for the current state. @@ -137,10 +131,8 @@ class HookManager: ) except (IOError, subprocess.CalledProcessError) as e: raise CoreError( - "failure running state(%s) hook script(%s): %s", - state.name, - file_name, - e, + f"failure running state({state.name}) " + f"hook script({file_name}): {e}", ) for hook in self.callback_hooks.get(state, []): try: @@ -148,8 +140,6 @@ class HookManager: except Exception as e: name = getattr(callable, "__name__", repr(hook)) raise CoreError( - "failure running state(%s) hook callback(%s): %s", - state.name, - name, - e, + f"failure running state({state.name}) " + f"hook callback({name}): {e}", ) From e770bcd47c5e9caecf962cd8514514f657f9d72e Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Thu, 13 Apr 2023 11:22:37 -0700 Subject: [PATCH 22/70] daemon: update deprecated typing for core.api --- daemon/core/api/grpc/client.py | 41 +++++----- daemon/core/api/grpc/events.py | 3 +- daemon/core/api/grpc/grpcutils.py | 44 +++++------ daemon/core/api/grpc/server.py | 10 ++- daemon/core/api/grpc/wrappers.py | 124 +++++++++++++++--------------- 5 files changed, 113 insertions(+), 109 deletions(-) diff --git a/daemon/core/api/grpc/client.py b/daemon/core/api/grpc/client.py index a1559d64..c66b5b7c 100644 --- a/daemon/core/api/grpc/client.py +++ b/daemon/core/api/grpc/client.py @@ -4,10 +4,11 @@ gRpc client for interfacing with CORE. import logging import threading +from collections.abc import Callable, Generator, Iterable from contextlib import contextmanager from pathlib import Path from queue import Queue -from typing import Any, Callable, Dict, Generator, Iterable, List, Optional, Tuple +from typing import Any, Optional import grpc @@ -235,7 +236,7 @@ class CoreGrpcClient: def start_session( self, session: wrappers.Session, definition: bool = False - ) -> Tuple[bool, List[str]]: + ) -> tuple[bool, list[str]]: """ Start a session. @@ -285,7 +286,7 @@ class CoreGrpcClient: response = self.stub.DeleteSession(request) return response.result - def get_sessions(self) -> List[wrappers.SessionSummary]: + def get_sessions(self) -> list[wrappers.SessionSummary]: """ Retrieves all currently known sessions. @@ -354,7 +355,7 @@ class CoreGrpcClient: self, session_id: int, handler: Callable[[wrappers.Event], None], - events: List[wrappers.EventType] = None, + events: list[wrappers.EventType] = None, ) -> grpc.Future: """ Listen for session events. @@ -428,7 +429,7 @@ class CoreGrpcClient: def get_node( self, session_id: int, node_id: int - ) -> Tuple[wrappers.Node, List[wrappers.Interface], List[wrappers.Link]]: + ) -> tuple[wrappers.Node, list[wrappers.Interface], list[wrappers.Link]]: """ Get node details. @@ -536,7 +537,7 @@ class CoreGrpcClient: command: str, wait: bool = True, shell: bool = False, - ) -> Tuple[int, str]: + ) -> tuple[int, str]: """ Send command to a node and get the output. @@ -575,7 +576,7 @@ class CoreGrpcClient: def add_link( self, session_id: int, link: wrappers.Link, source: str = None - ) -> Tuple[bool, wrappers.Interface, wrappers.Interface]: + ) -> tuple[bool, wrappers.Interface, wrappers.Interface]: """ Add a link between nodes. @@ -646,7 +647,7 @@ class CoreGrpcClient: def get_mobility_config( self, session_id: int, node_id: int - ) -> Dict[str, wrappers.ConfigOption]: + ) -> dict[str, wrappers.ConfigOption]: """ Get mobility configuration for a node. @@ -660,7 +661,7 @@ class CoreGrpcClient: return wrappers.ConfigOption.from_dict(response.config) def set_mobility_config( - self, session_id: int, node_id: int, config: Dict[str, str] + self, session_id: int, node_id: int, config: dict[str, str] ) -> bool: """ Set mobility configuration for a node. @@ -706,7 +707,7 @@ class CoreGrpcClient: response = self.stub.GetConfig(request) return wrappers.CoreConfig.from_proto(response) - def get_service_defaults(self, session_id: int) -> List[wrappers.ServiceDefault]: + def get_service_defaults(self, session_id: int) -> list[wrappers.ServiceDefault]: """ Get default services for different default node models. @@ -723,7 +724,7 @@ class CoreGrpcClient: return defaults def set_service_defaults( - self, session_id: int, service_defaults: Dict[str, List[str]] + self, session_id: int, service_defaults: dict[str, list[str]] ) -> bool: """ Set default services for node models. @@ -829,7 +830,7 @@ class CoreGrpcClient: def get_wlan_config( self, session_id: int, node_id: int - ) -> Dict[str, wrappers.ConfigOption]: + ) -> dict[str, wrappers.ConfigOption]: """ Get wlan configuration for a node. @@ -843,7 +844,7 @@ class CoreGrpcClient: return wrappers.ConfigOption.from_dict(response.config) def set_wlan_config( - self, session_id: int, node_id: int, config: Dict[str, str] + self, session_id: int, node_id: int, config: dict[str, str] ) -> bool: """ Set wlan configuration for a node. @@ -861,7 +862,7 @@ class CoreGrpcClient: def get_emane_model_config( self, session_id: int, node_id: int, model: str, iface_id: int = -1 - ) -> Dict[str, wrappers.ConfigOption]: + ) -> dict[str, wrappers.ConfigOption]: """ Get emane model configuration for a node or a node's interface. @@ -909,7 +910,7 @@ class CoreGrpcClient: with open(file_path, "w") as xml_file: xml_file.write(response.data) - def open_xml(self, file_path: Path, start: bool = False) -> Tuple[bool, int]: + def open_xml(self, file_path: Path, start: bool = False) -> tuple[bool, int]: """ Load a local scenario XML file to open as a new session. @@ -940,7 +941,7 @@ class CoreGrpcClient: response = self.stub.EmaneLink(request) return response.result - def get_ifaces(self) -> List[str]: + def get_ifaces(self) -> list[str]: """ Retrieves a list of interfaces available on the host machine that are not a part of a CORE session. @@ -964,7 +965,7 @@ class CoreGrpcClient: def get_node_config_service( self, session_id: int, node_id: int, name: str - ) -> Dict[str, str]: + ) -> dict[str, str]: """ Retrieves information for a specific config service on a node. @@ -982,7 +983,7 @@ class CoreGrpcClient: def get_config_service_rendered( self, session_id: int, node_id: int, name: str - ) -> Dict[str, str]: + ) -> dict[str, str]: """ Retrieve the rendered config service files for a node. @@ -1129,7 +1130,7 @@ class CoreGrpcClient: def get_wireless_config( self, session_id: int, node_id: int - ) -> Dict[str, wrappers.ConfigOption]: + ) -> dict[str, wrappers.ConfigOption]: request = GetWirelessConfigRequest(session_id=session_id, node_id=node_id) response = self.stub.GetWirelessConfig(request) return wrappers.ConfigOption.from_dict(response.config) @@ -1156,7 +1157,7 @@ class CoreGrpcClient: self.channel = None @contextmanager - def context_connect(self) -> Generator: + def context_connect(self) -> Generator[None, None, None]: """ Makes a context manager based connection to the server, will close after context ends. diff --git a/daemon/core/api/grpc/events.py b/daemon/core/api/grpc/events.py index 82f03c20..65a20296 100644 --- a/daemon/core/api/grpc/events.py +++ b/daemon/core/api/grpc/events.py @@ -1,6 +1,7 @@ import logging +from collections.abc import Iterable from queue import Empty, Queue -from typing import Iterable, Optional +from typing import Optional from core.api.grpc import core_pb2, grpcutils from core.api.grpc.grpcutils import convert_link_data diff --git a/daemon/core/api/grpc/grpcutils.py b/daemon/core/api/grpc/grpcutils.py index 434314a4..a05a5e8f 100644 --- a/daemon/core/api/grpc/grpcutils.py +++ b/daemon/core/api/grpc/grpcutils.py @@ -1,7 +1,7 @@ import logging import time from pathlib import Path -from typing import Any, Dict, List, Optional, Tuple, Type, Union +from typing import Any, Optional, Union import grpc from grpc import ServicerContext @@ -63,8 +63,8 @@ class CpuUsage: def add_node_data( - _class: Type[NodeBase], node_proto: core_pb2.Node -) -> Tuple[Position, NodeOptions]: + _class: type[NodeBase], node_proto: core_pb2.Node +) -> tuple[Position, NodeOptions]: """ Convert node protobuf message to data for creating a node. @@ -118,7 +118,7 @@ def link_iface(iface_proto: core_pb2.Interface) -> InterfaceData: def add_link_data( link_proto: core_pb2.Link, -) -> Tuple[InterfaceData, InterfaceData, LinkOptions]: +) -> tuple[InterfaceData, InterfaceData, LinkOptions]: """ Convert link proto to link interfaces and options data. @@ -145,8 +145,8 @@ def add_link_data( def create_nodes( - session: Session, node_protos: List[core_pb2.Node] -) -> Tuple[List[NodeBase], List[Exception]]: + session: Session, node_protos: list[core_pb2.Node] +) -> tuple[list[NodeBase], list[Exception]]: """ Create nodes using a thread pool and wait for completion. @@ -176,8 +176,8 @@ def create_nodes( def create_links( - session: Session, link_protos: List[core_pb2.Link] -) -> Tuple[List[NodeBase], List[Exception]]: + session: Session, link_protos: list[core_pb2.Link] +) -> tuple[list[NodeBase], list[Exception]]: """ Create links using a thread pool and wait for completion. @@ -200,8 +200,8 @@ def create_links( def edit_links( - session: Session, link_protos: List[core_pb2.Link] -) -> Tuple[List[None], List[Exception]]: + session: Session, link_protos: list[core_pb2.Link] +) -> tuple[list[None], list[Exception]]: """ Edit links using a thread pool and wait for completion. @@ -235,7 +235,7 @@ def convert_value(value: Any) -> str: return value -def convert_session_options(session: Session) -> Dict[str, common_pb2.ConfigOption]: +def convert_session_options(session: Session) -> dict[str, common_pb2.ConfigOption]: config_options = {} for option in session.options.options: value = session.options.get(option.id) @@ -252,9 +252,9 @@ def convert_session_options(session: Session) -> Dict[str, common_pb2.ConfigOpti def get_config_options( - config: Dict[str, str], - configurable_options: Union[ConfigurableOptions, Type[ConfigurableOptions]], -) -> Dict[str, common_pb2.ConfigOption]: + config: dict[str, str], + configurable_options: Union[ConfigurableOptions, type[ConfigurableOptions]], +) -> dict[str, common_pb2.ConfigOption]: """ Retrieve configuration options in a form that is used by the grpc server. @@ -283,7 +283,7 @@ def get_config_options( def get_node_proto( - session: Session, node: NodeBase, emane_configs: List[NodeEmaneConfig] + session: Session, node: NodeBase, emane_configs: list[NodeEmaneConfig] ) -> core_pb2.Node: """ Convert CORE node to protobuf representation. @@ -390,7 +390,7 @@ def get_node_proto( ) -def get_links(session: Session, node: NodeBase) -> List[core_pb2.Link]: +def get_links(session: Session, node: NodeBase) -> list[core_pb2.Link]: """ Retrieve a list of links for grpc to use. @@ -435,7 +435,7 @@ def convert_iface(iface: CoreInterface) -> core_pb2.Interface: ) -def convert_core_link(core_link: CoreLink) -> List[core_pb2.Link]: +def convert_core_link(core_link: CoreLink) -> list[core_pb2.Link]: """ Convert core link to protobuf data. @@ -581,7 +581,7 @@ def convert_link( ) -def parse_proc_net_dev(lines: List[str]) -> Dict[str, Any]: +def parse_proc_net_dev(lines: list[str]) -> dict[str, dict[str, float]]: """ Parse lines of output from /proc/net/dev. @@ -599,7 +599,7 @@ def parse_proc_net_dev(lines: List[str]) -> Dict[str, Any]: return stats -def get_net_stats() -> Dict[str, Dict]: +def get_net_stats() -> dict[str, dict[str, float]]: """ Retrieve status about the current interfaces in the system @@ -728,7 +728,7 @@ def get_nem_id( return nem_id -def get_emane_model_configs_dict(session: Session) -> Dict[int, List[NodeEmaneConfig]]: +def get_emane_model_configs_dict(session: Session) -> dict[int, list[NodeEmaneConfig]]: """ Get emane model configuration protobuf data. @@ -751,7 +751,7 @@ def get_emane_model_configs_dict(session: Session) -> Dict[int, List[NodeEmaneCo return configs -def get_hooks(session: Session) -> List[core_pb2.Hook]: +def get_hooks(session: Session) -> list[core_pb2.Hook]: """ Retrieve hook protobuf data for a session. @@ -767,7 +767,7 @@ def get_hooks(session: Session) -> List[core_pb2.Hook]: return hooks -def get_default_services(session: Session) -> List[ServiceDefaults]: +def get_default_services(session: Session) -> list[ServiceDefaults]: """ Retrieve the default service sets for a given session. diff --git a/daemon/core/api/grpc/server.py b/daemon/core/api/grpc/server.py index f657c20a..69822252 100644 --- a/daemon/core/api/grpc/server.py +++ b/daemon/core/api/grpc/server.py @@ -5,9 +5,11 @@ import signal import sys import tempfile import time +from collections.abc import Iterable from concurrent import futures from pathlib import Path -from typing import Iterable, Optional, Pattern, Type +from re import Pattern +from typing import Optional import grpc from grpc import ServicerContext @@ -105,7 +107,7 @@ from core.services.coreservices import ServiceManager logger = logging.getLogger(__name__) _ONE_DAY_IN_SECONDS: int = 60 * 60 * 24 -_INTERFACE_REGEX: Pattern = re.compile(r"beth(?P[0-9a-fA-F]+)") +_INTERFACE_REGEX: Pattern[str] = re.compile(r"beth(?P[0-9a-fA-F]+)") _MAX_WORKERS = 1000 @@ -171,7 +173,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer): return session def get_node( - self, session: Session, node_id: int, context: ServicerContext, _class: Type[NT] + self, session: Session, node_id: int, context: ServicerContext, _class: type[NT] ) -> NT: """ Retrieve node given session and node id @@ -210,7 +212,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer): def validate_service( self, name: str, context: ServicerContext - ) -> Type[ConfigService]: + ) -> type[ConfigService]: """ Validates a configuration service is a valid known service. diff --git a/daemon/core/api/grpc/wrappers.py b/daemon/core/api/grpc/wrappers.py index d3167a98..b7b172fe 100644 --- a/daemon/core/api/grpc/wrappers.py +++ b/daemon/core/api/grpc/wrappers.py @@ -1,7 +1,7 @@ from dataclasses import dataclass, field from enum import Enum from pathlib import Path -from typing import Any, Dict, List, Optional, Set, Tuple +from typing import Any, Optional from core.api.grpc import ( common_pb2, @@ -114,13 +114,13 @@ class EventType: class ConfigService: group: str name: str - executables: List[str] - dependencies: List[str] - directories: List[str] - files: List[str] - startup: List[str] - validate: List[str] - shutdown: List[str] + executables: list[str] + dependencies: list[str] + directories: list[str] + files: list[str] + startup: list[str] + validate: list[str] + shutdown: list[str] validation_mode: ConfigServiceValidationMode validation_timer: int validation_period: float @@ -147,8 +147,8 @@ class ConfigService: class ConfigServiceConfig: node_id: int name: str - templates: Dict[str, str] - config: Dict[str, str] + templates: dict[str, str] + config: dict[str, str] @classmethod def from_proto( @@ -164,15 +164,15 @@ class ConfigServiceConfig: @dataclass class ConfigServiceData: - templates: Dict[str, str] = field(default_factory=dict) - config: Dict[str, str] = field(default_factory=dict) + templates: dict[str, str] = field(default_factory=dict) + config: dict[str, str] = field(default_factory=dict) @dataclass class ConfigServiceDefaults: - templates: Dict[str, str] - config: Dict[str, "ConfigOption"] - modes: Dict[str, Dict[str, str]] + templates: dict[str, str] + config: dict[str, "ConfigOption"] + modes: dict[str, dict[str, str]] @classmethod def from_proto( @@ -211,7 +211,7 @@ class Service: @dataclass class ServiceDefault: model: str - services: List[str] + services: list[str] @classmethod def from_proto(cls, proto: services_pb2.ServiceDefaults) -> "ServiceDefault": @@ -220,15 +220,15 @@ class ServiceDefault: @dataclass class NodeServiceData: - executables: List[str] = field(default_factory=list) - dependencies: List[str] = field(default_factory=list) - dirs: List[str] = field(default_factory=list) - configs: List[str] = field(default_factory=list) - startup: List[str] = field(default_factory=list) - validate: List[str] = field(default_factory=list) + executables: list[str] = field(default_factory=list) + dependencies: list[str] = field(default_factory=list) + dirs: list[str] = field(default_factory=list) + configs: list[str] = field(default_factory=list) + startup: list[str] = field(default_factory=list) + validate: list[str] = field(default_factory=list) validation_mode: ServiceValidationMode = ServiceValidationMode.NON_BLOCKING validation_timer: int = 5 - shutdown: List[str] = field(default_factory=list) + shutdown: list[str] = field(default_factory=list) meta: str = None @classmethod @@ -266,7 +266,7 @@ class NodeServiceConfig: node_id: int service: str data: NodeServiceData - files: Dict[str, str] = field(default_factory=dict) + files: dict[str, str] = field(default_factory=dict) @classmethod def from_proto(cls, proto: services_pb2.NodeServiceConfig) -> "NodeServiceConfig": @@ -282,11 +282,11 @@ class NodeServiceConfig: class ServiceConfig: node_id: int service: str - files: List[str] = None - directories: List[str] = None - startup: List[str] = None - validate: List[str] = None - shutdown: List[str] = None + files: list[str] = None + directories: list[str] = None + startup: list[str] = None + validate: list[str] = None + shutdown: list[str] = None def to_proto(self) -> services_pb2.ServiceConfig: return services_pb2.ServiceConfig( @@ -339,8 +339,8 @@ class InterfaceThroughput: @dataclass class ThroughputsEvent: session_id: int - bridge_throughputs: List[BridgeThroughput] - iface_throughputs: List[InterfaceThroughput] + bridge_throughputs: list[BridgeThroughput] + iface_throughputs: list[InterfaceThroughput] @classmethod def from_proto(cls, proto: core_pb2.ThroughputsEvent) -> "ThroughputsEvent": @@ -428,19 +428,19 @@ class ConfigOption: label: str = None type: ConfigOptionType = None group: str = None - select: List[str] = None + select: list[str] = None @classmethod def from_dict( - cls, config: Dict[str, common_pb2.ConfigOption] - ) -> Dict[str, "ConfigOption"]: + cls, config: dict[str, common_pb2.ConfigOption] + ) -> dict[str, "ConfigOption"]: d = {} for key, value in config.items(): d[key] = ConfigOption.from_proto(value) return d @classmethod - def to_dict(cls, config: Dict[str, "ConfigOption"]) -> Dict[str, str]: + def to_dict(cls, config: dict[str, "ConfigOption"]) -> dict[str, str]: return {k: v.value for k, v in config.items()} @classmethod @@ -671,7 +671,7 @@ class EmaneModelConfig: node_id: int model: str iface_id: int = -1 - config: Dict[str, ConfigOption] = None + config: dict[str, ConfigOption] = None @classmethod def from_proto(cls, proto: emane_pb2.GetEmaneModelConfig) -> "EmaneModelConfig": @@ -725,8 +725,8 @@ class Node: type: NodeType = NodeType.DEFAULT model: str = None position: Position = Position(x=0, y=0) - services: Set[str] = field(default_factory=set) - config_services: Set[str] = field(default_factory=set) + services: set[str] = field(default_factory=set) + config_services: set[str] = field(default_factory=set) emane: str = None icon: str = None image: str = None @@ -737,19 +737,19 @@ class Node: canvas: int = None # configurations - emane_model_configs: Dict[ - Tuple[str, Optional[int]], Dict[str, ConfigOption] + emane_model_configs: dict[ + tuple[str, Optional[int]], dict[str, ConfigOption] ] = field(default_factory=dict, repr=False) - wlan_config: Dict[str, ConfigOption] = field(default_factory=dict, repr=False) - wireless_config: Dict[str, ConfigOption] = field(default_factory=dict, repr=False) - mobility_config: Dict[str, ConfigOption] = field(default_factory=dict, repr=False) - service_configs: Dict[str, NodeServiceData] = field( + wlan_config: dict[str, ConfigOption] = field(default_factory=dict, repr=False) + wireless_config: dict[str, ConfigOption] = field(default_factory=dict, repr=False) + mobility_config: dict[str, ConfigOption] = field(default_factory=dict, repr=False) + service_configs: dict[str, NodeServiceData] = field( default_factory=dict, repr=False ) - service_file_configs: Dict[str, Dict[str, str]] = field( + service_file_configs: dict[str, dict[str, str]] = field( default_factory=dict, repr=False ) - config_service_configs: Dict[str, ConfigServiceData] = field( + config_service_configs: dict[str, ConfigServiceData] = field( default_factory=dict, repr=False ) @@ -849,18 +849,18 @@ class Node: wireless_config={k: v.to_proto() for k, v in self.wireless_config.items()}, ) - def set_wlan(self, config: Dict[str, str]) -> None: + def set_wlan(self, config: dict[str, str]) -> None: for key, value in config.items(): option = ConfigOption(name=key, value=value) self.wlan_config[key] = option - def set_mobility(self, config: Dict[str, str]) -> None: + def set_mobility(self, config: dict[str, str]) -> None: for key, value in config.items(): option = ConfigOption(name=key, value=value) self.mobility_config[key] = option def set_emane_model( - self, model: str, config: Dict[str, str], iface_id: int = None + self, model: str, config: dict[str, str], iface_id: int = None ) -> None: key = (model, iface_id) config_options = self.emane_model_configs.setdefault(key, {}) @@ -873,23 +873,23 @@ class Node: class Session: id: int = None state: SessionState = SessionState.DEFINITION - nodes: Dict[int, Node] = field(default_factory=dict) - links: List[Link] = field(default_factory=list) + nodes: dict[int, Node] = field(default_factory=dict) + links: list[Link] = field(default_factory=list) dir: str = None user: str = None - default_services: Dict[str, Set[str]] = field(default_factory=dict) + default_services: dict[str, set[str]] = field(default_factory=dict) location: SessionLocation = SessionLocation( x=0.0, y=0.0, z=0.0, lat=47.57917, lon=-122.13232, alt=2.0, scale=150.0 ) - hooks: Dict[str, Hook] = field(default_factory=dict) - metadata: Dict[str, str] = field(default_factory=dict) + hooks: dict[str, Hook] = field(default_factory=dict) + metadata: dict[str, str] = field(default_factory=dict) file: Path = None - options: Dict[str, ConfigOption] = field(default_factory=dict) - servers: List[Server] = field(default_factory=list) + options: dict[str, ConfigOption] = field(default_factory=dict) + servers: list[Server] = field(default_factory=list) @classmethod def from_proto(cls, proto: core_pb2.Session) -> "Session": - nodes: Dict[int, Node] = {x.id: Node.from_proto(x) for x in proto.nodes} + nodes: dict[int, Node] = {x.id: Node.from_proto(x) for x in proto.nodes} links = [Link.from_proto(x) for x in proto.links] default_services = {x.model: set(x.services) for x in proto.default_services} hooks = {x.file: Hook.from_proto(x) for x in proto.hooks} @@ -987,7 +987,7 @@ class Session: self.links.append(link) return link - def set_options(self, config: Dict[str, str]) -> None: + def set_options(self, config: dict[str, str]) -> None: for key, value in config.items(): option = ConfigOption(name=key, value=value) self.options[key] = option @@ -995,9 +995,9 @@ class Session: @dataclass class CoreConfig: - services: List[Service] = field(default_factory=list) - config_services: List[ConfigService] = field(default_factory=list) - emane_models: List[str] = field(default_factory=list) + services: list[Service] = field(default_factory=list) + config_services: list[ConfigService] = field(default_factory=list) + emane_models: list[str] = field(default_factory=list) @classmethod def from_proto(cls, proto: core_pb2.GetConfigResponse) -> "CoreConfig": @@ -1088,7 +1088,7 @@ class ConfigEvent: node_id: int object: str type: int - data_types: List[int] + data_types: list[int] data_values: str captions: str bitmap: str From 3d722a7721b9403335c05f48ff935542655e56e0 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Thu, 13 Apr 2023 11:58:58 -0700 Subject: [PATCH 23/70] daemon: updating core.configservice and core.configservices to avoid deprecated type hinting --- daemon/core/configservice/base.py | 48 ++-- daemon/core/configservice/dependencies.py | 22 +- daemon/core/configservice/manager.py | 11 +- .../configservices/frrservices/services.py | 68 ++--- .../configservices/nrlservices/services.py | 140 +++++------ .../configservices/quaggaservices/services.py | 68 ++--- .../securityservices/services.py | 96 +++---- .../configservices/utilservices/services.py | 238 +++++++++--------- 8 files changed, 345 insertions(+), 346 deletions(-) diff --git a/daemon/core/configservice/base.py b/daemon/core/configservice/base.py index 3d61edcc..e15260eb 100644 --- a/daemon/core/configservice/base.py +++ b/daemon/core/configservice/base.py @@ -5,7 +5,7 @@ import logging import time from dataclasses import dataclass from pathlib import Path -from typing import Any, Dict, List, Optional +from typing import Any, Optional from mako import exceptions from mako.lookup import TemplateLookup @@ -67,7 +67,7 @@ class ConfigService(abc.ABC): validation_timer: int = 5 # directories to shadow and copy files from - shadow_directories: List[ShadowDir] = [] + shadow_directories: list[ShadowDir] = [] def __init__(self, node: CoreNode) -> None: """ @@ -79,9 +79,9 @@ class ConfigService(abc.ABC): class_file = inspect.getfile(self.__class__) templates_path = Path(class_file).parent.joinpath(TEMPLATES_DIR) self.templates: TemplateLookup = TemplateLookup(directories=templates_path) - self.config: Dict[str, Configuration] = {} - self.custom_templates: Dict[str, str] = {} - self.custom_config: Dict[str, str] = {} + self.config: dict[str, Configuration] = {} + self.custom_templates: dict[str, str] = {} + self.custom_config: dict[str, str] = {} configs = self.default_configs[:] self._define_config(configs) @@ -108,47 +108,47 @@ class ConfigService(abc.ABC): @property @abc.abstractmethod - def directories(self) -> List[str]: + def directories(self) -> list[str]: raise NotImplementedError @property @abc.abstractmethod - def files(self) -> List[str]: + def files(self) -> list[str]: raise NotImplementedError @property @abc.abstractmethod - def default_configs(self) -> List[Configuration]: + def default_configs(self) -> list[Configuration]: raise NotImplementedError @property @abc.abstractmethod - def modes(self) -> Dict[str, Dict[str, str]]: + def modes(self) -> dict[str, dict[str, str]]: raise NotImplementedError @property @abc.abstractmethod - def executables(self) -> List[str]: + def executables(self) -> list[str]: raise NotImplementedError @property @abc.abstractmethod - def dependencies(self) -> List[str]: + def dependencies(self) -> list[str]: raise NotImplementedError @property @abc.abstractmethod - def startup(self) -> List[str]: + def startup(self) -> list[str]: raise NotImplementedError @property @abc.abstractmethod - def validate(self) -> List[str]: + def validate(self) -> list[str]: raise NotImplementedError @property @abc.abstractmethod - def shutdown(self) -> List[str]: + def shutdown(self) -> list[str]: raise NotImplementedError @property @@ -276,7 +276,7 @@ class ConfigService(abc.ABC): f"failure to create service directory: {directory}" ) - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: """ Returns key/value data, used when rendering file templates. @@ -303,7 +303,7 @@ class ConfigService(abc.ABC): """ raise CoreError(f"service({self.name}) unknown template({name})") - def get_templates(self) -> Dict[str, str]: + def get_templates(self) -> dict[str, str]: """ Retrieves mapping of file names to templates for all cases, which includes custom templates, file templates, and text templates. @@ -331,7 +331,7 @@ class ConfigService(abc.ABC): templates[file] = template return templates - def get_rendered_templates(self) -> Dict[str, str]: + def get_rendered_templates(self) -> dict[str, str]: templates = {} data = self.data() for file in sorted(self.files): @@ -339,7 +339,7 @@ class ConfigService(abc.ABC): templates[file] = rendered return templates - def _get_rendered_template(self, file: str, data: Dict[str, Any]) -> str: + def _get_rendered_template(self, file: str, data: dict[str, Any]) -> str: file_path = Path(file) template_path = get_template_path(file_path) if file in self.custom_templates: @@ -426,7 +426,7 @@ class ConfigService(abc.ABC): f"node({self.node.name}) service({self.name}) failed to validate" ) - def _render(self, template: Template, data: Dict[str, Any] = None) -> str: + def _render(self, template: Template, data: dict[str, Any] = None) -> str: """ Renders template providing all associated data to template. @@ -440,7 +440,7 @@ class ConfigService(abc.ABC): node=self.node, config=self.render_config(), **data ) - def render_text(self, text: str, data: Dict[str, Any] = None) -> str: + def render_text(self, text: str, data: dict[str, Any] = None) -> str: """ Renders text based template providing all associated data to template. @@ -458,7 +458,7 @@ class ConfigService(abc.ABC): f"{exceptions.text_error_template().render_unicode()}" ) - def render_template(self, template_path: str, data: Dict[str, Any] = None) -> str: + def render_template(self, template_path: str, data: dict[str, Any] = None) -> str: """ Renders file based template providing all associated data to template. @@ -475,7 +475,7 @@ class ConfigService(abc.ABC): f"{exceptions.text_error_template().render_unicode()}" ) - def _define_config(self, configs: List[Configuration]) -> None: + def _define_config(self, configs: list[Configuration]) -> None: """ Initializes default configuration data. @@ -485,7 +485,7 @@ class ConfigService(abc.ABC): for config in configs: self.config[config.id] = config - def render_config(self) -> Dict[str, str]: + def render_config(self) -> dict[str, str]: """ Returns configuration data key/value pairs for rendering a template. @@ -496,7 +496,7 @@ class ConfigService(abc.ABC): else: return {k: v.default for k, v in self.config.items()} - def set_config(self, data: Dict[str, str]) -> None: + def set_config(self, data: dict[str, str]) -> None: """ Set configuration data from key/value pairs. diff --git a/daemon/core/configservice/dependencies.py b/daemon/core/configservice/dependencies.py index b24c83c6..0bc5d4b6 100644 --- a/daemon/core/configservice/dependencies.py +++ b/daemon/core/configservice/dependencies.py @@ -1,5 +1,5 @@ import logging -from typing import TYPE_CHECKING, Dict, List, Set +from typing import TYPE_CHECKING logger = logging.getLogger(__name__) @@ -12,16 +12,16 @@ class ConfigServiceDependencies: Generates sets of services to start in order of their dependencies. """ - def __init__(self, services: Dict[str, "ConfigService"]) -> None: + def __init__(self, services: dict[str, "ConfigService"]) -> None: """ Create a ConfigServiceDependencies instance. :param services: services for determining dependency sets """ # helpers to check validity - self.dependents: Dict[str, Set[str]] = {} - self.started: Set[str] = set() - self.node_services: Dict[str, "ConfigService"] = {} + self.dependents: dict[str, set[str]] = {} + self.started: set[str] = set() + self.node_services: dict[str, "ConfigService"] = {} for service in services.values(): self.node_services[service.name] = service for dependency in service.dependencies: @@ -29,11 +29,11 @@ class ConfigServiceDependencies: dependents.add(service.name) # used to find paths - self.path: List["ConfigService"] = [] - self.visited: Set[str] = set() - self.visiting: Set[str] = set() + self.path: list["ConfigService"] = [] + self.visited: set[str] = set() + self.visiting: set[str] = set() - def startup_paths(self) -> List[List["ConfigService"]]: + def startup_paths(self) -> list[list["ConfigService"]]: """ Find startup path sets based on service dependencies. @@ -70,7 +70,7 @@ class ConfigServiceDependencies: self.visited.clear() self.visiting.clear() - def _start(self, service: "ConfigService") -> List["ConfigService"]: + def _start(self, service: "ConfigService") -> list["ConfigService"]: """ Starts a oath for checking dependencies for a given service. @@ -81,7 +81,7 @@ class ConfigServiceDependencies: self._reset() return self._visit(service) - def _visit(self, current_service: "ConfigService") -> List["ConfigService"]: + def _visit(self, current_service: "ConfigService") -> list["ConfigService"]: """ Visits a service when discovering dependency chains for service. diff --git a/daemon/core/configservice/manager.py b/daemon/core/configservice/manager.py index 1fd26e43..542f3cc5 100644 --- a/daemon/core/configservice/manager.py +++ b/daemon/core/configservice/manager.py @@ -2,7 +2,6 @@ import logging import pathlib import pkgutil from pathlib import Path -from typing import Dict, List, Type from core import configservices, utils from core.configservice.base import ConfigService @@ -20,9 +19,9 @@ class ConfigServiceManager: """ Create a ConfigServiceManager instance. """ - self.services: Dict[str, Type[ConfigService]] = {} + self.services: dict[str, type[ConfigService]] = {} - def get_service(self, name: str) -> Type[ConfigService]: + def get_service(self, name: str) -> type[ConfigService]: """ Retrieve a service by name. @@ -35,7 +34,7 @@ class ConfigServiceManager: raise CoreError(f"service does not exist {name}") return service_class - def add(self, service: Type[ConfigService]) -> None: + def add(self, service: type[ConfigService]) -> None: """ Add service to manager, checking service requirements have been met. @@ -62,7 +61,7 @@ class ConfigServiceManager: # make service available self.services[name] = service - def load_locals(self) -> List[str]: + def load_locals(self) -> list[str]: """ Search and add config service from local core module. @@ -81,7 +80,7 @@ class ConfigServiceManager: logger.debug("not loading config service(%s): %s", service.name, e) return errors - def load(self, path: Path) -> List[str]: + def load(self, path: Path) -> list[str]: """ Search path provided for config services and add them for being managed. diff --git a/daemon/core/configservices/frrservices/services.py b/daemon/core/configservices/frrservices/services.py index 7ed965be..bc3c2610 100644 --- a/daemon/core/configservices/frrservices/services.py +++ b/daemon/core/configservices/frrservices/services.py @@ -1,5 +1,5 @@ import abc -from typing import Any, Dict, List +from typing import Any from core.config import Configuration from core.configservice.base import ConfigService, ConfigServiceMode @@ -82,23 +82,23 @@ def rj45_check(iface: CoreInterface) -> bool: class FRRZebra(ConfigService): name: str = "FRRzebra" group: str = GROUP - directories: List[str] = ["/usr/local/etc/frr", "/var/run/frr", "/var/log/frr"] - files: List[str] = [ + directories: list[str] = ["/usr/local/etc/frr", "/var/run/frr", "/var/log/frr"] + files: list[str] = [ "/usr/local/etc/frr/frr.conf", "frrboot.sh", "/usr/local/etc/frr/vtysh.conf", "/usr/local/etc/frr/daemons", ] - executables: List[str] = ["zebra"] - dependencies: List[str] = [] - startup: List[str] = ["bash frrboot.sh zebra"] - validate: List[str] = ["pidof zebra"] - shutdown: List[str] = ["killall zebra"] + executables: list[str] = ["zebra"] + dependencies: list[str] = [] + startup: list[str] = ["bash frrboot.sh zebra"] + validate: list[str] = ["pidof zebra"] + shutdown: list[str] = ["killall zebra"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: frr_conf = self.files[0] frr_bin_search = self.node.session.options.get( "frr_bin_search", default="/usr/local/bin /usr/bin /usr/lib/frr" @@ -145,16 +145,16 @@ class FRRZebra(ConfigService): class FrrService(abc.ABC): group: str = GROUP - directories: List[str] = [] - files: List[str] = [] - executables: List[str] = [] - dependencies: List[str] = ["FRRzebra"] - startup: List[str] = [] - validate: List[str] = [] - shutdown: List[str] = [] + directories: list[str] = [] + files: list[str] = [] + executables: list[str] = [] + dependencies: list[str] = ["FRRzebra"] + startup: list[str] = [] + validate: list[str] = [] + shutdown: list[str] = [] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} ipv4_routing: bool = False ipv6_routing: bool = False @@ -175,8 +175,8 @@ class FRROspfv2(FrrService, ConfigService): """ name: str = "FRROSPFv2" - shutdown: List[str] = ["killall ospfd"] - validate: List[str] = ["pidof ospfd"] + shutdown: list[str] = ["killall ospfd"] + validate: list[str] = ["pidof ospfd"] ipv4_routing: bool = True def frr_config(self) -> str: @@ -227,8 +227,8 @@ class FRROspfv3(FrrService, ConfigService): """ name: str = "FRROSPFv3" - shutdown: List[str] = ["killall ospf6d"] - validate: List[str] = ["pidof ospf6d"] + shutdown: list[str] = ["killall ospf6d"] + validate: list[str] = ["pidof ospf6d"] ipv4_routing: bool = True ipv6_routing: bool = True @@ -264,8 +264,8 @@ class FRRBgp(FrrService, ConfigService): """ name: str = "FRRBGP" - shutdown: List[str] = ["killall bgpd"] - validate: List[str] = ["pidof bgpd"] + shutdown: list[str] = ["killall bgpd"] + validate: list[str] = ["pidof bgpd"] custom_needed: bool = True ipv4_routing: bool = True ipv6_routing: bool = True @@ -294,8 +294,8 @@ class FRRRip(FrrService, ConfigService): """ name: str = "FRRRIP" - shutdown: List[str] = ["killall ripd"] - validate: List[str] = ["pidof ripd"] + shutdown: list[str] = ["killall ripd"] + validate: list[str] = ["pidof ripd"] ipv4_routing: bool = True def frr_config(self) -> str: @@ -319,8 +319,8 @@ class FRRRipng(FrrService, ConfigService): """ name: str = "FRRRIPNG" - shutdown: List[str] = ["killall ripngd"] - validate: List[str] = ["pidof ripngd"] + shutdown: list[str] = ["killall ripngd"] + validate: list[str] = ["pidof ripngd"] ipv6_routing: bool = True def frr_config(self) -> str: @@ -345,8 +345,8 @@ class FRRBabel(FrrService, ConfigService): """ name: str = "FRRBabel" - shutdown: List[str] = ["killall babeld"] - validate: List[str] = ["pidof babeld"] + shutdown: list[str] = ["killall babeld"] + validate: list[str] = ["pidof babeld"] ipv6_routing: bool = True def frr_config(self) -> str: @@ -385,8 +385,8 @@ class FRRpimd(FrrService, ConfigService): """ name: str = "FRRpimd" - shutdown: List[str] = ["killall pimd"] - validate: List[str] = ["pidof pimd"] + shutdown: list[str] = ["killall pimd"] + validate: list[str] = ["pidof pimd"] ipv4_routing: bool = True def frr_config(self) -> str: diff --git a/daemon/core/configservices/nrlservices/services.py b/daemon/core/configservices/nrlservices/services.py index ba9ef29c..3002cd94 100644 --- a/daemon/core/configservices/nrlservices/services.py +++ b/daemon/core/configservices/nrlservices/services.py @@ -1,4 +1,4 @@ -from typing import Any, Dict, List +from typing import Any from core import utils from core.config import Configuration @@ -10,18 +10,18 @@ GROUP: str = "ProtoSvc" class MgenSinkService(ConfigService): name: str = "MGEN_Sink" group: str = GROUP - directories: List[str] = [] - files: List[str] = ["mgensink.sh", "sink.mgen"] - executables: List[str] = ["mgen"] - dependencies: List[str] = [] - startup: List[str] = ["bash mgensink.sh"] - validate: List[str] = ["pidof mgen"] - shutdown: List[str] = ["killall mgen"] + directories: list[str] = [] + files: list[str] = ["mgensink.sh", "sink.mgen"] + executables: list[str] = ["mgen"] + dependencies: list[str] = [] + startup: list[str] = ["bash mgensink.sh"] + validate: list[str] = ["pidof mgen"] + shutdown: list[str] = ["killall mgen"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: ifnames = [] for iface in self.node.get_ifaces(): name = utils.sysctl_devname(iface.name) @@ -32,18 +32,18 @@ class MgenSinkService(ConfigService): class NrlNhdp(ConfigService): name: str = "NHDP" group: str = GROUP - directories: List[str] = [] - files: List[str] = ["nrlnhdp.sh"] - executables: List[str] = ["nrlnhdp"] - dependencies: List[str] = [] - startup: List[str] = ["bash nrlnhdp.sh"] - validate: List[str] = ["pidof nrlnhdp"] - shutdown: List[str] = ["killall nrlnhdp"] + directories: list[str] = [] + files: list[str] = ["nrlnhdp.sh"] + executables: list[str] = ["nrlnhdp"] + dependencies: list[str] = [] + startup: list[str] = ["bash nrlnhdp.sh"] + validate: list[str] = ["pidof nrlnhdp"] + shutdown: list[str] = ["killall nrlnhdp"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: has_smf = "SMF" in self.node.config_services ifnames = [] for iface in self.node.get_ifaces(control=False): @@ -54,18 +54,18 @@ class NrlNhdp(ConfigService): class NrlSmf(ConfigService): name: str = "SMF" group: str = GROUP - directories: List[str] = [] - files: List[str] = ["startsmf.sh"] - executables: List[str] = ["nrlsmf", "killall"] - dependencies: List[str] = [] - startup: List[str] = ["bash startsmf.sh"] - validate: List[str] = ["pidof nrlsmf"] - shutdown: List[str] = ["killall nrlsmf"] + directories: list[str] = [] + files: list[str] = ["startsmf.sh"] + executables: list[str] = ["nrlsmf", "killall"] + dependencies: list[str] = [] + startup: list[str] = ["bash startsmf.sh"] + validate: list[str] = ["pidof nrlsmf"] + shutdown: list[str] = ["killall nrlsmf"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: has_nhdp = "NHDP" in self.node.config_services has_olsr = "OLSR" in self.node.config_services ifnames = [] @@ -84,18 +84,18 @@ class NrlSmf(ConfigService): class NrlOlsr(ConfigService): name: str = "OLSR" group: str = GROUP - directories: List[str] = [] - files: List[str] = ["nrlolsrd.sh"] - executables: List[str] = ["nrlolsrd"] - dependencies: List[str] = [] - startup: List[str] = ["bash nrlolsrd.sh"] - validate: List[str] = ["pidof nrlolsrd"] - shutdown: List[str] = ["killall nrlolsrd"] + directories: list[str] = [] + files: list[str] = ["nrlolsrd.sh"] + executables: list[str] = ["nrlolsrd"] + dependencies: list[str] = [] + startup: list[str] = ["bash nrlolsrd.sh"] + validate: list[str] = ["pidof nrlolsrd"] + shutdown: list[str] = ["killall nrlolsrd"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: has_smf = "SMF" in self.node.config_services has_zebra = "zebra" in self.node.config_services ifname = None @@ -108,18 +108,18 @@ class NrlOlsr(ConfigService): class NrlOlsrv2(ConfigService): name: str = "OLSRv2" group: str = GROUP - directories: List[str] = [] - files: List[str] = ["nrlolsrv2.sh"] - executables: List[str] = ["nrlolsrv2"] - dependencies: List[str] = [] - startup: List[str] = ["bash nrlolsrv2.sh"] - validate: List[str] = ["pidof nrlolsrv2"] - shutdown: List[str] = ["killall nrlolsrv2"] + directories: list[str] = [] + files: list[str] = ["nrlolsrv2.sh"] + executables: list[str] = ["nrlolsrv2"] + dependencies: list[str] = [] + startup: list[str] = ["bash nrlolsrv2.sh"] + validate: list[str] = ["pidof nrlolsrv2"] + shutdown: list[str] = ["killall nrlolsrv2"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: has_smf = "SMF" in self.node.config_services ifnames = [] for iface in self.node.get_ifaces(control=False): @@ -130,18 +130,18 @@ class NrlOlsrv2(ConfigService): class OlsrOrg(ConfigService): name: str = "OLSRORG" group: str = GROUP - directories: List[str] = ["/etc/olsrd"] - files: List[str] = ["olsrd.sh", "/etc/olsrd/olsrd.conf"] - executables: List[str] = ["olsrd"] - dependencies: List[str] = [] - startup: List[str] = ["bash olsrd.sh"] - validate: List[str] = ["pidof olsrd"] - shutdown: List[str] = ["killall olsrd"] + directories: list[str] = ["/etc/olsrd"] + files: list[str] = ["olsrd.sh", "/etc/olsrd/olsrd.conf"] + executables: list[str] = ["olsrd"] + dependencies: list[str] = [] + startup: list[str] = ["bash olsrd.sh"] + validate: list[str] = ["pidof olsrd"] + shutdown: list[str] = ["killall olsrd"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: has_smf = "SMF" in self.node.config_services ifnames = [] for iface in self.node.get_ifaces(control=False): @@ -152,13 +152,13 @@ class OlsrOrg(ConfigService): class MgenActor(ConfigService): name: str = "MgenActor" group: str = GROUP - directories: List[str] = [] - files: List[str] = ["start_mgen_actor.sh"] - executables: List[str] = ["mgen"] - dependencies: List[str] = [] - startup: List[str] = ["bash start_mgen_actor.sh"] - validate: List[str] = ["pidof mgen"] - shutdown: List[str] = ["killall mgen"] + directories: list[str] = [] + files: list[str] = ["start_mgen_actor.sh"] + executables: list[str] = ["mgen"] + dependencies: list[str] = [] + startup: list[str] = ["bash start_mgen_actor.sh"] + validate: list[str] = ["pidof mgen"] + shutdown: list[str] = ["killall mgen"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} diff --git a/daemon/core/configservices/quaggaservices/services.py b/daemon/core/configservices/quaggaservices/services.py index 8aa85807..8b4d4909 100644 --- a/daemon/core/configservices/quaggaservices/services.py +++ b/daemon/core/configservices/quaggaservices/services.py @@ -1,6 +1,6 @@ import abc import logging -from typing import Any, Dict, List +from typing import Any from core.config import Configuration from core.configservice.base import ConfigService, ConfigServiceMode @@ -84,22 +84,22 @@ def rj45_check(iface: CoreInterface) -> bool: class Zebra(ConfigService): name: str = "zebra" group: str = GROUP - directories: List[str] = ["/usr/local/etc/quagga", "/var/run/quagga"] - files: List[str] = [ + directories: list[str] = ["/usr/local/etc/quagga", "/var/run/quagga"] + files: list[str] = [ "/usr/local/etc/quagga/Quagga.conf", "quaggaboot.sh", "/usr/local/etc/quagga/vtysh.conf", ] - executables: List[str] = ["zebra"] - dependencies: List[str] = [] - startup: List[str] = ["bash quaggaboot.sh zebra"] - validate: List[str] = ["pidof zebra"] - shutdown: List[str] = ["killall zebra"] + executables: list[str] = ["zebra"] + dependencies: list[str] = [] + startup: list[str] = ["bash quaggaboot.sh zebra"] + validate: list[str] = ["pidof zebra"] + shutdown: list[str] = ["killall zebra"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: quagga_bin_search = self.node.session.options.get( "quagga_bin_search", default="/usr/local/bin /usr/bin /usr/lib/quagga" ).strip('"') @@ -153,16 +153,16 @@ class Zebra(ConfigService): class QuaggaService(abc.ABC): group: str = GROUP - directories: List[str] = [] - files: List[str] = [] - executables: List[str] = [] - dependencies: List[str] = ["zebra"] - startup: List[str] = [] - validate: List[str] = [] - shutdown: List[str] = [] + directories: list[str] = [] + files: list[str] = [] + executables: list[str] = [] + dependencies: list[str] = ["zebra"] + startup: list[str] = [] + validate: list[str] = [] + shutdown: list[str] = [] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} ipv4_routing: bool = False ipv6_routing: bool = False @@ -183,8 +183,8 @@ class Ospfv2(QuaggaService, ConfigService): """ name: str = "OSPFv2" - validate: List[str] = ["pidof ospfd"] - shutdown: List[str] = ["killall ospfd"] + validate: list[str] = ["pidof ospfd"] + shutdown: list[str] = ["killall ospfd"] ipv4_routing: bool = True def quagga_iface_config(self, iface: CoreInterface) -> str: @@ -234,8 +234,8 @@ class Ospfv3(QuaggaService, ConfigService): """ name: str = "OSPFv3" - shutdown: List[str] = ["killall ospf6d"] - validate: List[str] = ["pidof ospf6d"] + shutdown: list[str] = ["killall ospf6d"] + validate: list[str] = ["pidof ospf6d"] ipv4_routing: bool = True ipv6_routing: bool = True @@ -300,8 +300,8 @@ class Bgp(QuaggaService, ConfigService): """ name: str = "BGP" - shutdown: List[str] = ["killall bgpd"] - validate: List[str] = ["pidof bgpd"] + shutdown: list[str] = ["killall bgpd"] + validate: list[str] = ["pidof bgpd"] ipv4_routing: bool = True ipv6_routing: bool = True @@ -329,8 +329,8 @@ class Rip(QuaggaService, ConfigService): """ name: str = "RIP" - shutdown: List[str] = ["killall ripd"] - validate: List[str] = ["pidof ripd"] + shutdown: list[str] = ["killall ripd"] + validate: list[str] = ["pidof ripd"] ipv4_routing: bool = True def quagga_config(self) -> str: @@ -354,8 +354,8 @@ class Ripng(QuaggaService, ConfigService): """ name: str = "RIPNG" - shutdown: List[str] = ["killall ripngd"] - validate: List[str] = ["pidof ripngd"] + shutdown: list[str] = ["killall ripngd"] + validate: list[str] = ["pidof ripngd"] ipv6_routing: bool = True def quagga_config(self) -> str: @@ -380,8 +380,8 @@ class Babel(QuaggaService, ConfigService): """ name: str = "Babel" - shutdown: List[str] = ["killall babeld"] - validate: List[str] = ["pidof babeld"] + shutdown: list[str] = ["killall babeld"] + validate: list[str] = ["pidof babeld"] ipv6_routing: bool = True def quagga_config(self) -> str: @@ -420,8 +420,8 @@ class Xpimd(QuaggaService, ConfigService): """ name: str = "Xpimd" - shutdown: List[str] = ["killall xpimd"] - validate: List[str] = ["pidof xpimd"] + shutdown: list[str] = ["killall xpimd"] + validate: list[str] = ["pidof xpimd"] ipv4_routing: bool = True def quagga_config(self) -> str: diff --git a/daemon/core/configservices/securityservices/services.py b/daemon/core/configservices/securityservices/services.py index e866617c..e6243b2c 100644 --- a/daemon/core/configservices/securityservices/services.py +++ b/daemon/core/configservices/securityservices/services.py @@ -1,4 +1,4 @@ -from typing import Any, Dict, List +from typing import Any from core.config import ConfigString, Configuration from core.configservice.base import ConfigService, ConfigServiceMode @@ -9,41 +9,41 @@ GROUP_NAME: str = "Security" class VpnClient(ConfigService): name: str = "VPNClient" group: str = GROUP_NAME - directories: List[str] = [] - files: List[str] = ["vpnclient.sh"] - executables: List[str] = ["openvpn", "ip", "killall"] - dependencies: List[str] = [] - startup: List[str] = ["bash vpnclient.sh"] - validate: List[str] = ["pidof openvpn"] - shutdown: List[str] = ["killall openvpn"] + directories: list[str] = [] + files: list[str] = ["vpnclient.sh"] + executables: list[str] = ["openvpn", "ip", "killall"] + dependencies: list[str] = [] + startup: list[str] = ["bash vpnclient.sh"] + validate: list[str] = ["pidof openvpn"] + shutdown: list[str] = ["killall openvpn"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [ + default_configs: list[Configuration] = [ ConfigString(id="keydir", label="Key Dir", default="/etc/core/keys"), ConfigString(id="keyname", label="Key Name", default="client1"), ConfigString(id="server", label="Server", default="10.0.2.10"), ] - modes: Dict[str, Dict[str, str]] = {} + modes: dict[str, dict[str, str]] = {} class VpnServer(ConfigService): name: str = "VPNServer" group: str = GROUP_NAME - directories: List[str] = [] - files: List[str] = ["vpnserver.sh"] - executables: List[str] = ["openvpn", "ip", "killall"] - dependencies: List[str] = [] - startup: List[str] = ["bash vpnserver.sh"] - validate: List[str] = ["pidof openvpn"] - shutdown: List[str] = ["killall openvpn"] + directories: list[str] = [] + files: list[str] = ["vpnserver.sh"] + executables: list[str] = ["openvpn", "ip", "killall"] + dependencies: list[str] = [] + startup: list[str] = ["bash vpnserver.sh"] + validate: list[str] = ["pidof openvpn"] + shutdown: list[str] = ["killall openvpn"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [ + default_configs: list[Configuration] = [ ConfigString(id="keydir", label="Key Dir", default="/etc/core/keys"), ConfigString(id="keyname", label="Key Name", default="server"), ConfigString(id="subnet", label="Subnet", default="10.0.200.0"), ] - modes: Dict[str, Dict[str, str]] = {} + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: address = None for iface in self.node.get_ifaces(control=False): ip4 = iface.get_ip4() @@ -56,48 +56,48 @@ class VpnServer(ConfigService): class IPsec(ConfigService): name: str = "IPsec" group: str = GROUP_NAME - directories: List[str] = [] - files: List[str] = ["ipsec.sh"] - executables: List[str] = ["racoon", "ip", "setkey", "killall"] - dependencies: List[str] = [] - startup: List[str] = ["bash ipsec.sh"] - validate: List[str] = ["pidof racoon"] - shutdown: List[str] = ["killall racoon"] + directories: list[str] = [] + files: list[str] = ["ipsec.sh"] + executables: list[str] = ["racoon", "ip", "setkey", "killall"] + dependencies: list[str] = [] + startup: list[str] = ["bash ipsec.sh"] + validate: list[str] = ["pidof racoon"] + shutdown: list[str] = ["killall racoon"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} class Firewall(ConfigService): name: str = "Firewall" group: str = GROUP_NAME - directories: List[str] = [] - files: List[str] = ["firewall.sh"] - executables: List[str] = ["iptables"] - dependencies: List[str] = [] - startup: List[str] = ["bash firewall.sh"] - validate: List[str] = [] - shutdown: List[str] = [] + directories: list[str] = [] + files: list[str] = ["firewall.sh"] + executables: list[str] = ["iptables"] + dependencies: list[str] = [] + startup: list[str] = ["bash firewall.sh"] + validate: list[str] = [] + shutdown: list[str] = [] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} class Nat(ConfigService): name: str = "NAT" group: str = GROUP_NAME - directories: List[str] = [] - files: List[str] = ["nat.sh"] - executables: List[str] = ["iptables"] - dependencies: List[str] = [] - startup: List[str] = ["bash nat.sh"] - validate: List[str] = [] - shutdown: List[str] = [] + directories: list[str] = [] + files: list[str] = ["nat.sh"] + executables: list[str] = ["iptables"] + dependencies: list[str] = [] + startup: list[str] = ["bash nat.sh"] + validate: list[str] = [] + shutdown: list[str] = [] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: ifnames = [] for iface in self.node.get_ifaces(control=False): ifnames.append(iface.name) diff --git a/daemon/core/configservices/utilservices/services.py b/daemon/core/configservices/utilservices/services.py index 3a4addfe..805e9f49 100644 --- a/daemon/core/configservices/utilservices/services.py +++ b/daemon/core/configservices/utilservices/services.py @@ -1,4 +1,4 @@ -from typing import Any, Dict, List +from typing import Any import netaddr @@ -12,18 +12,18 @@ GROUP_NAME = "Utility" class DefaultRouteService(ConfigService): name: str = "DefaultRoute" group: str = GROUP_NAME - directories: List[str] = [] - files: List[str] = ["defaultroute.sh"] - executables: List[str] = ["ip"] - dependencies: List[str] = [] - startup: List[str] = ["bash defaultroute.sh"] - validate: List[str] = [] - shutdown: List[str] = [] + directories: list[str] = [] + files: list[str] = ["defaultroute.sh"] + executables: list[str] = ["ip"] + dependencies: list[str] = [] + startup: list[str] = ["bash defaultroute.sh"] + validate: list[str] = [] + shutdown: list[str] = [] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: # only add default routes for linked routing nodes routes = [] ifaces = self.node.get_ifaces() @@ -40,18 +40,18 @@ class DefaultRouteService(ConfigService): class DefaultMulticastRouteService(ConfigService): name: str = "DefaultMulticastRoute" group: str = GROUP_NAME - directories: List[str] = [] - files: List[str] = ["defaultmroute.sh"] - executables: List[str] = [] - dependencies: List[str] = [] - startup: List[str] = ["bash defaultmroute.sh"] - validate: List[str] = [] - shutdown: List[str] = [] + directories: list[str] = [] + files: list[str] = ["defaultmroute.sh"] + executables: list[str] = [] + dependencies: list[str] = [] + startup: list[str] = ["bash defaultmroute.sh"] + validate: list[str] = [] + shutdown: list[str] = [] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: ifname = None for iface in self.node.get_ifaces(control=False): ifname = iface.name @@ -62,18 +62,18 @@ class DefaultMulticastRouteService(ConfigService): class StaticRouteService(ConfigService): name: str = "StaticRoute" group: str = GROUP_NAME - directories: List[str] = [] - files: List[str] = ["staticroute.sh"] - executables: List[str] = [] - dependencies: List[str] = [] - startup: List[str] = ["bash staticroute.sh"] - validate: List[str] = [] - shutdown: List[str] = [] + directories: list[str] = [] + files: list[str] = ["staticroute.sh"] + executables: list[str] = [] + dependencies: list[str] = [] + startup: list[str] = ["bash staticroute.sh"] + validate: list[str] = [] + shutdown: list[str] = [] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: routes = [] for iface in self.node.get_ifaces(control=False): for ip in iface.ips(): @@ -90,18 +90,18 @@ class StaticRouteService(ConfigService): class IpForwardService(ConfigService): name: str = "IPForward" group: str = GROUP_NAME - directories: List[str] = [] - files: List[str] = ["ipforward.sh"] - executables: List[str] = ["sysctl"] - dependencies: List[str] = [] - startup: List[str] = ["bash ipforward.sh"] - validate: List[str] = [] - shutdown: List[str] = [] + directories: list[str] = [] + files: list[str] = ["ipforward.sh"] + executables: list[str] = ["sysctl"] + dependencies: list[str] = [] + startup: list[str] = ["bash ipforward.sh"] + validate: list[str] = [] + shutdown: list[str] = [] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: devnames = [] for iface in self.node.get_ifaces(): devname = utils.sysctl_devname(iface.name) @@ -112,18 +112,18 @@ class IpForwardService(ConfigService): class SshService(ConfigService): name: str = "SSH" group: str = GROUP_NAME - directories: List[str] = ["/etc/ssh", "/var/run/sshd"] - files: List[str] = ["startsshd.sh", "/etc/ssh/sshd_config"] - executables: List[str] = ["sshd"] - dependencies: List[str] = [] - startup: List[str] = ["bash startsshd.sh"] - validate: List[str] = [] - shutdown: List[str] = ["killall sshd"] + directories: list[str] = ["/etc/ssh", "/var/run/sshd"] + files: list[str] = ["startsshd.sh", "/etc/ssh/sshd_config"] + executables: list[str] = ["sshd"] + dependencies: list[str] = [] + startup: list[str] = ["bash startsshd.sh"] + validate: list[str] = [] + shutdown: list[str] = ["killall sshd"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: return dict( sshcfgdir=self.directories[0], sshstatedir=self.directories[1], @@ -134,18 +134,18 @@ class SshService(ConfigService): class DhcpService(ConfigService): name: str = "DHCP" group: str = GROUP_NAME - directories: List[str] = ["/etc/dhcp", "/var/lib/dhcp"] - files: List[str] = ["/etc/dhcp/dhcpd.conf"] - executables: List[str] = ["dhcpd"] - dependencies: List[str] = [] - startup: List[str] = ["touch /var/lib/dhcp/dhcpd.leases", "dhcpd"] - validate: List[str] = ["pidof dhcpd"] - shutdown: List[str] = ["killall dhcpd"] + directories: list[str] = ["/etc/dhcp", "/var/lib/dhcp"] + files: list[str] = ["/etc/dhcp/dhcpd.conf"] + executables: list[str] = ["dhcpd"] + dependencies: list[str] = [] + startup: list[str] = ["touch /var/lib/dhcp/dhcpd.leases", "dhcpd"] + validate: list[str] = ["pidof dhcpd"] + shutdown: list[str] = ["killall dhcpd"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: subnets = [] for iface in self.node.get_ifaces(control=False): for ip4 in iface.ip4s: @@ -162,18 +162,18 @@ class DhcpService(ConfigService): class DhcpClientService(ConfigService): name: str = "DHCPClient" group: str = GROUP_NAME - directories: List[str] = [] - files: List[str] = ["startdhcpclient.sh"] - executables: List[str] = ["dhclient"] - dependencies: List[str] = [] - startup: List[str] = ["bash startdhcpclient.sh"] - validate: List[str] = ["pidof dhclient"] - shutdown: List[str] = ["killall dhclient"] + directories: list[str] = [] + files: list[str] = ["startdhcpclient.sh"] + executables: list[str] = ["dhclient"] + dependencies: list[str] = [] + startup: list[str] = ["bash startdhcpclient.sh"] + validate: list[str] = ["pidof dhclient"] + shutdown: list[str] = ["killall dhclient"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: ifnames = [] for iface in self.node.get_ifaces(control=False): ifnames.append(iface.name) @@ -183,33 +183,33 @@ class DhcpClientService(ConfigService): class FtpService(ConfigService): name: str = "FTP" group: str = GROUP_NAME - directories: List[str] = ["/var/run/vsftpd/empty", "/var/ftp"] - files: List[str] = ["vsftpd.conf"] - executables: List[str] = ["vsftpd"] - dependencies: List[str] = [] - startup: List[str] = ["vsftpd ./vsftpd.conf"] - validate: List[str] = ["pidof vsftpd"] - shutdown: List[str] = ["killall vsftpd"] + directories: list[str] = ["/var/run/vsftpd/empty", "/var/ftp"] + files: list[str] = ["vsftpd.conf"] + executables: list[str] = ["vsftpd"] + dependencies: list[str] = [] + startup: list[str] = ["vsftpd ./vsftpd.conf"] + validate: list[str] = ["pidof vsftpd"] + shutdown: list[str] = ["killall vsftpd"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} class PcapService(ConfigService): name: str = "pcap" group: str = GROUP_NAME - directories: List[str] = [] - files: List[str] = ["pcap.sh"] - executables: List[str] = ["tcpdump"] - dependencies: List[str] = [] - startup: List[str] = ["bash pcap.sh start"] - validate: List[str] = ["pidof tcpdump"] - shutdown: List[str] = ["bash pcap.sh stop"] + directories: list[str] = [] + files: list[str] = ["pcap.sh"] + executables: list[str] = ["tcpdump"] + dependencies: list[str] = [] + startup: list[str] = ["bash pcap.sh start"] + validate: list[str] = ["pidof tcpdump"] + shutdown: list[str] = ["bash pcap.sh stop"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: ifnames = [] for iface in self.node.get_ifaces(control=False): ifnames.append(iface.name) @@ -219,20 +219,20 @@ class PcapService(ConfigService): class RadvdService(ConfigService): name: str = "radvd" group: str = GROUP_NAME - directories: List[str] = ["/etc/radvd", "/var/run/radvd"] - files: List[str] = ["/etc/radvd/radvd.conf"] - executables: List[str] = ["radvd"] - dependencies: List[str] = [] - startup: List[str] = [ + directories: list[str] = ["/etc/radvd", "/var/run/radvd"] + files: list[str] = ["/etc/radvd/radvd.conf"] + executables: list[str] = ["radvd"] + dependencies: list[str] = [] + startup: list[str] = [ "radvd -C /etc/radvd/radvd.conf -m logfile -l /var/log/radvd.log" ] - validate: List[str] = ["pidof radvd"] - shutdown: List[str] = ["pkill radvd"] + validate: list[str] = ["pidof radvd"] + shutdown: list[str] = ["pkill radvd"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: ifaces = [] for iface in self.node.get_ifaces(control=False): prefixes = [] @@ -247,22 +247,22 @@ class RadvdService(ConfigService): class AtdService(ConfigService): name: str = "atd" group: str = GROUP_NAME - directories: List[str] = ["/var/spool/cron/atjobs", "/var/spool/cron/atspool"] - files: List[str] = ["startatd.sh"] - executables: List[str] = ["atd"] - dependencies: List[str] = [] - startup: List[str] = ["bash startatd.sh"] - validate: List[str] = ["pidof atd"] - shutdown: List[str] = ["pkill atd"] + directories: list[str] = ["/var/spool/cron/atjobs", "/var/spool/cron/atspool"] + files: list[str] = ["startatd.sh"] + executables: list[str] = ["atd"] + dependencies: list[str] = [] + startup: list[str] = ["bash startatd.sh"] + validate: list[str] = ["pidof atd"] + shutdown: list[str] = ["pkill atd"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} class HttpService(ConfigService): name: str = "HTTP" group: str = GROUP_NAME - directories: List[str] = [ + directories: list[str] = [ "/etc/apache2", "/var/run/apache2", "/var/log/apache2", @@ -270,21 +270,21 @@ class HttpService(ConfigService): "/var/lock/apache2", "/var/www", ] - files: List[str] = [ + files: list[str] = [ "/etc/apache2/apache2.conf", "/etc/apache2/envvars", "/var/www/index.html", ] - executables: List[str] = ["apache2ctl"] - dependencies: List[str] = [] - startup: List[str] = ["chown www-data /var/lock/apache2", "apache2ctl start"] - validate: List[str] = ["pidof apache2"] - shutdown: List[str] = ["apache2ctl stop"] + executables: list[str] = ["apache2ctl"] + dependencies: list[str] = [] + startup: list[str] = ["chown www-data /var/lock/apache2", "apache2ctl start"] + validate: list[str] = ["pidof apache2"] + shutdown: list[str] = ["apache2ctl stop"] validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING - default_configs: List[Configuration] = [] - modes: Dict[str, Dict[str, str]] = {} + default_configs: list[Configuration] = [] + modes: dict[str, dict[str, str]] = {} - def data(self) -> Dict[str, Any]: + def data(self) -> dict[str, Any]: ifaces = [] for iface in self.node.get_ifaces(control=False): ifaces.append(iface) From 4c222d1a7aedf3061ff1fadf585113b6a704fbc3 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Thu, 13 Apr 2023 12:18:24 -0700 Subject: [PATCH 24/70] daemon: updated core.emane to avoid using deprecated type hinting --- daemon/core/emane/emanemanager.py | 38 +++++++++++++------------- daemon/core/emane/emanemanifest.py | 7 ++--- daemon/core/emane/emanemodel.py | 26 +++++++++--------- daemon/core/emane/linkmonitor.py | 36 ++++++++++++------------ daemon/core/emane/modelmanager.py | 9 +++--- daemon/core/emane/models/bypass.py | 7 ++--- daemon/core/emane/models/commeffect.py | 15 +++++----- daemon/core/emane/models/tdma.py | 3 +- daemon/core/emane/nodes.py | 10 +++---- 9 files changed, 73 insertions(+), 78 deletions(-) diff --git a/daemon/core/emane/emanemanager.py b/daemon/core/emane/emanemanager.py index 294ae528..c02570c9 100644 --- a/daemon/core/emane/emanemanager.py +++ b/daemon/core/emane/emanemanager.py @@ -6,7 +6,7 @@ import logging import os import threading from enum import Enum -from typing import TYPE_CHECKING, Dict, List, Optional, Set, Tuple, Type, Union +from typing import TYPE_CHECKING, Optional, Union from core import utils from core.emane.emanemodel import EmaneModel @@ -126,9 +126,9 @@ class EmaneManager: """ super().__init__() self.session: "Session" = session - self.nems_to_ifaces: Dict[int, CoreInterface] = {} - self.ifaces_to_nems: Dict[CoreInterface, int] = {} - self._emane_nets: Dict[int, EmaneNet] = {} + self.nems_to_ifaces: dict[int, CoreInterface] = {} + self.ifaces_to_nems: dict[CoreInterface, int] = {} + self._emane_nets: dict[int, EmaneNet] = {} self._emane_node_lock: threading.Lock = threading.Lock() # port numbers are allocated from these counters self.platformport: int = self.session.options.get_int( @@ -141,14 +141,14 @@ class EmaneManager: self.eventmonthread: Optional[threading.Thread] = None # model for global EMANE configuration options - self.node_configs: Dict[int, Dict[str, Dict[str, str]]] = {} - self.node_models: Dict[int, str] = {} + self.node_configs: dict[int, dict[str, dict[str, str]]] = {} + self.node_models: dict[int, str] = {} # link monitor self.link_monitor: EmaneLinkMonitor = EmaneLinkMonitor(self) # emane event monitoring - self.services: Dict[str, EmaneEventService] = {} - self.nem_service: Dict[int, EmaneEventService] = {} + self.services: dict[str, EmaneEventService] = {} + self.nem_service: dict[int, EmaneEventService] = {} def next_nem_id(self, iface: CoreInterface) -> int: nem_id = self.session.options.get_int("nem_id_start") @@ -161,7 +161,7 @@ class EmaneManager: def get_config( self, key: int, model: str, default: bool = True - ) -> Optional[Dict[str, str]]: + ) -> Optional[dict[str, str]]: """ Get the current or default configuration for an emane model. @@ -181,7 +181,7 @@ class EmaneManager: config = model_class.default_values() return config - def set_config(self, key: int, model: str, config: Dict[str, str] = None) -> None: + def set_config(self, key: int, model: str, config: dict[str, str] = None) -> None: """ Sets and update the provided configuration against the default model or currently set emane model configuration. @@ -199,7 +199,7 @@ class EmaneManager: model_configs = self.node_configs.setdefault(key, {}) model_configs[model] = model_config - def get_model(self, model_name: str) -> Type[EmaneModel]: + def get_model(self, model_name: str) -> type[EmaneModel]: """ Convenience method for getting globally loaded emane models. @@ -211,7 +211,7 @@ class EmaneManager: def get_iface_config( self, emane_net: EmaneNet, iface: CoreInterface - ) -> Dict[str, str]: + ) -> dict[str, str]: """ Retrieve configuration for a given interface, first checking for interface specific config, node specific config, network specific config, and finally @@ -260,7 +260,7 @@ class EmaneManager: ) self._emane_nets[emane_net.id] = emane_net - def getnodes(self) -> Set[CoreNode]: + def getnodes(self) -> set[CoreNode]: """ Return a set of CoreNodes that are linked to an EMANE network, e.g. containers having one or more radio interfaces. @@ -335,7 +335,7 @@ class EmaneManager: self.start_daemon(iface) self.install_iface(iface, config) - def get_ifaces(self) -> List[Tuple[EmaneNet, TunTap]]: + def get_ifaces(self) -> list[tuple[EmaneNet, TunTap]]: ifaces = [] for emane_net in self._emane_nets.values(): if not emane_net.wireless_model: @@ -354,7 +354,7 @@ class EmaneManager: return sorted(ifaces, key=lambda x: (x[1].node.id, x[1].id)) def setup_control_channels( - self, nem_id: int, iface: CoreInterface, config: Dict[str, str] + self, nem_id: int, iface: CoreInterface, config: dict[str, str] ) -> None: node = iface.node # setup ota device @@ -419,7 +419,7 @@ class EmaneManager: def get_nem_position( self, iface: CoreInterface - ) -> Optional[Tuple[int, float, float, int]]: + ) -> Optional[tuple[int, float, float, int]]: """ Retrieves nem position for a given interface. @@ -453,7 +453,7 @@ class EmaneManager: event.append(nemid, latitude=lat, longitude=lon, altitude=alt) self.publish_event(nemid, event, send_all=True) - def set_nem_positions(self, moved_ifaces: List[CoreInterface]) -> None: + def set_nem_positions(self, moved_ifaces: list[CoreInterface]) -> None: """ Several NEMs have moved, from e.g. a WaypointMobilityModel calculation. Generate an EMANE Location Event having several @@ -480,7 +480,7 @@ class EmaneManager: try: with path.open("a") as f: f.write(f"{iface.node.name} {iface.name} {nem_id}\n") - except IOError: + except OSError: logger.exception("error writing to emane nem file") def links_enabled(self) -> bool: @@ -624,7 +624,7 @@ class EmaneManager: args = f"{emanecmd} -f {log_file} {platform_xml}" node.host_cmd(args, cwd=self.session.directory) - def install_iface(self, iface: TunTap, config: Dict[str, str]) -> None: + def install_iface(self, iface: TunTap, config: dict[str, str]) -> None: external = config.get("external", "0") if external == "0": iface.set_ips() diff --git a/daemon/core/emane/emanemanifest.py b/daemon/core/emane/emanemanifest.py index 0fb5bc17..ea2b05fd 100644 --- a/daemon/core/emane/emanemanifest.py +++ b/daemon/core/emane/emanemanifest.py @@ -1,6 +1,5 @@ import logging from pathlib import Path -from typing import Dict, List from core.config import Configuration from core.emulator.enumerations import ConfigDataTypes @@ -33,7 +32,7 @@ def _type_value(config_type: str) -> ConfigDataTypes: return ConfigDataTypes[config_type] -def _get_possible(config_type: str, config_regex: str) -> List[str]: +def _get_possible(config_type: str, config_regex: str) -> list[str]: """ Retrieve possible config value options based on emane regexes. @@ -51,7 +50,7 @@ def _get_possible(config_type: str, config_regex: str) -> List[str]: return [] -def _get_default(config_type_name: str, config_value: List[str]) -> str: +def _get_default(config_type_name: str, config_value: list[str]) -> str: """ Convert default configuration values to one used by core. @@ -74,7 +73,7 @@ def _get_default(config_type_name: str, config_value: List[str]) -> str: return config_default -def parse(manifest_path: Path, defaults: Dict[str, str]) -> List[Configuration]: +def parse(manifest_path: Path, defaults: dict[str, str]) -> list[Configuration]: """ Parses a valid emane manifest file and converts the provided configuration values into ones used by core. diff --git a/daemon/core/emane/emanemodel.py b/daemon/core/emane/emanemodel.py index cc5b0f4d..4e31d632 100644 --- a/daemon/core/emane/emanemodel.py +++ b/daemon/core/emane/emanemodel.py @@ -3,7 +3,7 @@ Defines Emane Models used within CORE. """ import logging from pathlib import Path -from typing import Dict, List, Optional, Set +from typing import Optional from core.config import ConfigBool, ConfigGroup, ConfigString, Configuration from core.emane import emanemanifest @@ -28,38 +28,38 @@ class EmaneModel(WirelessModel): # default platform configuration settings platform_controlport: str = "controlportendpoint" platform_xml: str = "nemmanager.xml" - platform_defaults: Dict[str, str] = { + platform_defaults: dict[str, str] = { "eventservicedevice": DEFAULT_DEV, "eventservicegroup": "224.1.2.8:45703", "otamanagerdevice": DEFAULT_DEV, "otamanagergroup": "224.1.2.8:45702", } - platform_config: List[Configuration] = [] + platform_config: list[Configuration] = [] # default mac configuration settings mac_library: Optional[str] = None mac_xml: Optional[str] = None - mac_defaults: Dict[str, str] = {} - mac_config: List[Configuration] = [] + mac_defaults: dict[str, str] = {} + mac_config: list[Configuration] = [] # default phy configuration settings, using the universal model phy_library: Optional[str] = None phy_xml: str = "emanephy.xml" - phy_defaults: Dict[str, str] = { + phy_defaults: dict[str, str] = { "subid": "1", "propagationmodel": "2ray", "noisemode": "none", } - phy_config: List[Configuration] = [] + phy_config: list[Configuration] = [] # support for external configurations - external_config: List[Configuration] = [ + external_config: list[Configuration] = [ ConfigBool(id="external", default="0"), ConfigString(id="platformendpoint", default="127.0.0.1:40001"), ConfigString(id="transportendpoint", default="127.0.0.1:50002"), ] - config_ignore: Set[str] = set() + config_ignore: set[str] = set() @classmethod def load(cls, emane_prefix: Path) -> None: @@ -94,7 +94,7 @@ class EmaneModel(WirelessModel): cls.platform_config.pop(controlport_index) @classmethod - def configurations(cls) -> List[Configuration]: + def configurations(cls) -> list[Configuration]: """ Returns the combination all all configurations (mac, phy, and external). @@ -105,7 +105,7 @@ class EmaneModel(WirelessModel): ) @classmethod - def config_groups(cls) -> List[ConfigGroup]: + def config_groups(cls) -> list[ConfigGroup]: """ Returns the defined configuration groups. @@ -122,7 +122,7 @@ class EmaneModel(WirelessModel): ConfigGroup("External Parameters", phy_len + 1, config_len), ] - def build_xml_files(self, config: Dict[str, str], iface: CoreInterface) -> None: + def build_xml_files(self, config: dict[str, str], iface: CoreInterface) -> None: """ Builds xml files for this emane model. Creates a nem.xml file that points to both mac.xml and phy.xml definitions. @@ -146,7 +146,7 @@ class EmaneModel(WirelessModel): """ logger.debug("emane model(%s) has no post setup tasks", self.name) - def update(self, moved_ifaces: List[CoreInterface]) -> None: + def update(self, moved_ifaces: list[CoreInterface]) -> None: """ Invoked from MobilityModel when nodes are moved; this causes emane location events to be generated for the nodes in the moved diff --git a/daemon/core/emane/linkmonitor.py b/daemon/core/emane/linkmonitor.py index 5ed6d49d..1997e9f8 100644 --- a/daemon/core/emane/linkmonitor.py +++ b/daemon/core/emane/linkmonitor.py @@ -2,7 +2,7 @@ import logging import sched import threading import time -from typing import TYPE_CHECKING, Dict, List, Optional, Set, Tuple +from typing import TYPE_CHECKING, Optional from lxml import etree @@ -34,10 +34,10 @@ NEM_SELF: int = 65535 class LossTable: - def __init__(self, losses: Dict[float, float]) -> None: - self.losses: Dict[float, float] = losses - self.sinrs: List[float] = sorted(self.losses.keys()) - self.loss_lookup: Dict[int, float] = {} + def __init__(self, losses: dict[float, float]) -> None: + self.losses: dict[float, float] = losses + self.sinrs: list[float] = sorted(self.losses.keys()) + self.loss_lookup: dict[int, float] = {} for index, value in enumerate(self.sinrs): self.loss_lookup[index] = self.losses[value] self.mac_id: Optional[str] = None @@ -84,7 +84,7 @@ class EmaneClient: self.client: shell.ControlPortClient = shell.ControlPortClient( self.address, port ) - self.nems: Dict[int, LossTable] = {} + self.nems: dict[int, LossTable] = {} self.setup() def setup(self) -> None: @@ -110,7 +110,7 @@ class EmaneClient: self.nems[nem_id] = loss_table def check_links( - self, links: Dict[Tuple[int, int], EmaneLink], loss_threshold: int + self, links: dict[tuple[int, int], EmaneLink], loss_threshold: int ) -> None: for from_nem, loss_table in self.nems.items(): tables = self.client.getStatisticTable(loss_table.mac_id, (SINR_TABLE,)) @@ -138,11 +138,11 @@ class EmaneClient: link = EmaneLink(from_nem, to_nem, sinr) links[link_key] = link - def handle_tdma(self, config: Dict[str, Tuple]): + def handle_tdma(self, config: dict[str, tuple]): pcr = config["pcrcurveuri"][0][0] logger.debug("tdma pcr: %s", pcr) - def handle_80211(self, config: Dict[str, Tuple]) -> LossTable: + def handle_80211(self, config: dict[str, tuple]) -> LossTable: unicastrate = config["unicastrate"][0][0] pcr = config["pcrcurveuri"][0][0] logger.debug("80211 pcr: %s", pcr) @@ -159,7 +159,7 @@ class EmaneClient: losses[sinr] = por return LossTable(losses) - def handle_rfpipe(self, config: Dict[str, Tuple]) -> LossTable: + def handle_rfpipe(self, config: dict[str, tuple]) -> LossTable: pcr = config["pcrcurveuri"][0][0] logger.debug("rfpipe pcr: %s", pcr) tree = etree.parse(pcr) @@ -179,9 +179,9 @@ class EmaneClient: class EmaneLinkMonitor: def __init__(self, emane_manager: "EmaneManager") -> None: self.emane_manager: "EmaneManager" = emane_manager - self.clients: List[EmaneClient] = [] - self.links: Dict[Tuple[int, int], EmaneLink] = {} - self.complete_links: Set[Tuple[int, int]] = set() + self.clients: list[EmaneClient] = [] + self.links: dict[tuple[int, int], EmaneLink] = {} + self.complete_links: set[tuple[int, int]] = set() self.loss_threshold: Optional[int] = None self.link_interval: Optional[int] = None self.link_timeout: Optional[int] = None @@ -210,7 +210,7 @@ class EmaneLinkMonitor: if client.nems: self.clients.append(client) - def get_addresses(self) -> List[Tuple[str, int]]: + def get_addresses(self) -> list[tuple[str, int]]: addresses = [] nodes = self.emane_manager.getnodes() for node in nodes: @@ -273,25 +273,25 @@ class EmaneLinkMonitor: if self.running: self.scheduler.enter(self.link_interval, 0, self.check_links) - def get_complete_id(self, link_id: Tuple[int, int]) -> Tuple[int, int]: + def get_complete_id(self, link_id: tuple[int, int]) -> tuple[int, int]: value1, value2 = link_id if value1 < value2: return value1, value2 else: return value2, value1 - def is_complete_link(self, link_id: Tuple[int, int]) -> bool: + def is_complete_link(self, link_id: tuple[int, int]) -> bool: reverse_id = link_id[1], link_id[0] return link_id in self.links and reverse_id in self.links - def get_link_label(self, link_id: Tuple[int, int]) -> str: + def get_link_label(self, link_id: tuple[int, int]) -> str: source_id = tuple(sorted(link_id)) source_link = self.links[source_id] dest_id = link_id[::-1] dest_link = self.links[dest_id] return f"{source_link.sinr:.1f} / {dest_link.sinr:.1f}" - def send_link(self, message_type: MessageFlags, link_id: Tuple[int, int]) -> None: + def send_link(self, message_type: MessageFlags, link_id: tuple[int, int]) -> None: nem1, nem2 = link_id link = self.emane_manager.get_nem_link(nem1, nem2, message_type) if link: diff --git a/daemon/core/emane/modelmanager.py b/daemon/core/emane/modelmanager.py index 989802c4..92dd5b8e 100644 --- a/daemon/core/emane/modelmanager.py +++ b/daemon/core/emane/modelmanager.py @@ -1,7 +1,6 @@ import logging import pkgutil from pathlib import Path -from typing import Dict, List, Type from core import utils from core.emane import models as emane_models @@ -12,10 +11,10 @@ logger = logging.getLogger(__name__) class EmaneModelManager: - models: Dict[str, Type[EmaneModel]] = {} + models: dict[str, type[EmaneModel]] = {} @classmethod - def load_locals(cls, emane_prefix: Path) -> List[str]: + def load_locals(cls, emane_prefix: Path) -> list[str]: """ Load local core emane models and make them available. @@ -38,7 +37,7 @@ class EmaneModelManager: return errors @classmethod - def load(cls, path: Path, emane_prefix: Path) -> List[str]: + def load(cls, path: Path, emane_prefix: Path) -> list[str]: """ Search and load custom emane models and make them available. @@ -63,7 +62,7 @@ class EmaneModelManager: return errors @classmethod - def get(cls, name: str) -> Type[EmaneModel]: + def get(cls, name: str) -> type[EmaneModel]: model = cls.models.get(name) if model is None: raise CoreError(f"emame model does not exist {name}") diff --git a/daemon/core/emane/models/bypass.py b/daemon/core/emane/models/bypass.py index 25841114..e8f2ed39 100644 --- a/daemon/core/emane/models/bypass.py +++ b/daemon/core/emane/models/bypass.py @@ -2,7 +2,6 @@ EMANE Bypass model for CORE """ from pathlib import Path -from typing import List, Set from core.config import ConfigBool, Configuration from core.emane import emanemodel @@ -12,11 +11,11 @@ class EmaneBypassModel(emanemodel.EmaneModel): name: str = "emane_bypass" # values to ignore, when writing xml files - config_ignore: Set[str] = {"none"} + config_ignore: set[str] = {"none"} # mac definitions mac_library: str = "bypassmaclayer" - mac_config: List[Configuration] = [ + mac_config: list[Configuration] = [ ConfigBool( id="none", default="0", @@ -26,7 +25,7 @@ class EmaneBypassModel(emanemodel.EmaneModel): # phy definitions phy_library: str = "bypassphylayer" - phy_config: List[Configuration] = [] + phy_config: list[Configuration] = [] @classmethod def load(cls, emane_prefix: Path) -> None: diff --git a/daemon/core/emane/models/commeffect.py b/daemon/core/emane/models/commeffect.py index c3f0b07b..aa093a93 100644 --- a/daemon/core/emane/models/commeffect.py +++ b/daemon/core/emane/models/commeffect.py @@ -4,7 +4,6 @@ commeffect.py: EMANE CommEffect model for CORE import logging from pathlib import Path -from typing import Dict, List from lxml import etree @@ -42,12 +41,12 @@ class EmaneCommEffectModel(emanemodel.EmaneModel): name: str = "emane_commeffect" shim_library: str = "commeffectshim" shim_xml: str = "commeffectshim.xml" - shim_defaults: Dict[str, str] = {} - config_shim: List[Configuration] = [] + shim_defaults: dict[str, str] = {} + config_shim: list[Configuration] = [] # comm effect does not need the default phy and external configurations - phy_config: List[Configuration] = [] - external_config: List[Configuration] = [] + phy_config: list[Configuration] = [] + external_config: list[Configuration] = [] @classmethod def load(cls, emane_prefix: Path) -> None: @@ -56,11 +55,11 @@ class EmaneCommEffectModel(emanemodel.EmaneModel): cls.config_shim = emanemanifest.parse(shim_xml_path, cls.shim_defaults) @classmethod - def configurations(cls) -> List[Configuration]: + def configurations(cls) -> list[Configuration]: return cls.platform_config + cls.config_shim @classmethod - def config_groups(cls) -> List[ConfigGroup]: + def config_groups(cls) -> list[ConfigGroup]: platform_len = len(cls.platform_config) return [ ConfigGroup("Platform Parameters", 1, platform_len), @@ -71,7 +70,7 @@ class EmaneCommEffectModel(emanemodel.EmaneModel): ), ] - def build_xml_files(self, config: Dict[str, str], iface: CoreInterface) -> None: + def build_xml_files(self, config: dict[str, str], iface: CoreInterface) -> None: """ Build the necessary nem and commeffect XMLs in the given path. If an individual NEM has a nonstandard config, we need to build diff --git a/daemon/core/emane/models/tdma.py b/daemon/core/emane/models/tdma.py index c6ac631b..100e960d 100644 --- a/daemon/core/emane/models/tdma.py +++ b/daemon/core/emane/models/tdma.py @@ -4,7 +4,6 @@ tdma.py: EMANE TDMA model bindings for CORE import logging from pathlib import Path -from typing import Set from core import constants, utils from core.config import ConfigString @@ -28,7 +27,7 @@ class EmaneTdmaModel(emanemodel.EmaneModel): default_schedule: Path = ( constants.CORE_DATA_DIR / "examples" / "tdma" / "schedule.xml" ) - config_ignore: Set[str] = {schedule_name} + config_ignore: set[str] = {schedule_name} @classmethod def load(cls, emane_prefix: Path) -> None: diff --git a/daemon/core/emane/nodes.py b/daemon/core/emane/nodes.py index 7264fe88..ecf684d7 100644 --- a/daemon/core/emane/nodes.py +++ b/daemon/core/emane/nodes.py @@ -6,7 +6,7 @@ share the same MAC+PHY model. import logging import time from dataclasses import dataclass -from typing import TYPE_CHECKING, Callable, Dict, List, Optional, Type, Union +from typing import TYPE_CHECKING, Callable, Optional, Union from core.emulator.data import InterfaceData, LinkData, LinkOptions from core.emulator.distributed import DistributedServer @@ -196,7 +196,7 @@ class EmaneNet(CoreNetworkBase): def unlink(self, iface1: CoreInterface, iface2: CoreInterface) -> None: pass - def updatemodel(self, config: Dict[str, str]) -> None: + def updatemodel(self, config: dict[str, str]) -> None: """ Update configuration for the current model. @@ -212,8 +212,8 @@ class EmaneNet(CoreNetworkBase): def setmodel( self, - model: Union[Type["EmaneModel"], Type["WayPointMobility"]], - config: Dict[str, str], + model: Union[type["EmaneModel"], type["WayPointMobility"]], + config: dict[str, str], ) -> None: """ set the EmaneModel associated with this node @@ -225,7 +225,7 @@ class EmaneNet(CoreNetworkBase): self.mobility = model(session=self.session, _id=self.id) self.mobility.update_config(config) - def links(self, flags: MessageFlags = MessageFlags.NONE) -> List[LinkData]: + def links(self, flags: MessageFlags = MessageFlags.NONE) -> list[LinkData]: links = [] emane_manager = self.session.emane # gather current emane links From 8abf2561bf2367d6943555695add31a72568cfdb Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Thu, 13 Apr 2023 12:23:44 -0700 Subject: [PATCH 25/70] daemon: updated core.emulator to avoid using deprecated type hinting --- daemon/core/emulator/coreemu.py | 11 ++--- daemon/core/emulator/data.py | 14 +++--- daemon/core/emulator/distributed.py | 10 ++-- daemon/core/emulator/hooks.py | 2 +- daemon/core/emulator/links.py | 9 ++-- daemon/core/emulator/session.py | 68 +++++++++++++-------------- daemon/core/emulator/sessionconfig.py | 12 ++--- 7 files changed, 63 insertions(+), 63 deletions(-) diff --git a/daemon/core/emulator/coreemu.py b/daemon/core/emulator/coreemu.py index a4b0be6a..574002e6 100644 --- a/daemon/core/emulator/coreemu.py +++ b/daemon/core/emulator/coreemu.py @@ -1,7 +1,6 @@ import logging import os from pathlib import Path -from typing import Dict, List, Type from core import utils from core.configservice.manager import ConfigServiceManager @@ -20,7 +19,7 @@ class CoreEmu: Provides logic for creating and configuring CORE sessions and the nodes within them. """ - def __init__(self, config: Dict[str, str] = None) -> None: + def __init__(self, config: dict[str, str] = None) -> None: """ Create a CoreEmu object. @@ -31,13 +30,13 @@ class CoreEmu: # configuration config = config if config else {} - self.config: Dict[str, str] = config + self.config: dict[str, str] = config # session management - self.sessions: Dict[int, Session] = {} + self.sessions: dict[int, Session] = {} # load services - self.service_errors: List[str] = [] + self.service_errors: list[str] = [] self.service_manager: ConfigServiceManager = ConfigServiceManager() self._load_services() @@ -119,7 +118,7 @@ class CoreEmu: _, session = self.sessions.popitem() session.shutdown() - def create_session(self, _id: int = None, _cls: Type[Session] = Session) -> Session: + def create_session(self, _id: int = None, _cls: type[Session] = Session) -> Session: """ Create a new CORE session. diff --git a/daemon/core/emulator/data.py b/daemon/core/emulator/data.py index de5b3559..7d3dc8dc 100644 --- a/daemon/core/emulator/data.py +++ b/daemon/core/emulator/data.py @@ -2,7 +2,7 @@ CORE data objects. """ from dataclasses import dataclass, field -from typing import TYPE_CHECKING, Any, List, Optional, Tuple +from typing import TYPE_CHECKING, Any, Optional import netaddr @@ -24,7 +24,7 @@ class ConfigData: node: int = None object: str = None type: int = None - data_types: Tuple[int] = None + data_types: tuple[int] = None data_values: str = None captions: str = None bitmap: str = None @@ -81,8 +81,8 @@ class NodeOptions: model: Optional[str] = "PC" canvas: int = None icon: str = None - services: List[str] = field(default_factory=list) - config_services: List[str] = field(default_factory=list) + services: list[str] = field(default_factory=list) + config_services: list[str] = field(default_factory=list) x: float = None y: float = None lat: float = None @@ -93,9 +93,9 @@ class NodeOptions: emane: str = None legacy: bool = False # src, dst - binds: List[Tuple[str, str]] = field(default_factory=list) + binds: list[tuple[str, str]] = field(default_factory=list) # src, dst, unique, delete - volumes: List[Tuple[str, str, bool, bool]] = field(default_factory=list) + volumes: list[tuple[str, str, bool, bool]] = field(default_factory=list) def set_position(self, x: float, y: float) -> None: """ @@ -148,7 +148,7 @@ class InterfaceData: ip6_mask: int = None mtu: int = None - def get_ips(self) -> List[str]: + def get_ips(self) -> list[str]: """ Returns a list of ip4 and ip6 addresses when present. diff --git a/daemon/core/emulator/distributed.py b/daemon/core/emulator/distributed.py index 8ef80dea..57e9d1ef 100644 --- a/daemon/core/emulator/distributed.py +++ b/daemon/core/emulator/distributed.py @@ -8,7 +8,7 @@ import threading from collections import OrderedDict from pathlib import Path from tempfile import NamedTemporaryFile -from typing import TYPE_CHECKING, Callable, Dict, Tuple +from typing import TYPE_CHECKING, Callable import netaddr from fabric import Connection @@ -48,7 +48,7 @@ class DistributedServer: self.lock: threading.Lock = threading.Lock() def remote_cmd( - self, cmd: str, env: Dict[str, str] = None, cwd: str = None, wait: bool = True + self, cmd: str, env: dict[str, str] = None, cwd: str = None, wait: bool = True ) -> str: """ Run command remotely using server connection. @@ -123,8 +123,8 @@ class DistributedController: :param session: session """ self.session: "Session" = session - self.servers: Dict[str, DistributedServer] = OrderedDict() - self.tunnels: Dict[int, Tuple[GreTap, GreTap]] = {} + self.servers: dict[str, DistributedServer] = OrderedDict() + self.tunnels: dict[int, tuple[GreTap, GreTap]] = {} self.address: str = self.session.options.get("distributed_address") def add_server(self, name: str, host: str) -> None: @@ -213,7 +213,7 @@ class DistributedController: def create_gre_tunnel( self, node: CoreNetwork, server: DistributedServer, mtu: int, start: bool - ) -> Tuple[GreTap, GreTap]: + ) -> tuple[GreTap, GreTap]: """ Create gre tunnel using a pair of gre taps between the local and remote server. diff --git a/daemon/core/emulator/hooks.py b/daemon/core/emulator/hooks.py index 5b9522e5..938d3028 100644 --- a/daemon/core/emulator/hooks.py +++ b/daemon/core/emulator/hooks.py @@ -129,7 +129,7 @@ class HookManager: cwd=directory, env=env, ) - except (IOError, subprocess.CalledProcessError) as e: + except (OSError, subprocess.CalledProcessError) as e: raise CoreError( f"failure running state({state.name}) " f"hook script({file_name}): {e}", diff --git a/daemon/core/emulator/links.py b/daemon/core/emulator/links.py index 22f75b98..5df29d90 100644 --- a/daemon/core/emulator/links.py +++ b/daemon/core/emulator/links.py @@ -4,8 +4,9 @@ for a session. """ import logging +from collections.abc import ValuesView from dataclasses import dataclass -from typing import Dict, Optional, Tuple, ValuesView +from typing import Optional from core.emulator.data import LinkData, LinkOptions from core.emulator.enumerations import LinkTypes, MessageFlags @@ -15,7 +16,7 @@ from core.nodes.interface import CoreInterface from core.nodes.network import PtpNet logger = logging.getLogger(__name__) -LinkKeyType = Tuple[int, Optional[int], int, Optional[int]] +LinkKeyType = tuple[int, Optional[int], int, Optional[int]] def create_key( @@ -145,8 +146,8 @@ class LinkManager: """ Create a LinkManager instance. """ - self._links: Dict[LinkKeyType, CoreLink] = {} - self._node_links: Dict[int, Dict[LinkKeyType, CoreLink]] = {} + self._links: dict[LinkKeyType, CoreLink] = {} + self._node_links: dict[int, dict[LinkKeyType, CoreLink]] = {} def add(self, core_link: CoreLink) -> None: """ diff --git a/daemon/core/emulator/session.py b/daemon/core/emulator/session.py index bd4953d1..310defb6 100644 --- a/daemon/core/emulator/session.py +++ b/daemon/core/emulator/session.py @@ -14,7 +14,7 @@ import tempfile import threading import time from pathlib import Path -from typing import Callable, Dict, List, Optional, Set, Tuple, Type, TypeVar, Union +from typing import Callable, Optional, TypeVar, Union from core import constants, utils from core.configservice.manager import ConfigServiceManager @@ -66,7 +66,7 @@ from core.xml.corexml import CoreXmlReader, CoreXmlWriter logger = logging.getLogger(__name__) # maps for converting from API call node type values to classes and vice versa -NODES: Dict[NodeTypes, Type[NodeBase]] = { +NODES: dict[NodeTypes, type[NodeBase]] = { NodeTypes.DEFAULT: CoreNode, NodeTypes.PHYSICAL: PhysicalNode, NodeTypes.SWITCH: SwitchNode, @@ -82,12 +82,12 @@ NODES: Dict[NodeTypes, Type[NodeBase]] = { NodeTypes.LXC: LxcNode, NodeTypes.WIRELESS: WirelessNode, } -NODES_TYPE: Dict[Type[NodeBase], NodeTypes] = {NODES[x]: x for x in NODES} -CONTAINER_NODES: Set[Type[NodeBase]] = {DockerNode, LxcNode} +NODES_TYPE: dict[type[NodeBase], NodeTypes] = {NODES[x]: x for x in NODES} +CONTAINER_NODES: set[type[NodeBase]] = {DockerNode, LxcNode} CTRL_NET_ID: int = 9001 -LINK_COLORS: List[str] = ["green", "blue", "orange", "purple", "turquoise"] +LINK_COLORS: list[str] = ["green", "blue", "orange", "purple", "turquoise"] NT: TypeVar = TypeVar("NT", bound=NodeBase) -WIRELESS_TYPE: Tuple[Type[WlanNode], Type[EmaneNet], Type[WirelessNode]] = ( +WIRELESS_TYPE: tuple[type[WlanNode], type[EmaneNet], type[WirelessNode]] = ( WlanNode, EmaneNet, WirelessNode, @@ -100,7 +100,7 @@ class Session: """ def __init__( - self, _id: int, config: Dict[str, str] = None, mkdir: bool = True + self, _id: int, config: dict[str, str] = None, mkdir: bool = True ) -> None: """ Create a Session instance. @@ -121,33 +121,33 @@ class Session: self.thumbnail: Optional[Path] = None self.user: Optional[str] = None self.event_loop: EventLoop = EventLoop() - self.link_colors: Dict[int, str] = {} + self.link_colors: dict[int, str] = {} # dict of nodes: all nodes and nets - self.nodes: Dict[int, NodeBase] = {} + self.nodes: dict[int, NodeBase] = {} self.nodes_lock: threading.Lock = threading.Lock() self.link_manager: LinkManager = LinkManager() # states and hooks handlers self.state: EventTypes = EventTypes.DEFINITION_STATE self.state_time: float = time.monotonic() - self.hooks: Dict[EventTypes, List[Tuple[str, str]]] = {} - self.state_hooks: Dict[EventTypes, List[Callable[[EventTypes], None]]] = {} + self.hooks: dict[EventTypes, list[tuple[str, str]]] = {} + self.state_hooks: dict[EventTypes, list[Callable[[EventTypes], None]]] = {} self.add_state_hook( state=EventTypes.RUNTIME_STATE, hook=self.runtime_state_hook ) # handlers for broadcasting information - self.event_handlers: List[Callable[[EventData], None]] = [] - self.exception_handlers: List[Callable[[ExceptionData], None]] = [] - self.node_handlers: List[Callable[[NodeData], None]] = [] - self.link_handlers: List[Callable[[LinkData], None]] = [] - self.file_handlers: List[Callable[[FileData], None]] = [] - self.config_handlers: List[Callable[[ConfigData], None]] = [] + self.event_handlers: list[Callable[[EventData], None]] = [] + self.exception_handlers: list[Callable[[ExceptionData], None]] = [] + self.node_handlers: list[Callable[[NodeData], None]] = [] + self.link_handlers: list[Callable[[LinkData], None]] = [] + self.file_handlers: list[Callable[[FileData], None]] = [] + self.config_handlers: list[Callable[[ConfigData], None]] = [] # session options/metadata self.options: SessionConfig = SessionConfig(config) - self.metadata: Dict[str, str] = {} + self.metadata: dict[str, str] = {} # distributed support and logic self.distributed: DistributedController = DistributedController(self) @@ -163,7 +163,7 @@ class Session: self.service_manager: Optional[ConfigServiceManager] = None @classmethod - def get_node_class(cls, _type: NodeTypes) -> Type[NodeBase]: + def get_node_class(cls, _type: NodeTypes) -> type[NodeBase]: """ Retrieve the class for a given node type. @@ -176,7 +176,7 @@ class Session: return node_class @classmethod - def get_node_type(cls, _class: Type[NodeBase]) -> NodeTypes: + def get_node_type(cls, _class: type[NodeBase]) -> NodeTypes: """ Retrieve node type for a given node class. @@ -238,7 +238,7 @@ class Session: iface1_data: InterfaceData = None, iface2_data: InterfaceData = None, options: LinkOptions = None, - ) -> Tuple[Optional[CoreInterface], Optional[CoreInterface]]: + ) -> tuple[Optional[CoreInterface], Optional[CoreInterface]]: """ Add a link between nodes. @@ -345,7 +345,7 @@ class Session: iface1_data: InterfaceData = None, iface2_data: InterfaceData = None, options: LinkOptions = None, - ) -> Tuple[CoreInterface, CoreInterface]: + ) -> tuple[CoreInterface, CoreInterface]: """ Create a wired link between two nodes. @@ -476,7 +476,7 @@ class Session: def add_node( self, - _class: Type[NT], + _class: type[NT], _id: int = None, name: str = None, server: str = None, @@ -745,7 +745,7 @@ class Session: for hook in hooks: self.run_hook(hook) - def run_hook(self, hook: Tuple[str, str]) -> None: + def run_hook(self, hook: tuple[str, str]) -> None: """ Run a hook. @@ -769,7 +769,7 @@ class Session: cwd=self.directory, env=self.get_environment(), ) - except (IOError, subprocess.CalledProcessError): + except (OSError, subprocess.CalledProcessError): logger.exception("error running hook: %s", file_path) def run_state_hooks(self, state: EventTypes) -> None: @@ -835,7 +835,7 @@ class Session: xml_file_path = self.directory / "session-deployed.xml" xml_writer.write(xml_file_path) - def get_environment(self, state: bool = True) -> Dict[str, str]: + def get_environment(self, state: bool = True) -> dict[str, str]: """ Get an environment suitable for a subprocess.Popen call. This is the current process environment with some session-specific @@ -870,7 +870,7 @@ class Session: if path.is_file(): try: utils.load_config(path, env) - except IOError: + except OSError: logger.exception("error reading environment file: %s", path) return env @@ -887,12 +887,12 @@ class Session: uid = pwd.getpwnam(user).pw_uid gid = self.directory.stat().st_gid os.chown(self.directory, uid, gid) - except IOError: + except OSError: logger.exception("failed to set permission on %s", self.directory) def create_node( self, - _class: Type[NT], + _class: type[NT], start: bool, _id: int = None, name: str = None, @@ -928,7 +928,7 @@ class Session: node.startup() return node - def get_node(self, _id: int, _class: Type[NT]) -> NT: + def get_node(self, _id: int, _class: type[NT]) -> NT: """ Get a session node. @@ -1002,7 +1002,7 @@ class Session: ) self.broadcast_exception(exception_data) - def instantiate(self) -> List[Exception]: + def instantiate(self) -> list[Exception]: """ We have entered the instantiation state, invoke startup methods of various managers and boot the nodes. Validate nodes and check @@ -1121,7 +1121,7 @@ class Session: self.services.boot_services(node) node.start_config_services() - def boot_nodes(self) -> List[Exception]: + def boot_nodes(self) -> list[Exception]: """ Invoke the boot() procedure for all nodes and send back node messages to the GUI for node messages that had the status @@ -1143,7 +1143,7 @@ class Session: self.update_control_iface_hosts() return exceptions - def get_control_net_prefixes(self) -> List[str]: + def get_control_net_prefixes(self) -> list[str]: """ Retrieve control net prefixes. @@ -1158,7 +1158,7 @@ class Session: p0 = p return [p0, p1, p2, p3] - def get_control_net_server_ifaces(self) -> List[str]: + def get_control_net_server_ifaces(self) -> list[str]: """ Retrieve control net server interfaces. diff --git a/daemon/core/emulator/sessionconfig.py b/daemon/core/emulator/sessionconfig.py index ead9e9e5..b6d5bcd3 100644 --- a/daemon/core/emulator/sessionconfig.py +++ b/daemon/core/emulator/sessionconfig.py @@ -1,4 +1,4 @@ -from typing import Dict, List, Optional +from typing import Optional from core.config import ConfigBool, ConfigInt, ConfigString, Configuration from core.errors import CoreError @@ -10,7 +10,7 @@ class SessionConfig: Provides session configuration. """ - options: List[Configuration] = [ + options: list[Configuration] = [ ConfigString(id="controlnet", label="Control Network"), ConfigString(id="controlnet0", label="Control Network 0"), ConfigString(id="controlnet1", label="Control Network 1"), @@ -35,16 +35,16 @@ class SessionConfig: ConfigInt(id="mtu", default="0", label="MTU for All Devices"), ] - def __init__(self, config: Dict[str, str] = None) -> None: + def __init__(self, config: dict[str, str] = None) -> None: """ Create a SessionConfig instance. :param config: configuration to initialize with """ - self._config: Dict[str, str] = {x.id: x.default for x in self.options} + self._config: dict[str, str] = {x.id: x.default for x in self.options} self._config.update(config or {}) - def update(self, config: Dict[str, str]) -> None: + def update(self, config: dict[str, str]) -> None: """ Update current configuration with provided values. @@ -73,7 +73,7 @@ class SessionConfig: """ return self._config.get(name, default) - def all(self) -> Dict[str, str]: + def all(self) -> dict[str, str]: """ Retrieve all configuration options. From 7ea950f8ecfb08d1daf8be0fb8ac347345fb82c5 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Thu, 13 Apr 2023 12:29:16 -0700 Subject: [PATCH 26/70] daemon: updated core.location and core.plugins to avoid using deprecated type hinting --- daemon/core/location/event.py | 16 +++++----- daemon/core/location/geo.py | 11 ++++--- daemon/core/location/mobility.py | 50 ++++++++++++++++---------------- daemon/core/plugins/sdt.py | 18 ++++++------ 4 files changed, 47 insertions(+), 48 deletions(-) diff --git a/daemon/core/location/event.py b/daemon/core/location/event.py index 7f8a33a1..9b300241 100644 --- a/daemon/core/location/event.py +++ b/daemon/core/location/event.py @@ -6,7 +6,7 @@ import heapq import threading import time from functools import total_ordering -from typing import Any, Callable, Dict, List, Optional, Tuple +from typing import Any, Callable, Optional class Timer(threading.Thread): @@ -19,8 +19,8 @@ class Timer(threading.Thread): self, interval: float, func: Callable[..., None], - args: Tuple[Any] = None, - kwargs: Dict[Any, Any] = None, + args: tuple[Any] = None, + kwargs: dict[Any, Any] = None, ) -> None: """ Create a Timer instance. @@ -38,11 +38,11 @@ class Timer(threading.Thread): # validate arguments were provided if args is None: args = () - self.args: Tuple[Any] = args + self.args: tuple[Any] = args # validate keyword arguments were provided if kwargs is None: kwargs = {} - self.kwargs: Dict[Any, Any] = kwargs + self.kwargs: dict[Any, Any] = kwargs def cancel(self) -> bool: """ @@ -96,8 +96,8 @@ class Event: self.eventnum: int = eventnum self.time: float = event_time self.func: Callable[..., None] = func - self.args: Tuple[Any] = args - self.kwds: Dict[Any, Any] = kwds + self.args: tuple[Any] = args + self.kwds: dict[Any, Any] = kwds self.canceled: bool = False def __lt__(self, other: "Event") -> bool: @@ -135,7 +135,7 @@ class EventLoop: Creates a EventLoop instance. """ self.lock: threading.RLock = threading.RLock() - self.queue: List[Event] = [] + self.queue: list[Event] = [] self.eventnum: int = 0 self.timer: Optional[Timer] = None self.running: bool = False diff --git a/daemon/core/location/geo.py b/daemon/core/location/geo.py index 5896e074..78308728 100644 --- a/daemon/core/location/geo.py +++ b/daemon/core/location/geo.py @@ -3,7 +3,6 @@ Provides conversions from x,y,z to lon,lat,alt. """ import logging -from typing import Tuple import pyproj from pyproj import Transformer @@ -35,9 +34,9 @@ class GeoLocation: self.to_geo: Transformer = pyproj.Transformer.from_crs( CRS_PROJ, CRS_WGS84, always_xy=True ) - self.refproj: Tuple[float, float, float] = (0.0, 0.0, 0.0) - self.refgeo: Tuple[float, float, float] = (0.0, 0.0, 0.0) - self.refxyz: Tuple[float, float, float] = (0.0, 0.0, 0.0) + self.refproj: tuple[float, float, float] = (0.0, 0.0, 0.0) + self.refgeo: tuple[float, float, float] = (0.0, 0.0, 0.0) + self.refxyz: tuple[float, float, float] = (0.0, 0.0, 0.0) self.refscale: float = 1.0 def setrefgeo(self, lat: float, lon: float, alt: float) -> None: @@ -84,7 +83,7 @@ class GeoLocation: return 0.0 return SCALE_FACTOR * (value / self.refscale) - def getxyz(self, lat: float, lon: float, alt: float) -> Tuple[float, float, float]: + def getxyz(self, lat: float, lon: float, alt: float) -> tuple[float, float, float]: """ Convert provided lon,lat,alt to x,y,z. @@ -104,7 +103,7 @@ class GeoLocation: logger.debug("result x,y,z(%s, %s, %s)", x, y, z) return x, y, z - def getgeo(self, x: float, y: float, z: float) -> Tuple[float, float, float]: + def getgeo(self, x: float, y: float, z: float) -> tuple[float, float, float]: """ Convert provided x,y,z to lon,lat,alt. diff --git a/daemon/core/location/mobility.py b/daemon/core/location/mobility.py index 28040650..ebac9bc5 100644 --- a/daemon/core/location/mobility.py +++ b/daemon/core/location/mobility.py @@ -9,7 +9,7 @@ import threading import time from functools import total_ordering from pathlib import Path -from typing import TYPE_CHECKING, Callable, Dict, List, Optional, Tuple, Union +from typing import TYPE_CHECKING, Callable, Optional, Union from core import utils from core.config import ( @@ -47,7 +47,7 @@ def get_mobility_node(session: "Session", node_id: int) -> Union[WlanNode, Emane return session.get_node(node_id, EmaneNet) -def get_config_int(current: int, config: Dict[str, str], name: str) -> Optional[int]: +def get_config_int(current: int, config: dict[str, str], name: str) -> Optional[int]: """ Convenience function to get config values as int. @@ -63,7 +63,7 @@ def get_config_int(current: int, config: Dict[str, str], name: str) -> Optional[ def get_config_float( - current: Union[int, float], config: Dict[str, str], name: str + current: Union[int, float], config: dict[str, str], name: str ) -> Optional[float]: """ Convenience function to get config values as float. @@ -112,7 +112,7 @@ class MobilityManager(ModelManager): """ self.config_reset() - def startup(self, node_ids: List[int] = None) -> None: + def startup(self, node_ids: list[int] = None) -> None: """ Session is transitioning from instantiation to runtime state. Instantiate any mobility models that have been configured for a WLAN. @@ -237,7 +237,7 @@ class WirelessModel(ConfigurableOptions): self.session: "Session" = session self.id: int = _id - def links(self, flags: MessageFlags = MessageFlags.NONE) -> List[LinkData]: + def links(self, flags: MessageFlags = MessageFlags.NONE) -> list[LinkData]: """ May be used if the model can populate the GUI with wireless (green) link lines. @@ -247,7 +247,7 @@ class WirelessModel(ConfigurableOptions): """ return [] - def update(self, moved_ifaces: List[CoreInterface]) -> None: + def update(self, moved_ifaces: list[CoreInterface]) -> None: """ Update this wireless model. @@ -256,7 +256,7 @@ class WirelessModel(ConfigurableOptions): """ raise NotImplementedError - def update_config(self, config: Dict[str, str]) -> None: + def update_config(self, config: dict[str, str]) -> None: """ For run-time updates of model config. Returns True when position callback and set link parameters should be invoked. @@ -275,7 +275,7 @@ class BasicRangeModel(WirelessModel): """ name: str = "basic_range" - options: List[Configuration] = [ + options: list[Configuration] = [ ConfigInt(id="range", default="275", label="wireless range (pixels)"), ConfigInt(id="bandwidth", default="54000000", label="bandwidth (bps)"), ConfigInt(id="jitter", default="0", label="transmission jitter (usec)"), @@ -298,7 +298,7 @@ class BasicRangeModel(WirelessModel): super().__init__(session, _id) self.session: "Session" = session self.wlan: WlanNode = session.get_node(_id, WlanNode) - self.iface_to_pos: Dict[CoreInterface, Tuple[float, float, float]] = {} + self.iface_to_pos: dict[CoreInterface, tuple[float, float, float]] = {} self.iface_lock: threading.Lock = threading.Lock() self.range: int = 0 self.bw: Optional[int] = None @@ -323,7 +323,7 @@ class BasicRangeModel(WirelessModel): iface.options.update(options) iface.set_config() - def get_position(self, iface: CoreInterface) -> Tuple[float, float, float]: + def get_position(self, iface: CoreInterface) -> tuple[float, float, float]: """ Retrieve network interface position. @@ -352,7 +352,7 @@ class BasicRangeModel(WirelessModel): position_callback = set_position - def update(self, moved_ifaces: List[CoreInterface]) -> None: + def update(self, moved_ifaces: list[CoreInterface]) -> None: """ Node positions have changed without recalc. Update positions from node.position, then re-calculate links for those that have moved. @@ -412,7 +412,7 @@ class BasicRangeModel(WirelessModel): @staticmethod def calcdistance( - p1: Tuple[float, float, float], p2: Tuple[float, float, float] + p1: tuple[float, float, float], p2: tuple[float, float, float] ) -> float: """ Calculate the distance between two three-dimensional points. @@ -428,7 +428,7 @@ class BasicRangeModel(WirelessModel): c = p1[2] - p2[2] return math.hypot(math.hypot(a, b), c) - def update_config(self, config: Dict[str, str]) -> None: + def update_config(self, config: dict[str, str]) -> None: """ Configuration has changed during runtime. @@ -487,7 +487,7 @@ class BasicRangeModel(WirelessModel): link_data = self.create_link_data(iface, iface2, message_type) self.session.broadcast_link(link_data) - def links(self, flags: MessageFlags = MessageFlags.NONE) -> List[LinkData]: + def links(self, flags: MessageFlags = MessageFlags.NONE) -> list[LinkData]: """ Return a list of wireless link messages for when the GUI reconnects. @@ -513,7 +513,7 @@ class WayPoint: self, _time: float, node_id: int, - coords: Tuple[float, float, Optional[float]], + coords: tuple[float, float, Optional[float]], speed: float, ) -> None: """ @@ -526,7 +526,7 @@ class WayPoint: """ self.time: float = _time self.node_id: int = node_id - self.coords: Tuple[float, float, Optional[float]] = coords + self.coords: tuple[float, float, Optional[float]] = coords self.speed: float = speed def __eq__(self, other: "WayPoint") -> bool: @@ -563,10 +563,10 @@ class WayPointMobility(WirelessModel): """ super().__init__(session=session, _id=_id) self.state: int = self.STATE_STOPPED - self.queue: List[WayPoint] = [] - self.queue_copy: List[WayPoint] = [] - self.points: Dict[int, WayPoint] = {} - self.initial: Dict[int, WayPoint] = {} + self.queue: list[WayPoint] = [] + self.queue_copy: list[WayPoint] = [] + self.points: dict[int, WayPoint] = {} + self.initial: dict[int, WayPoint] = {} self.lasttime: Optional[float] = None self.endtime: Optional[int] = None self.timezero: float = 0.0 @@ -855,7 +855,7 @@ class Ns2ScriptedMobility(WayPointMobility): """ name: str = "ns2script" - options: List[Configuration] = [ + options: list[Configuration] = [ ConfigString(id="file", label="mobility script file"), ConfigInt(id="refresh_ms", default="50", label="refresh time (ms)"), ConfigBool(id="loop", default="1", label="loop"), @@ -867,7 +867,7 @@ class Ns2ScriptedMobility(WayPointMobility): ] @classmethod - def config_groups(cls) -> List[ConfigGroup]: + def config_groups(cls) -> list[ConfigGroup]: return [ ConfigGroup("ns-2 Mobility Script Parameters", 1, len(cls.configurations())) ] @@ -882,12 +882,12 @@ class Ns2ScriptedMobility(WayPointMobility): super().__init__(session, _id) self.file: Optional[Path] = None self.autostart: Optional[str] = None - self.nodemap: Dict[int, int] = {} + self.nodemap: dict[int, int] = {} self.script_start: Optional[str] = None self.script_pause: Optional[str] = None self.script_stop: Optional[str] = None - def update_config(self, config: Dict[str, str]) -> None: + def update_config(self, config: dict[str, str]) -> None: self.file = Path(config["file"]) logger.info( "ns-2 scripted mobility configured for WLAN %d using file: %s", @@ -916,7 +916,7 @@ class Ns2ScriptedMobility(WayPointMobility): file_path = self.findfile(self.file) try: f = file_path.open("r") - except IOError: + except OSError: logger.exception( "ns-2 scripted mobility failed to load file: %s", self.file ) diff --git a/daemon/core/plugins/sdt.py b/daemon/core/plugins/sdt.py index 48a6cdf0..f963c817 100644 --- a/daemon/core/plugins/sdt.py +++ b/daemon/core/plugins/sdt.py @@ -5,7 +5,7 @@ sdt.py: Scripted Display Tool (SDT3D) helper import logging import socket from pathlib import Path -from typing import TYPE_CHECKING, Dict, List, Optional, Set, Tuple, Type +from typing import TYPE_CHECKING, Optional from urllib.parse import urlparse from core.constants import CORE_CONF_DIR @@ -28,9 +28,9 @@ CORE_LAYER: str = "CORE" NODE_LAYER: str = "CORE::Nodes" LINK_LAYER: str = "CORE::Links" WIRED_LINK_LAYER: str = f"{LINK_LAYER}::wired" -CORE_LAYERS: List[str] = [CORE_LAYER, LINK_LAYER, NODE_LAYER, WIRED_LINK_LAYER] +CORE_LAYERS: list[str] = [CORE_LAYER, LINK_LAYER, NODE_LAYER, WIRED_LINK_LAYER] DEFAULT_LINK_COLOR: str = "red" -NODE_TYPES: Dict[Type[NodeBase], str] = { +NODE_TYPES: dict[type[NodeBase], str] = { HubNode: "hub", SwitchNode: "lanswitch", TunnelNode: "tunnel", @@ -63,7 +63,7 @@ class Sdt: # default altitude (in meters) for flyto view DEFAULT_ALT: int = 2500 # TODO: read in user"s nodes.conf here; below are default node types from the GUI - DEFAULT_SPRITES: Dict[str, str] = [ + DEFAULT_SPRITES: dict[str, str] = [ ("router", "router.png"), ("host", "host.png"), ("PC", "pc.png"), @@ -88,9 +88,9 @@ class Sdt: self.sock: Optional[socket.socket] = None self.connected: bool = False self.url: str = self.DEFAULT_SDT_URL - self.address: Optional[Tuple[Optional[str], Optional[int]]] = None + self.address: Optional[tuple[Optional[str], Optional[int]]] = None self.protocol: Optional[str] = None - self.network_layers: Set[str] = set() + self.network_layers: set[str] = set() self.session.node_handlers.append(self.handle_node_update) self.session.link_handlers.append(self.handle_link_update) @@ -138,7 +138,7 @@ class Sdt: else: # Default to tcp self.sock = socket.create_connection(self.address, 5) - except IOError: + except OSError: logger.exception("SDT socket connect error") return False @@ -176,7 +176,7 @@ class Sdt: if self.sock: try: self.sock.close() - except IOError: + except OSError: logger.error("error closing socket") finally: self.sock = None @@ -212,7 +212,7 @@ class Sdt: logger.debug("sdt cmd: %s", cmd) self.sock.sendall(cmd) return True - except IOError: + except OSError: logger.exception("SDT connection error") self.sock = None self.connected = False From f9505b317302f2e9d345b3aa81501ed683acc565 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Thu, 13 Apr 2023 13:27:22 -0700 Subject: [PATCH 27/70] daemon: updated core.scripts and core.xml to avoid using deprecated type hinting --- daemon/core/scripts/cli.py | 8 ++++---- daemon/core/scripts/routemonitor.py | 7 +++---- daemon/core/xml/corexml.py | 12 ++++++------ daemon/core/xml/corexmldeployment.py | 4 ++-- daemon/core/xml/emanexml.py | 22 +++++++++++----------- 5 files changed, 26 insertions(+), 27 deletions(-) diff --git a/daemon/core/scripts/cli.py b/daemon/core/scripts/cli.py index 31ad086e..760dbad7 100755 --- a/daemon/core/scripts/cli.py +++ b/daemon/core/scripts/cli.py @@ -8,7 +8,7 @@ from argparse import ( ) from functools import wraps from pathlib import Path -from typing import Any, Dict, Optional, Tuple +from typing import Any, Optional import grpc import netaddr @@ -30,7 +30,7 @@ from core.api.grpc.wrappers import ( NODE_TYPES = [x.name for x in NodeType if x != NodeType.PEER_TO_PEER] -def protobuf_to_json(message: Any) -> Dict[str, Any]: +def protobuf_to_json(message: Any) -> dict[str, Any]: return MessageToDict( message, including_default_value_fields=True, preserving_proto_field_name=True ) @@ -82,7 +82,7 @@ def ip6_type(value: str) -> IPNetwork: raise ArgumentTypeError(f"invalid ip6 address: {value}") -def position_type(value: str) -> Tuple[float, float]: +def position_type(value: str) -> tuple[float, float]: error = "invalid position, must be in the format: float,float" try: values = [float(x) for x in value.split(",")] @@ -94,7 +94,7 @@ def position_type(value: str) -> Tuple[float, float]: return x, y -def geo_type(value: str) -> Tuple[float, float, float]: +def geo_type(value: str) -> tuple[float, float, float]: error = "invalid geo, must be in the format: float,float,float" try: values = [float(x) for x in value.split(",")] diff --git a/daemon/core/scripts/routemonitor.py b/daemon/core/scripts/routemonitor.py index 2ebfdfad..42fbf3a9 100755 --- a/daemon/core/scripts/routemonitor.py +++ b/daemon/core/scripts/routemonitor.py @@ -9,7 +9,6 @@ from argparse import ArgumentDefaultsHelpFormatter from functools import cmp_to_key from queue import Queue from threading import Thread -from typing import Dict, Tuple import grpc @@ -31,7 +30,7 @@ class RouteEnum(enum.Enum): class SdtClient: - def __init__(self, address: Tuple[str, int]) -> None: + def __init__(self, address: tuple[str, int]) -> None: self.sock = socket.create_connection(address) self.links = [] self.send(f'layer "{ROUTE_LAYER}"') @@ -85,7 +84,7 @@ class RouterMonitor: self.sdt = SdtClient((sdt_host, sdt_port)) self.nodes = self.get_nodes() - def get_nodes(self) -> Dict[int, str]: + def get_nodes(self) -> dict[int, str]: with self.core.context_connect(): if self.session is None: self.session = self.get_session() @@ -146,7 +145,7 @@ class RouterMonitor: self.manage_routes() self.route_time = time.monotonic() - def route_sort(self, x: Tuple[str, int], y: Tuple[str, int]) -> int: + def route_sort(self, x: tuple[str, int], y: tuple[str, int]) -> int: x_node = x[0] y_node = y[0] if x_node == self.src_id: diff --git a/daemon/core/xml/corexml.py b/daemon/core/xml/corexml.py index a413fc1a..f7f9e85d 100644 --- a/daemon/core/xml/corexml.py +++ b/daemon/core/xml/corexml.py @@ -1,6 +1,6 @@ import logging from pathlib import Path -from typing import TYPE_CHECKING, Any, Dict, Generic, Optional, Type, TypeVar +from typing import TYPE_CHECKING, Any, Generic, Optional, TypeVar from lxml import etree @@ -26,7 +26,7 @@ if TYPE_CHECKING: from core.emane.emanemodel import EmaneModel from core.emulator.session import Session - EmaneModelType = Type[EmaneModel] + EmaneModelType = type[EmaneModel] T = TypeVar("T") @@ -86,7 +86,7 @@ def create_iface_data(iface_element: etree.Element) -> InterfaceData: def create_emane_model_config( node_id: int, model: "EmaneModelType", - config: Dict[str, str], + config: dict[str, str], iface_id: Optional[int], ) -> etree.Element: emane_element = etree.Element("emane_configuration") @@ -148,8 +148,8 @@ class NodeElement: class ServiceElement: - def __init__(self, service: Type[CoreService]) -> None: - self.service: Type[CoreService] = service + def __init__(self, service: type[CoreService]) -> None: + self.service: type[CoreService] = service self.element: etree.Element = etree.Element("service") add_attribute(self.element, "name", service.name) self.add_directories() @@ -266,7 +266,7 @@ class NetworkElement(NodeElement): node_type = self.session.get_node_type(type(self.node)) add_attribute(self.element, "type", node_type.name) - def add_wireless_config(self, config: Dict[str, Configuration]) -> None: + def add_wireless_config(self, config: dict[str, Configuration]) -> None: wireless_element = etree.SubElement(self.element, "wireless") for config_item in config.values(): add_configuration(wireless_element, config_item.id, config_item.default) diff --git a/daemon/core/xml/corexmldeployment.py b/daemon/core/xml/corexmldeployment.py index c062a1d2..0b38e9b0 100644 --- a/daemon/core/xml/corexmldeployment.py +++ b/daemon/core/xml/corexmldeployment.py @@ -1,6 +1,6 @@ import os import socket -from typing import TYPE_CHECKING, List, Tuple +from typing import TYPE_CHECKING import netaddr from lxml import etree @@ -78,7 +78,7 @@ def get_address_type(address: str) -> str: return address_type -def get_ipv4_addresses(hostname: str) -> List[Tuple[str, str]]: +def get_ipv4_addresses(hostname: str) -> list[tuple[str, str]]: if hostname == "localhost": addresses = [] args = f"{IP} -o -f inet address show" diff --git a/daemon/core/xml/emanexml.py b/daemon/core/xml/emanexml.py index 91d8ce28..4b8ada70 100644 --- a/daemon/core/xml/emanexml.py +++ b/daemon/core/xml/emanexml.py @@ -1,7 +1,7 @@ import logging from pathlib import Path from tempfile import NamedTemporaryFile -from typing import TYPE_CHECKING, Dict, List, Optional, Set, Tuple +from typing import TYPE_CHECKING, Optional from lxml import etree @@ -22,7 +22,7 @@ if TYPE_CHECKING: _MAC_PREFIX = "02:02" -def is_external(config: Dict[str, str]) -> bool: +def is_external(config: dict[str, str]) -> bool: """ Checks if the configuration is for an external transport. @@ -32,7 +32,7 @@ def is_external(config: Dict[str, str]) -> bool: return config.get("external") == "1" -def _value_to_params(value: str) -> Optional[Tuple[str]]: +def _value_to_params(value: str) -> Optional[tuple[str]]: """ Helper to convert a parameter to a parameter tuple. @@ -113,9 +113,9 @@ def add_param(xml_element: etree.Element, name: str, value: str) -> None: def add_configurations( xml_element: etree.Element, - configurations: List[Configuration], - config: Dict[str, str], - config_ignore: Set, + configurations: list[Configuration], + config: dict[str, str], + config_ignore: set[str], ) -> None: """ Add emane model configurations to xml element. @@ -148,7 +148,7 @@ def build_platform_xml( nem_port: int, emane_net: EmaneNet, iface: CoreInterface, - config: Dict[str, str], + config: dict[str, str], ) -> None: """ Create platform xml for a nem/interface. @@ -209,7 +209,7 @@ def build_platform_xml( create_node_file(iface.node, platform_element, doc_name, file_name) -def create_transport_xml(iface: CoreInterface, config: Dict[str, str]) -> None: +def create_transport_xml(iface: CoreInterface, config: dict[str, str]) -> None: """ Build transport xml file for node and transport type. @@ -240,7 +240,7 @@ def create_transport_xml(iface: CoreInterface, config: Dict[str, str]) -> None: def create_phy_xml( - emane_model: "EmaneModel", iface: CoreInterface, config: Dict[str, str] + emane_model: "EmaneModel", iface: CoreInterface, config: dict[str, str] ) -> None: """ Create the phy xml document. @@ -261,7 +261,7 @@ def create_phy_xml( def create_mac_xml( - emane_model: "EmaneModel", iface: CoreInterface, config: Dict[str, str] + emane_model: "EmaneModel", iface: CoreInterface, config: dict[str, str] ) -> None: """ Create the mac xml document. @@ -284,7 +284,7 @@ def create_mac_xml( def create_nem_xml( - emane_model: "EmaneModel", iface: CoreInterface, config: Dict[str, str] + emane_model: "EmaneModel", iface: CoreInterface, config: dict[str, str] ) -> None: """ Create the nem xml document. From 7f58224f43140452d119fffeed4dd1ad00701c0a Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Thu, 13 Apr 2023 13:32:23 -0700 Subject: [PATCH 28/70] daemon: updated core.nodes to avoid using deprecated type hinting --- daemon/core/nodes/base.py | 32 ++++++++++++++++---------------- daemon/core/nodes/docker.py | 10 +++++----- daemon/core/nodes/interface.py | 10 +++++----- daemon/core/nodes/lxd.py | 8 ++++---- daemon/core/nodes/network.py | 18 +++++++++--------- daemon/core/nodes/physical.py | 6 +++--- daemon/core/nodes/wireless.py | 18 +++++++++--------- 7 files changed, 51 insertions(+), 51 deletions(-) diff --git a/daemon/core/nodes/base.py b/daemon/core/nodes/base.py index 92717ead..f5688f5a 100644 --- a/daemon/core/nodes/base.py +++ b/daemon/core/nodes/base.py @@ -9,7 +9,7 @@ import threading from dataclasses import dataclass, field from pathlib import Path from threading import RLock -from typing import TYPE_CHECKING, Dict, List, Optional, Tuple, Type, Union +from typing import TYPE_CHECKING, Optional, Union import netaddr @@ -29,10 +29,10 @@ if TYPE_CHECKING: from core.configservice.base import ConfigService from core.services.coreservices import CoreService - CoreServices = List[Union[CoreService, Type[CoreService]]] - ConfigServiceType = Type[ConfigService] + CoreServices = list[Union[CoreService, type[CoreService]]] + ConfigServiceType = type[ConfigService] -PRIVATE_DIRS: List[Path] = [Path("/var/run"), Path("/var/log")] +PRIVATE_DIRS: list[Path] = [Path("/var/run"), Path("/var/log")] @dataclass @@ -64,7 +64,7 @@ class Position: self.z = z return True - def get(self) -> Tuple[float, float, float]: + def get(self) -> tuple[float, float, float]: """ Retrieve x,y,z position. @@ -88,7 +88,7 @@ class Position: self.lat = lat self.alt = alt - def get_geo(self) -> Tuple[float, float, float]: + def get_geo(self) -> tuple[float, float, float]: """ Retrieve current geo position lon, lat, alt. @@ -113,9 +113,9 @@ class NodeOptions: class CoreNodeOptions(NodeOptions): model: str = "PC" """model is used for providing a default set of services""" - services: List[str] = field(default_factory=list) + services: list[str] = field(default_factory=list) """services to start within node""" - config_services: List[str] = field(default_factory=list) + config_services: list[str] = field(default_factory=list) """config services to start within node""" directory: Path = None """directory to define node, defaults to path under the session directory""" @@ -152,7 +152,7 @@ class NodeBase(abc.ABC): self.server: "DistributedServer" = server self.model: Optional[str] = None self.services: CoreServices = [] - self.ifaces: Dict[int, CoreInterface] = {} + self.ifaces: dict[int, CoreInterface] = {} self.iface_id: int = 0 self.position: Position = Position() self.up: bool = False @@ -201,7 +201,7 @@ class NodeBase(abc.ABC): def host_cmd( self, args: str, - env: Dict[str, str] = None, + env: dict[str, str] = None, cwd: Path = None, wait: bool = True, shell: bool = False, @@ -246,7 +246,7 @@ class NodeBase(abc.ABC): """ return self.position.set(x=x, y=y, z=z) - def getposition(self) -> Tuple[float, float, float]: + def getposition(self) -> tuple[float, float, float]: """ Return an (x,y,z) tuple representing this object's position. @@ -331,7 +331,7 @@ class NodeBase(abc.ABC): raise CoreError(f"node({self.name}) does not have interface({iface_id})") return self.ifaces[iface_id] - def get_ifaces(self, control: bool = True) -> List[CoreInterface]: + def get_ifaces(self, control: bool = True) -> list[CoreInterface]: """ Retrieve sorted list of interfaces, optionally do not include control interfaces. @@ -395,7 +395,7 @@ class CoreNodeBase(NodeBase): will run on, default is None for localhost """ super().__init__(session, _id, name, server, options) - self.config_services: Dict[str, "ConfigService"] = {} + self.config_services: dict[str, "ConfigService"] = {} self.directory: Optional[Path] = None self.tmpnodedir: bool = False @@ -481,7 +481,7 @@ class CoreNodeBase(NodeBase): raise CoreError(f"node({self.name}) already has service({name})") self.config_services[name] = service_class(self) - def set_service_config(self, name: str, data: Dict[str, str]) -> None: + def set_service_config(self, name: str, data: dict[str, str]) -> None: """ Sets configuration service custom config data. @@ -574,7 +574,7 @@ class CoreNode(CoreNodeBase): self.directory: Optional[Path] = options.directory self.ctrlchnlname: Path = self.session.directory / self.name self.pid: Optional[int] = None - self._mounts: List[Tuple[Path, Path]] = [] + self._mounts: list[tuple[Path, Path]] = [] self.node_net_client: LinuxNetClient = self.create_node_net_client( self.session.use_ovs() ) @@ -928,7 +928,7 @@ class CoreNetworkBase(NodeBase): mtu = self.session.options.get_int("mtu") self.mtu: int = mtu if mtu > 0 else DEFAULT_MTU self.brname: Optional[str] = None - self.linked: Dict[CoreInterface, Dict[CoreInterface, bool]] = {} + self.linked: dict[CoreInterface, dict[CoreInterface, bool]] = {} self.linked_lock: threading.Lock = threading.Lock() def attach(self, iface: CoreInterface) -> None: diff --git a/daemon/core/nodes/docker.py b/daemon/core/nodes/docker.py index 45d2b892..ba470167 100644 --- a/daemon/core/nodes/docker.py +++ b/daemon/core/nodes/docker.py @@ -4,7 +4,7 @@ import shlex from dataclasses import dataclass, field from pathlib import Path from tempfile import NamedTemporaryFile -from typing import TYPE_CHECKING, Dict, List, Tuple +from typing import TYPE_CHECKING from core.emulator.distributed import DistributedServer from core.errors import CoreCommandError, CoreError @@ -23,9 +23,9 @@ DOCKER: str = "docker" class DockerOptions(CoreNodeOptions): image: str = "ubuntu" """image used when creating container""" - binds: List[Tuple[str, str]] = field(default_factory=list) + binds: list[tuple[str, str]] = field(default_factory=list) """bind mount source and destinations to setup within container""" - volumes: List[Tuple[str, str, bool, bool]] = field(default_factory=list) + volumes: list[tuple[str, str, bool, bool]] = field(default_factory=list) """ volume mount source, destination, unique, delete to setup within container @@ -74,8 +74,8 @@ class DockerNode(CoreNode): options = options or DockerOptions() super().__init__(session, _id, name, server, options) self.image: str = options.image - self.binds: List[Tuple[str, str]] = options.binds - self.volumes: Dict[str, DockerVolume] = {} + self.binds: list[tuple[str, str]] = options.binds + self.volumes: dict[str, DockerVolume] = {} for src, dst, unique, delete in options.volumes: src_name = self._unique_name(src) if unique else src self.volumes[src] = DockerVolume(src_name, dst, unique, delete) diff --git a/daemon/core/nodes/interface.py b/daemon/core/nodes/interface.py index bb90653f..294e85f9 100644 --- a/daemon/core/nodes/interface.py +++ b/daemon/core/nodes/interface.py @@ -5,7 +5,7 @@ virtual ethernet classes that implement the interfaces available under Linux. import logging import math from pathlib import Path -from typing import TYPE_CHECKING, Callable, Dict, List, Optional +from typing import TYPE_CHECKING, Callable, Optional import netaddr @@ -114,8 +114,8 @@ class CoreInterface: self.up: bool = False self.mtu: int = mtu self.net: Optional[CoreNetworkBase] = None - self.ip4s: List[netaddr.IPNetwork] = [] - self.ip6s: List[netaddr.IPNetwork] = [] + self.ip4s: list[netaddr.IPNetwork] = [] + self.ip6s: list[netaddr.IPNetwork] = [] self.mac: Optional[netaddr.EUI] = None # placeholder position hook self.poshook: Callable[[CoreInterface], None] = lambda x: None @@ -133,7 +133,7 @@ class CoreInterface: def host_cmd( self, args: str, - env: Dict[str, str] = None, + env: dict[str, str] = None, cwd: Path = None, wait: bool = True, shell: bool = False, @@ -235,7 +235,7 @@ class CoreInterface: """ return next(iter(self.ip6s), None) - def ips(self) -> List[netaddr.IPNetwork]: + def ips(self) -> list[netaddr.IPNetwork]: """ Retrieve a list of all ip4 and ip6 addresses combined. diff --git a/daemon/core/nodes/lxd.py b/daemon/core/nodes/lxd.py index 01bd2db7..497c228e 100644 --- a/daemon/core/nodes/lxd.py +++ b/daemon/core/nodes/lxd.py @@ -5,7 +5,7 @@ import time from dataclasses import dataclass, field from pathlib import Path from tempfile import NamedTemporaryFile -from typing import TYPE_CHECKING, Dict, List, Tuple +from typing import TYPE_CHECKING from core.emulator.data import InterfaceData, LinkOptions from core.emulator.distributed import DistributedServer @@ -24,9 +24,9 @@ if TYPE_CHECKING: class LxcOptions(CoreNodeOptions): image: str = "ubuntu" """image used when creating container""" - binds: List[Tuple[str, str]] = field(default_factory=list) + binds: list[tuple[str, str]] = field(default_factory=list) """bind mount source and destinations to setup within container""" - volumes: List[Tuple[str, str, bool, bool]] = field(default_factory=list) + volumes: list[tuple[str, str, bool, bool]] = field(default_factory=list) """ volume mount source, destination, unique, delete to setup within container @@ -74,7 +74,7 @@ class LxcNode(CoreNode): args = f"{BASH} -c {shlex.quote(args)}" return f"nsenter -t {self.pid} -m -u -i -p -n {args}" - def _get_info(self) -> Dict: + def _get_info(self) -> dict: args = f"lxc list {self.name} --format json" output = self.host_cmd(args) data = json.loads(output) diff --git a/daemon/core/nodes/network.py b/daemon/core/nodes/network.py index e201e807..1ea9c31e 100644 --- a/daemon/core/nodes/network.py +++ b/daemon/core/nodes/network.py @@ -6,7 +6,7 @@ import logging import threading from dataclasses import dataclass from pathlib import Path -from typing import TYPE_CHECKING, Dict, List, Optional, Type +from typing import TYPE_CHECKING, Optional import netaddr @@ -51,7 +51,7 @@ class NftablesQueue: # this lock protects cmds and updates lists self.lock: threading.Lock = threading.Lock() # list of pending nftables commands - self.cmds: List[str] = [] + self.cmds: list[str] = [] # list of WLANs requiring update self.updates: utils.SetQueue = utils.SetQueue() @@ -226,7 +226,7 @@ class CoreNetwork(CoreNetworkBase): def host_cmd( self, args: str, - env: Dict[str, str] = None, + env: dict[str, str] = None, cwd: Path = None, wait: bool = True, shell: bool = False, @@ -448,7 +448,7 @@ class GreTapBridge(CoreNetwork): self.gretap = None super().shutdown() - def add_ips(self, ips: List[str]) -> None: + def add_ips(self, ips: list[str]) -> None: """ Set the remote tunnel endpoint. This is a one-time method for creating the GreTap device, which requires the remoteip at startup. @@ -512,7 +512,7 @@ class CtrlNet(CoreNetwork): policy: NetworkPolicy = NetworkPolicy.ACCEPT # base control interface index CTRLIF_IDX_BASE: int = 99 - DEFAULT_PREFIX_LIST: List[str] = [ + DEFAULT_PREFIX_LIST: list[str] = [ "172.16.0.0/24 172.16.1.0/24 172.16.2.0/24 172.16.3.0/24 172.16.4.0/24", "172.17.0.0/24 172.17.1.0/24 172.17.2.0/24 172.17.3.0/24 172.17.4.0/24", "172.18.0.0/24 172.18.1.0/24 172.18.2.0/24 172.18.3.0/24 172.18.4.0/24", @@ -734,7 +734,7 @@ class WlanNode(CoreNetwork): iface.poshook = self.wireless_model.position_callback iface.setposition() - def setmodel(self, wireless_model: Type["WirelessModel"], config: Dict[str, str]): + def setmodel(self, wireless_model: type["WirelessModel"], config: dict[str, str]): """ Sets the mobility and wireless model. @@ -753,12 +753,12 @@ class WlanNode(CoreNetwork): self.mobility = wireless_model(session=self.session, _id=self.id) self.mobility.update_config(config) - def update_mobility(self, config: Dict[str, str]) -> None: + def update_mobility(self, config: dict[str, str]) -> None: if not self.mobility: raise CoreError(f"no mobility set to update for node({self.name})") self.mobility.update_config(config) - def updatemodel(self, config: Dict[str, str]) -> None: + def updatemodel(self, config: dict[str, str]) -> None: if not self.wireless_model: raise CoreError(f"no model set to update for node({self.name})") logger.debug( @@ -768,7 +768,7 @@ class WlanNode(CoreNetwork): for iface in self.get_ifaces(): iface.setposition() - def links(self, flags: MessageFlags = MessageFlags.NONE) -> List[LinkData]: + def links(self, flags: MessageFlags = MessageFlags.NONE) -> list[LinkData]: """ Retrieve all link data. diff --git a/daemon/core/nodes/physical.py b/daemon/core/nodes/physical.py index 8ab13f20..037ef901 100644 --- a/daemon/core/nodes/physical.py +++ b/daemon/core/nodes/physical.py @@ -4,7 +4,7 @@ PhysicalNode class for including real systems in the emulated network. import logging from pathlib import Path -from typing import TYPE_CHECKING, List, Optional, Tuple +from typing import TYPE_CHECKING, Optional import netaddr @@ -52,7 +52,7 @@ class Rj45Node(CoreNodeBase): ) self.iface.transport_type = TransportType.RAW self.old_up: bool = False - self.old_addrs: List[Tuple[str, Optional[str]]] = [] + self.old_addrs: list[tuple[str, Optional[str]]] = [] def startup(self) -> None: """ @@ -159,7 +159,7 @@ class Rj45Node(CoreNodeBase): """ # TODO: save/restore the PROMISC flag self.old_up = False - self.old_addrs: List[Tuple[str, Optional[str]]] = [] + self.old_addrs: list[tuple[str, Optional[str]]] = [] localname = self.iface.localname output = self.net_client.address_show(localname) for line in output.split("\n"): diff --git a/daemon/core/nodes/wireless.py b/daemon/core/nodes/wireless.py index ef37db35..51a98917 100644 --- a/daemon/core/nodes/wireless.py +++ b/daemon/core/nodes/wireless.py @@ -7,7 +7,7 @@ import logging import math import secrets from dataclasses import dataclass -from typing import TYPE_CHECKING, Dict, List, Set, Tuple +from typing import TYPE_CHECKING from core.config import ConfigBool, ConfigFloat, ConfigInt, Configuration from core.emulator.data import LinkData, LinkOptions @@ -41,7 +41,7 @@ KEY_LOSS: str = "loss" def calc_distance( - point1: Tuple[float, float, float], point2: Tuple[float, float, float] + point1: tuple[float, float, float], point2: tuple[float, float, float] ) -> float: a = point1[0] - point2[0] b = point1[1] - point2[1] @@ -51,7 +51,7 @@ def calc_distance( return math.hypot(math.hypot(a, b), c) -def get_key(node1_id: int, node2_id: int) -> Tuple[int, int]: +def get_key(node1_id: int, node2_id: int) -> tuple[int, int]: return (node1_id, node2_id) if node1_id < node2_id else (node2_id, node1_id) @@ -65,7 +65,7 @@ class WirelessLink: class WirelessNode(CoreNetworkBase): - options: List[Configuration] = [ + options: list[Configuration] = [ ConfigBool( id=KEY_ENABLED, default="1" if CONFIG_ENABLED else "0", label="Enabled?" ), @@ -87,7 +87,7 @@ class WirelessNode(CoreNetworkBase): ), ConfigFloat(id=KEY_LOSS, default=str(CONFIG_LOSS), label="Loss Initial"), ] - devices: Set[str] = set() + devices: set[str] = set() @classmethod def add_device(cls) -> str: @@ -111,8 +111,8 @@ class WirelessNode(CoreNetworkBase): options: NodeOptions = None, ): super().__init__(session, _id, name, server, options) - self.bridges: Dict[int, Tuple[CoreInterface, str]] = {} - self.links: Dict[Tuple[int, int], WirelessLink] = {} + self.bridges: dict[int, tuple[CoreInterface, str]] = {} + self.links: dict[tuple[int, int], WirelessLink] = {} self.position_enabled: bool = CONFIG_ENABLED self.bandwidth: int = CONFIG_BANDWIDTH self.delay: int = CONFIG_DELAY @@ -321,7 +321,7 @@ class WirelessNode(CoreNetworkBase): def adopt_iface(self, iface: CoreInterface, name: str) -> None: raise CoreError(f"{type(self)} does not support adopt interface") - def get_config(self) -> Dict[str, Configuration]: + def get_config(self) -> dict[str, Configuration]: config = {x.id: x for x in copy.copy(self.options)} config[KEY_ENABLED].default = "1" if self.position_enabled else "0" config[KEY_RANGE].default = str(self.max_range) @@ -333,7 +333,7 @@ class WirelessNode(CoreNetworkBase): config[KEY_JITTER].default = str(self.jitter) return config - def set_config(self, config: Dict[str, str]) -> None: + def set_config(self, config: dict[str, str]) -> None: logger.info("wireless config: %s", config) self.position_enabled = config[KEY_ENABLED] == "1" self.max_range = float(config[KEY_RANGE]) From 921bfdf52704c1d069a01a734aa41f9c440b0c64 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Thu, 13 Apr 2023 15:39:40 -0700 Subject: [PATCH 29/70] daemon: updated core.services to avoid using deprecated type hinting, also updated string formatting to f strings --- daemon/core/services/bird.py | 39 +++-- daemon/core/services/coreservices.py | 93 +++++------ daemon/core/services/emaneservices.py | 16 +- daemon/core/services/frr.py | 111 +++++++------ daemon/core/services/nrl.py | 102 ++++++------ daemon/core/services/quagga.py | 105 ++++++------ daemon/core/services/sdn.py | 59 ++++--- daemon/core/services/security.py | 49 +++--- daemon/core/services/ucarp.py | 41 ++--- daemon/core/services/utility.py | 219 +++++++++++--------------- daemon/core/services/xorp.py | 101 ++++++------ 11 files changed, 435 insertions(+), 500 deletions(-) diff --git a/daemon/core/services/bird.py b/daemon/core/services/bird.py index ffb177f3..c2ecc4dc 100644 --- a/daemon/core/services/bird.py +++ b/daemon/core/services/bird.py @@ -1,7 +1,7 @@ """ bird.py: defines routing services provided by the BIRD Internet Routing Daemon. """ -from typing import Optional, Tuple +from typing import Optional from core.nodes.base import CoreNode from core.services.coreservices import CoreService @@ -14,12 +14,12 @@ class Bird(CoreService): name: str = "bird" group: str = "BIRD" - executables: Tuple[str, ...] = ("bird",) - dirs: Tuple[str, ...] = ("/etc/bird",) - configs: Tuple[str, ...] = ("/etc/bird/bird.conf",) - startup: Tuple[str, ...] = ("bird -c %s" % (configs[0]),) - shutdown: Tuple[str, ...] = ("killall bird",) - validate: Tuple[str, ...] = ("pidof bird",) + executables: tuple[str, ...] = ("bird",) + dirs: tuple[str, ...] = ("/etc/bird",) + configs: tuple[str, ...] = ("/etc/bird/bird.conf",) + startup: tuple[str, ...] = (f"bird -c {configs[0]}",) + shutdown: tuple[str, ...] = ("killall bird",) + validate: tuple[str, ...] = ("pidof bird",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: @@ -48,33 +48,30 @@ class Bird(CoreService): Returns configuration file text. Other services that depend on bird will have hooks that are invoked here. """ - cfg = """\ + cfg = f"""\ /* Main configuration file for BIRD. This is ony a template, * you will *need* to customize it according to your needs * Beware that only double quotes \'"\' are valid. No singles. */ -log "/var/log/%s.log" all; +log "/var/log/{cls.name}.log" all; #debug protocols all; #debug commands 2; -router id %s; # Mandatory for IPv6, may be automatic for IPv4 +router id {cls.router_id(node)}; # Mandatory for IPv6, may be automatic for IPv4 -protocol kernel { +protocol kernel {{ persist; # Don\'t remove routes on BIRD shutdown scan time 200; # Scan kernel routing table every 200 seconds export all; import all; -} +}} -protocol device { +protocol device {{ scan time 10; # Scan interfaces every 10 seconds -} +}} -""" % ( - cls.name, - cls.router_id(node), - ) +""" # generate protocol specific configurations for s in node.services: @@ -94,8 +91,8 @@ class BirdService(CoreService): name: Optional[str] = None group: str = "BIRD" - executables: Tuple[str, ...] = ("bird",) - dependencies: Tuple[str, ...] = ("bird",) + executables: tuple[str, ...] = ("bird",) + dependencies: tuple[str, ...] = ("bird",) meta: str = "The config file for this service can be found in the bird service." @classmethod @@ -111,7 +108,7 @@ class BirdService(CoreService): """ cfg = "" for iface in node.get_ifaces(control=False): - cfg += ' interface "%s";\n' % iface.name + cfg += f' interface "{iface.name}";\n' return cfg diff --git a/daemon/core/services/coreservices.py b/daemon/core/services/coreservices.py index 6e52b5d6..0eee980e 100644 --- a/daemon/core/services/coreservices.py +++ b/daemon/core/services/coreservices.py @@ -11,18 +11,9 @@ import enum import logging import pkgutil import time +from collections.abc import Iterable from pathlib import Path -from typing import ( - TYPE_CHECKING, - Dict, - Iterable, - List, - Optional, - Set, - Tuple, - Type, - Union, -) +from typing import TYPE_CHECKING, Optional, Union from core import services as core_services from core import utils @@ -41,7 +32,7 @@ logger = logging.getLogger(__name__) if TYPE_CHECKING: from core.emulator.session import Session - CoreServiceType = Union["CoreService", Type["CoreService"]] + CoreServiceType = Union["CoreService", type["CoreService"]] class ServiceMode(enum.Enum): @@ -57,25 +48,25 @@ class ServiceDependencies: provided. """ - def __init__(self, services: List["CoreServiceType"]) -> None: - self.visited: Set[str] = set() - self.services: Dict[str, "CoreServiceType"] = {} - self.paths: Dict[str, List["CoreServiceType"]] = {} - self.boot_paths: List[List["CoreServiceType"]] = [] - roots = set([x.name for x in services]) + def __init__(self, services: list["CoreServiceType"]) -> None: + self.visited: set[str] = set() + self.services: dict[str, "CoreServiceType"] = {} + self.paths: dict[str, list["CoreServiceType"]] = {} + self.boot_paths: list[list["CoreServiceType"]] = [] + roots = {x.name for x in services} for service in services: self.services[service.name] = service roots -= set(service.dependencies) - self.roots: List["CoreServiceType"] = [x for x in services if x.name in roots] + self.roots: list["CoreServiceType"] = [x for x in services if x.name in roots] if services and not self.roots: raise ValueError("circular dependency is present") def _search( self, service: "CoreServiceType", - visiting: Set[str] = None, - path: List[str] = None, - ) -> List["CoreServiceType"]: + visiting: set[str] = None, + path: list[str] = None, + ) -> list["CoreServiceType"]: if service.name in self.visited: return self.paths[service.name] self.visited.add(service.name) @@ -103,7 +94,7 @@ class ServiceDependencies: self.paths[service.name] = path return path - def boot_order(self) -> List[List["CoreServiceType"]]: + def boot_order(self) -> list[list["CoreServiceType"]]: for service in self.roots: self._search(service) return self.boot_paths @@ -114,10 +105,10 @@ class ServiceManager: Manages services available for CORE nodes to use. """ - services: Dict[str, Type["CoreService"]] = {} + services: dict[str, type["CoreService"]] = {} @classmethod - def add(cls, service: Type["CoreService"]) -> None: + def add(cls, service: type["CoreService"]) -> None: """ Add a service to manager. @@ -150,7 +141,7 @@ class ServiceManager: cls.services[name] = service @classmethod - def get(cls, name: str) -> Type["CoreService"]: + def get(cls, name: str) -> type["CoreService"]: """ Retrieve a service from the manager. @@ -163,7 +154,7 @@ class ServiceManager: return service @classmethod - def add_services(cls, path: Path) -> List[str]: + def add_services(cls, path: Path) -> list[str]: """ Method for retrieving all CoreServices from a given path. @@ -183,7 +174,7 @@ class ServiceManager: return service_errors @classmethod - def load_locals(cls) -> List[str]: + def load_locals(cls) -> list[str]: errors = [] for module_info in pkgutil.walk_packages( core_services.__path__, f"{core_services.__name__}." @@ -218,7 +209,7 @@ class CoreServices: """ self.session: "Session" = session # dict of default services tuples, key is node type - self.default_services: Dict[str, List[str]] = { + self.default_services: dict[str, list[str]] = { "mdr": ["zebra", "OSPFv3MDR", "IPForward"], "PC": ["DefaultRoute"], "prouter": [], @@ -226,7 +217,7 @@ class CoreServices: "host": ["DefaultRoute", "SSH"], } # dict of node ids to dict of custom services by name - self.custom_services: Dict[int, Dict[str, "CoreService"]] = {} + self.custom_services: dict[int, dict[str, "CoreService"]] = {} def reset(self) -> None: """ @@ -273,7 +264,7 @@ class CoreServices: node_services[service.name] = service def add_services( - self, node: CoreNode, model: str, services: List[str] = None + self, node: CoreNode, model: str, services: list[str] = None ) -> None: """ Add services to a node. @@ -298,7 +289,7 @@ class CoreServices: continue node.services.append(service) - def all_configs(self) -> List[Tuple[int, "CoreService"]]: + def all_configs(self) -> list[tuple[int, "CoreService"]]: """ Return (node_id, service) tuples for all stored configs. Used when reconnecting to a session or opening XML. @@ -313,7 +304,7 @@ class CoreServices: configs.append((node_id, service)) return configs - def all_files(self, service: "CoreService") -> List[Tuple[str, str]]: + def all_files(self, service: "CoreService") -> list[tuple[str, str]]: """ Return all customized files stored with a service. Used when reconnecting to a session or opening XML. @@ -349,7 +340,7 @@ class CoreServices: if exceptions: raise CoreServiceBootError(*exceptions) - def _boot_service_path(self, node: CoreNode, boot_path: List["CoreServiceType"]): + def _boot_service_path(self, node: CoreNode, boot_path: list["CoreServiceType"]): logger.info( "booting node(%s) services: %s", node.name, @@ -400,7 +391,7 @@ class CoreServices: status = self.startup_service(node, service, wait) if status: raise CoreServiceBootError( - "node(%s) service(%s) error during startup" % (node.name, service.name) + f"node({node.name}) service({service.name}) error during startup" ) # blocking mode is finished @@ -425,7 +416,7 @@ class CoreServices: if status: raise CoreServiceBootError( - "node(%s) service(%s) failed validation" % (node.name, service.name) + f"node({node.name}) service({service.name}) failed validation" ) def copy_service_file(self, node: CoreNode, file_path: Path, cfg: str) -> bool: @@ -540,11 +531,11 @@ class CoreServices: # get the file data data = service.config_data.get(filename) if data is None: - data = "%s" % service.generate_config(node, filename) + data = service.generate_config(node, filename) else: - data = "%s" % data + data = data - filetypestr = "service:%s" % service.name + filetypestr = f"service:{service.name}" return FileData( message_type=MessageFlags.ADD, node=node.id, @@ -636,7 +627,7 @@ class CoreServices: try: if self.copy_service_file(node, file_path, cfg): continue - except IOError: + except OSError: logger.exception("error copying service file: %s", file_name) continue else: @@ -674,31 +665,31 @@ class CoreService: name: Optional[str] = None # executables that must exist for service to run - executables: Tuple[str, ...] = () + executables: tuple[str, ...] = () # sets service requirements that must be started prior to this service starting - dependencies: Tuple[str, ...] = () + dependencies: tuple[str, ...] = () # group string allows grouping services together group: Optional[str] = None # private, per-node directories required by this service - dirs: Tuple[str, ...] = () + dirs: tuple[str, ...] = () # config files written by this service - configs: Tuple[str, ...] = () + configs: tuple[str, ...] = () # config file data - config_data: Dict[str, str] = {} + config_data: dict[str, str] = {} # list of startup commands - startup: Tuple[str, ...] = () + startup: tuple[str, ...] = () # list of shutdown commands - shutdown: Tuple[str, ...] = () + shutdown: tuple[str, ...] = () # list of validate commands - validate: Tuple[str, ...] = () + validate: tuple[str, ...] = () # validation mode, used to determine startup success validation_mode: ServiceMode = ServiceMode.NON_BLOCKING @@ -723,7 +714,7 @@ class CoreService: configuration is used to override their default parameters. """ self.custom: bool = True - self.config_data: Dict[str, str] = self.__class__.config_data.copy() + self.config_data: dict[str, str] = self.__class__.config_data.copy() @classmethod def on_load(cls) -> None: @@ -742,7 +733,7 @@ class CoreService: return cls.configs @classmethod - def generate_config(cls, node: CoreNode, filename: str) -> None: + def generate_config(cls, node: CoreNode, filename: str) -> str: """ Generate configuration file given a node object. The filename is provided to allow for multiple config files. @@ -751,7 +742,7 @@ class CoreService: :param node: node to generate config for :param filename: file name to generate config for - :return: nothing + :return: generated config """ raise NotImplementedError diff --git a/daemon/core/services/emaneservices.py b/daemon/core/services/emaneservices.py index 4fd78ec1..43cd9af4 100644 --- a/daemon/core/services/emaneservices.py +++ b/daemon/core/services/emaneservices.py @@ -1,5 +1,3 @@ -from typing import Tuple - from core.emane.nodes import EmaneNet from core.nodes.base import CoreNode from core.services.coreservices import CoreService @@ -9,14 +7,14 @@ from core.xml import emanexml class EmaneTransportService(CoreService): name: str = "transportd" group: str = "EMANE" - executables: Tuple[str, ...] = ("emanetransportd", "emanegentransportxml") - dependencies: Tuple[str, ...] = () - dirs: Tuple[str, ...] = () - configs: Tuple[str, ...] = ("emanetransport.sh",) - startup: Tuple[str, ...] = (f"bash {configs[0]}",) - validate: Tuple[str, ...] = (f"pidof {executables[0]}",) + executables: tuple[str, ...] = ("emanetransportd", "emanegentransportxml") + dependencies: tuple[str, ...] = () + dirs: tuple[str, ...] = () + configs: tuple[str, ...] = ("emanetransport.sh",) + startup: tuple[str, ...] = (f"bash {configs[0]}",) + validate: tuple[str, ...] = (f"pidof {executables[0]}",) validation_timer: float = 0.5 - shutdown: Tuple[str, ...] = (f"killall {executables[0]}",) + shutdown: tuple[str, ...] = (f"killall {executables[0]}",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: diff --git a/daemon/core/services/frr.py b/daemon/core/services/frr.py index 5fbacf42..e408afb0 100644 --- a/daemon/core/services/frr.py +++ b/daemon/core/services/frr.py @@ -2,7 +2,7 @@ frr.py: defines routing services provided by FRRouting. Assumes installation of FRR via https://deb.frrouting.org/ """ -from typing import Optional, Tuple +from typing import Optional import netaddr @@ -30,16 +30,16 @@ def is_wireless(node: NodeBase) -> bool: class FRRZebra(CoreService): name: str = "FRRzebra" group: str = "FRR" - dirs: Tuple[str, ...] = ("/usr/local/etc/frr", "/var/run/frr", "/var/log/frr") - configs: Tuple[str, ...] = ( + dirs: tuple[str, ...] = ("/usr/local/etc/frr", "/var/run/frr", "/var/log/frr") + configs: tuple[str, ...] = ( "/usr/local/etc/frr/frr.conf", "frrboot.sh", "/usr/local/etc/frr/vtysh.conf", "/usr/local/etc/frr/daemons", ) - startup: Tuple[str, ...] = ("bash frrboot.sh zebra",) - shutdown: Tuple[str, ...] = ("killall zebra",) - validate: Tuple[str, ...] = ("pidof zebra",) + startup: tuple[str, ...] = ("bash frrboot.sh zebra",) + shutdown: tuple[str, ...] = ("killall zebra",) + validate: tuple[str, ...] = ("pidof zebra",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: @@ -75,7 +75,7 @@ class FRRZebra(CoreService): # we could verify here that filename == frr.conf cfg = "" for iface in node.get_ifaces(): - cfg += "interface %s\n" % iface.name + cfg += f"interface {iface.name}\n" # include control interfaces in addressing but not routing daemons if iface.control: cfg += " " @@ -127,11 +127,11 @@ class FRRZebra(CoreService): """ address = str(ip.ip) if netaddr.valid_ipv4(address): - return "ip address %s" % ip + return f"ip address {ip}" elif netaddr.valid_ipv6(address): - return "ipv6 address %s" % ip + return f"ipv6 address {ip}" else: - raise ValueError("invalid address: %s", ip) + raise ValueError(f"invalid address: {ip}") @classmethod def generate_frr_boot(cls, node: CoreNode) -> str: @@ -144,16 +144,16 @@ class FRRZebra(CoreService): frr_sbin_search = node.session.options.get( "frr_sbin_search", '"/usr/local/sbin /usr/sbin /usr/lib/frr"' ) - cfg = """\ + cfg = f"""\ #!/bin/sh # auto-generated by zebra service (frr.py) -FRR_CONF=%s -FRR_SBIN_SEARCH=%s -FRR_BIN_SEARCH=%s -FRR_STATE_DIR=%s +FRR_CONF={cls.configs[0]} +FRR_SBIN_SEARCH={frr_sbin_search} +FRR_BIN_SEARCH={frr_bin_search} +FRR_STATE_DIR={FRR_STATE_DIR} searchforprog() -{ +{{ prog=$1 searchpath=$@ ret= @@ -164,10 +164,10 @@ searchforprog() fi done echo $ret -} +}} confcheck() -{ +{{ CONF_DIR=`dirname $FRR_CONF` # if /etc/frr exists, point /etc/frr/frr.conf -> CONF_DIR if [ "$CONF_DIR" != "/etc/frr" ] && [ -d /etc/frr ] && [ ! -e /etc/frr/frr.conf ]; then @@ -177,10 +177,10 @@ confcheck() if [ "$CONF_DIR" != "/etc/frr" ] && [ -d /etc/frr ] && [ ! -e /etc/frr/vtysh.conf ]; then ln -s $CONF_DIR/vtysh.conf /etc/frr/vtysh.conf fi -} +}} bootdaemon() -{ +{{ FRR_SBIN_DIR=$(searchforprog $1 $FRR_SBIN_SEARCH) if [ "z$FRR_SBIN_DIR" = "z" ]; then echo "ERROR: FRR's '$1' daemon not found in search path:" @@ -207,10 +207,10 @@ bootdaemon() echo "ERROR: FRR's '$1' daemon failed to start!:" return 1 fi -} +}} bootfrr() -{ +{{ FRR_BIN_DIR=$(searchforprog 'vtysh' $FRR_BIN_SEARCH) if [ "z$FRR_BIN_DIR" = "z" ]; then echo "ERROR: FRR's 'vtysh' program not found in search path:" @@ -229,8 +229,8 @@ bootfrr() bootdaemon "staticd" fi for r in rip ripng ospf6 ospf bgp babel isis; do - if grep -q "^router \\<${r}\\>" $FRR_CONF; then - bootdaemon "${r}d" + if grep -q "^router \\<${{r}}\\>" $FRR_CONF; then + bootdaemon "${{r}}d" fi done @@ -239,7 +239,7 @@ bootfrr() fi $FRR_BIN_DIR/vtysh -b -} +}} if [ "$1" != "zebra" ]; then echo "WARNING: '$1': all FRR daemons are launched by the 'zebra' service!" @@ -248,12 +248,7 @@ fi confcheck bootfrr -""" % ( - cls.configs[0], - frr_sbin_search, - frr_bin_search, - FRR_STATE_DIR, - ) +""" for iface in node.get_ifaces(): cfg += f"ip link set dev {iface.name} down\n" cfg += "sleep 1\n" @@ -337,7 +332,7 @@ class FrrService(CoreService): name: Optional[str] = None group: str = "FRR" - dependencies: Tuple[str, ...] = ("FRRzebra",) + dependencies: tuple[str, ...] = ("FRRzebra",) meta: str = "The config file for this service can be found in the Zebra service." ipv4_routing: bool = False ipv6_routing: bool = False @@ -388,8 +383,8 @@ class FRROspfv2(FrrService): """ name: str = "FRROSPFv2" - shutdown: Tuple[str, ...] = ("killall ospfd",) - validate: Tuple[str, ...] = ("pidof ospfd",) + shutdown: tuple[str, ...] = ("killall ospfd",) + validate: tuple[str, ...] = ("pidof ospfd",) ipv4_routing: bool = True @staticmethod @@ -424,7 +419,7 @@ class FRROspfv2(FrrService): def generate_frr_config(cls, node: CoreNode) -> str: cfg = "router ospf\n" rtrid = cls.router_id(node) - cfg += " router-id %s\n" % rtrid + cfg += f" router-id {rtrid}\n" # network 10.0.0.0/24 area 0 for iface in node.get_ifaces(control=False): for ip4 in iface.ip4s: @@ -458,8 +453,8 @@ class FRROspfv3(FrrService): """ name: str = "FRROSPFv3" - shutdown: Tuple[str, ...] = ("killall ospf6d",) - validate: Tuple[str, ...] = ("pidof ospf6d",) + shutdown: tuple[str, ...] = ("killall ospf6d",) + validate: tuple[str, ...] = ("pidof ospf6d",) ipv4_routing: bool = True ipv6_routing: bool = True @@ -486,7 +481,7 @@ class FRROspfv3(FrrService): """ minmtu = cls.min_mtu(iface) if minmtu < iface.mtu: - return " ipv6 ospf6 ifmtu %d\n" % minmtu + return f" ipv6 ospf6 ifmtu {minmtu:d}\n" else: return "" @@ -504,9 +499,9 @@ class FRROspfv3(FrrService): def generate_frr_config(cls, node: CoreNode) -> str: cfg = "router ospf6\n" rtrid = cls.router_id(node) - cfg += " router-id %s\n" % rtrid + cfg += f" router-id {rtrid}\n" for iface in node.get_ifaces(control=False): - cfg += " interface %s area 0.0.0.0\n" % iface.name + cfg += f" interface {iface.name} area 0.0.0.0\n" cfg += "!\n" return cfg @@ -523,8 +518,8 @@ class FRRBgp(FrrService): """ name: str = "FRRBGP" - shutdown: Tuple[str, ...] = ("killall bgpd",) - validate: Tuple[str, ...] = ("pidof bgpd",) + shutdown: tuple[str, ...] = ("killall bgpd",) + validate: tuple[str, ...] = ("pidof bgpd",) custom_needed: bool = True ipv4_routing: bool = True ipv6_routing: bool = True @@ -534,9 +529,9 @@ class FRRBgp(FrrService): cfg = "!\n! BGP configuration\n!\n" cfg += "! You should configure the AS number below,\n" cfg += "! along with this router's peers.\n!\n" - cfg += "router bgp %s\n" % node.id + cfg += f"router bgp {node.id}\n" rtrid = cls.router_id(node) - cfg += " bgp router-id %s\n" % rtrid + cfg += f" bgp router-id {rtrid}\n" cfg += " redistribute connected\n" cfg += "! neighbor 1.2.3.4 remote-as 555\n!\n" return cfg @@ -548,8 +543,8 @@ class FRRRip(FrrService): """ name: str = "FRRRIP" - shutdown: Tuple[str, ...] = ("killall ripd",) - validate: Tuple[str, ...] = ("pidof ripd",) + shutdown: tuple[str, ...] = ("killall ripd",) + validate: tuple[str, ...] = ("pidof ripd",) ipv4_routing: bool = True @classmethod @@ -571,8 +566,8 @@ class FRRRipng(FrrService): """ name: str = "FRRRIPNG" - shutdown: Tuple[str, ...] = ("killall ripngd",) - validate: Tuple[str, ...] = ("pidof ripngd",) + shutdown: tuple[str, ...] = ("killall ripngd",) + validate: tuple[str, ...] = ("pidof ripngd",) ipv6_routing: bool = True @classmethod @@ -595,15 +590,15 @@ class FRRBabel(FrrService): """ name: str = "FRRBabel" - shutdown: Tuple[str, ...] = ("killall babeld",) - validate: Tuple[str, ...] = ("pidof babeld",) + shutdown: tuple[str, ...] = ("killall babeld",) + validate: tuple[str, ...] = ("pidof babeld",) ipv6_routing: bool = True @classmethod def generate_frr_config(cls, node: CoreNode) -> str: cfg = "router babel\n" for iface in node.get_ifaces(control=False): - cfg += " network %s\n" % iface.name + cfg += f" network {iface.name}\n" cfg += " redistribute static\n redistribute ipv4 connected\n" return cfg @@ -621,8 +616,8 @@ class FRRpimd(FrrService): """ name: str = "FRRpimd" - shutdown: Tuple[str, ...] = ("killall pimd",) - validate: Tuple[str, ...] = ("pidof pimd",) + shutdown: tuple[str, ...] = ("killall pimd",) + validate: tuple[str, ...] = ("pidof pimd",) ipv4_routing: bool = True @classmethod @@ -636,8 +631,8 @@ class FRRpimd(FrrService): cfg += "router igmp\n!\n" cfg += "router pim\n" cfg += " !ip pim rp-address 10.0.0.1\n" - cfg += " ip pim bsr-candidate %s\n" % ifname - cfg += " ip pim rp-candidate %s\n" % ifname + cfg += f" ip pim bsr-candidate {ifname}\n" + cfg += f" ip pim rp-candidate {ifname}\n" cfg += " !ip pim spt-threshold interval 10 bytes 80000\n" return cfg @@ -654,8 +649,8 @@ class FRRIsis(FrrService): """ name: str = "FRRISIS" - shutdown: Tuple[str, ...] = ("killall isisd",) - validate: Tuple[str, ...] = ("pidof isisd",) + shutdown: tuple[str, ...] = ("killall isisd",) + validate: tuple[str, ...] = ("pidof isisd",) ipv4_routing: bool = True ipv6_routing: bool = True @@ -672,7 +667,7 @@ class FRRIsis(FrrService): @classmethod def generate_frr_config(cls, node: CoreNode) -> str: cfg = "router isis DEFAULT\n" - cfg += " net 47.0001.0000.1900.%04x.00\n" % node.id + cfg += f" net 47.0001.0000.1900.{node.id:04x}.00\n" cfg += " metric-style wide\n" cfg += " is-type level-2-only\n" cfg += "!\n" diff --git a/daemon/core/services/nrl.py b/daemon/core/services/nrl.py index 9ef4e1d8..32e19f60 100644 --- a/daemon/core/services/nrl.py +++ b/daemon/core/services/nrl.py @@ -2,7 +2,7 @@ nrl.py: defines services provided by NRL protolib tools hosted here: http://www.nrl.navy.mil/itd/ncs/products """ -from typing import Optional, Tuple +from typing import Optional from core import utils from core.nodes.base import CoreNode @@ -33,29 +33,29 @@ class NrlService(CoreService): ip4 = iface.get_ip4() if ip4: return f"{ip4.ip}/{prefixlen}" - return "0.0.0.0/%s" % prefixlen + return f"0.0.0.0/{prefixlen}" class MgenSinkService(NrlService): name: str = "MGEN_Sink" - executables: Tuple[str, ...] = ("mgen",) - configs: Tuple[str, ...] = ("sink.mgen",) - startup: Tuple[str, ...] = ("mgen input sink.mgen",) - validate: Tuple[str, ...] = ("pidof mgen",) - shutdown: Tuple[str, ...] = ("killall mgen",) + executables: tuple[str, ...] = ("mgen",) + configs: tuple[str, ...] = ("sink.mgen",) + startup: tuple[str, ...] = ("mgen input sink.mgen",) + validate: tuple[str, ...] = ("pidof mgen",) + shutdown: tuple[str, ...] = ("killall mgen",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: cfg = "0.0 LISTEN UDP 5000\n" for iface in node.get_ifaces(): name = utils.sysctl_devname(iface.name) - cfg += "0.0 Join 224.225.1.2 INTERFACE %s\n" % name + cfg += f"0.0 Join 224.225.1.2 INTERFACE {name}\n" return cfg @classmethod - def get_startup(cls, node: CoreNode) -> Tuple[str, ...]: + def get_startup(cls, node: CoreNode) -> tuple[str, ...]: cmd = cls.startup[0] - cmd += " output /tmp/mgen_%s.log" % node.name + cmd += f" output /tmp/mgen_{node.name}.log" return (cmd,) @@ -65,23 +65,23 @@ class NrlNhdp(NrlService): """ name: str = "NHDP" - executables: Tuple[str, ...] = ("nrlnhdp",) - startup: Tuple[str, ...] = ("nrlnhdp",) - shutdown: Tuple[str, ...] = ("killall nrlnhdp",) - validate: Tuple[str, ...] = ("pidof nrlnhdp",) + executables: tuple[str, ...] = ("nrlnhdp",) + startup: tuple[str, ...] = ("nrlnhdp",) + shutdown: tuple[str, ...] = ("killall nrlnhdp",) + validate: tuple[str, ...] = ("pidof nrlnhdp",) @classmethod - def get_startup(cls, node: CoreNode) -> Tuple[str, ...]: + def get_startup(cls, node: CoreNode) -> tuple[str, ...]: """ Generate the appropriate command-line based on node interfaces. """ cmd = cls.startup[0] cmd += " -l /var/log/nrlnhdp.log" - cmd += " -rpipe %s_nhdp" % node.name + cmd += f" -rpipe {node.name}_nhdp" servicenames = map(lambda x: x.name, node.services) if "SMF" in servicenames: cmd += " -flooding ecds" - cmd += " -smfClient %s_smf" % node.name + cmd += f" -smfClient {node.name}_smf" ifaces = node.get_ifaces(control=False) if len(ifaces) > 0: iface_names = map(lambda x: x.name, ifaces) @@ -96,11 +96,11 @@ class NrlSmf(NrlService): """ name: str = "SMF" - executables: Tuple[str, ...] = ("nrlsmf",) - startup: Tuple[str, ...] = ("bash startsmf.sh",) - shutdown: Tuple[str, ...] = ("killall nrlsmf",) - validate: Tuple[str, ...] = ("pidof nrlsmf",) - configs: Tuple[str, ...] = ("startsmf.sh",) + executables: tuple[str, ...] = ("nrlsmf",) + startup: tuple[str, ...] = ("bash startsmf.sh",) + shutdown: tuple[str, ...] = ("killall nrlsmf",) + validate: tuple[str, ...] = ("pidof nrlsmf",) + configs: tuple[str, ...] = ("startsmf.sh",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: @@ -112,7 +112,7 @@ class NrlSmf(NrlService): cfg = "#!/bin/sh\n" cfg += "# auto-generated by nrl.py:NrlSmf.generateconfig()\n" comments = "" - cmd = "nrlsmf instance %s_smf" % node.name + cmd = f"nrlsmf instance {node.name}_smf" servicenames = map(lambda x: x.name, node.services) ifaces = node.get_ifaces(control=False) @@ -142,13 +142,13 @@ class NrlOlsr(NrlService): """ name: str = "OLSR" - executables: Tuple[str, ...] = ("nrlolsrd",) - startup: Tuple[str, ...] = ("nrlolsrd",) - shutdown: Tuple[str, ...] = ("killall nrlolsrd",) - validate: Tuple[str, ...] = ("pidof nrlolsrd",) + executables: tuple[str, ...] = ("nrlolsrd",) + startup: tuple[str, ...] = ("nrlolsrd",) + shutdown: tuple[str, ...] = ("killall nrlolsrd",) + validate: tuple[str, ...] = ("pidof nrlolsrd",) @classmethod - def get_startup(cls, node: CoreNode) -> Tuple[str, ...]: + def get_startup(cls, node: CoreNode) -> tuple[str, ...]: """ Generate the appropriate command-line based on node interfaces. """ @@ -157,13 +157,13 @@ class NrlOlsr(NrlService): ifaces = node.get_ifaces() if len(ifaces) > 0: iface = ifaces[0] - cmd += " -i %s" % iface.name + cmd += f" -i {iface.name}" cmd += " -l /var/log/nrlolsrd.log" - cmd += " -rpipe %s_olsr" % node.name + cmd += f" -rpipe {node.name}_olsr" servicenames = map(lambda x: x.name, node.services) if "SMF" in servicenames and "NHDP" not in servicenames: cmd += " -flooding s-mpr" - cmd += " -smfClient %s_smf" % node.name + cmd += f" -smfClient {node.name}_smf" if "zebra" in servicenames: cmd += " -z" return (cmd,) @@ -175,23 +175,23 @@ class NrlOlsrv2(NrlService): """ name: str = "OLSRv2" - executables: Tuple[str, ...] = ("nrlolsrv2",) - startup: Tuple[str, ...] = ("nrlolsrv2",) - shutdown: Tuple[str, ...] = ("killall nrlolsrv2",) - validate: Tuple[str, ...] = ("pidof nrlolsrv2",) + executables: tuple[str, ...] = ("nrlolsrv2",) + startup: tuple[str, ...] = ("nrlolsrv2",) + shutdown: tuple[str, ...] = ("killall nrlolsrv2",) + validate: tuple[str, ...] = ("pidof nrlolsrv2",) @classmethod - def get_startup(cls, node: CoreNode) -> Tuple[str, ...]: + def get_startup(cls, node: CoreNode) -> tuple[str, ...]: """ Generate the appropriate command-line based on node interfaces. """ cmd = cls.startup[0] cmd += " -l /var/log/nrlolsrv2.log" - cmd += " -rpipe %s_olsrv2" % node.name + cmd += f" -rpipe {node.name}_olsrv2" servicenames = map(lambda x: x.name, node.services) if "SMF" in servicenames: cmd += " -flooding ecds" - cmd += " -smfClient %s_smf" % node.name + cmd += f" -smfClient {node.name}_smf" cmd += " -p olsr" ifaces = node.get_ifaces(control=False) if len(ifaces) > 0: @@ -207,15 +207,15 @@ class OlsrOrg(NrlService): """ name: str = "OLSRORG" - executables: Tuple[str, ...] = ("olsrd",) - configs: Tuple[str, ...] = ("/etc/olsrd/olsrd.conf",) - dirs: Tuple[str, ...] = ("/etc/olsrd",) - startup: Tuple[str, ...] = ("olsrd",) - shutdown: Tuple[str, ...] = ("killall olsrd",) - validate: Tuple[str, ...] = ("pidof olsrd",) + executables: tuple[str, ...] = ("olsrd",) + configs: tuple[str, ...] = ("/etc/olsrd/olsrd.conf",) + dirs: tuple[str, ...] = ("/etc/olsrd",) + startup: tuple[str, ...] = ("olsrd",) + shutdown: tuple[str, ...] = ("killall olsrd",) + validate: tuple[str, ...] = ("pidof olsrd",) @classmethod - def get_startup(cls, node: CoreNode) -> Tuple[str, ...]: + def get_startup(cls, node: CoreNode) -> tuple[str, ...]: """ Generate the appropriate command-line based on node interfaces. """ @@ -558,11 +558,11 @@ class MgenActor(NrlService): # a unique name is required, without spaces name: str = "MgenActor" group: str = "ProtoSvc" - executables: Tuple[str, ...] = ("mgen",) - configs: Tuple[str, ...] = ("start_mgen_actor.sh",) - startup: Tuple[str, ...] = ("bash start_mgen_actor.sh",) - validate: Tuple[str, ...] = ("pidof mgen",) - shutdown: Tuple[str, ...] = ("killall mgen",) + executables: tuple[str, ...] = ("mgen",) + configs: tuple[str, ...] = ("start_mgen_actor.sh",) + startup: tuple[str, ...] = ("bash start_mgen_actor.sh",) + validate: tuple[str, ...] = ("pidof mgen",) + shutdown: tuple[str, ...] = ("killall mgen",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: @@ -574,7 +574,7 @@ class MgenActor(NrlService): cfg = "#!/bin/sh\n" cfg += "# auto-generated by nrl.py:MgenActor.generateconfig()\n" comments = "" - cmd = "mgenBasicActor.py -n %s -a 0.0.0.0" % node.name + cmd = f"mgenBasicActor.py -n {node.name} -a 0.0.0.0" ifaces = node.get_ifaces(control=False) if len(ifaces) == 0: return "" diff --git a/daemon/core/services/quagga.py b/daemon/core/services/quagga.py index a2f06bec..b96a8eae 100644 --- a/daemon/core/services/quagga.py +++ b/daemon/core/services/quagga.py @@ -1,7 +1,7 @@ """ quagga.py: defines routing services provided by Quagga. """ -from typing import Optional, Tuple +from typing import Optional import netaddr @@ -29,15 +29,15 @@ def is_wireless(node: NodeBase) -> bool: class Zebra(CoreService): name: str = "zebra" group: str = "Quagga" - dirs: Tuple[str, ...] = ("/usr/local/etc/quagga", "/var/run/quagga") - configs: Tuple[str, ...] = ( + dirs: tuple[str, ...] = ("/usr/local/etc/quagga", "/var/run/quagga") + configs: tuple[str, ...] = ( "/usr/local/etc/quagga/Quagga.conf", "quaggaboot.sh", "/usr/local/etc/quagga/vtysh.conf", ) - startup: Tuple[str, ...] = ("bash quaggaboot.sh zebra",) - shutdown: Tuple[str, ...] = ("killall zebra",) - validate: Tuple[str, ...] = ("pidof zebra",) + startup: tuple[str, ...] = ("bash quaggaboot.sh zebra",) + shutdown: tuple[str, ...] = ("killall zebra",) + validate: tuple[str, ...] = ("pidof zebra",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: @@ -71,7 +71,7 @@ class Zebra(CoreService): # we could verify here that filename == Quagga.conf cfg = "" for iface in node.get_ifaces(): - cfg += "interface %s\n" % iface.name + cfg += f"interface {iface.name}\n" # include control interfaces in addressing but not routing daemons if iface.control: cfg += " " @@ -123,11 +123,11 @@ class Zebra(CoreService): """ address = str(ip.ip) if netaddr.valid_ipv4(address): - return "ip address %s" % ip + return f"ip address {ip}" elif netaddr.valid_ipv6(address): - return "ipv6 address %s" % ip + return f"ipv6 address {ip}" else: - raise ValueError("invalid address: %s", ip) + raise ValueError(f"invalid address: {ip}") @classmethod def generate_quagga_boot(cls, node: CoreNode) -> str: @@ -140,16 +140,16 @@ class Zebra(CoreService): quagga_sbin_search = node.session.options.get( "quagga_sbin_search", '"/usr/local/sbin /usr/sbin /usr/lib/quagga"' ) - return """\ + return f"""\ #!/bin/sh # auto-generated by zebra service (quagga.py) -QUAGGA_CONF=%s -QUAGGA_SBIN_SEARCH=%s -QUAGGA_BIN_SEARCH=%s -QUAGGA_STATE_DIR=%s +QUAGGA_CONF={cls.configs[0]} +QUAGGA_SBIN_SEARCH={quagga_sbin_search} +QUAGGA_BIN_SEARCH={quagga_bin_search} +QUAGGA_STATE_DIR={QUAGGA_STATE_DIR} searchforprog() -{ +{{ prog=$1 searchpath=$@ ret= @@ -160,10 +160,10 @@ searchforprog() fi done echo $ret -} +}} confcheck() -{ +{{ CONF_DIR=`dirname $QUAGGA_CONF` # if /etc/quagga exists, point /etc/quagga/Quagga.conf -> CONF_DIR if [ "$CONF_DIR" != "/etc/quagga" ] && [ -d /etc/quagga ] && [ ! -e /etc/quagga/Quagga.conf ]; then @@ -173,10 +173,10 @@ confcheck() if [ "$CONF_DIR" != "/etc/quagga" ] && [ -d /etc/quagga ] && [ ! -e /etc/quagga/vtysh.conf ]; then ln -s $CONF_DIR/vtysh.conf /etc/quagga/vtysh.conf fi -} +}} bootdaemon() -{ +{{ QUAGGA_SBIN_DIR=$(searchforprog $1 $QUAGGA_SBIN_SEARCH) if [ "z$QUAGGA_SBIN_DIR" = "z" ]; then echo "ERROR: Quagga's '$1' daemon not found in search path:" @@ -196,10 +196,10 @@ bootdaemon() echo "ERROR: Quagga's '$1' daemon failed to start!:" return 1 fi -} +}} bootquagga() -{ +{{ QUAGGA_BIN_DIR=$(searchforprog 'vtysh' $QUAGGA_BIN_SEARCH) if [ "z$QUAGGA_BIN_DIR" = "z" ]; then echo "ERROR: Quagga's 'vtysh' program not found in search path:" @@ -215,8 +215,8 @@ bootquagga() bootdaemon "zebra" for r in rip ripng ospf6 ospf bgp babel; do - if grep -q "^router \\<${r}\\>" $QUAGGA_CONF; then - bootdaemon "${r}d" + if grep -q "^router \\<${{r}}\\>" $QUAGGA_CONF; then + bootdaemon "${{r}}d" fi done @@ -225,7 +225,7 @@ bootquagga() fi $QUAGGA_BIN_DIR/vtysh -b -} +}} if [ "$1" != "zebra" ]; then echo "WARNING: '$1': all Quagga daemons are launched by the 'zebra' service!" @@ -233,12 +233,7 @@ if [ "$1" != "zebra" ]; then fi confcheck bootquagga -""" % ( - cls.configs[0], - quagga_sbin_search, - quagga_bin_search, - QUAGGA_STATE_DIR, - ) +""" class QuaggaService(CoreService): @@ -249,7 +244,7 @@ class QuaggaService(CoreService): name: Optional[str] = None group: str = "Quagga" - dependencies: Tuple[str, ...] = (Zebra.name,) + dependencies: tuple[str, ...] = (Zebra.name,) meta: str = "The config file for this service can be found in the Zebra service." ipv4_routing: bool = False ipv6_routing: bool = False @@ -300,8 +295,8 @@ class Ospfv2(QuaggaService): """ name: str = "OSPFv2" - shutdown: Tuple[str, ...] = ("killall ospfd",) - validate: Tuple[str, ...] = ("pidof ospfd",) + shutdown: tuple[str, ...] = ("killall ospfd",) + validate: tuple[str, ...] = ("pidof ospfd",) ipv4_routing: bool = True @staticmethod @@ -336,7 +331,7 @@ class Ospfv2(QuaggaService): def generate_quagga_config(cls, node: CoreNode) -> str: cfg = "router ospf\n" rtrid = cls.router_id(node) - cfg += " router-id %s\n" % rtrid + cfg += f" router-id {rtrid}\n" # network 10.0.0.0/24 area 0 for iface in node.get_ifaces(control=False): for ip4 in iface.ip4s: @@ -369,8 +364,8 @@ class Ospfv3(QuaggaService): """ name: str = "OSPFv3" - shutdown: Tuple[str, ...] = ("killall ospf6d",) - validate: Tuple[str, ...] = ("pidof ospf6d",) + shutdown: tuple[str, ...] = ("killall ospf6d",) + validate: tuple[str, ...] = ("pidof ospf6d",) ipv4_routing: bool = True ipv6_routing: bool = True @@ -397,7 +392,7 @@ class Ospfv3(QuaggaService): """ minmtu = cls.min_mtu(iface) if minmtu < iface.mtu: - return " ipv6 ospf6 ifmtu %d\n" % minmtu + return f" ipv6 ospf6 ifmtu {minmtu:d}\n" else: return "" @@ -416,9 +411,9 @@ class Ospfv3(QuaggaService): cfg = "router ospf6\n" rtrid = cls.router_id(node) cfg += " instance-id 65\n" - cfg += " router-id %s\n" % rtrid + cfg += f" router-id {rtrid}\n" for iface in node.get_ifaces(control=False): - cfg += " interface %s area 0.0.0.0\n" % iface.name + cfg += f" interface {iface.name} area 0.0.0.0\n" cfg += "!\n" return cfg @@ -466,8 +461,8 @@ class Bgp(QuaggaService): """ name: str = "BGP" - shutdown: Tuple[str, ...] = ("killall bgpd",) - validate: Tuple[str, ...] = ("pidof bgpd",) + shutdown: tuple[str, ...] = ("killall bgpd",) + validate: tuple[str, ...] = ("pidof bgpd",) custom_needed: bool = True ipv4_routing: bool = True ipv6_routing: bool = True @@ -477,9 +472,9 @@ class Bgp(QuaggaService): cfg = "!\n! BGP configuration\n!\n" cfg += "! You should configure the AS number below,\n" cfg += "! along with this router's peers.\n!\n" - cfg += "router bgp %s\n" % node.id + cfg += f"router bgp {node.id}\n" rtrid = cls.router_id(node) - cfg += " bgp router-id %s\n" % rtrid + cfg += f" bgp router-id {rtrid}\n" cfg += " redistribute connected\n" cfg += "! neighbor 1.2.3.4 remote-as 555\n!\n" return cfg @@ -491,8 +486,8 @@ class Rip(QuaggaService): """ name: str = "RIP" - shutdown: Tuple[str, ...] = ("killall ripd",) - validate: Tuple[str, ...] = ("pidof ripd",) + shutdown: tuple[str, ...] = ("killall ripd",) + validate: tuple[str, ...] = ("pidof ripd",) ipv4_routing: bool = True @classmethod @@ -514,8 +509,8 @@ class Ripng(QuaggaService): """ name: str = "RIPNG" - shutdown: Tuple[str, ...] = ("killall ripngd",) - validate: Tuple[str, ...] = ("pidof ripngd",) + shutdown: tuple[str, ...] = ("killall ripngd",) + validate: tuple[str, ...] = ("pidof ripngd",) ipv6_routing: bool = True @classmethod @@ -538,15 +533,15 @@ class Babel(QuaggaService): """ name: str = "Babel" - shutdown: Tuple[str, ...] = ("killall babeld",) - validate: Tuple[str, ...] = ("pidof babeld",) + shutdown: tuple[str, ...] = ("killall babeld",) + validate: tuple[str, ...] = ("pidof babeld",) ipv6_routing: bool = True @classmethod def generate_quagga_config(cls, node: CoreNode) -> str: cfg = "router babel\n" for iface in node.get_ifaces(control=False): - cfg += " network %s\n" % iface.name + cfg += f" network {iface.name}\n" cfg += " redistribute static\n redistribute connected\n" return cfg @@ -564,8 +559,8 @@ class Xpimd(QuaggaService): """ name: str = "Xpimd" - shutdown: Tuple[str, ...] = ("killall xpimd",) - validate: Tuple[str, ...] = ("pidof xpimd",) + shutdown: tuple[str, ...] = ("killall xpimd",) + validate: tuple[str, ...] = ("pidof xpimd",) ipv4_routing: bool = True @classmethod @@ -579,8 +574,8 @@ class Xpimd(QuaggaService): cfg += "router igmp\n!\n" cfg += "router pim\n" cfg += " !ip pim rp-address 10.0.0.1\n" - cfg += " ip pim bsr-candidate %s\n" % ifname - cfg += " ip pim rp-candidate %s\n" % ifname + cfg += f" ip pim bsr-candidate {ifname}\n" + cfg += f" ip pim rp-candidate {ifname}\n" cfg += " !ip pim spt-threshold interval 10 bytes 80000\n" return cfg diff --git a/daemon/core/services/sdn.py b/daemon/core/services/sdn.py index e72b5138..a31cf87d 100644 --- a/daemon/core/services/sdn.py +++ b/daemon/core/services/sdn.py @@ -3,7 +3,6 @@ sdn.py defines services to start Open vSwitch and the Ryu SDN Controller. """ import re -from typing import Tuple from core.nodes.base import CoreNode from core.services.coreservices import CoreService @@ -24,15 +23,15 @@ class SdnService(CoreService): class OvsService(SdnService): name: str = "OvsService" group: str = "SDN" - executables: Tuple[str, ...] = ("ovs-ofctl", "ovs-vsctl") - dirs: Tuple[str, ...] = ( + executables: tuple[str, ...] = ("ovs-ofctl", "ovs-vsctl") + dirs: tuple[str, ...] = ( "/etc/openvswitch", "/var/run/openvswitch", "/var/log/openvswitch", ) - configs: Tuple[str, ...] = ("OvsService.sh",) - startup: Tuple[str, ...] = ("bash OvsService.sh",) - shutdown: Tuple[str, ...] = ("killall ovs-vswitchd", "killall ovsdb-server") + configs: tuple[str, ...] = ("OvsService.sh",) + startup: tuple[str, ...] = ("bash OvsService.sh",) + shutdown: tuple[str, ...] = ("killall ovs-vswitchd", "killall ovsdb-server") @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: @@ -59,39 +58,41 @@ class OvsService(SdnService): # create virtual interfaces cfg += "## Create a veth pair to send the data to\n" - cfg += "ip link add rtr%s type veth peer name sw%s\n" % (ifnum, ifnum) + cfg += f"ip link add rtr{ifnum} type veth peer name sw{ifnum}\n" # remove ip address of eths because quagga/zebra will assign same IPs to rtr interfaces # or assign them manually to rtr interfaces if zebra is not running for ip4 in iface.ip4s: - cfg += "ip addr del %s dev %s\n" % (ip4.ip, iface.name) + cfg += f"ip addr del {ip4.ip} dev {iface.name}\n" if has_zebra == 0: - cfg += "ip addr add %s dev rtr%s\n" % (ip4.ip, ifnum) + cfg += f"ip addr add {ip4.ip} dev rtr{ifnum}\n" for ip6 in iface.ip6s: - cfg += "ip -6 addr del %s dev %s\n" % (ip6.ip, iface.name) + cfg += f"ip -6 addr del {ip6.ip} dev {iface.name}\n" if has_zebra == 0: - cfg += "ip -6 addr add %s dev rtr%s\n" % (ip6.ip, ifnum) + cfg += f"ip -6 addr add {ip6.ip} dev rtr{ifnum}\n" # add interfaces to bridge - # Make port numbers explicit so they're easier to follow in reading the script + # Make port numbers explicit so they're easier to follow in + # reading the script cfg += "## Add the CORE interface to the switch\n" cfg += ( - "ovs-vsctl add-port ovsbr0 eth%s -- set Interface eth%s ofport_request=%d\n" - % (ifnum, ifnum, portnum) + f"ovs-vsctl add-port ovsbr0 eth{ifnum} -- " + f"set Interface eth{ifnum} ofport_request={portnum:d}\n" ) cfg += "## And then add its sibling veth interface\n" cfg += ( - "ovs-vsctl add-port ovsbr0 sw%s -- set Interface sw%s ofport_request=%d\n" - % (ifnum, ifnum, portnum + 1) + f"ovs-vsctl add-port ovsbr0 sw{ifnum} -- " + f"set Interface sw{ifnum} ofport_request={portnum + 1:d}\n" ) cfg += "## start them up so we can send/receive data\n" - cfg += "ovs-ofctl mod-port ovsbr0 eth%s up\n" % ifnum - cfg += "ovs-ofctl mod-port ovsbr0 sw%s up\n" % ifnum + cfg += f"ovs-ofctl mod-port ovsbr0 eth{ifnum} up\n" + cfg += f"ovs-ofctl mod-port ovsbr0 sw{ifnum} up\n" cfg += "## Bring up the lower part of the veth pair\n" - cfg += "ip link set dev rtr%s up\n" % ifnum + cfg += f"ip link set dev rtr{ifnum} up\n" portnum += 2 - # Add rule for default controller if there is one local (even if the controller is not local, it finds it) + # Add rule for default controller if there is one local + # (even if the controller is not local, it finds it) cfg += "\n## We assume there will be an SDN controller on the other end of this, \n" cfg += "## but it will still function if there's not\n" cfg += "ovs-vsctl set-controller ovsbr0 tcp:127.0.0.1:6633\n" @@ -102,14 +103,8 @@ class OvsService(SdnService): portnum = 1 for iface in node.get_ifaces(control=False): cfg += "## Take the data from the CORE interface and put it on the veth and vice versa\n" - cfg += ( - "ovs-ofctl add-flow ovsbr0 priority=1000,in_port=%d,action=output:%d\n" - % (portnum, portnum + 1) - ) - cfg += ( - "ovs-ofctl add-flow ovsbr0 priority=1000,in_port=%d,action=output:%d\n" - % (portnum + 1, portnum) - ) + cfg += f"ovs-ofctl add-flow ovsbr0 priority=1000,in_port={portnum:d},action=output:{portnum + 1:d}\n" + cfg += f"ovs-ofctl add-flow ovsbr0 priority=1000,in_port={portnum + 1:d},action=output:{portnum:d}\n" portnum += 2 return cfg @@ -117,10 +112,10 @@ class OvsService(SdnService): class RyuService(SdnService): name: str = "ryuService" group: str = "SDN" - executables: Tuple[str, ...] = ("ryu-manager",) - configs: Tuple[str, ...] = ("ryuService.sh",) - startup: Tuple[str, ...] = ("bash ryuService.sh",) - shutdown: Tuple[str, ...] = ("killall ryu-manager",) + executables: tuple[str, ...] = ("ryu-manager",) + configs: tuple[str, ...] = ("ryuService.sh",) + startup: tuple[str, ...] = ("bash ryuService.sh",) + shutdown: tuple[str, ...] = ("killall ryu-manager",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: diff --git a/daemon/core/services/security.py b/daemon/core/services/security.py index f53e8533..afd71a14 100644 --- a/daemon/core/services/security.py +++ b/daemon/core/services/security.py @@ -4,7 +4,6 @@ firewall) """ import logging -from typing import Tuple from core import constants from core.nodes.base import CoreNode @@ -17,10 +16,10 @@ logger = logging.getLogger(__name__) class VPNClient(CoreService): name: str = "VPNClient" group: str = "Security" - configs: Tuple[str, ...] = ("vpnclient.sh",) - startup: Tuple[str, ...] = ("bash vpnclient.sh",) - shutdown: Tuple[str, ...] = ("killall openvpn",) - validate: Tuple[str, ...] = ("pidof openvpn",) + configs: tuple[str, ...] = ("vpnclient.sh",) + startup: tuple[str, ...] = ("bash vpnclient.sh",) + shutdown: tuple[str, ...] = ("killall openvpn",) + validate: tuple[str, ...] = ("pidof openvpn",) custom_needed: bool = True @classmethod @@ -32,9 +31,9 @@ class VPNClient(CoreService): cfg += "# custom VPN Client configuration for service (security.py)\n" fname = f"{constants.CORE_DATA_DIR}/examples/services/sampleVPNClient" try: - with open(fname, "r") as f: + with open(fname) as f: cfg += f.read() - except IOError: + except OSError: logger.exception( "error opening VPN client configuration template (%s)", fname ) @@ -44,10 +43,10 @@ class VPNClient(CoreService): class VPNServer(CoreService): name: str = "VPNServer" group: str = "Security" - configs: Tuple[str, ...] = ("vpnserver.sh",) - startup: Tuple[str, ...] = ("bash vpnserver.sh",) - shutdown: Tuple[str, ...] = ("killall openvpn",) - validate: Tuple[str, ...] = ("pidof openvpn",) + configs: tuple[str, ...] = ("vpnserver.sh",) + startup: tuple[str, ...] = ("bash vpnserver.sh",) + shutdown: tuple[str, ...] = ("killall openvpn",) + validate: tuple[str, ...] = ("pidof openvpn",) custom_needed: bool = True @classmethod @@ -60,9 +59,9 @@ class VPNServer(CoreService): cfg += "# custom VPN Server Configuration for service (security.py)\n" fname = f"{constants.CORE_DATA_DIR}/examples/services/sampleVPNServer" try: - with open(fname, "r") as f: + with open(fname) as f: cfg += f.read() - except IOError: + except OSError: logger.exception( "Error opening VPN server configuration template (%s)", fname ) @@ -72,9 +71,9 @@ class VPNServer(CoreService): class IPsec(CoreService): name: str = "IPsec" group: str = "Security" - configs: Tuple[str, ...] = ("ipsec.sh",) - startup: Tuple[str, ...] = ("bash ipsec.sh",) - shutdown: Tuple[str, ...] = ("killall racoon",) + configs: tuple[str, ...] = ("ipsec.sh",) + startup: tuple[str, ...] = ("bash ipsec.sh",) + shutdown: tuple[str, ...] = ("killall racoon",) custom_needed: bool = True @classmethod @@ -88,9 +87,9 @@ class IPsec(CoreService): cfg += "(security.py)\n" fname = f"{constants.CORE_DATA_DIR}/examples/services/sampleIPsec" try: - with open(fname, "r") as f: + with open(fname) as f: cfg += f.read() - except IOError: + except OSError: logger.exception("Error opening IPsec configuration template (%s)", fname) return cfg @@ -98,8 +97,8 @@ class IPsec(CoreService): class Firewall(CoreService): name: str = "Firewall" group: str = "Security" - configs: Tuple[str, ...] = ("firewall.sh",) - startup: Tuple[str, ...] = ("bash firewall.sh",) + configs: tuple[str, ...] = ("firewall.sh",) + startup: tuple[str, ...] = ("bash firewall.sh",) custom_needed: bool = True @classmethod @@ -111,9 +110,9 @@ class Firewall(CoreService): cfg += "# custom node firewall rules for service (security.py)\n" fname = f"{constants.CORE_DATA_DIR}/examples/services/sampleFirewall" try: - with open(fname, "r") as f: + with open(fname) as f: cfg += f.read() - except IOError: + except OSError: logger.exception( "Error opening Firewall configuration template (%s)", fname ) @@ -127,9 +126,9 @@ class Nat(CoreService): name: str = "NAT" group: str = "Security" - executables: Tuple[str, ...] = ("iptables",) - configs: Tuple[str, ...] = ("nat.sh",) - startup: Tuple[str, ...] = ("bash nat.sh",) + executables: tuple[str, ...] = ("iptables",) + configs: tuple[str, ...] = ("nat.sh",) + startup: tuple[str, ...] = ("bash nat.sh",) custom_needed: bool = False @classmethod diff --git a/daemon/core/services/ucarp.py b/daemon/core/services/ucarp.py index aa0d9a1a..c6f2256e 100644 --- a/daemon/core/services/ucarp.py +++ b/daemon/core/services/ucarp.py @@ -1,7 +1,6 @@ """ ucarp.py: defines high-availability IP address controlled by ucarp """ -from typing import Tuple from core.nodes.base import CoreNode from core.services.coreservices import CoreService @@ -12,16 +11,16 @@ UCARP_ETC = "/usr/local/etc/ucarp" class Ucarp(CoreService): name: str = "ucarp" group: str = "Utility" - dirs: Tuple[str, ...] = (UCARP_ETC,) - configs: Tuple[str, ...] = ( + dirs: tuple[str, ...] = (UCARP_ETC,) + configs: tuple[str, ...] = ( UCARP_ETC + "/default.sh", UCARP_ETC + "/default-up.sh", UCARP_ETC + "/default-down.sh", "ucarpboot.sh", ) - startup: Tuple[str, ...] = ("bash ucarpboot.sh",) - shutdown: Tuple[str, ...] = ("killall ucarp",) - validate: Tuple[str, ...] = ("pidof ucarp",) + startup: tuple[str, ...] = ("bash ucarpboot.sh",) + shutdown: tuple[str, ...] = ("killall ucarp",) + validate: tuple[str, ...] = ("pidof ucarp",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: @@ -45,13 +44,13 @@ class Ucarp(CoreService): Returns configuration file text. """ ucarp_bin = node.session.options.get("ucarp_bin", "/usr/sbin/ucarp") - return """\ + return f"""\ #!/bin/sh # Location of UCARP executable -UCARP_EXEC=%s +UCARP_EXEC={ucarp_bin} # Location of the UCARP config directory -UCARP_CFGDIR=%s +UCARP_CFGDIR={UCARP_ETC} # Logging Facility FACILITY=daemon @@ -92,40 +91,34 @@ OPTIONS="-z -n -M" # Send extra parameter to down and up scripts #XPARAM="-x " -XPARAM="-x ${VIRTUAL_NET}" +XPARAM="-x ${{VIRTUAL_NET}}" # The start and stop scripts -START_SCRIPT=${UCARP_CFGDIR}/default-up.sh -STOP_SCRIPT=${UCARP_CFGDIR}/default-down.sh +START_SCRIPT=${{UCARP_CFGDIR}}/default-up.sh +STOP_SCRIPT=${{UCARP_CFGDIR}}/default-down.sh # These line should not need to be touched UCARP_OPTS="$OPTIONS -b $UCARP_BASE -k $SKEW -i $INTERFACE -v $INSTANCE_ID -p $PASSWORD -u $START_SCRIPT -d $STOP_SCRIPT -a $VIRTUAL_ADDRESS -s $SOURCE_ADDRESS -f $FACILITY $XPARAM" -${UCARP_EXEC} -B ${UCARP_OPTS} -""" % ( - ucarp_bin, - UCARP_ETC, - ) +${{UCARP_EXEC}} -B ${{UCARP_OPTS}} +""" @classmethod def generate_ucarp_boot(cls, node: CoreNode) -> str: """ Generate a shell script used to boot the Ucarp daemons. """ - return ( - """\ + return f"""\ #!/bin/sh # Location of the UCARP config directory -UCARP_CFGDIR=%s +UCARP_CFGDIR={UCARP_ETC} -chmod a+x ${UCARP_CFGDIR}/*.sh +chmod a+x ${{UCARP_CFGDIR}}/*.sh # Start the default ucarp daemon configuration -${UCARP_CFGDIR}/default.sh +${{UCARP_CFGDIR}}/default.sh """ - % UCARP_ETC - ) @classmethod def generate_vip_up(cls, node: CoreNode) -> str: diff --git a/daemon/core/services/utility.py b/daemon/core/services/utility.py index 54a58b2a..e83cb9d5 100644 --- a/daemon/core/services/utility.py +++ b/daemon/core/services/utility.py @@ -1,7 +1,7 @@ """ utility.py: defines miscellaneous utility services. """ -from typing import Optional, Tuple +from typing import Optional import netaddr @@ -27,8 +27,8 @@ class UtilService(CoreService): class IPForwardService(UtilService): name: str = "IPForward" - configs: Tuple[str, ...] = ("ipforward.sh",) - startup: Tuple[str, ...] = ("bash ipforward.sh",) + configs: tuple[str, ...] = ("ipforward.sh",) + startup: tuple[str, ...] = ("bash ipforward.sh",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: @@ -36,32 +36,30 @@ class IPForwardService(UtilService): @classmethod def generateconfiglinux(cls, node: CoreNode, filename: str) -> str: - cfg = """\ + cfg = f"""\ #!/bin/sh # auto-generated by IPForward service (utility.py) -%(sysctl)s -w net.ipv4.conf.all.forwarding=1 -%(sysctl)s -w net.ipv4.conf.default.forwarding=1 -%(sysctl)s -w net.ipv6.conf.all.forwarding=1 -%(sysctl)s -w net.ipv6.conf.default.forwarding=1 -%(sysctl)s -w net.ipv4.conf.all.send_redirects=0 -%(sysctl)s -w net.ipv4.conf.default.send_redirects=0 -%(sysctl)s -w net.ipv4.conf.all.rp_filter=0 -%(sysctl)s -w net.ipv4.conf.default.rp_filter=0 -""" % { - "sysctl": SYSCTL - } +{SYSCTL} -w net.ipv4.conf.all.forwarding=1 +{SYSCTL} -w net.ipv4.conf.default.forwarding=1 +{SYSCTL} -w net.ipv6.conf.all.forwarding=1 +{SYSCTL} -w net.ipv6.conf.default.forwarding=1 +{SYSCTL} -w net.ipv4.conf.all.send_redirects=0 +{SYSCTL} -w net.ipv4.conf.default.send_redirects=0 +{SYSCTL} -w net.ipv4.conf.all.rp_filter=0 +{SYSCTL} -w net.ipv4.conf.default.rp_filter=0 +""" for iface in node.get_ifaces(): name = utils.sysctl_devname(iface.name) - cfg += "%s -w net.ipv4.conf.%s.forwarding=1\n" % (SYSCTL, name) - cfg += "%s -w net.ipv4.conf.%s.send_redirects=0\n" % (SYSCTL, name) - cfg += "%s -w net.ipv4.conf.%s.rp_filter=0\n" % (SYSCTL, name) + cfg += f"{SYSCTL} -w net.ipv4.conf.{name}.forwarding=1\n" + cfg += f"{SYSCTL} -w net.ipv4.conf.{name}.send_redirects=0\n" + cfg += f"{SYSCTL} -w net.ipv4.conf.{name}.rp_filter=0\n" return cfg class DefaultRouteService(UtilService): name: str = "DefaultRoute" - configs: Tuple[str, ...] = ("defaultroute.sh",) - startup: Tuple[str, ...] = ("bash defaultroute.sh",) + configs: tuple[str, ...] = ("defaultroute.sh",) + startup: tuple[str, ...] = ("bash defaultroute.sh",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: @@ -83,8 +81,8 @@ class DefaultRouteService(UtilService): class DefaultMulticastRouteService(UtilService): name: str = "DefaultMulticastRoute" - configs: Tuple[str, ...] = ("defaultmroute.sh",) - startup: Tuple[str, ...] = ("bash defaultmroute.sh",) + configs: tuple[str, ...] = ("defaultmroute.sh",) + startup: tuple[str, ...] = ("bash defaultmroute.sh",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: @@ -94,7 +92,7 @@ class DefaultMulticastRouteService(UtilService): cfg += "as needed\n" for iface in node.get_ifaces(control=False): rtcmd = "ip route add 224.0.0.0/4 dev" - cfg += "%s %s\n" % (rtcmd, iface.name) + cfg += f"{rtcmd} {iface.name}\n" cfg += "\n" break return cfg @@ -102,8 +100,8 @@ class DefaultMulticastRouteService(UtilService): class StaticRouteService(UtilService): name: str = "StaticRoute" - configs: Tuple[str, ...] = ("staticroute.sh",) - startup: Tuple[str, ...] = ("bash staticroute.sh",) + configs: tuple[str, ...] = ("staticroute.sh",) + startup: tuple[str, ...] = ("bash staticroute.sh",) custom_needed: bool = True @classmethod @@ -127,16 +125,16 @@ class StaticRouteService(UtilService): if ip[-2] == ip[1]: return "" else: - rtcmd = "#/sbin/ip route add %s via" % dst - return "%s %s" % (rtcmd, ip[1]) + rtcmd = f"#/sbin/ip route add {dst} via" + return f"{rtcmd} {ip[1]}" class SshService(UtilService): name: str = "SSH" - configs: Tuple[str, ...] = ("startsshd.sh", "/etc/ssh/sshd_config") - dirs: Tuple[str, ...] = ("/etc/ssh", "/var/run/sshd") - startup: Tuple[str, ...] = ("bash startsshd.sh",) - shutdown: Tuple[str, ...] = ("killall sshd",) + configs: tuple[str, ...] = ("startsshd.sh", "/etc/ssh/sshd_config") + dirs: tuple[str, ...] = ("/etc/ssh", "/var/run/sshd") + startup: tuple[str, ...] = ("bash startsshd.sh",) + shutdown: tuple[str, ...] = ("killall sshd",) validation_mode: ServiceMode = ServiceMode.BLOCKING @classmethod @@ -149,26 +147,22 @@ class SshService(UtilService): sshstatedir = cls.dirs[1] sshlibdir = "/usr/lib/openssh" if filename == "startsshd.sh": - return """\ + return f"""\ #!/bin/sh # auto-generated by SSH service (utility.py) -ssh-keygen -q -t rsa -N "" -f %s/ssh_host_rsa_key -chmod 655 %s +ssh-keygen -q -t rsa -N "" -f {sshcfgdir}/ssh_host_rsa_key +chmod 655 {sshstatedir} # wait until RSA host key has been generated to launch sshd -/usr/sbin/sshd -f %s/sshd_config -""" % ( - sshcfgdir, - sshstatedir, - sshcfgdir, - ) +/usr/sbin/sshd -f {sshcfgdir}/sshd_config +""" else: - return """\ + return f"""\ # auto-generated by SSH service (utility.py) Port 22 Protocol 2 -HostKey %s/ssh_host_rsa_key +HostKey {sshcfgdir}/ssh_host_rsa_key UsePrivilegeSeparation yes -PidFile %s/sshd.pid +PidFile {sshstatedir}/sshd.pid KeyRegenerationInterval 3600 ServerKeyBits 768 @@ -197,23 +191,19 @@ PrintLastLog yes TCPKeepAlive yes AcceptEnv LANG LC_* -Subsystem sftp %s/sftp-server +Subsystem sftp {sshlibdir}/sftp-server UsePAM yes UseDNS no -""" % ( - sshcfgdir, - sshstatedir, - sshlibdir, - ) +""" class DhcpService(UtilService): name: str = "DHCP" - configs: Tuple[str, ...] = ("/etc/dhcp/dhcpd.conf",) - dirs: Tuple[str, ...] = ("/etc/dhcp", "/var/lib/dhcp") - startup: Tuple[str, ...] = ("touch /var/lib/dhcp/dhcpd.leases", "dhcpd") - shutdown: Tuple[str, ...] = ("killall dhcpd",) - validate: Tuple[str, ...] = ("pidof dhcpd",) + configs: tuple[str, ...] = ("/etc/dhcp/dhcpd.conf",) + dirs: tuple[str, ...] = ("/etc/dhcp", "/var/lib/dhcp") + startup: tuple[str, ...] = ("touch /var/lib/dhcp/dhcpd.leases", "dhcpd") + shutdown: tuple[str, ...] = ("killall dhcpd",) + validate: tuple[str, ...] = ("pidof dhcpd",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: @@ -252,21 +242,15 @@ ddns-update-style none; index = (ip.size - 2) / 2 rangelow = ip[index] rangehigh = ip[-2] - return """ -subnet %s netmask %s { - pool { - range %s %s; + return f""" +subnet {ip.cidr.ip} netmask {ip.netmask} {{ + pool {{ + range {rangelow} {rangehigh}; default-lease-time 600; - option routers %s; - } -} -""" % ( - ip.cidr.ip, - ip.netmask, - rangelow, - rangehigh, - ip.ip, - ) + option routers {ip.ip}; + }} +}} +""" class DhcpClientService(UtilService): @@ -275,10 +259,10 @@ class DhcpClientService(UtilService): """ name: str = "DHCPClient" - configs: Tuple[str, ...] = ("startdhcpclient.sh",) - startup: Tuple[str, ...] = ("bash startdhcpclient.sh",) - shutdown: Tuple[str, ...] = ("killall dhclient",) - validate: Tuple[str, ...] = ("pidof dhclient",) + configs: tuple[str, ...] = ("startdhcpclient.sh",) + startup: tuple[str, ...] = ("bash startdhcpclient.sh",) + shutdown: tuple[str, ...] = ("killall dhclient",) + validate: tuple[str, ...] = ("pidof dhclient",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: @@ -291,10 +275,10 @@ class DhcpClientService(UtilService): cfg += "side DNS\n# resolution based on the DHCP server response.\n" cfg += "#mkdir -p /var/run/resolvconf/interface\n" for iface in node.get_ifaces(control=False): - cfg += "#ln -s /var/run/resolvconf/interface/%s.dhclient" % iface.name + cfg += f"#ln -s /var/run/resolvconf/interface/{iface.name}.dhclient" cfg += " /var/run/resolvconf/resolv.conf\n" - cfg += "/sbin/dhclient -nw -pf /var/run/dhclient-%s.pid" % iface.name - cfg += " -lf /var/run/dhclient-%s.lease %s\n" % (iface.name, iface.name) + cfg += f"/sbin/dhclient -nw -pf /var/run/dhclient-{iface.name}.pid" + cfg += f" -lf /var/run/dhclient-{iface.name}.lease {iface.name}\n" return cfg @@ -304,11 +288,11 @@ class FtpService(UtilService): """ name: str = "FTP" - configs: Tuple[str, ...] = ("vsftpd.conf",) - dirs: Tuple[str, ...] = ("/var/run/vsftpd/empty", "/var/ftp") - startup: Tuple[str, ...] = ("vsftpd ./vsftpd.conf",) - shutdown: Tuple[str, ...] = ("killall vsftpd",) - validate: Tuple[str, ...] = ("pidof vsftpd",) + configs: tuple[str, ...] = ("vsftpd.conf",) + dirs: tuple[str, ...] = ("/var/run/vsftpd/empty", "/var/ftp") + startup: tuple[str, ...] = ("vsftpd ./vsftpd.conf",) + shutdown: tuple[str, ...] = ("killall vsftpd",) + validate: tuple[str, ...] = ("pidof vsftpd",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: @@ -337,12 +321,12 @@ class HttpService(UtilService): """ name: str = "HTTP" - configs: Tuple[str, ...] = ( + configs: tuple[str, ...] = ( "/etc/apache2/apache2.conf", "/etc/apache2/envvars", "/var/www/index.html", ) - dirs: Tuple[str, ...] = ( + dirs: tuple[str, ...] = ( "/etc/apache2", "/var/run/apache2", "/var/log/apache2", @@ -350,9 +334,9 @@ class HttpService(UtilService): "/var/lock/apache2", "/var/www", ) - startup: Tuple[str, ...] = ("chown www-data /var/lock/apache2", "apache2ctl start") - shutdown: Tuple[str, ...] = ("apache2ctl stop",) - validate: Tuple[str, ...] = ("pidof apache2",) + startup: tuple[str, ...] = ("chown www-data /var/lock/apache2", "apache2ctl start") + shutdown: tuple[str, ...] = ("apache2ctl stop",) + validate: tuple[str, ...] = ("pidof apache2",) APACHEVER22: int = 22 APACHEVER24: int = 24 @@ -538,18 +522,15 @@ export LANG @classmethod def generatehtml(cls, node: CoreNode, filename: str) -> str: - body = ( - """\ + body = f"""\ -

%s web server

+

{node.name} web server

This is the default web page for this server.

The web server software is running but no content has been added, yet.

""" - % node.name - ) for iface in node.get_ifaces(control=False): - body += "
  • %s - %s
  • \n" % (iface.name, [str(x) for x in iface.ips()]) - return "%s" % body + body += f"
  • {iface.name} - {[str(x) for x in iface.ips()]}
  • \n" + return f"{body}" class PcapService(UtilService): @@ -558,10 +539,10 @@ class PcapService(UtilService): """ name: str = "pcap" - configs: Tuple[str, ...] = ("pcap.sh",) - startup: Tuple[str, ...] = ("bash pcap.sh start",) - shutdown: Tuple[str, ...] = ("bash pcap.sh stop",) - validate: Tuple[str, ...] = ("pidof tcpdump",) + configs: tuple[str, ...] = ("pcap.sh",) + startup: tuple[str, ...] = ("bash pcap.sh start",) + shutdown: tuple[str, ...] = ("bash pcap.sh stop",) + validate: tuple[str, ...] = ("pidof tcpdump",) meta: str = "logs network traffic to pcap packet capture files" @classmethod @@ -582,11 +563,9 @@ if [ "x$1" = "xstart" ]; then if iface.control: cfg += "# " redir = "< /dev/null" - cfg += "tcpdump ${DUMPOPTS} -w %s.%s.pcap -i %s %s &\n" % ( - node.name, - iface.name, - iface.name, - redir, + cfg += ( + f"tcpdump ${{DUMPOPTS}} -w {node.name}.{iface.name}.pcap " + f"-i {iface.name} {redir} &\n" ) cfg += """ @@ -600,13 +579,13 @@ fi; class RadvdService(UtilService): name: str = "radvd" - configs: Tuple[str, ...] = ("/etc/radvd/radvd.conf",) - dirs: Tuple[str, ...] = ("/etc/radvd", "/var/run/radvd") - startup: Tuple[str, ...] = ( + configs: tuple[str, ...] = ("/etc/radvd/radvd.conf",) + dirs: tuple[str, ...] = ("/etc/radvd", "/var/run/radvd") + startup: tuple[str, ...] = ( "radvd -C /etc/radvd/radvd.conf -m logfile -l /var/log/radvd.log", ) - shutdown: Tuple[str, ...] = ("pkill radvd",) - validate: Tuple[str, ...] = ("pidof radvd",) + shutdown: tuple[str, ...] = ("pkill radvd",) + validate: tuple[str, ...] = ("pidof radvd",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: @@ -619,32 +598,26 @@ class RadvdService(UtilService): prefixes = list(map(cls.subnetentry, iface.ips())) if len(prefixes) < 1: continue - cfg += ( - """\ -interface %s -{ + cfg += f"""\ +interface {iface.name} +{{ AdvSendAdvert on; MinRtrAdvInterval 3; MaxRtrAdvInterval 10; AdvDefaultPreference low; AdvHomeAgentFlag off; """ - % iface.name - ) for prefix in prefixes: if prefix == "": continue - cfg += ( - """\ - prefix %s - { + cfg += f"""\ + prefix {prefix} + {{ AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; - }; + }}; """ - % prefix - ) cfg += "};\n" return cfg @@ -667,10 +640,10 @@ class AtdService(UtilService): """ name: str = "atd" - configs: Tuple[str, ...] = ("startatd.sh",) - dirs: Tuple[str, ...] = ("/var/spool/cron/atjobs", "/var/spool/cron/atspool") - startup: Tuple[str, ...] = ("bash startatd.sh",) - shutdown: Tuple[str, ...] = ("pkill atd",) + configs: tuple[str, ...] = ("startatd.sh",) + dirs: tuple[str, ...] = ("/var/spool/cron/atjobs", "/var/spool/cron/atspool") + startup: tuple[str, ...] = ("bash startatd.sh",) + shutdown: tuple[str, ...] = ("pkill atd",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: diff --git a/daemon/core/services/xorp.py b/daemon/core/services/xorp.py index 485fe159..ac29b299 100644 --- a/daemon/core/services/xorp.py +++ b/daemon/core/services/xorp.py @@ -2,7 +2,7 @@ xorp.py: defines routing services provided by the XORP routing suite. """ -from typing import Optional, Tuple +from typing import Optional import netaddr @@ -19,15 +19,14 @@ class XorpRtrmgr(CoreService): name: str = "xorp_rtrmgr" group: str = "XORP" - executables: Tuple[str, ...] = ("xorp_rtrmgr",) - dirs: Tuple[str, ...] = ("/etc/xorp",) - configs: Tuple[str, ...] = ("/etc/xorp/config.boot",) - startup: Tuple[str, ...] = ( - "xorp_rtrmgr -d -b %s -l /var/log/%s.log -P /var/run/%s.pid" - % (configs[0], name, name), - ) - shutdown: Tuple[str, ...] = ("killall xorp_rtrmgr",) - validate: Tuple[str, ...] = ("pidof xorp_rtrmgr",) + executables: tuple[str, ...] = ("xorp_rtrmgr",) + dirs: tuple[str, ...] = ("/etc/xorp",) + configs: tuple[str, ...] = ("/etc/xorp/config.boot",) + startup: tuple[ + str, ... + ] = f"xorp_rtrmgr -d -b {configs[0]} -l /var/log/{name}.log -P /var/run/{name}.pid" + shutdown: tuple[str, ...] = ("killall xorp_rtrmgr",) + validate: tuple[str, ...] = ("pidof xorp_rtrmgr",) @classmethod def generate_config(cls, node: CoreNode, filename: str) -> str: @@ -38,8 +37,8 @@ class XorpRtrmgr(CoreService): """ cfg = "interfaces {\n" for iface in node.get_ifaces(): - cfg += " interface %s {\n" % iface.name - cfg += "\tvif %s {\n" % iface.name + cfg += f" interface {iface.name} {{\n" + cfg += f"\tvif {iface.name} {{\n" cfg += "".join(map(cls.addrstr, iface.ips())) cfg += cls.lladdrstr(iface) cfg += "\t}\n" @@ -59,8 +58,8 @@ class XorpRtrmgr(CoreService): """ helper for mapping IP addresses to XORP config statements """ - cfg = "\t address %s {\n" % ip.ip - cfg += "\t\tprefix-length: %s\n" % ip.prefixlen + cfg = f"\t address {ip.ip} {{\n" + cfg += f"\t\tprefix-length: {ip.prefixlen}\n" cfg += "\t }\n" return cfg @@ -69,7 +68,7 @@ class XorpRtrmgr(CoreService): """ helper for adding link-local address entries (required by OSPFv3) """ - cfg = "\t address %s {\n" % iface.mac.eui64() + cfg = f"\t address {iface.mac.eui64()} {{\n" cfg += "\t\tprefix-length: 64\n" cfg += "\t }\n" return cfg @@ -83,8 +82,8 @@ class XorpService(CoreService): name: Optional[str] = None group: str = "XORP" - executables: Tuple[str, ...] = ("xorp_rtrmgr",) - dependencies: Tuple[str, ...] = ("xorp_rtrmgr",) + executables: tuple[str, ...] = ("xorp_rtrmgr",) + dependencies: tuple[str, ...] = ("xorp_rtrmgr",) meta: str = ( "The config file for this service can be found in the xorp_rtrmgr service." ) @@ -95,7 +94,7 @@ class XorpService(CoreService): Helper to add a forwarding engine entry to the config file. """ cfg = "fea {\n" - cfg += " %s {\n" % forwarding + cfg += f" {forwarding} {{\n" cfg += "\tdisable:false\n" cfg += " }\n" cfg += "}\n" @@ -111,10 +110,10 @@ class XorpService(CoreService): names.append(iface.name) names.append("register_vif") cfg = "plumbing {\n" - cfg += " %s {\n" % forwarding + cfg += f" {forwarding} {{\n" for name in names: - cfg += "\tinterface %s {\n" % name - cfg += "\t vif %s {\n" % name + cfg += f"\tinterface {name} {{\n" + cfg += f"\t vif {name} {{\n" cfg += "\t\tdisable: false\n" cfg += "\t }\n" cfg += "\t}\n" @@ -173,13 +172,13 @@ class XorpOspfv2(XorpService): rtrid = cls.router_id(node) cfg += "\nprotocols {\n" cfg += " ospf4 {\n" - cfg += "\trouter-id: %s\n" % rtrid + cfg += f"\trouter-id: {rtrid}\n" cfg += "\tarea 0.0.0.0 {\n" for iface in node.get_ifaces(control=False): - cfg += "\t interface %s {\n" % iface.name - cfg += "\t\tvif %s {\n" % iface.name + cfg += f"\t interface {iface.name} {{\n" + cfg += f"\t\tvif {iface.name} {{\n" for ip4 in iface.ip4s: - cfg += "\t\t address %s {\n" % ip4.ip + cfg += f"\t\t address {ip4.ip} {{\n" cfg += "\t\t }\n" cfg += "\t\t}\n" cfg += "\t }\n" @@ -204,11 +203,11 @@ class XorpOspfv3(XorpService): rtrid = cls.router_id(node) cfg += "\nprotocols {\n" cfg += " ospf6 0 { /* Instance ID 0 */\n" - cfg += "\trouter-id: %s\n" % rtrid + cfg += f"\trouter-id: {rtrid}\n" cfg += "\tarea 0.0.0.0 {\n" for iface in node.get_ifaces(control=False): - cfg += "\t interface %s {\n" % iface.name - cfg += "\t\tvif %s {\n" % iface.name + cfg += f"\t interface {iface.name} {{\n" + cfg += f"\t\tvif {iface.name} {{\n" cfg += "\t\t}\n" cfg += "\t }\n" cfg += "\t}\n" @@ -234,7 +233,7 @@ class XorpBgp(XorpService): rtrid = cls.router_id(node) cfg += "\nprotocols {\n" cfg += " bgp {\n" - cfg += "\tbgp-id: %s\n" % rtrid + cfg += f"\tbgp-id: {rtrid}\n" cfg += "\tlocal-as: 65001 /* change this */\n" cfg += '\texport: "export-connected"\n' cfg += "\tpeer 10.0.1.1 { /* change this */\n" @@ -262,10 +261,10 @@ class XorpRip(XorpService): cfg += " rip {\n" cfg += '\texport: "export-connected"\n' for iface in node.get_ifaces(control=False): - cfg += "\tinterface %s {\n" % iface.name - cfg += "\t vif %s {\n" % iface.name + cfg += f"\tinterface {iface.name} {{\n" + cfg += f"\t vif {iface.name} {{\n" for ip4 in iface.ip4s: - cfg += "\t\taddress %s {\n" % ip4.ip + cfg += f"\t\taddress {ip4.ip} {{\n" cfg += "\t\t disable: false\n" cfg += "\t\t}\n" cfg += "\t }\n" @@ -290,9 +289,9 @@ class XorpRipng(XorpService): cfg += " ripng {\n" cfg += '\texport: "export-connected"\n' for iface in node.get_ifaces(control=False): - cfg += "\tinterface %s {\n" % iface.name - cfg += "\t vif %s {\n" % iface.name - cfg += "\t\taddress %s {\n" % iface.mac.eui64() + cfg += f"\tinterface {iface.name} {{\n" + cfg += f"\t vif {iface.name} {{\n" + cfg += f"\t\taddress {iface.mac.eui64()} {{\n" cfg += "\t\t disable: false\n" cfg += "\t\t}\n" cfg += "\t }\n" @@ -317,8 +316,8 @@ class XorpPimSm4(XorpService): names = [] for iface in node.get_ifaces(control=False): names.append(iface.name) - cfg += "\tinterface %s {\n" % iface.name - cfg += "\t vif %s {\n" % iface.name + cfg += f"\tinterface {iface.name} {{\n" + cfg += f"\t vif {iface.name} {{\n" cfg += "\t\tdisable: false\n" cfg += "\t }\n" cfg += "\t}\n" @@ -329,20 +328,20 @@ class XorpPimSm4(XorpService): names.append("register_vif") for name in names: - cfg += "\tinterface %s {\n" % name - cfg += "\t vif %s {\n" % name + cfg += f"\tinterface {name} {{\n" + cfg += f"\t vif {name} {{\n" cfg += "\t\tdr-priority: 1\n" cfg += "\t }\n" cfg += "\t}\n" cfg += "\tbootstrap {\n" cfg += "\t cand-bsr {\n" cfg += "\t\tscope-zone 224.0.0.0/4 {\n" - cfg += '\t\t cand-bsr-by-vif-name: "%s"\n' % names[0] + cfg += f'\t\t cand-bsr-by-vif-name: "{names[0]}"\n' cfg += "\t\t}\n" cfg += "\t }\n" cfg += "\t cand-rp {\n" cfg += "\t\tgroup-prefix 224.0.0.0/4 {\n" - cfg += '\t\t cand-rp-by-vif-name: "%s"\n' % names[0] + cfg += f'\t\t cand-rp-by-vif-name: "{names[0]}"\n' cfg += "\t\t}\n" cfg += "\t }\n" cfg += "\t}\n" @@ -371,8 +370,8 @@ class XorpPimSm6(XorpService): names = [] for iface in node.get_ifaces(control=False): names.append(iface.name) - cfg += "\tinterface %s {\n" % iface.name - cfg += "\t vif %s {\n" % iface.name + cfg += f"\tinterface {iface.name} {{\n" + cfg += f"\t vif {iface.name} {{\n" cfg += "\t\tdisable: false\n" cfg += "\t }\n" cfg += "\t}\n" @@ -383,20 +382,20 @@ class XorpPimSm6(XorpService): names.append("register_vif") for name in names: - cfg += "\tinterface %s {\n" % name - cfg += "\t vif %s {\n" % name + cfg += f"\tinterface {name} {{\n" + cfg += f"\t vif {name} {{\n" cfg += "\t\tdr-priority: 1\n" cfg += "\t }\n" cfg += "\t}\n" cfg += "\tbootstrap {\n" cfg += "\t cand-bsr {\n" cfg += "\t\tscope-zone ff00::/8 {\n" - cfg += '\t\t cand-bsr-by-vif-name: "%s"\n' % names[0] + cfg += f'\t\t cand-bsr-by-vif-name: "{names[0]}"\n' cfg += "\t\t}\n" cfg += "\t }\n" cfg += "\t cand-rp {\n" cfg += "\t\tgroup-prefix ff00::/8 {\n" - cfg += '\t\t cand-rp-by-vif-name: "%s"\n' % names[0] + cfg += f'\t\t cand-rp-by-vif-name: "{names[0]}"\n' cfg += "\t\t}\n" cfg += "\t }\n" cfg += "\t}\n" @@ -423,12 +422,12 @@ class XorpOlsr(XorpService): rtrid = cls.router_id(node) cfg += "\nprotocols {\n" cfg += " olsr4 {\n" - cfg += "\tmain-address: %s\n" % rtrid + cfg += f"\tmain-address: {rtrid}\n" for iface in node.get_ifaces(control=False): - cfg += "\tinterface %s {\n" % iface.name - cfg += "\t vif %s {\n" % iface.name + cfg += f"\tinterface {iface.name} {{\n" + cfg += f"\t vif {iface.name} {{\n" for ip4 in iface.ip4s: - cfg += "\t\taddress %s {\n" % ip4.ip + cfg += f"\t\taddress {ip4.ip} {{\n" cfg += "\t\t}\n" cfg += "\t }\n" cfg += "\t}\n" From 69f05a6712f2df014e823e6e32f4dc80cb43cf3c Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Thu, 13 Apr 2023 15:48:02 -0700 Subject: [PATCH 30/70] daemon: updated top level core modules from using deprecated type hinting --- daemon/core/config.py | 36 +++++++++++------------ daemon/core/executables.py | 8 ++---- daemon/core/player.py | 4 +-- daemon/core/utils.py | 58 +++++++++++++++----------------------- 4 files changed, 46 insertions(+), 60 deletions(-) diff --git a/daemon/core/config.py b/daemon/core/config.py index ae40627e..7a6ffa49 100644 --- a/daemon/core/config.py +++ b/daemon/core/config.py @@ -5,7 +5,7 @@ Common support for configurable CORE objects. import logging from collections import OrderedDict from dataclasses import dataclass, field -from typing import TYPE_CHECKING, Any, Dict, List, Optional, Set, Tuple, Type, Union +from typing import TYPE_CHECKING, Any, Optional, Union from core.emane.nodes import EmaneNet from core.emulator.enumerations import ConfigDataTypes @@ -17,9 +17,9 @@ logger = logging.getLogger(__name__) if TYPE_CHECKING: from core.location.mobility import WirelessModel - WirelessModelType = Type[WirelessModel] + WirelessModelType = type[WirelessModel] -_BOOL_OPTIONS: Set[str] = {"0", "1"} +_BOOL_OPTIONS: set[str] = {"0", "1"} @dataclass @@ -43,7 +43,7 @@ class Configuration: type: ConfigDataTypes label: str = None default: str = "" - options: List[str] = field(default_factory=list) + options: list[str] = field(default_factory=list) group: str = "Configuration" def __post_init__(self) -> None: @@ -118,10 +118,10 @@ class ConfigurableOptions: """ name: Optional[str] = None - options: List[Configuration] = [] + options: list[Configuration] = [] @classmethod - def configurations(cls) -> List[Configuration]: + def configurations(cls) -> list[Configuration]: """ Provides the configurations for this class. @@ -130,7 +130,7 @@ class ConfigurableOptions: return cls.options @classmethod - def config_groups(cls) -> List[ConfigGroup]: + def config_groups(cls) -> list[ConfigGroup]: """ Defines how configurations are grouped. @@ -139,7 +139,7 @@ class ConfigurableOptions: return [ConfigGroup("Options", 1, len(cls.configurations()))] @classmethod - def default_values(cls) -> Dict[str, str]: + def default_values(cls) -> dict[str, str]: """ Provides an ordered mapping of configuration keys to default values. @@ -165,7 +165,7 @@ class ConfigurableManager: """ self.node_configurations = {} - def nodes(self) -> List[int]: + def nodes(self) -> list[int]: """ Retrieves the ids of all node configurations known by this manager. @@ -208,7 +208,7 @@ class ConfigurableManager: def set_configs( self, - config: Dict[str, str], + config: dict[str, str], node_id: int = _default_node, config_type: str = _default_type, ) -> None: @@ -250,7 +250,7 @@ class ConfigurableManager: def get_configs( self, node_id: int = _default_node, config_type: str = _default_type - ) -> Optional[Dict[str, str]]: + ) -> Optional[dict[str, str]]: """ Retrieve configurations for a node and configuration type. @@ -264,7 +264,7 @@ class ConfigurableManager: result = node_configs.get(config_type) return result - def get_all_configs(self, node_id: int = _default_node) -> Dict[str, Any]: + def get_all_configs(self, node_id: int = _default_node) -> dict[str, Any]: """ Retrieve all current configuration types for a node. @@ -284,11 +284,11 @@ class ModelManager(ConfigurableManager): Creates a ModelManager object. """ super().__init__() - self.models: Dict[str, Any] = {} - self.node_models: Dict[int, str] = {} + self.models: dict[str, Any] = {} + self.node_models: dict[int, str] = {} def set_model_config( - self, node_id: int, model_name: str, config: Dict[str, str] = None + self, node_id: int, model_name: str, config: dict[str, str] = None ) -> None: """ Set configuration data for a model. @@ -317,7 +317,7 @@ class ModelManager(ConfigurableManager): # set configuration self.set_configs(model_config, node_id=node_id, config_type=model_name) - def get_model_config(self, node_id: int, model_name: str) -> Dict[str, str]: + def get_model_config(self, node_id: int, model_name: str) -> dict[str, str]: """ Retrieve configuration data for a model. @@ -342,7 +342,7 @@ class ModelManager(ConfigurableManager): self, node: Union[WlanNode, EmaneNet], model_class: "WirelessModelType", - config: Dict[str, str] = None, + config: dict[str, str] = None, ) -> None: """ Set model and model configuration for node. @@ -361,7 +361,7 @@ class ModelManager(ConfigurableManager): def get_models( self, node: Union[WlanNode, EmaneNet] - ) -> List[Tuple[Type, Dict[str, str]]]: + ) -> list[tuple[type, dict[str, str]]]: """ Return a list of model classes and values for a net if one has been configured. This is invoked when exporting a session to XML. diff --git a/daemon/core/executables.py b/daemon/core/executables.py index 95c97378..f04d88de 100644 --- a/daemon/core/executables.py +++ b/daemon/core/executables.py @@ -1,5 +1,3 @@ -from typing import List - BASH: str = "bash" ETHTOOL: str = "ethtool" IP: str = "ip" @@ -13,7 +11,7 @@ UMOUNT: str = "umount" VCMD: str = "vcmd" VNODED: str = "vnoded" -COMMON_REQUIREMENTS: List[str] = [ +COMMON_REQUIREMENTS: list[str] = [ BASH, ETHTOOL, IP, @@ -26,10 +24,10 @@ COMMON_REQUIREMENTS: List[str] = [ VCMD, VNODED, ] -OVS_REQUIREMENTS: List[str] = [OVS_VSCTL] +OVS_REQUIREMENTS: list[str] = [OVS_VSCTL] -def get_requirements(use_ovs: bool) -> List[str]: +def get_requirements(use_ovs: bool) -> list[str]: """ Retrieve executable requirements needed to run CORE. diff --git a/daemon/core/player.py b/daemon/core/player.py index 6ba0d602..d06e7b97 100644 --- a/daemon/core/player.py +++ b/daemon/core/player.py @@ -5,7 +5,7 @@ import logging import sched from pathlib import Path from threading import Thread -from typing import IO, Callable, Dict, Optional +from typing import IO, Callable, Optional import grpc @@ -230,7 +230,7 @@ class CorePlayer: self.node_streamer: Optional[MoveNodesStreamer] = None self.node_streamer_thread: Optional[Thread] = None self.scheduler: sched.scheduler = sched.scheduler() - self.handlers: Dict[PlayerEvents, Callable] = { + self.handlers: dict[PlayerEvents, Callable] = { PlayerEvents.XY: self.handle_xy, PlayerEvents.GEO: self.handle_geo, PlayerEvents.CMD: self.handle_cmd, diff --git a/daemon/core/utils.py b/daemon/core/utils.py index 244590f8..5947c006 100644 --- a/daemon/core/utils.py +++ b/daemon/core/utils.py @@ -17,23 +17,11 @@ import shutil import sys import threading from collections import OrderedDict +from collections.abc import Iterable from pathlib import Path from queue import Queue from subprocess import PIPE, STDOUT, Popen -from typing import ( - TYPE_CHECKING, - Any, - Callable, - Dict, - Generic, - Iterable, - List, - Optional, - Tuple, - Type, - TypeVar, - Union, -) +from typing import TYPE_CHECKING, Any, Callable, Generic, Optional, TypeVar, Union import netaddr @@ -70,7 +58,7 @@ def execute_script(coreemu: "CoreEmu", file_path: Path, args: str) -> None: def execute_file( - path: Path, exec_globals: Dict[str, str] = None, exec_locals: Dict[str, str] = None + path: Path, exec_globals: dict[str, str] = None, exec_locals: dict[str, str] = None ) -> None: """ Provides a way to execute a file. @@ -131,7 +119,7 @@ def _valid_module(path: Path) -> bool: return True -def _is_class(module: Any, member: Type, clazz: Type) -> bool: +def _is_class(module: Any, member: type, clazz: type) -> bool: """ Validates if a module member is a class and an instance of a CoreService. @@ -175,7 +163,7 @@ def which(command: str, required: bool) -> str: return found_path -def make_tuple_fromstr(s: str, value_type: Callable[[str], T]) -> Tuple[T]: +def make_tuple_fromstr(s: str, value_type: Callable[[str], T]) -> tuple[T]: """ Create a tuple from a string. @@ -193,7 +181,7 @@ def make_tuple_fromstr(s: str, value_type: Callable[[str], T]) -> Tuple[T]: return tuple(value_type(i) for i in values) -def mute_detach(args: str, **kwargs: Dict[str, Any]) -> int: +def mute_detach(args: str, **kwargs: dict[str, Any]) -> int: """ Run a muted detached process by forking it. @@ -210,7 +198,7 @@ def mute_detach(args: str, **kwargs: Dict[str, Any]) -> int: def cmd( args: str, - env: Dict[str, str] = None, + env: dict[str, str] = None, cwd: Path = None, wait: bool = True, shell: bool = False, @@ -249,7 +237,7 @@ def cmd( raise CoreCommandError(1, input_args, "", e.strerror) -def run_cmds(args: List[str], wait: bool = True, shell: bool = False) -> List[str]: +def run_cmds(args: list[str], wait: bool = True, shell: bool = False) -> list[str]: """ Execute a series of commands on the host and returns a list of the combined stderr stdout output. @@ -294,7 +282,7 @@ def file_demunge(pathname: str, header: str) -> None: :param header: header text to target for removal :return: nothing """ - with open(pathname, "r") as read_file: + with open(pathname) as read_file: lines = read_file.readlines() start = None @@ -348,7 +336,7 @@ def sysctl_devname(devname: str) -> Optional[str]: return devname.replace(".", "/") -def load_config(file_path: Path, d: Dict[str, str]) -> None: +def load_config(file_path: Path, d: dict[str, str]) -> None: """ Read key=value pairs from a file, into a dict. Skip comments; strip newline characters and spacing. @@ -369,7 +357,7 @@ def load_config(file_path: Path, d: Dict[str, str]) -> None: logger.exception("error reading file to dict: %s", file_path) -def load_module(import_statement: str, clazz: Generic[T]) -> List[T]: +def load_module(import_statement: str, clazz: Generic[T]) -> list[T]: classes = [] try: module = importlib.import_module(import_statement) @@ -384,7 +372,7 @@ def load_module(import_statement: str, clazz: Generic[T]) -> List[T]: return classes -def load_classes(path: Path, clazz: Generic[T]) -> List[T]: +def load_classes(path: Path, clazz: Generic[T]) -> list[T]: """ Dynamically load classes for use within CORE. @@ -426,12 +414,12 @@ def load_logging_config(config_path: Path) -> None: def run_cmds_threaded( - nodes: List["CoreNode"], - cmds: List[str], + nodes: list["CoreNode"], + cmds: list[str], wait: bool = True, shell: bool = False, workers: int = None, -) -> Tuple[Dict[int, List[str]], List[Exception]]: +) -> tuple[dict[int, list[str]], list[Exception]]: """ Run a set of commands in order across a provided set of nodes. Each node will run the commands within the context of a threadpool. @@ -446,8 +434,8 @@ def run_cmds_threaded( """ def _node_cmds( - _target: "CoreNode", _cmds: List[str], _wait: bool, _shell: bool - ) -> List[str]: + _target: "CoreNode", _cmds: list[str], _wait: bool, _shell: bool + ) -> list[str]: outputs = [] for _cmd in _cmds: output = _target.cmd(_cmd, wait=_wait, shell=_shell) @@ -475,12 +463,12 @@ def run_cmds_threaded( def run_cmds_mp( - nodes: List["CoreNode"], - cmds: List[str], + nodes: list["CoreNode"], + cmds: list[str], wait: bool = True, shell: bool = False, workers: int = None, -) -> Tuple[Dict[int, List[str]], List[Exception]]: +) -> tuple[dict[int, list[str]], list[Exception]]: """ Run a set of commands in order across a provided set of nodes. Each node will run the commands within the context of a process pool. This will not work @@ -521,8 +509,8 @@ def run_cmds_mp( def threadpool( - funcs: List[Tuple[Callable, Iterable[Any], Dict[Any, Any]]], workers: int = 10 -) -> Tuple[List[Any], List[Exception]]: + funcs: list[tuple[Callable, Iterable[Any], dict[Any, Any]]], workers: int = 10 +) -> tuple[list[Any], list[Exception]]: """ Run provided functions, arguments, and keywords within a threadpool collecting results and exceptions. @@ -575,7 +563,7 @@ def iface_config_id(node_id: int, iface_id: int = None) -> int: return node_id -def parse_iface_config_id(config_id: int) -> Tuple[int, Optional[int]]: +def parse_iface_config_id(config_id: int) -> tuple[int, Optional[int]]: """ Parses configuration id, that may be potentially derived from an interface for a node. From e7351b594d81365c35aac0e065576eaddb445424 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Thu, 13 Apr 2023 15:53:16 -0700 Subject: [PATCH 31/70] gui: updated core.gui to not use deprecated type hinting --- daemon/core/gui/app.py | 6 +- daemon/core/gui/appconfig.py | 44 +++++++------- daemon/core/gui/coreclient.py | 59 ++++++++++--------- daemon/core/gui/dialogs/alerts.py | 4 +- daemon/core/gui/dialogs/canvaswallpaper.py | 4 +- daemon/core/gui/dialogs/colorpicker.py | 32 ++++++---- .../core/gui/dialogs/configserviceconfig.py | 40 ++++++------- daemon/core/gui/dialogs/copyserviceconfig.py | 4 +- daemon/core/gui/dialogs/customnodes.py | 8 +-- daemon/core/gui/dialogs/emaneconfig.py | 6 +- daemon/core/gui/dialogs/ipdialog.py | 6 +- daemon/core/gui/dialogs/mobilityconfig.py | 4 +- daemon/core/gui/dialogs/nodeconfig.py | 4 +- daemon/core/gui/dialogs/nodeconfigservice.py | 6 +- daemon/core/gui/dialogs/nodeservice.py | 4 +- daemon/core/gui/dialogs/runtool.py | 4 +- daemon/core/gui/dialogs/serviceconfig.py | 34 +++++------ daemon/core/gui/dialogs/sessions.py | 4 +- daemon/core/gui/dialogs/shapemod.py | 8 +-- daemon/core/gui/dialogs/wirelessconfig.py | 6 +- daemon/core/gui/dialogs/wlanconfig.py | 6 +- daemon/core/gui/graph/edges.py | 16 ++--- daemon/core/gui/graph/graph.py | 48 +++++++-------- daemon/core/gui/graph/manager.py | 27 +++++---- daemon/core/gui/graph/node.py | 16 ++--- daemon/core/gui/graph/shape.py | 8 +-- daemon/core/gui/graph/shapeutils.py | 3 +- daemon/core/gui/graph/tags.py | 6 +- daemon/core/gui/graph/tooltip.py | 10 ++-- daemon/core/gui/images.py | 6 +- daemon/core/gui/interface.py | 16 ++--- daemon/core/gui/nodeutils.py | 28 ++++----- daemon/core/gui/observers.py | 4 +- daemon/core/gui/statusbar.py | 4 +- daemon/core/gui/task.py | 6 +- daemon/core/gui/themes.py | 7 +-- daemon/core/gui/toolbar.py | 6 +- daemon/core/gui/tooltip.py | 2 +- daemon/core/gui/validation.py | 3 +- daemon/core/gui/widgets.py | 16 ++--- 40 files changed, 268 insertions(+), 257 deletions(-) diff --git a/daemon/core/gui/app.py b/daemon/core/gui/app.py index d905bff3..4fd1dce5 100644 --- a/daemon/core/gui/app.py +++ b/daemon/core/gui/app.py @@ -3,7 +3,7 @@ import math import tkinter as tk from tkinter import PhotoImage, font, messagebox, ttk from tkinter.ttk import Progressbar -from typing import Any, Dict, Optional, Type +from typing import Any, Optional import grpc @@ -45,7 +45,7 @@ class Application(ttk.Frame): self.show_infobar: tk.BooleanVar = tk.BooleanVar(value=False) # fonts - self.fonts_size: Dict[str, int] = {} + self.fonts_size: dict[str, int] = {} self.icon_text_font: Optional[font.Font] = None self.edge_font: Optional[font.Font] = None @@ -145,7 +145,7 @@ class Application(ttk.Frame): self.statusbar = StatusBar(self.right_frame, self) self.statusbar.grid(sticky=tk.EW, columnspan=2) - def display_info(self, frame_class: Type[InfoFrameBase], **kwargs: Any) -> None: + def display_info(self, frame_class: type[InfoFrameBase], **kwargs: Any) -> None: if not self.show_infobar.get(): return self.clear_info() diff --git a/daemon/core/gui/appconfig.py b/daemon/core/gui/appconfig.py index 04f2fdcb..0a5ae76b 100644 --- a/daemon/core/gui/appconfig.py +++ b/daemon/core/gui/appconfig.py @@ -1,7 +1,7 @@ import os import shutil from pathlib import Path -from typing import Dict, List, Optional, Type +from typing import Optional import yaml @@ -26,7 +26,7 @@ LOCAL_XMLS_PATH: Path = DATA_PATH.joinpath("xmls").absolute() LOCAL_MOBILITY_PATH: Path = DATA_PATH.joinpath("mobility").absolute() # configuration data -TERMINALS: Dict[str, str] = { +TERMINALS: dict[str, str] = { "xterm": "xterm -e", "aterm": "aterm -e", "eterm": "eterm -e", @@ -36,7 +36,7 @@ TERMINALS: Dict[str, str] = { "xfce4-terminal": "xfce4-terminal -x", "gnome-terminal": "gnome-terminal --window --", } -EDITORS: List[str] = ["$EDITOR", "vim", "emacs", "gedit", "nano", "vi"] +EDITORS: list[str] = ["$EDITOR", "vim", "emacs", "gedit", "nano", "vi"] class IndentDumper(yaml.Dumper): @@ -46,17 +46,17 @@ class IndentDumper(yaml.Dumper): class CustomNode(yaml.YAMLObject): yaml_tag: str = "!CustomNode" - yaml_loader: Type[yaml.SafeLoader] = yaml.SafeLoader + yaml_loader: type[yaml.SafeLoader] = yaml.SafeLoader - def __init__(self, name: str, image: str, services: List[str]) -> None: + def __init__(self, name: str, image: str, services: list[str]) -> None: self.name: str = name self.image: str = image - self.services: List[str] = services + self.services: list[str] = services class CoreServer(yaml.YAMLObject): yaml_tag: str = "!CoreServer" - yaml_loader: Type[yaml.SafeLoader] = yaml.SafeLoader + yaml_loader: type[yaml.SafeLoader] = yaml.SafeLoader def __init__(self, name: str, address: str) -> None: self.name: str = name @@ -65,7 +65,7 @@ class CoreServer(yaml.YAMLObject): class Observer(yaml.YAMLObject): yaml_tag: str = "!Observer" - yaml_loader: Type[yaml.SafeLoader] = yaml.SafeLoader + yaml_loader: type[yaml.SafeLoader] = yaml.SafeLoader def __init__(self, name: str, cmd: str) -> None: self.name: str = name @@ -74,7 +74,7 @@ class Observer(yaml.YAMLObject): class PreferencesConfig(yaml.YAMLObject): yaml_tag: str = "!PreferencesConfig" - yaml_loader: Type[yaml.SafeLoader] = yaml.SafeLoader + yaml_loader: type[yaml.SafeLoader] = yaml.SafeLoader def __init__( self, @@ -95,7 +95,7 @@ class PreferencesConfig(yaml.YAMLObject): class LocationConfig(yaml.YAMLObject): yaml_tag: str = "!LocationConfig" - yaml_loader: Type[yaml.SafeLoader] = yaml.SafeLoader + yaml_loader: type[yaml.SafeLoader] = yaml.SafeLoader def __init__( self, @@ -118,17 +118,17 @@ class LocationConfig(yaml.YAMLObject): class IpConfigs(yaml.YAMLObject): yaml_tag: str = "!IpConfigs" - yaml_loader: Type[yaml.SafeLoader] = yaml.SafeLoader + yaml_loader: type[yaml.SafeLoader] = yaml.SafeLoader def __init__(self, **kwargs) -> None: self.__setstate__(kwargs) def __setstate__(self, kwargs): - self.ip4s: List[str] = kwargs.get( + self.ip4s: list[str] = kwargs.get( "ip4s", ["10.0.0.0", "192.168.0.0", "172.16.0.0"] ) self.ip4: str = kwargs.get("ip4", self.ip4s[0]) - self.ip6s: List[str] = kwargs.get("ip6s", ["2001::", "2002::", "a::"]) + self.ip6s: list[str] = kwargs.get("ip6s", ["2001::", "2002::", "a::"]) self.ip6: str = kwargs.get("ip6", self.ip6s[0]) self.enable_ip4: bool = kwargs.get("enable_ip4", True) self.enable_ip6: bool = kwargs.get("enable_ip6", True) @@ -136,16 +136,16 @@ class IpConfigs(yaml.YAMLObject): class GuiConfig(yaml.YAMLObject): yaml_tag: str = "!GuiConfig" - yaml_loader: Type[yaml.SafeLoader] = yaml.SafeLoader + yaml_loader: type[yaml.SafeLoader] = yaml.SafeLoader def __init__( self, preferences: PreferencesConfig = None, location: LocationConfig = None, - servers: List[CoreServer] = None, - nodes: List[CustomNode] = None, - recentfiles: List[str] = None, - observers: List[Observer] = None, + servers: list[CoreServer] = None, + nodes: list[CustomNode] = None, + recentfiles: list[str] = None, + observers: list[Observer] = None, scale: float = 1.0, ips: IpConfigs = None, mac: str = "00:00:00:aa:00:00", @@ -158,16 +158,16 @@ class GuiConfig(yaml.YAMLObject): self.location: LocationConfig = location if servers is None: servers = [] - self.servers: List[CoreServer] = servers + self.servers: list[CoreServer] = servers if nodes is None: nodes = [] - self.nodes: List[CustomNode] = nodes + self.nodes: list[CustomNode] = nodes if recentfiles is None: recentfiles = [] - self.recentfiles: List[str] = recentfiles + self.recentfiles: list[str] = recentfiles if observers is None: observers = [] - self.observers: List[Observer] = observers + self.observers: list[Observer] = observers self.scale: float = scale if ips is None: ips = IpConfigs() diff --git a/daemon/core/gui/coreclient.py b/daemon/core/gui/coreclient.py index cd33aeca..5bebe77e 100644 --- a/daemon/core/gui/coreclient.py +++ b/daemon/core/gui/coreclient.py @@ -6,9 +6,10 @@ import json import logging import os import tkinter as tk +from collections.abc import Iterable from pathlib import Path from tkinter import messagebox -from typing import TYPE_CHECKING, Dict, Iterable, List, Optional, Set, Tuple +from typing import TYPE_CHECKING, Optional import grpc @@ -55,7 +56,7 @@ GUI_SOURCE = "gui" CPU_USAGE_DELAY = 3 -def to_dict(config: Dict[str, ConfigOption]) -> Dict[str, str]: +def to_dict(config: dict[str, ConfigOption]) -> dict[str, str]: return {x: y.value for x, y in config.items()} @@ -74,26 +75,26 @@ class CoreClient: self.show_throughputs: tk.BooleanVar = tk.BooleanVar(value=False) # global service settings - self.services: Dict[str, Set[str]] = {} - self.config_services_groups: Dict[str, Set[str]] = {} - self.config_services: Dict[str, ConfigService] = {} + self.services: dict[str, set[str]] = {} + self.config_services_groups: dict[str, set[str]] = {} + self.config_services: dict[str, ConfigService] = {} # loaded configuration data - self.emane_models: List[str] = [] - self.servers: Dict[str, CoreServer] = {} - self.custom_nodes: Dict[str, NodeDraw] = {} - self.custom_observers: Dict[str, Observer] = {} + self.emane_models: list[str] = [] + self.servers: dict[str, CoreServer] = {} + self.custom_nodes: dict[str, NodeDraw] = {} + self.custom_observers: dict[str, Observer] = {} self.read_config() # helpers - self.iface_to_edge: Dict[Tuple[int, ...], CanvasEdge] = {} + self.iface_to_edge: dict[tuple[int, ...], CanvasEdge] = {} self.ifaces_manager: InterfaceManager = InterfaceManager(self.app) self.observer: Optional[str] = None # session data - self.mobility_players: Dict[int, MobilityPlayer] = {} - self.canvas_nodes: Dict[int, CanvasNode] = {} - self.links: Dict[str, CanvasEdge] = {} + self.mobility_players: dict[int, MobilityPlayer] = {} + self.canvas_nodes: dict[int, CanvasNode] = {} + self.links: dict[str, CanvasEdge] = {} self.handling_throughputs: Optional[grpc.Future] = None self.handling_cpu_usage: Optional[grpc.Future] = None self.handling_events: Optional[grpc.Future] = None @@ -372,7 +373,7 @@ class CoreClient: # existing session sessions = self.client.get_sessions() if session_id: - session_ids = set(x.id for x in sessions) + session_ids = {x.id for x in sessions} if session_id not in session_ids: self.app.show_error( "Join Session Error", @@ -401,7 +402,7 @@ class CoreClient: except grpc.RpcError as e: self.app.show_grpc_exception("Edit Node Error", e) - def get_links(self, definition: bool = False) -> List[Link]: + def get_links(self, definition: bool = False) -> list[Link]: if not definition: self.ifaces_manager.set_macs([x.link for x in self.links.values()]) links = [] @@ -419,7 +420,7 @@ class CoreClient: links.append(edge.asymmetric_link) return links - def start_session(self, definition: bool = False) -> Tuple[bool, List[str]]: + def start_session(self, definition: bool = False) -> tuple[bool, list[str]]: self.session.links = self.get_links(definition) self.session.metadata = self.get_metadata() self.session.servers.clear() @@ -461,7 +462,7 @@ class CoreClient: self.mobility_players[node.id] = mobility_player mobility_player.show() - def get_metadata(self) -> Dict[str, str]: + def get_metadata(self) -> dict[str, str]: # create canvas data canvas_config = self.app.manager.get_metadata() canvas_config = json.dumps(canvas_config) @@ -652,7 +653,7 @@ class CoreClient: self.session.nodes[node.id] = node return node - def deleted_canvas_nodes(self, canvas_nodes: List[CanvasNode]) -> None: + def deleted_canvas_nodes(self, canvas_nodes: list[CanvasNode]) -> None: """ remove the nodes selected by the user and anything related to that node such as link, configurations, interfaces @@ -680,7 +681,7 @@ class CoreClient: dst_iface_id = edge.link.iface2.id self.iface_to_edge[(dst_node.id, dst_iface_id)] = edge - def get_wlan_configs(self) -> List[Tuple[int, Dict[str, str]]]: + def get_wlan_configs(self) -> list[tuple[int, dict[str, str]]]: configs = [] for node in self.session.nodes.values(): if node.type != NodeType.WIRELESS_LAN: @@ -691,7 +692,7 @@ class CoreClient: configs.append((node.id, config)) return configs - def get_mobility_configs(self) -> List[Tuple[int, Dict[str, str]]]: + def get_mobility_configs(self) -> list[tuple[int, dict[str, str]]]: configs = [] for node in self.session.nodes.values(): if not nutils.is_mobility(node): @@ -702,7 +703,7 @@ class CoreClient: configs.append((node.id, config)) return configs - def get_emane_model_configs(self) -> List[EmaneModelConfig]: + def get_emane_model_configs(self) -> list[EmaneModelConfig]: configs = [] for node in self.session.nodes.values(): for key, config in node.emane_model_configs.items(): @@ -716,7 +717,7 @@ class CoreClient: configs.append(config) return configs - def get_service_configs(self) -> List[ServiceConfig]: + def get_service_configs(self) -> list[ServiceConfig]: configs = [] for node in self.session.nodes.values(): if not nutils.is_container(node): @@ -736,7 +737,7 @@ class CoreClient: configs.append(config) return configs - def get_service_file_configs(self) -> List[ServiceFileConfig]: + def get_service_file_configs(self) -> list[ServiceFileConfig]: configs = [] for node in self.session.nodes.values(): if not nutils.is_container(node): @@ -749,12 +750,12 @@ class CoreClient: configs.append(config) return configs - def get_config_service_rendered(self, node_id: int, name: str) -> Dict[str, str]: + def get_config_service_rendered(self, node_id: int, name: str) -> dict[str, str]: return self.client.get_config_service_rendered(self.session.id, node_id, name) def get_config_service_configs_proto( self, - ) -> List[configservices_pb2.ConfigServiceConfig]: + ) -> list[configservices_pb2.ConfigServiceConfig]: config_service_protos = [] for node in self.session.nodes.values(): if not nutils.is_container(node): @@ -776,7 +777,7 @@ class CoreClient: _, output = self.client.node_command(self.session.id, node_id, self.observer) return output - def get_wlan_config(self, node_id: int) -> Dict[str, ConfigOption]: + def get_wlan_config(self, node_id: int) -> dict[str, ConfigOption]: config = self.client.get_wlan_config(self.session.id, node_id) logger.debug( "get wlan configuration from node %s, result configuration: %s", @@ -785,10 +786,10 @@ class CoreClient: ) return config - def get_wireless_config(self, node_id: int) -> Dict[str, ConfigOption]: + def get_wireless_config(self, node_id: int) -> dict[str, ConfigOption]: return self.client.get_wireless_config(self.session.id, node_id) - def get_mobility_config(self, node_id: int) -> Dict[str, ConfigOption]: + def get_mobility_config(self, node_id: int) -> dict[str, ConfigOption]: config = self.client.get_mobility_config(self.session.id, node_id) logger.debug( "get mobility config from node %s, result configuration: %s", @@ -799,7 +800,7 @@ class CoreClient: def get_emane_model_config( self, node_id: int, model: str, iface_id: int = None - ) -> Dict[str, ConfigOption]: + ) -> dict[str, ConfigOption]: if iface_id is None: iface_id = -1 config = self.client.get_emane_model_config( diff --git a/daemon/core/gui/dialogs/alerts.py b/daemon/core/gui/dialogs/alerts.py index 9e430214..b13f0797 100644 --- a/daemon/core/gui/dialogs/alerts.py +++ b/daemon/core/gui/dialogs/alerts.py @@ -3,7 +3,7 @@ check engine light """ import tkinter as tk from tkinter import ttk -from typing import TYPE_CHECKING, Dict, Optional +from typing import TYPE_CHECKING, Optional from core.api.grpc.wrappers import ExceptionEvent, ExceptionLevel from core.gui.dialogs.dialog import Dialog @@ -19,7 +19,7 @@ class AlertsDialog(Dialog): super().__init__(app, "Alerts") self.tree: Optional[ttk.Treeview] = None self.codetext: Optional[CodeText] = None - self.alarm_map: Dict[int, ExceptionEvent] = {} + self.alarm_map: dict[int, ExceptionEvent] = {} self.draw() def draw(self) -> None: diff --git a/daemon/core/gui/dialogs/canvaswallpaper.py b/daemon/core/gui/dialogs/canvaswallpaper.py index 0ef294c7..5b0f27b3 100644 --- a/daemon/core/gui/dialogs/canvaswallpaper.py +++ b/daemon/core/gui/dialogs/canvaswallpaper.py @@ -4,7 +4,7 @@ set wallpaper import logging import tkinter as tk from tkinter import ttk -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Optional from core.gui import images from core.gui.appconfig import BACKGROUNDS_PATH @@ -32,7 +32,7 @@ class CanvasWallpaperDialog(Dialog): ) self.filename: tk.StringVar = tk.StringVar(value=self.canvas.wallpaper_file) self.image_label: Optional[ttk.Label] = None - self.options: List[ttk.Radiobutton] = [] + self.options: list[ttk.Radiobutton] = [] self.draw() def draw(self) -> None: diff --git a/daemon/core/gui/dialogs/colorpicker.py b/daemon/core/gui/dialogs/colorpicker.py index a2f131d4..2f1c629f 100644 --- a/daemon/core/gui/dialogs/colorpicker.py +++ b/daemon/core/gui/dialogs/colorpicker.py @@ -3,7 +3,7 @@ custom color picker """ import tkinter as tk from tkinter import ttk -from typing import TYPE_CHECKING, Optional, Tuple +from typing import TYPE_CHECKING, Optional from core.gui import validation from core.gui.dialogs.dialog import Dialog @@ -66,7 +66,9 @@ class ColorPickerDialog(Dialog): ) scale.grid(row=0, column=2, sticky=tk.EW, padx=PADX) self.red_label = ttk.Label( - frame, background="#%02x%02x%02x" % (self.red.get(), 0, 0), width=5 + frame, + background="#{:02x}{:02x}{:02x}".format(self.red.get(), 0, 0), + width=5, ) self.red_label.grid(row=0, column=3, sticky=tk.EW) @@ -89,7 +91,9 @@ class ColorPickerDialog(Dialog): ) scale.grid(row=0, column=2, sticky=tk.EW, padx=PADX) self.green_label = ttk.Label( - frame, background="#%02x%02x%02x" % (0, self.green.get(), 0), width=5 + frame, + background="#{:02x}{:02x}{:02x}".format(0, self.green.get(), 0), + width=5, ) self.green_label.grid(row=0, column=3, sticky=tk.EW) @@ -112,7 +116,9 @@ class ColorPickerDialog(Dialog): ) scale.grid(row=0, column=2, sticky=tk.EW, padx=PADX) self.blue_label = ttk.Label( - frame, background="#%02x%02x%02x" % (0, 0, self.blue.get()), width=5 + frame, + background="#{:02x}{:02x}{:02x}".format(0, 0, self.blue.get()), + width=5, ) self.blue_label.grid(row=0, column=3, sticky=tk.EW) @@ -157,7 +163,7 @@ class ColorPickerDialog(Dialog): red = self.red_entry.get() blue = self.blue_entry.get() green = self.green_entry.get() - return "#%02x%02x%02x" % (int(red), int(green), int(blue)) + return "#{:02x}{:02x}{:02x}".format(int(red), int(green), int(blue)) def current_focus(self, focus: str) -> None: self.focus = focus @@ -169,7 +175,7 @@ class ColorPickerDialog(Dialog): green = self.green_entry.get() self.set_scale(red, green, blue) if red and blue and green: - hex_code = "#%02x%02x%02x" % (int(red), int(green), int(blue)) + hex_code = "#{:02x}{:02x}{:02x}".format(int(red), int(green), int(blue)) self.hex.set(hex_code) self.display.config(background=hex_code) self.set_label(red, green, blue) @@ -200,11 +206,17 @@ class ColorPickerDialog(Dialog): self.blue.set(blue) def set_label(self, red: str, green: str, blue: str) -> None: - self.red_label.configure(background="#%02x%02x%02x" % (int(red), 0, 0)) - self.green_label.configure(background="#%02x%02x%02x" % (0, int(green), 0)) - self.blue_label.configure(background="#%02x%02x%02x" % (0, 0, int(blue))) + self.red_label.configure( + background="#{:02x}{:02x}{:02x}".format(int(red), 0, 0) + ) + self.green_label.configure( + background="#{:02x}{:02x}{:02x}".format(0, int(green), 0) + ) + self.blue_label.configure( + background="#{:02x}{:02x}{:02x}".format(0, 0, int(blue)) + ) - def get_rgb(self, hex_code: str) -> Tuple[int, int, int]: + def get_rgb(self, hex_code: str) -> tuple[int, int, int]: """ convert a valid hex code to RGB values """ diff --git a/daemon/core/gui/dialogs/configserviceconfig.py b/daemon/core/gui/dialogs/configserviceconfig.py index 62c0bfc5..e252ec5e 100644 --- a/daemon/core/gui/dialogs/configserviceconfig.py +++ b/daemon/core/gui/dialogs/configserviceconfig.py @@ -4,7 +4,7 @@ Service configuration dialog import logging import tkinter as tk from tkinter import ttk -from typing import TYPE_CHECKING, Dict, List, Optional, Set +from typing import TYPE_CHECKING, Optional import grpc @@ -35,22 +35,22 @@ class ConfigServiceConfigDialog(Dialog): self.node: Node = node self.service_name: str = service_name self.radiovar: tk.IntVar = tk.IntVar(value=2) - self.directories: List[str] = [] - self.templates: List[str] = [] - self.rendered: Dict[str, str] = {} - self.dependencies: List[str] = [] - self.executables: List[str] = [] - self.startup_commands: List[str] = [] - self.validation_commands: List[str] = [] - self.shutdown_commands: List[str] = [] - self.default_startup: List[str] = [] - self.default_validate: List[str] = [] - self.default_shutdown: List[str] = [] + self.directories: list[str] = [] + self.templates: list[str] = [] + self.rendered: dict[str, str] = {} + self.dependencies: list[str] = [] + self.executables: list[str] = [] + self.startup_commands: list[str] = [] + self.validation_commands: list[str] = [] + self.shutdown_commands: list[str] = [] + self.default_startup: list[str] = [] + self.default_validate: list[str] = [] + self.default_shutdown: list[str] = [] self.validation_mode: Optional[ServiceValidationMode] = None self.validation_time: Optional[int] = None self.validation_period: tk.DoubleVar = tk.DoubleVar() - self.modes: List[str] = [] - self.mode_configs: Dict[str, Dict[str, str]] = {} + self.modes: list[str] = [] + self.mode_configs: dict[str, dict[str, str]] = {} self.notebook: Optional[ttk.Notebook] = None self.templates_combobox: Optional[ttk.Combobox] = None self.modes_combobox: Optional[ttk.Combobox] = None @@ -62,12 +62,12 @@ class ConfigServiceConfigDialog(Dialog): self.template_text: Optional[CodeText] = None self.rendered_text: Optional[CodeText] = None self.validation_period_entry: Optional[ttk.Entry] = None - self.original_service_files: Dict[str, str] = {} - self.temp_service_files: Dict[str, str] = {} - self.modified_files: Set[str] = set() + self.original_service_files: dict[str, str] = {} + self.temp_service_files: dict[str, str] = {} + self.modified_files: set[str] = set() self.config_frame: Optional[ConfigFrame] = None - self.default_config: Dict[str, str] = {} - self.config: Dict[str, ConfigOption] = {} + self.default_config: dict[str, str] = {} + self.config: dict[str, ConfigOption] = {} self.has_error: bool = False self.load() if not self.has_error: @@ -405,7 +405,7 @@ class ConfigServiceConfigDialog(Dialog): pass def append_commands( - self, commands: List[str], listbox: tk.Listbox, to_add: List[str] + self, commands: list[str], listbox: tk.Listbox, to_add: list[str] ) -> None: for cmd in to_add: commands.append(cmd) diff --git a/daemon/core/gui/dialogs/copyserviceconfig.py b/daemon/core/gui/dialogs/copyserviceconfig.py index b205e175..6b2f4927 100644 --- a/daemon/core/gui/dialogs/copyserviceconfig.py +++ b/daemon/core/gui/dialogs/copyserviceconfig.py @@ -4,7 +4,7 @@ copy service config dialog import tkinter as tk from tkinter import ttk -from typing import TYPE_CHECKING, Dict, Optional +from typing import TYPE_CHECKING, Optional from core.gui.dialogs.dialog import Dialog from core.gui.themes import PADX, PADY @@ -29,7 +29,7 @@ class CopyServiceConfigDialog(Dialog): self.service: str = service self.file_name: str = file_name self.listbox: Optional[tk.Listbox] = None - self.nodes: Dict[str, int] = {} + self.nodes: dict[str, int] = {} self.draw() def draw(self) -> None: diff --git a/daemon/core/gui/dialogs/customnodes.py b/daemon/core/gui/dialogs/customnodes.py index d6dac44a..ea4421e8 100644 --- a/daemon/core/gui/dialogs/customnodes.py +++ b/daemon/core/gui/dialogs/customnodes.py @@ -2,7 +2,7 @@ import logging import tkinter as tk from pathlib import Path from tkinter import ttk -from typing import TYPE_CHECKING, Optional, Set +from typing import TYPE_CHECKING, Optional from PIL.ImageTk import PhotoImage @@ -21,13 +21,13 @@ if TYPE_CHECKING: class ServicesSelectDialog(Dialog): def __init__( - self, master: tk.BaseWidget, app: "Application", current_services: Set[str] + self, master: tk.BaseWidget, app: "Application", current_services: set[str] ) -> None: super().__init__(app, "Node Config Services", master=master) self.groups: Optional[ListboxScroll] = None self.services: Optional[CheckboxList] = None self.current: Optional[ListboxScroll] = None - self.current_services: Set[str] = current_services + self.current_services: set[str] = current_services self.draw() def draw(self) -> None: @@ -114,7 +114,7 @@ class CustomNodesDialog(Dialog): self.image_button: Optional[ttk.Button] = None self.image: Optional[PhotoImage] = None self.image_file: Optional[str] = None - self.services: Set[str] = set() + self.services: set[str] = set() self.selected: Optional[str] = None self.selected_index: Optional[int] = None self.draw() diff --git a/daemon/core/gui/dialogs/emaneconfig.py b/daemon/core/gui/dialogs/emaneconfig.py index a39720d8..00eda694 100644 --- a/daemon/core/gui/dialogs/emaneconfig.py +++ b/daemon/core/gui/dialogs/emaneconfig.py @@ -4,7 +4,7 @@ emane configuration import tkinter as tk import webbrowser from tkinter import ttk -from typing import TYPE_CHECKING, Dict, List, Optional +from typing import TYPE_CHECKING, Optional import grpc @@ -43,7 +43,7 @@ class EmaneModelDialog(Dialog): config = self.app.core.get_emane_model_config( self.node.id, self.model, self.iface_id ) - self.config: Dict[str, ConfigOption] = config + self.config: dict[str, ConfigOption] = config self.draw() except grpc.RpcError as e: self.app.show_grpc_exception("Get EMANE Config Error", e) @@ -82,7 +82,7 @@ class EmaneConfigDialog(Dialog): self.node: Node = node self.radiovar: tk.IntVar = tk.IntVar() self.radiovar.set(1) - self.emane_models: List[str] = [ + self.emane_models: list[str] = [ x.split("_")[1] for x in self.app.core.emane_models ] model = self.node.emane.split("_")[1] diff --git a/daemon/core/gui/dialogs/ipdialog.py b/daemon/core/gui/dialogs/ipdialog.py index 68b5ab36..99388548 100644 --- a/daemon/core/gui/dialogs/ipdialog.py +++ b/daemon/core/gui/dialogs/ipdialog.py @@ -1,6 +1,6 @@ import tkinter as tk from tkinter import messagebox, ttk -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Optional import netaddr @@ -17,8 +17,8 @@ class IpConfigDialog(Dialog): super().__init__(app, "IP Configuration") self.ip4: str = self.app.guiconfig.ips.ip4 self.ip6: str = self.app.guiconfig.ips.ip6 - self.ip4s: List[str] = self.app.guiconfig.ips.ip4s - self.ip6s: List[str] = self.app.guiconfig.ips.ip6s + self.ip4s: list[str] = self.app.guiconfig.ips.ip4s + self.ip6s: list[str] = self.app.guiconfig.ips.ip6s self.ip4_entry: Optional[ttk.Entry] = None self.ip4_listbox: Optional[ListboxScroll] = None self.ip6_entry: Optional[ttk.Entry] = None diff --git a/daemon/core/gui/dialogs/mobilityconfig.py b/daemon/core/gui/dialogs/mobilityconfig.py index b22c5fef..6a2991aa 100644 --- a/daemon/core/gui/dialogs/mobilityconfig.py +++ b/daemon/core/gui/dialogs/mobilityconfig.py @@ -3,7 +3,7 @@ mobility configuration """ import tkinter as tk from tkinter import ttk -from typing import TYPE_CHECKING, Dict, Optional +from typing import TYPE_CHECKING, Optional import grpc @@ -26,7 +26,7 @@ class MobilityConfigDialog(Dialog): config = self.node.mobility_config if not config: config = self.app.core.get_mobility_config(self.node.id) - self.config: Dict[str, ConfigOption] = config + self.config: dict[str, ConfigOption] = config self.draw() except grpc.RpcError as e: self.app.show_grpc_exception("Get Mobility Config Error", e) diff --git a/daemon/core/gui/dialogs/nodeconfig.py b/daemon/core/gui/dialogs/nodeconfig.py index c9ca67f5..162696d4 100644 --- a/daemon/core/gui/dialogs/nodeconfig.py +++ b/daemon/core/gui/dialogs/nodeconfig.py @@ -2,7 +2,7 @@ import logging import tkinter as tk from functools import partial from tkinter import messagebox, ttk -from typing import TYPE_CHECKING, Dict, Optional +from typing import TYPE_CHECKING, Optional import netaddr from PIL.ImageTk import PhotoImage @@ -190,7 +190,7 @@ class NodeConfigDialog(Dialog): if self.node.server: server = self.node.server self.server: tk.StringVar = tk.StringVar(value=server) - self.ifaces: Dict[int, InterfaceData] = {} + self.ifaces: dict[int, InterfaceData] = {} self.draw() def draw(self) -> None: diff --git a/daemon/core/gui/dialogs/nodeconfigservice.py b/daemon/core/gui/dialogs/nodeconfigservice.py index cddbdb03..ce718080 100644 --- a/daemon/core/gui/dialogs/nodeconfigservice.py +++ b/daemon/core/gui/dialogs/nodeconfigservice.py @@ -4,7 +4,7 @@ core node services import logging import tkinter as tk from tkinter import messagebox, ttk -from typing import TYPE_CHECKING, Optional, Set +from typing import TYPE_CHECKING, Optional from core.api.grpc.wrappers import Node from core.gui.dialogs.configserviceconfig import ConfigServiceConfigDialog @@ -20,7 +20,7 @@ if TYPE_CHECKING: class NodeConfigServiceDialog(Dialog): def __init__( - self, app: "Application", node: Node, services: Set[str] = None + self, app: "Application", node: Node, services: set[str] = None ) -> None: title = f"{node.name} Config Services" super().__init__(app, title) @@ -30,7 +30,7 @@ class NodeConfigServiceDialog(Dialog): self.current: Optional[ListboxScroll] = None if services is None: services = set(node.config_services) - self.current_services: Set[str] = services + self.current_services: set[str] = services self.protocol("WM_DELETE_WINDOW", self.click_cancel) self.draw() diff --git a/daemon/core/gui/dialogs/nodeservice.py b/daemon/core/gui/dialogs/nodeservice.py index 431d5c3d..66e83fa4 100644 --- a/daemon/core/gui/dialogs/nodeservice.py +++ b/daemon/core/gui/dialogs/nodeservice.py @@ -3,7 +3,7 @@ core node services """ import tkinter as tk from tkinter import messagebox, ttk -from typing import TYPE_CHECKING, Optional, Set +from typing import TYPE_CHECKING, Optional from core.api.grpc.wrappers import Node from core.gui.dialogs.dialog import Dialog @@ -24,7 +24,7 @@ class NodeServiceDialog(Dialog): self.services: Optional[CheckboxList] = None self.current: Optional[ListboxScroll] = None services = set(node.services) - self.current_services: Set[str] = services + self.current_services: set[str] = services self.protocol("WM_DELETE_WINDOW", self.click_cancel) self.draw() diff --git a/daemon/core/gui/dialogs/runtool.py b/daemon/core/gui/dialogs/runtool.py index 494020e3..75789893 100644 --- a/daemon/core/gui/dialogs/runtool.py +++ b/daemon/core/gui/dialogs/runtool.py @@ -1,6 +1,6 @@ import tkinter as tk from tkinter import ttk -from typing import TYPE_CHECKING, Dict, Optional +from typing import TYPE_CHECKING, Optional from core.gui import nodeutils as nutils from core.gui.dialogs.dialog import Dialog @@ -17,7 +17,7 @@ class RunToolDialog(Dialog): self.cmd: tk.StringVar = tk.StringVar(value="ps ax") self.result: Optional[CodeText] = None self.node_list: Optional[ListboxScroll] = None - self.executable_nodes: Dict[str, int] = {} + self.executable_nodes: dict[str, int] = {} self.store_nodes() self.draw() diff --git a/daemon/core/gui/dialogs/serviceconfig.py b/daemon/core/gui/dialogs/serviceconfig.py index 6f6b0d24..5eec7faf 100644 --- a/daemon/core/gui/dialogs/serviceconfig.py +++ b/daemon/core/gui/dialogs/serviceconfig.py @@ -2,7 +2,7 @@ import logging import tkinter as tk from pathlib import Path from tkinter import filedialog, messagebox, ttk -from typing import TYPE_CHECKING, Dict, List, Optional, Set, Tuple +from typing import TYPE_CHECKING, Optional import grpc from PIL.ImageTk import PhotoImage @@ -35,21 +35,21 @@ class ServiceConfigDialog(Dialog): self.service_name: str = service_name self.radiovar: tk.IntVar = tk.IntVar(value=2) self.metadata: str = "" - self.filenames: List[str] = [] - self.dependencies: List[str] = [] - self.executables: List[str] = [] - self.startup_commands: List[str] = [] - self.validation_commands: List[str] = [] - self.shutdown_commands: List[str] = [] - self.default_startup: List[str] = [] - self.default_validate: List[str] = [] - self.default_shutdown: List[str] = [] + self.filenames: list[str] = [] + self.dependencies: list[str] = [] + self.executables: list[str] = [] + self.startup_commands: list[str] = [] + self.validation_commands: list[str] = [] + self.shutdown_commands: list[str] = [] + self.default_startup: list[str] = [] + self.default_validate: list[str] = [] + self.default_shutdown: list[str] = [] self.validation_mode: Optional[ServiceValidationMode] = None self.validation_time: Optional[int] = None self.validation_period: Optional[float] = None self.directory_entry: Optional[ttk.Entry] = None - self.default_directories: List[str] = [] - self.temp_directories: List[str] = [] + self.default_directories: list[str] = [] + self.temp_directories: list[str] = [] self.documentnew_img: PhotoImage = self.app.get_enum_icon( ImageEnum.DOCUMENTNEW, width=ICON_SIZE ) @@ -67,10 +67,10 @@ class ServiceConfigDialog(Dialog): self.validation_mode_entry: Optional[ttk.Entry] = None self.service_file_data: Optional[CodeText] = None self.validation_period_entry: Optional[ttk.Entry] = None - self.original_service_files: Dict[str, str] = {} + self.original_service_files: dict[str, str] = {} self.default_config: Optional[NodeServiceData] = None - self.temp_service_files: Dict[str, str] = {} - self.modified_files: Set[str] = set() + self.temp_service_files: dict[str, str] = {} + self.modified_files: set[str] = set() self.has_error: bool = False self.load() if not self.has_error: @@ -558,13 +558,13 @@ class ServiceConfigDialog(Dialog): @classmethod def append_commands( - cls, commands: List[str], listbox: tk.Listbox, to_add: List[str] + cls, commands: list[str], listbox: tk.Listbox, to_add: list[str] ) -> None: for cmd in to_add: commands.append(cmd) listbox.insert(tk.END, cmd) - def get_commands(self) -> Tuple[List[str], List[str], List[str]]: + def get_commands(self) -> tuple[list[str], list[str], list[str]]: startup = self.startup_commands_listbox.get(0, "end") shutdown = self.shutdown_commands_listbox.get(0, "end") validate = self.validate_commands_listbox.get(0, "end") diff --git a/daemon/core/gui/dialogs/sessions.py b/daemon/core/gui/dialogs/sessions.py index deca7404..3ca4fa63 100644 --- a/daemon/core/gui/dialogs/sessions.py +++ b/daemon/core/gui/dialogs/sessions.py @@ -1,7 +1,7 @@ import logging import tkinter as tk from tkinter import messagebox, ttk -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Optional import grpc @@ -30,7 +30,7 @@ class SessionsDialog(Dialog): self.protocol("WM_DELETE_WINDOW", self.on_closing) self.draw() - def get_sessions(self) -> List[SessionSummary]: + def get_sessions(self) -> list[SessionSummary]: try: sessions = self.app.core.client.get_sessions() logger.info("sessions: %s", sessions) diff --git a/daemon/core/gui/dialogs/shapemod.py b/daemon/core/gui/dialogs/shapemod.py index d0e200ee..db19ff1a 100644 --- a/daemon/core/gui/dialogs/shapemod.py +++ b/daemon/core/gui/dialogs/shapemod.py @@ -3,7 +3,7 @@ shape input dialog """ import tkinter as tk from tkinter import font, ttk -from typing import TYPE_CHECKING, List, Optional, Union +from typing import TYPE_CHECKING, Optional, Union from core.gui.dialogs.colorpicker import ColorPickerDialog from core.gui.dialogs.dialog import Dialog @@ -16,8 +16,8 @@ if TYPE_CHECKING: from core.gui.graph.graph import CanvasGraph from core.gui.graph.shape import Shape -FONT_SIZES: List[int] = [8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72] -BORDER_WIDTH: List[int] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +FONT_SIZES: list[int] = [8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72] +BORDER_WIDTH: list[int] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] class ShapeDialog(Dialog): @@ -168,7 +168,7 @@ class ShapeDialog(Dialog): self.add_text() self.destroy() - def make_font(self) -> List[Union[int, str]]: + def make_font(self) -> list[Union[int, str]]: """ create font for text or shape label """ diff --git a/daemon/core/gui/dialogs/wirelessconfig.py b/daemon/core/gui/dialogs/wirelessconfig.py index 97e37b5f..b04fbd2c 100644 --- a/daemon/core/gui/dialogs/wirelessconfig.py +++ b/daemon/core/gui/dialogs/wirelessconfig.py @@ -1,6 +1,6 @@ import tkinter as tk from tkinter import ttk -from typing import TYPE_CHECKING, Dict, Optional +from typing import TYPE_CHECKING, Optional import grpc @@ -19,12 +19,12 @@ class WirelessConfigDialog(Dialog): super().__init__(app, f"Wireless Configuration - {canvas_node.core_node.name}") self.node: Node = canvas_node.core_node self.config_frame: Optional[ConfigFrame] = None - self.config: Dict[str, ConfigOption] = {} + self.config: dict[str, ConfigOption] = {} try: config = self.node.wireless_config if not config: config = self.app.core.get_wireless_config(self.node.id) - self.config: Dict[str, ConfigOption] = config + self.config: dict[str, ConfigOption] = config self.draw() except grpc.RpcError as e: self.app.show_grpc_exception("Wireless Config Error", e) diff --git a/daemon/core/gui/dialogs/wlanconfig.py b/daemon/core/gui/dialogs/wlanconfig.py index 237ca8a5..c382d3c8 100644 --- a/daemon/core/gui/dialogs/wlanconfig.py +++ b/daemon/core/gui/dialogs/wlanconfig.py @@ -1,6 +1,6 @@ import tkinter as tk from tkinter import ttk -from typing import TYPE_CHECKING, Dict, Optional +from typing import TYPE_CHECKING, Optional import grpc @@ -27,13 +27,13 @@ class WlanConfigDialog(Dialog): self.config_frame: Optional[ConfigFrame] = None self.range_entry: Optional[ttk.Entry] = None self.has_error: bool = False - self.ranges: Dict[int, int] = {} + self.ranges: dict[int, int] = {} self.positive_int: int = self.app.master.register(self.validate_and_update) try: config = self.node.wlan_config if not config: config = self.app.core.get_wlan_config(self.node.id) - self.config: Dict[str, ConfigOption] = config + self.config: dict[str, ConfigOption] = config self.init_draw_range() self.draw() except grpc.RpcError as e: diff --git a/daemon/core/gui/graph/edges.py b/daemon/core/gui/graph/edges.py index 0e56781d..e5a4c97b 100644 --- a/daemon/core/gui/graph/edges.py +++ b/daemon/core/gui/graph/edges.py @@ -2,7 +2,7 @@ import functools import logging import math import tkinter as tk -from typing import TYPE_CHECKING, Optional, Tuple, Union +from typing import TYPE_CHECKING, Optional, Union from core.api.grpc.wrappers import Interface, Link from core.gui import nodeutils, themes @@ -54,7 +54,7 @@ def create_edge_token(link: Link) -> str: def node_label_positions( src_x: int, src_y: int, dst_x: int, dst_y: int -) -> Tuple[Tuple[float, float], Tuple[float, float]]: +) -> tuple[tuple[float, float], tuple[float, float]]: v_x, v_y = dst_x - src_x, dst_y - src_y v_len = math.sqrt(v_x**2 + v_y**2) if v_len == 0: @@ -128,8 +128,8 @@ class Edge: return self.width * self.app.app_scale def _get_arcpoint( - self, src_pos: Tuple[float, float], dst_pos: Tuple[float, float] - ) -> Tuple[float, float]: + self, src_pos: tuple[float, float], dst_pos: tuple[float, float] + ) -> tuple[float, float]: src_x, src_y = src_pos dst_x, dst_y = dst_pos mp_x = (src_x + dst_x) / 2 @@ -317,7 +317,7 @@ class Edge: if self.dst_label2: self.dst.canvas.itemconfig(self.dst_label2, text=text) - def drawing(self, pos: Tuple[float, float]) -> None: + def drawing(self, pos: tuple[float, float]) -> None: src_x, src_y, _, _, _, _ = self.src.canvas.coords(self.id) src_pos = src_x, src_y self.moved(src_pos, pos) @@ -368,7 +368,7 @@ class Edge: dst_pos = dst_x, dst_y self.moved(self.src.position(), dst_pos) - def moved(self, src_pos: Tuple[float, float], dst_pos: Tuple[float, float]) -> None: + def moved(self, src_pos: tuple[float, float], dst_pos: tuple[float, float]) -> None: arc_pos = self._get_arcpoint(src_pos, dst_pos) self.src.canvas.coords(self.id, *src_pos, *arc_pos, *dst_pos) if self.middle_label: @@ -381,7 +381,7 @@ class Edge: self.src.canvas.coords(self.dst_label, *dst_pos) def moved2( - self, src_pos: Tuple[float, float], dst_pos: Tuple[float, float] + self, src_pos: tuple[float, float], dst_pos: tuple[float, float] ) -> None: arc_pos = self._get_arcpoint(src_pos, dst_pos) self.dst.canvas.coords(self.id2, *src_pos, *arc_pos, *dst_pos) @@ -568,7 +568,7 @@ class CanvasEdge(Edge): label += f"{iface.ip6}/{iface.ip6_mask}" return label - def create_node_labels(self) -> Tuple[str, str]: + def create_node_labels(self) -> tuple[str, str]: label1 = None if self.link.iface1: label1 = self.iface_label(self.link.iface1) diff --git a/daemon/core/gui/graph/graph.py b/daemon/core/gui/graph/graph.py index e3225a4d..1a701239 100644 --- a/daemon/core/gui/graph/graph.py +++ b/daemon/core/gui/graph/graph.py @@ -2,7 +2,7 @@ import logging import tkinter as tk from copy import deepcopy from pathlib import Path -from typing import TYPE_CHECKING, Any, Dict, List, Optional, Set, Tuple +from typing import TYPE_CHECKING, Any, Optional from PIL import Image from PIL.ImageTk import PhotoImage @@ -27,8 +27,8 @@ if TYPE_CHECKING: ZOOM_IN: float = 1.1 ZOOM_OUT: float = 0.9 -MOVE_NODE_MODES: Set[GraphMode] = {GraphMode.NODE, GraphMode.SELECT} -MOVE_SHAPE_MODES: Set[GraphMode] = {GraphMode.ANNOTATION, GraphMode.SELECT} +MOVE_NODE_MODES: set[GraphMode] = {GraphMode.NODE, GraphMode.SELECT} +MOVE_SHAPE_MODES: set[GraphMode] = {GraphMode.ANNOTATION, GraphMode.SELECT} BACKGROUND_COLOR: str = "#cccccc" @@ -40,32 +40,32 @@ class CanvasGraph(tk.Canvas): manager: "CanvasManager", core: "CoreClient", _id: int, - dimensions: Tuple[int, int], + dimensions: tuple[int, int], ) -> None: super().__init__(master, highlightthickness=0, background=BACKGROUND_COLOR) self.id: int = _id self.app: "Application" = app self.manager: "CanvasManager" = manager self.core: "CoreClient" = core - self.selection: Dict[int, int] = {} + self.selection: dict[int, int] = {} self.select_box: Optional[Shape] = None self.selected: Optional[int] = None - self.nodes: Dict[int, CanvasNode] = {} - self.shadow_nodes: Dict[int, ShadowNode] = {} - self.shapes: Dict[int, Shape] = {} - self.shadow_core_nodes: Dict[int, ShadowNode] = {} + self.nodes: dict[int, CanvasNode] = {} + self.shadow_nodes: dict[int, ShadowNode] = {} + self.shapes: dict[int, Shape] = {} + self.shadow_core_nodes: dict[int, ShadowNode] = {} # map wireless/EMANE node to the set of MDRs connected to that node - self.wireless_network: Dict[int, Set[int]] = {} + self.wireless_network: dict[int, set[int]] = {} self.drawing_edge: Optional[CanvasEdge] = None self.rect: Optional[int] = None self.shape_drawing: bool = False - self.current_dimensions: Tuple[int, int] = dimensions + self.current_dimensions: tuple[int, int] = dimensions self.ratio: float = 1.0 - self.offset: Tuple[int, int] = (0, 0) - self.cursor: Tuple[int, int] = (0, 0) - self.to_copy: List[CanvasNode] = [] + self.offset: tuple[int, int] = (0, 0) + self.cursor: tuple[int, int] = (0, 0) + self.to_copy: list[CanvasNode] = [] # background related self.wallpaper_id: Optional[int] = None @@ -82,7 +82,7 @@ class CanvasGraph(tk.Canvas): self.draw_canvas() self.draw_grid() - def draw_canvas(self, dimensions: Tuple[int, int] = None) -> None: + def draw_canvas(self, dimensions: tuple[int, int] = None) -> None: if self.rect is not None: self.delete(self.rect) if not dimensions: @@ -126,23 +126,23 @@ class CanvasGraph(tk.Canvas): shadow_node = ShadowNode(self.app, self, node) return shadow_node - def get_actual_coords(self, x: float, y: float) -> Tuple[float, float]: + def get_actual_coords(self, x: float, y: float) -> tuple[float, float]: actual_x = (x - self.offset[0]) / self.ratio actual_y = (y - self.offset[1]) / self.ratio return actual_x, actual_y - def get_scaled_coords(self, x: float, y: float) -> Tuple[float, float]: + def get_scaled_coords(self, x: float, y: float) -> tuple[float, float]: scaled_x = (x * self.ratio) + self.offset[0] scaled_y = (y * self.ratio) + self.offset[1] return scaled_x, scaled_y - def inside_canvas(self, x: float, y: float) -> Tuple[bool, bool]: + def inside_canvas(self, x: float, y: float) -> tuple[bool, bool]: x1, y1, x2, y2 = self.bbox(self.rect) valid_x = x1 <= x <= x2 valid_y = y1 <= y <= y2 return valid_x and valid_y - def valid_position(self, x1: int, y1: int, x2: int, y2: int) -> Tuple[bool, bool]: + def valid_position(self, x1: int, y1: int, x2: int, y2: int) -> tuple[bool, bool]: valid_topleft = self.inside_canvas(x1, y1) valid_bottomright = self.inside_canvas(x2, y2) return valid_topleft and valid_bottomright @@ -161,7 +161,7 @@ class CanvasGraph(tk.Canvas): self.tag_lower(tags.GRIDLINE) self.tag_lower(self.rect) - def canvas_xy(self, event: tk.Event) -> Tuple[float, float]: + def canvas_xy(self, event: tk.Event) -> tuple[float, float]: """ Convert window coordinate to canvas coordinate """ @@ -516,7 +516,7 @@ class CanvasGraph(tk.Canvas): self.nodes[node.id] = node self.core.set_canvas_node(core_node, node) - def width_and_height(self) -> Tuple[int, int]: + def width_and_height(self) -> tuple[int, int]: """ retrieve canvas width and height in pixels """ @@ -601,7 +601,7 @@ class CanvasGraph(tk.Canvas): self.redraw_canvas((image.width(), image.height())) self.draw_wallpaper(image) - def redraw_canvas(self, dimensions: Tuple[int, int] = None) -> None: + def redraw_canvas(self, dimensions: tuple[int, int] = None) -> None: logger.debug("redrawing canvas to dimensions: %s", dimensions) # reset scale and move back to original position @@ -814,7 +814,7 @@ class CanvasGraph(tk.Canvas): for edge_id in self.find_withtag(tags.EDGE): self.itemconfig(edge_id, width=int(EDGE_WIDTH * self.app.app_scale)) - def get_metadata(self) -> Dict[str, Any]: + def get_metadata(self) -> dict[str, Any]: wallpaper_path = None if self.wallpaper_file: wallpaper = Path(self.wallpaper_file) @@ -830,7 +830,7 @@ class CanvasGraph(tk.Canvas): dimensions=self.current_dimensions, ) - def parse_metadata(self, config: Dict[str, Any]) -> None: + def parse_metadata(self, config: dict[str, Any]) -> None: fit_image = config.get("fit_image", False) self.adjust_to_dim.set(fit_image) wallpaper_style = config.get("wallpaper_style", 1) diff --git a/daemon/core/gui/graph/manager.py b/daemon/core/gui/graph/manager.py index dc0adca9..a0f60754 100644 --- a/daemon/core/gui/graph/manager.py +++ b/daemon/core/gui/graph/manager.py @@ -1,9 +1,10 @@ import json import logging import tkinter as tk +from collections.abc import ValuesView from copy import deepcopy from tkinter import BooleanVar, messagebox, ttk -from typing import TYPE_CHECKING, Any, Dict, Optional, Tuple, ValuesView +from typing import TYPE_CHECKING, Any, Optional from core.api.grpc.wrappers import Link, LinkType, Node, Session, ThroughputsEvent from core.gui import nodeutils as nutils @@ -78,14 +79,14 @@ class CanvasManager: self.mode: GraphMode = GraphMode.SELECT self.annotation_type: Optional[ShapeType] = None self.node_draw: Optional[NodeDraw] = None - self.canvases: Dict[int, CanvasGraph] = {} + self.canvases: dict[int, CanvasGraph] = {} # global edge management - self.edges: Dict[str, CanvasEdge] = {} - self.wireless_edges: Dict[str, CanvasWirelessEdge] = {} + self.edges: dict[str, CanvasEdge] = {} + self.wireless_edges: dict[str, CanvasWirelessEdge] = {} # global canvas settings - self.default_dimensions: Tuple[int, int] = ( + self.default_dimensions: tuple[int, int] = ( self.app.guiconfig.preferences.width, self.app.guiconfig.preferences.height, ) @@ -111,8 +112,8 @@ class CanvasManager: # widget self.notebook: Optional[ttk.Notebook] = None - self.canvas_ids: Dict[str, int] = {} - self.unique_ids: Dict[int, str] = {} + self.canvas_ids: dict[str, int] = {} + self.unique_ids: dict[int, str] = {} self.draw() self.setup_bindings() @@ -273,17 +274,17 @@ class CanvasManager: if not self.canvases: self.add_canvas() - def redraw_canvas(self, dimensions: Tuple[int, int]) -> None: + def redraw_canvas(self, dimensions: tuple[int, int]) -> None: canvas = self.current() canvas.redraw_canvas(dimensions) if canvas.wallpaper: canvas.redraw_wallpaper() - def get_metadata(self) -> Dict[str, Any]: + def get_metadata(self) -> dict[str, Any]: canvases = [x.get_metadata() for x in self.all()] return dict(gridlines=self.show_grid.get(), canvases=canvases) - def parse_metadata_canvas(self, metadata: Dict[str, Any]) -> None: + def parse_metadata_canvas(self, metadata: dict[str, Any]) -> None: # canvas setting canvas_config = metadata.get("canvas") logger.debug("canvas metadata: %s", canvas_config) @@ -303,7 +304,7 @@ class CanvasManager: canvas = self.get(canvas_id) canvas.parse_metadata(canvas_config) - def parse_metadata_shapes(self, metadata: Dict[str, Any]) -> None: + def parse_metadata_shapes(self, metadata: dict[str, Any]) -> None: # load saved shapes shapes_config = metadata.get("shapes") if not shapes_config: @@ -313,7 +314,7 @@ class CanvasManager: logger.debug("loading shape: %s", shape_config) Shape.from_metadata(self.app, shape_config) - def parse_metadata_edges(self, metadata: Dict[str, Any]) -> None: + def parse_metadata_edges(self, metadata: dict[str, Any]) -> None: # load edges config edges_config = metadata.get("edges") if not edges_config: @@ -330,7 +331,7 @@ class CanvasManager: else: logger.warning("invalid edge token to configure: %s", edge_token) - def parse_metadata_hidden(self, metadata: Dict[str, Any]) -> None: + def parse_metadata_hidden(self, metadata: dict[str, Any]) -> None: # read hidden nodes hidden_config = metadata.get("hidden") if not hidden_config: diff --git a/daemon/core/gui/graph/node.py b/daemon/core/gui/graph/node.py index b3d0aae9..0cfbf2e9 100644 --- a/daemon/core/gui/graph/node.py +++ b/daemon/core/gui/graph/node.py @@ -2,7 +2,7 @@ import functools import logging import tkinter as tk from pathlib import Path -from typing import TYPE_CHECKING, Dict, List, Optional, Set, Tuple +from typing import TYPE_CHECKING, Optional import grpc from PIL.ImageTk import PhotoImage @@ -62,17 +62,17 @@ class CanvasNode: state=self.app.manager.show_node_labels.state(), ) self.tooltip: CanvasTooltip = CanvasTooltip(self.canvas) - self.edges: Set[CanvasEdge] = set() - self.ifaces: Dict[int, Interface] = {} - self.wireless_edges: Set[CanvasWirelessEdge] = set() - self.antennas: List[int] = [] - self.antenna_images: Dict[int, PhotoImage] = {} + self.edges: set[CanvasEdge] = set() + self.ifaces: dict[int, Interface] = {} + self.wireless_edges: set[CanvasWirelessEdge] = set() + self.antennas: list[int] = [] + self.antenna_images: dict[int, PhotoImage] = {} self.hidden: bool = False self.setup_bindings() self.context: tk.Menu = tk.Menu(self.canvas) themes.style_menu(self.context) - def position(self) -> Tuple[int, int]: + def position(self) -> tuple[int, int]: return self.canvas.coords(self.id) def next_iface_id(self) -> int: @@ -543,7 +543,7 @@ class ShadowNode: self.canvas.shadow_nodes[self.id] = self self.canvas.shadow_core_nodes[self.node.core_node.id] = self - def position(self) -> Tuple[int, int]: + def position(self) -> tuple[int, int]: return self.canvas.coords(self.id) def should_delete(self) -> bool: diff --git a/daemon/core/gui/graph/shape.py b/daemon/core/gui/graph/shape.py index 7db18b5b..5f243fdf 100644 --- a/daemon/core/gui/graph/shape.py +++ b/daemon/core/gui/graph/shape.py @@ -1,5 +1,5 @@ import logging -from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from core.gui.dialogs.shapemod import ShapeDialog from core.gui.graph import tags @@ -72,7 +72,7 @@ class Shape: self.draw() @classmethod - def from_metadata(cls, app: "Application", config: Dict[str, Any]) -> None: + def from_metadata(cls, app: "Application", config: dict[str, Any]) -> None: shape_type = config["type"] try: shape_type = ShapeType(shape_type) @@ -144,7 +144,7 @@ class Shape: logger.error("unknown shape type: %s", self.shape_type) self.created = True - def get_font(self) -> List[Union[int, str]]: + def get_font(self) -> list[Union[int, str]]: font = [self.shape_data.font, self.shape_data.font_size] if self.shape_data.bold: font.append("bold") @@ -198,7 +198,7 @@ class Shape: self.canvas.delete(self.id) self.canvas.delete(self.text_id) - def metadata(self) -> Dict[str, Union[str, int, bool]]: + def metadata(self) -> dict[str, Union[str, int, bool]]: coords = self.canvas.coords(self.id) # update coords to actual positions if len(coords) == 4: diff --git a/daemon/core/gui/graph/shapeutils.py b/daemon/core/gui/graph/shapeutils.py index 2b62a46c..ab82ef76 100644 --- a/daemon/core/gui/graph/shapeutils.py +++ b/daemon/core/gui/graph/shapeutils.py @@ -1,5 +1,4 @@ import enum -from typing import Set class ShapeType(enum.Enum): @@ -9,7 +8,7 @@ class ShapeType(enum.Enum): TEXT = "text" -SHAPES: Set[ShapeType] = {ShapeType.OVAL, ShapeType.RECTANGLE} +SHAPES: set[ShapeType] = {ShapeType.OVAL, ShapeType.RECTANGLE} def is_draw_shape(shape_type: ShapeType) -> bool: diff --git a/daemon/core/gui/graph/tags.py b/daemon/core/gui/graph/tags.py index 803b969e..cb1ffc15 100644 --- a/daemon/core/gui/graph/tags.py +++ b/daemon/core/gui/graph/tags.py @@ -1,5 +1,3 @@ -from typing import List - ANNOTATION: str = "annotation" GRIDLINE: str = "gridline" SHAPE: str = "shape" @@ -15,7 +13,7 @@ WALLPAPER: str = "wallpaper" SELECTION: str = "selectednodes" MARKER: str = "marker" HIDDEN: str = "hidden" -ORGANIZE_TAGS: List[str] = [ +ORGANIZE_TAGS: list[str] = [ WALLPAPER, GRIDLINE, SHAPE, @@ -29,7 +27,7 @@ ORGANIZE_TAGS: List[str] = [ SELECTION, MARKER, ] -RESET_TAGS: List[str] = [ +RESET_TAGS: list[str] = [ EDGE, NODE, NODE_LABEL, diff --git a/daemon/core/gui/graph/tooltip.py b/daemon/core/gui/graph/tooltip.py index 6e4aa62f..37e7ac5d 100644 --- a/daemon/core/gui/graph/tooltip.py +++ b/daemon/core/gui/graph/tooltip.py @@ -1,6 +1,6 @@ import tkinter as tk from tkinter import ttk -from typing import TYPE_CHECKING, Optional, Tuple +from typing import TYPE_CHECKING, Optional from core.gui.themes import Styles @@ -27,7 +27,7 @@ class CanvasTooltip: self, canvas: "CanvasGraph", *, - pad: Tuple[int, int, int, int] = (5, 3, 5, 3), + pad: tuple[int, int, int, int] = (5, 3, 5, 3), waittime: int = 400, wraplength: int = 600 ) -> None: @@ -37,7 +37,7 @@ class CanvasTooltip: self.wraplength: int = wraplength self.canvas: "CanvasGraph" = canvas self.text: tk.StringVar = tk.StringVar() - self.pad: Tuple[int, int, int, int] = pad + self.pad: tuple[int, int, int, int] = pad self.id: Optional[str] = None self.tw: Optional[tk.Toplevel] = None @@ -63,8 +63,8 @@ class CanvasTooltip: canvas: "CanvasGraph", label: ttk.Label, *, - tip_delta: Tuple[int, int] = (10, 5), - pad: Tuple[int, int, int, int] = (5, 3, 5, 3) + tip_delta: tuple[int, int] = (10, 5), + pad: tuple[int, int, int, int] = (5, 3, 5, 3) ): c = canvas s_width, s_height = c.winfo_screenwidth(), c.winfo_screenheight() diff --git a/daemon/core/gui/images.py b/daemon/core/gui/images.py index aed4cfcc..b1832c1e 100644 --- a/daemon/core/gui/images.py +++ b/daemon/core/gui/images.py @@ -1,5 +1,5 @@ from enum import Enum -from typing import Dict, Optional, Tuple +from typing import Optional from PIL import Image from PIL.ImageTk import PhotoImage @@ -12,7 +12,7 @@ ANTENNA_SIZE: int = 32 BUTTON_SIZE: int = 16 ERROR_SIZE: int = 24 DIALOG_SIZE: int = 16 -IMAGES: Dict[str, str] = {} +IMAGES: dict[str, str] = {} def load_all() -> None: @@ -87,7 +87,7 @@ class ImageEnum(Enum): SHADOW = "shadow" -TYPE_MAP: Dict[Tuple[NodeType, str], ImageEnum] = { +TYPE_MAP: dict[tuple[NodeType, str], ImageEnum] = { (NodeType.DEFAULT, "router"): ImageEnum.ROUTER, (NodeType.DEFAULT, "PC"): ImageEnum.PC, (NodeType.DEFAULT, "host"): ImageEnum.HOST, diff --git a/daemon/core/gui/interface.py b/daemon/core/gui/interface.py index 83fba104..9ebea3c1 100644 --- a/daemon/core/gui/interface.py +++ b/daemon/core/gui/interface.py @@ -1,5 +1,5 @@ import logging -from typing import TYPE_CHECKING, Any, Dict, List, Optional, Set, Tuple +from typing import TYPE_CHECKING, Any, Optional import netaddr from netaddr import EUI, IPNetwork @@ -43,7 +43,7 @@ class Subnets: def __hash__(self) -> int: return hash(self.key()) - def key(self) -> Tuple[IPNetwork, IPNetwork]: + def key(self) -> tuple[IPNetwork, IPNetwork]: return self.ip4, self.ip6 def next(self) -> "Subnets": @@ -61,8 +61,8 @@ class InterfaceManager: self.mac: EUI = EUI(mac, dialect=netaddr.mac_unix_expanded) self.current_mac: Optional[EUI] = None self.current_subnets: Optional[Subnets] = None - self.used_subnets: Dict[Tuple[IPNetwork, IPNetwork], Subnets] = {} - self.used_macs: Set[str] = set() + self.used_subnets: dict[tuple[IPNetwork, IPNetwork], Subnets] = {} + self.used_macs: set[str] = set() def update_ips(self, ip4: str, ip6: str) -> None: self.reset() @@ -91,7 +91,7 @@ class InterfaceManager: self.current_subnets = None self.used_subnets.clear() - def removed(self, links: List[Link]) -> None: + def removed(self, links: list[Link]) -> None: # get remaining subnets remaining_subnets = set() for edge in self.app.core.links.values(): @@ -121,7 +121,7 @@ class InterfaceManager: subnets.used_indexes.discard(index) self.current_subnets = None - def set_macs(self, links: List[Link]) -> None: + def set_macs(self, links: list[Link]) -> None: self.current_mac = self.mac self.used_macs.clear() for link in links: @@ -130,7 +130,7 @@ class InterfaceManager: if link.iface2: self.used_macs.add(link.iface2.mac) - def joined(self, links: List[Link]) -> None: + def joined(self, links: list[Link]) -> None: ifaces = [] for link in links: if link.iface1: @@ -208,7 +208,7 @@ class InterfaceManager: logger.info("ignoring subnet change for link between network nodes") def find_subnets( - self, canvas_node: CanvasNode, visited: Set[int] = None + self, canvas_node: CanvasNode, visited: set[int] = None ) -> Optional[IPNetwork]: logger.info("finding subnet for node: %s", canvas_node.core_node.name) subnets = None diff --git a/daemon/core/gui/nodeutils.py b/daemon/core/gui/nodeutils.py index 0357f23d..0201aa9d 100644 --- a/daemon/core/gui/nodeutils.py +++ b/daemon/core/gui/nodeutils.py @@ -1,5 +1,5 @@ import logging -from typing import TYPE_CHECKING, List, Optional, Set +from typing import TYPE_CHECKING, Optional from PIL.ImageTk import PhotoImage @@ -13,22 +13,22 @@ logger = logging.getLogger(__name__) if TYPE_CHECKING: from core.gui.app import Application -NODES: List["NodeDraw"] = [] -NETWORK_NODES: List["NodeDraw"] = [] +NODES: list["NodeDraw"] = [] +NETWORK_NODES: list["NodeDraw"] = [] NODE_ICONS = {} -CONTAINER_NODES: Set[NodeType] = {NodeType.DEFAULT, NodeType.DOCKER, NodeType.LXC} -IMAGE_NODES: Set[NodeType] = {NodeType.DOCKER, NodeType.LXC} -WIRELESS_NODES: Set[NodeType] = { +CONTAINER_NODES: set[NodeType] = {NodeType.DEFAULT, NodeType.DOCKER, NodeType.LXC} +IMAGE_NODES: set[NodeType] = {NodeType.DOCKER, NodeType.LXC} +WIRELESS_NODES: set[NodeType] = { NodeType.WIRELESS_LAN, NodeType.EMANE, NodeType.WIRELESS, } -RJ45_NODES: Set[NodeType] = {NodeType.RJ45} -BRIDGE_NODES: Set[NodeType] = {NodeType.HUB, NodeType.SWITCH} -IGNORE_NODES: Set[NodeType] = {NodeType.CONTROL_NET} -MOBILITY_NODES: Set[NodeType] = {NodeType.WIRELESS_LAN, NodeType.EMANE} -NODE_MODELS: Set[str] = {"router", "PC", "mdr", "prouter"} -ROUTER_NODES: Set[str] = {"router", "mdr"} +RJ45_NODES: set[NodeType] = {NodeType.RJ45} +BRIDGE_NODES: set[NodeType] = {NodeType.HUB, NodeType.SWITCH} +IGNORE_NODES: set[NodeType] = {NodeType.CONTROL_NET} +MOBILITY_NODES: set[NodeType] = {NodeType.WIRELESS_LAN, NodeType.EMANE} +NODE_MODELS: set[str] = {"router", "PC", "mdr", "prouter"} +ROUTER_NODES: set[str] = {"router", "mdr"} ANTENNA_ICON: Optional[PhotoImage] = None @@ -106,7 +106,7 @@ def is_iface_node(node: Node) -> bool: return is_container(node) or is_bridge(node) -def get_custom_services(gui_config: GuiConfig, name: str) -> List[str]: +def get_custom_services(gui_config: GuiConfig, name: str) -> list[str]: for custom_node in gui_config.nodes: if custom_node.name == name: return custom_node.services @@ -154,7 +154,7 @@ class NodeDraw: self.image_file: Optional[str] = None self.node_type: Optional[NodeType] = None self.model: Optional[str] = None - self.services: Set[str] = set() + self.services: set[str] = set() self.label: Optional[str] = None @classmethod diff --git a/daemon/core/gui/observers.py b/daemon/core/gui/observers.py index 7879494b..8cf026bd 100644 --- a/daemon/core/gui/observers.py +++ b/daemon/core/gui/observers.py @@ -1,13 +1,13 @@ import tkinter as tk from functools import partial -from typing import TYPE_CHECKING, Dict +from typing import TYPE_CHECKING from core.gui.dialogs.observers import ObserverDialog if TYPE_CHECKING: from core.gui.app import Application -OBSERVERS: Dict[str, str] = { +OBSERVERS: dict[str, str] = { "List Processes": "ps", "Show Interfaces": "ip address", "IPV4 Routes": "ip -4 route", diff --git a/daemon/core/gui/statusbar.py b/daemon/core/gui/statusbar.py index 441213f2..a4967cd6 100644 --- a/daemon/core/gui/statusbar.py +++ b/daemon/core/gui/statusbar.py @@ -3,7 +3,7 @@ status bar """ import tkinter as tk from tkinter import ttk -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Optional from core.api.grpc.wrappers import ExceptionEvent, ExceptionLevel from core.gui.dialogs.alerts import AlertsDialog @@ -24,7 +24,7 @@ class StatusBar(ttk.Frame): self.alerts_button: Optional[ttk.Button] = None self.alert_style = Styles.no_alert self.running: bool = False - self.core_alarms: List[ExceptionEvent] = [] + self.core_alarms: list[ExceptionEvent] = [] self.draw() def draw(self) -> None: diff --git a/daemon/core/gui/task.py b/daemon/core/gui/task.py index 2623136d..6bbeb70f 100644 --- a/daemon/core/gui/task.py +++ b/daemon/core/gui/task.py @@ -2,7 +2,7 @@ import logging import threading import time import tkinter as tk -from typing import TYPE_CHECKING, Any, Callable, Optional, Tuple +from typing import TYPE_CHECKING, Any, Callable, Optional logger = logging.getLogger(__name__) @@ -17,7 +17,7 @@ class ProgressTask: title: str, task: Callable, callback: Callable = None, - args: Tuple[Any] = None, + args: tuple[Any] = None, ): self.app: "Application" = app self.title: str = title @@ -25,7 +25,7 @@ class ProgressTask: self.callback: Callable = callback if args is None: args = () - self.args: Tuple[Any] = args + self.args: tuple[Any] = args self.time: Optional[float] = None def start(self) -> None: diff --git a/daemon/core/gui/themes.py b/daemon/core/gui/themes.py index 45b109f0..cb6280e5 100644 --- a/daemon/core/gui/themes.py +++ b/daemon/core/gui/themes.py @@ -1,10 +1,9 @@ import tkinter as tk from tkinter import font, ttk -from typing import Dict, Tuple THEME_DARK: str = "black" -PADX: Tuple[int, int] = (0, 5) -PADY: Tuple[int, int] = (0, 5) +PADX: tuple[int, int] = (0, 5) +PADY: tuple[int, int] = (0, 5) FRAME_PAD: int = 5 DIALOG_PAD: int = 5 @@ -201,7 +200,7 @@ def theme_change(event: tk.Event) -> None: _alert_style(style, Styles.red_alert, "red") -def scale_fonts(fonts_size: Dict[str, int], scale: float) -> None: +def scale_fonts(fonts_size: dict[str, int], scale: float) -> None: for name in font.names(): f = font.nametofont(name) if name in fonts_size: diff --git a/daemon/core/gui/toolbar.py b/daemon/core/gui/toolbar.py index 7392071d..7c32c0af 100644 --- a/daemon/core/gui/toolbar.py +++ b/daemon/core/gui/toolbar.py @@ -3,7 +3,7 @@ import tkinter as tk from enum import Enum from functools import partial from tkinter import ttk -from typing import TYPE_CHECKING, Callable, List, Optional +from typing import TYPE_CHECKING, Callable, Optional from PIL.ImageTk import PhotoImage @@ -90,7 +90,7 @@ class ButtonBar(ttk.Frame): def __init__(self, master: tk.Widget, app: "Application") -> None: super().__init__(master) self.app: "Application" = app - self.radio_buttons: List[ttk.Button] = [] + self.radio_buttons: list[ttk.Button] = [] def create_button( self, image_enum: ImageEnum, func: Callable, tooltip: str, radio: bool = False @@ -303,7 +303,7 @@ class Toolbar(ttk.Frame): ) task.start() - def start_callback(self, result: bool, exceptions: List[str]) -> None: + def start_callback(self, result: bool, exceptions: list[str]) -> None: self.set_runtime() self.app.core.show_mobility_players() if not result and exceptions: diff --git a/daemon/core/gui/tooltip.py b/daemon/core/gui/tooltip.py index 84a3178f..f80dbe3f 100644 --- a/daemon/core/gui/tooltip.py +++ b/daemon/core/gui/tooltip.py @@ -5,7 +5,7 @@ from typing import Optional from core.gui.themes import Styles -class Tooltip(object): +class Tooltip: """ Create tool tip for a given widget """ diff --git a/daemon/core/gui/validation.py b/daemon/core/gui/validation.py index 2360ab0b..61500e84 100644 --- a/daemon/core/gui/validation.py +++ b/daemon/core/gui/validation.py @@ -3,8 +3,9 @@ input validation """ import re import tkinter as tk +from re import Pattern from tkinter import ttk -from typing import Any, Optional, Pattern +from typing import Any, Optional SMALLEST_SCALE: float = 0.5 LARGEST_SCALE: float = 5.0 diff --git a/daemon/core/gui/widgets.py b/daemon/core/gui/widgets.py index 7dfd2666..902f1132 100644 --- a/daemon/core/gui/widgets.py +++ b/daemon/core/gui/widgets.py @@ -3,7 +3,7 @@ import tkinter as tk from functools import partial from pathlib import Path from tkinter import filedialog, font, ttk -from typing import TYPE_CHECKING, Any, Callable, Dict, Set, Type +from typing import TYPE_CHECKING, Any, Callable from core.api.grpc.wrappers import ConfigOption, ConfigOptionType from core.gui import appconfig, themes, validation @@ -15,7 +15,7 @@ logger = logging.getLogger(__name__) if TYPE_CHECKING: from core.gui.app import Application -INT_TYPES: Set[ConfigOptionType] = { +INT_TYPES: set[ConfigOptionType] = { ConfigOptionType.UINT8, ConfigOptionType.UINT16, ConfigOptionType.UINT32, @@ -40,7 +40,7 @@ class FrameScroll(ttk.Frame): self, master: tk.Widget, app: "Application", - _cls: Type[ttk.Frame] = ttk.Frame, + _cls: type[ttk.Frame] = ttk.Frame, **kw: Any ) -> None: super().__init__(master, **kw) @@ -86,14 +86,14 @@ class ConfigFrame(ttk.Notebook): self, master: tk.Widget, app: "Application", - config: Dict[str, ConfigOption], + config: dict[str, ConfigOption], enabled: bool = True, **kw: Any ) -> None: super().__init__(master, **kw) self.app: "Application" = app - self.config: Dict[str, ConfigOption] = config - self.values: Dict[str, tk.StringVar] = {} + self.config: dict[str, ConfigOption] = config + self.values: dict[str, tk.StringVar] = {} self.enabled: bool = enabled def draw_config(self) -> None: @@ -166,7 +166,7 @@ class ConfigFrame(ttk.Notebook): logger.error("unhandled config option type: %s", option.type) self.values[option.name] = value - def parse_config(self) -> Dict[str, str]: + def parse_config(self) -> dict[str, str]: for key in self.config: option = self.config[key] value = self.values[key] @@ -180,7 +180,7 @@ class ConfigFrame(ttk.Notebook): option.value = config_value return {x: self.config[x].value for x in self.config} - def set_values(self, config: Dict[str, str]) -> None: + def set_values(self, config: dict[str, str]) -> None: for name, data in config.items(): option = self.config[name] value = self.values[name] From 4dba1bbe32d861cb59b6a917f28a0ce51bc71e0b Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Thu, 13 Apr 2023 16:30:35 -0700 Subject: [PATCH 32/70] gui: updated usage of .format to f strings and small code cleanup for colorpicker --- daemon/core/gui/dialogs/colorpicker.py | 102 ++++++++++++------------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/daemon/core/gui/dialogs/colorpicker.py b/daemon/core/gui/dialogs/colorpicker.py index 2f1c629f..f87fa60b 100644 --- a/daemon/core/gui/dialogs/colorpicker.py +++ b/daemon/core/gui/dialogs/colorpicker.py @@ -13,6 +13,36 @@ if TYPE_CHECKING: from core.gui.app import Application +def get_rgb(red: int, green: int, blue: int) -> str: + """ + Convert rgb integers to an rgb hex code (#). + + :param red: red value + :param green: green value + :param blue: blue value + :return: rgb hex code + """ + return f"#{red:02x}{green:02x}{blue:02x}" + + +def get_rgb_values(hex_code: str) -> tuple[int, int, int]: + """ + Convert a valid rgb hex code (#) to rgb integers. + + :param hex_code: valid rgb hex code + :return: a tuple of red, blue, and green values + """ + if len(hex_code) == 4: + red = hex_code[1] + green = hex_code[2] + blue = hex_code[3] + else: + red = hex_code[1:3] + green = hex_code[3:5] + blue = hex_code[5:] + return int(red, 16), int(green, 16), int(blue, 16) + + class ColorPickerDialog(Dialog): def __init__( self, master: tk.BaseWidget, app: "Application", initcolor: str = "#000000" @@ -27,7 +57,7 @@ class ColorPickerDialog(Dialog): self.blue_label: Optional[ttk.Label] = None self.display: Optional[tk.Frame] = None self.color: str = initcolor - red, green, blue = self.get_rgb(initcolor) + red, green, blue = get_rgb_values(initcolor) self.red: tk.IntVar = tk.IntVar(value=red) self.blue: tk.IntVar = tk.IntVar(value=blue) self.green: tk.IntVar = tk.IntVar(value=green) @@ -67,7 +97,7 @@ class ColorPickerDialog(Dialog): scale.grid(row=0, column=2, sticky=tk.EW, padx=PADX) self.red_label = ttk.Label( frame, - background="#{:02x}{:02x}{:02x}".format(self.red.get(), 0, 0), + background=get_rgb(self.red.get(), 0, 0), width=5, ) self.red_label.grid(row=0, column=3, sticky=tk.EW) @@ -92,7 +122,7 @@ class ColorPickerDialog(Dialog): scale.grid(row=0, column=2, sticky=tk.EW, padx=PADX) self.green_label = ttk.Label( frame, - background="#{:02x}{:02x}{:02x}".format(0, self.green.get(), 0), + background=get_rgb(0, self.green.get(), 0), width=5, ) self.green_label.grid(row=0, column=3, sticky=tk.EW) @@ -117,7 +147,7 @@ class ColorPickerDialog(Dialog): scale.grid(row=0, column=2, sticky=tk.EW, padx=PADX) self.blue_label = ttk.Label( frame, - background="#{:02x}{:02x}{:02x}".format(0, 0, self.blue.get()), + background=get_rgb(0, 0, self.blue.get()), width=5, ) self.blue_label.grid(row=0, column=3, sticky=tk.EW) @@ -156,39 +186,27 @@ class ColorPickerDialog(Dialog): self.color = self.hex.get() self.destroy() - def get_hex(self) -> str: - """ - convert current RGB values into hex color - """ - red = self.red_entry.get() - blue = self.blue_entry.get() - green = self.green_entry.get() - return "#{:02x}{:02x}{:02x}".format(int(red), int(green), int(blue)) - def current_focus(self, focus: str) -> None: self.focus = focus def update_color(self, arg1=None, arg2=None, arg3=None) -> None: if self.focus == "rgb": - red = self.red_entry.get() - blue = self.blue_entry.get() - green = self.green_entry.get() + red = int(self.red_entry.get() or 0) + blue = int(self.blue_entry.get() or 0) + green = int(self.green_entry.get() or 0) self.set_scale(red, green, blue) - if red and blue and green: - hex_code = "#{:02x}{:02x}{:02x}".format(int(red), int(green), int(blue)) - self.hex.set(hex_code) - self.display.config(background=hex_code) - self.set_label(red, green, blue) + hex_code = get_rgb(red, green, blue) + self.hex.set(hex_code) + self.display.config(background=hex_code) + self.set_label(red, green, blue) elif self.focus == "hex": hex_code = self.hex.get() if len(hex_code) == 4 or len(hex_code) == 7: - red, green, blue = self.get_rgb(hex_code) - else: - return - self.set_entry(red, green, blue) - self.set_scale(red, green, blue) - self.display.config(background=hex_code) - self.set_label(str(red), str(green), str(blue)) + red, green, blue = get_rgb_values(hex_code) + self.set_entry(red, green, blue) + self.set_scale(red, green, blue) + self.display.config(background=hex_code) + self.set_label(red, green, blue) def scale_callback(self, var: tk.IntVar, color_var: tk.IntVar) -> None: color_var.set(var.get()) @@ -205,27 +223,7 @@ class ColorPickerDialog(Dialog): self.green.set(green) self.blue.set(blue) - def set_label(self, red: str, green: str, blue: str) -> None: - self.red_label.configure( - background="#{:02x}{:02x}{:02x}".format(int(red), 0, 0) - ) - self.green_label.configure( - background="#{:02x}{:02x}{:02x}".format(0, int(green), 0) - ) - self.blue_label.configure( - background="#{:02x}{:02x}{:02x}".format(0, 0, int(blue)) - ) - - def get_rgb(self, hex_code: str) -> tuple[int, int, int]: - """ - convert a valid hex code to RGB values - """ - if len(hex_code) == 4: - red = hex_code[1] - green = hex_code[2] - blue = hex_code[3] - else: - red = hex_code[1:3] - green = hex_code[3:5] - blue = hex_code[5:] - return int(red, 16), int(green, 16), int(blue, 16) + def set_label(self, red: int, green: int, blue: int) -> None: + self.red_label.configure(background=get_rgb(red, 0, 0)) + self.green_label.configure(background=get_rgb(0, green, 0)) + self.blue_label.configure(background=get_rgb(0, 0, blue)) From 899800b925f08592be12f9d47c8b3b6f293e223f Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Thu, 13 Apr 2023 16:43:09 -0700 Subject: [PATCH 33/70] daemon/gui: coverted remaining usages of old string formatting to f strings --- daemon/core/configservice/dependencies.py | 12 ++++++------ daemon/core/gui/graph/tooltip.py | 6 +++--- daemon/core/gui/tooltip.py | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/daemon/core/configservice/dependencies.py b/daemon/core/configservice/dependencies.py index 0bc5d4b6..1fbc4e48 100644 --- a/daemon/core/configservice/dependencies.py +++ b/daemon/core/configservice/dependencies.py @@ -54,8 +54,8 @@ class ConfigServiceDependencies: if self.started != set(self.node_services): raise ValueError( - "failure to start all services: %s != %s" - % (self.started, self.node_services.keys()) + f"failure to start all services: {self.started} != " + f"{self.node_services.keys()}" ) return paths @@ -96,14 +96,14 @@ class ConfigServiceDependencies: for service_name in current_service.dependencies: if service_name not in self.node_services: raise ValueError( - "required dependency was not included in node services: %s" - % service_name + "required dependency was not included in node " + f"services: {service_name}" ) if service_name in self.visiting: raise ValueError( - "cyclic dependency at service(%s): %s" - % (current_service.name, service_name) + f"cyclic dependency at service({current_service.name}): " + f"{service_name}" ) if service_name not in self.visited: diff --git a/daemon/core/gui/graph/tooltip.py b/daemon/core/gui/graph/tooltip.py index 37e7ac5d..b820abec 100644 --- a/daemon/core/gui/graph/tooltip.py +++ b/daemon/core/gui/graph/tooltip.py @@ -29,7 +29,7 @@ class CanvasTooltip: *, pad: tuple[int, int, int, int] = (5, 3, 5, 3), waittime: int = 400, - wraplength: int = 600 + wraplength: int = 600, ) -> None: # in miliseconds, originally 500 self.waittime: int = waittime @@ -64,7 +64,7 @@ class CanvasTooltip: label: ttk.Label, *, tip_delta: tuple[int, int] = (10, 5), - pad: tuple[int, int, int, int] = (5, 3, 5, 3) + pad: tuple[int, int, int, int] = (5, 3, 5, 3), ): c = canvas s_width, s_height = c.winfo_screenwidth(), c.winfo_screenheight() @@ -112,7 +112,7 @@ class CanvasTooltip: ) label.grid(padx=(pad[0], pad[2]), pady=(pad[1], pad[3]), sticky=tk.NSEW) x, y = tip_pos_calculator(canvas, label, pad=pad) - self.tw.wm_geometry("+%d+%d" % (x, y)) + self.tw.wm_geometry(f"+{x:d}+{y:d}") def hide(self) -> None: if self.tw: diff --git a/daemon/core/gui/tooltip.py b/daemon/core/gui/tooltip.py index f80dbe3f..6d84ac75 100644 --- a/daemon/core/gui/tooltip.py +++ b/daemon/core/gui/tooltip.py @@ -42,7 +42,7 @@ class Tooltip: y += self.widget.winfo_rooty() + 32 self.tw = tk.Toplevel(self.widget) self.tw.wm_overrideredirect(True) - self.tw.wm_geometry("+%d+%d" % (x, y)) + self.tw.wm_geometry(f"+{x:d}+{y:d}") self.tw.rowconfigure(0, weight=1) self.tw.columnconfigure(0, weight=1) frame = ttk.Frame(self.tw, style=Styles.tooltip_frame, padding=3) From 18ac8d5620a8ad2486a5324bea68c3aa9a3f4ba4 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Thu, 13 Apr 2023 21:25:49 -0700 Subject: [PATCH 34/70] daemon: updated formatting for frr changes --- daemon/core/configservices/frrservices/services.py | 3 ++- daemon/core/services/frr.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/daemon/core/configservices/frrservices/services.py b/daemon/core/configservices/frrservices/services.py index 30448b09..378d42f8 100644 --- a/daemon/core/configservices/frrservices/services.py +++ b/daemon/core/configservices/frrservices/services.py @@ -104,7 +104,8 @@ class FRRZebra(ConfigService): "frr_bin_search", default="/usr/local/bin /usr/bin /usr/lib/frr" ).strip('"') frr_sbin_search = self.node.session.options.get( - "frr_sbin_search", default="/usr/local/sbin /usr/sbin /usr/lib/frr /usr/libexec/frr" + "frr_sbin_search", + default="/usr/local/sbin /usr/sbin /usr/lib/frr /usr/libexec/frr", ).strip('"') services = [] diff --git a/daemon/core/services/frr.py b/daemon/core/services/frr.py index 13b4c42d..28756c19 100644 --- a/daemon/core/services/frr.py +++ b/daemon/core/services/frr.py @@ -142,7 +142,8 @@ class FRRZebra(CoreService): "frr_bin_search", '"/usr/local/bin /usr/bin /usr/lib/frr"' ) frr_sbin_search = node.session.options.get( - "frr_sbin_search", '"/usr/local/sbin /usr/sbin /usr/lib/frr /usr/libexec/frr"' + "frr_sbin_search", + '"/usr/local/sbin /usr/sbin /usr/lib/frr /usr/libexec/frr"', ) cfg = f"""\ #!/bin/sh From 4a02d4bed9c571e759aa164148dd05174f4c98c2 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Thu, 13 Apr 2023 21:48:39 -0700 Subject: [PATCH 35/70] gui: improve type hinting for ShowVar.state() --- daemon/core/gui/graph/manager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/daemon/core/gui/graph/manager.py b/daemon/core/gui/graph/manager.py index a0f60754..b2745f5c 100644 --- a/daemon/core/gui/graph/manager.py +++ b/daemon/core/gui/graph/manager.py @@ -4,7 +4,7 @@ import tkinter as tk from collections.abc import ValuesView from copy import deepcopy from tkinter import BooleanVar, messagebox, ttk -from typing import TYPE_CHECKING, Any, Optional +from typing import TYPE_CHECKING, Any, Literal, Optional from core.api.grpc.wrappers import Link, LinkType, Node, Session, ThroughputsEvent from core.gui import nodeutils as nutils @@ -35,7 +35,7 @@ class ShowVar(BooleanVar): self.manager: "CanvasManager" = manager self.tag: str = tag - def state(self) -> str: + def state(self) -> Literal["normal", "hidden"]: return tk.NORMAL if self.get() else tk.HIDDEN def click_handler(self) -> None: From fac8cfae0840fba138d98e86bcb8c5da79caa786 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Sat, 15 Apr 2023 00:25:41 -0700 Subject: [PATCH 36/70] daemon: fixed issue with session data collect transition not properly stopping config services --- daemon/core/emulator/session.py | 1 + daemon/core/nodes/base.py | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/daemon/core/emulator/session.py b/daemon/core/emulator/session.py index 310defb6..a33abebe 100644 --- a/daemon/core/emulator/session.py +++ b/daemon/core/emulator/session.py @@ -1082,6 +1082,7 @@ class Session: if isinstance(node, CoreNodeBase) and node.up: args = (node,) funcs.append((self.services.stop_services, args, {})) + funcs.append((node.stop_config_services, (), {})) utils.threadpool(funcs) # shutdown emane diff --git a/daemon/core/nodes/base.py b/daemon/core/nodes/base.py index f5688f5a..e59a89e4 100644 --- a/daemon/core/nodes/base.py +++ b/daemon/core/nodes/base.py @@ -506,6 +506,15 @@ class CoreNodeBase(NodeBase): for service in startup_path: service.start() + def stop_config_services(self) -> None: + """ + Stop all configuration services. + + :return: nothing + """ + for service in self.config_services.values(): + service.stop() + def makenodedir(self) -> None: """ Create the node directory. From 8281382bd6a9445063ed1b6cec53e8ac36416249 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Tue, 18 Apr 2023 12:21:13 -0700 Subject: [PATCH 37/70] github: adding workflow for generating documentation on push to master --- .github/workflows/documentation.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/workflows/documentation.yml diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml new file mode 100644 index 00000000..e251026a --- /dev/null +++ b/.github/workflows/documentation.yml @@ -0,0 +1,21 @@ +name: documentation +on: + push: + branches: + - main +permissions: + contents: write +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: 3.x + - uses: actions/cache@v2 + with: + key: ${{ github.ref }} + path: .cache + - run: pip install mkdocs-material + - run: mkdocs gh-deploy --force From 374ddb677cc5ef6a61d561b07db46f3eacf0aee3 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Tue, 18 Apr 2023 12:21:36 -0700 Subject: [PATCH 38/70] github: fixed branch name --- .github/workflows/documentation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index e251026a..abbadab3 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -2,7 +2,7 @@ name: documentation on: push: branches: - - main + - master permissions: contents: write jobs: From d2008b1e5a01eef328afd0187e03032510ce41ef Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Thu, 20 Apr 2023 12:01:39 -0700 Subject: [PATCH 39/70] docs: improved navigation, fixed type for warning in emane/gpsd --- docs/emane/gpsd.md | 2 +- mkdocs.yml | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/docs/emane/gpsd.md b/docs/emane/gpsd.md index 38493ba1..eadf8af2 100644 --- a/docs/emane/gpsd.md +++ b/docs/emane/gpsd.md @@ -7,7 +7,7 @@ Introduction to integrating gpsd in CORE with EMANE. [EMANE Demo 0](https://github.com/adjacentlink/emane-tutorial/wiki/Demonstration-0) may provide more helpful details. -!!!! warning +!!! warning Requires installation of [gpsd](https://gpsd.gitlab.io/gpsd/index.html) diff --git a/mkdocs.yml b/mkdocs.yml index 93a925ee..63009774 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -47,11 +47,28 @@ nav: - Services: - Config Services: configservices.md - Services (Deprecated): services.md + - Provided: + - Bird: services/bird.md + - EMANE: services/emane.md + - FRR: services/frr.md + - NRL: services/nrl.md + - Quagga: services/quagga.md + - SDN: services/sdn.md + - Security: services/security.md + - Utility: services/utility.md + - XORP: services/xorp.md - API: - Python: python.md - gRPC: grpc.md - Distributed: distributed.md - Control Network: ctrlnet.md - Hardware In The Loop: hitl.md - - EMANE: emane.md + - EMANE: + - Overview: emane.md + - Examples: + - Antenna: emane/antenna.md + - EEL: emane/eel.md + - Files: emane/files.md + - GPSD: emane/gpsd.md + - Precomputed: emane/precomputed.md - Developers Guide: devguide.md From 01585b6ec53666ccd71fc9881bcbc76650c44b4d Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Mon, 1 May 2023 08:40:48 -0700 Subject: [PATCH 40/70] docs: fixed example emane model code to properly load platform config --- docs/emane.md | 1 + package/examples/myemane/examplemodel.py | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/emane.md b/docs/emane.md index 33b6419a..a034c63b 100644 --- a/docs/emane.md +++ b/docs/emane.md @@ -184,6 +184,7 @@ class ExampleModel(emanemodel.EmaneModel): :param emane_prefix: configured emane prefix path :return: nothing """ + cls._load_platform_config(emane_prefix) manifest_path = "share/emane/manifest" # load mac configuration mac_xml_path = emane_prefix / manifest_path / cls.mac_xml diff --git a/package/examples/myemane/examplemodel.py b/package/examples/myemane/examplemodel.py index c33ac166..bd5102e4 100644 --- a/package/examples/myemane/examplemodel.py +++ b/package/examples/myemane/examplemodel.py @@ -64,6 +64,7 @@ class ExampleModel(emanemodel.EmaneModel): :param emane_prefix: configured emane prefix path :return: nothing """ + cls._load_platform_config(emane_prefix) manifest_path = "share/emane/manifest" # load mac configuration mac_xml_path = emane_prefix / manifest_path / cls.mac_xml From a5727e3355bae366bade98645fd56e49d1fc25d7 Mon Sep 17 00:00:00 2001 From: "Blake J. Harnden" Date: Mon, 5 Jun 2023 11:11:00 -0700 Subject: [PATCH 41/70] docs: adding tutorial 1 --- docs/tutorials/common/grpc.md | 22 ++ docs/tutorials/setup.md | 82 ++++++ docs/tutorials/tutorial1.md | 250 ++++++++++++++++++ .../tutorials/chatapp/chatapp/__init__.py | 0 .../tutorials/chatapp/chatapp/client.py | 63 +++++ .../tutorials/chatapp/chatapp/server.py | 73 +++++ .../tutorials/chatapp/chatapp_service.py | 26 ++ package/examples/tutorials/chatapp/setup.py | 17 ++ .../examples/tutorials/tutorial1/scenario.py | 36 +++ .../examples/tutorials/tutorial1/scenario.xml | 77 ++++++ .../tutorials/tutorial1/scenario_service.py | 37 +++ .../tutorials/tutorial1/scenario_service.xml | 81 ++++++ 12 files changed, 764 insertions(+) create mode 100644 docs/tutorials/common/grpc.md create mode 100644 docs/tutorials/setup.md create mode 100644 docs/tutorials/tutorial1.md create mode 100644 package/examples/tutorials/chatapp/chatapp/__init__.py create mode 100644 package/examples/tutorials/chatapp/chatapp/client.py create mode 100644 package/examples/tutorials/chatapp/chatapp/server.py create mode 100644 package/examples/tutorials/chatapp/chatapp_service.py create mode 100644 package/examples/tutorials/chatapp/setup.py create mode 100644 package/examples/tutorials/tutorial1/scenario.py create mode 100644 package/examples/tutorials/tutorial1/scenario.xml create mode 100644 package/examples/tutorials/tutorial1/scenario_service.py create mode 100644 package/examples/tutorials/tutorial1/scenario_service.xml diff --git a/docs/tutorials/common/grpc.md b/docs/tutorials/common/grpc.md new file mode 100644 index 00000000..ad76c81d --- /dev/null +++ b/docs/tutorials/common/grpc.md @@ -0,0 +1,22 @@ +## gRPC Python Scripts + +You can also run the same steps above, using the provided gRPC script versions of scenarios. +Below are the steps to run and join one of these scenario, then you can continue with +the remaining steps of a given section. + +1. Make sure the CORE daemon is running a terminal, if not already + ``` shell + sudop core-daemon + ``` +2. From another terminal run the tutorial python script, which will create a session to join + ``` shell + /opt/core/venv/bin/python scenario.py + ``` +3. In another terminal run the CORE GUI + ``` shell + core-gui + ``` +4. You will be presented with sessions to join, select the one created by the script +

    + +

    \ No newline at end of file diff --git a/docs/tutorials/setup.md b/docs/tutorials/setup.md new file mode 100644 index 00000000..858b0f1d --- /dev/null +++ b/docs/tutorials/setup.md @@ -0,0 +1,82 @@ +# Tutorial Setup + +## Setup for CORE + +We assume the prior installation of CORE, using a virtual environment. You can +then adjust your PATH and add an alias to help more conveniently run CORE +commands. + +This can be setup in your **.bashrc** + +```shell +export PATH=$PATH:/opt/core/venv/bin +alias sudop='sudo env PATH=$PATH' +``` + +## Setup for Chat App + +There is a simple TCP chat app provided as example software to use and run within +the tutorials provided. + +### Installation + +The following will install chatapp and its scripts into **/usr/local**, which you +may need to add to PATH within node to be able to use command directly. + +``` shell +sudo python3 -m pip install . +``` + +!!! note + + Some Linux distros will not have **/usr/local** in their PATH and you + will need to compensate. + +``` shell +export PATH=$PATH:/usr/local +``` + +### Running the Server + +The server will print and log connected clients and their messages. + +``` shell +usage: chatapp-server [-h] [-a ADDRESS] [-p PORT] + +chat app server + +optional arguments: + -h, --help show this help message and exit + -a ADDRESS, --address ADDRESS + address to listen on (default: ) + -p PORT, --port PORT port to listen on (default: 9001) +``` + +### Running the Client + +The client will print and log messages from other clients and their join/leave status. + +``` shell +usage: chatapp-client [-h] -a ADDRESS [-p PORT] + +chat app client + +optional arguments: + -h, --help show this help message and exit + -a ADDRESS, --address ADDRESS + address to listen on (default: None) + -p PORT, --port PORT port to listen on (default: 9001) +``` + +### Installing the Chat App Service + +1. You will first need to edit **/etc/core/core.conf** to update the config + service path to pick up your service + ``` shell + custom_config_services_dir = + ``` +2. Then you will need to copy/move **chatapp/chatapp_service.py** to the directory + configured above +3. Then you will need to restart the **core-daemon** to pick up this new service +4. Now the service will be an available option under the group **ChatApp** with + the name **ChatApp Server** diff --git a/docs/tutorials/tutorial1.md b/docs/tutorials/tutorial1.md new file mode 100644 index 00000000..c92f4b4e --- /dev/null +++ b/docs/tutorials/tutorial1.md @@ -0,0 +1,250 @@ +# Tutorial 1 - Wired Network + +This tutorial will cover some use cases when using a wired 2 node +scenario in CORE. + +

    + +

    + +## Files + +Below is the list of files used for this tutorial. + +* 2 node wired scenario + * scenario.xml + * scenario.py +* 2 node wired scenario, with **n1** running the "Chat App Server" service + * scenario_service.xml + * scenario_service.py + +## Running this Tutorial + +This section covers interactions that can be carried out for this scenario. + +Our scenario has the following nodes and addresses: + +* n1 - 10.0.0.20 +* n2 - 10.0.0.21 + +All usages below assume a clean scenario start. + +### Using Ping + +Using the command line utility **ping** can be a good way to verify connectivity +between nodes in CORE. + +* Make sure the CORE daemon is running a terminal, if not already + ``` shell + sudop core-daemon + ``` +* In another terminal run the GUI + ``` shell + core-gui + ``` +* In the GUI menu bar select **File->Open...**, then navigate to and select **scenario.xml** +

    + +

    +* You can now click on the **Start Session** button to run the scenario +

    + +

    +* Open a terminal on **n1** by double clicking it in the GUI +* Run the following in **n1** terminal + ``` shell + ping -c 3 10.0.0.21 + ``` +* You should see the following output + ``` shell + PING 10.0.0.21 (10.0.0.21) 56(84) bytes of data. + 64 bytes from 10.0.0.21: icmp_seq=1 ttl=64 time=0.085 ms + 64 bytes from 10.0.0.21: icmp_seq=2 ttl=64 time=0.079 ms + 64 bytes from 10.0.0.21: icmp_seq=3 ttl=64 time=0.072 ms + + --- 10.0.0.21 ping statistics --- + 3 packets transmitted, 3 received, 0% packet loss, time 1999ms + rtt min/avg/max/mdev = 0.072/0.078/0.085/0.011 ms + ``` + +### Using Tcpdump + +Using **tcpdump** can be very beneficial for examining a network. You can verify +traffic being sent/received among many other uses. + +* Make sure the CORE daemon is running a terminal, if not already + ``` shell + sudop core-daemon + ``` +* In another terminal run the GUI + ``` shell + core-gui + ``` +* In the GUI menu bar select **File->Open...**, then navigate to and select **scenario.xml** +

    + +

    +* You can now click on the **Start Session** button to run the scenario +

    + +

    +* Open a terminal on **n1** by double clicking it in the GUI +* Open a terminal on **n2** by double clicking it in the GUI +* Run the following in **n2** terminal + ``` shell + tcpdump -lenni eth0 + ``` +* Run the following in **n1** terminal + ``` shell + ping -c 1 10.0.0.21 + ``` +* You should see the following in **n2** terminal + ``` shell + tcpdump: verbose output suppressed, use -v or -vv for full protocol decode + listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes + 10:23:04.685292 00:00:00:aa:00:00 > 00:00:00:aa:00:01, ethertype IPv4 (0x0800), length 98: 10.0.0.20 > 10.0.0.21: ICMP echo request, id 67, seq 1, length 64 + 10:23:04.685329 00:00:00:aa:00:01 > 00:00:00:aa:00:00, ethertype IPv4 (0x0800), length 98: 10.0.0.21 > 10.0.0.20: ICMP echo reply, id 67, seq 1, length 64 + ``` + +### Editing a Link + +You can edit links between nodes in CORE to modify loss, delay, bandwidth, and more. This can be +beneficial for understanding how software will behave in adverse conditions. + +* Make sure the CORE daemon is running a terminal, if not already + ``` shell + sudop core-daemon + ``` +* In another terminal run the GUI + ``` shell + core-gui + ``` +* In the GUI menu bar select **File->Open...**, then navigate to and select **scenario.xml** +

    + +

    +* You can now click on the **Start Session** button to run the scenario +

    + +

    +* Right click the link between **n1** and **n2** +* Select **Configure** +

    + +

    +* Update the loss to **25** +

    + +

    +* Open a terminal on **n1** by double clicking it in the GUI +* Run the following in **n1** terminal + ``` shell + ping -c 10 10.0.0.21 + ``` +* You should see something similar for the summary output, reflecting the change in loss + ``` shell + --- 10.0.0.21 ping statistics --- + 10 packets transmitted, 6 received, 40% packet loss, time 9000ms + rtt min/avg/max/mdev = 0.077/0.093/0.108/0.016 ms + ``` +* Remember that the loss above is compounded, since a ping and the loss applied occurs in both directions + +### Running Software + +We will now leverage the installed Chat App software to stand up a server and client +within the nodes of our scenario. + +* Make sure the CORE daemon is running a terminal, if not already + ``` shell + sudop core-daemon + ``` +* In another terminal run the GUI + ``` shell + core-gui + ``` +* In the GUI menu bar select **File->Open...**, then navigate to and select **scenario.xml** +

    + +

    +* You can now click on the **Start Session** button to run the scenario +

    + +

    +* Open a terminal on **n1** by double clicking it in the GUI +* Run the following in **n1** terminal + ``` shell + export PATH=$PATH:/usr/local/bin + chatapp-server + ``` +* Open a terminal on **n2** by double clicking it in the GUI +* Run the following in **n2** terminal + ``` shell + export PATH=$PATH:/usr/local/bin + chatapp-client -a 10.0.0.20 + ``` +* You will see the following output in **n1** terminal + ``` shell + chat server listening on: :9001 + [server] 10.0.0.21:44362 joining + ``` +* Type the following in **n2** terminal and hit enter + ``` shell + hello world + ``` +* You will see the following output in **n1** terminal + ``` shell + chat server listening on: :9001 + [server] 10.0.0.21:44362 joining + [10.0.0.21:44362] hello world + ``` + +### Tailing a Log + +In this case we are using the service based scenario. This will automatically start +and run the Chat App Server on **n1** and log to a file. This case will demonstrate +using `tail -f` to observe the output of running software. + +* Make sure the CORE daemon is running a terminal, if not already + ``` shell + sudop core-daemon + ``` +* In another terminal run the GUI + ``` shell + core-gui + ``` +* In the GUI menu bar select **File->Open...**, then navigate to and select **scenario_service.xml** +

    + +

    +* You can now click on the **Start Session** button to run the scenario +

    + +

    +* Open a terminal on **n1** by double clicking it in the GUI +* Run the following in **n1** terminal + ``` shell + tail -f chatapp.log + ``` +* Open a terminal on **n2** by double clicking it in the GUI +* Run the following in **n2** terminal + ``` shell + export PATH=$PATH:/usr/local/bin + chatapp-client -a 10.0.0.20 + ``` +* You will see the following output in **n1** terminal + ``` shell + chat server listening on: :9001 + [server] 10.0.0.21:44362 joining + ``` +* Type the following in **n2** terminal and hit enter + ``` shell + hello world + ``` +* You will see the following output in **n1** terminal + ``` shell + chat server listening on: :9001 + [server] 10.0.0.21:44362 joining + [10.0.0.21:44362] hello world + ``` + +--8<-- "common/grpc.md" \ No newline at end of file diff --git a/package/examples/tutorials/chatapp/chatapp/__init__.py b/package/examples/tutorials/chatapp/chatapp/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/package/examples/tutorials/chatapp/chatapp/client.py b/package/examples/tutorials/chatapp/chatapp/client.py new file mode 100644 index 00000000..87a839d5 --- /dev/null +++ b/package/examples/tutorials/chatapp/chatapp/client.py @@ -0,0 +1,63 @@ +import argparse +import select +import socket +import sys +import termios + +DEFAULT_PORT: int = 9001 +READ_SIZE: int = 4096 + + +def prompt(): + sys.stdout.write(">> ") + sys.stdout.flush() + + +class ChatClient: + def __init__(self, address, port): + self.address = address + self.port = port + + def run(self): + server = socket.create_connection((self.address, self.port)) + sockname = server.getsockname() + print(f"connected to server({self.address}:{self.port}) as client({sockname[0]}:{sockname[1]})") + sockets = [sys.stdin, server] + prompt() + try: + while True: + read_sockets, write_socket, error_socket = select.select(sockets, [], []) + for sock in read_sockets: + if sock == server: + message = server.recv(READ_SIZE) + if not message: + print("server closed") + sys.exit(1) + else: + termios.tcflush(sys.stdin, termios.TCIOFLUSH) + print("\x1b[2K\r", end="") + print(message.decode().strip()) + prompt() + else: + message = sys.stdin.readline().strip() + server.sendall(f"{message}\n".encode()) + prompt() + except KeyboardInterrupt: + print("client exiting") + server.close() + + +def main(): + parser = argparse.ArgumentParser( + description="chat app client", + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + ) + parser.add_argument("-a", "--address", help="address to listen on", required=True) + parser.add_argument("-p", "--port", type=int, help="port to listen on", default=DEFAULT_PORT) + args = parser.parse_args() + client = ChatClient(args.address, args.port) + client.run() + + +if __name__ == "__main__": + main() diff --git a/package/examples/tutorials/chatapp/chatapp/server.py b/package/examples/tutorials/chatapp/chatapp/server.py new file mode 100644 index 00000000..fb9c01fd --- /dev/null +++ b/package/examples/tutorials/chatapp/chatapp/server.py @@ -0,0 +1,73 @@ +import argparse +import select +import socket + +DEFAULT_ADDRESS: str = "" +DEFAULT_PORT: int = 9001 +READ_SIZE: int = 4096 + + +class ChatServer: + def __init__(self, address, port): + self.address = address + self.port = port + self.sockets = [] + + def broadcast(self, ignore, message): + for sock in self.sockets: + if sock not in ignore: + sock.sendall(message.encode()) + + def run(self): + print(f"chat server listening on: {self.address}:{self.port}") + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server: + server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + server.bind((self.address, self.port)) + server.listen() + self.sockets.append(server) + try: + while True: + read_sockets, write_sockets, error_sockets = select.select(self.sockets, [], []) + for sock in read_sockets: + if sock == server: + client_sock, addr = server.accept() + self.sockets.append(client_sock) + name = f"{addr[0]}:{addr[1]}" + print(f"[server] {name} joining") + self.broadcast({server, client_sock}, f"[server] {name} entered room\n") + else: + peer = sock.getpeername() + name = f"{peer[0]}:{peer[1]}" + try: + data = sock.recv(READ_SIZE).decode().strip() + if data: + print(f"[{name}] {data}") + self.broadcast({server, sock}, f"[{name}] {data}\n") + else: + print(f"[server] {name} leaving") + self.broadcast({server, sock}, f"[server] {name} leaving\n") + sock.close() + self.sockets.remove(sock) + except socket.error: + print(f"[server] {name} leaving") + self.broadcast({server, sock}, f"[server] {name} leaving\n") + sock.close() + self.sockets.remove(sock) + except KeyboardInterrupt: + print("closing server") + + +def main(): + parser = argparse.ArgumentParser( + description="chat app server", + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + ) + parser.add_argument("-a", "--address", help="address to listen on", default=DEFAULT_ADDRESS) + parser.add_argument("-p", "--port", type=int, help="port to listen on", default=DEFAULT_PORT) + args = parser.parse_args() + server = ChatServer(args.address, args.port) + server.run() + + +if __name__ == "__main__": + main() diff --git a/package/examples/tutorials/chatapp/chatapp_service.py b/package/examples/tutorials/chatapp/chatapp_service.py new file mode 100644 index 00000000..6faf8071 --- /dev/null +++ b/package/examples/tutorials/chatapp/chatapp_service.py @@ -0,0 +1,26 @@ +from typing import Dict, List + +from core.config import Configuration +from core.configservice.base import ConfigService, ConfigServiceMode, ShadowDir + + +class ChatAppService(ConfigService): + name: str = "ChatApp Server" + group: str = "ChatApp" + directories: List[str] = [] + files: List[str] = ["chatapp.sh"] + executables: List[str] = [] + dependencies: List[str] = [] + startup: List[str] = [f"bash {files[0]}"] + validate: List[str] = [] + shutdown: List[str] = [] + validation_mode: ConfigServiceMode = ConfigServiceMode.BLOCKING + default_configs: List[Configuration] = [] + modes: Dict[str, Dict[str, str]] = {} + shadow_directories: List[ShadowDir] = [] + + def get_text_template(self, _name: str) -> str: + return """ + export PATH=$PATH:/usr/local/bin + PYTHONUNBUFFERED=1 chatapp-server > chatapp.log 2>&1 & + """ diff --git a/package/examples/tutorials/chatapp/setup.py b/package/examples/tutorials/chatapp/setup.py new file mode 100644 index 00000000..7c48ecd3 --- /dev/null +++ b/package/examples/tutorials/chatapp/setup.py @@ -0,0 +1,17 @@ +from setuptools import setup, find_packages + +setup( + name="chatapp", + version="0.1.0", + packages=find_packages(), + description="Chat App", + entry_points={ + "console_scripts": [ + "chatapp-client = chatapp.client:main", + "chatapp-server = chatapp.server:main", + ], + }, + include_package_data=True, + zip_safe=False, + python_requires=">=3.6", +) diff --git a/package/examples/tutorials/tutorial1/scenario.py b/package/examples/tutorials/tutorial1/scenario.py new file mode 100644 index 00000000..1f5a45e6 --- /dev/null +++ b/package/examples/tutorials/tutorial1/scenario.py @@ -0,0 +1,36 @@ +from core.api.grpc import client +from core.api.grpc.wrappers import Position + + +def main(): + # interface helper + iface_helper = client.InterfaceHelper(ip4_prefix="10.0.0.0/24", ip6_prefix="2001::/64") + + # create grpc client and connect + core = client.CoreGrpcClient() + core.connect() + + # create session + session = core.create_session() + + # create nodes + position = Position(x=250, y=250) + node1 = session.add_node(_id=1, name="n1", position=position) + position = Position(x=500, y=250) + node2 = session.add_node(_id=2, name="n2", position=position) + + # create link + node1_iface = iface_helper.create_iface(node_id=node1.id, iface_id=0) + node1_iface.ip4 = "10.0.0.20" + node1_iface.ip6 = "2001::14" + node2_iface = iface_helper.create_iface(node_id=node2.id, iface_id=0) + node2_iface.ip4 = "10.0.0.21" + node2_iface.ip6 = "2001::15" + session.add_link(node1=node1, node2=node2, iface1=node1_iface, iface2=node2_iface) + + # start session + core.start_session(session=session) + + +if __name__ == "__main__": + main() diff --git a/package/examples/tutorials/tutorial1/scenario.xml b/package/examples/tutorials/tutorial1/scenario.xml new file mode 100644 index 00000000..428fe4ca --- /dev/null +++ b/package/examples/tutorials/tutorial1/scenario.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/package/examples/tutorials/tutorial1/scenario_service.py b/package/examples/tutorials/tutorial1/scenario_service.py new file mode 100644 index 00000000..bc2c6cc8 --- /dev/null +++ b/package/examples/tutorials/tutorial1/scenario_service.py @@ -0,0 +1,37 @@ +from core.api.grpc import client +from core.api.grpc.wrappers import Position + + +def main(): + # interface helper + iface_helper = client.InterfaceHelper(ip4_prefix="10.0.0.0/24", ip6_prefix="2001::/64") + + # create grpc client and connect + core = client.CoreGrpcClient() + core.connect() + + # create session + session = core.create_session() + + # create nodes + position = Position(x=250, y=250) + node1 = session.add_node(_id=1, name="n1", position=position) + node1.config_services.add("ChatApp Server") + position = Position(x=500, y=250) + node2 = session.add_node(_id=2, name="n2", position=position) + + # create link + node1_iface = iface_helper.create_iface(node_id=node1.id, iface_id=0) + node1_iface.ip4 = "10.0.0.20" + node1_iface.ip6 = "2001::14" + node2_iface = iface_helper.create_iface(node_id=node2.id, iface_id=0) + node2_iface.ip4 = "10.0.0.21" + node2_iface.ip6 = "2001::15" + session.add_link(node1=node1, node2=node2, iface1=node1_iface, iface2=node2_iface) + + # start session + core.start_session(session=session) + + +if __name__ == "__main__": + main() diff --git a/package/examples/tutorials/tutorial1/scenario_service.xml b/package/examples/tutorials/tutorial1/scenario_service.xml new file mode 100644 index 00000000..ab092f4c --- /dev/null +++ b/package/examples/tutorials/tutorial1/scenario_service.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 580916f2f0260fc3f9d0c5cbc169eb138b2f6474 Mon Sep 17 00:00:00 2001 From: "Blake J. Harnden" Date: Mon, 5 Jun 2023 11:26:14 -0700 Subject: [PATCH 42/70] docs: adding tutorial 1 images --- docs/static/tutorial-common/running-join.png | Bin 0 -> 29208 bytes docs/static/tutorial-common/running-open.png | Bin 0 -> 38161 bytes docs/static/tutorial1/link-config-dialog.png | Bin 0 -> 23465 bytes docs/static/tutorial1/link-config.png | Bin 0 -> 45009 bytes docs/static/tutorial1/scenario.png | Bin 0 -> 43542 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/static/tutorial-common/running-join.png create mode 100644 docs/static/tutorial-common/running-open.png create mode 100644 docs/static/tutorial1/link-config-dialog.png create mode 100644 docs/static/tutorial1/link-config.png create mode 100644 docs/static/tutorial1/scenario.png diff --git a/docs/static/tutorial-common/running-join.png b/docs/static/tutorial-common/running-join.png new file mode 100644 index 0000000000000000000000000000000000000000..30fbcb80f6bf60454746e416df95b29ded458e9c GIT binary patch literal 29208 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 literal 0 HcmV?d00001 diff --git a/docs/static/tutorial-common/running-open.png b/docs/static/tutorial-common/running-open.png new file mode 100644 index 0000000000000000000000000000000000000000..7e3e722c04d170bf0095cbfc8881987af5ce5759 GIT binary patch literal 38161 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 literal 0 HcmV?d00001 diff --git a/docs/static/tutorial1/link-config.png b/docs/static/tutorial1/link-config.png new file mode 100644 index 0000000000000000000000000000000000000000..35f453272005ab6b21abd9e7bb874c062abd4f5b GIT binary patch literal 45009 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 Cpg6w( literal 0 HcmV?d00001 diff --git a/docs/static/tutorial1/scenario.png b/docs/static/tutorial1/scenario.png new file mode 100644 index 0000000000000000000000000000000000000000..c1a2dfc7d847fcf63caad80e55f645633b62da56 GIT binary patch literal 43542 zcmb5W1z6Kx-#-o_BA{RpDjkC41e6XHQIt};J0wSso`8Uo0#Z_fgmia|5GE}h14ict zBR61-|M-gc{rsNixu5I$pKDxvw$Ir)@6Wr>>%7lCy-|L7o$MYN0Rh4FSMtwQ2?&U= z_&>L+SMZ;-F`_o{|1P^cd!>FA-+Zo`f5gAP>nf-1ss^-l1(`To5Lh_??Jf9R%$zMO z99-T3UAKuK()dn%=bdDoElgakfey^-*7gPA zC}@nirTZ*AY3BM-FIqzAN~!3tFMCz_aFP?<;}c_VlZZqx8f0{LK05#@5q{Pm|Xuo0}6?ip!FVw~kYG7k2N9^MnW!&?& ze|!j@;1Kd>OnKS2nks z@Ngq|P9D^4#mGUp#IhiQ9nBi81Kh`Q&(B*{US6LmoMP9-6Devg4=&w9_i%3n`Wht# z5?nrNUc%4&_es<>q>Lbq3$tIoQY_P+b*!EwY|WSa_)U5ESbN@RCKJNWKyc%q$B7R9 zmdS|gra7Srp~1;@_;qEb3&zXvHv9;I6q-T`FG2PP=AS4qlc6rLybqfrmdVcX5B0v_ zg#K&vZUQKyncy?Y648mjD|2#Sl}pzGWM4d#?5sT$S5Ag255*33__6=C#-QfenEWvF z`}z3~HP-%88nGyfp98+l2>?XlW&C@yxWU1$C!SBj=LA`^ z`TkmWv*wdGSFUCw0^k}O-n75H#|m{+(tUQjPRlDQH0J&a`;ytU`T6Q&zZ`|vri%v~70O@hD{?mpoANfdo?XL}r z3kz2xMc_Ua0Rdsh8XK9OSFV0vFohF8X9Qz+R-sU+Os1*PKf3cgYwJTuh>-KrFByPQ zGxj!ftgQEOU>Y3wpf=mE)D+^{3b$J9j5xEOZS=IgzIdVSc@mv>4w0~$2CIQIEoaPc z+)z8#zJ;xQ^ykOu!NI|zy}i9n_kxRwp5nzoHPc#@mB};EFym15{VURu zK4fBILbyHnI$fE^&VqdlAzA-8NK_j_>kA}Ma~(Y`58k0Q=ztu!3`l{rppgtP`oXc# ze@saJ`y%?JtGk<(lXLYmtO~CQ#gf~5M~-#++VR=$>fagspS+J`kf=@(b6G*t^J2n8 zvzt|2MKfF}!Rs$aoS+Qj%ksk7e@MGW3w8R{-_HR6l&JQcocak03SK28Ws#JmH{*6g zidB98kRco5PMG=LoZ@gJ!G~(}FytDX^6&vSMz+1JjWxeC^@9H&#Uf=jH8r!tU@^P9 zyT7`-^P^#nB314mf`eZ;uF0PY+8$>nz3~G;#+RMz@~3SsEanSd1$K^nM*W%xR=;y> z5sZ&a&GU=yK+Id23Q-}qh`~BdCvxxx1<6-ve@ev9*`n0Kj%B`BWYQb@g}i2*Y}JnZgjJZvOqSD5^D0 zA3WJr%$%Po>e5>>3d8ZHvBw9}GcNM=S^8 zt>oZhHR!#j$ZFbGxN^qA_e<4+b$4_0g!_|4T1HvE`uay0>Jm zk@HSi=Y=Qf(@Ezm<}vtXlW zx7!x_cwAp?%jIk@{cOZb!Vb2wo}0e%;kL5z$d9)ny~#3Q=`b3;g?@=`Nd(zxoZZXy z3@nYYT7LC;wDEF%f_LpH>S>1ned{?#RKc?#?*G^+mm(>8tXOc|)RuvXc+eEt4U zg9Qjc<-wNmS@Lqx0`eu}Vit(< znfK9TG`qo3qxq7GKOOs}o78rSJRJpf4p+_ZY&p7fkDHD3k~+3i71B@uTdsZ z7e`v%dY4x-DL*+D-dPFi?05DA_3ST&+ZNBGWhHLKS0xcMHFneO=uPe~_cRKvaXH+f zGBjOw@KW~r3gxJ7Pj61s890lmiMNOmUA1yg6_2Lq=&4)t8|GYugl*E|bO*D37@ zS={KIq?GDjB8>i=+FL(*Vm(v$^T3A4TW4oduki#4u$!i1&NN_pktUJU)9K1b|LKPD zK*_d{eJ7gT4jv`L9+ODHR=11eqK8lOdmCbGnv-y(J9YLC1A|>OfFcv??0!eW+rFpd zn`(Qcw!QD)tpRokrZzqF!UvaP^IfhPQV{|_VSfFe z4lq_z)Vp9R^cXDbC!}}JXuE~%dPjGkRBePNiSoVSFtkXa`OJWVe5xZ&5hcuj**=$$ zGxneYzB+TpXFOW0m{K~nFTQ8V*jNgf4Lvl;uI5Rg7Q*#cV)(KU1FhTE$|tjIqUi3P zyTf9a5e8W7n1oN0os?e8a2JKg#|?3R8R?<0?fm-mu%n6NF4<}H;k`=?11s~K#hE1{ z5!>llHUNKr&ah|HE+#vp*Lz*bvShMzt5UI?$S~8J!VF8wH@QDdSvb*1nJF%S+ApZ} zGo^nUu`D0@@zE>)C*KSUD_APO|F8ld@2?Zo&TK81Le>bLJchm9symS**U9Gi0t%D9 zc{7?!?1W}_X5pIMV)k}6+IfbHXpM^DRmBhOdPa%hGUyAlL%unf+)0_z)l-g{zELx; z!FnChX!{eVsR)p>p_WMJY&&+c=c*q~a!`#YuRwGVw1`M}^b`Pp{)p!Rd#bB2zfngq zk#I4pdS9$qq$o73oIYmuYqt?R2|DE(7B673w58pz1yEk@NI#^W-WQfi(@H=7D3>hc zC_mzOv}zorO+QhW0yOkZg!opH%Dj(l``STj zH&K;f*Y=KP<8z&mKk)4IGO*|Y?;NtJP%k;yp4aQznu7NH29X40rNcUGlId}H0q1p= zrO%FGYdE4cV=;_Kk*UFF7hDfKUUIA%{Q&H@%oFbbi(JI^g`q+rLOFVJvpUbLi

    %IsYrB&W&UnWv)>6?Zh_X}yRJL^w^;)iXr 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 R-qHX7002ovPDHLkV1gW~5S#!2 literal 0 HcmV?d00001 From 75a92f3a388d8997c95495c2a6eb33684bdaad4a Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Mon, 5 Jun 2023 13:07:59 -0700 Subject: [PATCH 43/70] docs: adjustments for tutorial 1 to working order --- .../utilservices/templates/ipforward.sh | 1 + docs/tutorials/common/grpc.md | 4 +-- docs/tutorials/tutorial1.md | 30 ++++++++++--------- mkdocs.yml | 3 ++ 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/daemon/core/configservices/utilservices/templates/ipforward.sh b/daemon/core/configservices/utilservices/templates/ipforward.sh index a8d3abed..75717ecf 100644 --- a/daemon/core/configservices/utilservices/templates/ipforward.sh +++ b/daemon/core/configservices/utilservices/templates/ipforward.sh @@ -13,4 +13,5 @@ sysctl -w net.ipv4.conf.default.rp_filter=0 sysctl -w net.ipv4.conf.${devname}.forwarding=1 sysctl -w net.ipv4.conf.${devname}.send_redirects=0 sysctl -w net.ipv4.conf.${devname}.rp_filter=0 +sysctl -w net.ipv6.conf.${devname}.forwarding=1 % endfor diff --git a/docs/tutorials/common/grpc.md b/docs/tutorials/common/grpc.md index ad76c81d..71630d38 100644 --- a/docs/tutorials/common/grpc.md +++ b/docs/tutorials/common/grpc.md @@ -18,5 +18,5 @@ the remaining steps of a given section. ``` 4. You will be presented with sessions to join, select the one created by the script

    - -

    \ No newline at end of file + +

    diff --git a/docs/tutorials/tutorial1.md b/docs/tutorials/tutorial1.md index c92f4b4e..75f13c7c 100644 --- a/docs/tutorials/tutorial1.md +++ b/docs/tutorials/tutorial1.md @@ -1,10 +1,12 @@ # Tutorial 1 - Wired Network +## Overview + This tutorial will cover some use cases when using a wired 2 node scenario in CORE.

    - +

    ## Files @@ -44,11 +46,11 @@ between nodes in CORE. ``` * In the GUI menu bar select **File->Open...**, then navigate to and select **scenario.xml**

    - +

    * You can now click on the **Start Session** button to run the scenario

    - +

    * Open a terminal on **n1** by double clicking it in the GUI * Run the following in **n1** terminal @@ -82,11 +84,11 @@ traffic being sent/received among many other uses. ``` * In the GUI menu bar select **File->Open...**, then navigate to and select **scenario.xml**

    - +

    * You can now click on the **Start Session** button to run the scenario

    - +

    * Open a terminal on **n1** by double clicking it in the GUI * Open a terminal on **n2** by double clicking it in the GUI @@ -121,20 +123,20 @@ beneficial for understanding how software will behave in adverse conditions. ``` * In the GUI menu bar select **File->Open...**, then navigate to and select **scenario.xml**

    - +

    * You can now click on the **Start Session** button to run the scenario

    - +

    * Right click the link between **n1** and **n2** * Select **Configure**

    - +

    * Update the loss to **25**

    - +

    * Open a terminal on **n1** by double clicking it in the GUI * Run the following in **n1** terminal @@ -164,11 +166,11 @@ within the nodes of our scenario. ``` * In the GUI menu bar select **File->Open...**, then navigate to and select **scenario.xml**

    - +

    * You can now click on the **Start Session** button to run the scenario

    - +

    * Open a terminal on **n1** by double clicking it in the GUI * Run the following in **n1** terminal @@ -214,11 +216,11 @@ using `tail -f` to observe the output of running software. ``` * In the GUI menu bar select **File->Open...**, then navigate to and select **scenario_service.xml**

    - +

    * You can now click on the **Start Session** button to run the scenario

    - +

    * Open a terminal on **n1** by double clicking it in the GUI * Run the following in **n1** terminal @@ -247,4 +249,4 @@ using `tail -f` to observe the output of running software. [10.0.0.21:44362] hello world ``` ---8<-- "common/grpc.md" \ No newline at end of file +--8<-- "tutorials/common/grpc.md" diff --git a/mkdocs.yml b/mkdocs.yml index 63009774..d44b7ca2 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -38,6 +38,9 @@ nav: - Overview: install.md - Ubuntu: install_ubuntu.md - CentOS: install_centos.md + - Tutorials: + - Setup: tutorials/setup.md + - Tutorial 1: tutorials/tutorial1.md - Detailed Topics: - GUI: gui.md - Node Types: From c554983436bd7b61f9d5d7543d9cd498c0d002c7 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Mon, 5 Jun 2023 13:27:34 -0700 Subject: [PATCH 44/70] docs: adding tutorial 4 --- docs/tutorials/tutorial4.md | 121 ++++++++++++++++++ mkdocs.yml | 1 + .../tutorials/tutorial4/tests/conftest.py | 24 ++++ .../tutorials/tutorial4/tests/test_ping.py | 35 +++++ 4 files changed, 181 insertions(+) create mode 100644 docs/tutorials/tutorial4.md create mode 100644 package/examples/tutorials/tutorial4/tests/conftest.py create mode 100644 package/examples/tutorials/tutorial4/tests/test_ping.py diff --git a/docs/tutorials/tutorial4.md b/docs/tutorials/tutorial4.md new file mode 100644 index 00000000..77ac1c94 --- /dev/null +++ b/docs/tutorials/tutorial4.md @@ -0,0 +1,121 @@ +# Tutorial 4 - Tests + +## Overview + +A use case for CORE would be to help automate integration tests for running +software within a network. This tutorial covers using CORE with the python +pytest testing framework. It will show how you can define tests, for different +use cases to validate software and outcomes within a defined network. Using +pytest, you would create tests using all the standard pytest functionality. +Creating a test file, and then defining test functions to run. For these tests, +we are leveraging the CORE library directly and the API it provides. + +Refer to the [pytest documentation](https://docs.pytest.org) for indepth +information on how to write tests with pytest. + +## Files + +A directory is used for containing your tests. Within this directory we need a +**conftest.py**, which pytest will pick up to help define and provide +test fixtures, which will be leveraged within our tests. + +* tests + * conftest.py - file used by pytest to define fixtures, which can be shared across tests + * test_ping.py - defines test classes/functions to run + +## Test Fixtures + +Below are the definitions for fixture you can define to facilitate and make +creating CORE based tests easier. + +The global session fixture creates one **CoreEmu** object for the entire +test session, yields it for testing, and calls shutdown when everything +is over. + +``` python +@pytest.fixture(scope="session") +def global_session(): + core = CoreEmu() + session = core.create_session() + session.set_state(EventTypes.CONFIGURATION_STATE) + yield session + core.shutdown() +``` + +The regular session fixture leverages the global session fixture. It +will set the correct state for each test case, yield the session for a test, +and then clear the session after a test finishes to prepare for the next +test. + +``` python +@pytest.fixture +def session(global_session): + global_session.set_state(EventTypes.CONFIGURATION_STATE) + yield global_session + global_session.clear() +``` + +The ip prefixes fixture help provide a preconfigured convenience for +creating and assigning interfaces to nodes, when creating your network +within a test. The address subnet can be whatever you desire. + +``` python +@pytest.fixture(scope="session") +def ip_prefixes(): + return IpPrefixes(ip4_prefix="10.0.0.0/24") +``` + +## Test Functions + +Within a pytest test file, you have the freedom to create any kind of +test you like, but they will all follow a similar formula. + +* define a test function that will leverage the session and ip prefixes fixtures +* then create a network to test, using the session fixture +* run commands within nodes as desired, to test out your use case +* validate command result or output for expected behavior to pass or fail + +In the test below, we create a simple 2 node wired network and validate +node1 can ping node2 successfully. + +``` python +def test_success(self, session: Session, ip_prefixes: IpPrefixes): + # create nodes + node1 = session.add_node(CoreNode) + node2 = session.add_node(CoreNode) + + # link nodes together + iface1_data = ip_prefixes.create_iface(node1) + iface2_data = ip_prefixes.create_iface(node2) + session.add_link(node1.id, node2.id, iface1_data, iface2_data) + + # ping node, expect a successful command + node1.cmd(f"ping -c 1 {iface2_data.ip4}") +``` + +## Install Pytest + +Since we are running an automated test within CORE, we will need to install +pytest within the python interpreter used by CORE. + +``` shell +sudo /opt/core/venv/bin/python -m pip install pytest +``` + +## Running Tests + +You can run your own or the provided tests, by running the following. + +``` shell +cd +sudo /opt/core/venv/bin/python -m pytest -v +``` + +If you run the provided tests, you would expect to see the two tests +running and passing. + +``` shell +tests/test_ping.py::TestPing::test_success PASSED [ 50%] +tests/test_ping.py::TestPing::test_failure PASSED [100%] +``` + diff --git a/mkdocs.yml b/mkdocs.yml index d44b7ca2..74bfd331 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -41,6 +41,7 @@ nav: - Tutorials: - Setup: tutorials/setup.md - Tutorial 1: tutorials/tutorial1.md + - Tutorial 4: tutorials/tutorial4.md - Detailed Topics: - GUI: gui.md - Node Types: diff --git a/package/examples/tutorials/tutorial4/tests/conftest.py b/package/examples/tutorials/tutorial4/tests/conftest.py new file mode 100644 index 00000000..fcd558aa --- /dev/null +++ b/package/examples/tutorials/tutorial4/tests/conftest.py @@ -0,0 +1,24 @@ +import pytest +from core.emulator.coreemu import CoreEmu +from core.emulator.data import IpPrefixes +from core.emulator.enumerations import EventTypes + + +@pytest.fixture(scope="session") +def global_session(): + core = CoreEmu() + session = core.create_session() + yield session + core.shutdown() + + +@pytest.fixture +def session(global_session): + global_session.set_state(EventTypes.CONFIGURATION_STATE) + yield global_session + global_session.clear() + + +@pytest.fixture(scope="session") +def ip_prefixes(): + return IpPrefixes(ip4_prefix="10.0.0.0/24") diff --git a/package/examples/tutorials/tutorial4/tests/test_ping.py b/package/examples/tutorials/tutorial4/tests/test_ping.py new file mode 100644 index 00000000..afb9f8cd --- /dev/null +++ b/package/examples/tutorials/tutorial4/tests/test_ping.py @@ -0,0 +1,35 @@ +import pytest +from core.emulator.data import IpPrefixes, LinkOptions +from core.emulator.session import Session +from core.errors import CoreCommandError +from core.nodes.base import CoreNode + + +class TestPing: + def test_success(self, session: Session, ip_prefixes: IpPrefixes): + # create nodes + node1 = session.add_node(CoreNode) + node2 = session.add_node(CoreNode) + + # link nodes together + iface1_data = ip_prefixes.create_iface(node1) + iface2_data = ip_prefixes.create_iface(node2) + session.add_link(node1.id, node2.id, iface1_data, iface2_data) + + # ping node, expect a successful command + node1.cmd(f"ping -c 1 {iface2_data.ip4}") + + def test_failure(self, session: Session, ip_prefixes: IpPrefixes): + # create nodes + node1 = session.add_node(CoreNode) + node2 = session.add_node(CoreNode) + + # link nodes together + iface1_data = ip_prefixes.create_iface(node1) + iface2_data = ip_prefixes.create_iface(node2) + options = LinkOptions(loss=100.0) + session.add_link(node1.id, node2.id, iface1_data, iface2_data, options) + + # ping node, expect command to fail and raise exception due to 100% loss + with pytest.raises(CoreCommandError): + node1.cmd(f"ping -c 1 {iface2_data.ip4}") From 2176fcc5a3fe08b51eee800007235cb26cf367ea Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Mon, 5 Jun 2023 13:57:06 -0700 Subject: [PATCH 45/70] docs: adding tutorial 7 --- docs/static/tutorial7/scenario.png | Bin 0 -> 51422 bytes docs/tutorials/tutorial7.md | 236 ++++++++++++++++++ mkdocs.yml | 1 + .../examples/tutorials/tutorial7/scenario.py | 52 ++++ .../examples/tutorials/tutorial7/scenario.xml | 90 +++++++ .../tutorials/tutorial7/scenario_service.py | 53 ++++ .../tutorials/tutorial7/scenario_service.xml | 91 +++++++ 7 files changed, 523 insertions(+) create mode 100644 docs/static/tutorial7/scenario.png create mode 100644 docs/tutorials/tutorial7.md create mode 100644 package/examples/tutorials/tutorial7/scenario.py create mode 100644 package/examples/tutorials/tutorial7/scenario.xml create mode 100644 package/examples/tutorials/tutorial7/scenario_service.py create mode 100644 package/examples/tutorials/tutorial7/scenario_service.xml diff --git a/docs/static/tutorial7/scenario.png b/docs/static/tutorial7/scenario.png new file mode 100644 index 0000000000000000000000000000000000000000..1c677aa339468cac652ac0ce0bf26822f4c92944 GIT binary patch literal 51422 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 + +

    + +For more detailed information on EMANE see the following: + +* [EMANE in CORE](../emane.md) +* [EMANE Wiki](https://github.com/adjacentlink/emane/wiki) + +## Files + +Below is a list of the files used for this tutorial. + +* 2 node EMANE ieee80211abg scenario + * scenario.xml + * scenario.py +* 2 node EMANE ieee80211abg scenario, with **n2** running the "Chat App Server" service + * scenario_service.xml + * scenario_service.py + +## Running this Tutorial + +This section covers interactions that can be carried out for this scenario. + +Our scenario has the following nodes and addresses: + +* emane1 - no address, this is a representative node for the EMANE network +* n2 - 10.0.0.1 +* n3 - 10.0.0.2 + +All usages below assume a clean scenario start. + +### Using Ping + +Using the command line utility **ping** can be a good way to verify connectivity +between nodes in CORE. + +* Make sure the CORE daemon is running a terminal, if not already + ``` shell + sudop core-daemon + ``` +* In another terminal run the GUI + ``` shell + core-gui + ``` +* In the GUI menu bar select **File->Open...**, then navigate to and select **scenario.xml** +

    + +

    +* You can now click on the **Start Session** button to run the scenario +

    + +

    +* Open a terminal on **n2** by double clicking it in the GUI +* Run the following in **n2** terminal + ``` shell + ping -c 3 10.0.0.2 + ``` +* You should see the following output + ``` shell + PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data. + 64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=7.93 ms + 64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=3.07 ms + 64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=3.05 ms + + --- 10.0.0.2 ping statistics --- + 3 packets transmitted, 3 received, 0% packet loss, time 2000ms + rtt min/avg/max/mdev = 3.049/4.685/7.932/2.295 ms + ``` + +### Using Tcpdump + +Using **tcpdump** can be very beneficial for examining a network. You can verify +traffic being sent/received among many other uses. + +* Make sure the CORE daemon is running a terminal, if not already + ``` shell + sudop core-daemon + ``` +* In another terminal run the GUI + ``` shell + core-gui + ``` +* In the GUI menu bar select **File->Open...**, then navigate to and select **scenario.xml** +

    + +

    +* You can now click on the **Start Session** button to run the scenario +

    + +

    +* Open a terminal on **n2** by double clicking it in the GUI +* Open a terminal on **n3** by double clicking it in the GUI +* Run the following in **n3** terminal + ``` shell + tcpdump -lenni eth0 + ``` +* Run the following in **n2** terminal + ``` shell + ping -c 1 10.0.0.2 + ``` +* You should see the following in **n2** terminal + ``` shell + tcpdump: verbose output suppressed, use -v[v]... for full protocol decode + listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes + 14:56:25.414283 02:02:00:00:00:01 > 02:02:00:00:00:02, ethertype IPv4 (0x0800), length 98: 10.0.0.1 > 10.0.0.2: ICMP echo request, id 64832, seq 1, length 64 + 14:56:25.414303 02:02:00:00:00:02 > 02:02:00:00:00:01, ethertype IPv4 (0x0800), length 98: 10.0.0.2 > 10.0.0.1: ICMP echo reply, id 64832, seq 1, length 64 + ``` + +### Running Software + +We will now leverage the installed Chat App software to stand up a server and client +within the nodes of our scenario. + +* Make sure the CORE daemon is running a terminal, if not already + ``` shell + sudop core-daemon + ``` +* In another terminal run the GUI + ``` shell + core-gui + ``` +* In the GUI menu bar select **File->Open...**, then navigate to and select **scenario.xml** +

    + +

    +* You can now click on the **Start Session** button to run the scenario +

    + +

    +* Open a terminal on **n2** by double clicking it in the GUI +* Run the following in **n2** terminal + ``` shell + export PATH=$PATH:/usr/local/bin + chatapp-server + ``` +* Open a terminal on **n3** by double clicking it in the GUI +* Run the following in **n3** terminal + ``` shell + export PATH=$PATH:/usr/local/bin + chatapp-client -a 10.0.0.1 + ``` +* You will see the following output in **n1** terminal + ``` shell + chat server listening on: :9001 + [server] 10.0.0.1:44362 joining + ``` +* Type the following in **n2** terminal and hit enter + ``` shell + hello world + ``` +* You will see the following output in **n1** terminal + ``` shell + chat server listening on: :9001 + [server] 10.0.0.2:44362 joining + [10.0.0.2:44362] hello world + ``` + +### Tailing a Log + +In this case we are using the service based scenario. This will automatically start +and run the Chat App Server on **n2** and log to a file. This case will demonstrate +using `tail -f` to observe the output of running software. + +* Make sure the CORE daemon is running a terminal, if not already + ``` shell + sudop core-daemon + ``` +* In another terminal run the GUI + ``` shell + core-gui + ``` +* In the GUI menu bar select **File->Open...**, then navigate to and select **scenario_service.xml** +

    + +

    +* You can now click on the **Start Session** button to run the scenario +

    + +

    +* Open a terminal on **n2** by double clicking it in the GUI +* Run the following in **n2** terminal + ``` shell + tail -f chatapp.log + ``` +* Open a terminal on **n3** by double clicking it in the GUI +* Run the following in **n3** terminal + ``` shell + export PATH=$PATH:/usr/local/bin + chatapp-client -a 10.0.0.1 + ``` +* You will see the following output in **n2** terminal + ``` shell + chat server listening on: :9001 + [server] 10.0.0.2:44362 joining + ``` +* Type the following in **n3** terminal and hit enter + ``` shell + hello world + ``` +* You will see the following output in **n2** terminal + ``` shell + chat server listening on: :9001 + [server] 10.0.0.2:44362 joining + [10.0.0.2:44362] hello world + ``` + +## Advanced Topics + +This section will cover some high level topics and examples for running and +using EMANE in CORE. You can find more detailed tutorials and examples at +the [EMANE Tutorial](https://github.com/adjacentlink/emane-tutorial/wiki). + +!!! note + + Every topic below assumes CORE, EMANE, and OSPF MDR have been installed. + + Scenario files to support the EMANE topics below will be found in + the GUI default directory for opening XML files. + +| Topic | Model | Description | +|-----------------------------------------|---------|-----------------------------------------------------------| +| [XML Files](../emane/files.md) | RF Pipe | Overview of generated XML files used to drive EMANE | +| [GPSD](../emane/gpsd.md) | RF Pipe | Overview of running and integrating gpsd with EMANE | +| [Precomputed](../emane/precomputed.md) | RF Pipe | Overview of using the precomputed propagation model | +| [EEL](../emane/eel.md) | RF Pipe | Overview of using the Emulation Event Log (EEL) Generator | +| [Antenna Profiles](../emane/antenna.md) | RF Pipe | Overview of using antenna profiles in EMANE | + +--8<-- "tutorials/common/grpc.md" diff --git a/mkdocs.yml b/mkdocs.yml index 74bfd331..4879e09e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -42,6 +42,7 @@ nav: - Setup: tutorials/setup.md - Tutorial 1: tutorials/tutorial1.md - Tutorial 4: tutorials/tutorial4.md + - Tutorial 7: tutorials/tutorial7.md - Detailed Topics: - GUI: gui.md - Node Types: diff --git a/package/examples/tutorials/tutorial7/scenario.py b/package/examples/tutorials/tutorial7/scenario.py new file mode 100644 index 00000000..6c4125ed --- /dev/null +++ b/package/examples/tutorials/tutorial7/scenario.py @@ -0,0 +1,52 @@ +from core.api.grpc import client +from core.api.grpc.wrappers import Position, Interface, NodeType +from core.emane.models.ieee80211abg import EmaneIeee80211abgModel + + +def main(): + # interface helper + iface_helper = client.InterfaceHelper(ip4_prefix="10.0.0.0/24", ip6_prefix="2001::/64") + + # create grpc client and connect + core = client.CoreGrpcClient() + core.connect() + + # create session + session = core.create_session() + + # create nodes + position = Position(x=375, y=500) + emane_net = session.add_node( + _id=1, + _type=NodeType.EMANE, + name="emane1", + position=position, + emane=EmaneIeee80211abgModel.name + ) + position = Position(x=250, y=250) + node2 = session.add_node(_id=2, model="mdr", name="n2", position=position) + position = Position(x=500, y=250) + node3 = session.add_node(_id=3, model="mdr", name="n3", position=position) + + # create links to emane + node2_iface = iface_helper.create_iface(node_id=node2.id, iface_id=0) + node2_iface.ip4 = "10.0.0.1" + node2_iface.ip4_mask = 32 + node2_iface.ip6 = "2001::1" + node2_iface.ip6_mask = 128 + # emane_iface1 = Interface(id=0) + session.add_link(node1=node2, node2=emane_net, iface1=node2_iface) + node3_iface = iface_helper.create_iface(node_id=node3.id, iface_id=0) + node3_iface.ip4 = "10.0.0.2" + node3_iface.ip4_mask = 32 + node3_iface.ip6 = "2001::2" + node3_iface.ip6_mask = 128 + # emane_iface2 = Interface(id=1) + session.add_link(node1=node3, node2=emane_net, iface1=node3_iface) + + # start session + core.start_session(session=session) + + +if __name__ == "__main__": + main() diff --git a/package/examples/tutorials/tutorial7/scenario.xml b/package/examples/tutorials/tutorial7/scenario.xml new file mode 100644 index 00000000..721a7b8f --- /dev/null +++ b/package/examples/tutorials/tutorial7/scenario.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/package/examples/tutorials/tutorial7/scenario_service.py b/package/examples/tutorials/tutorial7/scenario_service.py new file mode 100644 index 00000000..1f8b0f72 --- /dev/null +++ b/package/examples/tutorials/tutorial7/scenario_service.py @@ -0,0 +1,53 @@ +from core.api.grpc import client +from core.api.grpc.wrappers import Position, Interface, NodeType +from core.emane.models.ieee80211abg import EmaneIeee80211abgModel + + +def main(): + # interface helper + iface_helper = client.InterfaceHelper(ip4_prefix="10.0.0.0/24", ip6_prefix="2001::/64") + + # create grpc client and connect + core = client.CoreGrpcClient() + core.connect() + + # create session + session = core.create_session() + + # create nodes + position = Position(x=375, y=500) + emane_net = session.add_node( + _id=1, + _type=NodeType.EMANE, + name="emane1", + position=position, + emane=EmaneIeee80211abgModel.name + ) + position = Position(x=250, y=250) + node2 = session.add_node(_id=2, model="mdr", name="n2", position=position) + node2.config_services.add("ChatApp Server") + position = Position(x=500, y=250) + node3 = session.add_node(_id=3, model="mdr", name="n3", position=position) + + # create links to emane + node2_iface = iface_helper.create_iface(node_id=node2.id, iface_id=0) + node2_iface.ip4 = "10.0.0.1" + node2_iface.ip4_mask = 32 + node2_iface.ip6 = "2001::1" + node2_iface.ip6_mask = 128 + # emane_iface1 = Interface(id=0) + session.add_link(node1=node2, node2=emane_net, iface1=node2_iface) + node3_iface = iface_helper.create_iface(node_id=node3.id, iface_id=0) + node3_iface.ip4 = "10.0.0.2" + node3_iface.ip4_mask = 32 + node3_iface.ip6 = "2001::2" + node3_iface.ip6_mask = 128 + # emane_iface2 = Interface(id=1) + session.add_link(node1=node3, node2=emane_net, iface1=node3_iface) + + # start session + core.start_session(session=session) + + +if __name__ == "__main__": + main() diff --git a/package/examples/tutorials/tutorial7/scenario_service.xml b/package/examples/tutorials/tutorial7/scenario_service.xml new file mode 100644 index 00000000..da2cb8e8 --- /dev/null +++ b/package/examples/tutorials/tutorial7/scenario_service.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 0b1a44e9b2c5173f2893ebc84bd8036dfbc0a0ba Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Mon, 5 Jun 2023 14:22:08 -0700 Subject: [PATCH 46/70] docs: cleanup tutorial scripts --- package/examples/tutorials/tutorial1/scenario.py | 5 ++++- package/examples/tutorials/tutorial1/scenario_service.py | 5 ++++- package/examples/tutorials/tutorial7/scenario.py | 9 +++++---- package/examples/tutorials/tutorial7/scenario_service.py | 9 +++++---- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/package/examples/tutorials/tutorial1/scenario.py b/package/examples/tutorials/tutorial1/scenario.py index 1f5a45e6..0c7d33ac 100644 --- a/package/examples/tutorials/tutorial1/scenario.py +++ b/package/examples/tutorials/tutorial1/scenario.py @@ -4,7 +4,10 @@ from core.api.grpc.wrappers import Position def main(): # interface helper - iface_helper = client.InterfaceHelper(ip4_prefix="10.0.0.0/24", ip6_prefix="2001::/64") + iface_helper = client.InterfaceHelper( + ip4_prefix="10.0.0.0/24", + ip6_prefix="2001::/64", + ) # create grpc client and connect core = client.CoreGrpcClient() diff --git a/package/examples/tutorials/tutorial1/scenario_service.py b/package/examples/tutorials/tutorial1/scenario_service.py index bc2c6cc8..5a3c5508 100644 --- a/package/examples/tutorials/tutorial1/scenario_service.py +++ b/package/examples/tutorials/tutorial1/scenario_service.py @@ -4,7 +4,10 @@ from core.api.grpc.wrappers import Position def main(): # interface helper - iface_helper = client.InterfaceHelper(ip4_prefix="10.0.0.0/24", ip6_prefix="2001::/64") + iface_helper = client.InterfaceHelper( + ip4_prefix="10.0.0.0/24", + ip6_prefix="2001::/64", + ) # create grpc client and connect core = client.CoreGrpcClient() diff --git a/package/examples/tutorials/tutorial7/scenario.py b/package/examples/tutorials/tutorial7/scenario.py index 6c4125ed..f8132ea5 100644 --- a/package/examples/tutorials/tutorial7/scenario.py +++ b/package/examples/tutorials/tutorial7/scenario.py @@ -1,11 +1,14 @@ from core.api.grpc import client -from core.api.grpc.wrappers import Position, Interface, NodeType +from core.api.grpc.wrappers import Position, NodeType from core.emane.models.ieee80211abg import EmaneIeee80211abgModel def main(): # interface helper - iface_helper = client.InterfaceHelper(ip4_prefix="10.0.0.0/24", ip6_prefix="2001::/64") + iface_helper = client.InterfaceHelper( + ip4_prefix="10.0.0.0/24", + ip6_prefix="2001::/64", + ) # create grpc client and connect core = client.CoreGrpcClient() @@ -34,14 +37,12 @@ def main(): node2_iface.ip4_mask = 32 node2_iface.ip6 = "2001::1" node2_iface.ip6_mask = 128 - # emane_iface1 = Interface(id=0) session.add_link(node1=node2, node2=emane_net, iface1=node2_iface) node3_iface = iface_helper.create_iface(node_id=node3.id, iface_id=0) node3_iface.ip4 = "10.0.0.2" node3_iface.ip4_mask = 32 node3_iface.ip6 = "2001::2" node3_iface.ip6_mask = 128 - # emane_iface2 = Interface(id=1) session.add_link(node1=node3, node2=emane_net, iface1=node3_iface) # start session diff --git a/package/examples/tutorials/tutorial7/scenario_service.py b/package/examples/tutorials/tutorial7/scenario_service.py index 1f8b0f72..65b28c45 100644 --- a/package/examples/tutorials/tutorial7/scenario_service.py +++ b/package/examples/tutorials/tutorial7/scenario_service.py @@ -1,11 +1,14 @@ from core.api.grpc import client -from core.api.grpc.wrappers import Position, Interface, NodeType +from core.api.grpc.wrappers import Position, NodeType from core.emane.models.ieee80211abg import EmaneIeee80211abgModel def main(): # interface helper - iface_helper = client.InterfaceHelper(ip4_prefix="10.0.0.0/24", ip6_prefix="2001::/64") + iface_helper = client.InterfaceHelper( + ip4_prefix="10.0.0.0/24", + ip6_prefix="2001::/64", + ) # create grpc client and connect core = client.CoreGrpcClient() @@ -35,14 +38,12 @@ def main(): node2_iface.ip4_mask = 32 node2_iface.ip6 = "2001::1" node2_iface.ip6_mask = 128 - # emane_iface1 = Interface(id=0) session.add_link(node1=node2, node2=emane_net, iface1=node2_iface) node3_iface = iface_helper.create_iface(node_id=node3.id, iface_id=0) node3_iface.ip4 = "10.0.0.2" node3_iface.ip4_mask = 32 node3_iface.ip6 = "2001::2" node3_iface.ip6_mask = 128 - # emane_iface2 = Interface(id=1) session.add_link(node1=node3, node2=emane_net, iface1=node3_iface) # start session From 9d88eba1f55ff5d580ddb317d94487c854e023eb Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Tue, 6 Jun 2023 09:40:44 -0700 Subject: [PATCH 47/70] docs: added tutorials overview and tutorial 6 --- docs/static/tutorial6/configure-icon.png | Bin 0 -> 25676 bytes docs/static/tutorial6/create-nodes.png | Bin 0 -> 26894 bytes docs/static/tutorial6/hidden-nodes.png | Bin 0 -> 9233 bytes docs/static/tutorial6/linked-nodes.png | Bin 0 -> 16011 bytes docs/static/tutorial6/only-node1-moving.png | Bin 0 -> 705043 bytes .../static/tutorial6/scenario-with-motion.png | Bin 0 -> 908602 bytes .../tutorial6/scenario-with-terrain.png | Bin 0 -> 1002417 bytes docs/static/tutorial6/select-wallpaper.png | Bin 0 -> 91543 bytes docs/static/tutorial6/wlan-links.png | Bin 0 -> 15936 bytes docs/tutorials/overview.md | 29 +++++ docs/tutorials/tutorial6.md | 97 +++++++++++++++ mkdocs.yml | 2 + .../tutorial6/completed-scenario.xml | 114 ++++++++++++++++++ package/examples/tutorials/tutorial6/demo.py | 103 ++++++++++++++++ .../examples/tutorials/tutorial6/drone.png | Bin 0 -> 2044 bytes .../examples/tutorials/tutorial6/terrain.png | Bin 0 -> 2123877 bytes 16 files changed, 345 insertions(+) create mode 100644 docs/static/tutorial6/configure-icon.png create mode 100644 docs/static/tutorial6/create-nodes.png create mode 100644 docs/static/tutorial6/hidden-nodes.png create mode 100644 docs/static/tutorial6/linked-nodes.png create mode 100644 docs/static/tutorial6/only-node1-moving.png create mode 100644 docs/static/tutorial6/scenario-with-motion.png create mode 100644 docs/static/tutorial6/scenario-with-terrain.png create mode 100644 docs/static/tutorial6/select-wallpaper.png create mode 100644 docs/static/tutorial6/wlan-links.png create mode 100644 docs/tutorials/overview.md create mode 100644 docs/tutorials/tutorial6.md create mode 100644 package/examples/tutorials/tutorial6/completed-scenario.xml create mode 100644 package/examples/tutorials/tutorial6/demo.py create mode 100644 package/examples/tutorials/tutorial6/drone.png create mode 100644 package/examples/tutorials/tutorial6/terrain.png diff --git a/docs/static/tutorial6/configure-icon.png b/docs/static/tutorial6/configure-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..52a9e2e880766834143aa7127bf6f77e04a2b02e GIT binary patch literal 25676 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
    Hf}p)SA~*X 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 literal 0 HcmV?d00001 diff --git a/docs/static/tutorial6/create-nodes.png b/docs/static/tutorial6/create-nodes.png new file mode 100644 index 0000000000000000000000000000000000000000..38257e24116bcd264942f716d0bb7cf4dbf28c56 GIT binary patch literal 26894 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 literal 0 HcmV?d00001 diff --git a/docs/static/tutorial6/linked-nodes.png b/docs/static/tutorial6/linked-nodes.png new file mode 100644 index 0000000000000000000000000000000000000000..8e75007e146cfdb3262069177d38c416d0f0d7ad GIT binary patch literal 16011 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 V39(^}3@RW8lN1GE7(#mf{|DO?X7&I8 literal 0 HcmV?d00001 diff --git a/docs/static/tutorial6/only-node1-moving.png b/docs/static/tutorial6/only-node1-moving.png new file mode 100644 index 0000000000000000000000000000000000000000..01ac2ebd0c4c3dd9d81f0533e3772e7320445f0e GIT binary patch literal 705043 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≊6O2Fk$xl^g1KSbr!xNkf{E|a>6D$T9fX=$! z=sFlburK_rIO5b2iot$$A3j`UD*9u8n>5m%ehbKvt@wcabm^n|!9+dAuYEQx+J$fO zOkde6UiNJ1uw2@!iK$$Iu6-^4{i1EMZ3t2+=!gvGU&tI%{~${Txu`zHr}z9m)a`vX z{JY-$f!~|MJ#+w|7lje;&RgDQZu;QoyW^~0YiqI4GYP=>aCFNG6L znEg)W4R3hE^tTtvS3BIXCJLaWt@TJ1Nlbr5z5$$&HKV}Uq%<%nLKhW>0D{|i7{DTy z2oG~3KKBSAL<1=Z>|7jS5g7&22t>reki}5e6x1d-VJd`!un0DNL~Mg2*xT;uUlHOW1Dq}tZ!3^b%sVMNgqabP+aUnAQFy(-!d`;

    @a(s0h69qUTKxYCzlJ+rmAg!_1$5$S~B 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

    !WeAb;J zLfLx4NJQ98`hY#mfLV>(7%(2jVJx^GK`K`%)f#x2hw?tbg)++X3_`adiS~TfHuN%T zF^kVvqVye!qg3g36zbM3o5FMq_b7}AFqu%s%h?O(y5k;UW}Fzc@RoKdFN`KzWR4=R zoQu_KdPyh2g8}XAO9+BB<`xV9Yje>SIAY|%&>$Gi&AoyQj6Lh!^sTfUV}ozs9eHlu zVxBv3@?`bt`Qnf~e>uWP07gWU!JX{qPni$A%DRD>xybC81N@cH3LFR} zhGjQU0;k)I1~e2Uo@Zr!7`zlJM-06|2HNI4*xmBhtsY3A^a?(KqbRz_zif$iW@8X5 z+2=enlF)l)ECV;RAqtQ7WVC%(jzq?JF1Wvw`#8zy(LWgn3XGx8AQS|0uJ+(C=x)|TQ6B36#@*1z7Coa!Dk!-_jHFl|G?cV zJk`gT_w;3~l$*=%vYP;zkM+FE?`X_B16(jn#Y3GF8~HFEqnWc(8+v8j@ZEPbUtA^P zoR!N_P-M)x$h@U-9Op&;s!9-yQf5wGlPR8&vE`&PM#xAogdY_+D>;#;Ip1ikmRJbvgcj_CO@0U#sz@P& z(Y;OL2L2--I2{5|f^=Zw5|}~TbmNo#p}!Ii0h&ykAd|V_U9y8tap|*YVQ#!=9R1^C`j&A^zgS*}r#NJS zUF-`Ecfkw~r%iNbyc|KYuw07=-64i^d<%X9&y#m>zi=K}>bRW^F7d;_zhK%c_KeS( z`Cc*QdCtG*oI=7GI(6o3#ui<_c4Kf5n^&FKF=OdqtP$B&nOWr@)1 z@I^*kkAAiXjcOXz3ijH;+w>WkEn900gFcd_^*7oAZ{NT8!VAT_k3aTE1;XKg{;q&Z zVBz9`qbn7ZHfA(-fphWz%-HyT=X~o2{Yawu&C;8(m8*(Q?uYmF#ojOdmUhTx^vyov zy!BFN_=#M;+wrn^v8v4#?YXaiE6>ks6PvaaZtARif+82WLS@4cgII+6@v7r+Z!&hp4QgFbw3nG4;Zblg0R8GpH#BW_tG8`FMK=gyvutyd%V=*s*TKb1gV1rrqp(F~wp#np>2Yk^%4<Dbf7IA2)t8&g&JZv$4n7DxpeOwn9cJES5E)$?8D^XEJHbe1&?sj>D=EIhx<3;Y~Q<=`&K?^FP|E1|MlmeYS(6a`SzRY_SbiP zufu)is>S=uOPL%vc&N63mn{t+RtECMt!rUa(Pn}=22OxU0Eco5;2cUsVNIhmRAu=} z+2!oa0uBHWcdLOiE)aHdPh2k8_8W4dTen++A?;Ic##2f# z%y%uu8Cs&a92c{0t&Kix5*3DylXd0#)lzbIBixLg!o@5uf|4*0g~I4EKki*F;z%fF z4umy^0t-y(Sw^@%JP)5De2iL7j;JD-3zXQIT6vYRbHq8O1OR6SU4fzC3Pp~=2^5jI zg9i?jP|HyJnDZNkS8l^_;S5B61izLP^zvSPDod2Hfi#K)owyi!GO#Nn$T?`nUiiw` zp%$%}M>iN4JF{u00_hoFUuR80xI7Erf=+g~j(=1I%BBKi1MCkW?V6J1q0^j z*sGlF%o$7><^*tM`2#03U38d%xz9ZuiS7XO5^tIC%BrS)8|WQ9cC;LGikaaia{vtI zYonL*f$7|)QGvC{J>Ioei4e!5cpB6e2d@k>0$hnNW7KCf$SESQEfKksvD>`sPK+DD z1f`9P%{p5%&&c=)5TR?lt+GX_eBUfAhHa21<7kNqnzObWTqy<7S+ooA6e?%Jdb>+8 zSm4x>75qej2XzILZj?vihGzxIC;^JjXBj)eNd_z9(mj+gB~-ka|GUr=ew5*%#K5Co zfmw-^GNI5!4C%b;yWrG2{8wlHBd_%V~p=1j=iTB9WTK9g{SITQ?O=~{K;7Hfb3VzCPQav<^O>*r&5+Yv>twoTa_vHKmrFx34F}4 zv`2TDe()IFpigC`rM%~L8Bjrr(5N|c8f4Bab5WX&-^lQLG2Cnb#=+UTZAXl1%b1+u z49Z<=+LheB3^fK4I-f`WL{43aqh>c$#&QLa;3fQcBYe0Z^PQI$9TQuy=uO~3HolC6 zLRs`!`WN|k{;yz{GQBf_xpl2%p-rL40J2?a_~n`K&~^J5%mqLKC$g~iso<=I7G+J8 z5u(GYObU+BGoxIkhM)_YA+uB~lz|r*(NFeFK`RU>@>f>nb~&&s>P+ieUXtHcX5k~U zN&u#ewmIYH^2~I}RJw`L2%dtJDsJc!a+Pj%*)%X5J?{tLR5Id#H4= zdo%dT63h5=v;}Dd>d3Ygu`$R#RX}#s7MLDzAP^`(P_&h~;nBg-wN$M{Mx1%FAHL|c zD#gq=@C!QtJ>pxzDs(^wf>&+y6`TVyk;5Jl91}3PdZ}*$TTW?Y-uws|`oG4Nb_EXM zq-Wqdeg&L69k5e6>N?EHn;sA#L+K~Z7y2w+l`)cUcxid;0qr@x#khgfHN;?$XZR^~q%n(zCophXo2@|JUd*{xd%UJr7F7n6sjtf*> zWmz9b_iCKymtK0cs*99&E4dxy>ZNJ+?rg@fp*{APy@~dgV~#$|jRRZH1jk@(9Bfka zG#5JK#TQ@9xLbSVk%vp37`G#@{HDsxyZNA9b0aI*#uIVqjH3d5wVVFJ$}pop{DwYy zrgo$)j?A`+pXUg~!QrN31$@j?;DWvKkWJD8PkT}b0D-%+wpXnhZ$}Ovt9=3Nl&|s> zjSB#Pe^mvgE$!I+(j%#|224^x;F;fpx8M?-+^ZdJ-V9#YM06TB zfyrQ#(64aC2Gn*YSTdjN@I81;Y@BFo#@AJ5eeJq6UG}Cw^x+=!^rAz^%zPDC+HdE0 z1w2&mkO>)D;A0t%f9PE9+7_5XW&D3z3~abH0tN z3}J-!PaVA&rE$4UY*}A|m~s%!eD2FHv{NU~wiRQ&1XVO0GhLp(TIHk5mWj0XHIs>3-u74t7>32IIQ9o$JJqgTj?ul;IyC2x zcjb2Wc$~4zH)0SjsjNR(c;@rJ`sH@|=(#qwA%;#6!u@dn$3FP!cHpJMZOg8S_UR9O zq3wI@p%P$Ef8^PA?7-=^=g}Q?ADj~sANuLfwAVuu`ySm{3V8X*iW0&vKL1)fe(Xd! z7pNA)!`TOa;lu5P@4V8s@7!Dzy>vN2(b_Nn(x=;@gD2YNt?M%O7+|46cu;aZdsoTm zXk?4Zf*AP=Ip<1=Zq&}1cF|;1cz^kuq2Z~^aoQG_5H~kj3%gl!N*tZTDO?#kWXw!W zUM^>2>4+fD%@{2)DsJ6que@|5eK-ewVP&;AV|VYxQHW7H83%XIBRkvt#n#$ik5hWP zed42^Yp;ZUo_ONXF319Z#>>Zk^>g8`7upk#KOVzFX77GEod50L{Ri#2uYRjN61*>2 z9Ay|@TE1kY{qiq=yuJ47!M1k8>Rx^ng)uWT*`EH@FSg@{PPLs6ZK>=Gesmu3PyCAy zwnK+bglCtwFMsjdp}Xxxci;Ku!FKW7blbdrqUg+cWL>}f`ERxh=V#i^U7OpQ2x2gk z&HL~#f4&_)c(QGn7_Z=&Y~j@?x37HZ+wItib8XY6HB}v3{Vrp~Exn$*1-g zE!(Y^lKH8h{BV2e#Y1h=wsq}xoCHn_qxWZj>cfTKEnDnR&FNiO4$(88ey*Jkjc$2p zQ=7RG<0$_qo=^PZ)9vVMC)&QZ>}{XT zeL9A?*QeS6w;oFG{q2JnUO`kgp>>tn=`FJvI2 z{IFN>)$%m&YzrY4?nTD0upFZpz1?E^{MvS3y0hKEo;gFV8n2? zKl<~ZY=>Ss(jIzvZ|0}`^j4d9zn4_XU@Z&GRsRU?Sj%_zg7Wa&ZRLn;g-jD;E%1rq z#26hNU0szntoXW_EAODFDwr8IGcKgvE`Qh|q=ldAM zq3gf--~W&8*>Atne&9WCE9LJQGWvh`g-^9_ynLwr;JcoTlcqi2HXfwtqRWP zFOFh~?00_Y41UjVN|I#*YjdIC{pHt>wZlhGwvB7Y%3&K>y1b0#4}bWX=#rb^(}&yE zEnCYF5imG<@Kn2b?M_?0W~}6^Ab=g7j~+kUUO8|$5PVQo7-5%kaz6LDv=e%Bq#p-_ zu`3{Q;KD3x?bP9OZG4mR z^A+Wcp`nj_@bl40N7|ZoqwPD-9}XXNr*mpXpg`c1qb2Yg-UuCDxy<>z9{OLA@9qb7 z;}yvH=Cj{vM-Cou6I<8!07>*X{(1QuhuW2y8*SD2iZ&Jllx{bVuRZ;(cJ{>icKd!0 zQggH!sNea@EA8ZwGi~k0$Rt6vz@I_)wa-4E@t~PEEyu*jls$X7ti$KK@+f-ifwz z$EMKz{fu?2vge=u+?PV`)ho|G|7x8l{qVzkI`2mQb2vZw zD^It>uN`gU>sPn$eD#HvUt)B}ah&XD?xGD2PqnY#;0s-@h`b_4II*&u7bhQ#peylzJ%E9*bw>(l=Y_gCe`!DnT3$Gk%Pd%}(ef)FJ z6>rnsUw-c8cJT1YwtxT5$XEJhdGy$w_PJ-CZ3hk=ZSQ;Ed&(g@bm&m=+4S_4I1Fdn zzWv*4uACSd$>+ZEa@l8lqZjc7yMR9p3m8f8s~m-~apnq-aedVEWQz=>Ageupf7@e1?Uw(_Z@a3$+>J zrr05pP}U|RypR0iXWH|T^Y3`)TPjg!*$>?OmB0RD?JI%vp56UOLpTs<`0Ib`$J$3e z`pNdTw?0w(LvSoPr$6yq~24}G?si9CO3&$en;8-g&O`&jrWe#)N5c9kCWn_%51fARCt z*GJo1-}!jW2`zxz$3OJB_y9-SJKz2GwrAHvW$R(?zx;putFb9R+94d; zfBN(7{qKKw(Iwp?+4*<=_TOu-zWRFG&wj{v#xLOWYdPHWKJbALL|pvlUB8*m_Vqa1 z^V3?-z5K>6B{ND!U4Qn^{@L~uKk*ao$N&D{Du?BRAN-{<7S=fQJr;y*`X9_A?3T3U zF-#GPjW?|Iv$>3tQO;mxgJbZFjjk#O0ik{)468&>Bvr=B`n^{|=o_~wGrZkuQKH(zyPHK z)}rPjP@KOi|I0JxrLmtJ^1xLg@J>6^E}4Tb59R>?JVW#c%3 z1xj3m?)h&VXy5nVIHjSdav)Z$ijY}YJ6uo4@H9@&Po4RiXVAuy2umgL(@`1~31sYD z>rS)z562bVy?w8QicGRd>xBzbZO!_=IgD&MXO}V{)GFE=m~%J@kNbD-$8f*Xjjnn3 zVrXq_D_5_mGs~~V0JWhBLwjHKCvS;3up4WADDb zF+_K@zw>v0to`Xf^}lWh4!qtD9XZ@~@7Y%};cCV@eT58MQ1Z^1?!A<}?+9$Y*2DYv z)h1aspR;D3QKE`~EIEAmaGhEpGVS;g5%$l0_^a*r{jv83KlZ@jNKDk&u3qVzWg@mC zF|f{_JT0MJYnAP5!3h!I0iL!%#R1ntsURG47J8-(EGjFOAI_XR-PWxhuVCYi8&?Z9 z0#~cT^H0W*+_80QaAIv{_%eJTNTK{zR>YE|JGUL{vL-TeDzf=}IjDl7cOs8BuC=!C ze)Q0dssi}MFMqAAOW%tkTW+MS2jSoQ8SE0f{D;nEUj$N|mu(8G!e4mEdQ5vT*zsG{ zRfwo|l%LqVrS06cyB&+8QOhMBj31=oI^g*b~Hyp?xE;lj(BS^pOKc+G{VL zh=bHOUa}rt*4|Pcj&^7F%rrd2CcqOYU~L?TB}?X)0Y96uk)z9_%gmhvaVs>&Mwq@h z)kf#CL=PhSp8Mjr+s0kdsi9?KQ{Jx{4Ucjh&@7(g4$sT|H*eca5-w*$i@gk2M$8dr z%GJpP^A+G%b}GYaj@PeVX)k_<0s3gLM8wLPs?vIMDS_ZNqfvSEJxVt1$PC#;?b38# znsZ@tvPz#-8{7-2uis!lgc!ep3H_?NN1)-0pZP|6?+2c&suuHB_AE%u;8vQxAY=C; zXUH~2wLqAFr(^)VEnudaXVb*S(yupeU$5#f_QJUs! zlf5#rVPoT(YKC!DfW8nYH)8A}=>d*XW=yIg&P4<{9q+pDVKiQaMl8m(g z@Y>i&#^~((Z^wy5N6MEsZkVXR?eWO($@3T6&h1;Q!q( zCw=+ehRBptXHK_|f94DAPsE8jbo5A-60265x-?z-SrB#l!lkx6cF@wi=tA^>j&Ypb zv+X6aA-3QC#~vwO+_ZIbZFc(Y=f6|-`5*j)zdtf`RdBzq{mDP|ziX?*^Qs6Rf2`YX z_6@la+fstfauDUw0&R;&`tlHgyfAD9x>tv0*p=(X*Hm?hwZrhF4NI(CXkh=tkGB8w z|Mjo6zx_A=N*$X@CK?-9nY$Bzimx+AV^F&9KHsT&oDF>lGNEBX%D2D$?ZvZ##H&}^ zP;qJGKtDoKrQlEg#4ok~`Y-?awt3UG*hAxyRkuo(>lY2V(1$S?ugpBYL62z7cVu%Q&p^N2LYKs_vii(@%R2=Xu2~7Lx$4t=ugEL8Y3_9 zRoQ!?4dc3U4L{roZ>|f^sAB4YHsj!A_oUX1O5E}-hvgaHd;O+nxPK=*+ph1;aKAfF zj>v}6-8#}Gkay1EAeismjgcAw#xS7lf}Y9U z^2ihWi?C${mCZ8N-6!)X!iW$#%XasrKp0vKTZ+-TXVO;IX6x2%MSL8WUT#cL*o0z1 z7;H^3z}`o8)f_myHcK0_UN$AGXmff%q=?>5pQ6x&v(0H>it(~2W7HOyh?d@oQYPpz z8D+%~x*KC-$L?)q@b22ZtL97b*!Zb7oQN!=RF&13lVb?X+k7v^SRU^8n|WeXQE2lC zk5v>n+A~J|(lQjbZCl^Q!qh%nhYkk)*dn{WUn=Ibagccz!}_ z^tWnsEby3DffNFP(!p?cdM{%ya8y2L-LA4V6%g?6H-f-t<1N5e_E?OgP+@dEh~?;e3HZ z%_n0JU{MaH(f}AZxiU+l-%1FJEs8Xh7IAlC4EQt4Ds27xQE9{7hsa!=tc<5Z0Uex65% z#^Y{|fznBHnHM@^Y)?;J4vr_|5S*zDCj)?DG_Ji5?QXBW_FA2{FX)Kp8AaCW4$eNB zq17s&n0qLB>tGod=8OOBcfgRK?EMZuvWCW7M*(K;kH2ky#>D}%DNWyZ!}xplXj$>; z`LpLLFdP!8^?t?zG1MS{*}GAZqLG zEs?XK+YH!ROwVWwFD=X1`?}bYa50`4nksrCgKgu z?cCXZ-f!_mo`Fj+9%KNzBY)uzE{h{F7xKqCZr^F!o(p6Z+67;FK%k-PReVe4M|bbq zTqWn|j4VTkXja4UVUB(yqiO?I^q;y+oyP_3_|Y?g)8dlDi$jNW z`}z&51AA@Tz)faTX*JgF%X*ZP`mEwe;Ep3-OLj8vOEZ_-R2-=D=i)d9e~eaiu}ZK$ z_$b|wcG0}fcJ19#1~<84oHo`n7w{(ctep?D)L7DG@uJHdN)P3G^7Qgd-}T=bc(TAe zB{@`UShIcmhW%6K^qaX`$^jw%AKFq41`nly(j7R0k#cgEeg>z%4D0+2r^e&Ed@341 zXXYhHZYhl=A*$>ks!H+EeDGw9y5H{t43>llWIy!K zt~iMM%7#67=up{H`(hue0x$+IL1#fcV|(oJCrZA;_hjV8x;Qgv9xYh1f|ooaSZ}$f zgbrI%khB7i89N-(@$~ifZJUbj1c~S}c%^U2Gd8CsWlKUo+9o};kC(jgR6G&obB0rT2I`witJ%?Yw4E=+fKnLg5dhE?{ zJ~13x1Pio)9#!i3yEgBQ&f!p_1@!rWAAC>2*v4>9u@V2vVFc?7pJ3S!oy)qM{ivzKrUIT zbX(*%PFoBBk#Wob;RpkP_?t1QgumaDfZ!%c|rx zI1~vJC|SI8QIt`SHWF48YBwtGRwj`#R~ta&v$-*jtT897jmuhDLWn?TOvvn)!;$Zl zLU+YLu*VpRLBo*Y>N*qmWE}4K^Mj+%wqsWWJe0z%T0L4YTexU`^~rIRCA5~)8Z+yM zWm;;tU&hY(Si!^91(J1}J?dvO2r$-v7g`Z|ESii0EqB8xe`dTDNXQ>Dbi<_$h6|(9 zGv#n+{MB9>(5>=kiX47rNjN-Ou|5@yD&m;2gB`e(F`Dra>dJR1AVN)akkIY4ntRd) zfp1L`eA*aKpoc<-Gm6UEDMmN?r$7i#!5c?|2(WD4w5i`0g)N}Lm_W~}DLhwWB6vg7 z@Hngo>JD9uyo}Kc9W0BX;aRi^uK_{LhZ3Hb`|-jMv87~cKLsq78_^cpWEd!wVBSpd5sAp@EYpPWJhRF2O=+tG3BeW96{mcXR{>=1iHNiy?b4 z4hG|=viljk0S)-5t6-2pGSKq5O7+mk9G!LA?8XM3Vr=;hEh}-OjIZCgRgU%Hqj9p& zoNY6gueED|i&JWBfM%VhjmMmceDrwWlY2SavV13F@J>(1Sqm?zo~X6`p#{OBWug08 zMv(r{GiMl26)k04=w2qqCUA61n6K6eG9Cm(%|$Tc_H19LrZPyTjbXuv#4oijGCGjV zvHn;!P0?rQqgWx0hhI6*WP$w-oIz~A1+cSc z0=aHnOT**lpt1vhp<%%$@>Za(ev94}=zx10M8XliCadVyqVvFjzQr#yQAT)c14Ez5J21va+;M}UleCGi)V2mNENX?tEs9vsMRb2N6l^qRkGF#N~HIMp^c?4_N? z*B$%F*}%BQoB5$R@UOsP+QXYNi^dJssz~S^j!*4oJ~t;aQt7xo68wJ8F8ukSs<$}X zp*b-3A{*&8`mlsRF8Gtd_l^c!#!@tZW-^YFv$>3?JH?&V?Eo)u=(`NLbT!%*a0^uw z9?7_BH)B$DM$XBw3ret4(EqmW+v9v5u8J@T2KemjN^^hs%-AeBK(F*VnPx=wp0TZ1 z<|K@6Go24@FzEfwnc~=5zOill){>((4mB9TUKLH~scfn^CGbUu;yJRAV<$r{vsru? zeSnt93%U*djZ4teeXk!p)Gkgs=e|3*e#57LH5MCh+ty9(k%u2H{xk09pZ|9KMz5VZ zeKwz?b3zaLV@GYF8*i`V8bTCfNC7I6=GJpC3UvNH8NB(ho_wRqW)`FAm<-o#O z+GdZEU2I^wh@%E))-zk~@nLD#^6#q1|!l zc2!lJU^m-Yg(4ani`>E|cJ)RJbRWBo%p`l9P~cTT;J}4U#)s^IbXxja_2kyATMI`L zch;ZVP29;P5->-jFF5yp_cB(vw@1lP1qAQxZgUo71OvDrw~Yxr`5me^(Yo>Qh0rk> zf*$Kci{%m+f+I^xhCm{^){lPKV(#@qH~MgyyRmskZ+#rrykDwu4bHEZv5*0DGy2y) z`GE#HUj}x8zYWsJBr*&=+GD~!Y)-sivMld=_wK7qKR*FaqK}gO8880Thw%>MbdgQy zrTBXeK4dnV4;}Dj-Ak_EOETIRox={_X}b7G#(Qkl>dfIr;qE`k8t&f>&bI4&9qt=9 zFUN?v6eCD93({}bCNVa6f%p}xB0L_AT%I}vn{i&EJ?P6v4xX4C>(T< z;Y=1ma^M-HL8u5OB3c+DsLC~>v}6hp$I|5ybWvmoiesVtww$NX3PQVmyN~a7lz#p! zCmmyPhA=@1p|nGZQj#_e!))~`;_4A9iY{H0P$PJ5=Q&J9_$r~pc!Vke&Uvy~#$dRZ zrt(!z17VNJM8YvYBh8v%DD=Dg7)68x!Kkzp@fs(%fElGt!TKyxPneoZBv-p1fv_^L zWacw&DQ*PL_!rG2$l$|#DH+Odbj&W-j$=^vtBkP!X0sNIsm!0jLFs}WMy}vN3{Z+` zL14w{^?QJrHtoFFnN%Bnp1oSZvvx*gT$#h{oqJIhlc5JkbM^9ej*B1w8t8}m_e=q0 zkWLE5<~|&qV*?@rgJZE5FEY-x1L3?R=8)s;H*rS7(B}Q7-qHGe_#n2H5Z(k zw%p@AldIp#V1B^piIAFmwr77Rkn|a2#_|ZpCHn9z`t&k($_&oRs7jON9OkoeqOn29 zf?+)uniGVjep0q9!>@$%@R7q6)aeo8 zsh-)Ii<~-rpagHmf+v;SQ;w15eFMMH3NR4xlqrZ4@bd;Y0V{%=juGcg=A-mjnOE;b~EC#*zR? z9EZT7%e=rN_mWB0l5!r1{K@g*@ZwoUh2NLg zI$S}8IC*K?@_};D(0$|)W$rV1MHUt;%82jtELed>1r}mJ1a9uF?=qJ(U4}HJOja5P zh;pQrJYTvTC-z4AEI7yMNFO8Nbrmhk^UlC>ANdxMTR3xu>!Cx(+KH2WU7SiGaupA9 z00l(#i9g6HxcjE<5_YFT8EUg@G6*DrmbOm03N1xFj7{C?y2^wWo zkvDxazniyaiLc^!&ITA+-%PIHohKf*9&=fH{q=*z%LSw8E$fB-jxGgaEz7D6OVgX> zGPMC|TIt43XgBT4(nAIQ!Fx-?A6;H?f;f?pPnnym({pGk&yzhIHu6aT(K^V<^HUWV zAh+rEGRh*$z3U5o_zcEy+8uI#*8tK(uX0+vOmMgJg_pkIz4sL-E^xOFpMeL)XcMeB zqAK5vy)yjyp1u&wz}Lo3zr&NPnsLCTU1UpqB%Knxd3>|WyjiD+qB7^kr zvMhw`Q5^|(Y`FF7*A=eG0Vh#dCbDJorlLW#Y?;vOhYpqljlan)vKvpMgE}idIsy#I z@ZycYlKw0wF>@2(7ErWQ0-V{4eiLXQcP)Fs6Yy$dRsE7r%W7%m%F3jhCp}}Ch>h;* zl!ZKtH`pm9+vaG9UT0rP+~`BuzaZ}T+VR?31P?kP!kTULU(Ri84;zq4Wa;a%Cmt(@ z*3!uI(DAsqSA!WlKEP*=jpRJCnaC%$D4PO})6JWs(>Rdm!};3+59}iRidMbTuf~ry z;MFvYi5;b1HYZzD0Ag@H**ebu9_UM%H@W6B2OS>t1$Jz7%j?D>Tl`LkYJ&}9E(4yr z)7oL_Z+PO*2#TU7GRc_PjA#ZfJtOhrZ}7Ytn(!SQk{fh@X9Pyk4Y~2NeOK5S;DsjY6u9C zb1szbDbK;Yo@WsE3<_s#B+o5ucF07;1SO(&KgMGmc~SVrjYv3j6bA)K7+1+#DX|!a zR9f0zu&{3cHj_CZB$<{90)#j#dk{k96jPeks#<$yofLs0<3Bzwiq_WwIpm(fLTH`4 zaJEX25hiRJTbigWqBX>XByLcOWxU2fHDV%jcQhKIz?nrx^F#g17dy`|hG`g!abDTG z;Dew9mm3if7zL~t!-R}-D@H+Or!j4mA-IG2AmG5BLRuNzFwU#oD?$Yx2|r_lKX?RR zOixG{um8%hBHZ%5phO)d6@%Kj;3D;9bOe_4-`)FN5UVy2gkVfC6lX4pruVVOPN;E# z5knYEjFmG+7!E?VV3=pofN~Z>NS22Z;&_+Qn0NOuu)R~Rq&)7b@q6Vf&z1w8f0b3p zd`qZh9O$5En1ag9`nDcY_K8q-5%}<^jmjA3essoR)hD{^N?`?PC1mIe^u@UK4s9>y%%G%q}C4Phyu z&^ZU&?(oKMzRJqoYn+S#^HqjsK4{at!5)0gk3p-()7~__4}@bAesSoXlU@bh^#GnS0H@23_OM*Y$VF4$ehz zh5t%PW{!0XN?^e#o7l9mmcrn1vXT=g!wv`fCHp8h4Wez4c75U%eN}%M3)q4oey5bl z1h9rbvcTEgs*99C$|Rdh4>a~HR5unF&vV&<%mI(WVHp?~CYxQEwTFkno01<4qymPk z4>fPb7T|S+)pK}b$ci!&ibu^Ym${N5jPjx<8J6G}OcsRJtn*tOTIF<3#L(;Kxn8Pl zFZ|jB?e0CNUDzP9%a4r{n`(Ub(*;9ZyMm$g5E)WOo26Y@4EV9;+1w17j6`qXQ*#T? z;umrofAde!otxnmK248+%7 zd%bk1V9>n4l~aip7{_>(b5ZgpFd>8ehHk53CbS#^D`S-;)6Rp;=Z!rK(l=QPH!?@s zLI-%k+IQI%PLh391VR9*Kvutx9y-;oUcMHiH+m)GsER0(7=qJArd|B*LMN6X!L#fs zTnl8$ewr`msx~)WihnxJ&7I-5B6ftzf(jU=Jv@m9yDnnj&1O7PrGNAdUz{E9+EwYK zn!_2>GW*7P9vSY-HOL9Sd#M`hc``x>Ch30OzwQ_)ioFgyl-uz7u7!O;7OhPAU;^fIw?eM`P^*6|pP3VCJugqNL%K7!3 zb-L^pPK7;m;JtK5#!O#IB9Ijv=o2SSmksLvssKW3q4Takz!uyrdAw9(xOADkjMI^E zuZm1(Thi&9BIDO@*iiI__f$7>*4U?Hh=310Xz7nRf-9KoQ{URFfJ45kb@ZV-03Nqy zoNNgn(Xroo;iZzr=0MIkgZldQTbZ}xsIG(uu2z4`miJ@}SROfis5w4M;DL-VFV!TS zLyM5=KG#4)HdwP>eBZwP?c(%QE$`X7V{6HynHd2(CHPnCWyz$(3tnPFT%58L65dn+ z%rD2C{UQrZ_tiYpp8x{~+nkL-5RFVNxe$Ez<(a$7?yl;F8`+_H`B*22K zpu3HqT)_9PqHj2eZHA_NFW4qH!uGKC`BHR7?yT?W4Dynlg?`vp0=WXz=Ee5ZK3mkw zc+m_RDH)lUKHZD1*+uLO7aPR*DsY&;1$8DePdW)KIl7+Hz6yfk<=hKzWES4_eVDcA zK^ywozjuGz^UxksDEiH3{5{%bkhT^jwmuWr1LE}H!v?`;47yFUKW&y`{btiu2V zZ~z`g=Xe>05+cgGfE__*o!p6&XWGd#r%TBz>+_=AMPSMpj8Ot15G^w7_#}$v_<@r> zgJX^%7FUma+0uVSb41Geb!)q_48e-lSdY1`4r?DPVMD1qoXy-1<2zN)6VM7S`j2_^EP{ZWj z88sC2RA8VYV`^$9!v0E)%TY()ebxAaa|X_(X`6)g?@I5?(S7f8ZX$CpFlYD#c(hUp zZ3Yxao+IIQWAQ!s+=}7h(Rra6oA`a?L!T~qq0bU%!2_Il4jwu81eoXHg|k2)mf@22 zC}fHqyiT1uQSfB+Q`iiaqsNc7(`U~V&wk~Zmus!qvI+)tfeV-L&S)$rFJoumF#78F zyU?}q3MiPT>IUQB80y!?MI_{6G9tW%chSvPzw~nPcx8+7+nN|RqSge3BS*-BWl;=Z zYr`uJ0%K-~!h&--rcr2X;xJEy$0uUAtX;jPl$o8e?Ero$Li}sbe5Wcre1{)6^K}Mg zj0Xm<%~v*WnuwfOQ`r|;9@!Q~U#;~nnz2`ey(eVURVrj`MSXKu35z$+!`*e;IPbPNqJa+zQ8o|)x;^};9l@ZI_eTx7*4TC$z25p1N) z>zUkZ?+eu;98;M{CE$x}#3^7IdA~fepOd*DG)u?K3oZL?MGUF281XxI?`)%S-fU>O zYVGQFEk@?K3m4kmbnwr9=3f`A1UBdm!HMl#wzSoZ+03Cf2g9<0tUY=1L^~6`YV)9v|Lad>41FD}_Kcq~xHK?AE0w*= zrCn`x?GWpsGNJXCKs9mx4{4&E}zY1&`1BXSN=`UZFZ`^YB$dhFFFy-2HXu- zhvmT6-TCIQ(y?{1lOR3ZZDU!FqV+Rp95L1Pk-nTKygrVz(s0!Y+qP`3UAdop@`<)@ z&z^QC^l&BPW?7be}o@?9Y6(>=yLo`{Tz?f`^!-`v z_$`~RiqARE`s36diJf)+!c;qdajNvf>eXu_dz8|T)*9+-*Kf8bpL$zfPqp)t7ivAX zQ$$osaeUz1{674#r!%H&k?A&Kn`t(_G)H;{+&dL?`g5U+{_3>St4u=Qc}Cj;iEL6E zbE-VKa#c0#g^cxF`?+8ENLspA0qhD42gcTJbC~VBQEUI>h{Gvouqtf=OPOEG=L9W> zpn11_mY1#`pR6)Uxk_72SsHi90laKRDvr@!9umC34H21S(rA z`4qmVSLr*?Rl+FpgPv8U|1&@R;p(4leJu299CWWX@g>~5$U(64opG>{UHTvR94zyp zXxzMw&v#X|mgoM?-}wh`*nWJ0q4ERFyF`zllJT;sEGKdqn?3{xBpb-T?h~+gZkJ5$ z$D#>Tur=@3*#69)`3og8!9^Q`OkmHF2ma>Eu}AxJy~4@ZjLYX?o_G&T;Hw<>z{16k z`FCA!N~K@NWyp+*|NK2i+GE>)cRAa`#X&I>M!W7AnRU+Q%4IQb`Wb$8M}&EX-NHU? zVF-7LlFbk^ zV6jfb-;8;P9vn~zXRLCtISUwlCW4)SJ9zkTMXZ!l9y)ZO`l3*jo*RdVBm=;47=u!h zNl^}8$8!+eAtvLije$I$cV}D|A(tbiL^jSrl+Me( z9Z(evIH5h;t<~IDiX_HT{@=g*xA0ef;uKU#q1)zOlsCmHYR<`}3@9%+bPNaqMj;#X zz4XG^TqvTOf0Ze9g-0lKW!g$cFGoQVkY3i#iUca_6;xta5QyC=>Nu3yG(0{3cj%H>i^J z7C5pYlZ%2F=%C7_<^;KR8U7p{>#dDU@MuuHXwF<}e8HKhFQq#k<-u_W18b0!NZU-# zwZbtrg`>!Ue5d3bjd_;S3%3h$gQI#jPi$!W_wJ2BygH75uo6S6GJS!)_0z_&CXSMz z!?HMjiJ(QDe$7kO=LwKOIF1YiXnl#FrUdzAw|>ilXPbe*9DX zuVow$()P{J_OjeRfAP|G==jlg=-AQfW6gSJpY}4(-En&Dpo?F~f8*n5qRpKg?T{}zyomO zwW>(Sy~TgQm9us^;a($)dR81isvdDVhcozVZuwl-9NN$f_;?M*lnZY01>;SYgv@2g zf}b&i6q2vg!^|+k>lc&zN^KtlZ z$H-X_xdIey3#U!Y&fbb$6L>|Bt%(lwS{1n@*d};rj`+?s1d8b_G$n|o+Q`7^4DhMU zZt!WIMMEZ)Yk;{6oQDg%-3K0C0+}v&?zrYG_517pX+kq)tcRv6ia2+s)*E zl~_X@Zg@p|^bJSV(m@yAVJ`^kZ`!mucE;Mab<3tY@=J+0M}sw?ET2%jggUL23}g+j>qw@HS4iCw*}_(zm1C7B;>gH2xfZqt2=mbAh1O? z2@;?e_m`IufL9V|?&V%VH}`O~=@yPV9Zx^d(^UZx`n8tEQp66T(BuX?$LabP} zqHW3;C7J|<*pf$%9BZHa)Ti2azVm!-Fn28a@#4kvwb|d{!-uLbV>EyB!OwzA@Gkjf z&xu}9(S0@JFdu&pyfTcN{{dbCP~{)Qc6C44|GTc=KuI|P8HaPp-S!v%*s=EDZWPe< zD5CBc{adf!PG=kOe0NFt{RcO~1U-7E9FMTD_EBld=vaUphZ&KI0?8;SGvF{R3A3!< z=&=1jAYdSv2m(sa<=q-k8#+~4L)zTDb7L{A9b_>=DepNZ$IPNDzUN@d3L`4D|@V^F=Y2@whMphVf3gf)7Dl4l}8m`(%ejE{%hb7=*>ZOtsEB_Zo{n2Bp4X zYcGrBuu(=B4lLlApk(=!@m+)AJoQbJf|^qFg{yqWaOrD$B79cG7*d8G{4$0tNdOaT zb7qac3-p!6rginUUZ_zm=`YRi(Lw7<~2SIPGR@+;G@4 zTb=Lp%XsR7a`@Y*L*Ms9v%!}!q3w~-5d%_*+Ti@kP7^?7RK*!%C_MJ$!{xZbJ)!A> z(<<=~PB?%J1HmP0vf+mEu2Q4GLzMbGz zD9Fyij1kDW$1nOU8p-dBF2=ah&)FDv^*#q1b1LTzUF97v&DA^~e|&Gj=dQ|)j3Zbp z`V%d$($w@Bq*pe3Jc6H+ry#)JlvV36fR(4pCR*y@tmOfh+C~FDbHF*C=A5qz_FlEj zq-2-OP;im?g;DZc59Z-pvHN~HDqi7+t zHakzH)a`a7bnf&4_|Ud9>txpiNJq(u)uZ`sww*h7rjE|Bwwp7(W5>>Nmci%u{lNDZ zZ2aCgBpYu>4j(P!7d})E*(q5`@#Bv^S{W`n0Udg-pYouhV5G*ecKzD6DtfQ@V9uZ_ zM>6+p*|D+o19~wpvJfqjJpv945BdtU7??_E{q3kTyDA@vVT4{wjtaPi-c$w9H6w8# zWck4fE}am82HneHU5xfZb2eC$nJx~WlT~>n?V`P2%1{2`r81H;8nU7IJI=JS){!MW z=zKRu{;lh`+roJ^=j%o%o<}#`u^wnYz2!S}L>`oGM)RvzRV9hwlw*M4wvJc>0elj@ zB@lZjG#SxS6*B8KudgwiSGAkZ3}S&q&Y&e%wa&1h7`ZQ?1tu}7^iPk`tB$c;8Ak%% z9A|_d^m#S3zd1%fx$*WVpQy8mzxIu9R~GToRpsM%BD0+yVAt#imC-tN=3JEwPv$$$ zM$vx3pqHTcY*a7J#4q%$O=VqWbfUAZ8;T$C1ARaysdnRV`^?TUFLMTax(NRb4zu6! ztndBpy?7#c&c}>ZwO@EKJgJh%_)2%>w;{M$oaU=)qwBS5XRghX&3SJ4TyPG4!8czO z4my4gR*ltFS$^}LW*^I zDLXf?*Pb!cjW(#8*gR3VF#oV;zV9{+et7ud-DP8wZR{0Gr&dP~KJv(;ZNtV5<;Qpz_oFF6 zZg#FET_xj!2ezjTdS%D?#>?gY1?mJU<#IA=*4sJ!pFdSoL+XryT0$K!s%c`(n*pLUJ0Byo#?&qeMj{He)xqP)1J1Bx8@f56g=y8 z-@*zgf{U>@C4kLI=DMF9DX<_|DiCU^5*XXS_qSvXH=-rx9^HDS{n7WGYxCoG-MAaY za6QIO50v~H*Kc=b`+FVkMT?@a16YEXQOGD;knhIESJj406avOKJZrnH{ev)(Ly>2n zF&hUD;$)~1ALXMhrFe`K@}F_YX>fKdhJ~=f5vJH7%d-S>C?jK{=(}>jycJ!lC`@0k zfjG5;VQhxxK8%n@ONny~JcF=B*ATL2-gL4#tX+WMYUQ}alxdstC!oui&u_&{8LKu1 zW3{q1Q8)}wn_;*yk7mw-1Y>c<3en9G2Q5Hc>~1rzWe1cJZeXHYoWcJ=69->^;jPSHVd;C^^jIxh28 zf+^!31Pwu{Ob0IXX)Kif-Pvw9fHOnDv&KDtL4J#{UopD893V7@p)ozZB|3iP^0f+@ z5b%OB##=^UV1w}q7j5aE0Ps8bS|87V*C+ZI4*f6ZIsZiNJjaltc$6Gdl3-)LE}yl9 zCWgyA{9X!eDTg#qWh^Qctj$EH`V{fgenpYBNi*ec@V5q-qBeGY+YAjqh_Dirj0X+? zxKi*O0#Q|MfIY*%E6;8miMm>sJ6YM8%aw&x?IF5t{KgDE?gv{mYx#vTBSsXStBvIX zd$=2D#2j4(Cp4eSTnewbwChL_{nwh)v_;U84}(l0-~kYvAIym}O11bX|2Rpa(;Qz) zU3nct2X2Rr+8ETp%A^Rol^nmCHSBMX&T+gPVptXOu_gNOq#iIVJrCC-*|j%hNWAy)=C@RyofCBElSSL$(<6o9pf( z^Xal64PC)Ehm`DDwsa)VMkd7(b}Src!KP{GT-BHHqm6R;(zw4%U#D-*7#(E}qcNoI z-hDGp5&l8<@Zjo|C-dt(?wfh(zhucAPvKeZ`V432VP5PGWAL&Z$9&xPhK$br#={uI zM@pNmjaD77Y{{bFDLOwe9E%(llpsf@FI{bij~vYyIe#k0x;`Wy!QV2btK@iKhNmvg zs3y6b@pKskxon9#selfLhrrcxH0yM`Y-?rjxPPE25{q8{h>l z#(|!O3-7qhwP?#Y@)@q#F(q^6#^&;Wu&mAU>Q*D_a&EZDO_%9+wzOzXl zywEqQB{|Avi-K!#RRQMQ?;aIBVYk2rJzCnbCgWP#PM$nnGRG1=Yhoq9ILYV-4GN4a z<(|$xY_+KiebY@9G;9NbTyhi-`koyH_F%*zVsmslDda_W)S1{YL zb4THwUc!dUW80Do#?8USqwF6U_w|v_oI=Yb?eSn8v?CGW%@_pu1wP3o6|m&+iol-} zUd~?df&LslDl1E0*8GB(E?c{^?DQYDmSYpyjd%|&C=)jxc#}{7Z!mWCBtzHnd=>YZ z7uiE50tMI@lR0pJ$p{;O;br%+U5r!E2MxfbXS{sxJNI>YcE9Kt?&w3l53maak;iDy z(m41MKr?=4Ya0k$kgs)$P|53FVTCu0d+MSihp)8l+jdl6`qhU`>&Bw19(m;9g1;k@ z?cQIBkvwa>Y!5P*e2|3kte}ESx4EkfvHZ|dCo~PWY*h2>OBYl&j#t$zo&zIo&|7>% z{rr|W+@f8C$`3zzzCE!&MtAImMXMuZXM+ft?(WmPas5sxBmZ89d+k~d&eC@F?71># z5Gf+CR)%9zC94@8q6!U#fNsXnxgH@g)~-aE+3nQ28Kqea8s#e(0}^bI=Jmjxga!z?aYr zxXangIL(cs_8Ug0*z68zERcffT^wrt1B`pY1-=LYI0Hj}8$a`h@c>>KdBK4J$7!#q zW$wKjX8>L+s1n!+h}fir^CRL2rp9V_WH62xhX~qx{_6uX(-aHdDZ6t4II3qO|+s)L$wCp@EiER zJ6wSce4<^-T_oKGA)Ez)7h@DT*3Q^i1YhPo6J=>W`laxP2(fZ@4n$XO3yL3We}wd5 ze2jlIPRN})*%i{V7`%?WLbHo&J!e5UFAY>UC87>ArCzJq3J<N8`k2qro3K zC3n#_IzvZz!=`iKPjOS4{JeSO}wZr|MF$Y9j_RPoKg3ML~~2<83$Tq1V6!n%eb`Uyii%(doj-M-VMDo znu43Y6oo->s|;iTO^q@d&Yrtic+>xxbLZ8{2I?>$B>3WO}^I=rnxOO8>N8nvDuAlvFE?_xajLV)8>qp8kycmBf ztl(iRM$Bl8=-S&MfROXL{3LiGov~GUkl7(%2U35go zZE}KXV1V*UE{E^UM|KrW;oo)P84mZV6(bd(5DXR=b$0B@(`P&x`f<_)J=~pt%e;IK z2Y41d&7ZufU`6J^Q9&1up)+uMj6@`L{SsJ%g=6jPvR(KLp9=K3s_Z?_>68AfAQO33 zFS^g}z+FEev>IFW+nr@gSBi(yG5rO1bQbw*Ed7^^KlgN~b~*s3vN7^9p3e9EvzPXb zfwPU@WMhqkJolTWP3YWOXR>BIdW#(*3pl)%i3`!TZ)4NI(w!#p2IdbGk=^Je<#p^ZavATib8hF}VPi#l!rWC8DaS?M#?O8%XDPN-1&o8AfHinmg%v05%H^Vw zh2+yx)l!kOkx86%jxKp>4hRwrm(CZQip(Ov?M+dE`25%Ti#+w`!nR}E&I*jb{PHU$ zhuPwVK zxA<3O4+rNeLj~2?Ug*@4A@l5og zd;EXuED-2Bjthl``4}l25HH9k5K2<$G50dY2E)zY%2#?H zluB1J2*P-Zpdw%}0|L|xhSR^fVI21n!h|=%COnF$B81IPdsTv(?+Fdg7(?4!YhE$B z5U}xk4gni80ZhRldWsgzwcp3l$D~hx>%+^1K^MiqI(PbPJACM98CN231T;h2{hTYi z9#TBR8g&8?<7k_}Ge1rR<|Tm4OP?5IP}X2gAXZjC7a^j5W9{>ZVj{%yyR4w`5_&Ri zfNA~I(imF4LlY%D7%zbjWdn8QZ+#Qt0w(5gE_B4OA()I0v&)>N>*`;BHHP4h&^2b? z>EBINmYlu{?&%lY!GHlpF$)YBceRy1DGtKV#ra^saN6`CyH?Pc!%59MW4|{q?~J3+ zRIPoFfm+T2f{)=M%1ZHyUZVw^Z60W@oUOEHj><|8ymqk0&hfTM5~blBW%IA#L&hyI z0T%=*!oDEeFyGfSAiZd%zU-Mc&8wYkx@kvn>RzoSUIIc3VCFF+wjgMk=1}Z~OFhT%xdTKIb>(w;1HZ^=;{tQ&| zOVoUz_X?ueo{Ucew1b=vEn^WyoEe%6NKNv=Vi6REB@(8E@pL zf_VkFYV`Rw9r|0A4exv5DM8zM&V%GpUX}YQ8Q1TrUqT;tea4HmlWOq805VQA!nnqV z;A#}+0oG*ShOrjgVCG!?x9*5Sv0vR=Hx8E{LJoB0U{`n_`bJL`tSEZyk5q;`f9R7< zLVnNG?#;ad#>N$NyWbZrjDE=Tw{Klf?{i6q&^V_@+jg>65vf`Ueiud7JP6IP(N=>| z=*GHj@G~|z#cRs2*)_6{Y#Oo`e$k~f=j4j+~C#bU#d3YmfcDhs+jfrsne&+KPksN z!=rn_!Edgz9|K3UXucB@6V;dB&D(c_V_bcuZ^1V>6nGU7!jEiWb~reaSK1TIU%O^q z;l&zq8~mxttJ3b+3`PGLD>`-QN8-dwKi~|{KEs~`fVMniJp3Xuv5$>B37+#idE>IX zy?~2;$ON)Yr3G412|`C3JNiF%?0D^t?_?6Zjtn2o_->SgM^x}!VZZ_;5u z?zqEL05asBaZBoG!|!O(_*GP>JScq}*qMW8{jLgte5j?7!P{?9h8qDG%)Is^Z=Y`K zR$U1pnP3K;pE%t&W+TwAh0u`m?~o1BzSrUYXaDT~8{%8i4j(=mChEJ5a(G2PZTM40 zifk?cb>&)Rf2^MpC5Hr=EIWKU-U+cU8?ol>R(`Y5lgw6M??HKe{R=O&^;`N{M@)b) zt;>UaNG&1=F<}&lL_8uGq?lA_xf8v+F(BAU4hpP`S2I(Bn z)>sks-SmZN5OVbu!gDXfqS{G&{w9tnX^$(3G0vVXkkweyzW(e>wWhU<*%-JzVj7{H z`za907Y!gvjBd>O#;Drx858JhU>*Ut2ae!|(ZCu*`OJua`eR>h4?p%$H{>!0MvUi*CSpiY zP#j8tW%x5t1twU1+F>vfFfNX)4haRYlcjgOi+P?pajH$8zEHncV5Zgq_UxQ__@Ty| zaT%`?7k`7Bz=nB>bWy+*OwmCp%?F|BI3SsGWq&e8I_B!-sZt7#v_L}?jf^C^A>6=; zQSLdyghPE-8LXbt&Tvter96u^0;31|iGYtWS3)3D{*{0E$@a)w_f_^9zYyXg(?xq} z8?U&OObd)qSe#1&O-WD8q!fQ#{FRoG3;Gp^!7uoTd@7!gqK0?DzoO@&>lk>E z$7rge%o!`bTpl@2(Q5m}uf5zhZe3r7F&RK+`rflDXV4~m%Qm6~a(GF}$?m=5r{eWo zsM6f31T!%2e~=+~bV0j#?tEJ@+SjCUxZ$N&g9YOmFBA6Wju?6D6b!t8pKQWd z23h{0O@^HymtDNe5DS066L@osRCK-a@{#-<{TKszba@P%j2F*Zw^^B`&^O&m<_U;^ zEt&~*-ry7Wb1oTE@HH5goVxm)%RL|dm8aVykL(tSD2H!FPTOoJwD1EQ1_CPk0Q@!TPxupKm|-{qKv@n0c)V%$LzYDuM*TIc-Ya zZ&pA;@I9cdUHlioMfu2Yyizrym`_QR)6TV)PG3TLqk5#Es{l|MZ92```VJ zz z%m+W-9@)REP7~C-RJaYW-jMWBzh@oUFg^R*?G#QXxj`1N>F_M7^SANA zHGUwcRD`XuSzL4p{Bl6`56@rx%(vQ>of``l^clw+-@(I%^&6_{0UbFGueZ6NDtp+e zHt8iJ9c4S5!Oh08fg~Cm0<2|Ag@*se-~93RzW2VPXa|nEP7vJgJA{)1c#)ik5AtKU zZ#et?;K75XTRG5lHaJw}R{9(4|Fvt^wg2qT|Hbz3{yoLFbT`M=ULfYIoxzUwjDCk8 zi*abHWLygV*rFB^)@|h*Fl#S(F@ag2s9>hP-num24>CV|;KLIT(o5<+mZj%P?W6LO6mk1_-7E z8Jdjg!P%w=Wj!f>&k~RbT%^rCB7Yot3~9{6rAh23qQS}}Lj&fct-0|aRDYWn zC*8ZTm>a^?r%0Y_U}%@;-D_^fgz!1xwcaWC(+_xHFuybCmBesXz})>_y|Gr2{o0@{ zV;R0%lJAt*`K;WoZ0x)kZZeMWZ~RM_D1Yu{?qF$ZB>=;$lvEiqng3**vXjS8wUZ}K zv~#D<79F@a@Yein-L$#w+q1Van8s~xF7q+wVg6`EnU%g>zEjquvRQo!lMif zoBE)kfhGpp>+PX;feCA5dxlec3_$Jo3}hc?|GpbDWt5}Uj16rVD@Rj_sPW*2(9PCNH~`}W;2KCJgwLUy}^ zp^MR^w0zCl^_h2^g&0jrY=_q+N2rCSu3f&~&YeEr4!rt$J9Xkr<`+R5Ls_*#?6Vm4 zQFKwn_wEGW_d9#T$YBbQH>w6UW-Ab7!jT z)G>Rv!Xs%e%K3hqj01e+)Twqc2JD>}v{!CsTv6yMAl6T8tW1(pKo>&y&|8wYGETwyjZS>)Ymy8{7IAH3Cl?qQGR31rcmU;<6#s zMD7z5gbWJ8nr%wQ(Sm4{Q-p3f)SOrmaI&H@4WTiaWo6K+BJi$8WSPkff5W%S+C1%u znxkF812RO}<+?R%D;uQnZo40kjiem9v=Y&moKAr4#=wtscy4LuK+Id@q% zcQ+j=HWwC%ZjVffEDQ}+VNPB)AiZ_tP7Jch!P`BPIXEc(fomP#==QX0+#Di&poFy6 zjE2S-9ZTXQuU)e`pCengZ3#R#$6#L@T(x%b;)QnUaz9&^jKa%~teJ>mF%~DA!&I9w z4K#oEei_OF0p>t1r~)H{$$FoG1&X`ljC7ywcC+{3l_w7%h>&PJ-jtJb*VPSx_EKAXbgRA zh@9e-xHuL1M=SWtm^nsuR9WPVv3ikX?xRDx4U)NM;ziqeF@igt^3jOIyxQNB3+q zyCDlg2=>rx947XPsvkPB=rwaEPrznyK4r<4FI(QO%=8Vi9A9VooFxgfH*dGmIPA+~ zW3J3SDmG>=PL{)uTEb4nD`(@V$&{)N5+vlDXt$1d%)IUdo*Zvw(z4rwy}%Y7j&{T+ zDzwlW`^#mlXxIGV39qu1jo*uXYyMzC{*tHQR}M*F`Q5OeBeJ4%r`Dhe^2HsFozkxR z(J@-tzkh$pd@uql)lT%lj_up)-1AxoA4hW068qp-V%PU5atSJENAOgT*_vm%hkmiH zcW{h4nnNR*oB46pRN?tezvcrL0@0f{Pn1nn_A>g){dGmy)jl;y6GBO?2X*9Czs zslcn2Cazl1*XP_!Q5(z?nQnyZD;Z3BnL}IJTPM!9^=q!Q`HL5}`OAaCjQw(3+@5)PUHfmo z@bK>lXZw3I+)q5VvmJ|3hS6L*c5Y`sH%D&;`$32!r5p*Ne9nROHXB-5h_OzWfj%Hx zL=+z?heQlEHW(0$IUadpZwUqlNik0ZVMWz2NRaD00uRA*wh;>FoN>!|z`U50Gu)$c z9l6@n*Fazlr=5EzDsa$^#hx882QP%gP-QT7rW?t7y+g!)zJ$tuh#uQt|neSzM zW&K>*>0|FlwUBEzEVHqmY(p8_!BIt3bCW1Chm`<5cb@RO9Yfk$z@FV_kdCcdSx1d9 zh-D^4Xhl640>jBLLY>k}~6iw#bm@5b65Ba=tmivtRtA%iMlcu0irC8tdzB%BX! z(<^I}C@^hq-MpcU8fE9Q=1S1eH@Uea^uuVOeD$Mb4h+D^{5aoLp%bUSj!j9QXn=fCBCwkeadG%mtUu%EA zoFL9XryGXE?KZM%S?vsLoxOJG0Q4>}SI>vO^hqW-euSL8am`uH&bIBwf>-|chTQ7G z1T*Vns8=)`TJ&ASe8$J|LVMo36IPZ~c!Az{aG!kDc7Gnww6Tce9J=9b3vl#OV$t}X zp(L*=dzweU&prm)vb!((hI85IZCf^$3^K~8=rZs?bBrO=DMKw|^EbROb{L0r9o*s} zj=xgjHREGd3eI5W1XsW~IK6W}hFA0+d8^6?{h}8@)UcYpc;~ zcL)P2azFDV2OQg`Vt^e%XS+{U4BwBfTvd23BQf)3%*hfJzvp>4l3^pG>E+VTdFg}$ z(+%ebZ8Y*Q!)#AIzOT!!^sj`NGf?|o1jd~NyZ$mS`-_k<_y%6VYS5j^(Pg==L`IxA zb*f|?eS-!oxR!aZ8ef?<==mNPFg~TKD%$Wh&9#`K(PZm!J=r;YaUa0GU8$zqu;7AWsa$xb(4j zVK>lgFOJZeF}fsL;OFMeI5YWMAPYaq{K{;H*a}XUugI!)=cR%UaTo+W&<1CitkEVK zVS7o+?BCtxF8Pcv;hw!TLY@T&mKK03{VmIfzR~=vufAS?v-Px9=WJI+*i7!}OPa1l z55cGQ*s3GT7xl`641&W_CGlxnpiC7QIpx_^u}Q#)^NJRLRlj7X=iG;9tw9DS*8o@c z0eG&T7_YYUi&rf}*%+QuZ6zCc;@HW0w&Ue~+aCS1ecQGgH$Eh@*(mgj@o*$LN%}CL zl4pSrdui#?1+ksh)_B?N_z5ft1x`^_?d3i+UhCxxKO~IALdQQC?A*Pp?S5!iwQZwI zbY!0#wl|xW{MoT*Yr(H*5HF=Il?DPC#xKha?lV)$oV6G_X3x$&)GGC71yp_uO&X#udfRqkm-_#=!gAHrb*PPrex1q zhCx^A(>%3TaLDiW^0C?CZ)!<7KpXJ<`FUTyrY%^!wB5YBtbP5|uJ-WwnRae+LHpEm z>)XHl?AG=#KC`Vob9jA}GD0cx?T!34UEk|)PfwjKKr0n6KF$u~0D)MmMLE>2$@zzP z0hK^R9N<7vc;Pk*ab(0gupV(1G2|pEuT<8tax{dSm$M8-DJdv|o)KYvs!cc$Hsb@7 z7<&35+{(yETbQ{MwyY%wbACm05M41}h(%_Bv7|)D1|Sp&;$T!_M4uU}h(z#!Qbv5{ zs-2bAkqYPE_ z5n;P{Dd%`m+xO7p?d8{AXrKGSr_yhCkjq#Ljz}HgWmGPS!?b(%-g4L{FP^Wt7al^( za0GYgumpBstAx_}CA7qNtl(0Foq3~iMj0baHig4w{qA7wuEB1Jas%w=9EDdj~Y9gVz6r@H>Gk$$F`!<8g(enOz=n}SmNEKfru&9<<{FR`?SVN%RixcqJH5xz z3oYPVfkCtgr?nm|IP(HK->bNpx3HH5I%W=?I!o4uabW8?{KE-gz>y0&@7eIq_jgq{ z2oQwt!LVP^V4+tuYhER-(jSXXzrIZKMayW4^8hyGaC^3X3ufjCK1XJ1By*=1`(yck zSV8k};(oeg#VR`;lbNBP8q2&GcUP-&NCp~h`VMdQEFIkxn8oQ9RDff_I?lOe4VE&w zWH5~luE_~{NFbOTD4t1w<^=|L#k}mdz+pw_jx)TML1xJ5(Xm!50uD#~SgLfp_71SK zHCbJ{BJa~z(ntPh71;*K%<-v z_{gxU{eorQl>k?D6P)JND=_*pAda)S)Hu*>8HC0h9h3fzN5GMOv0nrlB!l4(UOCE~ zb8xRY=bt%yhK{Iq^Zn}B7>=TJ^pdf_@wxMpb?g_}S~Qyfd-ko1E*&r*)FiTV5Q{`7J!7AJZuO+LygFu#n3I0YC#$eZdznM?z z*7|3Jx$sNgyo%5KbDw|i&1<;oiK2%P?;-uc|*mNHBs^a76$3 z%gA?h4Bzko2ILEe!kEwpI^`sRD`(d@=o!zhjKjt+A*o!Ykc=X=STU#A$x(lW(n^wVk!j;WjUJlmr^R$L3UJsfz1joZG`k z4wuecJ>ECyOXHPDp*O*cZlwRf2~6P^e9h5!aKj-T9B%!2ClBa*^3pwMk&Pn=Mm`B< z<3$My=dH8vIiZ7XW*N>XG3BhOfN(YH)IotT#qrQJX}cxqSY>CT|^40xlaZgp%8Q!gu%opm2vZT3CIwnEQ9AtD5foaxO|2Z zPNuOB8?+TMEw?-Gn?`|4UjzfjWr&?V-FLX0p1fQPaesc_3fhR2_c3J5SG#32Wv(L1+Vb6?BwWTr;1CJ~ncuw+45hyk zxEZhh{XS#;XJ8|n17FtobLuGr$D!2x(>x&tK8`dX>;)%W;L7lHWR48T-aUJ2ZLHm_ zIoTX6urN->pUW69J=}=?GH4%v_^I~l!571;4-8^_@Mct4CJk&Oq~aX+%x+&B zTkmPpJj)RceTyX8jh%o6Cop1!fFl~!CWT3%DI=Sg=Qsj`^5AH}>5YsRy_@^8ygJWD z;Rn95IUKojXBo~jeT<#ykKA9_j zE1cweM*a2cx2gibTt-*P(AssouWv^S9Ppc=Ng3|SVug3~OEz#I(_m$G6_$bJc%t<8;#YB0^ype6!^N#QF$BmmkID`%g2E`*v6gyvA zFKpSs^*CpEgq&sI4rN@%Q9*{>D>#W3m2_&0QD*Gg!{7L_x7#Z<(CX^7V|k_xouLE7V7+C6&Em)<*kyVFZoX~TEypsG;udtk_!0}taM;{+4Y5u6$aXIjZH z{8{5nK5)3ZzVBHz7rk2gHv{sWzVL?k3ZlI64+#1{V*}gbH}BO_r`AGDzVIv@_jde} z&*7;&QoQILjaY(l|Gtfnz+8n9TWo3W?m=LEkkN2L-opQqrGh03D&Rm@Oh;DTVEg2L zo017e(=&pSvdZEq1-dMiGuGyA8aDdmuCOB8g z1T;!^gP)C>*kT-fmk=0-xM$J@uNS@HoWTL7SwGsBHTIi1!aX|oWQKyXp_>(sn}&1+mRzjEBo0UzI&06z1*8@(yno<5`<@gCicPjn%EP84QE~( zL!bxYg!;mp0%_oWGdg^njZcVG{n?$Ni;!wW9K z&i4W+a3BD~76MB+s9|Rg>_~h{$GU&b_}U5(^a_b{^&McX2yK8fzMzxgQs3kbT*0+= z(2CE#FCNZ3=_scF`3;>4a-j#~MC+F4sF1WA!iHqt-D|9932)Kcg0v@2oh(_bdhFS+ zJ=-o$P1afGf@9#SPuFPRibqu7vDNHm&eOdwfh}cu@q2jI7_IaATm|y2IEL$9C1MQv>o*+V#G#yvW?|kSQDhLKg95?tD#J9&o%2#zwJ?--jBBGC{Su}bP%m@N z-^S31pr5ISIQ*?YLPnOcXH1{Sgu1cN!koBRB3oP?Ci*v!-WAUOOD4uf*@nc#qD z@9r((lMBPS-^*2>16RT_!wrpCv(tAMrEEQa`!=UurYOQVG-OwM_rg0oxJNsx8+L8q z-X7Y$vz$nR^5}`wb-SB3ZY{xoe)4oxH@x$y_p}wuR>VO& zpSfPiIAYMH|NZ+OP9J+hyD@qNB_g<m0_p&bQVq*-H;vXxxQ!s9th;gvRW@|BGYz71V0(;u@ zSr%D|HD0|P+=iR$dHCY!7cUpAdnud121A4*yf+K}oU0ZkK3;q#(<)n7hC=2FcJQJ< zN|!N$cWeO0sJHf;SheAaHaLW`+heOobFXCw-AM-{^0Bgr8LJ(z;cIDh06r@`#_5z@ z<H8{aNJm&9V zZsrP(jAwf7c3_V;ZL+Gomb~MT+5du*7U}`fYO8+&OAZGZ3ZSwl1TSo?moY?$c&_#h z$XJmugVqTp1^3*`@vb1F_1_$}VAQ5>vhV(;lQ`_~P=S`b&=#11vE^bV`*Oi!XNivY zftTuYn54h|o1fEYjm^uLhv$tC{b^T_5d9b{d5<4$irdeTUL3maWy(c%}53^=ONv_m@C$%dmRD*%-Fqe=8@ zjAVr|$)2hT8u~4I&HSu^W)l-mGU4_H0TVJ>prKd$#Ic^aQqTB}3^E2|SB-|AjX~uU z9yDL{FTl2a`_9;H8`|kpr%NA#jhC#UQerfwJy^6vQW8a_5;}L91-P$U$MIWI)m3D; zIiYPCViV%zhuq3`Mdy|?fhWGYebZ738T!yNIz$tp1+vS!ZSy^Q_H?uV4Z2dLSW9qn zudBC1JN$GKIZHLup+J9FDb53h_owb7~omf*Fy z7#kSVUoxujr_JKU%+rOA+ynoJZWE41RYmk$4I~x*>NMwN7tFOIQK2q8I z!7W+mITyMvddwU+srvF8T7Y|(?@OL#E@+Az;^!#w$HvBJEa*e~ue|(nUN03a*dJ(I zaIzfU$c)=@(jA|wf=`wiyg&Q-rwayKw{44F>Luj*m$jB0B1_@gyxGq(+ic%;YkN?E zeZ3-m>9gc#-kp|WyyI+yjEj6=*P9=BnLA%avWER*qdTxLcm3e2tMP-k?cUzL@}=i~ zO^2JV`}e#8xm>d`l&)Ww&hJfhXC?i(C!(fr!=IttU8 zN)Bvg;TVMkNXADPj4qd{jj>J{gedgal@xHdC3}wO5ewXS zUg;dgLvWP>&3z)CqOV|ssFb?cY>c2g83FOiE3dUzUwJ+4%(g=Z&P3qIOvD(9VCHBb za%(gg6~^PJs6}xQjCJv%-oLgubqKo@T*l?)^0&+Qz|pyfoWZYs^~Jzc@Po3&;0*HR zWe8&AHEUJ}-gndHwKB%Q-}5f>G9SXq%isEQpO?OTM+kA=pL_O|`Ww!M=UoJjmv-S6 zoZ->sJHkJzx;|5)p6^+gUV2sQvNEpXmHfxhJ$m$H+q`9S8O1NX^kRGF3ty^pa|w={ zab_4|U_uBPC*kWI4R8=E`CkGxc4eCn~cS9bfGFFqRs*!jYO6V}!)ZqL8)Tsb-W z_P-_YjIvo2<$3LLd*rdV6suObV%oF`m*~GUR;?4h8ijh}N)%cYz_KbqjN!82ew0WI z%Vlk|D-eQIZ)W!tSG?TetvW zIFc>kOi`9YHkc!B*LAeO!Q_bCo5x8Kc)HU*`3s+o%()w5L^L{1UmTa!YsT98iS@<9 zj01C2Lg?KU$kaQBBis~gBYy!ZK?bnS3{ zE3~#?X`Jtj?s9nYI%SNv*_xS>?8Cjx(S3fO6kJp?t=+VCBk#t6W*G^bBFaz|#_|y| zYkvF5pZ}F8lPKZ*y=lYxws-fgTDxm+fjWOPI!s-ifBR(+l$KCO~- zadJB0$uMfK>zH*L*7Yn+zB6Vr8Vt0-`BkcT@$^*aP>?6BqwiddFF}`^!OhjHH)9xI zZ6{8iZm%CW+)kZ2U+pMy-nwO5MeA!1g^U&VF(hnGG`@Om8(lHlHg4QhPIbFKza2Vu zqWD-qW+Hf~wRIeUj0g>o<2^3=tPZQ90JakxO9t{IJ!%ebT4$$Mk$dZ6ptFMs))rQa)9 zm3tVw!?VgpIU#G~ByZZVv5hQN(b3P)ck~;$83*T27095&&3S+gqxsSt&;R7lf4nwc zWRL9IzbAOzm@#nP$Q*$`_Cx*-t-zNZ+Bs?rMY5M8<^nrThPi;PxsV^|3}5K?b07O+ z^^NX34(9^HnKS)d<-Hka*U4Q*z&V(BAr#*Ym-(RQ{;p~xJVxi|yE8MBCABMHkZ16i z*RYP3t|dENai#m;n$D|&jA;+ssmkzcx6U$}}a z7CaGTPw#~fOK{jTT)wWq!3-S26SJo0cH#1-Wv;sbid`dk@Qct7dU{o%2JM8 z(N*M-Me;__DysCTy46fdj7> zkB&u74?IF9o44ShYBjQ+ZO?WvH%XPB{osdk-{J}q3GRWbvTXBn!O@UOcfpbG%&qfx z-(V74h2sSN9d~A&VCkM7{C&{=KmYhAD;uxm+*rKaQ*t}J#%3XF=o)+VT)!2&W@@Hw z42_Is+<1|#?(A?dWT%<43*QX#h5Y$@|Ls4meuhA%sx8mb$l%BE<~&!R7e8ct+Vrlv zq9-3Zf0XP)m-$X*3Fx9tfv|tqrN3Y2)jKyJR~MLGzq>AkD)KIxPKby+o{oW1n<`{( zV=)>Xfisjw=a%|x-EudOY+N%PChZ5QuMfl3xtL)-#0TNutxQU=rCrDc`~hkRnq%&$ z0Ba*5w1i=hEBc5bAlR;pGLQ%!QE@O4hJK0==I~K{my>JE1WI3XTaI58hG-rG%6WtC zyR%McE&V4Ntu|#MQd=x$@7~XG`w);idyv&hRAkn770rsUWeEDNGROIyfE6_1D0G;}*v+jQjG^FS*vOJ{wymF~w80a- zxy<|Q`Lpe%S6^xe4jruBgO!#SoML>+;`$7y(Q73n^bMDf?t5#LM~sO4Z^g)H`{LK0 zuK8Dgd8b&%#~oGlp#AbM{Xz-d#c{xw$NA+DDL?bKY&l2iK>$%14dYB7oam9@t)hn+ z$GWxSF}gRDaNoImM_V~+ZU5EK>E&`fOG%bu;Iu|4&0K1)z4~%Hl6hUBB+*a6B6wna z9EpN{{>po0*r*RvRPUitxXc_b6kI`N}B3>MP%wo6`%* z8RGTkJ;Tj3BIs?*7NdiL6+kFu8rnpU1CI_)Qm1!-}&E5k1^T&3fI z1Nv~m)9TfIr*iZ^IW<{wgltk$R?AejAWOfxoK)Z8FC}bO zuU!t`bpEV(IOo-W_@0iii#j|H7o9{V(6L|&moCr4slJEt(J3+~sz^B7ct*d<9_d!W3A~4P z=nZ4_^1S;P;T(yA38G7Xu5%a8*D@AxQIH#TOB?k zAMHDV2bGzl};#H&xKFG+l42<$Yo4r{ATRzj$yob&Y1C#c@HnwgETpuq_HHr zNdNW@nYSoVU6>ysp--!5jnlwkiZ9o$r9bj<_MSanq9dv;HySx!&Ev*jayCECT|i|l z@UM!{{XM7^8J+K3a0TwDRh8nViOp^2j$N&G1&<6=twuL!$8$Tk_hn%MMV5)74R%J~ zb$e+AVg=9yvcOKDYN)zYiC|5yweXxm@O?A5-m6}~Q3b?~ZQH`bE1R{aHoFus6>=y& z85!p?9(2edMMGVN_jzfP^NKdmmcPMh;0d24Yw(rKAi8yFuXs83A^NYKyfeR3uUsjGZhzixfm76aY%c2|@WNbeg98w{K_Y*^pra>li9-@fYK zGAe;%fgZoPIIE6bH7-}#vC+G5Ku?0JHr#K2iGIoETDn0udz)X5rZwDt!@uaJ<`~)7 z?UfEARSj?=NTZ@>Rba(YoED(ZxE5vX_jCVj2zB8iJg}sF^IOliXPcvdh(Fct0tEPbXmHZ~D;qO=0jU=nPBV{$1CvdzW&A zSpS~`-0z0#drQjS{r3Gu6iR&&1z?I;crn;TdR)FoB$z7L4YFc9MEaTY<$2=Lzf330{g zXJ7|ZrAQF+`1oj*gc%c~TTebO8|luQER>02NHzzjV&MXW&LHiE^dNB2(x6-hx+-SL zXQf%&wmFZnZ#W}U3`U~Zvg$U^=<7h{m!rz?gE#G&I~)!3*1jqP;~fNv{wN5~WB9G< zi*O~NY)WK|?qx&_>#F_E01EU=Ny=_4iGc;L_wJ?L;KX`20-;A#GoPS~LNE@-Kcn)k zZ+%N>>vjan>AG*pNEBV>xFC)tCll@o3FE3rfBuz1%N#^zH*VbAj-NSNWQ!3`6V7MUfdF%SRkV(xc`f zvBHy#xXiw*jL0ZS^X0J>KJyZQunrAez!*Lsdd$4L!9YPWhzM)6sa-r|&6dCi9`ij% z+ni+%jI)Rw?m`!6z6X)Wh3=p!Q#F*8V||kn`1XkVIZXa$Ko~#j#dpT4Is=SVPY9fV znP=B6< zv;cc@MF}0)sAR!A`csw%R}6l1{r0y!Qtb;|fh9TM8SAG4rn=7s7K}ay`h|-ZDhOxJ zj0KJ&AW~X4t>X@@3r1CtCA6yYNy+ZA6^m-V@FJL~lodYVAKj_2DLEUbz^<(fB_e^5 zAQ(lC2$pnbTi`85KyL7x3IRsCGDCl_-4e$zb8z8vFXIDY<5vD!Mo#96M^)@hUYyF< zVk8BgVBzY_x)v|Q!!83Q;^UX(4e z2S;}#tKD=>_gDiu9Ya>IgM)S55qZnW&E6(_TEc*C@u#2(I9327_}49cf}aIb$YV5# zk8)F$H_E^{KFE&Nq53jj?P4$UV>2M~oDQfp{h=X_neS>-z>F1M8Otk2Z4MgeH%1Vn zCV(jiTflN8_n|9v2~6f$simGvo4?B#HYXC_wKh9-A>J1$+&v3#T*4^Wc6fy&_Cm~J2Q7Gkn6}cI>cP)m3e`e zoyWDwxb+?RXbi|e0P?X%_Ll5nhky%OCOg>@mLv7AgGM_^>vO%=qw`cjL$3b=J2pax?n? z-`bGZIE}I1^KU4nw1yuPd9;7kdxal2K} zguNj70&c5f^ml!6XRh*XO;y1-T|uRf=VisM0XHrc4xACNB#*t6wSvFna{4wXS#I2l9+OT2gv1jz??`I8fS3AFxGVKX{~U&Ye59mxBbJCypPleN1d% zi1x|%Ygexn&7vhst~PJ!N4dGWoM9(&x-Avx`+tzh9%i%3%t&pIbSkHrrcP-%>Euu$gp`V9k(Jn zRA7PgX1?fJqUn4bC37Ov!0ge-9xnQ__YKVBN6(X;Y#;NapXnN<e#n%vBk*MIlXxM^>2>h4 z|By0ubma(ReU?3kVR8*N1{$)-obTCm#^v7kzWbde)3iA?Jyo(0?%;(C;oopB$uMxn zQ^rFd6ddx>o&avQy}R6YRI+vlxkXq1(LemdH3u1Qy3qKI$7Z-H5&g!OVpBVA?X}lm zZ%2=vX#4l?t?>zbvb#n`mSzl2ks2#~*@KT{OSh{8U!HpMks7nHkbCH}Xf*w}9Q$Q_ zbQ#%Swm$nL<1sE(Z^VYGNAPr+r;S~~+?=FPzy7sv{ARD={@r_hufx4)fphLc9APBL zfheUr0J>u3$efWU(zm35?uC=@-0o!^#khIS_oDC&BMd>9iZW`Caf3k-nuzg0gp7O& z`(_L$j+;IR1ChwSo~B1k5gh`jENhKN5L=nl^odC^NoBGlOgQiQK{x~e9-~~R;v{=! z`LY$cXSQ89e<1?0uURHUY7I)pW)0u66>%6ct`YKZSYev z?0ZhO9SaFme|MoVKMrVM6(Jxx#{sFGt=!g;b$&#QY7aF0!JgZI0cyz_8HgjdVoQSa~{I@^;eeKfqz7fUL`I!S2Two>p&9P-j+dzaT6m`JcTFIIUEmzAE|{ zxE4Q_P!{A+k)Q-fzddtVnW4bB0!(?%egzagA&IUy+y3ds-?dIIV}VN-K0^uS?EsHg5?&<)|G})`T`6b?0exOn~jkzoEmgQ zh7L}Hb&s4|RS$R@O_}q&`Kn_C;_f%cdnlc+9n3TS$}pO9kw>U8ghS@3Dk(!g-@=Q4 zCu73>zH@K>%;)YHdk!u4?>oVd<*C&GVjd;RST+!eihpIDkLVu!{rhIa$YxQ!_PB^o)+-+Sp4LWlUaV zd#z)|!>O-norqqXi1XmG-d;5w9$TFGTH2uk z!A3xM1pQUuEq(PMKv?ny9%N_Q=o{M2jUeMOw*JCj=*P?N=?5d` zy_UlSM__Lb1=H9UD?%fdT!5W9jO8GMS9DnWZeS7snf{WU4R3X@pyq zBrC|L3aBiuLQzT!EiU=D zW$U(Teza*0Bg>Xo00IxQ0V{KzIp>y|N7=;d*O$%p(hDzEDgKTf+k^kR72H!k%}F#? za-3c_hHcxomYp>+7vKR`wVGAXbFu+rmYbF%BB&#y%`T{xef zTG0W$YtAlm5BzQX3^wdtPO#tkAl7`-XXFSRd%<6qJM5nBjIxQ`V~zqw>>2@=vhnha z`_U`h3{|5}(9yT=(X4j0)oH9(%d$cIEl6`d<1$xpFxJ5?EV&X`=*Jk`4{l2WGjs~4 zb}4`Exv#fl$B&mx>khY#s)t~0mz(H9075_p-=cAC8W(ypu1b!u1JbA8*&o{Qa_MuZ zq%>YMS-2BO41CCX@EGhiHW8f&9ySU+bnwWp?Qo}~zvjpP7+$XbnZrG=M~tnr08~Po zQ9^5oY(iWa$w3f=KoTSu0f)diLYUb1N`-CI!x<56p|s(U(1Td_KorBJqQD^ln?n#T zrQjn3AP*yWXRu=^k6jE-B5Oh3C7%6Rv(8(gDqY}#W7zgvr$usTp zr5mL*7*HoqoXPkjgd%jhz+6`2q2M@W=2`|)h}dq6Kw_JJXQAa+zh#1Rkhtk;i{ zWTYuyrBE3*CSUXBEG&;vyk=e6%YU<(TL}4Pn1pkNQNX}E16^sCxne-X&H&QfO6hW*S42sG4?(U$kxJha0>)#* z5CMfAELhYHSNkqM3Eb6V>)UGwzMb}a#8foD0uvdBcEA)p;|bATjt)nK zP&7UY2GNS%!&jAgBjP+~EuY`e{N?FOZ8XpA-nqN7%QF`*MR@h{Db7JKkuh|o>M!%h z1B^Qgz;Qn^d_}YOXG?feUKFXL>^xVI?mP@nB@ja+93SsjqtwfQ37-hwER1tiN-Yzk ztcOjFL|P5Nycv$>VXiWTlmUh8@_VnMSP&rg#H=WDrL0e7(r?<;bu{ztb6Omk zMTTC!aw!I1ly^~=c?o~b2Q|>%c`}Sw~MzX zXJRm=eR~a;i^7lRju8Mx|Oz!v?Zhh=Gx+#?gn zABHZ<==2obk+~FakM!Llk~@;yV8UNA@F#Y@J|(Cc!(2Sx0G;MvN4 z2X1TwK^2BK9Iz!kXG5yeLz$Bx62lMPO0NXB>9yu#Joqzz&hb~^6ujFA%zAV(LK^`} z__ikuBmnS{tnn5fk44G)oYRt#Ld;g>g@?YyHOZPagdV}JLlaGT%IB*#(NJ)WZb1*X_PrB{M0!AnQT zSuQj<4FZ`q%hCoo^+1GndnTKVbexyq3nysXw(SLH@(zvCKj=b*3WFcN(fOPw_LdE! zjQ_xagJlm0@ZJu5ZNf#iSCvWNaQN`yo@5~F%btBufz!gNN|yYMzQ|p6C0L;g^v)LL zaHFx3=TlSR;T2U%Ych32>GH_WJa3M*EGzw&yur^4L))1TeiPKu2RlqKKoVlYQi;$p z9+}uUQ8I1byoI&HyN%~8chQ#TEOU`HRJ{cL#tN3Iolv=UPM?kd}UR1o;!OXogVq`l$!E1u4 zy^4#>WD9kE_IKO1ZPhkD!%N!tA~QUPcZ{hv10!3= zkvaIG2XrJzMqcVmW*gj%+cN^RL)QB)`5wH3h4-UJj}|QYcvTEvF1_w~G)L!`pA}ld zQ)pkCo~?PsF5z(7&*0dx6YYf;UTCkr_G(oC*iS%!p#l$ee``15WYhch#<+B8y7WC9 z!JGEF%Aj;vMf477NVFuX*BB9BUEu%Jo#n7Bckqr)7DPe*-_c5-j z+$?RB;}^wcJ?s2hMm5a?M31~cXn)vX;H)5fyJU6>H=4?^#hSa6$Y&yEw$fRB^a3U5e98p@e~rNqZbE<8;|+nzC}00T?(FNQBc+hC47A!2(y9 z5tF%(LZ|$Vg`-|ZQ0`@5>4JGpXnA&lqr(Clk!hPh^fR>MROVe7iw7uF<6+beMpgxO zBCH4ln|P^!5K$#ejq~X7qiy4ciBkHUH#^N+lVT_GbEkT_%l4gH%c#3@^-{*LAkO%i zcJ9L2HaX2nXI#fv4b3p31VXHLLJNW&;48r6WlptQCm5s;!jqDSEGn1|0j4r~BUBlL z^B7f`hxLhDH*amXZ`^Ljj-HGYY|}wTZ4X9h1J3mg#vFdU=dzf80a}zh{4 zV@b6NLBbe;Ynf$+2pY*y3yz|~HOAb}=^+ys4veoVrw=T;krX@y792(a2ej*={3san z0Ata2?Fs1lTe%z>s%O(yIfhrQm!2&}D$v4+&Xx0qv7xW`wj z66VzrTnuCLv!gJsB`Q{Rx)d}Ojp9%de@Q}8@zUYq0vyF)+5NCwoHLj(1D=74sJrz7(P zJ_Tv;E(4qFv#jYBeu}N(S-bXT3Yq_G=~#V(7npK}@86#-J|a);!cF(eLM}_+mH^F6 z$KhTac^i0IVpQ37!OiG|03|RAE;1M9juS7YV)O?~6}(5sDn$h37tZ0MmxXtl0n_eq z=bp4}OkVjTuLni@bTt}bFBMPZxx#s4TM!UD-VA)Jj0F7*+kI}NRlOHnMmI0Iv6Is;v5D_G>9O8EIjKC9~or!~P z$pu=pu9Qt6@NA6mX?%hi@Fv&?S7eus!DN`p!&{->w>lt_i zAIFa!FZgn{WyH~kIiq3tH$Su_a8A#oadzH7vl&di4}olsGnyUjm)hecG^!mkz;o~? z+h603EH-caymiagssIoW#3SG(@!~ghS=r!xRvBX>R~x_yB(Q~4!O=lOH3pqYQko3h zbI4AfK3)1iAn;6_Z%0SLyJUqW4>r0w8z;WzAN&~O(xnn>BklC*^QA{Q+hw;27G&IH zAe|~p3bs$Z^{J}rLkpbuk_Ev(Sxv^)@~PmD^IEp%%%%3$_!Udj*Q5ZUKwiI-0Wu$( zAff^1rK=3$AWw%^$Omx1yYv*huhYl9*kup3Hg}(9ZZqC|@7>Y>vXg@h=V*CwIO$ry!Smot z`Ob6h8Dz1|=DzZkuhs7EWGp3Bu5AXqVmo!V538FMa7t z?Z5#Wtj;ezD1g;BhPx8GsGsr9H>zWt!>{^ekAe|8MNj%OM&s+Wu&8V;b0BBTS9|tZ zSQea~JAc0BiFUzFTks;m1t;KOJY+7KeIuEB<$61F`pmECaCZyqKhoMXQ%5Ro7!P9e3JbPt0i^R;MQ-oj3DOAY0NbVuCDdYD6c4Oz0;og=(AB86hkX#fWTu2UN~n%jw?lkHSaJQg@&jQ7Xtv34I5@L z;u%kr0$ml}O`m-YxaT;o2M-?T0yoBs@=hhqm|UA8+JqTHx-#w&a3Z`KW8`A8@IoAp z<;A=NftP49f(B>IB2wtyXFmFsGX6Vr-)l1V1aLXgQCJwv8Ha;|JW}OvO164tfnfAK zT`Mz7;Clw_jai?AfcoNBzFor6#gOxz@%U^k?$xIE;d$RP{xC22fU)d4=flM*^F1Tk z#2Fqk7@z*+(=|5bsoHUY9j9n0;n5GlDEej>P|8@;S*c8jupK#Zpl#l?wLSURJKLf- zlb52XJ(C8jJuqSTefATdZ(BA$)ZX&gyEBH+(CqDUl5JQMu~O^#R*tQxtZ`*S)`TuX z+p@2-afC&JJN)xLH}{Hm2R0N?^*ML_>d$8iS@e5Jv-S{u1l5x2>e2fGo zNHRN&4ZJ{z!X+ad-rl^xnqx)TMK~|C#G;px+3-ZR_Qc_ng(sQ9Tj5Xi%s^&LRJJ$< zf$I^a+J*aW{no3 zUKWTGXpWTuO5dtp&?4A{(`%mx>z>OX4{jJxWQoh~=FYKKk-~sSSDydzfBsV$Ti?h| z!xc2jGsZ^&`7GmNO&|xIVd`Z*o1^G$R)!YQxJz(NStchM92s3qVEsS+kuQ~8v)+wz zmv!8_bxV}$Xk~hX%90C&0fWc!UV=zuto=3W{MgXuiqYj&;bX4|$A`$WGKd7_WZ==< z#Y4TS37*lEca9ETC7*}i$l8+aG1#0{zc_MmH1cC5!%9RnFL;If&ZphLXB?Z8>q?yr zFn49XozJ}&ndIuQDb1TX)^BqxQ#2Vo84Epx_IoC%JM?&%(zkoLHD|Z3*aWXHd0-e% zY@TRa0>fIyM0SRTJi~zLXU0bcMV<@RT#g<(e&TrK_rY=+Y-Y55+qTLsRfap`!OP0X z^?&uorD{_p0o`C;j6$^TdzpCIBu29A1Dsj*00cb)DR{9mJQ4>66+~`>o=ohm%vpc* zgq?kV;+H>Hf1^3ZQ^|qQD4pWPsFFcJv*1z=K<*tbjx;^t9x(OWfFCpn@4j>2M?U%G z8Y_OPYNNTG;cdtyz^CHDg|{Km*vSG;PObk7Ix8@ef9@ft?%oj~7qI742bd=&%oa_M)v?Uir6 zQcfED4OLn}h05*X-R1diZFKcmcx-ia%!Yr$VfFdUclCO-q*zzkqEgMXIoONZ^m^q zI^j|~cI;T$Y}yit2g@~a#__oM`y2mr0##9T{onUF`N#j{e=7WWkz;TIUY@g&nl<5) zh+t>@Xv%$H2j*Y^?xkO1@1RKze@|fa1d$6~|KeZz%eC)-Hqgr;KZoaiXAUmk`D~2( ze(}W@+qb^;?RNO^ky;|~t#5s+%D}DvH&%2un>N@ZsyF_#|NOrS{Z1DS$uY8?9K=U2 zz4+4qkG%hmw=}!%0`FZp=Wy#*uIdV1om;I|D@&G;12)DOV-E%o9>b7chT%2v;q?qK zm|@^Ez+jjeg0ZoUWrJ-l);Mz(r%&nG*q+T-V$|2qm6gn;1W4&gC|N=3 zqQ!A6W1ujA0G`vNB-_mJ&e!&}ZClq@`4Og9wj>bXXe%+6O;0nW@CY8}&<19!5~^Z! z<=x#;5CEMGBU`V@s8ZI5@BX8E$J)sH6&1M3w4FND6$HofQ3B$~qEnx`zy#&R}Z!U^u z|GxcYxRrwvmYPM#g^m&t@ah=`r+?pr@RwfR)gE~LJzdEV>cAne7!(e{=X@KlY%zzT zlx5oC!1nbg%KJFbR|=mt!7!VP9!fH&&zxPjFl)VTlQmcqrSu6i8ga}h5444U?Niz^ z$+gK-z8{o;4MwI+z1~(V9w{YubnI}sGe-`N)i_7jjO6zz?dYLn?cMMG&i3MKPqm3l zXA4dxxp)>23eXr@rR`i2vmcxr{LL{Ggh^u5TF2l(R^DtP8Vwm&xPsSRFYak~-M6FY zY3E&~R*q3oWwCe9zVLouAL{sv%a{6$g`iV11?-iC2%j_Dc&DEOy{P0tki}TZoJtt% z-+8EQzjJHR2QQ$v_j07d50zM&xKOfI<@>?sXQ6|7L8~<+4L`2Agzv-_dsK9os5Ul!(ArMWg5+ySYxCA~2RDwNXw2)9?&FR5fMh z#Bv5Wqi>YlX9Q_Cyc$Q$-V_CH+SBKSi|2BmGtkLsU*{}=#a7rXX+ih{9D?kw^LlxF zIeiHV9G^8m0rx`kpFYEw8n5T;-0Q%}N%#KL3%lB#+t%mz1he5)^u;6a?$Yico4&)( zUz63z7u~^WrX%SoPCFSk9)Ej|ygdE627h&d-lFKRg}KiLch)eovkMo@tK_Rh4SbN7FizR)pt5kiYuDkna)p_sJQo^U&Skb; zLbaC5z(1MEGezUz5e__ym-2OummJi4elv5`11|cU?Ilw-wKc0{y}pfQ`(yx{3l{dt zr9FLl*GK;jGxuxw-am;@x|gp-r}|DMh}XHun>2-4HM7=uVCBk@x*s2`iOr>JCHmME z!FKs`k%s|plQP#sCpJ@sP@m=Rr{PqPm6q|qv(LZOUjMqg%YJI3W_$C@{{4rF$E;1h zWy`h%3zyrI@nI(}@eQX`@HRGfy!g#t1XVQ`x(O`!P}=5KSo^F$HuKe2cemSb-&Ves zJzIuNpPYdVH>xQ-*X>LX1SM}J`@5X6Q-gjAt|B97indPnpi3nLRUCf#k*~BjzxfUI znVjG?a$z?1$)~^C#!lD)TWRx|ngy0fP!4W#V&kR_J<*@vC76n*Vy~|TMmvE!YO`R^ zJ$Uob{$p+J`sJNpr}OW6pf1ps?87U#!2E}#KD>gzeB6xDSjoO+U6uiE-MS?~@zUt7 zUa~y8dR5^_(*DI4ceWq?lRwn=B?>H-C*5=RJ-PQ%+p}|be4MVs1#&OH{Bql!;E&xb zo{r628GS36i+}iD_~A%=b!+F32Y+<1i_AXr%=2ygwoL^qJ4esbDH7JZcke2Fp8=GP zkqq(BUj5q8%YoeF+LdD(DC#$cs$?lU)VnQ!H=~!z43L>6n^No#CX=N zU0eO~l_dR7lZOQB*6kbPfV=X^BNOa27~PLoRA=~`jU7KbQJdR|E&o$9+|!mUS@Pe^ z8g4H^iwjbgFP>dHBoZJ&Mg>w~EQV`C6b5I++9OT_ht`YJ5;a}OXLxKhLYZM=yJMRT zq*y3!>*55TnDwqZw?_dGW?4s6r+hfg0u2s?*+v3!vz$8&;a5ZUp$>^fMpd59wtorn@^P(#ZnLa5@OvKx+GNFu(!C8=ipbJSa*`s_h zq!|gyR0)r^YcruJS<3k8^#t!xQj90O$fjExgrO-ta5$)5>Epoz2TIvqP8$>^=WAh< zA%n+ZRAo@-TSfrkKp@jIzq8t=E$f)-f*0QP(`OlasR$>Z@^p`}!HG>qC@E#TV6_QR zFVXHLxq=0FmMJrS8G6F|#y8wkZ7?nr1*MMmc!8jyDdWMAcV`gYPL~pdXvPx1Xe(Xh z{#kKK7snVZX?ynWt1KS;G1Qx**aeMd=ghn*-Qv)?7&_w`92Dn4TM`gU9fx;uIRKO+ zr3IJ!4(w_tPaQ91ApkfY{{Ca%Hmm*BADq(u!gr3hzw={r+WqUEX>YjYd|R{PW;-}O zvt7Q95936ICu+T7j2c{7-$y|Poi+Y^RSFm_@CV~>j%UzQu)v9oxi*(A>AUwc7B+s;pJ13{ts>y{ zcivj#fmZ=Px|X5IclNo^cMk*wO1(@Gf72!O9z1~u-Uu{tIdU!Z|b5)B8p} zX@7L{Nbfs(wMupK%>23YyVIMoIeQyU?T(9|7G|tBg4;SuX>y6c@v$SN_o`}u4ZxeB zaipYlK_NcZ+_Xy%`rTDKn&;}I$p7+Hz7e4bl92b8E#(@Vb8x(nv+@R+; z*Yx7TW%CPeV>Es}a=?|fU9gLG?q#dGJ?a4x+Oc=WnUCf0lU2v(ab!=%K60oee&83} z^rdp^3g`p3q!ak`3s&b?lL>gS96%+FesW9n|BXrzjvW~b3{%_Mk9n0`85@U-A&m|3gu$YWkEcpLb@^KeMshoqTj{6@#qX%dCLqtn6vmN;SX zswCHMGiG|O)2^=*>^v=a)Mjp}c8p0I=sY-z)lY6j*|}g*zr|~T*U1AC@Eqq= zBW3{;uvK+gU=E%fV^rfvA6~v=$835AzwpIo4i`KMatl9sPKh^uLT5bG1ND}`tp|l< zqBf~Z|8$1uHP>zNZ$jKmESpzI!`AA z%2~lV+|8aduVxNyo|XYLn|kpdY6IE~9$x5dJcSP>ZqdqTc!YD~y5o-R6>#;k-1GIq zyX?A3MDX|wx9~y+*-e{N`mJykovuB470%IBq6L1)y5MJN#(mq4ZIvWn7#S$L5ItcD z(91htX=5jkx2g12{EV~b;yazTnP9KnWIHx&+)#9)kI0`s1>crX+HB2BB_BJ8Z#LbM zU^6(C^kH-83^)C!Xkm#$ z@lJ3psp>Qvu-v|5OTk9ht9Da1PXC+n=1Zd;|HxWyi4OPiL)i&Q1vGMxm#gBO(05*J zRmW{#Dnt*z=MTKIW{JV1f{7jzu%f&B@Tk|IXX$@@;Pv#=&lE55OSJ(;ek}iCad=fi zNWXT}mrVTjKk)W~$+L7a-b5p`K6v18c;b8|^2rOI@9g>b$LU-0L*JCKo$vVvk`#0j z-;2&PMinB--I6i zB3tONVBylL82eoV?*Eo|DgTZ4e>lQ>x^1~-!`F--$K;pa_u=-)<4?BN-MJ%w1*741 zdig^i_*8r4Vb~apFaU-1v5$SJ?q4}#wpqYL8C-3j`@)lL=k7!8mb6oc!AHRz z85?UaJiVu#J$a$6T)nJ_PAM}&&prHNJAUwF8{IGxIQ!8MW(p?GT&_*jX3y_sdP*`W z<$XI3wBtulwzV z{`-IJlkKJFceZ<8cUuWZ4_aFLW$dLcquYRe;PIL_{b*ocj-;?`Yp_hmv3jKKI3^VsH<~v0t2KIpEhT<8^ZUd^>b_tZmx3K7IDh zrWmjHf8f*Y>90Q9maSagov1uxle;7P543~(4z?vLmX>j(+@>dB_~OSNZTnw4*w%+n zI32#nqX%~$u36%3QN)ZK#X%{2E^zMMxi10yhDyBLvhs5Kw}0(g`?KFSuax&!cFt@M zzc{lUJUzE9m~*3j$6XiO4?b`qW4zuTd0D_at=f6~GtbtH@#fpsm!dC1PQBS4`S_D< zZ2$4L{mw0=)LnSx6Yu+MJCOTtyXV$|rQNvP{?r5e+yC^g{cZh{b8YXjIqm6vOWMxk zE8E$N39POkY=7kKt^M(DpVeMFaINh>HmeNJsdI;eU&lxE%(~zL;ZGbrUiewFc6I0% zMIT-iI6eOPC)37x%S`=VL&Yn6*vI z*M$Hvh?mZ_%hxZrc{AtMnEc4G+i+tS5LYlc>$=huJfW9_vU_O|=qbWhC!nz^F%ANlAL zZGWCwcZ)S_oE~(!*go;=pAB6Owk-+5OX+9K@c-Cno^G!`zo%{79zIE@);`1M7eDe? z?myf%g?|_wRRS`?zw+-s)?R*PUwiYL?yaDi+;NTn(ZBqq_UMz(w)^keJ{dgsfahQT z(r>iKo_wag?Tz=<{n{cI|N0l-*PeahmG;IMGX@b%f~XIF;IonWUG1%JeM331e^h5%c&BgbQ`I2>i@}Z~O z?w5>reaX6DUGVzYr=MsS#xJ(j>sJM9y(FGt{K7{bZHIRsX`64|&=$u4(-Fq}@!$At zd-cWL?asTlwUx_PRB~WZ^wyUieX2?q@4PkrMhBP$wCnJ$Lu2iN+1v#({$1v7+??9R zPuYOyLUdja&N+UYcu27UQ|IEMtNc(E&^18^2FYRN%8T^@FeXu2bx;^*1>;pn~{OSik-ClZaZ@cgA+sYZYq+xdK*k?ce<+eMv zkbR-E>0Gw<%a4Aw9XfclIX26zi6C0y^VPJW#QBz6HuXMf^uYAc=N_rO02W#v5qRKP zQtXSLek8VYZ`&5W!n5GFcKX+T<-wXU6C|_YzPJC%``-V__U!Yov>n@SDPN!xq3P$L z&p+M{?myC2kE|#=r}EAo6rcF`7utzqr`y`m1d8Fi%^Nqy_qe6~AOGlIw8x)%uHA9# zmI^%R2E6kAPky1jvgbg%E%uRZfq%)l_dWQz_Vn|ww)^kBqwcSn+1&rJk3QU9ePwUk zylGwGrYdCOw14u`UunmVpKIG0i zFD+f_ReHxy9FE>OTXLa4m+p_AI2t&^&j}3aR5nIX_FCG%5WbuhS(lWFD3xy7bL42- z6K8y6a@Ng}UjRN5pJ*aBh;GN1QbO?drN^FX&p!KNTe&j#2QSw3&I#Ur;TM0UJ^sX3 z+qb{x-Q|OjDdYM#@BNkb;;XybJ$KyEto;^HpU88MJpM%6wReB%m`eJEPdsxby5z#e z%WZjlH+VLyE;0FRe4L|WC)$eTi(`}Hf96H6e&M07wB5T8w6&{OhVBV8!i)6lqhEeL zfzHu(>up=hf5Q)G@QDW>YWpJBJMP-reVP2gC;RM&AC0^pZ5y|&iJqEQm5TV{)#rD$ z{d*F0E?ZRkc4dOEx$|bXpZHsUzkTX6UubW8#~a&Nbf)E(+WYiJJKwH~A8QhXz7nv0 z_yZqrUx^?7`ukrOJldOKcKNdZ_7~pUUVQ$gHW6Qe9xGZ#-oO0C=i09LOLyMAEi~(U zBS|_w`lV;u;lsxwryCO__j2*G3HlEoq{k)_9QNJ6*$Qn*oLmkMFI(2-_r({UPXIjL zzWDH0+gIYpZVjJn7efdlKl-6hr{6v8EpL8f{JN86^F~&Tw4eRCUkpya5&H%zxeBISLpJF=wVeMuYwfugUTUjHSC#DqyFHE`{o+@uVsqI_ z=fYo)9*&ONw7LD2zx+27Up(9Hi~sMEm?3{Z{nNkP9)1}7@2TX3%2U47KmS+nZBKsn z`S#{FzOLv&NATl*qDTIlxU8ety?b|k{;?nXvG(cDeY`D+l32TT zO|ucmiYNxVk5`U62&JT^M%kW?qgM`Pn1W&B6n2BqXLZbQ6L=-UoLvliH4I|y!h#rb zGf1*9X0 zD-i>5CjB@@3eyTieTRX-D%*EHO5tn_8KostNhwn<%02`rD`U7ZFo(!Fs+=~Lzy~wx zUm0yLQ*>VJ$)=iB>8Z`#E?>Ra&c%?)&?~E76o*hSj9IPid-EF~C`WyIU_^sgVoVk; z%RMomW;B*9UQ(I$#S6N@!>r(19>rqj+jzk)!+b5c=PcW-%O+u*2gafw{iNLWx7PK^ z63&=8CxSnxIR{YNvaJGX=a0jYdW9+@4c#OMC^JThz;bN0<34S3u)U*A1%#m`#bmZx z=q72hbLZ~*e9M;2l@+^m$!@+eg4S9FpPRPc-ah|@huSNzyjDia1|a1uUyoy!fZMSs zj8mNfAH(0vcjx7!S(@%_SR2gYvxZqfN!g(vxRnFqr|-W1O8ftO$AR|B-fQiD{;4zV z;@msp7@wKszd0@bTgG>-{n)!MwI6u>`S#SFY3*;kZ)ps-nViX4yIdT9yw3qyw9q>L zSv6}6KllxrY(Mh>!EBt$8`kgkS#8dcahVfbIkK|WlgsKWJLCAM3NYph&~lHG zOpYw?M>cc+o_*!~dEOc;N>S!px$;B;@2i*6_VpklXyqi~1)mvwfgD*z|3p4gO2r2^ zrgq~cprgFu9?zkdnN~bX{_rSz@dXwy4*de*`t=F;;uM*M(AKH5XKM2!8z{Z{+RiGU z!`DZS9IkPIp~@sHXtD{T8K=H8ECW(93+~Vc%x2Qaq$CvsDH~feX6b!#^n!C`mG$4K zM4?KYYh`d2B%qp_``pi|(YEZkW-a4f)iH&6er{|4+43C6_xkkMg#_pL$!0`mO6a0v3I6QbIwt`sTB11~ zKYDnq9Xouw&70Nt>hRo@^lRm!fc8@7u*RPIjE$UM3a#-rrPW5jCTw@EP zMfb_cCww&+9mT@SvE#}Ys?Z*x03 z({DbWZs+Jcz-R;VH4rya`0^?_t2Q*T=n0N z^;3$iYJ@Cajb2@|W^LQHZF^Na@>$6px!k#PXY9;)cyV?Dz~gP}woSpQWM1eHU2Xis zY@}njB=2gqxxJKt z8;tLG$2%+7dgawutHgOl{I4^o&$O>T{Y=|@%Pnoq>NRE8_-40m>yr<5*ye9;zjb^0 z0%ZDT;e19Li=CH@yP5C#+7qFV_eB)=#%$UrS^G7#qTwi;12!74L(l2a; zicLW@IME%io887Mbcc(L!N-zb#&PBHwOZ@!UNgFL;*a7_7u`sgojY#>xxQJdK1)xe z4Sl%qg-Q>$`mx6zYmYzvc#WH1V{E>!7-KRhWmg5Ht5&Tn*w=;M^(nXoC;#T;$usTC zkA9`?+_k$VHRwANbSfdhn(phG5x?i{Z+%-;vcbC}mWeq0fy=#0?BU1x^vb<0Zyex< zgXtkSoEZcBu39siVEn0C24Ea)DqUmOcb}Jp*J~&I;1YgcdF9oLY4}XnZq8_rKKkW~ zEq(VNyZ)P=;ePVzCrjWdBQr?n&Wtx_N1Bb{WO3vfLP{3XDA^)B$`B!+05Qx6T4m7r zO|V7C882mfix(}dEVSc|IEJ#N?kmL@hGF;^`G8S^a6WLDjh;7GX-q#xAtt0sj|jm; z?iYk%8U|5NYnN3_S;CyQC_^yT`hvhfkgQQ7IF17WIOjp%j4kJtA*BRxEaijoJxhVw zRU2GN%FA$vLCtQMg%$iLKcT3cbDZIqf~;d}0=xAZjH0nq`Hp`OpgQNA0;U87+l-B1 zC@3vqVE8?!blkYKB_I;85d_Zv>L`hhQ|FlW&E?$ZMYt(+uo`;>3MGuz$lsU@1Y-PS zJY>o!2Fj!ic;M29*YKUsbq`?;Jo+??Oi3_ej1R|5xfx|in7d=w19MJ2`W-lUIIlyM zoZytM-?*XZ1Rm#a;)z;22oZTv8eSFn!ByxhnA3Od&=}{X3~|Q6fz#K$o3FH=_#+3} zmtL6GzUQx=ZaWVK-nl)KN>RX7?K~QcK65Az+1@MdN8Wb1tzCMvJ^ZS*$sC(Fu96q| z$DpA>FYAj5D2FNd3_SR=%4|3#q3~b*_PuS}=tTQpe`RTV|6}$6P%<845gBnjh+S=E z3C~=Z-+uNtPqop-=h~n7-f8XmJyY7ABb_g6ooN19BEcy#KI4kpS#s#b8BwmpX9gSJMQ%yRBLFM($!2ppUx4mIAz8%hybOJhQ>!9d{6 zzGhR&yd6Y4{mUuKSh^1CI~{|89w;3Zx}z1jLQBq?pqul=2u&%t=`=bi4t3h+{P$Vn zE|dDJq$Av<4Nd?Zfdd5GJX;g zE^RP^btZj2qmrz+sv0s42KeZ@;K2TeV>W04-!~fV;ndnHY$0Nw#bV9@zBKi z1f4B5tmw#2^>S~Y@gyE&3rZ z@H)L>sf7&~gZ{vIzGx>Q%89LG;nKj_@pJ8Tf^Mb!`aCs$rt@yvx3|gE$Ob*94}HBwAVE5h^shA+7E4x8S~3CwSn%aFq=(T}q=uPPL#hiChS zdICgFZyhfg-jMXU6uogKf%cV2+JgOJ#%&gulUZ=ZF@zz3Ip5&slrCG=Q~RZ62t%`e z+-EN>hh}nX_MA?k-wXa|RbvCQz#3fcBX4DwBA@ucjEr(l&w)j`drgkuRS8!UF4IFpAH+qNLi`iVHP$BJLs0Gp8J zvEch!TfK$@KP$Q`yc=Ap>=NQ3>YW79ty~LU&5AL@l z5N;%;&}~tI3?=4yqI@M4FxuA_UN&;i)$*piOALECd4z7_!_cz=cuO_L<9pRO*xSHZ zdt~G@AAv1_FMk_vK&ZrnQrwy#3ap-$0E8c7BP)J$zomd>C`PjCq=1 zJArNOv^U6n?z23KO=DYv-EMQQ<=6O){O6O$Rs4{v3kj^2)jDSS0k57KKiyv4`C3gz z@j>t$`vi9K2rhr~odluy3e5QX)dadWdbE7WWYfZhmN+CRJm=WV=>0rzZ=2Fl8LzX$ z=|t_YLxM}ex{4gWyuh`V7l!A(;8=pe#MbQK7rs=c*wd-qoK`_1_|QvSz|WWTeEzu? zYZhO%<@p5i^rD1{d%^8~xBwHot1Nugs*(Ea9&(*WORq>qz{|PFsb!;dg>jXS!B&>e zx>D_;seZgX?|b~CKe|I=Y48vIjo+%j=m_`nLk627$y4|aOnhgRF8n|7lILCYkk8t1 z-=JU7pPmz64HHuIw>Aac^f>wBcZhL(1~1)!29{O~JX~e+M~=3gJ9o9Cb&h?XQ6@jy z(HFWHi;A?7m8&Y?mULr_@G_2u8+^kKDc{Fn`sarlpXc$I`@AG8^h3w{Oy9sOeTj$I z2uT4+SkJ;A-0BbPg}3zodman+-*UkH*rShE#>>v(l$;F^lru4gW}#=ya7OK%GSnC! z-%tjeL&U>42xtwU5_1MZrjH?EI0bSDE^z*tpL<_>;0<@?5!u{48X{v>!Y>Pqv2Mh( zx8o(lQ5&S(oKo;ssZs7>;Kt9Mt{Lb)o5ir6sr5yad94SE0(Dz8&S%ELk)MbtJ+|=!7jKGD17w6huUqo zZ|T8iaJqVQw1fu^;E8a!jLijyk{8yZFrJ(~fkYXhylUnEEkhGdE4aX8t^Efc{9L=| z&h4dGjfqg=g*x&m0w{n2C%&=n87(=eGO-t9Y?Pv+hbjU*Fet5^yZ5%khmV$%N`b9d zv9i7R%rg~8cm_X$0gvd@ecC42E=mM1zyU{#B7g(54mlDmOlg1jhxWHq=cl(H|JkK+ zxQ=JM*W2jYRb`x>`tq}F$%;j#G$?P0mEA{gwz2W+?N7h!a@%>NwcTUG41p4Sj#n=s zD`zQ$6WDQpIgxO#Y*uB+d+xZ_fS8lXl{^+sx?$=Lg-~09{?dKjekKAWx(ZW?U2{OQIhMqwod+2X7vauLLWuAw3 zjqagT=3|zGl5UJ)B^&1XhNH(x#NHlU!w2+wgz&%_HYvDD&fu|dJ$}M{Atg4!`wdPPz zVRI4{8I^QM+rRd!54LZ6$6LzDk$g0(MmE8OK6O?(RT3KO7Y&S`b3(5O8qvutH5dY9 zo0HEs!?QM6ltcjgie)R>7e4isw!`|_z*YJ`It=av*2|Xk%`!Kv-_R~af89u1Q#qFj zqOM+=DB7K~PB5@Zp4zmH1I>xFQK8Bq$0vaqY-7g`g%5gQ)WhW-AR=ka5a)eb>`KI^ z^iRol{v%KHuVd;2Fmzrej`Ewp==zlFmB2uM`b&k>(+@x2Hf&j2wB-1^pDfz+W#ZgK zi{>glXFMEIfeHS$sS|kVtrOutI^;s+@%%+jR)U8(t=a^eWH1r2>#oWW!3g}*ffBRq zBDu1Oq1jGwkT+{E%^2VzPLlBmzR#RGmp8;Q=|1u=*zUnm-xO7eEcrx(FMj$fZTNFb1w4W&jS=!X?&9mv7c=Z}awBkFtR0fsp2wbe zu5G<#W9d4&!Yrr~SA9t6hr7G(O+n2ulWV?OG z_8OBQL_22RV`&Q({ln9YSrRPqRl<*Dci1WTrAre2;$5Dp{v6fHh8b&Bf~5`gJb36- z{KA>_EI*fTgeFtc-lgDhTG}suo|JcixsAlg7d^1fWehY zH;GvICqMjpw&Te!zt~odE~`LQLh;bS!}UGfNcbK*ek?S&SP2N#XhU+Eyx~W@!DoOI z6J+pB29+Z7wIy50g{0K`e)FU4)-9Xb3(vpUP8>f~l|p2!l1g|XbSINwa}o(#h)-?6 z=R^=E}D@Yu#sW*TC)A8e(Go2o8R*KqJc~M=zJn^4xdi71K(NF!-lCQN%&xF z0XS6andr0uoy3VGfj&&Wz`J_{&1R(kK3H&GiA6go(Y92ltJKv|x-fnH9y?H)t?3YJ-t5Z6;PB+}lU0%~ zgK1`x1E3tPI|Fm7FA9o-HL`MfDS*+@m2Jt=#c@DphVjn!SptECjx#n#YIs&=3J#T@ z-?HVFV(^=hJ>~JTtY}l4f<)K}l?z`HcEJcCP`W|T2?629{4NH==jfg&cxUmRE`utA zD7#9=862gZX6v;nz=R75tJ(-0UNs|;dpQG?iQOf^&(Ramm_2|4>$L-66x6&j3KZ4q z)oW@djAKD5Xsb%e@{YHbMp3&cMVmx9MvGDF2CdT)Y{R?$;hy56G;P)(s1Z;xyx(@` zL|e1$TKm_ZS{0+Qv`U?J?ATF(1*MWN{M#(iV236_2qsngDTrWmD z4HS-@r?_F`miCiBcde~jI;H*KxAmZxb5KSjFp!0yv;s)5UW_3%Zc1M!87{%;B42xU z?QO5VWarNFm9=)H7o|I5LyNBH2CiTB~>7q7&(fo2Ql*CS(Ikioj6~`}dRH7|T z;BdU3EWOeu7doH;zGKY2(;FBVAEFiGfCm>ZURsG2L69}}c4wz&?D((D`dH-KS@~qz zETD1MCSz&erEjI9)Zm2VO8As>s{C9K;Cl{%876p<%s>}hjD8H90N9a&_)0L~dvi&h zo}I5&>$hs)=3h{D@-rg8YM`ksy+9}mvQA^=&s`?Bc{_bt} zppt&ZAA)10%q~@FXW|zeiXZaIYp+)I$<)y7dXO}8&dhqDXz^lR0!I@7XjSW6>9p`t z$Xny48w4?jRcY-%m?yiAc3rq|sq~p@EoW~_{Bf4axMaQy4|bXuOF!Qi?l`Yx8gh)$ zyYUOc1SrZ~UF5-K6I3=(zyvNh?>LK$1XeF&GMRu)*p%*in2icgmxy)zOA?`-@_+sT zhnp-^(mxmeE2he&{{``L@RVa;S495jhc8slz&p7?XO#@8+#et!IxlQ zTI_5_T6FDc<^FC)ULugaa7l)cQ*^>dwOMM$ZZZaM`5O-il>F|J)P-vonJ0^MjUcIRhX`-#>|WVjbF`p<6{?HtrUNu(+Hx=(UXwgE&9+N27Qe)fYg0mvesZt40saQP zp?%{8BmZXzo&|OSdt;zG%qWwY(j${_YD1sKSo&*{pZ!gaj1SyHn=Z6rkHH2GWB2lm z7kyK~aP*VQQDV*m2Z!JEFIXj4#sz*d;-V)dPh9+0RSS*><=aRQkz2_L^s?F7JV$g! zm-cJ2jf_oV%Myd#(buZX=FOd7m1=k0bx-LGa16(Txr_-8!3Ae#tl<-n!Krsav}cTi z4pET@f7*fvd@(*EH9ISZHdK9xf zhYlUhvr}u0lbJQ+mBpiEBq;>$aH(DNN2AKN#!)2jUZ+l;F2exF;G#6a{ljlPS`PG2 z{d!+A@a8wYt=)6aJ#E^JvG&*h(7yK1e|&!Xfj1{`y*8`u8k=28Uq}rXe83-g2W|&u7UYxPlhdW}NbEqpkhuyUw?t|IEU+@5G#{{CMlz9;jr* z{TmOqKlAn{+xNU~U)!+kOndcEXg$*`%hXcnuk4*@@4V|mTfMxsU;BKQGc#1=(pb@( zvj!djSSL+!3RY{@A@a0*)zaEU)uk$c;gM88Lyj4P;y$v6Z#Wz_FSFi9oBA<}P-6;R z(Ol5Mm~#9j3Fq0ii)Z8?1DQ4>AF-t2VBvcM2UI$cMfQ-oWBJpYdYhE4;wjtKHiZR8&<*bV3l= zO8^6-;FKdFks@gXW+j66+_teCY;aqTskE&d+2EmcNye0S{nt_rV*qRVV@!?1?AD2s zCj!Iu=8SZ7@RC?FL+kAFG}zvF|LZ!P^O+M^vJ^V$ORz|{E?m@?(HNgu#44wYtl&XG zsP@xood;}v`l7(BRNPL?5(}I^dSuI%b!AXFSS#ZEs5Brm0#Gdazssd$n4sb z=%*=Z+d8p2k2~_|_&huzS!(=nc;@Ux1#FT;s))=k`V1fV8=sXe%zMBt=Qx-u9fB@+ zM#2amNS+ET(G@=Wtkl&uCl1G@YtE$=gbNg}R@uBwZ zovUnEUd8vJbJ-aG4?N@)jO;61fyMU%>gx&q4uyV_Tgq{Z2Xn7kFb-g~oo6JxB&gvJ zFQF}aR!8(ip0w!&$7nBbB8O&O$Q0dU(?si2(86Wr7Os>JR~dKyv7a_wa{t$Yp};|B z8J9lECp$)m@FU2mm%yFlc_wluSYy+`Y3;4Dc09;&BwN-;(|5H-JPKz#!428%m2wFx z$pAcO?0DYH>A{1C%DFv!Xsk9XyL7SBep#Gix>)JG9jLV@Ai{UxVvi(o3qQdj{^qNY zN3Ti>1wQweu8Vx)WC=?N(qa63fK8j$SD)xt!Diu7&=h{oQ`+{uWVN=WpoS~xC>)dm z!5?V@Kfwt+hE3C}0MGXb%7&1m>m z!tg?y8Qyd9O_eW)U)WoT18sQjb@$#`pW$DhmfTt1aU*@3+>yk$neN;<;qB0)#vYjY z23>E2=gc$*4hg2Jv! z?b6>y4}NFrmw%G}&&21&uXMK(Z@h}$^X7N@I;F-Q3SRUM+hVtMJnyPm?!bUwYRO4{ zJ9Vm;Vp|f#$J4*cBD6A5f-m3;kCKz+D;5JIzL`S*@j>((Tg}{bi@I4e8U1=&Ubeq&Kwr1Ap`nl?_23F$7!~58VwOmuDp1Xa_vw1((K%SNuIBm_2Kp zr6_W_&+^(Ye(}rybxX_qBvc{89qIph&Bf>^%D1QQFT{z=xc2!2r z0sjPhD4{FG5PT4z08j>4W>!$f>Eh5`$#^*)F8H9N1sj4d0;g?(1bTM?baQ+!oC_(;j-Z zZ**te#<+a`>Gq~OZ?=E@%PI^e9fjb$csF=PS4N*hj9TZojJ>HT$zZoE`yf-@REK=lps_x4_}*c78p)d*%6)+_}VDY*b;^3QCJ8-dDiR! zS>@~*3%svUW4sazX5(vSZR+&W-)KelR0ZJE@*M*E+>F7}AUY=CluW@Jy+a;V;dBS_ zW^IJ(w^}lm_KZ=#F8YNmSGj-mz2D8U($?%(%U#x;SF?@^x)9@+w2*78M`*g{;>X9TYLw>jJ+^= zRgi=S-avn_;~h{5>ILgPaPSJ!EAUmZBS03c(XGW}c>=t2PPz)Lama&PpS7*BO#k$Q zL>~Q8XZFY5J5rE7Q8|b&XaE&f5@p)tZ?N@XF&4|EB&;NG$R(aLu2rko#y0n*X{1+j zm)>B@z+!B8iA_d_JXQfEz1MA%q=HgoiP)Za!{=~W@|r$Ov~(>VKPvo(cdDu-^dJuc z?n_r9_cwbGFPVww=^nF;hYybx@BCINcmmu-Inj8{-9)IR`^er|j@?oePh4 zY>SyiejQ$9+t~~D2kqg;29bQrW5>rzUnzwrGjPEERREd4EzR`1((l|+2`}TU1bN0m z53O1`k~Zg*kBgtlkj?q3N-db+zxy2w;Is2JCK5mf4H@6;g3*1JUc#lsGFg?Vn-e&X zC*ZU`Sv$@q=hMN-u3bB8i4}esd<_1HgrFH=<@P3!$b0#!>93D#GU<#y`HY5Si0yzI z-;oJ?O@6^NI=Z_0z%P6gdc}R^KgAD+JN)Q7G=yuDH~Jn2Lqey9S&5*X~#337ZVA5Jp*Tw783RRb|w5}TS_)=luWY|X`sf8e_bdqPO+gd z`l-xShAvs5lEHV{$CLVS%?&O1cRkV9D`nx>`0JHEYuQ@*z_0AA=gpYw+t}b0k4uR7 z&X~Q9j2)_7?Ek9<+|V#cUaB^<+FT2>wp8M<=SOm6|B16w8D0MOeP&3?NEKDNVV6zKtb8ax=tlZPf z660uuAvp;{i6BK=f)E9!Y+ANfwtb8YSc0<``&M@uSGv{MS7StGdpp+KaIk%iK z>jydXBdbQr01l3l%p&E-6cBWM?{!p1a8p5U+Muim$xtSa#%7EKGL(~ctc@Y~43R*{ z8djHCTH~((An*#dO90K-Yab2MjxoV2SjtG}0)PIj-vxmjKx<;a1rM^dhhmU9bdCY> z_ftJ?$Ic4gw#)-4j+j9qO z<`+K4H`k`NKlP4t?WKb=+H-rOAafsn5Tw8rCFnjgl_wIg;4^$BxO>y~EA8IRm)g&N zW@(#0cR^r`6O-@Xc*~)-VaZtUbn;rh@JjpX5837Sd6h|9J2DN*19j znZ$$T-KS&59}Ou+I5(3i=*I_PfzT+%CSySxv-_N@S~nUa2LB8rqXBO1*&&|caW6g% zqt)z&&7K%WaM(Deb}OG1d<4I;&E#sp^lkwq_``wVK|NM_i`Wkrm?5`Ia^nxPEe z*qE#*0B=;ETu?Ae+|VbL{0KY(K;u0S+2N2?`E9;8TV2b2!uN%nd~X-pD}mKG1@IDu z*2mc(j>9hD3BUG{z(;FWudXrG=?%d(y>AJ}TuUn=SCWxu#!prWJz28Gdscp%HB&+d z=BI`q%z8wPh-19j;_Kj(U8 z^ai--T!x&Co1t15ohcZ;awASf{$94iZm@LMjS7nBgmRwav|hU!JsCTq6#CfM$=Zdt z9NGL1&-P9*0tpPC;2A#)YQ2Y|(VMDCSQ|l*EPtNJb7)^lto#FCw+YsOUujD!hzcKv z4jd`Y37P0en@#CbS^oFURt^&`nzU5=+~a;D_PFpBn3_D!LK**Ie{TZMM|_qqEi@i`)E##lNu{8qEQ(PR7;>kL&{DD4$+*B%lFj@0-B z+k$*H1uT+trPtC1T}BsJ*DSDQAG_n5(bRkRc!nK-`3m7D$rOT;-xg#%cp1N%f#qml zxNt7Gn^8M~<3(eHOLB)E?6LdtRN4OE#XTHqGhleB0w@7f^e!CKI^ulJu#4{GuXsGK z62sin+v*81y52n!TPv0?jXfPL80bvPe0)|S4+rSP(FO-xgT-<{xYZ_}FPf3B+=KSy zov$T{qT)j!qb>Bdt9+H(2e2~ zd;sg~ORmyK*)4LEarct%z6MuCL#G*Ew(l8GNw46BpX7z!0&YI0B$EJ!ElOvlPvBWH zPrH^E96L5%{873nvc|u2*;Lo_f?ss9VcK&qyx8_1JWxSe?N3k}@%FXtW=fTR`vGWvK6=+Tz8ii+Pq2_> z^@8Tu$a6FZA1 zB-Zpb^v5oEj^5OUvEd2dsSL(@_#WS&9o<#Q;5_d;HpvV9t2#5!!!h0ym#8`cuNVCA z7s^-VWXcl`@mvC!hQOsGxY_pz8l)=LHV@W{r>UCpZ>2Ga5InS zy>QhV+U54<4AR;=O4w}BH}{$nqceTxqBs*7z?D}fd-~?C{~+Mr`C9sjLJrVoH3g#> z!n!br&l4nTUpU@I$APCT83Du*)Rt1njhM`ull@UZoG=7I1Q&-I^C}fN9cCh&N5+m< z`?XdxN{6Dm7-caL;m0IZ%8JP_Y2d41I{#+Pn_X)eJQ>Sa}j463%_ zSBW!aE_*3E%4xV6{RxEn^9=`sBR8 z6NTg&f+}P38v{pKa@?%DXFw?qWzDYF!fU&B?J4=V{q|eicYW7)R&Z_84Ti??ab^Ss z-b%|m?Ye?xnDil|T8cU2=0bp_Hm3oJu?Chu`i5g|?}_>CrNh=}3sA}5^!CQhueQY9 zzvKGM^9$O}qq7P(c1fK->qh(U-+8fp@|oFf_pu%<8Ykt)sG|iX>t2DGHT^cO@ZH+Q z7u%b6Txp+vaZMZvJBT{Z{bn0kaG`A<>Fafd>(u$F?Uz3tBOIRh65QRl?PA-u=5qVL zKcH;X3&2mm?0-QPXVl={UoEfu3OBYS6HTiJi$T#hwH^&NY^v{`M7;EMw&k2TV%z?>fG?H$Z z(B^M4`T7FeRf)UYN1t#$(bCe23Zyx9dBFpns(rF%M$9oxWI(XPDO<91dFaz;g~1!G zSUL;Lf*3Q2waa<*i6ES=mu$Hfz7UAd&KTB=uC7X+bNNlM<2w$GwUpSy*{r8e9}8bi zt&H}(d1)(s&z&j}A3MHO#cq*^&!N$0ZbI&sD}Q`0g7FS|*^Roh=42Ji9CxkgVZMfkVf1 zcpYPuF-R;}@@en{6{yvPGu>7QN^(?OY3C*<3PMI&$0*lPhb9hMoAq zTFJKb!ybdP>wqb-RnE|!lL~pRcHD~x3dgfmOmt$xN$G;LiyxF_!j~B@ z_rse&m!8tTdn7ruFX-|edTC!jwXsHjeMy}ZX*q&~3ED_h@-YHl`GRbMWdtS|R1Ha{ zbf2#;gFxfHUrb-qY>n@py$6auXl`$lI@VMGpJydU@h;wjSC<3|eBy7~Wh0`5wzg(j8A32yic z_yA519XwQ(mMUH<@esM=qmQf_Z3hn@s&e^Lv5AF?&|DID!}@i#VHe(!m;;Y7nRLMu zOP4LHz}3kS?5NrNnj9WKW)uRz#%*nK=f7V(U+*Cb3n*KwQ~PWg-BnW1lR>Wh8gyRs!6 zcZpqMC-H}NB=|hz9+Q(j4v_GWP&rotcZOBfsj8d1T?-!vAMmAw{_)42`dtI=j_q&J z)x|l)xwfK>pNL|PGQV(UqFp%q`*8MpFhoa>M2O-%o{hs4 z;@`kA5h%v|d=$gQ5K0z#ZXAHwapKH8%DSLJl}+Whnh}bT!>l%@!PFG;!NWEMa16wS zcHrPx7(rQwGA(N>WFC8lDSTIo3_N8x;(%aCWiU1*Ls+mWAELB5#uU18A8WrT#RGfC z+JbotYKF;!eRU5JelEB&5*_eH_ zo8Tut`uPgH35Cl$Ljk9RS6P~4fL!oEunD=DLPh}-TT5$<$4{Q9ja}@P$%$h?h5+5H z^)LP62MRBQyquc|iQNzh)Z#et?h&}mix3l(Qmlc6xj`q+Nl8pzj&cz$XOWkT7Ej;v~{f^)BJ z+qQ%U`sN^%C&eU?2=gU)SdyO25MFG@j*gYFF$<5sMn+b&Lx=aby?b|8iQRdxiF57n zsTpm<@=L|1jK}6po7%0n-r9ct)62q-HI%w`9hu%f^~}t6|JEpUK~#b z!i=>UPY#xmUc7oK0aXlm0-fmzd=@TAAh9q(YJ8L#aX@yy_DVUsf>sxv#v8t?04jQd zY}(6#qL#rPj}gBT*`iApFIig8+Cjf>y0f5UJ_IX$Q~^?GXGZ#|hg2p^Z^w?<)UcP4 zlby5GUe{X;*ukoVubxA{;@6Bk}uf%8z!16t--e+)nnW{6Oj~qQx`$kxU zZ3g>)|0h4)7KSHhWDGO&w|xg@>Yf|2-nj%i-#Kp*1_&~5VEwC(Fyet9YqBbr1 z@kaRUTKMf;?2*7mg%W)+H4V}omoHst4?p^3?n?)G2}iozgr@n+7_H^RyYNYm883&f zmvwgMSIMs+o8zyPRC%h|GaJs)@A}l%Z~nrA)t2rAR>eau1g@8;LQaVjtqVq0&i`p1UayOZ|`S{*$}ksj+ZgeYkfna>tX}1$N{f;oCr#ueDe9yv<b37tY4xU;@l<;Bd-0e9!$M=x0UYzA!z^o5v2!v$r%FqelqLJY z-ymB(*zcw1S1!fQ2vE{@=V^K-vcpD%?*(oWlQtjai@8S<5-*xmGSmB^4}7YgVT1LF z5Olu#C66S@(FV`KmGM}b!-qs)b`rn)+b;Vj<0IDTIb${*Q|)j$dbcloI(f`a;3{hb zpw{o2@$ShXI3b6%gen)Bd7i9U0)YQbPO&9)8yx}p>>xQ17wkW9sE$um{qWrLuf{LC z-1hA|SiAMxJXvLl;Pb$NgH?%%CrmUM|G-1!1w8OdHkHuhYoA?o>Xt2A>I5D^qw)R5 z`#)CjbeQ@w2Yg_x&TU5nx*zQ1k4*F`%U-VSZ@4X9%xAcuzr3{LstSRN7uw(Z2md5E zgST$mz~wWV>YvQ|&i%#*KFK0|!J$hZc#)mw3)GUb(2~B;w)?^InNNMWWCJb8f*6M$ zka)F5KSRn``B`j{Bu}?#l9botquq>+B(F6gWQj@8W5Nu7fOklcg7@$I``s07@zV;{n!UOGxer!jO z@H=P8zEzizFt7rq0bO?0HlBscmc<|~E{8=Ri1B181&#u289gQCID-KrEP~fTs06$M zPKwTT{dxo;PUF<+%4{NtljlZye(KaH*%(0U#3{w%tX%Lp%mnq#$-1!_vZX%zj=?Tv zoW5Nc%^I;V=uezp0j6S%)?ODK`u?O=cFVvnRSfGl7xoCNj?o#0WHHA?aWvtL|*YkqmsxmaixrF+7exI65{~GsBgk%vc2A z42@lCD{P2?rf_9HU4&D%kpV-OnsLiZC4#_xc7z8VuS6&~WipZ+%@WkSI0|r7N+iL$ zGT6h14%H6uj?)24IjFf9P;@P0l-J;}QapnKGiEgMPxjk}A%k*f>^K{z)8>g&r^}de zH0H*6xE$QT&(`f*t1nI^SOotRx&(=Ym7T3?z1I1Oa`?K%IJActG zs~6g1ugz+AZ93mhjP0({q`U9Fr@i&9Z*5N<+T4EP-`~=H^52|mKmFOY?I%BYM_U{= z`~Q9K@%ESh;COE-ij|XCL18Vd~9)> zxIC?`TM?y_d*89~;r0uEYjK`G-TwUlv%LL-U!9XcdqMk&f48YU{OXE!GdM&$LEzHG z)7yPpueQf`b{Sf>VrgjK`=NO8g%US-cKN<$55k{ak$1^8tLh#`Kmv<;BVQ6<#*tgG zaP`a4===}`AKvD?$lAlH0iQm5x*a%tFt|Ng3e`GDvmtZl^dMV_9iHZJX-8|ao&GL< zn}mbo%9%h{4vm>aFca`{qT*aI4DL4${adCn=n$9h1=}1xa8{{&+SERWWH97{1X%XYXX3T#+Fg5Hg68iOeqD(+#__ax?V3 zg@P}1J{CP>EgBq11kNjZD(RikE=B)2@40X8D+s>X=AwW2$r$0Y&Wm3t!%y!f*vR-N z5=dMvoL{UHBMzqz$GZdI&z|<;i@gF1J_Q<8k&xGryf7OwIKy7(c{TDR z2)i8TS29!In>KA|8#it&9qw2n0iGluXVh9zyBv2XyO+ZW6yRr|2fn2D@CH58OY(Bz z5C3#N$#3<1Uhr8}JN13t++V>1`1{rO29e0559n%ZJK@?%40u4lecadM)SQeHV>29^ zUQP1ZjqvUDD4FTOOM>s233L`OTU5@L z!zp~*sB>;)&NGq$lEfP~tgplhUg7Av=-F-yxsS*GH{$c23xBuy5?|LB3KrBc1hXV49B zijUwJz6E?W>lGbs_EnM)?fX4_hLzr|S@`gP*>7h+Yu~%%0bR6ebfn6i$(bV_mCH)r z&Z&**uGN}<6+mQNZN7bSL__SHO#R*k~8uP8Hu!cCC^^607#JiEkt5)(*WvCg~9EDW#^%@D&?U zIwbxieqeuTC^$sN+7BbwAoFBT0Hqz@!JBcB7chd^ee8veZsEskW`b?^qCs!Vi>|&B z|FCZk25+vl>(^GB;K64{kB+rxpMADU*k@!MPUDf3p#6;4Ir{`^3;hM zuZzssnA-39q9e$Ost=O_lX@z=^V3)+TTVvJ{AY>z(p z-a^pt=lc4R@>Azd)JziQ(RMi-c~_ELPAZo@kCTPacD2+7MI-3tgwc}~%!JW7nOEY}$PN*%X>lCQ z)?#cWG<|&p1>J=ZQC5vE5Ak~$9VZV{l~Y#EuQizrqaZX6dEl#=@Gz6vY)-{U42&Q^ zpm61q%~}>znJs~%T&9P?9o+A`c?%-25iSN{L!87C;Ph9!ItCu=aZU$kN+mf?j5dR* z)UbBsj$q5`GP>5uaJ*{P`g%`n$kLnf6Byii*R7?vBn~LFDkTZ7(819-%Aw4*Fs?Q> zLQ~mPfd(OSSvC;xN*Pz5G1ldXQ7X9(9y;94Bxt_(o*ij#W|g@^u5lL+z*@$o?Sd_| zN4F~T&t@TdR~F9R&KDw`?f5_w3zWff-I?PEBt=^wv1GmoBtVe&tGg>s#Jh%H*-HJlc+( zX>ITLvbO8!taks7DeZ55-@dkT(T%os)zvnBX=Z!ytMjUqeBTK(K)qzU6w_oDTF?g$ zin{mNojQtr%G8-{{OYQ2eEF30i7XaZ&0R=qOZqj)e&pQSPE#OQ7039vis49Rw zvuWGOLLI+oLD2@5@|T#|jD+sOx;Mo!Ta9pT*tA07Xk4hgiLXtAuIZb_d5&7GIa zp4i_4FPnwva(uCP0Iku56LKv0VQU23_)l_>!|cABQ?BJXvM{xl8eP57^*!{_#mpl>C=;mUV-9kR%pU|TX645f=Qj{H$%0tdf_&h{OB z%n4l>*wMTvZaV!0GZG~dJm_6ctH3yT1S?*mXP3r#$3OH8{xojRutX*H)(7~|W8Q3= zf9aaO1#`JQMf(b+^;|P@S`l{s-QT*`O1~c%H9~Cz^8(g+$)GUe_=fM zQw0!R5`LnCl?CH-Is{ECu%4tD9b)4rG!>-78=YVmaC|A4!cS!bqH``qM)+1?kMeEE zQ-)bK*F*(+;5EF0CrkeYEdm*O1Mam`Nt+sfFE7R$d{n&QZ~RH1%_f3*!Q%KPX^VfQ zZ+#e_=N*B|&InRguNkexioYu$iC@d-!5@RKTBX?0K@q;fv9bFNPPKQ}-M1Be#uBKS z(D41*b?XW?`v+W(-6gxefWy-7!9&+M-IoJ>?Ky$pFkDL-<7R0HaPQ6 z&f%bDN<%m0O?XmD2>$q3%Eu+a^o18yPLg}=$1N)|lmxJe1oT4Nk}B14is@GoH^SQB{j>*;oTpg8K19>19O?z!i- zpts{hAM6NT#V-Qa^1p(c(nWZ@@YVO-=mF+rDSr49tZ1nnvLU$Ue|T3#@_pa?2MeyE zW9Z3t;4v>_DV&$??13uV>++l6lb&+X66Bb@6`Wea0RLz5cloR#>V5a$nRa@0QdI>9 z=kzWg%nUQ!4@oC@liZ{Oyud&3gU_YI!!N@=OyC6%pT~Ir$RGZ$f)P)2-irOo^I%cs z;4&_gub#I7HXMMLUyWY+1xLSb*2Kag%Ll^SPM@-T^U*Io_N`yTeRj+Dv@^H=P`j|| z_3gsix3mju-qS=f=@bo7NjLWJ;eHObq8p4~)*) zV)Tl+IBS8=(L@vgC*JQ>UXlATr}d>WOPE3#r*aOT1=MpRe3+4PX63G4k%a>L%v#UY zjqa>6{K`+~3b-Te^CE=HqhMBytV}<$`__<7t}zabiBZcT||G(I$;Fl3hWcP>ikY=n{1Ab>J^2`3Z} zN4A{oyc47{qLWHP;{;53~k`_9LH2C*LVcfIi=U)k)O%<7bKADGb}b(h=S8c z=v0Ab=#3|}Yi-cYIP7UIeLJrmY*X|3a;@hP#Bn^x^3IG ztv&Rm&$pw;j)qU-{Dxny-kjf7Exy<`ujn%-4{W*Ic8yJKU*08g&>isJt69n(IJ#== zXcw3%emopjsPB)A&uq7^Jk);ltuF>Yb$k2#b934!pIRIo_oRk^&odR+ocG%3 zFgIC)$lwaLXUEXi3{?C?vQAF5gKs3pY+gqO@gd$d1FGch;(0++SKed-f1(Sytl6O$ z_3r58ih5wg>J>aPe&FKBbH32h_ce~-6yI8pM7Law1LVB|hVW<^|2TkUprWf7WdS3H z8H{ujnDjjGk6^D1P=W-8j1jhWX(;VNhjP@WC@1gq4SEY6yiafGPye#}@Z&r8F~II4 z+w`lk2)+hmseSY_CN$K~*Bq35F7)WT_}a{*b*Bf4=kOomJ-Afh!ep15L{dh9`vnRWN>DO9aAfiPyd{-BZtS@-n~i#k48t0 zw-cw&v^@t7Rw8fwd}xwB=4V_74@VFQNoRLi?`3z4865smS^+?r2vT&jXvJ{vJ?9KTJ6qy;J~4>GdA-P{OPFMrk)%G zLphvzCj@BNt2{!7d@lj)K0E1yF;*w{=H8Id3v)dIwhU8z(_!hz9(bLob4*$ z;Iyj(!!wdh_(@Wjys-~p0GOoSg6NyRr$gv7$rCo_)2|ap$Pm7s2#=ASVxRm^dt`=# z&3P=Fma(D%J7SFRYs`EOFw<26LJz!7<$W9k2Ng8<^Gix61(l zbdFhlxRn?Q=1R|*^`qy^jGL{7CpP{>`n`DmV#X0a<@EVl?~INWT&Dv%1deLfJKuqw ztss}iPn_XPdy-d@d}!&Nt%7TTsesQWhBcv)-{>UrLD%4mSqUuowZ?VstYpHJ@-M9? z4+-;%PDy9oFR|fd$1mN0Z^}O8S(7pDvj>r9*eiTaXTd92WJc*N2?u;URMoM~Y$8A1 zGk6QW;T@drlkfOF=#S>$DVQ>5e1RYM zN91Gh6Y#C^!edoXWh|a?FZ#Qee32uceUIn$#qLX#t7Kr8CCR{P&ANM+ujuEGyPpr! zV*z?NSRrG%;M|MNHg5Oel|jF;xjk{+XZ?N0E>(hUa(phyUU1YtN|9&nNPuZmkPI*Q ztNO@T>2G6@WCLsIlklWx=w1Oin^gW}`owp}K*wA-Z-;jAon++H_T&>^{niKEr*Hki zcJ-cbYgZR;Yu8q8ZP!+8Yu86Mw%JepM!Wa!+uQaxyrH!)^v^wiqy6)*UTdG+ccXo5 z&&~GXUDw)2c3=NpUmwlulY6hXy=QN>H?N-B=FFSXo_Y9lZT~CJOcI7fe{@A_zDngc0%4Y^wIRhrAkj_)wam1&ENSrtUxUvIBVa#kUYOC|umx^fd&iC|?PTKk zJtrKKCZO(0OcDkEC_6Mh{EF!Xmkbu3v1{@>w;ykR;XV7Cvx~2XNdNB9JKDebgyS(H zcX1xzEuhyW`SZOGTx@^i`%kx54^3-7`Kt?KOjJd5hmM0Hslw3OV5v&P!cS=HM>NF{ zf=>8DZ)8!DDER{3Zm1_qRP!U_P6p}-m79I$x3bu2(u{%Mtn-HAnuQ78(bjA*rA&4i z2&KvwFLDn0`LJY7MpsEw(Ikewg7okaxHzA9)0$tO(aG!vUah~=E<@^m#_EPy&cF+H zGRMf7y;sgwhBr7uM}~#2KnG4Gob=?9fRc0D`P1)sm45L%8Y=aL%Q9&Bhp%QUr^|1H z;Sw-OW^rJ_>IHWCtn*qgaT{>V=nnT4EP1(4ALP$xmv?v)q`?n*S0X3lk{on#9E#St zz#Mj}ad76rrw@7$p3`9Q=nV!jG&Bys3nu6gc)*{^&*UuVHDkIC4tJ()r%IR!uY^vV6v3dc9}0;nhg5sMjJbwiY_<9TKxqs7u@1k zc!Uq~fZu#BI^vs|k@2)+uMrRv?D~Hk+2V`zU2;%u_Pwie+1{kM$ z?C9|X3Um623yV1X38EIvPoT4`U7t$6da|~3NN8E@Pr_RX0=R*-d=DneYVf%r2>+Yi zB+trL1*G^>(1u^x62Ey8&ksBY@8z83pCATIerH4QlU<-^&X{y)bB}gH>Cy+11JzgB zSAjHUpO;hPr8_QO>`5<9;*gl+EA%B9ov%1=%1E!pC*thE7pGmBHJaL}td4yOUf4@| zrQ365m=|hh+c@CJJ6lKo{f$@sUB4HNddc;=b!&^iB(HqW@rD#OckiCP1*^5(WQ1)g zT@f9yAdb8xHssOwRRxjX=qosLJet1yEL)#ZQxZBi^sYp?oKD6?mksb<56$cqA<##M zO7PV4W@_VmL=RLDlzYfM{L~CvbkU&01TJ_$`LJjFJ_HiJM_ZejY17!?7tI7;Y=?13 zY74e4eG%aEZO$oiPy2kDl8b^`scYYzUa)%kN&=X?8!w;c=#ir(S1OIlcL^-`@@r+y zfl0v9lX%k;WUUJR7uUV+)6VS34V`A}_F(Dy-yT3$3Wo9tGM1_ygoljz!2SaX!p@Z6 zHGV3-QpU-@^BQy_-5?OhJN!SRVJGNjHi{p4$@z`g21GyZ}|rT!A*k}bu< z!JT$%$yVf2sco7n{LY`}#EV&x9~XSfAUjn ze``G2GJ6@^1dsHDpqY;V{vb2`2_ifF`FA~$-~9pYc*YpgRQ}H=yH+~Ox^Dt;`BHR1 zaO*x2Ypi@wc8@SEA6eektY244XO=`C8+dKHW#hcG!zShE!T<0*`G?mbXvQb->pOJyu5I7@om`n*mp>n^amm)`fT9rtOwY*>_w&*ksAi-0>T2Nqo3>tee`dw(0GWkNjFY zHFl^7LTtX->+1vV{Rj7#QIeUXAk6+CB*%gfa-2)>2yvv5Qs6jHUUtKsl4s^d0A_JK zA~-YBmizV{Jd(b;k;HHmtj~4=WlR|N(-AhqkyXLggp#2~Yzm7(DFzJ_5HgMhm~Py- zT5Ar=$i$daNQ@gnz?2*!Ld~(%K1Wcg3YhK0YPO-)TI4&<1DsNfTFD(z@*UT{VcIwp-{VvGVX3W>mSJY-ar zAexz^$QXOiBe#+z4BlrnLmyes;7CTe)2TaaaP0C44|6r{l~r;D% zvx{aKjelrQIS&5Zuwi}MzI}UT*ucs`1uMLwqh|!7JXY|Uonqj9@BTJ*R{Nz-oo^dQ zZnW2re7Q{-|3W){@?<-9Isw%Xm7hUPF@1rw{E}E zMi$*{2hT2RQ)bLBCA4?14U_t86=YLF43h*69B&w1*#6RYj<+9p!_m+x!Cge=AAe{= z`^e)n+B}#O7Jt#f8dMSaXC&hyfO9^xD5pzr(`(= zN2d78&3R5{-xdH493u_oR886-5^#4M)2ly$#Zzv*xZA6 zyMubOWS0}>dostF(7tiu54)P{(|WtAYRG;1CNCT?vV~{qGvkIQPLfN40bY$mkQPuX z`(6QB25qNvNhNR$0StOnJ9%DU3@%QicJ*yMF1W6~^0)Ee%Yh#mJciQe8gJydWD$Mx zx6A$T;d`=)#{{3&7iyEP16R#lg$4|xHuY=9fP7wxF{MMxS6@m7R|1zMVS)_yb#{1^ zZUGw{*6c~_vL$Q+5|;qbcsSdFJ!OpWz*#Q&$#41;yld;V*Iuc0r4qno_T-6^(IF?> z@uSBJUz|;Q8aO7i&I>OmG68jX%!aXWWo-27`S^KegH2GtBb<@%AiUs}#JGB`pZy)` z);PcdzNpo0=!2geJ74_h*wOITg0$WJ3A%tSrql2h zAAsE8^`c4S2_D!}c(w~XnE4d}qBa;j6I{VNcg1*XDaho@SoF^~DH$tVb$%Umz;NMB z-?5cm_y}%1@3Uv!F9;smk|Y&a8V~uDqjo*kWzW6? z5t5m0!^REm)S1&2U>`nuv=j$M(=J7;4+73)s=!aF`;TLZvB6I8m6ppgadwOq zPV^)5T!I%EN+<&-16E^-V*~%6{=gU7>J6)+h++r_UO=wN_TkpMXKDr}{OB`V8TR&dRBb5mO>>2KzU^c&W`_c1K$^_fUK1_Ji$@y=kKT@SDfmpLpwq_PzIC zZLi;az3n|Ur#<}2%rI>~3|HYf_kG%PE`yamJa{J+ToNnK9 z---6X*3ka?)b_KVUfKTTCl_Jb`8M9;$9jN4{*0AF?;<OgxIKrSoJK|m%^b%hQG#Ba znlF9&iFW&)J1U^S?`Dg^!HJf+c2%}J?cnK>+wge>D1lF~O>XsNmJqEOPrPSlp`OXJ zBdb=nr@r`fn`NJbT$~Td9p}}rS-X~a6+8xpkMSeECTD}pnfu@yroeg~XXTHuT*1o*6kHiIFIDimZvEN>3uc}e{VSny z#((8{JDot!SlJV@|8V$l(b5E72^uB&+>0v3Z**TeP+n@*$=FyC!82fLee|TQGt1L? zC-PG~(;aE;;6=2%IB_;kdYt6^Gox8fI~^Oowwb5oPtcxc1%N%lh{yHEPO&+7;c|4h zYLcKQeFq{=cktGOl_}N#7eD;vwj=a{Ae+|ov)-d0f)kFR5=>{TD?64DrzdX)d^9j- zL5`t$4LsOObGu{if*&~i&?g>h+cvMuH@$jAg4nnP?R1bNwK8KkDBD%D*BtUVzEjM~ zNv23lNC@}#{Y^G3cM@<5EZA#FoVhc@TXC{218}MZn+#`UP0;Jz-yAzfCRwizj*_E{ zkDeHgqT;L@M^!#$++@XXY{C29_o4DJ^lv$W1mP)(<2+|wyi+dLty$fshCi-F=ODDJ>_cy|i z;lcb=O9TX(blISr`3aJU5&_GWttj45wNr_R@HbeTDst@5iMD$Es+s`cw|KEtd=0!w z6$s8fLneFy?nMh1ho<>^QctKH@V8_Vo2VP@G+)JKRCelIt5i`mX>HBu?kL_PLDQ} z8+4ISWjpv~c&B`(^hK9TXu+-1G}f+P)7EWVU-q`^gXsUXf(P*Due|pI?bbWCRf5-M z!{pu=&YtZ@)|Gt^UC;wBq`P|O^NyVuE8PqKbeGAdVLiCOj?V*6m0Sqk|NXChwB3=u zN>0)@Tx-iac|o_q7jzi|Sz-4jqg{Rz6nhRH@r-*)KJy}D;Qq<~{ioXZ{o(H_UZMkf zB`6#UnEPHj?sI&jKvaBS17^t-x@_QSC4<_=FGcg%1ot=%N=zn6ykz;x_VG`A=64OayEpX> zUXa5%D9RSH@?{Xcc*Ux=Fr7|`64-tEW?MRUdRsT^YI||_zIMm0eK+Rc>)JDZqa8YT zv)vLr*mC{MiKFf8sebHC_4h5lC|8><*wvWx*|R8S#SpLGV|W9j%fKRfeGcM%@7~(o zI?PERt;3)^5OwwH)!~Bq8h z^-`SL2#qqGo*87IWn*QVdnQVc(>)QxNt#RwR&Y686By= zrw8xjXU*`)j)&1EcWD;LELmzD(%cw#JAC(@;|s2|Cs-)fDCN>C1dO>dy%7T0Fuya# zoX9KI=H;`17j2b&%ADFH$67*yM6t{En_X~S4PIq%ucqCW;GB{Qx(Y@Dz#%1wWv)P{K7)?tr@Edy73?jOrGbcEK_O&>oj+-ie32*ofU--M|mPTt(va|?HZ?c$H< zJcg6LAis_$gj46(Z{B=M^pq+Rda2JSxbO|VT5=gWfxoJQ;4Al;-M60Bcs$3MShRRS zXlu5gj?QlkuD~idwT5s;o~c>Rv|s0!ho6RvQMUs>o}qs)hcBJaDsdc)sK>dfq+07w~b8 z*%S2O;BrvtPoI^}rp3-sUg^KCytxle$`<6J7tO}w4RUSCk$x(HobN34VY^kOoGphl z{Fm|j+ZtGW=UFd2Lk965cn3TU7yBZaMQ0eBWU{{{07q6XuY|f8aQuz;`ivW=O`ziM zIL4vZ^y#zmdrx!)NG?&v9o!@^7g)H!Id){M5+}4$N>JaaicK} z4z)3HTKNXb&~2dC_wML8!bd7CCRJDZHv<@ZKE?A9@Jj_+Hzz%JzB-^hQj zEb02Fcs_mGh|df;{Xj>fDP6-U1*4<@KgWe`f`;XBZpkLOBAf0bQ`&V8hg%?4_ePJ^ zdAArX_epkmcF?_81?|us&FD23K7$iDLQ^l7zsZ`3fn&#&`tGay;71qeCRq0OuvQ;l z>0)|9;7RLA=nJS_CNg}l+`0mzl`Gq_;0|1Z5;MrP2Snb{rV>kmb9(S~wzv-}0dZz5K*FDI}uTgZb-eyCk;?XmjU>cVW4T)IS>V zlgJ@kho=5Mb>d{{BG0?WwII(*3`;Qa>DVO`R1)9%P}W|w3!mTvI76qwzm-&|C13Fg z@#wJT+XSC>@Xer0$XeI?-JXe7;-ujm^D!s(iItJ~UjYs=nQ zb5DPuN3Ra(v%~Q05`?)d0UCUCNqMFGXl!Ci3A`k)|U|)pcKJ;d<$_8Y7mX3K9k-zTJ26(!zQsUob86NaA@Fv;!oxmJi;QQM8_rPR~ z`Js&+J=)IW>Gb7(I`?w!J$m>^wd0uIZCexH4)*MKxxT3x?i2U@rFQCV|7$zF={wum zt$(Clc-@b*>j$52x35{$UiY5wY&WAcKE1!SQ8*OLaKeqc?eg6KfQF04xnD$hA<%usAqB_%k^Ovl{Z=d0QdC#tLFd&k% zfuJZ@|I$}wmP_Do7GrQq)an!Tb8)~0eVaCI4C4)%*%+@7^J4EowPhMMpQ+879qh1qfKmLoc8xThtU;UG~$gW_eNz;4qK@N@Vb-Ld|bH8BEa z?IW;hUnZM^1P4Qb@hK_}f^qe=u!P$V?R}@f1!hk2T{*-NSPH$DGzyyftlaT9oC}s% zTO0@W8i$I4>_!5t1k-(BCag;Llp6`$Wen~5*aa@_X2ft%$|&Pi+Ks*xh<1Fw_0Fw@ zFM;^%&|+?!>;BB_b~C{m0UZE47HEWyx?WD-jt1PeJDxZxVU5=eN9z6AODl@cK z+QRnAk?C#kxuxyZqchuqQ^6BQGvjCEEh%{I*rN75_nd1pr~ghlo0H&sWbuu*apjG+ zcG;D-V&S!X_dD-#O_~x8HF`_#wP9WonMn+QN5|RgTXfYm#5fS1&923br|Pc#N?| z-+g=c6;G2NefKi9zG<3G80m&e!~_piLGf7OHoTkfh9KN5y^^=Pw%<|?44LEz3WBUJ z^RO9L2FZmd!Ae%>Js5LocQCNNcOTm715az$J+22{cW1Tdp3+ud28p zdAe_sN3RsWM+cE9PN;jF`p~%r?j~m@@|nJtbYq7`*R81XXELLdz)TuD;5k(&f>3Z7 zUsY#Bj~WlhS^xkBm1hzv`sjMvIQlXP4yo_W60aUvUT{e;TncWhQY9T}M?aG2V`Imn zudRL5hvib8Ler)Nrmz`G)mSFKccq&^;qRWjr{^V;@qdkz}f@I!*t(wB4swMO^PoH3^zI&>_)j$`>EPtye)osO1V*z9S| zWFW@&tKee)7AzPNYSZKBO4eQ}f5|Sx0yZ$Q$@re#tmH=cnvPhTAkMP_AADxn1{{-z zs(uMFEI-3f)`&#)tmT=$?L6v*JWh^e6 zG0~%dBs--G(+|4S2NErQt1*Q|hG3j-zZ%)tcKa>)K0Zx?G-II~$rs;=9%rLw&72+D zT!>sul>BiJ`CJnEl2hyxe{^khU?oMuA9MkG0;eWiFrxZ@9jA0B@WQm#Vs(s5VB^}sPl@}@z*iibAU%h4P#{A6(@3YG$ zcm#T-+aqsyT@@udqBGdLUtp*B`1^r_F69S%#_PA9@3QE^17^2(y6YDcE~E>Hxxdxu1*-K5{?Ktv~CftxdPAu5k{y>d#M3ZsvFJ32y0b zwiyn5&(HVUaNz-M&<}a5egxBC^1XZC{%CV9qYi2Ns1B)fRD z^V`+J7rCeRe9za`{`s?PvSo(hv+(l!KlqVveM$Mm>Id4jWm{Fw>7yYFrnFI;P%*n6|>N`U?T*RHou9GKDG|LV2&{#UN{_y5T21Fv0cAI$rg4qb2e zj!bLsTpM!Fp5C7P?8n=oT`#3q==?1te>2zD2iz~b^ipMf3A~vu%`>J5h{(l^c?r0& zkxhAI>S|^uLT`=T`nBu20u2!e;^h$XdcNRrP)Ns49II?8LpdWxhjVAffnp^v=}~LvWVJY140vBh0Y2q{0HBm)vpr8~f=L$E1{2PX<)j2L#oX4xl)zN~1j11k zbINGIUn%m%3)||^Rc%4~s8akWFOH8jWR!@K*b*x3QuH+&*{Ui4%Y`iYz4L_oteN%~ z8hDHoX11Ylls=Uy>30x7?+gPP;|usVX5YgV;V(xy_&57S*=kFck7#?2fvkYUmCm)# z7}_-G6k{K_ZA@eHJM=e`TxB=;Th_C10@#9FKp0$xkKkDUeglgj68#-nBpYYO6)Y~n zn@#ZWtEMUg9OY(b<>G-n$Ee%1qRz35aWK}w8Ne&r$9HYo+_q%l^mhB29$0;&*Ly!R zyM5ug8SO1^d25XRy5iR}ffYTCFsLo~C^56QW5=u|6qK4RlxT@!qsW6BL3YhXm6E$$ zPCjGDQKH-!0l1=^DMZR2zHTO*xmric^=vdl*JsYUVMO05ivv&I@hH9%^b{Y3Ha$=Y zjv}uD490e4=vV7H(*u6J7M;LB&>nn(Sx_!;s?E1T3p4_s-yGLuHW|M-W0Qd`M=oP9 zdre1hqGZA8pmpokRl8`%0f0PsgeykD3>g^~jB*-uNQP`Ihd+%ss3-@x^Yzq>BStOl zaDo|E7x)-uN{nnWNc0hh08a2E4i!vvhoF})8uwt(+>2j*HfH<_m)h139`qUvs?UA{ zKRLo2z8hxmhLUp6s^&oN&ZFZ+ukK`WWO^S;&EUb0P#BTI3vlByaT7b!p#3 zuW%AV2sCPDEc8C-g zJG4t5lLoZI5AFw>Y6td)5D9167JIO;EQOh;&|V=ZIDBN;asOP{3g3J(0!uRHVm^w4c) zV0ALa@e_S*xaY|h$NEBe5Cv+;J4ac1NPr+5AO4U>KK>V&f0c}U-q(vln+sh!gGpO@+rtjMtgkQ)l2yGTnLKn83;2s=Bl5GFb(4 z?Lr@WB^d;7mo8qdB>$iXSTBMheOv$R`9Rr zCd(E11n$)@UMsr7OU4U+ezHk1iA^vFZ`{6tOIiH!n;QQbO_Q0|YiK>xRtBRNSE%v;DQ!vwk_}yo?agil_ zO*eEK+1FdU_zn1>YLlwneXepe=mm{cZYESsCZz#?XGHSDq^vhVo z2VtdLNNZ5o$DgKy**0^U(n96N95v2W59;AcSsz-?n9h({bL5?a-^ai)C0K$?7kDTu z%7y|iAp~cXzV?jmX7Iac!NMxv7kExJ+yK7%8M0l!u-STyR& zT6U6b*|P{dSx^ak%1qW5W7r7?qf+J)RB+r;Ny@Di; z*iz0)?qL*FYe+;ny`b-e+IRAVPiKJ^UIP;z*0=u9%*82FvLzMhvqh9t?lT zS5DsX(91@PXl~}l#ThULXBewuVNfLl@lPJB3KE9!`jw7@E*sq-)dkpGc-hfB^?UFL z=hh#SaXiR?!(Vq^BoN}Zq`jf!vt$)sbFZY$(3i2h7$U#>&ixD_L*+aCi1wbT;I}_g zZMoO8a7Xsd?!b?iSryYfc#`g!p7C0$0>A8o zp$w=t2;-EXT)Td4ZBAq<1P4pf6%OGCZh9~`nY~ZDf_>vN{=Uz^&EgUFO8&4Ls%T~^ z2TdE5pdApI>&7G?^p--4=ex_E$`Z3QQ>Wbw z&AUTRXE|Nr$RW#%Zr1THc#`cPr<`NKi*b5Qooez{eK~;&lzdKmjtDJ2 zN_%+GMHiz9o3F%G8Tuu5KEL6co9PP;1g3CEm+@76MmLvz35G!2g)VeA2iPpy;B*VR zEBKuhva$jBP4a>M<~s-!z(l8MV|@Z{@WO>aP^AW0!=FwFsK7C>umL5Lfyqp$pshAX z%b0yu0!|;|R~P?b;UaoFea5%qLzVhVAFd%mz<1Rq-;Dl}6sJ zNU~PdvNp*sx|1JcFD9kQj(wXob8b6%V!XZd{A&rgPuH?PODM=M9mP+^o8-q4VfvN` zP?kMv6G%(1(jS{rfqW1pxF;9(-%tqycWc(HPG2Tf5_E=+bTz$z2k093tQq|qllx9Y z(kiKx`}?T@eKXKnQkK4YId}IvlzxK&dGHW_q>@Z&U%)HiE*%p71|$74Y%JV2l}WyAEhDn2otOm9`0 zzP9<2p}jG9)g(e-VK4EGzkQF7;mB|08-^#@>)|)CkMGH(_6K|1^@Nx}Vm|ii?Ah)c zhsVTB_Be6B-^i?YHp2uEnJoV~JWQ*Di9C$QUuCDYU%EQu_S_)v@B}V0>G$8>Kjq1$ zmF^DS&`M&9ek}hr`q?|UJxgDM%Xj#l9J`FK+RLR4vZBvn43aryi0=j`CPgGtz*w@E zF?m%ikT&ovy`u_{J}UXjea0YJMVEZ)b6@<{2i%BXR|aQ1Q}S*=Z~MMK6+xfZcAdJ` zzI-Ik*^G3MvCm|D^Zt9j*s3)6?Hi}H^-E`kLC&-WUBT`VOYQ<>YfVJWJq=6WnO-9{35UWw@5a=*Sp5pOg_Z_S{ss zW9aIc+>36UWS=EFD1kvvhWnI3J7e`y=DNm z10lnD!mB=1&6vRe z1AY-8>w^rPI&o?;Xp|f?iy(6^8{apJabHiW$nM*r{N(SDVKXFP^qupkU5vIFP;gv| zPT~mR2e5dR?597U%c$gjJVD3!o^wK043*=g57}EX#9=I6$yn$}_tOb@)vNBw7=6ae zjIh4-10K(oF`lHCJ`I4Ap)L1#j?n~D>AUK?0lPF&JR;FSM<|sAS5-Sq{^J;d-Dl;mH^Pic`6PeMoKB>VQ{i2@1r9^WvUz5e zz$Xa`Z+?@Uq(k7)%!f66Du9+I5WRHuayxVWOa-luZ4TDyo2Y5jbh zUrB^{Gvi#%b%dMJ$%T>QUJ49<@JN5*a(ITzG{BhVn?7UUxte{*_ttE4)Xd`GH_jiP zr+aLEdFG77M&I-a&dgR!T)I%fg>|6pRu62amGgi0?0CuLve?AFSsEVbGB`L|gEqNw zqc6dsk5HDwE_uvx>U(-b4x*11&KIn7M|9$RUnfjX@ekPW20D^yIKZDhStYnJ8+V~> zlEec$2qzpsiK^nG$PM@;%&J^5HrkS(5VzoU4<3cjW6`gk_Y6H*_zhk0E!|Rh&iK20 zvrkk@?&<2HXy6}s;YqM#rm^@NpX3>RS}P7K0vgF_8^ftQVh08M*2dyfFM3vRe2}g^ zbt*LMJNDbRMCq~ihCsXbW0NDtQc8&Q8Q2ArIOb#TjiED>GljlTgVU? z&^yR3=bo*jW9X3L@1&3(LKO%GFlijfA4juw4J_V0iz$yU`+;~-6`o;?Q@^W+lol-g|yr|5V zofeE&V4QpD1^Dt#2e4U!d^Ew(_HZDV>~{4V*aKeKbu@$5!gT^u6EfgFbqZ}yWgOif zD_%~!J;@N=A0MmFic9uMmc}QUGQI8Fd!QXTFqXgB+}18#2p+G{d+a73h`qX8IHqIC z4BYU4FUF?kmhgb%!=g)O_8^#kfZKDi5nu-kSpxI&*iUu{?gX?xTOJ_@M0@v?&AQ%a z?a_N#f-(9GHR)afF8)$>&Nkrn>5(^W)rk(FAs&#};!Cmp@WyX|NOTl%vg4lD4;^9B zO|pn>qaOr-_&JZ3?}iunS7>h*8;$u1k};MjTn;Vh4gNJfgf^0%5+HP|@tT#c3YOq? z@ggS=vC+NllBd8W_{4K~#di{zd1tyKafA~o;5zt zh?mA=59sEa`Op1i6&{UWl@uRK;0}l)7rZ>OmBZ+@YHKI^67TZ-M1J0(GeVkxymF% zTS~i@14OX#sGyZmm*|nDbq24tD!5FPPDj$$h*ETnQ;1P~s9aH! z3ymt64nHkfwm9-Qqh^;EhhOH#QCP9knn~3h6D3Cs%y0bSN866OZmAu~@lDMR#~CKe zOBOq-1KifTbviR9c-`3G04!t2juqSjC$rXOPsrG?-mCZ^uNNN8xNcb&1KcyfoXWyi zVD_1TB2xy*`O-OOY}iN-F9_PvR*5HdQKT>8Oy+A zEXKqLO3vU5zu{TVJcKH91~YtfP#H!v=FAFWe&rL7wAby}QoLPd^J%M`;`AxtLm!Tt zk!)@p8-EDT9_E~f0C3xc?31-7v!99ElxV@MQ{H9XsWc1jqnb9ke_o7wk zDY%+GYkDOqCoW%XswT*^B}W3KqDRDy9no&z49oJL;1O-o{-Oj&cu!)<{T!Qp`;R3^ zgabB<>`$kDOr_Oszh=fy552Uw&))y1D{I$)SBC45%EZ^v9NlxhvT^-LBuc z|Jlc0ZR&41Xv zcW>dJ{Sj2!1QBl9P26ZV>tlg6ypg`}Vpu<)uh&w5MT>hNQ_ltOMz^9GeD@+M~-j*H3@-rM70xNb$HJp>#+13=f*Y6bQg8zfQpI z9!Q{91UP~M`dl^D`Mi|68y`G^U%%jkw=aJ3D{bwjk>ahs0ag*N%24%z-}wYSbIReP zd`S1D0kTC;g5PFXWT|u@9g|C6_!1sI{{GLmm1~yPXZlGnOwP%K*6_e^e656x@5qC{ zz4Xo3F)6V)^j#ErCIgX_fE>LX9fWW2*lW-4Z|gRV=9y{1`GpGL!CX2weW-T3aNaud z%av?8eez6XFnT`znX>lEJ|ytxKd>)s2z?}Ylw7x?y)ymFSJT%kd)vy9C8Y=9Ur+;y zcnM966<+-<=)rsV03KD``7DqeYzbWB=jk(G;ARD&0zdrp^ph{PZMWW%@8%ZXja4;6 z@kRco_v}%CzUZKTdW38X+I^2d@Qly%qHo=&Dgmu*p4J2KDedXl<;~mHR{{o|*mAsU zQiM-8^kFuhjxsTYXyj=(M0R^(fes;` zf@pdHyzpi`p6A1Qj=wo9n^c8FR{YIASN|E4XZjfXlFGmGfL?*~k#x#0KJZ&uCklL1|6UkVQV4xXth20UwO?VdF$P>Q=&OOg2JpR?^e%FBew?_F5Tnk_O zNL%)Wzt>iN<)`xg58C2GUur8h?r3x7#n1*|Gu2MAnHL^g@Qu9k%>2B&_~*wC?5@wH z*#8S%7>(d!JhKxrxPp)p=P(o|tqn0kM6=6gCNU4>3kn$|Wj+@Y%-G~)%G4PAI9IZL zX2fm6U?)PCVIY#ss`5gYwR~o_DI(6KoovsaKU;)k6d41sffJ!+zWVGn2ckRinANN* zczy?=V;o#PDDOKilOE10rJ=0~#4vO2RU4#TurBA! z`F1i2|NL2-gjHAV$dRLESgynXT)*09hkU+t(OIe&Yh$5fW5+7fE~s?eSt*?;Bw1EM zMX?aXj?+H7<~yZnb!&IPa5JelE`J!@_oKNV*>0@r7{r?v5k?ht$<*Z6s7l%9#An-{(xDY#vD zRQVftt&0u%DxriYRfXU+&Moqib4GVbUY@ICR>C6;tR#e^IpA3!0nZe9-|4x!YO7a| zwsq^)*6!AVG0&4Bc%PMLRhrzmVTMyuL}~H7;AL){8$sl(wtmB!$m^u5Ck(`_>2Q;7J!W6 zNtZF(Bf{lgMuSlx`}j}-hJmCP7>8O*nBerc$}9W&b@ag>0!N!qS(`^lr=dq^;41zN zEZ{93Odp(OiAGL=i=hS^qge**OgCW0>2H^N$(?MxV0Lh1!EcN%Ff)3->v-bO^`N3V zlfh762%35z61WAm^vmeTNL8MYA3Mj7u38s3b?Cwwf9lj0&P!&nPX;ZvEJ zlCj{&%l8bcWS|)e8`I&jb?eu(+itt9(}aFYJK*#xNePVf7(M6e>}VN5cp(2KE>E;m z<0r!p*Ao1teI>mS4`qs$2hoj!HagjClc1PRyP4q0@kaCFV1bWQLl;-_CAy}1$#XTf zT=Z>3rSvfz4Y~@g=s!5Fpfj|R*u=w*t2Co+7XRWU!GM6(8n!9{GiSHC;nz9! zOvZ)wHwB8Er{G|A^j~t!tv6(5XlJGo#1wPs7{3h@ghf0cqlYF^2 z;4bU8B}BpHJB}*eWasJI+K6iH+H&wzv&C`Tv^{(GMQ-A};@Qwv-)z9y=zC@EWY@*X zr$6T{Fy`r#!O(cg=n(vQ1uIs_Z zqR4$e(^v3a4s+U?%+hb21nmz?3`nG z=(_$|B|hPf?s66X=d)+ZX5?>rM^MPW((Z7tega1En2TT5H~zE6zi%GrdAeZGX~yBz zD-k0m50e(rH}lk|5ie0KEk(cCDoPY|8}{KWB-<@>3g642=Yr$AW0o31vCs!aamsS{O_I~)-^ zjLSrh@6gl4O3mEoH#QUA(G5+_9`E13uL7X`2lkg9Cl_W{;oCiIEg9@*J@?sEf$-(% zSl5yz0#ba+N+g9i`RrlgV)J9q9Zf6AD_Jm z^^5J^cm3hEe%rQo`C>19VQ#2I@89T)0dvUwmp}f&HnxA)B*MCa{ry~DKf}HIK;Vxc ztX&;vEs9hyR4-0UK@xov$Kblma}-^{k^ihwQc7p{Qq0aUA+l1OB`cP;sWUlpz1)TY zrrbAfTc3N*C&2Ck#%M8Y%1J2~{Pv*6jD}4q zWZ3N-PU+W-Yy?L3n?&SC6{lqiQ7Zi*cuC}RRn;PIZ0DP$Q#eV{44`(7Yx zh6E3eu3A+%y%7GpIW0ftJ7ZC@1U^T3XhYDBC%k6*U5>+?eovikI_6; zjxUFvyN}<79hi+Df1y8qW02rbiDPY4l5v_L;}FvUy)vNB+{qpeGppTM?1s)WL1|kR zdclD}k205SFZl`%EnyHu;fqSDrG5N|hPB&oWX4Rul;Fk={f@$ecctVPl%~dEm&t~A z^tbG0%7-ax;X@b6OOFJ0a|eI(2!$CUv0bN zmNGIDT-w0PX4K)q*~0L{iNV*LD^4q(wIQ4xW$~h`!_#L_87%8Dedi+gWPD_Fd1YYn zzu>`r=pv{UIFl(j;AD9geA>tJ;IYYzXW>9U#_L6|IcCe6DZewm_uYM4!J|E6tv=Hh zIY37^V{B{JP;G`k1*oPBwa<`p`sn~={G+Qz%P9e)Qv_;UX~($k-Lbh%3w-FVUHF`p zF$AH-hw$oM|L}P!PSmCFrZwD)mu5`4UqE^+j;XO)eq=e3>YQ>Z(~dv^&n}EJsB(hy zbbX4AkP;+B6@YpEqBxF`IXup3Ri1e+!LD_*ePhn4BXP)kP67UdqZs|lDRvlHi(GWVrJ0zosB+IMLa0LsSgfR1$AJ-W%?{J@krv=3fuk=+OLVP?Al<<>9 z@A?sBN^lx{>FB(((5-dUt(qF&Rz9RkJap0_=8=LhHmj$RUm!kcQe>zoeZk@b3b{556(5d zHM@;3+~Z!lh|QJ=<45t6iVwqPYz?2K=ny=E5n1Wq+JG^i*(!1-xDf!-$@Hmp{c{)3 zsOlYhRoN^ZN7kLayK=?Ks=OdqSK@zou4aFOGfT$Ydo8$PZ|KmY#|~G*O_fgf3GlMz zTs?_4x^8(rQ=6elxP+9}NuP~RK&Kh++3~aa-LZ(%${z9Yv_;kh`X(S8oi%U%>`E3p zy@KC|R+6uLCbYlr^>=5yePbzsx_(zihmuuG`BXKXIXStJY})6Kk{x~v|B7Cg0A_0| zkrF(r3O;Bx!bS7jnsqBPPRpiLG}!D+d3Sg;^r(#q(=u4tb0nP?E?gX1#!iP9jE_u# zyQ-x!5HzV->5PePv7YI&{C%*B} z=U}^+NK6EOHd%$+0bgWi_!~~wtXWgWM`|Kzpvd9TuQ51g)Dzq0!*c^>TAglEEANlP*i{DK9q*?`z*W7C)C#1AVX zi?xg_a9L_|=)>#P_VX@`#-ZcCRh3vbV= zq#V0L*TN&5nb<^A&-#rIFG;P!?uln#{MMJ0cXPtk$U9EU_2%#X@7ltpE7Ey)c7nZc z`bBYT=ivwcT{|Bpp6ufHeSLkv{oM1NtXwQymR*sqc1ZmWUE1kQm@xl%4gr z2+sL)7WPC0z6Y_>+q?*@89W)}h-@hsCD+RF&O}fsL=0hVEdpDoEYoLa${Jr@7?I*Z zXrIB$fXH|g5DZxkXpH8~++U6;=FIo*cTvI=f!R)zs~nVp8LDh7N~fHTFr4RVJyf1C zW^EvW48C<*j2Xt}1b`phnAh_%nv_o|q~MA3Tfg<8w3&g;dP*;fV^Q!!d6%=3POe8O zR+(+??heY-DzgQzQm_oG0tUa;jCSZ??3Dn?JscmUPiD0z1l&W`bmr z91vMnnN7|)CCu?7fcSz^;>dgEbOJ{uKH#&q?0WDsXI5W#hCTv7grm68)paS(83zqr z!Zd{^#)9MTZ_cQ9<3J+;H^b?ropXWBtQtB|q8wWRrRoKao#2r1MF)akYv;mGa6|EM zq8I@Eo9SRMC=w0=8Zu~RC1=mH(bb%C;t;E5-SZqCFr)QDZ<=T;7xoPQf9`el#@zPM z%d5h({dknhvX@gwDfWQV3vDU@4GrOfV@GBM1axED?O>~P>j=iINY z;^X3neoTeG8GM_-91lIofk2(YKOcvTe=7;2?TOIU@od(#E>2Kk_hpWP{;4;(Fe`*6 zoMtl;oIbM9s|@lY7kL2~4H!uDw9XAYr61ymxsQRQSIj&JT+9SA>&) z-Fx-~*13hRK_}rU0XMmW1H20#0ze5Z2Azxx`o%WoXoWvGC-6(2Ip~ZB-k{6O{=o-l zdrs~VsJKWa-sM!mKYo#ImQ`l71vLX-aaf%3TK9#&^~s>=!#f$)w-=*Y8SbFjxGGDW z_cER_(CE!^6O3^fhf-8BBT($ln(}Z*jr8D~9H5(iB$l*Mfn|8m{pg3s;R6m!CdqE( zq4aWKs#%2a&&9~v<-k2Z@_9b()$Y$R;@130zHo|aM|wJ!a~5XNpK2w%%!#UFA7{on zh<@*DjHe}d@8|Ri08Sh^8JlvhoMf{|b7#$q&a~8n{X>f>?hS1xy6A1!1Hf5jk&p6muK`#d$Zqsv(yLcydTp&9qazqBv$>x{rPn9W#&+s%o zPG5vG%5el=4_-3}L&<&kOWy(w`(#KYrkmg*_CEJYbOoUL%qHj`ebart+f)xA=>2k?zdnxktd=d7=RFe>e*~+EnGh7Lo-t$;Vs~=CnswE{wy==9xvy zEp;FHq+`)pqJ_QSKpwNfV7_B>`tm5ry72L=*y}ux2k^tys~6kMIX$W2#0`E3{stcU z50K&;wnmT+EDkkYfQE2Qrs)NG8xNwL7k%bJU%b+7C!MYGr0+8ADtXHb9xeL{I;uZ( z=rg^2=FfQbO~3i<(uVQz#n>cfIbGK{+~YHT#Ww;cz9Bt4KlkI+`EzZ$IJNdsk))VC zb589!pyGu;0k@v9(JB3c29AJYgH&ZmuFw(Anx}*4rIO7A+m?TYnl;{<5P`$UE1yAy zgPA=QDQ25%?BQYdRZxsq`3~&TisefabT27==;ABXn%azs?uI*)9LBtS+48_;S9HN< z@ECjvy3we7w2Z5g8sR$|M4EYbx=yX{4=)>6EJ^rra>wawmrExYqe&q0$(N=J*}6)8 zL)c2OpnI(%sCuAX3}-kv?MUzz?@(T5GdmulNGW>kGHx1Nbs2W1QgC4%ris z4>nf2#$h56ZfsNwM!#tr%zQ}C^EJWE2R38vaxdLh3EPZO-(9k4rXHjZFVDLVKjM8G zI-X2hCIsNiV{{G}$(MV)z~Fmh(w}~`$Di>G+`7OlaMurBFtZGv9@I`L{`DIk*|}?X zXnQ)epl?(`_6eIVXW`NCmG;O09Cdp4MC{_oi%O8)dv~Y3E^|lYLxPE3bU!%J$UFWt zzDn8$lI2U6wa-5M_$k`SYuMO-Z@ZQnQf7xH0<6z{in} z*$mucmrBn_~+UrUfOmRr^!i|NWz~?!*H6DVcZ@9e? zMGrm!_v+QFOMrc*xP}a<84QBhl|-ELv}02jYtSVhWO?-uCzJ%I1AaN--TCY5vJ2Ni z8~jp=4$1cnftMWyAGjFUO0MKS*+jG~#g=DnfM+~t>k@#-mNSBs8yYgoj()+Hj7S9+ z`U#$kKjAt?w3qDlY^a^O%NfmhlxGUyDSAAHj|IR#`nHpyS9SZJeT56#2OjHd+w@%s z$YsW?f`sr3d{MCUg!NUm6MkO!5)PGeGfWjA<;D3-!{x|Oc9Ts8r;L721ToUu;*`74 zoFb$YttB6i9&vmhT$K_IpK#nHVBnejTh~a|=P#Ncr=XYa6E!nC^CXngw-Po1nf4h` zxLy(+QL_;m$^%nwzwwY7NL>yu?Nn52` zqwBRN!78vUdy%fl5t*VdtXBpPJdqi2`8;RV+`KMv6OYwGsaFpiZAky zu1AMhilPadSnp_=|K-k*w(|@glo&Tw^n$O#e{Aoy$R!!ZckIQ`wgf;WBhx0BtFyc+ zS#XmN(P8ZS9ng^|lG_EHp(`AbNP5RumCDjrY+roX!toGj(I0Fv{Ia|B3tgs9 z{NVe6rf`bx&;f^JlAeZ3_D`GI7yP1!=ip;vB6=n|5;`_4=%IUR4Q=Fw++B^#f}bs;+t`gtbO&A=!Unv;gI%yC zb|i@<`K=%Jy-F7E&RgcQs9-BQONzp?{Lrp9ofAAKL5NDP6*Yc(UT|B%WNROJ~))p?O&auQzP+tH1)Vh_@6@h!SxakRzz1OFR~gh~bD z^Q<+Gu8&;@yUNq@G4q>BO8${x6s*4I$9Rzw@+Me?WAulM?k5ELbnNsXKASP|hv}b^ zzr1{=e+8Os8=nPEBq{{lXb5*;u9!_u8;lU$rR>o{C7LAO2bFFsED#^ps0d{>Ez$OAsmCcP>tv~U0Z(5u@t8!A?x zp&$H#53SfQ^psQ}_xhJ8`NV&jUCMvw1&|Hf?+&o@>o^EA#oz4f+7-L&o@<}~jbE(u zx3&GPy1qW(K5%G%G5OguAyOEK5C^5DG)G33m*dN64;PhFIzw;}c+51Ea}UMPjzpNdAi-q}*4ZcvCB2N!>e1D0QG(~n$m=T#ri?{~H#>?5vsHFEW|<))G&W6e z1IMg3r;+iFk%$Q{$3v#H8VGY0!&34Qyo>1<^J5f-3zG?C86kb!=AQwhsEQ$DKzwgz z1LJUtlta0US3eXJMkSbC!S!*N1!SOiz0P=LaLraL*Pj{(G!2%rH^y=n(w}DnQNAMZk~9==@Df8-ypp~NVL4L40imIE z#!oAozE(oEWy_XwAn*erb+1`$N}J%-E41YdITzMg24m?(*x)X`X zqZLezZibO_vL6JshPNG38*7)l1Gji;;4y4taoE@%dreT@Qqn8a+;q@IdU{+ z7YX6nOR>;p23L*95YZE$3=Q921*HnM*XYVp9{F z>F5jH7)H8*lgXgr6KEFnT)%X^*2G`GqG}_~MjSZnmyR4BYv<2S1fKAFm;`MEsKqns z*YXFlR(d3TFbEX5_2)`}@g-+XwTW^{2@Q&#L&Z7y8ZU(RIqc-DW_QoyR}~xMF|yq; zJ5@)fO~ephEGvyfzjBWq{yNJOD2McmN*a12F&Jx8E(& zbdS7xmV1_GQ3rMF-goagJA66qy^Y=J2>5s559d4EV*^3J#%FP9uJH4=2}UpMxWZkCY72 zudIhEq?&u$KoiDboFymHKOF>fUX>lp-*9Cw6R)$r0UxPiMi?7j>}14oG+WYef`Hu7cGJTGYHyRuWrjI?9!1(A%u z3|e|OzZdVM9c_}~)qlnT{@_U-vMKszW9$O(vpnKV1rD@<4&7&u6YG}gl}nLHYy$1V zJ(#K>68yKuc0p*(-ZKJuuK_~RIGH~UtYuB!+pgbJ2kvN);QKQ>b0NNXd z17Tcr5ji|@#>RJQD6tsyTeEgm z+MiYqw~fvsQj6aNM$M0Xr>{eYjx_s{Si5}a;Nh}UDtIs8l(|{*S9B3t;drCH3V@{V z(b34S=!Vjfad0@?%rbJ$Zrp4lXPm2ssNiF04?H-A9CEu@!^Ohbo^Z=9H@?!(CHDiv zjDr)&VIz0T1`6H<_8k9NRWpIDb=~j_=7P88pt=KG=mF05>G8hVnaWaG^&SZCC!?UF z!T88{e5Sp@8h8#IxRtEQyJx`#9{ocL+U|O}SCrA4=E}bEJiUoojNh^Xoul_cTwd%k z%dS*{!hPS=m5dDD!b|LLdVPLmnV<*$;zZ*o6@}i(#M(4BIFbCxkn*_)BhAtH1~xx9 z84K8x3H$c#t1P&C>dO80S~4G>;n|#xSzD!drpE1i_mJNzJd~7AOCQ?zTi2bD0~wIM z>iNi^!OMN@aeSy941qt;#~>KvnfgA@^J&<8fm6=D zf9dfD+Vc;7rak-RKd7C>|G#-X`{hry=f3jk_S6?X)rR)IKGphvx$9dU?uQsxLsVH)~sJvkzmFyLjTZ*KGB|j z=B0M;+wMqzw%YII?*IP7A8*gSytBRQo;x!CI8_|c7#Oea++B)*FoqS3idl{vJ{)}5 zTy9a#r#seH+o{pfV!oMShW}or*|8Q;mA!>DW=y1*9_S^4hANbi{YWIKPtL-lM zJ=-@A66t^SrG4%2!Q<`LJ8o*9{^SE~%jUJsu>oIs^lRbK)?Fn11+U zpK81I9%$EZ*;s;@v5EQbPdkSX47KH}A~+)Wt$92#HrgI}==pZ+=vces&Rc3ncSIy2 z$H}8~MZybTaq5_K7cZQRl5mv8oObHOSe5@0yvJkoAImfAH?ObKRf6aHZadcAa$Pq# z|Ic0*Cg-%54#jbe!m} z1Fs!whxQz4x7~eHjiro`z~VE%`=z$))qU;uyKXMJnJ$Zyf1myM18w(?eYH;P=|^9x zb@!C$BVT#89o~PmZQZ`PM>j(k=p_ia)`e4)u-EQukUG_wydpk zT}}#v#xAu7b{}aQwyrKGgt4xJFMaHhwr|IwcH^Df+Qdog`!5HVGune+exe-=z8Kcl z%c;x|5Gn_!0#Zs2WwMA7~Fe^mu#c+wUxRkztsrGN!!$!f$=N zz3|%Z_O{z^Y5(rSzn9-{F1Y^F5BySl>T55zcfIwlqFeXF+fV=7UujP~_d>hnx-EgD zfGEY=+Q0qKZ?~tOf2n=%cf6baNNTf)C&0OL?Q|K?YJr#<=gSK9Zz z@7^{$a;nv_My>rnf9@mgfhS*V-}fDFZI?o`XCn_Cb@*E!|6Ch7empSmC47RL46SiH z_vSmB?V(TbG@g^E&(sk(aA9u?{mPW=3QY|Ujkc{fY^pXG+l=oof9j!j`sA57s|$+8 zMW?iP>g>rFs~4iwmDO^7g5$iO9X}B~#effexUT}6F{sB!PetxsXmc0D2*`vu-HgT4 zqj4C-h_9=<+(dO}}_?QDxI@E4^%Z)LL1f_lN z{wLf1okMNg%^TXRX+2ZRIsU?@A8os%?{2wiYr)Rk1ZZA;^+5P^xUFBmvWzQ4ZGMks zJO}p=wd=#z96NztL5dfjeytsgF5I|vT{&d|PrDYneeAK9+rdM_?dBUcmm_395y6~a z_|WgSXTJVwyX)5N?N@&1Goiy93f3R`o%`DJFYRn^z4NBv%No%*2GK3gzVt@)`%v3{ z-KMf3WI+WEUfa1RbH5m#je}6^#eSI4PL7O~juS9q@TwBA1mVc=u{!E&ahxKRUgcVb zfR2nDZ>QtLFP@ina=-P54Cj$kBkkP9i8gOm=ppx!F^s*#CxXYwO&QmS_o5NwA2~i8 zIX_W5>yI2eS``*tFtxB{Yv!jp0<7awsOeJfeTH1;*+0mUw`qH zwsP6xswo;BYi@cy(--9{2^j`@ir+?6KWx=f;xf=-{IT`xyYs=TiX*hXeq<#ETp=ZYw-E~L7p*tG0+Q)wXGwthNe>vlun>J3iWlNWr zjykmeSnPxGIP9x|3w36!m)lTqrP|7#6`UY}B;Oy6taIG00NA-pad<+Dem}fxsGT`E z(Uz`W-1fhEq|IC0s~8^o+*9q~8%NuUb&E?TNra&3PyXKhZU5ffw?MF5=F<^UlhN1D z#zq-!OP6(d%Q<8(efj=J+Z&NHH{86rMk(+C&R>6aZ`wK9ZoPe5-A7+=e!m|2ynHcs z;ng09uV8Rq<0tLgbGfbCV3SqH;!c)>{?tQXYkMP?Zn}MY$y${w==6&p`)b?s`u>c6 zNqh8*Pq*uD-cmt@hd%#Qc;;x^uw`}02DTKQfBKP^+Z#Lfx6Rwu6zx>dAh3GmOV0!j zM`Gt&H{G+^?2}LY)_uhT-|-#yR>pYg;y8SP_0L5=J{uq4UGIA5o6aYEeejomy*=~H z^X;B{?k;$-H_Z26{>;y}haP&gz2og~$y{aOd*$EX`}_YQcK8eJJ@0;7;bTxe^56gE zztJ9j?3s3B?9~r{*CkI6Bzma{?Po+!1I>duB*TmSz~@5 z`S54juJ}jqeEVG$K=O>a{pzoOqCFWK<&Mxl`Y~5L_M!L@UyHr*?#x&4Me=X?@|Ep@ z2cBrVBbVM1`~1Tn{zUu1ANZaM?*IJ1|Mm80#(7)pKzdcZo`@$E$TK2r)A|0|MWBup<>K9{gyx89Tj(Z~Om&8{%*B*K5*+10b zp7#Ftzn_fxukPZIAcp^v*Z%$c+upr>=kp)`@gHx$_G`aZ%G+8pc>+QvlvYvM#mo9G zyDL_$Y?Bk`+l&Zi2FlJ|yCX~|O4*#h5aS%Phq0F}vpK-b7^8Wgd$pa2kt7OL3>fAf z*?+vf=lkDR1_3jw{-xim*Dl9^BUD)lvbc7HybyzAZj|w~atQalv9C(*y7N4vU6~n& zG7RPsk)z7o&5FYv=UZ9K-kpa+#MigOhmMpWSrB5b4Oa4ih>p?`k(wgp7(@iC=$a_c zqQ%NZ9mO>sH}^zCck=as+g>`oxCr3FI3HD+myt{#n(sX2LatTM;n{{!FG)`pSBA`lK9K2+nT zj3|)BQN#qCou|L_*@xP@-+4z>3vAr5zM_4W6^OVK{tSAhsMBW!ALbWhU8YOPw&SAU zodH8p*4ciUuPO?H#=08i+!WWP8Xj#gM9{2>17taaYz!JzE>5AG4lb@-?(kz+i%OmvA8pH4tY|9n zm5Ew+%Ne%8&H5Fy+h_h?<89G=aQ#1jUAR1>{k31dq3t^s<(np+j3ayZd+x3sN6%y| zf<%lx0R@VN5|DAHNa0AfvDP(5D7p`=)wt7`0FKXtBQq*%lYb08e?RruOYQEr*~nyO zbEMJu89SkJ(o|WY}}N-8>nm ztJd~~haseRIBizoAY&F-V9-|9FTae1_tvdm-BzzzOH@P#wcuiIloVJoP#0I#&#kxJ zS{aJnZ|o^t!k-F?s>q4RE+;kr@T@h7;3nIu3~n^=@%OKN;>U3dA&@ojDU4L24)T5F{&^0wP=i_yKVcHAXX1aZg%o6<1o{?)(# zwf19w;*Yhp`Fr}+OKs(HSrxRlumTg~QQqe#1MOLJBO8ymC!cw#9gd+#`3s=-j6q*> zRWH}|d7Zy_F7jlej8Vri+56(WDufyH+SyZQOG&GY zn5HBo^Ft>prJM&}CFG(ZnYv)vpx?@r=HuA0k+yh6-;V%4DL?H;*vxO6)^94hB;uo_(#|^VXYd zEHW00mM*HQ6mr^l(VJtItT!|tl@@Ts*k`QQ4(MrXIz5ozYtMl^k2v89uLO~0_n@*xX^Ca74>b#fnc`fc;_(tIA$dMyu+o&73Wg)YV}W6GeB>UwUblWj8I4Mf$=;V=ez9oe z#v8X69&IFfZF=O~!oVWqS+-)m+zjj?6G4;e_Pn8~|;M`9xS+Zd7 z6bA3%p(B+YD%m8Ho`3V~#-HCf@+v|ug-`99Lk6Q)yV-NfA9?7R_TAreZ^>wQsO)ce zch#~L?evLLbrhzcgle(*ix!m)!H~zdSZP6M$0;V3uq$WXz-y6H)w4ZM4)~zYoYxnN) zIPunBgFU^Bo@-1&3@7-bAHA>r=%4zY(%Z_rWw~uKxpvd4Zf}K!u#wYPBqt^!L-y@E zRNv2=8~t_825qg@v#wpcJT}(h_U`xGTWhK52PMw3{dniMe*0tX$A0X;ZO=XbeBoj1 z)~(eaUD|_0(JfPQ8}Hi47H{=TbFb>ujtiWwOuN#~Ts+(6L{Fe4RegSE+aB6+tZlt* zedP0oaw5mZ;-p9K(#y-sp(G1z+~UC` z*|I6}aCON9vfo8|?AY;owg2*yyW0DI%guS~mM!i5-}U}B5q!M%%4@|-TVvy?mix*7`R}wp|L6Xj%1RG(5WG|}Fmz5& z4T3W8SsRt*?<@9(nbVIs^&A-EcewH56u$oY>y?D9VNZYn0RQw!L_t*ClK$_y>#p`c z{pA1F{@&mH8x?S~nY8;k_xh|PMaJwhXKmtHwi25|-|Vy9d-t`If#IUq{+8aHvD_d$ zNxm0dqz$n8(&ry%RC&fI;S=*v*UP+KD-#&ix(=`9f4Rd4&LDGO!{y#ih$Ab z(05<<(98D^9T{q4kwF_aZ>;;+d;FOX{rc~=pZ=-8Q<9P#U?Ys5I$6saHikC&0TZG5 zrQuO{d-0W*;*+eXc6Y_+v)LXVSf20T-*Qkk){#SpA+z0n>#c2e;PH=s=I6?{Oa*rf& z;H}+ZR8r1_CI-D4V@yOwiIhwSqxoutf=CTUyY-G+iV2m@FhFH#Ig9RtDCL*tiTDY8 z&NzqbR2U{Vj5>N^tc?aY3>b=kRU8fmm~0aR5(7{=qLu_K zhBZ$HnJnGaD9IVlWei-(F3+>q7-#7lq$e+kYC6krvK<>5Zin^{wOu>*w7q)|Mu|*@ zu~xPPQJ##J(I_70zfiIZ*z9M{~ zuR5zW1Cs$KJUHKVEK>wAVRg&)7&U<#+8mi$<0^1qw@WZ*L~_<_?nTH@dR2;-F)=zR zJ)6WSBla0w&<4s2MaA&B*6!Lqqy6!BOmE-!&iU=8P1D+j)w9~j=@>IHFl};S{oX(P zu`BKFZC#*#^L03Iduifw+x6P4Hgqbqa=}`f7)i7L<9lb$h)|w&xjnJ7uYbAm_8Z%R zxzpPFZlBh^?``wicila!ZC``7uePD%7t4@UO2iJ0 zb#sJ&1^_|tK3Q%;+4sE!*U?uo6!Uv+R1zKsuPPx5y$Z_Idc*v!KW)Gh$4-eag`irZ zoQ^0J&bl#igty(asd(6Uubl7ET7j>kjXXmU>R*4_c5&?SoU8bW;~yIFdzD*;#wdDA zSp3EyL-(7vt_O&s1M^~h7z6r(Uq?sb>yeQYl~r>2jm&Vgo;?ooc-_k(DvHQBDJkC< znS{HE8HxsmFN@wzB{-j6}#{BqnF-(b(F+q>^T4D_QVyGJ6=@Ta4_7(a&&AIk6h%OE(B z-}mM7p*TMRjg&2e3m(4nUGEHUj2A7L)5_4Cl0$Pt!S)%rka07X@a2Jnc|Hc(ATVUS z@M?be7rwz5jQr+r>&VICDzgv&lL5}|##?yQnZFD=V-;9nXj1&(jt)3^+ILy+hDykz zpev{g{--ue*%GqS7;_=#*Km6;t($9I7!I!x>{Q~V}@?~&=sQ|h?SpSJuKpf5*HK=EA(}QeG>N}t5)0q?k6Z#n8F7?R4d^5<-)P1WYWZK` z*|Iixu}6U_yviKL_~tCpCuE@I0@{(qsY;RHg8|K9ACAKgZ=CdUigO=440Iuy1#jy| zZ@Kk`f-xB>m~QVHnf*+?WLBS}imUUb(_OU|`ILPY<_E^zG2u{=QN}hIz0Ubz2v-Sl z=uFkc*6TJF{K3P^7>XwH+_57^BO^vSjzXsbR%9JLiZ9tCix=4`z7-8|-ZJgVXiGMr zdBFj)mT|v%>$=XX`NttxvuaIdVQqT;pT6yOEn|9M|ABTa_6*o^a4()$(a?`blMEpX z!JLd&@@{u?bfPkc4iu2N`Npk9PjmqXjN?_OI)og_21|(+gs)xL*s+1CRoFF3+I@#+ zRRB67E7nHa66fCz&h(thN3>y#?|%0?%Z42+rxVPjQ_F$Nc&ns5aCn|1S5%S(kC9RMq&9pF-*a5pYGjUM!{Ep=Aac@4 zGROuV^-*#r&$EB=q}|Ak7jF(q?$>QxRx%tcTpaAfhmN)3;j!G)*ES0%3EcRN1IyWh zv!Wq3LgD^ut;Lq;u-64y!`b8$kmZ8GH{Nl5$rHgDHU<0`2VDuKRn?OA0E5oMFFkM< z+bq9#zUyb!+vJn&j!%vqJzBQTrj48O+L&?8Y43dJ+hX^qQ0&LXg4aN%c7E-8$?wKD z2#DYrHtV1-fx$sw#b?K1fh7msF6C(N2Y=vu)AnRL8l7uSgK~6u*S;^CX5FKuO_zun;b4(v-$C&sv^pT`siMRZ(FWU(}%nComp03150&>|bWUW2 zc?}I6tL1QTr}VyjxV%&mojE@A0xiy+J->bDcidY%z!wtq6a4CX`dp6O zS(I_sKuQO|FWUp0z;ezUeiGS=-b17LPQdN8S9jEAd^S|Qc6C~Oo~7-vr=R)1zNFk` zV*j;Y-|BE5*tfej@+yfEg0N}Oiseg7SRxqTA=u5EHntNZHeFzlT`C8WkXpNbZJQke zI6ZN?)_qQk(e0c)icN{LHcHs!UdqpRjAhw2#8E_;dl*e2T45kH^Gvbg;hGDNo(FFwURFstSN>80STYYkL8QkD3QaT(w+i6}Y<7D8ras7r; ztPD17D}~e#Q2JMCr(`2z{VU&NYY3nprUE>$q(m*0ZMCFGn@+fANpcY#;sybK2kfb2Hly z+&jH}*IQ?_?|Txl=tzR;e3Z7iRswg1PD)D-GEd%m@Qb?8j{o4Zc8 zzxT%3_WUnwYF~MAZhL0ms`izam$gUtUe})AzpNcTcDCKHUS_p`&~8|Fv7NoNpuKu< zdVAN+7u$dM@x$#;zWrkR&fBlF_uV$F{qViB+h6^Gx$Vz>SB$+G^V;ZzRb?P4r9)3O z*US;kK{P|aJQy(|jFb%pXr6>V<&7r%P3bbg${-6&>0LCA4`pW=hwedNU`??z+VXh8 zS7vnpKMFvFhacx~GSJ-=?u-i`L%itxfG#;t`szwi_RxJ@F}mF6GKR{iq(Ah6zO4_X z(CbLC3;mcG^9+z;m{P05+ckY&qOlo2p-&aqn~fjRnD$zVM%9-ZiWVdR-B*ZOX$=kk)_v@wf} zu?-uK50BJt;`TNe9kXWL{uy@djf|QxyG|hBpi$CfI%B>9S%H<8UB9_Jf@GdQ9fzCD zbfFjWrzV$K6~BgV>O0>AZvAr)OrlwpL1Y8tu4hR?-;p&cCeQ>tD6_ZhqZ_q@wm5n4 zkiYY)O$EJ2eic~hjC%Foi|&KRKDbUF11AI@+3*WZGGy(n&0tX#0cY@!202ly*Q_@B zx|dFn72%M8fw>MGN%y+YFqy;1^o-BG8ytJ&@@zSz`5sIbObeffcIcpTtTI^p25^`; z9g7&mdAS$vUFc8M2ge!B0)jc>MKlSg3@LI^7F2)qku$yBi|0K@wt$mys%}A>=&?J~ zI6|5G>>6v$t@t6|rhWJaOBdW!d3yETGd%i1*NjX3<23}|_Y@HFO>gj(k-LW@4F)xr z&`sem?`026;n0f_2=<=Qp3J>xG+z@40K*c!3L;;`M6Gt<(GofPW7OHed2ZHh`bNMY z4tK_m9>@vKHJL_FqlrtJ#Y#qPS(gHfr*V!=U4EGlg6olTLDot zkH81CVd)E+#an(SYwYXbHvw0H^x^?eW&9lcE7w#JtT0?%RmIZM5IRs#e1_W9!UYcktS1p@zCYN=6mY4AuyO$ut(PKwz z&b2OeigyHtjLW63?r433r@ey_7;>Jy*ehGF-&Xdb%_VKzNgvSV_|_CRpnF0&ZczV(WA%8iC!3(Re~ws zvoDA8Jv_6i1glPkwvP-QsilWU<6xr?ylDJn?e*7PUwe3vbKqr6mdS8vB_QDmZ@KU> z+BFY-?cLvl-Fz? z1bQ3nX~Ef6sR7Tb+}1{Kk^gXpZyar@0$G3`&A8aw_*1~o@=mrO+;h0WNCuqE$k`U) zU^iH|LN-;|9=BgY@r58rzY%4!f zVn@K)hzv7onO_tJoDDpgaX6~NE~FGOCzui9 z2@$j9F=UmcQ09a^Vl1OF_nMdQ5f%Yb>e}3<=FHLCzi(IOYi+R2NtDXX4}mW&1INVx zs6bc0SnP%gl7WW*{k<)Ww~FeroETVF?+$?#%oH&Gns0!{%)wPOyBdlT)w zaPeGswqqby6~fhNbxe`Zxv`XJDeAl^0*dsq%vOwHWAiuKu@w3<3{m))$&+VFQ556+5eed0u+6R6@ zR<{7zKK|J3_5;DeePfr}@k?E3Z6DfJ5qep_fVIYb;>`5+*lSnYA3QTRJTkj&U(>TZ zZ{2#P?H`-n9@`Oz`t*$UJC7}D|Mm-u+pm6QQTyz3^V;i&rpGbA+J5YPlkLteSKHHX z*xmn1!B0sW1rCKA6%k~@+4@US%z^RXq6|HQHfw{6%p2~@=??GJ#%Fz~-wl)`mqoUU- zSR17AcR2L@M#l_W4*&7t(e#DqRMTMQ@N(Mcq@Rzh zITHmZIK@TLj-BC49%Z~&L!iDlwiBmLN9IQ~`Z#vT-q%BX8l6%+vOz$YoAE zIdC#YjwK0*g)vVyT31Vnqc6(8WKa6*&TpU$et`}6kwa+8OH~rbm@;SV;aBpfswna| zI)ZnGOy|CyK`%IRw9C25IC4+PwR}Ig@_6-+_WHOu3sLI1m#$z;lyR9k$X>|kaBw(@ zWUam}zo09YEnkxRrm8K%E9AcUpeyuR_|0G{!x^}F-sO84Nc8A;vaB`Brm3MO6mfVbs3 zGRZP?K(;9GwkLvnivIJD4(w;Bcjuwgr!xLLGfl+``5rpT_i!-4uX{Q?R7!Q(W2qN> z(q-1`f)RRAWn>Qc+t{?DPd+idVJz@o_k{P%1-{U=e)DIyDd+>w<;KE#KG#@+;hK-B zr%`n74m^7$`U;PE!0*Oj%;0UD95#H9U*VX%M_Icy8^{dLoeA%8An>Cl zUCx;&lgS)>OU4hfd)ni4ly1!Lf}@;9%l^;;o5POTy*+y_^gT<=og)MPN?!%|RI^pZ z;=+DJ7+x2ove6`3m0cDfo0zbvZ{Ms*8MzESUf#XS`Q=^zl3%j+>>nqgRCVH%%_%_B zgG{QF&~Vy~Q{jSVG-!OrCZL0loJ~J{E_}tI$wjBArZac@JXoeBuuHb2iCpweWWn?+ zZN1|(AXW%ir>q($b46?T2oo9N4$N?cBAa9XfQdXcv6g z=bPi)Z`r!FEnTv#_HG~#II-lJxuI7q=2SSvv!Nrqc{|m@SkQ*&re&Vw z$-x5$3T}9p?9m5*NKmGNG-=OR$z%ah_?M*9pXF6(+nBU%qd2-(R{202T5Y0j=d$yG zEDxz5M`(On^lBhg!5;E~?Ol~k>4(oHG1>R4SQHwGQyj)o&49+)STgB?7Vw6aIoX!N zT@Kx%7k-M3Cdq#Z4FPjBjYda?huhh_|B=Hzb$zSDePT*U1nNOFgM~V?_SOb2Q7$0@ zho=)pls_SHAp(3s7{^YmvMVjh($OJ|`>ory7NLrwXqP~8ak@E{p}@2ghat!;M>)u@ zQmhaGL#Bjgh!BAzDx0QZP~R6JW^@$Bx$|f1d&DMMFN)4s!3@?0yMN8f)kVmhT27-f z36Uwmgj#D6=Eew|4+4y`VH^@ZqJFbxh$i+;Kg`3savcf~ff*mhB8Yv)7!1CiMX@0j z*E-|Q{kYNEs*_Ph)lWG)jLPXD+z8!@g7sj4XrQc?jD(Dw=e6xJjv8y`o`I&>G@SMr z8`pG}?+J}s4@pT5%UsY|pE?Jyce@Cfb_VtJ>)jinrb&;jM&%b+h8O~99S zMF%tG>WC0Ibm(xc&s6qOnfeHE1{D}hzjmR0`ln~LJGReg|I2^4(*FLhO>a96M}eQ` zh{T|cQ+8zZTHASaX8TLuJH7qfPsljMc#7}w4}N=k`}t2zYeTo$kfmSue)a9$A&oGt zafTMap_E|$zHntmd-U}=?bNwB?QPpcw_AJPt>@bCscY?vUyop%aBg{qp3W~_ncMaa z&uzc|a16T(^V^?%`*^!&+xhm;Ys=b<&?@+p6C0cmVqWl6#&ZCmPkd8!m5Y*QP@!)^ z+~s!)Xj<(+qdD)h&&Lz{ThmT?Buw}Hp!xL5a2^;nz5Q=1w!&Hd0Jlti0Rs=dck4MS^LISFz5kV<8z@sMU!4(TYlhx%1-`WNxaey5lsx zj6pKk=W@359AlSZMP4qRx1eViBNG|_^j10Cc@@v+J9r{r=yoNJ;Zc<=r1%rtT>x+nDOJBGLNY|AU~1YVdIdjvd{BikVB z^l5XlgsbCv#`Nw8a&+ir!Ej6DjvgDX@=JQ0KCY7S428a^eFZWxGIMeYuK38ZJD|m2j&FuTeWA#kDeb>M8nfq)x&LzDCXM;G0qIko{g05+G?pE+uu{4o}^!VV-C zIa&AyZIJJEnm~qP$rl^5O0vV#W!r@Qie{s;Bo<_K^(Dx0=G>WDH_Iuqu2uh&xtAU$ z+gz5#aRA9Ic*H;Sr7@c8z+v}{HPenwGj6hk6I+ga##n*dwCx!pa)-@BPWpEKp&IW z`nKD+stbBf(Ce0)Z*KSA`_4Gpn+w+Z0|WE2XA^u1f*T|L8SMK3>u|b2P$9T+1Jm00 z*_)hgm0WBqHvP#{CrXwfQ1h&EZ$Xf>qdo8-7X(tuCd+3syL4ah$d2&rg>x6`_+?Ah z^koAyw7X~D{*wRB$_DGBM~6zz+Gy5&GRzaPiRRTDRcBo(c*s;cn_eYxuX5>gSK)zn zB)`xYIGxxUfJ7b&u29BNE%0qKv}nbT@fr|!>pKz@?dN-qA3xbRrE7NCUVTxbX15)Mzh1ncmyL+E??N_{`Y{FOe)g=r~Dne9kSyhuji;c_I5ts7o(jw4vB z<$PwGPSfB4@owa-2QG7PxPHsiKg+=4|5YGbs2`B$g6|M^cb z)J1r&wZHmrF1Fvif1-{26~UozTpJH=EXAh{8w$c{EXSe^eOspvkevGAb4%L0wvR_4 zw)P#jTx_csPqwFaD*ujS83kbTGfIo%+j(SGJ27xWQBP#GC7zsEuI#AL+fBrKMwHv2)A4f-w2sjISC%^s^+2(0spi-;?deo3>;Q7orq0*Zf0d-3hrC1<;pN3^r#%$7R$r;?hnT zChiQ*jFq8)j=V%;$(u7V?nF_o4HS``ID5Y4Vkdga)mZd>@W7!84%87bp*zYSpX$3D zI|f4fcMTlxZlE#T1~k}>zwuLJ#mAfr>pKPW%t_fKBL|!1k>b(W`Hey{HqI5=;!vOy zbZX--9hHcwILsyHIRRE!3az&8DT069?ZHh2pFB-cX7+y;| z#!DWHN|*6tZswKm%)59APo#e(>6{=+oS`{#e6)fJgOXFUaw@+Gc3H!ztFiEwa>UyF zs>Y7*1sgf+VAnID{&_EW=3i}y6lX@D1#S5b{xgi48%13-6+FxIpa~9hcOZHo&U4_I zuc~cEo2)wAlF6Oluhu3}Dy#6Xxffp=ZQ8wP{|&unT>2%O{EmM(vYaYMS=# z$*JlS&UxrRrC>B zDO`uP(3g3^K?Nitrv!}H5fL89yWa?S{mlYh?YRaA`?mrctVz{GOv@7sVj(XNOGrD#uv_S9D`WUWc>IC-jxiK%QhY>dn)`iJ{DtiK0HpJ%1WWb&KF=$=3dIU&^3(>o?bU&@6kPHr|{~eydDU6|tcD zF;|WuoZ)rVQ=9-ibo|({lJT5>^JgEatg~FuJUO?+M~+ocu#RJ$HZ!y*o6EuI@_OIi z1Ff~9onC-bt)z0aK4?nq7xuUJZi-s!IHWd7F2zfh-_xazlz7cZQV zWesm=KU2zF1hPUSAxTao8_~Vwl6Ax8X2Zp+u~$^Bpi7y(g72liwB@58`FPv5eM@cl z%I2Mj4ME3g-{xOM`?-3MvD(vEPhZ%7-5XzBw^)Mn{uZ##MWV#Eyn1+0S6M+A$yRp8e$S-`{S% zeS3`oT*)8V$kEU+xS<~bX-BxRt=Q=TPL^R-^o`j!6^XP(2!5Lh;W?kuUNi~5mrzI&U)n3+T01G36ThIczcJ|W6xl%rsZQW< zXJRFb^b4PZfWo>pYeReSsbWX4f9V|eRbW0eiryZ6;MunQ#w~?oa+-WDc!sy&6Kwou zqcVK?>T9o6C8K~r(PH|9!)@EProD^B&%@DccvdAKxnfL*hYq*Lp88t5;rcDb4@;IV zDIODaqlejKl4^Jwf2wpecGV-ts`Ad!eb>s~fAPhaYpJWHdmL_hgRN!kDua)Yj{Knx zH!1dQeNh370t{^}1p$npWxcF#K`f#-v9a1Y&MJc=i1huST*=vam!gc7HgJ9kdW?qf zMOEtT*<6^7aOXTwCJa_Wm&1tw2_Xz$oR#Ob;bkq@r4WSDapljBJed;)UzGN3Ty}Px zV}7|U2$9v!uer`gK#oS(?BBO94#r3b;AANSrA}M7ZfUC`=r|mVYl_v_Fr_ie(3=C{ zQGzeRwB{5>DdCdHLaYdRuv7*XUiATJm*W+@Ks8w(~NxJ5#J zuTRgom%%c)2=a2cbNRg-jSxQD#B+5OAp3id#&R;IoB|G5U}#`qkI7|El{wBPSj)(6 zRo-oF`(%t0fr9fFgM-}8*|2V7-@XHFWcYX~DVx$^Lcs#UPK3Ln&@mVY4rf7%f^5HrT5)A08(pz`&TZt&pk8Qe)wHe2I16o!zZ@~UV&NK zXCLOjHrbI=?;SFyk1W1zR3^ zX-50K$LF^ne%qP0eAcNd{k6 zIg*Eu9;+Q+j~*RKli{a~Q}kDsYr;H(+nQURr&ztK2vT}J9tCX|P#f!TE?g6VhiEb* zdBHrJP|b?+55ENlvP~2mr;rn@l*_K{O1l_**V6a2+gT_{@ugP;-hgSPp6MW$tBoR1=(|z%idWUfLPRy#a0X zpaM$F_W*tk?QnDismxz#eT@AWC*UmN?{ot^>(VxZk%6aLVqXkAK|*@boK#v2WGWcS z@(J{rJ9)3?xiKWsnK5{g-}t)+c&69$6agOXH`%${7~8OTz2i7%42n+{&*ss3+ z6HoY_%oemM80Q%>2)qWtVGap-l8^POU|?}PNbO|`nUv_V1kaNP>IABJWG0Z(D6KtKMEV7H;l$&aNbeTTrhB@Tol0{{V zs`M-Q8^^E8g>!$|3>j{flBazM5$ht!U==)MfJ~lD?jZAt57AW7eqQ+8XEvE^HHQLz z%!Q3c_BtE<@S($HK!Y)ys3Le%7X&`46VVyD2p%r{s%`Yn(el}5v;tECa#hWcIa}U? z4{e@=$0S~i7kJLbVCU$S^O(tYeGOs#;)uBhI?Z!Rg7I(Zf;`K(x5UV%WORmIr0GQE z`vOv`Q~IWboi5Aq&-~eG0<))1N4LgyWYf3=93@;-<&@JJ{4EUMph6kxaLN zlhId|P|FeWyz#0Ea$gUMgmy!b=#6bV-!XT&IHTm9Bj}Xf+f^Ps@t>fzzB&GIP8SNY zT9(J|0B;jw53vKfKAkN1+w@D&0geV&|GkgfvXnR8*kAMn?%LDV`S7>kin3>A`z2o@ zD;!mNHT~OEc;TG+ZQ z(5q-PFbIRxSXIt>mQ0aNcDjZDXs}XM7huU@w+psFgp1u*4tClF@4@$pJ>D#N?4qpqHunYV?kh$iJ=LQ!V@}dieGk$aM>ifF%YMXug_t$Rf zLqmNdN8^R(m620)n(xRrb3^OwDDa^3yzr7syXcCu4mM~(5Q3e9=JBWUb+l`(`2IN7 z_Ju)j>_5M2oBli;yNFFsjtL;5uP(v=@GG);+D}2)x5LZz%^B{=^Jhw#h_WF{k!n#M z2=q=^i|`Y@wRSLs!kA-NDy1NlC@G~Pgd?OOG;6CM$>uX6&iY)ud{LCx${1VjomJ7V z)vH%dDIm@PBaVV(ko4$UnJdAfjF?CaBS6&YLI}~l^CPHE#F-|HYRy!}M%CVS%l2YS z2DhvZM-idu$9xg1wM&#FAkSMBobCpkbCSp7=G_=pD;K-CSlfLf0>t^6A zhH{mn%5NonbA!J{#3(=;Jp`a>Z$SxQvXrq^8zp4k6=90fs%T;uC?-X<$$0>iZj3P| z^PaXDDdlYE%J2$jsJ^dv?9X+JRvwdqR=;jWNp@oD(I&skL+AqQ&#dNu529 z0d9@ztm>Cyqu7sUF2~|{_-^g$HKiC-I$TKmb}fW|=9|l9?Y+7nK{*(|6JDVo;^#cSTpZP2zX{7z{j-qlRrAG-MX!{ zzx2;8#2M+vhmtaz!n|es)%KTvXinR@_DcKQljquJpPtqJ#J#P3@wsX3=RS3{{rT^j z+5YX{nAv{u(7ASDN_x!u`n)PXwPQU2N8wWB1@O?h@=t$5L&}bjK3`2M-e39F#+zM~iIzFdx)wS!_MPIG1 zDk{2R+f7?bhH=c%J);rfm!qA&JH5)ZWn6((hxZgN@(&(o1df7N(}G_aFC$h~jhDsEhwst{d9Erqa%soB&C~omhv)JZnm$wRayqJbhv1O=7{jn3 z`>HZW#$`eHtLyjZ_KZPg30*=j;iuaCEcmXrv{?>!r>{=y`G4-Mz*>GDz?kiTUQ}V# zZTV-XdUOoGg5gCIp?wuxcn7|ffs=XmYtYa@mw*GAE>qM45uu?>j`6BGNLyr#dp)~y z-HHkfmGeyL=l64wMaHr;c8-cF8+^`-ja7mAz~e&n*z!07>=rVYQC=_)e$Y0%%e>G% zd!-z%yf0h6xF-rCU;OUsdN~d+xt94<);x2Rje|qHNteO{ed1Wol9BmdV3ebwe@7iw zxjQt(L0Yn8Ss)C?nMl4vgY+NU&l>7l6CWJ1H}t1XeBb4}()Yf^K=#g&VQA1e;KaO) z+kElP=Jl)6#?`XFz|r>t?-#=#`oXhk-tOdl?993SbK~JM!49roFn^2u#<~+La%g(eLbwfwhxImF^7K03JxtD zh>!3Engu5a+O%a=@pUD#GB$S0@#CYxN3T9C9h0#LtVmor9mSEa^MW^(GjtgHkB!^| zD6O*T)I6RSzUQu@5qPLRWr4$AqoX5b*Wsa_MC$x1@Y*f<*tek>_!kg3 zc<^w2CjiFD_P4eKKaU(4sw$ORZn?eghYuIH84n&M-}EoTjb>D{%HDHqCD~R4ws=_8 zWNm~PIN6mPzo7a3cG#a<_CRi}TerM)Hd%^p@m%RlvM}(5Cp0k@C-rEa6D0E;`_i1z zxBkq@Zu`OML>4#qi+2<76Xt_&E{gbX7J^N2pd4C1MsvO~BW_(5ct zU{F@RdiAPeLVptyj3LZo!QhJ&BWNl_rXK;tKDD$%sOv+c4 zn^S!7M1L?1<-xJ5vMGe0xr=UNhO1Zl+BbsAm_1j9O}Xn=TPk>QPYmiS5jZIx4pt}8ngdg4$J>ixc6WrD{$pU0SwQNanBUD4=i z^;~W8k!MQaPthD>o56}6DR;uQZ(`QVtkD%m8;;JLhTqN`gfvpCtV;gj31fgKIQF^o zN)I^sz2+EhFQJ}>(1o_lky5H?aSTGT2cP;KjKBrO7tA6zC{0)K4p|dCb|;YGuLSv0 z8MO?ynX^3815;$wB2nMKpV5Z~1rgDp43<(X4!C?A2M;qDcNu5tlftyQ%g~V{1<#Y= z0XQ%}tm~XnJm^CAF3;t`H{mh(PN^4TnzX1R`Sg|fxEH>xuLK-(Hg>Yq^I%b>%W-78 z^C76ymn_J*=Tj{c;s7m*ES;0Na%>o(vS+7bDCXz1)A@|7k)8CaF$8|;IIRY&8Oobu zPQN~yE12i!GQef23ifGdM)bHw zI;zGmke~ks_#HUh#)lu#gdjnn>gim@nQ>)qXbL7sn*D5d@IfDAUf2hCQtIWoyo9p8~nHYO_?4?G-M zxFoujvjt|gt~2)!c26f?OSj}g@A^lFN^5I_%;H7!?VGT9hO-Rz#_yjbiTS{{rFF&o zp>?{X<%Fd&V|N8+~oNWKQJF%z5qDv60H^aWpu2_JiP1 za3t_azhuyRun3O8dil!b)fYH&x=Y>#FEi-AARi5TFZmT(5Trsma|Kv(8MhK-Yo#}D z*;3=7OE_O-1iirt;kYfFAEzfW49vh6-(jDk-O#ajbU|;F9dx!Q7z7Q$q|S#AEYSyi zTRY9+)?NjOZce)5#wscG-hYBJzH##bte5Lv^7l9QtrCO=$_f~v>zD7nYW4%z-cyxDV zZAXXG-=%ivowsMcbJJHp`yNfMh|h!e?ayKV6m)0Vm$uzwe5GT^fyiJ%kaCg(Z@!8o zogh0N2Pgau-*60<=uB`{|9HuFPC}|S(>A}zMfTbx4$OOy^it^%u(Aw5pO%)XJ~L;5 zi1iybl#a3cx}b?5z91gjGKWi%)iUC2aK267CqTuTviLaE(P;t_c=5>4P|;HPWWl{4 z%dFt~`0M0*a-0R@jqqWxQdTx-;&7XTwK0U+_1ACD zbJq6v48w{Q5%#%X`-HX}Q+h?D+)Slka12kP}&uAa~$@6XD+;6~k z<&tUb*r}QAzGnijD0PB(&!0Te{@1Mw+w-R{x2MN1x8*xULgz-XFDW5OxPp^0Qvie` zc!J@3ZoJgqdHwnJOAoG!fOKqAoUE~F?ML5vx&6pH21WsTZ0*)flkHQ_68b%=$_UuD z_ENj|=F9Cj9#H|B>i*YK*VF9GPA`cbx&A7_t3L+e$tn6}Y_zdg%gkrl_g)|28ZO4gcEG(st= zOjs5;%0!#Pz&P;I9-1YPLyRz|?Au#X*iQ*@) z00(2ue|5ikcOF-v5QjH(-us+#^3twsSp@}yBSwV)2*aRu*Dl_Uj(xN+Kpl0dy1DSjL9r2br;)_Z9>*`tJBR=a1Ea$jKSvSCyYJ_J88h6EZa zh>_>}OsC+SzX$zj&pRVUw(;U*5A@*Ol`&5JA=6OKf1Y9RyUdgRQn_OjPV3_;8#L8E zT4g|`f#S82d7&xBk~xPe~Jh2AMIsq`qd^-C|Tv4sfe2&zT-4-nq^qvzHh3S8}kYjD=Uw_ zz*CT1OALLu1y}vB0=#s?a5H!KFN#77Y0h6RdTxOGazy;@%5#03g0N(B*TDtH%o}Z* zmp~~#XNU`4RMlF>4X=73dpMM61poTZ(Oou&CF{t%wQJYL5nEh54(FUUMs?X9(T!{- zr?zl{1se!)PBB<;ddFiBr_R6Btc+9jrtO4*0$MbS_ODsm6&l4$ z_-w-2nfYvt=F8UP@OX!x+D{_BYxx;m&zv)(t=X_9ZCSdPAUJkVAW9BK>wQ zc)NBv^c4KVg(?^heFaQ7NhXv3d^ZS;!QEu$!ZAco<|=SSr<{*XV>ukB7;ny+OUIBu z0xTBl#eT`}D#*aG%bCnPVo=~(V8)9rFp!NEoD07!2@Z{YV6PQ!r)&Z*<1$z@%vN%d zp{lqf4%V$(8~G6&#{RYOsdiL6+3meSwhSvCba_RfABI&!o!=y;ifX%}ubkw86q(mtG{dvkx+FyWuC}|{cuR;dxce^aK3?G@ViW8eo za(=;zjsp+D?hX%|0`s+Iw)N}QmtG%~!AqQwX=l%!ZOb!Xbnae$nEnKR*a-BXQhWFE zqdc!&wCQ)g4`=&A^t|OOO5xcbPP+l?%b{C-oBd5nf9D?=NyivBIL(S3G4e-ixc@(2 zGLS>ZjwH96`ww+eIQJ{vn+2{SB>f>%mTsjmtl zFOIRmkwZAzgM30;`y3-Ol4A6?2v)V9zvqW}Fp?kuWnzr|ISfoJGcJ1RDWL}r1e|`n z2&H1QJmWWWsB9snGX*!sz~C9mflwD|-m+y&DcXwg$9Q6V6OP6oaFv2Bp#UcPj$Et&U?xecyW zOJwy!OZA%D&QHN%Zs2zN7w;@#g(e9XO8sOU&_SdbO}Kmyw=<@7!GG>NCnt(7_;;;d z){VYzzLv}v6bYX3g)B}4+vO|MB7A$c!VBzeo`E2QQl@8U1FV~CDYCqy4|L@n9a9?U z9^G+dK%$Q^ZBW)3t85uTxiG@ieQ>QG{fQ1AIxfw5@qFoQtm&!8!pZ#Y!p-zWi> ze%NO%&w&H^3)FZbYq&fDF&(UuAvk#ENXF*;YTT@%^1uoST# z2F8~ox27@XqhJ_G)qS3q5w46LN!udGLd>2BnA`f!b|6-{EPp)HD5G&uB5e z26OX&uQF!yVpw~*+}HWG!^AYb>e;;9rQ8g^gE5(cUyR+jC-d>_`HP`HW4_vsMK&J{ z{_T)TIdk?HI=UbyDzGt~1Cu z1n7vosbvenC1-p5lnjC+)K0dGmoJt9FIxxSXE+w=-;#&J2adGkL&NRTxj5U?GtUUj z%)ZT?3N#eIt1Jo+V5OM)G1wdjDdUPSV{AtDMdW5o*J2D=UmBf!EpVF~LvYdZ5Ye1= zKJx!^CNgtwY!0&Vn_Z}RfH$pRcho_C3Hnz3v*QU*U8~#?ltN+DI7Z?92 zsfGFhodqQIdFHIh)XGRt;WqyjkHA~*sQ|LePxbsaXaG;UZ@?FB>d*Ez23P;CS3-4N zf}gHT8TG!KS#rVL*$V6i^3rAAWE5JGwKQL!=^QYo59?mz&i!P8Wg^7~nbU#=HZ_WV zieYMfweQee$)$4U7~34(?rh6w(uZr-tgd@xdtLgFX||r%n$mI{(I~qizm<)ZSC#Ik z9rIWaTTOC>Gv;|O^B!FEVU;NdUz|wmq=`Ft;b_n=va}{gj|@QST_0d6NNz(VK{Yt+ zYfy*U=-A1?p|3@jg)?TlOTbjdlDy^UsW4fP@7M?xkfWPJ$o4L%rA={eI6(H|S-xUv zTe)(1Tfbpl+q8K@V6>_^PEXZR(MRYgQm^RK#%b&sw9mmr_Z%ee>`E0P9A&mDdbCj) z8&x*Y`q!RFxDvbsSHbtJ%$HnkmNTS}3_tCXWj4p{=U>m59Y=QIyx260+VYjl+NQ0W z+PaNv+oGk5B9CNqqjL`(P9Mi&3-$B0;n@3tj?oqx;Vgm^QujMv^gA4aGa3S0rN;2? zyye=&GWVln%R1TD>|9Q=`wRD`kiO8hOPh2B8OX^(j~CfsQ}*hq;Ga{we*MOJm-U7h z0U&hBk*r{5XaF4uNR$kX4S4y|mCX4>IdX_}6lQo(1n&f0a6eF~Wm6nup-A zdEyN^!QXg`tpOHf&-L54r`c(>8@DoacCetBz)lFOc(M|R;RSw4WvxS3CxU0mBgbS4 zfX<41o*p@+3g}`SYhxi#m&LxJSI8oG08g~j{hh1rRQiM?pieMP z9S57g;f+0v&MfR%i(*N4Vay1a^v?(JcR9szx|hgag<#gLUfHhOx}~DaoQO3sj5lrE zR1QQhdybM0gM9KcUkSm>Zgqu+5IjRrAuz8JP+?L;SQ(AnhnXp?F625>fe)on>t6HB zKtZ|R^;;kP{FDHQ5glP=ZWw1UM?zA2E~QpLtIuVNmsWY7zpVp|X%R)6w(~M*MwZ_q zx9dWvHf%{_`NWZ(8i30^Q?Dx1j1VL2s-4^`mI_A{1!wufWagL#9g86dA)};KLV;0j ze#4`uYy5DC3E_ys8jCREcwj>1ax)olnLj4qym@PtLNTH_WBRYp72TBK@Lgv)WQECn zcm7g8vdm^46=91~e(lvA?eL+YcKnzPHBPnz`wmnzw01_!bByC!dy=`z1aQoOX8i26 zwr)kw*w@)MlNSO5olhr!VE~6EkO-s zXQI_;1HI@Jen(G(V4S^qy(~!d^0jAow`blE^{$`Zyq?@SGjKdrRTm6m#@f0SGuw&N zJ!m0&DjkT9J+#&hSIT&LMWY$k zc!@A(;8}|b)_w=J3Rt{J!i*S-zB`TId<~Bt%XghOD_~&$nYZUIal+7 zPrI%zjMKr0>PG|xKN({WG+hlpC}~8;c2({{!=Zx*DpzAAeU68Rh@!@o5QpJ1aOy|9vnBcAY z%*)?3u_>^CbKy15dBGXJb(QH?a|Dm6SDqgUt;Jqw)2Cnrj`(qU=)jT#vAPTS->E40 z!}eP^d8&f3Cr*t;zB_hDUovc-4=WHSaQ#1z-X<4?L0W}Du;cFKhn4^1*g?!S+X-D4#zO`vt`YT)o?u=!dhRLeU4t=5* z^H=3D!B|%v6S}EQBGaBDwru=~Z$q9%PXa%kZu(leCm(n`eVQwtC)=;Z;1`g(P{!KO zu_JMCuf|ZBABe}%NL#XaM-Lxw2lpLmCr3`T`AYT}lA$36sX&*xa3Ik?3h?juzwmfy zLl84i$ha?@yVwpNJlb~dc%!}i@{ac6D?8guuk30szqY&WIdHh07@ue-qQ6gOZWA1- z5a$V-M4dZR#~ld-$y6}bYdJ{qUSv$>_3u7%U;RA@gb3hFPGQ`P2_s?b?61_#f>0zu*^M{2eEs;(wEV^J_WL!K-$= z?CEq+25s?i=ppDRT}ZV|UHU$GYNW<7_?v@4E};>ZEYYBB8z1#@a;Q(+#ZPpM9i?ZN zEahmbG9r`7cFU^BH$mAGhfkD&KPWd>dTY-S8_#Mq;=GLfu3s;gQ*ixt*Hty0ikz}} z(x1SfjAPG8EsK0!+Vw#uS!*TJ?@KSdnl@yUO@&cn@uU_w5zwwl+9@ec8)pI z3og&Ww@jZz1p{6i?sGrBtpI7}arDs9{4Kbk5`oiX$&lrL*WwtQsCT$Q=bjq`%FvF# zNeg^hvLk=t^FiQJQb$ma{F@)%d-#c$$|2KtZq1cvGG}}(>%V%<>IxQwI?9G&=hZ1Q zabyKTHf-9^Zn)|CcHQ+`+tQVBNCiwd(0LaOwIg{j8+y6co_+9z!t1l7*$( z{ym3E2U5i7SrEz2)yr2cYn!)hsyTqMfQZvJI9y(E0yl667kJn5Hdo2ae2@OvoNx-} zAOGDi)ZabJ-YYiPyn_lofoM7(&OFQ6^m(95v`No**&SJ4i4bMpk4c$$Cp*#K%y9T`1tXot2eDE#EH0_foCHMTkW=-jQ_JO|# zcr+&C6;!+bzQ?Ms-MeoVu- zBD=PPcG*tkuy*J>8TJ3%g|fb_FUB2(d@aI3Nud%nk?`q7#Q8o*;tctW8K^5|*rI(E zEqwEJF~41@&m#Y#!-&|%1q>jUb&&)x0lIi`-+G^cTm%W(K`KKU(H5tLA$^u%P}byJ zOzXg{KdCHP+VZz`MaIZTCS+Vlh=D(FOxJ}$WY-XtUois0*G6SbLR^HCF%JX}2GReZ z%*2cGt>XpGbs}{69x-D$0>N2#0Es|$zm&D;aFu*aIo8^%Z21L(g5ewj48hBo_EHi; zDuzxurW($FgwoWQTnq>0Jrp#@z8lZo8DVhOvk_()P*?W(2X~jQioVAY${4GxCI2|# z9Mj6Q=DzyfZ@J$Ea)N4HHpml=7o2GAJC^sgTjTd_ zE?WGCkmg+VY?SZJrIs#KP$P65*u1j8_j%7&M#r=5y#x#_01Wz(h#IN60iI=$eFPT|B@(60*( z4(PwenRhg|G7k6pHS5}{2xsL@_@LI_PvL4J%FLOY1Uh=Hwd&!^iy1J7TN$~vL6<{= z@aDpA;Njw6p_#4>@xAEz*^1N-3~@?dRzh`)aaY-0k!TTl-r>^vJ=q;je5dPbzy6OM z@Cc_ma8G{%5c=a7RXL&g2bTqtz_0kt4)yxTtKLKDO7^{wo-B#}=FIJM#2{mg7`F_i zxi?fMO@ z3dZ@2H|q|78ocsD(SE_Z!^dUrjJbZtlx)cFgL^8=9sH?q05e7?KC~-4&(8Us<7Xy< z^BDGV42>TRF)*B9u`u$QQA1`ZCsy?!80%%DtPCgp>OI%sbKZSl8;eme5n+|RBjfV& zJ6h03IYa&#Bm8EZ=4oxH$_t;tl?*~h1&Uk?8KQylT(Ul2UcQ{R1X6sT1RE^!VsE!KBj;BPt&<>wKR+1E>nvxU|P%6Xdm4QU>$D zfkU;nPBv`M-hFN7?l;;CFTLFM*=;yuyJ!x<(bY61n6oer%*@#WW|Ngw6wHKQuW2)6 zCZ~W{0a43MEH&syd&y{dm(@TA3|qRij{XWvyq_9BS=o{a242RyF#6Yd)`D6xLY!Ch zVon>Pvt64vuMd3s@uTd4i3<}k)a>6OD;o!x5nYBf$2!zsYOjwopzAb}_M??TxA`&r zR{#2q#mnE!7i2*>)?gDnX&0ZAK8r3Vr+ikSC#&yS@7=kNV>(qnY9AN_5X6z$ESN+F z*HWKcWDRGr9L5Zn&SYP7r@NOzqfh#LUYzme;i(PlH^f0%RaJr3(XtmZ;A+c>G3*h} z44&XX46@o}KRPXEIl9pIoc&sJ97h&z*m1QaC71cJufkHrN6OLbh|`RblYZo|jjQ_d z3$_+#9qwGjRBR&41hgL~GY|JadHUUb}{? z1UP=|XwjYV3UZJs_HrP5dS66X55W6-U>_>O_MJ){@&&%xD)fHY386*5gGU7qbCt}? zXKnVtTlhP2+WK$KDM!Ehh$FmW`O0?Jop;xBr(&noS>ur(>^#Bxh4U6xvOu+Eolucy z^flY^sa$l9;DICYY=~w9VRkR3p-Va2D_5>69;l^Ufu)N~HU_p@=?F49?Yh{GowoZj z1vWAD5z*5q0P*N=r;ycfxTQuncD{$&I6uX$6e6?_@ipj=%KyLDHCV%a>RjJEOeTdg6$t@M48|Fd0R_zIK`_S%Q9=;m zFRO*60GP@jbN?#d}=nF>27|!HG$cvVDA&!wCvI{SzTQMj?I1~aSv7DGNE+^H7 zVr87AAA*fik{KX;WYU$Gh@dmDP^1VVfxi9vO*JpXk78tIdx;dHAaJ^n>CcMZhfvZt zC)w|a6!R{KpzDgk7-C$9$Qg!=anWWH>YZ=Dvz&0hcZ1(%B%;d7sYK!;^ujP0L@D+7 z>9cL${)6pcj3#51>5+K>_lo!hX5j38@aYbA7dnCt=7~WnqL*=%^U4A6rC0v0AWGWd zL@QY)=ri>&vmi2O%)>O&=kXrA;5svzAM8ixG_GhN20kny`7W05&`qvQut%!G7e<6M@Jmz!#L|k zzW@;0Ggs~FV(zS~?Z^Juoc8qVt=4E0cr&7i&&LXVWY4npxmP#0k3YM-9XTzM9{8lc zuYK=J1)pEMc}bf{Tfcd~oke@*kT8e$D!a}FAKf7gz5_Q-pY=$`#xAw*zvo)pzIL*G z?pf=ZTU)znWeMxo4z>0x_g`%vet2H{(o6H&ne)M2+N_;UXUuB1Zy0a?!}~9_UwL3& z+cP9n5PWAGvMHkH^JK%qe>U4vx+z1df8#?hcxvP3HGRBAe_aWH34={W&4x>Z^Ys~p zj2p_-S(0FEE(AWKO@`4%iK<>Ga4^85+U9_4ziDe`*PZ)PNWn1@TofmsF$RB*BEcsV z5e4d5L8>yOg12)1z%R7r#TY|Zp2s(c0gWtLxH$9bK{y*tQ8ESl&h3gvUE{fu{6$hjM##4cvSGj(Q?2_Z}`r$K(88t)5y42 zy36TP>Wdf5l@YXJ{qiz^=0qnjW{eHJa%LFL_W2OBl}X}c+gQdCf2x))M@Hh!B?}f* znW7Tp3T|fpoMbvk;KC+Orh4nmTZ*?JA1&G4*zUcj&zvh^Rg*mslU{RDv_%^)rzhT_=G#y^gNF`#o+%Bi*_vGR5w|WGx)lvY+rJIUpEfJ?Fv&^V%J^+!S0IeXjt3YbS^Z*j1HG z=0x`t7ZizStU9d!^{aTd{tYfaPTi3EEBKfBSmO@aWCuB6NmPDLyGpH9XP|@W8T0(e zCu6sc8y({_dt*emomZu!%8$WoEws~1?BfxAqt~=6aB{;f*B5*S6>x$Of-I_Ld{>$J z{G-381(uwuYr$(KTXc?wWQ+w_@t5_xmb2(%AVa}|uAaZZo*0q0nWK5uSOe#pcm6S$ z&7*@u05keAyymLS($a?0R)#Z1v~=X?P`&Vt^3%deWIsAux_ohs?{Z|S{y5|+%beM7 ze-*N?vRi?HtaIKvPh38qXE^Ddr@;j6*m%jl1L&@3B=S|l#74K*ZCO_vkGVgO)qKc` z3G{m=@UqMydWcQIZo{v&>@9r?ib(8mz$-`@cuxjutBvC2(3Xd0GLZ4#GE+o=P#VAxf?SF+#tz%PP?=91uobV=uj}fob8#;E~N2b zkF~`?9s*PU&wvsUR1Q@JZLrO7$5U`6X}>l1xL7nn%G- zwP}ay4B$;h@h<9waVb;+yt3fA2QihA6UIPz=06!GqwL(nK*Q*i7Nf=ZjYp=#coA@Y zpLvV=P+FL$z7L}~B5NpuY45&+mASRGK4mQ$NcrejAH~f1-g7+yM-bIC>LOIq(G+7x z;1q81AG;X7~A6(6udA0q_UmR~I&s=Rk{d=O43u+^#5@r#e z9C~Ho#-Wdi3VhgrCxSNPa}8kS1()F19nnsw%HYu!MGa;YlyQlmb4ZPcW6cRTb@F8X z&fM}sx0GFvs74{rw=q}`KIjY1^x>Eo3TQ6)=sUQo`DJW2U|X?#RXq>Z0!*9;3QGIN z0&m8~7~>fFt!QMb4+^RVnO7NEzRX0xpMs!N@c!U_N{o?fbHBssLGDx;@SlYjO1oN5)ufaO4>RtMjaW!IJ}21J295yt=cJw({*DgRkNz4;73# zJ!CE!P0sYJ(VDhoQJj|OBJ@Y6kV_}y1mRn>h8F!ZPiyhU&&uS?Eyq#DPUe#y8NeN^ z{El7(q~Whh*VESO)oW@Es(Zosucbq|lsCj0&cmYzN|~ zA3S)Z9Xfop*+A-iWPu>*fTul6-r753dYp9gw2_{`*FbMF*aWbH#e$n4Zr?1y55iJmD2| z1WX+_ZZ1yr9b(MIc(*p4qpV^Dohg63e8tkJ82oc0tL6zvED64sm0_tJe2X3#pvIYx zxnCJ|o(&)e@&P?_V2$5=!A(HYS;wbCAEE3@CXnxw zfft%$Oq0jX-&R#5z*oD6NA7U+y#&C>5Dqw<+b13!PM-xYgN^&((YR%n;h_R=3l`RS z?P#_(bqej-yT>!KYQ_s@bX9k*78lQ>b3rKjj9oRJ_H~LLX3yo=(mUa+*_QTYjOWkB zL7}IB$2sOskLYwaklkc$WnPyqt0i_EIWnBQ?6R>REwy|9fwup^{(gTP3zbOlPG(CW zaAr9@c-ENlsH!`BVxEp&r8BBZFu%ivVaXO|*fk3kH28Mi>UC}DLOZ~-;bP06f!v|u zY=3NKb{Z$L^h=(l56q`{;#%KiQ!rjt72RPh16zbMg=T8} zX-}X^_TN$$v~PaslM`2a0YtvAvB@Ly37sj~?lQLXivYK0@;9vf>q!s|frga(b-=9A`INvnKDgB45(%=GP9 z{KZ*E6J9R-1@?3^e897Ln5UP&^;x2$@^`lpIF0kFg4RoLZU2G3YdRf$CP3iS7|BL9+s9XjQql zzum*9>iRXj4)&Rw=gk$K(Wl@unQ1Hn5BS%98OFY3p>llwMz{6MSEZ9R-qUAwe}la( zs95j{9KlvaivE3vuD~7=;G_E&muhYU*m2k=12a3)o4-xi$OV26UK-ds0v8-|7ydF2 zZC|=}p`9H+|3?n@w_XE>duZ%f5iF&Pm;l`8%Dm;Xs4W8$eN)N+i&zLn4tGDJRMgJ# z0b}(WrBOm84`Fi3mhz;4ILY2clKS6$Q=*D)`4?GC*l-pQA_Zkl1I1=jn_2nIj=yDu zVWJ2j#4frD;YH9P4yAA$gK{p@J|c6!*V+gc7o}>B49_C?yeq*%pd2b=A4Ej`F3ZZX zq8MZh5i6$AruIuvEQgAUwN$^K6Eq;%Mj?BiJ5n;&CQqyDZ)U1 z3?2?e3Du0pJB8sQ_yDUiZ+VhI&nflUIP#(3t8CfgMFEs$5gayLfdfGj#ukU(u{7zj z`tpqDIZTY#*-Eq0h6pPmBC=-vhZ1OIwglApDP>1d!0F%4m7?8XPVjSX;U06>pfW%A z5vciJekULZJ(+@xoipq`V<@3RK;-IKQ;t&TBQQ30Ss6;8k6BQt2UM=a=zrtz)%FuV zGP~WnrL{+2i}Hx^zj%3sR^U+hL=(ARwDGHNeYE}1$~o;rw=QYV?3mVm_ETWp1)$$K zO=uEs7?s8eKjt$TA&uV3Db8;PM`pL1HcYlZ{jQ0&`^b!TXf!Yg-dyMft>Xu{6C|27 z?Q;94fA(a%bL-Xi*Z#wdHhgM&(N~oihTh7V$TRu}LqeB>LR3Ge%(oN;^xR+$H-QW4uY zGEfITb|S4Z`*gzav}p(ft1=n6w}MTfm&=hu&VNRm?wyl<7eU|ych0~)P4Pcd)x$Ee0XX}BAcZpb@4bzaQJafokO2#VL9vCHE7UVhqP0hn=U_8=IGV^%P+-l6`mT@xJ%m?qtR@Rc9`LheI zc7+COWtm{4(!e|mHt8%M!;?;{I33&x09}nEGG1^6CkB-l1B5u09Vsd3?5&bFX7(9Vew?~LT*$H(HNA1{796PlYiC+K&fjmFs4cN6P^rL(!gWCArI4#h2hgZ^+b?vl?0AS(&B~cCB~i z*rDHU_$zx>mK?Il%(Q{-8OnZ#Q@o7!>Ar8iIC}mMgRa4v@JyrdU@U`7s9=hBymU4= zwz(EMx^ne$ozY94xEK8JzrIR-g{SGGo*A6oPM$bf!C&j}*(V%6SzMW??(hVbWMjr| z3^rgCoUifZH^~D>xsmJ6dY(V!@R8|tR8`(9!=EvzfN&y!{!|mX$SmVvGt{0Dxk`?v z4Y*>fO^dE)6LGlNGi)aggg!WT%a<;%F|uXs`i&k>#CT?~J3bGbIF)3N00R7>du`I$ zWYFb2eM#`gZM>dh|D0|tA^8u z4W!6QpE=yhgV7nh!Iv?yA=x$Lhx_m$U17}Nh|cH{@R2_vKtJ zkvU#gV;2134643y>dqh-P<&J4>s2*&uLfh6Ac%Pzi@rHj=oZ|_O*DZ zkh~`f$ZQum;MswE00(eEbAEO7+VIHn$n7}4p>Y{udLOO32XCN3ykGbX&fwF#wff}r zvK6xAHW=&)Ik;sba6<96an&Zz;q@;6`(|Y22boJ=`sAm;t*feb^Dup6Nz|H^t7`50 z>d3w;s$s+91N++iRmye#QPJ5?!=Q7?XR_JaX|_Il4d0<3?<$V)nipHq^KgKs%h?XC zkacKckO)$7q;gKcPi2xIF=DE=U}Zer2l+OD68$3lMN%;_L_;hBRmOlB zx`E1J>jInFWNcFe1R(;es4an8Dg9Sp$Tm9M?rTFgB_@I`_!NmB6+^Lx{ln z%Y=Zo2ttkuL2x35lJP5Jt&COXz<5E3go8Piq7R42iWU<_2+Oo%5Wf#LO<|BT3`D#M zT)VuASeuLIdI`zZI&<)iJqOwa3QZ((MjX4mbBGwq1O$e}gxd4Y;W7?Jl{>%;tm}`` z9A#UVaa)dH=3@?Yi-1U#0p?{RA2`;H=S3R{Va}CIu_#xjUGuVIt_@qvMTT41Erql+ z282yb2zjLx3IytwE zPc90MGuQJrHJeqzlb7#(y#3?r7qt)ExVXJKG1>mfhc`ztuB0Jxjom}cBf%x6x7dB3Lzc^F{E<+4tY^F%4w zRrPp`^m8%j5A8YBMn+ErcGlTW)>{0D^jl|EN3b6|K2ioGV_o@dU!yfG%710ei=l`g ziwH7)OATa4IHGV~<>iy2%TWNK&E+d?Dil~zh~W+G%D|k9!^7D|Bi2y&Y=4>!e89L2 z#k^d2ILubx_Y&_e^X7z)t^Y?Sc!T^RLl{cdF;a48GG6kf2O*T*Uk==6w^dP~wd-i6 z!Reb5g}XS8AEnHhK|7)NDLipj(N|<2sL3u&47w zWLJL2D`}|SyOEjy@^@O!s|N$nA_dOTWB9rUzmiq?IWU+kL+o5+I$pNUR3^$2pUP_I z8B0tUbL6eD)qC)y4P!w!obQs^fxp2Tg@BRIb0eG4R5t=T|7)Y9@3&7agMdLEu%E06i$vCM!Hh z-c_YeaE2CZEhXKQF);u+*2dG9HQ77iQW-^cOkQN&@Uf8!N}?~Y*N5Oit*_0TGueD5 zeB-c&KIVsRRGZ003mV(#aA5_jWS17#y=a>eM=#LDGMfT;_AsFXFI<>xV`Jm(^yzL) zsVWdaEj=6Dp9`!62FN)5C?!95uy4F|IL7lx_}O^qO?vWV4As4R_f@c)E#W7MnZ**OEJ#9yr;BTPZHRkGJ3#?FGqI{R7u4YrSJPmOBodFw*Iu(3Sq!BL%@i zpz9m&MH>NW>7DdRhFRC!OI-U}`}60|hL7z!&FGvgS<6_r6vJ4n{j|+d(=;c89bpd6 z{68PLrhSfng`zt znTKq2zO2oVI!*V0sy;mfuk?qYiDGYI{K7h#<#8-Po5>iWyaTM9&6&9$$;8) zR@QW2i^*(zj=mPW6pZ2=mc0}iV;tmyHM56~9nTmhBa0X2_nr*sj%45Mo>PG@dsSk$ z30&;83z6LdisW`VIf1{WS!8Z)eww!6g0th8Oo76ym&p`s=1-P$s7*LhIYPE=2n^sD zjd8HRhtt8nqOZWD^v3z{R_LhocX)N>>J>Hr3e;pif*fqWQ)4GG7E4O{o-Do_&=!2d zhkm*v-FM^`TwurcfP;Mr*e3L~B~_OyIER-{#ztc^f+KiW@Fn9RN7k)fQ#PI>!E6$D z`)#)t@99slfsMyc;83q#v$k+zN!oSSU*Dd1;)z-ZynXu((F2!i2X{P!6v!lWM@OQJ z3m5FVZmwPDIQ2oM**M8;GDx3Tnmq0N!{P1;mULUcYoh}1>7-~aGSA-_wev&&-uyc4 z^iw1(jWBQUBUkt!-4+(y>TSA8e&jpjAHYCx(L7uwi}M>8lR9_`?#%-Y8Us8TJ3CoP z_`n86v*d(!%dU+K&DhkZ++WsHFgF$!*g!FFJ~uh zE2Ty7B5W1i&NwNyfEPX;=9yrgpT&kvQB3V$_fz(_}5u*6cZP#6*n(Ty1rx&n+lDpUddWya3-kM^BBH z&^F%ieXcH?@?V}|sB-QDlUVxB)^)VZ^ci49X~@d-EU@_zKpvzF7}sELT@&~dO0T}Q zqpjVrCW4|nh)W|F%!hF{HhQX!932UhMG#)P)-Illpovq*F)YCvX6GO?);Oo;F)&IA z7MtV17ZcY%>q0meH70XUe~YC8@u zs7=Uz;2o3gzkBb6_WoPXwwu;nYm3hBZ{Ksz%=TyAe!Bh4Tj#WQFPYtb^+@QJ9XR6R8#u5&ZDIQY?lggObzHH#_M85%9bkm-lnegx=;{YyZu?alGGm zq1~}@vfZ??wR^6=*8cb%=iA@>!HM?YzwdH88N2Q$eqnlh=?G^ohE(t;utcy~Kd4Qt zl3A4j$=E`#_+Vz>$MDCCX9JJV-Tzp-=gwQoh-3853TzlRBFLiovu0$BX^7!LIeSi9 zcwCSPt~lJrfQRrbIwrVF!NFzPr8J-V@-uDy)(w#n*4Le_O-P))N^{7Q_#3++nq0gj6oF0QEkh2T(`9mQ@iRhiA-7#Tjvco_Pn)6#G0 zth6_O?t%(5&|j8d!3jDHazp!hg?>CQph&(K9)lZnCu{N8SDtIj*9l$*CV5PdS7viz zWQ{m>x0EUxhV>?YAk8HjidB`~AF#1duz@!%K*JZkVwnor^5A1Hv>UG9 z9D0cXoc_%vkSUu%pr8!8;IT6B88e-hRtwkUMYL|UO~ONJ!PH9zEMIkcSM}i7q3Fta z-65p^&YT@Dy+hPgz%sC^pjgqrr@FmT< zHf@f>8dxxf(L*nzzEpVOT!D&!RS2ccj?+gb>y|7LykiKjiW4M&LM}QQ6An0+9D4L3 z_;>v1u?nmhlVA_ohF)!xkjd73%x_g3Ji5$hb1QionUtGqNt+{JOAd!_(X(I-H(noSQ&5vLpl|I~rYkV;+>%9$%Z{QK1)hA5-UMY=E?-$=;q(kD z1C^zseX#t!Pkp}Kb^Fcbbig?sMt2>n-Oy!dRYdkGDfC}~lFU~{%OJa5{RN(`(ii!C zX~tAANTa3ma^I&v{+0HQd+)A*^`Zqb&r1W_^R>@|iW2l?9-IcUkd8OMp8fB^B{mYB zy)2H8tS)_f(k5=9`?YIUSM>mXdSmyow*7`p<;0YH2;IX)Io7JcVjEThA{SEjKeiq{ zEuc?+b=}v`$o8AyA-XnyG=d}W`X@j3`F7LI*H>_RK*Q(+Kf8=sl}^!4=+hCk^!m0f zTidp+n+rGQ&FRyIO&XPmuU%`S!v%H3pMIZs{E7C|lh3q!?zyKOJ9fN{3?C0qoGqMy z)s`)rtHQ%vWQtv6uG0U52M?9+;3_(sVqr4e+~`>I0V{eO?vEWiQgiQf4t9d){Fkfi zEHazDUNTjm=|_;^avkACztHhLm<9%27WUwf@6b*U09O`bOA|6KvX2}seH1v+{i<&URmbM|JHP#zcK6-4R(nN< z;m`8%La*QkF8E|JGEzkWnTfXO)Utab@9B&V-_vDxue1s8vSlUj_D z?*CY`e;Zz$2L>AhlR)y4#Rz08d(umeITGDCshu73_mU8qDDBMXDz%J!7pbgYdIS7A99-?Yf-bWYUybF+A;aHw{3)%W?k{}bV|ei3s`L~v7XF`gGY&TCc} zY+hRzhuS&G&TN&rBg8P3^(roru!{^G$|eGFc;rMoe(XdW&g;yn;N~2MJ2zg7!xj*q zjl<PBS|F`zc3*Xs>Co=ZnPKN1&Us&93{|m$IqmPCT=1#Uh`Sy$L&&Bb- z=ekSnm4nmT-~R3S?T7#6oc8kJPTR$Ip((fqJBn5rFazgw1nrp!%aLt9mD^^)UPOu%QBh>TTxx6@Nb^dhv?yqX9j9KNb zgKQF`iK4fz%!OAd6Uu?2AxH25gRzX+AV|p*S;Oe{E}{%^_{N&lP)qtFpL&_LfCgT! zP2pzDuFO^SrKB*lb0IvRsfXvC_a37-%2c_S_9-efvUTg0a>%L*WX`NIynIh~P^{z$ z*a%1rA3IjEg^@?zx$s*#mnCXAqQ=>O^FGK13o?OKjWF;1j=cLlj}J1Y{;W2@HHL{c zx||>z@_jy+^E-9HpI}GHy7YlheeM-EF?#YkJ8_{6XZ*5M95m~W^&tQzYqMmI?=vdpkXK!#N;}W<8K*r)?lnJ816XT+?L~%B{p*O89i;>9TF*vk^M$zKnc>zJ= z;*?gvIiJx&Au?Be&V~0p)7Si8E+drur;x6NCZL~FbtyDQ|DjK_5v(F}T{bV%ZdHeb zmkOtO>5AiFj3pz2cQjWU+{8gYefnH*)Ju(L&6cGQ*i~^9{)l7yjUD#;yNhv$7w|?c zbBf%tK2X{5Yp=iFM&tCzipg{>SQtku&%GHK2@IfpPUbZ;utqxzVx+=JZS=^HjA4s+ z2Un-To{5E58FMfz!#VZ=16F^=f`%tUm*}XTo$8xj$NTh0r*q?%u@Wfgcz{>s&KEA& zgi3{!T7lK2cy{B;1QjIbB#S0IJm$;=Cf~d+n3S7 z5BPC(U9}F>m@_{23d~nU)3M>UYu6ifY?*#IdYqi2oHR1!D)98@{ zgOBuA%im&~fH9t>D+RC6(%?JydBLAdpA!Dkg`wxFE=V7BjAX8*aW>&*Y-Ft2;8501 z#!lvzoTyEw($=wzZTHSy^*sEI4iD$KGgCI_>?#unJG#LVBAbtKSOv9}2)oE8)l8gm z`%R!b!3n%WKW|vKuFDAHPTw4`BA{GwYJT7_kVWVh&isac1vcT%MYrK282!^4lb?esGTwi?g#W#7`z38|H1uoUR zRJ{26gd=P-2lzlIoJC7;@Q1e1ySZ@e&@b9|p}TUbA*(FnDZQNU%-OwtKbFYIjBl_; z+}H+ABU@o0PrL^A8VmY1SM8uleD5>a{>}2cXer}n3!fafiI~$UdNQfTn(@#PeUBT# z1dj5lf{n@ueGK%4K78+QpUnfTT!L+62;LA>G)}*f*}75X!Zz~En{&w=Pn?j!mu0rE z(%M>1V*nmgps~$8YXSGdk$^5Gn zm}%MR)H-rY@&0qyw{?bl-f|hd2(b{H@)YGI5QVrYN(4|$P08fl(J4Tx%-gPtGp_YW z6yjpsK)(BGEkOhaLUw!uA-m;ay!DNvywxK8* zN3YDCx1fFtWUCFPaTl;&UCbC8!?m*V893ur=EeXR5n$(HP;vr&D#JYgDB?^veP0Sw zL?Fy|52Ze{1h1W{Iah=VqsQ*w=1kC6)H{6(CY)AU83V@ogU*6II&{2BGEbk1Lv9nK zZekfhhMvE{IPg*8LJ%u^sXhpr2+1CN>B7!NIT>=s8R0m`IhFzmU4d98fYH6oTP8KZ80Oh`d6^L+DgIB`rY{vc4-f8VK&(CZhd|-O}>EAxz{?#Y0 zw12&NwB0{;sSRJg+TQwwdkXKJ_Is(E=FI^;Yqz44c}<_Tv<<)ZSKEP$qixNm=i2qx zz1|iFW+R8cvmHJbVY%|9wkYsNE6dkyYP*gvYxljdu>IDf^V)AbJh%PAedpSJ&tGc? zPB4Bc$jK@{wc!b4mD5nWvWG5IjF=_ir>uyuE2ksM4XsebeY|tpcfRKx1#3}Kefy3O z#{(4d;zdhpsR!YR{uvd@hA5Xa;ZO4w#U|91hpABT8{RI11-)iW-nU-Axo8F72~MF2 z!dajWtqYjIHOI_5nlg5HH!tHxV_xRY7!eFAxek7cW|K8U4*=hzs#pH zvT=&Y2o5^9a&XqgPy#RWMQ=6@vMeWDU3elV#VSt5VHp`7iQ+pK15Y);co~G?SI$T9 z0WSKfb7S+}B-nwu@A5ak06!AKQV|n^8{ZWp<-NleXi!a;r+!^HdtS)~7bWYa4x{jk zd#jE9dns$M%%39YPYplSNU-W1xvGix`mu1u8R-?TVr^osjCRQjA$gD|*MKj3?M3|$#N zT~l&7@;FndX9k%g6y*OMCNm=!dbNTSX|K|VTq=?Xyz@>bTRNg|K`u*oj6`d-bSQMy zH|fj#^BrAH|DCS@Rh-TIhK6Kmwr`6Kka?!_w2e!8z`e?h>v*8>X8x9KWOIZ~OD_pr zxEOTC>_&Qoe0ISzMpHr#m&QJC9>>JIb3=YZt1IGItX;c$>fY#=$Xs+o7L=T*doz#F zC*u_vD!&J3jvD%AkIc0Z=hWD})~s1k@1f?>m5gQW%fzDBIWsH^h>;tbnUi@5WSR^5 zF~8DV;UmYV)m{sMDJO?r#9^|wmIF8$x>>h=O&QR5To8xcL8F#}IbFfAY|a6faV48; zxmaNBNXT;&7u%~Zzt)Z%Ihr}d`I;0E>cK zM@FIDIsz(kg44-)rSsSx-Dy2t8;X$)99Z%Ou1cTQUIpadWLvgkL5bz?K2hlL9b+O=6v1tThjMLjn9||wpZVG!qK5u z%O=WG)xKwCC~b0fD)TZovR%ML0^@Yr;>cRJZJFWdiQ#tt{r4A`f9QvPsAz|CcI3$6 zjOAJ_*RX+d@y4YKC8vlTbbC1W;BA3`I{l{P!u6HY0Fgsr+m~-*&%s`Oz2KC{=MAom^@qb9iDm1TW>A7B&Zq!s?4=O z5O_;elpF>4TxiL&Q{!vG^SyXh&j*y+F*M#kbybd)al`MzdaEA{i;z z2rlr)M!`=mI-4G~Lm7xWW9>)2H^j5bVzmgpGj0Kp1)NiY&yR&n^mD+xa!Zi^1Iu9B@)n zxpvK}Qtq56(KrTS{T?82I4BM4(+F6?g2JHim5!ea1NIH+;&7jjfp^N8#OdRzu>_)w ztl%u8F8BzRxGu%fXQ&Yf%HJp-^Wi+?);EQOx!6&(&N2?HdJyGWl`X2c0B84eVq_aI z@sXh;g|pi9gOQLndO1>$zUcx@>d!H9mqQD1bmq)>oNt+yi|x!`KV9P-TnoRxsOU)K zj&cVFbB13EVE});5>u}&-}p+D+Y@cY;yoG5D{b1WN7}VZE85xd_qL0(ztT3X>dL^p zi+|WY^Pu$qN}$inpJMkH$IW zJy?LY$V3}C_Dzf|OSu@?)7Sl5Gnm1a0)^&OYjSN*DHHY+Dv=}(yCBZT>&>Tz*eR!roZN7QKo1Ry?56EbSpg29~*;mOfJ(l29 zCNW5&Q$3?|v_mGFw{hcHG@yD1eax8~y_w&2aQ@tdT3_g#a1}91yvb%`Eq=&&IxlO3 zEHaPuH>Fctvcz~o_QiMPrJ#o8GwU~4BQ2P#x?@(!4NgoQkH?A6^W+F1pt|8>!)+)I zYI?~$offgMEeh`O!L^KMLN-YDHGMMB;R&s9z&S>>tNF}1mHnI*d^q_;W|7mOj|-PC zL_fq>4xgDDc>vx5u;|~$Zq|7UNLIipaNx|~O**k?CVdJLUy2MupG%j-@yqvQG#R6u zTVT`XraO1;E?vHGfjv#=j_IMNsgr6l7jyzP=-Q<}G)d1`n`%wA^})xF9WQ*q1-kOt zv*a^5L>~!&!LNB(YNkZo93AIZG#gs*o4|qnf9N)CuqQdtPQE!6L!K_hFYGlos(E+E ztY<5=(RE-Sb2+bpA=zc)T~%4yt-XQLmm{i-dB^K^u)fxAzx}q@MQh3i8MXU17^FYX zlzcSD^u_K#%jPIabA0OFI=v(9XwzjLRhgIjj9V2{IaJ{ftl+JZ-Zd-TzV+pb-^+jZA%t#$AEKX~w9ZJ>sR%Hd3VRYek<)MjO& zF~RGir_7-Oq?t1rjn0h?j0ZttZKAp2?~Kv7Ys1U>uKOl_b07IH*sCwHxmO)^9x2~jUE+Wo#4qfB>++R;4_QMWyx40-m0Iz8ct=&Kc^YS%HnWl* z>_PT9I1Fss&To;mp>gt){iVuoe!e?&VEB(5?r*&Y4)@73BLzH6aN@*R30wd#pfe0Y zNRUBkxevh;Ue>2EGzUa%O1se56 ziR%|ZV?XyPk)0ES8VBZMq!C=jfFWK+J7He;hOjvPm{{Any~Y}^}-;h{gTy3((RS4ql9d|Ce5z$^W^M+B~}{9J-F zWAkWXle5Ek%jYi80+;+=25W>IV~mjNM)<6PztXpO^A#y&P%xs5AASgxkx`0%xGh<> zxXPqNj`tv~^GCK-G~1fNi$g!%9(;aLo4;sz z+wu6HY|lLZ$J_4xceYcLN85(=p}XAAc$>E%G=X+Aeu@a)&YQcuO^m#yO)h@6tzRA^ zk-*Pb7_^Kra7Kf83=F`FG6ZSHkP;mVqLKWwLnxUhn_bRr=1tMTaVgy31g^n~ zqGmLpYx0gk;mpqpXu)O1gCCUq*KV_crR6Y`B*o3KsQG7{q-c#LeRwxcuiih#&gSPZ2M6KHtJ9+&qWB%ZNXCqxJlzdTZHLCDIPP&dpQxnW`@@6+o;iVGsEZlhA)OGI;=e+ z-~^sTd(s}+kA_r1aIzSA@J+UXe>pXw%d>G{tQ8d0K~JXw|HAn-x*@cLS*pq2u09G4 zQ+;^Bg$?^^E_vZSI6-?|PlmoSAHgoLWwf1%EaHyJX3d{7zn>wT*PO_4!8!(;zEp$I z+ohjE4vf?@k+n|gNJrJCl1%{#fdcZ;y4UgGg#qV&Ja7C0CmdKf2NR>E7iBSvj(u;i z#+-k2gTSrIJ@xOdf&eNU5|yY&=XmKHpyW3!WrJ{0ip#( zulS(&)f{7^=|lF^_&0CbR5BQB$TV}dc^sWGcG@PJ8B6F0&N&S3C5yYh=s|vCDBcYp z(pUD-P>rCivNI#sIq|i*X=oLVD62QGx4h-%B%$??YXWPmZ_2QWWy@IaMd zbBJX0(1>vugZA*A$_ThL9=l<)lkq?$AM#w;Sm8I$5j|?dHT1$MRhEt}z|0uXcO{J= zIB+Jv&C&de{v#0mRwoDrFXZ>R$N_u=?`TL6LdB2!@ucgAVTsWCa)jm;)71gCT)T`quNZpP-bzR?IeccE!l z`3=Dl7Vg(KY~OFTf5ACl_dD{paTi@h7vmAXOTd`BAQU-k?(P{}0x0x)9c38&bSK>= zsnPFwSFJ#22_~Z#cD>)x6a97`oMLOy>9rwWzLOYnd?viw+_mqiG^=(PM|1cu=&) zMo_{HA=m{+7anlKh^$iC2&#&9=XXlLI&H^#i2yRz%2i!HTSH=+-)GoI5$&2=_UAMX|S=!GSJQam3V&4UF$7?CId_o6(9W4hc zhO4r>pX|}&!L@zp#xfAkYvb~tXya!$x8tMZ?WXrW+TMESV{Pfx)otJF-`&nE`Fh*B zf`i)EXL5)rC<4gXFOPqJ8#=MFE#COKwl-uj&>QY$WD0l~6xzdM;3m*P3D2F?cjZS{ zj1e?f<$_c6fQC4o@Kz;WE4y*WP(>3ATWu1e3PEzS_D4P$T>?(&;)GrBkiU1oMX)ce$Def3SO z@*JGOQ}JnUhwvzoIkUSngn~cxv&|Ma2gv zPxLZV4k&mHGDCPkPv)JGW$cV1*)@h^ziRBcIvw`E&8uKyKK|B9CStB=r{EkJGk}9K zd@`gm)Mz(_&sy>x zd^*=IhTd)3xFGsXK*{L{f>p9B6#&c}IUe9-jtp*2w!o-Bv$2sewc~nVBLjqXtc^7v zIK>Z2GG)_IhOAi`-Whifx^z8{Dr5?4+?fYh!52R4=g@MZFSbqFHWXdcODdx-T_ii% zh=OL3aWNX{t%!x-s-IbFGd;SIj8L-as4jeTDRKz!z!lj*?ve-a05`_U@u)eby;;*` z(rv)HpzIf8;s^)?;N|%-*4Z&+l;A8qYzZ6(rH&EHxY$47%t7MN*qBRIo$vAOoVmSP z!Wv?_qX%kc1wRX83$?a$$FAmhy5&pk_tBR^%ySlbc-K4z`USn9b^KLy7a*Yrw5_tj z8ezvmRS+`IaVEeXtqd--<{2-QR^%!9Dj4ZrRSWt9Lzz)Kx?6rGummo6PziS}lbASN z8CTg-S#aY@vjuZwHRpjN>3acCM^Mh5(QQ~`DA|VRGDdy)EZC-ungeY!u(^3g=H6yg z<}ZLyv|N1I=eKv?-so2+nJg)NE|@tdwv2Pv**R>L4Qb2fa`;Km$K3HZ_~}~}CR=NM z`dgIW;fQ@xwo=+;yOqNoT+oNE-amVY6WfC|GV1V%Rx``eO=OI@o0IV#JASO52UGTw z?<70O;nI15vp_yOj?ID3$q_I2;`P^e>}<~SXG>gn{nm`HZy1T*N5@9%=&+3&*0mdM zyrEzJgxeZV{vv;O$E~YQCB4!b)iML zk^-AIZ?2^*@Xj{`XKj(?E;LkrPWnS%wFD-x*}3z;AL?*-E&pwLJ^H0*>m5T72;~R_ zfCSBe=m-Kxq394wMcV^xMy7@Kgra*2+4;u_t=&I^ME6%&buj(lm!2-cCjyRH2p#u9 z7>2T*kFcX)1$$&x?U?6$$1;4wXm;nt1Tl&8T>egbm_`Xh!1ebYWXgjVt({tOF%~gtl_>?Vv^!L6PV(Z2c zm@zU4oMNCbYAHQ}6+AK)8NXGO5k7&7o4~_Qm!{6;2DD# zd;l`W$}ox%d}l05f>y0s-PW#MTZ~lW4t@v1uADNn{g(ce(izg#t1*z%{8eY{Mu~~4 z`n?2H`U7BYgSGW=RGY8mU4X&7l>PR|eejyWF>cLNjtp%U`aY9%!`%75d;y~ zj1x;4`kEidn#_%3 zQRe7apEBw*M@Eq~@{Fcl&UH5Z^sd2esEobkWkgMjTrlRo!CNm)9#kN>3RZzl@n=34 z{{>5Es|PV73m6%h$Kd`!X4}0dPM;FithwV!Z~zbEcfofJz?C*s70JR^hBETo3tR>? zsb5ABMXS2Ori<$~M!qav+)j;+S3r$CxY`8ojJ+FA)%=tZ>2GrEo98xo4etHc_ZqXm z3&zvismKT8VW9Vj{%9E?XbMfp(3sZf*vS}H-(A#fP3}1l#b&Wr>37tO`P8It)L% zgVR6w3V(637R9mK`QqLR-V(g%fTPbb6bP_OzqPsU=adU-Up^mWH3pjf4(3Ik86Sw@ zL;V$U^Ue_lLjw*<0@v2YPWNSGK9~H?KQznn6MV%B-sv0j^iFRub{SQ*CNKu54XDmA ztYzCmlY(AFUzs1e7HWC;sjr1k`Wjsh1m0V*ba~C6U105@4c7D{V0G=<LUCeK5*4miLdfVx>;pW`PB(PPw%~q;xcm^u4 zbCw|;TnY}^h;Sk@3SA567?W%p4nBX*F@k+R2xIvC{SSt3+LSZVH#_5W3sSFGv9!v` zmqyR8T)v_<;>ts9-=4i~|DOHr#OR5tYU7x&SF~rY=!DK7v*=!MVM{#pm8Xhcl$(yl zxw5>%dFuLPPss%0fnLhpWthkyI` z>-mKXZO*r*h|^I;_>YrkYzx?M`HUYVX7uAYB+dvK0d6Y1;24gIkaGFn^Jtgz{r;;_bfneZoV@{6OvcQ7P$zfX&JB|HKCUWEiO^h3Uyt>Q{ z-tyVIzg=W-4_r=bpZwTos|_$y$)N0?vs8FZn`9P#h3|SUd_n(|UMO1lkK0!b1jgjx zEw|iKS!{G^jqfl1!mpIfT^gA$U}3j-I<5k8XuV`|-}8fTVvYi?7| zn@pt=O57hke2q`My6#>?!r4P=x=jKOVtXZ|Ht+Td0cwdI!maS|{ zV#`{}pbC(!X(Ka7B5GrSb=gz8v`W)6&gY(gxpdah&`@nmc_y&%dDrgU?bTObt;A^U z$q^XRP52TF$q;i9n1x$Mt-ANX{{6N5j#KPjc=Nk^AA0baf+;>B@6eXdeuImF-trsV zZ{51JZP~n~0+(p95j93BZj21Po$!*%=(eU`Cld*aWXlpKdZXjm7bT$$3K zz!$`6?u{$KwU+E`F}pwjnd>>kCrZod;KXyZUA2}o0t}20v8*M=N5rmjN9K2-Bt zVyEy3>I)YL1I}?@;~e^pffa$5SC8a%V|9QBSI339Sz`p2j3IMo5cT^+knIRb!N7&U zfhgD@5CGqplHe<0!~)FK@&1i=1Plm>Dpg5a+EWSxe>$g>jWJq1nUn6X<|J1y@b`jvUi#VN<^6cs#k+{#%A?v(;^ss$%F;Kq11u#3A`K^SR- zh|=2moYUoZeWC%EB?9I!_CNOJ0E0`0*&22*5G*P*&D`6roE>Th4;`*D?W^rXlxl>` z`T6a9?nC?56*EFAD>Qw38`<*{ZRFaHw*9WJwk4qp7kIhMSv1+-U`eP^7Ah|UcZ{`{ zU-hL2<&XxpoICt6s1PtXaQC^6(}|En3!dR*5Bl;M-r(8@1X=KP5pn)wG6;TR(rGi9_3Jkj&1=s~doD`euD=vFJaPKhtm(V5elxxL&EEsVj&L^*7~@Rn zzZ~xHoiPq@CMz}IA26w1>+AO^kzI^!Q>Ba57Fy$MGZ?!8!ny3(85dZgU)j~cce$l# zu7CW-n2pt+mMQe*DuNFg{}c~I-607zy`IlM^M-e4Zgcn;Am!WzW)+lVMCWsFQ#qybv%c1J)#{aP(NY`pv>3gr zX#y_;32%}K-UV3D0{My;JokU}8pu)i4#w{)V=3>2sVSLN0gJTD3$dHGIrn+0dQh%y z?Qp9T7VO?F)9Sr;Ne&;AKUMXR=fE0190TTvFtjvSbLbk#&l+3ltbsi4MzQZ@sTh%+ zFNe#~7R)R5%X|j!*77pIWvUr=@X3K@yt(YItWET)bdPZ=8|B>I^Jz1Xs`I&5a!R6W z>wNOyi+nEQGV+0gJq4}8aSzILc*=z9b8vaaKQ!*2&w?x^4?@diJY7xCadOE{M~NLj zJ`(3KPFC)3(?esCYga>im(us?a}%`|@@jq(0C5fWd0~{!4BVCeE{-v}GPwgO2AE^4Zqv0=u#Yk%XyJowVy$*a}%fA3XTH27ggbdT~gcO3=e%WH1LZaxC8o7;~Yt8;p+9UsuY(->_~? zTf2HyTNpjS)>;`j%$+rNYEJ=n%(OD-U2Gw`sFsFAE|XKGNAtPti7EQ7O0$fUKBhZ3 z-Hhyw&g6~*N|vK_PB;4Z&N)y;Qo5?%Rf+UXLIaTEBY}4Ez!HM}aTHwRp((gfQ3XHj zJ9Zm@j>ev`iQ1{~fd0U2;zHju!td|_p5}xfJ66(RIxTsg3l5CUrP75{>iv;No@~!O z_q8@295@-L>{EIx_i<8sn=|UTD>@ck$R4_bv%NUFZ&q+}{-P=l>wDQLvx}Zwsy769 zybm2d+$P3@>(Jx5I@cYHE>=I52zWPM`VXH7&ewP39A?NxCV~^*1XJT2%+c5mA08_E z&;9h25@vg{kW2KB>~k$w3fwr%vt!4e32j!J`A0|RkD?0!{w-TJ#hF@Jx`pk?iF6sx zy0vS|5vK>(>1;~b|9)(4?2Su;hCTQRb^>mK8Y)Z4Hn3(xvMVaU8QQR9j*Z=AlG*92 zCu_)QP!OC{a*a$YND=zdp@1KGz~SzdR8#v2BB`H%E+d<}8A?A6*8g z6p-~dj`hK8gw|l^*U_n?OSEau#tSaWt_aD>Yz5y+$p&i7yo{$_^{;Qx*3U-Ixbu64 zRRc4&V#s`>Z@()gBn;64r95+fuRJgxrKX;VjansSBq~8eIV%?;q9xqW+}t_Ww~<|cryV$Zyxs7w-)Psb67BA5Y0%;3t?R2Af*@sB zpc62#(=V8y1LH0n1&R#XzNDcmma0_9cP>KQ+$jt~(ONTQSW4E0jvi}&>Q8)s?G3>!z2))^fX3c3{UsU zYAcN^T5_yh#$*Rv*-3Cfh~Qw~_-`wln9Ke4;=rdmwU2y1Xvm&%)KKY(ps1r6gn_!kP zqAhr*ld6xr`r6%#^_d*kMeWcY8ir#qTD4_O;M9+ZLeF3{Fm5V9nD)StJfVARga|)) zoD+_o3QHM>0B@hSs-3>kQAb*3Y;MOJ^eCG0Or3q6v4oleyEuUvr_$!y zRP&tbx5(qU3)APk@ayc_NbFSP!Kv|+RThq4xc!a_JQtm`YSoIgH>0xRXc)bNBUu7| zzUQ=XW@~MIWFyDAg6buwJ5QTMfA92SzTl;5grT{7#p25D*_~On0i)kN0vFb)a{YRl&u9=W2Fv(Rsn9pbxUEOxa_WB;Z z&@<=&ufr3^b3^D}kO5!&4&KnU{@KrTo_4N;=N+xc;YM>SR;;Y?bF9G#90W21bnATk zz`Vv5d8*VLEG&uPIO8ugAo0QWARv-k-t1>|Z?_0$D7H{7(X+7K8iyCQG` zhmuLTGThQXfx&N8Ach|wT<@ybUSjrC~KmYLu+rHh0+lCk)2nS;# zh9@6+q3zvsuwA#k9~VTJV!kIIe>vYDZa3Y$tpqZK=<@TGx zY#c5nmNVK1KKRl0+>1NfcfaSJGB6OnNaR2NxnF6IKKXom*W2zafm93}LjB-}KHgq> zc~_k0TS_nxdW7PKfBU}n!b`j2z~5R*fK*~Yec<1Hq&@NE3+Q{y!#sQZnzCLnb03$ z>%vT4qL$#t*&i6=6r56XOeH(aC^P}(!y`k(?a=;15qj5h&sZHB;@QXUf4Uvqd!%iQ zLbb8Nnej6vaK^{ZW2S(_EB7xV1i~I2pzB3-{Qz=n` zuYbn~p3%;X<^CwonK5F^a5B*RHge!_JA3MMTf97mQ4G2z%ldH#&pq;DJF@?HyZNr| z5ok6#(Z|*H{G+e5kt1X6x?8rCK@1kwnNFNMQ%aLia={~oaq8UZcJA+f!`XH%dVWd9 zKbmo#ix9GoKXbbDL+$M4qwVa8Pe!PmXq&ffiZVUd&Wz^!D=)YGFMYJ_3BRn}yea~H zZ9B2!e`)(pNBCX-D{bt+>uvijTZ>Ob0x8}Hzx-r-;p?xqcfRYM%5G4~6zvlaKGzQK z8*10zur=_G@TK4))Si9p>+Q(FqY;kR6~rna9edlRjjP(a4I8SQ zmV^FlAO1vp;l!_L&!B%q=SeXi%c`!4Lj+``XuDY43gS zJ3@DTQx*=({a<{dUCzAc%%5H5gXo6>I(y=D@E&?7h1(4WJTpFWs$GhLxBi*&&v^BI za?JU#QM5}J6@75d7zRfU9uFO#ZmZYFu#I6T5_}Za%Dvth|jcbdhDqs;qVv-ss^Po?qc;L48 z)r0NWp^>)rrp@K3k!2LnXMXof?TygM-EX_4cwMAeDc^nfKiLi*8E)5Y-B^KwDr1d& zJ2{&17-wV@rO227r-?i_89BhPa|9#a;t-v6-lyQ*!Udg2@mOAtA5$4Yj*~mSC(lO4 zMypapwkuPuKD0j;+LaYv8pR2|*5j^;!~O7MPqd>)kJkwY?&k!m3i|AQ_qR9p>@Rxb zY%3ur$3FOTzuumE{A=OIttAH+#YlAw+UPOzfkC8-qGxOczs^n=rxH!&+TRF_oIGjc z&U0nF7~kOgap$1s`?(ndp7!GOoH`SE6+Tg&WR1Jy;TR4RXJiWkhxrTZ`;uaT0|!bV ztTqFrD}r0b+KJH4rE{0s+{JUtIk1kHvGddePqqC!_qVM#ZmDPB#W-Gg=%x0?D|_4Z zw{Clro*8>z`q+c*z^>@Wt!vBSZt>C3;n2~M3fwJSytKwA_{SJLaXP#azSyu~RefhO zFPX;Af9}DyTffn#TFxLYGn+x(02?o2H!)^e=RcZT-&f_WtA#V z4{l`O$HT`AcZMyw*@Jgi+h}COnegqR*>ht|X8cz<0Mpv>@v(L`4$qSLjxiGa5ipq6 zhK|!Om)nv>oB|xyY4OCF3vK+YU85J2)5vra2z}t;$J@c^o+W{&pq1<^ahIz3ax( zdp+oPtvz`Eb7e2lvjb-m1Aq04&$Qh;4z}xW+7y{6P~oJ5`RxyW_Y2W4`$`VmU`>^v z>(lprwe8+>pl#W-wh|BQD028`Kk!R!=-60$+gtBw+qP{9?^%0%rTvSa`PJAurHo-?{o&_<7{ysY-5Kw>9mDMy^h0cu%(Ho_e(%I&duT*;@3>_8|8j`Ra3Rf9!l4Qm-Anig#O z@_kPgJa4<}hPp4_PL=R0)AofoF70Pw4??rbBYW1+(}k*SgeJ-hqZLoc?&2S;LGM($1NcF%p~OV38$ zhJFUlc3z(OgO7bRa$_j=*ruARy>nJ9U*7)FKl(TA(a_3w#J?zqTd*L%|K#8Pr|t2l zUu^Gv*IPm#S8EJx`CY;L{{4pwKKO#IPj0>R^6Qz~q4vJ-cu(0$oK!x{tGjl$vA}WL zrcI^4=xe^f!%sfh_8mM}!Fu%Igal6aNNjl3nA^5)2_42J3V-pRKL3RW+Z%6$PGUEP zcnYR`jQc+OPy`lo-W z=;Krze!j*-4?NRefBB7eSNx`4t$aC7`kp`3;hy&X_rD)}zpbvXe)X&E$AA3C+rg1t z#V{N;QB1@~kP!xiC1m){(G`Aoae(aAeL@bkIH%w9Msmyk^ryj-s{YrK7$SdU;~R-C5p?E?AUQ!;ikjI43-=zBFe&aB25p--WUq@2aP%~!@6I9o6W^A07TeW|d|^r7@6@B5wiTZY3kIT&k< zWrAeDk`u$Y2>meI7Tue+L?PXiws$ASU*I{XE=$p}+PBddi<9U-T$)pR^x*N*gq39P z-W;Rd!*Pj_NxkR)(n#-eZ2Mc=(_gE%3+jyarWe!VTYqOdf9uQBrft78Z8bM(|E?It z7pBwC|E=l7?O&a?@A}n_JZ#_krs>klzc9Ua;p+6z_y67L$?bwJV?LeHZHpyci{U}& znLmv_PMwX>9Xb@9r1*ITxYQF1E=a}2@%@y8!e{i3I9n)byw@;u&vyKjB#TcMlqV|Y|F*8HR+M~+na z&*{=|f)*%F6k+s-qsn-iX$7xv7&`(V{AsroWutAIW5igf%QjSkZ2G=&{ie2+Q@b>d zoxM|y#Mp0}^GzvHC=Bh<28$(*m7Y7|Q2wIG!<%{5+|mXB(nf(E0YRfuMhF=!;f(fo z?S{2+(4z1+Z7jU;0@#|{BnYuK_|o^Yk!v@unUiY4mB^wP@b~lmYMhnxjJJF@O#q$+ z1yXqB7@5G4#z$zSk$py2>KUUFBe2laVa?5Z+$vP5rt5Xtry()5j-+}$pn%sN&wO6KNCyuwh(r+2y z-+cC))8QCZR&2c=r*2tfw*JeM!Eb2beiSr=pWGk|+U6X7w+##J?>+o=Uj|P4lhdd9 zb4EGL^-s^@Ti9l4qz`g5$QB1mGdk;84nO{)r^q3JRdjZL$rv$Ew~=JBQfj>v;+xSk z7Jsr|t7DO<$Mm+hzd5w?ppMBcsm(d>+z~XKrmubd+3B@7N{~sOKYZZf^7M^6 z*QXV$OtrCMvaF5Og&iBsoLsh%Hj@<&^Ew5R={VaK8Eg>rasLHQLg;+o{uuYc?a5Q8 zf`8c|%R>JG_IFx-vlT-pm5;0A#BASE-S792!$$(!G3Y>!Iab6uf-f|wEyM9QZEplf zI6!!L4hSrdoW2|VwSI+lbEM2J4-Ek#pFkL<3i-YsT1ca5AMY7F!jNp2RXVa@@KI!m>^LK_ z)2GgqzjkbwnJ}DNGG@`D@Na0lgBFoMdDNBQ0Be-vhmFYT1y96g?t@zC@ z*}iQ@=xO8hsZV^mZ4ppX)}hy4tK5~LG<03)FjbHB97fjL?ATf0()Ozcc?2CT=(c71 zru2C@pn}HmtepY^wOetW(bfnu#L1Fwx z*yKB5q<@ru4dS%PI|D9pexsy06H-qYR-7y_=V(Yb(Pn~_@Dkbd$w;UJmwM`e#JGSD zWh={dWz>PFk(2A`H>bd%->p1H9hu-nAf!1+q z+n^PPJ{Jvs=DK@m;B}$3@H{-#VPGWXr?NQ`q6D2PaD(DDf5f6IWAQMCi3qm7v_1Kc z@G@#+6ir{XF5M_BlueKip=M6nXy3)Z^e^taz5268v}HJ?4Jp?<1meBBKR?~Ndn`Em zOxxQ1H3R1xXa3}L>E5>@@SctFmwHeCm(y!!)=g{oeQesjX2W#rMx5L0d(yV8(~bLA zr;TglSOl(wJ2(?wU?Keu{LlsZfI9-VjmSTO-^j*HJEgmv@Gc6eoJNWB-nlbpr~MJK zbJ>htBUzqn8c-a1qkPhq@s&vB7D{9H&S}T4ou%({=Px$(&FGM5>DjX}D5AWt1qYPr zm8Pg)8xCv?eg@XbD0R~iC<{iC`b%HI_|ap>$_JY^ZEI?^(OE)WpREvzmxrOxiq9)S zoVE`k?-^{wzS_<|+lJw#V0 zwsWomV{1gXPVVT7_v(O^4>|ehi!;hejWL{i6nhs!%==^lgU;NlIrWP(Oil=}2y~GT zWE?s*iUYo!0}ibbHRPX z)4a-A0lz%zvEK6=4S_xWQWs~`JEjLPY~aWONp(`m^~go*4s;uv;25pV+i;CVU(OZw z?kQLBL(r-7zCyp8EV2$>>j<|^oH*Bl-}K4ZBMsGUhqC6A0aDqRKL+A}>B8LF7#QXT z(mMhRE0#x==Y4&)%~OLHIXS6#QhDT$;Nk1E21dE2tzg2i;_O<7q*Fgqj{W92Mi#=; zO8jY?AJ1A0iIH!84YYXj#K~q5L1J}foaM^1&=lOQiv!rXxcQB*^T2c`{Q)NPK(Ac7 zI$bil9iHrt9uK5eTQA^7jY^~O9nniWY|o|-mn^as*{1X4dxJ^(mwurg&QfVSI1yYG zcwC^m(iFlY!?hUAj_TVi8ihwfGF4(4_n7V9$(TAblOxxoouVB^`YqCCCW%a#Z0g1}0Tq2)1xtz-$o=JPOgKqCMr2K&g`*cP6MF$-`e55wT!Yi%Qp+9g6 zU-%7QIPjfpN10}obKyyFvwau-V-Fi}VymDzQyl1LYkZI?0!Wk?f96(j#ZMapXp1{H zTs_(fFP=vu+6TW^7W6*6_^p3E_0&@hz*#&FuM4K)*>67k$B%G- zS3BIl{p;_YmaH5K>s$;243AL&8&Dw|QD7>BK^QQse7BVahCq??O20Mo0(1=7RGJ82 z!ciF?`OxR5z59pJ|CO(PW$I!ysjKOA3kC|p;rKA%A^T309idGKh@vypB4UP;5AjgE zm`xfo0ob`O5rY5y-~Z>+kN?O!^8Sd38eP*~jE89voqkf_`mUcCOPkzhXmYr^a90Rg z`$NeKu;5&$yY}jJWdw(aZ4@qLI7HZnv6=7bCuRUIf_~@DU2WTu zV@G?xfq;~SQM9GZk!Kwi#KQdA3qF*VHhIn`huilG1Chuum39$&QWecVGVjYX4B>(2 zmAY1=lJIp+ch8$_3MHFXH zw$L4;=|NMwzzMBTFqGKl@SZ({x9!{!nh>$S6rST04#$nNUA_v;YSadX;24aBu4BO6 z8H=VIJ9fGeQ={-wsPXQYn>^-(Em;)YEZ`kaF#LzZ5WY?yT4uicO=h4Wb0g7K-^)?l zVv910AS>Ur z0*cM_hv%MqrP&)Cto$pU$OP@9^wbSLWr~tH<7)7>`*jq1o&7fq83w<9c}^LORWxr-y8s4_L=9RmzP!s-?)6O^@9eZ-J^7g_rOe9c!yD|pSScsGJzpl*v-6FoN~CqliW>- z`F{A^>1kv1kAfM?j3)dAB9+&9Ctzy5AQO(QLF+y^tCL*9G-GE1?-|t%{K&HvV zhkxf|)5DMMP20v|S7^cW+Q>vIIj4Q)30X3+S88jeJb{?X-`Y9pM`VE&>;-Nb$cQ~* z)Dmrh*FXQw-<#h0mN%B}$u0prwt)HDGV;LALRAk8zXn&SvH^an{_r3xsXK}U&t#kt zVel^x1g^?duV+6Ro9&Uu_7)ywn32_htEtMIZJAH-f==MYO3PihC;e5Pd;T~_bUOND zk8sGy0{V@9VDo(V4?Z^i_>aCjx@W8$KL%dnxUC7_qO-^#GF~_^;D)RYB2wqJVj#aE`6UOG6PJZ1aBvF|ebRA0M5-J<(-e(P`>Sq=@# zg0l_;hxbNk$P^Y1yfz6uknv;t+co7iI#d>b;23>*^3?HZ)5h&-t3V4_-K*Z%uxY*I z!SG3F@!DAV-Si8jLQhCZX3Gd-$?V_+qOBQ^WV0jOQF)`@BL`1T4?VoU`l&jqa+d=c zyE1L&aFdmG_7DK+8a=7k;WxQp%^86enGhDKW2?|@GQup{ck9;mPEmUQ`~NWaHrAfO z_k!=}2wf35^d=d^UV%?#kR_aCaCdJ_YzIy^x!0+6A%5`OzI{h+7jufy%d_8nY1+Ac zOZ!5eN8ELQjZO}WSLOux%|;@-1jMxoEy;@O^}NJKz?XHFrOo&1?z8Z19GSp#5Y9S|0;?GSc!rbYP&!G(U8y z{Ji|i;q+l$>8$=vaKZNX-KS@@U0d*`&+bDX+Q%QtbAU140Q;*~FIR6F6(?KpJDdL- z-*_cBv$S2eV4;?RbZsstE2+D=#@G^35V(0(#h5$qUMT3n$(>4{p-5jMtS z7pNha2r{tJ`5Xcc%3|E+@_nNsanhiNuRU5*2Va2ZrXA#tRm zbQy*zP`km_k*__#!}FNM{b6V_WEf`s`bQ3PC}Z>lp9G}#l)2L{^-9M9FZg!O2UzKi z5f7&hGmzCcpJ_&f+c*VF)Wv!0=vA$UyqmKR2JTM3>of#z&QaHjDwH7!7gewvJ$}5S z#DoDQq&~vHmRO4Jf?j(j;gZ=Rx?i zWYu2?JpNWFPqxOr2#qV#*|R67<@^7g>7C#AfoV+y-GfC3r*%*K>(g6*M_pZ_<1VfyJm_m`(1dGpKRhd3{V-B5ItArKI}f<{hzx`Mw|_M6g_ zYm9s}L(rj72mBgAMBDnr;CS@0$EG*D@eR|K7-Fj}pd@ILL;4;ALDtHP3n_m4A9|=M zOALr}=PpdA%&m=KM4?+*)%7Kz2aDX8qtBq0Jt8eikc$<*G(5SC0}G%FBGa6q3o%-4 zv2-$JDp&v3Z`j!OcLAEv?)EtO1ani`XTk)G?>y02Za1K#nj&c&j7|!TL2MMI3#9~a z6f%Q=vEY@CIt52Y^3b?+!!0qWd}oMvMd*}|mKhH>Z;UNc$}>Z3M7D(Ya)0r%$h;V3 z_*uI{SQsMckM`@8E3ZzvHW}9BgF!hvCtHAmtuY5swY{Ts=^J>@dJ&Gvb)WhwFgnuz{fy4fCtR*edpU#v zz?Kr&@Lp4s!x!MA4;K0|@WA1}90%`ePSbSIJ{br;o?|C*XbaOEm80QhPMG%ME3_?; zQToVfF0z%Xjd-C|c+vlnX@qxTqlKTqYwojhI8`S?0|tN`(o&5Yua7fIe?I)^foaFq z?M-PWkHD=X<*8q~Y{(H1LXTr4n?BX|HLKU9j0E=w_Uw!T1WG?Vb^XB=}4|rwm z+UVlDru_w0p*88XUED2gyg?_EHR;QW@YX5;zQ8!uw+|4(o*~cBi2#gLa%IU7bBxD~ z7!I7Gf%0ErpU=R*3mxWJcqK+X2af1jf6tsf6a9U@bt>BdU&?@^&Iivyws3YmVq{Zr z$1?)YWT0|6f7&wJ8meX=71^R=K~K)Lfh~awvXQ?5w&GCal+^RC%aLdMOkm~H!Dpd2h7D)*U8dfJE=FgL zyx>52Ebl{+`<&=z&lLXmTBm-JYt{k)YxM4(a;1Me%F8K4&|!X$t;_z^7uURZ{P?ly zbR1u}b&U=tE5T0?SH_9&rkvnc-_b-fh8E!DJwa-L6zu_HxOcxcM`T6=p6L(%B||(9 zXAQ^%Ea>*q)QaZr4SW| zeh8WoIqK+F?n|>^0EsSH&`Bz+d2tkU(?r4)7*mQd1@jX>^3E{9SZ!Gy2#S-2h}xh0 zCTJ)JOg9W5DOe*MtzI1_Y#41us3}y$<~IgWF8KWHPyWyVs&2$+2bjK=-^Qj%4^$BK;TBrOT`R*Bg zZ@+S^T0;@XI8E8+D0$EKw4@PDky5|awINEQ3YPFLF!ESFC;??UN4oT1I02LHg2x+wEDC5<&nTB%3);$Zs10+d(J1gqXkB~Idu9sw%v(R z$jKm7m(Ys?FnT3M}OH!6P-tzW0l?SBOf)}H}o{9KP)LPVVR)pRm5E&c-R&(SL&EZLc z*xXSLrur@9WfVLG*Qk8ru>);`dxsAnuA%X!H@$Is;)y4VQ^H?b`h?ag@;yS1LWJIs>COT1IgzaLLf-Y%=)BDGM3l zdFHv`3>-5I7`ocwH%DOmuI;5aqW}zQ@??3+=)CboyAJt&ch&)$C8k(c9;SPKsI`Gi6@8P{;r1$Ez z$%?&X*O@b?tNaC(>J_V|%_+x9tJ-0U7qF0Z0p67-`QIF0fjPL4 zjievpqTo>fhJ5KZP5CWtTPBo%(#TArBRHFZQ~J)4h*Zfn^6$ZP>$=g7l#^56n{FDb zO*^Vr@;QPg9B#(D_hy+nL6qA@W^}^+sw%Xxfi{ljVt3obq;p=scqVXo@xvhf7V?=Pm$B< zhoBtCOzJ%SS(?}1w(^hm8T{LgX;Yktjd81`RCS0qWH=5lH zATpDqfA@Z_ah_%DNX?gxbg}(?``h1I8M1t#Y&6G#*u7_G>%h)}r05ejp@+jqk4`6I zIET_Jr_$Isc;>LKE1iI)ww39PBfp<|>WOKmEU)z0$h+0%%SVCZsWYeQ=+HeK z0gh}ijS*cm*hc5(Kvx}QPCw9sOcyY+=;Ye8fsJCMd*urHD}4%=b0Dvo=xaov!D=&hS>AQDaUbTH6%o zY{lxakeF-e-ZSQNKmF9x>1S{l`9#LkS$GI9u+7e$JJV12d-|CJecxIQ;8sNIW9sMV zamw*48;(swKO8xFBr<4BT~PK2YFgF&dg1GYuPdov0}Vh3(C*l_F?x8&d9)(6o!l7q z;E*lgbdh5loCw&+MA4qjn>Xfvjz4~i?hgITThNXyiAb5euU@qI#2X*!^LjmW>Byo3 zCxZx5`tgJSTInbKtUa5)>Z5Y)BhRMC3v4`t1>}$QA!N=7%E^e>zkg3@%sXK2L`&PZ zZ4EsSJ~4W&ujZuN3XhDZtM$X~AllEqxAJ^5Z18YSwj5g3MsP5?O&*~|d?VmN26^8z zShcnRp3Hr9xK6L>JK9m_OfTSt=Vm*V9ee5W#p&x`ec^j4<==VC4)@7(M@zttd2R-w z3YZAWC#GhAFwP;d3N5?^__it$rRV$_4KA`m`Wr&zqKidNlmlc!k}?Pj2E!|_yi!Bl zJSxIjJsfeVE0o$G#1+$>5T`B1ta^L$#M$Z8>GK__GdIp0DU6MX5T+3>ZN@BwvIx6H z7Z4f_Mreqs&!jGdE=@`wjCf0Lq4Wtjj>0kqVajHtXumX;Mz&Mh5M~@w(Zg$HI0gcz zM7_Nq0w(k+kP2#m%VEB(Yx?NQqLj&yB*3MBFsv}8@|5equn4=7$enz+2gaC_v8hj( zt7Ybz-<~0;2xtpt>5smZp;Iqm4JId!pQ!M2jqx+eN@?ov*H&2LMw#C}=WeA95Uo8i z-l|*|+S=Rsk8#u0!1K)Pl(wFHWxSd9!eP33{c77U-A2C%hFS4*svX@6Jv3XGNBJ=+ zl_|<-%MWS0H~!L~?fF>#xs^2*>hPuE0Ywh&CNRNmz*2*TA(2vp%iDJuA~6VqTY?hZ z5UzMY+x+Gb>54#tzDqOWym{{B7hjrQdg;~a@S&sA@ngpupz^$6kC9AxWi)7qbVP!e zBj<2W^jCWr|01a`z4X%bwXc1xDXZwud}(mRbKWz`hBhsJ!a>(Q?bQA&p|A6oE;hh3 z(^+{n-{F8#H$Ph6P&DI-V#A-5RvnSR#I6G6^9w}l{0)7jIG{s4dY2-%ynKjyqjD_mQJs*U!_ro_#C@7&uMtNO|S*5=C> zE`%0jzHllAy*U|d@Z|scuGnl=dYOsp;>eV-;6s8f$6d`1Uks5f!{che&e0;5K7OJ z=nTItz|%HHo>ixk;HkWtcN)P@N5}xM#;4^wFzR!@etQ(aJVT28+6{}vjroG>)88FC zcE-^@)nEhsF}RHqfg{61#=)Ii<~pyK)bJo|@Pe zxA>|tB5$;B*RC05h#?nQC9s80wYN@BK36Oq3qQh>L;Ko(hLI!R>1);JYT0Y4nP5&^4hQbRVD&P-bXtfQ5-+3+6C%^A{e@{Jt<#zwNp zA@o77mNrWBx*a;o7jW?DUG1i4=;xXCw38!j4{!6nQ+n)z$i|$eK&9E8`)t$?Ee%6F zXK0OXsQyS9>?gV^UrQ4lr}cHFVhg0bMjegLaW3JRF6JCIdjfv%gA1A)L1xa1_sDCo z>HN^NAFR-(EG9BnCJ!f0y#o<~Fau{`{@S5Kp^+j{ z>qZ+mykJJ&3Bn1ou2>ldNN_gtL_3t&&f(zB5(|k=&I`ww*wl%z5YU`vZuE{rNb#`>D|z=uj8qZmv)x;H7;smvT<=I1nCb%~oFU!j=fvWKg74BV zDXd{o2LL&TF@%v~V5I-rVbKMG(mYIkg(t=d1J!~E7|h6wHb}`DZ6A(Mj}!?<+UMEA zvv;*DpZV?5k{DVu6IatLJTuNg9~@`!aSa^O^1jnc`DI%vTYg=|@TtpcoE1LcN8ts| z`O&gCTIO$RgSMYOb+*d;!MoGog=5p-*_!`TSKimgJCwjeANrX(!3R9Rj-aBXZbyiZ z{lBAp@~)Q!CEO=;)~+6r!qUFBgL~>BfD5BsCj?KWO=G|F2h)}aTzgjj z8kU9FlxgMMG-=RJNfQMdeHx2>ne#au;DHk(9Y$e{0IXO$=Ja(DJ<2|^>Oquym0aMZ zq%Ce_P-LCp6TwXVYg&8gy@iApjr!^t!^%BM(sz8@8~Kl+s=tF*(fN4YJ#-&*9$`2+M(lHN=Vbrw1@G1F7&Xd0!e>kz-lk|P_zGpnmqZk|- zG^(TEMm}kGthu&J`_To1LMDj5;CG7#IRpXVlyT0GAp0z&$C+TXw7k4auE3?h37%Fi zo-J<%H+Zu$s5>zPI(Z&_a;WJ8Bibq_V^*z_vS|^nF*V5_SCvVxbdF$rxrz{vI?VS8He^LAO%T$LoDF+V0~|QE=tm8`p0(HG0R+-H~f+^Q=YSE>%vktMD9{jpHO44|ebBw>>@W_#4r8CYk84iwY1cH@ZlYJrxf{&Cxwq!#@BX|y< zWCLfE(?8S9)@@cC-x@f2#uP-s+hx%SHyViG6zW$8VWL0S69TPln|Wn?eN`45_|#^f zW9@-K`|MEbN8mv=EBeN_Y*KvWT{bQ|Lf`ZWJ>m`c6?nH}hPpx`d2U@%#+Dkqv7~9r zwvRPumkuK{=_xc}L0hZG!#!BwQ%*4ZV(a#;X)7H+QtImnlEG;=ys~3P`4{v2hT7Hi z2k^2(Dg)C8ylN_qX@s(43~tb|8{#~}1YWxl-tlAm_HCU$NG4p5EEFUZ2(aB3y={Tu z$~paA;C-LqN51+bU-0P2u-H&|XajwQj=NA>ek+HA?|n4K4kTaUgh<23%5w0b4Dg*k zd$#(XK%*=fuo&aaDe0}(s~9kWlM=FeGX`e-oIH8D zh9*VIc~~7~aXSY3jS#=I#-%a97DeH76~`MEoETB3&`XUfr*at>1cei^U?lZo9E8R& z@Ek!ur-d~|D*YGbtwT@<8cn=YhT@odx9J+WBjsi|GsA#k@Ls=Zo=g}#aJU*6n)|wH zl@uyz80Mu);W=9)loL<52rv-(geZkV*fSKv4iN;L&D0jyU_K`$_@_@`Q$yCf>hNC5@X4vT$sh@hbc7;hzy)L5sJjMrJE{l{a3xeIZmCn0 zFl8rgjM7mC_?`au&*cAaAB#UFQXTpxRMIxW1m4U~;)cMvxjzh$3Y=UcfCyY|=X~C~ zgP=4gNvt z&Y!zjWn+6B4#b1|U=>;pZEzSd)SO8`alug?N9~LQ73!O;K8@@+T8v@_0_7L=nf6OJ zTru6ec56Cy@@x&ovr^^*Z$|#6jT>T=Fkn(u;3l1n9IGR;Kx;;M@V$eAQZg8swZ_AXfC!79@BJC2HWgnYEA zqeJHYGaw=dT)Q8cson5{LJ@@G$U5a}LxXeSXD8#{168D@@^ah4do3YXd^hS485%s0 z0USlVU~ZggFJv31A1}(zz-NpU#iC0NfT;)^G}D4O*)e!$LkeVL6->44-wcfN?OqvO`CTOIl& zPxDTAuECbnuT2U87gLcM9LaC;k-YI;oufqzpdpKV_wDr{Ys&M;qTpN^z264rsq~SN zIIfbp^x`l&^|vxNJgaQq(Mr#h2WRH7dJfL(falo@_;Tqs}V zk=IAKQ?~y5geOi8*!NoKPEQMu=r}r25E>o00oP<&?UcMbx4}IDIvI3i)UYK4Z*rt= z{q~$w8yKXV+tvflfg>Hrc|P@+?}DZFl*iIh13uDE1M4(k{5* z5ZN;xb#9B}x%hr?muJZoumM8{nr`37!2H>khprVcsVx<~h^AJC|KX(iE3}ob#h;UG z!RsB{!9_ci3ty(Lamb}ckA4gMPmyKj zzRSdLZP+CA-}-eM`V4*UHz&eCiJ%o8H|LhkF*4YSuCAvcC`Yaeq=HR@x4|zQ`Hgqz zj0Sho$FcUsNK^KEmf4(63~4ld^~yEXnO81fsvSyKT8L0aq*Py7I<=Y7XQQ3$4RlCO zsJp4ic?Zo1B-Dn>-y8saHMX-UYj#o*cr?99-#S7Y__IX>pw6GWFrB+_zGYi68{dOB zMtrbHAI5YLb_m-4wsQ@JR&*ESkDVR;!9HS#b^1W)NBilT%KJQDeUMK9B&q4I(|%wD zM(DA0kvar>R;-GA4t;Wjz0YoxeI|{Z^Q0Z)AY;hJ`+<*vx#*?z6^(_mf$-DYK9B$JSN6^jyf;OQ^^o&2jhFsML^x(e0EZQOG_0@GJ;z4^HZUYRSHHeU6 z(x(x?FapbAuWm};$UihbWYchr@p5@6ZE{`UfV@Kwc!XoQ=mA+78qa-rCF@6kV%WWS zOopsE({@q9KguVAFN6nZTNzGY|N66St0{i*H>Z93_7%UJWGCL{h(G@LV{KCxZBE;r z-XqUAym$*fT$h2sPQnKQM>FlnGV3;;fq~Iz&*~Fe)F*Hi_^2P1``*)L!9WKYPbd1s zrx3-CYDVD#tPI8qP>{C*k8}h0?%cI=`s}B_{Kq=n^w4+h@!XeRneN@XH?3S229Jrp9)mgOwrh7{yj+y&8tR8U^%Ee&u&2i(O!Qi>zS;N)}NdZUjaMIgA!cwIXmu z$DH1?Ae)pBBx2F16!W^{ylAnNp)JU9bNWyJpT86(9Y)T{5VU9bJt=N!r@B15G79cq z42bKu!eke&MF6KgDU%{NapKf;_RN_)J4VW+#d*W_ zaV7GX&ls5If)PNN)+od3HLDtZ+_r1mw0-Bcg?SrBZPLa#Oq?eYkE3Ki%w4;8lp_dm zi}=)mO`k?;72}Y$$RlBF*G2ekg;U2V*8z!<$kL*8@?e$MgM8Ky%vonD_tgQGEW0yj zjzl<{t}vo$TQ+Y^ol9%*bb+E9!F$SW>VE_?bCbbDD0K0p)G-Sq4{q5u7NnSu<$qmD z^qmOfThkQ_kI?$*^Rz5NGp_{eAd)wuplS?h*MrWzH~KjCMGPK8%gdIeo(D1N(s$3y z^K5e*2^8)7U5Rq5XTNojb?E64Dg)$DYv^Ub=A6A~u2uf=wJi^E1b4 ztBiNQt4u>5`@?gh^tNY0Uss|)E&TC?PknVddG_>B@{Hniag3-e>ORr}Q-K&f*F-LQEUt?f}JCL`G`HlN486qPWX0l z=`n^t=najUD<_@K-m0R#zEch(YCcA=IgRGJGY%=yk@jf6-DNePwCl*h@E4lQaWgm? zhDW$0IAG{%uQEBqw!@)>XNPFc*dR~v24~wY3(JCI&!7&5lxGFeKKlEgsXWB%BEt+5 z^Xs<7kf6-0w;*M`qZzpmwhSG{dV`jsQKhPVcDnFBd~-Vd9`a|JPF*~^z#FZ;_u$Xr z8F2o#6FpYEX4u`0905PDIC${zbo9uv+*{jrZ{4~huz1i>7x#z3b$j~!XTK31S<<=fa+Qf;0cfq~2>(&H@j34rQ zc~dOA^^3JB0>7QRcBEaK+CNheHf-KdxGn~VoaVN5@9)TXPN##TIXkkmaZNrs^c{}P z;XHThcs{neCgCua?+12w(muh`0}qA%tp5??<#HQ}GxO8dQ1anKw?q z_3Q5|ob|KQoWcv79S4WuS{!g0JnlQmoiPu0(9DGkXXA`*s!qY5o&OtH2qGF7Q6D}> zFW-3Xr8)%k8k=tpvTfSBIr1^`BsivznxT~UoNyy`oNnZF(~ptDn7VXqL=R6GmCobc z?g|_~`ms;7U*3liZ6ESIx?%wi=(>E8@8E-18c2v!KaW=GE0}nnd~%>~a+rex9W(H2%f7$=Xr;=X#@TQN2fC8g}sz%_-6gO^&LeAM|~D>EL_uX@D$WCpwU6G+{a^R$bD1O-uG)C$y4J{ zJ{YnMnt77@1`pBYOrsWLGB5q&z|Jk{OF^Pc40xg4xp=#f8sN($ChJ! zB+s(#cE~ zKDEbve=K438U*XWSx(M1n9{A<<2$^edpl1(8NAH2`Nti^)pzw#0TQRhXbLBXazUs@ z7ZD5{))A?QGRCO6zE{p)ns#mrk%X{C{Wzac$+_i(G6|=8%FVXcBF+_H`9laJ!k@OJypmV`6KSQ` z9f(SOm}RaPQ6e~m=u>$$O2dfWWArg_x*BNUQ^O|Zc0OSajw1!6oGRkLuA{b5;L>9R zB&_Cq{KT2*$gvaY=iN9ZacVDI>U?9uMmsvnl=?9Mha1BYN*(pibqAq9NH9n|r#}rQ z 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¥8WzG^=&I+RU?$Kif9(LLl4t=T8f8l%tXO_n|DclSwRvYV1b z?68xZoE?wX>4vS_R4XrPFFgN3d+qhtYvSU2zxSiXYl2`i?)Xq5lRn^E;x{G#b%H`< z?v+^7i92U)8zY@J=ncU&IBlc`FV=jM&66k3wCA3C@w)-{w_iiR{Zl{nQ)S?f zA3s({9z1a1{`Tmjk3{Tl2Z5{G<`9XprBJS1nknO@bd7?*P?%4qjAExyIq94w1i>(v zxCAnc`N`k-QhVUxdy3&o!RDe|C~XYo?Br0p4&j$ko|7$)VRarPre(M|Jc!;8hVR)H z4y4^g@4x>*G2OXyXWK*!%xIj7G#I9|CStUd2?er#Q;bpiwf>P)fk`Q88)jKwZFWom zI-RkWgF-3kKjV_gA%Mms^T`$aI_x#Q4ZSwqdTONaKTm(DF;I5b8cC)@< zg!2v;HZ>A(SMZpB9H2W(@_oimiT0q#`{qEErHjHBj4}*g`~0(Q*WJ4V-|}{8 zda@jiGyBeBk-EO;nGaXFo^jSpeQ?M*Q|{yWpr^hMLzV+u3N4?@8SQ#DxD8yv@$)ag z(;m2YUt2liXt^l4d5H|>E)H)L3&+T3fdKq?+4P7(k2_b6AKX(yc+qG4P_yE>@VoL= zn*<$w<4D_mS05K=1#EbhL!fUkdlp^=Dy0DP&VcAEB+KU*xQs_2&1rV^-#Fs}UKz*5 z;hV{F)EFZ2<=8t;h4Gs)mi+Kql%PVA4NS7g;H50_FMMr?ynzRQdbWbY-_<9hd+hj` zwm}JY=uo)Bhk?O!W@82Vm4p~EE3u}W2ac4oIq=~DBeXV2wT#40{wy4Ojply3KnDER z{?ljLg9rB2J%#u50WZBYkdcWKF?XY#bMAKDN0$qP0{=B-xn}(PY_M za&&e2x9(QS`m%D|;7J06{u;^scKYRUV*KkB{Ruz5#!EM@M~-gi`_Kx1 z_h2eAl;7dA93;;Khny+pe~dm`F?+4sl~4WlXWEWEeO7=uxB-_shad3?( z&DUr2;~;YO@oPDvk$FK}ZMwLG9qam4pkGI31`)45`EuKJ-`+eI9T$gIQdY1--)0nb zjL_7@saj4#u4&|9_8=Ot%el`B^5XBXhT#@G_!>{4*Xh`Rv5XT8aMOeBeq>UAqU!-y z*Fhbp#%UIij=6Sywq#F#*8V9;H3PnS3@+EjdEHb__9uSz3vK(}tz{zx4R{Sr*@p`k z&lf)JU(^~{-wj}6V31{JXINR)Jtt{mjIF8l;z(V!Qu=d&}9!Q}9a$1=2Xs-^L7RGo$bbUW`rmx~wPFFa2f48DD{!kDv|X_w4`n zuYSIL&xhVqe29kljvb^Id}r)Kz(QUmRL$a{rGN&F;Tj*YHDnDR;Cs%$P0iRh!Qemq zr~gO$gWvywq651v(0ci$S3~bB6_9P-x~+KUuDkXJ!tih)HEReKaGQaJUrQPXyAQ{f zZ4gGE1(k61bHDV7cJJN03WsoRLo`7>nE8{4aV323IkG3IPv_IElIyqFo#2^`@=P67 zo4@JYB`e~aNV?~>DmM2EpL(`E_~<=VEn->6aC|5qki4eb@=2>4J^IVCfOYFOwp9t9 zZ>H}X=~J*-V~8xc-=>E2As*%%F3xv0nf+^j^Y67k_9K6==!yn6qdUX_aKASE%*Ty2 zZf1OXv!+z0>n_m+Png#ZR~U5+KtX@PF*s zv9jC#CZ{#V=plG<+4;v6N}{MZ;QQyX;$OUNvhLiu3++e$Uq9Y{ z;0Hcjd_)llcJW-lB9IVg~^K*2*2>ci{*3QckkV` zx!K?TTR++Exo2PPC7=S8Kd&$Tn6X-VqF?9jKl#;XN>&dXI8d7slC2?8Ne;zBr%s(J zdZU{c*?cK7^!7W4e$Rlrry9P4uTv*amO-)O_two@`ueyS7p!Z;3IfRJ6AlKBvXC)k z{ABnrwKL=F_Ba?jj9+V2qC5}?!Cb@aWt9zKu414FT$qM&CgGgK&6_sX?s+3&W==^t zx4GQoj9$#BkI9P{O8IiIHf~zie&~mPpdEPd-n!RLk;TM$$;R#3x4Uf}-&*I2Z`!=R zHp8GChM6_O#o%H<%x2yCWP)YoDuj`8s?tKnB??mMaT%9f1jdDN1)iK*!6+r;OmS_& zm6?!QR~lo{Hyi?IcgEmDAR@~tQ^+xxnZ1%*;;!9_(#=0t^hyO&lr!TcXe9`R`{0!m zU@UOTNyu0A?)RGI&VP1Trfmc(hOTA1!_GwzmHsSW*ln-}W6JOZ&OKO!PX^P=v&w7^ z9X{3tH=R*7lnkZG!SD>F$nXn7l^QDlrzkov^<5}!l&5VD?DOCMa(y>klp5v3Ig+U+ z@HU#+zGJ+2g`-iM(D4VObimNDWw?xYxH-VWgUbM@Kv%!-_-4!Ijm7)LpA1gM?mj^! zzN@nQ{L4=;O=Tz19;;y5zH6MBYhN~jPt!`6ttM?y7;W@wAO74)G}s4 zik;v&m4X+2fE#`mr42(egYFVkE)QK-MLt(XKD@@FCq~oHthML~a;&AiJs(+#JfV>w ziBX0p^oFD!NYOpvf#@B$pgXLOE@vs1>JOVVkumR_V0eV;CKQo>9ho}X-|Pn>BN&YdqDz%6I0`U(vk?Xxm6sI*^V1l^Sqd%2(9 znz`a+f~!?s1D}g;;h&Z1FAlQx%?X@T9x$+~V&G31GKX;3l^1?%MmJ-jcj$(m#OThI z--~JU->_Dmz`+~6$^j3ut1b6Pz|n^sh;<2gz~?aGc3LUgEg8tZStc z$TWT%bTa){GqD*D9`_PJYop{hxTwIrg-3Ir3LRIMENJn6IE`$jE&FVAeF10e2%FoJ zB^X1XHgolI;d~~}F1kpZONeaRvN?KlXYAm%O8kJ)h4;<)nq`t$mbjRlybwL-)Q)af z*c%lhl19b?(d@UN#ca#zQxl<`S(t*l{?*9=bFmeX%|TbzY;j~4-tn8A`8ks=?OI1^ z6H!5fb^FS2eMWOIz=I^O(qzY6;R~mGaPZI={)bs9bU;Jj393$?K2z-&-w=3n#Elz2 z-;4~=?MhzD!3>@H5}H06RHF*ojlpwxXyr(!KYiwSsU6#QwDAONt5>e>N!A4$B57;Z z+{I1^4r_Li4-$UlFq?5JxeOiY66fs;WG1H*Eau<%_VIe&7_`C8SlZzdC@LF$=%E7@ zP#_WBGb39|+t#fQF8Z2fFSghO#>&WU2HI9frs+d|3;8RXnF|k>yreJqP-;8KCNZYt zGWZIRIr8M(jHMaI3zL&o$tIX18}64JA?MSfp9G8hhs)>E8*EN^6MwQH=xLT1490|R zc*y0m(qc&o-|>G0#&9Ib$F9NaaIf*W1bsHeyl^o(^Nh{8E|$LByluSjqIwbxe6n*1 zECN_t6Pjz+`0xuK!UkNGAE7z(*;AZrt3tytQ%FwaULUoSBseLvCPUUw9 zYQrazrTj}9+ARyLW|0N^+hUu?~m?AMP$7D zeiHt8*wUKIq06Pn-PQEHC~!MXfZX}4Jo|d+?{Bh0=HMMY=vL!)k?F4AdUYcDlurz{ zP@CPyquwRV`7hdXJ~UsWk{h9q_kpJDBfFt(em-2g1n6Y8CsAjcO>6~x{4Kn7G(oru zQo*?2*(iL2f9Praf8fA_RkVpZ@8}uslgEyhKs5g*7qMXF<*358H zX6G2vMO7llk!1xOX`>X-8c@Pn+4(pQd>T%LojNNk9c49f{%mkU!FEHj|K8n&C&64f zQ5h6mS%*o0Yh#K#QG9XalrWXUpLWV2Cly|SM}Va~yRR3N;SP@SJ*WOUCnxu<-IOuM zKw@qQfGVS2*b$dOu;I_0INxSTY;GZW;W=Ftym=2OZBcL*KOjNENN|)vW~}hbs56|( zci!{R17*Z0ZT5ATh03jYHjY*l5uwEcQ&9*Uwo+tq-d*{rX2P_`h@zQnH%Cbs=&~p$ zxbXe<-Q%H0_$P|Sy(e~^tTtR9c;elaFd1DbFpE;o*qyyh!PPFNv+3`4f@*4=8SB`Zm7%9yh7(Y&TU|5yE8iq<_c|CGqzfgoIG(H6!jRvP<(J_8Mbz-7jn!FtS5qU$m zv?BoNGuu5V@B&{s?7^A7$pL*NV6Ly#x5v5WZ?7Rq~eS=|u9gVo`WKI3X9|1yZP4&DzqOQS^?BL37P!lyRv=Z znbJSO2?x(_>}&CHV69~2?KsB49ea!a*o~WcmkgPSGdEM+N9Lz5b{Xb!9Tw1NdVO~^KH|{&2^&3{{4N=n!aIQ zUz!BIeS3Gu`Q2RbA3Aif)>kS!CJRW`ZOF0;4hfB!#Ffz#d>cVFJI)t4m!Jmz=uYcg z!RSSv1#yBk{J@655x;>hsM2|KOWWv+Cu=r5@NIF#RWMHXxlWxvU2x+2+8{7}z5CGv zC9_`s#*_M#5Xbv`85N53N%@!g9UkahYkc`P`szBqFKu%#U0A_U@T(n3*oO|>6@Cc~ zW4C7KZd3{F<;!zb=DmC0zP2j3H70GE=_ePvcI~WoPM$bX_HpO-owW--9q9<&+BYTe zO-)~}goTM3v%??x(0eitdl9URtzS}0FTr2*4;}^Md^t<0=vjQMs&Hk-OZLlmNdJ5X zvV<2*I++Y(TktXXtXF>cvHPlB&+!5EN8bz+4G;sTep6`yUy`pj?UO7SmJpyTUy$s0 zc?LgMvNCPK>mT^&2Xh}?5dS{+gHvUf&yp3!!rr(S18&-|IRNy1S_E)@7rber>zpp* zrON_e>At+s?A`BrxbD$D+|}%97yzH)6@j>umDq?ONZ*^l+MXZmsMA>ZZ7Oy6jrdfs zNN)UX8BA>;o3Z`y4}X8zNU{Roo&WjQ9fAJlGoT%q!PWJXK-#9zCQVdnbej%$g`4mn zo;Pkw8(e?#PyFG+tNXg2-V;T}VB9r9lWX94$vgaJyaI9Xs1P&}bS$x)z78Kb)F#eO zRO0RN#~Yoc&uE~eu|U5U{+ zdGd5ScKmoTq4hm7vlJ2}%K$R&n0ZM8AqJhJS((Nt0?dton5br4Dr>7eHwH8eK)Fyh z1X)?#SPZpb)x`)}??egr(re5ar#yzqhDx$96oQPBSqwX=A31ucGMBv+BL?)ka^}Ug zF@nw0tPSKGR|$qbqL47MH73?yQ;v2%Bzzc|L5a$!><=fw=5jV2!`y?@<3-7bjq85S zFNdmv?6fantAM=4Na?kn$+&Z`K%g709uWARVU=yR=>(%* zKJXOM*Y$xX9xtBk8*6bAZN}Dpl)zGEsFcH`sZ2eCCq9CxD}?I^wA z#F(sIqEzs+qnS7_c$(A8cnakGjhD-r2(O|q1!f$@0~upE!@h%;+_#MJE#428Gja>? zsQR!855B}35+yR)wTpAcD-g@$f#q6Y?>y$!XXyJL0oMKNuc|)s5GBY-v)0l2(p6(C z!`~|-p9wSqM|YGR=j3=ARS1mK(st&QS)5)@Z){~8az94qFp$^$RP9SJFxhs!4jaYL zNCXIwg5zQbGNO%Mby10%$g06q7CCL=VE~hp%6P{qXAG3LVJS|+lHl8HymNKwf+e|m zQE-!n>-)MFKP~Wgm6+bN>*;iDT1D2#52tEy*ui3!%sWA_&Xt2LXcGwA(U+r-Zk(6y z09q!{kM?t%TU9!w-KF`SY)Hy5vLQlci)}J!hhC8bokgCsT@^F=hb}5>=pVA~9w#pV zNkC@o&QRt6;CH2i)=%LrIOTx!<6$mV*_+vkv9;?;&d$Zz<7Cm*9Dsr+PADT^!EtB? z|2@#@4jBI77{EX0!n+q*<2QJMM>xFqoE030r zf@h!UAC4;?uB6U_73m5dFEy>R3W+Ii0RVTIrzGMLUdeLV?fmb$lx zCh$a$mc5ab34O_t#5VdEk3@nXQW8z_@ccPTyd?9w4HB^7CHt3*ghpVIjO2hDi!stM z%5KYcMwdvqS}Ngh_|~6(1)PIJUUn&RLmsRZzFc+$ovc%j{$6ls!R#{~2HpW4^e^2L zy#XKAyh>o;HFR|>rnSm+D_$sFi4j64Ng9;{bE@?4KmrGSR9mXKqRa7vHK~&qr;4U@ ztLJU>M`xB#5gSWxFj!UKr1{dj-Xli>1IZ+b60`@4#4zX9?3USgfszRivvzPazHMuQ z{SE2kMmu=$P&;(+VBw2@v}gC8z-2bJFKdE(&q(YGvd%|t&F=EEiuMrzeZiMmMS2g; z;Ev6ttH_pd3FzU7?tnvm7Pj&~ct<;a*4{n4E9oLooQw`Z7dpHWlErx$dvN1;siJjo z4PL@%X;RtNv=5&Z*yLFOfUyXiTzCNOB@Wm!{9U_um;a!eDdU;ESXGBg$FGGZm9!XL z)6Sl?nP5x6y}hjo3`(o{8uXU2I4ai?1a{iY9^9xR*b+P$ftgk_yJ$Jg3WGrq!@qz# zN^j47BUp!s*SzBOah;EEkh_VGGfO?CXmR``aXt zWJphb#s5xwbR45Vr?5G2E0H_kl&|G`x)+=!uL)+!pJX`v!!v(g;K{eqmhWt0CP4FC zCC>tbaodp{UG;^pB@T>5pL_)PLf_)E8ixv*&QD-3rJ3(M55N2{xEq4Oo&eN#*RkUX zv`ye_jXdu@bGB`~bh%xOj-fv`R|V#(f3a5M&R`Mdnz@Tma#)mLAQoxfb)nce1t-~-PO zH~>>GskdXi<$%4?L`?beD{qz0^xc5_+pZzte(T^{?L!~>V3j~|RyeT;XLbagkDoYR z1U`E7L^0ylC~#|xF$d-sFbN_URERgD)yw(lh$!|DwF1^+vM7xZ&36nI2Ll6>e!Gwh zHk4tlSQ;48KBLZ|XUGw`A5+0$=#HFqPmZ4egUmXGckZmSH0{7VSEYvp)lQpA=9CFx zQpSNIadm~{Jj{!At}~-3c&*v({9ei{a4F;Eyy5W0ap+{C36MYq)0Ps5asZg;7+iut z@lkHtwP8wn(?s2qj&)FD=`#}oodk{%Iym#Y#DuY}PM}?zeZ_b%P034FNZsj>dE`8!H%E@q)Mq(@p({s^llLlGdF`LrllBEo zF<#+M>vo5k81NE&yE9TI6=aq23U<>EgB7e6tPDYoA>Wr{R!&xM5*!sCmh_T-FGiwo z(3hYrZRM7No3SXm`5cE2pQG>KSeZ$-raBw+e(n^^G-3%XR%Z67HEG{tA3`sd@s2chO7CZn4)+h_`l)h?LpvrORrTc== z6>V|GHg)k*zKcT|I^$Kmr(X)1F)z3nYrL3Fm7^(htBQ!UBWMSUzw5i;g)>bq(81Wt zVOe;Wupz5xp~1@9XS|hh4&KWl$a5pX$?A+7-vzPhDg2lh$B$FY7zG_gSMaTk(@7Ta zLw+vZgdZfZz%`WLk_mmS-LST1b~yCw)~_u`AD-w2aQ8%6oFfLVW-lfa?Zr@}uQ~@j z_@t|JMpn_1qm5PsWMm#FV<<7WF8aqa_NV|C2gr=kUkKXbffoZn}zWOCXU)JGF8iiZ*!}A2`V-hiuSY z6f4}ijGZ$;P6ZQ{IEakf@Q7o&Ca~kZ8hhGQwoKo00t6G}tP)bo&B_We62zw6!HK{- zWTx|hKf5!DPslYLLbsGoUC<{b->o~b90E3K%eKuGgkKQ=-I}lRe>1q8VzP zm(uxp&To>R_=kf+{;MoI{Oeh=rX75QH|g6-=;httt~%mxVO<5dOGgE60ks4L`5YW3 z0X6(BAMKm!4T*5}oQ$x~DmVn+PP(XoB{)jUX+JQ9@8N?EqwnxP#fS&!D0*6Z;HZRJ zY*{7XV$UQdE<`?t*&)x7SG%nXs04IqlabZ2KxX;q-_jr%uZ_H_R$OqDvqFXJnWj;6u>Md?+(b0&Z1(f{x{pH#=yXFd@T&ZGiV8W0YW$ zY#?7?qDSZ#!782?lscLX9&Scv&rVF#3_E)0%l(2kvf)q52vrTxpS3Y(U@`eH(3U=c zG&B`_xXiG1eby7b#*5DIV0n}oQ%Mj$RwWG2Uudhw*2bsY6dqXFHg4WpJal&ALg_hr zN$?InG-1cczL`O?VL4^}R{V6UpZ!kI;8JA@-`Z@bsvO_JIUa^r zi6%H3>;Zos+yYv^7d&~lcAI>I0k0a5&&KDTi@~!AIq?IZy(StmCT*(rPz{52__`9J zp|!Dh}1%K|*@1U!+sUJRqw*98<^XD%X-w$JCr%s+cRk(cc!3QhA=4-$C z=9{%{TauGsKxbOcYYgZD7ANm0yZ4f~f9IWp?c}KwRqY_*X3TVqpcw;9b0Uc_sY58*qQyH3Zx)FEHl?}rH{${)hK4%&e6EZ}=6a>Njh~x4M;^d3EhhnHrA)<86H1jbSYJ_B5syrsl z;b8lrw9r|Vvj4RvEzBc$GW%lv0HSk9%xHC|G0HzdglEkj_^xMVx-kQvp!)Qw)9w7Z zsrnuBy6QK~#Q6!lvd2n7%^Y$AZW{2IO&oI3?B!DqA^y&O^KGNh4lQ% zzzzX71z=XgB|w8uxUin9N&(ZC_6dlYQnQR4zi#X_)dQC*SA_bs!+{0w{PipC(#&*i zVo@_Wi!8(R{m=+Z=c{i`pv z7hgEs-Z~hEX7QS~az*fb{(QTV0CxVG^<#0mmDC3xFf6OT=uVXT)jk7uJv6wpIJ66o zbFwIC)_m&~Za}+z#;c#)xB!eUb$e2Dk+GgwVWT$o>i=$)w zwf-o)QdJBYniG4R) zG$GGs%dGdT;5+RyB!aBkBrE(yC)pL>H8!@gWJ98?)?bD9B+&%hjJc{8=+lRB8V9+W znHG#)3NGS!r5{IXm{sMN+zGy{wd0&}CdrY2Nie-Ad=3^)=cX+iW4PAEd6){_7MISl zRAc6n(+te0g*VM?;H%(~bIKXInqaQ4`RqsZoQ=a^Ced2Ekgr_}PE|YD%)Xu;C@N$75#m@H?2uiu;w=(zkHj=^fph@7$~6N8qTe zoKCwqb+OrT+h>6zcyPb*!6}{3k;2P@f||L`KV{Ek+_~LR?{Q+TCfL4IvzPR1!It*Q z=?Q%Wz`i3_exFOQe)e>Nl{05+#*s5Q8(uR`Gji63>(6-0iAtZw=DnQV;1{0zehB&7 z_n|46*qdOg@Sy_Acw986@?SinM4dh6aJrvNt=$-2=17vY&<##%#w>X2Yw*ISr4uBE zd-AncsNmdOkt;Becg`Z3vW0Mm4)6$f&=4?6A5LDlSWaLu0bLoHA-6S-jQwU{)u%wU zN;so`=rze#wq0;V4kUIrgnzErrlMwm(`RT7M}th$y8`YWtUAN`Qg}Z4EAUh@H&Aq# zdxC&tYW(;PFM16Qt%Q5un5>^I4HhYk)5R>0-1IXy$OewKcGLIWc@zftXvuZBQm3n*_ zWz@B#F1V_skP4ABFVL_)o358UCAXCjO}l)7fY$8G!>^l-{(!@81_!|}{;YOFlhbkL zZ4Smhv0Z|oGpEl~(5<9@GJZ}?cw|g`6F!PS1&_kXgAW}DTua)?6UR$e(syKpUgI~a z@T&KW6Yim;Y;XQX4|;HUaE^v(hYo`-8T>baA)28z+V+{t&@6l;q3W|Bm+YX6WW&C_ z`x21stt9pO^_$Z6jrRQWFQvW3rAsCJ&{|~}d(Kx8q+ONl3mh)@@Ks%9SJM{yRRu%% zu_pq0r4C)@vjm>gfE>Z39NjY+?l*ncf#1D*mA-*{{y>N_@V0S#Rw8%X)@`*(Yb5~E zH~mESNDxaH8IvTE&4=*~`6SEkgKJ45FLsNJ!Y}wG7|>QVySDMKB&y{W#^)*-qQ62nyv4uLuOJ+ZaD&$D z4!o%5QfZ(sFiV7d=-}Zt9{wG!EeX62e(#6A=_3t&nIICp+C`n8ZamuHr=p7sy!4p_ z4B7UXY}VKVJGki9{@qA)+PZ=hY}ztmhev&{X5`_5uj(Fc zVFqJWrA6K!eCWZpW9Rk^3GJ4&SL3(yBb+j2A_a_mTWzz^@Qi=h4^@*dzxql$aq?vG zG`=*mtxtX732?aIXZQfOwo2CXn|rmpYxmyv`Okgv_YAlfJd5wl>(v+Es1g%v5^mnS z-i{tUk^tmVJNV8!3Ao>m(&^b586a7WlOc+XNEgg5gc!&SF$c%hot3WK5RCI-w(8Tr z@kCdIAy9Zd&PE&uhR|$c?kS@bBhKj`j#=t!c9a6=o)B0mI0mB#Tx0o+i7}^*FD5Td z*IMl-Klg0S4x9N?ZZ6~2XCIN9uyz5$G_pV(i=N@_@O!8D1iTa-Bj_oH#F(gACDqF# z7@z;GCo3_*F?0`y#n|m&S+jp>*K8Drp{}$QE#5!>uB!r@4qERwpY_H0@D9(P``BlL z`&A_nvXGo9&Y%)B4lvx-n8sG8?>HJ!0A^V3+_6c<`djVosn+&9^gz3RY^J^Q%vahI zZ(eL?-Z|XPEZyGT{h|GB^V~#x`()Z&daIp&>vUVPXHVO(sArAQ3m$LXy4FsfzS2g< zmb9lo_i8&b5O(DfRTZAx4d{r6^AvJX!pM{&RD2 zq!L7MiY<${X2NlTmoJy| zp6?4kx!{$fw=0eER%O2}7c3@gKbt70ex-pkVusr%Qz z{E52PUmP^LXWiQM!MUB)9amw~w_6odZ{51Fjc<3XVVsZzxvN$x{k0SNs^D&I98|MA zW;^>jDUN*2s00T6e&u(*Rwa5$=N*4yBQ_DevxgT84C8F8{8%3N(axwnN2F(_rz%*t z`@IrG{aPz+R@~ADxZpJ43kimAJo#dcU%*etR-&@-xF~!%(+(Xv+KwDO(T<-y)6SfU zb31i8&RlfU(m3aVVJ^d3SUUJqdrl+qii{I}&)E8!7;< zs-QgUw@RXB{O-;FuuZ+#gqmdxe%uRA2_pO>0m2TznetHO|FZZs`;a!@e)dSooGILemT9yYpvBKu=y=tBQ_`7p4*@pUdx)rK1IbW^R-}3(&P~wvv)J!<%l(zJ2wR zUvJl)EuDMpQmnGZ%(kTr_|o_+d2n?*7uy)QCBwpI;kNxeoZJv<$2k_n_rO&Wg>~>k zzv(%6>pH)fD?C)Y2-773*zn%S$`!G7>)V!Xv2PnxYOJl~gDNDpu5hc&9363A+Tuv# zGZ#nStlSrW^Qj67(S}m;?qvp>GcCyie{i)(MU~AyGnOjLzc>{f=eMfVFgq3554=wI zko1tmM-TW=4e;B)@!34zlf!UHpTfC-n+{kXCsl43sl8nWF+IO#u11vE{&kjK~8_C)9JlkQ}n7{cj z|KUIUa`7X)@lniD4muIcL3IT^y(-7I(J7I8{4TLTR!kCbWK}FoCU7@HYnjlJ*oIrt zJA9yP@zH+r@BWiG(%VbcRL^uhlpaD~FmQYYzTmWD@tLy|?P}VbiT>pi*b$zOWz#Y^ zG0SOkqpCn|Cs2tj0E{F4Yajc~`YgFGNe}mzrrFBN2|i~l@OFC0*|X&7Lhy+1`|^Y} zYi$&@qBg6Oh#*7ok9H?doh%!Kx8aPg`4>O)E44fX+>k_vu{)KJT+mT|E1AfJwp};$ zwW#j#d+E8*lC5;naqbZ$S-1YkBagJ7`j@{@c0_5naf5}tN@CXpN1i8k*AuMh&)>sl zRjxrs^sjwM6a1u1-(^n$%Mo(aI2C4?vak)Wm7akDx21qnMqFe z3X8gOpJhchX`>&>&8GDms}jn2(RlRJpJ2bDgYujNkapQK!8jSW(WWIYmN>vy>Hpw` z4dUyg58k#Bt|Wz^srv!lr>6_-`{231`ak`>;wdlBXvYQreitvG9lKIKe`w10;RB%u z+|b={$T!f(a4(!Y;*ovf%l_;y{Kt|t-@A`&dCuRyM{jT?+9MA?lr~KC%@Nj1C>iExl-r{ubyP8#sLjW*1%Q z2+iN``aefL-(gp9R!nu_!ucTdN*swZZQ|^iwt35@${udrvbh``OkyS(BVZ`ZRm>EI z8<>MusBH0q(sQ5B2;{OpdqtGH_1aZd7{-phh_f9<7b44GDNi$V!;F-0MUj<5ns&_O zDN_QMl2DAPj74_FMgeCgCaR3mC4(!I+e^{AFbfcBwljjIP0T152P;1SBM$=T-3(%t z$;W_k_-w4Cyn7g1t@F)=>AD$!&z|uk9K$7pXNICSEaSwc-EwFbE{?WrH49W5hUKbq^ILQ6dUVgCB_nOsij{FFl?KI#m*S67 zh+)ZNQOa@tvcCAeuzmWeI zBLx?E<@ww5ar`cxYzME8w|jTT84mpL>!LiSFP>@BSC#d49M;7~zBm6ZdSBZ#9!FZW3 z95U=(xp1=a0H>UiLLY%aWxjE*Oh&Fni#Q2AsK8HnQ5micnEGs90?@!FBWn#G`r#{q zomqN3;38jm7O^>TW-CS$WY~Flad^~)$0evL$rHavVgMT`y|!6NevX_^wUZ}KS5OBQ zV-ZyOj6RGBrEENdEclM5{M~#jnImWe&mi9}Z3vECcY=dZu>J{#7)KFIofDn!%*JtH z0wfgx0RQw!L_t(6MuJCc2ei(GGPyLN1Eci*+EZQHgnZFA~ZCQw%{%1ArgG*0MD9Ng##GjO$mVlMj0#z%#$ z@R8s<2(RZjUdj|V3T{-L2$nO(^>HLPy>qiOmE>{OrR4*cFHg7Q$Bwqc?;K9ccPb$R zSA#6m8)SRXH*kq-%#zrd`Er7ki3D|CHu=H5r21xPoJVr6%y}HAv|-($Ap3gWuZRA# z>BDO}I@>iBSUBkPW;wd~jOJzV^D2iU?-l%MJh;T)_z_HWlcbWJaV2H_jVC=n*nq3E zoPyRKdiX%_zBzo{XXqI0nq`eMuf&)hmfRtek|L5BbRe#QpPJPSU3|v>lB|-9?x*W2 zFu_Z?I1cdX@7gUmJgHnR$gJRib0PTRpa`~49Xk{KGh6yrkZ8jk!JQ*t?z#K!TJx$* zmOWa(c74GwDeU4XdyX&+PL#jDxfx+zy^5s=3v8CnkMI^ga&iRThfq$li$3uJ@14+P zK|>L?(3YFw>>LG>s{hix3yQG8iys-$fG6=Sdt@EX%S~<+2pFl?- z=t5%&ctN#Uw{4p@w@vHTC*TeZ;_!_p@PKN%mVDi0m8 zY$neK=Mw*H0a-&uzggNQ!P*m?l9CDD(w78^su5LtF4ZYBbJ0;5FZ-<>bRJGcp|@;; zX_CYY?9zp*Ef<+aFSwxBm6)O>IQeg8AIUBFH*en3wvX>9Iam=}BiXEUUPX^RZCnzw zXuULn9ACjp@&(Uw(mgA2ZEp#E_#HpN^T`vZD!Ik}&}nckkRy|`;WfCicMSMkY+CVY z;Y`BlRs#Dg1?xat7aJoez!&<{?%<1hxsTk|c=8*%`c4o&KHh@@a^!g%xW4w?WKDCKjk;&q50@&0kZ&lO>`6)Vr?ab*+^F+rO{MpY2i5d5P`mrPcJiXMK-ezGKr}=!=&0Jze0XFM3}a z_+y}pagl+S60HC3>!n8yRD2+L#NN?&^ja-R3C(&8(<`3%7vxNkZSzg|K~sIX(p~YI z_knl71ZH?}{FdKcmHY^v@vIm4jL{{zas2r4YJXVsZwzoHAU5vV*?8B%CA}lDLf>k8 z+qP|0{tYjl?|OG>d+&SS)9$rEl=*!|TwY!}YR6r%o&|$rBuETWkad z0r$Ws_yfFtbCLG}-{5rm(C>GBN0*fUfj{)&+N{bhi^q>23$hor6Uu)g0FOQXc$FMb zGN(?RDMrU66gvW%;h1+8V31wApoUo13U@(SR)VH%7D24}dGy@}7G}H65Ou*CjgsFI z;%$pFW$l|802xt4r?~1kt_a2wMu~WbyBThObNDeoCb&4|jK%&thjQP&d+NxLVOPU4 z1nJNC^h=3i5WzcvF+;A@h0*alhsqe0!O~|8vK>v8sBhf3K7aRh7+!W>l{p4817|+N zxxH6nglgtI?Fn``57k-z%T0ly8^`)PFXt)}SiPHBSREzE$&&Gw0jE%Q?Au;rFrx$h z+T1I+tl5CjfpcP}osuxCHmv8neKW@PT9m`m6-{VV0brg_sMnm!ns6)1esww2ORi6~ z$*XbXoV!~=V+>l1YA^Y^)-EL|wFX#VYYD=IiOcQ!oj9lCW3eLE&`-B(BWv5%bvN4i zLzmn7#~*6DSAWZyv8f0pzU1n3J2ktu9e8+WJMmv0Ywg)|bvm!F=I!XYHWmG`etbh) zbm3GxaXtZ9f~8GkaUvGaw~3?Si$!B?=f(v4=Wevo9SOF#uW9phQ*C1668jTn&mj%X zGiDpMEM9!OGP}1II}bWRtDUEp$!0ssqtCXqrAn7VocRP}S2MnqF~A9|YLl$|+ym-3 zuz81nm(nvhqLgb>tc6)($StDFL%RyhnAuxLz;}jlbIFBDY5m;w(OJp(f zC~<=y1vusCKB^=<@5WY6k)#2Pt!)0vIJZzo0FyEa(ce!@rMHshsjz;8$ZPvyl}C-`PMt_or6b% z7m19(m-ZzF7z^^j@!;@Rsec7W!LzaDZ;q{?#g5=$QaUKe-gnn{B?GJccDFI8Lqy zm7>8h-r@)#Owf?~BdZyM~ZLB9S7f4IS;UWAM=_Ov>A+A@qq3jG@ke^GwC9>}1U1D}@ zZQrFF4#}k7>pgfAK;vJ3vr*S>*fml^xq7Yb zx_4*UFU}_Cwcv;Iw1MVym3BB>X1M3)t*JKCcDWo^gg`HJLTAn=Sy4Gh*3p-fs1oPl zcRg68(Ssu@pr8vX5D1TL-#Q+8gwBy0c<(w=FxY2|&9Ij4%2*(X&w)?Cf{)FpyO(@f z1I#}dW(Wne+F-N767A+4J`Da7AO)9#o5-A`NYN@+NmGI^?T|TP;PkZJ?)y%}5_{u2 z#@qYe_pWj_;kH*zD&K8Gu84%_bQOo`ehi;x*qH*C0=R z_ui|;B*??BfnizN6l6$3|JncIkJni2xc=H}Z?qSle=+jDvjSfI=~v~8N`ZbXSH=>Y z*Pafctt1Q^Q^}I_2M?+Uu0)@Z6FP*bQ8Z*L^bdZ= zj?o*IkqSQXu*xxh3>*uzB}%N@7m(BcKk)q@D&JZFd;a2uI+uB%100|iT)M}1Yylgg zeX?jz5WWasl|I-I+vvF=fi*m5hw=Bn`|++bB42okT^M}Z!4FrZ;5Ga$VLcrle16O3 zHo0?WJG6Iq`}$pbziG#-sw8ra*zk&1gNpX2{?s2Sn+ym10{0aE6__+3+~u0ez;{!Y~aqF zI|>&9YtO5w3mX;hT2^8b75ybJKk&i#6n^oBw%M;IpZsc#+Y$$|A<fcWf^rdcM{SMbHGBoRP}phY76D#+aCu zqecl(uA8HHDG-G9opp*}FmrIqxtURZRRS5s)8Atl(;%m|&QCmlzQ*J?ijE+;w*sQT zNBI0*vsT*5@0e2t4igb%vmXRRaAUo7!5)|$Ef#RgNE>IgVGLv6h{HH~cC$PC+$!Va zcwM`Cz1D&GZvJ}T@f9o-h`u97rAWc$Z}JkmBKkX;)=U6a6DS?2mS)s9`b z(Ux!A)mAR)$rSKipwX_{2 zJh^ITdwBij_VU+XZ*Lzt-_Fi1k27hl(OkQ7=6t)p?Y{Q#o^|cbP4C20$e?cve8 z+S1wSHhJ+VQIug$boaM4-b)gk zbJpR!2(qL*d>mQMFS$@|RzV!a8)u&!nZ4^XJC23uj+F+`l`-bHa)j+Fiaut>(rod) zHaM*ULCVV#3ng#(+ImF}4xZ{D&9uHwA0$k2VZndki+-vpk{%$=`T7{gVaHdl&R{k2Q|e;yBcm z_3c@F!96G0I5`xHWah);BhfF81GJ7iz=S_!b>sXqf=G~o7>hQXZ~EFBZ?$7F)|CV( zS;FhR>ZU4Xg2Qrf1B*lwBVx@p{Z$E)$bdwXFQ}=W z;WPBEUEecaN3Pj)32x0!O6Uo?EI+6uN1pP$P`C$WXwnkM&z6q0{!!puiP7+MC6B_N zrH9jp=k*6JPBjB>W4DPIbbDo#!ydV}^DG#MgWz8>g={H1R&Fd=iFX!{#MucxJI_v4 zz+_`0f7``;EP93mi%u$rRO(=|f+4VT65!Z4%nS>_IT(^E*RDIu|9Z_*>A%meksDU0y1$a$De7Tyg`C_6cx#zVuP<@4SW1o$qen#xJU*1XF=2 zIPrbKwtz!C$;pM|+1cv}Zm+hB=VPOzi@Ht>pG8J&dP!a+DU?s+ef)+WBm_9fG7o(@ zQSca^;pDSjW?|?9i4XjFBfndwr9H4oG?5v;N7?lNNI#KtGy68?yB2sPM%~Ysp@PsU zL#d$rhRyr(rDRX{C89H;L(vJ3+wjh_W(2+4fQ+uIiV%bl|D}DjRlR}V%wn6VgZD~8 z<^BqmLdzA=@t%VZxRRLEmgI&iKCoYl9h5w%#7^#Izd7wT1f+-gMK&)p%R9ExsUdNS zC36Cw1(O%ghkveAfaV_-zv$MaY&5e2|*HC;b(TyCcS)Qyag6?CcogP z6L`O7JZ;Qn`GPhClk}SL(UEk$F~hquY<+0oZ;qiNPhhZANEH)4b-&=!eF8f=!u@wL z5dCVK&LK|&9|#1=ARK8=6%0LoJ>x$Y`+qjN$bI!}zGpYksrJH&Y|=;UMc+uS^R|jl zzJ)P)jvoPUUc==+uV6UO^@%)Vg|k|!7@Y9Q=^Pi>jBAjez67OjRtNW96BB33)_8$g z;)L($R0sG5kI6ASrcXKt&(ibm!e)2L_j93F9;JWgDA!h(-8P#Hs6;D zh|_`*{!RNd?Dk;K@;FOp6jaT!VtB2So+g%IXh|Jy_7U2 z!Q>1t*f?(#28U-5jNDc*GRyj=*uZFZo=`E+vgWnsG>V(TEkfkfBRgW%ObydWlfl_pb{emBoJS7#&~JRbCi-c2!q+)wtRKlW+&epSKC}*xihl9txxc2jq8%d%2AfIoojEkw~k$E zcQ)SB4kQ?E*Dkf`D`|82%C;_c=IYf5S)LnN7DxB?^>%J5f!XNVIJP%4lzy20lH1n+ zlR#|0LdU?k?sl6yeyUBZ7;iuHkP>C$j+JfM>{NT_=;d~M{dhYte!Cqze!1OR zy0R_4c`45AT)Pl>jB~lo)|5Qf8N1=XTQOSxj?=wjDJ2zn<3z8HW4P$Ha@zd8bTkGl z$~fNDvgJKnsr-CCc)b-T-8t8T;>1`SM@QJzdZQ?GS#L7LiHHBIS7)kkn^;kLO2iq! zGIUYy3Y>BnPA|^a=-}j?V>2j1 z#>8v|}(z1Qoq$^ITe@QXM_~fb6 z6%d*oG6Q4j3%=d3eqA}s>N9)2LZCL!ibG>x1^t;hP(}{7oIk;sji&5We|c)Ac!92A z0L^H_BYgt5X7V*$vpeA*ju>FwBj_4%5AVk5y&G{G&|Iq%93%>Am+0KPWU+PbaaMu@ zqlVX7!y27ujBt%VWzXTKW&k2DNJlUC*=n@wA*^TfdQ`T-2V)M4j|jG;eNWl5>#X=aC1m^?%EMYcWu$%(ygBOl5`9l zx#%vAd#@0>Q!|Z~h{I2KJ$(t#jKg!r4d1E?!3l4ct*8uGC1?*><|CuKckF88Teemr zWh8dta_~V%3r5U5S|-EEHFIVyvC?IF9KX~|TX>fqqF>l(@TuH5efn%A!^kmyf%ERW z1q*p8AGb8a1jVX_^`m62kJs!pz11te@Rfi?l5%r`eY2rx=Du_1CJI;Vz~(sq?k_(r z_@=w)R=lKrx)v<(WM-Q02xhR8QGO^rgwEP=`QD`+ZICemDf=h+Cm1Gc5|G9r>ET41 z7hilee$-e3lbzKbzY%Zq@z@s$TS+PjcI|E2ys?60^dzSC61WuoN4DXG-O#5QXpCeB z^9ok$cL9-vK|h|(277#E)p2AN-|+z?OWljU^pA=LaKo$00PiX~*pICVQt=2L;|~h7 z(Sa;TTvx)9%%!giobsG;@~d5Nr9#WQ@7YhE**U%i{0gqfLj`5wH|6o)2BM; z{1Z6913vU(`&@Xzk%VLlY-sF0Jbv)diFV@niSGv7-+m1N_t6t?#r0ZLrF4}M520uY zO4n@Kr6_971%r#xI7`+wFbtF|1}5#_%AWTUh|5vX2<9Rz7~AuhpOTstNat^x5^-ub zEA>fWWXDXw_NmhoF%&&GrKB;;y7kI^a({>qObUwPb5(GX_WJIZT?mI+8;S^bmw_+U z5Td6|86k}6MR^l?>(e-$lz{J*ksB+c-p^Q8u0ep!WQQq(D~@uN0;Oq6?qmYY$@9}u zY`X1^GeZrpHb|*H>mQ})8IQ)`M0h#Ygxwh97WI45f6uJY8;hjK`Qd)k@; z;3U{p*k?F_dw5$SQx`{b>B<#t{>r5`dn>{;zPBy9GSRM{JKf$scdKpMyQMw!!0vYC zokQ*P)NEV1X-&HpLwV_XoVN697|Vn6SsUIgigFFkuHHz%w0%b#Ti)?FH+QAon7Y#D z$JVtqDW3J9RSZ$!$`ot;cltETqzOSFUcn!NJ4_+zaCYKs z0uF1o``!Rv0z`qjz?FlyextK97gzS43|~qhzHaUMa*oIqe&T#Cy#bVL>XOQSIk*bW-r*55aGOWzQ{)HCJkR?JI{hmaHKTY%WSmq znQg1FhK|PA1Mijf+u(pO*k*6Yt||n$WsGE^1#Gp4LE7Nh&Rw+@SeaiBbnRKev4t~7 zz|ni0(Q+EncEBuo!;gY3yHpeYnth`q+?!wvFK{TT>LJEhvZNA(%R?J$&DU=zr>p{* zG|G50pd)eYIVHxz0c2pE*UurxL-eaepp3hj#$cku60G4@LA!u^d31~8-^{weFWrY0 zf@sTd1h(r0W5oyTK;Hxi-OSK{nL|=Dj=?c|A!t_3VT|}(kZZFhw#E!Kr^E7rj>FiJ zjhlVc*XZ-A(czo|6$A4&24O*WZOvDWiu+@ecuPP;JBj|9dP5iGF=Jf*o=(T zY%kq&GkhhuL^C`2N*-wk&W!!ci8EDof}io4N*_+%+??{l*sbV5ueGt&g4)Yh;|GNI zmggSHYxfW3nq&jd)rMRd6ItAlfZKX>>q=&?FYFHh=DZ{wC*$Pd`3g?REqxO_yL#}w zFivt4eACgzYZ(*Xq1%+>n{fv}|AlSt`(;@6wWv)c_yixAB%R6zME9bh&Yd0QMNxcjcV z>zJ>#V{2=#f)huMLV1l-N8lAa?A*00j`jZX=j=zq(Z_rEn1gMDGXViy(Vysgks}|6 zS{r8i_)KJ5z#;)R_*CprRn#q4!PSFoeP|1v=#B9NO-kh9PTy=C9-F@rnGL99s;?ur zRIbxU5MX0XJYg(gu>&@rh-?a61Y$MD+*|UOXYn`QDBTb``L6u7;J5;_&={QPfCu_> z(W4ocB;nCxC)!(Y9c+8{>d7 zeltGfHAdf|4SM%k_B$n?)0gMk;e)^Tv0$OfckcD?u~vBG|>qEHWok zxyIMN_OqRX9D}?FBW3W~)32Ang3aYz zRmFzOM*1c%d-m>X+qQ3OtKziOEJ&PmM<6W^9-V`_cKPi#HF3IKPO!ac{O)$|W{QlX z6eXON)?1&t`9S-TKm7;Vo%yMD^rctYnQJTB+O6B${@q(+v_{+d9b4MiiYTQ7a8uVJ z+3jy_tRwzjpq9^T)^rjNEKpE%yGZP?s)thv=LoV?H$ZQapc z{_rz3juszl&(*PZ{FPVQ>n|N^Q@2;Qtp^@%_wSD)U$wbC@S(fg&UH82`L|EC<5yR< z-S2*1dt}ebwj_c4yFT(z+c+A-pWxtH^wF~L(2B)TgbAKU0?&#iciN3Ogg0)7Pgah# z>z5`o-q1e|VZxLuXS^K+g(`RMD0gI-^2g0MUE#aS({t_4(vdd0Hi~yq9FE}H?3@{$ znq3Zm^tC;Bs?S(g)j=@&#ZNw;HiKCff8pX-lQ9YrzsNRn#wueT`U}*yY}-;ZAU3nG zk&@py9}Fai0B;a16&E(mBWn?(Y98XRQexA8}sRDHY!65he-RBA*WBkaQgw=jyZBeF=&3WAq~!j(6jj{jWd&v34QBju%G^99t7;jEB#`NDc+| z@J(Lm3=S&;AxXxGwmYk22s$hZj@GP-vmcr-$=}O^Q=7J#ZU0aI>GP#Gz^`&and!9{ zx=P$h9z;jMBZF)`u+sd|&|8Tj=at^r7ze^E1g8r=(4R9e&@Cr+vGu*n+vO>nzzG1q zrH?o{E(V%zsf1(bdBX;K5<20%JW}JM$BeDxzVid!$XL>WzC%+udgHmn707Tf`uf-2 z2cu87(xU=Hw`naC~3g_1B(%+R~PrE7%1U7IY2|8?^W|qz|T6Pc@oZU>| z_u|*yC|QsYTM^pZU%iAZ{#kzesEI3HaL#H>p=$R(BJH|K>T{> z7~F=BpZx8o(nnA3;tvVLs@w@Lm}#UVY#=l@8{27Q38c)T;v4PKd2rB^0D(B; zZ0etbs1%z&qpgz@&RdTD|6LCA>a}B~>-_CmI!JKBY2?!wv-OZ{xS1a9g2|Gy+7DtR zavLWWo>#>VI~~LZXTSW5pDf-nrYbKE%zfjuzAlwaacnomw_v*^#mSr?0FMc_R2#WR zvct?|Oii(p4L>)o&pmmqi%$9T|F{349X)iYd<;4TKdSuTeT59g5XM@{2sar4++x!jq5Depws`4pZ$%}P4mH>O&s+F|AKN?=iy#)G6X&7 zSmVt1F7)#qyjB@*WL^MbMv)x2=!+lypZ|W{OP}E%^w&Q5QX%0g|1Ermev-NRz^`6- zv}PA0FP6Hn$!N?z568mk6Hor#pZq5sSD~qyaO>{D%s%pI>0mZT;!z)izgj_JcwX@8 zD8{?*x~py8xTz8>^q+*vy6C&^*Up!|`WyeBe^jtnWn5r@@3QsL=L7zHUrCebIDwP# zm9L*mfW?O44fX-;yx?L8vIN*Fo<8x3C(4)Lk9r2)^?|| z#0&TmKH)`x`rrMfzfo0LwLU)M@|&@sQJl;C88 zkn!fcF>cpld^!HNZuYfZ)-^d=q(5tRF^+hQhW1>2gSI#r8H;y}CTr{(1haqc<&T&~ z@L@-GK@?`Sk&YmHO$5ce*_GNvDfcQF0>4YJO)*f=971hH`+k!FO9=%(L(mdwuJ8NR zXW%C;|UnC)G*@&4-TfB5hJLi_0Z9!x+j zsEJT#%!@|XwvFMLEjzchja%2nFeHo!EQGI=@3wvI?z=a&m4OWp%q-o|4t(HU?cvAo zZkyLd8O~p7XD1RMfAHn%qpsDhZ98yJ`@kRiNc+$J%Rkh9wGSLv-9EQ!JyP1~cZ6Xb>8Rs`0O5y8shd>_X>cwDz_Q`^3GN87YxLky@4E83We zV>py3#VD@sWj(U`935ls3c9+AV}xJB*MSwC{a`j!iKNY_1XU6q0$DRyf|-kxQ*APV zv`v)85}L2%+hlg<&YiVsB4u0a8{<^;S-3v19&T5YT`mRS`JG&mPfFfv_R4IVb97MfU}pE~ z6>D+hBqh)^!^s@!jY#sh9$ZSj=SOPyTjhRL0+q?=&JB`oM?_SJ`aJbUu$xevW7F_ z;3nW-99%6o%NgUI&#H6G)^lGa5WLqWK7o-@wGn0Q_8cC!3%Cnx0(MmM&x|6E}=3&dg#PRL=NdUWIg(O`Z2s$i2y$oRP@u0M+Bw%854OriI%fH*uf=^0ur>E# z%EB?n2hM9P-OSbChg{E#BsDHwT=p#INwg5JX1$qIbw}$8mC#L?c?Ls z*S_6*iq3cLm?>&)GB8X}yWbKIC5iLl72^+{qH9*KTHeBnk!zsMhmr77Y>_}5uufqJ zJ+0lPzm#KZ#|3xzfs0b-%?Hoc*RBuFwr<;2`=*%v%8<$tB2)0r_IBCE-E7;9a*_r+ z!ts|hF>_hL)WU^_B@Qj2!teOd3$8hlbOarsLo+nm(gzvTXUzuYv%YKAHiV}atMvFz zbZ7YAdQ)kpz>{CY*#|QjGAk_z=i`7AA7<3GUR9Em9j62Q z?V7%Fxt6*q4d+?V*~+TvEx7V`4K^7BF-{Da(z^lIDn9RA{Z{0fB$()3aV95)fC1IR|;uyh= z^eBHfGQxJV?`DlF8R<$N=uLm>gYA=C;4d%yT(qf5u8f6jxO|5XYROYR3)H|0X0x$i zWrM(2I0zqj!KbnL?0(g;P6l$}Z515uA86n{__h(>3opFTUV7=J+LX9>J+cdL=p!H$ zl(Od^{NM*`R+Rt2PITBL^Ey3T65M#X@MI5y$*G{e!|!+P``r8NKEBKSp7V@% z{Gna_gOS*RM+#MWsIs3h?@92{9yYAmu>(5S| zI9bd{n<942w8T?jAOX@~RXNUd>Wc6lMpFs|0RVmNL#pXxGvQXG_?zVSrO%mzx|`>wCAq-e}s38?xxn8U36 z>IAd<9(%aGao;=jx9g9*`G-rf$(XuNNz71!!{K4*DHD7|Nps#fj$OIi5awc=4)0Xf zJVp!sWSsGkK(O<4&%jDdnEj_f++Q>a8YwY26crsBAjyyp9w4UWvNNKm7^`O)`0T0G2Y;wZu|zN}1qK1;TurQf<8 z>3W2Np|k19sT#XvC!LNTBob{1r8-KfoeVvsZP~h^p5Z`P3S?%--VCSDoGWK~`r>q) ziUhM6!|Ii*%O>Fs30QQaU+G9PS+nAS0Uafu=^=?HICI~9_u9i`q+JcoEvccqRTx-1 zXGVB5w5eICJV&qUixbE$-~%PwP8YDA8BOV)J_{V3S-(lp3TR>zgGY4oEZ(Tu>F_I> zZ`!n>$~skENxZNn)_`7`wqHaqMXlsbuIVXd=KUzo(wpI(T8n+I?{W*C2jBBx{f7VX zQa%;`>KBh(xqLNkU#|Yi7W?lkT{;85!H?(JEB&LLz#qTBfnA|ha*&&QAH2Jcn^J~u z?Wu$un8wHZ+3K86?bxu7{ulhy8(``|d-QjB0vuqoF)96TR^Be{^aWlv+p;Yt^ zKk^%k|MNEzwijd#$Z^icR!LZ_CDMgP#tY^D1=gR#I2R(LV) zt~b}TAO7JVC>*#?@XNN~H+<**fo?AL3mnEncc}^ypq9TCdn5@0zxV{-!!vlh|8cv0 z|Mz_$xKt4w8P9#gg+};PLPPun?{u4sEW(@MS2d)uu^D&}&iGCe)%3e+AN{fsf95~` zW2KwH;Ise%Hy?>EUlYH}WFe1ueGP2dZF#xJ08aFflg@Ke)bnX)?Rt_jkam?hH@@y);J9M z((`Y$L+>1IyZ4NTDSFWN*kg~jfBKL9b$j#m!|i<^c&r>fGfWuk-~Q`gY|lUUO8e+X z-e1N>jLCTX)W7-p_RMoHwGX}fu`1`Zkx=N@{=>&U-j1I+(>AT!P`h5PkHHeqeEQR0 zYKIP5jDLR^D*7wpZ&xa+rhVww#OcSu$1rC zElSq5wEz8|{akzQ*;m{5|G)=pttY&3R(|D|eyff;*tu(W#ygv~;~YmIE}lKvu10B( zuI_;vL~zv195|9{d9?DaC>-nR;CVKJej`EIvQ;B7`m5S#3>sLEy>h%AKX|Hb*}0(v zj3difedQBRx5IB9ZFfJkuN3-)IHbzikG^)e&0U#mYd7>wUN{pB>dEt`+NIe9T5*JK z-MpSLZEknpy|?|lU;dr;#MfSEk3V=<;gj+cIR19RZ9K>+PR9*v=e3*Y19B ze+jyvOhEJbkAJ1T`SLsMp~vqlMW9d0=huGWQ|%q&y>D;vfek8xy*4vBQvsf{*C}hr zqzEogo-f#}gC3GaUY9RkuF_$%+#C{TXLAD1otS7>FI}lM+Z+kAF4X<(xvTBU)Rj64 zP5@3bn(2P|>DSuvLnp&my9*Cx6!P<@KK|u)YO#}VqbaY)pq@A3|V*} zotCT!ET+$04xe0WOM_1{Y&N=6!gv1kM9nm*^uPyXfZ?4yH`A_6TbC0DVWiIjQLtb9 z0mx6oB`c9iwMmlq~?a24#RM*(%+o9JEwbRGXv<=(V7oSt~);a&q zuYNMTINSEzv$y0$cAPw2nVe1_Yu1_K?ZH2UPEQBVF?=dNw9BA#lFy%?io-ZrG^t=Z zyrqQhr59d{kv$jCx}juv7^k28mEUSFzW#RGvVN=rSk(hwzx=5$wbu?FZ4U;XzE;`# z=j-ibzw_nx+M7q(1NZJN!&Ht}c>8C5<&*8zw~w{^_ir!W!T;L(`Hy|Rz52%C_Gsu* zBnU0Z(SQ8)FSi$7d8cjL6a$iRf(0F3eD&>i`qV@lSt&W#9T{?VJUA2FS#H9?>6RGjXcc+L3b(jDU($ck0OLcJtbN zTfH#>nAsJyZqsse$$NG6>*9sL}--E;4~1$TGi zTKib+(KF9{y*>8mBjp6D1dxn4efVhP?sB^?__1sKT*mDEsV83yEibkM_ums7#kr1S zqn6@$^!&B(ydwx}W-l)R;8X(QYqQtelF``9;Ee8}ho(g-HgwZ6{+ncd;|KlRz?@_ihiWj#3Jkiqlmch0uCOV`?l z?Ph_(E2S&%w6A>pnRfKeQ*GDX(GRhU5}W9L{z%}ta=oqFw7wj1NoRcb_Dk=yGbhfr z@m+DI(;q$0L44*5FScXvoNoK?H|xPkTowoKYWw;ZzR_kc%|)N=DreLT3p@72=bmjZ zzxaCFv3F~YYwkMRc{6tH8|~=ZC!=r21D@mqx-4$b*OUcZr;App8WJT z+Tpj4xAC2u1Ba5*r4?`ste&RR2(4Kkf`Sy{Iytkb=e!Lxi z=TJGm&%boIojiHI-Fx5e0AF2~9eDanFSYX%lWpVHwI!$Yyx{xUue@4%e#gG?vQLBV z_^n_4?e^mHFSUmsd9Y^EIp>yL{o1d7EdI=)_UPk}b-7OSk}bdWtH0CUeD$67p7*}1 zDsadcTl;T*`WM?%Pkp29+OY+bL{CcUtZqN`?|z}Z@@DRT*Mp^ZC1xe(|NQ^`FSk#A z>hl#m2o5U9PTzm;$NzEK`C5D5``=SD-uA?x$DVrX>Gt;9Z^w_izZ`M$NPnL>b0WcJ z^vU|oH7=TxJw1Bttu}pmGQrZ8W~cVCHLIdQZ?(7IdaF%MPPR4c;{%4SlGi3g4!?D@ z?Ed`^-Bot9FGp(amwzsL{`uD{cry!5m&3y^{M^Ue^UuH59((sg!A}DB&{2}^C;rJ# zw@-imEA5B>z(*@U8UpbD{;&R6`}~)mZh!a(zprH71=oM&NB>Uy!dISdKlBH_r*ObF z&~HEakN;(R=4;OdhyAD}>$fF_e&>_FnIQc2_TG0to}fd*#W7YZ+K>K?A8$`Q`E2`R zf9!|qZ+s}A`78g=wExAY+8_Gi?<;!KsTk%T{?ngoUwQKB_TU5eRe&kjmdO0+fB$ps z&9@J=M;>~hd_OV`&R_bq-)_&n^jiDS`yMa-E>J&y>{$Esm!EA<#UK0Vhu&NIsFrI+ zfBx-%@GshDKL2F<{*QjJDqaNCl8`_4cm7HH@{?a{A9&xRwNtzVH+X;g-~Up0`qehR zbyFqS(Hy^g{NtalP2=AG{>MshkPXSWUya>=<(0SEhd=zD3NU?7E`IalUyR+pRuc(B zQV&0T^0&Sc+8=Fq-My>+#w(urO8mX!$0pk2p(C9{*VCgv{V(JHKmC09)$r2S8_%?# z{E2_szV^&FB99*k-uf)Eq}{*z*Z;mf``iod{`>B!?}`^ggO7deH{0v4znOmb6`pHS zB7F3#zx?a%g>Sr&_8%=h$hO1ZKl!KsygeDZeBbwexDr%il{E>n|KeZ#e*_nwZ2x(J zQgDOC4DsLk+yA)e`+@gA-fVyh2a<&U^`HA6+b{ph$J-zMzx-gy3Oho#{*}M_x7u^z z+mC$seU(_Vc_Bag$1|=kefg>OLqGKW6}$)Z!qeaR@qgAn|Anu%Kk+Aiq~xJaMF{`? z-5>ww?fDm8Z{Pp@A9iEz@0-Q_C_9A}E{hK4dHV*dvkN?E~ z+MfLC*V}*gBR?2f=@V}zEB@w>{p0q@Q0(T zuD4@nPPaE+dE@sCxEKAv5Bz|!en(wj_`(<3U-%1up}lkTxwdC#jLNMzyI~MB8OxTA z)S4>};&U&&)W+gSCHWkLXKMu{BvC(#W(aktn z({0P<_2nEdUpksV_hx%D3Lbodv~uRF3^E2U5DU5(M2xMZ?E0-6wTX+_2(vvlit&3n ze2bJ>Sm(q@D$4lIL$JCtsLd!$4>^&QOs>l^Gl%%KsW|A zkK+s|6T%;i^4fKMgB=FdS)U)f_jj=1H?PM(|8T)=(;Hb(4waw=oocOA`ZBX;7C`AJ z+TP9>98p7=&dy$|Qc%ZundwG9SxrHvDg(h_&mJlvvI&K1fS#@6kWt+y2vboS#5Oa zv$gh7a4Cs2>we2x)Zk0oOB48#on;)A42+YZ^k2ZuX{Wg912gP0vK$Z<7uHzYJ7INj zGZtq+b|20?ZxbfF`Cf`)Ij>qn;wax6qf$V#fHoJjOMDNsWoQ}iKJNLzOl~;$X5$@0 zB(VhX$mWEENL0zvjeKz_y6{Gx<1836+R7^5HoKNF^x0pAowH#b{jzc@t^4GdUx{-= z9&F-e7FPMQr5tcaZm!?#8FkL4b)k}s5^bKXwW0Hp6w$wAFgkAI2FC`iD}FG`g~!as zojpHMdP^mM`Udwd=VLXTZ+lbiOz!R^qR0T_Q<4 zd3Rnp2bs>0$XFd`hu(oh$;9bPSK@3tA)~K@1~(Wk2gYmp+YCIh*|2Uy z>`_lHsqbSF#bgheykcCgT9Jaqk>H+$IzF&&)bocy$6G zo6f8WE~nC0>|}T-WGudz3h$7aD%HrP&D-HYI2#FWSA;jF&7fqw_Gws}V7xY;3qHdF zRcTR`5|#Wln_@@U6>aan-Qn9fPm69vu4l@Y(HqJL@rP1Bc3C3w@S&sS*h6vQsPrA3 zIa|BfTW7p|=l0SqO1KwA&)iy&v9MO)xlsv@>B;D&jERG1DU}4gdn70Y*=zv5XFCLt zz=A|LG3Lk&cB1^!K){+uFqo zq3@e-m&}r7PPD3)Xt)ZxEor+rIo)PsXUM5)CP-4bVgD3%pZ-z(BEg^n=)QaJj}Nh= zT?!32_Laa6J6L+5;>B6S*08g4UN#&Z8w>myV@yVs{Y#|TUH@Eo39S67uuJi)872YI zme@^>y(G@Ay?ctkOXr7|ai4X=r%S-)y(+r$n-e?A&ntVsq;|?S z$ub?g_Qfwfk$`ne>C=&sRpmEq*ckh`)S1W|(g&I?ZO4uu4eX}#v$SBNr|4Du=)SU(`HjEBzp?xHo;`a?_o=?1 zOH0S(;%5kaO-!ju+Pi08>8jUXf4%k+AUA7Ns>J85C2!FK=vgz>p)emz?$zi3!EnvahHvO4^r($uB`fk7-pD<^Gph|oeW67-sw!1>@7fVM^=c=6gv}%E zTOn53X@~o?@!Sh9Muz&*ER`-`fD^K*>Wr@-5FL_H@XO!96OyNFB3Tf}lpmUQ;2xie zy?n_zw0}ChWq^alT|u6 zF!Agan;kjmeKv;RMjgRp9W~^eO(jSSj39)ew6+bQF@@(bE&)@DSOHktrBE4HvjAp; zdpYBvM8XJRFq#p=IzEZ@v~EYK7G=k|u;$MU$*Pq~)e@Y>F~CTejZ)?GVIoZBonZBh zT9kOc!;rmv=}xVEp=3BJX2B9}ms3N?jGwY(;0XWCC~J-fC|M3P!(^;g76T3eNZRsu8JhsOG~h=T1UZJced(KxRH zL;)G4%m7om#)RSP@<%QLB}=Rv8GfsjEcX%?N9CAZSJ^RdEjL%d6h&s|SnK2L0?heCf3SxwD#$UTP2o}8u&y`C9IW_IyNob+81_9OF30&kncGxeLRuP^u<6ad9!{UZ_yoQCs)VV zk~`zDsgAXM95`cTyf~$kQ++cprEr{L;=rNk;}=QB6D16)HR6$4ntQSf5L7Yd!X84~VT1cJMR3AVFtGU7M^jyG-KD%7Y8>*rrvB z{pHfoW7+7kDuu^K>;(Qo2Qq8q>;YX@S@Vq5awQjCfxcB%SYPz@^In`6fdX7=Oy!FJ z4cQudfYz~t#aQ8i4lcbCnBk0#?tDm}+DJ%J zp&xA{d8q2E^qZhQeRRh!?a{xXnzpA^vqU!WFq>kQO<-B z^o8TZoa;Q4IQ9yO=-B8!o#&R2IJA#kNuszooaCAvf?GNQSp{PpMD!yM%6vC$?1^1^ zgKr@4bsn{T*$Y9WO{?&e*_c|Vo4$-&qUY}YcgIEsZr_D(1^euUfKBqyXO8fdwC6YS z1&{GRi_d8oHnsRJ*aMs8b%foS-elTE&U7H~gKxAUE0P%fjPwPcAh*HSwgjEVq(VR< zO3;l*^vF&L8t}M)Mp6Ns=;n-FV?`?!HWSg|Y;x(++#_kM5{XO*_URqLfdn3z9|8fv zL-AqYq$lZ4M>{WM~|ehN(`iJ_%mCmAx>CA}e$y8H7`P z(^uryJ)ZZHz~TefuI+h82V)hS8;6*5R>sd5@o{I{B^FfA5m=t_8nCucw}PH4aZ-mxM7XFV3}~k`pMCOQ|9{ z1T(H?0ak`si~t2ak)Tq5#JOPzFa#!Ja42T%viOe1;$RSvVVBQ4VH7XB zcyHKb^N+o4*N$!N+SM!V-09QpMg+!M@0BZ7woMC0he9y>%n?=QrVj#!u|M`3pR3Fv zM+kG4QVFb!<8ZEtaO@i2+4k<-+qP}q-fqt?YL}+2wCRg8?ewX$?aaxuRX#m;^+ucz zC3V*;qkiz6Bki?U-^}~bFqd zk}(HQN`iIc_zP$Fg@6?_k0rPsSv}fr+=)?7Upx2iY1?=1EJKHGj9)-*zxdlp�Q%Ajtzy;RA-lePsaRz|f=VJ~-<4&juIp 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%0D!=Ntn>lsDM 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

    Gq{*nwH+aK;#+2&0MD$7bMd)=MpiM%7X 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%0D?APyr7kMFp#I)qRzH1*Gl2%q2xBh5C_X3y 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∋_3K-Ac%{#V2-w(I#9BxW zt1%KJ%3Oce>bb_S8~e&AAG4`;AmwmYc;k#PBr>*~(KYM97-u*AwgfH8b7jV}GBmM{ z+^n_|HguVVnG%saFoR8Tn(*~*R@LTf6oce}jGFZxgq!0)IW<`k8iJz%RFsy( zYycfcDRS^_Y{zk?_~HI?9A4EA-4#4-xSx>|v?v9n94Jvc-74|#j_Gl7RV;wLuYjWz zLiaiN45G?U_<#~-1l`Z$7*!Ob#K$bLpa9+*Y^R+(*7io5)>aKAV-~BgRS68fbC?CS zoJ2g*Y~q5l0)Kw5-m0@>)NsKyd*>UJ^h+d(IrZ;A`UfN z=Bz2s{elBdrJ0X9LHRytJ>bCG#x+sAY)Fx+=V`sNw z4ix83zw6f7{Xb4f?(HjH@;v%-h9!c`z7b*p>DX~x)|;+!pIKBh@MhywQY09QOptf8 zUGR4eA9YL&{0J(%X+Sl@Fhnb=CsbU}F-F<38ehj-Y!<&oY7XtWt{>k^ul(Fu!Qg-+ zVAc&T=v?^X40`30;82T0)|J-^Bo>^W+^=5_0bam^f&@DJO4q5LYd}SQET`}cxs!}w zOz9kSaGjy=4*U719lFmc(DqyPX=k&SH<34-T@J{K&UTYsfhpM*AZz#Dtvr)|Be)+< z8a~m7-#KLP!V!U!>h^rs?(7^1qy^vl=d53e&gXC(j}sx`(pk^6!I^+RPOqR^vJ*d) zFC+73;yB_F_!|``@P4z78q$%c%5TOeXtbVs4w}%IeD?RqFDJ@odID`a(>@CJ79gYK z6@QXh_`Q04=r=rVR?22r_*@{?8N|Q{7J>QJZDWnI_eiq|O)f|x#i{4$as27{Wh*2P zhwOk4KIrP1w>V=QCiE-+i8A3bwnM^PKy=~kh2X><6E+UJH`$$AA{IQV(&B4 zItP!BYCNVZIqsxtfBip;lOg_mbts;Sa`sA7D)Zi%2C4Gv=jRmbn z1(cxHI{Ag9WXs6IQ~7r%_gngM;cRqr`21dUwG;o=DUM7_iaF?BF#>FIouf!0LJTTF>frPH13e+43v= z%oeU$y>>bqT0HmsbJIJ%;TwuC8v=U87~evLk2Z%xe5<~j8CtSJkIj<_N~OzF>6dS_ zG{G+Z06YGHOLVdn&~GPCogT~Kf(w-}%W`c=a22qEZ-LiHVBZZddc7YyTe3qh!x>$P zKk`s{!T8y(+U@T7Gb+|3nyasKAKORfC5_<>j`$ht&?a^K@|@m=3;vXgYl8aP-`^1sdgY z+Lpu<58&TshJ&$u;#Td+JXXH9C2Vk`55BTb`i6}1vsEIpQ~ET1*DFWS!P?iK_RyG5 zN>=fSzuz2e&tuc3zh@eZr2JSm1s9TtCRW(xS>MooVl2V7cJVEI=tuwHATRpkI~WfJ zSZ!%3{O2DT@tsVQ6YV;lf8nL+*=N318Xk}RdvmZoAbjhXo`31(AZ+SR#E(4u@bo~C zv~|n25Ru`GvlC?-Q#sv=V`4_h%(GYET#V4iel@`MPTC8XlyJ*ZD@zO$W9pnT>My+< zLVWev>979q->neY^a4Rg5HsG@Er21|)`KEC0nnfKkH(v5W|EJ4UBFK1Ohrb5l$dqf)0ja#2ikaBoJZoAX2KHVftInAcpxAI z$hZ@1-xa{#i^5ZK#xM>e8Iq^}G5hzw{mWl!N!@+-?QO!q`}B5f_ZpI=O`LFM^JKh{ z;e1e5Eq9NSk>NM9w;=`-4sYasPA9y3&5A&r17|Ia4Q@X4{*Thy4R$#Egx^{_V;X@R zr>1^UK8J%Ps8C|ME>4P4B0NKRm`P`7DSwCS+H;?^S9Swu znX~HWkOsZmn%#(+Ymk%Umtk1L-4zJEiit-ZV zDx(5B#c0f&mO8`1Z+DsAx+w~KQ-VNnOTq|r1lLg*v zrOn0>447Ti zrUZxNlD!JdR-64{5YZ1W+802;CMm^X7R-F&gTLEnj~zKa9nEPio0&6#rT!%e@P)D9 zf2FHyV!ATG~;;6op;lVP^2%b|=X*EvnDyMHNNknffh zs5r9jTY}1ZRhv6)-WbPkrDT+H=iy}HO^%AOD(O^``SFi@qWsF4(JmSENjK~3cg-FBk!F5CUJ7lEbsWiei>$8$>~=<^QCExp_*7(s7(c8@?)qJ#6Es$iHj!mtbB% zov=LP2>#$YHauWOwpL@#(00{G+DeQ@_AXou9Ki>hXkQ2ctOSH4uo)!y$D^P4tuLfK zJQ|zlRfYMq#{oCuYG6TQ_ZqXrj^J8F8-K;DJ|2QwzpsuAtqi@CXO9G8czAgn@|6;a zi>ANym;YwpjV{O)aC%=l8wYon1D{Puo%A)h1yu9}=bC=>PI0q{c%@0{z-W&F>(o_Y zd7rfzR>AwLuf0^AKbD^?s$b)+2n~+oFW_x*&L)F>$a-{Hs|EyM(kFOx$UeR^iK7yY z-oQgmhg^r(f*0qH z{rFG!Ucd3-=m)QTGyX>(eYC+dne^N!55Csl_)-%1aCP+P(c;K8{op5j=gHkvyCc0B{Bq`+ST5NKm3{A zLm&Ga{KjbmL^ea;)jNR~%=2>6`W+44N08|miAU8R4*MC=^^y_B<^0z__lxCQiGRtT z%1PkVKAasmaG-wv41-Vj_AJ=m>}&X~@keOXWKVu`5Bj?2hky9*R9DWtqLRH~;>z;NiV>IJWKB*6f$hefu7WbG^9^xU(70Al!yz zX0-*t$}}PVtXBd>8OY{)FSa$tcFlBRrp|JN0T_InJ~$|uu4M@EFbd(G6+#tg42a(% zZ54DxUK-`FC~bvn(q;rZ_b|}-+{;J|MQf7`GfYZhWgM-gu|6e%ruNd7nF_m!yPikW-oP8$5=aNyZ;SHdd~;af zR+*K|8T?Y199A=MoC=Cy)20nAxvFB#>6Kg#3Y0T1D@ef%S`9_!@O@TDo->OfD5MSC zLveAs^veO$mv`67rg`0itUp|N-u;XUp7LFw&8Y3#J$A&kWsVf`+@+C3k={upks!`F&huK#UsY#WRN(yfrmRm==GeR^H}~j zp9qh4$Bc9g#+wv2+>C>hZ;TQ{+8YK9tfx+&Ych>Isb~>kl1%~jnf&JM2U z9XfJiI(p*dbm;K0>EPib(}@$OtH;dbD6?`fk{p8JEQTK$rvQmScE9wsX2Bs|8JIX2 zcDCM}dpU-k)ky#Mf+s;>2f1*-*}rob^8B^PfPx?`I>nga*&PB9!5PPv9_B0yfCRvj zAgy-DC%A3yDDXCWL^fJh9~`Yp0LMXbT)lLyn|4|HU{+fncwnX}Q1H2=f%fq_p5MN0 zXZTF1BEx>S@@MIYvO=ZYW~RuD;8O{u10BhfKIj4M7^eh+07Ufy+`^|%ryKHTY0e=o zZgP!YpgZ79TeAb_y956%k6z%MZ{ND5>-PlfWCHHSOdLmbU8{q%-(b14f^+R#<|MIk zt@K7yxHx{|`1IWK&re_e@|W9}#0#AvKw_%~e~z_(XT54JG~=GRuDliS=wUw)0XKOP z&|0FgK6=~i{F<~U(53?fGR0Mno42F?ZJM|u@|<96>w|mhl3e6An43Z#zJRXzY902V)!{WIpTBN%a{b)mIZ)? zOwW)DPL4`Lmmr#fNir=}wxZdnLK~cJvMX!WQFSHr=dSc{^hRm+{cs+V+gu zM+2m9TICX+oOzuNaA<31#wqdPFbM!A?cwVYB#lIk?+$WqoRTB(L>J6D$)wR7h_Z)d z&UhW#b04|0v``yfjYW=J$J@t`A8SdqPqVZRLAO3Urw=-;fnCO;4YctrxMvvk?>De$ z-@V{*ug}_=9N;s-!q4#fFeUTaBA@)In1Mc1T&I11d%peTdXIeSOEm_+6RzP`^{Vgu zXZ@R8ai8zt66_1O-79eg&wiV6M$gPV<#d?vkt7;+fAB`DH-a;~%U+u0HfAuA*(Q53 zUgL0j)&YFH;y(EI8ywER!#REhkAsBceSAq?zz8mtjFK~!oq%chrYc=mwk`6e5Ag?G zXp9cLgO(1@!RyS&^Rfo*gU#sxi+g80f!C-0wC8i&XOd%qK8}oEFzuMfBlbaeG7L|~ zZ{ozHDmVnu-o|1HES(sx$^9G@F%#c<0j{(?!vuBw{(t{?tBic1jC|vUHPhBDo14wN z@BY1=$%I5ft&$=cQ4Tn#`Er6l*;CnH8BwKjvcNZQ48mK-DrYglRFIAYNt*!_2di9JV^TA+F~b4_Ow9o1=#*?6yZa)BD;|zAOv3ckhnE zL>Mp?=BhAZvN#UPckv^mVHW68goITUO&h=|>$ZdMv^e-#E^C@V@5a?Qt|QY&_-Zr)3x{ej_M&Os zwy}0k7FYlMZJD*TW794|2iNex5wYIR45+oM!+}MQw3W|bweM`blfG@^-}Ty|EoYdM z^{wxEvN$7HL-1FG9%k!p<|6~fDOZxHyyRAuwVkxhe%sK@HHtd}sslPJjW-)9bT-Z> zzTwf*)88YLHfGp3DR4fF_;A=S#&H#J%mFGle4bt6%u*m;BjbLh$>_0m!`eDWl*l7b zJX(cTJcJ$+5Xy{)6L_-$zQ6&VC7g`kdM-wn#VP;9DZF>j3>ia4k*A%=i2#%X(Dlu^ zrt+goI?v3(g#ds*i_ZE}Zfh-`nKwI>3R>|#oZAqKv(+qR=nWR1V6}b{AK@v^*si^s z$M4}qd=8iR!Z?-T9P9$}y`b&8yopdK89Zo-|Rp2SnDY=W?>6Enz%-EiDXD>|WbGo*3-;M+!rwflI zB1_F~E*pttRXFfsytNgaplDc?N^sPB(vO)vI+eq2wuBAK&(qN($BG~K8QZQ0c2^$g zE<8+G<43R8>}GOl-Tm~4jg>ZR-q6=jacYfw4s7u%UBDLNU9cFl*9$r%ur_T=&=KCH zPvCjBA@fooJOCEFQ+tzk(p<;kIi=JaH*ai$Ty+9pK{@Qw@(g*o7kxEe(Yb6SbPXHfA@b!~XW4T$IgxRz zBEwVKura9M>>Ix6v5~+H?oSv4=?H)0Z8NEUCok;1@9>51=-^=&l;4g`CFj{_aPo(WqdY?nz(EEb zf8-DUf#N_PpZ)CTL-PyM+u#0plU3T_|Dxsd&p+QlT-%IpE{&9Wp*j!6jFWMO$#s&jLqon9g1}Kb<^ts@IKkENinoDRP#+=or7DkMD4Z z7G3Y3v4Z=d=neWE>~xV*czsu9b6xU6+5bFYCHX0VV!S(cj0CP=n+zR2a?}Xw@0sjj zYuIG6!_Ro~$tUxDLufQ6tH8wH#zRe#<{G*fFMb&~WMhUsaTxo|#}0TM_H)b-gIQws zKl+dUaK|A)Mo%z-vk9BPRDU|xw1?MJ>Pl|o@oV|rhJ4y36Yd!^*2e;)jRQv_#&vS= zu6I3Nc)<-e zZ$9Q=+v}vv2=2M>zRpNngUea4+0=8-y)d1O0y=#rPS!HY0-?Q!`f816ZYv=v`tW>} zEMi}{U|o%OFUmrWfN59S=FoXgu*Q%Q7|y8U$k8J;TEw8Ge7PQe8OAyc)isfnG{-E; zkbHDH2Z`>K7Fjcd0`OSB~a|Y}5<{E}|A4d$6kBlWjP$IHCN>$)7)^v|q zq!EBqL_UYWjPkbzd^s^Yfz=)*MY;LitQnp*yJ}Wg04VTN9&BS5v(6VUUuXhDvSKJE z*(QPLc(-IgZbnnk1QsC-9Clq*?yW)#Y*h%s8G#_ogkIpUOp>z9&vkU}aRP(-Ta-ue z#<&T#IXMBRLTro_9=g8au*4b3|1t*eu8on%xRvKozWPPC&2cbt({x%jL*Ou*Ys_6w zm3BF4aK!L-Mkor|^VXwUi^@1qq7)4!hX?pcgFbgVE2pf@K^ZpaOFzo=?SzOYIi~2% zfSA?dq`Q~HB|(8Njf=5nNNgHH!B89{3qLZ3@W9Z*Bjc?fjtS>5Sc(!0-4nFc(J9_W zkd4PY@3U~`yOW^Mb#PgDLSq5K>a}=GGDtb}m~r2+nL(X-7Km1CgLSLr4KmPpIIItbD~ciJJB`qn0I!*I6P^5;5`3v zsOBJhBrnEHW$r58;1eG@v=8=yksR9b5j+$h`R<;+iY<6_G6wjaQ$9b3COT|;`7Sf7 z6z*c^V0Ns(<^LQqv*6lM!p4Z(VHbZGqyFKqvq4vLhOXpW>99ZxKJhHtyVocAlD!3^ zvQ@^2GwKy(e#2`}!+`4-B;foyFO2U7I}DwshfWf7&WGnD9N>g=Lk^;+pDWJ{ zA~^MbL&^MQuOK{H{jI7-kZc)&^6}F#h8%PFGV6_Y5{>945r@ZAtk8L$Y0wyujQ2|V zCZ})*7J-VHzv@(Sd~-NE>%yOc6*4?0%Z$Qn1#e%A9LIk2T)>GjGVYEMfCy$sG85hX zZI-k5<~#l2liqNR4)G=k@<(n0@pLKl!*gRT-^$vR>ivvIe{@TEGx9*^*gTCMs4WRi zTAmxYj|7kQ@)#9Qk;%~C=2U{^Zf2GCD5lF-E_HJ$0Wp4!{7 zf9qCH+qZ9>EW=TifCo>WINjahFJHJ^ySQZen8mavS%s1rZg#>s0`NGA!EXbi*hb@% zyG1j2yM1FgRUBM)!iGs`$|ebpM*?sxM}P;_JC)@O$tPRTB@iKv3M0u=yQeQtpa~!P zhkrVs-hwxFqt!iV6~2-LUK&1Qe^g7D@uXYH1-+hb3Tqwg@P}%L3?p)yz$$uGX?R$o z_tlRG3|>Pyul4R`h{3B$J8R?b-Q&!Uq{Xe9oW{YM_@(mYso+z4cbDX^>ar!p8K>0i zCU4!1eu#}*7QQiF@8`EB(-M{LO%fQ^ts679=x^M0ZqqCsV>yS{Y~oqJyM~wQqh#zI zXRf1zz{x4m+5}c`Dd3}%_wL=-#NhE`N2Z4#-e10_0o{jx@eDgS*4oEMDqlw@1ZQw6 zpizB=|J_UHqswfkIp>wNw9DriLF9@CLHNdrZ;m7glH`*tnES?)sw<3v?xr6asO9YRjFO2aS zJ3ovp8#lVplfFyJ%wt0ffel?ZuhZ>hNf=Iof}N|6lIL7AE&=uM{qFRB$+_Y_@JVhq z$jg1MxxaFd-@s^AQ^Ly(?86T~JiX^V?`}VyaR_n`9y}NwduDp*q5aeT{reNJJP=;E zT)lYz{rA`Zc;ST?+P**$O7+L48m|*SfmtAL=9~_O6KDI$-{^Mg%;{F`fUR)HZt>5} zI^z*zq$AjJ{Azc7I*bis`_pxUSYs@ohgK3xbgh6`!bqY6U!ehgi)LVE4H87#&f zR!F-ep!C~}Tc6q-zM|LEjj^IToo^;z8+bs#jgR>1;O0ZY4POi0m4bKQ4*DxRhX(Kg z$NDkxLk4DkK|6RuGcY*8241v7XZUsv{j}#Ax_NeRkKP;Ae6Iew8U#qL1G34ey*j|MVB%3bx;T%)z#G zyk7GqW5@_T{lzavSkA=JI5vIx%U>x1m7U#*!K4HkXl1dS3J$pS6Fw>CP^yYS7ALf9 zrW4T_=WSsEj0`B{#DE zlm|R;#H?Q+cq8y1PBbCpC|$jNwWW?5H*IL3qbyEfEs5a0nH*S(!G+i7&8u?WrNrJYd{lWTYPsQf-<3$1P~Ac_hW3qTNDGF z-HQ<3ym7UL15*&H6QruAG5hYZ~;=Y*UprueYe5bE48$43LckULFc1#HZYNd22D-vuO9Ar_-*LeLKRrq)!tYF2CzF8C981izx0}8A?upI@n2`g0;k{L z6znjdz}&2T@sayFCimq#m>FQsr0xcPNPOrQ76O9*X$uS)ALmL_0}3$35N14d2cDHY zFx%}n21cnRLubDU4g*?{TLuN6;E!_`E*36tXE=R&?BZKF3*G&0W|X8cr1NYrV|V4E zSG--y*dimLsWA*XWK207182q?_|u2K^Jl+z+(H7)teL>fCOmW>XG1^mI&?UlIe4C2&zm&`?AnSZ z_3{U2f`hR)j_!udN;22w@9WdHt((*HurofD5Gvi(HhaP;#slmX8C#xls6bKrZO;XI z-)58G7_`0Hy$6){7p??(x9{Ev@2!ZP*wk4zd_WTDP&nyK!)>;WqigmyvY#=UIYN80 z+5++NWaut&Mux3fwh?9%qzj3s+R9w7V#z7sULC#b0S=)J0hMXfo2%DFM@L_^f+qOt z#$;q^flts|a>%R8tce!rkYRnZRo#mqd@)L=*_Ywu<3akijGSjxjhNA|O<1wCyoJw{ z&JX&JswsA13Ay-2g@&NfJvk7XO2*Wf#Rif7CMampo$9QeW; zSJ(-spvvc%m0dhN`smxbBlU|fzSzkSHWBUJqd##?*+dwhuBJ#PhlOeNSx*3|mJ6S?McADNE!Q`0y zFyqN7R?>=cqEsP#Yewk%zLZtlJWhZ0H`7S%edsD_#t&gveZnDG<&Uses%7gp1&;bV(QQL# z;1v^H*NT@`8K!eEyBD5~)!*8I3-{G-q&={>&prADukZYO`pa*4A70VGINUeh;cv2u z<2&I!Ovhr%xr@l&Cy2R@PPi}1bnQlejW#y?Vlld7OaB> zFXJyf;yReXhu;3KUI;wKFcLB3h7KA!MIs3f;SG=0mtN41Xp=9!mpyN?GuP3`8;1@Z zIhrwEYJhED5)~K+4!kxUKY60~Gf7LH$Lr!YOuzf|m);7t-+au$_Oxh}B~m^|jvSl5 z^rbIPFTC(lka{xCHivVpOAr*vzWH87oKt3m0WFcjAQ(~RULaYFry6;2yKNrgzjc1AtZy$G1NZA+Zlr@RYJ_@j4ZJrfHUMiGgBO<5wI;N zvm6vIgAFE*IrwKMm(f;EDk~@8z}zQ}p9;*F-?+!FzX77cqF;szLt|V9t;QhNo3)C= zM{pYi#NdEO0HxG$l#>Le42c0{xL4)bVE~oZjEot8Hb1>(dWuI-c^cebMBu(q8R2`871fF zLIKD`ngOKPC<)aImLn+dv+K55YDtBba#L0WI{*A1{UjLh0$7cal0Yv?NWbWZSooqr zTAVP?3F!P@r5xJA3m$5zBu6g+B&5_3=ehKTb?Sh_Hym=_y4)ekjuLC)BKInfMh6OP zR(zc28k5}TS&n6f)LHbtiY)L!7FxjltmMF4zV&0T8x7+=__FUK&Dc4RoF}k(=QW2- zMimcn)I6^|btp$TNZU(Bl0kx?pWy{`qEJJ`Tp5)X6h0mTN9mg1y-LNJ(K^TBH@7p| z)|N_GF&-yRoa((9LGW&HLqU@vMz99dfEEsabM`3ekpRg9Eo+Uerfq-gUr8os)-hyg zBnaA)c8l*(!N7?gGZtf}a2`Kww(I;4X#EYY16#+Lb_7zMZ$b|2k-s&;E4)|-kAP+) z8BOnnXCzO@uyHVaXI#j;=ge%GDU3fJo`^w>E(3=#3obaFsw!^d7b7W*13w)bSOb$U z#hC%*@OAv1>;BHYgJ;N~n9Bl87rr``NfS0eU z^Ye81UoYB=j4VrE+!dUOCUvBH=O|6B4avReUK+TEoRYWv4L90ypMxGDlXFFe-{*I# zOQQ9AV8Q!WV-LtI*yx1H%pga3zd>`yZH9gKdCC^5t*oP~jQU12x`BLOB@(OdWuKahLX7`_W$;1Qk#XN4iKG)Wk^@QL5kRF3daY&88v-;I)ZaE&&5 z3!r>ypdGk7P!|^dj*al1ayH4HF>EyZK>pYmYe*fsd(n~}*C zZ0MS?Y34l1F%mOh->l9FcKAmVaDb`F;#^mKv^isuyaBT#xAr#`q^h#mH+(o(mik*e zuA%Q-t)^Xl(3$QvKI3#x{i(nL2Y716h0nsf5Rl@-wh>t1UWFT)JGF1t*3t6ne8PhX z5qgC#BVYU_FtHEhgP#wECcPtz#s(I?hCaXnKWJ!X9LzT2n_=(o6h@Aje>?|9ea^wP zbH3lRZ{Rz&*w`HUp@W?68`q=r7x-oPRQM*e$WQz=?eo*{!+|NlDv#sBg1b@~zEV;}o?gK*gkO4<5h%+9DR zU7Ua`KJwkz>lI5^O^fa>neN`=P%+WDUWZU-@MU(u_Q>Y!stVc%S;@7yBGW zn(q||)Dg|^t_i+mTnX#dYnP`pXHT^)LZO7mE~gR^5(jvc(~F@ot>-B*-;W$U@P^?c zT#TIGj1R22rT6)rvmV*Ym@jq>rQOSK#34}*PT45&tRe~Ab`=%`Q=ahVeTlDrspLvXt#2icLlGVHm=_|ZCn?_wQ>ZK z;B;_|{>jh&N(I;K5cD8I^qQe&2Fe1$BP#^4@#EKPKS>inNFWQJuQzD&~>UA zHyR6?JgeN&I4Bb{Zcl&W3srLG&Y$a=IBVzywq7~M=x)z=7+VU&{j!UkYck;z&zkX5 z8VM&(iVOa##PD6|eP=o=`>B1g^L4|EUlx>Y+6Sj6B`VIJwSIZ*dV1pci3X0h(gufQ zILdP$Tp#>4O&89NSKhhCS%(AtFw%IZo4g6$3_NsPl(8<#xQmP&gUhtZB~LpXtjKzI z_0F~V_kcQGymIypz6@DAF0Wqm$beynFD*qsxYd1HhC2b&>A-t7PIv%n@U(8z`e|hx z=atb_X6qIQHV)N^vk6`qrnGtW+Sq*UN`ja>ksa^ry^!G6`XrSbmS7mpRx+@COB@iT zv%@*8AuDtlew`H#=P>>SFbC(!tfR5Hl#wiq#W_m;>PRmf+GG@Mie`q|>qahJygHpa zd3HK-_;_UNPD@LdL|2;;SRDPKlvg`9uLz`vE&|J}7dZlT_H!Li6!GCH;z?Jz4&S75 z`3eqs#vwS$`Nphbo*(7p%exuf@BG@wyMC2U^vVhxWZ5n}&@%$E>L+@tGM<1jc@5?M5U%>mj^wM%$YqEP0y01j z7g;-X#>SbE>GXd)e|xjWxj0a*;>dH|kSqNAiQjxGw(@4P`bUnO2;SllpFCGtvl-^u z)8`XxUz@Jx`NeTO)~s4KZP~PL+Ojh?WkUjsb<4XUmSrRQ%_u8loJcz!ug`BQSJPq3 zrqc&6B;ZAB%X`=ZI%FiwMtS1->GcDzPY2@IJomNddmecCz;rxt2{tdCA3^7tQ)e51 zORlojeZvFU4qtf<6JEM}_Hw_|vFtD1<*g9t0RNJu4a|cNNg%W0vqSB3IPD{7nuB83 zot^ze*DwJ-I&>{QKm`zF3+{g3mLG_)~yo6F~vf*sSd9OV7*_+G}C( zy3Mm}#I_{C*6!RhX0`Ye^qTe7f*j-dum04ZZ_>Qy^N`x{kg84~%HZA0lU~VzYni!yoK8(9wPhw{CgOq_w20+fNg5@iE9C zoclBe_iMv=*?0a7UP5pE&_R5@CTDV>@B4q|!{tGV9&dkO>+l%58mD&2%4mQ1a-B5E z^L{sGRd?jXJ@l!2Tz3=w(bsy#-~7{m=6}rf5%BO?^@AS;nx1tU3p%#lg#bq&&ZfdA zyx`ecPYIUY2ex_a&cFW;{#l>12{D`ry!jGjz_a>xzu)+IVAhV(V|}^@AEKoyfJYyF zq!TXaXD=W@Ie5VQZ+_)Bicbe#0spKkwKe}u_cj@se(A#|IUKpiPWlojt@;Y@xn>E9 z1lZM#5j_NV|MKU4wfsNq($LptZv|RTV>TW%hcinBY$)m;c$?wzEF4H)*vZ`Z@q<%r z05|V{{|AOFmyRPzQQsr5fZgB2H&P`Ty`RJHGi*Z_eO;%`&-!~l&<~FP=HL8@wnKj0 zA{#47t=V=QGZ}^uTxueht1q16ukP)l7heXBR}3HKCXd(h84ZE z34iD{;)<~oKb+~`HHY@y?*y;s@f~=LiQnv=|Ng)Ki+SejJDY#~gsaGXbeiW?TDt#U z?DeHQZ@GaDXuZYhNOTC_&Su#3pSK^J@P?}3TonL+`QJYlIP0y$f%$ju+12tAGp`gs zW`w5UaD@SG-;G0Yqp!#itSL)1+an0*nzRs#Lv!oqSl2^oV^B;hdxQ~sgs5e{Fcw1E zgoKm3G6r`z6#{F2d%x$Z2HifvW8J9|PtHAM&)K#?&&DlVYm97UrmQYJ)&sNoIyQ__ zh8LkB1cYuu*uZ8T*mxDkwiulq-7s!roS%0*`NZ`0oDV8a z_Te1Yh7oJRAon{ceZe2Rx^i9lP<}Ti&rmSRVQqqTFv{xXmtUS&Zi8hjq@0Ge{)8{B}woT8B*b32jWvF?M^J| zb*{#si8l0K7z=uKCIH`tm;7^3;yuwe_c6RmjLCzco!=Miy zpHF|!kkd_X9L1v`YUoqgo6q^(#mc88cLuHFn5|sa+3cOWwoOY`2A*7#5VXgF>MKbK za%QdT+Vy4!B!EN1rGrc8A;D9}j1O|ajWycn&%r)-=4^s|ugY3@on`n4m-(&~k*=&m z7<@D^girjI_RMg1?Q{ypqUjkYgs&%art+A`t5tv&E{V==NH8IhDDBi8bI3&4%oiYpf` zPM4#*By#x^j(b4O9UVqgq`CEJ1VZ#JQGfm-7KlK@MFWPbRl_a}1m$8~bHy-k) zgkSLKfCuZ!y>`x02)|`83-*A%zEK<24Q_M){Hi^Dn;3A7y>X9g0zJIwD9+O7>;r%e ztdixm5qTKQ5(z4zR9E0b%SOyRJLs=rGe+`fo|(mq0vPy!1A5KC- zf(IV@Y}x}WSlA0ekCQ!yUw!dyoimT3m**M;pE=V&2Mruxn(6E?Zii>*z{#vPnOAwG z9rv`FC}T1X!H~ZtM+EMB?%SO9@oVOG;SN_nqYhEvB&!QE^_Rst*fpd zx=B0ap6}&v_J}_?+e$cw6Zbg^YfguC-(A}sJk>sezrI{}AuxGne)i4ZwXI#xp&Pu< zhqg=az%u)GuF=R$WL@aP zKMJ90uLRoO0AxdKHp>!7o5YD9y|VD%Ki(=MUnnF0fj{`&Veq}pzPhG7jiYA6Av|7( zDh%U2$+D2UckbydSe=Uej&L%bp+guP6UT7nJEABjqVy>U0`=%)4~C#o-XSLCz~QjD zloFJCF~nxJJ6jS4m`ln>un=a?KLI-C;ACPlWmr@eMt+?N1_ zkqHATamb-9o2dx4yT&#HV59`uJ9fw%$H<1U8H$#8M4-A$<8ALSJd?IY3756dX0MHj zFs)uaW+h$2uo;G+V*p#48$E>v9 z_V@#(t?a+337o)mF1y7XM#bLd@{R$%(JmILy6Wl_&R;&e8-O0XNThQ)hpBX z`?mCZU)>eO?%lciWYi>7z%6^cZq2&FZ`{iLt);exy$YDz2Vq?^p7Bf6aH<66#u$z% zeAe^Tm;~m+7d~KUI_sZnXy`utb2Id~EeOs1uGbLdWV9MYroZwEe#|}IsSgHM(L23& z>|}ME{i$#jPw2dWd-shW86SElzvHKzE(;oLO1OLl+0Fg=opG)#xi|d_HtCcVD-)oF zkIWc%zlz|RjLPnFIMG)dg*5%zkj^G;xi!4i%N-B6IFCW)xR#SnNf+a9cW9rDYilYeBXn6n;^R#K3thkYl+RE480XxhTjBD zbEz;I8DnlM9F?omZ_Jc>1(rYwt_oY)RJJXUdgOsU<)tof$vDiObM}3bS@j6egeWbXrH`5AvTuw1je^3wItX#-saV(3CQ8jDvgT4%jsnb*kS>v*05*5SYR3gOA=ft>`+qksP24(YzZN2G3(Jm9v#& zOORGY&QXCb0uR1%R5mky@=5lge zIzt}#oGNjww{*>z@B^H4Mpv#{9_%PpUN!C7y`^orCa@Ut!TB3>sRNic=o_?l&>E=j=dR8SS+>qhE5hMJtF*sE^j=$>j z1Wx`fUjwY}H#W%=`b(Svb$F;gb$H<2-}s*TMgyhngFPKoS`GQ*Ll2%98=9_Lx4z>? zH@aZfhu}7T&*M3~MZfTY;X40K-|{W*u3Sid><-_%2fKO}d^S(E_mo3oV9VBR#j#~+ zU}nGgUt|y;!a3eTNBrYn*Z6?n`JM0Scl^z^nAGW-_wXyZHMaV9`K`Fhv*=7tJ#Tz; z2)zjx^$~KP=epiI{wh59`@6pD+Y7V%9iG8E@HTkH(nhZbzS&LCUbQYeel|S@hx~W6 zF{!n6+m_<%#?7%5a!F#pJ9pyyhmK!;_PMv#Y`^)KgYCzk*dOI?2g2cqGa}x(X%ij- zP|K3&nSkuswQJhCWqUVQ;5i}?Wo9;K*|J3us3@z=>&tXDBBB@(kfFqM7=@s4vgUUh zrhyt+>%{8Nr#pg*>nXRkk>@x=f*ETO{Y@!YZ;OdAm~8NlojdA)U}z2l;jN%>Sn_wB z&GgsVid?6dJ?m4@e?H6!2P5-&Z#uP*Eo3;MfdSxfQ=GH$VB9Dvj7N!&F-G8O%!YEH zj0neYmKeq12!o}LO>k(&Q6@09Cw;`>h_dZ^vB0OzI)Q1EGHAdH!aQdqie@DfNSP%t zTf-P|5a3AQKyX_Ed+uUqF)y4;pw`zF#UMqn&YU?{WlgAMkQr3tfeUN10%?^EqXk!Z zp@C@N0xP276$;HMXypWH&#^X&=4NO`h~bSgG!|o{Xebi*;wK7i&cq7%DFlw8!{#?; zYX#U!S|~M6SJyX(543&d;j4?0R;w>*$69LNz z*%&Ys_Rt&sl!ub-;?cjfCm>KJJl2s$7luXxgn&$Miaxt!MEh3Bo?aoy}~ zgKl>gZ(yRAC7{AH_u}kud;|OFlXC|av`8@4`vPa$Koj!Sq+#GTlYsA3T);Wm#-GaV z>y)7}haj>=4&Im@EKhUZz>z+UJ$yC-W^fO93<|x*45|CVhv5NVd`c+M?|42V={-vP z=tj0?j5p7uEqsI*hyEGKJ2LM&z2g%fj;fRJS^i0~3WoGA@Wun|%8ls8dp3H*b9XuE z5*iW%@SY$(vb$}^*2=gbR-30zpR9e6(Cd52b2B;S>5Z!J6=+qApx4Mx(9*21=_f!@|o-G z(%fEkFe8woZ$HRoG-D$KPYoC(eS=Rj4pw?sb5v1@V0Hf`E4ZQinJ@Icy7I$wKf zjM`1798Akul;f8#jU)Zq)J>HJfblJYwWvCguia7gXNLUa0 z&$<~L#=vi3Q`rIdz_d}V84+ozvL1XeUDlffpB)(&4 zTPHu`7_uIo%zgY0pR?^5OCtCs@sIFO@a$f{d#<19m)zM^SZ;cD4e};mTy8k|E+5Jh3b~ z&~?>~0_`r9I(#&Jh3>(Nv3B38_|D!$pmOorO@5N)57BwinM)Rr%;&F*I9P2PbVf8D+vn7#+qy&^d~fn7atP z{_HwQm>5Ao2y!JPI+pzHlX7qAU_R{dB!nbg>Z`QZS0C}*hvf0pWyLQw-TX$CD7C0D$A|TI_O_Xai zP%h9j#)V#RC;&(U#gk8PH;66`0!yCt_soxY1N1)0Hb?wg#wml#z}Y8(qXXZ@bM~B_ zULzNAZUq&Baz;u&)~#O6bDSNCKIP^rI+jO=>3^;Dn$eLr)7OpsuEK(YZ!FbU8MEM2 zMaY8K^eAt*FL2{e02_<3cHMj0&V_|>h0guGaYNg^r%Vb!>Ch z&dz877a?`~DBj>dr+eLp7d?y5!339ZR(-7H!kp*eH@sk6oHKvZ5&5I*F4sl|>F5Ud zxvow3NFrF{O@DOf=r|$9z)>-#p*u4scuH{8S84%x5-7(pNq=>?V}Bf+al8&rx&R+R zNH@EZq^fPnHM|#IBHQj0AesSfkPv#~OXIRprq^Pvq*K6vHgQOliqEs>>`?#rSZ z(hTo)Gp^|JyV2>!G};PSq1)Upo9CpH3`HVuR5O4*zlUzxU0{*YVa%xKSB>Q;E%JRX z$6ghh3Z^)%OJt!{&@0%OZdsPFXy`HIkW}6nCz5<^ zi37bUdXz)0#M98(5pPdvawL2p&@maucp#(Z7}2`)jr!&@it1YHcbo^hh} zY=B{~65tqM)~1eW^POT^nx1Q8B)#;mi!d7dpK z(|jUhC?DdJ9DFaft$tO;#ReB|p&@**Q^tzlY?R9nsy@p7aAgw0Oy!`d;P_es!?X2e ztH0BSgakO~8YRK}8f{x6uVmlssQ?a7J^SplwZnoE{RlGIH1P8W$OyTjpU5CtqkGYh zj0`)BrlV?6B1rJ5k3sK|9Cd&REMU?nx;pH)gSL_cDjUpB^EJsAI+L&Z7U^rqNpwmC zNWWmxhq2H6G$uwyIXxKXga(+wFi+(8PKVQPDr)8`uvcGuz3{10oox;u$S2z*nbp8O z-@!*7no!Jl{je|iACB<`IN$)kz^l`JXbK0uWwG7%zrVhq04U{qk3y4S^|5rMF@85bxUM@mdlY`WnCxhS8F_RPMHY z`<7|{Bm1Y#TeePT!sIpp8#|6B*b2dGw8Mdf&5Q}+k}=stYbl$pixRsLrs5#23=mM`~?$FW{cX_57}W}VD@a5e=N`r#BU@9f~BGUM8`EwfLNGsxDq zab&#HkM;JPcRE&Kh1nyO(<6^OQl>O(cRlc&I(3pXP1dTfh!e3g%*N2%7v{Wj<B_YzlOTO@o&7w?NQ5pn2bvvT<&A{f=e8Z&g9kf+ zjsOvEVj@QwWni*Z{$W>% z9fi9<$5k<^W=Ui>1$$;MbX~^~zsLBsswDWfL1A~8&e+2el>rL4LYsra2D^>u>|@|> zM%zp+1xWFGy8xKGCMS$AGW27nJ>Pl{UZ?bZM{Do9)d#227zG-f=UJ9yI`Osy)~dA& zvvIlq)Y;QDeE09We_FYIRZHzuQ8a;sLg{zFpT2aPtHNT=v9k%N{6;>h4m9i9)xg}@ z*qnHH{1`YnZ^eC%TqDom1

    +`W$xaMIQ+` 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 z zzn8MxOup^gv!`u~&Qskr61i4oli_FZJa=}yWC!_Ia7|leVi}^5<2LJ*slvk@e~kQ9 z?fK`vQidm3y9Db5F7X!H!Ee@rj*eMJDd@hYoL9fYFI|9{1?=HWwUw-r`J(~BAAvbK z^E+QXS^c61at&X46%PcbkmNIG%~F@D=E(O0{V+hsM#qYVhAdEK6a2-Y$+%S8fzhLn zJkqXRyk2XWw}4~X>FeeN&B?bIz4^Zi6;7^i^iRrfj*Jxqprh!k`_XH)geyGletn`j zC9F#O8OdM#^f#(qZ5Wr}er?j1cN?PFN1&E3t>mbM{$npN;$=7w>_1QrqP-}-{he3Z zcVGEld+qf%+xYqOrB`Ltl)$I;@XTWStxta?V-BAL2C=dtD+FZG+k?PtG`Q+A1#Jk{ znVaPZU?xjvOsa~&6#uh%(4|C#bJ6W_vU|_2ws-ID_Ame0zmI)!qa1o|@7}dD?M2Sz zZ!X@3W#@EoIN?@+pUtu-b`JRk&#Fz(!r17x_Ap~2r_eLrv8(^c#!c;C{gYo8OQ_8Q zFN|MoHy0K&2j~0asTO|ja=eym#c?JR$|g%Y99MRUvEUbWq7y65pTC%XJIz}*;)1`A zee_c`UVPxWOus&}-3TnQy8?E(@K)Jyxd~qlHu*r8_{)5T`|!k&ee}%V`rCiM@L?0+ zvi%}I(6@IEKe%|2=Q6e&NwmQkrr*IRmRH$;zL$L!xUim=!;Mb$<9hXtw{ze6`dfgO zT&$lSc78WjdRpMnWn2QLwc%o9+MeLtCX4!{W7zlTLuCaVgEzR73!nPTm)`kZ<&!?O zNAGwE;Ng9?iGZPjXct}LFYtjUdZ6@c{`NZ<`WqjS$Nv7?fBTmU?v8WAd!AwAsfq;$ zaM33HYzc}vl4#>mk}2oDiT=8(>7j*KWyv)@F-WU9(|2qRnn zRd7h3?$HOO!C2T7g_Ya$9Y^a{7`>O-$mA2A%1S714p5q|W26WuYnnZX!HQ_(^fG!F zncUuoafYLv%K(+(6^$ckM7NBoqP75=3uDw7+V`yM3bCjCL2#He9C(4r&M2(?%2uL4 zMZC0Eo1mm^0&ZX&c<^Gd!4G5JRmvm%G7x>X{!=uO;b*WJX`b&9b(>&W^U4q<6ySn! zwtw%QF!lB*W)bulQ35n2bSX>`!)|yfV`KF7%sNzcTvZe^b1RR@l{ddBBkY+H5bQ=a zMO)dq&}@~Pao&oq38gf;+{RE{p|Q$%hc>|1JrR55oDx#L=eVKsLx&Gnv=6*EGcvyB zsej`vp_Au3jR&qQ-(30@lo-l?5k@}}&+kPbohH(TdyS*Ffz%09aOjymk#@?JQ}3vu zwQH0sI&P=a2IEt3z&IES%HNKiI2Pw+OL%vwUA}U;HrL{4qIuBBX7bs`S%LYs}jV!h9FgtWD*lq?}kkay$!_Oj4^Sc(&z z2IVj)1yJZP=vi$z8DQyRcrvO41e8LmT%g?1VU-XH1_cjFfbp#M@Ox!{^T(>tmfT#%fVYQ6UE6k!r7dzv05bFyo*}+u0MQr#QT#HJBJi8zIHP4* zFiRe)@*%urJYoyh8@W=(P@V@b z@GO@rp|H$#kA@Wqf z?(Fz@9nbXtWA8tlH@njNu=92Ujm|j-G=Oe|K^RQr3`sGQqGZW(tlh2JD%-WLty=GL z*Rs8}l4xmdi59(*B}=5W6lDcUG|3eyF%5^D#L0Ouzzo75=gv9jZglVW^F6;i1F`%c z828t=-}k-YgeO1GdCocLa)0>i(BTmbWY95srTm)S#Ia=n+FFuq-*ea9aWFO&pZZgo zkrRzL1**}*{^-(!hYkmKV;f0r)JJ%uV;%YnzTnW2jnKx%=rN;A>g?Rr$XiAl!<`RGS`9q0-?zxzzSYrkXA;4m!F z1{r&I^n%06*bHjH%C7SgSp%NMPs%pp#cAenqXl!OR|l_7LEvF0q>t*(^Rirw@Zw&X zVuCIfhjkR!smrH8DVh=FVaT67dm;Rnwk#&QMz)iKlkKF#j6w@wh9P51y;XVm`WvrD zE?anWOe51~hpAR{){Tx_jZw`mWR`1i+C8S@)aw_yjYp0z=mU$Vk@cMZp{r94*(#_W zIY8I5QD(Wpd13sk$A~RwX^aYnp0y<~G_8exC5P0H7nR-lym9nR^WebTbN4;d-o1MV zPC`GPwL17LC)faQy!K{ow{)etP+7J!6C6X+9igsVw;sWG4{d7)`9yZS9LMU3C%!$s z_~J|L>%M*aqbHBlxtnRqr}y9t9oCu5K^C~K95REPV|UDS>Nj4|cC?2#$+FqmcFn2$ zxi0Ss`j#hi&Hb5Pv`HI1<2oR+Q|OrLoX9aeu_#4(_Q;_lU317`n^2>%oJ)M`Xm%PJ zi2c_i<*`*wrSTlTQ6{{Dr3_Uz3>t(Bd_VUS4dAu8UxU7G^xi_z->rA(5Ccdfs5^L+ zEu44LSMPVwAh2flk}=L9>%n@^?ktyv+#Xqo^WiyJI_`N6>|IkfoOw@sT=QEyXIu(? z8O1jOe%GD5d#`n-9JGu+_1)ne_)(tcjpEZW;K50raW%Kir{AvoKKBJY@QS*8cPQ6y za>{`w(3AJo?|tQX-!<(P2=JUTT-QGE1s`xwpK|ARxHr$?ZxHiO9Pgx&FQk#*bMKY{ zX)Lurj55HS6?hS{KuCyaCQ5Tc&xGlv9*;Rt=KYMVJ-i2@3<}=~5z=hAc~Uqg*T*pw z9Hc^C{)Z4<#tq_9zeq9XjzPshVZ<_e-P^fqOB9^>Ln5A( zw+Q=)M5Q+YXzFCn79Jd^5PSN`*}au+*C1wuMgaj30mHCoPB-N>{}{F$2P1;^WClh? zwRB4FauIzm!^UV~bm9rImS? zVQb;9JV%LBu7Mk2tnjkw<+127(f$X zfHS`fi?ji)Ilu*@o7?Cb8gO45PMtX25rU|o?ghGJQE-&MB{5p{-Fxe-sGR4~)G*=# zi?q|(AVTQR2%k~8;wcJoWt<1|a0Q;UKtJ$~jczayj#y5&AN zp%-+Cw~g478*8Q1r!8m=EjO^1wiscTX@Jfc+Xw*dEQ(xi3VptVHT-mor`v{8L>`ql za-f?*(<4B<``+y_21Z((-%XLueRM&Nd!H^st7JOE0`GaoHO4^~?aA}%VOW591Hf?* z@DKnP(YSt-fs239+K_FymrkgG>UZjs0i+JJ;QpdKKj@UqL3g3@oZ3z1+1hA0#y0}r z({Wy|P512FRvC)M1*o+3NE~sR1f6tSrN}fRV)U@UN^u3ZdA8F@Lf?qkD7SVAVhH$+ z5p8ge+z;;Wx_5W)!@YXU*}joBJoK)2r7c&w5-%7!1!;_6A3JfZ_0horN$78NohWtB zaJKuyaM*^S7KBd^Km0&oFl-A4nA5-H!nuVYzP6!1G&Jx(f~e~D8hrr|=!1-2zGCUL zdF!Ui8g=6-ecQ5qU8lh)hY{Op6RmZW0bgV@y)j^B9fjd!k~ie83ccsB!heG)3`f8_t z?A*00b%sCBn=)t@gJs17d_VlqJ+&RwC%C~@oJZ&iztDOEwD}Gn+VK2yFH9$+hpO)b z53+?!GBvC^Eq$Rc)rr>yAn@SMog33Gqlj0kORUXf07wu4Ui7_d?)po84rY3#(2S3!$?>zOL$ShOx#vJnWqR#f(bs!&9F9@gM(@2I=N`+w`uf zR0j_pEF2FVI$YWG4kNr^l-RVuyA+jg*-87!@d)Bb~p4o=78s6X`Z!`;TXqvGisdS=7Xwd%IZ37CN&8;q@PJpg=)2b}dI zQkPRb+MqAKgOB>$bND`NY+Hf~jt$%1_y67h{@?Ap4%g;)m9M{O)vg+@&nw@n18xRB z#|q{Su$t?1%?=FgN<8`pAN}MzbGF}p%+7X1WtAjgmK$;aVu>neBV8dfN(*rZcQuwV z)X5MK219rZEr2$68S`OO0&Fa!QyhDik%`jsvGwSMW2gU@^7>S4>ALBr3 zC4lv$LR@v1Kf-O9{)BJG2>FhPuq8gVh!-nWACTm6fXR0>zNpT1VNqu+|$>a z*J3coAP$t9mREt9y20Kk+T2(4WQ$|4K!5ONuDDTI0uanim++n7=1iE=8!(QDePF$2 z-P*#3KxaTRIGjoq@uh${sT6us1c$sT%xlmM43}ONtSvq%8}$T@d1NTp4My8z)Syqw zhhcH zx0km#>E^A^qnco|X^Xu_$NV;1#1OjPa}d~M1XzJhqwVkzxHE#m9KAQ2!3+7%Xc!td z9pUKVW938i$^p`6a;AI}{&Kx1I?O#Vf>)!==m>gcG7sCdB6(W6{-{#=Y0 zG_pR94W7XF;K9&h{DB92!1wKWjw6c)N3dl$8s)XnD5GT#KFz@wZGu?v&_@op73~?E z+qQ0=?%lh$?~atTB{6&{ukd2}=IHc~fK-$okE_orzUa}M+0GS9dD4`XBluQ2Odo6! zb>W;jWjAU}c~&6Njt<&oR9@i%Is#$cxgmJrSTJA(s$>A{KXj^S1I*z+IT5Rb`$4yOep+^W^iA4MkJ{1?pW}Fe)Xwt{@4zM6BL6L5c`-aFbEDI?f-moC zzisW*BTZFct!+&E1%XOG>04!63}WSi6`i~!x&>Sr$(OHODhx(&Byuh9YG)15;CW@< zvqjy`ZQDCSD@9ZvWq*LFg?x@2I~x3rfPtwLgXSVf&`oF+-3oY;1p+$c2fTZpETxM( z@4n9uhlV3zih!dul>wGx`Qm zMv>L2PvAGw&MoRFSU%*len_*$cf&@oihJ6h_e{G`4n4z0!Y2*Rr99Fbe_3$V;$@Yo zIlGRAdV>Q&NQO0<5ZKaJ&d8vp*h1`%oTZo0Rp)oZX-?M#%s80r8qdqDxIHvRp3Ahj zcHO?{t4kl8EsKp|CIcDzVU!Dhy}9qr(ASD)1PIOvPz*Zd;EeSV^a%_FE8rCVD;skS zoX5WLGEYn=M5l|U#~%A;^uqe-?z``d2f_g$q{qimE$@&i{tDDBj{;B=C-ukYVC&)9SzN0 z%e`gIB3RJ{u11!{jkhA(SB?GcM^?aw*8S2;FST!o@5v{h>>$R6Km7f1s_&n^`qi&> z>fu8VJv43KzN0vx`;`YjU?~9Fl!kOR!)EMg_qh!PQ8&!{1?$vy#|-`78&?Ghk7{A+61>~RG=FzYJ)c8 zNw%^!lkE<)h(6iu^peB-bTxiqYX}P0AgoI^X|R@tTTl*P8JoDUBa9%<){8_&)% zinEQ+)srtNYsqvtG+=7RyB~dbX&BsPT#^?uO=T*P&*US!jXrkZO|%AH+6d1xE__$- z{HY!K?o<1`wq~hPB7Dcb$IXXhkG+E zz7>3fE?@BXKl1T+ob9(Cv$K8ass)4=9HtUGs2CKF@25QXah>!sAetG3Ro~0{Y*)I7r996|Ss^O;Acr#DHjIDBTFRz-t&T7%~QUPR)|8y0&TKt6K&GUD~pd5O@Rw z(YqBZrH3w_&c-P+7ZyxAhcg00`-~dHA)#2qEI3jhrDHKGtJZg0tr&C!9>uV3&DyTQ z&Ef7yDW@lWD7@1+^j%{LuYHa^RrX@{sVr71u`kz4S} zB0yFO_pFf#hK_l!%CkDXoG@Eo=(mv-v|*vDT0RR0<*7Yz+LY|jgA^u!Vd#vN_fJem z;&hM;+9MkVJ$P==#aLBWJK&4*9C#MB=KR}dcU}1mEy8DE9-f_zQ84R>b@=7F=$?O3a^TNp!?XY^Y1$G#qoFU4t>o??CWvZ~jhw!8oYZ-u)TBj^T z!Aa{rZmogqH@mGAmK<~u`CH?U11easqK5$Z}E#-Aj^x(WsK;Xy-7+VgG zz^QqtR`ylDefy<2pF4jsM!Qjyi#2566D-F(@1^aty_%)tGpc0;RQ3k;4S*~k{AJWy z{hW5!Me!LD@NM2Xd~jgMTh1oA%;5t|_!##`02K_CPu_!NWf6xUZ9_BI1)t$PGP80Q z0p%F{GYl5}7&2;1OQD+_ga64Z0f(`D%*yUVJm?#V*ww&dTPKg7YFmung>t=IeMZi^ z?)zxV$fQB{zJr04y}L(n+E_go{!oNKo&^lae{&bf$U3Ww@0f18HQuKWv`f2(0lKI` zUGyPMQ9}LkH@ByRj<%*fX{~SALV;jK|0Je)JO6iHcPJ#Jw>+A%|?y2$@`T-d44vm2VC)1 zc=qDu@_N^wQ11fn1v9l7?C_s*l}SSDBj;041YS7Z=tw;remd1?wL@D4NI5dntI1i0 zc4ct%FgjvzGsMg5!38*S9M~WDV1}!}wDf+zr8#qyIn#ozaL6vX6}q{Z^R1lvRR<<8 zLUKEHY@2p$-&(uCK!XegnI=~K7mTrv1YHAX=!ns;{fNuj8Etco_Nh9CtYL$V)b!}+ zSy#^GeRb6Ch?b_u4?{!fS>N=9J{2J3;F2F>Z6C7rM$74u-y@4+WE0U9=tY~^M3p%yUzUu% zYKQXRlHOMy7?E|J^If~0;9CbfFj2nW+D3kOkG?^}-ot-*C=b?GfIsi>C){Um95{S1 z&i4N4k#|2*XPP`kuy`0VWBPw>=!_kF6rHgTTw z-F46DgHQIldp=#GPv>{F53QJ=Kd-Pq!vJj6<@*dP?Qv-D3^zlLWFdY2d%yp0I@^Py z-Z>VW;t|mWNC)DA7zp8bQ0AN(2jZpdyLejuAfgNsKwr8dvSRO9POX)=ZOb54h!Z!M z6v28YJe&8VH$>@EyfNN5>r&o0;0PHbQ$!GonGgYjIuJqf+Uu`PFTMP71zaeiM4^q} zb@;uX{+JWTAU5~g!a`@7~Dt92p{288D+??{FSh>=FcnULnk*{gC16JT&k`BLD+ z`EaPuNG+wqkVJefFCxt-Shc=ix#nOHg0au0aW4F>0|;KJ12Z%1!CxC41eN;1jd8`e z9gb-jE9J~-@9y}7Q_mATjIX9cZQD9+*tDU)!H2=?Z)Pri;XKw+&*>S5Ui_F!G+fXu8cTwGS!JrzspCVF(cXYXpZ-#aWPWxhS5DCmX7X) z+{$<1FYs3%9#npRr(IPPDbsV{UcntB>cIX3ogd9$V0cTD7HHrsNPlgLVieXLcZ7fQ zhh|JcV0>>6tc`fdrV!8>L6FOJs05Q_7#Ix`T!MFPr&J*E#?>3s$zx;BR?%^ekcg;u zqYWcO&7=q&F$yRk2A{To6-DP0P3q^IYCJyih`=0!Gxx4@CqC`N?lhW=con{13LJ` z<8ZB?_*Fafcg%krMhm!pcM1X+Yj^6z&$IF4IWSVE@^Y*14|yGrA#o~7#(FlV0i5UUBSKnGn&(^IylxJSe&-vfAZA10mI2s{kOh#ci?f;YZ^L-2tw*UP!X;Y#J@?b^0uAY{o&} zbmFl-n|Ej3!Eq~J1y1Qq;f3Mxm3PQg4uW)Y&knc_{`6kZ+PapcE~C#DmQ%lVE3D?e ziC$W{dI3hUMN+pQvFRPA@|>0#ckX=ao=3|$4BD-)UC5B#aqM{H|G~-`Bc#qQh!)x* z574sgrP(=x7Y+#8kTx!8Nsr*Els;V(oJ(KkOhN0xoH)Tb;MlIJQ$NZfucNDi#}(;^ zEwo;x+y^NqGeF9kQFtP@H;KL5A1ZJByZ0bU7bk)Y-*17=Fy)CpwZ+T8IP+fx5 zXL8<(KH%63iK7{r0j9EHYjVZ<9dpp1^F=3cyq2asx&h2?(e2So>J>OZqx6+~Xz501 z-@(qXknCG;Sx|0uXmNYfdhwM0J^AFfr$e!0UVZh|>CHFa4Bf0~N_o&TJ^So)rMrh8 zez?H~bU)jI>;X=;bJVG>&}Deup-dM<=Fs;uebO)Q zd!8)uyu;`=c#*X|gIhrob|w4{Th3Gk(^Q7t%I?u#cqb>c15exjRr|pgTx4<7cFKMB z%BVkfbxMItWs?!LWpZ!WGsF2)wsx_HXBkgobGj8k#uYAsXKmzML#K2)or2EP3s&S3 zzEdyRKsS;t%5`5Go$7<1+I1=0ch{WC(@(Hv=hcP|EZG!vpCGAs_!Lf+3DmbuIpIyY z)~zx{g1shCq*MA!2dU3VZjfI?m#(Q?0Xx}C@T)v^c~6<{>5DeP@6bEf>lgVf4ss8E z;Y)uU-kJNXtT*0xqZt}-i<#5g7_5hCNninuSn^h#HOWEfT`ED-AP zH;%Voln$qua&aG1B2Yq|BC(=xf2aNWJq(y|1p-Td{9z)7lc=o7)B25Zyp0Iu52O9o zzx=}}gH;j87DpqzIED)&l6in2BRt-I&JI=?Jz?~Hh;Q@dv8*XY)%BXMk$ z8#wy(E@z2zI160LS>0f3{(8@w!*C5+>m(Why>4!8-sglc92m!Qgx+!C+?mu*$XMXZ z$SebM%w^GbLI}fYyAymxPO;aD6``9LjBlm?=VA;TI&w4y{Nd?{Rie|*3u!ZhkyFE1 zf9z||OuO#7bK13g*R*ldro6v=INJ+O*(_)PPo0E`s5L`{vu(~A18&Vd?>gb?Yq3GDc+4uW}iRi~zxvHEY+U zjK$MuKK8Y4C3rc;!}-uA*f2)QI5F_l>3Kng?n{~W8u`>FbSD^L-sBC_7;GaGNA3LC zi_^*DXF5_Z<#QMtH>Z#M&ZkRHU}2;gj4YP6W%GvVT@TzpZP~J6+7LsXXq6E}1lIx2 z^R7t)U$%5fN9A5aFXo-VJO&VjZ2mkspnju@J9lntmJelX zF5`g%hr%asPKS>in@*lO*>w?&Zj$}vB093Sx6#<9h$=hq)`ri1_8YBN8){_aKuZ=- z;?&#EnZxZqoHJ^zJj}sTPBR$Nc4c`69hoz^dd0ZMj)r@+?mkB0zbl`GL$*w z%8<7WbOc9?c8hy4+^=1~94Glg;`XUC2E>`9jh?aq%zH`wj7lS{G3JU7p5##YzXb=PhP4Jd7;K?*GhGm_@)Qy&k%RG$M z8Q$pbqkr(JIz4c}2=*@AIhD!be)qfIJ>9jim0YJ=bI%GkJn^*`gWb_!4l^g$C;iyb^T-!%)K*TPIl}5A(;PBYPM?aQ9G!-)$aQTO z1Yjq*X8jX={^ei(&DJ|ctjMCkI56+}C<+Um;4QLKnGFmnFED|7bYua_2D4KieFdKA zfnyGzbO0Ii&96UST`SL%TY&Fi^gDgN zant77D@Mx5RQd*NwOx9>?c~6F>!vNyCu6^AGT{$C^0~^=I%H|L#mWQ@R;*YRhj&-> zjp<4Pu0wXfover9WRihnQ9&@1tuq48OCpPh{=r|S7m#=V{Ga@4bu!1tVVw~?(%mPP zfb;Ebp*O%h3Ez7&BSB(YF1iQ*_IqLkT z40=(Z0lktjU^j3f5NM&?Rl(`txtSMaJkIu>K0)li_?6!tvL)BRV(9U~17ruCV9FAn zgx4XHA_wzbU%=k!yL2T?O~T2 zweO%^Xy{PnG~9!`zRj{iz1nKp%IMcL{msAmcS}3^CL>b-1Psxl_Uena!PiU&a1U0> z(@yjcw%W@kGoS_^d=*n5%)d68{@?xFFO(i!_iPt&i(drho_$QBdob9(A6e*%9aRpd_HXACg`Q%uaxPw@8wHR2U<3_<6xo04SK+OND z(-y@~A&TY`WQ(Lp=b-SHEr-nIHGmny*KaUF7_~9ZVyJVzoeT|Wqm-z5hgKryR2fY{ zl!S!&*$A7EPQxejv+6wMAUv9)bkTg?D3=fsLPNBEBi5PmFi8Uk`7LsVs4%AAj5sOI zry_6}n4)PE$i^sreRhDwrcLXcs>P87Lw%R7NAW1TFwV0aH1+1A%+oJ9DQE!-_eGau zV$f_=a8_iOCg?EojeSk5#25Eu{?Uq)peMZ~B7#tk%0~YY@@D4*o@Cjd5 zX~ekhyv#I5fJQ3trWg{7@~)GTSQ15I9fNgE30zahTR?;X&iFFwtvBfV&RsiO7v)Nb z>+7KRTQy!7T=+-#wT)obKSEr3F{cD<(2vu1ePhXg*T@P^HCW#r=Fw787thDpyB^~` zh7+6$tQpNv2YG=Gm8U&q2pplIjT?=ytc-JF9;Z3c(x%6@ZRXW?n#Dq03|;{uBYU

    2?A;mqOdu<5ZtHab~)l??yo1x)!*djZuH;S`5hbae}Ng949pVdFy(x zo%hkP={XKC!<&>PBY4-&?cLUC@1DD-2jg%*_^$gp51zqn6@QRg8dfkF z0Gom0>CaRfewE#o<#Xl{Hb@5iW*PqqOVllA0;y3a=L z%mGDw!j9r)8ad-0k_WMPJbEa@Mdc< z^gBk@M-Ywv(=TN@1R2n<><0^Xk%O4gbS2pm{KSIkInS9AueKm#$u$UVn4n^p&rFeR}NiZ9R^*hr~);j2v1NZD|_c4Zt90rF*J!KTpXy4Izic)@78-D$4hkcE+F z^8UK@8v~=jKe*H$HsHFoMx3uT2rZ@F`VL@G{hL4Kfq~Ij_7~?54jgbUz`;>7Xn{AD zuZY7JUbS1q&Rsid=jp>^k3BYh@rz%mJiGJGozo+aJkkZxI5*n+(n~M*xkn#;Pjw<2 zgflbSA%X;U(?Ac}gdd#R;&bMM%A{P=e$P7F7xa>ImR+9lyiZOwe({_`d1%-tN6T~C zfxeZ8&e(6RqqntzX}1B(GvCYpkO>%`NZ$mg&V;wfcC;+3M;{!6UpR1f=^4`t1%8^@ zlKSu$UO>y_Fg>SqZN*F4m}c}{{nI9RVIz!zIr?G9!&$E5X|Trc>oOOhH!DfEOH8}CxpwG(4&t-ultMlS#}?BxOOd$w~;W$Hs)U)re%cB0#TWqFwsjyr7TQ?FkUwu(qFKXd!s*N?vQdjVw|!Fh7wuI9Az^Q#=HmV<3I4WLQ0}%7Sb6#qkaw;rr&k< z?kGcPh6FHwV=QLE@LsVZ0xZgbF{?an&y5OFig%>_1ZRPpz=g%5z`}oJqV&giirVix zWDx`}4norizmU6oJv1QS{VtsH3|jFUZW*0mERDaZ*zl3^I=?=3aN;_e5}ZBw=>2s9 zIQ`n7{cr-NaOgK7uH2piF?lf9tx{kBS=ecg#Oj{_Oc#t=GH8SY%RyMZQe=<7{9aZA zyo-VxVZ7~*D8Lx6`fl`-K|4lqVsM7u2&~d$U`iPJ^bEXG5{ydEpn;wD?2KZtC%e(E z7)T2=GsB2;Tmctw!n4x>N7CUKW1ewnGZ^&DeFu7BT=*0~5lAtIkpnNQgrl8e3O~XS z90Y&R{HfFD+ZIYg8z|N-5x5Kke2#X|pAr7@MfwB3-oJf$6k6_gfvX(Kt8&BNxn|xc z*lIfCieV0BBLa4e)IKxIz1>mkWJ@|tkde3z5z=6^(C&>twDG)}; zz^SX^rcYe}agmhsIJJ3}`~$a6x5($J(4L^%ycij_n&Ii8i%C+b@FhRQlRi0%esQa$_wuc@UQe|UA z;st%GKFH}EI8z^8=Do`H)J@J=D5=}X1qLz?1ZG33oog?X;>zX7vCtcRBbets`NG2h z9DzA}qkfmPQ@X#p@Gd+p4?N~{us`*Mfk?3&TRkaD|rsj%EU9~^};z=rn17~M}PQ(xfi{V`t0=K{XygA z5?>7bR~N_Tn4b*~HtQtq0bhMundjkYrcaB~X&ZY2CPp8|XwuzxhvxH)1-Oh}%lOlF z^MI|rusE{wN?@fe*Q0~)zwe$nzz?R*&~0d!41wdLCys?4BNM{k^cUE$|2l^>{azEi z{YU@N|DpA^5oxh0Ioo#Zs2q6yrI)7XpMQRO^|jYpzdhpD27i0^-aD<2925A!dj=6k zri1y!SEeQT?Dl8r3%QHu;qLx>?+)DT}&?Bh|3V;_|yILyevn3k#3%% z3TtpDJJ5@f`PvETx8S58xaW}e5B=y5cW>;YM~)Vja3QG4h7zoL;Qo7?WtSqSr=NOe z`qG!a(twZ^$RB+0!8qFY7gyvv+WGRAzg&m&hkodX>SWP3=4+$B4}9Q#rMISR=TlZ1 zheuoCcmy-X;E4LP2VGRBhEDwEQ2EZehY#ge7X@b)lIzr?^!wlc_x?iKHMT~R?(RMM z34WlEe$l>W9pr+PeY7}6_#+e39_{iS(%l1VbqV;Ri|gTEGI#5OlTCKeYwXDpTpf78 zm(hBIuJVi^33~3_?Odzf6~3oqWFl72p^3cL#enm62Lkf!hd%t?^m*6^4l)9cIra3( zun!}P=!?8VzEoD{->_wdo#oJn+Ciy*))DT3w`?`5k!ye9pJ$9*k9H2wAFBO}p9JRc6C9CWXcR0Se(3(`>tBC7I9XSJOmIXQ+HBe( z8dKMhX(PY^|GvYC!#(wrpT6TUztIT#a(ed9{#!rMPw%2HHh@L{z-g2*25x4!cvjtD zxg&dk z9iU@i0^9FWU4TxBB2=SEgqJjO2qbLR+LQLCISNL(jKDCASs+s77MLN%ia8J%P+E{k zFJrr_azb<*(f-CHDOZY;b}@)J(*yR~m&b^*^$GmJ8w13lFA5=` zY7|8{)@ckbZ2zJU3^I;>D(rJkFmvd;V=(Gii4hJ9=hkuSyNnDjjfkfG@UBmU_o>se z0nT)BDrw4#gPWKp)AjUS`q>?!u`W0j_=}|1kc%KA%m`rn@)A6Ca3h?wmvbxahEN2P zRm)aP+c$5W)~qnHb7?vmMb=TmwA09hPllK_X(zfcaz$v)!o#ONf*E=sH2ZAuKuO>a z{WAIk2I!?L0H>WC3~kY0qab)iDm@|Oy7p40O+(6QFM4UC6oT@H(LV51ob~&NzH)Sl zsxk65@B;qYfLDEvYs2_wSak7`l&ih!kj6@ZI}6vG@Wg;wv3g}QQ?5tJ$vBYVf}^9F zno5e_RV!7vbBV%#_=cjBCdLV|uutKUes;maoZwmIl)Ch(b>`ZLQWNAu2{=l#DO*>& z;9ZOWtK8!^3S9pg4(|KS0RkHil96tGrr_aKIRrlgALQoLboC4TFwBjFjp-h7{z8Wg zLilEo2-ImW<8=)KCS_iX({(FGh715S;#u?kHpS48J}2`=($478R~&rWAgolP4f zBjSXgJg!|tg8)frFn{N*tQ&r?(z3(X;yuQuWhI$~TgRS363=fJuKH=wR^IFkJP2HW=o6p2e&7 z%MJ$>Pp3|vnT{Vlk@kw(UoI`$>dUl%bUE(~y%P)-UU*LiQ@YV>MywsgpA64zsavI z_!S1`NC~8R#$kGaptkmJh*2ly7cG!A4(*r?Lk8#IWwL+3myyfycMbl@b^X^KG~p9I z+?&f|jN+$`wuc_+6OOif4z!1Mxz2d54qwVtw?q5TIryMYN1ffg!$}$$AY!q1F1)SrydDE6a2(64YgM5b$*#*|z(RWjL^owlMR!$K3ftyi&?+DNc zENTb%YKIfv^i};vpves~1;37<-qgkRwr<;!=a<(}`ob5!6ghpoTR4qX#<#aD?`qF? zzVn^7^`VCzjDA^Lm=;HAlltHWuHaNK2`*;+EdZb_bci17h>?pxI#=!h0RQw!L_t&w z_hIJEROn}x0g6EuU)=5{;Kfwt2X z)?^YW1A8!L(-=Sy6qE5phoJ>LQhv@;+N3O*CV~KH&1f+DLRJ;qEJf8m#e@203WRG0 zr<8$C(XLN@@r-_G7g%ZU;I=%QwrL;ujI5~P8|a&XKW+5g3o{&*IqL=XfMX5_t8>0i zH!8nb3c(Zq#CvUQK25Vi2kLp?{`*UhM-LyV&7v%FWF9?s(23fkyUFqN$o zbQ27jZ=93}gS=xz8$)ma8L{U4A$mrxfCcAjj>3b#b}2!D(yJMBMs7}@Ix~by-W~0X z8-Q7YOAaj~)HQ;3jJ}W2zBx*4z8|!kb}==HNh?=+P({XPSU=N+Vlwdjw8Sii8juSp_$mvR0=p-&0g^ z&sowp#+g&u19$os!IFOJD<@yT#|SGUQxumI*g!|xd^C#J{-xR_C7$zd&b%Oolu&|F z6kci@1IFsoXaLS@poT81OiE`Fyn!jc12?Ov;s?)CT0Y?p?9_**&`ZAd1b4LRUGxE` zl;GM85!}mVid+lK$LLP^JEzeL871d0UYSk>o@fBBmF0cq7>&?o{iP_?DUb!H_FBdR z6oG6M!kD4iQR$RFjLjiOv<+Y2OKpH#Cpa?z&;mT$#>=*P7Lzl=%z!d-Z2AbENx>;^ zI5Lb?>fXpRTEBSND)C@67A?Uec%$=zLt7%|WC0#!sB@|d%fLOtt31yUHp)^b1l^|1 z=R$8rjm>lNF1a8jY~^ysP#nvZtE)W80uGz^&HcT`F{^_u)pX7(F+bAO7pa@}9=D}b z4CS6lxLmj3QsB5arN@`I20!XyQRV1jTq=-o+(*byyd!}lCt$}1cDiR z!${G7!BO9}nOq@9mPaO|?_OVI=Zvwi8(QS>**>s1lWnAow6P0s#<78SZN?WeF)U~) zJLtJ*pX(x%ufNX0318%WBY3*h$VSy?(czvhnreV zCgQ`(moMgBd^+q6I3*kA5xpAuu^Daz-e`f*jo#DL^4?fv^|tDvuI!#`H3f~Dw)f~G4^A65tuOAzO43v3m4aKRD}h@+8RpkyRD|xqR)!9} zXZ|y1>rCXaa$gJmJ^TC%4NQUari~lQe`!u(fPXGT7t#+SptLA-ZIoL^%8CZq*kb}J z_+#+rur2jTo#3QT%BB0sY=`pMa}C40aeDymG|(2k_<4cRY(H zM$l|5x{0^+9S+qsM!bhCCdWDTWEzK^%_$hbStg^=4Ed#PWW|t0gSNo3!L6L=nGM8t zB#Y6Uy4-IjWA2le-UCw^4h{p8kA@cfK6Yfx-4>iDKh)`2Ws$?OA7ofO`tC=j`|iE3 zK7oNe%u!jh(0{o09vIb5%yn>ZpecAKU+5mw>aV(;V=g{ChK^G=8q)Sp{PCCG+4}44$LwsMK6h+^P=`{Gf-4<~ zfG32kObfY7A`nW1d4{1zkWexdaO75jFD0AOgmCvdnjAvp1QUFiZ&sLAtgayxv|~I> zjKM4(b16!h(Rh2Fe=EkebV`H;*@Ia`QHQaFi4j#D{9Nn&==>f5go=_HlAfWY2|>i9 zABc40mQ8IBVk4Xge~N~%ui>2z=|hEK+E)UNaH;W55hJ{G!!zInMxG(8IDO&%GRU-; zP>J!Y%+%{yZPG@4AfUl)q?_ss0#Ds3%k#7l0RVm&Kx!d))%lIls@>W&GgDzwc#lz0 z4jbh)r%DdxD#9rUurLzJnMxht%n2em)3|}Rw88s~CiRX$2g7C<5GkUtCYa#DJKB>j zbkwxz@VTz9j5o@mhG0H9pm66m13|E4w1d+!3}c^^)RCh{O0PzIwEd3st8*yRCh2-( z3zZ1`(A>rImquD>+NMwXOMnKz?H~B~bSU310^G&Dqz#BS(%_;pzX` z7#~K;87hPgW42pyoj$$Lo`sPyPG$_!;&}0`j$&xP#l+ga7&K`@>f;yY5tC4h->%y7dG8N^hx? zGUGVhiWY{S27+P;U(ff87Y3awL(l7M!&CZs6|XPQJtzB)I5+0Un(Ge_96zJjGw*Oj zIIH?jaXXAEpgBexn$;$hPeCtRa4y!z_%?DZ`0!TfKTxltCWAJt+b~&>&uF*QQ0?S| z-@G{jSGGPL>_hZY$cce<>cSk=8r7# zoCT)f6c2zWdLwV~44K&l=)fm^sSj72kD*KM`w(n){PoHM(WI+x9UE}pObB|z_GgW(rMe4Ee*_AHJ-sLON9=V>W_B8 z_iFC#zU$7w^K6Y?fkgCz&V6dXbH*b?2{gb5_;afErwzUfBBh8v<9Uvkg};{GVdRZ2 zTr?d#e58R#t2vWPMy0FQm*54uKm8B9l;5c#>6>k_@FQC6VsL?tQ7-{4rvTgWI1d67 zH^TQ&(?w2GS_9yLT@BB)vAQvz3}sIF)!&eT}!t8EO; zgUhYFcat1X`{`7CgKpsrt#i~GJW1b=A3IuyigR=%u($WEdHWB(>;4$gBY4*SrA!N& zp+9An7t`sR>F2e`i7uWOz?w=yFPVlVz1t229D`Tm)SnE#1-k{*jPmIpnZi+1er2Av zhkn^MmoC|UY*8GD==jJrQv|^Z9itaILZE_;M&IKd*U3G6hTq6U4hS70r~}5bG4x$v z8{F}_AnEKV$k?c(9l6u3@xq&AEVz-~!&Z+3C^uJTl$2dsoWkye%$$9y)xeZ35rw;?Su<2Y~~> zo2?i6M7Q3vt)n2PL)*y^wA}Yo4tfEb+1c)hZtmd`*TIVY{`eD5v|Nj9x^L|k0Zi%R zXzc8n)3NbS78bSTv@7uH`Vwh}GX7ne%U&J;xkW!0eAz+V(^B3IWSA7@IfNS<;?VlLh;8DF)`%fT; z9ke)nBde5+99|2oIz1?L;0+AzlZ}S1;Me;O)6&2$FPGoJqx}g?=wG%39n3+;JLJ2= z@A?L*Tew)0iao;}@nO#h-g1TWgo zzyuuNnat8_bvwa}FTnmlL+U>ryPV9CdG*!Do_fdGe)};y+rRhQe>fd{^XRmG@1)3F05r|oxc zsvt0zfn)pRV=qmI4j!9!?%Xsz{@8b>`|iKHMD)4Oe63sJ?7nAbkbJQU&xqgtSKgT3 zx)MRTY8lIXY}pVd|IQ1~HI0|TuVWoyPWc=-aHOLVMvV|H1;}VSyzkg_;q0Xt&BJM< z5D4m{`%h1&Pn?_f-hWryAwtEu`qXcKetJ25-uvKPWq8C)2>kIMeQkQXG6D;j#o^n3s6Gt(!)b!z<+wHnvN; zcI8sj107LqZR`09r$V^H*zNUDH734r>fCfA!fd%kMbiEn!V#3mtjv7$xZXpcWz1DBSo7r_xR(_#ppXf-MM4ybR&YsB31$QbnJZU zeJl0ezHGX1^-SoM-n$`F{Q^CvD&*DpokMMz2|CN$yq%+U*d#v)RLETzNvc=Ar{e6pjp8?fl|LzdpVC-0OYr!iB&m#yvrO?$D{U^WwC1*VZbMRclvu{{Pp$ z`1o`<{A+P1O79ZKAVPWn8^@=8uOFHocmLSdp`I`;UnN6i1P=({_*LR@b#W|?XCeUn}!1U z)|a1~jvhQ-euwWa>=-%o;#03rXCoi(zJGTNxiuXz#FL-+{m)LXzOsM1`<@+5g*3Xg zG`RScU;C{Zp?E*8RutJC>DFzf|4Wz8$M{?y{KYYgLc0+@I(p#fbcUfC_#QuaYFfV9 z9Mm<_H@@=B^uqJ6N1p7gJiQUvT?^cP_1AxQ`u5W=Odoj9Lutq2I9)~?-kP2XZjT>5 zJ?-9oXO$i2hlBIw&wO)w>ABaY2Oqw-3Kjj^XZ4wHy*M2We3slXM%GMm!Dk=&$fu{* z-Z;=Xokl=7|1vv%?~gt|J^%6>(+A)GPUV$l)6-K=zA!!V z=-%RE7{^PekN);V4iI@M=*LJ#;f}8h@pMv^zmtFJ~=RFj-M%yo5CXi!#N>~kLLQhI6-UU@F)kY zFPu3uJ)1rqJQ%sXdt2JQwDOaa{q4t|D}ODH_&4WYAV~jSeQAIAAkNW7K@lSg0(H~$ z)VE)V3_RT+2e}dAY8@Z_#HXj1Ur&GU-_vOy3_!B%U;XAMrf0wN%Jj&?cXzaL&)&OZ zAYYii@Y$yW&m+_Q58X9=`4f*%4?TKc>E#O_{p$2;_~ov9cUAt;F`UV-eERX}xu;*A zcHOx-@Iw2c^Hl%&FMex!;iWgyUx8AKT*in^IUoP@7dq!wy7#*tyuVJEX$c?wgHK1t zygA(${YcL;j0J_h_=RszuY|we^T-1=0vV-7CqMqluTC$%_(u6oTD`!M0Ob?kcp-ZE zVB|*ZkUATJ%ZsP4fAOj5_2`ki?%pf>LZcHTMW&;Iep9-Cf_+}pf;W95~AIhyz=K3#+vb#e*MAk1)eXxKHax>cd#fh7aogz`=9^GZ%&VY`?=}S2lteg z!Jc9LcmKh!O<(xRSLe9Kf9UGx|IR;}zWvOL)2^LqXWDo(&)*D5elhUZuPwR$rO!T5Il&PB zgWvzu^z5@Qgsyhfj<_=ppAocgKk;~j1WQBDu62MRy!|)-#{W2dHtl)zeGgX_3PQob z=l<|Z)0?jZZqc*sD>{KZ{=(8F3{M`|yiX|~bd_*=g?ec{Vr zpMLCzzkm9<|IaT>KltGfR^R>7FaNXY+i`aP{Ga7mRg5H1Qum7#-bD#Ud z^pijN;|)R{J9<1YzjOMv-}sH`lb`zIz~xrt*1p(`tERi-gn#RaC#N^xJTSfMUH6yw zlwgDO~yLNR!M!NCpjjPiOFTULMM%Jdx zSKr(h-hC_gR!lFv^75GbpYIJWfpc`~cb<7+I(qa({ER zi(i@k>`(vX^xyv6-=043zDH}n{11QUf117$`usD0<|iY+Mm81P{1^YlUztAs@jsq^ z`lo-Q4lmmb&HaOa@K2_vpMGw7=%M?kmtTH$tc#WRe)%8$%Jii#eQo-{2j25tdS=Uh z&WsdSway+|T{J(Ct@(-yg01RhWe|!4;7rr+A=#PB=^jH4t|9<+(pZKB5tpDrJ z{N?GRfB32CCw}|~>UW_v_5bW&`P~pwf8pQx>C!Tzk#F)J|HnTwee|QBOn-l@ zFjF@l;lKK?{#xt3d)vm+rl8zc9((fNaJCoy#83Q$z{~$;kI#Pgv(tb2pZ=%Qul&ld z#4y_v!ixgBcB8A#T6~CO%78XcYV*cTO+z9a%q27e_Qt+93S5z(JL>G*(UB&RF6qG> z01FE>{Vc`|f%NUiUz~pUM?Y95Y5IBEA+j&sfcz~ym58HXaE+Q|??eA+K^#o{bUTTX8zi zO@|N12$T}rsJ&4Ug7az(3k=4Pz$Bvh-Z8qyKN5}7ppLpmD4jfXWZLuKy&-DG;7EUM z`eynfb@2M4IN3`&=1}3~u=4WxIFIv+?w8I9l6mniz_yFRVkk@ls_ zEIuJ6XX*6pV=qka|B*-PG%!ls7wz;C;Xo-F2eQhet=x9sc~@b1Tk77idGoY7OnxB_ zv3X#NVuW6cL2&lu**YZBldlDsZ;>9Mg>zTVOe>eIDcvZ)PA!n74-C`>KGJS;ZN{iu z+MW815TZHH8$Dz!T#P{TF6U2#8eT-N8KfMPv!^ah>o=`SCF(XR9Xu~xJl(l#cX(#S z^vX-GhUU`8+l^2RA%-S2tsoC9JG!HtaVA6{m&eHz8DAONwZis`fMd(bRz;Tb<(s1quoZv_eH641fn~e zQW&I9Cl8;Q-u2$S)AnuKLNDRpC>+id51M1L(kb zQAa(UcL29QNWa8MwJ)j+g2RW724~me94)N@aq{S~X~UMy@(k<9{j$0#Hs0}IIOY-IyXD=?pAO`$-@gHBUGO@Uk)AGiX?I; z{W`ku@U;8>T`_QX<@b_0wVZ}Efgf5k!ipc3guu?Ep39f7O-BL?+f%Jty|$xWjEfbk zqKpG~Stq57z=9m3Ko1-^7?@s|_P=p#+I{!t$l(ih1Z?%e0B<%=`eww`sO6R|8>frm zBMSss%#Tr)?o1a$gGbYb^Z9MG2%U#T(%<2n3Npx^;hcT)V_%4awLA9~PxtJ-v-0F} zXHS1N)@Mh8E*+7^yLeSfWTt%7w2@;SVFI2M!*Z)~<`pj$k9to`3GSp_|etG=iV4 zf*;l?-&{O(a#|^1aNBSo@)3rJF_QNM8m|fh+ouEpV@tvj|%7W+9LdLj>v zJR4c%cppBTHU}^IX2j1Z>%KU`dmr4@An}shETAWI=4$7Y8*QYUta8r?gNqM;=>6?4 zSd&L5P8@51Z^w?UF^)meipSy||kjKvG9Rxj<= zVq^-v!x0mR$7}R~4qv=*u6n`f|EbtuvLMJ+GRR;Kn&E8!rT^+@s_UB`oa<~g4h0(w zjK;JHtJj|`kGWPFL7MOT(K^1cA@U;fK~efs&o`PZwfzxAze zPoMeB=cb1rdU)Eq_rB@5$N||dD^@L!Jlqt$a__Wn|C`e*!O45V1MhjyqwUMV*hjzl zoBwk9kstZt?hh}3*`0C%|5smqZF(gRs40)X{;R(={onuMf0nwJ2Uo{({gr9kwjG7n za8M$zLnmz8A+JW3DSV?Xr+)ek7CzBe0}at{7b4&33b_7-U;L%%FZ_i+Jw326s%`fV zw(Z+P1FQ1R(c(@&@rVOI z`R?7?`>7j_UDH;-4IIgkV2_`T{l$)u!3Tza^{@S{>2Lmbe`T_RfdNQa3@1;YtesaI z?(&uCuDkE4&e9*S(I$&VvL$36vCrJo2MZaxjt?#$GazF6+0yCf{_a0apMIikcDysP zy)d%9X2qiE$f4sQ7^!RKwZ^=OQtBR!^)p8F)<_^{=2(;gqg6^~FkLf-Lu*7t`bkGT zbKQtwova|s32ArVy`v0oeg}rEqps{Q7^l@JNk@WH#>NOqN>}O=WgF8V#1UrA^CT)p zn9i=$Zuhn&X=X4S<3=?f80JZjfmo>97M5%Pi;%An*CEd^Mik~&xcbpURG zD)-uPtL*|S-x*LG2BXvVSvLRNgI2C)ROpXUZ32h0&#{+EeeuHOI@-C^I=aI1!iXy2 zInNa&?9E*>a(c&-krHzwh703}!32LsbkRrKs=&NwR0NC|ol*oX0>rS;7X52~+94@n z1AcYP)~rms<3O&xy^&R^TFW9p;SP@V-TW2r)VWT3o30ZDK^db9h5{jH{@l_il~v19 zW@y=bee=8K?$`G}kdcxqq)&F1<@8AaENV|Sj2^m^gcSY{S9eRsKk44Bbaj zHvK%;(Ls%uwC!?W+BxVcZ}AfN9Fb&(qX3w+>hgO2&R@DVoe7`G5I`Rs2I)&^=UQm8 z@+Hr5a%IynZbj#n?{vT^gWp1KRWRWd^v&s#v9dBWCKyC6fQ6B4xTN&(I{3pK+JS#3 z_!d`iyC8#_IT8bJW!}Fl&aW~s3WXw5gM&@^a|Tw#AV=fPEC}DgwNdv=*Q{JEMHwxO zfSH1n#o)MleXIi@Ac=>%-oTm_biGJ7-Q~ zuo-?}ICi_H;&9CQw683q80_s&ZV%gg?=zx#u?iC}*9pk`zZ|O0 z*9_fovfu*zWO{U=q|gJW*9h`h#TeCwtOCc~d$#vk>qU6pp61|Hqbjfx$PxTdhJA3s zg?uANjvPK3c#YsE8NmQ64pN@>X&X2XdWl?HzB2a)ziRI;ukKV6C(Gf=0$KJyXM7Xt;jo`JpyyVG)4?H*> zJaDM(rE|7#+u43v1)B_$i8VVrjNP4ap6|PFZyjMg`JVSYP^? zG6d}~9?=}<3%?eo;g<$S0VgM3imP0^0a|YQ9mL@MyLMYF3vCLAEDoOxnTu~2*N}&N z*)3>Gd(rf|z>?g=^PSU~dKmJa?|K`7E7<^+bNm1Ozwp!5|74H0Iq7+D0B3Y!6@R?r zH~up+>OL9j;A}`0?X;bIb{>6bLEs%<>aQ~Q+_$^BT0ht+Y@ea;qYKjpGRt?FDr~Av zn>S56ckS%8gNF_@y;-~I2s}@gG0^o(u!mkpV*;H&`BOjHY?{X&dpvR{4)e;@aX>fM zsq~&S@vYl7*Vz=Hk|N9zw-}thX*U^3N5F$jLIKbdCysXj2A?|d!H@jV_xBn0652q= z4s-xs>@A;gtL?7Oql)TseTKbqoZvyX&Fjpd>40JSxBvW~&9$-mG{;zwgN%}nZp6`h zTefcLyKt>PQm@G-`@PeXk3arI19*=<`bg;se{g&Roj(8hFZLPu`pG~26UDK9=`-g< zkV?P7RKMUuaNMCUPWbX(;hIBPPW^Mgc3^m!OvifyYWMEFt2__xRDEOSJt`BJ9ujZyv8~QwIT3J`q;MQ@55bs4w0}H=JxVFJ_Jr>sPKFEC+uz4y;8`KHyI%e6|fQxYeFtL9Ps8BmL5UPoY7lQF-A?Xb`0m8W zT^&5-*A|}G5gj<=6VG$yGm+K||+ho0GGxq3|TN)ca^% zxwHkmE8BPP8_@+vBgt@&zKo`zJ+!5)G4%kPqBsJ_F+cQX9fSfU2j1!W2&qO2)`ra+ z;wVZ)9I7N-N2-Qlk~v|6+9V9zHu|(Z;rY4 zaI$W_Xm#M2`}V)(Y%7;MA(vzY3HBX7dVD&#{{Y5rUyN?r^IX8fkTWA`WY`2pp)>e7 ze>P5XP7C*0{oK6DH8C1wF`#8_)=ow`xg_{0D+nyW5ieV~P5Z;(r5U>hpyHcg7#WQA z!SJ?j(I%@Uu*)^L+rRH%WhP?_?BRzTq!Wy!Qub+Z@0D-UF2P2h+RIUdYc$&t?0iRK zTB5NH^bH(Muriiz%&qa2+xciQ))~}VQ6SK7=UBt8zO+A zJV$mFzPOmM%u#8K9rKgc@K={D?+qC;0@nI$l(mjSuAkA4&`BB{p0mxBsXeEQ6Na1s z=vaJB;6l1?+MK=!mgx)nEPbR+;GjORu$U7kK_GnN#?5hnws!Q7>_dNfuy_O$#`d7= zI3#eJvIJa?96CIBk&X;6GSGDqo{fSCSnRp`p5l;R7sOb-D*7Qjec^(jufE?_I7%nC z`nl0N4!1s4XQiziZDqod_6c4IMvO&^1T+P}ZZ`13a7GXMOb&uAJ|L$U{N#yx8~Dm| z0`(1ydWT$SnRf(6oR`Sg^tbeqI?`=mX`7U-Jfm&+ycsn4V{Zsb(c2CK0B8WN^a1RL z0Xr75Len$tkc05m{*VWOIep+h+`xgpaJsdJE#*6U9ftSdlN8eX%3_C+3usY*3GJd2 zuvET7c7x{y*Q{HyW9QDwN+ah-jvcA9O~%*0Nb&3)audGT1Y>Fiysw^i?!0q)`swdX zZ@e*9wuVo309iv{G^6Ogy>&pzL^vQ<**HcBiP`5@>>~p$C&#l@a9v0 z8f*(cD?>ZMYffY3T(DWR%YATFr*gE#^;s|IFFe6dc_R2iJKz5HQ`2|8^K5C`p)RB9 zvYMpxDhs2-g@G5@0DJcA$@SafP=Bte^G3ea4W8^J!L+Y_^=s3E55B9q2;F&K+t?M_ zZRK_SVY3XGV^2-_uXbRr+X9Pn?h!GqUJhyg=w$yf^!qs_*JC zU%MH6;kU}a!e?ag;0ZRFQFX9Z564@%4(*+3UwNLv-)I7?$KVRO2kXHL2eS{BbBn+wq{jSCdc`3hgg>I|3df|{f_RiqSzL`#!Pr5FGf`tQM5leJDesJEI7Vvm2B%R{zePq>tU7qClN=mX2*O9&ZZQ!NZEaa-dJGaqjetTS zlDf4`A7TK->F4~3bTPo-N}Joiz^17#d4~gH4k6(zFhXd+i@rKJO%x@?QKu{YG!n%K zvpAV~;0)sPXD@W+$KyxMA-~?VWVB3}T(~?O3UD=2Lx5I^DLXW8PAy{t42Ll^jAn{S z8#pEo@EB~-{|YZXvUjObdTj%LH@v3|2Jv`$^c&$CiPT2U34=*+!6-UqD~ljaN?Ar6 z(zZHKMnWUVQ#QQSILUV-rsn>x+psq9HOGr%6M9ZH>L+k1!C_Q8Ma%bCewo!M~mwB`tlYZg7Ql>7SkV7kWjrMx~{oo;^3B$IS{!y`{q_L#q~h zW_gTp2vf$r1p9ZTZ#)Us}IkXm-;*MC++SLSgeSGY}Q7e8IF&Uf;ij3pT3*3eLRjWx&a%8 zKEnnKuiv=ZR7N}@pk!nx5U%n>*D_qBjm`B-(^Z!dD~{2tue{n3MAIf1pPVVX6oC8e zY;la>2j6mpl;Py?UWxMw_UP(BPx+r*`MkMe@gO}i--yG`D z3-~aKjKB*VT)K2MZ47_s&y)=##&}5|hT(5ib7|;vWEW8WoKU0bQkJh=8LQd)j$YwZ z9q6@&UCIG>0UfYG3lT331~V{?U~{rgpN#Uq7P!QqKzAHMPCBEfYZjz^bP)%a{AMs% znYsapx@PD1_-2`bfqq7yM1(l9tXf1ZPGP{8q>7&Cjs%0*$ zOu39|TjiOXiZ*3hF=f>Y*0!LtmVoDLaD_G*hWazh0P8!%LYVH{xvNu>mPE$Fr8I8% z)5eH}8mUHvbiO)0@`_yHq;iBAc@A(O1EmTZQ6ZCOIqV)Cq+Ee#SspS_1jdzLnHeLs z+k%D$(FLfpQPT9Vi41D zaKQc{r(6d!dZKd5wYF~r2Yr%11|gaXpMH^z>>+KM9WKwZFSK#UwGsG1R~%4vG{}*6 z*c^DTMsR-9gY>`chN^oiTZ~lNf^|d7=)!n`ueD7oztVSb$m_X=2gY3CJL0@`ORDAe z8(%qn^P5l9Ed?Q!C31&Wflja`Kfz395q^36 z@yDkF2M(m%=)mB1+t#hqwr$(1J3^W%LtuFXfQ{yJTG>HHHD7z}wdwuue_vNH2Mf*; z-h1}B=hEI=)4SjONa3bl_|!Ii_j?Rzj9`gRZKe+#o}2rEZuC*PN=ULxp9FocK;y1mo4>CQ_v}+0+!M~f+8*jW(I#CY1Dckx*^{t|R(UW$~?H%_m zlsd}S|G7=ROY!c2NeCBAIvNvXk&pO^9cX%+XTZ%${obPwrL60hI<;knHJEvZ&Hz(& zp;;Lr^rpVMZyKbjq6WeK;156cjnJ~hbr>;W+zQ_)+%QauD#)g^ z2ubs8hL8?HBbc<0kdUfO$TUSF?;@)1)f@(wHZGm6k($(Nl%~ru{^|{nT8068EDH?fO=z@T_ zBZ^U)@kn=KxTlrDi8dP z7}u2E@na_f=aD)(7WO;a?`V;r7^7B~n`TKlakR~wGhdw((V$Jvrafw1zBBf;6PyVo zza1QU!q@R#BOL@PpV^cfuUEw}VXI~f1qpbq7rcLI;I{Z`;-BuIMv z70NGkIO*(B)i`dW?1u3Ta*?SBw^PM~AIkZaggFRTH5e_Tom9tGTFf!a9N@9*$4;iL!3?qG_ zNYJ*!yxn37T7q}9!0`mPM#$6NMz-_YTsHm1&pz=~o#Xs*5TAYi#pzalGdwBF%D3R7 z>0mJmyKqi^3qElyI1M8xIUH@ggs-}0Lz*POY327*$4>-Lr>6(s_0Y6#-NxzAp(E`J z_=FtW7jl9D1Wz@<9Eaf)? zw1?inxTBC|u#^`XR*vttQWu$EDvh84KI+JI3^oA;xIq()87G`JRXs#GMzI7+(y!Fp zqYPXUY~Pff|4NU;1al95@Ir!Dxi1C z7Eaun)uvI6bnENp_s0lgsI6VIu1*%`p!^Y>lPTm#M~?z0a!}tnm32~MTpl`fv^W>= z-5Li1t(uB}FRum$f?#-y5oZ3T16|ImHp>(PGdw8hCSIeN5C zzRb9EzB0BMN|7lHPP`@En0(?`R&V7|bfN8xIDLmNjt$sr|8TZKPq{9DkCr-W&ae(0 zl&8~1L6BuJU{iI=Hf@6Lfj{(P#JqF>DZ!V%G)NoR7|n%mxTLet4t}qVljl9h9uW*h zLyTLtN_A+isgK+tm+_!Bxi{qI7_D{a+dS&8p3Zq*F!1r3PqK$?;U4{^-{%EUf_uRP z_uv+PRc@h7G>~>E+k4jB@XW16H;2s=M`vW$jFGi2RF`&{4$_g&)Ct~f0sOXZ&DuC9 zE4p(4NAblMUYg!`{mry-%y-rX_KSmEcjuiur(JiBT?X_~8Zz0-p{jlh4#}QbuQ&vi z=y_Q<+B(kxCl}$C&BnM-2iwL$7vYn<&%k%gK?bm&@2L+QeL7v&H~Jl2p}nI=k1yCJ z>uQU>@WKnZeij%zO8wxw9!wu?xdb1;Jn+d01>3njFTVIfW$5nRcLmpDM8A%G%6Z~j zPt?)2kGJRbh3?T7vKwvdhc>&WALzwY3+)GE{hIs6*7444n|j7|$8ff+(P02$%<-km z2R;T4MwzSn{Go$~oAKm*ykTt%I1rd+zjLJ6!Dy1>Y@YFn=$s?Rjui%2T>m>*mVV17 z!dGMxSdr;HLYnZ&9=A|hUMp>|Ny%#bGy>P*iO^YtGbsZN1}I+tuCrbLV}VX*JcCWY zC0?H@jJxb4QbWRh~pUDrn4BRGnN)FUg$J+!PY z<=uXph4Ge7Cr_Q6KK+@`{u|ErtUv!Ze|+{!k59XH?})Nr9>px;6atRsVNg2F;W27} z85*Gt(riOwJ|HLQ$|WhwLzp0{F1{3IX2`p?G0ePa)0jK;o4@gg`QNrj>&jS^hPj?1 zs@D-}1U}^_m23U_wN<3UVT>Y)Gqy5L#T`qeuG#Z)LsJ?EG{yqOKzK^AL=cBxJyNE_ zI1F44wgo+C zd4##srn4tc1ct+Tr4Z%=@xzO4rx;EnO6^WKjFpsgRq&xNOM}M>h%mT?nZVV7SsO{u zD+IvtlgCr;wWfA5^sM^MNQT!P+qQP4$_*RW1cr;!FWZ2uOZn2e2|kOTSP+Gf2@T~O zj%(;EIF$ZugtDnIf%~BskC)jQ2{;`4V$emn zSPbn*j7ocn9yxw&vVv_nzSi-g>F}`w6=LQRrSz6LACv>ogMA}_fulC7A0B|*cL#%4 znV!?%_A~7kpz)65^hxR1!)Q=&jpg7`pNT|I;Vq+9-Ns91z%5R`x!F-Ramb{zan?j= zjf`*(D`Zn1gG`<9`L$0y({j-U19FC6N48^#3+CXF3&EoiKW*pKj}*^^QT+UY4aI^s z(Z7D<8OqZAycoETY!BM^)?16BtkK`O&`F$vb5?+tI&Q>1{Yi2mMI0w)^~6K zH}~}^7kaIqfgg;*!xumHSn;E8M$H%nT@N8L4nKpngHZuq%0G7eWa!?g&&F=ObJtyW zP7gkKe+;pmQL<9Zq~tCsOw~Croc6*upKrjxfnOQ!WG*=?s7Qv~b?2QelanN%M0u`= zBaUz2L_76q#qtNZa9=9>D2(^Nsz%k6@lrzS~O=r%s*g zy^9yFG!x+P(PN=`DV=WxPZ#ps9WlVyMjplSSQMCqrcAq$jnl|{c)FvHp%Fn@_~P(B z{q5HVtYYXoIeC@cXz5m6;?f{gyN-781BZ))YE;_$oQ^R%nm3SmaN*r@ddh;Ei)T)j zUdAzGK-r;(-y`r@zFWA4rf)3@FQ!f=qv&R9*!M7IX(CMi(T>f^%#pr$&8k(iw?Fj zIN9XA2A@+dy27vc^q>9e@01@M`f6lt-hUR{814cP3}l8s`8JOR>o?<7md`wQA5P&7 z&!Fw?Tedd1P1pU=Cm(CSY!@dx<@UgM&g!Z|p7sf$R~pEKuzXH#;n2{K=5`mcZ_fN?tWc%^$h$Ivk?~*T7P_ zzH{XMFF*5_S_XJ&H#mY7T_9j!+bMLQ9H+9?>$_*QL!128j@dClyW|t6+C6sO&;R%T zW82X_q)pznz%BUuZjeWiS>VguWQS=^^bx0AKwm&YKgnhz$3_;_p-lJ$KW+TSzx*rh z|LE7hnaVud72feV_htUAZL@xNU3v58+;+HEuIK-kU;EAP(wtBCJ*UlJ<+lTT=#TPc z>o z8EqXlJ6TCLeCD%XYTft}tI0tzY^IR?R{Qtq6>(M?cBHncv*A z;O3?1`&XkE{^T)w{Law>aWWJ+JHzO^5h5QEeg>!SJ`uktrO^|@#%VO6bGM?nR>laF zs&+C8m~+N~t>GVp5U37_#B5TqC^S(tj7E|89OYkGcqYV}ckLUuI?ndGHPYi40n4UM z8#gZOxoW$Yw?#vE47_f#l10gaI!^`SB41?FvYzj0KMm~ z-P8Nu_wMP@cRw`UckkW^!yUncy_aLyM_^Gt*W+;2nF`TsJ2>_TE(kILjG;v+q_JhL zlQGCoMEGB}%5N@ru`REp|CBR48Zj{!jlqGzZECMgLm5Zd1s=07qlgKH!$*#F-j@0O z9CC`t%Edc(Zi}(7Y1(z?wir1Kg{Api8zX;f@U=Sq9m3I{^gAb~QpBBuDOJ@<_YRJB zw_=On@s2hSY9h7z-_^m>HgxI`7|COiV+52a8{r;>5ZK=e?gT8Zq%7&X_GHx;{d1^8 zKb<1Fwq{CkISAR9y#YsB&>(>Wh{4ZwcQ~kZvh)4zhxR&WA?TR<(#AUSbqLk)N6x}K zr~BZ_$Yt0Wg^=#NdCTUW1h!FN>BR&eTy$Zp6bmN~N~VFBV7;Sd;5`iC*{D>p@JZ?8I1xq%7sYs2uhC0}?6M^>9D*Cqz7_mk zjZ-e$zyg0K(tabiwt}-8f%iJkHE^u~7(QROes$|I9c1IC4dLUFRtIOZf^@(urQ|my zD=kiHtWkXMr}V*mHdZJs&NU~h20%L95!4(-aSn#L5qZybG|9EVLwO@zZS0D`Fp-6T zw#laL+qc%)e$RW}-Id1CuQJIi&J~BX>rgBlXqy7_4E`sF1R;%3+dui(k>k^gFTFfu zYMfHpLkwbpMlwS%zg2TJ3#%WOR#T7b%5yO6(1UA4fmGtwf!y=1!+p<>cPd%S4o>y?G~%2e6&m`=ZEs57 z5HREURAc{QjcbNg0fD*ykw#>~we*9QYb3#oi2`}ay z#ywu0o-h0wr=bFI^}sD?|}0#Dh1~MO($p$;5qcecc*8x@q5Pi2#|t<;DY;ff^vQ52yuAS z={^0f-IRK?g>7+(tVvl8HiiDqb)HPDG z$HKL-xq@%Dm|!Wp%ySPv{BZ3@_)`a6GS&ow>l@v#T^qq-)=%J3T&Atc_dZ&1ZSLpn z>^RWO>@+aeV+JL{#Mz(l%B<;Xm7&izr3bEW}Ku0Hux zuJ2C#?7lY6<>E)WdH?5p~;=Irkqpm~t%C2zRF4Nf{q| z-D|5rynZ=2_{s;b*{=gX_v!Yd(GlNy{`o%p_T!y2@`W_=?OQ1vX*1>yovzTBN5?22 zDZEuMAq+@mWQx2q$RMQq=$24pXykbjFh<+D4eP=*W0`#ngZS>cdwY%6rZa``396B1 zGZy$jd4IIOT9*1OaXwoIFYtv%1HL zhLg1ss%rw%Et@x_t|-8iw_*L-rp`(`IToYr)Y%Ia>;et;S)@?o=BDjeBA8c9o3?D4 z)@)tb;0OhdsVj&U4QKcE($)}4=5fNa(QGTfH}y15c5I3q46vbO34*3p2S$ujilZaZ z>8AzM+|#CzQ%`X7>6yYR6@o8Z!wZ`8-H9f8FR$T^TvB!0=(z5(M_VGUj2J{{y@jSZE*qmY_PG{(SiQl@w<#;~ zfZ{@{Df?|b>2OheoZLUL? z>vg~ua82180m_B8AKnf|S)EQDd+xovJiaVO8Kd2b#0FzmVv`KC2J}}(WFL_Ak=3D z4^O6$fD=~M-@A5iYu}w5z4BN32Dif~81iu43cgMXCQLp3Sa!SP1B10H!kWh%E*wepEK=tnXS9pef3TfdqUhW4fg zcfE@zInneOm}w*V4_4Z27YA@gn|ND$ii7-~jc@G$pS3GiPFrJOr&ZGj-t%zv2fnqp zwX6g3QCp38zzG>7AfnB1s!#L@{Y0n3Ye&5D-Fx8L=|9n9=t+Cd$HCis_m1%4>dINP zXH>A+Au$M#96MTCqxT2?mNv+yE)IosbLpY_)Rq4O1AVKG51a%?Rt844Av}8Y$h2$Q zx;hs4(nt^6fUVO2_5zIrBl&JS(`5}dbYU#II`m|IZFO{xIw9!?+|ef-1-Pm`kb3{^ zKl7u5w-=tr-?N@TBC~TthLJ>gnJU&F|bbMxNRR0z z8V4IG^#(9F%z`Dd$SQ*u9D}a6lZWAGrfw1jo&1A8_@UTngV&YmUHU?Oc->-Mvn{Ou0=RUlwrMPT zz;q_G%z-|B(he9`>x`pAd<#~1XwAAY;;C$M9Nvbr96q_76Uu2zJ)uXoFWWjF00VAK56YT9K4Ia z@fN!D-nQ*B@^+_m0C$dPK`LTGkc4<6dHL;-wj@f1Xib#gx_xV|E~@ZhP%vf*S3&_Z z*+K%cq@6n|;3<=o$EiT91gr8G%T}tUwg_d+&j=fgY_XkbI(^pC{2>s6HV%kYoNMH# z?Ae&2jE$CuRw~#CeTEJpV8lrTxlEI15fp*oq%0`8&UK`4V$_uAQ!&GfV6Vc@!5Jm| z2zSpkWie$i(khrDcrY5n1S1?hb}UVcVH*KuVG`+5BL7#eTx^OU#Rc{fd@0d9TIU2# ztQ2YG-E|w+cN7p#)^AArR>e_@Q@eW2iuBREOg)muB#R)*FouHkJ~(O0;DU1E7)ZnC z+UkE5K$IwWVLsQ;gy`*CQABA;oCS03ha+ty+tyQ3>a8^G{i6%cwz4U&JC<9lP5PJx zu40g+Pu(v$4m$zBX{5YnV|Gy-?sT=z9jj zQdawt)3qAPEi3OX*z($DQ6z1VbwFXQVw9$@^R^_MUC%R+@P#1DoQ_W@qCF#fg;Clr z%Y*Z4wAd(xy?l=!lL|W`(6(3`Frea{o>u|OO??|#I&4j<@(!?rQBym9l!z+lh?B~6hJ1Lj(c z|FaDgQ1})+1W(3=HahSNCmcTUpE>GqgD)5zWCuAW;8azWLhrd`7cm$eOjQo9Q9z2Ym~O1Q2yF@=)cNGEZC0JA9~rrV@nB z7LM>h00dU$2M`P_Idf=(9JifOe~+hooj#%b^{4VD?_LgU1$4-%!i5nMxRA@Gp|lG> z!arkVo>T7dp&a+%Q5~}*J?@k997oPOdH+_+^&M`jj~Xl(&*MS7%V1Q7tK$y&Gh_!C zrjqsxJymY!J+!SsHBy3;Q5M~k_d*Bc9z)AvD%bL*!`TKy`UAZThhasGq|2oxhcb-( z3PRfY(#WSdq;NzYq|(sI2%dw%&|5dVh27>j4e-gRUKEp1k)HOH(o@Cv!)JGgN2oU@Y&{%DiErb~IMx{a(Re+M6olvlbzaKrnYKe7$%(Igmc z+_)*fuT4)s^-QM*jnVEgaH0Kp2JqP_oNfBUoNqxB*Xa+7{&A4~#y{*kb>rDC_PGEb zzn$7&CoOFwpKaL(b{1H)XE8a4cLbEsWcwL-qGz-Y2FeFha#%YZemAI`XCQ}d={@fY zAne<>zwg$b$~$-7xjS%R_lzL0>+0qRp+!8Yy=1AtPjQ`gDMKcev}IEu*rw{lcbq?X z18=|4H(crGk69 z@ezEBtO{(|+S;uz@U7i+3&)ZS$HV2>)S=IHAajDXHmZAe2(7pqN8a%}(u*YLRK20e_rWT15izZN7f%YA;(P3m0z&q4gyvlqX*&nJq!gSMv#{>BfMrM$nfGA5X1;ZnT&f5Z5|(n zd;}^*G8<_eH%x9W=H(dT6fp&gItYjxVHPP>7$n_m-x+pC8)fdfb76E5+yP@F0}Ya$^;8xX}X(GJvmC9*&R| z*oPt;3Y_q8P+FLpvXSa#WZKpuBEen!DW8<@wcu2AO+Pu?=P#wdG4i$13e(HtWG{Ov!jbhcPPaQS3)ZGpQ z{-FbHqU6BObM0eKiY4y{Zt6x?L*Oo-E(d2FvAe~&IbA2rdjcLE;Y^<>IrL=|P9TU; ztWykmPL_L=lGA*Cbi`q`IGuZx(T0xbSTWN=7)DKuU})nQK{$6d#&eW}bVkZ@(}s=H z>gB6yRCUo0bQxUM;0&z5+?S?3<|{tcFY;l`GaWF>t-iz9Pq&(WW?ch(qD&)hj2+vR zaO?#H3(LGIkjEfGmw3RT{pgllq7XRWaAWF-Q6*DVY8a$X+E&>R*_78R2YqUkK%DRZ z*@YH{fjEMJi~zJqmNeoVzTR{1p3a3PAB@7fXLJjlX*(Q}Q=yQKaM!R*+2Cva0aIl* zt=|}fY(p~-$R2cIRB_*d!+GcSDzI(aw^upBkN%&uhC}*CK7Mcl)ElQ0p}N7j3jm{M~o#hd@Q6S%01HGZ1shH(5tg@E3yS{&{}`1b2O#> zE8hgaT}e9dQ}%2;4L$(pk#5YGRgd?($XxJEN61FPE8h1kOp%xH#{kzBv@C$545RgE zMcdV*J~Bkx@S*FYjgjL)I=(FYQnwF$-S_gG`tbWKdrB+$ubka7@IO7`$|#nTO}6-C z;P$Z`<6S&I0=}HW8h*Wjb{W!((ysxJ@=cx}hO{jvjS7!Bdi3$^ObM#NE14uaMB5pW z+CW#M8GR(bRb^2k*=5>ikwy4nR15lgzyge1Dozg?P`>N{uo!$H7@=)>CqANUdM z8RX`If(F_=d+tn}rbE-&(5!$rTChcu5k!Ry`5uEb*Xhs;c^9tP72ts08JCRX!*Ni2 z>X&|kf$tYD#wd-0M_ya&#o=A_18Z<_^3PxLDM2mp>ialdBZPyJHQ zaJIDze}tX_r_yG=3)p}o2fRU>*eUIMezX1HUOBFTgZjp3-Eg}6p5f}d=h%j93(sjM zn!tCQW4wfZ$=06G!=e-M7bl>q~$D84V-?YuBFM8n^X#@Ps z^)<6_L8dBSD)8*6AxL$UcF4IIrm0&WW=BzbP5t)m{>L(cM$6EDKe&ypIcwle1 z#urd`?I3a^eT56pxuzVr8o`hObDsj5_!qqW_8!L<%(c}upUU=*GF;PUcmO9^c7E%# zZo#`Xt=@d&&FXG)-L`q`X8a1y{4nivXfK$k18r-oLl6c2wMl!(5A_S8u^CKNtNags z$OX8D6Mgg!8Zk(rjVq=7H)u9BBS?98Zk`{GFTjz#J=0@(G5Q1y@%cBt`BY@@sZJrd zaPI6o&i31n+1b8yDF6&%P)-)qVZ1O5Ev5pomSlFxa8iy`%{6OBTBv8FYjb`WJ1Uok#c(Eo z+Wt5+7?iTZ*qmIz;P8RR^ApdZG9E;=}iQZR8jR3q;LT5HIyT;C|pjXmB$(2buQ6i8dm37A$bX| zDX<}Q8OKWE>@a?rnP4U`G`5ASp!9AIbs4cABm1Mz=(x11l$1?)X)D}$4KJW$KNxHT z6gqaeo>IQ6K>YUSnQ`PZ1u*h`*DoV0whHQK+|9+)r3;+RtL;BtW3(ub6Mgpdxi}_c z1kdO*x;EbxO%u9sZhA(QP}|Ny7QDGFI9yx0<(T5{*+8Mxs=(4mhOx!Xv{5SZwoO}G zKj+_b;0~Vnl`{qO4vs0Bp%^H(L9-&{idt|I;W^Kah)p>yb~vM zR<__z@wtz7@u>1CD@qAY-9xh!*PM=3{tgcDxS&DhM_{eFu6sux1>am_h=T#S$grT) z$S_Kl!V)kvg=K4;;BDK+9<*qp#!1R}>7|#aZ+zpM;j;tqYF2q!0w*5Y~37ut!X`P?t6VYeCSBzSZF1V3fMI*IR+vF z37j0{HD_C!(wX*?(}6B1Wg~`+8S+b@4}En1Z$?t^=iSPY>*)bHPg`t_W+cJfXA0Ro zV9%hp(z@q@TkqGg4$Q8F29US*sAB}G2Cb8qHTv=#xNsoh0sWBUbNXuaOmG0Ff}e~m zyjom)CxF#=Syp&N+Z}i~O=`Uku)&XLEO%@84SpRmPMfsPclGL!dK97$-*u~XwEZ9x zdZo@6+ODge>$h&D%s!{ag(J^!wnHp+KGEqc+i%{C< zeQjU9!GHUcN~H7R5qiQX6aJLx15WzMK%yHj=DFp8ZQ+!9*aAknjXpEb@L2H|8AN|5 z9!~T_pVg~8Z3xI3tfjBkt+$|IcrY?XU1!don$BG~mnK`FaA}`|OZ_p5-mIVn+yE6E z(j{nAn>h{S(mdJ%c6bnuy03QXH!^5{dHt?F%`@aeN6AtqdjZ`aJ8lL1INaeaGQ|q` zPnmFvFKkxNQ>SbJU9Y`rVrsYi-F-wvbb$d`_LA>O`kLVJBk{a zNRM!W&>fwLre&t!IepSM{MPAmfvam^SDwr#od6y)jP%npaA6&XAtOfi2AF`GcU=cd z*IgSV}jk1HKLy!bqJcE|>*LNe;94qig+jJzmM&0UB?laFkQ<<-?rTOs1*S_}k zyuYOLp)LN4IXFygBW?1$`t-@J0)AJ(D2% zvBBZcy?gYia>x(q;o46wD~D}nF1?H_`W#Gd~_RUSH|c(LTnK0 zX4X^KXaYJV9Z^a&PI4Iih`rSC~-z%(=J1FQdT#tT{AuOuKTC=y!+wl zu3bB)Z+!WQE>^~X3vX9Im-HLFPMz5V3;#x%S;#{ z?ZHU00Dj?@|9Kf&B#dI+yk%<$f6UQRuE?hJHH>!R)ajHd8a5U>y7SIE!(bbm=DK0S zx@lt^pOA3`+2U!{3d+&8EfzyEA9wL|>fo{9B8FkQbv=&iaJ&T@q*HNLDYOv?A-qQF zkMH^@2w;Jxm2rv~3o)Pr|Ep1a+I}Gpx{dT1^xAUp(BUxTFh~iHfFVa<#+YH;M|lgH zz!wL04$@qV^LO~zvFSvd2K@vF0v3&ld^5mAPrI*kXiN(H7e4Y>g<&KADPNl*ZdSPS z37(87xEK5|(%Mm$JngkKvu!L4@;m|4GmZCKxu?3KJELwG7?cQsMwp>b&(C%H-uJ#+ z7KeT~4Z|4sy|w35dCnNuK3zX~;&i^{eypq|oYjC~~)(}|;}`s|_Ck4;AoAMak{7OE0K6>&dw;P7-j z_&D3uSmWdwg-P8;Bsigzaw@Ijo`pK4rrQi1ykOps;0NBLG(P|3uT+_Ch;gww^lR=h zxW5%g!5-l%08{+qXmmP4+{l(sTk}!K=n_w*`oc>asvs_&?>jOmzVeB0PMf!G>Ym~Z zJosQtqZ@6d=#(+qJRE!1;fq3~Fto*Uv+^W2M0ur9I=rK;zx%I0U0#<-5RBC6hAVhe zh7%q8%zx9)$QtS0V4LnY)ze508l{M&Y9H8tu-nvGOzcE(bNtAO>CnD|(-%MS`RUr_ zYtzc*oZ7%YhQG`cTLP|a%4~3xwo_n?d821i(<~IXa^*;IZMtKOk`*<22kkP>DMD~` zN(27F*B%SJ%w4r5-o-wPXY~ON$ZK+t@ucnG=#*K&I2n%IFm^6?q-M;;TOi{amy|ac zpE!P~e5y~%@LhW#SujQbk{l1p`@A;HfefcU&@+@h+7nz7X&3Negm5m*Nt1H?8~^Gf zmBr|j(Y9nEYo=R6h9=FMM~jTMF=b@Xhhq)~v>^)zo`!Ru{hgNuK!W+mwqvCQM%}pW zMGkbz)`$KHI;HRZ9QVoC`4=dtxBbp__sJosAY+5Nw)dsij+fu0U^9?r{VXGCdFXRX zjO4vBXso-D4uwyyq>q7Jb33kyn4sfmbOJBx_-dGT6>$a`2BUTUH5T57kzVYhO zI`o|BtFZ}8L!*c6r9WW9z#Yb^v~D~~Z*uz3M)@!04Ci7&hW7tBfGKBr>K)GYt?5%= ze5%j;UYVQIG^s8U7hQGg)YdD&-x379I;WB`c}mG+T1kpP5G2jD5ysV z;V};QcfRxd^w?uhOmDuqKaRk**e;hFjN_DRi#ky=S|F?aR-eAP57x7jppE)41w^|(KO8gRjL2CvYzLwSPK+JV2@_MA_D`*}bJ{lvD8>?Z>aP&Ji1 z{H1Q|CtSKH`z`R#`|4l|lL^by_D-Kno19H^PhEJ0yq@u`-yiwC&-C|va(WGT=_eSx z9i}sE=zV?mzRwwUa~b;V8E_l88tcFOw?Fr{dru(1yYLHsoNd3=p>IBw>l00&UC+uI z0ONV?ygq{spFrlWfe(20?q@&urG9es`2p->wzzV%QD3xK{Z5DL>YHiQ``SCxB{<4D zrL&vamp@MZ@P)w8UbSm#Bw!5lRl8SjoWC1!G^Q9&x0}Bg19HQLwbPdEV+%D74X1}= zykR3_JdQ)0V+&R=rWitmJjKEgfh$U%qjT|+_6b@r-bA)2`Us>v&)8z9Zra50A0vU` zyE3Tx)|4#fWNdoY{@F2&rpxdWT*H}pcxTR?4?~~H?~8eE2(?*2iK2O5iXlfz$~yzW zfz~_&77RLyh>uw9YY#%4e1{R(pJPL>fq35X3&F@j? z$k^a?*8z*crVR{20%jJ{>LzS`SEla{-#LmMfp&%$oH3t!ADoBC8IF*Q3eKAYpEyPO zecpbXdHu_$==C@)r@Pw!=@V!AS%)`eGLkIvbTy7zx6X={I#S1{>B70odGAa|XO15q zs|cTt(@p3yiknpsxLGkCF8m$}RC@#z^k=|G|G;`|Yhp!Y*GCGZtx^gKz5{G(WejMd)e(=1K_=OASa&K(u zwI$B>cH8B}v9<8wtRSU`Ikc6cKtFu_6&q9|E9R5) ztPBAjhCW(xfQ@2S&sFhqakwkaeOYi?FfGiv6M4?zfyD0w~tPG~ou!L^7yrR{f*bX*&~Cm5!@ z5dDCCPQ1s_VpuT5oI_8H(XK0@4UQjr@XV1oh1M>R8DP$vRa7lL<9K7=zUg=zM{|z7 zPY%kWS+#a$47z1?eDsr(=QGlwG)T6fkz6Xy$p$BSfOpsN=?J#?6*}wpd?~Sv6C4)j z1W$5G4WpKE|0Xys+;J4{IW01&TrjI_TX-If9QsoOEA`DQ_SPs2?(T{)|LD6Pp6=hf zH@D$|6HShB>NuWKdQIzDQK#ETvp|jVt(Ac`t_H7*7HIim=!8Rj?8NcT^@DeFC9GzPZI>IBX0zYeD)o9NZ;8Gc8h2LEV>*{&V=UlUsjJD zPPS~>8kk$({jtZVr=R)G^u)KH>`J>MGv#VW zM6LXdpQPD4tQ+%MY?xPb9y)S(IuWDxV4gE~-2g)!^WcA7cLm|lG0#p%TtUrpbRBG2i;2Onx#TeoiOR%Q6xL6)IOcqSL|3;T+^peKBHjdL+O zgW643quml#4z^%L)}j0RL-PM^>DQP24AQ0T_5)1 z&=-!`(Q=80EXBZR~LL zt4wuup{%>_8qcPDdZfYXd>{Ljj{zvVSvahnBv7g!a4P^0|3=AUOqVXv1R2$gn81xZ zC+j%ccDo=zmar@HovhY2r>QOYSA7oG$RM!L58vTz&U$hUEr82RZ*zNHbLcburj4$7 zX2tu|Sp6+DPm?&pHIQ27JbpPqtre2Y3jGIQ#0J z2P5DgvT8fDwx82E-syU*CJ}*(lo{p`iDOFzP{h6 zY}!OX%p-O+D)WgUES4nA>r$RGx}dtI@1;@p;u{P)M(kz-YDr+jfFgvN%CmM^`Z2bm zz%WLhz3)8?MG2^z6E#*SXV8T~Zrq9yF`Tx5GtXg~KsfJ;cvEOA%6zxQxf+YMZHyxi zpBlcEq+HxxvTg=}IeFH3zSb8b^jC#XbpqXn@(3>(C z+SP6bS_N4CDs)3X3<}%Dpe^ay=)g5}qCBHbl#4zyHk$U7GQkwCXQ7@BYD$fryyik- z>YXYc$j^26a;c{S4DgYDbClq++YF_jH?IfYQRp0PeS&keTAbwfZAPqvYsZDq=x}^S z#Mg+hw#kCvunAHvTd}l#$Ge_!9}U%*(#kZFVMwvqBU{;ExF~H}lX|U((7pB}z;6Yg zQ3s*ZD74V$SQv0P05!zZK}NCBmnEs2(`^)J1nvSWut}{(OO@nYk@n$*d)~D>{fyzZ z!b;^9^jlsTrECW{FbIa>B|GI(o*N?rqd&?VnHBR0HM|v5sZ@{+(Rua*?|ZO(;W_Wm z4tM8Z=hNYO%Lp969Zw4i+HT8gpVI2ci8E)Q$V6DCne%}W}S7YT; z&Muiufh}Ly>EPMtUTE-9K+D!|>(&ddtxwyu!5peHaqtfmPcn$e#L{M9XnINw2c+Zv znvoJte%JZTjZVu+Ka93?CG)gJHUU_z%JcY$OfwzElmTRtfoM>8n`cgwG<&mA>EXau@zo$KU5PLMPB85ej5!^T457-k`3ewx?Z*v zt^|Wdwivxa2f;KBk5)0h}iL%(0`h#BLn3oOQ|LtpTrel+OR;RavQMsSn<$#HM?TVTkjX5?wd z`#$tYGh4`CZ6p)cM867z2rQk5O`xCfZ)A2X-Zkd`a`-qDp0|CSc5v|61^PwKm>W#@ z>BIedc9ix67WVADuj?Hgjp10DPTdzT$efV|j@FD4MHZ%CGtF|6JBK`{ATq~_P6eX_ z;X8pKef9g{NA@^H}E5XbtDe;i!Z)Z8CRo!NSqq4k3IHS=L-uek|prLQ1=|8 z-!=9O2gU-n>>D~E;GBN=hk~!%N1fXH+Uu{@5t0o9KJcc_@_XJTH)XVu-vaIIIOl-_ z2b+2G!t*b-9qcZA#lCvvk#|o&@B=>(yJd_PyT)mfR?U`Spp(19v6L!392G%yxDyB< zZ{dQo%5Zmdgp^LtcR@A%=o#Aivw!BtOYdOJc5LuJe5*Y68=19n!{+vjY$*Mt|FeVS z8mCkH1T*X<>^|M#8oa7YTi^ShcTcvFg9BS32}()l^**@;7gC?mCr4Tx$^w7o2qbVa z1V+gwSs2JajQK56(rtn-fka;bZVIsw!#ic?V}u`Hw#OK>O`Euu&G+sFTga4sxH~RfPIFFFAG)TR{Kd5bxKP zT!3BmL)xsb+C|R%*`NN&mS2ZFwC!1Tkn$ZqJ?k0xfUo(QI+Q8+OeQLW&AKY^F&HUx zZQs7gj>uBH^WhJFFmT*H+2j4-!Tpsv{FQm0^i1nBooKuA{dS@~bmSll>2@|2o5VCA zFr5cap*XwAc4^ld9{_dLkYUD(j&vS#S z>|*Fj%jMKa6D35Yq$!kxYd}UQF^UN+u&9F{A))`Jv0y-!0o-3aJ5ooD3ZfNrNa+K#M^S@6 zrBm}Jbi(c}uG2mvD$*7i7wTBeC=Gsx6EF-_1z5eC(oz37gJ zzA=(Hj9UG{OYja}m01jj(EI8*00Ix9#YTrIXQN;o(brzz7r9{s-vVSYY(l7lc<^yK zeSjnLEjjEQNqF%2T#R7G!KN)+rd_*twO`r*Hl~!k`pU~u-X~Me2p&@EaA{9@@&-?f zR2!Y>{H^mB+SkFmL$(gtVD7N>A;yAP&SlX93fvMb=O_(7kn^s;lw%=oLzw?w7xEUNLN*-#xdXkEB~Io zd#7D@?w(GZIyLP-u)mpQXQD&MZb(z6KotBl7{Q93@*SUd^e^WpeZb{YPd`=K#ba;pj|CTvnBhh5xlaap7VX2Gb~xBq z>SZ=TRkyfj2r+UaDGz*q=7C34n{_%{!4f>i#|G*opUU}u!I6rSz z#`)cp^|bS1oht(e%i^eRYTx06ZiEN@QLglU^dWG8Hmftwo&Ii{=3sbnK}QjGIrPQz z+M+M?6d6vZ>BFdNlrcLrMmn|IJEd1V7+461ct(1#7F(yyZ%8=_rRW`&Dr&iYX+6{3%t>u zDPb}LUpGDFP4<9=+HUJQ0r%d!H}d3aoZ5qxJGL;>E(h2vo0Mhe%(UXVHj~vBX4U5N z>AUS>W&W{C1TN95>vVk{smwJvLWT*(SO5W*!+&#Jq?PG1n>2J#*F=tQZv|c3(h^PMhApWz~|a!23V9>3?arULD>5dIJP&EF5XeL zQ*i)dEa%ZOk3NBkV8vLB;bMgK>CT5VqArz4+9Kh!dE>@LKUc(2g9}EtRP9AEv;)q< znB%YgOM+MP*^J&3&{FL<+vuWrOxfqppRHk}Y>pGdxBD8WE#M2E1ySw+OrOi?@AiBy z&VBRD>~(Jb=(Pwgi$sBQ-cGyNmU%9}IkOy;rn2V!o7(HXx?-(X!9>6jE}TJq029W# zevK>(260}>`-IJC$wDw_QG|8ck`fD7&&|RbZ5YAVeuv+AE$@tLX;yxYa=l!t%p-8j zu`VAetIy=^n_x7yeVP?8x)gjcMpi36WiuQExhPw-*>X|@Cyi1P0P3QGacT)oQOyRy z8c4InSA=xh(Dcn?F(PA(0jkw+HCoU^AZUzE4H-aL`s{pdvLkedukn+zwR;X28QG!` z?8T2~LC;hMBa&!L;19St2^>j{2Um1~Rs@%+>$RQ&@3?;!Z_%uBPZwd|?HDwes*iDl#rNwXc8KJII7y9?? z8&Rz0#ioe%)5x1OBkqmyPuW?}i85s@yGMcQ%eixdAJ+y>6sVDH{XKTvlPX>>`3kPikf-G(}_PnoSlXlCBS{h!yaqC9)Y`3Wkj-+y0P26*IwP_sdEm9dB zzH+5SI^(#8e>sKo!g79}JawYF5KaYB>CCjcbXuAS%*l-J%3EDspoh`t{G|^Y;<)&I z_RQ)2CP(SWdEPA8bPbmL9)ZQNe>Mk+eR20acXc$n`|{>pMx}+qhFmnlG}dZ>=UuyY z)=@%R3`Vp>zjMOr@!fG8Wn8`b>Z={8xf;G1YqChi3|@nGC%Grk4EIBB51E55@RUBT z-LPg_vRs>oejp>xgqO8N_8Prl#MAbsLk>|V8&!~uIuUrT>E zFR{x)oOV-q;DHCGhaY~Zjso~`G`^QI8=eg;)ahtn(?0EV4-7aNY&RKEoH6|Gx`Pch z}OQ86(dMBbW45eZH&5R2;mcUNXJ(9=$(qxrwJ-gGXVk87NH~=?ys5x4GSwD+|}=>-wrJGM{Yb`0n4oFR&i=xOR@f z)L4a^{1Xf^H=lmdAKRX7Sif<4~f6Z#SSG-(<2P#aMbFchKAotnbuMg zIN7{ub6_>5jtJyfCj;#0C}kSdGKd7HbdL0Jz`<|&;X9|0%+lBD?eufdMf7ia!?r~` z&5R38I=st%N8e!VJ~)B7?+y9{Hh96F{_s+JKeXf>pJ)^C*~6Zr7k#pkw3p7Dbr^n9 zr}m*2aD-Dhfd?>!6VC}=Ro~{MBbP4|K)*b__~OfzKc&yWnxjn)+pU2XVHdOg2j7qE zP6I>(|8x^MJz(T}X*4p2UWZ>aMNe8o1`o2)WI2MZgN;?W8Qci$m~KhF!y`H#1Bt^{ zp5=#N6IvqE%9}aZeU%w$m%e}xzNA|}^~uk@<7~hEn4RqxUw$P3G@tXf5{3o5#-bi^ zCT=0RrEx}XA4m#<%(EnDckJ9zfyp?ZQyJJySFT^FVl`TA8wGO;88kJdSB*I%6f;I5 z)Vd1cg7B(Ay@0qeN7_j5SWF3laDphXrgEoF&m#Z|8WYs%rSwyV$TEhz&cO>KNEIAT zC^bBej<92v5HkW}JPf52<0u?Xuo#g?L?co@RuY$5rjJd#i=#J3UorAre;x7=xX+mw zm9764+<7bSQxptC?LovojkM*F8qxa4857OjxNbw80sUB+Hm{06*|08*kaJB07)Q;g zd6fjAbl)p+z;7+OeL8jGO!r8xlg#PNJ@qlbv<=hV&MA+vj4}1gqD&UTGIDP5rR5RY zD@95@uZz%{LI5PrBKvjuH*i<=$7qm|pgs`Nnth^oBmNtQQ{@E^fe`bb%f3!_DpH9EC51|`PnWBh9e!G|Uozydg;!QjVOMkAC!3d=vw z-HNjj7^ydxZ`>FozKneDP<%!PIc+t#f}gh*$LJ0YIV11}*M|-tosJzoQHL_1>8LhG z6Mu2?vBVahNBj|#k@Q}1wK}LM>51PU+3<}c*^qryIl{Tf%28M$d!FL!X;3ulzMXCZ#V# z@~hK;vKak{^NwXPU<1ddt1XEE8C+O1fE+%4+#+IRDQ9XpF*B`RlK~SL^$yz3GqPZc znBao6^S?TK=KJC$jEX$Fz*`)-I@&3-hJEfiIFgLS+m6Jr!3gjy3q0X+$mZ~IU@u5&L|%GfX)BI4-hgYk=OC_&1IVyuIMKIF zDNOqV*3fX|Tkeq~oWqtqn4$eTd)_V|!+=-DnK;Mj=Gf5_;kV!{bOV;2zZ}ONXLuIP zIF;m{(QN%C572@PEe`+X*bLyr`C)wP7@qPXM;nxCtffqAoXAjk*Fz7)e%RI^Fa0gR zsBDHd=fb;23>nr|*WMmJk%@KY$)}c*p)Z|dEYuUMsuJ1_S2CQ9J}B=cFT>>1Ds1~-Lq#;WahGFxGD2Yboj+M zgiZTS8?}>uh6}i!rwry|=ipxny^%L3Pn>A5mMunq839d&r46vsR!H7O|e(kZ`e3lFqY1dfn^;XBm6Rt=$YD>=|cll`6LV2OYBtJ$=VG@HkLqz z=Qt_sBW>o$Iq@L9Hk@zSOy|=_*$894FFU;UV$KHCa?SgG`*e~~?x{l?1a7_0&gMv> zBZud-g?(!aN-|T>NI*h5Gyd7LXKxqzv@XcnwX1@Y+lrr56Lj2czu;tE%S6_kseIZa z=%YS+*LzkO*33YI+GppCC6VErL2_sLidBUhTx(MYx^ie2y4T+7=G3K~c{sRBUAf-p zL)Unv@*=-YZvscpkq^ocVD>y1D~}G~c-l*vQ$B+Krp=7e;RbR-GurDq*(R_;t_cz- z13&5;hEH&$C|wD1mr7&j8M+KKc1~RwMskJC20` zMVl;?b@j%r7>CDl9<8x`Yf%{W+Qlf7IANF0O=r%X3}A0`u_CMCTCqIxF60&iY+-Z^ zWG#p!9T}1_@%oMHDx^R4dtYjbqXlC^H`Ce;A-0`c^Ii*SgvK0KTrL%lP+?RcG!D__ zOIIVjPj+D(f?|J+-Qy=uPv^o+7eXuyV~f75ih}-)-~L$3L^T}5M(c7)m1j6|1dNt8 zYM*CBlQhdKgLxR_!$>9M84V0Hh8hFU=y}9pU-+m0;$Oz06;VCaxk45QTN~khGv(O2 zXP#>~B3#QC2-du9o9mBk0**Z8<^HlIaX@cL%U>FYdgHWq)!J$4?O~D_#lQ70|8QEL z-<#KOoOW#9I^DB-_w>L$d#4BQy??s@?!D8U+jjQ;iaftOhTF|65%7WEz)%XG zrT-BcVdyS?6a#@LbH^R#EU!$v7ERAT|MK)(zx9#M@xg@p4`$n=koMelXID+%u-<$v zQBVsk1TF!_>2nw3(B3{RTOGv|`dPMm>9q6C?M)>cj@2+k87B-8tIc!tzxMHO_qtKy z&QVTF&2hbPoq}Pk#yARm+`AE)I2R{yafIOR?c1ikyLV0Zq)nSbKY|RmV$c}<=1ft! z41dl+g8-p{b4Skx3ZaS6D+fa)ld)~&(pF5KUmc~hd{vy4C@=G0(WJS3MR@2WD2y;- zoDs>4%+W9R>zD_&Xy|lkq6TUBW^o*qri^;7CwORI+M4f3v7>%D#d9e)Due(h%sE`w zZ$=5;9vGxN!LK@bqgB)C(N7RS_A&X=~L5<{0Mr|ef;Z2RK~R^uxt5D`8PsaQjEbz3mL2MP4U=z z$HHrlj?{9ZMdTwNhOxT1j3rx=fQUh_&j$|duff3Zw^$h5e0StMePz6J z*f{ml)GvjWmj$lNgKLJzYi}Ivr~_K!;L4QYaN~P(Wv_+i$SNa8ix*1?7x1&)RAgOb zhwXEu!Go|x5Dq|YK+MY z86!+@)qtm~>I8;3PLT{TBSByOTFzmYi^LH{wh z(W9Wh1zb<39eCh&uu3<+@wsP8U;0C~Z~{2QG7nB3J=y6_vPjIM#J_Y!Gh`ww1TN8? z{&T$N)Mo((PK%h=m1}Y4f-jEP&;9%_#CTpitxex8^tx;3uIb$mKRmtb{(GYX*GETh zp0;n^Eb0+CaDKWi?O7Xrydv~&mFU-Aeq}lny<|ZzL9Cmhy`^!2*2kvcWRshRLMO+M zAD#Zo|MD-#*f!^z17@+x@J7lTj*Pz2VS{(rID$N~;~Er%q4d)>pmr&dK_^4w%o#gU zSm%R28-ZHK|Ls5jYo%j)gAM@8JHRH_I4`nW(6e(@9OW@;d%0PRCnHZy$zg}uZDVAQ z(W^NllT80`53SnA{_p<1Uy4(_e7bA*ouN$&xp6vz6AlcS6WO*ja#EnK(<KuD|De8*U3)h&F>qP|2u!@e+ms5ag99|`HK(njsuV5eaE$EKTXXrN@^6G{$WV3$S3>|iKE@&l?7QZ zczau90Q-!CIx+)?-Q-zi>N8!J3$;^z?_Ynau&*vjS>S{h*yn=F7eWKzfX~_4E0)Cx z5C3_FQz&bzfse=`v@|cyscdqKL(U0S{@?qBf0R#|Sb|Xz&w-!d%^X~;JPf?Fb;g$i zeX?!z1+Ckr4zIAG=rMGC>5^5(mBS~vHvN--_AAAgObfCJo}F}0g93rU()7jpM|nN| z#i{AQ!DEplrm3)@&UTvGkz*(7`{26+@rz^`2wKV}-mz;(oZq{rPki(DfVRW5^!w?_< zIeM6>sg*InL`xa^h==hfLcDSPhB%`U${`+6NQ5@#%Nbp_I(igN+G1`9#cp)YVXF)& zA}{3p){{?`P>&uv*3l<|iP3F!Ve^R?X27oS=)l4G zM+u>D0++EX0<~$wrs>X|cTQWSMA_yehRDXXQQicVck|Aoz-YNSvuT6=ngc)`zhyxN<(uJAn*VqMhI(%8U--Lb}iP9XmR=&z5D3C{~gH3mhsN zo@%&9KoAnGD`mlH9quSUxE+f<34);GgT2c?hhL zD(1i!?$6O?G*~4Vx@6pvMwHSh!~CeB)Ljc}wk%E(1s?sxKPvsy*j>4m9@08~Yk?64X0#1)0Y<*1i#;5J`2PFvo9s9MK8`B>v=1#BajVjg zaaxCR0fs&qL{c)z4{}hHx!Z$`q8Pt7JSrD%%2xM=RF3Y zGPD34fSLM~&1prKuA!T^pPtue2Y!NcaJ&@$Wkea}5#hKZdEc(0g<%qtgMVbTGpb+{j>U?DzB?jd1ud138E8 z9D^S5OdOmASPmX?55JGm5exa4|L(dzYqzrKSa9{u>;#ZSP7Vo2U_P{^f-V0lOMJ~U zV7)H9vTeuq!p2CXRp}$hqqAkjafIywd#MY0jrMV(Oox#gYdfzqY3G{huDkDUT}G(L z2n(>j{^pzIAARMBHQ*8(LHlfDhW^MH@)oUXnDW1iPYuW+#TZ|E=iMRgvwk8NoUoIRZxlTt!|E`oYLKxvx*0C(|w*40da+ z4Ef9X@ZNw8=bRjAc2w@8zuc+qG&|ANy=kYun`R=#wRS_=Te~JU&Vctgz>pnM;tJe- zf{%b=?ZxyL-DoF#%2qfT_;@hv7JS6{4_@hQ4y1u0ZDVi3@d6s_;OyOdcW85C%VKMd zOvOBNn>paC+dnwOQ{=#)Yio{J|75H)0+zOI+P!;M=|rFh478ck;viGOTi|ydc`hI1 z81VewQ8}4%;NIu_+dF7kePHi;pUEGdHHz%e$C;j7p9eaI4K-|QaNN7+o|Xe29RFsF zT{k#%HSeV^!LG4&&%`KQr2D9(fr=IGez(?P@9#7sM*&TsP z>Yw{(kjde_@u`0t{!mz+o%`(Yj)P57{~|I^klTWTcub$!Wn?^DmhN(*YchdMfqb9d zcYs|7Thf1UndLlZmAphl0td1N1Rot>qU~tL=X`o!xdtlG%y2xFH_B87`?6a+hECZq z4ndl^JY~QUJ4U}p9qfo@o%Zqc)6d4vcquf0a5{AO*!03nuS{S2`ZuPho_@O7$}hkA zO3qiOLr0EGCr-&sGN3o6<~a@<&~50$KY6^9M!t|nex;5nf-`rA!^bhDup`vMEFIAZ0Fgj$zkxuB$W7^;{L2@H z8>Rw$2Zx-|yfjGUOpBa28LAd4*|}$Hm~x(@6N5W~jpK|sn>Mn9(j1$$V^|Ib;SI5v z0FycqU=4uam0>Ar&tQ=XOm`S{e%}Y)T?4A=XOX}do}(b5g@GMLK$KTP4^bj8j<(+v zmETB5#B8Meq}~udr59Vr@j+2w%jFBF40oI^&8Wc=VA6@{Y8+F%K0UT%QH7J~;>;0-jOH(U8*B^xo71 ziK4DjNGM8+sBl=k!)O-C17AYLDzsAa;7uBpXn0drQuav(MA}vX*2vuuRs<*EE_%!8 zGiMRaGB7f*1=*uoD$(e^WNrLQC&@>|Kvcn`6w>s7PCPgNG`Mz(WO;Jv#C}gBLC-TQKR8 z5a0B{6&%Zcu8U==nBu--ls`7Q1CSDp5K;cxxyKY!%6{){ggJR8qe_XR$c z`Kiko@>gFla|D-+za4vb)VLvk2^P*a_<%Q@bGTQnw5C@I>-F%;IA@rF$GB9+j_iVC zfos|_W;94&(938SKR@xzBmHeS0fTRiM%x_g{uX+vtVsXp=V2TVCw|sF=#HNAo3#G! z%fXRNJA&wD{g$sC8E}0j?*Y>MH`v;6)UjL_FF2{>a^%p(%15(n@Yn!i@MBL90ai4K z?>BGR(lx@by!29?4*d3i{XhTjGmHn74<}vB5g?1&?GaSKm-_xgA9_#Qn(YHmF!}{E@LG54O+|E@>?w|{*<uZbl~e(uXncc(j{3`eVjJ|6wrI= z(arB?%KI)cXgbZVe&%&N){EG zGcNTC=CH*MzdknhB9o{>GKe1VH(x;;`l&RSxuBc)6x!1tu*FRJKFbT^9rnzSh1zrv z?A-I6oOY zJJ|ook9?^1u)pzwVw~CqH_yzac0r1M;t`Vz#+4hD_4-pADQ$s2ze}HFwpy<7@BG{U zkI?L!)9KTvY7>Gf+XqZiMcTDyT(J1f=?}m3m1+O}L$!77#c}@pxn{_nkI!)R`qk2d ze#^v7!|js*2l}Mvo_Y5Z#WfzqD14vVpWdO|SHrj&76?q;r{{ zNwG44!nwvs`e41N?<2xy#^OfTw~4}X&}SiRR&043U2B(b2alYLRl%7K!JnD@ZQHis z%i!R01tL1I23R{%aWG_4Vj{RWx)1WK^_*tu&De7s3irSu60L#)vkKT)-;QQRYAvBl zc#o7oLIv#fpMsUrdg|nv>Gbh46$~72^kh8~V+hRkmjPizD5*j^z9(^ZJBS;d zytSS*umMZYagv9l9KoJ(7|Sqv`&tcZ{N+0brZk*(Iun>Ny8Hu6{LuFTH=hKfzPVLL zQI%=f#&3w#cf7?pQnbr(fE&Bx+DOB!y5lG)$YH?WuK~r-Yzom?OGX}aM#@qU1}_@G ze_&_bGeyF9A-Rnct@!S~vve6_vtwbY0t2SPIUOIu+-6rI$Ih2LUzz|j#V11!ob;Q~ zppTq7Sta-JUtj}2#;f>5Z~8Gi&kQBbjPv%)*Z;soF?8_T@-(#ti91Viwv z_R&cGSJ=G?MhumV&uoL=T*jnbG$4>hHVD*!kG?Pp1Q?CUCU`YOB74ViPw0AmpJRxb z(STR$8Od_AGmn#@3O^k2;v)Rqncv*QGiVME$RIHTtzVooGY#Z@Wj?&;KKaWDh9)wJ zLDijZw{I;@8Nq6Hwa$E!`-Ml^#0Lr(DeCdvRov%4I)PJSrrJ0d%*z8G#)H@JDg9zb zw1!2TS3zO=L0{D@u;aP%t#;BrInuG_dv#HGFcPF~&lv&Z|H$jDo{rD-P5(k6U9ln97a(v-zRG5Lm0*yH~>}(k9!7 z{Easl#RALSt0b^SFYxI%{qdV1AzB&7OFEm`$s3IEMdb;)#eMJuJG|U?(>A{F9QnD{ zQk>ub4br<#C=mqXgwGBHJ#9?md+0ZOr{1GSj!Y+GoSux%+!S4^-}ngb=w&*R)705m zay0Ne{Kgy8>xU0@Y}U@oY&d@Mc+a{%e)8mW>dff|;-L+0E2jc>wu$%kpWHN_%BLty zsmJV_MfvVt+^FvIj>bA$M~-C7BeWFy4)6E|9?gDBW7bZ3PJaYC(HQ>f8r$^WGXe$V zKV86fsw~ZYavEXi^ZIp;_lrEZ6J2@w?DXutAU}6!lA=t=$XM=6*|%S+R6WRslPQ ztwdhI_lAcA^@qL_93VH@eDox}WusQ_ptW5)oEyGvfo8`HJbA&c@HhGI?^UZD{mNk< zXK{O8|BV|y2X71;uo)@o3w|{LgC@vkblrUlQoK9USmky;@rrx%=is$5tLeK>vK_ym zKXr^gjDV3o8GqXjt*C=Ns6IRmcit70L3{Q$P#-+m_|5k>jvOw1TNWzdhz2>8%E{Pd z2lgL`zwkzIe?9N9@5mh+c#RWHcJ3UzxYIf0ygnI&KGHKLm(Zoph@t+DN5}=Abdvrm zXc4Z}J=?J|Mf{B4;J8Z-bAy~F8^IDi8k2y&`n^ZyG_xf(#?|OrxBw@0p=a>bKks_S zHQKcd_HN}1`-F_FO`GTa=KHYA@a3Qjxal4!>5F^XB17RQ=#BxhZxxV_9KdQd6&jV*0d^xx9PWKhoX_Nd0AHUP5 z`o~VwFE#^up>y~&{x+7;teAOsHN@JNRnQJXtxMbYu9v-~EGk zob9)l+1WmH`1KH_R7FgTkfg+HDljQ=gi-~%puh>H3c)Z0|jqy00E`rhDSP+pQ3~g|H33!T`W5W31JRz_;+z2go z<0zY8X@eog=wNselng11C^BXyoA8)7RIAaE`pQfpP(9GDKDZcb6smwii8%F0`HaRd zjIM-fY`nGpp^bGAbF;+Bpk-7>Ow{?g7w2;Ot{o+Ma3N&o*(uL4)Yq;?ZUqj9K6! z##Y*qqCJdh47aq*?}!kyc9sEL&O3q&Hoh{(nJ%_$5jkCe9o#@*a3Siy|pH2NgN>kw-%EVJe14*Dvk=V^haBa1;@voK6|dh%Pgjug%KDSGidq; z<{3n1*}T^^o*5(jq5BcU8Ns7wbVR^zXrMsaleL0zU?N1Nbecu5hJ4V3!41X1ATr*z z8Q4-n-sh~KQw7g7+L^JVwF;@cD@Dt1_)WcF<2&QMFv?Tj(_Cp?e+k3XQRR_;oh6FV zs9pT(KDt6v_ks&_O^FJ8*l~2;AAwSZ-y4=JgdWgi15q(f7~y;N?&&P55fZd;fqwLR z1RzA%W0d7GPW{B&)`Y9qa~VcI^+}<$IMLS8T3#SK#crHF(O)3g@t{XR6h;~Y2EUpW zp-81d)fmaR(AVtv;M>8|oi81HPArQWu4cE`zbq$#8u&wv9S$LnYq9dr$9_`3#1a4m?3H#rd@-@=JP#uIQ# zsoH?iMn-0(M8YF}N_(DFM{^W{FRADF0xrzz;j=1ZbegsaQ}id8A#h1{k+(Dd86@Wj z-{zIPyLj3Z{eu1mY_65Az(T#<)X+aSay`TDl z<$UUoY$13)8~H7W2Kr?~jyLIYI3zQ?Z*8v);bbyh4gZ~vle~M^&KjZU+ja8%Jc=j)M29xm^p22Rk?BS!w|BuAvA zqBonPqOIa3c8d*d$tw8eIFSXMXc;l&A4eW?f$&H z2p!`Sv;LMG;&tus-Lt38q36j2w6uHA-n4aRI&kRq*rIC}_)W?!TX0!q?)3#4!KZLD z0*v}7rJp_KH;#$%nPoK|{n0mLa)Bp0AG%{WKyRNRR43T`1RG;0oh>-q_!SQ->SZ^w z7uYC67Y|z={lc3*tB1`f5NfRI@4Dvj5?VydmoA-ey1Dj@4b2$OtFP=2U%ga(%Q_Ww z!^ilR{N5ECwhnFD;WX;YaQenF5`8yrdRBdr*r|QY?(37!PS8Z3vWf6?Kl3R1<=h%K zc||6n-@-7zDP)oW9=AKgez{XKPyS;WvNlj|;5XK>~RG?wRWO#2CilnrV|F=?a#d9Y`?v{v{$T&xU z%Q1FYKg*ygG3B51;o*=oP|6}f+;FmHhJZAN9m2xI>f?C(-js_FuGx@?iy9b1p<7F{ zv4&fbzQ7z6;2f{i(cPxQ1p3@4e2~06hI?rnC#3b?a5j|{lg$G?{OB4 z#d!BUyf;qPNadqAFunBjGiT0LSrf=2{W?2Gm!+WT8v_!PiZ&8{1OeqCTCQJ;PaBM^ z5BxV*nXZ{OZM3d?b0fi?r3?w8D{*!>K6Vu}+c&RS7eJ8yV`intAEo`ybmtwibKYgz zC8~&a>U_mP=xl0W#%a(;aGV1)1QAAUdVdUmj<%hzwPUlj$cXkIoL7e~y;G&Lpa{(f zdXCX>^!Uj-4$k_s-q-H6Qi#B$!GO?LQ$6#w!iu2>@A<_J$!M%I;pvkNB+Q^Q1f&qc zi3|uEotd!&mk~h^?b8W?fr|2I>-Qah=(`!k@xGfFmgOYF=>{Q&B@}VY8y?VG4NK;B zoe9L)!+^2LX=e;J^CI8Ivg?}6?Jw4-Wjn1acB-dfL|3;i~~Uc_q>Y^hQeMPz8}t!z#^ma%GFCz z_|{{KRNtIlJ9wz+q>PLabQyApduO}pR@4pLC{0gf4AvS2s}f&=Qw z8-d&H&Kx;ntqw!vA$g&%jA@P%XLF9EJ7t3W6?`d=f@f$!HWJz@&F4QdI8C?cPuJlE ziX03;K$DC?aG2$`UM~<--zs-mKpV6 zH1iP|qWIn&ZUZ`jUk;RF-1<>I2`)HdzJoD3z)Rkxx99J4$l&3H{^r6<0#@)fJ37j> z7=(7(S3IYnA5PfDO&fZ&UyZr+lf9rFGtOujow{!kmEKxd-|y- zYE){%IN;Iq%`nT~i(?PG{K_kxIZ|I|eeT~aO$!XmcA&c~U3hzt#L^dmAi-fewX~du z$rJQ70$hXk;m~ObXv5M5wu6~8>CbQjp8|QD9)@*smb%8+z#Y8|IV{k$Z{OZJW#qU` zRc-8tw;0BpbF)vL1y>so+K5v&!{tlYrmuhfTQ$5HM-rw}>^tMPVVI*EkriG7V`H!UNL_3VK|=f3FuJt|mtA_8=g_tOYQyu! zvVH5e$@$e}x`_%-F8zbnZ1jnD>1;CH`fIo!G`TYMzgc@qmXMiA?Ooz*2WE;13`D_E z_blTdzp~*5HIDPyhwi>woY(<=^TN5`otQ}b){~ngI1st~(n~K#R#}=BXZfaaMh8Sz z&&&3FqCuB3oXWApj4eYZa)gW@ox;2KsxudC%b8c^PtG>{;R!f*d1wA!SdvY7#u)Lc zy4YHNL#HDM#^xS&7F&MiGyP+?k7L-hBXE0fe!Z-*;dFXdJDhSG{2e=bqHvK> zU>^^&tR}F~#jf2uJIUkwfI)aX?*;wszk2+pzi3ou1bdQRt4!*>5#X=ghDRcI+4!@) zpk8t#lA`cp`_sFER_xGWx5ci`a}5}U-q9LcogVeR-)20ZH}GoEIe1bJS_Y@VGnOVk zl<%U{X&eYKIn%PhKC zW`S>X304mt;3LQS-Ixv@e7*Y}z?(67mfvGf3*Ep!9BK4oiK;fhAp>q-XZwb%0<#gM z8Mpx(0kSN z1U_eTq?Th6%&~pv_Q_^zbLt|dp9vVkAs2xWjIAq#!SSqPoW7TN^)hXkk>QB_&OiTD zqoMbM{7_aM?@J+KXM1xL@1#BkfV4874>Aq{R)yL$HvQmSiWIBUSP?K~hQI)h!vC$` z`D_hxPBKBn$(FiyIdGVFjFnQ(S-aZyZq+G5xSkimvV-T5qsOAmUY}ln{qXeSi!V*z z{oeD_^UuF9?caZ}PB=s6lb`y+^w^`1OpibQSebwWO-a4*{7a4Oi#$s;k=6}X{#oB@ zCt%mgw7WIN?vsx_GQI1mC+kpAves*HYNZbD+`g@X>&h)Ds1ZO-5s_N7x`qu{g3oZW zBfK(3h5)#Uvg_;eWh?8D)liGDsQ`kH2q5%EA&ZVR;ufMg{@St5;zZTwK9h7r3hlbO zWs74e#s(Jzi?lL$vM%^;#%LFMXC5CrcC0fq3dTr*F68mm>IV;XtHa;=p!g2Q zj>vN~oM6n7jQK(6EM9sYZ|`kPd+43(^FRF4e_2_F7OFhbSM`%YKF1aOER4&CU>)PY z+Nx%`1bOZ=z~G=`OTioa5A3g8>*#K~^FX(H`q6*H9SATpA#87 z_;*R3EBwQcfAqB%r)BA{mU8{KM$^!#P&N^-HHy31#NT41wr7;tTkOJOU@oI zHlTd`@yDkcK^~cod&>s{J?UPO19U zSAl^(frDqjm;9XTRu7xZSkTXZ@i+g@ThGBaz8Z8jmPHuve7Wy;u;P$`mv^+!S=O$5 z_||jkL~A3X=-%{q|L%X+d)fv=MSqQdra|-x*XVv_cu!{Q&Ye5*`|atC&>ntbLrRlo zx7c%sZsYuo)ameT==hJm_RZ2Jycjoof~>-Oc)>q95Ko*wb-H5^RPxTqvWVWur{zrg zh~AYt+~^{8SvIDg-}<%BH1K8&F7?8lcFm@eY3P<-r9Umz1Q#;0^nCA5aS1NqHgG($ z3TBz>p5K1{=l@1O1+z>9!G-7a5uV}5cWuHsyn(rQ(4)_`ov|r?*RH<$4W4|5*Ps87 zf1#h+hC_VaNv_bdz{MOe7T|)-`c>(Rd!2m9vm--voT6ZoNfv_o>Z7E1)_ectmw%=G zR_1;T`X4eJy}0kYJ{ueSyHCy=x9{FlHyZQ|`6KfN3`{2cV4)u0DGLQLQD6vi2)4`9 z@#80B96I{P&Uy&#P6XH3T#3*bGlfAv;733cQf5yG;HE}~kU8yjOdxB4@YF9=STxaw zS5j0R4aRV`c@yVEq?e&R6QzQf5J6|~)Rj6hHbr0-8KE{+JILl7D`v4BEuo)2InJlk z_tSBTZDuC5ObW6VoK;6z*U8T1Apdh0&QGUKpPEjcIW+qm7BzHrM;eC7e z)InF&+sI+?W!4#E)d9z>foTo>C|uyGw5?dSuXV%z{AFu7Zy zrog8Ns{5WHWXEjR()5!9FcdrC4yTJ239jTbh8u+~!+`TBeG+|ihAUUsnu-GjFN|JA z9gH=EWsK@2+(dLaQ(+I;fK$GW5RmaQ8zX0ygIn$(s5;C-$a4AjM#^r>** zt>;m1hBb`j{?Kl|CEygi)a(n!3>c-T2VXIu(9&orB`?oyP@oFFG6Pmv=C@{|q<#1o z3D#lft6sbiK09@$pXkI`DMG@RptYO5aa+e{Y-om3Gcz?8yj?uy_ojX4J%3YB#-z*& zXNIwU%skC-;pm%{lai+Xv9^~(GB(E(kyR*KSs`SG&$0Q5S%d*Q-_hLQ!J(Al0*pNG z%y|ww1;wak7%&Q?`w1d>{w-MMJ+m3;1q@vJT-@ff#)2{Ac?yO+DlaVX34XT}#Ip zqmc8(kh7Vl+4_~_WSo4n_yV2qg~po3T^)pu(Z?A7TeO}67IS~VY?h^rtC?5Q`}`If zjLZu{85bOQSD##X4{d0N z6yMz6sZuAIi0|v%6oMvq@umN@5>NO1n z8t2NitIX?IX9L{Wq_HZTKfKR&uzvXX@#D3#2K|qqwC69xp^|kduvof?&bWIUeLSd) ze(}W@Tc6o70n_!-{hTs;LkPaF%GhOm$!a1O1o>-w#1Nln^={s{7Q1W9^uhQ4Q1$)& zd$Q-!PWo1yPqOgnS#}SH@oM@#XAcfpKb8q9 zY%Mwny&F5-fPPEYX%l1lzR@Wj>7I4yrNPq02t<)J?)h6k{ie_ARVO;1%M9Q7@{aMo z{aqJ+LWkgET*l2&Rj=P>*{lCfU673ke)vl9yE;9~UYKz?J6iDTw^We=HgJAB@2%*j zTQ=`}{m|ij9&QH2>}YZPlsR)jp}$WYJNcFq&0g|Jwy`~~bT6bku{F-s{+OM+8&{q3 zb9uUxd-XBEE8`3lx*v-p>ev9}RS?{^(6Nae{)jq^Q9uZ-<8l0D*#R9WyF~zx?!(tM zZ&rqLxT^F39`FN}Gfrk0*%txaUEnML0sd$gEId2+0W8!r;|*QRwo#X{u_dA}2_t_c(=zpjgJn z7@Sc8uCov^&du0BFhpS1k=8YoFlEmfp!g^p!Vd#*x)G-Z{Rr&gr}hM4ah3?V2tw8n z#4)gJ+T@ri_c@jB4`yuNZyqHU0w7ci&y?qCvca3t4U_>Lz zNvL9249J*AGz64rDQBH>xf^(hj$vS|Zq}Qk_C6z#QDS`-#A6wf8-+{EKI?j@X>FB zCYbl_+m}yApj@BMrCtuhjVRXG)^Rj$fKC;S@h}Eg1&2Nx#SEOK>{{<+O_N>Jopq~j zGqc8JJRDcEV~iALpaR#7kYVVGdaa1@zA*yVI+_^xd4^FabHTWVuu0wd;oRBt(~0A! zQi&O;zU?6bO_si4;~3(#o8)x*?iBoG|3E+~3%7cG~jCgsNw75=ZC9chVDikGArbVyK{VHwVh zwipB<*S4ciXfpqeGql^^Je%=?o$k5NH`w-Ge#e6kKl;eDG58-d48s^F+$pxUop;6# z;KRrsGe_CaM=7UEh$)v%7$F!(|epSY3&9#6br=&{a}UW^mp|-GZZ6uU=1IoXX78UNAG&?GlBcP zrdDp+xH)~cyy8Y@a%Tg^yLiEO1`y-V1vYnr#|O7!1jG;!c`a|IJK*O#UIJG%`H>I) zP+%oP<6LD&m0HH+Sv2e!GKnl=)Kw0_S!5Yl_@l;r_+6i_1$OvlWWxk@fxRWvOuTcPeD_R#xC97Mo{*ykiKr#jsm6d-}`~5 z+ix)O9yx<9@KGHPxCu}gPvD{d>3>uGI~=7 zIZ6;&o+15BMi2arB}RjP?grLyIsr51;m2hy>}te^c00Qn zJPm%9VKX+)A@>;r#$$;HUS6_1#*$h7;HE}{dKL^OMxeeJrx{}#exfhNJKU5{b15T` z2mc-)j@p28?~K3mZ=SvBrawN>PIzOCD|MvbX5;tleYmrE#)W_U-g?8=f^m#U{HZ?A zFv#$XI>|=dT{Q@r~u=H8Iqx~^sf%eFb>iiUj z9X_CY)T2E`U(q^xfg5@p4K9rydEZChUBj%-UtmB!3Yg(z^^q4lw(n^6*5>p*qb|Se zGyb;^1vx}!INru_S}Rws2_IdmK9u&YzXCgtKC!2A5D$PEyG0)>lfw%nHlBr3GT&Gg zjtzM&fYek~a1ZTThT(bitZ&AVpGuc|_HD28;5#D~o%xP8^@}dnZUd$Z#w*-_OVfKZ z9(?6D@Y}j+^IJ}V{-c5GS8q(8``j0!m+_roo@E&;yEdLNE?_j|$dKb>z4J&pMbCI2 z%;A@sMy8xzSUwQ>y*c9w&kL?CNqc70*RNe)-2TZw@v-y_UvduaHUp5&W@19%fQ@37 z6?}{fe83RC-7|LY`MZIQd~Z+-73PyOZkdMbU-`3ts)>FPT_F!ml);4DQZ`R&0tlCL+8$qSg1OJ-c_bALq_pD8BWVjv5KhWp+KzsJ=o}PK;ndx8u^Z#mX1Z|8UCtb%Lj8lGR1mVY~(QgKS zHV+=Y5j{*-z%za~zSfa(FI&l3m!&$Kb8Q054}a`KBY2VT?z2VkouwV<2*1oSXTW6a zJ22ZoaOFOjsT_3NH8eJhrO@1rZF%-}#l#P5WOwJZ;-!2l5Et)Wbpj z)Ng!odf~a3r>B4D$r70&we9(@yfmFUa%Nh!PLxh0X%Oi7V;36jTAugqV9eO$m|Qr2 zw#JV%TFTB$5~e!w#);|b#jDerhpZVO^hbpFxz9c~ojiDAdhFegb~B{gHyvG(cE9%G zboS)=Y4eV;Hi2@Wu>R>k`PJ#AR}M^%KDM{Bwml0x4E5R1ePcR&_{8*~55KQOXah8Y z=@Y;6#p#t-4oy!!`EUhqQ*&3Xo}T;0bM3#QPbg-}o&dUb=Hhhu!lmiyXP=3ZTU`Z+ zaKG>eUnu-3R5P;}UjGjsI8;SnAr?j(0&?s0&;P}*PG9-jH>UT!`{Tt1cl5IELSnK4P9Qs0$x7pI#Mj2q$z7;n=@Q_qXv zd1-p%_2bj~Kk#gw6ysyy|IV*`W_n})@oDG2ZKVep6c+=Rn-^|QZ*tNim^>%NRXe9& zKRKNXzP9e#GF_1d6hUOB>MQVa@JIxB41~Zekgl*kVP-pmVNJ$aV?DyihBi$#3`{s8 zCb>8xHe)(>>};H|J6$7OB_CQRaE}~3IbFVZecHUmS{O5ltMmJv>C?aar3yiPa|{cI z%i8R7mrlnZh#;H|&cKFHvKAh_ILEa2;UV`gp1s^1*BPahqA}$5bm_w7w$GsCz;S># z#qfIhwU?)(M~?*lE9$5y6p>WiTXCd^MZ4PKI6R>ehEhh z{*+A|qwwj8{l^05bJMPUJ4%16^()Haw|?bQ)9d?>P7gn^yUL6bv`NjS(_?*|HRKE$ zeL>U5PoAm4Vp+mazIwwr@I3i4_?MEPjILg|Hr={*ds@0m%9#}QarDaJ)J&& zYWl#3KhWTf<3K2_(}A0GI_J_eDyvM>{>7t#XW+AO+t{Q8EVci=Z#+MpJa%e&^zlbR zn^ETBVd;*C4;-B?g|^mg8Z;|=gOdD%PkwcJ?d3P7C!X1tDu!c69Dni?pPOEM;nnF~ z?|vfk_fC%^LbtC4W~WY^n)W`rxBUYf?|tqQUziTO{QC5+A9^Z1iGd#6K)|p6%io(0 zg&$X~V$|aa@2s4@^{sDDM-CsE9@_j+jq8=63y#lofy3DoXM@Mbix21jTAOA~>dnyq z>a@rBc%Yx5+lyx|Ot){)3&YsNNBVU9@X6`=m7A%5eb<6-j4>~5`1vn?cRF|C+_d-c zeG3MLbjq94x4!b7>CCC~)3)uKnksHKdv$cjp>H0X&O{&Wje~|C7>Q1dICt#)bnVKG zzFhtt( zcfaxC^v0oM)8kJ+lD-cEAHRO>^UtNP=ck9Z4CiPzK7Z%eK06(J<&EGaa0`6l9v}VA zuYPWN<;8>3qfhSb-+0DM%ITw*qQ5T2vEA4A8Ep)`uYUd;)1g=2m>zp7`Z4u5){}Ag zsbBs4^vZYlPfxw)i3Y&anaa7}_@}=!9XoV#di1GBrybk2bu%OK`ak_^|Hbr~PyONa zu^5W){>oqbrRj@b{-bG4@ao)kdO!g4 z=&7UA$|Ls4Sp8xJEah8W&NA7{qS7STa3H{ygd3T*{!3zfY zFaP7%6`%jZ>FK8)tIqk>bKeO+uABbluYIC+%m3-$_&3iROY5Mq2eyp^B2Jywe_ZNSD`ob5# zHvQC}__4|I z^q+Q@=pXxuk5w*^59s3W|JVQB^sR4xyO|l}wlU$G|Li~g#pz35`pWdNAN!Hg2YzIK z{nLN)zf9lx&iAGt{m~yTz3IE4*?;|C{kPM1zWu%FgCBZ-0}Gy4&)@sIf4}vA^rIgh z^qIcMw)@3j{5#X9KmGaX=YH-_Ri0ZXPe1(p&;L@!w?BOJ(Y|l(dW6vQm;Ta!GJXDY zUzvXLPyA?f2uDsP*Q)8uU-?Fl%L~ZT_c*o5xd?UPaJ$h};njsgA7w*6C`S4L}`i&dcH5kf96p;Sb zH(#2LA3GEIHg@txhxqt&fAIC`)z|~O_iSsMXp>X_4}bZehaSE<{nStYc;Ns>GaSD3 zr9TQBK3p7fV#$fW{kQ*{jQNim7-93O8-4w)zxDU0&wcL8)1Ub>f3h$R6BN&X^{@W* z-2cPrr+(@u7VeLXfxq$}psO#Xo*%1@Qo!?<{^s9lP{MK)?LPI?Q_Yn8_x|Evo<9Hi zFHL{yPyJ-*WNaL1z4l-GYri;s@rz%ce(K{NuZ>S)IZ5WlmtUB!#^#eTW9cpUv#(!y z;ic*9>9f-#(RYH{WU(=P`Zqs69gG}y?3aF{O*r`F{~>(wy;nm2ADec@rWvyP-t;&A z#@|hUzFayPK_L?qH@ZCGi(mZe^e6x1Pv+jRt@wq1=`a1Y>64%QRL1-9(#3@f=cebr z_1!<_Y%luhpZ@6#`G33Rv!DI!^cViZUzk4s<{K!JGO0~oTVxnY0jpKDpDTBoi;y`5laE)-l@U9ubz<)*P`&ta`D>W`h8?8QNnHK3Ntt)1GcR^l zCorXCORuTFGo$I=^gtRvr&ybw8R?Y`ALaGVX5LE=@`tPpGwY6$J9F;rbS5~(oBE5U z8186iRdQiuXTW}Lx3uZ33fe*UdnYl9j)Z-(vzXYk${o^)QT z4LD@EfTK-jF2zy5aQ0$&CGdNYmIL=UL(>Xpd#uX`;TXB;W4@;7hjmP212X*>DdP;H zJ6)^3Y-Ro9Y44uh#SJu+(06#pzq%K!I~Cq{EwK;8dK7vvekKwx`5OV+`GZZ>VFsx6sxwG|}4NE1Sx= zZ_OdxgXt<`3C{@J$d*zBtjK%2y0?zt$cBm#cF9ih>zz3p+=M>CbJ?P0agYvnO}DlF zmN4KmGkIO6kv`B1>awvW`qK}(WMm?kH65jyGokb1D)dKZru+Fm96ofC*WK!v$PU>u z3_kZfL=NFoa3{0L;ghFNh6WyLW)ufbZGzFAeY|$HMxEf!e0&X^>}V+TUfGj&(L4k7 z$tNE#UDA8(0Hv}Z^yr><%r3!~@0cTnTba0cyse+ zYZKQ@&IxZO#)52D^xJYX%W?3L;C(mK3V+et;MHT(g4?iKzf1eo_O6|~YWN;Lbf~t7 z2c8yLVrl*KbeHKKu0aC;#-Hs{BObWOa}c zJMdcSTQ+TpEMxaHMLxK&yS14;d+wZ!4%obP+jKi{l#0G~?WWp0XV081uSthD$%2jt z{aRx|u?b@-kSrhb>KGHD)r57$eDHv^y(EtLYu)jl55UfZ4|+!6ByMGJaj|U)tbvD%y^YcJiyVOmfpa#x zehVC7#AX4pOY(^?Y9r-uSp!cz@kDWA%xqVmvJ}uYId|>GwceX)Nw%kUz?6M%dDi%C zQPcmM)x#!E-(}o^GdjV!^pG*x^WNt^_qk>a5FJ1BGk<#e@P|KC9N8S!+Ig}?px#Eow{EZr z!uydU%fkDP3;pJ|zBTQSezt@NtvwQl7LT(B!F~6hUEz}((}gQ&f6xp2xyw4j_xeo^ zRF}mb1BH2Kei><(uR3piePvjEhv*aVL2ondfuDQEkACSjW4(J9ADo%K_x!gTyb^q&sp7lP!yJX@;4S5}{|*OI0AiK#{Pg3=kf9;XP}nmd2Qt z@+RFBa+)HMzX=?>1Ml9od)l>qTakX}=7{k54Wo$QmC!jAx$k|S;nUERe&kD-$@62~ za71h_W4R%9C4}=J%78-c&ck_}!DurPQ6s4+W~;7+`K6+r41=8KNJqe3j6gqkDF$i? zlaXj)E5a0ctir%$JZAVVUN{%x zyi-G6dXzweqsb60XNhx)*$G`^M9_$vGkhvS->!xyPo9b(J=)Y1-=+UxCQSH!A-^#O z{=Vt)C!d(sM_}9u?v6)E9eDk441@?v_z!%vH-ygEf&I?iThs0++htMOl$UYVSgep5 z%8W1rSVkPdYUfu!Z{D)GhMv?GYu(IFFm5SP4GLPUiL%H1j3b*<5y-~b^wB)#!KO$C zZ)SbWpx70fz?X7#;^>JO_Gd~9cBixx^8FaEw;2FwV^!+soNm~>vFlbjcWXDSnYPFA z-@0QZEfx|6Pz&4;_;4EJWM))EI zVd?;*+0pa820#pz((kxi2Q@Dg9$pGs^1s~c6}pPTD?Dlt->nicYY9*2fKx_UDe#j< z@@(47``&A+m){neoZI$W+soh5VmbQyAV4IlY{uPh98wQbrtr&f#`6@H^^=TE?YTVT z(>SHBQl1M)Y#B5&+MeN2nB<=Kw#K;JyKhegyfwo+cbR$WD^-^B`?uqiUF}gA_qv{* zF@}* zCy-N6gCu>k&X55{CK@jTZ06_{oqi4KUI0)oXnD5i8kTd%n}*jOr{tQQWY%;z`J;f zV`palUg}N+0!e?5J#PbeXi`k)nq$;Hv8q@rm{W3&A~zpkI0~&n7h0^Z;|jNUj;G0mjv9tZeD@o--{Wd3u?g`kX#09js+1G_7eDEIE%ifj{TGVb6|;8UNpIq$3B%vo7A zmoH!I5n*ReUx=}Ja(eyX8_f(cqt-D;PWWzI`ad$m2A_kqAUb@F02Ubr=VO*GRF!cJ z8gkU*ydjj|$jR0h*jln-eYLc2!NIN3dyH=MsNZ0sJ>R>wKJaI}ax{^IwdFd24x}~L z$qEb^#`;Je>mOqo?gh!+*kSrA3+6`T3mOz;yP7egF>+IV_ME^!@v`BJ;{Gy~z1N?|$nht$~$K8>)ek z2_oY~lY)7tPoIsgb>S`g1uJz8M|P~;o|n(CMaWnDUuSKDiKl^gpZcbKPN<+YyLSYw z>>_P{9;fz<%~kP_wkospNe>J-kNdMD?NYR_9lv`=@ebbe={L`)d(i4|+`V5qfYW@R z>z?`2<-R(N)pv0A+z7;tK)|pYD#=3EMp=6C@@{}v2R8PmKoR_)R~wqu zjt#H7a2ozLiGjXl@R*z$pJS4yZDf1`H$F|MtY5pXdQdQ`PI>;p?Xsl;hz}Jea5?zO z5r-?wf9TY6HaWFN)1}zkGh78J*)DKD!x;>W9nSqtPoR~HkxjmXq5InMU3=aKQ*zKf z^{WGpJU8ka_?~eLhG{D84mnHDD%$ss=hWi@>+(bDF{vp?>~w{3YJypA!3Gl>!F_mo zRrCVgt1fggXLa}+PSvfy^nyNt)65GlHZZ!K-}gCm?O4hHpY#2hmi=bz+EHfNf8fBu ze!jg7>*1X;9ee#m0C_I}4H3uK9lM5ZC_pJ8M9E1NQ8yc9eF343X+>#7ssSEjQsSYj zx0v>(qg5CS`Nz=w?f?1r^4nl%=dyC_*9ECdBfQ*0+^%8#P*CH{JBmSn6bLSoL-c$F zeevDzvjAnZe(n=rEc08BilGs11ycGZ`mUdzrKs+DE_K^w`*Mtvi!m0YP@4^wzk%+Z1nRQqdq2vtCdl}EQs|9V z#5^wjsd1co{XLjv7&45QU;mBYsvW(-l&?FYC!W@AI>;PRER*%GBb!@p;6hGEyN9>U#Bsnkg8 zy*Qns;8Gc@Ac8xY2pE;&qR()`0ORaQ*Cdg(sPl_`B^Yz$!&qa*EF6J;hFEI3=T zA_#A(rZtxCnXO`Mqy~yO{kk2R79=sN^k7Mxi1llt__xMU-Z))4DU!_Lijy5Y4gtm4 zgab$XL@BIX8~9mgHHxPLuVe&9nZMZdWCK1m<-S+PQnY??ac7oivG-(k%5;C z3&-Ht2^&1otM|dn+DB3Q&wc94rFAsUVbCU=`A*@_bP z9Qq0N<)Mtp-{5Qa-e37&e{F0KnfA;~2tY~AZ#GZfvCN^4SjHg(Ma%e;F~?xFrd{w& zAcjEzFC0&}6@VK10gR25KJ!~&F7B6w=Rzzsz}GqlISRPhKQTh+0UM){A!L-c7zGrx zF_Xu#GmHVO@xncFIG>*P-Lo&gc(6g(xo}w31#cqgcOoOaV@)}|qi%H83>FS}e#4h& zfN`g24~?P!u}R|yNPYL4&!(L+Q&Y$gg?<~wzgQXy?agq4~EM%v^1mg(o z)s45{N4=bI{6tQF=`-KxJJXSi2LtUI^ zyl`$j9C6N-dMz`u?$rBuRl2xfz~?^mTpexwSKwM5g*V&>zV?7Iw%SCl++&2}TXI0Q zhxa&B0wnsR$cE_J(R}A@U&(#_0&1>q0+^JJj;kDpY2B@wSG z(8z8?cQ%YPkutI$-)t~IKfNq6KjB zjPEng=pWpXvE#WR`}JAMw`aWP(yrh1M_<}*ir)qfL;Lv-rY?4?ekk6Z*J{slMPI=U zz5MmR{L3}<~cI`?D@-; zdHBl2i8krm5j3(HWA5c|vN1J<@A7+KjR&jWQnzPUhVQ%lE^V{#Mm9^F;5^6H2L1xb98$k~&u{I=0$knmobl_EcGL}r=x~O6Wy->PbgcLO{lD_p+BY=lbF3#H z`W5_L=piOXC-An#eiz)gvEk**7i*KbZ(jkMe(Hw_5%i)CI$b+-gx$#XN&EWf8GpB* z>Dw3=hk8u(sf#}0r0awJc}9I`)-%o8NjvOgGE!#n50)Vj-zhDK4--Q;0mdLgT!bj# zL4@6j3HmY1F${+rT@NT-Fa}EyGK_r4OnLN1JBgeR@}viqe4SnJ{ZCEkx=Rvz{VwF@+jkXCN6P;bo%; zeReT~mm-`vi8jn(lwS)x80Ebfp1H@VDB*^&F*JoH0<72p8!Yr2Av#(|+V<)QC@RiI zAQZop&Qy~=Kj^HMz5ocdlB!GW2)gT<1R*eC?sN2Qde*k0;0a89r>Hq4jBG-|J>!Qz zigg4!Vpy-=(DS9Y?cCmVo(xSJf_(G2?{r6YK?XA;)_;ixQicj42G=efEVE_+J=ZVB zdUqL4dom*!*z@y2Wxn5Ul$^44!+4C5KvB#Zhz3(+-!B=zS+5Fd6fqnQLfhg^sjq5d zu)Y}@%it=M%^oj}U|1BvCOAR>pF4l9YwQ`;Huw^CSro@xK`$b-J<~Ke0Q2@S^*}Z2 zgahh4UdrB>Ie<0fs^l)V1;R%FwdF!VQi2A482+T zDzoA=0|M}lSi&WLCyYo=Dr6Hc?GZQ}JH=Y(tZxeA z!ZV!($#+WM_yxthFguS@)$Ny{ovm9pRR(KYy$n2c7{7O2%9wp0=OHU-Ln^0~NyjD~ zKYFa0FLk_R`oK41Am15P#;y-!ID^B+bH!zFBzwVHIP%TRc(WK+J`7pGSf(gPi~P1})x4{)ED7}$RuM`rI@heCGt`?+ z6S;Q#&aDM~up#o{L21qa>1FWNFJl|V(=f`_i_hJki|1xp?Dv^&UGv!Hy6A1VMdzjU z6wiYT8h|UQkmuu6pEw>Gy?7;bKkAn9%>duEYj@zhsdAkRA``)KI6fn|NiHzx8f=z2 ze&l%9hMqfjF*JT7ZR$TbMjxb(due0Hj4>`5Uz`($vNZdVX_bcZY}4uKm&&CTl?NOR zY0?bNtHJ*`?{@GHxkf*0XP$vJR%2Gc7f$utJ80D9cQkU)rXHh_UQD)Q%_CXBQx1f zQtV}!T@SCm_{z)E!9xe96R|Pa8P=-5_S$Q2r9>-aSc4kIUw&B#zLYkj*MmzJ+w|PI zaWW1kn{1@>r5+dF8HWHXxnw-}e0FZtrFci6r0>S=h1WTYClB_yIY2tgp&2H=>!ZKX z|IAzZs||nGwtHJqzu#sWnQ39>Gw*m`K?~%jvEx_I4mmm;L(dtHw$ZOTX8EWt{hG%) z!`AXUbTTGn2EPlg!>6=-fh6>8X$lx?508%{@?<_*-#<3K^PA##u+Tpn2BNC~?JXXJ z2U#h2c*`?NCSgq`L$ zZ8xx$dp}4U+IP`sGGFN{@E$xr_+AiNI=kgy4?n!Ofvuajt~b+;e6SymzOYU8-8J`B zQKy17*mL*{{eXvi`lElw*x;Sagvi7OIsnp8y3zZhag??@IGLb8bZb?fhvB zX38(cz;w(T9NfK=Q3rltsSgZ3AT=XNS>H>YU@U!nKB9%uT|+U}6Gw!hB!yL!56;ko zaoGXd3eQ-BW3!H3B$4K;^{+Zm?mW{*S zj4`?@hM{y(V}|!9p4!)0Olx&k)!`(>(MkkuXSbv9(ieu1U1;stxqJoZ)v^gGvI8$> z=bNGy7&4fNA$-s%r3dmKyci21<#)oY>s<4jJL;;l-RIrRQ~6N*$rw+C)i=kCf={LZ3d0{&(#8o#6HiMQ8>UuL+RZt=mOuc!$9> z9P5=;%GRJ$IkEf&Ca5}E4T}O{xnNFRAql+>A$L_Xp zppT3!_+hY7cGf|^_gzoMV7(VZ&>7fMBgVUT@2SkY9=f(myO~rD>6~(X<(gfim!=;} zQ-2(p{2R0r+~q(0fxkMOq4ibEZMw5@diu%7Yp_2QCrNagtZ+OLJPQV{S+}}$Bw$4D z=sQQGGNv+k%u>QX955d6lAuiuvfQgeO`Y%i$h#Z0m*!ccA@Tsc%xITJ<7nG`U)$ub zv^?ptA=HVNxqvgakOP(tq&|4$zR|3xX4x)(8GEWKJwv@Wb8}F`rF_MZWxy~ zBeN6>4QZRvXFc#YzVWT;yWf2=Hi{#iVq{;7E)G0xzP2cM>oS1UZ}}75v})bRnjj-f zW8tCBm=9Ex2jEQ~z)=l=Ar z_dZoQhaL~V{>F6rRO|}D<@}Q>&LP>ich|II=Z@-=?K^h#yMWNEuf3XnoSEMDzW3GX ze&NLzGOnQ`?}S!PM#jE==uiWWQtAKf&;4}uv7iSydJgRD^|CB*K+ATu#=o*u^q>A1 z&dhL*En!5{oF|+}29g(ZkYZ%4ygB{wM}MgF%y#<5H@-0)IC!Yefsc6KG^rriRV414(-DsesP~1@x0#!2mC$j zEB*90o7_9(x^@Qb4kwcS{JEd|ncN%nW1Q}zQ~U)k0&?szZQJm6?Cm4KWISw_rE$K` zOlQKAWL@=Z#;p$fIFQ*70vExQ_r2%Y*ov1@&*;zhpA*;@n95iplB#FYceCi~-B=RQdoG8v@HT zoW2>OI>*`gvmNL1PHpAr<{$sDAFH#9wpOg9(?=lQ-`bq<*Nyc8ANW_F{?7qScp=O1 z3Hj*0Gt31ttbcy*d*9P{KK>IQYgS3K#&Y%4jt8N=z!9FisbzYNev0$xyY-QcCMEoi zwmG|KgfA3r*JUL1Nyn25Ez#*e6rX7KuJCGjw3!4c-_OumT0i3^`ypduf5;@D>o16XTs|Z2#0^)*^T^dWp=iY96ww}XbM%3O;L>Wn31wW zsdVF+AbMK-W`z4diWw%e5C{QLzcoV{LgQ>8e1yiBM0jSI3BD@SAXpugosE1D^VrQh zN_#;`d5&RgmJ`RCWg5-^;vEq;>u}d^knX!A#;P+GZ7LJNOu;ZjaZv>4?HFIy)KJn4 zc}@dkf}uzNi6one=19G1wmfgGU%xgAds&^t+XPW=GNS#X@Hh_6SQYuU@j?bLNePx( zhOxjxx-__Pswq|mrOR%$1P=vcY&RoBFs2qdTM^-5y_GgONHH1fL{+(`O@jAk2w!@P zs9|n3bqd_gNT0uWp$0Y~#F#eY%vff`T)%O3x|XY10AWbMld};3Hg~Yu%*DXy%H?Y@ z%*{j)j+{F)F@eASg_+FW*_dKcaAMXUv#yEIgp&%~Jd?*WmcW?8N?R0koxO|~Jnh13 z2U*8>34R!Cm8;F}G9YUs9}wL6B{!RHKF?;`#dfSWma>^=7vKhlJ^{pT_HV|jT22|S zj)2T}vxXx4j1@w4`7*nfj#&(bDuF}LfhU97W=_lEWb3!t%=-_lcN=R*Wp1FU3umnb zOMlW|bfXTR#@RqoZ~zZu7KJf?uSO)8)zMC43uExu+v%S7mGPT++2Z5n14!|`mW>)t(SLoz-Da-^A=;h=m*Y7zdW zIN^xGo6}$kd;DY^j7dt&k`pr%tI`jKt>@8?@j4S$JAyzgUa662&>Ck-2FxigBEZ=7 zp^h2_lrf61qP^uSqeReJ`cdVZ=Zx8gj6K2N-h&vBccyc3n9iNLIGsHmW8#Jxt&t80 z9@avt7cQ&RQqT4niE!bJR%FLrr-m^hP-NCxdYr(UdRC;qyMafIl<>@OXdkpL#s|lXq6cqvz`KkVG-GcB zRYa=-jCeBXzpGkh&N*Yht*A2YDmd2Tn^fR`Pk~Yxp1t@X4ET0QF;}Pzve| z=ZcK5reB7MzA(NlOK~*P$x|n~d_x9QgO+A2(*|0b+eR;pur%6DMUBA@vWPK`&OyB@YYJ@7XIyh}Uo2DIZ0a14#x zKRjpWV;f6>yA*Q$`{4UOFg^S1yC<84Sq7o_{q~)k)7EWUnpO=Da41?~b4I%_zj5Sv zP$alWwgGWuPud?kf5^&i(iPp5E|gF3lFTw|N8uM=w$J(3{R=W^Gn*$)oNh|;FzTgr zjtsILJGYnK6mStB5&S1x8QhFnG9CQ1bs;>62Go%+ozce4vPj@d{f@b7AS&;X4V44= zZM_-T+&2y|>``o~gI#9hL4g@I1*d4piD}yR$ewA}?w!^7f|77?_QHj}$A0243b@c8 zf(UhH@*?}lk~$7HTng%e7iYOJ%Dd&W@P}mq-GDJbXYbj#bKk=cPftJnRODnFqVUD0 z%^OQs^w<9V`=^7i9}2Ext7Sa<5A5&E^SanBF*9MA0o8%ifngBspXczt2=LGGV4XuvMSZkl8j)MmeOpf-13pjc1 zIdpYwdiaq?0>?eI@5VB|;h5P+qx=kq=|6m<|M?!+4f(V%)2*+eEe;y`r33WEbH004 z5hV1^>`<%E^YDl6X1(jav7s+B`r1%O(TsCVWeCA!_##`#bkLVAtkYQkC ztn@KCH{^M0%Lm?UP$_z8ZDc)r8JyHdHyalnhCb+3zDl~(qEG8%BZkRS=Yz@Scx)oi z!iTY(?~UbhjH-aBweR%id*1!-I^6U%Tn$;z=4Qvl z4{VToq}&^e{uqn){LM*+U)c~Zzx;Bp*J>Bte{%#j9({CQo&R^7?YEWL**<#WjUtxt zFe`+hA!#rdpfd(yNUs^h%-Iml;VjP#4;eO)!a%biLbwQpS%E;zR*V_lk$#BC7>C}0 ztSZ$Y9KjN--;eOd)eMtYY4+1>fOL^Kof|h)8JQ(ByY2THHTgbvT9(FnH}zZNBE2mR zQUn7+GA>LYJygn?`Z+cXGErwtl8(eN9Vv*$ONe_8GpYmJtQS)+3-mBZMg9>AsAo;6D`{G`AUFAb!Om$FtW=h1ISDjoah@P z!F#7ppQ^D-`S}g3!P&+{W-l*alTvr7Ywf#hd!FMUNE_)cqtfuw=S7PcB!mGb%4eLT z5mk(kiXiLkLzF8VV^(S00x)QSk~GsNVrLg(1|{6|%6KxwIx`on`N?~RX#9kVJ~LeF zh-6%h*={Bqco@Hkrx~Hnp5z|o$ykB^*-7DiJD)eL#nFz!NCoJY!D)T^rgfp4Rcjkm zFtdLB8fAyJL}Viz7*o-gOJcm;>n3Osa=DCy(cLI^Kyg_v_%*ica8h>5iX>6p?!41A>@1thM~RT z1Tt#U|IjLRdo*vp@wsE8n63*VIm?#+ZF11-9r177u1K$~K zl$8se3>lKP?o$-Q;A{{jG*g8U{&hrzV_z6?cE1gYg(ff80hOfyjtX2d9xmtk?q;2T zuxpIujHMq{%6&ZlOM7O(&YvB}5uG`HZn|+bhV$JAT^H@LBk%gqfeno;V`+L>#wKtj zo%%wZh0xJ`j=xmsWllQsh|cB=TXoS zJqjX1mp~803eVO-4<0N9vJ7At)8y+&1=J?!N?RQ>u95BeWR#w>p;2&ZX3p#v2c-t> zr5N-XkC`zMa?U?TQlB}A98;b&2g>={>mOR*fMx?Jktc74MjS7P&QX7eZ;Aw%HVB4s zu+zEgk+04rhYK5B9LVh&Nbo?8t&Nj?=KR^t&~_#}?RbV>LxX}S#-g2B-;Q7*V^!+-ozC>5 zB|&4edieida0DhR!&BrweE?U80B_QXWFXoweq#_Q@=p62xHKqcJPc;Eo!=RJVA=HE z*a2jdfQNtyl z@S@;cr`cFe{%rS;U+ft( ziQ3Vx;ZVs~gX2Y|51A^y-?}|;X)Nk7TMwUTvGypP7udOs4?V+wZr2Wzs{H!vhq?!m z9q-AJ{reA2Cr-u*+PyP!G`cQy5(>z;tQltK4PL{$9K5!l`i&Ki+df$ZwhMt1`gq8} z$d$<8I?cICdl{r>@r&O_Fq7`*0FErUx$kp9H)IxPTV2CB%5(Y}Sm`61cXeSF8JGX} zn5_ldlGDj~!>@Qih9J4jzW%=c2FGbSeE4VssP2_M(r5I+{t+~L;<3k?#ef%Nsay@s z8QZX3M*sECyS~#y`LW|5bBu*-ME}O9e;n+2&k^6Xg@^bKT>_N8j^#0`B9BM#qQ|Y0 z;h`n=!LU&?_Ta(#eZia+_$ROc<1v=l#DND`z>NtPZRoFio)G}0!^WON_e!TSe&JOA zJ&PxO8iR2+5S?+ll-fA?9lYIh%%?Nwo%byOs-R6rd1<4t%GhKb;uU}E3*C;^n=u+V zlabnTR=573AK7X12r2gw_4_&En?Cr#_fKE^;+OuIvz_j|Q>xZ1vA25=)^N8<>npr9eVD_&__>pGByJusPxS2o`JC zt%<^x8h4|L=+=!0+b9?UQk$u)%2Rq3g^O4jp35nhC=97UQn)xXS0fZfy@A)-RGYhT zC>aeG(;w+%&Rvx%d-C+@Dv?!Twvh@ivb!OM&4xG(+q-sDyLOa!fiGAUcPU_oCR`Qz zVR&aBKeXv`!J+gPr*3ICBMrw|IgY;f;13<4Meq@k2b1Bf z4JFG6U>J6$2`vOZ%8Hd^^CZR-BNNW_m-9=o!!v=1F3pC(6MRW|DQ%~33>U(B)tZ$t zRMPemSq%}wffeHbEC?ZR_X#Y79VIptN;;C83=+W=B|b&*M-?y%yD6R*!G{H4fC~kE zx(HVNF}^;M_q;Eq+-n?Y#wA*3pb9{ly>r2hzDlPgz}4d&T*Rp}R^KTC>x|6?tzR!g zgafY5@jN^X{BTyRQO@6?2TMOVOJLzSf}6oY(J7W9;9+!6$TRBU1y081Ymql*>H=3z z1fao7vq#br*f1jSnLQC6#8+7!L)>OwcOT>#@r$&J-@MnXi(EQ`N6(!-KOK4F*mU~D znd$n~@aBE9Fe{tFx-&}di5U5eEC&6<`}P&acuZT?`ky{`emavnuHU*F$NTE^@+NA{02G>TKSoiQ$mw0X;>&hpsc(ou?|PCK_>oNivb zF|7*zwr<`UUfs|QX^f$Ucsh29|$ekEYgKJ z#LmCAGqsJf$Y;lB#Wb6i#L*6EwaRYB6W&k5<<$nNLLYc&81oP6taHkjEm_{W$NJ{T zw+xgcxOv-_X?@_iG_qy=#&y$%EgPnLi-Oa;*QdqH9^{!dad^;vWX8(n>AL{SaBj*R zU={iz-$-%tAAj1I55EW+*eveGO>5o54~x_GeY|ak+6-NE#-iwgZa^ueSPEm_O+A8e zO>a-#j5#=a5dILbxpn(S+B9plx_XkVK7RaUd2DgUDn$^^(T{%nuHbLD@i*DupjzOE zM=JZ%Hlr5pqXU79W;PiMSm!zVr7A3Aq^KQ7L-tyWX=c-MBXC_BS~!3C!gTo9k?B_Y zyewl}ydv#{5IFBl@*Fn`uhDw9H^>`XD$JNUlv>`vH z88cUDGk-UeCUu=Wb!Iws`fPdt?`EK)lk(o`@Z9F`9Z8mFR5z!=3^o z!Ph!Z;UhDz8y?y;t)=f%-^DnsE5jq;`o8zQcY5rxN1}HZO-GNsF&*5$f4UH7^14~f zAORi16`8Mo_JB-1G>-z|6uvE0AO{|b9$2|Nj%4VLgJRA2weZ^Q8WZFhk>4MRZD}LIrD-Q3F0?!Ks5Ewm zw08oD%|;Fj7WjLfaPgeJycrlT>7Fa>Jj+c&<8dwp6j#P(piQDdDnB7}(UN6sP!3*h9;Rt7BvHP5u+JWr6d?y3z z9OlC7_;Bb7JAq#dysQl$Yw^iwGO7HOf5k^Gx)shk0h8Z`twEo&UC=Y}5*?iOtG~#Z z+^eM+{4O<7lHUYf*|TIW80r7DD~@J#^xQZ)6pZ}_HZHPJ28DO>NbYgw!F(M3wrAJg zIK*2TP_pE(L7>nY9YDUpm-mdpZ7HS4yXw{D2 z>@Ri|+JZ!&I2DA{PyOR;vq$MznJSkqU7RjnINxCZv(G-$eG_CM&jHw3ZqpZN5w7(e z{dV>~yx|%BrzZpv>3})2ag1r~6{K$sOs23~Y^;pVckS9aedt3Unm+#VpO}95hdDHqtGn4G`2W_29Z zbYKXCFxBbf`G3S);EnMFB&raMHNy4cg^QD;R_v_J7V^bhQ+Fz7J+Ja|rE-j=Gh+x)$N@yi7_x#_GK@C87G;6QF z;3{>~CV9&jFRRmW_vY>C*Z${E)&PZT8@$cy{*C(<12>A?Mj)I}jyIe!T;WW=VaZH5 z0WS4Mz@ti22ZK9`uU|8cb5|~nzk|P!chMCB$d`QPk2){CX>4d_L={_do5RGAh6nWE z8N380EN|r&pBUJk843&-&1Ol=y2w7^%mV~N(u|B*J4)?JGcD{6A0CZj z#i#mxJH`n<2b!<_!MBIvK`+I53{|tZjE4Mfxcb4l0t-=j3YD=6mc|3uXhJ~IOcegM z-@%9=51QP%b^G+n%Llt=%?zFOjMBbDe7D9hGfM?2#>lvq+KPv4=wh!6hBP_BID{MW zMcaZPl;f@jv^IDBDmZ`r+uti4+BnfHg#HO?=)3Py)`x5yG$F7A{+l*$Dox^#o?Dzx zMu_0qra0XkZ!=EdEUSh5`TQSztx;+HQnz4K1B)38+?k01L%|Vr&LEWPx<2w}&z?P1 z*iHe^KXe3U0&?W5y$kN%b=1_=$kS`n_r80mvjyaw+5U|iHwSNHr){(mvCRW*8A@XzYqCU4J(E@EI7CUm}#3uUa;(i!<@!cMdiHJZO{QYwg}}bn%Xve8xN& zTjt<>G7qfA5mMp7^lQw*r0USW!0WmVg52vvkHaBBHwRxmQeL*yA`RtzN9RNqrvK_` zpm^o#utH!G*wEbqSo%_(U70rICqr2J_c?3OqrdR2I@Ir(um9om!3o?9`HTL*N?YWQ zPrOR5F!bQ4PIvxh*xE2O1C0$32Pge%AS3v(d`WOhnz&^cjOlND?OW}ec#Tc|-Z*x& zDe^9~XU5Fz7TTEkjII;F^LMj?Ku@;P0?o*hShR#po$ z=hpPAzw&!&*K)4tg20X~VGj+#M>JqI3tiT+4ld|-OQP^Sx*Kxpe%iU#S-EQh@Trh3 z;V4U&WosGA^xyyTKZ{|#H-_%EY1`J#btrB`7G8-FeJ6cc7J8HA!P#oiE%kPmGry71 zCMfU@+93b%l_2}NwfOl#^vIde)CjWu`oH|$>P-&Z=7%=zd2V! zC(y|$;luVX<1IcievW1uDBa`J*&ZOr(Y1bZ;yW1;R&cy+`xjdKPyYIUQQl>D$)XZB zG6~YGO>%_pzkVg~AVY>T3|1yctd|#Xv?*kdL4Ck}9`+l1PSDzQ^2Dj>`4?WCe)E&R zS9y=7=o5WrYqHNeK@wcOWfSC|%m~M*D&&TH#s>C+iLP|L!S#Ew!AuyCwKjn~`1O@=Lj&fc^K0(cKI9WK;PeO z6j2%zCS({WjNp-uh4Bc=7z($fZ86HPEj%CL7R5*aNs-zVMY(HFh%^i$%7_t1`sR|r z`F<5B2h9c#btIxZmE%W`mPsPf+9qaXAW3tv{`*pleoDkS;RFpo?{?s@IOC(RrMh8O zDK_a?1d`nbIlUzJFjUaNTo_sK2nL*4^io9=rG4pqoRTQ{OXn|6r;neSjvhWbojrLb zz>hLox-$J|u!%Nj+%d=*$&?c1kVf*`pcN(6Pq$Qv-7;uAKkt!NE0a_VcNniUG(m6Yww|vw>y>=}HRGhG^C%QO*?k zpiw&jj|eK~aQ(XVoiX)Y-}E0ml^+x^`r@}flY)lk&-o(o(Ba#^-@ZrTj%cSKK-ZrV z!0rV{;HW=@^QezwM&XN+hIjHTA&)ol4}~&EUGcVOCC-Hfv~kNh%u;nWHx0v;S$t`k3`#U+T{_FC z^tNe3*ET8S4`)Qy3>i5T_>e`Eo9r0!se2xvZ7>LY400GVXe079FyJ6cL6*6)E{a#$ zwkS6|DD!)aICTncaP}E-_zM2uU51OzBFzMlgWIjcjO?+~H%Av88|U_I+l$L>+akj@ zZb_Z@yVg(P)P;&W>nalmjO|7pF_Md3pdaRx&ymGp%;di{Y2+im+!JGbd*tMz7+lh$ z(c)W9-~y9%)*rBA{ z9im?aZ!#z=)2lPaxvO2r9~f(iGmbyiL4GRg_PqDKBOAdwS1Ey;<5V!1(4Hdgn6Z>< zrZp?qL|z8&(G3WYKG3$$>v8Znbc|XJ;}5!2yJROr4!>WFthVWwG2`udeXj!kXu$LC zx%7Gd8(jz_%yMv+Pddl3wok`!e8v%GiXaXBj>gTRnAuSTY|QeVJA0=5OFkL*GYX1-AGM6Xozf7*aDWlaB`ZC8fTm1LRU+pW-oCD zQ&DM3@PTp6cpd?U5#T|CoPD#c-ZLhF3yy*yj^dcSW;0~`WI9{TgvZ!1deyXEKPdj- zFU(N>#W(B=_;ayYI1r3@u+`qM!^V1I`axmn58beC+OvC4Q;EIb{R_fZ zCI!$Q+OM7uemFwfcG;xtk%u2HeSm>yyD?M>cpEGETp1jA+1rM$Wy8S%J9N-A8XxOg z{XH_gq<+T^Ogm=j=mmjQv+SI6bZ9J!v(9^DSa2ke3m)JAN9Z1Z`aV0jE@N|#jZ#}C zFxIEmm$vYQ&$-Ne&wd_#4yoos!*hSNGY94TJqH@V1#f`?eqgU^w=l>%+R``tAuu}I zhmODt#b)ezW?`~P8nx7M4xP-8I+=NYY}QDl4cP=dbFrSx9&-71^X0PW9Vw#$jBt$?z>%ZH=|yyL4zrGTQ4$ z;CScm?QKhjkE{~`dqLzIG7#9T=>t&&zVJTN8+n9Qy1X$DG$4?IZpj;V4qFJn*wuSo zWVfJ`B9J5qg`=iOdnDm)`iyNYNNc|&y5HY~Pzvn%%Gh#O_B8Rjv zc;W5koi*DFYqmFUA2Ux10Z*6=AUg(zf*Hz|AZIk0)x|&%L_lo}VhL!5f#>FT2nr^L z?*t9PeCj=q^}RZ;X^*pqu?as>d(3bWwLy(jN0Vq0;2^pE)C?ZOS(QS;zi+K^W zzS)(}xE^`(vAl01p&Q-tn6o{n-puXJDL-b6hM*m@h&y&{Yd>ZfsavE{@hrhkpkpM; zvdo{c5^UWSH19FA;lysR90iOCCY)_}Y+A2qa}Gvd*;IuvFyl+n`wkbK*#NviL%+&1S1-qzjU#gD;^pE`S|*&@>|qFNk+Q(t4EW7E z)73b=95iqtAXl%mW^k;JN(IGTQ<(Fve~f0#PDoQg3f%eKEQ$5IOY%JD#H=Tr`i+xT zWfXX!ZJ!%9uB|ZvuJf8ZX>i@Cbh9m**>hak^Wt734qpZS+B>EGf8Jm3L7$2deW^Mq^RZ}>qA`b;?cf#ZmF7+l5$ z9&N{axxcyw8azEH-nBc72pfrj6%Mjy+j+ZDLThY*GExk^$Cxul^sjx&poVmC0&ZxY z6NR@oZh5F<7vKTMVN?tnHpZ>n9;zb&-)GOCo9?8qj8}@)&Y_ejr}x&~ThqqPBY<=B z_KgVrl@0zFW23C;%bv%#xBm~)e+CL1P=x+g9|If@F=nkTyml$|WZa->#=-GyPedMU z+qSuN3Rs{Iw1jWqW92G*Z>RqC<$E&>3{ggL71On=HQwAad#62$2+w!d?sUeC6h&<5 zhIc6OXP$X#S|9qkdi8R~yClZtLxJj>`HVxmVRdLfFpW$V$bcV#B5-t~fXxFLgc)o` zDTpF?HUdkGU3efL;j7BBd^+f;G!*#4!G_4Pr{4W|;YH?Q8);T|L_^Ycdo zm@8tO##rDit8c8Ay<8&*9WYGszN`^W3tpG%Y4`UYix&Pj3&7x;jW6w@kC01o!|Ce` zb(B2Vk^{akPDjU5lE~Zz2Si{%$~9gtEu;?PpJ%h#iyS_N4tzGnKkzmy;%FkrNixtF zeU5izBsDvx4miCr)|WEO!4A*SQ-UmvGf(Z&(zM;+@F9W1{KlCRKn6Gb!A5ak zkP2^_ZH05oS_ECt16kO>Tlz-N({1Ded2{;osp;STxBf!$VQHBCZt#ja)Qg6jVG$a` z&)`=I4{p$kS!rYPoC{8y${u+DnPjQ{llwAP>~d}=a`a&5e>%T?Oy6zbhtH(j+Av8y zV98PSyt);A^Id=F5&`?pXh#o`V`PzF<-hW;{ORge&y(91FI=qN(NFZr#=Dhq_#LgG z4|wypb`|Z;y5D!db(Y)jk#qWn4*vX~|8uox4;(x=edjyhZJ*5A!~bwVBI~0MZ>3+_ zncJM5aF^%Y^Sv~d-?aOEy*_B~eLwWB_7l$L{-G)QN3a)d$bhJmmH*J8=Vlm!E81)O z;V(Q2CTK~Pga9Z$5a{~3pZ%HgHNFRHmv+DtERBV%C2Qzkv%_Ftd@q;1xp;cx$dTZL za~OLneZUXpoyb<7rGe-)M^Ond3Q`HS^_WbfMGZP+<0Yv<_WjFZ|AaFOOxRr>=+X13`s_JSWg z?>ThM-ul4%-~ASktj=Z3o&h^}py&0~J@Uw>dp?by?D6dEY?Bjy6HKsq7)O8mj;+Pf z```brG2X~eFsS~|`)*d3>3E8I*T`^PLUS-d<*B`}nb=ojqd|Gqw@(tYpjlDUd>tTPuiRS0JJwiI5N4Cd1` z=azxQP{Hw(9mh@`RkSg{%uY0oE6xkYgEQ3`lL$GAOZ|)=(K~6PB6Ntz7#Ou!L7|Kp z=maMxQ`DT%ZI+$X^c@q`VR6M+)FxqvX(=j9!J+87!%!^3Cs1c00Y;1qQQkUE47!Yi zAQBhr20ieU=P-v)a3H9y4HN`$kD;l;5pY;s!Ll^>wP_ZZkxL*G-qy1j7d*_&KGGw7 zd(aujD)jumdE=%k2QykDbu@Gk{2Fg}ZjK;;OEXSrNH9c7A*Ws;_!t&wjDSUdHbK)r zg<=A8h7o}Sccr!9dyF^qbU#LD+9jy0Nu#&~e+XL+hadtPlon?9V#Ac+)AH;CYIIU@{p&4kSKSt%^MN8vUT%DXBYu%C=dycgzF`7`oM9~g}jJure z+z;GcgS+yEzm?)GbeVVNdz59@^TcU@3->vsa8B`{6VFSj@88}J-q8@pv4&gTx1k^& zL38MM-Fp0JOvBKxbCdfNc%7O2)0XG^8Ju!J30ku{XV09AfFGM?kO75%U?oUpu-kWR zZh)jadB^cYf9myV)>{gafSO&h&AhJLV0Y}$R_MVj6Mn^adO~@LW&_YLK;lS-KDE>I zs=z|3EXVP5aFT`^@$GKt;p?ZKd~AB+@keO)C=!l%+6&)PPjm){xyEoX^99z{Q$Fr2_86tobOrgO2~*%?4u0N5 zDW+b5Ds-nFDWmry$8J!5snc3g&lr38KKw)hN*m^c!Vx*j7zJ-_Gg4|)q%Emvci#*w zGkylVF&#g7qCo|+2|ZE#oz0Ls7{KDmri_PP$uPKcoFK>2`c=jXhp2QP9{0Q%R?aqE zf>zeXK|$~ON_c2L$Q(FC+mT)9Rn*-c1mq%T-`aNuin{UW^1$A2`oK6desHMq&0tC? zU#8x9W*bbTd@orR{)$7b@0Ist*M@abLv` z)`Ac=vccQvpS&Ue@F*UUTH0V_`ef~{PX;l5#&1J5j=(X!RQZ?ZNn7WYg7LhU1t&#X zpl8U82DcWnldRdM?|e_UYW&K~!Sm`zV+weX1(u1qXI2}|haO+pI4d#|UTZ989PW|1 z@aAv0;!KZwgBLL&d20r(dN}fxF1;3>u|XPK(OKHmZ=0iSj-v?%TQ+X#5t4Ku+rr)l zGM%g`CD#OM1ON`~KUh8P9^(B&hf+nS}6!*!5>K(iSFe!9WD#`c;tvCix zKStnaNoAa8$NOetV+RC219v0)Lb^2Pl0H&LQ}hF;?h>A7$rKY4oNY(pNlDh1;Rp;J zs14875em!&Z_My=wr%2w=wx1z=a#U{d_xbR1v1tc%$RFW0G^)oyS-2t+}f0N7@{v9 zXOc``~Hp=}!CN-P19`(F#3* zHav&+6!)svGe*2yI!fQjD7Z$i)_&p_@Fq))SCEE7fJdue0{dt`+=jqlZ0U+b>Qf+<@9fAs7bnKDw5*$V104t>x!ZE9~Gvo?Gh zm;3ByvUE7xgWka0_xb&FvoK(zYOg_+)Wg2ffAyeCb)G+WuCN1FcJd5k_8R(XcEhqI z%}6pUEb9}!!70ZH&uEt{rWe@G=#VgBMbcaJpx_EQ!={mq0#0=AWFw3`X|4ONT|4Sz z3%sZkEgG9+t!8+u-*3f-fB9_RgIj&o4}l*_z!+qDl6!)RKV@u`-l9-@0F!_hHQZ+H0|&D8PR`>1MhhT*f{W; z0ym>yL%w)VLC^3r2Z8XTKI;=3=0xIJt$hYn5O z{qFY~7<&Kv-(NV&tV4_1!4pn%AOr3PF6`)zH)D~BHpV$7;SiyWn)WR^+p%A4y2|nN zt3i-3I^5W#@P!v%sFN>n`jL-(czVx!-W@w~UGRjq@cOVZ+g*g~bqD6Dme$>TK zy3^Td&Lv_cXbD8d<;oC<)LC_V0YgzFh^EnGiZDhaVL<8oT~r3+gnmkV=|Y*tEVp&V zok6J}VDt^f)klKDY=A!b9kU}wvocjy1{8v07%~_i~) zEjeOUm*>Yi+5sCx$$6Gq%BXI-;+^{?a>nc|*a6%6PR;??U}Cec3?8ZUHg&;Zo`sjL z#R_~HMbF=!tI$!WJ_AagWZX)rTAFcnmL`UR4R?(9{Dn((wgpr$cNsDDj8tTOOFI$f z4Aw1C*!t6>!p>g|s^SRdz4kAC@UXrIE#HS@?o+O#ugkioMnHoxMW`??(TroBMDhtW zc=z3rBxVHk<7U^B1m|(Q>^weZV8JlTG=?8sN;?B}YgQ__j6Z#$u!bP>>k!zBWfaR2u!C|HOzKv19oJm$DgMuK)+Q$( zu@ZjsKhHK*&U=C3aJutWU-6kQd2Lo|BM1;YXWV`xu+6$Mq6t|J=a#L~^zODE&I5zr zdA*Eod_bvyDH>I;XZ53fNqvJRmxXq8R~qHnZURKeqAiBDwa@4aZ&1DzN!DAMv34<%8Ec4}GmiG~qR9Nk802QapMCaSfyai(I9v13hPfJ7?Var#UjUJ9Pr4L6nBvPjtS{Xu8`He?Fk5bonvk&E|;Q4MY z@50Bu{BCE|%YhX~82-pMJI<2@Tw#~&6hw9U}_do?g67v?1y_#Z8Ry|yh~ z>e8gp&!)&Ka{I=$=#J1OL#9FLj0=w}t1J~nhzv;`zSDa()^gP-&v>;Dhc>ia9j8cL z#)96oiO=agZC0lQrf6IMQ-Df9t@?rSo#!fh3Z;>?CP>PmM+fwr;5wcg0h+P7o&J`u za?OTm?XGb0M+Oy9-JMG-Qz4U3xA(vxdD1x^c++-!($|$45$UL*YoEf@#I6-5RL2#5RZ>g33 zn9&mq23Kv#%sG4ZOnDdF9e<@QK|t*tJ$khLYQQRX3LP}|XOIOVfD)Pw4(WT&kC`d< zjQVTq6rT4>mtZD{Ws^94B9~ObMH1dntDrQ^a$Mu z*P+3_o4e#kBuaSz4vfQZF1YD)sZ+iB06%DQ9Pxwk8!Ee@Ef9qS{%6rSFkAC!{wY7{#pkAA3lAO2ssQ#2MOPj+-7(wi%(^mX% zO?SSd2YT!5*>f4EY{|eY?*@2py@${7$e}}rYaf5)qaTW+|Gvr*JlUfV12Fs`sQbxJ zeCi!%`|V|RwvQb-(sdHIVptGLj4H&{H3^6z3TY7G;%UeBo&Bs67ld;rDMrl32qJhX zaLN+`D(!TJ@2+!&N3;=vVivzwfZntdy00WRSAR*rP!8@j{#gQK-Q%BMlc!F@rPt zFrMGQRq7K-VAoCtmKmSU5K&U8TU)aL8w?XcVC*sU2_i-bN4q-%ry>Rpvlc!%EC&v~ z5eH;sFHiz=+xi7YX2G}>S1zTUMV%Q%lg{H!$7*D7Rx8Yd1F-DuTgJ{n z-MV#Cac5j)t%zRC$&SmK7`vl7o~jO4gja(h=>t5;b`b4%ojr4*FcKwQ$VM%FGEUGh z82DWYB-rGE%KnZCuG6l$tsS4)y%^JO&83wS=DjUXR>J*%t`79l(5(67Wzs9cY9IX+t zUa@pV_~`m{@!aL^FwM~xg*RUOCVkwR--~ft$Rw~q2jqmK?(E|K(#x;LQI1g)>w`kq zf3sSaOg!<#<56r6P3O*^4P9Iby^b^P(OB22r)>r@#f7g0e#npQJGRv^ynX9>o@D?J zgUq{}Dh3iIOvZs7=iO2ZX~=#Lkiv^G@Iw2RfuI+3Lli#{?4-B+C14mcK$_I;DATE#<_GWV+0MxFwFm3cb?iFXLfP?o}$7m#H)eAS^NGH|ly*Xxbz?Y$X zBV#2E9Bsv6q61xI;M}gZYCs3J_<*CZc7p)5-Q3q!2MmEWEgn=I}RphHmKY&UU6A{h6JAFG;^f1Ms^kG)>rn2U~(6x^M5^ z@)dZJE#&H*jG58K7__8n%o2i#GXx8mr?|P=``pv!y9i@wvA3kRtTlrWz2p8v5 zpVg(F;yvSrcYiMluaJ@c1~2ed2bc)h3PQpgW0_tfH`K);wL3DnH7J^Y#z;OJ8`XtpKyNnu2*`HfP&7*bM?KbYPHdM72xsh@*(+O^al<*o_@rIoh?E zqN~s$T+r|I?5gygoxrXli>;N`#(@I|+8=lXII;%4ct)T!-R@Wgvd9{6(hs~SSW+7% z_!5LMHZasLpWukrISJ_8eSdc>Xg@eLv+Z{@OGcoh298tAcydssn>+tmCd$?Dqz&#A zeF10fYODBM_?-Erc1LM|!^MFarwpjqj38Qh{`nWC{reAvN7fhLcmTh5U!Bw~n4?}7 zT)K?USd2+~rPYPsv~9c!95;X*zE(f{pn1H=&MyB)&eI+0A~U30*M?XaCz(?oO*`7H zW1hdseeIz)v}4UN8<`W_BQ!(T-IpRT#pnS+?8Q|XyBX5xh17#b?!Re$H~uh*HDtLq z1mm@^x=mB}7=~vV@G#IQg9IVZ1AdkAT#7-w9lbMHI=ioSG`*)XC}d z+>3woJi6`eHt$v_ zrF{91zFz%1Zw|9~vFD{c#i^CrBYL08jfS!4Z*ZV&jGqEv6zDK#p8zB1D3>b3z`@^s zJ9GL(;iM2S?!gt|4#xzK*%IlpQcAXN9qZ3K{?sRm$tm@DKQwgy?D^^B2@&mUg`aUU z{x~exFWDd}Jwc2y%*~ftxs)X6^9D@#7~74~7nS zrn~J!ogwh*Mchr(MZ0IF_^!YrSQo4d2D3=G_J^}EUY`ra120`;6?hpR-t#Rz~{8TsMGG;JQhtx6(oDtj2h@u#@J1a-2qJkM{n^VWgTA8*4P$)lqN#U{mpY^XqbY4ryqp8i znCY^%jnYH6|L}kMm&E~j1Yf>ecc)Ewf=7Hr!Hz5kGMS;rfEYnM&Jnp|?Wg`$Ud7oG z^x&YQXO7ZmfAfol6J>7=EIx*lD(GBw;?j5h#5k29yi!c1VC*1*QmVIxqKHjN`~ zla~QV9OPgt2p4R^J@CgdsWFv1($3wtfh8V9CymIbRGu&VE+c^Ry*}~+{#LD#iWny{ z-|@FXzwFwzy|WD&ZfTaW;dyXU58QqCYljNI8P^vx&KhM40a~!MR6uZN-|k(hZ$tj3 zLx%GOwspb+Uz@U#Yx+ztsKeOtx!}iFzVeOouQX~7FQa)jvhk$=l~1%|_I=(wN2Y>0 z1jjf<_*sCVvMKe;B68p6LuP0lCH3jw`f}yxEWgyDZgh;-;6gk2*|?3NvN@l1OweY~ zCP-#|GCr0@O*b@)DC1op{(fZN!_zPR=YOlSjPyX)bB7kBoTDEnS)lV#&q#B0+|+yC z^PcI0A9#P?=O{kBZ|}4vGR!W%aAbDeI0d`V`kVoB=H$8R4deFDm=rvv7*l`Cg}3}Y z-}fv-SOy5A8$XhtyLRvH4EwV183%C{y&FUR=%G{LwR@%O?qHqoObBgqNFQ8=U<||MA}my`aOJwPFL6% zpn7)+5(E#%NtdIEIRIGrWsL5l6UBXHe%9o~;nxp0=s*wr!Y}-neYQN1dN)PZn7lxz zcm&#J+_+}Ft<3ky0rzJp6y!q zE9+CA_O+ocbb-xBr{=(X&HtTr8c8=f|=ib!khm#2RhCk2=QK=C@xlIGf#y7 z*|mY$eU9U~$fHZ0omKCD{}29$_S1Mc;q*!Sw15Y&@*LRu?gCfNybM8sl?M^>GAP&v zn>KCEyX52)UK#rU&>wWli_ae{4%rF#5MRyk_6a9oq7AqQXMOWI_s2VMi1zf!eeb?~ z)*5{OlVA8-{au-9MBD1cGxWE<`K&{p0>;{+@BK#KakzcAsoa4B2kUUF-?QX8zW#6i z{{K{2t$lT&&&rkb)upepPrmxqueLsC+Y8QVThV9lx&nYPCX*2PClK>sVM5SGjKB0t ze}CE?+YOu!9z0kFo{gnGHl4n~7dzluZ093!v|oJj#p!rtpuT+MBOjQ4N072n!ygmIL12nw@TE5lUM)|4vb5CNl<(b&xsBDlFcj46HMaOlv%Ji%QDyt%+o*ctn*Ky#i__WGl0fyXY;};{V}Ueae&Kk zs-uunA7gh-;Kqp*?W4i?@_z{Z()Koc>`@xFpcc2wUgN zAa`V(*+9Q@yf&HvNs+n0@Yhf8jai=11_hcvU5T+`lces#oH4F{Xx+4O?NE|v1H93( zJ~xf7Fa-y~j6paAiDDLMZeQfk8n!JlFr>V8Epq71CLt6b+|BgB37r+Uv5)BFz&HHV z_0Q*gESUm##$hRcor$*<#Fn;l(**(ujW>vNc(f(x5Sb9C8m;8l77n%k zIW0g2fKLttr~Lf6i)sH{6!E3Li_S&W8GKtdZ=E)*T|cci3m4;VY&ge>f~zar%<4ZaWPcz$?6rUx9}HSv7UA~z3_?u@l<&pEu-Ijm)`iuzCArX!Op5?1Dv0H z?C7x`1<4^qLrP~|Lqle61aaw;VK6fo#~u`DvN9;|F*@<hp!98l4jD8I zFwbj4o8+Rtl<&YPe>1|&-gDf1qII9vXZA>)$RbV|L!Los-vlsrzq6Vt98|#$JfLs- zVfTBotK&lmxw-@(@1k2yoHS^(tu$>hzgv4P1$)REj@t;dxfF)z3(vnWU5p+uV|6X` zaib3RSpu~6p&N7}xcBhGk4%p~`bg`eyYL31b6=e9J<(T=TzVy=c(n~K-M`D=UXwg!S2HVn4x(0le5j3ashjWPz z)TxhP4p!@XB%U3a@yeKmgD|0&Qqp{dB*jBg65& zHmyxtd-v>_EM34SZ+4RQIM`@b-P-myyO8}b<3e9w3h#1G1?cn* zEM{LvKkc0&s7Z#h7iZc4KUqkgopJ9S{^{DcJx{;5PLjR|Qip1Ym;z$Yl0F2cZya@o6YcLf-Of-%N{B`^>hr+{GNWHV55E6jbP z<3Q{f53>y79RjHT@~IGJ40;NjgYZNM(HeIG!fcJP+Bm5LOyS=l&N?v*3?Xet=fSaK z${4iI`2|;uB(;{3MC{OdxV`KC%w)#oJ2+#Cm8+!ij3CISjT-{r z*(eB1GY01>+WFUJL?5(bjwVs^Amc|zRzZ_P>g}a zxfsTHV)^os{Ty{+Fx~dqr=_}_=8agMB;sT3% zfsIm!C~(9d(lZ6FMo?#QcNylaBakyvu@*D>7?NwIkNwC8D+|Fzh6iduYaC6X7I2}U z*W=gl3O;rTP%z-}aOpblJrqS(gD2k^UjjfVRt?%uuC{R%9XuosE+ zTk=CYo@2z}DYK$xNa29omOaG)#6x%-eD&EFH*Fty6PV%%c(?VDyP;RQs#!F~82ktj zn_;q4V8cUOBD=;0K6Iu4z-(Z{k$?8#fJ6GvI$Y_Eg4J{ZS!t|bj269zk1Y%69tbPr zc*Wqs=kTvSd`foGfeb`T4X(#4#=5>bC4^D$Ipc*~xb_=)f}j1SXp`82Bf5{i zCXe6^qSgd10;bm4%Caz{I%iNA$J0+e-i#3T2M2+kZ^~-g6^OTPwz4;LWfly)1z=>) z!4Y|a_vs*YwlDdICa*@$p)>Y?&4#w`+E$%i=z1`v1|s_e|K$6O2Rt>WFq0AfK79Ca z<(4HW903D~Kw*5Egz?>X6UU(&=uX1|_z`jPM*SVi9EN_WERBVc8`yMhP7I|E0!TH>)(QkYzNtbVDabv-2X10_oi=s>)UDXQu?&B`W1cqozp?auxr(8{OWXh z#@{YD)fdHgzoUPBLto(Wk&nJVV;S}`d&Vc-TDUfKd!!5FRhePhoB5l4WgLpJvJ3E@ z-#kaR?B27pXDy$KetFNcPxLpqrrR69486)C=-xQtR~y=OQYiN0yw3xgs4W`&(!a(+ zo}4>-F1r65CM(Vbuch?w*txT9!?6O#_(i?LX&(IUzOkS)Ha0nlm(iYn6>k}rF`6jC z7up^$8n}h0r=EGV{kd)G7Q$N0!5GMW4~R&DW9=#C%# z*oR6#aAuzuebpA5n|^)mwb$w#gY%=0KGwGCN2I7{wr>;xf$~i71XtQOZo1m_vp@S& zwL#P=vj|SS1Ag6DIQrJII>&px`r510v13OIn`hqjbo%)tvGMk#J!6ZmjQuzwWaw)w zUl7U%wHab=Zo4 z5vl2nYJl$(hG#;smelURops1N^YiLt4El80fzmq+Z*_3EDQ)kG(qN#x*mU%+@g@Mf z;Sxh|U8A{}s!SB-BS6fEP^xBVL}1p0&}||?_+l8u&e%mP`h@r}4FiJkx0Z>sRKq*P z*cEVLvJR(id7W+90X1Q3Y!7G8(`7zND)$-Ym~J*wFwC;$HbIHu4L(uOooNfubr>S2I`4}x#!@}Kb$S}RsK=-;LjjMbI-E$|FZ>%;{AcjKts zyeZ{$X?IhG0|q0(!KsnX?gGc5ux>Ub)4~7NaUO~RB^u69ly<_22!=auk;z*zo=a!x zufPYv+C%fxj(&gv=LFuAIg+h?@V0gq&h*JT%-M)UmsiePKPun=Kb%;@E7Vm13=6Q! z_rQG7BD?52UP`KT1XfNY7#3&jls zkF$Z6+JRid=p&j017gUwQ=`nZKhsGAOZhbJbT7)=jsA#Qw2QZWc zlhQ6&62uHav}wZ=eP9$3#;LiA1Z?4^jw`xZP)2B%k^>vF<0np@ZU6#&H*eY8zEZe; zSICSlTeenKXbTP5{nAV@St6t3M);!2?UrCc9FD+E6j=(ndKjz<*tk5?nQUZ{@5W)n zrI8sh(gfe^x$S{Hl!7n_d^0h&IQM< zSw(>*oC9L2$M&T!1r2c~%)m7mgl;n?$9ZwI*93nVY@YeP*)(4 zP&*t}FaV0qjHXgEtoFX>DHM6eOm1ax9N`Ae@|(UlBPBd`_jdR`f73&7jz;}X{(vFa zF<|f^Ss`89-|!^B%NW?Pb9+kgFRf3mExFG33C=RASr> zejm=mjAOrpxjF{?*#q|MxYs~{=g>4bkVC6uKS=XL&+3O$_#v}7OLqT0aBzQ&$73Dq zqmMk&cG2meQD@+8m@e3)^V&$=6!e>Cx6J-%Nd|&onrBX&JelX6Zeh*gNC_Ti(ynQs z%PhVzmzL6Zv}Q~)n;6|@@z7W^gE9`hg)YbuvsF(%{zS)2MtNQUwd;q&ql{<)6?P3C z?Q%Cx6F$vvSE3&n%nWi_5Ohap5L4#8Svb}lQM`|z1lrJh*Zv1?WQz1%GoikFM}6>L zqntgEci_lt!u=88^wA_W!Zb^^;3K+3%%qnxhI6#>X#dY`+3TN{Rh%c`kv>= z0Lvjln3aKGwAG%%Wfxz*?BQOmf{q9rZ@cUMDuH1(LlMtN(?>H3`Kw+1AeZS0^)&k? zI$IXr%!BIk+uV-&>>LlLU;>^pgHqFU;nLOV_^H#~o&V&ilfluwrkMZm4}YZV^>5si zjc|3?9Fe2f=Rp7%4)GE8b!>tp#7cP( zAbvwolmn)&V;I3bW&uNJQ8XB!2nezmrG7^gos~#UDf>ID%&-YtoW+wv33`1nGK61#@^kBY> z%Xks8u@QozQJihUfdSWN^FRM6ISS2Mc9BEvIuZ)uQN#oq;lcUUhXIGd@WW9Nl#pV^ zIU+3Xv>zCn6Up)O9-N4@4w;bgrl0Ox6G(wni3DzC{xCJT`&(OtSzgNb7?*Ka9X$lD z+Eny^@!}Xmm#$1FPoC*at#&cZ%-ozhhN^L+5ymMag%QhPrZf&5IFxzgY8LiJK$DBU8iRL=|Aun?BHPfYy4e@GFRVoyFbN2PQT2^ z%G@xn;&>4!Gj)W{9t1AV8n4lgXF?Am=`K}LA_TQD;9GcMEE}sCd-RO%M~1-2NH}>S zj&>AbKs9(ZvV!t4hV^j-5mRTq(pU6Xx(Q9oh_RbBL)p=26m9E93xO5G)SBx?>C8S<_4VQfYlqLKo;)0f+iaLD95{m;GhFzPfk4sC>%#Sg zqi>e<{P|0H?p_R*Jux62Zgg4Dmb1Na14oyVk_H}QB1TGaEqD}T#F7~SI}RgRsjqN{ zwa6kk)0ZA&69xQnLS{TKZT0%%JrA49$~+_~SKtwSqK zpCgy^9o?0;86^3~?RL)$Z3CD2UgIre;3P=%Zfbh!gHP{Kz&8Ba09JlWKgTm;Mz}L| z@g5m*@Siu+HvyGl0MiSd0ZW}qxW4t0OK>sMJ(*}`WcAvGopPd}S=&sr*dw9(t(pn|t7*fW3OnFbbZP9)br;z1+9Hnyef%MB|D5_m6c9^pb*JMir z4(N!k4{u4aHW8ptU}Uy_Qyd#JbJ_zMaPbVA0i~ev2DkG((iwKxgOQC8`Ac@fQ5~qr z7TGc6WO*+}yFMECaJ=7)<8ytonPo`0{Bh{;>kSeZx1||u2o8z^2^>i@&8Q z0vl)m?($zRj+;QEdM?EI>jY5xAxlO(?vur6#<c7&;;05DTF}cJkk|Kw@y_Tc9}nyC!U`##BNa$Dw!K2Q8Vx z-3TEv)FG51hIlX=2h1!9MXFEUvxX3{5>`X$NfDc8(!+cjSSXloUeDuq&m&Sq-BeZt zoPXBAaiEM(AI#KAd%k(&b_Fj-=vs_@L|4X3-QdBA!@S;8%!be3jd^q>!e{AF3|?e> zF-RGfU}kM0IE^*qalBGzH$_{ReNzxV_=VjAi?M!1n&vR57DXrx#c2$kC8X8!wA7JP zr_RPPx|;8V`&eVt_ZA$xv5V{2jLv;gEy7U^l!nL{VeEWLvlxUTs1Y*Y=LjE>Vu&=m z#Aqa7M9v9c838tro1JYiKvNv18kg~a7?a*(w1cVp4D-d2v7LFoZT5YP$^SX*`q94V z{Gu_24eM<@u|AI0#a;|(*#?|b&bC=<8_SuY8#9+N_9L(@4M4m4h3+UhK?g!Ojle*o z{1j-9Sp&$0_JO*6$vwh94febG;LUes@L66%Ke-nl(jOU@OavFY3{3Ogm>0#_wzhgv z>X`BsOi^BE($Q$}Xv}cUK|$MBqLA<0m9{mUR&@?X!fdb2c*feYi*XR)L?BKU1LF=~ zY>WaR{LQu#-kwGCqT2erY{@u6=yv$x%;|IGk*>wgKYeBaS_{otae{$5!5w|;2jrPK zv$o&SKX^(X@r*hMdE+{N?m{=+18TvXp79*qaRvnJ?ACABeumFl*$L?rXH%P;TIq{# z96g@8q#SRXwr<;AxZS%OM|yFLCKB zJ42d!;DEgI(9-3BR2~Q@J8n*=8EZz54OF^WQrc3VJ}|z?YtEy9@X^!L?~w&wUL~Gd?->WO1O9YZzJU z)^120;ggJCpV7CC@HjmJVCu4#kQ{mRu}8|YrL*9LY`j_hBXAUX78XGp#$x6ZJzY(| z;fVajC*-4boE&ZeqhZ(x0u5)Qd=h%$)RUp)y4{}j9X$&)pmF%B?h7nDd-(X7>LrGv zS?21tj9VZ=#t>N#pJpA?On7QIvu2pcBlz@=aS1%4YuF__?%a!BO z#`uzcvrD~a;JUI6Pvtpv({<=UyDsbW0+!5?rS>%_hgW|#y3@swFN&fUwezBU~^ zaInAYKV87tRkY1$H9kw3@GBZ(xPpI628y;b+R~Zvc9}|^lcq|xu#cp{8;9}x?e#;i z2RD(Ok-zi+qn1qRYb>2qa%o}b58en=^-(>B^b zcjPNU;=B9!xEV&JweLG&#_B%Yjk+uwx>@;T(g}_|s~(@mfS1Xb!CPbR2Jo{pxLMz3 zVCES#v3Kvj&RCM`U^m0T@m-HU@pz9>l@d<&>YHp6v)*t9U-bJJn@rEK$IDAEy^`Or z2XdyeN=~F_bf{l z{Q(>JAu|;18^1c{;(7Lv`Wtvi-}FyE=udp-yJZ-HdgK?`CV=6R;j6yKAAh{F+F+_* z+K11|tKxP{DCvVBM>D(bj!pW=az{+P2pAoot0&NGJZ#|Xc1 zZ2@^h&?7KH5V1((xfP*dYxn#2quAqkQBn*83S#xDwPi+vo&hqPXT}>NBK4rj)cb|s z{d%1cLct~`d3wxphcFNaMsYLfrjZAdm@4Q%YnJMpr|=wm~S{Ij9Lct zjSA=IzxKW9dK9d492du-TOP;uL7dT^0h%sI!|7sv9UHPeQT zj?9YksesUOt_R?=s7{KD69`5G3CHr>ne*)n0WO^jO)#`X&W{{9(aZV7Cr_QOLJ|zI zQzgM-9N^Y8(%@X0GXp#*4ZS@mZ8#2SQQBM|VSe@Uwb0kiz}q@2ZJD_vBpKj~LnAR9 z0xK!-f;|j6w94UeTu(+)g>Mt24V;fW6LC->?JDi$BD9`=;c%TwGujQrq<;uQh5~`c z2(gBJ#j=%6%UPQ5X1k4tuv)S_3MKGgv~j30L2k z0Uyr0->j*(@eU(Kx-%p0m56`SD8`(l*Ffg?K7

    u9$3V%j+uqx$fnH>MNEPflk}osD2W zGo4C*PM4C4 zRk$+{z#g0_6|(~5+wXnyx6;SRm!_Y_F$)i0>5&}_EwePv=!~%&96J$U-tC`)GA;@h z49E%X>8H~ioIF5gT)lFAWD5k&pZeUF(-#K%-KOM$C0f)5+RjfXWpY;cb~~a+SvIQN zeh2dzM`soz2Pspt)pdTt6J$9fhJkEW{@4EL@7IMj13S-FiR5EQflU0wphS&5$}s&I zLCO(a>_#j3l^o+x-Zj&fduFHi?OWI(Iz}Ibel~KE@?~7O1pLfQpcAxXLpOm8X{!vW znU2WaIslOmjPC0jbX24k*&LS zZf_7G!>@CgGAU^HY%>`(PVzgw#n8rQXo-Bak& zIkKa5>MLE*z)apFi#UzWbA9F2{nJY^{$6?Iwdu9}2d7tF+dqBhyWg9>_1w3o=f3m3 z{&wNQ<=~1VD)2WP6#S=;X!(V2y%6|5sLXaBo<>H20MF2`@Q1$rO@E+!GoN-q2LtJ$ z)|A5wdBe^TxWhXFdY1(x^V|2n{c_<`IQo}&jj4g*jFFAQ(U#?acR3-R84mh@X=Qr; zh9{fT!9$O>E4*bb(0$9Nzy3@Aug+r`NMW-iHTI)Y{+ zd@#cm{mgI`jF%2??0zRxW(NY_|MkE5Uss+9Ua;-F3r6Y{d^EEyKr^>7JEU}aZK3=P zj{eq0OoO@A=Um3^S??(N)V&wd$HFl0fC&fPjJBZMfB9ej za`f4{+IoUhc#G||bJxypZe_A$-G=oI0@3r=uic!^#?Et&GH2T?D_$v2rG7} z!4DjN=M#U>zrkO~F!2ErE^wBfw0*=eAAC(0_mHZ~nJ$$=f5xj!uVO zADfoxFSr?(zrBkQed@1z{Kn3By9^`Oed-$?ue=V-@&CX2ul--T48t<2ZL#MbfAY!b zjknT+7NpSD9NOLK*?rdts>QbVuApsG_I zVb~vIo=BRZ9c27~(P7ZUy$^;Cg;v6xFSJ5whnxE6-ThGmJzyDvUwKgE0gQ zF_7ZOoVyg<--?jDG95mAd^&#II-ra*Z!^?qp~hIni13EvM5)0t9T%#Jl87;y_io-A z!4=O9p`G?7aETF}F|Jw_qv7WD8rO`R&bH}KlnFR%NYZr*HX zVLRv!fl5&dhDg`#Mk#3z|1eHPLG{W^3`JlJ96WvJl5jN45E|dj7<`s}9DT!4QfGpj z$euXiw?b=D(G`ZRBdbmxkHMB_ZB92fQGy=uX@87% zvq~E_Y|L1;)M&ATv<=bj-n$(G)><~aZ66AbuNf_wG17`hq<3`;0cV<0gmotK+`O*N zz6unvBaavij8*i-nbQ}$@iT_I_6tB##@+&pr|VJl)>D$bX6Wh=r3lOkC~e-jsSeD# z(7&iZBVGC~hnKUD7ChTodiGsUcLOYiyqix)uyjYjz)~Kt>-qI@ z67ej9NS)}Bj6s7U{6~)*pI(0XwVv_$avZCpG49TuztCAtyT>z(E?m6Ow$P`&EAGZX zbJ@$nuH|F}gLHKqWB~}XksR-J>5myYIMsLU4~KD8`G6coH)xC#gN`{R%ACFquVfY4 z)^|>o?=JiZKW0|JN0yaw(yd_XJW()nt|v$eo*LHedGwLhq3O{ zJ$>}P@95I^w;R#q@vJYv8Qst6uIL7B<4vj53i{?CH1G>pDU4ElW5196ap25qJ03{J z(}@$OyDRR=Q)j00ac%`_1%Fp%Y^!srTLD9}*V=_c#m>nb{lb@i)c4NTnq?lFXBihK zZXT;ynfJc;J>^Bm-^`~v825YM_ui&)n*}#JMvlp@QnZ1FeVRdjGkCfYCql}*ew>Xn zqd0AVQ=u(w4p|Z#DD?>p>O1;&EGV1fPB)qyx@tjeq(p{>p2!jbNbmXk-lT z;L*VU&GhL(`p)s@fUy^BSUT#w*9;MDs$a(7{X4-~WES30F2$+G1%g#ebKxDj_o}t@ z=`&oTF?|N3nN~_0d6t7{7SzT}E{+a2A4C< zc~(2~cW~vPxO}(7h3?QN_0R7ae|7tU(sf^7+$V?72i)inndoX!csi^IHBNc%sW(@C63=Lw^OhO}J=Zfg9JHF`l?^7``qj(qWJOc+{GLIEZX57F5I2pf7|83C9>6Sh4@FQaf zanGPKa#c}J@t4ApmF7>@SnA=~8HSGi5~R`}fnM*;bUly9^Gf^X-HgF`@@x#xXme%y zubjPbzI*%leS>V~+`k%o?d0iGu|IB2>*6mt`py0#>o%;5&3-q1x?G*1e*FMvHo(~2 z&piRH$njjW+uZIp;HZB`*tve6Wg>!$AI?`PisRFyAd+zSX3K{NccMQ}018IObtXPe*>6-H2u zR?N;3=9qI5&&1*OZi!eYQq1&y;Dhh!eX3maWnK$9HeO4;2$5pTzpnMjc+7^G0TcOI zv2wJ*Am9W^XGXXssHmQsakR~LguJJXn{7<6vgdq*)x-OCmuVfHMrc2=K&XFTS#8}620iVN|Wn@&C=iS09zY}Dz z!jSZL9c};Me__0{1FxV&j^^C+m8)Z9YQryiHn$2Nbf=GYthURsG=8+T;h}LBE}^dY z&T*FFDLsp0WPD4P>T~LhlD2y(SU&p9KGoNmkUq+QcAOic5WvBE96@QAj027hm{o=ol(*FkF@~=m8g#>l>W?qp}BBb1AJ(}`-;?fjxmRT zthVVH^iue%Gj=p3wY+!@Y^8m5_BQYaBcJbj_hY3w@`1B}Mx4PZu)!H8yYV@huspnd zD^8BJ=Gri$CYWL8ewzt$o=(P)qS*Dt_=YoOwtD@vXNS%5VpxWLDo@jwI#@SvH4CMw z%;C`*I=KV~YrrgB-X#NM(y?PF`^m5(d#yd>)SWtcqI82+Glc0~Pd+wXjxiwEBN)Qj zgo7o46`3mIV0JjoYN4Ao3(dn&GnTyw&onuCNdp9K#^s+1{??w00UuaA};d9%rhYEYL zLg2<&)Q`@<3@qpgX$k6)>PgRDiNUK+fRo{dgGYoWJ)1tR?0RUrSjGXlF$X8e5wk+g3`zgM7fu>P&G+l!4Kwv*wP21-tn3%i{c7_5 zFz&6PT|fP~Kl?M4m$MT{Zw}o&gfN#XMK2!vrU$CVj<6W&xhDj!rND_T`iA;vx3IvF`^l;oG-s^ z*|d3jXwCZ4EBJHd{`61%M8|GM&XNZ5-rq(BpWd_f8!ag_Jr5oklM*vsx;Hz*;7>j_ zNSr>gsebln|73$GFTVIn;V9MLOe9^!sqr3}L#FBSNpZ~@*En| zuFvG(7)Na4AHg^?O%8taAbtK$Jzd| zkA1X!3ZCGjZ$9;jTtff!9G(!IxpVv8^!)QL6sGTf_j@ag=W&8PKFF{#)?3pnFTc`u zckS9e_$!yS;R0M{#lb^c`b=)iVlW19@Eh9EUp5jshsL#4$1bvxUjX*tV431@X4iIn z+jnkic7r9O;9*=~O)hG$pb4%NeVE5AP@Sgw47ksq-sdNDQ_PHsY-MxM1t0s74|n`@ zh0}TPD|~xT@reeEi*A80JFyEusB3o2=Tn3{+lk58E?{LMqc%l;`_Ui!P~jwl22Y|P zx`^!72edcWM?Ptro;EgxJTMLgyyyT~0reLmZ!8z$N69Mqi9hk9Jz`Mc3s2FF{3kj{ z(3KO;#uX$taRBx^n zhcc+Mlz$9qPJ-D54mJW4S>>>EA_yL75QGBfhO>=H<`g3W2;(9g0)&F_Tn*Cnlk-QJ zH$^g+O|7J2b_O@kYLhZXIFz{KJZu!^yNyB^#*9VIJ|~pHZ0+%bT-UGNZ0a*+bqv$; z)WP8+Bp(l<5o~AAIR?r3uw$Jx!GK@QZu`4Na>tqx2+^nn6Rk!bdl8 z2`(^~O`+hY>yGn0!&djv4P%;s22VKfyl0F_=EE4LXmtd|gItvt=*BD&_kJ)d>uvQa zn`T*8y1cuwGmI#NR8=}<;GiAG{xJArfJR6V);8QApeR5QQ$m;!Vzk)xy0jX47?~3p z54h)Fo$6eKXg7fiPjrKn)a$pVwj%DbPdAWKYh~Y8btX7*W00;wNX}< zj!+T|RfgHE2G_>e0D;2jZteb3-+~hBu~-Com3*AoJK7#IP{ypkU7C<*jfo86yjeCO z5IA{md*9xB?|1LsZCGG;Q3)1VG9`tQq&w$MVQy)u>W7DUg)dK@b1|0w9P+5@i=#@7>+od++`3y?H*K=lcO+ zj{gJi`|fAIpYnd6^6KrJLrz%7$gsf|D`F^vgX)`>@CFCB!`H^78piI?0%4BH<5V;D z@sz(cBtuh+a$jjK<1nUygL!rA?chmfSjKWIhPWjUoMAkQ2JsDJ2S1}X%G|ijOMt*K z68#AR`Hp;~WbcKqZeNd~z95EB=0yf8QAVG#wDEq@uZ_B?JC%nUBWo_kiKo9W6J(K}jIqK?*X zq;Cd}EU;xOO3Qt36Dl}!oEzi8F0y1khox(g0}IE|aoiYp@Msela?{##fl__R?w>w+ zIu3W7fIFOMXA{R!3M|NdIz;d`=&MXMU;U#2^u}0w6gLr9X~Ohx^N|Zjxyr0 zh8hhII+lTNnQo~fGAJa`w!b z7@n6Kti2PSr2kdPsD2R8x977GILKBuaSfgy6CfzP@B;$l; zLSq>-+rWG{4R?cU^I*iHIl&!)4eN8!*!{==W!Y>PfmE;S!wmYA3iT#O*o{lTNb4_VON!ZSZKOKz|Q$XWVp7ML{70|yUImt-|V>y|N* ze+>GW%&%+>t;}{_ZZIkBu&)f*JpAsNySH!lTz!t}2cCv=9toL+dEP!4VBx~o)q%O+SUKIpfnVMr8hcMb1+Q@4W)A2~PJ+qM zG2xx`MLwY|ZMFZ<2%caYup6DaqH2arhFfd4!GnFviJ=qV$faF)(TDcnUH{cf!H@Um zZ5-z7ZyltxL8o!H-3LbQvsVoG;F}pg3Km*|1{Y*P)>(%fg@ASY%{A-jfdCtvaFy}J*(X8-x;pRe6ck9x*jjmw@eme8TKg9qL&thetN z&NdpA#l?3ru$)cLfQi2RK7s(_WC1)zpF0Y1WUg;DK&9-O)2>PnZk;RyRsxdjSb;HC z(3Wk^ejjDnBdBS8_>kd040E^wE93ARc(~Vlzrz)s)V2AM*)wMquE%z5 zZTn7prR7{;>pSz}pI9d0vvIkvG?K9oIW_ejzLEV9R1TgwbGpGga)!<)kNid7_;LnE z<89zH{h9}QVB?yfOMiYdXJZj)>86T-k$?*sGJ*z6rYn(m)@!S1@ZFj7XX|9Mk!G^W zzDUELP*K6LA99}_AhRV;^q=7s$1~b(LT&EzXMXd4zGnMQCy63rRt8Pd2rW;XN2IrDWgK8HGT;`4vq5lYgeyK7cLPJ z6i3?5{3@Ld7$9kHXu&<$;&kPg6 zhB9~t#Yk4>Oh8v~=GDky@Myi4647B~8vlSPgOM{?r#i}YeGCtPfn!llbO29-!G}`Q zJ|*czI4}|$^~yhOn_ma#fB6rk!KIhaU8azGD`+upzEl#6$q9M_k#JrZMQ_|-$MF%o z>BdCCSF;JhsrlJ-2|U0N+&K*b3f^0%FC#>er=to)0SSX*#Gx(UdCyrvZ%g8Y-OoMX zqECZvW(iLiFDK<*=sZpW!%c)%Mj}n5i$UAq)eeJ0I6^P_!6U=iFzY}JOnQyK_^9yn zTVXhia5U;FUUMrv@cOmQP?h!37oo|xH)qj%4mAe{eQ}zU6H)^1n?;Gunc#$Tco1cl z8JB$(#Bz_!s}e^+fUyzSdo{k`!cqgYbneXA$PZ_0avq1nY?iYt9AD$77r2CG$e5AE zMYqF2*B0g8Kw4-TKQO*I$HuKJl(7rm%EvimXxo}ZyX#Zd)~xP|l2giTJ)#Xr@G8U7 zyvd?<>sB`-MZt3v^uv)dXY!?)$Bapkj^XJ&qXjM)^9&C6DVwH5Z6;#3-L@kjnfdC^ zXM0wVJ>ZPylyj-r5!?eIbPNyR#`(N<@k-mmEBF$f*%XZtr<9%Cg`=Lj5X1ZNgE%5_ zkd)y+3Vk`kiXz8LGPAPR^Fuo}LbJ?9X8YRJ+tZp=Yl{PPE2AA^YcTds=q1Q%IXA=0 zau?C^`%%&yNW>{x4<>L1C*Y{+!RACNL^%Dvt8uKMKc*)!93 zzxPVl==b=V&_x3ffiW3j&MGs^VeG{JUU0(MxLZ2f8e@IarVW+(;Nb{D`^?bs?yK(4 z80boETnqo-j9n5`)F#;1-O+ahezG=Wr(=5GPUwOr>=FT&*I#?R6>WfKj4MLtUezE5-NQa1pU$7V)NHu5*Kk6Xcu$_v|BQ4?!|*~gd-+!x zl9t$1+G6*NYJstz#({%xmkuB2b?n%QG2YOZO(+Fr*hL+GKGPq9_GG4Y;1UKLZNVLK zj!b-F&z{l~Sl|`GKe`=mRIHgdeTkOHHga3gvsc`JE%B+6ztx43+Z_hZPTbnHN3pd%R6= z1%1J{J(;5aL&xNS3IKGAKEc5enWs*jo-SUv-1C?5IonHHGv^Th;zx5QlV(AnnX~Ou zo<255TM?h(PMtvT@%*mcySho2XUWFSC5Qv-d-rY+UAK5alP+WYk%gJ3-|1OS^bB8K zU<1d+L;jMT=xD%nRGD~>-&}YOoq%!v`vFefYd;}2fIiJ>Mg#8Ar_ajA{XWBs?~I8K zFb3`1zN12J9Hm7TqB~h(^UJQOYPEis_@{JFTmE;Hal!2xdy$1 z9a~w}ntz~ANj!GN>C>nCJ$WTC-6ces%gn|J=avp?+jefFLI9lbt|SiI66}0$&O^^w zZi@%Pk0Gkhf9`kQcea1{nmOB7Z(fQaKB7E?_E>W{HkTmi>!{UX5*cI+FRAky6D7!a zTxXQfBS;`z_SfHAA+8GEP%)%bXyiAHUnU8GK%STT31b8=au3n^RmOKU0#SAi!6JmQ z%QoX_IETaG91$gkG9n_#7#WNnN=UStp<=xyrNhBA7te97In5=wC|Q4Hb7Zq^Xhac- z;wyE2c%M@hMbDUx0j7kSQCK0BvDC>*A4+RQx^BlH(WdzgBUy$rkjwv+;2>BA5#`Jn zprkllgxt)T0y~Zo1vC>56sC4v;D*=<0*pR(PajTK%f|AZXqVqdrX)fsf?Wx|-KJ#+ z87K`L%n7M6PGcP9>0quzm>`<{4qFr~7{Z0`$KRoZNK5w*C!8=F&VHle`BnQ~;NtQ; zCyO#?xVuMHfHiw)l2JiXU5r7eZ3>t|Kr0jp7|%1`^zQ|3*7UaBz>cv4zC*|^jDd5% z&Lcw(&gTYIWk+bqP&9LB?fdGLHHbu=O{#5zC8wa1L=WMU`~@?|G&TE}&m&_!i|!AY z6ju31*|h(R)%T-(9HjEWe|f}(j?qlN3vL@p%=h^iT%^5xHs<+@iWLpjaif?iKx=RG zrCe3U3D2B8e||VCp$p}|ggPFj{8R=QlW{X-Y+h1>2JG^R7U{SbE@0Tti_*W8c@JmA zQEUtHJ^mXsGfG}7JIp(C(QX}*%#|?=MjR~kU{dDBkT1;gMd>$i9geyAjkQ%G-xSxN zJL^+NHVkdcW{K>gY5gg=!>4H926`NcopHWZGEhVU65ykX0j>pB8f1$MMDL?oVBvH( zh6y8M1fzztU7iiC3Mx{j_|%v

    RXF8w0$yf+$9#`7>0FnH)1m_$<6KW__8XKF*yv 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

    YU# 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⁣jv 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