From 92edef5a8d16bcfef26c516d12aa64e24325c10d Mon Sep 17 00:00:00 2001 From: Karl Cardenas <29551334+karl-cardenas-coding@users.noreply.github.com> Date: Fri, 13 Dec 2024 09:48:37 -0700 Subject: [PATCH] docs: DOC-1517 updated oop diagram (#5033) * docs: DOC-1517 updated oop diagram * docs: updates related to both install * docs: minor updates * docs: feedback * Optimised images with calibre/image-actions --------- Co-authored-by: vault-token-factory-spectrocloud[bot] <133815545+vault-token-factory-spectrocloud[bot]@users.noreply.github.com> --- .../airgap-install/checklist.md | 8 +- .../vmware-vsphere-airgap-instructions.md | 154 +++++++++-------- .../airgap-install/install.md | 23 +-- .../install-on-vmware/install.md | 23 +-- .../upgrade/upgrade-vmware/airgap.md | 4 +- .../airgap-install/checklist.md | 4 +- .../vmware-vsphere-airgap-instructions.md | 160 +++++++++--------- .../airgap-install/install.md | 1 + .../install-on-vmware/install.md | 1 + .../vertex/upgrade/upgrade-vmware/airgap.md | 4 +- .../vm-management/install-vmo-in-airgap.md | 4 +- ...-airgap-instructions_order-operations.webp | Bin 38520 -> 40846 bytes 12 files changed, 203 insertions(+), 183 deletions(-) diff --git a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/checklist.md b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/checklist.md index c3b2bbeb09..1fa6ffff19 100644 --- a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/checklist.md +++ b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/checklist.md @@ -12,9 +12,10 @@ keywords: ["self-hosted", "enterprise"] --- Use the following checklist to ensure you have completed all the required steps before deploying the airgap Palette -installation. +installation. Review this checklist with your Palette support team to ensure you have all the required assets. -- [ ] Create a vSphere VM and Template folder named `spectro-templates`. +- [ ] Create a vSphere VM and Template folder named `spectro-templates`. You may choose a different name for the folder + if you prefer. - [ ] Import the Operating System and Kubernetes distribution OVA required for the installation and place the OVA in the `spectro-templates` folder. @@ -25,6 +26,9 @@ installation. - [ ] Review the list of [pack binaries](../../airgap/supplemental-packs.md) to download and upload to your OCI registry. + +- [ ] Download the required third-party binary that contains the core packs and images required for the installation. + - [ ] If you have custom SSL certificates you want to include, copy the custom SSL certificates, in base64 PEM format, to the support VM. The custom certificates must be placed in the **/opt/spectro/ssl** folder. Include the following files: diff --git a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions.md b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions.md index 58cdbbdec6..b17556f0d9 100644 --- a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions.md +++ b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions.md @@ -34,6 +34,7 @@ Palette. - If you are using a generic OVA, ensure you download the airgap Palette installation binary for the version of Palette you plan to install. - An OVA with the operating system and Kubernetes distribution required for the Palette nodes. + - The third-party binary that contains the core packs and images required for the installation. For sensitive environments, you can download the OVAs to a system with internet access and then transfer them to your airgap environment. @@ -77,70 +78,24 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock 1. Log in to your vCenter environment. -2. Create a vSphere VM and Template folder named `spectro-templates`. Ensure you can access this folder with the user - account you plan to use when deploying the Palette installation. - -3. Right-click on your cluster or resource group and select **Deploy OVF Template**. - -4. In the **Deploy OVF Template** wizard, enter the following URL to import the Operating System (OS) and Kubernetes - distribution OVA required for the installation. Contact your support representative to learn if the version of - Palette you are installing requires a new OS and Kubernetes OVA. - - Consider the following example for reference. - - - - - - ```url - https://vmwaregoldenimage-console.s3.amazonaws.com/u-2204-0-k-1294-0.ova - ``` - - - - - ```url - https://vmwaregoldenimage-console.s3.amazonaws.com/u-2004-0-k-1294-fips.ova - ``` - - - - - Place the OVA in the **spectro-templates** folder. Append the `r_` prefix, and remove the `.ova` suffix when - assigning its name and target location. For example, the final output should look like `r_u-2204-0-k-1294-0`. This - naming convention is required for the installation process to identify the OVA. Refer to the - [Supplement Packs](../../../airgap/supplemental-packs.md#additional-ovas) page for a list of additional OS OVAs. - - You can terminate the deployment after the OVA is available in the `spectro-templates` folder. Refer to the - [Deploy an OVF or OVA Template](https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-vm-administration/GUID-AFEDC48B-C96F-4088-9C1F-4F0A30E965DE.html) - guide for more information about deploying an OVA in vCenter. - - :::warning - - If you encounter an error message during the OVA deployment stating unable to retrieve manifest or certificate, - refer to this [known issue](https://kb.vmware.com/s/article/79986) from VMware's knowledge base for guidance on how - to resolve the issue. - - ::: - -5. Next, deploy the airgap installation OVA by using the **Deploy OVF Template** wizard again in vSphere. Insert the - Palette install OVA URL in the **URL** field. The URL is provided to you by your Palette support representative. - Click on **Next** to continue. +2. Deploy the airgap installation OVA by using the **Deploy OVF Template** wizard again in vSphere. Insert the Palette + install OVA URL in the **URL** field. The URL is provided to you by your Palette support representative. Click on + **Next** to continue. ![View of the OVF deploy wizard](/vertex_airgap_vmware-vsphere-airgap-instructions_ovf-wizard.webp) -6. Assign a name to the virtual machine and select a target location. Click on **Next** to continue. +3. Assign a name to the virtual machine and select a target location. Click on **Next** to continue. -7. Select a compute resource and click on **Next** to continue. +4. Select a compute resource and click on **Next** to continue. -8. Review the details and click on **Ignore All** to dismiss any warning messages. The OVA contains a self-signed +5. Review the details and click on **Ignore All** to dismiss any warning messages. The OVA contains a self-signed certificate, which causes vSphere to issue a warning. Click on **Next** to continue. -9. Select the storage location and click on **Next** to continue. +6. Select the storage location and click on **Next** to continue. -10. Select the network and click on **Next** to continue. +7. Select the network and click on **Next** to continue. -11. The last step is to customize the template. Review the table below to learn more about each field. Click on **Next** +8. The last step is to customize the template. Review the table below to learn more about each field. Click on **Next** after you have completed the customization to continue. | Parameter | Description | Required | @@ -152,22 +107,22 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock | **Hostname** | Enter a fully qualified hostname for the airgap support VM. For example, `palette.example.com`. The default value is `ubuntuguest`. | Yes | | **Url to seed instance data from** | You can specify a URL to seed instance data from. You can leave this value empty. | No | -12. Review the details and click on **Finish** to deploy the airgap support VM. +9. Review the details and click on **Finish** to deploy the airgap support VM. -13. It takes a while for the airgap support VM to deploy, approximately 45 min or more depending on your internet +10. It takes a while for the airgap support VM to deploy, approximately 45 min or more depending on your internet connection. The download of the OVA takes up majority of the time. The image is over 30 GB and contains all the dependencies required to deploy a Palette. Once the deployment is complete, the airgap support VM is displayed in the vSphere inventory. The VM will be powered off. Power on the VM to continue. -14. SSH into the airgap support VM. Use the following command to SSH into the VM. Replace the IP address below with the +11. SSH into the airgap support VM. Use the following command to SSH into the VM. Replace the IP address below with the IP address or hostname of the airgap support VM. The default user account is `ubuntu`. Replace the path to the private SSH key and the IP address with the IP address or domain name of the airgap support VM. ```shell - ssh -identity_file /path/to/private/key ubuntu@palette.example.com + ssh -i /path/to/private/key ubuntu@palette.example.com ``` -15. Change the password for the `ubuntu` user account. You will be prompted to change the password the first time you +12. Change the password for the `ubuntu` user account. You will be prompted to change the password the first time you log in through SSH. The new password must meet the following requirements: - At least 14 characters long @@ -177,7 +132,7 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock - At least 1 number - At least 1 special character -16. Once you change the password, the SSH session will be terminated. SSH back into the airgap support VM with the new +13. Once you change the password, the SSH session will be terminated. SSH back into the airgap support VM with the new password. :::info @@ -192,7 +147,7 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock Connection to palette.example.com closed. ``` -17. If you want to assign a static IP address to the airgap support VM, you can do so now. Click on the box below to +14. If you want to assign a static IP address to the airgap support VM, you can do so now. Click on the box below to expand the instructions. Otherwise, proceed to the next step.
@@ -250,13 +205,13 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
-18. Switch to the `root` user account. You will need to use the `root` user account to complete the remaining steps. +15. Switch to the `root` user account. You will need to use the `root` user account to complete the remaining steps. ```shell sudo --login ``` -19. If you have custom SSL certificates you want to apply to the image and pack registry, and the Spectro Cloud +16. If you have custom SSL certificates you want to apply to the image and pack registry, and the Spectro Cloud Repository, copy the custom SSL certificates, in base64 PEM format, to the airgap support VM. If you do not provide a custom SSL certificate, the airgap setup process will generate a self-signed certificate for @@ -285,7 +240,7 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock - **server.crt** - **server.key** -20. Start the airgap initialization process by issuing the following command. The script requires the hostname or IP +17. Start the airgap initialization process by issuing the following command. The script requires the hostname or IP address of the airgap support VM. Choose the preferred method for your environment. Be aware that the script will generate a self-signed certificate for the value you provide. @@ -366,25 +321,26 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock -21. The output of the script contains credentials and values you will need when completing the installation with the +18. The output of the script contains credentials and values you will need when completing the installation with the Palette CLI. If you need to review this information in the future, invoke the script again. -22. If you have used a release-specific installation OVA, skip this step. Otherwise, if you have used a generic - installation OVA, use the following command to execute the Palette airgap installation binary. +19. Next, download the third party binary. Your support representative will provide you with credentials to access the + third-party binary. Use the following command to download the third-party binary. Replace the `XXXXX` and `YYYYY` + placeholders with the credentials provided to you. Replace the `X.X` placeholder with the version of the third-party + binary you are downloading. Ask your support representative for the version of the third-party binary you need. ```shell - chmod +x airgap-.bin && ./airgap-.bin + curl --user XXXXX:YYYYY https://software-private.spectrocloud.com/airgap/thirdparty/airgap-thirdparty-X.X.X.bin \ + --output airgap-upload.bin ``` - Consider the following example for reference. +20. Use the following command to start the third-party binary. The third-party binary uploads the release-specific packs + and images to the registry configured in step **17** of this guide. This process may take some time to complete. ```shell - chmod +x airgap-v4.4.14.bin && ./airgap-v4.4.14.bin + chmod +x airgap-upload.bin && ./airgap-upload.bin ``` - After the Palette airgap installation binary is verified and uncompressed, it uploads the release-specific packs and - images to the registry configured in step **20** of this guide. This process may take some time to complete. - ```text hideClipboard Verifying archive integrity... 100% MD5 checksums are OK. All good. Uncompressing Airgap Setup - Version 4.4.14 100% @@ -398,9 +354,57 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock Once the airgap binary completes its tasks, you will receive a **Setup Completed** success message. -23. Review the [Additional Packs](../../../airgap/supplemental-packs.md) page and identify any additional packs you want +21. Review the [Additional Packs](../../../airgap/supplemental-packs.md) page and identify any additional packs you want to add to your OCI registry. You can also add additional packs after the installation is complete. +22. Navigate back to the vSphere console and create a vSphere VM and Template folder named `spectro-templates`. Ensure + you can access this folder with the user account you plan to use when deploying the VerteX installation. You can + choose a different name for the folder if you prefer, but ensure you use the same name when the Palette CLI prompts + you for the folder name. + +23. Right-click on your cluster or resource group and select **Deploy OVF Template**. + +24. In the **Deploy OVF Template** wizard, enter the following URL to import the Operating System (OS) and Kubernetes + distribution OVA required for the installation. Contact your support representative to learn if the version of + Palette you are installing requires a new OS and Kubernetes OVA. + + Consider the following example for reference. + + + + + + ```url + https://vmwaregoldenimage-console.s3.amazonaws.com/u-2204-0-k-1294-0.ova + ``` + + + + + ```url + https://vmwaregoldenimage-console.s3.amazonaws.com/u-2004-0-k-1294-fips.ova + ``` + + + + + Place the OVA in the **spectro-templates** folder or in the folder you created in step **21**. Append the `r_` prefix, + and remove the `.ova` suffix when assigning its name and target location. For example, the final output should look like + `r_u-2204-0-k-1294-0`. This naming convention is required for the installation process to identify the OVA. Refer to the + [Supplement Packs](../../../airgap/supplemental-packs.md#additional-ovas) page for a list of additional OS OVAs. + + You can terminate the deployment after the OVA is available in the `spectro-templates` folder. Refer to the + [Deploy an OVF or OVA Template](https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-vm-administration/GUID-AFEDC48B-C96F-4088-9C1F-4F0A30E965DE.html) + guide for more information about deploying an OVA in vCenter. + +:::warning + +If you encounter an error message during the OVA deployment stating unable to retrieve manifest or certificate, refer to +this [known issue](https://kb.vmware.com/s/article/79986) from VMware's knowledge base for guidance on how to resolve +the issue. + +::: + You have now completed the preparation steps for an airgap installation. Check out the [Validate](#validate) section to ensure the airgap setup process is completed successfully. After you validate the airgap setup process completion, review the [Next Steps](#next-steps). diff --git a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/install.md b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/install.md index 53f2933217..68a7ccada6 100644 --- a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/install.md +++ b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/install.md @@ -210,17 +210,18 @@ Use the following steps to install Palette. use the provided VMware credentials to retrieve information from your VMware vSphere environment and present options for you to select from. - | **Parameter** | **Description** | - | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | **Datacenter** | The installer retrieves the Datacenter automatically. | - | **Folder** | Select the folder that contains the VM instance. | - | **Cluster** | Select the cluster where you want to deploy Palette. | - | **Network** | Select the network where you want to deploy Palette. | - | **Resource Pool** | Select the resource pool where you want to deploy Palette. | - | **Datastore** | Select the datastore where you want to deploy Palette. | - | **Fault Domains** | Configure one or more fault domains by selecting values for these properties: Cluster, Network (with network connectivity), Resource Pool, and Storage Type (Datastore or VM Storage Policy). Note that when configuring the Network, if you are using a distributed switch, choose the network that contains the switch. | - | **NTP Servers** | You can provide a list of Network Time Protocol (NTP) servers. | - | **SSH Public Keys** | Provide any public SSH keys to access your Palette VMs. This option opens up your system's default text editor. Vi is the default text editor for most Linux distributions. To review basic vi commands, check out the [vi Commands](https://www.cs.colostate.edu/helpdocs/vi.html) reference. | + | **Parameter** | **Description** | + | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | **Datacenter** | The installer retrieves the Datacenter automatically. | + | **Folder** | Select the folder that contains the VM instance. | + | **Image Template Folder** | Select the folder that contains the CAPI image templates. | + | **Cluster** | Select the cluster where you want to deploy Palette. | + | **Network** | Select the network where you want to deploy Palette. | + | **Resource Pool** | Select the resource pool where you want to deploy Palette. | + | **Datastore** | Select the datastore where you want to deploy Palette. | + | **Fault Domains** | Configure one or more fault domains by selecting values for these properties: Cluster, Network (with network connectivity), Resource Pool, and Storage Type (Datastore or VM Storage Policy). Note that when configuring the Network, if you are using a distributed switch, choose the network that contains the switch. | + | **NTP Servers** | You can provide a list of Network Time Protocol (NTP) servers. | + | **SSH Public Keys** | Provide any public SSH keys to access your Palette VMs. This option opens up your system's default text editor. Vi is the default text editor for most Linux distributions. To review basic vi commands, check out the [vi Commands](https://www.cs.colostate.edu/helpdocs/vi.html) reference. | 12. Specify the IP pool configuration. The placement type can be Static or Dynamic Host Configuration Protocol (DHCP). Choosing static placement creates an IP pool from which VMs are assigned IP addresses. Choosing DHCP assigns IP diff --git a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/install.md b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/install.md index 418a0fbd32..ecf6171ca7 100644 --- a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/install.md +++ b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/install.md @@ -182,17 +182,18 @@ Use the following steps to install Palette. use the provided VMware credentials to retrieve information from your VMware vSphere environment and present options for you to select from. - | **Parameter** | **Description** | - | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | **Datacenter** | The installer retrieves the Datacenter automatically. | - | **Folder** | Select the folder that contains the VM instance. | - | **Cluster** | Select the cluster where you want to deploy Palette. | - | **Network** | Select the network where you want to deploy Palette. | - | **Resource Pool** | Select the resource pool where you want to deploy Palette. | - | **Datastore** | Select the datastore where you want to deploy Palette. | - | **Fault Domains** | Configure one or more fault domains by selecting values for these properties: Cluster, Network (with network connectivity), Resource Pool, and Storage Type (Datastore or VM Storage Policy). Note that when configuring the Network, if you are using a distributed switch, choose the network that contains the switch. | - | **NTP Servers** | You can provide a list of Network Time Protocol (NTP) servers. | - | **SSH Public Keys** | Provide any public SSH keys to access your Palette VMs. This option opens up your system's default text editor. Vi is the default text editor for most Linux distributions. To review basic vi commands, check out the [vi Commands](https://www.cs.colostate.edu/helpdocs/vi.html) reference. | + | **Parameter** | **Description** | + | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | **Datacenter** | The installer retrieves the Datacenter automatically. | + | **Folder** | Select the folder that contains the VM instance. | + | **Image Template Folder** | Select the folder that contains the CAPI image templates. | + | **Cluster** | Select the cluster where you want to deploy Palette. | + | **Network** | Select the network where you want to deploy Palette. | + | **Resource Pool** | Select the resource pool where you want to deploy Palette. | + | **Datastore** | Select the datastore where you want to deploy Palette. | + | **Fault Domains** | Configure one or more fault domains by selecting values for these properties: Cluster, Network (with network connectivity), Resource Pool, and Storage Type (Datastore or VM Storage Policy). Note that when configuring the Network, if you are using a distributed switch, choose the network that contains the switch. | + | **NTP Servers** | You can provide a list of Network Time Protocol (NTP) servers. | + | **SSH Public Keys** | Provide any public SSH keys to access your Palette VMs. This option opens up your system's default text editor. Vi is the default text editor for most Linux distributions. To review basic vi commands, check out the [vi Commands](https://www.cs.colostate.edu/helpdocs/vi.html) reference. | 15. Specify the IP pool configuration. The placement type can be Static or Dynamic Host Configuration Protocol (DHCP). Choosing static placement creates an IP pool from which VMs are assigned IP addresses. Choosing DHCP assigns IP diff --git a/docs/docs-content/enterprise-version/upgrade/upgrade-vmware/airgap.md b/docs/docs-content/enterprise-version/upgrade/upgrade-vmware/airgap.md index b11913a241..b16d257b91 100644 --- a/docs/docs-content/enterprise-version/upgrade/upgrade-vmware/airgap.md +++ b/docs/docs-content/enterprise-version/upgrade/upgrade-vmware/airgap.md @@ -90,13 +90,13 @@ steps one through four. Otherwise, start at step five. your private SSH key, your username, and the IP or domain of the airgap support VM. The default username is `ubuntu`. ```shell - ssh -identity_file ubuntu@ + ssh -i ubuntu@ ``` Consider the following command example for reference. ```shell - ssh -identity_file /docs/ssh-private-key.pem ubuntu@palette.example.com + ssh -i /docs/ssh-private-key.pem ubuntu@palette.example.com ``` 6. Use the following command to switch to the `root` user account, which you need to proceed with the upgrade. diff --git a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/checklist.md b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/checklist.md index 9aec39d3fe..7709c90f86 100644 --- a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/checklist.md +++ b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/checklist.md @@ -12,7 +12,7 @@ keywords: ["self-hosted", "enterprise"] --- Use the following checklist to ensure you have completed all the required steps before deploying the airgap Palette -installation. +installation. Review this checklist with your VerteX support team to ensure you have all the required assets. - [ ] Create a vSphere VM and Template folder named `spectro-templates`. @@ -34,6 +34,8 @@ installation. - [ ] Review the list of [pack binaries](../../airgap/supplemental-packs.md) to download and upload to your OCI registry. +- [ ] Download the required third-party binary that contains the core packs and images required for the installation. + - [ ] If you have custom SSL certificates you want to include, copy the custom SSL certificates, in base64 PEM format, to the support VM. The custom certificates must be placed in the **/opt/spectro/ssl** folder. Include the following files: diff --git a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions.md b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions.md index 965a573ae8..bb350eefcb 100644 --- a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions.md +++ b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions.md @@ -34,6 +34,7 @@ VerteX. - If you are using a generic OVA, ensure you download the airgap VerteX installation binary for the version of VerteX you plan to install. - An OVA with the operating system and Kubernetes distribution required for the VerteX nodes. + - The third-party binary that contains the core packs and images required for the installation. For sensitive environments, you can download the OVAs to a system with internet access and then transfer them to your airgap environment. @@ -81,71 +82,24 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock 1. Log in to your vCenter environment. -2. Create a vSphere VM and Template folder named `spectro-templates`. Ensure you can access this folder with the user - account you plan to use when deploying the VerteX installation. - -3. Right-click on your cluster or resource group and select **Deploy OVF Template**. - -4. In the **Deploy OVF Template** wizard, enter the following URL to import the Operating System (OS) and Kubernetes - distribution OVA required for the installation. Contact your support representative to learn if the version of - VerteX you are installing requires a new OS and Kubernetes OVA. - - Consider the following example for reference. - - - - - - ```url - https://vmwaregoldenimage-console.s3.amazonaws.com/u-2204-0-k-1294-0.ova - ``` - - - - - ```url - https://vmwaregoldenimage-console.s3.amazonaws.com/u-2004-0-k-1294-fips.ova - ``` - - - - - Place the OVA in the **spectro-templates** folder. Append the `r_` prefix, and remove the `.ova` suffix when - assigning its name and target location. For example, the final output should look like `r_u-2204-0-k-1294-0`. This - naming convention is required for the installation process to identify the OVA. Refer to the - [Supplement Packs](../../../airgap/supplemental-packs.md) page for a list of additional OS OVAs. - - You can terminate the deployment after the OVA is available in the `spectro-templates` folder. Refer to the - [Deploy an OVF or OVA Template](https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-vm-administration/GUID-AFEDC48B-C96F-4088-9C1F-4F0A30E965DE.html) - guide for more information about deploying an OVA in vCenter. - - :::warning - - You may encounter an error message during the OVA deployment stating unable to retrieve manifest or certificate. - This is a known issue that was fixed in the - [VMware vCenter Server 7.0 Update 3q](https://docs.vmware.com/en/VMware-vSphere/7.0/rn/vsphere-vcenter-server-70u3q-release-notes/index.html). - Reach out to [Broadcom Support](https://support.broadcom.com) if you need further guidance. - - ::: - -5. Next, deploy the airgap installation OVA by using the **Deploy OVF Template** wizard again in vSphere. Insert the - VerteX install OVA URL in the **URL** field. The URL is provided to you by your Palette support representative. - Click on **Next** to continue. +2. Deploy the airgap installation OVA by using the **Deploy OVF Template** wizard again in vSphere. Insert the VerteX + install OVA URL in the **URL** field. The URL is provided to you by your Palette support representative. Click on + **Next** to continue. ![View of the OVF deploy wizard](/vertex_airgap_vmware-vsphere-airgap-instructions_ovf-wizard.webp) -6. Assign a name to the virtual machine and select a target location. Click on **Next** to continue. +3. Assign a name to the virtual machine and select a target location. Click on **Next** to continue. -7. Select a compute resource and click on **Next** to continue. +4. Select a compute resource and click on **Next** to continue. -8. Review the details and click on **Ignore All** to dismiss any warning messages. The OVA contains a self-signed +5. Review the details and click on **Ignore All** to dismiss any warning messages. The OVA contains a self-signed certificate, which causes vSphere to issue a warning. Click on **Next** to continue. -9. Select the storage location and click on **Next** to continue. +6. Select the storage location and click on **Next** to continue. -10. Select the network and click on **Next** to continue. +7. Select the network and click on **Next** to continue. -11. The last step is to customize the template. Review the table below to learn more about each field. Click on **Next** +8. The last step is to customize the template. Review the table below to learn more about each field. Click on **Next** after you have completed the customization to continue. | Parameter | Description | Required | @@ -157,22 +111,22 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock | **Hostname** | Enter a fully qualified hostname for the airgap support VM. For example, `vertex.example.com`. The default value is `ubuntuguest`. | Yes | | **Url to seed instance data from** | You can specify a URL to seed instance data from. You can leave this value empty. | No | -12. Review the details and click on **Finish** to deploy the airgap support VM. +9. Review the details and click on **Finish** to deploy the airgap support VM. -13. It takes a while for the airgap support VM to deploy, approximately 45 min or more depending on your internet +10. It takes a while for the airgap support VM to deploy, approximately 45 min or more depending on your internet connection. The download of the OVA takes up majority of the time. The image is over 30 GB and contains all the dependencies required to deploy a VerteX. Once the deployment is complete, the airgap support VM is displayed in the vSphere inventory. The VM will be powered off. Power on the VM to continue. -14. SSH into the airgap support VM. Use the following command to SSH into the VM. Replace the IP address below with the +11. SSH into the airgap support VM. Use the following command to SSH into the VM. Replace the IP address below with the IP address or hostname of the airgap support VM. The default user account is `ubuntu`. Replace the path to the private SSH key and the IP address with the IP address or domain name of the airgap support VM. ```shell - ssh -identity_file /path/to/private/key ubuntu@vertex.example.com + ssh -i /path/to/private/key ubuntu@vertex.example.com ``` -15. Change the password for the `ubuntu` user account. You will be prompted to change the password the first time you +12. Change the password for the `ubuntu` user account. You will be prompted to change the password the first time you log in through SSH. The new password must meet the following requirements: - At least 14 characters long @@ -182,7 +136,7 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock - At least 1 number - At least 1 special character -16. Once you change the password, the SSH session will be terminated. SSH back into the airgap support VM with the new +13. Once you change the password, the SSH session will be terminated. SSH back into the airgap support VM with the new password. :::info @@ -197,7 +151,7 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock Connection to vertex.example.com closed. ``` -17. If you want to assign a static IP address to the airgap support VM, you can do so now. Click on the box below to +14. If you want to assign a static IP address to the airgap support VM, you can do so now. Click on the box below to expand the instructions. Otherwise, proceed to the next step.
@@ -255,13 +209,13 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
-18. Switch to the `root` user account. You will need to use the `root` user account to complete the remaining steps. +15. Switch to the `root` user account. You will need to use the `root` user account to complete the remaining steps. ```shell sudo --login ``` -19. If you have custom SSL certificates you want to apply to the image and pack registry, and the Spectro Cloud +16. If you have custom SSL certificates you want to apply to the image and pack registry, and the Spectro Cloud Repository, copy the custom SSL certificates, in base64 PEM format, to the airgap support VM. If you do not provide a custom SSL certificate, the airgap setup process will generate a self-signed certificate for @@ -290,7 +244,7 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock - **server.crt** - **server.key** -20. Start the airgap initialization process by issuing the following command. The script requires the hostname or IP +17. Start the airgap initialization process by issuing the following command. The script requires the hostname or IP address of the airgap support VM. Choose the preferred method for your environment. Be aware that the script will generate a self-signed certificate for the value you provide. @@ -371,26 +325,26 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock -21. The output of the script contains credentials and values you will need when completing the installation with the +18. The output of the script contains credentials and values you will need when completing the installation with the Palette CLI. If you need to review this information in the future, invoke the script again. -22. If you have used a release-specific installation OVA, skip this step. Otherwise, if you have used a generic - installation OVA, use the following command to execute the Palette VerteX airgap installation binary. +19. Next, download the third party binary. Your support representative will provide you with credentials to access the + third-party binary. Use the following command to download the third-party binary. Replace the `XXXXX` and `YYYYY` + placeholders with the credentials provided to you. Replace the `X.X` placeholder with the version of the third-party + binary you are downloading. Ask your support representative for the version of the third-party binary you need. ```shell - chmod +x airgap-vertex-.bin && ./airgap-vertex-.bin + curl --user XXXXX:YYYYY https://software-private.spectrocloud.com/airgap/thirdparty/airgap-thirdparty-X.X.X.bin \ + --output airgap-upload.bin ``` - Consider the following example for reference. +20. Use the following command to start the third-party binary. The third-party binary uploads the release-specific packs + and images to the registry configured in step **17** of this guide. This process may take some time to complete. ```shell - chmod +x airgap-vertex-v4.4.14.bin && ./airgap-vertex-v4.4.14.bin + chmod +x airgap-upload.bin && ./airgap-upload.bin ``` - After the Palette VerteX airgap installation binary is verified and uncompressed, it uploads the release-specific - packs and images to the registry configured in step **20** of this guide. This process may take some time to - complete. - ```text hideClipboard Verifying archive integrity... 100% MD5 checksums are OK. All good. Uncompressing Airgap Setup - Version 4.4.14 100% @@ -402,11 +356,63 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock Setup Completed ``` + Once the airgap binary completes its tasks, you will receive a **Setup Completed** success message. + Once the Palette VerteX airgap binary completes its tasks, you will receive a **Setup Completed** success message. -23. Review the [Additional Packs](../../../airgap/supplemental-packs.md) page and identify any additional packs you want +21. Review the [Additional Packs](../../../airgap/supplemental-packs.md) page and identify any additional packs you want to add to your OCI registry. You can also add additional packs after the installation is complete. +22. Navigate back to the vSphere console and create a vSphere VM and Template folder named `spectro-templates`. Ensure + you can access this folder with the user account you plan to use when deploying the VerteX installation. You can + choose a different name for the folder if you prefer, but ensure you use the same name when the Palette CLI prompts + you for the folder name. + +23. Next, right-click on your cluster or resource group and select **Deploy OVF Template**. + +24. In the **Deploy OVF Template** wizard, enter the following URL to import the Operating System (OS) and Kubernetes + distribution OVA required for the installation. Contact your support representative to learn if the version of + VerteX you are installing requires a new OS and Kubernetes OVA. + + Consider the following example for reference. + + + + + + ```url + https://vmwaregoldenimage-console.s3.amazonaws.com/u-2204-0-k-1294-0.ova + ``` + + + + + ```url + https://vmwaregoldenimage-console.s3.amazonaws.com/u-2004-0-k-1294-fips.ova + ``` + + + + + Place the OVA in the **spectro-templates** folder or in the folder you created in step **21**. Append the `r_` + prefix, and remove the `.ova` suffix when assigning its name and target location. For example, the final output + should look like `r_u-2204-0-k-1294-0`. This naming convention is required for the installation process to identify + the OVA. Refer to the [Supplement Packs](../../../airgap/supplemental-packs.md) page for a list of additional OS + OVAs. + + You can terminate the deployment after the OVA is available in the `spectro-templates` folder. Refer to the + [Deploy an OVF or OVA Template](https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-vm-administration/GUID-AFEDC48B-C96F-4088-9C1F-4F0A30E965DE.html) + guide for more information about deploying an OVA in vCenter. + + :::warning + + You may encounter an error message during the OVA deployment stating unable to retrieve manifest or certificate. + This is a known issue that was fixed in the + [VMware vCenter Server 7.0 Update 3q](https://docs.vmware.com/en/VMware-vSphere/7.0/rn/vsphere-vcenter-server-70u3q-release-notes/index.html). + Reach out to [Broadcom Support](https://support.broadcom.com) if you need further guidance. + + ::: + You have now completed the preparation steps for an airgap installation. Check out the [Validate](#validate) section to ensure the airgap setup process is completed successfully. After you validate the airgap setup process completion, review the [Next Steps](#next-steps). diff --git a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/install.md b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/install.md index bf208248b5..59e4985513 100644 --- a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/install.md +++ b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/install.md @@ -257,6 +257,7 @@ Use the following steps to install Palette VerteX. | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Datacenter** | The installer retrieves the Datacenter automatically. | | **Folder** | Select the folder that contains the VM instance. | + | **Image Template Folder** | Select the folder that contains the CAPI image templates. | | **Cluster** | Select the cluster where you want to deploy Palette. | | **Network** | Select the network where you want to deploy Palette. | | **Resource Pool** | Select the resource pool where you want to deploy Palette. | diff --git a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/install.md b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/install.md index 3a6307ac58..efa2f4f12c 100644 --- a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/install.md +++ b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/install.md @@ -228,6 +228,7 @@ Use the following steps to install Palette VerteX. | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Datacenter** | The installer retrieves the Datacenter automatically. | | **Folder** | Select the folder that contains the VM instance. | + | **Image Template Folder** | Select the folder that contains the CAPI image templates. | | **Cluster** | Select the cluster where you want to deploy Palette. | | **Network** | Select the network where you want to deploy Palette. | | **Resource Pool** | Select the resource pool where you want to deploy Palette. | diff --git a/docs/docs-content/vertex/upgrade/upgrade-vmware/airgap.md b/docs/docs-content/vertex/upgrade/upgrade-vmware/airgap.md index 98b61d261a..70d0f41b78 100644 --- a/docs/docs-content/vertex/upgrade/upgrade-vmware/airgap.md +++ b/docs/docs-content/vertex/upgrade/upgrade-vmware/airgap.md @@ -92,13 +92,13 @@ one through four. Otherwise, start at step five. `ubuntu`. ```shell - ssh -identity_file ubuntu@ + ssh -i ubuntu@ ``` Consider the following command example for reference. ```shell - ssh -identity_file /docs/ssh-private-key.pem ubuntu@palette.example.com + ssh -i /docs/ssh-private-key.pem ubuntu@palette.example.com ``` 6. Use the following command to switch to the `root` user account, which you need to proceed with the upgrade. diff --git a/docs/docs-content/vm-management/install-vmo-in-airgap.md b/docs/docs-content/vm-management/install-vmo-in-airgap.md index 6b6a5fe68a..2334a3f233 100644 --- a/docs/docs-content/vm-management/install-vmo-in-airgap.md +++ b/docs/docs-content/vm-management/install-vmo-in-airgap.md @@ -39,13 +39,13 @@ instance of Palette and Palette VerteX. your private SSH key, username, and the IP or domain of the airgap support VM. The default username is `ubuntu`. ```shell - ssh -identity_file @ + ssh -i @ ``` Consider the following command example for reference. ```shell - ssh -identity_file /docs/ssh-private-key.pem ubuntu@palette.example.com + ssh -i /docs/ssh-private-key.pem ubuntu@palette.example.com ``` 2. Execute the following command to switch to the `root` user account. diff --git a/static/assets/docs/images/vertex_airgap_vmware-vsphere-airgap-instructions_order-operations.webp b/static/assets/docs/images/vertex_airgap_vmware-vsphere-airgap-instructions_order-operations.webp index 4ce705efadbe3ae160464e7f582cf00cf5780948..ef490276fbc9a879c08c9fe3dffa65fd8aecb7c6 100644 GIT binary patch literal 40846 zcmeFZgLh`peZh*q@l#E1q%QGkpDc_zybH50AV>LDIFL900if| zJsz_@kcdzRbq)wqo(V^u&LYJlw#r!>a1YqqakZFstx2Vule zicA*~yF@`iRso~&^MpibHQZMv^$EdY0YTe7YOz;cYq7VrKR+^GYaz%C=%1|lJvwP!U{ z&u;ci&c>6c5K8Lx21wRiE`%2Rf*7{0i(!XSfrOQ`8s|l1Q_6sN<@#0HIQz!LJ$e`L z>x5`^4R!j9xNbJ6LP@}rT2&ow8v2Q-=p(=zyS3R@oxWlr$fPInd_|5Ezz-c-en5*^ zg@Bi_;aIu1J}!~b2;zyXRBt!*zN&<>Gw!$ch^=iO&VvWy2H`#1fN{sACZ_gLlC!@3 zy4?1-SnGU1XXrX7jj{X7DxBHb-P?Pp%>~%~yc_WGBA9?|;RfMJNPGA-GP0taw(ZW8 z=ss{QcQ)qGV+*+Sv)hp+gt!22q&B06gp{_(MwH;@7u9BX&Ha7lRlu8|5_lCuJX;TG z5orbOblX{0jFmi-&yg*)I6!k-n4^}~e^W`_Qs1pF%}S9eV7OTsrFU_Tj8y)Fs$({S4+NnH|6DhhZ7hk!BnwUDin}%HZ(nbw<0e<}Kd+|qU>4g?Qc{B#(o)R;zvyJMnSKlwF>$^-1-bf9 ztO>_;lEdzMDY*uNM;@VROYuQ0q#?1h0AMgVh;uB7#pctr8r)aHhQ|aF(r^+J&z+zQ zyN@X!Xd~`jWEQbOf&o{!T3#%vz$%+zWVVQ%HXoDz2dvr%@cx|v=0Rq?r|}fH8C;l& zgw#MSorg%*HJ{W3xhU$n%Moqu#CvwPYyLizm4{E6LWARG%4skGlU90 zb@1;#Xll}EXksa#4N2rVrq~-6HO62nbTE4zY%m}g01^DiL`4kUKm$ELFkVXC(4vD4 zB5bCLJPQelK8PT!tifQbwaVrQHd ze6HS0DX|nx92m$D3z%PkCEgBCmY<|w0|m7L+anJow#~dSv{+&2s+v@2u*M==W94VbWw~dJ>9DG5+?oO{4!!(i=45|JTuI%)yFd;3= z5J2e66Jx*|iWvX|6d4*h@aBe2C%u+jC}ZFYvJ~p)OVrZAN08k)0!+fbe(r=~kFbbH z3n+Pz8FKgAx8Z|a7#Q%Rq0PjE&YG_;FHmfdq2xlCFvyVPJ3WGnEuD|-B+}f>LBdI~ ziOYKHO}^*0Bsd^R^sK@noWR@hyaNv=qF8cMoaf4GDIXO9u z50sDu>#(-L=Y{{lIm8x`Swd)NE(!dfizW1N`)$s2q~7c@eT!w89*z^r0ArSNcIO<% z#uB`H>l!~`de$12l9CXSfNrEt(@M+B$w~3{b}Dl|F>F$+kf}~W1xJ=)kgZg!;C?c+ zv>*2X7U-zA&x+_%W12|In@9OSrSp#)c01xwr+rsXZh#Ihpg2H9dEW8)+|1W|pRNu6 zkwRN91`Dp7($FhXS%)kw@ba3!{)6LX2ujeOCRixd%9sXLff!mXiXvq)iB7;h0*e2* zM)N}2|Kr;X@M;tq5<*s)S{wzrkAj+-I3XeB;KCuGGJEUUd%4R7%Xy{e^D$xzcpd@7 z#mPYk4h*!ypoRvG>@QIYMg@hj`4Op8z-Y(OAO#(QB9hcMicLn2i;jVgp${D#Yy%&irH0@S30#Kc54 zfUvNT5^^Y@h&qLsIAN$V%sO0$T`@Y)t!4Fu}ngAcV!lki|g$)Br1_>JN0- z2F$t{Xym0o31)Uqi)8_Y35*P+Zom{q1}8^FOJ?~+OY^sjaAAS`sSC1@#KuHq07)<@ zG%0c5A0W&0Dxv>Qjjngm)HS;FB`7pB(abD%5)C?-xK$Kf7?~W8Eb2QZL{T6emc0cg z2x}rdD{E3B@}IY%8xa4@!w4XU$|^xa5k}gO;?GuvHp(X@Az@)5Z1KlOF+iqyrVuOY zxCpv=q1~F18JNhQAR|j8C89uw0;mJ=X+fbuNRXw%#g$cAV(7omO@fmEV5Iw{Sc%by z8v&%G#H6yqheAn0Im#&Lncp|yg@}Vf>0wMI!G-rTNPWOaqDaxH`$Z6&zmJlD6ANjC zR&hN>MBI#7;Zi-vdw{^F zx0v^%Po%p~g{^Nur#FIYi1({E!w<#lfa8F#{%HZlz?sjOkFraw7Q?we&g}ywUyL77 z-k0Ab-{Y^hPJlLoKp^n#5eU3Ye~JMDKMf-kHxxgM)BG$iW+k%G(fC%}Z5#Eo&X+AZ zI96(={`VcdHF&FPx&SUiRh-Ef&5~s8%)eL&c3evgCT+!EEy+-oJ~JilrdZ>CN0M&( z@}G93Xxt-_H96=?m*U*{uap0Hbx-9E6g{G_o)fQ}m#&)pW4-aZF$w9B>fTVaC|_7Rm<&;(#8#i!RF2lD{M-{ouF)N&1s47ZVx&wHyhYC6+aMLn!Tkt z{^Mns*iuE3yv4uGNQ+K*-vMJ%OirsC0Ea+>Ain#-TIAmTL+S2lX5Nwy6`rle(dD=A zA!5UXM+L|zUx>45Vw2>sATWP4VP|`aKqmrQ&@7=_FY-t-H9P*6$Z0yS3hl6R&69dd zua~0*Tp1y;GoYG~1E6K7J`Zm?P$oYJbu^lFKd?)8v3h~L5&0b7Urn3Os4v& z4rw7#x7j+%ZtvYV0j|repgn!HWDJ{hs4EZsyQSE0B}OM%hy_>?Qc{@r+J~qf4Ke(OTcHK|~USWuMv{_t$itkbq&FkT3l^nie)kTJ=&pef^@k`!&>m z&G=;!GK;}q0&fhR;8?Vs9NWV|ol6-GUnTl+kLfM%H9yF3tC5SY(?y>3x6}{DQbhcx zYA!Fs@8tRuxPT5BzJpWQgrLX8;&D*TDN?uyPc0Ct2Q|q&p@}d zHTP_iK~pyD@b}@eo%Tx^79q^1R??$PyU0RF)>lZgT&eFFQ6}Hk@+6TTV5-A4@a+B; zrb2I>Fgvs)X=uR@h}ETV2xuX9z)q>~e5`rYRGkT4#*HLFWD}&>ev&j#|8KpJPc9jlV@!7*l`5fK#=*_mwKyP z*iFzbAERb<*cfFGgC8SsvI_ge8``K$2)&UH?IFtSTq{l4$o5Y|WlsA~{{EzKz|ZZg z4g$A|UBM%%MiZ`Maq5xB-%T3oHUh-;ClH7j2JldFB>sOcbDNU?F9a}^1L_fc#Szy-E+k=u92?}ezo)zEAG z2Ony`m5F2ib#i~7BYYpC!xz~6XdE*asPc_tZ`mDe-=@N@{}h>p%~a{nF&$TBoBJf& zf5nB34VAY$+Y%7`rO^$P{Y-bqvQz3>Ml{xMOb2>T{o7v_-2c;KwY~y*(qSzJ1|FWV zN8&O?BLYvP?>9{=hJUT@s#ROx)cZoyut`sY(5mm}cDB|6>EG#_+A0 zYy_qjfi#5Y>^>*iFL}U8h8$k1Z2U@t!TWf$LS+&bsbQA(B$?B>2Y{2Rt1oWY20y58 z6YrIfR)Nh*s76I)(k?u{_3~D0zB`?p+OjD_bt(z5F_%BssFxGiR@i296IxH{6<^Rg-pA7#= ztzRpc`66$S;+Ri?WcccVJ6$Ylf<&P}K_%5$^|zi+lm@*V23XnQ-0AsE-NnL4BWypy zW*5qkUz!*kcN6X70MQeHhj2lop$_Dd`&q<1MH7BYG{@P zP*FV&_&UjVNjx!wf2^bb(Mn_Ws_`T6FK1fVqfDJkj{t2kvws&uy>)K>O3|7#8TxA) z|9;GDg(g*Gz&TM!PDs>K;y_2vZt?IJtj}t+uKp|F{Ue=HmoGpU$sOd5VzVS(9pzqY z#i?2zxTi?46@^8`yls1ssG~yuAhfTuV`9M`ps34mDSRagCLAmcNmdOSUP!P?ShPDT zyV9!DY3UVh#3i%m8pFK0`gURWFkQ(6i2L|eUKNX!*~xC4QJJHsG$3G6zm;EBL+p8l z_55@wfxUy$HV`$)Q71hT*835pqy-@gr#_rgd5~*}%$uPk-Wf_j((QREvM&*^JpUCV z*F;~?cIBPk3DpS9 zV$Tncv5ZK zRoi#!jE(vAPultmw1BN!8ZxKtRqewwdBHGJ;C8g1@lSW;YfW`kQDTmpP76#ZRK5ki z2wmOTnY(~>N$r>lS#sRXvr)$_reN9c=gZ3|W}SQ#OQo&~y1fA}N+2v4Aj$~RgI&nR zNethVYPNHBx50qXB4`#EU@>|ArCA*ihRsjTPTBj>Q)`f|d1%G%IuZyqrnj@TDINQ( zg5VUs&OnHx9~x|LFqbAuni;H;FB%U0N1Yt8cRTio%`Udi`I^-Wb6Kauk|yYs}}U2E8lGSQjPWpyv8MZi%TjTwE@8%BnGRX@bV_#DC7 zu}Z4+h?F!7L*2`uaQM`8En2xjUhIJ$JGE~6eQhDqDoaO%)tp{vmWFo{EUP-d_N}hY zY}XXVLXGhMgA??}}7W z8D|X}8W`yF$zOxP0jRx7+7Jw~-+t7imj&L~Mvt+@JcEN^82N3h=Ih$Yn-l7mqL=Y0|g&BbSntkU55& z=s`L3r0+{?Ig~CvR(SvN$f$AzYPqw;iOmfXD9p%wY4a8wYzCaEtj_E7@aJicQ2b|9 zQ=F|~a@6yTEPD4K!Tn6vrABzd^vKiG#1r?%KbX?=cMlDfQWHB5gk(f7Ri8u>f?=|} z#ANQ@h2wuV@Xohnc)UfTU1L<&k;XHr0k;;AISiG}7JTtocW^(&3GXVKY64(R13a z9BoQvdzUlQ!4zsi!+g*CGD8~EW1&+AiPdiKk?3V(l08G8*Y3mci0!NvmErR7`>OY{ z4hWxkKf+%qL`TOjSH*G(4-O$|aZ*_8nfn3VoZsftT?ALrQL8fEa^4VjT&l)o&oOV2 z>~?Q_PZ6E`JC`qkD&AHh_(8r})cmQYI(RH(M7UXKnv+YEc0Nv=o{bZ)}e+cs(|6 z$qhhe079>GLu;T+O>sqX6@JMh2iZhFn21$U$)fCC!VmEbG+xj zI|TJeiW>`JHN}1YAtZ>|`$$vu69H{%oYS27f%6E@RwG_bCK8Vft6qpUv%yAC+p@mH zw+4dGhqdpSTN5);o4p&tweZxmD6TZg?#i+c{9xE*7{LX%^l50ZU?Gf%HvKk}NwT+|)wn;;Len0%3Fc(&bZ#&o6EE?*=$llZR3niEHBKR9pAQ7VEKekDJ z4>u4WQpLh@KqLQ6?RKs^ag3GW$Pd|`H6 z9>6+@l|26z9$8_agJ>N}RPc>eQLcV!)hJ!5%3Cv7)f@a+s$xm56}br)nMNAs113cv z%3?qH>UrJ0Srb9A^|t4Xns43Gzj%nR^pwn%y=Cs)mMqKNg?g30*z4ENT!%MDSDiIG z71S9qBTKW#8^~NNRj)ARW^1Vx;3^0>niJi7o|8hLF9xYXZcU^K(O}0i z5QPmx8yUotwokgFr`|xonxkJZmsX8=bLp?-JFC$K?++KFVU)=QIS*#~Jr}*nUpC;C z7Yr=aSVwX>^R~vdrx(oG~cS~w2FxlVd zFWlT_s@z`v#vjH86@IQ{5NtDB#-Y3N|56ofe~}J4e|%T>H4N4XbB@!@{fFB8ce`0! zG!*^MU9-Q`~+x*6;t#ME(el zzf#l1Y^Bx8&9L=->0^&d#9@d*0kjCXha zG|7737Wed&_t5o|`?Op*9T!5Rj78U2=_@jl;~nR6CJ3fH<)(qh)9}^;1n_Noc&#TiTyRBuxKpm)|{j)CMmI{y7Z%TrivAr1;q7$w=c6WtV}o3 zoBoEoi97a91Kw$C=|VLgmj#vxmmV(E{=bW)2_JDQzp~zhpB96^YqafuH-kyb!8Fhd zCSJ`SJ1=@EY}1x*qZ+cu@d~l&MPCEvZjqnwQ!2RwsXnl5vv%JMM{SLSeoV}66-M>L zAE{%*>in|hm93{HKrJCSBJY?;MY- z;Mh<6B#S*hNJG4CqmHqD%4QYFqouEXtPm~HhhD{9tXUz+x z=A>16Q10ojn)MQgIY?o+20vMwM9mlSp;lPkg@DP&rM@%pB&B+U+l(^UkcKLyk%TW- zd0p9R;i|d)_7gL>ngRr54w@xlZBEQ2NqwK@Jhx}r~QxdOGOkkistCz?TIKQM%4tC^cLbic9M=!VqRD@Ym zlcAU~{X#$y7DVA4rd3PdjywRFLUL0paY<)(f}JG6J&6W#XM4XyNGCC02_fsQc@pWaaSUIMi{%qGnPqYyp~Q4{2Q8j7EuEthm5 zy4ejd&ubX{5x8q~ezAn$rVDpgycMdF1N6-pro!Bg%{_qk*nDvVn7$Oh$-o)C$`P^H z<8@rUPRS`%^uwLN? z?_h80Q@X8U0aDZPBOt9rFLQ)i2xKsHRWZk#QJ#X*cO#q2QX;!q!T9~$QKK<`5#{(n3_X+2cb()!Y!T)ZAZkGNy^NUg( zA$~|rQx|%sg(thSE~%7pJIW$QONBt~Qp_K)UJz}!wrz{m;$SIiyd~#HTvBRjcaEOlGxZ3vC@94mue%N5qBWIJ4&;<-e z0J*zl+ri{cwlexiHq6e-h=gN32INke$Tc>>qt`&6q`~Gh8Y+JV8c1blMq$f$9=cwB zwi?xnzFHd+4-8$&V3|CT8dFC*=t0~9um186=MiBv*Q>eACKt`JcYAJj_tqjzAb1h>_s@JWR_^s%R`d5&4zz#SqnVX2y|+`6dbMJ1BD zSsdVp$q~#Kte-}>))AFU5-RPWiY+kGs+YyHKG$%RUJw*zxVvb+Fr}AtKYtprJ(^uD zk7bV?so%5&x773)OQ0i zEc8BHd`^`yP8u*(?E!I|m%kkCg-kyd`~sDW)jXp`wDf5V?vmB(f5QPLpcwhV0@*5k z`TK1J$sgq?`4I-?r-}M?)*Vq1%jS^v`VDvdpiC7;Su)%})8ak9v<`FhO7!z;557Od z<gROtJk)CqfHyWax5?W3YlDhZMIi1cg= zp2M4~N{342psfZN@*ONn`bXYF1Y3(sh`!eQ41a^;VrbxmbjdG^!S{f;#OY#YxzMd> zwo=_kK|kGY$-uMR+JurNf$?oI?U6zk^>9RRfPYG?#se_kn2bL5dV#Qf9Ea1#t4=K$ z?SxeM68QXZ3jI18!K<_F_yWby2T@{@ygDfy_!1ge0Sl=#w1PmjgVA_cm5A5> za9Jly9kZPghqU?4<&nSm=Fjb5R*Zz^c+v1SI+*&E9?6iN=Sn@j+^HrWKb+ei`lU|8 z{)3vS?$$q}rhgpv5Z^d%boNMXs8t!xd!T)1DUw}K&arG}qH*QggYabZ%o*9izGkqx zZkd=qYFA(TYoH|yT|b)m+9D%oo3tXNEkrrm9%WuN!aVzLY4uCF&%3y@?`3$1L6G3eQoN# z6e)O>U{X5fGQ;!69v3(&o`$6U7J}*VRQJ5xm`EASdQGq#6+7~i*zp1os3X9Gg{Nny zEXWNHnm7{dM#P$G%vHDChZBwE!_s?&D+knJ*~yWD;6OzLrpC z+~98})WO^HlRq$-rN0Er-u8+>amU$Gh{$c!4e{Bo%DF#p`7L2ObU%R}UMPKh;=OD~ zc91*W=Fu8^ZVOT`y1rT^#>aNkG4o>jmh@Xbcp(?f6!=uq)-;w<`PsULY#Dv9kCjS- z9RW3uHHN%*e3x4xCY>&gmOtX5j$e1zQ~^=MX?e zQR2{j2vsv5M%Er>T!2V~A*W^+i38U}s;<8yYrU?7(XfIT7E9LBo|-90y}~zuUG*?~ zFU9YEx^OXTzcxyX+JK~84&>%68K129i*`~YvJv+!_dN^mieAKn3k!wM8$v$4(d_al}vV zX5bp-O&I9U@i$a6R^|um+a7P0U9LQ(M6&UGn*(4jm5*~8zt+=^P;bRGHedjOQ>t*b zf}it8I+J9OHA$N4K@|f=9h;?!ntlig_jbV#L3g8R*z7S;1LtUpQB!FvMfe17J4vhP zVK;W%2*z=cdD!T9v#?iU`*F$D76Y=X#Gv6p|1DLYQGNgpS@+&jRy8& zehb6P^;1CQY5gpL65N$d00219z#phHtYPiDbXC=<_Hd01Tmm}stI%~ow6Ve}5nq49 z9;5#nifyTMh-3-`my5R)#O-+z^hv6CYoZk_AXEH zh{Y5!%&+a=Wi2#Mw9~pF4OhQg5C~J{A9g`ZCQ2z1f3vRzO&(D{J8sn361>Rj$!dFI z%aWk-oo}uNj9*43P^sR_rj_Q+*uwSk8LC(~oLptJ`CJPdq%luGjdtVD3t==qyzD(8 z-v;Y|^Aih&HSC@kl(e0uygkaO)=}D|+6|6!tgF;CRhM+>7~&(7m1Q(RhZkitPqIBQ zP%{MlxDwzLJP06rPklSUsr7pDcFK)dAersP22bq+Cwzd$Q4)sCjxK%(RyVx3Z&DEOSxoKo3|6N${X9j3gulBjDIJWuG;}QAIs%jZg*1Y zAH1YH+$>Z^&5a9u>E5rrjXP{-(69rX+qtT)!b^EfLwCATWE-xJeY}JtiNJRuaCi3) za!1E&4P@{KiuCiFYJ)3l4d)LGfZ4!Yv9UFra1Z;X~jijXNSj`TYMs`nnT~7sxxK~%y_zAI1*?s(wkiI z?nI|v#M{NPyzvr+AOaiZgpJKfGTedFmW+aMgwY8kN3$G3&*&d~J2URkS$H4zf?M}= z1Rs)@zeY(4D?o$DY*9{Lj~ZF4TSFcuRelwI!2ang5bTjvzcBZiEDRCKER<{R zz{+1J*XbxvvjV1m=B6- zutvf3t2=f_2U#4%F0Eha5{{q;=7dgsNH>fj&(X&H$GcxsaXT8APFS7uI7JwZ{jv`R zOwvRjqj5lrW97WSyX}4%GMC=$5Vc2s7b3QwDK`(!sIC;s`D9oA`Zaj6iifzaO)vyl zcBD}qZVla4K$cEsv8T}V>Z3MqgI!B<)ez`j z!DCFauTJ+U@x>SLmzC!qOcB?MUoaqz17gyHq)L;2m3N4$MG#(A1G61fDzxl%;{w~d|u#K2e!C?dY<_lKS43HX)YLR z_ZGP$m#RA*+tBD)rk<#}&9!x8dUt?lt?FfMK$2rra)?olqj&US&m^v+Mu+Sk;7P24 zG?hj8(zWkmRV;lWAQ;x(g{N$Ts=5V!SNtm&*9g6J}O-SGq%5GyAtb6A>^&%ocdsXYfAtWgsYTUp<=dNVy(J-Jnyh* za^+vfx{rI+(kedN*A^N_h?-*9E(E$7YPS2idWH@oj96byoEkcs%7v>iiQH)UjE`#( zw#4@v{8o%Ma}?E`&0V3rCI{X*turqKblT;vxAeu=5*%1;S7UNf_;ZGi# z9_~tj=O4(kuS@)emm^%U5g(iLdlDKlamAtxU@B{%Q$MX|ad+8+u`MTS?~dy^Kui2< zgC=qA5*ziVu8&eu4(_|FJ84UBz4BWu%gXk|XPnF=Nh7dNFv<*S8Vr&nuTrgP#DrPP z73L9lb9=bAc$rJ-;T9)xWEAE{<0FU`+)_Q}M>-=sQU4KP!G+B#GM83da3}2Bm6E8U zEag=bzm0Erhh#2TVXr0#N2zUZ`5p9X5QwI&70m}(a5kcqC^i@$iKtHo6C?P5&a<1D zCk%17-#}FtutBa2jSdkYUMhRS_Z5jHd^3$g!&-IqBERVwQT@cVT;C0CnMkRA(?rG; z4K-k#CVe1vqz|ap8s#?Ywt1ps%;#Q@n>49<}b6qV|$)8=n43mtYkZl-5 zT9a5f3?*tM;%JgJvK4;$vmf>-IkVJV@l^$N^{eH{M6qT!Vqu&~FS4LiBwo5GWFcx1 ziU;KajHQ-eS8&{%(P)t&kG7umt)Raznb(1w;=sP7^)a5 zxw+8v2~{eg={P(Xf>%bLvu{8jy{q+*HOLf^w_*TNa?_Ma2I!S&8*xk2$jxFgRr%2= zP?Th23XTF0{eH<+%2k3%kOB>fNqMfLs`z_#Yb9+Gt_lR6zM-GwN3+ zkq)EiSoX0BmRssl1oS5t4u}^*-eD(f$0T!xt~>Z z2O4en0qdp=eg{!R0DHIWwP0iS zKR?mI1v*4c^lyIHL#Z;DhWlia1Jxp6V@|&g$$jaqi>l}s<=p-H;ysq0<0Mi3Dj9T# ze};!6s3zdCTNnZhsJa}8N?8cVO8!uO3%XWhBAHP50#59@zN!qS_(hy!=ISC0A2HzD zR+$ksE{&kQ3HCOKi}cGNL;akkwNgXkQ!m%M71;HU0||}rkmb0I=TrlfpfY6uTAWiF zVRsoTBCD=NNTm&5HitzV0>_M!vVmD&UxF>`BkIGeV?ETVn)S3u{*Y1SdykTNI4zad zGkvwsV~FG&C})!*6a;8MLOG@@B-2IOVx&TPXuh+30StwE_j&53d5nhH5Q|e*LM4%D zKAZNy1Y>=nM0_$C8Nr8UCr375i?bdngpKF4T3sl}pTF!GLM1*XdXE?DcVViMZzhBI z6WBn)dm!JAX2m%c=i=J+J^2@Fl5lY*feHa3Z$pa^Pf&tssuuw;=fK~U!-5R&+pkpx z&!#};uQ?9|-HMGd$v3BZ(znv2hZuyV&*(jn(aLcVcf{5Nm(Kx=QE$Q7U0d`7yW*NO zX?pdjkA^EyCOH-%N;LqhexzSW)Y%u5xaKEd%2*6yMGYESM8H7D_qIH>F(GxuqkxKN z{CzxMbj2k=nY1sF7^;#NX}EkqV|gEZ`fRi{P5^vhBbIw>^V1nXH0Yd)gUPa-lW5bNuzP+v!@AagXJcKiQ zm~ioHj;x}tosx^_Wv|+`Oxm(NETFcwO zbp|J6Q;)EudMYkuM6sWbLDQCByRc&5l2@~3f(~rMM}{Pvv}QK7cNiF1SCNuf>$c)f z4<(z}0$SP~7U~AjhHmnvlgdl*9;PV!0D>G4eD@oD1@9D$n29LL<$TDcvNiy|$>)c^p_O#-2| zcOP+l=v2~b@ZI#|;X?EZPl@$t6+$Smv^lT%ans50>l@+|&eW~*_=hvZ9=lskspMl% z*Y9Yg*$Hz`EY9m}j6j?(rV^7QZ|CwEA?OVF1g6C-C)|k(9#F+91ocm&umS{w1AJ|g zq*bO5sU9WNHeAK-WbJy{F`}4k;}bIn&kzc5By44)C{OpM$5Z0f+Le?)eNT+t5OflV zz%(5;TswG?B02Q{FgJ*f)$CMX_nG5nQBri(L?l>-mGsPFKZ6WOG;E_Mn17J5rZ>t} zmi4K!!!AJMoorXej*;BI%E2sXp+NYCXE^PSr7?4ytTc!XyuRw5IN+j);56G+#m5cO z*H4D*Xokn1#L4POfBk`hQ!?ku6CoeE>mz`NPh@W*9}LH9#oR35x;fYZq_(+llP43r zeQ_=FJSF8!km>PllKze}z%~qH?9o&2-Pb387VYH&SE(gER&;AY9PTtXZIj{G?8`6f z&Ci@l72mF#RSdGstV&zltSC8P#Mw1z4H=VVQU zX=9ev*hzs{a24lupcls1Rs@*iQj(l~wP5VI5QRtuUr0UoJyDLd>25&UV>lKY^cpMz z#&ffNuvRaDOyOuXH2QnO433Z!*3u!470iewQY9fZKvGlx9S(4=UFga!y}mag)3^t9hk zUi)>sppOn?>mlftx~-?suRxGtqQlnhv73P2IZ~HCJr3NrGfn-3Opb0?AFMAA^IwCf$=5tfr@)W@TGSB zw^cRnfzq7yY*Br~qm(0?l!C8=ZqjlKxO|1#Lz)xg33r}vXp{V+bp?Ef!f(g1wCR0g7+YytJh~_*XgrhuW91vFb8Rs?T{F)w%bTJSfn=u zRx8i+&W8irIcwudwbd!n#?Of%^suXZk{`;F$l{m!d5!jLh_D|F6w2Hz6@|YmPBr%) zpE6_IRD0U!PXam7RI|;p1MCiUABpwari*l%wu#l`M^qMR6&FBb z<%rv(DA}*`Z+6{YnVi&!`RQMk>Ik0GyI#AEG}vlWT%~ImwUki;)Zz{Ucou5on{l7> z-bLQx54*KDVp+2!W?tnkOL*Iqq}fd;sFcVmzRRd~6Vr0EKZ)WJB; z%7muovi6-i3WrxxJ>7d#Q3OqONQi%N@BMs?rv290f)caNN&bR8k`ab;4^SzhWcHXv z8@D=XwUA98(Ial&rrb=#DSU_-QQ_-T$+)UI6O>UOWQG>}SwhxZ<~3IT2&!;_ZA2#F ze@+y>!RxHD_{MDb-a6(e*nKdQ)~TGr#Y=)N!{`;yupuNaKOcnCXjn8t@exJa)|(IY z^3uGGPM(^vzvKn0$7Y(xY*$14J$!?~2+~sJVHu2dLyauUxeXSwI_^G|W5hH*XQc5& zaqk;0yUKT@A=oa{GAT2znR=Gq#$ii4F_PSg;0O>=xaD?hfeh_h?YV^|b3Z@2UmvW7 z;F(U|6bdnBd1_V2nGw%BLi1b!$>KdFEq0(TVV_!eGG|c{i|0AK_#-dAzW4%~t3EPoiALm^;ob6rG7c6bc8*F}FVpzKEr& z0_STw4-G6dv0y?G318B6lns}AD^c$$tp%j9PQ#X==Y&}<;usj`(EErF%nHNUfz-vl zEpBdmOuz#(;sRN{(qp?i{Rbuw0aElO&a6{4g?e{sS#vEozBu1DvBx>>{IaG8tH9-& z!mIO^9PhDV4Gp#ksp&Bf-162=Ik7g!r<69-?QbHj;p~~sW6s>*-U$xq`m3L<>D~0q zRV_VMF*!pOKL*tl3JYrZ-}U_x=imX@f?>GG(##Sx!69VnkSOQ&yp9R`_-knguX%p( zSegyRt=s4{v_HBvplXdaHfU4kJj!H#w*K=_6lbm3q6(PEmYkkl24>(rc|8cPpCn|;t! zL{88vKq0O2tvmqoR*`E9bq{msZs=P44&e9d_+Sei(-a62_Zw;A^|rRB>4x^6jy()# zbhQlzbuKaBPFCF*+gO&3e%4}Mu;>>O^#d{fy$3#Lfju@>E zjlwIQ8Qtqe;7P_s4HL5x*4`Zb8LZOR_hdS4FUM|rw3+icLf88SB_xL8d1JVX;(7hy zhP_LaS>v}E=}@`l2KVdbkq7_FwzcanmVTt+?^kF-5;cNt!*+E^@}mkk40#4Gmi-zQ zTU?jl;9o>pAkZ-|z9F1RS=d-Bj1o@qnH+uAt{lPV*?YM=A13%3^g<}%JKxcMg19K# z>pL_VP)NW1V9-Tl1$Q-^6&?4Z!|3xLDCJ~|S1i*O8gQTZO|KVIu_)>e3;#MA zRZnsGchsbiITn#3<7v2U4u1m;BWG_a1R*}seTGF043L;%Ij90f(zWG96pp$WqO)9jCE*mD> z!57_8E#W*ZR^=Uc&~4T0N50M@L((ZQPCk=({#2N{zN=qh>K`Bjo*~9G4QF-Dn2?$jZzk+ry@j115unG!xQ0t|%3cdiq;B^ycI*xg zf_qJX_-Tth?f4`x>NV6}SgI+V!M4z8K9d_YU>i>{ogGl>y|us5mUW_EQ!lusNC2(w zaU-Fk%#7%oMV*%m1uqdLkV1A!zf?vMlm^lH*5u<;m@5=hsJ33eOrM%`-j#lZfIw;} z(!PyGg*4(?xZQ=#&$G-UiIu9>%J{_})N&CnE*JOEW(Ve*>*OaG^31ja+#Yhq>gaCo zNLJ!uh1Aj8gc5NeaD!{Le56s0j=2cl55 z(kMBjyxCuqbIAV+^iu@&(nbWKWcPx@U;VC$dI&Lq+?K2D^Rdl7@YSJ%X?s1M_0FeY z2oS?!cM52N6qWHm3P!lgO8O$t7hc^yF7i368=*FfVH8B(SEstT_BfN&r=~X_w^HyigGpgwsK*T_}Lc*ceRqMWy^6P$f$bR+Bls^}Sr+ zg!ZaKjnb<54)?NH7f^fZ!K?pGrl&4ZiCvI1vWD2i=Uw+xQ@?0=|MODmglh@lb2~ zVr*?^U4=TQ<+q20ZI*D|8HZJ^EZ=hA8j6)+VFupn59DTU|171cJ4V2n@vSL$+-!to zP)})Jq8RSgYSF|F7E2{`RaptXq|A#`Q1SJ+&dWgf`OA8gvnbe(6J&HwGnzo*_|N~6 zoG$ofD-Ju1OnU)?zB81CGnR=SUw)H*%=FOdvR88&Dc((aMtZU8|33gYK*zs%>=P1x zy+(EM{#cl2t2hlN^#l6pHmwCAflSPVSS|hBy>Ms-Q-6l&Vaj z_-cePuyU|MG!_i#37oeQ+VbB}pvP9-)Gj#=`R=Qd^nUHkkdk@!9eA!M4rV+-$3O-4 zfFzR^MB+XFLPc$5q&tp0){roFBwz;3ibu>rir4L7&%yBLu{&x z{xrAq3+iyzb?VZhS!1J0dkEufvPr0Lpf1P~%WZ5{?8QhJ=y=<6vCRgs-Zzk$*SRHo zYb|9-MXZ7qE(O03J6euFG1$BEFsmujIAaoCx#cxrvD8bBDP^BXSlRYbNPa=*;4VFq zE~p`+wr*hZfJ}#;85ZNXF_?R(9yAZo`AS1c6qV&CG<>C&K~n7#AB*eQ0XsnUkQZ7+ z4_(Z(m=5LCCO^h95dM{Q0tzNI0U?TPkNbCG#gUj{s<6cj#=Io6wW_I2Hd-Bs zwYXWI2N27tbrU$@43f{$_LH0T@Vm*51jd>>ADtKTV6Gz68witX92G{SzX(tq2t z8nVfhAFEt)q=Y|nGYNASdZ4v8aCUv3K$Fd(g%VVZHfLNe)KD4+WQk*CKfXCsfZUR$@$DhD`Stu7pOrNgsfq~eV9;z@iQO;G~@Z|4_ zEMf}5*4JH6+!9O@uzK=U5nOZe#0-|G)ss@h5hif}D~AB!Q-shnq= zN{rf4xh}&59YY^fabr8^BiOnsR*1|XjvqO9nU)gU8fdX79V#9(buqoU6^g&7o+ma{-f-3lgrH+P9epRgI~ zLdwR#Z7Cu8sU*AvpMCGUrJp^{1oHJ!iV)7eU4+c$ffM}4NLm}d z<3a;l*ms59LO|`;WPODq0qhbxYbOEDA8_)-F_2&1?tYHh?HJTSI<;>|O8SH)qSB9h z61o&C;$F_t-V+-yy9+!CGyAWgh=VmpvJuwzxYLD@6#r=clZT*d9bh$fcRF~wLtr$~ zZ|)^f|GA=lSD4t;(%G`UJ%xtQ#oIVnz!Tqgvwhe!&q-{`Yr`c6h;1x4swh#->ZFrr z0Cw|-85)oHz%~O_l{nitUcnA8?)}lEi`wpG{ABPfl7w!?Fm{-6I4S~Q%Nu&#kr}v) zY$9`i%yDhNF+DlD(S2vx*rur6C9_*ZQX2H_HNJ7nrBjgm6mI~q@yc*AGoMb)JjC%R zaa;+6xvoG}fN<$wb0i~HuoaBFG^`yNG?q*glKA>CD8;ytK#VCK?*jY*B~BTvWte^Q0o}Iz$wUrVpmtBeQu>84|*q z*wFSuGheJj^R$t>9!oqh!Jw*32CS}YeK({{D$FEj260n5#eF_J<80ef4F$8;zGKV} ziJRHvm`fK9doKJHvehW zv~&B6EkK~TpBf8_V+$R*1fggwv|xcU509|_WgyZdax|>k>xtW4CH`UE65~X_dCtFo zQ&M-j)y(cQBhifmLu0+oy!V0nW+xgpt1(D?-dn){TYktW*jb2?<~UDH6pzAg3d2PY z_&3i}e{9LvRUW-nR1q)y)eh_@ z8<`uzpL|t-xYfJFIPCWpJUmjeaof4vp=b~2uoz?K$Z|Q)&Xds zUPOzmm8obf_PIPOJvt-u+|6yVM_A|L8{jXrohU08<%DP2bx44+DPHW_{eVT$)b*r? zi2b;+*UfX7dWN?myZNW(Fd5`eSKf{s zb@EUYhBcmrf(%XRkDnmCo029?ulBsKsh#cu9H~pbSeA%bw3F6p>OzlpNA?7qyee=y z(B##vPFt>d?wxYDl2W1cL;wD%!()y6c+j8Z`cLvF8y>KP!U1wsOd(LCi=?V0#@*Ov zkEA>&OoiID$z`U&U(uqkOGI2O*Jj?{5&%zagAzoFcsk8N`mXR&;274B&)#9}i!jxK znH#7l3KL}=dhZz`pePL~D*B)XNwy5UhE~Im@`Io=?`JO*A1afKuR!MNi+!Ym?kQ<^QQV82t z(T1ZH(aAyt8U4o#ug{mBB-)MvoGLTd|F+E?&sA9)0qooq;2WbMp!qo2@&T@7|78M| zr4kgb6`@Px+S_s?qqsi3t9h7Qqyp})3Y#qvJdw2ME?^4y>hc1cHl)A%wahZg0g6nz zN5+k<{owvz@o$Ac7%+b-MI5kL$kpr`#UgELlIo7ZokJ@^EN7qRL}M|KcHqOO)(;lQ zXa{}uvyTsis=wwG&ink8vx$MHWYze5c;e_(reY;9I>j=UkTl3fQT!JVS7@2mQ&h9& zQX#C}s|eEiZ*|CfF{up^(jA~z+94b8Q2!hdt_MqF{6c2ya9wvoVx`6TFZ>V?Oao^y z?YvB8>bifK0n^DgmyHA&J$x*knTulvN?_(#4+fWAAIIto6Sf3*auTGquzoOUo@vWj zXYoeuOy4eQwHSN@ls(2hK0*V5rtS6F*@FYxp>R->g1`qO!$HW>!G^CvO7?gf73i$! zU_V+OAlD%=>PB1Ry`QFU>AYr;fF*(s&I)OUW=<7me^mJOor_nv71lAmfdlPBkkn*q ztiG99nWuVPv8d+Q%`Z0OrRL5bJsp3i~!oAH}et1JY4KPSDepjty=X3xwS!{15x zh29EoADYQwny7zOd73&Vt?cQ#iASmH+vh)YMCm1}v6SNP@$RR()yx@3wa!$1#Vffs zgbC};L&wIQy$>6*JaL0r9P!lDT`Wc|1;yX#for#$NOrZ%(=fZPE3X6#;cRS5g+D!(^_&v$H zB-E1v1%_^UDGr*D_pW%m<4k8XPO=oAEY}XVo-MnRPn?l{2vOC#MO-iM(6vDa1lpxx z)~RvG!^tZb#?-h{d)1oDf+gJH9KMs$<2V;p0ROcH4EiT(!lO#*O-5lRnz#6WEctC@ zgS9EzaRM^Sqk>}yJ>=5Z+h(QIZY(MoCoC@VDrjEWrV_w@;M~7 zMyqn#0yazn9)BUlPMEYu3=syIYK%Dzc=3W}&QJ+xDGei@naK>lJH~~|MjHs_tL=^K z-}SI66&&Gf0!fXm{xc#N3+x`b&B2Uh`6STm;WZx8A0PDv!}JHB?|%9*akfghc3?{z zP;e^uRwRHQPaGYF<HZ=Nadsbw4ot$`87=G&h5eG<`<0Zn3&-Zd21uyn-Mp3C z-J1(ZM-)f?KD#nwT4*)`eyW+h!2iVoOwz`NfP zS9WQfDsfD66sN*F-sJoLR3r~p(!@@0@0|F-5G9KsEMNEw4qePZ^IS`AI2ceKp2n6H z7?2z}zs)0pZr5C1(C0th;L3H5l!X5JcgL#AO+`>Sb)#U{W?uPzj)Wp}qr;|<#V)j@ z6Lvy1ppPgR^e))RZi^sj-SYbP+J!k&W=cQgoY8Kj8sBg!m6uf5YjtOj9RMIFS~rp5 zQMM>Pp}>+UIS9#uM^hC#PRY{Z$jBTEPObA75vdj2siH*$Yv1)O3xfVDM*lv-m@y$f zKB>{a7bA=^DtBdy*7jl+-t86aX=)YYM1TP>C^90F-1Syth?(}3RWugq*O;e=t%Z@~ zb_TQ{bLwA14fwOVmb58-g=P(Dc5ybXaPd_Ln+5~yj7C^naK7C}q{%os{{@*cl}!t! z25CSO=9L%O?Y(0w2Gr49$Gv>!I1=w*O4*ZlSTCPW2f9)i4^BhqzoqavtL>uVUj6yN58VuBXpPpP*&~+_I%IAw zk!NF1LHyCN=`In4=7&r3L34Sfox<1;z<%gt`6Q69Ad9=;-do2rgPgf{Zhk8b{JT@< z4X&yR6K~MK>cF6{Nrt$H*CLLBx-&dUHh1eFhdvUO2_DZV(K_b8#ah1)pND*`WEiuN z6z03gU4nSwIW52t)RGkz$HHXy!;-=w+Y%2AO0Vmgjvl_)zVio)dVT~(P>}iigbXBR z%9)MgYUGBKQ=7}9z-UM4LcuuW78oSM((uTp`{NO~oPwo|3LIJ`*R4HFV8lEr%6))X zx6bquUpT>Ke49~8;i7QuD6&kM*bz)<65``h-Xo&hz$3n-UQUo2s0o+Yr9ph@m;-Sc z=jjbl{eL579Gi@Km3wOce-6)$H)9Vgetn!^w7fQENa|eb;)MmDr4nG`o`xGyl$O2q zRmQxXc)eK6BEs^Bg&=?0!?WC7I2P#~fc<>3x{||i5kZn-pPz;%|%_Nd@3F@a27UJhtQlOx1Xep_-?xDcw?Y3YgCvyMcLW_E^^*A>Ht9~PF1RfK| zJ2!e1g0OoVExfGfjDs)s*f?5}c7N+!F=*#}{oZRUu@x}gRTgh5S?OU7iTB;YwL1%Lkc2% zyVW34i$mHysqq~y1s{_hB^>0zJdeLJa*-cTj8iO#z_HjKmnJvE6f3o8w$@u3GKofu z(5Mv`q^5*&JzVb?%9wQHdC0%yz{Q<_QSZF*jw>Y0!WN4MinzE<%hl z*uS#w6Q>M{g}jK@#v)*`1e~B0CNa}f4tLCRw(Zh*BPd<~PngUJy0^1CBqSaC5c2z@arbP~-q z_3-YWLMY?-lzCU>FDcYuuI#pq|LV&6J?FIi4~8hcIl`hW|Gd9fE@p;Wm~my>> zAozp7o^jViz*qk_shHaIhlI^HUMi|~^TbPQ)UIA)P)M?%oNqaEA*{F|$^LF_ObU)Z z!f`GM+zA=_^t1RWd$j9u@bHLC3tl###l;TlA=}r>GNRa^yq{&RNS|MdSGk4AS*KeO z=GS!Dd;w>hPG(@~;?YnUg%FRTN3E}g6{Z1@^XOr0W>-xk3T*ElG6Bql?V1tnyb&F# zM$hX2-a>&$qD+gi;#tIWnGo^^|ny;F|ji_S>sE?fyqa4XXn*-PT5eJEXYr`AS&JQ`E~_dZ-cfqGz!>L!5v)R)e`R-qBr$s&EL_%lN@))t0T6`9 zo^dTI8olQ+f~M~j_VN{riryAUqJQ@XU6F#GBKdobY;uIc0eMOlNYa#f|Gm`>bK=f- zhW3uRCyeN0rS$X5{`ol-(yE(5U+jJwvv0dHi}Ai$7Bs=Xp8KT*d3IYVQNhNlwM{&i z;`OUQDTX#sZ->tFM1)$q6d(qG8RMe6UjTZNVFBZQv!;a z`%=~4W6|(PBgMV0)D7@S64|(BQfl4QE1B+5%zrF|8nC9cf;$mw-w+jzqC^X>RKMAt zdj=afendHxw7wl9F1sL?r#g`HQFwxkMB7recw{I7QgvSZ2r7hKg2D2q|Fs~MA6X{o zK0vLM9&%H)&`2-|`q-kaq~rB**47fgT}*OGeCON}4sHt-p4SF;*HpDj zs`-?sN0xur$D@uXm7V6sheJ`xe9nHU1N2;&$*)*!J+Z{=Xm&2>O26k~_-ELpQqR$Y zMum2zmTFX}mUE{mLqLAB0Sdd$t%Llr>KQ->IV+eExbhYqC-Nuo?R`Zn*f-e{46ztp zwI6)`Bu)){zT>0A?-L#!H4mIhRo` zP>wDi^?9jEct{>V&S(FD@;spMbMgEWvsT=4_CISk*N_G@?Rxb=e%sf^3VDX9vjyAd zLl@cmV(9kdE6O%KeuW3)Wa{>Wd1=OUw}BCqg`wrlE$^48?XB+OA|9!5u#PPD>dsLT zlbYsJjZb5-!2zv8q=gOYjoWonamq3l1RTZx7}jvGv)ZsUmc9bC<$Ojwb>7_uBU0C<<+cLV{&e zKJsyQ@zA|We#>kQPin@Aib$(UMoX1cx^3mRnqaNB07thw%6mp? zn7HiscVVzNer=6P#L9L__Nrjwr+#tH{zbeakO8v2L*7k z@~#6SjWjQ;+xG$n9Q#y#y;|UJW!=m>sD0l?i}_=R53# zR1x9lB_8^*#cYF-pNw8b`HT4kQ8;X3?gFLxnl(UK!z|fSUj2p?;hyUUf7=EKrm$=7 zi-#EdLMG6JRDH#7cr$!rF@5onI^*4@wf*|vE-}6omWT;4T++5vILS(8h7*~EhPF5; z{G_|cl`N{`z_q_#9)YZ)`Yl~xwHJX+0Iw2rFE$z|<}2QFs-BC+>VDuF=g2{yhM6;q z{iH$y0niD(EB|ZXPrY%0=+if$D}dWP_I!92a&6%VwA_i&2;%pZ`fIymrrUzSwW zg8V#P5x~VpdQmiCQH)L@^TRWr>cLrPEJIEm=bt0PNccUoQR=3*g)D-NZ4i~4wJkGK zB&T|bwnzY6XUNiyP2$?^yBOIH_AjaC$C!Tu+(9jwGKCh*swp$3IqXY%)eP-6)ps%7 z-$p5TqhDuut86Z>iH(wX@Q%Y1l)3eboqnxxNu%%;UpCfV^A|4W+!KJlm$<`Ta2*Qk zcrazaB*%!Md^M)IL2}u+*6f)mvl>#;C>fa03TdsZZG7lrP2T6Hzx?;>uIq=z zf8TM9#%o@7G#tHJQ%7#PT$2Rv=YHn^C~ul1;;XwSKHlahFL1$c-PI_`-yW(Wu$~cX z@tRTgOp|mU%14SiPy|haoB5ozeJBr{saj1GvzlkTvgXU1ou7td#rd#$O2MCW1|&K6 zn#2kX)}}o@R21>y82jg}AcmSK4Um$TA|SLxs_JT8mV(jgNpi5qk+P*qc|jZ|nST~) zprk(LhgRAro!Pa=KWv%JTBwi>B1BPUl`4MjmD}$e*w>~s#<2chdXm9Rvmyzw=%WG? zbg4@WNjH>3RGbZc``TZ!{fs_27b-I&J=kb1cVx6+)`G}G=6{73Gajajh6&^a4ZJrIQQyGX?RbAovlQT`tfraCT@L)ni9&uhB zsLT?Z{aq^yBRrT14-TichC$CS!v+iP!;`2gPun!_kOS5xbA1>NHCb1DanO{fIY|#s z%r5?ja2_GJ?m;C22B@19>KYj%jX3=^U=y3M{Oi%2)a!_LTpmR(_noYQL!82Yv9oJ; zRuG*->@lP;oi(6Tl+AfHNtpmJbzGbh@XadVn-3Q2MI?Ij=p(Fnty?(j`+CH{oM@1R zuuN$5@HLF9i7G5I+rRAs|7{+WB2GhbI=7Gdem?;QEa zO1?X_*P~m>A5|#>4FXu%=`MySspB?8>E}EGweEzw-ahuD_KbFGSiVV*YCbuyoUI<| z3PVXMPhRJyfzUUa5U^Bp5n4Q9vDB5gOQSUBFOSw}!Ufbv)e0T_3n#i%tsrPkJ_W>? z{xo!!N4TCRd>BQLy$s5)S5k9$pBXLB!1bzHL>4YQa-hI=6Ma+Oaxez>p`2ydr^CCf zf7B#ux%%pKxS~|Nv5~IKm@eeSZVYIczVgk>+SDw139w?D-0^e3A5x6`p6vYYZ zdasW#D6`Uw(z%Ep<-hw`HN?dPmlC*y{-&b})shH-27gmO6*h7X-X;zZnrOS%U`}FI z+iiFV%W^p}G3~e>TQPcI6TpUrr&T42Ojv5W9(4Vr$K{O8%5`S(FpFN^Jo(f0>5EZ& zjsYl@@9Ua*(DGSk1lyJS^-jI8xr&R0lfY4Col!EGG~C4c29Fi)E^aI?WQSI~gl#LZ zKR(1%jsL4|%F#r3Cd)1A4hgh>!9IDce07w_AkIFqyc1%3XSRsdbqWXtb>_Wa;umL1 zTo9RBf(ab1A@6giV3kO@BgL)vvz;aIfD*Pf9l(^v{5hfY~Atgk@S|!B6=tV zaQ$fs5Nmhc^{QAHf(Bma9sE0l8oRt^+5x8QwQ{|)y9Qpy!p0sMCv{x$UeOkzn6K#J zQ;LtcHOsH8Wd8cRS!1xms_>d|;^q-}e_4_=9kkP=@K{<5WDXzeKe9RFJQvFy*e~AL2Y0d< zdLhn^S3^QEV7&pIj7!%I_a;P55RLacXqI^l=rkcDcrn3ovYRv!XRnT0i{g`+Eu&2@ zYQ~I?U<3V@kYG88ZmPIbipQ$Y8I}N&(uPpojs&gvl*1HYLJ=fW*q4+o!#W?_OT3%s zDjOu==o6D;ob-Wy0r8qQ+xI21MA)*>-mCTKT@!!3pBR)rOnH zJlgP2b9bvX1Za^v#zTeG>^d|I&>}LD0o2r=+EFKO2O3<^7&X zrg@R!q8OFq3@U^bq=wQPq}o5_qVyTLU?NyY#dT{#^Axsw4wC$Fb0m&4N+0~uyq%fj zD#E%Pq{rO83S~-sf+wh_^d_)OUuGwbXkD|%7KfXD zALL(nJ3(8jOnn41iDS1TjxjvDGP&41q@sRl#zz0N#5U;pK>9s#% ziCN(OM7B8S?}!sNRO+b8&IZ3DRYJT~0U40}2MdeBZg2(68{~5L033e8%=o6+XWHK| zyVSUgK<;N5GM#|%zTX_rAB=0)QHaTUl819|qYxM2Das*DR>U^W$vx33I>WFa1361U zw7+TaiD)RKDubQ2#sRI}vUVzP$jE&^uiXnx%o1n|0`eI4qpChbDBKsCTi9MMyt*yA z4r);y{!nqTjXN)j_}aGEOj>jif@Z(udu_h^Scntz{NFKl_Q{CmJpwMFKv=Oq8ruYf zT8`!08tv{=692&qs*zzK&3wyi2q<>1in7=-K{U|RzXj<_iaV%~O464jXTy9n!4`fz zq1#QT#oCe< zqv(M|%9b)HhAVb;$a{ljnA8wZ}|-HKIVV5H)nT=&U1QaH7Bl7T9A1rcXcE3S%o8i zdB5LZpZyy>BFe;mJ9v&T1*=GDf;C{XWJ}cmxgsLQXr0~4O^1Xc5s?4XK@lf<6-7xY z3Fxdbezyf^d3*)*+RR%5-P`}iF6>FZ%zhBZ4C|z5EpKJFBo;?5WIV z&w(u{`+#l4fot|f+i({y;sYz{qvhxoxXCX4i(2gGKMTgx>ye ztpf@X`~m1_1f=!-JHirY@Yb0(lGp)>E{1RG(eUWHb4dVwg(~4`NZV28+e|~0L{fM- zh11x;sa8oB@Qm~!8972)WriR7;}ck7HkOE5YBJTJS;(~m_Krf<%K8&e$X zuaD+l>Wft>7%G-{a2INqTTRqwRxWn`<;S{SfzFQx|X^Grt%4b?s4 zg>D(Nz@45gTiDQ%??2uv%nLR{L~ER?v*V;hGENu-!rRhMz(~Xc^8G*{=^A+A6+gAltbb6>{)#-}#WZOieA~f-|I>7e|c=r=e7pys;TS-iG=Zpikf zVAb}7vZcMhh4X(K`rIsGBx?6@d!|Z48g{#=yj7$OsW=54=-z92ixMASO^Jd*k6`s$ zJ9uBBkSAa7;|!NHw>N)wSF2p1y6w*PrXVQ-Zt?v*7Aou!fSZU5Hbo3s?> z1gS0Z#xqdk6~K(KN$lq@K4a^ei{D|;J`((Q8`Q`5^vd{Wse@a(C(8@J-?}V5=pYU< z?<~)sLsE&Z9fNbL1UUjR<=^I_BQD06Yk&~N8a}HooNNPMh%8Or$8mPG(}#o}fNQ8s z3yaV3RGKm#Ta30skKJ*P3U=c8d@@uirq%3j-+|*z*( zsqu-1-42Zz{9Dr<#~`W|5RR-tLoGa80R*1AgENk2lki=kHqxLDf4xM>36?Z;q_-of z5*G6R&_p)|(ukrFF-u$3Y~+AsKI@SSn*FfX?|fi!u*fz+PfcUXsj6>Z3-d@(A`-Sb z#w?NBeFr5+#P%c9X!=*p>ugyHAzz1~&i9CUdN9H9bA7u78h=EyL`AJnWkJ^^{wKJ^ zC`3R{uGc}_o<6Vma9x8qQUmi2V4?S|Q#*J1iYdZfPVxW8jQyQ`KExDONgVIGyKx!; zNN!xI1)drg|B5uO)VsdMcBJwQ5dt(kV9G#g5bh$$mk@eplMo@jjL0qbxOYEj9Fr5} zOm$ehJbPIsQ|tGaT{u$p;`6|b9}DOe-791WfpsHMy8Yo3EJaSEOg+O+# zXD6}iH`teNTX&1Pf8c|3oQs~+z@&Hg^(KerVyVq&8i}bv`9Z5O`5m9}hUr4NlS&*haF_ex;Q-1LOM{j$#G z$Gu##?gj<$X_i4of5itcD?*QLDJR($)15T5{AIH%56+2yeST*@^Nx@+H97BHi9H&i z20Atj?hA#{Wp0YZ{4NQpcGlNt)mzr-rn~T9X;=KL_c?-E zc2q#H`23=Ml5(ahezkAG)ok;&5e3NJR`EiCRR4wHz%5jqb^tbktPUyRM4A|xyA^FD zhjqFQU3xt&0h5M6)pyOkV~20X3kXfyZ@@#5dv(!V@olOA6^SV?r^34>>8R}AiFbwSO*_0MZt~WX=(v1D5)D~&ZqlYpP;74yJG#2;tlaU@UY@JLEtrv6cA92wN}eb7B`9g8++pB0gTD@N_t z$wwenizZ=DhuNrvV5f(+#WR+Nu<|#ujC0EK(DnmSu>mEG#&8b?*NP_{X;yE}VgIGwj?n~L|TJ~X_S1#0U5 zVFH=74tS1YhvgrO;Uh>o#E;?wZzO>FtYAH`00IDV*6_KdD|omqRcJY$ACU}flsbPq zOVrha1TS)>`NQaP&b8RgA&XwmiH`4w%YD^Jj5WL) zBg@)YDXv|J(pNY8vpIoDxz7PRgtrfAvE9s=o((KGH^`?EE?BU00X7tTnZ)7dNW;=5 z6&pZni=w?jq4gURR$*`K5!1U7|6`jGk4D$cmf>O5@s*UwgXQ96)t zMaNpPy|{we=e~mP&lfBccKlpx=NHAwh;yh&d-dOUXOY~;7y4bG7Y z&t^6q9H+Yi#vNqdGth>Ep&D>xH2*suGx?%v(dGN(IZO^sR>Rz_bxg?xT-`+_TNiYG z^*G!3vPIb%gC{mWTYB|oA$a|lH74n*8x6ZN7`V+!rYmm!t8R+y%Z=y89?A5^#Ta4N zp9Z^;m#ir9#hjgm$5qQ8fpFlFjR0A zaMW8RCvR$-MURMP%arrW^52@I54JA$s*R>_j|6Q32g`4UA1>|0Sm34CB}>8_%kpf9 zhjs5cI!D{4=YsC1#*`~-QtQS}!bKPEVcI^r$VWHuOLYn+2zY_BY_>@Wp*Z$O`yfE3q7q zv51AhCu*+=uwVG?PomrP0fV>u`}kF9sumtd z=IeQ$xGh_BQBLcDDeZ2XK%fzn72&AN~?fW_o4*I}&|uy+73D6 z72!s0A!^ozuau0NjGWdA>WWW-f)jyN9I<|t)iS!OT;wvQx|Cj{ootevhl$nkd&k;3 zME(+GW_EpU1EMgcUZ%~%7L)pSKk~fWw!(!jStfCi-#VJl>FFI5*)X6OOw*77(c?s% z^ulH{m*jy2A-XwE``Rfh)w9yoPI+9=V-#-|D}KtpesbP*S@#qOqck{kX0VlYJb87a z^*<`sPpTj-t*U8(l8#us8xJlh11Fga^Cn-h)oJ%~dwM@Xt7C_GGXt5)(anEKRT0la zft^`~9ALJ&0Qp!?=$~osSHX+8m3K7iV2O{0t-37dc( zYw{+pxM;GUb@L%Xu%idd27(5uz*NeOQ?1pf0JdS@Nu5N``L>)D0vt}2+OmoAHHb0j zc}7SMvDiB*wb^_-jVPFLZu=56UnG+|0~?}9lPI7Dih4|j+c4kvPAAA?YJa2U%2Cr6 z0Nd`%%!l~1ImJ-wo~JA`i3#nZ!_8m|SVU2!`P3(V3ZYksMM}{@KPN8InZr1&PKDLD zvFlJ;l%QA#$Y*AC^~kiOZg8Flt%A36;U+56aYegk)9JRN=fFrO!cPEfc&Fm5Mi;a- zJK6Os+MN8_)mrj}!Xh&+4xB})Ycl|+7`#8WGD;3@Nw23%d^droCA{X1ADm0OUzUzNEaY37k~2@l24Afc`yhF+#2kWX3d#O#96`!@iZn#1uYNwWz`iU z7*=767E!5EG0AfXud`a@A~(hr)7ha`SeUUcvx@t+>7jzm8L#ZJxf-;VPz&B-&eJ*Y zJxN=%TpW{se`312p>-|ucE5_EhH{y*{f?~(gIlz&HJhuy$z6|5^QBt?z&IGU3~C>h zP}+7RWMDbLc(r$q_{>aL?Xfq}6XrKVGV^hT(OZ5Ay}Y*xH3muG zO-WClMw5MBP&+Dpr{4+t2I%7k+)xfSkB&53;t1dh;Yl*ddqI8uAIa#Hhd0wdLA#2l zmLU@q`#24+7PjgB4sFCTip<4t_pQwTTST&=$D93G$d+xKG!VE}W}fcZJJ2>0Wrgj_ za{W%NS&^*SloDA&TXVgYAy~ zX^4)+>G%d53nK!(EaEpIF6W{GtG{=7OM9qu}D?WUilKRHp(URFQt4}4S`Q9TP-*XXsTOoTmnOIf8*<@^SU%>WH$*>^^8kv|gW~m^Iy03CuEu-KTQ&I%-YlkMctTC`3 zNy=(IpLB-KhJSWtcJ#}?n-cK^m_`@et9cc3m!P>J@&=wew5$7lm;5n?D{?&su%w0u zG7ZW#A374-rPKZJFS|MxCEff+q5|T~>Do=@~(UpS-J|v}nH_VDs zdez#Da4-9QCx|LencJr!CHX`fq;h|zsxBJL%(48 z<7J|Y2S+F{qRcpc@Y?BW^x!G_qQ(xg7PBE@dPm}DX0ut)sMe42k<@#-FGYSL4`H$X z-ClYepuR96{()O-P?H2$l5IAZ(AzO^FvcD3DsuxYNN}Xf6#EC)Ec57*6biW@wGcrP ze1ygQZZeJ(>0`4AXKQtu1##4*GVA7AD#k$bgFnp&=*&_^PUHw8lN@5YO*ukmY_!Xi zuz#_qD7o5FQlq6rmlA{+?oEhX;Ps0v#XiwPG?0;Mh2MTPuow>mh~(|;eb2TfxJ^=7 zjS*Y9@ytHkhUAQG`_!Dw`K#BR;wKw>MB`!v+T3VSGTl((5hmoLTk&Q8WbP1(GDe2R zinq0?9+IFiX0|T!{}O-D4(MOEHu=)UrAmx@ZUa;!KJoqT*^mk_LL6#sbgZp@oznHV zy5(i|#6}4z!)Viq2H{g8+U3Z4>Ztazn&{^X_^P(c$*rS;-1P?8e_ua)Yd^?!6!I82 zD`s>yk>d}AjWbC;H<*9!5fYah!zgMy7rf%!@YJMls;no1oC>?lHZ_KZCwXIUOw9^> zCr5!Cu`E{ z)vy^bj&|l6)iAImHHUXKNQyI;5Vp3{)C7G*(=5r_HVN3VqT)h=PoOPX*)AhtI@Wa$ zw_Kjt?}4AM-Cp~XjW32U5JlL8yr7S{N`-nKZ!jVF7qz5j(m%rn!72~1*M2s`g#@PcJj%( z0GwCHtPWH1ej(F~?b?0Q8i_@&%vC0*uIEJjqk+=Ec?ns-knp8g!_gL~&LtIDJ&+0&$7=^i@fiM=aR@;47-9XTIhLzfu>qRoBgLuvCz>p}hA8IIfCLpg~ggpw`6 z`L7NEej0)03<8P2`M1UaltYBCwZ7mXO!^#iu$k#8TE~jliH+(ukl)ZffmuY>fxkeMefVx9 zQ2eA<=@RW~Vu33}{%bewRowx6M5lR4AscsUioBtkW>7yPmj@c6*^Yc1-ZyB*|7b@e zA0aU=nFnrYQJmEO?G5*PE}WXAieM3mk4Yi_F7fo|%`O9%$4cA)i2Q&XnALa(SRKNI;c_ku}m#&|kBHC0g{Dvb`P^WtXsILtc-n0`5QT7eQaiyrT_fP;%)rxuY0A$^YIxLNazBwg*>SzEAJ~zxz3bLa=5mR(+eKr|9V9Rd z0=K5PABYiwVJg4-;#tddo7lm=b8k&FEweGBs6g2$dO!*6B+m<*Klu-7-s65=3*D+r zyLzK>bt2OY(HNuuaj6M_ks&h4S-JJSeu3opg!H2Tj|+6LW38LVt_#%Y9^v9S?wPZw z6VY$**l?nfJs_*hIIowouvD975jlGpZOax=E?hzes%LaA5am*I&cjynVtyaCeLq_j z8DEitNR`8=MBJFD?1#bAco&k-X#m6W5tYN>trj<;jpE6C7ISF){G%N6KwLsh({vc> zuNiu%4zsgiw3Tunm0h)s!O#%mU5nJlHF1}Z^fc;anub+kRj)WQF8rtZ?20i0QYCD0 zgUf4xn7gVt9nAj(b@F@g`EO91c$YC8493hGCcKf*=^W8OGy_z6mw_{+v9$3*;U;%FH z`KyGUNB*H21irXbo;~oxTcfAqIB|Fte!$=`10?*^;qYJd3IeV+zQ^r&mHP=7y2mMt z!vZ9yd;kO^sb#9?U8AHT%RyjfbuGE!RnU^2X1F6{FTP}rpKXv#JQhJ^^Agmw%(S({$dtd@sq+I^#YRGgUU$n?UX7a` z3VDJZqfWSeUk;A{jLuDJ3H2biGi%uc4^9pqC5`Jqo)W9Hq&61lf!CKyCwb|o`pIjG z#_@cu6BsNZ4FCVk;-x@BnBa2+SWzzWpySf^j zOF!V6yX{d%Y5NQQ!*BgpW9?fkUX#DYezSow$)~`g^h*rbKuW`y9fwKIDPnh-f+!DW z$*WsqJ80DLcJ!n`#`<>^lJrYPBOv;#Ol0+6lYnx2_Pt=SrUErdS%)eX-U^ulQ9ZWk z&|IBnCYz6^L&dzw`rKsg^wcwHsvxgVSxzz&DZ;T_?r8yAitKE&u;fN(!&UMn?7^h- zbdJyKKk6N3znG&6gIWfM>7V$sB?mK4>lA-8EkquKpb@unI|i7U^KYj?zfm4p1vMI|Y6GQLWB?%@=#<*WZn<@@y#p`lPigfS z#Os~Q@chAfE7}yv>r6+LTwg5UKW~Y-LWN~Ktcjl-(1jZNfW`N-9!m}VbN)X4zmDKg zbuIr1>da`is0bZA2r6v2;z1Sl+D|VJi02|#M_;Y$3i*GU4SKlcl>S_$Km%~uoSTdD z=*lD~i*#20Hly7--~gJm>b){UT2&~ra{>1vK}hi~#zPD%eKR11T0jvfNjO;xUUUe+ zs?$&EcuTdK0!$J_A*ZUnKI_TXphnp>SYLpPs_!8{YP!@YKy5I>EU`n>LnV)9F=zZjY@e74cc{+yLwrd>{)#;n36ala= zwoFG9jpJ}vhRrMIr9+^BBO2!gMdd(fyo@eq4;D}{{`EBEd`(Dqzj>U360h21f_|cn zy_hQ?&+4(>Ri9vJhcZ1!!9h(hk6O}OAXwGx$JOK8IfBlCBQ&HFx2Rf*K|cxTNE;9b zIL?du-{5mYE)q1*I0<5~7*HHUOj$30Q0olsMn3WMbUbS3E@dwf5y%qXBB`tZ;+jQV zvFthhI1@7>YHGMrmJJ3G`WwX8?=063qOe=S`zAVuOm8po-C)DRz@?h^!@r3qkRuXh z#Sb0&{^tb}buQ81BwH*NYbs9^A5aw$Y>El!TsmQ1NbR;!sIM<2o%~T8q<#Pdz#`=3 z&7zAA`E;dkRl-TB{t>3l{}vZud>D0oQ>}*;93%mn9aR5Z$Q12yT*h6Dk=#+b9<*(-$Kp^+7TY20aa&B5cM8Eko z+{RZuuO(A1U*%9TrET0d7VY@4 z0Zu{W{ORz>kg}Hd&U;e7{y3L0_^?^p5*U8+$!^=r#N~h@L?N}hO3ll~)mM+1M0B{H z|Ey4N6&x zgr{jqyL`upxl5hh@wFiro~CEx$f2;GnA>pXgseU-zpHV^~!HQVAKp7@<^hS~Y$ zb))ZIx#yEI63E|BD01;&UPA**cJVhFKH!>P59HhaH?zjkeD#}-M=mZ|? zTc3ka!!Mb0mzs->QbKuSOC2bkBWIdoV*uMdrc~~I>^-ul2MRutav1!mGBXc^5N}Z2rEWJ(SQD{&Zhkw@IYRus*g+$&X|MkEjr>*qHYW7z8>A;(_Ze| zcPtTVU()) zHQrp7?%wj)=CU{@$cpbtB0o(3T?2lz1-SoKpWOB=;4 z1#|jH&mc}$aQiu4#74%-(O$Z!W-T1GCsd{N$i7Pc%t4StXbje1lP#l-&?G=|o+oIM zs->o>%h)SewA=lsR?kqHVJIg_);Yuo^#MG4%|*yl;S`vbGrw zC2aT~%vP)u6BNCZtaonJwzNv<7!|I`26A|6L`W=G!Aak;J62wgtKvXo$m-yD96sz! zJVr3LEk+8>fus(pLvMslpVu$}ENvwAGJmGBv-1cPx6*jOLi#nfz)z8A$9yJ6P*ohA) zn1`@qnCYJm!!!oqlbqLizgR1`CD$)Jq28wgY`<=THk(Iemo1&JD zgqga|hRA|s;O8{*y3t2FUH5T7fJynKu!+jfp)RQ*hr?tNXyhw=iqj_q#qfShr&DW1 zCb$|_`oWE7Yle(Fhxves7k|P?%}1=SCM)+A9mCzov^4;Em;aMGIAaf@4!r%t)S#^6 zR<`6CNcn8>S~R8E>A2g2-V`3!W24+ki!q$C2>xQTBXjaGh@L>zUv}M-bypy|wqKoU z-rL!f^JO|1@Pj(*N8u7I%(+C&!1j@u`Q&?KYg`_oisaMJ-n0$AxIrjlm3pz>6#xC6 zS*~oVyF=h6N=NANhNz!kp<4F9^TKj^{R{)eXngQqcoC)bixVlqD;)X(?ME}zXo`Un zlA+rM-_9?vD#|Qbf|T$9A@h3NbZQH9@H%5u3*Gc-E6ww=Po2O;m2`gn{0p9Vb;E(9 zq-`7%BsfBHZzYvXrw$U|XMkXpe_|%Yy;m{?-d<)ll2O3&H_Dos+r(HON$xDHYl#iI zAJUmN8Gf6|*IOk9MkjupiS81wMWUqksI`d#V&YkZJO3zl_Q>DLd)EWA-~fjt>Mxav z=Q$ca8PKaK4W4S z%`T19Ry|5lVI*3+zK?^HQ^8_o6uER`D6um`;LiG~K2wyghQ0)oyEjJ`#{(f<(jvOM4-Ibmvn-$nX!NYeGFASSSX0Jf3y5 z7rM_9Bn)~I>V5L2{I7H!4x7j-3{~~(B^5EE_X86dQ)(k?`x4BOoYDEjkvJp?s($J} z$yJ~TD;HjxGndpt#fd#4qC`rok5w#pFwcDTh(G@8z2XGo;Dc{zeU1dHtNv5b77P+P z??dVui#TSHJ*+T5Lk7#tK_CBi{=Nys^;cwM+qo0pEMa%;X(xF+&o^1*Vf5St@txAO zYeJf`@%wU<;eU&R?F=PLyg8%dF@sy!BhdWjc1|ozJ;Ajoz8VSYvG5u?kr~)6_-f5gDuoU-B1tkS77a=JiDe842~;9|4OUZ11^$0 zH>IyXh}94z|G)RPK_4-h$;$9&hqI2&JdlSOB^!f4bG4>Dxh8l*N%C zzmbNx6%y2b3G%U~1~S>K^w=rQ_4SxuR`Jc&0^^|Ne)od=bhOP*{NCcKn_oq{^F|Q; zSCw+1`g~d&ZdoMg_&MR|BrXn+XUux{?~s4N2>osjr7w|EclAN< zXc)qOr$_Fu#dbuPTS=22DbV;Px6!u^a*T9v}`FSRz1M^L5RO!6fy;&^ZOK%(BO|1mM-h#V@XT*yXWpor>(^EmH~Dqdnoier zk=O)xEr7YTv2obMj=$vTukalMQ7bR}kHiVxDuxevGj*4RG0_Qhy&q?W(0J(p&8=c2 z=;C6BuS30^=_N+x&vZt@fkMZc!&DCY6z-^z2Z_65me+VRn+apy1EVnu=fCBFp%b?E;grE?LE*c|+qnBoG8`NF(??~aFI?wU+Z21(h|5<|W7x-gj_Ia(F6xRk`U9E- zBVdXe&7uqO{_I(z$w^;=Znyh-3!LGaOcN&=`Cyv|i%{El3Wt&3$jMu2*+FCh$tt-1 zLJ#wtnQ(a)%9A1|RuhLGM>Kcy!md_*0oMeLns}6%`B$EXS=WNLO|dLrrArKYR|D~e zKSX1Z0^d)(!dN(%ASmDCwv7sv7Y;QcT zgXg`6X`od9jM;#5OrL2>_e`u$JGc7E$Kq0!PE)Y@JSw{(QDy@{$o62M4G8EsJGq&U znL;NWP-e-Q*4*~b*?TcRmz4MF>v;2rle3%sS_ZKzMga#6I;>U+>9XyFEm8Hr1>rN3 zrO+ZzWWJjZbh`n;uG~$7Xc`~wS3&slrWA;~Ftuo)YV2w0lvj9B+=5RgbV0GA@`0Yz zB)=^wC(xcgtsv~`7R8zoOKdz7Q?-(+iG2hw=R^UFGO}Qm(=QaYfTIGL!g^^%Z`9z8 zmek@ptV`3%)1`he(fw=(omiwp23=bwh``S$#7gbHIFS*vpwogH#2Y#cxvbp!snf4E z0)Nh7BLJ|fR>~H>!>qv2f@%N|pWoleACC8x!=0#7+j-iJd?ADbY5%NWD~_ZMf>NK4 zPlC6s7dP#ab0ECiDA~^-iqX59TS?k3voi@BqmBOSqqgY2>kD#Q48( zTq)6+gm0aNUzC1HO~cJ)CuuLe7wC=)KOLVSq~|m4b^l^qXw#Rtkud8btrqsHBVpEhFD&p2uuAl0`Sz$x;C#2cApxbTIaf;pEb9PS3q-3c4GUYU; zJ(RL<6BR)<8z3yl065cs^e0LSu(2IXN`3Sat;rdmV*SNrh#a)TC%0jOe+hY)Xr2o& z1n5N7fPhG~)$wLa8`T<487!n})}b~d{?CV$3lq3B=GcipeoSKf5RN;U^4neh_}u}$ z_@eVzWk?e>Z?NfeXtG{8Jciv3;%2YmB9Fe&6hcH{$Sq#(^I-^$2;Y%~DGQs@DWr-e z`{TuE=46ATj7S=+76D{I7ZPxjvZt|fzJJ9t`)4J3DnYu{Xmmh*K<}LC zo7AhTFmh|Z5A50^{JQicZsNhHfAz>iM#J;1qS7!p=d+D`O|LQ%@2CG&9<%ud(xsIY z*$=+?_PlaN{tL=-PhThOJKrPfS5m(rB zr{Y$Wc+|5D)lY$wremY7H~>#)1#WM3t#m5tQ|%N@65+Q#XL&V%e2$_{Ek`ZHj>28!NxUx1%|zf0dQSEjZ0oM} zH+vhsjo!xRVyplF0000KA3+#S4xeql=rY>?9UG3j6srAv&lPzmGi+2Vm~#KpmR8Og zCD=xlX(tj}j}_Lxn--Ar=!=Ol00`g48rK&-H))6ZcsM6msk2z)lAcmug`UasiUICusjH5T?qxLCVYV^^3O3maXs`jVX h)(LqsMb!^+VZKq?KopfwhPQQ4b{qFtk?~L>RtWh;a zjkPB3dELC`8ncw8BqSVC000ef5k+-HZcSJK0D%1Gy9y4t0R;%lDoUP10{|d6#ddhi zdY?pu+Ng7%FlFg*p_*ae3N9W(+ooui1t&f4C~4jaba^9DHJTkq$d{pTYqDk%6w^g^W+1OS9K!gzim z_a@1^k#KtF{T6EHnJaDPo{{ zL>OGZ-+$@?Dr10T6I5b8K;)T)VUh@c)M{W()L&Yuic=Fuuh)Z1{bsu&Mo0V^gJlf? z0>=qs^_z?c{Ab_7BCJ2NJtXUr&Xxp7SayM%NOKw|Nc->hOr+f!yCq@&>yWtWV?Sim z%bpPc2+>EV&%?wg`1rX;KCoCJt{(VHkol?2f25UA^yh1JrA3@cMFoFg5l1dsoP&=L z$EFvB&7OuJ!rhcA3_t{W0E;WGwFg3SU=Bn`i2G4#|2EY?5+LFRz6j~#44!^=2Z8Da z75r+WP|TS7Vw4~>rv4pz51_nalbaeG-0n}D^03%E`BG|S6ac2kU0YhE=kXhdK?z(~ zagj~H{N@&Xl4ioq$}{qfLI2WKN5)KrdZ^*@YCi-jHAI=XfLeJob?K~|0ahFZoMy?p z+CULbxP&xi+vvq1AVN(6LXf%aMIMhY!0F(~ZObP5xfilUIXB8?$P z5ISvPIJ()E%Zt-N1GShbI!gE4t2hdZP*z@!K~I)idU&2cv_&eDg%CJ8GK%;Ny}?h~ zh;Ug3{8Xlxq$turYKs)65Yq4|2;o#F*gybj;4Y~IvX}&p83bLSEQF#12pP3MvA=&q zpqdZ>MA#4oEF2UXVuDs(I4+yfI4L`jn9&Fv8D9cIw-1_HMHpa)PzeYGfYO@)Owp11 zD53zMf37xv6d|D&GXgq32nQT8|Hk%6>@`e9Kq@mRHL~{ zUfYiF_$~S6hMx|{pd;z@4ti5<7IJ4p#ZhQl+Z}N?X`edPk+^GaI0xsSA2Xk`dh^_W zdN^{rH>9|Z_yO;7Ki_`|e!k57|Lte*G`&GX&FR9!Ed>>Z$D`Y$h-ftZCZG0aau|o3+aplowFy(N ze$?Zpm(-)lUh}VyH};dMe#c29*DIB&?`Xm2aKR3zy$t%m8(0zIM0jN4cek5c3vlQK zAyA{&!r{r<0c^?D^kCqet4%6V82Pz8Xq@itMe*d$y9Q{SDID}^oC1TM0M0zgxhyD1 zf&uVj;HZI#QivEP007Pl6OHMM?7$iTo@o6>g)K7B*6Ls)~xrhvy6UWVl-6vgrc^e3s5EMKsy-#xy6_Etg zBg<4sSEGJDT&dH%y!eHyrKmxuN&f%@rl=-sLktY>bUXaG#k%Ui3|6kDRTP#erY{qj ztnUL}YSe1xydOaI?ue8pStqB2h#;d^^wood*S^obefpX?eZ&fUZu|rRfs+yI2L%x> z1~2soN2_^#kIcO;gWBGL821DIF?&a;QX~@SaAm`Qf}lX-WNKzF9&`3#V z=Acoae;zS3Vqjh#G)ufoMt+h={^|uSS>kkPFy*NW?{`aLNHJky2LKAVDY{6)?5UzP z3F*mh-SSkN5OjVb`&Ra4uzwV2;28Bkh5?nD-_n!LFM$3NWOPiSz=_Fc^Q{n1;bkF& zg#je~&<$)PQdC7WOQ6ESB|n$baEOIO^Ad~D5VPfp&(XysP=t`d(M3gw7L`rfV z98?Th$Q1TZ6-2Bb4FE8kfo6lyu7Tfz3fQryNRg8ky6u=@5cwu#~e*)RIt zOt;?l(L3pBtc(G;^K<`g*O&35$3kWv>a^Fe7S~>*$B2Jda2MF;y#$>3jRfR-hpH;A zaL;E-CA#Dq`1Sbt229qj2QmY@KN=qdUo7&kety>YIeroWW!`Fw1%JGEKFnMa9SM$q z+I&s}&-M-8W-fs&Ux=Q2A9nUXq<}0BI~SiDpHqHyz|*&|Cyht@Tfcoj2f=19wwKfk zgA>0&->uKA7l?O@7o;bmOM?T!bw9U{g(m~xT?>-Zr#mop5pKCR+b^f-$G3C4f&ebRlbJn6hMeSUrzeDkaQYz6v_7hVya^&a`< zKZ5`bK1_f}&$)MkO})}PCHk31Kj8J{w5HlKg46Rz8t-=Eil{eF3$ zXF!8LcV@Z_KK&j(fWT9~_fN;`YoycuRodxx7tKi~ zey~>uH`vB+dYG(}GXP)~L15KJs(4hxU7uhnlwl?3(O(^=3^5}slt$($4m?#A-iJ2* zfj3rPEU8|8w1a%?&wI@(9GhUUzIim|G@HWV+$}`BppY1&@LiUM*Zh}|GBQAy))L9P+OshF!f>4 z!7hiRL~x*7{>rlF-=kW7owm8X__)NLubU3~(Wx0?m(8eZId=06>BCA{jmG8VLgtH{ zOR?%;-VGi8Q6&q+awV67({*sMycp=5V6)YbFp`>io&`tG{$PR(+dT6eWp1ge$qYm$ zXdF)7Zjp!G=2vO?&zP3@bcGNkDh`DU83W0X;rE0x>C3|dTK%;SIPL6QQS|A79#^dd<< zuTC2x2PeXq@&Tv!EmFy`A&!`vX_7U=w}LihTX{jIu$53MJX4L{2rm6f`?);x67agC z`%%_w51SoD5r!+@22sOJlnAx;UibqvV*Q%D>Jv#*s5<9@949<=m|)Oc7CM5o+BmQkI|8iL@n5z(5Db6DC z1Sa)ba%Sg|LMarS-M0q368Q?-|4`q5Ebw1Q{=?cGE~jkTfU5~eV+PHxT`@H4-TU)q z@h^Oyh{*rVNB?PQ*89=_B@7DAcppbCkuxyr*icJ}kyG^EOo!ud2>)w_zx?T+_S{@a ze}wRb9PKKwv7kKbrrHQ}??0^nU+eiVJ^UHu!g`Vq1zKK!Yo?N;p!%`EwGugN@Go!q zU)ujM5XC7fIuKcIL47gtXQS%JbUeYPog%V@JIhmC5&oty%F*9C+*Kk)N_xF3AqXHO zz4L}Yv;x3htoGL;O7ueDexkgI$MD9Ri)o~#RsNPB#Y(~66{U~jw8l!m=fEyKV3?zD z;FT@h@QHrIBKV3(waeTK@~r}gaA6KxmSx4u*{I22CMO>DMDUnCS+@RVp?#Rj4hK_0r+D)Hh9fT}OROtMgk6U2h_Y(2)uPcchb!c&sJGe7!sYNZAOqYnsf| zYuwk*#^DiyEg~O}uPv=mq2X@&JF8IY9`)`k6iifLHao&73WwntFYY9*Qd3I@T>u>O z07;#BAqP8uW54^I{u7!oK)d0mzfE*pdKK0ot6xtJNPw zVvOcD2ro(PPT4DU57COZ$8fT8V8aLhj%qBvgH>b^#opLg@`(qWVsV?Jpfj*5wZGUO-UncSNv2@no?nJ%YQ5wgM-1YB_fOl$MjJz-ZLLdga@d!0* z!$v3q9b;@(sQvnF`GvxHU#?ZBqag=9eFQ)CrSTBOXRKNY< z`2hcS0)JnDJSJ~!BdK2z4F3+EvDJhpcQ_{L!+SF4Gmtj1|G>eHzmMYQx@B6kDArq1 z*s09Pv1C|i%&{8hul~zl@nZ}-c@Av5HRDw!f&rNF?ncZr2joK4FCS-Ib#Rxd=|C9z zmm#0^x9EJ>6N!($T4U)pmS-qX-Q(d1w1>d_4RYZk1$8sQR+9R&xSag3g@Ebro%T9)<#!nK{dt92gM9)H&QEzSc;I}Fg9-y&IDCSs=U!EbCmiaW$hM|0B!HVn#aa5k% z3zt~Yq)`a9Gw|GR;PYstvwRJ9c~K~Xf;x|jq09}l_7`K~T^-3q?L~8%T+M1T`o1|8 z;08uvN|<__XC`s}_-l+E)qFmF`Nr*T+7~AO>=@@m2NUKAoI%uJ`g=9 zg<+kOS8Fr$!JiJ%AhbC2EsXu`J1qSTk+SYJwU@c-%nzA(<#Xg4ER^>^X% zkBUbrAEll=;gTjks+FJDgDu-}6zJnZ&Q0nfiyOV&kjfzA1GdX+uzCWe6>aK{a32+M zI|GsllKnPzpZT#$Mxr>b@nx5rtqe^~RX3M8enDMpm4BAzt{PkjJI>rZbWkPzvc=d) zW(I|(57%{Wth8yMw+EpVstdDQ;hYR0-20kR@04D&;!3(DIE#up>dqhe2XTa4OLxP?H;f zHoWgb6&nIZY#*{xSZYAP+Z5e`D1FEE;6r~qQBo(FWem;r_(8N%CKrC74qkGRzi&dO z*Ew!}w+LbRafGkQ$&2`u2$x=&Sj^RRvC0WD?^y_`A|JN?y z{21@IBn@{1{q@I}DTnW@|0qqu(^xg*K-EiU2A(vif-jHUe;dXG2v8!@x&0z1X4C{Z zXpGfn$ne6YXN)czPzq*`oJWJn^_B=+TYme^`n}c7;zd>JMgmR=1`ZWJVAaDj?$Q38pz=zVk8!BmTTEbc#ZSNp-jzv3d)_=kG`^NAs9pppbHh?Ldf z7-F_-S~l%J`H2vuEz~!2gzXxpu0ksfU3ee7##3Xdp%6d%|08DSD?;8rocW*dHGhTH z5_M-)&XT9yHK&J~4EqP;!)FI!8;o1hzWe&j(tcRdL^&6Whkr8ammnZ|nlz|s6)cF% zoXe2!BtQC~3D@(*+R%Y;;{PZO_i*6R(*D8al*Vnagno?)HTs5`&R84-him+p@nZ`m zq$Y7i4y|9k8dWE-z}U$7*xFl`+HS*e)s`96Suq{2c&sh0a57lwkJ=&FSV^y`o95Zal~LKTTyNeYZdtV7#d zQ_543L=|%U!M(Hj6bNU6Jc(W$G7k(|){CO}i^u+zvc4=|!GZL1cy*#5@{;|e`r7BW z?}S=Wf>kDJq-??7Q+KYE)noJ(j0*D?b$N_)E;u|kID0Gm zqq;at@CvCe7iKgPWK*e76c-Z68UoCqIbt}-i4@nHU-%9cS58d=x?^Ebu6tw&o@f-bf>pv>_ zzo%d|XXu&%BmGO0f4JrU-j1Cd8S+J~>LBwNR;tU9Ut;a>FLL%j3WdKIzS7ulc&;-* zvn1Ll;s6J}g4}pm{2Evpi&y*qMu+}C@F!In*sjlkFo<5kJ0@QBVKycPL;izFv(fpuqt)VrPiR`JC0VbX6d=lbOp_!%;@Vl5 zmNN{B06=!oEuZc{tk)%;&jp(39?QH>4W{s+2k@#4D=FjxTih=>TU|l`wlQe21a1@G z6#a&$yw0+Omj3NakDo*EF0`ShCtcGAB}jF{&U>8!o-)7g6ZU{Vr1fTRR4JPRsWs{7 zli3zG`M8-KO1}6yn}Zq4M7N#~=r^A+(zSN~@Qg5!Lu2v~;UKNbvFYt(%UxK9&09_z#W~5U>JT0tZ9dGb@mHq<4nNOl44PvR+Lcal$T#?-}SQ{niVT?S!+ z-as9rL|ng5LRPz-3YF1)C2&ADM@?-M!sQ;V*As{fU<8+e-cUwC9$5oGFeGNMGKny2*6D|h%#Fv1^KQBCBtIBv zS_QsCn^QUT@;(KN#A$nL`Mi{QOrseYH5v*e>dxV7pMqkgR-tsA7j=-Vt{3=kr)Bni#4M6zP{o&y<|;JL^Vc@az~Mj=;u|=y(fs(KpE~|WhMKh`#Op!FALAc zk_&l7^Zi^X*XM*IMTi59T8%F+6KU;NJo&gPWOS$Z{Ay05#uK4VS4pk|xoq4Wl|R8c z%voyB$FwT1bP}RA*{5t8t(V8&kPaenlMA;c&09)=-6t5YILbEtU^aRH@zq^Puo3 zeTbi|yie%#U1&)VB?Jn|@{Thk_q{?mb|#2{>jd5fC=qye_=JtkhP@!;Uf;!ZjiLip zJw>fP?VqFE_FIhVVuT4!n0QcwRt;N(;ObW14QM#C?EKi~oIzl_`S{eUfDVht1L}2k z*!euoQ6uKep2&B<7X&HQ@yZq_3`D|Mm*|Z|DE8nsaEoX#p?<+Qqeo%`afs!|#bq{! zt1xs~Gz-r>faPxzcuwze5O|q3yf}Ur>!3=dVcVi=UDp1(8fo&qH67tmn9cyfyZKO! z@o>7W1*062+$>*7?|~LssJ3ZnSYEtg_dR-z)mobgiDC;?_eaK!1e5POH0#fJ6Ps)m ztGoCJ?`}X7EO*uT&2FTAa#cE&Y|Jdw@>V7({F&sZX21-g_;w%jeKz$k{y%Rp;BSrS za;u1-viOk>d-J;xwP$vOX&mHDeIY#-7D~es6YMoDr-0)@`d_oHpbg3o0gHU5Qs*_M;FdhRtv7w)GJsbVG31qRQQd?s(a}zBBdSjb#YRUV;Pny z)sj04yDD~@8{LKs*RZ9 z#{-A*E zt)slG0tvRUcJy$e*kC=plh1q_zkx*?T4}~S8$CKm>Zh6ICzeJsO%3ZdJ*GkP+s9`> zCZNhGq*nX5AY8dV-|J+?SP7>~3BdYRxS=5|V;8S!n{2OTh`^Z?+_N5w?2Po+P^eF_ zwHyim=B7=T?7TJ!*b0HfpE+Nf53BkiWwE?6F zD%HznQ#5H-B6z_!4nvlT2Vl zrygw74RaY9J-Svc49g&&ilC!JH&h{Y30rzytpIEg#<-J5O38zX{~g6^HCUy35OzHS zDdtz-QArrV(mAmZk|W%drPC&=Vjy{)B6)n(eNGgyk;g3IXTRa|H>m%hs+xczQ8Q54ZGKc!qEtCbGY(X%|zkOWXfKV z`{9-BrT2c`VCi8>Qg=~VkJ!?UO}+O%L>gwOZ|#E^qYWnK*-*X=2*0UIN>j_@I&-WM zdP1Wcp=_L{<6`|@$FY~tdsiDf%u&dxiio9jFiY013L1{|FK_R$q9uD0`0qXxlN(Ex zLr(N(s8!KRgtF(Kbrs)0LrL};Jn>1jxf!=Zd8Cp{7B)^kYGwfdzViN#jlP=-*%7%1 zi|Ma%jbxijpTngNee+zf`2RvyP?89|Ut?lPOxfuq45sli?W13FcOSW(AaqWhzwqS%(PZjwE>I7w zESimsu$Ck52!g%dvc;5JLDp1oG2CHnPNEnFy0okcO@R4eKtY7%N@=PnAt~1A zHHL2}{}gu%9<2RJx-Qs6>$XHRh1Itj5XuBqk|WyY7G?`ZEZwsfdrrFAG~YakeUnPN zQU%u&!U5p=G-~Ebw)vs{9KGkGgPz2-Ycdx=|8$92t&_DAL{&X=e{7G!7jYid<7A*Uw(}D%XEAnYM|N$!+q#w;dz`*YE>UF@@O487lP6b z0rPx~w%YJ9AJikZoAm%=@Iltq1~!0=;EEM1Zmlf``yPjub_9P}yXpFo6iCB%t1~ff z4Bm?*E510LAxzD!2}1~e7yi;`(4Tm53Th!2NV{xV6gqNuVOb%~ilGhT%6*dp2Zc7+ z&?Q4d!_3lCyOd0g<+)pV(#v19P}p`6jH`)aTi?}F--A+SnF85;a+uuMbAy?GTVG9d z$FWC5V`$$&<*w*~_8vS^Dh_HsUrjJ@=_Hjp<84%hSXy+0;G5TRn>dFlaZpc5wNN}c zA9w%!+bog>oeH5Qw!o%%>xrfnm@?tXo@*y|)pGFK;zv@F6gw(}2s0Hc*tGxuz9E-!wx81P9 zZ!{KZSPW5#dadZ=3MuKAL(m)o{pNPjFe)Q=DA;gEPOfGHV z$@ul!t=cs%#2hKo{VBWghUduknC6oieO1%y@$NFDq$X#xAYL#UMFPd#+nnppJ<3R^ z?Y2LT7XSd3g#7^Sk0b--$uerE&0wh1b5zYZ%0d%64C#0JEcRv+b3c!UjExPbu-9A~ z_9&Qx8F(51Ls}P5v038=Y|Be?A>{maIgJI?-7$T%?e4s&sBw z(z zH>!|F4kyonr>Wq4sFrpOx`TEMqN0w z=;v$p7g%JK>d%%6lz8^_y7w4PHYTC_sz!S8jWP$&E2Vyw2@mdPz14L z?~E@zg=mpX(5Fh}`OBoh>Z95Pe-G?JoO(Bb$#-Ba6bZZ=0YQkBL&H-U)S@ibc^GsO zEtFdY-W0~Qx9y1|&4)cix9M%>Z<-R&u(&QP)i5plltk^`BDng^CwRD5w29@<214rm zVFh&G;!VCdx^6RX3@%7dxbM_@ZBT}16JCY~&V)Po5`B6S@4lela68qrDf&y+ZVdbo zE{AW&$8*G=t~Q1LC5RdcX%Cn)MumK7aMQ69jl2;iD)Vg9UdLhKVW9KK=w7X!MyE)=A^z-i5T=_jV zI$}S4iL`Ltl@ngQ#oUqTU~~v_fc5|%_*MsQhE20twh{Efi?J&h8zxEVJ5sm5A?HgpU!${KN z*U$@TY>MLU0y}?;uaUrL`7)s)ObUy}Q;~=p^N|QQQ!<^k6WtnjDzwxvE^ikzEIfDuxeqKCv@f+oQXgDS;gMp*=K|%*PI`b?V@MdTvWGg&I zxMQLG5)=1?4cbe$vqa2jKSF$&^t!j(kLK#310C;l?z#6u!0Gy0XTC!E@WW;ohN|*m z(^u0yCMJonEkxhj=reo9Dck^wC%mTcTfBn`63fci6B_G=GgBjp7_zilCHX3zKWA}{ z8Bk%80@>Zf_XOr(!U!5{!qOD(+N?KRf&S#`Z&5mq z$b6;MBc8FR3zR(#&*|#+5Le2>$cD`ybK<|-%pzjQ=N5Gc$p(7h-!W<=%kP@Ym8PjO zPbz8@NO)ya@(BY61=sDQri!c%94C#`^rqf2nD$ONA>h@|6#*UmAHDl?b?+ksVkU1Z zpIX)eD}$Sf%vM*H>rCfThF5RRj78faPu~;mLJCOzR(CaJ5inq^<=fxVvx;>Amgdu5 zw7n<>1I9Gip?^i}wVg>NW>LBr+O>B(p(!oV)AWDWx%R6WnMo*Fd)gp$&z(vGx z#w$Hk-HrEh9T+FEmyOh2nEY|}7ltS6Y>ictKy^=~OrzjWI)}TMjU-P9CWNUNY z?~KOgi~pqze*<5FPnB2_%xl1KrGkD;Kh19kqVxy!CJZJw2lkrRX*5z?id#bADm zG=Ee%dWo*=Y_X8qiJd@*6ngRUq_`#oaz@5?WsDrkK#L%trS=BvlSFKjkF;JBPIpXI z=~%wqDj>XVj=2r8_9cS8$(~g@D+bXq`D%n|%?UL+^M1{lrLI(i-!`sOzT9C@F7jsT zVB-VhK5~{_5sr+!B%%UFew9C8hX8qeUlF-U+mu#Vu79AeN)PCf{zE;hV->0Qt z6m%fo%DuO(xJ*c==!rs9L~%r>(-VSwlD{Z;@=+!^fD%s(CY&^zDn4e96%je_{+P}8 zhS?+j@xFj2X}Y9fznAar#hBQNF9u{CBlpI@A>VSYa3Q=yxP-Hl2JWex3PsoG`Z&!Q z<=qACxEp6my;%SI^qM$=*~iDSMg)==%Uoes?SlC3q^=roS4v8$48$fX(=25tXVX_e z#0CVXAq|12D+4U-kB_fd2Lpa(+b@Q`Rx$U<+Xjfg1yT-Pcz^1)qko5aJeSm9soUZy*lYlM zdZ}}FkDYhb&1RbaMWpCy8(j|SMk$7_rjUo>$iEie6y`goCZbkp2iUt|Lqq zeJMsPmUWTM8=>wT{p7(-DLDsn*DG_|dTPL?Mo-FXcd7=Fx$F0w3YKRbfWAA)QUu=0 zTeNlt3wVjj%HvT_!T{hn-pz9E+ z-xN7nY8BzsXAh?k&h<&iZp|FUzW?(e6$fw&s(gkRBOgIQ~ zCBY_Kjh@_NjMwPD3ASK#t3Y`CIZXkLd{7%~4m8@f&blITpDL$-7=F7OO_v~2&%Z_vY3MN zcXcJ8WX!@svFiFA;7i0`Z+aO}z{uOtr3bLIFM|@{oGh`@N%IYyX7Kw4jtB<;NQq-} zYcQaJe+@T%T<})*x{-w@LG!qYrg2TLIzyGE_K|p=5%CXo@jAba?+CMEQsb;BxD1gb zZmaK7jVXdLCy1x#zb=&3lUlI}T16P{Z$~yHfYAeu zT`MFdfYp^e5NT_rAvQX*J=R^4dS+6tEwS1cb;ryILR(&ql-i&S*Exr&Jk6R1!%g^+ zieUSI-^uCa2kBq8{t*ejKMRz6oDUH>3-2)QLTSZKB&FmmaTP{9qS;C`js97y1ccva zL4}Dck0|>!BW`+U06EsK{zVBGVeo2as@3bIhJmCa#@!!7#ZszX@9HN6z<6c1acEw! zjH5PQB%XF&PjtbNw%;vQT1{AxV5nv$p5eD-FAvj&e^Y>ldsTh%;yQire}I7cC4ao1 z-%7K?H@_hLxt)&PUrqMynS@O%g9J^(|Jp2RGj&D+XPi3X>w?CD?5GzMnT$G$Y!(Yg zCjSjx-Wvu;txP_W{@RDu1X3&cncr5sxHRtEF&!$4R}^<^UTogT~bT zs<_beRui2&porLES5qy%!e;N#{J@$q^FUWLmwy1Nqni{NXB_o!V+vMO1c4|8VG)zC zlsD%u&aD#S6CR@F%=@L2B}&KuF#SYG_^&)y5BM_J(hx!M$l3?ZabJqgl5#|{vE9Hb zeu@rQJC}vC(6(rXU?h}^3{kU`=SCV`pa=ERC{Fk;0BrmtpG%UDUpE5wH|@Mt7%nD1 zKF&&#`dDKp*c;fr%Wd`vlotwGiqx-%+~HZSsh?QmQ)>&S@_xSG zW#e+2ws=_?%dLQ1-^wvV-+)?#K}M}Z`Z_u;-Qk*`+zBO5yB>&`nt#0@5Rx0nqBgN`X_-omecwac93h$$`NGuA` zf!=7)ZM$x}RfL zIW6R{4NDd0$e&|aNbBg)N@U(GWR1FI5XPm~wmj}i$yU7zk^N^_Ti_I%cjZ$`&02fT z$7OhYZqsqx_F#rT46KZd@yw#%PloQkBpRLJqTad1$mP_ae6=5W-n}y1~@6}moSuC2+pmzGJz$K?$T>-D4l-6sn0oPGQ zo1p{MxUj>#=NDuW3+vPHeBZL>}QvEW@v^OBwf&1Rd^D6 z%>o<%wkeqWrCx<%)2v`~DQj6Oq5v2EFw_t?^0Z$tpJ*8=hzaY8bjjmx6*;{@h>{1qZ)s!g%C}v--M{ z%-c@pp8~EazwXMlcc9+nMG`I+e?32yQWswc=Ev_q-hQoj&yG8rc+_->#kKk+tCb=8 z=U7JG58c^}D}yRZ%QUAj?4o4h=K;jn=C3eluu0b5Qis8?THub*H+@L{ChT(Ag;c_8 zY^;;6?}YlwTL>Sq*IC?8PUgp?;eeJI1a4k|{P)>#(MO-$(&iK1qA}74{9V|iEmg@N zkMD^T--l&UpnvRdx24Ra$25|qo5+K4cNjf#aUi<=hUbp$W{J;TYEzNxEv5(X7zuyV zcE?fX7OZi)0v_3#Cf;INx^>s?&kHf+;l#N#rSsqQjHtWCB~22}L>70-x+#oLfZWW= zhn&#ax(XFeT{@+{N&KRs;rt~kzou_S7p1_8v*&zxkdTf*r%+cT)z-*rBvhGmvG8rw z9aNUaG}qN5Gnp3>^kvsh9-JKIUTLu-ykEQsBp)s(x(I}HXu2XK8-I8PVIAq)70)PS z3zN>+FW3HyP~1C%g`cgqDdNSeOG~mBCX6*oPSGfnCLBL0Vi_tC`7|TIWrl7Z#2BD& z%DY5T7sYTun2;5hD)BfOTt%0EzL|YEH4|CEYhk^I%1_^<4Xt!>LmkBfW3GQ{>r<#A zhRO{_t4Z)$F6wE2O|Zc5&x!sdQD`gj`IahnU!s~z@$r;&7J%NL>@MGJ*AVFmJHwiW z{d)$vXwIPIByi`} zS*QmBzg#^bVhbyS?^;NM0NVprRAKjM$V~q@NOB)Bb%=M)#q|<2$si=tIut_ST@gCS z{mC-;@G$ZADPmxICff_!!LQK-qaD!cMv*)f6^la%5sqZ^cI?&jLhpjsn{bs^%b^GD zA+2|fQX}ok#emXv34vStUkIcOs0%h+n)$8IRc;L-fuu6^a+pBHVQ}lo*lq&^3rd1b(O= zQ6<~DufdU_0x(DDe_lHR1un9J2~jbQ3o>f;UGSv`q!93^S`EGy)@(OR^xyp=its`Fo$q zNb_j7y*4#$YX&cZ@ViV92%S+zd7~_0i8E9`HITuPb)dp1*?LvN#bkl49Jm!Y8%{cf z7wMZ1yB1ZOdxcueYJ(9ZYz-b4g1C!BE!jHw#bNIl-})2|4vV4X$pSuBw`_{$Rg?e} zw-=J$<)LHp>Zn#JDy2v!jYNdQvJbmLVKY$sOM1`4%UJ>XlX#c}9HSb|(>AJ*)KHhv z-&2x*8Q7_VRMN@diig^nJ7A8%vFYZoBBu4D6Rh2uh0%wHyblpK`71w-OrD%1f43&Y z38^_3-xbp^Ty{4pW!}VlX7i3;yuz>>`SWRtvXS^k!u+LmJSgWF$sYX>|5(GB=Dtkl zOUg@JY{srRE%ez>zaiS0uJg@BLYrkq(8rWOaz&9JfCHtppluO`w5oGbKTaD#y9U}q z2Wtco^p9h!DADNvPcAZ`{Kf8sM@4BR?Czm3Cc55qp~$mu#$@ahK7t{wo9laJjbCx{ zEiy-a4QWX+Vr7xwJYY6m>Ugik(fk|p8FB%%(zM)JNk78?dPdcl+$c%DI9<^zj-B$u zaZi56%(Yo2b`e{bwkM_O)=Y6yEfaOn0udF-G_fYQ4Elf% zWcBw}=H~j311$04VBzk(%rg#wm3suZ7}R&f7}_9K�DGA=#H(f;$S>!-6{5=ckMf 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