From 73f56f16a45e6ff77363956cb6c1130cbf4025c3 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 9 Apr 2019 06:47:51 -0500 Subject: [PATCH] vfirewall usecase for arm64 vfirewall support for running on arm64 openstack deployment. Due to lack of support for arm64 un current vfirewall usecase deps we had to update some components version like the ubuntu (16.04) vpp, dpdk, and honeycomb Change-Id: I3a434df1493fab9bdb43cb0ec1313b1a626b33c9 Issue-ID: INT-884 Signed-off-by: Paul Vaduva --- heat/vFWCL_arm64/vFWSNK/MANIFEST.json | 17 + heat/vFWCL_arm64/vFWSNK/base_vfw.env | 53 +++ heat/vFWCL_arm64/vFWSNK/base_vfw.yaml | 395 +++++++++++++++++++++ heat/vFWCL_arm64/vPKG/MANIFEST.json | 17 + heat/vFWCL_arm64/vPKG/base_vpkg.env | 40 +++ heat/vFWCL_arm64/vPKG/base_vpkg.yaml | 233 ++++++++++++ vnfs/VES/bldjobs/Makefile | 22 +- vnfs/VES5.0/evel/evel-library/bldjobs/Makefile | 22 +- .../evel-library/code/VESreporting_HB/Makefile | 3 +- .../evel-library/code/VESreporting_fault/Makefile | 3 +- .../evel-library/code/VESreporting_syslog/Makefile | 3 +- .../evel-library/code/VESreporting_vFW/Makefile | 3 +- .../evel/evel-library/libs/aarch64/libevel.a | Bin 0 -> 585853 bytes vnfs/VESreporting_vFW/Makefile | 3 +- vnfs/VESreporting_vFW5.0/Makefile | 3 +- vnfs/VESreporting_vLB/Makefile | 3 +- vnfs/VESreporting_vLB5.0/Makefile | 3 +- vnfs/vFW/scripts/v_firewall_init_arm64.sh | 82 +++++ vnfs/vFW/scripts/v_firewall_install_arm64.sh | 110 ++++++ vnfs/vFW/scripts/v_packetgen_init_arm64.sh | 94 +++++ vnfs/vFW/scripts/v_packetgen_install_arm64.sh | 89 +++++ vnfs/vFW/scripts/v_sink_install_arm64.sh | 68 ++++ 22 files changed, 1242 insertions(+), 24 deletions(-) create mode 100644 heat/vFWCL_arm64/vFWSNK/MANIFEST.json create mode 100644 heat/vFWCL_arm64/vFWSNK/base_vfw.env create mode 100644 heat/vFWCL_arm64/vFWSNK/base_vfw.yaml create mode 100644 heat/vFWCL_arm64/vPKG/MANIFEST.json create mode 100644 heat/vFWCL_arm64/vPKG/base_vpkg.env create mode 100644 heat/vFWCL_arm64/vPKG/base_vpkg.yaml create mode 100755 vnfs/VES5.0/evel/evel-library/libs/aarch64/libevel.a create mode 100755 vnfs/vFW/scripts/v_firewall_init_arm64.sh create mode 100755 vnfs/vFW/scripts/v_firewall_install_arm64.sh create mode 100755 vnfs/vFW/scripts/v_packetgen_init_arm64.sh create mode 100755 vnfs/vFW/scripts/v_packetgen_install_arm64.sh create mode 100755 vnfs/vFW/scripts/v_sink_install_arm64.sh diff --git a/heat/vFWCL_arm64/vFWSNK/MANIFEST.json b/heat/vFWCL_arm64/vFWSNK/MANIFEST.json new file mode 100644 index 00000000..49383787 --- /dev/null +++ b/heat/vFWCL_arm64/vFWSNK/MANIFEST.json @@ -0,0 +1,17 @@ +{ + "name": "", + "description": "", + "data": [ + { + "file": "base_vfw.yaml", + "type": "HEAT", + "isBase": "true", + "data": [ + { + "file": "base_vfw.env", + "type": "HEAT_ENV" + } + ] + } + ] +} diff --git a/heat/vFWCL_arm64/vFWSNK/base_vfw.env b/heat/vFWCL_arm64/vFWSNK/base_vfw.env new file mode 100644 index 00000000..6b7e334c --- /dev/null +++ b/heat/vFWCL_arm64/vFWSNK/base_vfw.env @@ -0,0 +1,53 @@ +parameters: + + # VM_TYPE: vfw + vfw_image_name: PUT THE VM IMAGE NAME HERE (UBUNTU 1404) + vfw_flavor_name: PUT THE VM FLAVOR NAME HERE (m1.medium suggested) + vfw_int_unprotected_private_ip_0: 192.168.10.100 + vfw_int_protected_private_ip_0: 192.168.20.100 + vfw_onap_private_ip_0: 10.0.100.1 + # vpg_private_ip_0: 192.168.10.200 + # this is the private ip 0 for vpg + vfw_int_protected_private_floating_ip: 192.168.10.200 + vfw_name_0: zdfw1fwl01fwl01 + + # VM_TYPE: vsn + vsn_image_name: PUT THE VM IMAGE NAME HERE (UBUNTU 1404) + vsn_flavor_name: PUT THE VM FLAVOR NAME HERE (m1.medium suggested) + vsn_int_protected_private_ip_0: 192.168.20.250 + vsn_onap_private_ip_0: 10.0.100.3 + vsn_name_0: zdfw1fwl01snk01 + + # NETWORK_ROLE: public + public_net_id: PUT THE PUBLIC NETWORK ID HERE + + # NETWORK_ROLE: unprotected_private + int_unprotected_private_net_id: zdfw1fwl01_unprotected + int_unprotected_private_subnet_id: zdfw1fwl01_unprotected_sub + unprotected_private_net_cidr: 192.168.10.0/24 + + # NETWORK_ROLE: protected_private + int_protected_private_net_id: zdfw1fwl01_protected + int_protected_private_subnet_id: zdfw1fwl01_protected_sub + protected_private_net_cidr: 192.168.20.0/24 + + # NETWORK_ROLE: onap_private + onap_private_net_id: PUT THE ONAP PRIVATE NETWORK NAME HERE + onap_private_subnet_id: PUT THE ONAP PRIVATE NETWORK NAME HERE + onap_private_net_cidr: 10.0.0.0/16 + + # METADATA + vnf_name: vFWSNK + vnf_id: vFirewall_demo_app + vf_module_id: vFirewallCL + + # APP/USER_DATA + dcae_collector_ip: 10.0.4.1 + dcae_collector_port: 30235 + demo_artifacts_version: 1.4.0-SNAPSHOT + install_script_version: 1.4.0-SNAPSHOT + key_name: vfw_key + pub_key: PUT YOUR KEY HERE + cloud_env: PUT openstack OR rackspace HERE + sec_group: PUT THE ONAP SECURITY GROUP HERE + nexus_artifact_repo: https://nexus.onap.org diff --git a/heat/vFWCL_arm64/vFWSNK/base_vfw.yaml b/heat/vFWCL_arm64/vFWSNK/base_vfw.yaml new file mode 100644 index 00000000..d30a64fc --- /dev/null +++ b/heat/vFWCL_arm64/vFWSNK/base_vfw.yaml @@ -0,0 +1,395 @@ +########################################################################## +# +#==================LICENSE_START========================================== +# +# +# Copyright (c) 2017 AT&T Intellectual Property. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#==================LICENSE_END============================================ +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# +########################################################################## + +heat_template_version: 2013-05-23 + +description: Heat template that deploys vFirewall Closed Loop demo app (vFW and vSink) for ONAP + +############## +# # +# PARAMETERS # +# # +############## + +parameters: + vfw_image_name: + type: string + label: Image name or ID + description: Image to be used for compute instance + vfw_flavor_name: + type: string + label: Flavor + description: Type of instance (flavor) to be used + vsn_image_name: + type: string + label: Image name or ID + description: Image to be used for compute instance + vsn_flavor_name: + type: string + label: Flavor + description: Type of instance (flavor) to be used + public_net_id: + type: string + label: Public network name or ID + description: Public network that enables remote connection to VNF + int_unprotected_private_net_id: + type: string + label: Unprotected private network name or ID + description: Private network that connects vPacketGenerator with vFirewall + int_unprotected_private_subnet_id: + type: string + label: Unprotected private subnetwork name or ID + description: Private subnetwork of the protected network + unprotected_private_net_cidr: + type: string + label: Unprotected private network CIDR + description: The CIDR of the unprotected private network + int_protected_private_net_id: + type: string + label: Protected private network name or ID + description: Private network that connects vFirewall with vSink + int_protected_private_subnet_id: + type: string + label: Protected private subnetwork name or ID + description: Private subnetwork of the unprotected network + protected_private_net_cidr: + type: string + label: Protected private network CIDR + description: The CIDR of the protected private network + onap_private_net_id: + type: string + label: ONAP management network name or ID + description: Private network that connects ONAP components and the VNF + onap_private_subnet_id: + type: string + label: ONAP management sub-network name or ID + description: Private sub-network that connects ONAP components and the VNF + onap_private_net_cidr: + type: string + label: ONAP private network CIDR + description: The CIDR of the protected private network + vfw_int_unprotected_private_ip_0: + type: string + label: vFirewall private IP address towards the unprotected network + description: Private IP address that is assigned to the vFirewall to communicate with the vPacketGenerator + vfw_int_protected_private_ip_0: + type: string + label: vFirewall private IP address towards the protected network + description: Private IP address that is assigned to the vFirewall to communicate with the vSink + vfw_onap_private_ip_0: + type: string + label: vFirewall private IP address towards the ONAP management network + description: Private IP address that is assigned to the vFirewall to communicate with ONAP components + vfw_int_protected_private_floating_ip: + type: string + label: vPacketGenerator private IP address towards the unprotected network + description: Private IP address that is assigned to the vPacketGenerator to communicate with the vFirewall + vsn_int_protected_private_ip_0: + type: string + label: vSink private IP address towards the protected network + description: Private IP address that is assigned to the vSink to communicate with the vFirewall + vsn_onap_private_ip_0: + type: string + label: vSink private IP address towards the ONAP management network + description: Private IP address that is assigned to the vSink to communicate with ONAP components + vfw_name_0: + type: string + label: vFirewall name + description: Name of the vFirewall + vsn_name_0: + type: string + label: vSink name + description: Name of the vSink + vnf_name: + type: string + label: VNF NAME + description: The VNF NAME is provided by ONAP + vnf_id: + type: string + label: VNF ID + description: The VNF ID is provided by ONAP + vf_module_id: + type: string + label: vFirewall module ID + description: The vFirewall Module ID is provided by ONAP + dcae_collector_ip: + type: string + label: DCAE collector IP address + description: IP address of the DCAE collector + dcae_collector_port: + type: string + label: DCAE collector port + description: Port of the DCAE collector + key_name: + type: string + label: Key pair name + description: Public/Private key pair name + pub_key: + type: string + label: Public key + description: Public key to be installed on the compute instance + install_script_version: + type: string + label: Installation script version number + description: Version number of the scripts that install the vFW demo app + demo_artifacts_version: + type: string + label: Artifacts version used in demo vnfs + description: Artifacts (jar, tar.gz) version used in demo vnfs + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts. + cloud_env: + type: string + label: Cloud environment + description: Cloud environment (e.g., openstack, rackspace) + sec_group: + type: string + description: ONAP Security Group + +############# +# # +# RESOURCES # +# # +############# + +resources: + random-str: + type: OS::Heat::RandomString + properties: + length: 4 + + my_keypair: + type: OS::Nova::KeyPair + properties: + name: + str_replace: + template: vnfname_base_rand + params: + base: { get_param: key_name } + vnfname: { get_param: vnf_name } + rand: { get_resource: random-str } + public_key: { get_param: pub_key } + save_private_key: false + + int_unprotected_private_network: + type: OS::Neutron::Net + properties: + name: + str_replace: + template: vnfname_netid + params: + netid: { get_param: int_unprotected_private_net_id } + vnfname: { get_param: vnf_name } + + int_unprotected_private_subnet: + type: OS::Neutron::Subnet + properties: + name: + str_replace: + template: vnfname_subnetid + params: + subnetid: { get_param: int_unprotected_private_subnet_id } + vnfname: { get_param: vnf_name } + network: { get_resource: int_unprotected_private_network } + cidr: { get_param: unprotected_private_net_cidr } + + int_protected_private_network: + type: OS::Neutron::Net + properties: + name: + str_replace: + template: vnfname_netid + params: + netid: { get_param: int_protected_private_net_id } + vnfname: { get_param: vnf_name } + + int_protected_private_subnet: + type: OS::Neutron::Subnet + properties: + name: + str_replace: + template: vnfname_subnetid + params: + subnetid: { get_param: int_protected_private_subnet_id } + vnfname: { get_param: vnf_name } + network: { get_resource: int_protected_private_network } + cidr: { get_param: protected_private_net_cidr } + + # Virtual Firewall instantiation + vfw_0_int_unprotected_private_port_0: + type: OS::Neutron::Port + properties: + network: { get_resource: int_unprotected_private_network } + fixed_ips: [{"subnet": { get_resource: int_unprotected_private_subnet }, "ip_address": { get_param: vfw_int_unprotected_private_ip_0 }}] + security_groups: + - { get_param: sec_group } + + vfw_0_int_protected_private_port_0: + type: OS::Neutron::Port + properties: + allowed_address_pairs: [{ "ip_address": { get_param: vfw_int_protected_private_floating_ip }}] + network: { get_resource: int_protected_private_network } + fixed_ips: [{"subnet": { get_resource: int_protected_private_subnet }, "ip_address": { get_param: vfw_int_protected_private_ip_0 }}] + security_groups: + - { get_param: sec_group } + + vfw_0_onap_private_port_0: + type: OS::Neutron::Port + properties: + network: { get_param: onap_private_net_id } + fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vfw_onap_private_ip_0 }}] + security_groups: + - { get_param: sec_group } + + vfw_server_0: + type: OS::Nova::Server + properties: + image: { get_param: vfw_image_name } + flavor: { get_param: vfw_flavor_name } + name: { get_param: vfw_name_0 } + key_name: { get_resource: my_keypair } + networks: + - network: { get_param: public_net_id } + - port: { get_resource: vfw_0_int_unprotected_private_port_0 } + - port: { get_resource: vfw_0_int_protected_private_port_0 } + - port: { get_resource: vfw_0_onap_private_port_0 } + metadata: + vnf_name: { get_param: vnf_name } + vnf_id: { get_param: vnf_id } + vf_module_id: { get_param: vf_module_id } + user_data_format: RAW + user_data: + str_replace: + params: + __dcae_collector_ip__ : { get_param: dcae_collector_ip } + __dcae_collector_port__ : { get_param: dcae_collector_port } + __demo_artifacts_version__ : { get_param: demo_artifacts_version } + __install_script_version__ : { get_param: install_script_version } + __vfw_private_ip_0__ : { get_param: vfw_int_unprotected_private_ip_0 } + __vfw_private_ip_1__ : { get_param: vfw_int_protected_private_ip_0 } + __vfw_private_ip_2__ : { get_param: vfw_onap_private_ip_0 } + __unprotected_private_net_cidr__ : { get_param: unprotected_private_net_cidr } + __protected_private_net_cidr__ : { get_param: protected_private_net_cidr } + __onap_private_net_cidr__ : { get_param: onap_private_net_cidr } + __cloud_env__ : { get_param: cloud_env } + __nexus_artifact_repo__: { get_param: nexus_artifact_repo } + template: | + #!/bin/bash + + # Create configuration files + mkdir /opt/config + echo "__dcae_collector_ip__" > /opt/config/dcae_collector_ip.txt + echo "__dcae_collector_port__" > /opt/config/dcae_collector_port.txt + echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt + echo "__install_script_version__" > /opt/config/install_script_version.txt + echo "__vfw_private_ip_0__" > /opt/config/vfw_private_ip_0.txt + echo "__vfw_private_ip_1__" > /opt/config/vfw_private_ip_1.txt + echo "__vfw_private_ip_2__" > /opt/config/vfw_private_ip_2.txt + echo "__unprotected_private_net_cidr__" > /opt/config/unprotected_private_net_cidr.txt + echo "__protected_private_net_cidr__" > /opt/config/protected_private_net_cidr.txt + echo "__onap_private_net_cidr__" > /opt/config/onap_private_net_cidr.txt + echo "__cloud_env__" > /opt/config/cloud_env.txt + echo "__nexus_artifact_repo__" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get update + apt-get -y install unzip + if [[ "__install_script_version__" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "__nexus_artifact_repo__/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vfw&a=vfw-scripts&e=zip&v=__install_script_version__" -o /opt/vfw-scripts-__install_script_version__.zip + unzip -j /opt/vfw-scripts-__install_script_version__.zip -d /opt v_firewall_install_arm64.sh + cd /opt + chmod +x v_firewall_install_arm64.sh + ./v_firewall_install_arm64.sh + + + # Virtual Sink instantiation + vsn_0_int_protected_private_port_0: + type: OS::Neutron::Port + properties: + network: { get_resource: int_protected_private_network } + fixed_ips: [{"subnet": { get_resource: int_protected_private_subnet }, "ip_address": { get_param: vsn_int_protected_private_ip_0 }}] + security_groups: + - { get_param: sec_group } + + vsn_0_onap_private_port_0: + type: OS::Neutron::Port + properties: + network: { get_param: onap_private_net_id } + fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vsn_onap_private_ip_0 }}] + security_groups: + - { get_param: sec_group } + + vsn_server_0: + type: OS::Nova::Server + properties: + image: { get_param: vsn_image_name } + flavor: { get_param: vsn_flavor_name } + name: { get_param: vsn_name_0 } + key_name: { get_resource: my_keypair } + networks: + - network: { get_param: public_net_id } + - port: { get_resource: vsn_0_int_protected_private_port_0 } + - port: { get_resource: vsn_0_onap_private_port_0 } + metadata: + vnf_name: { get_param: vnf_name } + vnf_id: { get_param: vnf_id } + vf_module_id: { get_param: vf_module_id } + user_data_format: RAW + user_data: + str_replace: + params: + __protected_net_gw__: { get_param: vfw_int_protected_private_ip_0 } + __unprotected_net__: { get_param: unprotected_private_net_cidr } + __install_script_version__ : { get_param: install_script_version } + __vsn_private_ip_0__ : { get_param: vsn_int_protected_private_ip_0 } + __vsn_private_ip_1__ : { get_param: vsn_onap_private_ip_0 } + __protected_private_net_cidr__ : { get_param: protected_private_net_cidr } + __onap_private_net_cidr__ : { get_param: onap_private_net_cidr } + __cloud_env__ : { get_param: cloud_env } + __nexus_artifact_repo__: { get_param: nexus_artifact_repo } + template: | + #!/bin/bash + + # Create configuration files + mkdir /opt/config + echo "__protected_net_gw__" > /opt/config/protected_net_gw.txt + echo "__unprotected_net__" > /opt/config/unprotected_net.txt + echo "__install_script_version__" > /opt/config/install_script_version.txt + echo "__vsn_private_ip_0__" > /opt/config/vsn_private_ip_0.txt + echo "__vsn_private_ip_1__" > /opt/config/vsn_private_ip_1.txt + echo "__protected_private_net_cidr__" > /opt/config/protected_private_net_cidr.txt + echo "__onap_private_net_cidr__" > /opt/config/onap_private_net_cidr.txt + echo "__cloud_env__" > /opt/config/cloud_env.txt + echo "__nexus_artifact_repo__" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get update + apt-get -y install unzip + if [[ "__install_script_version__" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "__nexus_artifact_repo__/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vfw&a=vfw-scripts&e=zip&v=__install_script_version__" -o /opt/vfw-scripts-__install_script_version__.zip + unzip -j /opt/vfw-scripts-__install_script_version__.zip -d /opt v_sink_install_arm64.sh + cd /opt + chmod +x v_sink_install_arm64.sh + ./v_sink_install_arm64.sh diff --git a/heat/vFWCL_arm64/vPKG/MANIFEST.json b/heat/vFWCL_arm64/vPKG/MANIFEST.json new file mode 100644 index 00000000..482b4294 --- /dev/null +++ b/heat/vFWCL_arm64/vPKG/MANIFEST.json @@ -0,0 +1,17 @@ +{ + "name": "", + "description": "", + "data": [ + { + "file": "base_vpkg.yaml", + "type": "HEAT", + "isBase": "true", + "data": [ + { + "file": "base_vpkg.env", + "type": "HEAT_ENV" + } + ] + } + ] +} diff --git a/heat/vFWCL_arm64/vPKG/base_vpkg.env b/heat/vFWCL_arm64/vPKG/base_vpkg.env new file mode 100644 index 00000000..72396cec --- /dev/null +++ b/heat/vFWCL_arm64/vPKG/base_vpkg.env @@ -0,0 +1,40 @@ +parameters: + + # VM_TYPE: vpg + vpg_image_name: PUT THE VM IMAGE NAME HERE (UBUNTU 1404) + vpg_flavor_name: PUT THE VM FLAVOR NAME HERE (m1.medium suggested) + vpg_unprotected_private_ip_0: 192.168.10.200 + vpg_onap_private_ip_0: 10.0.100.2 + vpg_name_0: zdfw1fwl01pgn01 + + # NETWORK_ROLE: public + public_net_id: PUT THE PUBLIC NETWORK ID HERE + + # NETWORK_ROLE: unprotected_private + unprotected_private_net_id: vFWSNK_zdfw1fwl01_unprotected + unprotected_private_subnet_id: vFWSNK_zdfw1fwl01_unprotected_sub + unprotected_private_net_cidr: 192.168.10.0/24 + + # NETWORK_ROLE: onap_private + onap_private_net_id: PUT THE ONAP PRIVATE NETWORK NAME HERE + onap_private_subnet_id: PUT THE ONAP PRIVATE NETWORK NAME HERE + onap_private_net_cidr: 10.0.0.0/16 + + # NETWORK_ROLE: protected_private + protected_private_net_cidr: 192.168.20.0/24 + + # METADATA + vnf_name: vPGK + vnf_id: vPNG_Firewall_demo_app + vf_module_id: vTrafficPNG + + # APP/USER_DATA + vfw_private_ip_0: 192.168.10.100 + vsn_private_ip_0: 192.168.20.250 + demo_artifacts_version: 1.4.0-SNAPSHOT + install_script_version: 1.4.0-SNAPSHOT + key_name: vfw_key + pub_key: PUT YOUR PUBLIC KEY HERE + cloud_env: PUT openstack OR rackspace HERE + sec_group: PUT THE ONAP SECURITY GROUP HERE + nexus_artifact_repo: https://nexus.onap.org \ No newline at end of file diff --git a/heat/vFWCL_arm64/vPKG/base_vpkg.yaml b/heat/vFWCL_arm64/vPKG/base_vpkg.yaml new file mode 100644 index 00000000..2a3c36d1 --- /dev/null +++ b/heat/vFWCL_arm64/vPKG/base_vpkg.yaml @@ -0,0 +1,233 @@ +########################################################################## +# +#==================LICENSE_START========================================== +# +# +# Copyright (c) 2017 AT&T Intellectual Property. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#==================LICENSE_END============================================ +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# +########################################################################## + +heat_template_version: 2013-05-23 + +description: Heat template that deploys the vFirewall Traffic Generator demo app for ONAP + +############## +# # +# PARAMETERS # +# # +############## + +parameters: + vpg_image_name: + type: string + label: Image name or ID + description: Image to be used for compute instance + vpg_flavor_name: + type: string + label: Flavor + description: Type of instance (flavor) to be used + public_net_id: + type: string + label: Public network name or ID + description: Public network that enables remote connection to VNF + unprotected_private_net_id: + type: string + label: Unprotected private network name or ID + description: Private network that connects vPacketGenerator with vFirewall + unprotected_private_subnet_id: + type: string + label: Unprotected private sub-network name or ID + description: Private subnetwork for the unprotected network + unprotected_private_net_cidr: + type: string + label: Unprotected private network CIDR + description: The CIDR of the unprotected private network + protected_private_net_cidr: + type: string + label: Protected private network CIDR + description: The CIDR of the protected private network + onap_private_net_id: + type: string + label: ONAP management network name or ID + description: Private network that connects ONAP components and the VNF + onap_private_subnet_id: + type: string + label: ONAP management sub-network name or ID + description: Private sub-network that connects ONAP components and the VNF + onap_private_net_cidr: + type: string + label: ONAP private network CIDR + description: The CIDR of the protected private network + vfw_private_ip_0: + type: string + label: vFirewall private IP address towards the unprotected network + description: Private IP address that is assigned to the vFirewall to communicate with the vPacketGenerator + vsn_private_ip_0: + type: string + label: vSink private IP address towards the protected network + description: Private IP address that is assigned to the vSink to communicate with the vFirewall + vpg_unprotected_private_ip_0: + type: string + label: vPacketGenerator private IP address towards the unprotected network + description: Private IP address that is assigned to the vPacketGenerator to communicate with the vFirewall + vpg_onap_private_ip_0: + type: string + label: vPacketGenerator private IP address towards the ONAP management network + description: Private IP address that is assigned to the vPacketGenerator to communicate with ONAP components + vpg_name_0: + type: string + label: vPacketGenerator name + description: Name of the vPacketGenerator + vnf_name: + type: string + label: VNF NAME + description: The VNF NAME is provided by ONAP + vnf_id: + type: string + label: VNF ID + description: The VNF ID is provided by ONAP + vf_module_id: + type: string + label: vPNG Traffic Generator module ID + description: The vPNG Module ID is provided by ONAP + key_name: + type: string + label: Key pair name + description: Public/Private key pair name + pub_key: + type: string + label: Public key + description: Public key to be installed on the compute instance + install_script_version: + type: string + label: Installation script version number + description: Version number of the scripts that install the vFW demo app + demo_artifacts_version: + type: string + label: Artifacts version used in demo vnfs + description: Artifacts (jar, tar.gz) version used in demo vnfs + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts. + cloud_env: + type: string + label: Cloud environment + description: Cloud environment (e.g., openstack, rackspace) + sec_group: + type: string + description: ONAP Security Group + +############# +# # +# RESOURCES # +# # +############# + +resources: + random-str: + type: OS::Heat::RandomString + properties: + length: 4 + + my_keypair: + type: OS::Nova::KeyPair + properties: + name: + str_replace: + template: vnfname_base_rand + params: + vnfname: { get_param: vnf_name } + base: { get_param: key_name } + rand: { get_resource: random-str } + public_key: { get_param: pub_key } + save_private_key: false + + + # Virtual Packet Generator instantiation + vpg_0_unprotected_private_port_0: + type: OS::Neutron::Port + properties: + network: { get_param: unprotected_private_net_id } + fixed_ips: [{"subnet": { get_param: unprotected_private_subnet_id }, "ip_address": { get_param: vpg_unprotected_private_ip_0 }}] + security_groups: + - { get_param: sec_group } + + vpg_0_onap_private_port_0: + type: OS::Neutron::Port + properties: + network: { get_param: onap_private_net_id } + fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vpg_onap_private_ip_0 }}] + security_groups: + - { get_param: sec_group } + + vpg_server_0: + type: OS::Nova::Server + properties: + image: { get_param: vpg_image_name } + flavor: { get_param: vpg_flavor_name } + name: { get_param: vpg_name_0 } + key_name: { get_resource: my_keypair } + networks: + - network: { get_param: public_net_id } + - port: { get_resource: vpg_0_unprotected_private_port_0 } + - port: { get_resource: vpg_0_onap_private_port_0 } + metadata: + vnf_name: { get_param: vnf_name } + vnf_id: { get_param: vnf_id } + vf_module_id: { get_param: vf_module_id } + user_data_format: RAW + user_data: + str_replace: + params: + __fw_ipaddr__: { get_param: vfw_private_ip_0 } + __protected_net_cidr__: { get_param: protected_private_net_cidr } + __sink_ipaddr__: { get_param: vsn_private_ip_0 } + __demo_artifacts_version__ : { get_param: demo_artifacts_version } + __install_script_version__ : { get_param: install_script_version } + __vpg_private_ip_0__ : { get_param: vpg_unprotected_private_ip_0 } + __vpg_private_ip_1__ : { get_param: vpg_onap_private_ip_0 } + __unprotected_private_net_cidr__ : { get_param: unprotected_private_net_cidr } + __onap_private_net_cidr__ : { get_param: onap_private_net_cidr } + __cloud_env__ : { get_param: cloud_env } + __nexus_artifact_repo__: { get_param: nexus_artifact_repo } + template: | + #!/bin/bash + + # Create configuration files + mkdir /opt/config + echo "__fw_ipaddr__" > /opt/config/fw_ipaddr.txt + echo "__protected_net_cidr__" > /opt/config/protected_net_cidr.txt + echo "__sink_ipaddr__" > /opt/config/sink_ipaddr.txt + echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt + echo "__install_script_version__" > /opt/config/install_script_version.txt + echo "__vpg_private_ip_0__" > /opt/config/vpg_private_ip_0.txt + echo "__vpg_private_ip_1__" > /opt/config/vpg_private_ip_1.txt + echo "__unprotected_private_net_cidr__" > /opt/config/unprotected_private_net_cidr.txt + echo "__onap_private_net_cidr__" > /opt/config/onap_private_net_cidr.txt + echo "__cloud_env__" > /opt/config/cloud_env.txt + echo "__nexus_artifact_repo__" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get update + apt-get -y install unzip + if [[ "__install_script_version__" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "__nexus_artifact_repo__/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vfw&a=vfw-scripts&e=zip&v=__install_script_version__" -o /opt/vfw-scripts-__install_script_version__.zip + unzip -j /opt/vfw-scripts-__install_script_version__.zip -d /opt v_packetgen_install_arm64.sh + cd /opt + chmod +x v_packetgen_install_arm64.sh + ./v_packetgen_install_arm64.sh diff --git a/vnfs/VES/bldjobs/Makefile b/vnfs/VES/bldjobs/Makefile index 659f02fb..058deca7 100644 --- a/vnfs/VES/bldjobs/Makefile +++ b/vnfs/VES/bldjobs/Makefile @@ -26,13 +26,14 @@ #****************************************************************************** ARCH=$(shell getconf LONG_BIT) +MACHINE_ARCH=$(shell uname -m) CODE_ROOT=$(CURDIR)/.. EVELLIB_ROOT=$(CODE_ROOT)/code/evel_library EVELDEMO_ROOT=$(CODE_ROOT)/code/evel_demo EVELUNIT_ROOT=$(CODE_ROOT)/code/evel_unit EVELTRAINING_ROOT=$(CODE_ROOT)/code/evel_training -LIBS_DIR=$(CODE_ROOT)/libs/x86_$(ARCH) -OUTPUT_DIR=$(CODE_ROOT)/output/x86_$(ARCH) +LIBS_DIR=$(CODE_ROOT)/libs/$(MACHINE_ARCH) +OUTPUT_DIR=$(CODE_ROOT)/output/$(MACHINE_ARCH) DOCS_ROOT=$(CODE_ROOT)/docs CC=gcc SCP=scp @@ -46,8 +47,13 @@ PLANTFLAGS=-tsvg # Standard compiler flags. * #****************************************************************************** CPPFLAGS=-I $(EVELLIB_ROOT) -CFLAGS=-Wall -Wextra -m$(ARCH) -g -fPIC -LIBCFLAGS=-Wall -Wextra -m$(ARCH) -g -shared -fPIC +ifeq ($(MACHINE_ARCH), aarch64) + CFLAGS=-Wall -Wextra -march=native -g -fPIC + LIBCFLAGS=-Wall -Wextra -march=native -g -shared -fPIC +else + CFLAGS=-Wall -Wextra -m$(ARCH) -g -fPIC + LIBCFLAGS=-Wall -Wextra -m$(ARCH) -g -shared -fPIC +endif #****************************************************************************** # The testbed is a VM instance where we can install the EVEL example under * @@ -251,7 +257,7 @@ evel_test_centos: evel_install_centos @echo Testing EVEL Demo application on CentOS... @$(SSH) $(VNF_TESTBED_CENTOS_USER)@$(VNF_TESTBED_CENTOS) \ source .bash_profile \; \ - $(TESTBED_CENTOS_INSTALL_PATH)/output/x86_$(ARCH)/evel_demo \ + $(TESTBED_CENTOS_INSTALL_PATH)/output/$(MACHINE_ARCH)/evel_demo \ --fqdn $(VNF_COLLECTOR_HOST) \ --port $(VNF_COLLECTOR_PORT) \ --verbose @@ -265,7 +271,7 @@ evel_test_ubuntu: evel_install_ubuntu @echo Testing EVEL Demo application on Ubuntu... @$(SSH) $(VNF_TESTBED_UBUNTU_USER)@$(VNF_TESTBED_UBUNTU) \ source .profile \; \ - $(TESTBED_UBUNTU_INSTALL_PATH)/output/x86_$(ARCH)/evel_demo \ + $(TESTBED_UBUNTU_INSTALL_PATH)/output/$(MACHINE_ARCH)/evel_demo \ --fqdn $(VNF_COLLECTOR_HOST) \ --port $(VNF_COLLECTOR_PORT) \ --verbose @@ -293,8 +299,8 @@ package: api_library_clean \ @cd $(CODE_ROOT) && tar cfz output/evel-library-package.tgz bldjobs \ code \ docs \ - libs/x86_64/README \ - output/x86_64/README \ + libs/$(MACHINE_ARCH)/README \ + output/$(MACHINE_ARCH)/README \ readme.md package_clean: diff --git a/vnfs/VES5.0/evel/evel-library/bldjobs/Makefile b/vnfs/VES5.0/evel/evel-library/bldjobs/Makefile index 1c327d3d..fe06f81a 100644 --- a/vnfs/VES5.0/evel/evel-library/bldjobs/Makefile +++ b/vnfs/VES5.0/evel/evel-library/bldjobs/Makefile @@ -26,12 +26,13 @@ #****************************************************************************/ ARCH=$(shell getconf LONG_BIT) +MACHINE_ARCH=$(shell uname -m) CODE_ROOT=$(CURDIR)/.. EVELLIB_ROOT=$(CODE_ROOT)/code/evel_library EVELUNIT_ROOT=$(CODE_ROOT)/code/evel_unit EVELTRAINING_ROOT=$(CODE_ROOT)/code -LIBS_DIR=$(CODE_ROOT)/libs/x86_$(ARCH) -OUTPUT_DIR=$(CODE_ROOT)/output/x86_$(ARCH) +LIBS_DIR=$(CODE_ROOT)/libs/$(MACHINE_ARCH) +OUTPUT_DIR=$(CODE_ROOT)/output/$(MACHINE_ARCH) DOCS_ROOT=$(CODE_ROOT)/docs CC=gcc SCP=scp @@ -45,8 +46,13 @@ PLANTFLAGS=-tsvg # Standard compiler flags. * #****************************************************************************** CPPFLAGS=-I $(EVELLIB_ROOT) -CFLAGS=-Wall -Wextra -m$(ARCH) -g -fPIC -LIBCFLAGS=-Wall -Wextra -m$(ARCH) -g -shared -fPIC +ifeq ($(MACHINE_ARCH), aarch64) + CFLAGS=-Wall -Wextra -march=native -g -fPIC + LIBCFLAGS=-Wall -Wextra -march=native -g -shared -fPIC +else + CFLAGS=-Wall -Wextra -m$(ARCH) -g -fPIC + LIBCFLAGS=-Wall -Wextra -m$(ARCH) -g -shared -fPIC +endif #****************************************************************************** # The testbed is a VM instance where we can install the EVEL example under * @@ -253,7 +259,7 @@ evel_test_centos: evel_install_centos @echo Testing EVEL Demo application on CentOS... @$(SSH) $(VNF_TESTBED_CENTOS_USER)@$(VNF_TESTBED_CENTOS) \ source .bash_profile \; \ - $(TESTBED_CENTOS_INSTALL_PATH)/output/x86_$(ARCH)/evel_demo \ + $(TESTBED_CENTOS_INSTALL_PATH)/output/$(MACHINE_ARCH)/evel_demo \ --fqdn $(VNF_COLLECTOR_HOST) \ --port $(VNF_COLLECTOR_PORT) \ --verbose @@ -267,7 +273,7 @@ evel_test_ubuntu: evel_install_ubuntu @echo Testing EVEL Demo application on Ubuntu... @$(SSH) $(VNF_TESTBED_UBUNTU_USER)@$(VNF_TESTBED_UBUNTU) \ source .profile \; \ - $(TESTBED_UBUNTU_INSTALL_PATH)/output/x86_$(ARCH)/evel_demo \ + $(TESTBED_UBUNTU_INSTALL_PATH)/output/$(MACHINE_ARCH)/evel_demo \ --fqdn $(VNF_COLLECTOR_HOST) \ --port $(VNF_COLLECTOR_PORT) \ --verbose @@ -292,8 +298,8 @@ package: api_library_clean \ @cd $(CODE_ROOT) && tar cfz output/evel-library-package.tgz bldjobs \ code \ docs \ - libs/x86_64/README \ - output/x86_64/README \ + libs/$(MACHINE_ARCH)/README \ + output/$(MACHINE_ARCH)/README \ readme.md package_clean: diff --git a/vnfs/VES5.0/evel/evel-library/code/VESreporting_HB/Makefile b/vnfs/VES5.0/evel/evel-library/code/VESreporting_HB/Makefile index e0077597..1119f59a 100644 --- a/vnfs/VES5.0/evel/evel-library/code/VESreporting_HB/Makefile +++ b/vnfs/VES5.0/evel/evel-library/code/VESreporting_HB/Makefile @@ -17,9 +17,10 @@ CC=gcc ARCH=$(shell getconf LONG_BIT) +MACHINE_ARCH=$(shell uname -m) CODE_ROOT=$(CURDIR)/../.. #CODE_ROOT=../code/evel-library -LIBS_DIR=$(CODE_ROOT)/libs/x86_$(ARCH) +LIBS_DIR=$(CODE_ROOT)/libs/$(MACHINE_ARCH) #LIBS_DIR=/usr/lib INCLUDE_DIR= -I $(CODE_ROOT)/code/evel_library -I . diff --git a/vnfs/VES5.0/evel/evel-library/code/VESreporting_fault/Makefile b/vnfs/VES5.0/evel/evel-library/code/VESreporting_fault/Makefile index 4837c7d1..87e0d4ac 100644 --- a/vnfs/VES5.0/evel/evel-library/code/VESreporting_fault/Makefile +++ b/vnfs/VES5.0/evel/evel-library/code/VESreporting_fault/Makefile @@ -17,9 +17,10 @@ CC=gcc ARCH=$(shell getconf LONG_BIT) +MACHINE_ARCH=$(shell uname -m) CODE_ROOT=$(CURDIR)/../.. #CODE_ROOT=../code/evel-library -LIBS_DIR=$(CODE_ROOT)/libs/x86_$(ARCH) +LIBS_DIR=$(CODE_ROOT)/libs/$(MACHINE_ARCH) #LIBS_DIR=/usr/lib INCLUDE_DIR= -I $(CODE_ROOT)/code/evel_library -I . diff --git a/vnfs/VES5.0/evel/evel-library/code/VESreporting_syslog/Makefile b/vnfs/VES5.0/evel/evel-library/code/VESreporting_syslog/Makefile index 4b0fd85d..f0b4ed3b 100644 --- a/vnfs/VES5.0/evel/evel-library/code/VESreporting_syslog/Makefile +++ b/vnfs/VES5.0/evel/evel-library/code/VESreporting_syslog/Makefile @@ -17,9 +17,10 @@ CC=gcc ARCH=$(shell getconf LONG_BIT) +MACHINE_ARCH=$(shell uname -m) CODE_ROOT=$(CURDIR)/../.. #CODE_ROOT=../code/evel-library -LIBS_DIR=$(CODE_ROOT)/libs/x86_$(ARCH) +LIBS_DIR=$(CODE_ROOT)/libs/$(MACHINE_ARCH) #LIBS_DIR=/usr/lib INCLUDE_DIR= -I $(CODE_ROOT)/code/evel_library -I . diff --git a/vnfs/VES5.0/evel/evel-library/code/VESreporting_vFW/Makefile b/vnfs/VES5.0/evel/evel-library/code/VESreporting_vFW/Makefile index 9d1812fa..f5e3c463 100644 --- a/vnfs/VES5.0/evel/evel-library/code/VESreporting_vFW/Makefile +++ b/vnfs/VES5.0/evel/evel-library/code/VESreporting_vFW/Makefile @@ -17,9 +17,10 @@ CC=gcc ARCH=$(shell getconf LONG_BIT) +MACHINE_ARCH=$(shell uname -m) CODE_ROOT=$(CURDIR)/../.. #CODE_ROOT=../code/evel-library -LIBS_DIR=$(CODE_ROOT)/libs/x86_$(ARCH) +LIBS_DIR=$(CODE_ROOT)/libs/$(MACHINE_ARCH) #LIBS_DIR=/usr/lib INCLUDE_DIR= -I $(CODE_ROOT)/code/evel_library -I . diff --git a/vnfs/VES5.0/evel/evel-library/libs/aarch64/libevel.a b/vnfs/VES5.0/evel/evel-library/libs/aarch64/libevel.a new file mode 100755 index 0000000000000000000000000000000000000000..0e17b9f89df9318ef836b9e189e8d08d96221f36 GIT binary patch literal 585853 zcmeEvd3cmX@_)}HK;$xD2q-AHVnoF=HzbgYBp?Xt5Yc7Tbu)_M zxlRHCqN{Peh`JKu#VRVItLU;i8$nqY6^~V-Aiqy_SI^Y@&IID0zvubBJTLECpRTU1 zuCA^=-gn;IaQ3uwydICTM}m4z5mm9$Abw6r-krpEO8M1T)e--vsezieLnI~kX6OBh z8njoXbC~}-Qp$rST|LNB_&T(kk+ttgbG7-rASvH+&bOTT?R6_x#a^w}R0^H7obJ93 zMj9RVO1yMjxU0HA>uJct{-4YoS;(hlv{65mz>IvgEkJova1uQEcNeRqPKgt~d*S@Y z@*enpM$yz^!@hm?hO;SWCuBGaS3l0KI90CSqXIX)=oF zDmoK;20UrXm$J;0qypZ6Qfa=VWEDudWvRkth`R7xkLO{frX&tot^BtKd}GzkYBSh8 zUSFp2EbTMHr&O{>B?Z*PrM{;0O(_fd`a@k|Fn`CvsxC2S(yPkjQ#l>HQ#u8jtQnP0 z{ZS=&mZ==oVZu^>U|DC?Hz`pa>s7u<>WB%6scNDB+?=k7XCLqB*-<5W2ZucADpLjg zO64>un8F+AlBzPAI;c*^Pd`t2GkW+24+t!sj`}F|J{qQFsZ!_pRL7)E<4&2RYPAWH z3YR7>Q(j+4`I|a>ntVM|RX{0ka-z?NTq-FsDZ`so1FIw^c~4Znjbjs>wS< zt@`(rL|>vx-;;BMHz_&Q6G~pHl9IgvZ|V#vmmUZyZwHUcn?7aBvU84_KB+$FNljNH zmwRrk>C@C>Nn$~uBg$Ty5g=!U8w8pZq(OIohrudg`j9cI|BCzPO-jmK($S+-s!CfH zP#rwAiK>o#fsP3{GjX1c^BkO0aGr~ED$Z#*&&PQI&Mcgl;FQOuAg;i970w)-bQIv6 zg>yC$IOgCi#aV{40%s*odt8H?ML4g;xdi8RIO(_^=Te+E;k+5=?{VIW^ERBYy*`5Y z{|=mY;=Bvz-8eY}se5sMKh6hn{uw77^*C4QJEb1x>pEQ5<9r-v1J0*#(($ypsAq6} z4(A4(FW`I$=SG~HaK46R0iU45%hv>46LC_kNWyspPCB~a+LiCS<9Z~{o;Z)j*&8PveQ-U7@B87}AEysz zD$c<;hvGaQ=Lno9;2ecB1Lw&&N8>yd=V>_UIGwNKa2?P0h*oMM&U0{1#(6GII;P_K zJDe9VeIc$haL#1s2^&na;-qW^u8-qvVEQRspW*vPT%X7JH>Nk@+KlsMoUh<~4d)v;-^95ECmrwL`Yz6GIQ^g0 z4EgnhYZrcV=CijyJfYL=CAEK9JL0~N{`U9YZ}(q2^yZq|z8f@oa<4m*kNfB4&#X?~ zwfUk`2H!Tj{;s^C7xW5F+Os?T_^hpy8XkOWP@m(@9QfbDFCTpNvwwe*(c<~GCga6x zE*eq1>%ZN;pHTCcob_+N__vj}zkI|yOV^h5^e+i}FWC4^<+z(S{Ab*nQ!^PFGKT`|``5Ir)RVL;g9u z)2f?B6%`EsW=M~VQ(hjiWA-_--+16IYyf%i~KcTR;3= zZp$j)Yr&#l&RKZ;fN!!g?o97C@#Ne=zgx59PdDa-K0mnj@t+z_{o$8q##YZ5^UPg6 zm;U;PV?TQSn{A(7(^9tj!;W)Dl|8%Z*fm%G_(8AEuO?@CroS-pL z<;>pWzk00f_KC;+bXU*3jsy1`c;k(J|K2xnr+=TP@`@2(zV}V{B|ARK?QqG=RdX5( zpY{$udhrbl)}B~%VEauEp0Mk@_Xc-c|6=K{?`9`ne$!vBT&Q}l4qmcl*9%#F2LArZ z6z?%tJ@LnrKfS`&IC0z87fc>8>Wu6A4p`P_^}$uIbbdQ^TH_zT?VhxI$GBbh<~A;= ze)GGgIn}Q|yl~5XM{T~U=Y1z{x#8W{9-qGJhP_vZ{*>Hf!Gq^~(|SkWb&H;Pa&Njf zbJ&=RM?d=6zjkhJ*n0J>saG!C-R+6z3+9|YV_SaOGiPo%{nk6K-G4>J`1R-H5A@#g z&*@*?{B7Ctt=TUxukYID?U`LhKlJ5^p0|GJa>Y>3k0*t%-2TzEZ>>A)>YoQa@sFkt z?l}3{aSJy+u>Qitw6hkkTlZaJm*)4*eCxFJqsJ!q{@|HjO&`sh*?;U~m0y;eKmL(@ zSB>m)%JKD+e|r93m$v-0I{a?deOK>TzWlzw6<(ITW!K7$?;rT$>(Ftd-ahw|4%dtc zWL)>u8($sK@$u7-ADTY@e(#z`y6pM#nrlDmS9A4Ud+&ej={KgGTD0!STOPUMzVzgd zfsda3`sFibeK_Kjgqr{K`|qw17ft2gPnT|e?x~Z4f17?ox8qwso0qv|adJlWp3mOBxioa| z@Vg(G@YWmuyJSFzkGD^_^vn-8mLC1&?e86zuyoY4HKB>k&veV_yY!OOdpjSSetGsw zA79$Q1`*^H+aJI`#Z3Tc>4hU3;&3Wx0R!kuw6f zZE3x!bY|!4K0NlS-+z}~o1Rm!rgBHoJC|-gs`pu04`#pP&l}UP<%aTg@65gOo9{;z z9P?QD-cNS+PaWs~?`ivQO}gris_$Q%e&49qMxAiXU1@i0+u!A?k1o6``?J68ANbO) zmN_*2Zu3Y`N2twzh)qsVJyfz?=W%kE6EOFPWmSy{@$p{Z^~K>|iE%DD4*u?l`1oaz zACG?;WTeHBb7dQHXz3hJ|FKXs9)4#Vax&ZCAK3=p)P{ZTXamn`1FysKBA%W*+Tf=- zbv*u*j`8vIHrn^m;qm!jYy=0kho;LVv+VGzNXs>ww{Ae3?xULO5ywZmJo^90Yt~T_1tPTG;sf}_U zZll~I+R(qO4gOFY<wHuO2E4Sk*m9?zcxZOFg4 z4SN=~fj`xTKJTSdxm{GzY!ljdvaOEjZt&eHXb2or%tc++#o!xO8~#a*-`3mUp*>Fi zFSVa{QOR!_!JJJUiR@Hv(oY7bbr2ni#~QpL)yTJN_^<7xfz<|B#`uoT2Cw+a@D-VC>H}O!|1B57usFst zej0Xf2%pA_%o3AL&CqeOi%Q>W05+@2>TCE5^v+h)&fmcqNX`$mu*E_93UqA7NqA_9 zDfa=5D%E$W!2?$tMQl6%p6$71kio4z6SY5gQIF98ieoU>_kiy2UDW7HjC|S;pd&ok z$lsIYl)s++WIAmY;IMvjGJ+E6nMjLo93?DgB+G9)*U0yoi+YgjoBpI>T*mecviv08 zl(6z|;C3HN8#g$%n~Qpi>l+yCtnX%S-|#I)zHP^vPDansA;Z6c^}H|D;E#=V%DImH zzw2LE4)gyb$?z|v#W#*uSpS6>M92>6OoQ8YPvd%J^fI`u*Q9}l|NUXka{n{H;3da9 z@!yR!c)?6(do{2zmkdZTDqQNuFMQs{l@C{cQ!1~o+*q?W7 z)8ZAowR-S)!`~1z{2UI{_rnd|bd=H4Z`4vdSkE1_iG#!Xc`=u}_i|^sPqF;LcNsj9 z^%(S_yj zKF%q>2gi+S+T6im z0}2k?zI(Y}EH5;2ter=3d?-kB^8bb9Pw_eN0Q>nk+W5s`{rpXi15eY&ERLCM(0OdP z<-?tFzG8g!2~PZ*RHJ{&7$;uA_`Z{!_)zXgB^+R^-@e0svV4oNXMwq>{BB16*lq@} z{J-*e@k5@GZ`=K^)_-0yxaI$e`$Y~-EO9)>@;_yJj&}L~?c6TQdN}p3<9^yO*R+fE zlOI8n|F3A&;?1)y+#U)4A$;6*hQF&xRz0}B8{RVVr?Wm`ZkMhcPi%X=&hmeF!U$N- za_(pTq<4%Q#g|_pkIH@JUxv}@8R9q)KGqai!u~mo$D{4dhQANXe}e6w+{5r&d!CMY zEcM5RM@@f(Sbf}rj8tyoe#6hhnCip*eMF*B(8@WD%iYW6qI>G29RHL2jP=g`Ud;a7 zKhMZtZ7!;NvMF~pZRF#y@#o$_2H!i`lxyu!frcPG_jwJ!)n_ipv6;O2ZtY(IHsY_X z*W&f_CAxc-<)@!(4~^_vIV;c3$@+>$7uI`wO$H61IN{J&eQgfGI{@%JI4yKs0;is}JYKx`qQPys-?80le>4JUJxs?K9`|>1$Flt^ z!0qm~|8|atD?CR2bk^r-^k33{+(;vM2IF3y=V#EvJRD*DKj!1yE;H^k_+}$c9glKJ z&ONly#xa=XP`D=i#a;%lg+I|Tmib>?YH-_6ce4FMM;QUu4sRcCK&g|)w zKZWg(^0KkRG;>jZV!w6IZ|~#z-Zg?@KW1zZ-BV{6N3)!6+)r!oF?b5=Kbz%@<`*xPG5-|y&kZcV`sXYgmtHlN zSz#_}5z8NZr4dZ?3_4Ebb@~HCOu4qb?oTuRxpS-&@5}gR*ShRso*$;1WfZjfC|>V8 z-Q6kYbg+^CcU@=n*vxTwF}F*fmy8@6_b%u4R3F!V-Pzpk;a*PpXQ6&Q<2-kJhV>cS z)5$-H>$T)mC%%vCHI6rCY`xCuZuDQ++vsWg%L0y{OXz_b4jVro<9bcmWcWw3{gsVx zJOJ)A=1?m*jxD*w=wtD#xqZ`LF^s#J|0AAPE0>)gX8!G)4Wr#(x{v)~O4#5Vj9Tgk z##M{KdHYXwVLu-?*D!81$!egE54}|KBPa-mtyT)JcltkQ_^sbgN;P(yGD2$>94xA?>64 zp2eBvVankO;rps{HxC~3flQk63gFuk5iwkcwZ&#+P9g*{<$^T zX@}c*ezJ2N>(6$eZG5WNw7~}7&iHVS&-to@4vbcDDb1*S=OY25#DybI-Rg;CeM>8vX6M zW58fz|8ySTZNDhx^>4-&XT7SqUezxc+}hz6_O}h2OuhD+i@Jl`arYMnu>JiD9!Eld zcG`Ii`&-F8gYRKE=L|J^7G#@ptsQP=f2h8|_`^)L+gy%U>t1x$x0UCmJH1Z*7xTEe zaE_5P)?`xy!AAbM`c}hl=i4Xqd}GfShSARd&q8+MFFDo7;qI#b&hhr1{)XS$Eet#N zP`#AT6@RvajrMu=y7qNH9HWS%lmH_0ar49 z5y#sM4)8Xfq_cer_{G)zMx5%x^4B#Rz}EL`?$_`C!{D}khoKxQcM9)wj^=Wc*ncK% zHGsuaSg52Dj~A!ggEuKO>+I%efhB zq~`;78vf;sPi1@xy^xB-Z<1A4jz0_W>OUQ}+?yC*K^;fnm$P4uD|Y(TT%Reo$>k@s z%qM;J4mbQ9p46k2;>os$v(+**dpDUUSZp(dx{eSF6D2cxio)XT!%v!F}krbkMj;c+!nVzKsJ#Y|q=CH*&1~hcI6B zoyl*@oy_sDziXc3V?8%eMR1H}`+Pmbl>5L{2C(h;8QZzf^@iWtts9Sz{XaD2+IA^o z`7{4(_^tnpXa1ZVgYPlf)EvgAe{6tiQ*HHHn$hQ;(~Lf&8Gj+!;6I#doGAM2-WtUN^Db1}`yk zO1Qor_Vd;En{sV?-NSLU>o&t^+t=UO$PaOY*#5HAj*mrb2bTXK$NxTW7+@dcy?I~A zH_Vi4FCx6I||Ao}hI#$?7z=+l(?J-`efpC`b3BcMW5*Nmkdf zKWvy~02^=b@)`c>3}?9wU?Vwwwi!H~s_PI08&n_seESz0jRb5y)_*yWY zw;(%It*R=lQiTf&%c`@h%I8<+7iL#4swh;m=9lGH7ndVXc4axlgQFxHI#d_4 z6jCjJZgzgr-0a!&b1Mr}X<=zqVKo#dkx+V8ZgGh!DW5HK5m``}H-EN~S6x(DUR_;M zC|RniD+}gVsH%#};q!Bt$9U07OyHZLeatkMc`j95<0L0cjSm+H2^#l z{RX~_5R6zwO-VjiU0hmNKC2*?yOJ)!$rLS_afB8bL|7k+@w&nh4~-+nSzW=d2PFiP z{GupGjgjrb%4X%muc3Q>d4VXdY*swfL?`lh#4_1GM~Sl9uEv+u)D_V~y;e#li7`gP zF++_b(LLhGL^<$CJZAiniLPPDkwhcCV>EK4ia|-@Vr-IdoFPgk#~rC8gEpjTC<;oE zNkCOaVZMPiw+P|_)m|h0MM~B~p_~%vMB!)@T7@v<3sF#q2h8jWFgX%~yhO4~%M0dX zra-Yz`+*~If$pgyRr{8%aJFO=I&de7O{J(O982G3=N1&uta4U4-5Dt+0aL!h+2xgs zqKX+@Pn2fmA~r@eHVN*4h7J_zpK@MnDmjbhf7SDO-l5H!UsRYsx1v1K3!}ECen(-a zAUkT>Xe-aJsK8XFD!Xh!wjM}y0XlPK;We1(nOafpVCQ^a zl-!C6J&%u?$(>q(sdsx=V95AF@?`*((lI4Cgy6#b*~Re%&aSS=K8#iomNvC2s)iIE z0u1T4ze&|}fXb$omtJ$lXR2&V zm&)9NV)P?uR9z?sW?4d2TbZkJODnQ-OJ+yQgobwh5!W}d`inBlGOFj7mC;&JjKnf| zK}jyA+agi-6%HGck=mLTFxgngRTk%SU**A*`eZ~c9hEq1{9K~@#b=ORktSKD*GjaY zd_FC+b@vu!v2xi3^DDE-@o6;~V;3q@GQvcMXUxs7&dw77FixSwLfS?P6s;DmMx2}l zh3ybe^)YcWT0k6GRGW6N6<1W3R~=GNNp9ur!t9E<)!CKRW;))MwWFM7c#et{1~^QM zmF6zYuFPMMorhU^CCw+?eNwg>F;`bEY#(#k{L*Z6!SchmF>$ub8HiDbHoetxXfsyl zQ^(1j4S&S4CuZc3)tZ-I46Z6SCwDSwK!&1DMSxk_RTq|;ZXx=nlaD8_Ql4Xh6Ya@z z*(2FyPmD~Q9Wo-Q@PG*B;6!P1jxYFKDUMvx8c{Hzpe3hm0xPENC&%&-V$JT(+``Dh zEsA6VEw7|SV#EPu21;I#TQXnxXS8sh_*Y@_Qkomh-v$G1UPa0fJY}=0=I2%AR~F|L z7NAnjC00B>y)2b6+^qXbi)k~bP>c&AGbVW2YEJVo1A*kIT%U-YbYz#-Fpj2Sku?^L ztiPyX#KhkWvCerD54*GrM&>bdz1+&m+(lKiU#eq}-mcCg~RmMB0(Fv(pY(!?WZvU05G;{Bo#xXbx z8y(nk%${FW7!59*mOsC$y1W#FU1V1>%0f+nj>kJCVnHI7fy9lCK;0I&HPtrh+6~YX zqApAVU8}?hX#_c!7STkf14MCc$n0WFg$fGvtUl6R+&r|C8r3A4imljkj3tK_!Axz* zz_N>%WzMb`EhT1Q7EQ`8FVzbYELW#d0Alx}X_Wc!>I&Y&Dohc!eO=6QwnJIVdU#bMob6JyojyQ9 z+v@}o-uCHwXg8RJNk!Y^THJ+&9BvP_x^VE}IbMF-#zS;-LWsE9p1pq*A9u*<<*$>x61-i)^^C9-+l{3 zSq~?-y8T|}U~Pw7b{tIW4{r;|cCxoae$;&q-8&#V%GwUOQTI8l+$d{1IfYZeB#E=wz(*((o+xTdk7M7ZHhRO^sb0&n~Pt2 z(R^ly1zWP!#WV)lH%)T!@*_oDdM(JX7=-q-42`w;0@@rfYIRiEnqc4lnTW~QPctBrFO2;JN@vaywSe^#uZZhNi4or-Y zs%(0zGZrq0Bclq+(u)95ZrYi}^A2o*(QvF^8Pz+a^zMcn5AAlNDyqVsB_60&M&5Zd z@6W-o)s^Lo6un`H7YmEbyJcW2;uPF!$>ufENSXR20`ned38m9JXVvBWE)cbmE;;%# zDBfH=L3 z?@rYn3Z4`R2Qdt>@2t34V1%k-+61aBFNd~{Nv4~(tg!l;^2)ik-$rIqZa(c5^yZ6m zPuR_-yGCJ&ej(V|v*U8+mzR{_S&7{1b@OS1#CZZ`-g1u>zkN}F9FU&aL|(8qGX;Jbbb$$yQP(%`P3t~r-Wx-H?uaGDdHEx&%14e-B?Tv7 zK{J2h3Aq%~#*8NPM3r5rUz5+y&ZAv+dbtxX$Vcw!*9V#+<>;QT6agkrJ2!J;_DLg8 zJe7YJ;Z^4M4MftNq3Qoa{iDCD6iqjIZEnJ?EF&+L_Nf2+_kR}nKMSeC#f1kLpYFo%VSJ_w-@tf|3*X9kkqZwqUg5&` zGQQA-t4oa?0xmq6@eOOt4`8jGE#2h8_pLNP1l{VwLr)ugy9-~(c-VzEFuvP`Z(w|{ z3vXh4p9|m2xLWJfe=FljE_^%V$u2z1cpn$On{l5D-^X~m3r~8+*dfD(_hEdj3r}a< z@4_<}pW?#DGCtjf`x&3V(!k051cH#Fh zzT1VbV|=d*-@y1j7v99UTIclt&5S3x@a>G}JY@Ji2n$b{P^{1bbP-y`t*gq)DTR|z@m1dg9FM~()8 zV}ro?C&@akN#Oj+R*i2K_(>5d_#T76`BR)ab-TdF3jVOb*9u&PjMcqpmpKAY61a&l zCNWvy{3!sP&`03>Nm7mb1kOK=*Lb?X#|b-U2>er1r2c=bz|F{F68!?7D&$NNIDaZu zXP7SV93w*iKU3iA1)d{t{sf9nEfP2;9+9I$;P})*x<1pi21#o+)I{W{6*xX27CG(__*oHD zsgS@Y3VfZw`IB@ywL#z$ggzStexbmd1kRr})p9lq+b(I&HVWUypF(dolv&Pq^sReFDE&@T>Z${~s;zB!Tmv6w#^40>`IrB1a#AR}1_2 z1im%GtyH?e9~XFr!1)tEI(4kT@d=a2;TQNh5ftk=fuAez=>lIQ^qeVh{sg7Yl_T&z zLQavuuNQcQ!0k6SD0!j4@oBxt5fJ#3LZ9UV|02STzh^A)=LLR`z#kKGLIQtT@UIg% zK5Y^?8U%iakh4MHX9>JX;EzS5;O_?se2c)h3LKvbiyYep-amrkyV?TBCrcy8Zh>DZ z^w}$Le}o(HU*M$zSF57_FXwMb0{=zuCkwn*l-oz({K*=f%O`ODB(lcS1%AJflOb@Q zD0i&DXA9gf@P7$>ioo9x_;i84DDasA=TFDz)Et4Q3jQL2R|~vC;MWR#p}^OP`UV7^ zCis^N{2GDR3Vgo6?-BSqfrkWsjVO1W!1+^JI#+|h9};pl2>hVHn*`2(f=8!r7C3(b zRO4F(K1j&fF7V3)9u_!%>PM&U7WiPnzgOV&_nYmpPvA`gSF5A`|Ab}6HA&#d2|QWg z_M1SI+(+Oc!S54zK;Y>DA0qG!fo~CdjurS&!S5G1w)`T;6oFqIL6w>=aQ@V%PMs-m z{?jBH&k^{0LQavuw+p;N;JXCAP~Z;17kIM3M+v--z%vBy6Zn4wo-Xi^utSExX9|3* zz?*~|zrarv_!NQPFYxICe_P-)1-?+=IRd{^=u;%{og#6tC-!J(03j9=o?-TeYAxH84Hu-;=z>@@ig20mnzDCIJBk*$szfa(& z3I23}pDyqWfxjx`j1_pf;P(ssp8}sE@G}HHUEm{y{FwqDC-`#&{*vG?5_m6xR|xz< zA!nh$FBkj)f%g;ma)F;I@)^8|eo z=o&$f0bMWX(?K^2`Yg~bg3bi(^+wA-2XvaC&jXz)=-+|P6Lc2n8bMzIx?a$igKie| z)u3Ahod?>R5G{We=rlpk0i7x6GSGQ~t^{2p=mntb1$`~(Wsx<=3+fUXzx$Do@9 z{R!w6LAQYRc8Zq&Ip{P&e+fEM&|ibj6ZChWYXtox=z2l_47yp+zk+TNw08o^Pl}e` z5p(9MD#0J=rcX`sDFM9UunI!(~SKxYbiB&4NA)bc>)fL3=w#%RdKnnxM}Eohj(wfzA_j7U&v5Ujn*b(3gX5 z7WCDiTLhg4+S?^s{w&aGf}R69Q_y9g^8{T9x<=3oK-UZUTF}jcz8-W-gl_0j1KQiw zmfz6hX3%MZz6Erqpl=7AC+Iss*9iJ<(Dj184|KDj{|vfC(Dk6b-J<2M0i7o3^`J8a z{W$16LH`wWji8?eT`%b8K{pHfCD1K`ZU*h`9xeYh&}o8x19YaK-v*s0=xv~D1pNW% zdO?2-x>?YlfNl|V3uy0=(eghBohIlnL1zm3YtVUu{tk4Fpnn8iFX*2^Hw*e#&@F=Y zW}^J$X!#vMrwO_<=uAO(2c0MAo}g<4-3xTRppOCFEa(BCTLhg3+S?;q{t(b(T(*%7B=uAQ14mwZJcYv-D^xdHA1$`grW+tL3@vmmcIscnxNN% z&J^_Hpz{R%SI{+rein4Spq~fbEa;a&w+Ol!w6|BZ{MSII3HlAtnSy>Bbe^EMfvyqs z2cYW({W0ifL4N|eMbIsvy}hI5e-1iL&|iYi6!h1i^921J=o&%)2)bU-KZ9--^sk^> z1nr%O^7}-~?+7|g(49eN3c5S!JVEyaT_fmTpz8&F4CrP-4*=aF=rqvYzR~iBfKC(i zFwmKT9tk>6&?kYe5%d_)^@2VfbhDt(0^K6$OwitAqUE0hI!(~$fzA~4??C4XItz4- zpf3SkFX+obHyb+ORkiB<$*q3;36#`d5B9d}w53?1A*~@blpa(#Q~Rr6s#0%`AFIB7 zM5!4_uT6b=a_a=-^QnO!P(E72#pFYt)cq6hOx-`>R-AWk0)GwiX6~8XnumKo@=`vV z|G?sx^t$o;E~*uO%B3NvzUVZ+N1dYed~tGX0C`9+b>+m?SN9)W`N6@1D}5@El~bR7 z+V@@jtp^r2>$Rrl_m9RScYkXx{ygo+2M_jU{c2NpPHtU#@Zi&Sjp|e5KcF@0yUb&C z`Ty~HFyZ8Pr40{G^t>CoRJGQvRgLu*sMb}hRO9NYs`cT?s&&opRpZ(lRb!~?oYv5I z)f!rLa!|oup)+v*GT)zy`_K6PWZX|2ZFolEKA-Q0UTm#!Sz5u=Q6M`OpU|UOqXFag2Rs?eT!%NGqCTC?TCRvx_Uxh zeO121;AaWm_4UbttbhLs{nq*$!9VXW=p%Kw4+GQ{O?l!iRU*C z9IWP@+ZKP=@V9{fRpRe`82thrw0_2p|{X+$kf_VSU)H9S6#50T9)TX3h3)dlCx+Oa5);UtQUw=W~ zGhBHCorCqjY~KHYCt}m4Xx?uq@5!#bs!OmQn9cjS%p2$uDK|`cPj%%DBQG$U_d}UC zr)wndyTG;Igt`Xn(T^N1CWE*`9(s)`p*$N zA4XqUeW}0ovxKA8{~P(olYaTbV|C+xpv%U+v+UufY~qPmHp`sp7VQ} zl0o;=F+$rGHh*2q=x1d3dpK;Kq}!uka2?u&Vs>~c{B)4NHB4jmP+V!89*!%G(W7w1 z_)IY;d=##TRpBFXML!N>en$N?+zD62gm8jtU5mJ~2J!IW-@|_W{H?17`ddk-x_nAc zTAxaGq;dTP6Ej2bX|e(SqEK)c^ul{uDWuau*h}(}?`ytr&q!bY0J3O~Fq&*4WHv>3 zj|$eIoD`(fypPJv^}@F>&!{gyrxpDXb63wB7@NQKBhT-^w-L`P>>LvFs36V%>|AQ& zK-G9I>5pq@U^M1yy_!;jKO?OJ&K#7X5EsyQTK@x?J5d+S6F54e`&uo>-)QHm2NwTL z&v`>++avw0A=sSqc>DuR8#WysX+zZ^khRj5vqP8D=t)vNbh)5)oPrF*jBlHcMV~^< zQc2Kvw3?URPtDLioID`to0+pA7q6%KHv4W>n1gE_Rj){Vq;jq!J&}JD>f!Ah*hX_O zqN#kkJ_-CE+@Dm)nYWC23Mg-%Xx`k`DNJ5pe@D50XC9glcu$Vz{fzMgkeO=p zHaYV?&pZ@Qq(8sU_}9pb_lr}=CLZ)R-Jg8NQokLh=L?+zS&x91aBpCs?$@-2(0onD z>iC`M4`gkHeA|~1L#S_GXld%(#2<+ZVJ%;erwaWw2>BH24lI6IuYu|Q|Hn0~)%(EW zdb1aBk>`>BUEzJ?r~HIRTIVJ{@(Zmu%V7(OwRYY3jY8}TY{NJd`~~xijf+*|#v5>6 z#IdyLWQ>yu!8F(uzoTwU&G2vVWT*|H8xn%41EXuq9N17{ZKam@?^KEEU0OR^x)pMd zK^eY-i{88BvqkUqQoYunf~!sc3F&=EhhG=HmjXORrL6zHC7Q1GEO}3LRY5fl=l)6W z5q&V<_a^DA@%@?asUNO?FLVXgpIDa%^t{qzd?f61i~+sKm#F@2i~*m(A9XxK{X-X- z@gNm*Naeo?gJWdB1lf51D#gDO zy59-ecS1JJRRYJsCPwzA_Q(z&7bANuWN)Kb;XzxhggsaK8z-P$I96y|ua6@;%xxF7 z$DdwU6N5sZR$5~FjQu{pAC_{JZzZt%m_dfjl*1dLIc7^5a)jGBZoiuR&E(c|!e#n0<;EJu!4 z*gvK5Du>4Nrc=3nP7N-jaK>_YgXz_BI_dIEuM z({T^~IWYu#)B)4^!IwrnT}&MCB_Iy4+P$dr5aaZ-Mbp=GC%dj$(T=Iy}a=PGk)^?4P`mU z=24If-L|^MW=+!^4(ms~KBIU{?dc8cc)XS4@m8hI(D69$q(Ig*YB#K<$tG>`=NSGP z@cW5>l!>LZrx;g$$ne*Le>CwQbr|_-oYtoq{OQCGdmmCCzu|8Ie}C|k&2EJKLsJ8d zH0P;9ec%gNclsOQUl$JSinVDsy*AyN+JtukW7nozRbX7C-9Cg5@S0|;YKr3T0-qJ9 zoO;xc;wIU>j$_ZJPVg_%ClPZmp%cyBC0-9*;jg!N{do=O;FX~5qcjFZ}FT!~#&TQ_>K0VKj>C59#hSf)*p1ju*(J!Vihm0I| zU-pj2^9yP-cVBk%b6-va|M|r4?#pg|?#r3rpFsTXzU=1bzMKdCQ;6T)m)-o_mutX( zJow3e&r^HC_hi2z+t|LGl*0Q=wRorXFnxLF{|>HPWqnTcbj#ZyY%r;f4tQA7=FJugW^2aeJM%>dWO*E$B^tx(SNvqLI2YR?(xjqMC0Z~$eXSE zdzTRWq)R;BA3XEwoV-(sw+>}S^1{CkrI%;_L7KDZ`JRqPREK!+NZ>K?2)?Y#aOKnS zNaV9|DzZ1BR5Tu45RFFx*gc-Sn0R!BGalW7F)swHJ@IHZ%Ahd;zqg?=d9MnqNIc3x zT4byiaq4od7sn9zV7xeWA$THj3i4xY?~YSkZ;Dfy$gATNFtkCB5Xz{-y^T}1?ruk% z@^K7t#i`+>J7QjRzQg;y*ypXo{Gy)rebH~J57Ah-3G*}RmzVu;a3$87!zfLUOT@$D zP&Q&G=4CT#yVqWvR% zkNKb350CCu*Y!sH9L4dosk@oO`V$>5e~mMxF^_SQR^#+II4FaO^`EvwNVFuZZ(mUh-#}2ZTGAxvJvl>%@Cil-Jrx&xy#6H0MDb z^|KPv1M=eXz{jIF`Zf7Kp8Yg>yKXvW!V*tEeD`gt$#3jPzC!aQmdW)<3a&!mlJyuv zx&b@N#;}|tBDNXDdVAqB)<$GEya%zq7CxwLqs;Sis^=i^H{ji)c($*@T5#j=Xg^aS zJcGxY&9*}dmqmK(`H-=N_6SPM1V245qPecyR`^QZ z)DU#R^T9@n9r&HNU86PD0YjcHI-O*Y|6y)VywtvbN#ypWXZgUa{yV>q*xIxc$1>Z- zb+kUUZAfW{YD4Z5R1a-qe^>Hxz5h;j{yWO@A=Xj<C0OZM5lV*O%yi6vcG2*Y4;q91|6uW7~SJw|OD^zZ8c=J4O0H?}v_2{nbS}zK{*U zyW9FpPWNCv%CqwBjwwI7h9%&|R+s6=-T3xbZ<4;7d=yPe(D-U{^_+#GRJFxi0$TLxjKO3^M9*9$2pY{*rur6A&bWN zL&^!8cFOD)$U1}MfFEOo(bweFGIamqai|Ws?rY#9*&(t4?k$d=e5UAn6Cdi`)_9>~ zR$KKA#jkH3_C|Zy`ciwrR#e|tzH6htZaG|EFWyZ%NNquNq_)9T*PCJp-Ru1>+*A8; zJ*bW`^+jGseUV?*_uxeJF1`B@?xbT~D`-7Ga^R@PZ^F^eq(_+JKqT*trmTaQZ`tzb zJ&aChk1)o4iiu%LqnLp*DUI$)mgnHX8N_q&Mx&o2P6>a^HS@r2>5!?sfo-$M?v&29 zvFV8M+6O2;Uj-hDN5rH10j^X&m23I2;7TFi?@akLpI^6wjql(!G}bTV*VHD|Hsh80 z?~T7=eS|zT4q3m97jLz{v92V8)&|thlo$HaJmEBot0bFf+ke#i3*L*t_Mc<1H#DEF z6Lcf_kXik0w9cgCW?I8RF4ZSi)>MlbS;W^g&tgUoT{q~8G;h+T`!FZDALHzsZPkEDPGaLMYzYfjQ4(xt+-uuT-I?F@mR-S8<$1A4q%>cV>J1e614U| z*zRN08ENyj96)<;oX1$?$QO>2Zwu%1*fi+)3ow$Q{SLMnLjHtyqBiP7u?6*vS04|> zY2+inSW5DSLI!9(&yQ38I;4|dcc->so$Dy(VqDQ_usii}ha8b+;*s6^a*a3CHq-~8 zcR95I`7ikzwE=Xo{g3>D{9Ly+`6rEupsB88Yi)bN*?+X{nbx*P8H?G5U8%qRhJ2-* zFNb4K0@amdL&vDE@w{fBUT1Fg;JINA?eD7;$ND7;eFE*>;M#N7G;D0vMR*SdZDjT; z{VABoV6SqZnN#^OpP67}Y*paH*xtzbq)eL6L}fych(2MbJ|iK^IiHDbAF783&n)BB zXTV|VLv2azGXZ`^`Mv%TT8_tew2_DRv1rYhcLc_NYJarTA^F3GzXtrHz_0Mm)~>zm zH}DtAOTMXf#rs-kK|gvXDBp$Y0gTory00M5Bgk*+7RIevUHto5v4Q0KOP=_9}Uf}sB$t0i4>8iX>>9CcxPsGOpMoz@X@ctb6SWC}9Rz1Z`%rQuh zm0X7jSZkrpBYn@yeb3|X6C_=EZvemTsM&T5=}4`eiK{!8$6flP0#trzpy5S-a4izvnD1RYufTC_|P`UCw_%@Gv2ZH0dH`N zy>Ida|8DOCp5SZtUU`F~$o7=C$s61N9P$qxv#dY3e9wct6ti@G_*UJ(DLU@MUXkav z%fLgwm4aUe;g`H87&{-ZGH6V!!+1%4q5Ew(zAv_X6Qj4&7dZw+e9=GB8SmH^oBLw^ zk3MY2p*Hz**muGIJ@HdpIpV2Hev{$%9uvs=g7`l(zPN zy%Jo>_fCckbMFmi*n9Zi3HBboH_YC{_lDYg_+Bm9g5<#W`T{?!@7eZu`CcCE$i7!g z@AT39N5OZb@9hFl^jTkYzeC4Ek81FQbelD}$AqcIw`yH;15MjLDB8Zkt45J;HE^7R zJoXhI_AjZv&apHOe_tIJy{Un$E7`XaU}uu4{CzQR!9F}>&^~;!v6+0VP-hh!4)5b#rSu}nVzuqfA-?4JqtdG^n zRiD4Kr#|8M_4)H}t&ji2xIWu_d?4!uSs%oe!`8>@byD2= zWR3`A{hsO*(+6Gr0n-Qbz`vO5pWxT;*)*soXCE9D+ZW>WL9Um}CZpS9lN_U)+a|~T zR+}`r>S*KANIbucXOkHIV@zBch4&Y&O%UfzTsp=Pm%fbEE!HNsUM`z_^HqEL@yT)f zaTs}B{(0zr95QlZ`tgZ){)cvr@e?4xlZHGyMV_x< zGb-;?TqE;KjMJ|A#M;rvws6_;!FJhkbX+^${#)%BFml{>tUo1?^=Ldhy7>d*cb^%=XwM9N#AA{#KjhoDx3fyG>CggSb z<)Q7N^n1I}d1A=auihWX`oy*|@0;;D1an1Kp0LT&j6Cn!JY5~{IK<}ho8JqyAkQn@ zznt?|R~aG0@0}3H+Q9tujQ8(kciQWN%~giK@h#M!_6hZPfZrC`{(6w?qUWvyg0z;l z_$ibhdFk1^PR|(-*^{I8Ji(@S<@A6v{WzPB^|Q|3(!sr{m%3*RzBvp#K-SDG^miz z?rB8I+WcRZ<>&c-lT%iITNYx0(IwSUmlT_hzG3R>Oz&#b?c65hOi#4wcAO78)Ay5p zsPmWLbNPO3p9^unarL?HA;au-+GpX>c{}Os$ua)u?r*!0&sFB3`Gmcb*!Tg9!=Crrd)V%7d#}8~8`x$F z{<9ajs}8Ytv-Nk`?cs>s>@)AE-Dpj#`z89R!oKOi5o+Gl)L(0rFOB+u?nCrm#ueZp-0K@leV~@- zD77k-rpJ@KtUy)`G!Lk!+5-V z(*@7Lbh&D9ko2PXO?K^I?HVJ`*fn!zAZrBV*}5uT&s&=6uJy2XbNTmIs4wY4wwVCi z>)+m=8v7fXa_Dhj@$3BF#D+t++jwrbe6$-qb37IAM$vOe+lD#DHtsfj1G-qfxgI?% zE!*&Y(s?-g9>oLbjeW9t9{e_8)o{_KXx|!Y8{%p529HD@jKA~V>Vju?NV^EMws&Z- zX=h-!lW#EpO1g)>Q=uf=2j5;mnb`B9aXge{o&oB2+K|@^JxFc>{D7{B{q?w3tHOiv zjgQ1(pW~gbU3kxK^{M{GRgi(cv!2>m!FO+?`XJ9pTxm~@?jL2Wl=J{i^{hi)?6q|X z!JdR^|H0MEWhU4%)sWyWl!xDu;XN`uKSMrS);uZ$H0t5>yYLYDeoMsfW`mFHnEP{fAnSJa{VDni+rW>=HcNlRGe+p8?T_m?)WNnRx9f$Lj`*kb373DK&3173 z=lEFvd>woT7H^LEtrG7$)_U-pBHiAuxN!pVSzTDS7@wm$O|bpC$;gSuH~M`i`gMLF z>pZdpV&ozD!-n5m5Xd@<`By*(Y9I1F*u(g>PX(W)x|2WRUACuU^^9XfuA|F_Km5lX zcb#LHY2P#A+GiK?{wDk2w+>E!G4-t}!uTK0K5l-0y0&LM_W$diFVm!TwI%kezQ%C9JkMSO9EMcqdK~MCgkD|8=Ito|4C~T_=L8J?|6qz z3fpB9u9wRua}Hq>)23&}wa1n1um}2xy1+o@$9TnO=RrG-Y_8zhp zx2vA4udALJhp1;HUf_2P+P=y;&q!@YT^;=&ztM8klh>ck^U(ioJ!5R+%ERl=7UVh6 z=5ek+YrXDrc>U?E3}g+aJTX4zDkEh2X&U(ZFn?^Dx$4~wixFNdwD zTzbB!(?Y`{b2f@=x7&2vzr)V-mv(dhh_B=ORy=M}{%0v2*VVCY5*r(Bd%Aq#FOcD! zle&Iiin*!&eJS2;dAOfyT!UveYmYMX8Po~uoNmTX{Np3KDU9hWA@`7R6Z1~tCk@^l zBgYdMPx2b@ewmJgHF!t%Y4Url=?}@DWBBQv+I7T_cVp;xD)fy)k{2UCZ1|hO{{Zp# z1Ap=%_;b8woCAL?_|>4mwsXk-Vop?N-aTnhVQ=susz2sVk#7TGUQ-E7*Ug7-uz|L7 zl4)8F=5F*p7v>O&OzUT%csD`6TSf2s;2A63>*u&l=6>KSoDTgxn{m(eAYF*pqXJp9 z9@6hlfldXj>x+B+ENlzsKMMK7xJSD*pnN?ZQ~n~1$FTjQ5-S0QG!;q+zQww#a6<46 zd+$pOZp6K-{oOukeWyVMBHwP%^T8yR6Mc@#?^)A2341}bPU5*Vo~Oq5zn{K{Dc?D- zar>W7|2C*L;(tvEroHjbZwmPb`1M>HKIOMQ<<6tbcQ5Jv-cFRq?XzzFCc~cw{$D5- zpf5Xo+|94dw=FZl{|)%HFZnyf{FZhD>Q3*+{ux*KzBtd}8oX|~AtSdLazBDxFY;=? zfiJ#FGEk4V&p;`4`sEt~}PidIhq|DUW+hbMuFd-O|9H&t)Wp^zZ*_ zm7jiF6@A9v+w@miAL_4~rux9wY9qD?IQwh=h#l>|MvNV?{xEfM+p*hkwPV<26SiYL z-jNyBmL1)B*pBob&av_A=;jY~GO+;sJ**wWY)56jn@W2}^sWT;7i%{a-HUMA5w;+E zy5rs(pId)ClpT|`AGz)L0`j`brFa)9*A-i8z4#_$Jb%nQHjuTQ;%_{Ebmw6^<{{6U zoQLd?5vxnAFXbf1wZR`^Y{2soey32syNz)``=hT%Tw5%RE#GMicfSc3Ig!4Zlcd|b z-WSNai|Pgbn7--G6Eb<4k!QKhvl-7Tpo@;dBx8%eap^A5^sYJ4VSnQ;N~bvlXdPc+ zcR%uL|KQ*2QCqxDeBkjE*}3Eqk@*&-|62lil%*%(PRWtBLnwk1}89 zL7CuvfZC1x4*X6vY+Uiv3VA{$)?=s(aqF7Uh_*0L)-BtMg%4*o*Va%!5Ail1}+77>!CmS?) z!f8gXzgMI`D6H#JA=jmovmFszL_0Qk{e!d|PoS5P=QHmq=5@#VpV|cdI^B=&iGrqBPHnwL%fY%7;{xr=U(IwKVin#QZY22==$_W1R2Hp8 z(f&U8h#n7sc?ygk`Zq?jmPGsYk?FLSL>nC?u?k>E`dhn8teWNY#yWK`%7Gm_%Je0i z4tsf&N9&_<5`)Kqhjde+#9*4e4<`l(+IwGzV1Ij`(;?W`-eXPF%if1O1W7+F$Ja5K zZ11ry>1OXk9fO_iJ?7n=?7gp3Fwx%UbP9UxeW+9LSGK1LcMASu?|n(ZefAzP?|=3l zvFtm0A5IE>WAA-O1XIXQsE+<4g8#92;E3So_Pz<<+qd_KPup?t>cj5167By@{hj@v zHEqRLy}|5cg7HRANLJ*#t_BN)G;4Ff$9!^Jr<k-vB)Z(7W{7zVJs!TyXQ_y%Ks3k_P@H$k+WTG$3Ye{_baHZT=jt@z>@qz45m^ zNNzpken-9oy{Eu_x__asVQr@S%0!8^xfXZH#<#mkwznU?|3R`LFLo{N$`dkq(vatE z%0sq?PtjUD3-n?A3eSPHZCrkJE9`OjwYbs6?N3XP*Hy05pJLkXIF~=^cVgDp4+v!4 zOLYQ&tUpEb`00Ba$M$RFd6M$D#~C+&*!W{J_#d`*#C%@c z5%V@_$IIGfN4AB_j#szKjw9mQ@q*uKNBkB$o+c6J$vg6q?hTn`c zHQ>L<+7W9ZZAZV;j-A?NN4AB_j$PYh$D9-5+VMd6H}-2aGOiuH_AA9c}CRb6djaT5P2et&&W@;rIEX0NrX)_QBzs@iqif`y0UUBIGgyT&<9 zQ-ALG@wV~eSX`EgV?XX-eF(mg86SNai{l_jQ#$&=lJpBSl%TQ$IgRsf8kg-`ZCh4A@jj39DRO#AA&gc zfd74hBjztOj#U@O8Li+bSa>*Y(Grfvejmq4;V51!4Y#m8b`cerTdw+p*>-{#+g=A2kxB9124AFu4_g&AIBd+R^9`ZneT5r z?!kFU>JaqT?~F?8;0u}U+Ly67_Cw}D%J}Wt=PxeO{x}H!HMWd4%$sQ}A{WPxw1lI@ z!t=+EwS=Rw-^cM(;;6Qro_en*j=lVw@Abq*-hHWezPz0J4_O?Clrrzv9q)=tQ3j5g zG8V^9$eiopn8_a-9J|1OhTw=fN9v(!E{<~zj#_`~7xc%(9_F8`X)K16hhw1$jz-ql z@8dYb_+z@C{yn2Dpuuk0S>QdHVpaKwDA#u4x0>302a zXio-?77Gu@CthgWt__YxHy_8fkd^wf_16T)Ju-3ZIyNf(4}8II*DO1av!b*)@nMT& z4`iOCOsZXH^BWxd!GFIkqYZQ2%u~fKj_0?8qs79*@iQ&qXl(Iu{K$B5jP`Ufk#>E2 zRQl3bIQlZut|4;Hly)>w=`x;Q=^+7q^G!NSAw z7tgoQu5nIGm+Rs9Fl5KouB#>=AIF|DzLx`E$ZXfXjK#4ZGQXsZ->!ZBs=;v({Eyo* z+OR%l{L$Ty-`x_977Gu@FSLRq&dp@uc>Z{C#5o`4{5uGaSQpjyDDJ7pd^qypex8k5!qH;k z;W+$1Ewtzc{O$FcLQsI(q7WVUNx#^TronU^W!x9fnP-^0UuA^3l8 z%V@)zvc?f}n`wW%B=n0gJ_;5dj=e46xL+oY-Q&j5CN+ zu{ica=D5)qx6`j@>*XaCf zn!ZHJuh1Uq{29r={vA-3{|Av*2N`+HiK0Fd`EHRn>-5lnnWO*aB5&582NdRPr9QQN zLO1KG11fUq6NGNo3vqVJrH{fdwf<%u4CU|Q3}NKzd1_#9~Zir7leK;{XwA@^m{S%bLsaAy=>`` zOaFn;V@r=+`nQE%v-GMM$^lOD~-jksJZVrB56S^7yLw}cksnE^17H!6* ze_rTjyoT~!dQSY`j6+a<{Tryn_v0dO`d5_i(mx_}({G@DUHa(>y_oD**X^jfoPCe8 zU;WKr!WU8Iq43!P@9C)DwQ;ok&AC9vA=^*DUUx3{Xq0ExXynXM{q863p*FGyvX6nS z?ix)eWThNs=W^xmj5)}meAVP*`xvwxyKnAuSpOrgu*K_RLK)dN2bq${ApV`mc1wB0 zx;IkkV!!)3sj|cGu$~iDL?Tb???P z$QS+OUzr#8<)KgfvrYdgmH(G*{^Vi*E&J2^!6W`;{VT(-t#5jMeGT$7ejV&LAH{z2 z(fB}ot8QQ1af7=%Rxej;uE+O>Zoqe%Zp6JeH(~EN_npJG^*Nk{&hq_>kiVzf4EbC8 z{^H{3oI-hi@{U+F`6Rv{8_YVdz&Q*0+%`@43wvmcyTJcd@*n8EgZlYb4Sx^#zexUl zoA4L*)cN;=|1;#r-6PIBuAhHw_y@s%4*8cGe(nn=Zh4;{b5nY)6#S==AKztaoWJ4E zUy1#H$rM-f{ja zjQ`nIFK@zMHT)gme~tXtG~u`3NbLl_j;E`e@Z&qD)V~Y-I-cIvgul4I=I;T&j;D7t z;m7?K%)cM}I-cI$gdg`8kbe;TI-cI&gg-L;!{EQ3_&nN#zrgPTV=wg8QRzzZKiz~M zeJlAp!2f0PKi80dNJUEXcY;46|I1DIYlgoI{O6JX)h7H!bDu#E_|GK&>rMFW{RjQv zKZ*SRYQkSM_a6*`|J~qM#qMk5X<$sl|Gy~$#EY$9SBz8mQ?Z5lqF`>;(viu5@){WQ|&+4OTr zf6}JmQ@PLB^s7imHvKx%pR?(IA^k<1^LlUno58Ax?~C)>P_VziZ&B@{Di?B$@Lu!X zt{A*bFZg%c%1iP699OnIkUb|$wxB}UGdqs z>%SZ93t6vRj*pUZIj&Ciw?p|tUgwjHkILr0i~gI?|I?n?PCN+tW5YiP{v*hb{M%4B zy8YL9ZnQqeasuocb5EOKg8NpoF!?*`QOdF9HpT=tF&`h3 z&fB8W%q&cNev3&L_$LV_@KKFP#BUDQF?l7dFOId7`hv_*PVDk9slu)?F~NMLmM!aj z?17(rcf6P=z27syWcWKc|HJl!xh2Q1eExztbDh6EDh-mKeuB2DF)2?lm>>_X&3vL2 zOvEk^lU1!?5*u6mw)5ffVp7z5yaG)6zZaGMJB5iII}hc3e(0gcGT^^JFhR`HnABWM zZh1EF;m}XSE)SDETfqeHzbH5Glf~o3B+~Os0VZ8Pj7o>3FyXmf`e)wfFPOVZdcePz zV1n4KF^MKRe)3wVTZoC+SiE{66xv3RQ#4Zn$Z?%F+S+BbUesb-2F;N?9Y<*0I?~O`#Wntp; zTTJplj!NGVOwgBWOv)}MU9Dguc6peb(FhatJN>u=4P_4HVq=dVQ{FpXT#8dNamn9@ z@jvbK`(vNKYVN4%0RNf7kMY`((%yW2W$r8K1pi6opXv4YK7VBRyTJc$;ct{be3>z> z2mFVC-}vlCyd!-L$Jz>WR+|E&cy_cV8GpjRIsRr+I=#PFm>S9<*y+teRFH$h^d)%+3_Iu|4ZGdWIw}DKKA%AA4u#v!T&edtlPa> zY%oE4NRK0)4gD-57FxSJOuo|qlX!|6)&7lp`S2UG`|HMw3GN(YK7PCJe+cjYv~h|v zABXX##~*EM`b_W-SWNN-i%HFVr=EH6+lHSBbqg^OyF5%j*Z`Bh#7~TFzMq^BmfN_0 zi1l4o0VW-fMWyp;qu=IzezZ~TC*VIz{G@C#iFl7qeY|;iOMYVQ@-W%96-;oSQ zK3+_4_e`drJc;{1vM}-aEhdBDUnH1B;wLU96I;PV?D8;q@#$9LiLu4^lOf2CFP`YT zZ~{N+d>ZF}bqw`lckJ=wE+G0z7x-TyKgSWV_{mhqPworrD{MRFj-TND_3BnIDbLLG zlS{^nNnuu|pA7#D_kU(#;`3Wf@;}FYn1V^wVxl&2Fc~AB49MPp`0GFpb`>xW@4wR@ z+Z>aD9PVV*vfg^%+YKhVoK(M)l*@Wdy?YJhAWyag{0@8bfz z>udbnPevchmAB0F?Zd{4bzv(P>)JHqtG~tfzlfbXKLcO&_-%~n0YAqt8jHg8WM9}V z#0`0%-Z>sb9H`SC5n8*YRqM3-Ee+o<;(JoBLO-3}S9F%uEjP>3BbR=v(D7{tEss7Y zEq|iW@y!QKFK*`0j}dyo($OcTu=nexAtldz|%sad!*-la`Kq;nMUwg#H;zN4rbY zZxecC>1CI`TIipX{9XDrLjR)VKiA3sa?sb_r1r+XiZ#=*4##uR@v{26wqEDqx{oqr z#|U@C>HU$AnZ$jbSVL3oY6jN#xQ?dRe*Q3uJ(4#S_r{oGWvyM$V$WH?DaHlI_BMW_Ju-#*l4?dCm{K6Re?qq%AoA8~rw`bIg9TVt!!P;EV zCLohpFBrqQt|nx=ypQ>SYX_ zl6tW^IrWm3!8j^uw_d#z#?V*lWiROq&H7=lQtmevBg(U{F>7fUgShlh3f-(L^{Sdn zf9**tZ`N2a7IDADc=M2@oAn0d@6!KA_o|}%{lv$FuH;?Hr5`H# z7c9N%(%VJ8Z0QB}`-ppqd?fk1^j(A=TYAld^1bQs@I;`O{kn=NtZQKwtv`8xYulzy<_1Ag}>}4G3&NU;_dh5ZHjg z1_U-B@c$wLqpRw39|f*kt3`IL(48|m;8A`{!a0XLL;mKRLwfFm`Q*zcpIkK0)azBB z!_4Hb8vY*euOmOt6rk2x z^P_3H;`|@z)SdpJ*J^aW@HhM}#Q8CPZ^*+b^tl9Mw~o$B>L{FBG9MQiV9a^UF=a3(%zEvI%$bzI zeC>~+yR3VmUFx>mGL{J*E|v=uEW>YWXuFF$Wa2n;yg1_ivn(7tHj7HTSWJM2iE-^M z_(r0aYtJ7Z_SAGsgwnRVIwjTzzrD7A#-Sa!j+CJP@m1W3wF&nq8I0UMt!qB+|C4sX^`~*iFwxJoZT&-jo3FQvc%~Zd zlXii-n5dUuXEn$-Z1;Y|>J?NdZ3w#G7O;>0aw}P(Q1^Qu)wX};?`rZU97wfMjSdY;z@U4U_ zj4y76vEMGrCLbT;j_q*%zm9S1?IO|3wda(?p0HgcV~J|EO{MYLR9KeTF8UYa``^|k z?vWUGyGZnNZCeu9R&N*XSk~y}w~MWs+2^+l-1U{!?)#TSr4{u$tM@NHzik(T;9ojM zyGX{S(Y9lbO<((Is$Im}1!L1+gZ>}4i%76?v3?SHjVXczNAZ_qB%_VQgVu~*xcVC7=HQG#`5 ze*uh_XJY)XpXhdxF4M)>Z5P1IS{G#VRGUh_IMvTj7GwE_OY!#hdTc3c= z4dy~%>+YGhR>x~A?!LnhRDwe8fvwlQJ=?g67-ehfIKnSE~GIF!fzV43z6@%~b;vw95h`E3m7 z0RL&^Zx{pgyHw`9&34ec9s}?$m73R47&C4S`hOe)60BUTCns1-46s;ZT+TZZfy??_ z+-7jby=d51t@o-?pOFX06$jSmRlC8tX7E;#xu>juVpQ4!xTz`8y2p?w@8hGLjMIJG zE6qB_z4*ij&t~Ppm*YK0;CTc5ny&Wd85BJSM%~siAH<>KAmh(*DeOD_w8c`DRpoq1 z$EtFkq-(0OQqqN7g{WV>2OhLbL5mNE4(*te5Wea@mDS+m-fPtJ zx+3#S-7TE<7vi%C{RMp5UvL-khsh5;=pWiI@GQr7UEZ|}Uw94AJxu*Rrd}UjJ@3K1 znIHP!g{aT|#fM-%mEUd8J#rxD6Jf)Tz%#n)zMJ6#m1^6`KO0?@(ca1vGV6QmP`AeQ zT{ZdSq`ldD?*=!IO8cO`RC}~;J?eX`_I4P`<2-U6eA3?L(MI6cgWs%n^_aAoqN?w@u?Rn0DIcmeMJkh03wuE;H`YrJKZCuiC&WtI1LFx;_OS-{%y!`LgUYVT^q+{pW+EU7PbfK%3|nv}&DoWq?I+ONF6U<<}= zJMLGee`*{XVv|o28{z}>dr!yqxc{Ge26lP;HN)Qt{>9+eI^kZ&e#kK{DD=U9zTdPv zh5nP{!y90qr(+lo#6B+`ynwtKwNZ@??jy*;=1ItUBq^!a`tGL$cye3E*v+IvCqjp(yeHm2HpD5LD%ppZEwCG#P{1$90Nda=))#<32@ zto8YU9O6NJe7#Wf6-O={w3tHn4W?7$;~egYB;F;1aoSd5oY<=CPH^%traq=^jrk5R zl&fZAOnsyr)Iawpux%yfdVMF}wKmmtm0*m!5jj5W*#qDIvv?(Vl=BWA&kGLlGsZjZ zX9ZQcgE-OWfX{%WV^#UKq-&~jtE3T&Zn7A1Y~$dMI{ zy_2yr?f`g#<#VhDJ{jxv;hAoe1%19hiR-I$KG<`B*u^pZa{KowIkR_wxGdy8f-2e= z(hDB2zo(h^I#q0|Y(_jmQ&C%GS}VAT-MDKY-A0bHWy`yjGfp)74Tf^%Y|IXWY$MD9 z->sT_a=5=h<5HYq;`~&c{}+GcJl2kCWzoDdVeZS5!P$HLJ_MQLtql8sAKw?~68etV z;bAZvc8u9Knss&f&B9E-nLKU`Og=sa+&{71m>76676a~|m?JXy&H>|U9XC$~cMcG@ zLC8#@jJ>bPzMBGPkH2d8hr$0A{7cst?j4Xm_z~dE`_PKWOTWj!k8v+B-^ClpP{Glw zgC8P4w+`+$@Art+vYxY=?U>&;+D6Z-z%M&8>tuE43r<_sZ3$J1%HaDBPQUNthx>qtMF(U~70iJj?$aB&y^1_g=P~ZtW*&Vw zf32YZ4C=iY&leX*ogEyNwi`2fIB*t!&>C5XO>y_*JGV0C6)#T&*avtyT zn-Ev<>-G3_jIDVx)|WdVqbLJEXk5l@U3Z)-_^aR-%})GyE$ffv7TffA{oF8SX2fcX zhll025-ery&VK(a6(<-YSckdtwwah-(+pGgx#{>&HTeXXVh-U);%k0<@MQ#3$lOL5 z_+-N}a9wW>=@QFXx*Uc{1I1U*og1IXdhP7)O(ngexbOjp6?z~aXpWTu#@+#oXU3w@bVjY zG4I&GUH%2$<8S*EHO1tWMaOq}M(}ML{l3TFJo3^`&{@trFXR@ng{UEslJae3&QSf%OLCYry})spi-|M{JP=45d3YlQ}DxY9?zh|K>7}y3b0Z0)G@GWWnnhH z!+0IOS4jUuoZn6Bq(*K^0tU8`~ zEwI?5&A}FpXLTck=fkWkJhONXsG5rx$5Wb)cV1n7VV;BM@u&}@SN&d?<5GGRCqggW zufja|t~|o}!?=H(F=Eyr0e-C+E04X z>W%N5rRl_zxIT`2w0_X#3Cg6#Ou2uVx}9u&VUV_R4Ujkk(?N?d)71UGzZ(93^ZDxR zZ%p3Ha#2T#U6HF-H|-)_?5eu-?}|LI)VO2sNZPJjgdU6CF1=6aHA|0O`c#}X_v3V82V{~1R#E2*Ft+xa1Be<7Jw}Ysyat<*-S%`5# z+#t?1`|Z%Jm_OS(Vu{Y*iv>F~pL#49;C)DGtQL_DTaOT1sRL|1!n5@y>jz)pbKE_p zlqyLZE_1yQdAx(VpdII`#pFAKTBqUy#x>_VgTIFDl%akYr}n1i3OT0Je{-&o@;TE7 z4k)j$U4imUU;B_9AJ@NW%Xu5UmW%eU^Qh_mZ@}C+S)adIggm4?Ri8&o%BPOR+rEnp zRW($*r|5T4f~0S zGv}BvH*5A)@H`u+I_44$pz6<3VAE%4*Cbam}>W z)_&{gJ^DRhiSXuBZi<#Sd$JqH2C>t_XqN<|2Jd@ssl9btAn|5`9!tjvD9I#xK3 z!|_}m`#koOcF6ZVjC;zsOHQ{{-2J&=s#*t-b-Tn|h)V;o8I)m%P>HuPKYY1|P%>|MOtS7X?&`*~p0)K3LJuMVDM z-ftE69$h8xLS}C6^<#3ka9q}hc+-z~r|SUU`!u$=ZT!c`!z+J={H@oL?6{-e#!WuH zzjoqG)pLw#HinJKUohXb?*c#L8^<-;zws;ny`28d=k#y;oc=uv{>{HXKS_O+^`Px3 zFR5IQGFd;w_ocR3@cEgy7GW27mWaIedFE;3#yxkV?4$4vv%}Sz-C2(r<#B(`kr-RX zhevDr;5*QP??Zbp_#*DE)O&cm=jY^B-bdeIUhG@&D>hNK8|NQ^sUFwyd5-&$M5i%i z`cO94Z4OeoOBSN+G3BwJNbhfgJ$*>WM-|r`sMJ}9-|(#Jdg=lSq_)Dv}k{g{Jp8C@mwa2az)5=&~?emu3AAETYJ z-6wuo)O#$0Ski^LvK{D`jH~wC*mz^fw;9*MSfa;T3TMCIt4q?c|u3x-MgbogdF{gMOYLG>#=T zuMWy~yns0)j$eXU;`2)^0slSZ&uBxn=9!3rM*7xM|^V zn5TOGe~A06I_|wH2JZ0VEZm>CYwVaKHcHHqziD%U--!{tJlt~)aOeAhtZS_`F{jtA z=?A#~3A#y{RtFb%H|F%_i!0a%_a?a8@yqa{s5F&0vTfV(i}J=VeW~#Z<5(f}H{(Dr zaCE>w2OyN<8H9rE6jWweZXXvjIXKJp$9W8$+ z*w?JDdf4|f-zISeb)fam#Rf0m-z&{ec{AL7 zf5+bTLWaK&F2nb~h-1p%$J@s~178$>FT3M)`1_8*c)cCEr~23t>ZNerG(E0Y@cVzR zv3hyq^@kwevhNFiUOl|byqoyG9j_yH?X9u%>tG%7sJU&=jXA#WmrXuN%(1@Tk8@pr z0)~O_`~24T2f_a``Tqmozp6d$`#X&p>yLqL|FQ22ULNLOK%V3B{Wu%<^P1uA`@Y&I z)A#%Lib@sYnDYGycd@76RZmI9cE&N(ck=GaSiE`4_Z4Ub9piUO;&&16r-wpcd*%jy zzH>rT@bQB{WBKX#(Idv=--3~c^-|{Bs(+UaKE8i%)eL9fzj1DY_WS1$0sjK>{|D{i*|t=BC}+RF_Wo$>wlMB8VUx{|@63pg zw848{MtSrH=FKq(+abP#w*>F4Q>0DmcjpXyo4iA!zpKAPp3uOqnj6=`{!M(w^Seut zXV}Iw=0foPvU;hE4foBAub)O z{9LtTKGtY-I*+vKJ#Bt*PI-P|`|^BM?3$0ci+jiI2dKL}t?yxe;9iA%wLcV>WzM1e z>CUlz(8DOKtAfSXtE&#DuH=2czV}(L;jh*6h8TBe*U^k-b>zq5@_v~yqVw%hX=h@N zIb^5J`}|Tz;O`(mW4E1G>}ISsv0Ue&Qh#%9`c}j<8K(ei6RUBaU(ORSRzDA%*TUwB z7?V?m`P~B>^>_o%n_?|Ed077x`NnHGKPdCq250?FZ{KrR|2dpP;jbTy?}WTpw%Zo` zScx+xIzKc2pS)N0zZ3KS>>JQ`xj1|L7Ux0mKSX}ypW{3leq|m_zt8hI=LYR_#3(a2 zh`&FZPsP?M{2FEYv2JhiYb&qk2AQXw8)V(;xj8<=nu3Qx=<9-?hyNKUryiH24(e+O z3h^#i+rPqJAN%7B_Cww~z5ZLj)2Do#^7-NcIv>U%onP6^r3@a4`@e`K_%)WsSM@rA zj@x{mv5uhgP`e~^f3N+}#sVv!UPF-f0L+fo{V)H^@VEW`is=a4Hv7C8!y3LhRYP@TBH5@wu$z~y(aswUK;Ix{jzBP8$|E7JT{dM_r7IlRJ7STGb2hIoa*T?@2*sEpSIhDi)#$NGd%IDRAnfP}ejr~8w zKQ%9&$zRw-k1M*szY+N}`dQVkp5i>R;vDpcb1U_Jl?=W{{js*ST(8$pNWCH-Jtxhz zA?C@pa8Y|j@1@}{_lVrzR>2w9k=lf4v-niBi)r{h1AG}e=rt-n_vY{?U=F|kU{zU- zbF}65;w{B?bxXPZApBy@0?%K@7^ELqz0@{AuU&lwaZtt|zJ4|9Q@}&dIm_Q{AG9+k zb?f<9H*99R)co*?z7?} z1CXt`?T=%FdVEazIP=L@O+G&M`S(Yq$I;fb&)T_9j~e@^_{`g_f7 zf6f?7V<#AR*xiRZV(c2z*J5L{->=;PIj_vdZ65ccsEl|!d}dS{V(e%8M4Q*Y*stT| z9oi#$dG=fiy%@*pV@9v-;GPlc;oEcJcn3J6I?9D4rrm&Hg>4MCQ zR)%vHhlILhv|nq7hrzXwb=z;^b7n0TdleI(GvEFTeD2F(`7RcyQ+F)r*=4a9oPqoQ zXczd|9vv)do{Ys}7&70WOfY`*_;Ck>-miwePrc;FenyEE3h^nA{Q1jvz+Y7~{JgLF zbKuv{aKFWB$n~Qv@#!OByTZA<<@imv5$<)#%(pPb=z;T%XCvSA*`X7d2lB4sm-({| z;C;%p1&nnC!_0gmlW!ODJSN7I7fboHdN!8h5EZSeMSF`vdp_1>X~II z&sR2sUdC4*ui>cd&-uzym3;ib1g?`}Jtme9PWc{WG_fyZM z&7R+|?7S~y{iYu>n^Gp_H<|ous;;j=@N@jacG^%U+&Mu%8wUU18Lv|Fo0<7XhM#w4 z{~rA0QPruH>mlc#Q~Mt9qOV}d<}c%*D?>-vYq&v-e(VA z!!O^*8|GUx`F0`Sd##N#)A{gh8}q?l?S}c3H`V&}BcI!t59<$c{!HW*!*{mlJ_$KP zlInkww&m9??i|qTL)b@l1@qJG2YC|HvU|q=WZDlpZPjfJe$Yk##`xhSdAF%eOU`Q^ z1Ae`K9Qy3Xyi?~$UgDV|JlD2j&!R3bnx4oW0$J4-ty`kYH0`+|F4m6x*0}!@W#u7@ zIkOV=J(_ty*E{jsG)DOND05Fh7xF#I;-dS|951G5lR?8Z&Gg z_hQBb@zuC)CFZ0z@y8;xm+pd_JKN3@oF`W{zbTIx=n~ zvN-E2vb5{(lx6HHZl2h+Idz8&+va?x(O&dfJIvd{j}do)A=<1PUpzY^bFTpJ-RAg( zWv!(ykQ+;vr-?P`i0N7thjx}elcjaTeFo?UoHJP$(mvSvFv_hpi)9jfyjZpldAPC6j+Oad zW@8t}%G4oOHkkYI>ptY+mG8zc=;+j4)vr4fi}JhS{%>Li{vdw&GB$p7K;|itK}`8H zF@fHCZx-5JQulGaZWZ>dd{y(I9K?&qS-;?w`sO>@nKmD(yFPn&5&QB}NP~~=%(e!< zNXjV8PW*>utkQfa1AhG;rh((;lyTyeD|5EyGkV=bz1U~LKd-mxe*UsuAkPDBp5)Q^ zQb*EY)0LL*>-;62(0jSo2W<&Fpd4Ic&`ul_Q|&$jM8|LH`Y?)cgI5B5eR`(DL= zaJEe8wqHLVN}P5@9$xvb|6mUT^j*n2Y$(rfhVeItbEy1P=DgyqdA#4h3%;PXj@Gq% z*!0QxCt6T>A81>n9xxV3#vr@kna-=azTmQZ@ar}@&%E2S?7S~iGctL++y5_R{P&W8-+V8M_vHSM^;;)y z`22+qJvQci!w~qXgTmb`{yWB1u$}K17it{g|I%I(fAVatntTV5?_E~!>8L+vY>GBD zCH*Yp?u$%J@GTUM=R0uU(rV^y+jm1d%SNUXGP*qzd-xQ`wOb*Nf|@_wd-v_--#PQ{ zJ7j%gNO^vB4DfK$9-QT{W+v3>Rx#Rtzd|`)7?DAVgrOjxUjQ7*n z`7#!}4#-TfGBU1w7=BEfRdt(WO!jWJm2ey~q|~;-IOKh>NAnKp@iF{tTgIHXyJ8fei?3Kwtv`8xYulzy<_1 zAn^Yp0;8+$GUt)7#@UDU+J3B+tj3(s^_bVV0sA9w#N7T(*tf^KhcTxykgM&(`IG?_ z@eFMJUc}lhZ(UL4{C9m1)C~EX^T6Jm_dve5ug)h|)$=n0s?0kMu*U~$D5JMwE^Oy$ z-5to2=W}=uD(64!8p?pG?pT?6>swbG!8H`{>3tmFc@g|tH-)p~_?z>K3TqE*bUs)^ z!5T03UaYi#=j1yW;7!(0SQfv7fnQZHbKK9~Og%7%SJnH7Vf#+7UESJ;IW*4QT?$<^ zUA0?mEFJSUq<>!MMN6+*I@Tjdzd-1brK_Dy{?iQo<3g`mI?liA@-aV3`Hxt-QWGjW zOB#Dvmr9!ZP?47Ukoh|K+s@P1>lSCi({=kni`VF?pSbsC!biL{wt-x1>ecs;pvmC zGH2HM!G99@fq!ZZA>=O_{z34+n?9@C1e9Pc951@itfe*N{Ji__1t*Ml-_Fnh2EQPu+5j50VM+0gFT$P7bfGs>Xu z6nu>9L0@mh&%{SOKYJ4REYSPjWiMoEJqR&~_~v5c7ruX0A=}Wu{JK>7oa#Ulf5gA= z-HPYgZoseSh134!%ZPtLX2{BL@9-X>E=P-QNm~;;JPiI%f`P2>WMF`E$;Q{*7<^$^ zuG_`}4D?yi00Zu`{Kl9Vcrq3P?zOy(GO*wA9p&@yrrTr(_%E_$v`O5IcXQ&}3iz|& zHfGEcEIb_dYXwJho-*jmb{a2^g#$BV)!^Ky^vyIISY;i1L|GzDxP5NQnF`CBl@|JM4Sa>*I*&N5AT+P_; z#j&i<c5ltXt3z@{qgP1al|-A+u!TsxWeF=E|>n8lpFN-=4@fF?IU1^xhtn`1h4EI1Ys$FK!7pYrE%vZ`{~IJ4QK*`w+ab{qG?! z-NWtHmT=SK@&LDM!g3q?n{6*XZo@m{{z9?I$IX|qxaF5&|9=*4K7ZBV)&c(OY#D8M zkI-1)zR7gEJtk~F88})jJRFZ}1;?^2*Ym%_#*1Uk_WufwMQcyh#WB|kj%6$B;W)7+94BVB{Y?-`Y5jftZt zV{sgW%p}33YTKGx;rQ3xVLgZbRkpTyxKv@Ad3TU;%9#7226E*|nfTn^3?FwaF_5pB ze0+TJ`$VP3P{(>7k>6f@8H-N`WY$_4*%x&Y{?_df_pHjZje!yK%_(Us#L&#cFy?&% zHfXwFTy^PZ3ticEin~P9@*fa-(b9`9{ry6ZB<8vF{}Q^5GYWTRrt^PSLN6xY{LnV4 zz1e=8{pGJ*Z*7rwRNmXkYhRle+x&i`Q8cbLgbgZ*DJ#O2<4jZ^~$Jo z^RC`=0M7rg{!q5J*9&8qy55|x`JL4R^NGnfQEK)q$oFV7_i|x>kilgi$L62VX41_b zqh3{T=|3hNI{X^H>AhaRw)XjZz2;NrG4^`BNL`TEQ^>1o$4RO8u%!Qop7l26waZ^2 z5BHru*y{z^$(il(QOJ7b&XB)3PNZ(myJpqohc-Z3+G8tZ^V=7C;1B-ICt`4n?Ik^CfVyn-~J$J zI|dXl8kE{~Tq+MsTalvNWd$H?>Igvz^Z`a}2?OvkQUTR&dio(jE8 z-O62H$-Z#sY(4yAeXd$y9S^ADMu|Tw%*~dNhgZH^$EmaR%qNfUx-y?!w2{rvoYC#X zyzxg-Uuv&t-FCz)HP6;(_TCSu>Xgc7K|7N3#^BTQ#%N1N;~Dc*IA@wZTfbE2Q{Q|4 z@@nRb@6)CB-uq|ke_~~L-r;^pqu#2LM*Z9?Y1GeMk}gcF+$rhugv$3N9Z#rySJKsq zmG4MewO4MFbYVi}W=Yp3R1UIws(4~$9qSo7t73aa`y12c_R3@O9R2CTl8z=;B)%L( z8>@ES9`oT|9UU!y+xNA4{oFKuKyV1GP4nKKS$%0`BB#?M(9zC#p4T|x}R4iAH?Ae%Wh3Fps& zg|WfM;)`MVE*3U!B2X+pBud-*4 zd0zg@7Q0k@9dNPe&~yL>`jCD^TS{}=g*hnH{GtStzo{!X=W^r zd0ED{^!)jMF%Q^r4}Sgm^E=bevggmkvSL#fzju5TZD#v&=g&hKHC^l151CHNur7*b zt%>miK0n~ijp)B^TN|=I(#tdL>9+P(zxdgh^XHJ&b=K?q*Lui$<tFqtJKlsgg>5aAvHmp(8ATa)d>!)R{I^~s1pi-w6U$fC>B-%r3i0O0utWMv zw%d=jgr~*C!}GQTPkEp8YI5yD%TThOs>hPhZC3*#ntx zQO2H6;k`7-8*`st83lU=8~m{?qYeFpwkMte-@+Ov^5B>?Lffb|^Gm_P!}0i*a5TF4 ze)-OEi!2d465q+%2G1|<*ap#tBv{-mJ zPV#Vk>)_l|qpNbajN+b2j!pX(t2O=G;7(}VFLV7|bH@zp-QJBBwE5Tjf;x5EyxXV1 zfAm?bpv`w;&Ud=O$?sD_8H;TfWZEdR*ts(%U>9%Ggdg_;Fh=x)|5ft4 zchZFU$A*6p{4bJ!Zj=0RHebge@IOs{#_rgR+57N~6J6&xpML}LxgKS&hQ9a?{2KN( z3i0Xdz?^;AXYiZZm-!giOnDvK;roRsFWr}|)_LeX4QurK5c-}zl$UEa<2J0v@?4zW zdx5H;ynFJQ*b|2 zn_BZqTlh++BQ|m8au{Q6z_q6yzxmt zZtNG9?fSMmb{xu=^;x;VxBGFP|9IAOR{Zs4q(6hq5tNxyzZZ~ zW#ln_2XC)Z=DYUH1NYY7IyJN>151mAhvi5tq z6LZ*;#=_B;kr)A)e*Ogv4E+Peydaz(wbDZumV&G7VNZq4MAjG2|ae+cu^cNlEKnCr_}Jb72ajg)c6 z@k4o^U)gWeg8yoRXL7%t_G6#FX!yIp|9`-*agXLyP!FU1C`)4BdttlUELyieekI;G z?+1RqHLJ(+sPswXn}@8tv!BL1koP0_b;j|GfvA7PK*ThTt5xNK>sTJrk*a)J(p6PC zU(za9IZx8XTxF%Cqg>@|Nmp}~vm~wZl{1-U?2p>@zL#IL;#WoM6P{nq(0K6v%5dDC z#JOmx@n>(GnTKq%_G#DEF;}>ynG3Zs`LJ)Cb2%MEpgPifhztMj#?Y^bx8 z>*@TZR&*}!l&SNou-s5*_`cRzZROy6PAD7dEaiGSzpuH@139&GrKWgyhC3hlE>muA z>iw5G>%a9FhkYd4sFuYYcxm4_IFzN%i7f1_m+R@gODj5K{xeJGg<-j&&WI&iw(9D< zMJOBUEaiGSx3!{kaapF$fBmLz`;Bo%%+osK&a*VmzYAqUouyn)=bu5gN!%F7)v|T| zX;^NEGh(yx4Oi!TLfKGfDc95amOy8>-|xpBX~sO;_YdTvT{1DhBGkdv-|hPc^0-@< zwy^Iv^DtU_t|H#|8eK=LK)llcS45a7q9OR`EB3d1^#Qu?~Y+Z{_0%)KGXyL z%fPSoEX=D=F5UMZ2iw)OXx#z$&FK5XeB*gK->xH~(x;Gb9 z_(}Si9RqM42=75=JWy7ZPhCqLfL*LApOAD-RnC=kAy+v^(&b#`Ba)7Dl@Cc8YdWd1 zOQ?U%=s%3_l^jMKSyzRLdaUqxD{WqU$n(XC8o!2Pg@Ihv_>CW1{{h`49;W8gllZ9L zKY)*}L)_n!Zu75&vSIs?ay^}Y3E8G?zPwvzn|UNG*KITG4^WR<=h)SGZ73V+EaiGS zf2$Rpu?N#&<@RCMhUJDj!{4;5n(yHJl~6X+S<3ZvzOWUYvEMOEXZm|n-$1+2vXQIv z>7i_>vy|)UTxvz<^6r^B9~_n&;*9oda9-fxyjLh2>MZ4YI&asC&V@ZPb>1Q@H`Ez% z#^CJgJSCJ3b(V5Ho!|I|-v;aJ@cP~$%pdCU5%z;+`N#i4zL|eG@euo=n2+Cg4dVM4 z6A=FxYl6PZm$7}O8sT-!R|UsLB)9*fiquqmo9vdq~oVBM(X%?Q>Al@cXrrhCkgS=~}L`M$(0R z<%g0k=PP$eI?h)HBwfo_zAfoOTjf?sm)j~gNjh$;TrcSw*0CgAXs>)z(wGmwM$&P6 z{}GlO#vb^bZZ~S76E9y2 zWka2%Tulnr&3ay^{4Yei>#+cit) zEy8kV1Ue&jYuTEs^OR6F)LF{)bbjONrfsk{SJ*dG=ifnAbQ}|B^f3l!dxxK$uX`bs z4Rw}sJ)IwIMdw?8|p0OdOH6e zvQ7GK#ODJuaegi=H`EzpO09F%)p;nC4Rw}sJ)Q4uuJZuDA(-XQ-wDeNb;j6N%N7wb7>*?Iviq6uP72WYhcUW$yGsfszXMArj9XCD^%7!{ixt`9awxYAdSWoBo zgyn`h<6T1Qj60>%Iv*CwhB`~Rp3Zx=qO-&+Pv^y9xuMQ@=P`b@*wJ}jC>!c5<$5}A z)QZmHlb+81yfSF}q0V?W(>lkl&VLGJL!G5uPv`%EY?HV#kV~*~{rT~*+)(G(>a4bR za2^b0L!G5uPv_fP(YYq|>*^eb<%T+oEcT70{rPL5Y^bxydOG*CqBGu~jZeBdpBt7N z>Rhn0RafUTL)lPgDc95a*j9AL`+SzpZx722buNp&J2*J+8_I?{OSzuT+qa@K<`=Sb z-ZCsV)H%V*)p^rUHq=?l^>qH%6)m(u%y(qz{2FANj`?eX^AZQ=mqOW4XDQdy`H5C^ z#{5f`&TGSRL!1lNud1%j-w$O&ouyn)=e|~SF6%YC;2riWVY#8s;*;g24$c>cvZ2mW zuBY>Pt>|3XI1}g7!*Z$f5ZCOJ_wHEZJfLc>&LH!sdFN$I9FiG9q{K0-qBp= z-ds)VJmAk2>=l+9>RhurM>{$=?-a_0I!n18&Reyjb3BDO2Rcs)%MEolZGS)&c5-x9 zp=_wLlnVbqH|%B zOr5_QmK)+6Tb+wLJ2>AM%7!{ixt`9Kx1w_`Tj$S(<%T+&7>hRO>inrtHq=?l^>qF~ zD>~y`PnJKwH!L^Qxu9eFfGRI@a6TfG4Rw}sJ)QS%MQ41=FiYnpVY#8sWvesxkEF+S z3qsjYXDQdyd1@;<7p7d3+Mwyn5Oa2MbpA^y8|p0OdOE)d*(PIt#OG|Chr)70 zoNE^6s;l#Zp=_wLlRizMK5*XE!THKiHq=?l^>qGxD>|1q z%hdT3VY#8sX3T*2?CN}0C>!c5<$5|F*NV=CnVC8t7M2_891G67IXE8>%7!{ixt`8T zThY0et@FIF+)(G5)fxAmrQ^noP&U+A%Jp=9^Q(Rvbno}X-mB5RxoWh3wi;bMQ;lAa zJ?l4c@0z*a6LWd9GV9=fk#EC(-TgjdZyx7F*k{?D-q_`UW2P^N5T z`XTcMV=33<6QBhE%Wt4Yzi_prWGcdy#Bwqc${bMH;p!`T0aJoAv%`y-YWM^-Tp=8a$N z-*|@i1AU*XK7+*ld3eTqRB<-Rq`8NJd-eDnd;D_KZF(Bgb8MRX`DP(aAHutSA9&wr zrOk+Mdu?V{=x6$^G440D-)m5_Z0f25{M(Y>JsTJ1Uo-rj;GYA2(+92yzSsWJ3i)M_n7+j{pKsQcRYR*&Cc|j{->kT z?X)Y)Z+sc+H-nJrr;P76K7VX*9R~l`$&a?^_?hAFwXwce?g7X@6P3P1{?xuL_|W>i z&u{Mm=m7s`!4IBZRog4`d+l!rUi7sciJSLb-t4^fy+XHkJd5+c$UE^h#ExT_2W(k` zU+rsnrhScZCFN_G`QqLk_BB1o_h@V5P3e3X+n7)4E`ZE@swSU7UID*+uYHK|F7dfyLW!T_Afe*!W_2mUO!HJkv6;Kb3B=pPu(3nW0OzPChhoZ@Oj+- zL0h~yq3ghxv2kJ;GFMV26(=(J)d3pY{0q4M!{E0@sjm4lhRKvE8kr8rTnHI$dwf99 z#~cd#+3t5H4yn6+I4;S|R~=|{c`+(|5cwwU9(8*x^MEaP<5&BABmW67G5K~O-(!r8 zZXct}dBA7rPi}pM{vvhl^)Z`3FSn1WpRMb|y%V%IhqHVdtD?K6^JXO|*Y%TB?AEy9 ztQzwP{A4&P&82~qi5Er&B?wBK)U-x@EDg}IqHcK$XhJxpK7!qJzpICeqi9utqk_T$P7 z@C=LYhahviEvHT9-c`=Q^0HR26g)gE&kV4%`^OQxG>$c6zmMYy&2UVOLA9@x=cRER zQ01Jl@ApyZeAovb*qq}%U2E8O75b%vPzHY2EoNEXp6<*%vA2hqb-fyux(v>y4f9Sp z#zpi8=k#hn#`}e;e1z#{J}CBkxNW6%8hgL4!Oqz1V>hK4cB%J0Z704*j$diZz|Pp2 zUmumWx4w~wZQuchd1ubyuPxbV_4I6f39@6gGww;&HWub<-FzF@h2^^O%D1s<@=4|u zYR1Nn*Q3&(=-+5(dDNMb#3%x zGR`a@KdHywWbWi|IKNW`pksxKA$S2k0ByblmD6jY_+t zPCy&ryMi9Wpq?hdE{@#`xJy*i;yO)PT2aPJe%@7+_aO4#TJo;8SNfro#MxJXui7VC z_c(FRinD&6g$YLAH>1*I>r?Ls23lX#L+;n8E9iZE`dJOnK%1`1KrAk*$|jPIRApmH zS5;+_q|wi{OS+h=WX}-xyrvJt@4#OBwfr`{wC=tU-^rqtNF^GB(2&i zuSvStR{5QzqqfR#B~AP!jWJ+N(#7`5^OBC*E5DL7u>HBD)r873k}giDJSFL9Lgfib zS0_{+m9&~zc}UX5iIoQ>9ZjqZO1e6+vX<#)?N)r%YquY^7>=%zyFKe;Q0?P|j?8xY ze#&8Hntb7w2^8Om2XDpiidB0U%0s|v-KA4R2IYK+ZIop~{tTO5KtFYDV!Y5c(k9xG10J-)j~813k0yQN zP_DdYDO==?|<6(=h(jD+ZS)=**96+*R@G^X}zthJmQ765$l^aE@~U^3CjxWQ1tX{ zyrmTz%ZoDW@anK!_Wg;-I#%wvl7wMPXT?jiRS# z<2kL^STnl$^>|8HZettc?Ohwo8*3YTW_6c7D>fp&Ya7)R$HsStWra41o}P^>TCuUb zLuNg0AC}wL#=;WUM(nj=J$B6LF1<}`M8BnNEKGH5oDr54+9-N@HokdjEA7$f=GWt& zAS=F!c{JV~*Vx8*scR#2p^g1>yGv8WM)b$pMvO<(?eQ03S)q-%52~6GQy*-_#`2Dt z_4vcE+{QLyUlnyo`lp(`gJVH=>1oDi#MC^-8OFv<9UHF;%L;82J-vGTaw|60jBb8C zUJ#bs*hbthv{Cf*Y&@nF8?g_Fy7@L95|-Q8 zMzxD;BlfW9_P7ZBzu1Uzp|NqgW8+R?S)q-hr)T30Sdci*5kUc+{QN6Og{DYXl(4*sk@}d z>$*K!8?hH99dqsu%L;82Jv|$5ZpFrUd8Un5h2=K35%*5e=j%3_J5c*~=`Q_{eFJU8 z`-!Q?nU0M;VOgP#qNiu$M_aM6ut%ni<*?kwHr7l&iH*wMbGmzX=>oA4?_I{mS&of| zg=K{{ik_a0d$wXD*2#&#-yRo-i4+KBaQU5^KJm)0>x>-K1ERC62~zZsSl z+9-N@HeS+-jfH(PZTw7FZets*=kjL6D^P#WecfG1@Y3lK9-KDbF zi1`{#i`;wqb_~lpI$c(cd)-7&uO7E-#m4dhnKo`5mfP6I!hx=hSTEA`cvyF7vDk=t zC~afx-jVnEms+St(bKcB2H7TKfPoy={ZQ_ZA6K6W%WY)i5byh9K1n?m&0TB#M|79| z$hfK7qqVU*&+*l}!m`486g@o~Z)$EM=5lhGHeMN)+t|iJ-nFs3wW-He05P+Zetrw9o2ocy1>-qd%H^qi;a=kSa5uGT3A+Sqv+|` z`0xL2+8&2;u`V~T@eh!d*e3G;^0%JD_2=cv6TNygcU$$J&|TVCY^+)vm3!aK&%&}o z8%0mg#`{~bu`o&N=KJdR!*UzfW6k7~#2l=3Fs^pKzq|AlVziDqO5?CzDfix%Ys0ca z8%0mg#xJ#EBj!4@;_9lf+{QMRb-!5m)wo03ICx5T=}NH?^X59{6x@4WP7BKlZ4^B{ z8;@?qMw|)EvavHPx3P^lr{}~R-2K9O>^i->bh6kOSsRP)eI-l7vO*h0PtV3Vt=Nb; z!Yms%3d?P5V|l7;Bj&YfWQ~0ItnShu5I5N#y*2Vs26K|cCI8{>62~uGi)>KF zdRd$50RJ;m25{sW`EjkpYO&qJtrFn&qgzJt-HUjI8tGfEM*6uAe<{|<7vtQ_ozka}iA6!RK6yM>;lm>GbHucz&>X{&(i{4wJr# z>BCL>8{|LAq(9H}F(!RAdERT%r!t=tO?rFsoNUrxWBOE+euDgGnDlC<&ob#FnEt3q z?@j)5P5K4qdA>>C!SpJVevRo1P5N2db&*MbiLw`)^c3cKiAfjv{4$fSfWMCztSF9r z7WtSq^3cuIwv&H0y6StTu5pL7zK0WazII>yM;)v^82{ga|A*uMQTTrh{=XOhPsIO| z@qYpSV-N0H?1Nr=D*i9U|1L;xEug`t~vUdbdp!r@663 zEz)hM=fdt1$17|@LAibkd%GI=Yb-zU*#e*&x!1JTy(T_kvRBynZFrxizY>XY*| zJzmVc%u7UW9`gb3$3$N41;Mi%Y;?Z+dWYIu=ZCqMe&!AQ_Tsm2xLIqoFe;V11 zF_Zo7TMznw`UA?*-+hG~_giZnp@V#%jo;8Z%j%&rzWcg6Xe=|4E!Sn4_o392bnGYB zc}Fh2NILjFfM5OHSK0`BK0w`IAJdF&FTL^Bd&n2_`5nc*)4G)LolMeBp)UAcAXvus z?hics&KK%f#92j&?}!r#+X@X3`7h z{ZU0O{an~>^s;wDK;~m9y~-1z*Ne~#d2nCgOzMU9rT6F~c52^2n?qbNdbJt7?xkLM zR@ZBZqt{c!n{?5u?9xBaa!4;)y5!9_i2{7F+4BOYt{tg|9MATf2X6Z2c9V-%qPo zV(l)i>s-o`p1hN}bnP$DHiC? zpP`>%e?r~u9{7R0iL(QCOf;ZsW)83GE8V4=sT<1HF$!`?eL)AYfibERHZoSKRE(-_ zZ2Wi%?N7^=>$1#y0re!kD0Su1uYir39$9+TrC%oWs-+ipPIP1b7Ykk4IhL|ZzfkB! zOUJsV*hcyDg&tXY&82@-=v7NEEOX?~5W2GSA6WBC=YO)La;o)m-VR#Q*X;s7y5IUywY~BR zb$}n8lS}#0f$$@YO&a=9(Y()hT-jaPBJD?zOZ*5r2p06C0jo#ak7_#@Kl&8)Ps?I$ zR%B_{rPP!3g7t%nE5$X+}+9l2BDWNJ$C8W3O%-TwTC1BHKErmz3kF26?(zO*{VzbywD}i7WQ=V zzd-1*m5*Hd$Aw+I^s=Q#E`5KY$Ch4m>3ayhX6c2!o$_}Qy39$HUHW!HFWb4bnoHkW=&_~a zPU3X?*<9!~k$35v2)$tEwaWE#i;NEwgkHAv*rktNB<Aw-Woi9^0m;SuaV=G_W-zooDq1P-ucIl6k4m;09oYQ>;WB3C6ZR5A}6)!zy z`igJ!`Tf~rma~Z!^4bwRy01_NBx8=dQI7N#5y#v=wS5Kr`Xt6!^c8x{jk5LF7Vo2Y zZ*S69m^0)3ech!?s29rCV-CnAeFbz7e_&rhfAYs1g-NEb_#?4M%VPaWWSMuKdV-$x zxpCdTS7 zXQ<`Tmx7+W&u?$b`JT3~IP!fDr<{G4`6Him%xz*R_Fuc@{Ikc>BOU87uaI~2*qQRE zm(%cT^swim@a%QSO8Y2mhxYNPjHM=4zG`uwogPaa4lECEhNV3dacg(!ep|L~ACSvo z|GDTOSh0P)&(@zxkICno_OS@GKFDghs%zWbw4M3F7filwj_r2{J+gH4$5JjaxlQO* zOOM(e`f8!0ZjnFU=O;MyYlL33^vI=OF7!y`Cpz+%2px5*^GAP{*6$*rD;Wn(a_Fms zUbJ-dM``(Ug&tYDn(WZe5;}0znpAg$lw zLa$nS)ukUSbS3YjQylqygoMw8 zp;xUu?&C_+UluyfifH`{{MLJ2{zS&Odb=J{kxM^@boj}q@T>a-#uxMnpYmdQ?s?PC z-@)gPX7>r_5ewwC8+c4z*u9T2?Ok1f6C z(vKIqnHNTXy17&SQ?~B@fnV(htRMKnKWyDd-=2Hj_`$Bk`^juS_zTOLLaeOMmff;G z#ym-nEgky~(^!1S(&d}>ReaOl__p1Dve$-=a4<@!Q_@{O6Jm{cf;$eiXK7zOwz6 zI%sc3^|nyNyz$znr7cXTTt_*y1-%v^V_vMe#K$yg3-&&vp0(YjCx{=)(QN^8Nn3yp zf-~E~nW!hfE!1#sld`+A4%4#Lx-98$qn@M-PPj)Rjl(ak4(y+_KhZ|mb1I*w#)`5Q za4nxdo$XKWr!FXy<2h4jc7G$D-R5KYbBm>FuN;wuCDyL6c9(vC2;+(}cSCeOfb)OW z4vi(`5-cNauO4d>%gq~L`2uugnTc$*E=#*~dm&x0R9iY&e!=Q6U9hB$z;ZgDXJGkG zKL2?(mQyU245#uD$%dfopa z?Eg<=3AqFh=#ciyL92&KjWr`1qc0(rby?gm;I2Vk2R*f2aow&CE29dk@>AM@^~%Mx zV;ddoN8*!V$H`6X!2VdhPXB0k>F@L_;B_YRg`Bk`(B(5Mi*&PIHlV!qvhzqsK38j< ziX-1(zR-<&El`+;{g;WgKeOfaf={<4)(h&tm(Nr6e~^vMkMQ|(+4ZmSW9+RK*Dz-0 zAFy$(ruU&PNw?wcX&?0a7|O-^>_F-~E%#&SzwO@IUc0v2>+h{yg*?n!^AmQh+3qWt zhIQeY_&*!}=i)!?NY;_DCZgAlv97fiYYeg$UE_TORlWAx>+hvH1?7lNsWs$8N7_M5 z?K(wo9%pahCo+~8P_l;nG|vB7yfF?~vtYVfSv2R>Lm62^hRjNlDYjL%B5oMJ%%P8Q z%z!?Zzj@;aLkjns=r&=;X$tp;?5btpkKp|f{Q>-#PZ&AFrcdWDY~cC(yv?6HwCSaP z8$VIiw#vUQ1mA&bWD}IF+ku)}=|8Z3ettG(@%NGZWqy$Pqm@bK;NP_QVNCuCX{e{o zXv@sR*I~olq|H+Q9P)O@Cl$;_KE0`)M# zrrV@Ep3iVGZ_-l_SF zP8U%gyxpmM=G%N^9XIjqsI4-aG{mu;iRcf(J|-$ygg=bAWwJSQT-m4KE#-Q+~c%*u3B^b6vTY^wayFY z1Nf`r`g=3$^f$;$%1y=l`k8j#=`>lbJk0pR`n;N_^Woj!IzPMzGY0oh!u?-t({r2f z<6V&agW&%=aYEmzaU3iEs^K37KijjKAFYdtDeRK=*N43>T9?AC$_QxN!AJ7olW)vF zhG&{yp2fSSk~>gt)cF)g`VmX}5Ch+D|6Z6w9G;B(Ex>z_Lb__w3m!1PeZVC5kWIth z++#??j;&Cqj2o28ooV!=5A5DbT}%C>-Zxo47g(J}SA}=fu+OJmImBLVpI5hML$+bv z!bctKt6tsW-IjILxoK3=;~n}m`|@o~U(Pb~zD#6fx*+q}R6AHqJD{)b%Yn7-%kgXb z^7RVukA7c%fR-_B>wLCR@Uva&_>1(%_{_GmX*Pf9vy#62OpGrrUq>tTAXs|!Fcwu z7&K|`jvXEbzk;m6K(}zZIYG zvB14z+Kwbf8J`@4%r7Z}_U`(<$6qjK0*Ar>xb>Ze{Fo1*@8;*=``_RzuiqBmlm!s&sGls{qR=7*IQJ~_y0fZS$nU&_C9k?=v#lk_xqS1;q1NEb6d}P*0Y{< z-M*dmoEDYVuxx)rrazE%5>j&q3jF!S;IF3ZcFi$vPF z_rNx>R}A&NwaB@&c+c9Li7yZj`j)vg#Lv(JY|7YG%07I3sQn&jk4h{bdCU9{`$yQL z$Osv1EXMhtKUO&cXU?Lob7^ltp7gC2x1QjV_6X%9ZP=~Q4w7*X^Y7I1@4~N)|5-+q zXBTBd`Rv%h&ZT{x=?(U6-A`Gl>-6{^Ym#zCGd=z%tjg!vWVTIMd-mGI-JoIGguQn- zxwDgHEnwe`(Puig-2yz1XSyBeot+V4sP?&-1IF)5%s2>fXE?z=`$YSW`^ETvoPEdn zFT_*Rw7&@PSqZ!-LmT$^@V8K#Z)C!KQxfwX8I^WGr=C1HI>VQCAWG}tyjFC8`H9WgByY}SF+E!e~v~Kn^(~aK$;M>+8x1yV4f~`-(hly>uey1U^;JAOt*_|pl)i?nzN!uMbrSCX&(T*HoqU|V2OavJDVTE41W{UFx6Q7v znL=Io0x#VbR|Bt{zF**Y`(EIkg77E7i-Vin&x6jezXdv*nLl-Ip3Y{1;yI#&t4wc?*v3*y1ueR@Xlh5%abrFP%1b@DL$KHP0?CJJBGViC@ z_o{j4{Da`v&HM3q*RdPQaBiyJ3Z~v>+OSVh^l$7O^MuBS9(Wb*|3$r7o!QvRzEg*S z7wbP=Z{K~>tUh3-P&Iu0diw_OEDz&OQOzSmw4s?g*JtzZvVS?aZk34fs}1{+sQ4th2c6X`Q{Rna;4MQtH>U^*?My zXBbOAjdfYE^YHuzIx}{2skI~QwWr-(Xy5DRopWO%N3cZl7uomFyq{&?i{^cSeJ`8$ zSK0Tfc|X;@*UkIO?R&UX=+DDD?U?f+ru?#RT-Jyg53IHIQp>NG1?NSj@mA_3)^ECA zE^SsX_^wA@y`0lZy(IC#%>3$w`SnseU-S_BgSvT-{Q>r(vz}tx#+_b#k8QhV-cz<6 zUYN4&=XR)VW8W>y;@kGV3-JA)R&*HaBCW%3gZ?Zr75qWI4!;IG+kP7QgV|$(nIO1G z^r3wme4%;QJ`VoeylcEP6VxtB>E^GjZh|Xvb<=ZcRQmU9f0NVhZ5h+Ld3Q72U`;m9 zzIL^u8;rA}Y|IUxb+PCq(Sdo7b%6c(Zp=Mybx_aO!OqL0(z{yGL0p!!4t~eeK`=Ks zk^b`FbB9h2Uif=K121Uc1r5BQffqFJf(BmDzzZ69K?5&n-~|o5pn(@O@PY>ZKdFJ| z?$)(VP&D5c?Zn*TrZ-~VD!q>*3$N!7dH{b1;jsqW9+6Mv#Iaqsdw?Q?PN#4h_>ojdV>eXh@)_;2rW_d^ycM|V zy;M0mD9Sx=nRc{2%XfAinET?Uv>nAd*f%dK{c$55_&BPA1HgG3aZvtLTk_#?&R6zC zVgK1Z%3}`p2AQ_Ov(3T7)FJnLoZpHq8C_)bcu7lol(P;QJ)U*AdaN5dz8-hKJSwed zq(>h|^|%i>m*(lwhcBCNIUWG~BCAKVSJ7iNt;cU>%agUoqPg?WZ<9}s&SH=FrlYjy zNcQ|@^!OFvTDy1F0^)X%@w+&i3wjxQ>^U_mJxd>x*Cu@&)#Fa!JVhLSr}*{pK4q*0 zdOQMr(+|FVH{idnJmv)WzBBNQF6W3%(jGtEiXM$FGWIwzn;y+RQTR3^o8Ld~JX}52 zy)ssfpE_`QRC-S%J^DDRN9>m_{Sk4}?Ru)s!0(Ft;JVS{0>Hn;>Jfbg>oW*>r$ExK zFE@Iea{7DPqr9`f7aOp;D5v{~<+JJ0*yB{8IFEdH`FcFx=+Wg%{}}W2>~X5CYUspe zR6Q=3AC+#**JBn(_1FoVB60M)*=x)`)+{`9Mtkf5{KZy}k?Ik@qDRo6J)YQ#9*r)h z{C54rk*4i>st}xztH*Bw*Xqq_*Nydvv)rr?Uyr-7{{AbJA*WqWwfQ)z$9=&058|jE zueW;i;cG^Z2LOLSdCZCAj)5t2hXw3W^|&u<7g>8Wy2$A9q1p6k+VxbSmaoURAFdw5 z6La<0c@Dn++enW-j_R=oIPW5k->!Xl#B>t-0)Cg(V^!_3%)364c707NdNjJo=y7!` zdW=l@{dRr%;p(xTug3%DMy1;t>CwkgJ+@)5!u5H2^x>;UkKEgEwbf%?^;l2q@yFTn zWbM)DBBRHjZ=I!GTYD^?l-sVK2JT_C>zbkCx9gotqtX$L^yuTL9(M!h7qFj(x=*z#W55%(%%kC@~|N#3V5uWar+z*sHG`>5tcxa&ah>PgP{|A9Z>t{Mqj@##0OMQmwENwcSi1=H+o{muCm}Oo3TCWjQYLVKBKPI+Go_u4fYvzaGiaI?Y>W+yYTCkGwV}~jxxG^ZLC{+4$RD5Ko1z( z=)6reeJ=NgCVGV|GeNj`;`dR0dBz@3#+*23GHvtTV)ER$-j_MykFzMY%>1WG&h9@}A%p29&=Yf`-BZ7?=kY0T>n0N|zIXsEJ zuMKmd)hB}qoI(50yJ&Agu(kf8_ncaV{GNPS8?a^b^z|_Hh4Vb!(D!`kg=eSc<1A4} zQ26|E$XLYO?qcvt<|Y5ye9r-OBuiyLW1pK=Q4?AH!guKTd&%uf2y~=t4Z<*spdI9Owd#WDJ zC`dhA?$!hEPQl$Mtd|IS?=W;(MCQ z7kWk=?DFOm;%?f#X~bo=)Czu-A}?4>*&=gy|(%shO^4{?u#z`+l) zt^Oh9h5r*D13ecthHNX!yw9$Ju?>{dw7H!ab1=T)T7=Mn52a4?)7%vrYJ{e~t_kRR(#5gA^j{1y-ym3Z|eO=onQR#Qd8*5j=_V)E{_Y~hLJb_P| z{3h<%$fxh2U23#IORu8c~7+T9}0z8=82V%R=>D9-l5Hdx;QVzbWz&f4Aa)Nl4|@l>17FErmB z+J~6=De7EpEr6|Yef1qkqkYwQry=U}A*r|EAkVl+{lR9a!`N1Q`jMf(V0l#f0_n5P zX=jL|;%C|m?Bu=R$C$;nlOeSev0ukF=i`p4qalOn!Lj-Ks4LL(xot zciZ~(Y-dR6b;GAM>g#?Cn8bFHc>(cHMV*85?BsUfcrwjyCsmz;vv#8XY4!eo`{0k5n7!Itm|&lQzOGdL5#smd zx*iqiT$rc#hnneKaJ`ZUX)j`ye9e0ZGiWna1g@P9#gjx&FK z?A9A?4CupG4SXlytAOWyM)XsEVB@Fy;tA9NV`r?3Ea5Ztf_W_Gx#&EXmrOjuy(uPs zoC=~iZ&&cyYgwPupI}>A9!&>7xaaXnlqU>=`{^G=-?eMmw@$aeE7Xwb*{n zJ`(MUzLc>ce03e;z2FzW`*;u(?hl@M^W&4qBOTh4^vANFMPlWf<$URJa#nKJ{F(DI zXY#7&f-diZ!P)aFZOy*p9NK*7P4>p%zFCef(f2H(9NVEE*8e>$3*dQoDB;>5UyXeg z&ICU-r)|-m<;7{tC&XtPPli401>T_IwZga4;mf#|eBW@Gd=K7b_}=95ML#!bb&N87 za!&Bzb#6Y&@8+L2H+Zn<=0jg@{!_?*&0)&*xXQ&dr>@>zy1#*3JaZc7dwf3!zC3e! zIQ8&J<;%PKSZ}yj#MB$kdOwN!!kvv0XE3gOSYhciSoiI1r~~B7I1KH-`Xe)*rR_{2 zoo#M;5Zv|sr_oOUzD9V3Dbv0%fAPc-Iz9=OaK1|XT(MCb#d&hJ>7Bh%=~M8pw*585 z!#Q)ALjvB1EFRiwQ@r3@!P^Hs_NT%R?HYK~?XPjhlNn!P@D2d)0fUFNfegQ0^jXl= zGX?lK{s#Dln#BKoi2s2HJv`%%)9rf!zN5xD)4<^S1yT{wOFetG)+w9u4x_ z;agLAxEI^vKFIQL?IPVr>}tb2a7up|yHbDqHbteS&|iw4Bg^D_ipwDDGAp;1<7WGw z=vQ^%^_x%MNqKVaQNegM)?Y1OfByL%((BqLUo0ZQi+eaZ^IwsIN%2+n+8`*t=+FtmIT>F@8t$cRefI2jE z3UM1Sb=WhA`G3YkC=>Mroov-T3|X9-!PyC%kGeRx8$kQ}EKaz@_ypj*mpCVAzsG)# z&)^3g%6KayW8L8H1MVL?{OAXHx8F-igYCI)zC}mhc?a~e7xs^Kd!j8zzt6ZgR$S(a}mD=jU;jS>^-+i~~EZ?h#*z&Q1%qeh~LnPePXYQx|9Zd&(GIVAg~| z=W?_&mivigf(?x8rqSQ@QC{&)3EcS>4styDBKU8>{v}}Vu&_}AyHH^t!FLnSc}ehK z1lT=*Em>Hc*XKBvW4BWk_Fnc4fcqbSyWYY@3EXiC*Nw8(0QU~S6)jvnfjiQ|;X6P9 zVzJ)`9Q$Qy8_*H^Iw>2@%}ZaWx@3L*sNb{$-fbcpzm?_B-mn3wOdeQ|zNWPp$0y<=syDJz%M>&0B>k+_Uy`zXp5;{^-rDt8_nl zynPp0Q6AWQ;*aY2{%BtmmHsE}$?AsfB=$!>j{2hmz)9^BVtoAKG)O6f^XW)^}He3AZp$*nvM6NuWwYKNk>^C?2eQ6SBiOq(maSw3zR4EnLdu%Uk`AKE{oP-7oR2O_?^F ztvjoKukL1m%YHn$r_qVQ&E7=xcSh&_`r#v4zO(xd-0_)LcRde9rEgkY`0=-oV|@p3 zzU<<-b?4(~-R%a>XC0iTb;p?4sh^usKV0vS`&K2Mxil3MzuD@;##y+Rs*1jlePS7V zA2}!X1i!C|IHis26QqGV4jGejoo$@$2zFa={0P@a5IdNdW^b^J_vfYX>j{2E@$UsM zY0D_Lk1sK1!ha?xUKaDeMe!ej%z|Ic;zK@{|4a}i_$#ga+_wO^e~3OkM1Nd`-0agq zbA~Y}V@`R-{Yg(C9xQNg4bS1#lJE5fh!0;4eKw3cu{R_Lf|9)lH#FlQl;<_6I(Y?X zP?i#8qu$W(oA}iB+el--E%Kye#Tm|rNZdw$W7@!sKmQSczG*-9{^NA}5qmF--Ou># z=h={Kp*M4`moi9Z9gXlTLaW|cKi{?gKAf4+t71^ z+$Tbt3Qway%-F?URu73i(yzvLVarFGp>B8vSL!V?^a|EKaF?IVQGFQae^_srBb^l< z_tp{q0N~#Qc+1CcuWe|rl85#S|1ur7-#YQlcNhccb(t*(>O$Z!e!;4rI?C(`)Oj$$t>^3WWGhF)H>FR`4T~<}dohn`bXh!I>ZV|ISv24D+WArR|J0?$ zfsc>%@8d)UXE$)p(slz~n!ClFIYRJWMjy#`m6wn9yo~(fdWbGb`%ULN+tm9vDv-~m zrSqHfx#mNAD<|L0Cj6Itct^HLvfWojPlI+kzDUL;QfK%Ug2+@& z?*V-ncplGmo%y~I-!LGZf~~LWm14^aJ{gt%f$h}zEb*tHYwFm?sT-V5;QTdk0Ec-s z+1t8|KDEyM3Dh6HE6zSUfbJs585FAfH&TZ>f12{yK9AZ}BG=Bpib|8yl-_zP%9jNSm9gC9Wb4Q3*{h$MW~m>}!J@qA`;2b= z{;T7#>!>|lN1?eRV8LHUr8lsS^!yml;gN4!=)sruP65D|0KfMktdTOlz}y(;1w5F6^OHer4?8`Fv*k_c&KZ14okhAxaw8G^RbJ%zB8TS}W;&*<; z`wW7IO;5 z8P2Y!XM$S7b88OIM);Gc51kuaL>(_T`?XR!mU@KDdG)xM-)d?mTRoBO`ooY-Z2*97LYk<~Q zVmxWi|L=Sh=l{`HRtc~B9eQLq_R=ZCg@WZBWeMa_y0?+Objr-9wF2*~C*FNBO z=iqW3V(-~#k7s-B@$6K41V3}0p0@I}UTu$nK^+}kb@1c%sQ7G;V&~DTCS=~&j6I$S z$~?PYK>G_GeqxSke~;wRMO^p4SYM8>FLRBgnY^_`-apTwdl~%!{Jp>a(ol~@bGG}y z=c3ZFtTW~Bmp8WE+MJ0!h*^#O&VBg5<;Xz(?62LjNt}Ujw*B8^{gZ2R(BJ0&r2fv# zk&C>kzxn(&YL0xN+fO;&{e6ET`K1Oj}j_)Rg)i&@_93cmFf`f9jd>kj}j}z?tEl zIx+?V&Pt0D1{0U#8N9ZlJQCA+ywFFRv%v>|cNt*0=d6nTQ;f+ZMnGAr*msiBz2lQU z)}uZNFyfOOd}*UTKFWf9Oq>&%2?BGT*0$C6Oo4Aw8%7L|W)*;pp}AJDXAx-&ShzteOcS9Dl7iz&*qS6@ZNANHwWZPatJlzY`3A~L4 zuZi!-FZcMbZMm*>F;FOKJGzvsZe z3-Da8xAbHAqZh~WbDzP#bZgydoxc?FS{(2`D9=$+uL11AP3!rI!UHCTFDL6w0vqPw zYud9`e|T5?+3msBtrsuvK{*=QLoMGP{=}5s<(F*>C<|;_V&4y%IdqKA#2(DN6=KHJ ze6@34J-}SRo2`Cb9E?YaW8>n`>a+pOOB@~B_62{Cs)xsato7j1h?Y#yCZ!IPXB*D0 z$vg5|(zn%}r|)Ys`qp_&`ko@bvqgX9`JT&L(RY~GN)hLoL{?4fl>N-n{wrZKRVOz1 zKE|LNr`PW;er$OVe1CvrQfaHWBLL}7Abt-}7pK~~2p3P>!9LRDEfOAqIcsP5nf$o@ zfPd0{lC%D7KSyNCbTeqg{*-dW`tWr4v$C~Wdp^(cVYPf6eit~FKJ5~7%vqZ)Iy$ue zJH)rkcvjH*Z@ahj>8Lc}@_?Rri(xkN!#Y6}7<6?k)W;_Adc1I5OJ* zZj^;}V`(5>%=nu)hD*zVHh8qea0fu|E1n$J*?LyFI5t?}rQv(_X$BTeb8w z?QZB0>09g87il_mH>P=km$%dM0Ic$GeQ8#IRu`WBF3#vLH6J`v2=HyW9Dj0F6CGy8 z4rN29pz{ww-Plmiv$+2cWvs!!R51@I^Iw?%<9C2Wr<@nSJd*X-u}%8)ipPjew*46U ze`A|WaOtB8&>8j2KArPB+*5nc>J<{#j&4Q2St3>F7YdIyKMU@?*BqrgSpZE_fj6mUpK&w$8raN`z_#V{mB?G z2!n|d>RZx|Nw;0vD0TZfV~?}z%$DEN**hVli65*lc6DaT=(pjwG|}1Lpp90sUqaV~ zWb9O9y>p!i<$1T-Ld|Q7EYA(9GnR|+%h9i)eoQQmvqdSLYZxi?t5vT~|j zu|2TeRP*Kh5%8=of~231b%VSq_e_Vjsj0RizIn*~sJ5TiezK?S-qKOFeP}yo*&b-6 zY*t3EY@dtEmT5Cn1&j~#^gsQ)%Y|>~<&Zp_@%PT+pL6+K#=czPV8tf-4*9b5N{pg*wpmhddG z*h>-L?qgqATNIDu0>rkxP4rqtAH#kJc0(UB)mAlh3Wx)R9=_u!b7F{TBa|gLCE9-} z<#P7@PttdhH{$1aAn!!!l$UTH-ep$Zn7{}dL3LV^?jWY6_;ZJ^tbTOC2 zeK+`>glvVH#4kC)QbL z_Wvz-Dc1jKJ18G)C#`26r)+RKfy4NPI6uhBk@bVN3|`s44PCnZ7N2W#y1x2<>hGZy zM}7IZyLBA29P_|e;Ewvsf`fZ5!X5QXgM;t8Etr1)`e6D4oR3`JVeXCCbJPTUB<^oO z+N1i+eR^jcZPMB2tk7rf;qKLEw( z&)~hQBZ)z$@ZKB0qYt}K#yRpgXgAv0<*`D-1;(K3nG*s(60XWKQcliJ&=7Z;^ zeDFe6(K?K6pOcp+Cc^hA2KOoco3i&+0b}wK=r-=Q(jWjQ|@MA?AmtcI({b|YG+t&fN`i|oC zeC%PAbNTB!GWRF`J7Au>`;iYK4x3;c`P|(fmo>$Z`yOpc9mOZ*^YgNz{KEcx1_5w4P3YsSEY-7*z4u7U{=D>$0?VYf1Q-b3i>-LX(Pf{+ej=E{pu5G{bTGGOdJRNmr?&u{vO7C zT4yN79K>SW(=BopL)f0#7x&ogav`R}JPYLdCED083c-mXZ4Ldk*Z|7$0Q4VXj9Wb; z;f1_|lV=pCac9^5sb=(R1)+Zc^y{EsJOH_|zobZ8Q~gh3@5OG!C4c78DzlzchlDSn zT+)tZ?^fYq%KZh<{XFPOdVS6W=}6y=HvVShmH++^WM0|w6Fp&mHe@+JeXZ_)nDg-e z)hci7Utzl@?+=6ipOg0r(?8W1lb?au7Vm`@NBd7ge)WvbWvI)ob?CA7U6dX33RV`; zBgWsmf%Aq|`PX<4zTy7>=-+Sa3^A9jv+(7zUI8DJ^t)xq7JeK2FG~1}E-oq>c@);# z&E>7iqigciM?d7*#5!i(*3!J|KLGE`Jl>ZnZ-uqIU)d^etiM}bTo2yZPic79)4ap) zf%g?2?<Id{6D}OdyQ{1* zA5uSTW9W}`-wVbv$HjY5zV+I8{30-M-{Qgt$H(xG=fKygf6Vu!%7D1Y@^$NZX{+T3 zkB`go29)FVC`Xm+es?5%qz>+YPlVq;rB%Acc`@DVKz9}BmNCay?ege$nYx|RD&6u4 zG2IJ6_k7CxbLgelquUF4F<$>6+G0!X7xy~ac6A!)^6rHi>2C7qZUSA*lYFgZx+leS zj|APhplj;u0u!gO&r4#zn?rqveXw06aibTz{yFResFF@QA&kgRMPd$+z;vngB z5kGPKAa%mFSADshkK3E&nbn1r*VDyj>H>Z$SuZg2-Fr=pJX5IVm-BU5p2xf8+>7~8 zTUP3U@`u=i1Kmv(BDqfr@}DgA%lIZhxt^db&RWS6b_`QLS=x4l^@J+{a~kbde9tM8 z9>DKiige4bTXoC%#9`=A(xF?nMa;SG{}k$0@Ns5ccmw||;2&w}MyJNo`%vU|3z}I^CZ?8 zgsvS+V@-qhy%%E}IpacoNBR1`vx&Y#&{<91TnEv4F!&Ae9_{Wr%E2)d_O3`-0@H2)KfN2@9#{i< z=DdyZA!QrCqKt&sF%;$oG#u%6w+#>wS+*4`x>@6lQjx$kjDPA&WDNJ0@DzEyh zOuqzPWzc-P!QAQy$3K>ri~}(K zk$1>pv9{Vz@JfmzDn?92ok{Ae{5%_O}fA5yx3G2?;CT}1JTq_X z&#awOeoOOXmS&jvy}Id7b_M8f3CA*h5OC~ID0cy{{O&|M(oWX20A*oJx(EDXSx5)G z^^D~%-eEq8b}%3Nfu2&je*_vL8}`N6eWT>}cBTVY{oRZgzsNh|0^m-u?M7&4{@mN$ zq=EU0`PlE>=sxe?04BN5ThGG4?&CcG7(WV+V2NXXc7HF&naPT8`Y%1?{V+YnQ881{<1k)GNo{5JsU<&VAYs+c8a}*EfP%`C! zO=ac5m@h>aV?KE=nlZhVXP(l1nUx3QxD+17appaZH&^i{(GOKI_rCo%MsI+1>yG_R zTz9E@_xhWsZXrJV8~Z)(?00W?k2d#^h@U?ieCg-KUh{3~OQ31_v(CBC*uK*yxQ~PV zXn0TX5c>+A4dOX;`00b#dx-DKV}1_*y0C98+!g)Ls&jrPqR!a|mCv5ojW!y$f0l!E z&~|M)Vv~cPrEf#J_#(j1=bZ)eZusKPG->BZ|0hZ3S$Vd7lvm?J%p0E_``$mzmMyF6 zNcH0B`VS~0d_mGqb*~Qg7}$17U8nTJy$IAf`(^69map@XtXwIbi_XGxCfX2XHKqrJQgSmm|hUZoO9&oG=mJ#(VaRloF@zk@A zSYI5zdg5gGngH>}MX-GX%kmi;AkE#N&2w?x8;rgzKdC$6Z)i)MI(Xo-ET+eDV9%7> zN4%QlV0yS{f;_D4oPl&}pK7n!I<hwg?1TDLN=+KH z`TNFaKNH8Z@Qc(l_(_`e!HFFkTI`p;16l%y^%CoYA3O;9;4eNFF>sN0ONk8U#oz28 z?$-?NOyKzbZgZCf*Z74I0VNeJ!g`LXz7`=e7-Kj=%XE$t%TJq4EKV4+YgeVur=kFsl1ZvTZoNqE@)%g%Xv{nuMi z*NiRW{-RO;<@Gb$6%YFlWK3SP@igk0eB*e!YT|)OzlYrjcc};P z7q>Bgc{I&(e*M>?7h|vNn_)NXo25*MrP%&$e1|#a4YXVK^KO27@yKU8V7FrPO5nXpnMO&twzlAbAayoR`q%2>8Z0|w4vhvX;0^3&VNnQOt z%iy$?h0WSZqu2_zOFOf%)n`b@Z7VItRv%Wprfmh|VHrE2t^6Cx5Vw^g_lu?5%G;T* zZRMrEg|_ktzL6nqqMU9kcT(40Td5$emA3MO#&XYayfjN2kMoJ@qS>iCM~|5x}G#u}0rCgbEP##%x{?|uy6 zA_ z;m?fB&@XIX#=ha-9b%t1!&uDfoHi;lBj6g2INBT#QPM;a# zE-6cMQtMIZ6)zWhMZ|<-fMqN_AN!_cZU8Z6Ct}PMka<4-bvxfTB|q7p0~o}pvPb98 z3B@lTdNfGItCJXmfbUeiXQw?xJdarQY!iPKa3=xenDO`L+zk4Hm#oon3^K(zj{@g7 zjx}R}4%kMOHeB~?xTg07{vE#mZS@f*c3NzN7nnU{ZF{3qne_`k95aZnaA%%71~>;Y zN#C?CA8R68ILCr=iErarg<~|n7X#z(0MlX9aQ;Bx z_&q1KPrwxb7qQ>2El1nKd;s+G3P(R>=*QYabA4!8Jbhf+Odl9`@BNb68}|4>o{Ya* z*i0WR3(n+7*>UG($a|YO21R+qFHk3X7bf!VmpK}=&l_%%d5}enW0qr&Cwwzv=4hI_ zm_$D3DCU8;*viT8IkgHoo9e-q!PCP}z^nQt*DiGa4s&#qm^a&vd80j;LwYafnBIr; zEAK~p`~cb`=h^_ztD&JgHC@9+&FDB(xA7WyJ-VRgKmE8 zrVS$vG`Qcg@HA*c7vFR9w`)H3g%o~aWSG1RJR?mXWnWSdIVYDR{cR>asLq`T*e*ev z_gy^)n(|yeV&a$fxq8F|<&$*yZ?Rv2KXT$(n~wP6JN6kd!jpLRY%!-FQ#-~vdbhtn zPw6CcuF3g6#yO@9$UWGZHgI~DZ@LX+Y{<|_+JHG*-8nBRT~3=j7JA_szw_g>l;~qT z96gWS1DwT*GYLL_w5}B$XgNF`d>^>(Ilt%bPS)wE1MK}!J;;5>89jU>%R8+Hlq=Pi z0=a{CSFDGcIVZdOM9k;WKJxUC!7;kq2b}K{$JezFAG}Qb!2!U3i|}lBSR>vIJR5s| z2<0H1rL+l_+4nI%&8nfg2W`>*(^;R?lhYUF(ybY~2SE3= zD)(OkSNtaZD%UE&gZ2@paUBSGh;3rq&ZQk3XZj(Wx9cEn;$W;`+e0o++2HVu-o?bB z?&0&`j}Ly@_?%tdI}3#KufIP4T-dYA zmu)=eOZ}wERBrcdL)-Z2IPb#t1^A3TWpK2O1Bd;S;6M)#K^A^52{Ge|v@siNaSSH1 z*NpyLKmReoG4(}%M?BWU)B5}!{!%8;zfb8~`+WlUrAQvy_C3slZ+H=Tqh7vl@sKyJ zdDd^(Z$Srr#e@HB;Wif!{*!$kC?0&wJ`WcU{=I$PUOc$ZK3C^XblGS0nXk9c=reD( z&*(F6wa@4?*W2gt$cdZu`A+=W`f|n=as8$0-m{xtl*{xF)*q$&NP}zY+xJ5ofa~$i z*iFU`s-b5)+E3yP*f8zD@%7}*yEH`x>xat68$SW~KDC=U&;?v%6GG^$Jo!+Ktv;X3ZRwr zsPyhUz4-8|mz{uTd`TZTr>uIZrS-C^6}{N9d3w2_6}^-fn)>kC(Us3fFTq*4dTCpV z{y$GIKD=#5fL~+v5~^N8?x|1gC1^!2wrrkWj%YukMc{fjM|r`bN`XcH!<6FueJU$u8Il%*fe+2Nxr<^EruxwAqK@X(C7)J7H=In&T znaID!=G)jNFlQiaKJ8!dZGM=}zu4v~j(sz52K#Qy)5B z(SA_&hGCA0xP`jWk6$m>H>(%lhexmW>P7EbS{9WyX}x6PiVTj4D|&$QI>oVieU+`N z>Pc~3y$>={*VwNRr&U$I!P7FQzex0hZIMVPk0K z|LYBEYq786SueB4mib?{`L>TJr}O{O=2z8M;@hGw{v$TOuKD$J{#MjQ_PA%@JIuJwpatM#h_ckkMb8sdKIzGA^e4GTzks@!EO^t0)4#(dD} z!mrGq@5TH!%F{*JxKB{$SfBWX8PEI=rhDHYD|5~gG+t+Qjdf+(eA{P>)1p(Hk%2#3 zgfhi;^>gT!IFv8o-m+wU?`He1G2@K3f6TR~=i#mgKjYKw*tE$!HRnLO3d=Z8O}Pr; zar6hEo4&j3V(L3B)A9D5GEtu?e;*k-g=mqX7oKPQH`dE;7CknBj|_Yp&a18@yfe>2 zIoo{tbpyWu@XHAA&zbn}#l<2|C*T(o9(tcu{;GlR0sMTx2WLn7zsCB4-Z;lf+(%I7 zqPt+p#QD&d*ba1C?dn(-IBSS??6b#MBc8v04s?vpm!#&e4gF;P`W?a#^U2Qq_57Uq z>zlz_{4eCP^Ve(KG@ZY`)=ks->rOXK=dXk6967V|t<@|q+BN*zYXK+awsX>G|92qG z+Jqe&+xK{^W9_T9ByP_E=IY<2WlQFd^XKYV_l0`CjouF$mY*H-*mtqfj13(xwi(+f z_Fl-k<8e5@Kp(*QBF-b@n>s~ZcW#S39PA??&Q9Qn|I65&4}ZSE?*{xk)X${t&V$F@ zbfmuz@b>{;?4)*nX0C1x%Z|Ca3#rFkpX<@ZdOzuQ9v_vqfNmRbWjzJ$_;%7jIridL z>_~hm>>O?6uidmpb9cUuuvbIM0A3}Q8T2x9cRo(t;2Z$XO5(6CV0WCmWB+ICwV|C^ z8}aO{4f3b`V@}K)&dc?I{|ol-@lE?c=qFW|7~8SFV*A3LQPDZ(xsPL+0H3ihAE#qpdUWqd)M<;P)-)1GM~}?mmw4HytnFEVS`u>Hg!r zhpRip`+2(KopTc3qyp}7Z-^X?y1_}@ToX#=h5&X(WPU0*A@ ztC}+VeeW%YtGnV!xw_kVT2vZgx$<=9TM@*cI4^JhsPdR_C>n^zs2%Uy?y)IOuc9IX3OsBZBa{lJ0(|duRL761*hift?k^X z^cq_xUvEB+>TLmV&dt-C4*}sxCY|ejRm? z?rZg|DPp@xj6ru}&+ZPIl@1L7##Br4{%J) zXMA7$#zwe-xyQ5(^Ms!w?#B)8{lw+-u0mtn$lxvj?gwqzFvmlE6dUq0_l0%>=ON&T z9n@Yku?Ksn-Lr3f)cZ-%{_F88=Q^<;$R?KJ=TxBgb}qOC=g&a54Y(4Y18*y7 zK!;z$uf!(yoF#a^4zO_=<8$QAG5Z9kg8DLJpSS~nb11jLJ|({_`v|9k@N$!nJ+#bU zXY;Z55apT*s+x~8(#*fs=2tB~_xQs8vEPaL%WZzm;%ojZP5xyzzi#n)CnNB&_nr7l zZGKQt{+fS>$v@lXhngQ=W$>||iumm|zo_}R*HP%-W%5t9`DM+oYd-c}5&u}5A6b0! zE#b+#P5z5)epT~pntz|kKO}Vx{ns?VX!dDN-f!}MZu9FFU-RE-@_%IW139lg6NKh_ zd6Q@Zl<)ts`Jv`Rk5axpCjVPDzi9EzcW@{F+~m`KO#N#<$o=!vBHcuXC?1C_McIoG!=Nh?$1_PUuVxod-LA#cicP0`ERzb0`_u= zJ$iFg_k)fn1ASX8gBMH8w3Sa2I&r*G<+o%pmcIh+pLL5E!W*Auaq0$VH*g+O96Mg< z!n^SY$vpRWAS3A(u$MvdLUT``#W|HaW&UQ(N8e)SJsCgEv-#NbAov&)yZJ}ieC&ge z{CYaSP4hXYV|m_ganf^?us8XZW@?V|pI54UkjwBl_Y7KE3s63OpPI6M19XiHN5s7D z1iqa=4*Bg@>KJ7>hBBazW$xI_yI`I*nQPU)!q@*)pz|09mg77h^$)%>cMSiiYe6#s z=E1FwXxIOuG6e3NoX#D;o8@zHi^;bHN&920KjxdcPjrD9?CP3{ z|4W&yzR-?ieSyBKuRqAqS9lWY&c!Jv`1&=FN*JnTxt9hDI4+2 znja?LL?pi03-cq*ucq_oTKuZTH}^1FJN>ogU(@_3o&OV?U)TJ=+@)yoe_-=l>gsseo^y7bBCg({}r2Gw)E5aU$FU+rJv6Ktj(`#zOzn1{(och zYnoq6))AQh37cQne0+n&mH#hnKKcY>lj;2T+Wb)StLglA+5DpB%UzAh8rXw2zpVM# zW9ssMyUmX@znsqhJ?5hv|G_qd-yhJ1oApn&U-9~ugSB>Sx7YL3i|rvhNVT zy6+HcPr8rPxp(M6(gh4<_#*k?S^Oh($9;j1SsBo8{=I!hAGyyyqd(khpV4={-aexr z{2kH;ol&HD^~CX796!*`<2v?iWB@eUagNL0C&uUhlfUuu+}%1aj&m%sf1hWTFm~cS z>eNG9xIo%{p(b{Rez09)rv+HwyPfuiJ}G6>K77rA)1JpYC>4_HrZ!x|UY zwn*oTv2M*iIKVy=V2_o#`~1V^d&(Ra|1QSG_u(AQTX7EOew@R32hQQVGdTEx{|-BA zkFJ_LBf1Ln9arr+H@fP*OQWmacTsfJ`!9>G`oI;@Rl?ui_jXwTn~e6e|4Egh?3FnP zO_`65N~f{RkItQtu^oTU1LRuHaXu8{!g?=`@d}L5@Y%^jjt`5yUW;D@ciKyR~Xx~WthCow3E;| zLwFN(_}tx(%e|Y2?mIC#hl)EhWIo}(Ht4MldTWE;+Mu^K=&kKwb1PR*;Tb559;EBPl(93lB9OdKisCrrEuzg8x;@yX?FqF3C-60f1h zah=)gHxt{F>UQ_bqLQ@d<*>g89sBd)BU2aq06%TpG3*KcVtNv|%W*zz5AInJc{IKK zv0!Trv6iIiT081{>%EM>5aY29Uy8j9HXmoGr)m3h>Y=gyU;*wmE680xPj#aH@htUD zS(SGCGdR}=dS%)&?nmH$=bAqA-qpH3(_d5{JyGmMelLQK=HMN+SU&=GGphFUMzx>b zto>ABKQcZ$7qYJ_PG12%kS^qxGsct4JH>yxcJX=Gj+`yM??i1+N#DkH&v6&ZJXOG5 zMf?qdGvanoDPXFgL!Zs|GzonOE$koNh&=2zbVwCh{B9+9v)2xK=LO z1kdQ&clw)D8L_|8?f-tNe5`MeedDq4Ina^d2C|PTqo3~p*YZ)mDgChDaeT~FTiMVl zgl8IkR~L$pIe_m=%t3t;UiyBV7cClJoW-ddoHpET{4@4#X_+ z*UyqMM!^1`Pfbq(d)uq*kr_0@-W%^0Gr#Z2=#Mbh4`Od@DWgvS`rea-U zpQX%sV=aA(ddbtJj}sXjuD|cGIMBly>I61D54KBND_~zBf7@OxOI8S+d9fzXL*BY9^0He zWBylu3D0(SjQItBbN9i0D#yve^nnwC=_ijxKIlJjvgzyP`2;)@pXtX+`;=$WVwn!z zXV1NR^WczY5906lqMYonsWaX=cp2+O-&ux9_;bpS{AKMC{66{u{vLxi)P82L^<2cI z?dJqrU&?gs_o!iy4)2v{e>&J&#xsB44qdfR;oLdyIpQ~8+Q$l8BRseNq_DNfyN??2 zyC>MnJDD2h|Dv$^hY7|d%05v=;nBvXX&sWtI#+4w(s}MMjw6J(8*~GqJz8%`mQ;^yE1OY0};j z_}E@8jl-44g{Q_|4KdYEC zY#%^6-hWQr`~d!wdGMbReC&@|e~4SzE+}hN{ZxIv*owK=0cn(fHSc3}+NieWdCP72 zxF$I_xS(k36Ys%2#doqVqfcXBfIfSAK6n+-$4I#$59z>`O7xY`Z)p+fW+(j>!Vz-VjZ@a@ukdj%BK` z?LY>N125>%cZ{*bzR@4tRW{|A_bbw)T(A|1k;xBm)Nx!E$SmhDZ!l${992BSM{a%i zSFm?JgKq)86S|rAofc#iy*n~K0(mIMBxq3%whQs0IXo93271WIJp_n`r@jw$y!&3<87pRX<8$9Q#;EzMg%=G->O3d7yPKZN$%0d#dK)sowJH?E;Y@ zYb)2oRu&nZ<<{E-?@i39w-Rw0)LY>6*HznR1Kd0_^A6uh3koMx&kJbVG27J*x`4&P>d$|+s zh5EC7!J!q1w;Asv#z*^@mS4u!c(;ClcTzku!HB1>E8W{_(4$lwIIxCdtE3XPKz2uUM zE>ZZ=q4AO4O4rzq;YxUAxboJOYr1aicx~7Eb+?pOtnAuw`%Np?3*^YqK*goo(|y+L zsI^0(fFLP`9~&C(@3jC*N8u!kN!M-Ia1%?yU%r#b*hu%_Xu?cHfI$5lcXSO`AlTJc zh36BNf118|XcX#n(pL=hR|dzz-U`(076kmAEL^};*%5B+hYl48`8G-DEAWaAAvGGh zWhMaWxp{(w|E2L#ECeLMle}Q%Hj2AmYCYV*T31CY!Byjfy<`1DgWUsRiB)dPv}R~i z2p#kcjrNc2aBvn%ZNjb!tfYE0nP%3$BnNNB{gAX4T1qv60%Z#V2G>>i6PM&UcVdtr~Qqk-SjUa7hbn@5Jm z#s>NaH?1E7aVv95js&KmB&)hnxqac-P}o1%Ki1zp(Ep}NDCG<{cMtXrz?{zMAM70% z?*pf>_mwgPsbq9SA3X zRrmNnoadz9Sm_=eAE{6Q38tGr)We3hYGCM%x%s7vw0Vaqis0ZUa;@sG4D_i{DYyf- zzJC)6$$D`}x%srGa0RM=QzZs*^LLC6pjA1@DLDqibz_^MTXj)K5j?V6}-pw(7skE+id3eiUW&3cYmyNB$#v1kwZRzeG49{8E zXYAHG#+BRqQN5$#o7GMp#qY8B_bU8bjDJ_+-wpWpI{fR$zwP+SB9Za_8vKU=Scy2_pQ<*s&>p(mXa*#@Hr$$43UVB?Ak1K3pPu3=U^7JTkPczpoN* z96>kHH?SkDuqBRWTVyNr-q??R5H=xB2p+_vg31{+mD8epF}*jA^utnny9Wk(pt4-D zs)EJcn_vw~FIW=Se`|UeAEtX-5~e+oBXKL`hdxJ98)N-jDnsLAxnlko#8=i4n;2_k zdspw~@xi;6Y(dyIvLgx7 z-F3xdA=o+gE5Xo4_!}CSaNIaDv?Uf)f;G4sk6K)VB~!3I2Z24{RiXAb*?eT7-_Pi6 zxO-%@VvE`rUcY|b+MHg|x1?a@b`(JT)k5~dccJ;C(V+k=PGcg$_;|lWFc~>2hG2Nh zEvv6Fl(Ky@bjj>E7{U8s_ZEpE8q&M<#&9iQW+5pxq+l^=-_Ksj03VZ%|9|}((Sk39 zhwWWDx?^3+Q2ns4xbJD;;Ts|!GhdgJXz{Q zG+H8%a^QdlL?wL_tP5j8L@aAd7}$hsZ?nT2ldmY7yGKI=I9o!e!3#cu+%a@D7gQ_NjFXc1AUAlmAzbkB{ z4pdhg#|H-B{>BGcG7e`Ax(UKX?~rSxg2CZvMbvheso_%RN-bAq%P@u`a2~zPO41RI zk5%G$z_A`T><=2Hlgn?%uKR|@QFKhNjgG;t`7@h+4p!dS1#QS+)b+o8L`;>;=xO%! zVK(~iQ4H)2-0=A5=B|zXBTRAeCEWlbIZrR^D`R4^QgI00wvJZ@d!<4b_MHc-6f*~| z-`@WB`w4npGl*jZUD?(pJ*?Fg-qB6iw;)&t&pWgcQ6!^l$QKXBP4R<{@v))7p)Et> zqv2*df50rf^dWeS32Ar5apT}vilZSU=?-U^0FAMs7wOkIL1y3wH}--`LVxY56^!HP z6;@zcB^cb8$`019N@WL-0;BYF*%P_p2W3(M7A;k=DJN%aOE zA4qKe4Bhw@_1p_4s3)m)#QPgluXa4+#4$Q^q6TR@#JM1k^#_Sxj>GSX`1cC@I}QIr z{5uo>&cnZR@Q;6@cl?_A>Z_nXH65ws#{S%xZDo6JrP2rgEOj@)KnuN^Knfkst16zE z{4r!8uz*Avq+D) zcB9P6#Vr-h6!XQ|cC}@wZya8HkkNb$j56OS>7k^fNC6gJQZTpnkBnhPEnHg}d*jf^ zU7?*1PcV$)j2w%vHvCg01i+-{5%o0C1p&J@ z4Gi^ks{=)X@#8vQ#?B}9f>Ks9m<1ofKdgKa&){)NfrOLh+;X~=Lijs$Qt5`YEIP4_ z!$4Bt zhQ8QdPI~N&+|Iz^(=6ZVEYjsSi+vDArB=OX==Jxd@S5evosGp(x{cCh5QBJx+EX(V z{WVILdEgv-Y?SWO5gTFe?$~!GU*&Bjy@vy1os_nA>*D3*OFJ+vAJH7v6qH}1bQiQs zJ(=514l7?hoK}tKIfb8-pUk^=xu9`7ZIT*i)gqM>v?7Zx`m7Ff4E)KuU^nt;Q?v;`vRb)$2;DH>~E;`6vp^c*f0N zkHs{b@5j4qD{l-%D2_xq`JyXlew=P#5?SSa@zti0ED@vc(#QkjZLZ#RU9;}Sj@4_s zR(0I6W`oRAx*elGU)0ej3zc*gSD_Xp8xH}Z1Fq9-9CDGNhd6!l)x?Q&ophgt=#LA! zo7{eNSFImwNVJQM-5AOwWhY9h#~; zoG1KH^Bk$9e%fJs4689zN{3p zIKLV-z?m_Ivhqiz^Ffr1UxAl}SgNBVScRoD^fX~Y0?I-yV$JA0G_!c!2=WeeF>Vk+ z)KB^ElGhbiEuTaP{7>*(%ePf8p2@*$lpa@o(#xdyHOprw5TiQ$vgxk>a`n(CUHqW| zG<3Ocsff@Cm9rMUfPX7)!|p8ntz5BEes3vVE598pxJnuXH?6-;eoN~&$nW~w*UImz z)#ev|ibEKw`R)Pumody=F}4sWZ68<&u@kFY(AzYEnPROW>@}0W3-$LR{k>R!FV&4f zmtJZT>^>oV4K7o-*XZvui>D8l=>X@qJBdwW z*sW9<5lBwej`a7AI&LB8M>aNs4D}8Tn9WczrYRuusdvu%rE-S2MvpM9Z+Hmy*99;% z1`L2w#6iM?vm2+9ac71`nvWZTDX*9YCCuwbZge(6qfER|dCr4R`k^6FB<|!Z?kPU2Z(J#S`nQaF z>FXtZpu0CA26@(WtPuIP^rq8qT%qZMUiw;1AMGD?cQoF(e)alm;0pcyh-R;h9j)u` zHE_hDa7vDn$}v{Ko)@QHOWl3_*jm`z%ci>lnS(>voU5uM?WQAbHnbbT9}{~><{xPfeDmwy z7RttX+8$)G%#HE7w_(u^vpcd6scQuBwHR=`pNILwh#4^R)K?kk-q9tiT;lGy?KKaM zJFEtKcbJAieBGzgg(bhC@lBhDF{K}GnPt9gHNl)@9)R@U62FL#HM26#LZY9)MW>G~ z2g&cNG^CKtPg9V5%o8CbPqkalgwLXvU~qg(m&0@;b{1fd;;0o%@?*Ux$tHaVwy0UH z^%)e>>ydP;E$+pO)hKv{0nUc^7@$uvQ92SC)&CWh?repI}*U-kU zp%HWrdHJd*v(-&yCZ0)8O4@~)-T{N|@6-u1n64Yj zQVNuGX?vBv*%T?EH7pu|AIZcu#FwtIA+vZV)nKwXzQ56l%cMWXOvftt;}APjBrbJ= zH9u7C8%LXE@S&z~jeW5Z$>B4CrlYyZ=V8f6$G5rn>CD6e8!cJL}VZJG- zS=-lq35QVRK$>2P0;ytujct-j$!}uRgCl<|IMY?$IF0oB2m319trFsQJ;AVH-TJQe zx7>8oy3&S~CTzm|jsSU*k#A z8S5R!n5uh|JHNGI#Z4FvbX>b0l<^GP?%sqAQ_@lMo$$gG|J&NzkBv;DF8a+YR(GvH z4JL7?3v%t>TssY6)@qhN00FbY5oB_KpP$`xaovuJ3mY zKgoC2bD7N?v`aR-IENecoOFkxp#!?3E?pB}-rU>2VrVob0#G;IC4zn_ao?tAam_D4 zzR`o1M>|ymtn{Iaao*7itTmf?ow$7nq>&r(e8Sh^h;+kG(=ctjsbXrpG=@Qn^X_XC&-lQ85VrOa6ufvcdPLlaT&aWE9%KQ{d zHfy>AYi40(QAws@1@Cb3$J|*_1{<=-@4q7h6f8Y&t7V@>jPLek2R!OzQg*Ug-|i|eyl zzO1jM5ruD~bf-V18)8gh*L=v6e}dmCoU$e@9glY*p24_f5UYIsvQNuUP4}PwS$I^% zVbMPv_-+~J+gfZa_u;@XcC{2;yKwbDdac0Od4y*4T7_d>jmos1q1Z^iR^h1YR_L_~ z*FQWqG-?ZL?K8*jT7{GNwrlvVu`bM1v_SXy!;i_#hGo%6uL=Fu;1O@*tjIQ*tL9ut zGy2a5ehh~>doT^%D*eNONBrM~{st3(X$R3rKhFpLaN0ZRA1=IvTopO6Y}KEN%iMNN z`iBE==Z(xMwqyrMBmEpMyv{567SWeFT zmiAu^4Rh8ETQAH*G85s9}%;SII z_%M!TVOn;SFAH&o9#7o^JifKVoC{|v%g?{{dj7>in^dgV3CqP-_lvXT7JAtmx2j{! zdfAX;^Nqa7){As>pL%n-aL7GJu6Vx8lPgYdnf}1WTm}OhO$j~vHo0}Z4h)RvGZ+}p z(JP=0U$J|!PoqJ5YH`+d+5egY-zXi!`K~m$Y0r()u}2Pf8+jP6yiM|5Ik3Bjm{Oib z=_!5&!Ia9D2mfv0q{jY)-nHZGoA6X?gqQh@|J^ zz1`Q@{c=07rB~qH&I@Ja@p&G5Hq+efsmz5I0t@}x^Y=0V9J(Csg*(&~E}X3FNNuIV z+5OZ()EjWXUKZdDxZE#xE4Rey`#L%1AFjtStu5V1OTCADO;B*;;5K$JP5J;8^GbJrWn+xhkF)da|dm6TS%L8wcMGB8gO`$h-lqKFnA|8qAI?9O3t*M)IE~DqUJ5|1EtXB; znQYvoA(QFXeUV^~&vRe9Q;*J8THGbFd7T{5y_LP~P1v*E!P>F|&y_sY$kG@C!cfqZ zm=!>grE1r0j49^83n?iF;FAIy4#pp@*6wFCNWY{0q)V{*vWq0OWyIv)P_Y8Tnb2Yw zZ^)JkRV&}6fcD+s38*BQ_c**zzUKXwkpY~GPr{0IB9p<5)5WjaXaeiy5F*wniYn?e zTDsLe2er!f!#sBp#=UQRhDrPn`$r+5{>~V?vkKc%`bKV^rE{0F%i4<3Y^D6d$Iv}I zxNi7y7S_-+{kBV|m3(a+6eJ@D@tfo~!i&?1kMk&UKG)S_qjd5222kX2-bpjh@BbJ1 zZ;{YkWn%*W%zYOqTI^IHo8Pb4dqd2qDuG--K0M4F@0C7Y{Y7(Q$vDqOEhUL)HwhB* zv8x9E;c_g24g&j|p{FxJX?lGzzLm?;v-~r3E-({8X*!zd$g@zBviN33$HTYNJc&Fy z^ONAqy^P7dXhtvTMDXW$&{fdFZf<4@7xsh;Zx0u42p7J|C@L=J5+i8B$FQ*Zcc@-< zJ5+!n7B38o`=s;2G(EkpR=QmuqM(GyTmp3;Z+h*jV z8l%2Mj=XfSH{LiWCL+Cy++PJ;k*oFm6mBeMf2luzdOXDcpwTa}3m{Z%5qC(@nW8sRX`JIt-VWDRHs}e+hh}^u$M{ z;TxroRNjb9^FlmDKb_9}-(r6q9}~mIiuhJ<_T0`ZeG<0h<4m8kbv`w2l#BUF7?sDz z&w{lWd>G>CsXV{GSD3iJFz+o5^hzsvz(5tc5yKvArjI+G@v(kf0iQamA&@$bS!KXE zB)erazLXshN~dcam*B=irPCK*ZGoKAgFNHyPJq$ST>>(ma1vAw_b&BoNrDos1ulOj z9>)U(ck08Tl1k4VFFJUcGrJz$F24-Szm^w>CZ-V@7#say{)|U0k}+haJfy)t8JBWg z#!+bwl*7Zw;gtsM@p+CTQ)c4oadg$t$gLZV*+Mci*fG+k^txKjU$V67Z{cl`GVoLc zO<&yyF>zl>#ooha;S+N-2pA^lIZ;O$sA<{_A^dS_@A&B0&=$9qrpzF|cf!%5DNt(k zmdtmq()L0-w--@x3e}G99H~Mv%+O4N+I(D?*=;`p;7pGizsd2RX~_BSCePiLYv7us zt1j6#;|&YqrxmYRepZJunH2w~aMB;56XpF$ZaEvJ%XmxyP4ydoIqA&)E&6{fxtVW3 zm?@=EU9Hi3EX3!Vb7m=j4;ks-ac);XAR$BW(aN;! zo4`j|UH#+FGfOg)VaPKRK#Zuv=0s(4$DI&@L?J{1h-(N*Ad!&7Bp_O?yV9x@s#UCL zai?k(cU)?5X{FY_rPhURZ*8?L-SK_xTU)LEzTb22eU_O?2)6e3{{O#DKACyWz2}~D z?z!jQ=Wgd-1e*Fbdsp)Yw;fUwSi^Y?Lu zSr7^Ns8`_%32>EXT7bAdqA%Cc&6CHkp5_JrUDp%^U-aiYmqK7SS4M9hg3^bFki*aI zwP^VjQ*eU46g+~9hDAYg+fCXXH@UIU`#o>V6+p71+99@^g~Hu1)mqYgO;1AFp@GM{ zbK*Ja`U+QO>Y2B+wUjs~{qEt>DmA5obo!3hW}Pok4xQb^^B5MU(`P)YiLVB^+R4+; zZs5_fJVH701P^b_F9)yMum*Z$a?5L=c)seah~>z$t9Y;4YFTp97moM8k6qjL)stPt z%X>MPQ1})IC)I!D`xRb5#>Z%*~B>RL53^1tQ1OcTLeocsP_yNuZY2G5o`J-to~{|_F0jZriV6qlxT z;vOOI)D^y`OnjzZ$J1o+KI&N9wge;6W_4z7?l~h!r{go#JjvWRjCZShlW=5RPg7%e zv&+nctL^um2)+8Ohuj2icuoSHPuXt9dp2?S|JdfE^)KYs=x&i0+Te_Lp1QXyk3fl{ z>)(c5fCu#hJL0fzJX zkxb2OUnuptjLV!o=ldr`K{$|4wGb)?v8&ulxY+EKgCSiX%u~Q!Iep=9IdX&j_&AL-Cwx{5 z4j*X7d^CtRVgZLYz37Y!y=4+FyaUW2voBsu!!XSY*G&E4a&=1%L5Y_LLrE#d3&)8j zMmWP?;rp{?&Bk48y*-kpKmuQQfU_?=z}O$|XQ0D{v!8)K+|R%t?q?7P_c4(CN`YYA z42=sK`asbXiudy?6c4^_%W&?FYd<;kVHm-9$z7(f0NP%?a`EB$1SuHr7ofSm;>gJxy zr^4GhyHroY4R7hfMsOHtOkF^KMq8{M5VgLm zh|aDU`aE)*nWQgZFmCwxxhe%^N`GOm=oo}a_+rmD%i7$*0v?MEdooF zy57zJj1d5bnDXJ#1iom@_nj-zE6}<0pZnU|tz0`6H?~VwMq(3B)3UA#^u8K;mh)8k z-f^RdG;06M1s7xrMoZdJ%27d=!~EKsDjX;4)m!05^0QdUzOzQJXcj8$C0|>NED>`q|X9eA#jiC8*3o z>2ZK5?oao|0F(^Jy&){08q&96PQWb}MXyJba<;ta#FPV}n zpITwLWYktrDjATuvLH3D8%D1)pe$EkK|1+T8GYqZb#8ctR49D`_S$ZP z)R5MQq3JB|vmEB3mikKpX$xA0k|#)~Z+Q$=U1KpEFcS6RXoWt7LB7plYI3sZF6uV* zlt(W|C{;d%sT%1t9bFkQQ==pNcH*ayUmNqP5#`FKmm?eb=F8_%&yg=!DgBKg==kLe z*2PQ6gFwMr8Y~#UJf@b`srPE&WspZ^ zm-6INQxf6b`3d(&1!s(X^UZ31lbDScb&~(D!Fpkhd}v^A8Q{R4GJ$c%y}^@0;M}M-OcP#! z67Dj{4L1xJu3E5s`Mq$LyyVLZcgg358}h#JeEAifeEEIhE(1?al`q3U!n<(XuvWeg z7NLEx(DK8ipW1sIF09k)C8lZcGQiOWn2pdErD42{(f91ddWmVO zjN(C$6qKv;^LA&-a{RF4a&D##s0i3VVPwqYXus@I&V1bZrL^cZ+9fB zU(S^|1GT>Jq`v|=Ogu8G#-Y2QlZ%&2M|yz;Xc#{Jc$1d;F!640tpJVw@C+?ON3|8X z+VJ?Oc$3Ntm)=qV-iEF}-b?MJ*S(tp6exXPcpjx*y*`U^O}|Ck51vO1{Cs%1MHf&` zKX`r7^A}}+7W3(&=f`tt`QrO6@_z7KS~>g*7QK&7py++!{-W(KKYlz{1|OY%O`uOa zO-WWmdn&tI>eVb4^TrR`0e}BwnXIn{+e+f8@TpkZZNXjw16OewR+>Z=pVJt+>84}( zl~hc+dMvTd!IG;Vo+nGJ3d@9h4ep9%ektV~bKDy-d$G)?%5-W?2e5f>c9ZU!`({hc zege0iXq)XZ?St47+j^r%7eNbT!VRKcFUV7r4i5?o8U{bt-$5pieN+VYrN;S%$fwF1 zMe)W7zNG;Op6eIk8;=CWD`o>BON1LuIN#deK0t$)yCKDdb05I+9A62_Y2u+rE`0}` zDSYwX`nkIgQ6_>-`swa_nsenD*%9mat1x)_WtTB8LleG&6UqL0W3$^)pNnJgs$`uY zUr-Zo%H6=z|3N0YVJAp72qzzeYgSV5kqfx;$dLwB3-p}Q{?fdA5gp+ zwVJ)3uKam)27t$bqHKBc?d$W?*=79VCEWRB&alnPPtz{qTMC^s>aEJD*(^g{m!Drg zJj(_nZZ6V$3k&LFpm_d`NBz+oC?5CnVlc}Us(#CBpm>HBH!JlgpNnTUG4)lxS~koR z4~Sk52J~&+=NQ)c<*n&qNt;Vl<^Zt1@zmnCLF^N6IX8AeiTZMfKJm`QtbxZ?)px(W zP|tXo4yZf^f@g5>E1RY??>zbZc(SUm5c|VhjCY91N}qV#O@$41vb_pZ+kNWM@E82R zb}LEKCw-_KJFohtOMN!uC6uGkJbDAgb7{48_F~+MJwS!!%fV~M?2apBp>{b3e;Ll1 zrmphj%*Dgva{qX;iK`p)6-HDxKmE{k@dG0FEr*M5L>?&pWm@!s;GfIMD8E3vkVo+S z0u2P;ub_e8`!motey6PY%;dIz^>#Gh58gUAbej2288d+z`*dm z4D^HF)sw6Ie(fJ~KE(IQP6OQ~eV^Wi7!bZM2YutSmCrYzUE}+u?@ynGzF+zQ;rpcD6@I<}^)G+E z0Sy2@kb!~V`!kS-Z#L@bPU-H)s{vZhYd_!a^uTzr#HHpy!J_Npm-P`yZI|5e{Q@!EW#DPuXySzcavM8_rO5$r1PFn(9OS*t3SNl zM8^eU|KNr85Tjm1g)<6A$;iG@e1q->N#+QRW<^M+4$1bPcYA^pG{N0sjVEDTIJvw8I(kI%reF64`UAt?t@aS|e{%fYl_wux`qO!p zU3$!-kAcLSer;hgYJBKFw}CWu8n?aKRlM|>g9$~x0^y{|0RwhB!pRzrNBSV(Pw5`8^>l_c0DtC8rz)ZW&6 z9*)frWPE*U?FMf>^o~KaCTWJb^_240R8^X5oGj#H_8j2Os;QOVQ!3}w@?bPTvxued z7xd*1C5avTJ@`Qe-K<4GBZmJ$_;>JMH511k@^`j6(51dw)K-9AV|xn@FT?%5bftF{ zRaH4>+W5-a*%0DXkg=*~%Goe(P)+UJ>N(RZtE$})Vp&#w^_=-NzR-O66+a$SWw`le zcaIxXna};6H=^G58;c{|fx`L%&o0av#@noVi`gbMo6Q`kOMiKzVj`x8Vv-&oV5_@FYK+ z6^s`t@_TMuZxblDcFJ`@7Uy(Gk0)gD7rF19D>noqk2>5BuW0M;g*IkkgIik%+DQ%9 zw)CFc*}Zf+u8~(;ck|1?TI{zT_psq5IM-(e0XeCkLb|C0-4)+Jd@gFZQA2^FeK9X^8>4tgNcW_IB)marUU<#tZx04_TJY7 ziZJ-VHwcSDHKYc$MmX3i9`7>u1lKQ&rtC_tZMm?X^@p*|4lhAO(yMT7Avx&!wGMwiJ@GeSzbU1wdRZ6_| zdAON)$1}uqGkY3v$#SD7aXroyXyVEC&6#P4uzH$<2Qbt(*Qf)N6j@8EINjdmoqJUT583(F<{6 zXD&CXZymk6U!2e1Z;4bN>1!it8`aSk1^0%eC@ z=_vM35*B? zZx`XZXU_^_mXUP(DZDr=;25mWc+q)-ZcA99Tq?SK)%*vFXX=`dOhBGp#Y^4t><_ye zRX+L+*H=jT^`+~mh~W>1g|luBI9%0Pl^Z{uKEqLmP2L0eeT4&wJwcO(CKE{4SA1Yx z=CiB5!qqrcA^PpIKscl2y*9skX2Xe9^_)cEWgK#wJK?I?vu0J+PHUK1Q;*=n;hcb( zBg2xsc+K7mudl1F^3#z+;2UZyXQ@}1%eStwW=_4~>f`H$`?&hzYv(r*#ZWx4epYS6 zyxM8i(`#z0(Pj%gd+LeRRm_csE9cCqRN|}n`nhxDFl-ZFH>YM6UL5nQ^?CX@g;)~f zYf+6)j{$ESWNsJGU6E?O=IG}UJarW?=c0CFe1y#|(`4YI1<&or?`=H|W89irJ&gyyM_wM7JDZh1ztzP7U}JMbcN6aioy75= zFlykDKEC%_ARO;ETtnHQ?-0P&4R|^Fa4Dbe=X=*sH-Qai6`4@ov`H+;vjV4Jv~~C7 zB)5bCF0;#xsO#+FnL9G>ky9Lbr}fz83{go>(y5y~O&5T{R_sh5FR_3CU-hHHPX|-`6719coa*|z*|qiPQqDf9TFM}QoO5FR>{@qpl))Ww zLWZ(ejBVClDz4sq^CXf^Un`fNO4>o3p1iEFqglNe)hwd9>{a4@lMe1-z6}NN0)?!{ zGXuq=`A8$giDl0gg+KJ&)nJGR@1flXWpfPv7qO7=;qgrEK4X${K&5T+7Y^{e@bSmB zlZoz0=7;NIq8iyqSDn-_t-5aR4B>|P33txY&46Im%&nd!Ct3A{a8mWDEHqutQb@Hp zTb722dkcCyJ2TBKEnS)MDDuv(3}3Z8uGdWCSar)$4={JpO3QU`ErcDaqMV5uB@${_ z_4`yyG*?&Adel%{wbLYrN9ye0ynAy`r1bgd^epwl3$Ig!z9c{`t}Apt?*TT^Mmi z_-ER|_)p<~2>v1?~{7xjMDn zbBa|pG751^QsNE-prifZ7lBm1KlE!KLah&6jF`OShCL>iu+B!3cmI|O+G^TNL?1ihK zuAK2G;qk}8DWnsJ6Prd0qSbYGu4rqo_z{8dKGfVhBEOrs{X8_SFB9K3yd_)1Pb0(%G^6Qsv0&Rejg2 zc~h*C&x=%-;RLDU9$B4nYz zyo4Sf)ANx2O^>`gN99ydlh*?BNfT$}tHQ03G%j6>PytlApuwj7<=BbLmm9+gG`|Jf z5nnIUeNVX69lec?&T~5qU$#fAAZ*s;Gp`HtAQa3PWJWqp(oFQVJz=D=#D|@c#C9hjc$wcM^Otl1@pA`9xV%I=!vUGt#ck zt}ZldsPU$NRldD`TF~Nz-V)q}?GxDT%NRKsZ}cS{SS^2F;U2DjYbv9pBsukLpz%60 zeWvdt9;g5IwxK-q<=%PxcNK4z0QCH{o3FmY7h`onaSP_NuW;#As~$X+gHJHsuHrd> zE|jjna8t?qN>?BrI}GTJYTk(K@~hNZ-d)Ax4THmuVXp8r)Cnb@eTB1Fmkvrm4u#)WI6ET2d@B4v zIO?G(1ZalqSW2Eg!kal6tA1UF5Hsgx368rOTS6qUuf!zW-M}k zl6Zf6Qz(63@xkU#<=daWP`q5VtTXACyRUF{N?TOK<9c-3eL6+t(?zxG!683n53 zlCH0CB}XuUUw(MXpj#DKNE3Q}g$o~}Aa$cN`gYwMe0Xy76R+ech#={A6|XE`r}uSe z4F6y}yE?iaNKN(iXS~@Ot&ZKp1yoh!48U?-Eh1YN8umrqwUAf4HvyBDf5Lw!m&LQC3dQwPZoTc zTrMCi@Fl*l%$WE^eKS<_`(~ix`(_~VdMU|&Z(%UJVNv7Kz;)V6?j~%_K{JCcPFEvl zjyx;Z`NF%uk7%8~5oWu%)1OfIHZ}H@Or132Jn61M@%^6kPHSj znA62_b`_0IFF$3*uAG4O02?a(p$L+XUXML0!Ak9So@{rEd#va^bQn?(>1$K|A z#fW|g_A8gv6Z7&YOk~&T%}Z%l=`k?Heqm{)bo<=R$u=l8C#5KYv$1XHILj~l&U!6d z&#QT2vDr6WKuvwTIhZcfjNPVa()kW*>)^>$%_EhXv9Cy7d8OomfmXBm%*?=x0~HIf zKIaPy0fb0GUWFbS_U&rE=#l%^iqM5#OO_}-*zsR%LaYxOz!&$xssh_qDr}YLbB%N0~=~|tDq2R z+`bp{E*gwNeE1qP`U~=DZ|PWq4jjbQ?TCoh2ghJ9L%#+6{5)zVhaP8-ubga&Q#~`d z=+Z5%`4AELtQKSA0!2$lOZUiv992%Vy-!ocstEb#i)YN8TL)WJQ!>&sLM*hP-w@p` z*vr>p%7V8R>HOr*Pn%7!xZNG^0Yeb`@n+XnQxc8uTPH8fS*@{(UV69;WEkr7b+|7c z%@#Tw=Vi3X1@m-5CmVPe4WuRxR3j*bkJpmkR}Z{|$1VPMWmu~xST z<_HpGR%*|w_o{v4N?NzNw#evF8Gxyl^|H2W8i|_P$|`Q+;hqIaIUYlk@zON04xh`0 zLN#g2XRGn&@0E#ws-WRHoNmsMUqt;GMv&`BDbr#Negy z*@0)~9(|k`*@1T|cbTH#dN8+yUa89tcgFT~j`LZ%DgbR4RYs~FB&5J?Jw3}?#Qg_4*MNCf@vr-KhtE2I2fl>N_-xFRn>wC&?}NDcFocBB}ibP`@6Jd@s%lj zr5qY`y~Zqy=~qc4z6KC4rGgFtk8PR0OO7Q=nZ&AAMIN0 zF6F#Ulw!cu0=gQx|$BrcwMMOlbT*>aWOTV=j82%=MbKr z?~iUyEcd&kTRm!&@A8?`+1cCFh%vGf#nO(7%qwQr>7}J3bbjYzibvj+a4KlYFdHg@ z;nnT9k{5$amW@d@4R3U}+M7Tm5k>movoX$dg+hFn^od%!{bA&Uxi{^{QrFlG?r5>3 zD17EjG}jM3*L)=sU!p$z2IG-!5e$52#&oLG_pAu)GiyUf!nxZ<2k5*a*<4J9;KjR4 z*{|4_arObOg4u5l;t9R^yjoNdWRJ-03^JY4vCC2VCoGFvRTLe{(Uij@@iRh`+|#zG zy@lmm#d6kidU}-2TE?97^`WBYD;ExtTdiZcic>9%Cd+*7IzA_@-vLL`?{2&(4L%^q zR6vegIs?WFo@Gy(1?2)i|C#qLo~+B|FxP?!on6J}B;|Wm3bCQv)K=GZrJ!89i?5AF zS9qaaknTY7T%%^__pAI{-YfGihO5Nekw` zFFgN#4c9{jRU{2>K1%+ENg4#RLY#*rmjE)hR>L=V&fSIF4#|*&$A9P`mlrG zwt>8LKy@yHM^nKA>Y&V@je{Z@PM%i@Ct2+crQT;AHU0kb1yrj32`gNnU%@6yIs!&< z+5k*=ZU@5)4|Xt={HkDlYy;;%e3IO$@|Cik-r3C}@>9pSlI7pscl?T~!Uf)qf+n?T zXgd59mvuHT$9gyQWTEb=soZ1%29rFWx`DR46@$h3+~)AifKWv@KZU^)VmP}r}k5|EX&C5$yAQJ()CO$|wKfNN1`H40hY?8q>Y)df3$$6QBIQ@87rs5!Y z1gXfbcG#er!L8FO#5Q!%F^r~3T`JE-BVIX*Il+vQAp<1S@iX?vJn}O~W=*isx(i&| z8_(ke$}-H%wyAl~o{V70`v^UL&xG)P8lb;=u$lAQyT3<@((||fx;=2)eXGf>{z@QU zJ1+tGbltA3#QW;Gz-a&U_=2q_&Xmz305%RpFyn@nLN$`{x?bf}t6)0;JfzR9mn83o zpQx&z3(x88nk^SXO!HMfAHEwuM_+_4)I54_e7&lChCjl!$pi`K#|H`L$1B3^tZznm z$RM!G+~W}p_h<*hwXi-q1%=IzcL^GLI-N^UHOSmoCQZ&vU0pN`um`tXvbtzJ>iWTR zf;yV#qFPL2ttfa7T)}a-8J|~UE)o;tsFv-S`O=@50BI5{{FdIQ08n*>)nt*;#U z28hS5gq$McBd7Y$L3#tlLs!Gs3(-WSoP+ds1COnfB2<`8zwy!pHejL}7Y4dnEI?8*5?trAoGv?>E_NFJK=yHGD8Les}F?L z(ZaH*B=O=_VG?S6R&%_{jgi`Mu+Y4(S}W{-p7&EKmqnbqXQ{|T%L-S~8b+6!9U1L9 zpw|0vFo$-ZoLV`zN;`aGEje&Rr|yTVtO*UJ7d7tF7m^rekcNh=Ytm_Ej>AR=l_$W*&X_y25w(6=Z5FPxw7QO z8<@ZU{``MO1GW}*7RKcK82A(o4^qL_*3YSjq=v6q!;=LpYflYZw?yS>FAc}^Z@GbW zJkPu2$Hf2nqmSj>u+5sWq5_1Y1WnE^;M3&63N{YE4{P}nD%d^GKuKj;JHDbQg>-zy z5cQyctYRI$hyLBLTs@fZb$S8W$QjcSagA@zPx$C#CI14A|FMP*-<=wM_-vK%uNv0b z)71WXKdZE!|9KQY9ZGL$d;0gU((k|Z@NYd(1OK*zf7`*o?cjfJJy6!^eVhK07xM3? zPojZixYdaVTKzxzLBCNx#-1v)9{wNK%L!FgM`bGJEyDJI9%S%0JgLIhxnr1MI)#5R7DyHS$=^`%6_FsGffW9)k2LrT zUr;fd`o(_{rvobb&Q^v0iaK%2kad3*{kt0s{!f0ZqPCkco{Om-6#irkWEA~J-&f)H zpOS;9L52UwYJ23V&6<^3>jC@ZY~w;jb(!Kpa7e{+SOO z{H_}m{^b4o!|#RGRem=B4 zh5zm^41VN8g@6B-`olkPtgYqWv{u!I_xhFRC*uwNoi{7|m4o`Df7sy$f5c{mKg5i& zbCN0fXH*&dNv|mUH7DdCYEa=n)L`(pl&Qh}F)CSJB8C6+W`qCXP=){EA$h10pzt?b zYw)+!DEy86>i;`88~oOV3V)@U^T=VN=zsfOga6iN6#nLZ>+hKl8T@q@EBsf~PY!is z&o@7A@S87Jh!unKP$l3A$f;Pz>_{Co|w z9^p{&J($FaM55T;W<_TKp(wVPXm)HSN$1;f>t3puNE~@5FDEeba7>-5% zf)+S5n&Mo26|jqAMKMVgi~bj5#v&$q650*&+zWJKrI==l6&>+21jScF;-VwT*NU?x zDLRVJ5lHbAeoKfGjz#{AMmu^cpPk4~JjcGbHx9il-e&^pO#CT)6=(Qp#iyXtQ9P2* zvG`?3P(11;1Un%2cl?H)#{^OFXg1Wh@y?Dz2; ze-$FeD#lB)FI|M^{TWPVOcMGF+N0P3_v3L;glB5Sk30e@N`8%Iki2Lg%;_aJBlDr; zU#R`$b0~^P@?=b$MUyQ+DN1faNO5vB62+2dl3{WTUSTE4_wk*uLT95m;?sZO(Vx{r z`a8-=|74`yC;2-xDHX{dV{-1`wf8_x@jg;J;e8Y@-9ea zC$FGACcnhGkbD%pBFQ)n%L?6sRPhaa0bg^x`);P4FG{}*gze&*J<>!Av%7a12O2(lRJJ|(E zLdmh<6;3{mkVx`uC;(E0sjP25@BzZW#qsbb47bP2zk>cb;(2FIj@EuRCM0iQ^ zYJ4Y>??I)5l8@s#nfx}s2PaPfPHFN9NarLkgK|=a^L+aQa^4Avt>in*gH<|}Hhijx zsy@kU7=vr2ygy!ax!7-&us8Fb=H>?Su&n|(9rTPn@j zCJn4UzSKUNNp6EyWAQHgMmI^fJT&#j z0V-0fVWRP`*{qC{Qop2OKVUxs(I%%tM0-$xDXHH~1F%V$&Pbh4n|w?(T?Zrpj|;Fc zbs)&ZpAeucwVjoBv*h~XR3l}3QexJm=2M|h39up6jLH^&+CCd*u*oW2O}qNKod8Dq zby&`DJN~}?0G04gC1O4lg=mfZUF6x45{-N$z>BF234}vzC$^?iG^$9575|mgcGRwT zG(@A=mJ06+ph$r2ssEuCi$ko%Z>5@8LkERuM>|rlGj~Y=-Y*MH2QWB9Nn^0s<6*vW zCsYdIoWG;!cEtA$4MR4Sq+>!XIxXqg5ba7!x}N|qrlzto9vGrwZ%uuVVvm!UZ7E@N zkTBYAm43`j91?npe6~YbPW+3ZX7bsoO47sKpjZzb2AyOAQ6N z_yYpGmHHct^+5r4mW`zWZxX<=%id<)cqqhb=h$VB;wS#FK*Q~_o2b-B1T$lo9mBXs z1)2niS$s@{onn^_VL3f6aWm|)AD~d;PYATYE@S%|-z-q8U6!Gqo(!=yS!tIoAkC*F zZk1iOgPM9;xUaLz-k@a92(-a2W37sRU7(G2+5ND___LC3lZ`h!i=gycCfE{UbMO2b z_P#TIY@{6Qlrk$LJ{y=C@!3F?09u(dBFY9NN3$ZduWhMInT1*b-m*&HVbf3-c@|1d z_t36N;`1XLQFl`}QLIyhf|dF@mA*iLSn3=CrwSt{^%2sTeJ?e!2j|Q|GcW zo*}@9)VCRPrU04LF9@6^z?jt2%xQxF6{*|U0xXPd1kp*Um)UAGMp&;Vrxvl*SR`mu zQmnV}CIP0Uda3tj0cNB!WZELY%v3wGx>$g^)O_Y=i2!p`7m`}501HwxC{CLIXQVD? znVv1c!qgI($A1-LjhgE{RH;PO>}Mid z@$*`&Y#j^of(UK@jCk4pl;}c%n&V}6km6?}Y}qvLWPmnb6!4FZ(jOIPuFPwEeB|vb!ke6%w~SUbd2L&Xoea z6)*cd-z!%Mv?E@281=hKpq=ru9xC{A0=*x%hERIuZs_qS^N$tG{0SUW@OA?`R_Rs> zadl)r&`htw^Tna~jgcRqpj9=w*L(Zx<8WnmV6Fa)+efmKx7u zyi;Pfr$FC|-zC6XsfEwYgBv1t!95x&e2{hRr)`XLE;tvZn!!AqFQXdfrjZq~VzefdXwaXr6 zkv}F78ly|e;c=NefNr5)o!?4{NjhH}N?P1HB06i_x zc0e6~o)Kt=U3MaM|8;@hx658b$;F=)C>9#lO)B3IXn3gXR`#a02viXo*2B2x1ezQw zyMku>ycocY&@ebuTJaYot}aye9oE73ffPWJ~V=0U6#0LTlw@Taj#{4i+kHB;cUtM-Q z6rGO5O5UQVuURja0k*c+m;f)PR*ZbGw%H(Gdu5 z!l^Wklt3B0Zzyb9AiVn)lHwi$O|i@VOw8c|)oG*MGs^b{Ch$tjSdM!|uLpCd7rb}I zCq=iq!XN4v{xHArhil=h*$^BZ<+x;P>Ot0(V+435^?h3Mu~F57YWf0ztuM`6@!40>$jIt*irGf(WILW`Ud| zaZvgPB;PG@6?WM-nX4XwCZpp(%wB(&5Ru-!0^;Fd#Gm6{#~=(#HxgDRnY=9w)%$RElWF3os=Wrf^dPn31}kW>qObUFz2mBR*At1*x0Z zU#JpbVd{0FO%tFsHInUFwE$hIy;gnqN%o4y+W9V7|(7Zjx49`xD1%dQjv?S~7 z_!+5lQFuz_3sXLoH>P|lUnIbbseO?$zCcgAU^>1VW8`34G$`3e;+s9Z3sbDbPy0?5~vnJb_lBwoasVekRp}P&HLl za>9COBl#*=W5Nh5Z7cL56jgHKWeAVWLq*wIa^@>|j&oF6a+WA8{;kXL+`yz;tk4(n z5-M4E4}jq}BB_17nZt!7^0C(s$HcZ}->_<(3h+fd2F~`nHTe+&Ox0}cDu z4fzpsQTgo+8}lRXgbmuaZ_1DO5hSL|K?We4p^3;9^+8_Iw zSbju`YJb+rk9d|fcFXYmhzjcJg-m_~?|8DmS&<*H_i#kKG$}t~1XFx_a$dxqHVi&= z7N?S@=*T))CO`K2g|NBum!Y%JS??ksymsr7@<-67hZ?3N|v+ddC)k&4~4r2I3GF4UyJjZ4a}M!OVhR>*fQDL;BGz!n8=SW;epEx^SJ zdEJuoJJ$eQqQEsv%I6WeRe`IPly4=YHU(b1q`deVfM;I?Awz33}G!>y!I`t{Fi80LOm*W>*DfP0acas%5mue5M-M(bRv81$;`VOys zf60i$RslRugG)yoL`9vi!Ojs6d=B7eG}trZ3}*8J4W2vVIJ6d_3pMze5kpZCL!UiI zDDPM@;@-mnUZkY>$&wLICIMc|mLDQ7+54wx)Yk$v9^P^zvVqS&chf%3v=`hiAZ`_F zzyrzcE8{j>1zdsv8Mt9!w-^W{B5c#;mZ&WDa7)`?J&Ub%Z1 z^NU=$%iW@ID$@OfD|c#j&Me@m6*;|zR&Y5l6g?WkUA7d$hrW0$9xvykS<(xw9Su!Q z`X+*6KiCg_`J#8HLhkt2MnaAMMKxe1aU7oi@+eW_4}w_H`+RodkL-`dXQdO z@+f6V+tUGDTr%$<0A==S0GF0rj^ZjBVqXbrmz7kadK3+}Zve2Wy#x*rU_;4rN^qb68%wTY%s2rym8>Q(!5)t^n@iq05Wqx{ZA(cD)p3x$ z9(-Q3600e~4Y4}tdU(-#W-@*}-s(lS@DVc^N8tHZW;Ygp^AJ4W&a&ZZWDUZKVl2Qx z4fvwiN#p>Zq8N)(Lhm=BWeR@Az{dxdaEp)Fff!lBE%q(p7Q0KhFCcm_aT5EZIAUk% zmE5A(eFiV}k;@ffN0yE{j2K}a; z4k)S2dHi6sb&do4q0Y5X_%P?DL(%DW-bDCt=OIY4r*j18lsgxo)b?_|2reU>QYdwA z=OS?5$N3+a(7w)nNR@GJLpDb`w;YKZ;+)yQ8SN}bH5ubPiFz~EIRcpbIsb!HS?3|p ztZ<4EvcEG0hI@c>I}H0kXA~qE=X?fv9Pj)UI1`-dpf=I@JfxlE>;pX<c!R7X0~k*}ki9nkR6&JB>{7-t?T=CRJP z(8h7j8xt+-cxO5&OmV&fYL(7N;7oP?25MDK2`Ef+{tCX;&cVQ(?leJ@Cpfo3&oi8h zp~)KOc2GXiIT_z4InzL4rgH{#HOpy2NUbvm)Mh*1f(&)eUx9zJb1_2ZIH%yb-gyfe znCnb{-sU-_2$}CZhv!qA&CtmL=f}{%sm^Lt#nYTq@O`?o6H=XFrEUP5*j}OHuxm#P z!+Ru9tOv4$v*~7toz6Pn0hMt2Hsp3lHvJ5KhGx?T!J>v`)02^nJ+kT3p~XG3=?_4! zJe$5fgEFX1zX1Wq)jG|*uXk<3s0f9$lou5E=Wljb; z8RGm8%4TT#IS}73oBjgGWwYtID9ws&x)jj<+4Or5?SQNkM>h9LUxKi4*>pF6@!9lP z6y3zE(+-(3P9;ikq|*w`k4hf_J3KU--i{m`mQ7DWq9d~D;mF+Ntn(5?-{08`yE(ua z2E8BXOox!;oZsPjyt5g&6P(|J%0#Ce8l2?(5VQ_2%nzGI}p!2!Tfry`%ei$Sdqtu|UCE4`zFpbu1`p?ir zTh>{Nw5K^ILA2AIX=Ie%9|~EPO*a7Tv$g4GQQbPT&MzS1!t_I+a8A~_3A7hEuK;LD z{}jsVh3wE%OL`lSS7g)gg3h_wbOgCynRV)+sy63X*vi??eaOSo^a!Zyn%eX{Hl2ZpH)fq0h_K3O1%=N!&*1s< z&ec%T)z0rA;5E)45pr#MIZEPz+Vosx`oY@tC7`ycHa!_X&n-_s1E$X}PyZUw9Uuw| zezZ2d614BiI;)VC8=RwH6gQ^7i|>uu^zRY$)vWU-l=@{S3GADl^~m>n=W0CP;;cdV zt}v*{m#*$cJl`=Ojikr9aaSk~DNdGAiw1LLLI^uCaB zb2dE$(39Ep6#P7ubkp@kko6a`&Nax&qs~Mye$4qP3gYqfL`d{fHa!C+vAs6kg_v(=(^J9sfID z4r6)7`75&g_4E%>ZvT-@e*~Gohf0kC*_L(If$ww9FqF~r=_-8xAe+7$g1uAgjDTR@ zOy7b${i-%S0pxyNo9=|tcGRYqgX#~n=@rPwkFseC!u&X!J{#KmNj6=Kvi)f`eGO>+ zXVwXU^Y_w+K=hrp>1UAo=V)#Ky_&8@s<*R_1^%x&*dJ@X?u6_t|t9N&bM=2+$wVQX%e7+4K(NZD-cmg2MZ`^8qCJ zg|jCZyq!K3MBmFgmxItR(>K8G{wJHh3Gsi)I`@Io4(Al4{Ebry9sV}`5>)s>HhnpO z53|k^i2H~1Pf;)*Wu0Xxi$A6J1aGS%y%f~!iu64w)KCRFAWtE*OnL?JQ8N;FUtb1n z%Q+NIPoK|!EgM-Yw&dx6Jyc|spCh_!eeA8 zy!SB`%IBDDz=|Ks=RsEJV`Md6Sx*{+;wQX_-=R2<4pWoeh{qBR_{D4Z9EqQXjK)tC z8dhj93N(JwjlfqDmmE1}5M-5YT8?bfa%7v9^OrCsmTg*&Y}0aDK&{A;ZCZ|O({f~+ zmLuD=9N#vrlIh>`=+9b6`m#;Sk!@OzY}0aNo0cQnv>dffOLeSD_OkC~3fcVQ$mSnM zHvc%X`NxsXKaOnvab)w4Bb$F5+5F?E%|DvbID1SIlw|XdBb$F5+5F?k<{w8k|2VSw z$C1rHj%@yMWb=h2ki@#8e75OwF5_5mb!0_}J@*sd=-x_ox70gqk-y zBR@jTn>FW0fHmgL+VdmkB1iUy-uwtPZ+1a`gqkFsn_ZJ1q2|r5&yP^^X6y4K z)V$f9`4JiBW7GZl5o+G-(fkNCZ}v=n#2YD)+WcaEgqk;dB|k#Vo4uAFq2|qgk{_Yw z&ECn6Q1fQL&yP^^X7A-ksClyw^CQ%}nQT&kay%>9gBvwNXRvM$+K3o@wic;hd;RB; z`Qb9(bH*%$h1Xtl;hvn{I7>n6E-b$ZuZ&Ow2RPxi>n|)n42B$9XtPCFyXC_29<(8$ zMw)nd?T!n}PeYR*T129l9J;XlPiS64O>B`cb#!6*53T{&{AI*O)^5A7sQhZYF5GFf z3-{t&$g_xyhgWU@eSAj9lum^`=>Y+)y*TUhf}pI?D0^T0RTY;}Kh}c|y1|1{^+Fe_ zJluJqwfAcp39lmgaHUEiU9FHd0_o6uRb)o}SbueqZd6G318GeT(ms$zQMy|pZ35Eo zbC9ZBq(>Ffqd;19Uyxm^i}bQW+I*q4Pvm}ugnY|KvHGDxc;-SBX#>KkQW*n(Yz^W& zB6jaqDlrq~>#gx7Am$QoVF#0za&)_V_1I%}2s0f8exV9aH-hlMhqf!Qu=>@xH> zLzhd63pOd#Evl%IqPPqxwu}>uQxVDOGBKGeY(|CFE*v8kbEV8Dgw~$1AGa@uuCf(! z-574246V}KW{jd8e_nWn*7lAZMmxS*CtW%6erD|&4PGF&HwsMR;f>m`#MZJBv^ijo z|6#xPh|XnEED3}tRW3Rv1<^6)64Q*~*Vw5QVD&2z z7#4+S%kOCPJ9R31{TG2Y=BslALzVB!{cs9A6DVWo+OLOzHWVxS0JYpH@Tw;j8Q7(K z?Dg3rvxq%UVz1AOE$4J;iJmUqd80DOa!!|)=;_k;OyKLJlOG@= zJc5qkW6=eOtq2`A1`ST}6b4TrF{?PvRFxP7SdrpO89tTavEn26T*dG~#q)?Wjp0sl zFQ2RVJfwI&ai-IhhFc|*LdVpCcw#*ZXT}Q%Ol%`=jfAH7cp};W&|_B40&21c4->It zhAB>>WP>M#PJh*v@JuD)Y9>8PN!US-4Md3*FJbsXK0C#G^0|@E!;3#poJHq@cBc4c zl5S$!isEYGH1l~J3Q62bAoQtWl%o>5r48wo(2G5xmx$2u6G*l7hrlR$9Yj}#GfhZX z%)VuKloIp-goj7-Ia0it;bZt5D}M7PJdY*1Q+z(ig!d!Q;l*bVCreGtK!H)q z1|zyOA~~LQ7n2R73m;N0FR2?q)vhp>xdYVsvDcTQo}_;S`gR2$(b%Ucyj?*dLu;GM z?qJ*j3c6qjI|q}17Y}c`13&l-VQ1hl3EHZIAa)z%8*~|>i7X{L%!+34EMG&PB+*lt zw^dJ*h-F>iO0*JKN}^M=M8j|gjb)!obiTfZj-!BAh(^CIiLFQ7)UUd!uh6OYkknVG z)C7{t{H!c{p3o|tJ8S3{Q4aQF1UEmcC||68peY9xUCH&Brd)O_(VsA>%h-NJ z8u{*xhhyC4k53ufuSmNJ9Haw>bGaunBF&UmlQbjS(TM40!L%~y%ob$Aw>2CanHbwY-w2^pFuWN4a@p=m-5 zO|@O?8awD7mc)3Yv27sBkG=i|&`U0mNIt@R2GfM;6crDzxl@(VV45)8>kzb22SLm~ zgFxwJ_#(2yM#-_F>+vjKsVP%H|9EO5wgq4KY>{tr9gWgcT#r{=7o@2;yHXipYdSjx z&{QfUw6-h#1fePgtrTGn0Rg<(j4&bw!$ge1R+J0|UCU%=Y~2DX`0P|a;C`FS{S3vu zH7VTB&{ZIP=oBP8%W%JyP=lX431B7EaF_fJ>LA+ro1ar`JZ`1Xp~~y|0dD69xLshl zNzO0ybK4gL;^7^Jo8*;Yl2`QL$e?UCxvyigjn69yhN~ascdjeJI$g$A*=82`EyUlF zhkvr{~p%gof>}(p82uYzvI%s$EAPY6vW(5 z{2?z83rid72l$iF04NRKuQixXuvvP5=;$*m+j&sy%u2JF2{&3|uW#ulH_c`y+^z!O zF-+;8~{QLKTPN5sSwc0cC#%(;t$l!}Ny?9qd;EN;(BytAg88x6Gc+OZ z!0{x7H{zfZh(3`KDEwrbWlvHuT_9~Ev}7z1>KIt@BB@{=Q~iJ*-%SajP^T!g4rW&E zI%XB4sX-M?T(2pTx_(}1m5gT;dfUi5vw+X_>IZZgswnB5Dy<2s&0dNxp*x9*ml2I7 zTNL{a!b`VILEx%84K>KdkG-C2&`QcxO3DR__9`W1oua);(Vmf9)Yf6ypVKlA5>B7j zoCdML?5h>DaL{>E09~V?R;Lw?QRJ-AZ{4+1@-DflHKg|u<=ivN2HznV={A%BCM3%MavB-ai3zX2FGWIk)Z-A0?q*&fJQ2F4rt zJ4|Z4ktak=(l%SFoAE|gNlVcP!W+2=SgtoRH_j_=Io`-j;&~$<#Wcnn`35)5<>Iib zCA>mQSgO5|JDBE5WPsktFEfqyM!pkat~at4tre4a@J7C!X&ypHhu+BlflkY=y^&do zU2kOO+Vw^z;CdqyaJ`WUxZcRDldd=N+lXy1pn^+qNDR|M^i%xVYc z1MQ7W2+jxE8=06H*BhD8B-b06!cK9$kr@Y91nrGX2(AchHsOs-2(Abj>gmbQ-=Ju? zB4}@9#;tO_k;#3X>y1okgX@h5pr<7kqNxzdLw@hq&;uso zo;NZf&l{PL=Z#Fr^F}5_Z)E;5cd}_6-pGWRKY`(mO!y81d)~i@Dy&R4kgNX~+@0kqK3}-pGVJ zZ)8F)xjZA2x>y1pv^F}7*c_S0@ zypaj*aJ`WUz3+M>6Y{)~33=YgggkF#LY_A=3)b^SW}N4ZOvv*_CM4d-v;*Uf{2-oP zZ{$Ikl2GrQ*Zk$*pEoj-xZcRBnbh9Ms+lZ`(K*m~BX5F%xZcS0EH>WAEO^%&nS#3B z$OJrZUtxSw(E^d0B=I=jZ6q{LhX%A2=6}ajZ6sd zzJ+{;?GYt}cc1n~CRFEoBU1+pJ#XX&Fn7I?uXBYz)GvI0-pCxDxZcPFTyJFRZ(B-x zBlBJ3dLyf1Fy6>}gQ@3@d_89Al>W~0i_o7pGW%_=H?rcYy^#sH-pEvg>y1pn^+u+> zLe1J6nNZC2MkXSZuDy{N2c>IoWX4sv-pGU|yWYrzX1LzS%>Dw`8<|vC1lk+qk(nzirM-~}xZcPFTyJCoo;UJN zQ1iTzr(#=xQu)G^Pv!l2BU1v`8=0ARy^+bt^+sj}U2o*K5rZ13y^%ReLygql$c#e? z$e5x#MV+Grv^TP@k=h%Xaj22MMIpf(S=UJIjZ6qN@+A<1H!`7C*BhD8O4l2i5a#ZT zH}Y}F&hWL>Sj&smLK(3NJWeXP_y#=3|7#lN6t5y%w8B+*Ud?AG{tTb5s|QLZ{<}&% z-^Aw%EA$0M+ndsAA5c6Fl-ayp<=dd z6M@^H>^M3L!C3FQH>~i)ACY0wmD|UPGTDe`Xu_WU4j#8_f>Wpoe6Zq!(DIidyFDGt ze3));E&l-W8ff9(S26JnqG2jtc>WE~@$gQ~Q+7FhEJ4nFN(}L%v=?ssw(wwq&>}@P zrWM(+kLR~|mah??C65mB82++K^S(}sH4UuMDj~Z3LM%ow+zA65uiUCrD_%qqUf8cj zDtoSAHrF^@Ou*+(%$e|Gum3F~%juVHui+zh8a9-FTfjdFxUFIDHfsKh?+LiGVc*^r zmVMo`NDNQX22sjTEb7I>GqgOSlyV7LsDrF1#h3Ft#jP}o*bJAaFl{EPAq5c^YqgA& zuRRyCFt$GWT_VC4!mgQ@gyn10PO=_uAM<_1TZ@1~{31|BN+Axn4f850Z@4{I z^4%-Ui53rU_cOmyf_56_UOq=XN+XzP4|+A1*~c!ki7qpq1!zyQ8HJT`VHPPTv)KKr zT8L4^B`BkVtmxYy?aSVSQdRAr(wQr68f0ce>1Dl(Z|r{4>I7ouB!|60|A6oM^&)s1+q;`5G0c z+OM)-dtEV~;ac<#peW{7xy&b1?W+RJiH2Q`e&&CWpdE&}w8Zi?s)}vNUG|7Kb8|Wm zdpQ)dyIf{Gh|<10z>H|Hs;~L1>NE+;=pesA9nG9QZ%^8;m^p6Fo_Co&?=m|KB<&Xh z%w84Bll{!zl%NHMnHUt&M6DyNC@IU=s7WlQpV?D>n9KZl?AK8_{h7<0IQCls=0rmy z`rYkz&@X)Pt7cWip#U^ZJ|3XEcE$=~HiiV5>LE!qMX| z2l#h+t)uRa<{6*%M;cTwy=}sGqhFNQC1{Hg1upb#;N4bo)U8zg;h`6Qssx(ss(u1y z6qE#qhjddV%>~2JHu-rRB0)P15AVe=Y9+IKTIj?7RMcm>)Sn`C$?oYPmEDz!*%={~ z-7aZ}UKYx+2b7w|O#Ydo6VY_W+O*Qo$==#~fx4fSy^b8Om5}{_EagrrQtstel#DC( zpq_6Nq#181lI9*Xd;Ri#AsV|-z+fMf+l@!E<7BI;>hRh}FH*AJA+m{J{=?%x-AtzRg4 zH-ywLw&!Gwyx-UIZq)L=Dk;Ki@6_`CK+C&M%lmpz-Z!+oQVldvdI1aJN7#|BbS2rNQ1S2rfA&t5pp|a+yc(Dxfjz<--ceb~xK{EUl8me; zw>`oy;TfH~kqcQ>4#T3)A=KBJ|0gLQ6W;PmOFrJK zYPk8bwt!i?GQ3Tb9TZaJ?e&)+iK^vShD|M(;=C&ST!zJ|dLTrLhgbQT zT`55uU1n}p_U7&^bLPkUdQ;op+?{34{P@rWzReQL&Vn!~B)y4!f8RkM2k;<}lEYZX zt<{+Nidd)MTkqc5Z@Svx@{`{(8iSIg`h5lyerB(h+AOa3lZVv~^2k)+MPsMqTW`XO zNY74hNY`7?1AEW)X0W1IG$yEe|BBix9a4MOi}mJF_9$cAUlPjj(Tb_fqY@lbn@2B0 zFnZ^)4fu_#&7*uQ)|*F*kvMku6i_&Tk5+6VpAVE^q~iNtZyx;x9!nw%@g1I31JnWS z8`TNU#qyPvkdx;Va`JpaPM%N5$@2+0c|IX0&nM*M`GlN2pST{K_gLak%xJ|Ea`Jpa zPM%N5$@7U@AW1TzPM(jiMLQn8iehPw*ZzteWy?oGPM%N5$@2+0c|I`|krAi^{oe3( zPkX6u8Wln++47ON3(d2gkdx;Va`JpaPM%Mwljm`sGSY5%*Gqf%1xzbjJ`$IKu$?$L z4OJ%O@)Y*)srCzq(EEA^ z%T|W)611ck+jC!AxXs2lfQkr!vxQ2`N}@)Dm)bj#a`2Uib;8%!Gns^248p5z8kCN@Ph(O zDdpTmc#|-lQOX0)!;gsu>d@W-cwB&mr3XUv@Dl=bmGZ#z@Mg*N#ifmu?MaDQQ_2I+ z!%qpYp_B)nho82SkYE#b(4e^pe;w^TRHhC*55F%5!k2RN7yeKbqBZh&k!MS(XyhXS zUM$U!KsZG6+*+Dq`9(ssw^vGe;CVP2VqtA7<$>qnA_2CS^1$!xQZ>8*tMbc8vRw-w*B4whZSSdSYks$&MDrFxlvZo|* zN;#Vq*+*iAmvS~MGFkw1{9}|Z$=R&PSbH^|%icp~?8Cl~!ZeNj_0S+c_Iid6k(sB% zY7u~5`4E|TI$S{uhx{i>!#?6oprPM4gvDV`R#4p#>7gG+G#_MCY57YaG|wRhW?QP9Y@ya@C@UA`rqRjuj5C;BGxeOr+-(17U-Zo z=t62Qt@wi=ut0bhLxfTe=evjm_B<31gRRI<@GM{DcTGp4i@J28RyWt(#mKctagmau zbqI~YzUT^2z?Rw}vJqB83x>v-mrIz)$h!*9=qvc;y;g!&=^zNm!>dI$B8zOpt;k9| z%UAi!)gXG$_CJ9mKHgyWzks1+yGLti2uOZZ79`U@OkwG@Rc=i)Mez&zVRV9{D++BSG&Q&b~aRssFcI|4VT) zqZ)ht8!o4}4JVnRdfU(GS3-6;chBP^Ht{TwT!be)Fj6&a6a!gTW{Wn$C3y1!Kh4caY4zT{A&ywhe%0^m;j-wj? zuAr`=S1|4)1u2{UF6hIi{qnymK?`-zUcG--;?YNqpAqkp-B|lgkqj@OXl!Rx8xg5V zHiuae?og4hkR1v`ioL%}=5y@WUlbiWobY3>uf*GBAIabxTjj8Igjn-j+i%V%0}Vrb zzo_#iXjMSfL=zcGtq3X0*HGn7Py>GGhUyOOP~}db0$#%oP? zNFSS_I;6R`ziol>e@Y!v-V_zO`T|H(9PFDGjpYmJq{|Qk*1Rc7cT?4EPmz6ojTqSm z9m()fZG(=CS^gq#+VkkdjEa#~12P76uMX(0(YEhJHe4oW;Br-dZs zw2*|H7Lt(DLK1RXNJ35vNyup-33XaXvJJ1K=n3|jo)q)#zf+354r}yO`)x!FmTQBe zXW0j#k&>QjbfG+}ZfCSnlH-UGwO=>M+k>Ku>^QJhCpWspZg-Qm*=t}fI_cRuDLc8* zrS>!?p$B0s+GTHWlXOeZK_}^vBoQmg+k>LL_DZIa{kqXh?bqBim)jhy=rmUtHr%fp zz0&4vtLjWgud!ozO-pAwx>^n`)M>t8(y%ifU1Pt+G}4)l-f9m*qbHr|sJ}BE^>?PD z8*Q4l>P$z!D!Epj>FB)zsLpisJ^@r`I(okVsxuw^noUbpo$2TU_C{n!b*7^a3ZOdE zQGaJT`j}{1b*7__3!pmF(I*5@o$2Ui$+hZCN1v1!)tQbyC4lNoN1wJwLjv8Ij(*)9 z0#!Ncnw04L$d`+u1a3@>o)V#HSfy&)hRC21 zP@{sPpaOzM1;w$cRSAj^5hV&LDgq85wTd7PsIj6V;*2xSXtl+$v<}5Op;E=FG}Z~N z!~6ZNz0bMlT>5K&&+~bQ=Y8MaKhE82owe6@?RhwR2zX73H%^GgfY+pWtu9lzDd06J z-guX}YH+}7QoLhDY*=s?4D^l@Vr0N;QoIR5GzSd?Jzj{>0rRFeQHZetuSxMH32|7! zYf`*6AzA`nlj5Bq#8CmSN%1BN(Hb1%4IbM_ET`1JXbZ!vicfL@a=^U>~@qQ^37A98G zdWNow-RYk+&F~5BYx?<+&RXTXCdK=eTZ0^s)e957tK4UiJ!L59UF)(qoATTtF{+1x z-gQDe6Y!c8??%aDYl5?&*}F;nuMK!jinmPOtmCEw%ez^K^#QL*@sRsP^kGT$7@o&hlE<9 za$K0`trBX5%AL!wJuK8JRn2QsyhnsuqpEpLiub5c>p-0h>M@}V4e7l<0qdzK6H6}_DOo_bUM^CyI13TIT%_b`x^Ze7 z2iPUob_Jma*d-$?YZs?Bmcgz%Zh%n+&iG)!L1@Url%xVi;m{ zWA<0av-IFYN;l?zHBrB7?gl7JP14k`ZY%++jTArNbYmG%Com-Ze$$PmKuy-NRyP&{ zbs}Hdi~O2fn?apK!!Vrf&f)i;;Z8fN)*w&f*PX-fcZIdquxe%aea|!BivW_&e*q@S z@Vk=3Zz_=bq1tkvhg%*!R_+I&XUl%jo?2}Ek5k@J61vH#*$|QSt+j}caE_9=X4M(m%;OVWd}IX9 z^|5MH0(=U@($3~M_$k6_c;2MFL_5U<@k8)i9IPg;|$3AfmysKMq+3 zC8M6zzB)Dm{;?o68zf2dO~PtRfKyDsG2=tc@~FFzX+B%c_liT#yE-)Z>=0b1`J4ne z#qb#^4*m;atq8$mY5dc^0P9d|ONzmM6M=O^U~I(HbqO$vVLTrPTO+KE5m+HN?{Ogf zW1`qE25UmCq(k;d1SYxp(F7R9u$bb7Sp73dSWSi%&p?e#!*!}PT?}?z1hy^$lMM7m z0*qq#bQ=e|QCM>#utJ7;kkR;+T2WdIR*KH64%t@`*oNT{{yG6x3o%U8#ld&v+$4F%*?J_{GAic`>Xe3u)Lf z2L5-j2g{6hyhi#m0^1=1I~R49YD$1n42zzOW+@uq3ajOxfStlL9Bt33C=S_pbZB(Q zMu%Ya><+0h2{4Lb!YU3nQCLeNutK@}kkNR8y@uP_6Lsy&5!eY47<*f4asrHEXdUBV zuLx`1KLI<8(Kye}=8D0FUGOtV7BEP~x+w^SB` zaUrn=yD0?Av#+R@CBRmR=D|j@q}k)bY6-z4cT!ApXAjGzW_i^0XLa_Jy|k(ryf3=F z8vLmU{4eO5s;3j+gCK@9jDzcQ>6RwIDJI~3@IeD^dDNZ8R^%Ofqgm5XsK{@Oz~2eM z>)8`l?ZG=W_i?|#5C^i%;;7OelbKecy}jkve>UzwNAVepctyVIQSxA z%?QC`A>GV!ImlUEQw;WP1U4uH%P&AXsdjO6w{p7li71AZDsiwMg|#XID|AEpFj^0B z{Mur$i5RQskR1|&)pJy$4o!rNV)zsh2Rl(%nCG76s?5vk*X3Ls_Spxo4#{dj+^YSg^W`}N!Kl0Km zUv6v}+f%yUE1cueZ$*!&Cl_g`TODe`+7?Oio!}8E9ye`QVXZQ(h7I*P)Fw|^J-;3W zEsr}x1#)V`;GX*Zd~KJt)esprNWSVtp69PFHGz>3nXevoS2DBKxuebJlXcPfVmUPH zkkrXI00Rsil6u#KL`>&81LU8$>5mGlGZCv4lUVIyxzsF=-nBIHGMT67vyBeGNDMak z!>OzIe2~AInP{<0*TH~1XYbVIhHTAq{!U#XGZQ!hHP0D5b)_L&@|?p{R~hoKJZJIL z5<`y7a~@A!ZOGAi&g7|U4B4FLT%NktkR$V)%~KsRo5z7-o)dcNI#*W_R-RLO>eoiv z&vQ~wU2n*2p3{12sUd6foY+%07_uQh1%*M~XvoGqC->A%hHT1ndQUAgcku&pAG|+|X;RJg51Tp2Tq$t+n!;=~FAr`*l{HlYL50q=ZRY((E6*uE zb-STEtvqM_)E$Q2Y~?xer|vZL9F^zXpSsJ?^HrYHf9h^SFI0KX0IHRSUZQ#~YzBR= zBshvfpA&G-(tYw4Cu~V}Vxps#UmL3-N`=*ASbb#>-N$Qa()lIc)w__{X`t6;UKN(= zoyx2v*n>PhEifZLmUY=KUcBNxPmo&T;1>#OzG3O=iDHtM8!eZbLFYvBIQ4DK0ieZ=?2YXpq3nQ>X zpJdU#@PC`PYG5(gE+~RJWVc6PKQLr>Btk|pL}MImh_KfG6RdZZhGLRowzgbqmPg$|%rGB%>vt&zZ@@rO zhxDT)_{Ib{#n7I`!TSnpP6!?YD`7}~^1j?vgRRwnsM9(ku%9BZHwHu4DltVPpV=nEsVIQ9*~S{q>(hJQ1eB^pYe*{wLBX)J`%0o|&^6wCTkr%$(3uMk`6gzgYS zZ$1uIFRaE_bj0gerkKR?wz%8@Zh6!#U`ZKTvTpZc@Oco?;CqDN`CHh#-?L;#s0}mk zm4eh_kR*w(71sO&IK>2ffaOxNJnD{Q{%k4vbVxC{(-4CHya3Lc|HwqhDTd4(2ls`w zF$9l+ttHs>5^IlQu=WV-v?SQ+2{4MGPTt!KW{mG}Dgho68MlpyOUrm6JQiWA0-ZU zkg)vMOa_Wot>3dBCr>dU@s=XekYm-8_g1pFAA$I1e4()#U#V@w_IwL zN8MV6^rMoo!a}rnp9RYr76CO49cY92EBn- zD9UkzcxoW_IB;J-e=b)W#LDl_nH+snO(V4d12bAob)45521v(y>y++zw`qH}G4{0f zlzMF2)ChRNF4LYPSmE|d=`Qn`Jx4M6`Wy1Bp8M1I0fszVDxS*#fg0ABCP{gfu;z!> zO3YDAVs1OjrB(8%JDq5|`V$V)hJUZ^MpAY{L|eM6Z(>f+$VXw1qkSc;^&whe4z`Bt zg}m{MTBPs&jwr9;dLeI$W_B263@p>Ng9W3YSo0SCKnm!oTnp9uXt6v|pP zH#63E+E0XPZqY(pbLEj&SIOwK9!5I2){dyM%*vywWA)0T)>a+fEP8_c)uV?Qt~^RE zZ~vDktb5-;HT>Plv4UP=bPTld=+fEvH>>8&(e18YX*7i|^h%==|7H*=|7UoX`1jzc zz3FxGX?Gwv?wCz@mdX)@rE<=3sho3MD(4)R$~niS`kdp8_HYC~Ho%80LMhzHPKfk!G;LbtBi|K-0A9k`uPy4ly%RezO_`m~ZI3 zpX2AYXN9%Iu#oVKO`rZNnFZ*h>UcQ1S^i46>C%|k|yhbVq)}n z-1Ru@R>E2n!p3wTMcoJ29jkRO(|^!?d8GSbqdO~K>ki=y^gOb=)8nCJ5;Ic@cE+KR$1yDH>O9nfhBW2PHp1im+fu#Mo) z(1xGHHuE%kx`w5ZDJIA@mQTI%2)0G8Qx}yTUmV4=A)%2knhR%`ve&?!cE-lBt`}BY zh*jb<)BE%<0j3Xut+sqF(vU~+{DFYI{w)LhmRJr>hl~15!(MM-b?h%)4iPk565whG zA$!G*=q{`!p%H>iF+uKP`P3_qAdljs9$Yn12Y8D91Mr)4fAL zSH|tQL0D@Nc2G?0sIq*b$Rl`{N&b4Dw&IB23<+(=>p#L7M!bWXBJHe?WBJ0`9AcID zdo$wcKbFm>5$2OG4NM`TPl9I+^NE4c5&bD&Ae&1>pDGC1H)A=AGd0LrhGqGzPYc

rA_dD;@ffBrWVg5hUkIx$G9W5M)q4`V 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 Dp+lW7 literal 0 HcmV?d00001 diff --git a/vnfs/VESreporting_vFW/Makefile b/vnfs/VESreporting_vFW/Makefile index 77ca5742..f821b442 100644 --- a/vnfs/VESreporting_vFW/Makefile +++ b/vnfs/VESreporting_vFW/Makefile @@ -18,8 +18,9 @@ CC=gcc ARCH=$(shell getconf LONG_BIT) +MACHINE_ARCH=$(shell uname -m) CODE_ROOT=$(CURDIR)/../../.. -LIBS_DIR=$(CODE_ROOT)/libs/x86_$(ARCH) +LIBS_DIR=$(CODE_ROOT)/libs/$(MACHINE_ARCH) INCLUDE_DIR=$(CODE_ROOT)/code/evel_library #****************************************************************************** diff --git a/vnfs/VESreporting_vFW5.0/Makefile b/vnfs/VESreporting_vFW5.0/Makefile index c9776e0e..66240d61 100644 --- a/vnfs/VESreporting_vFW5.0/Makefile +++ b/vnfs/VESreporting_vFW5.0/Makefile @@ -18,8 +18,9 @@ CC=gcc ARCH=$(shell getconf LONG_BIT) +MACHINE_ARCH=$(shell uname -m) CODE_ROOT=$(CURDIR)/../.. -LIBS_DIR=$(CODE_ROOT)/libs/x86_$(ARCH) +LIBS_DIR=$(CODE_ROOT)/libs/$(MACHINE_ARCH) INCLUDE_DIR=$(CODE_ROOT)/code/evel_library #****************************************************************************** diff --git a/vnfs/VESreporting_vLB/Makefile b/vnfs/VESreporting_vLB/Makefile index 094adabe..172e81c5 100644 --- a/vnfs/VESreporting_vLB/Makefile +++ b/vnfs/VESreporting_vLB/Makefile @@ -19,8 +19,9 @@ CC=gcc ARCH=$(shell getconf LONG_BIT) +MACHINE_ARCH=$(shell uname -m) CODE_ROOT=$(CURDIR)/../../.. -LIBS_DIR=$(CODE_ROOT)/libs/x86_$(ARCH) +LIBS_DIR=$(CODE_ROOT)/libs/$(MACHINE_ARCH) INCLUDE_DIR=$(CODE_ROOT)/code/evel_library #****************************************************************************** diff --git a/vnfs/VESreporting_vLB5.0/Makefile b/vnfs/VESreporting_vLB5.0/Makefile index a9eb05e1..76029120 100644 --- a/vnfs/VESreporting_vLB5.0/Makefile +++ b/vnfs/VESreporting_vLB5.0/Makefile @@ -18,8 +18,9 @@ CC=gcc ARCH=$(shell getconf LONG_BIT) +MACHINE_ARCH=$(shell uname -m) CODE_ROOT=$(CURDIR)/../.. -LIBS_DIR=$(CODE_ROOT)/libs/x86_$(ARCH) +LIBS_DIR=$(CODE_ROOT)/libs/$(MACHINE_ARCH) INCLUDE_DIR=$(CODE_ROOT)/code/evel_library #****************************************************************************** diff --git a/vnfs/vFW/scripts/v_firewall_init_arm64.sh b/vnfs/vFW/scripts/v_firewall_init_arm64.sh new file mode 100755 index 00000000..7fce884c --- /dev/null +++ b/vnfs/vFW/scripts/v_firewall_init_arm64.sh @@ -0,0 +1,82 @@ +#!/bin/bash +set -x + +# Convert Network CIDR to Netmask +mask2cidr() { + nbits=0 + IFS=. + for dec in $1 ; do + case $dec in + 255) let nbits+=8;; + 254) let nbits+=7;; + 252) let nbits+=6;; + 248) let nbits+=5;; + 240) let nbits+=4;; + 224) let nbits+=3;; + 192) let nbits+=2;; + 128) let nbits+=1;; + 0);; + *) echo "Error: $dec is not recognized"; exit 1 + esac + done + echo "$nbits" +} + +# Start VPP +if ! which start; then + echo "#!/bin/bash" > /usr/local/sbin/start + echo "systemctl start \$1" >> /usr/local/sbin/start + chmod u+x /usr/local/sbin/start +fi +start vpp +sleep 1 + +# Configure VPP for vFirewall +IPADDR1=$(ifconfig enp2s0 | grep "inet addr" | tr -s ' ' | cut -d' ' -f3 | cut -d':' -f2) +IPADDR2=$(ifconfig enp3s0 | grep "inet addr" | tr -s ' ' | cut -d' ' -f3 | cut -d':' -f2) +HWADDR1=$(ifconfig enp2s0 | grep -Po "HWaddr \K(.*)") +HWADDR2=$(ifconfig enp3s0 | grep -Po "HWaddr \K(.*)") +FAKE_HWADDR1=$(echo -n 00; dd bs=1 count=5 if=/dev/urandom 2>/dev/null | hexdump -v -e '/1 ":%02X"') +FAKE_HWADDR2=$(echo -n 00; dd bs=1 count=5 if=/dev/urandom 2>/dev/null | hexdump -v -e '/1 ":%02X"') + +IPADDR1_MASK=$(ifconfig enp2s0 | grep "Mask" | awk '{print $4}' | awk -F ":" '{print $2}') +IPADDR1_CIDR=$(mask2cidr $IPADDR1_MASK) +IPADDR2_MASK=$(ifconfig enp3s0 | grep "Mask" | awk '{print $4}' | awk -F ":" '{print $2}') +IPADDR2_CIDR=$(mask2cidr $IPADDR2_MASK) + +ifconfig enp2s0 down +ifconfig enp3s0 down +ifconfig enp2s0 hw ether $FAKE_HWADDR1 +ifconfig enp3s0 hw ether $FAKE_HWADDR2 +ip addr flush dev enp2s0 +ip addr flush dev enp3s0 +ifconfig enp2s0 up +ifconfig enp3s0 up +vppctl tap connect tap111 hwaddr $HWADDR1 +vppctl tap connect tap222 hwaddr $HWADDR2 +vppctl set int ip address tapcli-0 $IPADDR1"/"$IPADDR1_CIDR +vppctl set int ip address tapcli-1 $IPADDR2"/"$IPADDR2_CIDR +vppctl set int state tapcli-0 up +vppctl set int state tapcli-1 up +brctl addbr br0 +brctl addif br0 tap111 +brctl addif br0 enp2s0 +brctl addbr br1 +brctl addif br1 tap222 +brctl addif br1 enp3s0 +ifconfig br0 up +ifconfig br1 up +sleep 1 + +# Start HoneyComb +VERSION=$(cat /opt/config/demo_artifacts_version.txt) +mkdir -p /var/lib/honeycomb/persist/{config,context}/ +echo "" > /var/lib/honeycomb/persist/context/data.json +echo "" > /var/lib/honeycomb/persist/config/data.json +# /opt/honeycomb/sample-distribution-$VERSION/honeycomb &>/dev/null &disown +systemctl restart honeycomb +sleep 1 + +# Start VES client +cd /opt/VES/evel/evel-library/code/VESreporting/ +./go-client.sh &>/dev/null &disown diff --git a/vnfs/vFW/scripts/v_firewall_install_arm64.sh b/vnfs/vFW/scripts/v_firewall_install_arm64.sh new file mode 100755 index 00000000..c97fa91f --- /dev/null +++ b/vnfs/vFW/scripts/v_firewall_install_arm64.sh @@ -0,0 +1,110 @@ +#!/bin/bash +set -x + +NEXUS_ARTIFACT_REPO=$(cat /opt/config/nexus_artifact_repo.txt) +DEMO_ARTIFACTS_VERSION=$(cat /opt/config/demo_artifacts_version.txt) +if [[ "$DEMO_ARTIFACTS_VERSION" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi +INSTALL_SCRIPT_VERSION=$(cat /opt/config/install_script_version.txt) +CLOUD_ENV=$(cat /opt/config/cloud_env.txt) + +# Convert Network CIDR to Netmask +cdr2mask () { + # Number of args to shift, 255..255, first non-255 byte, zeroes + set -- $(( 5 - ($1 / 8) )) 255 255 255 255 $(( (255 << (8 - ($1 % 8))) & 255 )) 0 0 0 + [ $1 -gt 1 ] && shift $1 || shift + echo ${1-0}.${2-0}.${3-0}.${4-0} +} + +# OpenStack network configuration +if [[ $CLOUD_ENV == "openstack" ]] +then + echo 127.0.0.1 $(hostname) >> /etc/hosts + + # Allow remote login as root + mv /root/.ssh/authorized_keys /root/.ssh/authorized_keys.bk + cp /home/ubuntu/.ssh/authorized_keys /root/.ssh + + MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1) + + IP=$(cat /opt/config/vfw_private_ip_0.txt) + BITS=$(cat /opt/config/unprotected_private_net_cidr.txt | cut -d"/" -f2) + NETMASK=$(cdr2mask $BITS) + echo "auto enp2s0" >> /etc/network/interfaces + echo "iface enp2s0 inet static" >> /etc/network/interfaces + echo " address $IP" >> /etc/network/interfaces + echo " netmask $NETMASK" >> /etc/network/interfaces + echo " mtu $MTU" >> /etc/network/interfaces + + IP=$(cat /opt/config/vfw_private_ip_1.txt) + BITS=$(cat /opt/config/protected_private_net_cidr.txt | cut -d"/" -f2) + NETMASK=$(cdr2mask $BITS) + echo "auto enp3s0" >> /etc/network/interfaces + echo "iface enp3s0 inet static" >> /etc/network/interfaces + echo " address $IP" >> /etc/network/interfaces + echo " netmask $NETMASK" >> /etc/network/interfaces + echo " mtu $MTU" >> /etc/network/interfaces + + IP=$(cat /opt/config/vfw_private_ip_2.txt) + BITS=$(cat /opt/config/onap_private_net_cidr.txt | cut -d"/" -f2) + NETMASK=$(cdr2mask $BITS) + echo "auto enp4s0" >> /etc/network/interfaces + echo "iface enp4s0 inet static" >> /etc/network/interfaces + echo " address $IP" >> /etc/network/interfaces + echo " netmask $NETMASK" >> /etc/network/interfaces + echo " mtu $MTU" >> /etc/network/interfaces + + ifup enp2s0 + ifup enp3s0 + ifup enp4s0 +fi + +# Download required dependencies +echo "deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu $(lsb_release -c -s) main" >> /etc/apt/sources.list.d/java.list +echo "deb-src http://ppa.launchpad.net/openjdk-r/ppa/ubuntu $(lsb_release -c -s) main" >> /etc/apt/sources.list.d/java.list +apt-get update +apt-get install --allow-unauthenticated -y make wget openjdk-8-jdk gcc libcurl4-openssl-dev python-pip bridge-utils apt-transport-https ca-certificates +pip install jsonschema + +# Download artifacts for virtual firewall +mkdir /opt/honeycomb +cd /opt + +unzip -p -j /opt/vfw-scripts-$INSTALL_SCRIPT_VERSION.zip v_firewall_init_arm64.sh > /opt/v_firewall_init.sh +unzip -p -j /opt/vfw-scripts-$INSTALL_SCRIPT_VERSION.zip vfirewall.sh > /opt/vfirewall.sh +wget -O sample-distribution-$DEMO_ARTIFACTS_VERSION-hc.tar.gz "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf&a=sample-distribution&c=hc&e=tar.gz&v=$DEMO_ARTIFACTS_VERSION" +wget -O ves-$DEMO_ARTIFACTS_VERSION-demo.tar.gz "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.ves5&a=ves&c=demo&e=tar.gz&v=$DEMO_ARTIFACTS_VERSION" +wget -O ves_vfw_reporting-$DEMO_ARTIFACTS_VERSION-demo.tar.gz "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.ves5&a=ves_vfw_reporting&c=demo&e=tar.gz&v=$DEMO_ARTIFACTS_VERSION" + +tar -zmxvf ves-$DEMO_ARTIFACTS_VERSION-demo.tar.gz +mv ves-$DEMO_ARTIFACTS_VERSION VES +tar -zmxvf ves_vfw_reporting-$DEMO_ARTIFACTS_VERSION-demo.tar.gz +mv ves_vfw_reporting-$DEMO_ARTIFACTS_VERSION /opt/VES/evel/evel-library/code/VESreporting +tar -zmxvf sample-distribution-$DEMO_ARTIFACTS_VERSION-hc.tar.gz + +mv sample-distribution-$DEMO_ARTIFACTS_VERSION honeycomb +sed -i 's/"restconf-binding-address": "127.0.0.1",/"restconf-binding-address": "0.0.0.0",/g' honeycomb/sample-distribution-$DEMO_ARTIFACTS_VERSION/config/honeycomb.json +rm *.tar.gz + +chmod +x v_firewall_init.sh +chmod +x vfirewall.sh +chmod +x /opt/VES/evel/evel-library/code/VESreporting/go-client.sh + +# Install VPP +rm /etc/apt/sources.list.d/99fd.io.list +echo "deb [trusted=yes] http://linux.enea.com/apt-mk/xenial nightly extra" | sudo tee -a /etc/apt/sources.list.d/99fd.io.list +echo "deb [trusted=yes] http://ubuntu-cloud.archive.canonical.com/ubuntu xenial-updates/queens/main ./" | sudo tee -a /etc/apt/sources.list.d/99fd.io.list +apt-get update +apt-get -o Dpkg::Options::="--force-overwrite" install -y vpp vpp-lib vpp-dbg vpp-plugins vpp-dev dpdk dpdk-dev dpdk-igb-uio-dkms dpdk-rte-kni-dkms honeycomb +sleep 1 + +# Install VES +cd /opt/VES/evel/evel-library/bldjobs/ +make clean +make +sleep 1 + +# Run instantiation script +cd /opt +mv vfirewall.sh /etc/init.d +update-rc.d vfirewall.sh defaults +./v_firewall_init.sh diff --git a/vnfs/vFW/scripts/v_packetgen_init_arm64.sh b/vnfs/vFW/scripts/v_packetgen_init_arm64.sh new file mode 100755 index 00000000..ca2cb7c1 --- /dev/null +++ b/vnfs/vFW/scripts/v_packetgen_init_arm64.sh @@ -0,0 +1,94 @@ +#!/bin/bash +set -x + +# Convert Network CIDR to Netmask +mask2cidr() { + nbits=0 + IFS=. + for dec in $1 ; do + case $dec in + 255) let nbits+=8;; + 254) let nbits+=7;; + 252) let nbits+=6;; + 248) let nbits+=5;; + 240) let nbits+=4;; + 224) let nbits+=3;; + 192) let nbits+=2;; + 128) let nbits+=1;; + 0);; + *) echo "Error: $dec is not recognized"; exit 1 + esac + done + echo "$nbits" +} + +# Start VPP +if ! which start; then + echo "#!/bin/bash" > /usr/local/sbin/start + echo "systemctl start \$1" >> /usr/local/sbin/start + chmod u+x /usr/local/sbin/start +fi +start vpp +sleep 1 + +# Configure VPP for vPacketGenerator +IPADDR1=$(ifconfig enp2s0 | grep "inet addr" | tr -s ' ' | cut -d' ' -f3 | cut -d':' -f2) +HWADDR1=$(ifconfig enp2s0 | grep -Po "HWaddr \K(.*)") +FAKE_HWADDR1=$(echo -n 00; dd bs=1 count=5 if=/dev/urandom 2>/dev/null | hexdump -v -e '/1 ":%02X"') +PROTECTED_NET_CIDR=$(cat /opt/config/protected_net_cidr.txt) +FW_IPADDR=$(cat /opt/config/fw_ipaddr.txt) +SINK_IPADDR=$(cat /opt/config/sink_ipaddr.txt) + +IPADDR1_MASK=$(ifconfig enp2s0 | grep "Mask" | awk '{print $4}' | awk -F ":" '{print $2}') +IPADDR1_CIDR=$(mask2cidr $IPADDR1_MASK) + +ifconfig enp2s0 down +ifconfig enp2s0 hw ether $FAKE_HWADDR1 +ip addr flush dev enp2s0 +ifconfig enp2s0 up +vppctl tap connect tap111 hwaddr $HWADDR1 +vppctl set int ip address tapcli-0 $IPADDR1"/"$IPADDR1_CIDR +vppctl set int state tapcli-0 up +brctl addbr br0 +brctl addif br0 tap111 +brctl addif br0 enp2s0 +ifconfig br0 up +vppctl ip route add $PROTECTED_NET_CIDR via $FW_IPADDR +sleep 1 + +# Install packet streams +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp1 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp2 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp3 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp4 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp5 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp6 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp7 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp8 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp9 +sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$SINK_IPADDR"/" /opt/pg_streams/stream_fw_udp10 +vppctl exec /opt/pg_streams/stream_fw_udp1 +vppctl exec /opt/pg_streams/stream_fw_udp2 +vppctl exec /opt/pg_streams/stream_fw_udp3 +vppctl exec /opt/pg_streams/stream_fw_udp4 +vppctl exec /opt/pg_streams/stream_fw_udp5 +vppctl exec /opt/pg_streams/stream_fw_udp6 +vppctl exec /opt/pg_streams/stream_fw_udp7 +vppctl exec /opt/pg_streams/stream_fw_udp8 +vppctl exec /opt/pg_streams/stream_fw_udp9 +vppctl exec /opt/pg_streams/stream_fw_udp10 +sleep 1 + +# Start HoneyComb +#VERSION=$(cat /opt/config/demo_artifacts_version.txt) +mkdir -p /var/lib/honeycomb/persist/{config,context}/ +echo "" > /var/lib/honeycomb/persist/context/data.json +echo "" > /var/lib/honeycomb/persist/config/data.json +#/opt/honeycomb/sample-distribution-$VERSION/honeycomb &>/dev/null &disown +systemctl restart honeycomb +sleep 20 + +# Enable traffic flows +cd /opt +chmod +x run_traffic_fw_demo.sh +./run_traffic_fw_demo.sh &>/dev/null &disown diff --git a/vnfs/vFW/scripts/v_packetgen_install_arm64.sh b/vnfs/vFW/scripts/v_packetgen_install_arm64.sh new file mode 100755 index 00000000..8dee6977 --- /dev/null +++ b/vnfs/vFW/scripts/v_packetgen_install_arm64.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -x + +NEXUS_ARTIFACT_REPO=$(cat /opt/config/nexus_artifact_repo.txt) +DEMO_ARTIFACTS_VERSION=$(cat /opt/config/demo_artifacts_version.txt) +if [[ "$DEMO_ARTIFACTS_VERSION" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi +INSTALL_SCRIPT_VERSION=$(cat /opt/config/install_script_version.txt) +CLOUD_ENV=$(cat /opt/config/cloud_env.txt) + +# Convert Network CIDR to Netmask +cdr2mask () { + # Number of args to shift, 255..255, first non-255 byte, zeroes + set -- $(( 5 - ($1 / 8) )) 255 255 255 255 $(( (255 << (8 - ($1 % 8))) & 255 )) 0 0 0 + [ $1 -gt 1 ] && shift $1 || shift + echo ${1-0}.${2-0}.${3-0}.${4-0} +} + +# OpenStack network configuration +if [[ $CLOUD_ENV == "openstack" ]] +then + echo 127.0.0.1 $(hostname) >> /etc/hosts + + # Allow remote login as root + mv /root/.ssh/authorized_keys /root/.ssh/authorized_keys.bk + cp /home/ubuntu/.ssh/authorized_keys /root/.ssh + + MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1) + + IP=$(cat /opt/config/vpg_private_ip_0.txt) + BITS=$(cat /opt/config/unprotected_private_net_cidr.txt | cut -d"/" -f2) + NETMASK=$(cdr2mask $BITS) + echo "auto enp1s0" >> /etc/network/interfaces + echo "iface enp1s0 inet static" >> /etc/network/interfaces + echo " address $IP" >> /etc/network/interfaces + echo " netmask $NETMASK" >> /etc/network/interfaces + echo " mtu $MTU" >> /etc/network/interfaces + + IP=$(cat /opt/config/vpg_private_ip_1.txt) + BITS=$(cat /opt/config/onap_private_net_cidr.txt | cut -d"/" -f2) + NETMASK=$(cdr2mask $BITS) + echo "auto enp2s0" >> /etc/network/interfaces + echo "iface enp2s0 inet static" >> /etc/network/interfaces + echo " address $IP" >> /etc/network/interfaces + echo " netmask $NETMASK" >> /etc/network/interfaces + echo " mtu $MTU" >> /etc/network/interfaces + + ifup enp1s0 + ifup enp2s0 +fi + +# Download required dependencies +echo "deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu $(lsb_release -c -s) main" >> /etc/apt/sources.list.d/java.list +echo "deb-src http://ppa.launchpad.net/openjdk-r/ppa/ubuntu $(lsb_release -c -s) main" >> /etc/apt/sources.list.d/java.list +apt-get update +apt-get install --allow-unauthenticated -y make wget openjdk-8-jdk gcc libcurl4-openssl-dev python-pip bridge-utils apt-transport-https ca-certificates +pip install jsonschema + +# Download code for packet generator +mkdir /opt/honeycomb +cd /opt + +unzip -p -j /opt/vfw-scripts-$INSTALL_SCRIPT_VERSION.zip v_packetgen_init_arm64.sh > /opt/v_packetgen_init.sh +unzip -p -j /opt/vfw-scripts-$INSTALL_SCRIPT_VERSION.zip vpacketgen.sh > /opt/vpacketgen.sh +unzip -p -j /opt/vfw-scripts-$INSTALL_SCRIPT_VERSION.zip run_traffic_fw_demo.sh > /opt/run_traffic_fw_demo.sh +wget -O sample-distribution-$DEMO_ARTIFACTS_VERSION-hc.tar.gz "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf&a=sample-distribution&c=hc&e=tar.gz&v=$DEMO_ARTIFACTS_VERSION" +wget -O vfw_pg_streams-$DEMO_ARTIFACTS_VERSION-demo.tar.gz "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vfw&a=vfw_pg_streams&c=demo&e=tar.gz&v=$DEMO_ARTIFACTS_VERSION" + +tar -zmxvf sample-distribution-$DEMO_ARTIFACTS_VERSION-hc.tar.gz +tar -zmxvf vfw_pg_streams-$DEMO_ARTIFACTS_VERSION-demo.tar.gz +mv vfw_pg_streams-$DEMO_ARTIFACTS_VERSION pg_streams +mv sample-distribution-$DEMO_ARTIFACTS_VERSION honeycomb +sed -i 's/"restconf-binding-address": "127.0.0.1",/"restconf-binding-address": "0.0.0.0",/g' honeycomb/sample-distribution-$DEMO_ARTIFACTS_VERSION/config/honeycomb.json +rm *.tar.gz +chmod +x v_packetgen_init.sh +chmod +x vpacketgen.sh + +# Install VPP +rm /etc/apt/sources.list.d/99fd.io.list +echo "deb [trusted=yes] http://linux.enea.com/apt-mk/xenial nightly extra" | sudo tee -a /etc/apt/sources.list.d/99fd.io.list +echo "deb [trusted=yes] http://ubuntu-cloud.archive.canonical.com/ubuntu xenial-updates/queens/main ./" | sudo tee -a /etc/apt/sources.list.d/99fd.io.list +apt-get update +apt-get -o Dpkg::Options::="--force-overwrite" install -y vpp vpp-lib vpp-dbg vpp-plugins vpp-dev dpdk dpdk-dev dpdk-igb-uio-dkms dpdk-rte-kni-dkms honeycomb +sleep 1 + +# Run instantiation script +cd /opt +mv vpacketgen.sh /etc/init.d +update-rc.d vpacketgen.sh defaults +./v_packetgen_init.sh diff --git a/vnfs/vFW/scripts/v_sink_install_arm64.sh b/vnfs/vFW/scripts/v_sink_install_arm64.sh new file mode 100755 index 00000000..73f6ee53 --- /dev/null +++ b/vnfs/vFW/scripts/v_sink_install_arm64.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +INSTALL_SCRIPT_VERSION=$(cat /opt/config/install_script_version.txt) +CLOUD_ENV=$(cat /opt/config/cloud_env.txt) + +# Convert Network CIDR to Netmask +cdr2mask () { + # Number of args to shift, 255..255, first non-255 byte, zeroes + set -- $(( 5 - ($1 / 8) )) 255 255 255 255 $(( (255 << (8 - ($1 % 8))) & 255 )) 0 0 0 + [ $1 -gt 1 ] && shift $1 || shift + echo ${1-0}.${2-0}.${3-0}.${4-0} +} + +# OpenStack network configuration +if [[ $CLOUD_ENV == "openstack" ]] +then + echo 127.0.0.1 $(hostname) >> /etc/hosts + + # Allow remote login as root + mv /root/.ssh/authorized_keys /root/.ssh/authorized_keys.bk + cp /home/ubuntu/.ssh/authorized_keys /root/.ssh + + MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1) + + IP=$(cat /opt/config/vsn_private_ip_0.txt) + BITS=$(cat /opt/config/protected_private_net_cidr.txt | cut -d"/" -f2) + NETMASK=$(cdr2mask $BITS) + echo "auto enp2s0" >> /etc/network/interfaces + echo "iface enp2s0 inet static" >> /etc/network/interfaces + echo " address $IP" >> /etc/network/interfaces + echo " netmask $NETMASK" >> /etc/network/interfaces + echo " mtu $MTU" >> /etc/network/interfaces + + IP=$(cat /opt/config/vsn_private_ip_1.txt) + BITS=$(cat /opt/config/onap_private_net_cidr.txt | cut -d"/" -f2) + NETMASK=$(cdr2mask $BITS) + echo "auto enp3s0" >> /etc/network/interfaces + echo "iface enp3s0 inet static" >> /etc/network/interfaces + echo " address $IP" >> /etc/network/interfaces + echo " netmask $NETMASK" >> /etc/network/interfaces + echo " mtu $MTU" >> /etc/network/interfaces + + ifup enp2s0 + ifup enp3s0 +fi + +# Download required dependencies +echo "deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu $(lsb_release -c -s) main" >> /etc/apt/sources.list.d/java.list +echo "deb-src http://ppa.launchpad.net/openjdk-r/ppa/ubuntu $(lsb_release -c -s) main" >> /etc/apt/sources.list.d/java.list +apt-get update +apt-get install --allow-unauthenticated -y make wget openjdk-8-jdk apt-transport-https ca-certificates darkstat + +# Configure and run Darkstat +sed -i "s/START_DARKSTAT=.*/START_DARKSTAT=yes/g" /etc/darkstat/init.cfg +sed -i "s/INTERFACE=.*/INTERFACE=\"-i enp2s0\"/g" /etc/darkstat/init.cfg +/etc/init.d/darkstat start + +# Download scripts for virtual sink +cd /opt +unzip -p -j /opt/vfw-scripts-$INSTALL_SCRIPT_VERSION.zip v_sink_init.sh > /opt/v_sink_init.sh +unzip -p -j /opt/vfw-scripts-$INSTALL_SCRIPT_VERSION.zip vsink.sh > /opt/vsink.sh +chmod +x v_sink_init.sh +chmod +x vsink.sh + +# Run instantiation script +mv vsink.sh /etc/init.d +update-rc.d vsink.sh defaults +./v_sink_init.sh -- 2.16.6