From f148ac5719d04455a895b251ae78ae5fca4ba733 Mon Sep 17 00:00:00 2001 From: Eduard van Valkenburg Date: Mon, 29 Jul 2024 13:23:14 +0000 Subject: [PATCH 001/275] bunch of small updates and fixes --- semantic-kernel/concepts/agents.md | 49 ++++++++----------- .../chat-completion/chat-history.md | 5 +- .../chat-completion/function-calling.md | 7 +-- .../ai-services/chat-completion/index.md | 6 +-- .../concepts/plugins/adding-native-plugins.md | 18 +++---- semantic-kernel/concepts/plugins/index.md | 41 ++++++---------- .../get-started/quick-start-guide.md | 18 +++---- .../get-started/supported-languages.md | 6 +++ 8 files changed, 61 insertions(+), 89 deletions(-) diff --git a/semantic-kernel/concepts/agents.md b/semantic-kernel/concepts/agents.md index b699400f..07bc1c50 100644 --- a/semantic-kernel/concepts/agents.md +++ b/semantic-kernel/concepts/agents.md @@ -160,6 +160,7 @@ import asyncio import logging from semantic_kernel import Kernel +from semantic_kernel.utils.logging import setup_logging from semantic_kernel.functions import kernel_function from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion from semantic_kernel.connectors.ai.function_call_behavior import FunctionCallBehavior @@ -176,18 +177,16 @@ async def main(): kernel = Kernel() # Add Azure OpenAI chat completion - kernel.add_service(AzureChatCompletion( + chat_completion = AzureChatCompletion( deployment_name="your_models_deployment_name", api_key="your_api_key", base_url="your_base_url", - )) - - # Set the logging level for semantic_kernel.kernel to DEBUG. - logging.basicConfig( - format="[%(asctime)s - %(name)s:%(lineno)d - %(levelname)s] %(message)s", - datefmt="%Y-%m-%d %H:%M:%S", ) - logging.getLogger("kernel").setLevel(logging.DEBUG) + kernel.add_service(chat_completion) + + # Set the logging level for semantic_kernel.kernel to DEBUG. + setup_logging() + logging.setLevel(logging.DEBUG) # Add a plugin (the EmailPlugin class is defined above) kernel.add_plugin( @@ -195,22 +194,19 @@ async def main(): plugin_name="Email", ) - chat_completion : AzureChatCompletion = kernel.get_service(type=ChatCompletionClientBase) - # Enable planning - execution_settings = AzureChatPromptExecutionSettings(tool_choice="auto") + execution_settings = AzureChatPromptExecutionSettings() execution_settings.function_call_behavior = FunctionCallBehavior.EnableFunctions(auto_invoke=True, filters={}) # Create a history of the conversation history = ChatHistory() history.add_user_message("Can you help me write an email for my boss?") - result = (await chat_completion.get_chat_message_contents( + result = await chat_completion.get_chat_message_content( chat_history=history, settings=execution_settings, - kernel=kernel, - arguments=KernelArguments(), - ))[0] + kernel=kernel + ) print(result) # Run the main function @@ -269,12 +265,11 @@ history = ChatHistory(system_message=""" history.add_user_message("Can you help me write an email for my boss?") # Get the response from the AI -result = (await chat_completion.get_chat_message_contents( +result = await chat_completion.get_chat_message_content( chat_history=history, settings=execution_settings, - kernel=kernel, - arguments=KernelArguments(), -))[0] + kernel=kernel +) ``` ::: zone-end @@ -364,11 +359,12 @@ async def main(): kernel = Kernel() # Add Azure OpenAI chat completion - kernel.add_service(AzureChatCompletion( + chat_completion = AzureChatCompletion( deployment_name="your_models_deployment_name", api_key="your_api_key", base_url="your_base_url", - )) + ) + kernel.add_service(chat_completion) # Add a plugin (the EmailPlugin class is defined above) kernel.add_plugin( @@ -376,8 +372,6 @@ async def main(): plugin_name="Email", ) - chat_completion : AzureChatCompletion = kernel.get_service(type=ChatCompletionClientBase) - # Enable planning execution_settings = AzureChatPromptExecutionSettings(tool_choice="auto") execution_settings.function_call_behavior = FunctionCallBehavior.EnableFunctions(auto_invoke=True, filters={}) @@ -392,16 +386,15 @@ async def main(): history.add_user_message(user_input) # Get the response from the AI - result = (await chat_completion.get_chat_message_contents( + result = await chat_completion.get_chat_message_content( chat_history=history, settings=execution_settings, - kernel=kernel, - arguments=KernelArguments(), - ))[0] + kernel=kernel + ) # Print the response print("Assistant > " + str(result)) - history.add_assistant_message(str(result)) + history.add_message(result) # Run the main function if __name__ == "__main__": diff --git a/semantic-kernel/concepts/ai-services/chat-completion/chat-history.md b/semantic-kernel/concepts/ai-services/chat-completion/chat-history.md index 04bc9c51..95f4c744 100644 --- a/semantic-kernel/concepts/ai-services/chat-completion/chat-history.md +++ b/semantic-kernel/concepts/ai-services/chat-completion/chat-history.md @@ -373,12 +373,11 @@ chat_history = ChatHistory([ current_chat_history_length = len(chat_history) # Get the chat message content -results = (await chat_completion.get_chat_message_contents( +results = await chat_completion.get_chat_message_content( chat_history=history, settings=execution_settings, kernel=kernel, - arguments=KernelArguments(), -))[0] +) # Get the new messages added to the chat history object for i in range(current_chat_history_length, len(chat_history)): diff --git a/semantic-kernel/concepts/ai-services/chat-completion/function-calling.md b/semantic-kernel/concepts/ai-services/chat-completion/function-calling.md index cdf88a04..43773b02 100644 --- a/semantic-kernel/concepts/ai-services/chat-completion/function-calling.md +++ b/semantic-kernel/concepts/ai-services/chat-completion/function-calling.md @@ -141,12 +141,11 @@ class OrderPizzaPlugin: self.user_context = user_context self.payment_service = payment_service - @kernel_function(name="get_pizza_menu") + @kernel_function async def get_pizza_menu(self): return await self.pizza_service.get_menu() @kernel_function( - name="add_pizza_to_cart", description="Add a pizza to the user's cart; returns the new item and updated cart" ) async def add_pizza_to_cart(self, size: PizzaSize, toppings: List[PizzaToppings], quantity: int = 1, special_instructions: str = ""): @@ -154,7 +153,6 @@ class OrderPizzaPlugin: return await self.pizza_service.add_pizza_to_cart(cart_id, size, toppings, quantity, special_instructions) @kernel_function( - name="remove_pizza_from_cart", description="Remove a pizza from the user's cart; returns the updated cart" ) async def remove_pizza_from_cart(self, pizza_id: int): @@ -162,7 +160,6 @@ class OrderPizzaPlugin: return await self.pizza_service.remove_pizza_from_cart(cart_id, pizza_id) @kernel_function( - name="get_pizza_from_cart", description="Returns the specific details of a pizza in the user's cart; use this instead of relying on previous messages since the cart may have changed since then." ) async def get_pizza_from_cart(self, pizza_id: int): @@ -170,7 +167,6 @@ class OrderPizzaPlugin: return await self.pizza_service.get_pizza_from_cart(cart_id, pizza_id) @kernel_function( - name="get_cart", description="Returns the user's current cart, including the total price and items in the cart." ) async def get_cart(self): @@ -178,7 +174,6 @@ class OrderPizzaPlugin: return await self.pizza_service.get_cart(cart_id) @kernel_function( - name="checkout", description="Checkouts the user's cart; this function will retrieve the payment from the user and complete the order." ) async def checkout(self): diff --git a/semantic-kernel/concepts/ai-services/chat-completion/index.md b/semantic-kernel/concepts/ai-services/chat-completion/index.md index 8cd73862..cef35cd1 100644 --- a/semantic-kernel/concepts/ai-services/chat-completion/index.md +++ b/semantic-kernel/concepts/ai-services/chat-completion/index.md @@ -658,10 +658,10 @@ var response = await chatCompletionService.GetChatMessageContentAsync( chat_history = ChatHistory() chat_history.add_user_message("Hello, how are you?") -response = (await chat_completion.get_chat_message_contents( +response = await chat_completion.get_chat_message_content( chat_history=history, kernel=kernel, -))[0] +) ``` ::: zone-end @@ -708,7 +708,7 @@ await foreach (var chunk in response) chat_history = ChatHistory() chat_history.add_user_message("Hello, how are you?") -response = chat_completion.get_streaming_chat_message_contents( +response = chat_completion.get_streaming_chat_message_content( chat_history=history, kernel=kernel, ) diff --git a/semantic-kernel/concepts/plugins/adding-native-plugins.md b/semantic-kernel/concepts/plugins/adding-native-plugins.md index b3dd5a92..246837ec 100644 --- a/semantic-kernel/concepts/plugins/adding-native-plugins.md +++ b/semantic-kernel/concepts/plugins/adding-native-plugins.md @@ -84,18 +84,12 @@ class LightsPlugin: def __init__(self, lights: List[LightModel]): self._lights = lights - @kernel_function( - name="get_lights", - description="Gets a list of lights and their current state", - ) + @kernel_function async def get_lights(self) -> Annotated[List[LightModel], "An array of lights"]: """Gets a list of lights and their current state.""" return self._lights - @kernel_function( - name="change_state", - description="Changes the state of the light", - ) + @kernel_function async def change_state( self, change_state: LightModel @@ -157,14 +151,14 @@ public enum Brightness ::: zone pivot="programming-language-python" ```python -from typing import TypedDict, Optional +from typing import TypedDict class LightModel(TypedDict): id: int name: str - is_on: Optional[bool] - brightness: Optional[int] - hex: Optional[str] + is_on: bool | None + brightness: int | None + hex: str | None ``` ::: zone-end diff --git a/semantic-kernel/concepts/plugins/index.md b/semantic-kernel/concepts/plugins/index.md index b32ccfc7..2b247e62 100644 --- a/semantic-kernel/concepts/plugins/index.md +++ b/semantic-kernel/concepts/plugins/index.md @@ -159,48 +159,39 @@ public class LightModel ::: zone pivot="programming-language-python" ```python -from typing import List, Optional, TypedDict, Annotated +from typing import TypedDict, Annotated class LightModel(TypedDict): id: int name: str - is_on: Optional[bool] - brightness: Optional[int] - hex: Optional[str] + is_on: bool | None + brightness: int | None + hex: str | None class LightsPlugin: - lights: List[LightModel] = [ + lights: list[LightModel] = [ {"id": 1, "name": "Table Lamp", "is_on": False, "brightness": 100, "hex": "FF0000"}, {"id": 2, "name": "Porch light", "is_on": False, "brightness": 50, "hex": "00FF00"}, {"id": 3, "name": "Chandelier", "is_on": True, "brightness": 75, "hex": "0000FF"}, ] - @kernel_function( - name="get_lights", - description="Gets a list of lights and their current state", - ) - async def get_lights(self) -> Annotated[List[LightModel], "An array of lights"]: + @kernel_function + async def get_lights(self) -> Annotated[list[LightModel], "An array of lights"]: """Gets a list of lights and their current state.""" return self.lights - @kernel_function( - name="get_state", - description="Gets the state of a particular light", - ) + @kernel_function async def get_state( self, id: Annotated[int, "The ID of the light"] - ) -> Annotated[Optional[LightModel], "The state of the light"]: + ) -> Annotated[LightModel | None], "The state of the light"]: """Gets the state of a particular light.""" for light in self.lights: if light["id"] == id: return light return None - @kernel_function( - name="change_state", - description="Changes the state of the light", - ) + @kernel_function async def change_state( self, id: Annotated[int, "The ID of the light"], @@ -326,11 +317,12 @@ async def main(): kernel = Kernel() # Add Azure OpenAI chat completion - kernel.add_service(AzureChatCompletion( + chat_completion = AzureChatCompletion( deployment_name="your_models_deployment_name", api_key="your_api_key", base_url="your_base_url", - )) + ) + kernel.add_service(chat_completion) # Add a plugin (the LightsPlugin class is defined below) kernel.add_plugin( @@ -338,8 +330,6 @@ async def main(): plugin_name="Lights", ) - chat_completion : AzureChatCompletion = kernel.get_service(type=ChatCompletionClientBase) - # Enable planning execution_settings = AzureChatPromptExecutionSettings(tool_choice="auto") execution_settings.function_call_behavior = FunctionCallBehavior.EnableFunctions(auto_invoke=True, filters={}) @@ -349,12 +339,11 @@ async def main(): history.add_message("Please turn on the lamp") # Get the response from the AI - result = (await chat_completion.get_chat_message_contents( + result = await chat_completion.get_chat_message_content( chat_history=history, settings=execution_settings, kernel=kernel, - arguments=KernelArguments(), - ))[0] + ) # Print the results print("Assistant > " + str(result)) diff --git a/semantic-kernel/get-started/quick-start-guide.md b/semantic-kernel/get-started/quick-start-guide.md index 4dc7b5fe..fac1069f 100644 --- a/semantic-kernel/get-started/quick-start-guide.md +++ b/semantic-kernel/get-started/quick-start-guide.md @@ -166,6 +166,7 @@ do { import asyncio from semantic_kernel import Kernel +from semantic_kernel.utils.logging import setup_logging from semantic_kernel.functions import kernel_function from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion from semantic_kernel.connectors.ai.function_call_behavior import FunctionCallBehavior @@ -182,17 +183,15 @@ async def main(): kernel = Kernel() # Add Azure OpenAI chat completion - kernel.add_service(AzureChatCompletion( + chat_completion = AzureChatCompletion( deployment_name="your_models_deployment_name", api_key="your_api_key", base_url="your_base_url", - )) + ) + kernel.add_service(chat_completion) # Set the logging level for semantic_kernel.kernel to DEBUG. - logging.basicConfig( - format="[%(asctime)s - %(name)s:%(lineno)d - %(levelname)s] %(message)s", - datefmt="%Y-%m-%d %H:%M:%S", - ) + setup_logging() logging.getLogger("kernel").setLevel(logging.DEBUG) # Add a plugin (the LightsPlugin class is defined below) @@ -201,8 +200,6 @@ async def main(): plugin_name="Lights", ) - chat_completion : AzureChatCompletion = kernel.get_service(type=ChatCompletionClientBase) - # Enable planning execution_settings = AzureChatPromptExecutionSettings(tool_choice="auto") execution_settings.function_call_behavior = FunctionCallBehavior.EnableFunctions(auto_invoke=True, filters={}) @@ -224,12 +221,11 @@ async def main(): history.add_user_message(userInput) # Get the response from the AI - result = (await chat_completion.get_chat_message_contents( + result = await chat_completion.get_chat_message_content( chat_history=history, settings=execution_settings, kernel=kernel, - arguments=KernelArguments(), - ))[0] + ) # Print the results print("Assistant > " + str(result)) diff --git a/semantic-kernel/get-started/supported-languages.md b/semantic-kernel/get-started/supported-languages.md index d8f5f1a1..48b065d3 100644 --- a/semantic-kernel/get-started/supported-languages.md +++ b/semantic-kernel/get-started/supported-languages.md @@ -56,6 +56,12 @@ In Python, there's a single package that includes everything you need to get sta pip install semantic-kernel ``` +On [PyPI](https://pypi.org/project/semantic-kernel/) under `Provides-Extra` the additional extras you can install are also listed and when used that will install the packages needed for using SK with that specific connector or service, you can install those with the square bracket syntax for instance: +```bash +pip install semantic-kernel[azure] +``` +This will install Semantic Kernel, as well as specific tested versions of: `azure-ai-inference`, `azure-search-documents`, `azure-core`, `azure-identity`, `azure-cosmos` and `msgraph-sdk` (and any dependencies of those packages). Similarly the extra `hugging_face` will install `transformers` and `sentence-transformers`. + ### Java packages For Java, Semantic Kernel has the following packages; all are under the group Id `com.microsoft.semantic-kernel`, and can be imported From a0d73d68846ec7029aefec50da038fd044ce9d85 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Wed, 7 Aug 2024 14:57:39 +0100 Subject: [PATCH 002/275] Add docs skeleton and core docs --- semantic-kernel/TOC.yml | 2 + semantic-kernel/concepts/TOC.yml | 4 +- .../concepts/vector-store-connectors/TOC.yml | 10 ++ .../data-architecture.md | 17 +++ .../defining-your-data-model.md | 72 +++++++++++ .../concepts/vector-store-connectors/index.md | 121 ++++++++++++++++++ .../out-of-the-box-connectors/TOC.yml | 12 ++ .../azure-ai-search-connector.md | 25 ++++ .../out-of-the-box-connectors/index.md | 13 ++ .../pinecone-connector.md | 1 + .../qdrant-connector.md | 1 + .../redis-connector.md | 1 + .../volatile-connector.md | 1 + .../schema-with-record-definition.md | 98 ++++++++++++++ semantic-kernel/how-to/TOC.yml | 2 + .../how-to/vector-store-connectors/TOC.yml | 4 + .../vector-store-custom-mapper.md | 1 + .../vector-store-data-ingestion.md | 1 + 18 files changed, 385 insertions(+), 1 deletion(-) create mode 100644 semantic-kernel/concepts/vector-store-connectors/TOC.yml create mode 100644 semantic-kernel/concepts/vector-store-connectors/data-architecture.md create mode 100644 semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md create mode 100644 semantic-kernel/concepts/vector-store-connectors/index.md create mode 100644 semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/TOC.yml create mode 100644 semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md create mode 100644 semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md create mode 100644 semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md create mode 100644 semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md create mode 100644 semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md create mode 100644 semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md create mode 100644 semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md create mode 100644 semantic-kernel/how-to/TOC.yml create mode 100644 semantic-kernel/how-to/vector-store-connectors/TOC.yml create mode 100644 semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md create mode 100644 semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md diff --git a/semantic-kernel/TOC.yml b/semantic-kernel/TOC.yml index 2fe11148..112d7687 100644 --- a/semantic-kernel/TOC.yml +++ b/semantic-kernel/TOC.yml @@ -6,6 +6,8 @@ - name: Concepts href: concepts/TOC.yml expanded: true +- name: How to + href: how-to/TOC.yml - name: Integrations href: integrations/index.md - name: Getting Support diff --git a/semantic-kernel/concepts/TOC.yml b/semantic-kernel/concepts/TOC.yml index 73d24ce8..96c40426 100644 --- a/semantic-kernel/concepts/TOC.yml +++ b/semantic-kernel/concepts/TOC.yml @@ -9,4 +9,6 @@ - name: Planning href: planning.md - name: Personas - href: personas.md \ No newline at end of file + href: personas.md +- name: Vector Store connectors (Experimental) + href: vector-store-connectors/TOC.yml \ No newline at end of file diff --git a/semantic-kernel/concepts/vector-store-connectors/TOC.yml b/semantic-kernel/concepts/vector-store-connectors/TOC.yml new file mode 100644 index 00000000..ae89c55b --- /dev/null +++ b/semantic-kernel/concepts/vector-store-connectors/TOC.yml @@ -0,0 +1,10 @@ +- name: Overview + href: index.md +- name: Data architecture + href: data-architecture.md +- name: Defining your data model + href: defining-your-data-model.md +- name: Defining your storage schema using a record definition + href: schema-with-record-definition.md +- name: Out-of-the-box connectors + href: out-of-the-box-connectors/TOC.yml diff --git a/semantic-kernel/concepts/vector-store-connectors/data-architecture.md b/semantic-kernel/concepts/vector-store-connectors/data-architecture.md new file mode 100644 index 00000000..e38549c1 --- /dev/null +++ b/semantic-kernel/concepts/vector-store-connectors/data-architecture.md @@ -0,0 +1,17 @@ +# The Semantic Kernel Vector Store data architecture (Experimental) + +Vector Store abstractions in Semantic Kernel are based on three main components: vector stores, collections and records. +Records are contained by collections, and collections are contained by vector stores. + +- A vector store maps to an instance of a database +- A collection is a collection of records including any index required to query or filter those records +- A record is an individual data entry in the database + +## Collections in different databases + +The underlying implementation of what a collection is, will vary by connector and is influenced by how each database groups and indexes records. +Most databases have a concept of a collection of records and there is a natural mapping between this concept and the Vector Store abstraction collection. +Note that this concept may not always be referred to as a `collection` in the underlying database. + +> [!TIP] +> For more information on what the underlying implementation of a collection is per connector, refer to [the documentation for each connector](./out-of-the-box-connectors.md). diff --git a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md new file mode 100644 index 00000000..59e6793a --- /dev/null +++ b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md @@ -0,0 +1,72 @@ +# Defining your data model (Experimental) + +## Overview + +The Semantic Kernel Vector Store connectors use a model first approach to interacting with databases. + +::: zone pivot="programming-language-csharp" +All methods to upsert or get records use strongly typed model classes. +The properties on these classes are decorated with attributes that indicate the pupose of each property. + +> [!TIP] +> For an alternative to using attributes, refer to [definining your schema with a record definition](./schema-with-record-definition.md). + +## Attributes + +### VectorStoreRecordKeyAttribute + +Use this attribute to incidate that your property is the key of the record. + +```csharp +[VectorStoreRecordKey] +public ulong HotelId { get; set; } +``` + +#### VectorStoreRecordKeyAttribute parameters + +| Parameter | Required | Description | +|---------------------------|:--------:|------------------------------------------------------------------------------------------------------------------------------------------| +| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors. | + +### VectorStoreRecordDataAttribute + +Use this attribute to incidate that your property contains general data that is not a key or a vector. + +```csharp +[VectorStoreRecordData(IsFilterable = true)] +public string HotelName { get; set; } +``` + +#### VectorStoreRecordDataAttribute parameters + +| Parameter | Required | Description | +|---------------------------|:--------:|------------------------------------------------------------------------------------------------------------------------------------------| +| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors. | +| IsFilterable | No | Indicates whether the property should be indexed for filtering in cases where a database requires opting in to indexing per property. Default is false. | +| IsFullTextSearchable | No | Indicates whether the property should be indexed for full text search for databases that support full text search. Default is false. | + +### VectorStoreRecordVectorAttribute + +Use this attribute to incidate that your property contains a vector. + +```csharp +[VectorStoreRecordVector(4, IndexKind.Hnsw, DistanceFunction.CosineDistance)] +public ReadOnlyMemory? DescriptionEmbedding { get; set; } +``` + +#### VectorStoreRecordVectorAttribute parameters + +| Parameter | Required | Description | +|---------------------------|:--------:|------------------------------------------------------------------------------------------------------------------------------------------| +| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors. | +| Dimensions | Yes for collection create, optional otherwise | The number of dimensions that the vector has. This is typically required when creating a vector index for a collection. | +| IndexKind | No | The type of index to index the vector with. Default varies by vector store type. | +| DistanceFunction | No | The type of distance function to use when doing vector comparison during vector search over this vector. Default varies by vector store type. | + +Common index kinds and distance function types are supplied as static values on the `Microsoft.SemanticKernel.Data.IndexKind` and `Microsoft.SemanticKernel.Data.DistanceFunction` classes. +Individual Vector Store implementations may also use their own index kinds and distance functions, where the database supports unusual types. + +::: zone-end + +::: zone pivot="programming-language-python" +::: zone-end diff --git a/semantic-kernel/concepts/vector-store-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/index.md new file mode 100644 index 00000000..ba6cdeaf --- /dev/null +++ b/semantic-kernel/concepts/vector-store-connectors/index.md @@ -0,0 +1,121 @@ +# What are Semantic Kernel Vector Store connectors? (Experimental) + +Vector databases have many use cases across different domains and applications that involve natural language processing (NLP), computer vision (CV), recommendation systems (RS), and other areas that require semantic understanding and matching of data. + +One use case for storing information in a vector database is to enable large language models (LLMs) to generate more relevant and coherent text. Large language models often face challenges such as generating inaccurate or irrelevant information; lacking factual consistency or common sense; repeating or contradicting themselves; being biased or offensive. To help overcome these challenges, you can use a vector database to store information about different topics, keywords, facts, opinions, and/or sources related to your desired domain or genre. The vector database allows you to efficiently find the subset of information related to a specific question or topic. You can then pass information from the vector database with your AI plugin to your large language model to generate more informative and engaging content that matches your intent and style. + +For example, if you want to write a blog post about the latest trends in AI, you can use a vector database to store the latest information about that topic and pass the information along with the ask to a LLM in order to generate a blog post that leverages the latest information. + +Semantic Kernel provides an abstraction for interacting with Vector Stores and a list of out-of-the-box connectors that implement these abstractions. Features include creating, listing and deleting collections of records, and uploading, retrieving and deleting records. The abstraction makes it easy to experiment with a free or locally hosted Vector Store and then switch to a service when needing to scale up. + +## Getting started with Vector Store connectors + +### Define your data model + +The Semantic Kernel Vector Store connectors use a model first approach to interacting with databases. This means that the first step is to define a data model that maps to the storage schema. To help the connectors create collections of records and map to the storage schema, the model can be annotated to indicate the function of each property. + +::: zone pivot="programming-language-csharp" + +```csharp +using Microsoft.SemanticKernel; + +public class Hotel +{ + [VectorStoreRecordKey] + public ulong HotelId { get; set; } + + [VectorStoreRecordData(IsFilterable = true)] + public string HotelName { get; set; } + + [VectorStoreRecordData(IsFullTextSearchable = true)] + public string Description { get; set; } + + [VectorStoreRecordVector(4, IndexKind.Hnsw, DistanceFunction.CosineDistance)] + public ReadOnlyMemory? DescriptionEmbedding { get; set; } + + [VectorStoreRecordData(IsFilterable = true)] + public string[] Tags { get; set; } +} +``` + +::: zone-end + +::: zone pivot="programming-language-python" + +```python +``` + +::: zone-end + +> [!TIP] +> For more information on how to annotate your data model, refer to [definining your data model](./defining-your-data-model.md). +> [!TIP] +> For an alternative to annotating your data model, refer to [definining your schema with a record definition](./schema-with-record-definition.md). + +### Connect to your database and select a collection + +Once you have defined your data model, the next step is to create a VectorStore instance for the database of your choice and select a collection of records. + +::: zone pivot="programming-language-csharp" + +Since databases support many different types of keys and records, we allow you to specify the type of the key and record for your collection using generics. +In our case, the type of record will be the `Hotel` class we already defined, and the type of key will be `ulong`, since the `HotelId` property is a `ulong` and Qdrant only supports `Guid` or `ulong` keys. + +```csharp +using Microsoft.SemanticKernel.Connectors.Qdrant; + +// Create a Qdrant VectorStore object +var vectorStore = new QdrantVectorStore(new QdrantClient("localhost")); + +// Choose a collection from the database and specify the type of key and record stored in it via Generic parameters. +var collection = vectorStore.GetCollection("skglossary"); +``` + +::: zone-end + +::: zone pivot="programming-language-python" + +```python +``` + +::: zone-end + +> [!TIP] +> For more information on what key and field types each Vector Store connector supports, refer to [the documentation for each connector](./out-of-the-box-connectors.md). + +### Create the collection and add records + +::: zone pivot="programming-language-csharp" + +```csharp +// Create the collection if it doesn't exist yet. +await collection.CreateCollectionIfNotExistsAsync(); + +// Upsert a record. +var descriptionText = "A place where everyone can be happy."; +await collection.UpsertAsync(new Hotel +{ + HotelId = 1, + HotelName = "Hotel Happy", + Description = descriptionText, + DescriptionEmbedding = await GenerateEmbeddingAsync(descriptionText), + Tags = new[] { "luxury", "pool" } +}); + +// Retrieve the upserted record. +var retrievedHotel = await collection.GetAsync(1); +``` + +::: zone-end + +::: zone pivot="programming-language-python" + +```python +``` + +::: zone-end + +## Next steps + +> [!div class="nextstepaction"] +> [Learn about the Vector Store data architecture](./data-architecture.md) diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/TOC.yml b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/TOC.yml new file mode 100644 index 00000000..0478f121 --- /dev/null +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/TOC.yml @@ -0,0 +1,12 @@ +- name: Overview + href: index.md +- name: Azure AI Search connector + href: azure-ai-search-connector.md +- name: Qdrant connector + href: qdrant-connector.md +- name: Redis connector + href: redis-connector.md +- name: Pinecone connector + href: pinecone-connector.md +- name: Volatile (in-memory) connector + href: volatile-connector.md diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md new file mode 100644 index 00000000..ce273279 --- /dev/null +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md @@ -0,0 +1,25 @@ +# Using the Azure AI Search Vector Store connector (Experimental) + +## Overview + + + +## Getting Started + + + +## Vector Store Options + + + +### Collection Factory + +## Vector Store Record Collection Options + + + +### Custom Json Serializer Options + +## Data Mapping + + \ No newline at end of file diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md new file mode 100644 index 00000000..83b18935 --- /dev/null +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md @@ -0,0 +1,13 @@ +# Out-of-the-box Vector Store connectors (Experimental) + +Semantic Kernel provides a number of out-of-the-box Vector Store integrations making it easy to get started with using Vector Stores. It also allows you to experiment with a free or locally hosted Vector Store and then easily switch to a service when scale requires it. + +## List of out-of-the-box connectors + +| Vector Store Connectors | C# | Python | Java | Using officially supported SDK | +|-----------------------------------------------------|:----:|:------:|:----:|:------------------------------:| +| [Azure AI Search](./azure-ai-search-connector.md) | ✅ | ✅ | ❌ | ✅ | +| [Qdrant](./qdrant-connector.md) | ✅ | ✅ | ❌ | ✅ | +| [Redis](./redis-connector.md) | ✅ | ✅ | ❌ | ✅ | +| [Pinecone](./pinecone-connector.md) | ✅ | ❌ | ❌ | ❌ | +| [Volatile (In-Memory)](./volatile-connector.md) | ✅ | ✅ | ❌ | N/A | diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md new file mode 100644 index 00000000..541e1b97 --- /dev/null +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md @@ -0,0 +1 @@ +# Using the Pinecone connector (Experimental) diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md new file mode 100644 index 00000000..05b8c110 --- /dev/null +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md @@ -0,0 +1 @@ +# Using the Qdrant connector (Experimental) diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md new file mode 100644 index 00000000..7dee2983 --- /dev/null +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md @@ -0,0 +1 @@ +# Using the Redis connector (Experimental) diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md new file mode 100644 index 00000000..4df6e8ee --- /dev/null +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md @@ -0,0 +1 @@ +# Using the Volatile (In-Memory) connector (Experimental) diff --git a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md new file mode 100644 index 00000000..b4349a1c --- /dev/null +++ b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md @@ -0,0 +1,98 @@ +# Defining your storage schema using a record definition (Experimental) + +## Overview + +The Semantic Kernel Vector Store connectors use a model first approach to interacting with databases and allows annotating data +models with information that helps creating indexes or mapping data to the database schema. + +Another way of providing this information is via record definitions, that can be defined and supplied separately to the data model. +This can be useful in multiple scenarios: + +- There may be a case where a developer wants to use the same data model with more than one configuration. +- There may be a case where the developer wants to store data using a very different schema to the model and wants to supply a custom mapper for converting between the data model and storage schema. + +::: zone pivot="programming-language-csharp" + +Here is an example of how to create a record definition. + +```csharp +using Microsoft.SemanticKernel; + +var hotelDefinition = new VectorStoreRecordDefinition +{ + Properties = new List + { + new VectorStoreRecordKeyProperty("HotelId", typeof(ulong)), + new VectorStoreRecordDataProperty("HotelName", typeof(string)) { IsFilterable = true }, + new VectorStoreRecordDataProperty("Description", typeof(string)) { IsFullTextSearchable = true }, + new VectorStoreRecordVectorProperty("DescriptionEmbedding", typeof(float)) { Dimensions = 4, IndexKind = IndexKind.Hnsw, DistanceFunction = DistanceFunction.CosineDistance }, + } +}; +``` + +When creating a definition you always have to provide a name and type for each property in your schema, since this is required for index creation and data mapping. + +## Record Property configuration classes + +### VectorStoreRecordKeyProperty + +Use this class to incidate that your property is the key of the record. + +```csharp +new VectorStoreRecordKeyProperty("HotelId", typeof(ulong)), +``` + +#### VectorStoreRecordKeyProperty configuration settings + +| Parameter | Required | Description | +|---------------------------|:--------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| DataModelPropertyName | Yes | The name of the property on the data model. Used by the built in mappers to automatically map between the storage schema and data model and for creating indexes. | +| PropertyType | Yes | The type of the property on the data model. Used by the built in mappers to automatically map between the storage schema and data model and for creating indexes. | +| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors. | + +### VectorStoreRecordDataProperty + +Use this class to incidate that your property contains general data that is not a key or a vector. + +```csharp +new VectorStoreRecordDataProperty("HotelName", typeof(string)) { IsFilterable = true }, +``` + +#### VectorStoreRecordDataProperty configuration settings + +| Parameter | Required | Description | +|---------------------------|:--------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| DataModelPropertyName | Yes | The name of the property on the data model. Used by the built in mappers to automatically map between the storage schema and data model and for creating indexes. | +| PropertyType | Yes | The type of the property on the data model. Used by the built in mappers to automatically map between the storage schema and data model and for creating indexes. | +| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors. | +| IsFilterable | No | Indicates whether the property should be indexed for filtering in cases where a database requires opting in to indexing per property. Default is false. | +| IsFullTextSearchable | No | Indicates whether the property should be indexed for full text search for databases that support full text search. Default is false. | + +### VectorStoreRecordVectorProperty + +Use this class to incidate that your property contains a vector. + +```csharp +new VectorStoreRecordVectorProperty("DescriptionEmbedding", typeof(float)) { Dimensions = 4, IndexKind = IndexKind.Hnsw, DistanceFunction = DistanceFunction.CosineDistance }, +``` + +#### VectorStoreRecordVectorProperty configuration settings + +| Parameter | Required | Description | +|---------------------------|:--------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| DataModelPropertyName | Yes | The name of the property on the data model. Used by the built in mappers to automatically map between the storage schema and data model and for creating indexes. | +| PropertyType | Yes | The type of the property on the data model. Used by the built in mappers to automatically map between the storage schema and data model and for creating indexes. | +| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors. | +| Dimensions | Yes for collection create, optional otherwise | The number of dimensions that the vector has. This is typically required when creating a vector index for a collection. | +| IndexKind | No | The type of index to index the vector with. Default varies by vector store type. | +| DistanceFunction | No | The type of distance function to use when doing vector comparison during vector search over this vector. Default varies by vector store type. | + +::: zone-end + +::: zone pivot="programming-language-python" + +```python +``` + +::: zone-end + diff --git a/semantic-kernel/how-to/TOC.yml b/semantic-kernel/how-to/TOC.yml new file mode 100644 index 00000000..539f4994 --- /dev/null +++ b/semantic-kernel/how-to/TOC.yml @@ -0,0 +1,2 @@ +- name: Vector Store connectors (Experimental) + href: vector-store-connectors/TOC.yml diff --git a/semantic-kernel/how-to/vector-store-connectors/TOC.yml b/semantic-kernel/how-to/vector-store-connectors/TOC.yml new file mode 100644 index 00000000..82ceb802 --- /dev/null +++ b/semantic-kernel/how-to/vector-store-connectors/TOC.yml @@ -0,0 +1,4 @@ +- name: Ingest data into a Vector Store + href: vector-store-data-ingestion.md +- name: Build a custom mapper for a Vector Store connector + href: vector-store-custom-mapper.md diff --git a/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md b/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md new file mode 100644 index 00000000..80afeba6 --- /dev/null +++ b/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md @@ -0,0 +1 @@ +# How to create a custom mapper for a Vector Store connector (Experimental) diff --git a/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md b/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md new file mode 100644 index 00000000..8ccbd67b --- /dev/null +++ b/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md @@ -0,0 +1 @@ +# How to ingest data into a Vector Store (Experimental) From 520e1beae8b3bc35cdbbb2df79cce2b7fec4897b Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Wed, 7 Aug 2024 15:26:00 +0100 Subject: [PATCH 003/275] Add title block to each new md file. --- .../vector-store-connectors/data-architecture.md | 9 +++++++++ .../defining-your-data-model.md | 10 ++++++++++ .../concepts/vector-store-connectors/index.md | 10 ++++++++++ .../azure-ai-search-connector.md | 9 +++++++++ .../out-of-the-box-connectors/index.md | 9 +++++++++ .../out-of-the-box-connectors/pinecone-connector.md | 9 +++++++++ .../out-of-the-box-connectors/qdrant-connector.md | 9 +++++++++ .../out-of-the-box-connectors/redis-connector.md | 9 +++++++++ .../out-of-the-box-connectors/volatile-connector.md | 9 +++++++++ .../schema-with-record-definition.md | 11 ++++++++++- .../vector-store-custom-mapper.md | 9 +++++++++ .../vector-store-data-ingestion.md | 9 +++++++++ 12 files changed, 111 insertions(+), 1 deletion(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/data-architecture.md b/semantic-kernel/concepts/vector-store-connectors/data-architecture.md index e38549c1..f38f073d 100644 --- a/semantic-kernel/concepts/vector-store-connectors/data-architecture.md +++ b/semantic-kernel/concepts/vector-store-connectors/data-architecture.md @@ -1,3 +1,12 @@ +--- +title: The Semantic Kernel Vector Store data architecture (Experimental) +description: Defines the data architecture for Semantic Kernel, including the relationship between vector stores, collections and records. +author: westey-m +ms.topic: conceptual +ms.author: westey +ms.date: 07/08/2024 +ms.service: semantic-kernel +--- # The Semantic Kernel Vector Store data architecture (Experimental) Vector Store abstractions in Semantic Kernel are based on three main components: vector stores, collections and records. diff --git a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md index 59e6793a..926041d1 100644 --- a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md +++ b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md @@ -1,3 +1,13 @@ +--- +title: Defining your Semantic Kernel Vector Store data model (Experimental) +description: Describes how to create a data model with Semantic Kernel to use when writing to or reading from a Vector Store. +zone_pivot_groups: programming-languages +author: westey-m +ms.topic: reference +ms.author: westey +ms.date: 07/08/2024 +ms.service: semantic-kernel +--- # Defining your data model (Experimental) ## Overview diff --git a/semantic-kernel/concepts/vector-store-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/index.md index ba6cdeaf..2f5c8418 100644 --- a/semantic-kernel/concepts/vector-store-connectors/index.md +++ b/semantic-kernel/concepts/vector-store-connectors/index.md @@ -1,3 +1,13 @@ +--- +title: What are Semantic Kernel Vector Store connectors? (Experimental) +description: Describes what a Semantic Kernal Vector Store is, an provides a basic example of how to use one and how to get started. +zone_pivot_groups: programming-languages +author: westey-m +ms.topic: conceptual +ms.author: westey +ms.date: 07/08/2024 +ms.service: semantic-kernel +--- # What are Semantic Kernel Vector Store connectors? (Experimental) Vector databases have many use cases across different domains and applications that involve natural language processing (NLP), computer vision (CV), recommendation systems (RS), and other areas that require semantic understanding and matching of data. diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md index ce273279..0999a7e9 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md @@ -1,3 +1,12 @@ +--- +title: Using the Semantic Kernel Azure AI Search Vector Store connector (Experimental) +description: Contains information on how to use a Semantic Kernel Vector store connector to access and manipulate data in Azure AI Search. +author: westey-m +ms.topic: conceptual +ms.author: westey +ms.date: 07/08/2024 +ms.service: semantic-kernel +--- # Using the Azure AI Search Vector Store connector (Experimental) ## Overview diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md index 83b18935..2ff4ebfc 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md @@ -1,3 +1,12 @@ +--- +title: Out-of-the-box Vector Store connectors (Experimental) +description: Out-of-the-box Vector Store connectors (Experimental) +author: westey-m +ms.topic: conceptual +ms.author: westey +ms.date: 07/08/2024 +ms.service: semantic-kernel +--- # Out-of-the-box Vector Store connectors (Experimental) Semantic Kernel provides a number of out-of-the-box Vector Store integrations making it easy to get started with using Vector Stores. It also allows you to experiment with a free or locally hosted Vector Store and then easily switch to a service when scale requires it. diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md index 541e1b97..850135a1 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md @@ -1 +1,10 @@ +--- +title: Using the Semantic Kernel Pinecone Vector Store connector (Experimental) +description: Contains information on how to use a Semantic Kernel Vector store connector to access and manipulate data in Pinecone. +author: westey-m +ms.topic: conceptual +ms.author: westey +ms.date: 07/08/2024 +ms.service: semantic-kernel +--- # Using the Pinecone connector (Experimental) diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md index 05b8c110..624b2b66 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md @@ -1 +1,10 @@ +--- +title: Using the Semantic Kernel Qdrant Vector Store connector (Experimental) +description: Contains information on how to use a Semantic Kernel Vector store connector to access and manipulate data in Qdrant. +author: westey-m +ms.topic: conceptual +ms.author: westey +ms.date: 07/08/2024 +ms.service: semantic-kernel +--- # Using the Qdrant connector (Experimental) diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md index 7dee2983..68feaa4e 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md @@ -1 +1,10 @@ +--- +title: Using the Semantic Kernel Redis Vector Store connector (Experimental) +description: Contains information on how to use a Semantic Kernel Vector store connector to access and manipulate data in Redis. +author: westey-m +ms.topic: conceptual +ms.author: westey +ms.date: 07/08/2024 +ms.service: semantic-kernel +--- # Using the Redis connector (Experimental) diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md index 4df6e8ee..9b123bb4 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md @@ -1 +1,10 @@ +--- +title: Using the Semantic Kernel Volatile (In-Memory) Vector Store connector (Experimental) +description: Contains information on how to use a Semantic Kernel Vector store connector to access and manipulate data in an in-memory Semantic Kernel supplied vector store. +author: westey-m +ms.topic: conceptual +ms.author: westey +ms.date: 07/08/2024 +ms.service: semantic-kernel +--- # Using the Volatile (In-Memory) connector (Experimental) diff --git a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md index b4349a1c..d4694976 100644 --- a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md +++ b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md @@ -1,3 +1,13 @@ +--- +title: Defining your Semantic Kernel storage schema using a record definition (Experimental) +description: Describes how to create a record definition with Semantic Kernel to use when writing to or reading from a Vector Store. +zone_pivot_groups: programming-languages +author: westey-m +ms.topic: reference +ms.author: westey +ms.date: 07/08/2024 +ms.service: semantic-kernel +--- # Defining your storage schema using a record definition (Experimental) ## Overview @@ -95,4 +105,3 @@ new VectorStoreRecordVectorProperty("DescriptionEmbedding", typeof(float)) { Dim ``` ::: zone-end - diff --git a/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md b/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md index 80afeba6..bf4823e8 100644 --- a/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md +++ b/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md @@ -1 +1,10 @@ +--- +title: How to create a custom mapper for a Semantic Kernel Vector Store connector (Experimental) +description: Describes how to create a custom mapper for a Semantic Kernel Vector Store connector +author: westey-m +ms.topic: tutorial +ms.author: westey +ms.date: 07/08/2024 +ms.service: semantic-kernel +--- # How to create a custom mapper for a Vector Store connector (Experimental) diff --git a/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md b/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md index 8ccbd67b..641ae604 100644 --- a/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md +++ b/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md @@ -1 +1,10 @@ +--- +title: How to ingest data into a Semantic Kernel Vector Store (Experimental) +description: Step by step instructions on how to ingest data into a Vector Store using Semantic Kernel +author: westey-m +ms.topic: tutorial +ms.author: westey +ms.date: 07/08/2024 +ms.service: semantic-kernel +--- # How to ingest data into a Vector Store (Experimental) From 4261750446d005c99b3af0b883ad3ea6259f9582 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Wed, 7 Aug 2024 15:40:17 +0100 Subject: [PATCH 004/275] Fix links and add missing zone pivots --- .../vector-store-connectors/data-architecture.md | 2 +- .../defining-your-data-model.md | 3 +++ .../concepts/vector-store-connectors/index.md | 11 ++++++++++- .../schema-with-record-definition.md | 3 +++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/data-architecture.md b/semantic-kernel/concepts/vector-store-connectors/data-architecture.md index f38f073d..892ca16a 100644 --- a/semantic-kernel/concepts/vector-store-connectors/data-architecture.md +++ b/semantic-kernel/concepts/vector-store-connectors/data-architecture.md @@ -23,4 +23,4 @@ Most databases have a concept of a collection of records and there is a natural Note that this concept may not always be referred to as a `collection` in the underlying database. > [!TIP] -> For more information on what the underlying implementation of a collection is per connector, refer to [the documentation for each connector](./out-of-the-box-connectors.md). +> For more information on what the underlying implementation of a collection is per connector, refer to [the documentation for each connector](./out-of-the-box-connectors). diff --git a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md index 926041d1..a5aac99a 100644 --- a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md +++ b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md @@ -80,3 +80,6 @@ Individual Vector Store implementations may also use their own index kinds and d ::: zone pivot="programming-language-python" ::: zone-end + +::: zone pivot="programming-language-java" +::: zone-end diff --git a/semantic-kernel/concepts/vector-store-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/index.md index 2f5c8418..455788ff 100644 --- a/semantic-kernel/concepts/vector-store-connectors/index.md +++ b/semantic-kernel/concepts/vector-store-connectors/index.md @@ -57,6 +57,9 @@ public class Hotel ::: zone-end +::: zone pivot="programming-language-java" +::: zone-end + > [!TIP] > For more information on how to annotate your data model, refer to [definining your data model](./defining-your-data-model.md). > [!TIP] @@ -90,8 +93,11 @@ var collection = vectorStore.GetCollection("skglossary"); ::: zone-end +::: zone pivot="programming-language-java" +::: zone-end + > [!TIP] -> For more information on what key and field types each Vector Store connector supports, refer to [the documentation for each connector](./out-of-the-box-connectors.md). +> For more information on what key and field types each Vector Store connector supports, refer to [the documentation for each connector](./out-of-the-box-connectors). ### Create the collection and add records @@ -125,6 +131,9 @@ var retrievedHotel = await collection.GetAsync(1); ::: zone-end +::: zone pivot="programming-language-java" +::: zone-end + ## Next steps > [!div class="nextstepaction"] diff --git a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md index d4694976..2635938c 100644 --- a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md +++ b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md @@ -105,3 +105,6 @@ new VectorStoreRecordVectorProperty("DescriptionEmbedding", typeof(float)) { Dim ``` ::: zone-end + +::: zone pivot="programming-language-java" +::: zone-end From 4849610b81ee1a9cb330d50b909ba630761f2456 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Wed, 7 Aug 2024 15:42:16 +0100 Subject: [PATCH 005/275] Fix broken links. --- .../concepts/vector-store-connectors/data-architecture.md | 2 +- semantic-kernel/concepts/vector-store-connectors/index.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/data-architecture.md b/semantic-kernel/concepts/vector-store-connectors/data-architecture.md index 892ca16a..3b849c89 100644 --- a/semantic-kernel/concepts/vector-store-connectors/data-architecture.md +++ b/semantic-kernel/concepts/vector-store-connectors/data-architecture.md @@ -23,4 +23,4 @@ Most databases have a concept of a collection of records and there is a natural Note that this concept may not always be referred to as a `collection` in the underlying database. > [!TIP] -> For more information on what the underlying implementation of a collection is per connector, refer to [the documentation for each connector](./out-of-the-box-connectors). +> For more information on what the underlying implementation of a collection is per connector, refer to [the documentation for each connector](./out-of-the-box-connectors/index.md). diff --git a/semantic-kernel/concepts/vector-store-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/index.md index 455788ff..69befe9e 100644 --- a/semantic-kernel/concepts/vector-store-connectors/index.md +++ b/semantic-kernel/concepts/vector-store-connectors/index.md @@ -97,7 +97,7 @@ var collection = vectorStore.GetCollection("skglossary"); ::: zone-end > [!TIP] -> For more information on what key and field types each Vector Store connector supports, refer to [the documentation for each connector](./out-of-the-box-connectors). +> For more information on what key and field types each Vector Store connector supports, refer to [the documentation for each connector](./out-of-the-box-connectors/index.md). ### Create the collection and add records From a8efcd1e1f4902965713fcd2bd9d160b0458bec3 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Wed, 7 Aug 2024 17:13:36 +0100 Subject: [PATCH 006/275] Add attribute example. --- .../defining-your-data-model.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md index a5aac99a..22a168bc 100644 --- a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md +++ b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md @@ -21,6 +21,30 @@ The properties on these classes are decorated with attributes that indicate the > [!TIP] > For an alternative to using attributes, refer to [definining your schema with a record definition](./schema-with-record-definition.md). +Here is an example of a model that is decorated with these attributes. + +```csharp +using Microsoft.SemanticKernel; + +public class Hotel +{ + [VectorStoreRecordKey] + public ulong HotelId { get; set; } + + [VectorStoreRecordData(IsFilterable = true)] + public string HotelName { get; set; } + + [VectorStoreRecordData(IsFullTextSearchable = true)] + public string Description { get; set; } + + [VectorStoreRecordVector(4, IndexKind.Hnsw, DistanceFunction.CosineDistance)] + public ReadOnlyMemory? DescriptionEmbedding { get; set; } + + [VectorStoreRecordData(IsFilterable = true)] + public string[] Tags { get; set; } +} +``` + ## Attributes ### VectorStoreRecordKeyAttribute From f4ed439de62f5afd7daa2b0f7f38ac8fbd830c8e Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Wed, 7 Aug 2024 17:20:22 +0100 Subject: [PATCH 007/275] Add definition parameter sample. --- .../schema-with-record-definition.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md index 2635938c..1d56fdb3 100644 --- a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md +++ b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md @@ -13,7 +13,7 @@ ms.service: semantic-kernel ## Overview The Semantic Kernel Vector Store connectors use a model first approach to interacting with databases and allows annotating data -models with information that helps creating indexes or mapping data to the database schema. +models with information that is needed for creating indexes or mapping data to the database schema. Another way of providing this information is via record definitions, that can be defined and supplied separately to the data model. This can be useful in multiple scenarios: @@ -42,6 +42,12 @@ var hotelDefinition = new VectorStoreRecordDefinition When creating a definition you always have to provide a name and type for each property in your schema, since this is required for index creation and data mapping. +To use the definition, pass it to the GetCollection method. + +```csharp +var collection = vectorStore.GetCollection("skglossary", hotelDefinition); +``` + ## Record Property configuration classes ### VectorStoreRecordKeyProperty From 50b5b4a84bfe052ff0c15d4ce8a2f68e428a0fbd Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Wed, 7 Aug 2024 18:30:39 +0100 Subject: [PATCH 008/275] Change name of sample collection --- semantic-kernel/concepts/vector-store-connectors/index.md | 2 +- .../vector-store-connectors/schema-with-record-definition.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/index.md index 69befe9e..27855a3d 100644 --- a/semantic-kernel/concepts/vector-store-connectors/index.md +++ b/semantic-kernel/concepts/vector-store-connectors/index.md @@ -81,7 +81,7 @@ using Microsoft.SemanticKernel.Connectors.Qdrant; var vectorStore = new QdrantVectorStore(new QdrantClient("localhost")); // Choose a collection from the database and specify the type of key and record stored in it via Generic parameters. -var collection = vectorStore.GetCollection("skglossary"); +var collection = vectorStore.GetCollection("skhotels"); ``` ::: zone-end diff --git a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md index 1d56fdb3..8eb1b6fc 100644 --- a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md +++ b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md @@ -45,7 +45,7 @@ When creating a definition you always have to provide a name and type for each p To use the definition, pass it to the GetCollection method. ```csharp -var collection = vectorStore.GetCollection("skglossary", hotelDefinition); +var collection = vectorStore.GetCollection("skhotels", hotelDefinition); ``` ## Record Property configuration classes From 76b934ae19e267ca5432117cfed86db3eb54048c Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Thu, 8 Aug 2024 14:02:21 +0100 Subject: [PATCH 009/275] Add azure ai search, redis and qdrant pages. --- .../azure-ai-search-connector.md | 114 ++++++++- .../qdrant-connector.md | 230 ++++++++++++++++++ .../redis-connector.md | 206 ++++++++++++++++ 3 files changed, 539 insertions(+), 11 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md index 0999a7e9..3e068cad 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md @@ -1,6 +1,7 @@ --- title: Using the Semantic Kernel Azure AI Search Vector Store connector (Experimental) description: Contains information on how to use a Semantic Kernel Vector store connector to access and manipulate data in Azure AI Search. +zone_pivot_groups: programming-languages author: westey-m ms.topic: conceptual ms.author: westey @@ -11,24 +12,115 @@ ms.service: semantic-kernel ## Overview - +The Azure AI Search Vector Store connector can be used to access and manage data in Azure AI Search. The connector has the following characteristics. -## Getting Started +| Feature Area | Support | +|-----------------------------------|----------------------------------------------------------------------------------------------------------------------------------| +| Collection maps to | Azure AI Search Index | +| Supported key property types | string | +| Supported data property types | string
int
long
double
float
bool
DateTimeOffset
*and enumerables of each of these types* | +| Supported vector property types | ReadOnlyMemory\ | +| Supported index types | Hnsw
Flat | +| Supported distance functions | CosineSimilarity
DotProductSimilarity
EuclideanDistance | +| Supports multiple vectors in a record | Yes | +| IsFilterable supported? | Yes | +| IsFullTextSearchable supported? | Yes | +| StoragePropertyName supported? | No | - +## Getting started -## Vector Store Options +::: zone pivot="programming-language-csharp" - +Add the Azure AI Search Vector Store connector nuget package to your project. -### Collection Factory +```dotnetcli +dotnet add package Microsoft.SemanticKernel.Connectors.AzureAISearch --prerelease +``` -## Vector Store Record Collection Options +You can add the vector store to the dependency injection container available on the `KernelBuilder` or to the to the `IServiceCollection` dependency injection container using extention methods provided by Semantic Kernel. - +```csharp +using Azure; +using Microsoft.SemanticKernel; -### Custom Json Serializer Options +// Using Kernel Builder. +var kernelBuilder = Kernel + .CreateBuilder() + .AddAzureAISearchVectorStore(new Uri(azureAISearchUri), new AzureKeyCredential(secret)); -## Data Mapping +// Using IServiceCollection. +serviceCollection.AddAzureAISearchVectorStore(new Uri(azureAISearchUri), new AzureKeyCredential(secret)); +``` - \ No newline at end of file +Extension methods are also provided that take no parameters. These require an instance of the Azure AI Search `SearchIndexClient` to be separately registered with the dependency injection container. + +```csharp +using Azure; +using Azure.Search.Documents.Indexes; +using Microsoft.SemanticKernel; + +// Using Kernel Builder. +var kernelBuilder = Kernel.CreateBuilder(); +kernelBuilder.Services.AddSingleton(sp => new SearchIndexClient(new Uri(azureAISearchUri), new AzureKeyCredential(secret))); +kernelBuilder.AddAzureAISearchVectorStore(); + +// Using IServiceCollection. +serviceCollection.AddSingleton(sp => new SearchIndexClient(new Uri(azureAISearchUri), new AzureKeyCredential(secret))); +serviceCollection.AddAzureAISearchVectorStore(); +``` + +You can construct an Azure AI Search Vector Store instance directly. + +```csharp +using Azure; +using Azure.Search.Documents.Indexes; +using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Connectors.AzureAISearch; + +var vectorStore = new AzureAISearchVectorStore(new SearchIndexClient(new Uri(azureAISearchUri), new AzureKeyCredential(secret)); +``` + +It is possible to construct a direct reference to a named collection. + +```csharp +using Azure; +using Azure.Search.Documents.Indexes; +using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Connectors.AzureAISearch; + +var collection = new AzureAISearchVectorStoreRecordCollection( + new SearchIndexClient(new Uri(azureAISearchUri), new AzureKeyCredential(secret), + "skhotels"); +``` + +::: zone-end +::: zone pivot="programming-language-python" +::: zone-end +::: zone pivot="programming-language-java" +::: zone-end + +## Data mapping + +::: zone pivot="programming-language-csharp" +The default mapper used by the Azure AI Search connector when mapping data from the data model to storage is the one provided by the Azure AI Search SDK. + +This mapper does a direct conversion of the list of properties on the data model to the fields in Azure AI Search and uses JSON serialization +to convert to the storage schema. This means that usage of the `JsonPropertyNameAttribute` is supported if a different storage name to the +data model property name is required. + +It is also possible to use a custom `JsonSerializerOptions` instance with a customized property naming policy. To enable this, the `JsonSerializerOptions` +must be passed to both the `SearchIndexClient` and the `AzureAISearchVectorStoreRecordCollection` on construction. + +```csharp +var jsonSerializerOptions = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseUpper }; +var collection = new AzureAISearchVectorStoreRecordCollection( + new SearchIndexClient(new Uri(azureAISearchUri), new AzureKeyCredential(secret), new() { Serializer = new JsonObjectSerializer(jsonSerializerOptions) }), + "skhotels", + new() { JsonSerializerOptions = jsonSerializerOptions }); +``` + +::: zone-end +::: zone pivot="programming-language-python" +::: zone-end +::: zone pivot="programming-language-java" +::: zone-end diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md index 624b2b66..82ace844 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md @@ -1,6 +1,7 @@ --- title: Using the Semantic Kernel Qdrant Vector Store connector (Experimental) description: Contains information on how to use a Semantic Kernel Vector store connector to access and manipulate data in Qdrant. +zone_pivot_groups: programming-languages author: westey-m ms.topic: conceptual ms.author: westey @@ -8,3 +9,232 @@ ms.date: 07/08/2024 ms.service: semantic-kernel --- # Using the Qdrant connector (Experimental) + +## Overview + +The Qdrant Vector Store connector can be used to access and manage data in Qdrant. The connector has the following characteristics. + +| Feature Area | Support | +|-----------------------------------|----------------------------------------------------------------------------------------------------------------------------------| +| Collection maps to | Qdrant collection with payload indices for filterable data fields | +| Supported key property types | ulong
Guid | +| Supported data property types | string
int
long
double
float
bool
*and enumerables of each of these types* | +| Supported vector property types | ReadOnlyMemory\
ReadOnlyMemory\ | +| Supported index types | Hnsw | +| Supported distance functions | CosineSimilarity
DotProductSimilarity
EuclideanDistance
ManhattanDistance | +| Supports multiple vectors in a record | Yes (configurable) | +| IsFilterable supported? | Yes | +| IsFullTextSearchable supported? | Yes | +| StoragePropertyName supported? | Yes | + +## Getting started + +::: zone pivot="programming-language-csharp" + +Add the Qdrant Vector Store connector nuget package to your project. + +```dotnetcli +dotnet add package Microsoft.SemanticKernel.Connectors.Qdrant --prerelease +``` + +You can add the vector store to the dependency injection container available on the `KernelBuilder` or to the to the `IServiceCollection` dependency injection container using extention methods provided by Semantic Kernel. + +```csharp +using Microsoft.SemanticKernel; + +// Using Kernel Builder. +var kernelBuilder = Kernel + .CreateBuilder() + .AddQdrantVectorStore("localhost"); + +// Using IServiceCollection. +serviceCollection.AddQdrantVectorStore("localhost"); +``` + +Extension methods are also provided that take no parameters. These require an instance of the `Qdrant.Client.QdrantClient` class to be separately registered with the dependency injection container. + +```csharp +using Microsoft.SemanticKernel; +using Qdrant.Client; + +// Using Kernel Builder. +var kernelBuilder = Kernel.CreateBuilder(); +kernelBuilder.Services.AddSingleton(sp => new QdrantClient("localhost")); +kernelBuilder.AddQdrantVectorStore(); + +// Using IServiceCollection. +serviceCollection.AddSingleton(sp => new QdrantClient("localhost")); +serviceCollection.AddQdrantVectorStore(); +``` + +You can construct a Qdrant Vector Store instance directly. + +```csharp +using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Connectors.Qdrant; +using Qdrant.Client; + +var vectorStore = new QdrantVectorStore(new QdrantClient("localhost")); +``` + +It is possible to construct a direct reference to a named collection. + +```csharp +using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Connectors.Qdrant; +using Qdrant.Client; + +var collection = new QdrantVectorStoreRecordCollection( + new QdrantClient("localhost"), + "skhotels"); +``` + +::: zone-end +::: zone pivot="programming-language-python" +::: zone-end +::: zone pivot="programming-language-java" +::: zone-end + +## Data mapping + +The Qdrant connector provides a default mapper when mapping data from the data model to storage. +Qdrant requires properties to be divided into an id, payload and vector(s) groupings. +The default mapper uses the model annotations of record definition to determine the type of each property on the data model and do this distribution. + +- The data model property annotated as a key will be mapped to the Qdrant point id. +- The data model properties annotated as data will be mapped to the Qdrant point payload object. +- The data model properties annotated as vectors will be mapped to the Qdrant point vector object. + +### Property name override + +For data properties and vector properties (if using named vectors mode), you can provide override field names to use in storage that is different to the +property names on the data model. This is not supported for keys, since a key has a fixed name in Qdrant. It is also not supported in single unnamed vector +mode, since the vector is stored under a fixed name. +::: zone pivot="programming-language-csharp" +This is done by setting the `StoragePropertyName` option via the data model attributes or record definition. + +Here is an example of a data model with `StoragePropertyName` set on its attributes and how that will be represented in Qdrant. + +```csharp +using Microsoft.SemanticKernel; + +public class Hotel +{ + [VectorStoreRecordKey] + public ulong HotelId { get; set; } + + [VectorStoreRecordData(IsFilterable = true) { StoragePropertyName = "hotel_name" }] + public string HotelName { get; set; } + + [VectorStoreRecordData(IsFullTextSearchable = true) { StoragePropertyName = "hotel_description" }] + public string Description { get; set; } + + [VectorStoreRecordVector(4, IndexKind.Hnsw, DistanceFunction.CosineDistance) { StoragePropertyName = "hotel_description_embedding" }] + public ReadOnlyMemory? DescriptionEmbedding { get; set; } +} +``` + +::: zone-end +::: zone pivot="programming-language-python" +::: zone-end +::: zone pivot="programming-language-java" +::: zone-end + +```json +{ + "id": 1, + "payload": { "hotel_name": "Hotel Happy", "hotel_description": "A place where everyone can be happy." }, + "vector": { + "hotel_description_embedding": [0.9, 0.1, 0.1], + } +} +``` + +### Qdrant vector modes + +Qdrant supports two modes for vector storage and the Qdrant Connector with default mapper supports both modes. + +#### Single unnamed vector + +This is the default mode that the connector uses. It means that a collection may only contain a single vector and it will be unnamed in the storage model in Qdrant. +The following object will be represented similar to this in Qdrant: + +::: zone pivot="programming-language-csharp" + +```csharp +new Hotel +{ + HotelId = 1, + HotelName = "Hotel Happy", + Description = "A place where everyone can be happy.", + DescriptionEmbedding = new float[3] { 0.9f, 0.1f, 0.1f } +} +``` + +::: zone-end +::: zone pivot="programming-language-python" +::: zone-end +::: zone pivot="programming-language-java" +::: zone-end + +```json +{ + "id": 1, + "payload": { "HotelName": "Hotel Happy", "Description": "A place where everyone can be happy." }, + "vector": [0.9, 0.1, 0.1] +} +``` + +#### Named vectors + +If using the named vectors mode, it means that each point in a collection may contain more than one vector, and each will be named. +The following object will be represented similar to this in Qdrant: + +::: zone pivot="programming-language-csharp" + +```csharp +new Hotel +{ + HotelId = 1, + HotelName = "Hotel Happy", + Description = "A place where everyone can be happy.", + DescriptionEmbedding = new float[3] { 0.9f, 0.1f, 0.1f } +} +``` + +::: zone-end +::: zone pivot="programming-language-python" +::: zone-end +::: zone pivot="programming-language-java" +::: zone-end + +```json +{ + "id": 1, + "payload": { "HotelName": "Hotel Happy", "Description": "A place where everyone can be happy." }, + "vector": { + "DescriptionEmbedding": [0.9, 0.1, 0.1], + } +} +``` + +The enable named vectors mode, pass this as an option when constructing a Vector Store or collection. + +::: zone pivot="programming-language-csharp" + +```csharp +var vectorStore = new QdrantVectorStore( + new QdrantClient("localhost"), + new() { HasNamedVectors = true }); + +var collection = new QdrantVectorStoreRecordCollection( + new QdrantClient("localhost"), + "skhotels", + new() { HasNamedVectors = true }); +``` + +::: zone-end +::: zone pivot="programming-language-python" +::: zone-end +::: zone pivot="programming-language-java" +::: zone-end diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md index 68feaa4e..2e58fe82 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md @@ -1,6 +1,7 @@ --- title: Using the Semantic Kernel Redis Vector Store connector (Experimental) description: Contains information on how to use a Semantic Kernel Vector store connector to access and manipulate data in Redis. +zone_pivot_groups: programming-languages author: westey-m ms.topic: conceptual ms.author: westey @@ -8,3 +9,208 @@ ms.date: 07/08/2024 ms.service: semantic-kernel --- # Using the Redis connector (Experimental) + +## Overview + +The Redis Vector Store connector can be used to access and manage data in Redis. The connector supports both Hashes and JSON modes and which mode you pick will determine what other features are supported. + +The connector has the following characteristics. + +| Feature Area | Support | +|-----------------------------------|----------------------------------------------------------------------------------------------------------------------------------| +| Collection maps to | Redis index with prefix set to `:` | +| Supported key property types | string | +| Supported data property types | **When using Hashes:**
string
int
uint
long
ulong
double
float
bool

**When using JSON:**
Any types serializable to JSON| +| Supported vector property types | ReadOnlyMemory\
ReadOnlyMemory\ | +| Supported index types | Hnsw
Flat | +| Supported distance functions | CosineSimilarity
DotProductSimilarity
EuclideanDistance | +| Supports multiple vectors in a record | Yes | +| IsFilterable supported? | Yes | +| IsFullTextSearchable supported? | Yes | +| StoragePropertyName supported? | **When using Hashes:** Yes
**When using JSON:** No | + +## Getting started + +::: zone pivot="programming-language-csharp" + +Add the Redis Vector Store connector nuget package to your project. + +```dotnetcli +dotnet add package Microsoft.SemanticKernel.Connectors.Redis --prerelease +``` + +You can add the vector store to the dependency injection container available on the `KernelBuilder` or to the to the `IServiceCollection` dependency injection container using extention methods provided by Semantic Kernel. + +```csharp +using Microsoft.SemanticKernel; + +// Using Kernel Builder. +var kernelBuilder = Kernel + .CreateBuilder() + .AddRedisVectorStore("localhost:6379"); + +// Using IServiceCollection. +serviceCollection.AddRedisVectorStore("localhost:6379"); +``` + +Extension methods are also provided that take no parameters. These require an instance of the Redis `IDatabase` to be separately registered with the dependency injection container. + +```csharp +using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Connectors.Redis; +using StackExchange.Redis; + +// Using Kernel Builder. +var kernelBuilder = Kernel.CreateBuilder(); +kernelBuilder.Services.AddSingleton(sp => ConnectionMultiplexer.Connect("localhost:6379").GetDatabase()); +kernelBuilder.AddRedisVectorStore(); + +// Using IServiceCollection. +serviceCollection.AddSingleton(sp => ConnectionMultiplexer.Connect("localhost:6379").GetDatabase()); +serviceCollection.AddRedisVectorStore(); +``` + +You can construct a Redis Vector Store instance directly. + +```csharp +using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Connectors.Redis; +using StackExchange.Redis; + +var vectorStore = new RedisVectorStore(ConnectionMultiplexer.Connect("localhost:6379").GetDatabase()); +``` + +It is possible to construct a direct reference to a named collection. +When doing so, you have to choose between the JSON or Hashes instance depending on how you wish to store data in redis. + +```csharp +using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Connectors.Redis; +using StackExchange.Redis; + +// Using Hashes. +var hashesCollection = new RedisHashSetVectorStoreRecordCollection( + ConnectionMultiplexer.Connect("localhost:6379").GetDatabase(), + "skhotelshashes"); + +// Using JSON. +var jsonCollection = new RedisJsonVectorStoreRecordCollection( + ConnectionMultiplexer.Connect("localhost:6379").GetDatabase(), + "skhotelsjson"); +``` + +When constructing a `RedisVectorStore` or registering it with the dependency injection container, it's possible to pass a `RedisVectorStoreOptions` instance +that configures the preferred storage type / mode used: Hashes or JSON. If not specified, the default is JSON. + +```csharp +using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Connectors.Redis; +using StackExchange.Redis; + +var vectorStore = new RedisVectorStore( + ConnectionMultiplexer.Connect("localhost:6379").GetDatabase(), + new() { StorageType = RedisStorageType.HashSet }); +``` + +::: zone-end +::: zone pivot="programming-language-python" +::: zone-end +::: zone pivot="programming-language-java" +::: zone-end + +## Data mapping + +Redis supports two modes for storing data, JSON and Hashes. The Redis connector supports both storage types, and mapping differs depending on the chosen storage type. + +### Data mapping when using the JSON storage type + +::: zone pivot="programming-language-csharp" +When using the JSON storage type, the Redis connector will use `System.Text.Json.JsonSerializer` to do mapping. +Since Redis stores records with a separate key and value, the mapper will serialize all properties except for the key to a JSON object +and use that as the value. + +Usage of the `JsonPropertyNameAttribute` is supported if a different storage name to the +data model property name is required. It is also possible to use a custom `JsonSerializerOptions` instance with a customized property naming policy. To enable this, the `JsonSerializerOptions` +must be passed to the `RedisJsonVectorStoreRecordCollection` on construction. + +```csharp +var jsonSerializerOptions = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseUpper }; +var collection = new RedisJsonVectorStoreRecordCollection( + ConnectionMultiplexer.Connect("localhost:6379").GetDatabase(), + "skhotelsjson", + new() { JsonSerializerOptions = jsonSerializerOptions }); +``` + +Since a naming policy of snake case upper was chosen, here is an example of how this data type will be set in Redis. +Also note the use of `JsonPropertyNameAttribute` on the `Description` property to further customize the storage naming. + +```csharp +using Microsoft.SemanticKernel; + +public class Hotel +{ + [VectorStoreRecordKey] + public ulong HotelId { get; set; } + + [VectorStoreRecordData(IsFilterable = true)] + public string HotelName { get; set; } + + [JsonPropertyNameAttribute("HOTEL_DESCRIPTION")] + [VectorStoreRecordData(IsFullTextSearchable = true)] + public string Description { get; set; } + + [VectorStoreRecordVector(4, IndexKind.Hnsw, DistanceFunction.CosineDistance)] + public ReadOnlyMemory? DescriptionEmbedding { get; set; } +} +``` + +``` +JSON.SET skhotelsjson:h1 $ '{ "HOTEL_NAME": "Hotel Happy", "HOTEL_DESCRIPTION": "A place where everyone can be happy.", "DESCRIPTION_EMBEDDING": [0.9, 0.1, 0.1] }' +``` + +::: zone-end +::: zone pivot="programming-language-python" +::: zone-end +::: zone pivot="programming-language-java" +::: zone-end + +### Data mapping when using the Hashes storage type + +When using the Hashes storage type, the Redis connector provides its own mapper to do mapping. +This mapper will map each property to a field-value pair as supported by the Redis `HSET` command. + +For data properties and vector properties, you can provide override field names to use in storage that is different to the +property names on the data model. This is not supported for keys, since keys cannot be named in Redis. +::: zone pivot="programming-language-csharp" +This is done by setting the `StoragePropertyName` option via the data model attributes or record definition. + +Here is an example of a data model with `StoragePropertyName` set on its attributes and how that set in Redis. + +```csharp +using Microsoft.SemanticKernel; + +public class Hotel +{ + [VectorStoreRecordKey] + public ulong HotelId { get; set; } + + [VectorStoreRecordData(IsFilterable = true) { StoragePropertyName = "hotel_name" }] + public string HotelName { get; set; } + + [VectorStoreRecordData(IsFullTextSearchable = true) { StoragePropertyName = "hotel_description" }] + public string Description { get; set; } + + [VectorStoreRecordVector(4, IndexKind.Hnsw, DistanceFunction.CosineDistance) { StoragePropertyName = "hotel_description_embedding" }] + public ReadOnlyMemory? DescriptionEmbedding { get; set; } +} +``` + +::: zone-end +::: zone pivot="programming-language-python" +::: zone-end +::: zone pivot="programming-language-java" +::: zone-end + +``` +HSET skhotelshashes:h1 hotel_name "Hotel Happy" hotel_description 'A place where everyone can be happy.' hotel_description_embedding +``` \ No newline at end of file From 471459c72fef247e39f2952f98945d6c8a65c456 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Thu, 8 Aug 2024 14:40:22 +0100 Subject: [PATCH 010/275] Adding tweaks to azure ai search and qdrant and adding index prefixes info to redis. --- .../azure-ai-search-connector.md | 20 ++++++++-- .../qdrant-connector.md | 22 ++++++----- .../redis-connector.md | 37 +++++++++++++++++++ 3 files changed, 66 insertions(+), 13 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md index 3e068cad..83474ff9 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md @@ -61,11 +61,17 @@ using Microsoft.SemanticKernel; // Using Kernel Builder. var kernelBuilder = Kernel.CreateBuilder(); -kernelBuilder.Services.AddSingleton(sp => new SearchIndexClient(new Uri(azureAISearchUri), new AzureKeyCredential(secret))); +kernelBuilder.Services.AddSingleton( + sp => new SearchIndexClient( + new Uri(azureAISearchUri), + new AzureKeyCredential(secret))); kernelBuilder.AddAzureAISearchVectorStore(); // Using IServiceCollection. -serviceCollection.AddSingleton(sp => new SearchIndexClient(new Uri(azureAISearchUri), new AzureKeyCredential(secret))); +serviceCollection.AddSingleton( + sp => new SearchIndexClient( + new Uri(azureAISearchUri), + new AzureKeyCredential(secret))); serviceCollection.AddAzureAISearchVectorStore(); ``` @@ -77,7 +83,10 @@ using Azure.Search.Documents.Indexes; using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Connectors.AzureAISearch; -var vectorStore = new AzureAISearchVectorStore(new SearchIndexClient(new Uri(azureAISearchUri), new AzureKeyCredential(secret)); +var vectorStore = new AzureAISearchVectorStore( + new SearchIndexClient( + new Uri(azureAISearchUri), + new AzureKeyCredential(secret)); ``` It is possible to construct a direct reference to a named collection. @@ -114,7 +123,10 @@ must be passed to both the `SearchIndexClient` and the `AzureAISearchVectorStore ```csharp var jsonSerializerOptions = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseUpper }; var collection = new AzureAISearchVectorStoreRecordCollection( - new SearchIndexClient(new Uri(azureAISearchUri), new AzureKeyCredential(secret), new() { Serializer = new JsonObjectSerializer(jsonSerializerOptions) }), + new SearchIndexClient( + new Uri(azureAISearchUri), + new AzureKeyCredential(secret), + new() { Serializer = new JsonObjectSerializer(jsonSerializerOptions) }), "skhotels", new() { JsonSerializerOptions = jsonSerializerOptions }); ``` diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md index 82ace844..d616316a 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md @@ -98,8 +98,8 @@ var collection = new QdrantVectorStoreRecordCollection( ## Data mapping The Qdrant connector provides a default mapper when mapping data from the data model to storage. -Qdrant requires properties to be divided into an id, payload and vector(s) groupings. -The default mapper uses the model annotations of record definition to determine the type of each property on the data model and do this distribution. +Qdrant requires properties to be mapped into id, payload and vector(s) groupings. +The default mapper uses the model annotations or record definition to determine the type of each property and to do this mapping. - The data model property annotated as a key will be mapped to the Qdrant point id. - The data model properties annotated as data will be mapped to the Qdrant point payload object. @@ -108,10 +108,10 @@ The default mapper uses the model annotations of record definition to determine ### Property name override For data properties and vector properties (if using named vectors mode), you can provide override field names to use in storage that is different to the -property names on the data model. This is not supported for keys, since a key has a fixed name in Qdrant. It is also not supported in single unnamed vector -mode, since the vector is stored under a fixed name. +property names on the data model. This is not supported for keys, since a key has a fixed name in Qdrant. It is also not supported for vectors in *single +unnamed vector* mode, since the vector is stored under a fixed name. ::: zone pivot="programming-language-csharp" -This is done by setting the `StoragePropertyName` option via the data model attributes or record definition. +The property name override is done by setting the `StoragePropertyName` option via the data model attributes or record definition. Here is an example of a data model with `StoragePropertyName` set on its attributes and how that will be represented in Qdrant. @@ -153,11 +153,12 @@ public class Hotel ### Qdrant vector modes Qdrant supports two modes for vector storage and the Qdrant Connector with default mapper supports both modes. +The default mode is *single unnamed vector*. #### Single unnamed vector -This is the default mode that the connector uses. It means that a collection may only contain a single vector and it will be unnamed in the storage model in Qdrant. -The following object will be represented similar to this in Qdrant: +With this option a collection may only contain a single vector and it will be unnamed in the storage model in Qdrant. +Here is an example of how an object is represented in Qdrant when using *single unnamed vector* mode: ::: zone pivot="programming-language-csharp" @@ -188,7 +189,7 @@ new Hotel #### Named vectors If using the named vectors mode, it means that each point in a collection may contain more than one vector, and each will be named. -The following object will be represented similar to this in Qdrant: +Here is an example of how an object is represented in Qdrant when using *named vectors* mode: ::: zone pivot="programming-language-csharp" @@ -198,6 +199,7 @@ new Hotel HotelId = 1, HotelName = "Hotel Happy", Description = "A place where everyone can be happy.", + HotelNameEmbedding = new float[3] { 0.9f, 0.5f, 0.5f } DescriptionEmbedding = new float[3] { 0.9f, 0.1f, 0.1f } } ``` @@ -213,12 +215,14 @@ new Hotel "id": 1, "payload": { "HotelName": "Hotel Happy", "Description": "A place where everyone can be happy." }, "vector": { + "HotelNameEmbedding": [0.9, 0.5, 0.5], "DescriptionEmbedding": [0.9, 0.1, 0.1], } } ``` -The enable named vectors mode, pass this as an option when constructing a Vector Store or collection. +To enable named vectors mode, pass this as an option when constructing a Vector Store or collection. +The same options can also be passed to any of the provided dependency injection container extensions methods. ::: zone pivot="programming-language-csharp" diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md index 2e58fe82..6cc284f2 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md @@ -118,6 +118,43 @@ var vectorStore = new RedisVectorStore( ::: zone pivot="programming-language-java" ::: zone-end +## Index prefixes + +Redis uses a system of key prefixing to associate a record with an index. +When creating an index you can specify one or more prefixes to use with that index. +If you want to associate a record with that index, you have to add the prefix to the key of that record. + +E.g. If you create a index called `skhotelsjson` with a prefix of `skhotelsjson:`, when setting a record +with key `h1`, the record key will need to be prefixed like this `skhotelsjson:h1` to be added to the index. + +When creating a new collection using the Redis connector, the connector will create an index in redis with a +prefix consisting of the collection name and a colon, like this `:`. +By default, the connector will also prefix all keys with the this prefix when doing record operations like Get, Upsert, and Delete. + +If you didn't want to use a prefix consisting of the collection name and a colon, it is possible to switch +off the prefixing behavior and pass in the fully prefixed key to the record operations. + +::: zone pivot="programming-language-csharp" + +```csharp +using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Connectors.Redis; +using StackExchange.Redis; + +var collection = new RedisJsonVectorStoreRecordCollection( + ConnectionMultiplexer.Connect("localhost:6379").GetDatabase(), + "skhotelsjson", + new() { PrefixCollectionNameToKeyNames = false }); + +await collection.GetAsync("myprefix_h1"); +``` + +::: zone-end +::: zone pivot="programming-language-python" +::: zone-end +::: zone pivot="programming-language-java" +::: zone-end + ## Data mapping Redis supports two modes for storing data, JSON and Hashes. The Redis connector supports both storage types, and mapping differs depending on the chosen storage type. From 99da3c38641c2a8801c57c74e5eee48a7fb8f36f Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Thu, 8 Aug 2024 14:59:30 +0100 Subject: [PATCH 011/275] Add a few tweaks to redis page. --- .../out-of-the-box-connectors/redis-connector.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md index 6cc284f2..e631ce22 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md @@ -157,7 +157,7 @@ await collection.GetAsync("myprefix_h1"); ## Data mapping -Redis supports two modes for storing data, JSON and Hashes. The Redis connector supports both storage types, and mapping differs depending on the chosen storage type. +Redis supports two modes for storing data: JSON and Hashes. The Redis connector supports both storage types, and mapping differs depending on the chosen storage type. ### Data mapping when using the JSON storage type @@ -219,9 +219,9 @@ This mapper will map each property to a field-value pair as supported by the Red For data properties and vector properties, you can provide override field names to use in storage that is different to the property names on the data model. This is not supported for keys, since keys cannot be named in Redis. ::: zone pivot="programming-language-csharp" -This is done by setting the `StoragePropertyName` option via the data model attributes or record definition. +Property name overriding is done by setting the `StoragePropertyName` option via the data model attributes or record definition. -Here is an example of a data model with `StoragePropertyName` set on its attributes and how that set in Redis. +Here is an example of a data model with `StoragePropertyName` set on its attributes and how these are set in Redis. ```csharp using Microsoft.SemanticKernel; From e46af0fafd1902bad2189f373b59b70005d59efd Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Thu, 8 Aug 2024 15:20:39 +0100 Subject: [PATCH 012/275] Reorder connectors to be alphabetic and clean up python pages to remove empty sections --- .../concepts/vector-store-connectors/index.md | 22 ++----------------- .../out-of-the-box-connectors/TOC.yml | 4 ++-- .../azure-ai-search-connector.md | 7 +++--- .../out-of-the-box-connectors/index.md | 2 +- .../qdrant-connector.md | 16 +++++++------- .../redis-connector.md | 15 +++++++------ .../schema-with-record-definition.md | 6 ----- 7 files changed, 25 insertions(+), 47 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/index.md index 27855a3d..f055f8e4 100644 --- a/semantic-kernel/concepts/vector-store-connectors/index.md +++ b/semantic-kernel/concepts/vector-store-connectors/index.md @@ -49,14 +49,8 @@ public class Hotel ``` ::: zone-end - ::: zone pivot="programming-language-python" - -```python -``` - ::: zone-end - ::: zone pivot="programming-language-java" ::: zone-end @@ -85,24 +79,18 @@ var collection = vectorStore.GetCollection("skhotels"); ``` ::: zone-end - ::: zone pivot="programming-language-python" - -```python -``` - ::: zone-end - ::: zone pivot="programming-language-java" ::: zone-end > [!TIP] > For more information on what key and field types each Vector Store connector supports, refer to [the documentation for each connector](./out-of-the-box-connectors/index.md). -### Create the collection and add records - ::: zone pivot="programming-language-csharp" +### Create the collection and add records + ```csharp // Create the collection if it doesn't exist yet. await collection.CreateCollectionIfNotExistsAsync(); @@ -123,14 +111,8 @@ var retrievedHotel = await collection.GetAsync(1); ``` ::: zone-end - ::: zone pivot="programming-language-python" - -```python -``` - ::: zone-end - ::: zone pivot="programming-language-java" ::: zone-end diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/TOC.yml b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/TOC.yml index 0478f121..845ab469 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/TOC.yml +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/TOC.yml @@ -2,11 +2,11 @@ href: index.md - name: Azure AI Search connector href: azure-ai-search-connector.md +- name: Pinecone connector + href: pinecone-connector.md - name: Qdrant connector href: qdrant-connector.md - name: Redis connector href: redis-connector.md -- name: Pinecone connector - href: pinecone-connector.md - name: Volatile (in-memory) connector href: volatile-connector.md diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md index 83474ff9..fffda89a 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md @@ -27,10 +27,10 @@ The Azure AI Search Vector Store connector can be used to access and manage data | IsFullTextSearchable supported? | Yes | | StoragePropertyName supported? | No | -## Getting started - ::: zone pivot="programming-language-csharp" +## Getting started + Add the Azure AI Search Vector Store connector nuget package to your project. ```dotnetcli @@ -108,9 +108,10 @@ var collection = new AzureAISearchVectorStoreRecordCollection( ::: zone pivot="programming-language-java" ::: zone-end +::: zone pivot="programming-language-csharp" + ## Data mapping -::: zone pivot="programming-language-csharp" The default mapper used by the Azure AI Search connector when mapping data from the data model to storage is the one provided by the Azure AI Search SDK. This mapper does a direct conversion of the list of properties on the data model to the fields in Azure AI Search and uses JSON serialization diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md index 2ff4ebfc..6031e7cf 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md @@ -16,7 +16,7 @@ Semantic Kernel provides a number of out-of-the-box Vector Store integrations ma | Vector Store Connectors | C# | Python | Java | Using officially supported SDK | |-----------------------------------------------------|:----:|:------:|:----:|:------------------------------:| | [Azure AI Search](./azure-ai-search-connector.md) | ✅ | ✅ | ❌ | ✅ | +| [Pinecone](./pinecone-connector.md) | ✅ | ❌ | ❌ | ❌ | | [Qdrant](./qdrant-connector.md) | ✅ | ✅ | ❌ | ✅ | | [Redis](./redis-connector.md) | ✅ | ✅ | ❌ | ✅ | -| [Pinecone](./pinecone-connector.md) | ✅ | ❌ | ❌ | ❌ | | [Volatile (In-Memory)](./volatile-connector.md) | ✅ | ✅ | ❌ | N/A | diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md index d616316a..cb96286d 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md @@ -27,10 +27,10 @@ The Qdrant Vector Store connector can be used to access and manage data in Qdran | IsFullTextSearchable supported? | Yes | | StoragePropertyName supported? | Yes | -## Getting started - ::: zone pivot="programming-language-csharp" +## Getting started + Add the Qdrant Vector Store connector nuget package to your project. ```dotnetcli @@ -134,12 +134,6 @@ public class Hotel } ``` -::: zone-end -::: zone pivot="programming-language-python" -::: zone-end -::: zone pivot="programming-language-java" -::: zone-end - ```json { "id": 1, @@ -150,6 +144,12 @@ public class Hotel } ``` +::: zone-end +::: zone pivot="programming-language-python" +::: zone-end +::: zone pivot="programming-language-java" +::: zone-end + ### Qdrant vector modes Qdrant supports two modes for vector storage and the Qdrant Connector with default mapper supports both modes. diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md index e631ce22..7b1a57eb 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md @@ -29,10 +29,10 @@ The connector has the following characteristics. | IsFullTextSearchable supported? | Yes | | StoragePropertyName supported? | **When using Hashes:** Yes
**When using JSON:** No | -## Getting started - ::: zone pivot="programming-language-csharp" +## Getting started + Add the Redis Vector Store connector nuget package to your project. ```dotnetcli @@ -159,9 +159,10 @@ await collection.GetAsync("myprefix_h1"); Redis supports two modes for storing data: JSON and Hashes. The Redis connector supports both storage types, and mapping differs depending on the chosen storage type. +::: zone pivot="programming-language-csharp" + ### Data mapping when using the JSON storage type -::: zone pivot="programming-language-csharp" When using the JSON storage type, the Redis connector will use `System.Text.Json.JsonSerializer` to do mapping. Since Redis stores records with a separate key and value, the mapper will serialize all properties except for the key to a JSON object and use that as the value. @@ -242,12 +243,12 @@ public class Hotel } ``` +``` +HSET skhotelshashes:h1 hotel_name "Hotel Happy" hotel_description 'A place where everyone can be happy.' hotel_description_embedding +``` + ::: zone-end ::: zone pivot="programming-language-python" ::: zone-end ::: zone pivot="programming-language-java" ::: zone-end - -``` -HSET skhotelshashes:h1 hotel_name "Hotel Happy" hotel_description 'A place where everyone can be happy.' hotel_description_embedding -``` \ No newline at end of file diff --git a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md index 8eb1b6fc..15e1e800 100644 --- a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md +++ b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md @@ -104,13 +104,7 @@ new VectorStoreRecordVectorProperty("DescriptionEmbedding", typeof(float)) { Dim | DistanceFunction | No | The type of distance function to use when doing vector comparison during vector search over this vector. Default varies by vector store type. | ::: zone-end - ::: zone pivot="programming-language-python" - -```python -``` - ::: zone-end - ::: zone pivot="programming-language-java" ::: zone-end From e07772cfb05b9a9656906eacd84b0b374100dba9 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Thu, 8 Aug 2024 15:50:23 +0100 Subject: [PATCH 013/275] Add Pinecone page and fix vector length --- .../pinecone-connector.md | 161 ++++++++++++++++++ .../qdrant-connector.md | 14 +- .../redis-connector.md | 2 +- 3 files changed, 169 insertions(+), 8 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md index 850135a1..54d5c3d0 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md @@ -8,3 +8,164 @@ ms.date: 07/08/2024 ms.service: semantic-kernel --- # Using the Pinecone connector (Experimental) + +::: zone pivot="programming-language-csharp" + +## Overview + +The Pinecone Vector Store connector can be used to access and manage data in Pinecone. The connector has the following characteristics. + +| Feature Area | Support | +|-----------------------------------|----------------------------------------------------------------------------------------------------------------------------------| +| Collection maps to | Pinecone serverless Index | +| Supported key property types | string | +| Supported data property types | string
int
long
double
float
bool
decimal
*enumerables of type* string | +| Supported vector property types | ReadOnlyMemory\ | +| Supported index types | PGA (Pinecone Graph Algorithm) | +| Supported distance functions | CosineSimilarity
DotProductSimilarity
EuclideanDistance | +| Supports multiple vectors in a record | No | +| IsFilterable supported? | Yes | +| IsFullTextSearchable supported? | No | +| StoragePropertyName supported? | Yes | + +## Getting started + +Add the Pinecone Vector Store connector nuget package to your project. + +```dotnetcli +dotnet add package Microsoft.SemanticKernel.Connectors.Pinecone --prerelease +``` + +You can add the vector store to the dependency injection container available on the `KernelBuilder` or to the to the `IServiceCollection` dependency injection container using extention methods provided by Semantic Kernel. + +```csharp +using Microsoft.SemanticKernel; +using Pinecone; + +// Using Kernel Builder. +var kernelBuilder = Kernel + .CreateBuilder() + .AddPineconeVectorStore(pineconeApiKey); + +// Using IServiceCollection. +serviceCollection.AddPineconeVectorStore(pineconeApiKey); +``` + +Extension methods are also provided that take no parameters. These require an instance of the `PineconeClient` to be separately registered with the dependency injection container. + +```csharp +using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Connectors.Pinecone; +using Pinecone; + +// Using Kernel Builder. +var kernelBuilder = Kernel.CreateBuilder(); +kernelBuilder.Services.AddSingleton( + sp => new PineconeClient(pineconeApiKey)); +kernelBuilder.AddPineconeVectorStore(); + +// Using IServiceCollection. +serviceCollection.AddSingleton( + sp => new PineconeClient(pineconeApiKey)); +serviceCollection.AddPineconeVectorStore(); +``` + +You can construct a Pinecone Vector Store instance directly. + +```csharp +using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Connectors.Pinecone; +using Pinecone; + +var vectorStore = new PineconeVectorStore( + new PineconeClient(pineconeApiKey)); +``` + +It is possible to construct a direct reference to a named collection. + +```csharp +using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Connectors.Pinecone; +using Pinecone; + +var collection = new PineconeVectorStoreRecordCollection( + new PineconeClient(pineconeApiKey), + "skhotels"); +``` + +## Index Namespace + +The Vector Store abstraction does not support a multi tiered record grouping mechanism. Collections in the abstraction map to a Pinecone serverless index +and no second level exists in the abstraction. Pinecone does support a second level of grouping called namespaces. + +By default the Pinecone connector will pass null as the namespace for all operations. However it is possible to pass a single namespace to the +Pinecone collection when constructing it and use this instead for all operations. + +```csharp +using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Connectors.Pinecone; +using Pinecone; + +var collection = new PineconeVectorStoreRecordCollection( + new PineconeClient(pineconeApiKey), + "skhotels", + new() { IndexNamespace = "seasidehotels" }); +``` + +## Data mapping + +The Pinecone connector provides a default mapper when mapping data from the data model to storage. +Pinecone requires properties to be mapped into id, metadata and values groupings. +The default mapper uses the model annotations or record definition to determine the type of each property and to do this mapping. + +- The data model property annotated as a key will be mapped to the Pinecone id property. +- The data model properties annotated as data will be mapped to the Pinecone metadata object. +- The data model property annotated as a vector will be mapped to the Pinecone vector property. + +### Property name override + +For data properties, you can provide override field names to use in storage that is different to the +property names on the data model. This is not supported for keys, since a key has a fixed name in Pinecone. +It is also not supported for vectors, since the vector is stored under a fixed name `values`. +The property name override is done by setting the `StoragePropertyName` option via the data model attributes or record definition. + +Here is an example of a data model with `StoragePropertyName` set on its attributes and how that will be represented in Pinecone. + +```csharp +using Microsoft.SemanticKernel; + +public class Hotel +{ + [VectorStoreRecordKey] + public ulong HotelId { get; set; } + + [VectorStoreRecordData(IsFilterable = true) { StoragePropertyName = "hotel_name" }] + public string HotelName { get; set; } + + [VectorStoreRecordData(IsFullTextSearchable = true) { StoragePropertyName = "hotel_description" }] + public string Description { get; set; } + + [VectorStoreRecordVector(4, IndexKind.Hnsw, DistanceFunction.CosineDistance)] + public ReadOnlyMemory? DescriptionEmbedding { get; set; } +} +``` + +```json +{ + "id": "h1", + "values": [0.9, 0.1, 0.1, 0.1], + "metadata": { "hotel_name": "Hotel Happy", "hotel_description": "A place where everyone can be happy." } +} +``` + +::: zone-end +::: zone pivot="programming-language-python" + +The Pinecone connector is not yet available in Python. + +::: zone-end +::: zone pivot="programming-language-java" + +The Pinecone connector is not yet available in Java. + +::: zone-end diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md index cb96286d..1d964449 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md @@ -139,7 +139,7 @@ public class Hotel "id": 1, "payload": { "hotel_name": "Hotel Happy", "hotel_description": "A place where everyone can be happy." }, "vector": { - "hotel_description_embedding": [0.9, 0.1, 0.1], + "hotel_description_embedding": [0.9, 0.1, 0.1, 0.1], } } ``` @@ -168,7 +168,7 @@ new Hotel HotelId = 1, HotelName = "Hotel Happy", Description = "A place where everyone can be happy.", - DescriptionEmbedding = new float[3] { 0.9f, 0.1f, 0.1f } + DescriptionEmbedding = new float[3] { 0.9f, 0.1f, 0.1f, 0.1f } } ``` @@ -182,7 +182,7 @@ new Hotel { "id": 1, "payload": { "HotelName": "Hotel Happy", "Description": "A place where everyone can be happy." }, - "vector": [0.9, 0.1, 0.1] + "vector": [0.9, 0.1, 0.1, 0.1] } ``` @@ -199,8 +199,8 @@ new Hotel HotelId = 1, HotelName = "Hotel Happy", Description = "A place where everyone can be happy.", - HotelNameEmbedding = new float[3] { 0.9f, 0.5f, 0.5f } - DescriptionEmbedding = new float[3] { 0.9f, 0.1f, 0.1f } + HotelNameEmbedding = new float[3] { 0.9f, 0.5f, 0.5f, 0.5f } + DescriptionEmbedding = new float[3] { 0.9f, 0.1f, 0.1f, 0.1f } } ``` @@ -215,8 +215,8 @@ new Hotel "id": 1, "payload": { "HotelName": "Hotel Happy", "Description": "A place where everyone can be happy." }, "vector": { - "HotelNameEmbedding": [0.9, 0.5, 0.5], - "DescriptionEmbedding": [0.9, 0.1, 0.1], + "HotelNameEmbedding": [0.9, 0.5, 0.5, 0.5], + "DescriptionEmbedding": [0.9, 0.1, 0.1, 0.1], } } ``` diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md index 7b1a57eb..848692bc 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md @@ -203,7 +203,7 @@ public class Hotel ``` ``` -JSON.SET skhotelsjson:h1 $ '{ "HOTEL_NAME": "Hotel Happy", "HOTEL_DESCRIPTION": "A place where everyone can be happy.", "DESCRIPTION_EMBEDDING": [0.9, 0.1, 0.1] }' +JSON.SET skhotelsjson:h1 $ '{ "HOTEL_NAME": "Hotel Happy", "HOTEL_DESCRIPTION": "A place where everyone can be happy.", "DESCRIPTION_EMBEDDING": [0.9, 0.1, 0.1, 0.1] }' ``` ::: zone-end From cf27e4949bfc0c3ea9deeab0d4d0fb6de9fbb9d7 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:05:06 +0100 Subject: [PATCH 014/275] Add volatile connector page --- .../pinecone-connector.md | 1 + .../volatile-connector.md | 67 +++++++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md index 54d5c3d0..989a8972 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md @@ -1,6 +1,7 @@ --- title: Using the Semantic Kernel Pinecone Vector Store connector (Experimental) description: Contains information on how to use a Semantic Kernel Vector store connector to access and manipulate data in Pinecone. +zone_pivot_groups: programming-languages author: westey-m ms.topic: conceptual ms.author: westey diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md index 9b123bb4..6bc84475 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md @@ -1,6 +1,7 @@ --- title: Using the Semantic Kernel Volatile (In-Memory) Vector Store connector (Experimental) description: Contains information on how to use a Semantic Kernel Vector store connector to access and manipulate data in an in-memory Semantic Kernel supplied vector store. +zone_pivot_groups: programming-languages author: westey-m ms.topic: conceptual ms.author: westey @@ -8,3 +9,69 @@ ms.date: 07/08/2024 ms.service: semantic-kernel --- # Using the Volatile (In-Memory) connector (Experimental) + +## Overview + +The Volatile Vector Store connector is a Vector Store implementation provided by Semantic Kernel that uses no external database and stores data in memory. +This Vector Store is useful for prototyping scenarios or where high speed in memory operations are required. + +The connector has the following characteristics. + +| Feature Area | Support | +|-----------------------------------|----------------------------------------------------------------------------------------------------------------------------------| +| Collection maps to | In memory dictionary | +| Supported key property types | Any type that can be compared | +| Supported data property types | Any type | +| Supported vector property types | ReadOnlyMemory\ | +| Supported index types | N/A | +| Supported distance functions | N/A | +| Supports multiple vectors in a record | Yes | +| IsFilterable supported? | Yes | +| IsFullTextSearchable supported? | Yes | +| StoragePropertyName supported? | No | + +::: zone pivot="programming-language-csharp" + +## Getting started + +Add the Semantic Kernel Core nuget package to your project. + +```dotnetcli +dotnet add package Microsoft.SemanticKernel.Core +``` + +You can add the vector store to the dependency injection container available on the `KernelBuilder` or to the to the `IServiceCollection` dependency injection container using extention methods provided by Semantic Kernel. + +```csharp +using Microsoft.SemanticKernel; + +// Using Kernel Builder. +var kernelBuilder = Kernel + .CreateBuilder() + .AddVolatileVectorStore(); + +// Using IServiceCollection. +serviceCollection.AddVolatileVectorStore(); +``` + +You can construct a Volatile Vector Store instance directly. + +```csharp +using Microsoft.SemanticKernel.Data; + +var vectorStore = new VolatileVectorStore(); +``` + +It is possible to construct a direct reference to a named collection. + +```csharp +using Microsoft.SemanticKernel.Data; + +var collection = new VolatileVectorStoreRecordCollection("skhotels"); +``` + +::: zone-end +::: zone pivot="programming-language-python" +::: zone-end +::: zone pivot="programming-language-java" +::: zone-end From 42113d7e684481ee7b2a25fd8226a0ddd7560895 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Thu, 8 Aug 2024 19:11:18 +0100 Subject: [PATCH 015/275] Clarify storage property name support further. --- .../defining-your-data-model.md | 37 ++++++++++++------- .../concepts/vector-store-connectors/index.md | 1 + .../azure-ai-search-connector.md | 2 +- .../redis-connector.md | 2 +- .../volatile-connector.md | 2 +- .../schema-with-record-definition.md | 15 ++++++-- 6 files changed, 39 insertions(+), 20 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md index 22a168bc..cb76be40 100644 --- a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md +++ b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md @@ -58,9 +58,12 @@ public ulong HotelId { get; set; } #### VectorStoreRecordKeyAttribute parameters -| Parameter | Required | Description | -|---------------------------|:--------:|------------------------------------------------------------------------------------------------------------------------------------------| -| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors. | +| Parameter | Required | Description | +|---------------------------|:--------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors, e.g. where alternatives like `JsonPropertyNameAttribute` is supported. | + +> [!TIP] +> For more information on which connectors support StoragePropertyName and what alternatives are available, refer to [the documentation for each connector](./out-of-the-box-connectors/index.md). ### VectorStoreRecordDataAttribute @@ -73,11 +76,14 @@ public string HotelName { get; set; } #### VectorStoreRecordDataAttribute parameters -| Parameter | Required | Description | -|---------------------------|:--------:|------------------------------------------------------------------------------------------------------------------------------------------| -| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors. | -| IsFilterable | No | Indicates whether the property should be indexed for filtering in cases where a database requires opting in to indexing per property. Default is false. | -| IsFullTextSearchable | No | Indicates whether the property should be indexed for full text search for databases that support full text search. Default is false. | +| Parameter | Required | Description | +|---------------------------|:--------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| IsFilterable | No | Indicates whether the property should be indexed for filtering in cases where a database requires opting in to indexing per property. Default is false. | +| IsFullTextSearchable | No | Indicates whether the property should be indexed for full text search for databases that support full text search. Default is false. | +| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors, e.g. where alternatives like `JsonPropertyNameAttribute` is supported. | + +> [!TIP] +> For more information on which connectors support StoragePropertyName and what alternatives are available, refer to [the documentation for each connector](./out-of-the-box-connectors/index.md). ### VectorStoreRecordVectorAttribute @@ -90,16 +96,19 @@ public ReadOnlyMemory? DescriptionEmbedding { get; set; } #### VectorStoreRecordVectorAttribute parameters -| Parameter | Required | Description | -|---------------------------|:--------:|------------------------------------------------------------------------------------------------------------------------------------------| -| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors. | -| Dimensions | Yes for collection create, optional otherwise | The number of dimensions that the vector has. This is typically required when creating a vector index for a collection. | -| IndexKind | No | The type of index to index the vector with. Default varies by vector store type. | -| DistanceFunction | No | The type of distance function to use when doing vector comparison during vector search over this vector. Default varies by vector store type. | +| Parameter | Required | Description | +|---------------------------|:--------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Dimensions | Yes for collection create, optional otherwise | The number of dimensions that the vector has. This is typically required when creating a vector index for a collection. | +| IndexKind | No | The type of index to index the vector with. Default varies by vector store type. | +| DistanceFunction | No | The type of distance function to use when doing vector comparison during vector search over this vector. Default varies by vector store type. | +| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors, e.g. where alternatives like `JsonPropertyNameAttribute` is supported. | Common index kinds and distance function types are supplied as static values on the `Microsoft.SemanticKernel.Data.IndexKind` and `Microsoft.SemanticKernel.Data.DistanceFunction` classes. Individual Vector Store implementations may also use their own index kinds and distance functions, where the database supports unusual types. +> [!TIP] +> For more information on which connectors support StoragePropertyName and what alternatives are available, refer to [the documentation for each connector](./out-of-the-box-connectors/index.md). + ::: zone-end ::: zone pivot="programming-language-python" diff --git a/semantic-kernel/concepts/vector-store-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/index.md index f055f8e4..7cb7f035 100644 --- a/semantic-kernel/concepts/vector-store-connectors/index.md +++ b/semantic-kernel/concepts/vector-store-connectors/index.md @@ -120,3 +120,4 @@ var retrievedHotel = await collection.GetAsync(1); > [!div class="nextstepaction"] > [Learn about the Vector Store data architecture](./data-architecture.md) +> [How to ingest data into a Vector Store](../../how-to/vector-store-connectors/vector-store-data-ingestion.md) diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md index fffda89a..d844450d 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md @@ -25,7 +25,7 @@ The Azure AI Search Vector Store connector can be used to access and manage data | Supports multiple vectors in a record | Yes | | IsFilterable supported? | Yes | | IsFullTextSearchable supported? | Yes | -| StoragePropertyName supported? | No | +| StoragePropertyName supported? | No, use `JsonSerializerOptions` and `JsonPropertyNameAttribute` instead. [See here for more info.](#data-mapping) | ::: zone pivot="programming-language-csharp" diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md index 848692bc..0f38386f 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md @@ -27,7 +27,7 @@ The connector has the following characteristics. | Supports multiple vectors in a record | Yes | | IsFilterable supported? | Yes | | IsFullTextSearchable supported? | Yes | -| StoragePropertyName supported? | **When using Hashes:** Yes
**When using JSON:** No | +| StoragePropertyName supported? | **When using Hashes:** Yes
**When using JSON:** No, use `JsonSerializerOptions` and `JsonPropertyNameAttribute` instead. [See here for more info.](#data-mapping) | ::: zone pivot="programming-language-csharp" diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md index 6bc84475..cc3ce6e8 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md @@ -28,7 +28,7 @@ The connector has the following characteristics. | Supports multiple vectors in a record | Yes | | IsFilterable supported? | Yes | | IsFullTextSearchable supported? | Yes | -| StoragePropertyName supported? | No | +| StoragePropertyName supported? | No, since storage is volatile and data reuse is therefore not possible, custom naming is not useful and not supported. | ::: zone pivot="programming-language-csharp" diff --git a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md index 15e1e800..725b4118 100644 --- a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md +++ b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md @@ -64,7 +64,10 @@ new VectorStoreRecordKeyProperty("HotelId", typeof(ulong)), |---------------------------|:--------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------| | DataModelPropertyName | Yes | The name of the property on the data model. Used by the built in mappers to automatically map between the storage schema and data model and for creating indexes. | | PropertyType | Yes | The type of the property on the data model. Used by the built in mappers to automatically map between the storage schema and data model and for creating indexes. | -| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors. | +| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors, e.g. where alternatives like `JsonPropertyNameAttribute` is supported. | + +> [!TIP] +> For more information on which connectors support StoragePropertyName and what alternatives are available, refer to [the documentation for each connector](./out-of-the-box-connectors/index.md). ### VectorStoreRecordDataProperty @@ -80,9 +83,12 @@ new VectorStoreRecordDataProperty("HotelName", typeof(string)) { IsFilterable = |---------------------------|:--------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------| | DataModelPropertyName | Yes | The name of the property on the data model. Used by the built in mappers to automatically map between the storage schema and data model and for creating indexes. | | PropertyType | Yes | The type of the property on the data model. Used by the built in mappers to automatically map between the storage schema and data model and for creating indexes. | -| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors. | | IsFilterable | No | Indicates whether the property should be indexed for filtering in cases where a database requires opting in to indexing per property. Default is false. | | IsFullTextSearchable | No | Indicates whether the property should be indexed for full text search for databases that support full text search. Default is false. | +| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors, e.g. where alternatives like `JsonPropertyNameAttribute` is supported. | + +> [!TIP] +> For more information on which connectors support StoragePropertyName and what alternatives are available, refer to [the documentation for each connector](./out-of-the-box-connectors/index.md). ### VectorStoreRecordVectorProperty @@ -98,10 +104,13 @@ new VectorStoreRecordVectorProperty("DescriptionEmbedding", typeof(float)) { Dim |---------------------------|:--------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------| | DataModelPropertyName | Yes | The name of the property on the data model. Used by the built in mappers to automatically map between the storage schema and data model and for creating indexes. | | PropertyType | Yes | The type of the property on the data model. Used by the built in mappers to automatically map between the storage schema and data model and for creating indexes. | -| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors. | | Dimensions | Yes for collection create, optional otherwise | The number of dimensions that the vector has. This is typically required when creating a vector index for a collection. | | IndexKind | No | The type of index to index the vector with. Default varies by vector store type. | | DistanceFunction | No | The type of distance function to use when doing vector comparison during vector search over this vector. Default varies by vector store type. | +| StoragePropertyName | No | Can be used to supply an alternative name for the property in the database. Note that this parameter is not supported by all connectors, e.g. where alternatives like `JsonPropertyNameAttribute` is supported. | + +> [!TIP] +> For more information on which connectors support StoragePropertyName and what alternatives are available, refer to [the documentation for each connector](./out-of-the-box-connectors/index.md). ::: zone-end ::: zone pivot="programming-language-python" From f50e39416d8e8e45f430c3efbc3db0f02e839b6b Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Thu, 8 Aug 2024 19:13:42 +0100 Subject: [PATCH 016/275] Use types instead of var in example Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com> --- semantic-kernel/concepts/vector-store-connectors/index.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/index.md index 7cb7f035..54ce2647 100644 --- a/semantic-kernel/concepts/vector-store-connectors/index.md +++ b/semantic-kernel/concepts/vector-store-connectors/index.md @@ -96,10 +96,12 @@ var collection = vectorStore.GetCollection("skhotels"); await collection.CreateCollectionIfNotExistsAsync(); // Upsert a record. -var descriptionText = "A place where everyone can be happy."; +string descriptionText = "A place where everyone can be happy."; +ulong hotelId = 1; + await collection.UpsertAsync(new Hotel { - HotelId = 1, + HotelId = hotelId, HotelName = "Hotel Happy", Description = descriptionText, DescriptionEmbedding = await GenerateEmbeddingAsync(descriptionText), @@ -107,7 +109,7 @@ await collection.UpsertAsync(new Hotel }); // Retrieve the upserted record. -var retrievedHotel = await collection.GetAsync(1); +Hotel retrievedHotel = await collection.GetAsync(hotelId); ``` ::: zone-end From 234164c5b18698e31144c1643fe5cb956618c8d5 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Fri, 9 Aug 2024 15:16:00 +0100 Subject: [PATCH 017/275] Add data ingestion how to --- .../vector-store-data-ingestion.md | 275 +++++++++++++++++- 1 file changed, 274 insertions(+), 1 deletion(-) diff --git a/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md b/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md index 641ae604..c0a76ced 100644 --- a/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md +++ b/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md @@ -1,10 +1,283 @@ --- title: How to ingest data into a Semantic Kernel Vector Store (Experimental) description: Step by step instructions on how to ingest data into a Vector Store using Semantic Kernel +zone_pivot_groups: programming-languages author: westey-m ms.topic: tutorial ms.author: westey ms.date: 07/08/2024 ms.service: semantic-kernel --- -# How to ingest data into a Vector Store (Experimental) +# How to ingest data into a Vector Store using Semantic Kernel (Experimental) + +This article will demonstrate how to create an application to + +1. Take text from each paragraph in a Microsoft Word document +2. Generate an embedding for each paragraph +3. Upsert the text, embedding and a reference to the original location into a Redis instance. + +## Prerequisites + +For this sample you will need + +1. An embedding generation model hosted in Azure or another provider of your choice. +2. An instance of Redis or Docker Desktop so that you can run Redis locally. + +## Setup Redis + +If you already have a Redis instance you can use that. If you prefer to test your project locally +you can easily start a Redis container using docker. + +``` +docker run -d --name redis-stack -p 6379:6379 -p 8001:8001 redis/redis-stack:latest +``` + +To verify that it is running succesfully, visit [http://localhost:8001/redis-stack/browser](http://localhost:8001/redis-stack/browser) in your browser. + +The rest of these instructions will assume that you are using this container using the above settings. + +::: zone pivot="programming-language-csharp" + +## Create your project + +Create a new project and add nuget package references for the Redis connector from Semantic Kernel, the open xml package to read the word +document with and the OpenAI connector from Semantic Kernel for generating embeddings. + +```dotnetcli +dotnet new console --framework net8.0 --name SKVectorIngest +cd SKVectorIngest +dotnet add package Microsoft.SemanticKernel.Connectors.OpenAI +dotnet add package Microsoft.SemanticKernel.Connectors.Redis --prerelease +dotnet add package DocumentFormat.OpenXml +``` + +## Add a data model + +To upload data we need to first describe what format the data should have in the database. +We can do this by creating a data model with attributes that describe the function of each property. + +Add a new file to the project called `TextParagraph.cs` and add the following model to it. + +```csharp +#pragma warning disable SKEXP0001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. + +using Microsoft.SemanticKernel.Data; + +namespace SKVectorIngest; + +internal class TextParagraph +{ + /// A unique key for the text paragraph. + [VectorStoreRecordKey] + public required string Key { get; init; } + + /// A uri that points at the original location of the document containing the text. + [VectorStoreRecordData] + public required string DocumentUri { get; init; } + + /// The id of the paragraph from the document containing the text. + [VectorStoreRecordData] + public required string ParagraphId { get; init; } + + /// The text of the paragraph. + [VectorStoreRecordData] + public required string Text { get; init; } + + /// The embedding generated from the Text. + [VectorStoreRecordVector(1536)] + public ReadOnlyMemory TextEmbedding { get; set; } +} +``` + +Note that we are passing the value `1536` to the `VectorStoreRecordVectorAttribute`. This is the dimension size of the vector and has to match the size of vector that your chosen embedding generator produces. + +> [!TIP] +> For more information on how to annotate your data model and what additional options are available for each attribute, refer to [definining your data model](../../concepts/vector-store-connectors/defining-your-data-model.md). + +## Read the paragraphs in the document + +We need some code to read the word document and find the text of each paragraph in it. + +Add a new file to the project called `DocumentReader.cs` and add the following class to read the paragraphs from a document. + +```csharp +using System.Text; +using System.Xml; +using DocumentFormat.OpenXml.Packaging; + +namespace SKVectorIngest; + +internal class DocumentReader +{ + public static IEnumerable ReadParagraphs(Stream documentContents, string documentUri) + { + // Open the document. + using WordprocessingDocument wordDoc = WordprocessingDocument.Open(documentContents, false); + if (wordDoc.MainDocumentPart == null) + { + yield break; + } + + // Create an XmlDocument to hold the document contents and load the document contents into the XmlDocument. + XmlDocument xmlDoc = new XmlDocument(); + XmlNamespaceManager nsManager = new XmlNamespaceManager(xmlDoc.NameTable); + nsManager.AddNamespace("w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main"); + nsManager.AddNamespace("w14", "http://schemas.microsoft.com/office/word/2010/wordml"); + + xmlDoc.Load(wordDoc.MainDocumentPart.GetStream()); + + // Select all paragraphs in the document and break if none found. + XmlNodeList? paragraphs = xmlDoc.SelectNodes("//w:p", nsManager); + if (paragraphs == null) + { + yield break; + } + + // Iterate over each paragraph. + foreach (XmlNode paragraph in paragraphs) + { + // Select all text nodes in the paragraph and continue if none found. + XmlNodeList? texts = paragraph.SelectNodes(".//w:t", nsManager); + if (texts == null) + { + continue; + } + + // Combine all non-empty text nodes into a single string. + var textBuilder = new StringBuilder(); + foreach (XmlNode text in texts) + { + if (!string.IsNullOrWhiteSpace(text.InnerText)) + { + textBuilder.Append(text.InnerText); + } + } + + // Yield a new TextParagraph if the combined text is not empty. + var combinedText = textBuilder.ToString(); + if (!string.IsNullOrWhiteSpace(combinedText)) + { + yield return new TextParagraph + { + Key = Guid.NewGuid().ToString(), + DocumentUri = documentUri, + ParagraphId = paragraph.Attributes?["w14:paraId"]?.Value ?? string.Empty, + Text = combinedText + }; + } + } + } +} +``` + +## Generate embeddings and upload the data + +We will need some code to generate embeddings and upload the paragraphs to Redis. Let's do this is a separate class. + +Add a new file called `DataUploader.cs` and add the following class to it. + +```csharp +#pragma warning disable SKEXP0001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. + +using Microsoft.SemanticKernel.Data; +using Microsoft.SemanticKernel.Embeddings; + +namespace SKVectorIngest; + +internal class DataUploader(IVectorStore vectorStore, ITextEmbeddingGenerationService textEmbeddingGenerationService) +{ + /// + /// Generate an embedding for each text paragraph and upload it to the specified collection. + /// + /// The name of the collection to upload the text paragraphs to. + /// The text paragraphs to upload. + /// An async task. + public async Task GenerateEmbeddingsAndUpload(string collectionName, IEnumerable textParagraphs) + { + var collection = vectorStore.GetCollection(collectionName); + await collection.CreateCollectionIfNotExistsAsync(); + + foreach (var paragraph in textParagraphs) + { + // Generate the text embedding. + paragraph.TextEmbedding = await textEmbeddingGenerationService.GenerateEmbeddingAsync(paragraph.Text); + + // Upload the text paragraph. + await collection.UpsertAsync(paragraph); + } + } +} +``` + +## Put it all together + +Finally, we need to put together the different pieces. +In this example, we will use the Semantic Kernel dependency injection container but it is also possible to use any `IServiceCollection` based container. + +Add the following code to your `Program.cs` file to create the container, register the Redis vector store and register the embedding service. +Make sure to replace the text embedding generation settings with your own values. + +```csharp +#pragma warning disable SKEXP0010 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. +#pragma warning disable SKEXP0020 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. + +using Microsoft.Extensions.DependencyInjection; +using Microsoft.SemanticKernel; +using SKVectorIngest; + +// Replace with your values. +var deploymentName = "text-embedding-ada-002"; +var endpoint = "https://sksample.openai.azure.com/"; +var apiKey = "your-api-key"; + +// Register Azure Open AI text embedding generation service and Redis vector store. +var builder = Kernel.CreateBuilder() + .AddAzureOpenAITextEmbeddingGeneration(deploymentName, endpoint, apiKey) + .AddRedisVectorStore("localhost:6379"); + +// Register the data uploader. +builder.Services.AddSingleton(); + +// Build the kernel and get the data uploader. +var kernel = builder.Build(); +var dataUploader = kernel.Services.GetRequiredService(); +``` + +As a last step, we want to read the paragraphs from our word document, and call the data uploader +to generate the embeddings and upload the paragraphs. + +```csharp +// Load the data. +var textParagraphs = DocumentReader.ReadParagraphs(new FileStream("C:\\test.docx", FileMode.Open), "file:///c:/test.docx"); +await dataUploader.GenerateEmbeddingsAndUpload("sk-documentation", textParagraphs); +``` + +## See your data in Redis + +Navigate to the Redis stack browser, e.g. [http://localhost:8001/redis-stack/browser](http://localhost:8001/redis-stack/browser) where you should be able to now see +your uploaded paragraphs. Here is an example of what you should see for one of the uploaded paragraphs. + +```json +{ + "DocumentUri" : "file:///c:/test.docx", + "ParagraphId" : "14CA7304", + "Text" : "Version 1.0+ support across C#, Python, and Java means it’s reliable, committed to non breaking changes. Any existing chat-based APIs are easily expanded to support additional modalities like voice and video.", + "TextEmbedding" : [...] +} +``` + +::: zone-end +::: zone pivot="programming-language-python" + +## Coming soon + +Further instructions coming soon + +::: zone-end +::: zone pivot="programming-language-java" + +## Coming soon + +Further instructions coming soon + +::: zone-end From c60dc2475554df095db34b07b7ce648c92cd2f85 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Fri, 9 Aug 2024 15:56:00 +0100 Subject: [PATCH 018/275] Add a csharp only pivot group and improve vector store lists --- .../defining-your-data-model.md | 8 +------- .../out-of-the-box-connectors/index.md | 16 +++++++++------- .../schema-with-record-definition.md | 6 +----- .../get-started/supported-languages.md | 9 +++++++-- semantic-kernel/zone-pivot-groups.yml | 8 +++++++- 5 files changed, 25 insertions(+), 22 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md index cb76be40..b0ed0007 100644 --- a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md +++ b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md @@ -1,7 +1,7 @@ --- title: Defining your Semantic Kernel Vector Store data model (Experimental) description: Describes how to create a data model with Semantic Kernel to use when writing to or reading from a Vector Store. -zone_pivot_groups: programming-languages +zone_pivot_groups: programming-languages-csharp author: westey-m ms.topic: reference ms.author: westey @@ -110,9 +110,3 @@ Individual Vector Store implementations may also use their own index kinds and d > For more information on which connectors support StoragePropertyName and what alternatives are available, refer to [the documentation for each connector](./out-of-the-box-connectors/index.md). ::: zone-end - -::: zone pivot="programming-language-python" -::: zone-end - -::: zone pivot="programming-language-java" -::: zone-end diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md index 6031e7cf..6f8530a9 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md @@ -13,10 +13,12 @@ Semantic Kernel provides a number of out-of-the-box Vector Store integrations ma ## List of out-of-the-box connectors -| Vector Store Connectors | C# | Python | Java | Using officially supported SDK | -|-----------------------------------------------------|:----:|:------:|:----:|:------------------------------:| -| [Azure AI Search](./azure-ai-search-connector.md) | ✅ | ✅ | ❌ | ✅ | -| [Pinecone](./pinecone-connector.md) | ✅ | ❌ | ❌ | ❌ | -| [Qdrant](./qdrant-connector.md) | ✅ | ✅ | ❌ | ✅ | -| [Redis](./redis-connector.md) | ✅ | ✅ | ❌ | ✅ | -| [Volatile (In-Memory)](./volatile-connector.md) | ✅ | ✅ | ❌ | N/A | +| Vector Store Connectors | C# | Python | Java | C# connector using officially supported SDK | +|-----------------------------------------------------|:----:|:------:|:----:|:-------------------------------------------:| +| [Azure AI Search](./azure-ai-search-connector.md) | ✅ | ✅ | 🔄 | ✅ | +| Cosmos DB No SQL | 🔄 | 🔄 | 🔄 | ✅ | +| Cosmos DB MongoDB | 🔄 | 🔄 | 🔄 | ✅ | +| [Pinecone](./pinecone-connector.md) | ✅ | 🔄 | 🔄 | ❌ | +| [Qdrant](./qdrant-connector.md) | ✅ | ✅ | 🔄 | ✅ | +| [Redis](./redis-connector.md) | ✅ | ✅ | 🔄 | ✅ | +| [Volatile (In-Memory)](./volatile-connector.md) | ✅ | ✅ | 🔄 | N/A | diff --git a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md index 725b4118..411440d7 100644 --- a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md +++ b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md @@ -1,7 +1,7 @@ --- title: Defining your Semantic Kernel storage schema using a record definition (Experimental) description: Describes how to create a record definition with Semantic Kernel to use when writing to or reading from a Vector Store. -zone_pivot_groups: programming-languages +zone_pivot_groups: programming-languages-csharp author: westey-m ms.topic: reference ms.author: westey @@ -113,7 +113,3 @@ new VectorStoreRecordVectorProperty("DescriptionEmbedding", typeof(float)) { Dim > For more information on which connectors support StoragePropertyName and what alternatives are available, refer to [the documentation for each connector](./out-of-the-box-connectors/index.md). ::: zone-end -::: zone pivot="programming-language-python" -::: zone-end -::: zone pivot="programming-language-java" -::: zone-end diff --git a/semantic-kernel/get-started/supported-languages.md b/semantic-kernel/get-started/supported-languages.md index d8f5f1a1..040651ba 100644 --- a/semantic-kernel/get-started/supported-languages.md +++ b/semantic-kernel/get-started/supported-languages.md @@ -176,8 +176,7 @@ Once you've created a prompt, you can serialize it so that it can be stored or s ### Memory Connectors (Experimental) > [!IMPORTANT] -> All of the existing memory connectors are currently experimental and are undergoing active development to improve the experience of using them. To provide feedback on the latest proposal, please refer to the active [Search](https://github.com/microsoft/semantic-kernel/pull/6012) and [Memory Connector](https://github.com/microsoft/semantic-kernel/pull/6364) ADRs. - +> All of the existing memory connectors are currently experimental and will be replaced by Vector Store connectors. These will provide more functionality via an updated abstraction layer. | Memory Connectors | C# | Python | Java | Notes | |--------------------------|:----:|:------:|:----:|-------| @@ -192,3 +191,9 @@ Once you've created a prompt, you can serialize it so that it can be stored or s | Sqlite | ✅ | ❌ | 🔄 | | | Weaviate | ✅ | ✅ | ❌ | | +### Vector Store Connectors (Experimental) + +> [!IMPORTANT] +> All of the existing Vector Store connectors are currently experimental and are undergoing active development to improve the experience of using them. To provide feedback on the latest proposal, please refer to the active [Search](https://github.com/microsoft/semantic-kernel/pull/6012) and [Memory Connector](https://github.com/microsoft/semantic-kernel/pull/6364) ADRs. + +For the list of out of the box vector store connectors and the language support for each, refer to [out of the box connectors](../concepts/vector-store-connectors/out-of-the-box-connectors/index.md). diff --git a/semantic-kernel/zone-pivot-groups.yml b/semantic-kernel/zone-pivot-groups.yml index cd152fd5..8c5e5b7d 100644 --- a/semantic-kernel/zone-pivot-groups.yml +++ b/semantic-kernel/zone-pivot-groups.yml @@ -9,4 +9,10 @@ groups: - id: programming-language-python title: Python - id: programming-language-java - title: Java \ No newline at end of file + title: Java +- id: programming-languages-csharp + title: Programming languages + prompt: Choose a programming language + pivots: + - id: programming-language-csharp + title: C# From d75d2d8fc88288f62516f9a41243b16457c211f8 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Fri, 9 Aug 2024 16:02:30 +0100 Subject: [PATCH 019/275] Go back to multiple pivots since one is not allowed --- .../defining-your-data-model.md | 16 ++++++++++++++++ .../schema-with-record-definition.md | 14 ++++++++++++++ semantic-kernel/zone-pivot-groups.yml | 6 ------ 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md index b0ed0007..acf0bdc3 100644 --- a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md +++ b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md @@ -110,3 +110,19 @@ Individual Vector Store implementations may also use their own index kinds and d > For more information on which connectors support StoragePropertyName and what alternatives are available, refer to [the documentation for each connector](./out-of-the-box-connectors/index.md). ::: zone-end + +::: zone pivot="programming-language-python" + +## Coming soon + +More info coming soon. + +::: zone-end + +::: zone pivot="programming-language-java" + +## Coming soon + +More info coming soon. + +::: zone-end diff --git a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md index 411440d7..2f04ee4e 100644 --- a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md +++ b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md @@ -113,3 +113,17 @@ new VectorStoreRecordVectorProperty("DescriptionEmbedding", typeof(float)) { Dim > For more information on which connectors support StoragePropertyName and what alternatives are available, refer to [the documentation for each connector](./out-of-the-box-connectors/index.md). ::: zone-end +::: zone pivot="programming-language-python" + +## Coming soon + +More info coming soon. + +::: zone-end +::: zone pivot="programming-language-java" + +## Coming soon + +More info coming soon. + +::: zone-end diff --git a/semantic-kernel/zone-pivot-groups.yml b/semantic-kernel/zone-pivot-groups.yml index 8c5e5b7d..977596dd 100644 --- a/semantic-kernel/zone-pivot-groups.yml +++ b/semantic-kernel/zone-pivot-groups.yml @@ -10,9 +10,3 @@ groups: title: Python - id: programming-language-java title: Java -- id: programming-languages-csharp - title: Programming languages - prompt: Choose a programming language - pivots: - - id: programming-language-csharp - title: C# From cb51683c1dbd1e33846e0df65420749a5f400e9c Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Fri, 9 Aug 2024 16:05:50 +0100 Subject: [PATCH 020/275] Use right pivot group name --- .../vector-store-connectors/defining-your-data-model.md | 2 +- .../vector-store-connectors/schema-with-record-definition.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md index acf0bdc3..9221f519 100644 --- a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md +++ b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md @@ -1,7 +1,7 @@ --- title: Defining your Semantic Kernel Vector Store data model (Experimental) description: Describes how to create a data model with Semantic Kernel to use when writing to or reading from a Vector Store. -zone_pivot_groups: programming-languages-csharp +zone_pivot_groups: programming-languages author: westey-m ms.topic: reference ms.author: westey diff --git a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md index 2f04ee4e..f32a4b13 100644 --- a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md +++ b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md @@ -1,7 +1,7 @@ --- title: Defining your Semantic Kernel storage schema using a record definition (Experimental) description: Describes how to create a record definition with Semantic Kernel to use when writing to or reading from a Vector Store. -zone_pivot_groups: programming-languages-csharp +zone_pivot_groups: programming-languages author: westey-m ms.topic: reference ms.author: westey From 10a9fe49358977f170943faf903d7080b3b02a25 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Fri, 9 Aug 2024 17:05:34 +0100 Subject: [PATCH 021/275] Apply suggestions from code review Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com> --- .../vector-store-connectors/vector-store-data-ingestion.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md b/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md index c0a76ced..e5855a24 100644 --- a/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md +++ b/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md @@ -172,7 +172,7 @@ internal class DocumentReader ## Generate embeddings and upload the data -We will need some code to generate embeddings and upload the paragraphs to Redis. Let's do this is a separate class. +We will need some code to generate embeddings and upload the paragraphs to Redis. Let's do this in a separate class. Add a new file called `DataUploader.cs` and add the following class to it. @@ -254,7 +254,7 @@ await dataUploader.GenerateEmbeddingsAndUpload("sk-documentation", textParagraph ## See your data in Redis -Navigate to the Redis stack browser, e.g. [http://localhost:8001/redis-stack/browser](http://localhost:8001/redis-stack/browser) where you should be able to now see +Navigate to the Redis stack browser, e.g. [http://localhost:8001/redis-stack/browser](http://localhost:8001/redis-stack/browser) where you should now be able to see your uploaded paragraphs. Here is an example of what you should see for one of the uploaded paragraphs. ```json From b0c1d6a3c16afa26e954e3ef928d232b462b2813 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Fri, 9 Aug 2024 18:05:37 +0100 Subject: [PATCH 022/275] Adding the custom mapper how to --- .../vector-store-custom-mapper.md | 190 ++++++++++++++++++ 1 file changed, 190 insertions(+) diff --git a/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md b/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md index bf4823e8..c7811bbf 100644 --- a/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md +++ b/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md @@ -1,6 +1,7 @@ --- title: How to create a custom mapper for a Semantic Kernel Vector Store connector (Experimental) description: Describes how to create a custom mapper for a Semantic Kernel Vector Store connector +zone_pivot_groups: programming-languages author: westey-m ms.topic: tutorial ms.author: westey @@ -8,3 +9,192 @@ ms.date: 07/08/2024 ms.service: semantic-kernel --- # How to create a custom mapper for a Vector Store connector (Experimental) + +In this how to, we will show how you can replace the default mapper with your own mapper, and how you can use a record definition to define a storage +schema that does not resemble your data model. We will use Qdrant, but the concepts will be similar for other connectors. + +## Background + +Each Vector Store connector includes a default mapper that can map from the provided data model to the storage schema supported by the underlying store. +Some stores allow a lot of freedom with regards to how data is stored while other stores require a more structured approach, e.g. where all vectors have +to be added to a dictionary of vectors and all non-vector fields to a dictionary of data fields. Therefore, mapping is an important part of abstracting +away the differences of each data store implementation. + +In some cases, the developer may want to replace the default mapper if e.g. they do not want their data model and storage schema to match, or they want +to build an optimized mapper for their scenario. +All Vector Store connector implementations allow you to provide a custom mapper that you can implement yourself. + +## Differences by vector store type + +The underlying data stores of each Vector Store connector have different ways of storing data. Therefore what you are mapping to on the storage side may +differ for each connector. + +::: zone pivot="programming-language-csharp" +E.g. if using the Qdrant connector, the storage type is a `PointStruct` class provided by the Qdrant SDK. If using the Redis JSON connector, the storage type +is a `string` key and a `JsonNode`, while if using a JSON HashSet connector, the storage type is a `string` key and a `HashEntry` array. +::: zone-end +::: zone pivot="programming-language-python" +::: zone-end +::: zone pivot="programming-language-java" +::: zone-end + +If you want to do custom mapping, and you want to use multiple connector types, you will therefore need to implement a mapper for each connector type. + +::: zone pivot="programming-language-csharp" + +## Creating the data model + +Our first step is to create a data model. In this case we will not annotate the data model with attributes, since we will provide a separate record definition +that describes what the database schema will look like. + +Note as well that this model is complex, with a seperate class to contain vectors and another for additional product info. + +```csharp +public class Product +{ + public ulong Id { get; set; } + public string Name { get; set; } + public string Description { get; set; } + public ProductVectors Vectors { get; set; } + public ProductInfo ProductInfo { get; set; } +} + +public class ProductInfo +{ + public double Price { get; set; } + public string SupplierId { get; set; } +} + +public class ProductVectors +{ + public ReadOnlyMemory NameEmbedding { get; set; } + public ReadOnlyMemory DescriptionEmbedding { get; set; } +} +``` + +## Creating the record definition + +We need to create a record definition instance to define what the database schema will look like. Normally a connector will require this information to do +mapping when using the default mapper. Since we are creating a custom mapper, this is not required for mapping, however, the connector will still require +this information for creating collections. + +Note that the definition here is different to the data model above. To store `ProductInfo` we have a string property called `ProductInfoJson`, and +the two vectors are defined at the same level as the `Id`, `Name` and `Description` fields. + +```csharp +using Microsoft.SemanticKernel.Data; + +var productDefinition = new VectorStoreRecordDefinition +{ + Properties = new List + { + new VectorStoreRecordKeyProperty("Id", typeof(ulong)), + new VectorStoreRecordDataProperty("Name", typeof(string)) { IsFilterable = true }, + new VectorStoreRecordDataProperty("Description", typeof(string)), + new VectorStoreRecordDataProperty("ProductInfoJson", typeof(string)), + new VectorStoreRecordVectorProperty("NameEmbedding", typeof(ReadOnlyMemory)) { Dimensions = 1536 }, + new VectorStoreRecordVectorProperty("DescriptionEmbedding", typeof(ReadOnlyMemory)) { Dimensions = 1536 } + } +}; +``` + +## Creating the custom mapper + +All mappers implement the generic interface `Microsoft.SemanticKernel.Data.IVectorStoreRecordMapper`. +`TRecordDataModel` will differ depending on what data model the developer wants to use, and `TStorageModel` will be determined by the type of Vector Store. + +For Qdrant `TStorageModel` is `Qdrant.Client.Grpc.PointStruct`. + +We therefore have to implement a mapper that will map between our `Product` data model and a Qdrant `PointStruct`. + +```csharp +using Microsoft.SemanticKernel.Data; +using Qdrant.Client.Grpc; + +public class ProductMapper : IVectorStoreRecordMapper +{ + public PointStruct MapFromDataToStorageModel(Product dataModel) + { + // Create a Qdrant PointStruct to map our data to. + var pointStruct = new PointStruct + { + Id = new PointId { Num = dataModel.Id }, + Vectors = new Vectors(), + Payload = { }, + }; + + // Add the data fields to the payload dictionary and serialize the product info into a json string. + pointStruct.Payload.Add("Name", dataModel.Name); + pointStruct.Payload.Add("Description", dataModel.Description); + pointStruct.Payload.Add("ProductInfoJson", JsonSerializer.Serialize(dataModel.ProductInfo)); + + // Add the vector fields to the vector dictionary. + var namedVectors = new NamedVectors(); + namedVectors.Vectors.Add("NameEmbedding", dataModel.Vectors.NameEmbedding.ToArray()); + namedVectors.Vectors.Add("DescriptionEmbedding", dataModel.Vectors.DescriptionEmbedding.ToArray()); + pointStruct.Vectors.Vectors_ = namedVectors; + + return pointStruct; + } + + public Product MapFromStorageToDataModel(PointStruct storageModel, StorageToDataModelMapperOptions options) + { + var product = new Product + { + Id = storageModel.Id.Num, + + // Retrieve the data fields from the payload dictionary and deserialize the product info from the json string that it was stored as. + Name = storageModel.Payload["Name"].StringValue, + Description = storageModel.Payload["Description"].StringValue, + ProductInfo = JsonSerializer.Deserialize(storageModel.Payload["ProductInfoJson"].StringValue)!, + + // Retrieve the vector fields from the vector dictionary. + Vectors = new ProductVectors + { + NameEmbedding = new ReadOnlyMemory(storageModel.Vectors.Vectors_.Vectors["NameEmbedding"].Data.ToArray()), + DescriptionEmbedding = new ReadOnlyMemory(storageModel.Vectors.Vectors_.Vectors["DescriptionEmbedding"].Data.ToArray()) + } + }; + + return product; + } +} +``` + +## Constructing the collection + +To use the custom mapper that we have created, we need to pass it to the collection at construction time. +We also need to pass the record definition that we created earlier, so that collections are created using +the right schema. +One more setting that we have to set, is to use Qdrant's named vectors mode, since we have more than one +vector. Without this mode switched on, only one vector is supported. + +```csharp +using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Connectors.Qdrant; +using Qdrant.Client; + +var productMapper = new ProductMapper(); +var collection = new QdrantVectorStoreRecordCollection( + new QdrantClient("localhost"), + "skproducts", + new() { HasNamedVectors = true, PointStructCustomMapper = productMapper, VectorStoreRecordDefinition = productDefinition }); +``` + +## Using a custom mapper with IVectorStore + +::: zone-end +::: zone pivot="programming-language-python" + +## Coming Soon + +More info coming soon. + +::: zone-end +::: zone pivot="programming-language-java" + +## Coming Soon + +More info coming soon. + +::: zone-end From 9ba2aea1a34c6d5c3ef70a029b587e6fa1cc28e1 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Fri, 9 Aug 2024 18:24:44 +0100 Subject: [PATCH 023/275] Add collection factory --- .../vector-store-custom-mapper.md | 71 ++++++++++++++++++- 1 file changed, 68 insertions(+), 3 deletions(-) diff --git a/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md b/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md index c7811bbf..2ac5a476 100644 --- a/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md +++ b/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md @@ -76,7 +76,7 @@ public class ProductVectors We need to create a record definition instance to define what the database schema will look like. Normally a connector will require this information to do mapping when using the default mapper. Since we are creating a custom mapper, this is not required for mapping, however, the connector will still require -this information for creating collections. +this information for creating collections in the data store. Note that the definition here is different to the data model above. To store `ProductInfo` we have a string property called `ProductInfoJson`, and the two vectors are defined at the same level as the `Id`, `Name` and `Description` fields. @@ -164,8 +164,8 @@ public class ProductMapper : IVectorStoreRecordMapper ## Constructing the collection To use the custom mapper that we have created, we need to pass it to the collection at construction time. -We also need to pass the record definition that we created earlier, so that collections are created using -the right schema. +We also need to pass the record definition that we created earlier, so that collections are created in the +data store using the right schema. One more setting that we have to set, is to use Qdrant's named vectors mode, since we have more than one vector. Without this mode switched on, only one vector is supported. @@ -183,6 +183,71 @@ var collection = new QdrantVectorStoreRecordCollection( ## Using a custom mapper with IVectorStore +When using `IVectorStore` to get `IVectorStoreRecordCollection` object instances, it is not possible to provide a custom mapper directly to +the `GetCollection` method. This is because custom mappers differ for each Vector Store type, and would make it impossible to use `IVectorStore` +to communicate with any vector store implementation. + +It is however possible to provide a factory when constructing a Vector Store implementation. This can be used to customize `IVectorStoreRecordCollection` +instances as they are created. + +Here is an example of such a factory, which checks if the someone called `CreateCollection` with the product definition and data type, and if so +injects the custom mapper and switches on named vectors mode. + +```csharp +public class QdrantCollectionFactory(VectorStoreRecordDefinition productDefinition) : IQdrantVectorStoreRecordCollectionFactory +{ + public IVectorStoreRecordCollection CreateVectorStoreRecordCollection(QdrantClient qdrantClient, string name, VectorStoreRecordDefinition? vectorStoreRecordDefinition) + where TKey : notnull + where TRecord : class + { + // If the record definition is the product definition and the record type is the product data model, inject the custom mapper into the collection options. + if (vectorStoreRecordDefinition == productDefinition && typeof(TRecord) == typeof(Product)) + { + var customCollection = new QdrantVectorStoreRecordCollection( + qdrantClient, + name, + new() + { + HasNamedVectors = true, + PointStructCustomMapper = new ProductMapper(), + VectorStoreRecordDefinition = vectorStoreRecordDefinition + }) as IVectorStoreRecordCollection; + return customCollection!; + } + + // Otherwise, just create a standard collection with the default mapper. + var collection = new QdrantVectorStoreRecordCollection( + qdrantClient, + name, + new() + { + VectorStoreRecordDefinition = vectorStoreRecordDefinition + }) as IVectorStoreRecordCollection; + return collection!; + } +} +``` + +To use the collection factory, pass it to the Vector Store when constructing it, or when registering it with the dependency injection container. + +```csharp +// When registering with the dependency injection container on the kernel builder. +kernelBuilder.AddQdrantVectorStore( + "localhost", + options: new() + { + VectorStoreCollectionFactory = new QdrantCollectionFactory(productDefinition) + }); + +// When constructing the Vector Store instance directly. +var vectorStore = new QdrantVectorStore( + new QdrantClient("localhost"), + new() + { + VectorStoreCollectionFactory = new QdrantCollectionFactory(productDefinition) + }); +``` + ::: zone-end ::: zone pivot="programming-language-python" From e435a72926295c1af26fff52dacc48196b51cd95 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Fri, 9 Aug 2024 18:36:45 +0100 Subject: [PATCH 024/275] Add tweaks and improve formatting. --- .../vector-store-custom-mapper.md | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md b/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md index 2ac5a476..f3438f40 100644 --- a/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md +++ b/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md @@ -22,7 +22,7 @@ away the differences of each data store implementation. In some cases, the developer may want to replace the default mapper if e.g. they do not want their data model and storage schema to match, or they want to build an optimized mapper for their scenario. -All Vector Store connector implementations allow you to provide a custom mapper that you can implement yourself. +All Vector Store connector implementations allow you to provide a custom mapper. ## Differences by vector store type @@ -47,7 +47,7 @@ If you want to do custom mapping, and you want to use multiple connector types, Our first step is to create a data model. In this case we will not annotate the data model with attributes, since we will provide a separate record definition that describes what the database schema will look like. -Note as well that this model is complex, with a seperate class to contain vectors and another for additional product info. +Also note that this model is complex, with seperate classes for vectors and additional product info. ```csharp public class Product @@ -166,7 +166,7 @@ public class ProductMapper : IVectorStoreRecordMapper To use the custom mapper that we have created, we need to pass it to the collection at construction time. We also need to pass the record definition that we created earlier, so that collections are created in the data store using the right schema. -One more setting that we have to set, is to use Qdrant's named vectors mode, since we have more than one +One more setting that is important here, is Qdrant's named vectors mode, since we have more than one vector. Without this mode switched on, only one vector is supported. ```csharp @@ -178,7 +178,12 @@ var productMapper = new ProductMapper(); var collection = new QdrantVectorStoreRecordCollection( new QdrantClient("localhost"), "skproducts", - new() { HasNamedVectors = true, PointStructCustomMapper = productMapper, VectorStoreRecordDefinition = productDefinition }); + new() + { + HasNamedVectors = true, + PointStructCustomMapper = productMapper, + VectorStoreRecordDefinition = productDefinition + }); ``` ## Using a custom mapper with IVectorStore @@ -190,7 +195,7 @@ to communicate with any vector store implementation. It is however possible to provide a factory when constructing a Vector Store implementation. This can be used to customize `IVectorStoreRecordCollection` instances as they are created. -Here is an example of such a factory, which checks if the someone called `CreateCollection` with the product definition and data type, and if so +Here is an example of such a factory, which checks if `CreateCollection` was called with the product definition and data type, and if so injects the custom mapper and switches on named vectors mode. ```csharp @@ -248,6 +253,12 @@ var vectorStore = new QdrantVectorStore( }); ``` +Then just use the vector store as normal to get a collection. + +```csharp +var collection = vectorStore.GetCollection("skproducts", productDefinition); +``` + ::: zone-end ::: zone pivot="programming-language-python" From 41905eb32bc8daa96d29f0b9889f2464ec4aeefc Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Mon, 12 Aug 2024 12:21:28 +0100 Subject: [PATCH 025/275] Add clarification around attribute usage. --- .../vector-store-connectors/vector-store-custom-mapper.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md b/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md index f3438f40..422bf08f 100644 --- a/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md +++ b/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md @@ -98,6 +98,10 @@ var productDefinition = new VectorStoreRecordDefinition }; ``` +> [!IMPORTANT] +> For this scenario, it would not be possible to use attributes instead of a record definition since the storage schema does +> not resemble the data model. + ## Creating the custom mapper All mappers implement the generic interface `Microsoft.SemanticKernel.Data.IVectorStoreRecordMapper`. From 4af1d826bd0cf4e77962625e6d0040bb92c67fa2 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Mon, 12 Aug 2024 15:52:50 +0100 Subject: [PATCH 026/275] Address pr feedback. --- .../vector-store-custom-mapper.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md b/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md index 422bf08f..02c6274a 100644 --- a/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md +++ b/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md @@ -10,8 +10,9 @@ ms.service: semantic-kernel --- # How to create a custom mapper for a Vector Store connector (Experimental) -In this how to, we will show how you can replace the default mapper with your own mapper, and how you can use a record definition to define a storage -schema that does not resemble your data model. We will use Qdrant, but the concepts will be similar for other connectors. +In this how to, we will show how you can replace the default mapper for a vector store record collection with your own mapper. + +We will use Qdrant to demonstrate this functionality, but the concepts will be similar for other connectors. ## Background @@ -20,8 +21,11 @@ Some stores allow a lot of freedom with regards to how data is stored while othe to be added to a dictionary of vectors and all non-vector fields to a dictionary of data fields. Therefore, mapping is an important part of abstracting away the differences of each data store implementation. -In some cases, the developer may want to replace the default mapper if e.g. they do not want their data model and storage schema to match, or they want -to build an optimized mapper for their scenario. +In some cases, the developer may want to replace the default mapper if e.g. + +1. they want to use a data model that differs from the storage scheam. +2. they want to build a performance optimized mapper for their scenario. + All Vector Store connector implementations allow you to provide a custom mapper. ## Differences by vector store type @@ -165,9 +169,9 @@ public class ProductMapper : IVectorStoreRecordMapper } ``` -## Constructing the collection +## Using your custom mapper with a record collection -To use the custom mapper that we have created, we need to pass it to the collection at construction time. +To use the custom mapper that we have created, we need to pass it to the record collection at construction time. We also need to pass the record definition that we created earlier, so that collections are created in the data store using the right schema. One more setting that is important here, is Qdrant's named vectors mode, since we have more than one From fe14ef9f328d434370e87e449ac53a543839a67e Mon Sep 17 00:00:00 2001 From: Roger Barreto Date: Tue, 13 Aug 2024 02:54:38 -0700 Subject: [PATCH 027/275] OpenAI V2 Migration Guide --- semantic-kernel/support/toc.yml | 2 + ...on-guide.md => v1-migration-guide copy.md} | 0 .../support/v2-openai-migration-guide.md | 211 ++++++++++++++++++ 3 files changed, 213 insertions(+) rename semantic-kernel/support/{v1-migration-guide.md => v1-migration-guide copy.md} (100%) create mode 100644 semantic-kernel/support/v2-openai-migration-guide.md diff --git a/semantic-kernel/support/toc.yml b/semantic-kernel/support/toc.yml index 12aabca5..012605ed 100644 --- a/semantic-kernel/support/toc.yml +++ b/semantic-kernel/support/toc.yml @@ -1,5 +1,7 @@ - name: Overview href: index.md +- name: Migrating OpenAI to 1.18.0+ + href: v2-openai-migration-guide.md - name: Migrating to v1+ href: v1-migration-guide.md - name: Glossary diff --git a/semantic-kernel/support/v1-migration-guide.md b/semantic-kernel/support/v1-migration-guide copy.md similarity index 100% rename from semantic-kernel/support/v1-migration-guide.md rename to semantic-kernel/support/v1-migration-guide copy.md diff --git a/semantic-kernel/support/v2-openai-migration-guide.md b/semantic-kernel/support/v2-openai-migration-guide.md new file mode 100644 index 00000000..4513aefb --- /dev/null +++ b/semantic-kernel/support/v2-openai-migration-guide.md @@ -0,0 +1,211 @@ +--- +title: OpenAI Connector Migration Guide .Net Semantic Kernel SDK +description: Learn how to migrate .Net OpenAI Connectors after 1.18.0. +author: rogerbarreto +ms.topic: tutorial +ms.author: rbarreto +ms.date: 2024-08-13 +ms.-service: semantic-kernel +---- + +# OpenAI Connector Migration Guide + +Coming as part of the new **1.18.0** version of Semantic Kernel we migrated our `OpenAI` and `AzureOpenAI` services to use the new `OpenAI SDK v2.0` and `Azure OpenAI SDK v2.0` SDKs. + +As those changes were major breaking changes when implementing ours we looked forward to break as minimal as possible the dev experience. + +This guide prepares you for the migration that you may need to do to use our new OpenAI Connector is a complete rewrite of the existing OpenAI Connector and is designed to be more efficient, reliable, and scalable. This manual will guide you through the migration process and help you understand the changes that have been made to the OpenAI Connector. + +Those changes are needed for anyone using `OpenAI` or `AzureOpenAI` connectors with Semantic Kernel version `1.18.0-rc` or above. + +## 1. Package Setup when using Azure only services + +If you are working with Azure services you will need to change the package from `Microsoft.SemanticKernel.Connectors.OpenAI` to `Microsoft.SemanticKernel.Connectors.AzureOpenAI`. This is necessary as we created two distinct connectors for each. + +> [!IMPORTANT] +> The `Microsoft.SemanticKernel.Connectors.AzureOpenAI` package depends on the `Microsoft.SemanticKernel.Connectors.OpenAI` package so there's no need to add both to your project when using `OpenAI` related types. + +```diff +Before +- using Microsoft.SemanticKernel.Connectors.OpenAI; +After ++ using Microsoft.SemanticKernel.Connectors.AzureOpenAI; +``` + +### 1.1 AzureOpenAIClient + +When using Azure with OpenAI, before where you were using `OpenAIClient` you will need to update your code to use the new `AzureOpenAIClient` type. + +### 1.2 Services + +All services below now belong to the `Microsoft.SemanticKernel.Connectors.AzureOpenAI` namespace. + +- `AzureOpenAIAudioToTextService` +- `AzureOpenAIChatCompletionService` +- `AzureOpenAITextEmbeddingGenerationService` +- `AzureOpenAITextToAudioService` +- `AzureOpenAITextToImageService` + +## 2. Text Generation Deprecation + +The latest `OpenAI` SDK does not support text generation modality, when migrating to their underlying SDK we had to drop support as well and remove `TextGeneration` specific services. + +If you were using any of the `OpenAITextGenerationService` or `AzureOpenAITextGenerationService` you will need to update your code to target a chat completion model instead, using `OpenAIChatCompletionService` or `AzureOpenAIChatCompletionService` instead. + +> [!NOTE] +> OpenAI and AzureOpenAI `ChatCompletion` services also implement the `ITextGenerationService` interface and that may not require any changes to your code if you were targeting the `ITextGenerationService` interface. + +tags: `AddOpenAITextGeneration`, `AddAzureOpenAITextGeneration` + +## 3. ChatCompletion Multiple Choices Deprecated + +The latest `OpenAI` SDK does not support multiple choices, when migrating to their underlying SDK we had to drop the support and remove `ResultsPerPrompt` also from the `OpenAIPromptExecutionSettings`. + +tags: `results_per_prompt` + +## 4. OpenAI File Service Deprecation + +The `OpenAIFileService` was deprecated in the latest version of the OpenAI Connector. We strongly recommend to update your code to use the new `OpenAIClient.GetFileClient()` for file management operations. + +## 5. SemanticKernel MetaPackage + +To be retrocompatible with the new OpenAI and AzureOpenAI Connectors, our `Microsoft.SemanticKernel` meta package changed its dependency to use the new `Microsoft.SemanticKernel.Connectors.AzureOpenAI` package that depends on the `Microsoft.SemanticKernel.Connectors.OpenAI` package. This way if you are using the metapackage, no change is needed to get access to `Azure` related types. + +## 6. Chat Message Content Changes + +### 6.1 OpenAIChatMessageContent + +- The `Tools` property type has changed from `IReadOnlyList` to `IReadOnlyList`. + +- Inner content type has changed from `ChatCompletionsFunctionToolCall` to `ChatToolCall`. + +- Metadata type `FunctionToolCalls` has changed from `IEnumerable` to `IEnumerable`. + +### 6.2 OpenAIStreamingChatMessageContent + +- The `FinishReason` property type has changed from `CompletionsFinishReason` to `FinishReason`. +- The `ToolCallUpdate` property has been renamed to `ToolCallUpdates` and its type has changed from `StreamingToolCallUpdate?` to `IReadOnlyList?`. +- The `AuthorName` property is not initialized because it's not provided by the underlying library anymore. + +## 7. Metrics for AzureOpenAI Connector + +The meter `s_meter = new("Microsoft.SemanticKernel.Connectors.OpenAI");` and the relevant counters still have old names that contain "openai" in them, such as: + +- `semantic_kernel.connectors.openai.tokens.prompt` +- `semantic_kernel.connectors.openai.tokens.completion` +- `semantic_kernel.connectors.openai.tokens.total` + +## 8. Using Azure with your data (Data Sources) + +With the new `AzureOpenAIClient`, you can now specify your datasource thru the options and that requires a small change in your code to the new type. + +Before + +```csharp +var promptExecutionSettings = new OpenAIPromptExecutionSettings +{ + AzureChatExtensionsOptions = new AzureChatExtensionsOptions + { + Extensions = [ new AzureSearchChatExtensionConfiguration + { + SearchEndpoint = new Uri(TestConfiguration.AzureAISearch.Endpoint), + Authentication = new OnYourDataApiKeyAuthenticationOptions(TestConfiguration.AzureAISearch.ApiKey), + IndexName = TestConfiguration.AzureAISearch.IndexName + }] + }; +}; +``` + +After + +```csharp +var promptExecutionSettings = new AzureOpenAIPromptExecutionSettings +{ + AzureChatDataSource = new AzureSearchChatDataSource + { + Endpoint = new Uri(TestConfiguration.AzureAISearch.Endpoint), + Authentication = DataSourceAuthentication.FromApiKey(TestConfiguration.AzureAISearch.ApiKey), + IndexName = TestConfiguration.AzureAISearch.IndexName + } +}; +``` +Tags: `WithData`, `AzureOpenAIChatCompletionWithDataConfig`, `AzureOpenAIChatCompletionWithDataService` + +## 9. Breaking glass scenarios + +Breaking glass scenarios are scenarios where you may need to update your code to use the new OpenAI Connector. Below are some of the breaking changes that you may need to be aware of. + +#### 9.1 KernelContent Metadata + +Some of the keys in the content metadata dictionary have changed and removed. + +- Changed: `Created` -> `CreatedAt` +- Changed: `LogProbabilityInfo` -> `ContentTokenLogProbabilities` +- Changed: `PromptFilterResults` -> `ContentFilterResultForPrompt` +- Changed: `ContentFilterResultsForPrompt` -> `ContentFilterResultForResponse` +- Removed: `FinishDetails` +- Removed: `Index` +- Removed: `Enhancements` + +#### 9.2 Prompt Filter Results + +The `PromptFilterResults` metadata type has changed from `IReadOnlyList` to `ContentFilterResultForPrompt`. + +#### 9.3 Content Filter Results + +The `ContentFilterResultsForPrompt` type has changed from `ContentFilterResultsForChoice` to `ContentFilterResultForResponse`. + +#### 9.4 Finish Reason + +The FinishReason metadata string value has changed from `stop` to `Stop` + +#### 9.5 Tool Calls + +The ToolCalls metadata string value has changed from `tool_calls` to `ToolCalls` + +#### 9.6 LogProbs / Log Probability Info + +The `LogProbabilityInfo` type has changed from `ChatChoiceLogProbabilityInfo` to `IReadOnlyList`. + +#### 9.8 Token Usage + +The Token usage naming convention from `OpenAI` changed from `Completion`, `Prompt` tokens to `Output` and `Input` respectively. You will need to update your code to use the new naming. + +The type also changed from `CompletionsUsage` to `ChatTokenUsage`. + +[Example of Token Usage Metadata Changes](https://github.com/microsoft/semantic-kernel/pull/7151/files#diff-a323107b9f8dc8559a83e50080c6e34551ddf6d9d770197a473f249589e8fb47) + +```diff +Before +- var usage = FunctionResult.Metadata?["Usage"] as CompletionsUsage; +- var completionTokesn = usage?.CompletionTokens; +- var promptTokens = usage?.PromptTokens; + +After ++ var usage = FunctionResult.Metadata?["Usage"] as ChatTokenUsage; ++ var promptTokens = usage?.InputTokens; ++ var completionTokens = completionTokens: usage?.OutputTokens; +``` + +#### 9.9 OpenAIClient + +The `OpenAIClient` type previously was a Azure specific namespace type but now it is an `OpenAI` SDK namespace type, you will need to update your code to use the new `OpenAIClient` type. + +When using Azure, you will need to update your code to use the new `AzureOpenAIClient` type. + +#### 9.10 Pipeline Configuration + +The new `OpenAI` SDK uses a different pipeline configuration, and has a dependency on `System.ClientModel` package. You will need to update your code to use the new `HttpClientPipelineTransport` transport configuration where before you were using `HttpClientTransport` from `Azure.Core.Pipeline`. + +[Example of Pipeline Configuration](https://github.com/microsoft/semantic-kernel/pull/7151/files#diff-fab02d9a75bf43cb57f71dddc920c3f72882acf83fb125d8cad963a643d26eb3) + +```diff +var clientOptions = new OpenAIClientOptions +{ +Before: From Azure.Core.Pipeline +- Transport = new HttpClientTransport(httpClient), + +After: From OpenAI SDK -> System.ClientModel ++ Transport = new HttpClientPipelineTransport(httpClient), +}; +``` From cb9c2134a7d2bfa80cb8baa58ca507cac8112566 Mon Sep 17 00:00:00 2001 From: Roger Barreto Date: Tue, 13 Aug 2024 03:01:24 -0700 Subject: [PATCH 028/275] Update --- .../{v1-migration-guide copy.md => v1-migration-guide.md} | 0 semantic-kernel/support/v2-openai-migration-guide.md | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename semantic-kernel/support/{v1-migration-guide copy.md => v1-migration-guide.md} (100%) diff --git a/semantic-kernel/support/v1-migration-guide copy.md b/semantic-kernel/support/v1-migration-guide.md similarity index 100% rename from semantic-kernel/support/v1-migration-guide copy.md rename to semantic-kernel/support/v1-migration-guide.md diff --git a/semantic-kernel/support/v2-openai-migration-guide.md b/semantic-kernel/support/v2-openai-migration-guide.md index 4513aefb..0e31ee50 100644 --- a/semantic-kernel/support/v2-openai-migration-guide.md +++ b/semantic-kernel/support/v2-openai-migration-guide.md @@ -4,8 +4,8 @@ description: Learn how to migrate .Net OpenAI Connectors after 1.18.0. author: rogerbarreto ms.topic: tutorial ms.author: rbarreto -ms.date: 2024-08-13 -ms.-service: semantic-kernel +ms.date: 08/13/2024 +ms.service: semantic-kernel ---- # OpenAI Connector Migration Guide From 52f2b3e77e4963cf344a59c95cf3e9767d7ebf63 Mon Sep 17 00:00:00 2001 From: Roger Barreto Date: Tue, 13 Aug 2024 03:11:15 -0700 Subject: [PATCH 029/275] Removing extra dash --- semantic-kernel/support/v2-openai-migration-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/semantic-kernel/support/v2-openai-migration-guide.md b/semantic-kernel/support/v2-openai-migration-guide.md index 0e31ee50..a17796e3 100644 --- a/semantic-kernel/support/v2-openai-migration-guide.md +++ b/semantic-kernel/support/v2-openai-migration-guide.md @@ -6,7 +6,7 @@ ms.topic: tutorial ms.author: rbarreto ms.date: 08/13/2024 ms.service: semantic-kernel ----- +--- # OpenAI Connector Migration Guide From 853a051fcc3f493a67c8a4ecaedbd5a174f73a2f Mon Sep 17 00:00:00 2001 From: Roger Barreto Date: Tue, 13 Aug 2024 03:21:07 -0700 Subject: [PATCH 030/275] Changing title --- semantic-kernel/support/v2-openai-migration-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/semantic-kernel/support/v2-openai-migration-guide.md b/semantic-kernel/support/v2-openai-migration-guide.md index a17796e3..cd7b987a 100644 --- a/semantic-kernel/support/v2-openai-migration-guide.md +++ b/semantic-kernel/support/v2-openai-migration-guide.md @@ -1,5 +1,5 @@ --- -title: OpenAI Connector Migration Guide .Net Semantic Kernel SDK +title: OpenAI Connector Migration Guide description: Learn how to migrate .Net OpenAI Connectors after 1.18.0. author: rogerbarreto ms.topic: tutorial From 1c760957c08693977de1eef319ee6ee00b67fa2c Mon Sep 17 00:00:00 2001 From: Sophia Lagerkrans-Pandey <163188263+sophialagerkranspandey@users.noreply.github.com> Date: Tue, 13 Aug 2024 09:36:19 -0700 Subject: [PATCH 031/275] Add files via upload --- semantic-kernel/media/UpdatedPythonMap.png | Bin 0 -> 85918 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 semantic-kernel/media/UpdatedPythonMap.png diff --git a/semantic-kernel/media/UpdatedPythonMap.png b/semantic-kernel/media/UpdatedPythonMap.png new file mode 100644 index 0000000000000000000000000000000000000000..9a6116c2792d6202a13268b3a8eb5e87dbed4459 GIT binary patch literal 85918 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 z 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 z zItn<;#u6M+%CFzE$a_g?!!MT==vI{1qo5IqiBWa-bZ*@%!}7%9_ts21H33V`o5#O9 zuqIm^p$)kGG%ssW;+-tD?lyyjYdO4^gFLnee#t{E0m%XGeInzGwUK2U#w?fj0WRCS z{a3@#yIQnz?W7GcdzL50O=qX(kN|{TSnhgQe5zAk%g&@TJ55YHEwxsGF?bv&EhwjX zv=~CNr!YeY+H;uv5DiGY?%E|7UfSYOe3*Ey$`WcgXu%lA?+$&gSB_6p`rt#f zwc%PT>vF{)c}h+$dl6CTr5iyVBzg2062GK9eZH(1pdcNIJ^B?^gwqG*3jP_O? zsOd>9)#auuzugXF?Wcu;2>6wjRgS`sA}%ISTH5YH`n8{aU|#k6${Bc&xAVA$t_yeK zM#hQtB67-glp*MJtknvk94^?I$jD5x|ND0!8YMN_pEdT2@diz57D45m+27iPi+^<6|?*ikZLaUb7J*XB9v45l8zw;4Jpnqcl=kK z{w-!uk=~gsC*q8)JcPb3Jt!c|DE9h};o;H70)q*u3#InPosM0|$$^e9&wjs?Mu)_> zXGImdEBMJ;`t1=WQRu}Ro9LM+&ij8-140MJ5Ivpy4v^Eg{ZSP!$|f%_*2S|q(wd!v z%lt!{)OZ-(J(=elWRx=FCp7?{b@ju(n6b> zUk9`nzEw&1^>@O_m*tH4x_Y=E9~i#V-Bo}Gsqu>}Pa+=tWWD0h0We=gK&IhYy=L}@ zn#3fL)Ult)(Fdl!@`iwjw!SBlH=%sR@`ZuNMv`H485R6eXvmNbO70U4FLV*M6atiB z+lLO*X_twSf)4gicP|QH7PQLJeBEtzoT?oeKwD^FkBKdad%D_%FHqHE3a8ZUTjeyA zn5t;Z{Q0vhxO_Lsc!RVN8!Pv>YsyXKv^4+seuK5;5#ZW_iEGk}gz?ZJaP^v45cuxMvnj_tfM3X?-jgs+P zKov?ddZIjnS73&uhtht-PhAq$;?F2l>cah_s{Gt)u;A6{evhz)s{d3#ihst7toX0xmDxQNZWLfm5ecCgJ+mlD^KMxV zYPG69(2i&0OCSCG7L~}Q@cT3r_Z*2z#281YhpSt?Yb4DtWy*XP{$ls|hwZ0NKcyrg z3-6aj0*_r!7Cuif_R>mBHCKEl;Aj-ob2bZTE#ox2_J2@#Vi~>XUJ)yFp6ZZMD3bD4 zY>BRX+_0E{<8iUg;XQAohN+Q`xoOXKz`|B;T%~!3H~cAb9lm+K(Zfs*(H?V$V9`wh zDR?(-=mYd%i{}FSiB71|WWlgP^I9CrarZqxeRWA*s

&e^CSPhe2addF%?y-V7; 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 Lnp}m9`RD%&tax6) literal 0 HcmV?d00001 From 9eaa24141bd717203206277dc7ac145f66bef97e Mon Sep 17 00:00:00 2001 From: Sophia Lagerkrans-Pandey <163188263+sophialagerkranspandey@users.noreply.github.com> Date: Tue, 13 Aug 2024 11:08:37 -0700 Subject: [PATCH 032/275] Update quick-start-guide.md Update to python map --- semantic-kernel/get-started/quick-start-guide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/semantic-kernel/get-started/quick-start-guide.md b/semantic-kernel/get-started/quick-start-guide.md index 4dc7b5fe..4c6fcdcb 100644 --- a/semantic-kernel/get-started/quick-start-guide.md +++ b/semantic-kernel/get-started/quick-start-guide.md @@ -268,7 +268,7 @@ If you're interested in understanding more about the code above, we'll break it To make it easier to get started building enterprise apps with Semantic Kernel, we've created a step-by-step that guides you through the process of creating a kernel and using it to interact with AI services. ::: zone pivot="programming-language-python" -![Semantic Kernel Python map](../media/PythonMap.png) +![Semantic Kernel Python map](../media/UpdatedPythonMap.png) ::: zone-end ::: zone pivot="programming-language-csharp" @@ -679,4 +679,4 @@ result = (await chat_completion.get_chat_message_contents( ## Next steps -In this guide, you learned how to quickly get started with Semantic Kernel by building a simple AI agent that can interact with an AI service and run your code. To see more examples and learn how to build more complex AI agents, check out our [in-depth samples](../get-started/detailed-samples.md). \ No newline at end of file +In this guide, you learned how to quickly get started with Semantic Kernel by building a simple AI agent that can interact with an AI service and run your code. To see more examples and learn how to build more complex AI agents, check out our [in-depth samples](../get-started/detailed-samples.md). From 81f2b10130bfc917f71d561271206a6e741c409b Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Wed, 14 Aug 2024 10:36:47 +0100 Subject: [PATCH 033/275] Apply suggestions from code review Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com> --- .../defining-your-data-model.md | 8 +++++--- .../azure-ai-search-connector.md | 4 ++-- .../pinecone-connector.md | 4 ++-- .../qdrant-connector.md | 16 ++++++++-------- .../out-of-the-box-connectors/redis-connector.md | 2 +- 5 files changed, 18 insertions(+), 16 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md index 9221f519..f8e9bf2a 100644 --- a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md +++ b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md @@ -16,7 +16,7 @@ The Semantic Kernel Vector Store connectors use a model first approach to intera ::: zone pivot="programming-language-csharp" All methods to upsert or get records use strongly typed model classes. -The properties on these classes are decorated with attributes that indicate the pupose of each property. +The properties on these classes are decorated with attributes that indicate the purpose of each property. > [!TIP] > For an alternative to using attributes, refer to [definining your schema with a record definition](./schema-with-record-definition.md). @@ -24,7 +24,9 @@ The properties on these classes are decorated with attributes that indicate the Here is an example of a model that is decorated with these attributes. ```csharp -using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Data; + +#pragma warning disable SKEXP0001 public class Hotel { @@ -90,7 +92,7 @@ public string HotelName { get; set; } Use this attribute to incidate that your property contains a vector. ```csharp -[VectorStoreRecordVector(4, IndexKind.Hnsw, DistanceFunction.CosineDistance)] +[VectorStoreRecordVector(Dimensions: 4, IndexKind.Hnsw, DistanceFunction.CosineDistance)] public ReadOnlyMemory? DescriptionEmbedding { get; set; } ``` diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md index d844450d..b2d038a5 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md @@ -31,7 +31,7 @@ The Azure AI Search Vector Store connector can be used to access and manage data ## Getting started -Add the Azure AI Search Vector Store connector nuget package to your project. +Add the Azure AI Search Vector Store connector NuGet package to your project. ```dotnetcli dotnet add package Microsoft.SemanticKernel.Connectors.AzureAISearch --prerelease @@ -52,7 +52,7 @@ var kernelBuilder = Kernel serviceCollection.AddAzureAISearchVectorStore(new Uri(azureAISearchUri), new AzureKeyCredential(secret)); ``` -Extension methods are also provided that take no parameters. These require an instance of the Azure AI Search `SearchIndexClient` to be separately registered with the dependency injection container. +Extension methods that take no parameters are also provided. These require an instance of the Azure AI Search `SearchIndexClient` to be separately registered with the dependency injection container. ```csharp using Azure; diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md index 989a8972..318297a7 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md @@ -31,7 +31,7 @@ The Pinecone Vector Store connector can be used to access and manage data in Pin ## Getting started -Add the Pinecone Vector Store connector nuget package to your project. +Add the Pinecone Vector Store connector NuGet package to your project. ```dotnetcli dotnet add package Microsoft.SemanticKernel.Connectors.Pinecone --prerelease @@ -52,7 +52,7 @@ var kernelBuilder = Kernel serviceCollection.AddPineconeVectorStore(pineconeApiKey); ``` -Extension methods are also provided that take no parameters. These require an instance of the `PineconeClient` to be separately registered with the dependency injection container. +Extension methods that take no parameters are also provided. These require an instance of the `PineconeClient` to be separately registered with the dependency injection container. ```csharp using Microsoft.SemanticKernel; diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md index 1d964449..617be400 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md @@ -31,13 +31,13 @@ The Qdrant Vector Store connector can be used to access and manage data in Qdran ## Getting started -Add the Qdrant Vector Store connector nuget package to your project. +Add the Qdrant Vector Store connector NuGet package to your project. ```dotnetcli dotnet add package Microsoft.SemanticKernel.Connectors.Qdrant --prerelease ``` -You can add the vector store to the dependency injection container available on the `KernelBuilder` or to the to the `IServiceCollection` dependency injection container using extention methods provided by Semantic Kernel. +You can add the vector store to the dependency injection container available on the `KernelBuilder` or to the `IServiceCollection` dependency injection container using extention methods provided by Semantic Kernel. ```csharp using Microsoft.SemanticKernel; @@ -51,7 +51,7 @@ var kernelBuilder = Kernel serviceCollection.AddQdrantVectorStore("localhost"); ``` -Extension methods are also provided that take no parameters. These require an instance of the `Qdrant.Client.QdrantClient` class to be separately registered with the dependency injection container. +Extension methods that take no parameters are also provided. These require an instance of the `Qdrant.Client.QdrantClient` class to be separately registered with the dependency injection container. ```csharp using Microsoft.SemanticKernel; @@ -116,7 +116,7 @@ The property name override is done by setting the `StoragePropertyName` option v Here is an example of a data model with `StoragePropertyName` set on its attributes and how that will be represented in Qdrant. ```csharp -using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Data; public class Hotel { @@ -168,7 +168,7 @@ new Hotel HotelId = 1, HotelName = "Hotel Happy", Description = "A place where everyone can be happy.", - DescriptionEmbedding = new float[3] { 0.9f, 0.1f, 0.1f, 0.1f } + DescriptionEmbedding = new float[4] { 0.9f, 0.1f, 0.1f, 0.1f } } ``` @@ -199,8 +199,8 @@ new Hotel HotelId = 1, HotelName = "Hotel Happy", Description = "A place where everyone can be happy.", - HotelNameEmbedding = new float[3] { 0.9f, 0.5f, 0.5f, 0.5f } - DescriptionEmbedding = new float[3] { 0.9f, 0.1f, 0.1f, 0.1f } + HotelNameEmbedding = new float[4] { 0.9f, 0.5f, 0.5f, 0.5f } + DescriptionEmbedding = new float[4] { 0.9f, 0.1f, 0.1f, 0.1f } } ``` @@ -222,7 +222,7 @@ new Hotel ``` To enable named vectors mode, pass this as an option when constructing a Vector Store or collection. -The same options can also be passed to any of the provided dependency injection container extensions methods. +The same options can also be passed to any of the provided dependency injection container extension methods. ::: zone pivot="programming-language-csharp" diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md index 0f38386f..81c98bdb 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md @@ -53,7 +53,7 @@ var kernelBuilder = Kernel serviceCollection.AddRedisVectorStore("localhost:6379"); ``` -Extension methods are also provided that take no parameters. These require an instance of the Redis `IDatabase` to be separately registered with the dependency injection container. +Extension methods that take no parameters are also provided. These require an instance of the Redis `IDatabase` to be separately registered with the dependency injection container. ```csharp using Microsoft.SemanticKernel; From f377dea6a82b77917141c69e0b02d46070f75307 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Tue, 13 Aug 2024 19:35:04 +0100 Subject: [PATCH 034/275] Address bug bash feedback. --- .../data-architecture.md | 13 +++++--- .../defining-your-data-model.md | 3 ++ .../concepts/vector-store-connectors/index.md | 5 ++- .../azure-ai-search-connector.md | 32 ++++++++++++++++--- .../out-of-the-box-connectors/index.md | 24 ++++++++------ .../pinecone-connector.md | 20 +++++++++--- .../qdrant-connector.md | 22 ++++++++++--- .../redis-connector.md | 29 ++++++++++++++--- .../volatile-connector.md | 13 ++++++-- .../schema-with-record-definition.md | 3 ++ .../vector-store-custom-mapper.md | 19 +++++++---- .../vector-store-data-ingestion.md | 3 ++ semantic-kernel/integrations/index.md | 4 +-- 13 files changed, 144 insertions(+), 46 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/data-architecture.md b/semantic-kernel/concepts/vector-store-connectors/data-architecture.md index 3b849c89..4b6c00d8 100644 --- a/semantic-kernel/concepts/vector-store-connectors/data-architecture.md +++ b/semantic-kernel/concepts/vector-store-connectors/data-architecture.md @@ -9,12 +9,15 @@ ms.service: semantic-kernel --- # The Semantic Kernel Vector Store data architecture (Experimental) -Vector Store abstractions in Semantic Kernel are based on three main components: vector stores, collections and records. -Records are contained by collections, and collections are contained by vector stores. +> [!WARNING] +> The Semantic Kernel Vector Store functionality is experimental, still in development and is subject to change. -- A vector store maps to an instance of a database -- A collection is a collection of records including any index required to query or filter those records -- A record is an individual data entry in the database +Vector Store abstractions in Semantic Kernel are based on three main components: **vector stores**, **collections** and **records**. +**Records** are contained by **collections**, and **collections** are contained by **vector stores**. + +- A **vector store** maps to an instance of a database +- A **collection** is a collection of **records** including any index required to query or filter those **records** +- A **record** is an individual data entry in the database ## Collections in different databases diff --git a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md index f8e9bf2a..7c623c57 100644 --- a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md +++ b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md @@ -10,6 +10,9 @@ ms.service: semantic-kernel --- # Defining your data model (Experimental) +> [!WARNING] +> The Semantic Kernel Vector Store functionality is experimental, still in development and is subject to change. + ## Overview The Semantic Kernel Vector Store connectors use a model first approach to interacting with databases. diff --git a/semantic-kernel/concepts/vector-store-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/index.md index 54ce2647..a3f2cc99 100644 --- a/semantic-kernel/concepts/vector-store-connectors/index.md +++ b/semantic-kernel/concepts/vector-store-connectors/index.md @@ -10,9 +10,12 @@ ms.service: semantic-kernel --- # What are Semantic Kernel Vector Store connectors? (Experimental) +> [!WARNING] +> The Semantic Kernel Vector Store functionality is experimental, still in development and is subject to change. It still has significant gaps in functionality, e.g. Vector Search, which is currently in development and will be released soon. + Vector databases have many use cases across different domains and applications that involve natural language processing (NLP), computer vision (CV), recommendation systems (RS), and other areas that require semantic understanding and matching of data. -One use case for storing information in a vector database is to enable large language models (LLMs) to generate more relevant and coherent text. Large language models often face challenges such as generating inaccurate or irrelevant information; lacking factual consistency or common sense; repeating or contradicting themselves; being biased or offensive. To help overcome these challenges, you can use a vector database to store information about different topics, keywords, facts, opinions, and/or sources related to your desired domain or genre. The vector database allows you to efficiently find the subset of information related to a specific question or topic. You can then pass information from the vector database with your AI plugin to your large language model to generate more informative and engaging content that matches your intent and style. +One use case for storing information in a vector database is to enable large language models (LLMs) to generate more relevant and coherent responses. Large language models often face challenges such as generating inaccurate or irrelevant information; lacking factual consistency or common sense; repeating or contradicting themselves; being biased or offensive. To help overcome these challenges, you can use a vector database to store information about different topics, keywords, facts, opinions, and/or sources related to your desired domain or genre. The vector database allows you to efficiently find the subset of information related to a specific question or topic. You can then pass information from the vector database with your prompt to your large language model to generate more accurate and relevant content. For example, if you want to write a blog post about the latest trends in AI, you can use a vector database to store the latest information about that topic and pass the information along with the ask to a LLM in order to generate a blog post that leverages the latest information. diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md index b2d038a5..2ee5409c 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md @@ -10,6 +10,9 @@ ms.service: semantic-kernel --- # Using the Azure AI Search Vector Store connector (Experimental) +> [!WARNING] +> The Semantic Kernel Vector Store functionality is experimental, still in development and is subject to change. + ## Overview The Azure AI Search Vector Store connector can be used to access and manage data in Azure AI Search. The connector has the following characteristics. @@ -18,15 +21,23 @@ The Azure AI Search Vector Store connector can be used to access and manage data |-----------------------------------|----------------------------------------------------------------------------------------------------------------------------------| | Collection maps to | Azure AI Search Index | | Supported key property types | string | -| Supported data property types | string
int
long
double
float
bool
DateTimeOffset
*and enumerables of each of these types* | +| Supported data property types |
  • string
  • int
  • long
  • double
  • float
  • bool
  • DateTimeOffset
  • *and enumerables of each of these types*
| | Supported vector property types | ReadOnlyMemory\ | -| Supported index types | Hnsw
Flat | -| Supported distance functions | CosineSimilarity
DotProductSimilarity
EuclideanDistance | +| Supported index types |
  • Hnsw
  • Flat
| +| Supported distance functions |
  • CosineSimilarity
  • DotProductSimilarity
  • EuclideanDistance
| | Supports multiple vectors in a record | Yes | | IsFilterable supported? | Yes | | IsFullTextSearchable supported? | Yes | | StoragePropertyName supported? | No, use `JsonSerializerOptions` and `JsonPropertyNameAttribute` instead. [See here for more info.](#data-mapping) | +## Functionality not supported + +Notable Azure AI Search funtionality not supported. + +| Feature Area | Workaround | +|---------------------------------------------------------------------| -----------------------------------------------------------------------------------------------| +| Configuring full text search analyzers during collection creation. | Use the Azure AI Search Client SDK directly for collection creation | + ::: zone pivot="programming-language-csharp" ## Getting started @@ -37,7 +48,7 @@ Add the Azure AI Search Vector Store connector NuGet package to your project. dotnet add package Microsoft.SemanticKernel.Connectors.AzureAISearch --prerelease ``` -You can add the vector store to the dependency injection container available on the `KernelBuilder` or to the to the `IServiceCollection` dependency injection container using extention methods provided by Semantic Kernel. +You can add the vector store to the dependency injection container available on the `KernelBuilder` or to the to the `IServiceCollection` dependency injection container using extension methods provided by Semantic Kernel. ```csharp using Azure; @@ -47,6 +58,11 @@ using Microsoft.SemanticKernel; var kernelBuilder = Kernel .CreateBuilder() .AddAzureAISearchVectorStore(new Uri(azureAISearchUri), new AzureKeyCredential(secret)); +``` + +```csharp +using Azure; +using Microsoft.SemanticKernel; // Using IServiceCollection. serviceCollection.AddAzureAISearchVectorStore(new Uri(azureAISearchUri), new AzureKeyCredential(secret)); @@ -66,6 +82,12 @@ kernelBuilder.Services.AddSingleton( new Uri(azureAISearchUri), new AzureKeyCredential(secret))); kernelBuilder.AddAzureAISearchVectorStore(); +``` + +```csharp +using Azure; +using Azure.Search.Documents.Indexes; +using Microsoft.SemanticKernel; // Using IServiceCollection. serviceCollection.AddSingleton( @@ -114,7 +136,7 @@ var collection = new AzureAISearchVectorStoreRecordCollection( The default mapper used by the Azure AI Search connector when mapping data from the data model to storage is the one provided by the Azure AI Search SDK. -This mapper does a direct conversion of the list of properties on the data model to the fields in Azure AI Search and uses JSON serialization +This mapper does a direct conversion of the list of properties on the data model to the fields in Azure AI Search and uses `System.Text.Json.JsonSerializer` to convert to the storage schema. This means that usage of the `JsonPropertyNameAttribute` is supported if a different storage name to the data model property name is required. diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md index 6f8530a9..5b31bba7 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md @@ -9,16 +9,20 @@ ms.service: semantic-kernel --- # Out-of-the-box Vector Store connectors (Experimental) +> [!WARNING] +> The Semantic Kernel Vector Store functionality is experimental, still in development and is subject to change. + Semantic Kernel provides a number of out-of-the-box Vector Store integrations making it easy to get started with using Vector Stores. It also allows you to experiment with a free or locally hosted Vector Store and then easily switch to a service when scale requires it. -## List of out-of-the-box connectors +> [!IMPORTANT] +> Some connectors are using SDKs that are not officially supported by Microsoft or by the Database provider. The *Officially supported database SDK* column lists which are using officially supported SDKs and which are not. -| Vector Store Connectors | C# | Python | Java | C# connector using officially supported SDK | -|-----------------------------------------------------|:----:|:------:|:----:|:-------------------------------------------:| -| [Azure AI Search](./azure-ai-search-connector.md) | ✅ | ✅ | 🔄 | ✅ | -| Cosmos DB No SQL | 🔄 | 🔄 | 🔄 | ✅ | -| Cosmos DB MongoDB | 🔄 | 🔄 | 🔄 | ✅ | -| [Pinecone](./pinecone-connector.md) | ✅ | 🔄 | 🔄 | ❌ | -| [Qdrant](./qdrant-connector.md) | ✅ | ✅ | 🔄 | ✅ | -| [Redis](./redis-connector.md) | ✅ | ✅ | 🔄 | ✅ | -| [Volatile (In-Memory)](./volatile-connector.md) | ✅ | ✅ | 🔄 | N/A | +| Vector Store Connectors | C# | Python | Java | Officially supported database SDK | +|-----------------------------------------------------|:--------------:|:---------------:|:--------------:|:---------------------------------:| +| [Azure AI Search](./azure-ai-search-connector.md) | ✅ | ✅ | In Development | ✅ | +| Cosmos DB No SQL | In Development | In Development | In Development | ✅ | +| Cosmos DB MongoDB | In Development | In Development | In Development | ✅ | +| [Pinecone](./pinecone-connector.md) | ✅ | In Development | In Development | ❌ | +| [Qdrant](./qdrant-connector.md) | ✅ | ✅ | In Development | ✅ | +| [Redis](./redis-connector.md) | ✅ | ✅ | In Development | ✅ | +| [Volatile (In-Memory)](./volatile-connector.md) | ✅ | ✅ | In Development | N/A | diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md index 318297a7..e8deea35 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md @@ -10,6 +10,9 @@ ms.service: semantic-kernel --- # Using the Pinecone connector (Experimental) +> [!WARNING] +> The Semantic Kernel Vector Store functionality is experimental, still in development and is subject to change. + ::: zone pivot="programming-language-csharp" ## Overview @@ -20,10 +23,10 @@ The Pinecone Vector Store connector can be used to access and manage data in Pin |-----------------------------------|----------------------------------------------------------------------------------------------------------------------------------| | Collection maps to | Pinecone serverless Index | | Supported key property types | string | -| Supported data property types | string
int
long
double
float
bool
decimal
*enumerables of type* string | +| Supported data property types |
  • string
  • int
  • long
  • double
  • float
  • bool
  • decimal
  • *enumerables of type* string
| | Supported vector property types | ReadOnlyMemory\ | | Supported index types | PGA (Pinecone Graph Algorithm) | -| Supported distance functions | CosineSimilarity
DotProductSimilarity
EuclideanDistance | +| Supported distance functions |
  • CosineSimilarity
  • DotProductSimilarity
  • EuclideanDistance
| | Supports multiple vectors in a record | No | | IsFilterable supported? | Yes | | IsFullTextSearchable supported? | No | @@ -37,16 +40,19 @@ Add the Pinecone Vector Store connector NuGet package to your project. dotnet add package Microsoft.SemanticKernel.Connectors.Pinecone --prerelease ``` -You can add the vector store to the dependency injection container available on the `KernelBuilder` or to the to the `IServiceCollection` dependency injection container using extention methods provided by Semantic Kernel. +You can add the vector store to the dependency injection container available on the `KernelBuilder` or to the to the `IServiceCollection` dependency injection container using extension methods provided by Semantic Kernel. ```csharp using Microsoft.SemanticKernel; -using Pinecone; // Using Kernel Builder. var kernelBuilder = Kernel .CreateBuilder() .AddPineconeVectorStore(pineconeApiKey); +``` + +```csharp +using Microsoft.SemanticKernel; // Using IServiceCollection. serviceCollection.AddPineconeVectorStore(pineconeApiKey); @@ -64,6 +70,12 @@ var kernelBuilder = Kernel.CreateBuilder(); kernelBuilder.Services.AddSingleton( sp => new PineconeClient(pineconeApiKey)); kernelBuilder.AddPineconeVectorStore(); +``` + +```csharp +using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Connectors.Pinecone; +using Pinecone; // Using IServiceCollection. serviceCollection.AddSingleton( diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md index 617be400..b1980c63 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md @@ -10,6 +10,9 @@ ms.service: semantic-kernel --- # Using the Qdrant connector (Experimental) +> [!WARNING] +> The Semantic Kernel Vector Store functionality is experimental, still in development and is subject to change. + ## Overview The Qdrant Vector Store connector can be used to access and manage data in Qdrant. The connector has the following characteristics. @@ -17,11 +20,11 @@ The Qdrant Vector Store connector can be used to access and manage data in Qdran | Feature Area | Support | |-----------------------------------|----------------------------------------------------------------------------------------------------------------------------------| | Collection maps to | Qdrant collection with payload indices for filterable data fields | -| Supported key property types | ulong
Guid | -| Supported data property types | string
int
long
double
float
bool
*and enumerables of each of these types* | -| Supported vector property types | ReadOnlyMemory\
ReadOnlyMemory\ | +| Supported key property types |
  • ulong
  • Guid
| +| Supported data property types |
  • string
  • int
  • long
  • double
  • float
  • bool
  • *and enumerables of each of these types*
| +| Supported vector property types |
  • ReadOnlyMemory\
  • ReadOnlyMemory\
| | Supported index types | Hnsw | -| Supported distance functions | CosineSimilarity
DotProductSimilarity
EuclideanDistance
ManhattanDistance | +| Supported distance functions |
  • CosineSimilarity
  • DotProductSimilarity
  • EuclideanDistance
  • ManhattanDistance
| | Supports multiple vectors in a record | Yes (configurable) | | IsFilterable supported? | Yes | | IsFullTextSearchable supported? | Yes | @@ -37,7 +40,7 @@ Add the Qdrant Vector Store connector NuGet package to your project. dotnet add package Microsoft.SemanticKernel.Connectors.Qdrant --prerelease ``` -You can add the vector store to the dependency injection container available on the `KernelBuilder` or to the `IServiceCollection` dependency injection container using extention methods provided by Semantic Kernel. +You can add the vector store to the dependency injection container available on the `KernelBuilder` or to the `IServiceCollection` dependency injection container using extension methods provided by Semantic Kernel. ```csharp using Microsoft.SemanticKernel; @@ -46,6 +49,10 @@ using Microsoft.SemanticKernel; var kernelBuilder = Kernel .CreateBuilder() .AddQdrantVectorStore("localhost"); +``` + +```csharp +using Microsoft.SemanticKernel; // Using IServiceCollection. serviceCollection.AddQdrantVectorStore("localhost"); @@ -61,6 +68,11 @@ using Qdrant.Client; var kernelBuilder = Kernel.CreateBuilder(); kernelBuilder.Services.AddSingleton(sp => new QdrantClient("localhost")); kernelBuilder.AddQdrantVectorStore(); +``` + +```csharp +using Microsoft.SemanticKernel; +using Qdrant.Client; // Using IServiceCollection. serviceCollection.AddSingleton(sp => new QdrantClient("localhost")); diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md index 81c98bdb..bf12b8c9 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md @@ -10,6 +10,9 @@ ms.service: semantic-kernel --- # Using the Redis connector (Experimental) +> [!WARNING] +> The Semantic Kernel Vector Store functionality is experimental, still in development and is subject to change. + ## Overview The Redis Vector Store connector can be used to access and manage data in Redis. The connector supports both Hashes and JSON modes and which mode you pick will determine what other features are supported. @@ -20,10 +23,10 @@ The connector has the following characteristics. |-----------------------------------|----------------------------------------------------------------------------------------------------------------------------------| | Collection maps to | Redis index with prefix set to `:` | | Supported key property types | string | -| Supported data property types | **When using Hashes:**
string
int
uint
long
ulong
double
float
bool

**When using JSON:**
Any types serializable to JSON| -| Supported vector property types | ReadOnlyMemory\
ReadOnlyMemory\ | -| Supported index types | Hnsw
Flat | -| Supported distance functions | CosineSimilarity
DotProductSimilarity
EuclideanDistance | +| Supported data property types | **When using Hashes:**
  • string
  • int
  • uint
  • long
  • ulong
  • double
  • float
  • bool
**When using JSON:**
Any types serializable to JSON| +| Supported vector property types |
  • ReadOnlyMemory\
  • ReadOnlyMemory\
| +| Supported index types |
  • Hnsw
  • Flat
| +| Supported distance functions |
  • CosineSimilarity
  • DotProductSimilarity
  • EuclideanDistance
| | Supports multiple vectors in a record | Yes | | IsFilterable supported? | Yes | | IsFullTextSearchable supported? | Yes | @@ -39,7 +42,7 @@ Add the Redis Vector Store connector nuget package to your project. dotnet add package Microsoft.SemanticKernel.Connectors.Redis --prerelease ``` -You can add the vector store to the dependency injection container available on the `KernelBuilder` or to the to the `IServiceCollection` dependency injection container using extention methods provided by Semantic Kernel. +You can add the vector store to the dependency injection container available on the `KernelBuilder` or to the to the `IServiceCollection` dependency injection container using extension methods provided by Semantic Kernel. ```csharp using Microsoft.SemanticKernel; @@ -48,6 +51,10 @@ using Microsoft.SemanticKernel; var kernelBuilder = Kernel .CreateBuilder() .AddRedisVectorStore("localhost:6379"); +``` + +```csharp +using Microsoft.SemanticKernel; // Using IServiceCollection. serviceCollection.AddRedisVectorStore("localhost:6379"); @@ -64,6 +71,12 @@ using StackExchange.Redis; var kernelBuilder = Kernel.CreateBuilder(); kernelBuilder.Services.AddSingleton(sp => ConnectionMultiplexer.Connect("localhost:6379").GetDatabase()); kernelBuilder.AddRedisVectorStore(); +``` + +```csharp +using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Connectors.Redis; +using StackExchange.Redis; // Using IServiceCollection. serviceCollection.AddSingleton(sp => ConnectionMultiplexer.Connect("localhost:6379").GetDatabase()); @@ -92,6 +105,12 @@ using StackExchange.Redis; var hashesCollection = new RedisHashSetVectorStoreRecordCollection( ConnectionMultiplexer.Connect("localhost:6379").GetDatabase(), "skhotelshashes"); +``` + +```csharp +using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Connectors.Redis; +using StackExchange.Redis; // Using JSON. var jsonCollection = new RedisJsonVectorStoreRecordCollection( diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md index cc3ce6e8..54272eed 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md @@ -10,16 +10,19 @@ ms.service: semantic-kernel --- # Using the Volatile (In-Memory) connector (Experimental) +> [!WARNING] +> The Semantic Kernel Vector Store functionality is experimental, still in development and is subject to change. + ## Overview The Volatile Vector Store connector is a Vector Store implementation provided by Semantic Kernel that uses no external database and stores data in memory. -This Vector Store is useful for prototyping scenarios or where high speed in memory operations are required. +This Vector Store is useful for prototyping scenarios or where high-speed in-memory operations are required. The connector has the following characteristics. | Feature Area | Support | |-----------------------------------|----------------------------------------------------------------------------------------------------------------------------------| -| Collection maps to | In memory dictionary | +| Collection maps to | In-memory dictionary | | Supported key property types | Any type that can be compared | | Supported data property types | Any type | | Supported vector property types | ReadOnlyMemory\ | @@ -40,7 +43,7 @@ Add the Semantic Kernel Core nuget package to your project. dotnet add package Microsoft.SemanticKernel.Core ``` -You can add the vector store to the dependency injection container available on the `KernelBuilder` or to the to the `IServiceCollection` dependency injection container using extention methods provided by Semantic Kernel. +You can add the vector store to the dependency injection container available on the `KernelBuilder` or to the to the `IServiceCollection` dependency injection container using extension methods provided by Semantic Kernel. ```csharp using Microsoft.SemanticKernel; @@ -49,6 +52,10 @@ using Microsoft.SemanticKernel; var kernelBuilder = Kernel .CreateBuilder() .AddVolatileVectorStore(); +``` + +```csharp +using Microsoft.SemanticKernel; // Using IServiceCollection. serviceCollection.AddVolatileVectorStore(); diff --git a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md index f32a4b13..bf043b40 100644 --- a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md +++ b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md @@ -10,6 +10,9 @@ ms.service: semantic-kernel --- # Defining your storage schema using a record definition (Experimental) +> [!WARNING] +> The Semantic Kernel Vector Store functionality is experimental, still in development and is subject to change. + ## Overview The Semantic Kernel Vector Store connectors use a model first approach to interacting with databases and allows annotating data diff --git a/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md b/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md index 02c6274a..99ed69c1 100644 --- a/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md +++ b/semantic-kernel/how-to/vector-store-connectors/vector-store-custom-mapper.md @@ -1,6 +1,6 @@ --- -title: How to create a custom mapper for a Semantic Kernel Vector Store connector (Experimental) -description: Describes how to create a custom mapper for a Semantic Kernel Vector Store connector +title: How to build a custom mapper for a Semantic Kernel Vector Store connector (Experimental) +description: Describes how to build a custom mapper for a Semantic Kernel Vector Store connector zone_pivot_groups: programming-languages author: westey-m ms.topic: tutorial @@ -8,7 +8,10 @@ ms.author: westey ms.date: 07/08/2024 ms.service: semantic-kernel --- -# How to create a custom mapper for a Vector Store connector (Experimental) +# How to build a custom mapper for a Vector Store connector (Experimental) + +> [!WARNING] +> The Semantic Kernel Vector Store functionality is experimental, still in development and is subject to change. In this how to, we will show how you can replace the default mapper for a vector store record collection with your own mapper. @@ -23,8 +26,9 @@ away the differences of each data store implementation. In some cases, the developer may want to replace the default mapper if e.g. -1. they want to use a data model that differs from the storage scheam. +1. they want to use a data model that differs from the storage schema. 2. they want to build a performance optimized mapper for their scenario. +3. the default mapper doesn't support a storage structure that the developer requires. All Vector Store connector implementations allow you to provide a custom mapper. @@ -213,7 +217,8 @@ public class QdrantCollectionFactory(VectorStoreRecordDefinition productDefiniti where TKey : notnull where TRecord : class { - // If the record definition is the product definition and the record type is the product data model, inject the custom mapper into the collection options. + // If the record definition is the product definition and the record type is the product data + // model, inject the custom mapper into the collection options. if (vectorStoreRecordDefinition == productDefinition && typeof(TRecord) == typeof(Product)) { var customCollection = new QdrantVectorStoreRecordCollection( @@ -251,7 +256,9 @@ kernelBuilder.AddQdrantVectorStore( { VectorStoreCollectionFactory = new QdrantCollectionFactory(productDefinition) }); +``` +```csharp // When constructing the Vector Store instance directly. var vectorStore = new QdrantVectorStore( new QdrantClient("localhost"), @@ -261,7 +268,7 @@ var vectorStore = new QdrantVectorStore( }); ``` -Then just use the vector store as normal to get a collection. +Now you can use the vector store as normal to get a collection. ```csharp var collection = vectorStore.GetCollection("skproducts", productDefinition); diff --git a/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md b/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md index e5855a24..88d970f3 100644 --- a/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md +++ b/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md @@ -10,6 +10,9 @@ ms.service: semantic-kernel --- # How to ingest data into a Vector Store using Semantic Kernel (Experimental) +> [!WARNING] +> The Semantic Kernel Vector Store functionality is experimental, still in development and is subject to change. + This article will demonstrate how to create an application to 1. Take text from each paragraph in a Microsoft Word document diff --git a/semantic-kernel/integrations/index.md b/semantic-kernel/integrations/index.md index 37657c3b..1198aae5 100644 --- a/semantic-kernel/integrations/index.md +++ b/semantic-kernel/integrations/index.md @@ -33,10 +33,10 @@ With the available AI and memory connectors, developers can easily build AI agen Vector databases have many use cases across different domains and applications that involve natural language processing (NLP), computer vision (CV), recommendation systems (RS), and other areas that require semantic understanding and matching of data. -One use case for storing information in a vector database is to enable large language models (LLMs) to generate more relevant and coherent text based on an [AI plugin](../create-plugins/index.md). +One use case for storing information in a vector database is to enable large language models (LLMs) to generate more relevant and coherent responses based on an [AI plugin](../create-plugins/index.md). However, large language models often face challenges such as generating inaccurate or irrelevant information; lacking factual consistency or common sense; repeating or contradicting themselves; being biased or offensive. To overcome these challenges, you can use a vector database to store information about different topics, keywords, facts, opinions, and/or sources related to your desired domain or genre. -Then, you can use a large language model and pass information from the vector database with your AI plugin to generate more informative and engaging content that matches your intent and style. +Then, you can use a large language model and pass information from the vector database with your AI prompt to generate more accurate and relevant content. For example, if you want to write a blog post about the latest trends in AI, you can use a vector database to store the latest information about that topic and pass the information along with the ask to a LLM in order to generate a blog post that leverages the latest information. From 6439477cc9ab2a567aa822901c6ca21157239289 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Wed, 14 Aug 2024 15:29:19 +0100 Subject: [PATCH 035/275] Address bugbash feedback --- .../concepts/vector-store-connectors/index.md | 7 +++-- .../azure-ai-search-connector.md | 8 ++--- .../pinecone-connector.md | 25 +++++++--------- .../qdrant-connector.md | 17 ++++++----- .../redis-connector.md | 28 ++++++++---------- .../vector-store-data-ingestion.md | 22 ++++++++++++-- .../vector-store-data-ingestion-input.docx | Bin 0 -> 15201 bytes 7 files changed, 60 insertions(+), 47 deletions(-) create mode 100644 semantic-kernel/media/vector-store-data-ingestion-input.docx diff --git a/semantic-kernel/concepts/vector-store-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/index.md index a3f2cc99..e3efb43e 100644 --- a/semantic-kernel/concepts/vector-store-connectors/index.md +++ b/semantic-kernel/concepts/vector-store-connectors/index.md @@ -30,7 +30,7 @@ The Semantic Kernel Vector Store connectors use a model first approach to intera ::: zone pivot="programming-language-csharp" ```csharp -using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Data; public class Hotel { @@ -43,7 +43,7 @@ public class Hotel [VectorStoreRecordData(IsFullTextSearchable = true)] public string Description { get; set; } - [VectorStoreRecordVector(4, IndexKind.Hnsw, DistanceFunction.CosineDistance)] + [VectorStoreRecordVector(Dimensions: 4, IndexKind.Hnsw, DistanceFunction.CosineDistance)] public ReadOnlyMemory? DescriptionEmbedding { get; set; } [VectorStoreRecordData(IsFilterable = true)] @@ -73,6 +73,7 @@ In our case, the type of record will be the `Hotel` class we already defined, an ```csharp using Microsoft.SemanticKernel.Connectors.Qdrant; +using Qdrant.Client; // Create a Qdrant VectorStore object var vectorStore = new QdrantVectorStore(new QdrantClient("localhost")); @@ -112,7 +113,7 @@ await collection.UpsertAsync(new Hotel }); // Retrieve the upserted record. -Hotel retrievedHotel = await collection.GetAsync(hotelId); +Hotel? retrievedHotel = await collection.GetAsync(hotelId); ``` ::: zone-end diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md index 2ee5409c..02972a1b 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md @@ -73,6 +73,7 @@ Extension methods that take no parameters are also provided. These require an in ```csharp using Azure; using Azure.Search.Documents.Indexes; +using Microsoft.Extensions.DependencyInjection; using Microsoft.SemanticKernel; // Using Kernel Builder. @@ -87,6 +88,7 @@ kernelBuilder.AddAzureAISearchVectorStore(); ```csharp using Azure; using Azure.Search.Documents.Indexes; +using Microsoft.Extensions.DependencyInjection; using Microsoft.SemanticKernel; // Using IServiceCollection. @@ -102,13 +104,12 @@ You can construct an Azure AI Search Vector Store instance directly. ```csharp using Azure; using Azure.Search.Documents.Indexes; -using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Connectors.AzureAISearch; var vectorStore = new AzureAISearchVectorStore( new SearchIndexClient( new Uri(azureAISearchUri), - new AzureKeyCredential(secret)); + new AzureKeyCredential(secret))); ``` It is possible to construct a direct reference to a named collection. @@ -116,11 +117,10 @@ It is possible to construct a direct reference to a named collection. ```csharp using Azure; using Azure.Search.Documents.Indexes; -using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Connectors.AzureAISearch; var collection = new AzureAISearchVectorStoreRecordCollection( - new SearchIndexClient(new Uri(azureAISearchUri), new AzureKeyCredential(secret), + new SearchIndexClient(new Uri(azureAISearchUri), new AzureKeyCredential(secret)), "skhotels"); ``` diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md index e8deea35..fec1052b 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md @@ -61,9 +61,9 @@ serviceCollection.AddPineconeVectorStore(pineconeApiKey); Extension methods that take no parameters are also provided. These require an instance of the `PineconeClient` to be separately registered with the dependency injection container. ```csharp +using Microsoft.Extensions.DependencyInjection; using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Connectors.Pinecone; -using Pinecone; +using PineconeClient = Pinecone.PineconeClient; // Using Kernel Builder. var kernelBuilder = Kernel.CreateBuilder(); @@ -73,9 +73,9 @@ kernelBuilder.AddPineconeVectorStore(); ``` ```csharp +using Microsoft.Extensions.DependencyInjection; using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Connectors.Pinecone; -using Pinecone; +using PineconeClient = Pinecone.PineconeClient; // Using IServiceCollection. serviceCollection.AddSingleton( @@ -86,9 +86,8 @@ serviceCollection.AddPineconeVectorStore(); You can construct a Pinecone Vector Store instance directly. ```csharp -using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Connectors.Pinecone; -using Pinecone; +using PineconeClient = Pinecone.PineconeClient; var vectorStore = new PineconeVectorStore( new PineconeClient(pineconeApiKey)); @@ -97,9 +96,8 @@ var vectorStore = new PineconeVectorStore( It is possible to construct a direct reference to a named collection. ```csharp -using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Connectors.Pinecone; -using Pinecone; +using PineconeClient = Pinecone.PineconeClient; var collection = new PineconeVectorStoreRecordCollection( new PineconeClient(pineconeApiKey), @@ -115,9 +113,8 @@ By default the Pinecone connector will pass null as the namespace for all operat Pinecone collection when constructing it and use this instead for all operations. ```csharp -using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Connectors.Pinecone; -using Pinecone; +using PineconeClient = Pinecone.PineconeClient; var collection = new PineconeVectorStoreRecordCollection( new PineconeClient(pineconeApiKey), @@ -145,20 +142,20 @@ The property name override is done by setting the `StoragePropertyName` option v Here is an example of a data model with `StoragePropertyName` set on its attributes and how that will be represented in Pinecone. ```csharp -using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Data; public class Hotel { [VectorStoreRecordKey] public ulong HotelId { get; set; } - [VectorStoreRecordData(IsFilterable = true) { StoragePropertyName = "hotel_name" }] + [VectorStoreRecordData(IsFilterable = true, StoragePropertyName = "hotel_name")] public string HotelName { get; set; } - [VectorStoreRecordData(IsFullTextSearchable = true) { StoragePropertyName = "hotel_description" }] + [VectorStoreRecordData(IsFullTextSearchable = true, StoragePropertyName = "hotel_description")] public string Description { get; set; } - [VectorStoreRecordVector(4, IndexKind.Hnsw, DistanceFunction.CosineDistance)] + [VectorStoreRecordVector(Dimensions: 4, IndexKind.Hnsw, DistanceFunction.CosineDistance)] public ReadOnlyMemory? DescriptionEmbedding { get; set; } } ``` diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md index b1980c63..7ac6860c 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md @@ -61,6 +61,7 @@ serviceCollection.AddQdrantVectorStore("localhost"); Extension methods that take no parameters are also provided. These require an instance of the `Qdrant.Client.QdrantClient` class to be separately registered with the dependency injection container. ```csharp +using Microsoft.Extensions.DependencyInjection; using Microsoft.SemanticKernel; using Qdrant.Client; @@ -71,6 +72,7 @@ kernelBuilder.AddQdrantVectorStore(); ``` ```csharp +using Microsoft.Extensions.DependencyInjection; using Microsoft.SemanticKernel; using Qdrant.Client; @@ -82,7 +84,6 @@ serviceCollection.AddQdrantVectorStore(); You can construct a Qdrant Vector Store instance directly. ```csharp -using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Connectors.Qdrant; using Qdrant.Client; @@ -92,7 +93,6 @@ var vectorStore = new QdrantVectorStore(new QdrantClient("localhost")); It is possible to construct a direct reference to a named collection. ```csharp -using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Connectors.Qdrant; using Qdrant.Client; @@ -135,13 +135,13 @@ public class Hotel [VectorStoreRecordKey] public ulong HotelId { get; set; } - [VectorStoreRecordData(IsFilterable = true) { StoragePropertyName = "hotel_name" }] + [VectorStoreRecordData(IsFilterable = true, StoragePropertyName = "hotel_name")] public string HotelName { get; set; } - [VectorStoreRecordData(IsFullTextSearchable = true) { StoragePropertyName = "hotel_description" }] + [VectorStoreRecordData(IsFullTextSearchable = true, StoragePropertyName = "hotel_description")] public string Description { get; set; } - [VectorStoreRecordVector(4, IndexKind.Hnsw, DistanceFunction.CosineDistance) { StoragePropertyName = "hotel_description_embedding" }] + [VectorStoreRecordVector(4, IndexKind.Hnsw, DistanceFunction.CosineDistance, StoragePropertyName = "hotel_description_embedding")] public ReadOnlyMemory? DescriptionEmbedding { get; set; } } ``` @@ -181,7 +181,7 @@ new Hotel HotelName = "Hotel Happy", Description = "A place where everyone can be happy.", DescriptionEmbedding = new float[4] { 0.9f, 0.1f, 0.1f, 0.1f } -} +}; ``` ::: zone-end @@ -213,7 +213,7 @@ new Hotel Description = "A place where everyone can be happy.", HotelNameEmbedding = new float[4] { 0.9f, 0.5f, 0.5f, 0.5f } DescriptionEmbedding = new float[4] { 0.9f, 0.1f, 0.1f, 0.1f } -} +}; ``` ::: zone-end @@ -239,6 +239,9 @@ The same options can also be passed to any of the provided dependency injection ::: zone pivot="programming-language-csharp" ```csharp +using Microsoft.SemanticKernel.Connectors.Qdrant; +using Qdrant.Client; + var vectorStore = new QdrantVectorStore( new QdrantClient("localhost"), new() { HasNamedVectors = true }); diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md index bf12b8c9..26251c44 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md @@ -63,8 +63,8 @@ serviceCollection.AddRedisVectorStore("localhost:6379"); Extension methods that take no parameters are also provided. These require an instance of the Redis `IDatabase` to be separately registered with the dependency injection container. ```csharp +using Microsoft.Extensions.DependencyInjection; using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Connectors.Redis; using StackExchange.Redis; // Using Kernel Builder. @@ -74,8 +74,8 @@ kernelBuilder.AddRedisVectorStore(); ``` ```csharp +using Microsoft.Extensions.DependencyInjection; using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Connectors.Redis; using StackExchange.Redis; // Using IServiceCollection. @@ -86,7 +86,6 @@ serviceCollection.AddRedisVectorStore(); You can construct a Redis Vector Store instance directly. ```csharp -using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Connectors.Redis; using StackExchange.Redis; @@ -97,7 +96,6 @@ It is possible to construct a direct reference to a named collection. When doing so, you have to choose between the JSON or Hashes instance depending on how you wish to store data in redis. ```csharp -using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Connectors.Redis; using StackExchange.Redis; @@ -108,7 +106,6 @@ var hashesCollection = new RedisHashSetVectorStoreRecordCollection( ``` ```csharp -using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Connectors.Redis; using StackExchange.Redis; @@ -122,7 +119,6 @@ When constructing a `RedisVectorStore` or registering it with the dependency inj that configures the preferred storage type / mode used: Hashes or JSON. If not specified, the default is JSON. ```csharp -using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Connectors.Redis; using StackExchange.Redis; @@ -156,7 +152,6 @@ off the prefixing behavior and pass in the fully prefixed key to the record oper ::: zone pivot="programming-language-csharp" ```csharp -using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Connectors.Redis; using StackExchange.Redis; @@ -202,7 +197,8 @@ Since a naming policy of snake case upper was chosen, here is an example of how Also note the use of `JsonPropertyNameAttribute` on the `Description` property to further customize the storage naming. ```csharp -using Microsoft.SemanticKernel; +using System.Text.Json.Serialization; +using Microsoft.SemanticKernel.Data; public class Hotel { @@ -212,16 +208,16 @@ public class Hotel [VectorStoreRecordData(IsFilterable = true)] public string HotelName { get; set; } - [JsonPropertyNameAttribute("HOTEL_DESCRIPTION")] + [JsonPropertyName("HOTEL_DESCRIPTION")] [VectorStoreRecordData(IsFullTextSearchable = true)] public string Description { get; set; } - [VectorStoreRecordVector(4, IndexKind.Hnsw, DistanceFunction.CosineDistance)] + [VectorStoreRecordVector(Dimensions: 4, IndexKind.Hnsw, DistanceFunction.CosineDistance)] public ReadOnlyMemory? DescriptionEmbedding { get; set; } } ``` -``` +```redis JSON.SET skhotelsjson:h1 $ '{ "HOTEL_NAME": "Hotel Happy", "HOTEL_DESCRIPTION": "A place where everyone can be happy.", "DESCRIPTION_EMBEDDING": [0.9, 0.1, 0.1, 0.1] }' ``` @@ -244,25 +240,25 @@ Property name overriding is done by setting the `StoragePropertyName` option via Here is an example of a data model with `StoragePropertyName` set on its attributes and how these are set in Redis. ```csharp -using Microsoft.SemanticKernel; +using Microsoft.SemanticKernel.Data; public class Hotel { [VectorStoreRecordKey] public ulong HotelId { get; set; } - [VectorStoreRecordData(IsFilterable = true) { StoragePropertyName = "hotel_name" }] + [VectorStoreRecordData(IsFilterable = true, StoragePropertyName = "hotel_name")] public string HotelName { get; set; } - [VectorStoreRecordData(IsFullTextSearchable = true) { StoragePropertyName = "hotel_description" }] + [VectorStoreRecordData(IsFullTextSearchable = true, StoragePropertyName = "hotel_description")] public string Description { get; set; } - [VectorStoreRecordVector(4, IndexKind.Hnsw, DistanceFunction.CosineDistance) { StoragePropertyName = "hotel_description_embedding" }] + [VectorStoreRecordVector(Dimensions: 4, IndexKind.Hnsw, DistanceFunction.CosineDistance, StoragePropertyName = "hotel_description_embedding")] public ReadOnlyMemory? DescriptionEmbedding { get; set; } } ``` -``` +```redis HSET skhotelshashes:h1 hotel_name "Hotel Happy" hotel_description 'A place where everyone can be happy.' hotel_description_embedding ``` diff --git a/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md b/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md index 88d970f3..a8cc20cb 100644 --- a/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md +++ b/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md @@ -25,6 +25,7 @@ For this sample you will need 1. An embedding generation model hosted in Azure or another provider of your choice. 2. An instance of Redis or Docker Desktop so that you can run Redis locally. +3. A word document to parse and load. Here is a sample document you can download and use: [vector-store-data-ingestion-input.docx](../../media/vector-store-data-ingestion-input.docx). ## Setup Redis @@ -160,6 +161,10 @@ internal class DocumentReader var combinedText = textBuilder.ToString(); if (!string.IsNullOrWhiteSpace(combinedText)) { + Console.WriteLine("Found paragraph:"); + Console.WriteLine(combinedText); + Console.WriteLine(); + yield return new TextParagraph { Key = Guid.NewGuid().ToString(), @@ -203,10 +208,14 @@ internal class DataUploader(IVectorStore vectorStore, ITextEmbeddingGenerationSe foreach (var paragraph in textParagraphs) { // Generate the text embedding. + Console.WriteLine($"Generating embedding for paragraph: {paragraph.ParagraphId}"); paragraph.TextEmbedding = await textEmbeddingGenerationService.GenerateEmbeddingAsync(paragraph.Text); // Upload the text paragraph. + Console.WriteLine($"Upserting paragraph: {paragraph.ParagraphId}"); await collection.UpsertAsync(paragraph); + + Console.WriteLine(); } } } @@ -251,8 +260,15 @@ to generate the embeddings and upload the paragraphs. ```csharp // Load the data. -var textParagraphs = DocumentReader.ReadParagraphs(new FileStream("C:\\test.docx", FileMode.Open), "file:///c:/test.docx"); -await dataUploader.GenerateEmbeddingsAndUpload("sk-documentation", textParagraphs); +var textParagraphs = DocumentReader.ReadParagraphs( + new FileStream( + "vector-store-data-ingestion-input.docx", + FileMode.Open), + "file:///c:/vector-store-data-ingestion-input.docx"); + +await dataUploader.GenerateEmbeddingsAndUpload( + "sk-documentation", + textParagraphs); ``` ## See your data in Redis @@ -262,7 +278,7 @@ your uploaded paragraphs. Here is an example of what you should see for one of t ```json { - "DocumentUri" : "file:///c:/test.docx", + "DocumentUri" : "file:///c:/vector-store-data-ingestion-input.docx", "ParagraphId" : "14CA7304", "Text" : "Version 1.0+ support across C#, Python, and Java means it’s reliable, committed to non breaking changes. Any existing chat-based APIs are easily expanded to support additional modalities like voice and video.", "TextEmbedding" : [...] diff --git a/semantic-kernel/media/vector-store-data-ingestion-input.docx b/semantic-kernel/media/vector-store-data-ingestion-input.docx new file mode 100644 index 0000000000000000000000000000000000000000..72adf9e6307d89f7825642594c544bff12912b80 GIT binary patch literal 15201 zcmeHuWmFv7wr-=r-QC?ixVyW%JB>?l5AN>49fG?{aDoI2F2P*_JhJaOcki8Z?t5dr zzxPy+uCA`RzFFOCd~?mOR?Vd-0|t%;fCNAR003fu|BP%m0 z%}-h&z(J|<0HAN}|Fius?t#XnaqE62B(b}Ym!O%Z0qHiXPXnU` zh*Z}Qasq}V(Woj~D6=~^clg5*)Z~mArY3O~r=1q2GHWj#Y@=u*bXgOkly)D%tAK5_ zg|a^IIoi!65#Z`UP8h6pJyegK;~!5AH<>9ao0w5eNcQGKEFt?>J4?*d+K?IO)k(y(G?R zlNVL$-VQizZliNTwKC_I+ahWnu6x=D=QBU}3pywQQ?pw0KDk*d*R!nIH3ZD{q*BiJi0y5JYG?BKRj?=?7yY2uz7zjQcQ3PPT$! z;qdZ_n{;9Z-h&%IALC8bH7=u%W)t>4j8Jm_G&#PBubQVPSTe~ozB5=PtG}7KGIGVW zoDZ|;CJBH9eE=01Gmy zZxQ?bEg)gvBGv$CX6wwz@N55{Nc~?No`3o4l?lDlV9ZFNXMtx(z_Up=bmYS(Ok@l+ z(Ic>^(PNI5(O@#`r`zJ$0@{;Vk=Td*T)!@C7M)5vMt*A1{_2#uf~3GKV>?}q@x|T# z9rehxX{+O9C3;S@U1MKQX779g75hlq?ZOdih6P}9LN{2rwHSs;Z;oztBOYDxPdI!J z)w3mJRWnbpO^47dL>93^8*H2pJ$uDIorK`oM?CsXCM8$ynG3sKW#MROA*Vd2oGKGIORq^(c>HcQ13b2aY+iBa z55Yq?=v=@|m_avA3NTgjq^|;yUrnMYaD5vIHcAQCcdh(7hV81H=+7by&l&eO{%t%F z0cKjo-vI!^m;eCsTMKswpeduNgNdu%TN?b8{~9&dfLBe(ooBKeAcgvk+1kaT&)QeZ z*rO>bC5dH}@+&ssx)E4G05JcAw2BV#(@Q$fBwi`^Uc%9YM1=%Y14$AgJi6N~KF!BD z%oWvob}ZV)HapiE9(qWc**e9Fl?A`954N#7U%0D{89oQDsDm`!46fzAUR$w7xF(h4 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 z
&Z&r|Zc-Pb!P#&>o|_DRZ%au&l@Q^|#-8W}J=SSwEUt^%qVqtL{g4a4`iG0ZR#N;9|NTMepYUG1f5QL!vFPvM-)~y}1S`}31N_@9% Date: Wed, 14 Aug 2024 15:58:21 +0100 Subject: [PATCH 036/275] Fix typo and switch servicecolleciton example to asp.net core --- .../azure-ai-search-connector.md | 12 +++++++----- .../pinecone-connector.md | 12 +++++++----- .../qdrant-connector.md | 12 +++++++----- .../out-of-the-box-connectors/redis-connector.md | 16 +++++++++------- .../volatile-connector.md | 5 +++-- 5 files changed, 33 insertions(+), 24 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md index 02972a1b..8e04cfbf 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md @@ -64,8 +64,9 @@ var kernelBuilder = Kernel using Azure; using Microsoft.SemanticKernel; -// Using IServiceCollection. -serviceCollection.AddAzureAISearchVectorStore(new Uri(azureAISearchUri), new AzureKeyCredential(secret)); +// Using IServiceCollection with ASP.NET Core. +var builder = WebApplication.CreateBuilder(args); +builder.Services.AddAzureAISearchVectorStore(new Uri(azureAISearchUri), new AzureKeyCredential(secret)); ``` Extension methods that take no parameters are also provided. These require an instance of the Azure AI Search `SearchIndexClient` to be separately registered with the dependency injection container. @@ -91,12 +92,13 @@ using Azure.Search.Documents.Indexes; using Microsoft.Extensions.DependencyInjection; using Microsoft.SemanticKernel; -// Using IServiceCollection. -serviceCollection.AddSingleton( +// Using IServiceCollection with ASP.NET Core. +var builder = WebApplication.CreateBuilder(args); +builder.Services.AddSingleton( sp => new SearchIndexClient( new Uri(azureAISearchUri), new AzureKeyCredential(secret))); -serviceCollection.AddAzureAISearchVectorStore(); +builder.Services.AddAzureAISearchVectorStore(); ``` You can construct an Azure AI Search Vector Store instance directly. diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md index fec1052b..341bf42c 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/pinecone-connector.md @@ -54,8 +54,9 @@ var kernelBuilder = Kernel ```csharp using Microsoft.SemanticKernel; -// Using IServiceCollection. -serviceCollection.AddPineconeVectorStore(pineconeApiKey); +// Using IServiceCollection with ASP.NET Core. +var builder = WebApplication.CreateBuilder(args); +builder.Services.AddPineconeVectorStore(pineconeApiKey); ``` Extension methods that take no parameters are also provided. These require an instance of the `PineconeClient` to be separately registered with the dependency injection container. @@ -77,10 +78,11 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.SemanticKernel; using PineconeClient = Pinecone.PineconeClient; -// Using IServiceCollection. -serviceCollection.AddSingleton( +// Using IServiceCollection with ASP.NET Core. +var builder = WebApplication.CreateBuilder(args); +builder.Services.AddSingleton( sp => new PineconeClient(pineconeApiKey)); -serviceCollection.AddPineconeVectorStore(); +builder.Services.AddPineconeVectorStore(); ``` You can construct a Pinecone Vector Store instance directly. diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md index 7ac6860c..2ef2f209 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md @@ -54,8 +54,9 @@ var kernelBuilder = Kernel ```csharp using Microsoft.SemanticKernel; -// Using IServiceCollection. -serviceCollection.AddQdrantVectorStore("localhost"); +// Using IServiceCollection with ASP.NET Core. +var builder = WebApplication.CreateBuilder(args); +builder.Services.AddQdrantVectorStore("localhost"); ``` Extension methods that take no parameters are also provided. These require an instance of the `Qdrant.Client.QdrantClient` class to be separately registered with the dependency injection container. @@ -76,9 +77,10 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.SemanticKernel; using Qdrant.Client; -// Using IServiceCollection. -serviceCollection.AddSingleton(sp => new QdrantClient("localhost")); -serviceCollection.AddQdrantVectorStore(); +// Using IServiceCollection with ASP.NET Core. +var builder = WebApplication.CreateBuilder(args); +builder.Services.AddSingleton(sp => new QdrantClient("localhost")); +builder.Services.AddQdrantVectorStore(); ``` You can construct a Qdrant Vector Store instance directly. diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md index 26251c44..b21d1691 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md @@ -56,8 +56,9 @@ var kernelBuilder = Kernel ```csharp using Microsoft.SemanticKernel; -// Using IServiceCollection. -serviceCollection.AddRedisVectorStore("localhost:6379"); +// Using IServiceCollection with ASP.NET Core. +var builder = WebApplication.CreateBuilder(args); +builder.Services.AddRedisVectorStore("localhost:6379"); ``` Extension methods that take no parameters are also provided. These require an instance of the Redis `IDatabase` to be separately registered with the dependency injection container. @@ -78,9 +79,10 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.SemanticKernel; using StackExchange.Redis; -// Using IServiceCollection. -serviceCollection.AddSingleton(sp => ConnectionMultiplexer.Connect("localhost:6379").GetDatabase()); -serviceCollection.AddRedisVectorStore(); +// Using IServiceCollection with ASP.NET Core. +var builder = WebApplication.CreateBuilder(args); +builder.Services.AddSingleton(sp => ConnectionMultiplexer.Connect("localhost:6379").GetDatabase()); +builder.Services.AddRedisVectorStore(); ``` You can construct a Redis Vector Store instance directly. @@ -93,7 +95,7 @@ var vectorStore = new RedisVectorStore(ConnectionMultiplexer.Connect("localhost: ``` It is possible to construct a direct reference to a named collection. -When doing so, you have to choose between the JSON or Hashes instance depending on how you wish to store data in redis. +When doing so, you have to choose between the JSON or Hashes instance depending on how you wish to store data in Redis. ```csharp using Microsoft.SemanticKernel.Connectors.Redis; @@ -142,7 +144,7 @@ If you want to associate a record with that index, you have to add the prefix to E.g. If you create a index called `skhotelsjson` with a prefix of `skhotelsjson:`, when setting a record with key `h1`, the record key will need to be prefixed like this `skhotelsjson:h1` to be added to the index. -When creating a new collection using the Redis connector, the connector will create an index in redis with a +When creating a new collection using the Redis connector, the connector will create an index in Redis with a prefix consisting of the collection name and a colon, like this `:`. By default, the connector will also prefix all keys with the this prefix when doing record operations like Get, Upsert, and Delete. diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md index 54272eed..72ea52dc 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md @@ -57,8 +57,9 @@ var kernelBuilder = Kernel ```csharp using Microsoft.SemanticKernel; -// Using IServiceCollection. -serviceCollection.AddVolatileVectorStore(); +// Using IServiceCollection with ASP.NET Core. +var builder = WebApplication.CreateBuilder(args); +builder.Services.AddVolatileVectorStore(); ``` You can construct a Volatile Vector Store instance directly. From dfe9f7e369300d38404ce468fcf95609b3b920c8 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Wed, 14 Aug 2024 16:10:24 +0100 Subject: [PATCH 037/275] Change word doc to zip --- .../vector-store-data-ingestion.md | 2 +- .../vector-store-data-ingestion-input.docx | Bin 15201 -> 0 bytes .../media/vector-store-data-ingestion-input.zip | Bin 0 -> 12684 bytes 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 semantic-kernel/media/vector-store-data-ingestion-input.docx create mode 100644 semantic-kernel/media/vector-store-data-ingestion-input.zip diff --git a/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md b/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md index a8cc20cb..3ea2a69b 100644 --- a/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md +++ b/semantic-kernel/how-to/vector-store-connectors/vector-store-data-ingestion.md @@ -25,7 +25,7 @@ For this sample you will need 1. An embedding generation model hosted in Azure or another provider of your choice. 2. An instance of Redis or Docker Desktop so that you can run Redis locally. -3. A word document to parse and load. Here is a sample document you can download and use: [vector-store-data-ingestion-input.docx](../../media/vector-store-data-ingestion-input.docx). +3. A Word document to parse and load. Here is a zip containing a sample Word document you can download and use: [vector-store-data-ingestion-input.zip](../../media/vector-store-data-ingestion-input.zip). ## Setup Redis diff --git a/semantic-kernel/media/vector-store-data-ingestion-input.docx b/semantic-kernel/media/vector-store-data-ingestion-input.docx deleted file mode 100644 index 72adf9e6307d89f7825642594c544bff12912b80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15201 zcmeHuWmFv7wr-=r-QC?ixVyW%JB>?l5AN>49fG?{aDoI2F2P*_JhJaOcki8Z?t5dr zzxPy+uCA`RzFFOCd~?mOR?Vd-0|t%;fCNAR003fu|BP%m0 z%}-h&z(J|<0HAN}|Fius?t#XnaqE62B(b}Ym!O%Z0qHiXPXnU` zh*Z}Qasq}V(Woj~D6=~^clg5*)Z~mArY3O~r=1q2GHWj#Y@=u*bXgOkly)D%tAK5_ zg|a^IIoi!65#Z`UP8h6pJyegK;~!5AH<>9ao0w5eNcQGKEFt?>J4?*d+K?IO)k(y(G?R zlNVL$-VQizZliNTwKC_I+ahWnu6x=D=QBU}3pywQQ?pw0KDk*d*R!nIH3ZD{q*BiJi0y5JYG?BKRj?=?7yY2uz7zjQcQ3PPT$! z;qdZ_n{;9Z-h&%IALC8bH7=u%W)t>4j8Jm_G&#PBubQVPSTe~ozB5=PtG}7KGIGVW zoDZ|;CJBH9eE=01Gmy zZxQ?bEg)gvBGv$CX6wwz@N55{Nc~?No`3o4l?lDlV9ZFNXMtx(z_Up=bmYS(Ok@l+ z(Ic>^(PNI5(O@#`r`zJ$0@{;Vk=Td*T)!@C7M)5vMt*A1{_2#uf~3GKV>?}q@x|T# z9rehxX{+O9C3;S@U1MKQX779g75hlq?ZOdih6P}9LN{2rwHSs;Z;oztBOYDxPdI!J z)w3mJRWnbpO^47dL>93^8*H2pJ$uDIorK`oM?CsXCM8$ynG3sKW#MROA*Vd2oGKGIORq^(c>HcQ13b2aY+iBa z55Yq?=v=@|m_avA3NTgjq^|;yUrnMYaD5vIHcAQCcdh(7hV81H=+7by&l&eO{%t%F z0cKjo-vI!^m;eCsTMKswpeduNgNdu%TN?b8{~9&dfLBe(ooBKeAcgvk+1kaT&)QeZ z*rO>bC5dH}@+&ssx)E4G05JcAw2BV#(@Q$fBwi`^Uc%9YM1=%Y14$AgJi6N~KF!BD z%oWvob}ZV)HapiE9(qWc**e9Fl?A`954N#7U%0D{89oQDsDm`!46fzAUR$w7xF(h4 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 literal 0 HcmV?d00001 From 8abc1cee523f13b18e4b9ae27b8282f60c7cafb2 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Wed, 14 Aug 2024 16:19:28 +0100 Subject: [PATCH 038/275] Include zip in build scope --- semantic-kernel/docfx.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/semantic-kernel/docfx.json b/semantic-kernel/docfx.json index 175f9271..7e93b1f4 100644 --- a/semantic-kernel/docfx.json +++ b/semantic-kernel/docfx.json @@ -27,7 +27,8 @@ "**/*.svg", "**/*.png", "**/*.jpg", - "**/*.gif" + "**/*.gif", + "media/vector-store-data-ingestion-input.zip" ], "exclude": [ "**/obj/**", From ff64dc6b3dd5a1e0b86ade8a0c619090b57d5556 Mon Sep 17 00:00:00 2001 From: Sophia Lagerkrans-Pandey <163188263+sophialagerkranspandey@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:37:09 -0700 Subject: [PATCH 039/275] Update supported-languages.md --- semantic-kernel/get-started/supported-languages.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/semantic-kernel/get-started/supported-languages.md b/semantic-kernel/get-started/supported-languages.md index 040651ba..b0905eaa 100644 --- a/semantic-kernel/get-started/supported-languages.md +++ b/semantic-kernel/get-started/supported-languages.md @@ -152,19 +152,19 @@ Once you've created a prompt, you can serialize it so that it can be stored or s | YAML | ✅ | ✅ | ✅ | | | Prompty | ❌ | ✅ | ❌ | | -### AI Services +### AI Services Modalities | Services | C# | Python | Java | Notes | |-----------------------------------|:----:|:------:|:----:|-------| | Text Generation | ✅ | ✅ | ✅ | Example: Text-Davinci-003 | | Chat Completion | ✅ | ✅ | ✅ | Example: GPT4, Chat-GPT | | Text Embeddings (Experimental) | ✅ | ✅ | ✅ | Example: Text-Embeddings-Ada-002 | -| Text to Image (Experimental) | ✅ | ❌ | ❌ | Example: Dall-E | -| Image to Text (Experimental) | ✅ | ❌ | ❌ | Example: Pix2Struct | +| Text to Image (Experimental) | ✅ | ✅ | ❌ | Example: Dall-E | +| Image to Text (Experimental) | ✅ | ✅ | ❌ | Example: Pix2Struct | | Text to Audio (Experimental) | ✅ | ❌ | ❌ | Example: Text-to-speech | | Audio to Text (Experimental) | ✅ | ❌ | ❌ | Example: Whisper | -### AI service endpoints +### AI Service Connectors | Endpoints | C# | Python | Java | Notes | |-------------------------------------------|:----:|:------:|:----:|-------| From 6f5e61d40bd739f841024af68182dbf55afa60a0 Mon Sep 17 00:00:00 2001 From: edvan_microsoft Date: Thu, 15 Aug 2024 11:48:28 +0200 Subject: [PATCH 040/275] added python details and extra page on serialization --- .../defining-your-data-model.md | 113 +++++++++++++++++- .../concepts/vector-store-connectors/index.md | 60 +++++++++- .../azure-ai-search-connector.md | 42 +++++++ .../out-of-the-box-connectors/index.md | 6 +- .../qdrant-connector.md | 79 +++++++++++- .../redis-connector.md | 75 ++++++++++-- .../volatile-connector.md | 33 +++++ .../schema-with-record-definition.md | 42 ++++++- .../vector-store-connectors/serialization.md | 61 ++++++++++ 9 files changed, 485 insertions(+), 26 deletions(-) create mode 100644 semantic-kernel/concepts/vector-store-connectors/serialization.md diff --git a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md index 7c623c57..e4009909 100644 --- a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md +++ b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md @@ -92,7 +92,7 @@ public string HotelName { get; set; } ### VectorStoreRecordVectorAttribute -Use this attribute to incidate that your property contains a vector. +Use this attribute to indicate that your property contains a vector. ```csharp [VectorStoreRecordVector(Dimensions: 4, IndexKind.Hnsw, DistanceFunction.CosineDistance)] @@ -118,9 +118,116 @@ Individual Vector Store implementations may also use their own index kinds and d ::: zone pivot="programming-language-python" -## Coming soon +All methods to upsert or get records use a class and a vector store record definition. + +This can be done by defining your own class with annotations for the fields, or by using a class/type in combination with a record definition. Two things need to be done for a class, the first is to add the annotations with the field types, the second is to decorate the class with the `vectorstoremodel` decorator. + +> [!TIP] +> For the alternative approach using a record definition, refer to [definining your schema with a record definition](./schema-with-record-definition.md). + +Here is an example of a model that is decorated with these annotations. + +```python +from dataclasses import dataclass, field +from typing import Annotated +from semantic_kernel.data import ( + DistanceFunction, + IndexKind, + VectorStoreRecordDataField, + VectorStoreRecordDefinition, + VectorStoreRecordKeyField, + VectorStoreRecordVectorField, + vectorstoremodel, +) + +@vectorstoremodel +@dataclass +class Hotel: + hotel_id: Annotated[str, VectorStoreRecordKeyField()] = field(default_factory=lambda: str(uuid4())) + hotel_name: Annotated[str, VectorStoreRecordDataField(is_filterable=True)] + description: Annotated[str, VectorStoreRecordDataField(is_full_text_searchable=True)] + description_embedding: Annotated[list[float], VectorStoreRecordVectorField(dimensions=4, distance_function=DistanceFunction.COSINE, index_kind=IndexKind.HNSW)] + tags: Annotated[list[str], VectorStoreRecordDataField(is_filterable=True)] +``` + +> [!TIP] +> Defining a class with these annotations can be done in multiple ways, one of which is using the `dataclasses` module in Python, shown here. This [sample](https://github.com/microsoft/semantic-kernel/blob/main/python/samples/concepts/memory/data_models.py) shows other approaches (using Pydantic BaseModels and vanilla python classes) as well. + +## Annotations + +There are three types of annotations to be used, and they have a common base class. + +### VectorStoreRecordField + +This is the base class for all annotations, it is not meant to be used directly. + +### VectorStoreRecordField parameters + +| Parameter | Required | Description | +|---------------------------|:--------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| name | No | Can be added directly but will be set during parsing of the model. | +| property_type | No | Should be a string, will also be derived during parsing. | + +> [!TIP] +> The annotations are parsed by the `vectorstoremodel` decorator and one of the things it does is to create a record definition for the class, for that it is not even necessary to instantiate a field class, so when no parameters need to be set manually, the field can be created with just the name of the class: +> ```python +> hotel_id: Annotated[str, VectorStoreRecordKeyField] +> ``` + +### VectorStoreRecordKeyField + +Use this annotation to indicate that this attribute is the key of the record. + +```python +VectorStoreRecordKeyField() +``` + +#### VectorStoreRecordKeyField parameters +No other parameters outside of the base class are defined. + + +### VectorStoreRecordDataField + +Use this annotation to indicate that your attribute contains general data that is not a key or a vector. + +```python +VectorStoreRecordDataField(is_filterable=True) +``` + +#### VectorStoreRecordDataAttribute parameters + +| Parameter | Required | Description | +|---------------------------|:--------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| has_embedding | No | Indicates whether the property has a embedding associated with it, default is None. | +| embedding_property_name | No | The name of the property that contains the embedding, default is None. | +| is_filterable | No | Indicates whether the property should be indexed for filtering in cases where a database requires opting in to indexing per property. Default is false. | +| is_full_text_searchable | No | Indicates whether the property should be indexed for full text search for databases that support full text search. Default is false. | + + +### VectorStoreRecordVectorField + +Use this annotation to indicate that your attribute contains a vector. + +```python +VectorStoreRecordVectorField(dimensions=4, distance_function=DistanceFunction.COSINE, index_kind=IndexKind.HNSW) +``` + +#### VectorStoreRecordVectorAttribute parameters + +| Parameter | Required | Description | +|---------------------------|:--------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| dimensions | Yes for collection create, optional otherwise | The number of dimensions that the vector has. This is typically required when creating a vector index for a collection. | +| index_kind | No | The type of index to index the vector with. Default varies by vector store type. | +| distance_function | No | The type of distance function to use when doing vector comparison during vector search over this vector. Default varies by vector store type. | +| local_embedding | No | Indicates whether the property has a local embedding associated with it, default is None. | +| embedding_settings | No | The settings for the embedding, in the form of a dict with service_id as key and PromptExecutionSettings as value, default is None. | +| serialize_function | No | The function to use to serialize the vector, if the type is not a list[float | int] this function is needed, or the whole model needs to be serialized. | +| deserialize_function | No | The function to use to deserialize the vector, if the type is not a list[float | int] this function is needed, or the whole model needs to be deserialized. | + + +Common index kinds and distance function types are supplied as static values on the `semantic_kernel.data.IndexKind` and `semantic_kernel.data.DistanceFunction` classes. +Individual Vector Store implementations may also use their own index kinds and distance functions, where the database supports unusual types. -More info coming soon. ::: zone-end diff --git a/semantic-kernel/concepts/vector-store-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/index.md index e3efb43e..db7a5d81 100644 --- a/semantic-kernel/concepts/vector-store-connectors/index.md +++ b/semantic-kernel/concepts/vector-store-connectors/index.md @@ -53,14 +53,36 @@ public class Hotel ::: zone-end ::: zone pivot="programming-language-python" +```python +from dataclasses import dataclass, field +from typing import Annotated +from semantic_kernel.data import ( + DistanceFunction, + IndexKind, + VectorStoreRecordDataField, + VectorStoreRecordDefinition, + VectorStoreRecordKeyField, + VectorStoreRecordVectorField, + vectorstoremodel, +) + +@vectorstoremodel +@dataclass +class Hotel: + hotel_id: Annotated[str, VectorStoreRecordKeyField()] = field(default_factory=lambda: str(uuid4())) + hotel_name: Annotated[str, VectorStoreRecordDataField(is_filterable=True)] + description: Annotated[str, VectorStoreRecordDataField(is_full_text_searchable=True)] + description_embedding: Annotated[list[float], VectorStoreRecordVectorField(dimensions=4, distance_function=DistanceFunction.COSINE, index_kind=IndexKind.HNSW)] + tags: Annotated[list[str], VectorStoreRecordDataField(is_filterable=True)] +``` ::: zone-end ::: zone pivot="programming-language-java" ::: zone-end > [!TIP] -> For more information on how to annotate your data model, refer to [definining your data model](./defining-your-data-model.md). +> For more information on how to annotate your data model, refer to [defining your data model](./defining-your-data-model.md). > [!TIP] -> For an alternative to annotating your data model, refer to [definining your schema with a record definition](./schema-with-record-definition.md). +> For an alternative to annotating your data model, refer to [defining your schema with a record definition](./schema-with-record-definition.md). ### Connect to your database and select a collection @@ -84,6 +106,19 @@ var collection = vectorStore.GetCollection("skhotels"); ::: zone-end ::: zone pivot="programming-language-python" + +Since databases support many different types of keys and records, we allow you to specify the type of the key and record for your collection using generics. +In our case, the type of record will be the `Hotel` class we already defined, and the type of key will be `str`, since the `HotelId` property is a `str` and Qdrant only supports `str` or `int` keys. + +```python +from semantic_kernel.connectors.memory.qdrant import QdrantStore + +# Create a Qdrant VectorStore object, this will look in the environment for Qdrant related settings, and will fall back to the default, which is to run in-memory. +vector_store = QdrantStore() + +# Choose a collection from the database and specify the type of key and record stored in it via Generic parameters. +collection = vector_store.get_collection("skhotels", Hotel) +``` ::: zone-end ::: zone pivot="programming-language-java" ::: zone-end @@ -118,6 +153,27 @@ Hotel? retrievedHotel = await collection.GetAsync(hotelId); ::: zone-end ::: zone pivot="programming-language-python" + +### Create the collection and add records + +```python +# Create the collection if it doesn't exist yet. +await collection.create_collection_if_not_exists() + +# Upsert a record. +description = "A place where everyone can be happy." +hotel_id = "1" + +await collection.upsert(Hotel( + hotel_id = hotel_id, + hotel_name = "Hotel Happy", + description = description, + description_embedding = await GenerateEmbeddingAsync(description), + tags = ["luxury", "pool"] +)) + +# Retrieve the upserted record. +retrieved_hotel = await collection.get(hotel_id) ::: zone-end ::: zone pivot="programming-language-java" ::: zone-end diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md index 8e04cfbf..22dc9865 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/azure-ai-search-connector.md @@ -128,6 +128,48 @@ var collection = new AzureAISearchVectorStoreRecordCollection( ::: zone-end ::: zone pivot="programming-language-python" + +## Getting started + +Install semantic kernel with the azure extras, which includes the Azure AI Search SDK. + +```cli +pip install semantic-kernel[azure] +``` + +You can then create a vector store instance using the `AzureAISearchStore` class, this will use the environment variables `AZURE_AI_SEARCH_ENDPOINT` and `AZURE_AI_SEARCH_API_KEY` to connect to the Azure AI Search instance, those values can also be supplied directly. You can also supply azure credentials or token credentials instead of a API key. + +```python + +from semantic_kernel.connectors.memory.azure_ai_search import AzureAISearchStore + +vector_store = AzureAISearchStore() +``` + +You can also create the vector store with your own instance of the azure search client. + +```python +from azure.search.documents.indexes import SearchIndexClient +from semantic_kernel.connectors.memory.azure_ai_search import AzureAISearchStore + +search_client = SearchIndexClient(endpoint="https://.search.windows.net", credential="") +vector_store = AzureAISearchStore(search_index_client=search_client) +``` + +You can also create a collection directly. + +```python +from semantic_kernel.connectors.memory.azure_ai_search import AzureAISearchCollection + +collection = AzureAISearchCollection(collection_name="skhotels", data_model_type=hotel) +``` + +## Serialization + +Since the Azure AI Search connector needs a simple dict with the fields corresponding to the index as the input, the serialization is quite easy, just return a dict with the values with the keys corresponding to the index fields, the built-in step from dict to the the store model is a straight passthrough of the created dict. + +For more details on this concept see the [serialization documentation](./../serialization.md). + ::: zone-end ::: zone pivot="programming-language-java" ::: zone-end diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md index 5b31bba7..e6afda1f 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/index.md @@ -15,14 +15,14 @@ ms.service: semantic-kernel Semantic Kernel provides a number of out-of-the-box Vector Store integrations making it easy to get started with using Vector Stores. It also allows you to experiment with a free or locally hosted Vector Store and then easily switch to a service when scale requires it. > [!IMPORTANT] -> Some connectors are using SDKs that are not officially supported by Microsoft or by the Database provider. The *Officially supported database SDK* column lists which are using officially supported SDKs and which are not. +> Some connectors are using SDKs that are not officially supported by Microsoft or by the Database provider. The *Officially supported SDK* column lists which are using officially supported SDKs and which are not. -| Vector Store Connectors | C# | Python | Java | Officially supported database SDK | +| Vector Store Connectors | C# | Python | Java | Officially supported SDK | |-----------------------------------------------------|:--------------:|:---------------:|:--------------:|:---------------------------------:| | [Azure AI Search](./azure-ai-search-connector.md) | ✅ | ✅ | In Development | ✅ | | Cosmos DB No SQL | In Development | In Development | In Development | ✅ | | Cosmos DB MongoDB | In Development | In Development | In Development | ✅ | -| [Pinecone](./pinecone-connector.md) | ✅ | In Development | In Development | ❌ | +| [Pinecone](./pinecone-connector.md) | ✅ | In Development | In Development | C#: ❌ Python: ✅ | | [Qdrant](./qdrant-connector.md) | ✅ | ✅ | In Development | ✅ | | [Redis](./redis-connector.md) | ✅ | ✅ | In Development | ✅ | | [Volatile (In-Memory)](./volatile-connector.md) | ✅ | ✅ | In Development | N/A | diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md index 2ef2f209..548c42cd 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md @@ -103,12 +103,6 @@ var collection = new QdrantVectorStoreRecordCollection( "skhotels"); ``` -::: zone-end -::: zone pivot="programming-language-python" -::: zone-end -::: zone pivot="programming-language-java" -::: zone-end - ## Data mapping The Qdrant connector provides a default mapper when mapping data from the data model to storage. @@ -160,6 +154,50 @@ public class Hotel ::: zone-end ::: zone pivot="programming-language-python" + +## Getting started + +Install semantic kernel with the qdrant extras, which includes the [qdrant client](https://github.com/qdrant/qdrant-client). + +```cli +pip install semantic-kernel[qdrant] +``` + +You can then create a vector store instance using the `QdrantStore` class, this will create a AsyncQdrantClient using the environment variables `QDRANT_URL`, `QDRANT_API_KEY`, `QDRANT_HOST`, `QDRANT_PORT`, `QDRANT_GRPC_PORT`, `QDRANT_PATH`, `QDRANT_LOCATION` and `QDRANT_PREFER_GRPS` to connect to the Qdrant instance, those values can also be supplied directly. If nothing is supplied it falls back to `location=:memory:`. + +```python + +from semantic_kernel.connectors.memory.qdrant import QdrantStore + +vector_store = QdrantStore() +``` + +You can also create the vector store with your own instance of the qdrant client. + +```python +from qdrant_client.async_qdrant_client import AsyncQdrantClient +from semantic_kernel.connectors.memory.qdrant import QdrantStore + +client = AsyncQdrantClient(host='localhost', port=6333) +vector_store = QdrantStore(client=client) +``` + +You can also create a collection directly. + +```python +from semantic_kernel.connectors.memory.qdrant import QdrantCollection + +collection = QdrantCollection(collection_name="skhotels", data_model_type=hotel) +``` + +## Serialization + +The Qdrant connector uses a model called `PointStruct` for reading and writing to the store. This can be imported from `from qdrant_client.models import PointStruct`. The serialization methods expects a output of a list of PointStruct objects, and the deserialization method recieves a list of PointStruct objects. + +There are some special considerations for this that have to do with named or unnamed vectors, see below. + +For more details on this concept see the [serialization documentation](./../serialization.md). + ::: zone-end ::: zone pivot="programming-language-java" ::: zone-end @@ -188,6 +226,15 @@ new Hotel ::: zone-end ::: zone pivot="programming-language-python" + +```python +Hotel( + hotel_id = 1, + hotel_name = "Hotel Happy", + description = "A place where everyone can be happy.", + description_embedding = [0.9f, 0.1f, 0.1f, 0.1f], +) +``` ::: zone-end ::: zone pivot="programming-language-java" ::: zone-end @@ -220,6 +267,16 @@ new Hotel ::: zone-end ::: zone pivot="programming-language-python" + +```python +Hotel( + hotel_id = 1, + hotel_name = "Hotel Happy", + description = "A place where everyone can be happy.", + hotel_name_embedding = [0.9f, 0.5f, 0.5f, 0.5f], + description_embedding = [0.9f, 0.1f, 0.1f, 0.1f], +) +``` ::: zone-end ::: zone pivot="programming-language-java" ::: zone-end @@ -234,6 +291,8 @@ new Hotel } } ``` +> [!NOTE] +> For python the object passed to the client is a PointStruct, with the same fields and structure as the json above. To enable named vectors mode, pass this as an option when constructing a Vector Store or collection. The same options can also be passed to any of the provided dependency injection container extension methods. @@ -256,6 +315,14 @@ var collection = new QdrantVectorStoreRecordCollection( ::: zone-end ::: zone pivot="programming-language-python" + +In python the default value for `named_vectors` is True, but you can also disable this as shown below. + +```python +from semantic_kernel.connectors.memory.qdrant import QdrantCollection + +collection = QdrantCollection(collection_name="skhotels", data_model_type=hotel, named_vectors=False) +``` ::: zone-end ::: zone pivot="programming-language-java" ::: zone-end diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md index b21d1691..25ff2c4f 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md @@ -131,6 +131,63 @@ var vectorStore = new RedisVectorStore( ::: zone-end ::: zone pivot="programming-language-python" + +## Getting started + +Install semantic kernel with the redis extras, which includes the redis client. + +```cli +pip install semantic-kernel[redis] +``` + +You can then create a vector store instance using the `RedisStore` class, this will use the environment variables `REDIS_CONNECTION_STRING` to connect to a Redis instance, those values can also be supplied directly. + +```python + +from semantic_kernel.connectors.memory.redis import RedisStore + +vector_store = RedisStore() +``` + +You can also create the vector store with your own instance of the redis database client. + +```python +from redis.asyncio.client import Redis +from semantic_kernel.connectors.memory.redis import RedisStore + +redis_database = Redis.from_url(url="https://") +vector_store = RedisStore(redis_database=redis_database) +``` + +You can also create a collection directly, but there are two types of collections, one for Hashes and one for JSON. + +```python +from semantic_kernel.connectors.memory.redis import RedisHashsetCollection, RedisJsonCollection + +hash_collection = RedisHashsetCollection(collection_name="skhotels", data_model_type=hotel) +json_collection = RedisJsonCollection(collection_name="skhotels", data_model_type=hotel) +``` + +When creating a collection from the vector store, you can pass in the collection type, as a enum: `RedisCollectionTypes`, the default is a hash collection. + +```python +from semantic_kernel.connectors.memory.redis import RedisStore, RedisCollectionTypes + +vector_store = RedisStore() +collection = vector_store.get_collection(collection_name="skhotels", data_model_type=hotel, collection_type=RedisCollectionTypes.JSON) + +``` + +## Serialization + +The redis collections both use a dict as the data format when upserting, however the structure of the dicts are different between them. + +For JSON collections see [redis docs](https://redis-py.readthedocs.io/en/stable/examples/search_json_examples.html) for a example. + +For Hashset collections, it uses the hset command with the key field as `name`, data fields as `mapping -> metadata` and vectors as `mapping -> [vector_field_name]` , see [here](https://redis-py.readthedocs.io/en/stable/commands.html#redis.commands.core.CoreCommands.hset) for more information. + +For more details on this concept see the [serialization documentation](./../serialization.md). + ::: zone-end ::: zone pivot="programming-language-java" ::: zone-end @@ -167,16 +224,22 @@ await collection.GetAsync("myprefix_h1"); ::: zone-end ::: zone pivot="programming-language-python" +```python +from semantic_kernel.connectors.memory.redis import RedisJsonCollection + +collection = RedisJsonCollection(collection_name="skhotels", data_model_type=hotel, prefix_collection_name_to_key_names=False) + +await collection.get("myprefix_h1") +``` ::: zone-end ::: zone pivot="programming-language-java" ::: zone-end +::: zone pivot="programming-language-csharp" ## Data mapping Redis supports two modes for storing data: JSON and Hashes. The Redis connector supports both storage types, and mapping differs depending on the chosen storage type. -::: zone pivot="programming-language-csharp" - ### Data mapping when using the JSON storage type When using the JSON storage type, the Redis connector will use `System.Text.Json.JsonSerializer` to do mapping. @@ -223,12 +286,6 @@ public class Hotel JSON.SET skhotelsjson:h1 $ '{ "HOTEL_NAME": "Hotel Happy", "HOTEL_DESCRIPTION": "A place where everyone can be happy.", "DESCRIPTION_EMBEDDING": [0.9, 0.1, 0.1, 0.1] }' ``` -::: zone-end -::: zone pivot="programming-language-python" -::: zone-end -::: zone pivot="programming-language-java" -::: zone-end - ### Data mapping when using the Hashes storage type When using the Hashes storage type, the Redis connector provides its own mapper to do mapping. @@ -264,8 +321,6 @@ public class Hotel HSET skhotelshashes:h1 hotel_name "Hotel Happy" hotel_description 'A place where everyone can be happy.' hotel_description_embedding ``` -::: zone-end -::: zone pivot="programming-language-python" ::: zone-end ::: zone pivot="programming-language-java" ::: zone-end diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md index 72ea52dc..ad537426 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md @@ -80,6 +80,39 @@ var collection = new VolatileVectorStoreRecordCollection("skhotel ::: zone-end ::: zone pivot="programming-language-python" + +## Getting started + +Install semantic kernel. + +```cli +pip install semantic-kernel +``` + +You can then create a vector store instance using the `VolatileStore` class. + +```python + +from semantic_kernel.connectors.memory.volatile import VolatileStore + +vector_store = VolatileStore() +``` + +You can also create a collection directly. + +```python +from semantic_kernel.connectors.memory.volatile import VolatileCollection + +collection = VolatileCollection(collection_name="skhotels", data_model_type=hotel) +``` + +## Serialization + +Since the Volatile connector has a simple dict as the internal storage mechanism it can store any data model that can be serialized to a dict. + +For more details on this concept see the [serialization documentation](./../serialization.md). + + ::: zone-end ::: zone pivot="programming-language-java" ::: zone-end diff --git a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md index bf043b40..fc6dc722 100644 --- a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md +++ b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md @@ -23,6 +23,7 @@ This can be useful in multiple scenarios: - There may be a case where a developer wants to use the same data model with more than one configuration. - There may be a case where the developer wants to store data using a very different schema to the model and wants to supply a custom mapper for converting between the data model and storage schema. +- There may be a case where a developer wants to use a built-in type, like a dict, or a optimized format like a dataframe and still wants to leverage the vector store functionality. ::: zone pivot="programming-language-csharp" @@ -118,9 +119,46 @@ new VectorStoreRecordVectorProperty("DescriptionEmbedding", typeof(float)) { Dim ::: zone-end ::: zone pivot="programming-language-python" -## Coming soon +Here is an example of how to create a record definition, for use with a [pandas DataFrame](https://pandas.pydata.org/docs/reference/frame.html). + +Note the use of the same fields as in the [data model definition](./defining-your-data-model.md). + +Further there are two other important things to look at here. + +The first is the use of the `container_mode` parameter. When set to True, this indicates that the data model is a container type, like a DataFrame, and that the data model is therefore a container of records, instead of a single one. + +The second is the addition of the `to_dict` and `from_dict` methods, which are used to convert between the data model and the storage schema. In this case, the `to_dict` method is used to convert the DataFrame to a list of records, and the `from_dict` method is used to convert a list of records to a DataFrame. + +```python +from semantic_kernel.data import ( + VectorStoreRecordDataField, + VectorStoreRecordDefinition, + VectorStoreRecordKeyField, + VectorStoreRecordVectorField, +) + +hotel_definition = VectorStoreRecordDefinition( + fields={ + "hotel_id": VectorStoreRecordKeyField(property_type="str"), + "hotel_name": VectorStoreRecordDataField(property_type="str", is_filterable=True), + "description": VectorStoreRecordDataField( + property_type="str", has_embedding=True, embedding_property_name="description_embedding" + ), + "description_embedding": VectorStoreRecordVectorField(property_type="list[float]"), + }, + container_mode=True, + to_dict=lambda record, **_: record.to_dict(orient="records"), + from_dict=lambda records, **_: DataFrame(records), +) +``` -More info coming soon. +When creating a definition you always have to provide a name (optionally, otherwise the constructor of the definition will set the name with the key name of the `fields` dict) and type for each property in your schema, since this is required for index creation and data mapping. + +To use the definition, pass it to the GetCollection method. + +```python +collection = vectorStore.get_collection("skhotels", pd.DataFrame, hotel_definition) +``` ::: zone-end ::: zone pivot="programming-language-java" diff --git a/semantic-kernel/concepts/vector-store-connectors/serialization.md b/semantic-kernel/concepts/vector-store-connectors/serialization.md new file mode 100644 index 00000000..36ed389a --- /dev/null +++ b/semantic-kernel/concepts/vector-store-connectors/serialization.md @@ -0,0 +1,61 @@ +--- +title: Serialization of your data model to and from different stores +description: How does Semantic Kernel serialize your data model to and from different stores +author: edvan +zone_pivot_groups: programming-languages +ms.topic: conceptual +ms.author: edvan +ms.date: 15/08/2024 +ms.service: semantic-kernel +--- +# Serialization of your data model to and from different stores (Experimental) + +::: zone pivot="programming-language-csharp" +::: zone-end +::: zone pivot="programming-language-python" + +In order for your data model defined either as a [class](./defining-your-data-model.md) or a [definition](./schema-with-record-definition.md) to be stored in a database, it needs to be serialized to a format that the database can understand. + +There are two ways that can be done, either by using the built-in serialization provided by the Semantic Kernel or by providing your own serialization logic. + +## Built-in serialization + +The built-in serialization is done by first converting the data model to a dictionary and then serializing it to the model that that store understands, for each store that is different and defined as part of the built-in connector. Deserialization is done in the reverse order. + +### Custom to and from dict methods + +The built-in serialization can also use custom methods to go from the data model to a dictionary and from a dictionary to the data model. This can be done by implementing methods from the `VectorStoreModelToDictFromDictProtocol` for a class or functions following the `ToDictProtocol` and `FromDictProtocol` protocols in your record definition, both can be found in `semantic_kernel/data/vector_store_model_protocols.py`. + +This is especially useful when you want to use a optimized, container format in your code, but still want to be able to move between stores easily. + +### Pydantic models +When you define you model using a Pydantic BaseModel, it will use the `model_dump` and `model_validate` methods to serialize and deserialize the data model to and from a dict. + +## Custom serialization +You can also define the serialization to be done directly from your model into the model of the data store. + +This can be done by implementing the `VectorStoreModelFunctionSerdeProtocol` protocol, or by adding functions that follow the `SerializeProtocol` and `DeserializeProtocol` in your record definition, both can be found in `semantic_kernel/data/vector_store_model_protocols.py`. + +# Serialization of vectors + +When you have a vector in your data model, it needs to either be a list of floats or list of ints, since that is what most stores need, if you want your class to store the vector in a different format, you can use the `serialize_function` and `deserialize_function` defined in the `VectorStoreRecordVectorField` annotation. For instance for a numpy array you can use the following annotation: + +```python +import numpy as np + +vector: Annotated[ + np.ndarray | None, + VectorStoreRecordVectorField( + dimensions=1536, + serialize_function=np.ndarray.tolist, + deserialize_function=np.array, + ), +] = None +``` + +If you do use a vector store that can handle native numpy arrays and you don't want to have them converted back and forth, you should setup the direct serialization and deserialization for the model and that store. + +::: zone-end +::: zone pivot="programming-language-java" +::: zone-end + From 2aa0c451cd8bae21b7c05f096f88dab950f101f3 Mon Sep 17 00:00:00 2001 From: Sophia Lagerkrans-Pandey <163188263+sophialagerkranspandey@users.noreply.github.com> Date: Thu, 15 Aug 2024 14:04:08 -0700 Subject: [PATCH 041/275] Update quick-start-guide.md --- semantic-kernel/get-started/quick-start-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/semantic-kernel/get-started/quick-start-guide.md b/semantic-kernel/get-started/quick-start-guide.md index 4c6fcdcb..b6c5e515 100644 --- a/semantic-kernel/get-started/quick-start-guide.md +++ b/semantic-kernel/get-started/quick-start-guide.md @@ -92,7 +92,7 @@ To get started, follow these steps: 4. Open _00-getting-started.ipynb_ to get started setting your environment and creating your first AI agent! ::: zone-end -::: zone pivot="programming-language-python" +::: zone pivot="programming-language-csharp" To get started, follow these steps: 1. Clone the [Semantic Kernel repo](https://github.com/microsoft/semantic-kernel) 2. Open the repo in Visual Studio Code From 4a6b470356830a9d0b49f9ff8dfb64fb551e1f8d Mon Sep 17 00:00:00 2001 From: edvan_microsoft Date: Fri, 16 Aug 2024 09:51:14 +0200 Subject: [PATCH 042/275] addressed comment and errors --- .../defining-your-data-model.md | 14 ++-- .../qdrant-connector.md | 65 +++++++++++++------ .../redis-connector.md | 2 +- .../schema-with-record-definition.md | 4 +- .../vector-store-connectors/serialization.md | 24 +++++-- 5 files changed, 72 insertions(+), 37 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md index e4009909..09b9e2ea 100644 --- a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md +++ b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md @@ -22,7 +22,7 @@ All methods to upsert or get records use strongly typed model classes. The properties on these classes are decorated with attributes that indicate the purpose of each property. > [!TIP] -> For an alternative to using attributes, refer to [definining your schema with a record definition](./schema-with-record-definition.md). +> For an alternative to using attributes, refer to [defining your schema with a record definition](./schema-with-record-definition.md). Here is an example of a model that is decorated with these attributes. @@ -54,7 +54,7 @@ public class Hotel ### VectorStoreRecordKeyAttribute -Use this attribute to incidate that your property is the key of the record. +Use this attribute to indicate that your property is the key of the record. ```csharp [VectorStoreRecordKey] @@ -72,7 +72,7 @@ public ulong HotelId { get; set; } ### VectorStoreRecordDataAttribute -Use this attribute to incidate that your property contains general data that is not a key or a vector. +Use this attribute to indicate that your property contains general data that is not a key or a vector. ```csharp [VectorStoreRecordData(IsFilterable = true)] @@ -169,7 +169,7 @@ This is the base class for all annotations, it is not meant to be used directly. | property_type | No | Should be a string, will also be derived during parsing. | > [!TIP] -> The annotations are parsed by the `vectorstoremodel` decorator and one of the things it does is to create a record definition for the class, for that it is not even necessary to instantiate a field class, so when no parameters need to be set manually, the field can be created with just the name of the class: +> The annotations are parsed by the `vectorstoremodel` decorator and one of the things it does is to create a record definition for the class, it is therefore not necessary to instantiate a field class when no parameters are set, the field can be annotated with just the class, like this: > ```python > hotel_id: Annotated[str, VectorStoreRecordKeyField] > ``` @@ -214,15 +214,15 @@ VectorStoreRecordVectorField(dimensions=4, distance_function=DistanceFunction.CO #### VectorStoreRecordVectorAttribute parameters -| Parameter | Required | Description | +| Parameter | Required | Description | |---------------------------|:--------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | dimensions | Yes for collection create, optional otherwise | The number of dimensions that the vector has. This is typically required when creating a vector index for a collection. | | index_kind | No | The type of index to index the vector with. Default varies by vector store type. | | distance_function | No | The type of distance function to use when doing vector comparison during vector search over this vector. Default varies by vector store type. | | local_embedding | No | Indicates whether the property has a local embedding associated with it, default is None. | | embedding_settings | No | The settings for the embedding, in the form of a dict with service_id as key and PromptExecutionSettings as value, default is None. | -| serialize_function | No | The function to use to serialize the vector, if the type is not a list[float | int] this function is needed, or the whole model needs to be serialized. | -| deserialize_function | No | The function to use to deserialize the vector, if the type is not a list[float | int] this function is needed, or the whole model needs to be deserialized. | +| serialize_function | No | The function to use to serialize the vector, if the type is not a list[float \| int] this function is needed, or the whole model needs to be serialized. | +| deserialize_function | No | The function to use to deserialize the vector, if the type is not a list[float \| int] this function is needed, or the whole model needs to be deserialized. | Common index kinds and distance function types are supplied as static values on the `semantic_kernel.data.IndexKind` and `semantic_kernel.data.DistanceFunction` classes. diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md index 548c42cd..8cfa4393 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md @@ -118,7 +118,7 @@ The default mapper uses the model annotations or record definition to determine For data properties and vector properties (if using named vectors mode), you can provide override field names to use in storage that is different to the property names on the data model. This is not supported for keys, since a key has a fixed name in Qdrant. It is also not supported for vectors in *single unnamed vector* mode, since the vector is stored under a fixed name. -::: zone pivot="programming-language-csharp" + The property name override is done by setting the `StoragePropertyName` option via the data model attributes or record definition. Here is an example of a data model with `StoragePropertyName` set on its attributes and how that will be represented in Qdrant. @@ -224,6 +224,14 @@ new Hotel }; ``` +```json +{ + "id": 1, + "payload": { "HotelName": "Hotel Happy", "Description": "A place where everyone can be happy." }, + "vector": [0.9, 0.1, 0.1, 0.1] +} +``` + ::: zone-end ::: zone pivot="programming-language-python" @@ -235,17 +243,20 @@ Hotel( description_embedding = [0.9f, 0.1f, 0.1f, 0.1f], ) ``` + +```python +from qdrant_client.models import PointStruct + +PointStruct( + id=1, + payload={ "hotel_name": "Hotel Happy", "description": "A place where everyone can be happy." }, + vector=[0.9, 0.1, 0.1, 0.1], +) +``` ::: zone-end ::: zone pivot="programming-language-java" ::: zone-end -```json -{ - "id": 1, - "payload": { "HotelName": "Hotel Happy", "Description": "A place where everyone can be happy." }, - "vector": [0.9, 0.1, 0.1, 0.1] -} -``` #### Named vectors @@ -265,6 +276,17 @@ new Hotel }; ``` +```json +{ + "id": 1, + "payload": { "HotelName": "Hotel Happy", "Description": "A place where everyone can be happy." }, + "vector": { + "HotelNameEmbedding": [0.9, 0.5, 0.5, 0.5], + "DescriptionEmbedding": [0.9, 0.1, 0.1, 0.1], + } +} +``` + ::: zone-end ::: zone pivot="programming-language-python" @@ -277,23 +299,24 @@ Hotel( description_embedding = [0.9f, 0.1f, 0.1f, 0.1f], ) ``` + +```python +from qdrant_client.models import PointStruct + +PointStruct( + id=1, + payload={ "hotel_name": "Hotel Happy", "description": "A place where everyone can be happy." }, + vector={ + "hotel_name_embedding": [0.9, 0.5, 0.5, 0.5], + "description_embedding": [0.9, 0.1, 0.1, 0.1], + }, +) +``` + ::: zone-end ::: zone pivot="programming-language-java" ::: zone-end -```json -{ - "id": 1, - "payload": { "HotelName": "Hotel Happy", "Description": "A place where everyone can be happy." }, - "vector": { - "HotelNameEmbedding": [0.9, 0.5, 0.5, 0.5], - "DescriptionEmbedding": [0.9, 0.1, 0.1, 0.1], - } -} -``` -> [!NOTE] -> For python the object passed to the client is a PointStruct, with the same fields and structure as the json above. - To enable named vectors mode, pass this as an option when constructing a Vector Store or collection. The same options can also be passed to any of the provided dependency injection container extension methods. diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md index 25ff2c4f..7951845b 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md @@ -293,7 +293,7 @@ This mapper will map each property to a field-value pair as supported by the Red For data properties and vector properties, you can provide override field names to use in storage that is different to the property names on the data model. This is not supported for keys, since keys cannot be named in Redis. -::: zone pivot="programming-language-csharp" + Property name overriding is done by setting the `StoragePropertyName` option via the data model attributes or record definition. Here is an example of a data model with `StoragePropertyName` set on its attributes and how these are set in Redis. diff --git a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md index fc6dc722..8e5c5410 100644 --- a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md +++ b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md @@ -152,12 +152,12 @@ hotel_definition = VectorStoreRecordDefinition( ) ``` -When creating a definition you always have to provide a name (optionally, otherwise the constructor of the definition will set the name with the key name of the `fields` dict) and type for each property in your schema, since this is required for index creation and data mapping. +When creating a definition you always have to provide a name (as the key in the `fields` dict) and type for each property in your schema, since this is required for index creation and data mapping. To use the definition, pass it to the GetCollection method. ```python -collection = vectorStore.get_collection("skhotels", pd.DataFrame, hotel_definition) +collection = vector_store.get_collection(collection_name="skhotels", data_model_type=pd.DataFrame, data_model_definition=hotel_definition) ``` ::: zone-end diff --git a/semantic-kernel/concepts/vector-store-connectors/serialization.md b/semantic-kernel/concepts/vector-store-connectors/serialization.md index 36ed389a..ea2c9dbf 100644 --- a/semantic-kernel/concepts/vector-store-connectors/serialization.md +++ b/semantic-kernel/concepts/vector-store-connectors/serialization.md @@ -5,12 +5,17 @@ author: edvan zone_pivot_groups: programming-languages ms.topic: conceptual ms.author: edvan -ms.date: 15/08/2024 +ms.date: 08/15/2024 ms.service: semantic-kernel --- # Serialization of your data model to and from different stores (Experimental) ::: zone pivot="programming-language-csharp" + +## Coming soon + +More info coming soon. + ::: zone-end ::: zone pivot="programming-language-python" @@ -18,25 +23,27 @@ In order for your data model defined either as a [class](./defining-your-data-mo There are two ways that can be done, either by using the built-in serialization provided by the Semantic Kernel or by providing your own serialization logic. -## Built-in serialization +## Serialization options + +### Built-in serialization The built-in serialization is done by first converting the data model to a dictionary and then serializing it to the model that that store understands, for each store that is different and defined as part of the built-in connector. Deserialization is done in the reverse order. -### Custom to and from dict methods +#### Custom to and from dict methods The built-in serialization can also use custom methods to go from the data model to a dictionary and from a dictionary to the data model. This can be done by implementing methods from the `VectorStoreModelToDictFromDictProtocol` for a class or functions following the `ToDictProtocol` and `FromDictProtocol` protocols in your record definition, both can be found in `semantic_kernel/data/vector_store_model_protocols.py`. This is especially useful when you want to use a optimized, container format in your code, but still want to be able to move between stores easily. -### Pydantic models +#### Pydantic models When you define you model using a Pydantic BaseModel, it will use the `model_dump` and `model_validate` methods to serialize and deserialize the data model to and from a dict. -## Custom serialization +### Custom serialization You can also define the serialization to be done directly from your model into the model of the data store. This can be done by implementing the `VectorStoreModelFunctionSerdeProtocol` protocol, or by adding functions that follow the `SerializeProtocol` and `DeserializeProtocol` in your record definition, both can be found in `semantic_kernel/data/vector_store_model_protocols.py`. -# Serialization of vectors +## Serialization of vectors When you have a vector in your data model, it needs to either be a list of floats or list of ints, since that is what most stores need, if you want your class to store the vector in a different format, you can use the `serialize_function` and `deserialize_function` defined in the `VectorStoreRecordVectorField` annotation. For instance for a numpy array you can use the following annotation: @@ -57,5 +64,10 @@ If you do use a vector store that can handle native numpy arrays and you don't w ::: zone-end ::: zone pivot="programming-language-java" + +## Coming soon + +More info coming soon. + ::: zone-end From bea1bfceab0a5fe5e535b08331b01eb9aeeeb898 Mon Sep 17 00:00:00 2001 From: edvan_microsoft Date: Fri, 16 Aug 2024 10:00:29 +0200 Subject: [PATCH 043/275] textual improvements --- .../defining-your-data-model.md | 4 ++-- .../schema-with-record-definition.md | 11 +++++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md index 09b9e2ea..5b0127e3 100644 --- a/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md +++ b/semantic-kernel/concepts/vector-store-connectors/defining-your-data-model.md @@ -194,7 +194,7 @@ Use this annotation to indicate that your attribute contains general data that i VectorStoreRecordDataField(is_filterable=True) ``` -#### VectorStoreRecordDataAttribute parameters +#### VectorStoreRecordDataField parameters | Parameter | Required | Description | |---------------------------|:--------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -212,7 +212,7 @@ Use this annotation to indicate that your attribute contains a vector. VectorStoreRecordVectorField(dimensions=4, distance_function=DistanceFunction.COSINE, index_kind=IndexKind.HNSW) ``` -#### VectorStoreRecordVectorAttribute parameters +#### VectorStoreRecordVectorField parameters | Parameter | Required | Description | |---------------------------|:--------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md index 8e5c5410..390f1bef 100644 --- a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md +++ b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md @@ -121,13 +121,12 @@ new VectorStoreRecordVectorProperty("DescriptionEmbedding", typeof(float)) { Dim Here is an example of how to create a record definition, for use with a [pandas DataFrame](https://pandas.pydata.org/docs/reference/frame.html). -Note the use of the same fields as in the [data model definition](./defining-your-data-model.md). +> [!Note] +> Note the use of the same fields as in the [data model definition](./defining-your-data-model.md). -Further there are two other important things to look at here. +There are a couple of important things to note, other then the fields definitions themselves. The first is the `container_mode` parameter. When set to True, this indicates that the data model is a container type, like a DataFrame, and that the data model is therefore a container of records, instead of a single one, a container record can be used in the exact same way, the main difference is that `get` and `get_batch` will return the same data type, with a single record for a `get` and one or more for a `get_batch`. When you want to do a upsert, `upsert` and `upsert_batch` can be used interchangeably, in other words, passing a container to `upsert` will result in multiple upserts, instead of a single one. -The first is the use of the `container_mode` parameter. When set to True, this indicates that the data model is a container type, like a DataFrame, and that the data model is therefore a container of records, instead of a single one. - -The second is the addition of the `to_dict` and `from_dict` methods, which are used to convert between the data model and the storage schema. In this case, the `to_dict` method is used to convert the DataFrame to a list of records, and the `from_dict` method is used to convert a list of records to a DataFrame. +The second is the addition of the `to_dict` and `from_dict` methods, which are used to convert between the data model and the storage schema. In this case, the `to_dict` method is used to convert the DataFrame to a list of records, and the `from_dict` method is used to convert a list of records to a DataFrame. There can also be a `serialize` and `deserialize` method (not shown in the example below), for details on the difference between those see the [serialization documentation](./serialization.md). ```python from semantic_kernel.data import ( @@ -154,7 +153,7 @@ hotel_definition = VectorStoreRecordDefinition( When creating a definition you always have to provide a name (as the key in the `fields` dict) and type for each property in your schema, since this is required for index creation and data mapping. -To use the definition, pass it to the GetCollection method. +To use the definition, pass it to the GetCollection method or a collection constructor, together with the data model type. ```python collection = vector_store.get_collection(collection_name="skhotels", data_model_type=pd.DataFrame, data_model_definition=hotel_definition) From c62904442d3ca3e14283867774d9fcaff732b433 Mon Sep 17 00:00:00 2001 From: edvan_microsoft Date: Fri, 16 Aug 2024 10:08:51 +0200 Subject: [PATCH 044/275] small fixes --- .../concepts/vector-store-connectors/index.md | 5 ++++- .../out-of-the-box-connectors/qdrant-connector.md | 6 +++++- .../out-of-the-box-connectors/redis-connector.md | 10 +++++++--- .../out-of-the-box-connectors/volatile-connector.md | 2 +- .../schema-with-record-definition.md | 8 ++++++-- 5 files changed, 23 insertions(+), 8 deletions(-) diff --git a/semantic-kernel/concepts/vector-store-connectors/index.md b/semantic-kernel/concepts/vector-store-connectors/index.md index db7a5d81..46e328ee 100644 --- a/semantic-kernel/concepts/vector-store-connectors/index.md +++ b/semantic-kernel/concepts/vector-store-connectors/index.md @@ -117,7 +117,10 @@ from semantic_kernel.connectors.memory.qdrant import QdrantStore vector_store = QdrantStore() # Choose a collection from the database and specify the type of key and record stored in it via Generic parameters. -collection = vector_store.get_collection("skhotels", Hotel) +collection = vector_store.get_collection( + collection_name="skhotels", + data_model_type=Hotel +) ``` ::: zone-end ::: zone pivot="programming-language-java" diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md index 8cfa4393..5c893be3 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/qdrant-connector.md @@ -344,7 +344,11 @@ In python the default value for `named_vectors` is True, but you can also disabl ```python from semantic_kernel.connectors.memory.qdrant import QdrantCollection -collection = QdrantCollection(collection_name="skhotels", data_model_type=hotel, named_vectors=False) +collection = QdrantCollection( + collection_name="skhotels", + data_model_type=Hotel, + named_vectors=False, +) ``` ::: zone-end ::: zone pivot="programming-language-java" diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md index 7951845b..109c27a1 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/redis-connector.md @@ -164,8 +164,8 @@ You can also create a collection directly, but there are two types of collection ```python from semantic_kernel.connectors.memory.redis import RedisHashsetCollection, RedisJsonCollection -hash_collection = RedisHashsetCollection(collection_name="skhotels", data_model_type=hotel) -json_collection = RedisJsonCollection(collection_name="skhotels", data_model_type=hotel) +hash_collection = RedisHashsetCollection(collection_name="skhotels", data_model_type=Hotel) +json_collection = RedisJsonCollection(collection_name="skhotels", data_model_type=Hotel) ``` When creating a collection from the vector store, you can pass in the collection type, as a enum: `RedisCollectionTypes`, the default is a hash collection. @@ -174,7 +174,11 @@ When creating a collection from the vector store, you can pass in the collection from semantic_kernel.connectors.memory.redis import RedisStore, RedisCollectionTypes vector_store = RedisStore() -collection = vector_store.get_collection(collection_name="skhotels", data_model_type=hotel, collection_type=RedisCollectionTypes.JSON) +collection = vector_store.get_collection( + collection_name="skhotels", + data_model_type=Hotel, + collection_type=RedisCollectionTypes.JSON, +) ``` diff --git a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md index ad537426..a7ada312 100644 --- a/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md +++ b/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/volatile-connector.md @@ -103,7 +103,7 @@ You can also create a collection directly. ```python from semantic_kernel.connectors.memory.volatile import VolatileCollection -collection = VolatileCollection(collection_name="skhotels", data_model_type=hotel) +collection = VolatileCollection(collection_name="skhotels", data_model_type=Hotel) ``` ## Serialization diff --git a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md index 390f1bef..612e1aa6 100644 --- a/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md +++ b/semantic-kernel/concepts/vector-store-connectors/schema-with-record-definition.md @@ -122,7 +122,7 @@ new VectorStoreRecordVectorProperty("DescriptionEmbedding", typeof(float)) { Dim Here is an example of how to create a record definition, for use with a [pandas DataFrame](https://pandas.pydata.org/docs/reference/frame.html). > [!Note] -> Note the use of the same fields as in the [data model definition](./defining-your-data-model.md). +> The same fields as in the [data model definition](./defining-your-data-model.md) are used here, for a datamodel they are added as annotations, here as a dict with the name. There are a couple of important things to note, other then the fields definitions themselves. The first is the `container_mode` parameter. When set to True, this indicates that the data model is a container type, like a DataFrame, and that the data model is therefore a container of records, instead of a single one, a container record can be used in the exact same way, the main difference is that `get` and `get_batch` will return the same data type, with a single record for a `get` and one or more for a `get_batch`. When you want to do a upsert, `upsert` and `upsert_batch` can be used interchangeably, in other words, passing a container to `upsert` will result in multiple upserts, instead of a single one. @@ -156,7 +156,11 @@ When creating a definition you always have to provide a name (as the key in the To use the definition, pass it to the GetCollection method or a collection constructor, together with the data model type. ```python -collection = vector_store.get_collection(collection_name="skhotels", data_model_type=pd.DataFrame, data_model_definition=hotel_definition) +collection = vector_store.get_collection( + collection_name="skhotels", + data_model_type=pd.DataFrame, + data_model_definition=hotel_definition, +) ``` ::: zone-end From 19b0c6ef31d888c312658948174bebcea9ce37b3 Mon Sep 17 00:00:00 2001 From: Evan Mattson Date: Mon, 19 Aug 2024 14:35:33 -0400 Subject: [PATCH 045/275] Update Python notebook image based on latest naming. --- .../get-started/quick-start-guide.md | 2 +- semantic-kernel/media/notebook-image.png | Bin 1567153 -> 0 bytes .../python_getting_started_notebooks.png | Bin 0 -> 1343389 bytes 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 semantic-kernel/media/notebook-image.png create mode 100644 semantic-kernel/media/python_getting_started_notebooks.png diff --git a/semantic-kernel/get-started/quick-start-guide.md b/semantic-kernel/get-started/quick-start-guide.md index b6c5e515..d95e07b4 100644 --- a/semantic-kernel/get-started/quick-start-guide.md +++ b/semantic-kernel/get-started/quick-start-guide.md @@ -80,7 +80,7 @@ Instructions for accessing the `SemanticKernel` Java package is available [here] ## Quickly get started with notebooks If you're a Python or C# developer, you can quickly get started with our notebooks. These notebooks provide step-by-step guides on how to use Semantic Kernel to build AI agents. -![Semantic Kernel notebooks](../media/notebook-image.png) +![Semantic Kernel notebooks](../media/python_getting_started_notebooks.png) ::: zone-end diff --git a/semantic-kernel/media/notebook-image.png b/semantic-kernel/media/notebook-image.png deleted file mode 100644 index ff243fa6ee0c99d90234964e9e6d3d4a8030f65f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1567153 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

0@+!I9z1-SgC#n*`_UEtMPtoo( zdgJaa4i7Bro?#i0jNA5|H9hVf;#tTvk85L25JO0f&o4Hz|F(*0TazU0-1NNwvV2cm zPD81`03ZmMpJ@AO`&95ismcq+D|GS?S>eBT0-}g?oMt7~H%QPamgf=uKWr}ySk>6g zjZGp4(~8y)emP1XMUO0On%q3?Ef;Css}2KZv*|==o)mkz8dw895AcB6^&<;-l`{?U z@l}6`3OY1?%5U|dF(W{lG(dA?>Wchx()_$-n_Y7NO+ps9=|C;RZ1JEqqG7+vm_g7~ z&F?C88kj!sj;x~SD)xS6P5>WLs*P5=D(Rz006lBLaOzy$22j{%-?c__IRDuE?UN2a zdF*n3wRT&jn-;9_3Aoy7{1eKP{_p8S#`pv2`}Hi2D}Azs+zL_(*pWTrcM*U>~n}dH~z3j-_8h!wodzBj?K`>!qg0tPd6!XxLncM5mMbitEEC z17cJUPN#RW<3Lm!BXWMC3Pe( zo0aE8R(t4~7w@6WDmEPF`Qj_fQ-9Z}=lp0n!qEN~hP|AOWmUlvC3YYLx z!=x@&6va!(5B{A)#PzANC?cs&#x{*3mwDdi9hq%(%G-7^)At64Be zq(nZmy6{gtDyZLT#EZ8Rg%50vjV%?Gcuw*LbXj@mSdPSpX#e4r($is?#0nxeXlyt+ zyXc&z0$9jItizavV&;Mo?zaeA|n4x5-dTKFLK%AB0pH!^6v%gnXg8Y zPc~X~4mWo@)M}z(4n$FJu-OmUA@)oLsBJuJ#Mo3(wJ|~uMgs)eJp(||aiv@z6OGNZ z>z`~8>AI2!O{VQ&!tA#4D9$qt z{PJ<0G~qDST$NL9N6;_kngt$4B#vg-G*YVNzJ9D_GaVl`6IxT?jWsVq3GP%9seHQ! zrn;T^Z7KUK4c;pzaygT>h6RKJyy*~vq14C}v}UF&uIF;EouX0pi5nSAKhPNc%9?`x zJ&yek?!9LZevi$81MHp1aB0tOhp3$GJcFfev?K0jcFg@t_M+ljK04b@bD!zwjLrwQ zdj$qGFn+~0L<)Jno7(tmH<=AF-Qe*_e2m*goJ|CusQ0C;J;C}N=B`sNU+>EhgcMe5 zzecC1D@!l#G=FQ!plpP$rKzGvJXZGbHuG)1V-8L)#KC!S?Y<@8;8?=?=v~5DV>UPK zMe6|v2L^F)>H!BQJSoBLb!J-28JErMAf5cpOW-%leg$xzxof|V1;PqBF9+DFWj>y* z3XAj#$ecP)mvHrbatGM>nRThX+YsfTz%3P%;YP(xRnoIVSFtM%!Rf>Hpi!5k`b6RZ`mC=$ ze^jBNkr47x)_+(`qoC`kxYK)I`SG|r!^UI=#}So_v%QAX<~-q+HLxG)&sDy$nBrxs z&yTQb+hpyL8&AIbsLGk3E2%L=%*NzIX{62!>HJ|!+8w=+?M27Qr3r+U_s>XMbi(S%nFy~RiM!+_oMbs-R}h~F=}!|D#}$}UQ`_QMoCe@QD5&L2$i zcAH!~#kG610>6tBbBOQ0mDfW3L|QC{(y7jQMv3J4$)H>mP0N&5X|j*fn2N@04G%

=2KSaD^s;kt|&t4YC(OOX1))wlJT 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

Y%VA`Hs6Nt_f!o z{v{cD=-Q$Dy8Tj=XW=u_741ID@Pf?GjLFX@_H!DUlAoVCn^3(NwD%mLC=2z!xAs6@ zS^4fD(>A*?nF3AmZpZ0Lq-d$=#T*gIq)v<`Zox*KY=~c}yZ(5AxjNcmplU5aiIhII zelUD(US%T3^7OMF?dt79W+45N8i|Bt{-Q4+>HeI^pF4%TQoHp2=1!}ZXUdXQy>8GS z;_L-XRj$s&v$cx2q4%E*nwP!T+2{uJ%k%ZJrSr+}?U@-a#+ase2&|vzd50`L>+#D+ zM4Ve2!blZ7Vu5It)y(U2b73-N;~%f~f9+IxrT6OJyE`&(r^d8YzOZ7{9NJ-MTV|KM z?aWUj+R9)fKEElgl67GwZ67QS%4m+McRTM4vTDxZ)E+M($&IC+?rQT|rE{~ITzze| zJ(6kk_B^KzIt$X9`cC5&_5l(b>GZwoJ2n7MUSoG{*5b0=om7q6)62Ec;59ah=f$Etbjr#Cssw!1%P#q?s@#u;fE@_>qTKXZg zi8|v`%m;AJscU^k{K<6g0R_K$^HYr@h@>qtGWk;{5w3Pl#mA{-CdJ*+DM#z0K3JHK z;qMH8GMqLnzgG=A^DR--U4Ah7*^Ol&*Lm9P#(jmXzFnw;o`ujS*?losX$UN`wN**@ ze}0r_hP{vP?u7p}lr_ojR-Ip+Yo$K*jCRgJz*!ApPbjQ*Aw~Z2 zVJoLVaazzHtk*-lp0=y{w_WijGX+yE;+MySp2xcpD|@S!c_RLdH?^1B+ou-Raig!0 z!J6vaUy3Sq>r|%0*%$SODUNL*dxbAlQdK}XSqq$Hb^2bK{j2N^jIzHuAk-Zm$HrAK z(jRX}z5tdQ6L@9yPEYqs)0vfh@8}F3f zfEQWb3aa5V9Y6#z@aqXM{@yeoY;8P0GzAw$%Pp3x)=i%7kaU^ytQiAjq5v@)Zk=a%o>FDIqiy_%%BG=`F%3Au~`Ol4#mL53!nT+TO^#>wO2gZn{wJ25sAO z**UFJYQ@ZRQ;B2`CK}>wwB78*A=7g>7XRQe)yT!1yy)Izi*W}l7gHk_T;wDuNAfKl zlF=UXx024=;ioOKF{94xv3AQ#0-Zs>2vrQ9F@2i))%}zo6*86Y)lUO9^8da_zAqt67yi+d>Op5S#BuhZAG#J+G1Ke0c`kdpLF zR4kdmOFL`4@Z}7{#J?K)=yh*H;Qe!XJj*eOm_L$+qJVqlfcV4m>iv-y^-*r50W)*- z0D^2l@{ww?-L0wf$>#l3nCVIol5Ruj>J9SF%M|{-^kk49^3H%5zYg3Z(D3tUv8_Yj zViiV4Fx%1V;~W8tV29OEm5xK-9!(L8AnqVO`U0vC0Rhb=0kV48bm{y}<_$=lUDVuV zUy@KmS`e%?=3KU17zkzniX^-iQJK8RGoUSEEBHJCE3hQIo^?2?A#dTZH7rryymS^9 z0rb?fgYI5_;&WE2_($H>Ejjs&Ur{p=XWi%%2djr@(FCHlAwf$I<(QPuaX_=9yJ26j zIaN|v_^1f4=`J{IW2b7+>ji5k6M=KJK3BvL{crYc*?F3@y%j*^z%f*$qJ_#IMO_mb zJlhMB>AgfC_R)-zeRDQDma_or1Bjg-=H#Kr)5K<5-$sUgHxXR z9dqt6e60{i^&}DVD9E9QwgZfsC0UCHnh-{N76z$0t{WRqCJ1rZgUbJ&v>7@AF2yx_ zopn}Zsf~_w%H$7ryyyEV;~(WLj|9-JKJirNom)lhSp=h-}R2=Mr`WjJHju) zEdmirSfH~={mNZet?++R1wDe zvEpex)~i}GG=?j5e#vtJAa%NAMMIX|G{1gxhrIi?( z@lQE^zJACF9G~dJOqcnV^#Ie|c!_$85lxKga3O@U4$}=E{nc&&ol=o4Dm|`nPA$0p z;lwG|p|39&7@0Ay=^MVfgTQSqmz^()ULG;&^-i-*U?oeNoG7l92}n8Wj30+VGz@CcM&veY+ z%8(~@b=2I5jE7#(yOl}@6Q*N(VMz$VoPyC>pCpPJ^S;_)D5HIu$6> z)KVdjkx{Y{*l1vj#{XQ;8ibW0{=1&F-svO!uLyedH#GnMEP@_I&=b=;p3k0+een~X8x^5GPlsoNLlBK(%=zZmUSJAr z%Q{7%pXf`X)1a>BQtXpls%CLd3E`o{%CVJiYkG&5_`jb0y!(;YG-0l0oTWEF1LiWH zdyR)se0Yr$n)Y$E#`N`Hi&EpI#y+M*t=<8d23&V z+RN7i!2sG|3_`8#%`nSbGODXS*+-%SaGpyLpx3sUZ?)pzCwp)%9eFSmS-_%5WodJ- zlOb9J@cEzAR$h{4 z+nxHA3t_XY8*WO^68*TSSezMrf>+*@Wgj*fe0MFQl|V23V)VUple|J6TE9ha3D3*g zt!TfHSM&F3B;XZC7qK{ep&b-Aaz)SkT>7q{to|@ejk7MfKL3~kU=G0+=U2(j2VWVN zB04(xp1@UsKA}-d{&TWax5cvKuZPNnot3*U3GSCRJ5I^Sj%4-iMevEKd|yr`kEqge zzV#l253fesRHW~g9xi?;B3#|*KR}})=g}2kjXqOQsn%FZZN2LNw-yl+uq>D4iX+$V zoKAik9ecYMkp}?lKhEBxNR^%DGUABPvanV0cYciW9hpIId*z>%bV4t32nd*Dg$@UV zPM2xLRkW!m^hRB3YpW^{8BkRKR|D~R?iM7-FXIuM&hs&roO_}=Gpt$&wu;89YODpa zJK2IoVD4{eC^wUe@&*5f|}qi>%p^c~)X6eaoj1zLn&drVlXcR;4|knG)IB zA-rb*HB-U(!am6vtz9Mxj^D73(&3Rmb|Y_j8P)U7D@`rM6B#3QtL`kjP}Jt3f{SWG ziCp#%cmnX=<5|_oyH%E53P&suNbWz|lgE(nDY@-6Ukx^HU=;PbDH^JXZ~owpTTW!C zgn5vYG;*aG_ZDN#vZgA4-D8n|lM* z41i^Pr1oR7%L$rZ)B{(7!LvP?>{5{)$>*p3VpUah(me4$fN{n}{r$~@0!HuC^J)Jr zmygw&r1lc>w;~W%bXO-^i49|LyeZSn*&MLjs{WUf*=Qe>M5yPBxG6{E38H#VQ#?&k zBu|UAeLrXHY?u$?qLybF{+VW>6nIuPr0tj4zoUH)nr>obZ!~aksf(O+#G&Pl$zF~h z&x_ipqSRx6S-eB5bA$-3N=!-gkgw^B_6&q=0~;2voB3=RYt%GviB8^8!bG@qaAN!2 z2lSsuSwY+fR5=iH;s2RDZhv#FeSuA(Pcv`xU*3jFPPz$Ms!qzRk}fVJ#ah*W{b@v+ zo_Ks{d+VYliGV=$v#fAzBqoKf@p#iuma<{8(J9Lh%H;SewWOQE+n7vW)Mh&J!cgqI zd`-eKP2Bn%F1mI*wSxt{oX(OFp;XChbE28wW}qbR_xV+6C*8{HbYf8Ij||2eZ@t_S z=_+x^gDE4)%wq4Ca+6Sp1&MEOo8Fs*YsK==)*bZ<(oMy2qzMg&%Qs!-hl|!891^6n z(_C2{k>$zr+*Lrd1VzHnO9F`GFykt;w%}tT0u~zp7<={pqsQ5t>+XmmsNddUKxjj& z&IQ$kpTJQ4l=APA*YRrny;_Y2)ki(->d+bMsub&T)wL%5BsPt*BVY&36g#Xw+N{cA zya(8AsH9P3@zIg*A3DlF=%2~_2!Q=LG2C78zt^rTDETb7aB%OFWt++~HlMYCh5jy7 z?amo!+Z^HwW`~gzu+KLg?UdVY($-B!N;~=)uAmAjNoB3bnZm1~ux|d1m9@cJ1TxcC zd)~Q)0t4s~e4j74h|!5kp(@#F&AcAY!3J}<7{nx&5T1(1^EiC+^Hz8t z7F56ZobC8z%j)M__nT1r(om_Dn5OCi^LL6?>^iXSkndjRXgK_eg|Az4t_ahPnaI#a zow+f7)&e-^_pq@z!D0ZAnj`_vhu3vG?XK!)4I&jP(Mqf6+Cu+qFQFOl(+H9Ax1_Ih z?b`H(K=Iir>CsAiYQu0&p!qh?rNFw`T9P$}>udL%jaa19ZCNc25nz#!+c_M@;DW1B zUkSNev!xE@1oP;V3aoq+O&`YFQjRJHw8@_4T|Wp90On3k&%4*Ea=N7-BjY3}D-@#r z5xUF+$;JiXQ-LVR6a>}}7l?LP%|u*0y!dFsFNE`B;dsXn>HRulQKs?nb2i@i&ojE^ zM!D3~cB^-szjEszmO%=2>Ml3Z5Fvhpr@X!?i2WcLMMj)%*{KuOV+W6d zBr$;z&CM#R9pfFGSETr?7rP`uQ(Tlp8f62qaboeNXY`GvSID`_+!4`jg%*MVxa`$c zuiT@OrP!IFs3bU$hqSbg9=ZolD-*ES4 zxMnTanfbLUS4HYv&wnMi0fLcx=;PT?Q)yO1z1O)p(l@WmNhr~b+Q zYI6HzwLZ*Bs_k4n3z%|QhTt!pU1Gl0`z{`T`2Nj3B|%B>unEXRtphor-f>EAzc;Ad zR^NmE1PA$`9whjnK7$<}w&Vb2;9kS`lnsE^y_c$ z_#w)Mj}FF#bNj>>ST$N=0fUmwGqqq3;-r+861$w3IoVkSm{~gBj&gE=HJ6FvNd|n% zZoDw7bZWciuxV>VUfRAXM7Rn-uPt^&wSiN7$}(I{l(HxUcq`%Lx+3}~NL6>(@P_{{ zGKr^U4uynF(f#u?#Ux|LQ)2wd|7jri&jT}#f5kn}MZeZWC8C+j;s>;YnYs#BtskwI zx7#zp?zqpRmICw?^wn~T&b{46UX$zTThNu@fM|xubHl^EhVg*?_xYR>M-dz@OALMx zV8M#j9~RA0&|9$^Gxr!PY z5yI)gW&{O^m@lgiuyBQLNs;UQXnSO;TXc^9rfKqhm&H+X+9Zp7n(Os1{;5`sz`CR@ zRRsz(;%)3x5E6)rDlaqh`E6%TNPx5Z*q`iXFlh{c!gK$zng4GSWOTr=_*%2%e78`U z+O?ml&|E$pu>AMzEg4*)ug+nKz-Lpbvc&{*qQ1)#EG~Cm<|lvO{vUnL(W_t7gY|>vy-Wbo*-3rM_In(O-7G>StZXP!3xdjOQ1u3 zOuHc8^Bxp*oa^wCu$w+$Sq(5k(%65)tZ7p9HIoazngS5@j3%KQ`?)xs- z&$}1>OjLO46`|WW3St8OIQI)W$e4h8S{gftcU}tuqrzCxNt_SQX?Kjsm~_4S8u@=( zc53}H5S!m9^L=|KPGK@i=~dZGwlt#c;8ESS+T{^1f6q+B`SQ+#`1wRKBku*;a0NdQ zU!ax4*H)=N=bN{{8{Ved8>chS!nbS(aOu-xCA6hAW(MBmdSk$nZsMX2 zT}b}ogk)R$)F@zW0xW*Coh}+pKa64)FNJcfhDMa#X-5>zpPlJSY< zw6EytognOYY$fJ9C$^@t6k5&i0f&&gN*oZnwX|3dbpIc^-ZQGHh3ghpv499Ds30Bb zA|N6iLKUPdh$t;ck=}a=kuEA7=|!YV6X`9XNr%uw4?XlAAb})zd!FZx@4Vx?@8Cxu zv^{pR=bmfMxz>UX3_^42Pt(M{d9fvq%CnT@*y?R4Q9UWrC&tozY)I;GO=Z2{q`9KW9q&2R4pAzlDPHKObF=vF^~ZE&JR zF2&|NFVidkIk`4zYIMXuMZ(e{5-Po83PZ`$QCic z3ftW5=Jmnz?}w)Z`pCy`rXD?e?sqibxVIw(r!8=KX-&7!u+_P$!y;P&=^cL|{;JI5 zgZH4t?y3J?NC|q9+zHa%EV^nwHv6Hup^;C8LVY!Dnx%}-2+SdEML#Qej=R*nFTuS! z?B}p04iBNG(MosQcXV8TvtdWGfk>A^MAEwzeCBQYvS0s*LeplzBmyIUVN`M(I1w_~ zpN*IzeVV3at65dWz?4oNZ` zS>c9xB2T4-P0%JXIMXg4&V;qIboTVDRf@}sEw`Usz4iZp;1Rnr@Xrd3`}_usdlk4A zCvyGwTu-l=*z2cDYx3!TD_S0x=v|Lf%Pog3J@~GX-rO7Wl-2iI^zXy@mg!fS0gKAA)x%)w>FlWA7xA{tRc!RMCkn*ufdn%)=(Ar6 zxQ+(4mQ-=cD_;|Q{cVn>EP_&>#ZzO0xI#hrJJSbw36jUho=WR!(!+FB#c)LaVX9l9 zp!2;}d0Fg4a#6gAxD~c5fM+BYI+degLg>jU7Sg4}t7l1ehBM=uI7jV(c}}&ohZrhU z!NaG1C-zTdY@!X!9X1Z{O z=gOuy2S{C1H8MEAcK9_vio#E7646Zw0mODZt!sH9USW4d3g#|o{8V_nW>?g%0n)Wb zeE8v~?j2~RkJZofo;jNMOolSlxUutDrU$I#8_!Dj{=(7sthog1{k$DF{1-&ZCt0%e zL?a(!{O%X*7oF!XE}c;~a@-;;6qnt8@PgSJ%kMQOo27XVt1#w(V#?+c^O#^fEtQQ@ z@5SDhd~Ec4OkSY1#=0mo4|hX7pd@J?^TLd8hIVs_mb5Da`oj)s5Iq>TTcmL@-Uv^3 z`MNb=V|HEs2eT3>yYDL+r3;Vvz=<;K{i?I}yPZ znooR-tK(TX)7_|@>7M`vzCQe232y%bb&eNoUL~zk5eJ<;gos7}UR3URB{9f98zHis z^d@@FgHOyB;ZRxcvG`@%KO#|ZB#b(~Uhb-*^Q*FDf5H-{O<)iD{9|jg|AHxqny^+J z==_lD3vY-t`>4Mnb)0_?r<3nCrx#k7sHuV9DKR%jR*wWLE-$zSq|JE$2-2X2io}^} z1xcFoRu8x!;2W&UF>))TUd;xsT;uVZXKa(Q>E{E4rYU|&r$k?3$TBO-4W7I7&niq0 zbiBsOomBfNXFO@VIxjbJtZJkvK-q;BuOg3S#8_f_+y^Dg`qHTsdX!&KZ$9(Pyrgx7 zV+v+a$KfCjJp$j#yy!s}HJHJAP547-T)uZcSJ__mM3q3NjoKA18kf^GO|2g<0>?%d zWcHiPj%yGRm*X`(0x{3p(bLFVt%P00x2IxDp+{1rt_@I=xK;o%xoLop!@q`zI(twY*E9H#fHuP!GafZbbPW(#7T}Na*DGzXroM!6~IDDip zyx0*R4|0}eIeq&yT4O6-R>OM`kN=|@0W4NUX8Wmt!?oz$ESBt~PM-n;A;76onjv;; zt~6SV>wB??o4c{g6&8<@mggC-Tprw^-YpoEu@JlWMT^gcrP=?_=P}_MgRS7lZ`b#X zZNtxxXLOCcwY`amFwi@IH>T;g~3>&J^q5>Z(i=3j%~u)SJkeEo>`1LWmDz+WP0eTF=h z+2DeKB(5n!5SnVCdJ@}4Ygz1|bGS{!2G~bun*Vpqh#D`~HIOBWi4h^M0K8pyrM+?u z?FP0HzuL}wH0&<&t3H%>;8+7h4M-QS=61(~y;yR~*(BHGbGb;sfh0}9_i)>}i~x7f zLMgOGoDr#6`qOt{koGeRebjmu`ea?_oS3~&pSmHTp7#&Dzuug3uFEXkn~wdMVZ{ZS z07~6%biKWJ$eCACghoRV2u+H%@%i7t{K-{%nn2q~hIjR5DTXk6m*$}=+fg>mJTQDh ze1Z?LKXV1%daXtFF}9rR;9yZ%#!_kLb7MgiY(&K?1!aJvFh0yKjPjiR6>J(TsZ_I~ zPFRii#VBUMfbAcAhMQTcV8XDmW}gm6^nQ|s$N!*U_(*$_6lFiG%w#zgA62dSDx8__1Ns&b|(P1N@tT$g=B7O5&=moNb-;$h* zjKq?Zn)NMf+Wv@yV3vBB?9PiW{q?Q*{m?P{9^$(5a`*w!VG&)S94s>j@so_<=Yk`e*!8KDH#VMm@ zaHQt>_LtY^%xM(Pw9FM&sg4(V=T)83?$+a3$@)w z=LEYso#^7DRGm~EakzsFZ^x>{C-rr@8=S_%xZAZZ2+W9m7+RU0;JkS!v!CtAgP)Lb zr@y;iG*M@!=_K1q$1MVXS7-3P*A}nuMeAbVWoP^>f{C-J(UaSwpcOB5Edq?)8 z$@8)YG?0a^M%?NU%`ZYc9$37#RbwN5@32A))i>jw?`8yWv z+&~L`Jp3`spu1 zqjlkWL1WXU$rZ%^VpgDj`MqYB<;`AA`bvv4$)gmp`6SPsI`^{x$8ZWitBqHNO!LG9 zAhqK9sGHDFnQvl$FCtj zHxpNh^#Z6C!=S7HNW#a4yOa%~P=rhoTI?9G^8H<_Rn3vID0Dj>9D4q2^x)N|h>GZ^ z&wyjzbr5g!^`O}p25;7=c{+Zt62ya)6uxNQ-pz6_N?4v!_LkK}RaR>pl_fTu86+Yw zoLn#a-5mhcgZU60Wpr5S$Ks~ljFDI4q{#$GHnX`w6hO1>s{opPAlS4~20g=Cc%?6q zVWSQ^{3*V4>{R}2TC=EM5Rso}sE<`4^{||W2q)U>m z#M$y)K>q-5o!RVi6jq)27_sguL-Qp%R0AD)b~-X-bxNO>7xt0Ol$7qu|Kp)Vfb_N9 zZ1)91)|o}qw}t=R+au-=HTVkb5K&zO8yypQoU#!x`eoy`+`dkrN$(Q)t34^kR*{Nq zCQn68O7zoWQW-#Z$KG?_{g!mDhU=4+{0+3155*T|JjL^j3J~ARcDAV}xv*f9%Ia?9 zhVyTn*~cZx>L}T4gB||v)_Rl&;BaM-)O9AhTW$Z@t<}cF2_D-j)#EB6s42$yyQz&S z%i~q=RQJeQPV_@#1Td6+M7Hla;!(_+viPfOG51BT8e4yL{=sur694bh6B+e! z!VTct>y1B#ubTq%@vlSVquLj;b*Qy&7b>=Bu^sk|lFu%q&Yo=i9=$hb3~#rCi+_7| zHANo^>T7m$+X-%I&)nXd*v{{|x6%5lk>E*!^t0Yk$6jT>lMrGrZR=2rd0rjZrpt2C zE8{oMT~t$zt9EH8Oo@FHJY@-bh7B?m*r?aCsy$64nR`FuuqIixe4uF@K_aweI|e4% zxUxbX7vsD%v?JzLKsBeTxmzJN?*_j(rzvusby}PCaU4sQqM55e$qagIwB%$PM1ZfB zIrL=o-G9t-UGF0@OH1}qaW=4AuOn|D1Rx{5K5V%Z?=C;mRXhW%URq#CO)bN3Rk-~? z5iYMUsZp`KPNF~y6zTsbv3$WYE}4{dW=}vD^-CbY1`{3-(72Y&0$x~F_kY3F7EwVY zL^rNR=qu1(LsOyNyLn9qNUe-z!it)tYJ-|w%GV-a-;e`A1o|`Y~XAW@dk52_Rw@Hhn8N>sg}0C{fCnrM9ng1KFdqo29WF0lq8v z?8yZH+wQcelk$$^Q_8uyoyyfPRSDg&kN3*-@GlsNgvni2=45M}s}&LM7Jbg^V55l_~HNmq83=84rl5D5ByBen(0F6F(_8dqRr6lkm zJ${cNtBj89UNE%s>Cc_MHfZsOog9)We{~2&zrM0s@ycNYXyVhE*ZmVh6Aqe3RfFLt zCIX#~xDcP+jY^Q#&(pf>f*I4=6ICo+AG*tB46gM2akxN+H|he_!(UP@vUP;NfSf`A zM!)hYhC}rA&u`8TK~M`Ey_6gHmv@oWCbE{}iTy-zW25WXuUsSWhfr?zy5m6=#*TY& zG^dlDOkx(lK1+-~dHF^S@t!2vH6r}?@ znvHcV6|w8FFXU5FYaRp$dS~WNR*`!NB>&13PsgnnO#N(hfSJ?tnLa{Dk@n|cU8=xUYKXS(rqE2#a{-Omxk zioQ*}SpULHEyHX1kntvfnuo?1@==tw_uw2_)svI0Le+oZn^v~Xg?%xj-HCU}RGB=5 zF-wR1dgyH}Y5d7uFRV;7*Z#N72X6rS?TS(nJDyUNm|)BU!2#FhK<1=h5KrVRE5*Z= z{J(}Ehcpm2d>$E(fuqzxgcZj+{}@6?#WcI!Qm4ca4W%H&X`<6BaFkpA#XH;oH{=31 z+_L#muDUbQAB6EaU29Kjyylj_I!kfGAHIfX(H3_}*H2#*BV1N#Y7$-A;p~`I9BUz` zd>H+m@>Rbq-kLo>Q<_(D+Fw*p`<>)is3lJIpACDMkv!Rh^8}ktY+P9y$@-7>SJ%6e*9d4>D#I-v#zx0 zbVayz)CwktHQIXnFj^a1z{D`Qw3B5*PAkwf#}WcEG&T#N8LyCa&lUojS0`CSZ~nU| zxcOXeOM*R}=WhL4j#CJYra3tAi}TV)_<8w&qtPTeZdAIbUAXuKvz$|RGKEn&-j?j) zQ#Kqf88MfJ9KU{#>DUyEv@vyfVkHhwZ+(>m>;nj`2BfLCo8;2H&&tBaniok#o&1mU zB*9Ok9S;ALW!+*)J+Rv#2KaqGx7j!22TRX2d7Vxw4Z3o(n7YJJxhC9I7Z>Wg0ZLyd zVdZdfK3;Z$?F9%CTto_Vf}k}_L!&}ngF7?ziTt)Kf(IkD9EJ-}Iv$!E=)&@mH6`(b zB4~uC`#$x~FkuUV+6NyLE0cjI$IrZdE_SG_ey*P}T`Z2V8`Ta@AxPZTu%^YRvFnBh zW(P3v%#(^(r|V0ho~1sy@ALuI<+KN{l(J~l+Vzn%w@p(uN-uYhW&ri`Cg?QI_>VS^wy_ z{G}J0H(2UfzT&NPyiVjB8%S#A#d+g_deKqVN@+7aF~92POQ052bm+Y7nR7BLI=b&V zv9k&7YL-!b#gjKHn{B+xK>zFx^x9Kh(?EaT=G7kk*~tPz&X4mPZp+W;jAu9v4e?hf zTBmkc%HdVD3!9}cJ^C)f8-)Timp@PU#vXF+?ajMGnSPU%tzHF}j#f0=&8ZQ?Tz6qf zT%3Winkmjp)8UyeS9#QyM4~p^kDJn1+~Ys^r~d4{zs+dE4u>5j0{q<#+^0zW&D%3CV5TAPWGc&IO0saXdbJ-)d&k8i)(5+UQTg5+!0yf<6$BkUqY7I?bLH`&{;4) z5Nd~<^tQd$ET-h29TudzWiVO^u*e!>Z6?FBr+8e_JUd*c8fav&>Q&kOVQ7bxyv^V+ zWflB29vJm7o{Yf0Y`9%`=P`F+$LB3q*xv1s)~r>o^s_lJDz6eL^1qz6{FsC327Wu= zf)1dz5ek_pIw%!EgNDb?lkdfA%0-PiHGAls3Vby_JUkbkwbQkYK2W=(C6|1UI&*fv zG>2YkUT@Rm1KVHN`cU_#M@isiuSocbd4AQ~wg^{7*_2NGNZ`VNnfGJU^^e|JB_5@x zkj>Z@l1B*BQCT>~G_1yXQ(*D!C(eFOu`p#)V31LLLBt-F6KFYk#YbP)pi7)r`5n zaHbcIRW90cq?4W+gX|Xn1OTqSATc%l`cs*6hersBIMuhE|Dyu_w+bBiNb$SDvhrtE zKpaq%YIh>P$e#?j^LIsMCa?^a-FUP1iCm^{Z!TYOQ*YDVY*ncGYkGP?-V@u(x0!f{5lBi8RZid{d#V^Db zJMLG4FBO?ul0ZK0)>iG;9Y`JC%eawy*Z@l^qe&?*gej*vSBB-mgq}XGEb*O6i=H?` z{j+j%y)-(Y3upVzKZI2BBs{Y1Une3^;m(lnASw6F=VjP+hDD{($s{(m_K!JI^-KbS zUlZgiFPxYBPshAKI>UcDs8kiBG%l*=b_BQ902x?9g$ixbFm~hK+#811?kh(mMrni6 zp9^E112jXO70l7s#De(evDS%xQ_u)waLH>a-c|u~n2R+%8wuu^ZC_X6(m_R|>m# zp^g1Sqjx+3fIv&5@WbkHyr+AuG~hDulZr2s_rRqWTO{Ew1EGQssmOy$Yc^{G8_iY% zZ3R^6fri9~_q)4Z6@d+!yPz3ZZ35pw95_R~-{BQ&#aG-~{2Sn0oZZ9vn>-#A={lS2 zIUaGDCHAPY)MZ8cJuV^~2%R@D-N2~!TBKfCRAMweZF!zk$?RkkUtI9A7a!lFrx?t& zRL+TZGXkG$YYXhV^4H5jz;H^E&-6G33ZaGc}rdlT_%xr$7!#orRo?0#TkW1hgC@H}LA zr{x{V*f6fVn;sm#l5SufzqR%)CyW#KAMi@NRTq-t{gpA?f7th&!ms}RgYJFvhivTW zg>w&98wx%H``-iVvbH80MbDZ%uZq;i+>J?XCd`g{pz;#!w+2uHp5?@vlk{YS%m&H1 zrprqiC1gOIu@% zHTry~C%oarp^`{Ry{ea@5G33Fy~)3906}m{ZQL$Xp-#f4qiKNe03c;9$wk57MTmGu zcDy8H$rp}1(zz|xY4^U&56$#DjbUAN@2RQ=NQW2T{O@ioG$0zcpnco^v`q zL4o2t6&}f&JAX?*jQW;C>6wPvOq^t;q1KY?b)WH4$*t}R74Hscl69&ze(pb=FtPpZ zEz3t^MN;miBd)8p`q3cqdCqG|>X3^Nr15p#sPpwOkkoslJQKGB+{GK`iY6*W_Ym+zgzq2R4V z{xY_#ff`v)CJ+6eJy5zu@2r$1F_@9ObQ38jX^_6Z4Cdi`*5`LQv`dgyDA1XEq%Z(h=j$+!ZVVLC8#21HtnG@2VOC7t@55)~-#JLKkJRxPT zIh|zKs|OSC5eZY`Pb?>9vAZ2YUK|4LHj!0A)a_M5sEofjDo%&6j%HnJs zwxdth6BZ1EoQq$znNBl_Ztsw8DtTw8qppJ46TZ?toy_>vCHiPWwLM9SOy_)bLuGu} z=EZa1mM=}*eRjGm#iE+;SwW;ej?u(%uIg9;GCI50Y#U@WzWpxy7g|A2V5D35=r?o+ zF#fqjH>>m^B>{eV&Mh8f`uW=v=LI{6m@`})B<9lN4F$mni)b1zWQJ=U!;lO<_1=xC zKVTgV$@6|A=sYuXdM!fITHkA7f+74-k$;hcf{^^ce1=zy&*`rvFPp=VQ(F> zSr{r=a`1L*HSVSCDAKRbCByz^Af1=YIrtQ<0#^HezTtA-=y3g5qt|6ETOZ}(KVSfq z5ejYfu5*7Y=kvMY8IQT2#-+IHfNj;)EU`>QlEIs`2cLx{5rg~`Id1t! z?roVjBCsOEd6yq_VG5Ww)@gdFoX+(>OUFy@!xjxyEID%&(4SqR8@aifwM99I5Dx45r%*)q~SxL(I{y~q66h{s4V!E7Lwq7o30 z$=d2VHf$8B%fl25qS4iqTnWbAJnEGSfeBOjy}py|VZ&;9r%;1ALeX9p#=e zQ9?{n%FCqC2delw$5k)i|F~mKiRtfH?PQKR;oQJzPNda z2~^B--`HN3y0CviBV54&Pm4^d8YpJj^OmzP?N0{C&2DSm9z_ImFRe#JgU$6aRn|x` zD@EX?+Qi~skSZDEHYSO`_c#{fo`}=L12gl+dt@E5pFmq-sK7ZWP1#6Z!X7b^<$G*qjHBhGvn}kt9!z6O&r#%gwZ-~IF*8c&({Jue z6+KaT%nXZB@nz*&fnQ30WnGvmI;`tNGyh=XGF*Sy9}dcCj{X-OAe@bQgcOm`g3!q$Lukz}7TCA1okOGu4FUB!B>xp+^1+d3K z&}3tG+Sc`HHt2?@d!tc?%tCkp)$P|SxQ7nn@O&+CHq-y>#p?;(JJ#Iydi?$gx&~CY z>&jw*yv=(9;85a_9Wly2T(xc|0q{I$S5Ku=HP{WGIGnY;=e=S{9WKw+AvQ`|ab-NH z@<4t3>WS5KSIR9#xt6~CxWC@JWKA*gn%;)~BMK73rH`3st6H7zp;QD^Z~P^TIPoVN zd$eC&9Sk;vEc2N|$MyJtf0zq2%GG$O>{VI5kLQz<;t-xXwF}k(a|?X;`+-}}iEhXu z92clc^lPMx3q4-z?+T%!z*8Tb5^>-C%zZUu9<{PCO7R=6S9r~3-%ikQ{>?Gkw{Rd) z23#pim+WA;9;7TVI&oh1z&n31bs2`~a#6)ZM^7Pl#0#}`$^>a{cx}UMpkBkVewI6( zveH_xU4hdcS`qtG|Lk)wl(cj)hyu8Phgg@A(27r4HZ0W2VL02<7Lw`}?U5D(M= zlF<*diDw`yMdxcmdZK}><{cunoC5%43c0Om0IQq2IG0I<#b%v@8J?KRz5OOcoF0pw z3x)de*hnq67|;H45LNAU`S4#=H-6K8MFx-^=d_q+!4T)yH4D{ed>JX-jlC`zUr+rQ z7g9A`^|)?*pE0kzybJK|uX<`Gl*nMZazWC4Dw<3;D74~)ljJY0{R=%9g)xFC839+*g4-4O_r$sqhOZyNK%R_Cv;y?{8fLm zk4D(Xy|9?6Z@wAt0B)yKBGDocFK0p`6t*&}=;?Nj_3QP|1ysiEQYl|Q6^=dZyQ@S+y|g(bYIx@eyg+-;MGK5bcK(ko*!>4d(Qiys~XhqEn%Jp z?7_Qla9P!(!uLJ@5s?q0)>v* z8C#j0N)YoyVybW6B&E#s?8$ZBv@3V?s)e1WtI16BQaNyAMcb7{pbBQsq01Vp z8($XGeWvfYuNs2d5NRv}-diNQJ-vn;z! z_wn;-=YWAwXS3F&yxl@DDz4w}Ou(=nNa>{|e5>D|2nQ4$(3|0Lm9-e24?PLNfW+rM zh_K6O&f7fdKBO|CKkfKZO>39ip8%EiHO ztHM#Ja$uhOLgC=Q!NR_>^qjocAvEPp#O%gNsK~pK7@_y|l$&+xqrGArg0?3wjgKEgh=Baby=H}zBL=%(#dYC%!&@IFxZMf58?2j0 z#+|H4_aaR&R#EXU7Kh`mkS=e%hAmqJ#32hHOM~!LmPZY!boWAb>*CwI*A|s7t{vgl zsKMo0C{(aq-jS0y48$+tH+kEuWg+slMqUL<$A~*k zfmNBVs!QZhl!Yf*6K3?Qo5>F|S+!<_41D(I`%4Wuo1x~1Qz?SJI$<=nd)Z<0<1?j| zmU9?A@#O!|%sJ1uqdRz{N%j^8mBeD5@w`{x+L6--BGtx!L_m${p8m9&XU|_0_6np` zdz_9?gdlhl_(q(4wDEh8y zEFWFx5Q_P;61T+?FfT98+2eVube|{)-!6-=;qaj#yVAT86+TBEUr;c+CP{_37>Oqs z8LH!SRRLf_r3p`2_UYHf2Y4m1$ADe&HY$>z9)AAjEMs)DEh2{JJE*O}d#9TbXzk+p z(~K4Dl3ir>J8Hh#P)RjC?viCtlHmFmA<5RJhXCKZNqjdPP#<%BRvZl*m%UJuyy)J9 z<+BL=y%f^dHdSK_fTLKO1KO`~Vev!Zu*JHsu318jh$? z?0^(q-aKCSA-d~rFGil84t86Xfj`07tbsd6ay(u~m6iOgl4{9m?swkLn_B8V7q2%# z4R;Y*YR&&>k2)bV7pA=)87o94^cm6bMF8mVl2{#>>Rx63H(yc4IN`O*utCX%TNDQs znLrTv0v=qx*OVvav$rGcU0Bp>B{O_C)6F8|yU733E&u1qm)A(2CDq*_$|uJ%4^my^ zm-EZ>;U_Cu zl80y9-;5*mmk%`~j1SMq&|jfb*-Wwghld3RuRg>>b(EHey!G-maU*$Uro(bKcayV& z?S)ta?`XYt)6Zr$0mouYSG&H#d=&ilNc>sD zzGVr^#lnp;{c@8?P@?mte?ail=l>DQwU#8cmazi78mp{tzPW&%ZmZO1E_jRiuhA=3 zma#KmS0lP^)hFE8FaWRA%IGOS)@H~Aotuj-FZ!s?#Mp^BH=l$q|9;bk)sq5-+6Oz# zG+1t`7gq}xrhNg+NfUp`%$gY9D#;<8x+*xL3Y7VM2iMLL-@z8Ro1d#E)z^OLcQ-uM zh89&YhR_f(;Opo=eyU}xuRqywSNo|t^IM&8IZ`29Ln9-{ zB~n2c;SZDorYi&H;9L(yu_|4wKQRWX{wGMoEZ=ebPLF}>%qu^~t+NIQqzxEjm?zJ$ z!t$LdljIk)y*A3Vx#2$Zt#^;w$WBmGP?#WAO~f1rlVw@MF^!@D^Ijc-m*iUegh-h= z-rEq6@`QgyYXtF<{Y?A|M0ecaWBAZv75R^EOiCPxZRLLC+Q0g_)tGY;nZ z$*hQ!JJEM!x1RidW0_sGHegyjK0)p+m(}x2(7MhMdny!#i}J@s5`f!~bN9WMxFV_( zCZ?MCtkosoR|pThqAPDKrNW2=rIv1_2R7kfu|)~b9g zK#%DP`KQNb?{MQcPZuuhj&xH}`Td3)RvLOPmAT&0a(43T`mo2PxDAn0sofIsK(I$B zTzkqEcxSgW;8Yx$r)bRBp51gj|8)#Gub0FxmsHJ%G$pgpmzB14>LM0@iM3<#?UXs| zol!;FgT-@S1SyD=ya36 zt?fbtdB1V(j9ea_*p`)Xgw_sx%=E}-pwZfIT$60Ya3&VBoYki7PZQ%dHAK_eQk&Da zg0H6QrJPM!14{{#vDoJ5dTtbsRcOF1lZCn2s}mAJeM*SNSt*yOK9w11~(?tDI%HhVMd$Rlw^wg3t>t$)j#T#{-PDOhI zqhD`?p7{_!hK}nnul3zPf_1~MoU(I}I{mqr=xK+2MB~dbnSJCwz%$9ijzuWY3A`gd*mXt4qm+mm5 zHUfgNSx_^G70}rg?%x*=9`9rok)OUw z>Xh_dk%8ATR^&<4ZI0=UzCrtCv1983X14K3%Opt*&G!l@Zlsf|5$L;@_7{D?Vvd%5 zw_eO-jO7+2g3{t%M#EC!1onKFUN{ht>IPZjesBZNFATM!&mSAr?bn!rnOoo1Tbyi9 z?Jj*0)DngQEyHz@qSHL3WkYQtWHhsNE*pZ6?%L)U;n10WWem@(U)J~2TI$o%119}V z(3Zu&at(4h?B6lzfS!*lv#z=fu;mp^ZR2Hg>@OQ(WFg3?b$D49nhacMKceD{TWyJ?=p(fx)y@Oplm{3)1}j9zLlW^Psv+Vto}uvIhvCfWVR_ZF`%eC|)g z6H{#=%~j=>9hJniO_EBK+Iyc~&`e{F^jb>p*g5yf9cW%+1>*`Fl*Ze_y{j$}Ad%6a zdr{$*kX37e{d{j%jNsJ{OR(@0GTu>B2h`!=Kia#Q>!jT>Lr|ME(}FYcWq;M%x-UM* zI(;_+=zp>ko!pC*!v>=NX}A+YQz}{Id_F(XSK9oF zf1^Vs8sViKu$5C)#6sA+TsGHmVJKw`f;a~H*}Lz!$lGa1R;(Yb?nXETtgmSpq`S|1 zA5S}Okyn=Ac=ece@oEjxXY$$UAF1l)2mXWx$M(exChyka8YMI&F*_ipR%!^ih=2~qoprLG2!yJ!hU5gzH2i^z;>Ar?C3MeF91K%l1o)x zQ~XXmma%Ckzvw){*+Dag8*O{#vUyJu&`f-~_BGf}g$K}M(PQ+FIS5P4apyg0EahY- zXs^5Fvg-ANB^--a-JI4_**gULX|}b8;8&kU|LrdG#U6chWP7)4Tgomo0wfHw@q&2a zAoFtOwAU4~K4HJ{Va=PfRGezpEIu2vB$#Ks>-~tezx|pW(3RD>qw0m((B|8I_M$BZ zUyIbc=oL68YA+_*j_x2^Pyy{XIIWWHHN*pNBER>^Y=FZ(MbO|)0D`MiI*KPC^Tg#HFwG+T+51N(FD8@VhkMR&&e*?KR+pF3MuFG6eFu0J&5O$55_zBT*};LpoYO zA|C){IE2O|+Xo+Y++(MDaZc=)BFwtR$|i*%e*BK@77ax+VzX@x{-^Tt@2{RwUK!wY z?2tVQayI*nIvcqbz32T{#lK0kcj?|j-nBbA`v}N!M3IXA0cMQtw_*xmlTT*aMz^u| zHy<%Uk?2e}bi;3xk2rFqSyUIWxk@5+{72UJP*KYFP_S{cz$a$p{-8cY)e>o?TVtW^ zxz5LEMm*+Ka~^ql=l10LUkR75#zHoG>~bhFG$6y{7Cq#28@H$KYfYy2w3XgnXMfUkjxwsyOluZ z5Q^Qx)5@@A_HY4xBrRP|(pVA;iHg5*(XCln=}~yRA37(+23-f-%u-Ce(REY55xAm{ z&By|%4%$C~&$_ATw$?}E7g4N_Q_jCrOn5Lse%%7Ito0!n6|+|!rpuKloO2(m6Czai z8u>b9nDq+=Ju-p?=`&$Ot#`ql%Sod`of2NfFd4?cbz%n2Wm)Z_*V#D*z!S!7mJ74D6YAXzCW#eXW3xWY!&+bLEjDDXR<)Fu`VXt{f3^2( zBGpq2j&-dRbWgt5{Kz!YcoQs%ZjJOSL4!^L?Qji#)?5s)C?pp}o^H20x#dtysAnK0 z3byD4G7JY9Gw;96_8kGd2%vtsj>PX>Z0y;<@BNyzI|?jnc@w10J&^qFhKhTPQ3ws3 zkr;CBthM9xD?ePlal)0+HNA5rPtosm+59B3SluKOv!rmkDL7h=7yqYl8NWO4RT%p> z6<&%Qfk*0X%_drvEsIVzhrK8@I(_Yg67RyJ^*y?}c_yZQXV}f;<)smab;P_}cf4(8 z*3YWvL}mN6C=a?nJ=m?(_dd;eBk3^N>46bNYl1gFG$+i5O}y7W@v`$ICyJQN=-0ba zYiaoH^PTqlWOeJsDTog{GU3za>Kz135SYoz4{#1O&cR=0OE~@q6*Hz?*k>$(j6zLT zk;o}?NXrgCXkYYh)Hi>Q8IJ^We4U-6x>RCCeGwIp!?0Q87+%RA*1;k3;EkBJ7d4h2HWG-GWBr!prE(FP?KPta$$9*CoJZ2 z^?)rzr?0Ul#{^i+f!vxmd$jBf(i^AuoJemzRpkN(QMqI;r`YAAOaB{^mo3WA8*lm` zh{i39Q-RdjlU|VIWwsfkBaab}Z6kWkFpZh`^7BgWxNeT^nQMf4Z~te%J8$h z_@%s*!ZrfgiOSqxYp<5Vwk^|6Si7 z50i6?V0Z@@Q3K2B3nGF)?btI-I!JTJj-0f`$i|x8^_?G27H&XM*@3oImy!BA4wso*%?^to9UaO-wpRU8pI%S0cSV#L;%?YDL1{PShDWFz0y>XD+9oQjmmjd%S@nt zNqDe8okA5Hew}fyXUEy+^v7eUxC_j0Q>q%AA+z2JD;sT@F0a35=DvFPZ5M;;_lzeb z6P~^mWsoA2G;TpH3ce03UZm15Ds_@w`_^!&ApiY`fK$l2 zzHrRYY2{xb#k}W*PpbUe1H{piBLuwfW@He}yM$*4f4q}zEMdONzudSML)S)sTuRsQ zo!WH0Bl2;JBD!gvtLX%8KR3Dwq`89RI|C(e`(Es(g(I;$G%q^!b@%*ibf#xF`8oof zD?oxBlvFTJUm)Tu`AhJ1FLq?pj&Mf6K(yC97;R?%+}3&$-nSR<4D;>9RK%#!YpM)NfojNde!S=;(My@bWYbL%ox*UvkeQ;!b5ve7cO!5ms?REAd6q&Od2u8ns{rtn$SAX2DPFyL ze}(<85s0uP*d<++7~{SzbceA-@DuuBx_9>t8KNkuZyCaKHULI^iZKDPvd1UHIR|b1 z)7)p0EG-jXTqPMK6yUuw@3@>f6}$@UGTdKc%;LSI6-GALbWxXG^!?_zrJA}=#$&Vy z|LEkG(q+4R6uu9S@w}l3bA}8A6Sdsk?r1S$iw)y2)+20)Tky->^1b|fbJ#q;0~O&f zo|Q-CKx;Bp5!)+1c3&Fm9e5H|)nKD+3@ zDerKOF|0R+Rt9c0=rw*9b*llKe?B}EN8H&fkoA9jn(Wp5fdqMei7;RSst1gK(LpP? zq)YNlTl~Z-`!d*D*aOZrmt69YW--KlOMUr#^d%7lzaP>fl=REd4w!njJC8=aD6%BC zr*i0M^`l@*Z*eTz9cUMd3xBrr`5-#)PRSq1_w~S)bM_TVvnbvsjSxGT^p~S&Qw3%u zP1>wC*LOa(+r1b|{cy;=!BJ?7NcaHA0OOLCz^~*Pxmf@k3G}5SHveV;j_6Z&-U=cQ zaw-N>YKMSvcO(zURB{zlzdS4X56<=hX)n8p$6nhNU12eKhwb51UIm%Hwi!4z{g6{@ z43+?cC$ZK^rGi>%EZ?xj09np3u+^? zkMbi7-0k@QJK=jS-s;`!!oq~81ndBd%GY+3+ut_-iT0@(aqsz_cxcDO;h_{UQ$_)^ zglQ%loBAvYwBo1OEh70UPPY3z^VT+yg)BM6QM?6jHU1yg-a4%6Zd)6sB&9(_IwVy@ zknV1f5=j9OknU#DA;Ka>>6Gs7lt#Ld?vhw^y%XKfd7pjGKIi++_3pp8kR@yJn{$kD zkNY0sz0Cb;qGCErKTAZ#vF6Rj0GjpZ@ zLE6`p&vk8%-KBkrhzSA}Wr#hdsOEHeMx~?a#q~HCn4yK{5wT>4?JyP{wLmP-QEZY_ zvWsqP7ikR^lHrkRHHp^((L@RxgAb;gQH<fGeK%r zi_O(g`|QcZ>WFlKAc3Ey+m4$NWM6`q0&9EF2-MIo`z@T0Pgb=qVBfLQY({_z+tp-m zI&oH<#Tq3!IPqmg@hF|eA&%`h6|y-*F%1dzrLW>AV$pTyMKP!d29gt^v<^+FFQXV24Q~l{w-cqSJdH>N1&_SVOB*@qne|p`feCKWZH=?qLsymww^wWlM zTG5El&$`cZD0A*5?@wkF+E3*d%xn^E*ZuG<#nNh_cNY$0F$sNGS}_CJmnf8H<`3xRf05L* z|5y;=wCT%$-C$oUQ4*M7&@^M3E>Jk{sxu7cTNJHF3f+9!@V2=<{H2%yLnEk}gPg00 zGUEvn zd$B3}k=1-gURfijaMtu;P(%oquMJN2QA5*Bn|H;#e+a{Q2AVw>l@p520`!asow&kX zyjEZY@-efE_%(?^lr+QbI+f1mSjYr|Lpt51uA`#^AeiVlu_*W_bRKw`1J4d2eNE0 z*7a(^EH4C>CgZ5Y>zZAhTQ`c?CdsW-M~((;;{k^R$x;uSuk!<6QTDbRr>dorUVH+@{_&(X7>xo~`5|+K2vkzC0Z;7DaN{ zup7m+Z--eT<}jp{C_TMQtX^@2xyQE8O-uE62c z&MM=?<%&c#`6vHD_g9qN$RmvUjQ~IVe20@+1FuWKc4s#JVAPU9v#i_SZClX)gOV6> z6I^Iv)-atmy<;l6*DsovZ>r(@38Jt3x!XD>&#_khIw`M{HzWD)7Q*Wt>< zJcN(&QAQ%m*}Cm7j|-QMbz`R_-r<6Z_gW6pvb_}o468hB?%y2S!{X~yPJgmmVCgR+ zD{g6YaYr>m`A@#oT^;rUVeE>`X?Ag3hf`3bo+nXO`{1q|PCh9g);9HWz|ZhVyN)t! zmHc@u2xPM(I7mOrhK%RFYG#p~ip&ezLr1Ue5<8v{j+MV>IlV}k1rt2`_*}bWXSl#ifU0z&V>7@7qt6U zIQ1lk1iw|R-79?OaTsM7$g_tjYWiuLcAGe8{p) z64d;l*Xt{=OZ;?zUGnJ{eru)sVa*Msxy-F=9hSgY*~wOu?l|2lOc%8cfs^0lmgJLU zCizz#H3aWu#%=#`eJb^OFaPj?Qgx@IelB7w>GZGzW#^ps;8 z1U5o<3!;e5GF1#@8rM9nO(My)pBqLveZa&R;eozEy%i$hq6}l_*fFyd(5miwwa9Pg z)+NCu1RwC=IH-A$R>Whqzf1`knkVh4FT!!!}7qH7QKbVKn{nO<-Z7oJa}3=mZe4yFT{q}QP$<&a(_35Mijm1cjicLEC)yLe>Bt;?p`>^(l;^8wQbEr z6?OY=!v>nH7y4rBYn^m^k9Di;bX%6>ak+zV1vFo-XZE_xZqC+v&eaPw3dbrqkcV-6 z=YCJZCM-?5oP0r)$Nhu1(ro#(Cb^1UWpm-E|BdsT+b9;A=%%*3mMQUL9KcJPn)o*O_6p>?V^=YdmCDEwG0#)GS8yig-+WGmG6ViofNDm?__d8E{$Y$z7 zIW($&IcDL4w+ctwL_cbfVl9Ttw6+r7s3GdS z`~tdb%EqaMBH&~rjPbShtP)TKir(Qq=J01lbJs;qmzI@rslSFA|N0E_; z?ed1PQ#t5q$9P>tTL7Lj7O14FK0Dx-gLt?HSX;tH>`o#QGQY| z4a26(1LGV!9W6zI`cyqDTk>b>>Qyh@O1M^MpmygoNidg6`X=w<(nLMx{rqr`(V6+G zgZl-n8H{t1v9|rM3f8N>xhHCqC1W1NUvO%g*PWvWnoJ-QtFhRaA z>%S*0LIeM!ZF)St$y)Y-X9RviL({cMu1Dz0@rRpiD%X{RR(y@L>Pf2YsL?Jii3G1? z$oY|eD(SgQyJ+8Y@#`WRm1Nva6>t%A$Vi1$j3}Of@oZmS^BS&U-q%%lojCA~wp^5i zM1-jc7NfU02z1&dK1bYsY!WKRoQ{B-h^Tsk z{-QXP3*W8%;W&QCYbUww)mRRu2us&Idhxqr=j9G2iSOSZrT-tLmLN>WZd2b6zu!o4 zn(x2N*h^7HeTVTOCmM2Oh^mV24JhE4Lo3hUFVpymTl}(f>js12`U*rs4NkN1eD*e{ zd5@~?;mmW~ZjcsA#n%&p*QQ9*yq)N#Yq&Ju|K~j6pT8rNxa;VoOmIG0?EMKshb^^j z^QoR}MGzj&|` z`+^~?jb~QjZ}U^}u#=>vkcyi}kzS(p#69#FG`1ZrS;j#n&Q6Cq=E6pkOU=_mOtfLR z@P1zDn5od|Y!&{S3cGHaMeP;PYe1|M8Y3|I8L}nnF%1H#Uq>OU-%W|PNmz8ZDA$nL z!P57tBAA{`9>-UHx5~ORpwT`0EErskOCwQDB^ofA2m0NQMWVl@V1(i-WV9IE`zMO( z{+~kAs41hz6xo2IB2{KHxzpZ-#Bt7MA*;Xg#6x7a@+4yw3PW#8(}Vx-VXsKMbwK}6 z@=|hdUc}DoWoz(SW1xj6c=}4asQC(JVISs+`t{wD-4BCFxNYA}tDY4PNYf{RL4(@p zAV_JSWc0V;bcK28(3cq+KKpO;7jD=QJ$0H}z{u9HrgW zy>&r)@HQ08BkXs>F;hr?pQY`BF~;UBED5KQl^2Bmyvc$5WVq9h`PNf5t zK5k^LyyhXoSKQ+5cki|H$N$^r#k*FUu5 zVK?ntdC-Ax=dqaXWmKc7EH{W_y^t>fE?^;Na%nmr9EFqFa--{cd zyD`ORX=&VICx_*zKwuTpvE>!>?cpNC5tyM-tkk9S{K}!C4lpA=Sd743i=?6quSK7p zUAW>j&so6)U~Vi=P1Snt%KXV)H&W|6$D1G!r9p=36ocC z1IM`$R;EvaaE}r=S%l^nYJc|`f4#>)no_;T$i3HaI7@9;W$yk&!|NXjdsY6P80W~7 zo$Wm|?Nj*7MUJbCfz;37VcnhAL3MgdoENeyq8x-Xio6!1fsQ7x6FZjklzqqrq$*OG z1>mah?X!>w#Gi#jE@+sdh#+t`qY8;@Az>Y2b<^3{;#U|OrBt8FOd=xEFwergQia2f z_svnGy4j_#(t5EXu^g!Nnv*&}UlfMWdFp)zFrLpx7SeMj6zF)-?Kt_3H7zj3_Zf$X z$9WWFdS%{N#YH(7mFC^+YpGQVvVIKy^Jqv%LCpfT$MiT%Yv2Q2!v3;dxI%Mlvh-&b zy(EKzS6a6>ppEm1Ow86@6KbZ&=+55-Wu-TN4y$KLSAGuY$#EwEq2KR}!TSpLZhqDt zkSy2dsj%gNl_Aoqu>LiImJcCMMJc3!Tm4sZJ+4Cj+~xdxD`4ND(BEg}ULJpoy4QGV z$?0c5t>I=Ll>VCHQ1)7aVhabhK~HuF zQ@JnT0>j<(7wA@@xadT2%xTN&NG%zpgB(H&kvx!Q4i)vzV=a30=ZI8{%+0i6BV5_( zp#q2Sw_Y94XK5uVMeez&Uj$!h%IO`q1kkmn;2=Mpd6a?tL}`?s);wHc@-^-KNl?3~ zb$HJN;tv=6*DQeOP1(c_JTPMZW)%Yg#eO5JQJ>snDw0Jn25*-VR+3sWES2c4G_Elw zX<^|`;=wqAf_9w_+&JU>-1;SpZvC0n^Cot2VqV95x2>G4$kfwcAReMUeBAT9hxjqV zXy4zTkCOhM<3mT(6W;^J_t7x`^Uv`i;Am93`)id)uMcKMIa+AesXv986x%!YNB$KP z2WN3meKi%P&3K*qp6Qucs>rPwnuQ^K9D9L}uW%m%^acsp>pGVTzjiu{KOq)ZBXOLR z@ZNYr!2?u~#^2TEdh!_Djv35xNQ=I85NR%q${U%htaDoe37HJZ#}?;Ig=1HunI%gn|g zRA5U{#$AvHZ)-4y0&EKah2fPZodI0PCRtc5UWVr6O&Tbx&gS7ccTTJIQn5g@SP znB^PTt#pDYUf@XL(BMsv*y z+e97*gs5n_FV9;-NjMe6Ii2_4I!&8qJzkZ0|EziefzxSkwtcl`J!u;m^HFqk9##4s z%u#KdD`x$tbNxp{&En+CSn~hCAAe7y?*@S|`8SsjG+JNGPa*5@)NmBQiYjD6o39=s z#0bAVNLaNTTEAkRt{ErOtUe*xw=%~6;}yMSsNR}|$xvB%#?c_KH6^S+c$PzDwmV$X zuwDLsW{pceK8mVX^A4_#xt`9f{JqcTKYsvpv6PzjP$WNm41T2c$%*<=C0`VPPe-E; zBN1<(DCP6p9Dg{SB9Qho_(iy0*pAV_X_1md@t z>prCGUKgjkNGmRj>opot%miJfk4#&YR~=~;iHAJ+xi><`XxJI%pvZr$`r_o~`m*k5 zKu}OEzYZ*PiOd=f@QtVTsgiE=H+v_Zn_XwwOfti zt3U;O8iUA`32(4HMk)9?VA-NwvXT}VTVOs+#(EhVJn{{$@|29)nc(DGK5N85x`_T_ z#V!i3q_xZvC3>wDfB!WqkFCdXh>VW3`nnGHGP%sMO_WOSF?cm2i8QxLr{tl%K=YQ! z<(PU^=M_m&6c;(!1RG0^7BDYQRZIdcAGo}O9RVz3>5_FjgU?#9RtF0&^bu`?iYYAm zA_NY9l`&qHio0#-oeXAC>`J*c9lxozUeti#d}E56P6oLab^HRYOZVegP)CdCnE#9& z7y}$mLEc|Z>@Glr2K|{%7{r?zp#uh>(ENh4y9-ADV^H~T$3Ond{}+vR=e0^dS{vjB zntIO%g&M0o;de1u4~`=0_6edD;YV1@i4|Zy2H4JGGxvp~h#Pu2_O(k)G+E}y5wKKH zR)pdak;9qslS$)r?D%T9=pMn^pbLh~XM2Gj6=vp#-U1eJf=6m3$I&kZc7`Q9hSJao zESjB0DIb#h>Z>FU(BT15HXu!UP%#A+3FO(=gSgUuJsYyGkA^h{Qw8H4gY4PWV>W%s zPr8>wIHo|=^HzGPl}vDlOr8CPVuQUJi;gmy%lQQ92DD3pKKWOf^TCqV>q4>2O;E%U ztfIjEUB_WeO@SW3HIqqC!Z7fZpOY3;{nJzS|MQeJ+)@s%fvUg!3z5Y8?=Sd&f80t~ zzXLse!o$Ub^JXjAD~Sc(gDdloA@q&pRGB&?4(+p|bg3Gi75=qb&@l6KNxe1)NSsMmGo;idkD6WF51(Ir`~nTNmPBhQB=1Yr{}tzUmR643r% zyIr_VIWX8AAr0nzv^f?OgN!F&v6|<^6D+CfeX%R-iyZU4koe_a=qir+Pnv7@v+a1G z7eMUJF82RVcksXRAKu?UGwVN!U4HqVd*Vaj7)eBC`O;pvoS|exX8>?L$)+!Q=yBms zid_1btS41aPp+qZs~6ifI#X7L_!WQ7749#Jtrz6eIOq4z5k_A#y289yL>%Jqjm|+L z;+|n%A~+>f#SoF6##6MFA#94E8Z}@PAB@fbD{fKHkHnGkdqPPil&W($8GJ1p=!yoy zCeKB1HUj^7N+ZZp-Y%7y@}l#WGRH@^CDM>(f@$E_D|)nelg$v4CjT4J%atKXkfp?e z%M#D@vPF<}QS2Kda1wN?heacIX~|({AA6#&`BGKWwZ)qhFYBfJvL8$#7Ht0^TC+?3 z!A@({PDk-kK)4BvGX1*;|L-R+{QveH@|b^5HJ15Lev@%a_bDyOU)6k5J>oP^4|qXR z0{cKim;A-;0zbB?-Ku>mFVPi=-_P|hm)?=$_sd>elxA{4z8@P(R<0zMWRo!;(%()h zQ7Fd@sp!@=GO0;6AT@k}z$b4g4REbc@TNiz#bvp&(?ZX};>wZp2;vWMzxA*=bL_f1 zR?^9mxxg=%G2*5m_}NZUxWTB@;;$kC;;(uGFZ5aZE)8B_uMP>X_!5+&n|~lb6Jdc# zzj1g((})x5>v;ZJ%f#1Rvgug2^j-HPA@lPQ7^pW0=CGKq?tNC*=dd@+{dM+Fv&3@b z;X;e=Pt&Z#&(X|ZYZiPkW@l^c@MG_qCuqJj#{H27zBMRc8+w}~3kI^IP6(~HEFQoM95i?L(&q@opJho!865S`E8XhsL6ndyPw1*TY^icWZ ziG+;2#to{&BF~I{tcBOh&GfD%R-wTH`jDv%ep1;9q zbd(|w_mc-P$!8m4odw0>ElUaXBe0%cY^J7Na!!G7y8~92LQ_MGA^iaekvs zCa8y4&W@43ajCTKOhpkgr#8fSNcGj%Ne8ILTtBe##B=*@yj=;i zddeJ(79f>CEV9|J#z~tOC%an4%D{z@`6DpzJM^)3R+BkSrYZ~=Cwq+lwC#Orxhk`} z$HQbwD8Uth97q_)fDkS(#6!h>*p)u}gLgOIU}zH&d-hk7^I@P&g-sy8|DDOHfSb?9Wg_$C^^69fTBc8eLOcJx*pvbDA8Tpu=&@h8 zUze)xdD1+OKXaw+!+*{4W{d6PSIO5cvob@XfdZqcvU~!<$4dy5MYbD(e8*cM9*3zA zbA9|FjqZ`xwTlmjzSGrG5y4%2k`(aZh>0cZfr%EUvicb+3uKndpzwDvc${NjN4(}v z@GW{Kw~|q;>rheB){%mf`H0T}fq6CVTrU%Z)?lT=vvZc}!9X?f zRd6;8lW}rcE=OxMZCJcdh<^psCv8ZCK8lHcYWT<8l=uKtINlgaccvLH10n-xKz2Qy zTKJ!`w*Nhn@Xr6;-%XLn->PVvJOAJ!^z7`hXH+wp&?mke=X+vw-dGmxQzLXsNZ;4< zuo=@P-N*7MEJj~-Kuq*J#sX8`L~y4-!633{b8v^F{>$G!bs0}WUHcImCIu{}_lsP5 zP#hj5@8pGf;!U%^-`Z4cLPkR-VR}S>7|D;^wZLGOGU|`->kJS7e5~``eFTgpWEj#T zMrz9FCB@}bg_~|R@|`H<4muy5b0gBA9qFpjq7m#U5U$8QE|j5)evP^5iSj@|KY;3N z;lf^en(HG*0G(@m&Z+?n#0T!15}$=NfqBiN6m_ z=-BnYwCssyB%UErc4^0ztWFgT{3bW+yd1ih8LQhfGaF7NI@=XNb2MHQopzU_ykcz6 z8^ET;Ge7TI>5dw)cOof`pE)$sS{td*O_YwBvxN%YXvkRgePKP`iWeCX0gEi+#&1f8 zK=>0H5&1)nYhD&arvsrvInA{4e}82EHC_C__|SVx_%8B+9eT@rxg*z=%~l@==+$QV zZBC+t^Inq~9o!F36Me$Z=tsChIIoy^ktVCRbVT(T)$q`RHFzKk>Yk&^kv-vjliaWk z7nNo*EiMpdztV?GyG|>OgM$_+j7vx$h9f}m9FCfji3$B7s!tOVD-~r*ikBF?v`i!^ z?fQK@D9za^ujKJ@U;kdF&LnScl5t^OUS3|^yfnX?$}eldSwZtfBG<`g!L4H91w_}V zTR5Y=kfUNrt&JM~3E=_HYKqC{>u}2mB%^k2E3su)qw_?HD!Y@5Y9EomCqGc} znVoLV6W$D*azl#GOA23Ss8%cYp}uI0P@*G$>)TI=)B4M{k7BUZknYdZziUN%i6X0z z#3#+DoRK2;^+idK;m78+#kN5F=`+nooR)I(aqOv+I115>DgnB{{$=6_>gbF8tk^}k za5XMhEyLDUWAz&2e}2zqp-KqCl|$>1LZ!zW-HU8NNAM9s5cQg{6XA+zc1*wyWcI@s zKvL00L-6sUq(nviH+_Nk6EX-Q5l*Q4SYny=_GeM0nbU&Ni+k-Gb_oKxI4T1??c?e9 zwKATV4>XL%hy6huZ1{ujRdKfRrS3Fs6GaUza)UMy=MdeTKaqz9w z)rZei?qfHRvvRSd8|u~&QPyA!mIdYe`7YmL_~Th!qXNExsd8iMA!HxNSxzW1PbJ%W z-*tK-qj}qPnP7Cp`b|XOQz)@f8Kg4s2W={<`YPW1 zN~Bq1YeYbCyfv17v_3F$alGxI6G1JWt&*isYyKXXzi4;l0a)v`=aF=GQZ~O%zc)N= z5xl(;rI8G)C(?1-RY9e%Z;hg4_P3@M-s2!H2PZ;{gXGLl4~W`#f#>>PM7S1Fl)h*F z8&3)xI}RKwZ9sJdFWAybm>@aosAjQ%Amq+xu#QV%WjUCBf6+CpE)dINioB9CVu8z@ z?u!zW>|oNiJlHf%1b=0tH!FCG)K|ym&d`ww;_B` zQKR%#y@m61GNk2IR$h-c$R*cpKMZDm^v{u!ZoT3_!4jezjDLIh@S!!m(0+@MwOggW z-aZOh&kodLFyKgg;6ytx8h(}Ro>n=V6VpzLAw+5sgJe3j&tsn}x@Wj8z@rq4aa!0} zj?3%$gG%uvY^IIsWJ+L7?HKd(jhOfmlhj@qlcPB*rcQ`Bdbi_oM$$@08jtc}=j|RQp8I%tFR!L9IlHfH2P^_U@@tS4JC>2k?&gM#(;2M0KwmRUq|6g~6w zQl5cpDu3&(o#gEW#KtL>tZZn7wQ-51348Nf%7+iH^xIO3S)G~k=#lxOp1h5mO;W+9 zE%&u1JDeqF^xLk6M866wm7Yua=xV+}u`G7W_h2q(XCeV(hS^Sb@&S0GX{rIEGld)u za-vHWCNu3>!6<3U)kb~8X}jBeQSOTALw|pN`G69sSzNH5iRYUP`6=E2HOA>0P4A=1FLVYNNzaRwmXTa~V6PNybA36>q5+0C%Kx2c9 z{Atj1VK(N$VLjDc(mmEw$`3+v{85rZD2rbp<)UN;TM?4zBy+0c!|8n-gI|rx4Hs{w zuulhEE5+T`u!YEu2q_&-Fy{wZv%KB}2$FMd4{;*7o^@OeC0(k&VTRsN%?cj!Nlx*iMUUagd3d?XSZWDoMpQ1`U-gm=5(o+ z7>LWnK1+n~DCzoJ`)qWClGyJr2v65JvFJ2;CW?rPGU_$DN3$AsXe{4=e$t_@Y{nb= zi*4hd>Es_VX%wfdvbfl4mo~^cJ98!SIw_F&`}rv;DTS*ExWckuN}MSs3-A*%C^a9( zQ{S^>b*ypNe$a9=m?~<2xFX$?$jeFiRFhr8j>l%n&oN+`#G|B{XbpLOgHtk$G#ccT z04m|fJIgJLa(Ukrr{2y~S*eWYzbR<+7S`Ugnp8yX`!0ZzRAakZx)#CjcEWXj#ATX; zgM2Q1K+cgSmn(@!47ZN2P-aDz_3dP*qM?Q?>&b=;dCO- zX!f^@nuZg&?X=0z7X6r?1S_8d$$Xed&t3R?2vHWmuowRJ2%Xaa>Pq;d6Q%*=av5sB zS!qGy0fhc?vx#RD%LMN*$aw5i)C)AlWkqlvJdnVrSI7V<$WKs#4y1Y11W|NS9>dx*eG>3MzXNgvX#8mU=w_qWz8d><>0^mur)Hx=W`yZzHZK1) zY~+EBZ)&B{vItkn`~F84;Fp_hj~8(0X~S`MMJWnMLj^9fCFQ0bFm^qb2qTpy;k1NR zC*PqlK#Lsrx>$sXAN~#%XL#Q2hi%?0tTprQXp8OFm7PY7zkl%WLRY642zOTvSD{?x za>r}BFbDHsUyi|>(mAXsFiHC1mq~Bm6>!6BPO?SK`Q5FX>2@a7jh+gc4|t@Io!*0( z^g1w^g@#-j>pjHxo1upCv>&BIJ|P-Rr(>V^@}0Kia4W8`V(p=DXunTXHl^6XzCI$= zK;cD=T?{<>#?s5c0a>7JL`Zp#YUi`xjVRXRLS9{#G-G(Uk0?yyg-Lb@=kJ7mDaIf4 zsG9$(jBp2*&NG?9vQlG}u|IHa=axClkpR{mQn-|he>{1g z+*M}HU#0(~nje+kRvbzyLK`J{P_SyD_E*=_J$c}= z9ABakBcM`+Q3&p7{!$e-JO42G^HQwW|j$HyFI_(*Tps z?s?@LlG5^uEEBZ}Tky)7paImmugy0>ZW$^S?xFGsHT&4L${UDs!AH`D*MbzRtzV6R zY;Cy8N)OytwP+r7^Xc+n46gQgE+D#3)#R3X~-t3(6?0MTY<@b*3GE8^d`lczO zEf;sx7vjl3PO^<}!S#ZAq?(VreZc15NvJfTp!ZHcL%(cZc=(*0R(TE=4%r2DJAxA% z!4icZ5j7c(#9?25k84BYEwwB zUJWb@@s_Xq25hGoC#b69t6MjjATHjd8dFeK36XQOe89lOz_`@Sq!ti+3+DS)3Yj2r zPZa4Tle_J(Qk>X2X&;1ks64;^Ni5#FwYoKyr)~|VZO;^VUq;#^_|btbxrul9zZx%} zd8ah%*$RSg?Kt+}#_JO;k_<{&2DMy*pVcV6j8)>;7cB8`?_wZj zG48^#cA<6+f?LW9o+c_vKYUN$ajP)Jq6UfEJ+v&@Kue{wdpE?iX>}hF%ajk_dS0E* z;Ix;3%gKOb$(+_H-BdK8G5S<3=+L+~yEmAM&0tTa)`5A6{>KM#(HzYP_h5a^;P+S* zH|5dKbn5nO1RP|E(j;XB7fN)Q(j?!uHKxN(y-_0v!`X#Lb7gWiNPd=lX?%}iG3(Tq z?qO1iv!z`0vC|aa8Nan z6v*ZknTZrCJ7U>Qm2>Ayc{3HF1m1QsBZdef%y2%-)X`Gc3>!A;k~@xb3T;w3SWrQF zrpqN?HzvU2u|%23>)~fP-)g3gtDJBCG*>(CG123OPSgZ$m+&?D5a-v_(vcaXu+6z> zDwQxdKBi4w92_J(UW8Il*&R2ot*dv*lHX|u**RO=OfEZ&K3rEO|485x<7~yn#-pNo zWBY0(%hm4HFr3iBC2Pa+qdJ*H4%H0R3b=# z68dCuGgd1|ja~Op7&{N_D6X)dwI7yY7pgGrV!I^apIRYfq+lWmEMQb-OD0b~Cr91l z`Zd~yaw$xPbTf%vC3?$eIoYl`>5@;v^Ju^MxztHFWoz`di*YkD31T0kBHqcM%^M?& zll(yJ6?nS!p$9&VTu@h3^BSwYHn}0>%Gt0^e~xctr`TktR^x5tyvV$$OQaO$Q{)aC zD2x}9B%{J9AUO%da@=4mm=;lkJ3i&Y6?YG5E;Z^kxxP47Ezo?KtCWi1ZBI>wK5qh$ znxh+b%O?0qIw;N7#Pks6DS6w1@QBAgTb#q&%QIXaICXAE#E{J6YcRxPxj{ajgCn}u zaaRVsoUZ;YG8#5^78$SOV6lFi`8&+zj?i?Udl=Kx3SXXk(CX-$&pFW&X4NF+6DWeLcXzsN|^^FnC-95$%I&a|J;4 zegj0^Bzrpevo(3>4@BkA=mC%wy}mrHIyavxeLMyzhL42I?|11z;k0(m3v?UQAKk9U zTT|0%aJEoTc52Fx>QkI7qzm6tk4?%YwA=}$hYbv;OJaYRtLG+qO!(X2-vWbAz)?Wj zd3Jc&>}TEj3+FQ5w>Qvg@WM%9=z#F*QbTn@K9(Sbz2+>-C;K?<&aUREtdCACKJdJY zbeyc2^DRM_n7~Bj8rirGcD2XsCCW^Kjtv@h&$=NcU6{Ynsm5Egp)4Te1{)Eo34(bM zqF!Ig&p(?CyL2>5=&ND)irgh=9|mAu0h)Nrp_`9c@Y9nEWg=^ z)|nX9?X~5Yd=0dJ^WqO!Lxg|RbdEUIe8PCiSA059*w1Wo(O$*4Gi@~C{Y@?=4ms@V zXN5xaDYCaWi~1PZ>w+VsmzI}t&txV3$#(x?$&`!K;TlU4s(p)WA6Rx?lQi+6i3Ddj zo!q}gM6)@{m(1teibx}O2+9fsX(a*c6Gr2Py}@YdTYw zSZ)k^dFTt>58$RsLfUzb`z*dtj$*J4nC?9?zZqMy?ff3z%^BuSwp@0r-wgQdn)*@DWekJd}PR0&E_LDkgF zoR6pyto=Ll4yP;39&94{oKqc8C2EwL;Ch@b2C6UccF7`RlgoiBX4rHS3)3&oRy6vr z@Tdf}PQUihS3x?EBN~WR`@*Wzk1*{lgXp~d z;)SIj{zf{OkIKPI0MMGk?sP>++ATnNPli#9?{&Qbx=79#Ha`rf;phi%?Wa%lt-)Ez zo^d=5TkpzN5xSg&!VG!)@YckSL{9K1I(W4QO* zfA6s()F%PB=2lO$r+*4~J?s{!_{5p=p$|RQ(D`ms(>rV@z-?eCeTOv)y@l1Q5jY|? zeZ^Drqy!D2X(>SVT=+c&%t@BSb}m6S5O#?plnIp*~Y=o3`$3;1}p2 z;Y(bGUP6bKp1Q%_x-r-$Mt9RdD2543y83jh5*;ac4J*2EBg3Z04t2mzWb51Dd!z8i zOn&(ARkHc;*GJd)cGrOt%$0X z=T({W$+YKwMhrP)?*tpp=pK2;%-1`@Uvu3&E%F7Qv1otxxJQUO;p}<>&F?_yg>kQ} ze3I*R;W8B&V3?bK3JZ-}9dw=tvdpFIZ%;gte9SzWD)W+NKJjCo6Xa~Aq)Wh<7J;R~ z`UJ`2>f7nEBq}|ERntB6#r81y-p!&+Hg+LJhwE_b`k;TAGPVCE%F;kLwK^)P`V3(O z6}f=61!)m9S{g6>w7djUIV)6o^NZ(MpjdqnX#}7m8MlPZ;f0etzPgNlwE!?S(Y5Ro z-_jKo-7P$9hk_9rYOxr9WNvm6$N@-S#u)PSuYnYkyqAIU2}nPdn4Qb85!W$&SJ2YJ z;9KbV^nH0U7}(w*cIf-~xt4$bA(z83nM&@8s!Yy%=^r-3n)2gj=z+uJB+J#?WtZ%H za*B>55sTt=*Gb#kE<1pYgG~b~`5-G)ddnze3Sp|TOF?O0kk-5Thq(E!S??D6)*xH%`@<7mlVEP%v8qp!8aQB z1zoXH&;iS&6lggxjpX9G4kP3J{7o^ra4huE%d`o-s-{_7d|>nvFF%Z?0P~8Eq+6Y7 z+H383TmNuo>3fL7_aI!FY}K5u*jX$x9x)K0M~^Wdv8M=lTx^uG*#R!7)_Tz=Qz4$? z>FSTf8B=Pb-?oN;^@oLR-i@o{pajNjrqr32E^7B|D0f1^gktkBE2DMyg_3pHN;Eq+ z`4J7R+t^!~2Lx~4H)QxUUw;(J)1M!%*bkbwP0rW-%rkmG#=U%vvkx>7Z;v(Y2G2Iv z2b_{qo};QBeO2l!7%Zb@_&jly!Bmh1n9J75s-i2C@633XjQ`;VFv$b(_Jv)RmUFEG zdl4@H6236(^pt%?sYUl_Wa=`cGUDmubw#8#^GRt+27|9tb^MtM-M5zd7CXaKY>=!~ zrxS+=?KdW3o$pKR7QSD2R^K{*^=y6(DCW0&X=+8JS)xbOjcH$V>~Y3!S*_k;sY*Ns z@(g^i7gEu8t143dYTw2)%0q~Sh2E8yjCwW+OV-W4DHhOq&zG=QE8=}i}IO9 zQJ+aGlPVLtTSPiitbQa`1Q(Tn`6#?HqOU=cQVC2b9k`5paKopLID9+ePe72M5c`yx*5!j%$r%dbWsDDY{Q;TgG|~8X8V$z4tS<^ zb{q+PnMO{vbw_m zsUn^Wa)8BD;F|z4BmsS(Omz@M_p@?u*I-?jVgH~J7u@lkNyCICq(P!fs0Mso%NI|+ zu}r2Uaqi)}CSlv-WE9KhRn{|6-nhklynDp^p%SR{+Ka&vhd?ZPu-OjiREw$30DA+# z!@_PZf0>mAV+)*l0UCoS-P1$gz6n=>3k_394(>|$$%0i&&GzW; zLMQ-U`M%-{hb`5M!(JALV^EWmS=$M#eJl(&2bok&Os7VXsCq6yE0A8!4F8=8Rwt)N@6N_w~Ack_!{i}xq zn$q{+g`0!D1i=PW-*$z21c5mzwo<;f;v1<3=LPNt=QKd-vQmuetjAGkhujuSJA|)U z%o=gad_#RYZ>hqfs}R_)DIr_ASK$skV|@zDblFdW%LXKi?zO(ZO3Q9Xo8AapTC?51 zO`~Btb9U{~n!jzLm|r!etKI{-M9c0A;$li1CDa7I+SvD={9kTVR&K+`$xvRM%=#mI z_~gy^5E3qW)|M5#*fC~ja=euDnaQ+tWwc^mtW5Lp6xACtkeIS~t+_FmH|m)X$7ggK zv4^8Ts?7UX&f<*znU(XKz+mEV5vYb+Mz-k3 z>hqvjS8DTD9NTI`xq)*qZzBKx%62WqYQ@Gz#TQEQ7D=LS z=HNriSo72GQi(&{H&M8Uh8E7{bHNrN8ip=nQ40vuI4rPw^xns z=k`-yiP_%Y@BhLonn(0Z+l0p7nkKBjLKpq1XA(-z(QUX??}hNNvy`S*HHT^{iLhDa&wE97k#a^-IgCqB@H# z*_Nu@0$Xie8&PX;T}Ty+D;v}Wh&K1q8jk@cYy3X)dJgZ=qF>S4Q%@xCOEh>8kCIO+ z`_w>Qf`AGC`yLyoEYd9pe{60{+}_Aj)Eg!oXu9AgWMFDKG7&;x2et-ZYxqv%cOoR_ z>m}Glb+yPAXDW5fFR@Tby-PA$P)jb}kGz}XnYUN_B2+tO}sr>gBSWQsjj1x1fRo=VV8BBW1)q1%malzzB zy$MyQ1muJW^(h#e(*g{Fpfa}}WY|Y6#Bo2j>x`&KKDz!aP zRQ0JLLgDJ5lj4q14l$>8*cxSj*M-9bqzG8z+2j(q!Eo+T^orl^n#`%u4ub(X{0eAR z*&oJoqd6@48nsb|!-0A=xYi$U3KR%?KqA&UAEd>+!1XC>`vT^Ha={~^C$&p+v6>Fk z-Z2vNc3`X|S2rz~W(Iadeq(7oYfTp{TS|utP@fqRb6S!TKG6sdApkcS1cRZ2HxfR1D<3E>Zw2VpTHD5FOI#Meu3uQjmA+U(`0VEh7p6yH*mENEU z3MBKBFF&^*tg*8A;h(x%iS6p4(x(~Vp@Kvb)vtll5C`ch#0&gBBE5rWzhMC<($#Ml zI=4pY;O*Uf=a1JiT3ny=&wZ77WA}f^daJ0oqIFw0xLXJi+!9iH1>XmLNRXfgxN+3MPy z)1kl#V7l$JQ-;%a{S$0kfK{$)iE_=!C?490L@&}Nhw;b^NyC$$mfX8WH=y;{6Nez&~Bi*m|bDVEe?cR)(*&+o}eiGZ15|yIqBz^A^xwk|A z?r74&F7R~oT?|n!3sj~6_Tn^9cz{>X!a0pJ^U=@-aOvhsR1hM}O%is1DdIo!?|;}B zsJ8GYfiJ+)$lG6YvN^kK>BLJEeI8p|IDv%BOL&eg0t)soF&m7CO>l7-R{oq*o}er- zm4$HIpiTS)T<)1xL zI2uip#rWYTMs=N6e(da=T%Ws^bN zRnc~5-`n5mF1d6%0q$c{GaQdeyf6V7?7EQfioENE|L(gXGVCizOYJO1v*u)8?msBN&+10#cEJbRywXcqcOrx#PKN3qEz3x@4%-4+VzK5)$NMoI|f`0@Z zkn&)56h zhNR#-7>lTaId9r*(D)+aL-%=?{;_Gg0$1Y~5(9XB$?eu6m`K2K3dQTAN6G0+rWV zyv=qqP(k+}hK~+YeWJ2*WFUHGBeyMm6cIkuP^*39iu4B0Ih^n~IbFs^7=1=&45`W{GuPWU}UNA_XXqHH1 zP7bdvh{iv+b@KXKKytWw=5w#_rNo~PicMEG-Sue`s|cn#iqOg{Yhe522KhAaes|_S zI-kmE9`-5zTg9tm$@Q1{odxFA-0jiXRG^ z|7dPe$wK848spzafh>m4kzn*iBc?pi=yXXro15L(Ld6-u2H2PP+YHkD183F0*ICg6 zl*0VYbgV^PL6>lJP=_eqZQx9TAt$Yxq_T7xGu&=*?C;w6rYhbE>o)ly1|2g_bTxmUQ{CqRUdbU zw38inXk|5P!Qo0tkH0DlM)4;84$ZUCsXhry$1y=1_qxCe(A1%^t`&jekslo3{HjH#Lc-u?Za42zW?6?u-qxJ7*TGRiL$yB|7JwIFw%2kky&Bo|p*3Bnh%XXCVh4SVS33sp z8{N*UIbDkP*QsVgf2Q@4RBv^@gtyjf^L<%rO$C*03us<^h?h8~jA(Fe3C?pYIrMUS z>88!3jXv5am3%!X2yNRL(~h?jfb~Dx=;+}&_3h(!M(errV~)zwu@J;j85Ffk4KY1V zj^Y#mPs{;*{C;bM*18$|&dIoAPdbOC3mzjpBn`boJ0Sh^uSWG%kxyGQ`+s_?^z#gZ zf2GoC3xvA!^x5NM_gwF7IATr2HD_+M!uK@T&*)!PcsWr%wekcbYcJ$YCy*Azm;ChJ z;C8dB3Oe=k;V8A-wjU`275V?AS9$5(rFFLB5fLJdf{`rEW}9!Zz-fQ#k#W;rV9wnR z{#DW_anRd>9na?`-9TEaIjH=Si*w-jUM(KIigS&>=lLv|AddFcO51Ra@O!YY7}2SG zPvJo>`TywxXt>f__3`~&*#&&iB#Swf){vJ15O4@CxAe%Fp7*woN*Zl`-F8Rmv5%$p zL0WEhXF6833XobG41K@(Y{i5tNR zO9m@e)6uf1U=bE`+)0k_c_iyib6Wa8iHkOK7`QK#Y#M9^UqXk8GH%(+r>fBhmoaa{ z`5{^^*CS$wdZCXBeiXYMdc3Re`rJZ2fJSr)44a}lYK$`b-&&7^j~JG{``)HEV1BfZ zoA=B-8%+@)eG zYD&d5VWwL(?jD$;>Av;gUz^FG8#Rze=nJ2w*IJ9Jnr2@jw0ShP!yD^97tc&015>}cZ0CrtMC1C z%K^qA{>QE=1J9OO=TjS$y-0R~d70qZ-;eS=KXK+#w}cN#{2F|85UKw?@(!lNAza%k zMhqu9qnIDI{?*B!C*DxDB)^H2<#ECh8rJcapT#%nXN z?K*m&p$|D{J+$J6ACC2ipr(udFE}s8?my@XWa$7u=s~zaSB21fu~&vdGUX$b@zYQ* zbF^KlY9g`nV(LwLFll=y(gos^BQfo(>i{i8&SQtX{F}wi#I@PrOO7Eg>%{d(R_{-L z1uHd+Y7>*a6@$_I;~&KUU-r%i4pG{@C$eJhvz&&+{I17+ErZl#dE)R z{2cW^HgtZYMX!w`9DPAJA#L2xdWAvtF?p>HO1?Ssd$qy?YI=nz{~`TH@DHR8{8`my zzYXt4vpFG1>FvuYMXg??CuiIB+(?yn2Ta<7i(0J0JZ=#)lAN5*J~z~e0s69 z;QbCZopxh6(}ra)5-Myy8Q@jd-rNJu+|}ahS2DtbwKmT0GpnUy)c;X4gvh%Oxq*XM z@tT7M0-zzd;GBGPzHyB7O4XqdM?=js>B5^7*8Hty8qL%x;^QP(I2t{U_8GRO;>c~4 z!etUioXRaVU)51nUPC!}h4VF!krFf=Wq*_861k^-({o#=(ldXMVWFEjbCyk2I<&z+ zOq}c`wP0U(vf!rrWnE6|dKpRmp#GwbE~Z8fUbmAFA9hk+r#31o^O1A;<-&gUQW%`$%zB)uny**#xY}bd{dd0`-Ol76 zGkIr{2MGIfh3rT@>xHY$&fx>hS~8<9N8$e_>bIX{(8^S{!~Qn!r+QzElGfW@3aS(D zu{X-d5C~XuKX+PJmGS#OA_$y^3}!3G5%tXZ;ThLSe=gPzDAi*K;qiXS!(lrfE_Uod zC{asL&MXD`LEb%$*P^jqPE?RsE5`Dwz+0$vpw2OCFP3F6)62;cCNfL&la_5kyg?5c zY!6LCNf6~CS>e7cYgxFuHf$CH&^GR?m>F1VGf&|%xWppXGgH>;AzY(xe^`OqQg>ni zLy1@{`|D4TboAhd2;SKeNd@(2&lk}zPDLy;4OvZ@#S$rMijEUiCYBkj0fq>Jin2zB zIoMY(W1saV@`A&5i!viE6_?2-c2F}Pkbzuzkw98GIP4Mz97>Jfw9o8CV(>a~w6<=7 z>>s2T=UsE~Q^mDTjredGTry6|dozQ;>T|1VeE`1pS-13ZO6Vj@f5$!A|Jl;~xifFd zS;AQcCwCpf*Sg{$(@`B}xr{;2fh9@ZE+v^tMo^4Ml1r)Ui=n?tZCbu0vW+JZ^XyKT zRMdLvUf&?eKlb3Kf;-707J`Y_)8OUVG_RNT08FJ5z*KrEA;_F3_{zP*lk_tz&~k_s ztz>r+m^dG`aP|*UGXpqlyzg!9;Zy5+E<5}){K`$u9>wijZEB;N3%dl|eVOQcITVyT zZE-bfxn^F@o<`^0iCPWB6l0luq{C4`^}~AX$s`0Bakzqch)5?fDt2D(V!by*E^Z%? z0-l?O>e716w&H@9A|T#z!SdzJ(kop~)RaOS4TE5+yKs5WYog5~Q=7N|+!ENU9Jy(w zhAr-L(?~heEc;Z*SHyb~^=%W)`Q4Ai`rbj|HPU`w+Z!T=b5sHYU9UWT^GvV9$RZ&i z41d|I{VSV#sNbizrA3HDOcG!wX|F*I@s{`8Nm;XhJM5YI zr9BOKauK|Yy6Eib>=c2Bh?!me)Kq0YHKE`9@YA@V)w*~KyQBS&UDu^DqZ}91Dxtu7 zoOs7`JhFwoPbQOcDFOe|E=<*6n;?jE3`sbev}?(~2%P%M-K!jD^Hj?%DIW2c*e0%j zWiB=>fy+KS9SVEdcA9_j}h*j_0RighD!L z@3Ys6&|F6qPhJQPj$Pw&smPgKR*vKTAr`;dyPC%bY(Iw#JwifjMOx5ci;7?ld)Mp! zdQ3O{KKVQ!3sb*pRl&*Gw9$eoZ!Ni( zu2czLa=^*QbAQcpMiax#qvhJub3gQmzBQkj*Kk|4wc9v%;%8Rs{4aakm4 zIJrvz9JoX|E82PS2`5q$xWCJECm(*dFAJR-Vmi0qAM~0HBinhRAJ2%k!T2EzWW*RB zU!*{IcxMkkV5*{0#C-@m8;v{C@B?ED9#odCbX?US3+UOv#aR@@_FTUM^CNcsq-e%? zJ`>aLxN)!yAOoAeaH__(1~sc`^Z2aJ08XJa0O*)v$+;fg$-_yaR(ppcor{QQc5OY} z9L8_K66IoJB07`aWl&I_w?}XGX;}VZt>$a3;Xag6a}UfsBC>z|dib;z_xuPV4dR;$szd$mIu62IK^)%RQN={6i zpRohr-}04d|1copoyk3WlNATw467`8TSCYtAu$_7=^E?sR0nv-N<1tXH zNG8P!2a8yRnknx%>%Q*xVn_lg>2487C$e4k$dv(2)NoOJNS_C#03-k&usOAi9A zwZe=N`8fH?xms_>AhG!WDD(ec1|s`ELy!w1HF`1a)^1F`#kX?4Ms1f7*H{Gi__#GG zwcJB2%jl&1njU!CrhA3m8Wz%b5b`tI0gSAEvm-|(#g0T9#1R33H7~1RNKYL)k4UynW#hL;+p=pbtZ^eu(NVSVxxT`=U4U3|z?7y!{YDHV$wK zQ-FGolurhDJDV06H>Vp}kok(TQQ&2HonDWSuU`wK6LJC9RV91nR&fK-E>i*h>K|T!3u^l#6mie#E+0cm|vfrS*2V43kzq z0N_n!q5Mi_-Qy3(Ap&Rc=BG|hDiVgm9ayOVgMj^HKAOn*mSmU$Ufd#GM1~Kw6cX~Ek=QTlT@@Jc z4JU8oUk89>;7cDzWhM}anR1eXl8y@}z08a128d%vStc#sGoyM~ygTSK80+Ie^ac5~ z{DcnqeP%d`;Gq5iLK;& zdMjtSNonp*lI?~<*0?5?wE+|7(Lycy9G#MHI1f7#b^X`Gl-n!|A)F7IL9`mZy$9#f zU94(TdszEVwG=dn7iS5s)LWu0&@E;+%OT9%?haARIX-jGNYa(_C-N-ASn1AF38y$) z{qomvuCV)=iuzX3q5Yq}a8r5zv@rY$3AKY3-X%je5I(yLo?y$JEXUV0mbuO3lKJMX zML=1L%N7xp@0-DkMBO@9CC#PLfz_OCUGWdDIE#Y9z#iU6unbYlTc_jmvLm)AV{{_z zm`!dzr`o%h9l;lMs5>8t5=WKI?>@J~5=g?cHL*fe>1LV*pPWlH{%$(~z$7JG>%XBT zpOV4;r74o=RWb=lp2O7P-L`~*8@&(2_=p3?Wsmuo@}ln{caVo)H`8kF9?K%jd6lQ@ z`N}zb96!;4jy*Ce$mN>Ovey`iD0sY!5I=;|Lx1i*)sCWan{J5_JK-c{X?|6TD;7XK zGFIN3)Y;=Q)V56EETvO4pMC1|M7O)y`jn0cO5xLT;ElLHzYeM|3l!yIIf^t1tV$VF zJ)0KvuRJS|SNI1^@1|#RSvg(qPwuVEh|~b9OpFDCkjTX%6m#v8r@sId3vxGY(U}v6 zj3x)9TXZG9^1Jv`c|ZJlX?1tXAm_psp2_sb%?QNi;yAl@u=N+3WAYl%)c<~M6ihaC zI(Vg||M%v_bKn^3-P%C|3rPU3TyJP@f#oF9HM^z3mK<=ShE?FjTAibpT@(wo~UhoFYH$prOO9&0Dp^#K^a-H29M`v|-D0S#)H5@##bjh_t+N%T1m$kGkiS(;C>{PiEdmwI9? z>2Y;oL6&5@)-5jg^JxHMW`S(45bzZGb$atUdv=M1{r%Wa6$t*{e`Qi6hlDrNiqvnU^N~!d|c}VJ|Siwu%sDa zLAyr{$h%|;l3BxS88}(?iCepC!rFphz~1^@+~+a>JE?Z}4 z_Vg&eBE*ov-${`vzFUPOl-?xJygO6y9FjjUgu~ny>o9Bvy^86|qDGGbo^y$tf=Hvl z0Gn4$JfZ`f-Lr|EK61i#=6oYO!EoDG6zAu-`)6NV{#j?wy>aViRZ#gP;4#=1aoK_R z=-=o4MZ8{Y10O!6`8NQ}5A%v~Rm0?6)+K*cn; z1E>wZZJO0!5QBx{guN374#+n9{R#-vp)Tug!9di_*by*!wE%#f28cS&7Ixvm0U7et5`cd7N;+rQRwLYQ!WZKdJc0B2ojuxbcq(dEg{3?sB;7ba(ax`bV%- zs-OK>mSEN&>cI*%(Km|Oulv7%0#@_m&;}*I?fFm=dAzoDwFz-nZ5H`TF1_r!Rg8Y8 zz}dC-mAEOs=vE<*|H?0TB2nS;ULMw1-h?tu2vcj|UkOd9gZ&SeW~w*4lJ}xNr;Jo6w5?~N8&ly*P7kJqi8RD z1ByU1z2jIDu)sn=M%H=D>1fsGMJ8cVs>C3;3yROg9BQ$DWqGii_>nfgz}%2yg?}{Y z&pOm(^^!iDFJiy!un#+~XNrLf&C-48Os{Q7!p?lLba`G{P%=ZAVC}_?M7`OhcrzAH zZ|FV}&y>uhi<0L>Ju$_A@I&-+ahsceb#-?s4X29A$2L3sg-nZE}LoEpkb` z3m%gc5|d$OU%_+Vc_ULuKHCxH!@<>==8hq2#E=s4Is18UG%j4=0zX7Dg*%facz%_b zPoA@tvCcYX1+gtezcMn3*~d9diGtBaaMfUO$enaE1U;g%LNC}KUn(He-~L__X6Bjz z-@uv2mb8%~V>Nv$JxYOGMp#s7_VclXyykXDl%2nabjDXWe&q+Kk*W~3myXiTk5wSs zI2zcOL1*jTbChTmbsLIH*T4-3kN_&@S!XS^9Gr5*tMGkzE&|yn;V$(T%a7Bfp!9@s zI2gTW-Rf^RBfL6%$Z(Q*zUhUAhQB26^NOdg%ODH2F2flH$0EXUkbTo^wI)r|rmdVH z`~4$j;nfW^KugSFiO;x1U@s6LYa|QCt+|--x$s=Bel50%W0pZ=r_+yjD7Cb&&6g@S zd_Op?>^$Cm?gMOrb~YV1*H!KjLu@n}{jHTn3dEv#bI<>h3ARCbMb}>AGtL<)Js0hCDVnjK_OX?MUR@MbTRbCA2BDXc zlUz(isZaBMvEVI(()=D4Ehtk`0bd4oYR-^zAF$S(yghaZ5Uv?DaPy6XpQ^su;Kx2( zaCe`i41G$s6DZ40Z_&Xl7*F%BBbc84O@x}?_k4ioJ$o6LmOmE5 zfIO9%mQm$o(#_XtkXEH=K9Y+F^M-^YO7i4|z|2=98$T*j4?#bmrybgl`)zijOu=5f z7M&D;gzBTJA`1Qg(ut*{vfd430r%oTitx+B9isSxa7gGTx2{;OKkxA4G6AHq29vI$ z{*;ZC2NvnEFkLLG0v0j`1|=*sR~Jlz_p;D z7^K4mti@C9kyp`aGlMsaN3UOf(7gF6-GIMyOz)xR0hfCiFvrXw1^;h`qcSsLq4oo%!ikJ!WDuA5cR~f)wtJo$P+_{PDk{};- z-R;09>9RPEzC_q={k2OmuHx5Fn9l1MkN$Gmqz>f7)CnKSSs&I+t@PmsouP#HG#&Sf z@}>SvEvW=o7~mL$Inwd;BI#!eF7#DS*0#j$-!Qhb;*e9%B}I*IlZetSsTpLX#g|OS zIBa=-=_eIHyPa?NaeR>_heLd4N=g1P+!&BJw#pY~Q9 zVvn39|GtfnQSo#=HQAbNDHuB8|JrzNgH-xw@tV!dv5+J?p1L3=}* zAo3c_`ie$S+j1)O`gOt{hXgHWMK!5bNQX$PWzURU;%9S~mz|N8N`O1TP#Z^y@N07Z zI^61-k4ga;Li*o(9p8Cq#yc8b|1o#3@O{?X-J0iP&?ZRd2((~#2NhnLLhTT56f;Mr zK~MWnL%2p#%Y2a)1*O^=%RjBo$n`8tV_`x*fFB|cYXoT2D-#>$`*|FqLB@Q-L`f5=d|&8~nDnEjc_A%RtH=4eJ5 z2&qZ!-IgW&6DeONbT)2@x9lHbKkh2$g(jd`TYOr7x1DM7UVf7ZHdHK;=)Qv8^8NKA z^+^XHMm3BRUWP`wl9QKj>`i2NvK6(DGUxX~3C&?P64ITq>O;-Y8HtU@_ zb%s_+I0xypR8y#x?0-jR-`29|RG1SF`E!8k?)&fj7;(PeLwxlYA@=l6IJiOc+yMi- z@)Y6rNltrVX@R@i&y^xw67i6;+~Y;jQbVOux6O(&by%Y~q7@|eoWUkp5oalAGB|b> z@N^X#U^bI=*|4nBx0T*|O6v-0{&oH5x*b*-Hw4%&lPuAJ$ii}DR*};I>&#P1p0%ZD zL_skHdavy}AI3CuN>@+AJHB46k&Un3t{N*3h|LK~UBtegh!e4ZlRC9P=E$&)NbPyg zi!g-4Sy@|U++=gNCO&^@a6BJR(el_<+$})EmBH=Qwd-|H6e$d>gsz*563xGM#xz8A zizcQwEccX>d8)owcY17ZyFpw;t{sBOZyz7VeMM^jm-wUS!<+FQnD3f z(N5;BZS5+B!rZdj8b^^yV*E7o=Xz3DQJm!1AUdgk5#7DfP`}!c|H7)ORy|$7$t*gU z)h4gD@ns3&VF2C_{pQYZ-fHkUtt18fvW4JPOA4Y4>fk1c|A9ap4P|V#D%hj~bnO74 zO3wHpAfwL->V4P0CdxYN6%NQ$Uhq5+0to>)$bwN2>H`rA#YF)(Ce_Y(+JbrEsNp~a zIi_%R@}=L2;PqFd4)^QkWoe0M61l(OE1JF5@TGPK)1NJ-a)ZCvCeE9y6sQtcjpbJG}elA zqxoQsI%}wgQ@(o|{yQPq`3=Sm$&FVmti>H%SmMGE4jyj-Ik*_y7VK3bH@@WO0HW;z zB*7Kv=W&+gMqm$4e%zju))us?VeGUJ+$q{h>(&wBSV3^6YGmJzl- zW~k<(@@%)}H1uhWsxc57kd1^dairi;B$*!?O1Guw?I0VYSNFDMjLQD!YpeRdO$9q; z2|EOp+ANFxmpug3zaiA)hp%Sdo9_eb5#_Xzx_jO_Ch(&;^CvQHmpq- zzjcm46lVFe+AYV2_+IbGpC0-0y-1aP%?}ObhHwIP=m!ahTWns}xZ$EZ1>$qg3EDy& z{txz@-FPUH-{EC74N!6io`jSC#k1m7DLyKxG!XPG+SZp>ObAvs=ScbtGHY2<1|O_f z6Zq9r75*f-tSF1m#ruFY(h>jWh20v;IO`t1Mb@_>w6E~SpB&57Fd|HDY)+>V>Cw{# z6xKSQLc`gbt)IWwyqCkD9q(Kw2!ow6t-8b>{tHte* zqhi&$n*tj0z35NJ^u%XJ!Q3+P3ATKPd&icWu*>6xYu^1>Wei1fXEY~l{SE51hvd2+ z)R7z^Np?qDA0wiZKcSN8eVm%&_x-};)qnl69eqfM$j9S@b?-rLM>zk&vhvdJ8vNWo zCNAyg=0TZ$x6zz+y^MJ4JC&jJT~yY_)i1^Y#$L4q?J zWvjnWe=j$^;f$Fl7qF~qV#{%S$n(Uw{95D6s-{ngqbV#yTjYQD0_5A_dF#er&J`S` z{#Yl@4Qa)`eR>pg*ZVEWXJ^XvZv|CZFiycPUjaErQ{y_1s1b}c>$eI6>q>TH`Gqyh zoaA#CBw;%hb;5H!KUXhrS2FOEb^Tk3+umaaFc8!`ipU?7rk@Y-k zFCXa)DEmziz6MuG+{{8%BPzNX-r3R((Jz{SqkBUsJ@zkqj_WNqpLHg%ltKhvRQ0Q$ zoJR(i(G8Do&pj75MSxT*>{s&cDb!jn#|z9zuUBsE>TuTm-@H#A<2tG5b8R}GU@01X z?y*Nw7GAofnyQk29q_Irr_My48UeF(@?)ItdK0wuA}%xhGuMx7#JCAFxKL@A+L!a#=arJbb+!-=Pz0;p=mI#J zb+hs~ob)>^70AB7@CYNzr*&OXR zhVT>KJWmIpRV?mT-x)EAgby1&e0O_lA%qGC`Wp&23MD$*-YMg(!i;%L01(=KI61NP zAoBn?6c`e|=aO=!oY`~AY5gHrL3h`MTi&qjIcIqSe7;S29ZpEYK7q0I?<$=MmU+aS zpwTImDjzIkWY9Gss=>-jfr6DK38rMES62YlmhYM`R(Qpx%Z}WAz7M@ze?Y@Cm>?|YA{S@w6F6JNKMXRUkN)86z+k0iK(fH7>?7-J<5Oz&C zzst~k6HR)PD`wWi)6}U1?kBRW7|inFMZQOu{AnWVKG?Wky3kI~|MVTab|dx&%KKEoB>5t0o{nvIf!+a9%U^fw#)?e@56P9Pb=>T>3lrs0D(j>IZe;dr z;Fo3-9+)#3_2O^VvtDcMHvYb-zvRzFfrh&UTUQ&Rb>@o`7geQR*o&%rnsOn^tyY9(VTbexvnm| z(wk^i)b_vZ7z;pa-cR}fEA?hbK1Ma)%BtRGBGjYbW&)vm%z4B@S9gxv!BZlWt|8{E zTXx1Lw{rE{SEn57@e=wIhXFUffm`lnVCDGqDPvX(!_qpjOyi{i(OTBO{};2DteA|% z%WIB2SPgue3sBKPei-sZARPSI;#8Ey8yJ_{JiJH`fk+4d1FpgP0049&d~%r{b) z9YNauBf7ngST7$@gK)WSwLR`f)*i-QalrajfcyNp>q&F<(Imo=Tfni83+mZ4!-FZQ zq9ZBLe)X+6f^Rtw?P1$}-?fvjY%tKhGGP6~mF-P1PXsH-UwA;{3kwPC#Ya94M5=8L zsVfw1+27XLecJwJC_a1~H^$II&)u9te*8zWc2gwAS5SnrdBl$#hprLT0p0LGW^38e zXH^jL76IPD9{To$^n}#dCOG~v80{$+6<{E4qwOzsCP|N!lC-Q_g6u?c$o^sdmlTo+ z`KJpt9ZKqb*MmG#rQapMf7T6iese&NaErYKi~EVp%V0Q;8bhsg=Q-#Z$kt8*j#mrP zGms60bwHAQ^U#2fEp>sn%LR?YOl?T7*4kWbmz!BA?oc9mejQ03FE`XJUuFpb{sS7? z=NKkfxFr}2x3T0Epo9IbOR+o`5Hyu;Pu86AQvh_|YOOWF{U+kcR44TPXS2Jrt#~>$ zQM-)stqka=mn#(`1L?nEI7r9eg-Go8WMQ}6fGAZ75Pl&6`*Uz<0EXDaxcN{F`PF8? zEl0BihWLLQ8eE0`6Q0_F%6=4L1k!(b+! zerPRlkd=2QWogo(4oQnGF9mpy-EW~xB90ld1c1`@ZC*SU@t3*DdtF{k4vHa@M5|-A z2eWEvX49v!hfh*~E_j5$3MPpYW>~CG6L@wG;_zy>Fo#@)cvRy@r2Dn!@vu{4;#4QU z1tbwot6%FivdBF(iT#-aDZ5Gk(N3oM2-QZkKiz-x+I@n#Zg5P5syI}R{CVF}tOC@C z3^8NQo>Eb1{w_LiX|YdOvAKBPHal!LTJQWQUYewkqkh4pPpN0XoM zu6Y3XSq%1YA=rza$l^29hK?OjWV)^Wwg*xG?&q&25IR@`pC=t`>65KpC+ZfU8tmNJ zL*XB=a@$9`cG4C|;oz$tmhd00LDyo@M4j^(udP$EDaOiI`^LcZ6Ujpiwkj%Ddj8O}5l zmK1epzCe^F6Wb#eqr^45L@l;>IN*V4b(e@MC`fiRknIxo z!Jwr>$%#p;sffPMvd|ye48KO~-P`;HOHYx_t1`dJ!OO%IE!XtUVi7pCV$OzaiWlj0 zx+V%h*1nga;Fie}>*E)Un(WzR3fiOTu?`-VwL1z9P#d5awi1G){}bh#S(WIdNFTz{ zifHZN9(Jm@L~Q@|jszCG%xkCt;Q?_WnT@Dfi&pTW|Fh73*p1k90+d*BDHGdnH{2hUecCa`( zCJs;S&8%3;Rp-`!fha_OJAh}|PEBrEsk1!9~)**kx5An!xsR*eqbalStp`{?eP z>+XniovSWjSc~c$_2b7xG(4u!O>$^{ZGXY11v&3wGq=ka(=9}^eQ_YOf4mz{bUJ^c zl?mV8u27Q6E6)Jl=y^v`PF-^4#usr+Hs32m|Ei|jN2AV!=z}aFtuDXsCW=iE_kFQZ zKBL%EGcg9%7p*$p;4KUXM4<7)e$e?1SV8J7h_$6$Cl?VCpL@*H*U5TL0;NcXoB9kF zsslzhMNZ|$lN^^)mzqm>{{Vb$l7H3P{u>HR6%tqwwrcUsPbjb~;(&8^FqI<8hDLfS z%ueE^wQx^)33!+c@6m6LkJm4I=%X!q@fSTP((TrLJkNO%qN8Vk75r?_u^#a5sB2}w zseLnUc3qVlcZ;#A|EtAj73-}c4#FR9I*SUl(1tDBl%g@~k$IEUoQH%KUP0A`!zm1ni5ru4XHpFpvm|oIwazG$#ldAWfcmpEj9+2psu; zJ8iyEpC6u3_aYt1Ve%0PlH5Dk0u6)3K=DQ;F9BFQjlTz@UoJ|8}F1Vg66^)4%l=Uc>i5fH=U>(}M*G z-&2lj>gX2wLprt~TE9-A#;VMl#Rq@=O)NEk*1}m>I`xl_L-k{e=RW+i)~m1jo+nK* z35l&fWy)n4*B5#mZ>m2rKiw7#ovdiRu|I{+Lhs-*v~_k05eAEvzdFpxe*^5gziQqx zJ~|yKR7{#h&s|HU=yMEuLP>^cZf?B{+6MRW8kslJJa*hiJpAY9x25JyF5tJ*BU{B(;1tan3qx_|r&eru}8&@K?=vdWTcOa%6gL8h~j8 zX{pnejHcVamq%687iG?v$Y3)X8IilXp1xjdy}lfaa2~PHql#$82{<3R&2qCuS3eK z%gLgY4YO|Z3K_PU{gHMQOyHt8yIff_`Ec33ij6b~cl|+(RBNej#l@BE_ytfzbeUdJ z2wk(G47If0FJ;66fWjkL?0HR8tsuTVV2JB`50*8+l22C-#O{K$u$8I$x3U+Pj{5z< zKkM_<>N+hZK}Vz(;=|H7zxJB8Cc32ux~HpbyQkat0`rk_0T8yph$JMi+Pjx0>@To| zhPb4DTu_feh&-IvdUXt6L9l?J^oBO_q8uJ%tPzQ$tPsub{;vCQFEXXt%2%)`$fN%{ z*dAZvwDY_u#f25mjnA&Hrx+`_Pt`cq+N3a*N&9M{8<28OV;DNrskn6rez&%i5dp~c z6L78qAyu$+TcTEb>^pPtfmI(x9Kg&!y!iP!j(>zFEeQHFWiXm;ie2N}@Qq|q+rw|% z0b2-@e)r44;jLL;>5xZ0tM7ufjme}fkUuJ!vAlUzX>JIu0-;ul7;JRMc1her)8E=d z76k~d<&CP5I)ANsZ8qst0P|Bn%;(Zc0BPKJXAOA0r8N5llyp^)Jo#8Uk)$wM;!W3| z!!&@fr-C>XQvkLy3-c3NPy0Ga9mUA2B5>SBjF%-&2U%=C1-Kc$#Kpnqs~xc_~Z?7Hylg~-_vhT{g}lC2;Grow;RvpGA@}^ z+rRoLcFWnFLUF@Y{V>=T=i0i$*JoH8fX;A}_sfP{lM8x$?XZ0KVarwr_k!`UCRsT@ zLT82-!QuJ>jv)7oG0?5bSvt4R&7@Uw`MpfN361||r;LM;>8Z{d&5N}b5APraXhlm# z{_QgI7p2Jj`$nPG@o_o}IPj2QFa8sU)k15MM;1#oe#F2E5B6zU`^F)b+$!8708jQN z-NelO0~j8>J%lJ7g1=FOPiKFD=*YG*lX6n$HjQo1bn6ixRW7g3q}?HpSQJZT*UgrA zGoVR^obt=L;P#;o1l!jpFNn^&$-tOD!$YI-p;Y?{ZAV7?gx8wvJ?ty{R4ipYr%o^@ zSa1~W9j|UYIy7FYzxB^BSN?}|F|}(4KKqCjsb+)>p!+MZ)%y~l%~GB4OC~0{Nvg8C zXJ|Y1904S#^@_Nvaw_(eFV&JQhRNSEb~l`SVrB|vr6QMFS-kOD%p%hV>o#+v!qk;> z17ukZYyvYyRo-B`s6jXRYmF{yShqX=o~3zxV;?>V05_}MLo6UUm37X54pCV@(NkGa zD*>wE%zCl;n(H~ipKW?9wTx?&q9uWKolh`EH@b{EJ z%V8>aSugyKH){L@@v0b?x`BivCLU@ZdAcL?14@J`m>I-BTg z3|x)Zl@jAO;tQ)R=64{+uqvTT#O}}*cspn&RwFP}rWxvHV1~;-pQUYhE*4-%eE^zr zGUShdU9lLrDD?;Xoxiz78~Q)(2@^iOUKTude7^~fUtox)-WKc302Jr5J} z54d3^mw??uF;_Gc@pc{nEzR#Qb`u3???Qn4F0uC=fYa|=Pu*MZ_#p;AK$2zyVffZN zpbjgQ&1qlJt9b`)6P5t@uW+F3?r4?-jNmSlKxdp$M6c1$wD|fW!<9wniwNog`biA# zvv90{6#Tl|;Cb+`_$HgRRLE?}H-I>;F=CN`Hv0K=cRtU(-3W*LAsZMr#O|Z}%LnrZ zVBY>-ZUEpDc+Xw@#LW+Ao1&YUgbk*2WC6@j)X2cDf+KFEBquhsf#NM0K0=z{5X4hh zaM8zic(=PW<791{JV&K=(m!h@C$K~k!P6O*SF7x2Iz9BjSe02cBN&X(zhj&5n=W#g z?l9`fF76i^%0?)?%F>RitqqeVnAzm8Cyvcwi>IVB1~Hj*wG?-EBw0PtZPb8qNpz`) z5UQn$(_?x0KxV;jtutkyYEhI^r1yELSXRlsAavVM3}@)wJNS2B4YckDp&l;48x;)x zBH#`Pq5+TFJBv)FivZcj8r3P z-JuT(zY)4B?;oq#bU#T@5zN()7fA0BMbN>0*n7UWG=JPusf9gW#nL~e|3#clEFrJ` zvsnVH*4Rk<0i=AS&G=PT;Cd3j=l#? zmTa<{dFGlGyxJmTm}nK_zHX%%2PElfE;Bz~r*isYXY%dp>XJdpZ?;4q$`!C=5U3n@ zqLWcIFg4zlST@c~6TeDcUia7KX>^3eQ@Qm|AT8}SVGb2i~TOh ztf9d7=s7aLWgnavbzir{d{3j6*Gv2nzw>Z`JleF-=U)d-60gsA zFPhzjSzURK)UOTwn24c5wm#FxlVm7Ie%A3c^e-mU9&D!8DmWh~H7``>K|8J4=v+A` zu2rKHT~;?Amm8L_bjnU8yKI(Jm(ONUm+IByNaFbwlu|VCZ+5r5RuF~%AGW?aDysh7 zcV-wILQ15RMkxsag`rbHz@a;(Md|LL1Oy2I5u|HqkZuM=TDqh=rF*EmdEfK9_uO^P z+6(vxX4Yc%{yxtqp3gI{2nq!$2g$R~%gBJ6Hwp7&1O=`e{W2dk=3>xV-UFYW91YG} zAU3D5VZyj|U2SbwSumG3mhOLv>1Yl@5LM#MkYxAMisQIviKe!iHlX*AbW+9Ah_6cS z&4t-_Y?#t*J8Lzpt4MF=TYWrR(w0v1P<1A!yW&HOiA?4f0K`>JND$9>Ux(LKE@5_w z3nz&`mz~prXL^jfaOE+r1`y>GYM^nUV8;2ljR>5V$?O655-~*I6m%T#&liz(Mj$Pe zol|jDGhi?2+`jGXswA?%o~b_Dzu2$b9>*@9CA60sr!p{-H+_&50F!w}_xAPG=U@6l zl~Gu6cMc7w*5+z_EZYvbgv$56oo-w=HE5=Nj0Z9?k1r0FmebWO8ePifi1UiHqf7yr!a@TM$Lgq9v zA9BzdZx?CsDu1}nkK*uGD8hNaXvwZ*2gI_tiTRy|B;^!pdPQbkImm4gF2bGH`CIqgkYH7KQbaSMPq~Toj|(g}=e^xItCIw~PHSN_ zt^ula)=4fa>Z=44fY-ZLH1?U7!^Lf0!X1~T7cYGJRn?KfZ$8<`MlE4}_Yvjxx}*Q+ zwcvktPaqS7m?qEq*)h7{_XwAc-SF9>grKT-oVOA+ZW~yzZPcmBm@^tDvT1y4@J{*Z zFR)LvG@g{;TH=~xXWq$Rs*A(JF|2QSSl?+8I^^4u(Mzs!b*UbGS)w>Al;Tn0E473N z?~PXeh)tRL6wz&GDJtJHSd4rlLI0eHHVDB|2@k=ljfDLO458eNUgKv4US=e)1C08? zKPCHc_0OG}K+a~6wtyKu5!J|&@m0~cod6ZIb)Ca`_;9g{zkHB%FzF7>IvxS`*DrjM35JAaK}}w#@{*O?LpkBSf#+*! zemEdX#h)JtDnK0YQWU5{qUEbaU-DZpuf3rX%j+bWaB|MizgjL2@EyQh-T&Yw*+7z*M@4a6Z|%;T_rO}A%*QJ?d^s0jA+lZ4}^eDCWh5rQ=-GZ9=bSl z`N6Yv$^>> zsoT3MU8~E4pMP;q{r#cfTNIHHv zOz@`N!HOPpHNf^D1F5aJJ@etf%<-~a)m+1npxJGlNJEVG(&zg-gTp~Sb5f{!P5$yk zot);xQ+7Fj6wRtlQoB_Q9{i1Et>gydk#5DNs|J_3XtTZqg)Ou$PBzzg@Sy?g3)Ksv za2GTX;@hcYSCdaeb^N6WsKG4`8rG`SU-d+-m7RYtVq3{==_1O3U>PR}F!+7Md-y({ zW#e3ErRlR~sRtH(A-+ch5BuIcR0uQK8-KL>M*-o}e%R>Us;|zgr1|c;D~5sK@fn@r zX$Rr9m~Z54>P1EP{>Na)a50OD)vn9LVYP0vSNdj05Wn8odV*y-Ep*tr*qn1&0Y#fg z=vt)k4{Br`vWs-St>}~Ay&duRGR-`Fc$7;qMOVxpUD%^n%kBdC-R;bD2I#Q+f9|P- z6P&LQ2Pn;C#SnaqmlSG=b9v^!6`F76kD~J`p*2t)fg3rfPU4`Z+_L*Sd_}E$-+nYj8%m zrkK9>Hw47+*R@QGneicgnA_=`_fS-su#nmx>)-h<<8JUR{!uLQD_pog`qx5iP3?Ag z!$+0UvBOEX9p^?)*G|Qq4jNvPu8d`i%JULJ>= zGc4*KbV3@ZXApbF%q_S6leFS=hw7=_nO#<|9meD;)#nnNva=>5r`w5$V^51^|zveA9^>iJkN0`RDRxizA1n z#7N5q;mP_PFWu*U0Y%kV$pbDg#}kIWw&yv$GaFY+Vox*M=jh-Q6@sF_N}7HV&L0@J z^O-yU;#dog#%p$oZzr^7pAxV-{0w?h<|o_WG;E?Pw#LNvjw0^r@JIjKo}@a}_E;OX z`{)SIev2NBuZEs>Upi(tCBOF*CCi+L$GKQ%VIe^7>4-x^1h4hWw8PD+P3h+k-4Yl< zq*!^{&Ye3o{y+;k=rr_A@Y4lMIn2ke2zA_p8jKH*oJ-T+<@)qD^2EQ|_h(a}m)zsC z=V`TKWxhRHXKe3iqTyj%b7mv_^H)_Cqki1ilBKOw2A|5Q|5nl?p)tPP~@rc^pDhUAs+(jI$xa=O4eX57e+ig@yEqYVG zz5|3njN`kxWm)QT?KOAwmVkA;hjGpz7)g!7I)*2YDGFX(r~&Az5%UA}70ZP*e&0jVD=It+*kR0Falj@h5k zQK50YMTG5UMKGAHQX7|zU{F0Jk4cc8edxvM?(l8ACa}N2Q*Fu{Si16deIVmDuye{& z%}T@=xQMN2fkg!1WSmMqQl~2(Bq`6@*1EPTn93U$m{imy>^A&K61V!A?l>jtNmQ5o zxo*z>g!AcokMka|7d3Zie+d6c1jzr@^M0mwETE2US+A}P&ujTDZ zxT}J!`D{1G7UG&xriG}{ctveZLF%<%-;=G&uA(Wgpmxr=nEl%PLAT@gM`x86*}DKA0)xusM~^t2J195jiB=!>{YnG?Sy(I%2cv%_e+0 z8W|^M?wAM*q}lrJnhsKo0o%;;^TfY| z!u@?44;5*ED2TKUt{JaAq;ACdSXP8U{Gp*wKU@7?-~M}=dcf3CnSH7YZA z&w?)8a?f+0w`e@x0V0C|Wb|Qt)qqX$}W~LorGG%hNu(Dr>dW z3Wc25tU52R`Dh0ZbUWCNq|W9V3YB^hb(_LtgFsc$0RR0W3wDi_r{j5}MLRIG*AUe$AtNevUk$Snf1K@n~r_U2KB6P$(`(zdE>K~jsxt?Yw+B23fN!^q+2teSO3MAV?4-Kv`eIu`b?JVF-?8)Fa)4ufE z#eo?jryph|+zT+(80z2N$|5I)w9gEt>1hppwiAyYrSbHWd)z%1bKW0Ph3cU|bbG5) zHl*x~(tlGW+f-|ycv-K}WYunuQTS^`aBzQ`QtgxoLt+IE#}P^4U&W5#MSmih5kUyiBa{WEEl^%w<`lub1^r$)?S`e%Xf9!L|6#)}2O z?=Gc&(b4co{#*x#?YBs;LNbOtqT4!mJmqU3A?_AJPIt{tcXSmFQ7unawm~f3+X`Yq?i<{#(Rm<^QHg58J1F5b& zrSS-G{SwlIY?yyc@{|mvlo4a*WT$keGqrT3x+yJtu(3oIxee>&;f-3ua!(f&& zFF{uxH`$sJqs*ufxbwRI4JLU75ruNR{S+jut`f7iK3XA6J$hBtem!7bUnS!@5c-w; zAhAxarNy(E0qua-0PEPVX99AU>Fhx+P1o|Ju#De_YdE^v!LbL?Fp%y6W%vXMRzUAyF?QMSv}>EdBKO z3v^>aJ>}Ckw4)UwV(pSN-44cDQp*{#qai}XTasSUNshwRQ74K81UnSn#&kjxVn7|L zODgvnrR}aQHcnag(AV$x0j4M^Hnj`d43!CD(WM8N)v`~wlo4*Ql=#(3{^(O3*`cZo^&;-d~i$ zfISL`BtVVi(==!+_{%C-+cxdKE6rB`jd4^V(x( zFH;bU$hN?9bwDaefEIkqHIM$T9&gvR2PO&ujoCQ!bvtHMhfQlUd>~!v3(J8Ji7TddyKCGy1vD*xs65+==5> z@ND|%dvOZ=q+4nD#WVzSudbrIQ9v?R;%kZ9a-vreZ@Yu%0GSCo#y`boRl6! zrG|?3u=^_Yhu4!J(-@$D1m>Y72?~o;2cz{VmFMVv9PYH5sgYdN3khGvVZR^qn=`Pt zeRh6>WIQeIndRqBLwYvWDg|aGTOouc4q&S`lx#-!J>) zP-xP5Xb?z<$MVn?AiP^>B{k_E$~on?fLV0yI3-^3?WG-tYL1CZwxae0Y{y;dfJWC; zp0Hb`M|5KPDmtXHY+6Nu;`+%17pDeg%!}30Dgiv7ePIc9zc%2+24(!T!!lB)haiku zI@#z>>~Se!lrjLbTAVK7;x@JYki6Sqi;0x75C)>3#}>BDm5*(GGQJ58zlJ7vs_nhn zJYIcPiuonw38D=cNG({zNiwSoRsGAJ@=RxW%!*_~ed{;{#e_#KF-3MLmP_-H+Anr6 zaF78&7>&=bE#+g_X$szNl-h_7W>PVk85~9i=9zH9_R=0a!ef9oy!et@Fg-DuqGN-C zAY>|?3IXDq$K_^^62fUrawWBQzPKxv4p4%Nw)L;|Tu53=M)hh(I!3ORi0pCv*41gU zVY`vZ^{0rdV zgz_IJ3I^!imml_u2Hjdt)-X1!LD$Yl$fc%Tue2L^_m{}N}{npQ*a&bRT2ei%}Vr`dfn(hTtTQU;bkh%gPHxcnf? z`>9|>;8DHy>~G~4BzT6#^}C830|?-);H%dB8YF47U-FpUU%J=_M3n#Isy&tP4tq#~ zB<&AVSzM}XSVW_&-4{ME`NN6zqOgMQAA6_YJe{+5RC2@ zg}6v+R-snwsM(fdr07ruw$&Zw$rOu2V(ulDG;$7kK5O`aJux9-Tx)UL;p~EjBN;Ty z`xF_|Z{EC_3m=KzM;61}GXZc@z2m`wM?@z^t-J)Cmr=YYK@RL(lmhg_vff*Ma|q=| z@aQmC3D`=B0!E^Su)ZHY3Gn4J?_P$k&wq-Xh;x9!TYY}i&a*`DI4ri^0x8IPU`s0% z)c&(eBxs#s^;!4l$KmD=jVV-e0DIja5To5j=TE0=iq>umcwVrnD7*v)E`ROge}qGs zqSO!C&uxM7F?wbAQ0pJim4PMhKAfQ-Y&VSITA+I=O)F`I^YT!p;e$~o)1j?=4F43q z^5;r-Y!bxg*&^ON^pvJ`!wZp&3S8qFrt9dNyfbD(aSl_Fnr={I{1tZEo|C(4{ zX0Z=>mhHlsNc89>EZIsW1Ad%u6lP&F`T9_XUQlgcUuPqW>ytr=Lx~@2Nk%SR-#kZr zUqVW|vo*(IvoS#4YbB{yxHd%<*&1OXI3}B;nspnbU6+r{I4Nb;3%wYd-R21OU9sm?r%c(;1ARwyH6M9^Kc$kak; zjE7sGK>l@)phTH-@pyoA{;*}FxWEf2ymfnb)=$DOO@tdA$u;cHm$2TyWLekE=7V}o zQ*bRKhAN-vg!0bItbG5&YSc4gJ9E$TT8y*QM}I8Aoee8~Gfidn>i-r5k8e4->`Ubv zj4ItQ#`&NJ=wL}QcEd1TSKsg<^GZ6tfEhUbgdRGqXH98miUsTs!U? zp@`1B9&9o|rr2uFY|MP47i$uo9VFV)(;&C(Qb7Vr)RRO1AL~f$*|XJ)e7iw$ziajo z^5frf$^v(g|*-ik$!4ao$;O(SNC&ZE?TvP14nqHS>B}ze;MqtuM#4te<7f1YHb78a}Lx<~8eDQ72P7jS@#Q zTxO`bAm~Ae%hNgO2a_H9-aUF}Y@Q3B*sKK%+@GTdAEI$Jkw`=6NvcSB2rUX;}e54A@A{Riy0`QSc7hmkJUeG=mVujlVql-l!mzcm}P z1HjGTgyie&;?OZx&_nP#PV9rbb>4lll}@pyq@TxSIdhK^9m}ke6?W%ZWPciY>Yhw} zv;0-^yT|I!-@)?V6`~=-v1AXsMJR9Ef0~6-12KiP=8Fhm2I(mjkFVH3D44$_sY_>5 z$QVM#rJ}Q%)t$FhydJ=sL4RB5a zihkM^c2p(6_2#{=T1A+5p1u2B@{kuG+hju<$Q<-9zfn=n41*p!3U7~Mvwni z2TlNVv{dQ4wAKD!u7!WS3;+4PBT8(v_>vZkNWRDP3n3RlhrAD4Z`qSsjlsSKbsr1G z6}DlN2~$mv1_{kOD`>Mhem1gxZo861GfeqYALxg~VcokumIv<8O%;~EH@dIKn-_R@ zS*IrHqe)>usLr@agn5+KJ$jP7(KgCO`-jST6v2xe&YA_pK1i8xHr94jB|4B0P8ryy zMZ%63x=F9W?Y=&^U2(TNQMtWOhH8>W8GCu+PB&>d*2($SU0Zyry&^46EhWMpd-fzb zqx6WW?>_oZ2XJZ1qBvzVF7!k0!E$B7=bVBLRPyOVp0_ zeaj!{L``bk+Uxg`|6aoX%0#t?%9q?gf8?-4U5LE!D9NAam^w)lNVeUt{D5Z48%v}~1k^CP3e3Fd&jezWl6a!(oKoR z6)u&z3wLBjj9Ii7~mQl7MbHIL(Ox{B;V zMQvxjH8qMpX~g9Z<(h{^9ItT1SEOj!gH(L{7Jgg)}#l*m=8x&W*`&s|J0Sab$=_@(=_(}#?nA1 z4G=Eq0|?$m+B813k6^n!H~R1`3HACvUNs27HL3t@NB&FcmO6QCBEVrxoNPhfp*&9{ z6Ry*gV?Gl`6LV>)9aA%OVt%y_o4e?PlPA8vAu0ZP`u(q4jh0vivck;2{XOPfShvFL zGe;Fbf>d$m@O%Q!S=^%GGIA4kjb_@atz)odR`TYS08P4##^2X_mFz^sA7ZZFbqO*X z#qf?e&71wGVWewRm4%E!*>S!Kk=wbu5MU{DBfUHreTt74=S!jKQm;_V06ZNg0H)7= z@2rmuw!Fp2a(8dOw1FvCVfwo+=Y%zf14=`>ytiz3RsR(HHWMp|C|#@MmUU(5<)(*z zY!S02$@v}q+vc?SeEBhcav=61&@o4a4GX`?2s#X{@|oB+=BgfB(2m;rr^}YTBKSBL zb0$h<0Qg6C)YQlSHv3vY;$*R--FFX-*j^1SPXn8FPX%_Im;tR>J9SvXpauKEd=TL9 z2YfYBFz%ls0q1QrDZ(z%%u$=ng#h1nd7LW!z^4uRU>;h(5;ZpnAUXHxF+0q2vxEPf ztN;CHA8ja+1Cu*l3cX}NpNZMo05R)k1QoK@gLv(y)51-m3#%k8%w(f($1gy(S9Fqz z>!t)wY}tRz3X>!Za@^C8obdVgH=SsD4{5->^P~TSypNHST|2K ze-Wec!I8Q1jW-9rURjt(cSgdtG|_SlFZV=V%w&GvTO2!VQESV(;XLz)*4-j^0Mi_Idra);!CTTqf?y!x27tP)TQ+)~Hs0kE{r_d23TxGyAc_;_g1p9~( zP6Q-dlX`G1iTxnQVcRmj&_`{8(&VY@c4wP}De{v4J7W~d#z*VkC<35++R{Utm+x*B z2fthH#0Wd)7hS)I7!%NyJ1pt{d*1HP_xV+(ACYX-ihNR28C9z2X~buml>((Ro*ju6 zvKtI$k67u@vhVu9CF#c2!=^K!2SVQueT2NB!|jO-Im-8djwxdOw# zzl1*ZD>tclb`^}X%E1~SG&A_cPiX)aKGtLH*4j6KJCiPwI5apiYh(5><&W$7eFCF0 zO>${+8%D;_mVTU@7UEy?Uc$m411mAl+#)ICmKnh>5Iigp1lq&<2V2+4;C(J|s%G)N z*obEyHFN7TXn7&Z!WrlB)Ko|ycgSNq4F*`x(t+Kuug=W_8&p2aTKgqj71F zIhHecBh}?seLgC*jYG=VeEFwlZyroszRel)as~EkKeHZTow@_e0#n>J1YwA99o4RqhvV{h|@th~}e zXMabOBrA`P@rQh>n)_b;DaeWbj|#y9hQB%WlGzPuImE~=yCk(pRDEljALD>@iqrm` z_`?s76e5-_=h<{`#@{nTQy9)T$^r4azY_3cnODr(`AF9tkR^D;|7ma{_U2wk(L(VgTsFe_;IW;PbUu}D`pe_L-z zE6&R9Duca%+Zc-W;5jdOM~ye9LwegUJ{I>nPp-W;XL%opR-{_-G=vgmiZR3JL;w8bcsNm=>Uj@@cQcE z@9P7CjSrY&jOwTM88bu65(BX(=ydA&Z%P`riv35F%)bC=*#=m>NFjrX55j563q2QP;qSC-uI-r>ccqJJ zcYXu7k6e*BO*-zUsU~@iEg^KZGmYyxz!wh!3a3HA0|8sbw?lB`o<8(ad+*PHtMiJ< znXrD5!Ux~)gG_SM(_MiZXrqVbQFr_%|?~QnMj?*@zLxv@vieVwjn4|)1 z2ZBx~yXQcxz-;ytu~bWvC&%MSGhLybdHpC9y8wyPn6km6ArHUxWrU2&@0~5n)ufzQ zT=0QnDkz^;%-h&sWws?`BG~>T`#iLUsPb43V5QDHf0Jl|SU~WnmybKG3y~Z@GQ{i?UAt^q=OvEmwyoIAs5TUy+*VmxB@YnenUNfB=u{wJ|M1#-Pse7K9&V2Pj$~QlecBWQ z_73Q;qqs4tW4+A|>15uv4$Efiq4vlLJGTs@?0dLladOTek1L)VZOV_@|v z*&4wKVXyw5~dI?mGgT?#a_E zV^~zg2^G|*Se_Hj1*CrYeN^P+s}q@cx_7CFSZU|O+Cd0b1W(aE+H@0)1>gUg>dyE6 zmPdi_0z2=h&|z>t_AC()z{i`9|FV)Mi)N?>vpn6)8I4q#&}fv#LyhU-D-YehtPfE5 zIo#7=J6zvqY4)ZBlb?r?SwlLzc<*D|GamJcdRk0#2=1I{D5#xIu9&4J0uE-u?E_kp zuUIus2^cJUlhK{PqjM#_?5@&_svPQ#ZSjL&;W^`$CE0%chMy0<S(TF1@8m$vslT$68NKra1e%# zyE>ziO&{y>sbR#oe50T2BaN4&$)8*w04Tt1S3LcTX-oW4V3bAkNaSbcRjumsZkFDL zL(N;}N4NgtTDSaC!}Cv{4UNEvyBBW=w&9MGo6-zmbv_l)*u-GYx7LyE@bmI+fO`NM z`i(l=L$ikKPlc+n<-g3t>LW_QEaaEX3C%jYIH}qg3#}G?e0KK`mX^Znuvci@iC-@M zTY+!gFECL1yD8qHN}HINasSV`jT1=+7Ll{Eg=)TkUiP@|)bx6IiB28=F5xIRi~?SA zpk};M&`&qblGUxf(sjl)=F@F|J@5O&=U1h@v88+>2d<^*V*)cYE+W#JhKaDj}_jira>iuX5N&){4}G?7E33Tf71} z!r9Pa8u(&a#qVgg{OdUlvvpsmC0ya$e@Rd-ohGu)?|YVJb2PJ7+Fi27rTo#5TEt*A zaj?G%l~O};_n`HO%Sz<3t1;p1r1`~c?&d@mK73*KqQh2Eg}|_4m@L+uj_9pqO-aZN zzuW0_XxN1;?05cLJ>96)$aCG2J;2Q@?GJ%}_wLi4ta}^wH>tU>sfaj&YYQJ8HkBbs zenv30Kf1G8#9jUm-Q6J6(9rLmjJeW8d2oZ_qp^i-B_PB)nkpvI>#6oX%($wMhAAil z8_5wpBa#=^A?Lcdw|2`#50S5W^xpU{)a?yKe5*-LZdI7S9=rVglo1gAQY0~_w&;6m3QBAQZuI}WkXdcblfVjAP|q#FVup_vQeEbv?eODiVQAb4x2_txfiyiD z2`AU3lkp^jV}Y~5Qi1G&=)IO=8R%D3jZ4C52%?&7^m#*RS|a9HZ!ZjQD z;f1*~m<3{UMQ(*8{V(D~Uylhk!rV)xn7W$!Uns7O^$!@4u6k7*)yO^TBoQSqboOG- ztvQF<<6{9MPv6#-r%_|bfdDY&F=ofJ<83Jw_|4AS zGLpHuCgeB>N6EJqcxmyYuvP{-9OwUtx$n^RFa>k`J=BhoirmK6ytkPSb75QV1^;GT+wBT`~xK$y>&4rp3rNE;p)Cu-}lDl2$i5ruG%#ekmVq=>$9{IiEeA zZk|DC>=$3keZ?U}$l=f)%YgJHh?$4KalTXC{){d7WLT7?k2K(IVmC$ai`|++S==gv z!rIi~GOyDObfSVfvmYT>xhlZ9T>2b{5TtIeFKzu!%f%=OiCJq1?@jrWKC|BUtO_+D zwU;7rl}*0^SY_0su)P8f%>7ZMk#_Tg`|>H`Ztdi~8}^F}z|}jFUU>*RD_1q$5p|cSk=j*mA91(YP2CAS z&&UET%zF_Wc6SmIObfWHFFgTB#*p+VlHaC6XYD~dzw@p7dbzHSjzu<1B<@oSxdj_0 ze%IG*n$BZ?&PgFU|M}O{>EKb7aCTo;Q(INqV^4bWqTBNykQ=ILMP4yclq{8~jAnXp z+M{G9g)A->hL5hjVQ8EO?vP}-pJ-?~N{REh-c&uBrt|X5l}LV1+~G%DX12Gf$;5x*;@fO2**ZFV077ReJp;xy9<7U%5|SZ$Wgn zxQv&?_oY2CvP~ODJh1f0h7?X0G%l;3!=4tSa#eQa&tCpF7qWw}T)gMHq!1a6ACsGh zZ?;zuvw1&DP!m_r7=@fn#DQIIA8u)O#)3N;G8Fbd(oUlkI_St`p1c1}XE6`-(J6nVx%|km>A3O47quAN2kfI)7jf zX?eRhbtmZj{a%MS37W?lA~y+T=tB4ETb?sCkA!e%3&a#rr`uNZZnx>ke0KPgWfL?;k;KXBaaf9k`^X*woja7S>?=- z<&Bo6(@EVfJV84d(gdta6P1Kuf)TKU8f;1b8sz7AVD3 z?F_6I$@BB;=p!%x@$^639eCwmc!3n+I>WH}E2FNi@bJG0&r;ZJCs9`vgP z@~M2Mjg;uVp}mw9o^6upNSOZYxbcxW=Yzt*z|BYvNv0-^Q92gFUfDVP;8*^F+KW61 zO|A4#72~!f5PI%uoX@7Gm3kN}67R-WPzFA-u9z^xcPEuL$|s410vl^HuniUm`mgSz z!u?KsPc#C5>#4IMd>*QQId0hzmZ#&KvRXOBF%Ha!%p*4riitOc_F;WP(^|r+n7FRu z%j5Z}qiM@SGa5*%_~uX$o_P;z&)%w4A`W?opYzApz^K~=<9fnvQqYJ2^ukhpNiZ*9 zMKni+;LJQFym~vQbZmRMD4y^h`jIR0-mTYk{|UcJclN7|!e$=fw6(DOig?-oz zNXCiP00V5E#;<$H@oY#KNCFKdjs_%PRQHPm`xr$q{dd=05?#iUC+n^h5q$&@DtibB z#I2~ayqx6;smuZ9EV+;mYZFdV>Ls4I(Uhg)&jw(Z(b*R_o?dY$=iE+yN`UXFDNmQ) zonRntX1d#XLN?#_pZU}4`@p!(>^r>>-fa0d@nB^rlG;h&=CL{29UpKB`YvLGeK#Ix zha2YU`6tD3k~2Id?(vfMA%KGiG9yV>g%Y9kDgb%NX3pCod*W(LKs^zKylyxDsH!vg zlBlTT>TIKX4yRmkHh|>}&pz{XU8F7-`^=Hfv#X|3xu=H16}xdF#T?Iz~_n%aT?}@w)`W{k_h9 zv4wB^t=gmE<|&a6K2(mHT;U+jnTkSxzV%4+nzH5b*YkrE_q<)l!qL$(bzDXDmS@*^3)TcJ z>KZ7%4Prt3r@|c;tUmkM>idC3aV6TS33JSLu6jQ=-xCD z>t~wBS<=9jyod9}*mG}Q?03quP{QqtlyFv;NyTSYe;plcti-c}gJ_=yyu?xVap=@S zfGa0{(=^l-V`MZ?G-XSf8l6Tn>un5cdNW~#!XqK28ZD~FphpN3}zt?yjxGxgdV8dd=eSTMRP zrzE1$^B9Nc(fXa=B;zr7x{GYAEX+G;QM2z~N(#`R#cMTF$;UOy??;}qmN)MMs)KYo zP!`4KlzhUk&kwbBlE|{Bu79b-)hNH+svhvmU+@Wmn5#3&%Vbt#!lyeQlCH^2wuS{M&Gf>$mH7 zQ%aRq?Ko^dBW_V72JlyH00;HkTZqOproQdvV?2Z9dRTP-i0|S!1nE9n-A|t zzV}<9>XM&uCksmHjrCUTym^0zaRv>_ejn%<@_?*U9%`4xZSnVXmFVb=w<`U+}#lJ-I z(~vkV+XK=7;@>e=PGT^Ncin0z5LA%SDqwYleu+rXFXXaQtJ~x>qbliQ%krwdthR?e zT8KKOF6WD)yo_wK6K8H@LF;Cj)zx$DvT8Fks~X+h)^DiyV$`vo;@RZHzXOf`|M$IO z*rLL8=-COLT+^AvPBnZlGgl#SQI{Cz@vPN(@pavMmLJ%g(oldeUxr7ld5`jN!^AKMUoLRMqa%)rNW_=+E5A(=wex6! zM!s3sXI?wXf8137FNi++*I#9vn)Y=)9-JJC%Pl+i0k4x72k2yDnj3h!KbtGc>9C{H zVHrdli;+{#;z35j>0k0N6o1&Xn$#DlR{UJN0qntZo?uhyz2^JJ3))N3n-t?{q4*B_ zImU5)c5)=E{9WEk@V)_FGAQG zQdE!>h2=hLe=KOoOwP}>Qtf%hyr0iWfF^!@TpYzc^lcRyjrTr7LAho1n^`m-6~)qJLq6>T4Fi5Gg`nv8-gGw;<|~uW13c34pRG;_2B~0! zcVDV}5RMc+f=cBGQEW;=2?ysN6{0#O*J@E;i5diAk&5+2NgdNOmYerjjO;~IJ?@&t zJU3u}Fx(}0_I1Tu6qt#$hxm+wWomCoa)86YIsM5x*jRQaVx!GF=0`n?8?ETJvz?U1 z`?dBXGsFIdCh0yc=QRx0M(CU9)rX^!@7>6Ks?z>OP?QJ=pWo9{iWN` zY|82AqC{Ez)-UNrit5Cxcov=+Ac{omx@~TbCN5X`o^_*0sUH0uqiaHYZGyE+Y{2>& zt??V70&ER?7-;{Et^9E&H0HQ`8b`NQgXmFQsf0T=qEwF>v;s! zWI%Wx@E#GBNj8MKc38}a8r}pPkX0KImFn@w^Itv-d{KPgzbvtQC1*>kPY^q%P>Kf_ zaz*y++ts+@A{0J9s~c5Fm;0EgG9-mKa0M|V1b|XU-;0&fkf?5wzghJpC>9qdt zfI0;k3kED;+BjevU>Ju1Dpc68mD#L*?m2>hPSi6&ml#>K9_uRrX^8hg;I}f$vW)K% zEDY=bOnT@{0To2C=a#cN8kAI}N( z(ex?QEB;|~s`l1IVvY;fk^{cHdB|%Qp=05nFme1CsP-w}zD!`qeSZ3Mk7OPaZ()`j zQ6m&W``%MmIP)@9WcQqZvvuN~#?l-=c=ijAc16etwkE}$sz)j-vNl3jy~cJ7g=fI7 z76s$j-WfX3yt!7AOX#B^^^fk`MG_xP0$vIh<3~y-S1J^tz@derjfgCd%O3_Zm`qH> z#J9?w1UI)KgG<09b^BhIuuYK*$ekI=z@m`)(blkG{b+jGGaI-CmDipaNhQ!Qqyu5j zn|vuNdmKObaD%EeZ{9?v+kM&B`na_`>}CMA;F&Y)(vg5>&Y^_gFpOc8vBA=QFWZ3^ z2X!#}42=GIytg1sIwmAKWe_xdAId%-WMItOp2+F;#-Rz7%hz!#2o^PVcTMLNc@MOx zc^!gE-x!|E)R9_?-qaDOif94ST^1(})g~BH4d|?`LL{qY5ju`~@7@&QlUx?70w2$W z0blLz0R^XJaX*Q2gkV3-?eHr8mH>#*N2HBp;1kcHU|^j<3VaUKhJ}pt_1glythe)S zvKT)G;Qwbax-moU>I3&NzW9=n&?Fb{zzSM5qxGX>!Erym^>oB0GQiHD0&P&+JM({t zdkdf_-}Y^ol2B5VkXR5D5Ctje1*8QD=}zhHTtGTk6r>xarCUn68GCV)I#|!(CIFQ610No0*$EdCgc5J)NDjNhQKnB8kF7Ujz)#J7Z^OGXmlv9+Od{} zH?!z4;pea}oVruu-Sv{Shqe{2Nbr&(1|V7=2kw+V8}kbm*o>D<-BK9vfZ=blJtjO4 zJP+ohoVD$;Ytj(v$rMu{)EVLT6WD4`7wI}`uEl4<3~Je@aZk^bO2u$4G4uCN=?3oe zv&(+MP^_~1v2@3VLbv1%Uue$1W4WJZ*CI}31&z-GOw#K zxfl>>Lv=RjZr`1x=(zW1b(*K8fK#bg945R0Nc;4n9KkS>g_}yy&(yYD@^zdRv|?E0 zuqCSLd_l*lb+E5J1!WR%!$z22=TG%~FCLxT&DMicmK9CjK?l?pE|bgMx%=mrVUa|> z)E_-69ctmIEWT75aeEFZ)$2eXb7N` zcEM=AjiM$N+vr`J^6Y0s3fPxLmT=Hh9-dmP=T3JxuczmP*B_YWTO|r-_ z1cohm$ViDl|@smu1Kilnb#WHSX?T3ZFT9O@w`;d z)32{kHV{KN@_a%0C0cYnP_tXwyAjUt`GJyy!r@Z{ai$>h(AC$b1^DG9j?yTLMSC6+ z+#4~Is6xq4F5kDszfnkp_n9hFWJ;J_t?gui@F<_EHnXe2oL@KNX$fm0;b+VP)=zq5P zW1Y4~eE<==d^-txAas6P<$gU)JsqG3qg_c7;A*^7T=BwgJf;>*taE`eDz)~eb@|qzH0-ZumJ$r`grl3`2VK+n8GQk91dloc8y>&6-<855u(pDi-V?zB zZdC+;BR5@EIe!XeKPGT^FHak#4X7Gi>83YgPXH4%1-~a~zBaNw`V$`g{n@?+{aY#r zz~Wo5Lgqj*?Y;{^PAXOJzt1qMc2Zs~%H0{TH;`epUUye@Dei{4Grbn+8~~L)yxWI- zOG9j6Ja6OD>7w?g3ghge!hOOpCT6SLTUtBBsCPO-dlf`WMZE#C-R(}t>iviJ z>I>-Xu7Osfmch1}UX~jqUz?s_r8jwA+U9W6n*F^VmWObYkY?5J2Q0#l8!F&TZ}rRE ztu~M`WTAN=hCSg381?*K7+L=r!gLYhHvoyuS1>QFck9G)Tp^pi6$2?V_8Q_N8UE3kMbY7%1C`1ud!10^I-mjw5!@8KBg4r)~ zzSb)DAJBE&PAup}y@%dXv9BVlm;^PI)^kT25cav5VYKx+C2pCN-6{C=Ww)}|euC*1 z;`^9hl_!RHv$t}+u}J(53?&K%f41FO?!Dh7Js!T2bvw|(lWO+sX07Kn>a(d*D1g680aG>WhRhF} zLjjieNC**~a_k4aYMYehhPNnRQ53NFEi^KC8q}NadO!0uAhUa@lo-QV&~%CK;lj87 z^1K?obK}%MXWh33(>5rmHo_g?j3_H2MxzYx+P&LZO1P+ZtD*w?w7&(Hq9@lpOw}p4 z#nb;a%QR(|VcB73tA_SpiODEreEi?V|^$~Qh6m= zv@1ITxMZd-c%PQUd1;I&6+jz58twe3dBVlCb^EUUUJLr!0o2F*^uRFyIZTWy_C>UE zM484CQ{E7g2k6;gObpNnXXwUV1U}KP1z;z*ji&lk^$3B|KAlo4n@x zMCSS3>%i0|`A(9#?4u-6rsY1t+x1~WIQ&wlO<5g6l;EBpPv4zQK1(yPMB(R}uo`K- z&H0k>Xu;<@YVzzYBG7botjTMyIaM{WKvw*#Fb7h`4OQG0G7bjZbfDi<*QM{Og#k6` zOYAhSo;0DteDisFu&%4%*5>Z|@U3M12J8y07oHI^DD;zbfwnR+MX#~3G19S6I1E3) zFH567d7b;s=nG@q2T!^_UFkay=(GVMW^3cDtPm@rZ@ToJA3dLn?NI203U}U@=?pf( z>1x}_l!}DTEeuaWQod0r0%Sf$bN0?X_X&=Rl?M);Ci46cQOIz_!oziT$`TyEsXgy2 z<^uay-rm>3wZ;CE$$Z;ceJ9LoX1&wyPEr`M{-S{b#3Z z6Zel#qqr6m`Sf+J&zz@s1EZB+VZ?jL43Cpb`4SgLAX=t3X6InG!LwzncQBqg2=ndX z>Rsd|DpzSb=AT21f5c~v`Vy13^J6R5mzb|+43K*$JnF4Go|}|x(3DT@ zg|kLwepuNo%hen8bZuP^-q^dFO2xNuhDs>^#mfB`SKdP2mzeM{5a8!?;|gn6EowZO zkVBEJ@gbmyEnK>P2`)EEyZ3ITP+%kf>rtV?CQkR{o?ipmqDg|U(%W$q0Ea_d>sJB z$}AWswo)NU(m4W#UVzroi39cI(+Rvzf-7lt==u>Q+NhSRXIy*3tE{Zi$+g+EL0N%G z?&8$fSXa|#DV_-YCPBwlW;x&%hew5_s;pPmJR0yVd|5!*fOAFC`s z(=MroR#qMT=yw*p>N;O^b#emI<=a0W6t;Y$)hqt-t<>E3|1Zx#>qS4HwZZTK-SZ`; z3NRfEp;M+rwDN$RS{MRCplSp$bOehY7(M=28P9q}NkHG1mQct1)k1p}pnUi>!T47{ zeVt36RSmvS9N59IoRTER?%7g!R*T#px%&&8%|$M z-M@3t9u$jR+Kw@V*HeD#mS{gpus@KJz!?ObCHPLAxJl_03tfrp0ra^@g)# zjsS>U zK3ECT5fr}YQ=>W2tcFJQX;&pa&v?e_I$7s&t9Fl+(Uu<>S+Lole#t~{M6^O=w=iHG zdA;20F*S|EIQxX!qk!}RElN09STYt0N&ph|Xz=9yObomE-B*bK)0OD-^$WIZ8qiFD z&~6IR=?h=>AxXj>_HeKvi>T1Jkeygnlb?XRgv-+dMe0+2-;g(t9DNZ`^l4T(T^&h=^>Ux{ zg+OPqF5lZ*Jv2kufY1#DPz+0+M8QlwKCiI#UH4p3*zv~X|CU)FyDjhb}5(r~=zRPXN^5avxosJ06N;f{-o zo9*LmP5IH}q*JIdy7!DdB;>gDc`)W9yJ;`;p}F?7n-(GIF37g?E@*{%7Pv=PWKySD zOxZ3DAo6JW4H89y{7%){E+cjP?dPwFuSaeVCE+GGhHf$H6#_C?CxV1qY-(t@n1eru z(kWsT1U{CpF+E9*z4a7Kc)lGDo+F*4_ceaLM^7YjP(n?)$(j;kvteh2U>++PLey4I6InyFeZ>4K+%lGqxc|gA3^tGwEaa zbRPH6?mD9QxrqW=0OB$#<%x^#5oZC0Iw5Oz177k9i}Z>OI*usBlW_N)iAb46jp(Tj*M!@l!D55R=0qY7*KODt6U976PfU4^pm+btX6~^zc z=G|^&c0!s?T<2)uATFdN>p>P_VRrBEzU@rMBc7xk+=+fy z6SYGJQ&q&-69rOZGwUQ zrD@*IyjKL|U*l+@#RG={fr0&jCA7aeD#T_!Kg+iYfcdF^HvQ~=O9uoL*iy&c1-S4v z$>tn#|L~N*yd~_Y8Qz++4#;W0#rksU9^~*gq5*|;D%!0NVBCdtw!RPr2D1tU0N{SH z)Zra@;SC12;s;ECn{TIo8KH)Rj$UHV>FUQ`gd>HE0y@ zO|Fo1C7(ry<@>jM#+L@%XzK#5lqoGO1513c1(8f@cWScUhfoKAirZUmQ;Ba~;+<{* zdW$>X49_6OItHq7ny&Q7L@WZTS^0`vdF+4||E%6Fan3CFm?$Wu6FZgl_CC!n|4i`f zDyYZ0@7H^aUC!t5ojr7eVA5eyQPlNc_@@|3D&^>-e=ZyAZ%v_v!1Bes5TIw7!!Uu{ zd&8)m_xx$0z<4Wg?qGw*FFz`@phC#oW*mw2aKCxyy_VBX&lGm{L$wru2KXxWvFP#x@t4y8LHD}`8@&f`%ld8n zx?Ls9gz}Xvdg)TN5MU#oQmgaYQd<8gQMi3f$&+w+pNa0M(PVLvV{{UXZS1{zf!N&^ z@Iv?wq=A=#_N3C`avqcDCvEUJ`DE;k!ar~a-3n(!dpN1mbj1NdHW0OWQdWJt;!RD2 zlY=_Th_T>SnYAD1V~mQYYWT-3$0b+2`{Q~0C#g@0z>W~Ft-JHaNom{KNnG*$~K*0GY|QI#)ul09}-Vy`7aHx+KjiwE#FkoNB~#@n?-^i{?sK z7Io=KpCffCe3k@o7!gFiF(;*zZ(=g!p80$4QdBR%3*&Z5Asv`M<9#L~8-MyHYhop% zblLI4M9G(71n*+4-THE|GN{}JveMp*Xc6|*;;sxoba`136VfqD>wc0P8L=c}k zN5AM}_9r8&{HL2WdWEc^jDROWKau@edu;`>)-Zk5vR3PPx|O8T5Qurpo=@)~>85JB>65q*?yZPU z^k0w;vT5EjgHr>1Fs-d_ya}ac>9f zowph^E|J5K$~7L(G1@9>K0-@^ca*&k3CKU0 zQfOoH4|SGaJk6Ol)nP=p*V@k&6%g9a0@0{YpV1Ip0tEe>e5(ETM*Qy=1mZ#;=J}tn zUA?nFccA&CxTUPK@Fp4ox}7CscaJXvpOCM%TqABCbq;e~hDwW0TR?Dy3%n70%$$zf=NRnaenX4c@DQa#THcML!R(+|Zx z#~-^r{<`*J`;HAkb7=A}Y|v++`?jpbZ+W=qlkfg=={GK3c=itx#;kx(<9a1(@_ry` zB>pc8`Ng050?hDv_b>P=te;p{v5cPnsZ7+SL2%)C_ORh#?s|%!;CWHL;}2F5F<~px z`z+$6ZH}3bC9`-vKExY(J}p&iBZ*;@$drIKB!%GNsvCx@)BL1^!!jowxK@YBpry(2 zj2JBi5(KDsIF9Qf6jw7RJ5wCbTVrfZuJ(?sCN%dvdNrFaUrW3HKw3ktimhR+xZCBb z>eXt4`wQEH-?#R><0IME%T0>yws5e5##LWmuRYoEu#!Ww;TcZmq$=PbGz)!MUQ{*5 zOX)TH`B~5)9)l*X^+)t-vDVPbC_ZkhBakN-Qr5-l2L@v4Icf4f2>FQ7Zj)bsv}E@T zy>-p;ia{a%h3P~v68w>PpjPl=Pb5igJ<)TRy2fS&tq@6K3BgI_Vviv`ni2;=nLP*xv<0Z`(yI@M|sURl>xq zSQ2;Y5BZ}*tI#0g9H__h!rFneeoqBS4pidj|N8P%eLSSNDPdT2{yt>40WoCv&>Aib z+{$^F*Dje`Y#IfDc#UYD*YsJOk(ajWah(4l?71gAG4AOvW<{3%;XOIyvux|L~UqBpmhwR^)LtveD>XYU)o5& zfIuVJYI5BsJ z2p(`JGqxLj#)G_St*6(42;W0d@bGmk(yluLDK3Ae4bp5C%h=*%3l|qh_RJwEHDaO^_k}Ku| z9?l%#jgBK$pi+q7S(`AexnmgcBMkj;(gK)WW(LK6TZ4 zE{HsmG+qKvSQm?2Ia$O-91rK$W{G!HnHLe$YSa?r2h3PVA`9ewQP1`J(AwSXi_QDZ z)L?A3kici>%geO*-&0q`1=;Qe3kJA_(Fq-H&B8b}?|mDNx`jm*A^PMCjbXkw{y-x& z>O`)LAyjUQr{62grL6@sK5;4hy^JHA$SPKgcZ3LJwUXn7$adi)+xSvqS!9(O1=YzuKKrXs1|{h>W$HC#UFM7zLciyC2B_3RO6SGusA!@|j6wOjND2luB8CC{(g7m<~E zF}5!hXS`2zGq&>6=f#baST=&tLAviCXusojfFa?iOyhUm6$Se0H(tVV&rh zB?uX`8aP+;eA<+@>MhFUD0D}Lg!{*}txYV9@{8o)e7~oZq$T&wu8sn`Yr~fHsx7(K z_Cl~uPWz$|sxwz|gJ5>>w+o*=0!I^X^*sZR;&BE_MAn_wj_We(h8O(}3u)&4uPfY_ zke8gGLFAFe_wTok5?S>l#ZtDMS>0c%qM50-QrT~w;a zeRv)G=rZ`lCF$8%zf7^Fw*-7DE0tO#*i5+`(+T$ZAlpcGCtm3zR9}9ZQ^;{3u0sjp z)Ymf5Bp7BX#QOQu= z3rEM1@SxQ}<7dfqe()sHkD7wo?`3e8n&-&dq+WRF=Zp3GT1a>4lN~@TO3Hy2!7Oy1 zj2B(B8UcG!e4(UwnC;lu!U@mTrqT6ySbii-nWbhjlx=h>O z*p@GQUvR2US6Humy^6c14p?19!uMVKHL^2ee=1pHA$;(f+@l!T^!@CT8{hi{Y^dKP ze_IF1bF(}OAk^FXLdf+7EB>prOwlGky}ZFO58~&3_`<%JXxDDnbBObq>wrO_r2DE` z)+fLhj}0y%{#q5h23W#t%zru6e|@Mx@r!!HefPS4oR(-X0#%WPiH4CE=j-Y%)YAi2|D3{tU@9fg-f50Po zJJj3DJ>f#Au*3)?_&v9rnS~FDW5y=bxP8FLV(;bz<>?>noI*O@gIR*KR!qNM*e6O` z1Q+iX3t473K55d;Ut|PZdX*|&@$~Z^haHJwmi1e|5Y6+vjv^9H*GN=(l(bSJdVcZIaH2{0-A= zGF|Umx$SDAw@(Ptzfkj!PZFcI5C~dctT6MBuUP6?wvUsm=O8x>e4%G(B{>&m;rZWe z(W(U6TH-EXOaz_?=BC9S`BQyk)`ns)^84I!>5BSAc-yln+1D!p-EH=Wsipdf=K1i}HhZA^2CdY9R zIO3cmx`ZMF@ykD(M2?2ycTH2WfG@9(LRY>%1d1oTovT@XF3yQb|Mxi^~?-x@_ zMTY2>C&`VI&Nid!(7`=ff=;hV9@#qhzKv=d_Nzg0^fUZ=r%NJEUzRl@#cG5{Q76Nc zKu^pOnZdl8ZH~^WfE*$63?LPT>|_|pJxx{C>+7b5idoM2U7QW+i>7j7@=dH)2FuyU zfT$d;%z4<%THf6vCVlp>q8(%NcSe)j+wtIU`^*Fn!Q)}p_h0WZ*t@~HJ z`*$CPCNTJ3&UJlwB=a(kMJGt?lMj>tk0IAzjU$Ao-vTkZdi!2S!B+?*S&6@x&r4zg z#*BXgFB4%HPA2kf*DvC&0^G8FywYfsegZzlVHcFlobnv;UYww1=(S~nnT+6fXHp-lVD?;h?5O`sK7qpu=kU93e=5{!x6(XMH(3c(sQcg zIOA;E-rpkurDT~VpQZtt)Aav-V(^dr`QO=zzu#!4^();vSZvP#?iUW0_^{V$YU7oQ zl*~=b$?&&80EstagjytIdf!jbYF{RNt@QQDHZw_W?vh$6ka_F8=N|73h6#)v<=}x9 z*~7!r032*}z$K?pW6z+rOT(g!-Zj$+>50>P zaw;qxp6WH!@6?F_X&oAc6GAz9NVVuI86=)(&h$h=x zXzE3Bpu5LvP2XVp1*|9Tg831KmIf1bs*Dtd`g3Oyop+TiK?HDZd@5G_3|e$Puj4mw z8GI(fBA;bCE@WX6qIFWggTjZTQU}ry)!M0@ctHU_<@4#c&EGzB!yXKij|6TpzOCWQ z|GPN+*F5ImdamI5mGn@^;f6jnZ3_+}9-E*W>o3qvQ>=uKbr+zbUt;8zOO}{MJ$rE& zI{FO)@?6Z_O%+_xA4r`D%cwDjEas-BCFdWQ4rDd(^ke8bB~#G8s5_48i%s)RQCthj zm#vrpBjbDZkmRwV$Xbeb4e$~zCR%&P5SDbey4>UCA@N~*J8CXteS+vFmfYxudl+zm z^^jI=I<^XyRmtKD#0R01@ZO8J`pm<%2%0Y4bImO;*rsS(2(>{J0Ri8NX$)BI$h(~( z_0Umws+edEo%E^tbA#cB-Y+sc4AF3YCp{QpIe%}up(yNMXWC4XwI~6)8ARNVJGSt@ z&20XM+$jAOwo^b|GyppXf7Pj{CW#&hk+=5BZOCCmKRK|t6809bd>|+V#W(1u6xz<~ zj-&FJVj^)F;fV82HgP^%-_KFi1KVpx>#=q9`=__+UJ_)hT{+3F^*{xA?@KyLY>yt5 zbl|59G$%?TS4dS7e)<1#giy$_#D&&)ZYy(4CRnU_F4%6yG%xZkaAd@ z95s_Pzx;zgS>df`az_{2pY1|eQwID6`H)7%l2s9Ni&^+gg+%Q`yu5UoZe>PeyxFaB zM?aZ89rS~{Qlq`$HBGze$=fGkgTB+#)6(`8@xn~MjrvAFHSzCEa{P}>@}xMw9seei z44Ux!+YkH?X8WK2Dg8ChjZq)Td4g)>D6o!2EmMF>yj}jFj6puUa_1G3U2Qw}ZbebG$ z*C>bPpp@P4$bq&-_)t#f)g9O&O>%j6Ce3SnLMp!u(dTRX0@!g(_4MwgDjc^Ou(|YT zQU|`M!|tRXmSEn7!#>*`n7+ohf_2K5jtZs_@ncX}g+@;^ryZ8(0GW9|`6COm3;^>{ zhFCeVZpSDgd8>C{g14u(h|;cXc!-$PHy{0Wnye3P|30?DDu38=yf{ys0Dyd+g-y2n zH*DFDeUp`|sA{b2W7|u3HHJVR2q*{@CwfazpP;83pjX0S3X-g#)jNx#&wxwH_%DoG zDTT&=a&%HhQ(3MUM}hn0@fS1cat1QWOLDw=phXy-0f0v7|Mvu#Y=CS;f zwl^&4r5&Ux10QYnG*SX2-b zCK*f!m8{zIX>L5^=n1a%8jf9oZhi?xrp5HC(O zd}Oo?2nARrPb=7(qF4JTU1S9`&1#YJNJV=mBMxNm#5%R{4aQu(NKBy!v8rniz8qiT zNCyhWH~()6M*0`YJOb~MiP8p_vUJhLCXaH1bS=k+dsz|#kOw02uLa@QaEtBtOp8K@ zE)YNU_7H8~+blr|WEV-w_9CaPuLvYSu@uObgUOPE=TWw$?{S<+pJVCgcy2shzZYJs zzD`{x$vR9$7D^|*Ho|2=Kh+b4|5;ra6^&HN?{i$UD(UjwcOAKc?Zb`2O!A!l+3|Yt zLm;OJ7TiwAk{rq_MfVg~{y@zSzaQ+4W3QfLzaoj7D4Gq~wwLsZ5t1uMgtbEw^$top zq2Af1UYO%!W3mx?0SVu)WSlm8ON!GDBt&|bkKxedTeij1@UH@xJ|pV-A0 z$xPrxTMIxfHWHNhTKFy65vyf~N@R(9kD(3TslRVWTW{AvrdCsZF*}Z6{oYHu> z#47E$uD#whs1Y*gPXP5mH3OVK5zu5K@ z#u*#G)4(k|d{ld+*RDm`3FiVsoUkGXfiTE=Or&YVsx>EL+Jfmr-9R|CUZ}a`Pj!&+ zF6MwDmdH3a9^JRo<^j|JDDGb1bZN_ZJ>C{K+=M+Od8?Z069_j`EoWDgT}9-_2`8Im);x_j3dVy7 zNG1B@eZjfD>-P4MV8|kygI$0(3lqPD$Z&}Fa9qPZTuU#ab_U7Yy7u?(%y8<}eM%+r zlvo6AGGk7&s*GB7hpbMk;Yy?)Z=dN)4JNvcSSnxD#QumAyeQctO7p9%to*oW#^(1o zhH8b5#+d}%|6~yb1nBJ_@U}Shv{x-HPGYh6 zC(7O$M@kLmdX1guR3!%sit&y@P!GpLsKA`H@8w(#i!S`?`+5GPQ4mpqP z3N45MbEa>I$#mD)FKIrh_%p}|ClUTOE`O{1JztE?xZ8FBh*+fBl9Rzr^XD-3dpY3?5%2`Yc| z7n9V{3?7$~U6GRP=M{kJf?2iV#5=Y17deSh?-Nes2_5VkjHMp3eSsb_2VaE54J@%Y z1+T(rdRnB)ZyRn>FMnt0@7Cl?iPjDoXlXpOWQ}a`ibUWh1FYz__HZ1de=R7#oZt+Z zy$d4FyI7A0eeQkSpLQlBAGk4^W7-Hb6zKz8*!@)L_OH(Of_WWR1AHzgeei(Gn+sN) z9}=4l{sGplRo6I}y0(VKE}7c?7hFTG>Mz$Y5k^Hq-b9)Ppq&W0ER5S-Kpo%zU`&`6 zaBUCWH;+qA+a%$e{LLW>{>8BTQORQ7^FAdZ3t;32a=$uSKJy|^$kDJz&-Fu*SE*=> z9wg$Jil%r#L~c8**7>p58=rP#AwikVw1F&*C9zP7H5K#z77X#=H3fk>E56Pbm91aE zij>0a@|PH~4V*$ARzv`_UjL+Nn~bPkYG>%Q!SO@lz+_2a%XHUoF^I$`l}-2b(w z{`-x7d^Zq_lobyfz3%SbK>{g=D)KEI7pm1hWrO2w*}* z4l)v*Mi~~ET4}|_0M1mjS2y~&St>eoK&a%6vE12}FsA*|b*RznKL7Yu;Z1f{esge~ zLaZuv^R2%((c9uHQc{JWzsia8jjBCfemn57k!KsFEz1P=UGxjbkeOP>$6&-(i*GW* zfNtMDajip@6~6(jy_`Mlznd+%D3$XqVuV;88P6=_m?964fPK(&ecL97T;e2!hqUSr zB5)Ibp9;3>cwwF24##;)IV;G7SWU-S#cd^4?K{_`Ht`vJM=P?^Y9zsoQ=~OiSwhFf z9q3Nm`Y|(%&)O}@`(VF`kz^e(vHOqJ2jh~z>7?uoFdxpicP@GBSyVIdemY_B`qgxzLgIImST`FQED(@ zPugZ_Cp75(c6kmZf{}oY5I*9_Ty5BcDb&7kf6afbKgpFre3OKj@ee#vBInErDsU)O zbGBJf?r&Yvf@yHPKCCk5^zQLp0p^E$-;U%0cU&7UQ%c4st2BuwSEj$6O!x$wrn>W$ zQ*hhNI_zkTHUrhlN0+tk`#$hs;Bu^0QfdJ=J9Y1q@grx;*Czdm_rYiDSxAa7<9n}D^&S8!Diaql`+w%Wz zo8qsZADa5JE`KZKp9FjJd2 zRKNI$IGilx&@!zd^?;l#T+Rn*In$KI5d9{%WGQ*`)$!;+kShz_3~7D%lK{2rxk+Dq z$<^7G+7E-JP&vMh?0kNpVXZvJeBh_)+q~TUvGq0gT#RJnK?ghGHETILsr8NzC#gN! z6{)Sp9EG(@4D_z}T$NY6?tyeZiecG)IAYIPq*Z5TiIY&@TAVgocG!5NVX0?FHX7I2 zsNbXdo(wfq*Tp`u2^T5N;3*N{JrGKWC1|-3npe517(2!G5WytzMZM}1D9bB!FgR3k zZKW~fFdQ8spm`d0glE(miUYt@((12peuuQhyjPF(2Gz9f#oZP|8On}MwkBCE`AX+K zwp7O5ui@2Afu%;Bs^bYf5r3^3O5_8ZhLZ^a2Q98-o}G%(?*+w;iD^decnoIwM>#^5 zOnoW*+*b8FReoQHNq`f!@*Ddq^-`r8|BlDNx0!U(@Si7neEfb<3fwPstZo{D9j?63 zz+Aoad5KI4SwIEyK;+uhb9Sv&$Eb%dm9dn|G`rL**Z9`h23`%di>;O$^87EA?}N=)L#qkzTvB%3(S@m7**dl6p5 zXqied)E^J@K=q!KDMH$f`n8b>Mg<(@a!0+?I@1B~p7f&vjs1^?lW{zi{~F24gFs(@ zMY8SE&N8Dn`h3878p@GR%jd14kSl~0q}N;>kID~5`dl5Q1@Bb<0NM!Q;m*fHM4J+yfc58W%u6^(pa6NGDuCp71Wpb% z{8PCyy~pRWTGimN5wVxf2#e=L0JdFxSurJ6N{V_ABZG`3_SVdWvhq<|-Iuv~3r~h# zz~~UUrhbMSxG?rf-bJU{OHwDF3&Mc{4pO7Hn30!~Ef2QTOwy>MyeBqVP~WA?8*JjD z>0*fC`n_+mx)<)YuFjllwLh$VUN%Xc<+~|v5UzLjrc^Y?Euw9)1zPE_PN^8XQK~4r zL3SYO^cXChEMC=jlJPP}pr8{ObhI{@)~tsMBoKcQD#nYJu(sESvs&q(0w1UTZ+p9bl^1BrPt_~fWikty<`f;5!Z3}0(k6ZiL92}~u>vG8%#^t_#OgH8bmh_)|@oAn#OHeASp zf^V0b^xvkiDiI;$G*d|D?aD7;xty3E3nKn@Za(@Y(C1P?|z)Le6V$W z9J9yBV*2<+8GPC@_+(N~$f^;!nju4aiOqc4Dfv1I2sJ4~KrnG=6+2%D2CWw8Hh2Wi zH+ZgDzJ8OGD(D#mB##_3XWQk2-;-<`6WDgAD=o=@Oao??6^Ulw6X4l!I`6q~dHRFE zvZzuO(WBOQmvJbnsqj+*ckWWk-SGG{pDXtc2;eU7?CV8)F16CN#PQQ`nDlkc?`4XI zzr5g0^)^AwavoP+0(a*G)jFE*l6?0k0FynIPfhMeu6@75ikoCzrO_zoxYF|-qiWXn z?092}KkymB1;qz>Fp~bMcFpnWVJ}Pl({Dfstwjdl5Fhfou2AOnr3&)bv(}Yej=e}Z zs)Pfj2ByQ2V-awf=#*)d?T^N(No@F>+%P0J7wGHt9nerSyZ4prK27Xz6^!}yU$@oSdNm;Q`gX?a$Hj%y?W76TCFkbr%a{-cTYhAIK1PVEY3&>u>X;3IJ!zv!i2m!G;oK7MF z`v-Es^(KfvkQ2H*_Bvk^x^{;_&UcQS?O$$7QoGa3Ca^zZ_GR5I|3c&0bP2z6lRTRr z1+k~yx)HyifkaeJ#atyzzXO;wCAyo78a)oUy5YHkm^V2Ts)9HxW$n)k!@cZ#U#h zoKm@!9Qv&R?^*lKanIs0^Ubk54US-jG%t3QHOIx45Z9892bRlci_6?i$k#P1pR^oK z=3IZIq{I!Pq=mC1SGk+WQNJ-o%OqtykP9J1;mgjfq8+` zvME`b#sjO|DT(3ttC(J2UFMu8FOC!{3@+2Ik!cIDYP#K3W{>U9cdAYMWz7;r%0tK!emv z?-04WU^xy!OL$(YAeScl0tFHcS_)A_WkfZI(|CN7v?@KJA< zh`_SsQL-+&g7Nw7Lq=zV$@mJ6fnM*nfj{dzUA|-HNAF7Bh-8-I(-XEWrN0AGZzt4= zKEEsi9QZoDx%Slm;q5&Gn$WgwVMRbdX;KYMKq=BhdI>>MKoO84AT0vYi%64>bO8Y= z(jhcOYN!fGQ+f?WARvnLD!n8S;9JqNkN3QLf4pnQ^g;?>kE34{jh#tnoZ7)@qELG1GvrD!S1}(dHFJ2lm8i}$~^Zpjx~wz z?m0JP><8_BycFrG3cj5>zyG|0oVQ7~j)#eAfMh{GM z4Vx03kEba8NEXtZ)t-LrOChG7EkPy|Q>ep^T&i~lRaP(wyjJ>-t#rCUNyCW=hQp)kDR+;kFE;y3AmwKsb&2CV+j15w376f&t_#WMDe*_G_Wwd z3)NL1UEX*Ak2Y3iWTf7u%N#Lw-CNZ#P(MGsVaEMcvUj?}SZYH{a5_H$?q==V3Y_1G zQeLzQF$m{N`OwW$ZaL?<(WH5k65rELQ^stHCkAO$Han0q%AqXTu7F^#`cgoBa>3D@ z=sq(6N$n+JS3SjE*Ny20Tut5cnKO1SJ^tB=*-5KI?`|BoBwibhFo|k3HOcW&#Cf9`}bgS z+*mF|&etA<*TYV5+m2vxAx=E zL{FNO2-A?CmCbcLWiX;|`)0WxLe4Gz-F-&Bto{}`VHe~~lihSn7#-2Bw`z;UJv!;u z>?uN3p{^i;XW@(8K_c;U+@qMy83pisicA4z+0_X9XR#)WqU{X#|*^O~W0stX*3oxET`-A1g zlwNB!mXf<)v|NMe+459V6MSGiDlJmoeJ=!_se9yj%_m!yTTu2;;{fT^Crxf{74-Sz z>wc@51Oo?B(2;Ak$0Th>io#JkwPBQ#+}#b)EP#xhs-B5b>8l!YDusbra1TK`zj{@2rYK_p(H3aeUE;P|>f ztK#cKq^BPVV{c0;!HFp$F%J*f%4#U~<#*FA9Tx;Qo#3WJu&x3n;>Lte|d+ zx-d#PJw^kaKp~nHdi^MX=v?{q)9|jLkTa8*Hi^%3iE!fqT6zCcpCA5bD|-~f8>A$N z_DP7QMGZ0;Wg=BXLYpaM_$vlr#RHBvYpO?u+nM9&UJU7lnSSL%)?KdyoZ9t##%Mru zmICzuxL3lebOQjVV9?hqvpWfdk=4`TWH5SfWDBhR#OJdrltYMV@;8q6$1D-ruTj?J zG2@f&Gm$1ksuI2X5pjudU#T>Y`DD6fFrW$9)yySif#EAT1NCVp8pf&^&1z)QZW-6c zYyP=@DCDX-bXPn1VTnOZ2#x5uDUlTMn^P+*xp8V_GOMKui-YD%NEPS#o=&;1A0~ah zSP`A2Cd~vdBVxtVl=u6eRP>5tM>k+6SX9&g*tC%q=0-(C0)0cMqb@{V*($qfVSDoU z=VbYQ>$ej?;fKnsRp(4^tL9utx#hCbhKzvU?PB=}Fm0k3Duzf3%r2O4y_vSibMT{O zUGvyz?==kWj+I)ohc)eunG3T+>M-&+E>*HPZuNwR;)B<~GhUTo)rS4Z|15ax8T`M# z=J=y&^>EqmWZy6JoM3h4&f!%#Ao)0;!53XIFXWA!JtW*)8g&`l7o98I)A$9csv7eX zWDrbhmCOc8;{U#5`;UzC``7xvzl`T#-l>QC-NN*DJjJie&D?>?R&Bkc4bImE;(68K z&biF_jI&J3+sS63Y;uc9+okRLfI8e|ev})6Xrn_bmny^~G!DC(m09=V192o(xbQ6K zPI$ZFGfiL9I~zA%+~Btx4AF zQEUBlcHG+~DOEJO;N_yce=kH1~z{ zXP=`1KS1^sakOe_5)IvZ*Ke&cBAdy-R%ty%Ks1t{=J=V^|K{5DWH}#CouCqepFp6K znef^FmSwB!yUPE1#76SQrgS8w=U(oI!Ni-+AzEruZ?YK?Mi5$NPoBnTovxyX73K9{ zlh%@{C1)|6m_ENhD8S;}1+t&m+U4){AGNU9qgwjh>hsqMgNOEBW+` zhEgzKn#w<`Meu69eca1m`5oY~iU5z|p|Ub^?(j(VE;*ra_3ap-AzCN<7-J^l?+81T z-BB3ew)bxO=)Ra08qPHZL|#f!8Rg)04{s!2oaq@tyGNZ160d=yTGS@%&W+^$rXQ^g z@SYD4n^Un&V$DG)lW|%iwZ?;Cc`oO>Hs}JdYWc94%!h@F z$DZdY3cCMTRXqO33(lyH)vA$>ed30*%92cxl0aJHd(f(9m+RblB{Ap(6Mgcol-E}B zMpT@-T+QdGRxlP)g;22QE1~wok$y)jt~;&k&6CG_ADZ#due}7y^GksFf3Y$G#Ll8I z8QJnQdc?T-J!_sUPY=4!S`tFgs;yO#a#RM{Nk2Pexac&Co3-o`qn6D4)u@&Xw6*X2 ztojTuOnQFSQrj?HcOl%s!*G7~&iXyyRueW2{`s!F?Xr0dU&UJs{T@{o>U-t4N38~K zKz`~?XX-I4UmHBPbOHU8x_Icm_4yt21_`b7t%mV9!LNqz)%oX?kmxRyO2HHO!Ord2 zbD!YYu?4#qc4C$-Iv#U~gIMn2nH(S7i%$KzcqSIVE#DlVK?q8uy|~Q(=C_CZ?q;R! z6~ESu0Jq2ZA{;&gVjRBNJX^LS=jM^kJ7skJQPcAxk~$^I2D(I*hg04UvtYesYXHc| zl0*vdK%OXb-AkhKJz9Y;aLKIKIZLh-RcwjHZO*iZg1;3R^;!3t>|VQX_x=@AODEvA znD8T_;RAlEC&eK&X+A%i{IODlcQ#*wN2LpYB#vJfqOWH#8*1UOU&BiV=Iig#rI#WP z0go3dY}Phg0Adz{*%d-&ZMlFE@vHp@quZRJWHZ%2m_^TMG)I$5Oq5QuM%_6jY(nnDETPNH zn&}PfG@i^poAi;em1YkFb%|@k!`$X`LUpeS_do|8oR_+^3=v?!+IDoI{X1AKpcMlH)`)=SBMDA9cuS}!25fZzRjO)hF?n>q zBc#lV=7EPQ>?u`>gmNkHWWn|C>n4lz3Vn6aJ{HxfMT%%FMCTq+#_Q(vaT%D}3Z{y( zS;mnc#+FMxEftziRL@ZgC@$)!^>1FDdR2SLi{R!QM0{1aT&IG#FXpBx8{Bx_X7f`N z@XX}&l~gaza%Z;UFy-wz)h$y4&}mT^n4N$B#4mNb9?Y=-AFaMZuB4u4kru_1mRL8iUYAWCc{O2F7QEtd#s8+Q826=5fFObB z7(}vNRC&X=pW(Ge3XXi#dzE&K$dx+K%dy|VIw_s!?sR*vrgdZpO*bD|-o?|Zq?fz- zB!$F}tLIZ}3HD=g$NP`uP|mX!u_rvH+>X4?a=C1skRnJ5`S-PdCK;LI^fI2dAgYg^)y9ucSWj~<9K~l8S0{j%G?<3?yJb^^Jt)bUmtS&C(O;d-C@SvC*iEx>&ubrkzdPaUV61v3~GXHW` z<2-gc(3lhZaQj+fX>>GhNDp0#RFWE4kz1rvTpf9VY6ANeZ-(cenh5)I{NAwONZxCF zJ9R3!gHm=w-YxkIrR+64@F;dG>l<+lAU;cLp@J{g{YW@WV1-2p9Pdrgo#O!F<=k1Hgc+cKU;<`tR_yn!6v^3;?&L~E zu=o!OCZ2uT&3HUsX+4EDi|*YAc>GH#K&|sD(?O=r;eA&cadSe=VDij2uLgL&8I01~ zyTJ^`j1AlA>$58dTnupUr|zKqZrh7#zRCujsi3fg%-~6V)q52sJ1b@m5AfUG{NV7d zvZp-(pe0W7l%)Q93WF)++{VC|Ay0FT6wb7ye=x0wlfHUb$H1f}yVb#&1sYiEeLC9| zct7EptUIK=cl9-`_C7B>EI&Cu45d+*)#&zY2N>eoMoq#5AP!7GQ69O@hHa3ap%J6$ zlt@sG0%+c`|HfImVO9OO2mF*KOY-bcA8(5c@h8g{-p+s^oSA{htP|Tk~Tx+8< ze0HqQr-Mz!k@Jf--vz% zw|r&4Tqv_lf#CuBXkriJ>pD*-NL^4mJ5A6-6ka2EiODEHxc-`3`JI_tuE7~lZ|dH; z(2}IMx8!y5b1F)!)W)Zy%A{`CxWxo7v*S?s(SI8%x%6RROJiZoN_3lrMLDX`C7rdQxDy?eJjG1W1 z08=+p6+8zh9~Vv+0|rg;3D9e6{%XB3#U~)-I0!%7PTJm^n8<%T2v{Eca4H`deUJ-& zeF&lTP*gS?R3gz=Jyz^Q~;V*h^Z zEk_i6opUvP@ZqNO*raTmT{ULtZ4IKk;zI#H% z2>eXFrocaCTdv&0p`-U*KpxMNenNg^PK|S^J7aB`eud9DG@Z{t8aumK0yrTKH+0hcF|%F zNvg|lo;Ql39+;96C2(B2-dbL@Iux-A0;WUrhE;`amAmJQU_PZ@92{ap7nN{wkw| zA^W#6Q`J_SgGVORwO1(X(4liu6%)Z5`50Hsm& z0lYR*iFPE20vOG^0S0J~Yj)^T?{EFHfY#~zUT-JZfSKMXe&WMtFnIq*5RF>Dj@9pz zO3kFU;p?u>$A@PJ0H0{g`WBQy06vY^My*xE(=Y(}ox+ZnbS%{z?S0*@Kj13<23o*%(b$I%r2wbYyx(|ovo zxl-(JA(`L*JW!FDj|16oV6*2_+|YJmw^b5Y+?s(Rq)~PRJZ>Q|oJ#Z35@{V8+V_5k z$vj%pJ_p>R+Q_eoV*fGWuz2g&3jTC!1eUW5XTG*S(+sb8GtZXgn-M}$FqKEomUS(| z(_?vQD1`E9^6<(`B0b710=e@t{I=jS<~4ATSuo71?ryP*Q(}L8q_tHYzZjk&btp}l zvsDpIMZ<(&8n^t$UT}4~RFM`T_5Ou-SbG|^OnM}y)*wyXIR4#c2HcZJ(Nq3(GZ~bF zvG$e?64Wt5U7_K!(4?qkL`k74X_13^DkQf}_5=g3L&^ZMST?TH~*n_JK8Z%P}C0oWin^Oln-HLb4<1L`R1_AHXyo~iKFenm- z&s{mo>?jW=lAr`tRvFV~QnCqP4#0AW#F&Xmq`5D>NhBb@sFQo63GhoS7O0G3+u#v9 z$$@@LY1n;e+_YC6=!bY}+j(WL-!VWWnn^+s=B<4fumzvC*JVR?l}FxGnF;_j1S} zI-<9M(82p9;o$dPtaS6<8ZcA*JR(29{T;@XU->yjD6VuW zSmY{kj@-QflK3x5uNcb)c$h}IkW!r3;SP2+AcCqF|kv3=! z11V`ClyaC$Crz@)m>G~zh28sBir37h0Psdd4!))0!9t*zAA#FPc#Ah)aD_{V^3q4b zpM7(kf*;SpuO~jNum}#Mkmh+dX;WBSj#4SHn$87d0llChBVY|b$bJR<4V#+mW{Y=k z5NfYaW<6~M-xVFf8A~vF zIty)!dVbsW{qYRj31c6aI;6eu2G5!H=qDQ@`tu)wlpkXB?3>tO3Rq}R-+MT{-Ll}; zmnP+pN}dH$A!%KnHeO4*<}}-3*gCo#C9{@bcs%i4gToVS@*0c+Mq8;b?7m={<)J+pRNH z7R>*T^a3ePkT~}k3DOI6Wv@5C#VM4&emy-^6Ljl2kru<3D|#!Ym`A9&{?n(YT63C} zgdVtUSr((g!Y+ec%Om&?v_ii%W%|zSXt#M(?lTSF^ar+ft~%a3S;H)vUVEMDSMvKx zL~^m4w_TJ*dO+06qwjSdaXcfyjEHAo9~#FvCnH^l6*7y)TJXj=VkWzOi_ld-JNX_A zAwuw|XTb*?C#B*R)pj98*kOu;-hFypJz`g<{^zt^bQp$B;z^gbJad>I0!Q%|6ax(H6&PQna-Z}{k+;!g z?%TIqtAN$TibuM0siwpulPf_w0f)8?7{2k;F6X4FeJUjf{-cAQ>Zp=vQHiNWYIZ0G3un#SRS9PAKK zyDOMWvx)V4Rc)a@cCKoQJ0#BD?){su5E=(Sccw$QcOk}+)Vsfe9Q;3@qc>(@7Hti#53>7B9;~_!0HwR_CBDKe5q6`z;Ds5m4+%?ywQM+Z_w^zZr? zH2Kfsx9M|z^4(V0FJbtqpN4?DEb#Z-sHU+08~i=?%9)&BBJW3_t87P`Iod96=0{Ri z?TcDu%4Kl4D=sfxwBES{mA-X|F;Q1-SS^i7H#OmgI*+wm>*PgK_}T2v(d5x#=>jKY zNu*cv7u1j9VJt&6TQs3*;W<*AdrKaAW}#}9k9u=(TM-5KHa_XpXk6!pE!dZn$j67Al-0pN%#*pe!jjsnvH;6tJrO>8`8?H@fm~-qnO^n3 zdVcfg+P9A?4=n3|!;&u?CDe%9Dg^*z-mQoioq!jo$gfM{M}-KX2A=Jr2-8a0u&MH9zaW7R|fZ1!c3@g5FzW?nR3Y^bv6pW3>G|>>KXeNcl?+35Pi>+rW z*Jp9K_1z1MM!`;GBZeCNPNd0|!5njI6FQd|5yw|j&4GtMHQ~+!)oq!u9i?h@>E=+F_FzScas{pTki|7`3(RU|<%Y-nVdP^Ea>mlbqjf(vE82jf_v1DX zhr%D|4kPoDrGLrpp!n<8zBs|}hMdP!VL$c>Av3wxpH8=cr6Q)>0y{O4^C_m6aI({0 zx;~#rJAlX5_-Ue9loS^rjVnL5l5<~m{POX4V4hGmMI*>2WjUrh4EWD6a(cYH(mSTC z1fCHERtS9RCFV;D_fLtY)PKo187XMCG~UTs1NpWai9DgEZ;4V?v(#rwL7GdB-tyU| zcV`WjPpHE`fNZUsmnw64|4z1X#%oq~#+m}V_l$l~PpLB-Mv_8A75CT-HB}qEY^;cXME_`QLFTU3$ zXFx8NR=rx@{TYau$)ON28|_S!yFTR{qzrVJ01AOZ*Vx0n zbyUu4mK_mEt8f(kxhiPuHzd_lEqA9X zD*gtzt1a-`{YFI@{mQasAp&#%tGWrt?smbL<*Wwm6h!6iS=b z#d|ij$mN_@smIE6)aDn5aI=>LrPE()SemGVTs#9(DQZ(b5aEVI7Y%tBTG*Pd7-E)~ z7tzg1Qj4(6ZL^3)eza|dz33bpk$pJQ`$blSBTtY5-+PMuGv~s+s~-<=?LMF(Hr>j- z$v;N`vGpEU;_{18CNy?4- zV!jDvcP1WDgp{*I^?JkMGHoi2CCI<0yaV4fJ23Sji=-VdM-ATd$EpLJb&>dk8rwAD18AgT24%(=75j z!A^1$ezFUnvVc)r#xP$MY zV*M;w_Vn{ST3v~2yMDnv1DL0$fb${#s(~L~-X5LBb*lSb_zte8p#&HmO99{q3bl81 zH7F8JEWPyZlR!){8*vXsa+>xxWn;tww5sq@Z{^L3Jh2fy&PG0jRKt@#uwXIzT8wzw zOSD&7bBZOuMycRQkKr$`kJ&p{egi8%fa04rGkr+4Sy{wLIUISk;@SMGUBn^VYn z&2#EQgqQ7$W(}HH)>uBr&P<8Z5FY(d(fx7v)_NG~* z?@@WkgU+LE zlbU0oCBjGiqruS!-br4*p7!!9Olsah+cN2R#qMuGZGPPwv*Fmm9{Sk8+X3v^%!U&a zZ)L^Y5GF?Cr=+CRl{RFB(3q1e)27C(n|l*q<{NY*Fi7EL21^C5eQzaqBSqyTfh(XQ z%t!-kQ^ zV7&qF@Ep3%WE~VIEEJcwPCc>ELlVG*Fb+Ce55H75mYDu=tc$jyC7?Fe5v#?`W zIUT#8=Fz+3&(D}OOf~?0yoN0f7^o#S9CQ?a@xevsTlaph02c7@2)py2BOH*}jBf$4 zqG|8Kp1s*fKky_4jK|`|{9-s2+wi!SF7imSH|5s5J!9A7@%GRfh|Z(Dn_fHmwyY04 zR)57jML}EHxjm?U+G=~_s8?s(|DBkpWr=#dpGzFI*Y;M+5-6o_Jw;pgozZsUgUO|U zOpT5=l+R7g0-?ai&(mP4g7gOYn&Lq4y;`!@-yJPko4D#?y!zT;Gc1w^CXVZL+S85x zAHwh+G#NNLOei!3cca}P24u_GxbbvFd!;^A7Z^0pD+}Pa!N>hAW&O?ghSUP)2|094Q z82jW7S8>eY8k2ZB#RBoQa_pwf*9?f7qeF^=;|Umv-;Ta}1_p?ap?DT0cR$qRU^jFd z5H~j`8+=q|Hg=`02NN509DwI@43#O$b$i|WNNC+q6p}SS5UFvwo!R*w=43UUwEFdf z;dX``5=r84_DgD#Q$^OAYLcUETL(|*9Pj)8!#m{-x{f}vyf*kbL=z;kLY z$x2Ise**sgXM7xHA#C;0slKwkS3V^&Gnrmy`Y9Y!j5+?Kbc`M-RS3P75IM4Vd2dzsuPlH$P6L;6mFDtO#8~Q|Y)quWXv(V7 zFE}-NCb*Go&(r(f)Msk(x6OW1TzKW<>O02~b(u|Nv?$|oF`amyB5gz@f&ZD=rkzWR zWy7a8=|nw?d80;%?s~*pvkzmks{MMIBUHYUH*}6TzDwdw}{h6iz(%p3>&m_TaO19O{z@;mSh;x-f;~HFMy#{ z{Uwt`33{T74{2z)!vY4w_6fW32fJ`D_z08HllonV;jw)*Q~(tGV@x}&4II6I&rHMR zpwSbya*Y657}E_u*3@v!J|OU|61uI#Ph0%M)B_+qvk%|g_I{H}#n;}smLWz3T8Vv64kz0yP;v$)s9CUUMvg|7ekOa`BitSz%$lI%XnKspZf+w^ z>UgX)k9P4ut_8#==+9@%69->^1-Ks_S_z)W^3#bpV7Y|1<1r-YL2F>kpbY3pXW}R;)nPzIc_2H}Mkc!on$m3z z((td^-C%i-0Wb;h{Q1K{Fv}SB6`rN#%F-i+pScjO*d&>Vcj|$xlyY})JFnW6O|1k5 zhF;FR@rJp%Tr8bXEi2>=xK41tEJ6X z?ewn$Ux%RNzy(jE=5`|P+BWAM-ao|Z|6Lr{|M2}KMuRHcy1Y`ZRY zGb;<_HHX^HihBalL9ZCFX;r-#etq zKF+sN{)w&L?oFaVeNfq!?Gp@V_$NdqTZ*8Wal5$@NRY$xSt_-(M%}1dbA=!2&%TE} z@t$GY1WYPjFgK8>i_I%yxGahr48Py{;3i_AN$tOP_W;ZxtvgFYpoD(s5$s2T)$IWg zNg#elsVoq`63{UKHmdcWw$eo~(-K-m@~nYP7X20$Id6BoWGFz^8SF0jsaz?jyC3`u z&k8b=N}kP+KW?!THH120GZsEB7ZkQ--UtksW@b^veE)R&nc(1%d$BgW0JY!aoU=%1 zIXi{~3Y7g;4-eH1;aH$@(FR`!G+bhy{cw`Xah(OPX;TBQ-VNJATANh_Vs7z>I`-Bcbz4$u#Po zyIqKcuI=&=w!Q8=@ykbI%S@V2g#AUBL>?$4!ZMWoBnK-{SAnB_J2F z(Gk&)UmyzRY>Q&~Iz269U&GM8?2b?2@sn6|N6mj5k2$ASXONrT{x>WveK#U7n)}|7 z9YCXXp*}f3-}e-heCoSwwv^d2WhT;C0TD5sWmzP1fSD6JPpcx{v+ZrI-&a$Jltl|C z3P7E2d3w&xH267m`|2sgiy#>;!FSP93Nh!FT)5`DP>ch|i`K(f+B0A2!!A^Hc*Mks zzd4g>QJ0Hm*3K;DB&G~j(3Iyu62zYAnz_!U=IT3^nV3m)&jpizpUADtzd_fg;8AP{ z9c8#=cwth{b|@#)Zg`flZx@o|Ldzw;^)FjE5AQZKCvI#*OzTq^X=@M2%_PU`)B!YN zKlIH1LE8&lDg|@v`zG5ZLHr5|K6ph%qO#R1>N#NgKZWg2H#+P_;0 zGgYV;$@UfT1m6`~9&(vDQJT-?tU+C{tdT*MPJ}ygD|Foz1hiY)J3@od=8kDy1{t z##S1f%x?=Vr6&{e#oCTAW(nZE|_aOAK3a0nE zkHP{e>qp|F<({BBSPih$LTq`~9u$#fH{t^`OzB#Nq&k9)GU94n#yM-KJX^JVi|2$H z_tot?CTg6y`Ss)(BS=LrgOUh($E!%Oe+)_e7YOjZ#AeT$9H06XKvSHBuJJK)%yx#s z*1!J^rxe23|6ncBWo5+PPI@N(%d+Oov`p}YYD%R3>8m4|1Z39vR7SA?6z=U{I*eV< zE>f>8^1WYM${9^^ZL48>whQ8Lo!DpNc>LB-Nl9Cy$&dNqt5kD|Y*5#;9fdyc669SS zev%?4;KC14`>}@$Gml4PHKyl19_UvH-x!!5qm8Uu7JgsDA|4s$eY#U}pGJFR3%6JX z(uB+U3UK8)O0=9G6x7wo?p%853ZpXOcyF8Uc)Lw$P$@Uz2C_GYrU=JA9S2ihO*)sfrzG1N z80Uu#)!fJjFL4c`fvS_u2M{_b1!BAXq5uCz4G?;D@KlwbAJ7+iUK59yS@ zfj)Pk{dF{fS(-xq9(SI&jM!Q`N>%md&r^cULxm;J!|yz5hU|m5u_?lDs6Ney(fF9=X#F%SD4Wc+AUQhangBCnM234aB1A- zB5Ty*W;^o1&8CrX@zxO9X!3HY`Ej0F+#_0J`BPjzuENBhvK`O31t><71bJ>*!xrNa z!iVf~P-jz)mIuar{yZ6WUfk)%Nkx2(ZRnYZj5Lyl!7??i3{n1V8U`qM{Xw1I^imhn zb>!f!IGAIrzY}rGKhD1mbRsY<)3dDn={lJ+_#`k;N;eS?yngl*agRs*EqUWje^!NXf3iNE?b5=fsP; z;fHDkvC-2xwlP*S0#3%W+V!OK;oVu(^U~ELi&BQZ%JcdR%m=usGQp&By33yO*@;Gw z1WENYr_ z{NVfSBjUb5s-pUjzQ3vWU(yL#GJf}Xij#Na_JQDwb@;~vl7GJQf49N^`g{Vfe~IIh zATJ<3KZ9NO_ZF-gi+Em;MDT3KRUL6#@I;iq zP1@N(s2Xz#!~0?HrJ5Ty`88Xk;o}@!czasemPnh9mqo@xBDA)SK6bFy^ z@o{@18pY%}|6;^-ot34bygh;ALTxCLfacBvl4E^TgsS!^$E6G>-bSZvl+f}_L{vzz zX=h^s^pF#_MyRR0Z>eW@L(%WE&r{2wjoTU)_jEZ(;Hc!;fi zRjGDX&mvy?Qs_=7ee2orrdg!S?n{uDr_y{AWhlP5CFOfz4sXmievc{iJ!M;ka(Ip`{G{9kVgn(LC|uMh$&nkJVGw|f&GUs9;{aRZIO(n9`5(f-Qk))1nO1hdYfcHIqZ*d5M>tszeIk2ust8im6ahE97? zUEiO&UYf}IGBw#-mXC`Vh|F$z{Yt@FX}P2``DG*xct**WBCe4OZ~@BI?AT-jd7rq%%YnR=qe zvggQsWO3n50{oQ{DlOyVF2uIa$O~KE$EXo`%Cj|&1u8w_#DcAoz;?i&zEZY-z82=|#ID zk$;WT(y5+{XYL7IV3Erw>zwH_7T$Ir98jTTUV5W--gBfw{SyiF@=id?*HiGlmt`jD zZ=K(oY`$`WT6Wt%9BQCNJ_F&-KBa;tMMpq-4<8eX4DCyo*{>x!hYn~Zgx~{U7}Bgd z{_6{Wi|7AwGDGr)<-G7G^Y3}#ue9i|lNl2>x1Has2DXT=@_f4D{tc;w(cl1ym+Mk2btuSwn@cpxfS2{NZ<+T%_OYEPxmObz?r0j&e+p6C z*L3Qii}Krv={hWhy>TySe6`R-5u@6W&|dJtrmd0CuK3-lGgL0}rZyEj5ZjsI6=niI z3iaq8AW-L}N2w=Ic&BtQWLDjq)C|hlhT)?Z*UxK5ysgMJsfnUsauNn6!fC!nTwFor zfZp+}jQh2m}{{#o@;VV^22Q4Q=q)LrfMzf+>XRd1RO`vW0eAOygVOvEkS z%W1nES^MKwDyOUbpGxq*mW~&x2y46QV_Zg$HV9qr+R&zTL_i&3#?Q8DBBC7|GlUOn z^5>rY9IC7yQjcaiu60H+v$d)>m-7&A(rSs3g7+pyHrXj|7S+AGm38lghZ3rattx?9 z3t^AnpeYJmb9=EiOp#*8K*y?C-v9o3;#4vcrP_~H1O1Uvs<2R!&G$Y zr@}e|Z>zt=ed-j?KUdw-brc`UsNYNvb$h{@WNH%O$m+eth+e*(5Yp>i=|CQsXKQ9Pk(nI;m_;QeYqej%e985DzD)U-_iicF@ww?gZiV`3 z|9pP~99@Y@3cJ6--Pj#3uUjo~-R~F&UP@muA)P&!->Xj;f4DL6dX&XunCwyV$GtD- zGDo4lYYQT66tHitmiNrana19jPzPqn;AsExHua9aF01Fa8C{Ak&Iv%!7H8?owt)?& zLY-5#m`fnh?|l)7rDqNji!9u2xz9X8HO(7^>p=RL4cTdISjgx|S((}W%GxNdcsepn zs8>%B29@p|D&5F`|0`>Q5oB#ZDx!X6ZS4OeYvaRE1IXHFh=NjvoDI@mr!*L=P-OMo znrVgrHfAfQIV$Z)i%I;+_qvr|VH*O!QD)Vmp5>pfjRo-=Wk#J8fe=lAGL0XzjQ$ys z{?}MDK>*Ku=7K~@rOUCXH##3)@DN>bfg3YS)kp}{uPqN%^g;HQs9j!o(%H&~8nLQN zA526EKii^S4NG6JEc$pHo`)Mh2iQ)*y~RqTC_kQK^R?KTL44)Y(PXgQ8E1PhItLmx ztm9Kf|nJ&D<$x9QuG2hyj^7V! z_s<1h-1tYq#3&6rFoA;U_V>IuS$glUf;mMx`{h?F$JFF6HOSS6U%uv0)EUw+&XwOK zb5#3LeG~t-F?5CYy*wkIj+}+SzDWsg_`thQuj=&H!P!MRgs~U?UE>7%4E(#saLw0V zJ?-FKV`-SUz=eP+9iH%}wqbNGMMui>9mB`XkoP?giu`?MU+J|chK|XIt?DU7_uH%1jo%O3L|AXM+&lGr!LudB2{?pEH;q@cRs^ZB~z)$AL2_sK@fK`}_%rxe z<5SoIP5)T_5^KZS&XDs(V^^Z;2xI_l0b5hL=c-F%1|x~@V)Bd-d~C_MVMI*V@Tb2= z1_DBic_(kRg2$Xj+T2G0kI zzU7WK?O~^jGP{*R`Ie2b<1J)2Ch% zg_luWVqyu9gMm%w&Y8<#(^<@$IudL;OLO05a(~{HxR2(PJ+);^&SGXd;N;_~Hez+5 z*Oho{+xWc#PGWs2Y*ssYFD zVusG)>HuIaLJM>L^YDD4ai0`%9XY0Q1rdV&#seiE6h2O|Ec^V26DrstU z|5k`dZJS6Rg?azcuTNt_*{>jkHjxM5X`r5qON!@K}yADp6>Fm=DE!MVJ zLnLGQP=i>zj+7`px1C?z_w6Tl3P_ ze~{E4#Q%TC7Q4v(8qGm4Teea(Yv`2&p|@Z>U&C=uAo4QLurbdmyqjoMV%+|uxi+*w z#5P!2`bnr!Hd>%za0tAFT-}b8wbrBmc(wd6RL-EU%s#ZmH5dA8|o!(zz_ube4(sT2Vh| zK$gPn9)u=>tJ+h!>jpC}#<1N`c=5H0r`=p0u1L7eSPnq;X^Mb|^et*86G5XamK?gf8)m2hCeA(X_xW#O!6)^o?V zuIn?Nr4$McC{d5)A-h``TNO^m_24%IJS4JSC@wGk7hal9SN^VohCf8Vai{<^&M@VseG zq3g;YPsn%5Z{PS6UC&07q-}(Z)D{P~An0t^Ux-(CKD|<8y_5Ih2TvUB2MExTrs3PA zZmhEPW=R7rX@=0qn|LFNlypq#9VmVXvoEyfiO3yj{<=bQj$K|v^*r*z+RnWvUPwlE z07Czp*^R_2k2OftRKl&q9l9=B zSDGJ>_x|Z#LKdHhsVWUr*iCS~RHn8j?J#cX9I}9Nx4OILI5yU^kCqT-sSjAP?tNAT zE~Ms;kSv>poZdid@pY~e*nmvAm~g|zSj{PvV)|L3Ji{!AHzsKDLsKlMfDBx1Zj zkNjkL#(868yX6@hdDVdb^6u=Tp?f09>67x2*@{R zdF_z^dUJ7l$q+w^$0pM6;`F2-~|Nlz}g9G=8M_-q*wc|p<3I^_2 zlKs+M?zS@Owy2+u5iqo>{8s%no0)|~4mOX?YSKmPiPaD~0{pQ`%&nY;t?u;)O_{`_ zsBOIy6N%-!NzF4wC1#OrC$yI!)W{dJ4jXqzFR~u_o)Iy9ZJ2VG?(ip%{n(N<7>imt zZY#IpK^Xh8bkbo+Ue07}I5U2;9B{>*hSv(jqSoT8B(Z)9w;SkDK=MMFiB~{{L(ql9poxPf91dLm=l36AVek_ zNqtN#yfOr*sn9wTGb1I zs&KQ)q%mRDwgB&(`$sc=mpyXexkTeEmJ2}kEFyo~sa0LrlPzjBSY3ABtmgY>Vw1uG zKoN}-4iMIVhBco2jYRcfxWq{J&kora1`6B{T=YR)dhE9S;7DXOXMYRY=;CjN!moga zhV@i<%_6CEKTkcfR!DC84Xe0aq=OOMZdn)-D#PWKY@k=|nup(b>d{>8JE6TIYp#EM zQ>!+p0wo7k!+)4yN8@{Q+8Xm~5f$Iv%??NKt~0pR)z$NP1$rfJTgCIqyqj)%|BO5S z-Rk|6+`}&dW9+*5FYbboHB&1DQbS`lFT;L6fi4l}t-*wv@{)Cwf5sxY}^hNjyLvY97P93N{b%B>u!N~hz<8_ryoAQ;wP2NI+8AbF~{wD%Ah=8Rulhb zRwp*zolC{u3UbxU6;&*Ph*u--!MW|flH6}-x*1n5cJZScT?dZzaBMu1(5{}gt{$Q<0 z16?{JJMrD>v#f-(aj3K#c5rF_`oP5XwEx0_cOv9ud0o{7dCUlyt*Y%$>V z$ZBo0aw9KCR^apoKe-FFJJTiF7eOHM@v&^Ai}O!Z2-mWcFthnW@q64JYrpR1`RB-& zDqA1J2|Qq9Hf!*IAnSQYYx^rd0oyVd)M9YdXmn5%^_(gB@LX&2Re3??<3(DMZ^Uaq zb(~|pY03GaatL&R#Fw5Uz1>D)O^k)#wAOR*4Vm)dL$PLRv{qfy=|cxGdx4xjG{p_S z)*}Hdgp%Pk?ObFEeFEl^1fb&5EH14Xgah4Q0djCKH8cd8TU5#^e_fc0b5#G5ICuS( zI4?E#<;H?7=+ZcvJO#GqRjanX;031_|Oa#J=B_D zI}BD&&FRDG_1!o$abrrfiR(R>OA$Ggg-Qj6gvX5p?A679sJi&#+TXIM_HFwZW=9h^ z3~vEh(gCulZ_qD9(-3pvA-KVfA9Fw!6-1Fm`Q~4Lt13_|ozeXP38umH?w(Z%$BR0}VJ7%aeuw8&c#9I3YXfT;x9wR zB9s%;y_&rn{CV&(R?luGS1BP>nY8I0d=e(}vIPGVp}_ByQ0Z}Uq`awx2%X% zwL)4R|AiVG<&A>B@(hIA#zM?IqxY9q=l3OqSXR&Xjwbh%OZ?j+n!lgbJ6HX8-JXh< zR$UzqqRwZtLb8es?<(_sHVDd?D$o1-greM-V>@MGO-s&`KuvS|pwOQN@~tDy{#}!JVgTG}@}ct~xmu*JHlO+I z+A3K*E(A24vbab~eOf$>FOfD~Y=`4^fH$4X(uEEt1vz-Ag*$+Je?riYP`iZgzMG3( zq(HuRS6EwvXiOUi;y925J*h5JU%_O;n#f>5lfl96@h$_;nwO%tnc_Z8`7m5A{5{PH z_CrXx^FMF?F6^0q%!J@EnN=>7nGnU|d3$g)&aXv9rk_*0oru&pt2VZePM_P zN7If;$^V$%IvdZsDdb&zLsFzd$Yeae2O2W>?Sw~zdt$na?dn{OD05SqN9T3lxI=6L z)-S>>r0>4~MQjTG&IG_*vkSs!tYFcr>Me*VcXp6=A8U-#D)z>*1`%w`idUWXjljzZ zr!zhKh@MUcak6TGO&P740Q2K}neM#S@`&sH>IxGCby8+NeXzVKW)}TLn|LCpn;Qol zzu5$8aMu$|7?0^4qQ$$Op$I=jXuangn@-1SC7qPh$yvTEeRD5cB$}co(J@mw!Cw{$ zfrLdWc+K^kyHik5%f&um5u7*FBak?NjZkG{t`5!;+re>%cV3fOXYrWVLYi>5qG=LW zURSAG!Uy{M$KN5qfbBn~$(}NxBmd=a3WF#PLoLCb@zX06y7Xw+s( z$vMmBUqxiZLjR}3x>!HU-Tp%+kxzXc?z|iLg9z*(N+o2G2gA2l+_|M`8Y@WM{7G&A zoggQ$k59C)W%8&kfz?bDjElo>sZ{4R3qn0)6A%kE*hz9{u(N;Ovo+@(wbceTUoAeX zm_rOa4E};lM7gi-YJhFQkmlL^%0oH z65AtH#ca&RcG8e_?=HWSa%|;J(rYY7JIssB$mn2p)&1*+>bqCVpZR+L^ja_yH|D zW4*S1QTyn}V^Rs~W?mbSeLZF5?ZencuYpI{Kt)Wfx8QrQ6|hq@$ZWq? z!FzgN;+D7G%tJ=e{gzb#fOoVI1^{>w_xx_Dm#}zPSs-^ybB|aSuP)p#tnfmkNy?q6 zKcsHTokmzW-$7D^8Nq{7oV}kVywrOLrdZn&xgc!tRy5b$^jNm+?qApBT(SjdS1+2} z!pyd!Ss4R<5p`xm@c^RBjAaVhm93dEMnhH~PWJf&&7{Y1h!?0*{{MCw^tnnhsCXyb z&F;qSe6E-|j3qziNzrMDm*Bb}koWxPBJm^3MBuFaL18I5>3XXA?hD^t>LzDx4#pkT z_l2DYuMC`q75ps7q^j9evugT%;^Cw{A;YynAg?p~k_kRvbEaA*JeQ9Z+sjVo;!SWd zvw+SAiO%d*B!u=>+o@-?QO}jnkJQg7Wc+OEd1;JToDGI^h4o@GIh9GU1A-d1toMN; znybSD(m=&~KYy9{;j9|r0OZ7-Vf&gVWnQ7zO%rn@vbzK=?$!FWp>`KbkGfIfmc__T zBkTduC3JlNGV)EedTSxOTyn?fOzO%Hkrb1~u)%Pw>m;PcoiLeNjo8A*mjo+7OLa5S z@bv}JW6wHk5L-)bFmkp1h-L_kJU^3M+u~uxa%5BWw5WW6P;k9>R=@Z4yH-Vu*Dip5g;Juj7c1?j5UZeTd_G^q8k_0ZnS#1FJcd^c+Qpg@)2Oe@ zdD=9y%FKxJu!skP76p^S_K)X*d#&YGTS~(E%deD$jk5_O?4&@G>`zS!i|wBs$M4y^ z)=~L#>L1NVHoI)S*C!Kzp}R{<)dZsBNV$Cd`x)xLMhm>fdHykW5LWAwYzN|2ESDCz zXxrl@py6`!X7;0o>L00xyhg9skE%B}1q%#R-|=eWL^tzd@a~mFaX;N?p+N(e7f7d? zuxLviAUMcWrUfo{F0;>wT%`4&g6>mUkuD%ZZSwR0hP}%BQLAAzBp34af(hwOxRsO< zaWh*|ifN&AF`8`I#{(O(@6!{RM$y^)Fjun4DmbSWc)$0k39MF6+z-js^qOy{cY@+e z!WHC8E&OaAMWEElws9UuwzG|c6FMJs%Uq@?sg9DZekVKobCx(s_x<%5I(2y#w5n%@ zNc27OG)+J=3*A`Rj|?G6YyoFUXe{ItW8or>Ok|L!V{kEg`yV7qc8Bs4l^V7=XhsvQ#((>$=dkjFVS zW|(q4HfC4s!HbLy&_zf@h6;)Ycd+g6zEUVSJ&tLPP9qFm4sOvQHT={*&{fD+%-6Wl zXi9h5ab78%fP1P!*si*zrP72qi4B=aHVx$z$9KPzMOCFykuR1OeXzZcT^g3GlMeXE zS@q>xbM;7c5yyE)^2F6q%(Mn8x;gwgDp7wbJC@)mq z{A#8qyWB5;(&NXpv3U&%Cyu=Pzq4Y8OY~oc8h|i#Na*u*NqeBUDpt1opT+q~@pr4d z;XC4Zn|$6mwHrrfPpW*uP5sGmUk$nTR$t&O-`e-t5&L@0fcrJoRhjin+eeU?ixr!$ zs*NKH+=GEc==ZzXg?pJI)`z3m)k!(_eYNZx6MJ*q=}lc?+L>Ef33F7uI_#2PV3oL) z_PT5od7_|yVG|wp;C$#M+s>dz=o&_}+*6bk%7TjbV}QxUqcyRs18n7wWseAOtgkXx z*R$@#Eo{!L&-Pws*L*}36k$!+Kw}m&f0}KpQa3tOc{D|k5!ZyOaMQu}ICwb=RiA7n zXY{;3s}_1ml;?FvvN;G-ea;C50#A)f=eto;hFMc5saWJ4cQFE$P2nT5e80M$yI0tN zubUjpA1skQmZ!c}FdPUmu#aykolqUU&yY>p9jhC1UyJL(o#WjN)qr-6Rs!tq zf0`b-ZPG7+SvzL15JX%J_mYwrgn zp4EJj&aqTROghVBp@aPrm{J24#3ZbgO89r`dqlsXq;G@!AE-~y~-5^^}@~injFX%2|vRm*4&gY9i4xbL`|qZh%}t-<+Wjv z^T3J!H2G}T3!TAhZ1OQtZxlW?@Hn_TUperleCn;0nw)zDeuTyKks{}gxB{^iLb@&0 zNlFZ|??=-Hf*_lJ8^0WeLNlmW6vl~OCa2Es=kR^S=9w9V(XAiUFi~AKI^1VTM%DPU z^lu(EYETJNjlWFkpXH6_WaS=UzpUA<4mt-Mk-=`VTZ`u~ zwp=*-0G`e|szjD=i+@KU=Z83a$bs7RIl~$M86snov|V z{`+%mJokREs>U(E+THE=Y~QCS5oH;y9q0U0tpF_f$DF?I+l$Ri43Kach zNgiYa16Ph{DCEzCST@L;L21NEnUiv+%VlJ=xe+vrtPKxtj1xJy#Gq90F|o>Aj;0OS zDhyrgwoo$&dlmcKkGAThOee3t!}|y+#0)>wK0kd>l188BAWe@sX(B}O;B}FORwVbP z*uv%8v`U!z0po5F=1-sr7SQl1>WG0F0(9IE&x!o^a>Y1qBYCx690!}JFCVpBVlYoa z=Ut&STwHrYk)5{s|^BfFalg&`01+{;LCDhF%jhz zvIkF(V)%61;u(d2^Xd(7`zTt4ISVnkQwE2xopu`7oc%orSKiQ;uNYug8^ml3*G>l! z3h<1KlU(}6K0^vf`*=V%;+j%AGeb;q6($Z=8}L&@%Sg8NII|7@#q`AQp2*d#ls5O> zsSsF&uu$br?K4lZXLI8MH@lHt^xYgE2B<7b1v&Fe@Kw*(YOv2Ki9y+;#IWi%iOS2Q zep{k+lc5vp(!MZCvh41KpmM3rhO|*b4q-Kq!hG%t?i!iv{^yM{cG{?ia%vj!&vxI- zDK&&?L!Na;-v&>7tvjPi3shF3`jtx9FEwwJtLCJ}lwSv_DuZxEjzP*F4W%j2i*gm) z;<^g%TQH58RSESQENWxxCkn{L?9tmRlqdAnHoV>hDOBIl&o!=%utashnc`TH zJMxpu+T%-h1+-yktR+QQ3FPUY- zNn@ECLgodST)CMZTQP!HkN7ahe^I}d=J|Wr%ap-bUIjyazYMRIbaJB}OusqGOR8WD z5kW#NDfJ0lkYUj#G}qJfR?g~>s-|qwP9pwJ%|a_0`e9S?z!BBds*a{9cp2;O_acC= zhOl%%FXUcC=U}28ukTUEyRWS>aB1~M8A@J_r-R{|O@el+7&`-_b%JWQ(-1P$+9p8N zG+FY^%ebR6{BU=#ouR8>HpxuWYq*;``2A=SZ@TSWTif+SC+MpGt#XMEPfr;-sd%0Oe#6(&dC>#AkQKLBtHy9X z@w?q;S^zhUan!b?Dot=>^YFkBdo)ST-Ll2_F!07ZJu4%tiVy$UgoYu9a~fkyObbuT z0w-a6U`7)yKY28-zM&(;hf}rsR~q6na4hDLpD|f=5dfHK?>+R1CP($1hpX zytHdFsgM_75R9q#ATj(XFEY;05V*=&dmUDd0 z_L|(94J&5_4teu+_{}xWX3i>2sXQ(a<_x_cdSe$SDb$rE>i|pi$o7g4110ITA25SH z@BNg_P6-CfTrh%4jo~Q+{EO!|;_*&TzbLeB*A$t>A=f^HupsASYl1h)Tk3x2veTeM zzomh8gv}j?jQb)nUd)ir`g#3XR@B!xd6;zYc z>IVWhIm)y<=r_O4&>zKlIG4H11(XDG%l}Z6GTU+)kCSv8b56B6+6`#ZrsFc~gwtf6 z(>J^d4NQ7nTqQxO7BQi;_60>XA#wveMc!7F$f_{*YJO zhJD*LRpIkJak9n#`Bb@g_~ZX6N{1$@ht;?}u&46uiLJo%cm4d-6tLF)TdX*pZUk@t zORV@(I6hdDj~U_6`hRK_k)=@uU{p0CSos|k7M*9(Mpw0$DTcT&zgu{S>b~;5ztU*b z2lZ%zIazXqp8ca5-7!wn<(9TjQBcXXKkoOYf1=_RUU(O!{8Rypip@MsuiWWjP(NS=QQf-w-pp4fLuWyD12{TG*7p1q-b;(9_n-EgLhxH zxW+sABmD7Pk&gn()a_IINykMAG zSZI*6A8^!c4B^!6yhN!t)lU4m=;^sXWZrN`RR9rBq@z;_w`UoL<;orW$`Enth-`H? z^$mY+ms}v{a@*6CiZ^O=T;Me(UfagCt5x7+BmLn{z~GvC@ln;2F)Il0t66nu?q zz7&yvnd#;I4a8gvep^%{1p9{RsIe$f{s-&eVS4%0NskKLM|4{9pUNcZ>~Kv`G05i> z4@q>o+tC1W^gRBznDpqo8?VwRzd}f#zEz0;D%9k*-nYbm6SbkYUUEFH0|rmc~RE z+rzeP$kt^9N`Wd~LN}cfJ!(<$a((`Bc~8a*sCsP^x&`Fz?N-TjiJP8$G{SABbe)R!oYS0cJUYf4d4Fidt@9cKbr2^ zYNu@RpWF|T@>T5S1$`3}irm!b zKv${jI<4b!P?Fr7M-Qw1{e$6@wMZx?U3LzGxfA*tNKM-^{0qc8o9K5(WTk79sn63u z5jm;GA}lx8(Qd)lIII4+nP!|0bi2+-i$L6B@e;jL>ov$iAb~MJw({~0y`$V7{%O9C z^T5Xwkoha8>h!8@=e1OZr_v>fJ#Kj50-T$(d(4^R2G2hP=2AxI2v3NeuGI_-ylOYZ zWzD<3lur4aGb!rVT75_TCGcdakbr+ z!)b4@^ZP^%$of}#yKbVuBKK#$pbbO3;HV@w6-Dtofp|xBVA2HXms=Lmp_F@Jf6~<; z#RjZ?5+Rnsbe1NTj0y#p0h+M!btwP+@e5>6YpwI+->N@xu~#g4n9h7kDb606wSblK z=9VsWpEY#kEm3C$*TwgZXX6HTCK-Wjtl+}BoAj2FdBl138;Z>LUrNPPk6JPEZdMyg z*;;J{h1gOuW=pHGM~C_tS^h(z=22^!RIs@N#5uTN(sqmf{>t6pn!@iGK|-ra#=bnw zqeNMA1t42#)}>y1ZhTb1n~=lD^|WB9p`~`zmaTd1yK_YLXy#NyFGe^to;KyDQx$UK zZG!!wNM+8j%PqHx!+V_f$D9K;uo3p)G;wj_Z26BDvgq$Lx(5;@Ba2Ol1I_wUNDW>% zv44*8PCtUf4+3_j?dr|#wbc#KC* znv)(@I}<`kBs)b94w$Ozn;y)vkJ!E_VCHPP@g=f z5i~A8m(ZYyevwCH2w@Gx!Q+dnGiV-B@#ebLo}t(MAK_ZM=?We}+HkF5uOYl5!VV2h z!^DD<8BS0Skd$lMaEytho%HBehcRU!GUkaAN}-5`JU=p44Fgl6);}rj`>ih_^dNi| z!d;&9Z3ce{-|vcjX6IuF-RnxH6zQYf-autvUQ(TMvpN9kx7=w`?FYSnt z)Xmi%5=N)*h#1=4`!i-j8-zO!_$kT7cir6;W@xvSM(vrMtj)~RE)y3#8ehY6o+h>N zZZBZao|pZHEJNs{Bjv)N1pk|yFa7(O6H)GjLzG`FK zaWFw@e>i@>9z473NNN~HZ$K~xFGDz6%6{5|WM zK$|rOKO}5p(7=ARWQe5Qa3E~Gg!5Tv>@By+OwZXNwDs^e3$Qjn_tx}$TmQhEc}`8mixA4XC2wgg z{xOX)ZU`Bm>~oL)gJb82ZavTbQP}Y12iYY%WM1%%BHl;&gQxOxA{;9iunal(jj)-= z6|T<}_k4s-rvPT)Qs>?6S~fy;!U*Nz!XZyO?C}DP(8eXzLBT~;&L?h3>cSJZ;C$dC z)P_xuhRjxJ*x7^>LAhoo3o!AYREk9sO-EYah(#J~nluBP zJJmyoc(JS>Md{X>b~EuiHf#Bu%q(y5OGa`g1gWA#+x7Sxx-!H_zk+`GkaK!S+_wa5 zs``Lev2ysF=6_y^T&g_jL{}=x5;vu01-jvA74_+|zSqJCw!TwSUX?K$6OQRd(i;P! z%~3|l9=qR7kHLN@-?0>+#%}{p_N;-oI?1+Rbt|h&UiPOk0JABgqB$t)sD>U7|`SHlrhP3m|*q=C+C`1m~6b?fD>!^D6uI4EnYizi&wR6IVHT;+ZczQna})LX$?(g;N%oWPj; zqqFLRZSIMiOiG;JN;FcPZT~49`ga>chOuwt^~b0{V<;-24+#Aphw1%+l#HWGc7V#; zE`8?K8?5qh!nbni2R~fmsy?gor{)zrJl=?9BMW|kUcKxiOscz0m?ng#x@AU6vu_=XAo_HHXKpxql1~~- z!M%Htwi8(%0Ki2MsL3fRxg~&uZ^ws$;$+yKh(W(Y=vo)`f9pxL@FfA(1%*)E0Ny+! z#WwLg>&?pmXU7VVs%ke%#vEwYvY7DciD&%EfrpwOGy-&`C>6g-0ov)% zVur2NQNvn*@guth{k(^06U-qumq;N{o1e@UB;|(+x1J)uWHX! zbCqo!fej)qWQDG;e9g=R&;j9!}O{rwdKAlnzS56{9N zK(s3id}NRylXv0lEv&R{Fi^c~@C~PNU;G_EJqI^T+)>f^OkYH?fVlL$pM*(lypU=Q zMzH!maXU6VG#)Bjxp3DgQAB27Y>MEpK4)4IL@C=y*@oOz5|qR?=1sD&kd|t3ff&-P zXu+W+vCUnd7JTZMQ%91>YxM5uEyW1aW!H5cncF6k0Jy*kJo34-at z?e@Z+|9RA8T+uwRnys7EJNK~-#f+&kAfwQ=S-FhbamaU3BVRYafy@$tc#K?63!1-# z0TC2yQLWy5We&A_ZO{p5{v!@3Vw5>ua(i@p=1_)(T(h@4xf4{~Rw8NOH+yZcnqjj1 z(|-Tzs~Pp^5SqdH9QBZYYA*g=MNp;d=_M{ZGa<>^-p8)~;Sa}wBkSvgw{*cP)v}J` z&1RuS@WVS6)t#(KX7O~N9i%jhfda_wvYJrL_7xq%Hr+RVU^byoFdjz4n@k7LthOc| z6|e}M zOG3qg)xD*f6=^MTFVzhIpIYQ6a#vR}ENp()uMDxq?BKW7w7wfFRQr?vE?!zZ9)ldnTCI zz-`(O3-Z{aV@jMZfbCeTxVLhS$QW7%Z0}w&PaY1Gm{hE<2&Y7~vYiNSr-XR(t&8&e zWmCe&%9e8QgjrBZ&}WQ&XE*^tEG5~4=aS$vs>7Tyf~iKr04Y=~!U!`g zVGep=qndyx4o4&BxM|KtZLy^eQ7NkZnRw7{c2>V5%cGjE*6=u4-=-|J_EOQrNW#6# zaht%b)aK*1_^1_wX>)j3hxlmr-SYGV1izZp{KvDz`DmCCU|i1v z-{Tx{;RSuG0!6!ARf+K*3*{e$B(GfDkYPUtu6{T5Y;g5PvTQ;ExNd(3N)uPP3rd_d zc#naf$A~jYu*5EN5x@RHqMGg(lbz1h2F^iuvSdg+lc`9@FQ^7}Ldh?3Hg2hx_cL4S8pWakPhY#1QpHrV}8horDmiKY03Px7-l zS4Tjw8zQ=Q@FawL5*Kn{KQg#_uJXcMc$-J_0Qc^ISx7x|cyqj%uoqT;LOyIM(K1C& zq(FVgJhn?wg>3qt#|rV@Z#Is(dQ*(2Hd&sa{< z%&UR;l1^Iyiip2(Wck!!$35G!BDHh-jD1Q``qiI zDwAF?vSO4mf6#qQ&qa@02pgHmb%j~}AWlT&hdT28*aOG;ya|on2_0UpWYJp#AwD9> zRRU0{$V6uo`Vgo_)$2p}u*6c2T?{xcfbyDRsX`T{CY9uNO!53XfJcW8sr$QB_FNZPn&3=k_zqhyjcuG;4z=?80E#nx!Qo2Qpq|j#J75}wg7}-N^Agn6 zs|^Bh(@kt)A~8D(?ib!R3JA}3ez}OAC^KZqIklhDz}wj&g^CeZ=<@qdm z7~@qOw+YbJjgI_GVduAMwH*LsNs;7Pd3cW`QH>45&+$Ub`aHiYogJE^g2(9F&5%i( zPKkTOc<)%NcR7y~tv= z;PL*g$#n=|3yE3xCiqap4qCNMdcHnV4fd!z!+TOuKGUyGl)~xC-~v$uRt2%smG^%B zStYJjz#h<#1+~6j@PoL8m%Z4p+Vsr3AsLa^&ql`~na>xf5dsH&J_?a04nR1H?nRb^ zy)0L~L3eaZg> zKF~g#iEbnDV0@8?E(hIDnLtmy}X+$3gs|MEHjltNl*hXY<>Ql z$;nlMn0CzMUEh%n=Vw(B*!?lcK4~}OndkBu>V|yptdEW~uLnB9fc59K*X`L6{4Shj zHgRRP^^V!x@edCJV#J zDC|<9FmrF%fPoxn2t82l*x;=xy(#b371y%~Pu~rlZ7%kjJl9i^#vYyzU<{tl zW#8yt*=YHnBR7B@@3HX{8^@`5OHc3Kvqau|?s}vt=_9irT6VvYO%BB*NPZ)SSlAiM z8Psvy7-@@kZaQ7?xmO@zZK=B;YV}uMRf`fSI13q^H}XgMcHYpO76}6!5B)%XEz4bD&O@!B%Rl%ZIt=)q^l`I#P7gfiXn)3u{M@-(%N748 zTEL^RefE)(u$Xoguj*1Y`wy;f|2xw7c|C#gO0^xQDW=LSOjpe z9Hw5q*fjJ4ko}knfd*I=Wqnjmg?v0}a$M~661A$=(=z|hn(=S{K#3Tk#y#;{(~VS9 zuQZ+NfN3vF90mPuO2A|11u|_Xs~a6>p1BuM0N#z)h?a7Wgx4K%|X5 zV6H#>LftxvVh|NTQ3@96O_JZ{1)v0bQ9ZPg)4ruXsA)|_r+Ce{|}rlLsv+PD3TKRck%*=Qw%zR zAbk9bj$+wRYb~hT&&)-rhXY!wL}1_0AiqC_u|qK~{MQ0HC)@oj7~{$=Fpi?+GJn;?aKIK~dZOpLk6cc6;x#UFlM~+B^lNH|0UjzD z>aln%P18AttV(?><gwll}@zebt7g2XBe> z!ST``hnQHlX9MQ*G~`d;RyUuFBH!22jj^mhqb9R~77i#-uZe>Yy4Fih`;ulSx1Fsc zP@eJv$cq)Xc9xAM-sXrWK1CDN-KH7`aqFvO$H}hkQD?GV3nz<;i@dpu8&QxH@$z)6 zZI869o5DKTI>wVMXVTNZ1g%-Cq7r*EEl@5-_D%iPQL1Hxn7_!G#jlPlmt6$QY*HP8UAG?wWT36Go4i> zDcF*yBUZzw&xJ;K;Z~y!G&~%ZxIiVr6rsKlrvQ`zdgb3*P5HPEoT-=d6@Ku9FIZ%^ zf0IYizqF?U#D}WOBF=XnbU1I#R1?Z%?dg$k!osDV>^x(P@MIJFm59H%fDmcNYTvN> zfeD17H!h|h$ODIpMuW0TL3somIupbo2N8gy6pBxm`mFpz7*g;K+Mg|#nVHGM7(&JL zGv&+@dl3v-b19JIoQXv6iSX3q56mIl0U;d4agmrl5Uzb1QIl#e3GNk zoB$ARL0a|sTq3izEoh|~1HkLqN#cfUp+5s-bTzo0y&rIAa8fNYCa_!+>`~jNK$f$w zpP*W}oq2hGB`Yr>wi1La(_bUhS_fmEEJ5w2e%?88mhI0j*=dkSoMSO`dfMV%JZe*M z#~AsPZ8luFaQb8iea}@d64f$j&53wOj78QFz=_dccr|nP`nxJWxMDdv@o&I+S>O%e9FTd0Zp|n|k@KhhO+A zXAND3uW8!?ckgKcacCQimw4qRZp+*OOqar&#&vJ)j@C=sZm{<* zaEt^(2VaKq$>XO^WYmG@V5ivR=RpB%GW&f17M8qkz9xk51Q;Lu+Ee(Hj7 z<<>n(BCyYq;X%GO4+Szv)u&fgpu zP}%eo7#}GAnsExXU+37!qgGju`+FyXczLUsHatoFH;IM9 z^}p&5185L^gzVT6i;0iyYV8RiT)~yNn(cSFyOL}Y?fN?Pqs7Lipf}YL4vpQG8VBop z^J*B14NA-;QC+zX`g8c1$;oqO>Ta?n`lhM5(~CqD>ww|xsCzxFS6c6)yhQe^TO@Dy z=^vAQx6jnh4Od9NEkX<+JNjn6Kis_(-A+?7CMR6DdhzHQY5sk9lE$*qtM?*S|E^Hv zUw&WE`>%7Y7VD`JMn}Wj$7k#nx2+7&uh$*DG?}|Oh;jI@MSE+5gk*~_PDjgC>~yUX zcJ{XI*}GO;>jG&wI0Q0tc_>Zw+O1av1^15{2Ss_JOpXP@oWx_l9)dcrJW_kKm4WY5*84~Jpu`TT#R5rC$KJuL|8vJ zvkQtmyiO+dF}eMjnAy+ zmGW4JZZ-R(s;ga{op(zmfg#S-W1cDY^+CaIF*&&M)!epoB^IymblauYjWkt$VORSo z9!H6czAr#b)Q-tEjx(lcUkuK^{ztS`CAMkUW34NR0Ne9iPK~a!NRQ{~wW?fBi^V0w zt)KJv$b(939j(mT<%nR@Q~;)|p-{+7-$N!{9?yd@`161~XqEf5H1^(6^6e(hXs!An z3hNb4N|M=K8!r56@pdPaaa+S6@6;K^QBXI1b%djIX}|j*azbV?UVDYv-GMvE;^4%P z$D1(^E>lV%V~-!mQ-jh(qJv?9nWDbM}6L%cx9u*}0W|;NN`8HAC9x*@f4yqjWR{}VmU5w%3xDDkyn@FY8d-C3Q z00Hz9?UYn#Lso(SsSeQLw!!3>EvFEemarm%aP2Li%-#mEAGiLt*aL;I$CGUq^4qvJ z;YEAqfv!1VG=G}K$j#VB1|)YM@?MGai^Y9$KaEPX4}bm|lfX%-&};!F(ASmh&lK#) zW2YN{_ZDF#T*acQ6dcye?^$gDewml=t%MxF|lX1JJ%$9pb-mJettCZ7#RDV>F)|AMakgv>1iO@?`b$S2Nt^H8 z3tEO-B;;5p4!2;}>?(4Gq_PV~_>&YWioF-kYoudNLpt%54QWymfJ22sI9js0EJj>& zH7Ov~IG>Z#B58f%L?y(L4x*kn1Znp_;Vje4IMy}<+?{HUgE(@2{y0D_jgM zS?ubAY}wQZfG$YKSgFhxUIRiM1vHo3SN==adnQcLat`B}S-EUpN28Oc2$m56TnIh@ zB)mGwb?fCrR?uy%e*Nr5k35JB>VJBlP`2V13ZsjS()r(LPT39qtn7<; z*+HHNUUgc90NRccI2`GHjE32!YIk5Ps)?Bbe5SCXSOGgMcM{}Tk7G3E*pWw43zYpFgCq z5_eVyg<eryn6KNCOZV^~(rhBjVe2m%GXBpEcH%$P;Po)EQAh$opkPFa9 z$Z?SPvhDvu>0A$k@j-PeZz=f>UV0fm};QO6}F_f&zZtXf<)R3jEv8ki2qzH;M zXxzSObe1=f^s6pcw^)19pW!6FUc)w^R%xQFD~%y!M%U#XbLKa&KX1wsM`WgbJjfMq ze=U31LW)P-;xBTlUbi7_LIbFc2n%L&7k%}ZJF2En4kE6JdzbEbr`PXb97x<97=DT?YvJ%@cBZe$a{GD?hqX zRVp;AH&JsL?$h6TYb;c7JL{Zv@8k(gc(kN_9)OqL|Z-{Er!O4UX>2$%o6kX9xYgo2%&vu+kBQbxY7G0 zchx%~Z%&qOX`0BUJ7^m89bnLwCAa*&gX*Z^nb%Hm4x#ev$X=>C?9VcKU}WUk>Hka1 z@qtyOHYr2c{h6HnNHh9VcB67x_tP_#S~qTS008Ivx2co}Kv(DeYegl2SSoLJ+e#5Y z!xNHOB^_--!lf2IrMlQi#C@}n#DaAj0LJ|I7S-Nw|9a0|&j!zazxuzJd+V?$*LH7M z1O!wX1gQ~0kdTm&4r!4R2@z>&6$GRP5J5Ub5G03m=%E#qknWBFgC1%ShLV91zH8JK z``zz%ynCMdPfL|6I%KF5(p;RO1xNs`h!T7DLh7r-(q?kcd zj_(G@PVWbR4NZ&Rv&cFC{mSa|{agClsz}ys)BU7-iSN%s}fCtMq;3_6;ND)@sT87)*Xn46j4sM`;sdk#iKf&dvDUcEKfY zzt*9hA^!W85}OJ~p0}enC8fcrp~=LJ2Gh`NQX?+!<~d)Pok68-TSh$S%O=o>+j{xB z4fH_1nOQdxJupb|Outf;DOmA&WUiI35z@A?@h~{;8?6R>>*bLAP z?s#Y}wwb)~&~3jjPbV}MK4JEvp{u98V}SDPgS*?XiW|>S zXL2CN)6d0KjKLsM*21+GvVoYEcK+;EjaR zA1t=)toB?)EuBU3Km&rNj^8%9PE03FTfXfZr{q5N`t^4GJaPC`rc^~Q9T768o)Z5y#sOHmRqB-%|#<}ygdf65ZVpDeGjB9V$vJr zkUe79`<$oMP`b9Twr_sjQ{Gwo_0Fl|0+C?9fKe_}Y|#@BkGJXnoDZ&&I9W*ekbsdz{J@_&!)IR-lNFO8nUlgPgjkOww;tju+)DAcx+wbSg+;7T1;TvPz<-6_sAeS} z=TPi!-f)nIsybF=f~85NI)|6kI*&m2J5{kGpI6c(kPO?_BNy0_bEg~c@he2J++wiN zQJ4}av!;|DcN}k$yrqtw@9D|)IU&6_#1SR+el9y6_VnELd=Fdf98IX&_plKhG%bDF zr`_xj$t&-+7&~(FmNe8O;KyE7e*w;?AR=eK7}KVWoflmilgJHrYi;m^Ck zYsmDl0gL*)fS>*MXDI_-Bb-vtGK=%yOp_3vK5Bs+y%@!uQVf< zv_TUt1TJZs@A&osPZ3)J1q6cjt|Z`0mhh;~@KrQ`VI~i|>CbQhs@2g8fDD!Nup9u* zlvri#+_S!^6iLA<#UFOdn^DwWcOR6}O05)Q-DUHHc4rA;-#xU#$DKGewq*D{;}){0 zuV8DZ5ZD#_xk2KNaSnNkb3VJy5TZtmTm=vIKvUl^eBdK9p9d)7ih&bHUd(6NzKKM@c7T8!Wy=N#pxETT4;6r@43SE+(<^fL-udM*f$se6o z>KZ|qH`3@|OS}AWRz>6@=py=-?_ZhC=})`EdbF{w)0}#IO%}hMv}$8ed}q1A%DA#4 zBI}ST^7w}(8N@UEdFr)|HKF@cQJbi{BZOyd2a=P%ygy{R*Ic&-m3Fru2zXLn#d%Ux zb-#lf24XW(s8Rj%@`29>uZSBj*H|qL`YqCLAD=+J{8s!Py46;^`L)qDB-YlS+N9(7 z$9Nu47n)xD>YG=Z<(78sQmxmH(QHJjkK1i(9{ae*Wo-TqxBZCsuiO^P)jdAp zuSb7(Y=V~XBc-epZjn!VZ*rtzJfa9!Jc8R1Y6|t*0v@ook`IrbJ*FZt-?E0wpyv^| z2tN5QL2>mv4O{nbf0pR8;>nns;iG87?Tf0bSG>DO)jC^NOz`ZooDa$e+4AP4U`-vr zTVPy?Rjv~N2hs>gXJ^DuC?RdAs z+`)BJPwhEas4V@-F$!G7ULbt$ZG|la-_U%OauMY$2HPi~+rKK!1D=IF zw0TMR)y{VG5m;Z0YqO+|iVKM7`JY3ww@F(EWvX=|L^{QH$5=f`pb2We%S`+? zzRsLD!xElD=t_V(*=EY{B3j_%Ycoda$z0d$I^_YjhA`BYl2LEhBf;&HuLN1k)w~E6 zCfKAmJBcbQHNJ0#qZ7(!bQ6o}Fp7lAbE_QlLc zqMDV|ig|9vZx=}EQni3ng#*l?Rt4gzGvW^=^p3Q7a1b%a(TittocII;W8b;-fz{8= zV02Ak&QqC+9C4Wg)spzoA;!g-3ubXjV;b_AP6`CeIFFAC+f7lyB3q;Nn4)erO*&yTGT2;yXnM7*F10%)V@mtj!-6kCG&zev((CTV}Jy}jhsA= zcSdwto)Qq=*z=scpX37eDkm*F-i3l$*%Dc1c_%)6%9(d1RjGxH35wqo{VK-%&AiA< z@eT>lz5c|%td>G(FG+l`SH-uV=j-_)V|W*eiA3OgwqynYNK1efdDgUeNz3zN#J%)K zxbC&>mU6qHUddqk_f@Aoqa7i2#kzK$%>O)}Tp^M(Q)&kF+2vW?gt5^ziH1zidGPH<%c(Y+sO%4)7`zJP0%Sk`ZR*Bk5?Ozk_iRXHxBy=~kJwkL}H zz&$GhIffjHxdV#cKJ-d#U? zFNS((*5mwB&7|}E#yxWNjDosa49JPLp(58{-m~{3SrsrG=V}+2;mPI)9~IP0ofGcv z?bDD9)lMoQ+NpuiZqGw*Zl$-E8tuWgsPCVy=&1@rC9xji&b{sbh_Lzo8Y~PVYM=so z*zl(fL+@slFG=<37&(i7q@)7ti@h~Q0`olhK)Za?r>Lanv?z`Jh-yG|(x;)p*<`y6 zp6Pt}8=h-v_QlfUfC2?XFXS5_R-{IpryKk-U5THszY69$jaP=^G2CWwjo<3xoEYMq z0o%rl_KzH%mVN)~yQFm<$WPuX%#(H%z%x?B-dWUlais?HmA<=v_rA40Kv#Za7!@Mp zDte%KC@(i0-?8jY;JL)kF#dv2$&2#*)!bG)y-3+TBnPODLf7t^kaK?xIQ~)5P73e{ z3b3bEZ2i&z2w{}Tc0qK|2QMzuMcL<;tN?Cv-V~zMMp}vVqEhfCYc_V5-?l*CIl8j zQ8)`f2gwpL6FYEdA=xX_E0J>|`gD7s!746N%6~C@`4K9Po&nGLn7&ZTMb>M}N4#NwE^?Nk zabG1o!}k39Z*@+4$=}9H?kaeIRjmf#+?g!%1ttz!=)!Ti7Fkw@0YZ||r_w*`v+ zvwqLEl1nuia(+G1>opf4(QK=D{c1joO#!C|kE2 z?J&lpbHbYUp+wy9<_Ae?fS00nYM_Sy{D%HBV<%slV2t1zsM?>!$EDa9LwPU-5tJU= zqunBf!Y7>~KHh$h5H7qbt?I1r+h^;X|Zbza+Oa5R6@tx`Ib(UAFtKIh|h}o?*Xc z)|tz$MM^rs__GD=shd@%J_d72g(r4YU+0xGC}Y-vT!boEkc_|<15jvFS?K=e;M+&j zo1Gl7L@7_yfl9Vvu-eJ!N>6*phqZQl31MesnGg`3#$$}2C&Ab0gZl_Ev8)vOmmtIW;F5A-`;UV zvB^qN8hn_?17G4(_Bl}b^v|H6&H`m{uYqW5rlLCf)a$ijvT02`jD$LystMZ3Y1eU; zE(4=`^!rnBP0!x&6oBjGM$0xz8DBt0K5gCkD_i`J^q9XYiK zN5c&>)anWBX|l`+3MXR=p)eC)N3{2*WdfzguFNV)lU#NNL4{pwjLeo|2h+5ud;@9D zPPZT{R=R7}r&S9z&fjr;;pj4TmkJu5x~=TqAo zw5rf+e+BV#9FW60@Ml%7optcHx=_dAgc40#mISjm866d1LTP>>5jWgZ zLQ9d(c2=91L80l7oxO!ntC zn=>CRK_-BSxR*1imoLRsTf*Dxto5BFvXWFrUf5-LtM<46MMDS>l3p-}$8*F;T)dfl z^^*Qj@6+#z4evn-l*6N`1)7sG)d(lr;1JO?r2B|g3qV|ZwlrOrvqD3_tu1(W`0^}> z^2nr3ujy&G3JPwakmhHBZhpM~|@)onmgq`r%BYo0~`52<7vJ-{2 z9!T@U@~GXu?`y&rGWP}>p5x;`XTc#o4!ZZ7U<*Jkwbk0q?ofHDar9c06!>%5)q7nX zrbpca`7GT!&P2ZJmT!%(&s}1#dpft0JshvZpwjWt+dkuhy=zLK#VE1Z4S13gf8YfQ zx9HZ1y4PS40BtI+z}yriNO+e_jud+z;a3vgAy*^C&EXR)DJKIq8tWZM^nIs?d36tX z-=DtJKanQw`R$$e_ReG&QzRKD(N1(bIXBJaK6?{q@$%KeBHKPLu#cyq_t7k%dC9p! z%_}N)Xac?5%SPs}3|icEPu5e`Ubm_$S^`yZrw1KkB+~-WLcJbsWU%Mp+7Se%9frws zDx;vTScl(HN};046lTKDDR_`QMGZgG&c6o)UFd_FNiKIZvOL(c?%jILrwXfp6+Ew9 z1{iLqJ6FE~QffBEskF;uz9W`Wlr`=*0&mn4VXgGlLy1XyQ0V!9%Y%xIhQpBaBDOZ4 zpkKLxfH2izMg%(L0DlhpS;@DOKtkD~NWz+c7{QmSSAM8G>EAj5st8!1oZkTvlVH_@ zo>+BFGcS3(tcY*}Oy{!zFdG0mBYXoeZmjAHt!HSY-1ck-0&M28SNV!3$+;ea|5SjV zb*_FgEw^|K{?Va8VZd*+Et$)s_uw%Y_d`-2HAqfB6d>o8*aXG{Iv+r)!RjS=#6=2# z^oUuTuFLz2DJdwLZr=KG@P7`~{%Q3Yjs49E0}*$q_=71Hsz-8Hrdl~I#M?3V1 z2GspzIHK8d)k5td^5}xDBv$bXeSUPVoxq_)-|EiLtWHS-bgqiC(dtDiiDGE|0Yn{v zTY2683gY{iHwG1jgfCe}vr4500@A2Qu<+_flDmtlU1_+q_aCz(#U&Kn7s^P>iPBqu z?UpHN(jOGSq^1nX?8vJpl?89xT_O=SK4X%G!cJ<=QkhGollZ!Cb(qCEpa0aR#(K+` zBO=SKuvrgd(~<9{9xAx>(P(c0Y^#(71ea^T7e&d*H5OO~#{2}LzD|V6IPnpHiS+s1 z?==*N#(rW*)pB1Ozv3i5blcw^bT`8xw9vxKA0U9=HG3NS@aHT;6(-ML-kWE9S-V_L zi`($d{a2s4(siNQ)O9w%P(le{)WXC`xyE>zVFuuRTc+i{?X zdB*k8GHsQv0W?NwXJcBvH${w39zuS#VYlSb;+p$aQ1I|Qo@tw%R}eWM5mE+C3Eluw zIsf*g7ZB4w2Y=-|<&L?$B(v@meS1PxAn3?S#E;XKbFJZ6AIoUI$2q68@$-*MCwpju z7sRbs_|k^Z7aUOTHoJDPGT;lbsa8(t-1HYwe+9wWA7`0FFW)sZFd+Vx(Ebki6A8&L z-r{M`3?%O3;qBsxm7x)MkFI!Gf*N&sc8VrPHTpC(nr;#JAJ5=Bi|~}j$Prb6sbZ%V zGPxpA-7N3^uf7}U^&4{&#{g4cw5Pc~5(|Vg;)iL)peMfZDz*{W9SHjr>=~{irr9j)5G z-NwCstx5WgAzM~|#zon6r+z8=@xm56vmGZ|54XAab2y$*t2seSN(-*Xm=gER*H|O z?po#Ub;EIJo`5u4H`Q<^)yt(g##a#LFK46|Zy)UlEVN|QYhzYGC60TRXZQ;jt-k2^ zlDW;6_Cq5zhiWjJtdD5&HfSlmTgc4%LBTnH`9S;m#m5m{`m;{)R)@^>q1vHcoK^^Enap>trf?Mk?@>@JHap@rRD6x<@-@((0zD8O z3~I^Mh~KJ8eOTupF&D-m zgaRE#XR6~uyDN|zw1U|^W5r?SBD)%}z*nDb)k=L*ChW7bTn2RZi{hG(uL7Zi5C98a zz7X}Bw2Hja%$4d)^X@ws>|cC|Xr=)XESmNZR*@^&_Nb#&%onApLxt4B* z*If8#XJ8tnFuLbq00bummR)%FVa?~qJv8rCuI%@6Jd`NEeCvwmG)xA(h!|6=0; zJ`QT+mAr?X<0Gt$(+gGm(DM*6uS|b4vBM~t(LQ}^ot9Io&iN%tl-sqKtVFh78#!Vi z9DBXxYBn7vlF2zb+wno~mg$1xLS@iAFwh{gb6)9u|jp#YdP?9V%E~ zxto3|I=XRdO-9tE>6AS7jT@StuiohPQZ#=VcSwIXo7AF3N#$yuBf{@s?$bR z-8r#Av2a#sR;O$P3}az#Y^8>8UFciy8zYA+-w>5QN+BuQ)bO%oyH%U@(N1 zKi-z#{%(A?C7g_wD;Ufb4Xpuqxj4SWm!@8OWQO#ZxVK%+1t<*PZ=ESw z3lS1L4IS=?np*!1pg)@;t%lYEsXERR{V#y7e=IHJhY^|F_@WLNN{I%=h;O!Sp(b7_ zToc|wf(K#laF?=0#!KU_WE^m@uZCgU}!+_Lw=0Gs&e8XuVK4twdDnQ@zO@*KNA zkm`e$MKVaI5?oZ6Rk_aDT}BHC>vb8nNvj-|s0F)(*u8At5rgglvmoVA#}{sM$}DUI zL+6qRi9%HqbdpBcd<0UOn@FU0!p0-A;$%@WNO*Qq0YjFXMTe=NMuP(dl*$LiXYgUdF}*a8+ga%1T5Z7v4dr zP#JDk?;}>*0;=~qIk(pxBXd8GcVO1i{K`z+i;oou{{|wgNdb!G6aLULawjM(HQcnFLDrY(V=!iZ>M-gA}534%#DufYweBwaK(>2B!RX z>gH$hZOD|%vr6*wS2@A#MnXTZg|v=+4&N}?lc>OH zGVK(d=t3qoIwemuG=$c1O0gxjN<(dunBnptv%y3SD`2+fKtICgAfPBDmjw6_zVMzU zK#ju&JkoXn5=emwU|EuqgLSZanl{)rPkaQjVBPGyqu1pJYG+%s)vG`Ifrg`YWBi)P zAAQ50fYyKa3*!c|s)V|@+*xGb80L>-MufrM!@8ZGB6dp~KLy0|uHqwxg;`rgy<^d}~4N5Jh(209$? zhKEsP8)tAQcXu6(L`z5`nq`Lo{Fi8whVK9m?5 z{+hq>FPO*w)H{p)F8Hn%ABI4OLJira$!y3_6WcKEpOsu2yDb9eR`c zxJm5@iLnT!uoPfk7w%T8S+-$-dlR1B;)sfP#WM$Kosro&WucS(xqm6~yMoilR3+;;Lb)jNgL{PjdNbr+JTL{-;$V)lq{cxO9s zwc#p~PI(3S%%vd^@mS&{SXfFUVINT4;tTBM@+5`A-g=MEkG z+gjM<_u}a1M)-~*Kh2K>Xh?p-K)A}D0vwsYSp7>`3I)MwN8mWX;fK9qOsk1g$(TEZ z(JUw3H}OkZ_Q}ttQM|xYc?Q~dt4!Vv)mzrhTNErdZp@*Z@by-1?KB3!5@&!OnVfDP z0ff7ghYri%XYimizHnlT>Vecj>FvWWTORt!gPd0VX_Axa4pDew;5pm+h>kq@M&q&n z%sqXUfpn&B`>gOp42r=V8s}G{4e*%v5ONYjaFzIou{uQYwZhI2YH`otMbviDR1wiM zOdK08qwW;UDl@?vxgEZKT%tkYWNY&W?ys6pNb<)4x6+l-=L0eUI)Z37vkBwsOTzdvp+a=TXk4iDmKj4acm(wJmg$m!{^G(`{0=mbX;dQDNSPqvTqb`PR{ z)bI#-S^UX;Xp@*8n#@KF1{8Q9*Eeg486?#BqGl%jli-5x13-u7ZD!dV~C3A zVlj8t*E4nREpIs`&&Jtjp5xF2BQi79pv?A)Vqvj_X?Dlx>55vJ@7xz8ZecQ4#&pF! zGh%6L7Vk?c&9iIGi1T6^L3VTBEy)4P=xg`rgW|Yl-^(!$S8`?SfFJF{#qaki<0SfaLfR4Ga-{FFzMjlZuR%_% z`BaNSxlM~yA43v0#l#Qnm#B6=e}`jOgcq`VRB#1YIrRFg%%4KVtU@WZzU4<>;O?2~gw|1r@np z12`h*G&+IM@BMy$kVabKhs$%9ORXxj&10NJc|%mOJdG*pR6)4)`FNDhyhsPz3P9n? zXIuB37v*nep8UmOoOUV3BR7G0$`*i#n#HqBh=v14yh8!6Ox*4TBN7=t_uBr8iM-ju zUGS72Yv7-<`TPHmp7QlConYkG^82ia`JxrBV*ni$d0OYKyq03n2U}rd8keD)a)?cV zI)1~z1p>68`IQrLKi3nutrUDwt17)ShAWV5yOrL!dJvvt+&yroN{0@}DXcm}^_PZ9%MEpOd9j?YxmLy$Ucj=FFB!Tt)U$Mdtz!B0 znVV_07c);bOYL&A$wf`+%eC)-+{hOY%&@m9>iZxIv$7)Nsey9RS^??bWd@a?MMuPmV zo%T)ans&u2!6#u`J+W~OgbQPmo#FR{-}VRVtRh~c;dUB7M!ZFfV3%Ege7I2}`8soX zlO;keNoxuD<_U6?D}qoRRRGJZNJ6Q_f(4Pi9!85vtQ^^l1*|@ght*G7W*n3o`tNlW z0cX?0J$IdS4c9Wo+@$n=MV3V!>nG6%Y-3|%v@SKT6)yb(*uYqChmXb43{?O&LcWr! zTZ|yF3<(U)N&W0;pcs<@wDNL*-hp>NIKh+rf?%#QHv3w&@h|wfe)mIVAE@nlJUGDX zHM9TiYxDqmKc8JW&9)jV>ZI$}=tG>D^H9zY8PA%tH^{LPCSQH9yZ|yU3MP#BcZ%;9 zNn)s@BU+eJZ^yDeiwS+b%5gznwLcd{Qx~+iScEJvvje)gi!l5fuuL`ScrWKc6O7ZG zCR;*^iX=f>kbu<<P(2qZBrsx$MV1JNaBEIxkk zIyG`gzG(Qi#%X(>&*RS65;pQjNx{(P%P%#4>kdob>TnQ1Q-{`rZpaCABJ)cF9iOdE zF8<=0x+jf)c8;2nO?dJ+!)LW%v*eK8woIy%ldb4D4`0P`OI1U^;)Uo zByGNp%&Bfo}PPmnf$n*~NB<=T( z;94(oWmjJ905W*+G`MOU1W%wPV;{FWh#Rqt@3XfKo*x!*$T)wc>|=~bw;6T>+FPx? zK{d8Zd#M0sR4eA{B|(?17plf>yrS94?H7kEKPQy_Gl83u(=nZl))gOAC1YeBtAs*kjQl_oei$v`P^Ody5ggbt5gSe3TSH@cGnOd z%Dwzto8g0E!j5SlE|j=8w*@);bbx03c#XLyDw@ zjz1J>G<^cKJnUAfnjo^Pgz&X6iWe^-5A=&flS>WiQ=&Oreai z`6Rcx^U=l}E7rkgzO$gb`6|Yb4al%$~3d^-YT0^wTxa+?`4q-7#^SeM0!~sONHzIa*`@DgtPP(kq zDo8Odkt2*MoUqHaB=*=X+)(2-cgEz&!P;pYwERs`yMKfjFZ~r_>?=bmJP7|mY0Q^| zLe58;9RUZZM0ZfM4@KA+adeOQQcPi5>|Bo1i{%;e$7VCPWr&>G7Kcfl?wR^VnF`c% zI<23fus+yAGTfXzO~Y|vs7FA1JBeL>#bzL^Y(SEFF4OLctZ?Lc zIzbSF6%to+-?b@LZLQz+t2F2{fr#k0J?y7Jy!bCsd?1(3ufrK1U=aO80lfI4 zRTR$uJiF}A@v|r4_uKBVHcq1Q0;Ik=66lKQXR4Ze960Og3$j-47MI^o=rnt>D$*pi zF0G({Dp-Qlsjpnit-#-0N_CP(o__E405GnW>ouN$=IPAa$Cw}FH=YodNac(UimBcb zS!F}BOEF-EaSpw`WpV+_gS!}>sW(qOT%C!csAX$+S{?iq@1(2C5i=KuLP z{`nVW#dz8+j+mVLluF`8o1GzanOMP3rh0p{15W8P9=2!T8B1Y4X{||1Ha1)IQTg`$ zXN`L!wzO?#M6LP)i$>Zz4q0*y%U)#${8*!kCFnv2+ebCoGjy7EO^LPr)No)9%{-hB zbumk?W#kjd-+-JpG;h4Iw=#>gOJ`%bKzcy;rvJi>ib5+DDYi$oJS;S(dammfq_0}g zcU|~&z8MIO%@f3j#&)Rlv*C>SLi?!=lG&Ks5@M+3mF?yTTkqKPm_m5nyGMlkeZjhK zyU#f6Yp?|>?UxKplG*7mIwn(+Y7pO14Y7PRoKG79oLOj5&c8k!yl$%C8oaftYEtd! zVPPYAMb4bx;s)WVv7Q`YrF7ewYN62hp3D*D$f-!)=sam%>Juna; zOSmuw2T{j{Dq(U3Z`2MJb)8H~Xl$pu^|@c!mw#a(%pR<4V@oMi$TiTb|=3{Bs0;Pr{2`-{-c0Y%FO)slGlq#g|D; zS090*UZxtu&3CYg?E<0f5G_18quO~e&k4ub4T_&&y)(w>_{82Q;%WKoROIrg{)KzA zI!lQepGkeJ+yZc~q_rz0vDAxprP5aBbZsiIcHXHgkJC??*O4<7m@yLc0@qV!Qb8SYbLIBfxQ8kZjm$brOC8PORWqV52_6P(~azg z^DE1BWRyK^N-2rmlSbHB@;n0V_N4YM{2-JJ$zSmC}dB_f1|?qg8{TYZX9etA&DLP50==!Hhd zX@g9BiKHhh+Ew?u*;&2A;3oc)d06^0tQXBuXuSa)|Ng+-z1EhD{oYsR)+wR22gI!o zwnf#CHFfyg^pBs5k~|4>90(g^!v07Ipkl z`&Z{+C>w#H259T`BOqzi`*k$CJ95YpsD3gBmp{%u|Lg3DGN1f8E2Z@D-JK)xXbHa* zGfMDpXofO1sD3s><9;qgQetwVY3ix6x)21I>M_)-Ysonu_FUManNDwI};^`)NRNugfqm1G8X-k&Ksk^iTZoUu@T?aITe7m<}Z zrdZ)s6{lFQIXbv^%jv~75m#I`;>=da`jZIIkB51ZmMylv+jB?YOG=^hAMW|2aSqr1#%mRGM3 z-MN)*%%Uzdd}f6P=}KKPf^#^#gWM#glTvP&iWm4~TBgGfLYa`=1Db^o%nx={UY_}A zj-8wcRj)w`sg)U+Vc`u68oT>I9XMBZPH<6mf=A8?`#-&F9h{haMj?# z?@4D1Q8+|_pL9aT1OE*#w?*%`DDewNxf$j`}ppj~^LaXSANNxXQ}-BI$J8Rf7HgHDLJ zDCpnO30>vJcS7ex)4Z;oECIvfroqU7y6}gC)4Gv}5V}=}f|l%)LIn4zXAqz9{T`zy zg*_8^Yp_U}_V!523CJ$7g%0*UgTbA9ja$|_EYPml^sTbc^esLCAGW`{gQ0XfuA7$- z?V|E>Q*JnQos@d z!NSYSEX`vdXHWPIvPU630RH)Ztt{p}v{7scFQB&dfaVWPD9P3{i3nxG$1~z&Raa5T z9LO^5??aWba?y$-A)^ebqT)_$(EI@%zv>S4vt;6}>fa}=waz}i+QC&F-E%VmM*Kt_ z(~rEcOue;swnEF#L+uLzWO0bC?o{N&2u~2(D`8_0vYn5D`B$DXD&4E4GMFg(i!*I^=Lb=sLy zf=hJA#z@wH3t9}+Kg>3Ydg}i|zoUC?Yj?st6xgCDWB8}>p?3K}Mj~MneUAGhsMB=q zMWz1QY5LL#DX8i=l8<6{uR@V~C=D#0vM7xzkgp@|)7Ae5ra*(#DhAsqg(g{A&m+Sh2mw(yagc%$LPEtP>ZYU%Xo{kpqp)dl4B4YDk9Z2M1H=omE|Y$rga+k@xK_Pl|P4fY%1i zSiwc8m@WVNX2So$d#1#sT1x0y8V$ZFzot_nlf%SO_QuSt`j9Dyx6-;*yn4d4`am>R z*NwzIOx1By-xn3;9_8S_J`dktwn^%*9!OpxR5&JFnG=l{r2wc}&emMfhYCv_aWwr> ztBSk)E_?ovK$iR~8`tKQiz~!LD!vf|DLoYk$(%a3PRdlPkyGd$OB&_O++W_c$udKK zP!gDi^!FrOx*ruaj9|SGWwO3MaR7a$lWdLNUB(oZic&@)!eG^{bG;; znpr-o`imeEzdrsK4XiN2l?ht{M6*L9yj><8AV6IAI>i5F^^;KGeYMQI(P(~q3Cu%I z?B5((=l+vJD|Yo@jPj|UvMiy^K)#eeHj_iJ!NDI&t-1oxf-N`0w(AHVfOom^$RC1M z9D6x&Jc7q}XJLuIcSNM)zW=Gk4#S28bAFH-a|5$!di`S4vw}0LG{qjm(6Xh+%U-Ue z=GJkoEax^zOO+kZq-XkWzTiIznKDHJFb?Heaz}~YXohaY8 z(a;Ez4H47nFuclOsk%M*lX>Q2z!kmh(W6OWkZM&8bzFe-1+a`T>Do2bD?jXyl(Zm^kf7Kv3q_ z!-WZVF^)$7m~>*2Rga~x>|^<5gYlWV~11v)-=LxbI3M*d*F%}bF(cZ?P^IXCN)BA&DrLfirwVJ5) zxf}|fV(PX*NlA`ufS`;@=C&kl&+z#^wg~Oa0Mo*|#&4NvXpb130U(+r`wv+u#(yIp zwK9Ie7hK1MOzTepd|_|T`j5BL{tf6zc}++^*yFE;kS%t|t{UzmU=Y#u#}fbF1vs z={;ng3&u{1!Wr42Q$8Y_PAyHu>>M69#RuD}gyURO`p#c+WXyWEWqsS<*ngjkFn#WUwAp+#Ycb5(F*au%ce%-8&z36aL#K+a_!$yHdXOuv&wO7 zwTaXfKi|YM$>_=>Qv6ieb_p{r39I*zx@v+Dl-s=06R8|Xigpr>ZEFM$?a**N4FMu1 z(Bd_xr0MFqLCtr#i>h?A6@V+ogZ`>Obc`95z#8SVyj!_)o2-qvjGBXExVbgY{ zNaRdtEbe^4Mu+M%io1&+&72nPl<6Y6~xGncOxjDjx$NCrJ4ajfY-IO6Uljh zdWQe!@Cywl?b|BZe-k!W@BS1vudY`A6gH22#Y^)4JHqB&`9UB=fB+z(c8d=-$D?{K zGb>>E1o>`<4#_-?dYx^Ii@n&5!N{=;f$THZ18h#%OeMNdKa`BZrMFx2Ikk^FV@(fE zToxBcTDQo>&hgdkbi@5{HUP&*%sEolxI5Z2>VLLo9?ARK zorEvB?;UH>#QCwuz34la6-~ptmpJu3Uv}@-meFi=)olZVHG>kLB7?pnI>o}8TP2AN z1}1dXkyMJ}jvDGVsa-aQuniIHms*%zMwbnjNS6(+bYQ7ha!G39asT&>-fhN#+CK>Z zi)sLud{@2oF?^n;v!I|)L#vwTow?2kt52Uttl5(;&ca(t1L;0!YP10|D^uMZxFnv4 zqQP)|KS#_5+j$NIFbMHIRrC)wD?c5v^PCYKI(4F0gHB{49szlp-k(>Wsn6eTmF3pS zRw>bond9eZ_=Ui$GQ?aC7|81qR#scIS zV!i6@VFO7wPrHt;Wi)Kf3wA9HHVnqW>ZxEMlv>p%M)~Ax!l0u$e7hVC2ez~E{3`fvI#M~(%{~khf6%d-= zqH~|ow$S#37Z~KVw|Rcs9&s1UINT+bU2|Lpo5F<2zAR3deEm~HYDHZKi6LCZjbNcSSj2jV2>c z5kzKpx*jQGmM0~er9u-}>ofB^8b*_eSqAWxF4xtU3CJ9w|c<_4L0vcVk(i9shn}ZbQmr)C;hOIHg5@ zlkLB9o&6vFOeO}{PJB5u!8T=$VAPv82LwB!!M@vJsHg(@rw#7per9x(vesXQIt0ys zN=ap4f?Ac5p1ZF|q)`=lb}{NY2LRIwLYvunF2o^Dz9dPA?RhPchrJ(U_Dox7 zXcm5*9?3&;P_3^|952f6quZ)y+GdjxAW@-*U|d~<<9IJBp51z@bp<95feG)acZ?pq z0UP8_i-0%$D$&mM`De8EXN;?-$ZjT!i?BhYh0VMU<%QiIszm>&a{9z2zE*FBuI{tN zJdgHK^J&p*K~)w53+uIPU?&{{>5v0gPr<(6TL}{xf_j+S$MAE<`A)K#XS7En+Ryys zYVg+w%T#IY$-b*5=E`6HT4+!-KN9phjVVdRK;$X@$&Xd8BCukjy$+xACYX|L)VjsW zf8Q#)HJ?#GKEzQ6jmRk9`TRvq6p>*NFqUGqlF|5WmsYJj0akCHei^ucTVGJtqmT~# zpK^JZ2Q|z1N*Wckod+u^7rC|Ne6(eE?soHn)Lq=_ufHK zrd_+Q0Yp(iBxe;B5CMAxBsGYLs0b)X4h^)3BoWD}5m3pXA~`fcKr&6vIj1H`PLgwI zVnYMxeq`pI@BM0@UEjO+)HzlDF(oQf&GX#%TGzVP^^70VSwWa9qLE`ZMioB3@7`IZX=)SAsHoI69vw(otqxz2A22Bi6)}4?yj7cO{bsh3?+vBQ z(jSHLCBbjjz`AP##M`uL1+lF>Px!6|fRuagCosFUafpTK<0N*Bhf}+AcJ4rH9*Y-1 z?u;5BF9M`qeasyF-w*n~I_dxPKRO6!p<^j|ymsw@t)lUUl9Hq+|E=M+BsKSyom7<* zA}ejPOeWd!eT)v*#wM}a&Q`cUf5I^2U~M%>g{@O=dDk#Ul(LEvvG|3i00*nX_V=>_*SnuM{RL~!By>yNYfy8*{gF7$#%yyUE}7n4 zcgjcj`}9+4DmKE;+m|^|{b!vRUln0~x=Ur6^S)D@lQisNwD_*1<1p`)G&4?`@6xuw$~Fd(XeyCzCHR%_rejb_oJVa z<7UlzmG3~yNYD6T*#x1+Ml+)=yjTeAsCQr?8C)WG$9x+kq4`4rxY9BQAorIg!ZiEw z7jQv%zqR{~#4-W*3v_e|Y*S`z)@#4jPoNa}Yk%PHzVtu;9e&wUJikWI+OmUS1ZSsH zVqAIl$rcpgCVqr!EpupckqN z3g5nio%3`rDWsC8gBfd-?ljv~aXg6^i{;7gL(e3&u1+f1i($wlak3n1CnHbXtXb!k zxo@)Kt(15!a{Jv+&kjpj9SNLjRU#(Mt^v4~0~A32(4RTXEMgt(hG*N)>w-x*M9U?CXa7{utb=mc6m!5^!uTi++7ERV`1<=O zt7XLRG8%OA3UzYQv()|rJ#09OYw$bsmmrRoF?w8HKK-h|N`q>`jaZu#A;0F8RqxeZ z%hL06+)hh=>$Wo6;=$TE;xs?qz$h{^g>4AQbSg~E)FDL;L#UMw(9Jxc@}c*{nMCE0CvV9TbD$R8fLrz(dkh^TT_mSWL-9}P@h#h=x`0*Z z($RTMfV#yX8|sB;BLmleq>dAP3JMBZ2eEjfz3PTh{a{J+$6*lOWZaGF>aS7ggYGpw zXsTDR-GG5!=$!(~={i z<<($Da=6f+r`w3nQxlKUWGIl>*2lb?Zzbkv)=yTRccaRSTX%y#+qCD$#cc17hTb0$ z)>U2)>*jU;iCe=I=(UdQ!_H$GnvRw_&fJ}wo z!Oj9Ft`ns>QqV2%*@Ugx#e+qfG{CMqnh0ftx~x-q;$+9Qj|FmO>y zVg2|@K=;Mzlc19Dcd457kn*@Gi)Yo0f746M!AO(j9`>J~`~UsU01Fizmsb34@d#Nw zb=!MmyrCFRdtzs@NECap>m&ta>f)7=_!`yie#Hm(ch;13uO^eaRrGGu-FRX`c~PP0 z8$!5qmTzIw$Ny8hep5vxe4kxn`>c41dW_oO>3rY30RFU`L$~$-wrW(~Y?m6b`yT3f z*4|!F4%Xb?dIs-znn)7ukqkd;$8}l%><5BDyjrbPgVs8PhSvxw>zyNhK|!iXz)?V6 zT^WU2jG$hU+JBVd_S>t=D)GQ^g2}V2F&I;x+`*+#!q56lS=qW_q7L%v-Z*Z|IAeq10Pu#GA^O2JCllwL*^CQLVO_+cfrEA+Lw*q z{>pdMV5RF^_;*8WbZ4>kR?9CCq<{n|w;#{2_X_swxAWq}@^B#eYG|en}8-&Sc)@QemX6&(_Ppn9fmdCE)Wuv0;J`@Wn0K z>!}6EcGtGcroMLkg3?r_{H^4l%J)=^1YY7(>FAxVX&`xB93Gf7V{{TM8k; z4Z5Z<*LTPL=JcFeUk?$h<5pDRRwo@Jj~}VL)=@|I`s%sWR~Gmxp^5h_$hpe$unY_d z$T#o?sXqee_oG&wILdKBnJ+iqx&L)-@i-stj|Bh(Ox|r55NhP({q*HSgELSH9u(s! z%?)yi-nK@_#AbQ|e9|3W5FQ(6ePfGDND}6UJ|fJngBYS$7P6tbSxtPPlINtJA*0^R3MbfE1&p_^?1 z<2BHGL|wGjCMRZxdkXn7>zy6X*{*Q)R7N>C5V6FG9_?c4e?G6@?EjIV2Y_FKb2!WY z;=4XL(ffn0lF`{{1vJ4glrBp&csvw;u&?h6@!;W>=a4vdsHv(ge*qR&#Z{8Eqc)sk zMEp!(x*LN+5wYi@dmH1WvfH&t0@L5a8WMYSFdHVjX;B*D5+e6n5>2TPW!j*6LtG%AWt28P9me<#A*j{QE#yL<{Bo5NgB{XSzpR9sOJ zaP`KYpNJ?R2!rlSKx1K9aGA=GC0FSiZRBOih~D&xB!uYYVyoAEukkq7C+FoM-nm8P zNs=i!V_%@!XxR)HU_h5fv$UY}Rv+vh`?8=gX!7QzzJ4?8+2+Y1 zp8Wo}mkFruE+CfF`+7lu3>^TW7CF5PvMEj;^`>uSYc9V7nMA~fU!W}4z0LV}qk+R9 zRUI#g?WHLSAR-eWIJ9|&6}k`ZSzeCWu>@r+b9DW}fIB!jSXbJO{{hRRoLo%8Fwy+xXtn3>_c5I%5({5%_@DmKs= zkL1Z@uh{;}Fm8N$uDwD(hmO$(FR(zQ3sJ-?<(a!~Z*+#K%d8>Og!gODAc)GW=2V{$ z=_R;bGcN0K<(Qh z1u)|FOye!lFu}BLE6~JVH)|C&8 zk|8%4L6HjX6$XjD&VX#IjhS^;<1nkadvdYH3?QaZ3x%H!r`@Z+DYOnU{_8;Sj~aDE z(|DD8Jjnfk&W2!~2kRaZgexL8QwBfu6gA%JgLE5T5Dp}Az8>$mv%&%qDOw|i?{u4F zfe^w5VmhrDqgWRZy+7F?acGe!3ivA%Ak?~fX8H`+qSS_HdD!4k^P=hCf#K7TS_$n2 zK~iOSO}84{5p+90YexQ&4BzD6QY9#L*1djy@42ZsDPBtY@5 zm#wkU0xQ7xUIOA&vkmTyurGcjPP>(cXh9gRf?D4Qt>J66MW6$8J5Y?e-{eRRWFkM+OEvsSlBC;qJmcuFiwBgNN?g~QS&74lP z!zsfw_%AfJNzILA5l49*Z`oa-AT3=NHP067G#qh{^0@S%q*YKk>AH_*rK1qLlhOHy z^=glJh7bz-F*zsxazd_*stH6WYc@YV_8LNjNZGRSLn-FcRvO>83|Z+F}96&gUbL zMhd;<-XMNaB?a2P_aofWv1}8-fJjwC8^BcblLC=r5&ya)WJ!Ezd2UjFe}Dh&0rnUl8Qb z9lTb?N~B88(&D%yJav;<*GE?!`B;@c0!e|QQ-P1kZ}M6|&L zU1*NU{_=_kGhPeKNIs;R&))t5)K?x^(_hseEpSa74Il*>p@xVy8#r;j`5iF_=eu<% zLJRP!)b&{aDv@yixj%??ducLF`h+kiBjF9@aD}yjl;n5?wD^FSgxz$ID#Q|LdjUl& zF#}BXUuOXCpJzY|mHO5`I0KZi!wmm~yGi*Xq@3?gc9;$33g1|tP@FGK7%rs1YTJ)| zQB6M)Tx6n9cEW*Ca2RXo%YrKQ!G_i|3W8Sm{so7XHKoE+Oy@v6K(~pu{hW0GLfFba zsD$7hoApg8^j{Kzp6tkFB%Up?0$XphAo>huL`sQSYGB;}K=eIi9;99=`g6QE^{kL$R z$K9f!Meic!_(PEWq3>Cm*ASaj3jhoT7~Q#)5^K4VBEQZ<%=X>hg7Tm?SwOql)dNR< zPRvSAvQqj-<|hZuZ7txR03i@akO@BBdS1j^I}*ed!px&b%^wbfJkL(RC~BPr*Ndk) zY9nHR0H6b&@%|z=BW6h|2-AF%fE>{B0;(}UHl2Yb1vG_<-6F%e(4Lg>)_D!R*8wzANj(;m(n5+~J@s&-mr z3Ag?|9ya*%ITcP~(=rXAgiUWBxX3a$Sx%vEQ=r5hJdKC-0}MSkdb=Sq zk+A8x9eZHh9=>GYlQA0S*E59ib=SvSscK|<C;*r)!hf?Z1?EY8Wc$1l z2y--=c>70r>9S~-&r|o;R8hSHOjkAi<}qMJV%E7Sux~Qnn&8=_Rr-xdd%s8U2{FeT z+bXXI)r!H#KmA**+!3EEj}E5?>>LQ+vKjJ+(i9@C$K|C>&MW?k9N3tV`B^QEdAb=&I$lfmalBL2MilxJy^rr?BU-lKae7!z#ym69 zN2ewS!%gR8&A#3&=~j69VS?<^5~V{gm#Hgf#in zhV|0oF7EbF;wP5HIZB6RZHvw(g?q999>^$X;U(2A+;w}1%@H9gu$1SYj=Q6B$bak6 zC^;eu4U2QWSpix}PH{^ojM5>0tB}>x$wL|%nhLq2->VyEj&FG~eieS0YsBH6mKf}f z;=nCcm*w|rnU)@*u%xRi4ii7=k4AH=3)3v%-<*3FFG+}@&<=KKh4UZ}cLJp3wK2DY z5HNs1Ih}1^RQ1=z9}Gn<_d~q#qB99Le^voTMW!wwrLh5^KuAqM>Y||*$W|9vTDU3X zTH|ui=TZm8YZ_CsS3W@`9KkWCjn^rCA>ipi9PRZ@h9dpB24#wxK*Os1BJ`B}T5}5& zLJmcozW@<;{vi7NrRAB(upC(ksn!o-MFp(Qp%$Rc`}o1gak!Ogbq72cPb@^k{)q?U z59q;Y1pj}5mkPamtSAt+d-FvXGK)_Q*QrX9{-hX}huah*6fO`+Y__h4WG-3pAr`~A zGqx+m&}hapyFYkOm^Aa1e7`xosES(ha_7TilvsN~U}BxLLbvdodJ9^$eA7GP6ERzz z5?ED96-Tq7&zySLVWto02>##z4$3p}gj^^fPnZ%C5~5;3)OMNB zdM(wR5)hZzVlkf(^2+i|0(RlgV?3pCW^XYw0Q{l5-Ee?fsIupQ1fmY+b8`ogKp1LB z$}!%a0>#{?oSgqI4E`UKbd@Q;4IV&Cgk4`xed;H=XFQyws&~d=b2u-_&@b9?!jTZF3G5a`h-L5r86cUQmGGZetGB_;kG*_!mnsOfZimDYT| zBK3R94!!CcdCe75)9EUvS{iRB0HM=|rsz@I;s~TiUQb@u!sq-|;Nx%UlnOyvk)gtt zuOtgVwrm5)oc@;X_~E*}Sj zZ+lm1Ax&v~FcY_DUe|*o)UEA?%j?yezj{QVPMvR(Bi1VSY*jXBFU2PJX%xcO_PgBfkPE_sH z5U1{}@g$N~=D!wya?N`?0#)}P)wq!}^@2pB?N<6K1xH2k=>|F$i;hkl-oWE%FxiNW zz_l&DF^jDTbnyfU8#2dcDt~`#Ik|C1F z>?g`Q%arzm{FQm{$?^(S*>mZvgWI4^iULl}S3!6uOcdsSifoK9b2r}Fr0j)(EVmdZ zkmy@@3LaFT4i+{Mg>Utiz_lMX0y+T}2p1{XHxA;`Jt6Hdy#CM9{-eE-YXF)s#eo4p zjaT`9iaqSdV$X1NYsydn5PL*=+h6_zVo&PVd$NUhtJ%EdcgO-B50A~_`p`KXiYIejFD#K3qwT+f}N+Cf~R9EglIEZv1J|BI$h{}dZGnogo{qjT4a zl{h&?8q|LHp^f$3elNvLE0VKZj`BsQ+g6YPolv zI{WVzJe~K0tU`bRt%o4GHE(J?DPelmAKXv??PCFAlfjjh1m)a9Q))={vjc@55;xT( z&`K^c7bCPYY-uv5`r9@AyT8H?|GFk_ zAN|Zk(SX0Hpf?OA6#%eXqLO0wFu3+u2)cSaTa_cSBRdPmwkDNQINE=p35+>Oq|sdV z1>|@w7Fs#+va5WrFSB21?oPdZ%5tTpn|*-+>7g4@&=+dG(yt`u=D59ydyaJ&jfP!i zaTc%WT~~6l%5DkBYmZJoeedA(d{@?Gyii)_MThA+ReOV)a8osI7Am?<{0om5jiE<~ zpqB>K^Oy0b&wBS#qlG;Tw2=2FB%v3T?^!ipF zupB^!sfUewi8pSW^$y#;sV;#Xmd(QovTvTDn4^J2!PjYSRLg_;US;{CX%}P76uu-ab(p=T+rujIIdzL?p~Ls5#*`wzY)TqSoC#3{=}2$p{M ziGajpz#X%wKF86+FbAw8GS4FK-+%6P2P>x39e3zBwyz@wN(ADOO4rlKo*&O86LJC6 z;}6b9t`I^;9=_F6-H$kK>@NKtF}}`F_%XjT?M5Ys?Pq|#@PGMB*BS&f0Gk|bWau~g zb~(S6=;5HGWWf{CS34Fn#Nlz)D}$B|(VzTv#Ebhf9Zuks+fEF0FS1rRb$p>4a{?P- z4#yi|6$nhnVz~=2?R-O9PxloAW|!q}W>*efJszH9luvTJ62^6h9`de|4;nUwo4jS0h8AY=eVr{Z|L+#A|i6$3f?AL>9F<)mLNSJB0;_Ua2$v z#+kbpHSwLZ%jz5wAFt=yE?+^T={?&UBVoiGd+lh6qxS2vXHEWVb&%t5?pEeF5iytG z(AzSa!SVV<+W`ON!Hmz#&Gc=dFm`{yy|`5i{3QB-gg8(-JPx=Q-Y{hSOIdF4sxpo3 zK6KhjMYIu`$;icb$3sEnzMc`7)A;)El^1>*@T6qdul{h3_y9=2lYoJhuBXH%UH<+w z3dCAE1Axm9@hg7}fm&M1gWL}q2WV!Rtt}#sL{>^S+D-AAV|yylZ2?I=Krfo?lI3fI zs($k5NyuR_4~>-ifpapah~)o+`tY{_xFk9G`CGS=t+P8b)(EtY?Q#)E=BW!kRO8Wb zH#pK1^F@L2)ef}Owlb2F$n2}$tp%gLi$)6-V-@60UxJt+Bejc8ofz{E{c~&2#p|1~ z#oIreuPICN_le-?TM+p9ASqzu)6EoEQhD-dm_F__XEgauxUkhTE7QnCw+m@tsqN&? zoL~}HI2nrteJaPNnFM?%(D$dX`w2$dx3hv?Bb?Y9br!=-T>2LxJXzt@^lXeG(@7za zFR2b>9OfVfY@bY`&ePs1M0Q?vHoxXqNA%|mQJ9le@cgM3ZXrxf464&`gjZlYZ1im{ zRPJwy*#5xe-=qd;96Ly=`D|SI{-mVjx$PJ7oM)g{_~mwg+UqJWz~yZKJX8%{(?kb9XT+x9R3QT@4r7wpVPyD}eNgD%;_J+6r(cuT%vbR&2CDe)ON%A8SYg#JJ!3;x6g z@d~z?{@8BT(C%*t)MMp~PFc!tzWFv`%b9M8ymmi*O-9h?qHMY2(uqv z8LHLMG*>aselioH<6tBP&^YQD5M3Mtg{xbV*;#J3AP)an0rA|)q|Ro<9EtK#j8IJd zE78{-F@=YFi#hg1l1S>v-2p6$7BKd7X`vr+fGls(cT-9-QYJs(@q}gstth~g?o3iZ zo3@WbgFj$7fJcL&<9&?BWPrr6b)e?ER@J#pNDW2?$_eVJUCVjZ<_*%p;fZn)!Sfy$ z7%o8&3PHZRY27AD~sHKnT{dL=E%9R02Rh>n~J6IoMuwz)*6X3X` zocs&gF`VKp{~!QNKWVZ_2aT+v?>bWTQXNk8&|a?4|E~ATx4*;FLn2NX`IDkCGai|7 z00Jm9WK*s_KOmk)QlihCcU4gldM{WN+SYwh_nRoRUY0vIa~vfG>$?7zfrp6S$#4aWg{&{MwWRcGsh0Fw_HZ>g6Q*^HJr zkIynpcQ$s`dVBSGR?m~;c7gjUU)qgR&?WG#EZ-;g^nM)~g#;5{`39Q)a5^2iYIY_g zSbGdWlA+t5dRiQKP$py%dx{WF3uf3J2@Q6Jfjb0dv($f8^hO>{WGDy(U1_|@ zcaJ3dKuPx+1ch6H3gUGcj8t9>lo{*5vyjBOqUXUvi@-Ol>H|J$0AR!snQwCbu?}1X z{Ph8B=mEvjU!R!XaNd-ceC`d&!rXK3*S$ER={cgT6lano!Q&~k+E>1vcd8p;&1D?? zd_agi3<$|%)HEfR$?p2? z+5drYQsu%m$a0VdYRZP|{z^&_5#gj_Z(Ve3x95$9BWC^K#7uLTUvJ8s==mP`m2A#k zTv`hxLlWjNhQ9EtqBG4+^v>cE!k#|zusNeCJvk8dpm|Q1QXkw4&6)kJ8zwmw`LVlxOt2 zaB(Cb;2oiN>g64qW`FNdp8UN>iSjMe|Ah^IKyj7@maE#^$wgwhtSqi!64AS6kkP-% zkJHNp=3_t6@9XvRakyozv;S@ek0OF3#@&sL7E=0eL$Z+3p!g2Cmv!$Os(^Bw&G7aP z-Q@R7Q>GI0yvM>DH~O5x`)dIy!(e1oalhyc8RLr=-(&OLsE7dJVPgWg#d(=*=Q?67 zz(j~PUEpEWxl@X7-KwdkUxIrI22cfzvMeH2o@@tmGV1`&QU2O&xX=RjZmRLBHh97& zp|MmKjEhGI12ByB02HHDlOb3K@nE1M%&bM)fmEjyP$8v@wQUBj^HvaWSED$7mmFGu zN>Y6sJ)8UQs=N{nmo7kG_`m#>CGsx=dTqdYuMNdX9WiODiw-kdpZcPX_;1ZwOX}

1x;+Zoly$Onux4^N4fnp3iiobkr@tLoo@AD`YT6(|+6_80}+ zUqkm|n}Ay#a02??QBab&Sb<%e<&2X#5%5xe})b-LJ0PJVW=ITdM>C z-(Mqv=8NU$5$UWMIPD5Q`mY$@!}MDurQB@ex~Tu5)A?{x!p{b;HoK!~luZ}=QgCbz z_QWH12UvS*%txi+<=*nzi^Pm5{kW(4Fyh38TEJeemFU>K3x19RDAk%=oR|mvTIB9a z`yGzHEDjZ;!AEOy!=6bGo+bcCKsS5Fd&sWjx^K;e(_Rgr&{u>0ESg4)j(vc5qOP(F z6jxiEx0#gfeVZRIrZfWlMKku!E4^g8nad&>sII3*gtXlOoUgQN5Ul59}Yh? zN}=w7gKkc&UXIclal(kVG~RZo^)!F9J?Wc08>{>MT+%qYU)!U|b+sepp4+xyxe{NJ z|3mXa%c=In0J%svR>!Z>tGraS1|2C0t66Xio+3SJH zhuSggBJFPI&g%rfxxQwpxq&BFHkgme-ngwUo#VKB)lfQ2hs{W&Sd+(j?Q=R098*@u zmmOHgzHrA*-4gXYQs9N_^KJpw)5p3{a{!LwzixDS!={l;LZSFczCG@BEFu)fzrkuS z^Z-$H)p}NS7js*jGicB5hnv}H^o5NV1vlocRX;7?RD-U?xB6QAOMpaOWRxOOkI2#+ z{w?RO5d&bSv^O1HC+fZ5dLo;qQwg{ykIDwb4g^w}KD*farl;qtu1Shua(&mtL<}O| zGVq(Asw|T(kutXd@F8+oL%sll>O+nN@Roy%iP;zde4_Jo9s?x6j(h=Wdqn9KK4b+L zh*Zu~T`K~-eA!QkVr-{Dns&fSB%D8PbIQ@P?QR2+20B*e;O*_w2VP6|{)tNxt2}o9-zFDaDU`zGW|o=h?368rWnxwM$_y7>y*% zS`XL0&)GTzigUzl=thg;HM0>^oNOfOvI*29E zBh@+oUOb?X(xM96QEAeX?dN~4HDbE)TBauFAXr_G1`aM`10Yt-%;?jS)mD-cj8X+A zD+#Ki?>_lkvv~!5Vb`cy)k(F;KlP}0hDQBTv!L{VWeh+_G>=f7Nf>H!T?%A?$=a2F zbIq;DhV_q5zh z7}r_DTt+P?m*8AK6{OjRwQfz2Ol+yJpTBpl->H$V(blA`uF){4-bpw)4FyAgNu0H3 zS9rR5c%mt=s69nNhA8(#N_ju|<+~;1{tF!~>ODV<6(3n9G9vC&vT1UwVfpM~d`PrY z19pP@W}sd@J=+BN>niU z(J6&m&jG|9Y0w_y-V{?-SR-7?*HEqY_<#UfHawgvN1exJfd570nEoC97yRJmaj$9Q zMLfTd;iJ6vCa|vV>+M~A_k5MaNtzo*Pw?85(KM4Y2^x9GvCtj$W(fy`^yhhvo*U}1 zY=EE}%@|5@@kFE7EVDJIhN z+%DZ{z=U?}%pm+u_Q$?48ZZr{Tj3Vgq1m`eKYx2Zo9jm#ff$bHsvpSMjsuE)8Wj9s zizL>a3gYy}lF9rky*xfm(s>MXtIPib>kR2tLUPsMgFL#=x=kA3rF0Dw)n~!Wm3gxp ztHR~c2}o)Sfu84`e4X1;PmoV9ka~mqydcI>Fh=-#YZz=yx-I{Uo6=;CQL2h9_j$)^xtdbn_< zRRlFmo|`@m?iBeOqXfej)DZtkQ1!H3fdE>4zlm2YM5@@cmn#9Z% zKrDi~=Lpr6D#H^8CpfcUOkfmFpwjX2>UAchugcyA7}THX2s%1Q42w-p?4CeCV$| zl72lwoRF4_pWyKU3Z#^`LhyMJp`7Q+fJ%)n`K(f0^I^P~SW%`db|^xL%3NeBVwt`3 z$NL)C`S8dZRuJVWBxG&o?D&Gl!a#Px;TMr4oQ(TWKV^ki{**#k#9V(Hu z-xLYo32wXBIre=neixVY8NJm1Moo$SY34J)su95vdxiNX8&x%7DS3O3Klyzk+TC}jK4gg8QI7i17Et81ZTvUh5Gr-_jt0D4u0jOl=Tk_oD zNBPS}*(w1EHXlK|%E`E^k%NUX%MEXih&YcB1wl_XOESn!JYNFB!6NB1`X@*s$%XeL z+ADCJYEzz^;x#h6ILrhEOs0PbmopLtWx)&BmU&kR+h>amVuxRTvF}nBq$=i z9s%%@$9mePvoVO8{E%T6Ou$2Uu|gtlQ3E-dTL|Bk7!s*!3iD#38cu98`7LZ?SAY@+ zxHok;fcU4l59SClYRPsnXYk*~ugRTzmBK^%Okos5C41$&>hGMdWs_71AuIREuQ&ua@Z)s$?Vy@!R;k@;U$vaeZE@`Vj~k;R@Hf^FkZJwR7P-k#S) zF-Fnlsl)7*1p^q%*Fkh@wb9)O&HM3UM)oUY;1Z>F?OG25;SJK(wNljY{j&P?N}nl0 z{2P-{7A@8r5j&w=tkwL<_34(NWHOsh@z9db+$6I+F=GOxcA&Q7K(pk*XxhD9N;&e& zw2lCcBM&Fz_1zj>`f<4bV-(2Kl|S&@18E?&rbNv{72no$B+zrE(-eDuE6_OEUzRL; zGr^M23gHIyz$D5Zj?|A%=jP?#j14Y4J9@cwp!Va9IFih>3a(ii43@S4D4^j5s-!RM zsPY)K_JE3kt&>yHQC|Smh5*22=&g_LwN6*j31>0Qn-o-pL5i{>VsanU^kaiqL~B1uo&H|*%r(4G*$0`ck~3HO z1=M>on*%^|&E{gfLJ<@sEu&LOj`X6vPmgrdhr-RTtn0`VD~kRHdGEk)rn9LO!F}9` zs@}7|6=ZunvYYQLLA<0*vMvmMqF0^JJzS@N#?xHqJzIPG2D?sEuy0f&m zikp6bnXk?%C@2V+2=@@)FYj)5rVY93%LU&jx}nCCwr{(Z7nVM>S$8IL-0OIGyuXsw zo2wE0!o4nrxv;>J380K*6e(xJMFCi$4kXH<02UlB@`=5Drv*nj^O3dbQA7(Ldrp%p)xNB6` zgIrdvt$wl;ZnAd@4bNd9siBR#8F`-Y+K?uH>7 z2ghGu8-RFY*U;I|WMJpKI~P8u*UWx>baWM})UXFK60Mu(IFv;n0r`#NR>N4v^-m4& z*N7@T&Ej7~SWl=qfLfO%G3{07x1ywHY>ymV-nve;x1fdEg%Sf-eQewra(+l#?$vux zqy`S(_31Mk{AP zzx*g(5wtY6D=29{XY)n~um^rUv%&6(SlZWW@Hnq&*|7co$0S~6ku1m+vsxH?!5f<= zzImjN+Z-D+(z@Q{O~!mDb;yu+&j3mJVqUgKA;g&kOa7e;Yhe5C>)QVPADli6qjLO2 zW}o97i{#$dwN0G`I(AdX?Svw{AEx*-C0HaaKKKxlt8sqM8`_lH&6}rlB))3rhu!xy z7`@eD4<)Bd-MPaN{YKXtePp<2X9Yj?-pP~Qq_pSD@nqY!+7z==ggh!+9X~v2SQ0T> z>CqOnNz?ZsXgqJlIP8c1^8W2!oI|RFVLT9ie^GVP9XN-j+RYjX#2m7|X!XM=cf+!4 z>e#leSz1%GX~%SZWrP#iDLaMWFosPaC}!4}+!QBqEQn>89LwwH1KaE=%4%*RAhE;m zTDKZ~bw+9`+RwGU2|HCPU$e7tqpzfLfc-kgWF3!cL*u00xEdN$j$Y=* zMQ(k2FfCn^%-{kYTo&)+`vLVl>QZ-+Q$`X!4pV)NK!0EIQ~BOP#CVLGc$;<=58vty zw>HV&F>&q?lHcc11Y%(yxafZr1*L@i{n3NKaHWkyTX)LD)O|fs>dMD^6Z))}2E%U5 z_NXR;$9Hu@J#mfdwi?V_WwzvWq~cc{p7}4qc2Nj}s;3sb+NTv>bro&n`6reeUq7O_ zg?bL_f~7}Zn#>g$k~Tr!=HSneC+2<8AsV_fM=H7ZvX+fQ32#&$-td&Co?z02%`;D1 zBe=XsFbGRpGIA%T_a%H^9b@Es`cN)|Jy)2PCi3hbx{Wofvq1;zGn>kU6k5L&HJ{k- zkKqBcH-`H$F#f920t=zidFvMC(~b1=Bh+w*y)GRIFclu~66aJt2!Xt{6t4fPPK)UpT9o#?^s9FO zG(Z|e0rbs08kMDHn#`WA)z20tNV!*Ke>gT8^qvJfkVAWlT!fMQZS_KxvMTbS<|TB7AZA0hd2ZAHTWnmJv)vYmSV;=_ z7wbZ9Dehk1$^&IOxt^yqclB(bo;394L>J$J-==Jr0PyyNv%89H7u_ZBU&0d};Xx1g z9pmRm4zF0WF!ZIO%GTvKzP|&bton^w3k^X>DhU|?QBe@)-qliE#soXlbS~cJ5(4nw zuoGzFaU>TxUQl0^OJhj$>BtWa-vEt!RxKV zeA&|yPLb;3Q|&hFxDm@PO`>+#ccrl=MgMIo3qcLc&0>%{h5($R;-j`~R<>eOAW_SN z_?y4D$Y;6m@x6F=u-+(WS+s-+kL}&68lZpG?#;I=GDkE0(v!nNWDd_+9&;*L&#`8m ztnW-Dt*Afh$PjoNwhq-#SyaBLF!@h(~ABc7h{?VjIw<*(f*Z3?=t9dN}#xz&@t%(+RX# z_xxpJPb-Itnb(1wxpuYNS2(sir|3N01Oc{E za?3N0n}}3P->z3=_GYGH_0;O&&siq>!Ne}2R2IXm0ig%mnT0?=Ci^MpiW7Ym5VdOr zox_(tKhkN>u+qEu#1}1kwK`p%z4xKM+G?=WCZUxZ#pfI~>^Yq>s_DbPtcGnyb*?grJpzYExOuU~}np;lYjudlS39Go)* zXztZuB4R6tm0&Ff8<86&d-}N_i0Y`7EQ#Gggtdc_K!z#(2QhO?V4KvqQT9tOsX%Sa z9b~*SgB1N~PF>R^+x&>(^E|7AwHW7GhV}LJ;{y?k;#K&JQ%D0ftuGOhkN-c)-aHx# zH-7&v6jIh~A-l;Q$~N}MmLan5h9tyT#!eU^vTxO(Q1)f)d-joR+1Kn#46<+GxqUw0 z?{j|7KhOF6{!HiSoS6H5zpv|cUAH}Y9d%lWlWd+#5F+Vy+m_aTkf3xO9%(aa4>7yE zLDD~nwT%vF9rVq2R*;Y;Ew&|zC@=ZXN)O|VO5BawS<4414x>Ek*?o^%neS?Gy3Z(# zwTdZjRwUeiHUIv@iCK45v+=8%FF74zvpiWw+pfR+ACcX<)G93@!+o#P1-I)=P*joc z1;72>L0i!cit7cSXieqcB%oBcJ1OM{?4xq+Xe;PONQ&4(&U<5`8>~7)EIR5M^zX>AvPk zn1$NysA4!5Z1JGn6ePY-wi69VHZy!d4DsxH^rl?|*0P&+p)bnL=9qk`X9YtAii4dq zqHL9?cjb%helhrdoXZvpEpiVr+3ohxSqKF0sMQ5pE4XX3?$hfVV5$?}xfl2sH<}N> z+i*UMvcc?C|7W*J?u@A9E6XJL?_fjq!7^r8@lo@FdGwe#c&Qi}8P_LOyUKbaJo6FL zPJcV|Mf$j=$(6Rm$_;XexjRO4sxq42fo+W!v8Fb9KmoGQ_BB`fvt?h3L@Xo5Sv8~y z7}kO};^%7y6qxo_GxvrY9iyuU4(Lj82a4~?_3b~2B9DG@D}I*LOlvBI#7Z70W+)rI z&J7rg=U<|*QfG;KtZ7NZ-r=j_Rg-H!q&fV^n(&N(j@W6sqwd-?(4%TNvZM@9ylcr4_ zWPx!Tykgm#C)Ng545^(?_FHxC@L8bIbfz)`|Gly0ZWe()I1zp@k%Q$wB$h8Ib+=D8 zph+Ns&#bbpKs%dB`MjA0+$t%aKRM2<G^ z?e96wEb@dy{#i2`nOcY^Y%%&TLnV=aE1>BaAJ-tqaXn%)Qjn@}+9v263XqonD**7n zMg8l$5{=#Pp{ZM#`YzzA=gEw*&m*waA)@#|Ofo?aRarC`E5hgQB|>_vjv;X1!|(Fi zAp#>O(!71GrQ&(iRdVGy4xMGUn9_i~pUPw`n(<~`+xRW~okB*$Sw!wJ{SWOA0Zq}9 z8vHZR!3qrjraiRtl~$qD9rS2(KeKmOM4K-&ZHnc;q;L#VSAAS*f@ z+Z@|_yAd@Su1?M~i9MX~7GgJ6`nS?01 zT073A946t5ndID^=NV<$xbIN`eerc-)8=l}xcGxPEmSK-AL^FaR7tXioAo-ldG#K1 zc)_1~giw#%GIrcISE^0z{CnK@oK%n5E~gY6;C-8+zk25GM1CY7-A-D)zr^A+6p`b; z%2C#BctDkYq=+9*+;=|qv*v#7eY|n}Uh%l+TXetO?tDdCq$s;wl*c`{h7LI{Eiz2n z_V(^O&Kyoh(SDE+5x!_YR%sCvUfwT6O^>ru#>uf!1~|QTAcCkOuf5`o!DsSXjQv8O zQn)6@t0_(RV~_q2ai(sC-PCI%9$H5^2f0RV2(O6jhwcWuK9`cwm0+E@huF+_Im_s) zOWviW@-KfRP7$p!?_no0#UeO&Y_=r%`CB9jLj1YyX~K|nhgyZ)gFjkYY~ubx1lrf*8Wme7eAVVZg|y z$YPR?`O^TJ5(5G({JRh50o?azH8Yy#WyFm+MX9KTJAmlA^>%?nd#SOE+VinN3$cnI zYficLs7GjRT2D{M3&|qMO}p{u=&tJQ;Uj!MqTejpB^O)2AI=f%K0CkY^kW+b7aacL zp3MO194h(;VStI5*qkEuJc_3;N^&LGq>lW-wr{cUbGh_G0+hx`zb3c1>bl z-;`Ovw>+xJxpSr;^IM4juHKwbbe?~E!@jg|3FfxSo-g4bfzT_=UJCw4T@g>%B9?8A z#&zD9%dlPe4znsQek}GK&Ww~AD0kY(FIwww>}2fEb{hJO22#D$q|-oHm!tHKYW~@n zjLpf<#wZ=fnC$cKjXPixiA;CMo#ENK*Je?b0sF~1o*B=0+s-{f%Ey9SkmbtPzbTRO z7V=ZC)8yC{OYC-EXr6t3vXL)4mTjJe3AfPS7$8$beyLMT$|i|-sVEjd8RASArC8&M zcJY4+0i-lM*_Xg?pV@d!Zm6+~+gS4ST@Mk&e-=e0w-~1Y6i*wNLarp@*WT~J-H@;b zu2hR=`Y2DM+kF`?kyNiL8C<8TO7}o}u5OIAO6YXn2mUv4W@Y!6`hVpvNN;4}#t#tl zO>=yl+(B3K^+TM4QftPKySuK@n#61!{J?w2i_QlF*UvcXV}=yvMLP z+y%I4s&(Q?_rEec!N558-eKg#INU3@MnsQuUBNqVKN8K7Bll^{O?15NB^F61#E;rq z_M0B|?8g`_%2>9buEJ@Ggpdr%MyBaFH^%71OJmfx>Y!RM>$j#uyf1pd`Iqr?`Xd1b zPA;?sMT2|wqmTCXz@huTeiu#O+F@<+^4iLQnI+^S>hj<;1V0T|?36s-a!k+O{ysM^ z*?W(4w*giBUc#tA6A|+Lth886Fe3Qp9ZH~bYstvAi=+ECvy~$R z3hH-~EX#Ued|=)^Kkm~Pw(9QiYBm1l;*4xOc!7PQTnh{xp0#$;LnV1O%9;3yZ7ID5 zAV1w0(Cl(fYYy+|{prZ`%SL=?jlQ{pM$%#rZ_Zb1&~_m?umXXgkRtoyZJ zVs2n;CJ)~PeKn0TCNn#CNW)7D8&q=%Y)|t)U%*D}7^3BreAHdfop=j&2-NV>+ zp&j@(Tk%;K#pl$JC+mAX(p}OvD`tz^ydNQR1-HUW2nY>2v=5~J0b1IO2Etp98sa`g zO!x;GgM(LSj^Gfw1>>!U#17TP`TucPqKBqfZDpJFt%%bmmC)_Tbe8W&F45CmkfGqA zCB$*h2{NouTi4>0z>gkYK4S(07|Yd*;Cz=EV%ioS*n+#CN69Fq-|ykFzQ(c|%@nZ? zZLG8ggGv77Ta^pTI}cpf^v(U;o6c_95h=coGoyn2LB9@ryWXx==4Gqf5`J`Sw{co6 zr9qm^mRDY_8y@`(eC_Uv0rWkYcJvlE(qBFe<R|Kd>grsy0Y!`Qb+;tmgSkPBZ0;LrZWsV?Xj zOAQS)7C9! zW*%@Wm&i9R$+8qy-d0YpU8Gvc7T&Q@-q7k5Vr{v`)TL{F_E`BW$!|xJ(!D;ji-fm5 zm4&~K@qvO7VUe%`Y42SQyF?O3pOS=as+0k071R~G{Zea$@H0)X0f^$g>~tbzC#299 z$5ZH;l(&YHk>fWfC+)Acu#I{ASR9c{1+!ME=AeiP zwh}{8(LHbGib$z-zf!O4r5A)4gvZ>ghN5H{TNTa z!cy;mrCKs~Y3`D&cD{=Vg6F!IG{3h3xOWB5Ed*oeCA`Q+rp?coP|(&(b*ZSgMlI;+ zZ;v6K97lTP^m!(4Lwdb&fASC|dn`(L!3NqKS0|mm`E9cBwOs2M!Ogyu%?*?d7)lr~^w#0e@L-1;7*;pV+oecqf>F9dQ`c*UqIvn8^)@KTF>>%YW z4IHFgLHR_xhVBy7NnNZe%f_kQ1rR3lO?12g_?GX{;!VpU*DV<@mc_o+bUwd%0p=$0 zl1CYdfL{uAA2l6)PQC4kMWS^&-ZAJWU}J~ow=O}j^ymVxkJs!n5C}vLS4S04u@cx& zL12*@%P@79{?ZWfLj)6Mu%eSAMR~xM;<*ZV7OwT(7XjQ_b^59gZ%g=?>Ia|r>9zM% zZItm>!6mR%M>ts{3{?*L;urPI3)b%F{&Be`7!K`wm_~?YbbTT-x;gR+vY#Gs-t4@R z3bEDQ_Y$<;E%e(phaBX%t`{oXkU})6hk--bh^v+1gpMpl)SD?=K?;$*yrb>F)G>Dp zcfz}TvM^SU0CFcS{Xho$J|h?F^6HqXaoxp)hCQ`e0EX)K^msL1oOOMF z*LwwYf0tEOgt2$_mWKkFURfO`t4;+i{FMyoc=(BMB4T5D!{`iD+|< zuRlQH))wPyoM=_@?Rou^cBJ2I8T4@Yo0qzZZ*lXEcnvM@P7@FcP18nddMU#`iuU9! z!R*Cz+T$jUJ;86*cT82(FYyTBMhu+4k!*)al+%RS1QK_2SGTc+r|kxLqfk;w?{5 z!{;RKS(@O7KYriV$HDltxl_$hw$7`u4MkNcty1lEvEI;8$4Hq8e72#yr7RR?*FIQ5 zBfNIm72Gdd8t3{gV&=r)ay=}#Z+5A7?C^DHb?;XfaYo?H5sZ>xpJUZ>ZDEP0uxj!S zILoqI_eR0c{`BV}Ti1M{J6Juebn2b_pCg|`?|uk~wwQ{LTkHhahn(6P3;I*)(Rk<4 z>+R2JB9(&MCSP&JLD4@#pPR^N6GPnIxkH&z7BLsQ6UVT%Q|blNUxdDO721zawt*{0 za8Ao>`M1866ngLd&3q}>^&@}XQ4=2yKdf3Bd7s;V4wSBP;}y_$j?ntu7wM8!UJ-n7 z{*q>1te9D5hbY27G1N)g4v?z}nS#h;HOgq3ZRoD*{Ry=D-bDWvzrk*^`jH=Lqj8t4%Z~94L zfm$3)@;59Omt%TB$hmWk>GsKx^1W>Skj2kc78OdetBY`|mg`-*vOq9lD%;3!`a-H8 zT~R0#50UoiewpsAmz8;76a4_l;*6&I@5>#{PZod5?)95Xo)*fS=Wr+Yq0h8wHvT{8 z!Zao93L7+_1V7&asV3PR5!~)=RM3p4)ybs|)k1pjIKRn$Cv0dLLcMcskWbi}LQGcT zQQ|PG>{5SkOPgLVlCML9U+dk*9Ih$Iwr(~gCAl(lVc z86Xt~vHHv1v{21wh@*E**cYf3@4x=q3*sV%goO#gd=Z}!Zl%4fe+UE1AM85^;%E}OYID@zNxt!eiGo`7taKZ_2M@JGPV6k!zSUTQ^ z(c!77x$!P*8WQXo#+5|r!rm4V*Y6yAmV z$#F;ZqJtX4TS|9F`COgSs7y4a2Kj4@1t(rShj&DBzaLy5!W}=5)>&{J$DkbiOzJSmId(=)}r0H`6{^C zMDOBG(kuZfS4EyYUq)vynSQd)D^}dDJkk5Ls@Z4@md?PvXKl|$WMC&#!IV*~zhXZe zvcaS&-8>tOvI7z+go`YESwC-Frc2alECGCY%J^iT`lAWH_sY)Z>-!l`=C`pcGKV$S zg&ES$qmToC+p4RWtX7fs2eJgQ*d&stuanN239w z^+t%k?Uv1AgGuI8d=eeU{^pk+Ng@bKY#7tPg1stMz4K7MgH2D{`mXysj6+>&$HJlO zjjh@f=9#KoOuyECv@Q99{i%P-eM^Ngj~Tyst=(I9=N}L+Ffx|r``YTKiWkhI-n*PE zGqCuXI|!Y-kKBvV@Ld*3x9hyrQIECiuUDcM8Y+ObRZI`Sac{Ee8&t&WT8i7wF zC)ze8$SEXoU9zVG$IZ~tl@FImW<$R&7)X;{UPksFfS$(XMGg{LiA7h}B8p}4IHf@6 z`4$qvZk3@|!>rdjo^fk$^BkI5azwPjKjopQ8jk+4Gl%KkEfg=LEnhHik5xF}RGBZ| z5+-9ov40b2A?|oU-Y_AgHtvz@DHF#AIOya4cR!Sc=M<}U!l?VsgE)rfjVmTwtsOYD{ZccIyd!l0T4{;hj0ew-}yarKoy(YCRI z=i3L$GIokfM5p^^JUu9bHZL?+c+t4!Qnn z<{O#OTDIF#l}%BF5dvpVWwkQ>_T~M)kk%qj4M(o{*+=YDD!r>R6?)oy_hx&R#66Ta z;hTG~uzN#SCxbI?GF-7*S68mQ#~xjdQ-%ECk<+i)(|w#1pGg%WAc|8}ik2GZYNL@| zi`8RTQ%*`;$z=c7#h!IHLk4m6C+%;_Q6;6c2`^I`bNJt%VkVNVNu6e;=qDg4dzJKD z?Disg0}J|!CZoB*ZEh?UrUEfYDV%O`E^X$1GfnNoEnbHP%l8~06Z5TUAP;G*UtKb} zbwu!-Zp#u~_De)iW#bObWNRz|#FM5<)!^vPRxf?Le93Bv>DNhCw8hmArsPk2_%ae& zArTZC0u~A21N!?iN6Gdf0RWk#foRwD0(l$8)m5=xQuaWw{I_ln>KQ~POvH|_-PDr` z@iUx6`!G7>tNEtt6(-ki<^ygmf*g9}ywQfDH-Va@3t2v%(%c&hr=g^#p)ei?FGRUw z4R>l;(IuiE+XH~zLh3y0-V**i%ot+(LxjA=TQf{V7F?~}ZNho?dS`#5G5!QVom%t-N3U;yz=;v25qHe}k9o>$$o zN~l94mOv%cgTGgkl2Nk6a^@p9__rboFc00=h5#)|*-?oT5Wj6j%xokPr2E?(SE9X) zVmB6lI-A9A6+KiF(I@Dx6BSvi8kTvxH+AG^^7bK5eu35SjwcjFg&8D-#-+J*apNOB ztKPN2?6@Jjw*g4>dt|~U?Ttv;wB?;p6SOm@yQTidO-|9ZIly~wT=BNPjU^sh$tGNd$n@w*ZDvaW;8aiPqO93KfUa$amcEH>mjZ7eaY z4Br1dKIJ{zpmR?z5|E=zb3c`fZ@Ml^{nCO*@XOGiZ_IRgNIPl0VyA%4VtY#pp8)3} zS1a%cA3G^LcT)5F>&NT9v?{+Jee&v;C%lz1nB`X26M+SRh*@bGs-tnF72cIbN4_c( z*>R!;V)aG5aFV_j;oP+cL*G3=zZHQ$QEPXN7n0+v?>l~+eRy4R)hPTsu~Ea8ZFfrS zw+L(a+5TwXciY5G8#?o?!cP8q51sr&9=~@p$=uqgF)z2`hJzcIT-5K+uymOQ%kCtX zj(|VSgs$1o=;!JnTV@pIJTq^Eywth`PPQea!DL_f{^~XmOd`c_VoHsf4^Gdq6=cMW z)|GMLRFLb8>V-o>9i<0#;rf?@@2Haa&j=xhzklKN(eeKDfdqY@FWJZ^A4LnrnaGC= z!PcWxI~~SEk|^QPamWwn>iB8HVY(N1LG>q9tHtN_>320>K{WW#sP5QwY)A!g{?(iV z-lSeB(SrZM{BhhJ-bb&o7i2he@oHO(%9CeFY+RA+Ly4RFz5+_(&2&UAjtv*@%fhQ; z7Uqrl`-BMoh6T^zlS##_Y};m0!u~}1ujOXr_1!r|FQ;&6rlJ2{=qH{=oy2+Ge3s~( zF)W_d^^b0?+wsDEYOvDu&r$#nSikc>!QSYby6avc+yb~D^ z(V3HFpUI7^`LFI*OL3uB*VonK9#Atqpjf8wCWPlMj6cQt#`r%%2RRaBTRU#`pb){P zwlN>n+u+%HGwm;msb9JKeaj;;_K{*=g6fs+Zrc2JDrA~HrqEL2ewi@nH86c~3yDP}iTrFLiX!;qa?a4!ajQsZYOO!e4iT+sSyyV3Jznnq+Xl5NMlFW=ux;kZ1_u$(6w@n0j$Ih{J=lxAL}pZ7POWW@8-9T;S#=dQ4s zx(&(fhw;AK;4Do);q)=o`z2T*C`_zS@h)mu|Fny}r!r@u12lM)f(8$TZ{!g4y-#%e z6cYCi-a6yS85VQ|bpfAN09(a0Kulw6;s1l0hJa1!;t_|1heEP^>KAb4i?W4q^6rWKy49PMtwLtdsXB8B5BnxR%a7je z24|@l8xdsQwH+}#q+Pl2MY@*JSY;}#r+;Nrl zd}+0tIw-24=u`n*1^wj8hq;Mx&P_&PReQ&n$ z)<6~yav8PJv+19YG#uBU=bkhyOYLnVqbLuBg0%;Cx9*#b zB##9q+2=+&%z{jfW8-A*$v5E6Uqk+Ntv*ZV&d%>$$%C((Z|K=ryf4z_-S{mtIS$A}C zdxO7bk)dS_L#1Fo1194;Qiapsr)orm2Qu?pf$eF3H2UqRyGm{iWEf!4W%*feTi?48 z7iKE2H6{x5T1?qXUGQCv?9yTF^Ig_NFGzACgY1^%G|cC1*>)Fz$rV*6;d6ldldI{M zmt&5+D@iXnCZxVLt(h5P>T)wqIH>5zd(I~*mA3D_NOmA90&@i(q(=$Wb6;;V82RPQ zi4MbRATAbmd&eS$K2ReypVQh9A95{x*K0W>`PJMBh}RDstM9NZV72T1@Gw8{S=M-2 z>j5+5RR?q2P=gVcPJP3j0jVJVR8*kMFT77v>ak*#KufsU9$AnCV&iE->mhc&k@ zw&5i^=|)`vSb?m`BDsx;+kAaLCbXesw%wnKUc4oC?m{0eAWZ)?`-I5R(>cLn^9zNkYchxA5C3SoC@9wBt+EoE+P|`3Fa|)R!o)Nft*9();6S+LUJoXQ9hUpVZ<# zvFJD{)yNTEn+dn<#!s zKALZ8+w37Cd25is9e5ir6a%tEn_&L+72_ReY4d8^^zUk6b`E2@0F%Z9NUZ&tzIi#w zqNvceVY0Yhr@S80Xx@U7me<0JoB+z;sQAhX-576gxfcM~e%R&+HG>)jO9>Uw z>U1{rr%2l?5pUr&NAnT*QK^7VwtPg<8;5)1bS?BsQ9cZ1x@(0kNN7M7ox)D$+yUTk zVGX*?rZOIj$GWJgr+yw2;;OipVhSC%f#G?jbilgcCY>qrr9hlmUJ&@=NGJGu6WIDf zq@+GQ1VQ0INvYBTV8p`oAsuhIiyn4NGvH*fX>&D>E_y82a-(9j7n?qy84}Yor^0E8 zu0GwYv*&Wt`3EW->Lc)~pDW>(tq8@Jb*AqJE6bQ41sNrr?rUzfPM?kRmcoG!p zc;|>9bCSz{+bN;?V(jR!Q|;m3i3qaY>#Dwf9Vn_E#uV#d@{EVe(72kq91y_%9w`Q!6b*E#%=U8&^6ayRhC@f z$_}4HpQbaJ`5%X{MT5H~ie%DZ_lv`?CP-bc^+*9>na?cA`(2LOJVtftqu||{&Qn8&cN4k! z*j;C*zaIu6Q5cPS5f>bR&XS)imdWG6lD5B}mi?Tivt~ zeG!VP{=$gDO<1o9aZ7dDej6Id+T@i8PY2e6|ZwH$B6?^4Meg!uUDz*Bh210F&J-97K_3a-i@&ebGhDQh?qQ$*=Djf#^CcfcAPy) zwcppU%wJKT!V2%OjhD?qWVXXW<-r;JE6*8b--n_YE~Ecgyt%?*MLR}eM;g6Cw7^?r z+9)J)zI;KIFuom21W5}xKMwLWrE_kW+#>0kdH&H6Z#UT>WjCwQ7VB;E`xRq5=KF>J z5wrIAXq6jwP|4_$9>S$Xee=-e^vn1bsrw$PQp?KL^q9AW zxEDfz^CgV=W4Z+%l;%$hXyCfcSa%Y4e|Y!9T_6uNEv5V>&N+j2x7oA)N7+PgYW}SL zR~-OLOC_%kAI{b;Pq1%5^~P)VeE<8={EIcFFw+u(JkRZc{odK2MG(jwwrxjeNB&8~ zLB5^xeOQVA$~fcQp4c&J=FSa?3S)n*b&#d3a@R&Q`e0aW_^IExu1~4v2P84YI9D{Y zccsI2h-99!&*EnYW9f^hgbZu>J3p5~wce1rQ|u%v`|Goj*9yn!>V*;z9IWQZ0o%~+ zN>(_2lmO-4_jrT4fn*JPO)pdzA>$ISrYI42Ccj?#I!COaRw3!Edb+q|!fxwz8zLLg zba+{9Laupfm12_e>0Yo4F~Y51|Fq2}e#5@w9Z06B+xC7)|35nxN91u$Q4!=sCFIPO zKM5BJbK4X7>aB$MTYBsGx(YHiz3{_j`QBK4KKDDEPTtaPj|#NurONA7I2(J)g?yo$ z%rw*yX}8%{+AFz!)7dQhm4haV3P*z)j6<~-W+4)+t0dL&u7-!wD3;cJLAC#dr2Ce} z-C~6~=zM)**9p&FxQueKMvKDZt~ppiIk^Y$DPW(X;c3&lk@a7a%_PmycC=OTGf@j? zz;4f)NO@qV{Y&#?vhb$p9Ko5*PrisvV^!bOjG5o=GXUKlC58#~APL@`+7Uy>SQAX? z5n*L`HAEzHf^|6IkEvU|rog~fN)*3RNl7DAc4g`<70lp))Fx1Jd;Vv@ePO#|yiOPI zlG8jMxKfX{_56leoxagVN-m}HK_auGmnxMUCTCW$7^j|BV@(%N(?%K$N%OR7O?g=H z$ffHKAfN~3(x|tPj8Omk*R2^Ro>*bO@{lxs9AD4smV^kMhdAItre1L(4J=J2-qKwW z&RsA5*7!n_3mxXcUZ5ZsB!vFLr)o?uqz<$NambkIh#drZ!YN2It=ScwYG>6#Of&&r ze5TD!ezSdcZ3HQxMT>Nw)@01#M5{1~uegES&lBofovnfNwn3%G;F68BtPwpqIk`T> z+*j%Y|+2 zMBD3FYwSB4SnjHBEKk&yQ0yaJ<#pioO8Z`%&Ir~vGu}JD>ks-vp2OeP-C!Cxm<*6I za}pISJ;M#}a;7D3`z}kEDm8Aub9x{i@hE}fTVMXz?`PRX$0i^gc((YSEBmk5x8t7U z>Nhov1}u>Qw?ok_ltp3ALF*r#D5U}$rOe)!_V0tGSyQiBTY;%1BntGA{=Ua+F^=N+?{CSb% zGM@^do=lWw1frk5dNO&)%eh@$|Fq7F$3M!sA<Ug%?ZqP-W zo@o?}SqxlHQa)MhTQZ@jwml2c*`CxbP#&} zhb_S(cFUe-IhO2ct3B--L#;nIX6>UvHDu%dm>g|0>>_B+zl9K#4|=~O@fiX!_y=3b z6UqE1s2l-A*Pj(o^ciU2R}tbj|MJmiY1sT~E|Xh=o>`LaSd8?x;FxItqb&H3g2HP? zj(^)Ns_;Np-CY*ZVMB%X;q7XZeF;w-%h23nj53-kKc4Ml!ou&uld)v-(QsCn-?)PE z5^88A8~!~*Ny2Njp9WE(5$0D>d}65gIkS3gPzJF^sXbGvYLekHOhJ=JHrMuYA-eV) z)PSCP7-yA&+6D!(rB4R5HLW6jQt^V$tcu!MRD45LhxbuT-Uctmy8?Oji;l?@>B+VF z#b_S3x8SvUvRdH!VX2^zf(xP%wyv*=Jx~;nWlMTp9XMTw5RNGksiN`6;OkSj5Ig82 z2y_?__jV%0)7`*T$*5(3J_dr-*F3SsTVgH5Xad6ohmc(?UY(hWDL^xFR%+)@!a|f{ z#ku&(ZWhP8gcs{PfHrIbVG>9BM|{*!n|h)Zk)qVt!?BsoiT-r=@NbrC{Pi)|cw2K8 zKrW%9c2iLx6cXk+0m$GkaB3DM2Fn?q&BZYbzFd0W9p$2nN_D3vRJF=x-hpHJ(T|fr zYDCv=tdJ7R-H~MjjRa??4XiF?Tk#a*+BmFR54sfSRKXFogGn0bX&JK%R2t&@ngrH# zD6W6vvjo!N<+8ySq&L0M3J20DUCPTvvy*ETjw_+uB2Sl$0#+7iX@kj(YEAPHa12zC z9Mo(f2Ht&PY6-6v#1!WJ9t#)ZLcjL?^y zuCCrVR~=V0?lZUDkM@|Hah4;`>iCTqo=wr|E{5z#-R3B};!{wLDK zFm$=AG@YvAg;Q}{i%Cf!?h8P>9{aP&GY>Fd>U(Wl_e<9t9*p zXqHG4tb;@sO>aj?c~hN*;_#}rZrT@06=B4O3YS3*v0E(qZmZK6F|| zk!RALm5shiv}gIEGfWKCO_qYvyjk1_MOlBY=&CO^O+_7BQO`{t|ISV~%lW$eAQFKS z>%3HS>h}ws_}AK2-q=2-Cr;b2Elv~M23pfPHIs%SOVM&82tT#Q`-@qo?$)F@TY;d^ zE%9|Wa>2P2!9cf^)CDEAn_g6-SMh}Kqgp8`U@>V>k5{mp21^%r@-)XtN{Ml8QS;q% za2NO(MDGO_7M0XwRmVl$Aw8~r1Hl<|l${M&XpT)oy^3Oc`qZAc;e1u7@zc76!z zSM9EN>1y|9Xsc$Cwh%+_t}h+VN|sRbvCl!1PS!sEcdzP<$QngOXk923d&Yt;u_imh z{(vx>`x0Du&o3@;d>dA3_Yl9n44>P(6o@q!F7#^lO`PC*ZWX1YHBG}G?? zv-NnL4SmHNZ83&Mr>UbLgIFRMNixQy2X2t;_erkveWbPuMc%lC z%KjN16EJd-At{tJ!zIQKp=4^Sha<*LsSw~PO(7>814Fi_iO!5bZ25Z13ng*+5WrQ| zE|E^GRxETz!5W0napQ7 ztjyV(G*)V3?jLpym8wN?n;Ao@mYOoXVSF;}+?2|%4ZyOOeKkq}1M^MQ{`K44{F)P* z$>4~Aq;B(}t5w7)Jr&F%T4|2WE_`FM{QsRKAHDk@QW#bu-l`Wnh9S+4ZKt*M9u~wI zy~K*ggvuv`wAJxl9s(gcs^3D+4RBIIj6{$wWD0J}J-`7#OLMO2rzWx6m(>Ekv-r&S z2H4*L4<6RS9fmL{&LRy>yiAtO{qi|wn#q?8Xj}P;tFHq1{^1v$sd=UtcuROfnX94k z$WvM-b?{Yi&RzOHt1$Yakf8ALTF^bNBpyiGTPMz!L^1sd97;Hs=>himM zO<=LdL6ITxNT~E;cZopq#`sXXOT>1uc{JR^e!&!QVO4}lzn6gcaXn!TgrF#65z=0wnz*;#nz?*s)B_IWn@2m6^h2R|==}(2^M_5A{DFKn|k@#V$Zn~Y; z+$3T5)|X*V7Ju^~oxcURirsrmuMd-aElx_Wr8*@1OzdfP(FXUdF(#v8A?+JF7ELb-> zJ}S2bzF#9yy~)XqC)G87n7@~g%3TrNpSLgV@~Bs`G%>p-^81-zl*%_XgMVg5 z3#ng)l4M0e^3y1)!cFB#tlmuVTGL2npP#tNH~6@}_kVvF;gcDGflvIg7cRMC$NJ#( zv}MGsN5OZAcsr3+Uyi27?{JQ!Ng|$E@@R!hIof-OHCkM@OGRBUVi}E(5`Qme5*S4Q z3NEPfOg6{|NI|;mfWr6K=8?_fkGlw__z7$hN|H#lBt&4T{5u(x$mT8fcr1pgiyZeo zYVBv^$vfC2+k&HhBu@_9OfzRo>2K zl-GC6zr~n)g!HXDCG53O9hbahvlRkm`g!cB5y|A~$%zY=kpI_@#FrTu}YhG9#%EGR3w1^pN_jTTyBjQ+zFzNiogK2%AoU(d4O&w^&5sc#kcnY7YH>a$~rt_o_}%! z^qwe=@3D-5BWT1>B(YQ;<0%D>`z@9l70bS&1l;PIezMJ#7M;`JNTei_=t5LC-r#gOSa$?tRd$ zdbQp)@&x%V)^Xc(KRlRN+}LNYP$pz2mX}8}1OwN3DK`78;ni+|DG6QovL-0%Mfc2zGtE1t(%Ceey;NU+S}J z@MqCTd2q_+jS|46>vY_4TIT<3;TF_XFz2E}@Ugn08k%T|9Oo?g;as-^^03#C-`ZmX z+fO5N;dAITKs^W6D5O%xYuqQB1}%5%4yC0VzXywnK>_r&kn^{^uM+k*NG^kAfbY5` zHtpv8DDko;0&K*jmqB2bnN|wL7Sa~bX_654Wp01eJe}&68fyg=U!C8iX)%0&Xjmg8 zhW{7%)=EEtK}b6Ss#Dme^HrE&_b+J+ygnrFRCf1LjfeA?wQsWr4N>7(`;?4NP5Q&C zN>N}nl`o9Z$lBImy$E;iu9ynhj}+8HeT`>*wE4C@UnBH&O9kyo*dp?*B`VGGkAN;S ztI|z68<#NX$V57~4TUJ(`y^ArU}WpD*0F#cGvl?orlPT$PGE~mA$n|spp(^M2`ZU! zSfhit`>j5hzCnu{8NRqI!Co`>h2>L9jO{i(Y^uiSU|hd>)GsjIT6jEOe#q~Y>tkFi z8X0cS!afe_FACJ|hE^vZ<`Gbuce-A7bvGUAsq$tpPWIIjLA0}OubDGWoNMVlHXldI9E&1?&u_LtYv1q1 zIRqgm5Vu1Wr+aC;I*2PTbT^^-eHTJ3S#g)mNOW`)ThF%7x}?bF9}~|=d8X-7`1JNO zKLG-bS2Y$_Zv|8Yl5P*<%Q@4xd7SAj;8-7jg9}cmJCHK#OQNQ&bkg7 z_%7QW{uL}GOZZ!D#Qm^5>zOP6y(V%fRIbv0wW<3A4&K%XDU`d%8sPPJB{slDcBw2S z*hQg>yEXl;VM%|cY}>JRWq;X0KZFe9-B!_b$IoH%ARIn8p>w)Ok)s%}3%_-_iNTwCw!zN8Y%t5U;B)7oi_&{-hM!~N_Q^N02R=zlE?MwZA zN7D(+@z7I={Ss9p&s@hH1IP1a5P4mqWE3@F1P+gjRwUE8PVMwEraFu%?eg<;UB|w# zLT~d$+25TXVvD1RO_=q)K~1Oo(V3DYkA4tfi5breW<6go#3YV=PA!EoZRIjdmZ7K; z%3kP3u&Nr51Ky5-W=apxPqYHay{Hg4|0H#sQa`3-kdj0jewk7rg5+RZle>ezXj;b^C}Fga=OD5AvB^IXjbV@WX_mB% z8SQm{+n8uJSym~1sY^!Cfby;ViSPa;Pv6p3D2Tg(*5z{C^-?h zeD8pj8jj-$Pkpu4QdD#rz7R$Xakg&yxf2E5q$?ru5&V-bVhfWotAq{h;hT7M408&B z1)2t}_9gEtPoR6dQ*s2fzN-^t1HFc()cLKACS(I?nFt&^+c=G)>6tW$EB~N zPNYssodtf`*pSe@f)F28HN8z()h;79%q>FY zvX*9It=;!NR|q)H^4jNC+A)r47wDPiRtR+p_e;c+)ZrsjHa|n&mO&-iWv24~=S715 z^Y7@Sz@r&_U~%s0^xrK7A_RD^=6IdzEk~f|xTYiu15469+JiF(*2@RUD5yxZ(GVfV zOA%cTOam`vd#mi`kB-^-#P!TOlL1w)Q9Gt*Qd=p#rlP!IW2nUJ$Ov7(4~{qO|;yO?RGYzV6u2Nf!1m zjbQSZjN&uei*Ahm?!TJP2uiX|zFTNey zlP-Hfs7n+7^ry`pD+^&e2=8Apoq#`$WvoG1Sm^5`m+AQ|bQ7j|^9rvY@=8=+aF^sQov~~cD(6{s(=B7i3f;|;IPdhfQEornUTyJP zv8ab&+A`SYqY#L3lZ%R-sFB#T1%n$q_&-7$M5Y0(u}iC?jD95Uxf~IP*TCrfaQG8{`b!1H>K{UAn#sa>`$Gr;Z>Dun1G_eu4lV_`%LuRIlF zUy1ERm^0FtdD|hMIu=$OkggZBiv96kY9?gv-r}sl8z+nVuKveDL5~Ol(N0~0 z(3f8&7FqK%9Q#nWlVtwT-IR1&2qD+iTvc?g4{En{FXj}4K(Y^GZ+F`?@}YjaN%rGR`!%W+u?`dW}+i_n}>8A~fYW0z% z5O|8k8Ppc#c;6k77Y&?4GPNJ4514vP>+aoZxqVt7c!TCK&LFp|;tmz3x0tT@Fv=pBhC zmuS2mJk?WbDu1il-C`0au45B?%)~p~xFYeNONVcg;*C#;&`iSm{CCS{zJb$oXXiJB zgWv3`@3xXkGn?DqcCNDK`Tinn>7x%PdA!nH+&VP_rTH>3l^d;=a!j~f@WzyxUc%{q z{Qtw-dk01NWnH5ZR8YwZD4~(mAXy|slO;-nfFM~=G9saooE4BHL4t%PDM>&Okeq`^ zjtv-)+$0fbLO1E2{y8(gb*H|WdA~b#tN6pByQuPc&e>t@wbv>WeXnRbtpeZBj>()( zHXR>zp}cDyYk(kqBo?_;{SfX^z{5DVS2!9sr23JS<-MYf8W9QW;Q|dR_NMz?#PE14 zHJ#wdE3&lP6s?>%dk7Oxo)dD;_0@2bBbSz{R7G~(*md*k8wpD)CJGV=y_so+FxTTT zPOK#JHl+e4so&q~!?Qcd*4dG4FO`6{K+?nOg_G@?(+}mPBl%g#EX3woX+2Wf%5QK` z^1ioC`*zFFQQXI)nJ8i$PQ?LY=DlY9BT%S)`cmax-k9ugZA)qE9wc@s?A=I(H5T0{ZN$K*HtBk91gfA@loUYjD6jy5nhEE4qPqS{vQD0K7 z45q!Ds(1OSQ6vjhC_8Z^OF)4_d@{DV8H#0^klFnDG;IH;&;H`^#IjpOeidr^(C264 z=GU|j6SFI^prg|@QSjbLn@RsAm55)0jmS#oB5vq_1`6Fv#$?6hu8(m*h74r^CiFbu zv7Y_j^fV~aBJ*S1XsE>mMH1{QURrx+U{K{{8n0WJJ#mH&vwHrjv~ECCrTBi*ILc09 z==K|2U76IfbkNIuIfG|uYipT#ori}7xiLjW`Kyv)>f)^rANwxd?vpIEGDv30dHmQE z;xNBd&(&V8QjtWTa&@EbF(K#sEvlhi6VsL{&uORKxA!K@p6+;kr3rwOF2sn9xamIr zrfVw_n_s``ybHigW8(c`s00|sP?KJI9&dk!J3x2!gj1PegE&UnZ?%M4OE1+$@zz?F zBd09z${EG$_Pf^bqf^#`4i;8{BJpv@&T9XZ$$4hr_4)=G_f9V);oytxUHI8DV;g~B zQiD3$~-PSPVHC|Xl?W}n<$J?_9g zR~MIO6$vJ*B~N;ysGa4J`9j6b5fh0{t=R)FGs2j$)&-P->~17&wd_oUm?NhHOsZS>Srt zdwvLYGwN3BuPk|IkA~6^i+4Iu!kkrK{{p<2E4?g1l$*!ackgJ)wGG$+Rrvm~NdL^q z81v8$3l(OshfX8i3J>T{-CsY+d2RR%LB;r0la|j&PkLA;CiY%i#H!c4vj9PUKjD}A z^I&l}8P5fFtv!P6tQs`eITlkBO|H!EC)x)auiULps5!%rx8#)|YeqCvs6FU>aYgw( z&$9O2eY1^Dk)$KCkB(s)WfL<4`_Idb%tdVD9jHpjpQ}@U+9!@@)KJx?N?~wFNrZ##7Q)HY_tcy7UTYTUTk!g@iW?{phKy=S-RWobM6#S@vzLB&B|BwzCEe`U ztV^0Y(6c)+`WLjxsM{w2(fDdH|EvdaPJ?67mkw8!7~o5VH%Ox1D zb_5q*yo|^oUa_S~bZJ+AD`#GrkVdw5)rvo-&T-UWS8e2+Ru&)(`i0U221F05Fc~wJ zH?JlLkw;8V6P@hl$e))TKId1tf};1UU^~U=s3db0-Y>paQkRk@$;+v&B1iBdH}y%* zW2W41pl9FbpcZuJ`T9_Yj!U1+cC*7@B0W}DAK=J=?aLR`p4Dk;sivcOqOkA z)FN?#**GN`M}hklc_d4*{;PyKK4QL9HyQpxYNb^J6VEGj9T!f8yfK z&D-p02ldT|^-7lYlBvMD3@n} zaI1t5&}IJLhxeb0HC$%`^3Qq>&o)~oV}llbW41C1?^`&OWQ$7qP!TJ#FnR#F!gLv* z>er8YHjCLee+Y|y<}t^9b_bwxS82ufm0g8=0AXCFdG=B>a{o=}8FaS)4x4A9+3!j4U>3tl$X-!amWcujcwKEb%q)6p7-MG%q$N<1aNmAm^O* z=>mEw~$1>~pwu84}32SUjb}qT}bIpJmXL<`n6D!lGHTRS^`lGrv zN269R+M%)uA6;K&#qZEO8>Bwz(oh}Jx%2jT8r4)iD|UL16#Bk%Ep>3u2DXz5^rf|4 zVyOh`NiQSCoXz5tv?FIXDNzZC&BfKKWev0K__sYV#WVNcZ-&z3NY^;NdJ=pU-ztnQ zCYyg3Om#R@I;?iN$40nETO7_FT%3Rpu9B)v13p<=tNtp#5ZFo6}qmtFGf7#Ds{ zj;l}%NKa0CCK#igGic&&SDab=hHte((QnlE-SkkmFE%;aHq2{V(Ukh|k)pTJ$7%HE zu+_Oxa;xEUFxy-nS#)7W@grGp(~IZAcqWIIxTyFtmD$c1m=Bj{^Bva+X|do4bE8Mg zI;axE-OGuzmmXX+$Mgh<%qlY9*y#O;NsVMuTC1-Qa0$yv#*7xK}4%h9$%L6U?Qv>8{IcIvzs6d~~3g>zGNS-9*yl`~`n zbcnlTwq>Js69!}rDrNR%{IkSj^xgUQZ*Hamh3hPaN@I@nAKah5PBJ}f@q6rAT3;)+ z>Js9ANqvkSZst2Zn)%k+h2~DfN=6Vk88!D~EW*GlPD!QW8*|{*CHmNMF})+-b67T! zlD+HBX93^Yi(z-yyx%1N&g1ND!N)&~F9bz@)nsr^DQ(g!c6)AbV7`y{`{56YBev6f z!_TdW$N&YUMS>D9-lXTnP27{V2-S83jbKnYXVzM6w8$*6FX`OEZ491WS`(LzW8s!TZs*;%T_KO$ad;hKlaD6fYy40U3BXuWJT0&;4gQm0Ua;uC`Rz}v_ zSig0v5JCp*34Pf{jCjt;+ZFT&9Q!vjX)3XEP?rs*iU|B*oIe-3Yj&2#m0y*fnn*z$ zO3Y6qs42)upnj2-mn&GKNWPpsKO8mfvePGVxcpdnf2b}{h6vaCb71um zeC*_tfSEfAK!&@%&a8#kq%Uhi&$G7|_@5Ke5N~Dt&I6Qtc3$MqQMdH#E;R#1f?LFD zxlccH=jY)U-}M;s4A#B3{4Hm}^UPAD7Qy5&0)t1g2=Xbhpmv=a7?dRe`iv(q-odbm zri&dY?b3QOZ6NNJai)o{s^hWNaFX!R?5)P!g#pRud(bQ)Q#-TyiH@D1G1%fSryt?xhq`Z*;GERCWT}jXP z-gf4k+bYoOVZdO!(?NoA_ih}z(?&|&`_kg=4fgRlUviEHEki5Kn${W8(tK4*Wx~7u zG_2*HfK}}L^A^4J?Izjv_wCPJhj$I}`9N>6zjoni1JH0TIfz;?0YFG&1j`rCJ9)}6 z_u5F0#?RL5+#i@xtx50;lqx}COLBH6lto&6$B0$voLV6XZ{*0jaJB);aQNxRU5^@!{qcscGkx#wH?ZO# z;;*>0vjma}Zz%(*|I+T~DjuJRo-NOkUq&xb+39ShLdC7gzWxtB-Y5wc9FC1(obzph zY{@(u6#H)F3$FtvpDz$y&5s(KRpoS&KXFg9t+1dP^snBamtE~b>`BfN`(w5IfX`jh z%ynjvLFb$qP#1MbES>jGAv$HFI72_={7%GR0BM=5S)|Uv_s%u>HqTwe3o=JFyx!j2 zVfA#s`qCJOi|yN)I{{)rbK`m32Tprl{mZgy?{XS`oE6||3Ik7+JYwOd36F_ezeotR zn@~3?l(n|YTZ$BVz!Vu;EL3Qi`>Kl;i2x@Y-oCqG2=uWZq09sP6cy-7s`+O_%X+(i z)-|LJQf2g7Kl&Z*wb#lH>jw}-W%?)0>4R>i_YY1wpXPG0&(1r0=^q@nof_Ppt)~^m zO0|g~L?UdZP?C)Y$3=9GhZ|4dc`}=b{kxzKvI0E=;Zd`3Q|!jU`mq@HhuT!f5nIP# z!cdT*cknDCgdg#Ek|h(y>HDc)A` z$ECC$sn7?SC&T#zH4}>5r%`N^N?{?A$J1_@D;p1ADLh1;s|#PsfoD+5l#m@x8<%?U zyN+S|pf;awn`8xME6cLdPb-ZXfWjH1LUzdH0~qz8ZST1^zJ(Ce{)B+8g4{BR)ppq) zCSp1nY`ds}v7fTaiHg7119Ye*gG_&d*3TQLP;xiQuH1m7&$5V>JH5O2vA1izYAaLZ z_z2E&-E$T#)&EW+1qnFXVx1)rld4viZcRYd%*LcOr>Ti#HKv-G%8J#yDLzgtYODj@ z#k;nI!YcpAnBt2qWdNb*LQ(ks==t%wE|gfhCz`={nkramj;y2adWtY?F(GZaNNlzx zGtK@vwOKwfiES);HJU+RBlN9Sf@p()pWEd&}~_yCM^zPtud1XGpRiyNn^ptim)a9}MO$0<)(&q1m5250WXvqU||+(>y@MWcl46!0&fcY3nn*+HdpE2A4ByctF>PWQ@7 zQb6rO4t^Ia!eK${&6E*9Flw?hEjB!!Iq=1|+|uwz@p!Nu`&%||u&2w#4mQ|ZrrM8? zeP4T5u5}=V*GZko+_zpX9MF>T!&ly7^Yyl}y%|sax%uw9B5FH&67m<>6*mW4QHM(~ ze=P^Ns%ZI>*+mJtW}%jV89(?PVe5wXGHh&F$|G#SYsGCeifZ0UKc4Oi2ez0tK@y@0 zQePg02DYt!wZ@H~c!W3>?@T)xl+lrVzy8UK>-yD)M~^#~=QDkN-q*SwnAjYF@L9rT zO%IBwXi9>9JVL9Ct`0mS+|1$k{iH*kXA3$Kk^{yshyFw?wwaU;RN^{`2iyNx5RHM8_TI})Fr5kKZtPvi5ZZ#=1JFQBn z3B(e=O)#k%MUh4rdm<-}Wi}T@?tOI=`=4R9^~29YJ*o8KGTHuG;P@4pM`5q)TGG3# zp+8O978Sv$%G~Pwli0eNhy8#x!kov>fa%~-Se6ZqLe&_whivsb~cqxPN zJ*jJu-c2_qKKJw+PZ_w(?%eH|p+6bSdhPfuP3EA~@D6V35?!-!$IM#BlboxCiTESp zNG;-;Y3!H3bXxiyc!$vSoCmuq6(d`Q;A)9+mUb4CdaqJz9n|@*m-f~lGjf|h6nSOl z>!DY+uQGR-m88|i>)%|cp$W~X+XnuhUR$RagcWA%Sd#N`q<4c2wi&~8$IzFYI;ZQ$SXe2_O6PgD9fxMDwN3 zW$yF|uv(O}{J3MUW+W z5=gyFLj9(T`;B7rQL$D;0Eg?RafPt@4z*Mj!|g`&MDmyzs~s;;|fs!%kXy#JzCOyi404mBR|eP zek@o5d!XcI`dW^MQ2JR$ezU6^OijzvX)ANy+9vbX_+twP9$Dt!=_4hD*j?shIjDl4 zKY09$Bc<@w6E}X`cviUe&T1x?DczZ2N7ym@G3(2M*H1LuNaz>2N8&vQyYq@G02>ZX zf!HZsFJuo7CB7>S!WfQkR!Ngru7Wh!-exe<^dlw{vwI^&JCfrdI*(@KTu_|j+Th9h z;H^eGFTmh_i{Ck{n(q(JRU5he-l<+eL7G}^Obyh$Y6>;{kCS+>PkRoyWhRg$K1O7G z1pxxM zTN0{ggvy9AL%(e*RFKAN={;Hs6Omb^If;re zd82EwD|rE9Lo;i)k9-{$BT^>xK2dp*t^@%B<~R;nC20nToXps?_q$mb=_k z(Ey!{k~!~}_*&6K=DcLbq67b4F6=)Eo5^M*escoOFHHbK29Oo;2!dAWnd6^N zN5S@)DA$&f$gGlY4iC&r5}nAcyUYfJ}r=b9XbJ&crH_5xLgIl%WfMMctQtC_&Z2jGk!rmRhHKNnV9mWKy+{~(?R8kLavc5}pzySgfMWTDoPwr7^($}ajA2N5}y=^Vj z4`{R$ySoXU@WHL*C&LdohT^ljtt-5DSCz6x0H|wPGrTI2vS|#{nE6J{ zVp44W>Hg_S{&Yry-pL)U3)^$@$GOAuu8P44#qdi>&fh;YkgJl9u5QLGX~(A|1R`Rx z2``eWbEx&jsW7Kj10`A894LY?06&g+RsDtZlG%F;c}dWi^h%fz;jObD8NYg?kxYwX z^!4a+Anuw~{UIIX(wi&*-}GIU5^?%8sFx^NYsR8OxhX(gjh8--^ezr~44gsdrWL%8 zN@Rhp*0^Kwf-@G-0`!i)*(Q00I0(l(+|n=_Ps$a2Wk?hh5fA)=-qbAV`V_?fur6&} zjeq;(SR9zBv1Z{t?YOCrKhd^68qebuO6>-OUK&(X$pTPvy&>C;N5`LMeW|OZfE`%4 zkhLJ>^gTCblh1$}8}r7=bZ7fy(fb!zxpXmV@N@}LBMiKskoP+4MHVL8AIfR_3(Sk| z6`yO*xsBn{%yL1hORj0tJeuD43d?U_CfPmw2^l{9B;l3CR@g~y`k%8bn%5N*r! zC=cTHY8*qyuBc`l-VwNQ<&JYvqd#YBNT&2a)fU6dL6>~#T5wZs*W9&zpb}Hu*tKYs zwol)aFGW=vHg{saUx&KlFVL9@7<}d10qHO-$%)YByIJ~X%HxJrW6gKDYA%l)f*#) z9Sg#Ji(=1Ez*x4*+Se3@LoJS@G@(egDyWcq%z}-IKr@AX4;WIY`!?eN?(?P^x$XO; z{?4<)u`_1VRHgf6fcA%xJ>8KdLtRIZLZ@pdB48@3`^9D-nAT>>S%p#m(J&`TPD@-! ztjt0UrYbHU1ylIiFt^K18ooTq4pDEBgAvTFQ(+2oBV(2p?5{S*HaXg6`l`a6re1zS zL!@3TcauwwC7!`#|f~nElDY(d7|%}#;R|XZN4%Oes9#0;W4lF9 z<{Q59c3o98Xk#Qk9YNJh_dQ@VElG&?50!KiN6)v&zQMUwF(&)1_XLa~GY_ABKIMiv z_g`xiO?fO71SJK*vw$H2Ip)#-KXORc3<=u%u@xxNz7v1kN>tpFa+|-Z1MTSU``S}$1B?UHdc8!!}DTWu9Qzyvsha>+0Ub& zqf|>A#65m|#x9#U^|fJHg9y(DHRFYxU4DuOWU%WO-kcL7AQYv{ygA@gFzz7l;031W zqkxd1)8Owp<5V?%Pk+a>Y6{ZY@y=nVUrZp_nAF3es?>U*@_U@M81r|yFKpZ0*wEEK z6E~JWan4rM3gskAKm+%g9<9rOaqgTu$EdVPmq2)&MW7H_i&%*^VW(S{{>m26FQtd)G(-*_@HwpL3l zyz}&Y61$^i8C&_Ff1R0a*UO#5gZWrG6qWB=SJU?8Q{d(L#p7m{b+t8UU@&yWNk)x`X$%XzJBCC=`N{B>;>(LeLx zJCyOr^rI#(VZ#9CI7E^(+;d}FCXZ$o5qoK0L@)UXYiS6IF920DFn_9S=A-`3Nv5eTs= z%aw#KzeOJNs}s8&hCe@}78$w`5@p$22UFRb$|lRdm{MkDq#BzdHX$d>+h52yP=k|< zh0U$=v->>d^u;sf3o~y>Qv(0pPs=3LkJFy*Mn|{p3rP!BERc@x2`NDbp20u3Bl7dv zheL2Hinj)&F%dn<%#tGse3&t~DX!M2V`a44_i^TMx{1>-0fvJmIkX}&jblz48~f;8 zudK%}ZmA;O90*F0K?YZOZklns%&WGTaw&^v#{F)$?AnGAah3y-7i*;Qdk#E})9Dc3o1%OWVK>V0BNHRdtfWA~%b>HQjg|Tn zU$Qny@fQj%E));V!CiimS@0?03g7PrkS3&Mb zzkuaHYAo@6 zWjp&5;P{>&DbQ3?={or!>`gK#9Uj$}x`Gt-20wjbd@bQ-jXUU;HLEri`VY{!zl~{v z%30-H_tF!O57qCJde9pnClcx}$WuTPC5QB3XIwA-Fc)>L!dyS?QyF_(dPHzAD(*KeAZbK1e=S$` z#kN3JZ_xXJQsvuqqA#I@iji3Za}t!Ix*ye!a*7{bkfc&?3Y00iQ$0i{hs`Ftj2Vu6 zk_u;lpaln{r(&#(*t|(3(Uxqhy~rbB&eK|>F>VfZ`s?+tRk%;lw&v)b{G$(#H_is2 zg+)am!s$;~b>H9O$U378O}BmViRe#jK7;~=v@M#kHtV=lir8l)=TPeTH4{k*c4 zZ<>4&(fL0j=WlL+g(_k0t0!~7p%sqbef?b3045#kK<&qQ%HywZKi9ATY>gF}O)vP| zN8X+qyn5nJxJzHvrJTQ=Sc4~8pBlUHh=p z&qWu9?X)CB5MRzhhteS2zuNr4P>$hpC^xXqbY#M3RLQlKfgX_B0$ooqfReI>^(ln-w^5Z?p-NIDFdTK^(`UNLwDfBWc3 z36stJy>LL${+osU-ul!Em=0(HMx&omy@!)GK6By00e8?~-a|fvf7~Z%18- z{C6SpA1@K0pfW)~eD<+f=bSHZ?|HE=FK-bD>0zXcBUksCdCc|6`In{J z5JCP^(C?YLtrYJd>+5N*{(QWb@Zo)XE1?9tBRM7SwK!QPEi252VUiFD^l)qeAH$8S zxdT*wqh$$&G}(wO6;r61TQ0>C3tG^u>N*mwo$OS#C4Z9?n+0KVr^4Dqm&XcCZWX)9xL%g6uOOJN|YYK($@ z!I-^%rDK5B*f9=<$)-L%J*OFpv2t@5>yF&&^oM`;*vVtaKy>0a0TycDiGv>{H@Zvd#SNm z(9^_g2BuC+Y#5%?pe`<|{y3nwvd~Jg@r#qAE&kkAoXa8>qK^E{P~X$?f(vT z{cwHLwg|w$6#<&v&KlAi!+)ieKVJl|;k^qbJ%E3Gk-pthpa>hxY;Tzt!P zmBT17u}^CPSLtI_6W%Vg9}tr_z!=JD#kl96;^qIDQFS{Kl;182dsXZZ_<~|Bad_FX z_NB(@7rB5CtH!e)7)rxjta9eNc{&CPdENw2wuR}bYQ*mIZ(b}$;q6z|Rz;c9zD2C3mp z!j0VKcXuas3dQ}fHcjkc)PQc6b!dg1cN0&%DE9^c&9*V>xT2l+WiBOmU_&;Vhc?aE za*@>&VWwT^O{2=7QnG~zBjQLaA;#6-@w;=@lNOhqg1v%SNvb!z?#K5KO;H zJ3N5hTMB7;I)|0GOb7RsQRt~5$A#BIQ$sDWBD4q*2-DQ<*xC{3{m{9c;pLYB?vzt` zrPxVr)(a~_{76hs(t7#1P|D~Ua z4K=O$;Jt#Z>v|Lt&sJ(GaA|k6D-);xIe_`belPvb5b||w#<_FnmX=2>39Ei5^D57; zc7Kw&-`|q?e*Wi+xBm0$^j~~4h*Zr&u`S|oXDN9}5lh4+K{>ZXRaKY}5O}gmf2{Km z(D+^q+nDt|U@;!aW;$N9p5nY`?mv{vXR1COj^kd8^*k-;^`=)`5MH`CWbz6v6vj@s zI+|(QD~nKC%UvkIC6Kw-Q%kJcZ$DQvN)(k7+s$_TpcAA(!H|Ag6zI&PoMk6`;ZbOn zziKXt(LmE^;!^UJuAqC)A1CZ&U*fEtevSeAjcpf z(h zeh$aY*An>C; z4t>fq(-vWRD(B-U)Z_InbPrqTyoaGqyLQnB3YFvluLd-)-4*Pl-Qwq0bY-TIS0hO; zasE~E)Ax1B{ErCC3?lFVxU}t4+t>aVk?miEK8rajd`X_(uy(j3^pb*bMlDfJy214< z*ZmM`u7zxc%k1!U7%s6du4$WGo3-OdZ}l8z#UR6F)rGknXWuK^M0upPAUlvBbEhAb znO9tkz7D$F#0937vWXx#rl_fkbEyMc(c@{Nkq%kAUm_egKVU6l|3OfGc<%n?Fj0mz z^lcgU*AeSy;=R+M1yRbUnB2%uvWN}+lQ$|6pKg!kLXhn7as}O9m5WH1qtDEUk~ElGaBBGsC$KRwi_qGU0$)A7tdqF4AzfK?e)NS#~>wnaC z|6l&mqQw3Z>@@WsnkB|w!D=gnoA6ogs7+)Y_%B|_imkzV3UbP*M-Rt##A7>FNAtY^ z17izUp)BjPQWWE-^k#kNHgqpHY^Xcv&LY*2wE9He0`+uAmxw{NRr5rVkh+rF#K(zK z4G61g6>8sOOJG1n;i1Y!%b?X!wXE1W+?GZLTc$YXOh@*^OTknL5(~3;A0|ljp@Ilu zsbMiK%l0b_rWxY6-MKbs1al=c`hkkywnm}ei>yR=p(3}-c_AIGH0H4#k}kXP`n5SJUhcz+dUsWzU7IwqaP3A{0&N2+T((y8 zk|oj`6U%qRX2gS7QWq=L@gf|G1~$+(GTW)e%BCK+A83ggj1)~0R-cWWW5O8bVisj_ zxuqUo6@UKJT*&)yKcuR>y)}pOm65bx@D(_#+gyZFY;~ZWA8>)*)v?r|w9C!E3A&Xf zSC(xEVnq?1Akd#3ZJW9NBaANesM{Zts?v6$>uLhU(kBX0%C5P(MPLHmE}qd$V}$vMc*N=-|m&9 zoJ#na_%)x7bAG!_64&ADY z+`~e)zd~U_?*AO4p#wkx;|AopWev=-|I{`A3ozoJuD_-dzI;h<*yO+(CQ)=Q>)!a8 zDeg1fFubf=lv7BJY+O@E3eHA&#h`rnFI8?U#DHfD{ zrnuo&m=z<5C^{BPVcVO$iWW}x??=%eSFp*Vxt0TKvf68w9KO{SFR&eA5FAFH1_@%C zMf}0l>lJpP)uN?B>Y{XFYR2=yidW&x^TFJv@;Sup$0NPt+YfCsae43v!2wCC^&zxN7dp^9TFC2`tK%w;GEVN? z93#n@+n0u7yw0nB4zxI*T_RaGoIJNbuEK4)uJS;0>u78d!nAnNq7;|QG@eRFu}If) z&LKfb3NxG(puQ0zq_oy%hJiTIzQ{PrRepLizledrVIECF&vAS(5?8!jMHwVy8Z0nz+xBnT2dF}UDf#!#>A5|L48V~q{g#_aOSr{?wHxBRDL z!{e{*R8B|o1vs-OZ+^7lH*fOwAHc;I)6&pu{?(fbr9}JuDTFPgDgVL-%GUx+Q*F$Cm5<<(ps}AH zLD9bnTvf{MZScH1oD1LMD(`HSp5D$zER^PeqFxWeu|ruBK}YEj$B$?%KqnyiT>X|` z@fZvk*VA74|GlOm^+IWEZ*@HXmJlevwe8N$jFddSrbrPnKSrg_5zq46ye>+|ph4Ct zBKT(yMavQWra(Q~_L59Qmz{8|=)BO9`OYtRUjQQJs5i_NxR)A_^o&>V2PB4nE((Z# zK=h@eIDRWec|bCgp7T9@=(7j0A<8ZtG#us_o*u%qG2d5IcbWN>tZv;xQV*vbjao-} zXnud0wmAK3(EC?e6*}+pyOt%EN49$98kFVr)0IW8qjE;5jgT6C#`}U=EXQCUqPC zSM4y!CR`j)-g z3{e$Pg)-?XWcy4d$L%wcn-^O?85U4-$L*H6$0B_16@#46X+^)0_)w(P0;!zJP9mC6 z#^uwvYs_Asc$@U9{Rb`gl*pkn7%q$>Sdf>^tAduDa?&b0SkAbql3;p_;4NK*D6;-S zgvT3!wBbw~*Ej{^ZZTYx>uS3!DVuvdnr^Is$ah6oCCr6@z^8HwfIKv zT8h(mAugnd5_5pDr;WP$O?-aEvs_}@OU=tEnDW<2v=n66{}a_(Jpb0@QP}i4{Fj=% z2o)A+y13A$w+`sd$=68N3m^8_HP z?G$^Ldj%TN=GAD$Tgj4E9Xs<#1d9&D2Wa@QrbHE-jBF)4xi7>lzv%Z zs?Zo^mX)X@$xhPE(L zs5LJ>q4?9-$7s;lvizRxw9GyKQ^Z6u{H|?W+&(vG|CdgqHvTkzZJ0gWk#CDgSqHPt z&IOvtSW0tv#>p#ec==xK{SJ(7PPcF8*HP=3^=13i%Y;4^h3UkVfKAocN*-L2qL+j2 zJN-n#5q9KY;xJ+~hZ|S%KjV9ES(yKDGP2sXd&_!fMWw8$_o$RuvHi-Fg$vR1~4`llyM2E&Bc?}|u z@3NwWV@&&V$08=^_d2)@dPA>l_cAJ-tR$1g8*8iBfcj8cP*6}HnU<#D_i(JBb6)Gu zvqJm)euPc3`es>wp6s8)`oGW4n&O1`Aq?OKOl^71gSH|dEmQ>7J`=_j7iWds(9BLO=ht_M|NC6s}3nHAn(p^D;A3TV_Reuc$*zsi4rMq-9Zg=80BSBvuxG!ya6Lw6m9oGPA~Om**Zb-lZ!%Uj?nGcjG>h zA6nUGH8;w8ETTtcsM`YrH!VM@fSwv%JXuLF1=H|4*Q!blCMlP}0~`Obpv=`>|TNy!>TRhBDsy2LS(LrWMgD$74%00CW@pl&|egRW*6M5TY`J`RE zdI9M_l@y?L_k+uBH%){nJrX%N$QUh5AywI_(X^8GI@Z*+ zEg}*OXcOL#QELa{pW2+uUn8F1#|$I$`>D+!ZwUOio*MgKleg~&`1$GitzSGl*`9uY zp_cW1{U!M$edyCyLdP$@LA^qV{X*kisEt|19`Q_EjdZi^4XBc>F60rD>kE);Ue~pE z8tJTF9f>|kVPnGfnl4_mVv<4|9OsU{0^~@AyTr7mAX!QaETBfmBF z(1GF8c_Ex+c)o$jTQr>9_r@jB`8lCeb>U zioxWfbK+K&b)yhLyTviP;fstA6|2%y!V(>>qFj-!O=bWC^9#W;35BB=I>Wdy8^w57QVog2d!Gikot zLm#H(v_Wv{J)9MSv<-nxV;rJjU;`FckgL%a@t2B#Xa6-#<04{zKzq#xR&!83lNv$% zh+YP$^x92TJhIy`YCOIB8mP*@2F?|%*V{|$e;P3kdUgrFcz9XgXTH1y&&!~XwHb5} z{ZkV{(|{1yF(mP=uh54@xL3J{y{W`Zt?=hK9!ztTgs)#&I^ zT`LB2BYDJqcZNbpv7ASMOc2O+e6%bJ|4aBK`0T~IVvgHkM&7{7 zIF(%X=vO5exko!x0u-YZj-+$`1Er~<+yb_t0hZVPRWtLyf+dFxh$l)-(*Ox?bbcqt zKOy!JmSqWY-9Iywykmss5}X&NU@C+YnkBMA3ksYY%w;&dn#|`*)h!@fYs6XK;=GPx zbabN}gwVhitREzMQTz4;^hssyYJYCtCbFPmU>sXPWzK)6PtGvmBR1cT<ZG#A){m6BdGvCgpq|ow=kICSgP)*(XmQizmp8y%FO>*^phj)YrQhnk?clkq310 z!dCDMR6LbY$Wq!Gc(cYxt`=a{ZDf5q9An;IKg)G83^^XQt*a9FQ&tHEQL+9Wv*xZKTJx`#i8@ykq!oIYKv6&)0@*EO12w^k2q0AD!@bK(T_!Y{ z&ul{q1VGO5pr4oHT1>9p=3(l}Yd5TlF;zO$We(nLWW$uDU+PX5r50o10wdOG$0V0= z?pGO#J41z>PI7PoPI+SWbT-vQbU`Ay6V@Pu`c!@4W$`m|pk2^vLM+orxqy_YxC3!= zuiTSlK$p{DRX`G8owSO69m!9FnQ@pW#E|00nEqt3vY72O*#=5FYA0XMJ-%9^;E9I!i!tolrQ z{9=D_d?fiunE&(|igD^L0K4I`C-*Pz)+~MHMX{Ws?fFl_IOrKl_2>pU*$H`5rn5xl zjTx-SagH%CEk*@}bGVe;gc~yb`FvjhC5z52@r=R`dc~AnA>3GOK!(Yx>et94hZ6hT z;;NhHzih(;#%vf**^`E*tDd7F4B>mKX_BC4Dm5&(JgGyZWTd$6jvM4V`>h$h{5|+T zXZ>q_G_SEO-$rV=Mm4u|r3_wZ=mYo$fkD269aC&*T@^Z}{+{uh{-ECA`k5(&%^FCV zuDD)5EbDQ3Fc#ie|Dx5+-}}U?T?TnT=KgdE9(J)8^d(QefNx+T*L8TJiUI4d1hT z!;?Vhnh%uQR5GMDy#_V#cjW;6R0m(kU=CAPef`+e#DT<;6mqib615hPeBQKG9KG?6 zH`NFv9l&TAEn@fOZ>!ru!yGNn+7!~if=y_cay?iCv(lAkPj2&5}#De*b ztHE{9yEU!k#RN=ztFp~CW%xvMpEsCK-o^#f9lc~N#Jqdeh6WsuN*(n;bf|sFLCZNO z`QGsnSt}~?z483rEI4v0w@k4v5kJ1?uB4h8lDyBx3ecr7$+2#eiFT8fc_JAlT;l&j z-Ft>bnQdF6Mb5D#Nd^Hy1PMZc2uMyAqC}Al0s;b(bC#SXC^-p|lZfP;bB>ZTNLGq? zSJ}PK-sha}oV&m0xqt4z?s~f0u6p0K=A2`UIYt;?$Msh%gt6sI(bt5aI1H}&$B^Aq z&psX$Ym~!PnLiVlwTwkpV5BrB8wd|;gy$SD$~x&3k*@Kft5C&+7^Pg5U%*|=9_bkI zHyIamw(8C@BOcGVA4=-gRpC} zK-*LE$0M@;MGQQ}EKDa*cs7iW1Vnd;k8PrTAZ3 zVEr*G(#FkqzS)v#G2Hsf7C?w&=n0mNrIZI~ zkvdkzG(v@Qq;QyxHIDBB`eP68G2+8bHN|DdAmvBG*GiTCP^3Tmh}hMrSkA?MqnLH0 z3evCg1o)KmJWZ0}iijp5RZe#L;bOkj65xkF0L(|~FXs2*v21n<=P&*UQ?Fb+Yjnth zS><3PYpa53G)X$+CEtI2s&qbFHY|q1?E{8l|2_cvZAfJ}kb7y?yE+`+a)MYjAlA3c z!RA6xMfnpbr7}95^P*4N1?n{Lq8QDVzr3Xn=;A~EFAv$o^>Wp60x6^efu}hQcobW!vC2P#7oH5%Z2mzb>`_W0bE7PMv!O8>jpu`- z%~-UBuP4{Y7QQoG9Rv#AItIG{kHQ+y+POz+K^n@tBc$WYNuQ}`g=OtORFx^DL#K1j z%CP2#mlk>#Glmyn0Z=1)tmp;#grHA&aFYdC+FcfdPC&}kOH@ae z$P0iHcX z3H+@>zTen4?5?nUF&sSA>pB{ z;@Ir(!&r92_LLA@OvPwt?|y=Z5X>ScduD@)=CSSb7;3Y3`%?~xHMCxxbu3;y#n z1`=m`g@JR{p#^kcOxHLVsbPwm^`z;Ef7X*}(SKG%eRtA>ughm5*1BK+jYrwk#wtFy zg0%c12`mNfaoLL8_546LJ;?nH`S`_efTb#1{DvB-k+OTezorY}IeT!CUK~;T3{<1! z@YVeosk^^)ZLe>e5<0LHiWAjhgXQO9Py0+SmdvQsj^R!=PvY=`4<75xo84kL9cmg$ z2<)pKuXLn*24H#PV0G14SpXMp{yGc8{!yCCOUfj1!zAIBOfrHZXaSFv6tzqm&&(%D zdZtHVFE$_?4Qpva`MrVbON!i(X&EdJd&-R{k7@PBOY>wG!2KB(@4gB1>~D?u#qzj_ z!UGZSVaa?HIk4*fU|>br^so9U!%ZZ1X#+OBMB~(pmXD3+&|3<9^ zXOSK~i2HIl(o>c57Y4WU6DE~5o7D}m8Txe~YP+EC5z9TRDA)peSIQQQ* zmKRO!0usHp4yfK>2Bqs)GFk5W!Wf_&^<2-0OfP981k7ll(5FZ`EY}mpv79U(h5l$R z51@nKMZvr#DWa#v`J8bE;uG16D9`amcLQ0{o$Z~xwrQJy zfC}Pi!whkKG?GL(I!nzAgB?crbEEPsTc4P;!k2R6jVBM&VuWbIy2Y-rJrs7ED6tyG zBI#DjTdUENDzkL@TQR#Cmqj|JnC(E3#=9tQcRt~E+vJP1_5Yw+5znpX$%8{A;E1%h z9RUEw?JAcMdA1yov6+`)&3_xYP)*p=*w8#ans$A1((t>U`*imEpF5gAxwydsY4Pjv zjTKZ{FNL#mCjjLoY-}Lcd3PMh!1{RB@?Y!YK1+Y;4DbU%85F-E0j6fxkJxmhal!zh4}yQ$%8WNI%G%j4a9ntZQ*fM>reew1Nl8#TOs#~@9w6!tbg1>40>I+ zp>EG3OZ6jEYEn4o0G{6eza`b-MRp$Q4J7VAY8>(`>m(q*CmVi!eNXVthu`Vv-1~;% zH-)$M_cVAUbh=C9MI|KTrvrwmT@d}7mGO?>139=c^l-_ECDqE(@lurWl z+xvUfD-i@&{JkN$aYH=zqN3`I_c&~h&1{~w;} zf5#IZFyg?L+WbZKepG^sngPtJ#3xS|PkY>n&)_0rfuLBG$lj%zd_oUo0kO|G8#^+K z*Rz;sH+eM9?}R>c7d@vriX>!88hc1jtsuqtxMM9=bUNnog!jX2;ng-YSYU@nc}A0`)^S<&j074?sr+p75zU3d|Sb6sds1|3{z()RbGS1KIS)iLy;$oO26Tq}gdo)*BIXBhyjWDR&)Q<8k z!N?GL=>@RFkczC#xuzm3R0P6rL1Dyys^9=F- z18vX{_hbk#a2^~%ZgZht8wAqEpCvtu1AFdw0YC2*5ZO>lH(^4hgBmGz?R;1>W!-q? z9{!+abMIeQssDjQ{Oenyls<^VuLuM0kvsE!?W)3}@qMsrwiP8w$Zij^7z^#&$uw@A zf}mQyLx}aCm9Z1Pzo~#b2cME~u&X|gg=4h!GrxJkb_2N@=Q+>nqPrR+%Ni6pH|r(L zu~!|`$>|c?iKRcO)V;L^q^#`2Mudmg%?qnb2R%G^gWK~0dxY8KGtp~;tFpm@nNo0XVS5F!s9z9IIJFh zFEVjYR{gHK5zjDVUs=IarlNJGvuTwh>{WZ-D**JACAtao`nw(9dE~DzS&>S;oqfm# zEc0vhwH>gx&9U~nm?fxnyO>=_{RQ&E-Zzw)0SAW#d87pg^(&-Hq7q;WOeGgI1^#qi zMlR&(?Qhacw?-+m2b-2eSSyb+zG<7o#N8!tP(lB)@WoBgop z-ED;TDo06;x*D%{8b9N4*Ol@ka}G{``7nF^5`nc`l4Z+aA~|$3O#D$=1^QP{M6Vtf zfgbSZLy}C~vnxgA@78+kfv4=R)AC5za!}>Cx^{Ta?a3nT1c2#BgKDTdXZA#baDW@D z+gey&qTh5XT=0ixaZ(bG+-)l=YSdSqQQ1MHOE)TV>Z)--|NEtGV#$4r^;7;2xk{J% zL%P+|jxvBJG1+|Dx2J(u@{)eA%F;%?dRKG?N{grmFvjPsdQ#4F&8oU~&`QL;FgsqR z`%Q~z=l1<2zOY7aceWKL#_QL%R&^l6n|!U({POqJS)5~Wg|pRBDYh|iJ5d4<1BHdy zARflezX4)H!^A86p(U>41ta^OziX?^kQSKjeqPUh{`QBu4&nY*y8)|DdbTCgU>Hw> zIok|>PU66?Dk_T1BmIq1w@g-Y7wU1@u6HSIYdsqzT*d?4Wb|>ozNrfQSim^Lo?@}&trJ>eJcpjwpP-IMgQP-F8vdtjI^5b;Q7B6 z9ZEWk6>YE2awBM`W4tCZLDzf*wq`Pv(`L?|>C}8L*v!)NrMrmbYB-Qj^4#qabF9=G zx6^PUr5H~MIISp!QWQw@anP5kri9y+3Ms&=1Qh8Ve7eUanC@)T*orzPN`B!%WQAb~ zkH~5qms0F}*ZL{xU{8!lzoUimtCGk)gTiA(J#8Y0+yD8m)qkupurJ^{+14FC`fa6p zbQtMXhrK-Vx!NEwN%P%jYKL$w#Kpo*L$&wHvfMim9QgTL-P-*(5iVc;FlomxhV4VD*1eedn|C`|D8*W(=j zq+rBz<|WM6Z(n)=)5@MC=5B~HSag+R=}!_YDO{0!BCx&s-Yj*K1L>AJigcgJ?7oO* z^D#&pB>2S-P{-o5>mJjg<@V4}?vw}K%sbQOxhXRZE~!_oC3w_5G{By3f`XoS@Xyi@6Pf z7hAK}$YTdbPTe7=B$ubacI2z|r0@?4fmBjBIHi}eH6XLB*TRyt!2KkPp7s~}V!c$< zgO<~E;O8RS_Op~iz~3iUSyX5q*t!OEXx=elY$izKiGjjljE4@K$c-~uG zC;r2Zh^XX189z!Y6}K$lM&u*60)zK;u^ZFqfGfCKoWVD6Cs3aN`+e;@#Fnq47M^@Z zdA}g_NZxUzFZJSSIuv;`fR*c=!P{P0&f+aB39oop&E1g}XV;g5HzLt_MJYGAw@0QZ z@vH1o9s;wRWj@v3N67IxQ1pcHq0WDxlK&$n(d5tiK!p@;lQ!K577p32_3QvQ{Bm=J#VZ?FKRWy1PMXY$~YDi#=rN#smuKQGvKmC>R^) zJQUXD(#~0_&)=zxnP}UdpA39vsF!{;4mpXs*3?ruKp;lLb5j9%j38g6#h7!N0^xY87Rf3D>e$WKoYl5`6=_+h1M93M@FMFAWH7P)fY640WdoR!5yA8kvpDZ}x@?Hz z03;V^bMJHKixwQ+i#n{#S0K959Oko%j-a*c;~}^ien1zKTnWXd6$-Zp%Mmi4Hm7EG z5*S+KGCtY(?uVgc>)AA81Y1t?Y~A;n4T}x)*&*{Jsy*zWR$2C? zq!(GYw|@I6{Y~UEvIg$$WVKG$`E~1CH}oU-mcGco+7P(7NqOywxF58t4Q_K~zBrXF zHWf_45ys0j4xBrIG3t|A$)=>E?NWvFthcG((Eb~4?mmYK=~{q`OFe7Mbu>=Uab%}= zb(+vJjXQkahOn_d(!~A!-5og5$lv_3zL^;2b*>h)mCJIWpY8yGOm1@D2W473>X=Wx zws{UkZ1L{gGG}?n+0@p9hhFUP~iBmfypzVrN{oT%j(p*>7)e%|w# zl6c`wO3;wUK4AlWH@{1ihZjEC9h;07)z)k8*V{4u>@Vz#W#dz}()zgJ4%`RQcQ{hP zt%8Z#r2h-xth-d3{%G*sxYCu;u`e%@QYDA>9_-@zQ0W40zi(O+^?_r@Ru0t?gM=1| zpTW;KbqL$kJf4w}3O1~{llFbk1WdI~Aln*N$8R@dgr&Y+sNfz&3sCxijs?a=bj&D` z)(~P$wf+2p;!jFxqVu$t*~COTXvHX#;zSSA50la0C(pWBG7%HVb|C4ezSbRICy~Y5 zSB^>?Z}bv>dP6g0T%ANlP}m?*LZHacsuQoQ@D0GSGV0La{CUi-i{4O`uVGVC7b#{w zR2S13l#Bi|ts*#(NXO}gwRI4pf(4dm2cl|f5~O#^q&Y2MoCU5 zs#_?j+0IYxlO30qEvoWEV6DsF=b^VfTMC@b{(M-54I5Tv&q_qeRr6Nfv&)J5iF&IJ zV7$hJm1XY;VI-ppJLcXrA_q-qlDMd6v$)l|jVNqqRY{NC9FIVoOthsq?*DM|6`xxP z%C8|J!=DIbM{<;JdroKN54}LnwRPH%-V?(swvzOYXyFJli^Aemeye6*j6XBZB}n$O z&=y^&zq-A1Jh$?go#}@qMJ5NPA}}6M0A}~R!Tl3e0@KE^ms8B(H}$q?dboJohM*er z74j$kAOE(a95V#MHZv}t0%6niYRL`l_nKuC7;m4jte%*YWnOIS`^X0sfRiIx7o4hZ z^Xcj+Y*Wq={Rv-jc&#YS9gpXSw7E@GwHo(KuJ*dtg~|YVMH>}=<#B$Yc-~4xcjMaC zQFPevmFsf!F_1!3j?vcnuH@~yvy~OUNNdpyPnucRpxE5{hvc@JrCHGvRp(>5KrZ+9n)dHC}a z{C$KwcA4-gd31}ZJ$~0NSWV4a3U*lWAor6KaNe#&rwaR-B(3jrJta^oq?Q? z#O|B_{fZ2I$K+47YYHB4n2zvQX%@I5Mb9^* zX!D=EsRwp{&<+d-HmqdI20ngpJcn*Iz1c&Rn6Y^J(y0l@JQHT$6l^#j)|MqC;?6ytH?wt)R*;}AbCas^Rnx56!5!g_c=v@Cu9$tT+jV*6(noCZpj?8$sF4t zz-9t>$T6BbQDCLbQVR%ww+$lNz@kKZ1?V}PbZVoN#L3|PXtzbSvS$Y9Qe_C2i!{~W@-2$v@?2+ay+D%*etms3m$sH28> z69yx?)M>&l2w)_>5A($O#z!cM8H?E<0?zBlmtH{J)D|E3DvjEzQpHmwndC=NovCyd ziOn)dO)xqFjd4L}FdE#wFvJsue3i`*U*;MJ{Y)2Ez0)<9wNN0;gJO=WD3tUJloJ(@ zhmk%nk^xsDB%TyEzT;d1VKWn45t|SM2}CRLO@XfSrV0E1#u@(mgr_gurtJ5I0^ds~ zRLFali9tf)&2-CS9VB`12^qZvf+v|GxX%@rT5glN%rhTdfw1N zY1D=r@Sf$dYXv=?KRaBZ9=S~SAPAFc!f{QSaa-~aeX%LKMRar4m?K7_iF(!r#nlkk zCq0M?OndCY`#jF8p@&%F;E95UP>!wAm3l)@K7L0ys-1V*IlH9jsRFBc)jW-4&$l%> z4Y5VMwb)$x(}J{oKmM=EM{zPjBrcbCLXWo7oL>@>OtF7a;g>ryyA!^mNx;(Yh`)$| z9l-t=-6*OY^442ff!ROGd^Asak5T!w;Bi;34h=I@qIf%pHflA*DVYB$1uG(7&-RR6 zQP@G^gW7GxrKsMp4W z6{wp0s&Eu{prC963qrZ%5JWe{K1SHV99C<-NZ$?feC@q+7{PtN*SK_F8DS2Za`;63Dcl(7@FoDq1g1QygLd;8{T|g387b zWdxF=)wMaBNd%LPt@QJ{eK1fcaRzQ4s%UHXQxbSXkzu4QXJ6Gg-YL=HOuizM-Bdpv z#%)A{S7sKSA4h<<$DB-7xS{rYnlyylTf7kD zz!!#yY+ndYaGl!#U+>qU=>j)Hl0@OC_cc??h>0kwEYm(lPT7w>wR&z|*JCG882LQ} z48P^7#ikR=Xc;er?i)uW?66?cJrNBZ2jO8aF@JTGVFxbs3og70blLQVe&-Mlc`z8X z;t=Ne!({_s^=>@H=ToSSuh1xAZInzJPF zbJ~JCj{M=|=NM#h&Pp~g>(Vk!i9=R=f`=&lC_yjr^OV90Nm4w|w+MDbMNFs6%>u~O ziDygw>(P@b;|ZNv{I;PCMMRbd6;2fxj*-<$P3E-mf;iqhArXT z&GYfz&&!kF2`6kf?h=Uk71Kc;&r^jJO&FU0(IgvsDQctZ*0_( z&bB9y>qssEf5f5CRaLC6i-neMTv^l~f8_o(N@u>}pTlPB*~6^!PL&AJLKCIC$f&nA z{*#}5GIBL`g8a*p6`8K;T}$-N7{y%1h;iFBk`bX<`G`2~HR73A*@h47y6nNk(lJ~O z{GZbB<6e9^!(lu!XY;2S5mFcCbtrWH^x=?1;zMj0r@?Sp4@o}f(f35`aouygFP>XI z?=J28s@ztd2kugVTNu^oSyTik;4uuox*yJgvok$V{N~=HI$ig}cHv!%yIAd+&Dwg@ zlL0;4jh9F0SCaFPlqMCR8Gv^+vreUuWPjC-LEhf;U{#03&(BXq&1fvlC^rXG3+`#l zivFW);wTg>3UO!%ws=y4t}FXs2MOzX@(@8&Fw&^nE-!d*69HQ3J8Y@WhCc}LiBO*7 zIJu_?SiNi=c)MHI*~Igj_zI~)rZU5=l?s6bKxmk%d~WJUK(5NxatQLbG_R(p%o@@h=^! zD@_9Lfo{1qXX_3XIG-TW{WaRAw%Q)bWryz*Inb!SG2SdggX52P%fY{7K^ZrXuxM<= zKdU=F<-RCh*TFep7RUGI2&n=GbN3O2><<6|8hb0kegtcB8b??!w*^Z!c(jl1Ja~2R z1{0R?%ex8blPwoGjk*aUoIbWS{I>h7Lbo)x4@}2`9dE9I-SUSz&?J11WjW?sO3YJY zA%v-XP8p63MB`jp1LA=P`?oMLD494LV7)ABC&1#*m;n-R5qiIh5|w7f8>%k3*N$Sc z{wi2q$6s341FDrh90hlhEX(C{HU#&;@ymsZKbJ}a zs)QIED64T(ivo4T5DMFS$==g1SrJC<=VrOz?i=j(%tWy?HKIH%ktlqK+V=U7#H4Ea zb)W9(wYMpQy`g8{b48;mGX@mB=X`hA~WdbnPG1U;geddPW#M1@2R15X)IXl;HQTLjCc(GLk4v|28o2A$buj588i1F*nYS_YQ~lh1vGwd z6KkdREMp)|%p(L3;L-?H(wh}n?*Sau1J^CS?Seb40-wx9xUlZ9h%d;2L)A4iFnk8T5mn}MhM zbW$(P{Z~a=e`K(~H*|NPT~>kwSmk{)$aSJ&u~l+-_t!Ax^TS+xMF=Z-GbO?(#>krl zlJd1Y^uGAh$j84lxl#}DYHI|USv3%JsM86@gU;_=Z9~rIHbf^2oei#$I|%sVXjnWQ zI$#q3?h;b(|2S zaYsQ*e+>MEa>Rw*BNr_>mVaK`Lp{+HJm*_LqkqI%f(v8xxCTROZ}LX9r}V2vchh~~IjA)PzH1U=qTSQn(WTwFhl>2PTUFCqSVFWaOS$wgQUty> zz5zdE?@Z4(BTEqYp^ZaD!Q*v*Sp*qv_ni@YA5l~_qcEMrxM$j+&hL47=C3DL_{}V$ zfeevBL)-Xk#$uXMu~Q`W8<6Rb9ELfQ9VL4JEP-15p1_p8->#d22=4dSFm7U_jB?x9 z9?jNI%AQBD1RIfuX+PM#DflKxK^BSL3;tTV7PlZr3(g+Ov4+TMUH$<{(MhJkZ4OB2 z!6;XBu`F$8OKI3RfmL=9@$odM8Lzl}E!qam?X0r0cr&f$T2CTHN7+23R}Of!uKEgA zG|SS?DFf;G+&%s+CJ>(vEyVpVqmQ^`Ig6L zE=WuwbKX(JRdvAi|IHNh=r&~$m`3zw!rQ0QSx>e&Mi_RC9no|y6CoL9GKGo;%Kfgl ze~lGdb+4-kq?zz)R?Gm}>K*xR%$Zt-ZsC*e_t09|a~XPdO@jb@_txT#z&#@?xFd#T zA(HY+UIRv@@}>1;(+)y8Y6Jxkcih%B*T-wLVA zCo}>I=cB&nSiHs(iJ9OnC|pn<9=AEt=Zl>&-A$W7I3l4AG(5Z0(hLnWoS=)UT8HE44YN9gisNAYN&vE&ho}A&rz3f9jjdE4d4&{qH zde0zUUi)ayuPD09Z)9)xZ);Gu$qG5Qo*P}NlOyiOa#(-Y&xVv2iY(jXGQm3;+S?1B z(N?7}5mD6;tLlox1Xzy1;zbUh$=Cu(xr@KBkg&?Z^MO>=GdZwGWPF%K)0r>1Cl_08 z?|kQlx&H^hF;*^y87AH3nmoA|k2N_W6~kLz>x=NrU~gE6Q*)Lj+0q)FD6DeD+_S^3)vHcLz(ik5fpB{&$XSOXkY^wtZ z&_H!(%g1sg?E4R+u*LY(O4vGbGUMypj@&xrtOfww?Jy~->Z4?09-G&uZBai#$L+5Z zC%r2Wk);?W4DJNykIi;eIv%Iv-Jpd}u6PANsE;o`lG->w2E&>|A{BNywI!c~7-+=I z2V|%$UdhQ|!+3y=rt!SPWPh(e3Fhg<6XL5(Q?|d0_-4vq_{NVd7%QT7;p*)X7%$ee zym^s{m14!D228t)enbOWRE=|9H&+BJ2_k&q51Ji-hLKeX^Nr!qI<%9=hjxjILd_w5 z$ql2Fqqep#4)2Wo%4nn&5q;@(+w;Ea+cp6l5sEI&Jj7J@y`f5^g4Fvn zqrqrL7!8ZkbZPVSBZ?>)XZ3PBPKdAcKz~=6To2Nr8Wo#{a1$1x zeGZzav4g#5?IbVPP-IrMTSo{4=c0t_r}&pSJ0QfJ-^|0R1u%MDhdui_uzB0f&} zNP}?|5+kJ@f~^(i*JI2ZXql4cGO(x`DQP#Q4q@nlq=n3od_JBtNFIEMJ1km^0Wn7e zC*E-0b_xzG1;_|8Km-le@;b>X-Ul&Vr51b~;f`2Kuv4FS)d0A<)y|LyvPDjeiw4wh zt24?o8C}7~PwlY?O*V*ayt+)>c;g&#+{e&T+a??-b~^TgYKqb_nR$S016q1Fx!$PF z1#>mS@+r;(-t|IhWDmRkpm;?S`&q|Iq*$sc&p>>%9KJuRDLxZrqNX^^#O?-_%Xc`k zSZj?v+d4UtW3r&}LaUmyY@yK}>`*40J>swjHs5R)`;jGHJ7f4ZzMlS$HboPiuA)gAU=QmlP8BLo z3oC@W!)Ar5m%1XS;LSg-@t5^uEUCo=Ud&d#mnXTjJrMn~n~{Zu95HM$S5M-t9zUXT z#4_`(D0I=w<$$#6%PS#rMv9hnpQHRV{_X%-mx+TXh=b=5Mn}N~Tya^R?$@on`Fal6 zZsP7;qyTeT$&Vy{PB~E`V$7iZjx1(@_e*&^-X~Ok%uIu>71^vac^7m3eafx7#F?=i zB|{wSM!X_41tN^by()s8tBjq#g4uyCvw8Ho+Zx*T&sipaNnf(N$tyBKJeu+2tDlK&R8__pIE{1MYX-kpx+*|6egg-_8E<=!R1+|0;&e{@cJ zRM9lm<#kn7=+hn9SA-!Z9X?lP8r<8J@QWgEcd zPT2U^>GZ1!tiiutCuaFS;8fc|%0rrrhV$_f0oATYyj7#lXfIa14?`TdT7!87sDg~v z!AtpSQ;I&MqYS4rAd#~-)KBxQ$ne-I`4F?oig(O<{W9`6RQg_3c?&G40^(Uz-os%q zk@%SI3jmz3ZLZ3k84QoU;lAX*^e%;{q8`3#ZB`|OnM~3|Yy-|)x8?1+8a5VL$9ULp z$&jb~EAE(Ha-efxjIuv$rw|MZ70Owmq(G}NyIZ{pF{N?_n|p&IwctfGrTR@fAg+e< zzKb8%5$_0Ga%Wj86IIB2m2*dzJ&(I6RJ!tdG#MrEk2J|F>MLvH*n zv`NMJl#uOZDKoNQKC4IG&={XsfhNX2hahLs(kPD7TdDNk$ei~;!|r4;loA7{m8Enz zgzXFy^O?*oG=nm@A9DYe*J_5pOtzKS29-?~Z%RBv_y=?;lk=ExE(?~-D|VbKcE!HK z9SVR*4t~JwAgKqA?Jep-e;jBGP*qpmJGHBywMCb(Mb|OJiGTi*c^#+70A&TYw$=5X zH zM5#}?V*#gu7~l@qT2X5buFy9n9<_Z99j$M=6V+_TovirP8(KFBF}ll~x<8MatdDQJ z(JR>$e7|an2_=lvao*nwJrSiTj51(SoT{Y93D3s&I$&iS%$j#E;6t|~w>fcLxDUf$ zI^`p;#M>QP#1?6FPzj{;@b=H}2aO4xm4S{9p%RPY4FQzBRg&Jd52{EGp9UU2mz$?~ zRD}yeagOzHQs>cpgJoklQK&^V<&U9^dzx+p!F1WUMKWmQTuJhTByHs5iqU+rrN-Su z*UkS6g#HCVn0iyN&0YbSTe`Y^h{qP#3|rj3jX@2*3;DFw;=&8 zHHQERp`b*?=?rXV%F>(8*Q^p1HavhC`bLs!5#8};AiZa`W(9FmG)EG90dZ3AB2i$8 zHkmNE;qe5ak<%k;U(pCr*tYB9wM?$6Lbw8x*iMHpU0-g@ZV@r7T&|s7Ebw!+Y|y1+ zx^H99F}^}MJ4nl=aq;?g7mgk2Y0kg0q$!d;ZDbsz+PIqMnG>1-?!7wYY_TKk)|%05 z&TtVD5e`YAZND+D)7I&Q8V&fPq|a52K^F|yhGGmlK}UpkwxjB`!MkNbqR8L zF0)0}R3e4tMLV|>opTsK=p~6Fcin-+yZ(oh z{FU@Z2afp4)cz-n-cO)#ns}S-W$AJ27{APiyt__Gu3BOd9J{6XYA7j9n-rxuR818H zudD4;xMxFm%Lrj*U~&`OeW&`_IynuJOMDon-zlg#=jP}niT`WQ4y{$)En@oVHprQ% zWV*eaf(jp6FQ51Ng5Rnl`c4X5Xan~qHWN{p2b}xw?%o@CN3IfeL~i3tyJpxCVepvz ztQCb#V(+Z%5B$E_@K-zfbEisuo_u>gf zc_x}BXPMoKLD7KpsO3HWU38!VG8>wa?vq^dw)&C;_lwc)bVF@oe3XV_L-y!}Bn+jT zlFe`uWzV>zQWH=BJVhsBRxSQNQQ-dYjka z+-)^!Di16+Y3!L~4zQYRG@ncp^I30F10<9K2m*lJGOR1zrX zpn&=uXo@Y$-X}QSA^p;;X~y9DQP6<)+OIXvLw*6_#tRtG380Zy47`E z*4~eRTaGuf>vz)Kx@&~!*EYW1A4Y2U@iQpNi*9MB_9T1yw1U6xM=;Wg?}lk~;cy(%AJ8 zQ$Ot;RY(q(h42KC2$(v~_aBvZ1n3ya6+z%9h6LNl5$!F##VjlJK;l!*9i6i%gIK0a zuc;h~{)wB?dc)Wy$F7-R!z6Zyvj9_TWZy*pYpKE_bsaAwEBe}%AT=6{Cy3w2Y;5%D{mxzo1P0IDEQ<_YLeMEQX zH(guW6^oMcRcK&TKTpPLaAXw!k>%~v0xOQJqZnYtlV-Hd=zk}Pf86@G3CCM@EiaOP zRi4P4KOqqRtJ>DVkzbczU^(%Y0&_ic45=__47s{rHumc9Gj<=N@f<=MC7QKOCZ9C^ z=(u~H-IYflWb*7kWZCD)V=}so1$^~|lWslFUweXBW+Nm*Tt+>ilS+M>YaO2;@>TID zUT!om%`u9biIC_rKdsuBE2Tq2Ih@o~zm#|8F6Od#g*aL3>e2*;%sSttvIIew}Yb6q!D}@RL6`DZQI40pivC|+TXl{{nP>KmUusg#c>ym72 zqkz4z22pEc)vy&cY8iqTcdQyt5t&g#NEyk5ZYs3b0Tgk>gSm#>6!X^+o1P}mO+|)x zbc0;3M8@M8oDQH0ye|aw2d()sV>}za4UP(PL~|6+1RbYWKTQMP_mP!)Wt~Ic>k+yK z{2l%?A3tnB;q5iLSrQ{s9qW!*PRn8aNht8e-PX2B7S?4!fbtoG^^v}qwI=6g3<}LE z{7puw5<<35YToh|KRbaul$%P-(_MgMz}F8W)^Z)2R`>_QF;I5~{qzTGrY;NwUS)1NiT8ev7j~Y1wA-u&(8{ z6tde?8zyMN>0YT>Zuk~q@=Bwx-OS15CzUtOZmsVHr0Ik10Lsk9?LCtx@ImNTG4f^o z-bYPU3AU2XDGsCN&-U_G9veI{a&~;Mk%<^0epayUoIh=w! ztX(s8laL4QevR0$Gl1Qop$_5YC!+XelRx)%s9+!qJ8Pn7044>CqKfd{?W|wd_p;V+4*xOjaH$5CamRrzjyg~E=Ow#ue2MDqcOj5+8!Njtz%L zRv(~_m~|8wjThM)%hR0}5GnW(jg%EF^qeOa1bCr4D%=f`Nk?}e{`iJ7WBHA9V#$%c zE^aP<4{JC~VOTy|>4-wvizCvV#5RR;`9lJy^9N-)7td|Q+x^G#et|VX1#cx*3q0eL zW8cxWtEHX?zle`Is)8>wtrdjXXB=tr6vy9I=+6(qywl9g*k*GKVsPJ>an#~>66fAd zJh$;S2zU6@ytN#o$h9S@_+FhIlmT>@54p`JQ(}yEakdBeCdAxV`V51FpRUqD8|-87 z5hLjCBP^gBGP5af6C%i!QKXbK@@L(MBpzx(mD6_*h?S?(@;swVjw9*N0ve8ftr`>< z4~QpSJ?x|(G~x9wHmqxh%m~{Qm37?i2HMBiUdCl_D8cpt+8;djnIeH%T}#{3#=8O_ zjJ9gZ)d(sl&^Uj#_if<^6b6FiVZ*jN86DqyIuZ1pZxkWR zOKtjJ%$}2Ap^GylKKQB%zKor(gJ`RYFOOOug2q&WruBY14T+`a{ECw1Z``Sj*ap60 zi*=icV)vcI`%S?}KM~|+j9oMXhc$4UK-f|?FOfEpkXYsPlQ)0g{IqhrJmQPDLg^#( zFo|>wZ;c2bdc&NUlH$9{B>F?ETRT5n$L_E1iul503{Mk%oP@9OiD0jVbW3F8yK>P= z+SxEYAp^P8`#Qkz6B@kAI%oBb+|RT*^tBHP@J1tqrGu`MYF%H7^UY#46KXaS`UD=z zoi;^Ev^@Q#&Q$7RK0Lzb_Nku00flgyBvCkzzRkXXc^&gp%8Q;~p~$=XB9f1F5-s~; zZ2jA9Q^qJK(tUy2<1=8JkRTLoo3=Fvb&TSeZ+bwIWOKPYD(Ht!(hRtg|yqc+n`_Mi$O|h(J_uCzT zThzklXaR6E?_p=101MbL;{37O@ccp>2gL$2QK1bs=o!m9P`b}UeuIK`FUu1G7XeSD z8$c0Bf}tCByR|H)W~2s6n2A9_c1<)DIW=hT4?2-$7e3Z6YVB}6ilB?=zXw|a@QzWciW&C6dG~^7IWnGjhJbY8)~eEP2ef4Ubv4rSc&$2`lgAA3?HpTmRek&Ipd|8X3j0J;LLc7UU3COh4Q7&(0ORUqyQOStvpzwGuhpVhC#e4fY>VhSaLb?J zPcv99abHf~f>7VGbh&R^eBZg@XlNd}Nm;6rg1u;exy?xi;Da)>2o(63!+pE#neLn_ zrPz_ahacrrC{I6f-0phXOOZe<4Uoz#oHTCLD_!r3%%efw-g%p!(VGw z6n2k-CmJ{74b%5%QXOnFDQ0PT;V_ z@i||({^r2jPwAEhVWEtqW^b-C!ByD|Np#D@MUn7B`4ZH8ucMD~DJU4~hb>O&_@m_z z+lZfJkP`FIL=~$ECwc6FFVw)E;-`0x2=%-0*(V5O6s)C_RxeWOLQUuNr|_PR0j00cd(V4mbz&6ObV8LcwGfG_mv^(n5381q&p*-f|odO>Y` zVs2N%%x{}iWN2IljF8-RCPSVjK)_jbf%j|?yH~ITy9wi5qsrOuIK^Qk;|j2S8V%JX zKP~`|IPDw0%}|+sYwZ7_?7f4c+_P`*ZZeWVat4W#L2Po)NE89dNkCE~K@e=4oO2MR zNrHkT$)X@xa#o27O^^(dGkCu}XXba`s<&?4x&NK2IaQ~o>3*KQ_gd?-`kE7&hNgee z_5|x7mCO{I$pfYQb4Ok2$@%6(f)!%UzqGyczZv1@%dsVi4nH4$KFBfl^OH|Tx&ZKd z5zhboS&Qd=$5>-ZV;s_pYl)4qNWX$wn#(!TuY6!dQo+7G6ya~lw(n+q_v-B!xeF&A%*eTo zu%+`;OMiC+(D}%+hk*a0b=cne3_5w!Er9k>0KHpHE?fAn2 z8KM8!2|+2%BJV{o0b$*KD?K zyN=gY@es)G%P1UPS7KT5b{A!!Kq`ap3XGplr6h1bPiduZ;Z*c8p)pC1fGU2su zoI_v}^*xawJmurJc^jH~k{1CqyuUex%ON#;^*x%XWLDYJRjR0@CwZDLiYQh!Sb7$9 z3SSW`2cLRB4AH=0EjlO6`0$M2eU$7Er7QB5%hUqdajvAs^P=+u~m6X#9TbP*fgOCt+yEar$WH3F#dx|zS~*Pzvi!@0f{JfqZ_O5?6GjK{cd);fe3}h;I^~@A{7JPaGD`NF zD&3}t5M_k=MX-u_vLMq6{Dz0RZg-A%H@%caxg0D53TL;kIR;UHccg`O(cc-<7zJVd zR8kt}b0j>%6)0MW4Wpge@i_723oc3{PcXXHCJEa#a^6^JA_T~ z0c?zzQgWEW1V!eMIGT>}Asjqfgv1&fxjXxc%AKOaNEGGO;;;A*7b3^N< z0`M?fs?EFFB470!_tviWK@`PIx&Caqo1r&FRNOB8i>fZ-SJ9CrnbPATq9C~xJX@-` z4X2wy!;zQAfhyJnW>otZ-d`lzYG>w5VXfUOC!fbQ_<mLL%Mrmbfhf8G6E_RT2JmjUiwIzR+v1!t z?D27w=TKOC(*(mONY(^l#B+#1#1Weg4TK#}(=IUPK=+5I1QWJm!}a+l6|-{u*Qxhv z-^&&B<&N$*&~RLrPTnJch3+NcD!r#dt4{Sink?`YrR)HXY>m)4X;;pZN$a5PjJOi4 z(PVL2)kd$gOiE_&E{Z-VK2!dGraho4t#Y>54D=#6JMi1muJrIxdh=P!rqE~-k^}qs z(O!m_!x^^^cgiD5$=rKE=|X-dJ3E@i(#MiD(@glITdbu19(*|67ZMD4urNE^_g@9A zfczbDt2SZm-NY%h;>+<2^LyMT=?cC{Cv5KE{VJUX#!bo1TawFDjJ2*BnykUQN}b(7 z?lhrS_TpHlp$WXIr|-;JtHECatj#wj@9(RnQfB_N+$JE!E1aoDJ&kwecKwOjl z;FNe@=94c;%GZU!^*^mNIWENNzlDW0PXE4q$7j`Y9=@Cwr65-naWCTMtyJ8+41AEv z`pucBFOQ>8<8jrM;`;kNVm#VdpKf;}3~_RILHv>H0l6lSuuBCJjldn0wTB!qc_r#0uWqVZH&UT82eR{AIFlonFQ5 zr@TGadg=aSM2o-Q^s`*bcU(j3qcr_lwmp75f)5)effkw1+@+n;^`#u22t0r9IUZ1h z5V`}u=)>G4xT34GqJKpO^kr_Ra?LH=@TTl+MA2pt6qmtQ_5K;`Miu=UXU9g)MdWLm z-i_15+hAgXkx#DzBvd9?w09Z)rqik6|EmRVqy`{poytxj{ScI|b^b+XI?o#rZY8 z=_XXRgyIeJ{<9?<>H)3$D|f;(Q@0bYq+38GeDdi0aGh}Y$1iRJgy=ik>e)(MAA@If zH4ghgo!xgNf+*TY#}9aR>6S_sj`B(15w|a&V49xeN~H<=8#l)^Sce9nmZB4`5)eHI zUKD3z^jAn6U4<`qI|h=&{AdZ@y=HJ1$^!?jipg%)H?h?TcwT?Xn>wny5s^3=T!;dY zt3X54gtw#Dif=!Rxj2a8B--~)of+NEEk>VAyZwv1t!MYFQ86cCyF{XqCwFDC7kzJk zzB-<*Rl{PABAxTE4q08Z0a5YGriiCgf**grd82j8B(o4sm5RAvj_^?C^0de$Tc{sf zVb23y9P3og>V2YK_^}m|s?0BOGm<6H6XJ>0A$t=`FBvbID6a7JA12Z^!VQlI7pf82 zxYwQoCmpU;dM7v|bh&ppP~6_R@hMg!%fa&iJVhuoN^5wEO89lMU?v#MLfva=~%55W=5=trJ$hE5FZj(*|-?{ZbW`XQDB#KL>nni|1F(j3D$i@QyyAP z%b}7E^xH@(=}E|E?6$-|#kdFq1YJ!xsR6V_Clg~zTh4Mw>`Q|bR~`QdR42DflW5`- zy*6+k=PCWy8e1|NN!8k2HS*Y@%#Im^;=~#2XA|DUorhEqFpkEV4fIS_&_`s8+lRT| z4J7{ms5(+c+sj6?D6Ms=+`Maf-4}ElmjDi9lV`w2*cFFZWG4Dmr~Va4&|kR7WD@V*W(8We^>!L z0c<@u3*4RJGyMq>o|Vj>W*=rfLvV1@!kD}VA*H>BVIgdKmUN79bi86!!W^gqkwnTN zl$7`@iI~0qo^YQcwY$d8=pHKK?Th%|Rxu)KXBTST?N}p4Hn0$rdcULauBfb^cql!{ zR9{|5OOJv4btL+#9fC^=iFf&D5M+&_+nv1z3Qvlp+^>JV6%S4S;_nJhlg)YVo{wgRH7lY@C0QTV_1VA{sgeG0Fc<1!2)8Q zD9mOi%jvC2{GqzM=J3M}bQiGZWf#Pj>6*JR7dQk9M7jfMwYogA4uJjG+NIQSAYU;Q zM`oJHg0!b#CtM|vc^kKNpyXOj-eZo0sIos6pQk&{j{Q>s9GD^wJq5IK$|#5A4)6SW zy(XGdjxGFox3Ui{&mLI6SO|q6Z(4deg&!1NO*oVGL3#QmBqctWf<^8Yl%elLh_wF= zAWTdDWm!S2%-PBtbk$-h(lB*?))JufzSp3gzlyzh_-W*MWt|J=Naw4Mr1N^p%d67w z+@78TQ5|Y4-STN5aCuZDRHTJ(*Zb*f%oo}&*^-=|#cAT*NwEQeG^yv^6VxtbwuSj}}fbmFt)=9bn_-Zw^INU{Jt zu^n~1KvD3EZ1;I*y5!ou@nq1+@*}|TQA<~fk*bcosqsI;1_6s#dxZqWOL~>A-8ue= z&undNqkTMcpgeRu=Bpm-T*UMzLx9Sx|A=L#c4j zv3dNeEg)P}_Rrq$Oba19&w`Cd43J+yb5EFVj1-HXcNmHIyg59(`rmnaLabf$3E=i1 zqJM@bJG9Z@W(#;_Ct}$;{phFRUrd-|h9auuIxEwTaGG9)c?i3~-4mTAX{X#D&D6PO zRtU~IN`9-CFaBq3jc8?LM8%cPz++nlm^{JaJDFi>{pxHyf)U?tvqxRrsmqVmQ~iNc z&Pe4Rd*0CQ6r1+Vnelpid?qZt?}7i^=p|x{f?bU!>3QLxqwaMU0{|WZa6xqH4fg}F9Bjb01Z&LNNNR&tue$z!Lrs_+3 zU-gFZJfN}mOKrT#Y28=Vv#Zn_ZgbS>5aTfWPQ)hgyD)t$l~IyoiGY))spb{a0jCg0 zo*2KEQ@ctFqBPC-C`uxlyv1pJ-r2aYm);e|Pl)|4O;7rL`z~eCdkmzmeoeTWj_#F3 zm@QL7v0l!@xZ^PbDc(ds@a7EJ6KPtt)2-WXm`%M;^rS5&Ngo?8O-;sYDV>s3S9G*9 zpftMixT16AWy|4PCN6UPk}OV3T^d%$i7F~ZdPizQVF*tNkuxc(LG>^sseFnwSysjy zc%jWGWHdyx$iNR+IpN>NosztNj5`Z5ciC;Rc|Ya<_Rm%>#%^OOWq6v0iGQ{|J(&yg z@-&!>vGnJ4?x2l@>WNsFg({;6dC#z!h@;Ji4cH!# z&ABa4TEVr?#N;i!5y}(r0GlPGQ=LBIgfi~-1bbtNz_2w5`gN| z78%C9?@NIw>VX9EvA|;(y+1pS?_+~f_FN^bu~~51+yBZst6xdwPaTD6K6$aUCxCuM zZX`p5g-HZfA34lHn~Cz}j;A;mva5|3XKyA$k?N|jrUL}EBEcVPB(+o&M;jib+-|IN z7W~Yr&|OdcH3c3$gwQfIZat^m-)yAS3-kNL10P+TNnYZ6PIDT6?xljt+{R){JQN70 z9Ww)lz<{>lvzzPhat^=JSO`pmz+}xEOBEU>2xKZja>gZkiq<-S9k`DWnZsXZ06HO; z@H@Lb!Ykp<#HgKVCz#3D0~DJwmZDj)BcFrKGS$>N@U2tz6%GoGAnCaPpxI)gi`^cD z>uUB7TfxWJ@WtORZH8ODTzEIJa$xV4Mv0;$2=XafvITxn!?8rD+f+&o0+{1j733Fq zO2MyPYRk+tvBmIk99U{g77+&u4_7E;p*)6BtD7=8OSN_vi;9d=an~v|m@4+{H#! z&4Wg|GWPi`cO&%jfA^rl06g+d8F;ZkOp0aof0+fDC$%ip6O{O`gO`Q?KT++k&hFJQpD6xj&8ZQ?;*6D;8Ru}oV>{5{<>WJ%Bt{3Fs_ExcjU-@koC@BD zsYkYnpsSnL?bJ*2u=^G5@)klgqe^T%$Ug{{$(NF)8_M-_R(Kfw_8>C5PcHSCoS98X zjlvYat5A=8hP0E1VL?0S%++es3Oy^GG@I;H!T zc*d*G6|X+KpbJ=The;%AnXZhXtFiS?0 z-NOzMI_KI);N=a8PKNJbCl}nP))~QM32SSxzZq&UXFw2PDGR_(k6NWzr$*zjn!$X` zqeyeZ(s=ZTnT+X6utN_P>`31~JXkN5w#PAaQ2 zE0loh=VK!CP7;_>4x|S@pCQE+agzEaD#cJ0=C`;e2ok{UPl>3`O$dF2KxY_`J+pc*@zcJNdf4mJR&h z9k;%)1KX&XW5+9^QK}YGwPw>Z8eGK`w{wuEc87aDS`9=pLxQwZDox7Ez}4I^+-TU3 z0c-w=)k`UxZ==>Ql8N8Bw#BYH2YMyCQ6Rh<^C&74n2DFMF0lwgT`KA)`r88i;(g>H zsvIlnKy?x3$-BHY!1#+jo+lUZs4eMy+)R`v_m!zRuQ0!}XUAL9B*;6|*{Es^BEYT7 z8oQ#7(OOZPTQ`ebaDoiD_cXU<*MYk!8~*E~4m%PzUvL5CW(DPGOcI2fzaq_wYTMPg ziRJbk0Ac+1bC=JsY==Pt6#tGK0~YB=@CdvWFSVfy($L#myMyc8K$}y*7~`$a07B}= zZsnjjzq&GnXrig(&JJd&%LSQjIW1C{=zX5t|AfN-uREFI(>vg!O*nU4f^3oh-JZV| z93k+aQfXR6Re#lF1}L8{9Aud17#z6S^`l1mek4Ucrl0d0FYl`zPz*1Gq%v;-#pIvx4j+JF%*F{7ajwd0hs?(Q-R>>vFQ^ zz}qPL6f%kqee(dR2eJt(HPJex-ofX8gA5sdo3uKbNu?Xhb*V{OiFFnGZ_-)+C}=#y zAq#wf=LaYLuo0r)<0_#a^}$2gwm6*FFOl46$yFk}BO{YbK$@m?n~sMZ!Kcp5!#tpV zlZQxSk0Z*rpFQrgrt#J8ED@*N;O{ceJ!2ZF)@vk`YUImWb0qSa9U@I&c7@4 zr@oU<^W3Cm{S7P^kMU=BDl!?|M;6tYD!O(6<>Q&F$_bp#j%Nr#scEq_-0NAv;je+^ zRHi4x*{1}eY`&Qrw3wMAeqt4by+L0Eeumz#!eys|W0)b5^)-cF7OX0w%hrFpev&k; zu!oL@<;CURm@MUV&J7hOL%?}SPD=5j&L^o?TS(_KP6d@r#!(~%7>-pZ*}rl!ih};nniP9(1v=QpDr1irVqL&rJYPm{&zP5a{^#a_eV+4u7 zDj=ft1?2H0)6HGqW{7DVf*hY?hRK6ICPr`1?{fX&l6nUQAD}##$nGsb-*@TAnx*sr zBwS8+BNf@^msvN}ABaB#Zmu+kBsodvIH;Z(nvSk)r+2_75tnuhoT74|SQ}Z%Ua4T1 zaN9KRfC3_)vW?0;jWA+KO3TrM^!B!=I32$DicI8@ik`jI3Xx%lNRe|xL3FT z8rYQjS9;-=Gz&lbj&3Vbo|Em41I_h>`)o6cJJOL1R5BWif)MxxY87V%F*lLJf4 zp~;ty#KMoEi;$6AkHVJm*qY~y&Uw*5cBnIQl*g|b&VPbcOq-!-UU>ee# zuzB&ESu$Mq#XLwU$_`%E9Aj#+*P`cX#N+ItQI% zX$YkKgMp)mbp}l&5P;RhK!8}5-ok8C;b+`tbiXPx*4u)UF*jlm=?h-ABee$BCm8ea-DQB>xP_qt z?d0Dt5>@1e57x+V(C(!Ula|sc_V2~ic`tQyOdVb&Q$x1v?mr+CqN<5DF@efr&{M zPF{BV2Y4KA6dSh@Rz_uewMbcz*O7h_@XZZajCr*rGMtATfl%@-%1eU|*IKXBQK-J` zFJgd-2mr62NXUH6nj^DUXM=fhI}qYzvj+$Qw?t*C#V7enZ=+RDn~T2;wcSN8pu{7| zD?Y8fCK+LTOO>bwT(Ex^Vx#h@ATa1NHv1h9uyF0X;ylKL3qq7iTEN0qGTx+p8Q#o8 zcOoW91NC&G^#PB?-NBl~>*gc~`C7UF8d75qp==;!N)=qwjL(yDL<*?NI)C04Au>ou z^_!3>Vh^nWuix;F&mNf09vVg+0`C_*2QA>GB!Njh;211DSO-$E7SK*UHPhuYRNvtb zy7m@Y{Vc%g@6+C>`dz0jW~%<}GmlXTtfDH&auMwCWErS;x+cn%ISxGiwF^ zwd1QYWMN#90xj1aEdSDI8n4M z2A~b9$H*lG-)w$pZCQW)IUqZt6X?P79Y9#2^caq(7Z+p0$)>Np%cbx$I_4fJurzX8 z)Kvt?9KS7fxmDrxz`WI@b>rqc$^3cE*@H*tomE7wfx*8CapT)WulK`~l^1uFb{`_X z_Vx6z>=ImV5t^v8pJnF3iX@aRTKD;Q&Wd72x-;~%+o6!Zimt8_oVTN75#$9MZ_78R z$pRPIh2uGCjs7Ov`Mq@VKQGpnPAN>BBGu&UPYX_57dVThx{;&u8x3B`+IZ|YMn#Vb zZd#~obKI9N2+%aW0ym*nBopw?Vxz21UKIvj=2StL$xpJPA-nqRg@LpPUxl@Y}Utp*H0Raz9 ze5~4*Sp1Uu?L!Oz`_-P*6Xjh-V!VolJ4kZaSTyD?KB#EZQ%&A!nCs0U&)x5TW3{Cl zeg=NFgZ__=r6Sgdtg2-k#o?q(5Zv6(#L)c8JB5IKCe*%0XHUDrdWps#iVgTD1_3AW z&4(te0)!VfSA*dpxL$h%C>$WZfPejs-k92AU{4-!G6ed=w7O5DPU@qBxffnbz~$G2k+GPA-iB!q`r zTc8PcXqgNkhNDGN!~P!u=7~I?z(UA>NOYnZoX(zn6*IS%B-_Q%?JyhaSr8$t-7Krm zatu_@i)-9srouua9sD#GzI5$;hy0S@EE5iJ0H>K$u@UwQk_Y#rtkyz{OSWl77eUZ` z5P6NGDh`9)L_=@63>84G+nW0@Wj%Motd_kmlMMekKYep_bIpP1p+yp~XTkCOwJC-G z>m2vuGhX1`eddasO}nl!Ci4D~;1%(}Pu3a_0jpK;KT-DOAq*OT5w*1+uSP*sN7?dM z#X2z$l=8Ue8VC9T4Oq(ak9jVm$0@8`qQHo;_*G-=u6QU-8jml>_k;KD$V+E?;-};xJlp%1aF{LQYJg_qO(UAn= znYAU+@wUMsdg0qsK#!-&T^b^YTEQ5L@%_-USP&Y-2CA$J7;&mR^hnGky6C}F}cD?~{0zk*&A@8D;*_XyH`Z_&Sv$t=vY~_6-UZC-bzEHnPMvJbPO1 z?>~bAgX?DW@xLEqLRhHN=QG^IF1ramrnz}lP)H0L#;B0I4_sM2xvZ|?{9$2I3JcH@ zfqg-R^#6aE6(@qqIj%XsQzW}j}O5aDFVzo?@qOf5i`oD ziOD7tU^W6(8{?b^r&L88qn$Y=YWk0616E4WRtx{K0$e$D1K-Z`^m zXI#@i{9whTeFU&r3-dR%cKU6Iyr~2wIo5hvb-Z}>EO_e{{Yv0 zLkrEMQ?H}l2z|FWu$mLxj3iJ1xN=x)hBMO;9YH@v16u;D=#}kQNw{#9JG8yPbXIF3% zIumL^IkfyaOz6H7=3^2+V@?hSBPzFrj)PqkE=vhN`3)jX2&4BOa}7(TjKC4^?P}g= z70^;Am)W=S$2jl&{z_xdMZ?R)?Z61`aei=z3)#~2AXG$g@a%(vn_}oCWm|8}Cj!Vb zUmF7ra7?1RUA6hK#JsgjgAU7^TFMi{7Jc|<3Bo4&@z$a=?pFR}*H7u;i)I-$bqXtSbknZFE6j*I@UEG|OF2%VXUox_syi zHwPL1JclyAe>t`d2<9t8LiiO48}#FGp)8c5>b6Xd?*Rk_C46yRaIbpvYr~K3z!A|F zhn9z3KQ}Q>l!HoNpX?$1t0S#!DQTo}Bk2SSB+>dIZ#x zELha6J%l)_{<*?LjlV_BP)Ay>Hsg2cBfx??!7sucOR+=*br88b-1yS#JI7+6^CbNw z$b8|DCw>NG#=}2@;m8|x;q`WkJ*DK6GvIo{u;O{D*FndNv!rA#+@09_`>Y;NxygqJ zL{wWy21;VvjY?RFYarz{--$Q{A>j}?@Yn4=avCw4IDp)v@&JRTN{e~M>i^5^_CTWT zp~U7p_UcbL6Y+v*oa~P0Aj!lYbeL67J8_4N2v!Xcb|la(XAcCx{tpBMojH3vE8%(6 zWO@H@VUql74B{bB(x1XVOjaxrXfBZn8kno-yDR%E)9V0?=NhZ3`RMJxpP1yRT)!=F zoT>Cx;jU!d+EkrNbueZzB7k{=DRFgDyLWb@8n<7#mR(KA?a2LM@8>TB7jSn16@{j% zA<r-=xQh>)tN^t}*cX)tJL4~w9xoEm?@49<)PPtJ{$WMb#Jmg!acTZDy>+@L;QGe>eqh z9i~k1!Wyjqg_owUB!6fh#kFbXaB%+5WO#U?8*nwQ2w+Tmew@qJzW@R6i6Nb|L*wfI zNHZZRMgN-4>`zA?uF+``L9`)7G~iOf6c0Bs?e zrgfOnOp%I;Teo+dC2%>#U6dG333!}0$Pr^=9cxAW3*lq|FQcDgA*mO9`h@gqv0-tK z*b}}-)K#%w$*-LK-6;D&>WY{6D;_)O-rxbqFCCEl*wsbnP&a+(>a7ibLWdhILNf(` zuT=5)0wz!t0hEI`3H#aDMNGB0jJ8=7(Z)mos{S=5hv0=bPqK_{$w*lPVNC99-oJnX z&^IxhxeiNvP*wnK#xeXGRExd=ZczXj&A{fTMEoHpCU(^8ahhaQB((IRA;$`A?s)*h z(Qj1NK+l&Z#tbW)bD~Dj`*v{Zxd9$*4=5InOUfBZ&>-Ft>|nXCser-WqIpWeL;el zX+NXL$kEt46bDqEYu7w4{)y+%gW9gUDCUtV*{^5*GJs*t*wWLBDLyHbAy1hE_qQkP zie6h!Z~fuz-c-Bqg!%#QkHbVhd^A5XJTpBJN#dUL!=#g8a6V=r9xFw4a{LPT{NFFI z(6W%Mp`;-mPbkkZ*jOS-@RY5CFnupPm?U7T06P4)A*wzPZ0^N$#n_GiVF8TevGRY@ z>wQMcXcSX*)qY(@?-DeqC*AM}I{<%EJ`-a?a||PqtkMdU#ffbjzJ8bO`Pl64zn_Fz za)J%mYr=T%SZ18Y`oK9#?y*k)CwcH?@R76q8282bZV5H82NK=Y;3Uab+6vu{6t5o2 z?U%fbjm}G;+5XIyt#4t`>F>Vo!up*EY}A$-b@lz{g28?qzA2USHB`R<7#XOW^Fc`Z z-6UGN&c7DE#G_&3T46A5J*m^ZK3dlG#WaD_bUn*USBZmfJPG@!8)dox)R$t}m+y%n zcimkY@fvuKV4P{(&>;2GP6P+L*<&~{tLtOzp3D2K{cpAC4e_jh+~e@xDE{J+c5}1= zS;v+Tk<9gb3^wke@vT!}em_m02hBtJzA&6umFK?4TT(~3z}vTD&4~T-C&?cq>hTfd z_gN5ET{_X!Y_xTbMPrfjhLMuWsTu@YdS;mpGeU?BMN(BwdG@pAu@`;$sQpa6r93SX zM(4K+S^1a|4-k#!$W?{$G(f6GkY2H&RD^hpZq2-q$+1d&6*NSGx$AzJpI@2{X)L(w z-K+Rqt|!r!KfL4e1z4-O0JTAvhl6Nf-|h$;U02Rz6~gyl@;vMMpR?|re{+iSsEzOU_74a(a-bZO zlZ+wz-VZzZ@X&aha4ZEh?bc&PO7$by7b31#!OM$Xe4k*AdpX#Tg=8qBK;~1)=GFbW zdG-A9aZ)CKxTbw7&2tgHD5@N;@s1o}k887-BuVhSXH4v*welTHHjY*yCBhNK=$3L3 zwTWB?+2+A^&W}*4tHU|jQpuRc=}f^mvb*4iKhCnkEASP`4o|Ly1n&9>k0~hfH#&cM ziMhJD7qsi;>iFvl1;W(#-K)cObBSQdi@|;dl@Z7r+d{ zK6{SHO;WRIfSiGT=bO}iGSewiG!Bt@&{nmE3RT=(XY*v|C(?es*Ajf@em_jabE=cO zed5&Gk~auo6hhY2M{-+nat$NF;|^>VAZ2l9qA7qtviV9)jR%d^tO9~M`_#hhE8hg7wLWU$JQ&4mZgYs2$k(l z-X3h*c1!09LJLu5i-q1sS9!G;2XJFO9BN9s9;MAq>8){i+_wdgC=OUbBxd9!^<@If zUlLLX+7>v7ZOfNlD1eHTch3O9uco?iMx*zr`zhJTqd7wq>zwx%f2R*aA!$$xU+10s zk3^_Ky$m8Z(=KB7nD^;B_Y+Ql>oDb)q7#xTUi>V^MI0@Q!P!puFIxbwP4dW{zNd_v z>M&QIImm5n#r|X3GfN^-jh!mN-rv&BJE2c{9o@UHzRE}xaR3ugUB?y4K zq9D>ofL|s5b%g)|Ta*cJ*}Lw}MF!=zn6atn5}`Qd7>hXnX~_9M*0=l*R1eejQdbC- zEU^Do6dwt04(Bf}msp)Qi<~^xC6fFOF@e=76*eEtJnCLrC1VNRS>i#86K+%K$fKX| zdmmkfBI^&yZ|2^CyQ@`WJIOHwc}(n^r(J*okeSi9n1U*1``L)+cnyghfV3L%9fVCM z=Bsh*!v#s*{K^j;;yPYSOL9-4%`fP;s;h@$DHu(3L4OuIk%i#|8bi5pzxwd&s0z3< zU2r51$_LEPU%ohd={W!Vq+Y8Jl#=CuFB=JoYtznWw+YV)>rX;vvz^2E&&`5f1DZQK z_Un%kv(>^TXVwrswkFz1!;B+~qcS1(RqijQC;GGE3Rln5uLb5HL+K0Dh^y27+cw^b zg5H-ghxiJ6RZNHzIsrrLBI#Rc`yBh4AD{G^zMkPkoR)+cCZTq_7P zfl(v=b|pKQNYaRf#B?V5UkhTP@&$%F)gV}+)7scD2#-VYt=WtN;N~B=AHr#v!<>;0*`N| zOveHtpJkt)`)1!~aNb)6DU9AgP)uaoxK%TdYF_*3ce4p+zRO)7F^mjT`-$@QLA>~| z%jraI;9!|SH)R|y8;X`D$SSq!NB3USwyx}eMk#twvv=Pi|Jb7n>&c0LRm}cytPFM>8Jk)0w zl*rtL2uTp|!^}YQRvMs8KaS=UQirg+ScOCj&^y~~CM*0zQh`NYmqn+YP8DY0RXZdJ zB?l{x;)*wj{t|5+CN55Iban=$z!3S!=ZZ zdb7&*K|OFfpFwlqs&!2f267OAaMt5jPMKPet`cpV>;0F7GVcs>y)=kzN)bIztfsw{ zD9|`H>xC=Iu!b(Fd@GJhsS8pQY4)q%%{{s7!Fgaf% zl!4YHZ9}@$n`@?V?z6Tb2q2yl?(7i!s=FI^zJMj?m7KG=oM@BYzzCi>vbl#KPo(W< z*@l*wnQ+&Gfy$s1+L<~Us9xJ_+?|p~ZhqexDc!Eir>UnqY&l~Dol+93J~|l}`Ij(* zqecw$f?(URqh89Lc&en-gpm)ayNg@bKz>-kd||X+1PtN5e~$g`J6%1vDmBiU$$rl1 zF#-lryK|~jtm^|h8uXM_uYLdoB8he*BTHQ1S3xn4fetMk*56$!s3+mOR8g#yc@=4} z^#(Bd3Av^!^(H;*HGW>oYE9v%-1`8d=B5r+Clp70a<7kj@)+M0KuVDc`Ny3^?*(^n z=Q`CL@DyyPo6tL!a7x^GGnQJRUfOOH+dtZu+>=R7fGu`rK28|Q3QB#LuiCR8u8#MqA#sG|Zvi#3}uw>T3=2M6T>))}!_hAjiPsT=pj9 zFyw-YCDkEhO7MDD@{6vP)fJ)NgS2=5|plo4?M?8>6+zw_$ z&{Kk`2LG(%WX_uPU2YZS^QK8K>i6gfm~XStT^11_*3;@fE{S3y8K{ZldJ@M?^L6CN z594`?FNT*O?T7y^@^qOK^~9Cp2oLY;vAUu2{+{Le@YIcA!IVZi`iyAg6-R{L08eUq zrxvliVB*a_`+`N_1=G<3#>z`;OgDwcWjh%nxk}TKFY;Dmt@QApA%Y(L9Ydx%H88a7 zf*8X`18RHa+=HkkZ*lvVv##IX-KnZBq1M}ogLdujUgL{spm7#!?f#{a*xi}3MxBt$ zNUC54zXrNnS^}gYn#0e#n+&_|%KJEC^6D#HM5A4tNwROYh~uG$fh~W7)*Ew8&Dh6< z&^UjL&+X>R@`r(((5~{>DTO%yAyK4MINv?=^w-*Uq4NpgQNvX_2luv{p}o8x1ROsG zLBcAoA#3gIW)d`@)Qbqh@`bHCcFpoWj%2|lxvxFI{p&z{d3{n%ru|iN1?g_tN{rs{ z{)Nd?kWA{EwSd#+Z@8v2ZFDIc6gJ}3a<-z<#{E6AG@lBl{h_Mk#{S) zHUl_!-eEWMtC#!rRcW8mx$SK;VrP;kb#P^xabS}yw3NwAZ+29^Cw|%l8lV=J!53wu zRPJClJAduy_viv#Cv|X%d12k(NvXvzp zSVL-YV-`qmSX*jlX?58iqxchtRUas-UolN0>je$11(xR)&wEzbiu|{9xC()C^{XYZ zw0s^sWNsMGG8pL3>ArZO^#Y{hk=%;mOiRQ`3SXjq$JxgB%1m2Cun7c{06moI4e|Qr z{ao3AW5;!1($Jv(msDx!p!;-;e zQ9aPrD3hivuem`p;c;0NUpN!OD7t2iDK>vBdBb=$T|=6=zCWKhxJX4hlQ?3TVimuY zD@QknpdMR(QCf@NZ8M)3hwQ9?_y-}Gci)7lAB4LA=oR?Znn&N%v(;I8N^NM7iPSJYswh+^UQAWkfV zt&6$R?gUsrATNH#q+QavL+m~vl4zg$409amd+W`#4Z6iLmx1ewr9;Ewl^M<@q=#|T z0T)K$^PLP=#5FNZs;1(gUQ*-;o5ft}huRE{8SkTuG;tEz#B(EJI>nX zw!E*=`fU^Nj*bj)V4_}g&0Dk2hEY;dGDK3ad8j<3T1M=o&I;CHcm+&BT9~4sW=m#{ z<4@{AjT#RCxI_D17_9+`PC;SrzF8g4;cwt4F*H(vc`tTtz3ThIBi8{3Mao=J%>HKB zUJ8F=fb(C1QKv*{2;$I1OSJ8icZo@dO#_|TXM%sk+~3d{A40(f19$o&QVmO(C6dZg z1r`L1eHX71A#@Lco*W6*Ks}KUi4J$s17EmvnK9yQ%YcUAbJ*8J#=An08~L*3veG~}z*?gOi` z2hF%CaioQsYAIO{>%}V?cu644r z$u z{@lL)BC$c67r8xqcE9DR`_leVkFd{P?vaMVxna}y^_fsAi+y>wQ`#xsy55mt3wj|0 z%+j&EekjYPu^B`v#I~=mTHm*Bp0X&3-n{mZ(ms{ReDUW%CvtXR@~XtABn^pkiw#Ps zsfb0H{Qv()+Z775Gb`(98~*2ny{0(OGWxK!ufhZ#ns;?Q#(HIVa$qQ57nZl6yNVxs zh+mG4kRSL%a^UmkGPu>stLO4Eo~-OmR(t04HDLsyCwKwxV1Ml9mu-)-+LMXNK1T{7 z{0ILis-Chj&AfAzM&NxNIX%k}m%sVk>{QMTQHhwci}H(~$@@hz+u$QFk(}4}woz-M z`+T>k+^f{$})_0+Y*&^@A@dwiY$=j^f38Sd~W3 zd@84$NG_JWdiwH$V_u$~>YEXWnfGS~rRDC~B@7XI3U#i(XD3qG%9&Nj5mE!Wj=ve@h{tbytTK{yCzp(H&rP)Zx11csOge zbdR7_wqLklZ{2BI7){b+kLYEO@};feJ|}uvXs=f+M0@kg&pSEk33Ao|uXR`)M2i@^ z$PXjkSWTn11YFNw!aaKfg_rg_-~JbCZypbI+qaKbh!zwTvP@-}y2_U9W=5%SiK$ff zbt)CI6=966Xskt9vP`8bEyQHco?8}zJJgC{oT*=T;KnC zO`7WboS*k{ypQ8}XEF;vD!1Pp|Knj3rOV>yy-~5_WnfyvL_1F1;dqt3XuP7ewyHmZ z$Ys^vRuY+A3y(&nm2-;Aaya})*3E_!UD$p*W?WdBUoNjnf6TUK%s`nf!M~Yng_N4l zL0ZsZ%C@DK34cH>XP>wq?zlPKQs5pG_?wn$N2cI<9Cdx;oq;*)kpn9)m7cW}u6o=+ z*s73SALYp_J>_zn(~f-3e{EUkYI{vV$>DAO2>))haLDilG(^0Wik|1a`dR*?Z#Ks> z+QdqrJ`s?mD&C2I?p*Xnh`Gpe_Qi$$W?MD7vIZ1MbD>BVYGgQP0~WI9w?9_a4VBcX zLEL4S-FBA-&sF)cW1xm1O97}=Pqg>LN#WhTy{}iw<-AyH>%!}^!UKVY=js)l8-+vJ zy%@0Xy`)q58pC9Zts`}2#da^XQhla`UH;JFQ&mGIp1Sik6M$&nd#ZRi=Bh{V-^(ZN1{;g4{(eSTSr=ddknuBbuT z!gRs4WVEQLQEjyH0N|GV@+%#&uP7}S$LYD(V#NT}KM@44_4(j6)E}FTNfiN(kasH+`?wYi0VTUWK=G{!g!y`_0U&ppfn)C^wRs+giTv_Xz6duf$Twwxnx*2VLi|C{U3IyMRt9Du%-<3tpPg(=;Ww#<5XIDl@6lCnm0J(KQhggO~S*G`Oy^ZK$_OTyHsa@fu85l*;6@31+~eDfVIs;CHC z4oT@-6t!ZVyns1=)#RS0GUuyA@No~UBQd*u_Ry<7(HYKxaz1D=<&dlFuS{}PCbR-4 zxwvgr&7%Z0Lj#2Q!(4r}F3)fA++ih3viv}(m3~c_Xu;6_z>{0tB5KZ*oh02XP}Hie zhhcySg;$odE`oT4uH9ze_WIQ$%7JiLRgAYOMFxgKK%blZ`>PL(&A zr)Moz-X!T3WY$y$E_JQ_`6=^^uXnf^vcc5RpcZ?j)9aLbe{A-s5)3un>Vt%z+CzKT z6<5xrp@sY$YQ!A3Q8!i>TW7hJ-TO|GFS09%9}c@v5<=D%%Xh{ZyG95TPo=Al#`a@VZ8jM zr@SY+L?8&a^Ku7#=%_RwRib#Xwan!O0Oz3S_lYUCBsus91sT&ac^=wxcoJU=33AJd zR}8xA#c=Up$ztbNI^U}=eJD$cGSz*4_TGdngl)8R{l*kKb1uf^Q9-MY>r>~QoiSBw zi+Ra2K=5F`d`Jg<^h>n;!gFr`p!(uwzfGe8#i?P>!BdaS9+i>*tAeO$_?ZSI3(m=g zPNnK&hH4~AjR??#hrvP952%PL?=0qnM&KGCtL>1-K;lvURv%Zi1Zt#F&__(ayzl_A zy3o9@Wb57+}QDNCgfwC7V#a?_GSczw5TDjMSL^q9_ZH+8o~BfTQ}qp29! z31Yxro#}q_GY9+eD$bqGKe6~D7!^rt)971*06w~#9LQuks#KZQr zBtq;MjZoD&kEPFAsuCm7?uW6_ajL$gAwz>+&ZN31E3qc=v9B!F5G-!((!NZm@yNrN zbyYb7pZ)=mlxZmsD-bDA74`Z^G&XCgFaaD=?kpI za(8_kaj2>YO!uL-E}9cvR<`xc`#A`s?e=lWov+u+6n1Yha!lHpf=w0x#qOQ2iJ9M4 z9i-L`HI5w8@&dKoW525Tj4NQrqJ)N*(qG@Nalo+_>&}ab`q~QKS@T=R>i#da=s(hh zkz={M=jvj2vT!h~ZeUGJ(fWcJ7;%OcaDZRop~DvMq}oh7@9I7-pJ~1Qb&)~Kir)i2 zd96Nb_dVfl9{>un4N{TI{Yywmyc)aGOUtK+pY@(cgk(l|ddM`Tt1j}l3FkfYke_Q) zYn2Y-^zPk^-7PuhUZpcd<%k3`92@nD7ufRawDH7vj}N(uD^7yOt;P2G=nhn*aPrpY z&8aC+1WIltD_f9ivfT|TXMAiwRnV;Gf>6klxtGp9Z6P1y#PxOw8E?cEZ#CNXDz-UA z3&ielc$kt(`*8A!-6VPbWjj|{#H0}#@04DeTNR{*H^zyNk0f(E_bI4;sgK`Ye17)&+sDA$>+K4kAErIX=e_S#uXm%g-z`?{jh9fX(5n4`jEWyn*if5zrF)$UTh@qN7HEgzQKjdi1d2 zySI=2jKq$8JArh+7=_rK>Ou~zf320Q`X3@R_=EW{(NFvfo)PuYVtx?cN=2d%Q2L2s zG-5bQ>uZC}$N8lT6-!Vzxz|tBvgD>+Du5WgcGtb{eN~nCWMdgA!{6kModGeu!EQOn z3yRZSV)-Zso4WTG5Oo50b$MYUw6gN}%T<`-HDZqZrD-ZO9z3!SmH9=8Bz1;aj-H7WKgr-;}JtSEG+G>XU>p5s3hk%{KZ-+1C(6%oDMag@|+ORLW*HuvhEPJm8y{(#{ zK>GEK|NfVuaW!CIVYf%o`djQFty-c}NzrWRajqz!B(_dSH^DZLlvO5p~%tvGqZG*0nG*T`+@XKD92yU@pG5EQGa~eBfig!(p zeZh!)*}zTZgC6g#7@(#>S+5M`^XyQp7vGenICeHU(D)2`7FidP&TCKMQYW8Gu2^UnRc4Dr5hHYE<^m}J;qphL5_>XVtm}SVZ$&TDq2TJ51VczY zdLhghPp{QtzZ87^N2$?ra+5#8r52mYy49cf zv#N9?^H!YH^70M%{jUojDxDEBv)gY0N@xGas8+1G$zi3p`|~L=yJM&lnBR22H*kP> zZ0Gldnn@((eozJBj9?9zaW@*5-O=S%sCs{t>hee&S%i-o*hWNhdU7Gm(% zXJ&jLIFrTKd^KA08p5cBIeGYq1_J*n{&HT-T&#O}Oe z;gd`+>`K3cdwy*ktO3sML&vCj5YKjwB+5zPx*NI(&+v!jf;8fl@_QriBUkp}Q8JD_ zkU5dVIswjnpz{3M?NlA7ENHyewMRNksf=7Fg>@i5h!i`?C<&m?jd)z^0=BB?gh+7# z*Qu&RT~$=L1DSrV5ouEyu&6%SbtO8*9mkkiUz-_aG%G7#=(;f~uk3HEy-drpc|78^ z;}hShZDuh%PhS2CFpiu5j9X75$(Q~-UUU7S!L_Nu&y3OLW)6G4d4|(EbLRL-gMYgG z^n<+UywWT^W8(gQ|0ew7)BLO*cYuMCMb%=i#~0cN*J|J(5%@;9EXWL`gEWK^B>@-t zJ)NRTZ{4rB_s2V!+uZHlXd988?PUS4mz&798OemX9!h_(!k&9(=&gxZX5k~^wAp>E zxmaPgdCSH?W`ywMYsngMyK;{)Bky7iEfu=%iSGLP3Fo80|ADSNmsO|yajzo&{Y(z> z6?Evbe44WXwoyTQ*Sy;uuETp`ygCo4!Wl1jUgaexsI94w1_U_wm z)MAxy&hSAofUc7aGHmkh!w0SBQ>1)JPNRw*{wA*nFUy$g>=g^OJzF?LD9yiqMFCD*RjpyG8__TLhdhcX{}tQ zrDV5m2%4VkFwYMQTr3-mSE?eBn^)0WO$z-OlZDl|c%=6!oH(rjM={2@VWVXv$pxnk z?uS<82G{779c_?tSePU3T_zaIxSjXeXPfT?TkG+=xQG^k4BVBI#66hboIPx+g0vNi zRUy_EoF)$U8XP4C47HUA$1m2zxbJJ{5ecGCnD_Z6v@zslwR*v|f6e;{9V<8&D@ zRgGHu!P~|Cu%_jUludpMK1iJW^f$xCfq*g6S3_q=`8Ns2?_JVQ5AvLly6fLSDlYR5 zM(8Y)M5=dpdE;dq;yTDGdieJIs1FW=6X5qEv=q< z!IwKm<|K;UH&Ta4yyCC`?>{=7f@`Fn82rIHA#@M6CNN3)Jzhu`{Xjz#_1o@znRO79 zw0&G5rLS*>IC#4dY0ll5+HCCL?`{c*xfC@sOatjEv89iLH|*Z?EX9I4Z}HBytngCM z>$)i<*pXpS07}_@D(D|wYOyTnX+Txv zORQ=64|nq4-_(EkG;537K`k#gJ3ITnsNPq6HLG_3B!H-Lr=`kTQJ?Ffcn3)+lbzW9 zI%FvJ%>*wlr=(sX!gc2k<+22Xc6*7~;@m02It@G-@i}w#AtaC&_w9&L4t=9dLyw{K z&EmBat?`hLm;&msWk&6tb))>b<=FQgnvFX1z9Sosx0R?AL~ej=J{c2oKiEwq`VK7x zYVS7Nq&0~r?hOhVJMI+iuyPh}kbGx>@O-#YPy2oRn~4RI+|^qPto=Qr%KMliHVyvg zo|$AecFt`qx>i>d507eM%A@C5-?HHs*JjpNt9c~3L_P@|%m4L?{z4JNd4W77Tl3o=fj3q2Gw2 zfxD9SPwAlU!tcqI)qlRIZ>T{z{({K;?vcqyFMq2@LP)v z0;haFaGx(B%2b*;Ldi1xDoiErRlT24I&K9ik?SdymgLt6&sQb4lXm3>oo%`Yz#Og1 zoQ{$Q6W&lOlt^%ZoNE&?U46`bE<$H&=`@CEutt{`R`=>FAXGi^6R~kifFK%DMFUHE z-{%qDzPahpgmV^IXo@v;#c|qI2P=zLEpn}kct@s8f$N*{<7#$VwFHR?RsuA0o$Q6Q zhC()0CSpZ@For+g-8vU77fhB5UclEQ7I`d9 zDmN_;_Y+PhKiM>uey7K8fpWS{G;Mwa*MFN7+Z4~Okaw;)8QU(n=Qx#rY3& zNc6)lg?S1QQ;@yTBRNSh@IDQ0smkg1OBARJqrhyt^Ov{oYo8w^A<&G;x9}igtvJ2&%9L}uxae^f4qY#-DXd< z8Af8xiwGocJ)cqVEM%XIq#*BD(_s{VAb2@D_%~p4cg3nCE=x}#dXM67)k}fZODP}QAN?%R&TKIY|8+M*bIpD< zFZj;(w6ni5*{|RJ*L?pUudd@Z?v-u4SWte$#!52zllj>&li4zdc=#!C+C$p}>bs!n zo`Qyf0B6r`nOddd7Cbh{`=p@^c~mKw-pj$>6T&K^x=M*i3^TNlNvO+Y#Uvtv(jvVk z_`W&0r1^UrB6A2PtM@eceU03Di!{0d-gj0M2!76R^;XmcL(Ygz^%KVKi312}p|> zL1G$MUq=SVE=x59pg$g1+m%l882$X%WKzrtef3r_5JDuygW!5)%DSpbCQ&v{>p8bk z4mdM>?Xv&~vV72&+h2$NY9wkd$^Xn-Z%C#J|HGsFuVwb%e5je)aI8aQ&^ZCJ{M8#GD#*2*5d*2amhR`U zW>)J)G6B{M7g*qD``%SU!=Me`LMsKCEP^Xa)uX$SVHiJi!qlK8r{R;LQL=yRM<@o+AL!*1KJFRTV->3Ae~Hc! zDxd!1>{s0Q%h&U05Gp(YiQx{ICbu9gZD?b!Vfk+~a^%3P6^8KJS{PEr#?MaofIf;%8+u87cQPNfupU<>D%lWC6lCi$2{T5zgNMQJeViDdZp2&yB5*(A1EF5Vj(IUM z$hLuSop=Vru~{L!nYbAXU#Uw<;w%_3AFf_)wWgz@Z}y*f@H&CuY!KQmb1c8XWjcFL2C;du56=CBY0~!TBQ4% zH`N`u@|9g4_Z{Qg3e23g-Su)VLUma~#+nd09@H3f$)~x&A@I5Jf)bL5?g$uQ%wkO$ z7cW*f`ks-ZN6w?v_U|WMzV}?fO)u7TEF_2Tlai#HWnGeglzM*r9+62FL&fi{pl(;Y z>_Sf<`FXTMh!C|gS>2i}5}D-l&8Zr}ta5cHxk&d>T+%tWNye^`9<4<2CU_zOlwu+{ z?JAOduryPO`D$bp^akwu_Z%ML+Y2*`5XQ2`WU( zI0O4x9DFNKfBvg%CGGurtTy4r+P`A&fAdEE*G$)7!W|fvzZv}8>n)7%TOKdlj{C5w zzaDu!>YMP88O*oL0lA$QvCuLX??LxgMogwcZ!&8tz90p8(C5WMiYW1R7jG{uCqe?r zLnat{LZmu90rc=4-a-Lgz4HypaIeYydE*K~ZF0qUABT0u$Ote_PT#M)n##j#j9!T8 zu&lfKNE!T3MnbUe&V@eo9nQ`;4yo{C#X!ewK-VXnxI{-HRFxbpyu3hhF+)i?N#j^0 zc+ev&YPVDMXgdPv%pCXHHy7W&%Uz9m#8rX!1M?A{z%*UIo7yuK^Pj``wgD*fWu(5+ zL2FOv0M_1%zY_l$&7XDFtwfEgU+4R8ct-!NNKkW9fZJ&KE!tg_^jqjCMdChgU!Z|d zO56)u8k3MEsd#j^7sOS?9&eB65=+z2@YxIRCwc@GoJPh7Xb`S-TcOOhdmn9hS(Mvh zmVn#h`)M{6f4ohWLX>gtTONzi=7BdQs^1b#lEZn12*webBD6M)ggB@35ELSxdI-nZ zx%FyYggtc;bdVciJ(FxTZr?29$S8s_1%yL5RtAkJmW7uP>51yra`Wk-9RGGlgG`Oh zI%Bkg2qmush&0OWkQRQux5zbFk0J2PC5b~^XCs<{J!99$6kv_Obt(N^khz$XTGS(b zNApL5l4k7>JoeY??tASg93Z`{8mRTxhyUCAnQte;os+!w`y|%+W$>aTAGDMo=e*-K zX<*nR`mm=ed}*Tlo2nnxM;Mo>&BWFPt&pBZUp^BbSd9KFsqP-hs9LW26G+k-tS_jyu z<^ZN)1wBvBmQsH6;LdBg8>52eg;}!nxw* z6e+)cuTeHJcn!7Hu*2*J=&m~T%Jd)k=Hn6I6JR&FnL?@|9&)Q8E=@uNkmRI3TvfO3W5o zaTcSvFV5}Ph~>D~M(RwF$zuC07${=OB0Un$Hiv|yklMtvh^amiZ}#4=lQKp(kPghr z%b)`2?={I(x7%76a|P*P{{dyVNYJ{FnqdplEn9N>OS z9Tpc|4CCEhabD9C=6VO}rQ7z8m+5!(s-1qG#Xox5xA$N%<~d`{CPF8x;Z}yLoh5 z6F8&_)zUNU%Yi{K4f_lND6E{tMh~)-biwwOBl71s)hmj`k8=_9VxTHT#x42l{ zY8N<7>X>~NFT6By{WX7$PQsIo`0U0wy}9F!QiB?ZDuJMdCWth<$JO~6F$jQrKJtjk zCfp)R?$Q`mA`m1R<(NKL_x0*XN~1;<1@~x&+xw#x{z5yq4Ar!3^br`-7Kf93v~KBX z-3{ALn{6_Pwd15hHHwXx_mErld8J$h;8q4=F!sEsgzS_RsN=p!_0e}jK;^aEm3fuvh@Ig3T9;=sn{Hc!VsVn{G z{2u=}-gCIwg^WqW+6dyMJPXi)wG_PsfBRYElg@E3G2n0aNaNRd&_l1X))ZCT)P{!s zKK`x0$z0ztuaY_O{9E~v=!v0B(3sT@1l%=IDa%9R%9;I%$c>vPws;a{YBN=fNdyoo zR#w0!(xquIXlcl~k|~bu8-ton&nJqekyMEQ#R*f^VaD!|l!iAoYO$?|G6ewrlbg>; zjQ8Rs;^5i|I9maxRo%_=C&;fKNbQ^RZlg6l41bOqDcp70Q4kv}l#*GrhnIQm7Qrb! zQ#@6eYKY^o5~>&9cC0x$N;Xy9*-wB^rn&@^#!j7#mvM>_7PMn@7&=6*29Uu7uE&F3 z=2h%C)mzjJXBgQ_Ud%Fj`V)=4_Ef9?$i^sBThJe+6{X$Z$OmoJn{UCEPW(wAOL+`R zu<1F_8|Ua%M<)HRi?6@JbxJBPE2Ps95>!YB1`&CAx)s^Q7mK`>GCywbk4LI*o^Djj zZZlY*?HG%htIO17;|(C?gpW!A4fwpe=}cg2S@sr!(~$zj66NK7T0U|$oR(NU)d%2k zWGkU5MP|hp(E>nLm`b*MFz3x1QFOlP%||g!#46|!ZQ5O)3x*oeI}W$?NG&s;-tNsU zVdnS<&?RKG55n{r`UMu=JHq{+b~@p3MSFzivYIjZhGN0=4rh~USNGQsK1vzK&=X+? zuwuH)bXgsAk8l+p3IGfGxRp!nJav0hQ?E?X7j8`c+Iv_;-1uj16N&$E9KafyaSsWsU)4s z?Bd5oMT?s!3d;{8iLgMWlFKmESni9Y4a}Ix)l$Fem&MHI+n44Z5?Tf@w{o6&jO2qZ z%=}`8qoL69F*kGJklsyz!3F|{9AeFAEXEuWg0?bDo_9`!;WO12a$l@%Dn52M$jnmY z^2d#DWL4g8X>bGlos@Hta>~VrUOwP|NZv+h{w}g@Wy2YnG5uPZ@;ypxElr_`(amUMC3y^-Pg1n$VuSMcgg|!Z`07k>FuT>Ss$-Nj zFt|G44Lq(*U8_>}a)4uiA`rg%R#*O@#{e~gFT#&|{Ejv|KCP4i6?1vaMU}AN6vKx1 zO&==%cF7#V`!cL%y4+`=(*7>kf35j#I=K@!-K)0i0)WZlXy@XPKt0US$yFbBR>fgUG8_&1@MWGK?>4sY^v03 zh14U4>EZuCK?+R>UtT92=-I}U0G9l0+2c^MB*dAr&uyzy2R6g>YF(%ZuGrDQ&3bT` z(>{gV$9ntdp$+M(zC9*skRS$Bj87`RR=H|Qe1-54S7ao!L&y1YUQU*Y&{&Tv`hBsD zU0t%jb4SOg$RI|y6C%^%=OkIIciUC*gCYVy8o87ANgi<<>J<*^>;!XU#Gy!KJ-v=C zOWh9Zi;Rr*8QqL(KBz*BSFh9{v$$lDxC$WR-+5aGFw1+ zH|9gF7Se_3$SrXSGM{W*$Te-C`7Fsm77AGf5rTe;iPb_Yw;Qmrf*2M7m$|Y^I@#uw zrblwg1XzVL-Yn*uxTCc62|a5!^YxHLN_M>P21}P9-5kY?q;P>c!uqjM|D%a+Pfx`vwDRXC8;I&)3?J zKUk#!Be+WRN?&kCj~$S4q!r;5H}BfMTnBaqtd%O?sonM&x7veSoX=GUw7h_?U@B^z zr!@~cpOO6_PgKuIR;$Wry8oJ;{_j(9{zWdB@9_#d{W=y&HB;O;-QD3G37_xJinmig zN==-vx9a!di>$J%n<`toeTyw!;z;0%%C z1qC-56;A;s;EKxrO(p^N_@Dv1`YvlG+2G8d!fB%MqEfrj1x;h)g z5=msUT|h&B1~n5Mb>zi^ldg@x;uTLd3z{A;DE6&O*K)70E%cbbn5bk1$m&Q8N7g-# zz73S?+kSD=QPBh_?1K}641j$TA-YvFTic_nO^vvAzj^QS784HI3B)O#qs_Bs{2!R3f1EkIiP-`6rf9!AO*UO>n=bsOT>Rs2#z zsmce3OA4Ip&oiW1Aq^Tc0;7y6O2J*$eJoTWi8L%37umd^1*0t1x{b(QL{4*td~jp(!L3$XT(vFf|z43zEs<*g(9}-SzXsm zxU=9U<&geZm0gtJR$27BK_0IA+>l8>MX^JSf-9Qcrq z^=GJ^evb&~^{gV)_?}2ODeC=w=#lB@hF20EziIFb9;Dx|H5h)d>%q0RA%!8mr7>8w zbc6;?mbOV$8guAEsGaxI!J^^|DzEE8`A?-2OwWu>)nQGS2}Y1=3UcQb=Lf+hy@0<0 z@D$m=ZyMEm(gCxYW3Wl~=P2%UO)B4;9!pO$z>}@43L-XHE~asm${(#S;MUAF?E#v` zE(u;K;c~1WFE{)F*wC`vymn=c!@d#^WBKa9_kRaWKC89C^_5^dl$lbm8qixPEm`ht z3R+)X@@w9et_3{w0z0^THYKoTVr7{~X=JQ<5D24yu{m_R60C5Bh>q<-*tRW1wd}$o0VKCMl~9YqUob6P>y}ZV()QBgd5t z5y0TQIb0Y{nu+NC%3ZQWjO2Iiey7-+q<9#?sulh`(fPI+tgAlDb)aXsRx@4eUbb>G zzyj#XZayFMThSN#n{OAl!BDB^E$!2EX-yxwLAp|uo1>`C!@VXySlGUTfQ=78>yfN((HhzE`p9C231$tB0k&=Da5)N}0L0CK* z0@V2Q%P;T)E~r{85O+UCgC{=u^z5!-AKZ#9yBpYDF`fwry*jL+8r3yvzx09eQnT{) z*;h_JCmx1K-Yk6vSoIDPYBGEW>{ll&lC$D;Zd{(*SfvyXmd||oW1^dDckzC{mHqaq zh2K5(n-y~n42$4J3)J)|Sm=4ve|6HqK?snL8>I|mPVY{4#LccWXjZ9y%zAWhn^=-& z#jxOLDsVghwCFT?Azw1C3H{qhT=o!ey(yP;{vOR{U~CMfyiN|QYaOZB4DKQ_X(o7m zrOspk4YnYR-W4@F2%7C%7CWxIc=$W$Zn}OFSz3CNL-_x8XjXfozxs5xyIb)44|X`q z>|fd8a>*1x2ZzDnc;vvwfV;XZY)0TRP3>xi*JLB#7r@xI6<{A|8eCRWxXST)Noo+& zm1B<>f}dqvg-{4LwfvZOk(0QToRYxnt9@STk~q0JR>kJr9?Pef=iQ=`>WWcrHo9&N z351PuBVEd8tz74`8uu7u8nj&*jd3!@F;&7F^qurRP?uNpV$?-~{-by*e6CsT? zeijX!7q=hT>7vI6tzv)i@U1uQ-N#))R$h5l>WT@4l898=)g^8cvCWLTb$j$hqS@YN zwEp_EUv+r}5PHb82_j!c4cuxR_!=gPSZ5QPLF|E@bt5kYuP-(04zgQgGdpj0+gT`; z)87y0#;2R_yE`L@A1<^UNFf+wO-1&P5Ik zprh0&7%&)rI`SReXBjOW)YT^I9*^)_Y_C_=VfZ*8@NH`G?hORPuTUW$H*1)$fX-f3 zbHja@1^S_SdGCmvMoqj;5c7$8fE;|%Wpe#wBtc_-v3Co{nDP1n7zB|VZ}|(*#0`=5 z4Ta2FC;olbQL4O~A3UU3Ap(ymz**UNGc(Sof1#s4Z8Jza?Df3a%3ElG5G_3d#+Iw~ znKCvEYRPK>VlOmXHGW zxTF0(#4op=QvE9dr&;>`?r^Y{BpKwPvLiOdN8VJq2y@9j;8_L*NIN7$(>+fhAW9LT z$irN}J=j@-BS20^znLSY)doE)2s)#W%o~o}YTxry-BniD-v%s#?MJzC=}%;7ZVYIi z2d3XI_R_Kw>?H5#kZ&3TTLaw+vtDWtVW;6EFcZlOlr9XcSe|&>tln+g@n$P=iQ9#9 z^UwMMa{X9-0|nT6Dgo=>rqcntxw65Zq?eS+yp71eO@qDq8(_h9>n1gJt`1z3#L2Y6 z?o4;fPNf7cJ}kQZKzE+x9Qnc}Mi5TRABDq{C(6>0xQ2=^bty%F+3S^tvm~5+Z_&VN zC?1e4CJ?xU`XEL@+*1=NKn9i#yted6wb+PJ&`5#?rz!h?8q5q8A4!mtNbV3AaZ8Wg zKVIN}EA*7G_+HF{)!Vw8f3fM8H#nZDQwjq7A=cLi6c6|I{j`L`@Ro-xc_IHh$0_@Z z0h>O{k#90bo*&+1u>Ee4?_g6#3cgm^3kb}l-PPeHkTA%j^0&~8R@HQgBkcER!7<1fDKF@jH>;)7aW60`L@t_|26CQ*kt z94bP2ml*JNv9T_Ar$qqEJr*`fCjvLCSN&j1G0(CZQLmr^Fc}rgXQ~3TvqNftALrD^ z$!x{t*>tL2Hku*}IaG9_I|L#6-KdfxuROl^Pi^Koo~@Qg>^|Ib953uJJ513Y3gP)( z@#F=rI*kF0S}W01-9d@`74UCx;5uZ1zqlCesQL7rI{8rD@?w1`?i3AuJrzt_ls7L{!b~5027y zL}JjEP!H$lu1jA4jchU!POZ7A1$VtpA!;Y`*fEn??ZaYDu}PLJDjF~0hXnjJjrs_Y zc+>aVV?75yFdcW<>u=bz>Zux0^W2liH}rJ;j)KmI$}3Ka>;ee6KzWRC@_t$coyWMJ zG=1r|ztj6njsz-RIl%h>>vW@zqW?rb5ox<1!0bWb?}y3-cUgg;6=v;8j^2~L;o;G! zpHu%`8K#qPZW)k=S$vz(eqmPzs3S3Fx%LWGB;I5ecbIiEKs3=7^uz%ny8^YqUWU_O zIUR`Aj&~s^_8dCk_3fPDmEOf&TeU%m*?dc{IT<7;o)2fLRt9F0xVq6)-_?6!_Lg86 zru7tc^m~{nD2r!K=Sgn8aQ2n6r3{8O{E395y_b{v| z_f_o5T>sl_V&zIpnFU08^0k_NyrAFs_#w+$t)-RrdNCU`kVZIRnP!*_=FgE_ zA|V#}$v?bfRv`td6nQ#@I%Jha_0<0a!jz2GLXAFdPYT|Bbz@I&=k;|JAnL-9I%IPS zkaAq%gXVk;J{E!Eh=gl@)Wa;y)yIp8!gLs(_HyjH{i;U+9w-IKM7FNA*tq22n0-HH zmf{;-wq4-vuw#Q5)Nf_>l12b&sK@R?FxX;PZs`HGb2J0$Qwg7LN;;Mg`n$wM-e-R- z11PjvTVEyM3|0+?k*2L9oJ}9kQqf8#O47Y{uy7S3%AGvtz9peME`vV(BE% zHEqjV2NGJ>ns*s!urcHaS4SS$$qj?vz@Crkv$>=G<_EHn7}m1lju$s*mY-17n+Nl_ z=cl5<61z+-&+opBSPyiTEqboLazc9Mj-mg!i9;{wvd}oof~!I8#o2nJhwja2M{z-l zpCAw#_Wz*kKDMdf2dCyDlzeq2$9*(n^$#HNp#D3FM=NZl<zc!^1I`fFE4(0Y4o(3tH;Au zivza~PbKu7xEED8+o^u)d z>+cNV_BFs_&a)r&{wSRVa~RbqrfEZ2uMaYFYOTE z?m#ncebsLd=Po>>1415;Y9!PF^jpo`{@Z?)+o0*q_!B3o+dEw91!bgceCC^aY~Q@tvtenZOq96FDt_h? zcNw-c-40MJw?hXW2C@#RoV%DYgj)o6+EZ~8S>A#Hg$6Y2M7Ou+o93|M-@61;8f9vs z>f1yP2i7EcG0#P&<>6(%-S5*h1f56S;Ax z>^?GZQ8*x@GlmtDL?3MppckBmJoP_IB6q_t(A(r?VEAh+Rb(7J>x~Xf11lj7!x%9M z+wNBqlDzCM&=RO#x6%5m#}-`6@^g$Fcm1UA9n`UTw*nUE*sU>?*WdeyBipf8nv))b z_1GmZNCd957&Oq`?*3$BYirNvkGSnK*mUieC>IY_pLlb@7Y%+0+7mdvngpyY!-^~D zSCl8I$bhejpTGWLvci73nLD&ATkNt4OavUF`770{Oz_Mb%st7&kq{+rCp?1)UgI!8 zZ~YDzuU-nu+-4w2=)$nUevTvD1$_t?6Qe9VX@26aSq@fY{zAK2Xg^dgb2{;9^H0A}c0!L+9v45pj2 z$TBd&<2ZHt17Dc$!Xdd@={1rwQEO>6)zEu9b9n>HM-!1yO1dmqZq$`J(wKg`p=mdQ z;X@53LD`A2Mf}c&Ibg(rFoOrkt$MEI>?);<8Ek9{X3!ZXy(5-rrSeOZFWhM|!Gwvy)oeFj#b;e&X>L6?R1(Hfy z$M6Z|ED|B4#|<| z2a5eKZXE_yF0+-WM`zLG{5qk-T*+!P@b7B|aYXy`nGBF-LKC=(x7qr?KkHW!<@Vos zc`MfTeFjBd4)E9&=1yRe@+!1B`jAYhP_5F^lGTVAOqGT=ep_co)YG8#`Ug57*rHH2 zaG_aiBJN$>WSIqNwY!+1q|Vo?4L`;J%0biuVT?mdH55;TaKRK=W?h05t#X=uyO{usYV`7Wb}}%s{E&teD<6+)ep&Kjh#=vT ze$IaJjm4tN_kPFmuYcGO=6^`20rb4>6!HfdjElVF51llr$N$}d$b*_QK%e_zzG<-8 z)#jYdbXT?~uivzU4&&vWfxU*q=T+t=NHM$~v z4%tsJ;e6ZtDPx^*RrwgbSA7CFp;zzvP@^O@k-yZGYGpW!O4nW?Y~!o0rRiBCkhB~b0G0qz2!pG#x}MgT>&mY3vIeswX} z@q>=DfG1kzBXjW<8FUzmpp`URzfPIr<6y6(mnH-LfP*KQAHh1V&88%-M9zNbuDt2^ zT{%YF)^FhUDCoK;Ex4;W-+K;!1dmz)B=4^$r0MHioqIEGZ5(%$PWdY*Xl5$;cI-|z z^#B+NovUE=29|s({Rh}!z2aS7cQ~4G!cDx{PKKW8!+{z-&{OHM6w^cbNu~ys$>9p~c0Z z7=mnY>kesOqcQijf0kGk{#%8W_(A`J*e0EOd&x+S019Ya#McRL>dd;QQ^mDS%HxEB zy;aR_25=G)YZp8FE=vV7)LJuVJ$#PFIX3e<`=z_(^0c?MK_n>GS)l^rIE7L@jBQH8Bi;Y($sAjW$l2EPp@ zm?#|r-D7uPA`-($9QDIc{g$=E=XRw(y|$50`2cW8y7Qy=9N)79P*9T|cg-8pFa?jm zzP_z_$pZIwf-WO%JY`i3IOi|`y#CT57=ZpZz*bA__B_BZ?7VswUWJKrM?asrLm*#1 z*$?5Jh_Nqe7VkbxykP)$Bkebe6WzHs7A*K27&hmPay`Mz!=$;6&!?+EB^vk{!l{M0 zy|4gQ2Q6kl3FAF%4y@?!zWpiVyb~F{r*6mlb)T-q?)rTwQ*UX+2Z}3a2?R9Iy1#XO zFUsp^jfAiD=enG!gU(InD{nnsLAVT4O$2<39sK(**<5&T-i1hjYJ(35CzC7X#3tL% zK|<0A*H*2N936V=6U&yqMLfr+)yakfmE(PqBeyxNIkf$c(c>E;R6klb)a?*e-hgci zKZT58*47ul(Jdw1SOxYHR&{$|zD6>Z&Q8&uGU#4$z(%|jIp9COlWqmQ$)U|ZZ`wQe z@wL!O*zTri;RFs%G@QIA1`j6q8-YK|hhkqZ*Yz2 zJ^n{BvtFT9XEKKyrk&4gD@?l8Vw=R$?|}6w%{vXH+7Vl~3KpJ{TfVoGXKNgHeb4G= zZZFE6&Haq^5lcsd*OD?k_6>_C4u^??J~F$RJNi@2ftUx+hC`$d5@zx7K{;{G1_9d` zj)48;!w-tg0X|Xu=g6hYB82+436yHdKjdr^{8u10ex*R>D(U+<=+5+KY8)D<(OT>R zC-~Z^GKi&l2~?!RG+FH>KEf0*HlmLcr7>GA97St|i~(T=DjYOD2jyq)oMu2zceO!f zM$!+l%@2pDqjxy(*k;q!WGpMhea->Sazd^Gb0Sa-g;<4`D3N28N=Hh)|3AdN2T+t* zyEUqU1SJZRgNhO)iR9EEQ6-Dy3`!Qk1|%!7$%u$Z6Ph3rrD>9Y1PKj-;*s3~UNW{Tq7`w8n=Ydu0@$*% fn6GmK;u|!VoQNX0skR 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ⅅg-LEOvO^2FY1Eb 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%0A=XtUpq2mA2y@UD{@yUA1Y*dG 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%0A( zSV!U8fa84wJd5E6zn#Lu_J-Mp{rG!2i5xd);g)M3b$#0 zS#dE@#^;Ia#>$z3V*91dH8+T2xu@v2He5MYwK}_n@w+3hlHfS%cMqfwS{kFkV4_3< z0ps)+b8#P=K#BLG?(reiuelwj!8t@x@sF#?p3*Y^PXG-+0WFvx)AzElDW z_C>Q}WbpU2|L(i=Uwyx(>aJ39{UEpWA}GBBgKf+;A>;0;u=B8M*}}LTJ!-^NN_=IN z_~POGnBcq4R$mmp)UGv-VIsux>*2@P#)eYc%<>*TcIu0{MHzCp1KrZ8I6^=Yo=pwBrq?8UW91~-!C1EU6dw{fvK9F* zYM^(X;Nm+fA=W|9HDum09L5u*&T4B;X*5S7PXE>;qv+8#6lIr z8vYsC6rm+Qb&X~3BbiDElUMs9JtvP&6YWD(w_sDR_-j+Y?S%TXsh?;O5^|&7`o0w( z(W(a6^1=KTanH-vXXDT4YS3*G>ryTcf?q|SIA`|obU{vf0|I6Qwcq8ApFl1}K%~~? zq{$>eHjETQj2)6-j9A$GP(i!)Qn6^8SbZCZ`TRiy%Bk}ZDfmr`g-S=NE!Qlii^<;s z(xeKGY8-BelFRmRN%D8QZX$}@=^78KzdMtPeY&!9;eRY0|Mu4a1`PV;gm$~<93<4k zaD-Yy0xi@;-RuI=r`h1LM|<)=891-*IXA;5{d2h;&!O@V-|nPcg>hADwmoO-gR4D4 zytF6_I+oeYs&vpM%D8yFTW?GfnrrmQ705uBoTxrFevH06TRq%IlESJZ;DIeSwG{;^ z0&~Bsw;Z3L9Z@#=;i9{6EoY?qq5Iw9%w`55JFL3c!ARkxQ5cwYHY%1oMzvHFHRtDE6LK8jNd)JCL21y+R_x+UAkpSUq_isGkF<~P6 z_$k{ZpAR9P<_W2n?QYchU=s7${kvnV`$v}?Y%|agCNy0Puicz|mBtsQOM!=BqqFQd zPdtrL_jN3jQhb+6V2>XMmmU7v9c!yPvv9~}hZ&;pi8J6%+ZJa3cBe&3@abwW!?Vb- zEY^5bkA+^iZ&>N%>t`yKRzn9=(PHJ*E^G6x`)0EXE#QE?0x?5wUb0jp60PTx+N<(h z30W6*``Ru+)Q>l^hexy)MyWa6KzTA5}xgoP28NW@b3~mWc~i_v8tythU1*L9@o;;>WCZy{ffE^(>m^-lm-6 zcv3B1Pdg>50?&KQ5V#?<&? zpU|lVa^^NS+EAqg5)P}bYZ*lHA<%~ri6N2-+D63*tScWO$T#BMJXAm<2*?v@V@?m< zdwly6u=`!hkpx5mLBd0tO$3mgSU`RsS{6!#H77e%?o#E=d^dW^;xfDDMUG%V`f$ZA zJsbgLDJ_7r-1f{M!ck~pscb2iC!3qt7|oA&ygX3RGA1(k@N2`0yuN{f!TQ`vLqcjx zvgAZ92ysLf%V1Mz+z@tBr;4^k{`rEen-oGK^=up-0y#&sE>pK_qU4T$lpG5o>J8IxklLL zj&xZq-~O{S`1>6^JT5n0(rWKP{6gfpK_Lqxb_E*LQBz%7?oG~?my$Mj4rbJ8{hV#^ zIOG#AhWC#|&6d7vEuC!4TK&|y`s3U&6_=gb>MkUC^#^(2@!_H_=&Dn7(5_M?L~1#A ziZSRYwPtB6OaxgzQ~JMd7%JlyJN0YZN`F|-nZMM!Lp1}zfp3kXoaf#dk9-VSBHK;Q zc9_p6q<$)r8$Q8lkgpyU;WbybOj#gyp%*%W==DV(>4Qkna>6R&Zsv8H@;<+xegG59 z@;vXJA4E>&wM;3W(zo8~c~c%~)CeH8hi?IQ`$`F)^$09=bVv?*P_qJCbI7GJU%(Rz zTb+2yoN{sZV~ftzCy3-72=ZJ8jSexgECA&};@Vs8$UjkVT{iIO62T>gLd^B& zOdBHxgI|HhDN1mOTNu3cE1zXy%vgn3{}v%rE2`S^6?84zYBnndc0KhmAmlQpFT;r& z;gDjyi&7DSkltiJ&`C454)LZFyoylih7SfcAc1j^Rm2Mad{?Xg5y|QGseq=oUmWKH zalQOkaA+xgAf%F}^eZ87{X3JOZ(_!W@rLj!Fwtd7RnbK{!Wp zPHU*)-P<+HZh+a!+gi;-%yhSdH2ke% zwAReV5o+@4`%I>wASCr&bl812)0xf--jZb@wJon9Z*|Y;NY7Jw#Ic#oQ6c~R&xZKF zs?`6_pCHXM9@i7Wu;qAh^U00>;MmHQ;;;%FjKyFUjT3Tjnz1^^c&1WXoIzXMos_J; zCoLV+&BP&gf*8tSU=}1MmhKmVgyJRME99yTRRgdzMDT2r0O|G zkJvaop70oN_ZHnzdLe0c$5J~xL+9=>E}WpMU{s$D$I+*`qSiGrf_H}ZWEzT(hAi$% z&l9qq9v@YluZhXVUlQzPOwXgHM0Y9L-MATSVAU6aArvHyHRUt}(L*LL554m?-FjOn zEhZk>Z_keea^{?A`-%@+-Iw%w1tsPOaa@$U$%7l=d4UBu>SGh1(RJGMSmFyuy!Zys z+gl~4!{q~xZifQ2zHC}5N!n)$oEeCZ!L>@6yS8O%&C%C>oC2jMHrWRroUU70D2{rsha|k?ggj|{^<5|mM zYxta!>&9hSUkG~Fo`_{dsMgtdIk7r0x`wNWpF+UZ6Z*0RBVSCCX^d>#2QP-jubI(B&w$Hr;2(A@Ue5O=ev;Uod76M|I~$A{FGi}7lte12A8lbANc=RCkZ03A1q^-R zMl4Jemcv+BEueLQ>geg$n4gyahEX3hIykCbgBkun2Ag&qc#a2S+t1x(>XVBxZWs-~Z@SEJ!XCJ(eX-1k3$kuu;|%uRBL4=({#Pekfn&qFxV$^cbg<`5B?-PRHCI!Hsx#%Lz>dus zT~0`qJGx5vtlsHgOO1Bqh1Z>QlK-=fn;}5=TO<22rAQEF@he}@!UA16L3&mX{US(a7%VwCkk^>{MqJankhLa{)0e)Ad^ zg#W2U{Q9$;9x-6hO3?9E^mcU#=HDEaVsRYypzQId-zd3-HfxF7>&g%VGUIna9 z2&>XPrIudLw-(sV6g&q9H04L&n#QqO%t@ue$2bmw35nGEc(^Q5 zD(96KTD@GhFzDJ&LKMiy9cjP!xK(;BO3+~enRJc-i2khc$5v(V?)fQ~fTVrMbg6!agUj&n|KPd#amZb$NHUq7rcNuJcTQQ!v0| zkc4?Fttw0YWn_vM{jtW8H{KS9zC%2e*6-pn+R?O3q~(!F0lQ$6%YU>B%5MAzw; zX0T=q&?y?*(JI6(*u$8dae~@Tj?|8qKdgkdS6D9+fn+YV9DR-SrFzxl5gcC<-AA6V z(i~(xPKZ+BWvlE~x<*1lhmR}1c5IN z$C8tJBlLM;Le!zH5bcCS;^tWn+z52b^8p&HWEn7VNdxn5hS)lAW7pvjjoP$G#e=PE zV(lxSZC~v@{QeQ4@y<2>Ai8|0#0qo-C}Jq?HEcpIMq|tlh=`Fj?sx1|7J(3j)rdZD z^cK}m5D=86bwSNh52Ym}3=#DBd?Pw#SMvJcbK;ZdGH+!Zt}NUzY95AwN=zv^$E#o_ zQRf2%iinWuDpCj`sU5UyA{C_Ob6DbHKG@nii_Zdfi+KdDnC)m$zab=I6+@QcwxR+?{-1a}0iwr)NQ!FZBNq{6wK5q_iL%{3UKNC2fM%S#>U{rQ%cR$G3Vtj4G1p}}7&WtH-n2Lx*O(@Nd1-#fC*Oox<9=x|p@L4Sw+)W;- zz2`Uj9LqTj$nWJ-x#g=f4kJTbuI#WE*Lv0U?kD}n*Pjz~OtS2k2CRC09u937C~EiS z;{3L3T`KasHKl!{N(jBT{gh%k1tmqN;_Q}K5QI{X;4u-wq{Fe-1s{HU9?+}*;Tb~b zK*)VDx5qMj?mecug}|-h<{)2k>98MOUv8x?B}?Fwn*ciuCFDqGTkc2lpsN57r(_K| z3A%^PJMb_MpRhs(;-YYGEsI@-+6lZ5Eh|DmgrOZ8eKBadYU47iN4b(N8lwVknu<0- z=!RN69)|6|Vy^vEn5rKhimIRGKi_wq?X?iS4-A8GyA_p`r+xir-y|W%QV5j1$RKi8 z-_RL=7CN3}LNWF9$Axxn%Dd$a&Y^{Te>AcZnTQ z~*Ts*LOtwG{Jdt<#A2^u`^4)%EX^ z)Ci}XTsBm!@(YpP zeEXuGn({nEW-7cq%}9FZ$;oUt`Ke(}ne>b-_c7fz{qOqXgrm~m9t{7#e&XQ$N}ra#Dc~YCX`LadyUh{RF#HyqMd$*G zl(|ekWDjKdcCVFOsTTx4d3%M)X+TUf^YN%mhUI`co#vN0 z{kOejmd{O00Q;kT)~Suj%AT6p`kWwk!7gQN&uVVTdm&^V`0=xis-N-!w*3S`6R#mp z>*C0pYCg_YE4`lAAxKKi+wm}^B{{)seE@7&hT8_264eH?#=b+gaK>;&kR-3ee1;J* zSPd4{9M$tenCIYrFj~XaXLj9tT)SUC6$kZEc_rLKXsfn%5a|v+J6&^N@^^1|EsE9! zcCw6BMM;&AJb(h#%6Oqh?nrgDAKmVQvEieps{k5j*N4d8An$f=_emO<+B{cP?cq6gb<@n|@EIWz9ey1(eGVHCHvvzJ4a)_g5FW2_9&{#q^y-B(>~IjSuwD}?tw$zm6GU;38#N_{u8 z9h-2A>@t~5faUAj^xc*b%6vZhyJXnxgT{Nyv{CP7!ebH3@$K2{5gzuvN#*Osxnlg; zV_7ceO)zbKBbBwXE(-l1tK^X;X-E^kGtO@u<<%Fpz?--TQ@n}(!1W8Jfi~{YMc^kK zF!ZMP-Xh`5mJ$=B*6I$-I#)M!RoUt3MZkYdtCILWNWZ!9onEOUJKdWOi8dJC_1|k?M*s zHy~Dvsr!9RrK=lpOhoo2vs>{(EqMazoL1`sV=f52u3x^vFvVz6)V+7+%}b3^ye=!|7nScV)m&9-JrJ@E-gPzV^1&_4 z^w|q86CYBUGF#bbn%e;w{YbYib$K*JsvuWrE+c(wSGgp`nsqU^VisNXh4<%d6APW# zys9E3PB`HABw+J1NV|MGzD68y+o{1id7%ntfVV<~ncX)&3t|lf6k=Z7aP2U3^$=Pm}1J0Dc9K`kvCEM_-pULtQ+EhaUE zBw}||dk~%p#&JJn$Mw~EO;THog(jmYPa>f+i@>OUg3$lh*M_#Jux#cONs|mU(UVLn zMK9XxVQ*2ThH+UcgpS17ta-10abq(a#4#c5VY6A zF6%wM8G>Fl7lqpp+7Bz&a?UH!hhBePfVhOo_6PLW%lSUWo%7A{Ri^NKyqlZK{n%@c zWNv@oqR$5%D;Pd*Ab2vpZKx!^L&VkjiZ?-pqb1J9y|R8S3>&H5io*hXpSY z&)6-bNzGeK0I>Ff)2Ewk0`=B8ofB(ulw3WfT2me;kL}!d>B27BP>tFIx%W{FF9_JLtkyikE1@479O{oF`6%MVmN zsX*TL=$ycJ>%d9O%SUGB`DMFHCZaUm_5FW$qL&( zapsQoj|SXw+lQUZ>!Y7r3RJVlGc$w7_ZX`N#ziXIH&lw71*xtGXE+mI)skB*-^8uY znWD>E9wtaUT*x@wf0~v-?${oG;W!34GtqcTF7L4;Rxv92_U)gW9`C_ow2!}=UrB}K z6<>>OI=)51%?S3+ssy6s@^jo7y*mUV+m}p3ecOhU6P~E`8zOV<7?c4L{JZc-J{$sz z^RL7T=UCYSzb$e%m1yF-+qNBwTn;fpawJe9l&v=ptt&rk3beAU@ z1&_v9<(@+N*+LdV-w^i3b>TPw0|+#FZhXP!L#z6zJwU=x3p>GMWD$~oZMoHD!Oj%M{c{CC_q*8yGpd31oGUQl)hiog{XShgZF9ck3&S}v z2;*!5kweE99U~@{^pZll$XsM4Qo^Wz*S(j}+L1BPu5-)%$-PP<}gv3=fj#GLeR za--+b5N`QhaB-NoSjpsFv1aqKON%$1Rkzi0{@?zn{q+gG@t*yv)qbwtCPO1!KOrg9 zCw1SY&)V!lTkUBV&<>mZssJ+R;k5g4>gY#uDb@Af@HSgz0OJY8abU^i;6jYEe^L186&`Nq&?!`p^(Egr1PWiN=Y#TI4qjVq)T zY)z^p3ko^On@@!8mJ;qe-q6aZ$LgFNE{$@}7EnnS4u?0EQ8;eL^YgwJ_8&%N-+L6A zS8BLRIBt4^|I%&f+g6lJ?NkCU3e7Tkgc*&uZ$*EY=v7k2$ zoS)iWBQbJKK-=jiNI;|2_-<%p0r`v}L+uGf=g>Qjz#aR6s9QRV3=qoZ@7T=d!V&j< z2~LLB@7M$x;n0YM=q(xJXIakuO@^9=YXiM2b3>p=c;YM_9cs07tDKqYD6`7J$@7;a z1|XEw6@DMm2ltCzeFK{zf}nh*Im|&OAP0;aD*r99wyDa9ESL&p>l8xWEBIRPI8f8v zNYz~ErxW`zOq}{ye2qaY0ZM%MZGEx0(fOXp&1D7K<=h&xA5+p>PGWGFHX(n4BVT{i z@VVY6eIQ3)6&^fil%i!`UVCS9`w)ApHRkcRPOksuz&q`cI#PYf;Mz@97Z)#GC$=Af zT|KRNs+RK^S*@<|4`SpJWv@-)T(HrdmmWLz@gJWqY>|9qJ+N*eNAqs(rmD))vHsR* zB9Wu-r1Z@dfmS9rGM81YN)uohHNm4i;o;HQ(e~71oKPr$eiaabnb08{*fAw-Q+J99rldenFHgefh27M8E%sx%ZB0YU|oZ z6|svnk94AfMnypcK}r%7r5s9Bq$nMPh=2%4FHu1ODG^XZkBSFGdY6t8iAae^3r!S4 z5kd)p5FmuRHlFi-->;2v@9TZFA_G}T)*r%KY%qu;geI7myd!!-x51{J!L^`-~h&Gwf+efkPisBTk$bzLds zojjFistASkeuj8ac}*gil*@fXO;BFSC^&7meF!`0rqYU8HyuFI9Zhx#{6q6gVC6oz z_%>?OPbgVGw3@89&k3N*YLOK~$c&4H8_^9QUUzX~I@6m6`ev+)R)D zd?fixk5j~#z@PWF?EO?!J!zbOeAd6Gs&eWN0|@Y*ms_8gvyA8XbPnD;vNk&nu)OSO zGz+~TkOch&f7?O=J*}a=syPM_mBg@3T?S2_cI+ z=a#8(RIgeG&{Id>X6H>- zi*dd|X4*ijq09zeTUJ_iN=N56YH>sVeAI8(;x(yDVuo`d)!B@&ItlLhQhH|(0-B}d(9q(cs?NxztH&3b+Vv( zhn9=yxxg*a@&OU?Yxn+4yVV!VVHe_1Qb={$VU$0&rKnl~Ni%Pv&>rPZ!STg=i75vY zU(A;*+T+xQ`t{^Se+LHP?P(InZaT`GTQZz z1Z7B0Pr63&Xc?cuMbb=nURCW&rDMLjK8O~;-&ns2jL$|8vH`Pey+t4Qt1%}`NW+L( zKeVg2yMwag!`XfH`8q4R$DlLx+z5>*CH+8lnpPvIEfb;Q$yI%pK zNRU|{UuP3;|Cz-1?D~CMNjA*&)fS z1atix`{m8Eo0}ot0fI+tMNDjgfLkJuA1FF5YRESQsAxeIVDl0rn#s|Kfc%E~sOQN}WJ zb9@(FElv^C_X~Co(6*@=81)S})$>b?fPj^e^TkP}2EWc(e=?)`_s`jZf|4J^#l^DX zDNR>(^sS$XMrvrfNz#eeu@{`R->a`sjEvBG7StK|Jm8FD&+Eh}JhC@V+%=djekoTlxJ&{?>J;xJL$Rn2T=VLS_JH~Zz(tdM8D(M?W@wKpz9taV1>8cQ3dxY zDZ3P;*Z4eB@w`3z)*I|m9Qs`egO#IYv8Ot;b${dP6 zp7Ae<4+FP3$m_ifMd!}&L)!~Hv{@Wne9?qrH=v$EjL5;0NoX42Q4XGo2S#LN7Qg~r zV(^6{528^|XbA9JK109sOm~dhj2RRma&n2`u{7v|PmfW33;CE?!j6Q98U}(qOj$s} zH0hanpY)*fi1q0A5Z;+S-pYmoLWA)jAZ7|HehgRtu@ik1ih3*(Uwo$;tnHD&0raoz zUI4%qBQgrtJ$LR-$Z?IE^;AkR>;INA{_KCa^8bydVQTw*5Jurq^Rs28C7bu*Y$t>9 zS~hLPKQwkted0|;X5xig%f&r?jj&{5Y86rMNtrtvlmlawoCRpGdqS!TO-;~oycjt zS_?T5LP3qxeDlH8qA(aUxd#&l2IUkh?TcJncD~kVewCML7NG6ILqA1Ch)!B3KdAtxcm=XqN{Dvz75X2!z@Y-pT;I)eewU5-A{ z-23wp5Es6HjLy`ST*-?m0<9M19sh{Vf;PG^xBW$iZ++6oOqST zbdU?U=CoeMV?Hs&a}^FwEeC8=Xil>8;Hs>c;{f(lhmsdryb<#6t*pc#8Hro#Oe7xz zUe!>b=Z`h5n?)PBQxz>|1DLe=$EMY8u9J({(P zb+7Y?MQX}JM*DGQlpz&=k(K0Ospdg4=v2G%up{#*0qGNdLV810%MN8j;x}6XO z7no(v<3RvJvddSe>+SQF5_M84HtRznST+fJ0_1s`mIY`fCC!y@1CcVWpNrELbBe%! zEmBG%IiA=t1;R0akD;B5Oj>@;Q6Hz~pZs=Bt&xIiD$nBZQcqZ=|KnXEeteT-u{nuG zzK?6Mv-cld&5;ZblU(nd7zvB<8a~x{gzU-Jok9^7dE^3j(C6Jw~aKq&6 zw`xigeZiaQt>F@wjHZisD+H&gm>6nclzN5Ry5!VlU4iJ&epyC)pY49(So?}{@+d8Q zvyH6oqD}wS*IPRq9lq6u=Gcc=a|08X2D#|t1$uiI#CpQmS$0u!N-curUFC9cC6R1B z{MJg=VQi8PUkE$7GqV+4OT@$=PQOG7I)gzf^%+X~)II3Zens2t_}1jXJs!9T*Vj#e zxi^MiXOnvtY5#33|17&-R{WTd6)QuM0Z06tcBq<8>rXegjKl@e>=6dMR^YFdTe|6Dep4x=K zd;^>4-5=Khr+odXPrlLq6K0o?%T4I+N5@f9$03Z(qki-DyFL2QIaa*=;-xl~9|wG{ zpg|q*l0=MsKrgJ;45(W_<}*=iS=sjU7382is3dP3=>zpp0iI8t4a|h^=dr%&Q3#YM z`^?BGD#a;)y#8=ZDCEYahKPU7h)F1@%7VnLuk}lwKnUuM3~^C?|Aq8hM~iKe_>b&bzuXNa4}j&$t~&A>m!1dT6ad|)iNi~n98mtJhpG!3JFWkH zkn3OfM)reEr9mT&(dprHD=Sf*aKx53$=XF$Mc3zx2Q?d#!mh8-F2|!=5uDCZayIWr zzg}&eP1p;JBw}${r(4fNFW6D8@X9zkc#NotK_Y_{Lg*)GZ8L(TW@=m*pFF+hBeF27kOU0+p;CY zQ0?n^yS9!M5R2GII}Ed5wGj+(8PTo=2-;x4jToLd@u;iq{BlbNguGo1yW2;jsON>;)p+3h<$}M@c7ldC zPd~-?lKvyn*>@w4=lh3(Ge{UR0%az-{OQ{VreuimyBBZL8n@?Onq$xS)K!_k(6@gC zQJ5Ycnl$13Byh6SM?}asjnmWevp~WCU!4r(YZ@@a{I6LM!n7P3qrRo-ZkM=w$qy91 z-eXajI;-GdAH!RC=w|kwGoM(0B~X^bVYyay-NrN!1brC z*fGvX41z62r_+A*;A8O4SuWH zyu|v5x*xgqxvn41pAfxV677D|>Rd-^;h(kS-aB?V(u??io%DbAb}^ISzSY_mduE1b zG0_ON>rbbr8i+vut*@_XiXQFEjd{&_y5dh0p+^L*>^*g;a{{hZOOZ+}CRZ<}o1mts za3KNgSkuso0^E`9nMoNAvk8;NvW1TcNV~P2Go-C}j_b2ZI1x?30nfYZQca70NJoS* zCQHX`?#DHF9!;|-OSSLsvn^KF71ucJw#N0WMhWHb5=+ITRUN_7gky;}r@zE2tcxo! zx^Z6fJx*}9VfRNV$u$ECm_Nl`o=n)|J^A3v{Rv=Y*iTMW7{8nHzkU?AagSm3~h-x0s=L0-Nek1_S7V;tC5OwD0seqsMN( zpaWDUud3#_m?7U?;C3_$S`d%rAG}yftNhI(kfZa|K1L;j4cy*j70*Nfgy#J>z{^{k z@5&E8<0vD(EDoej-Gkf20QkI9)*UMRqL`BC>n6SxeBP*_YMFb;!v$pPg8 zqPHZf`*~dZc5S_9eZ_jTG(X67i3I}~;qGYowkD|I&#U9CIF$MNKyyMBkCB~*(H}|K zC8sB9KD@5`(F87q_VW!dKS6(G9uVRcn%h_u60$6lu1g-{iwqxQT**LUcmR$ zj?PDd@y>_Z&&HWr05&CWZOaGh*Q2D&2r)LMV0wpdUG|D~>SngyL9p zLG3X?+WL>UvnqVsqh#eaOE4yyno}}^+$o#G;jO}4QeAFMMh2>J39RpgFar+|;auP2 zq^w-#=RU#sacFzAWS>QZpymAO`4@02S^^x!NReYkQQ}ZO4q(`vDv_b_ht<#*6R)m! z&5E$~x&iFR{|okO7cm6YC-2j%pGhDYW3Px8F9i~DEuipXwqmj78gi8?G2rxwu^jZZW}$;_ErXZ--2OQ*uLc=Q$0w7sfm2O-N>~q|>-- z>?peupXBFKsCoJ{X&dY=h*E|jK2M-r znI(&xr%|=TE)W9S1*IyP`iVX%_&ytw2-ugo)>02*1HvlB4dZT{&3DL+XlQu?Nw1;eS;w6R+rPgU*dsm#c+dYg!S-~Fy0GR zcG)CJl&DDo*~;U4ygE^X0=R<%5h7x20nGW-S&PVi!wsKdl=-9%l-d}5CW(a2@$iDm%Vnks!uSf}wmhbG2RNPMvj zW^BbT_da;Fu>pg$#04D1Ev}d1icglHz;49!X5D~>OoclD@t$MXdax%!WA7I5?eGjl zgdJC?1?%x=kzi6j2V}^s2AC}S+kxtijT>fpk_Gzmz;wv$fBMmw&udrjuY+&m6}PH@ zto7YICsrJQB>fn)dTD;G8^4R^;MY6DP3T|`m7lNU{aeD;#J>Tk#$oa*$NE;pp8h+- z&ep5fA=qW4wnfJX5AGxQXaMMIJjBrI;2M)L%FsWC3m6!APR9+uWJ$byzjIvQD2^ID zA~r;6IJ%OZSNWDvRX^MPVo6IX2DDdI)y&fTlVYyKp4s>Fuys0YYYY+Ex2w&*t1D~( z(mNx=vp+)H##6}rvr+HXxSWwa#6#=bk#qMU8R1egPfgoW1;>*|LTCGLEw_JlLpj^H z7GbnBiv}xe*e=~H9Kn>ZqlWwFBQ$pNtnt*kS1PWLJuyO(RPCm^ zjgXX)RJ6i&S`!XHiw634rz@^W^}4Nn8JDCik}z_-%bsMa2A**^_%7=rWkmM`+p~_c z2O)4LCr;D-1##qwc#PNH$9Xko$Lluj55g)us(E&XwC+m*a`SgMfQs?>Ay2*&8OLAaRGlN!vPXQ~buqEkCcE=uDQ29;*ON$fx(pQz8 z-zj?l#oZsG#si=omw2u??F)zq#fI)V>w_}`xPZ1qh0Hm>UeL`x@84s4_CYo|31~63 zzYi#OzX%V8s2)K(Ny5uubz+^VtM!3Bw7!bP_vc6}v5`PS*7|VWdp^xqIdB`KC`-sG zm72vJ*->2wCgpU7-^lGil(2H%+V#~r>)6=RN9H%lXo-kXkj-^8+B^_u)1r zMYkV5yM~_q;qmoqn1xInSXI_BmTq1&uw{wU%Uz5)!BlA7XtLlv5dYgvvhTYco!8T( zoM*(Q6snL}WQ=|+uNN?S%*Mrd0gFOAut)(Og$bFpFw4NgkN6efc~Ej@*{e5~OoCUu z0ywt{dR`h;M!bmQq4$oQ3%_4GjjdO$I1RmaI$3gss4MC6)$@Qwfh~%o;$!T!ERC$Z zth*O^eEcuNwJ@91cNU_ysgW35Y;!68M(SFV1)Z4Lfe>6-t-Wk^@n$lA>^k z=4lvucH){gx+O;;|80zf)B|g~yZiKd==M=^^yO3XW7Pvfx|}=pIQY~~uUh+);VHFw z$|*0xpV+N$%rOAiJBDQ_V->FQ+m4oe`*Q>IX5s)Y)7bU|g3UmnO>%utw8 zC|YQA%Fu`oo?PgCm4Q^fHFeFtSvVqy_7!u_tKa8d#-1JSeBFum{bPTw1>cP-JRB@T z`zwv$H*X&wyqTpn)Yv3m$JE7cw!2fNBeoszU@$ERil&F`a48r)BpPgksb3mc3;kvH zJl$QmqWBRN^PNsh4=NP#e=;6g>Gn=0AOL(&mxZWO9bg@Bky!sNy+j4`x4~Klm z52z?qQc8UcgW1<34CdjI&SOnv@&1%VuVfT+qVLGQs}^W+5fPQ31nm2Yl^o-F&=-}Y zfH2im>{jGux~I7QFXBrJMi^`p9=-f47d*%N#+o*5DJl@ZQLY%% zLAf0Pb#h0c&Hi)52=G=gMgm~?Igoj0XJa9tYp)uuV5TpEyIYBC83|g_(&<(|tKY54 z1v7$XeRqb#{X3E;H4h5cYEc zdjTuQHGJ4~9uD^(;}2}7+a#OOVK>OjpKyo=X#f4vCT;glGE&kFVI}M5XMo3)pXV6I zOd`Y`JN?(Zym>a~@m@gzMloh<3CQ$-fH)tB0Ni)G&| z$>>}yj(I(i#@WOwU*tqY8ZZkYZxGG|=k&Tcb4Ij-Z*f+G;!rAI0}gl-9~-24k2jIR zZ_vmDgdLxnyFwAFM7sA&O!Stpb7zI=zGwHLS6{{L4oW(4r-_AeIoLHFa|3sgEfNbh zzs^jv@>a3Qq5!3NPs#c56Mk6{{of8VyQ-xC#b=prpLV8DISbwP%-6U}#dJQ?oXg(B zzM~J0y_=()Pky~3hb7nhT0R>+lkzF39JG3;fk(kS7?qL7Nsl&GckLP?qhN+i=gv%q zJ_>n(ci?7e)<(|9dW=3Z-TQ|VP=}8~;UM6mObwgwFynF-{Z){Xn2zeW-z`W_HgN;$ zkkr&2qoA35-o<&pH{~D_5S_m5)?|k|mqc6=mQ6{|NK=tg@|!G4$4H3XoffUrnTH$B zYs1Xh9jJRX3o^~f=NS+}w2C*aTj_FOwEk>(8M^V{`46STz~QMzPpI?8U9n2HX@bSkLK5~1^%2NQqRkB)TQTaB-g(%YT%I|5vbY%2&x5Qw zUH#gGJb2xl>5)h5e?9q$tU|$^A}`0ohKMPb#^XWAlyd5!7BAx!F+&%C_KX4ro22g` zl;XV6fRlY26}HXf<38^@3hEBcZRnApJ?17iRJ`pEpK|Wb@%Z?M>C>tFx>|+>a3gR4 zC==w00JhiVC!yKD8NjLL-T;y;%=l`}<-F(D2O!G$Q$75*KL8EQ7fLA!*YRMqeU0pF z$b89taV{%gn{Z^06Ya?%zgyEr7_wyPBJoAH42n%9w48B_N!5-8Jrtj`jUn_hqbpZ-hZrPvdpFGek63jPcid zFKZ6Sdzv-2c+PQxWbdQ!m*u&PXcrB| z9h$$r@UU4Fd{a6T@BCbBQnMkVtar;IJ*z2mKkQ|2n#zjbqLcIVRFM(z^ON9YRR9+4 zaF0{@F>bnm0%E5b9LuC1+k=u`u?-LU0e>+ou*klT? zPW&WUHc_ZK|3P54dFbl*j>dW=Sdr@V0G|JSTF`JKPF_wmfVewTby_J$$13m%RhuBJ zSZ)*3%37hF1wI5ny(};eV8^A&izor{)paQWGZmviXDS!Df7BRx&$hT#Nd_8|n}LR( zT_mea_5I!$g4sYEY>*8%LHXHp()FKP)6DqS1J8c^#{J)*6#P#(yU8E-AMO@<9<9_j z5iUBLvC?8Ciud=uHEJY9u-fcm?@JvlrV&gooQyOa8&19$2+cM zoyX*Og8XVzLxL)YdH{9)B-ZW*Z_uzjIW>-8#vjOM$G6*@+0>*d9$M3~x=7R!XYvgn zHe`Pyc-kwJNVC4g1npH34%2VZAS$kkr>v=OPLanGB`v$XK*~$G)Ly0f7IEuPi^O7_ zP4Ylfdko7)td81{S=wCjd!aVov&%_Y)^oVT=Lm|E8)Rqf zg~7>>H#~;}ZgGm#cxzG(g|vV0%lRk9ha*1T=Sr`+Bzs>%sHw7bs8IvQgVuPdIh6!DBbA*ibN-|E=fU3x9#?j5!0XS&raZAhZ^8gx(mAD&q07Y>MHJf7 z%Cp|yHo)Fma{9*iUefjkp>h8X2JzN7trVFPUuQj(mzb%n(Z9YaXjoy)rSP!#SfMN9 zhhQ=_`|XTKzlwXoEE(7OCe+6MkEBC)=G4Vc3*C^@P`ZArL9#5TBj>(n$rB0*kFU@T zDzJwkJ|q;wWh+@*Z(@T3dq;FFhUch~UVR7{CR1}WvzMf_oCwFJdcQ7hP+mf3hNLJg zGp-22>DNXgEx~dK-w>)wP&|Fw^OQce6;!-dWA$;O>ZI zg@W6Rj)qNyg{?Mn%l4+msg)cmDeWvP4pv3A<*lNkEf&-(wo3&}2aPl*yaQjqZZ+{e zzFMT8&5HU{=d?-Fx$p+tYg@Q=0~cBt1!1iRtX({H$2JT06L0oV4ibsT2UI7`L zHCil6{xn7!ZATP>Er>LclfwK$g93+#8b3T*Q*VkuE}aWIWmgVup@B!kf@)szY5j%> z4Hlp)S^^#2>@!fB;cwIE8|oDZXFa0-0z;}ixlxQML&Xr1@MXt8MRX7Pz|c4Vgw@p$ z|1Xqc)cwCe(BPZIvCc5jHTBMpO!+NR{fwGx zVYfTusOftPI%C0xNXSO=Qj6z(3RNI#`e9+Dfmr6-fCbu*$QzQVyK5>=ef7KbYrTn* zKej$W1xzFeMrL*`jo-k*;=QjH<{)O{PU?`fWg2wV<8y)F8#F7K!jG-nppT?UOs>P!BAo}qA> z#>Rr!*W3S}6Z}uR@n0Cp|J{R}W5opm6=VU4BH5zY!W1TIcxgMqkxWyi%q3w$ z<%*w|;dJ2SoX9nM!r9J#(l$$JPc52Yh}Rh9$bJUV*3e*`{gTz`6xb2pJr(a6mCu+4j&%VW_ghrij|;wRKxC0saBMjWd`q0KB1S-G zZFK~lW&x-Y+RTZbXBU4#ValL>7b++|_~$Zf5d5^H0vH%%L*CzoNDkcZ(zAg`MZn5J z{gq=y1rktaTT$oN)OjSXG@wr+&)WvxTIheoOS28JHdn{FW@Au=pDs#Z0oqjFyVcJ; zC@{QL6M^lYdnv2tPLF&dv)o_1MTOTMu!=UxN4#$k51JYH7QIHy>WBgVukhkt8kBlWT5I_oeh zprsIpz6<2KMKjnN{pVYX zynM1w(3|AU7s>L`{ANbP)bq1Z#$AOE780)i;{{+(EGs3em#!${bUe4;)zP{&XC5%7 zb2rMBLmR=fChU6JiphyTw`i<~OiY$Yxr#G=`5LJomHq4+tXwEl1VN#uwXb0|5#E2S z>Bkj@Hec-9&HX1+fN%!yfbwj-J01>GS~CzUXbwBZcmL}Ow}6zAh<$_VvI0gLE2;uS zB##~m66=ND%fdpbBzR$aVdD`DY~L2OnK(8j4rU(en<8IJIh2c#SIQ^10f|!U=cZQW zA&U$&!3r2usC=;nDvuMungjy*#oyH_9sj#@ApVo3BbZB1%+SJAVbB_OYb5L0xUSo# zq>HajHEuDp-&Ub>5oeg{tW%AE%$T;Y#RjHJzDH58(@tZ(u#a|2hFOQouTXI@?36Qw zUoyYd8CF%q5!R^W;6MSHDPk1Df8KNd*mUAlQNSZANvW0!i|2F6`HJ;+2q>oM1@X+pVaXKsS4%pzCa#s43e?fm;H3RpzOPWD`c{Bc$ zojJ1azCSq6xcB+C$P&=7Y$yaFGfklR>ezBaq_|Wo_SXmq0=@sEBOnj_NY4r7?yyIK zo!wHMt(jH?`BG+QQ|9I^Yus;&wF@vYCza@6&9sJO5_Ja=0Zs2yYH|dn-22%?T?9(S zXoQ>s5Af;(psV}sP|8G~+G)_&dN!t{zg3O%Vm6V~f#4-Uyoo%>M=K5+Ob8`rpZB;= zY`&Nd*Oq-86T*0Xa7%y=+w*-Ct@J>__&IIyF_DN^FKqBa6Hac~ysnZ~yT?UJMFY^vx^IaqVMn3?@Ng(!f|i8SQYHUs zKmPs8F&kh1>SE+)U?l8&qt(Mc2(%o10ip_*V1zN=PEv73yXL|KUv~?=AuWkbd5N>M zvlT)xC_PS@hA;_E=Oii9Fkl|Ot-_D*E+upQ+(Oe(%(VJ)AsjP&qb)orK(d?ivRTB8 z0jN}O-%7E->~=H}ARoBv9_^R6zljmwf6(NG=h=nni&I6#Lw&{M!{CilUqx+d+TD7s z>D->~`zD!#Y+C7^aF}IV2%?f@Pk@(2iS@uGu9!&ybk9Renhw}9o)^O8#@{P5sQ@%V zNUhS`*9Q)&^d?{WN0K&`lau#Ia5IDlJ%b3Lqrl-H;w=VZfHwn=50f&=1CFHgKOM8r zf3jn);odK2WdSTXd@evwTWhj|DF&h+=6858J3nJkp53{x@tc?}t7~tn2&OQ$R8wq1 z)-;BISO8Txz1a^uL`rOkJa5_0?HX>I=iyqZ-k#DZj!t(AKvn~LwehQV@d}0D$8%q= zbCs#@7#A;<{`6+cRc#w8UyF)5?+1r%mT}dTjKuR+7n0=oU4{Ul#_7mJG#Aou#1NrEly!s#b@R`lGfW_ zjqL9S;Yq^jQBhG(A%_$oQNFlEs@-K6+SCB{IJti9%(cHUqm%#HfACIcI`TZVG zFx_>W0ypshV&C}(1#qpl&qpe$HmSvp@POn_MBud%pu{Kywdyp?dR&d1s=idn){pG(O z{WRtOgIe9w1Mz(xW;$_wRWi|O#V#Csf=6xaayi(m#9iFm9ZOl)X z?&|qH#HJw_8$~5P^0UJj>`l^@-tO;Ga50XcP^QWRs3CIGHB8DS*CSnz1Qmd2y~tP! zgf}0BJk(Uy*^K57534J!dT+!Ve15+jW?{APO6ZyUNT2C9=kko4jU`!O9shr}12Jfb zh)s$XT`ki|{@>|@Uo#;MIw?#gS~@%oEXBkUZ3v%S~;0uUokD4;o1y=vkFx9~Jh+@^%X8nv@H9Gx6)OX~2gL0GE|hUyHZcadT!gcBnJgJee%GrBLk&}{ z3Y+~3(KAH266o$+EMQFKY%*~}2SoBR`Fro!RWtNo&4-r(3kIv+Wa zl|_<#kBpX3eY~=Tz_KTWNT`PTxfGFv36xinmZ{!iHcw!-`Z+PLI0v?kzf|575KD9k z>f>ytj9RJet|Zz??yt}Wh72CtwT3VB`Q6owmKMvVUW(Yd@4%h=`^^G&0%fTz|IMgg zy%gH^tMgYoViv}6L2MEF4_n@Vu?haWPPBSS-ilYGm^Gp;>b!Wj>i~;CWQ;Et7BIk1 z0FDEOY@%IVE5VmCLPDOdMaFAsX*qUUe~7WOWYh1QNx3%)f_s`D3R#&!;;1WP0VhIy z2Hv@k0)2_C3UJwJ&Pcvp*}_SB@i%0r^q+m!CtT0E2em3zAv+rxub-!>lrlhv*K}S~ zx5Rs2OF9m5W-+S+k7|t!%X=PmB)Dj+u&3UB!&S7a#oPl{2PC*Bo%RB#O(kihqLYZJOAnJ z8vc{L9YF(ttrd=m*9d-#FXvMIgVQ=c8d>8`6%n>eoLN$g*Exx0UhfClVH66WEr5Xr z2@6Q0lD6sUkI~^;qL+y=Yt##Pvj~z1UpI~MLXX3u8nVhU4rvK3bOX8js?$2dMK&=K zN-X*TSI*(2%WUa6v%e5J!}1`&6GyNT8g7(Yt?ch1|=`-*H=6q!jEtszDST?o-$dgrTqw78(ZwP1!G@kk9+E~ zGcSK!_-+OIxKUs;briI3J^a62m6V-SBvEhl8FdQ^SiY`cMcGiHgPd4U!E+g$}mCs71&FdYjx`^L^WyG zV4a)&D4KD_(?WbhQIsE=@sSfAaB%gBH!TbMtuPL6D@%`)7JbIJk|};%NTW6IVqwKi z4O{I!R=e=8?_c;^x@MRH6zAt)=Y$d_=Je8c(c-qOH7@FIk5`@cyG+y_Al?|PO`+V- zkBXw}aTH?@Y+DAzgXFqsvUtFa^Fc=df}xb%261UvB2oZ`0QLY8+gU#m_q z?UoTdqJI?9WB0n%t@$fUW*Gkhj)eZB&sFc9{}h-w4RWt-;22*O?p69pPaV!ajOs@y z=J>t&i!6C&xpQCyZON%#xdc2#7It{=@E>c>q@i87YTXiMq8^ zxK^NWaic7QVq&ZvhJ0X&UEk_q7m^0LX7@gJi}uOsms%39RmZ-nxM1x@krBC8w(kjAECg)lPLM$kyD%Z5} z3URxeR48Z;tyDh2?J_|E+H%{sANr7!Tm;lYJ4T)JDl$OwLk%D*%Dhc;2PUmYwI#f+ zf=CdvUub=%+kf`V0lA8OG8Z^F>|_Y|FVwmhutirv>_l!-$~Aq&w% zo3%nk*+j!sY z&S_0B9>mDyV%72;8*~MD$GewkA;yZ*CX8KARLlSV67T5{2% z=R2J;l?aDuolBXfn^Y&q`on4{@{YWSuQ4p6Y@BRxdo00!jd-4{T9zmXYf3nqQ|Pov zIXK}Po`~e4+f((OWMkECplTxqCq27q@`vcxfV@voLZCkfe^Z+tPt86r0N*}*uYL6J z3wud~Um~MKZm-%V`fCwQo03-XNpDjDK^U81qhZJ{*vV3z9&1#R+Z%+mpuTR`oOy~E zzJRZeY6t4O|Ff7w(d}EcNaTLo+S{L#fE)8L1eZfzB0vNh{FTAwa<)ChKGh7&5vjh> zR_A}MMhm+63w{uYwW+1}Hsh2w>~GxwaP#=38_*|ga_P6)MDa|c=5(~FyPJ9L z4;5C?49I9v)6#P-7>O!GbCh6=oPM>di+AFr8~jc>8;DEpeR!kgNBdTjRROw_wX}E6 zmJ{PrR(2OjIyo9QqAeR$r)Nf*L!`0Jk$cbKE$Ft z9^Cf9Dqx0c*h2Y^KPxyHI1YM(wDTPyUdAyf4(l}VT>0;_8}Imy?wo55D+@nIfv?uJ zF=1dAu&wEOKJ-A>ch&s8;;_k;1~s>IzSQsL??Uqh-}s;r`N)QaRqVkv1jD@hmU|MTR^TX`Kl!{fdOJ)>$NUx1ht~4G!#7ko^NlKVt+mO90|a$n1NDpdSbQ&{Q0}j z{=ogk$Dki`zfm(6y+Pv|SIC%2Qw`|u?9wKw25l2I0?2*CuE|NGA)IV2Wmqo=8GX1f ziCszS9v_LfXoqiGNrC$TgnalF=@E-YKS0zNVxnwPEfVcEq9Rt5^d2H!|;he2%wN3+1tLN>af?PD?N(`cVwQCsl$Q)P0vwfZR61M*w~LBJ7b z_4KfiB~65%sRBPQzL1j+ckE6yH73RIzn7C&ef-xHOTH1$3QQ38w3>;O#-9C7ieC&> z9V!HDs9IU&ls7)K9X{273jLYA%zy}3VvCwcE8xkwalQd9R3ae&*xky2XkJ+y@B`d7 zgX;X7-$mWv1hBKJ#?zcXfBKZ`05mn9KRonoX7<;;2GSEHUeUm@7KOL1?;usj!%lo*Mid-3lobo25mDd588h7^F6-pwy7#*u6doa+9YA~;qnhwlVHJ*Qu--$ z&uzgqrG@THSP(j}4HH@7{-w|`xN#r^Aw7P`3iM*V^5SFKdl6CSI@jH2g-A#0h1=t0 z(5c>X33{Gciq@b0Dj>mZ2^J#lwqd+q#~ck0pI)WsgPP`ZdwPpeAJi+>qD>(aG>eA1vkZ^Ihm#WvV~ z@A6E>~|DgtJx8bw`d}yO!S`*`u`mhyVU6DUMTOS8OjUuX#`uZ>P!0Ilj(m3f+!rL-*rMp zTk}A#mk)eI5nIT`fcc9D`5@IU05aLK1T%E_)uKbAPrCw$@=F{oYDSvuKRLPX=65XJ z^=xbht#&owGcX5D9&I=c2B(_TI$Ow*q-Nw5q+jw$0}RYbTNUz3(gLugmYW4qs?U&; z``n!tdD7F6y{b2ZKFW^;VCO<$Cm>ZkybZAU7d(J{c9hE4im1l(si|aZucbCLJ_R{~eou`_+qixqB8S9kqsB!@e`$ZBcF$UV%QMtTAVoX!E#bHrHI z5=KI|9kI4~j-(v-j&g&yN{4xEgp{;KbzA#{ZpGH2=SfO6+wHV-fRmk1T40n;BZu89 zrL`jdLN9PkQ!kEZnsWAzaA*iWE=-eNB6qyvOJ)-nJ__5o|H|Nu4%3WC;BT^;2Qpi) z{_2;qRTwGM_(5!296ssYw56SOtD1nhOB@U}c1*mhmW6(9PbFjsZcJOix@engzV{&HcI4QSa5)&5 zA@R0c6byqTeBkxXY+35z{^v#8LNA)Vn2)jm-T-|LT>1&83OT_rpt4<`a$v6fp=Z~U zGsz_1ShKHe51mgL53F%1*o@r|yZ-WW8)QD`0kYKh=tJ=`cu0`y@b$IsmZjBa&}0o6 z?yYpm)Nnos)m~Ei<~#DN%(`b!9qXgqb9S0XIV71L1tCe<1RhRD)*ij@u5JP56(G?? z?Kaydfs8+`%2gyTpzntz7oqU`7wDNVjocBnqO`G$l>wlLJIA=>275V{rp43Q znd!%^Dt%_1Rj6%yz*EZwPzkijs=yiMOmHj}ok9hcSgcI!rhuQO^%O!fW#X&R3rj({ z@tCxM9sYKnSay7sp&Db~=Od_<0shrsU5f?RoZzbMmgV;)JAGBQi6gg<1LhPSF;9)7 z6}Nq~YZgT~yR1wLRt+|UP4+3FDiz&yg6-z{P|G6xE^`1l{U534Exi=DWSrV*a@Yfv zxMDa;C7uvu$LAafhVVw7%zW36CF_gU>&C%AD*1eMMlU|eKmLzTf`F##LFCtdN>U$_ zmnpdJWgZE>WW^6G$lLI=&&+@W7fwt$uX^I5+;NcZai{l&p#S5Xinw2!S&6@%tN{^} zNI=2j(GRaK?*9BxsP^Rvs}{nC!vH9$dJ47#u0WF^@#=aOy>|8XQ6N38dkUx`SGZxB zLCob$QD?j7yiF`9R!tnsrpr77eii*>YhB@kr1c?IxNQVc^Di4@ z#V1Rq;?;_A-%0AuZ4o@RJ60yX;B>ic_0PTa+`EsDIP&5?ki&Uw?ryms&#NnIZ7kt5 z(ukDr_idNg;!T-I*W07T{Df`@ua;i8-`BSZ#cV0GCBT=!n4))UaUi$UL2mp{b=Cb( z2%ZHn+cX9o41+2!+u#65a8um6joRV=BCde z{b={d0mxzxqO{sth)MsVp7a;}AWjGae;02(yV_!Y>?uokJ;I z7Thf%U_C~=OhyN{-7jGh8`4-U@hJP`Fct5n5QFY^V`F8l;aHSU_+B;XDJ86!b3_*( zYUf##&HKV`%IUO-KbL2SS7T8ei?p*lko8(5@uPmnBASrVqQhwR4o0=`7z@5%sTV^e zz2Zed7j4IKp}1Uv7&}9C_w%6UppK{7L{)U zByr$eWabZv!cSzTdSB1?`1x235b>29Kr06tWtA%-~W;`uhyPkxaMW}AVg$R4ffDFGPOY%~xXhE*Uj=Mcv=>HQ0oPnvhLjG=pRaKpJ~X4SNQ>m*ElK}7r_IU6lj^c8@Hjf zR9#D|N%?K?!Fgw=D!plOPPr4%O@Mif1mbVa!8x+{TJ=gvDbuT$ZX1PqIN0Jhr^^Nu z|Az;x?1~5pO~9QuJcKXX^?3W`Zdg-%3ity%u+oIXu=`oCx+|Alj)1Sg-VzN zE7BP)$UE=+eGgpMa-WFdxe*hTR->#|2oZK)%gDEqO@^C_LJb7rmfJ+RwaL zR)Yg@R0O78qreDb`q7JUW7 z5CzdR#Z28Nnd+m*MuE?TT(V1%?$uOxXrKT!%eR6x99gw84*X3=?P05CK7%L~5Rma1 z8tG&Fhl$|mxvnYY9X=%rtgMB3N{z?u8zPKJ9zoGhH`G|xsLkKZe^;E6Q^5^%=Q=@4 z{EMN=T^Q!q_$$2V%YL`09WwV^Z%zLcs!vc2o@6B2hgsjECjyeP0hp}?Lt;gPMNMr4 z-|y88Zlu9^?I&6BA?zKc?1)&z0zf-`{^Ts|vf+h=3KKs(5Av7?Go>6O7$GkZh6weI z0JqQh0A}u*93+ET zzC%uMIAk9bJA6PAJdw?APJHIbd_|?^S4_v@5&Oxj(Q>G;aMUEbVR4T$ThrZebvZV2 zxitk6wJiD+Uz*&BRJ7;j{n(t0hi#gx7Xhs?Mb!l6mC0g%gio$ zbSPqWzYlIb$aTth)9#!dHeYFX8iO@wrLrE57&?e=qE$6gF@-0@`=A-#aZ z0)rY|Dh|YrV*qYtS;1?}8Sew(iPBOKD#5;1qHX+=8cI%<8AM>$$&4&lI~@qcuLlZX zUnmheIM^tMuq?kwvHa@8LgQd`m1dIlLQ>wctntAvrP5c?Z%a7^bwt0F9CHibLBz8d zi10VMVkQ3~MM@y%zE`^CDRZ)T9oUO)cFEO4;dpqqOQ$YGh^{+HTo8VEXW-z>7^E*! zAeuVIZw{0h(a#t#eXsIvF^<_K-4gUn_5M?+C|<+ zO|O(;X!vrquU$D`*F%1LSff^4;$|`qolwso%*kYG)f|I!KjmhUj*oVzLdC5on_@iW z8ylHpJE+rL^k;r5u0$UM*2^Sme~nO`HEmBlc;(-bxM9^Ew`3NSXVrZ@>nZP4f;QuA z!5)Sl6{F^0i&$SJ(}ZSU<%BNQ_5L`=;h7{46K+}8#`~Vk>Zu;{y#$K35e|yH@V>@Fjtk z(<>3E`Rfu-m*{ZoaY#6L4Z9A2XeZ-|NeEXuS1NZ5cOfl{3FNTMTzN>*Br`*Jj#{C3 z*krfQSr$SS@4%G_fSCzV!f$du^eC;B6uXzE2%U}Rc3)0d94WCz`c5K07dr67$uE1m zB`CIlyQIirRcGk)Un>W9h9C{`C`@?{8s+8&a`mcgmwi^w{FJv46M}|MsRu|`8{~;!q=HkOoVxha4a;0y2r0X8>qNce<6#z1CAGpPrH&6P6U4$QX+zp+#P9mC2V+B{xr z@p;kNcd!2PdS`@jVK>*NiXU~2Hn2nETR6r!`?m67?6q0KgskMf$3j41hN7&>~nOZ-z z6rCgqMJCgP>NR(VZl5LsB;K*um#DFF6320zOltMoc65a2a_UnkV|U)hB|JMs2Bs<} zh)q4Ut*hjGG!9%kj`6iacI^qwH14t#L@7OQ;<9?6b`F!wanK`niy_zYlpVa}zR2xm zZOG~&VG9+#6EJ9b4naAAx>NSoAQCgskJ8@Pw{Kj9m{o3Tlt$ilY8B4i@7KNG`Bnu* znCi@PSoqpOHq%3!*6D_j9dbiS#L(O5OPjl;E6^O^%Zs4D#nt0ac1qv_J9EfvN!Lw< z^bK6>gs#RmTyMq88EGWdtZ~0Ntoj?!>>@$6<7;r9o(DTg)zV7kmu<*FQTFaESh`M= ztp2CZQ0T^ASN@snOYk`drT>;DD#lsT&}mJbsmf~a0=KUg_PEtrf9Q?hCo?jeFe@S<8L;$prTdXwb!>^ddMW8j_M(>OQh>JrzEFdCyFkOU@m6Q* zzR?4LN-X~B72BAHGJ)yfJJT}7vBcwiF1J%N`G_$_qOYBAROr;FbsGxbXuL1lqHpvd zn{J+7(&ya}kE}>$0jBfb=pZwmTFya!oy*sK?RtLLK~C8_<)LPULrY$pp~2LcIVah< z^YTmOP1d>E@0^txzxjNPl@!%?Xh#p{%ZoZ*B)UxoI(y$cO52dW_4d!XKNlF(gi~2< z+u0fS^15&FrGo2V9eq0apw3CdQ@mns{QlsTyN=KSCCf^kyaIW;?PS~3K~SdlWtV4N zW8?F3uX*Q?9O|Y)BC4 zZliwmp|C?@(Fch$WpBS7=~z!F!`9nb4X^<6gXjnoj>)Blb#}A-o>L&9S@GJNPoLQA zRTaR0&Y&XuO|HNghNiRll2+!{C{I-32?au<9I;_LXO_#a;7ZYoy{1jRrnZBx#00|X3b^-(uNK3PUBbkP|nvXZr1;x0kh z#-r`uc4gD8qKsEWVt!l*W)v^7u@H^n3TjmPhaT+Xlok}vZ;^0*4`?c$ycJxBLt{Lh7QOjJ3W_3$usYWsT{_h z**H?ZnkO;ke2>E1i<%p*r|s7FoC`#}eJAf#IfA$EcqsOdw~wcv)}g4Gy<2zZnr9{A z?W0G$eIs(|Vy%CB`{tO4^_x51E6kO$#=N}o;CGT^nT7|%xwYdY!@p&xBtye0XRD%V zI|qjfjtU9h6m(jkJ-uQXgVYC}B$E=n`{lrlQZ&Y*jB^2Qf+)|0`x`iF5QQE|G-{VpXZNo9`ecbep;KV7<)`J)q6DT2%s3 z=bF5BT3;jS^|B`#V5HP2P3(Gh{A3;MICM~?7AmZ`f`n6$8k9RKY9>bdQvTlCB8El5 zRgn=FP_e)KnO%a9D{p1EI6abmN&r%FR|l&POKvusq(+Btgzn1ljsuuG;E78-Ys89(0l#zjI(NRCQq!#(CUXEb#RRKt-vc`)@Fg;MT#TH?RwG|6X-flQ`r{1y8GKIcp8w_CZTCXL8SU-go8ybUmDbmyL6={?CvMNr~YN|d17BP=i@)$_N!j!k*6n+oi>Jy_dr(3SUqc-2ssD)I^Rmv8F6jXY^fnj zrt~uA&$yS*+Nn+EX6VS7;^f$lMe%F!>bA*L3Nc^YK9S6zkl#f9%HJm7E0xhm_jzk^Y*1 zsP=Ybr94@?^@^YB+PW{7&DOzc977-ldGf_O zA^P1lKfzAkN|a>wWW+N4<*(9jm^Pb~cQG6^6hu8(m+1&ds1v=%8=7{!hSiUe;wkV# zWhEm+x+I*4;&K)KQZut~;KrV`(PZqHWmq{vav+rhkC3qV0+7znc;2zH6iYmIl7RFa z64aI8>4I0pcvK z@6@k30dnOpPPltkj0wMIUX6A_6;rt15L6b_MVrS(=eMc!a1f5nmc=+v224~R?N`@B z2N5pQ@PMygK< zk@gYgC3>q}H52Xnq@ml_S;cx0EbI-35Cjw7uN=I*jVz?dIQA14!ri7s!fDYU_;hJ# z)UV=zZxy#R62WZBYF%;q^M~godrwHT14%dwDat{d1|7?29K)=`l!;;EcpP3#<{}jMB3Z|eB z6F1AtAWQi{XR+7OVWQqg+vh7vsCCOWC?<9HEByyLrT=cFzNUBS8blaw|044@$59A) zibvzT9z;8LcRkm24V=)VYmISrS(xwjC9{tn{t-pfX&RKj`6}=hf1q*%CuZXz?N61h zbyg8t{GYFAY*f9$KiwQBzAr(Ryj~n~o|1uoX3nXz+%MxwKs~*h`^?a#b#`WWuN_4u z7r#$_a8*lMkgi_6`)c#q314d0n}Uv%nUymQlN9>Wm!~h19^TF}&82(Q$}U~HuHm`; z&QyS9{)?&uL2V-j?;l(c$*543+$nM3Zbo`p8=SJVzt(yNNY^tJ1;Mt@+vcSBa2uYj}0|C%%uPt%=G}B_^x~ z+=b82J&xw%p{k09wgZ$z;S3>UQ|4_%~h1Q9>34a9fcwNv;=S zuYj>$S8O38`3XA-t%c9saEP2ifro-y3ofs{34~49zXN{SXtdz%U-tU+^cbWs#~2i% zUsi-;5z3D}9zSh33)dGRl8C<$iLUywWk?k#-mVh|y}<6)z*e6{c!dooWlSqt{f7${ z+C&oFc9yr)yYD`C^ZdOvxFL;`(}z<8ulu%%9?Gg*G&t);;^HH6ywwF z%9kPKbw}xNJHX`nn$igc0kt{rh0HIm7`G++H^ z+N$%#p6{}i63CyT8t!ilDtED(zR*wi9Nie7H8x168O_92iaer;O>r~ieZ#^@a;T#C z5n+WC(>oj1EV7LXoSz-@JUZ@>Q~oAP3F^JmBerDE`l>Z3f4$XLdbmIi}JhMuv%voHQ@^>_pluh$dBopI!_wglZ+ zB4v_j#)gh_Z2po&(VQ00GAMYl_2Tq~sr?a)NpAo_eT+Cu#1bj9y930=e=}=SDx9c; z&4t1F$TF~Ey_IJI%4%9vTsrBYg}UnDI$R~bh?M1K`sv0#s-k8A{Ruej-jqKW1yrXF z_7c4$>y}$(UdCy32I50GW-!xiR=?kRd2ovlV@gtBS*-p#a#hfgtuq_%VvA zV*w`7%31~dOq}FE?b)%LPeYVr|l3fW|Z@P|6Lxk2@)T>aWYif)B77ChIz=u8T z_RJ)wsP&53dwq-ehlZ%nq2boc-SqiR>(t`i4U<5=^r|fcqh@}TT$G3A_ZFOUif`lo z1u;9LT}URO87b-2`q3xhc|1g=-I?rg5qpGtjFi3_*E~Cp$0-(0oa(fK!A_u1N0;Ug z=B3<5xe@Upg6Q8_0OBhD$N={v`<9VfeZa>l11}l@BJYfd*`(z-w8|wqo$QCQm<?`N86jl&J`scf?5n!KA?J0ZPNQ5|hn z>(*GAz|<0xR%U6uIPu2jSNrJr>-fTmd}kxAx94-p)TN|ES;>uR`$!fzv=^IJYvbO_ zHG9iBug-?EElo3G@m?#M!yO7O_Ib}uli zyKT3qni9qunBU%*3Yufq5l)vV)#Cm6Iil`!DF-r7)1j^IWwThr-a)Fs?DD|d#X@Wi z=~l1xCh$Xe5ltdZ2B{i~(RpXF>LA3e0*O4geow$Sa)d@d=NFU2wUrJDV=?&bx)&h{#WLIAk8nB|LVoL?}KXKGj z8oMz{h1&6zFun+Pp^RZ1XjhqSe@_d#oM1crbQD402aU`$LivTka2MDx625o>+uG9G zdoUqdjaNyySV_Yz;%T8&AJ7yyEv`_gScmkVgC?``z#oQtwWia|eVmDQ=>Sc%(GDy%-xPsD5EDQ7*)Rb$NDfkQ)r;}gVbGIY}MAUys z)`QzA?*n!7`^Qz{HS+3tcsWxN&Y$1N8LD_CmG2F72G;s>O2cDj+LGzT0aX}I;XrqMqV@^;f`L(c7 zUdA3bxMG@5x2{1tY?(_J_Uz1#7nO0Ce>?4!J8wp(ZTfGrlxm_}VFX#{QSHnjyo|_AgSKAY7pXn*& zh+B6s{N)t9QDRcN%tv+cBN{Hk7bnJS$I8)*83#D$J>^*yOR+T|RtbnU2MpbQJ)AbA zkJU_=^QCO}az&<^`j6v>9`8`|%Yt5qF%-?{!BKvi#V8RyE+LCLAY%^c4u7xcJ!#v$ zbvdWtMs>kL*87Hsr`_Z$zh8BD`%u;S5UERGo`u<-44wj)DqD;75$pVyP$+Xn6cHZO zuTIo&px+{E!UR&ZoA(W>OzMz|lEUj9fHTry;Br}A$j+aUL6~2l%!t>~lrk(}3MIbJ z{+^l! z@<>b)i{l`8gJ4ms!))9%Z5xa(p200|Rb_N~LKF3CrQ%)4WOj{A6P302s6=-I+czSLM)3|Gtkd&lrloESL3+S?FhV~ScS!JHy+HY73@{tM z9HumO64CYGx}UK46Ct7ePaYK}$|(z75m8SNKLY@n3$(o{(Q9-$PQg&bXRoY7N+);` zIl0;Q`*}^03s-^jj1aVhH#X8a*P-JQ=XVF^70cTN(3#=p@D^|f0mr2wAuR1UfrU&V zT&J`9(;O(heJC%XM5ek&WB_{r{88S3dITNy?*X;_oV64F#z@&YamB$_tk8$Wr}zEe zBmV#T-+gRqs-1o7K9RU+@wYvE+Po zn+&E{!ozV_<2+})7+*_1-OrgDUB>x`1U)=n5@`;wBE$qHi?eOdyJ(yGVa$zybzBe1 zy0cn)zfA2ar|fK=j$<;Kz#j>ah(rP;=7XEeO5-6wLdB?)u{-$ciJN5i%-IQqw25_N zW+1>|;yhL&mcY$%z1c9z=0c{gh9A{{zsX!o47r-ru+Rcy&qSNcYJ{|Sf!u@6FEVbU z)yvn#hZiaG4T~SPm!n@lf&n*%PW;J(``1Qe>Scfcp2+*W+$x7kow#XxKppchs&Eyk zLRVkN`3NR4Sr)J)t^GD0sTapm?x>T!_pEzrqto1%Gj7+|CgpC_{?1aFsrzGbUhKyv zWCbTeT1A*~56?HIox?vgUWXUR4*^2UB263vdo-e9G5NGTVlCVcN#hLi!SwwW-f^n3 zzfoNklgS}6t#ZLI4CNFy(c{atf5tyX30{zLwo^PVotE2gX9CH~6De;oSKR1{8jxbb zoU(dE`}t=7%IsZb@J_%UVpmPl0(El5v#jq;>H{FuR#FP6)Dco7LkeNItMX8Yh)Yq< z8=xdW5judtOB3Bt}c=LANRL($k_;|I~C&1Q}O(ON|$VO?^!8QydO97%T{gew_ zB>Uo%pv|pznRZ?0F=gFAwZgC)8Vr7SqOYc=SQ4%fSIDNQt3bm`19AgRV2}2+et0}z z(TI0nR}{%AyFvfnMS~vmp}{&<{}u+hE43j71!O&fNE;ilb$tIy4w#aVpbQcb|6l!_?x}_PAar9!nFhI5aM#2n{Xo8&J?5h4* z!Pc?ME`^%Hr)|12@h8?CMH=f2k45;Q?-n#;R->mnag0L=^{R!v(y`={rx90(`i?(2G6zzvOWGZaVD+o zgM57eEUlbNkTU2(%7K9W$<=j+ldJ58|9bXA;n^4QMa4QFtRYIT z2U6l^JsI{~r>qwypzY!NSf=~h6AbL-k%m%`eKWx+i&tbW)mQVX(s?Jf{)KJgt8nMn zlJq!Nt0ADwH=GXRd>a~G~&#)_I1i7{a8;(T$Kl-V(e zW~hU=k{*7<&qXV1C8!uWX;()&l*L_K+V_e==%^y7m0$mRJRg0cd!Ny~GmfbWE~44} zM`aTY2fix_X>}5$VA*B6* z)U-C@L-Zm>WoPthUs6?n*Y(U>o-wlmbV?JSre3#c@~!D|Y6Exj$$sjF>9`QRwHQ)+ z_;WVLsR&`e;g&3G7$f0SvU4^*@joP=jsEiw=E@sIn?;HXo{47^2vqF<@qEt(QmcZ@ zf2#jG3Z-Og-B?D{a5n*xP*foaMFUAfAsj_0qX-NTdRVipgEE=dq?5EGN ziN!?$7;){zob~SSMfPOaf!&Lio=Xw&((RJX_>n@Rt%nlTyp~A&65Ziux-8oH)qsVV z8vn#CS_3Kxrz94?MiNflW%LiA6^diT){=%oXXd4@#ml()It?W1Xl_9zlz@Q! z=)?EcH=17?{2>$|IK57&nenaP82Bob1IspouTtVxMq#$bV+y%%R;kthgzK0D=|W#d zF78OwMB+pPT>gBHh>a6(fJlK%C^0BgfJg@(a zEh)VRT&S%8U_70g-YE+8aMZSfju7}Amy&t*Ex}`$_zX;@nt%GBb zWkA|>W)*~eGGXg1^wG+h zZYr+fE(lmnSmK_g1XE|EM$G`3M|Yyt z6HJVMJ^RIx$(dudiR9D0?UrQHqPV&m0?AGPfxyHt=^6c@^d!GbfcnDoaxL z^EN{QO?NRi?|4cFekMfwJV|IiqjwW8ZklBpQnJ2yI-#VAzdP+OxK;*8IInHL{4~)( z%R6c}NleooTQ+g?*D0*?#0x=>y<(SVC4+~CyL*E>Erb1c(p228+=~3^rh@gR~2x1gh1dEpdPR+`A8w* zICnnMATnQzkEhX>67l;c2q~DZZ-09ng>pg$2{AaQl}F*^T7$FMM*}0C+F%a&f-x9a zNGn~ph_Z7_brHqTQzsZn-4E89jX}ZC@rw*}rGjuL1JvF~i{-Tp6n5R569gcS;{Buv zq_rFOWvG?y!T6ptSdsE2lY7M+xynBQBe4DnuokQhMV}DXVH+rMS?oBxnD~lJL;%*< z`FvXWs}~qL{ea)y9X_dmJL1g+*c-b)G8j3aw_5g3J;zlIr{4HdI<1Lh7N%Dj-pG}r zb(ObToNZEu47z@6Sxhkp`P}(_yfq8UjFt9tCVTQtU2A@65lc^WQfTaUAt$HH`Cr!e z+z-f?U_;x-SqIC$F#JvSq1pe70>0Zi@1Ql^IWX*W#uf`x!hNp;M?u>Yib&*6t~{Y@ z!ANiLoNu9dNQrwFE2!@r_!Hjf;n%uBtE<3Yd5nsIVF`=_%4^hmuG76To<#w@U$yK@ z{0u!Cx;!xxqnfLGYZ{g6^1G)D4lQ)E}HWrf*Hr4{+Xe-ANye$2% zS=OqngM_oHCiz5T>-40r9#O9PTZO(j9`j*X$Eakq+5Lzrre4 zwfp(8HOaBSU@B6X-5-MPyLQrXfu?Kt6&Q3UfCb_&e4I1U0O_>Uhfp^-D}$(aer(-U z49wq3h5v<$gM}cQr4l9aun4Mr;-;Kqh53J8xc}pen@{1QNQ{`E{Cmdy3u{S{aU;$P zi)HuZ@=F%x%xG2WVw@9UaXRIOe)@%Kjm7y`TO-@-|t+>C5{oRXp zC%FZs&&u04dG8X@CvQ_J?4L-L>PEda@f>c8CuiZ`4rh^mfuYV`vJZnImmw|2ZT5x- zu}u*yLKdW9dxg!?lgThhHfr&1_Z|fLNqa7_#ZL8q&dam4Ibi!rrMw=`-f#B;D~<*2 zt&(jlc9#FJ)hVD>%VNTpl5eK~#>J zA}Uz)&=Qbn5@nFyeu8JA9tv{9{bYdEsM~>zW_Z4CXq=)KxLpM;OsD9zsLUGt$tTAC z8gK7Inyp4-Lo)5h{4%uHuU=)-|R zK zHq}fZqjj0q(Aii~E)=RAeWkaD|ByJ|bZh6YRRp8u4Ge4KkZNA9T|Tg$)g8 zrK^bZDwz2f1P2hpO>=8S0LPdTj6T~%*ETtR1iu6(`aN4M8xV(y%Uf3rlto=iPeb{A z0*78bxGH?zIFKWDZYV7O3o#<-{_=g}gUm|BMjefwO`=(QG9pp#c>O#;VH}t$yQkb4Gvc!Fv;V>M;LGZgL^IuOaX43#gjw8Y3zZlYv)gT42-^PqG~lrU ziVk!7b6-O8A=Lk+3{!+`yC0^?Ue_dlzelD_j6p_%)~!f+r>hw7Fs(eXTouQYB`yM+ zJ*;AketqpiX>Y!t6MYwG6Tr^(B0;*bnT!E|!?YGgNaI{N?`9m(2z9?Py=>J+Y4{ zG7v&CQ%6L>3$ECiy>1E?3A$V2MxB zE8U}@SE1So0gp%RKoNPj+WStA~w>6HF2%+mBfgUDQ!0;rxPi_nfnsyJqT_ zBz3quHGxDeWzj;-J+c6HaV4@^<|y6}9|uD3-we!OV~9Q<8KB`M`VPH#$Anvus&_yK zv#o|rOxLz<{eZ>=^b#yY)DGcpv53;aI70J2_nPG^b}v=9VAN*n_mxI!k}luXU#$%E z+ZzkwdLLkec&cY%_T~K%707@|K}m`J zLuuW@cT#f(U-TW0P-p_k;p--=far6qluduQrL z;;DZd=arb|>qR)KuSk~U{ECs$IR1S&Q*weuL)BcHA(1b-%75}L+v$9J&fpSSub; z>yGp>F(P`#4qe?xl)j|XzmuL$XwAq1A}e+5W!A|v=e`Wag;Uto2dFc*>%e&XXcLYo z2DlErm1019wFKI$ajtH(lh9*B0~-kkivT>-eySxZgj{DYAJFaMy2$6ra`nOOgp9Hn z(4|s8=OCu|p3PtOlY&pVi8J2)YS)7sMLkM9FX6`hYbMsJj?sV91QjdoWj*xO~lv`Igz!p|5(VbE8Z&lW{% zpeamOXq`n_Cp^Dx-NNj)r1qo=F#$+wrMd^B6}e^ywd(^+rYKCh8dBA#xMWr=_1{!= zJca_)RnYF_>hC?A2Q={F#b9xZF12uIP`!-k`Pt2rqtCS~1oqIiA%jqtb8{q0v87N49JYFSX+n-$3S<+-(y-+_?`_Cx1KmkT{iUu9y z%$X${MC-IgMRfHEYhOE?u5kL%vAs#=y?az-(i=~MQd0_ zVpdNd7N>^ia#bHi(QdZ}kT^7A6qY^_;Pkojmbu%T85KREP22oa+=$WWgY28=Pc!@y z;kM66W=I;(#36ZT%tWHMP6m7+zD>jx+$QC5R=4epETP14Ilp*%O`~+ixy)y5vitt- zg~oZGGUJBkB9dbsjdqmH$y}JYh+P+8$VXLg)0Gt{ls9B+!KNpoS5oV>48ql%E{wur zce28LsSKwQwwGB5I=eiODCcJfIwW7SsMFD@jK`_DN}KX)quO@N29P&K^{?6&E;{uA zr-_~2^tgWSF;Tg0jcB%IH36}pwL2@@$+tFaksR-%d4D+L=AbSyj_dBRcp{b4;A{F+ z;q2A)>H^|Z;dMExKSbECA;(@7jX`&e90C0t)qB)kexm%$9qXWHn zLcrZCRF8pZ+%_I_8YHP`u7AlvSuvPy!*wFvUz%?{t+pFR>so24tv-$CNjqso?aCnG z%^9sIVZczuk0Zki!W@6e}&MrInvV!>FBKo zxmF}PbkeEO`h62)MH&<$MW>Gdj8X@6-o5T)Z{C`)oo<|wvP(LC{iE&Jjf3yhAi+GJ zSGhg%<_y=+299^|UV>00ax)IZTx@UIKQ4}!{IL=@C_A3risscB0Wfg9Q)=Um*mSst z&qW5yABC_?o-xd>__)Tr0l(Znx1*^G-CZZ{XWoPAVA|^4Te}Ej?#DHFIYYlU{K?8M zB$L5;wU%H*8@XqYGLYE(?ASjBt$WHH+y6P%{Qr=*|I07PRe2^+1G_9qkPAm+HoxJ* zg@iiw+}`9Aw>cdLHRXJ1D|}{IbNpnY_*znjA=o;W&ToEAO@GbO?K)vKQ9Yu;JMa}E zlf(j34`OcZ+v8?6Jn_aM80$$Z{%;wrj&tlo)cXRVlnk2@}D+WU53ha9KW9CzzCDyJ#HMkN6eAD9UdZ78IBdFbBc3h?#Fvr zU@$k4q`T+U%aC-JDz2lP4oP?2;zIyTrwYCMD|k>B3`ZB*1mr&6asiIK=+eZd4b{~4 z@|dJ1+NC33@dy^e&R>JTHeVAeO}z>)4y;jT@+xEY^#N&bvL1_qko~TfD0&=xdR4}i zTZh$Msml5KgW)Yp!z@07*lL+O@3$QT@B?~B61>$1R&eF$zhV&OM|6Q(>YIy$0=<>+ z7Hn<%k}%xwIhPoB{T^atYN4kA!BggUk<8oz4{rFPY=>a55;2&c6jmq*3#epN{hx`&9=JJzAP-47zV zv_>KLbSi1?nB64grMA+G{UjuQOTg@W@x$Z%e8${CI}wW^XgBbbSdT z^~>t!&Ai?=(lzc+$$W~xhipvY6{72v?%*j`QYjK2H|>|o`2LWM$RpmN zK0yAO%eQ~%b}$M!?=Q>$`}e!uSm*XY+LtRRr37Zf$`gG#*GZ@*?{i#v15xsB^6n2h zW6Is+eacLxf~1qg_rGe$63u?N@A-sv-8}CgQ`TYHyidA?M)s8CP5gB8?eXL53yeP- z^4{s0*KuxX-Pw*_G*mxwWLC+dWY6o!?!$Q#29kCresV0HXZ+Sj`d%psatGt~2(P$V zBDsTLgWAbDC^EfC#a1GxilJA$2;Xm@wNu80I;5iGta_7Trp4Hr%PSe61j^2zVSuqK~_&=t3G$+>VPI) zLRDFVk$cIk3V~VNud$5kytnhiHxTELdtPk)J0a62ZvjCD=f;K|cs&Sktf*TSCbhFf z@$9!Oi6JMAa%U6qbpiMx1|R#qhi8W;ZN#o8`vHNGW7123 z<8hoz$iEDa`U!a_CnufWP@qa)nI+db%&wTgcyHNPdfyw4bb8{|zd9Uj?#REQBPW%Z zO9*@zjE<>U1KnR6eFvhUr=BXfZh9JrJI5q}`iK}NPpCXn*P(|IrzLbYwCZun&b^pk z_n$e%9a)3!@=yCwF*SZ^7U1^^A3dppK`aJuc5HF2U4k6c-`|#klk1*lesl+H#?h6X z=xK+9%Uww?t2*J57MB=^{$JDGe`{-bEl(8M`o2j2IE9upv^qkx-ZH_9 zl(*3mN3OTNXn3Je<4~;qrSxRMptxb>EXbfEvFf(g>oBDHfIWsQ;~Ky8_>WredN6p# zXVJ$XLOGp8Q2BW3cD}}bN)Hw0dy{LvNqyhH8W`52TL|wW90Pz3@8oa$ccS@uhM|BE ziaP$<+j8AYnw;?SYdqoc9aA0p^jBnXJ4Xj0Do>l@#>Q!)9v*6c4I_70etjY8DlNsR ztgyJJ;0H)YNT@1AFIPmV|NNe=8t?m6*L`KJnWZzZ0I6ShE#&T!nR#bg7pZ4^VHuoC ztI)v>dO&!hrivHd& zW;wXlcKmuPt7FqF zN4pB!5-yOC(>Bs=@nUcnbXx6MhrX?6tZ(YT^tsm7d>;mZ3 z72AlM_pNVc9r`u3UIJFnF`ID>WhXxA&vt^u2GYEX3qT-Z%@b}d)~%cGMBltx#W_)2 zXg!#x8_8tJB{y}Z1$K-zys2rm2JszIua6ze}X zNO<7v|K%+7fBdpX&ySUu{QCBhg{E`;X~n~)APHw`pEQU5>E>U8qJ~+~%`}oX*&J+E zulwz zBN!Xv9LUbZR(L85{gi$RHQpRWtajK(!}J1E_7nD*_{mT|TA%fF*QK>&~+ytP{ zIOkKjIog{0uBcYkK4Zi{^3VjYa&XB}?~N}`WiIBAJ!1LuWAB$Qh7RGx?g*rUr=5S$ zbqaz5-cZk%T1QQ0nQuqj`xn{13+SoKIoZSAer;zrx!uj)k4h){d+d_r{P;nD%~v;K z?IlpWM!3xCDuLTCQSofkx!+0zhWo3W?82SAs|ytpsb5RQ^1U zXXymc({hIG8dH8g7Lc zndD|O-;{uCVEcG zdw0GQ;y(2F*hYT`+}Y)gO~K4fXE=a?=uzY}BT=~9jIsG6Q?(8!Y ziFGe*jM{UjS586W?V|^0r;_!1c+R-SD!7FIJF(TCwc%PkB(~=2<4i*YT=CXqm6Kd# zA`9XdA+c4!D^@b=iA-Qf9!Gbr^%KLN_oPl)H%_OK50u;g5_;k=uTnHn^+Pa?EX1QW zJQqo9tz4Q!dC{%E#caPiyB|ZzO6oe$L#biio_wX)^yaF@t2>1je6sR*ig;Sepd{L{H^Ao=@&H_Vu0GWVuC!C;qLjNt=jnjZ z{shSHy5zKj6;Qm1aQT#B-XhEhgY73);7yp+Uv|Vwnp+dq@+td57z*!&<&F{5i9H#u zUq@m;+(fG!W>QF4O*ua!Rxwe>2)|H&!r*zhALHbL+0~>A*(K^iCS|R*#xqC%vA0z>-ZpGoU;zb^Vx`ta=j&mKq_a}Py{I?#(02poZ? zw|utG&~EMes)lXsh1jJYxBH$4>W~bQ!leO;1=?Qw-^S~HeH=Fw=mIq@El~Z{u6y}e zH~!AW(Spwe6`#oVt|ls?2D}Y*V2jgv;)V)C^sYCK4u78vjzC-N`GbVhhdj*&} z+tN}0d&K^E8bwBlZA#`Et>0LZFC{^P{z_BOq`2$xyDX}|q_)=PU&f)6Jo?9y>$SFr zdT!ou+O-lS*Npy=|NF!6%|hDaYvIcH2uf)O!m7DX1)9A0sNz}opV0B5AWclAY+e&t z)gyp8SpJ>_R-7+XfiBb>3#ayok;KgPpVY+EOtfZ*&4nU|TuXPwE<3!S=gSfs`~ znP{5pTvV&z@T<+x?bV4af|q=r^Ky-(v6Dg+LBz0ZCOX{IOly`GN;PdD>yCClZcj6O zbufr1cAb}H)?-qDX8fv`42SZ4XSvUFNkJ!qIWJS)%pCS{43S#DJ>ZC73+iY~eXv~B z!?ex_?#8XrD*fI7_)uk*K`yxn~6EXS%D2hjawJ{z5~)eCx~ z2=M+Tj7?6@f?0EGqWUJOt=Jm7>pN_nUiVHJ;L8Z9bZ>9PX9#_DbFOR{o9RFc#R5cwI9B+hn5Fg`&RD#IBn*>sy-uXdE77V#hx-lo5R@`AM^7seoH- z6qc(@{ZmO2=q>E?8MLsu8uIYO?)#x!SOYSMS7#6?W^bKol3UnG|=55moak zM~kJ_oN$di#EkFd#QqZqKMm(|-9>qt*$eOA z@QB3hdVX*dHH>cznzT3Q>ru`qOIJII-m+p&tU8f}Zw`@On2#1VN#?-_!=9UBBJx{_Dbn(k57{ z##`}CS4Pm~n3HHL{n}^si$55Bl~+F~Fppi{&v7y>G7B~o4B8HC&yaSPXyR!P!L&1k z$G_8W(DIZ&#o*q9b^vAf?xoD&fmW=P#+uC%C0VyLyjm~BlZts{#UqgH)oh0f*Z%(g zv5`nm>R8cIghN8y0*Di9%|Buqkyst=Hp|w*uuT8X3jkqbh%;(C7|=EiE`ZE{m&Z?@ z@!9_MvecayhY3X#(0q?qsRtIkn;I?Ky~saJ+}yYz@q*Bu`s`Ow=OHO%#t^MLyag_| zhw+a`CF36fmwXP!T+JcaV^6AZ@;>se0e(M9S`^a@W4a*BN%GZRAA;ZRQ(;ddH{&Dk zvuN&&hKv#Ch)M17y;GaKzhkSmbR@n1fpLcybE0G*n72b%gk3AgN%rDMB}0Dnn)+Dv z-@&Ob>>)U{N!e+~9yhO3too>OMpwgH0J|N{wm@E!;S4BRvtbrnbq5Cvo+odeyUO)s z#tgPloS63MJhR7%g0Ogc10zmSd))q9+_1u`X&!pE;SBavrQ_Ut_7`0_7rS)`D9%pW z-@OilQ8@&s9#5kUu$9TWsyNkZDAeoRBcw#eIG?KVcW~-i>C2lha3jaCe}Yq$cP^w4 z%PDP*>RGkLb)-7C$ur@_3HB*wB&tEM`p#goVh7qnY!g5Ao1B&2G{{{ve?&E(~~)?;5LrA#%R zfW)poY3$otRuJvhsukCD@`{DU?rcJDddZC2ak_5(!^H}Zq=hm{6bjz*S=&6wXY2{{ zbIzKMGQeRAAyCb%gL&)V=PcuGD^;nb07!E}r@6e##$JngSgOnOakD{PY72YY!N~6m z$C$Dy--oP8>SP*R*(TK6LuaMlG|09@B9sG^p%}Fa;Jr&7xTrJhT3HTB)kT)hG+Bj0r2Gm2T!_ zXMaW?lD9S|6NaDfA_xxZRVwKF08}!rV7TSKe#g;&CV?~LR_b@TJxbQDG!|BE5zguC zNqQ_6KRxpg+$P#F$jGh}V{W6Ar@bhH8mXidpvR=NGiQWosmPSxHe0$Lblw;#|m+CJ8SJxfIL= zgvp2v%R8Nk($0)uKQHGtl+;YxeNuzhhJ2YI9(AVFHLTI{Y4xkK+e?&Mp08ZHM%d!S z8ZEyU+;CaD9?nu}(lz=*Tm&>#=Fk!Hv7y`Kgc;$VN7!ubUMhqEW!Vi6{nxMe<$rsG zh5p|@!lq>iqyVB(yKBf@AWS=~L8h8pVfC~B-|?3j|BAnihxki}Lh$@dqJnB~lgI}1 z6oeW1amglcNBF5Z9kgEe^wITf>|%CpG|h8U_uTq#@t04?35-=YlH%wB>zQvzHHNX^ zoosEgXin#k6#hu?w!hs-b@NV1XYKGHdkwwQ+o9xM35;-j5|e$w@wA!UOFw&JJWlCN z-+%4cK%j@`W|7H^?Rbg7L*|%^pwz__XBiu_PG%RnmJl*GD359lA(j09XnPB&DA%?N zm`-6pkcI(KLZzf*7)m&(gpJambeH5%!l1;6h*AW-)ByiI zdgA@R?_d8~?>XmNi^X!OAU@B1U$L)!?d{JP0L|L^CrXFH(q?NC$o^$OwchOazW#f#H^ql&>_o|MzlK(;}+oGE}SQFpk*P8qF zj!p7C#uy*h7RSMp0sm9RF*}`49cg#HjLHj}vjNu2SCg(Kpe%rVD%^8m?`%3KUcTz& zRe?uSJtKqaNK;sZB|wk*%}QP>jav8b7SCM;%l~)({zvMxln9v-4#?+Z<8h?d`MUH{ix2$b@gTk4%i{G~1VMaLr1%Vk0cVc&N*FC*Nv>K4-vU*)SYE_Bh z*K;PvKS*0v*Wy1!`UckeYSqJFP3@|&VobP4iT|n6C$BbgMDlS)ddaEubS17-Z*y9Z zdoKD7A!ad60n5H=eT}%43@C|=h0&TzRKqNf8Ka%B=w}rvvTkv#$M<)>OFoZf_gTr- z;qdlpxgZQD6~nbXhl#hGW_-RTsK2@Cj*r`DGTXKpL#9T*ym3zvrNczmwC9_z2 zM4-d*Co;FZm}cCJ21(Rep)gO=70YYg?8f7#JVWE(S-o;xVY0F+B4A%NDZ#F}n+JTo zb*zi?Q#Qx<7V3}M-^*}T;+9b8ZeB^TrTKG@mqQ1cnj9s|TtyW&T`As|c*KMZpM|K} znWWuhGq`aP5cuex$NtGFzY`Twhq*Dzuc1eGhBy2FxEvb-&FnX=(c2p@wawXoY&mo` zM1dMX8_)4N)i%xotu(HKQQecF(&N7RceTQjzd4Kip#|`Nts4ddrUfONIOY*6GLZX; z)!2{W>u&)Gz~SNW#Gk3`^nau>&j0IF#&*t#35cS~gK~ivlnaK`MK(dGEv&l-%N3TD=#p{}ODaK5D$<>2xBxdPXuYH+bzNuiV#osMHsQ9Z`s< z?wec3h8M@~Sij{-iDr>o$&qSr@b-(kicHtKK{K z#n=u0ey`A=aRq*rV@?uJIASetA{m#D%EERW4yQO z%wlIJ^NP37+%-gC?_zpy-tIkQaGUQU&x_gG`IX@^*Et9%82+1@S6_1vEZV7pX*55W z>K+9;w2uTN()_H@PHPPQ3#-BnUw$UGO0V}|Lly$&IdJ}T`-{YRPD=2DJwGm`{K$+u zfe)H|2Nv=epjb3jeYr2+=ygn;ReW^QiMfY;wZoKt*FFYDbzOi3kE{!bmsRcPw&xJ+ zCrMu*uj~#$Lz0@Otm4eJ(mKfbhEa^Y)qx}uT0l>0Y998Rd0M&C7VxbXA+T@#FlG`Ul@enG~KiQqrMGgJDK^- zb3iW2Fd^(>TfUrGj>6m)k>61T)ThX;>k$V{`B$==*^UB&z*8;k3yfxUQSz6)j z72tZ^Xt0_r_(dvrw*r+hlbv9yG^A>q3nBUc(XV+8Y1DA0KX`kpi#Cs2*Hz81Ja4C< z`ZiwH_WFIsKjdpZCQ&epyaxI;R@qnN3KGqMpyu0n%`_W1nKXW?IvO8;0THmd zYF?;<S{zc$#*%NK29*)le~Zbz6AN&wOPznw#bSF6|l1P=`AVw0Y!e9PO)vAnA~>|P!Q07nf$eM*qlXoI@lAevPaD1r)Q+S*|6=- z`KZuEVeXa2Eg)C3#g}{*zOR(s4IpE?cR>IRtp6^32Kn97l?Fe8F1)QV^NeXcWM)x2 zM;PhC%1b?eRg((Ow7X0tTlze#A)TJrJ<0J@{T8UkPVi*)c zFCfMrqd0m6J2$2^@(3|s+U)B1ZTey+*#21T*?B}r-;KcD!e%zg!L z^h2)3;jTYUY3A*}Nzw1A2csUH8lNqc`%yPW-h1 zd^PP#vS7^>?U04grGl^gRF3M=eJbz(QJ$Ggd7Bm}{X^{X6EW*H-`ARSj#^S)`rT0? z=_?%GjEn1YDm$Okd9VVdws$jNYv$XTX)E3jZxs=vJJ)|7-GNUukxBzp4o;hZ?cJ=x zLUDO>up*2GfnH;>F39tR@Z2vT#7}iF<)4$28opd4_K%fb^}r94W_6@O8KhZ{S`j|o zeFnGd4s*;)E3XrW>Tm_uu1JusB(opnf5>2wAe{c3mGoxSHUqY0&x6nD^8*XnEA5T> z^u|BPGvAZ!o&fC$&u7#xT>}0LeD5Nnq&FEm1lZmE!KB9G4?G9Y(OvZnS)e(_8>Wby z*QiSNkk>VH8n~*o+?#mr2v^Pxws(ZQw3bqRRdsD}je?8im`hp8m|Z z&pkH&mH6-Td;B;1*~iOz=!d zV~tuboL5}?IAnG&W3sxsy1C%Q;EHu~3xdQB8*(QAn;Dm`npEV?PN$a{-oS_`Z{$G~ zG`6Khh?b*M6s3?87!*$wJ+H@i9u<0g5^C4-QYeg~BpF)QiNPA}d%iz57}e$3h?);! z3|O~h+=5Q+TGCJ7w!rumUwLvQX{Q^w7|v14%tIHZDJ=*2M9xANM2KW4-v}ChKq}?F z8)no=X=j9HS4wZefIR?db}oemD#X^0`C{91IFC1KJ0TV*4wbWVS=NjNemD2ric&_y zB?i|+cXll?1ng|>v()$IK!rtmfpC&JRDq13ojp^op!CVhK_NcodBFuW3ay_XpCd`& znA6TojY5=*`tdSmH45%~Rgo;k=z8PzDIZd!u{bVf&BC9lkj**YPZ zs~L+hk(5UvG*SQXqd`tB^Od*YiPb?<^h3nj<+8EFRq_6&YgEUgDwLu%nhLR=1=sH1Mn{tIIwe!%O{C%4G}e|- zDXcZgevdj6gxz`gh-AML6|b7q$6ixK&^JAAIrYTP6|cc#qQEas=fcSEW=FHRfvcj1 zx%4ARp;&dubc&RM6~xm7;j*wRxy$d%h_&oSYMH~S1Nn;^5i(SsO;nz(I4;GW%VCO{ zNCqc?PL%YX(u!plA&}IqOR8_U+?_#K`|UKvW8E2=b?(?leKQNE`d&|Koi{6GBV}g# z`60qhMo@WPu1=B4`bzo27vII1=EXkQv`pulH=m6I&NUve2Cv=&wue4|@@5QX$nQMv z9cA3i`sAZLUDj{Aw~9ZV$<6-9cl-4{|HfymHto}Lmsc;R*SYkkB%Z!(<@@o2wg2;M z7@wfS@=#551wQ}nd|fJ)-bteX;@dz|d&)dfQ^8t3P{YX1_oG`e7;V<_S=E*Jgch-} z`SzW4WJBDplt+eV;WQ*P{Qy#hWY&PTGdK32`b0A)`VcVU-7xCi+5K0Ax-n~DS56Fc`Y-# zudbsXYE|7mM|P6`=ZB#-#g3o2eK?Jr=x_I9UTu77dDzDec5qbztMLsGGyhUr)?0ht zyvAqM0SqBa@T;TOD#lTP&-O0YkJqzO{Be_h-KW3v*@9cp@JmhnqsT_tw1scoGHs@B z$6CzD@{8J9xcm!m>li58TKTPo@yY%uMmD6!@{&dDLjo5d$|l9(jA4q-RmgbN@`yMe z7cRL5H3W@zD;?_^JSucEQ=SAb60^9!b3ksX<0ajrso5 zT=50vO`1|{nIvQ`4b-?v3MaqtDq0P6JFInDRb2`t&2TCu1HaWq12w^h!*D&Cnby|S zE7Ka{OP0u>)<#uI_hS6)7l>33Pt!J6H1~X)O<%?|+_E5f~{V{n7}3m>%7i7yS0MUhXqnEzSz0la%yq zSiq9BBr2+E-n)Aj3-q+Dftq;P=fs0xM1;`jzyo41djGbqF!jVgzX*&pKQBVoaKD?? zGiCO}GolW&?j_IoJo~$|e|wy03rf^JrX-tOo$i^+aZe3_fN8~{RtQ84$!k!9q#P&VgZYgV^I;`4J zvqP78fPP;<71tgCYi�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