From 45929c2630bac66686e62ed45eb7ae2f2f0c7e0a Mon Sep 17 00:00:00 2001 From: kevin Date: Tue, 18 Jul 2023 12:05:01 +0200 Subject: [PATCH] Initial commit. --- .devcontainer/Dockerfile | 16 + .devcontainer/devcontainer.json | 59 +++ .devcontainer/docker-compose.yml | 23 + .gitignore | 13 + .vscode/settings.json | 7 + README.md | 47 +- SUPPORT.md | 10 - docs/next_steps.md | 33 ++ docs/prompt_writing_help.md | 199 +++++++ labs/00-setup/README.md | 101 ++++ .../00-setup/images/completion-deployment.png | Bin 0 -> 71825 bytes labs/00-setup/images/deployment-link.png | Bin 0 -> 24473 bytes labs/00-setup/images/deployments.png | Bin 0 -> 67433 bytes labs/00-setup/images/embedding-deployment.png | Bin 0 -> 71649 bytes labs/00-setup/images/endpoint.png | Bin 0 -> 61362 bytes labs/00-setup/images/get-started.png | Bin 0 -> 62501 bytes labs/00-setup/images/key-1-value.png | Bin 0 -> 60758 bytes labs/00-setup/images/model-name.png | Bin 0 -> 71541 bytes labs/00-setup/images/openai-service-list.png | Bin 0 -> 74630 bytes labs/00-setup/images/search-openai.png | Bin 0 -> 44914 bytes labs/01-prompts/README.md | 194 +++++++ labs/01-prompts/solutions/prompts.md | 409 ++++++++++++++ .../01-AzureOpenAIAPI/azureopenaiapi.ipynb | 256 +++++++++ .../01-AzureOpenAIAPI/azureopenaiapi.md | 5 + .../02-OpenAIPackages/openai.ipynb | 212 ++++++++ .../02-OpenAIPackages/openai.md | 5 + .../03-Langchain/langchain.ipynb | 230 ++++++++ .../03-Langchain/langchain.md | 29 + .../03-Langchain/langchainwithacs.ipynb | 167 ++++++ .../03-Langchain/langchainwithdata.ipynb | 298 +++++++++++ labs/02-integrating-ai/03-Langchain/main.py | 41 ++ .../03-Langchain/requirements.txt | 4 + .../04-SemanticKernel/semantickernel.ipynb | 282 ++++++++++ labs/02-integrating-ai/README.md | 14 + labs/03-orchestration/01-Tokens/movies.csv | 501 ++++++++++++++++++ labs/03-orchestration/01-Tokens/tokens.ipynb | 318 +++++++++++ .../02-Embeddings/data/movies/Ambush.md | 18 + .../Ant-Man and the Wasp: Quantumania.md | 18 + .../Black Clover: Sword of the Wizard King.md | 18 + .../data/movies/Confidential Informant.md | 18 + .../02-Embeddings/data/movies/Creed III.md | 18 + .../02-Embeddings/data/movies/Extraction 2.md | 18 + .../02-Embeddings/data/movies/Fast X.md | 18 + .../data/movies/Guy Ritchie's The Covenant.md | 18 + .../Indiana Jones and the Dial of Destiny.md | 18 + .../data/movies/John Wick: Chapter 4.md | 18 + .../data/movies/Knights of the Zodiac.md | 18 + .../data/movies/Los bastardos.md | 18 + .../02-Embeddings/data/movies/Sisu.md | 18 + .../Spider-Man: Across the Spider-Verse.md | 18 + .../02-Embeddings/data/movies/The Flash.md | 18 + .../data/movies/The Wrath of Becky.md | 18 + .../Transformers: Rise of the Beasts.md | 18 + .../data/movies/iNumber Number: Jozi Gold.md | 18 + .../02-Embeddings/embeddings.ipynb | 461 ++++++++++++++++ .../03-Memories/memories.ipynb | 162 ++++++ labs/03-orchestration/README.md | 3 + .../04-deploy-ai/01-azure-functions/README.md | 124 +++++ .../01-azure-functions/payload-excuses.json | 8 + labs/04-deploy-ai/README.md | 5 + labs/requirements.txt | 3 + presentations/README.md | 6 + presentations/prompts-demos.md | 135 +++++ 63 files changed, 4686 insertions(+), 18 deletions(-) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer.json create mode 100644 .devcontainer/docker-compose.yml create mode 100644 .vscode/settings.json create mode 100644 docs/next_steps.md create mode 100644 docs/prompt_writing_help.md create mode 100644 labs/00-setup/README.md create mode 100644 labs/00-setup/images/completion-deployment.png create mode 100644 labs/00-setup/images/deployment-link.png create mode 100644 labs/00-setup/images/deployments.png create mode 100644 labs/00-setup/images/embedding-deployment.png create mode 100644 labs/00-setup/images/endpoint.png create mode 100644 labs/00-setup/images/get-started.png create mode 100644 labs/00-setup/images/key-1-value.png create mode 100644 labs/00-setup/images/model-name.png create mode 100644 labs/00-setup/images/openai-service-list.png create mode 100644 labs/00-setup/images/search-openai.png create mode 100644 labs/01-prompts/README.md create mode 100644 labs/01-prompts/solutions/prompts.md create mode 100644 labs/02-integrating-ai/01-AzureOpenAIAPI/azureopenaiapi.ipynb create mode 100644 labs/02-integrating-ai/01-AzureOpenAIAPI/azureopenaiapi.md create mode 100644 labs/02-integrating-ai/02-OpenAIPackages/openai.ipynb create mode 100644 labs/02-integrating-ai/02-OpenAIPackages/openai.md create mode 100644 labs/02-integrating-ai/03-Langchain/langchain.ipynb create mode 100644 labs/02-integrating-ai/03-Langchain/langchain.md create mode 100644 labs/02-integrating-ai/03-Langchain/langchainwithacs.ipynb create mode 100644 labs/02-integrating-ai/03-Langchain/langchainwithdata.ipynb create mode 100644 labs/02-integrating-ai/03-Langchain/main.py create mode 100644 labs/02-integrating-ai/03-Langchain/requirements.txt create mode 100644 labs/02-integrating-ai/04-SemanticKernel/semantickernel.ipynb create mode 100644 labs/02-integrating-ai/README.md create mode 100644 labs/03-orchestration/01-Tokens/movies.csv create mode 100644 labs/03-orchestration/01-Tokens/tokens.ipynb create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/Ambush.md create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/Ant-Man and the Wasp: Quantumania.md create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/Black Clover: Sword of the Wizard King.md create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/Confidential Informant.md create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/Creed III.md create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/Extraction 2.md create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/Fast X.md create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/Guy Ritchie's The Covenant.md create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/Indiana Jones and the Dial of Destiny.md create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/John Wick: Chapter 4.md create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/Knights of the Zodiac.md create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/Los bastardos.md create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/Sisu.md create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/Spider-Man: Across the Spider-Verse.md create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/The Flash.md create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/The Wrath of Becky.md create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/Transformers: Rise of the Beasts.md create mode 100644 labs/03-orchestration/02-Embeddings/data/movies/iNumber Number: Jozi Gold.md create mode 100644 labs/03-orchestration/02-Embeddings/embeddings.ipynb create mode 100644 labs/03-orchestration/03-Memories/memories.ipynb create mode 100644 labs/03-orchestration/README.md create mode 100644 labs/04-deploy-ai/01-azure-functions/README.md create mode 100644 labs/04-deploy-ai/01-azure-functions/payload-excuses.json create mode 100644 labs/04-deploy-ai/README.md create mode 100644 labs/requirements.txt create mode 100644 presentations/README.md create mode 100644 presentations/prompts-demos.md diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..21c5dc1 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,16 @@ +# [Choice] .NET version: 7.0, 6.0, 3.1, 6.0-bullseye, 3.1-bullseye, 6.0-focal, 3.1-focal +# See here for devcontainer tags: https://mcr.microsoft.com/v2/devcontainers/dotnet/tags/list +ARG VARIANT="6.0-jammy" +FROM mcr.microsoft.com/vscode/devcontainers/dotnet:${VARIANT} + +# [Choice] Node.js version: none, lts/*, 18, 16, 14 +ARG NODE_VERSION="lts/*" +RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi + +# [Optional] Uncomment this section to install additional OS packages. +RUN export DEBIAN_FRONTEND=noninteractive \ + && apt-get update \ + && apt-get clean -y + +# [Optional] Uncomment this line to install global node packages. +# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g " 2>&1 \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..3c9a911 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,59 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: +// https://github.com/microsoft/vscode-dev-containers/tree/v0.245.2/containers/dotnet +{ + "name": "Intelligent Apps Dev Container", + "dockerComposeFile": "docker-compose.yml", + "service": "devmachine", + "workspaceFolder": "/workspace", + "shutdownAction": "stopCompose", + + // Configure tool-specific properties. + "customizations": { + // Configure properties specific to VS Code. + "vscode": { + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "ms-dotnettools.csharp", + "ms-dotnettools.dotnet-interactive-vscode", + "ms-azuretools.vscode-bicep", + "ms-azuretools.azure-dev", + "ms-python.python", + "ms-toolsai.jupyter", + "ms-semantic-kernel.semantic-kernel", + "esbenp.prettier-vscode", + "GitHub.copilot", + "ms-azuretools.vscode-docker" + ] + } + }, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [5000, 5001], + + // Use 'postCreateCommand' to run commands after the container is created. + // "postCreateCommand": "dotnet --version", + + // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. + "remoteUser": "vscode", + + // Additional devcontainer feature configurations + "features": { + "ghcr.io/devcontainers/features/docker-in-docker:2": { + "version": "latest", + "moby": true + }, + "ghcr.io/devcontainers/features/git:1": { + "version": "latest" + }, + "ghcr.io/devcontainers/features/azure-cli:1": { + "version": "latest" + }, + "ghcr.io/devcontainers/features/python:1": { + "version": "3.11", + "installJupyterlab": true + }, + "ghcr.io/jlaundry/devcontainer-features/azure-functions-core-tools:1": { + "version": "latest" + } + } +} \ No newline at end of file diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 0000000..f99ed3e --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,23 @@ +version: '3.8' + +services: + devmachine: + container_name: devmachine + build: + context: . + dockerfile: Dockerfile + args: + # Update 'VARIANT' to pick an version of .NET: 6, 7. + # Append -bullseye or -buster to pin to an OS version. + # Use -bullseye variants on local arm64/Apple Silicon. + VARIANT: 6.0-jammy + # Options + NODE_VERSION: "lts/*" + environment: + SAMPLE_ENV: test + + volumes: + - ..:/workspace:cached + + # Overrides default command so things don't shut down after the process ends. + command: /bin/sh -c "while sleep 1000; do :; done" \ No newline at end of file diff --git a/.gitignore b/.gitignore index 8a30d25..ab41a55 100644 --- a/.gitignore +++ b/.gitignore @@ -396,3 +396,16 @@ FodyWeavers.xsd # JetBrains Rider *.sln.iml + +# Azure Machine Learning +Demo/.amlignore +Demo/.amlignore.amltmp +solutions/AzureOpenAIUtil/ +.amlignore +.amlignore.amltmp +.env +**/.DS_Store +.chroma/ + +# Qdrant Lock File +.lock diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..0fbadf2 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "notebook.output.scrolling": true, + "notebook.displayOrder": [ + "application/json" + ], + "notebook.output.wordWrap": true +} \ No newline at end of file diff --git a/README.md b/README.md index 5cd7cec..6d8cc7a 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,45 @@ -# Project +# Introduction to Building Intelligent Apps -> This repo has been populated by an initial template to help get you started. Please -> make sure to update the content to build a great experience for community-building. +This repository introduces and helps organizations get started with building Intelligent Apps and incorporating Large Language Models (LLMs) into them. -As the maintainer of this project, please make a few updates: +## Workshop Agenda -- Improving this README.MD file to provide a great experience -- Updating SUPPORT.MD with content about this project's support experience -- Understanding the security reporting process in SECURITY.MD -- Remove this section from the README +### 🌅 Morning (9:00 – 12:15) + +> *Focus: Introduction, First Steps & Prompt Engineering* + +* 📣 Intro (30min) + * Introductions & Setting Expectations + * Use Case Ideation & Brainstorming +* 📣 [Intro to Azure OpenAI, Prompt Engineering & Demos (105min)](presentations/README.md) + * Azure OpenAI Service + * Demo(s) + * Break + * 🧑🏼‍💻 [Lab #1 - Hands-on with Prompt Engineering Exercises](labs/01-prompts/README.md) +* 📣 [Intro to AI Orchestration (60min)](presentations/README.md) + * AI Orchestration + * Demo(s) + +### 🌆 Afternoon (1:15 – 4:30) + +> *Focus: Building Intelligent Apps & Incorporating LLMs* + +* 📣 [Intro to AI Orchestration Continued (135min)](presentations/README.md) + * 💻 [Lab #2 - Hands-on with Integrating AI Exercises](labs/02-integrating-ai/README.md) + * 💻 [Lab #3 - Hands-on with AI Orchestration Exercises](labs/03-orchestration/README.md) + * 💻 [Lab #4 - Hands-on with Deploying AI Exercises](labs/04-deploy-ai/README.md) + * Break +* Wrapping-up (60min) + * Use Case Validation + * QnA & Closing Remarks + +## Next Steps + +* [Next Steps](docs/next_steps.md) + +## Preparation + +* [Preparation](labs/00-setup/README.md) ## Contributing diff --git a/SUPPORT.md b/SUPPORT.md index 291d4d4..c457354 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -1,13 +1,3 @@ -# TODO: The maintainer of this repo has not yet edited this file - -**REPO OWNER**: Do you want Customer Service & Support (CSS) support for this product/project? - -- **No CSS support:** Fill out this template with information about how to file issues and get help. -- **Yes CSS support:** Fill out an intake form at [aka.ms/onboardsupport](https://aka.ms/onboardsupport). CSS will work with/help you to determine next steps. -- **Not sure?** Fill out an intake as though the answer were "Yes". CSS will help you decide. - -*Then remove this first heading from this SUPPORT.MD file before publishing your repo.* - # Support ## How to file issues and get help diff --git a/docs/next_steps.md b/docs/next_steps.md new file mode 100644 index 0000000..3babe3d --- /dev/null +++ b/docs/next_steps.md @@ -0,0 +1,33 @@ +# Additional Links + +For those eager to learn more, here are some additional links and deeper dive workshops: + +## Additional Learning Resources + +* Details on Azure OpenAI: + * :bulb: [Azure OpenAI Service](https://learn.microsoft.com/en-us/azure/cognitive-services/openai/) + * :bulb: [Azure OpenAI Models](https://learn.microsoft.com/en-us/azure/cognitive-services/openai/concepts/models) + * :bulb: [Data, Privacy & Security for Azure OpenAI](https://learn.microsoft.com/en-us/legal/cognitive-services/openai/data-privacy) +* Going Deeper with Prompts: + * :bulb: [Azure OpenAI in a Day Workshop](https://github.com/microsoft/azure-openai-in-a-day-workshop/) +* Going Deeper with AI Orchestration: + * :bulb: [Semantic Kernel Docs](https://learn.microsoft.com/en-us/semantic-kernel/) + * :bulb: [Langchain Docs](https://python.langchain.com/docs/get_started/introduction.html) + +## Use Case Scenarios + +* :muscle: [Azure OpenAI Samples - Getting Started](https://github.com/Azure-Samples/openai) +* :muscle: [MS PodcastCopilot (Build 2023)](https://github.com/microsoft/PodcastCopilot) +* :muscle: [Question and Answer](https://github.com/ruoccofabrizio/azure-open-ai-embeddings-qna) +* :muscle: [Contact Center](https://aka.ms/customerserviceinsights) +* :muscle: [Revolutionize your Enterprise Data with ChatGPT](https://techcommunity.microsoft.com/t5/ai-applied-ai-blog/revolutionize-your-enterprise-data-with-chatgpt-next-gen-apps-w/ba-p/3762087) +* :muscle: [Smart .NET Chat App with Caching](https://devblogs.microsoft.com/dotnet/transform-business-smart-dotnet-apps-azure-chatgpt/) +* :bulb: [Semantic Search with Azure Cognitive Search](https://learn.microsoft.com/en-us/azure/search/semantic-search-overview) +* :muscle: [Vector Search & AI Assistance w/Azure Cosmos DB](https://github.com/AzureCosmosDB/VectorSearchAiAssistant) + +## Deep Dive Workshops + +* Deep Dive on Prompt Engineering: + * :bulb: [Azure OpenAI in a Day Workshop](https://github.com/microsoft/azure-openai-in-a-day-workshop/) +* Deep Dive on Intelligent Apps: + * :muscle: [Intelligent Apps Workshop](https://github.com/Azure/intelligent-app-workshop) diff --git a/docs/prompt_writing_help.md b/docs/prompt_writing_help.md new file mode 100644 index 0000000..869770c --- /dev/null +++ b/docs/prompt_writing_help.md @@ -0,0 +1,199 @@ +# Writing good prompts for OpenAI GPT-3 + +Here are a few tips that will help you to write good prompts with OpenAI. +All examples use `text-davinci-002` as the model and use a temperature of `0.7`. + +## Being descriptive + +Just like when telling somebody else what to do, GPT-3 heavily benefits if we tell it exactly what we want from it. + +:arrow_forward: **Prompt:** +> Write an article about spring cleaning. + +:repeat: **Completion (shortened):** +> After a long, cold winter, there’s nothing like the feeling of springtime in the air. And with that comes the urge to spring clean our homes! Whether you’re a neat freak or a bit of a messy person, there’s no denying that a good spring clean can make your home feel fresh and new again. +> +> Here are a few tips to help you get started on your spring cleaning: +> +> 1. Make a plan. Decide what areas of your home you want to focus on and make a list of all the tasks you need to do. This will help you stay organized and on track. +> ... +> With these tips, your spring cleaning will be a breeze! + +The article looks good, but maybe we just want to have 3 takeaways: + +:arrow_forward: **Prompt:** +> Write an short article about spring cleaning. The article should have 3 bullet points as the main talking points and a short intro and summary. + +:repeat: **Completion:** +> It's that time of year again! Time to break out the cleaning supplies and get to work. Spring cleaning is a great way to freshen up your home and get rid of all the dust and cobwebs that have accumulated over the winter. Here are a few tips to help you get the most out of your spring cleaning: +> +> -Start from the top and work your way down. Dust and cobwebs tend to collect on ceilings, so start there and work your way down to the floors. +> +> -Don't forget the nooks and crannies. Spring cleaning is a great opportunity to get into all those hard-to-reach places and give them a good cleaning. +> +> -Make it a family affair. Spring cleaning is a great way to get the whole family involved in cleaning up the house. Assign tasks to everyone and make it a fun activity. +> +> With these tips, your spring cleaning will be a breeze! + +## Output formats for completions + +Let's say we want the article as markdown: + +:arrow_forward: **Prompt:** +> Write an short article about spring cleaning. The article should have 3 bullet points as the main talking points and a short intro and summary. Write the article formatted as markdown with proper H1 and H2 headers. + +:repeat: **Completion:** +> ``` +> # Spring Cleaning +> +> It's that time of year again! Time to open up the windows, let in some fresh air, and deep clean our homes. Spring cleaning is a great way to get rid of the stuff we don't need and make our living spaces more inviting. Here are a few tips to help you get started: +> +> * Start with a plan: make a list of the rooms you want to tackle and what needs to be done in each. +> +> * Set some realistic goals: you don't have to do everything in one day, or even one weekend. Break your plan down into smaller chunks and take your time. +> +> * Get everyone involved: enlist the help of family and friends to make the job go faster. +> +> With a little planning and some elbow grease, your home will be sparkling in no time! +> ``` + +Let's take a different example: + +:arrow_forward: **Prompt:** +> For the companies Microsoft, UBS, FedEx, classify each company into its industry and also write their yearly revenue. + +:repeat: **Completion:** +> ``` +> Microsoft: Technology; $127.8 billion +> UBS: Banking; $51.2 billion +> FedEx: Courier services; $65.5 billion +> ``` + +Now, we can manually "force" a more machine readable format: + +:arrow_forward: **Prompt:** +> For the companies Microsoft, UBS, FedEx, classify each company into its industry and also write their yearly revenue. Write the results as COMPANY:INDUSTRY:REVENUE. + +:repeat: **Completion:** +> ``` +> Microsoft:Technology:$127.8 billion +> UBS:Banking:$67.7 billion +> FedEx:Transportation:$65.5 billion +> ``` + +Or we can directly ask to generate a csv: + +:arrow_forward: **Prompt:** +> For the companies Microsoft, UBS, FedEx, classify each company into its industry and also write their yearly revenue. Give the results as a CSV. Use COMPANY, INDUSTRY and REVENUE as headers. + +:repeat: **Completion:** +> ``` +> COMPANY,INDUSTRY,REVENUE +> Microsoft,Software,118640 +> UBS,Banking,30549 +> FedEx,Transportation,65.45 +> ``` + +Here, the revenue seems to look off, so let's ask it to format it: + +:arrow_forward: **Prompt:** +> For the companies Microsoft, UBS, FedEx, classify each company into its industry and also write their yearly revenue. Give the results as a CSV. Use COMPANY, INDUSTRY and REVENUE as headers and make sure revenue is printed as $x.xxbn. + + +:repeat: **Completion:** +> ``` +> COMPANY,INDUSTRY,REVENUE +> Microsoft,Technology,$127.8bn +> UBS,Banking,$51.8bn +> FedEx,Logistics,$69.0bn +> ``` + +As we notice, the revenue numbers differ between calls. This is mostly because GPT-3 is not deterministic and we should try specifying the year. However, it might still remain that the numbers are incorrect. + +## Operating on a "payload" + +Often, we want to extract various data points from a text "payload". Here, it helps to tell GPT-3 where the text starts, by explicitly naming it (e.g., "book chapter"): + +:arrow_forward: **Prompt:** +> Extract all the names of all the persons who are mentioned in the book chapter below. +> +> Book chapter: +> Peter went into the forest. Marry spend her day at the lake. +> +> Persons: + +:repeat: **Completion:** +> Peter, Marry + +In this case, GPT-3 also does better when you end the prompt with "Persons:", so it knows what you expect. + +## Dealing with non-English text + +Sometimes we have non-English text that we want to process. In many cases, OpenAI is pretty good at understanding that text, but it can struggle when the prompt is also written in non-English. Therefore, it often works better to the have the "payload" text in the non-English language, while keeping the prompt in English. OpenAI often answers in English: + +:arrow_forward: **Prompt:** +> Summarize what things I did buy in the following sentence. +> Give the results as a bullet point list and just list the items. +> +> Sentence: Ich ging in den Supermarkt und kaufte Äpfel, Karotten und Pasta. +> Items: + +:repeat: **Completion:** +> -Apples +> -Carrots +> -Pasta + +However, running the same prompt again might give you a German answer. + +:repeat: **Completion (re-generated):** +> - Äpfel +> - Karotten +> - Pasta + +So in order to get an English completion, we can ask for an English-only answer: + +:arrow_forward: **Prompt:** +> Summarize what things I did buy in the following sentence. +> Give the results as a bullet point list and just list the items. Make sure to answer only in English. +> +> Sentence: Ich ging in den Supermarkt und kaufte Äpfel, Karotten und Pasta. +> Items: + +:repeat: **Completion:** +> -Apples +> -Carrots +> -Pasta + +Starting with `text-davinci-003`, GPT-3 is getting better at also answering in your preferred non-English language. Hence specifying that you want an, e.g. German response, might then give consistent results. However, this does not work reliably with `text-davinci-002`. + +## Avoiding false information + +In some cases, we might want to answer certain questions given some text. If you ask a question where the answer is within the text, OpenAI does a good job: + +:arrow_forward: **Prompt:** +> The insurance covers the driver and any family members. +> +> Does the insurance cover my wife? + +:repeat: **Completion:** +> Yes, the insurance covers your wife and any other family members. + +However, when you ask a question that can't be answered from the text, OpenAI starts coming up with its own thoughts: + +:arrow_forward: **Prompt:** +> The insurance covers the driver and any family members. +> +> Am I also insured when driving outside of Europe? + +:repeat: **Completion:** +> No, the insurance does not cover driving outside of Europe. If you plan to drive outside of Europe, you will need to purchase additional insurance coverage. + +In order to avoid such a scenario, it helps to tell OpenAI how it should behave if the answer is not in the text: + +**Insurance policy:** +> The insurance covers the driver and any family members. +> +> Am I also insured when driving outside of Europe? If the information is not present in the policy, then write "Answer not found in text!". + +:repeat: **Completion:** +Answer not found in text! \ No newline at end of file diff --git a/labs/00-setup/README.md b/labs/00-setup/README.md new file mode 100644 index 0000000..60c3d90 --- /dev/null +++ b/labs/00-setup/README.md @@ -0,0 +1,101 @@ +# Setup for the labs + +Here's a detailed walkthrough of what you need to get started with the labs. + +## OpenAI Model Deployments + +During these labs, we'll make use of a *Completions* model and an *Embeddings* model, so you'll need access to at least one of each of these. Grant the participants access to Azure OpenAI Service service be assigning the `Cognitive Service OpenAI user`. If the participant is a `Cognitive Service OpenAI contributor`, they can create the following deployments themselves. + +Someone may have already set these up for you to use, however if you need to deploy your own you can follow these instructions. + +1. Check if you already have an Azure OpenAI service deployed. Go to the Azure Portal and in the top search bar, enter `openai`. You'll then see **Azure OpenAI** listed under **Services**. Click on **Azure OpenAI** to see all deployed services. + +![Alt text](images/search-openai.png) + +On the next page, you should see a list of deployed services. If you have one and are able to access it, click on it. Otherwise, click the **+ Create** button at the top of the page to create a new Azure OpenAI service. + +![Alt text](images/openai-service-list.png) + +2. With a new or existing instance of Azure OpenAI deployed, click on the instance. On the main **Overview** page, you will see a **Get Started** section. Click on the **Develop** link. + +![Alt text](images/get-started.png) + +On the **Develop** page you will see values for **Key 1**, **Key 2**, **Location / Region** and **Endpoint**. You will need the **Key 1** and **Endpoint** details later on. + +3. Back at the **Overview** page in the **Get Started** section, click on **Explore**. This will launch the **Azure AI Studio**. Once in Azure AI Studio, click on the **Deployments** link on the left hand side. + +![Alt text](images/deployment-link.png) + +4. In the deployments section, we can make sure that we have one of each of the required models available. + +![Alt text](images/deployments.png) + +You can see above that we have a *completions* model `gpt-35-turbo` and an *embeddings* model `text-embedding-ada-002`. If you have both of these, then you're good to go. If not, click on the **+ Create new deployment** link and follow the steps to create two deployments. Ensure that one model deployment uses `text-embedding-ada-002` and the other uses a completions model such as `gpt-35-turbo`. + +Make a note of both the deployment name and the model name for each of the two deployments. + +5. Finally, we need to update a configuration file in this repo so that the labs are able to make use of your Azure OpenAI service. In the root of this repository, you will see a file named `env.example`. Make a copy of this file in the same location (the root of the repository) and rename the file to `.env` (don't forget the period at the beginning of the filename!) + +Here's a detailed list of what you need to enter into the `.env` file and where to find the information you need to supply. + +The first item `OPENAI_API_TYPE` is always set to `azure`. + +``` +OPENAI_API_TYPE = "azure" +``` + +The `OPENAI_API_KEY` is the **Key 1** value you found on the **Develop** tab of the **Overview** page for the **Azure OpenAI Service** in the Azure portal. + +![Alt text](images/key-1-value.png) + +``` +OPENAI_API_KEY = "5a8d1ea15ba00f1a833ab1ff245cdb0a" +``` + +The `OPENAI_API_BASE` is the **Endpoint** value you found on the **Develop** tab of the **Overview** page for the **Azure OpenAI Service** in the Azure portal. + +![Alt text](images/endpoint.png) + +It will look similar to the below, ending with `.openai.azure.com`. + +``` +OPENAI_API_BASE = "https://my-openaiservice.openai.azure.com/" +``` + +The `OPENAI_API_VERSION` is used for the Azure OpenAI API to determine which version of the API to use. The value below should be fine, but you can view available versions of the API at the following link: https://learn.microsoft.com/en-us/azure/cognitive-services/openai/reference#rest-api-versioning + +``` +OPENAI_API_VERSION = "2023-03-15-preview" +``` + +The next sections all relate to the models you have deployed in the Azure OpenAI service. + +First is `OPENAI_COMPLETION_MODEL`. This is the name of the **completions model**. It's likely to be `gpt-35-turbo`, but if you're using a different completions model, provide the name of the model here. + +Note for this value, it's the name of the **model**, NOT the name of the **deployment**. + +![Alt text](images/model-name.png) + +``` +OPENAI_COMPLETION_MODEL = "gpt-35-turbo" +``` + +The next two items are the **deployments** you have created using the Azure OpenAI service. First is the name of the deployment for the completions model and can be found in the **Deployment name** column of the **Deployments** page in Azure AI Studio. + +![Alt text](images/completion-deployment.png) + +``` +AZURE_OPENAI_COMPLETION_DEPLOYMENT_NAME = "gpt35turbo" +``` + +The final value is the name of the deployment for the embeddings model and can be found in the **Deployment name** column of the **Deployments** page in Azure AI Studio. + +![Alt text](images/embedding-deployment.png) + +``` +AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME = "embedding" +``` + +6. With all of the above updates to the `.env` file made, make sure you save the file and then you are ready to start the labs. + +**NOTE**: The `.gitignore` file in this repo is configured to ignore the `.env` file, so the secrets such as the API key will not be uploaded to a public repo. \ No newline at end of file diff --git a/labs/00-setup/images/completion-deployment.png b/labs/00-setup/images/completion-deployment.png new file mode 100644 index 0000000000000000000000000000000000000000..0dccabea6150ea4f1f7118511f5f640edd3a3d84 GIT binary patch literal 71825 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%0AkCmd$KI8elrrIALwd{zPC|AmqSJDPdEyq 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 literal 0 HcmV?d00001 diff --git a/labs/00-setup/images/deployments.png b/labs/00-setup/images/deployments.png new file mode 100644 index 0000000000000000000000000000000000000000..f92499476d5acf48bff80cbaa4a2e843acda77f6 GIT binary patch literal 67433 zcmeFZ^;2BW_63S-@ZcU2+$FdNcXtLtg1ftGuq3#E ztKJ{*ewaEl({s+*r@Qy=z1Lbj5z2~EXedM|P*6~4GSZ(^p`c**p`f4zkq{u?SoGnn zKn~DOs#0Q5mE$CbkPn}}YRi}^C_vFe-XlRlhgm?u{rL&xMFe?4PS1vhf`uHR|9qDX z^Y2#J{cPBOzlRq5^TTQ9Q)MV95h$5YqU!F@CkF694GA3bCAfV40`>TKTe`zURaN+I zsBSSC6|t^RjJIqeM9>!R;gPZ6^4r?PB|zM-J|~+iSBk55XQ*HHp3nGep4WdTXZ#jK zhLL~&9tjC1(4T_h9|wm}kscm79c(-}IA~E3Ow4~ALi~~TdyxKmZlDMW6-AE+iI)F+ zmVaFMUuT5dGYkClp8sm>n)v8kM^r4OAT>_@|kZd4?c5dmT6T@bFX{jOm#)Rq`xP#cDhSQ1<9RJU&zA6eHzX1xRmo4B{K(k>o`L0 zd74feCv>&T;HcgJ?^J@q;%3Ad@p)AC$zxPX+i*e@5FBI&C%g`34Aa~KJJy{8uxsd> z6{Zl2-4g130|%0`5+19j2@+>YcUxFgi8cppA4`M}p9_kDrU@Uugh~&uqxX|%*Ychr zU*emjURn9QmeKF@@)25Wf$$ILg~QUu4IXJ|hZ+2ykM(+=b|0>;H4EyU&z3rahcD$Y zR~E=xB|&r2Qs5ctJgI4#JgwovLe<~z`~@91?H+Kjy~3~WgrWI7rwsWs1;753uIYXa zxbnN&61lGbrAr$dgCOXz)u-NQty8LAg56*-6WZ~7t4GA|%GiFt63H>kBXQ7x&PbL4=Sm6;@dc_ zV&#B`JCM>O=eAa}y)mEj!FMiQs!DuA_kgoDkWd4y{p<7Hj6XDN{PK57@mYSSE;f^a z;`82b2KXMCZDfm zR-@DzUVS)k_Zqc&an{Yhe%Qf5^7lRLx$)D^IVj%=nm%uhY}4aw^DxeFJoBPcyX=d9 z$ov$4+wm#?CPF+htFXYU9p0trnx#(ufO=m-BH%E1)i|;D<#R}J0!0$p7Y~IIGfg*v z-lG<=aj$4VZ6EUNvryxB=+{q4swJm^KVFII(axSOGyL+{ z`LwdmUBjYp!py?A?Zo-u2FUqR!e~j^TT-hse2qAskJ07~ zT;sA>l1Dy>qfxlNJX$900o|T1C%mq;d(CY2h8=En2OXhwKS#23ux{zLxiX2uqT_hn z|4QfO@Od~a3T*=;I8*>SGkqUVxj%GGWbh}2Vvs9B=24MZrbp;}g&uzW{xihS3u8$6 ziBzJTYX!}g;P~9Fx><@sMdEZxOaDi36~VL@r|=ricRnqwwk|5~YlC#` zG*RPu2(}W#N34B%A!5}1FQSwBJ%McT={#NxkJ%ZbDB|}aKi{HEe$G0{sef*o(N0WL zy>gj4(}UsKiMIxU)Ey|J5{Lx6g%!3r>a&?Zx7!Y_X}b-wE$_;seh4Fh6u&5tJCY*} zkI)R9XnD{-O&JdJ*dvau`Th#0ehW_xcb{s4q1;}DLC^3dIwR%{c>Hork^TlOBs-2W z8>^Wyr6?2R0#EgF0Dt z5i8k(F|FRJyG6RNjdl=LCjPKJ!>`RvNx+@OSY?xK+^Jyd@c>LHm1k`jBU?I#3a_mL zO(`6`xYQMqy$e!*mr%2x|GCnugc>BCa_@B=>{N7}`zR#y6DiKyyedaQ*!6_qbgf;_ zqRDJL-Qp9*%>4quFXOD^(N;E&8cpzS#fj5up0Rh;8#aebjJbX;`x`EU>R2k5#a3TL zJhK5`sX^OEA4mupMl;>jYqBjEh$b#Gdn(gypx+%!OZsk_CmDUP)gO61%uuDA`zaz` z@-+aFEPJj@i{aG}917U^VB8Z-FB~g)OJF?Fj`Kk&GhNv>xw}X<;TxvmKPHHn5hBR= z#dX`GwA;y7LGx>YFW}wrYA{ocsSc86yUn-4{QUAS@&lcAX*IhCBN)??nzuf+4^cG@ zc$a#E7E*_Go`eb5=LczE_t@L^*-~X$qKQMRKz|J0@+}3hMCZZ+q8g1xEehNQp|!%Z zLft6vPCyK`E$k~-8&eySRgw_r`S?NIEV7#@sPG({m}dy75qpP}lWn())r6PMCruUbAc>f3=5!(2O4r8dpb>|#c| ztKgkzzvPsJJ*8}R44HlF54Vr$!>OIs_gaBAbXb%_>kyO%8e!)PN|~6GPP528{PC8fi1~X(KN^*IDlYgv`#np+9(Z zKC0kz_*x0LPE01#Y<$WQ#lW{&X;w+87QYvCJ0poE;r$6&P_lh7tK+B@O6zZ=F-%V| zN4Z4ZU$$d~4<>|PXRBs!rVHepZ%=gS0Uh3xk3T=i(MNL`ipim$@*q)PRp>V4ww<*$ z+{dv1gmy#y2-&}6&z7h$dXLd8pZ%=;LTg*^@ z6~d_SR=*qJ?`HwQ|3~Fy>j%dQsv6a7^$0!74GRSo?v;n1=(8uNu$I+M+iwsfZEbT) zTH}N^dSC9L&i=q4hfNsw#rP_d8GL?diqw0kEus&k=~=qk)-XH#<$XsdK^bh3{L9R= zlk{8BduyF})APmLm5U2R>)nJIMy-Tk)+F{0y&*G$iQVmI9 zA^X5<`t-WvR%!?H*%x?X2m0pQD%ZRedHwA3~FGF_udi{s<> z1N8WIzXo7>H9rc6NhhX(YBUJLuDWOa#$)7$<;h?zCd`zoy}9u!VhBD@1TK&iZCmuLg*>d2yz_2+Q1^2koF$zd01Y3SBm6Qaz|%!QbHREOt;%TZ*mdPh!zpTLW#rb zL}Af-46RR;loA=6g{nJAIkpP6$1gvy+C&JVp_6%swi= zf`7RcJBTfJ+HZ;_G(FrLGmL>pSUO28Iky1+vCwP?M|ByLr<@rwbFB_K`H_gBrS!;~ zek}kCo>8WW#JwpX`w}n3u_ECy{b>mO{tL(GdQO8+@Va>AwAYAnz)Hyu6QRtY-uLI- z{klGi_^o;;^W6;ethCx)7+hn*a~-@jQ63(C4v=6NGOuDr*w-6DnUkAd#Y6Frqp9y? z-h+_{jO<#|V4SeYw*CmUJt^{kdlaRgp z_%5p}#<}}DOKqXyKB^X!L4v~Ev-v~~n4Ceya~BCWoCnqH8)jo&-FM*Cb%oDco-x6G z17wc|x}K9Ke8YTg(_y`K7$8m1>UT5D`twEntxx9GU7uKVv(uega_aYSD~i7h!7=j% z@}kEDrF^U(TSP^_az+{i_<{@ARirv7;rQem)6Dd>p?qTc+4(vRa6-S0)}^sp%9f-AS;ka=$?4ibsTF0tdpQ z&feM^J?tp*OAXm?KG1Ux zvi>%lr3|ZuF?~)KZj!**ZU_FNNtx5_U#-O=2NJ8)iyEy@mPhB7z-ho#%)COto<@(&L2F-l$BA z(|+N220ufc!>M7ZI$Z(NV8lMAzQgB7eh@G(Bd9V60Zr9wz~PAhNgP(t{oH8#ldHR= zP#(UXa6e#>zo27^ad z4re-$iKHMxm=)4%=)y0yrh>&Ix`xsH1ZQD15$@4HqNIKQyTOXa<})-OACXh1Mar`% z1^gz*=hSKzl2pg!S`%U3+uUsq3&UW$pILk^vZw2zIvpwY2l^LV{d4Fa3fi(!m#mB zQAaYzN}jf7W>H-YG$-s>1PFs^o?J6L^mp;8?-!|Faf=!f@%fH?eUy#eBDU>%P!1=K zzJ3daZ^WK`Im!;mk)6B*!RV#N7RLo-ZdN6y(5<2D@5v88`w>Ie*^^cNY_wU{v^dPD z2W`qqZDIWv#A{0fXD>|>tVL36D#fiW=N*XqquTVN+Odq(?Alcmy$3@wCgS+27!ePZ zJkIoh&_y}0Ia|qo!S>-OUT7t!E2K>axwLna$N;`DCNfSL6~C)17gk*pTDe&42Z?QK z!4jI=D0UVFCL+?tId^iqcwCI&iP(P*SYX#_U>7kE_txhnSHnBE%L}87qam@ng}*}+ zUiN%o{yx5+XAJcm89!oAKwnx`Kt*!n`f$cFtM$d!Bc5u@e=wF@D@&b0HDB5}_eb@A zUE80c3yBka_WdEAaJ0{%IZb(#5`tNe8Z)q={s)TsFYwS_kIJ7#Mz9Z%ed+aa-o{{& zXB>#M@1PI;6Zl`K(f^^^m@ft=fhB)$qd*D{hM?G#-5)alGei70(jIXB2R^@NOCb0k z?cXsmHwE4|_tpLV2AIBZpLj5Y3$gS5M>{qIVh@8$a{nLTeorjKyv;%N&u{;0O8lRJ zVqzk}SKl|VC;ri;|9X0ndn|}~Psy@T|D#t>cllBz`3qq9UTW(qZ=%K=R>)JmB<;lskO zPvUKEpj^`BCLH-9amxF3pa(~WfCqcLQKK&w{$adW3yV@Uo(n` zLG}hYj!G(K64d#s2+7pY>5{l@SCqjb_aYRSs@nV$MM_zk;Kg6d2Q}q)2je<9+x|ue%)fSsho5P z?m!+6mCWX&p$hjtbJt;n0^$Ind!claA&doy01}^=35SAkZZ2R@A}!^4B2At;vn;h8IZf=4fv28B+AjY9cW5 zn9C-!QVL!UQE}duIXooj|0Q-c=V69(jI~I%s20e|F7{n@_&i=)xd=M$uyR=~1@Dc5 zRgfznPpkq%$=QU8H(I30q(=Z_qAcRu?7sQV%<*tkJfw z1uSQ!AxsJB^Ti;!EGwimOTjMOBsT@KbY5foJY7gho`<3l5#0$h8GczgPE#vVoU-eD zE+n&>Ew<<@Sgq1;mo+dvkT3InN%>hli5B>a$DV-8F~1d^j8obMQ97OHvk&~z{vASx z9A^9&oN*`4Hk2q~ATJ&bnMZ!MEY2=;D8K6oD z>*_ABX2Tfnyg9)Cbvn`@0f7wcd%qb*=l25RykOuqWjsHG`j?<%U-S-hzlXQJD}}>M z^WFs10uH`|m{7#oi@7ElODMjsl>P~aMj>~zSBmzPN8h&R{-V)^+qlR5!=hrw$Be`( zZ5g>FrlJQlBHB(&ZDBU#nMSM?Z)BWvwmc~YwX^F(j>%$`*SrMbD%H+dp_kz5BC_k7 zW`}y4<&Q3aANVBKkNuJOQtYr{A^!6n#{wn(+^?c#Q3B%`+*z9TYf|3#Il4yvSBo`( zTIx0o!8sr=lU|3|?siF0CVQaX#r1BBDve3hU zI290#kcc$s&Sr8MUsC_&muf1vAN1}>7Qmw$rZ=6}X;!d)jl*oL@NTh3RPDGZOA~b7 z;SEMA3$)`gh$o(hnJHA#3WM?;ylJ{G`Y_w>wc~{BtnY~X&&6t^Ge#sGbsvhyrqvl? zd@=G(-~h3(@+qH7v2sq&5!vf-B7+ob1%g5bpM*ihs}cJvgi}z9NqhN2K^)B;+w{IA z7Q2H$))n3F1pQc@i?L~QxX6UOd2ksF(~Ux-B|_N04o~v8dzGI z{uvM4R){_NDI*dL%dLITD2&a;=YC|wuoORdl()(+is?MYR)*2fzvxgbCzpN+8pUs^TTtvK0bzQyvf0>x6%r({`QD~MoeV75sAObZWD$X z)q5D9m6qy#WAuP%jC+_;0)={+Dw{-KfQNL=5$uv&7Bm{RMkzcQ74%(6AdPJ_ld8?J zS2%fJk4`R;G5)a|G01SgvxIkW1ZPkQuEj&pD3%{-8NbyHR5-fa-V@&Tmssuw1A|4J zxLuvk6aBPUV?vKO=_t+$pVF{Y)jqG*UiXNoz>Y34lE|d@-6^qLCouCyJoHUdN5R<# z{T^$wu$q8cvx%Ha*H`vBOw?%M;ehsaT39^7Zx^{etu9s;Y#{zH8D2cZYArH21-Ix_ zuG3s9MuD#Qb$JM-#7Y*4@3+#t!2QdvwU@*&jSF51cZSjL{>lftBFekVrw*wK4GR+y8A&q|~J^}pb0X+EQ`{Nl_C%?w6*e?c* zzoZ(;X8OOT)2ieSAwWH3b6O>jBry|KsS071>u{6Uu9;VGkl}n#{NnO4(`Bu`rOnlR zu{Z~NyvF@}aK7T26*Oj8Z4}_>8#p#=Y-uO8^l9~^5W}RGzicDMEn*RFRn~94IfQa_ zKd!E%1?TtY?nva#{FC2xGr=I5X}5JBIW=mf!mIrW2Ah}Ts`i1f^@`jzpNC)$-UzwB zn7@n=z=JyuVREF%eF+?ziR;H~mg?F3M=YmAcH#X2l zO_aED==rJSq>+{I@qM3@4^%4e=)_YC2gw6M56$psaPN|RGO77RZh!rEB@0B+@TSMx z7RNW+o#`!(L^VwM1UWU_hJEK_hcj5oJRe|3LLn5T8feYu4a;(qRJyAj@H_F}92gVs zvp!F!H@Fr%obs(wD(8=LA6sv;C-8pe_Dma9{nTV~qxlp&lB4&l9=T(vQVJy_=VGe; zIiaHJpxNLF()yNfn-9%Ets`I;F z+{NA-9%C$>%AFlP@%-pty*kv2va8+A?XS}ICo7e*gcMp9%Cv-kb|$++k3b=HWphEY zlPMcny&mLXovov8E;pHzerSCLl&=7sIc*EB2ywJSzG4=y+*MzC(*^A5}sn!-QgcSTkt|ojXxXqHR!c+AAiT|S{-bLJ})roBCsHA zw3BYu*+8TjDqi`q=Q$RnOHEo?2toESy(c0=#}Kkn^l+vq_AUIa4nC7+l&?XjA!#r| zom+)M><%x2A@KTgr2b{$#yRmAIxC|W1{zP$9$WCXM_k1B1w0gqqVfv`eV~`pvHCra z`#Hs2iGiF?R=ZnP$B~+a@C%P#N)>Dor^WR2nvWOq{2L0AH(Iq{N{Zhz82`H_{C`mi z&8Jx54v;Jg2{HBS(Dwk@cv?|~w2x}*Bw6e(r4>e%z40u7fDZ62zb7Qqn3LJ(K_<=G z3^au3JZa}^~;mGvCozyoBRj9htb??`4~b3rrvvK zL}o~PtYe`Yg1$X>>SdZtg9k((t-mxUFzL)|J{fR#b{qZ_hQ1RiRku_z8c7_JWgX<6y!hRs z@=AO<@{@8_Aj0o2Gu##t4!ar(x0#e3C4e9c0Tu4$>!~$gK~BH1jp|K{G)I?UP+lkh4aFX_CN{;E$#9#ywmgRshk+*#fH%F!AAR zcpI_xo9zvalOcrR_KeHsD29-57^o1?=BeRBv+CI@a0GkC!-%2l-8OUBn?nBAxON}o z-}Hr0Nfru?f%8CxGFf-or;eZAL3A4uThF`g3@_v}*>yZb$%f(Wbm@@3=rQ{PtxBe1>C_Z8#X$lUS4!cR~^4Keo>n_CHm8A(cxQ2;P^#8RiKNs0( zoJ#kKr!wSa0dzzqGV7Ge5Ba_N#0~2Oz`z%)p}C+K=nse+4t^`nDO1>&-lOOC=iQ`!XO>*T0F%6Kc60g zq~LWY=KtM1XnqLL(^ETyS{y%EU-X-PD#nOs>HZLygu?4H0NG=}qh>%-Q)fW3bjCPM4;!{89OckXI@vL?}l zrZa-Id`i)AH{+VTZ4iaDFOGnbo5-YF3@F;q%7cb|m|5Xx$<@Z&>d?mnN868u$|kU!smK3{QFj< zWriddqzu{PVb%LM(x%+6mC5HAl2u4&;ic=SQ`GJpkbeS#&2r8FqXk6Lh(+!r5y%D zh%hOy-RtfF(or|{CWGjfbG7gpygs4$s4Q1La$*4dxVQMH1NxcD?tLW8`gb`|A1+d) zDu6f%Y)tyeOZ~7ysDn@4mHMV+F%=%Uyb1<}S8WhIo60I*!=XG0BTwp8&J|u(Rg<2t z3Cf7_!@D*C_p!~>p2hY^TVnPks*g(n34U8n!Zu+|zW7uEy$dJU~MTtA7b4-6@HfUj#^2a-73o5yoiN_j8bd;>EPvB*I1yx#S+9LwW4 z5rTm^omheWxfsvZc^nAT@t7DxCMYY+6eEoKIShlm5TXv7{_SK|0s)S$$C}nvj^`^Z zAjRwT!*LauPE-3in|VB)S7D}5A^I)LL*Lc@xP&JQ3mh~J++H=j{A%k>@o^-J>dO=S zLE8n+K?F@HpGWMi7m_o?$S79);M6KvL?-ZB8yqJn6G8&@CT}nNpfyhzLTJF}Q9r$(! z$K?^h5CkHb0l%+@Bm~zt z+Eq1%d=e($i~shPNfyFnY5FJ>%BK{6E|BH4U0JAi9V61M-6@jxxU%FoJj~5ly1-fL zgFMyY9GRd6G$5~a74|0J^u4P^Hmj=-%32;1sjw{|3u)Ue4Pm`cL3RNTKevFQ}iCuTKRGjd(8+=@PKHn6NXZGQHmWDv9dBMn37{52T zW;;neZff>elUNMCC4Pv;Z;b3wb(K7ifybS#h) z-IcZ8SlF9Gau7MTJ7w#8KZ5SY09uT;;OlffJi2bLbag`GE(h*m7#`}ZR_xXiN4gLc zb?CJnTNV417_`+8CvljL7RMpAw(cI&+f_Lo3A;SET%;MSIdAzsNS@+r<>L=8LUlL~ zr>S*1N8v(A)9}5uY$>AT{)D}Tq+zr8xavtSglv=3~_afr(tY?ocRcpg*Fn@_37Jf3em*T}^ zOs--j1%vnLn{k+vht$iJGa(uDnlu7P8AID=`p`nk{Kbe*AEMy%tTjbTz&H(MK(HwH z)bz>yM$dg7_T5;@)^}{Ti{72|rF{U8Ajy5J7?~iEK`%7Zqm_$m=Rs&(teTqiWk1VL zlc#=1Kx>;%BEuqZ@=csivM8*0bCq_DK0l5-1`vAs0$R(;*JvQh6E3Ht+bdfF6`#J7 z#i1QWX*M9?#2wl<{b+=UY(mkY%VsJ!TwvBz=-o&ALKvKoH>p{u zm?3tPQq<}ivEkL!`1MmCceooQe$2Kw?cDwpkU+7V%%*(i;r|S3-}_qB805Y>4KMu0 zjN^DbBeQ5viAxO}LSaj-{r1a5W)N4JlJeeY3NA+S>hnsKZiDPa`QERa<9Whve~t&7 zYaAtx^`JXWpQkCQQjpi#?-=#WV-3{mYG?DS(V5wN2dX*dbt3b zxm{lnp<#G848=pbsX|)ueLxd+{pQ`epVFMiqpQuF%V@G*;>To)_KSz((pb^^vsFXm zO*(g#2^R7P3nf0l!%;|ia(hGUPl_$g% zsVIWV%u$nfMT&##HpSXugjMeioOru;gV+W7@nTN9SZzC}H5a<>5~%eB^# zgiTRgtnG>2RvrpyO4T*5BHda*qU6Euqkq8I*_c5h4&${LA(9;pW@`@)JEoxQNMBtR z>)iBta5yiML71zP=;=fSTJvV$xvkF+0Iw)yCxxKo#+uUFR48j_iNUc<=|t_@JqOK) zr@D!E?RLXY5ig(O^mv_xo*H3?42E#N)aWYBt2-hdo#aPbZ}x$P7JL)oDH*bvjL{oh zM({EW)_s6j6pgk7`PDcW%Fqb(sz4w+7OiTtvcFadtUwETwLh+Q?U#tlCa(qNn^9e; zo0TS|EGP_J=uAum_n(*>?I_TusZgi}p^p&HEIh*^-+Fj?M25C~3P9bTK!m8Fh&N=> z&Y=i4+7AQx8mt&P@7;DUcSUq=C!%@npCAlqQI2>hoO=UJb=HhAG*wri<_1JL42`D^ zyV~XgnazbgUc1DH)gr}PyE2accN*{r*C4z6Xo%CD*$5~>_=xk9I?_3g;a?1Ep=n@K zh(<5q=La&3?9r}pt#ufIfH&tbp_hdt&?_4VBtUyYp7Ygg;8>P0OIK9cmbfPb0Z_Xe z!XFNHJTKMtr_q4U4{H5llX2M#>$U*_STq)?PTkf#_|H34^5WBOveE!fyzX-v{ey9t zT`Mh48k`V(5v^L8RJ+r+-E*z+G*+bK=LeYQhg+2iKJST4!MCwFFG7zeGhH(kdJJyy z@OQNY<^2D{Ey+i*KQ8krkwh_{meVyrb`@1VY0%xwxt^>Se&c76= zmWAYIV5XV5+fPF((1imthq2ZFoiYekz@EOzpv|?k1H*?1=^3#aF{{aTmA)%c_S@hT zjXwq_fPSLT@1V*3GS@u;zX!(LsmrbZa(5VCDGEjanO!U!jmmcnzZfG^y0il?Gt}o? z)F0nKgZ$f*d>Ws|1uTnvDG%@-6RgwZT5);YBuF>$G+{?L6T z0!o{izXKK*4sbqO55Nf+0JT+iW3H7k-1lT6FVE%&kM7I0W+_=7h^n3wdo6%hmRg1a zpTF$vp)FCmzwyBzu)KEIn2Hs8P`-GAsL|&LO7<}g1&+89-FMgZ$r%L*w@L41Vk76- zle0PrIHHSllI-6q|cjhyTQ)-5&Qa-#1QgM@Jwe2z^)N1QL;U zovA|pOZ3DI(z)1o$AxFyt=T`>%VZ-Yf1%$>dv#~yDX!{vk8b?tESg+)2u^O%x37!o zw;vSvS<$&cV&rs{-IDF;aRpF+RJCdobynQ2Ju~~x(!>UD18YKsO7pFWO)<~9_4Rth zZXO6eBpyrNAOr5XS&KZ`ZpUbK2D6#Ym+QRdNwJ9WXNVDa``zg`m3 zXVL+*c;p>Tvtem6l#L|XVG{H=&zfPkPuE_h>FK3 z4H5a96~X-x{Fmyte49=rB(q&R&(AVin=SvX28SldX$AqFHHeJxs&&%T11b$VCG{Gu zH7T>Z8T5-WA$VGMc&WF=yW#P}ospziGCyGOFtNP2>=pf5YXg=pqc9k<1qHo8 zDJwvEoTgN>fXm94ZMtS{1%in?hhH^AI5ds%(Udyvc7loUDw}23ct#y|h&02}bbW$5x%((^NsWhQ7>hi!ur)dD)Vvz5}- z2MayE%#m^(s91g#Y*+EloL?2E_cBeNB7R<m>~Rb0K`Dx=Y{-Y~ciOL$vLl z0U?22i~2fXGEn&Tz$C^7`^S8-j@kwNJ-!XI!NawBqdsqfp~qTgFgqpF-BW`od+4az#u$)GkP8$Ke+mlijXz~;fczAna zj-ENiF<_Ml>IL~j0t5pneUN+{P2*;X<-*!7(j!OB47`w3t_qB=`soD%wAl_5R*1?jhs`D@UI?~Tq6KHc76^5j2p%t6F@Ag7`OCW-V;FkBrmJOCGcH|Au zmY;YYRfRpAh}9-P5;?r4FzJ2lU#^DZn9$1Wu^Wn8@0d#U>of^kXx^S@(V3|i3Nljx zm48xIByhVsS;>A|bfMx`bs*iGYAIGH{(3rzcl(MwboF60atblW z4;~aEYq(n-IZ;A-;0s%eFu+%@G(@42vm{_A@hIx2l`vs5#h#*!yNbBJtrDLeUH%Wy?4XguI0h_tze znzYqVUIbBtOdrjay=7k1dwO{c!sHB(A?L3oSQg+p@S#ecy`;~@CV>>&*!47ofh;Tn z@Cx4TPe;K)tfTQVF7o!<3EY;`^(D83l|v&bbxrpOEaYEBKj9F4bcfDzzCQ+a&h{Y7 z$Bx0RbTKII#FO*CQVBhUhoTdfk20sRWx1T(mmi&+Jf*IC%;DcJvKZ%9BHt7?xs&Wh z{DLg%;Y=F!b*Zxu?L?m|7BuzgqVOQY@bK%p-@39_T1`>gmlD+@(xZDwRzn?svl&MI zaqGrO?R+X+2IuLI&yJI<7*g8ztl+~YB|y|a(wH5bEe)i?heFBwnrV`r+W9>ljOS~N znbJ9=M#MqXZ*03N<&yM3^=UJ65oV}D541H2k?j4R@gN+>m8DMt9H`qt2pB2={QK)T zrQ$18gJM1w>}>gLj8JrBS!Te?ljy`AqERWGf~6e!5YE5Q5SO)O@9n+cBogkZK`E1= zc+A?xqi_KVn>`_DW*c#tU{>hY0I|(prE0i^7-X2t4E_GLd<6-3Os{-XLS=o zT$<(%iv(~tRrlxAG(8rhrb}I3ZX92R%zX>aW(ws-!i1TSJ!7jE)dG=Gk!bL1BM?Dp zF^iGtW76tFN*&@6_|ed$3Xlx-5VCP%!>1y{d^5Mdv4;eX_TvpJ(PR}+HR~JOr~Q0n zm>O!~W+NEBSbU}!5}{np_-ekdAI#rRDpwEr2f*ex;9!ojZcyrn#gNYS^%1Q-k$eL< z@%X%AqWbZ>{}`0lRv${|&CR^=n(fSdZ?cX8k>v_Nw~XVxUA*ftWfP4HVFDr+yuogE`-K8!G+v$&nxY2u}NULPFpYFOw8oK|mA9WXb}PxdWC z#qX)3?yq}4bJZ9Sf%qrlkiLIDcdmzCa+YoS^6RH{ zj+@L_1tbBJ=(TNR6W*20;7d@|K5X_tE$iT_+yjSSOz%hQ5pOVYS2nxfNaPG53)K0yw*0SqrUw{ zt66X4Z1dZNsQ^zrl4(1uplHFiKdZd<(q+yY3g^3J-Q|Q?tf@U>u*vXcF%Us!;x}9tTX{0dVq?f|uK-X9Pc~r$3iwx( z9#9+1Yk%&)2_MF~5if$Ys7)Cv37wHf+D#5xRVNU|LBYx4vlat=^0oK)i6N~s*1V+` zjHVD)nY`Tx`8Sel2Z3yp?;Ad*qG5O4EcNgZTBSYp?KUCIbtoFKJ#mECg%z59&1VT1 zfH^cNVrO^$qOA6Tzbg!o)%7H4m>udSi`!190Y&)1FK_lUEHwoL($@g$mVEwT#o3WL zmTECe3P+>wR0j`VPMI!004ZgQI?4%a2aH{sgiNf4VAfP~xy&}`tgou`QaJo5lHqz7 z$xKHc7QSH=>NHxH^x&O3J>7$f0k6UBzUy28*hyDf}g&G+~Lz_4O{zsHR>kKEGVcDGEd?^>>#d z#hKN&m#iR~_q>a=lMeKf4)>EC{CAPQ7(y8vl@URHkCi=srTWt{Mr~&Ve7&w?o zbNZ;ETz`}GyS~HlIb0m8#swylM_XNFHR|z*Auk5Ai-o+kfyR4+Op`(rMT^*th~ue# zM%iOsH}pVAsvx$1>q9WRj|lc9W`?8t9|wwHM)-F%nJ#S2Eh_9^q1xa4d@Mw6Gk#Wv zg~<#NFP7k)vtq#HFj1llKYdl?pM7*>Tsbr84xZ3Z_Caan9?S4LzS1CQG9ra@o7@{q z6U0Ds=^dVU>efZD&g;e-%oFeno+pW9g6yQ%bWdObSx?)NMOHX?3Q9GwG+1%x#Ei@X zjrp-3xM^`G{XPqo4f5Q(Y;ju&%mYKp?CJ~ivf2kot9)fPU5z?pn5S_e|9Q};NGRmp zTq_S<75Eg7N_{-yzLv{qTY2qWuv-j7bYu=qvV8zV^FCpc=~aT!I%jD4|8w*7iILX zdy|rq5|ScHmvjuNh(U^Ui*)x4F|>%3N_RYhQ?hX=_GbsOW9~P{1#w z@JUhg<7G3(@E;d++TnwW(lZ1}PEddJbLk-ww z`&f{*8b&APa%6R#O}O;xsl6TRgzI49EwG8q$4?)zx2pobhEyC*@~*E2(|HHC^;L<| zVrX)tCBzXnDR7=Tyr!^ZcF~!PjlBt%H**TQ)}prXlNpFES~Pogwv~aN%Fkbmn|CyZ}$kHC;McL8QPnuInYgi`L`iCsFe#vQ_3o3W`$ODn-1!UUca`{1)tM+ zz>qn*#kTDUq0Y%dl^fN-iKFbCu%pu;I^Egi1qqG&0D%+IH&d>z)?gc)<>F?8X?VYG zDLV(~-I2Z1F-8{&+U)Xvlar)?#w?NZkg}K-p(9YDbLCfm8@k5I#;W(t`h+9oeDmTP z)Ra>1jd7&E`aCBbWc02M(*~pot!vOr2ex@TB2(#*pX7O+(Y$Ua36pIW!|mtQe%@VNErRE@;f=N&+z?E2&$F!WkJ)jW<}k10;&%}G|? zRV>Fme%+333laTl#xl;GuUhfUskXL6Jw-p!Z*ElCpe4slT*?X6WQP#7Jh7)`uw@eC zw$Ys~a5vuf4NpG0EXP1~cZl0CZYUVlZMVrgfvgPc_!B<(@Z?)GhiRbPpx(zhN}KD6 zf)4lf<9YY2pQQ$#qma$+s@Bmtm7VI=3uLD|O4&$l7)Dmg*x`xI$Yhu2&1C1&Sk7_~ zPpsxHz__x@Aj$*}%bM?Q>Lx66w;rm}GBjjQbi>oNMnH= zkQ>c=S6#!a>03UQZ0^<;7E1mJ(O>ENrCW_D-R!)#m0`n&5~p~cgw(=&foRQaCM?xf zDcubC^(MiWz+GSFul2vv;*=6sE}o2&&4LU253a`TFj3Ua-5D*^7$OqT4ljwyem&Rg z*Nv_Nhu=N&oO()(+P!D&?eo^UwPKE9A5_yyoN!Pr{CKVSLyuM_$?&&m?4q*r(RfRc zu5vB^X(tZiQQp;qF~pAg%iidEc1;$+d#UVGT- z)?Unbeo@HT*im16ytS!%v%`nnVYRLN+#5hNGH!B4;nmh5&(|mrT@M{R+&|dA`J!v& z?lhB=1DCA|6JY%G|Bc#|fybi!CFFHN~DKzn& z^tE*3dHp#a4=NF)fD}ENtER0#Gcdear!0%6y`+Kk_gN65d3kHBvM$Y?5~ll@vV>nC z!yhBO>byjXZw43_R?m0M>BCT8#&5Ic(u1oOjju^}7|sHb0atw0%^My2#W%SK2ag(H zoRF^@1&a?C=4$kkJG`mAc2c*(c)Rm?k3=Ib4A)PbJ>E?pdesU0iDm_c=_nt~w_Fa^ zo#RL$o=)b~pW4`;?NZdu(#P?O&GgYY<8U39$5L&oS%w)@86leJTap(`E)3nw&lqWk zop@4uUNiNCGbp)$RWxS#%^p_u&%DtZ`)_rX`S|TokMc9q*NPdQ7G0ruW*1sU5gx(j z5uA)mvq>LLgn4jf0d^$>IbrfLI?)l;yJ!y_2mTub-J7-=f?KG#^kqOezMbX#U=zQXb&*asn;s_ut3_tNp zhDzKrKe1!IomTViU-2~=`09}G4!TN=k#JrC;TvWjB9ZF-_HsUGl?p@j8Dz6Gl`DZ& z%P7rh&VshZnck(oZC3blp=5sc&5QVkPC6~zj3uW^=$G)vGwq^Pc~hX$lg9_HYbA~h z2LbQA|BZ^tc*{RA@g7Y0`wzVNp3eNO4zOT1$^};JdH;gFWMJ|DN(R;w`uR`P&0hi= zP_-S#B*i)ZQ?}Nr2cTY2bsEf%$^S*7{pZa=3=^k-WZ4R_F<23IuZHT>)qU|}gttg5 z8qU8wpI~vNPI&AOK>f;hHwcyR&+9;Km-R@^_D4ODDiwI@QS|zRRcEKrggbSiZyl(| z9aX>nTzKKAwTpzc$`+`#p@lzjmj~6dJopaaPGr zLi`|fL^y{it)5KB$jMvljh5a10hdwkb>CQcRv1A$Jgyz`TY8Y;;8Lz60nnI?hCd#E z`EX;trQZ7z>HvUCcyJ<^fz?35i__~|rRGX$+Zn#OMvpSymKXa48vSuW4Uu?BF92ZV zbbK}8>zuH%3%%{a?;p*VpTbvoS^BM>kztBt)^@0(8qLINcZa!oGaC}Gsai~Y6J7+0 zOWvgz9Wq_dS9yul*p5Eknr<uY0fmVsQGH6zAwn!r>w- zjEeWQgclW0ik6ek{JU!A$Y9*nr^6dgGm#fJe|z^f-5Ej_3Pn>)YxKko?ahmuZo0KR z1cv2BqUr=%x?ByG+}p*l`pH?9U&XVAAFV_Ve-%wzP)rw&Sn_qq_>l}iW@CGdo2ok# z1rZ+3(%=nhmiCn|0+R+!NVtujM87D9IEeI5cuF=IWuq~ z+k$xQ;v<5RsfWB24PbyWrb={?k;+IbxM~+?)O|Aw%YQz`^jDp)BjpPh(OlYHyru`N z<|1wI@6N8uY*tKXUq~Ij;i9^dPEJX$rC4n5$#=YGD8>Nl=;=BsClQ~In?N8Ecucle zg9(1Lizgz1%H5y_EuFRZ53&s^fZ}@InY|6{Jx&38p6#BD-3VHdEkJJ(X+Gds*U?Rf zN6BPd_*vmk&w77+U<&YTQk{l}MCU0xGX$>vNqAxU%$F@JK5-knl-T8pS^kr!zj$p@ zG&5}6I-1Jx4`aIo=|ESTy7I9^Fu{70p3f78stvRo@D11z3P{ux@W>yCh)LU_?_(Wb zJ+Je`7#2O|TJ?C}Uqs}3yVr*&Qs-^Z({kJ$l`$JNF6mhDMbh^c7VS~9wLJlU@*RHLl_Y}|m7c+=-;)I3T5I3G* zoj-ITwCVL{m@CUpE>brO*V{O#PSf+iEDI9pK@Mj| zv(pevc~^obt5ZY^Cn4oqMguVat3)bkrj*zPB>QDe5dnQjI#dxbNXwJzuy5WM9-3dD z4^{YHOO+<>i=;_y7-WJLy;c(J+ymRjQgG9SxQF+J}v4(MEq zf{IverhZ*4`KC)Dk6sF`@aR-NJM+AzUo!Ph5U+M9s~iD{qxMcSj-F5=&~fok~*wN7O;vNd{_jl%%;tEf-LmpZ|HzR_El>$W>p zX*E3`<2R0B3OgO^KmCZ<=&QF+6+cx>wy<2#GGgDqm?`U4ySqhM3LJ{P#(dXBa|~Ex zMxSi*%G{$-K(Swapc!CeJ=X^7^0h0n@T1RK>{X9V(KC(UQdr}kC(wg>>fn%&zF5w( zv6okXP!&1{xF77pThhr`l@)nix8DI53)8a?8=m?CJbw<*bp^f9g9YNT@|BM5vuV$< z%$FgL;uae`@=n${^BoPrnTn|EGxd$-Rs?X&+Q8E~3R-SFY|a^$z7GG%s-oJ81&1Ojv;&Tmd1U`JWqViR zo)O|62d}OnyBKO1&4-FLVoD=Ow_VGL{2$h>l06u@fTz;ddc2XEy`j}r0Vc)hpznsW z=P_~6N%Mg3`%7E2i9?{A^;bTNd?KYLMJU~SjLzkVkNk4&G_HjK{j-5q;D}dHeWu?JS@)!Fx}V(j*Z<ev5P zp?@>$@;8IZXz$$>Vm)t&7iNsLKe@|&Uq}|R9FeIxtg9csIqB!sVAM{B3)zjuG`M-m zAFD;uiD}RRutp>PVeBDL>K_lnTchZHvvxKO&+xuN%%Afva|)Qe$3rrmaw3|kfNFUG?td48F6NM&3fG^(6s zr+Xt4?HD(^EbLKe{DS7EmNoL&K68LKS~gNITxps0J8c;oahxwnBtVVkBL9*-f5)b! z_{rL7{-6gXj+Co|I_}Tad=tr4N;l~Qfk&RaOX4aR^?ghv;sD$iDFEX5EHIJJ^sWP} z0NEHy-jW9ZAY&SaTd=l(6-27|Xtc`fBS7zCrkrgPPqpx z(6<(hJtxQJLYmjWzX?pJ?$&Td-_sxapeG-glz10TmW7CHY};^_=_j~{_ygAe{_0g{ zQ_od={SFY$SEZ_S1kQunxqaXG&P^1=2xuv%sg!&&xe2iL!XrOPxf)lAb&M1qt26Qy zV&vyHby=HI*>;|r436xxDW1ALoh%qeBh~@l)h9!}IThUbP$gBw=WHiCWp!>)4>ku} zYQ2x+QU9H-QVNjeP2-Is_r-4cJJ(%Jko30YK)+j(AqdCU9^p`S{3Z`5+?%3r4BM~$ z!Am3f(&uG(<(_mgQ^P$ly0;*sCqd`q0!UVUI+jxti$jx* zaTybPLO?|kL#581o*D%H?kNSm(aw0YBIn=igTw+m;_Hk0N{#$-%D!isVkK_dQYCEH zAe~=V{5R9RG_Tg*8Z4)JED@DE{#wW;OD8=Zr2U)osS6+dZ>-iThV2kZzG}0+AFCd^ zp&Op!XLi&pF~uey~kYO!vMCETEp|TC{i|! z%2$4@Uv?6yxG>iH;_%ALv(h{c=W^2AZrrS=iK-zR+h`)c(fSB<%Z;IaTIUm}d%oz9 zh&too*x~P=VN4&-3*j^&mZK=fqYw!dWy}RjOkgWZ6vLyz->Pdw@nC%u&&;@gV{j)C zXF?_rc@}@EV+r2!C{3be8ynjsk4Bbf!m zGj#7lts)xjX79wpD4^Dok8E(hs{FPKpwJv}FyCfZ5qEhj8Jl6T6wP^D)ajK&|g33BYj za%w$z2Qmb;7QuENi~8JNS?n;}e3e3Ti*n9n+?y_Q$hcA;eDr$jJxMytk*>~p6jZJ5 z5McE3Z@*DlV|0C^#1pihk*Q&-K0a7%D1f4`p#C7&cPPt-(9juIH?rz1m-=M-) z91#!J{0^ejC>P7LA+JL)Rk9@Q;LX5>Z5QrF-N=dLJT>JCf81iw__VyPR_AmL`k(32 zCXJ71qQHQ2OK7JYg2?;WgsvCP{fG9=boRkC=P`9BfpFi$8^7DhNZ92-2_qjk1%Z!T ziyG->X}npc@Ag1YR|DP@GEEI`6PIg~#HBh_EMs7SEz|`j49z}yp&JfWM=b-(t)=YKwX~SlM9{Gz{AzamzleZcN@Yg8b z`4N1U0l~cSJ0xWYI);Ok3*&F1YE%m0BQBh<9&p(0*f4mh)NVfG>XF`9{%suV3J0Fe z{K!on-4$cnC}Re(v63a)3dsW>;kjD9L{gl-kO~|h`VGO>ASznS;&8RM30F%+Abag6 z{MFbkE~L^|?zB-Q`?Nj}k&cZJKaTuC=`v7|I8mT4pt3NF9xKtBx)R(Ovtn3@m7d`4 zrl}?-*?97`2(X*B=D{`esx*&4D?fQ!2gTq1JsCV2B{on|V%2!|c$o>|J#PbZ?XQbf zfE`tDjF&{6eCrRF*kIVQAz{Qd#oKv%5wYRg1Rff`nLmW}*l;=0D#)!%0v{*&LVG@L z9MltTmVePET&qTQ7>K!Vq12jW1XU{qW1*`RMY?;HVPC^m1qvvhAz)$CXU<-Q2S?nzfl?*qPxo#?>I|@ z8b=(p3Qn+K9J+tBWh7#SY&1Xlhf`$Wu@S%#L9e|s0dETRgN1r_V6(qNui0YE-x*;f zdDnh{qaURsiWHwCi0*kFeFcRG^?gRKy%)7CZ_AWjH_=~N6=cSa z{f&#$qTdotDYd@|{7vhGl2iZYENnT#mk&){?ewzLW$-yw(|B#@r*`wDSs_|45jK|@ z`O>KA=6WUC+SV>hsc4k7wea&Z(9wPl7(n2-#z^ZYl3sj<{Dty}6H9FF0m%{*U^Z^SV9r$GG|`b<4$#4`&5i zr%7?u|?x+PeG0C;~jZ>)T8!>$>3>iJEi%OVLzk)%m}A_bz*kX;3U-AQUNd} z5ct3gCrMo*)Rv!M(+(4r8pA%%}fR|k2WD@Aw)m=ZdXHY;egpXMT~83n&pwU1l_Exim*LJfq3vs3%P;Ve3ga~7 zaDrLT!%ohQzT$hdKSVxUz+yO`)i}t9cOyF3MBIJDHAn(P;VmeK)*;E~H@i8-trwH= z^E>Nb%_@h>D&}9<=s4uq0!%G=;If8X9K=E)F(1)i`61el$+$ zN6V6sWE|)2uTtff1=6=yn#uC>Y?ops!TPPnEUl%- zD*~i=_P#_dr~mW~!*$}f1U`RS%H5H}41;#UYWviNPD*)e+E&|*>AW=0KDuCC#R=XI zh*fn}T1DDXqqaqr=0N0dc;X*Bc!RRKQAMyBmIJ~>>Ha95Xt+JaoqsrS>qy_fPs~z1 zGlq7u11|{(#Q%&83Ff!`QOVr&66GgtlJHV!xK2&M9^q2vojmSdj znJtm`fqL}K>#oZQHfKzS%nf(=xLj}|6=nG5tDT~C-;O8F4ahwg^fYIB)d(>dy{wQ6 zZAwYF>=H7GWoU`ef9*PyRBOA`j_LUN?5hv|Op85B@n68(`)yMIB^7Iduh4-_ReZ+v zvrvb9m5|zaB|FP*Vu9H7dT;SOLmy)N&j>%H--h4dXh5~S-f!g$pRZOY?F4RN$_Ywc z5!hJ8opQ9K%hDuAeSPg-Q4EsVu?DV&m{%!Sdq28vha8$wLto)lQraUzKZ2V-J8=bAWf#S>0 zmU^O&mX}|NV~^~V(CjET-?bX$e2bk}rQJ~E)a244h$#20U{2`}$hdpnMNnliyjq3( zGzcv1og(hW(Y~6V`xWu_RK0U@K{&wR4R?T?Xd4DSrIzfRHAxu0q1hK-u9QHkvy?-v zS_YXW6aO|vXx~~;uo#2%1@vT}m7$6eSk9_^%K$BN@PJcSXOq@#du*G1`04J(0Sf>Gh0bXGy*i z5eieMux^Y?4;qDHCy3;AZ=DvMxkn3v&V{<{TF+XHH(hEGfhgo-ArpN>5R#bL@ghi37c_fTXn$%u*bJ?aiPjRPKWPlhZqX(Q<8zzOK9OOZoq z67NTfF)fxQV~PLrk!#iv(}9ekW($C(TqSWf@)ph}H1i1~DDdFPvT-E|?cZQ3#VH6Q zOxLfqPn@V-psXA)RFSs}8)5m9;A(OOTpIJZTOU&{H zyu-%?+t0I9t2hQ(3yD4$e|=t+HFrH%v%6I+evaqZQa%-+1HvLI<;ypF?s)VCiBa{k zL8&u*0Af!Y>pWc52+lJfO3573%UN@!W4Y`7DOpPQTj|{d;!1Nd-z6y8jVsy4&$_R zz85Ab8-MwS_SOdvKK!@?cBY=ujtv%Aujp|%m6rXR>EcRZeeW#>RyUx<+6m*%$bA;L zyHx_*p$O`?=(QRXA~SEIA;Kv2Io?i)-E>c79^1Vy-9X=Wvv|%u&$G`+x7$?NuI2^T zdC3l;i|9?Q4R7j+9S?Kn-|ZMmWZm<3F&R#4J*1a1%PGW~(rD6luMEM1E#J`fK39VtTA zza0W88e_tF7F1J%^}u!!VQWlz9(j}0&{GQPAFY2+br}BKdoYHO!PnExCale@gj(H(WmPC_GQeIG**_Ar?YPu2DG^@P z+SqMN7F1-bD1E`-8L9;s$7|fqCX(InRhlZ`A97(%2Z=RWfWSF1Ld0h7RcuY&(q6`E z+(C$f!b8m0Km|oO{p9w+`vKjFQkRx0iYVXhXGIvDVV_K|Fk>{UGFBO-R!z_U zfOMMTafw~V+H9|kA6*&&9;p%5g0o=IcOQ|f+V{hyP+1TmWhLUV+0-qCZ$b9Bq>H&} z5@Qr~rlR-@=7C772}TJSb=kcg5Affvu^-0I`FCWszxYw~T^*S)V#k=Vt-rh~!iwe4 zRCN=4ATYpC8G)x8E0E{;q&S=^_w_^C{PWfKnhWJH1>d)wrNzdB%u{c#_3FODOhVD; zSlGCS;fT4&HTxY|@66Tliu6KI1ieJ}IVaJP+|sYN>IbH-pQ4V+@`aDl>Kw4aC7d@r zAI)wp6#&1!y%N*!QAcmwlyRz*%TCD1eFMbzUY>JB3FnZtVE#VP*ZiEBA**_z$^wpQ zZG1&YX+v$v<1?%f*5c|!xC?f&TWj@8b`G!f_qXtdBZcfY@hM>~p9gkyH`eIuqXO|T zPao49@yi$Qera9p+D;=Sg39r=21wya{87h@w41B#VrO)6k^Z_I6|5r11N{v=^ZXkZ z^M#DY7ipsFOe5~UIqE{Rd&0zf`V>^3pp5cvW{;0Oh6?RG3iEDq%s?9xnzS9C;Dtkc zAsr5l;v?+v4SuqBY4&3rgK^^J;@m#NL8w^^f_(q>F|*%9l_Yumo4I#(lMIQx+qvB3 z)(QhwVkmcD9uyonjMI>2&6mRG|%cV@nzWBd4e+SI!T)L*);lZ(-jn1fQGJxU0S0CozKFyk6=`+JH4lV`ohd<6t z;dPhWUobZ?yh^4vBr>+`d3>>zn<6%e+09QBRbyMT5;$z6(-x1-qMWcyK6Dd^GXer) zL!4@%O^8&jATvT z6Slk+k2Ouf$v(nQ3sJx8giBU^I7C(Az~-~<9hu!P);imjkllQ@Cw3r*ItOUWAPP<7 z5O1umA9JXly93)W~l!dFMXPux+zdqONB=9l0gAU|({w&(eIgcrrbVmm5VkZ14JH z#>LV2uL|E&Ys07m-jvA~#Tvo{itu*M+c5$MU2%p1JCskIdb&p+FZC=$cxrpAqy@MQ zCeq78xG(ueY`>alCg&|iRFHSp5g>?@$v)*W!^pM}T&0}o-K~sc20Ni zj${@^5Ma7ml149L-8VocAmR896Vc-ggJCd_xnrpJAAKA5vQ(aChpCITL7G0dr_{E< zjn`CKttpc?&bMa!;oE*uKqJ{@8Rj^zOJ0paP}B_ka%kMorMaN#NMyW^h2Q~Nr5DXVS9H{+!$ zemXj-y!1WxVb@0&X;+*I?%P2-`uV#rLMgB8>+i92;Lsk7{ z_8FjJPuQ{xO6_J+1EJ;N^0c1`x5flzRnljXxX`#JX_V5RiD zjl@Ql>P;*>P095{@VBB#6svcF!Ll+ZJCRF1WLs{?Dix=q*qDXVieTG(Pgb zMlG|ielem~jEN)>tFJ;V{mm(}Um2J2V3zZ0rA_?K8$t&DS0zyjn`OI=hp$@{6`UfC z$yz>dlX0BMu^&1ovJL&zm!c$@>1{S?sKR_NN{Ec|Nj&0`Y=Sp6dMH&ba@QV?w4Iz@ zAG)p8tj^EAbktfu9pKMMaeP*8er6qThsV|ftZ43pjLDdtuPEIQ-`YYoH@u>27ZqPY zB}l@k4V7J@Jrd_AN}{w{_kHP#Cjzr()!)tf4uPim(*lsVi5TmJk$StvGJ29 zef8*H_VEAbyZVuQ#mC4>QNVVq&;7qY&40Z!Cc4_tL%z>i|NO`wNl4Z~9Qpl1|LNEN zYRdn9F*WX2XL~=U#{c){|7mpo(HVgOzFz*$_|Lw4nhuP^k74~%wto#oYY6baQlfuD{`H6b|F8lN z$6tYX&VN1}M@%I9(mBG$>sGNVP~M#L-rqMQ7!|3lq3`PoP$E56>$jXSoNgG%;@6&@ zJnC69(0ONH9$dN>a58?xqDmeQTr+d6lW9kdN9bWeOt-u(-cu~OmuTzdci+@cQ3pWW z*ABfWi-FwEM}BM}_85>L)psD`0R41Ym7)5y?E9B+pSnX2gRDk|EbIDcvK=l`3k=r! zNMGwt!v@#2QjsGsvk#*RWxvjDeJ>rBJ>fce7!gEsC8FOA^Gvq}s z*gu1Q+z2~!c|?{JWE(6a_|$Q4m77CglNPQ1UXpi1ncBSyADasB^1bzELh;t;o&ey;K;UbANCwVwF;GrB;2rxj%CpS~~p ztTd#4Pa~a=TniQ0*G-*z*N*MVem(;SeJPew0-nl8+Be8mXvo%0O=Aojl*$#yZ# z0Fwi3LibUeA}b^%VvctSS0e3Mgz~k;I!#GKsgks_@fyxT}2Iyr=f`MHTcU zB;NwjY^qZkz2x0FCt_sdbxKvLm}!z_0@sWU566?JpC*gg0fZ^ft2g%9O*&p|hcprM zK!&j;YFK)_Ef9wtxG#@kRWaO|Zt-Q~T~i|HE2(!nNef4p_~Q$gYAUcC&5GeOY0q%> zUTKHKY62btpPohk@r=`b;h=tsXZ`WWsVo4yD&3c7A=kEdO+qTe!Bqj+Ojh%p=;7NV#2wbO3zXx0EdiBhi1c9 zUGHOXE%4Q-xMR#7q|OQ1RaNwESqZJ$dT6QsT?`V)8_j|UG(Zq>{31%R971LT3H}_K zg|C3HYZFUudS5M+~w&ThG}5^sh$U6UnU`pa`64UDo`LxB2pC%X^Tc?Zv_3 z=~Oa(zULVY5UsI}GZbiRq@(n-|Ny#hlE@UZ2NnGHCJE8XB zOAMEGRH6nywFTWMCHUw;yFV%Ye| zQer(yM^TKj&;3P$*Fn|ZGaofhOtUu|cLs+VQbOD->uT^yvM6NRTL4lkMt;FLKg|2> zwC3ddoVmsZ?hinPdyj-ZZ*Dpn)yo%Y#_S#Uyo}3L{v-X|N0`#COut?ZIFV&y;gNkP znkr!jhS(MG*#@9Mo1lgD=`hOCQUi$sg<(U|pUux`AXtShx)CgjDX)O#C~PE*h5})4 z+fC%ZO>8csaN`<>tn4+$7p8FiS+zM-_~5K0(g6~f`#yfD(V zszudAlZ*E&$ICVRIRf48M!SjQ-BPxo%h*Ftr7^xhQIq1r|Ph$mUS zC?{Y4lNcSzC=I0AD&cNJd;7R4aZm)8(~tn%IiZfGE(gdYTO6r z7F@#OzW~+hI@Rq;k@B54yjvWP=8NwgN@Rh>>rc_KIB)@W266A+l~|{ZkZw=F&YdLX zzJ27fCIsh>{*Z`A6E(XJxLfKEf`)>GSJBDDG$6X$;UAtoJ_f@NB=RK9HBgNZy9BMmKJx(nrKIl-SS zKqNJ%%zdfhWRhMq-Wf0_@sp(S0z7X z^Wg?MA-ChB>*HYyOK@!Uqi<(hfL>(1xs^R9C|e~3Nb>>m9B?BT1T@dErS5J7e5?*N z;~8BV^DwoK$2S)pPqa2j;f0F3)n}R){`Y~Gj1Osts*0Q#**L|yYQeejmx}}+OHU+% zt}Do6o--HmLE9$H-02po!`!bPp4I!#Htevw-lO&?EH8Vx6!Nu~bPfN*`e;2&f2$+aGt_9Cbu} z>pT{}6eU-UMbrLU8k;`P0As@DZW45x=Z#SlkHsR2CG8-h@KFI?lNm_&+G*nn0{%7;Lf$O>tB zOM%j^X7#78cb$n ze=swScPI`FnRQ+AzMAmKBr8G8*_=-4(Z{a8-1VXZj1dbCrY#TbVClx^C68Qu=mgXp zaj7_D6B9(80I5nRdCYgEskGko^wnd;7fS{pl%|%eXTy6YC!}1{jAHWv5p`>zdG9t~ zGTZ(_g}NIVN2S=VpMM}OCbs!(r;YamgjWbYRfIaQf?59go*5I%Z6fZr^QPWq{rs`x z?qXxSr-$)W)CDbmYYe;kgt4BIlxCT|q~~U8orVIJUhN*}@%sbC+jKcuS-eP0O zAR4h641Bz$#3R7la#Lwzzu^@Y*`jthQKXd)y)h|h5cxYA8FtLDx73Kw+mxTialxeEWNX4`#Jd^P^=_*IK!XTJ+FX8(0+P`TpENcQHayq~G;H$ns?q@}I6Iw`4|CqdpT8wXIhy)v zC^%YEx&8jL(9V3lR3)MVlnQ@-a@$|DurHtW@-7-*S_3wbIaLcpdrLL_MdT2b6QTzo zz@7ZHZ}|`fkT}Gy(f4tppntw_n83ia`?SFI+b)!CbGFhVuXevZ&cSvWxdH@zu}NHT zn%Et)xcHvWVw~>s(pnMi2ILErIki+-jcehMA!GN;)y;LKj(7 z53{Hm4=OJGR2vnW>^KrAU4#%lcm}hd?0A@J$7i^?!LFa5VF6IN3{WtGJ({F+ncn7# z@~;pHILAQ%HbT;FzVdaEC6}V&JAPB-2srHRBSO>7`x+v@^q5~ zWPF;}m&8^N=|+rD-2!sjASwo|qjE@bo^9e7!@&d?Jh9Nx*OUjY*py5vF=%eNK9C^x z*Z_e%i&vjYUk*~#Ud$P{3OrhZXD*0&uHNx^>puO0)WrO{@p|qB#~? znm@48)(M`!2SbroC7$s!R6%*VlN<~OuL?M+5gh`koz%9f_Ulk*QO9L8m5v8zlT|Ng z+q|-Y^GAQ$hnu05+3k~%lPLa*(iPCj3=f7V$$_(I;o@@Kxy&^j?`}4I0 z{oMM$Th)uqANp9uMjoRs(r`an4EpyM^1LGRgu{f=2u?q+;p~An{4H&XcA7+3d6w_4 z9a;(m_m(8EWF*bJds27wOuL^pEM)3K&u77Iy;~peC(6%L+de}4gu_xh*?INNa;VQS zRa*8yh+gCVii#P;*%vlFZueF@*@SS-!56TVW?=Y;@aXd*T+h;<n;-+lh&XgEi`*iOnd|ZFVCxA)QA_Nv;kof$3Xb@ zxX+v_>&8+Lq^F?x3D;PM&{<&yZ~f9C-LsY%i|iyb_!J1#cWpQy)ejWwSXtDxW9Snumjzi3#3$pRrc-jdI<;D5>AXi zBlJ=hRl6GkJvr_vyrGlw);7RIqVJ^LXCZdUr;Vz}Gd|v49WLOZm9|f*OD`i^xl?`M zw)nTRt-xTy>OrO5Qnk~QHtr573F~wVygFh{=Mas8)wK&RN?QW2vf}pbHF$Q}TxGol z|1>7BRT>SMJb!<{TsbQ-T@W90E9lft#gG=HzDeTFyK6+UrHOfcfvDvMLAD`PC|VA# zp%n+f)-uiAP8S0HASY>&rgm|J_U#+IWLF{$>f_0tigO6`vQhp`ezffErVT4aOcLYm zAL`61v2~)ML)Q8si)Jq4c0G8(0 zdHoBGUKF6=((D~OG3%coG`xpxb;}R`bY8ch&Wp@atS1d~s;$Ngbi_n^uFj^*Pxr?F zfV}zy7D38%@TRK%(oSf#*2z?R!RX2pNNt8JC*5;WfJmc|^kcYvJKoncpK1RW{SQL~ z^TZ6o>8L)rSd|iSGD~F1KJVUv(v1pHR!$S@nbVhJ^Ncf z_!aGkDor~fy$~OswV<<4HM6$z?}5CvNkZ2D#ob#*#Sy&gz6tIw!3hNS;4oOQ;1CF| zA-KCUXb2vH+hD=n-7O(#aCaMA2j_PFcki>#xjXBw`}ux^UR^y^T~pIt&+mO6#Y98z zeLCKtuLmZdSsYf{hW@NqcJ@4=3T%^U;<|Yu5jt_K3PBNyHW-%LsQQh#==sA zpqFdL#Y^q=>Fb$X$lOtsP_c(EtWT?-t{zMpkOK1u6*xYs-ml+|F^RO+lvEOhm7P+Ytv{HxyuY?%#xfs9BV^q( z{exYK0_5b@?S4{cEb|%=4nNoZZc*a@%ywwt9)I#lAL*ic`X#~%;tFa?>VQn3*^53* zV!vnQlT56_M&+w=tgxeA{o}F)MB1#cbAwU0TdU9N+&eObqO>!aIdzim>UTLlmR&>Y zQ(?1%J;AMH5{tGOx0l4ocG4v7dkE_0D6D$MsI^gxQ>SRdJ8CDJ3v`~TWaP#s=4e4c zRV*e{naw^`cv?-UUEbE@VoKeF8(Hg-Iwa9` z;kS`xm#rZ7TuHtUqUVev%&80WzH08>BK&}E1R+ZSdC3NUhUL@!i4)qivw&|J&cRT$ z(Sav;U#`ddGS#*_h{QE-?`qGUyno$L+bbVIAL{{i2)S==tO2?ycqS>-U6<-^MrxJ5 zJtoGl-s)~w{GlJsdLM(;ZoH8j{cdhd^uEm75L8tL4KX^o+CI9=dDeRntG}cNBJxU3 zv?K4!cD92VD@W4!wYJe&CDoGWoq)%Z5g27^r|jw5s0Je{Ei9==1L7?0wh`%O8AFdJ z%#tcz=jXuS>9^UGwpSq}4s3H^$m*|)T@JeLOZH12W3CI^K)6eC;rAgiFMcxvRS`_L@0jv0vW;}=EV&lW_-8th zIZQ+<)+SMz5g7(wzh6>%RjRnQ9hi$&3vWknM@SSAl(ebeeZ1J1?3tuT^??HhyrO6z zQ_%wz@~ahwhq5=_YdN~8!+xF`2C2RWoSYP5J_C2Pl8oZIZ-0zs4?mwSva_YkZkbQQ z#GY;pmR;s+wlx?6WZ{YlDj9lo7eQ?mQ>+Y6B00=NrrSaFvN#&UoLSx3eQ<`9U9}f0 zd#cuT8)3nmFDHWJx18+zPMN|E1#1p^p@P&@p^*gFl)YGU92PE8C~YmV_pW7c&jelf zzLDxrMBt2Cj3g0~(J{?`Mx5<#x9Rq#V?}n1KRL9W2})K*f57d6ca(}y;{rEc`o&+V zGVc83AGQ{9_Z>gOjKxzo;M?axgK(1^DerH`c7v<6x8^!);QXEy{E$r zDS{UwGBYeuT{(*NE{WZsL~*#|{zo{_mP@!?ej~1DtO%Q0s9aQ+I;bVT+RkD3AUX<)Qz?Swq^NxA z_ry-6P z`*J>awOgcaNyyK@DXP0qV<4No6DPr7U(lx}(eegwruCu;Q_H?nlfK$3jV!-6z~ZiX z1&_PO6#OSFoVpJ2lmZ8B;$Y}1fOsZDjN6;4p5;2kL!{-5d?xRCD67HS}CE5xccddjZSh$yC+#-R@glt!L0aVPYB@_UE08W5cs*} z;f@$y1)p2IbXY!9?dG~K28T`|gnhHRtqlNEb}Hxjiz?jD9r{^CmKhq++n*z0A8~5Q zlD&mog<_C!7k3L?ifL9FO4~ZEDbX9YHOXrUx*sx*Km_AQCM(shZRdaWX4!9&I6E}4 z>eSq^7KhyWctJR8z7Ok<)~y-z^jR{#(PiAtX~J#g8Gk+Y?KLfU)fubu%G#88YBy(1 z-6j>C@WX-KaNHUpG1@c#>XS+)kWCqW1WSn{qFk!m=N^_rd{|^Ef7_;MzxgG)q`GHe zKdQ|36ZK2lixi5}S*`(FZY1ogC+sA69FYr*ZL&lG^T}#WEXNO=)lP3|eEC>F8wn6~oqk?5^Qa&P*}Dt&EFmT9`i|ePh@9rz zRLivnoIKMlYJIJzif}1*Bq-X@*Kzr8u~b^P*sz4~(Y=&5fLyeXGt17XV?JSZV_{ao7V zVqah3>pOBOdN6V3mOR<+f}D{2XNjS&arJji|5u$V(S@5UqKro9ro`)-O$%k=T(IdM z8NJ>)0~^4TxxJ&=Z5Qm&?nHpsAgKGy4)dA?DOJdzf zoR2$QLQ)+VD>z3ak!KiFM1td4*otn}z9K?mxfWt^9Sz0sD&oL}b*f*D*})m@QN6BM zm_p_sIv<=Nclyzz@lNQnNUGyNf_Q;UzLUy@;_A?s526k$pc5441dwY<)Z0*WA(5FWo?Fhu_t9@{*I#59QaHR|nwh4o(5>NF&OWT0mM9g2+{t^n~t; z{bebMXAo2`-_f=EgQTBNE$G%j;mAh`dk%<=XmJ<(Jl`#iFSGb2SO?)LOSQ_+nfDyO z)w&%J{nq17Hgyp%yv!J4{v+wXhJX{ajX=g{e|eyYyaQ`9{7N*ORmrTLz-6dcAY|_S z4H;fCMdI0*QMC4~#KT;Yj2%VD;n;|i&zk#>7j@y($}(eLHL2SFa!lJR~1(Uh=vT(U9MZ9lk#MMJsy zSj{BbL$7g(tQbuGzlb^{&<%-$h8Q7awvGJaQ-W0?ssy zW&~#8ew0OT6XS)SRT18Gj~IzY4IXy5ba>9v@#1?`gDL-`!FLx!o+84yC|dml-iEp{ zB3X|Yyi*mGiKXm^b*c#t@(yIZ?FUnh#bj~$yDo+y#z2j-V zl|&}5O##2qjK3*$_7F>Aq8C>i|Mh`bz+dZeb2PlOmQXlEH0BFChd0T>d*gHYp}ZQL zlL2zAL@9N#fXG!|Jv}(Q7?UYfD|-W*)@6^naXXm^wy4nZv{*0!45MbJn`#pvBZune zj9Fd=-pZ5+T^`+B5hyOPCJ(6S;6LG&h#VtV(2fFgfpOgZ^Xo-Jx))Ap7cG{+>G-arJE1MBotuJ?Z_;JC<>_%e|uV~eZ zp9Ku6d)kBv(jrlwK4DRU`WP77sy0hefYiKGLCT-l|3Ra}(+!r2K(l35>L0UAtdOB` zxWlb4Di>$*P>2g*70mZjd;O3A6St5`__^uEyE|`|ZRPmWld1jS{b<`6fSqe zQR%{Z9fBwiTC$LCX|LeH&u!0^J|C(#Lg|=aVFYz1nzkjBDeR6~qoO0ltPAG?Vb=Z} zUwEqz%jD`uQ1R(=p}ZxN3%oWDUofvE8r=xWdgkOPoHo%4nW5?`-VHC~_&&U39@{D5`0O{#_3J9E z5)TRN?_?Ep#L@l5_H`&Kks?CZFgg9u)1A%JMp|snlHbjQ>{R4pv~(m9v--2`(oW~S zJ%4@zwwW?ejiR~DtzIyU?K?7%VaVt&?6STll)chD`n%ejg8)oQS+cEVKV#z_)D zhqGo(r|d>TPi$yvqzIIO@6?ZkPX$nb!deLn-6!mXa?lDF(Jq{ej3+z24(P#+{&l2X zU-5Twk8AtZub$o7MFU7{MEL^6UjD>d)K=-Pnf?6WTT=R4v;2-3yG!ZQqg~=3c%!wJ z8T;&V?K8Zg5>Flu#Gn-viBzsmVyG13^QKyuCEJqV=^94@oP&>yLxr+c?{Avegd0qx zNvY6i72|&L_7P z_OTCHukXr3WXWinxzf|~&4g#MKw1TQV<9O)N<3z8wGOWci(*D`AL6u)DW2 z*6Jo|tk$*hIUJGx>t^L1{g@Hl%s;ivr6Apts|ZZ&+tZkR8Jr|p*dvnJpg82(q3*(m zeLPqbDBzF5=WpDn&bS^vCK$96D0Dp>MegZ8Zr@DpMIOpA@Ut0>PY~vgt6I%r^hl2} zxFDdc9ovPwDM9F953E#_3aN5_689RPl}PPPCSIDs%`widq=1xvq{tVM-t?a%9dlR= zI|xMV(GE9Qv?7$Hl3fmWpJn%>;QMy;XE_;EjC|yL*@O{0j1qR5lOztsF15+)9IVa8 z&X7rsICM6<9(p?I*DG1AdMYSm!;fSM15*yiu zeK$6l#qMv<9q#rK1Far#G~Fm2u1Ji`m#|Axk@}6EMyR*Gdf&2sH6!}K@N9IAvbErD zlEWP!(pI^;?jIu7?0tm>_8J0<;Tq|qNI6FT^o3ESrMheeAhjK>kCk_AAs+NUhEpD0 zdteO??1h8K zXJ)5h#Y71;o&nK;7waGSpYg6uW>#`M(Yy;2p3ey*Z0;0jRf%?-ZIvgPMEK1JxdrX} znOTR2%ttc1Yj@h0=*`GRl{${_95>8~XMK++nw$UzOSmtKJf{it!IsX#YXIMb_5V?Z#*ZSy;JhTN5f%VQ;qfWj z@UOo>k5N(n`J~)ju{u!+|1P87(}AG7Zc-4M#rvWT1K)=YwuRx*td6x!k*$7 z381Wu?3$0fjl{JPRD@WNw!PKIiZeK~xFKi~5eiU`09@4(FLe9Lq~HN|*? z`8VwzU3fDe*1lO;FGnTqZcACB_RTmaa~hK0wK$nuKOc2YId^ky8+h0)9wtCU4kJ)r zvcMG;y0>4vVcU|(WCB0Po@90W%2H{`CvdIvDTnw3LAO+7&S*VfOfZAFjyxCMoS_^H zNz)_;sEZN&W?D;@6Es<@SHOIWP5HL3)nCNfh0L$Q{j@Wk$CMk%iB_2_R@8&cNiaOv z>hY_B;Rk9cP>|C<4h_{#uGuWi@-lUwBh;9_3X`G1n9Uupg#+PI$0 zW&Zx#Z7GDfn#?9*gJ-cWXuVs z0dQBRK8qg8-O4_rh2s^fEtL5KKH$XWsyAio)X@pS$*5aOqQhY^zV<3EG)zcKFr zVY{grf!-j8s?ean{72I$5P;C_=1w5^Kk4}YLdp@O0nR=9RPOUX&cuQ1#{Wv}i`T)V z-{Cp|3wZdSEb@QIb6eD(9;0?=Kjr?}2Cjxyz|94j&{SL>_W}9iWcl1h%cJ}TtW3i z6UG1gyGRoxF4dqHhDDJJ$Wo9B!)82Oon#(U>cGeQ>j^+%(HMoDtX2*U0=6xm)-t6| zSkv!QWMe7wS*rI$qKMni2BVg)jwaKuPsFm{roXYm8~P>+zdahCZaq^b4b()U%qwBM z8qYGU&`(7pV8p56q2+!ZJ17an#f1+mh!V{H*{<{q-p9-@1c~HTM5#R2jb>WaKVTVQ|$SN(N7Gl_7kcN1!QvkS3PD^N-8=T6U86 z`w{6owyQkgULZj>Q&|X)jHMcpz{F$`lfmOSP8~rd=1(oxpH{Uynwj_ar{eBPY_j?J zDetpf{0E?ttXQJ=%Zg8%4~$*p{AVw(R_d_}C_oEK%1h=tt|t0$w+t6F(p^_GP&q3_qHJ`wJSe;k$4= zI&W%aMbYe4qa{gzg8?k-qBI%}MYJ9z{Z_m85C%l)A#%&JP*tGf)JmW;wpxO+Vum^h z@+#rm<};<1yvyC?{ytzu#&eh#TVx&$t@D|!KxwfamcMT8j|9$%C^?VN5$w#;i}KI? z<4zkV7!-EiXfbA=#_w?qPa9^*3P^5wqf~;_=fo%n;yp;` z`njflR6pC1@c3}pi8=I*^J}Z2Q3EE@wK5}V3Bp?J3vFKb%N>5g-+p{j(smVH>^wvA zd%U6nUQ|FpL~-Ex&WP+YL&9uBh&(c9&@*iAOG$}Mj9Nze<^8Vqo_mm@tudi^CyG;-b{{=Uf( z!2QXM{>GNttM}gLd<)fkJ(QRcxX*P?n=+IsmYWML{0Tzcd9kAM?cT5)A~roFXY_S6 zGL$j#o-}S+?p<@5^@mKMkIddDkFfUY=LZ+=_W2z6t96~Ld6%8LVN(4yWeoFg@pKA1 zm<}s~Zcu{!4W8ww0$N+VidU5AyFb~^gCh|0jK2Ma<^OJ205#J)woKcXm;34oLT;qL z+YDM<<)ZPRm)}s#)c`2|Uff#~`5`~2wf>xc$CiAv7JzyVUy3P82Jgt%Br-g>yKJ|eh=X9mH?Jt zmyj&lcD-P;qVROu`yr_OT@tHK+hCONY^9Nf<}Q;`TAhD6DZ63Y`?DL$!=WTS|A7Ni z*z@N6o6Xv{5Xsc;!}P@LjNHxGb94!dS7R%HlTx!IbL*Xu5r^)35^nR{bB>N8?AzrE z!}^FA3Ss$ZFZx51q|>BM@l@<|DTWs4CXZ=|te~!7Sf0q&#E{aw#BoncHGww{g-Z zTB3h(35(9>!70o0W?kbsOVH&DCGY@x1ry(TFX|XDq6<4(R8UIe%V#%O(bRI7D~jVM z{&`?>ymg0Pcz;PecvQWoYWQvTbcRfA-adz-+eIN$sGjav6?VqT@!5$+2(&5=g=ajs z96Va^2K&8hg&~_EI2}UbJ39uiI~ymLea!cXJg3*+g`(YF-nwb$Nk@qiLG4^UJDLgs zdQmlue^sLqhKK#$6?#Ji7zjSRJTL@bwPz}??L2aEyIH#oulL>y*UbGM_VUd7CfNqG zqu%=^dTz;2EVd?e1Y)Wrbz!cw4}_i;`8L-~ot5+N1H3D9zSU&Ghq#_lOCaI$QXYsX zq3S8OxDaPa<#&L{Bd-Jg#`(im08m^J)M!5)F_gqqPGCpTx!8L0AyJE&1+i7??9)`K z1-5sq0T^WG(D6fWd44MO5A-WY%iHU^D6%_MzOr zI$niLApeUrHP@OtdT%_mv) zr6f;hC^~V`gO=yMv>S!SO09ES=f@sezqObC90{xvd9tzRkc-BP zhl~C_KyNJg6;H1{nk~uo?7X7yeNe6(SCB$m`OAxXqj@*t55T71e)d}r3e{*nXVJ&< zwW!Eeb+>#*N(AsXZ-`k_nemPRIuiG3hAPp}dF|8IW^Cd{>6j@QqZow;plO$ssbszl zCFLtp@zjhaq8~Dre)1_-w)?n#aO3IlAKKmbER=cEQ$>_a4Dxh$z~P-* z&i&0W4C}~C1NI~4ox9mA+0UvA?@jup;uT5Nj&g)uoPvpi=<*;C&mcS-cpVYnAWI?p z%Fpv;mDy0kMbPh#$AtdJyZ(rzh-P3C-*p;wcJNrPy_oJu*oCzm2s_|!0M+u~jKKw? zDdHmd@oON<7dI?V~6g03$fh0+m>Q%N8!#|hqQ%y>+|zQ zXXvtYYmBMx;a!O42{zL8-PKXvT}h%*g;c%uj4J%+_mjmZfluSBi;a_jcXzuVK_)T3 zUgi^ELbglq+0-j_b#ayKq)7h`j~*?Zr?&K@+!d}BHn_?gJ*cYrH;EZU@cKTk-!S0< z#mmIHvQ!#t#y*;B^XReUTwst@4%D=k8xz*_9NEymEVzQtq4 z11O--DD!k86|_!B3qM{iC4L0ljxP6`oXTD#=Q(sf4(JuHd*{hS|KPJ*_=5+@?2n?E z(OuWoO>$b&Z+3Aiw5&-(r5M{^^JOqZHb|WvlKghP=nytSz2`Yl{*e>~V9^lW9?gDh zsRA}b)8YeTK;nAdBut+vW`|ewm2~jAb|;WwU+?X9cM~5cuhScVv<3K~L%j$XRlgB| zVIppRjbtX6zt@3Y{o#J@^3!A5)8#sutLCnhR9p)hoTcVT&u0BQ{!>SJph zVfHD(c;tg9fFXUSqz~-)qnTY#pPa_pJRFbj4JV({LI5>%{%MqAXvVgH$8CYftm8A! z1S*GE;!XSW&Kb2#WD?tStwcV^;@Z{?=|mpNV`cegi|JDA_|)|JFp@)*UnU+?CC3G!M5!O*l znT)RQgl7bIbABBiqXS*}ak54^<)xvUhrJ#Xqbe{ay(oY!x6Kwk$G?%22g<!q~tRie9K=KZW;MH(a=8? zxuUhm?*>i60I9lFg^(KIS=!C(Y~|gHD;bSOy(-7O-||L4YVk)gB@XsWRlqP8&9V);Q3)PdYdU$p+8gSQ|c;Ag@nK>XU-=OOB8XrK`VcPWZ0KzL#=NA=Od4L z15U7Lx@chzU;sVtrTP6Y(?Z`DTR6d;*`H5Fy6U zX}pSPejcc*ULO9X%}j~3bn``HY@&S1N^kf0*x~0vMx|6L@+4k|i4PQ`X>4TEm8;^_ zUO)|5dtMD-QK&ugQ#?FuUmfuFOxV9xDcChp)H}IXAJ5a^>P+SmFbYnMgNPXQX(9kj zPX1E!#a>w{+Yk!r7~q=2h)gLRL0}^5Br+waQL~58O-^}Gv~WQRnEqttz*=Fa)d(nG zvPKon8oG)!_RX$r(TLgKb)JjkA-QleBI2uR1hu*!6>ODd^dg|4HLG#{47M=HlTji( z=_fY&g#P{QRGk%f{gy;*S1VKNfa_JqM>^JsX8NsGH@zocQ^Y5h7SZI>DOliYyIWMz zmh-XxTp1^U4U5x-Vd2;}2~3{d-&t7)8OJ5jdNB357i9*IVm33Zyn7E5RVEq*iaOJx zCS(){^hd8=NEcECf4w@Gr7fEUu+VaAvbezvl^qQ?lIx>m{9Q>pH66n!*jmHNSE#!U zQ)4)%)nEYHo!FkR#7CX&h)O`Oj&B0hVCG~ z9I*Et^0Y#AY0z=ILk8e)DY_+LW)9L3ph8wvC*{bGtMGnStn0lsDLtX+KKJE95T{5{ z0#>E7M&oX{&Eog-u|vD14yS$L_|^f4nzbG$-gDNM3i8S9Wt9$EtM`+rOC4f&3u?{L z7}q9|QF-U=rf2nBE~paQH7>hY^-h&bnOSnhRQy?4FX)TlotBMnzDC})T> z&HL^!Y2IvJke;RM-;yFKQs0SQJ%&*HUdtpA9fiS5<0M89m6flwTQojdwNBf_nQRz7 z^`r4TmwFvCiJ+MeV>b7Zf`|D=vYrX+trnFG?ncR@ct5oHpakYak3` zIvZW+wPjJA_&)y~HA)iIAHN~a_rd2uxN}u*>xJ{6;;gh=aFWHP!wQDaz<@BVqN>vRy_lFGZABWI;9tSr%kktn93Q*sbOya_UbrQ39z8j6xr|jy>zFvG1EWXBX zt>N@*0N9sv)i&B8F#!j~WK8-P{8ZiTDnt=lvwWs@zk0@P@O)NNfsO1|D&j?QPam1Bf#H1n(vQ)z+^jOV;@vwG3r}I0^giVV-=SU*A zcb4B#2Hv2QTtiETf+o`~2@a*EFQyyQfUNa2K^wjUiq(nn*ODmlUjUz*kA=%qFd+)t z0@*zCecWi-<6#UFpPcq%xxzf5@WBOj2pb5AizOr6!iGCaUW!JTgjSt=MRUQa$cja*{ zdtJZ8XH=j5;`<8?&UM`K?6EYi=#`^u|E=_z`(HeYbJZQ4;7)&p*k3o75FJ%_>Xh&< zj28$UXjP*i(*X?m>QFDdGRit~QP=l^x|5xf-71A~|G0wBVPik4Ft|iaaE4Xe*NzNq5xb5N6@f6yyE%Qjh zt?4je+>s2O_02p*ZE;wRL}p~ zrGZqt+}!j!%-JD{)E0sjpZW6fev+?ZDLbTcowwlzt6uZ?%nN?lKZf)+{OvT;*v|Pn zp}<`r$vp#Atm@7!_~EHlS8SJ0WV!0oBMw2k_%@OvOBq=R(`uyA2jaXnpZTlD9#4qnIkB{oDyYY}3@ji~x z&D~MLo1S6^2@wJn&M=a^F9D9gx;kGgDF7L9y^uFDQ`s0SX7TZ{3jCKn=&>Fz#daOcd z*+MEY{U5x5q&%uhUj(LM=9yhb_nRjRJEpiFRnjVhS8=cG z!<~;~-34O06UZUv)dd)<@&239*F0GwW;W6!HriieZ&HM>otp43D1C~`q_th()vfb@ z+!uwmFM07$#kKT(D&Nx_@0$V6xj~`D#uaFhV&HoB1O8K#l9T2T62_}Ne1ajObInke zcZDjUw^BThmgCv4f&7*%rGnjyhKjeyVm{YVObJ&iW%XmDHpfWVlzmuTq77Jh#Q(%EmWly&4u*Hy7)$A{8Rub{Hj4t89HO(8? zMG{Hm_nfB^azzp5^8J{FHp@2$Sk6YszXH=-BV-IwJxF(1bl3P8`E&)m@+E)hf#<^U z9Kw{!-DpP8TQ&8gKr*@#-`3TnHzEBRi1zan1+@GJT7JI1_cj#7326?xk9JnP7w(mnGD+y zFe%?^(4jxGXgl0@I&|hIvFQn{SV$%PXA)K@|L0vmTX(MHqmAb9v&NXSAo%Uj&3u{h zy{A1?T7bWwS{eAhWL2vB1w5@eQvLwEDKhSIu{%0~-G=f8qx_7U3#T8`R;fY`e!;tH z%bfoWFRg6xJ-gktu3BZryl_hB?JN7tXKI9-qKKB**RX4|6J!=gA=Fm<@OdOdFgOG1 zQ>(mo{m5lByL$4qjN#FMgJz{%U`e~5{2mjm@o9}K<-jBaHP2U<^OHalz?s>S(}r=5 z`D9R-2%?(9kE`{i8H0!T%`s1{(!7lPr5#@oml?am?Tm4nV8pKZgxy`dT@Q~<#Ujwj z%Y6lLbtP{fAQ`3_AW=&IvTpasj4j!{BU42%qO_~S-}^sxL>FHWLhP!{_(8J?0#B%2 zw{OgqTr)#Y(&)E2$h8x>pNspV@}8hRTjW=aLOeKS@lwl3NH~Xi-LncwQ{AsFsmfY7 z$Fr3Pqjeg+E6H75W%U7X@yd5XmIvjG-X_o=~0&${FO13~G3 zh(^?Rc;8YlEYEF?MKN~qPq)xq#*DXdgeP14?vsxA`-9uR^!=~Pp}_$-`=|osJ4<0w z&U=+VIB*l;f3G^Rzw(9ykVrz308uVyo2eM}pORflKuSGwlp@VPT&)6dP}p7)#jAe! zZ!Z9~QOV!xAMpRHqyL9Mh{FkJQSdVKxc}(Q|A)`Oxcibe9_7CUo&TeacYySEF@Byf z^?&^LzyCl`1day8$sznx5X_+iR8mVXdFy|+3`Y+f?fUs9=${(uI3U}B>Oge7|7`i? zU&+t-Gu}UyMsYx$N4Im9+8xb6bNl`s^3V3QmBh_QO|Lc+)BiD`fhmBA)rhVv`xUl9~lMeh7x#!uC0 zK*QB{XG0_Zn8D(Te@(#@J>|d4{;T2XzYR~vYS}CQL%96}7w9=55)Y(E6e6JFf6!kU zh$hoAg8}=IuDjQ4El!U@%RA*?|1l6KfhmgA3(UK*ARyvRIW20VFIvS0W|Uj`EGpYc z*;=7Z{5$2F^|pe%nF~F`Sf-xq_8;jMADF$OKh}4T|MfA~UNbmeLv_*`A6az$jS(L` zj>M!l!=+SI`^gE5B%Ztz&Z`r!1z$J&{XIkckRE5S7jH-p2bL8%e9*g9-d|GrwG4nm3j6qx-rGn@9$&ftcBupW;#}cau*!0C4n#HN zJC+gA_^XbXo7}OmuinuCoGWa0xpsXF0zyKI~C*Zg3ZhOoGRRh@j`YcG=M!QTdfLwx>p&pJbjbrfcBbF zHl~B$I=T=I-i;mTzD2z>w6O@xOXTz zUBuvHtHufx-qY2*$x|R6Mee1Q-&`@H{UW>3ceZ0PFhG0xXvAQ-I1zd2d(BX!Rz0l2 zWJG#$YiM+mjd?%n1va&iDWypel%_f1a!Fgke|hMd)|v<<7=15YD}pP|ib^_(k{uLn z$_U8cJf@bQxa7 zF0{FiGzDGv6XWjznN|f1kZ*6Tx9~{r8Hs@i&)lrp%EFLCs;znORMLTg}MT%L=g4cm`I#V`8&3(vhf_j1Xb9T~p~1muNIr^lAg zR!jgM2r2U?5%Vr%g!urqm-j~Qdl9GdcD740J78U5pTK1*L-@4T9n9lAWeMm!7DGU8 z9ZZPJ4Y}YDm>cJrqE_C&7rUBKD`N_0iFxzh?W6Uf;d_9$`%%_b!O!_BVidAKuGP6! z79ip(gkez?09E~D!KHqt86)5)Ic|&5TtKP$P@+*>WED>@dNTGmYL< zB^k0Bt?UX4y(H!F8)mo zfgv)nB$9yR&z5sMWHExDQLCb`{Y~=IDZJmsNF(6OWX5bz!c%WGxv*I17;&KVChbJ3 zwAfq#+)L_`QiII=HMr?LE&b3v`cna^DfsNyT}ftPvGLB=(h2R<}XP%BThLV4{=jFUb_Ijis~YCe2*|HLP?JDj+l- zPN^W(?tT43MU+y4n8P5K%XH9tGy6lE>+M^&a(gZ)R6R_`lj5g_K4$9w8MbmGxZ7ch$js#TGlS$zNRYRBN7W^`Oc(_UCj(iGC#-Wyp91=fT&T_6P7hxog8$OC9^!alI<+ zt{R5rz$`sz+g}3++VZJy>7s%6?6lKW6U)T&+Lza}ej6Ak1Nbe5>2!VBlfj-i}i)&>Tw#t!{p(47UH*P}xD%f8(hMWuO z>X>Ykb^XTSRD8Ux*(KqV=w&eW9$@3c%(?(d$ZsiARe|t?f3L<91a@*9gxsCl13h;O zfwaiSJ51NRC_ggmDEviOES0b_;AONclp``-q9ch}rj+_N5&3eJrVibHYokBX8mG?V zWJROZosC~jKg=uTzLtxI&#?B^Rj89KT;~t)=mo-bM<33B(bs zOEgpRIB&h5o=xHPY2YvXd-+dY%5@(`*App5SIcHn$h<^*xwkWonoeFJI^hsoNhM}9 zIc8=P2>y`Ykm5%bynsfx`%kSFxU8U2bi028a3`XT}ycXjJ#Hl?N*J7b1@?$E3?`o2#+` zodV9Rt_a!WrXlmns@?nYqpz^&jg;{?3_;d_lbQ7!ZtgK6&Ej*kF`0+WX!rdMI{8$Z zP}222MusOK^z&H6p?-5`LDPxj!Z<+3_%2dM7aXLcJ$$zriA~du-!*&|TPE(|d%$*8 z2Dtu6PM2ur=Yu3)2A*rw%MnOAN-l*0@OE)GhB`k zal2M8S**OmiHP`LGi?GE>g_v!zO7%VF%dT9emJKB_@vc{4qjrrWB`k->al*a=LS6_ zjcY897WwfJhDG==NR_Mx)K?cth2xdjz6)RN4ps!v2KC*e4d{WyLV%Qhh%X zf!pW)p>-vCGgGRUT%eq)ShW+9pQxicnB&KXhNOb`=Dm0kBCc5+_K^l_sq^;3qd{tw*wAd*8G zcrEpg4i+XK7?sseSSyp+?upgH9W66Up4OpOC$WQw#H}F469n3vp?QcxW;U{PguLK; z1A0x-M^^8<3g1}e^ei~d&vx}0?L?4q_ZMFO?z?@FAMOq0&Eh1hj}k|*dVb>h;k=s; zV~a9YtA-o+0tY@~AMSPZrmB@PkoBJ@KO*nlzP2gq89Zn=QOj|M+!Jr_bwoi9tE18s z7o_;@L*0lfSK1_(cN_|beMf@eHH+CQ+#Zt{#SH^+o8VpA-5u%*3r5l=52Dj?WN=wD zy;DaWO_6~N8Wl^t^rNd2v4Dj-JK1{c*_<38ssVFp#qWM^8p^BDlvJ*Z|FncQ<3OU+ zr3mey(rx#y=SPi#Z2FI<1{d7}HcKn}ckI*UTC2j;PUn4cZeWL+ zTlR1PhZe7+!P-9G8;&|Jb07qo1S1XV;s?*L5Ng~LC*7aXEalmMYBv}8$<6W;L%h) zZ=masZk`gaMCjm4qs(}4Nf6_h`_QGk8ujtVTb${R0@ zMy&apXyfMWF;^_O#6IIWI8^D65B-t-(94bGcAqfLgWES_xqLPY8VrOi4W~mDnVsEz z%e~Kami@lgBXS9^t&rSanbb3QP_P%+9Ss42gv0N5KlKYKrQQF&)vVCXA9@F{TCSW~ z<$^KIhXy+mRX<=0#pU2fX+$)l(*f{d^&q1#cGLddZ}y59gwj|oX07XAd7=z@MsTsB zcZ~J6^Ff*<3oszbRkc^9QhirB^JDA775{3{``^ix*~*!%I1AvqMb*8D!u?)_-SJhc z>6Yk)+1gXE^WvXeGnOoLe<6Evj_TAs7Ywm7C=?lP=%oUj`$^?(JL-=Pt&`7zL87z$ zT~8g4_dNusM~lS)>!48+W8~mfcPBr*sFz~7$pEgSzTy! zm+8s0My39GLUL;zvjlv#VJ8sE{JQX|psjyu#5Iv{LJbp=uT!3tN7Z<5#PR&Ark$tE zUNmi~jZN&vTIB8E|(#{gy6XIsy4=hlxF~^wVwwydXop0{O1)gSA4BP zT!V%bzk^=-B%=`{@so2>%QCI$KaDC>)^k-aKNg*S_b#jo&Bo_8=^=iwAN>IWA`2DG zqHDqlkHgzye0QSuhZKnqYF<~p2&`Gj^>XoVw5S!l*{w^R?Wz$86rxgp?iHVJ^D_F7 z=u?|x|GPV(Slvtf3=7BuVJcW@DfLxZd>iatewat#3XW(lmHH%?-5=SRr)5;W(@usV zrLyfDu+8m6Sv7`&ZXUB4JuF-bDBtOg_TI=S)lxmS%U1%k76W$*gZzX2P8c-3b%ryk zHu9s3SmzYTSEaBzV$Fh*icKQzX*DsM#yXqW+^2Dvoi<{^}$t=8R1 z(vc-DO$vAj8S#Js<&A)gF=4q?dUS+^oRnFOm<)@qg}OmJT0Hi|b^JAb+s-A;2CNc! zbYi_$tJo@>b?S$dIdd`#VY}8XQ)e>t=7Vy{xuQ^s4x>oBA&C3Y?}3Iw7#tn3?HTm_ zO_Z!0Ue)}^QGx_6uM||3HrWl;w9lxFlIJ0=8yjwEb;mfF&92~)+mHf8E9J%9sR~>7 zyF{hA1OKP=^AbqPB-5zXJK&*+#;y@=&_U8>H=h)7(kJh;KTX`*OpXj*K};VuD!Q+* zucRRXO!s9*F^m>YeshVno7u|ZFB7lG&{!djL;@JY z8BE;y>+@G$pxUTKn14G`7-XKv?ncr@IxVfLqScApem4&M!qqUU>}8%8LcQg7v)1j zg*MI)<{+N^5AQJB5m2uD{9O*sT$)?!emku{``mn6T+B?(d|Wv`1YLkG6zPwQyO@pY zbw5_ea7^x^N5HosbM8e6F0$#>*I6jJEmrwndEJ^dE0iauJiUSSNer~um~c=&9Rv+ z@!}J>Xm7rDv~f7=W@a*?F1@tU{c~tz$klmkTY|gf^du{Kt4`z)uIR3D<)bh-yv@%r zE_U5QyQeQfAwE~+7Uo8^0{?%t_mx3$Y;Cu}Avh#ha6)ho!JPyR8rFR#gde*u+l%ZtY$K;(9 zzS~<|Ra5&RZobX6r39CGjatfWuaT)PFwR_bJBQK zaw8rSt|Ay1?U|zb8U{RKUoNHF&O$ zmV)krt6>HdAsO-gw3j(;-Gb(#Fvv)8?iGX3>_*^Itp%8flnZLWlR6G%7XMD@P33lU zR1*A-r(zqNUt{`X>I{Ub$&op7xgoeUtm0JPLDMRsTG4!8<| zTW?{7&E8tt5vQ_kfLe2m0k12isSO2 zLh^E-ytZ1*)z_N$5GIbC!zOpgkAv$ksg+BO>Cc{4t3YRiHoaL))HB8t3~C@9>eq=- zQ)V)M;s?h!^Bl4{uH!=u^E=f>s}1ABn7<7HdAZo*-^A)CSSDT%I@)rDEmtqu(Jsek(VgHJ-0 zogaW`CxATb0m?hCMII7mT|t-C5?|T+sV!sBZcE|eA6oW$O#_c@HDRD`qITCa=^SyO z*aCH5;Cb;4$ndZs2l#<`ho~Xx7OwvB&8ykOkZ8Gs+DRv@=K)F^hSPs#IuCSC+#Vs! zAJ4>U6!XxMTsqOtQ~~D2b!VdwHJ5kFV`B;7`w^2iRrYFxVAnX=y7y?=lFQ zR=L1w2n_=(kmcxG8SNGn2j!bsYH{t9ZUVP5C?u>_N{$)9(}a9_pufgeN5Y2_UHz9d zM$^aHiGdy09sVNKw;!sP5FO8zkjsL8HLITT0)_;HdDa{4*;qnvYcUM$niTiB$>P0j zD_9-?EUh?4${rQn2=^#e9clhNd)Yw;&MLy1BJdSvY>YIe>3wy;b{a!QU)^z)q3#^1 zVa)sxymx4CS)Z6vn3-vPq%!U^ceH;ckCQ9(m9}Bb8dkZq)zq!z)|kq6-wou@n@iNu zdKpw3Wy6gJd=Iz$I<2Xq!^^UxEC{i}L`~z$Gh@1&$7Ry3|8ca~3>LVFig}{E{KTUA z$2rz}2ooYK+zOPoT}Ce#)!xBdVe>3d6#$&MKVr6@8Cow)ZXhJ_Xes5Fbo+_WaNFOx zm45l1AY6*jMg3zJpW>KvT7oO2kZ8B&4sB1!)0>!n+gCC1J>sCvDO{EH0E^Ksn*zxh z9f&@r;;DQz31piM6pJyTy6ael>RJ@0j0L*b#m)vQU&?=zw+@}3(QSMFCCpDRsq5ct z1lPA;Pho>na}1poCvlK4n>2HScfr>~Sphg;{YNpAeZwXV65#+)#k~6;VDXqCK$e+k z)RuKa7V8>DA(M|Rv0xk>R{o%%&Npzn6brU>&ps9LOQb&2-GbtLw;emj42I%8VDI|* z%@XCOtyMd~;w}z6Vg`;`W;WYz*L4J3&m)|h`?-cuWZIho#ATG}5&T53_pUe0*-50HwtY06XD+H}wo?BJfv^NOL=;{!4qBSAG_LMf!4khvFp0?`i9IR|>poo_FFD5iocgv_ zvM4e$e0>AWkVd#dbC^l11!jajqK0mhoif~eCv^@r$nFU3?!2_eTcE3>W# zl-Zx2VqF-sKnPeX?Lm9WYcOHW4AQ-x`Wg@8T68wJXzTZyI;ri0B+-sAuX?zU3_ee9X@A^Bi6g8U88s1%{@Oh^?ya1%+*hK9n5q$ zN*#r@yi9Ub4mOhwsUL6!4OMqM6&>noIqUX2Woz$Jh6v3*Gvs*w!D`$TYHe7C1l5Kj z{3Zsq8>=jw3LRN57KA_4d;aF}WM0Kb7e|}3b@cje*rI`ZSm$xPNOsv4sv|g@6%{ZH zP4&E54{bMv$P>Qe(QB-*T;)Hbju2YKRq%gasrVEmVTk47shj?%zL>9=MjYXx`vU}r z($C4&$e$+$Ycr@5eM3%v$yRwED0YsVFtysP;Cf1V88d5x8E0=REwM((;xB$StTgw; zj(Tt=tepFlUDttcWT-CAd`md@;D*WKuTi>aL39W z2x(>PUgN&`37x#m4A@Q|Jd8?+b|1X=ZIXMvJ+FC`lKfH@6mEwCj$ct_Ecd;-SWyDI zgz0{a=4~5Hd(EAvAz-84koQ&0#c)ySW(pYHo$;s%<1RZB+!;31!o128J$F95O`!6z)PNAf4@r%(zFofZrXr#jC zB@Z`K%9akcsk=gNzSCrnv@F+{NKsf&=Ep0Kkg^-)kqYVtVHoZ%KZO3Fnn>bD5DRG{+wLkdg&2n=7rif&FlQ8JkjyPQ4(= zU_p8>WJ7gKOCyVD8v^Y}GVt+ADgGB4&%qcMwMMSjo~dQ%E=4{V2PO*}i=MKqj!#3*7nC!3$A0T)yzZiaSMm(SG>rUA z)3XuLpbYsyQvdP78EdigGszkaNqw_k$Sd9B#$s*<$dearR}N0`A=E$tc;S?*{jhn< zrrQ{yL8KjZzbECYEIeM8EL@JDgb$+uwG82q^N$xqb2wHY-uAK~NXz#>XSMX$s$SOG zKC0N&Vf})1y%@_+y}#gE#m@ERUiIA6C{d9h<8=|ntoklm#G)BB(NMX22#e<3|6M@) z%0nT?t0*4>SxA*`&x}&&P9&$Nq0(WSzOtAbxF!;`U4Ly|cX#Qdx8~D5EJTE~0q6en zAvy8u-CrFKmr=wv*jp`fBJ10iD|kw7g6#+j6U1yTP^xW{Pq(+7uj7XZy;0pN>MX{X zwluTj9AJc+vtew|p-5iW!SpExkr*KT#e>}EFn2KB*vB{Yq%WB(;J2iixWyJ6ffO|< z^DAs5vJC4(tC@&wp0|Ek>Rl+0J-6TlhG{MUF$TLq^E-z8D(iNvBG=uF{j?l)Wi}@c z0K)*4-(`#W6#X1)*B!(uAdDbeJ4nH&ad$>+%*?3Zdv?zsL24mWOe69W5o>D z5$IZJ{&~|$n~>(xiLe_c6EuTRGlx&Xi^ZMie-g7aA~>T*0Dd<)Avd&53qdP4ymQ-!R5q=?FDA8D zANBJxO!{%`2}-rj`|_+KEzOh@QHC`~fn9wh3e^St2kgK8n*J+5Y75yk{`)#-m+GtVR(l!Zfmc8m;5`7vksX~Xi;af+4wB{ z3vkcni~HVYzDD9#c~X*axF`ls+~1*~BNsrH{g1o44kRmKN+B0hE~(PgFQhGG&YJYN z`j-vG?B1NL3h|Qp7`n^h&J|7{sZPaOyImj^v&;3;>Wui>v*3!!b!s6i1|F3;yy%25GpI!+g zVf+>0zqLR<#4n?56B}Ir(D4ijfqBoZ+Dc(XcF$M`}l|@!2%)A4rv_V%K@cP*LBu4z3v5l0G zOp8(6HSh*q7(HB50lF?#*;aear(l!|7bSCrJ|3ml+H8FakBLcvSH}&}*;6LN9qTjI z3%6m3aXw3PbD8r{xZhEwFP~pV6p6r4`sHMy0=H`)VCZXziHB8h#AMYYVS<3GWg;qt z)3#2r*Ob)&^+?7Fhx@_m;jozbxVTp%43@xQ1ZLi(^H;Hl5sbVm`eFxl$iJn4Gluk!d z>T~*egZD(TG2W$1P`MjXp z$sVy{>>C@s*XyB6x_mG= z?Pxq+0^gg7y^pxPQSOu5p2$bgf?Fr;J#yto2QS=1w6+`O){@|g?6y`@=ggOoy1nwd zyYegpA;3`JljEC@Xhi;?3Zo7scy@~B5e+9nLMk*psMrx+C#J{^M-g4N&rJ5090QqU zvds_p)&^!Pp9N!2wUiUUsT7n3B=vtBRd!c>95H*ziNghU(v(j=bHPn_9l2cwWfM_t z;&(mb)bHBU#T={PB|QVjkcakdJ|^9YG}XN-!!~Bz2LJhGsg2%9@cn6Y%Hdp9@1WJ# zR;8by7xY_mYQ}0n2NvmvKUkCg7ZYfs&{oLDUyt|Kat*fE153D(*U))+=hm}nhne7ZaqqkjNa;s25!opx| z=3UW;_?V9d$#rmhrGC0GqvXR6jvcVnYH(qBBL%yAP~>gAtCqo)V7uW=Fzu*5zVd1a z|J+B8sw4jEa7TQ*c|5fWcH!5CUqLly4>6zRcdDhk(E|-c?!Z4=NW zbt|R2-ArLVq-8WDGGhm9dsUwbPUT3w!zRnviaxRX+8Peem0O=WiOyusJMK?^-_~# zVhN_IWu6#ZburkZT|5X8x|_kfv)%FZP$zt5Y{#Ts61S}q3!aUwkGHsc>h$4mZ{=#h zeW(QLYOl`;tlI*wr(fIfu}OO50%=vesmk!+coWlG37aX|Vx6$*Y~kn!*PDbRVSgRB zRMwMM?+BlTnOvVl7*sRb0onRc%aD0|ZM4$z+i$$Z+uOZ%Y9Exn(_vp!nG)Eto3E}@ za^so;Vv@+ygSR7?&!(1$Q@l55cIK-HQy~+j_`zdXT{hc=8O^5Wl8-qvf+LH*n!EKV zat(jdO|kKe{RNi~Qay0^h5{xwgv@n8f1r!M@?GvG-EH)_rA7UKdFEpz=0gTG$60P! zUIY4byng(G8Y3n{tG6zt+Pjd{BpS|>Zd_zdrjm|;$L2nuy7T<-39n>;t%JXd|cq)m}owqzTbQkm6j)a;@o`mpY|0J5si5_DG+ zvYUZ4j~Xaa#9N;$iw(g+fBHI)yu2Qd2zfia*_et zRKj4Qs1|W`wu{{B^shQ~`=`qi5#PV-ggNe8>1qre2NSa_lQ_y?3?}rtZECST)6G6c z+Ff3-dfy!rxK#H79MK5Ogc=k-!_3wDI(T-fR3&b>= z97)*oT{L358OY81N?`YVvJgztjfHy93URlTrGLZK*6~GcL%jT5RB)`{8=6ZE0mDUs z>MRYE#;#%?^WOGIxQx4*=*l#u2CctnL>-&_> z$dwi_?%G%ioIuV0h8373Iq}^k(rXS4mpqOpWGx=EMSJvt$2i1WcaX9Rsn<K+ySR&1j?+&vNg2&xo`kDm1rl2%Jp(RKw+l)u%U9b#;*bkAV92uA>8v+CY|!>FZ_`$tTIXi zFaL>=a89G`6Sn$0R4UHEAOSBG&CY(qcZT26FvEd}>X&@o)R@bRNS`(Btls3{4`x%5 zSkGC^pj|7^5rfjZD2HYIwkKq=oe`ErA_s`q9C!B(BTrWw50Vx|O&$$vjC0;kU!l3& z4clnc)b_SSjaU3cR3-*>(tn6fVgawvFka1ptJOmmi@ zNc7L~bTa0%!=#hf$NoiI$5n<3{*M~E^%0~!y-A_pF?YZ@BF}QxDJuI5<$$cORbEFJ z`b)(;x|FEW$B1J%Sk|BjJ45nVwWh;(y3l=UJ4*}>N_O1x*SM6tuf~wqb-ur-xM4dN zg-vU9<;mewFnR%coNk?#8H&WQti8Qsy+zHI>2ekifK1H{&Bz2xt6S}XXvqd=iYF^| zGI@dBA(KzTf68gKu}M8G+aL|8sbr1&vpK^?Hd7M{wGx$^xEcettXncO*{zzthq(cE zid(BdbE14%G`s%I4WZhy!+YL+4WZQE6<^IS;pA0qP_BjoVB%=sX(0ciBwM}KT1S8fO|EWIXL~nuV%zGgi}sq3-Q#4bknhim z{q5ci0g;q$q$irQV%>3kX}ao`BvO`?_7^Z)&Xh{Q+Ne~MFe^bDG^?O}61XUcgbWkd zr-I~D!?S+f;)7ASCf1K8Xk~C-oOpaF1OY+lj60M&CXb?qtou7&mnf^mIuDTem;c`K zmkHrB^gwEK6$q%DBvPP?ft7VxnmbnQ@J%bqc-&n1T4xrE&lUONe#aQIX7zKRYMx%b zcc*r{Nphp!Q8tFb2TsXci8qgNajY&@z4Eq&3t!b(jd1t|KvAYK6eXAkwiwGfY=$?& zzVlqM+*YIdpSb$#5s(>&k^~aJE|_xE)lLzl5>46@xAReZ-NM`w>=z04hy>K1X4Zf|82C?-;M`TiL`$$Ncu4x??_j5#}A) zNa0cqJnA#E?4`#7B@6M)VEK*!KaxzKgu*BoIcb_151T9LXdG`$T-F&<17&^DMi9Vb=;Tu!B$?gVJDr%l*=lo8b) zc#e)rv2M^mouME5K+()j@~WmlEeNaS)#7V`3WYq0iAI*CUKf5tVVn8{r=R_;=Pi6} zcLTAHPN`vP+j1wvsS{p|igYcf!v3qiYXNr=-e^4@Mrx#$5zxL6cZ0uIHP%<`t;t(04zK?M9?z!kWuaJHo4dlfncfQ_R6BE5OP{8L2uu zC&v5b!-PV4oxu@?1N1qQ0l10JTe!(B8ZGTG;Gt_z=pblRa5>}1blJ>tb&MY;RTiXY z?g0Kc2^KNZ-X+irhQ^d7qXk3BN`0~ooR&=^m39pqeDxAEc0ZZcAY}JB7AeL@rn1X> zY6H^&RwHeIB%OsJQ_*7!xIp$ys!>|=Xj*I}0uGB~g<{hl=BHYQ(j}1-0pyF?=h3DT zc_x2dX;+8m8^XRjp@S8C=vHjxFuC>|A;WeP%%j>1)MPOBdT$M2yS<~#pvcL-pXP0b zk%O;IeH`4}y5MTwbeb@W+oT$sz5v~r{~c`XTSZZ?9j?BRx&z4oHyw8Hf(thcu*z@a zjKT)?Qu4E_j;<6Wb+_dzp$k12mb%@qFMoCBaV!pF9yr9x!!c zw3ItmV4L4)r3Q<;(c+2!eT*e`ij-CL(0Pd+Vx&+{?LhZS1O@NrR?=-M_rm^K8$9Ib z5Xf4l9!PF)XKcl`fvS}K%0s8&8F6LtSlpq@Ec!bdU%C8iRmJ21#q?sAG(^VA-_|Q-`c1L`d`(_{aV$i8w_@Es(s0lIU z(kU4QwyU6%Epyo!f}1Xt7KR1jK-WL{{XTA**Jy;wC%vY#`*Bh?<0b4ppW`BV;ti3b zU#aW4Sk4HGB8^3V8*nmSwtm{95cG`meOf3ctNRJIckQ6L^R5dY z*^ZBhO@k9xWbapZYx0&zjqlgfL*A*~$7Tn(i6q&!Zvomp9y5#$xwene>-u=m*M80$ z&XjVc35hDwmG}@a_ND0}YiXhj?wvqA?Q&lpaQ`47>CEFnR*&Jtt|-BIl5B`6W8+vPLYuW_dXwCfN@BfvXE7!X=^^pgU(ozk z`nRS6gEP?*&B~VWex%dzw)?AyhPRY(Udm>QC)kdIgZJxHrAT^*S|K87bfNeBX+K2& z!kzHVo!iE^^lm<dOP{mk=6>%3n7c7hIQTz7>yxH9D*X~CEp}Sw5xT?GOyK@ z-NzXR!P^}xplqwK@1zQ3UWASiAMoxm$t+)=uq66&JN)9mZE(lHmQ7}!F^_Jk&c_d> zE@PQR2>bFS71pi0)-hMbJBQkI&0DUOZgzuIPX6iwE_Fy^LE@U?KP#{$_Zpa4{dmX` zK3YZAde>*#|Ax@f4gp%+!yr^o& zUp$Wc$6+1GnxhrB*A3xXTlCi^Xw$WdeG@2PHtl7@;WTeoV}(yoi!vvq$TOS(nvYuc z&G_~$tLrv9nNU%oaSm6?SXayb3G(pq815p09W@qGVpWLU$r5zzLdjs8UdwH1WPG#nfaKxfo`;93wK)T9C zD0~fb6>#|Uq=$N-7O5jyCyQy&jF2$j{;lbnQFF9&IpA;wUa8B@V|}m>aI!BKDcpMM zA(U0}i4Cen5)==85rB80d|sh7N8J@C=zcgvo1KDDO(g8|LqfGf0?C!Nz4e_c^X=9f zbw}pr`J|F}DU_M3RWJs+*g3j@hHa)>SXdr{8GOAT9xBmVr@b`3><+!mN*`7ly^Yg1` z{1WYbcAbJDt5ZXf>6cGw(-k@jg6`g^8OqE6!;_Gg_hUZCd7NlSb&CY-4^$?tnN|N0a4nm4FpDKfBOT>aL8=dCeAaBdeF zDuCYY4_-9s5Jo{&l@%7CQQ{Qqy&Zjih{MPE?0&^D7 zg0U#m=pSn;Un&B%80)^K*K+5rEqVJ1Xaq4;RAokIJ3IrQ+{qyAfHBH<@GA6d+~=uS zoN`h_r61C<)H4)+4@Q8yp*|Ix*;K!?rf_bzc2T)G?lCKAfwX%$Aj zI%Sx7Z@l!(8ykSbh}hSaajJA=(IOPHMqH&=)j|IXkL5t5YRZks5moUwm8;gfYx?LH zsG4|LsIcW_5r(RibZ+wL1=jn9|YIbVs96Az^py)c|<(TFX#b_>jg3qTW2!K(Z$VQ*TL_3Ly}mS zc4T_Kye{_TTMA=a?R4vvZG6|?lynB2d7eTJbtZ_VRU|wYf%3jy22*I80JyWoO?g3r zph@5ha4ii~2-&Wj@5#5iwJ3fE^u=oW>I;;oHY1$+1?Cq#K~p|7iFI#Y-BdpxnN+V3 zJ&M0^O$T0t`#@yDvQnE)oT*RTmcwrW8dX`wQF4Qc>wnVY{(?Rq6a$BvbA#5Dio3I} zYRx=sE^evo+?I3=`mh!1{Gi4Nb&AW!Zk4S>1TTWH-#o=D_xYK>a;_-HD3@FEIR5;_ zgn;&6NDb6M+jw~{Ipp5McKSYmvR?8-kl7#~a$$a4=dt1o&5|EK9{V&X;YyL{Q%x{l z*y6t;@oG6Ql3__!!+&!!{+;olh3HHd?e%#yuzx~}1^k3un?``UMYjRXZ9WDW)Qy9wk$2zfw3!KOn)!9t#)e_u<7 z`R}K24(YJ}eGM)AyP>6}HxLR+80w?Ah>9EZVG4XQ&J&~M1$zJB@t{$`C5WAsqP~+{{6ej zU^4s8#6B+mZ4%_T7#I@r41I7Ret-LtM@WlEGU;{6zpbSF%NH64BawF>u>ZEo)gVZV zM@3AozpW=29!~r_7Al)a=3hl61ZlAm6kYfFFESNoASVw^*7$~u3I8{F-@YLaB^HY5 ziul`7ji8~GHoN>}ztQ|nUTpwKi`$I1Hh)_x1}ai81vTy`KXH-2$qNK&(F>rmr~J#V z@YN6&#^xy}$9jwMH+h|kL0W)lLWush)Gipv4<7=bxQZKq7F0Sm`oKga?~>MHdKhGB z_Hb?e-g#it&KTeB3LJZrCggtpR^VcYedvm_J&@SJ&8AL!gCun_jQO8p>U!(@BmOzVQT-*N zpZuht%z&oc?g4&*yVukO*~*w0jao?GH7Qc3PUL07`d9dkq!^OYjl=fJ&S!wx>Ni#D z-Me)FqPtVfM$^IMRl4K0zt+aJ(s4|Px!z9(C;x+93MROlt}wf^J7(}+t-tzirN`b- zt+>08?S5C)PJ~X(b^EEAc2 zMOlKgPM-N?;%~VZ9q!MCMD+BUu1jqPW0_~tGF<7hGbiF-s6J)u`$n5BJr7W(GOnHZJ<2kBhCNX}bng1Dn zxEv)N zI9Hl!**k3n3UF0wH$EBnM*eDjSso}v#bX+arB^>pj#h8V81o}4JX~&G@EA~Zds9sD z&)tFqO$`%&OW^v@Z~1j+e`X*%yOSTdaTet|zF2&XOLc07O@#BR=zCB9AijW*FAjGl zXBs$-&jfsxLY86Qnwml8DhaX){q><94%fzIjBIr#cUP?Eq`m6~|KV(weDh#sbZi8; zJQ~QF*_Ze{<35l=_nKoMEvAA>K^(}L%5E32lP?3fT(o+`Y`WmuBB>CQ`$*S05%bQ$ z)Y8`+*i`#WL1RvSluMGyrJ1FE?9)g)jHr!_Liwnrz>^n=>eb{Q8aXS0ILf0vd1z*W z8pAb=`VJ^05b-f+uO`6s!tgl*N-O7A?L$79 zo|D`&wtMy-WizI9f)03FhUki8pG9=Og9HkZ%)P&J6s@W!fdd8l7FvWzXGXHB0@x5I zd~Bo=jnV4NCvszid_ecl4<}POgYnGtR0>J&&GUqPVN|Lh?ucBN&1UW&{+dnD18nB6q|oNUM7 z&18-Y9vv|EmB96^aSW@mWXB~7P0IP!AUN{j>cDLAn0mRi^_f@Tem5(I7Wj^%_!Za7 z^@1%OXm<1mbyS67$1~)z%Du&O(Z~L1s;sTS_>HQ6+vT=6VVKlsXv>I(D8Ubu``KAZ z?xg9ZHcZ`yEh0p`tL``hFs%;P1435et5)Pt{{Hk#GfN$F?b3OnQHu(DKi;Kd-*kgj z0A1A9VW+=Bv8t@%Yn6LxA5n`a?L3d8LeKoM8et!GKoJqNMKA*0f*{b$=)v>>ch6yx z!`v|!C5dJ8xQO`^2rF|jl(-`eKOH4&^(**L#w<7>3JW$p&2#1xF;-tW&$ z#Q4>Qxh^WVtk!clzE}@1FB-?*-;rkTH6bt**)=@deLddVxj~tuG_52DDPD4iaCq%P zle2i`@ta140yEYcX>?nQ-H zTY0g1U48WaNRY5;lob(59RI1AYk|(=Rc{>0?pw)cuTb0yQgR;py2lSy^bTci7`QLi z_ZniM8!%WrKhi@i@0Or*VrUbXLelE!x$51#leFAP-+r!0e{6rO$t6Y@8dAha zFaCNLmy(|D-91rI6`f;u|2F1o?W@Ioe2QnIW31z%f}*g%h<(ZFosEa#b_R`ty(q%8 zQ4Z#NCyXxe8*Nq|-J zvRo2A7n;IE$S+8+Z0s@p)3)W~&9WzRj%;Fds?W1~l7MH8{ZbPwJO(yJnV)YAvwo_@ zWS+>1_YFyod`gnVRDr~gcXG-zEY*7u4Us7sL6~p+Sg4$XvNaGJhGE(nh_<&_?|8Xi zSgQPZdls8B)(H@jwVW;xK;kkXhk3tS>F*1MJv( z{USbP8EwHF)Dc^Pr~E61_iqR_xl-83xi4L8s&i!r{Q$q<(DhMcMBJE|eJoN=TBO+O5S5^t(85qpTsp!@_Wj$oH9*CiV%5MMV2aWGW(9GMJHF%`TF3mSE6 ze^W)rJYTEWaI)=iyFCB#EF0pqF7v6S+Kx?aBM^CxCU6#XFLLEy0Sk{sU>s}G$c%|C z*Bno*ZZGy2ss9+X;Zn$=byChJ@9yJ8s77BrQ0C4rWY40#D=u+ePNhU3lObgo=r=%D zM#$R@93C)5)q~52D;;(0GoeeIB5O3(Snt{pHcZ4~y4#2nntV@3BQ2jMD3>J}kqOZ_ zg=8_TA(&LkYQjhWV19bnFBplz6`vP5h<=y?PhLYbhSUBeEuD6a)z}>-l{AeEe)88V zv?3ewgqo=e6B+5~&A3b!*W<-~!si^hpK;3BA2P6o@81^rjwJJBVe{*q^<<7HLYem` zanP^PYs<5ljS$b58Tu!6z+0x}m7HvBwkH46wI;WD-R5W@k%|`WIOgKvw2N-hBl#*t z`YjixIfoMq(M?Ht$@cm$r{iiba-jksPAC z{d7g^L3aZ?&<7QYCp$IJX0w3j8C(_~ni?8l0_5dCD?7S4Kn9I4J?}AjByD)cnN2vk zv+=|d*J}s3hR;O!n#j=x!GlsdR-7(FE8cs=)(roC*^lbt&aWHV8IYGneK1*?85IM2FytEAXu! ztle0*gIGg4E={cC>x=Ywg=woA6%SyVF*Jdd7=gS*g-3mk#4?-q>Px%!sN`yjwZFp%y#*g*F&_+?A`IGxg_e~SHC_izVIMLMt zrv2)juUeKBZYQ}~FmXaRx8b7&ncgRO+zxLzinuvVM_1mME#oj1& ze`-%N2UFDA!2h%YNR50@A$?3w5f}Ld^P{SW^Z3fSlySPp7gLJa>u_s%^eP_+E}&H| zbMwVP$z{6Q{pG(uQ)=tU$6!`=%EF*cuEB?Ju=iG;IGIcXfY_P_y8l?rktLwr=)x!x z0+X**O$X5>ju!WrxvIm-JirvdRa%-`&^~ohFfOB3_PScBo`A{sivjx5ulo^o|J*67 zLZalz+D%Pr@8AX6M*VJA(NkH6jX0fH(s~6`RSh#>{Gs?O1>-o8w`2*<79P1wt zp8ji+@WUsjM}`zMY{g9%8J=ucU$omN!aV~ z@aTe4C3q}>)gz%e^x-td%}Kwqr07jXAh8QFFsW=gBBjb=O1d~LYi7k)NP}9+XPlGX?j(IFVJDwvP4>of`v)e9Vgdl?YuP_q}}oc z*uG{){JlmESPbrma0rMAFeY*DikkAZVHkIyl6kK&_2E@>S}isN*x@=G+g|q zNFexmBdBl2mR34Fyd%ENV61#_Elg=Ifh0!9lGhY)Z=Usy_mQEs-V&W~C=JWD6IcZb z@|AoqT}9`R{>og1-2Cmt+s~;<UQen_ES@7ez_DW=TlTg1$ERQk`;6Hy{c6{~ z3sdn$O)WX-@?sXbO4Cepx2aNs^YSUCq`8jj{z7u-t{M!q#uadvaHBX?(nOp*or|Ix zBX!6_IUZ#_Xki3~Yt#%ja4*XyVdNj=IEDDSfz51ZehM_n-#}C2V+*K}`Hr@X+yxAN zlkm?$e)^GMX`JUzV6C?(7nu4CiTr)i9~-+}pnN3Ja~-j8A-3pTEqk8q4T>y4!y@Ey*qmO`*9Dmjw)w(FFaz6J*P#dTE+~3MQg8WBAsc|} zwm}WzuI%eFdOMRoACitTCc!BNGkDvq(5DWKA9 z0QWVtd*v})Kf$$RZ%G-P2ePn$e--guIWjL=t+YgNmQ`%IFxWo^nz$ft!Na93Py0Dr z8Tk6|sc5_)SnjM&tm`>!4dC#C9_zGh5rCaTe(#Y$d{c>B_qNKiHjbos0pAcD2e*fS*Ehd@tws+X2jQ91nGQYn|Fu z{|ZW2ANRe)j{eUW+EJegs?OoiG(djGJNXhCwKxYQq93zn#`bD2xvz9RM7=qQZ^8?L z6w-w9Y-~r@j093rmK=CW(EQC-kNK}YUp4^Y4siJa#JF0Jq?_R8n1I&KjoC}6$5YU&^G`&Tttey4`t1|8;D1Eh#4_D1_tG1 ziqn!TJzri+JB6riF0x^Tlzi*be`6PfWMF74+w3=vX?Yy{Z;*Q|31d4fB>gmJ^p5l6 zYNwZl+-wg27K*-oV3+4X=`40PA0ggp2-EAZ%w;ktM zk0z$AmW@66T`L(~!4x~_zVQYDf5{kN&_NgXg|w);iAH??m$&f$W*h9NAgo)R-$Cgg zI~n@FTBQ6plQ&Y(`yl(ri9zJHDh+|mC2pIUf5qj$VR%<+)3=0wOZk7kv@I4gh|XD` z#D7Qqr^vcUe{*U9_cyG6HQ5ixjiX*4uTPX=W=eFkR(u{Jq8B}x1)gs=T+Qj;&i~&F{@<-;1n|XI+T7g~ zyj}HIX>=iRcH29r;~60>i^N2b*Aqlwl|(LQQLpb^tQ}o z(9~k4hEccPAwbWoypqP@xPw222KC7mJBl9_!V_cP?v03-|9WUY;ggbZenHSFyFb zfQ&_}TA&g-d#?}5fIvjP@rRu>pU=IKM^(;)xE+@%ig3qVHj5v6BS}!VIJIj}QO{-} z+OC48!Wp~g2PBHjY2~zbkiBT}eh@WsI9(OFzZezTgLrapy3czei0DY`gfNi4I+dnu zU{TBGxmj({x@ByGQ+yo$X=VPia$y}Rj4WIp8;o+vk%Og%38JM&TC*@b#>{teNeD|Y z0i9o-pUltJC3;|eAlxEfIcMPVn(qW7*T#IV%n-KPdP0lDB zoAV@g2)EDHYxcw%kJ|gZ(G!_NDHTb>Z2w|e>I#X*3HQju8P`#3H+rM8AWjXz4w?6* zl1Hn8{y-e#PkVGeUQ&rr+?>~xf;r1pjMY|iY@PG(WTuPW+pP*iR4=&Ugi8+#EcW0c z0t&}JLtc3Z;hj0@d{%+*zv@@-!i!T22t!4K^xTvh} zSG`h(D11&r+u89_RLhmO(l+~I-*05Be?lw-O8yNxoi&<0&^npDpVo6^ChxlCtM0*RG;ioX zL-+$6dX`j#@`5kKgQPV_#uVS(GMG9yYy}`m<5UW>PJZVR&WE8w$JV^Nz*97&5HP57 zK2W=0?0H60BX>Ty<{eHGO2f2Ix^l{I_Pn-x)O#Oe+=E8Sr-;z}sElVa=kK;N7$0@M z*)Q`k`fUcR)gI+vG^qGHj6!UlGN%4-Z~Q~4rUzJk_VznLWOQLz{JTDarmy7gZP>iI z+}R+oR<^#kqaTY}HaJ;SkllVAE(b1=(;J~!qdqi_QD5Y0e@5LVV-ep_xoOtJ?&59k zn~1wdM~)O4xumN19+xklrxXgOY;UP4ku0G^dZLJ=esbBWJ#1<6G?DyfdsXOwV)NDfp~Gn`L)bSlaRlHBs-=2dT>BU5a4CDZlwtp72H{Lo5bc!$f(;8zRj%h zq5fi1Nj^P1iO;oUK8RzuXwGq0tR{JUd_U1_k|&v2o3le}&k`MPFA!(^l7M{@W@g3V zneon^w)t9X(>bO}zXAv54=VFi|3AX)3s%Vo65aV$1If#>+X2djF4lA!W#8s|TgOcX zFmi8%bLD;()J*#%)Npv+Qpa57HX@R`eet+-n@K>2gC8!@Z7iyl;3eh%{7qS~jnHIw zEJLMAgSA72oF-j5mQLd2>M;M<*UxBZ=LPss#`#Ns->(DKFwvyl?`|Jsnx@`yhf|;J zn$N}Kmxd71L=By4Nm0q0?C>yl6HP>HWp}u(el~@FFb5r~};1%dbbM zWRhf4I^AVa{STKKrL2Jve%7Im_z1Xxs7_t70kuDyT$b0t&Y{E_-ooj`?MdtymFHO+ zzl^?0*blchxnIz^N=1=Yr>y&5eIoVPeX}L`;?I^VJwvcWwv&q9cECw)yf@@zcXKQa8f&0oP{(SqZI*+v!U>8ribb3J1pt(GMgE&m!f%r$f>4 zv4UEu44TTcKQ39Z`4ZURS($gkZy^DopWFKE5R1$-0|W#bh9;=8nGSu3+U$Gn#5*b% zMx4y=vH5w7qZGENAGRI4VMgzuAXmeEiE`$Tw)k-dS)8E&Q-)@>P!__v)yjRZUd7;J zR8|iW**dB396q;;!lOQ$LI~roLys(hf8>?OeAV7%377%~SX(y6@>V9U$ini58J3>k z;Nw>(gJQyLXq5cSqA&Mb@y=CWXZqW#-qA#t)d1jd-%nXimR&@qXLmTURYLj=aWkkL zB181g+h%tXU`15|K_n4Z+^J)<7^mfA0;AQXx9Qew^+ATWz^gFUlf`=A)=Wi?46;y> z=VXbuXMu7~0lH|-A2v2Q#L9*U7b$NJ{p1?e5PKJIp7a`be#&o8_Uv}_<9ctD)u(Jc z=$d86wMX}jNihJT_8~r=&GBbTT;d)Dj1`YL?rHl8V98|w0vZvG1Uj~y&&w6w)<*Rw zTqd17CiU%n<%DAsYLBFtyCl8O_&Y_?q{(5U6X`_`Pd$u*2_3O9U_PD@MpQNa0AR(Z zeo-uHZ>bf~1Dae4TflEnTl96=YXePh)}7<(aEd;;Jw*SHYgmW#)yV4O@xFiW{b=9S z(OqU_zSK|+&HbalV>`vwL%gDnm6-Q1nb&>bdLZ@ZLDee7bcj8c29gL5Y+;(W=M67! z_e?c;844s%$(XQwb=nEQ8m~_%c1W+A8%Sdgnk>dEKdo>fB3T$pw9%x6R5*ys-GoNk ziJoDhlDHnuhVVMMMS>pfkl|BrE?89JO@ovk*ab+XN?&2VGYi8tYml<{aoZpzg8@AWd z=Q(ltWJyN1*RPY==@8$E8GV1oHhrYs!mKBJ&!W|4$-{zZ>BYbv&II|>(R}sfi9cYs z$=qTN;zv&HEPxf#aO3jc`f#rU4^OQi-loMcxvWAbHeKICvnSEPn>B6>q_G0k!m`4* z+BMpt)ZX%czCWH1;EbFsrXV?_yULZ5S+=0ewdxstFoaS_G(_gBEj74;kCz%~2a}+m z9wx@#h)q%#XW+LvQGEyq#i3jZ!@7NcOII_HuTl;p&^O^;wFM|KY)*hk3P+0Dmil(m zJ*y{TDv1fvU1at8Xg+_`TDw14!yj!hAeCWD|ZmfL6JR=BWYHthI>;EUk)_ zf7|=ZZhcE#FXO7U1Pn|D+^X=!e7xk07&rSyF+7$MSE@IFJ<|JngA%;;)YPc~5f zvGHB1>LUHfI7&#qQ-~m=g)}FYyDZ6Ve5q|H88Ks zzWC9CtKvf$Mtxr#na0l^kElD4(8DR>Sz8r@#)7c>8das)aHd|f2c4N%5E>;--tpHq z6vT!{9O5z`P)TL?hSv1nv<2*G$#E9@!u9|k6ybEpwlZlR)${jAg#{5K?y?s zPq6V1#!yFuT&5I0zUF30YGk-?P!BzroQIVAu!@K7OQqlo(;i0XdB451*9bK^T?>NRMfAVmC^U2{VCJ{Z?<({c@JxFU*w-dgVlK9WYx{p%4vuqP$x#g zVc3k9nq6wY&sEBjjQKJXN~^faTA)?EZ_QjmeElIb=+9%f>58nDJX%cYil|ZiDgON3 z%a`T#n0|3|cVs7=O4Hx?hp-bC1S~jV;lBLQk$_MTjCT;cfsFOx?5`D?zvLh!=a-zu z<3F=Y|K&x(3BLh|EP3}|3kt=#AQ(oR%kWJ9PdohgJ~I3*Y!+W^+rQ}jHyBI5LCwOyUXtIevrNq`o>J*3h;fAPJL=JMI+&N8&mIL&~Av4 zPvPGiwAOKPy4+PtVp-FM)Hw-}2zY#bh7g>(WF3^8aB;+7#rx=4J;`Ac>Y6L_H9{e` z9D2?Otfw09UrHt2qm5C*G}hmB_nUf7U2bMm8kcxK$w|r1_|GoOFR(_@?-aR{E$xNw zRp2b`*0h0R*4xuW?d$W-{E9jihh{3^sIJlO+<=Ctn=qi2)?FvrWwl>qNQ?V&-9o z>#H1rwT->Ui$~LM9C?j0Ni_x)tZcx=O~v-LdVnkL#peLR7M>Ha=9wr@$9tnptGf`O zY<-A}1o|>5E`!Rq2Imt=1ujS`lHDX10xB}p7`2zHc6e@(IGWEq8%wp8}@P&eu2lvEF;%SABTSl;d~2cgntS z5JlpCoiG^Z?7Tmj!^GSy?tZ?RV@oZYJrG;S&C_~x;dW~~RncwzKuNmj4l`YWWs&Bx z16*ZBn0At=X1>NtYNl`WFg}W}G#Qk11SQBo{JgT8w@D-O-Hb_oC}Fh%o-I<2cR8hf zM_9oT#<#mAh_2f1TssbR3ng|BW|5Xwvr&xJhbcy{k3xyxG5~vIRmu$B(5aUY3tSvl zzBk^!d5nA1zjxF4B!kEg*ZFGfBa=>@@a^6AiN~_9wUt|Tuq^J!suQsGDxGAJvCX``UHinCHy8;d=yon`>0*55mCvKJ+o>(t zd-#T4)xCYWYY7^NCvml$D?gZU@;d66TJy9%>LIi#YU%;#t!b8OPngW$9e5_s+j#5R zidoAX?MLXgCPQ+RB;sS!jC%2Ip|!w={EN}zrnzo8#AC4aq)oYmTgD|CO}xClqeVRW z#URC3M?Or8h9biZL5*HY7n|gsT)P7`#Kk(dY6%+DY5uYvIWoS8weNzpby-4AjU`X6 z3k^AxbXRS*jcaPluk~*?-rBgEHX|OT>ZZL`qK>MId`Z6LtJalwmguEbdAao7wzk?= zINDFsCEKZuxSAlXt8O=yFE2Yl#W-l!n3 zme0ODz1FL~;_~4BN|J>;$m@%mb`Y4kBNJ*ueSf-GOkpaoWIdzQFf0(w7FeKCl0A<0 z>_%RV#Z|lQB%G!5)5o^VWX2uTHwF`EA|0P;mS!%2#@!lK)*&9&@&dtX%EVfB$%PK7 z6r)wb?SAIQ38AoobuA8CDBg*R*NU9v^FnsjJ%~W_Z&4VVTmz(^&N3wijs}xUS3~&A zLUlF25P=^nmZOZRh3u@))`Phx*B!>Mrqulq{L4yc)oWhG4^OL9Ti`6*wgVUymnZYi zum!GEPy6YOxJR{JW-4e_}|qdb|{IaEhK`kjpA)d5#J*|vBQPWE60aLKpTW-XKd)mFY> z3U7<>aH>tgI%-aYra^uTm5f?VLY^!E+b2bnHm{}8=l!Wd)x;?ihbQJ%{90f3d8{g| zQM-Dnxry`s)3t&l&*yq{mADI4dOib@srxyzJo~J`0=<@tk%byS*eRm>+3<{h;dKdm zt>T(GZyC7@@5eY|*&spA?ZRASlwUbqYTNQ1)$xKh1x z{_4}m*j$H2vaGa#x>#l%S0c07SQ5vyzz6kWo%{iB85;$~XC=HbbTLS24EUbi+3td@ z4nV}ILX!9(zUfP9Syz5eD3s9IkuW+0c)$-bzcZhr;|Rd%<<*tZGK1+Wk!dtxY+IekTC?&|nSmbD=7`@KE{mI7q`^pX+3Bbyk%-37UUW%mSHdk#J zoJT4oV@PZkJ1Q9&?$m-DuTVv;wK$%!u~tjET90bqQK>Nuw#eH--<)IpX@&|uk90d) zGZW#bPiHcGbv2VK$J@}d;I;@AfH+Sbp2jNam!>raSm&wcAYxj*gWDi0?wj1Jq34sg zj@Q-=3H9Mk^&ncf2R7dCyg$C0=<%pV)Uz(zc2c*h7Y)#LW5HUL#_89ec0)kHqr*3l zGyOu=1*0|{Lv)pz_bm7Ujav(FF* zEJEguZNTVY00`;?WI=;y0EY{;%xwb^ZI-%?2)FHeOD8zCUpoh2x0r<#;oV5x(rwcO zC1+2;>Z7SWXI&v!u%iMqA|#Y4kMD--OqU_Pfqc6788yrYcKq@{wl)9}w3-X88869d zpyldncaDB5z;C_Ap#2ew%V9w1>r9KTc6F578@UgNmItu>Pylk`O)70@8ZQ1m)TYx% z$54R|&`Gl^>ZX}!j0jdFX%B0 zO8lpw6TN+nm6c{sF4dlIK9o`*LbqI1dS?>zcER&6L?*GVz+72me$9%n-*L0$;u(*~ zM&`N^Q~h8EqH%48VEHlBgJ{C|4aVaAYNjhzWA#P2R`|>AGd2dLtAlSHW+RBWP{@Ve zEUqEAwPCMD%8@9f@OIPq?0?-NJ12BD*%?XMAE0M$wJIy;R(1YChM@8!+C1T`+o;{- zX8#4p>t1o{quP5om&4hNfkO2qHk(ZnP&%5OnS~%um5}E&gKCidc;T^IKv>g`uZh7# zPXyg7(nEL+b7Jh}i%|i*gvTY<{lyvmD6aiTm(9s{>kT99mWd`3IV}QhuuxOz>s?Z0 zXs=GmWpo!>ynk9ejOB`qfxZX~xEHE1!dgM+4{*=J#lY$^#TritRcZ5&shY&b=0Z>M zoa)va1vqs3??M3*BKQ=8)>@hH`T(F^MQcW4Gy;C^HWZJkKnlSLupDs9H+FUaQ0fqT z`&eO<;&4zaNZb23YD=<%XfxHC-rONzYJb4qv~R95(86QYJc^<*1>Q4e$BNlAk_gK? zKmy!-F(zH5+p)1Ox*lziAU#Kg+4vu|rgt?^7>@tCzTV#>m@Tjd)th6UJLcC~r;wV- zGo&h9**lw5%q><4;t|n5Z$GXgT4%M2xsN|(a-eN*F!zKbm-$hY*>9xnzdsfcxTe#$ z3olEl+i0jhOn7*ojrv3~&l;}8!elvpxChmm*H-KcIm{(#vEoKj0Y#5C<-DZVt{^aN zXB^P5#Q{%otb<<00~*s%Oli7f zF0jt8UT)(9gEVW|gX6W+{2F{)zLR}Yos$%bsM@=puywEO8CF>MZ0hG7!_n#u`{;V$ z+B8pf$y#YPS|ce!auF6Fd`2A#ukpr6N2;lP{AK!M{25~%ZjVWtDTEAfi8=p-1N>GDfQM{$TRekzlHks_oBFm(-Y16r?0pCl_vw2=c+Dd1c*5n*>UfKIHrz*O6SiSwc&F8hKJ zKRcbKb&xhuhu3dsY5Y`$_@Pys$VwEa(52dFFH&Q3x2;_68#y$iR^7MXiI_w-6AIF= znB8Gg1nxc%VjnmG1COEzxq7F}KLDxBRxQ%_*c`w`ytufADDD?xJ&~(`#o%))+2VY_ zIZ*L6mh~~NfmpZ2A(7L1KJWO8iExG=JgxP7RiHW=5l80j*#;07of=XEe%Xc9t-5HC zdi%DOgDI(2!j-Z3at zzw!ELuN{#r8^Rjn=PP2PHBU{mEv77-k{PK^uZuAh3O6K|4!dS=Hfji%8TcPz>ebD2WP14!CN+?;7Zh;DI zss(ntEy514{(MU{HEVfm_<_cHGatwTuKq!#Q(M-fdVM%IWfH@z7A;3H}Gm4L2pvMRac$b`>`@kvkG}Wyg@p)fG)}{J=5#{&eU62 z_mc@#@x6KM09F-Q0;qFqHPW5K{&2R!Q3m1d=xl7C=?3Q_3oWTC!LUNc$_ zaiCV(dohLl};q-p)DFv6Dm!RVOsYQG)k*bge$m z^&&jibXj`dA?lCAXJP~pe4rm&FE9WkEaB5*vmY0?7|*8N8r2u(=@v*BKdANMvA;oa zeXSk-P9at2>gqEds|nx?Np;8=jY|#G1K2Ku_yJihqWu7yf%9_+QO$GtJe(9PXvG-y znw9C2zB>$$I-Kf_YJu98%fq*$nTw9OxciWwzje{CZwsT4W2%J}XsEyoHx9ZjH2d=f zPOXiTTHDio*Ts1%%Yjm}N$)Pofs3&LtWohSOp-)juW?M6RnDY?QhemEglmc1riJx`?nBJJ<$Yizt<8K+ zZ!YXO7}_&qtL3i@^ao*%zJVlkK6rTGPe1ymm$u{QyM$B|3@`jwsmvrJG9%SK_AvOp}J(RdkaXQ8g)tHtisB72Rt&!I%Vo+@a?QS%^LyHl1 zwwQTSv#;o%%fny2w+Bu`cZdoFQ^A*_Wzo}&j2MzUhK?^WW4G-E=FL3JJO0tW3Zc=1Nvsp%^D z%D<903UTm?0wBZ>YLW1*6grtwM7le91`!)SRC%DLz$ZvuGRJ2$9GZ_Bu>_ajHn-Fe ziMv?5J*Gm|2rV=7?SH(RPn@SEpNilYhvOR;Edb_QaIIx zYj~%4>t!v{%b}gNt`!cutL*d;kx{U|JJ{?%^-KWcj5<-n>R|&K~9L zs>T7B<8TE0yIJY04mtlYVGocgT;o>hl_f zNdY=%016HplfMEXQ_$Hh08^UhRkh%oBgJgbDSJn4bMeb<^z+gD(bEDj2(fLu!WM01 zl=Ys5hNa3Ng2oGaxGx98_lTUtKJBleg1oL@R|RV{-znJ z4S2frMS|7=aynOm$8lR_!U%Hky7(MIbDO3Yh@%{n?mHgt-r!hsO^=sJb1x_tuDJBd zd!zL97T6^8RORh#U$al1=XTyKa9Z4W9Msx=dBJD|^%m-$1E2RV&Jk}jY4j$IL~O&; zGPolw8l3JSG3!ral@nQGU@dQ34;38}A5-1x6mGzIa{7c(t#c?}kBnO$*A2DHjc3Y* zbkNe1{1wz_&}a6`N`&L72hcz$PmvCfe{ZKpK0+-&`%08Ii(dr^Gifo5PtvKAer38h zzqRJza7gQ&;GyRf&e3wI&wR7<@A$~^2^JP?U&=u;ZTz2Geqw8A-`0w^g))?wA1<8u zF8^#B5p_>ApWS8AO^WlDEIb`+ z(xdG7K@BObn&_ZoNxo z*A7JtS;J@|A-kKSsRoIu>k+|)zTGU1zwKvc7HTTVdNf@}JhWMA@Z?dABR1gsw96tL z&0W5h3eL>u!qEDDadmsvRWsb=GFTZ%6k}OjHWg+HIlsG5SK^BKu1-}?EMGhE*7|kP z4hwTbr{k#k$s}&5oR`PN-HtxXNaIwBVh0C*Q@#H^5^4_QfGuqplsCy@%Y#j{R%h?Y zYG3}4(b*?X=-kAWQRU^)jZ%*?jgEj#EuEMm;l8uFmwpPX)6x+7Tz75 zO=-L~HuOhj+*bs8SMTXeR+t|1QZFow&!Rg=)$bm2J84t@6B=;e9qcrz69ka`uT}lx zu)1{Pp}fPy{Q9TW1uv%e=hJV&9414@mxA{)8nPV&XmS0fXLS0IY{(qsfH`vn85ifS znubXxb5OQ{1j=-JTLPMG*_+Rej^#NOnnSOJc7pSDe~FH6cfqNKuq2)ZurLn%Bs zZ9)9{494q+96bHKtavt`@%bDUU6PD@mxPH6!Sad$2l##U@ta&v4 zUJ*k8tB@=A65fD2#LV9RNG8b8trFyGBNbJXns77-@kV!wYtHhCSxv*C6c1PwnL2GB|%v^m3d z7|;H=4~^2RSn~+^KY`hZw;6TS%Q`Jy?xOW$1H=p#;pU8LzRIs`1(a}G?)PO(?7u#a z#?se%G~V33Nd6!8-YP1tz6hABIHJ5WUYn{7dajMSQf7|=_Je#2#7qM_MS3%jhTJ-+4nzaX65|dt} zvrAvk&6}Db-`Lp6DjEyTv)}qN$ePeHy;^c3x3@!r*Cehnbh4aPzcnjcXcMxH%<*$Z z_Vi`+9Bl6|jDwjDc7LL*PCR-(ND%9YjlA?W<7q~ZE4{!8bT;D@I)Z_$-d68@P!>ZP?>(uV0=pc<$=V@wa5PBon&n*sOY*aEcO5f`dR%Lk(`n4p_*YvkoQLl@oXFOHNavt2u3r@KB<@9ROF~kl! zYbkV)ygYlE_A5`XIpE8UAt}6wt}g{pui!mWyd5li`;8mab-|}tAlHt&=z6(Bypp!+ zJ55z0#$~m%S5MhO!T{PtqCQLFPss5$y9so8Lbf0kkoq?I{A)wCrs%SY-d_L5_2eNB zaOl=;Myb}X=|NXE9B)}iz+F%XHF2ass+Hd!K8WD7S~n*tUf(k+{kzD0S-LqHUlCu( zSS=k?vla`)P{p_YP>2O^-&JAT0#-`+?gCu!t2V*fWM><|5abo4<*8;#&nd)aaS5-X zkX0Nx^V_abZ9Bt!Uh8i6Lz=QjUh4d;9-_`y#ShXR!dDz66L4y?N5UuW3E}51k8|d( zt=ow+nQ{M0lK|15xL8OvCk;5C1Nf%m#l3e)TB%gGKDZUpPkF5vo6E<^IU_P|V^KE$E=O;D5V^GJ3A=RRCDbi%YW5nR z=wUpqeINtD%HoVbfR!xIdKI$@r@EUD9rV&9F|3Q$fYsrX>eA>Mc)zO1yv9K7Qu+L7 z-C9^mwl0Hnw;^78vh2tBV+j0J3!&w^kGrc6TXt537Inh%<2o$+j&GA5R*aR4^6oob zJvU9dg|=HWE~>6%vtM9#L}mS^=1z60gR+WZkk|d;hWMjGPvFK3F@-ErCvC1ahjkC> zTf`2zKNnA6a>AtTH{@6A49c9Y2w>U#hctbVBN3dB4+Z*{!;e%e6D|F zyhVNq<8HudX$e3Y1(V{p{6uJFyGF9$o)4;K1lG|)kQ%6HwzwClxhg4JyHM#~JHpED z`}OCko~^yWF{oLbxv{AAr?z^#DgWY(J)_}8<2qM`@$f_ddC;Kxa_Y0bg4xA5=2xsf zm@d{sAPdy0Wu>^URLY#jeeWTjChC7tp!01wF1D4AYvDr@a#!)mPvR2Z3E*uDs&25T zCKhklko8Kj?8raH9u-}6&h8Z%<6CI96JwAnov>+4__heh5L#JyaBeD=CVGw$KqO*q=~Rxd!u5SN`Les0|}3hqSMC;LPYX}A@xB7 z45h$c)>>A-ZLkfS=55aD249Y<$iDwIDx_&l;QfBQ@j1_~FeDWTj5|?^_c-r3N`9F$oTRZ9n+RRC*t1rl$3j zg&J(sl;2y2r7yyuaW*rhe>{5p<9{4u`}TR;i#<_jn97Qvzk0iyUNsU+dPgmz3N?*TZ|Hv^IMVsLW83PSl&~!8_&`WoT8PDPEZ7%C(~YJE^RQ}4ZKgD23=O? z9rb?m3cjlkbGKbC{#*QPi{POaplr$PfOD*d4aIj z&}LdJY-;=N4dSoL9aL;~*spU(CdRlLMWb%Y*vjRn< z?YLD_O&>Mb0&gFcW#{qEQt}lDgdMD1=v7C+aIEdWyH_y1`bOQO`DZMe8f_1oS_k*8 zpDopE{<{U_R!-KFpRHhMjXi-mc>ezDr=IUfw%x%{HmdXXLT0pxyHV+7s#kMRh57|V3WnE zKUMQz_2;45l=>q*7Eny|I%!ww%0pw+?<+1xPkF0Q8ZZezezSR{Kf{iCz|ry2-G9;*7v?Mw1U`rKS zf;^DbI-zWSZ7he}Bo&jv-f58?gh5=gQD@&sI0R{v2`A|3Bu`k~Ca>jsqHscfG#~XN zZQ|yhBX(SxD~kpFu3v6b4?XV|%smgdnJsBLv~bcc6{uW+dpVxK^tzfYFS@93uShV=DF-^W_a}rmqCL}KFHY4fmf;yZyOF(X5xT~JL z)S+^gRN6bKZQZ&#%b@Q3cRvLqTUISRSvY$!zPnVTR8DHUv4J0cORs!n$~%MQx2BjT6j z$!;f2T&9&RnwmFAP7c8f(iRDBg0PqOi_(GW&A}rVK^#C5pG89Nd^Wjk2OX@%3aJ!O zm=%XO;nda)7JAg*A3C6K6Wb1US+F?h{*L4NP|)Paky@jHRQswR$`%&W0jcgZT(vI@1+ZKPPQahf+Y zupBY+H{fYRcun&q_j!duS8o>5aqYfRjL{acxNZoRKU-|M3#)YswA-O6kh3?NUAmYZ zw7zuISTo+9CviFP_GgLv-S(jA_TGEG*mbp}DXCQZw)tY{V5Q&d&W}z`39qr{&`D$A zo?yCe|Ix4jG`;Q`CfHOW>Fhas9=dM{F!x=bHhMjtd55=o*Ro||xny6A-s+%;{Rh?S zP-qiqW_)VFkxqR>rt+c<-dNuRxZ?=NpzksmdI>Fff?di%=WU^mK4t}U^ia+F;M>)veB(E9aD65At7oQ20*r}+xwuRxtf9~)m`vy65}h=J7DdVV6? zA^4KLBq&i?M@CyVmo}Mk)7&*=Um)rXKt%6Ov3}tMC$ky#jHQxrx$G>=SDNfKJG(1V zVx2jV;9vkCpomNyV|ZNJ_mKn#62)DjCV^=^V)u7;K%I4mp#^?}(j-%q}(s zF95Y35jfecA!z^UGE@;6BjZbJODgYgzLql&qb)|Ci|8W1cOK>MGIYH=7%y`Wp17ngt~!mu)Mk9^9)K`R%0gXdp#B zxo9>JjYzc7={PuluUCWTyF43yo}94S3YWYgG~cG8DQQq!r*BY0f9{|dhvVAX})bh6`kRW zfJ)R_Wi~1Cx_6+nkjxh;S03`ZK)e;*>^LF&~iiS2(`8fW)#d_}-XIVcac#qdO!QF_)$F>9yc; zQKDVQmC)jYCNZ~Dk(>MT^qlP#fKoMajgo#&=3#?uU_g5*;;|7mZ63*Ui%rW73o?lY zcJ>m!_&KCsTF$lzR$H%%+=oDYB_xK2gosWFA{lO}p#0kH72yfwQV=PY3}^$w~XGjQ5ppsfYbadd}Y;s?1`T z+_|)%ljdsV$=TeiZb^r#0>t#aiP4SFfE=4%`@j zd*pXugR?s%jzzzO93LnJOIbHV!|By`ezwU{oTRl0bYbEHt3zfDAS9|TRBQoJTq0cW zUkWiLfL80!{VpG_NyhjE-SXTfN>`BzFw%rX>e+xqvTp@zf$zs4fv3w+^ry$)YDGHP z7oEjq9fGEfXKIeC&z=sLwFm${Bk?ymcIda}gYFtsrD?qJ6NSU$uJ<#FPQ%o1m1YU_ zgE6X%6c)XvUqa+uvfDD_8RGdSr7JOvnjf><+=G{kU#_{QPZ;&8eg&Wr$zlqed7Dd0 zdhkuugo!QNGniO8BEBXqZ6Gw)4hf{Fy$G%u%P-0VY1CRlD(?OW8Rhsmu6e`6e6W3+ z3H`{tw3Ik%Y<89wp^_*jD0wgGe!J}a+w`VL(;?{c0Fhx!e{U`-#jPNx0d*;Ppnl#f zE7v@BfWzesi@xI?p}l?}mcF2($*31&+A32=OmSxwd?@$V{(y=Zk6vx-VkN#Mi6cm@ zL@R#)YsqpgzXM?8(*gCHl3h(lN9U_2ownY+*{V3?Uy$;j zal|xok@g1XRlS9$+wWi-Aqjv&MKO;UN~zE84MCW|{%2N__sr6To{Vqm_S$;$dd_&( z*31=-PI!_Jzzkqq;9JzS8`@pO57w@^r%Vyn^15UnwhsGn+?yJ;}O4lvEa_ zw(Iv(wfVCr_c^#OHom>?nX9&755{K_HT44>t)>!z^9Jr^SXz%3^!cjUV|d@A0N<5ZfQV?oZLK(cs>pzkGv_Sa&b1fd%`Tlp87-a7Xi8BaE}1oC82O@6%?) zbY1SJAnd8l<=ZKq`4X$ILx$WVK{3L-RDj?V3z-%M{0gmcszjBc&9D0v=3CgOH3HM6 zysv3G^B;X;8PxL1T+Z@tAkYS1<-EW z`0I83fYk%+_2D#UGAX|kqvAn-v`?kU2>cxtpJI+f{woIJscW*u+Cn3%x@oqFMF0tf z74XJ9)Anuyya}hSLkO7j4v{d9)X#fhmYxCpi4XK+ZcO+uT*dEvqS7m1g93P4GPfNr zj%*Fyh$dRci@}{cO?*SQ z0`kp1pYa&rXG--;nJrhIoYTGqZNPx<)O*1LC@wfhPA11M4;9|A` zdc5$#C1CJMnX>>%afK4Rv7F(`uIe<0{jSYI9^v6;Kl7x!6`-n7gF|fBcSa6NoAK{f z_r?#9uf=99EE30W&&3SW^p^QxbiEW6^jw~KRS9fg08Yl@F88#2F`VpCHO;m1I}F%{ z8*FMsX`owd9@_?}$W$TXjT_S#>*P}kTL_>g#JMW1YKx*YrR|%)Oqk>6TGSaHA7_B9 z4x4PS^aVYQl`ISbMjrW3e$<}2wYqpbNBUk+)#V5$l;c83TA1xWGmc|NF>^z8wUaGy zULIh0a$qDK_!w2rX&LSJ-M^lr- z*;11wR4c3PC7V9}A`P?xI8^*0%(E)q?Jk{?C}-16O{LriF0~n?$lg9lwIldgf;y4J zE+{ZlG^DD~T0I*vFicyWi6z+*Lzy1Le(tJjhByd}&*s?6ZRniZb8p1u|67s9ImnPLC`b(~~ShjVEf>MnR z@AXX-iQ_`OJrV$UMXgdgD_ZxZJ6d6@2lJ!E$i*JQPk-F8dk*bjwVTNGpM9xJ$?5W z@9-aZ4YS_q1xA-9a!sX3K`;Fr=Ml{mL7ooGYWcN)q!tTO)$;cV0K#15oQrgIDX~AK znagS_0We=E8Cg5F0z6(!*M0p1lx<7_kO&y}e+9!&21YuyCvBpcue9++3RH>*tW7Y9 z^l#ms&U@#BslpyA@Gzreu2ENPLC6jGW1#>ALf3p^mLT4OVi$e!DP#=Qx{Ij0+p}-f|ztamv<9gAmLMfkX&#> zRZHVRVkiP;`w6`ofi`U;Ch(vugwN58jm2Rk7|oG^5uTXCG_RShrfg(>M8C!l52N*$ zqVh7i*O6^(#9v8)C-DIyJXD;dCa#^}E9GGwMDo7s^#RvN<%N`PhkA;W-MzTy?PRJJ zw346e)@0@|WbPxHt+2bFTO_?Iz43bHa(%XDqX>mRM_UFhU|y_JZb)O;9p3WeNAtvH zkEr{GGvfyBiWM{gL&5s%@|Fo{+OpB%G=AWMNg@=(xE0tK7GMS#Tj4RQH#FaNe$cVZ z0>)|8&q`}&3wA6uxg8jWk5_nlu3OVRZ6GGFi+Qcv;gm%EKMVL*w^&|~rzm@kUayul z;c8~hRUKg9}H zDHMx#Ra|t2$HmZn!NxzC@)hAkY*U|WBFjm05&k4;gpYP*U>COkT7y4BF^rGyh&%p?aY_AT~4-SJdNVDtIKZF5t(K z97+l>%ZvN8Lb%JiNEqGc2SnMg!VRwp z=!z8bnI@Wl$?aErlaLEkwQ)Q!dIb$i+u1c#8)(7GwzIL205%iY#DWLx)9FId)PV;o zrHL~N{ZZ_JEvkZNn|fVu;0Q|vSgjo9&aWEJm@uSDdA-P*RC1dqwz@_Y>MH^Ut>b;k zHEhTxJ>)AYUTx$i8`zk~0bAV3xMFSOfj5AxAIeN&E6>nBVm-(rSA1R)IX@4@C793KFDOj5z5yY}k z)=i?Crx>Moyr7C+SHxYB^Jm5LRM-6BYSR4SU5Sw!3T_3kugN}bZRM;+gcGfsHLH5a zj=0<&EFG%5E_W@&OW{F6v^tJ#VUd~9KGu3|HJgUpxu%4=z*SixmFm2hQ9J>Q@ID6B z>Er*v#8fifIJ@)20(YnUsvyA8en-V5lyChD!SaF@cX#wZBg$#tp1(FVx0%y$yB1<# zzK>}SP6ITlB*B}7>ej^sJGIG1ZY;QjKv=6Oi=-2FIOr8pT4Kpwenico5lt(Cx(<&D zY}5E16c(tLis*aZXVWi&Dn+gLBGY#kLp?tzjkQ);EeGsWVDHnVs09fPS@UuU*v+xs znyAs5A`L^?N;1i&9LE`kZC(WJtlt8*YqG~T0ZpjQLHc45F93WSc60V7S$b{Kzlhu=%@00=-`s*>0Hiy8F z3Bv~oRBJaonrAjW1%KAw%pIz~MoDNva}AB1)f!VsTm3fpjb5oDOQ^U;N-Q+Y-9vyI zzI>xIqyw&PPZEfjLN3$;lT5xvtN^8)wNkKAjL&xj9Mgyg z$TbMom`uE1C^c9)aWJhK91qFqG%gosqzIU352lJ`boD*Oixa)OKcTLAr1`wKB(Val z(;!(b2G0AsYWdeAahouF;J@uh0Kt(MUCq@R+3a~7VJql)E)5sNgEU`di-UPUjrp3o zL;?y*S}uSwPi>(fJT!l*GLL1!gl_q;MEoFax7OhKVM3FvwxfADyTj#3pELRM{!W9U zo6*I4Fp|n}83wey)%FZ0V&CZ+jKFaDc4nUSF~qIhXArT-wCcweA4~{+@m%L3okqCs zhGSIlIUn_Rf8Ung(HVs%=-uWP;_G(j)kA4WW7DS}1+o-Z$6|h#539%JE$?j>$o5Ms$8nY7M3AP9dE6-OfpSrwOt*K9}3*4!>${Ty7H6jr-?w0 z2if1@Qhcf-^M_nQ&*dI_--3+lkHF4SC3m-&s`z*qk!OLhu{9Y>rSGH zA)mE_81*I8Qlquql*wDa4vvLzl2pj>TbDG#(25uw`t!j|z6Bx=){f`%y~&RD2h9Q% zm&hINBTh8ZvcVXCAYSw>X|s_%o?-fL|JM?Kf=` zEqlEi`~A+RnKD;9?|O~Mgmm%bURr?zf8-3B{1{Z5YLg6ZdVrB{<&h*^dLY*GOg}rr zhVnBJiU((E3*z;+UJ|!-YVe8|vj3Twx1t3NB!Z*K3p-r+CNxzWSg88u?EAsA@zI_`!p8MK8th!M$R zx)fDvzWDB)7XjnlXLKqrx1r2^NDiMC#xD55jMcha#{_WdYj?S)qy3xhVS5#BhmrY< z_1!NT%5@B5qm!okp1ijwUo{cY;P{bpHH0#6+=i~D2KhQVLvI!pnlc4L4imxx)+bEm zk6{UiiHAno6RfjnBFyzAa%5dq9}3@S@K;)Q`n^IbI92-)VvV}`nslISVXjPXQ|KW- za0BD1&u_0zl+s6YM1$-njE0>bb=5w=c;ZB5qH}BUUOs$pY7wt(z`v#nt<5|M-^z$p zFRci_6160gL0LCw!h;<%#pnr9(l?m@@Dr8wZA9Vco&9#5)I4IVu1ScOO3TJ|IK7?)Cf}z&i!76b6oSPa*$KtK-V|{p zV!x;PN;x_y4wO7DZ8YegV(qFV?uWanU;Y!QHcx*8Rhwsh)wv4nz39B5O3=H2k<{Qi ze2_Pe5n-%m~9!MX7aO_pmq78uP_{C7b2CS_qAJl)+Ls=maF|DiS=vK z{-JQCJD?|(2q{;Ar>a)h_CCv~roPbyM*yW!e6_n;yyDc~c|yV3IxZ1F$hyDjQ}HEr z=tv>|IOTv?{%uWbISi@s!GH+nNVpA1dv-7$D~Y9NNGLk07r^CE_1S(iQw8i0hbFR} zEEj(f%f&RF9u&YeRrhYu^Fj6~3FuYs65MY@snID80WHY9+94}LFytE|Cb6lLzS(?* z|Dl#9+DwB}{bUzHV|7}4-G>egt>wmBMa!7VEZ54U>57+XyVjA4+q&J9w4P8;ueagA z;bcPBj&D#$kad*zjIqxZZwQ7PzXMfC5h8oc3QOj zqc12sZ#v$TIIoJ%#ZlC`V2K>hYEXC8ccOZu$0!LpcS6O4Q*anl3;_LM+axTVbVOp} z+%S(*Yfk64b#!Kg@iRgDQC5fv@7m|Z`P2M4jSLAX))=jgGHmQTXj9A#!E}~6k`;FKIBnoYgn&|pcu;cou@%Po!PrjacHoLTfF7L5J&dQp= zf5V>ee-C^8(wbodXL!f(YUf>9F_&b>?ORAL5c~=MZ^6%?ol}%=t$1rFJxysj_?8!B zDN^P1?u(1n>{Hj`@%@=KgBFNZ$rHD>?u;BIQkd&~T1S}dW*KV8vg&)lI70iC6Z)?m z8%%Hp?-7@y?2sGK2Q{7S%Q{RgTQ#M0 zdji3TBf$aU`Vj+nB=yyKY(m~t7)fTFoV~IA(_%aAfmk@nO>?+RNp68Io?>xy9ylWw zr;#7-#E5_lbdTQZbQ>wfas&kw3bva)5)F8l)u!h+B$11?ArK11p7U@QvbxRDeU;9x zYI&Q7YxfgX%zJd&KcFLQToxo&r_E632RakIYj5cLj#lxc94SX8r&$vI@1fV&=X+{; z%>#Tb1V^Nsv-vaHHnsG->>tFej(<&Bza4GIUBcN`kr_SulS8cc#_x*0w+>U{oG%N( z%+5Y)qG*u8ukkX!tn(;z3qPQFH;$YIp9`(ESL*!c@yFdQ*$U>_CB$XA8vvI-h6*@Y z0H!TxJde^A=7jTS?AnXu#Uo|sj^zK$Q$bz)Zv-r#u!-W>WothYe+-uWvw5_$A>lE zX9QJmT44+ZEIk!XIyQ{e1tGL?-xT|k{XXP9^WQ_3=G^?8_Dow zw_43$f0A-MzOh`?Ut)FHgfR`*gf7_=? z?+f}~z1!xA;E!9e?@J%^ZlQd&cW&ipj~Iue3@bDGSw?@Kca6IzEs$Gh4yOU%VHmV_ z4*U1c50^F*$dDefj~IRbv6wkcG~%*oUn_7?VD$D}o=Jg(g%pP<4t&_acSZ8d@0xuh+e5MDb%Xn}uc_xHX}QD4U~zjRL1`DfHcCl=8r z3VH8iDV{ga?_sd}!r{N5xsgiq;zm|b!{_kYzwxFTTYb6H_2;=CIzh}ICmztD<0mE| z+-K5js$&CtUYUECggB~`9~o|OP7>?ydC)W9NLljAgjh#ybK26puE_$*&)Cz<3L7gi zTvV38F2hm}g7w?UqAKB=BmVeA_u;!pG z_St;s>p$S_zx(|PCGx+ncY-hseZ0*3$^-Dx|MlVDKNpV1N~5He{utd)34{IL7x2h& zx88Y?v-`gjhW+nLTGZP&`CY%%dp~$!H2j|z4nx_d67r*LKnGs1wot z<;IjgTeQL=@)x^o%2NMw<9Cto;6L<9M~8m<_R%qp|No=^ z<$?cy`lchJJa@Mwd*)s4*@~%zV|v+e}K@OuN`qV9@>d5TW!T1i~DLn$?Z=-#-q03k0%6)UNyA zgV=vxloG%Y>p~7)`G5F06B!spN?Z4O|8{Q}>|asBaSPz4Ra$Miiw7N5o}Ou(i0GX=qzZ1%N3A)!d^&Y=rh&&;+B!*TzKt%T@@&6 zAWnk>sn*%Cu+PL^ZI_)UGXcHFbSsWm#q8RN>a!p55VGWA0pdG1^&PeMGx30*qi3m* zZn9@BX8cKXCrnhp_T}pXMm}p;FLN?|t38Sei`DhCT_g*<=-d(p?5ANI;0L_G&m8ek zih&+wzB4W|k-YFy0>^R@;^ZVr^0Cu`Z_hYSNS{*QMT)@ZMg108yVt@#lQHn)Vy^Bf ziXJdYc}GIQt3GCHA>ax*63lBhX!xP97Ge3g^)zWOy%zL($J#3Q%f<8`uS!7zSSb)J zL+xq2j6`YV6D=7_suLqkNJBiHPG_6_?uytx!J8JkNi6R%#O<|YQQFV#za!#>DXW?X zejoA>aX1&Mke2JnpW<40KziAK`GocZ(htiM)U&1Ld0pYyx3% z!EXav;4I&?Qc(9}Uw4J{oMd*FarHM*<}go`FfuU7iQ1e=a=`BW^aPlN3TNvBejQ}E zuj8&b-dMRObJG=@t(|rgD7^1RgLM}|TX)U0o@65nTcJE;Id>BtO`Pn*;x*-kk?*fyI+>q|OxF}u3Zntsjju9#sv zUPiJsW>h^l!hnsxiU|-&YhsWMJav@MdmY7Dyf2CZ7X;bgZX>81zE?TUaoShjIxI2H z@@k&UZtvpUXZCmoton@yV$_Y78yv?`okE=_DoQk}%t}4dv}Bu01q!0T5-Z7eUSXmW z_C2X=JscLU3WFb0qmEVFc17PVc3*|NXRIR0CF3j4^e5HEuo7F2*^Cx;7?Y;22OKix zmf+kC(gW4h?Fy^og(7U-9(ED36#t4>T?d*ir`!T()+;4~v$}Q>1!)lmyy6v(&Ho zqHZlauZ)}I_FdJk)YJ|anKN$B5$Ul;@+bhOrgx`J&^R5Z`)%8RNZSaSiXnqn9HsVj zx;160X`Y)qlvn4QECQj6))usnw-l^0?6rG0`L?s+Yn` z=QS=P;dI2M#9Jboilyeun?*afsLAbQ`w?3SZkc4-XtOGKBkAee!2kNYCmx7hE>->;&wAR~4Ig|_I*5k8rc5_JWu`t2Dk zuPE@h>l&Ibe>yJDX0)xMQZR)+Tp#M=^tkx+%(^{t zLWKvfcHIXK-uXM%I{0H~DAu-#2su3L=gM@FSVc0FHqlQogx3SG-N*XJl9GwM@i3q$ zcVcwX>rTaV7(9+zlVlux?@+eypv%lJM@~^EK65HS*{vW4{Sw(3h?&%KzMJaFT&P|; z(NOwJ$L^fQ&Lp1MZbF)ex_C z#@)rEJh`B=J2&xx?ui_nxzgczM>3sf`i_Na*6DbG#=4bL4m{&zvD)JKHy)a^wd)}=$=a8Jh$g2r#JtAvb23#!gZ@Yo zC^0`oP|;l;v|MZ%c4#>{adI9zBrfrhp zE{l>5u!W?T@zSPWK55ZLin!h`?|tlw0fSN=uUvJQo2&llctNkhO_LFru=}bfYA?5n}xF#oFBYs)cc{8QeYt3A<{er^=&yZuf$^ zO@7j`*3_npgBZ#d^;}s_9EEn&#Ivl?Bc_S%3fOj$=t(a5tUW!|8(cGIB{0$1zMAVu zZyL%Ub&J{JSit4AziW#Q>wkIyv@}0%En2t622!|50r?#jqukgEkv!@?VU5Cn~V5`b4jCkU@q%j-@x&Htl0sUsv`{6hhhN8vo zyk4NUZ1J@}mJPqxM%1Shq^*R|FoJcn&W!KfQdJP1ZAT}K+RB(v3c1IpuS}yV+J!40J0$51A;#Ll}-k^YV zNA#{QqIv-y17u2mfMaA8O0qE)%>6e0bv8M7nj;*H{@wT{+vwusJr_i;%3=$qFpqLZ@RFhdVM1SGN_y7L{&TpF~;PF*CwcN0Kd*QI;caEHOO(}bC zjFYjwXxzhF;hzL8XjrRuSs%@)v4iTH3BXs%lIdiQH=I~KR*-EdfJKV>`rY)~_WC<5 zE8a9OjF?(#y&eRqveU42RJ7iZew6VpOQy#U%yv;GIE^_r|F9S_==yY?6ROg9^pQFe zi2549WuJR%-1NHl;rcK%PWP7y)Te>JX<1}N+|Vdd@~~Ch9JOPWVDNN6+@7R!3{G{< zn2bw=@TOb;W0uGp>7UT#S-qqJPah@;13w{K0I#PDZF(H6o!H6#0wrkpL}X0&M}q30-1HPB2-oYIE9|^HHIlzO zKr~4ZQ>+kG)T4;V!5s?-op1fV*uqhe+U${ohf7okDqa8*7r zJ==(?AJYR8R9kaWssTWwGo!frH8GZw*se~@+i3g2c<$#6e@9@@Nc&$hNIhbZg|?z> z_6~*;Q4Cb=TPLn+sNFQ>>`v23nmitblv_OkXfnrPufi0JX9zyiF_ZmIZwsJl&_#bT zZ^3-bAjjP(8pYS|JdCX-l7c4RamFLte0FK#b<9T~FH}YAovGu-?A9dJ!e`z&D!t(l zl>%sp!@-=$&d~iQd7*9GOTvwr22~j{#gS;hTJ}%2UP65r+Olnd3H0fbrBB;hZZ^Oz z1b8{V^{7HhLux_?h zAB0!76VGWe+h^VS{GBi6+Cf^p^%)LcG~4DD=(gM^3_TgM6_o@Cn~xt&#|-H5iJgG? z@%P1U9Oj#mn-gf>y;E5g+A23<2+n(1R^Ry^x8nMO_7&&V=A22r0u{4q0au;Rag1hq zhj`XQU!Ko_P_#ZDfBV-q_B)OSKIO;r| z)%6{-`^DzIyIlmeU-TqRhT1F_w>SobT^?ziEG_t(9?SF8PCbLQrbqPeZ3Ew|%#~3N z-7AGHbr@`6a5@NF3?6?E3Tvh~zVok<#L56VdNThZu!jzFuSAY#rn3JD&_Hy%p1#hi zt;x-iBolP z+a#6D3^A6oK>sVeR)9+B=P^2e@PI2P^Qny9uQ&@7g@aa@m2apoLs@qHuH-7mZxgw?2qK7KmFcZKvk z?>vV*8n>)JqKBUgP2R7KL)LTVceQwMn7kED9oa8SZdkUgl{uB9h)NNp;IMqZpjazJ zKA_A2Ha*O&P8_*iu=k*?8FG&`dz7upgrxbtSFc;l;DSjd6wtVID1Nh*TngRw@k2~> zS}vvt1`@)D4EEE^q;WMWMJ_%I1W(EUnZz`kj{;+otmK7G#3u_d2FzBDL_NfLnB>RH z{Di}RTcEV_bWDL#<#(xsy+HoQ!W)=Ur}2lu@ZJgp`AB2!+xnB|1{GSWvXIz#e(^(? zDv&<-ydHcQ_SP+x^U?_TEgbCOKHl{fvyFa6bwM~igTdQgeR^c5kUys?W{W3WlM&*= zm_jzK9Aj*op_rgZWd%W1a?hfOqH*xf-MP^=3&h)B@xoB|VeaJSW~X@%6_X5rc3bUC zq4vs?IR$x&?1srMY$zysSInKdsqRY&`|mtv@5Ns`AtI1g_fsf@#=gc(bs#S00oVdwavvA z^>EpF6~%ND2d%&|iOa|0V3vJ-Z3F0b0sBk4PK@tNs7cHO4sIccjj`?9<<4-=V2ozPfFj zysQm?Z~VFoV-L+QJETg5y0vkx?-;k3Co zp7#CGo@o?#(;nG5XnWQZg;RRAG(hhwtf$txanWXyI?TNqy-@O+qp3win15*pedI0= zG3x$%r23tZ62{~0DS_#9g?~SP44DV_%<+6PzoJ+x?-qo~>%+?j_Jwr}9i8h8;mM>w z@G~X476XUS+hu|$uBR>%$ARcnFRs!gAy2I|=}nU3LOGt1Q;-Wa9_^*t36~?4Z`tm; zYj(88d~xEF@pqpE-OtR z*<<-@onWG_AM_w-o4k^q4&gKEd8x@(iz$9SWG`fBdp8q47oE?@SIJQm-+7>)_$WYD zI>HELQC0}0={i&Sx(sO&qr;q2kEZG=;0Li$sbhx5-FyTXAhw4M>h` zJl*rr`?Vh&pES0q6Aj<)uA8(l zZL+MQDXO)pOEYini@%q;m1VAa(oGxm7HQFPDznD2>@;|n=VGuGc6nuya5U4W@pC(FhS)>lNU2VQia9U|WmbJE+yK zfGeSv3}rordGHzjvrMYkp6r@ca>IMXyFea8!Lt~U?@4>99nT$5CAMQo{4{I(5b$f2 zsHGE!97dE-j?sd9lDx@W9%!n|_dMhj#&~Tr0>st2{E$A1M)G}N^be=S5I?Js@bcw) zAVq@781~yUT*X6beDUxlwMPJ+BXbHC7iJYtzgNtd$GrH8r*G-wiCUF5CGQPl!z7e(&s$%40y z9SDOOV>~cuhlhp?X5bM|iqs;m(T<4-wU-Lk4J8VKndip?I#;-Q)%XSx{Ol57e9}M9 zfsobp1ACpP@~kS8l8C}yKb5$hcYm)jj2nq*=d`l>Jr3Jek8cnw>-B+qc?uU4)>yP) zEMX5DyyYeWvl{y|b zUuu)es}AyG{VGs3@sr+ z7jthJ9Yxr7YeI+;Cxo~WA`o{^h#PTtBkpdb{ zXjt9V)lYRjeeY}U-HI#}CqsHc1(qGb#w?TX2y4OPJoFgereN$jciWvx2wJl19XB#4 zm;nu^zt!FGs8ntnULhE47Ri_5Ru&^HDv~pdud@Lyi=m-k{zQ|PDeWWNJFeya83Ju; zNDOI1%@}xfIeJ<`h~q^~@NU75B4Z?h%Fad~tAxuQXCJ%hIKWLtCtlG~s>%FlhR=@f zI1;!<>&h(GS8dt->H4yE=VvDC4#Awcx18nCu>}6L3k5Q$2UykUHPg!9*=U#`Zk5Jg_;odDb0FL2*@F^XXJnY09}63lO4Wl%p$rZ((5u&r z%8t$FvXqtr{Z|$lvjM_~V0cn>I!lo8B+x1zF04-{aJ8fB`$_cNm8<=MZCk5bw!ev1 zC+*u%w3bZPanG<`#WcY!7g!7ATS;TOh<5yX>3=E@LxqcenzXYOOI`f=c*_Ilkt6;^ zXz4@mEYOBEV)n&jjTWU1@E?j!M;-Gx5->VgB{zNHzMe>fcw&oIU_eS_lQcZpyQlLC zsm@R5w=rf5*p}vAPkuQza^s`{!ICkV=c*+L&2OCc5nv4BIoicN-jp&Av1D}kw`$b$ z6Fhao(=a~dM5E+N-tUTNt(Fixu0EY5?4%i{*vB1kFi&us-hXn4nRBRHF&M-EG+%1l zE#NZu%j0T#Id#(~!g_0|)oI)^{N{gD|K=fu=w!sj{V-SA@(%6b643a_P||_yOfBhz7I)`a<{joO3o&#;?%C1C` z1o5_6K)E6|QYh;WT-fs5gHKE|k8s>!V!a>XtSa{B6MR7wYfC5KnStUKu#55eis5jb`_Q5PpeP-| z;r@m-|5C_%a1wul>FU?&Q9iYcI%-~Ns&{q5S*sK~`7j@ipHO9yjg~SJKYH=TsVYMPThH`N#`Gc)snnTnt@rb}FNmR;A} z42%P=xGGY?->ou-ABiv5`zeaim+r({Y+mCOGE&|6!8(Nw-pj61$TB5tRq9{P0&-r< ztsB?*gx#fvu$Id+_>awPtA`eZL;fg&X*j70p}tX7YXGGoRR=Jga%}z{@1p&T;I)s) zQAZa$DmrE6`x~^kZ5px`jd`EgMqSI(u0ky?PWy;T45`Z)%*!Tf%!wrtWGt-8zGfTXIihzhQH_- zUF}mAQa<{H>M+0zm8?EL5D<4emngt}KhSej9-WJIhIf3(1+JmC>M&PGjs!f&iDmxsTks& z%;|o5-Hw)Gj((8j;gq6=NRR}$1t&Tuj;mo^dcnCg$K&aN8+(*r%Kj$<;_?N$voK4h zw*f1>gt#tyD|f>=;ReGf3NN*F;cQTnP!Y9JPx2kHhGne1U{(?e7 zVb|$Jt_q8UmKoReOo!|IYV@r`CG-od$@qGfSNkH!?lqIGm`eD=$GjhT28u@^#1KSJ z2tLO5YSl&+V#&cvLzUZmB#BbrJBbmN(-D~rN6o5SC8LupK0XHTbXzv-!7`p_&CU7_*D4ovuUx&tCf4?zvxS1UxvMmOfHEOAX% zUybiL5>a57IeM`XQ)I2-tWmbaX-~}F7HMMC00)9uUb5z>6rOK=u~r>-w*&6+p}PEy?wHY|F-HqTM>}rQ_{vI2 zlS$omEbj-H{&GV=PWE5V!2-hL@!QPp%v&)3?|_mcH57_Eh-e{DVnl z^kQ{GGngJ(_xbMR2!`r5n3I?d)j3`()YJ5mr)T&#xu!2ep&CrrGOBg0B+F`i?lgeo;> z?jrrY+fpFVda&p5#C|rVXUR~u z=;X>jGle{=^Zf7^MV7oZv4!9G^RR=#j$)|` z+G-ywhlP)|bNj9susJUUPXlb)?_* z>Gp(ajpp!&(OQk^k`P#A^%LVE7CZ*9@1s?%Vvkp^dt}}}=!YB9V2zAf3#4`&JNU9W z-rezTq98CDxE<<-kc8D0%D7`<_u7a}s~Hhw90VbLSRYp$o(ZD~G3(MV|L8%NaX>1oVfphgehT^qaU%-fDR8rqB9Yh47yym91b7FL$B^#^6V+Jdv?2P6hj z-&?A<=8&>i2!YeLuAMe)-6 zdY&(FMP9)=BC5K@Wq?DzJIukRv-QH}lpg4%{)t$l7kYC0@$i_p9xtWx2d#-6KR+?T zj|}g_Jo}|SkB zivbHwezmS)@H9K)k131qL|tw3q|(u?0A}Iy(HeyZA!s_ling$v#xtd*+#9pLP{))Z z3sJ!^8=0d?&?a)QVhZ@(1>AphHkL2}S#qM77nEficE+@<6A_d`P;QDYe@K+wdB&7KpssBb9bPrr$PXGG?19AhHR1uXm16+RRUzTP&_!S5H2G2PupXl@k?*k*~9$v zX5{+ufDmu!8xgCITRmc9@<*D$@9osrJb;qC2-ISP^R{JAuLcCPto%G0+RigA(M zu_TO5vJ%jJNmjafA#}VTjuNIP!xFI?70U2AF~Q7!le+6k&E!>wKVRli-U)&;;V}$p z3iq78D2fl@&{Kx~ekV}>{zei!l&baJekk?pjCkrX);8Gm6&?0t+ie2^xvWQt{MDyu z>v+aaSu)D#z-g`EYqNW%m?p9`7cu-9hpm#j+@u|YoazzxbUD|c%*nt{Ef&!2!mv~KsQSL#z8_Sfr)^<7{ufe{lHgh79*Z#Ked>yP$qcA~0W!+2 z5B^4@Mbupa(<3Gvl_Mo}g;X)oAy#$OCSDKrnkSiSR#5|M&kDj!)|(4hG}!RRalv>6 z)AQvjgOD40`d|%<sbve>8)+Q(MnEH?b{X z_v2CJTT^vPayH*|U5y1F7C(-cOF$STA?on7BuCWyXOhW|!#Z0f__A^xbIqI*)RqH9 zPu`)eNY3@vse_QP1rk0(*JSV(yVP%GW{3a`hYG7;0*A-;w5fwdb-fCLv4eLU9vVo` ztmQpbk*ogK0P)`FF)DozH#jAg?c~aB*ZslaC!f09k)rt;0ju7)EZXpBi$8=f^z#>T zj_tdjoK12$q}19ORS>P-urz%e$S%GZCB=u7+E$K)$DeZ{`p?seU;VVqS&3KWvcR6y zj;p8_n#CAdJxi9Xn#<3AAKV@Mf0P+MKVE(8I{{IuFSl}}jIiednXz>n022>S7In#i zx^wD}_y$Go;^5p5U*3f8u+U}UYP=yIVf)Lu{ERoD3&{?26d*ubeipWeSrS&su}jER zxPw!1()H910TAeQwG4|4x9o?K)lC)~YHby`JgT)6(oXG@?bT^=4t7Del&4(;&t!|h zK1slp<L89w4fA<{Vw!WwZMwrt5hS;B5xq1K&k~krr8@q_{O3o2x{v!g3TeXebEpW&+e( zKV6K9=yVT$ZN>#4Z1mK$${;M=HtIyJeC9TKU|8MjJZ&jm`U;o;sNT_7Sd96taa`Qv z0z4SMjR^e61$!{sh`F4^$9oBJ40w#XO3xh2jYS8G8*`_`o{JF0xXv}-wTWj^ zy#|iAYxPR~F`|UpZGwheb^MM~c|hf694b!6W{+g;aYghS%3|BjnZk5ubiZ}^+Qx-r zK-p)c-{a?b{d0;X(N@pXa2Zg{brz3k{Q}zrnoP$AhzV9eaTS6WZI-n~ysHp46A2CW zDywjfI9u;k>aEL~^XHTbH9p=KsUBww2zOWo&T3sfRT_;M3M61Fzg?qnu!?*z+wW+v zp3-?B#*I_FX=yBp5fDo#_ki9TT99eucS$h*Ylzk;g4>;0UYAyy;A&?#{uPBBBJ>$zzR>dL+p7@Oh3{JnW{=Wr^Yhehi;Y7E+KlXLput=q z{8)d9;&qjQD!p29Unm|019u`3lf2uEMOo^?W_;qk_PE@B%+`+2YMU;TkUWfD7FrT| zuuB@tCvifRA&t{yw(S!&aS^a1i>NEpN9S1TgoL$*YC41jWiJG(1laUcRhP8|dJQNK zG&_nl|JqX)K3rJa@l*Tydq!hby0qko-p<|MI;!8KB=um(R3@VpCO2k~d!o4KBN?In zX4^(kFTbTAC><9V z))@E;D@1<+MZBR@QNt(%y`GTIC?dZJ#>SrL7sJy){k{Q8H6DCdnF$$gvG1=zj4)mS;$XZn4_|RhQF&A zJq5rT0GMv_$SuC5v;AMl*Z)uOaY8IOZPPno(nzW|8K3)&)Pp{_GU-d$6I&jXf}iOB zK+z*mAV$=xV>Y_{27vLT%iy#A7aW;&8>p#(a56DkH z0dybo=Wmq%N%jAIBm)00UynTa2j;&Vy~oc{NFP+DfR(1#K$mcqe}K*ZL7jDpBf1W_ z(nlYX_Wu1sKOwNB2>sc+y~K;?xoI#z{QKRU3wn6rYQ^sd{)?dYfTT|aaDS{cn2`7X zKH7T#!49MObuIAkQ;8)7oQsgL5551B&i>CMe^Ap2`!GmdzWx`$`>#`>ckjL4zbq2K zyKV&t?k#vUuE>8oFnZAd2gcTw2i-r|^1m;r1$+`0zJaO#KE;Gve@zw_&h420lVtz< zhzAX@4(>Yzr2c*SBQAhvAGqh#M)>#Bw_^bO@*kZ{vVVUr{Z7EM|Netd3;pk>Uk?U8 zm{wYSZYcuy>qtt?X4Wgg5W2xHkU(G7_uwxt`xGTWR7lBi%2NSN+yDLXsQCU=t@Q;6 z&p2eBXX)3KDzc(=ZO*Cq_Mn}i9iZHKmx@BMn099i=)o4>sxxR??|Lc$vVOo^&q#6_ zD7pnSaxe6V>;7kLU@7j0Z>YTbi?lWdi}Css0bH-jmMRsxIe~7e&Cc7ynTBEySA*gJ z+w=`kHQ>Y*+CXkQiKb<-VzEC+D2J~R$WdTL!f@FpuVNQAHEN$V93J#1OVsZ4CZ9Xu z$A&P{+=9L7QII zzY5yZU^|MD^LiMF{tR%R1m7N?tl=%+USDjU%DjA&84WqsH42n$_|!(z?|5tk_#43x|j?HuH#M)k5V zM*+jBUTk&Q$G7#DyByGqORmgdAzU{CEVdpGHCN6(xqI7N>o3hD_M7;H4|Wg$0Hu3c zrqMJjHGLoq*B#|vaZjS|4mnx%tMBihZ@`nEwGt{214&9M?n8ZtcsLvjJvJ2?tOhdp z0&#Fy;x6}6Dc~_)31N`&LrC(oFM=fvz#L~Wb!#B;zhJROlU?l9SQ%jwvn9Q;daYT) zvYi|n@wVugK%XqM?gfrG_GHy+0EyCNbniVmL~_hV^E^}H3gXZ zMFI(zQ@a;6zPM-Y`;UHLhU|5H{E)8hb~7WBCe@DToiaHKJA;>&>cUCjtRF&s4Jko-fy0+PuMt2t5Z)DRb;qRb zaYR2SCn+5_^}U-r0UYujGvKLfDzv4|?E=n!boPnN74(RXX&T@3lKeX8elA%~8 zgfWpOkd&dV_;n8wExQ}6(;p}37|>^Hy}iHO4Au+j)p>jWL4UV+p>J3SXgfkN(Idnh zaIX0d@Y71U2|mgN;uLW-Z~UtJ$ImTyD`X|A06@@tx9XZEioMw=1S1fcti(>twRNXz zKu!~2+I%AK|DuaEF6xKuOK8ZAp3azSX{rok*5v>g0(RYoXD;h@w{H zC4r=k5|u|hqYw}TdQmaO*O6ap|3aF{=2BfS7S zIQZsew48x`jJ)4^R|q>rslX<(+GIu*tX?85>KdeoG^@5cTUw&7QWrK|BB$24;-)06 zO>aCYP~akiUR8S5Xj+E)+_45Ol*Autxm`3R#l0_4sq&L)Tdudxx>&8?hbhn~G6+B^ z*!zGi;(b)g%N-%a)v)i?!y35rdO#x4pR^Cost8 zMWCJ?dYf%nSBlMxN%5kA1;ezhAH$v~dq89G;EJOo7=S*wbyE4X<26`~GGWmS# z_`K4%%^QJ{jJ+xnpJ5q`nQ|FJgQHmJp;G*FagII|HrFgKrq>@nwvrO(m*H}qK0A87 z9m6h7K<$^CC6kON1cHW9wiS*Psl0C;rHQi4G7)B{+LDr1zm59gu1RF!U=PM)Xff*J z?wt7UrGe8xkD{eAB{V)TOcOxD^i-?t@}R|d^wxHq+S0!EfuoWRk`L?o)MK0)p426y z45TjA)I}>x)vkT9xk&Rt_^rB-ZHEV3m7daE5!t@9u#KiY)FO~Si4T7N@|3__R62`( zx8`UmZFM%AyY5!5;KdGm^Ko(Nuhlz9s8JID4oKtxM&pEz&uZFsrD?@{(^e`R-$tcI ze565%9WBx$gqnsKv0@enYvIe+QG$_pok7w^qB#~L!Xm}eN>RE#V9E1Cgl`B7?UkiH zz8iQrZL-_}2v~a+N4%?(%rXzt*@hd2EH@q$h&$(Jx~aF8+r-Do?2AyL_#oPrM}~d9 zm&)IPf2)EzK;famX<3MG-pJhNTU-`ASSf9hUoCu<8l(ozEt+QTCVH_f)}*o>*~>DD zuaB1IoWDzqG7vwBz}4tq%qVHm>Cs)+(B<0J25aj13+xg3tYfCFa}+t=C`_s_t=$3+ z2ifb98mCo)@8uz*3?FU2?ucQlb7(1i-Jq@SYg~P*{_wEo?rL8!B#*^lP)sS?)k6!h zV+XjTqk+;<MT5_vy=r63;Ohbx?$NQeUVy#95sW{yCS2DZ4K~_+F%D3qBoR*5Q}n2V)yI_qbe3^D`LcEBJ&Q-9oFBEhQxn}k@7> z^wv^j`n*ht^Ih-oFPo?{Ixo$us}xNuUzz4a!tw9o^E))L4~1Fl?68sH?rE}y#A)H^ zrg5-VzVO)|TBD-?A-t22J2MRVh z)QP4v+RtdY8QX1z8kC3T&}>*dULSZdB}=oF$v0Fk7h*%AwEm>f0l1aM)Y{bTA+Qt> zv8aci!s4DfG0Gc13-}&JF{O%Bs^aA3%+ci29ha^1=qP6kZ>V~g9M?dGVNX|7n#XH@XG?=Mj} zy8-lGk`odvOiX^;(ib8jZ--qoWfQ$zSvNF_MN{z-}mqmmyKdMkxS@9sf`j2od&CF7pE(eR` z8A{@Sih|L6;w2SU9{oA2Qm$}C8My#GxSW>>%LGaDU-YJ$eN%qfalTg%A={O1u7j7# zusWG+JobVU3}cLFct8X*qaW^s1?UwRz8ktX_%*#&USP5;QLvO4?UjH4beICHow{)GgRAXvL%EU7l`0FV1hJo0P zXCJu**e%MIs4|^=z@QTs1(dgWqoJ)-d*D*oPs_4&z8oMc^4tvea?^QAz6t)ZsSRq$tCo%7=jWk{SAQHW4WXME}{$6OM!t!U*@Wvx$* zbdH;%(rpH_LW~D^@Mm2BuD8T10C*b^K^{SVLGB$+F0E92oQ?gVGMG#)rxSqgGw+Hc z@4c~XJBC<+_HKY&zN2EcQMqC>m)~QpMWO3`BJ=p_cg5m(M8469y%LJt*^Q0zR@~Bf z2haxLwnx`5m|22V=RLe#mRIleeIAM(ZN&c9>~5{)%UGAT92)DW6UlG((CknyLUj)vrnnCk5l{nOM9tPT>c+3s}9 zrHL~T=`{`Fhc?<|)rF&Yi?;?{jj&|P?Q#4{1?}earb)eVkQqn={887_=E5UI_H}C(sxHoeMX-(@)P+03Y+1~ewPW` z!RWAkq0(XX;k!P@5Rw&7T%{>Q(0N)(eqX3W!h#l=iaB)+oQJ+>SM{RneGxFw}k=1=;#H=A3maPq5~VBBLM1j(Ck z_$TP`fUGd^DS-OLNnLX?MsyqfN(@5TxcPQEx~ zfKumjQ@DO+^pc<)H_y_%0i9)zkHGjrlKzLgx$IEPcj9O*XN5j`g8p@0Z^-D`6n01E zx|iuYW?bAC5YMO~{Us;y0)IPdYcU$1One@zQY=#PD4PSh^Y7#!QP*nG|FyO01nRqN zPfpp-)xcKb9`rx zcM0#<_3f}m;j7y%Q)C}_;*rpD6PY{BIuve5Ho-I*nS;SPUZbR!B^Fs&u2%*Nose0!E zvNm9d@^OM6Gh80t=r`SanT}gI4@%@qjwlwn0;&$}GQUP9T(Yk+f0Ln1-uMlPfl!+c z_1H-5?`zVM5^LW(B&AW|a+A1DyfnSe?XcSpU@1uuPYC(`rB}PX zfO8<=`9_Z5vrH%!!Z+}9vBN!e>wNa7=uj&|lQq&WhHV7XA4DvHF8l3*yi{&d*m=Z@ zEu^Dv9Yt%b$hJ7d)lfRb!#~?A@pLqUfd5pd6`ALTtFz)J{Xe&G23&?9w+djUFA8xi zt?xT9Zq#|`4`ACq=_*@Ba^Yce!H?J+-`J5Wp8s?xX<_M5K;HMehL~qID6bJv;qKjp z^fUDJ&tjpc=J~xdc+-hT?Zm-^YrTn6gGBt<_WB}0>_H-U&*gmiTdy7+`u1-;U{!MW z!|KEsmmzeCbcxRw#BUiWkiJbg_JN;^eSync2{bDN50T_-f|e~blE}-8QhVmD*b}fZ zhB-6Z*!Y`56UIAwJjTgjUb;%)`01>b!Sw3I&yeGnauPzu&*D=abma~abV#J~yvyVM zNSTtHCpes=?-v({ciavi5=K|jUeJ5cEeH3yk9s^?n`+) zW(f*EIMf4y9YcEIT9BFNto8AB)i{{a}6lZk|r>H!#j)4IRp1!5A*@@WVg| zt(Dc=N3$dAcQ#prKG;vMt)UIv$SYNDc8Wx`pixY+1A?QNjQfV`fc3{?WUI}AS2`ph81m1AR0XVo?nQuP^H@%9Ww7H%XSw zI)Lcc*Ke`AK_(3wuSlT>>z0lhAp)j+zzGy(seytfdh~ezG9pl^wmj>qsW%l{q25byO@@Yxk8vT}BH613)1`aO|&c*Hj zTERY_40uyrE=9A3X$8Q1!i#L9y*#sbOMA^>2PuZ1x1DxGaPKOT;e7FrW{4)5uSTga zb5AjU*O-=bJM@q1u)_{#q)frg6oSw?Tr?^7tQ!HaUu@3bfhDE;?*tM}iqn`IDUTqz zi@F~e3os1Hlt)i7G)f%lvwNJ)mAMBfAq=C|K`*xJ;OR7%>JKSS0+rPowO6_LNeLvP zOSLaM9IW%uKT3`sfN5HKuetvNXw=0AC}A{TjPDQy%tZ0}8p>t3WnDJqt1Sc!3@j;t z6A{=YtcY048223N%A|xc9XmY(`;}=jy?^H`5A|gBr>sBcUkCp!ywCkSYer0v&NHCb2t%~k=Y8T zet~m}H6F(9u$U?)<~ZObgy)dbDk4M~H69w0I%fD% z*DA@l?r5U!V(Zybk72Lp!5|-e?u(Ji!Xc>x@l9%#Qz-o~uk>e9<9ZR)HH2&z!^ z2+-(BC!V{!__;de{OP1_O$1ZrMC$)!0bppzA`p#-;ko1dQ69Z+jjL<06wa>EL;UcMxq( z>Mna_N^Tz9yC~@UmP@r7CrChWVUq4Zf4`wHo?b7Zs!LZJ!M&@1Z-X-PB>?uu<1y$g zqno|3$8^cb6HZ8)tLe})$WSj_vLwUDJvpAZfGg11oiB$r71sR2|L!3-&O)y_sE!6i z&cx3w;fKH(4=}cvD3n`&#w=igO;zT(jl2fTl07BBE=T6-5ot*rI-5vLS7{i`qD0k#2o z1tiRmvy1wZM299f6V5TcS~S7g@A3g;xK9Z8I?y=7Rav=EgIET&<|Jkf^ThK%1HObx zs9y4`bbKlkXaMf60zKXv*@*9l2ep}JXTA5ew`W$iGGkY&0|g&_unQ17l4Mx2uHa#s zkn(9d-XZPn8_nm`@9KVeM8?iX5mT{uHk{6yL7(RaW{PFe+=U%pmmUr*>gT63x%2Eu z=J@v=I`4e%=Sh^tu{*zcP`SRXYZ$BFYF8nh3BH7MnAG#*mb-?BMys($H!SXZ!YwCd~ig%X}KV(BSkN4HC85JMEzk$vvrn!;sS_!Xj1QlKa#bS854Bd@#!kDiJZlgK0Gyt zkY#2a)Md02l0==nW3)jz50TqypU3JS338;YzsTsO=0p zAYf;+z)KPFCN+GViqbL}3SvlQl`>yIL=JCb!0@!{x&R%G566CVuLzv=V}0z{Pr6mtmBzP#G$c%-dp^iLcMMyq3)VS~VV(PXy%j-eK+c!!vYNp{tvN-s) zYqJG*17_DKr7m#FS#DR%ZWE88nm4+NpEn6dENT|LGg^>~ws*YCOA6Lfz}r?-qX;y(W35R~Kq&_M6={ys!k8{a@;%XR)XUAR6nm z@*<8{WbGy&1hW(t%}5^usUXwRHVsbR>$d+}l#I}adj0<@doP<(#^ zzc6JqyN3S$AMLoyQss)yW8Ix;$*+mm#M)p*nTTl6@B`_;UKj}73id$XwlY>wzrRQM zx8j`51L&rcX>4o%Ot1S1VGT&iWYlJV0{$&%PyWrXI~Ys0{Pu6jxgL;|(J+{~|BIk~ z@K?~jHXLR7XYgLcPjx`_4TQ%b_%DL?^oB%~V_!daV4v9D*8Zx{ze;pap5%zfK?_#ot4q z*u&qF{FmY%QSvuat)vpbn*Vir`v?DO;)4x+_5aLN{7vy!^Da6z(EaDJRnh}*uhQm} z?)0B;e<29?WEXxkB`E)EX?Yg^0zSFoWY-Xmf32&ZwSTkZ{(t(mJ(E?wU$WVz5;oZE z#cka<0i`KP`2_5CB1m|ggip7pvEDA(K#J!-Cdm$_EmweUIaXn{Zt2KddTO!3Y1(685ZzHG6VQYOdWz zOlYwQdwyA4BMq67WS2OMZBSKJG^2)+qQ+FJ|9>tyLN~Z=t5#|NPT{E8TY6iJS|t3o z2S+Bd+MGAIS9B}VHE^Uq*V@mQ*xV2njlB37oR}jOsnO&x*zsX{RFvrt^#9F!M0|$a zEq<1Vc7M%Aoo8e#tN6^_5Ft7@>;4v1=kD4E>x5tMP_C}AJD4p(gZ6)To&k|`?TxQO ze$fTy+dt7@_>zI-E722c)2xry5xgkp?a0rYSe)WuCx|J~Jo#FQWI~VlpM8W#NLi`% zp|aMfwl@PT39f--bUv>=y2@|OCrfW}Wv!|a2V0}fL0rLv-B=GdqnjfU#7T{5qoTj8T)_ZMitFQkHZ#&~X$n${s2j!K)de|pB) zRNR!cWshyS@!^|JWcmV=L5gkFYy!=*u?|%i{wU-P0MG``QHgg}U0p;DCUd;c1`5fPC7~p6VNHT|sj!)_>RERE_IBdx z7DZzjevtIg7m4ijz-a@D$mOzami~JCdm{7InD27>H;GJ_B4z$5t0N6p3BJG(KANoU z>t9#~IAqZ!W^=yQG(h5$=ncc6!C@{219Q~1m;xXaW5(yItJAl1j9qKF%-y{Jm}E3O z?B;SpQ&8@)SWhbZGf;pqKADbqxN>sO3O9whWf)EO-+q6 znu+@1`+ed9Ao^omOLcap1N`klH2aLD=H?{~kK^}t)z~1=50<-=n_r9WIM}e4iuUbc zqK{yR%HU*C|+s1N>P z8_Y0nt*Vsj`06YR*c|GY?EW~OHD86Hj#>cw`N23UVvR<-NLdo`M5TGl};QKi`;@0i0$ z#3Y6S^O@tI`?L4>Uk^(os@8zV9T@86$_FwN)o7|V#cZXKY0=yk??YC!B)2HO+cv5* zFba7voTGMjn9g5kFgkWPS*7A~xrTjJD74c#2UVl-oQ2&|mXVQpz7=R&tUTJ&AF3b} zpG9K40`~H1rwY+yfRCcsOSTOQ!KG7o;d+kv1I)oMPhHQTc=}FQs7d*;_zRhS$GFIgUuTYQmq%rjHAfl-(zvD8 zb=n;e-<8YLLqMl&SXZ0Dm2OWC4{7)%S3h6?I%~Q^UCcGe(3R)59`y^UHwp}bHX6*W z<+2ZJTG9|y{8subZm;6vvuxK7qX!Ukf(-(^{n?50%8-GD6qFckEM(akMEty zXKa|tZAQW}aft=z`p@;&QBqJyFE9uQep|O@(!Lw_K=H zh@*Pa0OC@}%3A4FeC>8}q|&%~5wW&!6qGc-Z}o;n&X%YRjAwNH?g>I?#wHRjb7JMn z(z=Y7)aJ=W^8&y)hgGqut6voT0Od_11}|Kq1#9%iL>T!Qnv&_W>e&o49#(@ z5GdK&aRVb6^i`qYDFS()7WL6&wjCfdlCBDiL|zYw);zKkve7uN(0DtJ@`CypuYxpe zw@%Y0cHNSk<|quWSNAcj6E804ryOyVHz{;=VEGlE#_qRwp)m=I<&I5H7IL7`xr9W& zIV~E3gJCjU=*7RFLHveL-fPfMS;Wnetk0X~*ye-BtXw$HYdoVM*{a|NM9@@M264IF z0{y{wYs-4m4~4>*-V;*Z#*Np-Tczns1c_85BrheqsIP3pnmX$rc@h?gcrs?@gs+bB zOHIT=j;2eg0Azy^o0S~CUuw7!DAR!Xo)J*MKzClM)t35Q>DEP&r?Z^SY*WA%WfLKp zM>#PyjXvJ@e=qHd1HL6%(_6C=IqZ4yT~?E6TUj7FC&Khr_?{u0b5eXT&9zh#cb74d zRo|}t3iw9CK4UN(jT$Ochz9<$93uhy2c+P+4QTPhZgqwyPlPe?j0Yq@P+e|I_ZBLI z;25RJq1(CnYH`A^WLnL1XMEADclNl8fAYN3sQ{qS=2BFcY0jG9_3I5;@|a6X)69(K z*d<7;CFRS_3qW2KJ2wr%YGj0ZzVZid_UOMpk0Cf1ZC0Dx7R69H$9+~rYy##`65Ox* zdc=_DF3eb$h^oc4V_|x&f1LFbOepHi7QTLS-ndCub32;l=J=4pW*R5ow)s&`sgY}I zCKrQRT?BtNu;r^@Q2g1`teWaju0)bI+VnVUFTvzTPf6>U?i%|_25wfzV3<=5-(EoY z0a8vWu-;FI=F3eMNF^9UvCZo~pJ;t`^u2j@~Y5;?iVz+PQPh6gsheif<+Nr-Px2jth*=1eKwekyh zq-purY)HoHGR8Px=2DshjStm8&Ggy}z2oV!HcC7%zl(HaSHg7&0nOdYn+GEhGCgHJRE`1_2RDbdMpo5kW@cQE!w*b2S$P1A03Aef@x=Z9?6Um~*Jw>>rtWd1X z3p5++xI>4dh-fExQ~85Zecx67dARJLrGNZZHaeeWOQ!|{-Y5m=ReJkFQ+mTuvfSfM z*t_9#)WXLV73tX~`y*-*7F_7>_lmnCX=OLO9GBO2iPV;CoGI$bp7 z-!wYAz!Y2WMw5!UJ+TB!;ko$<27eJPnynKFKjr$R_Et;X;E}}T8fJH99iA@b+4|0h zXP-<*2+u7aU{4ZkIi$OyqL-E&VVyT@vxJZ6$0~^C&WTku+(Lvk1H{@-o)F(GbPLW# zSX2sZ`d#VZs{iy{e%2X@B9R@iCb%Pn>=p=Isv>$%I)Qv0O6P0<{=Ss$JLi3|3r0kK zsYB+zmu~C98P1vBwyqCdUTKo6E+MRkcZ}y;&32Ea@Q;H#8l%EjURt`sz z_viwj(Q}9eb3}z3Wfcm)ipV5FeKr=0{3`f8S3W^f4EufFx&BGz%n`k{)Z#iD$OmX)mRARb{L|&XBvl_ZnSek` z0>N{MQ2LLC;mO}w-ML~O|Fosu+Jqz{7&jX!%wflniO2MyQtFXbPVNlBA;8&0<-|%(K(fnqp5d_ql|5C`2DHSbFJ7y_znF<9S)$ zGEVIJSm?VnHh$($J@q!YN0dyn`Cw-*9g`S0CL!*SlBI$p6_qB1jXl3?3;nA$T2x4D z93>2wDN*dI-R`-5Y#M=x9Xlf5g5&#KG;qfXkU;#u>N@MNI+iW%V6zMXSszPU5^T>jfnS9hH)a>&C!goXEhc$UxgKBjY5@!Cv9sRFdSpZx%^bbTKSdb1i& zWvPLh^Jf-fmvbT&90aa3L0{r8Q5kfL^FJ-$(Y_qs?`I*~WbY zFxbLo?dBbfN9_4&W~CWEgGJYV3s1V)`CydFKw{~z(+8tUxIwgCX!2he>1d`l$%mC; z%v49d;wtTyv!AVhc4U;f+FpdLy8L48Ul^+vI?A%!u;IVYeRRD&*C3oVBCz9oDXtq} zqj%ah_&hgR3r@^xrc*r)flcA^Ae=5}m87s*aDSu(67&`jUao!%={pZ!O&)ceuWy!= zsz5XW6+#9L|s+ebQ>=gS6 zu}Twic;h_QJHI-~PLx&-YZFDA9Nb*~fOK=2`7-sY-l+`dO-=s(tiN z>6!Frm4_qn}h>D-xrKFBVE^HGjD#v)FjId2*=J*#_H74US|izJAhKX{GN} zqX}%PC(<~1C$Mm=Dy*k?D7jn$lR=k~Tny1IO5_Ny;dsV3%Qw3+vGd=Lq^?yv_g_-$;xc{XToV8KbC$6Uk z9M>J~#EODqd>$J_w!ve4J+TMY68-#ro`|(DOxy1{9M1rm^9FY1Ln8)*D7XEZh%!XYAp`-J3Jrz{;pe$DrmbsE>k2N z^DDE~DEhwI>Qc;);_JvZ5^}@{Q|psp-v1@`xcT{#7|KK9qD(QlRvL^hkj@1|tivMX zeAg2ss*7L(Y?q_{HHT>Y0A=clzos%K?;TW*uZ<1A33^2pfygS= z%id9Hfz*x7Dt~rI=4zv`8>fVRLLW$qoweEj20Z##+V_5t}oM|4B4P8p~5NA7db4;fvtCG zo;HyW+0JnJHC41@%NOo}33IQyCbQ+Ha2vxt&(1ss?0X;Ctv=5zU_E=xQy*AE2`-MuMDLA9F!vpfHDFJoc4 zSeRk6c*d@K(O(ASsy%w-f~q@W^jRL>V)?*)5$%}MJlA|#u2{FxJH_rw%AvnlJ7=Y9 zK0k(p$6qj;&n4CSCdT*TsP1}yR3Z!s_XA7Q@0X~Q{q&VOta@*wj-b4WJ3LVU@WW8o zO8g=A-XWfuID-yTfcKgg_uSJj*^j(j&&SEmg=-6Z5NB**bzE}q0lTMsWEn$R#8(9< z9%HLEi6o+xyuG#2`!QByVP}iclC4s>-XAt2dE?)>|$eNw{%ub2lUncU$9#2KvVtSgRVXLn1?M@AI660o-SMZT;2=fKNl$ zGQza3{=2x%tap8G*q?}@5Prj=I-PH*nD0KdWBP#ij|Cd!A`IdadVH>woWcC=vH0i( zxuyELXIJ<4G|%BZjmL%YBKg)8jSY$}!zioH3(uz>~hKt7a&p#f{xh$Dw92d(6}OudxfL zG*D3B?6`UJinRL7}Z$h!u!rlXR#Vn>UVl;z?$;t zY?FVaU1KQRekojMk@33Jdv9dkSX?&SD-pgB&=F21>?_*taX~@rBQ=3Y?#P!6vXt2Q z9D5RcQV0uuX)~rH;}H2Y0D)U>yonfzQV`DyRa1j?DF}6GcQKjs2|Sh=vUlGtjv;H+ ziT8$BEYVjVV9IL6=Gndimkkv(&p2%0vq>grZ^eZL3*kK%n_pj^q!@-&a#lL#^S_e~ zK*o)yF({b~yT)G%FEixs25L1rgT=GQ>O^#4Nnae*(d!%HO)?MYo%=4-#_PH`-F%V} zU%I067d)rvbf!~z6R4m4K<}**EBva3VN|1su;)oo)JRn{yGkEBj{0n^W9k zWnBbSu`TuJH~fc&v_6IfYtz1GP{zPnl{X554#JIB`K>w!HHg7ziDApf(rzh+h>e9; z<*_adP8B|4P-C5%I?i)38<~e;rk|WSezR-x>c{TgdFLqPWM42ayMT325B9W_iG@x# zb7McprwNBi>U$Mj;}_`4oUJ$KIs;==UsskD+i6!EcwUD@3CD=ibHx))SZe%(%+O&- zEEo?6h(=SH81zj=)S1BQq_c*0xravUKld>*7I zpQQvNAsC0IE|FN%nU*2x@?jWt8cM9VY%YVrbM_{@S$CgP^p@P7O4pTQiPfaij}6{K zcfx^Kwh+|@bA=WxPcaIWv!x3m&z7*%y<}QpWw%L93muYbjr6$5e4W-etU_Oro0&^+ z%TpU(r(6S^S0aK|!8>0ss?w4N>UUna(zJl>GQ`%YpkcPWeg~~HBll%t^ts;8XxPNc zud7=u>6b!;o(tTML1H_IO<9A^Eda0l5kv%9@wC-NndO6% zQd|zC?=1RR+H+NpeU|UTNDin(oHYs%CYc(f78kA!i!Uo?f1GcC@}zu0hEk1syfc^W zcSaiMNpI5|o^uUI{hDMyMB)uJm{rF;a*Jt@OaXY@A5rj2-lvHpK!zIw zp*JJ`YBvSW6eVpXpc|O1OjiuoiXbV3wH&P{l+)VNO#f z#A{OZMzPAJN)E9GCOJ`>A~6Z@y2GUV1Tz}GLQ|k=ii!sEi=>;$VFK( z5bTQ4;eny|?pz4q6^byu9PR0#8Rg?$FN2N;AKid{Z37Ka z_Q!gY;Vt#i0lSe35?A*zz%p_co4+UmT%i`w=}vL0&I}no>t5rlQJcb0Fxd}xuiVN)DkE9 z`}6tZWn|^-YD$6QCr2A-6K0Nz`yFhr1bnj=-7n3I68c>);XkwLb?HpKdFT~8`93=7 zTpTX3O)~5kHPyRgrT%746XEb%%uky942&&Co^@}Uv*O%QBAhGWY^+L(M>FhDurohb zu9B-sdTg=!1c;LydhqN?<=S%YF@_QN($n{A91S?Hl}4#o8j`Mnm5BxaYY)95lbVs?5Zk*ST(GJjZ|%S2>PQ)-&)Fk5Ff zo>GoaI58BPTewtd$j(5&#tky*7r_s*t=(0GBQ*sFG*GY617_KY{PX%jKYjF*FX#z% zVGO3Lzi&f8Tb(|})~leac=N~^ z3L+7IDEQhbQ3_i$!=P#kC_|gtvGRG(IU0azUkv+m8=GaIjZCMv+hf*xsWqVd4##g= zw$i-=Nsgu~-k3B75(Qu;Ca@KyDbHFpWA0{OlzJ^v( z_e;v}JT3c6a7N@bWQG#3QuA+mp85rHEMn<6f+|LcfQKEKHrI@;Scxx(`=r;aH6Q&n z(lpaN$h8iQBAq&ua6j+%WLwV$U8G>i6uYT=x$?7F1#Vv+#`I~xc2gWy0N7!2Jk*Ew zHsU-{z`4Pq)o>@Sj2f|9*tx+zNgZt?w%h3GMWIXIXuKP|YWnaXDS-R^JAT&^*%L;G z1}I=S9b^ST*qgtW_0NwPoSm0me`1pdS&i)((gj*C*5S#nUzA%NS4gJI&S|oPI;{-gV-z$20jt zXFDxl_FBlITMF9F<{m#^zq4DJB59^g(Xe$E_=HXDy7~#}WD|irnW~&jVbeRMttw7m zJC|o%>SB3Bk*5k?V4+QyjBCf|y;iOBFB*Y;Tq;X2#EndnBN5OwbNE;O*6ew$jW0z zQnZ{H1UJ7%G9;L)k-ODtc^a+;wInPfFq1LIy>t)>#rB&GzhQXg1r4#yXo;8N=&}iL z!!@Mi#>(++2k!N&j#fBH!V@FWElk@6*q$&PZAd@}Pq!FOo;hdGf6r`v`yR+P|$emUTXg?Mf zUC*zMPJ}jpy4ZE-tZDr#=AC)FLh~R^d@cC~ON}kZ&@|h5+C`*X&k9YH0#W2BI4$8| zmpLtRYW~pOvT*EWv!AZr2F(_BTA+qc{7DI@*t}6R7uyfDzUX^4kc)wZ&sNS-z;XzJ z4Fa=^qKjcjN8hA=@5rtO1_`Nc%-)3$3#Wo$5BKb@dfffS>Xbn=D8fJ3K0XFS3~b)Y z5wfu7YKi0S`;|Fgh{IRXz>~@M^kkktNh4me8eH#s@)H{5qSC#i2rHMh1}S{H>>HxM ze3AJ>?ljiWfln$0*{tYu$LW3B8#6;WF0Ff0fS%@HBOASQ&9|=+7>-ns>6ra2WUkWIH@>>cm^{>ND6Y8P|-1Rqf^&{_4H&MUq}5=SVOR|ya_l!;VaEj zn4I`uC9uf1kKI|5D|amF+}8gD(eaC=!6XPS(OXN!4YvWT_?1U`+I~pqPv8ia;MfVe zNBckAd4C`V22>S!US)$a9yMx13Z6gF{Z4c7Cop=y zt5@`}A9*eIAp~4Rye9;)rHw>Vp1;LD`a?|MuCpqrb0FFlB&TM1y1wxHNMmeZ+yPqQoHfRe-&k zOktn_j((MKYj9gd7(!&=sZS|#B?K1`7ezq$s~P_o`PYx>_jydtNy(JM*Q~O!f7$-; zWhfFJU>YcC+;+)iJL9|Jd-~*Ts8q zVI&jxkfKz-{I_}k|I&XMz9A}#!)G7J82(@8|KIDOfeZ){l*70FdSc+JR^`!}{m0fqg;9MMf0;1&pxcG~zkBsx>MrOHRjQ?oTsz|Ryew`_ z{vYZbq=orAPNQr;r$oPg-~S8U{WD&bV(S631@k}LFd8Qs)ie@BvkDFdNZOQ2!H%K~ zJYgUWQ4!qF{D<0nu!EvANOS?K(0=!WExJpEarBc)G>QD^j`Z(Fi(*kG6yWmh?CjtW z6K91or>S#Qfy+B(OZ{U*et?If(@BJG&P+&1*mooW5))(e+~VHz!8@AP|C1$rP;|m8 zPLh(LM^Zk+Jl#j`tB0*H=0ExI3!USt9AZN2#Qv#6MX|^ec5(UQs#Mk*tmxd1aqMdL z5n^TR@ym(gI~Y~z{-w45yRRJCz$1hg;v0*h@YUrd1q%xcJe_HMF-G8GtaD zhueP~!U?p0rT~NuI29x<7^Q<5C&rwn#=ygq1|Nfyue}vpXsTP&{6n9JlL!5EBY83} z81^W>?^WOqk zpQ`z65IS*c-jIga4WNL3`ee@LYervjQL`Hz$q9TvYbBOL>u=RK_4^> zc>Sc+N9qi^vupFYuj;>vH-Yyg7I43DBG!q^=tJQ3F%X1>&(Te6!3+#Gzj>N%0DqSk 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 literal 0 HcmV?d00001 diff --git a/labs/00-setup/images/endpoint.png b/labs/00-setup/images/endpoint.png new file mode 100644 index 0000000000000000000000000000000000000000..f03b0769e38cde6a82a7e7b228609806d8f1aa10 GIT binary patch literal 61362 zcmd43byOTp_%(6r^x4$uJQR5O6+7zf(p)Ko&IyJGlcNh>prq5(p*36uZEecP5%2!1D44EWkE80%EW^0?OZ0fHxWN27aE2h=2@y zBL3Z%iS)mYB8z7t|F3N%oWCb_&zl<|Ac!G+cqgv<1@R#5NvisLl5V`vCz=MC*_q=k zzXJk(IMIIdt8xl9$o%GKFy&SgLZd4LhI-J^A<`My zeAVm<6?Fp-56a^khK)ucU_5$>3DMZe3VmRV{eVO#_UI+^RRSLi=|5*Ty%3{e(lg;D zkbQJ6ofyqGldmY!|Gud8o@U|`mR6*M&?7#h{^ym6|A+JOrReZW(Us6cHRgu?#5}$~ zC3GXwe}4;Xf73weAohb_ujAF*tx6P$HGDb!l`7z-JeyLeL$V5Khk9Ez_`G zkk`8{?vL7^dfXaW`0;boAlV?_%yN3D1$ zg?FI&YH{5oh(yy~LWqXLYQE}2AP>5O5Bw%CC~_N5 zDQ3hoW_T(eH6Dwoz5FAiH=g~0{zD9%1)jM?3*CoQ%@_vR+>t0=G(0K}!|Z56W@QvP z29$}VM%RJB2Y9U0?t~?u-B)OZ&x5x~vDdF_GeM6~gtgjeJ1(MF`j|(T$)wn=D(qq$-XmIw> zC}=%bCbUievWBs1tL{5pqD#x~xCL!qsI&K<^uAELUn(*uxbT>(*yJ?6b#gmyc2!H9 zGY-fWa)b7ktP$o@dx8$?3F%?-g`15dV@Dba9kr*t}de_*m!$EF5P%}crkS_SE-hBR9p**?~f}qqZ&%(pAd)z52eUff``0X z(|94CT$0Pj%S$)XD~dzO?1gRU-Mx{Hk~@L;n6W(8+MSn{ZY#cMzv|ZU9`zq}R47PC z81v@pLXi5UX*Q~ ze8TxID1jXZ286BUyy!@w~ zuPeN&B%<&Qf)8;laZWzR!gCGIg(Ct`T8{_{&aISkkU&FjY70GM}jbIcmPr z1DR$!e|O8^RFk}EY zNISppc#n0_FZ#HlHe;Zu26whSNA=%xl9c{h9!!4zrL{3t$XO=iu)fNH>!7gooEI)u zjN|c9f*a!*UDONqCh8|xL@^@G9^}rY3Vw0a`C0Wi0qprBn*#|W2Qz&|{znh+?}V5J zyc#6~EY3Ey*Vc-mDPZ-4R8$W?1zi~eT(dG%kDvpQ7qA0&eILE6N=Zc4S3JT>kbS76 zss3b}P2^l7vaji6esqPwD$<9f7s|cu;#eG-IlgYN;@b02QM+2pt5>}%&A5uiddI?(Z`=4)20;Ims{yC^XFR6%-Iu4%#6Pc_EA)Sh*}_pM%11gp zu(A>Wj6J_YesieFrlpmN7>&!eQWPe-S+;5jZqM~Z7ehwFiSG!c z#ZzqCbx?3zu&x#K*=yFF>WB=ca+l6%HjlU;UQxQ}d`mGC9*6Boz+_n?Exywm-6>)y zPN}yoswCVwHph`8o4`}x;kqNdCTQ64uG#gWy(M+75}e|Xr)-|SHJm0@ymCWDi$3&V z=&NW@ZnM-AlP5#u#?;l|ynkLLHVfNKaJCRu>sOsla=ZNQEsNG`#l=jVxJsiD12 zRL5RK)$+{rO`eS8W_m0VwkU|tgDxKJbIuK{YH0RH%gzw6W|AiCOq=K{b#@yCS6)hc zYdZr)-q$R4U7r|6AI%H{QG$T{ymWW%CuuESqBG5Gnjc7oEq;jQ;O;r*$i$7u#d2G! z7i#N+DkFE?Q^vsb+v_4;=TZJLM671Xu%u=|zTbF-s!CFS%GdZfj850y-$tvjGSM8V z6{@S$V1@VVhbLHEt6TKPv*vx+A8koH%IScYNaB!R%iGjLH!p60A(>k9;w=^4%^KEF z##+~R*rM1)iDkkoPWv?!^O>4rky4%C701H1k5JNz`!jSV6dI#IOrmL=qehp*m;yDH z{T{jfX)k&BYY$}>)%;BR(vOw7R8*tCRiw_^CxjY4E+;V+%`Tdt6f}(pvvPsuTwBIH z(0PWEx#R9`pfdbf4b^62FWOOkie?SCf7&#=H_(6}SRLgfFF)19EH{fPKb+jt93c7$ zP-2%P*j(_!KMyAM{b~HFTA=!I*=^hU!w;tD^ZgkJ#blWlwG!bgRVDRe?cXDYtuBWG z4Gn&=yE5@iC8uqM2s53DlV)Yc-C@zCEw{=M8GJO=7E>{S--%_%esy_%yj|%`FYx2D zInXqR-tMzRi8$>hI%u-!=2nf^+{oSpp(jTU=%tHeKGXk zJ(p`U;CmB!wcgT160;|(w5s`4mp?JxR@%JXdQ!=P)p8}b2wTQY`e$dF9%0%xXZol% z&jotr5w-v`F=0#(a15#Q>q5Uxr=a5zgPbl1oD{`)NnmN#qppkBn>usR=iy%DXLpOJ zWkh~=Iwh=`bhhWgW6;%4f?Lzv&kJ3Bnp#fiEP<-25q8w*WvI<-e}k#OS3!Z@`Pv{v zSmzR^(7u@dhSjeZkJ0BxB*k3DSS&)hD|S=+h+CN?htEy=Bh+q`BBm*!WF-{@hs>fZ zN{oi5k#+xj#tN7oUzPF*EYCOb{xJi<7sarnXY$_iD9R>diDVp1r_U!AnA$L+=Wv&K zbf$*%SBX&~zbvjtgF3Y@c`U-zs?DIManXl=X~b8Qk|>10OjZ;r(?=b&7!of7BBnSm zxaIZqe-8XVTp=)%oD1^Y@;{emrHeYjTpF9>rjA+(hm?pj&G3BthF7VxfIv$2sQ0Kt zx1;ZU5+M4YJG8Mux>Fb(N^6y)d~|x$*Y5}#emY{;v5yK_dS#12jAmzRSU)%7@qxDY zUnQcj(0v|73QPP6tpIHA|Ne0a{cMizO!gji6<<+wfZMG9dcyd)5ZZ?1 zfg1n6FP%VY5_~w_zk?Ctv$}c=CG>{+vxMKYj}O=ZgmMF^BjZ2S&CB~Y4qV}!&i^^^ z3JF8E^@b}5gH5MSiN|)CPOIW`v_v3gPucORhimbg<7&qft$L$Cq3hAN08I)yp_L(d z^cVQDC`O+2W*yh3%FXWFyJPG3Odpr4EfYj~8h^eGe&^=O^`O~g_VfIBMlt@SE*WEt zTk%?@K|7N9Wd2Xp0!?v+Gyx*U@nPvl*b4#u&$Z0xSeBH@dJv8Sr1|O={o!Ipf4sm% zcCOwrI9u_dZnEg6;+WFbMgfUgC3iFc7#(Du(aR9JyztSfmI05XztpNUiL;n02tG{5 zeN+W)-^IeP#NkNpS4%c52=of6nyAY5$&5Cxg^fe#=qo9bbDl=voChQ>uM?Qxa`B^h-}!p6rg+2TaX}(%54zWicfk#t(F?p=w3*SXUkj0B#ZIbEK+}y3c@DE>2Yc~N#hO1rF^!ru*+piSFLp@u5;XU zrjS8IK7%5O;6C2uUw#wfC2_Ur7-_X!_2Kdm!X7CKud{`W0%QM6kE?^|i9E$Z@;}D= z@h=@BwX{4pqNUDBA0Ab9+Z6scH5zmad(9_)ZfC`{8*|&~6CN-$VJ(^kOD!bAK#LZB(nw;3w{=;p&L!!w=3J+22d6w32(&jqlIE(6bTIeJ&W< zak|%~7L2Q(2>D?~-grGLnSrL)C8%w}mh4tSr=1)gxbpU;S_ zV*6j&95>Md_kA|!%QBnA{9>xZ6HnNNI?C&`%V0@#qYA1VPBvb>pVIK_8TsiAAaOWD za61l8+k>ILa|2IWrYB2ur375|Ha-oBr+ZBn=E~s z>zQH6iDRO>t>>4u5bwrG&l?kF_46mywLtU7$vY#r?S&!-)vN)X$ksbqiBffZ3|vs94tgKJNnN5NDfBV?=U%jvTg zQ+|i7Q5dZh?mm%+ZV@w7;-d%ahoKf~bZ|TN$>_(F%~R^jXylvXSu9MQ?YqV$Nfz z-JyRz)T+T5{v9QKpEKfHvWoM)ATJ~%>Q9)6UCordIPJ-}zKrL)S_`A#f1%xRP-`L+ z&&I4YF>lK=YV3a(UmOjSEt5Do>BK8+%pFSZgKR%c-@l#J4|q@t-k)i0Jsw4IMId01 zqW6ck)QdITES~kS>@o^ zmlXW+R(}|ca|ePYsM*M`MAdK4pTdh}?wwGhVaZF=rfeu&Sp3TbEKMjx%>t)InY0mvt& zTD0^#6ckL>wnENT9o9fJcn8}0uKTp39b{n4I>Fm(tYSU7_ z00h`K1CckZO0r>%;{Ir|4d=VXab+c!P6B)m1&Br$;4bK<_vn>nL>7iJlF~^J~f#|8${VY9M4rQ)Ec1(#ucizzn8=Yy#ho!0(6BD z61M!2lO9YeP0Ds(l*=gpW?XLW3=>EHIPxN)wvGO{Pn`mvBRp#?Ty9^4iJFgRpU$Pf zvHvxzmU45py^k4xoYNCNaZl)oj&#|tNsP~&c_N#@ zHiqDk(k#KDXyPGLdd+3r?F6}RaF+baEy0L=Nz@fke=*(rzJF<}*PiSVzWnw9DVlaD z@q8>&-!?HT+UMT68I$!d>)Yi5@BOx!)u=G)!rYzwoppW;QG{-eus=UHQZob;%a-OB z*C)Bc)QHQ*Cg>jOMdr3VYm6UaG#xg2X&4pLp=smsSM^QPGCx=^e~MY-bf`2plz!M^ z(?VfY)37MJ%99*Q<^)(=l8{@B=fl0LyHgF(u-^^V&l35C8t5)#Mn34e_~NmBWv)C52#AZy5zj)Q*)#w3OnXhl2s4Gxs1OBX4cC(*i7uI8jhHU<*Ggk# zHtL}#X;j#YDLmG>jFIolcdmVHAqJxnb~FfToGBN@^Gh#l-{rRJQ4XI^LmVkib<2(3 zdqqyYEXuC3nv*$6195xTy=(b)_o-CROL(5Vb%hGDI%jbyYDhFxka&Yda(OS@8gt$B z;EhL=S@t4`Pi!ZN!#>7)mT9o(x1Gx(4c&0hj-GhfR3YNDjP!=qL1c}hBNLZ z#CKv)#UC_hT{f}}$g>6WLBc$~El)R`u(ru%IdWTpmp$j zUYB))7-w~hF^EBBKDWQE$Og0fR8%?M-L)g(e_(DHUVOT1Sba)eDirI5yJ*R(s319R-<}^Fkr|X=q zM><_0DqD8gJdbe>02Fm_eEEuTgWo;_1ZdXX@tg_TtWt)bPW$o*9#LgIXdY3ic}H%I zE98&=+8*QYUw3!)C&vDpp+Ug-qlWa_`<;u9Jk$Dr*tr-IHISm)d`zsR|6feeF`;x7 z9)OMhLzJ0N%CR5eW8j`ykqG_P)LgjAANBQOz+O$%f8z?+ULyjS-YH9ClIEiVp$7J{ zA^+#+r=b7`{t~w&$M%?wiiKf{lY8H*MNkS72k!kv^83@pv1i*OQf^c!qVW4G{hK;P zQ20O~7Rg4nK=me|Qj&cxO&2x+qOhFQQ>@igF5?vt$Czf@+AXOfUdf)XznoNKLkl|o zCL*`CS39F`+_=+U>bL0R%B6d9>;0))*jE$j4kM)%eYkTB%iFdPUTpPg^}O6=^z&?u z4zEnNUaEMnU1RoC*`cGHJSMo@fVt+(4ASEDH*%8B?ysN=wyjU(+pED_N5+1Vqn#aq zHu)KLd3a0g_54=;+Inb=R_c5%T#2N{W{Cwzn^k^{bP#sl`;m*hTlsLxrbECKW_RC^ zd}+H-W9@KxFlXl11k%caH@_xOIfM88!pxe4Cz#%8hi*kilX?#{UZ z>q=zNn@^Mc`eUiyjPoL?&Fy;Z{c|Ee03@SFpU_W^#IRE zOYXB^MwZJ(HV7n5=pJAYhF98^r`yg7&0Mp`)&CS< z=(lfCy?1vIwHxFf0FV99ZFCLX7%6QnNywNf!Rb4i(rnP%G)^I{q7Zi9u=qvAYNPmY z8Vn=_nfnbm7?3(P24~A5e*!dUZdQv-O-It=GG=Z__?AvFKl5gPE%nWr?WcX$teCM3 zHR^kotg!?+el=B~j*7ZJWpOlIzrMUo2zx^Z@rJAf4Zm z$9_?ho7YGTN%>?GGG-$2l-J=d-P$7RWGpt?stq_We}6R-XRqVvqXYf^T1&I83Xh2NE{p<;GH{B%nOl zzvW)%HUQ@LzWY))HW~sl)xugp7C@Jwmi#o)UCKL#xCh{WZiB%HY>H9+`D$DC+GTgk z(cV8l0{?^%3;>cOo!4!Talh=XBf+zL_2PyqTL?||k8m=6nQ1r$OhQRII^>D$am!Wu z4;D26V$T)<_Db*o!`mQl=2{?;I_0+E;B~TsxN9?x{ZrsoQXN^TSeOxOWEs*MAocNi zZ_>6}Siiw3$@A(yRqSI(v}-$*dKUIPB%qT3T_Ta0UAgYt8|y6}=Ptwhpt_+b8vjA~ zkq6`f0QNdFUxFv#%{O2TE<>j`+1EkFymWZRv*XpT299>#aP8aG7{Q(XoE8u)oG*VW; zWxhuDm!nUD205&ktF-_oADZvN;fm-Hg1 zX*oM&(Rn)!8iG-3GN29}eT!$V^RvTO>jH?GPiO532s1+fC;9AW_{|PT(=q(bDZuo- zE^>r!{=~9;Hjq5*ieZ=8Wwu-&)U%4(hYg9EU#`1&{zSNd;*d8uEQpgZ_ z+3ev%XT4Ar_d9p6)4D__`Z&}3jq5N4kV&r+dhir?t9G$g`*2o(ytkSos;PxC;1`IA zIVq=IZDB1?cb_oW+~lv^~~c1qv9FM+*g*f_{$wygAXPXwhlyp7Xz zSclAkW11&|sWig}o&@)-v?P&t1XB9+QIP54W(i&M!NgLNYAutNi|K&*5K;ZI%y@C1 z&9(+Crwfu&)!!<=35woi>MT26E&bJF03QR`iz;8&A?S%S?T@EbNzBUGQClyy`)MPE z)@mcxo2~I!Rr8rt^5o(PbM?}M9n}R|PlHAl002ei@xbh}Q9G2Sk}FTfs1&(q~AT= z1*?a&A#BOagNt0QEk&&~>wX=tWM9F*&ju zaM)3TX}TL~WG83MpxZ^eZ%3KU7`u<_2ixO915NQcBDyg~V!E&>A$qqu{eu2drT40U`S`meUfc97((b1&Y!1!0 zhMz>O$m=Y(6|9jX6X6AIXCtx!vS|yJY@a7~)Vw*&(c;?Pe<#LJm-u+OH(i`}-|TEz zx>|E%x6Pix5pPHKX{JB!CF4Y{SK)en!^PhI7t;XqD|Vf_d@onr$_6w7rr~M!g^{mn zyW=Kw&q1c1C6^+S8h-dmLE&V(oY#OgAX^{OGM+0>9ynSi?nPuE^MmQ9f9hXXhd*iE zoF%ILK>Vw&;$)y}P`t7*C_8wAmn?qO8%^s}=C{q2J2Ki{tH%B|FRTOEznN-vZ?{8! zTY-|^xLeLooMA02h#(hmu#oA$k=tP_AL+e4zQ9e>2a@?Fa}_zt^~xrI^j5h$vgiu& zf}Zwxd7k!Qe}J@P$QG#nM)ATdlATW)izVgHCA&hU7;j1h_>sJIBEz5r^+}tXQiS!UX3*Z zUxM3CfsXg4DbXyT@=UV1*JZSYB!WEqr+2e^481Hd<+ry|#1gE7?Ob4_^^)8$}My5~q z*k?vvp##UQ53g|khIj>dh~=-jD4QF(emmVu;pmND<^llM@{+wb&g>@e2h)XRi>a~M zt{&?4q<$Nq%I1^wY9!kAqd~XhG%R)vDoR$rz;fcE2_)N!mFr{TU!tSrO995H)4;<) z7*?)cI2E@HWOW2^Cv4V+lXEM!+e4PUZfyccd&TAHP5KE1n7?wOuB#1S=A>s`>j%>y`Ns3`@UD4;YVD(d=vfjw2xwovGIc$xmBa}LIJ?a^q7)4^;z zI+eK^A0@X%Hs;!w$YHEQwQ*RiWFIa1t4-D)GaoSIG_yaz5?x|^`+wt%cn$qvj#YTm zY&F@DnH9-Vj4{#Gu70r6^hg1(b7_OVsk<&4PM{dR^IgMXMo6tAsbUn+fNJdV&6=gz|GmFkD5qKRT& zc4ZtZ#IPtT>C3MQ+2P!=sQ5Mpep9xluAh>6%N~d#qcbg?v3Du|FdsVXf>*26YM-K@W*Fy{2WQaWNd^>@bk!JZa1{`kddMcMf}F!qxz#hZfKh$KLyLTTZ|0>k%`iNx?6L`k#)#mKtRl zCWZ}CIUT#P&8Nm6;Nx}+o~51@_6~XHxm2NIf$G7PW@|*u~l(U=Nnu=udj< zqnO0mWlDlKm??Wmt}C74AE>sUliVo+X%)YHPpRj!@`Azu> zkS;?V@I>+R`eGThjy*N@y9dEH>2dDmp9A_b(Yf}2!ILoa;O(#048a4)EtR`2xt-Yk zv;tMO+gP2;iAY(e`c-B>MaZ}vKEJzncfO#qKbo)pUQK3r4(1jC^U!q^$?Y`nzVkdT zR4XKV?YJd(FKo6V<`u~YJWh*2?h^cqM;a>$$js{c&Iw>zolUm_i_ z)`ww0&yx=VKaqx{2%|l%XuqVBa%Pu~=d9eV&6dE+`xd`c}9AsW9n(_xz{o!UxzZB}yqRiI(TSv)Yjy z$T0Lu<)YRhxwI{;{xq>45oFMrVrrRBb_ciJAUje@*uj^D+vgo9!?~Y7ZvC;!m}q z#6^O5i^Pk^FAHs3NY^Vv1XAM}#*M;kwDpclLQ=%Tc||5hwBmTa>+-rdx_y z{c^SV_R$(w-@QyN=CO*euR&pgB1hK^XQ;*;3mMvtdWWSX1OsOlw}z%E{uS!KzPu)< zv_{6~nMY0p8e>M5EblPXct1(Y>r|`K>uGm`4S`Jxh$$o0d!YfWu5(dNN&YJ>NIc`K zi}7JHcgy7nD=?^=iW1<0a86hr=$b5;`yVVD--|bchZvkd$k;gt=`|yn89ltDh@de8b{JoWOY552w+9|O{L?( zHlEPh{Xse6Nl$~j77wB3Tv7|h=?#w4Dprk4(vsP;lZub6$=r^)gexzC9R2kF9dtP+6a`l?4a9y>%e3h>>_eG%q30R0qAzeqqoXVX^nG)|Z z^$x@fH|`#JGYQ^xv+dnPu56n96if=vH>@$6Q=W>te11Wceev5$EA6AQvx4g^(}+^e zUHf4A=3tVFsUcdu0%{fOw?Isih&BC80j0$vid(M4zF>@v%U`QsT~e5*+#b4!2pTvxI zjl->Jc~>obB(!TZ2^VnMp?2KzWG_u=PEmS~tJ;G_%#yvFrCW{4;xFue9u+Uy{FIeT zlg7nysl~d{9Mu2L(iSOBrO3}C3D9$N$x`B0EWmLDtS=J{Qw42XP@p5b8q^*sVGYaV zwodlitp%{fdfKV1RgB5R@?=o{LE~Ak{>uIBRRS^KpcTkc2eMPy^SYUyXBH{tGRLL& zcEKUxcfuYQKODhbPYb#@%nA*f=A{-O+T5RJadL5kp+bNgyljt)hr-9JY^oQXSkf11 z1a>!IRfStt;IEcvx5q1VVo|xYxkRG*jko<;09Koq;ijFd_`M&!J%BU4Vg9=3vlgx@ z+S@*Zz`AqhCt6 z!B4dO1&Y?a95$WdQ9X>R{i&Z>SXl-t_&B{+oCgyfL4tmm4Ev}VTU9ahD0UhBIsUhF zuOt2}hZ$}1rI;;O>Nqxb(XJzFF|)V%^a1*n~)pK+Mo2HDyF%flA;0v;`2`zCbvv zc82O!ja8%n#ISP%#_#wfj?4p7olSrBtbfjazMGs~C0C9}{U%?()%PQ5A)At{AK7fv zji_|)pw>p!M{%+@Ona}lc`_E=@Z##VB%85&4%J`7AV)mT6Xr@JhHXR4O=tzk3Rjm@ z5-IYQ)U`?>0Y?r@&M4+{Mw8rWsD9V}c#=o*osR6&3cSM}Tp`&eyo9aAf*cMBtW8+z zxJ59f5+1#>{a3-4uGA$*9Mo*XyqixXM#;g7o0P80G`@Rvlu-;VZ+gHkZJhh=OmwKw=`O{k(iv7Ag1DpxFl#997b>1c?*(_Jg@VvPdnO z@>1b}pG!U=JYARfpL8!Kw?Cls)<6Q)JU|xD^TPHrxu44!RuCFT071WqW+@eQ^^?q! z_qqQ0Cq9&Qn=A%Ye}^MNNvkjI-6~}yZ18DzkMN-iihSH(gV$U~*L;VI-k;7-(U;LI zeVP;hyc0bL12M?+-Zivep?i@tIF^r)G0bZAZl8>YzZ9*}5$mnEIOwJK{t&x-?2>E! zp3fRiRSDrA)$E`YLz-cZ8-A_R5fHt;qqKf-VA`>{9-&d!YKt+`9ydD@$C}_0FEY;M0X6QiSW>VEY&=KSNq-iQs6UT& z1g5vIw_)t4_*nB?XmB$^>u^xD`F2qo&iPP~E}o`jBgZ+`f{q}*i@)0aeGN#8BAS${ z@=F+uHlLYLN}WjHv)`R%Z$IbKJ%i{*eP17xt|AE(Dc?PH=-&+kAc` z8FZWT61M1j@vH7LU%t;ACT5|if3c6v$N;Oh{1}fsC2rba2U74{v?(lW~Pzx5O~izlGEzca)c0O}f}p@?Hf{E-c?@raMWBA9q@xb@t_%`ML?A z^A4Xd;Df?4tc9WIoCiHK@6bC8$SP%3auuQh`*2}OHx*|ds-YVds(%lVb=yO|TC8{2 z!}$EgW+TfCRYK*ra*pa@Z^1XsskFre1V1Fk2gQox!b z#YzFq1`m-*erXm`5`P;u_0nnd5~am?-+Q_}(@}CV_h;Qxa9KMUd31)`E%VLZ0Q-{y zC9+@yH|1&U`53wnMQGxLo-JQ(i6^_sj~q!22`o6DK(}K}1`>96t-nweE%M*nEq4}k z$J3(DgImLaIcr_1!^F;)1^N7gG{vNezAAvlN}e=wQ3y-4>0Umw()nk6J52zy*D}3T`rv0#R7}gBd~2d;Lj^>N`xfelR9HDlCCis4_2W9IGWo%y3G!BhZpqDH!n{=Pc&X@_jy4V^cVy86yktm@JktFmgksviFVk)T zpeUWB#OlR%V()T7iK=woR+FF#rOBn)Sn&sh(!T*=684rt5LiA|WKU>Uc?^QzPR+wX z2Hj}WU+l5z!+?ntA84{(Di2Ru%ZaV+m?Q#Bh5yxwg5}274U>tPrnAe1f@;I{183)X zoNkiSrE1ICk2w7$Xt%0Gnqy{lpCh-N`R0wU{p29kYpEFD;x8joP)>PAJWk z3IFtYK>VlOlGz zwprRkY0YHJ%dXdcUc~)GcY_CpZwg)BvaVt9=rJhO zpE<01M{pdpKRt52wpRb;iAH@5By8A#-oEKXL#hpxoX~jO;H>1MVfa>#27e@YYy_FT zRsnT(&`Mzvx-I~H3T>yFT{UO^L&BGc2-hNrfbgjz-mE&|`IJ;q%<`@5MI@Z1wR*6Z zC^ViB*gKN{f#_4ZE?{lfUQ8Tz>+`?=v<5a?(&~oubw-Fj6n)y}juH+yEv{{u3&dggIqX^^KoO=lfrDA@J*0?P_<=E?j0o-xRcQ zJ_7M#y67#kku+#pH<6&ksvp3+HZ4CuFTm;yvseKp%nUl$*#;r+MJRQZ-4>Kn z;9O8i#l2N~x;no21!eS3jOdkq%bhz@Fh9SHhQg_@97UA)TO>Ms0mRZ8ekYKPT#6*$ zxZ15&W$T1m2RRo}7&k^#TQx(}i8fmA$sNISAPYxz{WUgftpXun7r18&p zRq^HxZE`jfG-dXt=~Kfms|1>j;NtWhe=m@ExcAw%7wjVfCWuz|k0X-r{MNN!_iuFq z{qaF3z{;n?k641D%is9iIRqEG8{(b(9ES;2sI!15VmFt@H<8XjRqbw%r|0wY^Y17& zU?i&)+pR^DdB8JZlnnR)5*cJ3{_7=p<7??4pp(kb*83k*{r}gF1cX59_Yz_#xf zU?PB0Q@;(vV-E^2bpn6jvF9U7?0=6r+5g)bKK^$oUg_rvPwyPXH;#SYy;yUgBjx?a zzv9a$MeQ3hmR9?H(c3chI~gq@8v38zIO=$EGu!{Q769Nd$_(JZ{J$(NcF51#=mffB z-q5W?ilq|!)gf)L4_t@+V_2dlM52%ll3@0p51Eiqx*L3!oBYpFzz9Um15C3Bm2Wst z`Op60zw`FDD*~RrcpR1A!$f0F&(qznxckHn8X~_hl*9x*|DC2|XN+HWRYFdi9=2Ick8eAG)Xfggq%d6*x(|WY1no*gunT@ z6k5t4k}I0qgTbgkK@#y~%@W6`p_AUulGnJy*{S#-BXUx`ac>21d6-<(Gr?8+(%yk< z6lt8(TcvoYuBCWDw>?+hSEoLkvq@OW(BFSrO!atG7$V{}2Z#qoEPX|NIrqrIA+36@GkJ?~(rbqRZwy`_J#|EdP7M zWmitiTh%09(|8IICuu657yiHk184KqZ_%z|U#57+=A{o)g^OppjV)@kSmGz#Xv7-8zalXnSvBKs!$*6*Q}RBgk&`gk*!mg_X=~#%%7hza&}LZgHAoK&9pEw-(AS&_*H;-n*(R|KoSr+>ebKD7Lgz}*!qAza zt?S_hn;OE`!mq_wa`iDfsHlBd?D}FB_tv+YYVlT4ZTyoOj~WKB9W`nwJMSFZZ89d$X7~LKwOFlQY!& z>nlx-==*Q52xEjsHdR_b_AGl8#u#*q-Q6y7Fk|@apY_EYn$OiZS5k<& zoMU>19%XBXYtYHhJB{h7w&VVn&j9yo; zX8bBoAwBAKR!gYS%ssM8%k8h$8r|)1(AoB2d}vN+@3pODLvi=Kt?P2Pw%9ozneQni zEGAN9hhcYIlqNFALt^@&V%m&DXHsNH3-XIU%olC&>iO3%ec$82ekkDSCX*QY{fUHh zs008|zO~7VD)-Q!!v~`R^EQV<7%xPR?nwb?*qGC={v$!ZnDquqGLDOKbsdQq$K4Y_ z6@3r8oX==s1sk{?&2GWM$+4YW4rgC|;(1{3dGOLg?_?X9ewnhdSYP?^z~laUJrc5+ zO}ePLj*I0_pQo?%me1ijDk!py=b=XY@?d$lz6cID3e7!J?S(wH!fr##@Te9`#c72B z-8?2s3U?v@UE^AsO7-T>SZ9k}^O~Rd)s{TD*JV*2;0)B8qj?F(UURg25V>(1QgqlE zMHEjh=J(vm1lIG=8&18{rz&a|eGp2aX;>fMrJtSy85OpyRl=t5nEVcJKI|Qs5aE@qoTV_f{&5 z0Q*GWy*}a`ZWSeTva;#rq({+?Wr7Ls@UinPH=O5;aGlPUNmCCjmaa+ha>L@iq=a_9 zBy6)C==xrbV|)|yUOCs3{VZ`|eyFu~ydMgk!WIfOVo@z&cscJBRfs#w zi7cAhtq=P=kkn`e8_?fRXsvhx;}P=N_5D=JgHvErllER%O!u5KvB+2V6Ua*2x)G=L z$OYG$M6;b5_h*&q*^tH2{*bn8P62ne`k_1Yrp=J76u8PXFS(-6#R6!-U{gS;CF?FT zJP-uH|5po~!QPA&x)G|3LI(408*vG~5csXOk6|0$54Wnro#1FjjqwOn7E9mT&!ul> zx0whupLk!dO8q*ggwH?N^=DpWXgsUa!uZn!m!Y5yR9R_~D^1F4(%U@~vq2VcY6?j1 zZ%593&EwwSc1ARbNURr0^;#A6@?JBc{j||zM3Me||BvyS_r~I#Py7*8dtNO$aZD76 zTi4%52%_K!qh>ghzxgN#hi69H%%7<3UV7WQwTxnUcP5`LVXMK~zv6)}A`3TSBO7EN z*d=BB1=vY_kL=Shtd<-63E8z6WH_E1G(!$?)O`KO#ymitY&RL~Y@I>4s=jDkAvxi8 zv$=0cc4u>w%u{)#e>FbqTL(`etkzHEvc$i7!L`M9ij(~sOW0%!&jDBz;KTj=R94p$ zR=l)%?itd{*dW&DG&@T6l=OU-n~#Ftzl_c6?}(@geKrc2c-mR{4vmT1hMeuk=+ zsH-gREvgf_07kB z6*oMT!BPr%E+@J8H#Ptxwt2UZF8?XX!<1-A)bQaaX_u_filhI7tM`s-x(WL?Rk{dK zQBb-dz4uN)1XQYk^eO^M=tw7oCa5$OkY1&?(0i}aq=ZmH?~u?T1Of@0=iPVD{&xS) zNzO?!^PQRdn$LA_!%s%@QV_e%Svh}dw)O@0H~J5j${D}ZRbNHA3`#fX$d^4bc zf6kz&-178YJeS40qo5jFPz>dQweEa{oo&kbBHQJsP0`VTWv!>JH~2i!?z}Pjdl&ZF zY5X*Wqlsp&ZLPl?m&2Oq)LTLGtvO{TZEsF#4xW{bW_FnOFpf9G`Fkd<3x^Zqy{j>o+3lAHwVAy!JJ#lnpEIyz4vfHY`Tk$$T&j+pM&WEhhI5kOgu174+;(zZ$c$;?iehprr?3t~XLPs3BN6J1${Z!FVui%Yy*r|nx?*2r1)bGu>E9&EU zGJ}BP-&hIz?t8BZci52i7QGtu*--m^0_VZT8T8`ixnO_QECVhFwD2g{n0$P|okeHypt z{adLNdyxWy~uhC z%T(6kmcV%*W?kn>_4C1rVeeqg&F)Q-<5cv=nH>GvqgdQ=LxlU$g$X!PJb~Xt^!?3G z81`yD#gqMqk7V0FR2=Yz)_ud^176&Dn(h5XQB`U?Ap@>@@5yyy!6_k+rp6i#9nk*X z={Y>qeEJ=76`N7V$SR+Ad*oWdv)^H_*OmQ;w!ECz0dO-;8vg+wwm!zdHhfgS7>UMI z;JDZf%NL)#E&C{9g`F;2&OHuifjNxo2k^}}9kn&AngD+)UXA!s^}6HN5{IUKHvs(4 zCmLmYUe5I$HZ1uG{^sa{VDpxD`pgkR8}5IOLsuWaGL!l%+8Is>qAjT{$T9!4NGX&JKuQvkmd7+2W5* zRtyMw*`o#pUB}+ITMplzm4>0()!VT(uz{&U>Wt=#ZiY+r#Vf&rePxSGNsx;;AmU`<->I!xu zOjw+N?_nG5xlB&5`mo!CCe`LIln?~(9Ru3nvuGV(K z#?n&AfaTygspl)KZZIgZg=8wmn>w77k_q{=}t;Vqo)6QUS?u&^-=;O{eRW8%myiw z76h&8Us*Nvl*|;R9Ml=tf5>^nZTyl}C{;*c-dhyuw7o&#e;P^D0$yqp3S!h_2kqO; zm;EE6&Z0FdgoxJ<_0h64386=PJeZ|`EPOi9r#}619pG1^&wvAu?A2Vj!$oU8iN)11 zA7MYAr%$Zik>Dz-wt-1XZm9^Y()HXy-U5zXSt7jrha27;zo?=c#m8#h?&%!1ny&cy zD}U%y^ASVo8`tE=Pm2`uw6C5pUye98EV>wuEF~@4*He{n&K|`kD)yEJ_LZd0R0dw{ z`}}pRdH=4&iDWcDzNgGD`(hi?{?!8*a9&n%u8_)>|4rk};b=IuTPR^1ENV<5_rais zS+rD7I(pr#<|#g9uPHk7X5A5;6B!R`{w-v|oqS34fgp;@ueouNONK{=q{enUj!Z&K;u#F z_efg9wY!gbm`4wDIW#T}zy4s+jp`W*ln#ZidNz0KvfU(_nm9`sCOFY88weL|5BuGSFXUx62$oC zT-zoL0lg`pDFm-kd9gD9Q6nYS@Y4t>{^KOE1X1msf|sx3PZer~S`m=SPznRmjG*Jp|B9?qZTG_gIS1187KgIRTcTnS{%zT@NyRDny&?gJT!x5^6d2fHs%`Z~v=za!r4o}6EKfV$1RZc!xiK4~Nf zy2_VYZmj=c-*}o@%$+291#dm3T~Nk3U>o8$x*>E1_nXIxfU7qRHMB!zPxbS>PDv+M zV|)x2hn{K&{E0vkU=Em0HdpZNGymd`#(9*#mYDweeTc(hxK0=68SWjh_F7v} z7*v#nq<)nXY&zM1&*)OrW|-poM>V%UCn-T#n6e~hkC?u{KJO&*SgHb$gasx;@NKO# zq#ZeYmZhd9yN;x@vvMLXBjg_nOV(G~=2;I%!&MRn?t9x@_jSCQcv#{XL9<_yz{j~> zFhUC%+v^12t(8pkvBUl)G*gJ|89-Rz=K_kce+=)GgV6d${yY_UW{d;cr4DO&>&0oJsEYALy>5nL4 zu^fUx%5axd%EzNFEUAHtTs8LE5{}*`xM_V9t>cgB3(Dp8o_DDB)2{q0!gM&}p?SBW zoOUbh8`(XqS?$42DOuJT!+V3X+)_h}yS!zT1|A|s2WWRl)ArKe)-FW`knp87rf=5a z9O-hZ`>z|_gZ)z4Asf7HX~(I1wZT6hf>66~rP9tWHK~ifOEEkDZIG)ds@qrO*b!Ei z^-tmRc}iP>6xkzdk5AjNfAtYZ3#EY0Y!)JqBGZ4u&X?On9eS>&btryz^p6nTame3SJQn;N*YBs?X`1)QN|ukLc<09vL6GCF!SLy93-wEiDVOew zeM&b-%LBZ-^v@-$)JFG)9_!Tukcc1oI<&3vrah07`R#n38)8CtIJHHme^uBc&DbeP!jraVo_ZXB_iNbKT$M+(6J;nr-UzFW59~97TK{WWp z-DQ#PBcYPCXUuVpRUxkYe(HZ(9|~tqUb81XZ=mXUgBY09zz&EdE2wl_kv={+s%jv= zil|&B3G;(iu2d-Hu&D`wGcuXqwZE4@-%Wch(%2OgCc4SHYx&UO$@sfvJMG(NbH=RY8VYdppl689XYVG;!+}W-;^QNr${3yEQm_oW3$TD{6DvB~( zojferqMsH0Q(X^9>h<~6Y)^2=En=RsXzS_eEagaITceFm%#{huYm;nbg^aY95N)s^ zk##!1)%8d$Aa9&!EQ_JIl&a-b4{;5YI84P!JA&Hpo8C`6o6ZEqA)-lz3~qTmutZ+= zq~7HwqJsYYSV)HhJ;gwlsM-q7d(wCDUYv=+lY3K@S+{GN$q6O5*|>Q2?HXDAyK=K1 z<3^`z82Lnf59}(dgJUoXOZz1QBJ3Tkt!(!QPYTb=c=3Jg@@6RP6tnVtjPJ=s0?V$4|8$IHi7R>d_VRFN-FC=CGkwiwV_s*SHgDH+aA}Z^xIUdJTuUt4S z-SH0>9g;F0#kmwHo}LWj zwv#-O#p%YVkZZ>bY|l0D9ZF!&AALKyx3iZ_`(C(pwBjAo7jF&4-l8LT_{c`@iePDL zeT;v8W?=M;^S@W)gAuf->S0A>aD^Zn=Ero0Bo-Qb+^%dPk)}!IIBO#a*g0ExDCHe~ zP%Zi8Rj?!tn8q;O`o$-86#)<)`+=NrnkRc>n|%)aA=l0xa-p_TKo{z`)i&UoX=y2R zbY;ro--PylfM5{6exfNUsZK=)RxE72vR79?&~|J5X_oNfq$UH13zt#}>-u#nHP4O-c~&6 zRr*_sag;!FMacx;$vD?Y)F{qckCA;drijZerm;z+LIPh&#TxXx@@d$f3K+uQJRaqe zC`mB%YI4%Cn|T~hpQxcx71}hy30I^CKrd822IMGFk3s_1pN(;#889{6-$a0{*6%qV zkr~gL_>NH9vcl_C*{NFI!ThldNcUF|_MZEEU?JL3KDrUkRb8zZQ?ESBo`T6LXZ^t} zzM4lu$@7f;!Y_@I@3@bgngyc$9ffY^mE zN1tNoKm=AyUO3Ag-Td{s=Qi`^C~vWmf>*QG(iP?M<&xD?iu~9S5%t4Afos_Sknn}- zV&C1jMfT+nLfyq%fzKXt=|2vXOfx7oe&LopTnd%YwHd}P&ZaX<2J|-!k(GG>(~JO* zs}5C~NKe>xm$0RDmaAW2ieKV8o)G_WS{2s?-N_#))v9p`vzYj&G^^Uy7p{}7c&o(q zt63j!(!Apt%SV<{BmQE?QE8`Qe8wM*!!hn>Y{zYY6=JcU8WVo-!$ z#cDrO#5~LPp)OK%&o=Zfn*GNy64chMw1`JRfpyn^M$N4apgsRPbT^cC-8yP^si*KQ zi$_uvy$*LMM)=(gz!}mn*UxU=bBbOVmt2`C$1No3QlCeq@9NBXG%#Xu)g@#v%FT8x zFY~51Z6UUtoNvKhBdBG2_#IxVX;!)H{xGn_fifHYLCYwQ%*VhU34C`b%LVmI|I-`| z#u!H`1NkF`C+XA?%3pwCCU$3Hy6cqom2|h3wL*ip?0y`0+6zU;lkEBTkq|Y(BFJLT zz34B(=49_xJ4dbr9<~mAf62!F10nwY_mxmh?kb~`?EZYf2pgyN!zO=+tT{f?cuZV!~{pr?yR2}thQVBgioB@uN9|%5hJZB&|>EUw?gWqNV22c^6 zVjK{6-nGz6Ph#Fkm-R$usO0FrVmhHnd8_QvG`OzhQgP&j+m6nALUI0DP0oGd8k6K> zO!2}h+#6<*wdhC4+O@zQIyQMnuAUFzsq+QRTDmGM|9eK=ACo(XHczR-N5Wzw^ro-T zgOX)#&=5jZ6W2Vkzl>72Zk&kkzpx?+@qI=dq5~fT3;{YU6a}x|vJ>y)T}%CY;)zq+0gT?9Qee6{wyi9QVG{ z;g=Ldd2#rm(OSQ6xK1$G<6@-SUHKU|qv`R0OY4KsANhF0@C6gFfMM{0jb+^OET(#) zsHJUs1uYG)vI5Xbc_g<11C9Q~!SIz?+!geD6RGkx(K2t{!YUGMbWEy#<%d;F_rcGE zEsw))wKq-Qz~VkH$0)dqRpc@9_3OHZ-#SBrsGzS@SS#|r9N%Az8d8)we{+WbNNoey zuNa}>tRJS37LeiDL3dL-0^ovZhW_ihhm2sZl9#H6oA%l*GDgI=!xyb1a) zk(txJT*O~uBP9P%%Ifl&@T$uhV|2#F)iRn{&Sqi;q;xCIDu++o)03t%!pLbQrj&H^ z$JP+}kHtiH&*m2lUu8YYM@FX(EMH%?SnhUAUow`-TTrxE2c0NT{7~Ba4+;l3L8Hc` zo1ZQVG}0ERuFstP@fTsDjRj^(+P%;WV5o*jvpreHR*^2(cKJkC^z)kv6TEmPPe!9S zqJo42YG_phnD>-BbOKPAjL^B7!(+Ht`rj>a>9Sia3!hW_wpzq44#wb5(tp2W^;wux z3X=HL#O&f;D?;7cm@+!vh10xbq6NJ+cSOFMr;V{4g)|JzR4;l(GR1d5YY!})vF@+N zjJ9gXSXwa!fnxrRhYT)Vliua0GP;2k2^OrtW5IgVo5~}C@sePlwFdV_;z8v48S2B4ARD1N#@&dsFQqH#G_wxRP9tB}N{+$sr)OY|@4x zXSH1XBj55%=_uwtV=4XLm6iutkOln?b-R7AoL_6;nX(kFu?&3P7d!@L(XJiyiuB-jVza-`#s4O zd^4;=_Xu^sC;!2B?ozi_4*U7?E)4OJ!hO&Y!}3x{ml8`xz2}d(+am3~v72X1^9^^~ zk8gz?TC7CvYQw3+za0MS#BD807BSWBZ3EiBg#CM-V235pD0PZ$0*6xc`6?Fsy$^YN zjW~WT@WWJ4I;?+pc7i>~p=yQdayCB_nqgfO-@Oi()r7n%=Pm$ z1&U#LiFKf$sR3?R<1cR#q^p<{Vq&fFd+r(oH7(SF{GX!Kxi_EglT1d*f>7xMPvg`2eL%&9Z<#ZsjKQ2JfA}d^ zf|*0wCN#Q$fXJBr#81SCe+!-5+j{^k?7CW(te6Q@YQ;OWZ*Gd?uNw}X!9JdKV~hL2 z9o5LVB=qv~<6{+z+J1|;&Vjk}9_CqubgqK(Q}1aoijHtIolWOw!}P^4L+j~#x}x%i zAOzoaf5X?ZDmxPM`((8})7c8%qN*~)ls=iJSAS=0R7n3;PSB8Wng5nxA%(OA2o+l^ z8eVs`Sk$#6j_xFmT5CG{p8H>ncYTZ&Ff)_voc*-t>3~f?T*Ppf{tN2NP|vCMn0`FG zFb9z9X-gHq0Ld-d%|sBsnm?QgS{18BiFjLCNBYUlqh`#HBV?BKhp?o4jB8Nr|MDn8 z{HN^o;nJzTj2ANe?ZC(9@eU(Nz26>cESkQ{vupYH3xCX&w+fO#ORp2suz!c4Q;FD^ zv^45N0M1c?G}~d+`W6w|J7anBuy|!XfvrNC3+d2p85-j-!J#1NpW|F28OryEEtXt3E$S5pno7mh~T7PDla%B`7FM9Vtl5 zh3^Ng(5)T!n=N`J5@QBg{0yj5Z*Nl27_QQNA2vHYH@HgPRZ&mk(U81^-Q&dUFS7p! zZxV|2PyyRnb7BRl)Rn21!KnD5TD9_-Gqn8aJI_)!pS{_)Ov0L(iaKyE!kL`){KB-% z=@Gx4rX|0H<$4mE9j{n0_MK_{{_{D{t>5-kj;I0I31u6OQkO8!e=A@N1H?jz1w5-o zO2s4)SMaKMY$C_U38pET(&hL+G)>1o0TTe`b@lmFxcaWdRAoPg{`?D}fNzTM37X$# z36GiFZMtC9U=&Umd|8=p$+Iub%ZCQrwib4M~P1 zMSd-3x$lij(KWHwMb!JLnAG?u%G*yy#qrtdiUi<2m<+IdJx}%wcuzy?0Z+TcQQAHkr@0eru+L3EAKH94u6z@3O#f z9vi-o$8&fQ?Qqmd<7KuOV)*J%gV&2eGUf!#1M#}`Q_*R!gMheBtHxi3USF5pBq0oQ z7%xC%*NJd4tu(^SzY5Eh>|kwdwe0x)UzIqu-f6pmdC_Jv(%bJKH%r`A*td5ewh-L# z%6{zH@STA^!?R<;T@=wEBxV}ahOhNV`AvY0X3=pbal(OZL*}gBmd87N(I=iHNJ4wma#qs&<&scBVUa`(Nxk+{m+hxhL&Pix)PE zWAOn!dcp zxRXt0pa~7vQ*m|0?D41B+jk%w3R_C~+TSs0XX(FVd6nTGL+qp;blpx3!j2SLMZ;(E z&9aU;o#wmHr!Tg-?2ali#4MfZh>!SIlc1_@bO?xqGPS1{hG(p|2g`Z6wfHnE5cLP0 zswOBRKku9Cmt|xE&hhaYbvpX!5e)jecKYYl^ZSLw3F6F^2U8?*T;n%@8=ocp=Chv6 zj&l~c9oV6lEE5348XN)wZNF~Ebh-K~UheVfj9IqTEr+ldDxjneC$B(K`{V99=`CAx zK0A$tzE!!IS@xqd+e^&&cEzPu=Qu@|o8I_LmY~#f41=W8hTp*@ox)8<6H+GVJhjj> zXF{DBXy(8arB{}uZKl)+Ows?a416Z zMHZv{ne*7SRgz=o*RWcxWmSk+^ddIatVzpCEp>;6Q)`N0!LU>|><}x^;$`8zuTU0; zVZ0bKGtwsmSw&`h8`JRjS0%n+9EHg1Hq?P0~aZ;+Y~$LcjYWt@YPBX zrP;7mhtExJLdq?FGF`y4wJF6nwJE>=g3$KBsI6?~307>DUC2C&0AHuB&J`W^J7x*_ z$R2c9^&f>Fq!p!yoLaD}9TscbSofvtd03W=LkM-tr}<^sk?dzZtuyUrEFQ>GmsZVo z`zXEsc=`gQw*<9#aP_Xb$i$zv|^5LHhH=U4t5zO@T^-dACil+ZF99&rh%p@`MQI+S@Tn=dRu^LOVf}p4z zCMC>JHNzJ+QP;ZtR&>y_t?enPuJzs6jL%OOlTBfL3XjGB<^xAridS?N-g^x7TPauA z?3_#jt<;J1M2St;QqlFQ%cXArGGn+L9x~^18M6UBbt$CQ#%Sm5PWh}JPN`>9Wb9-D z3T`g02ovqp`<&=pHHk#S;La3rpI)AM{h3cj_f^mG)I576;I$}v^Kl7oySeSTbE?!h z{^AaG5;k_K+H+g-@)`!PgNn*^87)K1CFL4Ku&Xsl4s<5@>BrqoWJ7L0y757KQPa~L zbphL{UxG1ad{L`K>&9m!I^ zO;~|B6HBMY=>^lnXtzg-^+hYKgqR-D7r*068iHkH&e(cXvhH*Yoe36V-#d!mmR%Xm ziX4{D#Yj3E7mkz*e%vSS&T$SzQ-J8J=G3!7DM&TzgkSd%-WgBE%v&zuc`-@R;d6sY zSq5`8w?|hS>Rnrc^CJ(|$6J+4NwpARfW)6K-lS1P3e}D43Yt~FN)-p?v z93kT?Z(fit8O2vD{_lw}fQp*2J!0K*8yaRm`teCNlSF)Q<04r)wuC__Vd5a7b;;-x zHQ!$iuq7Pav(Fr;j86Pr&O-OGA?H(izIeM@yfIXn=ILxllKk;h4MDxb2Q64mr8_9^ z(^x2MTR;@3qP(l#NA|+gzD+j*7|u#u0OlIP0Wak`bAa<&>|?)#~#|7c3sfw z{_2PbmRsD$JM!w0IYC6)T9}S4kV)Y;@h~djyjRaKQ~p@E-|JrF)xTT$#gbb=J7Qa= z;pei=itA^4JNQ8L-IEtOP_IxkhE=9#oMqQw>Vew-CQw5=WqFf6i&wLEZh&GkJ}iKz zzg7)%Jw?^e^6;zee+NJcaleyC*!-Kp*fD?oHyN_;yWZLIQJJ|GMXYjyG38}%g?NM$ z{}zOQQD-oi!EX&Dv*&51Ov){hZd<=_-$V+u%n>%UDcl~KZP5(z0_zmY_o#(32?t>K zRYtS7z7YMVvvwGO`2NC%wV?wOO-Oa;#wvj0BlvPoeW=&wi?LRRFrq*rml-PVe$xFl32F0>4o}7CLDLpAf_4sEz8@cq{u5|apS9V6V_zkMO;NoA0 zEnq7L?_+LBdjfibKBGnLLSI{4O~-83DZ9Sj-fl+CkvnUJZZKv%n00$t@M?vE#=5cc zLqkLbvwnd;zL_ABM6j$*WJ<|PeKu&gx`mBugQ^V-oBj?UAhhzKXxdhH0NM*s0Ugnu zuXD@;)^~2eTQxBToG>^D{`1&YZLpSSdHAJQ+e&j?bKp?xq;y05x7dvNwxzr%fqs5! z|NX~L&$e17YsPNv7LTZx|8og){%0dUHnOX~iLFB+`0vlOq_s2{yQctse#@gZjb7V- z+TPTlLvi0P5iAC%xoLy-vl=hg`={tR&Cd6J9*EsPSskg7C;<1T*3WgQr@V&hZVt3D zV;(n1zPL!PJi*8?!epfv<-ll*Lc(?}Yar6Z>QMH7mJjj3CXSHC=WeLohe^epIkiU| z+bk0OBvOGNK}R0pP(8Pv$hK$B^T2#3Ke@rL4WyqsoFOhht9i92);Q3^Mdz(CEF*hg z=(qz@!knuvbDe*MN|Fj)J^5%}b^-pyrK6~DabL=A;Y_%3`9PSNVq5r@S7x=A6txxd zKJ&UuX27vs$a$|-WTc$9-uzS}qr6*z_T@hj-u7N)eTj{IKy5I|Gt}rR3$p8a{C-a6 zii~DVLw8h*I|g`EiAR!$(0HlRyHvzZk~=L{o7`QpFpe4JEpaN<`R@1D`#WrX6Yu{b zq`l2@96|3))bT0op}!|msLDvt>gVTOcH#~-WQY_P`5`1muD!LT34vrppk_!;Ynf!b zo6r;=U0CnG7bT9ic_GggnFNaNP-^M2sjP+(9O|X!gr-_--UE~XoOAX==+i_|g zl`HvUM$5|d{Y{DU=>xPx8#x(%uiIYQypL#eY`ujgcDfLGEM@5}Le98u#4N~^!&B4W zaM)63vq&1Vxh*5+1yoHPzmvl}UUn_~snrE2jI~>G+IP^A5{v~eQZ7siL5Ct085Ys2 zkCtOp;mEqjQBSe!4sq%x+fOOn zFK*++*uQSGa2p#FAN3mRvXG8-)b#bzvpO#|fO0H0e;%hdvYL5Nn*~S`@s zeKpEf3h(1Kh|G!bCb} z8yc)AqyQZbQJ!?0h6YJzLOCfqDaklPgsBU>e80X>IjeZccKpL>x!{|DZ(}k((%P_G z&6&__vvmq;VoBPDP*2-Wxj1*GkvP4-HdUdgW-4BhFCldMqW=+b%#g}vp{kuqVCTeU)48p&o^!Nrd)f4!X^Fq4?> zPE%0GDDZz9Lcxrn0`XJ%m&dK`@(Xuelm3%cR-5y9T$^=CA4Am8{)cGk+MTaK;+`hh z(J;sulR>D7Xvic2EuEI0$eQag>a{pNEqCsz5*e)izsGU$70aZT<9u!o>*$yZwcA07 zrr!3yR6#1ocT-`dHWlGdi}t9&T5>gYWR;BTB+Cp-Ylq%KmBinwqo5m1nY(Nmvb7U4 z>W!&SM*@#yAI@&A_TSmceavT+R4>3V^rr;M2Kb|O1dntc3;^KD>Dq&PMk?QCyb1NP zb#roCvqK=%+rFvSoO*PG_*VxL{#=TJipXMsxQsVl{Mllo3>uz%f?O(v;-5sk=4TDY zHpg0HzkQRS7kAkzr#^r-S~Yw!)Ik)#_Ke<5kqUMmFq*%3PZ;G5oK_Zf93#0$<~;`Z z`>!&vZ4%Vy1V3r{;XL6nG95qB>6(H4dwX>}uqcFu5i85t6)bu0a)pKFZY}uali%KP zA={n4m6>nF60(~7$LU><7FOgFJHI>9^C8XuM zW4&-Y{DCyVW;WMZ_ClL_aW$R(&j%>kwMfq+dzh$@f%fs@we_#?Pr@QZ2HSOS-@oI5_I4-v@T&fcKq!E4_ z{!RDuW?#~aT88%K?!d_`I$EpES`1TRW&4nGcNiUFc}ekW0CI!J8RJU#UCX?o+>D`n ziV8OpuHKfo~XpVKKI6 zH|c@w*-D?EUiQynDbRpuu)AoDoxLs10$zQM6d{EV0a@8Q=(jH>$aZ_5gSlK>z-VvZ z6#pg*^>H^`y<2Hi%EQ=aBfV%JRR0t+i+$CTw8ya4bZoSObAxSzq{sWs-)c@-J+EfU z|L@%=>c6ua6C@MBt?!hT^@?3KX%PHe>GNAZ#c&EYOP9qG~K|y)eG$X=N{i z{XnW&XpyrFjGB({^{b6_5IGKv(Ga#-b7Y7Q2pNRU4Chd+*Vokq&rLML`8Go$hq-C; zfSXsxws~f8ia&E(>R#t5)e}KbcGw(&X2mnFe?0Odxpx=94G&91Kf*XP@9Mru`PST& zoaee7A->qyc-fNJgLLhP6}BYfEKQ~b_eQdpE2G=>n{tV({iN%(KL7W-*XP+jzh&d^ zrD-36{#)4_23MUKI1XW}u`45#O+Q~vh|~>4l9Jwtcs0NzIROC-m+$S?W*Zu=80!nx z4ao`v3fm4-Kc`Q+HLG3wDfafA!V;p)9)9H^WFtj5Xm72G7!nJSG^|%j#=)@i4e`H$ z?$*trNgn*N-=S~bmGJ0?pEF&5qZhYfo$YEnaqMk`X7fl>(*GhB7N$of#9Z$v4Cak! z1QgE=InIEdBzX00h)@P)@(tX`6==SW8m9Zx5p@dSrl2Af0t@e>iu)O9^=(zwhdD^) zqEF50KUC2kWcz7xC+TXgS1W$&;}t~Rr~7n#`IPQaO8@@DY?+1qU$*l9M@%y$m`lmC zG1xWtB@Zi?+N(!6ZaoNq_5wv*ywpb(WRhvn~l?;o7wHNoBO3_ zy0b2vA6?$lX?5>m9LQlm%soRA=E-&c&B7wqH*jg)UCXALL3RR@ly|{Tl@I!gOD1-S zBqU7db7)!Je_!KEQ|%i;xk;oT!N5NSYyEpthLNf=BC41js2Wm2QTQs(J(>TuSaaXB z4X-6XGIFkiH_593Ixr%^O<7PbK`pk>2@oTB8i}S3GKhMlmXt{`R=#t4X*q_0$(392 zayh_X)5J;i!nteA@%x_X3I1!2yQL+J%vN8qKSm}*cTMr4uHDhO{^?uR-WdgE)WV!A zC`QI$QTom(o=k7jUEKpH+P+-7?LU90emCGF3sB5_id?I|LiLH^4~-9L0c&U@gG65@E5)3(wb|q1!C2il0KrKivT2 zw|)QD#otw?>k`h{dz@n|O5&q_l5-`!T)!1GyeN3go2{H;-+yt;_?ofh^J zdW;y;RTR}q9S&J`7}6vwU{MUI&08I%*&9t_P{CitbVFZ*oP5;dn5VtO(Vaw#NbBl) z(13Sav;3s`jVN{CxY1j+QqOh!ZdN99x#ax&Gii0L1<-Z+mu8(^W9BV?Q9nw^!nYwe z3Qx*qn20$x92k9#zaR;z5tL~1=|{8hhMB?i0W=7n9U2J_r-%alDKjkRMNnVTM@po| zeqoV_d|O|1I1Q9iy&EPi_ZY+n*;~hlovfsz5w)D(6>S9owUx%8e(5QmHz}?K-_G4V zv~mB!Rjhj6r+GU#xB}yB3#+pQ77jAB%f=%oI)o*f66v~g66?4wmrD(iUI`nK0{CBr`EZbg&-<1DF%V87; z(rJ_q^8^L%+s6mX=8Trjl=8HAMd4S@_avM@wzcchHf$%MEraEMNH&^Y#l~mx0RA;C z#-;nF`OY@Cm9CgORXpo0WDl|C=;W!ko%6`z5x8$j-XD$CoUX8Z78cRQw>}W7$2Seh zHj-Ly_lm0hgvmSe=O`%w*M6^YMiDIfd&z|6y)OvIg<$`bk-{01PA$ykfsjUIti{H7 z7bNc#w*TC$eh;g<=U(?qnwYXQO~mEv?p}3VB!UlJQq~QcnzhRMQ&Aa|r&9qv^uK6C^{=Mhcf1>XU~) zfeH@aS9&t^|F{4yE~RJ!Io5qE-fub*Izuy@3;~Nf+ixg=bDRrW~0OBPNz%XGfO{l~F za)DpL@}O|W8aZ>Nx=5Q$-FR3U<|XT!1HSD0S8Z6{82fm>%9__Q^q7S3Imy4-o2BnR zYT!P7amMaeg^BBnq8%dKGa?~G9t`Gy3=)Bot|l>xs5v)0%7dypnv1z8o-R-G%y|AsO5k%PgxjKV|hJ@n3uU zgKqv+(gNQQq+%0r;EqfBLQKeK$?o`}rPl`jZ!NOG{TuZ{d-vO9rV$ zm#6lF?FtYS>Om05usi{<4A$q=N{j5_K8P_2(7;7#<@=S^V;34HtcFs=3iBNfZ=d+z zB-tJ3lIXn@cyl>(kRf`O0m##CQ#0M6pT%&b$bv#*iEcOh#8rseE*-v|y!nKD?uXg$ zYS!ws>E1}eez{lL9RLGg5iQagL5+FYfk9S2k@d-Kz&&In9>vH#dC_?q602NGMDq9$W!6c zKHLLv`HQ|1%Ze>#C%dehiaXQKnTFTA!7EFOYXsM@{ZO~{ z^fj&Y~@-^nb7&+RPiZZV>=Ltt*h>qx6!Vxwfwp`ezkyU(A6riPW`G zZf#b(+cJLm2#1MZ@JvLVBT8DjA?Q@Ft-~8et+P7`2+$^Az!U=B*(RVAd6>gZE>80L z=})dTg0*z$bUCGzcfm^sHSH|lfve(ugD*8OiA!%R!ddN1FN)bOylji}c;-r2SO^;6 zlaZ7T?l*z8qwzY5n}m)`C5jlQ?TSntAj>Az47!O{Q&Rb)d_M@pNaDd+rjOSQK z(LDJ!0(hL~Fx_h9Wqih=ANwWB=p&x2XKcsQ6#!Y*C$ynzgUD@u75qo{r{8xNH4Rj} zSmw&~Q43t5io~A`I#})6PL=8`?*Bce`0k!Yn&Ex5RD+y zbvU!?87T(R8@eoLn%AgWasy(^H~SQQ4}gJsSt@fA4iBioR5Lmk#Tw0JJA9l9C|a+~ z8cCHnSZs(KNAAj6?5&%=G?@_m zkHY>(N84Rj7_nSKA-F^o{%lFkEjmDrpe4`U2tnPl>q3XQ4QN|U_+@LkDRcrZTW4_` zZE;sr-D#46;BnnCv%^+8jzyskX4KP*{`*kiI}V=os#&|Uv~%-DKC zsD6h8=IvSHe>8FRocUTOX^}DQ#D)PD&}s&$D)O%a%0MJsbB{95k%C)dfR#mXC+FS3up(w?6{p z1Ip1o?ejG=SRU5?kq_uf!m>C0n3N1=7`FBU1Rw6u1UVB7S4->FJoN; zf=>0Si#b=o(88^HY%JsdztC?q)NgPujXqHzP3kW%y3S=GZ&y}Pw9`0UtWdjHXtwQh z(CW}5d-zbkX^)M7(ojP2l+lh2@8}{zp2H`zbqV$#KiX0`@@>?Vai%4siiEFH@{2!$ zJHp>uecFCS05%`6Q-hQ3DqPTv%jm2iU8@$OSC8{;E?kEAyJi`!T#gSZH}`#j=UY@X zoL*l(j`mb4Ly;cYcwq}(gAHb@*Qzp+wYrfKZvx!jfbEC__;(_)(T8k!`;LJr+*_^ zwJ8(*RG>PZQIEPK)}dfew>qTck2$fzUEDm6`e%2?8RsHce;gFQO0`iLCO$H><#)Q3 zq!8c@605#q2{b<7^=*iKo1^zQGWo!=ND2X{_&ldxTTf(lx!CyB@_=VaR=>tuVK9NG z=Df%tKcW@;1^@;tv%5Pi1vcEl5_S>(Ry(4Xnt=NGQ+k|Z}kX(tqV*5DY^ zglJ9t=UIU~HL13b5ho9dN8W7msV%D`i$LV12o;SWqmWR9(^T>u*{X)$@M36DPo>6STY+@++NNdUPyQgrTgE$_p~V8=XCy+a z?X2)^flgtoP&2t_w`l(Uega|V*q`^j86Q&JDARLq8&>LWy<_}p%rVvvzu?!f6N{J4 zNOR~U!A;Of4ZJj$KVGvjCxkERzAa4+F25e;tV>Kmm>>Fb(e!_cQeH5Va-G~KiWrP9 z9G}^WXUam8O5s-jFZSL#D6Z~l7X>m210-ky!3PiSZUYIy-5r9vyABe9yL*BYAi>>( z69{gB5Ih74?%d7$JKr1N-0xJ~KhFK@tD>l>U3+G))qAb(r=RZC{cY6>R3We3;;fA# zTx(KW$7VJn*3S{yZ-e49!FbX|$M8>dirV;bXMC|Ln@Q579|ov=^q2p;Sk}ui@6t$? zbXxUaLRK90E<3t=hd7z;{)S3RY+;fm0VDX;7SGlcUc`=96g7o+AmT2$A8j*^kBee~ z?MBDw!myq#EK|o=2oVdj5G4H*+!Q@FXpzk>JAGp#J@lE5;aDb#o|k*hr;KK`3nnNf z5-z95NIU~t+uBYtdYpKvCAIy>`tnOg-r!fZU9P*%cFaa@X&Kl*nI8Sgj0D1my&K|eQ~3o)%V_<}SdY9}=M4e6W%Hlb z4mdqiNg{^J9;-z6*-XtG%hM2rN>}l=%2Aad=2xGDg3^!2s24UA-L-Lq=RZ}| z-7VE>e&4l}Q}a5ugA>taQpEtg`$_Gjzfo-M18=M3q|zbgXo(3izcC`G%|(X*?o8OM z({MsEbrG{Gw)5t&-y+3+G;)070~xPev<9=sY)+ZsAvkxCi8U~w?ja0^6C>RkUl=P$r} zU*Kv!Lp&RaCaZaL?SZmvfH?WElHS4SIk(R6X>@cwpGM8ONx&vdA4_x0UV49|*JguEA z#^~yPp!L$h+8h;Q=vUTZ`FwHKbd%%8`;ocJ+!l#7rS`?fY1R_?i(X{$P+w%8k;9x(%#xkvR6A5-}btO7u|=8Pc;Gz3}{wpdBJ28Wr~!R z{Ty4Bl*^jzFYq1=F1C+l+CASrufxl_8e5_#A0#x()#;#AkU|oC&V;Opk~ERrwn2$n z`Fh-ZEc&$*4N|jQqMW%~e-Ja)fD_6-Gx*60QQ>py$CU!B?c1+RgP3FmL z1TS zscje89#7NL&~N^cvMV!-7>^r;rCXfWL7lmisF`$+E&)Zg%iZURW z)Tc=%U@!4?bFFI-zqK653`^2;#r4Amuh46q5PfgS=C_!=GUMkK24QsZ1Laq7Z)L-(N+-+8b;g_>z{~BU2fF$ z?D2j3DU79tRo6iP~PEu z8}Z3_sn+If3y18QDsb%bF=buzjS`i){6cNz!2fD8G3_Uwpwv7oG&#~+P(RFilfzspfvWcC+n39m$GAd&oA=W@GeKCxBujE)+O2t2z+FZq5?6@u@zW7&U z!bI(qi^oyDHm}T38S0Ru-S5cS$eSRmLkIuomXueB#7};EAF)jDh@QYLZR+TS+xVz{ z&ZyWv_jsbd1gvhqXlT-i%Bv~|MaB>E-5+beh=YCNP>!Zv%L!$i zlv{RLzfyhVxwx;qv;OnkVV=18D#xH5x(`beJD&5T8p{#A2quq&G<_#C?-z6J$@n5#iY~KVPRJz5VF+Gdjgg1jlw;Z!s)D1Q( zaz~eH`Y``Vt8PAvQFJXPuFOnUBCgcIuSv~l0ba3BW0&5l{JGOxCcy3KY#Xp#KYk6V z%riUk0!-$a|LA^yq2T++Nn2Q6t&O}~r^)4NHAm;sEsa|{G!txF=Q2jsK}ZQpQrl%h zZ3+()Sc!m$MhIeoR16U9gc~@UDAA!t=CLrmCznqoRpqIjoXs@X$x9V|FNRUW-zxLhg4to;PjZ|p$ekI zusUmA-&K=`(FtOvnyg(W=smigPq1GA5qTC+z4MKzEh*H2i;Cue3=X6fVg~ zq_YkIh@31rOi*YN9Ym16Im@B4|3CnK~9`8s5{g3fWCM}H6% zD%FtEzovFvQ>h)E|4|92uxY+1KO7nyIr)ao;?c#HeA!Rz{(0nsD4Jx&BX+~9_sV-( z`9~~24moqj9-#FmNaN?|?%+_AXt?hFsw(zVuHT%nA@}ldinWqB@$-rH2<`oZaUJ`V znrpL8_enSO-%7CJesCs1l9+=8OA>qG++97SqH0xdl7ZS?0;i_SlV>0mK%++)w44eX z4_?14U+baH^x4a%J8`S#8_i8c1;7$=^6CDYCJFX{tnkgr-VUQaph(Al4iNc?Rw)v7 ze{g=RK-=#U<1EWpvZU4IE&`;bmQ6%*myWj4dWen;vDcRbA5KU%gw(isMnLXqfupj5vm2+rAmfQY#A;xIyjvq z3ra`l4Qg(B?K`ah5JbSL%Nx|7wvuO|2jxn{Yjkrv{EB=0ds1@cyJCAsWM5Idq%@oL z?bDCIa@7LMVJ#zc>F#)*?!;_3VE3k}k1prpWX7vLdK@!WxD)kz+M(yhQ=ohxxMaUP zVC04>23f8#VAw!wf`s z+G+Z-lFq4{s1nJa&CWkz%k8j|z+%+j9~Zo|+!x<(zj|PHy3=ByP~}cv;?{SAs~PPw zwdy=YMsj5t6B)E)fOCEtu|EXv4J8n$c8n4>I}NlP3S}!)RVK2M(@tPir;Dt1l^V&F zWc==N7z-GChN_~t1d<2med6ri-Gl5_^AfT}ay3E*-H;@({^~*DNS2C-*=%|C?@Nyw zz7tz@>b!tV<0lqkOZCd*&vS+jKiY3je2lZ!<|)8kw&uzck-f75#D0Oec(n));G}eH z&kleZs}#jVH3l(_?uSKM^{(>3IWg15H&ua))4n-Azr zKyBiOQi`7-cP>K_kc0r$AuMN1bniO+OW=Ad+d~wfoG9@9fB&M;fgk#x2i!>H{~#g+ z4KT7K7-7Kw@9PtTkR$DCvyi8<%g{U<79J)nd^P2^l#`we{=0O^sS#X*IvdCdk+?9x z`!CiU{k;E5{y(n(Jp_cHf%P<`Rh{b2T7$qkDF7Q|cgpH=?>dMQxDJD{^4`1tKllG5 z5ZM2H`9zVz_Cw{J4JOiKh*;73>u5ROJdK1cWkS!CdY6~-+;R*y2L5E?IzVpM8HaI^ zqp!*{ppJ%)=CC}Tk%5096WnF>20h>_Dm76}@I8p}&IAG83RU!p9AAw$U98D@Cnn@W z?5zU%V= z=#qED7(~i*LmU|d(2B67sC27p6}_kIU(a~@K#`54DQGiVG-HAS#d8^tx=bdd?iO^9 zA%~GufvUV9vDm&5X-$+)&C^saIZ~AA{l?!At?338+<>-e(xC-Lw;pO~LwW$(Vv=eQB-VWV~BeAWofF zFh($3!1?U7&H%o*a4+T4VqBP(T|54Ae9^R%&WoV|RF_^t>h>Jj_}@HDR7&+-UUTG; zNBz+Zfu2(@Y6!fm3J6r~uGZaaklN}0>J>n$9Onh^WXOU=`YIXirc^4wr9YIU!jZH3lF!As;)#2 z9regl$U)zoD4Tg^X@9OqQMD0!D>O@Sy{kRb&?POjQDN-zYbm25LaYs=fxJIz>!&<| za;gHZ(VzK!`;~f8iM8bf@FT)}q8Q0ZK8=RG*Chn=Uq3A_yi=c%(P=CNYU2~a z3ZbiUJOhcvWK!cd4+A;h+C8{ z;_8~1~=^+8cV4}tGPg0&Vf>`pshJ+ z7ZoIaTcf>syvbN)Byw~Ch?G7Z+T7HH+e$glHvd|Iz*VIgQBzgK{x_loVpFFXS%HGU z6mD6ZD9>aC^K7u$ORl1`m3gu2VU?z)bwR6{$wDb(tD>5fb&3+gcD4L4|C;_*-F6X? z_(_XZIlLlGqiVx`?K>Jt%pMezhR*ihn_;?;lF8S3`SNYu3L*RIBkS+k>yt~#ji;5U zyf2f7o+zYzh-Z8{l9Exyx%8$HBLF+BP5pXDgxhPQo~YZu_qpDqpg-Kr1bMx0^&VAJ zSD81Fn))$KfM?sP93P%HA9hQ7VN$~@}kde4};P{^i; zv(j2vJTqikaRBdgr_%!j3F~IbE>Mku9!b1_Ip?^ICTH@Lrj@Mu*bcG)YTl+Tk7D?+{@ywwGN^rIq})!>^?0o<^@}_gR(!HUuFYvx~oN4E5Ua&fA3| zkm?hyAUu0Dz!X}c)37R2Oip3soCFMB3uaK3RrQr zu1k#hWh$9*y{SW;#f6#|@fp;2_4rQ=z=!`c)y-ovARsDw3*FuzW!9VXWnH1!_Z%s| zG$<5BXhZR#;~&4q4Fg@zYT4hoEDvuD02V-nKCIByExixct;A|pJc%WndARlR?(es~ zhGb15A#)_rG2YS7QP3Y)U{h(iA4>*E_n#aNBo*peFefD5k+c{@<)+^V&?o55k_4Nbre8J^Ld9G2Xbq+MiS_lLGJWxOvh*QYpHevxq7)F%@(PO&GtRX2B5=yCqakq zh4~+KTXe`;07uSo=jwgf#Q_#Y&m0M@YH8F_WKHa(4&jf>g-WwnsT4N(v*r;h1y<=a zF8LtwXwsrNm*pP)(_MeGoaqnJMin8lcb5k_dOhg91PES3HL{!RWzgejMJn08+CNz2 z%0)``IU=Fh@tJu;@05N4-Nz+??%+mSGwcd^QtI45HCj)OJw;rBHv#0b8GH(A1bpM! z{!i&Oq>!=cp05z_-%(V)AmLDGtA*d=ZTSzcdq<2USNh9di@$x08&JS0Hal0$a&AvGR`3YmOIjlZbuQv>q zI@LFSDzpL&Q^$e3@-@($klY9;&tE5rQ>d9=4YdA-3Y?x8oEjgPBB7u-SbqAbUcqxV z8hdZy9DqTA=xo<(nYoS|EHQ#US1;&of3(8m9(3XBTz_8hrkyS~iuF9*6Q6b7$`L)@ zRw&itE|klD&-vKp-h5*iU|CE-_IjG^iX{h}(WSO8!H00Di*tWHd-0)Pfp}xOn%Cd0 zEmjUv$d{qd?N5j$71<8%)ElT*9I=_l;C8-pC%>K|SQbmvdd=2DPbg^;A*e4Nui64{ zClBuF^UHwTzkV3(6`3#EPglmuhT1VW_0fnj#}YSNK|3T+CFKjdZ%nscZI~YE54Zdr z3%j5Tcd18=k6rkOu*5?Fg_Sct|M3&MT^bOrEEs7+jvKn~nDjpTpx5pR)S1Dv`EEyiv6>aFv#Vj0SX0CGk z!~+~C3)fFQjX9n*&n_p{5gZUeX*&5ez1-`Zqc?#*RjE`#xkks;wf3eN1fa!Tb;^*r2*FVuFFedKqez4zZ63KN9#a(`> zTy6HH0oKh367pJ{>_ao<4jq4{O&Qt0!2zC5c%m1i<_2N5d;Esr#tnMsYA)2H~-z- zSiC|s|7(xJX33bgx(i1ZH%v%HQ1L&pk9=NBk9l*bIaZfNbiTyKn-&aKfp{1 z!Knuc3xkoruj&up-j>i-U6KM|mFwsw?ZRO}hl{JqC?-AV$S>}fSaNeH-Srr^P#O7u95 zl0Oc6%e|o1R=V30M2Lr*NBpB>>cTxjQRDHY*UmE+pDNIR)J_-z?0JbqdMe;pMm*3- zqFdbPHWwHL-No>Q3pf^T!2brRIY@PR6_MUzE$B4cjqV%8plyl;UjL%-5})7V9)O5? z4nmkAU|{xTx=Thw0LuVOuW~lA>Yh+;;FjTo_LsM2eKYa@xgGQWwq(Tgc~NUStY)jl z=NsK9fF}0!mTOg$C22Y+rLWUKOfL}K<#{e5AB_P zjhB#JA~w>nn~%u}4=Drcp@LjCK}z8K0!6*n7Iv`lT@wI~>m}{9Ugy2-4_kV&Uj`Ze zu32ilGUy76CeD*eP_I}M1D1Q!mB;aRJV%M9cruHT@|mjP>D~&9*`8tD^%Y{He(h~N zbpsN4KnOZmhH@`e@Ocd1rSZ5abcJU^0CYH#AA(I!BPgAz@3&#K*dCbc-Be%hyoEbaoKyjP?!y6aun5n6x&PGJ`M z@H#vOKoEV2y5TX8aam3*gMg-Sk{UJEWMrZdV~dnh&lz2CXvo5B>sye*g{m34%~IQVO@jTRQFXS9upq>?2&nY;A!kIEI&Jhw~FJl#Akk zG9wB+E*qpyn`0A{4w;@8pMesbl>vc)ZXMiPt#j62)20<_biDFM@2e&-Jc1AjXz=>f zgj%~kYL!*^YBF$f62(cE)CNM5e|$o6M3+|~O$wB*YyRAD@HboCOBWjon~ zXXE=?rcawIw>5Kz)}{)5e6qGXF6)tI-BJWELC3ednpg~Sf&>brd?6Y^z+yf&IZ`QZ z(Cc7As9q)@*$i5(pet&T`OByelA?D3@|D}5)z_+NG?~)lmxvkcL&j`VATTKXs>}uHe zG^guLw0|Ch^$atJfG; z=?UF&4q!Rr5WvS(sJG;%R#?sugX{XpOL4hM7;UgtCb}0nC=}t?YxK&0ZsfD$>J)iL zExZgQD-Z&PKBHAmpi?ggalOXAy{;h5;50rrg#<=TJP~k+1w42q2pZ@}4f>*L@#u9u z5R5>4g8ne8b^Qh1!@sYH92>q7jYs{_m)u7^8Z{>plPQSDScy=mg&!u)6NlSw1DFy4 z;Fs#LU3$v84R_mZC-?cHD{oHDYHSV8{N)9pVpw4OPvf7xLwRuG00vJ1-99JwfbRid z0XNtYEp9Ux=)@rNuo;C!0UYx#NquNrvH=Q>Uwc*XFJrbHA&GEdZQb^(p45}NjDPz`^BO~+2 zpucy44SqbhqU8@(dBzRkEc^>N0kj#mikJfV@B}%j{WIi`3}l^Mh$vFD+WJzlRJWxR zlx)lGeo*kX+HIe*seHH2VGYDsW!vDq9RpM^>l>$4HQdjWp4mD1vt)m=+ro1dK{&h8 z6^=h6_}|0b?7vUHu^~(VfCnR^pv2xp%3;P|)5Ld7degpaCMuh~`%!K*w0+p0#$7Q# zl*If2@}yR&P(i%h5JT+0MYJR7p?`ga|Dbg#uhS!tl$qs2Tu$f8O5otqD*oZ_OqIpn zkl;CmYN=KXgSNYk?+uewG*(C<8u5-A-3|dS7-elpviah)seK4A3Clf;9WmFX4V9;9 z;*kG#Zln1?deQ${ezp7vquyyWgc;tH3d?|xNJi)}Pfe}TB9e~s>$9LtMMv^Grofk6 z7JO+hH5{`gA>;vB!&XESx0@Zqfi9l;0jqrN;aem$CU}HE2qWh99635B7TG8E+v`XS zu06sjkJHo*0s`Q2I*={Fi$Qdo?E+E27h{8;`6lE46O29!#z>(^IDfdRJJ*36@cY?qd#4Hh<_iH;D(Du;?5ZHoH(yH~u@2OQx-y5Q} za2!vNN;X3Z?(x7sX;=U2CWsu;4=?ncK<7jU8r+vBv8$Ja}UykOSZ%=-4a2RXE=> zQ^7(vFdg#&c%S^g-qU}yG}sE5o^XSg`n|Y1{0;lc0pa_f+yDQT4D4z3k}vOEwN>i! zV5%w$p#HLqcx`|9UT_^EZhYIP5Ko}nHv9r0j9&iZIocc83V2(L9h0+k))=*-9L+|N z0}?Mz_xqDRFZ89m%)8AVhDEZ7swQFVG?qNf@Gc4u^M_O#oIAJGi2}e#IGVfr7L#-n z)#ZTID%z1dOTS6J1~{+fAmTh%#kw*j>Qexh#jqGjl<8W!9XP z4#O)(l;z_uKI=<1%~w1s>Ybv=Ue9{K+|J=>Y(l&K96hE0BEbh8!znx#AZr*&FUC{{^*bEjm_1)zT)B6J*7X};^aPB z@S(AZ4y3sZBJvcQsWc-~uQ1xjzWzO3!D9FGm}O_}R7bEPmeoY2P^GD!fZOwx$M;&h zm)>#+qc)-5v6T{vW2N7hZWv)N)Re-V=2S?30(~rSf>&&dr^;w6rAk7R1DZPZ#VA?& zG_88nCnYbC0L<6bR;Kpnr_LZ6h~xwpiyJHAU$Wz$-7hAEAXJFt7d3o3EyH5+m4Lo8 z?uESYy!SahF8>++AaG=rb>!e%Ub)#4rP;Ug+^2F&RtzsjE3l|!dh#>9X+%PvMk7C? z>67I5=*i&sh_j88-In*pWi^c2i;PPIX4d~_>ALshbcLh)x0M=)H5pvK^(X38_VIjY z>mMZ0H6X-37e3K5PV;kh3U&5I)N)x+avva2aAW@KetA~?8b7F$6})^knd^P|sQ#m@ z;J6UvRa>~c-*;7AFN&3Z)hJ8~$sRb09H4`03<^PyOUZKDoahCZvMOrau94PUnRJcjlM9E9u?=;r382w81@8G)jXWiO61zvW zR)e!NDs74EV!Mdp^hoZWVG!z`@5np>zq=A1r`h{aUUxQOT7Uoby_ZRj8za5%To%Sp zbHy@*-!^kAJ$gd)b6hH%SWw6P@K<1#&g53$TGM%1%b&LsP;G^k*Zi*|E~JW7LeWFA z%rxrkRXY{);oulf#9s+1URH|KrK|2)X_n*m$w3M;&m~TEw})7L4Y=T^!0FXrXp4z$VOU z@-=Feer|H0*Jn~2NFtWSWikBpwZUvu)F=#Z0i?eMg#FCzVVR(%w2^$-vV7$30JP@| zAR)9^a<00mxM^zs2I9Qtt{g;_AaRV}sH=8K6cG`3*gS;5n_y2_(@_!NEh=BD7Hf#0 zuw)h>q2?7P?jo-cM*~<@TqYNH<9mMOsz$E4vRkf=pj)o2joU8le4H!W0}7DcMpu~r(4>^~f!OD`-O3r=@p%tZ z2rG^v*tNrYVO`{aH?LyDuhY%rRdqO1EOnTJdmsIs_2o&woD@Y?V3r){E6;5K z-rxxaV6wsenRT}T{mpeI;5yRdv^xU-Ki&`X%^+lesWaV1$1pg^CzGLtz1jA_XbFTC zpxxp6wHTEv6rl!4LXJW+4aK=;_!9CgQLE1W6#PZ;w)pI%e{2f}z6bN^`W)s0s6y!J zb?w*GjX(ilTmmyEm&fz5i)8b;=*#{XvVZ3U^~C&S5eNZoeXkHTpD3jV=(32RkIBwp zEU-Jtda6xx!VQU5m|6@UNyz(pTlE~Mt67q|6&op-fK9I{0g$prm-S989!Hk^CY~!a z@wxgPuQ9Q)DSfUlYc80KLIQ|U5`|rGVoHbjsjiQ|T`vRiZWjFu*ShoVhFr(P7`d2!Gv0_#ucn!b37m49< zqEQY~Q7AVQ*QSc=FC-wDlU4us6bg)7sTq#Kc^-&^*~|@p4)cgRPmWy*^s6<#~^tc!_x0ew<7n2KdZtK}WPIy3;!gza7_fj*bqWAg!H~*f9VZb_LoF>~Uh>WCdtUet;_U?= zwBC?s{kd|B?HV15YF2=YP9yQHRyvgq|-iUg~p62Meoh|jVbuBX=j9xqaz zbegTT^Uslvov0#EuP_cTeaODEOilpH!tsM>K_46p30{K- zdTvPIOz*wVzvr7YCthS12!D}CSzYkCrqHamoG`X|WJALKqjWa(dv2&gZu8Mh@m{Mx znnZU5VUw{LB|$a75|0E~Y1EXv_eT)&=0ITx(HCi`L`r7(F3|X@H(x?D;8?tw7Bu&| ziC5){R7#2-LR?!7(GKT6dj+|8#wc<}QQqQR19;$Bu}y8V`LlJDCm1ts^g4)McBM}_ z4z5xPiNE*;)l2vmP+F*zCFDvbzSxqK4d1>x-$?}OKtNL)r_}`}s!PU-b#=Wj?20%f z&$rKm-9MtWw_Q9&#Urb&+xJcYIGhcy3n&!khEGrp1VF|#3LYR{ee+(W(mp#dR%J2l zDd;9~;~zr}0OH6MZcS1tT?V6h;Q-OjUlQn-smLv*cK=+=91`d<38M4_FRDy59PpI- zOt+A#lOT&g3?SNaniLcYBw+N-aXSF@j+~DV)esJCIK8W>0lvsm#(UZ8ZLas1uqXPL}(bELupQ zCQ2|ntzz}ZQa#`p(BVAE;==Z=jLPJGGldQh1s;cMaLX+TTa!tK)4|;D;PgF1#m0C0` ztl8^aJe|kMGT9qPn@*8Zwwm|zpr>8JXJRGn=Kc`I+v0 zt5qCF(5Dp1KH%OiO~WgP2MNvJ?KeyI^h^yN8fuv&ECQ_cG`+v}%JBTU$4-@*%M;>7 zhRFV2)EfBLf6+}A7^{_IYU%_IzM+FT3hIq1#?s%EcBpeYZ7xv7ZgNNDWK@k#|MQVT8! zma_vktIseI5PZ4aXc3^ZCxyTOgSz_7eOo5+)1H3+P@4lMS+(y%B~lQI{)GlbK28-r zfP=*IO;xT}SKm-CYDquqUj`in^Sy$aSAHIrd>W2CYELHj`<0wE6q7`dn|k`Hz?^hS z82^?`n2=ig_lIkd0?iQ4Q6calS)j&3RV_Co1Pzhczqj4M86ax>nOBR+`l0CklS60- zNc4W6#Dz3wwq0%Yh;LhEcv4?(!{xWC@OVT)_GutYcWy1w3ZsLcA}CusdjxA->gl(z zRMvAKp53k$0|ULs5L>4&|A0Hdb_>V+<6m!wOcum7sle||*`;i(X;sfytFUy%YhCJM?1T>n%gdJmukedMk?8HTICNKpq}ewS z{pbV;4@v!Qau5lG36O3*8Ty&hw~k&!?h_Hr6GsS8%Qs^oY^;frNVA@nh#XJ{ z3W#vB#KgoXEVtRg-Tv)15;&VkuUxXN^B<2x$b!WorKANw!iz$cxiU=j9qf)^F$1B- z#(9>r)zXHCBd?f)ou5KrwIL927LU^}F(4d_Y%6A&a_1Wn5zyDKyS^#wZIDU>zYHdV zfFU7Sq?ZH3u7BkKCWkLoL0+~B=XtTMfc^{x>kj4Z3-XhIlxAcZz-pbhG`Im~Q1cmb zligC+wv!Io{_59wfL)Ql;xZJ|DSky?W7LoBwl%J5xc+IjZd6-ISn3X;3#5fa?UJrX z%m#^{m9LV~BYrKQLyQv66iJhT44`z-{eYEp8%X2oh<)p+{e=) zyh7cw=A4Axw?$5pnXc~}4<}kyKo#m8R?)vAA_(F@WM$*A% zS&NVi+X_I~dAObCCN7sQc9d|M9;|!h`dq`atc6dPPr3#(5V|I(Ieg{b+iuwDD>j~< zn<&vV8Y_sd4yz`%;=8|X-=V=sKQp)20K`&XJnhzJw|!&DRREAjpNGMzH(S;nY)%e= zvyTmbjfq+jd2bze;oHPT3TTifYIz1fgANJoheRTf zV&noICGwCWB4B-u$6@+HyTLj3bbqz?Q+CaCV`b%c7Mm+R{O<0}vL?!oowHCjCZo-X zVk)3W&g+J5&v3l)+|p@Og8q}4Dl000L~`C_x_A6h&K1OWEVeiuWid3=vfDVoDhyim zo5$&iBB_~j1zcvsivT2GbC4EN7w)wtAsQZd9p5yDG93IhUT*vC{HR-r+uwjkAfoq6GWS+ zw?GaHxVl`xbvKK0+Qokk1#8-Bo@y^>NZ?#5h0}(?=w-vO6;MEOaK8CF20K7L*^XXB zFB_KG_{{0PwfldY&+vSvcT763OFiQJX)kq}+iJ33uKo2%_v0H75;?$N6^hO9xY*An zY?laQ&t%a3n|t(3ii=B;QsJ8~!>mJ6IE_A_osokLS;@f^_FU`l?)p~C&hXz3bSoY+ zva%|o67s}p+O6JEfxwwGnD3fI@Jo~KnJ+!jEmoT?5}nJ|{U2 z!=nK3P6F%K0s|M5e!irQ3ExRXx0f~!9DJ^>b6hTNbDiR`TgHg|9*#9D`0VE7qj~%c zyL=)*)1+g+n9k2707tK|xQsmV-i=i#waMey`P}3duDCJRS+-#E7l2ho7Kh7^Ew9T(_F zShx&Qt%j*pOVb2T3zp80wqgNalGuq~C_iyYqFjn8sP*VdT zY$1gNo~^d|8yGR)#t1hi_Xj8>m+Hljw!3wiX1a(~<*+_%yQde9J(UfQ$E zdq+Js#s}b&UvSz7(!24)7g9G+rIcWk^BfoYN5wNtLdi2&(N_|{kCO$w%--yaV?|X?cI6lRE3syX=kN8dND~&P3_)$ z`)xuoD4`fn^HbMc{g@VC2Yv12P3R^OloA$H&m;CMI({YMn^8g`fPp?;mJrHkQ74w2 zwbAWRjm;aSW#@M^_O_>XG*NT)sugY;YpI=GPJ8l+2g+1uMYA>bpa(ai|CIQ@1OoUn>Radr0Xr@5>luXzRk%P~_U zpSc`$TtfljmsLO4zbt zEixM#JQ0<`Fl-{8e%#8Y%a2cq$2=WLSBmA4(}3l!gz`)Y!&kD?$v%=56eT#Az?^~g zE{JS5>jVV)%@qH##NCUeE$?h^PMFe7e^gmc7A_!VC zQ&oYKu_4P(je^sdNPp>irvLq?I0T*aMZV_oMt){r5D>zk^rMtcd$H6d+v9?9@TXgH zrE*k;6`>er5tBFV;umFZ{DTIYX))sQ=T6~|j`>LWgyF?WP~8kQU(QY}vKJ5jd=QmD z<|BlYzU6CgvZldPlQlHa7{<6l|B&U8%;aGYgjG1kI&+ zPTv2Zx*i{dXdRMwSv%o1Ee?~V3JpiNrwb&Sbl4ySGQVo8S(>uuz4G7R8)ShX3B}e- zO(L4$h1}KUYHGPbw{tR^ouA|8{L6WdW5QFQGqTYt3ZqzwM%6N)-&S&cE+v0Wl+ap) zcbkr@7U!6cFZ7O2YS9Ad0-LVJ;}AfYU)E>`SZYS>zlq>TE>TJ^XMZ+WDHrn3@xDCU z_GdXioVNe=1*c*1ohe=dt@^XY0+8k-EE`U}7#oIi*0^I>+|EE){mn<{iwmmHLuv{J=lDz zoNBA`E!&geT%M!BL}IpU+9nncy(GfGzXPe7%Zt}f?7VB*Cu?B7$zx?XR(2xqp=9Z< z<%P+hPtL1gCGPVyhaAz!jOr!;KK5L=?Jr+M5E^Z#ahKaH2yB@CEQ2O2bmc>Ul{pRG_)kTZ~S_9mlyD2)D@ zr3d==TG0ZRj&PqS07}(!kd~W|)2KIlCIcm{g=R9p>i|(@>vPZ3mBgFWB7LK8J9**w zE6d2wmVZ|aRlA)K5Bde7Ea#p1%q{4Ys9+N z$`8k~ysZnZ_!TDoiCqq%CS@*}^T2t8Sw1_<>7w{k%?z6^74g#gGxO8!S(}xTn)#Tb z@gh8DoaC12qM7hh{3{96=R>wYVCy^E|6(RWIACIB=zPLlSGN0l$l33`EKml|S}$aV z$3%(aS$~a1^Q=DS-m{*rcPdt5#rlv^W!@)Fl}-*wvb;aQ_O-98*<9`Ca7NC4qh4B;-jfkaN$U_e))`1}E!MoJp)FuuSsh??Nqd1e5a&9#OGeW7!_Dpea zYiFyiP_|4{sBy~SkD%*ZL4w|D9|yavebgDZ!{8^AxumX>lS$6Kob?}ndfC0yIgVQP zWXcL{DzG+#-THiYb}LR*r~12`Aje?m;YX`QjV+hG*3rfH&h^I-C0#3clomL@cXgYL zE`9F%8WH6kQuoD-MTGm&1_y zpC|fC6~@x1`Z-YRA4R+&atR8~Vo z6$h>Ai6xh<&A;-MfikE?JwS4-^+G>DdS|4KX8T`U22(AE#?w~Sdk}f;@b7iuSCnv> zjaG+i*C(n**d(=d$fWc11Iu#x`f)KXYevN!r_~(!$?S0ukPbJ+NL!nlnTfpg49 zr~%+nt?LB`tr_$vi;gmv_K=!}e!9M7!gb^)t4^B@OJA;cqr@epn}OlU)CVW6rdbQm z#|}5}=lRkFBt19CO|eEMk&|@c*Z> zGmnO{?c=y%WX95rC1s1Dr0hh7k$ovflBdT~wi--^VuZ0|X~-x%9vU7ZhNzS!jARgn zvKA_1vhN9FY3#hWr*qz;&il_hf6TehoSExBzw5g1xv$^%^Zi|ycaxPuv{98cD0xOD zO2Si~5$Vr}TXCJqbvGtBHoVYOZDy;y-n_&ihEldBFW4Q)SiDt#S99p{t_0o&D1|f8 z5h_{8CC(W{`BqwD&KsXV=MJFwty;m6YALFTyV@F0xbdvqoAFt=@x}Z5rdp3zIGvh! zl)rl|35zPX0m)>ZN2inDz}h5(gYrB$Ui6}8*h+ukgkwoxABMV=dqJ{HoOMXGyCEop zthn)Z+q+zC-~bVD=s5cRSYGxRBMMr*yQt^T5MiNwAH<tD|e zU3}l{8mc_cC>_ODew@b=*1>S*|z zM||`ym0_yjB9l~=>@Lg7A=NsoXelDu^`j%Y@5uj{~@Mhp0SnK=g zk=qjJ@et6OfgEWCwzUH-! zHtiJgy~nO?gjA=89lR1WR(#=m2;!S+7x(If2qrvyeLDSWT|BG6An0W>LA^8}|8vKY z{)=kL%#9-4-xAR}YcW9|khT0OaPFcsUt_)#ISH&Q#b~7biBNWf#(f>0W+qAb8+1<; zlpW!pefgLKr9LQqli<))&XeRi`|%}mR5aDf`E$de1&FB6<$`_%#=iByfYLHn+BQy~ zD<>i?!JxB5-nNSsPiay2W8g3X*E)1vN#mMjL|(Up^UG2$hKbn&LMS7x5{!1kslm-Z zrBZCQbTwxeRFa5lCthu`ADqWw)6_6=<+x8a`I|rZt1p$Fo98(x|4pQ|i#gZ1q})~> zH5`2~t8%^)JB;l*lyDmQ7oX}Rn*Bxr4H_<{51KGUEET%H=y%GjIl@NCx?Lff%uUZ{?j(V zB*7UMnn38xDJCEplG5Ea7usdP6OOC4Wi)P&SWR7(B#WjO^6GRGaf@PHmg2)}&aay9 zuI!RoTl{LLW`f_u2miOe*?h~BKW6j1Y83@fOjb6|4t~D5Zf0LTuV-^XA_Nzb|BULo z(d|`Xv{C9Iq4)h`u7y zhd_Eg3LbBCZ0y{)_&-xHJZn?AiQv{1rjmeWz`NuAS}Uk(asL{7@}0WUargIz)<~dP}CkB9C^~Y*{d~2GDyd83mNvb;Qhj;UCtFwsIkq{%&{vJ7%o3O3}!kr zU3BBy8Q%_O199c{avBDmaV>YyJtS4SDOOcVLOA5+1KXOW1H7MnV;JuEepowRP+HoR zMZ}e2^B+7^H;x(z+?*52N-BjVlp1oO1HSj3_ff0v@r*EEAHJj5wGri{3Dw~lk^8*K|OdZf4S*X~7yz75VQuG`)hx#A8;osYaKeW*pF&iJR4tU)WBEt_vZ z4xPlu0*2!foq97PtfTY~6zY#u*dj_RC?CN>tQXTp{2aM-z77LRBrzF*MOeWM4c^0{ zWs2o+D`=(KoZf_YM^H6=1%tKLpo{|F6qx<+QA8t#bTzTCrVE8XUr)nRRwM|bC4%Bv zoR|0A@y9&?9w@ov8fD(vS-L2X?a=Vcs8l$Gz{jMzh-B>$5}t`+kD(0Z5;wBGuvM!n zp(F{=-hcKhoHsMdlXz*?n+?*LHKB^d=TegyA_Kr5+AEuhwoH#2gR1);KWpjrKO!Rf z2c=?P`OlKuJvZIqV4K;#4jscJPWOL7p?s)%;XAe9%!hb8@8rq1NB>&+=g*M@#5uBw z)uCLds%48bCtS37Ov8`8P_PC_8|cqNwoHvJ-W>U&XaD7;%q>(Wyzk=~r0g@%z-5D% zcCloSSqN$W%>DC-QFZtaTgWusOTN4+>bRuWDA@aKGn^2k7WuWLUh)+51o5vsr)TL^ zB@3RCKFAABqYnGSyuvk$L~`)uC&T&2zh%mZB+1aUZa_xbmWD?(W^||e3bDbMIz%+VHd88>ZI{IQ$su0u76)Dc~uVSaq zgiOKmOvOZMi~$0tc#6Hz6g&==)@W4V!n@Za58O>JV1PH&b05*KuV3~ZA=veB;{G?A^PxTmv*CJ}K^U54f09rd*p)KM$)D74->`EOL@BR3w*16C%mWWqv+6W0l) zOVwdl@D?TzDRg4F2ut5{Oz5kxPV}3&b#G`Z-pNojr1<+2R(6xUaEsv{ixecHyEEFWML)Y9BC~yVsV?1 zElX?~cQQ4mEuJ7sbEjEU$b=*WlQxk9X*6n5@uh~AV3F;yOQS)``z(eJ?d7)uiGVcv zV2&gc6)KI$fG-lGteSL_*kx*<)$s&L7IU51_xWUjLC=r%wt+Lo3{~1``iz9* z*_YlQ`?gId2LL#b#gjR)pcHO}2 z#~NY2{L&aaQ~!8!n{&av4%yfz z%V5rhB0tMtzM#*p3bh6|8o%NFEfy((YzX(r4}9k7e++I-(vfh0YA#hoH!vr|%pj@!S;8>)BRtNu$x zQq0-#_H9_zN(@AJ7fl1g>aLmhi9^NHqxb*$M?}F*oNtfZu3sv}1|lLAC#Y$oYT!Hi zHe~1;@&Qm{`)+${1JjwM`*&6ruzG@IN9P1xc+c+uvJ%aP(uV^@h8I(kt+Yvoa!Ng; z-Dhg=N_n0T2Y9#uM0)R41`?2a3LXNTMWgTM1+HA6 z*igyG^4W%g*Ka+@od(=3AP)DX-@1@w0*L6Pb6n4VtIw1JHUc)_{{gEGT(;rGajleR-^72rOz-uHZ=pZvFxWA_W4-()3d_5By3Kn>V{`*-b%zqz+ zEy;xa@7FMYe;ex9t+*QsN*GE;T;z*0^idjoCSeb5Ul0}^M?0msh$u;}2yY%~uDCKU zO&-k`k`0iPQ=Pq^eLfWfnQX9s>#IAY0@AXTz;-5(sI+=&;AC}c=jO)8SLGH31D2LR zriZ4@gp2jYQG}5d{@-teKha?EyxEnh%KeW6|LZKIg2_MlBLDKmP8MiYjjrR8i7_* ze+K-&dbWN~wVp8f&`05=IA_(GrPW}o9DcMwFSq;oOEXw0nal3?*q4*FHc*|_nj`7U zd_~Te!_ef|jjgL#Zjj|*;)dbFOOsW}+3Kbybc==mhqRR@$EnB;zl@|w6nGxhLA=>E zWm-Aq+mn^O?qFOUS(1w>q0+mkTFV8T3;z%B|5yax8F21u8lVh8`2bY>Tpl}Pm5}X$ zLYGT|FNMlRjUEsTG9jDg{Gm>b1O`Kd#Y&^9p);q`)x6{kF9klQlU!bhLuCl7_TE&s z#QsK?6wa!qdqQyICnAmgdTHKajOXV&E7>?k{E=j?ly{#KrE9*=Wm8LqD>hUbnJ!cs z={su6ga5I@&UA5p9t`!ozC2nTOg6;S!#W)={t_%w?g^PKadT?y3MtaIT&)*rOXZiT zFzCsqk%?A}rB^~a>27;*Rrb|xu#Fo{lcs(tVPU8=KDYSQ*LB#sdtn}sZL3X5gy6%^RrgEz zhT40(jZXN7<0lu{WacEEtIuA#ZqE*~DXeK)oTRTT>ZSY+N8>(?4$pzMkWu-vOPBr( zuNRrV2#S2uiEJfXay{q$yaa#r(U!|mzB}v=$_}7;thdmJT0N*}_gA{$p$?SWk7kp( zR|iF98a|_(IdyBEDKGaB3SQSM`krvIP#ii1oNXOV9|y62jMuu4H%OLAOA(lJxrWPa z2|@y2ZsYZl8^QUZw}|`FgMmt1l$-T!-znl zI6c2e)obUhz@Q*Zvg{9LQyP%v9wGNT_8P0T@KUW-X8kPw=d&*1fx}i0w?fM_-Y>Nl zUp4Bjv*^`;DRoT3tQX|An*9>XY&U^TEv3BLeE+S^>(%pv=kg~zM(NdJzcFWO+wK18 zKMv*^&Cb|l^KH6=%_d`(-{&)Zw&7r*6gB8TNmQ)Mm%C#*4u`XvgInzso>=gno4Etq ztgGf_@Qj@|*(2#(p^XlQjQlp}>=ajR9kHAy3dm}$T3_`Ae=L4r`YhvUa2iY6v_=F z=9~$QrF597Ku1dgzZm$YeY@hK4RL1u?ebn|P zPzm7&aPc&x1480V+r3|=8|6tw6B$+iC|~VOl;B6M^iAGOn5*sfgpg46&Uqm%AZ+49ta!j;T08 zp6)y!tk)?kJbA}bo~0tllSU}p%J({r=D~WQ1T2!z57)SLvrSH~+D8N3eWF5Qff(3D zN1q+J1M!$1%pyNj;Bp!d=Z9~2%k+W$^;ZHak77L@ZzmdS%#CVv!0vB1HgMT7DFk!V z1=N0TxTIc&u89ybedgOzNeXT;^(1lSV^3)eLP-&Nm-6 zdm`wrp+dEYZ%?{{V72p(L-+}NeV5qb^ed>UlPD}epnvISIug)N(fz}T7DTQei~fx2 zf23!M)bquI1!M8Q>!x21V3>_Q#-daZM&S{T9fPwoaBC3jjxeqD3 zmi6g!gS^RTYLrXu-S+tQfJ*m8605c=u@({ko!4};gxpsyV%DYod3@57`T7WJ^WHi~ zPNTtLrU!&ZbGJ|vHj@cZ=;ZiYu>!WHfVo1IgqQW1pr8vFO~pH*2l@tld#WbqE;3@v zfgH(S(OVLs_*J8af&cKz+6iGmAVvq=BH<3-%5m&i3i{t`Uax83<+Fw4ck(H+%=Dgj zwTyU-%(Is>>MT8~bM!TLZ_sxW3|eWmJb&d)Y2gqE(Py@}UgwTJ1(Pwa`keuHZ4~9` z-JQ7nQtc1qP!5r-UOF(=Dnr!X+StK*DlkwvCS|MH{UfOyek5EL(u&1vzi_3ZWqUK~ z?>9p=vW2_wi7h7;m*3uiZu))LpZt0<&a~CGtu}n&;b^UQ236xPg5wf{(1>NFBFJK_ z?=N=W(!bo`Cs#zjk6rsS^GAc{ngG*i`&9zxk}fO|om8Pntt6W&0Cm9k>n9G=@mJq^ zv@Y4zRKgj?NFgB>?Mi?AC4D$Tef)nqO+s)~=c0npFXF;rdYAG~n~(Wr%@>0z6Iq{i zAeUB`+#=^>pnN@tbs~#2u9G}a8l)#;o$-mFiKa<*jhJGtsVAe@2enFQ^E0B&`N#s` zCde(Mnys{XWt?G#Vg@*MJa^>()M~JC8*CCf$09%}BaUU?Hy%h0W~q3l$J8t?(`{oV zu-&@&(YaUlZ}Zlntl=R8?rN@w3!6-C6ZRn_^o`g056kbP_;$U@&ALEK9#`of+a+KU z*Aby>svn@`{2nBs)>?Y9K`)K(9^)GWmH*@9bqT6W*~3u#x|-tuJF@t1E8~MCDZJuG zJ&!(h#Q2X;L5BwBPj#!bljhK$f5aa@_29mk{nF$9TvhasW6n`PWb#0@@`I)5AAP6v z#Rj4b-xcZ&%Y2NWqo2V}%%u=E+qdxUdKZ4!| z3w!*uIuI#C^4|`Y(`3famgg3kG5w>vvBE!rc9T%KlYIS;nfQBZXEYEv{hu!hbV~g0 zL*+mEB#i7&`!^ViF8y8dkAYHzc?(R9`Oh=6Z~t7uI7o89@CVXr%WM8ib4103<7Tlo zruzRerO>ok@xa`m%QYs~{#$c?0{wW~nIHAfQI(}+Mg|5T-k$5nzcmLN=!cj;i2C0~ z4*WNEWZwV2_;1aj`rD8H^L)sfgC}RI|E)RVfBS(g_^bF|MowRbQkFZuyxAKVR~%%#v=>j&TX6JLASOdhS)W301g<;=#sdf{+!@-BENjbLr)Ofbyzk$nQtpn4_ z>mi%#<8hsb0^cWSr9i-^o17_{+sla%L{Y#Yfgt;Mz1#;;NrYU9UOLaBDWrZ90UU~K zUC;Y~$=~vHN3Tzppv7{1*p{0`^S@z%Wa1-sv?FaN-uqNzdtm>)+KL!LcAx`1u~#$J zt|h)rp#bb&LZ{Z(vlB8NTmR-I+;^YxvKAxQCG!S?B88{1dgu0JDYdZnCL1`@?(Y5L z66P9mu3r!-6rb+S8PrR){<=knTHqhU8Qc*!M++?I_JL@`od@s7MY4>OjkcoE(2~V5Th(XuAb5B&F2&t_ zp!WGHhP}PvcFijz`NI#{Jh_AlMD*+97&?&bb3nFIiH3uW*LbE+bjJ2T%#?3HsOWRD zew?24VqE#)RA}@`FZ!X&nc+v(GM%)G-I3c20>0)J>gEn%w{S;+UZ%3~`g2@**;sm! zY<}l6Z^74Q$w4KIDNiR(ZMYdeM^G^jgs}J#SZTXV1$Qty^E&_l#GM zT`sosoYp+Ji&;zdTmKq3j}FVbOO53iIjDgY8?X`e-^I352U7 z>@CJ%8jSRk*6%XqR}1h)oo#?`H>pQH-ygMw`?&w=PD&>2jGRd>Ou(igUZPRw$*8Lc zRtg6Ro~OR57O5!>5sYMnc)dKi@VeiX=T&D@V;n*f&`A`NKbWPXP$VNpzmtDAkoP(1 z{f8Kj(kYaYo3|gPY(?AbAhq-fnza@iuKXtq@B_pzE-RR!PU64Nd_GXC)pp?r*hFhZ9R@oXup`*}mS#FFI0f2G zA61LLB%M^^pVpzaO;j2UZ5x%l-@k8kzsHeJ=HChM5OE8*O@;S%@Obs{J1QlMqmsf% z+kZ^qw!$%@HJ>ehWhiN|+eK)2`4h)fcwv$O&qJ{4v@U9_4qmD?2f?G@W$sPnO!zz_ z?k%0R;)fbu8jqOn{F%}J&TyMB^IJZJIRM{Af5sHJa`{rcPK&E7!F%IjX#uzE- zqt;%MbKJsZ_LA)SSHK=#f1R8)58&~sTXjtld^!_rP*}9zF926;zRzARIpnT(I@L+4 zQ?2>V#YAB(?;i(2bHdu{4P`=a^>~>@cT{cmJSJ%wB~hx0ktSmIOS%}$0}<=g-n&iVW_Z`c*LJIuxiczB*bRi> zIA`C;{FVh|#5vc=wwp{Q;2LYWTz}$#QB?P60GeC5d49azUtXyC2Kf%&^7Nfb;xyR< z)Gz~|*Sjq=)*+M0pqZnKyrIg_%G6JusoCYCNA{=^bmO^?qkN}0T0L2x_~5Uh?U3~0 z6*^{%omO4?h`V+y7#)w1&6IU4xy@Q{4OZ6sh=wRZC=h}x!o4rOK?%Y$^^7~xB!7$w$^KR zI$47)#8GGQP_Wc%$5yZ9;ps9NkZ*7nIi})Qwm+_uBuw-tapohdP;OoxE$tqKzg=c+6}-IpWK4S7siGP15h6Gi>>i|zqU-hSz}tJz-$!7=Z}M9( zx%%u7)MOB0Qk%xC6LN#2-E1AD6GCuY_~2h|%0~WlEgXwr=M@=WcI?-{>S=ZPxZeKq zdgY!356WDJzIh1*P*_#k^dDU-y zznij2PQ){MJTJE_=+Qr>@PU;Rj&-&#oGi!u=|nD({cRheN}~lSD2-R5&AN#wG+!sz zD8W;==LHS%cE!)l=LYu_xB1q_W10};TZl-H3wJ6o{TkUyy{+AYrj)Nlp(r(W;ReBO zQ`u@G%z*g2jp8er?5etQ!$odT^tt1K$zYYRd`3*xJN-n40gv`9 z6}#X|Ax_gNOKif8nqw1(EE6wriDpeD9uyuao1cDHpys8R@kp}Sh-&u}xPF5u7?+#% z*Bg$D!ckwIh&4bnR$3EmK@Jt2hqrONJ)utXq@OZAp=Fk}HsSJp(oeTgsr|@h`Q}s5 zL~0isURW}hkk=qSy-alO2eV0I+hqyR2v{^edpzD`(S{Og z_UUU^kJX&#S-iUlC*vzHi|G|9RsodG5BYvi54O6#;?`AmKUdzHdtjSJ@wy(>`@g@% zEmf~r4U@RRJ^}QYsYDJ#ZN|i(TD70e4rTYw5}4H05Lg_KR}IO$hSLTx_}iw_S&L1! z=ss8T`mYD_%mb#hc2hs6uWk)z_r^6QPcB|M(spN1so`Qr!Ylxlk(VsEVG6ZF81(|8 zkV(@zRC@7lc-7;vL?m`<*`~04UlijFKh0ptMj%fU;I_my=cHRKRH`00TMxprAtCLi z@@a2azZoOtrvtQNVc;eu$eYozYJ<4s3IJ-UblRVFzKID?AE8ZkAY(%qOpOmteieEpyG8LPIIDOLj`wQDbie87{NQFS~ci z-=59XKfifA1yuEVj}t>78fI&@35*O8LtVHao?;Za1)gqwi0+zkl2LqQvMem{F8V{D|1_F2gn4Wv$Ln_d%6){1eVm4*JOzfNgxNp)gWSE}t-ZMTlU*455f3SR+XsXrx;H6gL9 zL`8^{vU@zX6hKD9`ck41ux=Z1pMm>MAse`HJRgs_zxUcHjjWSi_ z@$r7*F(3kHgEw3qJ3PuUJr~FJYjLb`kjOH4O#U>M!F6IoH+KVul9i`ZlnpD422dX~ zdBvUI8hTRgrfnDjJ1A=BUcUBObWo>8HJIZ*$gVuR+H5MYe9xP2f4VRyuY9&dGeV=< zR3_NjpU}p9?!gymmFWG&P8Dk!8+u7F9%3cnGHNs#|FYPMU^5c?lp9pJ*%Maj2VEMZ zkfQR`!Zv!>dSYdKt6=}RXs$pXU9lY>mwNdmS7D{mzY#_R5f&wSN`5LgbkyR{7oSkC z4cZoip0@pLF{A)|Si&DmwNb{X~R0K?RGx z1Eq`KnDl2fC%HjN6!Zi+;NIxd((CY-t2Em0D_5ir$Oyf(59;l9Z4xtqDcjJ*6Yndf zQD$+cxv3RtDk3@pkLQ{&HnZa|kz z(Vx{ii=9>VG|_uN-Q~L7pGsKoMeo2%1Qg+9IdGdIZ#$-6IGdDL(nW=Gz-=NnbFzQq z)jLh+4GDkfFVij2v~nS$;SW9^i@n-f--Q&TnIE973J~deb3-jEdePLMrhBAPELV*# z8#^8>OB}FYEa$j!CnWS`iUIPGI0q~$+GkP_T>|!9X59^x+M-%XYbBoAGG;T|gk-km z17q)?MwUA~@e{pzZK`W0&SCc~GtGUk9$3(K2 z6Cj7XXLf~zU+gL6h?|MhAyn=L`~FO*ni2rPoKe)rvwkZoSScYoQQJEcNxGI`7mZNB z&D|Q(o$3rg&6|R`rP;DgW>Qz!aCqvrVZ7MS&;Ig z)!WSSSinJA;bht)(%?}EG}JDh?k@*Cf|kq&l=HNH17W77QpmWEU+0ZO5C&_P{4Ty8 zr^zVQHM7%+R_F2jgyH+Ma<^O7p+OGMC%BiF!u7#m5a5?9raBr#JVFFJBU)2XnVh2&YMv~@EG{z+d@23d z!A#LNsDbT?IbC{D>ye|CqJ&(((I>zl7ZO$l!V?+w2+{9gRbzjxgsXk)$P`g`_=`yJ zvv2z(ToK-`E4Rh`Pe#>ZN{4ZSo-9WXs2?gf%E?&1L`dH%#KZ+?I0^diI zc?_~%75Mpb?6d}N<0lV=QYg7n8H2+ya<^}Gj~ z4W;a!IdljDPzbZ${UW`OZmwq(8wf}gF?JMYt(6(ZE^0c9FT3IUkEaSiJub-!WevE;->)aa8I>~>`Ou349HkURk%JZ8;@a0k7s(b z%Q>~}OWh@F-0W5#D3S6#qlIIp;<_CaDYs?0;FLFy#u2{3EBGJ#j=77BzNp~w?*J;ErciYP@kru5%e7|Obj!{7vQfuz;kE!uuYpL zn2^JdykwHVQnx4nC9Lm6=k;`c%47J0Q-3Iy!F(h@6cIIq5y4y`?LpP|E(KWTaQs|h zO^m$3XR+SiJP2gFqe-~TdH4?Sv#crz?v*gNRU&?D`(A!QiW{8)JG^i2{W^HJlGT4s zafZfhEbcHlt7|;F>}u~!t=0Zv#tb9cfi2y1u5I7$y(W!r239ktke+@s7=?iG+YB|k zO=US#;-kw8!*4d>@e{F3`nLksSE|vpkNqebVI}Dqb9bqXUyAppZgV-HLV031e}hcM z!gT8e(<=|Qk2OVFu&uG_104fq8p{n~$;A}ADd);`tClBTUm#XY+X1MAzOkHMKEAU& z?#gICVAVQrRDCZ`L>3v8b7QT%I}f3!sKOBOM>n2-9H8G2+BR7tIIizn{#IO1r8}P` zpPxhP?}U|=yf~x8UF7DZHwkZg;L;&2ShC^}s-`d18 z(V=QKyFBQ+`Umq?c{xb{{>Jgz=i8u~d~>6LXw?U9B4%EPgKB4_?QKCHp|M~2SJ%s- zB7m|_=SrLf@C)=6CiEFg<0-2?#J8HTZk)9gpLUzk1wX`bT zrYh4x>yQ>CAS*{*cK&F&ENp%4+dhItpbB>8a82e@w^S0eA#1uY1;H*U+NPXI3-H=u zfeqI?zw_qXjt@~h%02z?)EBkZHcaak&zMu4ZveDb7^ICJ>x~6=b zKfi6|kMoW|OwE~-d@Bm!q>270uTcaWX1@wL^Nifq+vk37HYr|Z_Dmu%&8xRmK9(om zH?9h?#`XeDl~#9VFNCc;Q{E{Q5RcT+9?rcxh;KPTtm9YIWA}ywR(f!6&qPuZE*%U$ zoc)2d_G48%l~D*~M+FhuHo0am<;(6!0eo->N$-uC!Y^VAlxjUTnmX*YOVJFSYMYZ{H(8FM2;#d58+=a8Pi9D|Rr_x)HV ze*2IlU>Cu9Wh7(rTp{!b5yP2LMMFu}iFPUBYdx(YbvNy3AF}1E+twy(MSN~0%>J&d zx%-8sK87mevFu*?WH^_6O0?w)A?Z8lo^bq>Osypz-YM(42$S}0Y}Bs}I9^|yWV_yo z@w~X6CAdEl!@A!g-mbqD3zF;~t4XrmKdqt#(jZkkCF+luNW*D-bCrT5bD-ksp9#df zf!BwGdsK#F$sW1beV}s9Vvi5c{ZUY^$2ijT=qzM`dkK*)yH;|>*-

_j0GS{WdlmUvIM|gOTN}pM`27aB0tWbopasSwlsOzG<(T)%ehz?gS~P zG^^EfDzA#(YELWMa~_^4kffm&(k!U+DNUO^k9sDl%tXchg6+l6S2X1 zFRQb0Zx}gk&_(5SCqudSg8JZc>oXm)!R}%pjn$~RK80nFu^lT(CWeG zO9&sUr0(00lt_xyku7_s)}i-ZMF*`vZSo;G0pDT7;Yf!)QN#N-N=2`Ozu)h(!W!YV6n~A=$z(?+YiX#@S_L4Nb;6dR(2JD9m0rokvqrh3{LrY|JQc+BkVUq~ zA6u&6o)>uI3t2shMl=6F;CAt@ziP#tnxt&ka(g4DhVkqu$8-LWuCtx5-J09x>A6M- zHszzGbpug!Td}|nv_}jOv=11lggWbg{_Nvj2fOGDQZeAqD}?Cq!$j#eQ<(?r!od)U zbU%?7SDH!YZFrg#D;BEc6QCs~1V`E1^PXX%Gc9`#yJK{ru)TeRVRH-(wX0s}mgy^U zCFwZGki0psn+Y=~Va}1%Qwn(Rmq5Af@z!XtQ5Tv3;&iYW+^%*Y#!uHN3AL#Cdhps>hzXv#O0hde>hRFs}fJohJ5&|ACY=XLYdOEuw{0>>e0 zKQhIO_|73o2VEegBIU><5^GIC*YDI%K~9tx<`8Hn=V?`>MKax3F61}9LdM?kuxjNY zIb`X5uu~^+8I`1h?)9m?cnPa5ZVjjhb2glx0;SgjYEcJ^>{Jb%f|CW|n%#}hH85{( z;QXj}nP5T*S!@%;e}?Cr=nZ0g!!Gl*Oou+|dW657(VhKysK7oB)uD&W+|%2Hkb$DC z1k;Lh=TxvVM?|84>~9DIUPgRP^_9dqVUYZzUiS8qA&Vd2H45veJ14&t)5XPhuq&Fz=^N*GJn19EZ&F{krbvrIGdfEjk>SW{o#2fVw6L&+b#?$py>2{ePTq!C# z83c0zFutwwHwXxZ-c;%@WtglI6Fz3GsNGMM)(?VmdVdw5v-u(t6iA&c(oPqaB`yGv zTjV3E5$x^8Xj+rO3Mv0LB;ul0Ae>l*c7BN(1yolVp=Z3kkWllaQ^6)VR0lYhQk5ox zyv+{v;iOyj=nG-0(f~-Y6teHs(J*d1aE9o<+Ydg^Z0aZ)pmp{RBM3u7Ep#>&$B6Ln(* zZ;vEItlRjQI~~r(5h|nz*STPIp)oqkk`5j(H`vig1Nk@Y#+QVxt@1yH`r=hk@%bP8 z>`JvC%kI-ulrOZhojHi7x%ua;=A}FIk69_4XAOGYRns|(>!8ahr7=@rwUCKm zqDBH=7=3u79g=Hx|b$m0UUJ(VRb9yLC?OIh+W z%}Nr(n%g&*f3Lze)W5oJtvC2F`M#}G%V8yM>`k2=$Ns#R{z{=%L**M^1Dhuqsgdrw zpq^Tpv9qoUA3uZvJ%n2Qq;?a|lhqcvyJ2`i)h$_1tyV3JoE$UWs!?ljA`*;|Rb4n&}KloT_cS(2{qY>#eUWXlAvUx-| zG`-YMHd@W()(R+>kb^&q=GUccF~k`OikwVU%+%pYGx4m4jlvR^*5;g7Z#)Gp-ND* zcROr422p#DiJQ2V_SHbo%Fc+YhZx?JW3m(IWVykpg0q^ip8`)}IP`oQ&nDlKF%NM~=sd)t*d@eEcNW6Z9XYpM#+Gr* zqDaEOdv1Cv^TYKqHJLg6B`hKa3eFqWOz;ZXDe|MJg9yxdIAHb&x_mU>5g6ODLK#ik zClDulpQzS4E@a{QdZ6iI`vA<^CB)NNol`b^gfnmwFXRedBvEJ(X zYazg%%ig51V*#<~F_oejQ}1~sN+5-1>*#-)|#iUD#Q_e zm2>oEwu-Sxhi>yPWwN=-H*(KOx&B3?>mquOf2LGbPO?RRrbbh|^Wrb^@{=A;i=hOY z_B46yOaf|!X@^6k$ zO-cD~pAca?HHkk6$x>2bkMsPm40nbc4ADyWlNe_L4fa@!*+k`z-B&f1*uQiQB|p~u z7^+vz)=W}Gh^=TXo{j-i-Pd8%(uG91;%qp6Y}1wBHL0VWYupjTDo{7aOXe(+0U{=< zV1bD#JK1(G0F8MV`)o+>qe$yLwxq|340mZ=Asya&B#K}0?)P8r1xXZ&Ky4Vkhf2rz zEgKxYcH^*$IVD_h0iWzTGPHZTDQp=`#5GNrUV9E;GX3wj7y$&wpB35x6GJ;adC^W1 zD&s@D5PcN*6E!p3CI4AcTAi~F?(WCJzXVx2)GnR@IrZ*F(wJ{OW{F9xw+W2(ez%F& znScd-W$(yrf<^L|%|Q=I{wJ0QTpk&EZmkX} zM$RnzUwEKQxF_mN*&?sz57qy|C-I8`Ln0_P@5=Bm4ANNy03E!XPmce~&z_+H@X`aC z{$bv~6t}bs{T=8&IkA6%m)bdLfWVN`za-&5$+^D;FRuU-c0j>~{%`cwSR~M#F|1l0 z*?%Fl{=eIGee)v$<_Xp$mm<<@U7JcYDA1TnUd(F%6hd6dxH^#s zgg~U*d$bZXg_MuKZcbK6H3lYte3IEqvrAUIjwxOBw{rs$9s_YxI@0VbU~d5ANpdtL zlD|ZrkBJl@44L$4l;y&uo5KLoQVz<_&{U22oM=fZA)A)Ftp0iY9gtR+;57b>iDLm! z9QLm-x+3B5PKf*JB^Sh8mdl^&W&Abx>GNaW$>*kKY-gUVG)@AXQGtD7^mJrg<>6de z(4qrB?RIdVKk}AY@0D44_SDfrRiSIm9}olcQr#;}A0L1`(}ob{Z1#l6f@vJLdL4M2 zZcnr$%=kc#hY#pR{fSY)?g!z&UOp<*s_N|+z5BlP-<#mnN_b>4~<6q!ib8_ck=-Ng;OWsswgZhoT#M- z#DaL2HFJA&x}X9p6ztIPQ%;sY^s3AV>8bs2#0D6Pob^3^i!p7W9DGfzi|Xr64`-(2|anceMDgB_h( zV5xM2j>olXGQ0k!o%ZTaSJ);yQdPhS(KGS7$Q`IQIc<|Q2fkD&pHkbQa4Hc-L@OIh zSTV0*OpB$DEUtejU5Aw7Hc}55h7I5L;UrFaK*auXUo~dBI9>Rq#MNOzYPa_nsT?Nx zlf)1>3Bc&!n!1m(Vhfd(h7&n@S}s$p8WjP*#%wroV!4AHL^z-J!Q_*r*c2wcDrk$y^z^y`N&9_dA3nA1&y224dzK3Bu7yK1df=CCo3{KhFLD=m~fr zLy>x6TaUceHvyz(_Tz{+=z+|5G)8e;mB~o#DCxK|@;MyLW+9-HDg~h67u(Tm z0%F}xG61Rk1`wJcehx`-r#a0rqlFrCLV(!uN5Fi^SWW>lFsMRyB2N6)QV??iY{OexxtpkZ6O0X8pGzQb ze+Pc=`U{a}-4V^WtmTFmos`#~oZp>t<2bmn>918{^c)1;|>>n@Fb1iSF4yO)>meaNd&*-wxUY}C~b zFe_2*GkrZ%0s4$}M>>I3pl96``fJbrri-vgS5<(?2rK=gxB}r=JU^z^*g3zmtAgX{ zssyLWaBi^0wbUw(osP}g#;kzrG<^sT?fdHu2*U8%=9SitK2TS7CDJKgt>5KJBIL>c zd_CvEz_|zws&qUidDsYouD0%gX&lqR0;He#O6>;sfWNd?@B;uqPUQyU?kv1_d3ZeS zQ-&zE0dvXlV+0cxVH|KN_xvz%CV>c2f5uPUuvxY%sV|x~ltJg|&Z41JObBgn?ADa4 zXZNBzln_+vR}BGbopS1j0jn0*K{QQgC(nl%dkd7X{RSk;9M&{GRCBkbC=SDShNJ&a`cxq%H&bYY3Di`h1BlvLMw42D|U}lprzdK^(2uN*`8C1T$kfTRgD1^ zM!<}b(g-!?z{LvR{iU(bTy#IE%Tjh?37Zh4{d#XSs2oL=Q5o$Jm>EX2&}@dwWi=aC zs?{R8^R>aZrbzy9cDH)C>-%CgGLw&$%HKK)G&S#u;0jdUK*Sr0OnfHKYK*ZY&J=QM zI{Y+D>OIqB1?QV1p4>}|QIFe|x>za+S=p%f@LZPD7_w#@Q1tM$9#7$@mXBUN`V*OyKymbd#6sRPU_VQ6r(0{<(Xays+89i94k75 zpi%9-EP7)W^Id}PJ^GvBkq)l&J5(2{<)s! zC8*LM^dXVDk8ZkB!p^Y-&Hh>3!))e&X}_J2@ryJ9-E8sKt`L2^Lbsn8?;J?fzP;B| zImjv;187*vdQCd%vvlhqoDDqs2~;q2v1S>$(NKCCe!dXx&wR+Y@phk!H}P!hItc0U zY`X7k)_Vnl@xKlijl^@M(2u5Hu$!)9X1^f>ii-e4+J(}CVshhqM6v4=Xe^(iTo|2K zz+Cm=GMi)G21u@#3JtD11Yhm|>j3r}Yn@E~y&$kj1uqpne~64T`^kh+9|0Ln zkGYg4Jw_nv&a^L-J*ue5OnnWU!T{SZAqi$;53(#>V!87$JWd`C_W{2Wbc{ zH-^z*Y|>(#mDJ21wHTk4)COCbN2HxMn&bZFA07= zw#u)71CRBBWGyB8U$x^{7BKuc6p`;GE}+tN>CLJw7O2)!Shb6F|@#&YP5r3 zS9OFW=MIq3@q8=g@Ob!uOOpwn0KtOy(e(mUI!iU1)GmC>>k%}4i_34&YaCB(jDqSxWc{}k zpaa?7Ptqa>9g4QMsN{#M;iacAK^9=lI1J&3c&*l~o#d^UkB?k$4`}Da$o$udg?WyB zd9A|_K?69nFz-OgH2IOIWmTuC_y7H00IlE6;2%$x$Y(iy{pxisf}=0%t(-r8-9Xpt zk*)1mh`Bmg;LMb~K7a({aFrjQ~2-^zW*6|*fh}X8eVZ^o=W{Kt`7)U`EqbYoI;!$f~ zIZXyR^$rSnkY9d=npZ@#1ZmcN$7gr7U%&K*y{Vm4S&;-=IUwmDZSJpD;%oX|80ba| zRi8Tlj#4L|u8i*BYhQU5_jKmF}&C$&W*__NW>McB_sj7kj^wPyn8wBmaqIULfF}zU)!}lxtcU$yJ9HLGoaxZPF*Nb+ zow5k`>=QxVvSAi}Hm9pC-#kC^q>>1FIBsQU&=f^I;nWE)W>8zJ!`+Z;HZy(Iy%9SyKOq{MYct+UlVQKc^lNC z#h*dUH0p};8NFSA=}S3O9ILkENekVaXAHq&(d_~$bTqvZ)qTJY9t;~iQt?!IuIS`% z8K$;GUhjJFFe;3b#&X7?dmAMfu86xyWNoJ&8HXm)&{-{v2*Y^o1=Y!!d^@Y*a#yo- z8Jzk@>h{E6wQS=T6o;Cfn--*&&0#5lw_7&7&kdEpx-ckHpjVKoEZ)4@EXSJsWHg*7AB=InMo%3EU%k2FwZV(zAiRjGVhCGJ5%(9QU zDnD^0E6VeO8mz$9f9w)i@pzQihf(U2ULqjc`sCESO?%(078(QM*+TE~XDz#2mZ4@)$@{HYXLZTn7quJtlzd;lyM9>K#!6;f+`3d_&TR+w+;~Cgq0??` z4`;<_G(0+Xy>YR03~W6^ie~5=1@NnGGS03(AIsuTzwRSZT~>*;oZr?9v9x`sT}pqM z20+b24VSM1_m?DGrq{_esRJ-k#Sr|OIz;(tr2#G7&CT@RP{-Ig-bwIR(`?^*?2TnVlhUe#yn-aShtvaJX=D}T$lT=Mz;nB z{Ow^We9hpPydkjiW|8(y_gW9A{KA@OqF*BFj~2Mpp+w*u6Y_v#q31=#js znbXgMOc$Gv0RWoAk?;Ftpl}4pDH3m4b+W}H?TjHK+^{9o<*psd>oVi}0aRh|$)y$1 z-XOr2B(xV!tMn$c?$nwE{xL&y$D)1hsk`8LQzBH{rbnw-(BlDTQbGz3`#k6Q z_I!N5tl#1W?wI$S*SzMq#uzial@K!1Y`-*Jyiy{U(OLgnVFB?~;Bsh*5Ts0Jh7`w5 z6~;;U)B6}nS-0wI1 zQ(vT3r<}i9jBoIxx|nd(NLa5e{q;i^IUb!Xo%zNkMsKk$S)zR$AI?`+_0^@{YFeB` z>g*2UQnTv!5KAQAZ&V79dF>PkXoHB8x$}I87GrhgkO0#yT-W+igY#2=bK;-&pg#v6 zES4&dA2VYbwvQt^uO{69{VZ-H+7(~)qsD`*8i3JIAmTPl#2fa-Rxr>}_hq@r{Y0-v zq~k3K@1F^3N#|OlZS%M34*x;@>#8&Kny_ex^cREfK9PGY@>2OHeI-o?R*4uU%bFc= zVdztb6vq3H^$85eL}Ok6d+?!z= zMSVgmQn{Z)PJ2n4sMU-TOrmV)asDWgqo2IH#3OaKdq18?HTIdTk3w-@K3C4|N?a-T zV?tY>&(PvU%67}KY6srUui~S#9C~sN&bvtr0^2GD%HJBzrhI1Q6)W~V zpA~ctsi_p&tC|w0iuj~G31myVy{D!b40GtS#Y7~|t9-H`B(yJ)r@Bw%W9+zhi_%wF z2SXm}Wgw64jpUJ)^NzH+xw6LZikFdb*;8b~bZ|6;sAV_LR--dZe_RHdvZzY5JnA;3 zdYd0U@~Oq$B+6C()xA+cyBqwWHF>BfpY|U78qE6{N3Zb~JA?eSjR1^e|*Y&ko<0ArY)x6 zxur9E@(JAK9zo`D1^435D@2ED?s)wOZ=V=nG_szYx;8Gat9|iSdToX$h&DVF?o zje^#52f7DXc|6fF)e?0Qq{pOroPT(1)d#LDk@`8_9E8;Raklp>VT-E=VubLdSgLG4 z?+tac6nwZ+uM8igj9$A1K^UhCe41fC3IS3iJD%5!q$uS3?tE&`l7H8#>>T6*dN@!% zAexzCk%cA%gT~QDOKUS#QB7_cw%r?Z5jM8DIQSF@7J+B6%ga#h*GPs?#WQtM!pbf zta@@|pU?Bx?aI5DB5kKdPef@H{7f;1u8T+Myc7Dv^OcnBKT8=DGw@5!%sdzf{9j5n z+~~+!=>smxr~iv~TNwQ+091&saTYhT{+C}jvjO~C;BdI?4!>Riw0WRHY|Ora>!ORp z@dZ8X&kv}cDjbq;0eIfwW`<`MArqw_cs;illxR%1^C`*T?ODo7Su9Xn zjdtTv)@u{aH<5AJWkPHgUwtkz#0+!6*>%|%t>dzsseYzd>H;LQBrRYM<5wEMKa zw54M?Xk#3g==&e|?M^q+9x&|8hP2A}r z*?~cXeoXZ|xXAEGxiW@cSr%wWX+5vbn0#INc3DTf+*vYR1f8~MslWuGC}A7YbnJSx zCP&QQ_Huf#-hZ`%-;kRfDhzYnGfe}<$KmfKe=^DJQoOWJQ^y4D0}w9I zp^Cjog5t?TxR#gk*4F>Z?RZ?pbfH!gf70@OBaKsA0gsYGmz| z0s1_azh8E}{{$l(ou?9yjJ8|t7vF6-)i$BZTL&vfkW66#my0in8b65T5Ql`k=O?AC zN7~UH4p(;-8(-h=jblz#T1)kuehZZOKS8}J>cOLzqL1j6?Jfl-0K_g|VK%-Nm+JKs z*I38B!DJ}A>zE0z`!WmFEiDf~Cf7DQ zw9dC&d@)u4G;Ip4EFb{YvRvf`6vKgpadOd0JtdMM!sS0*p>m*#^8HWT5r88`)mO_b zp`5h?E_BNI+>d}OQ)@=jQ>x3rldah|UEI=gObYw>R17C47;xeHM4=X?<1;c1p}x2x z;r*qKD2kL`w9`FM101a^&{&>}rq>wEjjQ&|Rm@pyzCkJn@)e123Iq6A z6IaV=w~SW8P-!|k(K`s#$XY2lXlNAGO4bW4iEhrjBVEL-vfI;+nT@IuE=b2q!)@;r zv&@t>SvCanYh|r;>BvE`Z0y}9(KKztC0BHBm@w6x3=sKlwQXOM3ni}f#*}SKns@&Yy*HIvD27Sli++3Hvk4jN)2p!@g-98GAvn5!wSY6D z_Y@Q_EbpIy^66VpE=2`a1Y~uf$i(hqBy>jc4DNx}Xg1zUCF9pHG)L--dK<=)jIb?} zBcHVnd=olzD3*c*Hn0n$n7usVMr1SdAbppF>dUl4JxT%`y9UUO4u49qyBxfT_eAi2 zvLchhf8VXK|EJ?71l_o}t!$Z|&CTtLd5t-a@j#Nem%v#_<5_y_NAzQ0hmfe4(FwCk zeP=pas1@}I2t|H6tdA)8e!*JtTs*(_gBtQX7wtD^>cNG539meOuW!0`70XRt<7-mZjwx0E%yvP;ntZjM2p1j>^C@ zjhQBxoB-8fx$`S}Qk>ILJNicFgI$2O|H5=Wg5;|)CYuL!d-3nH=*?WG&umXu{@}L# z69^O?t!6Vd9(3yLy*)bvx^@6|3kr2p%y8vU{;Ds#G9;J*f{kqaNETY~lTYIX8gaXQ zMlW>=>!S_ef-XaWn4t&lq<}#611P$1qZfgW_t4{d)Kk3@OmPDbWK8Amz1oWapbqPA z@6dzaKi-Imz+E5ArqX%pXi_7&X^r!gb?`Lb{0KkVI&Z+d#~;J}^s~HY!XLfg%Ruza zz88Ri->*UZtHxCf#oR`wg%FAMS5Y{7&ZsPk zvf%d8&eiW{Z`MGeE-U(qVbN7Gj^PL4K;l$J?@6L{qc{@E5e;o*xOqOU@GD=RFgN*H zMR8!JXbnszsa$z3`i@+_k+9N`>BTWU6BIW7bsYN~6jnZ0f(wP@5x7t>>^$qjG zi=kO!8uCTKjuxRE!>P`H)8hB34)z^Yr)(9*diGI86_1MqGOCx)LQ4F~-H*fh(a;5O zATZqf)A?;vp4{2xjXN8x!e+5`Oh(Tsgz-jnIKU?WfhV8N1~y2R8b399I!12PA1#i; zElcy8&||hy0IobCP;nm0C^wz0mADLR$%-#Cva6E|J=vP0L^2-DmU`$<>caA&X{9BZ zL9MLYek8{LRZXZl<();HTUgo+}`W24uCMmPL*0K+EqAQ?kzn zKOxiH3&}3INXuw2fML6)#_*|nEoft!;~`@(6zDXiq`7n7k403)TtFlOg3o%x=WC5|@k=Y+zTX-a90RQ|yOk?Z-is3+ zP?Ob;*(=Vkjf7W!t*&kRc$Iu(d}=r#0Dzk{{72;Zr{639~etI-n0K@!o9# z1{xg)7*UvWj!$Y@Xb9izvV zJrcU1Rc65aMS)d4i32mnam4l&j$_gy!1$ry!nr=>rRPG*;o7fodN23~+fX2Cl?$zq zZ0tV2r7ry|6cqm1!_9nl$fDB^)#3D|YuzTn%0)Wcl>Dz~nF@x@u9>n&T?yIB#a9+CBylq!GX_plI7D(jRP{$_jS{LR(+>`VRD z?>f#i{VrFnjNJCC{jAN%fS@xy25bxzQtG`O?@bJBUol+v_NUx{CYr4bpf!&ADU}1P zM2#U7@nokyGp0@9dE9bI39agu;b-MMP7M4YV*dP@b?I&d50J$v`f_^ z>(NfEXhscAdv(v*hIb3+-WS1O(d<1M{Nx4REPTcB4@=-rH)y)Zb7-0bdgtCxggn2( z{fBlmR^9C?pK#w#*8bYt)JmoR0QTgu8hhCLcT;{kEMAS(aQ;jClY@(p(DDd-*kG?w zW4%lNv-6ItsjK@BRJ*=HX?ZV;Q@B?!dGjpBStIFHtjff5CI|2cQLEpi>KP(obYw~< zcJhXO6Z(WejK-_BX7eV}js|Z+t9m3oV+R8#Xl)foQ}SEpM+|NPCdxHTojUSQVGEq- zL~keod4Pu2XHEFEZUY;CaVjW{n?IwrUU~DW8$jg29V`GKx6rzLJ(Ioo+%itb^F}OM zs;w;v>7heXTP1LOeTs^klu*epJgrS*?*=yTzL{gUc{b#6PezfhUH1ya)=lO4x!~C=M zszSrq4r`Ni?*#{rwT-FJ30-Inyl$^m^Bq2=086EZb)N4iG4r`MgMv1%2K0)ax=Ud$ zaCeZpX+At1XQ1#Gq2DsF=^LZUTwiaTEDAz+>^!rzm;|Lxl}cd8wljN*)7}!f#mr{C ztq1G?O*=ugs6f!;vZtsDwjcF`C*LiBTU>wth-GK;DfLD8Y6+q_GUj5g^$P)WsdvG_}kOkzdEAshrZR91Yk(g(3T z_JmG!eb4P>3VfM3SzrXQF`!P@J)?ju{+$Kyde_UheHsx1U-LEKyS!&J8jR$TL-Vb% z$EEF&%}?`78?}mq=(x>JcXacA+-@0 z{ljHF$C5237w`z%MKb;+$Ej`s4b6RR{6xdIG6z&g9$6GN>&V zp8)jbX{ob1`eG z=g?313-?xE{P_;l^wiWtP_>{W7Ek^HRrEafv>0dTgeCs$s6f}uhkmsHQjhBko!a^* zGd7FTw={KoZRU%dI0PS7#_M1G(q|Yhe4bDrZ+~Kpc{r^V#C1}g{aCat#C|@>-dP7k zF4rX^9M}x!1J>#0av2m^Toh%gz^4BCih#?hZ{&zLfq>IjI?fgHDdLkWIVE(OY`ISm zRWLFm`97qM-x<0W(Be|GDfMBsjZ`%V^${M+NU1BYd_wsMjPqUjzridYF=>iQuk^*q%qW4b_M*2BuzS!7 zYv$TXajf^RdBSRp?Y~3k1l;`S2^=vgmi4N7Kkye}^}f)&lJ%s;`@U<^4mnultCICB zD}_E~2v^a{{}ocM8>7<+0I|7N^>6Mox>>lVnCHzioYkK$>1EZQ$;vL0^GCq6N%ocB z&Ooa7mn3X#Y#uNybZvxKD%-Fh#WD+Gm4*Al*aVIK{30W;n018#snecSmY4D*l}3C-XWH>_+_lM83U3(&hNX@>PoE2l4Ji=HJ^>C`cy0z~J3=_TgqySrV&%=w|8BmMxKe7IL`r@|J&IFsp+ zo^ZL~_TVMqa$>k{n~<$*9>=Fw&>xIdDDI_;Mx>3G#bnW8Huw^@qLUNpeMp#iP@e}l zXMOx1^06_fCYJFiFFPN2mq!d)f5Lvmz^}$?yc8<^i1*lBwlBX2DLM=!JfmSiBjZw3 z&7{0%0RV;mW7fqzQoa)n)~*7Ap$dOH|NAx+Yt5~ZV}XzM%1!0%yNaS#rp<=pkUbAz zlU2V7JIVmzu}7|fY!D7VV0Y)lkT=F!7Z_Rzg_xdlj* zj*i>|sgK4y1GX?`2F2o?70PgJ`f z*k@GjJ!mV?s48L7`4;B9az0iZSc?xk_q;~!&TY|+0p1tqTcf{!v@Hu(2kXSA;?SO~ zoSm~Gs_4$J^BWf}o3{h|4HQvc?(4-cC6$uR8ciGPq z-NOH7oMV?29POJ*Ou4gDQ)4Xq``zKp6tH;fZ8f7#0VQd|2YiH2e25UM4UX0Lcj!)Q(hH^0C5z~}4XM!L4q_?`RgxP5?p(Bj>q-QyO0qrLatsX|X5 zF@)BgMM)uezdRMw8eGp!lw`L$G=2`TI4n+HEWxRor{B^SFzSCy!fq0tN0BbP zL|U-(;>GcBJWRDDCB;5u^TKs#cI6d!SF+0?7nb#wKo+deqom6j;541HoG6s9C1(We zQ$}#U!G<%fXVwQA>vWuV@w}$(oJ}`v0epGGhj@DtdFAZ#oBmFEppAx@!VtiW{F$gc zT-NBD`F5Eoi|LZ+`Hgjfdd0_x1Y;M=hFCX5SDl$M+Z0<@d+wplM$m_tv4Nn&({`sK zR`D-BuT6ny1M_Qs{S)64ZOsE+==8OHI#_nLKLdWU?KLV13jc?Cq8Z~Iu=>@h)+oIH ze;VV8J^?w}+a$Lv9;N@`9xRMrZv%jQk438*!n>Uya4(Rhp9o10BywO}`?XPsxmOwq z-`;?oHI(R&0Sd3s@nGdVF)gFOVDK9V5Vcpzzu0C%O6Rkkt*5JPeIZN##r)soNMdUS zO9i-`K;&kzO#B&MKTQWsAd^m`XyJx8+jgL0QL+of1O6P%hoZtlE{FWHQj8&>F(ej* zp4))re7bJPt7EyTn~5N`?H%^R#)_b!h6RntZD>`-D}ye;(hiz2T3_nGa5&jgtAbHZ z2mJ#-Z|S`#F?dI(R{Bx<&yD*MvR7}Qq4}300W6tgS$85shVu<+ z&=r@&)Qkk24$hk51nrMST9}XvzXC-oUbWY);38?{<;iXaAcO}!Af$b7*cU_TPH%f% z>*%n3;plpGhG#if9{&ZKboD^tC0vw2Jeoba>vbg!nCTgIPrT;pYmU|yDRbp3ayvdQ z2jc0k*uM<6=}KbJ^QpF`zFeaOBwe;-faV$vC5Qq4akrP2FV2R9Zht3Dm6^_7I1*64 z#mrT&AOWbcQsI4~-=?EKN0=%L0gMhZ&|J~fVmsi<&ou^2gB-Tjqr%uUhg;yy2(@Sn|nWq)_n*>Jj4>-M=|~SEYF}Q;(iSk_7H2Iqj&0f{RkJA zppM{vR?e@$=M>KaKT|ZE&h>bupxax7)=9p`kAz+hz@lbmW2cgLx3*`?*!Y0gk*v8+ zjh!Lalpr?QMWJGz^1zL9zM#;p5Uek09@Y&+I*cmXwpryC;}W1I5^s|Ho;k765BZD8&*QoJ7 z|9lS-EeQo-$5a5T+X4{*8Mk{2k>t#=VOu#KymEHyxfv8S=EgH0EK!GfqC}>YqK1oL zcR;ZlDb{;K+Kmz?UN?2Z+9JChVlEletF*k|MgHizRHs;1WPSG15lW^2nW}dwJ6b=i zjHXkdmLnwjFl+OMh)$=me#X6zF|rMLFahkg^PKW+y|errFt92=ygc4CKUMJkh(&Uo z(gFCnP#4$K0+eB_enGC<%!n;sL60LMok_#NmyWSXIzN1t*;?Mu@;YXH>?v#A$s@TE zG!7krY%Ay}gaY%|9#GlJGKWC7_^(f!uTOi1Mzf*!Sb;HXp08>b-vy9PFi4ntoiK#Nj7HUHVIbLxu`2pSC&$j0R@Yyp?TLs zDUBjaXgLQF_Lm-@pD7*{I$Q7{W;6O~(yWUO5KqgRlS$`d?>FJ{2cIB`=&7r9L;mtkp0^h$wP*)$t zi_6CozUOU%_uatf6&5D7R0=*Cb;YryhNyJ|$Fs+yu{9#T0e%*Gjw|j5IoXzZ360uy zP6byi+ivSFyB+pQZTfUZ>%cuUNho!Ew<(>jtqVybRt%IlVRI{7K4x+G%Z&-Ii+E#8$*jsPPEL`Mxx?Io!cnPa-ec%4zPeaZ<6HPvI#m+s zU6M@VlQ3DR+eQyfre&Se!LowPlq0)IuBRMFJikk6xj95oPVk4eUmi1-dPV+_;N@3# zi!oZ1${oks0qNS;rUnFW)Cox50-_Ofh9 z5K68S#(x#an8B2fu%6~Thn`QgA#NAi@L+Z6t=7YGF0)DDa-h7i3Fr+oMWX;?&XitQ z(tO%Ak`xh*0yhS6Iyjp#b#7t^WWP`f`ML_T5ej*v6dUnfy!zjmTYuy^9_pG>O7_q>YMj_VgdpPb=_lbEXBb&!g#)1eG0~&PRXHV&J3zE$sQg@;Nkm(o#i=<`IH?o==k0Ah zf;qR_G2{Z02F(g#s_hoQy8J#?l8un}^ZDxIaZ5Li>NcZZOk`Zpli43qm`Jfnu)YR; zJY6MC_y)1m_1J96cqhogbS2m?!p?rB*N`UJwv*UOx%-{v6cku0=+60^A7(ji`z?s< zej~F+#M#!aGa4Wnb`yC+WjUUFbBI~f?VxtOi^YYESZ?D2aNcR7!{M&f?|9xsC^zKp zYtKkEk>lvbIDNCJoOSHUoozSkAomApDS(S%SwW>$N~k<3lRq>CrM2%yE7qg})Y`u{ z=ln|kd8*>-Rr${Ad1oSMGc8U*!MVbNP3ETVJ-xP%aPHLg>F8ENKT{E~lIt-}^?C+8 z;p40u&(*a#X4|zkMzTT*WExaBYUl>-7b!I+_J~BDufXzWS$8VtM)OU}V6d;i{dmr z(G?`G+ZJRC>&@Os=~|k{+6y*xGbg|#lrGidBp&OCBUNTVSAmqvB3$xAoVL_-#n~qM zpY4X4!`rJ-rx2{FZ?dD3(X@16alqkgPF8ZdY{v4FF~}*6vWzkAXig97hPhCoE3~-2 zhr2ct3BQ5Q;d}jgC+WdWcZ8K)g1|<{1FZhpc@eh9%9)u+Vp?WQftYNk6&wCYSO<=> zKQra!yR_vu*`9)^DNNyUA5DD}5;p@6o4;^>??iZ99!Cuuyp?RIb*D*1zVTUJ1rX|lQa2GYeTGN zEy92KD&z!VYma+13)9(OY3n+UVPHD;H>(Kjtm~or_1e`xSv(o4yWSk2kdaBeG}NfD zcovr^644ufDPj)Er6c1j=jsw}6_%>4pR;ybc{Gp(7TK$Uv(_u2d^_b+Yn2Xst~&d= z_C<%1%nc@}oCj8KQtMWHQc;-d z=C4B1`o_?E{EoefF1Nnjj5@rv#a8o<$76ENZYNu&C|nm)D5kE~#x`@cVYTzqRGdsq zOv6l@T}jwXiq$rYfv3x^DiS-5t`Kz3LZPZMX!+U3eQ!>Pwt=T>R(#EArQ4qViDTxr zDScigg*m;+FA50_f(nc5$RkfftmzqW)-q}4-{oT?e$kt>J&2=!Mf7sSjG;nZkrf|cK1FzXTuu+i z^~KQBSf8$&d-Zk=IER^52*f=N(?|WX0j&yaz){htar~Smo1tXj55Eeo0HOm83mcNzJ zD#`xO!~N*E<(--_3cCL~?_ImNBBQBiWEV~<{O93SaM+-*myYGX@9pmm3LySp?i;z_ zmC6diT~q(-&I8F2d?wa%=uZg#ebeAuAP+eFJ-n;$6@ESJMtt3jZb%aO_CA8Gjt**?7Nb~)?i^oazqiCAGj-S5$yCVp%;&$U(%dbv8IzjXZ$RNIGTRLVZ};?@_^rp!?UVTEpM-X4uSAzpz{*94!#}L5Y~{ZbKErJ z8r?pDQfW%&aus7$$V5zFRq&7g$DLWiXVQtN8P=fBDEXW=QXEiT&u=zYIO+Cre3xn0!woc6jm3Sh zknTp2cP8@VKsvf-tM9%E+py$nxi!#z@~qY!FZfeSP^YYc<$(IMiEDzfjS~J=n|ly% zt$3bea6O65FdF-MC?!dc{`V|nXnW$3Bmxry?1)Uom{o7)CRDVj#~N};#!#v%H%cr0 zE8aRnmq@ILwL;+$tKFyB=go5^J5i?fR;+g)cYhcFpFYA-0d5W5#pQfb)$cTaTlxu6 zcQ7*IFq3ZGKKZRUDb`!9g>^FYNj`~UlplqUl==$2f1xy7sEi_KC+OJNxuD!mnD5!u z!-w`2!`{AC1Wgt7mDo#|&vC#?U}Y&`SQLiD$EuLpV|E<;zrBTS*~@bfNK_~BESU}d$I|H89j{53~7vAk7pt~Gw_s6|#RetT3S z$vae0TN|sa6?WGg37@%i$4gIN;%hGqIR+SZc^mx9;?RCcW^IV29nj2C|J44jA4wBZ zm_d#AUQ#`*Mac^&{Db9$u6gYcElUXRBmbS|$@qS*a%3M_waDAp zUr?w+hZ0WwIW2QV(jB1W{*>j<5y@}}&Rc{?houVH;(l%qAul~GQ)Y^PW7l3Y*n<8V zxzJNUo|Xu-Z+IgZA?urxJMkZck(8Wu^0-(W8FPR5K$cND;`4uPVZ;CCrFS$+er<`+ zhvr(nQ#|O%hNa>04w`qKiZAT05A?v_P$+)iM+t8p`_)X7CiXMT@o%cxHO=gbdmBC) zv)?PLQBW)CrqK!E?>$|3VP!l3$(Lz;$E<4Zy_Szw#Oim1@1Y59YJHDFqs+2eZ<(Zj zH6N!mozz);61|J|6cJ!fc#f?t8ugiUm`ihy*G;+?Rcd5G>6ZNy7PfSSzjD+d0W{5PS5-MC zc*`mwMhMBt$8gY7f)=roePMZhG-sdNlFzkwG$?5nR;~mtWQ`>~d+$SSiu9osTTcD= zF!&6X(Ohdm(@3JITEV8qn6Ey_V~*YZ(q1O-Jd3o3_BDMTL=*{fsJw&r;lhBdpa20g zj$#KbPhX^=<=A`>H=hwXjyk%%fcK9u#6K@# z_)|`@H&2@0&LvliYsXh|sC8UfD!ryR&tWSS|0d59RWTScZykZ~kh6QsHgCE4=QV4( z(apz#uGe>OsDuhkdm6{vbtARPa+Xr#%5v6m+Q~#$ha7X~*l)74%KM5iw6)0Z)?uFb zj}>^b$9j{M4n7W1Uwh6yv%abp(BH4z;d{v@1<`Ftt#DmWl4rNB4D8$Nhj>m>Ti=vx z*(F*=3z9G+^>&J%x6;&7(ZnNQ+&ydiSNLqM=x9Np=sUE~JVsi-ah1T43pLbCOC0&k z!TExY3IvJ9rnHNAgNR<70(L%=@H$`!H0M7j;N;lF&ls6EU7+{i%I&+b*0AKxuHt;(p9Zlld0h&x(K1f zF(!jrqId6+jJBd%nsy@Vr~Z6sPSAL(?Hn6Tsr!whlL1`x9)gc@sP``-8zjc{dmrZR zv1{&a#6k>@hwj&ji(YN#OT!ebdO2BI$?K@`f0-4r3@)Ob7M2b(j^%aa}7u4P!v z<@T?Z>0b4VuhpW54a{G@>pD*MYjGA~1h0mRY=`ts`L{CfYQ_B>Zzc52G-6v54a|~- z2){61YgOrZj1kHc*=#IG(P8mAYC(E8P`nPPDE#4g!)vr7OASTxCskUj1$-}3`=@B8 z%8VjN&0%GdH~NSZLXfApJV||D>-OKJ zrD$lsM@Z5Z#LFL4Q;hSa7o7?!GsdAL*CtiwqoC$bOHJOd{(K(adiq0UbP{k{P3Q1#q_)IB8aJ(r1+-PEOnhYNo*rNjYIyW&I{=aC)&rRc&qTX z09`&ArHDDds^`Gh3a@}$1uUmr&U<+hxS$_`g8&vSUpv)l9+p< zX4q?KxYCOMqYkyJ_TdWrYPj!{!I;{(QssMyj*MDZYhLK62y;=$)E#pq4K4r5#he14 z-%1$L7z?JCE*7Z74C1{@@20%W4DgSUP*9E-S9)X3-T&=;7jGVBBMunkLRApi9r8e=i zGXfDcth-v>vs{1$)z4H$p8s5Gpk>N~B}mNY{Lp`A zukdf-p76QVSaR?`PI3=12mVM@6nX#iEdPMN{&~^=x3~VTq`6D1#K)M05;i2VrDBo^0xxkJ% zJ7X3ze3PHcto719rZ}*pWTt~->|I<{Z+5c+ZbwDYv~u!r8!F4`${1iAB&5~n1Zd~$ z(Cjc!oY5?-KInCrC5*po2hjk~UmV6Bx)HzC1;taR!GfweLe-^KjJ*3Phsby1as_eD zeiINxKdz5tvFf+Go$MaZHDm#oFS?;{4a!WV`o)lC79$hV9bJV!~&g>4nt0L`( z1h|SrxvcMoV7wH?*$mt=NfH9JipfrOmDqq->kbvw4qcw^#(}D3yuF6<=mQNAa9YEm zCRc3+&FbRizPKU6?S&TKldJDTEg{gj|bSC$nK~c zkEbh1^7yJye5lHmd?=Z(YIY77F0BBT%1Kh;m(X)S?Zt2Ke_gk`aeX^mH%|qsniYoJWuoZB zJO>_7RyWA)4#D>QKTIz@fj`y3nL$`@6!jX|`6!wHy!{U=P>cyr?QYCz?bPPEEmWNL z1UwCmgt;9bNSB^F?6^0Wu($&daAhfkIaa{!q#Nk*wn0P3L`Cd+QGmvmDkuNDDovO9 z?EO8xXmIim1%hP{V57WQux|0Wf6^ye=d`^|l&j+zuZJX|wcSCa6a563v)QSZ8GZZ8 zqEig2EuMVaNDs@uNQ4O<6l1Ac*A?V_z1X8%AFChi!2WcZfiD61JkH-MlmXDC}!j858tTF_1;C&G*9z_k^>Ab!?eh6Wl zV)}G754M1}XwD@fgR|lr=0CNad|W@Cu@CBG2hH#LjpXD>0c-*2%DTts6zbLPCQo4s z2@onX%9kd$+YvkZV;oN71l*kX4!u#Img^*tyKTLKvZf&zk7F=@C|@!N6M6=$3JH_5 zbpjpAdjSWMO8xCS+zIA4ygI&6uy0P^A0vV5*FXCR$Cr_?_x8Xp0=4CGD23GOzf=uxJwT#CdF zWlw8_*#Z<~D_in639}E)5_e3Q0BK}Ukc{<(-sQ#XDq#KcfG-)2R0x-&_p=i1v9Eu2 z#vtsk8mb7{J)KWQ!>+P~8ZqCPe&z*|vGbkF-AsoZzqE2tIdmekygz<479}(N?m8RR zN4MJh8Z6%{bXGwds6SW29IvquJqZWiw36qSuNH&8h-n3aAv7rtGc| zb%6LG6V`B=teE-Ih`6EXXcJv0@z8>J_)-gO+FMa;1a`a);80GmQi+Si~I@;;8Dp2fa{G$=0MJ+%qjpb^_(-ypv*>5)H0D! z>!!9)Gh#EcyCgSWtT|cZcy9duAq;wX#<90`-I3mj>b#nT-woW znK;n#B|!wRcr{(MOHtHxlh9!EX-Gf-iSY+0ElXU)Un)3$<`dZ6;B35h%Ecr<*b(o5 zcyE_?oB*H1^4V`V#`kuRb4}tX;hGKlA@M8Tqy-@cK^G^6fFW1 z>d^$5+Ya7u1b)pCt9oE0SIqdswJ5hT6Sz7yq@T*JUl+`~vkfzvHEFJ!#3rz_c-z|%0%JYmAaOQZea+QTg_ z#O#;9YepSUXo!slQVcXyIVO*swz1-hoG|7}Jn9G-l^K5P<65b4X`z~pSUJ$Cbrtl% zu{2yPM6j!HNlU?vvYAArKz4%i!~&GHb>#=rA5;3G(@IP%b#uk0_aKdt7>2&8Otg0Z z`%lYka6Dv^`3o?8^aN}MHZQW0fOUqn0<<0}fR2=(8d5pCXi4uDjW9XhE$@pEvoAD$ zog|U4hYG*Qc>Yt2Ge_~4?2k-BJwbT-DIATy7sVx~thdDk|M6cbCaxsB4v{teGatbl zu(YA6AAet_zrXv7VR{>2&8b%ZDFWmY^Ec8KN3nhacMAtJIQ%XBW&NKg0;eQq5LMZMFoNH-*>^pEo8Eg~`C)OI_5F*Se5GEmpS^ zhIn?{^ed2cfjV$Rc{k_i%Kip@Q8$jzhdzhPM^*uEzmZS@jjLPt6v%mF5^r|jP8I8U zbf1e$xv#9mW%Racqh&U_)>?B+zxBuR~MVitT%Z@TP0~Q@ACI^r&EAn#*oo;_MEZwTP{B#lO`>n z^G<*C<<&~upO3%!b~9b)M-HB(cUkR1bmF8EIkQ}wMqc`YTvPIN$2p6(uAF@sD_cn` z>lf~;Qk%C>*P*CauccqHse(53rT;vTEiH_cdOAnS zMG|ik9fk>Bu=K3>5S<+kxg1<3@w7xmU8^H)I&Mx-xw-86crjl9P3_!Pa&%5A^DCVM zPzTpNeHDFb-E>WTc}l}9{J?26&3ZGoAinl$(P<~%I3>af%ud0z-~ot7%GX!yV7EKb zIPW}Yt7h!VJa8Dl3kl8aWS<|&2wf}IYR;c$hTxKf3m$a0J*%p6KewydDwSMW&rXR9 z6S{f7Q~w7W(2mNrI4gGLb}ubvYby?R54_&&_@>g#K@U@kiISw9YkW8DXQv(0k5i|k zV_~=rpGy~t?w7hbPiu0ETTVG#H-Ov@tZAg=lub?3Nu~2@gB1g1QyC*-Py6ae^+g9lHwlT&vYN zeLHg9;Ry;0ld)6VMWlT9HJYa>)%Ev9`@^tAVXF)-$$3GqiL*+R;gQ%~#Rjraotg3& zC5=9?*BT|zU^{p8g?9mijGlt3ndg9{CE|ItPXh|TI9r#n5lQAKxHfepcZF4c@#y+= zDmzs*j9E~|Gh{Wq#Wxd309kEEKAtxtL(4#c66F3+sjL%$joEo@GTvS!9R9WB_QO$z z@Yv&c?Yb1;#7iuACBSn!b2wuDaGCTiMMWy3Ua27~h{CMi7OTOxZ1EPUlVr$|RB4Q% zRnD6)t?SQ!0uL?bVrgK}oC&1V-jIt9Kzq`TI-P$?N3YBfXEx5n8b-ei7GR|+n~+51 zAuT><@s8j}NSkX9w-Y8|+f^%Cqpp1B6V~!M@`l8Qjbk$Lykg3U{6v5sHJ%5-ZRov> zSx@<;lkUaV_lQYRb&&t?!?5x~c8aU~0gRaf4t=ttV@DzL4>W1$-3-U#;!*HTA`c?{c{&5*EvqT3&Lh>8TS9aveJA)c08Cg-@NN zIivJWmKeNf>d64x`g(ViCtA%5T5ANH|9rG9bbB5)Rdv<5DAki9P?zL5q2@FNO1{0r z2Jb9!e>~Lw)EE~{ucAH3{pYK&c8?Ye1dS*I>LOqWp1iEJ=!5Zb;WNU>S!5@x`=l(f zfNS|O5O!MRY3lM_h-$EatSKjIru?hn5EISlPY>p{FIfK{d+!<50t(Wbw9u#Iw6S<(TF1 zOAyo|Mu-%=YA>An0#q;%oh_PPBsw=-m@Dp)95EM8SC}3zMF*T$+)~d#cJnZ z821t{Nm{Sy^|s8H;`_`Z_-H$!|FpZ2CsA!y)Wqjk?I{7=8rU2rUCNRRBE4iVyXzSY zGEoOh_ytQXPM!+ZjG4L_Y_IfBpYq!&$*&2LMad)i+7&4*;e7?+c9qdOGJ=)U{&70X zV8lDvvZorCW`^rEh#ON}UVVf8hUBYs>ffa^T*Wr3uC89qT_$Bpce{~ac{;H#8N)pC1`>pX(%Ys@OUPg7eJ9VKIBfcM=iHgr=y=q@NAd}2eD#F)UJ43Zac#&`V92xC9;QgGNhuz*Ij%3$N_~+`t|mvMvx$5kis3O-73~o@ z2a{442fQyR|GiG=wb3K0GO5DWO$8>!L8!=V1=rV@Nw4-KcV%nTo$O{UP?MdhS7xf& z=d)X6m{V*OAldEelq7Cmjxn83bzbVQM(D4eFp5Oe5eMWMCi$Lms6@fnR<`a$7sLis z*PU1iooMn-u1zULxh2^>CxH@M%=K+_E=Y<^FnHK+3^Lr>P`|>9sbclqxrV={_4L5y zV0Va6WvI~j+;)hx>9FFAT%Kzx}5`gTP!Spw&~xG01dgneL7;`ym2<+FP#4UXcw5SVJQc5)MZb z9QEYsjkXRhlT$}B7e_8WBtP)jT~ynU+_1TPN5Of`l2_!E;88-fZq*ljpF}_UH3B3~ zv;vqi+%1B|21I|==t0N6~f9}-O(y^ zy|7kK|DH-d5Taebq5372h{Aa7Es9P1AqX?`DgJ#h?&A6(ioeGvLS>N z#a8N?l$oFnP28f%0);c41Qn}Hv+<1tr&2m$>&uDY@ibE-JzOJ5pa0xT+)$LO@%2xvlnJeWmlrrY4*qz-zqjjtC z(lp4UetP1JdkOvdcoBP>WA6abN%B{wd}+69MI_*H#1e;u({~%}c^j-xy7yHJ%I~8> zZeJ0#kE+_3{D56PMx1qo4Y|B%^dqm68jO*9L-=IY&5~NHjN8MOuhqv~J|wdV5o$;d zS7b%*E!w*(-Iy@XwuO-p2zOY4feFW0m9@)|)HGB9kHhy%S2Dc^!QON9vVTXy(vO7f zOtglVlWppWhP62SR zU$K3os8v#Lq8O@=co6bT6ur3RnQNxiKfjms0&p%sWwx%D(BSuWb8hG1UuNQidIS9b z$_x(h%!oMiUiqktf>?uFfli>WD8ym@icl`wj-UzakKPN*9*ppB2@FFXF2MqTf2T3b z(P{AlG$~8v@I#4*+;K*xt8@$BebYS?WZBV1$Zhq|#={2E4?x=-Wfk9WPxtn`8eMiT z%ID0)hV{Wxw_Lip?MUHS$Kt(7>!sFq-V#zV$&!kZH0hHUD%x!3gSSvSwq|oshXq07 z<=Ca(}~(r#xvTl=ir*df(gEmtQ*v6|GjoH8{Mgq)G~-}!zERy4ExWD#||-eJ!Gj|I6? zUmFx1pCsGi+%e+RvH^{Y!fgC1R8_^hzK=oOf$c$UUUhst-`7B&Ej@uE#+;YgQzE*v z_Q{|Uundt-a>TZsM)Rx{yE!&Ineg;7N}#(KxQO<_f8NPSQP%6 zoNvW;dD2x6l3wa<;)@dX>@X$NuW)7u^+l7N-mY)uJ9=Ldp?j@E7R!sb05+g|`i zU&R;cm0~@?=C_j8R9=@%OnlL>(w0D{#cMk&X(MGt_R?|=D6gf$%C6U(!w%QP>A1N^6>oAHI5-MnfoR)v_&$ot(sx8PU=F3 z2=cmKrE?a!kXg+1O%m&BMRSsh>hmj(ybmXQRGSz(6jM~=1SYUVkhfw~V<5J`(3{daD6QBb6$PhNAVKzuB6WEWT+g5TIq`^Sfz<+NHQy2Pc zulDL447Anv5oR;IFR(du$dxAVa@*|ps`x4%o)LQ;;Mp8Cho^`9IJ)B+Du-(ccv0H?Qi@Us%Et!Vo-`M0ry zR-#=Hizm$Zkx6LI$kTg#g$5jhyf(1-%ps6z~F`*fWR*sFmtURT8m2*7lH)`Ygo>WzK_YUYl?8QDs*^Crlh%Mqd zKdD)$RI&uc`uILK?n@Nw9XV9_>f>2XJnA4=tla z+sJ=^q+!QY2_xR@Su<8?YqFlKOi2R|&OIcka@VR%7VQ=AF&bbl#vLu7Xze0cyp|Em z&0%TNqj3)N@jXnqhavsKGlkyMF8#No{Xb#OQ(?-;*x;|lvbu7-TbqZ-@cy#O1a3<~;G6keuWR5}19o<_u$dEVjW=Z7rrMzK@?LBi>(AX_mo@tr#jZ z!b(2@>J5_IIg3j&Hy?MBR1u16q-Jl{0i7C<@PLQ_ z+*;rSG`ZnUTzTOr`ja=K-)*24rY1TmmF+e$|NzZl3!9mC1yztwJYf%>+m`M z;tOSf!nC9`_lEsktZXw2wKde5jq>w4Tax`PxC;AaiCPpZltczl-}t!q+pp zCB)xJOnGI}k8?RZgXHSxn2}+Lb8NsgU?QN1AqJC;WM*FTUauc2X~bF@x^C4ct7={* zDSjV@WFI0NR;8jQefPk8$5?R6?pp6@h~#>-eCoQIsBX>zQ!K3}cFSJu{Be5XTRpUs84h>42 zYU(ww=5a1^=ydlVuGk+gk^7AO*I;8=E(P#G4GIN6mPC?sMMvf*boBQLKcYl~!Evzvr2WBB!BB-vVi57Fm9(mz4pv&9xUxAmKe*LXHm|WF zv|)-x4y?rhf60N_ceswh&2CkiR>P#$Gz+3FgS(N$bt8$XeridKD(}MmUp#!3Vr9}) zIr_3PvAEit9CBWQ)BLx|aCO2l6T=oG8`I*OYe>rVUj|tgC3ia8_Yj!`DSh6OD&iG9 z(AamSA>NhMBgJ; z+0d0aRFqrOj|9w137+}jpkgTPcI33$p4?$818SWdce!Up>ha!D=$$-;keJO0%ajRk zybvGx!&$Pk%LisFg-Ab)KmN05rrc{9k@q8t_WXlQoxVp;q8*gSl)5DDAI^;#SI>Di zmk?HqtI#|mME-ny*wUq)DL8fJO$?K&J^dhGNkT77m;593bxzG$H!XvMJgw~Ux=|ei z`g1cWXj^jdgsvJuXyzl|Y16U}c@4>^c{zQz6^#8t(=d5b=2wE_`qq=fh)GABI0WHV z(T=XsbbJEJ}Gh_3*o&c0iR#pTc*1SUmSR-I}+XRU2( zszk)-eCr8S#TKuU`IQb_-#4(qwGC!p$HQm}my=)v=~wnyM~=S8jwi7a$XP_swdZ=g zSqr|4OC`Z@vO_tN8e-_-6oQ>CJGU!`QQ0tKYb=CKaAd zdik92Duv!5FuwAfSA8rt0h)T1g~xbS*Q?$p>?#YRTtCm{n>81oRToP%M)5+v9jIfy zEt*OeZqhfvE4^zxO{@wkjH8C>G}9tzoF=)gRtDVFQfr6&idPhJGc|7-B5@`%W?NE4 z%V$~So1)cTH#EO~H$MO48tO)i8qt9-uRr(ka#NxstIN&&;CdU!Z*`&7Xl>W%>?Invl?o zlOu3DjN^TsBF%|YlD|AsLtuWjHXtj^@}_MX=bEoKNf*Gl)xT7|%uiji9;VYjhw}}lmLV6VpOaJ-LuMY>wAR+7+%Ut+1Zt61t? zpVJk;_kJ`a^u0%qksJf8WuvvIdd8x0AL3=rSi4`YVm=AC4!j$obr`8+#6E#>LX z-C$`=+g8I5Rkx2>G%;)p6`5Q@DnSTRLL9lryAYqGO{!euSX2v@7nQe>nYck(Rd+wN zX53TyVm=YbWJ26*#zLf$}0qmADz?p;&+9$M7h`&@ZZwV*P&T^wq~M^OE_95Ht9UayP8 zD^!aV&6s8GzAGfjSh@wo3;wfdfxatCHVN3FtH$L#$`=vsmnn5sOf)YZCL5oCtfh4Z=R2D~SO< zqD(7b2Xq0il(KY3SL(DLtVYhw;)t^342_u2J~C8!L@VC=vl}@ue}z^qWVi zTQ-xQu!4BWqwRVM~$`$SIE_gpC)U*g^%`&6kujCavw6HDneWddcB;am)@=-6d?Hlw5bL$k|t7g`& zo;|)LxR5?CrB&bkDE|u1_??7Er61hQAMTW^TOCR^el`t9&mPLQkgkD9yapfSJ|(Hh zUI|cX?jNJbkIikWJNEv{j12J08}k+>gt)#M3a6{gQfBDaM#FhVwYu@IF*Q!(@DBD>_F6 z!({6=z_2^Fktu>(C}!)F$de43i7+rW)itE6pIK_*Nk~Q!E}d{Y z^=`^SdD{??vW7&bg~}oKicJ!YMQ#Y$h9qF+f08(c_^&z~YDz%DXzfP^0!G~ME}k@v zif&$+W_%nt!Cpgqg71RcfaI3ZIl9}^Wm$x@Ww{a+1CKZP{f~Dai7(TZSzZy(j4IK<}Q@%T`t$7;si>68UPYa~65-M6)5}KLjAMli< zBur|?fZMqz74qsKFAGxm_m+`i0xvmVaB>ouFJP`-0{7(!AyL(Jn7y3x+3%sj!wpPZ z+aHsqyyMF_{HmCET74UTX;LQ2IW1I8)Fg~eDlAxhJ3?IJtps09z2`%AVNijQH)sX{ zg^=tt)b(<-3!-|UWp%43c%9O#?= z7d{Mq{V02obIAEzZN6)iPZN<+6#K0^flMQIr(I%i^e()HoaA zQe;+Yu<%9!3kojEp-7#s7JzTUS!jVPyS-gp(sEG6nadiO*5B|^LUg!|6$qubIYk59*qkgx7`Ec|M8 zT4P-7rlS~!4t4$VD1wEa;EN4qrI@e$1^b`^`|h~M&nV^08xJq`M5_sTa8S&q?9Q3h={oz_r?m%> z!UEQv$*wPM`#yqtA4mzxn79uek5#4AUZZX{>F*24Rm82F8*iBP3E%Tjd!BPR;dSe0 z;@^O$9L`j^Reu?X8Sjt9C|mAjm`Z;qH>0Dpq0JVA(`Ah1ex<5D-EUhVQf#Hf^rXif zD%#Mm-4FYt58p0szOOphqmM8VPk1h(YjkmUquAwT!U>0jQ^wZ>v3L0ldtqg}S5AL~ z21;1?9qcSx8)nY(O{q`%h@c2Hha((Wi^q2#8ooH3fj)NFcP+X*?fRtaVh^vDBM+Au z6E=dzayfi@qGFQI1(uYcyJw=M+1JCw#a+b~vz?(cMNscbJVDu1I4=&ktc`_KYP*GP z#g&02rmcxBHqmC9n`y`Hd`8{Z5v@%V%l`B*+1kJ;yJVbe z*To`QeWb6nc>%#0P-Ji&rg~sm(retPTG_zfC^=n|dsX~0U)IT&um;Y1BkglS-PDNc zvD-J>dSN-Qm*^6UC2+|uSypH}&HL^myBdR6H)S)@HB0PR2g$iwoYg+whGJqluTJaR z82IoBm{euEaWf_Ilu*_|E~Cdv0zEW^u%C@-b#qQawAm8iXj9i|OBqSCu zo6x6r$2+u%^==Y++gi&Gd2E;Q43zc4J`Vu6f_=$6mZnFME&i4>E!!H$o~n)2H+D(; zjb?o^ats>tueut+)HrLGQ|qriYj9`LSpRy-A-qk!uG^@Hn2qmcN?)~HJh$POxSSWP zx!Kkx;PBnygJ4mK21G})bmb{Z({MGb%^7QZ*b!jcUyhoJ-7w*|%TnF542$A7$?dyG z?2MpTmDR<87+se-MyX|+y6P8a#hmXN^Lm)&33*u7+D&*rE50w2vbD$i-DoP$;3&c< zY`%FdQcHw`bTzLiw=M}6vk`6D&llmNacB?DYag$&+WRX*xV7!6UC)%gDdRVVkiD;x z)u+OK?-e<^0odl8v4kRp4^1?J>E^-c!*QgPv(LcXtg2{vC+BlJhvFgIp(8^H&;+dc zWScH(CuSf zlq>V7(D&?$V|ap+CFA`@LHq)?{lmo{l#T7nhvWH)aj4Ti)n3alI+J-qkc0>B?kL6! z=Qb*hS5StxyO_GJ9ak-3Li#@FM|rW?Wx8aFMjEug?k6s-|D`%=EVPk-{*2@E{ERjP zeA=$!L0O{a(5Z!mzD@_$fBL5pkV@FnugJP}Zooqm=d{U*d{AN%1=p5UWWr9AmQLff zAB>4W)Dg)TzD28hlj#p0JYTD0K=|my@ma+4-ZKd@ayE$>y_%AP8ru;6C3wdBG)v@l z&+-Y9v96sAKl^ZAsKt8K?|QW_;Z$CI`d=1o+}~Xlsn%K9)iyNX6D8((MIJ1S zH24HU{KCb{Z9$Y3WDmLRFh|}H?`Vt26`nqsj)9;~mU`mO3SQD`ndE)QkGA`ffVLdb&?A`8IdV_I|T_xUCABH`!K@N*}j@~1-tTsKFJedZWr2KMF6TDKp z)i^>oiBAq~IEZD=BlcnpkF^bid->NP>sjda6sbpb`l>_w$6VHXMo8=IZjJGZ_P!%g zi7uHmwc?sTGa^NlODx(J{VjT^)FwCds`Hj#z(%p+cf*8~YJTS85n+Zni(l_4F5DM6 zD*Yd7U8(jJ`qY{nUls=&H7orLihX|WDwnsra`6t?hVPP_ua-Nve}8Ba^uS)lf6KVB z$-4W2a|F6QOXfo)dM0SzBtJ26<^?nGCG%u0?pLpNtWEUlxp<}BtG&&!{1~Yqe@v5z z7ptS+*md^Lxb94fb=yp7^Z4-w%y70={w#Ve)oApEy0BJl1A5pEIc z^_g znbez$b3fI(Ze`*5)$%TN-=3;O^Qx>~ZADfAybV-E-@0jH3!cG7v8|9tk$ zPZ)?2{_olWq6BR>%}f9B-QTUIE;`89P=5Vi!?vRgqJ;m`=s&~#e@6QMERWyj`~N{h zd}$h(Wf-d5h#{H(NSBZE;F}QsW8v&BCtiLKz3sAb&YLoSI~sFqjSQWla?Lg&bk2{v zKZ@<^>M8%mn@~2*%rubry=)qBfwB+ZEq#f9>WObhMzr+|aKG6eloC6rBL~+mlpmg{ zrj zI@V7@b;gdcX#BH{vM+%YiP^!KBb1kwpRWfU6X>HZ3^&jbzJ+Xp7hmKL`##j)&7kyp zQ*2@KPHhWM%fHp=>=qRIob3GDw?L<1O|w_RI%1EL6xbMN>usu5YU3(Rf8DR0Q$^LS zUN(Ns%49Ej*FPb~0Jkrq?V>c5UyHIG>ty=V{f;dvr#L@`2|3CLM4r4WB)7V5t-{qh%9jke8~(H}YWcq|NbH#|1v@S->|3o3MLxhIaFae>qL&?T}F(yr>D z_;dBK=ieL(M*=T_V?+4uorLu30kV@Pjl?}FPpHplda$}M_4yc^YfGSmKO$G_0rf6q__aP%cofeO{D zQc76P!kn>CM;euA8YY@ZLz|VLTCfVwqSc@-s7tp^qW|U5qt=~xex0&1ejl%Zz6ro( zAE|u%i+#@hD3hWC+WoOe$u#GMj|S z9g?Ma_53?%3enb`zJ7OKhIT>{7XO^5{{v74K1s&$pbVV~8E*!baACyh$HnUtnUAsS z5fZ!!c0xt@_%XJsuoKnAs~=DFm&dm6$R-pdcx~=yz~L6I_7%SW*i8pJC_XNl1hm6qGv6H#Gc+wn}U~@idhBmAN?(eR=8&tcP_`p;BZfuLC;sy?#`HJJ> zZ`cRL7<|~lasOI5^Di(Q{8U`;3Qdpc%v_;2%Hf%18ZTRv*zVpwrl|TeUZt<&LjEF< zE+ux023`o0Ny`$}dqd$?p%~X0ZZJn>ny4s7U?4{9dEYeb-3Zw%w5Pj`1f5@Hln2*G zMiLSSUq`lmeelmKbMk>d8$EEXEt(Xx%bY9F_Rf7j%y*@MyA(>0vWd5DJxr2J8GNmw z*jq;bXRtm|fzkVB@FE2mz#ZxbZVaOVgod{YKxmcp@>?$B%xmOvanrp$ul7@;K1S7Z zjA2~g&X4YXVqL$mAokCC`WkVBr>N}NRMZ8~R2}wPHf~1?95R!wtw+YvBG4)MMTNIL z7m`PxMEuP>3Zh=UGXRqwY>@p4j1Vu?3Hvmzax598gSltp_B^Pn=B=_KpslpG2bZ66 z^aPKg{Y-~c`pRp+0bsxTDh=Kz$Z==_I-d?nDnXs3m2>+co~-$m+JM;%GGBa2syh2P(ELW;Tm;7pdx@VB(rQ11GiYhKH~;LWrV0Tuqk4JPT^|5-C+|R+ z%~7$E$9<8TBM!~s5#-J*sFwIwG6e_qYAyIzCAQIhw+{<+?`g*L{0rvy;ciIMCLK8< zXsh&4?inTBI2#ihMDdAp(Kj zybi{oBr7)Wt(td@cc?%bOFp+j`nj9TP{`&uDzTXm48uf zc&E`?tWvZhULlBeEh)(mE7+VbP04Ni^LEb|M;)!pCCV&V^SxRgr{CNSN-8(Ug+~g= z2s)ld4aK*?3%}8_UWw{9^JC2^9p=)L>I|VI&wiW16lK~Vhf%Cx+Vtm6GuEGukMp4Z zZtCfL)8>V56LkTDFmFVk_k-tN1*A}qERkivlFpb@^`arSwO}06ID=cTgGs%M zp5xT{45HWcK9}debO-4tN-O7t=+3~CEnbO$?v-(;5)tUVHt{^YyD&-9ppm!PD);{8 zb)r1VUJmw%muyS_&2{$I%T(FXQ_~^||BE|8mOULj{*cw;e?OiHe*9>)!u}sC{AaKN z--FJc^^66}=TC1ae*@VDz^#?nU-eIO|BUQ)N=Fx7aQ@fB0kV%Mq*$5KQ~#?i?{9(0 z4}TZ;pI-(;%zPX0GKBBhUHNyie}De}t%iSbqR=7yCP@H-l7bFga>ASCU=%{w7^vV#n?W^KZ}Ol07T87W8zI^fIXw= z{viFm)xPWi(Ch>`X?Lx}St;Y~(BfX-5TZ8!BXUhvg1$YEkipK+9`yoAt2FzimJPAsHpHU!f&|Pn@X&yk{A6>-x z#0>)&D!u@WS_crUnYsBljSR5-z+Axh^*Mjl)DkqTf({Ty|k%+@MyNNHsJl#|^QRpcei_$d~Z7x8wO#u@~Xk-RKd`zLG=vwIf&;r#AkQ$zQjhYWlAI{jqO$wov|}8NSJ7H>x^g{N;g-LnEfmwX|CJ? zEw)E}Q(tELvy9JtrtnUFuKXr_BS1F$LabZ8;m=?u9l^k5A4Cd3u)%PR8dl`t6M!t3 zabtBYf_E(fk>WPe6|I@};5eXnU-d1tjJb8qi?2xK0=IS)sIHHdtPWWM5}n>tml3`s zD6@n`;j=sgLZ;7j-QV=S6#E%u2Wd5-;d3OAe0q9~f)yV;Qc1yzk5Gqj^xb_yL;%rE z0o(1whyG#!`W}S=0O^yGDZ5juBqLh&lj_UK-pL!r^$s(2O@(3=mRtr6zVA+N6XxVz zznmz~8Y(kuZz`AkH_eg$6r6lkg~Hq5bQK5=Kx<4k`pbCZ^3f9Fj%dlLbCaacq8y<5 z+8Mw`wpmA>W;}}XR(1)g`ly~FJwsg?o%K1V+X06zN$}Prb_4v@0>ZJe67s$P;yS4G zn#*l_1Kv$>rq1egW07@0jmFzLiTSA0OTl<+R`mcV= z>a)oF0XQ)t0I)#`;FD)w{)a)Fr!Xu&!-`2zco!drHvt%q-Kzv}1Kwo3cB`3E+XqN} zCt`*GmAy*ZgJ3FrtJGk4aJ3!!u4QcMIC-hSUEiKO@_g_0Q#R$#mxb#qJpQG?d6)#; zucx}^>wr%5VTLT&eQsc(Mn*>ER64y66*)(b#s#4^7rPe$5%EMorPDm8CeUb`Q}`bS zNbmtU+hJ{H2?{sQn~MPd0$a#o^M@1R4L@7xz-+_}&`Dw2Dv7%L+jB zz!wN`v>%{Xq?Z$29zgMG*4BrBhg}T1eo4kDQuF?AjvC5_pvnVInY@B`N&mV!zdvSb zIQR8cWZ8x+=6@Y+0+e8uv+z9he@@=Nk0rT))aV=FGWPGb{C#e+qbMidWd4ix|NJR< z{x1VDaFP4_#Xo-tP|BmSi!MV?{r5M(XU+aR^Uo{)PoE9cI-^(fDy=6;V(b7QkMvHn zN&B3vePg`X&DY*ZVRx4j{FsxkMZ~&u=m$MsWD~ZD+6QP1rKRv;st_ig2v+ymq+!$B z@iM?dCVk;0`oIn4MXYYHUXCP}H~{hU zPRSsq`>*B#e6|MP1$H8c>oK#-+0r|1%zcM=4a_vAPSvUG1rCj*aK|VEOh^_Wc;DPM zbnIG$LGFNRL*;m5BPVkP!lh36S&8qwlJy6Bw$6Yw#vVfOYJj;~&GuQa8TqGGFKO`{MfH}=Ox#^^`maQxyDlvE@cFs-e)SLmlPi$ zjNms3VCqt2^S=&+tRsr6XYK(1;`6s358I?=NYgGu=?dNFacf`)&xGlVN=r+(t#Mig zgWXIS?Eeekpkbmf6%at~b#YhGHoYln4DWBe#AEg?G?MR8Sd5d2-|ZVfgTes1@k|mP z>^44-CScK{M}Yy|fUFp?sd2&mFJw=gn5AVKY+VLgC2-o&eN8(}oF0IN1G zio!>fx{b+6iReozfq^D>3}vZg>GT>n8;%u609B00RJiRj5Zu^srtl{LDt2YHih7#I z?-*EO)RQD=M?Ed)Wb?ef2M?vny>1fnP3Nhe^^?%1U{jgmcLBIQGU9L+ozyh(Z2Rcd zLqqwFixcG*F#C=M9L+>mgp>lIYCPSm^65>EhZDD7_8PzJZirdv<&7x3fq0B1?WbUj z+>0fMr!AHQ{505HaAN&p%btD2#5nAsba!Vge~U=nJ&PWz&NxAs-DJ(v?TuNkG{S={ z=jg8Vb}6u|hUw^|4JvI^f~ZfdH%yv}nC%Je&WFi7d>s&~A;SYEr`+>$y}z*e$3mk@ zP0bu-9uHE-;o1 z2iw@=vh=n>wRpJojdg@&KkM#7WHWT;N=c&yv3Kv44x)ZAaaq?yEj$V+zDD*Ys2uDc zU*7|4P@P-WsFxF)<`H-G1-y#@tH_1#HGM%ed6QY5JMa4!qIHd9aBA+;20)d;ZX=ll zK*VARle$Rg1gqb8)s{5bl?$P6c!>5~w#N)+OXI8PIy&Jri!S-$VNr;!IigbLXV zcOd)g+-%L``D;9Wr9Ue%h5!hjMdAEJ-J<8sF#1sF`uGcjN46?6UW934u?z#T*|%QI zTcmzbFz?rBra54sQS*T`evG~Y&{zI90S`ea$#~cst~yb^eelyAXPta-fZX5Yj^Kre z*ScaNR4>UG`%Uj<+*FS0fGg`pwts#dgG;(jk{Tkc>enh?@RrF^Pcks5vg7cg7v3!h zb7!ur2RsDc8rHf?oNDotvok<%NT1c`XY=F3;+0+7raH%2V=<4Psjh3I5I8F(Yr)P- zp+00PzP=3hF84P9RqzXUjK*nTm$xKIs$5q}Mf}TajcPpP>fF~>i-*Ncc#j*eWa0$S5LeTP(VJW zhWqtl8G(x>B;r)ld`^+!;(Qp5r=uxMx5((Wl(#GF6oYwb;ID#gl8XwX5tnkJURN}q zV_#Z=-E6~*14Sdk6KIt%T5(2lCHoBdJdtLnzcTFZj@W}tak*^734m>k+lBUq|&dEWxsc6t){73^=H`&GL1C=RGu(utXRe& zD`)~Quh`sy)O}j$iSBNYxp0wFUiF?~k%60-H#X5#z~u6M%G28+RP+l%Kdr{9K8uyO zs6*e3WvRfFof)^@zIhYtVq^OHk>zWE=u*M7D^K|=MczD%#47Z_XlT`5 zB>fp-jAuR}D+ERfV$NxoAUS2nV!i?rI*E7C#+ch$qYYyL!gtp*?cIFGsJnpDbku|6 zbQ8R7S48Yer&cOA#?xN&82Z8qQ1YIeh{oDz?*JCIDY_dzc8 zrEyz`MaC?YUGY9fm2 z_{niRvu(r8&1kUJoF(7I&o-`(*p9!TN)ngakbaoDS0gIq=voMfNZi6tVFY9Onr$Y$ zhbtPw$q)*HpWdb-fscDDS;Z79O34SEv83){^ZA__YEnBH`zxpz7{W}c?y_ZyTbz=y z(Nb$8w|_%@u~~a)t*Y#glXP?y-JGTH?s!qJty{!{CHcIyUvKHxH{XA6g_HnofmsH& zgS-OgMP*+6_eo^Y?w5_#iHdjK)CI*~&b2`R&qK8*BbVwcxAg%uGO0u~MzRC zR0MOknaZwQt3)HG3*^^ETmZq>D6-HzK`DK`+<^p6_gcIvU4j($6Eh01_;)p=$oMx% z%u;7nHPrn;X}qgd9at6MQ5tQ9->qF8E;g?wNct1|4jTpqEc;@=qt*Lo#TW#g!U~LP z%g+`jl8M+Ev$gsA4wLXfUfgso%E2_~0ixbm_nr8 zj(a3Tx`gZ6LaUOg1w^gB_gkJc8u7W+kA>aYp=*oqhVd_b7 zMBM0)7uKqC_3WDvZYk*dI_WR#FXm_fD}UK(iidM_W0uxxod!+YrbB?BGoyX2Qv~#= zwA1Dr$Z#B_GNd9BZtD{K@xmg|x5rM{sKngGyi{BPKyKHZVf~kEJVqT!C6221&b$yC z2!ggk`>qjhguSmyUiIWqy|m-+IC&kA3mO|fG(ctP!FpkI*y}0&(&>v~+1#!mdYInb zTl!+n@5TumBB~EzTaw4p!4$-gE(KL(O-*nP*eZo#I}YmMZ8J&$z+FxZuVS}R$+Z-R z3i(iRZ>0OpHI;1pR2I}kemu`}9Z0E_g@8cj3lIWNC`*}7w5yIT9=K@Bwb%>OSn5x( zWXf3mzP?6|ABV5VOx0Eh2}0&b@gHL09R9!DRq93Yi1nVRs}soO+KTPd1FYxv`jzTZ z`gjXx-XakNire0qq*XHheJ!o9wWu*fq`APpcf{>!UYJ9*)nN7JCU?n-VS;2ycw-~C zcD{}q^gAU^dGA6Mcv!-^tRBZmseCnk^c?8br3W^fWvNW*@&Gcs>W_YB+#_htsaLma z>-N`CJt^34rYX;?g#5@0&E{qQ*Pqh#l|z@L-n3?Q^K0*iQqk>WlcH^d{jHSNGa&L-d`=*VkIu`~iesK%11XUibgt|eH7L|96c0N~p zptpjDltu~-5Y=yMWxAGp%!i@n;~U7^SMZBUQpAHji{d;*puWCwUmYl5g=}~VX1JV0 zRqCU*Q~X5&wRdV}&InrQy)J}qOifAR*iIa>pbFQdaIjnt54P?x=XfFO1u~J8;MApH zhZHdHdnxKtoPzgGhx~A}t2$7}FiFN!&3HpI{QYx(rOCfrhbi>&GqB#bazP@-X!fL> zv24pbeVe_*io}swZj^kh*r#>0FPSLgnEaDZ--irwg1%3y{g&8@rzllWE3p3nAcQ=s zU`hhjJ*UYUuiBTP7&hMSzLFun6)t*A=IYDW@E{AHIQ74T(C}y0A)jeD#GN86fh=z! z%e%UM)x`9EwxXvQ*_KtlCY1)lQ$H$SeW&7waM>3m)7#P{}xtJlybR8 zJ$@?-QQsBKJ>`@DQg`tAbJdQA`Z}?lmZo>I1Q_M4hc2q1q=p^&ZN^jOUAa{ z|did>tai>=bWXm})d^r_n~sJfPxjyZX#e9;;d zvK~^-`gkF;Aue23=Kk74m3T>+ySBP>#z^leB~P$lgRIz4nwjF%@d>feKF&fp&5UoK zleEtoS1y(UI+$(Ga`Wyek;uDJFY!{{V8L0gZqypXq#~D{b1aj~D$dIgo^jtcF3e4$ z#-P66xLFX#tgE%$2T`4?8gzZl%T?5~ATDeRar`{|9HEtCnHhpPX;AY-PVmIQT6(|w z$bxHtqnuHOs_ey|R{!i{Bl4 z??1Zo#oL{El#kn0GevCasi3$@5ogl6;^(bdZ}Q%U(VP%W7didJJ;K2N2yny}y_0i_ ziOX5L$x2}b74$^G#i(1xs$20IDIzmIf%mSp6b^ayv)q5x=tIUv)wFC(1Jb#4w^60hP$CJ)hPevdtv7LKaUM6Ud5bh zL62z={l5n@^~^h2OpNL!F&n$E=LtLW_T6BXmVK^UGp&{`|8>zhg?t`+gEf4S~2TN5O8nQsnlXzqZ^J8heJ~-Vxkab9WPD z|6Ucck}Qc=bk*PDDQO$5&{2C|z`YZ-5rOe39dX-B(@e?8gIsajo{hR);(naqcDgPs zw0f8Uhn{&}8SU_anMiDdjTs8~vd9~jZoMvXuU0gfLidQMhxNoFyOwfy!+dG;gC-cIqzA13b6vC>?SM|(rWpMz= zDiG%5IU$*B{n`G-u)WU=lXz>fF$yp+DQ0<9BR~7y92`|p^V0Az;R5CZt?P3!D$)8N zOH8gv!sm|};OI?G_lfLz6*MY}8nUsZ6jf-J=pzkWeJY_RpsP!3xQ|+jy(lzGnOkq7 zvnNG($5eA}Pc|#|Zm=08mrcwK@LL(>w+ZJUpIP-e^V#kSq@>;H+gtG|>*~iWBoUk8 zTg-N>e2ll+hTrM=FQ*3PH{!>NYsxN^=4+(#(bm%op9$+cA8m`%Kj`(^J-H+qmV*<% z6?Ru_9&)2Q3`@AoPC}T}m!zOg!jsHWz55Z^r^wOjJ@4})dn*-D{c*DOHJAs*IK|NY z>C?17>vi|ZkimMxqKxVj-5`wX-v;T|#z-?uP(k5)rzDu6tuOjwEdviWyFbg#(_caV z_?S{{A9=AiC8}SBbhqVfON+X4K@3mkSbjxjeJ?*@>X`W}Ck$s+9M^$?F zWogj>B|`%MW4TUdKqWS^aNjTM|7!2b-=XgMe<4zFyCdBwy6?2u%UCDNhzOyO-HhxF zL&lbUi&Ua4F^#QaWZ&1Zv|upyDP=5)B+HEKJKr;r=c(&^J%7M+J$~@RT;@2R&pGFP z-plL#dQFjQG_&;c{$b&kiUl-k&9gwXu)aA4y)f~q2stV!ux@{Yr-0g5Zpg|jcXpu4 zJ^o#$9+8$P0WF~Dnc+*B@R}+K6#2?L7nXc!AzMJtdNeC88hRZm05k{F{wm91Kl3G@ z7|=X%J^M?S+JkU~KKG)Vp=Ln(G!_*0xTT%`5ztLLw@@jl882Ko*^zuf2$U$|01?~Z zt*MQ*B_bfn1I4x{i@rFmB*FZ}37g4+Zw*Kz^PpLoHXcF@npFLWPg{ ziOJ2>vs2{;w@*vpE6TynZtu0QV<4#xmKyN*32%9Q-j~T|g5Y(2ciGKx6c8bvxOAVR z@G!_LJWi}c_b!2B@R1SokVle}l2>)>#%-b0NTuV;ulE?2xn;(RA>ap&2ny3ERIEE5 zzjbpJ5dj+3g+b;7*5kDFf-Xp4tXRC-V_fH-Bu_mP!bA-3P^DGh(qOOY#O*upK8EiT z0hQUoSY_LY48~^&tql!sthaM-^`(oGp7R~Rwp1~b)Ojh^Z z<;j6QhAMI}x3LM*HyUdJ<>yyv9aQULJ|HGV zfa-VI-o?;^M;$j0xvnGHRwm-<6;T6%d;t{p`0(udIw)rd!c01O*&+^vf-2}In|xm67|^WUzCe}Ai_ zn-7=AdIBzFoAl~4`-Z*0L@Dwc=JglZE+9d+HbcI)K^Cy#9!N(%ss0oIyMvND`Vao7 zT={4D9UI@D3=BDCrBIq~e}4!aIoj}^jB@{GsBT&yJ75!SxRJ%(elp|G?x106{%$ zdCF&8mFfbyT5R6w&++>va;>dJq9t1$c?o+u{o{O%)QxVSrhy!+TF&%rK~jw zp8-F)GaYl1Y1ZLBg;$?leExc1W`uy!e91ViJ!|NU;_~pREgM43WRnjxGnFg-EWTG7Eu>GQJ1pRw%jX>hS3w3I*KB+iZsIT~7au#{>R zdd?=k72r=xbDJJiF58+ux>ScLu6=Td>ka)UE48R9&rhYU@oP2t(laA>%fBL%8S|Oh z&9~ac;p>xILJ2Z1!7QTgmM2jz@2PdknKY03ytq|k#G;wsTc3{E#3kqxLlQH4HMAK~ zQ%WpkY%fLj6ph?+7j`;H$~7h|doxCxC;MnaJ;yB@*Ly%Ka-bfrEZU)4ZQ(W!7%;L+ zv2*oIn4`pqW2p`F>H#+~2675batPecZ2N_8ZNz8{p?YZ|0}PTC8>L;=Um_0lxNN{{q3uM+w?iqUja7YHF(PbUv78Ugy^7{Kxw?h!Rm z>X0En2!b~oKvwB7`~s{*lMF;u&s4P(pReu2aa=%nD%Rf6l4Z)Rh~KZ|fn7^VU0?(+ zq{ky<({fm)BPVb==8TS$$;Ip@BS_wLLi=iVxwm$*T(5Ryn)&Ud0H{(N<0Ox?(|#kk zHP5$?HovJckS!qCv|k#U!6gUjS}$Ep-Duju5eB^kpd{6S`yw=7 zK`3=VbD{ECXsgOa=nD#{`ja^oShSVfDu|t(-re~KM5e9nT3fORHujLf-#QWwf;O#F zW!mVf2`F(jt9W=K;r*M?15ceQ)zVelxB)oD1G4v;m4L~YYg`cT60^1PY$S+p9AU<_ zzOrjM-A_xAUc7>De5Q-mMau1abvMiX@VRgA(km7~W}!?ZPU8W?Gl|?c8;5HFxAXHD zQ7=B7@~G)9?`+~sYrxa~1yRGE9(*F^jt0HYbjeK;2yPsPs2GXVp5BPD*5r}ORotM1 z9}{Ngm7SJ_Nrs1rkKYd#D|!b_^a}#dQ|h~PRJ@aXffHY^tg44tzkcY)pW2t}2kIdm z?A4`A2Ug{UX;3CuKWLzXC7B5T1~qB96n)dFlJstjg}SMk9`4FGeDTZ+LJg=~*k`B3 zv}0!CxFx*uNOGu$ED(`gZebs$d+oL5t63ry+$S1UW^~Wd4*m4vWt4zc6}MN z0((P3RCQke<_QOZ!YMuTW16nojvMg9bCv*uq;~23Dogqw#!i*ApXc~Z(1-0ZfZIG` zTlx2afkUZ8qZH?s-}n0jX~KZ~DnIDg|1}v{Cz#)V|FnbdC<$SL!SN2l>s$0cAI(f$=@5uOc#6_bgZFdd)~JL-nJL#c^`ss~AQROuhEd`faBJV|Z87QI)U{E*xme1KsW#E!L1ZsE zj}oo?=1S+`V`NMn+;notuMK>(>!swi1Rjl?&b7BS%bvg5heQfLTmcOSN&gsHQ zl8J5HbFP@nao3o>eDAHJ)C#4v-H0;u`m#5LUH+uAHzJtfQ!*t7d+KnI%5A0z~jD~$J$1F144c(wpg3&u2{ftGN zY&e}YpNoNqNw=Q$?kC0PHJ=Ceza|G_R{nMh<#e_5)csiATEu;p0lTQal|qR>BN4a1 z!%6%&)(#*GfG2ts!MW&%{Qeq?@JU@X6pT1D?*26fYR{_^>o#<#HlWv}&RDhG_ z9)}WoMHpTp$B31J*o#=!BLI)zw>T3#4KryK>|Bv*`_V~Y? zbrzzQQSFMdxAc4SX^;%MCx&Zb-2Y&$8FS(S}PbBA@b?q z3Gqlxhr3*#0jFVRP*#i^pC7ValBApU8i#A}5tZp(T$ruPEr&M8#2mm58Iib16eCif zW)yL%=MUm-h`)gyFK?kj_4^*%*=?m+@OT+?{wNzQ zTT_*Q8S-bR~iremY*MS%LBklyaHcyx0~N=M6_t?p?pc7GWZVr(7V&iJ-;j=$VI zbWQZajSqAGni7g;Fv?^`Y3IV9p(MS;y-;6w@v}AV{T$zT)zHh>WzVUJhPr(9zVW-G z&ZG$PdH&Lfo6*e?E?Rcu7hfi{d(iXNjO$z|jE-^Uwm@Y`E~eT)Kz+U& z-GrCye&9i$>=gW={D~P~`GgzSpzm^Y;(~pfdt`&q?g8MTn=w1xpsEy0!{OE+3A$ag zb#z`&;L)Z6$$UAB#WAVHjA{yN#}0{8@E0f*A3`#=I8m5|c-_IHh@uQ_;VsCB#a5R> z1Ft%sX|lCGDqsd{Pjt9)>ciSTtBKBIKO2CC17Y=>mM%kgWPtI44Z+!Noi@EcWmbAb zQc&IWYH4j`SMN+@qUqlJyVs&m^IB&0WPbTHFi?@keFOcn t`yAWfVYm(q%>Smn{i6T(wiSc6=&vbpju6Avx%Pk`^-J0+c^55${|~Jl@ag~n literal 0 HcmV?d00001 diff --git a/labs/00-setup/images/key-1-value.png b/labs/00-setup/images/key-1-value.png new file mode 100644 index 0000000000000000000000000000000000000000..512ec1f71252d6b1f92e35b1f76f5e2044e4ba55 GIT binary patch literal 60758 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

0Olfl7qaI;%^gm^ZAy<5 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 literal 0 HcmV?d00001 diff --git a/labs/00-setup/images/model-name.png b/labs/00-setup/images/model-name.png new file mode 100644 index 0000000000000000000000000000000000000000..454751e176003d532a432e8c34622c1a350012fe GIT binary patch literal 71541 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
  • {WFPQpar2k)+8(_peRLA84ElR#D7t%y57&rq?7>%9(gx;L{v!zctMqX z62lXI;qToty!UAQz^x=S{SQ~Wa>Sg{7j4Qkdj%ZeG5~Qzm*vkpS^pI)qn{o;z=I6; z1`x*Be;soIc`Or=^BVSk9*rABA& zSOs=)yqc|LRTk}V-{RT5Sf$I7xlbBXvhM*)kWY6AH}jrO<7bE`nJ4e7J_vrxyYJF+ zCLvG6J9{*^TIN-j;M%U`EICuvvS4+C7hD(b*Bhm2E5n+=Q-sARy@2+iX&%M`ByckG7Pjj z6EaNS$vjjTmpxniY`2rjWjFb?Wwba^)(R}Oxi=e}`OUPw`5Lx-gRsUXM}bY@t)E#t z9v)ltgu3Mof*i}5YU9td_=D_jK}4|tKV6lMdO<+`+zt_^w1O>|VZHj$bXw4Tkd1tb(B1Wi4^0)}5|x6A_zN-s;Esog?rHroHjf}SS^JV|#Oncn8 zTL(PsV}njgT~4(fvPcHf=~4CNFv~3G`*`WC!DG%ixr=~mA@8KU-%)PDW3P%gqS+G! z1>)%bYSYl~hH)070Z-`j2B$d3JDbO!#L4G|q9j`*klngkE|y@zI2u)ERch1sI?iuY zl^K|e2E^kNWWZ$N+4_3p3F_PNs|Q)q@0PbFtl3n5AskVu!39SN1ay|MmNMvz0Y~Z5 zGRu8>$a3Q_T1ESqu|?HIB=7>ScL|Fo{#+i(z^-WpsO(1=dEwU|nb-5K*qQ>7VHooI z+)$^cK`pe_bMR*)kbk)!E^Qv%N@36u1;Yexd%2+lLKbdPe@Mz`G#5 z^mr}Ch!juvn#c94drgN*h1<-#;|jN;y^$qxX3-ZjBLtsx#DB#sj%i8to7TjEhrA0c)m{IM$6jBDB~jxc=aIo#S330nJc~^0&s!CB7PVgA#BFf zvra^Jay47G5xHCAyKeOh2OY>{=3qk)OgL;X`>2>WY+*L)<$`H=WzqL%U}1G-UO(rJ zyV-H7{^Zx5Lee{+~E+h}QvYn=x@YeiZc5GN>Y@bPt z6Tp&sa-;krQDXL0B<=dsP-RR&k@}l?L=Mx*DE`n-mR@-v`= zP{IYbzWQOe?)@ub<+X#!rdVUMC+=>wKMSDBVXtfDaCk1duJ96-KPa!Q%spLn%Bq`h z+Wp}LDN%#WibQpEI1Kn%F>XrGY%nw>Qmb@sjeNkorSNo{SpP~?;wU3v-sKp8WQ!kIyHs$QD;}tIms!0#-C5kK- z9y8hDIl_B+-x<1JkAkO`2Ax9XztF%EyDb#7buKSmXj*HE7){+U>o5LQx*aX+TTDl` zcz1KJw)dU%$M|18x>}A0lglL{wmUM8&BIm9;Zfu(`m+R1)6Vu=%i5q^xBxrn1McVx z-DY*#hHl0)fd*om4yz|3maftKw$Ac5kLf%nnD4{Y@puNz4&pNXKEU{8ugbLA8%h}# zCrcEd=r-}TRkk?cd{vqtqbh?s;4d9n9D!6m{TZ{c$Lz7-rZ$`52MsW@5L*|{PlKZf2DW-YaS&e49R$q)n{TiC{URTacwz8(^Z1X4Zq=8I{O+5H!7wTTGv@*YN|;!lLqK6{mbq41 z=mmjDJCd?G$Yg{G7)RBETa(jQ3C)?0kzrfWzvxKD;$Dq6(J@4`aBC=CCSnm1uapkl$>Y8LR_e1*pgaR;|V&ZkLL}!bUWWkb~K=UQ~cj)fP zs%#L!gzD= z$fwl-xpzB3c(C_j*rQpiDvLJxXFUnGB5a9A8_JUHj8H1v9QmL~4A@J%#5Cf^{%Ugy zIE4sNa=#J8RD>QVSH}0h6z?tzz8Qd}{-muk%JS~61|@4A`|5_z$vfZc*_v3D?v2ja z8C8HvrhWXcRE`nQJknqpRGmHzKnA7VRRt>_0gZXLlBtk_N;F>B#y@rA-8K8f;=En6 z+u*2Qe^&qh)%H&6#r4#XL|_}FN@ShW5HiJTjn^-U_pHmy1(i@fbQ3YR`~SJ{zbs2Y z_0eQ|l?b=%R!FvwtUHwIVW&ZqZ}#~k!WcVe3I?gq-hkS>EuKFJeHn2@E`NU7QHzb61yuBi0iEZ1eYc{Qa(oHa2=er=5@D)TL*%dnk&q?fmcQ(a(RI}4 zxxKlEx;~e%1*MB&L`P~Z(i3g(KZzI|VPrB{pC~x9=NjyDFde#y_}^KuP%!vE~o?vg)A(T`Ft-w;6xILN0W2zK96*?#JnD4MiybjAdu z4NQMd^lgQnnD_3C*k1~$Xid(1fR##)onsIvolm1bh7#6{q5QiP}%-6*8U^ZCZ+=t2tG%f~Tk5xe%9Y6mi_5yv*OOEsge7B5t*;`FgBJt?% zy*=B9LNH1cpr{*Mwqpd9Fb~g&_1>$&#PV&Vc_}98U}O=ZaL-ihk~3@@7}kA;rIV;$ z%<-K`q_+wUm?~NLcwcTN_PZ3`{#PI3-=0_afow=5u>l~Pt4(#H9Gf971KJ!fIP9wy z_W;W4*O<8+be@|vc<<_QhPy0w!A`fQ2H#Yh%vIL2mWJIY^=Y@4GBdz)lJh?mELKhQ z38iDx#fSqI77G=_Oz28Y+kM0oZjQn(Pe201zy&P@ludNP*)ACo`9gI!+CSqqiaFQ; z?!U|DH7<9aiDB`_)U$;9@r^5OLNL+AefuUPHB3~M$rex1wBDp;b@5fQRe?DtXiWp)~%oKB)Q9e-kLD46mEYjCB-{d4CASRhWD>A?k zbUIP$wFw6I#+|u9o5dKEFl*h^kesgbzL_9~b^3S8`p=!G!JK4OZ0qN*?Y{&@8-*JW zh)7SX_5q!UbnwV`VgLUeS%pDE0 z{?u~26x@YE8gDvAIz;-Z00t-A7}f)Bjt61VBlwBiQ)M}py^&IG()jiy@#sGeWpZ~C&B`e&j!OXf^hU>9iEfGf=tPzto6yBBjwTN-Fyjd!ff(hAB z#<2U&v$Z`87@ZQ>nut6ha9sX+Z+7F8N{e!BJ1p{pS-^giYvZrD=CT4|H=XOvi_W`= z;{w((NweiT?3)oA86sBPs5YTHILmo>esSQJFTVXlbSHT55jL<|iD7#AA9@WXu~vr# zXij1TJ#>gsV6XGZ+OTFvQ7_tYsX-mH^Uf(aMv!=KE!lZfPOJbGV5yY19>wsL=7*=(*8`f+-vyRy_kV>Z0rw5NsnBCQpUeI?6}Mj~n>AVzQC$Ibn#aS7<-wHSLqZnD521rgWdAYterNTMV6q<2*H_w>Jh z3*Z9^cPt?LZojhRgPrX1g&tW^fj?*M%lMzJT)DQ$M}papfp0KrmKf)*;0TAA6DFyQ zI_tgqhks+!eu@#AtF0(wL?7dyY)|)}Z?Uo_y&n+xa7tws zdR$>hZ;-gp*MGSGm=saSLZ0NVmjq59`Ntx}9`{l1I_WEY{pN+JN3AL|Ez1 zV}5PmsXUvY*D!~EcIh;7Sha+k=6P$-ynx+IVotpM>}_iO22vM983(LLWlO@xHd)1i zo9;Ge{xy!Yel-a2*}7cT-t)PQP*9IhIP#3&%F1j40T<0zGQ@)KI`ZV#+~^b(GJV-} zgco#*Iq69)^R^&m{Z4Ee{JrP5GBCRPY)p_7Z1MRP`1#S%dWJb2I<(Y_;%jm{BIUbR zMvW(?qd%mG-33e!Gd!R&6r;b=txQp~)}e&KRvHh}@4v)hnuxo{xY3vNW+HBJflyY} zrkxopKM36xE$ttEr%y}(`+3QPF!?Mc{*n4x+xXTMC*!zwT)-#$ssrjM>x@g%38Igc z)`JOk3ix)HyQfT;3ZTxbH_%{h)Vu`N^h%dS4(wB7)&dgCWhTV=PxdEfi;ww91+rNOEX<+v)N8z1{pD7%U9I#};V|W!b;oX&f()lwRBz~>w!3-psUm2xWMqXW2CWESxrum?2)(MGnGi? zem~^V<8>oU1_co6N6+O^|0;i?>Sv}*>4-rP_ssq(bbr5Vz|3cy^F~@K3d5Q8&F034 z7yzn3g5~a8v{QB4&MU7$M&Hbnb+4L&#FwAp!X41I_uEEEf(O6rJ>#c-A-*Vy?yb=7 z29}dM&dx|+ue$V}U}U|s_DUX@d5@+co5esxJeO{1Tt%!h$IvFB0(y(RVIxDV)CKBu z+3__?fN3-H%C6RxHaBsETrthwS{S&4DX3lkD$p|iLNunU_0J**bmmHpn_ZydB32jf zA|5NsUKp`uwsoRQCclOq)!MWdw}|bCx)EFi(2QG!!6)qt0a7|JYmDS}0|V29bHrW5 zZAm15GT3&icHJJxcon*AGFXJ%-%nIPyYCkkCrESukeouu%6y}~ASFHU4X4hkk-6C9 zm{J~xmWN(g-@=&eG2&zx^Lf1UCixK?ZD=g@7!YNb%uz8Q*6BFK;f2wY*^3b(jt80B zrRQ0r7*f_{8!i2@yU|w_G7^<@m@cV_oE-*os22!=Q!tu_?2$B{9HXXp{V(gB_~4E} zLjzG99#ZGqBXD`W@PeMG{LPV)FU90m$%-(h6gN?j$&qjq$4HpR&QK2b*^(%5^MkLr zrV4{`bh{OCGGMvm3W;Nz%ILddq;%Bm1tD-*A#mH)mMzxlo9LimuUyGQhRL$yH=QGoqyk*&F6=-&aWm_7Ww(-%HJu#WC{Dl%moxQhJ7B*5*aj^Xo}sQY^tEt zZyy|an`DP6TW!<%p<=t@xz^Q*qek^-6KA`SEO4H5HUTAfHlMM$%x2p51;q6-iy}$Rv2B$1EdB|M+hIEFx~|^#o{HbVtk)LEBvtR=6^3GVC78ZKWgqU)d?;=@NkXM%T?S)<}27dLw zT+bNA^gMs~L(nC!vTB?;H~&ArzA`F~u3Iw!f)gMFcL>2DxI=&d0fGf5Xpn~B5TNnk z?(QxjxVyVG?ykWa*M?^5y?4#5b!WbJ)~X*!Rh^Pk=bXJC*#ng83z$UwA2JyJHcWH7 zpuKxD=285fZcwptPpDq;lgN3x<2VPPgBqQB38YxYkK0@xqrPho&)E2DK|HmUkpxcF z2}IXQ-BLUs4vNNIUrb`Yetx>m66Y7X--(MW>4D!Y+sdxCpzc*h-kyti2;X1dD&me8 zm-cf}3=etiN^&19H&nnLMr8Le+JM>95alJ4PBP)x-71iR5PEam@7NP0w$GFf!J;&J zOj;Vdv0RwzfDfxMvA5mj3LICa3Q6&A3&`*C5_xrX1qAqwda-&9X?WZtP}HK~t)aqK zPWDkS$qc0y2jWV89^X_tym%4OdggTe>bv*T_U?3k-!YC0WxM9tWSuf9R27}$? zeVRwgjn#7Y5Oa@vg+|%Zf7u+F^iJCOwB9O!U0c`lq$4=#ZkHh**Rz_6pa0?f3e-u3 zfrnNvlu8Nv(CE|6Bl&5T;`lcETmH(C%!|0|cc?~2*7vTuteY-nxnwe`6)QJ$n$(J} zBImp!o)v-CBmA%>ot(<)xwnxgL%gYycuE1)@%kaJ8o2?|nalRP6E2$-t?ByKs@uX zNS1N2iJ>&^OOw9)x2woZdS=a{C}Yoy+W(&b{-0DuIv@)&6N4#^pnWsRa}RzKZQ zx+!P#ADvS=Ma2hUT2ykHpSgZd4r*&&zq>9GHI*ok^Edad`Obg=5vq%| zKb8ivBW^#g9?{jBYP8=T{U?JXx5!R=vfL1be+lg5Oo-23`w#yHkY0(@D{|3P)}Vm_ zZo26!S#HU*5c+ahMRvOi+1_XkZQec#{v>@CxLeuvGMD&%L#mt7Kni8iu9XWSI6{TW z14zDBx3fGhLWqTKoND?+g;IGeZI%`Z(IJ^x-ql+(qr`g{u#1B8=|byonv+DlR>kgf zXMM@T{dFR4|EL((dq?O!SQhWe-;VhTYmM6$>T{!NByug$M|^Dkt)bgOb2GZzB>330 zPZnq3t$<6T#p~FQd3jDxnHE9Hw?uexuothYXuo(Vq2B=2R2_t;aTquMwv_w=U{$(= zYw_knyk4hm+KP>L18zhO*7M^~shEkRPlK_{-=FUE=b~up<@%4Q#c{PSr_ay z4G>FN)IZgY1s2vRI4%tB;Uz@gj;*?^nrhvaiagI+-@X)a)7>xsU1dCwdTTbu?Y_uf zNIrgqgIBwWC??T{>d5+)8-825pG9d@qWQ;W&x2#&Et}fH<9gkEGdq~}*uFxmYKlzz z_VaYp<*r#p+YP6h*PzR$3kG=*b4Ba0UJ{t2^=^ydvd(&C8_UsQy0Fmch!?5@zZd~@ z6eoZr!B~Qbc))ShX+Gr*3`**1;L%{0bJA{DyZlc${3Ythtr;EMdL*phG?niE1-?PD zmx6PA=yN1Q6e%MKahHu2vEbTf?c&vaX4i^2*8N6!mLny$2+KN};zN=hNSZyEUgz-_ zORV;^!5gJ59`(I@u-LG6 zDfzt80Xbk)iq(KYdqO>jXtmNIyL-mMYa}>#@ zi|6$rPbtcbZo}$7LSN%Zf&N;Hn(e2`g`4xMUOdJvMLW-2(2r6a=l3biC=#)@%avuf zwL+8V3ay%F%Ds38Y`);atCkGXnLuP+^qkV~R}HV!y*NLysh0_cued!r zVpC64it%re^#~p^2rD(&x@t_#(NkJ=`M#>h2nZOL47IaadZf?z8GC6?Yu)6qtNRoT zqFSb1@E7^jWQOYUK0My;-t0!O6Fkpq(7qy?7S?jYq+YUY`fphQoTH(rAzU$i5q^UozjI!;39zuijSi%L^*SN0b zWIZ&A3%?YF!lScIc_9*AAOhsi&4d~y`Vc%)u9(r2k*&HLExCdbNcaKk0DO-$5}o0i znFE)%*Wxx7@O=p}5Y;!S=NKYvG8;=>#>T7Y5B+RD)UKhHbAA#b_iCP+MhTd4b^oG; zS4xGo^ZA|Bz-l0(P6m^pFIk)ZU*_nRUb9DLYIHJc)~5^X&Zv&z-5hc6hk$tS%Piri zB=o80K7Q>+0QE&O@c?tOR3^$&;of1_+W1d^>)~&DV~f}^dVN7A^ma~_Wv>L0VU6^v zqAa)J0OaXxzaf0hpAiYLL#XDW+?Ew{W4(PYF?H{`)y?r@p>0PyRIj)0^WW}gxJwS> z*Zg3C{S`+m+6~EhgE!0AWFI=OwWSO!@R`-PgALe&$ zn6m5L$`B(t4;E=Z=eC%7$E*<^5(-&7unT81+BWghJq* zLr(=^lY!EPiX^AepK@uAwmdh6i^+5ig7qFJ`2#U1sclZZ)Ba3fj;EN2h*_Lf)JWjX zze9NDxF#jaY-w0uTlcUbwI!N&*dNbW8Sr<6Sf7&oBo|EI7yav>WdT66)mY8VHbRHD z0L12a2^VWc>p9|bD}1m{F;lzU;J;rG=tP$VG|~NSw2wEa*ug%kR$3K&5+1l~j>ELQ z`$t8=pcy>h{S=V7MrIyrYOwE2R(BwSN>_Uxj_9L6)8<2FVeK`-)}6llwfbeNb%oJ+ zrb4N_T7#kI1VuwP5oH68vE^LJK{@fW@T!SeqywdcOmTar2V)Zs@3Mk z!_4hrz2*ukf%MN3T7dTWBs({}F4jORe)`-airPlq?t7IzuN^lBgehHlzmMW|54GU= z1RPQJbOmq&lc=M$ZKe~^qvvx_sm#aS_UtiuAE5!!!{LRVO*BCau{gd@U^Du6t%bAN zT=*wZ-5^v;u#}3~h3P6L3^#eZ6UWo*ewXkzCT`sv1=T~V)uAQf)v?%NwJyd=15qxa zFEwS*CYpR=0G38@UZvzOcL1tc5fG;;%IFjbn1=d=zG`qlk zC|IK#$wO9SF=@qT4v~kpOJ?N&{foZ@dUsOh}5 zT&}K5|>#lK_SGw0u$CRZp-RlwVM9I zt`cw?R1Uqbw1Lmw;5MuuKNltQy&BFrcMq2z`wD>P)fgBk@nW%HkoXW$quHgN?WL9H zbXR|$TMjsS!yazJ0yfY!ZhJCcz^t7Y0<`Fkd=)zp*One9XUp^0z^37QN-s9*WCrz5u9X zT&m7`-`^~4kQu2_oV#Vm#G1Fb6t)`!7---^jembHFq|J<5QPnRq#t$CeSX5Oz{i9j zWGbl^esNwC;8yla{QHRe{XS(C&H|H4MW)sl1F`@qEe)XYREt18VU}d|71!Px_hV1r zj|4ZuBNmh4w`h=l@M!`#VDy+5h*g}l&pk*5kF{@CGIwKDHLPdu_~!%GA8N-!=$b4j(=|+w3m|lWpz8$W_88M z&xPQ$1m1A%0@1ozFPTl*V-kuU8*5lOY^`{&mGdwzbZVkru03%X4)XyqWIorXr*kkSGwpjJj-zD z>&@wCc*@u#hE4|-g+TWK|BJ&|lnQ#`{WYTJz^BfiF)(nSfcvOExZ|#OT&JKuY z`w@6YSk&QhBV(kzZ&gp3D2pDrY2^R=VD2AIStRzj}Q+&Va%;b+7%-CI_F> zRxXKq(uqR7{L`&b^XN7UYUuZO=UAft98eVcd~NK|%76xp3hZa;R!;!dPQM*2P2tMm z58)@^Zv73d&c&ew2Foo-gi!f&V8mDdFZDTFqC@DUTCFGMKd0D}Pb*?;osOX9FWxo3 z_FZETj$6{kH3Ia9K(G^8gVlV_`{l=r#e%9&`%%$Hz>0IiwGANiEa@7OHu{S=>K$8< zN(Y(d`ry-L?$(<3``ANWUn6IQS-j>S$F4V8HaXeVlx~Tt2EU#9MK!}d`4nYGU}^!a z;y=wyJAP8Q6I(OUCDhb&O2Fgr^cq-zEiG>bQErk%!d(;nTys2rMVJxaavV4{+suA@;4^U@@c3eUaN25n`WMY{l2Sw5zAXGk<%G zo+VnX`bFXTPpGc{1q4N|g)_=7k**rkVDEJ|h3UYqNFgXV%d=de$(FyU3mXsK3d6=D zK1qifc{yU@F;edVPDk zIOCptIu5AWxSpAsi#UUS`Y6$8G=b4vG-xYL?%xc2%X=fCF6w3x*nX|+2kaP<{5f8} z^W>g|RZ7Bj!3>|zFG>#!ZI_#ABROjS{B{pGn)cUoe;MeJx3uo>Yj_qg%bv0x3J^CKosaiV560Z4990DyODFlRQd>S zrB1$gi#F)zP7(GyxEy(mq?e^g806am|9+6e9H}&+?Ci?DcmXwHeyzF8zRobAKS3k9 zYH*gn-@ohc`2AdPyTI{JgaJ0m8s3_+&URBh3^_}Q6n>Iq$%G&j_KR@jU1ot8VqNJs zQG>(t#O%{Dum;VUaP~{J=j4a+Z!F0aIYFT((bU+Dp={8t@Nz=#)2*>;AV`@8nTj4Z z$%%ToDu$S~TP5kcrMULqM10E2`jBIo#ggwj6j(92kj3Gc=zjhtm8jN`E)hAV;nVWD z6p8J3Td{@xHa_<6^?V;W68YoqEjej z@>HW#3)+5oFE@w)yLN5zyLv5l_zwFilq$Ym+lnA9^Y3y)H3PcrPu ztuSPqGPlR>s7$3y$7$Ynv#P$TlPem^j+!%Gic0bpvf!e4Wg#spzAgCi7fqzgw+bN1r4HPdj_ot(2R+-UeOo_8s+iXOnyzR(LB4 zk)ti{Eb1)Vo;_{J#AYdsNYrECoKd)4y=AEzyW!ft2T~Dr>7=?ur63PEP=n|o$4fi3Sh#AuL z=@#*y579&a3+@MwLp)R_BBM+IO(bBaL!w)I64TklkpC$Ln;74?_UB`yhI?q4P?8@P zpQLz7HTkTzaR*$am7S})CHxFZQ;;-))} zUT>^#{*2q$k7IOc_1tUNo#Ekk@i6R}kZB}r9ne;DZR2Cq_Y$Y(TD#8tlBoh)TpV$p zS-8l4*N#j0c5HzaA(e14mKB*TMGbzRcM-ZdrQjDx`lIzJHndt{AVvQ`dUtPgOfm-9 zW+r0qRtb!;>_EHiH5ir@_W3=+tALLSJ>l!zGcGR72Jny51(uqmimpKzPaC`PgZL0! z;ZM2Ygk9iev>Tdbt-iEy(a7S_&D03>N&`9ENnZ*J7O{?`2=XkMW` zQkJfL^E219MPy@X)10hW)^DYnUEv4ywq=gfbkAcNZt~x3-|B~7$;KW#C7BBe>zzgC za7vj5;E>r~S@y`g&lCfG&9D`Nx*rAdNAoB}W7eqjPe~K9wi=g1=HA@d#BY5q1F-qk z(hZ32Tk-Ik*4An>C}_dt*08gWr8MzTa__0-)Rtm-Bu>qiMQcQBy}5VV>#(FB;yW8N zT~Xfniu;+aHXGYP7nHiwJoET^I4hxe0vd*Q?sTWiaZ)DQhYeD=j)h1F>#!>HBZ@hJ)KG#N{++^ z9u>_f_a+IcJR;d1Ty{AY*M1_ZgCb`KeaU!Y!vvg6s%J zLEg+i4Z$eqkFURhMIxR*L1s2?0JwyK(&&kd57v(n--9g%z86>CMz?o~}VXB?%GvInKtnN!ptX3^eKeqWChMgt1+tE=srC zBKle=ADxH3SRm4bQt@xI`cLR=fOHJ4sQ_4!muBTQn;@+|W$16ypR;wMxImEPJWoL9t2cwEE} zYR~qWkhfVQ7vA0WMMU`T=3B+INn0cif1Sg>GkJ}-trJ0f>3pZje#t>>og8OmH;G>W z7RMv+E|{O7wZ~BQxga=5)FaXOc_?%M{Gc+B_vDA7Gl5g~I|y%1R)1yPoHboF92RMM zMi*srfw`Auuy+Y8#}d*I9IoX^4((LO6%0&eChhYiz zwA-Dazr&psw0&IQbx+kEe~CrStwyEs^^p_ip)&CDf9(ZZ0TibD18t0|V&r@*H( zI6-D>jXuCWocm^DZ<;6Wdd)N6JFGn@s@aPBwP)T&P-5Wke9-<&Nc!aoVK3mxw~+`F zHGRDN6&+?--n7ImT<>!U4@rtz<|lm)5CJ(nxE_V=MTHTX(8GAh&e0;*(2LvzHe#la z3iY9l_sQb4Q)!T%=Nr{T`lU#?-rbMo&DI+mJh2N}0~pxr_Fx$@!N^TpcyUpPoyuU0 z)bpFy>Q^*nczYpgLjg*>$;D>#AcG#@xU}453H{I$gzfSavPtYPt-zP60jm8OQ7Vl^ znqsDq)>N_0w_=yqWW4dB=Wn3e-16e2M1wVKIf3=jU{fMs+N13Kr%K}@MZjBos`|;a z9-9r5qdaMqzW*9stbOk_@x?F8;)#h~RCk&kjJyiwPrIbHtzA5C8|$mG2jtG$4L5x1 zZvKd@u@S+%yKbHn{wu||%%Aprk1RAV8UeNilNcF6s*h(RUstW*R^z;GvwwQ9gq8eh zPIEtPnGg8enGslLKqwmIX#j-%G@oq_oNEEx4ZcSyFf_mD11{8 zp@Wi_=63A>DOt2OYiUo-g+2pA&Of1Y1_ntSX6>ekBY)9P8HpbDbeUmdl{-O0v4(r@vrnsUPE^+hL?Hkz zI%QfltHR3V25_rUKZl}dAZHngW`Re93~aKBM9O)JxNY|`i^#1q0#tb0>@&^T9oPUb zmMUZDWz?a~`j<$!`j$?iN~O*bQY91mM8Y25t_iXG?|oDwzc^&OUQj);YEy--8Ix${+&`E49g z$_GbepBTWWT#%sJ;5>8o;4v1NU-{lb;rj&hc&X@!V(*5ht)rEmnN19;8EqHIm<(Ix zm_~Xs&9qldGnVQ~nQsto`+S9c3CkgPyUFZm@Z8&xlg}};q7t!VVw28r zw{1b!1zvbZ%5B6+1CP`Tx@Yjbcs1;GQJ4$7`v85)c8yx}3iEshqga>k@!m<`KJwgS zYxUX7GuNWk(FcTlYf*jsBiHk7uM?R23hET+3R-Fz535i1L>X`|?22}$&vQW}152N0 zo@1SVNGrY$$^5-}a!+0X_2D~9Ec<|_RjE6 zH73)hwH@H2-$zE7s;xiM2^a1^%oz$opEh7ji^6`c$D{Ycm;4ysCu2}?M_RfcCTG=Q z4WcEuxD~?bSK#~JW$6(>+~pAT%XVkS1Zq@8t+LjRonV)m%|M_(!1b~-e|X`bx&O<>K0VJ2mSOP%!CCRvF- zL)NrkNZbFkf82!Hyb5h;v9u3;%jm&c%m23M?QOkQSWCl4dv>UDHqOc_IXV*d#h7VPi|mOF@SHQFKA$v@*ii z#%XQUhAk<-W7a0$W-xpsXLLVVQE4J0A4suol*xYD-hKU@;bXQgZ#<2UJ!KUeX?!01 zcTwBZ9MgPA{!lE_Z6IV;eoRNZWCgPHJh3)lbW(>%8KSFI=>pdsr0J!Ta__w7(}!an zahCc?%&vN>bG?w6PZ!82b9LYEUW8?o2_sgID}NLmmi)$)QW{TI;55MN5no9^$G&$n zMSS$s>}+lAa{ah;KN}g^6jUC;t~u;Onoh077)aUSWT_ zx5J^1yXKTKt@h<(oW(+sk!5kvVM@0CBPPI zihLIsi1ct0znZGAG%02X3M~aJcQd?Pp)WnfS1$A%cG%v-!q>FQef{Y*-4S3zY{}KW zQKUPN&D2tMgR3_1nsoq;5ke}4877GV#ZigMJ~q&55klsDv5Qn}%-4L$U-_Ns_xBTO z8@T-rqQs+r|YRLCb(H95Chgw28nH0>Q5p3R1 ze9$CoI`6#+cC!(ETSNQ*9{KXkncuHv*6~0MMW(cIvFq*1l`jbI48vZOlj};p{ht@~ z-$(mw&~Mxjfw~On5`Q6m{+A6wvGarg^pgFJzQ|DyZ1W>9^QXaYMqt3JQ`h>(-q3Gf#s>`%0K{+}E3iT+3h zP*ZIfk!5CoVn~}wAOHvahYe>5bwZu1HbZ4D=wGg>lNG6$-|_!{3gDub#u<(z|5FP< zvl|2mYUxd{Xt}8W&(r#!KcHFzZD3e~;;;X04?B#POyeuQF)7h6(Ej7*&kM8>P|r2| z@E`vT{IN0M1wP28Yw*jzy<`bepbd#-VpGq5+haxIS14D5p~?II@Ff51@#aJTZRDJU zSBw7J9yZiCldMhrF+;h2>^t30d>4mf?!UA6QcV;|hCb5+7-G+k;%gzOwW zay$kc0%FjM%jm9Zt3}SCRGvSro-hr-Xqy(8H4`E;1m*KT``Au8U+!T6Jdx0jVMxZm zwI{*r^HDW@>=w*)DUvxd!gsn;rwKlHgDD>FhL;|Xt&I!`o$mBzG;qS!i{KjRSfqk# zugL}9S;F<10mam8yi$fBBOr=N0-tZo0}4CDj7Lp_S&S>=vls7xeoZFktOgL3nbDRHI|cJq1Y*5=^B)Na1o?Scf;J$4hDT!7AEYW zFq-2pMs3uych=I5b<%??xBUXQm~`_@%WL~>79dUI$yp?_%7O(vMqpT`iC;5$7>T9} z9`xJX)CpL17`(?bKq{%!e!xqU1GH2514?4D05{3xc!6UoM^Z*Mo*`!Zc`$~y+G|zt zzRKOjr*CP7F>ZHoGB1`>O3q@oxi0^6j0Brr^E(Vemgv|5xnaPyp6<^uSI$z0ep{4W z^}2MV8oN!wF5s8ta0>Sv;f=QhY-=2z`kjUnn3HO)7UkH|#n=IZmKbQs7aWFL0(Kpi zHrSO4U#wlV%PEC`(?vY@6I7@z!}~K;E#9xGQkzw`SZ>tS5=o)yO0|yV2AiR+J`BWs ze#wEmgCm!V?y%JA${A4*=S~0VWIRbV%~8qP#}y) z3;2s5h`X)|yB1&y$9H3PQ;2WW@)RSr&N!Y&Jcy`6q&&1j$@`uleVvRVj&wdzNGqZx zdsl5rI|bEj?qzI|^QRv?>4R+AVldIxMzUmDuY?n;o<>+sO(6mFUp+<@1b*u2$tn)t zJMO=e4kwD`v(-0nf6Mq)t-`&$RQt6Xco0zSvRLfF?}HvfvrEy{nsn;T%M;A74*8-% zkSy7GwhX6c6l~}SAX78h3C8_eY)BoFMb(Z;$*Z>3>YCSJ&#D`C9ln z`lA-r3wbW4vF`4a*Xe?}CrG_I=S}lMO}EFa31&WyZpnY}UowCu*CwDVbXGl38se+_ zN)aRxM~d@ldYt5WEaWo3?r^!9PFs3p& zZ1VvMvD@sLi2K#glXY+Tg5d-@abG0quOfPlc0T!v89D&RmldDci~7XNoc(C7JmH;e z>|Y`)_gm7|+V>K-i@+kcPmjTtXWM=3gfW+C*PyfO*Q zNqn(HzGUz*z?wfBNwObqg-yLJT=_PO;H8T`UnRGr#@E`W9jmW}jy^BOeS|W@*vMjK zWvME`G3 zE6HjI!X40jmQ4YqZTGIq7=dsYput;W)L{~H7Vk0(Dp>4BrqH_cGU|^m%bg@UEOWmD z=3zHpxp;=JMT&abEjPAhe|1_-s{SEROLLA~T@=VWTvF*C-rmINV>Dx?cT_ z(a1kptCI&jubI)*9_xVaIWkTzw41II`G%*&Wc=8ZMcyp^zh_H3=9gLr;N}Sx=cBF^ zVl)N>bMKc`!p5Yp^~QovsDEZC&Am5AZQO45sSdOs_1*Ij5JVq;IWF}vGc57~`)|E9 zVb&{djJ9VeGh}ySEXnzD$zd}k-5ZB{4P=|}a@x#ExN)4sVgGT~qh9JP$@=vwEfRtGlYEiuLnuZy1!kd%2Py(^3~ zLJ_2S<`Q#^N353GKvju+6`Oc8y!SIzW5bEe^uQMoXDXj0=ee7RHWbehmq{V~Q!6ry z-{L-j@ta0PR7L3!&8Oh({qrK}u~fG!MTQP4pi0S{>SY#-c8zREEFG&W@qIT!`KO^b z)t)fkvQ|GHot*A~>kD8C*ukg^*8=_b>d&W>`WINamK%etesq=x!92)3svLc}@=vd5 z#FZ6x7GP(?C`sV+OP^0IH6Z;m#Bp=|l6awxsPaDZYW?Rtq=!l&<#*Ca;UB@HlDA~u zDim!VKq0qvP^MgyMUv^xI7)l{tNu_l_vbigW*gaj)Xkj^LfhRW>sz{Ac97}TT2Nw- z!rHC!5=)1L_TH!rf{kW+9W#aI1q0mzv$a#7Wse;d4Ro^-^SRxd4g zjV+Nf%*>muDwK2%8bq0Iu-?A(<`^)2S*o@iPhaHpdgMPS&}GN^U8c(l@X6`v71N{9 z@tF^27pp;cyft_E$)*9_46B*<=-4Uep0O?Qxz~WodVetU3FMQDI1bUar{y6y( z-R0f6akcf4Mg|?ru%R}u^C%Hx!IXGP;GGqq@}KgPBBUXl+&t)mZJMq;=sXgy$nONg9J> z?{GBOrk+=cc9~torC8W+3ezHbE@oqU{!WB4K~-7@^wv>&>6c2&iY}O{ zDNZU{SGGrf{N3gix8CDfEWPWyp+9e}lxy`4@0;E#lFt^<0yD0(pvwV`WFTgYhwJ6% zNtyuD$!;l5$2luTjnZT~b}b(f_4Ba}8)9|F3Myp}z?(s-P$}#EtBd`(KrGV1J`BQZ zUiUczEE3+gjXrb5Dyl_2l#W2{gK4?TJ=T1uKN?HwHJT9pt^1kfW84F#KaJ+HvF{VU zq_mc;W`Fd1%b=yKbPue-JL!Ece|%a3>c41vX$6+*)X6b-b99)F5NJ2rQJbx@>FewN zpo+SmYWH*}N1QxCv2zS8Qp!r~@4LV4gfs+2UnzyyRl>r$(z&lQ;;aNz)L}9 zD3QqJQo=~J#VW~SqjO!lFnqFXU1e1U^MGBb!NxhhcYS$6R0fNb=2mS~>3Pt=do;d> zBI~9}str;SQzF!0u}6u-duuV9pTljbrfIX@N}a@(K7R=vr9_c(|JirQl5KrA*oFB0 z=vEmk@a@vh$ui&C{%N9nd*Zg6jC-=6SFNg3JN zk)4gMD;u)LKUY`24$D>_o|{c5 zo%ET$bg&$ai`H44w%8uiL?-y=pbJInZuA={}INulrV%gCw~D2dp*H;tubD z0#ImPW){EWP0S8vnrdpT=M^(WJ(A(@J$txj7H~Zd28+6uO4}-Kfe4gem_Sm##TI=2J)KKS!QKuLw|N|W zhxGo;qoh5wS>`Qz5WqIyyKWV1a5*3SDlCV|#vT zaoJ5NQ9Z29I@(oSb(cT5FlcPE>B^uUUzFcf*m&Jk_SSBYU3O|mP{kJyFd|Gmdz(-IAHN`E?W3Jiq?87XZDF)9Olc^xOb-4nvLpKCO=! zA@c1(xmdaN!+!L;pA)v8g_s;Sr{_;LKLCL1VZ!meTflg7;O$d_zTVPEulD6Tr&NgP zQg2lv=$Uob-f1_sVG|Xa!kokw?-tR1UFEIJ*61MWSFNj@*@cf6S`FWATW8l*0lIP- zdS8-lLbc^)75x;DB+>I|^qm_amdQ-k<*yLCi5>08NYWk3m4oG?nT%N|{T99qwfd1L zJzNk*&8*})Y}-OHn51nyL`ZCmKDAHcDP95!p(78ai}qoH*lpU3SBX`3lh@acb+ zjf-WmV1fOh%1?8gxWBvH+xFjch4qT&=#bJ{H0zl3a>xUb%AXd2FO&ifCI)g`K|*%4 zKqu5g0Q_#sG>}s8YE_3V+%Ero5q z(^r+P-VoX>&l~N}3>v`je7oUsR zIF0snN5bsase61|(2XAMn)RfeUyFZSJ`0Tyy7nO$gGtU+Xj4z`EnzEc>V_l_uOj(Y zix8Qf-j1L$s@MD0>sae_B#x$Yio3nOTU;1rL_=bF$uN@5?YEnv?YdVwg&E+u+wAl8 z{YKX0N)XbVS>=k~)WfOz$WGenw`O)nRYeNe?a=-Kmt4$N!Ih3X1fIrMJ_LDk8`d=N z-tNg8j#tkf-&z4Pk0V@vfRC?~3QN8pZv>@c6Nor~3sA$@CF|FwLu*KtT1^&1=pFJU z1%2>Ss4L~dNI24uZDCD<*fgx@{c$VCY=afcP>Vj|sa;tLbpjr_0vC&p!^Dp-Z!~-2 zeU-}miR)a=6@o$N9e>9b1 z-^tR&S-p`{<|x{!1QXEKOPOb6DTim z7$@lT<0RG%SQ;~yB4abEm&7ZgNKp+ZQUP%RPJLc$S$y3eBRY%`&V0WwS)zIu`;dyV zE9FeUa`E7r&vs4Co-An)urQ$mRN8JPhCNPt^mk|bfNxGS6q`ag8ih zSk}aLgQN)G>0JGFLx*M+$o|=LN%nmS6U3oApt@Q}y>D3D>8?gm_qP^^C=YRz*<3lCPNAP{ffYU510| zK{1Qp&G8Z&Hgt7XBe|vCHfDW5DX#0u?Q_fc>g)i?bwbr`)PwwaNkQ07cN14^!$)e1 zrRoeDda*x0E4d{Wr%XrRRdS~m=*K$l3^CuMzn!yozrLWWHXf07Eo3Ql+#O?I=eGP^ z+L$*YG+P+sQdU7yQZX5}bDsCCCP1n!xY^uUC`NSRHe}#v3fsd<)qd(%c;}r%BN(tB zN57Mov&wgP}Cky zP-BP9{+OMd<1Cc4bg2;oeMt~$arr!&T$SJToT?LPt=M4NqqA5z>~i_QGnC0375|)D zlDfxBk9Os%xm3Vxk-^GeinHN7TR$B|5Y`6_`Xk*-PGUj|+8FIaEQE+#LwE5?<@-T8iGwX<@YwJwO#*(oVQEi*`W@=(i(-^2H%01JT zr;{G*onxXitgqj}KrMz7pGlU*beBwRYgoXUu8eCpsPD&6^)7y1TH?;lc#24-opq*& zb!_|XJGpeVby_=YUlu)nrHnlPug$trZ6453i+lIouLl!lMY`=^aRSJ*q+C23{bd3S z+%hh9=#IFub?%-kii*#yE=|H?QJ5uj17#I7o~B$uRLN{{v5`OjYT75is^qZcrCAx= ze!JQ3wy`eqAQ0hzRQrhkXD&Lxdz_$lBvidbK0@&NOToE-WfUv44rAuJ!5yaI1PLoz z+8}iJtUc{~G;8qaHusA*lb+%kI(u6SMBPdGL!RHlmfiP~<%9Pj7gF9syYhrrZ8_g} z55Lx$F!GqE!VHMZ56Sdt4=@MSCENz)|g2p6cIx+q+j%RCgnr>tVNlbF)G!-*9I>^@}#% zM#08l#yTBYf=6EB3bTO|w#gj!>109<%C`oo4JTAXs)ZN!t6L8gf^NAn>c0x1f-*0e z{QWYpc8OyR*VGSmICJU=mff!dMujduqvwae7l@O-ju{IPVlRlTey6IZ5C-_QsWyQ` zt5`Hg&nD5~`CkLO4q4<*;}TDjyFRDLet)nc{Cumu@>z6h@!MzIWuaB;0%3XLfhN!6 zUHsI!AZ&#MBRwFCDM9#>!5hkSOY^B$|k#mF_N}2tzCeE-qQ5NcPa@B zjU0(rK1Z{FpV3c}MihfSX9+wh!P8G%|HRNjjTFFK6_twi0P1g{x>Zl}A21-#1$nhzw?7ABlrJZjTr9 zR#n*bn)6qcoFuM6fW-nrfNu_W&%-k!hP_yW7^XEkUotHy_(lOomexm<`&?G*xlvd&w~VHhm8u40kD{ zZqANwvOg(#wQPS%%D9`<3!Y!vinp#sNT$lT!GogcpW6S0ZIt)Lo(B1|!Cv?B@ zLlpN}XjD|cKQ)>NH#dzRNN_%o)1me5C{#8f6ZxskTdHj#+x)Xj*fXp5>D38h)v8sU z9z*JcG%b(;Olae`RnA>}!{G7FYx!ff8RR$qOImLVhG%${x z_h=9+k&6{33=@uL%$^5sED5?E+t$Y-F9~XnS20^WF`cG~VC#-6Q!uO^7GHGsSzn!H?GEqC3*s;FLVFs;vh|wt z9y=K1Gdu#&kD^|hi@|Q;#!Qm~+U`~{-;Zr2orG9&;~7(GOy@BZ+0!drZjRivnhnc! zo5A|bSy2=h(UWqFHmo<90&@p*f7}ta3`I0NgIEtqdU$^Ha@QyxMVi)JjN%s%N1hDV z8M=KzDPEA`luqa)SGQu=9k)0QI{6Gz3djC3YdNbP`cSf@_hx?#Cy#Z5R+nIwU?S>6 zFE|mN2WgscWz$6c+Oz7P z%BwU|yU?-ZxbvRBx7(B@xJhTiQ<{&+?)MkQp@;z~-tlIGVky;_f6_$iF;^TkBfj5f zT`})3AF=v`vO8bZL$V(SY&xbiOr?ppWugp6<#HgomKe1SVj#Rrh>k@dc{aC@%X5OM zfecp?Mf+S@+(6;f=;%-p(^PA~vE#`X4|&xX6P0_FI8`(p=~Vtr*jx zSgA+~krI5Hf6PuaB*b6N)mdtmedgq}SZi%E8I11Is{N9)BGFo_RZ`>Qkz?h1@p`x> z|3@@7>PmIaV2SF0&>V^&7qCW}M1LtSO=*_>3#jk7UR#H=6>21=RahXmYyAU@xw1c^ ztt@`Ri3}Cc zLZ{oG`A!3;udVsB3;~j4?$OEZ;7A&RNp> zM2RkJ?A~MB9`~NL72nZ3%Mqk7OJJiO?_l$Jo#Jb$39+?;S^mIP!dC_*Vm>*_ilro{ z>-UZMUaAev@RD>nZApoC>ouJwyGJERh5G*@>@A?G+}5^XMN%Xsr6nXqq#Hy!B%~Vz zL>i=Xfq>E=-5}lF-QC??i|*!|oU`BeJLmuQ9{(5)#}WnMnRCr~-`9PGIpt0G@v{WG z(j{+fiEO#wMzqLbB~CBt2hZ9Ovn|9RrMy4Dx>N&POSGG^0#hh0Too<~+m`K4%Jh`XKnXrxS04zi?t z<58uW+<2C;O@4@Wu>&L^=_nHpQeT0bOQND_cfhSOuMp0fQ6fcn)%(P(-f;S=^~KCH zjS!t?#A>@UKU3w%KnJpTUb9rCI@`T*Z40kn`QO*)tN7a=N$x*qeO5daiu2NY(G$g- zDRWu%Hi;IFuplO&=k+rQG9jif0|+Ow@=e&>B{l4?zq$p>m_-~r#C*Tc4z?YUEuTvf zektj?lxke&?z~Cw<@B_&{pEAzy6E7T_v-xmw2Hae*ihMpKPa5!uJCAz5}6v;ob1P& zPkRhbaSa4-0u7W!FK|>4W8oy|sP#pqV^frIl`m3{y-%WlZv~V2sMGGdKV@)7Yaf*5 z0f(I?O)Q(SaB{F$4xF=Tv+>5-(Q)s=YPz-UfyomqdfmO%fbaXm%5R+W_@489##t4* zzNZlKapo5axZC5k3E1nvBC)ZwX!nJigUS^InoPo~@_cOLLpIi{AoP;Y+s{&$U(@)! zEzg=*m>Q&UlC;ZtAx}5yVs={uW5tP~j?P3ijMl_VGO_s;;VZOZw#7se{Xq!fT$NW+ z*j=U6mcHuihN9B?n;;_W(`UO#c`}kwg<1I_xno)Rh5BuFA353YZDiHYTCD4&1TBP1 zLxZj6U-iacODEe;f1EkPlqk!I(Z8B`dNhbb>`MRp;_l5uFM%jql6wXM0-k#7&3vnq zFFdDy?_kfJ&2Vw2Jh!^(wCj3xg@8%?n*v*Tvw6GEG|M~dr{&#~e)>IOD1K}Px6(`) z$t!)ZUZvo4AoG8MWgr`UCHf+lMF``|n$`KP>bTqyaTNssd^^7RDpYZO$o@jzAA%S8 zO;(~g39AxheQD8a|6P>nnUKcqR3Y3SQcY?B}3UC&1P5=#?;U9dP@xZ zzwK^}VG-)sPSn_%kZkM18R4v13=lkLvwu;d!zW_dx0-U$qin2h@B=ePHST=oZVT5S zX8d#gT;X&@r;@xjR3ai*M-{=~8CSOhCu4!e?}WxVPp3e*Z1X#1ecJ6Pc>5=LW0W>ZS@w2C+KLy1gI zTM@muwwB*YQ(LuWfxXs@<$d3Rgd({`)lrLeGrf^aVu%-Q2kIOp3Iq-oHd4!Sos~k= zJgEmozdoO);CE8Qdpw-j>9J&7bQQK(I3-&m_ucgT;lq*141M;!7E>9oE2u=wWTv|4 z-D?w5FFHDSr{}atLFXQLMlq#^Q4ro*8t6MTNm)zh&D~DEXJ*Gg(n0Pr_E~R5GqT@s zf6w@cD#U=Xt!RQFd*9a3>bpg;QvBXrg=)m+sw=MFJpHsybg4qmMQY@_MTtb{r&hvxsc6n`FDCCjx zAh;9#vSF{R_xnWs1@#kZGd7|PgWz8j+43kC5Kx1N^WiVlgUJ-kbc68#nX*oaISWh=%8l~=a8u@B)5la_F6Uejk{oGV!8exxq z{>qmq)K0$YLH`SsGnlHaf5uNdlclL=?x zuX|zxSAGNL2A`uPpyn*SeDkE25pj-&3^=cjPUt!b-a*F4!PLBb7L|TH9)o)3@C=*3 zHUFg_)la4!5YkSfkE*f>$PNJs&hHqbvwA@)omAKV9o#lixs84kE z{^CS)K3RG~sd=!lK*U0xFg^bg`p%kqP7MX(`Bcd+spg}6eWOB=kjh85hN z^XlZ2pHVVh0O>6IfM^~c6@l48@9>lzc7n|TzdM#U%KUe0hg8@EQB7A?icnhn!%pu` z{=--0^js1Rzks^{<9H6f2+R&A{p+M{l_FrHowGH}A7qYFNpJECo3293c6~%xGB1}~ zV*0tDD+&_H{U3P_PveEDAY;GJN!#t5{>sLZT>1nvuk;R9D-{jVTQ#qu^iMWcdV3OOCQFuc2*>0HWA#7aO|D@#!jQ6(R4Rbbk02DlvTK8 zDbym_UD)_3gg-)&c#bu{5P{rPM|${e0=9jH?g$)eihChuKqSJX4l{zY87@-} zPXxhSbarX~^wm%3SJSRstb!{=jqC@STxOGI$*7cfO>Ao>KQR=B7Rp((?Ctl0xXl(Y z4Z5L}!ZwC1c4ti9a8&fllLx0 zzNFoK1DX}l+4E5nXH)G4mlTD0MG}etxv=F#i=Tg>Pv2(GyM3i;{1jin5RIDS z5VGj5IXN}{z8!&7eUMPn6OFm5B6&=;#ynS^R(ssfX!TYl6J@JJ)z~l~(b%NviF2pb zdX1om4I}#*oGh`)dQ7PVvx*~mS&M!CjQGfx1*iX&enJKJ@ zcYoaY@~IybArJk>_P@tAgz;6#icb~I{77k(uvPsOC z@o2Wdg{`e9-ctyjQhvd4Om6=7p`c|<KC2&#!`&RAJI#@*Y+GO;;UYCJK+F{$3sQpfvUl4%o-f)`(K@A8N*!A&`F0QSwP%n{k zBzl7&*tgi|o;l|cv<0CIxa%9W#?IYZI+V>z-qZC!Q1KTW;)`O4FJxF4GS^l7`cr!{ zQYkB&4W-!wy#jU*^=-W@@uY%zc8F*X?SNVcs%P?aeGPoDa}C|*R7BZ?ZFzb8PU+Z8 zKTeOKO4baw(K#^e+&3(u{TR;~U__A~iZ)`uMNA=Qx&yI|w}a$Tz@ z`USa*KvR8_5ZsadcMGP2V8;L~zi5r0Z{RB{IY-}I)iB0gSczUOtNA)32O+H^z;hQ- zo=>F)wwN6Zs*aY?@h9Q~P@w3`@|M%#>8W`mP56g(@ZR3JzZtF>4THoMU-U6$GHo;y z6%Y8J?BptQ-n@8!Zg2Qa(%9#&k7+QZBecqzK_{)n;|$&<3bvXpiaFy{1GES~4m; zy;R%%IaRu{SFGPC)GJIw0rzgJ>0(lG7vn)pBYn#wmmEu`i$L(Sct6gfVR%|Ks`VNV zIL=Hw=M4a+?F&3aO^af{HnMnthZX*fz#Ll}t&K?Ex_IboZxEiKks%e6D!Lla<5)sm z{PHS#wAl>1c%Dioo_cSl{I@?Y<2PmLwB}xPk=-@{_zg$uWy8V5d>9^n%M6v~FsfuC zrud|!oAYqJYG%n|jhM9yZ3HAA8+MV2AMJR0LZCrs^!-VrXW8B$i`QKKvRDvZ61hM> zgkXmf)2i**P%1qiZi&r1l#}V3;#2HCk_jeDZvw8O;8z#}y~-&DE`^T^lA za!Tp zo%bXN_;@#JQJLcY6EjZR{wr7M*4>^ZLhaWOQpPGLh<3{E_Ls{gx5#LTsUSfVwK8bd zvk@^uR|q5Igr4jZ>^X|U&v6*`>rvvQ3qQ!#q@X&!PaE4zb({@~{NC|mP8Au4 zCIdSHuX@bVw^)%x9U9;Q!)2SUSraxPS8Y0uKu)sq?3vzx?kQX8R;a33nPwZ7S2?Vw z&t`A98Uho0_|C>16WTi701^C4>S)&dzF027z_DwYH@WhEBHNTM%G9*ONA_^Y^JCkG z%e{vMI$t~pZz7q9*NMeKeb4=(cmpVW&y|W*`0lJ@RZ%Q;88}eSeLqZ?8vOdc!IOVs zvsv=5ckMtVhSe77C{;kQ^T6)W4|OULw~tGfa|r6Ug^5AGeySLScnbSLp?MP9EnHvS zD+sF<;Vn{D46`BDLyYZG~-Hs28?ixr4-Ut(5Dc|8C(N>D_+WdFINQ z>W6~Fw0KiQ7;>!dUPe^Kh1(q}NK)#wSNJ(EC%C{?Ods5(Db>#rJe*awVK`5jTW^=2 z-OSb!zguC*6NW0%F{U3IMN#xP5yC_oHUOlFt9Uz@spM#_xDh&xTijj5flM;MTNntW z0wPTDiiy?M3{_zh)S^04M;K6UY>_6NZ-jr;@(aI9G5tVkDn(}MIOH);g{R7q?N&z$ zEOUso+nd)$bAX%&K2;uCAWDcs+;RK*v-&RXz`_AuS?OX8JZGi5poMELK|%rQVk;s5 zL-<@@+Q}H{n=6Yn>__{A+pGoE{21dwN7(zEd5Vf{?N5*?zaPJV(@IuO+^kq&xkCrN zS>oadmITnyIpPbFYya=i1@a+UR66SKFAlw5!Q|4k;rVBJ`owV~-7`En_N>iVPTiK^ zo5Fq0t_NCV%PuB!*evNw>cCQ9=OArP{+{tMAN*eidID`o8_e z#!T%AlnY^f?golRr?V0BL=i5jP<|}DUiMwt0+MdqWP56gJU9?CQC&7^$JEBV^UXvX zT6e1^g6{6p%tp6Zgf>H_Sf!ir%A+FuYdjNz6J?{JjXABvp>*WW=DiFlv!?ghvjwCQ=nV^ znAZL^tB5#HtG1xO!k-1t03$MbqKC?~6i0<5=fdGv%G`M#+(fhri5yMPiQ%eDy71~_^pOtW%96NJpp}u`;Fgn$21*NkWT7GZIv>xoOW^8U+nRuOf zYpDw8km;t=_8(=n=G6b>+(WeWf*EFRT5m4OZ5i|e%Wv-8OK!UGCGCO=5XRW`+Qe`! z?0aQ0@I?m+72cbrAVj$s?dUBGPCEu9#wZ2Wm{u9h%%VN7U~n%)ud-0{cQ1(Z?TOeM zCwRDk%j@-6$1;1nJ5XG!~Cxqgf% zR+{s;&vO7&xg&_w_Y5)mAc;O0H&8Q%AW&HYm8Ni^M){N}$uBAq}=Sw;r)P{Hor4B5eO|B}T z{OWsNK~|4((l^mCfg@KjqVw=k>Eem{Hemvz`u2P^>fW#-(pQ2CTb{bFgRxw4)g9|$ zE^x@R5~&e{6*F%!S64rNQ6S`r!*@|JZgVe*=#Z^jhU-@YD=yn}oz5cU7F3|Q>M*cj zkY>Nhl2(QQ<(hu1MOOHX+P;(wAomW$)1A0k8dp*V?URVPuU;!2O;swZhY8YfD_8S> zsMZN^GN${Khy3+wFJf}yXt!9{xv~@Yilc_ulqNktcyB94Uj~`3rU^^k@11(5*ZTA( zk&9aDtLTGJI!Q zLUkB5Ay8FsU~=9JPlC3Jg#4{W5?QP3y!PvysFI~`pLDmiaOG#bs`FiUPAuWH>RpPP zGzs6fRGMoM@s=!9}z6$b(HVym2Hum7eRwA6%K+bZx;U)~R9x$4!4-c+R z7cr`FkuH;-XtLf7204d4LAvzv$ThdS=YX|GT8F)z^+{|{dK*z#w@T-2{V`7qkpf-P zRqi4<;zu>@zGZW$7+dijws zuTz?bI&4iTih?nYX}_Sl%8#;hbQczw&8~qCdF1#%%#%%|=$Hq8Aaa96VQ=P`=dDOy z(AB97{)h6X1qMhF!?tQ=Le4F$qkPecuR|` zHjPEXPoCzb>>dX@XYk6Kww`zWxIF{Ro-kMr)-RJ0 zsG`6=Nsr-9@`tEfZ^*zbz;5MqM?Ovk(qMx~xM@LVRRk{WA+I;A2IZ4<)$I`j3g@8s zg8d!3yEyxU_4J*0e@1uHH^%=Zc6dVniaeX&f$3+C8{|%}iH$IM6nl%iloysukC+tf zqyi}X-P1XR?UwBY5x6KR9^@mb7k-l zSS!1hc(7t{`ruBddG!{oq*op!p? zA_?S0v}ws#=3N{ghlP@hbj{b=n{8A&Uzn@beEHRHcCUE_{_%8$SzMlKsmLUTfn}6N zt(~+8@Mo`cz8KI{eNXcL2)zC!ph8soORyu4YUWD6J|c=)Xn#N%pR?n9hBhk1uGRaO zW(Ni~+5O@EkrzGPpr1)05#ALx*-yZ}4oEsq(>xa9IR}|IpNJI5OlY zicMQJ8c2iQGA`Erp43`yhwgD_M=_Tu#V6FA$jHn&(v?2Az9MbM&+AWSk&K{?$kVD< zi)Az0$tqy0B;qL2o~bY+7xKBKFaI_<0p?$h`jeP_hE(?|_~arlVmNIg4F)+&H^nmg zV(9%!3mbBbrZ<9OAkPrQKuGKww2)wXS7#fC*-*;3Tr_rY* ziG3c&aL;}2UpNf03#d^8GzwI`Afb=KCZjJ5-b(PO!07BgO`t-TF=sp+-K#CTAhzS6x@iLu=tQA8!-O1qFwdYjOswwp=JdwO(e z1fnUvJ+R9It8VMF9mN!UX1^|)zdtHqIiFVEj7cxv zeAJ?amP}eK_L^WH?3Bmye}@Ks5j)hn=UGYLEDqSyHgsfke#;ZOqHo@l0xi_Y;n6c@ zP^*$n9?MoaLf(sXygby6ItE?-SWiyQc+T{^MZEPSA^+Zsjb-c$1|jUHb=Q^ z7%M^(`5c#)UM`}S`kZ%bnT#fabv~Z6biHqT)QO+EStN*%>}a(;>PCV_In$2e7amQj zQrF&0wL*qWf?oGx^e=QW&qtasP|eW1qzahqWT}AY_u}-IkK_s7!5{BlF$*TV5X4{Z zh~=_;&@aI-&v_&d=-K-Gxp%_gnDlc9BokJWL%|0wof)STU--fD)y_E?)n$;X<_)V0rkkWS~c-;d`+)~rZr^+5_(#vuO~4)KDQ z;5S$|j9j6V=z3%t<{FmojQ7Wt8K}g(H~6wQ(>Q+KSK|KA=;YijpI(-(4vhXIKIBza zl!3`~%?pC-+%k*BW>I35ud@{iX`iCB#@Ch264)IM(ffA+5@>z6Bsg8+>Ra#$;t7}T zP@JmPjST>?1T^}qhP#SiiIvKcfQ`MqcUk&%_=98mRDUe5`sD1?lk|l8WAHYU4zX|c z^iH!}e%qHrI-xweT~It$^Bhv=>uZ5^JY-L=8N`N)lhxd(as9qhuc4^ zx%lP@T@)5t2TS)NKIsw>71Y5aMqSC8RJyDiex&C!ei3wMKO=I-up)IW-_+-Y+aq=* zF^k%Dhw{di8P7|oFX*01sl%+VfYUtP(LZt|TS4@Z4jutr!%isso*l-8M%_=^89tjq zb|qz7qKre%kg++C_&Y~2S8d14)aLU-V$Un{?UHo)>JcD~`kvh+9QhC8<7V+kQ8mN! z&PYI=kL2uBEdOj-xQnEtd9M5XLfTCCTq|f%0n&(m3$1_8t1#-B9bd`jMZ?#ZpQuCLlUX@^!V!9=5+jd971O zA4xR+0xQ;NFp;%z!C_8IJ8 zI!F1Bk;*eWQZ)VH>Kk-tC$b`%r9r-%L7lk~oakTqG2`2@H|D}ui>I8SF^TQltmF)+Nav-;h3bLS(iGG(7&u_0pmy2%SM=$$Tm(-(yR!i+@ zrM*0YpaQ&E)$I1C$hhtIhj7$7gGqjysaM9@kDpM_ru}+(CI%+3ry;K#o=g}bP9#aU zE4S*vl^PC=**03O`T&{hlrnM0b7upl3VlCoM+d?X5No-mV(@d)2Sb)90{8i+7df)! z-&n;nH6$<^1OIUoE&bsPCy-3oUy%ln-p_qGX%rb9n9is6IB^CQEwqDxz!~#Ci6KFS_s|>%n`oj zOL%zrV?6H!f!X`#MAnFL4F@x`$y_6}dLoIkopF~ARpy?rYbLq$8^@8U8$1W0`~UKQ;Cc(l?g3Q*xlj%&n94(vSm3 zeI3$Ae_~DikKv)aoYq|4KPE#JqNBU|VKvM$-H7<&jrbG`mt9n7U9 zzz4Ye>kk^~l1r@&FFTuxm+hYSvX^3lwCPz%{WYXs-qI;LMv>JvzK&$r4Ofm&|K%Yd zD6TU%HQWRJlSm;QNl%T|s~;-xlgjdDfgW~KKA z1G^4y%>QeB{$s5Wj~>ksnrJ+2C-Bl){`}4D@vkf82OrG$@fWU};jE97vA_Fe`Ru7$ zeD%}UrGNjo2~D6L-v!}e26XlPF)Vh>%kY?pq~KHF&`Isz{P!0`tc8_Hr10vB*g zGvm3|do!%sQ2umm>W8dF_uuvh3$7CFhN|KMmYQI_rx1`B85!|8^?uCNJ5P2x+0(-s zF6>j2oFL*oe)#~B3o78#@dlEc!|Vu-A;&^4JsO4dFw^OhZonp6zd4BQDHQVE!O*#j zDQ}(M7)YQ~E%_2!=Xk;;wYeA=Ow1bwNU#zhYxpkCTj2&Wo)Ji}?k^D$FJVD9oCB`6 zt|sipED8p-vZ9EOo;iGMX!|V^W9vXdJCb8-f_ttf|JU-tI=X8_@tkcI^BvhXOVB4{}_#`>%oT|5?Pq^!4Qo zQ?$}tjjiNctvYlm(M{cdZ{-#)2p*H37|6X|2l|MV=fdZNoL@k*g9$PnWEBgGKF5GI z!@m>qOhyrZJA|+7dBJE5vk@S=ZWAdL+aGA{xGo2^vP=*p^v^o+zjc0zxV;ySV`Q2Q z+G;_GCy|EC8K0s+sJJBPvuqJwLOmtmUl8I^`@Z6|{z1t1UF>+Hck|r?0ee9&siF@& z%B!5(Im6OC=G6ch$_N3%J)5X@KQ!)^HiAPwiEJ$`xC0e{<=R~ z@F3>%ZsE(VzK^n#bdXxcW)d9C1G={;@MKL)qCmYY4wU3(8Lr1`zd&}AD!9+dVwepg zLBE}Y=Fga>b$4B2+ly0e|Ikq9xJt=wzZ-6~+KHT}X*d{5>5ED-B2i#%(AyoAL%3x^ zczPJ(<%=p&YPj$mBaMi|(j&PKL;#LGZv-+vB?Ik@-bn3;Y}JzuOiBr?>hIfO^cqD1 zH4mr14I0WymOxnf6(%SqudbmYVSM$Km@p(48v}O=b_WX#M=Kq_kFk4tA$JJj$Rw@PoeM`d9m%O7XM3oL+VvyPaxZKIQ!0^1Pa}jAJ!s{ zjeYT)3g(Lql=$xr$0lJ50znbd4f2>Nfv$C=+=N}S;_~n|&RTPSDCG~p0mKUV!6>`w zL%!r>0pGEY^GT{VvO(_z117K2_hwe5A{{||)*buDG{^NB5^#obF<#Lx&c6o>FCS}6%eEF2qLA3b@C7xN|8+9Do)on0@~J3Tg`XFOaj9Be&91)A#h3k$eVuueS_`Lk(CdovBk zm0A$g>ku-pbU+}Osp(rPRiK$$;`5Y&X~=3WA5)9ZMmuN18;E09R;&D$uE{wxEx?0C zSo!H-Va9u;i^N6O3Nb^+AC{~}uj9!^AiZYE$3%Yjf=ONCyWk&4n6$wj67RKX+K03~c^oXYmGZR= zVv=~BBLj$-)q0`|NgreFSd{OWgbWAbQ^H*p9-EsmR&}NAlyEa(Z@|W8^GXUfncnMt zU#M`fs_}+cHI9^`B~*8KftQ!JyrkM{RV0kfOwIUu-X2p`RS~fK1wkL27aYZ_ZrA<0 z)2NZp%@bA)quy#2UNYvg!PC0MvhTr8< zwsDYNweBP1AMJpm_d#=Fwk@)kZ~na%TSPi(!B(X5xYWCxIX;_2Nxuo6PxrHa*(TIO z?-dc2Ydm_ew(O3U4*V8MwAx>Yr|bC$;KO@=0#a=X;CJ!fWJ1bp9S#>}mFx#&Wrt9f zL`2RtH1G(0C$#}j(D+ATGN_f&zw>lv4UmkC=cy{tsV7VA0MCo2bWEbTlJ%Z!RC8Y7 zao{blVip0KRdEOmTwnY6$>q*YRNJqYq5wfj=dRiM?3RJ$bNR}9V1KpqQ`#?im}Yvy z1kJI#n*)A3k-$3rc0YqYuJ~6(-^X4Oow_<-Y@=S!Ii65D`mKdADNt2gon-72wguxZ zDr*glA#g*;xF)ldLH}#pnUengC>V>gge7ZHV8TL$aqD*Q!2}{;toFwcMLdowpXKxB z!}S?K&FFqs-d52RR|jbD7`1l%uk06H8I1-Khc^pAB4!P-dk$(}i9v5#ro4<+gNrJS za=rEo7sW8TzkmXOt%Ba2#zd)bg5x(FRj#rewuP9cK~vmc4BJf~&v&v-AdWQq z{brhkVOTUn1MxGAVfsh^NQUuFwS!PvtD%r&7Urlr4qpA1EU6JJ2Fe z@TUpg5WP!o#8Ot$otUJmn6wxYP>*bx!F*mdz7wlmJfdD5u!mkJx^zvz@8%g!uP9O2 z>bq3$d?B$tlAi8+?J(!w^dz6Kv$od`+Xs%s?IJh0-r?fsE7qKaH+gqR-FxAFr9~63 zz~}+d5N2yhaF`XO;@zELX;TeX_oZQR`mh+!e164ZnuV)es785nKmX=3jN57jme=wL zR|Y!I763*H^CNF>&_D2a0u*FB$fykwBSOzKIa#R6Vo^&xj3xV8jYW$D8Ld8y(hutR zaNj)n2P|CALE~KpNzWEX?VnPUT%I7VEg@f21;5r?>)T5!$;}BR;(-EY`vu*3?}3|& zJ#GrfHLbFMZH_-KT~1>|tJ-12j#ytT@2qbL*5-I&6w(P((=M<)DRJyo5|5;hNp=pJ zvh|s(ag?M}vY~@EHW8;ab5Ldeg{XUMIxV{0rKeiU4^R;g}o*_o6`Ft5n)Ev|!;QD6y z?E4wnmwkr}Wi;M32*M(2`Xy6vix(=H$o==q%kk-Ut2^?7??ZRL8y!iQTY=rqmUOyg z1k0OHebL~a>e9_q0ay{yMX@C*)%;*c)HCY-7fg+^|FYZ>x*;h`Jt4p*hp|$-?H%q) zQuwRfwe%6_38y)uj;(h(lOIgM#1v{r_iEa?J>3o_aV*+TmCvA*2*)esqp*vgnsHj_ z?d`=3Cn0|-!hVJnl0;Ul-#+oj>BF$MibM!qRDDuskp{#Xc|X=i2kV;&fK4F=Ac`=v ztTr<=%D@X)_ZcAR(-RmU&`_!YQ1|q$QQnTpfbU7OP*Yy`p=|L%GRFzsxvFgVSj?rt zK$=x~UQtP&Vs1r6(GTcphjbjJupbr|fwQhc@;e_zycN{egqnuqq9U9*1k%H*t`zvG zcd&jow@W*9!m7#5-q%suZV}IW+MPBF5=x9mMfQ%(($I28L#AX}eaC+{I{~{ASboUm z(JIszF7KC);Fq7O#i_)MPUXv~h?Cqx=8NaVM9h!)P}=k@I&Ip@%V?4h?z*?Wg_m_7$^v>tS&Xlv$6F#kv;*FJeDf4uOAv;Xk| z!0Ai4kixHL00v21c|JFMz{y4~(r&8?D5!@gG2&@*ukb(`^9Um%#~Ys|?-um$4mjB= z7)3Z5z#<4gW2H&Q{lVLBLY(lee#lc7%lMR)c(O0>*Q7S%0#Cz3M4MzKeqg1m z>R>vhtsFML#^f)vC~cy20u#r`rn{+gFu+QnFdq4GttP-Dpf0aYGrQ3rm$`^?*r3bs z4%5T8uMd9|uIEdDQlo}929qA|AMF=tST9E4*4Z);#k~XtTJ&6)P25yajrUGh3I61d zSQ9dEkhs!gnAGG^n>2eB`E63SF%JU`SlO@3byDNdHm9`EImA2e-^ME zUoY{%tiD1^IZ!P6^uY7uo!;0Fq}8)7*)7X~7-ms>Hlm2(7&9wH7uGHV?Aw>NZ1#4I z786p$Sxe1eNtqpIB)m|$JpEI>vYRTrX%hs&+K$Ob9D1WN)S z&B=!Yc`Z!>4N42|?yk=xj1@9>rXU+U@3cPzng`<<+wP2=VF$l(6dEe@Mfe!=KHatv z`@+L|y%%bRH}=evj|(>OCAu>9gj1&M?Hh`61z^8uC8R$tMoNL%)Fq3zQ4QuQwnsz7 zuijZEqtcqR!M`Ks5V=ChEnOxT$w@Bd&%sElYuptegU@~4`mHaO43SP&Pd~2>vE6m!U9SN;EFKUcKHe;RldVD>#8unjHlffMv?_(b z+v1B*YrC*v&={m&PqbNJvFN4-`31opiYe6U=N>@j!k-`WK%cL1YGl!w1rxhFmzW|x z_yKk;zIS??7PNfC1IPp8CWVtVTbHSP2FG7`gE?&VMS_R5cbW924jO|?u51@Ij0XN~ zo)qFi2a6uQsD^&BwU#}~rvxaf0Q?&li$E)T-)p+PPoAQdrI{Jz_ghH_#qIPXzodz) zszOh0unhW-+9I4EB~#@ll>-E>bkL<0*%4NY;SXpMu$4Vp^*3Ae0S&mvAB(JEPubmd zJ}gKyg3AM*G^%AJAfAH|VXz^{VO6+%BB|f~EvAuTk*!*$S;JNk=@m*%S z4)KNo3BC>4M|8x@IqwDEpJ7GlV0Y{KJTd3S6UTtDmlh=wRhI?xLf6ay~iXNs?*I0^ewC2-x8bM*@a(I*+Sr&%o@ZhYqP2_w(oL!W}a~#+_Q=Lqra94Xo3M?iB5~uhb1h11i9Ur#2yZ^1$egP$)T6M2*o+5O@lZ3wI$jbj;2z<(; zi)zZcR0%OyUUSOBX`>|LN~x-M0z<`V{}-whki|rl0++?O7jPqd-RlCtCQpBlix9MC z+wa6tkFd=Lj;GXp06krP^Q-+YA76+7DY`V=aHA_!iFB=xUVLd3psFyFKBX(G{ zO__h;yFt?a%#Dav-2XjR6No04t@)1shzi#^-1GE}Cty=Ob%sqwY%O2TJLIyC#2T&s z?UB1TR;X|DS^EF|{QsTO2}DyoIv6|7s2cyzqxo+rl=NvMA|R#Ul9~U1Fw*};SrLCf z0=U036Cwc2`M)3i&liXO;32wUtl0hiUz0-KiF^2!{{MUvA5ZB71uC>_ofP-^9Y_KG z5dp%(;VI}U_ilglnRFzF)0XEqE2UIaA^?ndvqYLcWhh`=wg2;68YWssk z8r!A*0`=O7uq%*UNPqH|H{ySO?SH>URE34S%CLwFH>e|O!(Uu!Q3ECkPL zx+Sb^_pVtdF5YVf_0eA5b9z#T?E6!WIzxoGzi5tyZ2>uvfC)YdYa{S7Tf9y&Lma zX1H$A^VVAcr+!!aWPswc4q{2S*HH-Ax7Zi)Xu?#BZsax(w+ba+23`Xb z!l8noioDq%Lf)Jc>d#q4!PZ!GN*aJQ1T4%009;Gst;C;x==Yj>ksah`@qm$$1qq*N z^b5QpZA>aD>O!r?Fp`<_(RH_@mGrkJfO*jcY=PEdB!J9>U$uHf9r80l*V}%h4?kP$ zkI&}<4dG4STbjT6&wu$b|L1GKs7t0Ecw}u1Ch{uymC|x`@zQrJrCzRezm!f+w~is? zarmi3Or{AigLJXbRGDGH>-C;kv*i}ycus zqZE(6=#FDA1TD6x;XrJ@GDwS`pQ6ZBDi}Fg?~PDUGP);7R`~A64Fcw6{lIFi1S}=ZXJd##irKeTpAb2oY zYtPsn_ogyP(FgnH;@~2bM5I6pAPK-XS&Eq7ZC8I*+#ntP>h@%i0V+pDT}~=nAs9qs zFb5a@y@mMkc2z_YA7Hy~T$6`wT(jBI%jAI^!uHs>pSxxET#11{ z=;!5>!~l`w49oqUY!moN&)#d$kyW3pjh{91&=2%=-dsg#7pqCOA(FIq2qQjV8~~WK zoRx4T4ua%XZM`velc!aB-MSF}f3LUyy)FJdiNk^+Dd#b#9j-xRs;#lxqcVt)OeMpJ zNc{>-uDG z>iEW@(b&JZSifWI3^XMpUQg2`A|%jF7~CPAGZHAzi;uyA;h9CgFzv%rasY>CBrHkZ z^t&Mez^e+M-TnZukA%Sbs()l!Rw25u{IXU+iexyepk>y;2{g@B$}KR$rLz}?z4U$L z8Mr*m+h13jZp)|tl*kk<`hl%tf{g&`EK{z8dVXMk9I4ytV}jemmai`EoK9Gqt`{@? z$oJ|BOYepKV=oiSA@?}6qU#4_9Xgx)%Tc{EAJ@@z$-+6_hw*|mFnf$5<9~P!;GUP% z4{pj#g8;Wr!?r{r7*l@sba(tYYcEr)cWK`%=0~u)qJ>VYu1eV0$80%5SZ%(>c0HwJ zgj;7_>)UScKTya*1P(#*s)1SWis`j^$rk)bk;?z<2SB|3y$L$qYTJi<*ZlDJbA0)u z(NRpV-h`_b-FhDP&@0j^V^(>|#PJCc^Ey!!>$M-Jd}bc`FpW)aC}psY)2`C~kN+X{ z>m@L(wlDfc%v&QlEpQdVVWpRO0a?e(>$nXAxA}~;-V0(K_NVOswDnv@U|nL>T}KqH zw3o@L+h2MAJ)=a7)bu4{XhE#*O?c5c1^P7-y?VuG&;z7sWIQY`sCtN6+3H>b0=CT2 zim+cTHY3(o8X3sSz9RMK2b|0*A!8aW`%I7_@@g&t7HR+CZhzx#+}^(7OE$9OgiUd~ zjhQ(|BRivwIGe$G{L}>L*fDh{_X+iW%Nx0$JEfTaU8w!*9aAOb(GtTQuHpmyPXEA4 zWQ%ik1d|jR6`+W>`l1qt+wIMCgS;3a`2^d)xwD!WU-20H?sYC2KI7Hi| zQ_aQd$3N7`DgD2B5qmv0~#={}mWXY2beeI7Qr zsz+uku~cZjcX{3$lmM!fhKGCZYP&tPXtT)8Z&S$)w$RAkxoU+-dM$cz`b;)T>z1xh z&OUb&vRd@wKfM71fn>oisUR{q{)40l3M{D~2ED<3sm+F*mY=!Ex+fsB$ISN$y_& zFYOrY%1rM2no03Y6z(p>Tr=-;E6XAi47Tl+cK;Idc{SArmzdp!dT5|qeh{NK zvwbjIFJP{I6obiEs|cqGBlluD3FX1)XH>Y6V_sk@IN|~<( zQ~4g#I4F`Mp5bqu|?`_6~HZj%LPkhR`8(T43=<^6>-`%3)ah`6iGr1$m%gu&&T z-99ZVH(&OJtav1%XlbP5SRz3!!Z9D%IQhT;XgiT$oj4gz{`Hh{U)HpQeE&Dtl-%=!Lv=DUNx3Q247)li#0Z%J zp72{VNf< z%3roZQmmCwN(aI@OYhzE77y86riRGg+wOd>PHPxddF*w{%m~UvjV&AOJ6?{R*WwXR zi?s9oAG*E*s)}y!Tac6%=@KLa>F!oqy1ToiyF-!gZt0e8De3NR>5$HEbKm>k@44^u zxE5oA-%GiPS+|Nj3f@pr+^?Gfyp#~mS^YNd+w2PX3=Y7X1GgpGkjiO00;6>!cQ zm&Z|s_C&+seUF_B7Oh5v)ndagd-1quGOcy^g6_FZX|YDV;N!Pc4m%~6(TCFEfTCUKrIPttdsU|)45uR=3;4F^ z4LXMwkJ+p~*#YYD$VBr>;)eP6q0X@!b~O0fs? zwWfq(FDW7+o_mh=7y@TYjrj#}{ z1?}!_Z1%^W9WQo;V2aIFZbItzG*{f$f4NnkH)o{E2=7pE`@J=!xE-6`Fg!%@ggeb2 zpPWQi84tfW9AEZo{g82Sp#0;Mea4!Lr1bU*e{?$bauNa0z4nAViplunXB?()XGhD@ zZ4Xli^L@{6{DE#l-K!^_R+YrLMzxF^XT39w250gpA$$F+-N>Xh-cY9O8<9feO!!KN zJxsA8PdspA@4VDE;A%Nzw{xjW6a!Bb4jeG{(z@~d9qOp9RiRhkp=mbW5Q{I5qFBd4 zShz&JZppL{NHL6FOWdZ{J9(dambFnJ_5c$0Db$Jzi%u)5`SxO$E$A&Q9xx$0*B-p!*=oO{Q0@S@l7wM8k9t!K{7uvR~Cz z=753E9j)!?BwpJ+6RHYb%_N}i=A_5Lp_nSz42Zxdw_kd;o@7Cx_|Z3Ac}K*(aYI(k z>_kD_>p{g)cPrTK7+`^{2tkeh75z=hpw6}6bZryiq;V&&6#n^y^(~f9pPor*I+Yh7 z^b>?1o$bhTE>H3qZ|79mD_b%QbNIa3O=#m)oOTa>dEqDzpIb-aEoyDiJ4RM%K26*F z1y*7~XeE;cz|Nm`b2w`*w!=7M7kHExnlI@+Y|mATlq^#{1n+BHT|uq}(-qQkW!G8> z!U^^rr{jLUf84J*1mtB{ccPB56c6i^T(?4N>2%&$O)jUM&oW7838;6| zSdixZMYWsN6lvT$zv4((y_4so(suRJLcm2h{(-YUshK7C)uvV%nf{ z>c_FX*E!@R%_ec!GCR{NtRCFyU%c90WT7Bitli@kPLiTyN0VKy19qmaRMCjBU z?2pgd+Q%IhryfTUc8n8%6>NB3vVj{I%iCYe|R@$H6tlr)pd6mcQja3)f{~D2P?Fyie=^}M4mh30IAEJh@a-{_>tR`@)( zF#XxV$g0rk6E9Et@m6)Z0>kWawocYfBxw)&g-+HB#LrKwxGRhTyAZFZ9oF*2gQ6r9x6t|N$_Q+f3h&!7m2Ibtre7@P^$*ve{8%L7ENZ(1K6 z_cR!`UvmFUS#(=T>mUF=+L^S0M}dvog^lx07pc9OO}hBA5$!@}PE6_-7LdbLp!sW7 zF)BMdB8sqgG;Ve7{!~TXC;Ro zkZPb&Cq8X`-SMOP;r^5bN4m0e^xf&xv{hYZ-8(`{TwJZH8Af<`4HqclpYezxQ56%3YRLOL#_k9QNjM%}To#chq{7=XsA`lLbI^?in1 zZr{r{Mu_cS%~7)~iC*kOU{EQjgcykiQNRXD@d6f9O};d?)hperv^P_)^uCQ|vHF0K z-t3ukrf#4B2y9Zw(`5G&DDA2o@Ks%GmmwKYfbl^Jti7dwY;-!$EAq;N3iRua67wv-mI z^hK#??BV#o(nT9O8NI_18RrESCv~DLZ00>+Ftk7VJ8-)hQyyEznZ`OaM&ha zVZS2>Bw;<`<+mEBj<2b3g3LbTW)FIh`Mmx3I>c4f$M}VC$pKf5x@nvKv#i;x6Z9Ci zcC-SG`pO|D6m^x)7{^8O7lJ*VI30ReW(@g=MV|M3M@yZ_+wqh}4bw0D*;QF)@YCyEx>Gxg7Wq{{NWj1>@hf{l*h<}Z&teJJ20dDx&#K`Um` za3rvz%9y5qX$cbod4~Zq@Y!5i|2KCN_frjrbTciCB6wEEeQchb=@xRmu=Y~TYPhlo zD*xw!<2dhB$}`&h?(@&@ni6_N5NAMs$zdZ=g{`XNiF6MTCR|jIC`Hh2~^urUqTy{dHE!ZW_N$Yd#bA>FN@5AnT5njVuHnAb50IA5K52H`nttYKLCA zJuEQp;~4VE6PBVf)LJeRdp&T-$Dc>FVKLdI_}y6g#n0U!;hk680#8uJPn~6%^+h+( zrukN{p+Z|5(2)cTm7a)+KEWR{a=-MK3%a1MgeKn4#{(9_&qBp_1U()$`XXrT*lg&* zCo(E7uXNqg%CH9sXsBdv0plS#hKE+%NnUt*= z4`G*<`RHp3%~X+>$oA#JlX z>eX^SGZg(IL{pLEQhcKo7z`<_(o5W9#j18R_yg&D+NsK_AhFy6iSRq9YQ}_;=rc&_vmJa_2G04+s9fq*G1MUBz|5^+yUl%0Q?F7Iqq35AE_@-V_(Esp<5HfCAIYTh zbTBrLd!`6ByIa$1?6&rLuNg15;8sD16S@2l5s1tLHa0UowNrF@`74 zkqBp^C;eG!jJ#49dY=u!i?muEGvjj_l)I)CkdRGSbR=9s3`>@oqa9q0t?xU8v+n`S zQTQ#S^BW_*@r1Bx874InevT$Bm_nVgA&o65mwD;+*g)y;JQi1FH-p5G*}F3=yKB&w zcPrR>kTX5d^uCE`BO`?Gt5#$TXOBO;R%7m0mk!3e`luyuJ>gb(^xA4fXR9$_^B2St zyo#rx7AGySUKc;y(Ohl_KDWJ0UkuG{p(uSEzQ@s59V4s55&SsHB+l zD1^AJVc3+%&wj{Y-nH<_qSr{KUL-$tM_-$@^lA|XVi0HwfM z_jgo8ugdB zS`l)FGkrnOspQdkUKwH9?RYrfFFUYWiso!%<<4!95#%)L?i3anPUA%&<;OqgC>#!* ztL7canni)Akdug~%yyx5>x4HW7h@a7ptv>kBpS@i)(eh32NdSs51V9ix#AeA z^=8!%!m83%eECOTvs>z;9mU~|vC+JH5p@y>Y+8~IFbNrtUv)hYaOfotw5MLA#KMOh zMaOrTCsYwOi}zT|hNtlu4yP^Nu)SzC1dmGvW;xHpP+9b6dr20%)Xp5zD@}W&i|s;6 z*vi@J9XLo$-bJV9Vnfbb@`Z$m?k2Z`vTv!=Ybvee7;7*V>yZ0iWIbMrUV`59S{88 zlQH6J)3xGFLrSB+qK2XdnXRa^@ctjZRxQ+j>O*s|yXM^b%(`D2t~yHZ-oAi8vkhxZ zkcNQ$!T|4%h5bA=mPHTebk)-uip6*{@gt0kpY%c3UV2;)FpVj`h=diyTc!3iO1BIg@&gkUeDF-tyMp7tCp zqpJ{0Efd<`8t2rSP?O!ZUyFJHcz#^_{qFF0qQ4H_ghnA`Qb60W z-qm36IGwoA^e`T%@xA@5N;-InsiAAch~o|`w8yr5#?<7VZqp(F=VSA7%uNAY^8SS% z0WZv?n-i-Z7#nZWrA4+2Ei*wAYe%ImtmS#lCU*tCR+t~f#iql&x6M~O2q6Z7`|bqn z!35D~f$L$vdlG{(LCfWQKJe&GO-QdDw<+4@l^px;4OwG#QdD?&VX{@~EPUQ|hYzFR zH^T)JBWhbH!PhKR1NNjyHzMcK4~Ogh%?Rp{X!o~J#5vigGE~|vO`TyF>X>v|q(I&` zfv(JKHo=u6!C5&Gzt+3y+MWc4t^X63QJaV4QCz#(m`nj-wb|-HXKk1tY=7L&$PG=d| zVWi&DOxn4O|D(8PC->HE*Y61(PYm9{UZ`sfQ#Yi77v_O{HI%i)uuT}#K|H8O~L4xNSbw>N>3^3GBn`Ksazm4XI$o|!c7v>$=?<^w!0Aik1!eZiQl@@3yc z9S5X^A6Pyk*o8PP7ZJ_>rtAL~qTd50sL1Z8GF8`0q4w5Krv`9q?u{D+(FP+{DB%6I z!BPD+68;@Zpp5&2F_5 zMa%pxS8Ec9tvW6CM@vGyrc)a3?qRMLcmgaNUwaOD+%|%Uyj~P?{{E}B?ysj03FoZA zF4P#TY1Gth$orNn$}b!_?gb7WSRzE{_FTaqqE%`e1r`hah>W3=1l(VKS> z1Scn>kXjkS)sQE}32QdH8gwT!k3`x*I0kO-Tu10K(b;R&g7ho zBQPL|_{^FS&ZOpKpxh$R^atMHK;4c~nPMim+P$D@m@Bz6_9W|~Q7cht5j@@M%}&l& zD2RISkH_Th0$t-nrE%0E7!+L6(QFYcsGG-w+MUyWpl|#9vdh84Is9O@S)?!a9bSGj z2owr&k~`uzH6jBEOrVK@QB`<5)2K|>oW>-AY&w%)u^=lr1DMv6o&+%gRJ>|qIbzku z>Vqg|lyr5z+RSE(rY9N%=jTTBr3GluB8#{t@ zMHP||Yv?Om;t8`Ke;{A6kc^+Gku~Zde(rpHm8N!!UI6AmAQDk&G)NpFeS*Y>Qn_~Q zNkQV=2N)zmY5=;7ttDD|826J&#EfL&oR(=;ai4izPb&L-5n8Ck8Un}pM!8HANnxm1 zqxqBK7-%i4PIk}?z7VE^^8!I&@#fQII~$xto(7fY+mUa0qh9MmY9eRhPy_9!D*=;X z7Lt?muP=8Zkh-F6TrPd|3%G3W|4S?UKj)N2wqm3#5o*Aj^tWu~4C*05nVbXDZeWI=VwSwQ!ocZqAR&0>1B4eM_i-f`19uNv@AY zrx^n_lN7}g-bOlblzd@;!Q-|QT!O;LmY2DRXT3lhZ?_s)H)6O{bo5lfk9s!P+`wIpSO5= ze$s|_d>50KoQ=cCcb!vkRlw+R>-h$?BaO$6yhl1EVkzB&+`9F?=8MFInaTE#_aXKc zRe+qe_xTxW2uP@+w*Dds&o2LAXn&2*llEAar7F6x4W-?Y+aR$)CK^;|Plu&Ao zx^j?Y)?E{<^)ZU{^Oqo2sV)&bY7o~sW{T|#zghzDuQ~Gpg}!vUbo*a3Vs1&9D37&l}Q@FMMYCaMfz6t}^ny>@g&x3sh* zKK+8)SyySuOtI+KEI-3nbi;ilCIdb8yzH9`!}^bqnNr@ieS*pK^M5BI!j=7N(B7vG zG{a>gN&4(^LH?fUjFLSIr_areqAN%}kT?x)>8NjoW?Ph5h`>1wT5(x%{twe3#7k!n z$V{q~S;t`|;VP+cvwj9WVSq_}9sTQA`Pc0qY(6psplotVZ3b7zCWzkzaZ;nnIr8h( zxiSywY%1?eyue*+>0(0xynxxfF?4;4@ud|GpKcRv&?aa`?rZ`E0IX^}^nczni`FMZ zTKHu?YQGp{kZM>1f8F-K@Wl6U{)s)RuU2~(0qSq#_e{77jS5EZ&}qpw`^+l@pTk{c zaB7}x<_G9PtsDHfI*}8VIvp*wlYs z_)DP_ax(YOVFvisIJQSmyS!#ZUrA{H>26Eb$}fYnpe%xnajhBEkC@)%;Bfym2ht=(9j2YT|IizPaiKoGl|{^& zZN>__#M((dq!f@sTBgou8kRdL=wo>M?a6wEpY(NG`jw~+YCTwRLJq-W`yi6h3!?`z zA82B(xEPHc!|Nh>{S=}84iDiFAp*XvV`?8zjPw=AQ*7pb+5>U(K>$7MuEK-Mss{W= zi9kdgC|h*P1Mr8_DRpZx(1^E;uE$4)$5#@%lm}c>AZhu2aR{{bPgXx39}_zpo$fa` zdgY@)$DhZoUhJ}yVko{R{CW3r0Spj0k{$Wezw)8D>0s3gZ@UO0sg1#Qye@D%(2z4c ziDwEEtx=&PHKa!VWgD(BLFoV_7aXo<`AzO8f@8VTM87V9+c&~mwx`gTu_zs&MTT+8 z)a4PAuk5lt6}{K2P&Dm4;OIJM zLwz*~Tun53`ON;O5;N11p=b}iRB^`(=uW=zcWC>|>&A4sn+p=39%_=E?$InB@g1DD z1A;)Vys3z)Btj4r;EB+Av^f+eq0ud z*Xup1Ex&6LTjTI>p&m{zYEyuyvDje*frui( z!d1^gOy)}Rx{6Y;tcbJ6j>YK1K$#O=`M=mSjeynLbp6|Kbgk=j-g;cnZhWc+0Mc)FCX*k5 zYPm04gxjfDhh#<&@Y|k98dF-W3Wp(JvcU|l3PL8R{ALXbO)AAg15K2nA7{(o`qP?+ z0+_y^16Zl=6yx3b@KjVpb+G34D9U7O<`xY;8~{i0t!mL%|Z6#HjY{QMLzt) z&u*G)9)4~qzUnX11fJL=&Jh50U=cwNSa^~Pl!|z3><-T&=4#TsA3P#h@S3bYI z!11hD1#V`;K`3v_zY;k9;KUT@bgEo>VEvt9f&Hntc20QKNoSm<4DJ)+JDe&IzGhOfY z)8)GS#`M)qsd~JTC{!$?WdeL#tHl;FFq6ll0Gg+o@e}0jc46UiyyAoTp7)_H&Dq7J z7l7=fZZ-RA`v9|+wZ1Lty=5^I1>u|yn%w2oT1}$eUkNCH>_0vfk5v>zITjy$B3?s% zt6CW2erxH)0r*gWkNG}~h>w=-{w@b>S4x2uXA=ByRkiu_&zWaOf+>FJ6p|4k@wB_{ zcNajqt&DOc+z=jam~XXBt7#bdQiV84SM;RbZaYW0Z0QkaZtv?9D8Wb*ofr#_m)siQ zZeUQN)0$m-0UhYkmj>2xDE99wcMHx zni49Qv>F+KscA8wgCeoVYFWHpU3LFyitih&luq{8ggn(rv5sUUw&PKj7O%@&p>XX; ztOSAAzIaD?g4@q-Zq+*{>P{3;xee=h4F?ir>5gV9H1&EuzsVJkpW3@B`O%+}%H=3J zh{8K!3X0DfD2-HU&)o(#iy0ZRZcn<=Z1q=xsydopIaXZz&Kd! zK31GKeuibHa)R&Rb$)r%N|wgyWqUxW_C23A97`U3(r&_Yvp)T>#C{C8HxVpBCO%o< zQOf82oP4L8W1qReg+>Uen81FzH;7$?PevEIKCizbZ)GVSRawK|n=J*su=i2G1r zoHs$EPt$j9D`%O9hd3TF2sFioK)OB_w{vnFYz)^H4bN51UHK{R`g5gx(38^&y@q3b znTt^;yX@<%r~H>NUYbpcl-O#DBlSkVurZw6fZuy z+@93P>mcps(H7UsL@TTvqT#yNc*81l%;&UAw!9li9yjkTtCo}YP7j0S$4o~t+GRqm zCpa%4(%GH^QbGO!^Zj1d2Cl2zQo7^EkJkmtCw)rzjT9wYnp2yPwGV+;?_kQylr_ii zKP(R}H^^Ta9+PVi3S!AUI=(Aop9o6irBk+4N_YL(eIz5FK&fuOQR)qU!+cDn{Z2mS z(P|MXRm-7|V==B2^%#ZF#By6Zj=Mv;54Mn~$0Plx;iGW_AC^VkUCGU)#Rb`Xp$4)c zBn7BzL1`e-?hE}`l?w=^yUf8xo}MjpxBEdytn(#`cf`&4UjLR< zvH@rWH!QGu-2R+2S3VbdwuZ{%aw-fQA+z=K4dqCzPxQLT!dyoj3@BpW2Cg;(D_!W0 zaH)C<0$0VjyLNle4?c(^)aX#sv%%m?pQIE&S#xw zf4CqPMIlkzwE{wh%p$R&H4fsdA!z-B+Z@OeN)#aHC>8NK*w$OzsrH7oV=H>Jq?y+} zgf?2Of5yIx$Hc>Bvm%v<5ve{nJ~5vzm8h|p{hna-ae!KN2~*qQAUo3g4P@yMMX+k! zhqk>rY+Gp3@$%RLmW4Ue;yHocnZibEGL@Z`GPu480<((3#fF#%pOj4nJ)wo#n zV6#*^V30N+{BFk@m8F}JoF%3J`g?bDB>@U^!&=v{xq7?2p$~%wv zxSz3_49qIRkD>J2BhhH5XwlI#+s)q?(;NM<)AovR!XC=n@$g*MV#!%zWZzuT6kJYK zi$*4FM-6GbS>7cGpXPne?ji_QGQlFj6|NxJSrhm9ZkuyRgjM`w@>Ji+@Y|fxx)ZuY z3bvM<6ufA@{_diy$))Rpk;q71SxlRQB)s_Gq+{MbFmHjuk9QCsF;`?S_`2XKkD!<@ z=XT>lKz9&tRzRv=IddulZ&6+m;9tB|#*;G#ttQC}1$}`QY

    C)WX^cAPjTX; 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 literal 0 HcmV?d00001 diff --git a/labs/00-setup/images/search-openai.png b/labs/00-setup/images/search-openai.png new file mode 100644 index 0000000000000000000000000000000000000000..085aca62decafaf4c850ef790eec73032924a436 GIT binary patch literal 44914 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 +

    :white_check_mark: See solution! + + ``` + Translate the following sentence into German. +   + Sentence: I was enjoying the sun, but then a huge cloud came and covered the sky. +   + German translation: + ``` + + + +___ + +## :question: Exercise 2 - Negation + +* Exercise: Write a prompt that generates the expected completion +* Input text: `I was enjoying the sun, but then a huge cloud came and covered the sky.` +* Expected completion: `I was not enjoying the sun, and then a huge cloud did not come and cover the sky.` + +
    + :white_check_mark: See solution! + + ``` + Negate the following sentence. + Sentence: I was enjoying the sun, but then a huge cloud came and covered the sky. + Negated sentence: + ``` + +
    + +___ + +## :question: Exercise 3 - Classification + +* Exercise: Write a prompt that generates the expected completion +* Input text: `Not much to write about here, but it does exactly what it's supposed to. filters out the pop sounds. now my recordings are much more crisp. it is one of the lowest prices pop filters on amazon so might as well buy it, they honestly work the same despite their pricing.` +* Expected completion (or similar): + ``` + Positive: 0.75 + Neutral: 0.20 + Negative: 0.05 + ``` + +
    + :white_check_mark: See solution! + + ``` + Not much to write about here, but it does exactly what it's supposed to. filters out the pop sounds. now my recordings are much more crisp. it is one of the lowest prices pop filters on amazon so might as well buy it, they honestly work the same despite their pricing + + Decide whether the product review's sentiment is positive, neutral or negative. Show the probability for positive, neutral and negative sentiment. + ``` + +
    + +___ + +## :question: Exercise 4 - E-Mail Summarization + +* Exercise: Write a prompt that generates the expected completion +* Input text: Use your own email... +* Expected completion (or similar): + ``` + Summary: XYZ + Open Questions: XYZ + Action Items: XYZ + ``` + +
    + :white_check_mark: See solution! + + ``` + I want you to summarize the following email thread using this format: + [Summary:] + [Open Questions:] + [Action Items:] + ``` + +
    + +___ + +## :question: Exercise 5 - Rewriting + +* Exercise: Write a prompt that generates the expected completion +* Input text: `I was enjoying the sun, but then a huge cloud came and covered the sky.` +* Expected completion: `She was enjoying the sun, but then a huge cloud came and covered the sky.` + +
    + :white_check_mark: See solution! + + ``` + Convert the following sentence into third person singular, assuming the person is a female. + Sentence: I was enjoying the sun, but then a huge cloud came and covered the sky. + Converted sentence: + ``` + +
    + +___ + +## :question: Exercise 6 - Multiple Tasks + +* Exercise: Write a prompt that generates the expected completion +* Input text: `I was enjoying the sun, but then a huge cloud came and covered the sky.` +* Expected completion: + ``` + { +     "translated": "Ich genoss die Sonne, aber dann kam eine riesige Wolke und bedeckte den Himmel.", +     "negated": "I was not enjoying the sun, and no huge cloud came and covered the sky.", +     "third_person": "She was enjoying the sun, but then a huge cloud came and covered the sky." + } + ``` + +
    + :white_check_mark: See solution! + + ``` + Take the following sentence and perform three tasks on it: +   + 1. Translate the sentence into German + 2. Negate the sentence + 3. Convert it into third person, and assume the person is a female. + The output should be a JSON document. Use the keys "translated", "negated" and "third_person" in the JSON. No need to include the original text. + Sentence: I was enjoying the sun, but then a huge cloud came and covered the sky. +   + JSON: + ``` + +
    + +___ + +## :question: Exercise 7 - Data extraction to JSON + +* Exercise: Write a prompt that generates the expected completion +* Input text: + ``` + Hello, my name is Mateo Gomez. I lost my Credit card on August 17th, and I would like to request its cancellation. The last purchase I made was of a Chicken parmigiana dish at Contoso Restaurant, located near the Hollywood Museum, for $40. Below is my personal information for validation: + Profession: Accountant + Social Security number is 123-45-6789 + Date of birth: 9-9-1989 + Phone number: 949-555-0110 + Personal address: 1234 Hollywood Boulevard Los Angeles CA + Linked email account: mateo@contosorestaurant.com + Swift code: CHASUS33XXX + ``` +* Expected completion: + ``` + { +     "reason": "Lost card", +     "classified_reason": "lost_card", +     "name": "Mateo Gomez", +     "ssn": "123-45-6789", +     "dob": "09/09/1989" + } + ``` + +
    + :white_check_mark: See solution! + + ``` + This is an email from a customer. Extract the following information: + - Reason for contact + - Classified reason for contact (can be one of "lost_card", "account_closure", "address_change") + - Name of customer + - SSN + - Date of birth + Extract it as JSON with keys reason, classified_reason, name, ssn, dob. For dob, use MM/DD/YYYY formatting. + Email: + Hello, my name is Mateo Gomez. I lost my Credit card on August 17th, and I would like to request its cancellation. The last purchase I made was of a Chicken parmigiana dish at Contoso Restaurant, located near the Hollywood Museum, for $40. Below is my personal information for validation: + Profession: Accountant + Social Security number is 123-45-6789 + Date of birth: 9-9-1989 + Phone number: 949-555-0110 + Personal address: 1234 Hollywood Boulevard Los Angeles CA + Linked email account: mateo@contosorestaurant.com + Swift code: CHASUS33XXX + Result: + ``` + +
    + +___ + +## :question: Exercise 8 - Fashion product description + +* Exercise: Write a prompt that generates the expected completion +* Input text: + ``` + Season: Winter + Style: Sweater + Gender: Female + Target group: Teenager + Material: Cotton + ``` +* Expected completion (or similar): + ``` + Stay warm and stylish this winter with our cozy cotton sweaters, perfect for the fashion-forward teenager. Refresh your wardrobe with the latest winter styles from our collection. + ``` + +
    + :white_check_mark: See solution! + + ``` + Write a two sentence tagline for this clothing article. Make it more verbose. + Season: Winter + Style: Sweater + Gender: Female + Target group: Teenager + Material: Cotton + + Tagline: + ``` + +
    + +___ + +## :question: Exercise 9 - Write a Blog Post + +* Exercise: Write a blog post about a topic of your choice +* Input text: You choose +* Expected completion: a blogpost with hashtages + +
    + :white_check_mark: See solution! + + ``` + Step 1: I want you to act as a social media manager. You will be helping me to brainstorm blog post outline ideas for the topic : + Step 2: Write 3 engaging and informative paragraphs about + Step 3: Write 3 engaging and informative paragraphs about + Step 4: Tags + ``` + +
    + +___ + +## :question: Exercise 10 - Call Center + +* Exercise: Analyze a call center conversation +* Input text: + ``` + Employee: "Hello, this is Julia Schreider from Contoso Company. How can I help you today?" + Customer: "Hi, I am Carsten Mueller. I ordered a package 10 days ago, on February 10th, and it was supposed to arrive in maximum 5 business days. I have called three times already and nobody could provide any more information. I want to know where the package is and I want the problem to be solved immediately. This is the worst service I had for a long time!" + Employee: "I apologize for the inconvenience, Mr. Mueller. I understand your frustration and I'm here to help. Can you please provide me with your order number so I can look into this for you?" + Customer: "Yes, it's ACZ456789." + Employee: "Thank you. I'm looking into it now. Can you please hold for a few minutes while I check the status of your package?" + Customer: "Okay." + Employee: "Thank you for your patience. I am sorry to inform you that I am unable to find the status of your package. It appears to have left the sending address, but no up-to-date status on the current location. I will further investigate your case and get back to you as soon as possible via phone call. Could you please provide me your contact information?" + Customer: "Ah not again. Anyway, my phone number is +4911112223344." + Employee: "I apologize again for the inconvenience. Is there anything else I can help you with today?" + Customer: "No." + Employee: "Thank you. Have a great day!" + ``` +* Expected completion: + ``` + { + "classified_reason": "lost_package", + "resolve_status": "unresolved", + "call_summary": "Customer ordered package 10 days ago and has not received it yet.", + "customer_name": "Carsten Mueller", + "employee_name": "Julia Schreider", + "order_number": "ACZ456789", + "customer_contact_nr": "+4911112223344", + "new_address": "N/A", + "sentiment_initial": ["angry", "frustrated"], + "sentiment_final": ["calm"], + "satisfaction_score_initial": 0, + "satisfaction_score_final": 5, + "eta": "N/A", + "action_item": ["track_package", "inquire_package_status", "contact_customer"] + } + ``` + +
    + :white_check_mark: See solution! + + ``` + Below is a customer call transcription between customer call employee at Contoso Company and a customer. Extract the following information: + + - Classified reason for contact (can be one of "lost_package", "late_package", "address_change", "new_package_request") + - Is the problem resolved? (can be one of "resolved", "unresolved") + - Call summary (in max 100 characters) + - Name of customer + - Name of call center employee + - Customer order number + - Customer contact information (if not mentioned, then "N/A") + - New customer address (if the call reason is to change address, else "N/A") + - Customer's sentiment in the beginning of the call (can be one or more of "calm", "complaining", "angry", "frustrated", "unhappy", "neutral", "happy") + - Customer's sentiment in the beginning of the call (can be one or more of "calm", "complaining", "angry", "frustrated", "unhappy", "neutral", "happy") + - How satisfied is the customer in the beginning of the call, 0 being very unsatisfied and 10 being very satisfied + - How satisfied is the customer in the end of the call, 0 being very unsatisfied and 10 being very satisfied + - Estimated time of arrival of package + - Action item (can be one or more of "no_action", "track_package", "inquire_package_status", "make_address_change", "cancel_order", "contact_customer) + + If customer is satisfied in the end, there is no follow up needed. Else, follow up with the relevant internal department to check the status. + + Extract it as JSON with keys classified_reason, resolve_status, call_summary, customer_name, employee_name, order_number, customer_contact_nr, new_address, sentiment_initial, sentiment_final, satisfaction_score_initial, satisfaction_score_final, eta, action_item. + + Employee: "Hello, this is Julia Schreider from Contoso Company. How can I help you today?" + Customer: "Hi, I am Carsten Mueller. I ordered a package 10 days ago, on February 10th, and it was supposed to arrive in maximum 5 business days. I have called three times already and nobody could provide any more information. I want to know where the package is and I want the problem to be solved immediately. This is the worst service I had for a long time!" + Employee: "I apologize for the inconvenience, Mr. Mueller. I understand your frustration and I'm here to help. Can you please provide me with your order number so I can look into this for you?" + Customer: "Yes, it's ACZ456789." + Employee: "Thank you. I'm looking into it now. Can you please hold for a few minutes while I check the status of your package?" + Customer: "Okay." + Employee: "Thank you for your patience. I am sorry to inform you that I am unable to find the status of your package. It appears to have left the sending address, but no up-to-date status on the current location. I will further investigate your case and get back to you as soon as possible via phone call. Could you please provide me your contact information?" + Customer: "Ah not again. Anyway, my phone number is +4911112223344." + Employee: "I apologize again for the inconvenience. Is there anything else I can help you with today?" + Customer: "No." + Employee: "Thank you. Have a great day!" + + JSON: + ``` + +
    + +___ + +## :question: Exercise 11 - Few-shot learning + +* Exercise: Write a few-shot learned prompt that classifies a movie summary. +* Data samples: + ``` + Paul Atreides, a brilliant and gifted young man born into a great destiny beyond his understanding, must travel to the most dangerous planet in the universe to ensure the future of his family and his people. As malevolent forces explode into conflict over the planet's exclusive supply of the most precious resource in existence-a commodity capable of unlocking humanity's greatest potential-only those who can conquer their fear will survive. + ['Action', 'Adventure', 'Science Fiction’] + + A botched store robbery places Wonder Woman in a global battle against a powerful and mysterious ancient force that puts her powers in jeopardy. + ['Action', 'Adventure', 'Fantasy'] + + After the devastating events of Avengers: Infinity War, the universe is in ruins due to the efforts of the Mad Titan, Thanos. With the help of remaining allies, the Avengers must assemble once more in order to undo Thanos' actions and restore order to the universe once and for all, no matter what consequences may be in store. + ['Adventure', 'Science Fiction', 'Action'] + + A widowed new dad copes with doubts, fears, heartache and dirty diapers as he sets out to raise his daughter on his own. Inspired by a true story. + ['Drama', 'Family', 'Comedy’] + + New data: + Harry, Ron and Hermione walk away from their last year at Hogwarts to find and destroy the remaining Horcruxes, putting an end to Voldemort's bid for immortality. But with Harry's beloved Dumbledore dead and Voldemort's unscrupulous Death Eaters on the loose, the world is more dangerous than ever. + ``` +* Expected completion: Classification of the new data point + +
    + :white_check_mark: See solution! + + Add `###` as a stop sequence. + + ``` + You are adding tag categories to movies, based on their descriptions. + + ### + Movie description: Paul Atreides, a brilliant and gifted young man born into a great destiny beyond his understanding, must travel to the most dangerous planet in the universe to ensure the future of his family and his people. As malevolent forces explode into conflict over the planet's exclusive supply of the most precious resource in existence-a commodity capable of unlocking humanity's greatest potential-only those who can conquer their fear will survive. + Tags: ['Action', 'Adventure', 'Science Fiction’] + ### + Movie description: A botched store robbery places Wonder Woman in a global battle against a powerful and mysterious ancient force that puts her powers in jeopardy. + Tags: ['Action', 'Adventure', 'Fantasy'] + ### + Movie description: After the devastating events of Avengers: Infinity War, the universe is in ruins due to the efforts of the Mad Titan, Thanos. With the help of remaining allies, the Avengers must assemble once more in order to undo Thanos' actions and restore order to the universe once and for all, no matter what consequences may be in store. + Tags: ['Adventure', 'Science Fiction', 'Action'] + ### + Movie description: A widowed new dad copes with doubts, fears, heartache and dirty diapers as he sets out to raise his daughter on his own. Inspired by a true story. + Tags: ['Drama', 'Family', 'Comedy’] + ### + Movie description: Harry, Ron and Hermione walk away from their last year at Hogwarts to find and destroy the remaining Horcruxes, putting an end to Voldemort's bid for immortality. But with Harry's beloved Dumbledore dead and Voldemort's unscrupulous Death Eaters on the loose, the world is more dangerous than ever. + Tags: + ``` + +
    + +___ + +## :question: Exercise 12 - NL to SQL with Codex + +* Exercise: Write a prompt that generates the expected SQL statement +* Table information: + * Table: customer // Columns: firstname, name, customer_id, address + * Table: orders // Columns: order_id, customer_id, product_id, product_amount + * Table: products // Columns: product_id, price, name, description +* Expected completion: a query that returns the top 10 orders and show the customer name + +
    + :white_check_mark: See solution! + + Use SQL wiht `code-davinci-002` + + ``` + """ + table customer, columns=firstname, name, customer_id, address + table orders, columns=order_id, customer_id, product_id, product_amount + table products, columns=product_id, price, name, description + Write a query that returns the top 10 orders and show the customer name + """ + + query = + ``` + +
    \ No newline at end of file diff --git a/labs/02-integrating-ai/01-AzureOpenAIAPI/azureopenaiapi.ipynb b/labs/02-integrating-ai/01-AzureOpenAIAPI/azureopenaiapi.ipynb new file mode 100644 index 0000000..88a0288 --- /dev/null +++ b/labs/02-integrating-ai/01-AzureOpenAIAPI/azureopenaiapi.ipynb @@ -0,0 +1,256 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 01 - Working with the Azure OpenAI API directly\n", + "\n", + "In this lab, we will perform a couple of simple calls to the Azure OpenAI API.\n", + "- The first call will allow us to find out which Model Deployments are available for the Azure OpenAI API.\n", + "- The second call will send a prompt to the Azure OpenAI API.\n", + "\n", + "## Setup\n", + "\n", + "First, we start by providing the API key for Azure OpenAI and the endpoint." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import requests\n", + "import os\n", + "from dotenv import load_dotenv\n", + "\n", + "# Load environment variables\n", + "load_dotenv()\n", + "\n", + "API_KEY = os.getenv(\"OPENAI_API_KEY\")\n", + "API_VERSION = os.getenv(\"OPENAI_API_VERSION\")\n", + "RESOURCE_ENDPOINT = os.getenv(\"OPENAI_API_BASE\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we'll set the endpoint that we're going to call. This endpoint will return a list of available model deployments." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "url = RESOURCE_ENDPOINT + \"/openai/deployments?api-version=\" + API_VERSION\n", + "\n", + "print (url)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Above you will see the full URL that we are going to be calling." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Get the list of available Model Deployments\n", + "\n", + "Now let's call that Azure OpenAI endpoint and see what it returns. We pass the API key in the HTTP header." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "r = requests.get(url, headers={\"api-key\": API_KEY})\n", + "\n", + "print(r.text)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Above, there should now be a JSON formatted list of model deployments. The output will contain one or more sections similar to the following\n", + "\n", + "```\n", + " {\n", + " \"scale_settings\": {\n", + " \"scale_type\": \"standard\"\n", + " },\n", + " \"model\": \"gpt-35-turbo\",\n", + " \"owner\": \"organization-owner\",\n", + " \"id\": \"gpt35turbo\",\n", + " \"status\": \"succeeded\",\n", + " \"created_at\": 1684150536,\n", + " \"updated_at\": 1684150536,\n", + " \"object\": \"deployment\"\n", + " }\n", + "```\n", + "\n", + "In the output, you'll see the **Model Name** as the `model` value and the **Deployment Name** as the `id` value. We'll be using an `id` value for the next section." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Send a prompt to Azure OpenAI using the API\n", + "\n", + "Next, let's call the Azure OpenAI API with a prompt. To do this, we'll need the `id` of our completion model deployment.\n", + "\n", + "We've already setup this value in the `.env` file, but you should see a matching value in the list that was output above." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "DEPLOYMENT_ID = os.getenv(\"AZURE_OPENAI_COMPLETION_DEPLOYMENT_NAME\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As before, we'll construct a URL to call. This time, we'll also be creating a payload." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "url = RESOURCE_ENDPOINT + \"/openai/deployments/\" + DEPLOYMENT_ID + \"/completions?api-version=\" + API_VERSION\n", + "\n", + "print(url)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Again, you will see the full URL that we are going to call. This URL will use the specified deployment to call the **completions** API.\n", + "\n", + "Next, we will call the Azure OpenAI API using the URL above. Just like last time, we pass the API key in the HTTP header. We also send a JSON formatted body as part of the request which contains the *prompt* that we want to use to get a response from the OpenAI model. In this case, our prompt is \"Once upon a time\", which should cause the model to complete the prompt by generating a story." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "r = requests.post(url, headers={\"api-key\": API_KEY}, json={\"prompt\": \"Once upon a time\"})\n", + "\n", + "print(json.dumps(r.json(), indent=2))" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As before, the result of the API call will be JSON data similar to the below example.\n", + "\n", + "```\n", + "{\n", + " \"id\": \"cmpl-7WoRsMTvolWjs2IzK9OdI0MXHHXwu\",\n", + " \"object\": \"text_completion\",\n", + " \"created\": 1688054776,\n", + " \"model\": \"text-davinci-003\",\n", + " \"choices\": [\n", + " {\n", + " \"text\": \" there was a lovely princess who have magical powers. She lived in a castle far\",\n", + " \"index\": 0,\n", + " \"finish_reason\": \"length\",\n", + " \"logprobs\": null\n", + " }\n", + " ],\n", + " \"usage\": {\n", + " \"completion_tokens\": 16,\n", + " \"prompt_tokens\": 4,\n", + " \"total_tokens\": 20\n", + " }\n", + "}\n", + "```\n", + "\n", + "Here's some more information about some of the data contained in that response.\n", + "\n", + "Key | Description\n", + "--- | ---\n", + "`model` | The model that was used to generate the response to the prompt\n", + "`text` | This is the response that was generated by the OpenAI model\n", + "`finish_reason` | In this case, the `finish_reason` is `length`, which indicates that the response was cut short due to reaching the *token limit*. We didn't specify a maximum number of tokens in our request, so it will have used the default limit of **16**. Therefore, our response was cut short when the limit of 16 tokens was reached.\n", + "`completion_tokens` | The number of tokens that were used in generating the response\n", + "`prompt_tokens` | The number of tokens that were consumed by the prompt\n", + "`total_tokens` | The total number of tokens that were consumed by the request (`prompt_tokens` + `completion_tokens`)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Summary\n", + "\n", + "In this lab, we used the Azure OpenAI API directly to query information about our instance of the Azure OpenAI service and to send a prompt to an OpenAI model." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Up Next\n", + "\n", + "In the next lab, we will look at using the OpenAI SDK to work with the Azure OpenAI service." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.4" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/labs/02-integrating-ai/01-AzureOpenAIAPI/azureopenaiapi.md b/labs/02-integrating-ai/01-AzureOpenAIAPI/azureopenaiapi.md new file mode 100644 index 0000000..84ed384 --- /dev/null +++ b/labs/02-integrating-ai/01-AzureOpenAIAPI/azureopenaiapi.md @@ -0,0 +1,5 @@ +# Working with the Azure OpenAI API directly. + +In this lab, we'll walk through showing how to interact with an Azure OpenAI API service endpoint. This will not likely be the best option for most scenarios, but it highlights what a direct call to the underlying rest-based API looks like and will give you an appreciation of what's going on behind the scenes when you use the orchestrators in the other exercises. + +[Azure OpenAI API Notebook](azureopenaiapi.ipynb) diff --git a/labs/02-integrating-ai/02-OpenAIPackages/openai.ipynb b/labs/02-integrating-ai/02-OpenAIPackages/openai.ipynb new file mode 100644 index 0000000..25c4fe7 --- /dev/null +++ b/labs/02-integrating-ai/02-OpenAIPackages/openai.ipynb @@ -0,0 +1,212 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 02 - Using the OpenAI Library\n", + "\n", + "In the [first](../01-AzureOpenAIAPI/azureopenaiapi.ipynb) lab, we walked through calling the Azure OpenAI API directly to list available model deployments and submit a prompt for completion. An easier way to work with an API is to use a *Library*. A Library is a collection of packages and modules that allow reusable code to be shared with the community.\n", + "\n", + "In this lab, we'll use the OpenAI Python library to perform the same operations as we did in the first lab." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, we use the `import` statement to let our application know that we're going to be using the OpenAI library in our code." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import openai" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we'll bring in the values from our `.env` file." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "from dotenv import load_dotenv\n", + "\n", + "# Load environment variables\n", + "load_dotenv()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The OpenAI library needs some configuration parameters set to allow it to work with the OpenAI service. We'll set the following parameters.\n", + "\n", + "Parameter name | Description\n", + "--- | ---\n", + "`openai.api_type` | We set this value to indicate whether we're using the native OpenAI service, or the Azure OpenAI service\n", + "`openai.api_key` | This is the value for our API key\n", + "`openai.api_base` | This is the resource endpoint for the OpenAI service we're using\n", + "`openai_api_version` | This is the version of the API we are going to use" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "openai.api_type = os.getenv(\"OPENAI_API_TYPE\")\n", + "openai.api_key = os.getenv(\"OPENAI_API_KEY\")\n", + "openai.api_base = os.getenv(\"OPENAI_API_BASE\")\n", + "openai.api_version = os.getenv(\"OPENAI_API_VERSION\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Get the list of available Model Deployments\n", + "\n", + "We can now call the `Deployment.list()` method of the OpenAI library." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "openai.Deployment.list()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You'll see that the result is the same JSON data that we got when we called the API directly.\n", + "\n", + "## Send a prompt to Azure OpenAI using the OpenAI library\n", + "\n", + "Ok, now that we have the list of deployment models, let's try to do a Completion.\n", + "\n", + "We'll use the values from our `.env` file to configure this." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "COMPLETION_MODEL = os.getenv(\"OPENAI_COMPLETION_MODEL\")\n", + "DEPLOYMENT_ID = os.getenv(\"AZURE_OPENAI_COMPLETION_DEPLOYMENT_NAME\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we've configured the OpenAI Python library in the previous steps, we can go ahead and call the completions method to generate a response. We'll call the `Completion.create()` method and pass in the name of our `model`, the `deployment_id` and the `prompt` we want to use." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "r = openai.Completion.create(\n", + " model = COMPLETION_MODEL,\n", + " deployment_id = DEPLOYMENT_ID,\n", + " prompt = \"The one thing I love more than anything else is \",\n", + ")\n", + "\n", + "print(r)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Again, the response above should be the same JSON data that we got when we called the API directly, containing details of the model we called, the response that was generated and the token usage.\n", + "\n", + "We could also just extract the generated response." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(r.choices[0].text)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Summary\n", + "\n", + "The OpenAI library provides a more concise way to work with the OpenAI API. Once we've set up the initial parameters, we don't need to send them each time as we need to do with a direct API call. It's also easier to add information such as prompts to the call, as we can pass those values in as part of the call to the OpenAI library methods instead of having to pass in JSON objects as part of the request body.\n", + "\n", + "You can find more details about the completions API in the reference documentation:\n", + "\n", + "https://platform.openai.com/docs/api-reference/completions/create" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Up Next\n", + "\n", + "In the next lab we'll begin looking at AI orchestrators. Whereas the OpenAI library simplfies working with the OpenAI API, orchestrators take things to the next level!" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.4" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/labs/02-integrating-ai/02-OpenAIPackages/openai.md b/labs/02-integrating-ai/02-OpenAIPackages/openai.md new file mode 100644 index 0000000..2ab94b8 --- /dev/null +++ b/labs/02-integrating-ai/02-OpenAIPackages/openai.md @@ -0,0 +1,5 @@ +# Using the OpenAI Library + +In the [first](../01-AzureOpenAIAPI/azureopenaiapi.md) lab, we showed how to use the Azure OpenAI API directly. In this lab we'll show how to interact with the Azure OpenAI API using the OpenAI Python library. This will provide some insight into the configuration and setup that is needed to use one of these higher level abstraction frameworks. + +[OpenAI Notebook](openai.ipynb) diff --git a/labs/02-integrating-ai/03-Langchain/langchain.ipynb b/labs/02-integrating-ai/03-Langchain/langchain.ipynb new file mode 100644 index 0000000..e070a1a --- /dev/null +++ b/labs/02-integrating-ai/03-Langchain/langchain.ipynb @@ -0,0 +1,230 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 03 - Langchain\n", + "\n", + "In this lab, we will introduce [Langchain](https://python.langchain.com/docs/get_started/introduction), a framework for developing applications powered by language models.\n", + "\n", + "Langchain supports Python and Javascript / Typescript. For this lab, we will use Python." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll start by importing the `AzureOpenAI` specific components from the `langchain` package." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.llms import AzureOpenAI" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As with all the other labs, we'll need to provide our API key and endpoint details, so we'll load them from our `.env` file." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import openai\n", + "from dotenv import load_dotenv\n", + "\n", + "load_dotenv()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we'll configure Langchain by providing the API key and endpoint details, along with the API version information.\n", + "\n", + "As Langchain can work with multiple AI services, we need to specify that we want to work with Azure via the `openai_api_type` parameter." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create an instance of Azure OpenAI\n", + "llm = AzureOpenAI(\n", + " openai_api_type = os.getenv(\"OPENAI_API_TYPE\"),\n", + " openai_api_version = os.getenv(\"OPENAI_API_VERSION\"),\n", + " openai_api_base = os.getenv(\"OPENAI_API_BASE\"),\n", + " openai_api_key = os.getenv(\"OPENAI_API_KEY\"),\n", + " deployment_name = os.getenv(\"AZURE_OPENAI_COMPLETION_DEPLOYMENT_NAME\")\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Send a prompt to Azure OpenAI using Langchain\n", + "\n", + "We're now ready to send a request to Azure OpenAI. To do this, we invoke the `llm` instance we created above and pass in the prompt." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# Call the API\n", + "r = llm(\"This is a test.\")\n", + "\n", + "# Print the response\n", + "print(r)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Send a prompt to Azure OpenAI using Langchain Chaining\n", + "\n", + "Now that we have seen Langchain in action, let's take a quick peek at chaining and adding variables to our prompt. To do this we will add `LLMChain` to the `llm` instance created above." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.prompts import PromptTemplate\n", + "from langchain.chains import LLMChain" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the OpenAI API, we still had to pass the prompt in using the `Completion.create()` method. With Langchain, we can create a `PromptTemplate`. This way, we can define our prompt up front and leave placeholders for values that will be set later on. The placeholder could be values that are passed from an end user or application via an API. We don't know what they at this point.\n", + "\n", + "In the below example, the `{input}` in curly brackets is the placeholder value that will be populated later on." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a prompt template with variables, note the curly braces\n", + "prompt = PromptTemplate(\n", + " input_variables=[\"input\"],\n", + " template=\"What interesting things can I make with a {input}?\",\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we define a chain. In this case, the chain has two components. One component is the prompt template. The other is the object that represents our AI model (`llm`)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a chain\n", + "chain = LLMChain(llm=llm, prompt=prompt)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we initiate the chain. You can see that we pass in a value for the `input` placeholder." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Run the chain only specifying the input variable.\n", + "response = chain.run({\"input\": \"raspberry pi\"})\n", + "\n", + "# As we are using a single input variable, you could also run the string like this:\n", + "# response = chain.run(\"raspberry pi\")\n", + "\n", + "print(response)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Summary\n", + "\n", + "Langchain is an example of an AI orchestrator. It provides an alternative method to the raw API or using an SDK package to access the AI models, but on top of that can provide additional integrations, deal with issues related to rate limiting of the API and provide an abstraction layer over potentially complex operations. We'll get into those more complex use cases in later labs." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Up Next\n", + "\n", + "In the next lab, we'll look at another AI Orchestrator - Semantic Kernel." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.4" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/labs/02-integrating-ai/03-Langchain/langchain.md b/labs/02-integrating-ai/03-Langchain/langchain.md new file mode 100644 index 0000000..2daec87 --- /dev/null +++ b/labs/02-integrating-ai/03-Langchain/langchain.md @@ -0,0 +1,29 @@ +# Langchain + +## Getting Started + +Let's get started by showing how to interact with the Azure OpenAI service using langchain packages and libraries. This will provide some insight into the configuration and setup that is needed to use one of these higher level abstraction frameworks. + +[Langchain Notebook](langchain.ipynb) + +## Langchain in an Application + +The following section will demonstrate how to take the simple langchain interaction above and use it in an application. For the purposes of this exercise we will use fastapi along with uvicorn to host the Python web-based application. + +1. Create a new folder for the application (apps/fastapi-langchain) +2. Copy the "main.py" and "requirements.txt" file from this folder to the newly created folder +3. Have a look at the "main.py file" to see the different endpoints available +4. Navigate to the newly created folder and type the following command to install the required packages: + +```bash +pip install -r requirements.txt +``` + +5. Start the application using the following command: + +```bash +uvicorn main:app --reload +``` + +6. Open a browser and navigate to http://localhost:8000/docs +7. Click on the "POST /completion" endpoint and then click on "Try it out" diff --git a/labs/02-integrating-ai/03-Langchain/langchainwithacs.ipynb b/labs/02-integrating-ai/03-Langchain/langchainwithacs.ipynb new file mode 100644 index 0000000..ce74e8b --- /dev/null +++ b/labs/02-integrating-ai/03-Langchain/langchainwithacs.ipynb @@ -0,0 +1,167 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 03 - Langchain with vector search\n", + "\n", + "In this lab, we will introduce [Langchain](https://python.langchain.com/docs/get_started/introduction), a framework for developing applications powered by language models and ask question on custom data using Azure Search\n", + "\n", + "Langchain supports Python and Javascript / Typescript. For this lab, we will use Python.\n", + "\n", + "## Setup\n", + "\n", + "We'll use the `pip` tool to install the `langchain` Python package and azure cognitive search" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pip install --index-url=https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-python/pypi/simple/ azure-search-documents==11.4.0a20230509004\n", + "pip install azure-identity" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os, json\n", + "from dotenv import load_dotenv\n", + "\n", + "# Load environment variables\n", + "# API_KEY = \"\"\n", + "# RESOURCE_ENDPOINT = \"\" # For example https://.openai.azure.com/\n", + "# DEPLOYMENT_ID = \"\" # For example \"text-davinci-003\"\n", + "load_dotenv()\n", + "\n", + "# Set this to `azure`\n", + "os.environ[\"OPENAI_API_TYPE\"] = \"azure\"\n", + "os.environ[\"OPENAI_API_VERSION\"] = \"2023-03-15-preview\"" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First we will load the data from the csv file into a loader" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.document_loaders.csv_loader import CSVLoader\n", + "\n", + "loader = CSVLoader(file_path='../../extra/data/movies/movies.csv', source_column='original_title', encoding='utf-8', csv_args={'delimiter':',', 'fieldnames': ['id', 'original_language', 'original_title', 'popularity', 'release_date', 'vote_average', 'vote_count', 'genre', 'overview', 'revenue', 'runtime', 'tagline']})\n", + "data = loader.load()\n", + "data = data[1:200] # reduce dataset if you want\n", + "print('Loaded %s movies' % len(data))" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will be using the OpenAI embedding" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.embeddings import OpenAIEmbeddings\n", + "embeddings = OpenAIEmbeddings(deployment=\"text-embedding-ada-002\", chunk_size=1) \n", + "\n", + "from langchain.llms import AzureOpenAI\n", + "\n", + "llm = AzureOpenAI(\n", + " deployment_name=os.environ[\"DEPLOYMENT_ID\"],\n", + " model_name=\"gpt-35-turbo\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import openai\n", + "from langchain.embeddings.openai import OpenAIEmbeddings\n", + "from langchain.vectorstores.azuresearch import AzureSearch\n", + "\n", + "model: str = \"text-embedding-ada-002\"\n", + "index_name: str = \"langchain-vector-demo\"\n", + "\n", + "embeddings: OpenAIEmbeddings = OpenAIEmbeddings(model=model, chunk_size=1)\n", + "vector_store: AzureSearch = AzureSearch(\n", + " azure_search_endpoint=os.environ[\"AZURE_COGNITIVE_SEARCH_ENDPOINT\"],\n", + " azure_search_key=os.environ[\"AZURE_COGNITIVE_SEARCH_ADMIN_KEY\"],\n", + " index_name=index_name,\n", + " embedding_function=embeddings.embed_query,\n", + ")\n", + "\n", + "vector_store.add_documents(documents=data)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Perform a similarity search\n", + "docs = vector_store.similarity_search(\n", + " query=\"What are the best 80s movies I should look?\",\n", + " k=3,\n", + " search_type=\"similarity\",\n", + ")\n", + "print(docs[0].page_content)\n", + "\n", + "# Perform a hybrid search\n", + "docs = vector_store.similarity_search(\n", + " query=\"What are the best 80s movies I should look?\", k=3\n", + ")\n", + "print(docs[0].page_content)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.retrievers import AzureCognitiveSearchRetriever\n", + "\n", + "# os.environ[\"AZURE_COGNITIVE_SEARCH_SERVICE_NAME\"] = \"\"\n", + "# os.environ[\"AZURE_COGNITIVE_SEARCH_INDEX_NAME\"] = \"\"\n", + "# os.environ[\"AZURE_COGNITIVE_SEARCH_API_KEY\"] = \"\"\n", + "\n", + "retriever = AzureCognitiveSearchRetriever(content_key=\"content\")\n", + "\n", + "retriever.get_relevant_documents(\"what is the best movie of all time\")" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/labs/02-integrating-ai/03-Langchain/langchainwithdata.ipynb b/labs/02-integrating-ai/03-Langchain/langchainwithdata.ipynb new file mode 100644 index 0000000..c8bc460 --- /dev/null +++ b/labs/02-integrating-ai/03-Langchain/langchainwithdata.ipynb @@ -0,0 +1,298 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 03 - Langchain with vector store\n", + "\n", + "In this lab, we will introduce [Langchain](https://python.langchain.com/docs/get_started/introduction), a framework for developing applications powered by language models and ask question on custom data using a vector store.\n", + "\n", + "Langchain supports Python and Javascript / Typescript. For this lab, we will use Python.\n", + "\n", + "## Setup\n", + "\n", + "We'll use the `pip` tool to install the `langchain` Python package and `quadrant`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pip install langchain openai tiktoken qdrant-client python-dotenv --upgrade" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll start by loading the movies csv file the `AzureOpenAI` specific components from the `langchain` package.\n", + "As with all the other labs, we'll need to provide our API key and endpoint details. We'll also provide the name (id) of the model deployment that we want to use." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "from dotenv import load_dotenv\n", + "\n", + "# Load environment variables\n", + "# API_KEY = \"\"\n", + "# RESOURCE_ENDPOINT = \"\" # For example https://.openai.azure.com/\n", + "# DEPLOYMENT_ID = \"\" # For example \"text-davinci-003\"\n", + "load_dotenv()\n", + "\n", + "# Set this to `azure`\n", + "os.environ[\"OPENAI_API_TYPE\"] = \"azure\"\n", + "os.environ[\"OPENAI_API_VERSION\"] = \"2023-03-15-preview\"" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First we will load the data from the csv file into a loader" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.document_loaders.csv_loader import CSVLoader\n", + "\n", + "loader = CSVLoader(file_path='../../extra/data/movies/movies.csv', source_column='original_title', encoding='utf-8', csv_args={'delimiter':',', 'fieldnames': ['id', 'original_language', 'original_title', 'popularity', 'release_date', 'vote_average', 'vote_count', 'genre', 'overview', 'revenue', 'runtime', 'tagline']})\n", + "data = loader.load()\n", + "data = data[1:200] # reduce dataset if you want\n", + "print('Loaded %s movies' % len(data))\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will be using the OpenAI embedding" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.embeddings import OpenAIEmbeddings\n", + "embeddings = OpenAIEmbeddings(deployment=\"text-embedding-ada-002\", chunk_size=1) \n", + "\n", + "from langchain.llms import AzureOpenAI\n", + "\n", + "llm = AzureOpenAI(\n", + " deployment_name=os.environ[\"DEPLOYMENT_ID\"],\n", + " model_name=\"gpt-35-turbo\",\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we'll configure Langchain to use Qdrant as vector store using docker, embedd the loaded documents and store the embeddings in the vector store. Depending on the rate limiting this might take a while." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```\n", + "docker run --name qdrant -p 6333:6333 -p 6334:6334 -v \"$(pwd)/labs/extra/data/qdrantstorage:/qdrant/storage\" qdrant/qdrant\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.vectorstores import Qdrant\n", + "from qdrant_client import QdrantClient\n", + "\n", + "url = \"http://localhost:6333\"\n", + "qdrant = Qdrant.from_documents(\n", + " data,\n", + " embeddings,\n", + " url=url,\n", + " prefer_grpc=False,\n", + " collection_name=\"my_movies\",\n", + ")\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we are going to test the vector store and search for similarity" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "vectorstore = qdrant\n", + "\n", + "query = \"What is the best 80s movie I should look?\"\n", + "found_docs = vectorstore.similarity_search(query)\n", + "\n", + "print(found_docs[0].metadata['source'])" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Another way would be to search for similar movies but with a more diverse results" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "retriever = vectorstore.as_retriever(search_type=\"mmr\")\n", + "\n", + "query = \"Which movies are about space travel?\"\n", + "print(retriever.get_relevant_documents(query)[0].metadata['source'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.indexes import VectorstoreIndexCreator\n", + "from langchain.chains import RetrievalQA\n", + "from langchain.llms import OpenAI\n", + "\n", + "index_creator = VectorstoreIndexCreator(embedding=embeddings)\n", + "docsearch = index_creator.from_loaders([loader])" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we are using a QA chain to ask questions about the movies" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "openai = OpenAI(deployment_id=os.environ[\"DEPLOYMENT_ID\"])\n", + "chain = RetrievalQA.from_chain_type(llm=openai, chain_type=\"stuff\", retriever=docsearch.vectorstore.as_retriever(), input_key=\"question\", return_source_documents=True)\n", + "query = \"Do you have a column called popularity?\"\n", + "response = chain({\"question\": query})\n", + "print(response['result'])\n", + "print(response['source_documents'])\n", + "\n", + "query = \"What is the movie with the highest popularity?\"\n", + "response = chain({\"question\": query})\n", + "print(response['result'])\n", + "print(response['source_documents'])" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Load the vector database from a file and ask the same question again." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#del vectorstore\n", + "\n", + "from langchain.vectorstores import Qdrant\n", + "from qdrant_client import QdrantClient\n", + "\n", + "from langchain.embeddings import OpenAIEmbeddings\n", + "embeddings = OpenAIEmbeddings(deployment=\"text-embedding-ada-002\", chunk_size=1) \n", + "\n", + "client = QdrantClient(url=\"http://localhost:6333\", prefer_grpc=False)\n", + "qdrantStore = Qdrant(client=client, collection_name=\"my_movies\", embeddings=embeddings)\n", + "\n", + "query = \"What are the three best movie about space travel?\"\n", + "found_docs = qdrantStore.similarity_search(query)\n", + "\n", + "print(found_docs[0].metadata['source'])" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now lets create a retriever to query it" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "retriever = qdrantStore.as_retriever(search_type=\"mmr\")\n", + "\n", + "query = \"What are the three best movie about space travel?\"\n", + "print(retriever.get_relevant_documents(query)[0].metadata['source'])\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.2" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/labs/02-integrating-ai/03-Langchain/main.py b/labs/02-integrating-ai/03-Langchain/main.py new file mode 100644 index 0000000..33d805c --- /dev/null +++ b/labs/02-integrating-ai/03-Langchain/main.py @@ -0,0 +1,41 @@ +import os +# Import Azure OpenAI +from langchain.llms import AzureOpenAI +from dotenv import load_dotenv +from fastapi import FastAPI +from pydantic import BaseModel + +# Load environment variables +load_dotenv() + +# Configure OpenAI API +openai_api_type = os.getenv("OPENAI_TYPE") +openai_api_version = os.getenv("OPENAI_VERSION") +openai_api_base = os.getenv("AZURE_OPENAI_ENDPOINT") +openai_api_key = os.getenv("AZURE_OPENAI_API_KEY") +COMPLETION_DEPLOYMENT = os.getenv("AZURE_OPENAI_DEPLOYMENT_NAME") + +# Create an instance of Azure OpenAI +llm = AzureOpenAI( + openai_api_type = openai_api_type, + openai_api_version = openai_api_version, + openai_api_base = openai_api_base, + openai_api_key = openai_api_key, + deployment_name = COMPLETION_DEPLOYMENT +) + +# Start the App +app = FastAPI() + +class Prompt(BaseModel): + prompt: str + max_tokens: int + +@app.get("/") +def read_root(): + return {"Hello": "World"} + +@app.post("/completion/") +async def execute_completion(prompt: Prompt): + response = llm(prompt.prompt) + return {"response": response} diff --git a/labs/02-integrating-ai/03-Langchain/requirements.txt b/labs/02-integrating-ai/03-Langchain/requirements.txt new file mode 100644 index 0000000..9de5f6e --- /dev/null +++ b/labs/02-integrating-ai/03-Langchain/requirements.txt @@ -0,0 +1,4 @@ +fastapi +uvicorn +langchain +python-dotenv \ No newline at end of file diff --git a/labs/02-integrating-ai/04-SemanticKernel/semantickernel.ipynb b/labs/02-integrating-ai/04-SemanticKernel/semantickernel.ipynb new file mode 100644 index 0000000..847cb56 --- /dev/null +++ b/labs/02-integrating-ai/04-SemanticKernel/semantickernel.ipynb @@ -0,0 +1,282 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 04. Semantic Kernel\n", + "\n", + "In this lab, we will introduce **Semantic Kernel**. Like **Langchain**, it provides a framework for working with AI models and supports applications written in Python. Semantic Kernel also adds support for .NET and Java applications.\n", + "\n", + "As with the other labs, we'll start by reading in values from the `.env` file.\n", + "\n", + "**NOTE**: This lab uses **.NET** so be sure to select .NET and not Python when starting to use this notebook." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [], + "source": [ + "#r \"nuget: dotenv.net, 3.1.2\"\n", + "\n", + "using dotenv.net;\n", + "\n", + "// Read values from .env file\n", + "var envVars = DotEnv.Fluent()\n", + " .WithoutExceptions()\n", + " .WithEnvFiles(\"../../../.env\")\n", + " .WithTrimValues()\n", + " .WithDefaultEncoding()\n", + " .WithOverwriteExistingVars()\n", + " .WithoutProbeForEnv()\n", + " .Read();\n", + "\n", + "// Load values into variables and strip quotes\n", + "var model = envVars[\"AZURE_OPENAI_COMPLETION_DEPLOYMENT_NAME\"].Replace(\"\\\"\", \"\");\n", + "var azureEndpoint = envVars[\"OPENAI_API_BASE\"].Replace(\"\\\"\", \"\");\n", + "var apiKey = envVars[\"OPENAI_API_KEY\"].Replace(\"\\\"\", \"\");\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To start working with Semantic Kernel, we'll need to load its nuget package." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [], + "source": [ + "#r \"nuget: Microsoft.SemanticKernel, 0.17.230711.7-preview\"" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Semantic Kernel works by creating an instance of the Kernel and then adding in various plugins to perform different functions. Those addins or functions can then be called individually or chained together to perform more complex tasks.\n", + "\n", + "We use the standard .NET `builder` pattern to initialise the kernel. Notice that we pass in the details of the completion model that we're going to use, the Azure OpenAI API endpoint URL and the API key." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [], + "source": [ + "using Microsoft.SemanticKernel;\n", + "\n", + "var builder = new KernelBuilder();\n", + "builder.WithAzureChatCompletionService(model, azureEndpoint, apiKey);\n", + "\n", + "IKernel kernel = builder.Build();" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's create a Semantic Function to perform a simple query. We start by creating a prompt template. Notice that we use a placeholder - `{{$input}}` - to represent a value that we will pass in later." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [], + "source": [ + "string prompt = \"What interesting things can I make with a {{$input}}?\";" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we create a Semantic Function using our prompt and register it with the kernel." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [], + "source": [ + "var whatCanIMakeFunction = kernel.CreateSemanticFunction(prompt);" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we invoke the function with a value passed in to replace our `{{$input}}` variable." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [], + "source": [ + "var response = await whatCanIMakeFunction.InvokeAsync(\"raspberry pi\");\n", + "\n", + "Console.WriteLine(response);" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The result is a long list of ideas for things we could make with a Raspberry Pi. \n", + "\n", + "Now, let's look at chaining functions together. We can configure Semantic Kernel to perform multiple tasks, using the output of the first task as the input for the second and so on.\n", + "\n", + "Let's improve the above query by getting a summary of the options that were generated. First, we'll create a new prompt that will generate a summary of some text." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [], + "source": [ + "using Microsoft.SemanticKernel.Orchestration;\n", + "\n", + "string summaryPrompt = \"Summarize the following text: {{$input}}\";\n", + "var summaryFunction = kernel.CreateSemanticFunction(summaryPrompt);" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our new semantic function created, let's now run it together with the original prompt to generate ideas. The following code will initiate the `whatCanIMakeFunction` with the value `raspberry pi` and then pass the output from that function to the `summaryFunction`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [], + "source": [ + "var context = await kernel.RunAsync(\n", + " new ContextVariables(\"raspberry pi\"),\n", + " whatCanIMakeFunction,\n", + " summaryFunction);\n", + "\n", + "Console.WriteLine(context);" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Summary\n", + "\n", + "Semantic Kernel is another example of an AI orchestrator. Like other orchestrators, it can be used to simplify the process of creating complex AI applications. As with Langchain, we'll explore more Semantic Kernel features later in these labs." + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/labs/02-integrating-ai/README.md b/labs/02-integrating-ai/README.md new file mode 100644 index 0000000..8e40c8e --- /dev/null +++ b/labs/02-integrating-ai/README.md @@ -0,0 +1,14 @@ +# 02 - Integrating AI into Applications + +In this folder you will find exercises for integrating large language models (LLMs) into applications. We introduce the OpenAI API's, the OpenAI Libraries and the LangChain and Semantic Kernel *orchestrators*. + +For each exercise you will see how to setup a sample project and turn a prompt into a callable API endpoint. + +The list below outlines some of the options for interacting and wrapping the Azure Open AI service. The first item in the list outlines how to interact with the raw Azure OpenAI API endpoint. This is not likely the best option for most scenarios, but it highlights what the underlying rest-based API looks like. The second item in the list is how to use the OpenAI packages and configure them for Azure OpenAI. The third item in the list is how to use the Semantic Kernel framework to wrap the Azure OpenAI API. The fourth item in the list is how to use Langchain to wrap the Azure OpenAI API. + +The first two in the list are focused on the API structure and how to interact with the Azure OpenAI endpoints. The last two in the list are focused on how to orchestrate and chain multiple steps together which will then determine the appropriate way to interact with the Azure OpenAI API in a way that makes it easier to use in an application. + +* [1) Azure OpenAI API](01-AzureOpenAIAPI/azureopenaiapi.md) +* [2) OpenAI Packages/Libraries](02-OpenAIPackages/openai.md) +* [3) Langchain](03-LangChain/langchain.md) +* [4) Semantic Kernel](04-SemanticKernel/semantickernel.md) diff --git a/labs/03-orchestration/01-Tokens/movies.csv b/labs/03-orchestration/01-Tokens/movies.csv new file mode 100644 index 0000000..dd0fd8c --- /dev/null +++ b/labs/03-orchestration/01-Tokens/movies.csv @@ -0,0 +1,501 @@ +id,original_language,original_title,popularity,release_date,vote_average,vote_count,genre,overview,revenue,runtime,tagline +381284.0,en,Hidden Figures,49.802,2016-12-10,8.1,7310.0,"['Drama', 'History']","The untold story of Katherine G. Johnson, Dorothy Vaughan and Mary Jackson – brilliant African-American women working at NASA and serving as the brains behind one of the greatest operations in history – the launch of astronaut John Glenn into orbit. The visionary trio crossed all gender and race lines to inspire generations to dream big.",230698791.0,127.0,"Meet the women you don't know, behind the mission you do." +356334.0,en,Gridlocked,9.801,2016-06-14,5.8,130.0,['Action'],Former SWAT leader David Hendrix and hard-partying movie star Brody Walker must cut their ride-along short when a police training facility is attacked by a team of mercenaries.,0.0,114.0,Only one way out… +475557.0,en,Joker,116.462,2019-10-02,8.2,18970.0,"['Crime', 'Thriller', 'Drama']","During the 1980s, a failed stand-up comedian is driven insane and turns to a life of crime and chaos in Gotham City while becoming an infamous psychopathic crime figure.",1074251311.0,122.0,Put on a happy face. +347847.0,en,The Sand,14.172,2015-08-28,5.1,157.0,['Horror'],"Just when you thought it was safe to go back in the water again, you can’t even get across the sand! BLOOD BEACH meets SPRING BREAKERS in an ace monster mash-up of smart nostalgia and up-to-the-minute visual effects. After an all-night graduation beach party, a group of hung-over students wake up under blazing sun to find their numbers somewhat depleted. An enormous alien creature has burrowed down deep and anyone foolish enough to make contact with the sand finds themselves at the mercy of a sea of flesh-eating tentacles. Will they ever be able to escape its carnivorous clutches?",0.0,84.0,This Beach is Killer +739542.0,en,America: The Motion Picture,98.542,2021-06-30,5.8,130.0,"['Action', 'Comedy', 'History', 'Animation', 'Fantasy']",A chainsaw-wielding George Washington teams with beer-loving bro Sam Adams to take down the Brits in a tongue-in-cheek riff on the American Revolution.,0.0,98.0,This summer they're redrawing history. +505262.0,ja,僕のヒーローアカデミア THE MOVIE ~2人の英雄~,220.805,2018-08-03,8.0,677.0,"['Animation', 'Action', 'Adventure', 'Fantasy']","All Might and Deku accept an invitation to go abroad to a floating and mobile manmade city, called 'I-Island', where they research quirks as well as hero supplemental items at the special 'I-Expo' convention that is currently being held on the island. During that time, suddenly, despite an iron wall of security surrounding the island, the system is breached by a villain, and the only ones able to stop him are the students of Class 1-A.",31478826.0,96.0,Who is your hero? +3512.0,en,Under Siege 2: Dark Territory,19.217,1995-07-13,5.7,608.0,"['Action', 'Thriller']","A passenger train has been hijacked by an electronics expert and turned into an untraceable command center for a weapons satellite. He has planned to blow up Washington DC and only one man can stop him, former Navy SEAL Casey Ryback.",104324083.0,100.0,Last time he rocked the boat. This time the sky's the limit. +10649.0,en,The Enforcer,14.938,1976-12-20,6.9,599.0,"['Action', 'Crime', 'Thriller']","Dirty Harry Callahan returns again, this time saddled with a rookie female partner. Together, they must stop a terrorist group consisting of angry Vietnam veterans.",46236000.0,96.0,The dirtiest Harry of them all. +103332.0,en,Ruby Sparks,14.75,2012-07-25,7.1,1249.0,"['Comedy', 'Romance', 'Fantasy', 'Drama']","Calvin is a young novelist who achieved phenomenal success early in his career but is now struggling with his writing – as well as his romantic life. Finally, he makes a breakthrough and creates a character named Ruby who inspires him. When Calvin finds Ruby, in the flesh, sitting on his couch about a week later, he is completely flabbergasted that his words have turned into a living, breathing person.",9128263.0,104.0,She's Out Of His Mind +180296.0,en,They Came Together,9.29,2014-06-27,5.6,306.0,['Comedy'],A small business owner is about to lose her shop to a major corporate development.,0.0,83.0,He came...She came...They both came +20815.0,en,The Handmaid's Tale,8.86,1990-02-15,6.0,149.0,"['Drama', 'Science Fiction']","In a dystopicly polluted rightwing religious tyranny, a young woman is put in sexual slavery on account of her now rare fertility.",0.0,108.0,A haunting tale of sexuality in a country gone wrong. +643.0,ru,Броненосец Потёмкин,8.956,1925-12-24,7.7,800.0,"['Drama', 'History']","A dramatized account of a great Russian naval mutiny and a resultant public demonstration, showing support, which brought on a police massacre. The film had an incredible impact on the development of cinema and is a masterful example of montage editing.",45100.0,75.0,"Revolution is the only lawful, equal, effectual war. It was in Russia that this war was declared and begun." +9798.0,en,Enemy of the State,26.671,1998-11-20,7.0,2912.0,"['Action', 'Drama', 'Thriller']","A hotshot Washington criminal lawyer becomes the target of a rogue security executive videotaped in the act of murdering a congressman when the incriminating tape is surreptitiously slipped into his shopping bag by the videographer, who is fleeing the executive's assassins.",250649836.0,132.0,It's not paranoia if they're really after you. +17314.0,en,Pistol Whipped,9.805,2008-03-04,5.2,74.0,"['Action', 'Thriller', 'Crime', 'Drama']","Steven Seagal stars in this gritty, no-holds barred action film as an elite ex-cop with a gambling problem and a mountain of debt. When a mysterious man offers to clear his debts in exchange for the assassination of the city's most notorious gangsters, he make s decision that will change his life - forever.",0.0,96.0,They came to collect a debt... He paid in full. +390845.0,ko,맛있는 비행,11.386,2015-11-01,4.1,52.0,['Romance'],"An innocent actress runs away from the scandal with an idol, the impudent idol that ruined her career, a passionate manager who is devoted to her and his ex-girlfriend who is now a sexy stewardess. These four that should never be together run into each other in an airplane. No one can run away and the most cheeky and erotic things happen here.",0.0,97.0,The in-flight service for Hong Kong starts now! An erotic story that took place in the spacious blue sky! +471014.0,en,Wheelman,12.212,2017-10-20,6.1,472.0,"['Action', 'Crime', 'Thriller']",A getaway driver for a bank robbery realizes he has been double crossed and races to find out who betrayed him.,0.0,82.0,Drive fast. Think faster. +378.0,en,Raising Arizona,15.987,1987-03-01,7.0,1506.0,"['Comedy', 'Crime']","When a childless couple of an ex-con and an ex-cop decide to help themselves to one of another family's quintuplets, their lives become more complicated than they anticipated.",29180280.0,94.0,Their lawless years are behind them. Their child-rearing years lay ahead... +38780.0,en,Rampage,13.498,2009-08-14,6.0,305.0,"['Action', 'Drama', 'Crime', 'Thriller', 'Mystery']","The boredom of small town life is eating Bill Williamson alive. Feeling constrained and claustrophobic in the meaningless drudgery of everyday life and helpless against overwhelming global dissolution, Bill begins a descent into madness. His shockingly violent plan will shake the very foundations of society by painting the streets red with blood.",0.0,85.0,Vengeance is ruthless. +9397.0,en,Evolution,27.325,2001-06-08,6.0,1672.0,"['Comedy', 'Science Fiction', 'Action']","A comedy that follows the chaos that ensues when a meteor hits the Earth carrying alien life forms that give new meaning to the term ""survival of the fittest."" David Duchovny, Orlando Jones, Seann William Scott, and Julianne Moore are the only people standing between the aliens and world domination... which could be bad news for the Earth.",98376292.0,101.0,Coming to wipe that silly smile off your planet. +14048.0,en,Man on Wire,9.314,2008-07-25,7.5,667.0,['Documentary'],"On August 7th 1974, French tightrope walker Philippe Petit stepped out on a high wire, illegally rigged between New York's World Trade Center twin towers, then the world's tallest buildings. After nearly an hour of performing on the wire, 1,350 feet above the sidewalks of Manhattan, he was arrested. This fun and spellbinding documentary chronicles Philippe Petit's ""highest"" achievement.",2957978.0,94.0,1974. 1350 feet up. The artistic crime of the century. +612706.0,en,Work It,15.947,2020-08-07,7.7,933.0,"['Comedy', 'Music']",A brilliant but clumsy high school senior vows to get into her late father's alma mater by transforming herself and a misfit squad into dance champions.,0.0,93.0,Dance to your own beat. +431072.0,en,Step Sisters,12.19,2018-01-19,6.5,397.0,['Comedy'],"Jamilah has her whole life figured out. She's the president of her black sorority, captain of their champion step dance crew, is student liaison to the college dean, and her next move is on to Harvard Law School. She's got it all, right? But when the hard-partying white girls from Sigma Beta Beta embarrass the school, Jamilah is ordered to come to the rescue. Her mission is to not only teach the rhythmically-challenged girls how to step dance, but to win the Steptacular, the most competitive of dance competitions. With the SBBs reputations and charter on the line, and Jamilah's dream of attending Harvard in jeopardy, these outcast screw-ups and their unlikely teacher stumble through one hilarious misstep after another. Cultures clash, romance blossoms, and sisterhood prevails as everyone steps out of their comfort zones.",0.0,104.0,Stomp it like it's hot +230652.0,en,Pirates of the Caribbean: Tales of the Code – Wedlocked,9.715,2011-10-18,7.0,46.0,"['Adventure', 'Action', 'Fantasy']","Wenches Scarlett and Giselle fix each other up for their wedding, in which they would each marry their groom. Upon realizing that both their grooms were the same man, Jack Sparrow, the two wenches found themselves in an auction led by the Auctioneer. This short film serves as a prequel to The Curse of the Black Pearl, and explains just why Jack Sparrow's boat the Jolly Mon was seen sinking at the beginning of the whole story; why the wenches were so upset with him; and how Cotton lost his tongue.",0.0,10.0,That scoundrel! Thinks he can marry the both of us! +70868.0,en,I Don't Know How She Does It,20.941,2011-09-16,5.2,312.0,"['Romance', 'Comedy']","A comedy centered on the life of Kate Reddy, a finance executive who is the breadwinner for her husband and two kids.",31410151.0,89.0,"If it were easy, men would do it too." +12163.0,en,The Wrestler,17.668,2008-09-07,7.5,2756.0,"['Drama', 'Romance']","Aging wrestler Randy ""The Ram"" Robinson is long past his prime but still ready and rarin' to go on the pro-wrestling circuit. After a particularly brutal beating, however, Randy hangs up his tights, pursues a serious relationship with a long-in-the-tooth stripper, and tries to reconnect with his estranged daughter. But he can't resist the lure of the ring and readies himself for a comeback.",44703995.0,109.0,Love. Pain. Glory. +9779.0,en,The Sisterhood of the Traveling Pants,10.076,2005-06-01,6.5,1091.0,"['Drama', 'Comedy']","Four best friends (Tibby, Lena, Carmen & Bridget) who buy a mysterious pair of pants that fits each of them, despite their differing sizes, and makes whoever wears them feel fabulous. When faced with the prospect of spending their first summer apart, the pals decide they'll swap the pants so that each girl in turn can enjoy the magic.",39053061.0,119.0,Laugh. Cry. Share the pants. +6538.0,en,Charlie Wilson's War,14.221,2007-12-19,6.6,1081.0,"['Comedy', 'Drama', 'History']","The true story of Texas congressman Charlie Wilson's covert dealings in Afghanistan, where his efforts to assist rebels in their war with the Soviets had some unforeseen and long-reaching effects.",119000410.0,102.0,Based on a true story. You think we could make all this up? +52629.0,es,El Infierno,40.26,2010-09-03,7.8,370.0,"['Drama', 'Crime', 'Comedy']","Benjamin Garcia, Benny is deported from the United States. Back home and against a bleak picture, Benny gets involved in the drug business, in which he has for the first time in his life, a spectacular rise surrounded by money, women, violence and fun. But very soon he will discover that criminal life does not always keep its promises.",0.0,145.0,"Mexico 2010, Hell... nothing to celebrate" +342571.0,es,Una última y nos vamos,9.366,2015-05-29,7.9,55.0,"['Family', 'Comedy', 'Adventure']",A group of mariachis receives a letter to be part of the National Mariachi Contest in Mexico City. In order to be able to win they will need to travel together and solve their differences since their prime was 30 years ago.,0.0,111.0,"You don't have to come first, but you should know how to get there." +37958.0,en,Immortals,25.394,2011-11-10,5.9,2024.0,"['Fantasy', 'Action', 'Drama']","Theseus is a mortal man chosen by Zeus to lead the fight against the ruthless King Hyperion, who is on a rampage across Greece to obtain a weapon that can destroy humanity.",226904017.0,110.0,The Gods need a hero. +19898.0,en,Pandorum,24.568,2009-09-08,6.5,1770.0,"['Action', 'Horror', 'Mystery', 'Science Fiction', 'Thriller']","Two crew members wake up on an abandoned spacecraft with no idea who they are, how long they've been asleep, or what their mission is. The two soon discover they're actually not alone – and the reality of their situation is more horrifying than they could have imagined.",20648328.0,108.0,Don't fear the end of the world. Fear what happens next. +719164.0,en,Women,219.924,2021-04-08,6.1,14.0,['Thriller'],A small town detective while investigating the disappearance of a local woman comes across an unassuming Sociology professor who is hiding a secret life.,0.0,90.0,Don't Scream. Don't Run. Survive. +400155.0,en,Hotel Transylvania 3: Summer Vacation,133.111,2018-06-28,6.9,3332.0,"['Family', 'Fantasy', 'Comedy', 'Animation']","Dracula, Mavis, Johnny and the rest of the Drac Pack take a vacation on a luxury Monster Cruise Ship, where Dracula falls in love with the ship’s captain, Ericka, who’s secretly a descendant of Abraham Van Helsing, the notorious monster slayer.",528600000.0,97.0,Family vacation. It will suck the life out of you. +511785.0,en,Alex Strangelove,11.904,2018-04-16,6.6,1374.0,"['Comedy', 'Drama']","Alex Truelove is on a quest to lose his virginity, an event eagerly awaited by his patient girlfriend and cheered on with welcome advice by his rowdy friends. But Alex, a super gregarious dude, is oddly unmotivated. A magical house party throws Alex into the presence of Elliot, a hunky college guy, who pegs Alex as gay and flirts hard. Alex is taken aback but after a series of setbacks on the girlfriend front he takes the plunge and learns some interesting new facts about himself.",0.0,99.0,Love can be confusing +14202.0,en,The Painted Veil,9.503,2006-01-01,7.3,862.0,"['Romance', 'Drama']","A British medical doctor fights a cholera outbreak in a small Chinese village, while also being trapped at home in a loveless marriage to an unfaithful wife.",26910847.0,125.0,Sometimes the greatest journey is the distance between two people. +19084.0,en,Johnson Family Vacation,8.861,2004-04-07,5.3,133.0,"['Comedy', 'Family']","Nate Johnson, a Los Angeles man estranged from his wife and three children, decides to reconnect with his family by taking them with him on a road trip to Missouri for a big family reunion.",31179516.0,97.0,Take the ride. +9293.0,en,John Tucker Must Die,12.033,2006-07-27,6.2,1117.0,"['Comedy', 'Romance']","After discovering they are all dating the same same guy, three popular students from different cliques band together for revenge, so they enlist the help of a new gal in town and conspire to break the jerk's heart, while destroying his reputation.",41009669.0,87.0,Don't Get Mad. Get Even. +13179.0,en,Tinker Bell,35.273,2008-09-11,6.7,1049.0,"['Animation', 'Family', 'Adventure', 'Fantasy']","Journey into the secret world of Pixie Hollow and hear Tinker Bell speak for the very first time as the astonishing story of Disney's most famous fairy is finally revealed in the all-new motion picture ""Tinker Bell.""",0.0,78.0,Enter the world of fairies +10562.0,en,Under Suspicion,8.97,2000-09-24,6.2,325.0,"['Thriller', 'Crime', 'Drama']","A lawyer is asked to come to the police station to clear up a few loose ends in his witness report of a foul murder. ""This will only take ten minutes"", they say, but it turns out to be one loose end after another, and the ten minutes he is away from his speech become longer and longer.",260562.0,110.0,"In a world of secrets, the truth is never what it seems." +59981.0,en,Legends of Oz: Dorothy's Return,14.865,2014-05-08,6.0,211.0,"['Animation', 'Family', 'Fantasy']","Dorothy wakes up in post-tornado Kansas, only to be whisked back to Oz to try to save her old friends the Scarecrow, the Lion, the Tin Man and Glinda from a devious new villain, the Jester. Wiser the owl, Marshal Mallow, China Princess and Tugg the tugboat join Dorothy on her latest magical journey through the colorful landscape of Oz to restore order and happiness to Emerald City.",18662027.0,88.0,There's trouble in OZ... +9606.0,ja,メトロポリス,20.536,2001-05-26,7.0,310.0,"['Animation', 'Science Fiction']","Kenichi and his detective uncle, Shunsaku Ban, leave Japan to visit Metropolis, in search of the criminal, Dr. Laughton. However, when they finally find Dr. Laughton, Kenichi and Shunsaku find themselves seperated and plunged into the middle of a larger conspiracy. While Shunsaku searches for his nephew and explanations, Kenichi tries to protect Tima (a mysterious young girl), from Duke Red and his adopted son Rock, both of whom have very different reasons for wanting to find her.",4035192.0,108.0,Welcome to Metropolis +640.0,en,Catch Me If You Can,40.067,2002-12-25,7.9,11689.0,"['Drama', 'Crime']","A true story about Frank Abagnale Jr. who, before his 19th birthday, successfully conned millions of dollars worth of checks as a Pan Am pilot, doctor, and legal prosecutor. An FBI agent makes it his mission to put him behind bars. But Frank not only eludes capture, he revels in the pursuit.",352114312.0,141.0,The true story of a real fake. +2310.0,en,Beowulf,19.354,2007-11-05,5.8,2196.0,"['Adventure', 'Action', 'Animation']","A 6th-century Scandinavian warrior named Beowulf embarks on a mission to slay the man-like ogre, Grendel.",195735876.0,115.0,Evil breeds pain. +7350.0,en,The Bucket List,18.31,2007-12-25,7.2,2848.0,"['Drama', 'Comedy']","Corporate billionaire Edward Cole and working class mechanic Carter Chambers are worlds apart. At a crossroads in their lives, they share a hospital room and discover they have two things in common: a desire to spend the time they have left doing everything they ever wanted to do and an unrealized need to come to terms with who they are. Together they embark on the road trip of a lifetime, becoming friends along the way and learning to live life to the fullest, with insight and humor.",175372502.0,97.0,Find the joy. +177494.0,en,Veronica Mars,9.841,2014-03-13,6.6,898.0,"['Comedy', 'Drama', 'Crime']","Years after walking away from her past as a teenage private eye, Veronica Mars gets pulled back to her hometown - just in time for her high school reunion - in order to help her old flame Logan Echolls, who's embroiled in a murder mystery.",3485127.0,107.0,She thought she was out. +335791.0,en,When the Bough Breaks,17.652,2016-09-09,5.8,310.0,"['Mystery', 'Drama', 'Horror']",A surrogate mother harbors a deadly secret desire for a family of her own with the husband who is expecting to raise her child.,30658387.0,97.0,She's carrying more than just a secret. +599281.0,en,Fear of Rain,40.276,2021-02-12,7.2,299.0,"['Thriller', 'Horror', 'Drama']","A teenage girl living with schizophrenia begins to suspect her neighbor has kidnapped a child. Her parents try desperately to help her live a normal life, without exposing their own tragic secrets, and the only person who believes her is Caleb – a boy she isn’t even sure exists.",0.0,109.0,Some voices you can't outrun. +272878.0,en,Max,31.724,2015-06-26,7.1,618.0,"['Adventure', 'Drama']",A dog that helped soldiers in Afghanistan returns to the U.S. and is adopted by his handler's family after suffering a traumatic experience.,43967255.0,111.0,Best Friend. Hero. Marine. +1427.0,en,Perfume: The Story of a Murderer,41.258,2006-09-13,7.3,3414.0,"['Crime', 'Fantasy', 'Drama']","Jean-Baptiste Grenouille, born in the stench of 18th century Paris, develops a superior olfactory sense, which he uses to create the world's finest perfumes. However, his work takes a dark turn as he tries to preserve scents in the search for the ultimate perfume.",132180323.0,147.0,Based on the best-selling novel +426613.0,en,The Miseducation of Cameron Post,23.957,2018-07-18,6.9,735.0,['Drama'],"Pennsylvania, 1993. After getting caught with another girl, teenager Cameron Post is sent to a conversion therapy center run by the strict Dr. Lydia Marsh and her brother, Reverend Rick, whose treatment consists in repenting for feeling “same sex attraction.” Cameron befriends fellow sinners Jane and Adam, thus creating a new family to deal with the surrounding intolerance.",2019874.0,92.0,Come as you are. +27098.0,sv,Lust och fägring stor,17.826,1995-03-08,6.5,73.0,"['Drama', 'Romance', 'War']","Stig is a 15-year-old pupil of 37-year-old teacher Viola. He is attracted by her beauty and maturity while she is drawn to him by his youth and innocence, a godsent relief from her drunk and miserable husband.",0.0,130.0,He was a student. She was his teacher. Their love was forbidden. +10489.0,en,Cujo,22.438,1983-08-10,6.0,686.0,"['Horror', 'Thriller']","A friendly St. Bernard named ""Cujo"" contracts rabies and conducts a reign of terror on a small American town.",21200000.0,93.0,Now there's a new name for terror... +9829.0,en,United 93,17.693,2006-04-28,7.1,1057.0,"['Drama', 'History', 'Crime', 'Thriller', 'Action']","A real-time account of the events on United Flight 93, one of the planes hijacked on 9/11 that crashed near Shanksville, Pennsylvania when passengers foiled the terrorist plot.",76286096.0,111.0,"September 11, 2001. Four planes were hijacked. Three of them reached their target. This is the story of the fourth." +9767.0,en,The Break-Up,17.229,2006-06-01,5.8,2159.0,"['Romance', 'Comedy']","Pushed to the breaking-up point after their latest 'why can't you do this one little thing for me?' argument, Brooke calls it quits with her boyfriend Gary. What follows is a hilarious series of remedies, war tactics, overtures and undermining tricks – all encouraged by the former couple's friends and confidantes …and the occasional total stranger! When neither ex is willing to move out of their shared apartment, the only solution is to continue living as hostile roommates until one of them reaches breaking point.",205668210.0,106.0,…pick a side. +360387.0,en,Blunt Force Trauma,15.993,2015-10-05,5.1,64.0,['Action'],"Follows the journey of John and Colt, gunfighters and sometime lovers, on parallel but very different journeys through an underground dueling culture.",0.0,92.0,In the world of underground dueling the only rule is to survive +664416.0,en,Beastie Boys Story,13.023,2020-04-24,7.8,79.0,"['Music', 'Documentary']","Here’s a little story they’re about to tell… Mike Diamond and Adam Horovitz share the story of their band and 40 years of friendship in a live documentary directed by friend, collaborator, and their former grandfather, Spike Jonze.",0.0,119.0,Here’s a little story they're about to tell... +77805.0,en,Lovelace,37.562,2013-08-08,6.0,522.0,['Drama'],"Story of Linda Lovelace, who is used and abused by the porn industry at the behest of her coercive husband, before taking control of her life.",1585582.0,92.0,The truth goes deeper than you think. +582306.0,en,Assassin 33 A.D.,20.365,2020-01-24,5.3,86.0,['Science Fiction'],"When a billionaire gives a group of young scientists unlimited resources to study the science of matter transfer, the scientists unlock the secrets of time travel. But they soon find out that the project is backed by a militant extremist group, and the billionaire plans to go back in time and prove that Jesus never rose from the dead.",0.0,108.0,What if the greatest event in human history was erased? +6552.0,en,Idle Hands,12.326,1999-04-30,6.1,452.0,"['Comedy', 'Horror', 'Fantasy']","Anton is a cheerful but exceedingly non-ambitious 17-year-old stoner who lives to stay buzzed, watch TV, and moon over Molly, the beautiful girl who lives next door. However, it turns out that the old cliché about idle hands being the devil's playground has a kernel of truth after all.",4152230.0,92.0,The touching story of a boy and his right hand. +9696.0,ja,殺し屋1,19.277,2001-12-22,7.1,639.0,"['Action', 'Crime', 'Horror']","As sadomasochistic yakuza enforcer Kakihara searches for his missing boss he comes across Ichi, a repressed and psychotic killer who may be able to inflict levels of pain that Kakihara has only dreamed of.",0.0,129.0,Love really hurts +13596.0,en,My Best Friend's Girl,52.892,2008-09-19,5.6,552.0,"['Romance', 'Comedy']","When Dustin's girlfriend, Alexis, breaks up with him, he employs his best buddy, Tank, to take her out on the worst rebound date imaginable in the hopes that it will send her running back into his arms. But when Tank begins to really fall for Alexis, he finds himself in an impossible position.",41624687.0,101.0,It's funny what love can make you do... +16258.0,en,The Butterfly Effect 3: Revelations,16.553,2009-01-09,5.4,420.0,"['Science Fiction', 'Thriller', 'Drama', 'Crime']","The story revolves around a man trying to uncover the mysterious death of his girlfriend and save an innocent man from the death chamber in the process, by using his unique power to time travel. However in attempting to do this, he also frees a spiteful serial-killer.",0.0,90.0,Death repeats itself. +539892.0,en,Freaks,79.211,2019-09-13,6.9,766.0,"['Science Fiction', 'Thriller', 'Drama', 'Mystery']","Kept locked inside the house by her father, 7-year-old Chloe lives in fear and fascination of the outside world, where Abnormals create a constant threat—or so she believes. When a mysterious stranger offers her a glimpse of what's really happening outside, Chloe soon finds that while the truth isn't so simple, the danger is very real.",333593.0,105.0,They look just like us +417643.0,en,In Darkness,11.376,2018-05-25,6.1,375.0,"['Thriller', 'Mystery']",A blind musician hears a murder committed in the apartment upstairs from hers that sends her down a dark path into London's gritty criminal underworld.,217427.0,100.0,Fear Blinds the Truth +397992.0,en,Fair Haven,7.794,2017-03-03,6.5,59.0,['Drama'],"After a long stint in gay conversion therapy, James, a young piano prodigy, returns home to his family farm and his emotionally-distant father, Richard. After Richard pressures James to give up his music career and take over the farm, James agrees as a way to make up for his past. Soon, however, James finds himself face-to-face with a former lover, Charlie, who wants to help him turn away from his new beliefs and family expectations and follow his dreams of studying music.",0.0,90.0,Everyone deserves a chance at finding happiness. +5458.0,en,Cruel Intentions 2,14.966,2000-11-09,4.9,271.0,['Drama'],"After his precocious behavior has gotten him bounced out of one more in a string of exclusive private schools, 16-year old Sebastian Valmont has arrived in New York City to live with his father and stepmother. The cunning and handsome Sebastian may have met his match, however in his equally manipulative and beautiful stepsister Kathryn Merteuil.",0.0,87.0,Seduce and destroy. +11970.0,en,Hercules,71.102,1997-06-20,7.5,5876.0,"['Animation', 'Family', 'Fantasy', 'Adventure', 'Comedy', 'Romance']","Bestowed with superhuman strength, a young mortal named Hercules sets out to prove himself a hero in the eyes of his father, the great god Zeus. Along with his friends Pegasus, a flying horse, and Phil, a personal trainer, Hercules is tricked by the hilarious, hotheaded villain Hades, who's plotting to take over Mount Olympus!",252712101.0,93.0,Zero to Hero! +12279.0,en,Spy Kids 3-D: Game Over,53.799,2003-07-25,5.1,1691.0,"['Action', 'Adventure', 'Comedy', 'Family', 'Science Fiction']","Carmen's caught in a virtual reality game designed by the Kids' new nemesis, the Toymaker. It's up to Juni to save his sister, and ultimately the world.",197011982.0,84.0,3rd Mission. 3rd Dimension. +9952.0,en,Rescue Dawn,10.28,2006-09-09,6.9,886.0,"['Adventure', 'Drama', 'War']",A US Fighter pilot's epic struggle of survival after being shot down on a mission over Laos during the Vietnam War.,7177143.0,120.0,A true story of survival... declassified. +11838.0,ja,呪怨,13.966,2002-10-18,6.8,533.0,['Horror'],"Volunteer home-care worker Rika is assigned to visit a family, she is cursed and chased by two revengeful fiends: Kayako, a woman brutally murdered by her husband and her son Toshio. Each person that lives in or visits the haunted house is murdered or disappears.",325680.0,92.0,When a grudge from the dead passes to the living - Who is safe? +369032.0,en,Carnage Park,7.025,2016-07-01,5.3,90.0,"['Action', 'Crime', 'Horror', 'Thriller']","Part crime caper gone awry, part survival horror film, this 1970s set thriller depicts a harrowing fight for survival after a pair of wannabe crooks botch a bank heist and flee into the desert, where they inexplicably stumble upon Carnage Park, a remote stretch of wilderness occupied by a psychotic ex-military sniper.",0.0,81.0,"Out here, God don't pick no favorites" +276905.0,en,Norm of the North,16.375,2016-01-14,4.7,274.0,"['Adventure', 'Animation', 'Comedy', 'Family']","Polar bear Norm and his three Arctic lemming buddies are forced out into the world once their icy home begins melting and breaking apart. Landing in New York, Norm begins life anew as a performing corporate mascot, only to discover that his new employers are directly responsible for the destruction of his polar home.",17062499.0,86.0,Bear to be different +11683.0,en,Land of the Dead,18.291,2005-06-24,6.2,1134.0,"['Horror', 'Science Fiction', 'Thriller']","The world is full of zombies and the survivors have barricaded themselves inside a walled city to keep out the living dead. As the wealthy hide out in skyscrapers and chaos rules the streets, the rest of the survivors must find a way to stop the evolving zombies from breaking into the city.",46770602.0,93.0,The dead shall inherit the Earth. +152259.0,en,Phantom,38.822,2013-01-03,5.9,234.0,['Thriller'],"The haunted Captain of a Soviet submarine holds the fate of the world in his hands. Forced to leave his family behind, he is charged with leading a covert mission cloaked in mystery.",1034589.0,99.0,You will never see it coming. +34806.0,en,The Back-Up Plan,18.998,2010-04-23,6.1,1169.0,"['Comedy', 'Romance']","When Zoe tires of looking for Mr. Right, she decides to have a baby on her own. But on the day she's artificially inseminated, she meets Stan, who seems to be just who she's been searching for all her life. Now, Zoe has to figure out how to make her two life's dreams fit with each other.",77477008.0,106.0,"Fall in love, get married, have a baby. Not necessarily in that order." +669671.0,en,Night Teeth,367.303,2021-10-20,6.8,299.0,"['Horror', 'Thriller', 'Action']","A college student moonlighting as a chauffeur picks up two mysterious women for a night of party-hopping across LA. But when he uncovers their bloodthirsty intentions - and their dangerous, shadowy underworld - he must fight to stay alive.",0.0,107.0,Paint the town red. +1923.0,en,Twin Peaks: Fire Walk with Me,12.189,1992-06-03,7.3,1379.0,"['Drama', 'Mystery', 'Horror']","In the questionable town of Deer Meadow, Washington, FBI Agent Desmond inexplicably disappears while hunting for the man who murdered a teen girl. The killer is never apprehended, and, after experiencing dark visions and supernatural encounters, Agent Dale Cooper chillingly predicts that the culprit will claim another life. Meanwhile, in the more cozy town of Twin Peaks, hedonistic beauty Laura Palmer hangs with lowlifes and seems destined for a grisly fate.",4160851.0,135.0,Meet Laura Palmer... In a town where nothing is as it seems... And everyone has something to hide. +25196.0,en,Crazy Heart,16.641,2009-12-16,6.9,744.0,"['Drama', 'Music', 'Romance']","When reporter Jean Craddock interviews Bad Blake—an alcoholic, seen-better-days country music legend—they connect, and the hard-living crooner sees a possible saving grace in a life with Jean and her young son.",47405566.0,112.0,"The harder the life, the sweeter the song." +105379.0,hi,Blood Money,38.939,2012-03-31,6.1,7.0,"['Drama', 'Action', 'Thriller']","In South Africa, a young man living with his wife becomes embroiled in an illegal diamond business and with time finds his life changing.",0.0,110.0,Success comes at a price. +24929.0,en,Return of the Living Dead Part II,22.73,1988-01-15,6.3,387.0,"['Comedy', 'Horror']","A group of kids discover one of the drums containing a rotting corpse and release the 2-4-5 Trioxin gas into the air, causing the dead to once again rise from the grave and seek out brains.",9205924.0,89.0,Just when you thought it was safe to be dead. +17037.0,en,I'll Be Home for Christmas,12.473,1998-11-13,5.8,223.0,"['Comedy', 'Family']","Estranged from his father, college student Jake is lured home to New York for Christmas with the promise of receiving a classic Porsche as a gift. When the bullying football team dumps him in the desert in a Santa suit, Jake is left without identification or money to help him make the journey. Meanwhile, his girlfriend, Allie, does not know where he is, and accepts a cross-country ride from Jake's rival, Eddie.",0.0,86.0,Somewhere between L.A. and N.Y. Jake found the meaning of Christmas. +442495.0,en,Sexology,14.321,2016-12-22,6.0,3.0,['Documentary'],"In a post-sexual revolution world, roughly one-third of all women have never experienced an orgasm. Armed with shocking sexual data, a bunch of insecurities and a determination to unlock the key to feminine sexual energy, filmmakers Catherine Oxenberg and Gabrielle Anwar seek out sexual experts, tantric masters, researchers, and everyday women to unearth feminism's full potential.",0.0,92.0,A Million Shades of Grey +505954.0,ru,Т-34,14.626,2018-12-27,7.0,623.0,"['War', 'Action', 'Drama', 'History']","In 1944, a courageous group of Russian soldiers managed to escape from German captivity in a half-destroyed legendary T-34 tank. Those were the times of unforgettable bravery, fierce fighting, unbreakable love, and legendary miracles.",36220872.0,139.0,Fast And Furious On Tanks +602147.0,en,Inheritance,13.846,2020-04-30,6.3,347.0,['Thriller'],"The patriarch of a wealthy and powerful family suddenly passes away, leaving his wife and daughter with a shocking secret inheritance that threatens to unravel and destroy their lives.",0.0,110.0,Some secrets should stay buried +268920.0,en,Hot Pursuit,15.389,2015-05-08,5.7,1359.0,"['Action', 'Comedy', 'Crime']",An uptight by-the-book cop must protect the widow of a drug boss from crooked cops and gunmen.,51680201.0,87.0,Armed and Sort-of Dangerous. +6283.0,en,MouseHunt,11.772,1997-12-19,6.5,937.0,"['Comedy', 'Family']","Down-on-their luck brothers, Lars and Ernie Smuntz, aren't happy with the crumbling old mansion they inherit... until they discover the estate is worth millions. Before they can cash in, they have to rid the house of its single, stubborn occupant—a tiny and tenacious mouse.",122417389.0,98.0,Who's hunting who? +351286.0,en,Jurassic World: Fallen Kingdom,77.339,2018-06-06,6.6,9311.0,"['Action', 'Adventure', 'Science Fiction']","Three years after the demise of Jurassic World, a volcanic eruption threatens the remaining dinosaurs on Isla Nublar. So, Claire Dearing recruits Owen Grady to help prevent the extinction of the dinosaurs once again.",1303459585.0,129.0,The park is gone +318121.0,en,The Fundamentals of Caring,11.134,2016-06-16,7.3,1799.0,"['Comedy', 'Drama']","Having suffered a tragedy, Ben becomes a caregiver to earn money. His first client, Trevor, is a hilarious 18-year-old with muscular dystrophy. One paralyzed emotionally, one paralyzed physically, Ben and Trevor hit the road on a trip into the western states. The folks they collect along the way will help them test their skills for surviving outside their calculated existence. Together, they come to understand the importance of hope and the necessity of true friendship.",0.0,97.0,Caring is a funny thing. +37707.0,en,Splice,24.081,2009-10-06,5.8,1657.0,"['Horror', 'Thriller', 'Science Fiction']","Elsa and Clive, two young rebellious scientists, defy legal and ethical boundaries and forge ahead with a dangerous experiment: splicing together human and animal DNA to create a new organism. Named ""Dren"", the creature rapidly develops from a deformed female infant into a beautiful but dangerous winged human-chimera, who forges a bond with both of her creators - only to have that bond turn deadly.",0.0,104.0,Science's newest miracle...is a mistake. +14158.0,en,Jackass 2.5,18.258,2007-12-18,6.1,356.0,"['Comedy', 'Documentary']","The crew have now set off to finish what as left over from Jackass 2.0, and in this version they have Wee Man use a 'pee' gun on themselves, having a mini motor bike fracas in the grocery mall, a sperm test, a portly crew member disguised as King Kong, as well as include three episodes of their hilarious adventures in India.",0.0,64.0,All the stuff we couldn't pack into number two. +180299.0,id,The Raid 2: Berandal,40.552,2014-03-27,7.6,1739.0,"['Action', 'Crime', 'Thriller']","After fighting his way through an apartment building populated by an army of dangerous criminals and escaping with his life, SWAT team member Rama goes undercover, joining a powerful Indonesian crime syndicate to protect his family and uncover corrupt members of his own force.",6566916.0,150.0,It's not over yet. +425148.0,en,Show Dogs,18.392,2018-05-18,5.8,168.0,"['Adventure', 'Crime', 'Family', 'Comedy']","Max, a macho, solitary Rottweiler police dog is ordered to go undercover as a primped show dog in a prestigious Dog Show, along with his human partner, to avert a disaster from happening.",38830219.0,92.0,Unleashed and undercover +791.0,en,The Fog,14.886,2005-10-14,4.4,540.0,"['Horror', 'Thriller']","Trapped within an eerie mist, the residents of Antonio Bay have become the unwitting victims of a horrifying vengeance. One hundred years earlier, a ship carrying lepers was purposely lured onto the rocky coastline and sank, drowning all aboard. Now they're back – long-dead mariners who've waited a century for their revenge.",46201432.0,100.0,Their PAST Has Come Back To HAUNT THEM +8965.0,en,Atlantis: Milo's Return,23.138,2003-02-25,6.2,1837.0,"['Fantasy', 'Animation', 'Science Fiction', 'Family', 'Action']",Milo and Kida reunite with their friends to investigate strange occurances around the world that seem to have links to the secrets of Atlantis.,0.0,70.0,The all-new adventures +211954.0,es,No se Aceptan Devoluciones,19.551,2013-07-20,7.7,671.0,"['Comedy', 'Drama']","Valentin is Acapulco's resident playboy, until a former fling leaves a baby on his doorstep and him heading with her out of Mexico.",99067206.0,122.0,Life doesn't care if you're ready. +423949.0,en,Unicorn Store,11.619,2017-09-11,6.0,721.0,"['Fantasy', 'Drama', 'Comedy']","A woman named Kit moves back to her parent's house, where she receives a mysterious invitation that would fulfill her childhood dreams.",0.0,92.0,Everyone needs a little magic. Even if they're all grown up. +38073.0,en,Going the Distance,10.68,2010-08-27,6.1,592.0,"['Comedy', 'Drama', 'Romance']","Erin and Garrett are very much in love. When Erin moves to San Francisco to finish her journalism degree and Garrett stays behind in New York to work in the music industry, they gamely keep the romance alive with webcams and frequent-flyer miles. But just when it seems the lovers will soon be reunited, they each score a big break that could separate them for good.",42045846.0,102.0,A comedy about meeting each other halfway. +636879.0,en,A Nun's Curse,66.21,2020-05-12,6.2,66.0,['Horror'],A group of travelers are forced to seek shelter inside an abandoned jail where a notorious nun named Sister Monday had once been assigned and was suspected of murdering prisoners.,0.0,73.0,She will PREY for you! +296096.0,en,Me Before You,97.535,2016-06-01,7.9,9490.0,"['Drama', 'Romance']","A small town girl is caught between dead-end jobs. A high-profile, successful man becomes wheelchair bound following an accident. The man decides his life is not worth living until the girl is hired for six months to be his new caretaker. Worlds apart and trapped together by circumstance, the two get off to a rocky start. But the girl becomes determined to prove to the man that life is worth living and as they embark on a series of adventures together, each finds their world changing in ways neither of them could begin to imagine.",207945075.0,110.0,Live boldly. +419743.0,en,Disobedience,41.103,2017-09-10,7.0,866.0,"['Drama', 'Romance']","A woman learns about the death of her Orthodox Jewish father, a rabbi. She returns home and has romantic feelings rekindled for her best childhood friend, who is now married to her cousin.",0.0,114.0,Love is an act of defiance +323677.0,en,Race,23.068,2016-02-19,7.3,1285.0,"['Action', 'Drama', 'History']","Based on the story of Jesse Owens, the athlete whose quest to become the greatest track and field athlete in history thrusts him onto the world stage of the 1936 Olympics, where he faces off against Adolf Hitler's vision of Aryan supremacy.",24804129.0,134.0,The incredible true story of gold medal champion Jesse Owens +375355.0,en,Don't Hang Up,11.45,2016-10-22,6.1,382.0,"['Horror', 'Thriller']",An evening of drunken prank calls becomes a nightmare for a pair of teenagers when a mysterious stranger turns their own game against them.,0.0,83.0,Be Careful Who You Prank +12253.0,en,Biker Boyz,13.542,2003-01-31,6.2,241.0,"['Action', 'Drama']","A mythic motorcycle tale of father and son"", this is the story of Manuel Galloway, also known as ""the King of Cali"", the president of a motorcycle club whose members are all African-American men, mostly white-collar workers who exchange their suits and ties at night and on weekends for leather outfits and motorcycle helmets.",23510601.0,110.0,Survival of the fastest. +189.0,en,Sin City: A Dame to Kill For,46.493,2014-08-20,6.4,3051.0,"['Crime', 'Action', 'Thriller']",Some of Sin City's most hard-boiled citizens cross paths with a few of its more reviled inhabitants.,39407616.0,102.0,There is no justice without sin. +576845.0,en,Last Night in Soho,88.37,2021-10-21,7.5,198.0,"['Drama', 'Horror', 'Mystery', 'Thriller']","A young girl, passionate about fashion design, is mysteriously able to enter the 1960s where she encounters her idol, a dazzling wannabe singer. But 1960s London is not what it seems, and time seems to be falling apart with shady consequences.",12000000.0,117.0,"When the past lets you in, the truth will come out." +353610.0,en,The Condemned 2,25.287,2015-11-06,5.2,114.0,['Action'],"A former bounty hunter who finds himself on the run as part of a revamped Condemned tournament, in which convicts are forced to fight each other to the death as part of a game that's broadcast to the public.",0.0,90.0,The world's deadliest game is back online +9620.0,en,Paycheck,18.937,2003-12-25,6.2,1376.0,"['Action', 'Adventure', 'Mystery', 'Science Fiction', 'Thriller']","Michael Jennings is a genius who's hired – and paid handsomely – by high-tech firms to work on highly sensitive projects, after which his short-term memory is erased so he's incapable of breaching security. But at the end of a three-year job, he's told he isn't getting a paycheck and instead receives a mysterious envelope. In it are clues he must piece together to find out why he wasn't paid – and why he's now in hot water.",95427515.0,119.0,Remember the future. +41402.0,en,Let Me In,21.975,2010-10-01,6.8,1565.0,"['Drama', 'Horror', 'Mystery']",A bullied young boy befriends a young female vampire who lives in secrecy with her guardian. A remake of the movie “Let The Right One In” which was an adaptation of a book.,24145613.0,116.0,Innocence dies. Abby doesn't. +13012.0,en,Felon,11.917,2008-07-17,7.2,623.0,"['Action', 'Crime', 'Drama', 'Mystery']",A family man convicted of killing an intruder must cope with life afterward in the violent penal system.,0.0,103.0,No rule. No hope. No way out. +310131.0,en,The Witch,56.579,2015-01-27,6.8,5066.0,"['Horror', 'Drama', 'Mystery']","In 1630s New England, William and Katherine lead a devout Christian life with five children, homesteading on the edge of an impassable wilderness, exiled from their settlement when William defies the local church. When their newborn son vanishes and crops mysteriously fail, the family turns on one another.",40423945.0,92.0,Evil takes many forms. +2100.0,en,The Last Castle,15.538,2001-10-19,7.1,876.0,"['Action', 'Drama', 'Thriller']",A court-martialed general rallies together 1200 inmates to rise against the system that put him away.,27642707.0,131.0,A Castle Can Only Have One King +465003.0,en,The Red Sea Diving Resort,15.659,2019-07-28,6.9,613.0,"['Drama', 'Thriller', 'History']","Sudan, East Africa, 1980. A team of Israeli Mossad agents plans to rescue and transfer thousands of Ethiopian Jews to Israel. To do so, and to avoid raising suspicions from the inquisitive and ruthless authorities, they establish as a cover a fake diving resort by the Red Sea.",0.0,130.0,In the 1980s one partnership saved thousands of lives +326215.0,en,Ooops! Noah is Gone...,25.109,2015-03-26,6.3,236.0,"['Animation', 'Adventure', 'Comedy', 'Family']","It's the end of the world. A flood is coming. Luckily for Dave and his son Finny, a couple of clumsy Nestrians, an Ark has been built to save all animals. But as it turns out, Nestrians aren't allowed. Sneaking on board with the involuntary help of Hazel and her daughter Leah, two Grymps, they think they're safe. Until the curious kids fall off the Ark. Now Finny and Leah struggle to survive the flood and hungry predators and attempt to reach the top of a mountain, while Dave and Hazel must put aside their differences, turn the Ark around and save their kids. It's definitely not going to be smooth sailing.",769028.0,85.0,"One ark, 50,000 animals. What could go wrong?" +146229.0,en,Kristy,9.8,2014-08-07,6.0,292.0,"['Thriller', 'Horror']","When a college girl who is alone on campus over the Thanksgiving break is targeted by a group of outcasts, she must conquer her deepest fears to outwit them and fight back.",0.0,86.0,Run for your life +187257.0,en,Fucking Different XXX,41.323,2012-02-08,5.7,5.0,['Drama'],"In Fucking Different XXX, the passion for explicit sex scenes brought eight international filmmakers together. The eight short films shot in Paris, Berlin and San Francisco are about intensive sex, quick sex, romantic sex, funny sex, the first sex, and the last sex. The range goes from a lesbian quickie in the toilet, a bloodthirsty orgy, romantic fisting all the way to wet teenage dreams. The result is a never seen before look upon sexual tastes and varieties, far from clichés, with a fresh and sometimes humorous approach.",0.0,94.0,Queer porn crossover +8273.0,en,American Wedding,45.964,2003-08-01,6.2,3251.0,"['Comedy', 'Romance']","With high school a distant memory, Jim and Michelle are getting married -- and in a hurry, since Jim's grandmother is sick and wants to see him walk down the aisle -- prompting Stifler to throw the ultimate bachelor party. And Jim's dad is reliable as ever, doling out advice no one wants to hear.",231449203.0,103.0,Forever hold your piece. +8999.0,en,Derailed,12.114,2005-11-11,6.3,753.0,"['Drama', 'Thriller']","When two married business executives having an affair are blackmailed by a violent criminal, they are forced to turn the tables on him to save their families.",57479076.0,108.0,He never saw it coming. +9427.0,en,The Full Monty,11.006,1997-08-13,7.0,1200.0,['Comedy'],"Sheffield, England. Gaz, a jobless steelworker in need of quick cash persuades his mates to bare it all in a one-night-only strip show.",257850122.0,91.0,The year's most revealing comedy. +50348.0,en,The Lincoln Lawyer,19.957,2011-03-17,7.2,2379.0,"['Crime', 'Drama', 'Thriller']",A lawyer conducts business from the back of his Lincoln town car while representing a high-profile client in Beverly Hills.,85412898.0,119.0,This Case is a Dangerous Game of Life and Death. +2292.0,en,Clerks,10.551,1994-09-13,7.4,1862.0,['Comedy'],"Convenience and video store clerks Dante and Randal are sharp-witted, potty-mouthed and bored out of their minds. So in between needling customers, the counter jockeys play hockey on the roof, visit a funeral home and deal with their love lives.",3151130.0,92.0,Just because they serve you doesn't mean they like you. +10226.0,fr,Haute tension,10.667,2003-06-18,6.8,921.0,"['Horror', 'Thriller', 'Mystery']","Best friends Marie and Alexia decide to spend a quiet weekend at Alexia's parents' secluded farmhouse. But on the night of their arrival, the girls' idyllic getaway turns into an endless night of horror.",6291958.0,91.0,Hearts will bleed. +1637.0,en,Speed,30.605,1994-06-09,7.1,4622.0,"['Action', 'Adventure', 'Crime']","Los Angeles SWAT cop Jack Traven is up against bomb expert Howard Payne, who's after major ransom money. First it's a rigged elevator in a very tall building. Then it's a rigged bus--if it slows, it will blow, bad enough any day, but a nightmare in LA traffic. And that's still not the end.",350448145.0,116.0,Get ready for rush hour. +4806.0,en,Runaway Bride,16.658,1999-07-30,6.1,1537.0,"['Comedy', 'Romance']","Ike Graham, New York columnist, writes his text always at the last minute. This time, a drunken man in his favourite bar tells Ike about Maggie Carpenter, a woman who always flees from her grooms in the last possible moment. Ike, who does not have the best opinion about females anyway, writes an offensive column without researching the subject thoroughly.",309457509.0,116.0,Catch her if you can. +20441.0,en,Messengers 2: The Scarecrow,26.597,2009-07-21,5.4,121.0,['Horror'],"The family man farmer John Rollins is stressed with his financial situation: the crows and the lack of irrigation are destroying his crop of corn; the bank is near closure of his mortgage; he does not have credit to fix the water pump or to buy seeds; and his marriage is in crisis and his wife Mary is giving too much attention to her friend Tommy. When John accidentally discovers a hidden compartment in the barn, he finds a creepy scarecrow but his son Michael makes him promise to destroy it. However, his neighbor Jude Weatherby visits him, gives a six-pack of beer to the abstemious John and convinces him to put the scarecrow in the cornfield. Out of the blue, the life of John changes: the crows die; the pump works again irrigating the land; and the banker responsible for the closure has an accident and dies. However, he feels that his land is possessed by something evil that is threatening his beloved family.",0.0,94.0,The Beginning Of The End +10110.0,en,Empire of the Sun,19.534,1987-12-09,7.5,1375.0,"['Drama', 'History', 'War']","Jamie Graham, a privileged English boy, is living in Shanghai when the Japanese invade and force all foreigners into prison camps. Jamie is captured with an American sailor, who looks out for him while they are in the camp together. Even though he is separated from his parents and in a hostile environment, Jamie maintains his dignity and youthful spirits, providing a beacon of hope for the others held captive with him.",66700000.0,153.0,"To survive in a world at war, he must find a strength greater than all the events that surround him." +370172.0,en,No Time to Die,604.254,2021-09-29,7.4,1209.0,"['Adventure', 'Action', 'Thriller']","Bond has left active service and is enjoying a tranquil life in Jamaica. His peace is short-lived when his old friend Felix Leiter from the CIA turns up asking for help. The mission to rescue a kidnapped scientist turns out to be far more treacherous than expected, leading Bond onto the trail of a mysterious villain armed with dangerous new technology.",667000000.0,163.0,The mission that changes everything begins… +50022.0,en,Super Troopers 2,11.253,2018-04-19,5.8,321.0,"['Comedy', 'Crime', 'Mystery']","When an international border dispute arises between the U.S. and Canada, the Super Troopers- Mac, Thorny, Foster, Rabbit and Farva, are called in to set up a new Highway Patrol station in the disputed area.",18850674.0,100.0,The mustache rides. Again. +266396.0,en,The Gunman,18.547,2015-02-16,5.7,767.0,"['Action', 'Drama', 'Crime']","Eight years after fleeing the Congo following his assassination of that country's minister of mining, former assassin Jim Terrier is back, suffering from PTSD and digging wells to atone for his violent past. After an attempt is made on his life, Terrier flies to London to find out who wants him dead -- and why. Terrier's search leads him to a reunion with Annie, a woman he once loved, who is now married to an oily businessman with dealings in Africa.",13644292.0,115.0,Armed With the Truth. +175.0,fr,Le Grand Bleu,15.394,1988-05-10,7.5,1074.0,"['Adventure', 'Drama', 'Romance']","Two men answer the call of the ocean in this romantic fantasy-adventure. Jacques and Enzo are a pair of friends who have been close since childhood, and who share a passion for the dangerous sport of free diving. Professional diver Jacques opted to follow in the footsteps of his father, who died at sea when Jacques was a boy; to the bewilderment of scientists, Jacques harbors a remarkable ability to adjust his heart rate and breathing pattern in the water, so that his vital signs more closely resemble that of dolphins than men. As Enzo persuades a reluctant Jacques to compete against him in a free diving contest -- determining who can dive deeper and longer without scuba gear -- Jacques meets Johana, a beautiful insurance investigator from America, and he finds that he must choose between his love for her and his love of the sea.",0.0,168.0,Danger...Like Passion...Runs Deep +535437.0,en,Swiped,11.273,2018-11-06,4.5,619.0,"['Comedy', 'Drama', 'Romance']","James, a college freshman and computer genius, is enlisted by his womanizing roommate, Lance, to code the ultimate hook-up app. But when James discovers that his divorced mother is using the app, unexpected consequences ensue.",0.0,93.0,Get Ready for Disruption! +765869.0,en,Black Friday,16.927,2021-11-19,0.0,0.0,"['Horror', 'Comedy']",A group of toy store employees must protect each other from a horde of parasite infected shoppers.,0.0,84.0,They have no idea what tonight has in-store. +2447.0,en,The Nativity Story,17.708,2006-11-30,6.9,153.0,"['Drama', 'History']","Mary and Joseph make the hard journey to Bethlehem for a blessed event in this retelling of the Nativity story. This meticulously researched and visually lush adaptation of the biblical tale follows the pair on their arduous path to their arrival in a small village, where they find shelter in a quiet manger and Jesus is born.",0.0,101.0,Her child would change the world. +440762.0,en,Jay and Silent Bob Reboot,10.926,2019-10-15,5.8,320.0,['Comedy'],Jay and Silent Bob embark on a cross-country mission to stop Hollywood from rebooting a film based on their comic book characters Bluntman and Chronic.,1011305.0,105.0,Weed love to tell you a story... +9655.0,en,She's the Man,26.469,2006-03-17,6.8,2345.0,"['Comedy', 'Drama', 'Family', 'Romance']","Viola Hastings is in a real jam. Complications threaten her scheme to pose as her twin brother, Sebastian, and take his place at a new boarding school. She falls in love with her handsome roommate, Duke, who loves beautiful Olivia, who has fallen for Sebastian! As if that were not enough, Viola's twin returns from London ahead of schedule but has no idea that his sister has already replaced him on campus.",33889159.0,105.0,"If you wanna chase your dream, sometimes you gotta break the rules." +297580.0,en,Day of the Mummy,10.014,2014-10-20,5.0,28.0,"['Adventure', 'Horror', 'Action']","Welcome to Egypt, land of the Pharaohs. A place steeped in history and legend; Gods and spiritual guides; untold wealth – and the bone-cracking, blood-spilling guardians of its riches. Jack Wells has arrived in Egypt in search of the famous diamond known as The Codex Stone. His journey leads him to the tomb of the cursed King Neferu, cursed not by name but by nature. With his centuries-old slumber disturbed by timeless human greed, the King rises from the dead with a blood-lust that cannot be quenched and a raging fury that will shred flesh from bone, bringing terrible and tormented death to all who dare witness the Day of the Mummy.",0.0,76.0,An ancient evil has been unleashed +537116.0,en,"tick, tick...BOOM!",35.904,2021-11-11,2.0,1.0,"['Music', 'Drama']","On the cusp of his 30th birthday, a promising young theater composer navigates love, friendship, and the pressures to create something great before time runs out.",0.0,115.0,How much time do we have to do something great? +1891.0,en,The Empire Strikes Back,23.967,1980-05-20,8.4,13506.0,"['Adventure', 'Action', 'Science Fiction']","The epic saga continues as Luke Skywalker, in hopes of defeating the evil Galactic Empire, learns the ways of the Jedi from aging master Yoda. But Darth Vader is more determined than ever to capture Luke. Meanwhile, rebel leader Princess Leia, cocky Han Solo, Chewbacca, and droids C-3PO and R2-D2 are thrown into various stages of capture, betrayal and despair.",538400000.0,124.0,The Adventure Continues... +226857.0,en,Endless Love,21.538,2014-02-12,6.9,1412.0,"['Drama', 'Romance']",A privileged girl and a charismatic boy's instant desire sparks a love affair made only more reckless by parents trying to keep them apart.,34077920.0,103.0,Say Goodbye To Innocence +484718.0,en,Coming 2 America,83.631,2021-03-05,6.7,1612.0,['Comedy'],"Prince Akeem Joffer is set to become King of Zamunda when he discovers he has a son he never knew about in America – a street savvy Queens native named Lavelle. Honoring his royal father's dying wish to groom this son as the crown prince, Akeem and Semmi set off to America once again.",0.0,110.0,A sequel is in the heir. +11351.0,en,Jeepers Creepers 2,60.188,2003-08-08,6.0,1121.0,['Horror'],"When their bus is crippled on the side of a deserted road, a team of high school athletes discover an opponent they cannot defeat – and may not survive. Staring hungrily at them through the school bus windows, the ""Creeper"" returns again and again. But when the teammates discover that it’s selective about whom it attacks, it will test their ability to stick together – as the insatiable menace tries to tear them apart!",63102666.0,104.0,He can taste your fear. +328252.0,es,Sweet Home,10.555,2015-05-08,4.9,100.0,['Horror'],A couple decides to spend a romantic evening in a floor of a semi-abandoned building that slip because she works as a consultant for the council house and got the keys. During the evening they discover that a hooded murderer is the only tenant left in the building...and they have become the new target.,0.0,80.0,Wish you stayed at home +425972.0,en,Cargo,20.259,2017-10-06,6.4,1314.0,"['Drama', 'Thriller', 'Adventure', 'Horror']","After being infected in the wake of a violent pandemic and with only 48 hours to live, a father struggles to find a new home for his baby daughter.",56385.0,105.0,The future is fragile. +177677.0,en,Mission: Impossible - Rogue Nation,39.002,2015-07-23,7.2,6986.0,"['Action', 'Adventure']","Ethan and team take on their most impossible mission yet—eradicating 'The Syndicate', an International and highly-skilled rogue organisation committed to destroying the IMF.",682330139.0,131.0,Desperate Times. Desperate Measures. +52520.0,en,Underworld: Awakening,69.313,2012-01-19,6.3,3333.0,"['Fantasy', 'Action', 'Horror']","Having escaped years of imprisonment, vampire warrioress Selene finds herself in a changed world where humans have discovered the existence of both Vampire and Lycan clans and are conducting an all-out war to eradicate both immortal species. Now Selene must battle the humans and a frightening new breed of super Lycans to ensure the death dealers' survival.",160112671.0,88.0,Vengeance Returns +263109.0,en,Shaun the Sheep Movie,23.22,2015-02-05,7.0,1065.0,"['Family', 'Animation', 'Comedy', 'Adventure']","When Shaun decides to take the day off and have some fun, he gets a little more action than he bargained for. A mix up with the Farmer, a caravan and a very steep hill lead them all to the Big City and it's up to Shaun and the flock to return everyone safely to the green grass of home.",106209378.0,85.0,Moving on to Pastures New. +9654.0,en,The Italian Job,32.737,2003-05-30,6.7,4330.0,"['Action', 'Crime']","Charlie Croker pulled off the crime of a lifetime. The one thing that he didn't plan on was being double-crossed. Along with a drop-dead gorgeous safecracker, Croker and his team take off to re-steal the loot and end up in a pulse-pounding, pedal-to-the-metal chase that careens up, down, above and below the streets of Los Angeles.",176070171.0,110.0,Get in. Get out. Get even. +11864.0,en,Enemy Mine,13.745,1985-12-12,6.9,654.0,"['Drama', 'Science Fiction']","A soldier from Earth crashlands on an alien world after sustaining battle damage. Eventually he encounters another survivor, but from the enemy species he was fighting; they band together to survive on this hostile world. In the end the human finds himself caring for his enemy in a completely unexpected way.",12303411.0,108.0,Enemies because they were taught to be. Survivors because they had to be. +14289.0,en,Fire Down Below,9.494,1997-09-05,5.6,254.0,"['Action', 'Adventure', 'Crime', 'Thriller', 'Drama']","When an EPA representative is murdered in a small Appalachian community, EPA undercover agent Jack Taggart is sent in—posing as a handyman working with a Christian relief agency—to determine what happened.",16228448.0,105.0,Beneath a land of wealth and beauty hides a secret that could kill millions. Undercover has never run so deep. +334074.0,en,Survivor,25.048,2015-05-21,5.6,815.0,"['Crime', 'Action', 'Thriller']","A Foreign Service Officer in London tries to prevent a terrorist attack set to hit New York, but is forced to go on the run when she is framed for crimes she did not commit.",0.0,96.0,His next target is now hunting him +10052.0,en,Dragonfly,11.948,2002-02-22,6.5,644.0,"['Drama', 'Thriller', 'Horror']",A grieving doctor is being contacted by his late wife through his patient's near death experiences.,52322400.0,104.0,When someone you love dies... are they gone forever? +747.0,en,Shaun of the Dead,30.305,2004-04-09,7.5,6530.0,"['Horror', 'Comedy']","Shaun lives a supremely uneventful life, which revolves around his girlfriend, his mother, and, above all, his local pub. This gentle routine is threatened when the dead return to life and make strenuous attempts to snack on ordinary Londoners.",30332385.0,99.0,A romantic comedy. With zombies. +416153.0,en,Arctic Dogs,13.0,2019-11-01,6.2,89.0,"['Animation', 'Adventure', 'Comedy']",Animals band together to save the day when the evil Otto Von Walrus hatches a sinister scheme to accelerate global warming and melt the Arctic Circle.,0.0,93.0,Time to run with the big dogs! +10651.0,en,The Dead Pool,19.235,1988-04-14,6.3,575.0,"['Action', 'Crime', 'Thriller']","Dirty Harry Callahan returns for his final film adventure. Together with his partner Al Quan, he must investigate the systematic murder of actors and musicians. By the time Harry learns that the murders are a part of a sick game to predict the deaths of celebrities before they happen, it may be too late...",37903295.0,91.0,Dirty Harry Just Learned A New Game. +45612.0,en,Source Code,49.997,2011-03-30,7.3,6534.0,"['Thriller', 'Science Fiction', 'Mystery']","When decorated soldier Captain Colter Stevens wakes up in the body of an unknown man, he discovers he's part of a mission to find the bomber of a Chicago commuter train.",147332697.0,94.0,Make Every Second Count +18222.0,en,Poison Ivy: The New Seduction,12.675,1997-10-20,4.9,62.0,"['Thriller', 'Romance', 'Drama']",A sinister seductress vows to destroy a suburban family.,0.0,93.0,All the rules are about to be broken. +639.0,en,When Harry Met Sally...,16.094,1989-01-12,7.4,3033.0,"['Comedy', 'Romance', 'Drama']","During their travel from Chicago to New York, Harry and Sally debate whether or not sex ruins a friendship between a man and a woman. Eleven years later, and they're still no closer to finding the answer.",92823546.0,96.0,Can two friends sleep together and still love each other in the morning? +56590.0,en,All Star Superman,13.489,2011-02-22,7.0,344.0,"['Science Fiction', 'Animation', 'Action', 'Adventure']","Lex Luthor enacts his plan to rid the world of Superman, once and for all. Succeeding with solar radiation poisoning, the Man of Steel is slowly dying. With what little times remains, the Last Son of Krypton must confront the revealing of his secret identity to Lois Lane and face Luthor in a final battle.",0.0,76.0,"The measure of a man lies not in what he says, but what he does." +384664.0,de,Tschick,9.582,2016-09-15,6.7,203.0,"['Drama', 'Comedy']","While his mother is in rehab and his father is on a 'business trip' with his assistant, 14-year-old outsider Maik is spending the summer holidays bored and alone at his parents' villa, when rebellious teenager Tschick appears. Tschick, a Russian immigrant and an outcast, steals a car and decides to set off on a journey away from Berlin with Maik tagging along for the ride. So begins a wild adventure where the two experience the trip of a lifetime and share a summer that they will never forget.",0.0,93.0,The best summer ever +79698.0,en,The Lovers,15.831,2015-02-13,4.7,59.0,"['Action', 'Adventure', 'Science Fiction', 'Romance']","The Lovers is an epic romance time travel adventure film. Helmed by Roland Joffé from a story by Ajey Jhankar, the film is a sweeping tale of an impossible love set against the backdrop of the first Anglo-Maratha war across two time periods and continents and centred around four characters — a British officer in 18th century colonial India, the Indian woman he falls deeply in love with, an American present-day marine biologist and his wife.",0.0,109.0,Love is longer than life. +631583.0,en,Sacrifice,21.446,2021-02-09,5.2,14.0,['Horror'],Isaac and his pregnant wife visit a remote Norwegian village to claim an unexpected inheritance. The couple finds themselves caught in a nightmare when they encounter a sinister cult that worships a sea-dwelling deity.,0.0,87.0,Dream Well +203739.0,en,Vampire Academy,24.593,2014-02-07,6.3,1498.0,"['Comedy', 'Action', 'Fantasy']","Rose, a rebellious half-vampire/half-human guardian-in-training and her best friend, Lissa -- a mortal, royal vampire Princess - have been on the run when they are captured and returned to St. Vladamirs Academy, the very place where they believe their lives may be in most jeopardy. Rose will sacrifice everything to protect Lissa from those who intend to exploit her from within the Academy walls and the Strigoi (immortal, evil vampires) who hunt her kind from outside its sanctuary.",15391979.0,104.0,They suck at school. +321612.0,en,Beauty and the Beast,57.884,2017-03-16,7.0,13735.0,"['Family', 'Fantasy', 'Romance']",A live-action adaptation of Disney's version of the classic tale of a cursed prince and a beautiful young woman who helps him break the spell.,1263521126.0,129.0,Be our guest. +76489.0,en,The Three Stooges,57.778,2012-04-13,5.7,412.0,['Comedy'],"While trying to save their childhood orphanage, Moe, Larry and Curly inadvertently stumble into a murder plot and wind up starring in a reality TV show.",54819301.0,92.0,Just Say Moe. +68727.0,en,Trance,16.615,2013-03-27,6.6,1765.0,"['Thriller', 'Crime', 'Drama', 'Mystery']",A violent gang enlists the help of a hypnotherapist in an attempt to locate a painting which somehow vanished in the middle of a heist.,24261569.0,101.0,Don't be a hero. +129670.0,en,Nebraska,8.444,2013-09-21,7.4,1383.0,"['Drama', 'Adventure']","An aging, booze-addled father takes a trip from Montana to Nebraska with his estranged son in order to claim what he believes to be a million-dollar sweepstakes prize.",27682872.0,115.0,Life's not about winning or losing. It's about how you get there in the end. +374464.0,fr,Planetarium,14.55,2016-10-12,4.6,162.0,"['Drama', 'Fantasy', 'Mystery']","In 1930s France, two sisters who are thought to be able to communicate with ghosts meet a visionary producer while performing in Paris.",0.0,109.0,You never know what's about to change... +161143.0,en,Madly Madagascar,27.479,2013-01-29,6.5,158.0,"['Animation', 'Comedy', 'Family']","Your favorite Madagascar pals are back in an all-new adventure! Alex's favorite holiday, Valentine's Day, brings hilarious surprises and excitement for the entire gang. Melman plans a big surprise for Gloria, Marty tries to impress a new friend and everyone wants to get their hands on King Julien's love potion. You'll fall in LOVE with Madly Madagascar!",0.0,22.0,All New Adventure +238603.0,en,Earth to Echo,9.95,2014-06-14,5.9,483.0,"['Family', 'Adventure', 'Science Fiction']","After a construction project begins digging in their neighbourhood, best friends Tuck, Munch and Alex inexplicably begin to receive strange, encoded messages on their cell phones. Convinced something bigger is going on, they go to their parents and the authorities. The three embark on a secret adventure to crack the code and follow it to its source, and discover a mysterious being from another world who desperately needs their help. The journey that follows will change all their lives forever.",45300000.0,89.0,No one will ever believe our story. +213901.0,en,Fir Crazy,11.564,2013-12-12,5.9,48.0,"['Comedy', 'Romance', 'TV Movie']","When marketing executive Elise MacKenzie decides to help sell Christmas trees at her family’s Christmas tree lot, she discovers a newfound fondness for the holidays. But all could be lost when the store owner who hosts the tree lot on his block wants to shut it down, and it’s up to Elise to find a way to rekindle his Christmas Cheer.",0.0,87.0,"This Christmas, love is just around the corner." +423204.0,en,Angel Has Fallen,51.484,2019-08-21,6.5,2537.0,"['Action', 'Thriller']","After a treacherous attack, Secret Service agent Mike Banning is charged with attempting to assassinate President Trumbull. Chased by his own colleagues and the FBI, Banning begins a race against the clock to clear his name.",146661977.0,122.0,Loyalty is under fire +112336.0,en,Hitchcock,14.803,2012-11-22,6.5,1197.0,['Drama'],"Follow the relationship between director Alfred Hitchcock and his wife Alma Reville during the making of his most famous horror-thriller film, Psycho, and the trials and tribulations the director faced from Hollywood censors.",23570541.0,98.0,Good evening. +337170.0,en,American Made,33.264,2017-08-18,6.8,3434.0,"['Action', 'Crime', 'Comedy']","The true story of pilot Barry Seal, who transported contraband for the CIA and the Medellin cartel in the 1980s.",133511855.0,115.0,Based on a True Lie +167032.0,en,Curse of Chucky,96.24,2013-10-04,5.8,1127.0,"['Horror', 'Thriller']","After the passing of her mother, a young woman in a wheelchair since birth, is forced to deal with her sister, brother-in-law, niece and their nanny as they say their goodbyes to mother. When people start turning up dead, Nica discovers the culprit might be a strange doll she received a few days earlier.",3800000.0,97.0,Fear has a new home +150689.0,en,Cinderella,78.934,2015-03-12,6.8,6036.0,"['Romance', 'Fantasy', 'Family', 'Drama']","When her father unexpectedly passes away, young Ella finds herself at the mercy of her cruel stepmother and her daughters. Never one to give up hope, Ella's fortunes begin to change after meeting a dashing stranger in the woods.",543514353.0,105.0,Midnight is just the beginning. +407445.0,en,Breathe,22.008,2017-10-13,7.4,572.0,"['Drama', 'Romance']","Based on the true story of Robin, a handsome, brilliant and adventurous man whose life takes a dramatic turn when polio leaves him paralyzed.",477815.0,118.0,"With her love, he lived" +20083.0,cn,新宿事件,12.337,2009-03-22,6.7,170.0,"['Drama', 'Action', 'Thriller', 'Crime']","Steelhead is a Chinese laborer who comes to Japan hoping for a better life. Unable to find honest work and bullied into the shadows with his fellow Chinese illegal immigrants, he soon finds himself ascending as the boss of a black market mob. After providing a deadly service to a powerful Yakuza crime boss, Steelhead’s rise to mafia power spirals rapidly out of control as he’s given reign over the dangerous and lucrative Shinjuku district.",0.0,119.0,They destroyed his life... Now he'll destroy them all. +10198.0,en,The Princess and the Frog,67.269,2009-12-08,7.1,4186.0,"['Romance', 'Family', 'Animation']","A waitress, desperate to fulfill her dreams as a restaurant owner, is set on a journey to turn a frog prince back into a human being, but she has to face the same problem after she kisses him.",270997378.0,98.0,Every love story begins with a kiss... +17009.0,en,Jetsons: The Movie,8.05,1990-06-06,5.9,144.0,"['Animation', 'Comedy', 'Family', 'Science Fiction']",George Jetson is forced to uproot his family when Mr. Spacely promotes him to take charge of a new factory on a distant planet.,0.0,82.0,The first movie from the family that's truly ahead of its time! +244458.0,en,The Voices,13.007,2014-01-19,6.3,1394.0,"['Comedy', 'Crime', 'Horror', 'Fantasy']","A mentally unhinged factory worker must decide whether to listen to his talking cat and become a killer, or follow his dog's advice to keep striving for normalcy.",0.0,101.0,Hearing voices can be murder. +300681.0,en,Replicas,30.609,2018-10-25,6.1,1011.0,"['Science Fiction', 'Thriller']",A scientist becomes obsessed with returning his family to normalcy after a terrible accident.,8100000.0,107.0,Some humans are unstoppable +378111.0,en,A Stork's Journey,13.707,2017-05-05,6.0,108.0,"['Family', 'Fantasy', 'Adventure', 'Animation', 'Comedy']","Orphaned at birth and raised by storks, the teenage sparrow Richard believes he is one of them. But when the time comes to migrate to Africa, his stork family is forced to reveal his true identity and leave him behind in the forest, since he is not a migratory bird and would not survive the journey. Determined to prove he is a stork after all, Richard ventures south on his own. But only with the help of Olga, an eccentric owl with an imaginary friend and Kiki, a narcissistic, disco-singing parakeet, does he stand a chance to reach his goal and learn to accept who he really is.",0.0,85.0,Their adventure is the destination. +246080.0,en,Black Sea,17.978,2014-12-05,6.2,856.0,"['Adventure', 'Thriller', 'Drama']","A rogue submarine captain pulls together a misfit crew to go after a sunken treasure rumored to be lost in the depths of the Black Sea. As greed and desperation take control on-board their claustrophobic vessel, the increasing uncertainty of the mission causes the men to turn on each other to fight for their own survival.",1171559.0,115.0,Brave the deep. Find the gold. Trust no one. +10353.0,fr,Les Couloirs du Temps : Les Visiteurs II,9.748,1998-02-11,6.0,798.0,"['Comedy', 'Fantasy']","The sequel to The Visitors reunites us with those lovable ruffians from the French Medieval ages who - through magic - are transported into the present, with often drastic consequences. Godefroy de Montmirail travels to today to recover the missing family jewels and a sacred relic, guarantor of his wife-to-be's fertility. The confrontation between Godefroy's repellent servant Jack the Crack and his descendent, the effete Jacquart, present-day owner of the chateau, further complicates the matter.",66000000.0,118.0,They come back! +48287.0,en,The Baby-Sitters Club,10.304,1995-08-18,5.5,66.0,"['Comedy', 'Drama', 'Family']",Seven junior-high-school girls organize a daycare camp for children while at the same time experiencing classic adolescent growing pains.,0.0,94.0,Friends Forever +839.0,en,Duel,20.561,1971-11-13,7.4,1288.0,"['Action', 'Thriller', 'TV Movie']","Traveling businessman David Mann angers the driver of a rusty tanker while crossing the California desert. A simple trip turns deadly, as Mann struggles to stay on the road while the tanker plays cat and mouse with his life.",0.0,90.0,The most bizarre murder weapon ever used! +5924.0,en,Papillon,13.05,1973-12-13,7.9,1371.0,"['Crime', 'Drama']","A man befriends a fellow criminal as the two of them begin serving their sentence on a dreadful prison island, which inspires the man to plot his escape.",53267000.0,151.0,The greatest adventure of escape! +10388.0,en,The Limey,7.593,1999-05-15,6.7,277.0,"['Crime', 'Drama', 'Mystery']","The Limey follows Wilson, a tough English ex-con who travels to Los Angeles to avenge his daughter's death. Upon arrival, Wilson goes to task battling Valentine and an army of L.A.'s toughest criminals, hoping to find clues and piece together what happened. After surviving a near-death beating, getting thrown from a building and being chased down a dangerous mountain road, the Englishman decides to dole out some bodily harm of his own.",3204663.0,89.0,Vengeance knows no boundaries. +1414.0,es,Los amantes del Círculo Polar,9.827,1998-09-04,7.4,160.0,"['Drama', 'Mystery', 'Romance']","Otto and Ana are kids when they meet each other. Their names are palindromes. They meet by chance, people are related by chance. A story of circular lives, with circular names, and a circular place (Círculo polar) where the day never ends in the midnight sun. There are things that never end, and Love is one of them.",0.0,112.0,Destiny cannot be denied. +199.0,en,Star Trek: First Contact,25.313,1996-11-22,7.3,1318.0,"['Science Fiction', 'Action', 'Adventure', 'Thriller']","The Borg, a relentless race of cyborgs, are on a direct course for Earth. Violating orders to stay away from the battle, Captain Picard and the crew of the newly-commissioned USS Enterprise E pursue the Borg back in time to prevent the invaders from changing Federation history and assimilating the galaxy.",150000000.0,111.0,Resistance is futile. +9540.0,en,Dead Ringers,9.691,1988-09-23,7.2,581.0,"['Thriller', 'Horror']","Elliot, a successful gynecologist, works at the same practice as his identical twin, Beverly. Elliot is attracted to many of his patients and has affairs with them. When he inevitably loses interest, he will give the woman over to Beverly, the meeker of the two, without the woman knowing the difference. Beverly falls hard for one of the patients, Claire, but when she inadvertently deceives him, he slips into a state of madness.",8038508.0,115.0,Two bodies. Two minds. One soul. +491926.0,en,Resistance,11.13,2020-03-27,7.0,257.0,"['War', 'History', 'Drama']",The story of mime Marcel Marceau as he works with a group of Jewish boy scouts and the French Resistance to save the lives of ten thousand orphans during World War II.,288064.0,120.0,The best way to resist is to survive. +476299.0,en,Ghostland,36.684,2018-03-14,7.3,1749.0,"['Horror', 'Mystery', 'Thriller']","A mother of two inherits a home from her aunt. On the first night in the new home she is confronted with murderous intruders and fights for her daughters’ lives. Sixteen years later the daughters reunite at the house, and that is when things get strange . . .",0.0,91.0,You really thought you’ve been scared? +728144.0,en,The Special,16.362,2020-01-31,5.8,12.0,"['Horror', 'Comedy']","Suspecting his wife of infidelity, Jerry is persuaded by his best friend to accompany him to a brothel to sample ‘The Special’, which proves to be a lifechanging experience in more ways than one. Because every pleasure has its price...",0.0,94.0,See it with someone you hate. +399248.0,en,Beirut,15.833,2018-04-11,6.3,412.0,"['Action', 'Thriller', 'Drama']","In 1980s Beirut, Mason Skiles is a former U.S. diplomat who is called back into service to save a colleague from the group that is possibly responsible for his own family's death. Meanwhile, a CIA field agent who is working under cover at the American embassy is tasked with keeping Mason alive and ensuring that the mission is a success.",7258534.0,110.0,"Beirut, 1982: The Paris of the Middle East Was Burning" +10249.0,en,The Rocketeer,13.243,1991-06-21,6.5,665.0,"['Action', 'Adventure', 'Science Fiction', 'Family']","A stunt pilot comes across a prototype jetpack that gives him the ability to fly. However, evil forces of the world also want this jetpack at any cost.",46704056.0,108.0,An Ordinary Man Forced to Become An Extraordinary Hero. +2728.0,en,Postal,7.696,2007-08-11,4.5,228.0,"['Action', 'Comedy']","The story begins with a regular Joe who tries desperately to seek employment, but embarks on a violent rampage when he teams up with cult leader Uncle Dave. Their first act is to heist an amusement park, only to learn that the Taliban are planning the same heist as well. Chaos ensues, and now the Postal Dude must not only take on terrorists but also political figures.",0.0,100.0,Some comedies go too far... others start there. +24935.0,en,Return of the Living Dead: Necropolis,21.302,2005-10-15,5.2,150.0,"['Horror', 'Comedy']","A group of teenagers who, in an attempt to rescue their friend from an evil corporation, end up releasing a horde of blood thirsty zombies.",0.0,88.0,You cannot kill what is already dead. +9896.0,en,Rat Race,11.156,2001-08-17,6.2,1334.0,"['Adventure', 'Comedy']","In an ensemble film about easy money, greed, manipulation and bad driving, a Las Vegas casino tycoon entertains his wealthiest high rollers -- a group that will bet on anything -- by pitting six ordinary people against each other in a wild dash for $2 million jammed into a locker hundreds of miles away. The tycoon and his wealthy friends monitor each racer's every move to keep track of their favorites. The only rule in this race is that there are no rules.",85498534.0,112.0,563 miles. 9 people. $2 million. 1001 problems! +474214.0,en,Trading Paint,8.749,2019-02-22,5.5,72.0,"['Action', 'Drama', 'Thriller']","A stock car racing legend is drawn back to the dirt track when his son, an aspiring driver, joins a rival racing team.",0.0,87.0,Racing is in their blood +577.0,en,To Die For,13.381,1995-09-22,6.6,556.0,"['Drama', 'Comedy', 'Crime']","Suzanne Stone wants to be a world-famous news anchor and she is willing to do anything to get what she wants. What she lacks in intelligence, she makes up for in cold determination and diabolical wiles. As she pursues her goal with relentless focus, she is forced to destroy anything and anyone that may stand in her way, regardless of the ultimate cost or means necessary.",21284514.0,106.0,All she wanted was a little attention +411221.0,es,Ozzy,14.449,2016-10-14,6.1,127.0,"['Animation', 'Family']","Ozzy, a friendly, peaceful beagle has his idyllic life turned upside down when the Martins leave on a long and distant trip. There's only one problem: no dogs allowed! Unable to bring their beloved Ozzy along for the ride, they settle on the next best thing, a top-of-the-line canine spa called Blue Creek.",0.0,90.0,Fast & Furry +515195.0,en,Yesterday,24.503,2019-06-27,6.7,2910.0,"['Music', 'Comedy', 'Romance', 'Fantasy']","Jack Malik is a struggling singer-songwriter in an English seaside town whose dreams of fame are rapidly fading, despite the fierce devotion and support of his childhood best friend, Ellie. After a freak bus accident during a mysterious global blackout, Jack wakes up to discover that he's the only person on Earth who can remember The Beatles.",88092097.0,116.0,Everyone in the world has forgotten The Beatles. Everyone except Jack… +646207.0,en,The Ice Road,151.124,2021-06-24,7.2,730.0,"['Action', 'Adventure', 'Drama', 'Thriller']","After a remote diamond mine collapses in far northern Canada, an ice road driver must lead an impossible rescue mission over a frozen ocean to save the trapped miners.",2147110.0,108.0,This mission is on thin ice. +1725.0,en,West Side Story,12.115,1961-12-13,7.3,1326.0,"['Crime', 'Drama', 'Romance']","In the slums of the upper West Side of Manhattan, New York, a gang of Polish-American teenagers called the Jets compete with a rival gang of recently immigrated Puerto Ricans, the Sharks, to ""own"" the neighborhood streets. Tensions are high between the gangs but two kids, one from each rival gang, fall in love leading to tragedy.",43656822.0,152.0,The screen achieves one of the great entertainments in the history of motion pictures. +18736.0,en,The Lizzie McGuire Movie,14.172,2003-05-02,6.3,1048.0,"['Family', 'Comedy']","Lizzie McGuire has graduated from middle school and takes a trip to Rome, Italy with her class. And what was supposed to be only a normal trip, becomes a teenager's dream come true.",55534455.0,94.0,The only risk in taking an adventure is not taking it at all. +399174.0,en,Isle of Dogs,28.544,2018-03-23,7.9,3602.0,"['Adventure', 'Comedy', 'Animation']","In the future, an outbreak of canine flu leads the mayor of a Japanese city to banish all dogs to an island that's a garbage dump. The outcasts must soon embark on an epic journey when a 12-year-old boy arrives on the island to find his beloved pet.",64241499.0,101.0,Welcome to the Isle of Dogs. +341013.0,en,Atomic Blonde,30.032,2017-07-26,6.4,5169.0,"['Action', 'Thriller']",An undercover MI6 agent is sent to Berlin during the Cold War to investigate the murder of a fellow agent and recover a missing list of double agents.,100014025.0,115.0,Talents can be overrated. +10650.0,en,Sudden Impact,12.512,1983-12-07,6.6,601.0,"['Crime', 'Action', 'Thriller']","When a young rape victim takes justice into her own hands and becomes a serial killer, it's up to Dirty Harry Callahan, on suspension from the SFPD, to bring her to justice.",67642693.0,117.0,Dirty Harry is at it again +10147.0,en,Bad Santa,21.259,2003-11-26,6.5,1597.0,"['Drama', 'Comedy', 'Crime']",A miserable conman and his partner pose as Santa and his Little Helper to rob department stores on Christmas Eve. But they run into problems when the conman befriends a troubled kid.,76488889.0,92.0,He doesn't care if you're naughty or nice. +53064.0,ja,地下幻燈劇画 少女椿,20.105,1992-05-02,6.6,72.0,"['Horror', 'Animation', 'Drama']","After losing her parents, young flower selling Midori is put up by a fairground group. She is abused and forced to slavery, until the arrival of an enigmatic magician of short stature, who gives her hope for a better future.",0.0,48.0,The camelia girl +381.0,en,To Catch a Thief,12.601,1955-08-03,7.4,1083.0,"['Crime', 'Drama', 'Mystery', 'Romance', 'Thriller']","An ex-thief is accused of enacting a new crime spree, so to clear his name he sets off to catch the new thief, who’s imitating his signature style.",8750000.0,107.0,WANTED by the police in all the luxury-spots of Europe!... A catch for any woman! +56601.0,en,The Perfect Game,12.706,2010-04-01,6.8,96.0,"['Drama', 'Family']","Based on a true story, a group of boys from Monterrey, Mexico who become the first non-U.S. team to win the Little League World Series.",3878993.0,118.0,Dream for the fences. +566222.0,en,The Great Hack,12.627,2019-01-26,6.8,370.0,['Documentary'],"Data—arguably the world’s most valuable asset—is being weaponized to wage cultural and political wars. The dark world of data exploitation is uncovered through the unpredictable, personal journeys of players on different sides of the explosive Cambridge Analytica/Facebook data story.",0.0,114.0,They took your data. Then they took control. +51170.0,en,Open Season 3,20.992,2010-10-21,5.7,415.0,"['Adventure', 'Animation', 'Family', 'Comedy']","Boog, Elliot, and their forest friends return with an all-new adventure, this time in a Big Top Circus! The comedy begins when Boog's pals choose their family obligations over the annual guy's trip, and a disappointed Boog decides to take a trip of his own, which leads him right into the middle of a circus ring...literally. When he switches places with a devious look-a-like circus grizzly and falls for an alluring Russian troupe member, he'll come to realize that maybe you don't have to choose between family and friendship after all.",0.0,75.0,Boog and Elliot are Back and the Fur is Going to Fly! +11775.0,en,Intolerable Cruelty,13.674,2003-09-02,5.9,1100.0,"['Crime', 'Comedy', 'Romance']",A revenge-seeking gold digger marries a womanizing Beverly Hills lawyer with the intention of making a killing in the divorce.,119940815.0,100.0,They can't keep their hands off each others assets. +38684.0,en,Jane Eyre,15.366,2011-03-11,7.2,1140.0,"['Drama', 'Romance']","After a bleak childhood, Jane Eyre goes out into the world to become a governess. As she lives happily in her new position at Thornfield Hall, she meet the dark, cold, and abrupt master of the house, Mr. Rochester. Jane and her employer grow close in friendship and she soon finds herself falling in love with him. Happiness seems to have found Jane at last, but could Mr. Rochester's terrible secret be about to destroy it forever?",34710627.0,120.0,She sought refuge… and found a place haunted by secrets. +300669.0,en,Don't Breathe,72.706,2016-06-08,7.0,5745.0,"['Horror', 'Thriller']",A group of teens break into a blind man's home thinking they'll get away with the perfect crime. They're wrong.,159047649.0,89.0,In the dark the blind man is king. +423899.0,en,Victoria & Abdul,20.066,2017-09-14,7.0,976.0,"['Drama', 'History']",Queen Victoria strikes up an unlikely friendship with a young Indian clerk named Abdul Karim.,65421267.0,112.0,History's most unlikely friendship. +9560.0,en,A Walk in the Clouds,15.574,1995-08-11,7.2,679.0,"['Drama', 'Romance']",World War II vet Paul Sutton falls for a pregnant and unwed woman who persuades him -- during their first encounter -- to pose as her husband so she can face her family.,50012507.0,103.0,A man in search. A woman in need. A story of fate. +8688.0,en,Snake Eyes,10.567,1998-08-07,6.1,948.0,"['Thriller', 'Crime', 'Mystery']","All bets are off when corrupt homicide cop Rick Santoro witnesses a murder during a boxing match. It's up to him and lifelong friend and naval intelligence agent Kevin Dunne to uncover the conspiracy behind the killing. At every turn, Santoro makes increasingly shocking discoveries that even he can't turn a blind eye to.",103891409.0,98.0,Believe everything except your eyes. +26648.0,it,Il portiere di notte,14.685,1974-04-03,6.8,202.0,"['War', 'Drama', 'Romance']","A concentration camp survivor discovers her former torturer and lover working as a porter at a hotel in postwar Vienna. When the couple attempt to re-create their sadomasochistic relationship, his former SS comrades begin to stalk them.",0.0,118.0,The Most Controversial Picture of Our Time! +693113.0,en,Midnight in the Switchgrass,28.105,2021-07-23,6.5,173.0,"['Crime', 'Mystery', 'Thriller', 'Action']","FBI Agent Karl Helter and his partner Rebecca Lombardo are very close to busting a sex-trafficking ring. When they realize their investigation has crossed the path of a brutal serial killer, they team up with a Texas Ranger to put an end to the infamous 'Truck Stop Killer'.",0.0,99.0,Can they stop a serial killer who can't stop himself? +11313.0,en,Hearts in Atlantis,8.584,2001-09-07,6.6,348.0,"['Drama', 'Mystery']",A widowed mother and her son change when a mysterious stranger enters their lives.,24185781.0,101.0,What if one of life's great mysteries moved in upstairs? +290250.0,en,The Nice Guys,21.175,2016-05-15,7.1,6130.0,"['Comedy', 'Crime', 'Action']",A private eye investigates the apparent suicide of a fading porn star in 1970s Los Angeles and uncovers a conspiracy.,62788218.0,116.0,Private dicks +203835.0,en,Amityville: The Awakening,14.588,2017-07-20,5.4,838.0,"['Thriller', 'Horror']","Belle, her little sister, and her comatose twin brother move into a new house with their single mother Joan in order to save money to help pay for her brother's expensive healthcare. But when strange phenomena begin to occur in the house including the miraculous recovery of her brother, Belle begins to suspect her Mother isn't telling her everything and soon realizes they just moved into the infamous Amityville house.",0.0,87.0,Every house has a history. This one has a legend. +665.0,en,Ben-Hur,35.076,1959-11-18,7.8,1938.0,"['Action', 'Drama', 'History']","In 25 AD,Judah Ben-Hur, a Jew in ancient Judea, opposes the occupying Roman empire. Falsely accused by a Roman childhood friend-turned-overlord of trying to kill the Roman governor, he is put into slavery and his mother and sister are taken away as prisoners. Three years later and freed by a grateful Roman galley commander whom he has rescued from drowning, he becomes an expert charioteer for Rome, all the while plotting to return to Judea, find and rescue his family, and avenge himself on his former friend. All the while, the form and work of Jesus move in the background of his life...",164000000.0,222.0,The entertainment experience of a lifetime. +9386.0,en,In the Line of Fire,19.263,1993-07-08,7.0,1107.0,"['Action', 'Drama', 'Thriller', 'Crime', 'Mystery']","Veteran Secret Service agent Frank Horrigan is a man haunted by his failure to save President Kennedy while serving protection detail in Dallas. Thirty years later, a man calling himself ""Booth"" threatens the life of the current President, forcing Horrigan to come back to protection detail to confront the ghosts from his past.",176997168.0,128.0,An assassin on the loose. A president in danger. Only one man stands between them... +9081.0,en,Waking Life,9.405,2001-10-19,7.6,673.0,"['Animation', 'Drama']","Waking Life is about a young man in a persistent lucid dream-like state. The film follows its protagonist as he initially observes and later participates in philosophical discussions that weave together issues like reality, free will, our relationships with others, and the meaning of life.",3176880.0,99.0,Dreams. What are they? An escape from reality or reality itself? +80280.0,es,[REC]³ Génesis,23.105,2012-03-30,5.2,1085.0,['Horror'],A pair of newlyweds must fight to survive when their wedding reception descends into chaos and carnage when their guests become infected by a virus that turns them into hungry zombies.,11019975.0,80.0,You may kiss the bride. +12429.0,ja,崖の上のポニョ,90.365,2008-07-19,7.7,2989.0,"['Animation', 'Fantasy', 'Family']","The son of a sailor, 5-year old Sosuke, lives a quiet life on an oceanside cliff with his mother Lisa. One fateful day, he finds a beautiful goldfish trapped in a bottle on the beach and upon rescuing her, names her Ponyo. But she is no ordinary goldfish.",202404009.0,100.0,Welcome to a world where anything is possible. +440472.0,en,The Upside,27.743,2019-01-10,7.1,890.0,"['Comedy', 'Drama']","Phillip is a wealthy quadriplegic who needs a caretaker to help him with his day-to-day routine in his New York penthouse. He decides to hire Dell, a struggling parolee who's trying to reconnect with his ex and his young son. Despite coming from two different worlds, an unlikely friendship starts to blossom.",111353135.0,126.0,Based on a true story. +476669.0,en,The King's Man,42.633,2021-12-22,0.0,0.0,"['War', 'Action', 'Thriller', 'Adventure']","As a collection of history's worst tyrants and criminal masterminds gather to plot a war to wipe out millions, one man must race against time to stop them.",0.0,131.0,Witness the bloody origin. +11905.0,en,The Company of Wolves,6.776,1984-09-21,6.4,207.0,"['Horror', 'Fantasy']","An adaptation of Angela Carter's fairy tales. Young Rosaleen dreams of a village in the dark woods, where Granny tells her cautionary tales in which innocent maidens are tempted by wolves who are hairy on the inside. As Rosaleen grows into womanhood, will the wolves come for her too?",0.0,95.0,"Now, as then, ’tis simple truth: sweetest tongue has sharpest tooth" +14362.0,en,Out for Justice,12.927,1991-04-12,6.1,299.0,"['Action', 'Crime']",Gino Felino is an NYPD detective from Brooklyn who knows everyone and everything in his neighborhood. Killing his partner was someone's big mistake... because he's now out for justice.,39673161.0,91.0,He's a cop. It's a dirty job... but somebody's got to take out the garbage. +259316.0,en,Fantastic Beasts and Where to Find Them,81.471,2016-11-16,7.4,15766.0,"['Adventure', 'Fantasy']","In 1926, Newt Scamander arrives at the Magical Congress of the United States of America with a magically expanded briefcase, which houses a number of dangerous creatures and their habitats. When the creatures escape from the briefcase, it sends the American wizarding authorities after Newt, and threatens to strain even further the state of magical and non-magical relations.",809342332.0,132.0,From J.K. Rowling's wizarding world. +81440.0,en,"Good Luck Charlie, It's Christmas!",13.842,2011-12-04,6.6,342.0,"['TV Movie', 'Comedy', 'Family']","Teddy Duncan's middle-class family embarks on a road trip from their home in Denver to visit Mrs. Duncans Parents, the Blankenhoopers, in Palm Springs. When they find themselves stranded between Denver and Utah, they try to hitch a ride to Las Vegas with a seemingly normal older couple in a station wagon from Roswell, New Mexico. It turns out that the couple believes they are the victims of alien abduction. The Duncan's must resort to purchasing a clunker Yugo to get to Utah, have their luggage stolen in Las Vegas, and survive a zany Christmas with Grandpa and Grandma Blankenhooper.",0.0,85.0,"For the Duncan family, Christmas is about to take a major detour." +240916.0,en,Reasonable Doubt,24.675,2014-01-17,5.9,442.0,"['Crime', 'Thriller']","When up-and-coming District Attorney Mitch Brockden commits a fatal hit-and-run, he feels compelled to throw the case against the accused criminal who was found with the body and blamed for the crime. Following the trial, Mitch's worst fears come true when he realizes that he acquitted a guilty man, and he soon finds himself on the hunt for the killer before more victims pile up.",0.0,91.0,Proof is the Burden +565716.0,en,American Factory,13.599,2019-08-21,7.2,329.0,['Documentary'],"In post-industrial Ohio, a Chinese billionaire opens a new factory in the husk of an abandoned General Motors plant, hiring two thousand blue-collar Americans. Early days of hope and optimism give way to setbacks as high-tech China clashes with working-class America.",0.0,110.0,Cultures collide. Hope survives. +513302.0,fr,Minuscule 2 - Les mandibules du bout du monde,16.166,2018-09-09,7.1,133.0,"['Animation', 'Adventure', 'Family', 'Comedy']","When the first snow falls in the valley, it is urgent to prepare its reserves for the winter. Alas, during the operation, a small ladybug is trapped in a box - to the Caribbean. One solution: reform the shock team.",0.0,92.0,The Journey Continues. +9833.0,en,The Phantom of the Opera,14.201,2004-12-08,7.3,1256.0,"['Thriller', 'Drama', 'Romance']","Deformed since birth, a bitter man known only as the Phantom lives in the sewers underneath the Paris Opera House. He falls in love with the obscure chorus singer Christine, and privately tutors her while terrorizing the rest of the opera house and demanding Christine be given lead roles. Things get worse when Christine meets back up with her childhood acquaintance Raoul and the two fall in love",154648887.0,143.0,The classic musical comes to the big screen for the first time. +393345.0,en,Cult of Chucky,149.692,2017-10-23,5.8,800.0,"['Horror', 'Thriller']","Confined to an asylum for the criminally insane, Nica Pierce is convinced that she, not Chucky, murdered her entire family. But when the psychiatrist introduces a new therapeutic ""Good Guy"" doll with a familiar face, a string of new, grisly deaths leads Nica to wonder if she isn't crazy after all.",2200000.0,91.0,You may feel a little prick +644682.0,en,Sleeping With My Student,11.037,2019-10-18,5.4,12.0,"['Thriller', 'TV Movie']",New school headmaster and single mother Kathy discovers her vacation fling with charming 18-year-old Ian was no accident when he transfers to her school targeting Kathy and her teenage daughter Bree in a deadly scheme. Ian wants revenge as he believes Kathy is responsible for splitting up his family ultimately leading to his father's death. Kathy will need to uncover Ian's motives quickly if she hopes to protect herself and Bree from his dangerous threats.,0.0,87.0,An eye for an eye. +411143.0,en,Tau,14.928,2018-06-29,6.2,965.0,"['Science Fiction', 'Thriller']","Held captive in a futuristic smart house, a woman hopes to escape by befriending the A.I. program that controls the house.",0.0,97.0,No bars. No guards. No escape. +1669.0,en,The Hunt for Red October,24.437,1990-03-02,7.4,2429.0,"['Action', 'Adventure', 'Thriller']","Based on Tom Clancy's bestseller, directed by John McTiernan (Die Hard) and starring Sean Connery and Alec Baldwin, The Hunt For Red October seethes with high-tech excitement and sweats with the tension of men who hold Doomsday in their hands. A new technologically-superior Soviet nuclear sub, the Red October, is heading for the U.S. coast under the command of Captain Marko Ramius. The American government thinks Ramius is planning to attack. A lone CIA analyst has a different idea: he thinks Ramius is planning to defect, but he has only a few hours to find him and prove it - because the entire Russian naval and air commands are trying to find him, too. The hunt is on!",200512643.0,135.0,Invisible. Silent. Stolen. +9671.0,en,Crocodile Dundee,21.866,1986-09-26,6.4,1388.0,"['Adventure', 'Comedy']","When a New York reporter plucks crocodile hunter Dundee from the Australian Outback for a visit to the Big Apple, it's a clash of cultures and a recipe for good-natured comedy as naïve Dundee negotiates the concrete jungle. Dundee proves that his instincts are quite useful in the city and adeptly handles everything from wily muggers to high-society snoots without breaking a sweat.",328203506.0,97.0,There's a little of him in all of us. +787723.0,en,13 Minutes,26.764,2021-10-29,6.1,10.0,"['Drama', 'Thriller']","As a new day begins in the small American town of Minninnewah, the residents start their day as ordinary as the next. Mother Nature, however, has other plans for them. Inhabitants have just 13 minutes to seek shelter before the largest tornado on record ravages the town, leaving them struggling to protect their loved ones and fighting for their lives. Left to deal with the aftermath, four families must overcome their differences and find strength in each other in order to survive.",0.0,109.0,Every second counts. +213681.0,en,Masterminds,21.059,2016-09-29,5.7,1439.0,"['Action', 'Comedy', 'Crime']",A night guard at an armored car company in the Southern U.S. organizes one of the biggest bank heists in American history.,29200000.0,94.0,What Would You Do With $17 Million? +2907.0,en,The Addams Family,56.89,1991-11-22,7.0,3408.0,"['Family', 'Comedy', 'Fantasy', 'Horror']","When a man claiming to be long-lost Uncle Fester reappears after 25 years lost, the family plans a celebration to wake the dead. But the kids barely have time to warm up the electric chair before Morticia begins to suspect Fester is fraud when he can't recall any of the details of Fester's life.",191502426.0,102.0,Weird Is Relative +168259.0,en,Furious 7,93.407,2015-04-01,7.3,8750.0,"['Action', 'Thriller', 'Crime', 'Adventure']",Deckard Shaw seeks revenge against Dominic Toretto and his family for his comatose brother.,1515047671.0,137.0,Vengeance Hits Home +734265.0,en,Love Hard,279.451,2021-11-05,6.6,170.0,"['Comedy', 'Romance']","An LA girl, unlucky in love, falls for an East Coast guy on a dating app and decides to surprise him for Christmas, only to discover that she’s been catfished. But the object of her affection actually lives in the same town, and the guy who duped her offers to set them up if she pretends to be his own girlfriend for the holidays.",0.0,105.0,A romantic comedy about the lies we tell for love. +1688.0,en,Conquest of the Planet of the Apes,14.776,1972-06-29,6.2,615.0,"['Action', 'Science Fiction']","In a futuristic world that has embraced ape slavery, a chimpanzee named Caesar resurfaces after almost twenty years of hiding from the authorities, and prepares for a revolt against humanity.",9700000.0,88.0,All new! The revolt of the apes. The most awesome spectacle in the annals of science fiction! +523139.0,en,In the Tall Grass,18.592,2019-09-20,5.5,1577.0,"['Horror', 'Drama', 'Thriller']","After hearing a child screaming for help from the green depths of a vast field of tall grass, Becky, a pregnant woman, and Cal, her brother, park their car near a mysterious abandoned church and recklessly enter the field, discovering that they are not alone and because of some reason they are unable of escaping a completely inextricable vegetable labyrinth.",0.0,102.0,Some places have a mind of their own. +41180.0,en,The Client List,8.966,2010-07-19,5.6,133.0,['Drama'],"After she and her husband lose their jobs, a former Texas homecoming queen inadvertently finds herself in the middle of a prostitution ring after she unknowingly accepts a position at a massage parlor.",0.0,88.0,A mother will do anything for her family. +9473.0,en,"South Park: Bigger, Longer & Uncut",18.565,1999-06-30,7.2,2017.0,"['Animation', 'Comedy']","When the four boys see an R-rated movie featuring Canadians Terrance and Philip, they are pronounced ""corrupted"", and their parents pressure the United States to wage war against Canada.",83137603.0,81.0,UH-OH. +11908.0,en,Hatchet,10.572,2006-04-27,5.9,453.0,"['Comedy', 'Horror']","When a group of tourists on a New Orleans haunted swamp tour find themselves stranded in the wilderness, their evening of fun and spooks turns into a horrific nightmare.",208550.0,83.0,Stay out of the swamp. +529982.0,en,Asher,8.659,2018-12-07,5.8,104.0,"['Thriller', 'Action', 'Drama']","Asher is a former Mossad agent turned gun for hire, living an austere life in an ever-changing Brooklyn. Approaching the end of his career, he breaks the oath he took as a young man when he meets Sophie on a hit gone wrong. In order to have love in his life before it's too late, he must kill the man he was, for a chance at becoming the man he wants to be.",0.0,117.0,Some Things Get Better With Age +188222.0,en,Entourage,21.979,2015-06-03,6.2,813.0,['Comedy'],"Movie star Vincent Chase, together with his boys, Eric, Turtle and Johnny, are back…and back in business with super agent-turned-studio head Ari Gold. Some of their ambitions have changed, but the bond between them remains strong as they navigate the capricious and often cutthroat world of Hollywood.",49263404.0,104.0,Dream Large. Live Larger. +329833.0,en,Zoolander 2,18.861,2016-02-06,4.8,1784.0,['Comedy'],Derek and Hansel are modelling again when an opposing company attempts to take them out from the business.,55969000.0,100.0,Long time no Z +356486.0,en,Lumberjack Man,16.275,2015-10-16,4.9,74.0,"['Horror', 'Comedy']","As the staff of Good Friends Church Camp prepares for a spring break filled with ""Fun Under the Son"", a demon logger rises from his sap boiler to wreak his vengeance and feast on flapjacks soaked in the blood of his victims.",0.0,105.0,Welcome to Summer Camp. +156022.0,en,The Equalizer,75.165,2014-09-24,7.2,6874.0,"['Thriller', 'Action', 'Crime']","McCall believes he has put his mysterious past behind him and dedicated himself to beginning a new, quiet life. But when he meets Teri, a young girl under the control of ultra-violent Russian gangsters, he can’t stand idly by – he has to help her. Armed with hidden skills that allow him to serve vengeance against anyone who would brutalize the helpless, McCall comes out of his self-imposed retirement and finds his desire for justice reawakened. If someone has a problem, if the odds are stacked against them, if they have nowhere else to turn, McCall will help. He is The Equalizer.",192330738.0,132.0,What do you see when you look at me? +9334.0,en,The Scorpion King,28.997,2002-04-18,5.5,2437.0,"['Action', 'Adventure', 'Fantasy']","In ancient Egypt, peasant Mathayus is hired to exact revenge on the powerful Memnon and the sorceress Cassandra, who are ready to overtake Balthazar's village. Amid betrayals, thieves, abductions and more, Mathayus strives to bring justice to his complicated world.",165333180.0,92.0,Warrior. Legend. King. +77866.0,en,Contraband,51.727,2012-01-12,6.3,1647.0,"['Thriller', 'Action', 'Drama', 'Crime']","When his brother-in-law runs afoul of a drug lord, family man Chris Farraday turns to a skill he abandoned long ago—smuggling—to repay the debt. But the job goes wrong, and Farraday finds himself wanted by cops, crooks and killers alike.",96262212.0,109.0,What would you hide to protect your family? +520172.0,en,Happiest Season,20.787,2020-11-26,7.5,666.0,"['Romance', 'Comedy']",A young woman's plans to propose to her girlfriend while at her family's annual holiday party are upended when she discovers her partner hasn't yet come out to her conservative parents.,1401954.0,102.0,"This holiday, everyone's secrets are coming out." +52067.0,en,Cedar Rapids,8.293,2011-02-11,6.0,315.0,['Comedy'],A naive Midwesterner insurance salesman travels to a big-city convention in an effort to save the jobs of his co-workers.,6861102.0,87.0,Today is the first day... of the rest of his weekend. +188161.0,en,A Million Ways to Die in the West,30.166,2014-05-22,6.0,3268.0,"['Comedy', 'Western']","As a cowardly farmer begins to fall for the mysterious new woman in town, he must put his new-found courage to the test when her husband, a notorious gun-slinger, announces his arrival.",86410000.0,116.0,Bring protection. +254473.0,en,Brick Mansions,39.093,2014-04-22,5.9,1243.0,"['Action', 'Crime', 'Drama']","In a dystopian Detroit, grand houses that once housed the wealthy are now homes of the city's most-dangerous criminals. Surrounding the area is a giant wall to keep the rest of Detroit safe. For undercover cop Damien Collier, every day is a battle against corruption as he struggles to bring his father's killer, Tremaine, to justice. Meanwhile, Damien and an ex-con named Lino work together to save the city from a plot to destroy it.",68896829.0,90.0,Undercover and never Outgunned +874152.0,en,Christmas in My Heart,7.739,2021-10-23,5.3,3.0,"['TV Movie', 'Drama', 'Romance']","With Christmas fast approaching, concert violinist Beth returns to her hometown after the recent death of her mother, the elementary school’s beloved music department head.",0.0,84.0,Love is life set to music. +521029.0,en,Annabelle Comes Home,81.547,2019-06-26,6.4,2537.0,"['Horror', 'Thriller', 'Mystery']","Determined to keep Annabelle from wreaking more havoc, demonologists Ed and Lorraine Warren bring the possessed doll to the locked artifacts room in their home, placing her “safely” behind sacred glass and enlisting a priest’s holy blessing. But an unholy night of horror awaits as Annabelle awakens the evil spirits in the room, who all set their sights on a new target—the Warrens' ten-year-old daughter, Judy, and her friends.",231252591.0,106.0,Possess them all +607259.0,en,Fatherhood,140.428,2021-06-18,7.7,859.0,"['Drama', 'Family', 'Comedy']","A widowed new dad copes with doubts, fears, heartache and dirty diapers as he sets out to raise his daughter on his own. Inspired by a true story.",0.0,109.0,"In it, together." +500634.0,en,6 Balloons,10.451,2018-03-12,6.1,205.0,['Drama'],"Over the course of one night, a woman drives across LA with her heroin addict brother in search of a detox center, with his two-year-old daughter in tow.",0.0,75.0,Let go with love. +1164.0,en,Babel,26.381,2006-09-08,7.2,2866.0,['Drama'],"In Babel, a tragic incident involving an American couple in Morocco sparks a chain of events for four families in different countries throughout the world. In the struggle to overcome isolation, fear, and displacement, each character discovers that it is family that ultimately provides solace. In the remote sands of the Moroccan desert, a rifle shot rings out detonating a chain of events that will link an American tourist couples frantic struggle to survive, two Moroccan boys involved in an accidental crime, a nanny illegally crossing into Mexico with two American children and a Japanese teen rebel whose father is sought by the police in Tokyo. Separated by clashing cultures and sprawling distances, each of these four disparate groups of people are nevertheless hurtling towards a shared destiny of isolation and grief.",135330182.0,143.0,If You Want to be Understood...Listen +13515.0,en,Mirrors,27.67,2008-08-15,6.2,1378.0,"['Horror', 'Mystery', 'Thriller', 'Drama']",An ex-cop and his family are the target of an evil force that is using mirrors as a gateway into their home.,72436439.0,111.0,There is evil...On the other side. +6977.0,en,No Country for Old Men,30.084,2007-11-08,7.9,9110.0,"['Crime', 'Drama', 'Thriller']","Llewelyn Moss stumbles upon dead bodies, $2 million and a hoard of heroin in a Texas desert, but methodical killer Anton Chigurh comes looking for it, with local sheriff Ed Tom Bell hot on his trail. The roles of prey and predator blur as the violent pursuit of money and justice collide.",171627166.0,122.0,There are no clean getaways. +18937.0,en,Quest for Camelot,28.999,1998-05-15,6.9,634.0,"['Fantasy', 'Animation', 'Drama', 'Romance', 'Family']","During the times of King Arthur, Kayley is a brave girl who dreams of following her late father as a Knight of the Round Table. The evil Ruber wants to invade Camelot and take the throne of King Arthur, and Kayley has to stop him.",38172500.0,86.0,An evil knight gives nobility a bad name. +261392.0,en,American Ultra,26.629,2015-08-19,6.1,2315.0,"['Comedy', 'Action']","Mike is an unmotivated stoner whose small-town life with his live-in girlfriend, Phoebe, is suddenly turned upside down. Unbeknownst to him, Mike is actually a highly trained, lethal sleeper agent. In the blink of an eye, as his secret past comes back to haunt him, Mike is thrust into the middle of a deadly government operation and is forced to summon his inner action-hero in order to survive.",27139524.0,96.0,Everyone's getting smoked. +252680.0,en,Moms' Night Out,20.366,2014-03-25,5.6,244.0,['Comedy'],"Yearning for an evening without their kids, some friends plan a night out. But to do this, their husbands need to watch the kids. What can go wrong?",10429707.0,98.0,What could go wrong? +45662.0,en,Space Chimps 2: Zartog Strikes Back,10.26,2010-05-26,4.7,75.0,"['Animation', 'Family']","Comet longs to be taken seriously as a full-fledged space chimp. He journeys to the fantastical Planet Malgor and bonds with the adorable alien Kilowatt, living out his ultimate fantasy. However, it's time for Comet to prove himself when the feared alien ruler Zartog takes over Mission Control! Comet must show he has the right stuff, and join fellow chimps Ham, Luna and Titan, to save the day.",0.0,76.0,Get ready to blast off on a new adventure. +10009.0,en,Brother Bear,71.226,2003-10-23,7.2,4295.0,"['Adventure', 'Animation', 'Family']","When an impulsive boy named Kenai is magically transformed into a bear, he must literally walk in another's footsteps until he learns some valuable life lessons. His courageous and often zany journey introduces him to a forest full of wildlife, including the lovable bear cub Koda, hilarious moose Rutt and Tuke, woolly mammoths and rambunctious rams.",250397798.0,85.0,Nature Calls +791568.0,en,Settlers,14.708,2021-07-23,5.1,32.0,"['Science Fiction', 'Thriller']","Remmy and her parents, refugees from Earth, have found peace on the Martian outskirts until strangers appear in the hills beyond their farm. Told as a triptych, the film follows Remmy as she struggles to survive in an uneasy landscape.",0.0,104.0,How far would you go to build a new life? +257475.0,ja,たまこラブストーリー,32.762,2014-04-26,6.9,94.0,"['Romance', 'Animation', 'Comedy']","Devoted to her family’s rice-cake–making business and the high school baton club, Tamako is a little slow when it comes to love. She’s oblivious to her childhood friend Mochizo’s affections, even though all their friends know. With graduation closing in and Mochizo leaving for Tokyo, will Tamako realise her feelings and tell him in time?",0.0,83.0,"The end of school, the beginning of love…" +431259.0,en,Escape Room,25.364,2017-08-31,5.0,136.0,"['Horror', 'Thriller', 'Fantasy']",Four friends who partake in a popular Los Angeles escape room find themselves stuck with a demonically possessed killer. They have less than an hour to solve the puzzles needed to escape the room alive.,0.0,90.0,Let the game begin... +8291.0,en,Poetic Justice,10.789,1993-07-23,6.8,160.0,"['Romance', 'Drama']","In this film, we see the world through the eyes of main character Justice, a young African-American poet. A mail carrier invites a few friends along for a long overnight delivery run.",27515786.0,109.0,A Street Romance. +454650.0,en,Beast of Burden,12.492,2018-02-23,4.2,79.0,"['Action', 'Crime', 'Drama', 'Thriller']","Sean Haggerty only has an hour to deliver his illegal cargo. An hour to reassure a drug cartel, a hitman, and the DEA that nothing is wrong. An hour to make sure his wife survives. And he must do it all from the cockpit of his Cessna.",0.0,90.0,Lines are meant to be crossed. +439079.0,en,The Nun,96.872,2018-09-05,5.8,4901.0,"['Horror', 'Mystery', 'Thriller']","When a young nun at a cloistered abbey in Romania takes her own life, a priest with a haunted past and a novitiate on the threshold of her final vows are sent by the Vatican to investigate. Together they uncover the order’s unholy secret. Risking not only their lives but their faith and their very souls, they confront a malevolent force in the form of the same demonic nun that first terrorized audiences in “The Conjuring 2” as the abbey becomes a horrific battleground between the living and the damned.",365550119.0,96.0,Pray For Forgiveness +657.0,en,From Russia with Love,30.06,1963-10-10,7.1,2112.0,"['Action', 'Thriller', 'Adventure']","Agent 007 is back in the second installment of the James Bond series, this time battling a secret crime organization known as SPECTRE. Russians Rosa Klebb and Kronsteen are out to snatch a decoding device known as the Lektor, using the ravishing Tatiana to lure Bond into helping them. Bond willingly travels to meet Tatiana in Istanbul, where he must rely on his wits to escape with his life in a series of deadly encounters with the enemy.",78898765.0,115.0,The world's masters of murder pull out all the stops to destroy Agent 007! +716703.0,en,What Lies Below,29.929,2020-12-17,5.2,93.0,"['Horror', 'Mystery', 'Thriller', 'Science Fiction']","Liberty, a socially awkward 16-year-old, returns from two months at camp to a blindsided introduction of her mother’s fiancé, John Smith, whose charm, intelligence, and beauty paint the picture of a man too perfect to be human.",0.0,87.0,Fear comes to the surface. +297762.0,en,Wonder Woman,69.344,2017-05-30,7.3,17040.0,"['Action', 'Adventure', 'Fantasy']",An Amazon princess comes to the world of Man in the grips of the First World War to confront the forces of evil and bring an end to human conflict.,821847012.0,141.0,Power. Grace. Wisdom. Wonder. +16672.0,ja,砂の女,10.83,1964-02-15,8.3,257.0,"['Drama', 'Thriller']",An entomologist suffers extreme psychological and sexual torture after being taken captive by the residents of a poor seaside village.,0.0,147.0,Haunting. Erotic. Unforgettable. +4961.0,en,Mimic,16.546,1997-08-22,6.0,737.0,"['Fantasy', 'Horror', 'Thriller', 'Science Fiction']","A disease carried by common cockroaches is killing Manhattan children. In an effort to stop the epidemic an entomologist, Susan Tyler, creates a mutant breed of insect that secretes a fluid to kill the roaches. This mutant breed was engineered to die after one generation, but three years later Susan finds out that the species has survived and evolved into a large, gruesome monster that can mimic human form.",25480490.0,105.0,"For thousands of years, man has been evolution's greatest creation... until now." +516632.0,en,The Empty Man,33.251,2020-10-22,6.2,317.0,"['Horror', 'Mystery', 'Thriller']","Retired cop James Lasombra is asked by a friend to investigate the disappearance of her daughter, who seemingly packed in the night and left an ominous message on the bathroom mirror - ""The Empty Man Made Me Do It."" As he investigates this mysterious figure further, James begins to see and hear strange things, and is forced to come to terms with his past and what it means for his future.",4176641.0,137.0,The first night you hear him. The second night you see him. The third night he finds you. +101267.0,en,Katy Perry: Part of Me,12.905,2012-06-28,7.1,233.0,"['Documentary', 'Music']","Giving fans unprecedented access to the real life of the music sensation, Katy Perry: Part of Me exposes the hard work, dedication and phenomenal talent of a girl who remained true to herself and her vision in order to achieve her dreams. Featuring rare behind-the-scenes interviews, personal moments between Katy and her friends, and all-access footage of rehearsals, choreography, Katy’s signature style and more, Katy Perry: Part of Me reveals the singer’s unwavering belief that if you can be yourself, then you can be anything.",32726956.0,93.0,Be yourself and you can be anything +841.0,en,Dune,87.574,1984-12-14,6.3,1964.0,"['Action', 'Science Fiction', 'Adventure']","In the year 10,191, the world is at war for control of the desert planet Arrakis—the only place where the space-travel substance Melange 'Spice' can be found. But when one leader gives up control, it's only so he can stage a coup with some unsavory characters.",30925690.0,137.0,"A world beyond your experience, beyond your imagination." +11857.0,en,Orange County,9.961,2002-01-10,6.1,333.0,"['Comedy', 'Drama']","Shaun Brumder is a local surfer kid from Orange County who dreams of going to Stanford to become a writer and to get away from his dysfunctional family household. Except Shaun runs into one complication after another, starting when his application is rejected after his dim-witted guidance counselor sends in the wrong form.",0.0,82.0,It's not just a place. It's a state of mind. +38142.0,ja,秒速5センチメートル,34.901,2007-03-03,7.3,1394.0,"['Animation', 'Drama', 'Romance']","Three moments in Takaki's life: his relationship with Akari and their forced separation; his friendship with Kanae, who is secretly in love with him; the demands and disappointments of adulthood, an unhappy life in a cold city.",0.0,63.0,At what speed must I live to see you again? +10948.0,en,The Fox and the Hound,52.866,1981-07-10,7.1,2546.0,"['Adventure', 'Animation', 'Drama', 'Family']","When a feisty little fox named Tod is adopted into a farm family, he quickly becomes friends with a fun and adorable hound puppy named Copper. Life is full of hilarious adventures until Copper is expected to take on his role as a hunting dog -- and the object of his search is his best friend!",29800000.0,82.0,A story of two friends who didn't know they were supposed to be enemies. +294652.0,en,Son of a Gun,21.132,2014-10-16,6.4,611.0,"['Action', 'Crime', 'Drama', 'Thriller']","Locked up for a minor crime, 19 year old JR quickly learns the harsh realities of prison life. Protection, if you can get it, is paramount. JR soon finds himself under the watchful eye of Australia's most notorious criminal, Brendan Lynch, but protection comes at a price.",0.0,108.0,Everyone gets what they deserve +9312.0,en,Mortal Kombat,25.739,1995-08-18,5.8,1653.0,"['Action', 'Fantasy']","For nine generations an evil sorcerer has been victorious in hand-to-hand battle against his mortal enemies. If he wins a tenth Mortal Kombat tournament, desolation and evil will reign over the multiverse forever. To save Earth, three warriors must overcome seemingly insurmountable odds, their own inner demons, and superhuman foes in this action/adventure movie based on one of the most popular video games of all time.",122195920.0,101.0,Nothing In This World Has Prepared You For This. +2110.0,fr,WASABI,13.193,2001-10-31,6.6,936.0,"['Drama', 'Action', 'Comedy']","Hubert is a French policeman with very sharp methods. After being forced to take 2 months off by his boss, who doesn't share his view on working methods, he goes back to Japan, where he used to work 19 years ago, to settle the probate of his girlfriend who left him shortly after marriage without a trace.",0.0,94.0,For those who take their action raw. +11092.0,en,Presumed Innocent,28.441,1990-07-26,6.8,471.0,"['Thriller', 'Crime', 'Mystery']","Rusty Sabich is a deputy prosecutor engaged in an obsessive affair with a coworker who is murdered. Soon after, he's accused of the crime. And his fight to clear his name becomes a whirlpool of lies and hidden passions.",221303188.0,127.0,Some people would kill for love +354912.0,en,Coco,573.567,2017-10-27,8.2,14756.0,"['Family', 'Animation', 'Fantasy', 'Music', 'Comedy', 'Adventure']","Despite his family’s baffling generations-old ban on music, Miguel dreams of becoming an accomplished musician like his idol, Ernesto de la Cruz. Desperate to prove his talent, Miguel finds himself in the stunning and colorful Land of the Dead following a mysterious chain of events. Along the way, he meets charming trickster Hector, and together, they set off on an extraordinary journey to unlock the real story behind Miguel's family history.",800526015.0,105.0,The celebration of a lifetime +810413.0,en,The War Below,9.581,2021-09-10,6.9,4.0,"['War', 'Drama', 'History']","During World War I, a group of British miners are recruited to tunnel underneath no man's land and set bombs from below the German front in hopes of breaking the deadly stalemate of the Battle of Messines.",0.0,97.0,Hope runs deep. +259018.0,en,Behaving Badly,14.147,2014-04-14,5.3,480.0,['Comedy'],"Teenager Rick Stevens is willing to do whatever it takes to win the heart of Nina Pennington. He'll have to deal with his best friend's horny mom, a drug abusing boss and even the mob if he ever hopes to land the girl of his dreams. Love is never easy!",422697.0,92.0,"One good girl, several very bad choices" +421792.0,en,Down a Dark Hall,18.011,2018-08-01,5.5,537.0,"['Thriller', 'Drama', 'Fantasy', 'Horror']","Kit, a troubled girl, is sent to the exclusive Blackwood boarding school, where she discovers that only four other female students have been admitted to learn the four pillars of knowledge under the ominous wing of the mysterious headmistress Madame Duret.",0.0,96.0,Welcome to Blackwood. Where lost girls find their way. +10048.0,en,Stealth,13.312,2005-07-27,5.3,741.0,"['Science Fiction', 'Action', 'War']","Deeply ensconced in a top-secret military program, three pilots struggle to bring an artificial intelligence program under control ... before it initiates the next world war.",76932943.0,121.0,Fear The Sky +8488.0,en,Hitch,27.374,2005-02-11,6.5,4621.0,"['Comedy', 'Drama', 'Romance']","Dating coach Alex 'Hitch' Hitchens mentors a bumbling client, Albert, who hopes to win the heart of the glamorous Allegra Cole. While Albert makes progress, Hitch faces his own romantic setbacks when proven techniques fail to work on Sara Melas, a tabloid reporter digging for dirt on Allegra Cole's love life. When Sara discovers Hitch's connection to Albert – now Allegra's boyfriend – it threatens to destroy both relationships.",368100420.0,118.0,The cure for the common man. +923.0,en,Dawn of the Dead,20.727,1978-09-02,7.5,1500.0,['Horror'],"During an ever-growing epidemic of zombies that have risen from the dead, two Philadelphia SWAT team members, a traffic reporter, and his television-executive girlfriend seek refuge in a secluded shopping mall.",55000000.0,127.0,"When there’s no more room in hell, the dead will walk the earth." +24100.0,en,The Little Vampire,23.41,2000-10-27,6.8,312.0,"['Family', 'Adventure', 'Comedy', 'Fantasy']","Based on the popular books, the story tells of Tony who wants a friend to add some adventure to his life. What he gets is Rudolph, a vampire kid with a good appetite. The two end up inseparable, but their fun is cut short when all the hopes of the vampire race could be gone forever in single night. With Tony's access to the daytime world, he helps them to find what they've always wanted.",27965865.0,95.0,"They're not just best friends, they're blood brothers." +856421.0,en,Outlier,10.427,2021-11-02,6.0,3.0,"['Horror', 'Thriller', 'Science Fiction', 'Drama']","After a public scene was caused by her abusive boyfriend, James, Olivia Davis flees the relationship with the help of a kind stranger, Thomas. Fearing for her safety from James, Olivia stays with Thomas for a while. Meanwhile, Thomas is working on a mystery project that Olivia only gets glimpses of. Not trusting herself and being eaten up by past trauma, she decides it's time to leave. Fearing for her safety out there on her own, Thomas is forced to confront and take action to keep Olivia safe. She is now forced to take action, find out what is going on, and escape her trauma.",0.0,81.0,Deviate from the plan. +49849.0,en,Cowboys & Aliens,71.58,2011-07-29,5.5,4124.0,"['Action', 'Science Fiction', 'Thriller', 'Western']","A stranger stumbles into the desert town of Absolution with no memory of his past and a futuristic shackle around his wrist. With the help of mysterious beauty Ella and the iron-fisted Colonel Dolarhyde, he finds himself leading an unlikely posse of cowboys, outlaws, and Apache warriors against a common enemy from beyond this world in an epic showdown for survival.",174822325.0,119.0,First Contact. Last Stand. +215830.0,en,Open Grave,8.184,2013-08-13,6.0,551.0,"['Horror', 'Thriller', 'Mystery']","A man awakes-- without memory -- in a pit full of bodies and must figure out if the people who rescued him are the killers, or if he is the murderer.",0.0,102.0,"The moment you wake up, the nightmare begins." +15255.0,en,Undisputed II: Last Man Standing,52.17,2006-04-11,7.2,531.0,"['Action', 'Crime', 'Thriller']","Sequel to the 2002 film. This time, Heavyweight Champ George ""Iceman"" Chambers (White) is sent to a Russian jail on trumped-up drug charges. In order to win his freedom he must fight against the jailhouse fighting champ Uri Boyka (Adkins) in a battle to the death. This time he is not fighting for a title, he is fighting for his life!",0.0,93.0,Wrongfully Accused. Unjustly Imprisoned. Now He's Fighting Back. +328111.0,en,The Secret Life of Pets,22.223,2016-06-18,6.2,6931.0,"['Adventure', 'Comedy', 'Animation', 'Family']","The quiet life of a terrier named Max is upended when his owner takes in Duke, a stray whom Max instantly dislikes.",875457937.0,87.0,Think this is what they do all day? +300665.0,en,Leatherface,32.168,2017-09-14,5.5,913.0,"['Horror', 'Thriller', 'Mystery']","A young nurse is kidnapped by a group of violent teens who escape from a mental hospital and take her on the road trip from hell. Pursued by an equally deranged lawman out for revenge, one of the teens is destined for tragedy and horrors that will destroy his mind, moulding him into a monster named Leatherface.",0.0,88.0,The origin story of The Texas Chain Saw Massacre +420426.0,ja,Bleach,22.427,2018-07-20,6.6,423.0,"['Action', 'Fantasy', 'Adventure']","High school student Ichigo Kurosaki lives an ordinary life, besides being able to see ghosts and the blurry memories of his mother death under strange circumstances when he was a kid. His peaceful world suddenly breaks as he meets Rukia Kuchiki, a God of Death.",4001919.0,108.0,The Soul Reaper Agent Arc +227348.0,en,Paranormal Activity: The Marked Ones,45.811,2014-01-01,5.4,1112.0,"['Horror', 'Thriller']","Seventeen-year-old Jesse has been hearing terrifying sounds coming from his neighbor’s apartment, but when he turns on his camera and sets out to uncover their source, he encounters an ancient evil that won’t rest until it’s claimed his very soul.",86362372.0,84.0,Once Marked It Is Already Too Late +451925.0,en,Time Freak,15.843,2018-11-09,6.6,337.0,"['Science Fiction', 'Comedy', 'Romance']","Stillman, a heartbroken physics student, builds a time machine when his girlfriend breaks up with him. Going back in time, he attempts to save their relationship by fixing every mistake he made—while dragging his best friend along in the process.",0.0,104.0,"If at first you don't succeed, build a time machine." +807.0,en,Se7en,39.431,1995-09-22,8.3,16007.0,"['Crime', 'Mystery', 'Thriller']","Two homicide detectives are on a desperate hunt for a serial killer whose crimes are based on the ""seven deadly sins"" in this dark and haunting film that takes viewers from the tortured remains of one victim to the next. The seasoned Det. Sommerset researches each sin in an effort to get inside the killer's mind, while his novice partner, Mills, scoffs at his efforts to unravel the case.",327311859.0,127.0,Seven deadly sins. Seven ways to die. +20223.0,es,Niñas Mal,10.299,2007-03-09,6.7,91.0,['Comedy'],A rebellious teen butts heads with the teachers at an all-girl charm school in Mexico City.,0.0,100.0,Good girls go to heaven. Bad girls go wherever they want. +43947.0,en,I Spit on Your Grave,47.264,2010-06-17,6.5,1643.0,"['Thriller', 'Crime', 'Horror']","Jennifer is a writer working on a new novel and, needing to get out of the city to finish it, hires a riverside apartment in upstate New York to finish her book—attracting the attention of a number of rowdy male locals.",572809.0,108.0,It's date night. +261103.0,en,Maya the Bee Movie,19.552,2014-09-11,6.2,131.0,"['Family', 'Animation']","Freshly hatched bee Maya is a little whirlwind and won't follow the rules of the hive. One of these rules is not to trust the hornets that live beyond the meadow. When the Royal Jelly is stolen, the hornets are suspected and Maya is thought to be their accomplice. No one believes that she is the innocent victim and no one will stand by her except for her good-natured and best friend Willy. After a long and eventful journey to the hornets hive Maya and Willy soon discover the true culprit and the two friends finally bond with the other residents of the opulent meadow.",0.0,79.0,Friendship is thicker than honey +3537.0,en,Fame,7.651,1980-05-16,6.5,320.0,"['Drama', 'Music']",A chronicle of the lives of several teenagers who attend a New York high school for students gifted in the performing arts.,42000000.0,134.0,"If they've really got what it takes, it's going to take everything they've got." +20544.0,en,Something the Lord Made,20.94,2004-05-30,7.7,144.0,"['TV Movie', 'Drama']",A dramatization of the relationship between heart surgery pioneers Alfred Blalock and Vivien Thomas.,0.0,110.0,A breakthrough that changed the face of medicine. A unique partnership that broke the rules. +12227.0,en,White Fang,11.892,1991-01-18,6.7,461.0,"['Action', 'Adventure', 'Drama', 'Family']",Jack London's classic adventure story about the friendship developed between a Yukon gold hunter and the mixed dog-wolf he rescues from the hands of a man who mistreats him.,34793160.0,107.0,"Where civilization ends, their journey begins." +9320.0,en,The Avengers,20.184,1998-08-13,4.4,518.0,"['Thriller', 'Science Fiction']","British Ministry agent John Steed, under direction from ""Mother"", investigates a diabolical plot by arch-villain Sir August de Wynter to rule the world with his weather control machine. Steed investigates the beautiful Doctor Mrs. Emma Peel, the only suspect, but simultaneously falls for her and joins forces with her to combat Sir August.",48585416.0,89.0,Saving the World in Style. +9988.0,en,Beerfest,9.66,2006-08-25,6.0,386.0,['Comedy'],"During a trip to Germany to scatter their grandfather's ashes, German-American brothers Todd and Jan discover Beerfest, the secret Olympics of downing stout, and want to enter the contest to defend their family's beer-guzzling honor. Their Old Country cousins sneer at the Yanks' chances, prompting the siblings to return to America to prepare for a showdown the following year.",19179969.0,110.0,Prepare for the ultimate chug of war. +95516.0,en,Cleanskin,10.207,2012-03-08,5.8,240.0,"['Drama', 'Thriller', 'Crime']","While working undercover as a bodyguard to arms dealer Harry, former-soldier-turned-secret-service-agent Ewan survives a bloody shootout with a member of an Islamic terrorist cell who steals Harry's briefcase full of Semtex explosives and escapes. Ewan's spymasters task Ewan with hunting down the cell members and retrieving the briefcase.",0.0,108.0,Fight Fire With Fire +390734.0,ja,キングスグレイブ ファイナルファンタジーXV,47.936,2016-07-09,6.8,516.0,"['Animation', 'Science Fiction', 'Action']","The magical kingdom of Lucis is home to the world’s last remaining Crystal, and the menacing empire of Niflheim is determined to steal it. King Regis of Lucis commands an elite force of soldiers called the Kingsglaive. Wielding their king’s magic, they fight to protect Lucis. As the overwhelming military might of the empire bears down, King Regis is faced with an impossible ultimatum – to marry his son, Prince Noctis to Princess Lunafreya of Tenebrae, captive of Niflheim, and surrender his lands to Niflheim rule. Although the king concedes, it becomes clear that the empire will stop at nothing to achieve their devious goals, with only the Kingsglaive standing between them and world domination.",269980.0,115.0,The Final Fantasy XV saga starts here. +14695.0,en,Havoc,9.342,2005-10-16,5.2,212.0,"['Crime', 'Drama']","A wealthy Los Angeles teen and her superficial friends wants to break out of suburbia and experience Southern California's ""gangsta"" lifestyle. But problems arise when the preppies get in over their heads and provoke the wrath of a violent Latino gang. Suddenly, their role-playing seems a little too real.",0.0,85.0,Too much is never enough. +747984.0,ko,불어라 검풍아,74.886,2021-04-08,5.5,6.0,"['Action', 'Comedy']","Since she was a child, Yeon-hee dreamt of becoming an action star. Even though she has an amazing swordsmanship, the reality of reaching her goal is just too hard for her to handle. One day, she is hired as a stand-in for an action film and goes onto the set, only to be transported to a lawless parallel world where people carry swords and kill each other without any retribution. Almost immediately, she is welcomed to the village as their protector and is respected by the villagers. And to save the villagers as a heroine, she begins to fight the villains back.",0.0,99.0,Here she comes to save the world. +10278.0,en,Return to Paradise,8.688,1998-08-10,6.4,192.0,"['Drama', 'Thriller', 'Romance']","Lewis, Sheriff and Tony are three friends vacationing in Malaysia. Sheriff and Tony eventually leave to pursue careers in New York, but Lewis stays behind to work with orangutans. Two years later, Sheriff and Tony learn that, because of their past actions, Lewis has been arrested for drug possession. With Lewis facing a death sentence, the friends are left with a difficult decision: return to Malaysia and split Lewis' sentence, or let him die.",0.0,109.0,Give up three years of their lives or give up the life of their friend. They have eight days to decide. +451751.0,en,American Satan,9.868,2017-10-13,7.4,192.0,"['Thriller', 'Drama', 'Music']","A young rock band, half from England and half from the US, drop out of college and move to the Sunset Strip to chase their dreams.",237708.0,111.0,Rock & roll is where God and The Devil shake hands +512895.0,en,Lady and the Tramp,27.854,2019-11-12,7.3,1224.0,"['Family', 'Romance', 'Comedy']","The love story between a pampered Cocker Spaniel named Lady and a streetwise mongrel named Tramp. Lady finds herself out on the street after her owners have a baby and is saved from a pack by Tramp, who tries to show her to live her life footloose and collar-free.",0.0,111.0,Be loyal. Be brave. Be loved. +274857.0,en,King Arthur: Legend of the Sword,35.382,2017-05-10,6.5,4664.0,"['Action', 'Drama', 'Fantasy']","When the child Arthur’s father is murdered, Vortigern, Arthur’s uncle, seizes the crown. Robbed of his birthright and with no idea who he truly is, Arthur comes up the hard way in the back alleys of the city. But once he pulls the sword Excalibur from the stone, his life is turned upside down and he is forced to acknowledge his true legacy... whether he likes it or not.",148675066.0,126.0,From nothing comes a King +49950.0,en,The Roommate,10.568,2011-02-04,5.5,730.0,"['Thriller', 'Drama', 'Horror']","When Sara, a young design student from Iowa, arrives for college in Los Angeles, she is eager to fit in and get to know the big city. Her wealthy roommate, Rebecca, is more than eager to take Sara under her wing and show her the ropes. The two become close, but when Sara begins to branch out and make more friends on campus, Rebecca becomes resentful. Alarmed, Sara moves in with her new boyfriend, causing Rebecca's behavior to take a violent turn.",52545707.0,91.0,"2,000 colleges. 8 million roommates. Which one will you get?" +396557.0,en,Kids in Love,22.13,2016-08-26,6.1,93.0,"['Drama', 'Romance']","Drifting through his gap year with its internships and travel plans, Jack has always suspected there was more to life than this. A chance encounter with the beautiful and ethereal Evelyn swerves his life radically off course.",0.0,87.0,Sometimes the only way to find yourself is to lose yourself completely +598331.0,en,Rumble,10.029,2022-02-09,0.0,0.0,"['Family', 'Comedy', 'Animation']","In a world where monster wrestling is a global sport and monsters are superstar athletes, teenage Winnie seeks to follow in her father’s footsteps by coaching a loveable underdog monster into a champion.",0.0,0.0,The biggest underdog story ever. +238713.0,en,Spy,33.905,2015-05-06,6.8,5071.0,"['Action', 'Comedy', 'Crime']","A desk-bound CIA analyst volunteers to go undercover to infiltrate the world of a deadly arms dealer, and prevent diabolical global disaster.",235666219.0,120.0,One of the guys. One of the Spies. +536869.0,en,Cats,20.458,2019-12-19,4.3,674.0,"['Fantasy', 'Comedy', 'Drama']",A tribe of cats called the Jellicles must decide yearly which one will ascend to the Heaviside Layer and come back to a new Jellicle life.,73515024.0,110.0,You will believe. +22894.0,en,Legion,189.34,2010-01-21,5.7,1933.0,"['Horror', 'Action', 'Fantasy']","When God loses faith in humankind, he sends his legion of angels to bring on the Apocalypse. Humanity's only hope for survival lies in a group of strangers trapped in an out-of-the-way, desert diner with the Archangel Michael.",67918658.0,100.0,"When the last angel falls, the fight for mankind begins." +522444.0,en,Black Water: Abyss,274.301,2020-07-09,5.1,284.0,"['Horror', 'Thriller', 'Adventure', 'Mystery']","An adventure-loving couple convince their friends to explore a remote, uncharted cave system in the forests of Northern Australia. With a tropical storm approaching, they abseil into the mouth of the cave, but when the caves start to flood, tensions rise as oxygen levels fall and the friends find themselves trapped. Unknown to them, the storm has also brought in a pack of dangerous and hungry crocodiles.",0.0,98.0,Descend into fear +334543.0,en,Lion,28.488,2016-01-20,8.1,5494.0,['Drama'],"A five-year-old Indian boy gets lost on the streets of Calcutta, thousands of kilometers from home. He survives many challenges before being adopted by a couple in Australia; 25 years later, he sets out to find his lost family.",140312928.0,118.0,The search begins +168098.0,en,Cell,25.962,2016-07-06,4.6,855.0,"['Horror', 'Science Fiction', 'Thriller']","When a strange signal pulsates through all cell phone networks worldwide, it starts a murderous epidemic of epic proportions when users become bloodthirsty creatures, and a group of people in New England are among the survivors to deal with the ensuing chaos after.",1133031.0,98.0,When everyone is connected no one is safe. +3082.0,en,Modern Times,11.894,1936-02-11,8.3,2758.0,"['Comedy', 'Drama']",The Tramp struggles to live in modern industrial society with the help of a young homeless woman.,8500000.0,87.0,"He stands alone as the greatest entertainer of modern times! No one on earth can make you laugh as heartily or touch your heart as deeply...the whole world laughs, cries and thrills to his priceless genius!" +9563.0,en,Any Given Sunday,9.815,1999-12-16,6.8,1249.0,['Drama'],A star quarterback gets knocked out of the game and an unknown third stringer is called in to replace him. The unknown gives a stunning performance and forces the ageing coach to reevaluate his game plans and life. A new co-owner/president adds to the pressure of winning. The new owner must prove herself in a male dominated world.,100230832.0,162.0,Play or be Played. +256474.0,en,In the Blood,14.429,2014-04-04,5.9,276.0,"['Action', 'Crime', 'Thriller']","When her husband goes missing during their Caribbean vacation, a woman sets off on her own to take down the men she thinks are responsible.",0.0,108.0,She Will Stop At Nothing +526050.0,en,Little,13.126,2019-04-04,6.8,500.0,"['Comedy', 'Fantasy', 'Romance']","Jordan Sanders, a take-no-prisoners tech mogul, wakes up one morning in the body of her 13-year-old self right before a do-or-die presentation. Her beleaguered assistant April is the only one in on the secret that her daily tormentor is now trapped in an awkward tween body, just as everything is on the line.",17399000.0,108.0,She woke up like this +16620.0,en,La Bamba,20.142,1987-07-24,7.2,512.0,"['Drama', 'Music']",Biographical story of the rise from nowhere of singer Ritchie Valens whose life was cut short by a plane crash.,54215416.0,108.0,Born into poverty. Destined for stardom. He lived the American dream. +585257.0,ru,Огонь,11.187,2020-12-24,8.8,80.0,"['Action', 'Drama']","A heroic story about firefighters and rescuers. What we call an act of bravery is just a usual routine for them, if only one can get used to mortal danger and extreme risk. When people in distress seem to have nobody who may help them, rescuers come to fight against merciless forces of nature.",0.0,120.0,Some fires can't be tamed. +21385.0,en,"Mickey, Donald, Goofy: The Three Musketeers",21.067,2004-08-04,6.6,689.0,"['Adventure', 'Animation', 'Comedy', 'Family']","In Disney's take on the Alexander Dumas tale, Mickey Mouse, Donald Duck and Goofy want nothing more than to perform brave deeds on behalf of their queen (Minnie Mouse), but they're stymied by the head Musketeer, Pete. Pete secretly wants to get rid of the queen, so he appoints Mickey and his bumbling friends as guardians to Minnie, thinking such a maneuver will ensure his scheme's success. The score features songs based on familiar classical melodies.",0.0,68.0,All for fun and fun for all +466282.0,en,To All the Boys I've Loved Before,51.792,2018-08-16,7.7,7332.0,"['Comedy', 'Romance']",Lara Jean's love life goes from imaginary to out of control when her secret letters to every boy she's ever fallen for are mysteriously mailed out.,0.0,100.0,The Letters Are Out. +252.0,en,Willy Wonka & the Chocolate Factory,44.158,1971-06-29,7.5,2529.0,"['Family', 'Fantasy', 'Comedy']","When eccentric candy man Willy Wonka promises a lifetime supply of sweets and a tour of his chocolate factory to five lucky kids, penniless Charlie Bucket seeks the golden ticket that will make him a winner.",4000000.0,100.0,It's Scrumdidilyumptious! +11934.0,en,The Hudsucker Proxy,9.605,1994-03-11,7.1,745.0,"['Comedy', 'Drama']",A naive business graduate is installed as president of a manufacturing company as part of a stock scam.,2800000.0,111.0,They took him for a fall guy... but he threw them for a hoop. +429617.0,en,Spider-Man: Far From Home,273.535,2019-06-28,7.5,10893.0,"['Action', 'Adventure', 'Science Fiction']","Peter Parker and his friends go on a summer trip to Europe. However, they will hardly be able to rest - Peter will have to agree to help Nick Fury uncover the mystery of creatures that cause natural disasters and destruction throughout the continent.",1131927996.0,129.0,It’s time to step up. +795.0,en,City of Angels,16.424,1998-04-10,6.8,1655.0,"['Romance', 'Drama', 'Fantasy']","When guardian angel Seth - who invisibly watches over the citizens of Los Angeles - becomes captivated by Maggie, a strong-willed heart surgeon, he ponders trading in his pure, otherworldly existence for a mortal life with his beloved. The couple embarks on a tender but forbidden romance spanning heaven and Earth.",198685114.0,114.0,She didn't believe in angels until she fell in love with one. +407436.0,en,Mowgli: Legend of the Jungle,29.787,2018-11-25,6.5,2081.0,"['Adventure', 'Drama']","A human child raised by wolves, must face off against a menacing tiger named Shere Khan, as well as his own origins.",0.0,105.0,The greatest journey is finding where you belong +10501.0,en,The Road to El Dorado,49.025,2000-03-31,7.2,2978.0,"['Family', 'Adventure', 'Animation', 'Comedy', 'Action']","After a failed swindle, two con-men end up with a map to El Dorado, the fabled ""city of gold,"" and an unintended trip to the New World. Much to their surprise, the map does lead the pair to the mythical city, where the startled inhabitants promptly begin to worship them as gods. The only question is, do they take the worshipful natives for all they're worth, or is there a bit more to El Dorado than riches?",76432727.0,89.0,They came for the gold. They stayed for the adventure. +660.0,en,Thunderball,31.598,1965-12-11,6.6,1598.0,"['Adventure', 'Action', 'Thriller']",A criminal organization has obtained two nuclear bombs and are asking for a 100 million pound ransom in the form of diamonds in seven days or they will use the weapons. The secret service sends James Bond to the Bahamas to once again save the world.,141195658.0,130.0,Look up! Look down! Look out! +608.0,en,Men in Black II,34.248,2002-07-03,6.3,8022.0,"['Action', 'Adventure', 'Comedy', 'Science Fiction']","Kay and Jay reunite to provide our best, last and only line of defense against a sinister seductress who levels the toughest challenge yet to the MIB's untarnished mission statement – protecting Earth from the scum of the universe. It's been four years since the alien-seeking agents averted an intergalactic disaster of epic proportions. Now it's a race against the clock as Jay must convince Kay – who not only has absolutely no memory of his time spent with the MIB, but is also the only living person left with the expertise to save the galaxy – to reunite with the MIB before the earth submits to ultimate destruction.",445135288.0,88.0,Same Planet. New Scum. +433498.0,en,Papillon,24.689,2017-09-07,7.4,1372.0,"['Drama', 'History', 'Crime']","Henri “Papillon” Charrière, a safecracker from the Parisian underworld, is wrongfully convicted and sentenced to life imprisonment in the penal colony of French Guiana, where he forges a strong friendship with Louis Dega, a counterfeiter who needs his protection.",10060903.0,134.0,The greatest escape adventure ever told +12193.0,en,Four Christmases,11.176,2008-11-26,5.8,822.0,"['Comedy', 'Romance', 'Drama']","Brad and Kate have made something of an art form out of avoiding their families during the holidays, but this year their foolproof plan is about go bust -- big time. Stuck at the city airport after all departing flights are canceled, the couple is embarrassed to see their ruse exposed to the world by an overzealous television reporter. Now, Brad and Kate are left with precious little choice other than to swallow their pride and suffer the rounds.",163733697.0,88.0,"His father, her mother, his mother and her father all in one day." +53567.0,no,Thale,14.008,2012-02-16,5.3,106.0,"['Horror', 'Fantasy']","Norwegian folklore turns out to be real when Leo and Elvis encounter a girl called Thale in a basement. A regular cleaning job turns into a struggle for survival, while they're trying to figure out what or who Thale is. Could Thale be a huldra? A seductive forest spirit who appears from the front to be a beautiful young woman, but who also has a cow's tale and whose back appears to be like a hollowed out tree. The huldra has been known to offer rewards to those who satisfy them sexually, while death to those who fail to do so and are also prone to stealing human babies.",0.0,76.0,"In a cellar, dark and deep, I lay my dearest down to sleep; A secret they would like to keep." +290595.0,en,The Huntsman: Winter's War,37.592,2016-04-06,6.3,4030.0,"['Action', 'Adventure', 'Drama']","As two evil sisters prepare to conquer the land, two renegades—Eric the Huntsman, who aided Snow White in defeating Ravenna in Snowwhite and the Huntsman, and his forbidden lover, Sara—set out to stop them.",164989338.0,114.0,The story before Snow White +335988.0,en,Transformers: The Last Knight,114.472,2017-06-16,6.1,4704.0,"['Action', 'Adventure', 'Science Fiction', 'Fantasy']","Autobots and Decepticons are at war, with humans on the sidelines. Optimus Prime is gone. The key to saving our future lies buried in the secrets of the past, in the hidden history of Transformers on Earth.",605425157.0,154.0,"For one world to live, the other must die." +578908.0,en,Bad Trip,123.69,2020-03-26,6.1,328.0,['Comedy'],Two pals embark on a road trip full of funny pranks that pull real people into mayhem.,0.0,87.0,Friendships run deep. +935.0,en,Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb,18.933,1964-01-29,8.1,4234.0,"['Drama', 'Comedy', 'War']","After the insane General Jack D. Ripper initiates a nuclear strike on the Soviet Union, a war room full of politicians, generals and a Russian diplomat all frantically try to stop the nuclear strike.",9440272.0,95.0,The hot-line suspense comedy +246403.0,en,Tusk,22.128,2014-09-06,5.4,951.0,"['Comedy', 'Horror', 'Drama', 'Thriller']","When his best friend and podcast co-host goes missing in the backwoods of Canada, a young guy joins forces with his friend's girlfriend to search for him.",1882074.0,102.0,Let me tell you a story... +411873.0,en,The Little Hours,17.022,2017-06-30,5.7,378.0,['Comedy'],"Garfagnana, Italy, 1347. The handsome servant Masseto, fleeing from his vindictive master, takes shelter in a nunnery where three young nuns, Sister Alessandra, Sister Ginevra and Sister Fernanda, try unsuccessfully to find out what their purpose in life is, a conundrum that each of them faces in different ways.",0.0,90.0,Obedientia. Paupertas. +11156.0,fr,Coco avant Chanel,11.977,2009-04-22,6.9,728.0,"['Drama', 'History']","Several years after leaving the orphanage, to which her father never returned for her, Gabrielle Chanel finds herself working in a provincial bar. She's both a seamstress for the performers and a singer, earning the nickname Coco from the song she sings nightly with her sister. A liaison with Baron Balsan gives her an entree into French society and a chance to develop her gift for designing.",0.0,110.0,Before she was France's famous mademoiselle… +44251.0,ja,ドラゴンボールZ 危険なふたり!超戦士はねむれない,111.569,1994-03-12,6.7,475.0,"['Animation', 'Action', 'Science Fiction']","A Saiyan Space pod crash-lands on Earth out of which a wounded Saiyan crawls: Broly, the Legendary Super Saiyan. The wounded Broly shouts out in frustration and turns into normal form. The place soon freezes, trapping him in it and he falls into a coma.",0.0,48.0,Broly Is Back! +513576.0,en,Always Be My Maybe,9.827,2019-05-31,6.7,1035.0,"['Romance', 'Comedy']","Reunited after 15 years, famous chef Sasha and hometown musician Marcus feel the old sparks of attraction but struggle to adapt to each other's worlds.",0.0,101.0,There's Always Been Something Between Them. +1907.0,en,The Beach,14.331,2000-02-03,6.4,3437.0,"['Drama', 'Adventure', 'Romance', 'Thriller']","Twenty-something Richard travels to Thailand and finds himself in possession of a strange map. Rumours state that it leads to a solitary beach paradise, a tropical bliss - excited and intrigued, he sets out to find it.",144056873.0,119.0,Somewhere on this planet it must exist. +31938.0,en,The Devil's Brigade,15.688,1968-05-15,6.3,50.0,['War'],"At the onset of World War II, American Lt. Col. Robert Frederick (William Holden) is put in charge of a unit called the 1st Special Service Force, composed of elite Canadian commandos and undisciplined American soldiers. With Maj. Alan Crown (Cliff Robertson) leading the Canadians and Maj. Cliff Bricker (Vince Edwards) the acting head of the American contingent, there is initial tension -- but the team comes together when given a daunting mission that few would dare to attempt.",0.0,130.0,What they did to each other was nothing compared to what they did to the enemy! +17335.0,en,Obsessed,10.77,2009-04-24,5.8,506.0,"['Drama', 'Thriller']","Things couldn't be better for Derek Charles. He's just received a big promotion at work, and has a wonderful marriage with his beautiful wife, Sharon. However, into this idyllic world steps Lisa, a temporary worker at Derek's office. Lisa begins to stalk Derek, jeopardizing all he holds dear.",73830340.0,108.0,Sharon and Derek have all they've ever wanted... but someone else wants it more. +118957.0,en,Bait,10.905,2012-09-05,5.7,594.0,"['Action', 'Horror', 'Thriller']",A freak tsunami traps shoppers at a coastal Australian supermarket inside the building ... along with a 12-foot great white shark.,32500000.0,93.0,Cleanup on aisle 7. +9327.0,en,The Nutty Professor,18.92,1996-06-26,5.6,2318.0,"['Fantasy', 'Comedy', 'Romance', 'Science Fiction']","Eddie Murphy stars as shy Dr. Sherman Klump, a kind, brilliant, 'calorifically challenged' genetic professor. When beautiful Carla Purty joins the university faculty, Sherman grows desperate to whittle his 400-pound frame down to size and win her heart. So, with one swig of his experimental fat-reducing serum, Sherman becomes 'Buddy Love', a fast-talking, pumped-up , plumped down Don Juan.",128769345.0,95.0,"Inside Sherman Klump, a party animal is about to break out." +94047.0,ko,마이웨이,9.867,2011-12-21,8.0,261.0,"['Drama', 'Action', 'History', 'War']","Jun-shik, who works for Tatsuo’s grandfather’s farm while Korea is colonized by Japan, dreams about participating in the Tokyo Olympics as a marathon runner. Tatsuo also aims to become a marathon runner, so the two become rivals. But the war breaks out and they both are forced to enlist in the army. Tatsuo becomes the head of defense in Jun-shik’s unit and he devises a scheme but fails. Jun-shik and Tatsuo are held captive by the Soviets. They run away but soon are captured by the Germans and forced to separate. In 1944, they meet again on the shores of Normandy.",16653488.0,137.0,"They met as enemies, but fate brought them together." +1255.0,ko,괴물,32.855,2006-07-27,7.0,1989.0,"['Horror', 'Drama', 'Science Fiction']","Following the dumping of gallons of toxic waste in the river, a giant mutated squid-like appears and begins attacking the populace. Gang-du's daughter Hyun-seo is snatched up by the creature; with his family to assist him, he sets off to find her.",88489643.0,120.0,Monsters are real +83666.0,en,Moonrise Kingdom,20.384,2012-05-16,7.7,4585.0,"['Comedy', 'Drama', 'Romance']","Set on an island off the coast of New England in the summer of 1965, Moonrise Kingdom tells the story of two twelve-year-olds who fall in love, make a secret pact, and run away together into the wilderness. As various authorities try to hunt them down, a violent storm is brewing off-shore – and the peaceful island community is turned upside down in more ways than anyone can handle.",68263166.0,94.0,A tormenting and surprising story of children and adults during the stormy days of the summer of 1965. +488113.0,en,Christmas Wedding Planner,13.958,2017-12-14,5.5,346.0,"['Romance', 'Family']","Wedding Planner, Kelsey Wilson, is about to have her big break: planning her beloved cousin's lavish and exclusive wedding. Everything is going smoothly until Connor McClane, a devilishly handsome private investigator, shows up and turns Kelsey's world upside-down. Hired by a secret source, Connor quickly disrupts the upcoming nuptials but wins Kelsey's heart in the process.",0.0,86.0,Love is the greatest gift of all +501630.0,en,Summer '03,9.034,2018-09-28,5.8,161.0,['Comedy'],A 16-year-old girl and her extended family are left reeling after her calculating grandmother unveils an array of secrets on her deathbed.,0.0,102.0,Growing up. One mistake at a time. +4922.0,en,The Curious Case of Benjamin Button,50.237,2008-12-25,7.6,10140.0,"['Drama', 'Fantasy', 'Romance']","I was born under unusual circumstances. And so begins. The Curious Case of Benjamin Button, adapted from the 1920s story by F. Scott Fitzgerald about a man who is born in his eighties and ages backwards: a man, like any of us, who is unable to stop time. We follow his story, set in New Orleans, from the end of World War I in 1918 into the 21st century, following his journey that is as unusual as any man's life can be. Directed by David Fincher and starring Brad Pitt and Cate Blanchett with Taraji P. Henson, Tilda Swinton, Jason Flemyng, Elias Koteas and Julia Ormond, Benjamin Button, is a grand tale of a not-so-ordinary man and the people and places he discovers along the way, the loves he finds, the joys of life and the sadness of death, and what lasts beyond time.",333932083.0,166.0,"Life isn't measured in minutes, but in moments." +9570.0,en,The Black Hole,12.313,1979-12-18,5.8,308.0,"['Adventure', 'Family', 'Science Fiction', 'Action']","The explorer craft USS Palomino is returning to Earth after a fruitless 18-month search for extra-terrestrial life when the crew comes upon a supposedly lost ship, the USS Cygnus, hovering near a black hole. The ship is controlled by Dr. Hans Reinhardt and his monstrous robot companion, but the initial wonderment and awe the Palomino crew feel for the ship and its resistance to the power of the black hole turn to horror as they uncover Reinhardt's plans.",35841901.0,98.0,A journey that begins where everything ends! +297961.0,en,Big Driver,33.355,2014-10-18,5.8,155.0,"['Crime', 'Mystery', 'Thriller']","Based on a novella from Stephen King, A famous mystery writer sets out for revenge after a brutal attack.",0.0,87.0,Murder is a two-way street. +10141.0,en,Dirty Rotten Scoundrels,13.402,1988-12-14,7.1,589.0,"['Crime', 'Comedy']","Two con men try to settle their rivalry by betting on who can be the first to swindle a young American heiress out of $50,000.",42039085.0,110.0,Nice guys finish last. Meet the winners. +560044.0,en,The Willoughbys,22.587,2020-04-22,7.2,702.0,"['Animation', 'Comedy', 'Family']","When the four Willoughby children are abandoned by their selfish parents, they must learn how to adapt their Old-Fashioned values to the contemporary world in order to create something new: The Modern Family.",0.0,92.0,A family story for anyone who ever wanted to get away from their family +416494.0,en,Status Update,22.897,2018-02-09,7.4,375.0,"['Comedy', 'Fantasy', 'Science Fiction']","After being uprooted by his parents' separation and unable to fit into his new hometown, a teenager stumbles upon a magical app that causes his social media updates to come true.",0.0,106.0,Imagine if every time you updated your status your dreams came true +220.0,en,East of Eden,9.665,1955-04-10,7.6,521.0,"['Drama', 'Romance']","In the Salinas Valley in and around World War I, Cal Trask feels he must compete against overwhelming odds with his brother for the love of their father. Cal is frustrated at every turn, from his reaction to the war, how to get ahead in business and in life, and how to relate to his estranged mother.",5.0,115.0,The searing classic of paradise lost! +592834.0,en,My Spy,24.597,2020-01-09,7.0,842.0,"['Family', 'Action', 'Comedy']","A hardened CIA operative finds himself at the mercy of a precocious 9-year-old girl, having been sent undercover to surveil her family.",4418501.0,99.0,Almost Totally in Control +249.0,en,The War of the Roses,13.027,1989-12-08,6.9,833.0,"['Comedy', 'Drama']","The Roses, Barbara and Oliver, live happily as a married couple. Then she starts to wonder what life would be like without Oliver, and likes what she sees. Both want to stay in the house, and so they begin a campaign to force each other to leave. In the middle of the fighting is D'Amato, the divorce lawyer. He gets to see how far both will go to get rid of the other, and boy do they go far.",160188546.0,116.0,Once in a lifetime comes a motion picture that makes you feel like falling in love all over again. This is not that movie. +652.0,en,Troy,56.356,2004-05-03,7.1,8023.0,"['Adventure', 'History', 'War']","In year 1250 B.C. during the late Bronze age, two emerging nations begin to clash. Paris, the Trojan prince, convinces Helen, Queen of Sparta, to leave her husband Menelaus, and sail with him back to Troy. After Menelaus finds out that his wife was taken by the Trojans, he asks his brother Agamemnom to help him get her back. Agamemnon sees this as an opportunity for power. So they set off with 1,000 ships holding 50,000 Greeks to Troy. With the help of Achilles, the Greeks are able to fight the never before defeated Trojans.",497409852.0,163.0,For passion. For honor. For destiny. For victory. For love. +95963.0,en,The Walking Dead,28.688,1995-02-24,6.7,17.0,"['Drama', 'War']","Five young marines on a suicide mission in Vietnam, struggle for survival in a jungle minefield. The mean streets of home did not prepare them for this.",0.0,88.0,Surviving the streets was just a rehearsal. +1813.0,en,The Devil's Advocate,34.807,1997-10-17,7.4,4391.0,"['Drama', 'Mystery', 'Thriller', 'Horror']","Aspiring Florida defense lawyer Kevin Lomax accepts a job at a New York law firm. With the stakes getting higher every case, Kevin quickly learns that his boss has something far more evil planned.",152944660.0,144.0,Evil has its winning ways. +429733.0,en,Mayhem,14.693,2017-11-10,6.5,455.0,"['Action', 'Comedy', 'Horror']",A virus spreads through an office complex causing white collar workers to act out their worst impulses.,0.0,86.0,Hostile. Work. Environment. +1809.0,en,The Rules of Attraction,9.35,2002-10-11,6.2,407.0,"['Comedy', 'Drama', 'Romance']","The incredibly spoiled and overprivileged students of Camden College are a backdrop for an unusual love triangle between a drug dealer, a virgin and a bisexual classmate.",0.0,111.0,We all run on instinct +332283.0,en,Mary Shelley,16.233,2017-08-06,7.0,814.0,"['Drama', 'Romance']","The love affair between poet Percy Shelley and Mary Wollstonecraft Godwin resulted in the creation of an immortal novel, “Frankenstein; or, The Modern Prometheus.”",0.0,120.0,Her greatest love inspired her darkest creation +480042.0,en,Escape Plan: The Extractors,22.142,2019-06-20,5.2,593.0,"['Action', 'Thriller', 'Crime']","After security expert Ray Breslin is hired to rescue the kidnapped daughter of a Hong Kong tech mogul from a formidable Latvian prison, Breslin's girlfriend is also captured. Now he and his team must pull off a deadly rescue mission to confront their sadistic foe and save the hostages before time runs out.",0.0,97.0,This time it’s personal +415.0,en,Batman & Robin,33.861,1997-06-20,4.3,3885.0,"['Science Fiction', 'Action', 'Fantasy']",Batman and Robin deal with relationship issues while preventing Mr. Freeze and Poison Ivy from attacking Gotham City.,238207122.0,125.0,Strength. Courage. Honor. And loyalty. +397538.0,sv,Borg vs McEnroe,11.557,2017-09-08,7.0,919.0,"['Drama', 'History']","The Swedish Björn Borg and the American John McEnroe, the best tennis players in the world, maintain a legendary duel during the 1980 Wimbledon tournament.",16657800.0,108.0,Some stars shine forever +458405.0,en,The ParaPod: A Very British Ghost Hunt,9.614,2020-01-07,5.4,9.0,"['Documentary', 'Horror', 'Comedy']","A lifelong believer in the paranormal invites a hardwired sceptic on a road trip of the UK’s most famous haunted locations, in an attempt to convince him of the existence of ghosts. A journey of true discovery, shocks, emotional turmoil, hilarious conflict and a bewildering climax.",0.0,108.0,You won't believe it... but he will! +513223.0,es,Perdida,14.401,2018-04-19,6.3,206.0,"['Drama', 'Mystery', 'Crime']","A policewoman whose childhood friend disappeared in Patagonia years ago starts a new search to find answers, and soon finds her own life in danger.",0.0,103.0,Never stop searching +207703.0,en,Kingsman: The Secret Service,68.069,2014-12-13,7.6,13608.0,"['Crime', 'Comedy', 'Action', 'Adventure']",The story of a super-secret spy organization that recruits an unrefined but promising street kid into the agency's ultra-competitive training program just as a global threat emerges from a twisted tech genius.,414351546.0,129.0,Manners maketh man. +27585.0,en,Rabbit Hole,13.292,2010-12-16,6.7,433.0,['Drama'],Life for a happy couple is turned upside down after their young son dies in an accident.,5132850.0,91.0,The only way out is through. +12211.0,en,Highlander: Endgame,11.521,2000-09-01,4.8,286.0,"['Action', 'Fantasy']","Immortals Connor and Duncan Macleod join forces against a man from Connor's distant past in the highlands of Scotland, Kell, an immensely powerful immortal who leads an army of equally powerful and deadly immortal swordsmen and assassins. No immortal alive has been able to defeat Kell yet, and neither Connor nor Duncan are skilled enough themselves to take him on and live. The two of them eventually come to one inevitable conclusion; one of them must die so that the combined power of both the Highlanders can bring down Kell for good. There can be only one... the question is, who will it be?",15843608.0,87.0,"It will take two immortals to defeat the ultimate evil. But in the end, there can be only one." +9264.0,en,Poison Ivy,11.1,1992-05-08,5.4,243.0,"['Thriller', 'Drama']",A seductive teen befriends an introverted high school student and schemes her way into the lives of her wealthy family.,1829804.0,88.0,"What Ivy wants, Ivy gets." +1865.0,en,Pirates of the Caribbean: On Stranger Tides,164.123,2011-05-14,6.5,11352.0,"['Adventure', 'Action', 'Fantasy']","Captain Jack Sparrow crosses paths with a woman from his past, and he's not sure if it's love -- or if she's a ruthless con artist who's using him to find the fabled Fountain of Youth. When she forces him aboard the Queen Anne's Revenge, the ship of the formidable pirate Blackbeard, Jack finds himself on an unexpected adventure in which he doesn't know who to fear more: Blackbeard or the woman from his past.",1045713802.0,137.0,Live Forever Or Die Trying. +152760.0,en,The Monuments Men,27.978,2014-01-24,6.0,2931.0,"['War', 'Drama', 'History', 'Action']","Based on the true story of the greatest treasure hunt in history, The Monuments Men is an action drama focusing on seven over-the-hill, out-of-shape museum directors, artists, architects, curators, and art historians who went to the front lines of WWII to rescue the world’s artistic masterpieces from Nazi thieves and return them to their rightful owners. With the art hidden behind enemy lines, how could these guys hope to succeed?",154984035.0,118.0,It was the greatest art heist in history +333669.0,en,Bastille Day,20.732,2016-04-22,6.3,1012.0,['Action'],"Michael Mason is an American pickpocket living in Paris who finds himself hunted by the CIA when he steals a bag that contains more than just a wallet. Sean Briar, the field agent on the case, soon realises that Michael is just a pawn in a much bigger game and is also his best asset to uncover a large-scale conspiracy.",14397593.0,92.0,With law comes disorder +9341.0,en,The Core,22.95,2003-03-28,5.7,1324.0,"['Action', 'Thriller', 'Adventure', 'Science Fiction']","Geophysicist Dr. Josh Keyes discovers that an unknown force has caused the earth's inner core to stop rotating. With the planet's magnetic field rapidly deteriorating, our atmosphere literally starts to come apart at the seams with catastrophic consequences. To resolve the crisis, Keyes, along with a team of the world's most gifted scientists, travel into the earth's core. Their mission: detonate a device that will reactivate the core.",74208267.0,136.0,Earth has a deadline. +11854.0,hi,कुछ कुछ होता है,9.783,1998-10-16,7.7,290.0,"['Drama', 'Romance']","Anjali is left heartbroken when her best friend and secret crush, Rahul, falls in love with Tina. Years later, Tina's young daughter tries to fulfil her mother's last wish of uniting Rahul and Anjali.",15306000.0,185.0,Love is Friendship. +475888.0,en,Tell It to the Bees,10.93,2019-05-03,7.5,294.0,"['Romance', 'Drama']","Dr. Jean Markham returns to the town she left as a teenager to take over her late father's medical practice. When a school-yard scuffle lands Charlie in her surgery, she invites him to visit the hives in her garden and tell his secrets to the bees, as she once did. The new friendship between the boy and the bee keeper brings his mother Lydia into Jean's world.",0.0,106.0,Some secrets are too powerful to keep +586047.0,ko,서복,212.792,2021-04-12,7.5,90.0,"['Science Fiction', 'Action']","A former intelligence agent gets involved with the first human clone, Seo Bok, who others seek, causing trouble.",0.0,114.0,Live the Moment +3777.0,ja,蜘蛛巣城,10.839,1957-01-15,7.9,542.0,"['Drama', 'History']","Returning to their lord's castle, samurai warriors Washizu and Miki are waylaid by a spirit who predicts their futures. When the first part of the spirit's prophecy comes true, Washizu's scheming wife, Asaji, presses him to speed up the rest of the spirit's prophecy by murdering his lord and usurping his place. Director Akira Kurosawa's resetting of William Shakespeare's ""Macbeth"" in feudal Japan is one of his most acclaimed films.",0.0,108.0,"From the creator of ""Rashomon"" and ""Ikiru""." +359983.0,en,The Lion Guard: Return of the Roar,57.009,2015-11-22,6.5,758.0,"['Family', 'TV Movie', 'Animation']","Set in the African savannah, the film follows Kion as he assembles the members of the 'Lion Guard'. Throughout the film, the diverse team of young animals will learn how to utilize each of their unique abilities to solve problems and accomplish tasks to maintain balance within the Circle of Life, while also introducing viewers to the vast array of animals that populate the prodigious African landscape.",0.0,44.0,A new hero finds his roar! +14.0,en,American Beauty,25.907,1999-09-15,8.0,9735.0,['Drama'],"Lester Burnham, a depressed suburban father in a mid-life crisis, decides to turn his hectic life around after developing an infatuation with his daughter's attractive friend.",356296601.0,122.0,Look closer. +363844.0,en,The Ouija Exorcism,10.089,2015-10-06,4.2,24.0,['Horror'],"In 1985, a celebrated exorcist trapped a horrific demon inside a ouija board. Thinking the board to be a game, his son played without obeying the rules, and let the demon loose. In order to save his son, the exorcist sent him far away until the demon could be destroyed. Thirty years later, and after his death, his grandson finds the board and makes the same mistake his father did. Now the evil is back and roaming the earth to terrorize those responsible for its imprisonment.",0.0,87.0,The Game Will Possess You +10281.0,en,Friday the 13th Part VII: The New Blood,36.865,1988-05-13,5.4,686.0,"['Horror', 'Thriller']","A young girl who possesses the power of telekinesis accidentally causes her father's death after a family dispute at Crystal Lake. Years later, when a doctor tries to exploit her abilities, her power becomes a hellish curse, and she unwittingly unchains the merciless, bloodthirsty Jason Voorhees from his watery grave.",19170001.0,88.0,"Jason is back, but this time someone's waiting!" +1493.0,en,Miss Congeniality,20.331,2000-12-22,6.5,3012.0,"['Comedy', 'Crime', 'Action']","When the local FBI office receives a letter from a terrorist known only as 'The Citizen', it's quickly determined that he's planning his next act at the Miss America beauty pageant. Because tough-as-nails Gracie Hart is the only female Agent at the office, she's chosen to go undercover as the contestant from New Jersey.",212000000.0,111.0,Never Mess With An Agent In A Dress. +41479.0,en,The Joneses,11.917,2010-04-16,6.2,455.0,"['Comedy', 'Drama']","A seemingly perfect family moves into a suburban neighborhood, but when it comes to the truth as to why they're living there, they don't exactly come clean with their neighbors.",7022728.0,96.0,"They're not just living the American dream, they're selling it." +376660.0,en,The Edge of Seventeen,25.626,2016-11-18,7.2,3308.0,"['Comedy', 'Drama']","Two high school girls are best friends until one dates the other's older brother, who is totally his sister's nemesis.",18803648.0,105.0,You're only young once… is it over yet? +6972.0,en,Australia,17.105,2008-11-18,6.6,1832.0,"['Adventure', 'Drama', 'Romance']","Set in northern Australia before World War II, an English aristocrat who inherits a sprawling ranch reluctantly pacts with a stock-man in order to protect her new property from a takeover plot. As the pair drive 2,000 head of cattle over unforgiving landscape, they experience the bombing of Darwin by Japanese forces firsthand.",211787511.0,165.0,Welcome to Australia! +472338.0,en,Victor Crowley,12.255,2017-09-12,5.7,166.0,"['Comedy', 'Horror']","Ten years after the events of the original movie, Victor Crowley is mistakenly resurrected and proceeds to kill once more.",0.0,83.0,Return to his swamp +59678.0,en,Attack the Block,8.917,2011-05-12,6.4,1589.0,"['Action', 'Comedy', 'Science Fiction']",A teen gang in a South London housing estate must team up with the other residents to protect their neighbourhood from a terrifying alien invasion.,3964682.0,88.0,Inner City vs. Outer Space. +311324.0,en,The Great Wall,64.087,2016-12-16,5.9,4043.0,"['Action', 'Adventure', 'Fantasy']",European mercenaries searching for black powder become embroiled in the defense of the Great Wall of China against a horde of monstrous creatures.,331957105.0,103.0,1700 years to build. 5500 miles long. What were they trying to keep out? +5825.0,en,National Lampoon's Christmas Vacation,26.27,1989-11-30,7.2,1659.0,['Comedy'],"It's Christmastime, and the Griswolds are preparing for a family seasonal celebration. But things never run smoothly for Clark, his wife Ellen, and their two kids. Clark's continual bad luck is worsened by his obnoxious family guests, but he manages to keep going, knowing that his Christmas bonus is due soon.",71319546.0,97.0,Yule crack up. +9314.0,en,Nineteen Eighty-Four,9.221,1984-10-10,6.8,999.0,"['Drama', 'Science Fiction', 'Thriller']",George Orwell's novel of a totalitarian future society in which a man whose daily work is rewriting history tries to rebel by falling in love.,8430492.0,113.0,George Orwell's terrifying vision comes to the screen. +10312.0,en,Patch Adams,17.353,1998-12-25,7.3,2577.0,"['Comedy', 'Drama']","The true story of Dr. Hunter ""Patch"" Adams, who in the 1970s found that humor is the best medicine, and was willing to do just anything to make his patients laugh—even if it meant risking his own career.",202292902.0,115.0,Laughter is contagious. +9975.0,en,Curious George,16.625,2006-02-10,6.3,375.0,"['Adventure', 'Animation', 'Comedy', 'Family']","When The Man in the Yellow Hat befriends Curious George in the jungle, they set off on a non-stop, fun-filled journey through the wonders of the big city toward the warmth of true friendship.",69834815.0,87.0,Show me the Monkey! +25676.0,cn,寶貝計劃,16.104,2006-09-28,7.0,398.0,"['Drama', 'Action', 'Comedy']","For never-do-well compulsive gambler Fong, there's only one thing more fearsome than debtors at his doorstep - having to coax a crying baby. But what if the baby becomes his golden goose to fend off his debtors? Can he overcome his phobia of diapers, milk bottles, and cloying lullabies?",0.0,126.0,This September! Crawl Baby crawl! +471925.0,pt,Entrei em Pânico ao Saber o que Vocês Fizeram na Sexta-feira 13 do Verão Passado Parte 2 - A Hora da Volta da Vingança dos Jogos Mortais de Halloween,10.779,2011-10-20,5.5,4.0,"['Comedy', 'Horror']","Seven years after the massacre of the first film, the survivors Niandra and Eliseu still fear the return of Geison, the terrible psychopath who mutilated his friends on a Friday the 13th. New murders start happening in the small town of Carlos Barbosa, putting a new generation of victims as targets of the killer. But who is behind that ""Scream"" mask?",0.0,82.0,Bloodier. Funnier. Shorter. +19698.0,en,Porky's II: The Next Day,15.138,1983-06-24,5.8,225.0,['Comedy'],"When the students of Angel Beach High decide to stage ""An Evening With Shakespeare,"" their efforts are threatened by Miss Balbricker, who views the works of Shakespeare as obscene. She enlists the help of Reverend Bubba Flavel, a religious fanatic who brings along his flock of followers to pressure the school into shutting down the production.",33759266.0,98.0,"If you thought the night before was funny, wait till you see the next day." +297160.0,en,XX,9.885,2017-02-17,5.0,336.0,['Horror'],This all-female horror anthology features four dark tales from four fiercely talented women.,30911.0,80.0,Four deadly tales by four killer women +19277.0,en,In Hell,14.755,2003-11-24,6.3,365.0,"['Action', 'Drama', 'Thriller']",A man must survive a prison where hardened criminals battle to the death for the warden's entertainment.,0.0,96.0,Rage unleashed. +20694.0,en,Rugrats Go Wild,14.961,2003-06-13,6.2,233.0,"['Family', 'Animation', 'Adventure', 'Comedy']","When the Rugrats find themselves stranded on a deserted island, they meet the Thornberrys, a family who agrees to help them escape.",55443032.0,84.0,The Family Vacation Goes Overboard. +568332.0,en,Taylor Swift: Reputation Stadium Tour,11.028,2018-12-31,8.1,218.0,"['Music', 'Documentary']","Taylor Swift takes the stage in Dallas for the Reputation Stadium Tour and celebrates a monumental night of music, memories and visual magic.",0.0,125.0,"And in the death of her reputation, she felt truly alive." +211672.0,en,Minions,35.062,2015-06-17,6.4,8957.0,"['Family', 'Animation', 'Adventure', 'Comedy']","Minions Stuart, Kevin and Bob are recruited by Scarlet Overkill, a super-villain who, alongside her inventor husband Herb, hatches a plot to take over the world.",1156730962.0,91.0,"Before Gru, they had a history of bad bosses" +18890.0,en,We're Back! A Dinosaur's Story,9.319,1993-11-24,6.0,316.0,"['Animation', 'Science Fiction', 'Family']","Captain New Eyes travels back in time and feeds dinosaurs his Brain Grain cereal, which makes them intelligent and non-violent. They agree to go to the Middle Future in order to grant the wishes of children in New York city. They are to meet Dr. Bleeb of the Museum of Natural History, but get sidetracked with their new children friends and run into the Captain's evil brother, Professor Screweyes.",9317021.0,72.0,Wish for a dinosaur and watch all your dreams come true. +216282.0,en,Into the Storm,43.833,2014-08-06,6.0,1648.0,"['Action', 'Thriller']","As a new day begins in the town of Silverton, its residents have little reason to believe it will be anything other than ordinary. Mother Nature, however has other plans. In the span of just a few hours, an unprecedented onslaught of powerful tornadoes ravages Silverton. Storm trackers predict that the worst is still to come, as terrified residents seek shelter, and professional storm-chasers run toward the danger, hoping to study the phenomenon close up and get a once-in-a-lifetime shot.",160602194.0,89.0,There is no calm before the storm +582876.0,uk,Антон і червона химера,15.761,2021-02-12,3.5,2.0,"['Drama', 'History']","Ukraine, 1919. The friendship of two boys, Anton and Jacob, one Christian, the other Jewish, manages to survive the prejudices and hatred that dominate the minds of adults in the aftermath of World War I and the Russian Revolution.",0.0,102.0,A friendship that survived the wrath of war +7249.0,en,Futurama: Bender's Big Score,15.551,2007-11-27,7.4,478.0,"['Animation', 'Comedy', 'Science Fiction', 'TV Movie']","The Planet Express crew return from cancellation, only to be robbed blind by hideous ""sprunging"" scam artists. Things go from bad to worse when the scammers hack Bender, start traveling through time, and take Earth over entirely! Will the crew be able to save the day, or will Bender's larcenous tendencies and their general incompetence doom them all?",0.0,88.0,Just when you thought it was safe to watch something else! +25643.0,en,Love Happens,10.872,2009-09-18,5.9,526.0,"['Drama', 'Romance']","Dr. Burke Ryan is a successful self-help author and motivational speaker with a secret. While he helps thousands of people cope with tragedy and personal loss, he secretly is unable to overcome the death of his late wife. It's not until Burke meets a fiercely independent florist named Eloise that he is forced to face his past and overcome his demons.",36133014.0,109.0,Sometimes when you least expect it... +10829.0,en,Tremors 3: Back to Perfection,18.409,2001-10-02,5.8,444.0,"['Action', 'Comedy', 'Horror', 'Science Fiction', 'Thriller']","Burt Gummer returns home to Perfection, Nev., to find that the town of terror has become a theme park, and when the simulated giant worm attacks turn real, the survivalist must battle the creatures once again. Gummer pits his impressive knowledge of weaponry against the newest and deadliest generation of flesh-eating graboids, with help from two young entrepreneurs.",0.0,100.0,The Food Chain Just Grew Another Link. +624.0,en,Easy Rider,12.655,1969-05-07,7.1,1473.0,"['Adventure', 'Drama']",A cross-country trip to sell drugs puts two hippie bikers on a collision course with small-town prejudices.,60000000.0,95.0,A man went looking for America and couldn’t find it anywhere... +114150.0,en,Pitch Perfect,37.711,2012-09-28,7.3,5582.0,"['Comedy', 'Music', 'Romance']","College student Beca knows she does not want to be part of a clique, but that's exactly where she finds herself after arriving at her new school. Thrust in among mean gals, nice gals and just plain weird gals, Beca finds that the only thing they have in common is how well they sing together. She takes the women of the group out of their comfort zone of traditional arrangements and into a world of amazing harmonic combinations in a fight to the top of college music competitions.",115400000.0,112.0,Get pitch slapped. +575776.0,en,Saint Maud,18.729,2020-10-09,6.8,327.0,"['Drama', 'Horror', 'Mystery']","Having recently found God, self-effacing young nurse Maud arrives at a plush home to care for Amanda, a hedonistic dancer left frail from a chronic illness. When a chance encounter with a former colleague throws up hints of a dark past, it becomes clear there is more to sweet Maud than meets the eye.",1640866.0,85.0,Your Savior is Coming +262543.0,en,Autómata,23.585,2014-10-09,5.8,1327.0,"['Thriller', 'Science Fiction']","Jacq Vaucan, an insurance agent of ROC robotics corporation, routinely investigates the case of manipulating a robot. What he discovers will have profound consequences for the future of humanity.",0.0,110.0,Your time is coming to an end – Ours is now beginning +10847.0,en,Lord of the Flies,11.328,1990-03-16,6.4,399.0,"['Adventure', 'Drama', 'Thriller']","When their plane crashes, 25 schoolboys find themselves trapped on a tropical island, miles from civilization. Based on William Goulding’s “Lord of the Flies”, a critique of British imperialism and nobility.",13985225.0,91.0,No parents. No teachers. No rules... No mercy. +323370.0,en,The Diabolical,16.372,2015-03-16,5.1,159.0,"['Horror', 'Science Fiction', 'Thriller']","When a single mother and her two young children are tormented by an increasingly strange and intense presence in their quiet suburban home, she turns to her scientist boyfriend to take on the violent forces that paranormal experts are too frightened to face.",0.0,86.0,Evil is timeless. +38843.0,en,Ramona and Beezus,9.554,2010-07-23,6.5,657.0,"['Comedy', 'Family']","Ramona is a little girl with a very big imagination and a nose for mischief. Her playful antics keep everyone in her loving family on their toes, including her older sister Beezus, who's just trying to survive her first year of high school. Through all the ups and downs of childhood, Ramona and Beezus learn that anything's possible when you believe in yourself and rely on each other.",27293743.0,103.0,A Little Sister Goes A Long Way. +839440.0,en,Dinosaur Hotel,94.71,2021-06-11,5.3,48.0,"['Horror', 'Science Fiction', 'Mystery']","Sienna is desperate to win a large cash prize in a secret underground game show. However, Dinosaur's begin to hunt her down for the entertainment of the rich and wealthy. Can she be the last to survive the horrific night to win the prize?",0.0,77.0,The hunt is on. And you're the prey. +1535.0,en,Spy Game,23.59,2001-11-18,6.9,1541.0,"['Action', 'Crime', 'Thriller']","On the day of his retirement, a veteran CIA agent learns that his former protégé has been arrested in China, is sentenced to die the next morning in Beijing, and that the CIA is considering letting that happen to avoid an international scandal.",143049560.0,126.0,It's not how you play the game. It's how the game plays you. +14864.0,en,The Hot Spot,14.144,1990-10-12,6.3,160.0,"['Crime', 'Romance']","A loner moves in to a small Texas town, finds himself a job, and sets about plotting to rob the local bank.",1293976.0,130.0,Safe is never sex. It’s dangerous. +290751.0,en,Secret in Their Eyes,13.349,2015-10-14,6.4,1067.0,"['Crime', 'Drama', 'Mystery', 'Thriller']","A tight-knit team of FBI investigators, along with their District Attorney supervisor, is suddenly torn apart when they discover that one of their own teenage daughters has been brutally murdered.",34854990.0,111.0,The truth lies in the most unexpected places. +11849.0,en,Dungeons & Dragons,9.509,2000-12-08,4.3,434.0,"['Drama', 'Adventure', 'Fantasy']","The Empire of Izmer is a divided land: elite magicians called “mages” rule while lowly commoners are powerless. When Empress Savina vows to bring equality and prosperity to her land, the evil mage Profion plots to depose her.",15185241.0,107.0,This is no game +297761.0,en,Suicide Squad,76.03,2016-08-03,5.9,18110.0,"['Action', 'Adventure', 'Fantasy']","From DC Comics comes the Suicide Squad, an antihero team of incarcerated supervillains who act as deniable assets for the United States government, undertaking high-risk black ops missions in exchange for commuted prison sentences.",746846894.0,123.0,Worst Heroes Ever +509853.0,en,The Fanatic,14.06,2019-08-30,4.6,193.0,"['Crime', 'Thriller']",A rabid film fan stalks his favorite action hero and destroys the star's life.,3153.0,89.0,All he wanted was an autograph. +4476.0,en,Legends of the Fall,19.861,1994-12-16,7.4,1870.0,"['Adventure', 'Drama', 'Romance', 'War', 'Western']","An epic tale of three brothers and their father living in the remote wilderness of 1900s USA and how their lives are affected by nature, history, war, and love.",160638883.0,133.0,After the Fall from Innocence the Legend begins. +460458.0,en,Resident Evil: Welcome to Raccoon City,88.822,2021-11-24,0.0,0.0,"['Horror', 'Action', 'Mystery']","Once the booming home of pharmaceutical giant Umbrella Corporation, Raccoon City is now a dying Midwestern town. The company’s exodus left the city a wasteland…with great evil brewing below the surface. When that evil is unleashed, the townspeople are forever…changed…and a small group of survivors must work together to uncover the truth behind Umbrella and make it through the night.",0.0,107.0,Witness the beginning of evil. +329.0,en,Jurassic Park,21.804,1993-06-11,7.9,12770.0,"['Adventure', 'Science Fiction']","A wealthy entrepreneur secretly creates a theme park featuring living dinosaurs drawn from prehistoric DNA. Before opening day, he invites a team of experts and his two eager grandchildren to experience the park and help calm anxious investors. However, the park is anything but amusing as the security systems go off-line and the dinosaurs escape.",920100000.0,127.0,An adventure 65 million years in the making. +6644.0,en,El Dorado,11.97,1966-12-17,7.4,351.0,"['Western', 'Adventure', 'Action']","Cole Thornton, a gunfighter for hire, joins forces with an old friend, Sheriff J.P. Hara. Together with an old indian fighter and a gambler, they help a rancher and his family fight a rival rancher that is trying to steal their water.",6000000.0,120.0,It's The Big One With The Big Two! +475430.0,en,Artemis Fowl,47.081,2020-06-12,5.7,1266.0,"['Adventure', 'Fantasy', 'Science Fiction', 'Family', 'Action']",Artemis Fowl is a 12-year-old genius and descendant of a long line of criminal masterminds. He soon finds himself in an epic battle against a race of powerful underground fairies who may be behind his father's disappearance.,0.0,94.0,Remember the name +47519.0,ja,巨乳ドラゴン 温泉ゾンビVSストリッパー5,6.33,2010-05-15,5.6,27.0,"['Action', 'Horror', 'Comedy']","A medieval Book of the Dead is discovered in the catacombs that run under a small town strip club. When one of the desperate strippers raises an army of the undead, the rest of the strippers must kick some zombie ass to save the world.",0.0,73.0,A bloody Armageddon has begun! +1724.0,en,The Incredible Hulk,50.048,2008-06-12,6.2,9149.0,"['Science Fiction', 'Action', 'Adventure']","Scientist Bruce Banner scours the planet for an antidote to the unbridled force of rage within him: the Hulk. But when the military masterminds who dream of exploiting his powers force him back to civilization, he finds himself coming face to face with a new, deadly foe.",163712074.0,114.0,You'll like him when he's angry. +508330.0,en,Awoken,9.438,2020-05-07,6.0,58.0,"['Horror', 'Thriller', 'Mystery']","Karla, a young medical student, is trying to cure her brother, Blake, from a terminal sleep illness called Fatal Familial Insomnia, where you are unable to sleep until you die. On her quest to treat him, a more sinister reason for his condition is revealed.",0.0,87.0,Never Sleep Again +87093.0,en,Big Eyes,15.763,2014-12-24,7.0,2952.0,['Drama'],"The story of the awakening of painter, Margaret Keane, her phenomenal success in the 1950s, and the subsequent legal difficulties she had with her husband, who claimed credit for her works in the 1960s.",28883511.0,106.0,She created it. He sold it. And they bought it. +143049.0,en,Adult World,17.844,2013-04-18,6.1,305.0,['Comedy'],"Amy, a naive college graduate who believes she's destined to be a great poet, begrudgingly accepts a job at a sex shop while she pursues a mentorship with reclusive writer Rat Billings.",0.0,107.0,"When life gets hard, rise to the occasion." +37135.0,en,Tarzan,73.426,1999-06-18,7.4,5329.0,"['Family', 'Adventure', 'Animation', 'Drama']","Tarzan was a small orphan who was raised by an ape named Kala since he was a child. He believed that this was his family, but on an expedition Jane Porter is rescued by Tarzan. He then finds out that he's human. Now Tarzan must make the decision as to which family he should belong to...",448191819.0,88.0,An immortal legend. As you've only imagined. +11848.0,en,Animal Farm,12.053,1954-12-28,6.9,319.0,"['Animation', 'Drama']","A successful farmyard revolution by the resident animals vs. the farmer goes horribly wrong when corrupt pigs hijack it for their personal gain. Based on the socialist George Orwell’s novel “Animal Farm”, a critique of Stalinist authoritarianism.",0.0,72.0,He's got the world in an UPROAR! +12702.0,en,Critters 3,14.814,1991-12-11,5.1,248.0,"['Comedy', 'Horror', 'Science Fiction']","In what appears to be a cross between Critters and The Towering Inferno, the residents of a shoddy L.A. apartment block are chased up to the roof by hoards of the eponymous hairy horrors.",0.0,86.0,First they destroyed a farm. Then they terrorised a town. Now they're ready to do some real damage! +22586.0,en,The Swan Princess,16.697,1994-11-18,6.6,756.0,"['Family', 'Animation', 'Fantasy', 'Adventure', 'Comedy']","The beautiful princess Odette is transformed into a swan by an evil sorcerer's spell. Held captive at an enchanted lake, she befriends Jean-Bob the frog, Speed the turtle and Puffin the bird. Despite their struggle to keep the princess safe, these good-natured creatures can do nothing about the sorcerer's spell, which can only be broken by a vow of everlasting love.",9771658.0,89.0,An enchanting classic destined to capture your heart and free your spirit. +1999.0,en,In the Bedroom,15.04,2001-11-23,6.9,227.0,"['Drama', 'Thriller']","Summertime on the coast of Maine, ""In the Bedroom"" centers on the inner dynamics of a family in transition. Matt Fowler is a doctor practicing in his native Maine and is married to New York born Ruth Fowler, a music teacher. His son is involved in a love affair with a local single mother. As the beauty of Maine's brief and fleeting summer comes to an end, these characters find themselves in the midst of unimaginable tragedy.",0.0,130.0,A young man. An older woman. Her ex-husband. Things are about to explode... +393717.0,fr,Braqueurs,12.337,2016-05-04,6.2,260.0,"['Drama', 'Crime', 'Thriller']","One of the members of a gang of thieves commits a serious mistake that force them to work for a ruthless gang of drug dealers, endangering the future of the team, their lives and those of their families.",0.0,78.0,Thieves against dealers +15613.0,en,Fire in the Sky,12.97,1993-03-12,6.6,366.0,"['Science Fiction', 'Drama', 'Mystery']","A group of men who were clearing brush for the government arrive back in town, claiming that their friend was abducted by aliens. Nobody believes them, and despite a lack of motive and no evidence of foul play, their friends' disappearance is treated as murder.",19724334.0,109.0,"Alien abduction. November 5, 1975. White Mountains, Northeastern Arizona. Based on the true story." +11127.0,en,Starship Troopers 3: Marauder,14.937,2008-07-19,4.7,347.0,"['Adventure', 'Science Fiction', 'Action']","The war against the Bugs continues! A Federation Starship crash-lands on the distant Alien planet OM-1, stranding beloved leader Sky Marshal Anoke and several others, including comely but tough pilot Lola Beck. It's up to Colonel/General Johnny Rico, reluctant hero of the original Bug Invasion on Planet P, to lead a team of Troopers on a daring rescue mission.",0.0,105.0,Do you have what it takes to be a Citizen? +50646.0,en,"Crazy, Stupid, Love.",37.922,2011-07-29,7.2,6536.0,"['Comedy', 'Drama', 'Romance']","Cal Weaver is living the American dream. He has a good job, a beautiful house, great children and a beautiful wife, named Emily. Cal's seemingly perfect life unravels, however, when he learns that Emily has been unfaithful and wants a divorce. Over 40 and suddenly single, Cal is adrift in the fickle world of dating. Enter, Jacob Palmer, a self-styled player who takes Cal under his wing and teaches him how to be a hit with the ladies.",142851197.0,118.0,This is crazy. This is stupid. This is love. +15775.0,en,If Only,11.09,2004-01-23,6.9,426.0,"['Fantasy', 'Drama', 'Romance']","After his impetuous musician girlfriend, Samantha, dies in an accident shortly after they had a fight (and nearly broke up), a grief-stricken British businessman, Ian Wyndham, living in London gets a chance to relive the day all over again, in the hope of changing the events that led up to her getting killed.",3000000.0,92.0,He loved her like there was no tomorrow. +7450.0,en,Titan A.E.,14.527,2000-06-16,6.6,801.0,"['Animation', 'Action', 'Science Fiction', 'Family', 'Adventure']","A young man finds out that he holds the key to restoring hope and ensuring survival for the human race, while an alien species called the Drej are bent on mankind's destruction.",36754634.0,94.0,"When Earth Ends, The Adventure Begins." +2665.0,en,Airplane II: The Sequel,11.889,1982-12-10,6.1,750.0,['Comedy'],"A faulty computer causes a passenger space shuttle to head straight for the sun, and man-with-a-past, Ted Striker must save the day and get the shuttle back on track – again – all the while trying to patch up his relationship with Elaine.",27150534.0,85.0,For the ride of your life... All you need for Christmas are your two front seats! +12508.0,en,Rock Star,9.55,2001-09-04,6.7,555.0,"['Music', 'Drama', 'Comedy']","A wannabe rock star who fronts a Pennsylvania-based tribute band is devastated when his kick him out of the group he founded. Things begin to look up for Izzy when he is asked to join Steel Dragon, the heavy metal rockers he had been imitating for so long. This film is loosely based on the true story of the band Judas Priest.",16991902.0,105.0,The story of a wanna be who got to be. +2640.0,en,Heathers,11.284,1989-03-31,7.4,1214.0,"['Comedy', 'Crime']","A girl who halfheartedly tries to be part of the ""in crowd"" of her school meets a rebel who teaches her a more devious way to play social politics: by killing the popular kids.",1108462.0,103.0,"Best friends, social trends, and occasional murder." +9725.0,en,Friday the 13th Part 2,36.44,1981-05-01,6.1,1131.0,"['Horror', 'Thriller']","Five years after the horrible bloodbath at Camp Crystal Lake, it seems Jason Voorhees and his demented mother are in the past. Paul opens up a new camp close to the infamous site, ignoring warnings to stay away, and a sexually-charged group of counselors follow -- including child psychologist major Ginny. But Jason has been hiding out all this time, and now he's ready for revenge.",21722776.0,87.0,The body count continues... +109445.0,en,Frozen,112.116,2013-11-20,7.3,13633.0,"['Animation', 'Adventure', 'Family']","Young princess Anna of Arendelle dreams about finding true love at her sister Elsa’s coronation. Fate takes her on a dangerous journey in an attempt to end the eternal winter that has fallen over the kingdom. She's accompanied by ice delivery man Kristoff, his reindeer Sven, and snowman Olaf. On an adventure where she will find out what friendship, courage, family, and true love really means.",1274219009.0,102.0,Only the act of true love will thaw a frozen heart. +12092.0,en,Alice in Wonderland,64.736,1951-07-28,7.2,4703.0,"['Animation', 'Family', 'Fantasy', 'Adventure']","On a golden afternoon, young Alice follows a White Rabbit, who disappears down a nearby rabbit hole. Quickly following him, she tumbles into the burrow - and enters the merry, topsy-turvy world of Wonderland! Memorable songs and whimsical escapades highlight Alice's journey, which culminates in a madcap encounter with the Queen of Hearts - and her army of playing cards!",572000000.0,75.0,A world of wonders in one great picture! +289.0,en,Casablanca,22.587,1942-11-26,8.2,3961.0,"['Drama', 'Romance']","In Casablanca, Morocco in December 1941, a cynical American expatriate meets a former lover, with unforeseen complications.",10462500.0,102.0,They had a date with fate in Casablanca! +14144.0,en,Daddy Day Camp,9.801,2007-08-08,4.7,340.0,"['Family', 'Comedy']","Seeking to offer his son the satisfying summer camp experience that eluded him as a child, the operator of a neighborhood daycare center opens his own camp, only to face financial hardship and stiff competition from a rival camp.",18197398.0,89.0,The summer is going to be in tents. +10112.0,en,The Aristocats,56.411,1970-12-24,7.3,4016.0,"['Animation', 'Comedy', 'Family', 'Adventure']","When Madame Adelaide Bonfamille leaves her fortune to Duchess and her children—Bonfamille’s beloved family of cats—the butler plots to steal the money and kidnaps the legatees, leaving them out on a country road. All seems lost until the wily Thomas O’Malley Cat and his jazz-playing alley cats come to the aristocats’ rescue.",55675257.0,78.0,A tune-filled animated extravaganza. +146301.0,en,Paranormal Activity: The Ghost Dimension,25.178,2015-10-21,5.3,1088.0,"['Horror', 'Thriller']","Using a special camera that can see spirits, a family must protect their daughter from an evil entity with a sinister plan.",78096553.0,88.0,You can't save them. All you can do is watch. +300687.0,en,Same Kind of Different as Me,13.384,2017-10-20,6.9,191.0,['Drama'],"International art dealer Ron Hall must befriend a dangerous homeless man in order to save his struggling marriage to his wife, a woman whose dreams will lead all three of them on the journey of their lives.",6423605.0,119.0,Based On The Incredible True Story That Inspired Millions +395458.0,en,Suburbicon,22.178,2017-10-26,5.8,1361.0,"['Thriller', 'Crime', 'Drama', 'Mystery']","In the quiet family town of Suburbicon during the 1950s, the best and worst of humanity is hilariously reflected through the deeds of seemingly ordinary people. When a home invasion turns deadly, a picture-perfect family turns to blackmail, revenge and murder.",12751667.0,105.0,Welcome to the neighborhood. +561.0,en,Constantine,53.567,2005-02-08,7.0,5219.0,"['Fantasy', 'Action', 'Horror']","John Constantine has literally been to Hell and back. When he teams up with a policewoman to solve the mysterious suicide of her twin sister, their investigation takes them through the world of demons and angels that exists beneath the landscape of contemporary Los Angeles.",230884728.0,121.0,"Hell Wants Him, Heaven Won't Take Him, Earth Needs Him." +12665.0,en,Powder,16.34,1995-10-27,6.8,416.0,"['Drama', 'Fantasy', 'Science Fiction', 'Thriller']","Harassed by classmates who won't accept his shocking appearance, a shy young man known as ""Powder"" struggles to fit in. But the cruel taunts stop when Powder displays a mysterious power that allows him to do incredible things. This phenomenon changes the lives of all those around him in ways they never could have imagined.",0.0,111.0,An extraordinary encounter with another human being. +438631.0,en,Dune,2911.423,2021-09-15,8.0,3632.0,"['Action', 'Adventure', 'Science Fiction']","Paul Atreides, a brilliant and gifted young man born into a great destiny beyond his understanding, must travel to the most dangerous planet in the universe to ensure the future of his family and his people. As malevolent forces explode into conflict over the planet's exclusive supply of the most precious resource in existence-a commodity capable of unlocking humanity's greatest potential-only those who can conquer their fear will survive.",331116356.0,155.0,"Beyond fear, destiny awaits." +6646.0,en,Treasure Island,7.187,1950-07-19,6.6,122.0,"['Adventure', 'Family']","Enchanted by the idea of locating treasure buried by Captain Flint, Squire Trelawney, Dr. Livesey and Jim Hawkins charter a sailing voyage to a Caribbean island. Unfortunately, a large number of Flint's old pirate crew are aboard the ship, including Long John Silver.",0.0,96.0,"PIRATE'S PLUNDER a young cabin boy, a roguish buccaneer... match wits in a swashbuckling adventure!" +258193.0,en,Alien Abduction,22.966,2014-04-04,5.6,263.0,"['Horror', 'Science Fiction', 'Thriller']",A vacationing family encounters an alien threat in this pulse-pounding thriller based on the real-life Brown Mountain Lights phenomenon in North Carolina.,0.0,85.0,Fear The Lights... +323272.0,en,War Room,33.355,2015-08-28,7.9,329.0,"['Drama', 'Romance']","The family-friendly movie explores the transformational role prayer plays in the lives of the Jordan family. Tony and Elizabeth Jordan, a middle-class couple who seemingly have it all – great jobs, a beautiful daughter, their dream home. But appearances can be deceiving. In reality, the Jordan’s marriage has become a war zone and their daughter is collateral damage. With the help of Miss Clara, an older, wiser woman, Elizabeth discovers she can start fighting for her family instead of against them. Through a newly energized faith, Elizabeth and Tony’s real enemy doesn’t have a prayer.",67790117.0,120.0,Prayer is a Powerful Weapon +9441.0,en,Stepmom,14.411,1998-12-25,7.1,1076.0,"['Drama', 'Romance', 'Comedy']","Jackie is a divorced mother of two. Isabel is the career minded girlfriend of Jackie’s ex-husband Luke, forced into the role of unwelcome stepmother to their children. But when Jackie discovers she is ill, both women realise they must put aside their differences to find a common ground and celebrate life to the fullest, while they have the chance.",159710793.0,124.0,Be there for the joy. Be there for the tears. Be there for each other. +81796.0,en,Lockout,64.097,2012-04-12,5.9,1444.0,"['Action', 'Thriller', 'Science Fiction']","Set in the near future, Lockout follows a falsely convicted ex-government agent , whose one chance at obtaining freedom lies in the dangerous mission of rescuing the President's daughter from rioting convicts at an outer space maximum security prison.",32204030.0,95.0,Take no prisoners. +284054.0,en,Black Panther,95.125,2018-02-13,7.4,18107.0,"['Action', 'Adventure', 'Science Fiction']","King T'Challa returns home to the reclusive, technologically advanced African nation of Wakanda to serve as his country's new leader. However, T'Challa soon finds that he is challenged for the throne by factions within his own country as well as without. Using powers reserved to Wakandan kings, T'Challa assumes the Black Panther mantle to join with ex-girlfriend Nakia, the queen-mother, his princess-kid sister, members of the Dora Milaje (the Wakandan 'special forces') and an American secret agent, to prevent Wakanda from being dragged into a world war.",1346739107.0,134.0,Long live the king. +2114.0,en,Final Fantasy: The Spirits Within,18.627,2001-07-02,6.2,1128.0,"['Adventure', 'Action', 'Animation', 'Fantasy', 'Science Fiction', 'Thriller', 'Romance']","Led by a strange dream, scientist Aki Ross struggles to collect the eight spirits in the hope of creating a force powerful enough to protect the planet. With the aid of the Deep Eyes Squadron and her mentor, Dr. Sid, Aki must save the Earth from its darkest hate and unleash the spirits within.",85131830.0,106.0,Unleash a new reality +85350.0,en,Boyhood,19.249,2014-06-05,7.5,4262.0,['Drama'],"The film tells a story of a divorced couple trying to raise their young son. The story follows the boy for twelve years, from first grade at age 6 through 12th grade at age 17-18, and examines his relationship with his parents as he grows.",48137666.0,165.0,12 years in the making. +9333.0,en,Last Man Standing,11.627,1996-09-20,6.3,625.0,"['Action', 'Crime', 'Drama', 'Thriller', 'Mystery']","John Smith is a mysterious stranger who is drawn into a vicious war between two Prohibition-era gangs. In a dangerous game, he switches allegiances from one to another, offering his services to the highest bidder. As the death toll mounts, Smith takes the law into his own hands in a deadly race to stay alive.",47267001.0,101.0,"In a town with no justice, there is only one law... Every man for himself." diff --git a/labs/03-orchestration/01-Tokens/tokens.ipynb b/labs/03-orchestration/01-Tokens/tokens.ipynb new file mode 100644 index 0000000..16c047e --- /dev/null +++ b/labs/03-orchestration/01-Tokens/tokens.ipynb @@ -0,0 +1,318 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 01 - Tokens\n", + "\n", + "GPT models process text using *tokens*, which are common sequences of characters found in text. The models understand the statistical relationships between these tokens, and excel at producing the next token in a sequence of tokens.\n", + "\n", + "The conversion of a prompt into tokens happens automatically when you submit a prompt so you don't need to do anything yourself. However, OpenAI services like Azure OpenAI use the number of tokens processed as part of the pricing model, in the case of Azure OpenAI, charging per 1,000 tokens. So understanding how many tokens your prompts consume is an important part of planning and building any application that will use OpenAI.\n", + "\n", + "The prompt **\"Hello world, this is fun!\"** gets tokenized as follows:\n", + "\n", + "```\n", + "Hello\n", + " world,\n", + " this\n", + " is\n", + " fun\n", + "!\n", + "\n", + "(6 tokens)\n", + "```\n", + "Notice how spaces and punctuation are included as part of the tokens. A token doesn't always necessarily equate to a single word or phrase.\n", + "\n", + "Let's try the prompt **\"Example using words like indivisible and emojis\"**.\n", + "\n", + "```\n", + "Example\n", + " using\n", + " words\n", + " like\n", + " ind\n", + "iv\n", + "isible\n", + " and\n", + " em\n", + "oj\n", + "is\n", + "\n", + "(11 tokens)\n", + "```\n", + "This time you can see that some of the words, **indivisible** and **emojis**, got broken up into smaller chunks.\n", + "\n", + "A helpful rule of thumb is that one token generally corresponds to ~4 characters of text for common English text. This translates to roughly ¾ of a word (so 100 tokens ~= 75 words).\n", + "\n", + ":thumbsup: You can experiment with this yourself using the *tokenizer* tool available on the OpenAI website at https://platform.openai.com/tokenizer" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Experimenting with tokens in code\n", + "\n", + "OpenAI provide the `tiktoken` package that you can use to experiment with tokenization in your code.\n", + "\n", + "`tiktoken` supports three encodings used by Azure OpenAI Service models:\n", + "\n", + "| Encoding name | Azure OpenAI Service models |\n", + "| ------------- | -------------- |\n", + "| gpt2 (or r50k_base) | Most GPT-3 models |\n", + "| p50k_base | Code models, text-davinci-002, text-davinci-003 |\n", + "| cl100k_base | text-embedding-ada-002 |\n", + "\n", + "You can use `tiktoken` as follows to tokenize a string and see what the output looks like." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import tiktoken\n", + "\n", + "encoding = tiktoken.get_encoding(\"p50k_base\")\n", + "encoding.encode(\"Hello world, this is fun!\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Was the output of the above code what you were expecting?\n", + "\n", + "If you were expecting text broken up like the examples at the top of this page, you were probably wondering why you just got back a bunch of seemingly random numbers. This is because the AI models don't work on words. Instead, they use a method called *BPE* (Byte Pair Encoding) to convert the text into numeric tokens.\n", + "\n", + "One of the features of BPE is that it's reversible, so you can convert the tokens back into the original text." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Challenge - Display the text instead of the tokens\n", + "\n", + "See if you can write code to display the text instead of the tokens.\n", + "\n", + ":bulb: **HINT:** See the following cookbook for some tips on working with `tiktoken`: [How to count tokens with tiktoken](https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Write code to display the text from the tokens below\n", + "\n", + "#FIXME" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you're successful, the results should be similar to the following\n", + "\n", + "`[b'Hello', b' world', b',', b' this', b' is', b' fun', b'!']`" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Challenge - Write a function to return the number of tokens\n", + "\n", + "Using what you've learned so far, complete the following function so that it returns the count of the number of tokens in a text string." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_num_tokens_from_string(string: str, encoding_name: str='p50k_base') -> int:\n", + " #FIXME\n", + "\n", + "get_num_tokens_from_string(\"Hello World, this is fun!\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Blowing up the prompt!\n", + "\n", + "Apart from cost, there's another reason that you'll want to be in control of the number of tokens you use. All AI models have a limit on the maximum number of tokens that a request can consume. The limit per request includes the number of tokens in the prompt **plus** the number of tokens in the response. Different models can have different token limits, but ultimately the overall size of your prompt and the response to that prompt have to be smaller than that limit.\n", + "\n", + "Let's show this in action by deliberately sending a prompt that's too large." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have a file, `movies.csv`, in this folder which contains a long list of movie data. Let's use `tiktoken` to see how big this file is in tokens." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import tiktoken\n", + "\n", + "# Open the file with information about movies\n", + "movie_data = os.path.join(os.getcwd(), \"movies.csv\")\n", + "content = open(movie_data, \"r\").read()\n", + "\n", + "# Use tiktoken to tokenize the content and get a count of tokens used.\n", + "encoding = tiktoken.get_encoding(\"p50k_base\")\n", + "print (f\"Token count: {len(encoding.encode(content))}\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You should have a result of something like 60,000 tokens. Which is a huge amount of tokens! But let's continue regardless.\n", + "\n", + "Let's setup the OpenAI API to use for this example." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import openai\n", + "from dotenv import load_dotenv\n", + "\n", + "load_dotenv()\n", + "\n", + "openai.api_type = os.getenv(\"OPENAI_API_TYPE\")\n", + "openai.api_key = os.getenv(\"OPENAI_API_KEY\")\n", + "openai.api_base = os.getenv(\"OPENAI_API_BASE\")\n", + "openai.api_version = os.getenv(\"OPENAI_API_VERSION\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you've seen in the Prompts section of this workshop, we can provide additional data to an AI model by including that data in the prompt. So, let's construct a prompt that asked for the highest rated movie and then provide the list of movies for the AI to work with." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "query = \"What's the highest rated movie from the following list\\n\"\n", + "query += \"CSV list of movies:\\n\"\n", + "query += content\n", + "\n", + "print (f\"{query[0:500]} ...[{len(query)} characters]\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can see we've output the first few lines of the prompt and we've printed the overall size (in characters) of the prompt. Now, let's see what happens if we submit that query to the AI." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "r = openai.Completion.create(\n", + " model = os.getenv(\"OPENAI_COMPLETION_MODEL\"),\n", + " deployment_id = os.getenv(\"AZURE_OPENAI_COMPLETION_DEPLOYMENT_NAME\"),\n", + " prompt = query,\n", + ")\n", + "\n", + "print (r)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This request will fail. At the end of the output, you should see an error message something like the following:\n", + "\n", + "```bash\n", + "InvalidRequestError: This model's maximum context length is 4097 tokens, however you requested 60797 tokens (60781 in your prompt; 16 for the completion). Please reduce your prompt; or completion length.\n", + "```\n", + "\n", + "You can see quite clearly from the error message that we've exceeded the model's maximum length. Its maximum is **4,097** tokens, we've sent a request requiring **60,797** tokens, which includes **60,781** tokens for our query and **16** tokens needed for the response." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Summary\n", + "\n", + "In this lab, we've learned about tokens. Your prompts will be broken up and sent to the AI as tokens and all AI models have a maximum token size which you must take care not to exceed. You will also be charged based on the number of tokens that your queries consume." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Up Next\n", + "\n", + "In the next lab, we'll look at one of the ways you can take control of the number of tokens your prompts consume by introducing the concept of **Embeddings**." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.4" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/labs/03-orchestration/02-Embeddings/data/movies/Ambush.md b/labs/03-orchestration/02-Embeddings/data/movies/Ambush.md new file mode 100644 index 0000000..ec0ac8f --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/Ambush.md @@ -0,0 +1,18 @@ +# Ambush + +## Overview + + When a small outpost is ambushed, a US Army squad must take the battle below ground on a high-stakes mission in a new type of warfare the likes of which they have never seen. + +## Details + +**Release Date:** 2023-02-24 + +**Genres:** Action, War, Thriller + +**Popularity:** 386.559 + +**Vote Average:** 5.8 + +**Keywords:** + diff --git a/labs/03-orchestration/02-Embeddings/data/movies/Ant-Man and the Wasp: Quantumania.md b/labs/03-orchestration/02-Embeddings/data/movies/Ant-Man and the Wasp: Quantumania.md new file mode 100644 index 0000000..eeeba04 --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/Ant-Man and the Wasp: Quantumania.md @@ -0,0 +1,18 @@ +# Ant-Man and the Wasp: Quantumania + +## Overview + + Super-Hero partners Scott Lang and Hope van Dyne, along with with Hope's parents Janet van Dyne and Hank Pym, and Scott's daughter Cassie Lang, find themselves exploring the Quantum Realm, interacting with strange new creatures and embarking on an adventure that will push them beyond the limits of what they thought possible. + +## Details + +**Release Date:** 2023-02-15 + +**Genres:** Action, Adventure, Science Fiction + +**Popularity:** 525.418 + +**Vote Average:** 6.5 + +**Keywords:** hero, ant, sequel, superhero, based on comic, family, superhero team, aftercreditsstinger, duringcreditsstinger + diff --git a/labs/03-orchestration/02-Embeddings/data/movies/Black Clover: Sword of the Wizard King.md b/labs/03-orchestration/02-Embeddings/data/movies/Black Clover: Sword of the Wizard King.md new file mode 100644 index 0000000..4ee988f --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/Black Clover: Sword of the Wizard King.md @@ -0,0 +1,18 @@ +# Black Clover: Sword of the Wizard King + +## Overview + + As a lionhearted boy who can’t wield magic strives for the title of Wizard King, four banished Wizard Kings of yore return to crush the Clover Kingdom. + +## Details + +**Release Date:** 2023-06-16 + +**Genres:** Animation, Fantasy, Action, Adventure + +**Popularity:** 336.12 + +**Vote Average:** 8.4 + +**Keywords:** magic, demon, wizard, shounen, anime + diff --git a/labs/03-orchestration/02-Embeddings/data/movies/Confidential Informant.md b/labs/03-orchestration/02-Embeddings/data/movies/Confidential Informant.md new file mode 100644 index 0000000..c1094a0 --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/Confidential Informant.md @@ -0,0 +1,18 @@ +# Confidential Informant + +## Overview + + During a crack epidemic two narcotics agents hunting for a cop killer. Hoping for leads, Moran and Thorton pay off a junkie informant. To provide for his wife and son, Moran involves the stool pigeon in a deadly scheme. This causes the partners to come under the scrutiny of a suspicious internal affairs agent. + +## Details + +**Release Date:** 2023-06-27 + +**Genres:** Mystery, Thriller, Action + +**Popularity:** 408.062 + +**Vote Average:** 6.4 + +**Keywords:** gritty, crime + diff --git a/labs/03-orchestration/02-Embeddings/data/movies/Creed III.md b/labs/03-orchestration/02-Embeddings/data/movies/Creed III.md new file mode 100644 index 0000000..b713d17 --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/Creed III.md @@ -0,0 +1,18 @@ +# Creed III + +## Overview + + After dominating the boxing world, Adonis Creed has been thriving in both his career and family life. When a childhood friend and former boxing prodigy, Damian Anderson, resurfaces after serving a long sentence in prison, he is eager to prove that he deserves his shot in the ring. The face-off between former friends is more than just a fight. To settle the score, Adonis must put his future on the line to battle Damian — a fighter who has nothing to lose. + +## Details + +**Release Date:** 2023-03-01 + +**Genres:** Drama, Action + +**Popularity:** 433.823 + +**Vote Average:** 7.2 + +**Keywords:** philadelphia, pennsylvania, husband wife relationship, deaf, sports, sequel, orphan, former best friend, ex-con, childhood friends, juvenile detention center, boxing, prodigy + diff --git a/labs/03-orchestration/02-Embeddings/data/movies/Extraction 2.md b/labs/03-orchestration/02-Embeddings/data/movies/Extraction 2.md new file mode 100644 index 0000000..012840a --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/Extraction 2.md @@ -0,0 +1,18 @@ +# Extraction 2 + +## Overview + + Tasked with extracting a family who is at the mercy of a Georgian gangster, Tyler Rake infiltrates one of the world's deadliest prisons in order to save them. But when the extraction gets hot, and the gangster dies in the heat of battle, his equally ruthless brother tracks down Rake and his team to Vienna, in order to get revenge. + +## Details + +**Release Date:** 2023-06-09 + +**Genres:** Action, Thriller + +**Popularity:** 1422.453 + +**Vote Average:** 7.6 + +**Keywords:** mercenary, sequel, rescue mission, long take, based on graphic novel + diff --git a/labs/03-orchestration/02-Embeddings/data/movies/Fast X.md b/labs/03-orchestration/02-Embeddings/data/movies/Fast X.md new file mode 100644 index 0000000..7dcfd24 --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/Fast X.md @@ -0,0 +1,18 @@ +# Fast X + +## Overview + + Over many missions and against impossible odds, Dom Toretto and his family have outsmarted, out-nerved and outdriven every foe in their path. Now, they confront the most lethal opponent they've ever faced: A terrifying threat emerging from the shadows of the past who's fueled by blood revenge, and who is determined to shatter this family and destroy everything—and everyone—that Dom loves, forever. + +## Details + +**Release Date:** 2023-05-17 + +**Genres:** Action, Crime, Thriller + +**Popularity:** 3283.417 + +**Vote Average:** 7.3 + +**Keywords:** sequel, revenge, racing, family, cars + diff --git a/labs/03-orchestration/02-Embeddings/data/movies/Guy Ritchie's The Covenant.md b/labs/03-orchestration/02-Embeddings/data/movies/Guy Ritchie's The Covenant.md new file mode 100644 index 0000000..9d69b0b --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/Guy Ritchie's The Covenant.md @@ -0,0 +1,18 @@ +# Guy Ritchie's The Covenant + +## Overview + + During the war in Afghanistan, a local interpreter risks his own life to carry an injured sergeant across miles of grueling terrain. + +## Details + +**Release Date:** 2023-04-19 + +**Genres:** War, Action, Thriller + +**Popularity:** 544.105 + +**Vote Average:** 7.8 + +**Keywords:** ambush, interpreter, afghanistan, afghanistan war (2001- ), rescue, war + diff --git a/labs/03-orchestration/02-Embeddings/data/movies/Indiana Jones and the Dial of Destiny.md b/labs/03-orchestration/02-Embeddings/data/movies/Indiana Jones and the Dial of Destiny.md new file mode 100644 index 0000000..5e48579 --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/Indiana Jones and the Dial of Destiny.md @@ -0,0 +1,18 @@ +# Indiana Jones and the Dial of Destiny + +## Overview + + Finding himself in a new era, approaching retirement, Indy wrestles with fitting into a world that seems to have outgrown him. But as the tentacles of an all-too-familiar evil return in the form of an old rival, Indy must don his hat and pick up his whip once more to make sure an ancient and powerful artifact doesn't fall into the wrong hands. + +## Details + +**Release Date:** 2023-06-28 + +**Genres:** Adventure, Action, Fantasy + +**Popularity:** 740.388 + +**Vote Average:** 6.5 + +**Keywords:** feminism, sequel, flashback, prologue, knife fight, archaeologist, adventurer, 1960s, relic hunter + diff --git a/labs/03-orchestration/02-Embeddings/data/movies/John Wick: Chapter 4.md b/labs/03-orchestration/02-Embeddings/data/movies/John Wick: Chapter 4.md new file mode 100644 index 0000000..f5380a1 --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/John Wick: Chapter 4.md @@ -0,0 +1,18 @@ +# John Wick: Chapter 4 + +## Overview + + With the price on his head ever increasing, John Wick uncovers a path to defeating The High Table. But before he can earn his freedom, Wick must face off against a new enemy with powerful alliances across the globe and forces that turn old friends into foes. + +## Details + +**Release Date:** 2023-03-22 + +**Genres:** Action, Thriller, Crime + +**Popularity:** 1437.077 + +**Vote Average:** 7.9 + +**Keywords:** new york city, martial arts, hitman, sequel, organized crime, osaka, japan, aftercreditsstinger, hunted, professional assassin, neo-noir, berlin + diff --git a/labs/03-orchestration/02-Embeddings/data/movies/Knights of the Zodiac.md b/labs/03-orchestration/02-Embeddings/data/movies/Knights of the Zodiac.md new file mode 100644 index 0000000..440d87d --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/Knights of the Zodiac.md @@ -0,0 +1,18 @@ +# Knights of the Zodiac + +## Overview + + When a headstrong street orphan, Seiya, in search of his abducted sister unwittingly taps into hidden powers, he discovers he might be the only person alive who can protect a reincarnated goddess, sent to watch over humanity. Can he let his past go and embrace his destiny to become a Knight of the Zodiac? + +## Details + +**Release Date:** 2023-04-27 + +**Genres:** Fantasy, Action, Adventure + +**Popularity:** 3355.755 + +**Vote Average:** 6.5 + +**Keywords:** superhero, based on manga, live action anime + diff --git a/labs/03-orchestration/02-Embeddings/data/movies/Los bastardos.md b/labs/03-orchestration/02-Embeddings/data/movies/Los bastardos.md new file mode 100644 index 0000000..9e65edd --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/Los bastardos.md @@ -0,0 +1,18 @@ +# Los bastardos + +## Overview + + + +## Details + +**Release Date:** 2023-03-30 + +**Genres:** Action, Thriller, Crime, Drama + +**Popularity:** 431.075 + +**Vote Average:** 6.1 + +**Keywords:** + diff --git a/labs/03-orchestration/02-Embeddings/data/movies/Sisu.md b/labs/03-orchestration/02-Embeddings/data/movies/Sisu.md new file mode 100644 index 0000000..225329f --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/Sisu.md @@ -0,0 +1,18 @@ +# Sisu + +## Overview + + Deep in the wilderness of Lapland, Aatami Korpi is searching for gold but after he stumbles upon Nazi patrol, a breathtaking and gold-hungry chase through the destroyed and mined Lapland wilderness begins. + +## Details + +**Release Date:** 2023-01-27 + +**Genres:** Action, War + +**Popularity:** 520.792 + +**Vote Average:** 7.5 + +**Keywords:** world war ii, nordic mythology, lapland, finnish mythology + diff --git a/labs/03-orchestration/02-Embeddings/data/movies/Spider-Man: Across the Spider-Verse.md b/labs/03-orchestration/02-Embeddings/data/movies/Spider-Man: Across the Spider-Verse.md new file mode 100644 index 0000000..6e28fdd --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/Spider-Man: Across the Spider-Verse.md @@ -0,0 +1,18 @@ +# Spider-Man: Across the Spider-Verse + +## Overview + + After reuniting with Gwen Stacy, Brooklyn’s full-time, friendly neighborhood Spider-Man is catapulted across the Multiverse, where he encounters the Spider Society, a team of Spider-People charged with protecting the Multiverse’s very existence. But when the heroes clash on how to handle a new threat, Miles finds himself pitted against the other Spiders and must set out on his own to save those he loves most. + +## Details + +**Release Date:** 2023-05-31 + +**Genres:** Action, Adventure, Animation, Science Fiction + +**Popularity:** 1542.139 + +**Vote Average:** 8.5 + +**Keywords:** sacrifice, villain, comic book, sequel, superhero, based on comic, alternate dimension, alternate version, super power, brooklyn, new york city, superhero team, spider bite, super villain, cliffhanger, teen superhero, alternate universe, female superhero, cartoon spider + diff --git a/labs/03-orchestration/02-Embeddings/data/movies/The Flash.md b/labs/03-orchestration/02-Embeddings/data/movies/The Flash.md new file mode 100644 index 0000000..9b50fcc --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/The Flash.md @@ -0,0 +1,18 @@ +# The Flash + +## Overview + + When his attempt to save his family inadvertently alters the future, Barry Allen becomes trapped in a reality in which General Zod has returned and there are no Super Heroes to turn to. In order to save the world that he is in and return to the future that he knows, Barry's only hope is to race for his life. But will making the ultimate sacrifice be enough to reset the universe? + +## Details + +**Release Date:** 2023-06-13 + +**Genres:** Science Fiction, Action, Adventure + +**Popularity:** 786.283 + +**Vote Average:** 6.7 + +**Keywords:** secret identity, hero, superhero, based on comic, superhuman, super power, aftercreditsstinger, butterfly effect, dc extended universe (dceu), superhuman abilities, loss of mother + diff --git a/labs/03-orchestration/02-Embeddings/data/movies/The Wrath of Becky.md b/labs/03-orchestration/02-Embeddings/data/movies/The Wrath of Becky.md new file mode 100644 index 0000000..b802e64 --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/The Wrath of Becky.md @@ -0,0 +1,18 @@ +# The Wrath of Becky + +## Overview + + Two years after she escaped a violent attack on her family, 16-year-old Becky attempts to rebuild her life in the care of an older woman -- a kindred spirit named Elena. However, when a violent group known as the Noble Men break into their home, attack them and take their beloved dog, Becky must return to her old ways to protect herself and her loved ones. + +## Details + +**Release Date:** 2023-05-26 + +**Genres:** Action, Horror, Thriller + +**Popularity:** 759.396 + +**Vote Average:** 6.8 + +**Keywords:** machete, sequel, revenge, murder, gore, diner, dog, blood, terrorists + diff --git a/labs/03-orchestration/02-Embeddings/data/movies/Transformers: Rise of the Beasts.md b/labs/03-orchestration/02-Embeddings/data/movies/Transformers: Rise of the Beasts.md new file mode 100644 index 0000000..6f89ee0 --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/Transformers: Rise of the Beasts.md @@ -0,0 +1,18 @@ +# Transformers: Rise of the Beasts + +## Overview + + When a new threat capable of destroying the entire planet emerges, Optimus Prime and the Autobots must team up with a powerful faction known as the Maximals. With the fate of humanity hanging in the balance, humans Noah and Elena will do whatever it takes to help the Transformers as they engage in the ultimate battle to save Earth. + +## Details + +**Release Date:** 2023-06-06 + +**Genres:** Action, Adventure, Science Fiction + +**Popularity:** 1301.343 + +**Vote Average:** 7.3 + +**Keywords:** peru, alien, end of the world, based on cartoon, based on toy, robot, duringcreditsstinger, 1990s, brother brother relationship + diff --git a/labs/03-orchestration/02-Embeddings/data/movies/iNumber Number: Jozi Gold.md b/labs/03-orchestration/02-Embeddings/data/movies/iNumber Number: Jozi Gold.md new file mode 100644 index 0000000..c0dead7 --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/data/movies/iNumber Number: Jozi Gold.md @@ -0,0 +1,18 @@ +# iNumber Number: Jozi Gold + +## Overview + + When an undercover cop is tasked with investigating a historic gold heist in Johannesburg, he’s forced to choose between his conscience and the law. + +## Details + +**Release Date:** 2023-06-23 + +**Genres:** Crime, Action, Thriller + +**Popularity:** 719.085 + +**Vote Average:** 6.3 + +**Keywords:** + diff --git a/labs/03-orchestration/02-Embeddings/embeddings.ipynb b/labs/03-orchestration/02-Embeddings/embeddings.ipynb new file mode 100644 index 0000000..e1cd894 --- /dev/null +++ b/labs/03-orchestration/02-Embeddings/embeddings.ipynb @@ -0,0 +1,461 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 02 Embeddings\n", + "\n", + "In this lab, we'll explore how we can bring our own data into the models used by Azure OpenAI.\n", + "\n", + "We'll start as usual by defining our Azure OpenAI service API key and endpoint details, specifying the model deployment we want to use and then we'll initiate a connection to the Azure OpenAI service.\n", + "\n", + "**NOTE**: As with previous labs, we'll use the values from the `.env` file in the root of this repository." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "from langchain.llms import AzureOpenAI\n", + "from dotenv import load_dotenv\n", + "\n", + "# Load environment variables\n", + "load_dotenv()\n", + "\n", + "openai_api_type = os.getenv(\"OPENAI_API_TYPE\")\n", + "openai_api_key = os.getenv(\"OPENAI_API_KEY\")\n", + "openai_api_base = os.getenv(\"OPENAI_API_BASE\")\n", + "openai_api_version = os.getenv(\"OPENAI_API_VERSION\")\n", + "deployment_name = os.getenv(\"AZURE_OPENAI_COMPLETION_DEPLOYMENT_NAME\")\n", + "embedding_name = os.getenv(\"AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME\")\n", + "\n", + "# Create an instance of Azure OpenAI\n", + "llm = AzureOpenAI(\n", + " openai_api_type = openai_api_type,\n", + " openai_api_version = openai_api_version,\n", + " openai_api_base = openai_api_base,\n", + " openai_api_key = openai_api_key,\n", + " deployment_name = deployment_name,\n", + " temperature = 0\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's begin by asking the AI a simple question." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Call the API\n", + "r = llm(\"Tell me about the latest Ant-Man movie. When was it released? What is it about?\")\n", + "\n", + "# Print the response\n", + "print(r)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What do you notice about the response?\n", + "\n", + "The AI thinks the latest \"Ant-Man\" movie was \"Ant-Man and the Wasp\" and it was released in July 2018. \n", + "\n", + "OpenAI models are trained on a large set of data, but that happened at a specific point in time depending on the model. So, many of the models have no information about events that took place in recent months or years.\n", + "\n", + "To help the AI out, we can provide additional information. This is the same process you would follow if you want the AI to work with your own company data. The AI won't know about information that isn't publically available, so if you want the AI to work with that information, then you'll need to get that information into the model.\n", + "\n", + "The thing is, you can't actually do that. The models are pre-trained, so the only way to get more information in is to retrain the model, which is an expensive and time consuming process.\n", + "\n", + "However, there *are* ways to get the AI models to work with new data. The most popular of these methods is to use *embeddings*, which we'll explore in the next sections." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Bring Your Own Data\n", + "\n", + "Langchain provides a number of useful tools, which include tools to simplify the process of working with external documents. Below, we'll use the `DirectoryLoader` which can read multiple files from a directory and the `UnstructuredMarkdownLoader` which can process files in Markdown format. We'll use these to process a bunch of markdown formatted files that contain details of movies that were released in the year 2023." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.document_loaders import DirectoryLoader, UnstructuredMarkdownLoader\n", + "\n", + "data_dir = \"data/movies\"\n", + "\n", + "documents = DirectoryLoader(path=data_dir, glob=\"*.md\", show_progress=True, loader_cls=UnstructuredMarkdownLoader).load()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now have a `documents` object which contains all of the information from our markdown documents about movies.\n", + "\n", + "We can use the `question_answering` chain to provide the AI with access to our documents and then ask the same question about Ant-Man movies again." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Question answering chain\n", + "from langchain.chains.question_answering import load_qa_chain\n", + "\n", + "# Prepare the chain and the query\n", + "chain = load_qa_chain(llm)\n", + "query = \"Tell me about the latest Ant Man movie. When was it released? What is it about?\"\n", + "\n", + "chain.run(input_documents=documents, question=query)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great! The model now knows about the latest Ant-Man movie.\n", + "\n", + "However, there's something lurking! Let's take a look at what happened behind the scenes.\n", + "\n", + "We'll do two things here. First we'll add the `verbose=True` parameter to the chain, and we'll wrap the chain execution in a callback, which will allow us to capture the number of tokens consumed." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Support for callbacks\n", + "from langchain.callbacks import get_openai_callback\n", + "\n", + "# Prepare the chain and the query\n", + "chain = load_qa_chain(llm, verbose=True)\n", + "query = \"Tell me about the latest Ant Man movie. When was it released? What is it about?\"\n", + "\n", + "# Run the chain, using the callback to capture the number of tokens used\n", + "with get_openai_callback() as callback:\n", + " chain.run(input_documents=documents, question=query)\n", + " total_tokens = callback.total_tokens\n", + "\n", + "print(f\"Total tokens used: {total_tokens}\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the output from the last code section, you should see a lot of information. At the end, you should see a count of the number of tokens used. You might be surprised to see that the query used around 2,900 tokens! That's a lot of tokens.\n", + "\n", + "With the verbose option enabled, the rest of the output shows the prompt that was constructed for the query. If you scroll back through the output, you'll see that the prompt included **all** of the information from our documents, so this is why the query used so many tokens.\n", + "\n", + "As we've discussed previously, AI models have a maximum number of tokens you can use and a charging model based on the number of tokens consumed. In this example, the documents are relatively small in size and there's only 20 of them, so clearly this is not going to scale when we want to work with larger documents and more of them." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Embeddings\n", + "\n", + "The solution to working with large amounts of external information is to use *embeddings*. OpenAI provide embedding models which allow human readable information to be analysed for meaning and intent. The output from an embedding model is data in a numeric format, known as *vectors*. These allow computers to group pieces of similar information together. The vectors are then kept in a *vector store*. When you want to ask a question, an embedding model is again used to convert the query text into vectors and the vector data that represents your query can then be searched in the vector store. Any similar vectors that are found in the database are likely to be a good response to your query.\n", + "\n", + "To prevent overloading a prompt with a large number of tokens, instead of sending all of our documents to the AI, we can perform a vector search first to narrow down to a set of interesting results, and then use that smaller subset of information as part of a prompt." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's walk through the process of using embeddings to give the AI some details about our movies. We'll start by initiating an instance of an embeddings model. You'll notice this is similar to when we initialise one of our model deployments to run a query, but in this case we specify and embedding model. Typically the embedding model used is `text-embedding-ada-002`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.embeddings import OpenAIEmbeddings\n", + "\n", + "embeddings_model = OpenAIEmbeddings(\n", + " openai_api_type = openai_api_type,\n", + " openai_api_version = openai_api_version,\n", + " openai_api_base = openai_api_base,\n", + " openai_api_key = openai_api_key,\n", + " deployment = embedding_name,\n", + " chunk_size = 1\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**NOTE:** The `chunk_size = 1` parameter is used to workaround a temporary limitation in the Azure OpenAI API which only allows one embedding to be processed at a time with each call to the API.\n", + "\n", + "Now that we've initialised a model to create embeddings, let's go ahead and embed some documents.\n", + "\n", + "As we did in the previous example, we'll use Langchain's builit in loaders to read the documents from a directory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "documents = DirectoryLoader(path=data_dir, glob=\"*.md\", show_progress=True, loader_cls=UnstructuredMarkdownLoader).load()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The next step is to use a *splitter*. A splitter enables us to break up larger documents into chunks, so that we don't risk hitting the token limit when submitting our data to the embedding model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.text_splitter import CharacterTextSplitter\n", + "text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)\n", + "document_chunks = text_splitter.split_documents(documents)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The next stage is to convert the chunks of split documents into vectors which we do by passing the data through an embedding model. The resultant vectors are then stored in a vector database. In this example, we're using the **Qdrant** (pronounced 'quadrant') database. We initialise it using the `location=\":memory:\"` option, so that the database will be stored in memory rather than persisted to disk." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.vectorstores import Qdrant\n", + "\n", + "qdrant = Qdrant.from_documents(\n", + " document_chunks,\n", + " embeddings_model,\n", + " location=\":memory:\",\n", + " collection_name=\"movies\",\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above code segment handles the process of initialising the Qdrant database, passing our documents through the embedding model and storing the resulting vectors in the database.\n", + "\n", + "Next, we define a *retriever*. In Langchain, retrievers are an interface that allow results to be returned from vector stores. So, we establish a retriever for our Qdrant database." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "retriever = qdrant.as_retriever()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we define a `RetrievalQA` chain. This chain brings handles the process of answering a question by performing the search on the vector store, then taking the results of that search and passing them to our AI model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.chains import RetrievalQA\n", + "qa = RetrievalQA.from_chain_type(llm=llm, chain_type=\"stuff\", retriever=retriever)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we'll run our query again. However, we'll make one small change.\n", + "\n", + "You may be thinking that it's not surprising that the AI now knows about the latest Ant-Man movie, because we told it about the latest Ant-Man movie! So, let's try and show that the AI is actually doing some work here.\n", + "\n", + "If you're not a fan of these movies, Ant-Man originates from Marvel comic books. And the collection of movies that originate from Marvel comic books are said to be part of the Marvel Cinematic Universe, sometimes referred to as the MCU. We haven't mentioned Marvel or MCU in the data we've provided, so if modify the query slightly and ask the AI about the MCU instead of specifically about Ant-Man, let's see if it can use it's models to figure out what we mean." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "query = \"Tell me about the latest MCU movie. When was it released? What is it about?\"\n", + "qa.run(query)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If all went well, the AI should have responded that the latest MCU movie is Ant-Man and the Wasp: Quantumania which was released in February 2023.\n", + "\n", + "So, we're getting the response we expected, but let's check in on one of the reasons why we've done all of this. Has the number of tokens used been reduced? Let's use the same technique as before and employ a callback to find out." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "with get_openai_callback() as callback:\n", + " qa.run(query)\n", + " total_tokens = callback.total_tokens\n", + "\n", + "print(f\"Total tokens used: {total_tokens}\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The exact number of tokens used may vary, but it should be clear that this query now uses far fewer tokens than our original query, typically around 2,000 fewer." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "AI Orchestrators like Langchain and Semantic Kernel can help simplify the process of embedding, vectorization and search. In the preceding section, we stepped through the process of document splitting, embedding, vectorisation, storing vectors in a database and creating a retriever. In the next section, we use Langchain's document loader as we did previously to load and process our Markdown formatted documents, but this time we use a `VectorstoreIndexCreator` which you can see only requires a couple of parameters - the embedding model that we want to use and the source data (`loader`) to use. However, behind the scenes, the `VectorstoreIndexCreator` is carrying out all of the steps we did previously." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.indexes import VectorstoreIndexCreator\n", + "\n", + "loader = DirectoryLoader(path=data_dir, glob=\"*.md\", show_progress=True, loader_cls=UnstructuredMarkdownLoader)\n", + "\n", + "index = VectorstoreIndexCreator(\n", + " embedding=embeddings_model\n", + " ).from_loaders([loader])" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, to run a query against our data, we just need to specify the prompt and then call the index we've created above and pass in the model (`llm`) we want to use and the question we want to ask." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "query = \"Tell me about the latest Ant Man movie. When was it released? What is it about?\"\n", + "index.query(llm=llm, question=query)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can see this is a really simple way to implement embeddings and vectors as part of an AI application. It's great for getting up and running quickly.\n", + "\n", + "We can use the callback method again to confirm that we're still seeing a reduced number of tokens being consumed." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Run the chain, using the callback to capture the number of tokens used\n", + "with get_openai_callback() as callback:\n", + " index.query(llm=llm, question=query)\n", + " total_tokens = callback.total_tokens\n", + "\n", + "print(f\"Total tokens used: {total_tokens}\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.4" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/labs/03-orchestration/03-Memories/memories.ipynb b/labs/03-orchestration/03-Memories/memories.ipynb new file mode 100644 index 0000000..893a095 --- /dev/null +++ b/labs/03-orchestration/03-Memories/memories.ipynb @@ -0,0 +1,162 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 03 Memories\n", + "\n", + "Work in progress" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
    Installed Packages
    • dotenv.net, 3.1.2
    • Microsoft.SemanticKernel, 0.17.230711.7-preview
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#r \"nuget: Microsoft.SemanticKernel, 0.17.230711.7-preview\"\n", + "#r \"nuget: dotenv.net, 3.1.2\"\n", + "\n", + "using dotenv.net;\n", + "\n", + "// Read values from .env file\n", + "var envVars = DotEnv.Fluent()\n", + " .WithoutExceptions()\n", + " .WithEnvFiles(\"../../../.env\")\n", + " .WithTrimValues()\n", + " .WithDefaultEncoding()\n", + " .WithOverwriteExistingVars()\n", + " .WithoutProbeForEnv()\n", + " .Read();\n", + "\n", + "// Load values into variables and strip quotes\n", + "var model = envVars[\"AZURE_OPENAI_COMPLETION_DEPLOYMENT_NAME\"].Replace(\"\\\"\", \"\");\n", + "var embeddingModel = envVars[\"AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME\"].Replace(\"\\\"\", \"\");\n", + "var azureEndpoint = envVars[\"OPENAI_API_BASE\"].Replace(\"\\\"\", \"\");\n", + "var apiKey = envVars[\"OPENAI_API_KEY\"].Replace(\"\\\"\", \"\");" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
    Installed Packages
    • Microsoft.SemanticKernel.Connectors.Memory.Chroma, 0.17.230711.7-preview
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#r \"nuget: Microsoft.SemanticKernel.Connectors.Memory.Chroma, 0.17.230711.7-preview\"\n", + "using Microsoft.SemanticKernel.Connectors.Memory.Chroma;" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [], + "source": [ + "using Microsoft.SemanticKernel;\n", + "\n", + "var builder = new KernelBuilder();\n", + "builder.WithAzureTextEmbeddingGenerationService(embeddingModel, azureEndpoint, apiKey);\n", + "builder.WithAzureTextCompletionService(model, azureEndpoint, apiKey);" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [], + "source": [ + "var chromaMemoryStore = new ChromaMemoryStore(\"http://127.0.0.1:8000\");\n", + "builder.WithMemoryStorage(chromaMemoryStore);" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [], + "source": [ + "var kernel = builder.Build();" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/labs/03-orchestration/README.md b/labs/03-orchestration/README.md new file mode 100644 index 0000000..5d32ac7 --- /dev/null +++ b/labs/03-orchestration/README.md @@ -0,0 +1,3 @@ +# Advanced Topics + +In the previous sections, we've learned about Prompt Engineering and we've learned some basics around interacting with OpenAI. In this section, we'll dive deeper into some of the concepts that have already been mentioned and introduce some new ones which will help you to understand some of the more advanced features of working with large language models. \ No newline at end of file diff --git a/labs/04-deploy-ai/01-azure-functions/README.md b/labs/04-deploy-ai/01-azure-functions/README.md new file mode 100644 index 0000000..135552d --- /dev/null +++ b/labs/04-deploy-ai/01-azure-functions/README.md @@ -0,0 +1,124 @@ +# Semantic Kernel + +## Introduction + +In this lab, we're going to build on what we've seen in the previous two labs and introduce Semantic Kernel. Similar to the OpenAI Library, Semantic Kernel provides a layer on top of the OpenAI API, but it also provides an orchestration layer that allows combining different AI models, plugins to bring in information from other sources and concepts like *memories*. + +We'll learn about Semantic Kernel by creating a "Hello, World!" application using Azure Functions. We'll use this application to explore the basics of Semantic Kernel, see how an application is structured and then build on that knowledge in later labs. + +### Preparation + +You can use either GitHub Codespaces (:exclamation:recommended:exclamation:) or you can work locally using Visual Studio Code for this lab. + +#### Codespaces Setup + +Using Codespaces is the fastest way to get up and running and ready to work with this lab. + +In this **Intro to Intelligent Apps** repo in GitHub, click the green "<> Code" button, then choose "Codespaces" and click the button "Create codespace on main". + +A new Codespace will be setup. The build process takes around 10 to 15 minutes to complete. + +#### Visual Studio Code Setup + +If you want to work locally using Visual Studio Code on your own device, we recommend using the *DevContainer* that's part of this repo. The DevContainer is prepared with all of the components needed to complete this lab. + +You'll need **Docker Desktop**, **Visual Studio Code** and the **Remote - Containers** extension installed to use a DevContainer + +* Install [Docker](https://www.docker.com/products/docker-desktop) +* Install [Visual Studio Code](https://code.visualstudio.com/) +* Install [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension + +With those installed, follow these steps to prepare and start the DevContainer + +* Clone this repository +* Open the repository in Visual Studio Code +* Click on the green button in the bottom left corner of the window +* Select `Reopen in Container` +* Wait for the container to be built and started + +#### Start from Scratch + +If you really want to, you can start from scratch, but there will be a few components you'll need to find and install! To start from scratch, you can either use a clean, new repo with Codespaces in GitHub, or you can work locally. + +The pre-requisites for a "from scratch" setup are + +- GitHub Codespaces or Visual Studio Code +- Dotnet 6 +- Visual Studio Code extension for Semantic Kern + +--- + +## Let's go! + +You should have a working environment with Codespaces or Visual Studio Code ready to go now. So, let's go ahead and create our first Semantic Kernel application. + +### Create the Azure Function application + +- Open the Visual Studio Code command palette and look for `Semantic Kernel: Create Project' +- Choose the **C# Azure Functions** option +- Choose a location for the application to be created in. A new folder will be automatically created at this location. + +### Explore the application + +Before we start the application, let's take at what's been created. + +Examine the `config` folder. Here you will find various files used to setup the application to work with the Azure Open AI or Open AI services. This includes an `appconfig.json` file which we'll need to configure appropriately later. + +Examine the `skills` folder. Here you will find plug-ins that are used to interact with Open AI services in different ways. + +Explore the contents of the `Excuses` folder which you'll find under `skills/FunSkill`. What do you see? + +### Test the Azure Function application + +Before we can successfully start the Functions application, we need to provide some configuration details. + +Go to the `config` folder we explored earlier and create the appropriate configuration to point to the Azure OpenAI Service that you're using. When the application was created, a `README.md` file was created which will help you understand what values you need to provide. + +Once you've setup the configuration correctly, follow the instructions in the `README.md` file to build and run the Azure Function application. + +When the Function Application starts, the console will display the URL that can be used to access the application. Make a note of this URL as you will need it later. + +
    + :white_check_mark: Sample URL + + http://localhost:7071/api/skills/{skillName}/functions/{functionName} + +
    + +You can now invoke the "Excuses" function under the "FunSkill" skill using a tool like `curl` or Postman. + +
    + :white_check_mark: Example payload and `curl` command + + [Sample payload](payload-excuses.json) + + **payload-excuses.json** + ```json + { + "variables": [ + { + "key": "input", + "value": "Homework." + } + ] + } + ``` + + Sample `curl` command + + ``` + curl -X POST "http://localhost:7071/api/skills/FunSkill/functions/Excuses/" -d @payload-excuses.json + ``` + +
    + +## Add Custom Semantic Skill + +Now that you have seen it in action, let's add a custom semantic skill. Use one of the prompts from the earlier exercise or feel free to use your own. The prompt should have at least one variable, {{$input}}, to help demonstrate how to make a prompt dynamic versus just being static. + +1. Add a new skill directory along with function directory in the "skills" folder. +2. Add "config.json" and "skprompt.txt" files to the function directory, be sure to use your own **prompt** and configuration. +3. Restart your function so the new skill will be loaded. +4. Invoke the "YOUR_NEWLY_CREATED_FUNCTION" function under the "YOUR_NEW_SKILL" skill using curl or postman. + +Assuming all the above executes correctly, you have now turned your OpenAI prompt into a rest-based API that can be leveraged across the Enterprise. Yay! diff --git a/labs/04-deploy-ai/01-azure-functions/payload-excuses.json b/labs/04-deploy-ai/01-azure-functions/payload-excuses.json new file mode 100644 index 0000000..b0b7728 --- /dev/null +++ b/labs/04-deploy-ai/01-azure-functions/payload-excuses.json @@ -0,0 +1,8 @@ +{ + "variables": [ + { + "key": "input", + "value": "Homework." + } + ] +} \ No newline at end of file diff --git a/labs/04-deploy-ai/README.md b/labs/04-deploy-ai/README.md new file mode 100644 index 0000000..0f18f02 --- /dev/null +++ b/labs/04-deploy-ai/README.md @@ -0,0 +1,5 @@ +# Deploying AI + +Coming soon. + +1. [Azure Functions](01-azure-functions/README.md) diff --git a/labs/requirements.txt b/labs/requirements.txt new file mode 100644 index 0000000..47297d5 --- /dev/null +++ b/labs/requirements.txt @@ -0,0 +1,3 @@ +openai +tiktoken +langchain \ No newline at end of file diff --git a/presentations/README.md b/presentations/README.md new file mode 100644 index 0000000..1cebe2d --- /dev/null +++ b/presentations/README.md @@ -0,0 +1,6 @@ +# Presentations + +Coming soon. + +1. Intro to Azure OpenAI, Prompt Engineering + * [Accompanying Demos](prompts-demos.md) diff --git a/presentations/prompts-demos.md b/presentations/prompts-demos.md new file mode 100644 index 0000000..3fc7bca --- /dev/null +++ b/presentations/prompts-demos.md @@ -0,0 +1,135 @@ +# Prompts + +In this document you will find demos for the "Intro to Azure OpenAI, Prompt Engineering & Demos" morning session. The demos are aimed at showing how certain prompts can be made better by following recommended prompt engineering practices. + +**All of these demos can be done using Azure AI Studio.** + +## :muscle: Demo 1 - Separate instruction and context + +* Good: + +```text +Summarize the text below as a bullet point list of the most important points. + +We’re happy to announce that OpenAI and Microsoft are extending our partnership. This multi-year, multi-billion dollar investment from Microsoft follows their previous investments in 2019 and 2021, and will allow us to continue our independent research and develop AI that is increasingly safe, useful, and powerful. + +In pursuit of our mission to ensure advanced AI benefits all of humanity, OpenAI remains a capped-profit company and is governed by the OpenAI non-profit. This structure allows us to raise the capital we need to fulfill our mission without sacrificing our core beliefs about broadly sharing benefits and the need to prioritize safety. Microsoft shares this vision and our values, and our partnership is instrumental to our progress. +``` + +* Better: + +```text +Summarize the text below as a bullet point list of the most important points. + +""" +We’re happy to announce that OpenAI and Microsoft are extending our partnership. This multi-year, multi-billion dollar investment from Microsoft follows their previous investments in 2019 and 2021, and will allow us to continue our independent research and develop AI that is increasingly safe, useful, and powerful. + +In pursuit of our mission to ensure advanced AI benefits all of humanity, OpenAI remains a capped-profit company and is governed by the OpenAI non-profit. This structure allows us to raise the capital we need to fulfill our mission without sacrificing our core beliefs about broadly sharing benefits and the need to prioritize safety. Microsoft shares this vision and our values, and our partnership is instrumental to our progress. +""" +``` + +## :muscle: Demo 2 - Be specific, descriptive and as detailed as possible + +* Good: + +```text +Write a poem about OpenAI. +``` + +* Better: + +```text +Write a short inspiring poem about OpenAI, focusing on the recent DALL-E product launch in the style of Ernest Hemingway. +``` + +## :muscle: Demo 3 - Articulate the desired output format through examples + +* Good: + +```text +Extract the company names then years in the following text below and output start index and end index of each entity. Generate output as {"text": "OpenAI", "start": 28, "end": 34} + +### +We’re happy to announce that OpenAI and Microsoft are extending our partnership. This multi-year, multi-billion dollar investment from Microsoft follows their previous investments in 2019 and 2021, and will allow us to continue our independent research and develop AI that is increasingly safe, useful, and powerful. + + +### +``` + +* Better: + +```text +Extract the entities mentioned in the text below. Extract the important entities mentioned in the text below. First extract all company names, then extract all years, then extract specific topics which fit the content and finally extract general overarching themes. + +Desired format: +Company names: +Years: -||- +Specific topics: -||- +General themes: -||- + +""" +We’re happy to announce that OpenAI and Microsoft are extending our partnership. This multi-year, multi-billion dollar investment from Microsoft follows their previous investments in 2019 and 2021, and will allow us to continue our independent research and develop AI that is increasingly safe, useful, and powerful. + + +""" +``` + +## :muscle: Demo 4 - Reduce fluffy and imprecise descriptions + +* Good: + +```text +Write a description for a new product. This product is a new generation of car seat. The description for this product should be fairly short, a few sentences only, and not too much more. +``` + +* Better: + +```text +Write a description for a new product. This product is a new generation of car seat. Use a 3 to 5 sentence paragraph to describe this product. +``` + +## :muscle: Demo 5 - Instead of just saying what not to do, say what to do instead + +* Good: + +```text +The following is a conversation between an Agent and a Customer. DO NOT ASK USERNAME OR PASSWORD. DO NOT REPEAT. + +Customer: I can’t log in to my account. +Agent: +``` + +* Better: + +```text +The following is a conversation between an Agent and a Customer. The agent will attempt to diagnose the problem and suggest a solution, whilst refraining from asking any questions related to PII. Instead of asking for PII, such as username or password, refer the user to the help article www.samplewebsite.com/help/faq + +Customer: I can’t log in to my account. +Agent: +``` + +## :muscle: Demo 6 - Start with zero-shot, then few-shot (example), neither of them worked, then fine-tune + +* Good: + +```text +Extract keywords from the below text. Text: +We’re happy to announce that OpenAI and Microsoft are extending our partnership. This multi-year, multi-billion dollar investment from Microsoft follows their previous investments in 2019 and 2021, and will allow us to continue our independent research and develop AI that is increasingly safe, useful, and powerful. + +Keywords: +``` + +* Better: + +```text +Extract keywords from the corresponding texts below. + +Text 1: Stripe provides APIs that web developers can use to integrate payment processing into their websites and mobile applications. +Keywords 1: Stripe, payment processing, APIs, web developers, websites, mobile applications +## +Text 2: OpenAI has trained cutting-edge language models that are very good at understanding and generating text. Our API provides access to these models and can be used to solve virtually any task that involves processing language. +Keywords 2: OpenAI, language models, text processing, API. +## +Text 3: We’re happy to announce that OpenAI and Microsoft are extending our partnership. This multi-year, multi-billion dollar investment from Microsoft follows their previous investments in 2019 and 2021, and will allow us to continue our independent research and develop AI that is increasingly safe, useful, and powerful. +Keywords 3: +``` \ No newline at end of file