{ "cells": [ { "cell_type": "markdown", "id": "dfe37963-1af6-44fc-a841-8e462443f5e6", "metadata": {}, "source": [ "## Expert Knowledge Worker\n", "\n", "### A question answering agent that is an expert knowledge worker\n", "### To be used by employees of Insurellm, an Insurance Tech company\n", "### The agent needs to be accurate and the solution should be low cost.\n", "\n", "This project will use RAG (Retrieval Augmented Generation) to ensure our question/answering assistant has high accuracy.\n", "\n", "This first implementation will use a simple, brute-force type of RAG.." ] }, { "cell_type": "code", "execution_count": 1, "id": "ba2779af-84ef-4227-9e9e-6eaf0df87e77", "metadata": {}, "outputs": [], "source": [ "# imports\n", "\n", "import os\n", "import glob\n", "from dotenv import load_dotenv\n", "import gradio as gr" ] }, { "cell_type": "code", "execution_count": 2, "id": "802137aa-8a74-45e0-a487-d1974927d7ca", "metadata": {}, "outputs": [], "source": [ "# imports for langchain, plotly and Chroma\n", "\n", "from langchain.document_loaders import DirectoryLoader, TextLoader\n", "from langchain.text_splitter import CharacterTextSplitter\n", "from langchain.schema import Document\n", "from langchain_openai import OpenAIEmbeddings, ChatOpenAI\n", "from langchain_chroma import Chroma\n", "import matplotlib.pyplot as plt\n", "from sklearn.manifold import TSNE\n", "import numpy as np\n", "import plotly.graph_objects as go\n", "from langchain.memory import ConversationBufferMemory\n", "from langchain.chains import ConversationalRetrievalChain" ] }, { "cell_type": "code", "execution_count": 3, "id": "58c85082-e417-4708-9efe-81a5d55d1424", "metadata": {}, "outputs": [], "source": [ "# price is a factor for our company, so we're going to use a low cost model\n", "\n", "MODEL = \"gpt-4o-mini\"\n", "db_name = \"vector_db\"" ] }, { "cell_type": "code", "execution_count": 4, "id": "ee78efcb-60fe-449e-a944-40bab26261af", "metadata": {}, "outputs": [], "source": [ "# Load environment variables in a file called .env\n", "\n", "load_dotenv()\n", "os.environ['OPENAI_API_KEY'] = os.getenv('OPENAI_API_KEY', 'your-key-if-not-using-env')" ] }, { "cell_type": "code", "execution_count": 5, "id": "730711a9-6ffe-4eee-8f48-d6cfb7314905", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Created a chunk of size 1088, which is longer than the specified 1000\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Total number of chunks: 123\n", "Document types found: {'contracts', 'company', 'employees', 'products'}\n" ] } ], "source": [ "# Read in documents using LangChain's loaders\n", "# Take everything in all the sub-folders of our knowledgebase\n", "\n", "folders = glob.glob(\"knowledge-base/*\")\n", "\n", "def add_metadata(doc, doc_type):\n", " doc.metadata[\"doc_type\"] = doc_type\n", " return doc\n", "\n", "documents = []\n", "for folder in folders:\n", " doc_type = os.path.basename(folder)\n", " loader = DirectoryLoader(folder, glob=\"**/*.md\", loader_cls=TextLoader)\n", " folder_docs = loader.load()\n", " documents.extend([add_metadata(doc, doc_type) for doc in folder_docs])\n", "\n", "text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=200)\n", "chunks = text_splitter.split_documents(documents)\n", "\n", "print(f\"Total number of chunks: {len(chunks)}\")\n", "print(f\"Document types found: {set(doc.metadata['doc_type'] for doc in documents)}\")" ] }, { "cell_type": "markdown", "id": "77f7d2a6-ccfa-425b-a1c3-5e55b23bd013", "metadata": {}, "source": [ "## A sidenote on Embeddings, and \"Auto-Encoding LLMs\"\n", "\n", "We will be mapping each chunk of text into a Vector that represents the meaning of the text, known as an embedding.\n", "\n", "OpenAI offers a model to do this, which we will use by calling their API with some LangChain code.\n", "\n", "This model is an example of an \"Auto-Encoding LLM\" which generates an output given a complete input.\n", "It's different to all the other LLMs we've discussed today, which are known as \"Auto-Regressive LLMs\", and generate future tokens based only on past context.\n", "\n", "Another example of an Auto-Encoding LLMs is BERT from Google. In addition to embedding, Auto-encoding LLMs are often used for classification.\n", "\n", "More details in the resources." ] }, { "cell_type": "code", "execution_count": 6, "id": "78998399-ac17-4e28-b15f-0b5f51e6ee23", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Vectorstore created with 123 documents\n" ] } ], "source": [ "# Put the chunks of data into a Vector Store that associates a Vector Embedding with each chunk\n", "# Chroma is a popular open source Vector Database based on SQLLite\n", "\n", "embeddings = OpenAIEmbeddings()\n", "\n", "# Delete if already exists\n", "\n", "if os.path.exists(db_name):\n", " Chroma(persist_directory=db_name, embedding_function=embeddings).delete_collection()\n", "\n", "# Create vectorstore\n", "\n", "vectorstore = Chroma.from_documents(documents=chunks, embedding=embeddings, persist_directory=db_name)\n", "print(f\"Vectorstore created with {vectorstore._collection.count()} documents\")" ] }, { "cell_type": "code", "execution_count": 7, "id": "ff2e7687-60d4-4920-a1d7-a34b9f70a250", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "There are 123 vectors with 1,536 dimensions in the vector store\n" ] } ], "source": [ "# Let's investigate the vectors\n", "\n", "collection = vectorstore._collection\n", "count = collection.count()\n", "\n", "sample_embedding = collection.get(limit=1, include=[\"embeddings\"])[\"embeddings\"][0]\n", "dimensions = len(sample_embedding)\n", "print(f\"There are {count:,} vectors with {dimensions:,} dimensions in the vector store\")" ] }, { "cell_type": "markdown", "id": "b0d45462-a818-441c-b010-b85b32bcf618", "metadata": {}, "source": [ "## Visualizing the Vector Store\n", "\n", "Let's take a minute to look at the documents and their embedding vectors to see what's going on." ] }, { "cell_type": "code", "execution_count": 8, "id": "b98adf5e-d464-4bd2-9bdf-bc5b6770263b", "metadata": {}, "outputs": [], "source": [ "# Prework\n", "\n", "result = collection.get(include=['embeddings', 'documents', 'metadatas'])\n", "vectors = np.array(result['embeddings'])\n", "documents = result['documents']\n", "metadatas = result['metadatas']\n", "doc_types = [metadata['source'].split('/')[1] for metadata in metadatas]\n", "colors = [['blue', 'green', 'red', 'orange'][['products', 'employees', 'contracts', 'company'].index(t)] for t in doc_types]" ] }, { "cell_type": "code", "execution_count": 9, "id": "427149d5-e5d8-4abd-bb6f-7ef0333cca21", "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hoverinfo": "text", "marker": { "color": [ "red", "orange", "blue", "blue", "green", "green", "blue", "blue", "green", "red", "green", "red", "red", "red", "red", "green", "blue", "green", "green", "green", "green", "green", "red", "red", "green", "green", "red", "green", "red", "green", "red", "red", "red", "green", "green", "blue", "red", "red", "green", "red", "red", "blue", "green", "red", "red", "green", "red", "red", "green", "red", "red", "green", "red", "blue", "red", "red", "red", "red", "red", "green", "green", "red", "green", "blue", "green", "red", "green", "blue", "green", "red", "red", "red", "green", "orange", "green", "red", "blue", "red", "red", "green", "green", "blue", "red", "red", "red", "red", "green", "green", "green", "blue", "green", "green", "red", "green", "red", "blue", "red", "green", "blue", "green", "red", "blue", "green", "green", "green", "blue", "blue", "red", "red", "blue", "green", "green", "green", "red", "green", "blue", "red", "red", "red", "blue", "green", "orange", "red" ], "opacity": 0.8, "size": 5 }, "mode": "markers", "text": [ "Type: contracts
Text: ---\n\n## Features\n\n1. **Access to Core Features**: Roadway Insurance Inc. will have access to all Pro...", "Type: company
Text: # About Insurellm\n\nInsurellm was founded by Avery Lancaster in 2015 as an insurance tech startup des...", "Type: products
Text: Experience the future of reinsurance with Rellm, where innovation meets reliability. Let Insurellm h...", "Type: products
Text: - **User-Friendly Interface**: Designed with user experience in mind, Markellm features an intuitive...", "Type: employees
Text: - **2010 - 2013**: Business Analyst at Edge Analytics \n Prior to joining Innovate, Avery worked as...", "Type: employees
Text: ## Annual Performance History\n- **2019:** Exceeds Expectations - Continuously delivered high-quality...", "Type: products
Text: - **Professional Tier**: $2,500/month\n - For medium-sized companies.\n - All Basic Tier features pl...", "Type: products
Text: - **Instant Quoting**: With Carllm, insurance companies can offer near-instant quotes to customers, ...", "Type: employees
Text: - **2022**: \n - **Base Salary**: $65,000 (Promotion to Senior SDR) \n - **Bonus**: $13,000 (20% o...", "Type: contracts
Text: ## Renewal\n\n1. **Automatic Renewal**: This contract shall automatically renew for additional one-yea...", "Type: employees
Text: # HR Record\n\n# Maxine Thompson\n\n## Summary\n- **Date of Birth:** January 15, 1991 \n- **Job Title:** ...", "Type: contracts
Text: # Contract with TechDrive Insurance for Carllm\n\n**Contract Date:** October 1, 2024 \n**Contract Dura...", "Type: contracts
Text: 4. **Payment Terms**: \n - The Customer shall pay an amount of $10,000 per month for the Standard T...", "Type: contracts
Text: ## Support\n1. **Technical Support**: Insurellm shall provide 24/7 technical support via an email and...", "Type: contracts
Text: # Contract with Apex Reinsurance for Rellm: AI-Powered Enterprise Reinsurance Solution\n\n## Terms\n\n1....", "Type: employees
Text: - **2023:** Base Salary - $70,000 \n Recognized for substantial improvement in employee relations m...", "Type: products
Text: # Product Summary\n\n# Carllm\n\n## Summary\n\nCarllm is an innovative auto insurance product developed by...", "Type: employees
Text: ## Annual Performance History \n- **2022** - Rated as \"Exceeds Expectations.\" Alex Thomson achieved ...", "Type: employees
Text: ## Compensation History\n- **March 2018**: Initial salary of $80,000.\n- **July 2019**: Salary increas...", "Type: employees
Text: - **January 2017 - May 2018**: Marketing Intern \n - Supported the Marketing team by collaborating ...", "Type: employees
Text: # HR Record\n\n# Emily Carter\n\n## Summary\n- **Date of Birth:** August 12, 1990 \n- **Job Title:** Acco...", "Type: employees
Text: ## Other HR Notes\n- Jordan K. Bishop has been an integral part of club initiatives, including the In...", "Type: contracts
Text: 1. **AI-Powered Risk Assessment:** Access to advanced AI algorithms for real-time risk evaluations.\n...", "Type: contracts
Text: # Contract with Belvedere Insurance for Markellm\n\n## Terms\nThis Contract (\"Agreement\") is made and e...", "Type: employees
Text: ## Annual Performance History\n- **2020:** Exceeds Expectations \n Samantha Greene demonstrated exce...", "Type: employees
Text: ## Annual Performance History\n- **2021:** First year at Insurellm; achieved 90% of monthly targets. ...", "Type: contracts
Text: 3. **Training and Onboarding:** \n Insurellm agrees to provide one free training session on how to...", "Type: employees
Text: ## Compensation History\n- **June 2018:** Starting Salary - $85,000\n- **June 2019:** Salary Increase ...", "Type: contracts
Text: ## Features\nStellar Insurance Co. will receive access to the following features of the Rellm product...", "Type: employees
Text: ## Annual Performance History \n- **2021**: \n - **Performance Rating**: 4.5/5 \n - **Key Achievem...", "Type: contracts
Text: # Contract with Stellar Insurance Co. for Rellm\n\n## Terms\nThis contract is made between **Insurellm*...", "Type: contracts
Text: # Contract with Roadway Insurance Inc. for Carllm\n\n---\n\n## Terms\n\n1. **Agreement Effective Date**: T...", "Type: contracts
Text: ---\n\n## Features\n\n- **AI-Powered Risk Assessment**: Customer will have access to enhanced risk evalu...", "Type: employees
Text: - **Professional Development Goals**: \n - Emily Tran aims to become a Marketing Manager within the...", "Type: employees
Text: ## Compensation History\n- **2020:** Base Salary: $80,000 \n- **2021:** Base Salary Increase to $90,0...", "Type: products
Text: All tiers include a comprehensive training program and ongoing updates to ensure optimal performance...", "Type: contracts
Text: ______________________________ \n[Name], [Title] \nDate: ______________________\n\n**For Greenstone In...", "Type: contracts
Text: # Contract with EverGuard Insurance for Rellm: AI-Powered Enterprise Reinsurance Solution\n\n**Contrac...", "Type: employees
Text: ## Compensation History\n- **2015**: $150,000 base salary + Significant equity stake \n- **2016**: $1...", "Type: contracts
Text: 1. **Customer Support**: Insurellm will provide EverGuard Insurance with 24/7 customer support, incl...", "Type: contracts
Text: ---\n\n## Support\n\n1. **Technical Support**: Roadway Insurance Inc. will receive priority technical su...", "Type: products
Text: ### Regulatory Compliance Tools\nRellm includes built-in compliance tracking features to help organiz...", "Type: employees
Text: Emily Carter exemplifies the kind of talent that drives Insurellm's success and is an invaluable ass...", "Type: contracts
Text: ## Support\nInsurellm provides Stellar Insurance Co. with the following support services:\n\n- **24/7 T...", "Type: contracts
Text: 3. **Regular Updates:** Insurellm will offer ongoing updates and enhancements to the Homellm platfor...", "Type: employees
Text: # HR Record\n\n# Alex Chen\n\n## Summary\n- **Date of Birth:** March 15, 1990 \n- **Job Title:** Backend ...", "Type: contracts
Text: 2. **Seamless Integrations**: The architecture of Rellm allows for easy integration with existing sy...", "Type: contracts
Text: ### Termination\nEither party may terminate this agreement with a **30-day written notice**. In the e...", "Type: employees
Text: Alex Chen continues to be a vital asset at Insurellm, contributing significantly to innovative backe...", "Type: contracts
Text: **Belvedere Insurance** \nSignature: ______________________ \nName: [Authorized Signatory] \nTitle: ...", "Type: contracts
Text: ## Support\n\n1. **Customer Support**: Insurellm will provide 24/7 customer support to TechDrive Insur...", "Type: employees
Text: # HR Record\n\n# Jordan K. Bishop\n\n## Summary\n- **Date of Birth:** March 15, 1990\n- **Job Title:** Fro...", "Type: contracts
Text: 3. **Service Level Agreement (SLA):** \n Insurellm commits to a 99.9% uptime for the platform with...", "Type: products
Text: ### Q2 2025: Customer Experience Improvements\n- Launch of a new **mobile app** for end-users.\n- Intr...", "Type: contracts
Text: ## Renewal\n1. **Renewal Terms**: At the end of the initial term, this Contract shall automatically r...", "Type: contracts
Text: # Contract with BrightWay Solutions for Markellm\n\n**Contract Date:** October 5, 2023 \n**Contract ID...", "Type: contracts
Text: ## Renewal\n\n1. **Automatic Renewal**: This Agreement will automatically renew for successive one-yea...", "Type: contracts
Text: ## Support\n1. **Customer Support Access**: The Client will have access to dedicated support through ...", "Type: contracts
Text: 1. **Core Functionality**: Rellm provides EverGuard Insurance with advanced AI-driven analytics, sea...", "Type: employees
Text: ## Annual Performance History\n- **2018**: **3/5** - Adaptable team player but still learning to take...", "Type: employees
Text: - **Engagement in Company Culture:** Regularly participates in team-building events and contributes ...", "Type: contracts
Text: # Contract with GreenField Holdings for Markellm\n\n**Effective Date:** November 15, 2023 \n**Contract...", "Type: employees
Text: - **2022**: **Satisfactory** \n Avery focused on rebuilding team dynamics and addressing employee c...", "Type: products
Text: # Product Summary\n\n# Markellm\n\n## Summary\n\nMarkellm is an innovative two-sided marketplace designed ...", "Type: employees
Text: ## Annual Performance History\n- **2023:** Rating: 4.5/5 \n *Samuel exceeded expectations, successfu...", "Type: contracts
Text: # Contract with GreenValley Insurance for Homellm\n\n**Contract Date:** October 6, 2023 \n**Contract N...", "Type: employees
Text: ## Compensation History\n- **2017**: $70,000 (Junior Data Engineer) \n- **2018**: $75,000 (Junior Dat...", "Type: products
Text: - **Basic Tier:** Starting at $5,000/month for small insurers with basic integration features.\n- **S...", "Type: employees
Text: # HR Record\n\n# Samuel Trenton\n\n## Summary\n- **Date of Birth:** April 12, 1989 \n- **Job Title:** Sen...", "Type: contracts
Text: 2. **Real-Time Quote Availability:** \n Consumers sourced via BrightWay Solutions will receive rea...", "Type: contracts
Text: ## Features\n1. **AI-Powered Matching**: Access to advanced algorithms that connect GreenField Holdin...", "Type: contracts
Text: ## Renewal\n1. **Automatic Renewal**: This contract will automatically renew for sequential one-year ...", "Type: employees
Text: - **2018**: **Exceeds Expectations** \n Under Avery’s pivoted vision, Insurellm launched two new su...", "Type: company
Text: # Careers at Insurellm\n\nInsurellm is hiring! We are looking for talented software engineers, data sc...", "Type: employees
Text: # HR Record\n\n# Jordan Blake\n\n## Summary\n- **Date of Birth:** March 15, 1993 \n- **Job Title:** Sales...", "Type: contracts
Text: # Contract with Pinnacle Insurance Co. for Homellm\n\n## Terms\nThis contract (\"Contract\") is entered i...", "Type: products
Text: ### For Insurance Companies:\n- **Basic Listing Fee**: $199/month for a featured listing on the platf...", "Type: contracts
Text: ## Renewal\n1. **Renewal Terms**: This Agreement may be renewed for additional one-year terms upon mu...", "Type: contracts
Text: ## Renewal\n\n1. **Automatic Renewal**: This contract will automatically renew for successive 12-month...", "Type: employees
Text: ## Annual Performance History\n- **2020:** \n - Completed onboarding successfully. \n - Met expecta...", "Type: employees
Text: # HR Record\n\n# Alex Thomson\n\n## Summary\n- **Date of Birth:** March 15, 1995 \n- **Job Title:** Sales...", "Type: products
Text: # Product Summary\n\n# Homellm\n\n## Summary\nHomellm is an innovative home insurance product developed b...", "Type: contracts
Text: **Signatures:** \n_________________________ _________________________ \n**...", "Type: contracts
Text: ## Support\n1. **Technical Support**: Technical support will be available from 9 AM to 7 PM EST, Mond...", "Type: contracts
Text: - **Customer Portal**: A dedicated portal will be provided, allowing the Customer's clients to manag...", "Type: contracts
Text: # Contract with Velocity Auto Solutions for Carllm\n\n**Contract Date:** October 1, 2023 \n**Contract ...", "Type: employees
Text: ## Other HR Notes\n- **Professional Development**: Avery has actively participated in leadership trai...", "Type: employees
Text: # HR Record\n\n# Oliver Spencer\n\n## Summary\n- **Date of Birth**: May 14, 1990 \n- **Job Title**: Backe...", "Type: employees
Text: - **2021**: *Exceeds Expectations* \n Maxine spearheaded the transition to a new data warehousing s...", "Type: products
Text: With Homellm, Insurellm is committed to transforming the landscape of home insurance, ensuring both ...", "Type: employees
Text: ## Compensation History\n- **2020:** Base Salary - $55,000 \n The entry-level salary matched industr...", "Type: employees
Text: # Avery Lancaster\n\n## Summary\n- **Date of Birth**: March 15, 1985 \n- **Job Title**: Co-Founder & Ch...", "Type: contracts
Text: ---\n\n## Renewal\n\n1. **Automatic Renewal**: This agreement will automatically renew for an additional...", "Type: employees
Text: ## Other HR Notes\n- Jordan has shown an interest in continuing education, actively participating in ...", "Type: contracts
Text: ## Features\n1. **AI-Powered Risk Assessment**: Utilized for tailored underwriting decisions specific...", "Type: products
Text: ### Q3 2025\n- Initiate a comprehensive marketing campaign targeting both consumers and insurers to i...", "Type: contracts
Text: ## Support\n\n1. **Customer Support**: Velocity Auto Solutions will have access to Insurellm’s custome...", "Type: employees
Text: # HR Record\n\n# Alex Harper\n\n## Summary\n- **Date of Birth**: March 15, 1993 \n- **Job Title**: Sales ...", "Type: products
Text: # Product Summary\n\n# Rellm: AI-Powered Enterprise Reinsurance Solution\n\n## Summary\n\nRellm is an inno...", "Type: employees
Text: - **2021**: \n - Performance Rating: Meets Expectations \n - Key Achievements: Contributed to the ...", "Type: contracts
Text: ## Features\n1. **AI-Powered Matching**: Belvedere Insurance will benefit from Markellm's AI-powered ...", "Type: products
Text: ### Seamless Integrations\nRellm's architecture is designed for effortless integration with existing ...", "Type: employees
Text: - **2017-2019:** Marketing Intern \n - Assisted with market research and campaign development for s...", "Type: employees
Text: # HR Record\n\n# Emily Tran\n\n## Summary\n- **Date of Birth:** March 18, 1991 \n- **Job Title:** Digital...", "Type: employees
Text: ## Insurellm Career Progression\n- **January 2017 - October 2018**: **Junior Data Engineer** \n * Ma...", "Type: products
Text: ### 2. Dynamic Pricing Model\nWith Homellm's innovative dynamic pricing model, insurance providers ca...", "Type: products
Text: - **Mobile Integration**: Carllm is designed to work seamlessly with mobile applications, providing ...", "Type: contracts
Text: **Insurellm, Inc.** \n_____________________________ \nAuthorized Signature \nDate: ________________...", "Type: contracts
Text: ---\n\n**Signatures** \n**For Insurellm**: __________________________ \n**Name**: John Smith \n**Title...", "Type: products
Text: Join the growing number of organizations leveraging Rellm to enhance their reinsurance processes whi...", "Type: employees
Text: ## Annual Performance History\n- **2017**: *Meets Expectations* \n Maxine showed potential in her ro...", "Type: employees
Text: # Samantha Greene\n\n## Summary\n- **Date of Birth:** October 14, 1990\n- **Job Title:** HR Generalist\n-...", "Type: employees
Text: ## Compensation History\n- **2023:** Base Salary: $115,000 + Bonus: $15,000 \n *Annual bonus based o...", "Type: contracts
Text: # Contract with Greenstone Insurance for Homellm\n\n---\n\n## Terms\n\n1. **Parties**: This Contract (\"Agr...", "Type: employees
Text: ## Other HR Notes\n- Alex Thomson is an active member of the Diversity and Inclusion committee at Ins...", "Type: products
Text: - **Customer Support**: Our dedicated support team is always available to assist both consumers and ...", "Type: contracts
Text: 4. **Confidentiality:** Both parties agree to maintain the confidentiality of proprietary informatio...", "Type: contracts
Text: **TechDrive Insurance Representative:** \nName: Sarah Johnson \nTitle: Operations Director \nDate: _...", "Type: contracts
Text: 4. **Usage Rights**: EverGuard Insurance is granted a non-exclusive, non-transferable license to acc...", "Type: products
Text: ### 5. Multi-Channel Integration\nHomellm seamlessly integrates into existing insurance platforms, pr...", "Type: employees
Text: ## Compensation History\n| Year | Base Salary | Bonus | Total Compensation |\n|------|--------...", "Type: company
Text: # Overview of Insurellm\n\nInsurellm is an innovative insurance tech firm with 200 employees across th...", "Type: contracts
Text: 1. **Technical Support**: Provider shall offer dedicated technical support to the Client via phone, ..." ], "type": "scatter", "x": [ -3.1607254, -1.4308044, -1.1085818, -6.969219, 0.48703524, 2.175568, -4.1178646, -3.7208247, 6.762047, 0.08528425, 4.7871485, -0.4213074, -3.5126212, -2.7635567, 1.8354499, 5.1780567, -3.3693259, 4.464768, 7.1887536, 2.5698357, 3.9805, 6.1451826, -6.4697313, -6.4013214, 3.313028, 6.201129, -7.070293, 7.6450047, -1.2759379, 5.5241075, -0.3848002, 0.65634567, -5.918763, 2.523539, 6.705796, -5.063482, -5.6573243, 1.2221298, 7.118389, -0.015344943, -1.1000556, 0.02971432, 1.5785087, -1.042042, -3.884427, 4.947063, -0.6405304, 0.351926, 1.0492592, -5.7610264, -1.4826074, 5.439971, -8.043169, -3.2341743, 2.9037015, -7.1473227, 0.97349405, -8.745356, -0.19221792, 2.0126112, 2.4894593, -5.8275576, 0.08701889, -6.61231, 4.812531, -4.493661, 4.779925, -5.141953, 5.131699, -7.818457, -7.545307, 2.7424765, 0.24364968, -0.7931868, 6.0760317, -4.2518806, -8.056226, 3.0942588, 0.11218604, 2.268039, 6.7461205, -4.1430783, -5.3450475, -2.3154912, -3.3768446, -0.066813685, 0.12230213, 4.793949, 1.9896475, -3.0949416, 5.659374, 0.06005563, 1.5920869, 6.6121154, -6.715834, -5.821373, -1.6468159, 6.5187964, -1.2227865, 5.659529, -6.777003, -0.8497433, 0.77016014, 3.2564833, 3.2851305, -5.3794675, -4.1021156, -4.9523273, 1.9611729, -2.203138, 2.1651542, 4.5296946, 5.960888, -4.3336587, 7.3632245, -7.455795, -4.342169, -1.4740607, 0.5362702, -4.6598883, 6.3600597, -1.6243327, -1.8050114 ], "y": [ -2.1550088, 3.0643942, 1.5276649, -1.120192, 9.096867, 11.685728, -1.0502763, 0.19096021, 9.645359, -5.6271205, 8.58046, -7.09625, -6.7556396, -4.7456827, -2.9980495, 13.475882, 0.5079896, 11.252887, 10.956067, 7.832474, 7.492853, 5.4227104, 1.4291283, -4.5507016, 12.795857, 10.503973, -5.637385, 11.801874, -1.6297567, 10.955857, -3.5296912, -7.180572, 1.9675288, 7.429629, 11.303524, 0.901026, -8.734111, -2.2119637, 12.559837, -1.9207084, -5.445833, 0.009377258, 5.303404, -2.7137322, -3.9320812, 6.767529, -0.6412369, -3.986366, 5.0965276, -7.6005898, -6.5373793, 6.0456867, -4.564145, -0.56765825, -6.1337295, -5.065833, -3.3495605, -2.2934506, -1.2250541, 12.195051, 14.05741, -4.968565, 9.683414, -1.0298567, 11.745912, -4.737484, 10.138535, 0.19150285, 7.612739, -3.6685145, 0.96112436, -5.9198747, 9.636642, 3.6385217, 7.303717, -5.774162, -2.0032737, -6.2333484, -5.289164, 12.009621, 7.5476747, 2.1360438, -8.622136, -4.509546, -5.0484943, -6.7587156, 7.423352, 6.492227, 9.941514, 2.572907, 13.432404, 7.1845207, -5.9217563, 5.7416673, 2.424909, -1.1929586, -6.0047565, 7.9045324, 0.56980604, 12.12074, -2.23806, -0.32520536, 11.615986, 7.505213, 9.576624, 2.1870441, -0.84820145, -8.307507, -1.0744305, -0.13908787, 10.820973, 13.802319, 11.501876, -5.3514557, 7.271256, -1.6708019, -4.1823173, -7.409654, -2.2660165, 2.3604054, 12.11396, 2.7945552, -3.8833227 ] } ], "layout": { "height": 600, "margin": { "b": 10, "l": 10, "r": 20, "t": 40 }, "scene": { "xaxis": { "title": { "text": "x" } }, "yaxis": { "title": { "text": "y" } } }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "2D Chroma Vector Store Visualization" }, "width": 800, "xaxis": { "autorange": true, "range": [ -9.741724878009347, 8.641373578009347 ], "type": "linear" }, "yaxis": { "autorange": true, "range": [ -10.166823656233563, 15.490122656233563 ], "type": "linear" } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAABEoAAAJYCAYAAAB1iANKAAAAAXNSR0IArs4c6QAAIABJREFUeF7snQd4VcXWhlcqKfSWUEVRkCaCgIIoXEWxgIiCHRULYqVYELiICnYEpAgWwF4AKYogCkrxoihFQURAlA4KoUN68v+zcR9zQpIz58wua/b+zvP8z39Npqz1fZNh9ntmZkfl5+fnEz5QAApAASgABaAAFIACUAAKQAEoAAWgABSAAhQFUIJRAAWgABSAAlAACkABKAAFoAAUgAJQAApAgRMKAJRgJEABKAAFoAAUgAJQAApAASgABaAAFIACUOAfBQBKMBSgABSAAlAACkABKAAFoAAUgAJQAApAASgAUIIxAAWgABSAAlAACkABKAAFoAAUgAJQAApAgWAFsKMEIwIKQAEoAAWgABSAAlAACkABKAAFoAAUgAL/KOAbUJKekUV70w5QdnYOpVatRMlJCY4OguycXNr91z4qFR9PlSqWpdiYmKD+P/tyGR0+epxuvqaDo3GhM3cUOHL0OO3bf4iSkxKpQvkyFBcbPB7cicq+XnNycykjI4vi42IpPj7Ovo4kWp7z1Xd04NAR6tHtUqO0ePHXseMZFBMTQ4kJ8RItWFckMyvbmJMSEuJPmhOs6wUtQQEoAAWgABSAAlAACkABKBCOAp4HJavWbqRho96hjX/sCNLlkgtb0KCHbqGqlcsHfv7YsIn0+cLvA/+dlJhAZUon0lkN6tLVl7Wltuc2Cfth5svFK2jc5Bm0eeuuoP7btzmbul5+AV10fnOKjo6i6+95iv7Ytpt+nDcxHP+0LJuRmUXndOxFQt+ls8ZQQqmiH057PPgsCf8WTB1J1apWtCTX3Nw8Gv3GdDrtlGqG/k5/BBAbN2Um7di9N6jreqfVpMsvOpd63dLZ+Pm2nX/RtM8WU7vWTalF0/pOh1lif5H4t+Kn3+jxZ1+nu2/uRH3v7uZqPrc88Ayt/mUTrVv0lhGH8KLjjY9S4/qn0sevDbU8tpK8HPLiZJoxdwlNfOFhuuDcJpb3jQahABSAAlAACkABKAAFoAAUCF8Bz4OSD2YupGdeeZcEGDm70el09Fg6ffbVMuPhqFnjM+jdsYMoKirKUK7/k6/S/EU/UKdLWlPppEQ6cOgo/bltVwCyXHxBcxr15AMUExMtpbR4MBQPxuJz8zWXGA/ne9MO0s+/bqbvVqwzfi7AiAAGfgIlIu8Bz7xG4pv9sc/0oYvOb3aSnrv/SqMO1z9sePTeuMFSessUEt/en33JXSRA1fhn+8pUsazM0uVrqPeAkUZ7Yiydc1Z9Stt/iH77fRv978dfjJ+bD+8/rP6NevZ7nh67/0a6rXtHy2KwqqFw/ft+1a/09tT5dGm7Fq4AqoJ5FwYlYmePABZ1aqXSgPtvtEqiQDslefnu9C9p2Yp19EDPrtSofh3L+0aDUAAKQAEoAAWgABSAAlAACoSvgOdByZpfN1OpUvFUv26tgDri2MN5ne4z/nvBxy9TtZRKxv82Qcm891+k2jWqBsqv37SVBgx/zdgVcmv3jlIPU+ZDcUqVCjTp5cfo1NrVgtxZ/N3P9MjTE2jxjNG+BCUi//sGjqIrLz6PXhzS+6SR+860+fTC+A/piX630vVdLgp/ZBdTIxxQIo5kmBBNNYCsrGy67ObH6K+9B2je+y9Q7RopQU2KMSbyfWv048bPuYMSt/xT9UHULwxKrGizpDac9NLKMWu3LmgfCkABKAAFoAAUgAJQAApwVcDzoKQ44e99fBQt+f5nY7eC2LVQEigRv9uzdz91v3so7T94hKaMepxaNTuzRE+vuGUAbd3xF018oT9dcO5ZRZYVd5KUSU40HsbNHSUfTXyCxk+ZRQK0iM9l/2lFj913A5UpnWT8tzj20G/oeGre5Ay67qr/0IzPl9Da3/4wfv/UIz2NMuK4yqtvz6af122mhFJxxs6F/vd0D3o4nzlvKYljQff3vJpmzl1K3yxbTUeOphvf+A/uc4txX8rYSTMMjTIys41jAf/teytVLF8mkMtLr35EK37eQLv+2mfoUrNaFbqkXQvqef3lVKlC2RL1EeDg/C4P0vH0DPpx3muUlFgqqHy3u4eSgAeLZ7xClSuWM363aNlPJADK2t/+NP77vOYN6JF7b6BTagZDB7E744OZC0hAsri4WGpUrw51vvR8atuqMfV9Ypyxe0Ps4jGPtCQmlKKRT54AZ+Ium1ffmkULv11p+NfgjFOoS8fzjR1B4oiUrAeFkzd3yNQ9pTp9+vazJWoj4n7mlffolw1/Gpqedkp1o7zwXBxdEZ/df++nUa9Npe9WrjO0b3n2mcbvzm/ZOND2ug1bjGM+N3S5iGrVqEpzvlpGm/7YQa1bNKabul4clqaFAw7XP+HlmEkz6Lqr2tN/2pzYQSTa+HD21zR3wffGsTNxzE3ofdWlbahj+1ZGGbHTQ3yGPXZHUAhvfvA5rVyzkUY+eX/gXhHZ8VgYlAh49tCQsdS0YV3qfetVRj9inIj7Q4r6dO/c3tgFJXya8M6n9MfWXcYONTGmmpx5KvXofmkgx1Beih1nc79eToMeuplqVf8XzobzN/zgHV3ps6++o6+/XWXE0bpFIxr80C0nwdkSBx1+CQWgABSAAlAACkABKAAFoEBAAV+Ckry8fGp3zUPGA+YXH7wYeEApbkeJqdanX/6PBj77Bj1057V0T48Td0kU9REXRbbt8iDJPBSb9QUoEQ/G5kfclyAeHgVIuOaKCwMPiuLo0LlX3ktip4p4wBM5iI8AGEtnjaUFS1dSnyFjjZ91bN/SePAXsEN8Zk4eTuIuDPEZ9fo0Eg+b5kc8oP61d7/RXsG+xc8FMBBxiCMg4iiI+bng6gcNiNK0UV0qWzqZ1m3403hQE/Xff/W/Ie9zEXfHfDT7awNSmA/Gom1xp8PlNw8w4Iy4u0F8pnw0j0ZM/DiQ17adfxsgRXy+mT46cNdMwXIXnteUDh4+ajzQis/yzydQjwefCRylErmJT+nkRGMnh7hw95b7hxs+CJ3qn16bVq/dZOQk7qh55vG7jPKhPChqTIhv+i+76TGjrXfGDKJzzqpXzOghAz4Nfv5No6zwNaXKiftZ2rRoRP3vuY5E7tfe9YThiQAjZcskk9jhIf772YF3G2BHfMxdTSJPUyvx886XtqHnB/WS1rS4QMPxTxw1u+uRl4x7gcwLi4eOmELT5yw2xnKLs+rTrr/SjLtDxH9/PW3UCa9vfNT4//M/fCkoDLEba97Xy+m7Oa9S2X8goux4LAxKxN9Ii8t6Gcehxgx7yOjn9r7PU3p6ZlCf5t/n8AF3GseHBGz87wuTjLFySs1UQ3/zCNWrz/Uz7pcJ5eW4yTNpwjuzafobTxmQSHwi/RsWcRw6cszYtSQA2+fvPR/yb7DYQYhfQAEoAAWgABSAAlAACkABHyvgS1BiPrSJBxPxgGJ+QoGSTX/uoKt7/pfEA/iE5/sVO2zEHSQ33Tes2GMlRVU0QYn4RvuumzoZ35KnHThsPFyLB7A1Cycbd6OYD+miDfFgd2u3jsaOA3GcKLVqRbr8n+Mdc955LvCNsnlMoiB4MEGJuLtF7CCpUqm80U/XO4acuNyyfSvjW26xm0O8EaTzbQONS1fnvvdCIHzx8H3GaTUDD2MCQPUZMoa+/t9qmj3lGTr91Bol/mmJHQG3PvRs0AOqqCAAjojvhcH3GPfFmJdtCr/eHPEolS9X2mjXfFA1AY4JWMRDogAf5pGqXXv20ZjJMww4UNLRG/HQLh7exU6dIX1vNXaQiIfoex8fST/+9Bt98OoQY9dBSR4U3t1SUACxy2f8lJnGj8QOkFZnn0n169amJg1OC7pUWPy+pOMa5qXD4siSOLokPjv37DPGpvh8M32UAX8K3oly101XGruTqlauQFnZOZSbm2tAiFCalmSgrH+ijcKgRIy1lpf3NqDIF++/GHgTzt/7DpIAkiJe8QkHlMiORxlQUjhvsfuq39BxdG6zBvT6iEeMMS+AhNgNVvBCaLGL57p7njT+fsxdSiV5WRiUiF0s4f4Ni3lg4IO3GBcei7cL9XpkBC1fvT4wXn387xtShwJQAApAASgABaAAFIACESngO1AiHsSuvWuIsXNCPEyLB1bzEwqUiKMCzS69O7B7ozjFxYWwoq07b7zC2AEg8ynuMtf+T46n+Yt+pEWfjDZghvmQXhB6mO2Lb+PFQ6A4JiIgR8GP+XBofgNvgpJZU4bTGaee2GUiPuZbOAqCFvFzscNh1hffBuIwyws4Ii683bFbHL85bBzhWbh0lXFRqrgwtaSPeANN+2v7GF4U3Blw1W2DjPtgxA4QY7fH1C9IHKsQYOCyf45kiHaPHk+nNp3vp+ZN6hmX8k7+aC69PHEqPTfobrrq0hO7Kgp/SgIlvR4dYewIKHjcR9QXF5He2f/FgJ8leVBSvuLYlDjOJPIp/BG7hsQxqNR/do8U93AtHoSbXnxnkbuVxJGh8W/NInM3gwlKHul9PfW84fKgLmU1tcI/0UZxoETsmHl//JCgO4EK9hkOKBH1ZMZjuKDkz227qdOtA42/e7EryzwKZsYpdnFs3rLTuKhZjOXho981dpmIsuITDiix4m/4w1kLjRjEsSSxqwwfKAAFoAAUgAJQAApAASgABcJTwFeg5OCho8YOBvEQ/vgDN1GPbpcGqRUKlJg7FsQdAGJnQ3Ef85t284iDjCXFgZKnRr5NUz/9hr76aARVT60cACUFv7E22xf3HYg37Yj7HMSDd8HPs2Pep/dnfEWfvPk0nXl67cDRm8Kg5MXxH9Lb0+Yb92iIo0Pmx6wvdpSYuybEEYGnXn4rcPynYH/Fvc2msBYjX5tKkz6ca+z2EHr9/udO6tJzcNA38qYGxeloHtUwIU/h2AvWKwmUXNS9n7HjRBxhKvgRb0Vpd02fwM4XE5QU5YGM12KXytr1f5DYoSTulzHfjCQexBd98oqxc6i4h2uxc+TSGx4JHJ8p2N9XS1YYd2sM7tPDuIPEBCVFXYgrq2mofGT8E20UdfTGfHOO+P1ZDetSs0anG3mZR1DEz8MBJbLjMRxQIry6/p4njTlDwDgB5cyPACRPvfy28aaswp9IQYkVf8NzFy6nR4dNCOzICuUhfg8FoAAUgAJQAApAASgABaBAsAK+ASXiYffuR14y7qfoe3e3wKWYBeUIBUrETomHhoyhB+7oSvfe2qXYsSR2rfynW9+gb5VDDbziQIl5D4QMKJk2ZxE9OeKtAHQo2KfYkSF2EXz46hDjobS4HSXiHhBxz0dh2CDeyCIuUjVBifngKy6wFHqc1eA0qpFaxbgEVXybLQtKxHEJcXGreZzJPJ5SsL551OTBO6456dt8kaOI4YqLzzXeIiTurRD3WYjjN0V9SgIl4iiIuFDUvB+j4AOx2Lli7uJRBSWF4xIAT9zfIbR4d+xg49LW4kCJeGAXO24K3ltjtid28zww6BUyd5CUBEpkNQ01bmX8Kw6UiN0x4riT+L+Cd6iI3S8ih3BASTjjMRxQYu6kevS+G+j26y4LksNsR+yc6tapHdWpmUoVK5SlTj0eN8ZpJDtKrPgbNne0mUfXQnmI30MBKAAFoAAUgAJQAApAASjgQ1AivoW/o98Lxl0X4kiKOJpS1KckUCLuALn5/uHGN8uTRj5G5zVvWOxYEhd3Xtj1xGWxhY/3FKwkHhTFXQfiYwUoMR8WBVAw395h9mce4TEvPlUFJSY4EZetCoBgfsx7Q2RBiahnviFI7OS48d6nDd2+nT2WSsXHGc2aR0rEa5bPO6d43cX9HwK0iN0+YtdPUR8TlBR1dOnG+4YZF7+u+vKNQN+ijQ2bt9M1dw4xdmmI3RqRgBJxzEjcZ2G+OadwbBPf+ZTGTp5BQx++na7r3D4ASh7ufR3dccMVgeLmxaPiyJj5KmHzl/8euThxOW5JoERWU5kJM5R/oo2idpQUbFvcWSLiFZBN+L/ss/FUrkyysaPE+F2hXT6FL3MNZzzKghLzzhpxB8grTz8Y9Kpo88JmcXHxx68NDZJJXCpbFCgp7KWoVPiOEiv+hgFKZEYtykABKAAFoAAUgAJQAApAgeIV8PyOEvFNtbh7Qjx8mcc7ipOjOFAi3j4zfNQ7xgWJ5sNyqEFlviFHHFOZ8Hz/k15hK47nDHruDeNbZ/FqXCtAiXlERBxFmff+i4GHffFq44u79zcuzlw4daTxwKcKSswH1YLQSIAfcXTn/RkLpHeUCB1ff+8zeuXNT4xv5cXDafdO7enJR24PSCzuDREeitc4Txn9OMXFnoBL4iMeosVrkAUYEa8Pvn/QaAPcjH+2n3GExfyIC2bFK13Fp1H72w0/Cl5MK34u7jcR95yI1yyLWMzPs2PeM3Iyx08koEQctREQ4PEHbwq8jtpsX9x9c0f/F403vnw04Qnjctffft9mvNmmqPFmvjq54K4fob14fbXYMWW+yakkUCKraahxLuOfKFMYlIi/R3HxaUHIJsqJHVti55b5Fhjx9hlxka7Y5SPGr/iIHVv3PDbCyNW82yac8SgDSsydMmJn0rQ3ngq8WcfUQ9xJctXtJ14tLl4xbn7EG6IEOCp49KYkLwuDEiv+hgFKZEYtykABKAAFoAAUgAJQAApAgeIV8DwoEUcaxEOaeOBp2+rfnQ+mJDWqVQ58Y2+CEvEmkdKlk+jgoSO0c/e+wGt7xRtiRgy9V+qVm+JSSfHQbr6aV7xJ5fQ6NejvfQeM+ykEdBGfH+dNNI6OWAFKRHtjJn1Cr737mXG85oYuFxl3brz69izjDR0FX8OrCko+nv01PT3qHUPXzpe0oaioE681FQ+v4hPOjhLz7hfTk8mjBhhvFyn4eXDwK8bbdMS9KQJiJCcl0m+/b6UvvvmBmjU5w3itq9jJIy5dFdqK+pdffC6JnRyfL/ieVq3dSOsWvWU0aY4JcXylYb1TaNeeNBLf9ou3DImdQOJz/+1XU9061en7VeuNO2JEvzMmDzO8jxSU3HDv00bb4uFawBDxlpJ1G7fQsh9/MUBewTttBABqd01fAwSJo03iFbgxMTGGpybkEHea3N+zKyUnJhhvABJ5i98P6Xer0U9JoET8XkZTmclTxr/CoMQEDcKndm3OptQqFWj9pm30xvtzjHtA3n5loLH7Rrw6V8AEAR46XdKGtu/8m8TxFPNjgpJwxmMoUCL+Zjre9KjxNyPgWuMzTwuSoWG9OnRe8wYk7rQRvon5omH9OrTpjx3GhcfiUxCUlORlUa8HVv0bBiiRGbUoAwWgABSAAlAACkABKAAFilfAN6CkOAkEUBD3doiP+a20WVYADPEwe/qpNanr5W2NXQvmURmZQSVgyWdfLTOOjohjPwU/57dsTN07t6cOF5xj7PAoDpQ888q79MHMhbRg6kgjFvGq3lZX9A667LRgu2JnwevvzQm8hlb8TuQhLvQUD+LmZ/Qb042H0sKv8TUv5yz81hvzktd5779AtWukGK8hHfrSlMCDoWhXaCkuihVgYdyzfeg/bU7s4JD5mK9HFg//33wy+iSdxRtjpnw8jyZ/OM+AB+ZH7AwRx4zMt9yICzbHTZ5haFbQR+HfoIduMX4kHtLF22HE24RMfQSwEh8BegYMnxgAPuJnYtfD8AF3Be5HCeVBUfkKuCJ2y8xZ8F3QfRxm/wKGCMhhHjcSPxevdRYeiZ0m4iMeyMWbf8RHXNw66Lk3g7QQd3s8dMc1gVftmkBlaP/bjFceF/7IamqFf9+v/JXufPjFwEWz4l6Wp0eJi1BPeGB+xN+YiLdW9arGj4Ru4tiYyMX83HxNB9qyfY/xs+/nvEplSieFNR6LAyUChI5++gE6fPQ4te50X7Fpm2+VWrV2k/E6bAFLzI8AbFM+/oJqVqscuKOkJC/N42IzJg2j+nVrGc2o/g2boOSlIfcad/fgAwWgABSAAlAACkABKAAFoEB4CngelIQnh32lxd0SO3fvNY6DpFatRIkJ8fZ19v+v8xXfiotv+mNjY41dHwWPoVjZsTgGIV6LWqli2cCrba1sv3BbYteIOJ5w6PAx4yiGeEgu6iMeNsWOgKj/v+OkapUKRQIu8UB8+MgxSqlcgeLiYoOaEX2IvGpUq3LSsQvV/ASgEG0L4CJeB1y+XOkSmxQai7zF66EL3nEiQJwAcKI9AYwKQpZwYpTVNJw2ZcuaPgkthJ/iXpKiPN/z934SEKxOrVRKKFX8347T4zEzK5vEcRvxEXAn1N91cV4WpZdTf8OyXqEcFIACUAAKQAEoAAWgABTwiwIAJX5xGnlCASgABaAAFIACUAAKQAEoAAWgABSAAiEVACgJKREKQAEoAAWgABSAAlAACkABKAAFoAAUgAJ+UQCgxC9OI08oAAWgABSAAlAACkABKAAFoAAUgAJQIKQCACUhJUIBKAAFoAAUgAJQAApAASgABaAAFIACUMAvCgCU+MVp5AkFoAAUgAJQAApAASgABaAAFIACUAAKhFQAoCSkRCgABaAAFIACUAAKQAEoAAWgABSAAlAACvhFAYASvziNPKEAFIACUAAKQAEoAAWgABSAAlAACkCBkAoAlISUCAWgABSAAlAACkABKAAFoAAUgAJQAApAAb8oAFDiF6eRJxSAAlAACkABKAAFoAAUgAJQAApAASgQUgGAkpASoQAUgAJQAApAASgABaAAFIACUAAKQAEo4BcFAEr84jTyhAJQAApAASgABaAAFIACUAAKQAEoAAVCKgBQElIiFIACUAAKQAEoAAWgABSAAlAACkABKAAF/KIAQIlfnEaeUAAKQAEoAAWgABSAAlAACkABKAAFoEBIBQBKQkqEAlAACkABKAAFoAAUgAJQAApAASgABaCAXxQAKPGL08gTCkABKAAFoAAUgAJQAApAASgABaAAFAipAEBJSIlQAApAASgABaAAFIACUAAKQAEoAAWgABTwiwIAJX5xGnlCASgABaAAFIACUAAKQAEoAAWgABSAAiEVACgJKREKQAEoAAWgABSAAlAACkABKAAFoAAUgAJ+UQCgxC9OI08oAAWgABSAAlAACkABKAAFoAAUgAJQIKQC7EDJrrT0kEGjgL0KpFZIoL8OZlB+vr39oHX7FIiPjaayyXG071CmfZ2gZdsVKJccR9k5eXQ8M9f2vtCBfQqkVkykvw+kUx7mVPtEtrnlSmVLUam4aEo7nEmZ2Xk294bm7VJAzKk5ufl0LCPHri7QrgMKpJRPoL2HMygPf4oOqG1PF2KdWiYpltIOZ9nTAVp1RAFuc2r1SomW5g1QYqmc3mgMoER/HwFK9PdQZABQ4g0fAUr09xGgRH8PzTkVoER/LwFK9PcQoER/DznOqQAl3hhXrLMAKGFtj1RwACVSMrEvBFDC3iKpAAFKpGRiXQighLU90sFx+/ZTOnAUDFIAoET/AQFQor+HACUueIijNy6IXqhLgBL3PVCNAKBEVUEe9QFKePigGgVAiaqC7tcHKHHfAysiACixQkX32wAocd8D1QgASlQV5FGf25yq1Y6SnNxcio6KpujoKGk3AUqkpbKtIECJbdI61jBAiWNS29oRQImt8jrWOECJY1Lb1hFAiW3SOtowt0W9o8l7qDOAEv3NBCjR30ORAbc5VRtQkp6RRdff8yT1uqUzdbqkdWA0LFy6ih4aMuak0bHqyzeoVHwcAZS4/4cDUOK+B6oRAJSoKsijPkAJDx9UowAoUVXQ/foAJe57YEUE3Bb1VuTkxzYASvR3HaBEfw8BSiL0cMTEj2nKR/OM2i8MvicIlCxYupIGPvsGTX/jqaDWa9eoSlFRUQAlEWpuZTWAEivVdKctgBJ3dLe6V4ASqxV1pz2AEnd0t7JXgBIr1XSvLYAS97S3smeAEivVdKctgBJ3dLe6V25zqhY7Sg4eOkoZWVl0033DqH+v604CJU+9/BYtnTW2SK+wo8TqIRx+ewAl4WvGrQZACTdHIosHoCQy3bjVAijh5kj48QCUhK8ZxxrcFvUcNdIhJoASHVwqOUaAEv09FBlwm1O1ACWm9R1vfJQevOOak0BJnyFjqUvH86lUqXhq0bQ+dWzfkmJjYoxqACXu/+EAlLjvgWoEACWqCvKoD1DCwwfVKABKVBV0vz5AifseWBEBt0W9FTn5sQ2AEv1dByjR30OAEkUPiwIla3/7k+Yv+oHKlUmmXX+l0dRPv6Gbul5Mg/v0MHpLO5Kl2CuqqypQsXQ8HTiaRfmqDaG+awrERUdRUkIsHTqe7VoMlnScn08UJX8ZtCV9MmokuVQM5eblU0Z2HqOoEEq4ClQsE08Hj2QRXAxXOT7lyybFUVxMFB0+nk3ZufjXkY8z4UVyYk4lysjODa8iSrNSoEJyPB06nkV5ef5eI7AyJcxgxDo1MSGGDh/PCbMminNSgNucWqlMvKXyROXniycRez5FgZLCPc2Yu4SGvDiZfl44ydhVkpmFf7zscUO+1fi4aMrKySOQEnnNuJWMio6i2Jgoytb8AVs8j8T4l5NQbGy0sRA0FoP4aKtAfFwMZeXkYk7V1kGiuLhoio46Mafm2bds0lghPUIXc6pY9uYCdulhWDFRmutUAb38vEbQ2URjnRodRdnieQMfbRXgNqeWij9xQsWqj+ugZOnytdR7wMu0cv7rlFAqHkdvrHJWoR0cvVEQj0lVHL1hYoRiGDh6oyggk+o4esPECIUwcPRGQTxGVXH0hpEZCqHg6I2CeEyq4ugNEyMUw+A2p2pxR0lObi7l5+VTp1sHUu9br6JOHVpTXFysYcUHMxdS/bq1qGG9OnToyFF69OmJFBcbQ5NHDTB+jztKFEesBdUBSiwQ0eUmAEpcNsCi7gFKLBLS5WYASlw2wILuAUosEJFBE9wW9Qwk0TIEgBItbQsKGqBEfw9FBtzmVC1ASf8nXzXuISn4mfPOc3Rq7Wo08rWpNOnDuYFfndWwLr00pDfVrFYFoITJ3wxACRMjFMIAKFEQj1FVgBJGZiiEAlCiIB6TqgAlTIxQDIPbol4xHd9WByjR33qqDJmCAAAgAElEQVSAEv09BCixycOMzCzam3aQyiQnUflypYN6wY4Sm0QPo1mAkjDEYloUoISpMWGGBVASpmBMiwOUMDUmjLAASsIQi3FRgBLG5oQRGkBJGGIxLQpQwtSYMMPiNqdqsaMkTI0BSlQEs6EuQIkNojrcJECJw4Lb1B1AiU3COtwsQInDgtvQHUCJDaK60CS3Rb0LEniiS4AS/W0EKNHfQ5EBtzkVoMQb44p1FgAlrO2RCg6gREom9oUASthbJBUgQImUTKwLAZSwtkc6OG6LeunAUTBIAYAS/QcEQIn+HgKUuOAhjt64IHqhLgFK3PdANQKAElUFedQHKOHhg2oUACWqCrpfH6DEfQ+siACgxAoV3W8DoMR9D1QjAChRVZBHfW5zKnaU8BgXno4CoER/ewFK9PfQJPXZOXl0PDPXGwn5NAuAEv2NByjR30OO3356Q1XnswAocV5zq3sEKLFaUXfaAyhxWHfsKHFY8CK6Ayhx3wPVCABKVBXkUR87Snj4oBoFQImqgu7XByhx3wMrIuC2qLciJz+2AVCiv+sAJfp7yBE+Y0eJN8YV6ywASljbIxUcQImUTOwLAZSwt0gqQIASKZlYFwIoYW2PdHAAJdJSsS4IUMLaHqngAEqkZGJfiNucClDCfsjoHyBAif4eApTo76FJ6nH0Rn8vAUr09xCgRH8POX776Q1Vnc8CoMR5za3uEaDEakXdaQ+gxGHdcfTGYcGL6A6gxH0PVCMAKFFVkEd97Cjh4YNqFAAlqgq6Xx+gxH0PrIiA26Leipz82AZAif6uA5To7yFH+IwdJd4YV6yzAChhbY9UcAAlUjKxLwRQwt4iqQABSqRkYl0IoIS1PdLBAZRIS8W6IEAJa3ukggMokZKJfSFucypACfsho3+AACX6ewhQor+HJqnH0Rv9vQQo0d9DgBL9PeT47ac3VHU+C4AS5zW3ukeAEqsVdac9gBKHdcfRG4cFL6I7gBL3PVCNAKBEVUEe9bGjhIcPqlEAlKgq6H59gBL3PbAiAm6Leity8mMbACX6uw5Qor+HHOEzdpR4Y1yxzgKghLU9UsEBlEjJxL4QQAl7i6QCBCiRkol1IYAS1vZIBwdQIi0V64IAJaztkQoOoERKJvaFuM2pACXsh4z+AQKU6O8hQIn+HpqkHkdv9PcSoER/DwFK9PfQ6W8/dx3dQct3/Y8qJ1ah1jUupNjoWG+IyCALgBIGJiiGAFCiKCCT6gAlDhuBozcOC15EdwAl7nugGgFAiaqCPOpjRwkPH1SjAChRVdD9+gAl7ntgRQROLep/+mslDVnSn3Lycoywm1ZtTs+0G00x0TFWpOH7NgBK9B8CACX6e+g0fJZRDDtKZFRCGSUFAEqU5GNRGaCEhQ3KQQCUKEvIogGAEhY2KAUBUKIkH5vKToGS55Y9QUu2LwzKe9ylU6huhXpstNA5EIASnd07ETtAif4eApS44CF2lLggeqEuAUrc90A1AoASVQV51Aco4eGDahQAJaoKul8foMR9D6yIAKDEChXdbwOgxH0PVCMAKFFVkEd9p+ZU2Wyxo0RWKZSLWAGAkoilY1MRoISNFUqBAJQoycemMkAJGysiDgSgJGLpWFV0alG/aNtX9MJ3TwZyr1GmFk287D3cU2LRaAAosUhIF5sBKHFRfAu7dmpOlQ0ZoERWKZSLWAGAkoilY1MRoISNFUqBAJQoycemMkAJGysiDgSgJGLpWFV0clG/+cBGWrN3tXGZa/PUVpQcV5qVFjoH4wYoyc3LpS2HNlOVpBQqW6qczvKxiB2ghIUNykE4OafKBAtQIqMSyigpAFCiJB+LygAlLGxQDgKgRFlCFg0AlLCwQSkIgBIl+dhU5raoZyOMZoE4DUp2HtlOAxf3pb3H9hhK3dzoDrql8Z2aqcYrXIASXn5EGg23ORWgJFInUU9aAYASaanYFgQoYWtNWIEBlIQlF9vCACVsrZEODKBEWirWBbkt6lmLxTg4p0HJC98/RYu2fhlQJDoqmt67ahZVSKjEWCXeoQGU8PZHNjpucypAiaxzKBexAgAlEUvHpiJACRsrlAIBKFGSj01lgBI2VkQcCEBJxNKxqshtUc9KHI2CcRqU3Df/Nvrz4O9BCj3ffiw1TWmukWq8QgUo4eVHpNFwm1MBSiJ1EvWkFQAokZaKbUGAErbWhBUYQElYcrEtDFDC1hrpwABKpKViXZDbop61WIyDcxqUfPDrFHp37ZsBRSomVqYpV06j+Jh4xirxDg2ghLc/stFxm1MBSmSdQ7mIFQAoiVg6NhUBSthYoRQIQImSfGwqA5SwsSLiQABKIpaOVUVui3pW4mgUjNOgJD37OH2+eRat27eGUpJT6cJaF1PDyk00UoxfqAAl/DyJJCJucypASSQuok5YCgCUhCUXy8IAJSxtCTsogJKwJWNZAaCEpS1hBQVQEpZcbAtzW9SzFYp5YE6DEuZyaBkeQImWtp0UNLc5FaDEG+OKdRYAJaztkQoOoERKJvaFAErYWyQVIECJlEysCwGUsLZHOjhui3rpwFEwSAGAkhNybEj7lX7Z9zPVKVeXzkltpdUoASjRyq5ig+U2pwKUeGNcsc4CoIS1PVLBAZRIycS+EEAJe4ukAgQokZKJdSGAEtb2SAfHbVEvHTgKApQUGgOfbppOE1aNCvy08xnX0n3N+9s2Uvan76NlO5dSYmwitalxISXGJSn1BVCiJB+bytzmVIASNkPDu4EAlOjvLUCJ/h6KDABKvOEjQIn+PgKU6O+hOafm5ObTsYwcbyTk0yywo4To7rk30o4j2wIjQLyy+NNuiygmOsbyUbH98Fbqt6AXHcs+arSdklyNXu34NiXFJUfcF0BJxNKxqghQ4rAdu9LSHe4R3RVWAKBE/zEBUKK/hwAl3vBQZAFQor+XACX6ewhQ4g0PjQf18gm093AG5eV5J6dwM3ESlLz7yyT6YN3koBAHtH6S2te+JNywA+UBSiKWjlVFgBKH7QAocVjwIroDKHHfA9UIAEpUFeRRHztKePigGgVAiaqC7tcHKHHfAysi4LaotyInP7YBUEI0ec0Emrb+vYD959W4gIa2fd6W4QBQYousnmiU25yKozeeGFa8kwAo4e2PTHQAJTIq8S8DUMLfI5kIAUpkVOJdBqCEtz+y0XFb1MvGjXLBCgCUEOXm5dL6tLW0Yf96qlXmFDo7pQXFx8TbMlQ27l9Pfb66K9B2fEwpeu+qWVQmvmzE/WFHScTSsarIbU4FKGE1PLwZDECJ/r4ClOjvocgAoMQbPgKU6O8jQIn+HppzKu4o0d9LgBLnPdx1dAet2vOjcZnr2SnnUKXEKkpBAJQoycemMkCJw1bg6I3DghfRHUCJ+x6oRgBQoqogj/oAJTx8UI0CoERVQffrA5S474EVEXBb1FuRkx/bACjR33WAEv095AifsaPEG+OKdRYAJaztkQoOoERKJvaFAErYWyQVIECJlEysCwGUsLZHOjiAEmmpWBcEKGFtj1RwACVSMrEvxG1OBShhP2T0DxCgRH8PAUr099Ak9dk5eXQ8M9cbCfk0C4AS/Y0HKNHfQ47ffnpDVeezAChxXnOrewQosVpRd9oDKHFYdxy9cVjwIroDKHHfA9UIAEpUFeRRHztKePigGgVAiaqC7tcHKHHfAysi4LaotyInP7YBUKK/6wAl+nvIET5jR4k3xhXrLABKWNsjFRxAiZRM7AsBlLC3SCpAgBIpmVgXAihhbY90cAAl0lKxLghQwtoeqeAASqRkYl+I25wKUMJ+yOgfIECJ/h4ClOjvoUnqcfRGfy8BSvT3EKBEfw85fvvpDVWdzwKgxHnNre4RoMRqRd1pD6DEYd1x9MZhwYvoDqDEfQ9UIwAoUVWQR33sKOHhg2oUACWqCrpfH6DEfQ+siIDbot6KnPzYBkCJ/q4DlOjvIUf4jB0l3hhXrLMAKGFtj1RwACVSMrEvBFDC3iKpAAFKpGRiXQighLU90sEBlMhJlZWbRVsP/UE1ytSipLhkuUoOlgIocVBsm7oCKLFJWIeb5TanApQ4PAD82B1Aif6uA5To76FJ6nH0Rn8vAUr09xCgRH8POX77yVHV1X+toOe+e4KOZB6i2OhY6tdqEF10SkdWoQKUsLIjomAASiKSjV0lgBKHLcHRG4cFL6I7gBL3PVCNAKBEVUEe9bGjhIcPqlEAlKgq6H59gBL3PbAiAm6LeitysrqNvgt60Ya0dYFmk+NK0/Rr5lvdjVJ7ACVK8rGoDFDCwgblILjNqdhRomwpGgilAEBJKIX4/x6ghL9HMhEClMioxL8MQAl/j0JFCFASSiE9fs9tUc9RtW4zO9KxrKNBob1/1WyqmFiZTbgAJWysiDgQgJKIpWNVkducClDCanh4MxiAEv19BSjR30ORAUCJN3wEKNHfR4AS/T0059Sc3Hw6lpHjjYRsyOLF75+mb7b+u4PkjIpn0phLJtnQU+RNApRErh2XmgAlXJxQiwOgRE2/sGvj6E3YklleAaDEckkdbxCgxHHJbekQoMQWWR1vFKDEcckt7xCgxHJJXWmQ26LeFRFCdLrv+N/05ZbPacO+X6lWuTrU8dROVKvsKaxCBShhZUdEwfgZlPx9bA99t2splStVntrUaEfxMfERacihErc5FTtKOIwKj8cAUKK/wQAl+nsoMgAo8YaPACX6+whQor+H5pyKHSX6ewlQor+HfgUlG9J+pQHfPEiZuRmGiWLH1oiLJmgLSwBKHP5bxI4ShwUvojuAEvc9UI0AoERVQR71AUp4+KAaBUCJqoLu1wcocd8DKyLgtqi3Iic/tgFQor/rfgUlY1a8SPM2zw4y8Pn2Y6lpSnMtTeU2p2JHiZbDSK+gAUr08quoaAFK9PcQO0q84aHIAqBEfy8BSvT30JxTsaNEfy8BSvT3EKDkXw8BSqwbzwAl1mmJlopRAKBE/6EBUKK/hwAl3vAQoMQbPgKUeMNHbt9+ekNV57MAKHFec6t79CsoWbH7exqy5OGAnOJtUpOu+JgSYhOsltiR9rjNqQAljtju704ASvT3H6BEfw8BSrzhIUCJN3wEKPGGj9wW9d5Q1fksAEqc19zqHv0KSoSOWw79QT//vdK4zLV5SisqW6qc1fI61h63ORWgxDHr/dsRQIn+3gOU6O8hQIk3PAQo8YaPACXe8JHbot4bqjqfBUCJ85pb3aOfQYnVWrrZHrc5FaDEzdHgk74BSvQ3GqBEfw8BSrzhIUCJN3wEKPGGj9wW9d5Q1fksAEqc19zqHgFKrFbUnfa4zakAJe6MA1/1ClCiv90AJfp7CFDiDQ8BSrzhI0CJ/j7m5efR19tn0/KdP1BKUk26pt71JO4HwEc/BQBK9POscMQAJfp7aK5TOV2QDVDijXHFOguAEtb2SAUHUCIlE/tCeD0we4ukAsRbb6RkYl0IoIS1PVLBvbP2TZq64S3KzyfKy8un2mXr0ITL3qXoqGip+ijERwGAEne82H54q3HpaJWkFOUAAEqUJWTRAHaUOGzDrrR0h3tEd4UVACjRf0wAlOjvoUnqs3Py6HhmrjcS8mkWACX6Gw9Qor+H982/jbYd2RwAJSKjKZ2mU2pyNf2T81kGACXOGp6efZwGLu5LG9LWGR23qdmOBrUeRjHRMREHYiUoOZZ9lMatfJl+3L2Mqial0u1N7qFW1dtEHBsqyisAUCKvlSUlAUoskVGpEYASJflYVAYoYWGDchDYUaIsIYsGAEpY2KAUBECJknwsKv93cX/6ae8PAVAiHvKmdZ1PibGJLOJDEPIKAJTIa2VFyVkbp9Jrq18Jamp4u5F0Tuq5ETdvJSiZuGo0zd40LRBLQmwivdt5JpWOLxNxfKgopwBAiZxOlpUCKLFMyogbAiiJWDo2FQFK2FihFAhAiZJ8bCoDlLCxIuJAAEoilo5NxRW7v6cXlg+h49npBiy5ou7V9MA5j0jFt3jbAnrvl0l0MPMAta99Cd119gNUKqaUVF0Usl4BgBLrNS2pxTErXqR5m2cHFel5Vm+6rkGPiAOxEpQ89vUDtHbv6qBYnm8/lpqmNI84PlSUUwCgRE4ny0oBlFgmZcQNAZRELB2bigAlbKxQCgSgREk+NpUBSthYEXEgACURS8eqYnJiFG3ct4nKx6dSclxpqdh2Hd1Jd829nvIFXfnn06vZQ9S13vVS9VHIegUASqzXtKQWf9i1jIYufTSoyKQrp1L10jUiDsRKUDJ+5cs05/cZgVjEvUMfXf05lYkvG3F8qCinAECJnE6WlQIosUzKiBsCKIlYOjYVAUrYWKEUCECJknxsKgOUsLEi4kAASiKWjlXFSBb1i7Z9RS9892RQHhfWupgGtnmaVW5+CgagxFm3BSSc/+ccWr3nR0qMS6QW1VpT25rtlYKwEpTsObabJqwaSev2raEqiSnU8bROdHW965TiQ2U5BSKZU+VajqwU3noTmW6oFYYCACVhiMW0KEAJU2PCDAugJEzBmBYHKGFqTBhhAZSEIRbjopEs6nce2U53zb0hKKs7m95P3c68iXGm3g4NoER/f60EJfqroW8GkcypdmYLUGKnumjbUACgRP+BAFCiv4ciA4ASb/gIUKK/jwAl+ntozqk5ufl0LCMnrIQ++vVtWrjlC+OOkrNTWhh3m5QrVT6sNlDYOgUASqzT0q2WAEqcV14cI1y+61uqnFiFWte4kGKjY5WDAChRljC8BnD0Jjy97CgNUGKHqs62CVDirN529QZQYpeyzrYLUOKs3nb0BlBih6rOt8ltUe+8At7oUUdQIh5SxetrKyZUsuwhVWc3AUqcde+nv1bSkCUPU05ettFx06rN6Zl2o5Ve8awCn+3KHjtK7FIW7QYUACjRfzAAlOjvofkPUHZOHh3PzPVGQj7NAqBEf+MBSvT3MJxF/fbDWykhNoGqJKV4I3GPZaEbKFm392d6fFGfwENqvUoNaeRFE5UfUnW2FaDEWfeeW/YELdm+MKjTcZdOoboV6ikFwg0+A5Qo2YnKMgoAlMioxLsMQAlvf2Sjw44SWaV4lwMo4e2PTHQAJTIq8S8TalGfnn2cBi7uSxvS1hnJtKnZjga1HubrB1qOruoGSl7+4Rla8OfcIClHdniNGlRqzFFeR2ICKHFE5kAnACWR6R2VX/B9Z5G1YWktHL2xVM6IGgMoiUg2VpUASljZEXEwACURS8eqIkAJKzsiCkYnULI+7Reau3k2ZeVkUsfTOlPz1JYR5ezFSqFAybTf3qfJP78alPrwdiPpnNRzvSiHtjkBlGhrXSBwgBJnPSz89q4aZWrRxMveU76nJNSc6myWRNhR4rTiPuwPoER/0wFK9PdQZABQ4g0fAUr091EXUCKOjNw3/7bAFn+h/KgOr9OZlRrpb4IFGYRa1Bf1zX/Ps3rTdQ16WNA7mrBKAd1AybKdS2jYtwMD6VdMrExvd/pE+SHVKj3daAegxHnVNx/YSGv2rjYuc22e2oqS40orBxFqTlXuIMwGAErCFAzFw1cAoCR8zbjVACjh5khk8QCURKYbt1oAJdwcCT8eXUDJnN9n0viVI4ISvKnRHdSj8Z3hJ+3BGqEW9T/sWkZDlz4alPmkK6dS9dI1PKiGvinpBkqE0uIh9Zd9PxuXuTateg6VLVVOXwMUIt9zbDdl52ZR3YqnUpmkWEo7nKXQGqq6rUCoOdXp+ABKnFbch/0BlOhvOkCJ/h6KDABKvOEjQIn+PuoCShZvW0DPfzc0SPAHznmUrjz9av1NsCCDUIt6cRp9/p9zaPWeHykxLpFaVGtNbWu2t6BnNGGlAjqCEivz17Gt3LxcGrZsEC3f+a0RfuOqZ9HYy8dQRkacjukg5n8UCDWnOi0UQInTivuwP4AS/U0HKNHfQ4ASb3gosgAo0d9LXUBJRk4G9VvYi7Yc3GyIXiUplcZ3nEJl4svqb4IFGXBb1FuQki+bACjRz/ZlO5bQsP/9e/woKiqKHm/7OF1YvZN+ySDigALc5lSAEgxO2xUAKLFdYts7ACixXWJHOsCOEkdktr0TgBLbJba9A11AiSmEub29VtlTbNdGpw64Lep10o5TrAAlnNyQi2Xq+ndpypqJgcIClFzToCvd1eRhuQZQiqUC3OZUgBKWw8RbQQGU6O8nQIn+HooMAEq84SNAif4+6gZK9Ffcngy4LertydL7rQKU6OfxHwd/p/vn3xYESsZdMY5OK302y2SOZx+jnUe20ynlTqP4mHiWMXIIitucClDCYVR4PAaAEv0NBijR30OAEm94KLIAKNHfS4AS/T0059Sc3Hw6lpHjjYR8moVToGTX0R2GwtVL1/Sp0tamvXT71/TD7u+MV5efW+M86ta4C+0/km1tJxa0Ji7Ffm31aMrJy6Ey/3/p7pNtX6CGlZtY0LL3mgAocdjTXWnpDveI7gorAFCi/5gAKNHfQ4ASb3gIUOINHwFKvOEjt0W9N1R1PouUCgm092AG5eXb03dWbhY99e0AWrXnB6ODplWb09MXvoydBRbKzfX1wOLS2WtnXEqZuRmBbBtUbkIjL/732JCFMmjfFLc5FTtKtB9S/BMAKOHvUagIAUpCKaTH73H0Rg+fQkWJHSWhFOL/e4AS/h7JRMhtUS8TM8qcrIDdoKSot0c91GIAXV73KthhkQJcQcn2w1up17ybgrJMji9N07vOtyhzbzXDbU4FKPHW+GKZDUAJS1vCCgqgJCy52BYGKGFrTViBAZSEJRfLwgAlLG0JOyhui/qwE0AFQwG7Qcm7v0yiD9ZNDlK7yxndqXfzvnDAIgW4ghKRXu8vetDWQ38EMr3stM7Up+XjFmXurWa4zakAJd4aXyyzAShhaUtYQQGUhCUX28IAJWytCSswgJKw5GJZGKCEpS1hB8VtUR92AqjgCCjZfGAjPfBlzyC1X7poPDWuwvPiUR2HBWdQIi6e/XrrfNp+aAvVr9yQLj+tC1VIqKijzLbHzG1OBSix3XJ0AFCi/xgAKNHfQ5EBQIk3fAQo0d9HgBL9PTTnVFzmqr+Xdu8oEQot2vYVLd+1zBCrReq5dHGdy/QXjlEGnEEJI5nYhwJQ4rBFuMzVYcGL6A6gxH0PVCMAKFFVkEd9gBIePqhGAVCiqqD79QFK3PfAigi4LeqtyMmPbTgBSvyoq5M5A5Q4qbZ9fXGbU7GjxD6v0fI/CgCU6D8UAEr091BkAFDiDR8BSvT3EaBEfw/NORU7SvT3EqDEeg+/3/ktTVk7kdLS99L5NdrRPc36UFJcsvUd/dMiQMkJITJzM+nNn8YZO5jKl6pAtzS+k9rV7mCb7lY3DFBitaIh2sOOEocFL6I7gBL3PVCNAKBEVUEe9QFKePigGgVAiaqC7tcHKHHfAysi4LaotyInP7YBUGKt6wcy0ujWz66hnLycQMM3NbqDejS+09qOCrQGUHJCjJkbP6bXV48JKBMVFUVvXvExVS9dwzbtrWyY25yKHSVWuou2ilQAoET/gQFQor+HIgOAEm/4CFCiv48AJfp7aM6poXaUHMs+SruP7qQ65epSbHSsNxL3WBYAJdYaumL39zRkycNBjTZPbUXPtBtlbUcAJSfp+dyyJ2jJ9oVBPx/Q+klqX/sS27S3smGAEivVlGgLO0okRLK5CECJzQI70DxAiQMiO9AFQIkDIjvQBUCJAyLb3AVAic0CO9R8qEX9tN/ep7fXvka5eblUIaESDW83kk4rf7pD0aEbWQUASmSVkiu3P30f9fisK+Xl5wUq3NDwNrqtSS+5BiIohR0lJ0Sb/tsHNOnn8UEKvnnFR1SjTK0IVHW+Sqg51emIsKPEacV92B9Aif6mA5To76HIAKDEGz4ClOjvI0CJ/h6ac2pxO0rSc9Kp+8yOBiQxPy2rtaanLxzhjeQ9lAVAifVmzto4leZtnk1pGfuoSZVmdF/zflQlKcX6jv5pEaDkhBCHMg/SuJUj6Ke/Vhh3lIi3KwlIpcsHoMRhp7CjxGHBi+gOoMR9D1QjAChRVZBHfYASHj6oRgFQoqqg+/UBStz3wIoISlrUr0/7hfovuCeomypJqfRO50+s6BptWKgAQImFYrrUFECJS8Jb3C1AicWChmoOoCSUQvb/HqDEfo3t7gGgxG6FnWkfoMQZne3uBaDEboXtbx+gxH6NneihpEW9OHZw++fdae+xPYFQrql/I9199gNOhIY+wlAAoCQMsZgWBShhakyYYQGUhCmYanGAElUF1esDlKhr6HYLACVuO2BN/wAl1ujodisAJW47oN4/QIm6hhxaCLWo37h/PS3atoB2Hd1BDSo1oivqXk1l4styCB0xFFAAoET/4QBQor+HIoNQc6rTWeKOEqcV92F/ACX6mw5Qor+H5j9A2Tl5dDzz3zPz3sjMX1kAlOjvN0CJ/h5yXNR7Q1XnswAocV5zq3sEKLFaUXfaAyhxWHfsKHFY8CK6Ayhx3wPVCABKVBXkUR87Snj4oBoFQImqgu7XByhx3wMrIuC2qLciJz+2AVCiv+vhgJLth7fSj7u/o9TS1em86m0pOipafwE8kgG3ORU7SjwysDinAVDC2R252ABK5HTiXgqghLtDcvEBlMjpxLkUQAlnd+Rj47aol48cJQsqAFCi/3iQBSXLdiyh574bQjl5OUbS59W4gIa2fV5/ATySAbc5FaDEIwOLcxoAJZzdkYsNoEROJ+6lAEq4OyQXH0CJnE6cSwGUcHZHPjZui3r5yFESoMRbY0AWlAxe3I9W7fkhKPkpnaZTanI1bwmiaTbc5lSAEk0Hkk5hA5To5FbRsQKU6O+hyACgxBs+ApTo7yNAif4emnNqTm4+Hcs48e00PnoqgB0levpWMGqAEv095DinApR4Y1yxzgKghLU9UsEBlEjJxL4QQAl7i6QCBCiRkol1IYAS1vZIB8ft20/pwFEwSAGAEv0HhCwomfP7TBq/ckQg4TMqnkmvdHiToqKi9BfBAxlwm1MBSjwwqMQ719MAACAASURBVLinAFDC3aHQ8QGUhNZIhxIAJTq4FDpGgJLQGnEvAVDC3SG5+Lgt6uWiRqnCCgCU6D8mZEFJfn4+bTrwG/2y92dKSa5GzVNaUmJckv4CeCQDbnMqQIlHBhbnNABKOLsjFxtAiZxO3EsBlHB3SC4+gBI5nTiXAijh7I58bNwW9fKRo2RBBQBK9B8PsqBE/0y9nQG3ORWgxNvjjUV2ACUsbFAKAqBEST42lQFK2FihFAhAiZJ8LCoDlLCwQTkIbot65YR82gBAif7GA5To76HIgNucqhUoycnNNd51HR198jmyI0ePk/h9hXJlgkbKrrR0b4wcjbMAKNHYvH9CByjR30PzH6DsnDw6npnrjYR8mgVAif7GA5To7yHHRb03VHU+C51AydtrX6cv/viM4qLjqWv966hrveudF4xhjwAlDE2JICSAkghEE1XSM7Lo+nuepF63dKZOl7QOtHI8PYMGDH+Nvv7fauNnZzWsS2OHP0SVK5Yz/hugJELBLawGUGKhmC41BVDikvAWd4sdJRYL6lJzACUuCW9htwAlForpYlPcFvUuSqF117qAkqXbv6Znlw0J0vrliydSw8pNtNbfiuABSqxQ0f02uM2pWuwoGTHxY5ry0TzDvRcG3xMESt784HOa9tkienfsYEpMiKd7Hx9Fp9auRsMeuwOgxP3xbkQAUMLECIUwAEoUxGNUFaCEkRkKoQCUKIjHpCpACRMjFMPgtqhXTMe31XUBJRNXjabZm6YF+dSr2UPYVUJEACXe+PPlNqdqAUoOHjpKGVlZdNN9w6h/r+uCQEm3u4dSx/Yt6e6bOxkjZP6iH6j/k6/SL99MMV71hB0l7v/hAJS474FqBAAlqgryqA9QwsMH1SgASlQVdL8+QIn7HlgRAbdFvRU5+bENXUDJwi1f0Ijlw4IseqbdaGqe2tKPtgXlDFDijSHAbU7VApSY1ne88VF68I5rgkBJy8t70/ABdxqwRHx+3biFuvd6kpZ9Np7KlUmm3ftxR4nbfzop5RPo70MZlJ/vdiToP1IF4mOiqUxyHKUdzoy0CRb1xBiMOvmKIxaxORFE2aQ4EneUpGfhjhIn9Larj5QKibT3YDrlYU61S2Lb261YphSVioum/UcyKTM7z/b+0IG1ChzKPEjT1r9Pe45voxbVzqMOp3Sm2OhYaztBa44pULV8Au07lEG5ebzXCBk5GTRu5QhasXs5xcfE07nVz6f7mvczvhj2+0esU0snxdL+I1l+l0Lr/MU6NSc3n45n5rDIo1rFREvjiMoXL6i26VMYlIiuGv+nJ736XD9q17qp0evmLTvpqtsH04KPX6ZqKZXwcG6TF+E0K+Zv+0ZFOJGgbMQKRBGJf4Z19zE7N4/iYqIjlkH3iuZaSncfdfdBNX7MqaoKul8ff4vuexBpBHn5edRj5i20MW1joInbzr6dHmj5QKRNop7LCphzqt/XCC7boNa9R9apaiLoX5vbv41WM0hHQYkYDmJHyTOP30WXtmthjI7CO0pw9Mb9PxocvXHfA9UIcPRGVUEe9XH0hocPqlHg6I2qgu7Xx9Eb9z2INII9x3ZTzzndjOoxMVHGFwinlK1Lr3Z8O9ImUc9lBXQ5euOyTKy7x9Eb1vZIB4ejN9JSnVywqKM34o6Sy/7Tiu666UqjAu4oURDYpqoAJTYJ62CzACUOim1jVwAlNorrYNMAJQ6KbVNXACU2CetAs+k56dR9ZkfKzcsNgJJmVVvR8HYjHegdXdihAECJHao62yZAibN629UbQEkEyubk5lJ+Xj51unUg9b71KurUoTXFxZ04C/rG+3No+pzFxltvkhJLUe8BI/HWmwg0trMKQImd6jrTNkCJMzrb3QtAid0KO9M+QIkzOtvZC0CJnera3/brP42lWRs/puhoooSYROrfcgi1qXmh/R2jB1sUACixRVZHGwUocVRu2zoDKIlAWvEWG7FTpOBnzjvPGUDk2PEMeuTpCbTk+5+NXzeufyqNfaYPVa1c3vhvHL2JQHCLqwCUWCyoC80BlLggug1dApTYIKoLTQKUuCC6xV0WBiU5eTn03c4ltC99L51bvS1VL13D4h7RnNUKHMs+Sodz91CdsqdTJu6PtFpeR9sDKHFUbls6AyixRVbHGwUosUnyQ0eOUXZ2DlWuWC6oB4ASmwQPo1mAkjDEYloUoISpMWGGBVASpmBMiwOUMDUmjLAKgpLjmdk0aHEfWvP3aqOF2Og4Gnbhy3R2yjlBLaZnH6dlO5fQ8exjxu6FSolVwugRRe1QgNui3o4c/dAmQIn+LusESjbt/43W7F1NdcrVpXNSW+kvvoUZcJtTtXo9cCQ+AJREopq1dQBKrNXTjdYAStxQ3fo+AUqs19SNFgFK3FDd2j4LgpJf//6NHviyZ1AHF9a6mAa2eTrwMwFJ+iy4i7Yf3mr8LCE2kV655E2qXbaOtYGhtbAU4LaoDyt4hwrvOrrD6Kl66ZoO9Rh+NwAl4WvGrYYuoOTTTdNpwqpRAfk6n3Et3de8Pzc5XYuH25wKUOLaUPBPxwAl+nsNUKK/hyIDgBJv+AhQor+P4YISsZNk2LcDgxLv3uAWuuOse/UXQ+MMuC3qOUmZlZtFTyx5mH7+e5URVvPUVjS07QsUHxPPKUwjFoASdpaEHZAuoOTuuTfSjiPbAvlFR0XTp90WUUx0TNg5e7ECtzkVoMSLo4xZTgAlzAyJIByAkghEY1gFoIShKRGEBFASgWjMqhQEJccys6j3F7fQziPbA1EOaP0kta99SeC/AUqYGfhPONwW9ZxUmrf5Uxqz4oWgkB5v/RS1q92BU5gAJezciCwggJLIdONWi9ucClDCbYR4MB6AEv1NBSjR30ORAUCJN3wEKNHfx8KXuYqLQVft+cG4zPWsKs2oboV6QUkeyTpMd3x+HR3NOhL4+cgOr1GDSo31F0PjDLgt6jlJOXHVaJq9aVpQSFx3QWFHCaeRE1ksuoCSyWsm0LT17wWSPK/GBTS07fORJe3BWtzmVIASDw4ybikBlHBzJPx4AErC14xjDYASjq6EHxNASfiacasRyeuB96fvo9V/rTAuc22W0pJqlq3NLS3fxcNtUc/JgHV7f6ZHvr4vKKQxl0yiMyqeySlMIxaAEnaWhB2QLqAkNy+X1qetpQ3711OtMqfQ2SktWB5HC9sAiypwm1MBSiwyFs0UrwBAif6jA6BEfw9FBgAl3vARoER/HyMBJfpn7b0MuC3quSm8cMsXtGLPciOsVtVa039OuZRbiAAlLB0JPyhdQEn4mfmrBrc5FaDEX+PPlWwBSlyR3dJOAUosldO1xgBKXJPe0o4BSiyV05XGAEpckd3yTrkt6i1P0CcNYkeJ/kYDlOjvofmFXk5uPh3LyGGREEAJCxu8HQRAif7+ApTo76H5D1B2Th4dz8z1RkI+zQKgRH/jAUr095Djot4bqjqfBUCJ85pb3SNAidWKutMeN/gMUOLOOPBVrwAl+tsNUKK/hwAl3vBQZAFQor+XACX6ewhQ4g0PRRYAJfp7CVCiv4cc51SAEm+MK9ZZAJSwtkcqOIASKZnYF8LRG/YWSQUIUCIlE+tCACWs7ZEOjtu3n9KBo2CQAgAl+g8IgBL9PQQoccHDXWnpLvSKLgsqAFCi/3gAKNHfQ/MfIBy90d9LgBL9PXQalGw/vJXiYuIpNbma/uIxygCghJEZCqEAlCiIx6QqQAkTIxTD4DanYkeJoqGoHloBgJLQGnEvAVDC3SG5+LCjRE4n7qUASrg7FDo+p0BJevZx+u+Sh+nXfWuMoM6t0ZaGtHmWYqJjQgeJEiEV4LaoDxkwChSpAECJ/gMDoER/D80v9HCZq4NeYkeJg2IX0xVAifseqEYAUKKqII/6ACU8fFCNAqBEVUH36zsFSj7/fRaNW/lSUMKD2gyjC2pd5L4IHogAoMQDJuKOEk+YCFDiCRuJ25yKHSXeGFesswAoYW2PVHAAJVIysS8EUMLeIqkAAUqkZGJdyClQMmbFizRv8+wgLW5qdAf1aHwna310CY7bol4X3bjFiR0l3BwJPx6AkvA141iD25wKUMJxlHgsJoAS/Q0FKNHfQ5EBQIk3fAQo0d9Hp0DJ6r9W0KBFfYIEG9/xbTqt/On6i8ggA26LegaSaBkCQImWtgUFDVCiv4fmOhVHbxz0EkdvHBS7mK4AStz3QDUCgBJVBXnUByjh4YNqFAAlqgq6X98pUJKfn09fbZlLK3cvp/jYUtSqWmscu7HQfoASC8V0sSmAEhfFt6hrgBKLhHS5GW5zKnaUuDwg/NA9QIn+LgOU6O+hSerx1hv9vQQo0d9Dp0CJ/krxzoDbop63WnyjAyjh641sZAAlskrxLsdtTgUo4T1ePBEdQIn+NgKU6O8hQIk3PBRZAJTo7yVAif4emnMqp23i3lDV+SwASpzX3OoeAUqsVtSd9gBKHNYdR28cFryI7gBK3PdANQKAElUFedTH0RsePqhGAVCiqqD79QFK3PfAigi4LeqtyMmPbQCU6O86QIn+HnKEz9hR4o1xxToLgBLW9kgFB1AiJRP7QgAl7C2SChCgREom1oUASljbIx0cQIm0VKwLApSwtkcqOIASKZnYF+I2pwKUsB8y+gcIUKK/hwAl+ntoknrcUaK/lwAl+nsIUKK/hxy//fSGqs5nAVDivOZW9whQYrWi7rQHUOKw7jh647DgRXQHUOK+B6oRAJSoKsijPnaU8PBBNQqAElUF3a8PUOK+B1ZEwG1Rb0VOfmxDJ1Ai3mT14+7vaPuRrdQ8tRWdWq6uHy07KWeAEm8MA25zKnaUeGNcsc4CoIS1PVLBAZRIycS+EEAJe4ukAgQokZKJdSGAEtb2SAfHbVEvHTgKBimgEyh58fun6Zut8434o6KiqH/LQdTh1Ct87yhAiTeGALc5FaDEG+OKdRYAJaztkQoOoERKJvaFAErYWyQVIECJlEysCwGUsLZHOjhui3rpwFFQS1ByNOsIdZ95WVDs9Ss1otEdXve9owAl3hgC3OZUgBJvjCvWWQCUsLZHKjiAEimZ2BcCKGFvkVSAACVSMrEuBFDC2h7p4Lgt6qUDR0GAEo+NAYASbxjKbU4FKPHGuGKdBUAJa3ukggMokZKJfSGAEvYWSQUIUCIlE+tCACWs7ZEOjtuiXjpwFNQSlIigH/v6AVq7d3Ug/p5n9abrGvTwvaMAJd4YAtzmVIASb4wr1lkAlLC2Ryo4gBIpmdgXAihhb5FUgAAlUjKxLgRQwtoe6eC4LeqlA0dBbUFJRm4G/bRnBe08up0aVGpMZ1ZqRNFR0b53FKDEG0OA25wKUOKNccU6C4AS1vZIBQdQIiUT+0IAJewtkgoQoERKJtaFAEpY2yMdHLdFvXTgKKgtKIF1RSsAUOKNkcFtTgUo8ca4Yp0FQAlre6SCAyiRkol9IYAS9hZJBQhQIiUT60IAJaztkQ6O26JeOnAUBCjx2BgAKPGGodzmVIASb4wr1lkAlLC2Ryo4gBIpmdgXAihhb5FUgAAlUjKxLgRQwtoe6eC4LeqlA0dBgBKPjQGAEm8Yym1OBSjxxrhinQVACWt7pIIDKJGSiX0hgBL2FkkFCFAiJRPrQgAlrO2RDo7bol46cBQEKPHYGAAo8Yah3OZUgBJvjCvWWQCUsLZHKjiAEimZ2BcCKGFvkVSAACVSMrEuBFDC2h7p4Lgt6qUDR0GAEo+NAYASbxjKbU4FKPHGuGKdBUAJa3ukggMokZKJfSGAEvYWSQUIUCIlE+tCACWs7ZEOjtuiXjpwFAQo8dgYACjxhqHc5lSAEm+MK9ZZAJSwtkcqOIASKZnYFwIoYW+RVIAAJVIysS4EUMLaHunguC3qpQNHQYASj40BgBJvGMptTgUo8ca4Yp0FQAlre6SCAyiRkol9IYAS9hZJBQhQIiUT60IAJaztkQ6O26JeOnAUBCjx2BgAKPGGodzmVIASb4wr1lkAlLC2Ryo4gBIpmdgXAihhb5FUgAAlUjKxLgRQwtoe6eC4LeqlA0dBgBKPjQE3QElefh79efB3qpRUhcqXquAxRd1Jh9ucClDizjjwVa8AJfrbDVCiv4ciA4ASb/gIUKK/jwAl+ntozqk5ufl0LCPHGwn5NIuUCgm092AG5eX7VAAPpO00KNl5ZDsNWfIw7T6601Dvxoa3061N7vaAku6mAFDisP670tId7hHdFVYAoET/MQFQor+HACXe8FBkAVCiv5cAJfp76DYo2Z++j2Zs/Jh2HNlGzVNaUqfTr6HoqGhvCOtwFgAlDgtuQ3dOg5KxK1+iub/PCsrkjcs/pJpla9uQnX+aBChx2GuAEocFL6I7gBL3PVCNAKBEVUEe9bGjhIcPqlEAlKgq6H59gBL3PbAiArcW9WLL/71f9KBth7cE0ri50R10S+M7rUjLd20AlOhvudOgpO+CXrQhbV2QcEPaPkdtalyov5guZuDWnFpcyjh64+Jg8EvXACX6Ow1Qor+HIgOAEm/4CFCiv48AJfp7aM6pbhy92XNsN/Wc0y1IxPqVGtHoDq97Q1iHswAocVhwG7pzGpR8suFDevOncYFMSseXoXc6zaDEuCQbsvNPkwAlDnuNHSUOC15EdwAl7nugGgFAiaqCPOoDlPDwQTUKgBJVBd2vD1DivgdWRODWoj49J526z+xIuXm5gTTOST2XhrcbaUVavmsDoER/y50GJenZx+mLPz+jNX+vpkqJlek/tS+hRlWa6i+kyxm4NacWlzZ2lLg8IPzQPUCJ/i4DlOjvocgAoMQbPgKU6O8jQIn+Hppzqhs7SkTf41aOoLmbZ1F+fj4lxCbS4DbDqUW187whrMNZ+B2UbD+8lRJiE6hKUorDylvXndOgxLrI0VJBBQBKHB4P2FHisOBFdAdQ4r4HqhEAlKgqyKM+QAkPH1SjAChRVdD9+gAl7ntgRQRuL+qPZR813rpRp1xdio2OtSIlX7bhV1AidkUMXNw3cNdGm5rtaFDrYRQTHaPdOAAo0c6yIgN2e04tHBR2lHhjXLHOAqCEtT1SwQGUSMnEvhBACXuLpAIEKJGSiXUhgBLW9kgHx21RLx04CgYp4FdQMmvjVHpt9StBWojjW+IYl24fHUDJ4cxDNGH1aPph1/8oJbka3dOsDzWt2lw3qW2Nl9ucClBiq91oXCgAUKL/OAAo0d9DkQFAiTd8BCjR30eAEv09NOdUt47ecFZw3b419PrqMcZbecRD933N+1HFxMqsQhb3vHy6aRqt3/cLNa/ZmDrW7k6lYhJZxWh3MGNWvEjzNs8O6qbnWb3pugY97O7a8vZ1ACXjV75Mc36fEci9TKly9PaV03EBbIHRAFBi+Z9GyQ3i6I3DghfRHUCJ+x6oRgBQoqogj/oAJTx8UI0CoERVQffrlwRKDmYeoLTje+nU8qdTdFS0+8EigmIVcGNRL+DDit3fU2rp6nRe9bbsxkhOXg7d9OlVdCTzUEC3DqdeQQ+3GsxqJD3/3VBavG2BEVNcbDS1rtaeBrYZxipGu4P5YdcyGrr00aBuJl05laqXrmF315a3rwMouW/+bfTnwd+Dch936RSqW6Ge5Xro2qAbc2pJWmFHia4jSaO4AUo0MquYUAFK9PdQZABQ4g0fAUr097E4UPLO2jfow1/fMhKsVroGPdNuNFUrXV3/hD2agdOL+mU7ltDwZYOMC1zF57waF9DQts+zUldcDNpr3k1BMdUsU5veuOJDVnF2m9mRjmUdDYCS+Ogkmt51PqsY7Q5GjKP5f86h1Xt+pMS4RGpRrTW1rdne7m5taV8HUDL6x+do/h9zAvnHxcTTR13mUFJcsi2a6Nio03NqKI0ASkIphN8rKwBQoiyh6w0AlLhugSUBAJRYIqPrjQCUuG6BcgBFgZIdh7fR3fNuDGr7ytO70gPnPKLcHxqwRwGnF/WDF/ejVXt+CEpmSqfplJpczZ4EI2hV7Ci5YfaVAQghmmh/yqU04LyhEbRmX5W75t5AO49sD4CSCqWq0tudPrGvQ7RsqwI6gBKxG2zSz+Ppl70/U9WkVOpSrztddlpnW3XRrXGn59RQ+gCUhFIIv1dWAKBEWULXGwAocd0CSwIAKLFERtcbAShx3QLlAIoCJct2LqFh3w4MartJlWb04kXjlPtDA/Yo4PSiXgdQIpT+ZuuXNGPDR7TjyDZqWLkJ3dn0fjqt/On2mBBhqzM3fkyTf55AOXnZlBgfT7c26k1X17s+wtZQzW0FCoISAetmb5pGa/5aRXXK16Vr6t9A5UqVdztE9C+hgNNzaqiQAEpCKYTfKysAUKIsoesNAJS4boElAQCUWCKj640AlLhugXIARYEScQzg9s+70dGsI4H2ezfra3zriA9PBZxe1M/5fSaNXzkiIMYZFc+kVzq8SVFRUTwFYh5VZm4mbRcXztauT0eOEuWdONGEj4YKFAQlE1ePptkbpwWyqF+pEY3u8LqGWdkX8vHsY8Ybj/63czFVSqxCPZv0pvNqtLWvQ8mWnZ5TQ4UFUBJKIfxeWQGAEmUJXW8AoMR1CywJAKDEEhldbwSgxHULlAMoCEqOZWbRlkObjTtJthzcTN9s+4rS0vfRWVWb0eV1u1BCTIJyf2jAHgWcXtSLOyU2HfjN2LovXi/aPKUl3phhgbV+fT2wBdKxaaIgKLn1s2tp7/E9QbFN6/oFlY4vwyZetwN5e+3r9NGvbwfCiI2OpXc6z6AKCZVcDc3pOTVUsgAloRTC75UVAChRltD1BgBKXLfAkgAASiyR0fVGAEpct0A5ABOU/LB1HT22sC8dyEijmOgYuq3JPdT9zJuV20cDzijAbVHvTNbe6wWgRH9PC4KSvgt60Ya0dYGkSsUk0CfXfGnMsficUOCxrx+gtXtXB8nxfPux1DSluasScZtTAUpcHQ7+6BygRH+fAUr091BkAFDiDR8BSvT30QQl98/pR99uWxxISCzkp3WdT4mxifon6YMMuC3qfSC5LSkClNgiq6ONFgQlS7d/TS//8Axl5mQYr8/udubN1POs3o7Gw72zN34aRzM2/PsmKqHTu51nUsXEyq6Gzm1OBShxdTj4o3OAEv19BijR30OAEm94KLIAKNHfSxOUdH6/K207tDUooZEdXqMGlRrrn6QPMuC2qPeB5LakCFBii6yONlr4rTdZuVm09dAfVKNMLbx+twgn9hzbbdxRInaVVEqobBzzvLredY56VlRn3OZUgBLXh4T3AwAo0d9jgBL9PQQo8YaHACXe8NEEJc8sGkFTf/0gkFSV5FR668ppxreg+PBXgNuinr9iPCMEKOHpSzhR6fB64HDy8WtZbnMqQIlfR6KDeQOUOCi2TV0BlNgkrMPN4uiNw4Lb1B12lNgkrIPNmqBky969NHPDDFqfto6ql65J7Wt3oHoVGzgYCbpSUYDbol4lFz/XBSjR332AEv09NL/Qy8nNp2MZOSwSAihhYYO3gwAo0d9fgBL9PTT/AcrOyaPjmbneSMinWQCU6G98Ua8H1j8r/2UAUOINzwFK9PcRoER/DwFKXPBwV1q6C72iy4IKAJToPx4ASvT3EKDEGx6KLABK9PcSoER/Dzku6r2hqvNZAJQ4r7nVPQKUWK2oO+1xg8/YUeLOOPBVrwAl+tsNUKK/hwAl3vAQoMQbPgKUeMNHbot6b6jqfBYAJc5rbnWPACVWK+pOe9zmVIASd8aBr3oFKNHfboAS/T0EKPGGhwAl3vARoMQbPnJb1HtDVeez8CIoWfP3Ktp0YAM1rNzEF2/RAihx/u/Gjh65zakAJXa4jDaDFAAo0X9AAJTo7yFAiTc8BCjxho8AJd7wkdui3huqOp+F10DJ6z+NpZkbPgoIeW/zfnTVGd2cF9bBHgFKHBTbxq64zakAJTaajaZPKABQov9IACjR30OAEm94CFDiDR8BSrzhI7dFvTdUdT4LL4GS3Lxc6jazI2Xk/HtHY5WkVHqn8yfOC+tgjwAlDoptY1fc5lSAEhvNRtMAJV4ZAwAl3nASrwf2ho+4zFV/HwFK9PfQhM+cXmXpDVWdzwKgxHnNre4RoMRqRd1pD6DEYd3x1huHBS+iO+wocd8D1QgASlQV5FEfoISHD6pRAJSoKuh+fYAS9z2wIgJui3orcvJjG14CJcK/55Y9QUu2LwxY2eWM7tS7eV9PWwtQ4g17uc2p2FHijXHFOguAEtb2SAUHUCIlE/tCACXsLZIKEKBESibWhQBKWNsjHRy3Rb104CgYpIDXQElWbhat3fsTbTm0mU6vUJ8aV25KMdExnnYdoMQb9nKbUwFKvDGuWGcBUMLaHqngAEqkZGJfCKCEvUVSAQKUSMnEuhBACWt7pIPjtqiXDhwFtQUlx7KP0riVL9OPu5dR1aRUur3JPdSqehvfOwpQ4o0hwG1OBSjxxrhinQVACWt7pIIDKJGSiX0hgBL2FkkFCFAiJRPrQgAlrO2RDo7bol46cBTUFpRMXDWaZm+aFog/ITaRPrjqU0qMS/K1qwAl3rCf25wKUOKNccU6C4AS1vZIBQdQIiUT+0IAJewtkgoQoERKJtaFAEpY2yMdHLdFvXTgKKgtKOm7oBdtSFsXFP/IDq9Rg0qNfe0qQIk37Oc2pwKUeGNcsc4CoIS1PVLBAZRIycS+EEAJe4ukAgQokZKJdSGAEtb2SAfHbVEvHTgKagtKxq98meb8PiMQf1xMPH3UZQ4lxSX72lWAEm/Yz21OBSjxxrhinQVACWt7pIIDKJGSiX0hgBL2FkkFCFAiJRPrQgAlrO2RDo7bol46cBTUFpTsObabJqwaSev2raEqiSl0Rd0u1PmMa33vKECJN4YAtzkVoMQb44p1FgAlrO2RCg6gREom9oUASthbJBUgQImUTKwLAZSwtkc6OG6LeunAUVBbUALrilYAoMQbI4PbnApQ4o1xxToLgBLW9kgFB1AiJRP7QgAl7C2SChCgREom1oUASljbIx0cSWzP0AAAIABJREFUt0W9dOAoCFDisTEAUOINQ7nNqQAl3hhXrLMAKGFtj1RwACVSMrEvBFDC3iKpAAFKpGRiXQighLU90sFxW9RLB46CACUeGwMAJd4wlNucClDijXHFOguAEtb2SAUHUCIlE/tCACXsLZIKEKBESibWhQBKWNsjHRy3Rb104CgIUOKxMQBQ4g1Duc2pACXeGFesswAoYW2PVHAAJVIysS8EUMLeIqkAAUqkZGJdCKCEtT3SwXFb1EsHjoIAJRaPgTV/r6JNBzZQw8pNXHlVMUCJxYa61By3ORWgxKWB4KduAUr0dxugRH8PRQYAJd7wEaBEfx8BSvT30JxTc3Lz6VhGjjcS8mkWKRUSaO/BDMrL96kAimm//tNYmrnho0Ard539AF1b/0bFVsOrDlASnl5cSwOUOOzMrrR0h3tEd4UVACjRf0wAlOjvIUCJNzwUWQCU6O8lQIn+HgKUeMNDkQVASeRe5ublUreZHSkj59/nrSpJqfRO508ibzSCmgAlEYjGsApAicOmAJQ4LHgR3QGUuO+BagQAJaoK8qiPHSU8fFCNAqBEVUH36wOUuO+BFRFwW9RbkZMf2wAoidx1gJLItUPNkxXgNqfi6A1Gqe0KAJTYLrHtHQCU2C6xIx0AlDgis+2dAJTYLrHtHQCU2C6xIx1wW9Q7krQHOwEoUTP1uWVP0JLtCwONdDmjO/Vu3let0TBrY0dJmIIxLc5tTgUoYTpQvBQWQIn+bgKU6O+hyACgxBs+ApTo7yNAif4emnMq7ijR30uAEjUPs3KzaO3en2jLoc10eoX61LhyU4qJjlFrNMzaACVhCsa0OECJw8bg6I3DghfRHUCJ+x6oRgBQoqogj/oAJTx8UI0CoERVQffrA5S474EVEXBb1FuRkx/bACjR33VOoGTv8b8oIyeDapU9RX9hHc6A25yKHSUODwA/dgdQor/rACX6e2h++5mdk0fHM3O9kZBPswAo0d94gBL9PTTnVOwo0d9LgBL9PeQASsR9Lc9+N4SW7VhsCFq/UiN6tt0oSopL1l9ghzIAKHFIaLMb7ChxWPAiugMocd8D1QgASlQV5FEfO0p4+KAaBUCJqoLu1wcocd8DKyLgtqi3Iic/tgFQor/rHEDJyj3L6b+L+weJeU+zPnR1vev0F9ihDLjNqdhR4pDxfu4GoER/9wFK9PfQ/PYTO0r09xKgRH8PAUr099CcU7GjRH8vAUr095ADKJm6/l2asmZikJiX1+1CD7V4TH+BHcoAoMQhoc1usKPEYcGL6A6gxH0PVCMAKFFVkEd97Cjh4YNqFAAlqgq6Xx+gxH0PrIiA26Leipz82AZAif6ucwAlu47upDs/D9498tQFL1Gr6m30F9ihDLjNqdhR4pDxfu4GoER/9wFK9PfQ/PYTO0r09xKgRH8PAUr099CcU7GjRH8vAUr095ADKBEqfrtjEa3Y/R2lZ6dTs9SW1PHUThQVFaW/wA5lAFDikNBmN9hR4rDgRXQHUOK+B6oRAJSoKsijPnaU8PBBNQqAElUF3a8PUOK+B1ZEwG1Rb0VOfmwDoER/17mAEv2VdDcDbnMqdpS4Ox580TtAif42A5To76H57Sd2lOjvJUCJ/h4ClOjvoTmnYkeJ/l4ClOjvYShQsj7tF/p131qqV/FMalKlmf4JezQDgBKHjcWOEocFx44S9wW3IQKAEhtEdaFJ7ChxQXQbugQosUFUh5sEKHFYcJu647aotylNzzcLUKK/xSWBkg/WTaF3f3kzkOSNDW+nW5vcrX/SHsyA25yKHSUeHGTcUsKOEm6OhB8PQEn4mnGsAVDC0ZXwYwIoCV8zbjUASrg5Elk83Bb1kWWBWgAl+o+BkkDJjbM708GM/YEkk+NL0/Su8/VP2oMZcJtTAUo8OMi4pQRQws2R8OMBKAlfM441AEo4uhJ+TAAl4WvGrQZAif2OfPDrFJr7+2yjo6vOuJaua9DD8k65LeotT9AnDQKU6G80QIn+HooMuM2pACXeGFesswAoYW2PVHAAJVIysS8EUMLeIqkAAUqkZGJdCKDEXnuW7VxCw74dGNTJ8+3HUtOU5pZ2zG1Rb2lyPmoMoER/s0sCJWNWvEjzNp+ApuLT4dQr6OFWg/VP2oMZcJtTAUo8OMi4pQRQws2R8OMBKAlfM441AEo4uhJ+TAAl4WvGrQZAib2OTF4zgaatfy+ok55n9bZ8Vwm3Rb29qnq3dYAS/b0tCZTk5OXQun1r6PcDG6hOubrUtGpzio2O1T9pD2bAbU4FKPHgIOOWEkAJN0fCjwegJHzNONYAKOHoSvgxAZSErxm3GgAl9jqydPvX9OyyIUGdPNNuNDVPbWlpx9wW9ZYm56PGAEr0NzvUW2/0z9AfGXCbU7UHJQuXrqKHhow5afSs+vINKhUfR3jrjft/WAAl7nugGgFAiaqCPOoDlPDwQTUKgBJVBd2v7ydQsnzX/2jBlnmUHJdMnU+/lupWqGe7AeIb5HErX6IVu5cbfbWsdh491GIARUVFWdo3t0W9pcn5qDGAEv3NBijR30ORAbc5VXtQsmDpShr47Bs0/Y2ngkZI7RpVjX8QAUrc/8MBKHHfA9UIAEpUFeRRH6CEhw+qUQCUqCrofn2/gJKVe5bTfxf3DwieGJtEEy57h1KSq7lvggURcFvUW5CSL5sAKNHfdoAS/T0EKLHBQwFKnnr5LVo6a2yRrQOU2CB6mE0ClIQpGMPiACUMTYkgJICSCERjWAWghKEpYYbkF1AycdVomr1pWpA6/VsNpktOvSJMxXgWByjh6Uu4UQGUhKsYv/IAJfw8iSQibnOqJ3aU9Bkylrp0PJ9KlYqnFk3rU8f2LSk2JsbwB6AkkmFqbR2AEmv1dKM1gBI3VLe+T4AS6zV1o0WAEjdUt7ZPv4CSqevfpSlrJgaJN7zdSDon9VxrBXWpNW6Lepdk0L5bgBLtLSSAEv09FBlwm1O1ByVrf/uT5i/6gcqVSaZdf6XR1E+/oZu6XkyD+/QwRkxWdq43Ro7GWcTFRlN2Tp7GGSB0cYwtJiaKcrTzMfg8em5evpGHXz8x0VGUn59Pefl+VcAbeYs5VfwtwkZ9/YyLiSZxXUZ2bh7le9jIPUf30N2f3UH7ju8zzGpctTFNuPJ1z7xxQsyp4g8x18sm6vtnJh25+HvMyc0z/h5jo6Ol66GgrAL2T3LGOjU6yvARH30ViImJPrFOZbJQjY87sfHCqk9UvsjOxc+MuUtoyIuT6eeFk4xdJXsPZboYDboWClQqE0/7j2Z5ejHodafjYqIoOSGWDh7L1izVk6ejKPIvKCmdGEs5ufmUkQWArNlADgpX7EbYfyQTc6rGJopvzQTwOnQs2xdfJPx58A/jMteqySkau3Zy6GJOFQA+PRNzqs7GViwbTweOZJ14OPPvEsFGC+0XVaxTkxJi6NCxHBvzQNN2K1A6IYYE60pnsk6tUq6UpSm7DkqWLl9LvQe8TCvnv04JpeJx9MZSeyNrDEdvItONUy0cveHkRuSx4OhN5NpxqomjN5zciCwWvxy9iUwdfWpx2yauj3K8IsXRG15+RBINjt5Eohq/OtzmVO2P3nwwcyHVr1uLGtarQ4eOHKVHn55IcbExNHnUAMN93FHi/h8BQIn7HqhGAFCiqiCP+gAlPHxQjQKgRFVB9+sDlLjvgRURcFvUW5GTH9sAKNHfdYAS/T0UGXCbU7UHJSNfm0qTPpwbGB1nNaxLLw3pTTWrVQEoYfI3A1DCxAiFMABKFMRjVBWghJEZCqEAlCiIx6QqQAkTIxTD4LaoV0zHt9UBSvS3HqBEfw8BSmzyMCMzi/amHaQyyUlUvlzpoF6wo8Qm0cNoFqAkDLGYFgUoYWpMmGEBlIQpGNPiACVMjQkjLICSMMRiXBSghLE5YYQGUBKGWEyLApQwNSbMsLjNqdrvKAmlP0BJKIXs/z1Aif0a290DQIndCjvTPkCJMzrb3QtAid0K298+QIn9GjvRA7dFvRM5e7EPgBL9XQUo0d9DkQG3ORWgxBvjinUWACWs7ZEKDqBESib2hQBK2FskFSBAiZRMrAsBlLC2Rzo4bot66cBRMEgBgBL9BwRAif4eApS44CF2lLggeqEuAUrc90A1AoASVQV51Aco4eGDahQAJaoKul8foMR9D6yIAKDEChXdbwOgxH0PVCMAKFFVkEd9bnMqdpTwGBeejgKgRH97AUr099Ak9dk5eXQ8M9cbCfk0C4AS/Y0HKNHfQ47ffnpDVeezAChxXnOrewQosVpRd9oDKHFYd+wocVjwIroDKHHfA9UIAEpUFeRRHztKePigGgVAiaqC7tcHKHHfAysi4LaotyInP7YBUKK/6wAl+nvIET5jR4k3xhXrLABKWNsjFRxAiZRM7AsBlLC3SCpAgBIpmVgXAihhbY90cAAl0lKxLghQwtoeqeAASqRkYl+I25wKUMJ+yOgfIECJ/h4ClOjvoUnqcfRGfy8BSvT3EKBEfw85fvvpDVWdzwKgxHnNre4RoMRqRd1pD6DEYd1x9MZhwYvoDqDEfQ9UIwAoUVWQR33sKOHhg2oUACWqCrpfH6DEfQ+siIDbot6KnPzYBkCJ/q4DlOjvIUf4jB0l3hhXrLMAKGFtj1RwACVSMrEvBFDC3iKpAAFKpGRiXQighLU90sEBlEhLxbogQAlre6SCAyiRkol9IW5zKkAJ+yGjf4AAJfp7CFCiv4cmqcfRG/29BCjR30OAEv095PjtpzdUdT4LgBLnNbe6R4ASqxV1pz2AEod1x9EbhwUvojuAEvc9UI0AoERVQR71saOEhw+qUQCUqCrofn2AEvc9sCICbot6K3LyYxsAJfq7DlCiv4cc4TN2lHhjXLHOAqCEtT1SwQGUSMnEvhBACXuLpAIEKJGSiXUhgBLW9kgHB1AiLRXrggAlrO2RCg6gREom9oW4zakAJeyHjP4BApTo7yFAif4emqQeR2/09xKgRH8PAUr095Djt5/eUNX5LABKnNfc6h4BSqxW1J32AEoc1h1HbxwWvIjuAErc90A1AoASVQV51MeOEh4+qEYBUKKqoPv1AUrc98CKCLgt6q3IyY9tAJTo7zpAif4ecoTP2FHijXHFOguAEtb2SAUHUCIlE/tCACXsLZIKEKBESibWhQBKWNsjHRxAibRUrAsClLC2Ryo4gBIpmdgX4janApSwHzL6BwhQor+HACX6e2iSehy90d9LgJL/Y++84+wqyjf+3LYlu+lBeugivSOIPxQUAggEhCBFkd470kR6U5AaDFU6CVUIURQUBARESiAKIkrohJZN3X7b73Nu2E3ussmee8+cmfed++w/fiQzb3meyTB8d845+j0kKNHvocTffvqhqv0uCErsa246I0GJaUXdxCMosaw7H72xLHg/6QhK3HsQtQKCkqgKypjPGyUyfIhaBUFJVAXdzycoce+BiQqkHepN9FSLMQhK9LtOUKLfQ4nwmTdK/FhXorsgKBFtT6jiCEpCySR+EEGJeItCFUhQEkom0YMISkTbE7o4gpLQUokeSFAi2p5QxRGUhJJJ/CBpeypBifglo79AghL9HhKU6Pewh9Tz0Rv9XhKU6PeQoES/hxJ/++mHqva7ICixr7npjAQlphV1E4+gxLLufPTGsuD9pCMoce9B1AoISqIqKGM+b5TI8CFqFQQlURV0P5+gxL0HJiqQdqg30VMtxiAo0e86QYl+DyXCZ94o8WNdie6CoES0PaGKIygJJZP4QQQl4i0KVSBBSblMyexsJLMtyDWuCiSSoTR0PYigxLUDZvITlJjR0XUUghLXDkTPT1ASXUMJEaTtqQQlElaF5zUQlOg3mKBEv4c9pJ6P3uj3kqBkoYfN712Fxk/uL/2DXMPymLv2eBTqlxZvMkGJeItCFSjtUB+qaA76igIEJfoXBUGJfg97zqm5fBFtnTkRDRGUiLDB7yIISvT7S1Ci30OCEj88DLogKFngZarjfYx4bd8yYzuW2xutKx0r3myCEvEWhSqQoCSUTOIHEZSIt2jAAglKBpRIxQBpeypBiYplo7tIghLd/gXVE5To95CgxA8PCUoW+lg/888Y8r9zy4ztHro55q59pXizCUrEWxSqQGmH+lBFc9BXFCAo0b8oCEr0e9hzTuWNEote8mWuFsVeTCqCEvceRK2AoCSqgjLm8x0lMnyIWgVvlCxQMJFrxchXdkWi0NUraesqJ6FjmT2iShz7fIKS2CW2koCgxIrMsSchKIld4tgTEJTELrGVBNL2VN4osWJ7bSchKNHvP0GJfg97SD3fUaLfS4KShR5m5r6C+pa/ll7mmh2yITqW3g1I1os3maBEvEWhCpR2qA9VNAd9RQGCEv2LgqBEv4c951TeKLHoJW+UWBR7MakIStx7ELUCgpKoCsqYzxslMnyIWgVBSVQF3c8nKHHvgYkKCEpMqOg+BkGJew+iVkBQElVBGfOl7am8USJjXXhdBUGJfnsJSvR72EPqeaNEv5cEJfo9JCjR76HE3376oar9LghK7GtuOiNBiWlF3cQjKLGsO2+UWBa8n3QEJe49iFoBQUlUBWXM540SGT5ErYKgJKqC7ucTlLj3wEQF0g71JnqqxRgEJfpdJyjR76FE+MwbJX6sK9FdEJSItidUcQQloWQSP4igRLxFoQokKAklk+hBBCWi7QldHEFJaKlEDyQoEW1PqOIISkLJJH6QtD2VoET8ktFfIEGJfg8JSvR72EPq+eiNfi8JSvR7SFCi30OJv/30Q1X7XRCU2NfcdEaCEtOKuolHUGJZdz56Y1nwftIRlLj3IGoFBCVRFZQxnzdKZPgQtQqCkqgKup9PUOLeAxMVSDvUm+ipFmMQlOh3naBEv4cS4TNvlPixrkR3QVAi2p5QxRGUhJJJ/CCCEvEWhSrQJShJZmehruVpIFWPruH/h2J6cKiaOahcAYISP1YEQYkfPhKU6PeRoES/hwQlDjzkjRIHovdJSVDi3oOoFRCURFVQxnyCEhk+RK3CFShJdn2G4dP2RzLfWmohX78M5qz/WxTSw6K2VHPzCUr8sJygxA8fCUr0+0hQot9DghIHHhKUOBCdoMS96IYrICgxLKijcAQljoQ3nNYVKBn08Z1o+uD6sm7mr34mOpfayXCH/ocjKPHDY4ISP3wkKNHvI0GJfg8JShx4SFDiQHSCEveiG66AoMSwoI7CEZQ4Et5wWoISw4I6CEdQ4kD0GFISlMQgqoOQBCUORDeckqDEsKCOwknbU/mOEkcLoZbS8tEb/W4TlOj3sIfU86s3+r10BUpSHR9g+Gv7IPGlhMVkPWZtdC8KdUvpF9VyBwQllgWPKZ20Q31MbXoflqBEv8UEJfo97Dmn5vJFtHXmRDREUCLCBr+LICjR7y9BiX4PCUr88DDowhUoCXInOz9G3ZwXSy9z7R6yCQr1S/sjrMVOCEosih1jKoKSGMW1GJqgxKLYMaUiKIlJWMthpe2pBCWWF0AtpiMo0e86QYl+DwlK/PAwDlCSmfMSGj6fUoIfnV8bi+zgdf0RS2gnBCVCjamwLGmH+grL5/AvFSAo0b8UCEr0e9hzTuWNEote8h0lFsVeTCqCEvceRK2AoCSqgjLm8x0lMnyIWoXJGyXp+W9g+OuH9ZZUTGQwZ4PbkWtcKWqZnL8EBQhK/FgeBCV++EhQot9HghL9HhKUOPCQoMSB6H1SEpS49yBqBQQlURWUMZ+gRIYPUaswCUoGffhbNH10S1lJ81f5GTqX2T1qmZxPUOL9GiAo8cNighL9PhKU6PeQoMSBhwQlDkQnKHEvuuEKCEoMC+ooHEGJI+ENpzUJSho+exiD37msrMJ5a5yHrlHfN1w1wy2qAG+U+LEeCEr88JGgRL+PBCX6PSQoceAhQYkD0QlK3ItuuAKCEsOCOgrnEyhpa01gxowEVlm1gHTakaCO0poEJYncPAz/54FIdX1a6iY3aDXMXvdGINXgqLvaSEtQ4ofPBCV++EhQot9HghL9HhKUOPCQoMSB6H1Sjhhch1nzu90XwgqqViCTTqKpPoU5bdmqY3CiewWaG9PI5wvo6C64LyZCBb9/JInrr80gnweGjwB+cW4Wa6+ju6dK5Aj21Dnzu2Gy43TH+ygm65CvX7aSUji2SgUISqoUTti00p5aKKKjKy+sMpZTiQLDm+swt9XsnlpJfo6NrkAmncCg+jTm8pwaXUyHEaTtqfzqjcPFUCup+Y4S/U7zRol+D3tIfTZXQLviQ30uB+z+g3oE/9vzs8lmBVz4y9qBeCZvlPixsvV1QVCiz7P+KuaNEj985I0S/T7yRol+D3vOqfzqjUUveaPEotiLSUVQ4t6DqBUQlERVUMZ8Hx69+fCDBA47sK5M0GHDi5j0QO3cWiMokfH3KUoVBCVR1JMzl6BEjhdRKiEoiaKejLkEJTJ8iFqFtD2VN0qiOsr5AypAULJ4iVKffoKm8VegbtqryK2yGlqPOwm5NdYcUFPbAwhKbCseTz4fQEmgzEE/qcMnMxK9Iu2yWx5HHbvIFZN45BMTlaBEjBVVF0JQUrV0oiZKO9SLEkdRMQQlisxaTKkEJfo9DDqQtqcSlPixrkR3QVCyeHuGnnkK6l54vndAfullMGvig+L8JCgJb0nwktH77knivXeTWH/DInYZm0Nd+QWI8MEMj/QFlLwzPYG/PJ7Cxx8lsPY6RWy/Yx7DhxcNqyU3HEGJXG/CVkZQElYp2eOkHeplqyW3OoISud6ErYygJKxSssdJ21MJSmSvFy+qIyhZvI2jxo5BorW1bMDMyX9CsXmwKO8JSsLbcdpJGfxzWrJ3wk675HHsCTJuO/gCSsK74edIghL9vhKU6PdQ4m8//VDVfhcEJfY1N52RoMS0om7iEZRY1p3vKLEseD/pCEoW78HQnx2Huldf6R2QH7UUZt37sHvT+lRAUBLOko52YM+x9Sgs8jmSpZYu4o6JMt6fQVASzkfpowhKpDs0cH0EJQNrpGGEtEO9Bs0k1khQItGVymoiKKlML6mjpe2pvFEidaV4VBdByeLNTP9rGppuuxmZt95EbvTKaN9vf3RvtbU49wlKwlkSfK52j13r0NW58P0Za65VwFXXyvgiC0FJOB+ljyIoke7QwPURlAyskYYR0g71GjSTWCNBiURXKquJoKQyvaSOlranEpRIXSke1UVQot9MKaAk+OLJ9b/J4M1/J7DGGgUcfXwOo1eS9W6Ku+9IY+KdqdKtkvoGlB67+d52eRGLgKBEhA2RiyAoiSyh8wAEJc4tMFKAtEO9kaZqMAhBiX7TCUr0exh0IG1PJSjxY12J7oKgRLQ9oYqTAkpOPSmDfy3y/o9VVitiwo0yHmtZVMj2NuDjj5NYaeWClRe5dnYmcN34FJ5/NokRo4Af75/H/33nq3CGoCTUchc/iKBEvEUDFkhQMqBEKgZIO9SrEE1gkQQlAk2psCSCkgoFEzpc2p5KUCJ0ofhUFkGJfjelgJLg/R9ti7z7NpkEHpjchcZB+jWO0sGdt6cw8Y50b4h0Grj1rm6MWqr8tg1BSRSV5cwlKJHjRbWVEJRUq5ysedIO9bLU0VMNQYkerxZXKUGJfg+DDqTtqQQlfqwr0V0QlIi2J1RxUkDJycfX4d+vL3z/x+iVi7jht/JulIQS1eCg887O4IXnFn5pJwh91vk5fGur8lslBCUGRXcYiqDEofiGUhOUGBLScRhph3rHcqhNT1Ci1rrewglK9HtIUOLAQ371xoHofVISlLj3IGoFfUFJcuYXqH/2GRSamkovny0OsnOlY9prSdx1ewrT305i5VUK2G//HDbZVNY7SqJqXc38229J4567U2VT75jUjaW+xhsl1egpfQ5BiXSHBq6PoGRgjTSMICjR4NLANRKUDKyR9BEEJdIdCleftD2VN0rC+cZRERQgKIkgnpCpi4KS1PvvYfjRhyDR0VGqLjd6Jcy59iYUm5qEVFt7ZcxqAcZfncHr0xIYMRLY5nt57L0f31Hi60ogKNHvLEGJfg+DDqQd6v1Q1X4XBCX2NTedkaDEtKJu4knbUwlK3KyDmspKUKLf7kVBSdNN12HQPXeVNTXv/EvQJfCzxvqVN9sBH70xq6eraAQlrpQ3l5egxJyWLiNJO9S71EJzboISze4tqJ2gRL+HEuEzQYkf60p0FwQlou0JVRxBSSiZxA8iKBFvUagCCUpCySR6EEGJaHtCF0dQEloq0QMJSkTbE6o4gpJQMokfJG1PJSgRv2T0F0hQot/DRUFJ5t+vY9ixh/c2VWgejFl33Yfi4CH6G/W8A4ISPwwmKNHvI0GJfg8l/vbTD1Xtd0FQYl9z0xkJSkwr6iYeQYll3fkyV8uC95OOoMS9B1Er6Psy19SHH6DulZdKL3PNbrwpCiNHRU3B+RYUICixILKFFAQlFkSOOQVBScwCWwov7VBvqW3v0hCU6LeUoES/hxLhM2+U+LGuRHdBUCLanlDFSfk8cKhiOWixChCU+LE4CEr0+0hQot9DiYd6P1S13wVBiX3NTWckKDGtqJt40uAzQYmbdVBTWQlK9NtNUKLfw55DfTZXQHvXV7+I40eHtdEFQYl+nwlK9HtIUOKHh0EXBCX6vSQo0e+hxD2VoMSPdSW6C4IS0faEKo6gJJRM4gfxRol4i0IVSFASSibRgwhKRNsTujhpv/0MXTgHlilAUKJ/QRCU6PeQoMSBh3xHiQPR+6QkKHHvQdQKCEqiKihjPkGJDB+iVuELKJk3D/ji8wRWXqWIVCqqKrrmE5To8mtx1RKU+OEjQYl+HwlK9HtIUOLAQ4ISB6ITlLgX3XAFBCWGBXUUjqDEkfCG0/oASu64NY1Jdy2gI0stDVxyaTeWX6FoWCm54QhK5HpTSWUEJZWoJXcsQYlcb8JWRlASVinZ46TtqXz0RvZ68aI63iiJycauLqTffxf50Suj2NAQU5IFYQlKYpXXWnCCEmtSx5qH34d4AAAgAElEQVRIOyiZPQvYd1x9mUbf/V4Bp/08G6tukoITlEhyo/papB3qq++ktmcSlOj3n6BEv4dBB9L2VIISP9aV6C4ISszbk5n6Moae+3Mk2tpKkKT1xFPR+f0x5hN9GZGgJDZprQYmKLEqd2zJtIOSl19M4qwzMmX6rLJaERNu7I5NM2mBCUqkOVJdPdIO9dV1wVkEJfrXAEGJfg8JShx4yEdvHIjeJyVBiXkPhh92ANLT/9cbuDBiJFruf8R8IoKS2DR1EZigxIXq5nNqByXd3cB+4+rQ2proFWf/A3PY58e18zUmghLzfy9cRCQocaG6+ZwEJeY1tR2RoMS24vHkk7an8kZJPD4z6iIKEJSYXw6jxo5BorW1LHDLfZNRGDnKfDI+ehOLpi6CEpS4UN18Tu2gJFDkjX8l8LdnUvjsswTWWbeAH+ycR+Mg81pJjUhQItWZyuqSdqivrHqO7lGAoET/WiAo0e9h0IG0PZWgxI91JboLghLz9gw57xeof+avvYGz622AOVdNMJ/oy4h89CY2aa0GJiixKndsyXwAJbGJoyQwQYkSowYoU9qh3g9V7XdBUGJfc9MZCUpMK+omnrQ9laDEzTqoqawEJebtTn7xORr+8AjS/3sL+VVXR+d2OyA/eiXziQhKYtPURWCCEheqm89JUGJeU9sRCUpsKx5PPmmH+ni69D8qQYl+jwlK9HsYdCBtTyUo8WNdie6CoES0PaGK442SUDKJH0RQIt6iUAUSlISSSfQgghLR9oQuTtqhPnThHFimAEGJ/gVBUKLfQ4ISBx7yZa4ORO+TkqDEvQdRKyAoiaqgjPkEJTJ8iFoFQUlUBd3PJyhx74GJCghKTKjoPgZBiXsPolZAUBJVQRnzpe2pvFEiY114XQVBiX57CUr0e9hD6rO5Atq7aufrIn44V94FQYl+VwlK9Hso8beffqhqvwuCEvuam85IUGJaUTfxCEos684bJZYF7ycdQYl7D6JWQFASVUEZ83mjRIYPUasgKImqoPv5BCXuPTBRgbRDvYmeajEGQYl+1wlK9HsoET7zRokf60p0FzZASd3LLyL97nR0r7cBct9YW7QeGosjKNHo2ldrJijxw0eCEv0+EpTo91Diod4PVe13QVBiX3PTGQlKTCvqJp40+ExQ4mYd1FTWuEFJ8/gr0Pjwg72ath5zIjp237OmNI67WR9BSWdnAh99mMCKowuor49bQRnxCUpk+BC1CoKSqAq6n09Q4t4DExVIO9Sb6KkWYxCU6HedoES/hxLhM0GJH+tKdBexgpJ8HqN2+C4ShUKvBvkVR2PWbZNEa6KtON9AyfPPJXHpxRl0dQKDmoCTT8viW1stXEPa/AlbL0FJWKVkjyMoke1PmOoISsKoJH8MQYl8j8JUSFASRiXZYwhKZPsTtjppeypBSVjnOK5qBQhKqpZOzETfQMl+e9VhVkuiV98VRxdx463dYvSOqxCCkriUtRuXoMSu3nFkIyiJQ1X7MaUd6u0r4EdGghL9PhKU6Pcw6EDankpQ4se6Et1FrKAEwJCzT0f9c3/r1aB97x+j7dAjRWuirTifQElrawLjxtaVWZDOAFP+1KXNlorrJSipWDKREwhKRNpSUVEEJRXJJXawtEO9WKGEF0ZQItygEOURlIQQScEQaXsqQYmCRaO9xLhBSaK7G5mpLyP94fvIrrkWsuusB6RS2mUTVb9PoCQQ9oxTMnhtarJX4823KOC8i7KiNI+jGIKSOFS1H5OgxL7mpjMSlJhW1E08aYd6Nyroz0pQot9DghL9HgYdSNtTCUr8WFeiu4gblIhu3pPifAMln3ySwGOPJvHeu0msunoB240pYNlli564tfg2CEr8sJigRL+PBCX6PZR4qPdDVftdEJTY19x0RoIS04q6iUdQYln3GS0dljMyXV8FCEr0rwnfQIl+R6rrgKCkOt2kzSIokeZI5fUQlFSumcQZ0g71EjXSUBNBiQaXllwjQYl+DyXCZ94o8WNdie6CoES0PaGKIygJJZP4QQQl4i0KVaAmUDJjBvCPv6cwalQRW25VQDodqkXvBxGU+GExQYkfPhKU6PeRoES/hwQlDjzkjRIHovdJSVDi3oOoFRCURFVQxnyCEhk+RK1CCyh57dUkzjojg9yXr//ZYMMiLrq0m6+QAkBQEvVvgYz5BCUyfIhaBUFJVAXdzycoce+BiQqk7am8UWLCVcZYogIEJfoXCEGJfg97SH02V0B7V95pQ+1twA0T0nju2RRGjiriwINz2OJbBac1aUquBZRcckEazzxV/mLta2/oxmqr+/8+oIHWE0HJQArp+HNph3odqsmrkqBEnieVVkRQUqliMsdL21MJSmSuE6+qIijRbydBiX4PJYGSO29PYeIdC5/BCB7HuGNSF4aP8EPnuLsgKIlb4fjjE5TEr7GNDNIO9TZ69jEHQYl+VwlK9HvYc07N5Yto68yJaIigRIQNfhdBUKLfX4IS/R5KAiVnnpbB1JcXfp45qO2CS7LYdHPeKgmz0rSAkqeeTOJXF2V6W1p+hSKu/20331PCR2/CLHMVYwhKVNg0YJEEJQNKJH4AQYl4i0IVKG1PJSgJZRsHRVGAoCSKejLmEpTI8CFqFVLeUXL7LWncc/fCRzKSSeDOe7owYmTUDmtjvhZQErgx/e0E/jktiVGjgI03KaCpmY/dBLrwRokff1elHer9UNV+FwQl9jU3nZGgxLSibuJJ21MJStysg5rKSlCi326CEv0eBh1IASVffJ7AhGvT+Ne0JEaOLGLHH+Sx2x5u35uiyWFNoESTrjZrJSixqXZ8uaQd6uPr1O/IBCX6/SUo0e9hzzmVj95Y9JJfvbEo9mJSEZS49yBqBQQlURWUMV8KKJGhht4qCEr0etdTOUGJfg8lHur9UNV+FwQl9jU3nZGgxLSibuJJg8+8UeJmHdRUVoIS/XZrByWtrQk8+8yCd2JsuVUBQ4fW5vX/KKBkxgzgpRdSGDGyiG9uWUBdnf51rbUDghKtzi2sm6BEv4cEJX54GHRBUKLfS4IS/R5K3FO9ASXzW9uRy+cxfOjgspXCGyXu/+IQlLj3IGoFmkHJ3LnAUYfWY1bLAhWGDS/i6t9042tLR1VF3/xqQckb/0rg9FPqkMsu6HmNrxdw5bVZpMq//KpPEKUVE5QoNW6RsglK9Hso8VDvh6r2uyAosa+56YwEJaYVdROPN0oM697e0YnTLrwBTz73ainy+muvhvEXHodRI4aW/j9BiWHBqwhHUFKFaMKmaAYlv38kid9cvfDLG4G0hx2Vw+41+E6MakHJ5Zdm8JfHyr9Sc8X4LNZam1+pcfFXlaDEhepmcxKUmNXTVTRph3pXOmjPS1Ci3UGAoES/hxLhs/obJTdP/APun/IU7hx/Jhob6nDk6VdildHL4oJTDyIoEfJ3hqBEiBERyiAoiSCeoKkEJYLMiFAKQUkE8YRMJSgRYkTEMghKIgooZDpBiRAjIpRBUBJBPEFTpe2p6kHJnoeegzHf3QyH7rdzyebHnnoRJ507Aa//9VYkEgneKBGw+AlKBJgQsQTNoKRlZgI/3bcO+S8/qhI8LnL9b7uxwoq1956SakHJ88+lcMHZ6d5VFLyn5PaJ3Ugv/EcRVxinV6IAQUklaskcG4CS16YmMeneHFIZYKed87yhJdOqJVYl7VCvUEIRJROUiLAhUhEEJZHkEzNZ2p6qHpRstuMRuPC0g0uwJPj593/fw7jDzsXzU36DoYObCEoELH2CEgEmRCxBMygJWv/8swSmvrLg0ZENNy5gmWVqD5IEvVcLSoK5099O4PV/JjFiJLDBRnkMGRJxUXF61QoQlFQtnZiJn35Yj8MOSSL4DGKxWEQ6A0y4sRsrjq7NvUmMMRUWIu1QX2H5HP6lAgQl+pcCQYl+D3vOqfw8sCEvg8PFutsciAmXnIjvbLlBKer09z7Grgecib/cezmWXXqkoUwMQwWoABWgAlSAClABMwrccANw003lsU4/HdhzTzPxGYUKUAEqQAWoABWQpUCiGNALiz/BjZKLTj8E239n01LWvjdKLJbCVFSAClABKkAFKlJg/nzgqaeAri5g222BESMqms7BShV48EHgkkvKi7/4YmD77ZU2xLKpABWgAlSAClCBJSpgHZQE7yjZYZvNcci+PygVxneUyFuhfPRGnieVVqT90ZtK+/V1fJRHb3zVxGVfwaerjz2yDl98liiV0dRcLD1+MdCnq/nojUvXzOTOoB4H/jSJjz5e8OjNyqsWceX4bjQ0mInPKHYU4KM3dnSOOwsfvYlb4fjj89Gb+DW2kUHanqr+HSU33f17PPD7p0tfvRnUWI8jTruCX72xsZIryEFQUoFYQocSlAg1psKyCEoqFCzm4X9+LIUrLi1/I+6Bh+Sx1z65JWYmKInZGAvhe7568+q/ulFM1u57kyxIHWsKaYf6WJv1ODhBiX5zCUr0exh0IG1PVQ9K2to78bPzr8MzL0wrrZB111wF4y86Hl8bNaz0/2e0dPixchR3QVCi2LwvSyco0e9hz7+AsrkC2ru+/ASQH22p7YKgRK11kQvn54EjSygigLRDvQhRFBZBUKLQtD4lE5To95CgJEYP585vQzabw6gRQ8uyEJTEKHrI0AQlIYUSPIygRLA5FZTGGyUViGVhaPDp6oP2r0N318JkN9028Kera/1GybTXEvjTo6mSaDvvUsA66xUsuGU2BUGJWT1dRSMocaW82bwEJWb1dBGNoMSF6uZzSttT1d8oGcgigpKBFIr/zwlK4tc47gwEJXErbCc+QYkdnSvJ8sXnCbz2ahJdXUVsvGkByy038OxaBiX/eTOBk4+rQ+FLNpJMAhNu6sZKK1t9j/zAJg0wgqAksoQiAkg71IsQRWERBCUKTetTMkGJfg+DDqTtqQQlfqwr0V0QlIi2J1RxBCWhZBI/iKBEvEWhCqxlUHLn7SlMvKP8vS6HHZXD7nvoepyMoCTUUhc/SNqhXrxgQgskKBFqTAVlEZRUIJbgodL2VIISwYvFl9IISvQ7SVCi38MeUs93lOj3spZByR+mpHDtVeWg5PRfZPGdbXQ9fkNQov/vocTffvqhqv0uCErsa246I0GJaUXdxCMosaw7H72xLHg/6QhK3HsQtQKCkqgKypjPGyUyfIhaRS2DkvnzgeOPqsMnMxZ8Unn5FYq49gZ9n9UlKIn6t0DGfGmHehmq6KuCoESfZ30rJijR76FE+MwbJX6sK9FdEJSItidUcQQloWQSP0gLKGlrTeChB5P433+TWHudInbfM4e6OvHyWiuwlkFJj8gzPl4ASpZbXte7SXrqJyix9tcl1kQEJbHKay04QYk1qWNLRFASm7RWA0vbUwlKrNpfm8kISvT7TlCi38MeUq/h0ZtfnJ7BKy8le0X//pg8Tj4154cJBrogKKlQxGIRqffeRXHIEBRGjqpwcjzDCUri0dV2VGmHetv9+5KPoES/kwQl+j3sOafm8kW0dco48xGU+LGuRHdBUCLanlDFEZSEkkn8IA03SvJ5YNcd6nu/ahKIOmx4EZMe6Bavr60CCUrCK52cOwdDTzke6elvlyZ1jtkJ8089M3yAmEYSlMQkrOWwBCWWBY8pHUFJTMJaDEtQYlHsGFNJ21MJSmI0m6EXKEBQon8lEJTo97CH1Gu4UbLvuHrMnrVQ8xVHF3HjrQQlPYoQlIT/+9j02xswaOIdZRPmXHsjsmutEz5IDCMJSmIQ1UFIaYd6BxJ4kZKgRL+NBCX6Pew5p/JGiUUv+TJXi2IvJhVBiXsPolZAUBJVQRnzNdwoCZS6b1Iad96WQi4HpDPAMcdnMWZHXV81idNxgpLw6g45+3TUP/e3sgnzj/8ZOnfdPXyQGEYSlMQgqoOQBCUORI8hJUFJDKJaDklQYlnwmNJJ21N5oyQmoxl2oQIEJfpXA0GJfg97SL2GGyVBrZ2dCXz4QQKjVyqgvt4P/U11QVASXsmGvzyGwZecv3BCKoWWex5CYcTI8EFiGElQEoOoDkJKO9Q7kMCLlAQl+m0kKNHvYc85lTdKLHrJGyUWxV5MKoIS9x5ErYCgJKqC9uZPfzuBKQ+n0NaWwPe3z+ObWy68iaHlRok9tXRmIiipwLdcDo2PTkHm1VdQGDIE3Vt+G91bfKuCAPEMJSiJR1fbUQlKbCseTz6Cknh0tRmVoMSm2vHlkran8kZJfF4z8pcKEJToXwoEJTo8/OLzBA47qA6dHQvrvfCXWWyy2QJYQlCiw8eBqiQoGUgh+X9OUCLfozAVSjvUh6mZY76qAEGJ/lVBUKLfw55zKm+UWPSSN0osir2YVAQl7j2IWgFBSVQF7cx/6skkfnVRpizZjjvncdyJCz6zRlBix4e4sxCUxK1w/PEJSuLX2EYGghIbKsefg6Akfo3jzkBQErfCduJL21N5o8SO7zWdhaBEv/0EJTo8nPZaEqefXA5KDjg4jx/tS1Ciw8FwVRKUhNNJ8iiCEsnuhK9N2qE+fOUcuagCBCX61wNBiX4Pe36hxxslFr3kjRKLYi8mFUFJ5R6883YCN0xI47//TWLtdYo45oQsll22WHkgQzMISgwJGXOYzk7goJ/U4d13kmhqKmLpZYq47KoslltuwdrhjZKYDbAUnqDEktAxpiEoiVFci6EJSiyKHWMqgpIYxbUUmqDEktAxp5G2p/JGScyGMzxQK6BkVgswZ04Cq6xaRCIRzfmjDqvDu9MXBllvgwIuvSIbLWiE2QQlEcSzNDWfB35+Sgb/nJZENgskk8ClV2ax4UZ8maslC6ylISixJnVsiQhKYpM21sDJ1lY0XXM56v/xPPJLL4PE0Uej65vfQlvnglt7/NGpAEGJTt8WrZqgRL+HQQcEJZZ95I0Sy4L3k64WQMn1v0lj8u9Spe5XWqWICy7OYqmvVXcDpKMd2HNsPQoL//sWTc3AA5O7nJlJUOJM+tCJg6/dHHN4Xdn4rb+bxxlnLTzA80ZJaDlFDyQoEW1PqOIISkLJJG5Q02+uwqDf3d9bV7JpEFof/gPakuV7r7jCWdASFSAo0b9ACEr0e0hQ4sBDghIHovdJ6Tsoees/CZxwdPkhaa998jjwkOp/w3T4wXX44L2FN0rWXreIy6/udmZmWFDyystJvPduEutvUMAaX1+E9DirvHYSE5TUjtcEJfq9JijR6eHwYw5D+s03eotPpRJov+5mzFvtGzobYtUlBQhK9C8EghL9HhKUOPCQoMSB6DUGSv78WApXXJou63rjTQu46FfVPyrz4gtJ3DMxVXrXxOprFHDAQTmss151N1RMrIAwoGTC+DSmPLzgVk3wc+QxOey6e95EesYIoUAuBxxxcB0+/mghYDvtzCy+uy0fvQkhn6ohBCXy7Kp7bSoG3TgB6Y8+QPfGm6H1xFNQGDpssYUSlMjzMExFzddcjsbJv+sdmmyoR+sjf0Rbqj7MdI4RqgBBiVBjKiiLoKQCsQQP5aM3ls0hKLEseD/pfL9REryX5Kf71qF7kSdjjj85ix128udGxUCgJHg/xq47lD8utMKKRdx0m7tbMO5Xvv0K2loTmPpKEjNnonSrZ7XVy+EaH72x70kcGQlK4lA1QsxcDiPH7YrkvLm9QTrH7IT5p55JUBJBVolTU59+gubxVyDz+j+R/9rSSO7xQ3TutiffUSLRrApqIiipQCyhQwlKhBpTYVkEJRUKFnU4QUlUBaPP9x2UBAq99moSzzyVxJzZwEYbF7H9jnnUe/QLJoKS6H8PJEQgKJHgQvQaCEqia2gyQvqD9zH8wH3LQuZXHI1Zt00iKDEptMBY0g71AiVSURJBiQqbllgkQYl+D4MOpO2p/OqNH+tKdBe1AEpEG2CguIFASZDivLMzeOG5ZG+2cXvncdCh1b+nxUDZDNFHAYISP5YEQYkwH3M5jNrjB0i0tvYW1vm97TH/5+cQlAizynQ50g71pvurlXgEJfqdJijR7yFBiQMPeaPEgeh9UhKUuPcgagVhQEl3N/Da1CQ+/DCJNdcsYK11CkgtfGVJ1BI434ACBCUGRBQQgqBEgAl9Smh47FE0PvQAUjM+QnatddB61PHIr7QyQYk8q4xWRFBiVE5nwQhKnElvLDFBiTEpnQaStqfyRonT5VAbyQlK9PscBpTo79L/DghK/PCYoES/j3yZq34PJf720w9V7XdBUGJfc9MZCUpMK+omHkGJZd15o8Sy4P2kIyhx70HUCghKoiooYz5BiQwfolZBUBJVQffzCUrce2CiAmmHehM91WIMghL9rhOU6PdQInzmjRI/1pXoLghKRNsTqjiCklAyiR9EUCLeolAFEpSEkkn0IIIS0faELo6gJLRUogcSlIi2J1RxBCWhZBI/SNqeSlAifsnoL5CgRL+HBCX6Pewh9dlcAe1deT8aqtEupIOS1Mcfoe6F55AftRSyW22NYjpdo04tvm2CEj+WhLRDvR+q2u+CoMS+5qYzEpSYVtRNPGl7KkGJm3VQU1ldgJKODuCRh9J4898JrL5GAXvslUdjY03JbrRZghKjcjoLxhslzqQ3mlgyKMm8+gqGnX4SkFvwxavshhtjzuXjjfbvQzCCEh9clPcpSz9Utd8FQYl9zU1nJCgxraibeAQllnXnO0osC95POheg5JcXZvD0Xxd+qnbLrQo4+/ysezGUVkBQotS4PmUTlPjho2RQMviCs9Hw1BNlQs++4VbkVv+6H+Ib6oKgxJCQjsNIO9Q7lkNteoIStdb1Fk5Qot/DoANpeypvlPixrkR34QKU7Dm2Hm2tC2VpaAQemNzFz9VWuVIISqoUTtg0ghJhhlRZDkFJlcIJmkZQIsiMCKVIO9RHaKWmpxKU6LefoES/hwQlDjzkjRIHovdJ6QKUHHZgHT78INFbyfARwMT7u9yLobQCghKlxvUpm6DEDx8lg5L6J/+MIRed2yt0foUVMeu3dwF8T0nZ4iMo8ePvIkGJHz4SlOj3kaBEv4cEJQ48JChxILoAUDJlcgo3XpdGLrvgfH7QYTnsvgdfYFntaiAoqVY5WfMISmT5UW01kkFJ0FP67f8iM+1VFIKXuW6yOQrNzdW26u08ghI/rCUo8cNHghL9PhKU6PeQoMSBhwQlDkQXAEqCErq6gA8/SGKFFYtoaCi6F0JxBQQlis1bpHSCEj98lA5K/FA5vi7qXn4Rwz79AOnNN0XL8quiK1uILxkjx6oAQUms8loLTlBiTerYEhGUxCat1cDS9lS+o8Sq/bWZzMWjN7WpdHxdE5TEp63NyAQlNtWOLxdBSXzaxh158OW/RMOjU5BOJZFIAPNPOg3zx+wcd1rGj0kBaYf6mNr0PixBiX6LCUr0exh0IG1PJSjxY12J6WLu3AR+d38S772bxPobFjF29xxWWKoBn83pRJGXOsT4VGkhBCWVKiZzPEGJTF8qrYqgpFLFZIxPtLdj5NgxSBQKvaCka+XV0HLDbTIKZBUVKyDtUF9xA5xQUoCgRP9CICjR7yFBiQMP+eiNXdFPOCaDt95c+Fne3X6Yxzm/SBOU2LXBeDaCEuOSOglIUOJEduNJCUqMS2olIEGJFZmtJiEosSp3bMkISmKT1lpgghJrUseaSNqeyhslsdpdW8FbWxMYN7aurOng/SBTJicJSpQvBYIS5QZ+WT5BiR8+EpTo9XHoaScieEdJz6M3rT85EPN+fJDehmq8cmmH+hq3o+r2CUqqlk7MRIISMVZEKkTankpQEslOTl5UgXwe2GPXOnR1Lvws75prFXDP3SmCEuVLhaBEuYEegJL02/9D3asvI7fiSuj+5pYoveChRn8ISvQan+jsROa1qRg2cwbS66+LllW+gS5+kE2todIO9WqFdFw4QYljAwykJygxIKKAENL2VIISAYvCpxJuvTmNB+5NoVAA6huAk0/NYdxuGYIS5SYTlCg3UDkoqX/sUQy+9CL0oJHO74/B/DPO9sOUKrogKKlCNGFT+HngrxqS+uB91L30AgrLLIuuLb8NJBc+xivMvt5ypB3qpeokvS6CEukODVwfQcnAGmkYIW1PJSjRsGqU1djeBnz8cRIrrVxAXR3Ar96UG5h++79ofPhBJNra0Ln9jujecivxDhOUiLcoVIFaH70ZfsxhSL/5RlmPMyf/CcXmwaH69m0QQYl+R52BkuBFsu+8jcKopVAYNlyMkHUvvoChZ50G5HKlmro32gRzf32NmPoWV4i0Q714wYQWSFAi1JgKyiIoqUAswUOl7akEJYIXy+JKS336CRrvm4jkzC/Q9e3voGu7HURfQycoWehk6rNPMfzgHyPR0dH7D+f+8gp0b/ZN0SuRoES0PaGLIygJLZXogQQlou0JVZwLUJL66EMMOeNkpGd8XKqx/ccHoO3AQ0PVG/egIWefjvrn/laWZvatE5EbvVLcqSPFl3aoj9RMDU8mKNFvPkGJfg+DDqTtqQQlytZVcAsh+A/t1Bef91Y+/4RT0LnLbmI7IShZaE3Dl48QLGpW+w/Hoe3oE8T6FxRGUCLantDFaQUlgybdiaabr+/tM7vBRphzxbWh+/ZtIEGJfkddgJLmqy5D45SHy8RrmfggCksv41xQghLnFtR0AQQl+u0nKNHvIUGJAw99+zxw6SVwJx9bpmTXVv+Heef/0oG64VISlCzUqe6lf2Do6SeVCdd6yBHo2Ocn4cR0NIqgxJHwhtNqBSXBS48yb76BzL9fR275FZHdeFMUGxoMq6MnHEGJHq8WV6kLUNLfI2xzL7kc3Ztv4VzQvr9EyK+wImbdNkn0bVmJh3rnRiotgKBEqXGLlE1Qot9DiXsqb5QoW1fBy85GHLhvWdUdu+yG1hNOEdsJQcki1uRyGHbi0aX/4At+8iNHYc74G0T8Rm9JC4igROxfr4oKUwtKKurS/8EEJfo9dgFKBt0/CU3XL7yJVWgejFmTfofioEEiBE2/9SYyr/+z9O/D7IaboNDcLI1+xlMAACAASURBVKKuJRUh7Zq4eMGEFkhQItSYCsoiKKlALMFDpe2pBCWCF8viShty/lmof/rJ0h8XBg/B3F9ejtw31hbbCUHJV61Jfv5Z6WWu+VVWFevbooURlKiwacAiCUoGlEjFAIISFTYtsUgXoCTR3o6GP05BZtqrKIwchc5tt0NuvQ30i+mwA2mHeodSqE5NUKLavlLxBCX6PQw6kLanEpQoXVfJObNLL3PNrbq6+E/oEZQoXWSLlE1Qot/Dnn8BZXMFtHfl/WioRrsgKNFvvAtQol81eR1IO9TLU0hHRQQlOnxaUpUEJfo9JChx4KFv7yhxIGHklAQlkSV0HoCgxLkFRgrgjRIjMjoPQlDi3ILIBRCURJZQRACCEhE2RC6CoCSyhM4DEJQ4t8BIAdL2VN4oMWIrgyxJAYIS/euDoES/hz2knjdK9HtJUKLfQ4IS/R5K/O2nH6ra74KgxL7mpjMSlJhW1E08ghLLuvNGiWXB+0lHUOLeg6gVEJREVVDGfN4okeFD1CoISqIq6H4+QYl7D0xUIO1Qb6KnWoxBUKLfdYIS/R5KhM+8UeLHuhLdBUGJaHtCFUdQEkom8YMISsRbFKpAH0FJ4/2T0PjQA0h0d6Nzp13QdtBhobTQOoigRKtz5XUTlPjhI0GJfh8JSvR7SFDiwEPeKHEgep+UBCXuPYhaAUFJVAVlzCcokeFD1Cp8AyWZ16Zi2MnHlsky7/xL0LXV1lGlEjufoESsNRUVRlBSkVxiBxOUiLUmdGEEJaGlEj1Q2p7KGyWil4sfxRGU6PeRoES/hz2knu8o0e+lb6Bk0KQ70XTz9WXGtO/9Y7QdeqR+sxbTAUGJH9ZKO9T7oar9LghK7GtuOiNBiWlF3cSTtqcSlLhZBzWVlaBEv90EJfo9JCjxw8OgC99ASeaVlzDs1BPKDJp79gXo/s62/pjWpxOCEj+slXao90NV+10QlNjX3HRGghLTirqJJ21PJShxsw5qKitBiX67CUr0e0hQ4oeHPoISFItovvZK1P39udI7Sro3+ybmn3w6kE77YxpBiZdeSjvUeymyhaYISiyIHHMKgpKYBbYUXtqeSlBiyfhaTkNQot99ghL9HhKU+OGhl6DEH2tCd8IbJaGlEj1Q2qFetFiCiyMoEWxOyNIISkIKJXyYtD2VoET4gvGhPIIS/S4SlOj3kKDEDw8JSvzwkaBEro+pTz9B0/grUDftVeRWWQ2tx52E3Bpr9luwtEO9XFVlV0ZQItufMNURlIRRSf4YaXsqQYn8NaO+QoIS9RaCoES/hwQlfnhIUOKHjwQlcn0ccvbpqH/ub70F5pdeBrMmPkhQIteyyJURlESW0HkAghLnFhgpgKDEiIzhg/DzwOG1imskQUlcytqLS1BiT+s4M/HzwHGqay+2by9ztaecnEwEJXK86FvJyD13QXL2rLJ/3HLfZBRGjvpK0dIO9XJVlV0ZQYlsf8JUR1ASRiX5Y6TtqbxRIn/NqK+QoES9hbxRot/CUgcEJX4YSVCi30eCErkeDj3zFNS98HxvgflRS2HWvQ/3W7C0Q71cVWVXRlAi258w1RGUhFFJ/hhpeypBifw1o75CghL1FhKU6LeQoMQTD4M2CEr0m0lQItfDzJtvYNDN1yPz1pvIjV4Z7fvtj+6ttiYokWtZ5MoISiJL6DwAQYlzC4wUQFBiRMbwQfjoTXit4hpJUBKXsvbi8tEbe1rHmYk3SuJU115sghJ7WseViaAkLmXtxpV2qLfbvT/ZCEr0e0lQot/DoANpeypvlPixrkR3QVAi2p5QxRGUhJJJ/CCCEvEWhSqQoCSUTKIHEZSItid0cdIO9aEL58AyBQhK9C8IghL9HhKUOPCQN0ociN4nJUGJew+iVkBQElVBGfMJSmT4ELUKgpKoCrqf7ysoSeRyaHzofqRfm1r6tG7nuL1RGDrMveAxVUBQEpOwlsMSlFgWPIZ0BCUxiOogpLQ9lTdKHCyCWktJUKLfcYIS/R72kPpsroD2rrwfDdVoFwQl+o33FZQ0/+YqNP7u/l6DsmutgznX3qjfsMV0IO1Q763QMTdGUBKzwBbCE5RYENlCCml7KkGJBdNrPQVBif4VQFCi30OCEj88DLogKNHvpa+gZMS+eyD12adlBs2c/CcUmwfrN62fDqQd6r0U2UJTBCUWRI45BUFJzAJbCi9tTyUosWR8LachKNHvPkGJfg8JSvzwkKDEDx99BSXDjjkMwVdjen4KDQ1oeeRxIJXyw7g+XUg71HspsoWmCEosiBxzCoKSmAW2FF7ankpQYsn4Wk5DUKLffYIS/R4SlPjhIUGJPR8z/34dTdeNR/rd6ejeYCO0nnAKCkt9zUgBvoKS+qefxOBLL0KisxPFZBIdP9oPbYccYUQziUGkHeolaqShJoISDS4tuUaCEv0e9pxTc/ki2jpzIhoiKBFhg99FEJTo95egRL+HBCV+eEhQYs/Hvo+RdG31f5h3/i+NFOArKAnESXR3I/XeO8gvvyKKTU1G9JIahKBEqjOV1UVQUpleEkcTlEh0pfKapO2pBCWVe8gZFSpAUFKhYAKHE5QINKWKkvjVmypEEziF7yiJ35Rky0yM3GtsWaLC8BFoeWCKkeQ+gxIjAikJIu1Qr0Q2cWUSlIizpOKCCEoqlkzkBGl7KkGJyGXiV1EDgpJ8Hk233IiGxx5FsbERHT/cCx277+mXCMq7IShRbuCX5ROU+OEjQYkdH0f8aDekZn7Rm6x7i29h7kWXGUlOUGJERudBpB3qnQuitACCEqXGLVI2QYl+D4MOpO2pBCV+rCvRXQwESgJAEjzTvOjP7OtvQW6NNUX3VUvFEZT44TZBiR8+EpTY8bH+qSfQeN8kpD94D9k110LbEccY+/cSQYkdD+POIu1QH3e/vsYnKNHvLEGJfg8JShx4OKOlw0FWplxUgYFASfOVl6Lx95PLRJt//M/QuevuFFKIAgQlQoyIWAZBSUQBhUwnKBFiRIQyCEoiiCdoKkGJIDMilEJQEkE8IVMJSoQYEbEMaXsqb5RENJTTB1ZgIFDS8OgUDL68/AV5syfcjNyaaw0cnCOsKEBQYkXm2JMQlMQusZUEBCVWZI41CUFJrPJaCy7tUG+tcc8SEZToN5SgRL+HQQfS9lSCEj/WleguBgIl6OzE4CsvRd0rL5XeUdK15bfRdtRxonuqteIISvxwnKDEDx/DgpL0O9ORmfoS8iuMRvfmWwDJpB8CeNAFQYkHJgo81Puhqv0uCErsa246I0GJaUXdxCMosaw7H72xLHg/6QYEJe5LZAUDKEBQ4scSWRwoSb/+T2TefAO5r38D2Q028qNZj7sIA0rqn34Sgy84G4lisaRE17e/g3nnXeyxKrpaIyjR5dfiqpV2qPdDVftdEJTY19x0RoIS04q6iSdtT+WNEjfroKayEpTot5ugRL+HQQf9gZJBd96Kpttu7m2w7YBD0P6TA/1o2NMuwoCSYScdg8y0V8sUaLlvMgojR3mqiq62jIKSQgH1f38WyU8/QfdmWyA/eiVdYiiuVtqhXrGUTksnKHEqv5HkBCVGZHQeRNqeSlDifEn4XwBBiX6PCUr0e7g4UDJyz12QnD2rt8FiczNmTn7Mj4Y97YKgRL+xJkHJ0JOPRd1rUxeIkk5j7gW/WvCoFX9iV0DaoT72hj1NQFCi31iCEv0e9pxTc/ki2jpzIhoiKBFhg99FEJTo95egRL+HBCV+eBh0EQaUND54L5onXNPbdG6tdTD72hv9EUF5J6ZASfqD9zH8wH3L1Oja6v8w7/zyF6Qrl0ts+QQlYq2pqDCCkorkEjmYoESkLRUXJW1PJSip2EJOqFQBgpJKFZM3nqBEnifVVNTfozd9P8/dOWYnzD/1zGrCc44lBcKAEhSLyPz7daTffAP55VZAdsONURw0yFKFTDOQAgQlAymk48+lHep1qCavSoISeZ5UWhFBSaWKyRwvbU8lKJG5TryqiqBEv50EJW48THR2IvXh+8iNXhmor49cRH+gJJHLIfP6P5H631vIrbIacsF/UKfTkXMxQHwKhAIl8aVnZAMKmAIlARAbccA+SH30YW9VAegMgCd/4ldA2qE+/o79zEBQot9XghL9HgYdSNtTCUr8WFeiuyAoEW1PqOIISkLJZHRQ3XPPYMjF5yGAJcWmJsw77Rfo3mrrSDn4eeBI8omZTFAixoqqCzEGSgAkW1uRee0VJD/7FNl110duzbWqrosTK1NA2qG+suo5ukcBghL9a4GgRL+HBCUOPOTngR2I3iclQYl7D6JWQFASVcHK54/YayxSLTN7JwZfsph168TKAy0yg6AkknxiJhOUiLGi6kJMgpKqi+DEyAoQlESWUEQAghIRNkQqgqAkknxiJkvbU3mjRMzS8LcQghL93hKU2PUw0Tofo8buUJa0mMlg5p+eilQIQUkk+cRMJigRY0XVhRCUVC2dqInSDvWixFFUDEGJIrMWUypBiX4Pgw6k7akEJX6sK9FdEJSItidUcQQloWQyOmjoKcejburLvTG7tvgW5l10WaQcBCWR5BMzmaBEjBVVF0JQUrV0oiZKO9SLEkdRMQQliswiKNFv1hI6kLanEpR4vdxkNEdQIsOHKFUQlERRr7q5yU9moPHRKUi9Ox251b9eejljYdnlqgv25SyCkkjyiZlMUCLGiqoLISipWjpRE6Ud6kWJo6gYghJFZhGU6DeLoESOh3xHiXsvCErcexC1AoKSqArKmE9QIsOHqFUQlERV0P18ghL3HpiogKDEhIruYxCUuPcgagV89CaqgjLmS9tTeaNExrrwugqCEv32EpTo9zDogKDEnY/pd6YjM/Ul5FcYje5vbgkkElUXQ1BStXRiJhKUiLEiUiHSDvWRmqnhyQQl+s0nKNHvYc85NZcvoq0zJ6IhghIRNvhXRLJlJhLz5iG/8ioIDvWfzelEsehfn5I6yrw2FZn/vYXsOushu/a6RksjKDEqp7NgBCVupK9/+kkMvuBsJL7cBLu23gbzzrmw6mIISqqWTsxEghIxVkQqhKAkknxiJhOUiLGi6kIISqqWTtREaXsqQYmo5eFHMYN/dSEaHv9jqZncaquj/qYb8BkaCEpitLf5uvFofOCe3gytRxyDjnH7GMtIUGJMSqeBCErcyD/spGOQmfZqWfKW+yajMHJUVQURlFQlm6hJBCWi7Ki6GGmH+qobqfGJBCX6FwBBiX4Pgw6k7akEJX6sKzFdZN58A8OOOaysnvSRh+PTcfsTlMTlUj6PUWPHINHR0Zshv/QymDXxQWMZCUqMSek0EEGJG/kJStzoLjkrQYlkd8LXJu1QH75yjlxUAYIS/euBoES/hwQlDjzky1ztit7wyEMYfPWvy0HJDmPw6alnE5TEZQVBSVzKeheXoMSNpY0P3ovmCdf0Js+ttQ5mX3tj1cXwRknV0omZSFAixopIhRCURJJPzGSCEjFWVF0IQUnV0omaKG1P5Y0SUctDfzHJWS0YuffuQD7f20z6ogvx6ZbbEJTEaG/w/oOGp57ozdD+w3FoO/oEYxl5o8SYlL2B6p99GvVP/BmFIUPQOXYP5FZdzXySPhEJSr4qcaK7G5m/P4tUSwu6tvgWCsstb96HYhGZf7+O9JtvIL/cCshuuDGKgwZVnYegpGrpxEwkKBFjRaRCpB3qIzVTw5MJSvSbT1Ci38OgA2l7KkGJH+tKVBd1LzyPur8/i+S8echutAmG7jcOn7XmCEpidCn4j730P19D5t3pyK2xJrrX2wBIpYxlJCgxJmUpUN1zz2Do2Wf0Bg3+o3nWnfehMGy42UQEJUvWM5/HsKMPLb0EOfgpZjKYc9nVyAV/fwT/EJQINidkaQQlIYUSPkzaoV64XGLLIygRa03owghKQksleqC0PZWgRPRy8aM4fh5Yv48EJWY9bL7yUjT+fnJZ0Hlnnouubbczm4igZIl6Brc8hh17eNmYzjE7Yf6pZ8bqQ9TgBCVRFXQ/n6DEvQcmKpB2qDfRUy3GICjR7zpBiX4Pgw6k7anqQckTf5uK485a+Ox3zzKZ+vhNqK/LgO8ocf8Xh6DEvQdRKyAoiapg+fxBt92MpjtvLfuHc665vvRp5zh/+OhNuboEJXGuNsZekgIEJX6sD2mHej9Utd8FQYl9zU1nJCgxraibeNL2VPWg5C9/ewVnXHwTHrjpvDJHRy//NSQSCYISN+u8LCtBiQATIpZAUBJRwD7TUzM+xrDjj0TwTp/gJ7vu+phz+XggnTabqE80gpI+guRyGLHvHki1zOz9g3nnX4KurbaO1YeowXmjJKqC7ucTlLj3wEQF0g71JnqqxRgEJfpdJyjR72HQgbQ91QtQct7lt+FvD4/vd4XwRon7vzgEJe49iFpBGFDSeP8kND70AIL3pXTutAvaDir/THTUGrybXywi9d67KA4ZgsLIUVbaIyj5qsyJeXNR9+orSLa0ILv+Bsit/nUrXkRJQlASRT0ZcwlKZPgQtQpph/qo/dTqfIIS/c4TlOj3kKAkBg+DGyXHnzUeY8dshfr6Omy6wZoY893NkP7yRZYEJTGIXmFIgpIKBRM4fCBQknltKoadfGxZ5XPPvgDd39lWYDe1W5IkUJJsbUVyxkfIr7o6ijHfpPHNcYIS/Y4SlOj3UOKh3g9V7XdBUGJfc9MZCUpMK+omnjT4LPZGyYxPZ+IPT7ywWJd+vMf2aGyow7/+8y4ee+pFDB3chBmfteC+R/6KfXf/Hs48/ieluS3zutw4zay9CowYXIdZrd1AUZ8oqTdeR/0jDwNdXejeeRfkNt1cXxMGKk6nkmhqSGNuW3e/0ervvwcN15a/K6hrj3HoPO5EA9nNhSgWgUTCXDxtkQIPc/kiurILP9/tooe6h3+HxmuuLH1GvDhiBNouuAT5deN9P4uLPuPKOWJwPWa3dvFLYnEJbCHukEEZZNJJzGvPIpsrWMjIFHEoEOyp+UIRnd1u99Q4equlmMMH12FOazcKhdo+I2j2PDinDqpPlfZU/uhVQNqeGvxSw+RPolgM/lMk+s/7H32GeyY/udhAxx60OwY1Nnzlz3/36DM469JbMO2J35ZulXRleQCJ7ka0CAHlDQ6CRhZGtFIqm/3ee8j8ZD8ksgs33dxvb0FhnXUri+PB6GQi+NpwAtlc/y4mXvwHMseV3yjJnXMuCjvuJKr7fPC4Sw2TknQqgWCLzrvcFjs6kNnue0jkcr1ro7DFFshd9dWXcotaPIKKqcskkc0q3FMFaei6lACSBPtq8O/Ggrp/ObpWT07+BXsqSrCEP3oV6Dmn5mr8jKDXQZT20yWdUzX3Vku1S9tT6zNJo/IbAyXVVvW3f/wLR5x2OV557EY01NfxZa7VCmlwntZHbxoeeQiDr/51mRJt+x+E9p8ebFAdHaEGevQmOCk2X3sl6v7+XOkdJd2bfRPzj/8Z0PBVmKmjYz+rlPDoTfrt/2L44QeWCZxfehnMmvign6LH0BUfvYlBVMsh+eiNZcFjSiftmnhMbXoflo/e6LeYj97o9zDoQNqeKvbRm7B2T3zoCay52opY++srY+78Vpxy/vXIpFO45crTSiH4jpKwSsY3Tisoqf/rXzDkwnPKhJl/wino3GW3+MQSGnlAUCK0bpZVroAEUBLcbR7+072RnvFxb3Ede+6N1iPLbyTRu8UrQFCif3UQlOj3UOKh3g9V7XdBUGJfc9MZCUpMK+omHkGJYd2vuOE+/HbSo71R1197NVx21hFYYdmlCEoMa11tOK2gBJ2dGH7sYUi/M73UevBb79k33Iri4CHVSqF2HkGJWuvKChcBSgCkp7+Nhsf/iORHHyC3znro/MGuKAwd5ofIFrogKLEgcswpFgdKgkfSUu+8jcJyK6DQ3BxzFQwfVQFph/qo/dTqfIIS/c4TlOj3UCJ8Vn+jJBC1s6sbX7TMweCmQRg2tPxgwRsl7v/iqAUlX0qX+vST0uMkudEruRfTUQUEJY6EN5xWCigx3FbNhSMo0W95f6Ak88a/MOTcM5Gc1RI8bI/5x5yIzl1319+sxx0QlPhhLkGJfh8JSvR7SFDiwEOCEgei90mpHZS4V9B9BQQlbjxouuVGNDw6BcW6OnTsvic6xu0TqRCCkkjyiZlMUCLGiqoL6Q+UDD39JNS99I/emMFns1se/hOKjY1V5+HEeBUgKIlXX1vRCUpsKR1fHoKS+LS1GVnanurFjZIlGUhQYnN595+LoMS9B1ErICiJqmDl8+ufewZDzj6jbOKcy8cju+HGlQf7cgZBSdXSiZpIUCLKjqqK6Q+UjNh3D6Q++7QsXvC4Z271r1eVg5PiV0DaoT7+jv3MQFCi31eCEv0eBh1I21MJSvxYV6K7ICgRbU+o4ghKQslkdFDTTddh0D13lcVsO+QItO/zk6rzEJRULZ2oiT6AkkRbG5onXI36Z59GftRSaDv0KHRv8S1ROsdZTH+gpPm68Wh84J7etLnllsfs2+8BkmY/TxhnX7UWW9qhvtb0N9UvQYkpJd3FIShxp73JzNL2VIISk+4yVr8KEJToXxgEJfY9rHv6SQw9/6yyxHMuvQrZTTaruhiCkqqlEzXRB1ASPFY26O7be3UNHi+ZdfcDNfNS3/5ASXLuHDT84RGk3/gXCiuMRuf2OyK32uqi1h6LKVdA2qGe/lSnAEFJdbpJmkVQIsmN6muRtqcSlFTvJWeGVICgJKRQgocRlDgwJ5fD4Mt/WXpnQfCOku4tt0LrMScCiUTVxRCUVC2dqIk+gJJhJx2DzLRXy0FgxEfLRJk0QDH8PLAmtxZfq7RDvR+q2u+CoMS+5qYzEpSYVtRNPGl7KkGJm3VQU1kJSvTbTVCi38OgA4ISP3z0AZQ0X38tGu+f1GtIMZnErHseQmHkKD9MqgKUJD//DMEjSflVVq0JDXxoUtqh3gdNXfRAUOJCdbM5CUrM6ukqmrQ9laDE1Uqoobw+gZL0/95C8zVXIP3udHRvsBHajj0J+WWW9d5NghI/LCYo8cNHH0BJ8Nn1pglXo27aq8iPHIXOH4xFxx57+WFQiC763igZfPF5aHji8dLM7BprYt6vrqiZx5BCyCV2iLRDvVihhBdGUCLcoBDlEZSEEEnBEGl7KkGJgkWjvUSfQEnfrxIELx+ce9Fl2i0asH6CkgElUjGAoESFTQMW6QMoGbBJzwcsCkoKL72MYScfW9Zx6yFHoCPCi5s9l09Me9IO9WKEUVYIQYkyw/opl6BEv4dBB9L2VIISP9aV6C58ASWJ1vkYNXaHMq2Lzc2YOfkx0fqbKI6gxISK7mMQlLj3wEQFBCUmVHQbY1FQknjwQQy++tdlBXV+93uYf9b5botk9gEVkHaoH7BgDuhXAYIS/QuDoES/hwQlDjyc0dLhICtTLqqAL6Ak6GnEj3ZDauYXve11b7QJ5v76Gu8NJyiRYXHyi8/RfNVlpccVcqushrYjj0V27XVDF0dQEloq0QMJSkTbE6q4RUFJ9oOPMPKnewP5fO/ceedciK6ttwkVi4PcKUBQ4k57k5kJSkyq6SYWQYkb3U1nlban8kaJaYcZ7ysK+ARK6p57BoPuvgPpD95Dds210HbAIcitt4H3rhOUyLB4yNmno/65v/UWU1h6GbTceR+QSoUqkKAklEziBxGUiLdowAL7vqOk7u/Pof65Z0ovc+3eZDN07vADIJ0eMA4HuFVA2qHerRp6sxOU6PWup3KCEv0eBh1I21MJSvxYV6K78AmUiBY6xuIISmIUt4LQfd+RE0yddfcDoV8oTFBSgdiChxKUCDYnZGn8PHBIoYQPk3aoFy6X2PIISsRaE7owgpLQUokeKG1PJSgRvVz8KI6gRL+PBCUyPBx65imoe+H53mIKw4aj5b7JvFEiwx5rVRCUWJM6tkQEJbFJ2xs4uJ3TPOFq1D/7NPKjlkLbwUeg+1vfNppY2qG+v+Ya/vQHDLrnLiTmzUPX97ZD22FHo5jJGNVBezCCEu0OAgQl+j0MOpC2pxKU+LGuRHdBUCLanlDFEZSEkin2QcHnqZuuvxaZt95EbvTK6NxjL3R+b/vQeXmjJLRUogeaBCWJXA6pd6ejsOzyKDQ3i+7bp+IISuJ3s+mWGzHo7tt7ExXTacya9DsURow0llzaob5vY6kP3sfwg/ZDoljs/aPWo45Dxx4/MqaBD4EISvS7SFCi30OCEgce8mWuDkTvk5KgxL0HUSsgKImqoIz5BCUyfIhahSlQkp7+NoaefhKSs1pKt5JaDz4cHT/aL2p5nB9CAYKSECJFHDLspGOQmfZqWZQ5l49HdsONI0ZeOF06KGl47FEMvvSisn47x+yE+aeeaUwDHwIRlOh3kaBEv4cEJQ48JChxIDpBiXvRDVdAUGJYUEfhCEocCW84rSlQMvTnP0PdP/6+sLpUqvS582Jjo+GKGa6vAgQl8a+J5uuvReP9k3oTFZNJzLrnIRRGjjKWXDooSb0zHSMO3b+s37bDj0b7Xvsa08CHQAQl+l0kKNHvIUGJAw8JShyITlDiXnTDFRCUGBbUUTiCEkfCG05rCpT093LgOeNvqOiT04Zbq5lwBCXxW5369BM0Tbi69Dn1/MhR6PzBWHTssZfRxNJBSdDsoJuvR8OzT5feUdK94cZoPelUFJsHl+tQKKD+788i+ckMdG+2BfIrrWxUJ+nBCEqkOzRwfQQlA2ukYYS0PZXvKNGwapTXyEdvlBuIBS/JGtKUwcy5XfqbqeEOCEr8MN8UKAnedzNokd+4lz43fdf9QDLph1CCuyAoEWxOBaVJO9RXUHrZ0EU/PV9MJDDvvIvRvdXW1YZTN4+gRJ1lXymYoES/h0EH0vZUghI/1pXoLghKRNsTqjiCklAyiR9EUCLeolAFmgIlifnz0DjlYaTffAOF5VZA57bfR27NtULVwEHRFCAoiaaflNnSDvXV6BLcvBmx355lU7s33Rxzf3Vlv+ESHR2o5B9yBQAAIABJREFUC26fBF/R2XIrBIBV+w9BiXYH+dUb/Q4u6EDankpQ4svKEtwHQYlgc0KWRlASUijhwwhKhBsUsjxToCRkOg6LQQGCkhhEdRBS2qG+GgkqASWJ7m4MP/wABF/TCX6C9xnNueo65FZfo5rUYuYQlIixoupCeKOkaulETZS2pxKUiFoefhZDUKLfV4IS/R72kPpsroD2rrwfDdVoFwQl+o0nKNHvocTfflalarGIYUcdgsx//9M7ff7xP0Pnrrt/JVzdiy9g6Bknl/3z9h+OQ9vRJ1SVWsokghIpTlRfB0FJ9dpJmklQYtkNvszVsuD9pCMoce9B1AoISqIqKGM+b5TI8CFqFQQlURV0P5+gxL0HJiqQdqivtqdEezvqpr6E5KefILveBsh9/RtAIkFQUq2gnGddAYIS65LHklDansobJbHYzKCLKkBQon89EJTo9zDogKDEDx8JSvT7SFCi38OePTWXL6KtM+dHQwN10dmJkT/aDcnW+b0j51w+HtkNNx5opug/540S0faEKo6gJJRM4gcRlFi2iDdKLAveTzqCEvceRK2AoCSqgjLmE5TI8CFqFQQlURV0P5+gxL0HJiqQdqg30dNAMZKzZyHz6iull7l2b7SJF58SJigZyHX5f05QIt+jMBVK21N5oySMaxwTSQGCkkjyiZhMUCLChshFEJREllBEABegJPXxR6Xe88uvIEID7UUQlGh3cEH90g71fqhqvwuCEvuam85IUGJaUTfxpO2pBCVu1kFNZSUo0W83QYl+D3sO9XyZq34vbYKS4CsXQ846DXUvv1gSrnvDjTHvkstRrKvTL6TDDghKHIpvMLW0Q73B1moqFEGJfrsJSvR7KBE+E5T4sa5Ed0FQItqeUMURlISSSfwg3igRb1GoAm2Ckvq//gVDLjynrK75J52Gzh/sGqpWDupfAYISP1YGQYkfPhKU6PeRoES/hwQlDjzkO0ociN4nJUGJew+iVkBQElVBGfMJSmT4ELUKm6Ck6abrMOieu8pK9uFzoFE9iDqfoCSqgjLmE5TI8CFqFQQlURV0P5+gxL0HJiqQtqfyRokJVxljiQoQlOhfIAQl+j3sIfV89Ea/lzZBSfq//8HwIw8uE232VROQW28D/UI67ICgxKH4BlNLO9QbbK2mQhGU6LeboES/hz3nVElfEiMo8WNdie6CoES0PaGKIygJJZP4QbZulCRyOTRMeRiZl/+B/OiV0bH3figMHSZeHy0F2gQlgSYNTzyOzD/+XpKne7Nvomu7HbRIJabOzLRXEUCn3DrrIbv2uiAoEWNNpEIISiLJJ2YyQYkYK6ouhKCkaulETZS2pxKUiFoefhZDUKLfV4IS/R72kHobN0qabr4egybd2StabrU1MPvG2/wQUUAXtkGJgJZVl9B0600YdNfC9d92wCFoPPoI1GeSaJnXha5sQXV/tVy8tEN9LXsRpXeCkijqyZhLUCLDh6hVSNtTCUqiOsr5AypAUDKgROIHEJSItyhUgbZulIw4YB+kPvygrKaW+yajMHJUqDo5aMkKEJToWiGjxo5BorW1t+jC8BHA448TlOiysd9qpR3qPZDUSQsEJU5kN5qUoMSonM6CSdtTCUqcLYXaSUxQot9rghL9HgYd2AIlQ087sfdzsiXlUinMfPRJFNNpP4R03AVBiWMDKkxPUFKhYIqGSzvUK5JOVKkEJaLsqKoYgpKqZBM3SdqeSlAibon4VxBBiX5PCUr0e2gTlNQ//SQGX3YxEh0dKCYS6NzjR2g98lg/RBTQBUGJABMqKGHwpReh4bFHe2d07DwW9eecxRslFWgodai0Q71UnaTXRVAi3aGB6yMoGVgjDSOk7akEJRpWjfIaCUqUGwiAoES/hzZBSZAreKFr6p23UVhuBRSam/0QUEgXBCVCjAhZRvB3If3aVKTfnY78Gmsiu+76GDGiiaAkpH6Sh0k71EvWSnJtBCWS3QlXG0FJOJ2kj5K2pxKUSF8xHtRHUKLfRIIS/R7aBiV+KCazC4ISmb5UUhW/elOJWnLHSjvUy1VKdmUEJbL9CVMdQUkYleSPkbanEpTIXzPqKyQoUW8hb5Tot7DUga13lHgil9g2CEpitqZQQN2LLyD10QfIbrwZcquuZjwhQYlxSZ0ElHaodyKCB0kJSvSbSFCi38Oec2ouX0RbZ05EQwQlImzwuwiCEv3+8kaJfg8JSvzwMOiCoCReL4ec83PUP/t0KUnwjp35Z52Pru9sazQpQYlROZ0FIyhxJr3RxAQlRuV0EoygxInsxpNK21MJSoxbzIB9FSAo0b8mCEr0e0hQ4oeHBCXx+phsmYmRe40tS5LdYCPMueJao4mlgZJEdzcaJz9YepdKbpXV0Ln3j/luoRCOSzvUhyiZQ/pRgKBE/7IgKNHvYc85lTdKLHo5o6XDYjam6k8BghL964KgRL+HBCV+eEhQEq+PtQpKmq+6DI1THu4VNw44FK9zbqITlLjR3XRWghLTitqPR1BiX/M4MkrbU3mjJA6XGbNMAYIS/QuCoES/hwQlfnhIUBK/j8OPOQzpN9/oTdR61HHo2ONHRhNLu1Eycs9dkJw9q7fHYjKJlsmPoThokNG+fQsm7VDvm762+iEosaV0fHkISuLT1mZkaXsqQYlN92s0F0GJfuMJSvR7SFDih4cEJfH7mGhvR+a1qUjN+Ai5tdZBdu11gUTCaGJpoGTY0Yci859/LwQlTU2Y+cjjRnv2MZi0Q72PGtvoiaDEhsrx5iAoiVdfW9Gl7akEJbacr+E8BCX6zSco0e8hQYkfHhKU+OGjNFDS8Mffo/naK5Ho7ERwm6T9Jweiff+D/BA7xi6kHepjbNXr0AQl+u0lKNHvYc85le8osegl31FiUezFpCIoce9B1AoISqIqKGM+Pw8sw4eoVdj+6k3q/fcw+OpfI/2/t0q3K1qPPgH50StFbaOm50sDJYEZwQtdU++9g/zyK6LY1FTT/oRtnqAkrFKyxxGUyPYnTHUEJWFUkj9G2p7KGyXy14z6CglK1FsIghL9HvaQ+myugPauvB8N1WgXtkHJ8MN+ivT0t3vVzq67PuZcfV2Nqm+mbYmgxExntRVF2qG+ttQ31y1BiTktXUUiKHGlvNm80vZUghKz/jJaPwoQlOhfFgQl+j0kKPHDw6ALq6Akn8eoHb6LRKHQK2Axk8HMPz3lj6AOOiEocSB6DCmlHepjaLEmQhKU6LeZoES/hz3nVD56Y9FLPnpjUezFpCIoce9B1AoISqIqKGM+H72R4UPUKqyCEgDDD/4x0u+921t2do01Mef6W6K2UdPzCUr8sJ+gxA8fCUr0+0hQot9DghIHHhKUOBC9T0qCEvceRK2gYlDS1YXmG65F/RN/RnH4cLT99GB0bfP9qGVwfkQFCEoiCihkum1Qknn5RTTdcQvS705HdvWvo32/nyK76eZC1NBZBkGJTt/6Vk1Q4oePBCX6fSQo0e8hQYkDDwlKHIhOUOJedMMVVApKGh+8F80TrumtophIYPYd9yK/3PKGK2O4ShQgKKlELbljbYMSuUrorYygRK93i1ZOUOKHjwQl+n0kKNHvIUGJAw8JShyITlDiXnTDFVQKSgZfcDYannqirIp5Z56Lrm23M1wZw1WiAEFJJWrJHUtQItebsJURlIRVSvY4ghLZ/oStjqAkrFJyxxGUyPWmksqk7al8mWsl7nFsVQrw0ZuqZBM1qVJQMui+iWi64TdlPcy6/R7kV1hRVF+1VgxBiR+OE5To95GgRL+HQQfSDvV+qGq/C4IS+5qbzkhQYlpRN/Gk7akEJW7WQU1lJSjRb3eloCQ5dw6ar/o1MlNfLr2jpHO7HUrvNeCPWwUIStzqbyo7QYkpJd3FIShxp73JzNIO9SZ7q6VYBCX63SYo0e+hRPhMUOLHuhLdBUGJaHtCFVcpKAkVlIOsK0BQYl3yWBISlMQiq9WgBCVW5Y4tGUFJbNJaDUxQYlXuWJIRlMQiq/Wg0vZUghLrS6D2EhKU6PecoES/hz2kPpsroL0r70dDNdoFQYl+4wlK9Hso8beffqhqvwuCEvuam85IUGJaUTfxCEos686XuVoWvJ90BCXuPYhaAUFJVAVlzOeNEhk+RK2CoCSqgu7nE5S498BEBdIO9SZ6qsUYBCX6XSco0e+hRPjMGyV+rCvRXRCUiLYnVHEEJaFkEj+IoES8RaEKJCgJJZPoQQQlou0JXRxBSWipRA8kKBFtT6jiCEpCySR+kLQ9laBE/JLRXyBBiX4PCUr0e9hD6vnojX4vCUr0e0hQot9Dib/99ENV+10QlNjX3HRGghLTirqJR1BiWXc+emNZ8H7SEZS49yBqBQQlURWUMZ83SmT4ELUKgpKoCrqfT1Di3gMTFUg71JvoqRZjEJTod52gRL+HEuEzb5T4sa5Ed0FQItqeUMURlISSSfwgghLxFoUqkKAklEyiBxGUiLYndHEEJaGlEj2QoES0PaGKIygJJZP4QdL2VIIS8UtGf4EEJfo9JCjR72EPqeejN/q9JCjR7yFBiX4PJf720w9V7XdBUGJfc9MZCUpMK+omHkGJZd356I1lwftJR1Di3oOoFRCURFVQxnzeKJHhQ9QqCEqiKuh+PkGJew9MVCDtUG+ip1qMQVCi33WCEv0eSoTPvFHix7oS3QVBiWh7QhVXU6CkUED63XdQGDkShWHDQ+mjZRBBiRanllwnQYl+HwlK9Hso8VDvh6r2uyAosa+56YwEJaYVdRNPGnwmKHGzDmoqK0GJfrtrBZQkP/8MQ08+FukZH5dM6/jhOLQefYJ+A7/sgKDEDysJSvT7SFCi30OCEj88DLogKNHvJUGJfg8l7qkEJX6sK9FdEJSItidUcbUCSpqv/jUaH3moTJNZt05EfvRKoXSSPoigRLpD4eojKAmnk+RRBCWS3Qlfm7TffoavnCMXVYCgRP96ICjR7yFBiQMP+Y4SB6L3SUlQ4t6DqBXUCigZdtIxyEx7tUyueWeei65tt4sqoYj5BCUibIhcBEFJZAmdByAocW6BkQIISozI6DwIQYlzCyIXQFASWUIRAaTtqbxRImJZ+F0EQYl+f2sFlDQ+/CCax1/Ra1ixvh4t9z2CYnOzfhMBEJR4YSMISvT7SFCi30OJv/30Q1X7XRCU2NfcdEaCEtOKuolHUGJZd94osSx4P+kIStx7ELWCWgEl6OpC4+8fRmbaa6WXuXZtvQ2yG20SVT4x8wlKxFgRqRCCkkjyiZhMUCLChshFSDvUR26oRgMQlOg3nqBEv4cS4TNvlPixrkR3QVAi2p5QxdUMKAmlht5BBCV6vVu0coIS/T4SlOj3UOKh3g9V7XdBUGJfc9MZCUpMK+omnjT4TFDiZh3UVFaCEv12SwMliY4ONN43Een/vYXc2uuiY/dxKDY26hc65g4ISmIW2FJ4ghJLQseYhqAkRnEthpZ2qLfYulepCEr020lQot9DifCZoMSPdSW6C4IS0faEKk4aKBl69hmoe+6Z3tq7tvk+5v3ivFC91PIgghI/3Cco0e8jQYl+DyUe6v1Q1X4XBCX2NTedkaDEtKJu4kmDzwQlbtZBTWUlKNFvt0lQkvrgfdS99AIKyyyLri2/DSSTlQmUz2PU2DEIbpX0/AQvW505+bHK4tTgaIISP0wnKNHvI0GJfg8JSvzwMOiCoES/lwQl+j2UuKcSlPixrkR3QVAi2p5QxZkCJXUvvoChZ50G5HKlvN0bbYK5v74mVA2LDho5blckZ7X0/qP86JUw69aJFceptQkEJX44TlCi30eCEv0eSjzU+6Gq/S4ISuxrbjojQYlpRd3E440Sy7rzqzeWBe8nHUGJew+iVmAKlAw5+3TUP/e3snJm3zoRudErVVRi44P3ovnGCSXgUsxk0HbkcegY+8OKYtTiYIISP1wnKNHvI0GJfg8JSvzwMOiCoES/lwQl+j2UuKfyRokf60p0FwQlou0JVZw0UBIUnejsROrD95EbvTJQXx+qj1ofRFDixwogKNHvI0GJfg8lHur9UNV+FwQl9jU3nZGgxLSibuLxRoll3XmjxLLg/aQjKHHvQdQKTIGShscexeBLL+otJ7/Ciph12yQgkYhaIueHUICgJIRICoYQlCgwaYASCUr0e0hQ4oeHQRcEJfq9JCjR76HEPZU3SvxYV6K7ICgRbU+o4kyBkiBZ+q03kXn9nygsvQyyG26CQnNzqBo4KLoCBCXRNZQQgaBEggvRaiAoiaaflNnSfvspRRdtdRCUaHPsq/USlOj3kKDEgYe8UeJA9D4pCUrcexC1ApOgJGotnF+9AgQl1WsnaSZBiSQ3qquFoKQ63aTNIiiR5kh19RCUVKebpFkEJZLcqL4WaXsqb5RU7yVnhlSAoCSkUIKHEZQINqeC0ghKKhBL8FCCEsHmhCyNoCSkUMKHSTvUC5dLbHkEJWKtCV0YQUloqUQPlLanEpSIXi5+FEdQot9HghL9HgYdEJT44SNBiX4fCUr0e9izp+byRbR1LvjkPX90KkBQotO3RasmKNHvocQ9laDEj3UluguCEtH2hCqOoCSUTOIHEZSItyhUgQQloWQSPYigRLQ9oYuT9tvP0IVzYJkCBCX6FwRBiX4PCUoceMh3lDgQvU9KghL3HkStgKAkqoIy5hOUyPAhahUEJVEVdD+foMS9ByYqICgxoaL7GAQl7j2IWgFBSVQFZcyXtqfyRomMdeF1FQQl+u0lKNHvYQ+pz+YKaO/K+9FQjXZBUKLfeIIS/R5K/O2nH6ra74KgxL7mpjMSlJhW1E08ghLLuvNGiWXB+0lHUOLeg6gVEJREVVDGfN4okeFD1CoISqIq6H4+QYl7D0xUIO1Qb6KnWoxBUKLfdYIS/R5KhM+8UeLHuhLdBUGJaHtCFUdQEkom8YMISsRbFKpAgpJQMokeRFAi2p7QxRGUhJZK9ECCEtH2hCqOoCSUTOIHSdtTCUrELxn9BRKU6PeQoES/hz2kno/e6PeSoES/hwQl+j2U+NtPP1S13wVBiX3NTWckKDGtqJt4BCWWdeejN5YF7ycdQYl7D6JWQFASVUEZ83mjRIYPUasgKImqoPv5BCXuPTBRgbRDvYmeajEGQYl+1wlK9HsoET7zRokf60p0FwQlou0JVRxBSSiZxA8iKBFvUagCCUpCySR6EEGJaHtCF0dQEloq0QMJSkTbE6o4gpJQMokfJG1PJSgRv2T0F0hQot9DghL9HvaQej56o99LghL9HhKU6PdQ4m8//VDVfhcEJfY1N52RoMS0om7iEZRY1p2P3lgWvJ90BCXuPYhaAUFJVAVlzOeNEhk+RK2CoCSqgu7nE5S498BEBdIO9SZ6qsUYBCX6XSco0e+hRPjMGyV+rCvRXRCUiLYnVHEEJaFkEj+IoES8RaEKJCgJJZPoQQQlou0JXRxBSWipRA8kKBFtT6jiCEpCySR+kLQ9laBE/JLRXyBBiX4PCUr0e9hD6vnojX4vCUr0e0hQot9Dib/99ENV+10QlNjX3HRGghLTirqJR1BiWXc+emNZ8H7SEZS49yBqBQQlURWUMZ83SmT4ELUKgpKoCrqfT1Di3gMTFUg71JvoqRZjLD2sAV/M60ShUIvd+9EzQYkfPkrbU3mjxI91JboLghLR9oQqjqAklEziBxGUiLcoVIEEJaFkEj2IoES0PaGLk3aoD104B5YpQFCif0EQlOj3MOhA2p5KUOLHuhLdBUGJaHtCFUdQEkom8YMISsRbFKpAgpJQMokeRFAi2p7QxUk71IcunAMJSjxbAwQlfhgqbU9VBUpy+TySiSSSycRXVsP81nYEfz586OCyP+OjN+7/4hCUuPcgagUEJVEVlDGfoESGD1GrICiJqqD7+QQl7j0wUYG0Q72JnmoxBm+U6HedoES/h0EH0vZUNaCko7MbPzr8XBz2412w83Zb9q6G9o5OnHbhDXjyuVdL/2z9tVfD+AuPw6gRQ0v/n6DE/V8cghL3HkStgKAkqoIy5hOUyPAhahUEJVEVdD+foMS9ByYqkHaoN9FTLcYgKNHvOkGJfg8JSqr08NfX34tb7/ljafavzjy8DJTcPPEPuH/KU7hz/JlobKjDkadfiVVGL4sLTj2IoKRKvU1PIygxraj9eAQl9jWPIyNBSRyq2o9JUGJfc9MZCUpMK+omHkGJG91NZyUoMa2o/XgEJfY1jyOjtD1VxY2SOXNb0dndjX2PugAnHbZXGSjZ89BzMOa7m+HQ/XYu+fXYUy/ipHMn4PW/3opEIsEbJXGs4gpjEpRUKJjA4QQlAk2poiSCkipEEziFoESgKRWWRFBSoWBCh0s71AuVSXxZBCXiLRqwQIKSASVSMUDanqoClPQ4O2afU3DsQT8sAyWb7XgELjzt4BIsCX7+/d/3MO6wc/H8lN9g6OAmghIBfy0ISgSYELEEgpKIAgqZTlAixIiIZRCURBRQwHSCEgEmGChB2qHeQEs1GYKgRL/tBCX6PQw6kLanOgUlUx5/Hp9+MatfZ9f++srYarN1y/6sLygpFotYd5sDMeGSE/GdLTcojZ3+3sfY9YAz8Zd7L8eyS49EMIY/VIAK1KYCwa2yRX+6sgXUZ5K1KQa7pgJUgApQASpABRarQFc2j/pMigoZVoD/LWZYUIazpkDf/46ImjhRrOBvw92/+ws++uSLfnNuvN4a2G7rTZcISoI/DG6UXHT6Idj+OwvG8kZJVAvNz+eNEvOa2o7IGyW2FY8nH2+UxKOr7ai8UWJbcfP5eKPEvKYuIkr77acLDXzIyRsl+l3kjRL9HgYdSNtTnd4oqdTS/h69Cd5RssM2m+OQfX9QCsd3lFSqavzjCUri1zjuDAQlcStsJz5BiR2d485CUBK3wvHHJyiJX2MbGaQd6m307GMOghL9rhKU6PeQoKRKD3P5PIqFInbe/wwcsf+u2Pn7WyKTSZei3XT37/HA758uffVmUGM9jjjtCn71pkqd45pGUBKXsvbiEpTY0zrOTAQlcaprLzZBiT2t48pEUBKXsnbjEpTY1TuubAQlcSlrLy5BiT2t48wkbU9VcaMk+IpNcFNk0Z/f33FJCYi0tXfiZ+dfh2demFb643XXXAXjLzoeXxs1LE4fGZsKUAEqQAWoABWgAlSAClABKkAFqAAVoAIDKlDRO0oGjFbBgLnz25DN5jBqxNAKZnEoFaACVIAKUAEqQAWoABWgAlSAClABKkAF4lPAGSiJryVGpgJUgApQASpABagAFaACVIAKUAEqQAWoQHUKEJRUp1vNzfrk81lYetRwJJPln2+tOSGUNxzc4vq8ZQ6WGjEUdXUZ5d2wfCqgU4HgRmVXV5aPnCqyr7s7i9lzW0uemf78oCIZVJcavD/vi5a5GDFsMOr57z/VXrJ4PxQoFIr4vGU2mhobMLh5kB9N1VgX7R2dyGbzGDqkycvOCUq8tNVcU3fc/xiCz0Jnc7nSo1K77/h/OOnwvcwlYCQrCrz7wSc4+7JbMfVf/y3lO+vE/bH32G2t5GYSswoE/8F28MmXoaOzCw/cdJ7Z4IwWqwIzZ83F/sddjPc/+qyUZ7WVlsOh++2MXbb/Vqx5Gbx6BYrFIq674xH85taHSkGC/8i+9uITsMHaq1UflDOtKxB8SOCqmx7ozTvmu5vhnJMO8PZwb11gywk//nQmdjvwF9hnt215JrWsvYl081vbcdE1d2HK48+XwgV/H68492gToRnDkgKffTEbF151B16Y+mYp4zdWH42fH7cf1lpjJUsV2ElDUGJHZ5VZ3njrPex1+Lm49crTsflG38A7H3yCXfY/AxMnnMVDoiJHg81s23EnYsdtv4l9d/8e1lpjZXR2dWH40MGKumCp/9/enUdVcd1xAP8CLmBtFi2KdUnANTZUY6OJWzXxuBPilihGC0JMEYS4gFjUqgWMTzEoBkSjAhqPoFafBoXagiYQiU3UE2s0FjjE4JKGaDzWJW21p+d3DaTJgQSfb3jvDt/773szc+/nznsz87v3/kYE5KFtoWUTrHlF6mLEQIle58UXX16FNa8Q/sP7qxG0rbsOIj07D+/uSYaHexO9GtNAanviVAmmzEzA1rWx8O3mg+RNu7E/vxh/yX6dMyw1Ogd25hxG+5+3Qo/unVBx8QuEzLEgJGA0giaO0KgVrKoIyEP2S+HxKDt3ESEBoxgo0ey0kFkk8mzh5uqK4ICRGPhUD1y/cYszLDXrx3lxabh67TpSls2Ci6sLlq7KROXlr5BmmatZS364ugyUmKo77duYoyfOIHi2BbnbLOjQtrXa+cAxEZgXFsARUPtSG7q3FSnb8fafj+DQH1ejkZubocfizo0VkFHRA/nvw29oP+QWHGWgxFhuw/d+/lIlhgdEq4fwXr5dDD8eD3DvAqvSduBM6TlsTIxWG0uw65kJs9Rvz2wjZ/euo+8Wi1ZsxoVLldicFKNvIxpgzWX51MzY1fDybIlr12+iXZufMVCi2XlQ8N4JRCxYgwNvWfBIu7vPFiz6CcgAgvRfwvyXVeX35BZi7ebdKNiZpF9jfqDGDJSYqjvt25iqKf6flH6GyJBxuH7zFg4e/gCZybF4gGsJ7Ytt4N78A2Ph4d4UbVq3xKV/XFY396GB/vDybGHgUblrewscfOdDxCVlYuebS/Fu8UfY8fZhBkrsjVzP+5MbC5khVGhdq5Z0sDifQNQf1uHhB5tjwatTqyv3i8FBSH1tNgb17eF8FWaNflTgP7fvYHhAFEYP6Yu5oVxK/KNgTvSFZcnbUFp+HutXzEVMwgYGSpyob+paFUvKduzKeQcjnumD0k8vwLPlg2p2F5cz1lXQOb5XUHQcEQuTMWRgL5WWYWVqFoInjcIEv0HOUUE71YKBEjtB6rSbO3f+i81ZB2qt8pCBv4JPhzbqcxnBljWE8qB96mw5Xp48GhEh4zgzwQk6/OLnX2J//vu11mTK+GFqOr/c1D/1xGPpx/Y2AAAF/klEQVTqj6xJk0Z4c9t+SPKlvekJaNy4kRO0pGFX4djJv1fnjvm+hCyPkovO3z4pV7O7ZPTTt5s3duw7xECJk5028j/5eeWVGmvVvcuj6N/78e98VlJ+HpPD4hH4wnDMDB7rZK1hdaoEXolORNeOHb7zQN17ZCiWRAVh9JCnCaWhwOLEdBzIP4r9W5dzur9G/bfdmo+M7DzsWL9E5ZaZsySVgRKN+q+qqpGLknG2tEIte5OXROQd+qu6l83Z8hq8v3n20LBZDa7KkidoetRKdPFpj/c+OAX3po1VqoZO3m1NZcFAiam6s26NkamLMp24tjJmxAB07dgehUdPIjTmdRTnpKoZJPJDmPX7NxAV+iImMhFo3bAN/JYkhMzaW1DrESKCx6KZh7sKlCTHRaqorxRJ7Or3m99h96Y41c8sjhWQ39mRDz+usRIyy0CSfcYlbUHxsY8xuG9P9b3TJecgOYRe8BuEGYHPM1u8Y7tQHV2SXstSmppKL9/OGPrrJ6s/khuMqREJ6N2zG5bNnw43N1cnaAGrUJOAzCiR32Fs5JTqjzmjRN9zJTXDipQMK7LSFqugM4s+ArJMUab6d3r07oNYftFxde2TRKBynWTRQ0ACJW29PBETHqAqLIO3g8e/ihmBY1QePRY9BCb+dikG9euJsMDnVd6gxYkZ6rmxOCfFVIPpDJTocT46pJaSIV6mVu3LXFZ9/PDY1SoJ4YpFoQ6pEw967wITpi9WI5/TJo1UG5d9egH+QQt4o3jvlA7bQi4+Z0rOVR//o9NlOHm6DFMnDMOU8UNVQIxFD4HS8guYNns5nh3QS719inmDnLvfZFDhbNln2LAySlWUOUqcu79qq50kkFyVlq1m4mWumQ+Z5cWil0D23gLIq9WriiQ1b/HQA3huaF8O3mnUlfKfWlJeUZ30UwIlT/uFIXzaGAS9yOTKOnTljZtfo8+oUKyNj1T3MlKqXgBiTY9HZ+92OjSjTnVkoKROTA3zSzI1NTpuHdIsczCgjy8qLlZi5EvzED1jEjPFa3RKyDKr9KxcFRhp/hMPJK3fifyiYziYtYpv2tCoH/+/qlx6o2fHnS2rwLiQRSpwKUsYXV3vziRp5tGUb6Fy0i799q03C+D7mA/WbNylEirzrTdO2mG1VEtyAUlOIHkjg88jd5cWS2nt+TCDlXp1ZXVtufRGz46TgZ7JYXEq+NynZzdY/1SEJYkZTJCtWXfKDC/vDl6wLAxFM/em6vXrh46cUIPrZhoAYqBEsxOzPqsrIzDr39oHa24Rrlz9J37a3AP+w/ojfNpYNG7Et6fUZ1/cz7EkKW/s8o3qLSlVN4arl87EL7t3vJ/dclsHCjBQ4kD8+zi0/AZlKcf3y3PD+mF57Cv3sWduapSAvJL7jfQ9SNuy75ugljs2rJyLJx7vbNQhuV8DBOSmvqalcXzzhgHY9bRLBkrqCdqAw8jgXWJadvWe42NCVB49Fn0EZJbzui17kV94XM1qfrJHV7UMRwYUzFQYKDFTbxrYFkkc6tWqJVxdXQw8CndtpIC8Su/GjVvwatUCLi7sRyOtuW8KUMBcAl//69+48tU1XgfN1a1sDQUo4CAB+U+tvHxV/ady8NVBnWCHw8oynNu376gEy2YsDJSYsVfZJgpQgAIUoAAFKEABClCAAhSgAAVsEmCgxCY2bkQBClCAAhSgAAUoQAEKUIACFKCAGQUYKDFjr7JNFKAABShAAQpQgAIUoAAFKEABCtgkwECJTWzciAIUoAAFKEABClCAAhSgAAUoQAEzCjBQYsZeZZsoQAEKUIACFKAABShAAQpQgAIUsEmAgRKb2LgRBShAAQpQgAIUoAAFKEABClCAAmYUYKDEjL3KNlGAAhSgAAUoQAEKUIACFKAABShgkwADJTaxcSMKUIACFKAABShAAQpQgAIUoAAFzCjAQIkZe5VtogAFKEABClCAAhSgAAUoQAEKUMAmAQZKbGLjRhSgAAUoQAEKUIACFKAABShAAQqYUYCBEjP2KttEAQpQgAIUoAAFKEABClCAAhSggE0C/wM3SoeWb1CdbgAAAABJRU5ErkJggg==", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# We humans find it easier to visalize things in 2D!\n", "# Reduce the dimensionality of the vectors to 2D using t-SNE\n", "# (t-distributed stochastic neighbor embedding)\n", "\n", "tsne = TSNE(n_components=2, random_state=42)\n", "reduced_vectors = tsne.fit_transform(vectors)\n", "\n", "# Create the 2D scatter plot\n", "fig = go.Figure(data=[go.Scatter(\n", " x=reduced_vectors[:, 0],\n", " y=reduced_vectors[:, 1],\n", " mode='markers',\n", " marker=dict(size=5, color=colors, opacity=0.8),\n", " text=[f\"Type: {t}
Text: {d[:100]}...\" for t, d in zip(doc_types, documents)],\n", " hoverinfo='text'\n", ")])\n", "\n", "fig.update_layout(\n", " title='2D Chroma Vector Store Visualization',\n", " scene=dict(xaxis_title='x',yaxis_title='y'),\n", " width=800,\n", " height=600,\n", " margin=dict(r=20, b=10, l=10, t=40)\n", ")\n", "\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 10, "id": "e1418e88-acd5-460a-bf2b-4e6efc88e3dd", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hoverinfo": "text", "marker": { "color": [ "red", "orange", "blue", "blue", "green", "green", "blue", "blue", "green", "red", "green", "red", "red", "red", "red", "green", "blue", "green", "green", "green", "green", "green", "red", "red", "green", "green", "red", "green", "red", "green", "red", "red", "red", "green", "green", "blue", "red", "red", "green", "red", "red", "blue", "green", "red", "red", "green", "red", "red", "green", "red", "red", "green", "red", "blue", "red", "red", "red", "red", "red", "green", "green", "red", "green", "blue", "green", "red", "green", "blue", "green", "red", "red", "red", "green", "orange", "green", "red", "blue", "red", "red", "green", "green", "blue", "red", "red", "red", "red", "green", "green", "green", "blue", "green", "green", "red", "green", "red", "blue", "red", "green", "blue", "green", "red", "blue", "green", "green", "green", "blue", "blue", "red", "red", "blue", "green", "green", "green", "red", "green", "blue", "red", "red", "red", "blue", "green", "orange", "red" ], "opacity": 0.8, "size": 5 }, "mode": "markers", "text": [ "Type: contracts
Text: ---\n\n## Features\n\n1. **Access to Core Features**: Roadway Insurance Inc. will have access to all Pro...", "Type: company
Text: # About Insurellm\n\nInsurellm was founded by Avery Lancaster in 2015 as an insurance tech startup des...", "Type: products
Text: Experience the future of reinsurance with Rellm, where innovation meets reliability. Let Insurellm h...", "Type: products
Text: - **User-Friendly Interface**: Designed with user experience in mind, Markellm features an intuitive...", "Type: employees
Text: - **2010 - 2013**: Business Analyst at Edge Analytics \n Prior to joining Innovate, Avery worked as...", "Type: employees
Text: ## Annual Performance History\n- **2019:** Exceeds Expectations - Continuously delivered high-quality...", "Type: products
Text: - **Professional Tier**: $2,500/month\n - For medium-sized companies.\n - All Basic Tier features pl...", "Type: products
Text: - **Instant Quoting**: With Carllm, insurance companies can offer near-instant quotes to customers, ...", "Type: employees
Text: - **2022**: \n - **Base Salary**: $65,000 (Promotion to Senior SDR) \n - **Bonus**: $13,000 (20% o...", "Type: contracts
Text: ## Renewal\n\n1. **Automatic Renewal**: This contract shall automatically renew for additional one-yea...", "Type: employees
Text: # HR Record\n\n# Maxine Thompson\n\n## Summary\n- **Date of Birth:** January 15, 1991 \n- **Job Title:** ...", "Type: contracts
Text: # Contract with TechDrive Insurance for Carllm\n\n**Contract Date:** October 1, 2024 \n**Contract Dura...", "Type: contracts
Text: 4. **Payment Terms**: \n - The Customer shall pay an amount of $10,000 per month for the Standard T...", "Type: contracts
Text: ## Support\n1. **Technical Support**: Insurellm shall provide 24/7 technical support via an email and...", "Type: contracts
Text: # Contract with Apex Reinsurance for Rellm: AI-Powered Enterprise Reinsurance Solution\n\n## Terms\n\n1....", "Type: employees
Text: - **2023:** Base Salary - $70,000 \n Recognized for substantial improvement in employee relations m...", "Type: products
Text: # Product Summary\n\n# Carllm\n\n## Summary\n\nCarllm is an innovative auto insurance product developed by...", "Type: employees
Text: ## Annual Performance History \n- **2022** - Rated as \"Exceeds Expectations.\" Alex Thomson achieved ...", "Type: employees
Text: ## Compensation History\n- **March 2018**: Initial salary of $80,000.\n- **July 2019**: Salary increas...", "Type: employees
Text: - **January 2017 - May 2018**: Marketing Intern \n - Supported the Marketing team by collaborating ...", "Type: employees
Text: # HR Record\n\n# Emily Carter\n\n## Summary\n- **Date of Birth:** August 12, 1990 \n- **Job Title:** Acco...", "Type: employees
Text: ## Other HR Notes\n- Jordan K. Bishop has been an integral part of club initiatives, including the In...", "Type: contracts
Text: 1. **AI-Powered Risk Assessment:** Access to advanced AI algorithms for real-time risk evaluations.\n...", "Type: contracts
Text: # Contract with Belvedere Insurance for Markellm\n\n## Terms\nThis Contract (\"Agreement\") is made and e...", "Type: employees
Text: ## Annual Performance History\n- **2020:** Exceeds Expectations \n Samantha Greene demonstrated exce...", "Type: employees
Text: ## Annual Performance History\n- **2021:** First year at Insurellm; achieved 90% of monthly targets. ...", "Type: contracts
Text: 3. **Training and Onboarding:** \n Insurellm agrees to provide one free training session on how to...", "Type: employees
Text: ## Compensation History\n- **June 2018:** Starting Salary - $85,000\n- **June 2019:** Salary Increase ...", "Type: contracts
Text: ## Features\nStellar Insurance Co. will receive access to the following features of the Rellm product...", "Type: employees
Text: ## Annual Performance History \n- **2021**: \n - **Performance Rating**: 4.5/5 \n - **Key Achievem...", "Type: contracts
Text: # Contract with Stellar Insurance Co. for Rellm\n\n## Terms\nThis contract is made between **Insurellm*...", "Type: contracts
Text: # Contract with Roadway Insurance Inc. for Carllm\n\n---\n\n## Terms\n\n1. **Agreement Effective Date**: T...", "Type: contracts
Text: ---\n\n## Features\n\n- **AI-Powered Risk Assessment**: Customer will have access to enhanced risk evalu...", "Type: employees
Text: - **Professional Development Goals**: \n - Emily Tran aims to become a Marketing Manager within the...", "Type: employees
Text: ## Compensation History\n- **2020:** Base Salary: $80,000 \n- **2021:** Base Salary Increase to $90,0...", "Type: products
Text: All tiers include a comprehensive training program and ongoing updates to ensure optimal performance...", "Type: contracts
Text: ______________________________ \n[Name], [Title] \nDate: ______________________\n\n**For Greenstone In...", "Type: contracts
Text: # Contract with EverGuard Insurance for Rellm: AI-Powered Enterprise Reinsurance Solution\n\n**Contrac...", "Type: employees
Text: ## Compensation History\n- **2015**: $150,000 base salary + Significant equity stake \n- **2016**: $1...", "Type: contracts
Text: 1. **Customer Support**: Insurellm will provide EverGuard Insurance with 24/7 customer support, incl...", "Type: contracts
Text: ---\n\n## Support\n\n1. **Technical Support**: Roadway Insurance Inc. will receive priority technical su...", "Type: products
Text: ### Regulatory Compliance Tools\nRellm includes built-in compliance tracking features to help organiz...", "Type: employees
Text: Emily Carter exemplifies the kind of talent that drives Insurellm's success and is an invaluable ass...", "Type: contracts
Text: ## Support\nInsurellm provides Stellar Insurance Co. with the following support services:\n\n- **24/7 T...", "Type: contracts
Text: 3. **Regular Updates:** Insurellm will offer ongoing updates and enhancements to the Homellm platfor...", "Type: employees
Text: # HR Record\n\n# Alex Chen\n\n## Summary\n- **Date of Birth:** March 15, 1990 \n- **Job Title:** Backend ...", "Type: contracts
Text: 2. **Seamless Integrations**: The architecture of Rellm allows for easy integration with existing sy...", "Type: contracts
Text: ### Termination\nEither party may terminate this agreement with a **30-day written notice**. In the e...", "Type: employees
Text: Alex Chen continues to be a vital asset at Insurellm, contributing significantly to innovative backe...", "Type: contracts
Text: **Belvedere Insurance** \nSignature: ______________________ \nName: [Authorized Signatory] \nTitle: ...", "Type: contracts
Text: ## Support\n\n1. **Customer Support**: Insurellm will provide 24/7 customer support to TechDrive Insur...", "Type: employees
Text: # HR Record\n\n# Jordan K. Bishop\n\n## Summary\n- **Date of Birth:** March 15, 1990\n- **Job Title:** Fro...", "Type: contracts
Text: 3. **Service Level Agreement (SLA):** \n Insurellm commits to a 99.9% uptime for the platform with...", "Type: products
Text: ### Q2 2025: Customer Experience Improvements\n- Launch of a new **mobile app** for end-users.\n- Intr...", "Type: contracts
Text: ## Renewal\n1. **Renewal Terms**: At the end of the initial term, this Contract shall automatically r...", "Type: contracts
Text: # Contract with BrightWay Solutions for Markellm\n\n**Contract Date:** October 5, 2023 \n**Contract ID...", "Type: contracts
Text: ## Renewal\n\n1. **Automatic Renewal**: This Agreement will automatically renew for successive one-yea...", "Type: contracts
Text: ## Support\n1. **Customer Support Access**: The Client will have access to dedicated support through ...", "Type: contracts
Text: 1. **Core Functionality**: Rellm provides EverGuard Insurance with advanced AI-driven analytics, sea...", "Type: employees
Text: ## Annual Performance History\n- **2018**: **3/5** - Adaptable team player but still learning to take...", "Type: employees
Text: - **Engagement in Company Culture:** Regularly participates in team-building events and contributes ...", "Type: contracts
Text: # Contract with GreenField Holdings for Markellm\n\n**Effective Date:** November 15, 2023 \n**Contract...", "Type: employees
Text: - **2022**: **Satisfactory** \n Avery focused on rebuilding team dynamics and addressing employee c...", "Type: products
Text: # Product Summary\n\n# Markellm\n\n## Summary\n\nMarkellm is an innovative two-sided marketplace designed ...", "Type: employees
Text: ## Annual Performance History\n- **2023:** Rating: 4.5/5 \n *Samuel exceeded expectations, successfu...", "Type: contracts
Text: # Contract with GreenValley Insurance for Homellm\n\n**Contract Date:** October 6, 2023 \n**Contract N...", "Type: employees
Text: ## Compensation History\n- **2017**: $70,000 (Junior Data Engineer) \n- **2018**: $75,000 (Junior Dat...", "Type: products
Text: - **Basic Tier:** Starting at $5,000/month for small insurers with basic integration features.\n- **S...", "Type: employees
Text: # HR Record\n\n# Samuel Trenton\n\n## Summary\n- **Date of Birth:** April 12, 1989 \n- **Job Title:** Sen...", "Type: contracts
Text: 2. **Real-Time Quote Availability:** \n Consumers sourced via BrightWay Solutions will receive rea...", "Type: contracts
Text: ## Features\n1. **AI-Powered Matching**: Access to advanced algorithms that connect GreenField Holdin...", "Type: contracts
Text: ## Renewal\n1. **Automatic Renewal**: This contract will automatically renew for sequential one-year ...", "Type: employees
Text: - **2018**: **Exceeds Expectations** \n Under Avery’s pivoted vision, Insurellm launched two new su...", "Type: company
Text: # Careers at Insurellm\n\nInsurellm is hiring! We are looking for talented software engineers, data sc...", "Type: employees
Text: # HR Record\n\n# Jordan Blake\n\n## Summary\n- **Date of Birth:** March 15, 1993 \n- **Job Title:** Sales...", "Type: contracts
Text: # Contract with Pinnacle Insurance Co. for Homellm\n\n## Terms\nThis contract (\"Contract\") is entered i...", "Type: products
Text: ### For Insurance Companies:\n- **Basic Listing Fee**: $199/month for a featured listing on the platf...", "Type: contracts
Text: ## Renewal\n1. **Renewal Terms**: This Agreement may be renewed for additional one-year terms upon mu...", "Type: contracts
Text: ## Renewal\n\n1. **Automatic Renewal**: This contract will automatically renew for successive 12-month...", "Type: employees
Text: ## Annual Performance History\n- **2020:** \n - Completed onboarding successfully. \n - Met expecta...", "Type: employees
Text: # HR Record\n\n# Alex Thomson\n\n## Summary\n- **Date of Birth:** March 15, 1995 \n- **Job Title:** Sales...", "Type: products
Text: # Product Summary\n\n# Homellm\n\n## Summary\nHomellm is an innovative home insurance product developed b...", "Type: contracts
Text: **Signatures:** \n_________________________ _________________________ \n**...", "Type: contracts
Text: ## Support\n1. **Technical Support**: Technical support will be available from 9 AM to 7 PM EST, Mond...", "Type: contracts
Text: - **Customer Portal**: A dedicated portal will be provided, allowing the Customer's clients to manag...", "Type: contracts
Text: # Contract with Velocity Auto Solutions for Carllm\n\n**Contract Date:** October 1, 2023 \n**Contract ...", "Type: employees
Text: ## Other HR Notes\n- **Professional Development**: Avery has actively participated in leadership trai...", "Type: employees
Text: # HR Record\n\n# Oliver Spencer\n\n## Summary\n- **Date of Birth**: May 14, 1990 \n- **Job Title**: Backe...", "Type: employees
Text: - **2021**: *Exceeds Expectations* \n Maxine spearheaded the transition to a new data warehousing s...", "Type: products
Text: With Homellm, Insurellm is committed to transforming the landscape of home insurance, ensuring both ...", "Type: employees
Text: ## Compensation History\n- **2020:** Base Salary - $55,000 \n The entry-level salary matched industr...", "Type: employees
Text: # Avery Lancaster\n\n## Summary\n- **Date of Birth**: March 15, 1985 \n- **Job Title**: Co-Founder & Ch...", "Type: contracts
Text: ---\n\n## Renewal\n\n1. **Automatic Renewal**: This agreement will automatically renew for an additional...", "Type: employees
Text: ## Other HR Notes\n- Jordan has shown an interest in continuing education, actively participating in ...", "Type: contracts
Text: ## Features\n1. **AI-Powered Risk Assessment**: Utilized for tailored underwriting decisions specific...", "Type: products
Text: ### Q3 2025\n- Initiate a comprehensive marketing campaign targeting both consumers and insurers to i...", "Type: contracts
Text: ## Support\n\n1. **Customer Support**: Velocity Auto Solutions will have access to Insurellm’s custome...", "Type: employees
Text: # HR Record\n\n# Alex Harper\n\n## Summary\n- **Date of Birth**: March 15, 1993 \n- **Job Title**: Sales ...", "Type: products
Text: # Product Summary\n\n# Rellm: AI-Powered Enterprise Reinsurance Solution\n\n## Summary\n\nRellm is an inno...", "Type: employees
Text: - **2021**: \n - Performance Rating: Meets Expectations \n - Key Achievements: Contributed to the ...", "Type: contracts
Text: ## Features\n1. **AI-Powered Matching**: Belvedere Insurance will benefit from Markellm's AI-powered ...", "Type: products
Text: ### Seamless Integrations\nRellm's architecture is designed for effortless integration with existing ...", "Type: employees
Text: - **2017-2019:** Marketing Intern \n - Assisted with market research and campaign development for s...", "Type: employees
Text: # HR Record\n\n# Emily Tran\n\n## Summary\n- **Date of Birth:** March 18, 1991 \n- **Job Title:** Digital...", "Type: employees
Text: ## Insurellm Career Progression\n- **January 2017 - October 2018**: **Junior Data Engineer** \n * Ma...", "Type: products
Text: ### 2. Dynamic Pricing Model\nWith Homellm's innovative dynamic pricing model, insurance providers ca...", "Type: products
Text: - **Mobile Integration**: Carllm is designed to work seamlessly with mobile applications, providing ...", "Type: contracts
Text: **Insurellm, Inc.** \n_____________________________ \nAuthorized Signature \nDate: ________________...", "Type: contracts
Text: ---\n\n**Signatures** \n**For Insurellm**: __________________________ \n**Name**: John Smith \n**Title...", "Type: products
Text: Join the growing number of organizations leveraging Rellm to enhance their reinsurance processes whi...", "Type: employees
Text: ## Annual Performance History\n- **2017**: *Meets Expectations* \n Maxine showed potential in her ro...", "Type: employees
Text: # Samantha Greene\n\n## Summary\n- **Date of Birth:** October 14, 1990\n- **Job Title:** HR Generalist\n-...", "Type: employees
Text: ## Compensation History\n- **2023:** Base Salary: $115,000 + Bonus: $15,000 \n *Annual bonus based o...", "Type: contracts
Text: # Contract with Greenstone Insurance for Homellm\n\n---\n\n## Terms\n\n1. **Parties**: This Contract (\"Agr...", "Type: employees
Text: ## Other HR Notes\n- Alex Thomson is an active member of the Diversity and Inclusion committee at Ins...", "Type: products
Text: - **Customer Support**: Our dedicated support team is always available to assist both consumers and ...", "Type: contracts
Text: 4. **Confidentiality:** Both parties agree to maintain the confidentiality of proprietary informatio...", "Type: contracts
Text: **TechDrive Insurance Representative:** \nName: Sarah Johnson \nTitle: Operations Director \nDate: _...", "Type: contracts
Text: 4. **Usage Rights**: EverGuard Insurance is granted a non-exclusive, non-transferable license to acc...", "Type: products
Text: ### 5. Multi-Channel Integration\nHomellm seamlessly integrates into existing insurance platforms, pr...", "Type: employees
Text: ## Compensation History\n| Year | Base Salary | Bonus | Total Compensation |\n|------|--------...", "Type: company
Text: # Overview of Insurellm\n\nInsurellm is an innovative insurance tech firm with 200 employees across th...", "Type: contracts
Text: 1. **Technical Support**: Provider shall offer dedicated technical support to the Client via phone, ..." ], "type": "scatter3d", "x": [ 41.750866, -28.82558, -49.46155, -14.781235, 3.2925687, -38.860855, -67.45323, 38.444588, -17.339252, -11.428553, 12.002091, 88.38842, 10.698732, 3.1593003, 84.658554, -47.35824, 84.1879, -87.41901, -71.91026, 172.51678, 17.656895, 3.95993, 86.745514, 81.50416, -57.501205, -50.69299, 40.582718, -46.309544, -31.67646, -75.1455, 59.18587, 3.367395, 19.897453, -95.431076, -51.707855, 17.18865, 93.832855, 65.19243, -71.37873, 39.42858, 13.105226, 35.19745, -64.18027, 45.774452, -1.5766183, 44.493168, 65.48207, 35.590073, -54.5107, 73.169464, -11.059894, 17.857668, -38.42094, -55.742943, 28.378313, -25.534872, -21.318537, -5.824397, 73.97905, -66.29079, -99.821754, 53.327194, -16.738876, -11.827804, -80.52663, 8.074037, -33.517147, 29.170238, 35.219288, 68.9576, 21.269403, 29.493034, -10.91277, -56.917755, 21.835873, 82.8611, -12.176172, 9.552922, 2.9697797, -45.44942, 70.17945, -15.418205, 71.94711, 21.222935, 19.941376, -20.261715, 72.24155, 28.9955, -14.781367, -19.136507, -67.45435, -0.43209076, 4.885929, -10.1578245, 26.23692, -36.854168, -16.708477, 13.298445, 18.646803, -43.792553, 13.209886, -34.73028, -29.488256, -8.687144, -9.4225855, 5.933395, -53.07472, 69.896095, 45.97319, -68.865776, -30.818365, -48.996628, -55.303497, 42.139908, 37.305794, -8.731468, 21.48524, -29.508322, 48.899544, 7.701462, -73.76608, -44.717712, 47.389477 ], "y": [ 60.34471, 28.600676, 31.592196, 50.03923, -11.867207, -41.398212, 55.113503, 58.32167, -33.791435, -19.570446, -72.55041, 47.176125, 48.35892, -98.68699, 6.015693, -88.86991, -5.156401, -8.9056, -53.155376, -169.15776, -7.4900556, -66.46453, -44.53888, 13.671676, -63.883698, -5.876759, -21.4466, -63.277294, 34.533344, -9.91813, -14.823333, -33.647045, 74.54713, -13.756689, -35.929436, 81.11366, -14.436095, 22.2421, -18.977745, -58.7369, -29.02803, 37.65716, -4.1405773, -37.314182, 5.7318244, -65.70727, 37.313694, -10.925887, 6.524822, -16.79985, -39.482323, -56.403095, -1.1196537, 79.29785, 9.143795, 26.280247, 96.1886, 117.05271, -29.445612, -34.385376, -48.711792, 13.756402, 1.2981796, 60.472275, -36.430008, 14.058883, -59.479954, 85.49248, -56.35141, 61.912525, 109.14355, 23.659788, -19.87174, 29.418293, -36.454094, 8.213232, 94.3582, 24.867867, -36.279114, -25.281729, 88.13816, 60.257545, -13.958173, -45.80677, -12.220978, -49.204247, 62.14346, -81.24458, -37.158817, 32.688732, -74.88259, 30.107738, -5.23695, -80.367966, 95.60909, 75.291885, -59.296333, -23.390837, 25.834312, -6.456857, 57.22132, 66.98884, 10.3650055, -7.0513325, -58.306, 70.339676, 68.54775, -36.179733, -3.3929563, 70.40852, -53.28832, -93.29827, -38.868942, 0.010987842, 9.518602, 73.08043, 15.831538, -22.110334, 18.838352, 46.03735, -59.96746, 38.920666, -41.488174 ], "z": [ 3.808851, -35.29386, 44.75226, -12.403152, -23.611027, 8.005094, 10.212335, 48.96818, -85.77286, 71.47876, -71.332596, -11.72269, 78.740005, -13.99664, 31.106588, -31.336842, 165.26576, -55.48837, -70.94712, 37.591892, -57.35591, -0.82806855, 11.767496, -2.5918238, -11.418927, -38.97731, -2.9574022, -85.25509, 9.527347, -28.2725, 71.29447, 112.29212, 20.60799, 19.514833, -71.23154, -53.780437, -36.512856, 38.47178, -84.4436, 46.33398, 50.74256, -34.58873, 33.887215, 61.27701, 32.166653, -21.653732, -46.998405, 82.397194, 10.574581, -13.00487, 40.57218, -20.914307, 79.23905, -7.2772064, 115.416595, 82.651634, 41.787716, -27.17169, 42.637978, -1.7416909, -12.700832, 4.154406, -9.182805, -34.13739, -37.413242, 61.46535, -57.52305, -28.967993, -49.975708, 24.519459, 5.692571, 95.5376, -3.8313167, -22.142488, -65.50869, 68.70537, -16.803532, 114.86944, 79.03885, -11.626741, -10.620314, 31.28921, -48.257153, 20.09013, 21.248896, 92.11803, 69.40275, -34.522697, -29.961746, 40.430367, -40.07309, -60.57658, 97.27808, 15.003651, 38.805393, -30.729324, 58.142456, -88.64621, 0.805048, -68.10785, -15.976027, 63.50223, -94.276436, -59.107044, -46.332165, 44.183353, 24.767155, -34.17877, -32.1744, -30.471975, -17.258196, -5.033538, -45.584045, 30.51072, -85.99421, -3.1549246, 41.89131, 40.441116, 60.61782, 26.837004, 22.837212, -47.046772, 23.657904 ] } ], "layout": { "height": 700, "margin": { "b": 10, "l": 10, "r": 20, "t": 40 }, "scene": { "aspectmode": "auto", "aspectratio": { "x": 0.9994818215509507, "y": 1.0503917961993352, "z": 0.9525192891998673 }, "xaxis": { "title": { "text": "x" }, "type": "linear" }, "yaxis": { "title": { "text": "y" }, "type": "linear" }, "zaxis": { "title": { "text": "z" }, "type": "linear" } }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "3D Chroma Vector Store Visualization" }, "width": 900 } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Let's try 3D!\n", "\n", "tsne = TSNE(n_components=3, random_state=42)\n", "reduced_vectors = tsne.fit_transform(vectors)\n", "\n", "# Create the 3D scatter plot\n", "fig = go.Figure(data=[go.Scatter3d(\n", " x=reduced_vectors[:, 0],\n", " y=reduced_vectors[:, 1],\n", " z=reduced_vectors[:, 2],\n", " mode='markers',\n", " marker=dict(size=5, color=colors, opacity=0.8),\n", " text=[f\"Type: {t}
Text: {d[:100]}...\" for t, d in zip(doc_types, documents)],\n", " hoverinfo='text'\n", ")])\n", "\n", "fig.update_layout(\n", " title='3D Chroma Vector Store Visualization',\n", " scene=dict(xaxis_title='x', yaxis_title='y', zaxis_title='z'),\n", " width=900,\n", " height=700,\n", " margin=dict(r=20, b=10, l=10, t=40)\n", ")\n", "\n", "fig.show()" ] }, { "cell_type": "markdown", "id": "9468860b-86a2-41df-af01-b2400cc985be", "metadata": {}, "source": [ "## Time to use LangChain to bring it all together" ] }, { "cell_type": "code", "execution_count": 11, "id": "129c7d1e-0094-4479-9459-f9360b95f244", "metadata": {}, "outputs": [], "source": [ "# create a new Chat with OpenAI\n", "llm = ChatOpenAI(temperature=0.7, model_name=MODEL)\n", "\n", "# set up the conversation memory for the chat\n", "memory = ConversationBufferMemory(memory_key='chat_history', return_messages=True)\n", "\n", "# the retriever is an abstraction over the VectorStore that will be used during RAG\n", "retriever = vectorstore.as_retriever()\n", "\n", "# putting it together: set up the conversation chain with the GPT 3.5 LLM, the vector store and memory\n", "conversation_chain = ConversationalRetrievalChain.from_llm(llm=llm, retriever=retriever, memory=memory)" ] }, { "cell_type": "code", "execution_count": 12, "id": "968e7bf2-e862-4679-a11f-6c1efb6ec8ca", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Insurellm is an innovative insurance tech startup founded in 2015 by Avery Lancaster, designed to disrupt the insurance industry with advanced software products. It offers solutions such as Carllm for auto insurance, Homellm for home insurance, Rellm for reinsurance, and Marketllm, a marketplace connecting consumers with insurance providers, and has expanded to serve over 300 clients worldwide with 200 employees across the US.\n" ] } ], "source": [ "# Let's try a simple question\n", "\n", "query = \"Please explain what Insurellm is in a couple of sentences\"\n", "result = conversation_chain.invoke({\"question\": query})\n", "print(result[\"answer\"])" ] }, { "cell_type": "markdown", "id": "bbbcb659-13ce-47ab-8a5e-01b930494964", "metadata": {}, "source": [ "## Now we will bring this up in Gradio using the Chat interface -\n", "\n", "A quick and easy way to prototype a chat with an LLM" ] }, { "cell_type": "code", "execution_count": 13, "id": "c3536590-85c7-4155-bd87-ae78a1467670", "metadata": {}, "outputs": [], "source": [ "# Wrapping that in a function\n", "\n", "def chat(question, history):\n", " result = conversation_chain.invoke({\"question\": question})\n", " return result[\"answer\"]" ] }, { "cell_type": "code", "execution_count": 14, "id": "b252d8c1-61a8-406d-b57a-8f708a62b014", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running on local URL: http://127.0.0.1:7862\n", "\n", "To create a public link, set `share=True` in `launch()`.\n" ] }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# And in Gradio:\n", "\n", "view = gr.ChatInterface(chat).launch()" ] }, { "cell_type": "code", "execution_count": 15, "id": "b55e9abb-e1da-46c5-acba-911868aee329", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "\u001b[1m> Entering new ConversationalRetrievalChain chain...\u001b[0m\n", "\n", "\n", "\u001b[1m> Entering new StuffDocumentsChain chain...\u001b[0m\n", "\n", "\n", "\u001b[1m> Entering new LLMChain chain...\u001b[0m\n", "Prompt after formatting:\n", "\u001b[32;1m\u001b[1;3mSystem: Use the following pieces of context to answer the user's question. \n", "If you don't know the answer, just say that you don't know, don't try to make up an answer.\n", "----------------\n", "- **2022**: **Satisfactory** \n", " Avery focused on rebuilding team dynamics and addressing employee concerns, leading to overall improvement despite a saturated market. \n", "\n", "- **2023**: **Exceeds Expectations** \n", " Market leadership was regained with innovative approaches to personalized insurance solutions. Avery is now recognized in industry publications as a leading voice in Insurance Tech innovation.\n", "\n", "## Annual Performance History\n", "- **2020:** \n", " - Completed onboarding successfully. \n", " - Met expectations in delivering project milestones. \n", " - Received positive feedback from the team leads.\n", "\n", "- **2021:** \n", " - Achieved a 95% success rate in project delivery timelines. \n", " - Awarded \"Rising Star\" at the annual company gala for outstanding contributions. \n", "\n", "- **2022:** \n", " - Exceeded goals by optimizing existing backend code, improving system performance by 25%. \n", " - Conducted training sessions for junior developers, fostering knowledge sharing. \n", "\n", "- **2023:** \n", " - Led a major overhaul of the API internal architecture, enhancing security protocols. \n", " - Contributed to the company’s transition to a cloud-based infrastructure. \n", " - Received an overall performance rating of 4.8/5.\n", "\n", "## Annual Performance History\n", "- **2018**: **3/5** - Adaptable team player but still learning to take initiative.\n", "- **2019**: **4/5** - Demonstrated strong problem-solving skills, outstanding contribution on the claims project.\n", "- **2020**: **2/5** - Struggled with time management; fell behind on deadlines during a high-traffic release period.\n", "- **2021**: **4/5** - Made a significant turnaround with organized work habits and successful project management.\n", "- **2022**: **5/5** - Exceptional performance during the \"Innovate\" initiative, showcasing leadership and creativity.\n", "- **2023**: **3/5** - Maintaining steady work; expectations for innovation not fully met, leading to discussions about goals.\n", "\n", "## Annual Performance History\n", "- **2023:** Rating: 4.5/5 \n", " *Samuel exceeded expectations, successfully leading a cross-departmental project on AI-driven underwriting processes.*\n", "\n", "- **2022:** Rating: 3.0/5 \n", " *Some challenges in meeting deadlines and collaboration with the engineering team. Received constructive feedback and participated in a team communication workshop.*\n", "\n", "- **2021:** Rating: 4.0/5 \n", " *There was notable improvement in performance. Worked to enhance model accuracy, leading to improved risk assessment outcomes for B2C customers.*\n", "\n", "- **2020:** Rating: 3.5/5 \n", " *Exhibited a solid performance during the initial year as a Senior Data Scientist but had struggles adapting to new leadership expectations.*\n", "\n", "## Compensation History\n", "- **2023:** Base Salary: $115,000 + Bonus: $15,000 \n", " *Annual bonus based on successful project completions and performance metrics.*\n", "Human: Who received the prestigious IIOTY award in 2023?\u001b[0m\n", "\n", "\u001b[1m> Finished chain.\u001b[0m\n", "\n", "\u001b[1m> Finished chain.\u001b[0m\n", "\n", "\u001b[1m> Finished chain.\u001b[0m\n", "\n", "Answer: I don't know.\n" ] } ], "source": [ "# Let's investigate what gets sent behind the scenes\n", "\n", "from langchain_core.callbacks import StdOutCallbackHandler\n", "\n", "llm = ChatOpenAI(temperature=0.7, model_name=MODEL)\n", "\n", "memory = ConversationBufferMemory(memory_key='chat_history', return_messages=True)\n", "\n", "retriever = vectorstore.as_retriever()\n", "\n", "conversation_chain = ConversationalRetrievalChain.from_llm(llm=llm, retriever=retriever, memory=memory, callbacks=[StdOutCallbackHandler()])\n", "\n", "query = \"Who received the prestigious IIOTY award in 2023?\"\n", "result = conversation_chain.invoke({\"question\": query})\n", "answer = result[\"answer\"]\n", "print(\"\\nAnswer:\", answer)" ] }, { "cell_type": "code", "execution_count": 16, "id": "2136153b-d2f6-4c58-a0e3-78c3a932cf55", "metadata": {}, "outputs": [], "source": [ "# create a new Chat with OpenAI\n", "llm = ChatOpenAI(temperature=0.7, model_name=MODEL)\n", "\n", "# set up the conversation memory for the chat\n", "memory = ConversationBufferMemory(memory_key='chat_history', return_messages=True)\n", "\n", "# the retriever is an abstraction over the VectorStore that will be used during RAG; k is how many chunks to use\n", "retriever = vectorstore.as_retriever(search_kwargs={\"k\": 25})\n", "\n", "# putting it together: set up the conversation chain with the GPT 3.5 LLM, the vector store and memory\n", "conversation_chain = ConversationalRetrievalChain.from_llm(llm=llm, retriever=retriever, memory=memory)" ] }, { "cell_type": "code", "execution_count": 17, "id": "5c2bfa3c-810b-441b-90d1-31533f14b1e3", "metadata": {}, "outputs": [], "source": [ "def chat(question, history):\n", " result = conversation_chain.invoke({\"question\": question})\n", " return result[\"answer\"]" ] }, { "cell_type": "code", "execution_count": 18, "id": "c736f33b-941e-4853-8eaf-2003bd988b18", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running on local URL: http://127.0.0.1:7863\n", "\n", "To create a public link, set `share=True` in `launch()`.\n" ] }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "view = gr.ChatInterface(chat).launch()" ] }, { "cell_type": "markdown", "id": "644753e7-17f3-4999-a37a-b6aebf1e4579", "metadata": {}, "source": [ "# Exercises\n", "\n", "Try applying this to your own folder of data, so that you create a personal knowledge worker, an expert on your own information!" ] }, { "cell_type": "code", "execution_count": null, "id": "30b4745a-0a6c-4544-b78b-c827cfec1fb9", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.10" } }, "nbformat": 4, "nbformat_minor": 5 }